From 998535bd93978b7afdd536300d8d2730750ad180 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 19 Aug 2025 19:34:48 +0000 Subject: [PATCH 001/103] Initial plan From 8a51468162fb7d326b9a134996490b1b09c3377b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 19 Aug 2025 19:38:15 +0000 Subject: [PATCH 002/103] Add README.md to notebooks folder explaining content and purpose Co-authored-by: onel <1862405+onel@users.noreply.github.com> --- notebooks/README.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 notebooks/README.md diff --git a/notebooks/README.md b/notebooks/README.md new file mode 100644 index 00000000..88c55b10 --- /dev/null +++ b/notebooks/README.md @@ -0,0 +1,37 @@ +# CUA Notebooks + +This folder contains Jupyter notebooks that demonstrate the core functionality of the CUA (Computer Use Automation) system. These notebooks serve as interactive examples and quickstart guides for different components of the CUA platform. + +## Available Notebooks + +### Core Components +- **`computer_nb.ipynb`** - Demonstrates the Computer API for programmatically operating sandbox VMs using either Cua Cloud Containers or local Lume VMs on Apple Silicon macOS systems +- **`agent_nb.ipynb`** - Shows how to use CUA's Agent to run automated workflows in virtual sandboxes with various AI models (OpenAI, Anthropic, local models) +- **`pylume_nb.ipynb`** - Quickstart guide for the pylume Python library, which handles VM creation, management, and image operations +- **`computer_server_nb.ipynb`** - Demonstrates how to host and configure the Computer server that powers the Computer API + +### Evaluation & Benchmarking +- **`eval_osworld.ipynb`** - Shows ComputerAgent integration with HUD for OSWorld benchmarking, supporting both Claude and OpenAI models + +### Tutorials +- **`blog/`** - Tutorial notebooks from blog posts: + - `build-your-own-operator-on-macos-1.ipynb` - Part 1: Building a CUA operator using OpenAI's computer-use-preview model + - `build-your-own-operator-on-macos-2.ipynb` - Part 2: Using the cua-agent package for more advanced automation + +## Purpose + +These notebooks provide: +- **Hands-on examples** of CUA's core functionality +- **Step-by-step setup instructions** for different components +- **Code snippets** you can copy and adapt for your own projects +- **Working demonstrations** of computer automation tasks +- **Integration examples** with various AI providers and models + +## Getting Started + +1. Choose a notebook based on what you want to learn +2. Follow the installation instructions in each notebook +3. Run the cells sequentially to see CUA in action +4. Adapt the code examples for your specific use cases + +Most notebooks include both cloud-based (Cua Cloud Containers) and local setup options, making them accessible regardless of your environment. \ No newline at end of file From 145a8452320e833475a023a6a4db223e31dd1067 Mon Sep 17 00:00:00 2001 From: Andrei Onel Date: Wed, 20 Aug 2025 00:03:48 +0300 Subject: [PATCH 003/103] Update README.md --- notebooks/README.md | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/notebooks/README.md b/notebooks/README.md index 88c55b10..0a7f4890 100644 --- a/notebooks/README.md +++ b/notebooks/README.md @@ -17,21 +17,3 @@ This folder contains Jupyter notebooks that demonstrate the core functionality o - **`blog/`** - Tutorial notebooks from blog posts: - `build-your-own-operator-on-macos-1.ipynb` - Part 1: Building a CUA operator using OpenAI's computer-use-preview model - `build-your-own-operator-on-macos-2.ipynb` - Part 2: Using the cua-agent package for more advanced automation - -## Purpose - -These notebooks provide: -- **Hands-on examples** of CUA's core functionality -- **Step-by-step setup instructions** for different components -- **Code snippets** you can copy and adapt for your own projects -- **Working demonstrations** of computer automation tasks -- **Integration examples** with various AI providers and models - -## Getting Started - -1. Choose a notebook based on what you want to learn -2. Follow the installation instructions in each notebook -3. Run the cells sequentially to see CUA in action -4. Adapt the code examples for your specific use cases - -Most notebooks include both cloud-based (Cua Cloud Containers) and local setup options, making them accessible regardless of your environment. \ No newline at end of file From 6cc1c6f92b8f88f6d81aba732fa71b757482f5e5 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Thu, 21 Aug 2025 12:25:15 -0400 Subject: [PATCH 004/103] Removed redundant steps from docker readme --- libs/kasm/README.md | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/libs/kasm/README.md b/libs/kasm/README.md index 6a504507..2a383535 100644 --- a/libs/kasm/README.md +++ b/libs/kasm/README.md @@ -21,18 +21,6 @@ docker build -t cua-ubuntu:latest . ### Pushing to Registry -To push the container to a Docker registry: - -```bash -# Tag for your registry (replace with your registry URL) -docker tag cua-ubuntu:latest your-registry.com/cua-ubuntu:latest - -# Push to registry -docker push your-registry.com/cua-ubuntu:latest -``` - -For Docker Hub: - ```bash # Tag for Docker Hub (replace 'trycua' with your Docker Hub username) docker tag cua-ubuntu:latest trycua/cua-ubuntu:latest From 9766e12b8d7d2d2da65657fcf0b25716de7d514e Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 21 Aug 2025 16:35:15 -0400 Subject: [PATCH 005/103] Restrict project to Python versions below 3.14 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 215809a5..7405d286 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,7 +11,7 @@ description = "CUA (Computer Use Agent) mono-repo" license = { text = "MIT" } name = "cua-workspace" readme = "README.md" -requires-python = ">=3.12" +requires-python = "<3.14,>=3.12" version = "0.1.0" [project.urls] From 02e5e62591cb302bb1a84c3a1dea627c1fd9bbf7 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 21 Aug 2025 12:16:03 -0400 Subject: [PATCH 006/103] Fix out-of-date agent SDK code in operator example --- notebooks/blog/build-your-own-operator-on-macos-2.ipynb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/notebooks/blog/build-your-own-operator-on-macos-2.ipynb b/notebooks/blog/build-your-own-operator-on-macos-2.ipynb index ba039bfe..db4a8872 100644 --- a/notebooks/blog/build-your-own-operator-on-macos-2.ipynb +++ b/notebooks/blog/build-your-own-operator-on-macos-2.ipynb @@ -78,7 +78,7 @@ "outputs": [], "source": [ "from computer import Computer\n", - "from agent import ComputerAgent, LLM, AgentLoop, LLMProvider" + "from agent import ComputerAgent" ] }, { @@ -129,7 +129,7 @@ "outputs": [], "source": [ "agent = ComputerAgent(\n", - " computer=[computer],\n", + " tools=[computer],\n", " model=\"openai/computer-use-preview\",\n", " save_trajectory=True,\n", " only_n_most_recent_images=3,\n", @@ -170,7 +170,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.11" + "version": "3.12.11" } }, "nbformat": 4, From b302a44ccf6c32e7e4cf70c72e4b0bc6521f9e95 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 21 Aug 2025 16:24:21 -0400 Subject: [PATCH 007/103] Remove nonexistent script from computer server notebook --- notebooks/computer_server_nb.ipynb | 32 +----------------------------- 1 file changed, 1 insertion(+), 31 deletions(-) diff --git a/notebooks/computer_server_nb.ipynb b/notebooks/computer_server_nb.ipynb index fee6e048..8a6867ba 100644 --- a/notebooks/computer_server_nb.ipynb +++ b/notebooks/computer_server_nb.ipynb @@ -49,36 +49,6 @@ "## Start the Computer server" ] }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "==> Starting computer-server on 0.0.0.0:8000...\n", - "Starting computer-server on 0.0.0.0:8000...\n", - "\u001b[32mINFO\u001b[0m: Started server process [\u001b[36m65480\u001b[0m]\n", - "\u001b[32mINFO\u001b[0m: Waiting for application startup.\n", - "\u001b[32mINFO\u001b[0m: Application startup complete.\n", - "\u001b[32mINFO\u001b[0m: Uvicorn running on \u001b[1mhttp://0.0.0.0:8000\u001b[0m (Press CTRL+C to quit)\n", - "^C\n", - "\u001b[32mINFO\u001b[0m: Shutting down\n", - "\u001b[32mINFO\u001b[0m: Waiting for application shutdown.\n", - "\u001b[32mINFO\u001b[0m: Application shutdown complete.\n", - "\u001b[32mINFO\u001b[0m: Finished server process [\u001b[36m65480\u001b[0m]\n" - ] - } - ], - "source": [ - "import os\n", - "# os.chdir('../../scripts')\n", - "\n", - "! ./run_computer_server.sh\n" - ] - }, { "cell_type": "code", "execution_count": null, @@ -109,7 +79,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.2" + "version": "3.13.5" } }, "nbformat": 4, From bca252b721115d8cdda920addfc3d1c40cfe3a67 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 21 Aug 2025 16:27:14 -0400 Subject: [PATCH 008/103] Rename environment variables to follow convention --- examples/computer-example-ts/.env.example | 4 ++-- examples/computer-example-ts/README.md | 4 ++-- examples/computer-example-ts/src/index.ts | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/computer-example-ts/.env.example b/examples/computer-example-ts/.env.example index 0496a574..260259a3 100644 --- a/examples/computer-example-ts/.env.example +++ b/examples/computer-example-ts/.env.example @@ -1,3 +1,3 @@ -OPENAI_KEY= -CUA_KEY= +OPENAI_API_KEY= +CUA_API_KEY= CUA_CONTAINER_NAME= \ No newline at end of file diff --git a/examples/computer-example-ts/README.md b/examples/computer-example-ts/README.md index 935588aa..500362c9 100644 --- a/examples/computer-example-ts/README.md +++ b/examples/computer-example-ts/README.md @@ -19,8 +19,8 @@ This example demonstrates how to control a cua Cloud container using the OpenAI 2. **Set up environment variables:** Create a `.env` file with the following variables: - - `OPENAI_KEY` — your OpenAI API key - - `CUA_KEY` — your cua Cloud API key + - `OPENAI_API_KEY` — your OpenAI API key + - `CUA_API_KEY` — your cua Cloud API key - `CUA_CONTAINER_NAME` — the name of your provisioned container 3. **Run the example:** diff --git a/examples/computer-example-ts/src/index.ts b/examples/computer-example-ts/src/index.ts index 1077e088..d58a9843 100644 --- a/examples/computer-example-ts/src/index.ts +++ b/examples/computer-example-ts/src/index.ts @@ -4,13 +4,13 @@ import { executeAction } from "./helpers"; import "dotenv/config"; -const openai = new OpenAI({ apiKey: process.env.OPENAI_KEY }); +const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY }); const COMPUTER_USE_PROMPT = "Open firefox and go to trycua.com"; // Initialize the Computer Connection const computer = new Computer({ - apiKey: process.env.CUA_KEY!, + apiKey: process.env.CUA_API_KEY!, name: process.env.CUA_CONTAINER_NAME!, osType: OSType.LINUX, }); From 15dd34edf31cfb736976d6c2ac3ca67118546fe0 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 21 Aug 2025 16:28:03 -0400 Subject: [PATCH 009/103] Add package-lock.json to computer SDK example --- .../computer-example-ts/package-lock.json | 841 ++++++++++++++++++ 1 file changed, 841 insertions(+) create mode 100644 examples/computer-example-ts/package-lock.json diff --git a/examples/computer-example-ts/package-lock.json b/examples/computer-example-ts/package-lock.json new file mode 100644 index 00000000..ecee9d6f --- /dev/null +++ b/examples/computer-example-ts/package-lock.json @@ -0,0 +1,841 @@ +{ + "name": "computer-example-ts", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "computer-example-ts", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@trycua/computer": "^0.1.3", + "dotenv": "^16.5.0", + "openai": "^5.7.0" + }, + "devDependencies": { + "@types/node": "^22.15.33", + "tsx": "^4.20.3", + "typescript": "^5.8.3" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.9.tgz", + "integrity": "sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.9.tgz", + "integrity": "sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.9.tgz", + "integrity": "sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.9.tgz", + "integrity": "sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.9.tgz", + "integrity": "sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.9.tgz", + "integrity": "sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.9.tgz", + "integrity": "sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.9.tgz", + "integrity": "sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.9.tgz", + "integrity": "sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.9.tgz", + "integrity": "sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.9.tgz", + "integrity": "sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.9.tgz", + "integrity": "sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.9.tgz", + "integrity": "sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.9.tgz", + "integrity": "sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.9.tgz", + "integrity": "sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.9.tgz", + "integrity": "sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.9.tgz", + "integrity": "sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.9.tgz", + "integrity": "sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.9.tgz", + "integrity": "sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.9.tgz", + "integrity": "sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.9.tgz", + "integrity": "sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.9.tgz", + "integrity": "sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.9.tgz", + "integrity": "sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.9.tgz", + "integrity": "sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.9.tgz", + "integrity": "sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.9.tgz", + "integrity": "sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@posthog/core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@posthog/core/-/core-1.0.0.tgz", + "integrity": "sha512-gquQld+duT9DdzLIFoHZkUMW0DZOTSLCtSjuuC/zKFz65Qecbz9p37DHBJMkw0dCuB8Mgh2GtH8Ag3PznJrP3g==", + "license": "MIT" + }, + "node_modules/@trycua/computer": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@trycua/computer/-/computer-0.1.3.tgz", + "integrity": "sha512-RTDgULV6wQJuTsiwhei9aQO6YQSM1TBQqOCDUPHUbTIjtRqzMvMdwtcKAKxZZptzJcBX14bWtbucY65Wu6IEFg==", + "license": "MIT", + "dependencies": { + "@trycua/core": "^0.1.2", + "pino": "^9.7.0", + "ws": "^8.18.0" + } + }, + "node_modules/@trycua/core": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@trycua/core/-/core-0.1.3.tgz", + "integrity": "sha512-sv7BEajJyZ+JNxrOdhao4qCOtRrh+S0XYf64ehAT4UAhLC73Kep06bGa/Uel0Ow5xGXXrg0aiVBL7zO9+/w4/Q==", + "license": "MIT", + "dependencies": { + "@types/uuid": "^10.0.0", + "pino": "^9.7.0", + "posthog-node": "^5.1.1", + "uuid": "^11.1.0" + } + }, + "node_modules/@types/node": { + "version": "22.17.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.2.tgz", + "integrity": "sha512-gL6z5N9Jm9mhY+U2KXZpteb+09zyffliRkZyZOHODGATyC5B1Jt/7TzuuiLkFsSUMLbS1OLmlj/E+/3KF4Q/4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", + "license": "MIT" + }, + "node_modules/atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/esbuild": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.9.tgz", + "integrity": "sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.9", + "@esbuild/android-arm": "0.25.9", + "@esbuild/android-arm64": "0.25.9", + "@esbuild/android-x64": "0.25.9", + "@esbuild/darwin-arm64": "0.25.9", + "@esbuild/darwin-x64": "0.25.9", + "@esbuild/freebsd-arm64": "0.25.9", + "@esbuild/freebsd-x64": "0.25.9", + "@esbuild/linux-arm": "0.25.9", + "@esbuild/linux-arm64": "0.25.9", + "@esbuild/linux-ia32": "0.25.9", + "@esbuild/linux-loong64": "0.25.9", + "@esbuild/linux-mips64el": "0.25.9", + "@esbuild/linux-ppc64": "0.25.9", + "@esbuild/linux-riscv64": "0.25.9", + "@esbuild/linux-s390x": "0.25.9", + "@esbuild/linux-x64": "0.25.9", + "@esbuild/netbsd-arm64": "0.25.9", + "@esbuild/netbsd-x64": "0.25.9", + "@esbuild/openbsd-arm64": "0.25.9", + "@esbuild/openbsd-x64": "0.25.9", + "@esbuild/openharmony-arm64": "0.25.9", + "@esbuild/sunos-x64": "0.25.9", + "@esbuild/win32-arm64": "0.25.9", + "@esbuild/win32-ia32": "0.25.9", + "@esbuild/win32-x64": "0.25.9" + } + }, + "node_modules/fast-redact": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", + "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-tsconfig": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz", + "integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/on-exit-leak-free": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", + "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/openai": { + "version": "5.13.1", + "resolved": "https://registry.npmjs.org/openai/-/openai-5.13.1.tgz", + "integrity": "sha512-Jty97Apw40znKSlXZL2YDap1U2eN9NfXbqm/Rj1rExeOLEnhwezpKQ+v43kIqojavUgm30SR3iuvGlNEBR+AFg==", + "license": "Apache-2.0", + "bin": { + "openai": "bin/cli" + }, + "peerDependencies": { + "ws": "^8.18.0", + "zod": "^3.23.8" + }, + "peerDependenciesMeta": { + "ws": { + "optional": true + }, + "zod": { + "optional": true + } + } + }, + "node_modules/pino": { + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.9.0.tgz", + "integrity": "sha512-zxsRIQG9HzG+jEljmvmZupOMDUQ0Jpj0yAgE28jQvvrdYTlEaiGwelJpdndMl/MBuRr70heIj83QyqJUWaU8mQ==", + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^2.0.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^5.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/pino-abstract-transport": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", + "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", + "license": "MIT", + "dependencies": { + "split2": "^4.0.0" + } + }, + "node_modules/pino-std-serializers": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", + "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", + "license": "MIT" + }, + "node_modules/posthog-node": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/posthog-node/-/posthog-node-5.7.0.tgz", + "integrity": "sha512-6J1AIZWtbr2lEbZOO2AzO/h1FPJjUZM4KWcdaL2UQw7FY8J7VNaH3NiaRockASFmglpID7zEY25gV/YwCtuXjg==", + "license": "MIT", + "dependencies": { + "@posthog/core": "1.0.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/process-warning": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-5.0.0.tgz", + "integrity": "sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "MIT" + }, + "node_modules/quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", + "license": "MIT" + }, + "node_modules/real-require": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/sonic-boom": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", + "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/thread-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", + "license": "MIT", + "dependencies": { + "real-require": "^0.2.0" + } + }, + "node_modules/tsx": { + "version": "4.20.4", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.20.4.tgz", + "integrity": "sha512-yyxBKfORQ7LuRt/BQKBXrpcq59ZvSW0XxwfjAt3w2/8PmdxaFzijtMhTawprSHhpzeM5BgU2hXHG3lklIERZXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "~0.25.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/typescript": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/uuid": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/esm/bin/uuid" + } + }, + "node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + } + } +} From 141c9d3ad7f9c80c9b86db84e12fc279f681bc45 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 21 Aug 2025 17:14:55 -0400 Subject: [PATCH 010/103] Fix out-of-date agent SDK code in notebook --- notebooks/agent_nb.ipynb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/notebooks/agent_nb.ipynb b/notebooks/agent_nb.ipynb index 66b66203..8fc02b31 100644 --- a/notebooks/agent_nb.ipynb +++ b/notebooks/agent_nb.ipynb @@ -78,7 +78,7 @@ "outputs": [], "source": [ "from computer import Computer, VMProviderType\n", - "from agent import ComputerAgent, LLM, AgentLoop, LLMProvider" + "from agent import ComputerAgent" ] }, { @@ -184,8 +184,8 @@ "\n", "# Create agent\n", "agent = ComputerAgent(\n", + " model=\"openai/computer-use-preview\",\n", " tools=[computer],\n", - " model=\"computer-use-preview\",\n", " trajectory_dir=str(Path(\"trajectories\")),\n", " only_n_most_recent_images=3,\n", " verbosity=logging.INFO\n", @@ -331,7 +331,7 @@ "source": [ "import logging\n", "from pathlib import Path\n", - "from agent import ComputerAgent, LLM, AgentLoop\n", + "from agent import ComputerAgent\n", "\n", "computer = Computer(verbosity=logging.INFO)\n", "\n", From 33f81131d984ec2f6965d78a726c5d942a511bf1 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 21 Aug 2025 17:15:08 -0400 Subject: [PATCH 011/103] Fix variable name --- notebooks/agent_nb.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/notebooks/agent_nb.ipynb b/notebooks/agent_nb.ipynb index 8fc02b31..a01dbf33 100644 --- a/notebooks/agent_nb.ipynb +++ b/notebooks/agent_nb.ipynb @@ -213,7 +213,7 @@ "\n", "for i, task in enumerate(tasks):\n", " print(f\"\\nExecuting task {i+1}/{len(tasks)}: {task}\")\n", - " async for result in cloud_agent.run(task):\n", + " async for result in agent.run(task):\n", " # print(result)\n", " pass\n", " print(f\"✅ Task {i+1}/{len(tasks)} completed: {task}\")\n" From 3b76612d66b45d46c45ce3b3b13525ee2760deb8 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 21 Aug 2025 17:31:38 -0400 Subject: [PATCH 012/103] Initialize computer before taking screenshot --- notebooks/computer_nb.ipynb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/notebooks/computer_nb.ipynb b/notebooks/computer_nb.ipynb index d1d97d12..24e4ef7a 100644 --- a/notebooks/computer_nb.ipynb +++ b/notebooks/computer_nb.ipynb @@ -153,6 +153,8 @@ "metadata": {}, "outputs": [], "source": [ + "await computer.run() # Initialize the computer first\n", + "\n", "screenshot = await computer.interface.screenshot()\n", "\n", "with open(\"screenshot.png\", \"wb\") as f:\n", From f9a317c190e73771d57e3c215e02fb2e5088811a Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 21 Aug 2025 17:32:36 -0400 Subject: [PATCH 013/103] Use correct return type for run_command --- notebooks/computer_nb.ipynb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/notebooks/computer_nb.ipynb b/notebooks/computer_nb.ipynb index 24e4ef7a..698db37c 100644 --- a/notebooks/computer_nb.ipynb +++ b/notebooks/computer_nb.ipynb @@ -462,7 +462,8 @@ "dir_exists = await computer.interface.directory_exists(\"/path/to/directory\")\n", "\n", "# Run shell commands\n", - "stdout, stderr = await computer.interface.run_command(\"ls -la\")" + "result = await computer.interface.run_command(\"ls -la\")\n", + "stdout, stderr, returncode = result.stdout, result.stderr, result.returncode" ] }, { @@ -603,7 +604,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.2" + "version": "3.13.5" } }, "nbformat": 4, From f72a03be97f18f60262f2ecbe286dd52b3220f50 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Fri, 22 Aug 2025 13:00:04 -0400 Subject: [PATCH 014/103] Restored MLX/ adapter --- libs/python/agent/agent/adapters/__init__.py | 2 + .../agent/agent/adapters/mlxvlm_adapter.py | 284 ++++++++++++++++++ libs/python/agent/agent/agent.py | 5 +- 3 files changed, 290 insertions(+), 1 deletion(-) create mode 100644 libs/python/agent/agent/adapters/mlxvlm_adapter.py diff --git a/libs/python/agent/agent/adapters/__init__.py b/libs/python/agent/agent/adapters/__init__.py index 3a5c0301..1f07a9fc 100644 --- a/libs/python/agent/agent/adapters/__init__.py +++ b/libs/python/agent/agent/adapters/__init__.py @@ -4,8 +4,10 @@ Adapters package for agent - Custom LLM adapters for LiteLLM from .huggingfacelocal_adapter import HuggingFaceLocalAdapter from .human_adapter import HumanAdapter +from .mlxvlm_adapter import MLXVLMAdapter __all__ = [ "HuggingFaceLocalAdapter", "HumanAdapter", + "MLXVLMAdapter", ] diff --git a/libs/python/agent/agent/adapters/mlxvlm_adapter.py b/libs/python/agent/agent/adapters/mlxvlm_adapter.py new file mode 100644 index 00000000..8daf4bdd --- /dev/null +++ b/libs/python/agent/agent/adapters/mlxvlm_adapter.py @@ -0,0 +1,284 @@ +import asyncio +import functools +import warnings +from concurrent.futures import ThreadPoolExecutor +from typing import Iterator, AsyncIterator, Dict, List, Any, Optional +from litellm.types.utils import GenericStreamingChunk, ModelResponse +from litellm.llms.custom_llm import CustomLLM +from litellm import completion, acompletion +import base64 +from io import BytesIO +from PIL import Image + +# Try to import MLX-VLM dependencies +try: + import mlx.core as mx + from mlx_vlm import load + from mlx_vlm.utils import generate + MLX_VLM_AVAILABLE = True +except ImportError: + MLX_VLM_AVAILABLE = False + + +class MLXVLMAdapter(CustomLLM): + """MLX-VLM Adapter for running vision-language models locally using Apple's MLX framework.""" + + def __init__(self, **kwargs): + """Initialize the adapter. + + Args: + **kwargs: Additional arguments + """ + super().__init__() + self.models = {} # Cache for loaded models + self.processors = {} # Cache for loaded processors + self._executor = ThreadPoolExecutor(max_workers=1) # Single thread pool + + if not MLX_VLM_AVAILABLE: + raise ImportError("MLX-VLM dependencies not available. Please install mlx-vlm.") + + def _load_model_and_processor(self, model_name: str): + """Load model and processor if not already cached. + + Args: + model_name: Name of the model to load + + Returns: + Tuple of (model, processor) + """ + if model_name not in self.models: + # Load model and processor using mlx-vlm + model, processor = load( + model_name, + processor_kwargs={ + "min_pixels": 256 * 28 * 28, + "max_pixels": 1512 * 982 + } + ) + + # Cache them + self.models[model_name] = model + self.processors[model_name] = processor + + return self.models[model_name], self.processors[model_name] + + def _convert_messages(self, messages: List[Dict[str, Any]]) -> List[Dict[str, Any]]: + """Convert OpenAI format messages to MLX-VLM format. + + Args: + messages: Messages in OpenAI format + + Returns: + Messages in MLX-VLM format + """ + converted_messages = [] + + for message in messages: + converted_message = { + "role": message["role"], + "content": [] + } + + content = message.get("content", []) + if isinstance(content, str): + # Simple text content + converted_message["content"].append({ + "type": "text", + "text": content + }) + elif isinstance(content, list): + # Multi-modal content + for item in content: + if item.get("type") == "text": + converted_message["content"].append({ + "type": "text", + "text": item.get("text", "") + }) + elif item.get("type") == "image_url": + # Convert image_url format to image format + image_url = item.get("image_url", {}).get("url", "") + converted_message["content"].append({ + "type": "image", + "image": image_url + }) + elif item.get("type") == "image": + # Direct image format - pass through + converted_message["content"].append(item) + + converted_messages.append(converted_message) + + return converted_messages + + def _process_image_from_url(self, image_url: str) -> Image.Image: + """Process image from URL (base64 or file path). + + Args: + image_url: Image URL (data:image/... or file path) + + Returns: + PIL Image object + """ + if image_url.startswith("data:image/"): + # Base64 encoded image + header, data = image_url.split(",", 1) + image_data = base64.b64decode(data) + return Image.open(BytesIO(image_data)) + else: + # File path or URL + return Image.open(image_url) + + def _extract_image_from_messages(self, messages: List[Dict[str, Any]]) -> Optional[Image.Image]: + """Extract the first image from messages. + + Args: + messages: List of messages + + Returns: + PIL Image object or None + """ + for message in messages: + content = message.get("content", []) + if isinstance(content, list): + for item in content: + if item.get("type") == "image": + image_url = item.get("image", "") + if image_url: + return self._process_image_from_url(image_url) + elif item.get("type") == "image_url": + image_url = item.get("image_url", {}).get("url", "") + if image_url: + return self._process_image_from_url(image_url) + return None + + def _generate(self, **kwargs) -> str: + """Generate response using the local MLX-VLM model. + + Args: + **kwargs: Keyword arguments containing messages and model info + + Returns: + Generated text response + """ + messages = kwargs.get('messages', []) + model_name = kwargs.get('model', 'mlx-community/Qwen2.5-VL-7B-Instruct-4bit') + max_tokens = kwargs.get('max_tokens', 1000) + temperature = kwargs.get('temperature', 0.1) + + # Warn about ignored kwargs + ignored_kwargs = set(kwargs.keys()) - {'messages', 'model', 'max_tokens', 'temperature'} + if ignored_kwargs: + warnings.warn(f"Ignoring unsupported kwargs: {ignored_kwargs}") + + # Load model and processor + model, processor = self._load_model_and_processor(model_name) + + # Convert messages to MLX-VLM format + mlx_messages = self._convert_messages(messages) + + # Extract image from messages + image = self._extract_image_from_messages(mlx_messages) + + # Apply chat template + prompt = processor.apply_chat_template( + mlx_messages, + tokenize=False, + add_generation_prompt=True, + ) + + # Generate response using mlx-vlm + try: + response = generate( + model, + processor, + prompt, + image, # type: ignore + temperature=temperature, + max_tokens=max_tokens, + verbose=False, + ) + + # Clear MLX cache to free memory + mx.metal.clear_cache() + + return response + + except Exception as e: + # Clear cache on error too + mx.metal.clear_cache() + raise e + + def completion(self, *args, **kwargs) -> ModelResponse: + """Synchronous completion method. + + Returns: + ModelResponse with generated text + """ + generated_text = self._generate(**kwargs) + + response = completion( + model=f"mlx/{kwargs.get('model', 'default')}", + mock_response=generated_text, + ) + return response # type: ignore + + async def acompletion(self, *args, **kwargs) -> ModelResponse: + """Asynchronous completion method. + + Returns: + ModelResponse with generated text + """ + # Run _generate in thread pool to avoid blocking + loop = asyncio.get_event_loop() + generated_text = await loop.run_in_executor( + self._executor, + functools.partial(self._generate, **kwargs) + ) + + response = await acompletion( + model=f"mlx/{kwargs.get('model', 'default')}", + mock_response=generated_text, + ) + return response # type: ignore + + def streaming(self, *args, **kwargs) -> Iterator[GenericStreamingChunk]: + """Synchronous streaming method. + + Returns: + Iterator of GenericStreamingChunk + """ + generated_text = self._generate(**kwargs) + + generic_streaming_chunk: GenericStreamingChunk = { + "finish_reason": "stop", + "index": 0, + "is_finished": True, + "text": generated_text, + "tool_use": None, + "usage": {"completion_tokens": 0, "prompt_tokens": 0, "total_tokens": 0}, + } + + yield generic_streaming_chunk + + async def astreaming(self, *args, **kwargs) -> AsyncIterator[GenericStreamingChunk]: + """Asynchronous streaming method. + + Returns: + AsyncIterator of GenericStreamingChunk + """ + # Run _generate in thread pool to avoid blocking + loop = asyncio.get_event_loop() + generated_text = await loop.run_in_executor( + self._executor, + functools.partial(self._generate, **kwargs) + ) + + generic_streaming_chunk: GenericStreamingChunk = { + "finish_reason": "stop", + "index": 0, + "is_finished": True, + "text": generated_text, + "tool_use": None, + "usage": {"completion_tokens": 0, "prompt_tokens": 0, "total_tokens": 0}, + } + + yield generic_streaming_chunk diff --git a/libs/python/agent/agent/agent.py b/libs/python/agent/agent/agent.py index 78fc3f45..2ed370ba 100644 --- a/libs/python/agent/agent/agent.py +++ b/libs/python/agent/agent/agent.py @@ -22,6 +22,7 @@ import inspect from .adapters import ( HuggingFaceLocalAdapter, HumanAdapter, + MLXVLMAdapter, ) from .callbacks import ( ImageRetentionCallback, @@ -234,9 +235,11 @@ class ComputerAgent: device="auto" ) human_adapter = HumanAdapter() + mlx_adapter = MLXVLMAdapter() litellm.custom_provider_map = [ {"provider": "huggingface-local", "custom_handler": hf_adapter}, - {"provider": "human", "custom_handler": human_adapter} + {"provider": "human", "custom_handler": human_adapter}, + {"provider": "mlx", "custom_handler": mlx_adapter} ] litellm.suppress_debug_info = True From eeb2be9b962a5befe9d624c5d697c73e3c25b845 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Fri, 22 Aug 2025 13:16:16 -0400 Subject: [PATCH 015/103] Fixed incorrect special token --- .../agent/agent/adapters/mlxvlm_adapter.py | 320 +++++++++++------- libs/python/agent/agent/loops/uitars.py | 25 +- 2 files changed, 214 insertions(+), 131 deletions(-) diff --git a/libs/python/agent/agent/adapters/mlxvlm_adapter.py b/libs/python/agent/agent/adapters/mlxvlm_adapter.py index 8daf4bdd..c38f4ad6 100644 --- a/libs/python/agent/agent/adapters/mlxvlm_adapter.py +++ b/libs/python/agent/agent/adapters/mlxvlm_adapter.py @@ -1,27 +1,75 @@ import asyncio import functools import warnings +import io +import base64 +import math +import re from concurrent.futures import ThreadPoolExecutor -from typing import Iterator, AsyncIterator, Dict, List, Any, Optional +from typing import Iterator, AsyncIterator, Dict, List, Any, Optional, Tuple, cast +from PIL import Image from litellm.types.utils import GenericStreamingChunk, ModelResponse from litellm.llms.custom_llm import CustomLLM from litellm import completion, acompletion -import base64 -from io import BytesIO -from PIL import Image -# Try to import MLX-VLM dependencies +# Try to import MLX dependencies try: import mlx.core as mx - from mlx_vlm import load - from mlx_vlm.utils import generate - MLX_VLM_AVAILABLE = True + from mlx_vlm import load, generate + from mlx_vlm.prompt_utils import apply_chat_template + from mlx_vlm.utils import load_config + from transformers.tokenization_utils import PreTrainedTokenizer + MLX_AVAILABLE = True except ImportError: - MLX_VLM_AVAILABLE = False + MLX_AVAILABLE = False + +# Constants for smart_resize +IMAGE_FACTOR = 28 +MIN_PIXELS = 100 * 28 * 28 +MAX_PIXELS = 16384 * 28 * 28 +MAX_RATIO = 200 + +def round_by_factor(number: float, factor: int) -> int: + """Returns the closest integer to 'number' that is divisible by 'factor'.""" + return round(number / factor) * factor + +def ceil_by_factor(number: float, factor: int) -> int: + """Returns the smallest integer greater than or equal to 'number' that is divisible by 'factor'.""" + return math.ceil(number / factor) * factor + +def floor_by_factor(number: float, factor: int) -> int: + """Returns the largest integer less than or equal to 'number' that is divisible by 'factor'.""" + return math.floor(number / factor) * factor + +def smart_resize( + height: int, width: int, factor: int = IMAGE_FACTOR, min_pixels: int = MIN_PIXELS, max_pixels: int = MAX_PIXELS +) -> tuple[int, int]: + """ + Rescales the image so that the following conditions are met: + + 1. Both dimensions (height and width) are divisible by 'factor'. + 2. The total number of pixels is within the range ['min_pixels', 'max_pixels']. + 3. The aspect ratio of the image is maintained as closely as possible. + """ + if max(height, width) / min(height, width) > MAX_RATIO: + raise ValueError( + f"absolute aspect ratio must be smaller than {MAX_RATIO}, got {max(height, width) / min(height, width)}" + ) + h_bar = max(factor, round_by_factor(height, factor)) + w_bar = max(factor, round_by_factor(width, factor)) + if h_bar * w_bar > max_pixels: + beta = math.sqrt((height * width) / max_pixels) + h_bar = floor_by_factor(height / beta, factor) + w_bar = floor_by_factor(width / beta, factor) + elif h_bar * w_bar < min_pixels: + beta = math.sqrt(min_pixels / (height * width)) + h_bar = ceil_by_factor(height * beta, factor) + w_bar = ceil_by_factor(width * beta, factor) + return h_bar, w_bar class MLXVLMAdapter(CustomLLM): - """MLX-VLM Adapter for running vision-language models locally using Apple's MLX framework.""" + """MLX VLM Adapter for running vision-language models locally using MLX.""" def __init__(self, **kwargs): """Initialize the adapter. @@ -30,13 +78,14 @@ class MLXVLMAdapter(CustomLLM): **kwargs: Additional arguments """ super().__init__() + if not MLX_AVAILABLE: + raise ImportError("MLX VLM dependencies not available. Please install mlx-vlm.") + self.models = {} # Cache for loaded models self.processors = {} # Cache for loaded processors + self.configs = {} # Cache for loaded configs self._executor = ThreadPoolExecutor(max_workers=1) # Single thread pool - if not MLX_VLM_AVAILABLE: - raise ImportError("MLX-VLM dependencies not available. Please install mlx-vlm.") - def _load_model_and_processor(self, model_name: str): """Load model and processor if not already cached. @@ -44,37 +93,64 @@ class MLXVLMAdapter(CustomLLM): model_name: Name of the model to load Returns: - Tuple of (model, processor) + Tuple of (model, processor, config) """ if model_name not in self.models: - # Load model and processor using mlx-vlm - model, processor = load( - model_name, - processor_kwargs={ - "min_pixels": 256 * 28 * 28, - "max_pixels": 1512 * 982 - } + # Load model and processor + model_obj, processor = load( + model_name, + processor_kwargs={"min_pixels": MIN_PIXELS, "max_pixels": MAX_PIXELS} ) + config = load_config(model_name) # Cache them - self.models[model_name] = model + self.models[model_name] = model_obj self.processors[model_name] = processor + self.configs[model_name] = config - return self.models[model_name], self.processors[model_name] + return self.models[model_name], self.processors[model_name], self.configs[model_name] - def _convert_messages(self, messages: List[Dict[str, Any]]) -> List[Dict[str, Any]]: - """Convert OpenAI format messages to MLX-VLM format. + def _process_coordinates(self, text: str, original_size: Tuple[int, int], model_size: Tuple[int, int]) -> str: + """Process coordinates in box tokens based on image resizing using smart_resize approach. + + Args: + text: Text containing box tokens + original_size: Original image size (width, height) + model_size: Model processed image size (width, height) + + Returns: + Text with processed coordinates + """ + # Find all box tokens + box_pattern = r"<\|box_start\|>\((\d+),\s*(\d+)\)<\|box_end\|>" + + def process_coords(match): + model_x, model_y = int(match.group(1)), int(match.group(2)) + # Scale coordinates from model space to original image space + # Both original_size and model_size are in (width, height) format + new_x = int(model_x * original_size[0] / model_size[0]) # Width + new_y = int(model_y * original_size[1] / model_size[1]) # Height + return f"<|box_start|>({new_x},{new_y})<|box_end|>" + + return re.sub(box_pattern, process_coords, text) + + def _convert_messages(self, messages: List[Dict[str, Any]]) -> Tuple[List[Dict[str, Any]], List[Image.Image], Dict[int, Tuple[int, int]], Dict[int, Tuple[int, int]]]: + """Convert OpenAI format messages to MLX VLM format and extract images. Args: messages: Messages in OpenAI format Returns: - Messages in MLX-VLM format + Tuple of (processed_messages, images, original_sizes, model_sizes) """ - converted_messages = [] + processed_messages = [] + images = [] + original_sizes = {} # Track original sizes of images for coordinate mapping + model_sizes = {} # Track model processed sizes + image_index = 0 for message in messages: - converted_message = { + processed_message = { "role": message["role"], "content": [] } @@ -82,76 +158,60 @@ class MLXVLMAdapter(CustomLLM): content = message.get("content", []) if isinstance(content, str): # Simple text content - converted_message["content"].append({ - "type": "text", - "text": content - }) + processed_message["content"] = content elif isinstance(content, list): # Multi-modal content + processed_content = [] for item in content: if item.get("type") == "text": - converted_message["content"].append({ + processed_content.append({ "type": "text", "text": item.get("text", "") }) elif item.get("type") == "image_url": - # Convert image_url format to image format image_url = item.get("image_url", {}).get("url", "") - converted_message["content"].append({ - "type": "image", - "image": image_url + pil_image = None + + if image_url.startswith("data:image/"): + # Extract base64 data + base64_data = image_url.split(',')[1] + # Convert base64 to PIL Image + image_data = base64.b64decode(base64_data) + pil_image = Image.open(io.BytesIO(image_data)) + else: + # Handle file path or URL + pil_image = Image.open(image_url) + + # Store original image size for coordinate mapping + original_size = pil_image.size + original_sizes[image_index] = original_size + + # Use smart_resize to determine model size + # Note: smart_resize expects (height, width) but PIL gives (width, height) + height, width = original_size[1], original_size[0] + new_height, new_width = smart_resize(height, width) + # Store model size in (width, height) format for consistent coordinate processing + model_sizes[image_index] = (new_width, new_height) + + # Resize the image using the calculated dimensions from smart_resize + resized_image = pil_image.resize((new_width, new_height)) + images.append(resized_image) + + # Add image placeholder to content + processed_content.append({ + "type": "image" }) - elif item.get("type") == "image": - # Direct image format - pass through - converted_message["content"].append(item) + + image_index += 1 + + processed_message["content"] = processed_content - converted_messages.append(converted_message) - - return converted_messages - - def _process_image_from_url(self, image_url: str) -> Image.Image: - """Process image from URL (base64 or file path). + processed_messages.append(processed_message) - Args: - image_url: Image URL (data:image/... or file path) - - Returns: - PIL Image object - """ - if image_url.startswith("data:image/"): - # Base64 encoded image - header, data = image_url.split(",", 1) - image_data = base64.b64decode(data) - return Image.open(BytesIO(image_data)) - else: - # File path or URL - return Image.open(image_url) - - def _extract_image_from_messages(self, messages: List[Dict[str, Any]]) -> Optional[Image.Image]: - """Extract the first image from messages. - - Args: - messages: List of messages - - Returns: - PIL Image object or None - """ - for message in messages: - content = message.get("content", []) - if isinstance(content, list): - for item in content: - if item.get("type") == "image": - image_url = item.get("image", "") - if image_url: - return self._process_image_from_url(image_url) - elif item.get("type") == "image_url": - image_url = item.get("image_url", {}).get("url", "") - if image_url: - return self._process_image_from_url(image_url) - return None + return processed_messages, images, original_sizes, model_sizes def _generate(self, **kwargs) -> str: - """Generate response using the local MLX-VLM model. + """Generate response using the local MLX VLM model. Args: **kwargs: Keyword arguments containing messages and model info @@ -160,52 +220,66 @@ class MLXVLMAdapter(CustomLLM): Generated text response """ messages = kwargs.get('messages', []) - model_name = kwargs.get('model', 'mlx-community/Qwen2.5-VL-7B-Instruct-4bit') - max_tokens = kwargs.get('max_tokens', 1000) - temperature = kwargs.get('temperature', 0.1) + model_name = kwargs.get('model', 'mlx-community/UI-TARS-1.5-7B-4bit') + max_tokens = kwargs.get('max_tokens', 128) # Warn about ignored kwargs - ignored_kwargs = set(kwargs.keys()) - {'messages', 'model', 'max_tokens', 'temperature'} + ignored_kwargs = set(kwargs.keys()) - {'messages', 'model', 'max_tokens'} if ignored_kwargs: warnings.warn(f"Ignoring unsupported kwargs: {ignored_kwargs}") # Load model and processor - model, processor = self._load_model_and_processor(model_name) + model, processor, config = self._load_model_and_processor(model_name) - # Convert messages to MLX-VLM format - mlx_messages = self._convert_messages(messages) + # Convert messages and extract images + processed_messages, images, original_sizes, model_sizes = self._convert_messages(messages) - # Extract image from messages - image = self._extract_image_from_messages(mlx_messages) + # Process user text input with box coordinates after image processing + # Swap original_size and model_size arguments for inverse transformation + for msg_idx, msg in enumerate(processed_messages): + if msg.get("role") == "user" and isinstance(msg.get("content"), str): + content = msg.get("content", "") + if "<|box_start|>" in content and original_sizes and model_sizes and 0 in original_sizes and 0 in model_sizes: + orig_size = original_sizes[0] + model_size = model_sizes[0] + # Swap arguments to perform inverse transformation for user input + processed_messages[msg_idx]["content"] = self._process_coordinates(content, model_size, orig_size) - # Apply chat template - prompt = processor.apply_chat_template( - mlx_messages, - tokenize=False, - add_generation_prompt=True, - ) - - # Generate response using mlx-vlm try: - response = generate( - model, - processor, - prompt, - image, # type: ignore - temperature=temperature, - max_tokens=max_tokens, + # Format prompt according to model requirements using the processor directly + prompt = processor.apply_chat_template( + processed_messages, + tokenize=False, + add_generation_prompt=True, + return_tensors='pt' + ) + tokenizer = cast(PreTrainedTokenizer, processor) + + # Generate response + text_content, usage = generate( + model, + tokenizer, + str(prompt), + images, # type: ignore verbose=False, + max_tokens=max_tokens ) - # Clear MLX cache to free memory - mx.metal.clear_cache() - - return response - except Exception as e: - # Clear cache on error too - mx.metal.clear_cache() - raise e + raise RuntimeError(f"Error generating response: {str(e)}") from e + + # Process coordinates in the response back to original image space + if original_sizes and model_sizes and 0 in original_sizes and 0 in model_sizes: + # Get original image size and model size (using the first image) + orig_size = original_sizes[0] + model_size = model_sizes[0] + + # Check if output contains box tokens that need processing + if "<|box_start|>" in text_content: + # Process coordinates from model space back to original image space + text_content = self._process_coordinates(text_content, orig_size, model_size) + + return text_content def completion(self, *args, **kwargs) -> ModelResponse: """Synchronous completion method. @@ -215,11 +289,11 @@ class MLXVLMAdapter(CustomLLM): """ generated_text = self._generate(**kwargs) - response = completion( - model=f"mlx/{kwargs.get('model', 'default')}", + result = completion( + model=f"mlx/{kwargs.get('model', 'mlx-community/UI-TARS-1.5-7B-4bit')}", mock_response=generated_text, ) - return response # type: ignore + return cast(ModelResponse, result) async def acompletion(self, *args, **kwargs) -> ModelResponse: """Asynchronous completion method. @@ -234,11 +308,11 @@ class MLXVLMAdapter(CustomLLM): functools.partial(self._generate, **kwargs) ) - response = await acompletion( - model=f"mlx/{kwargs.get('model', 'default')}", + result = await acompletion( + model=f"mlx/{kwargs.get('model', 'mlx-community/UI-TARS-1.5-7B-4bit')}", mock_response=generated_text, ) - return response # type: ignore + return cast(ModelResponse, result) def streaming(self, *args, **kwargs) -> Iterator[GenericStreamingChunk]: """Synchronous streaming method. @@ -281,4 +355,4 @@ class MLXVLMAdapter(CustomLLM): "usage": {"completion_tokens": 0, "prompt_tokens": 0, "total_tokens": 0}, } - yield generic_streaming_chunk + yield generic_streaming_chunk \ No newline at end of file diff --git a/libs/python/agent/agent/loops/uitars.py b/libs/python/agent/agent/loops/uitars.py index 10e0e45a..b5d5423c 100644 --- a/libs/python/agent/agent/loops/uitars.py +++ b/libs/python/agent/agent/loops/uitars.py @@ -228,15 +228,24 @@ def parse_uitars_response(text: str, image_width: int, image_height: int) -> Lis # Handle coordinate parameters if "start_box" in param_name or "end_box" in param_name: - # Parse coordinates like '(x,y)' or '(x1,y1,x2,y2)' - numbers = param.replace("(", "").replace(")", "").split(",") - float_numbers = [float(num.strip()) / 1000 for num in numbers] # Normalize to 0-1 range + # Parse coordinates like '<|box_start|>(x,y)<|box_end|>' or '(x,y)' + # First, remove special tokens + clean_param = param.replace("<|box_start|>", "").replace("<|box_end|>", "") + # Then remove parentheses and split + numbers = clean_param.replace("(", "").replace(")", "").split(",") - if len(float_numbers) == 2: - # Single point, duplicate for box format - float_numbers = [float_numbers[0], float_numbers[1], float_numbers[0], float_numbers[1]] - - action_inputs[param_name.strip()] = str(float_numbers) + try: + float_numbers = [float(num.strip()) / 1000 for num in numbers] # Normalize to 0-1 range + + if len(float_numbers) == 2: + # Single point, duplicate for box format + float_numbers = [float_numbers[0], float_numbers[1], float_numbers[0], float_numbers[1]] + + action_inputs[param_name.strip()] = str(float_numbers) + except ValueError as e: + # If parsing fails, keep the original parameter value + print(f"Warning: Could not parse coordinates '{param}': {e}") + action_inputs[param_name.strip()] = param return [{ "thought": thought, From 71bfbf11cdf00fbe5cdcb9a18cba33d259231223 Mon Sep 17 00:00:00 2001 From: f-trycua Date: Tue, 26 Aug 2025 12:19:43 +0200 Subject: [PATCH 016/103] Add docker container architecture --- docs/content/docs/computer-sdk/computers.mdx | 2 +- docs/content/docs/quickstart-cli.mdx | 2 +- docs/content/docs/quickstart-devs.mdx | 2 +- docs/content/docs/quickstart-ui.mdx | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/content/docs/computer-sdk/computers.mdx b/docs/content/docs/computer-sdk/computers.mdx index d2b2a3a1..9b920aee 100644 --- a/docs/content/docs/computer-sdk/computers.mdx +++ b/docs/content/docs/computer-sdk/computers.mdx @@ -109,7 +109,7 @@ cua provides local containers using different providers depending on your host o ```bash # Option 1: Pull from Docker Hub - docker pull trycua/cua-ubuntu:latest + docker pull --platform=linux/amd64 trycua/cua-ubuntu:latest # Option 2: Build locally cd libs/kasm diff --git a/docs/content/docs/quickstart-cli.mdx b/docs/content/docs/quickstart-cli.mdx index f9bcdefe..668ec49d 100644 --- a/docs/content/docs/quickstart-cli.mdx +++ b/docs/content/docs/quickstart-cli.mdx @@ -72,7 +72,7 @@ Choose how you want to run your cua computer. **Cloud containers are recommended 2. Pull the CUA Ubuntu container ```bash - docker pull trycua/cua-ubuntu:latest + docker pull --platform=linux/amd64 trycua/cua-ubuntu:latest ``` diff --git a/docs/content/docs/quickstart-devs.mdx b/docs/content/docs/quickstart-devs.mdx index 1ba86e68..9b220081 100644 --- a/docs/content/docs/quickstart-devs.mdx +++ b/docs/content/docs/quickstart-devs.mdx @@ -71,7 +71,7 @@ Choose how you want to run your cua computer. **Cloud containers are recommended 2. Pull the CUA Ubuntu container ```bash - docker pull trycua/cua-ubuntu:latest + docker pull --platform=linux/amd64 trycua/cua-ubuntu:latest ``` diff --git a/docs/content/docs/quickstart-ui.mdx b/docs/content/docs/quickstart-ui.mdx index ad6ea396..72bac935 100644 --- a/docs/content/docs/quickstart-ui.mdx +++ b/docs/content/docs/quickstart-ui.mdx @@ -72,7 +72,7 @@ Choose how you want to run your cua computer. **Cloud containers are recommended 2. Pull the CUA Ubuntu container ```bash - docker pull trycua/cua-ubuntu:latest + docker pull --platform=linux/amd64 trycua/cua-ubuntu:latest ``` From b54b95ac7ff71316a508c0c9ecca9309a61d423f Mon Sep 17 00:00:00 2001 From: f-trycua Date: Tue, 26 Aug 2025 12:52:47 +0200 Subject: [PATCH 017/103] Update license and readme attributions --- LICENSE.md | 2 +- README.md | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/LICENSE.md b/LICENSE.md index 3ae3445c..207f2665 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2025 trycua +Copyright (c) 2025 Cua AI, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 85cf88ce..88cced63 100644 --- a/README.md +++ b/README.md @@ -181,17 +181,23 @@ Join our [Discord community](https://discord.com/invite/mVnXXpdE85) to discuss i ## License -Cua is open-sourced under the MIT License - see the [LICENSE](LICENSE) file for details. +Cua is open-sourced under the MIT License - see the [LICENSE](LICENSE) file for details. + +The base image `kasmweb/core-ubuntu-jammy` is maintained by [Kasm Technologies](https://github.com/kasmtech/workspaces-core-images) and distributed under the Apache License 2.0. Usage of that image is subject to its own license terms. Microsoft's OmniParser, which is used in this project, is licensed under the Creative Commons Attribution 4.0 International License (CC-BY-4.0) - see the [OmniParser LICENSE](https://github.com/microsoft/OmniParser/blob/master/LICENSE) file for details. ## Contributing -We welcome contributions to CUA! Please refer to our [Contributing Guidelines](CONTRIBUTING.md) for details. +We welcome contributions to Cua! Please refer to our [Contributing Guidelines](CONTRIBUTING.md) for details. ## Trademarks -Apple, macOS, and Apple Silicon are trademarks of Apple Inc. Ubuntu and Canonical are registered trademarks of Canonical Ltd. Microsoft is a registered trademark of Microsoft Corporation. This project is not affiliated with, endorsed by, or sponsored by Apple Inc., Canonical Ltd., or Microsoft Corporation. +Apple, macOS, and Apple Silicon are trademarks of Apple Inc. +Ubuntu and Canonical are registered trademarks of Canonical Ltd. +Microsoft is a registered trademark of Microsoft Corporation. + +This project is not affiliated with, endorsed by, or sponsored by Apple Inc., Canonical Ltd., Microsoft Corporation, or Kasm Technologies. ## Stargazers From a6406ae1796f05c863efb00517358c5b589fd8c3 Mon Sep 17 00:00:00 2001 From: f-trycua Date: Tue, 26 Aug 2025 13:05:35 +0000 Subject: [PATCH 018/103] Update notebooks for KASM Docker --- notebooks/agent_nb.ipynb | 51 +++- notebooks/computer_nb.ipynb | 505 +++++++++++++++++++++++++++++++++++- 2 files changed, 539 insertions(+), 17 deletions(-) diff --git a/notebooks/agent_nb.ipynb b/notebooks/agent_nb.ipynb index a01dbf33..34b2a56a 100644 --- a/notebooks/agent_nb.ipynb +++ b/notebooks/agent_nb.ipynb @@ -31,13 +31,7 @@ "metadata": {}, "outputs": [], "source": [ - "!pip install \"cua-agent[all]\"\n", - "\n", - "# Or install individual agent loops:\n", - "# !pip install cua-agent[openai]\n", - "# !pip install cua-agent[anthropic]\n", - "# !pip install cua-agent[uitars]\n", - "# !pip install cua-agent[omni]" + "!pip install \"cua-agent[all]\"" ] }, { @@ -223,7 +217,38 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Option 2: Agent with Local VMs (Lume daemon)\n", + "## Option 2: KASM Local Docker Containers (cross-platform)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Before we can create an agent, we need to initialize a local computer with Docker provider." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import logging\n", + "from pathlib import Path\n", + "\n", + "computer = Computer(\n", + " os_type=\"linux\",\n", + " provider_type=\"docker\",\n", + " image=\"trycua/cua-ubuntu:latest\",\n", + " name=\"my-cua-container\"\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Option 3: Agent with Local VMs (Lume daemon)\n", "\n", "For Apple Silicon Macs, run agents on local VMs with near-native performance." ] @@ -259,7 +284,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Create an agent with local VM" + "## Create an agent" ] }, { @@ -289,7 +314,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Run tasks on a local Lume VM" + "Run tasks on a computer:" ] }, { @@ -424,7 +449,7 @@ " model=\"openai/computer-use-preview\",\n", " trajectory_dir=str(Path(\"trajectories\")),\n", " verbosity=logging.INFO\n", - ")\n" + ")" ] }, { @@ -521,7 +546,7 @@ ], "metadata": { "kernelspec": { - "display_name": "cua312", + "display_name": "cua", "language": "python", "name": "python3" }, @@ -535,7 +560,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.9" + "version": "3.13.5" } }, "nbformat": 4, diff --git a/notebooks/computer_nb.ipynb b/notebooks/computer_nb.ipynb index 698db37c..0cf35175 100644 --- a/notebooks/computer_nb.ipynb +++ b/notebooks/computer_nb.ipynb @@ -18,9 +18,470 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: Skipping cua-computer as it is not installed.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Collecting cua-computer[all]\n", + " Downloading cua_computer-0.4.4-py3-none-any.whl.metadata (5.8 kB)\n", + "Collecting pillow>=10.0.0 (from cua-computer[all])\n", + " Downloading pillow-11.3.0-cp313-cp313-win_amd64.whl.metadata (9.2 kB)\n", + "Collecting websocket-client>=1.8.0 (from cua-computer[all])\n", + " Downloading websocket_client-1.8.0-py3-none-any.whl.metadata (8.0 kB)\n", + "Collecting websockets>=12.0 (from cua-computer[all])\n", + " Downloading websockets-15.0.1-cp313-cp313-win_amd64.whl.metadata (7.0 kB)\n", + "Collecting aiohttp>=3.9.0 (from cua-computer[all])\n", + " Downloading aiohttp-3.12.15-cp313-cp313-win_amd64.whl.metadata (7.9 kB)\n", + "Collecting cua-core<0.2.0,>=0.1.0 (from cua-computer[all])\n", + " Downloading cua_core-0.1.9-py3-none-any.whl.metadata (1.6 kB)\n", + "Collecting pydantic>=2.11.1 (from cua-computer[all])\n", + " Downloading pydantic-2.11.7-py3-none-any.whl.metadata (67 kB)\n", + "Collecting gradio>=5.23.3 (from cua-computer[all])\n", + " Downloading gradio-5.43.1-py3-none-any.whl.metadata (16 kB)\n", + "Collecting python-dotenv>=1.0.1 (from cua-computer[all])\n", + " Downloading python_dotenv-1.1.1-py3-none-any.whl.metadata (24 kB)\n", + "Collecting datasets>=3.6.0 (from cua-computer[all])\n", + " Downloading datasets-4.0.0-py3-none-any.whl.metadata (19 kB)\n", + "Collecting httpx>=0.24.0 (from cua-core<0.2.0,>=0.1.0->cua-computer[all])\n", + " Downloading httpx-0.28.1-py3-none-any.whl.metadata (7.1 kB)\n", + "Collecting posthog>=3.20.0 (from cua-core<0.2.0,>=0.1.0->cua-computer[all])\n", + " Downloading posthog-6.6.1-py3-none-any.whl.metadata (6.0 kB)\n", + "Collecting aiohappyeyeballs>=2.5.0 (from aiohttp>=3.9.0->cua-computer[all])\n", + " Downloading aiohappyeyeballs-2.6.1-py3-none-any.whl.metadata (5.9 kB)\n", + "Collecting aiosignal>=1.4.0 (from aiohttp>=3.9.0->cua-computer[all])\n", + " Downloading aiosignal-1.4.0-py3-none-any.whl.metadata (3.7 kB)\n", + "Collecting attrs>=17.3.0 (from aiohttp>=3.9.0->cua-computer[all])\n", + " Downloading attrs-25.3.0-py3-none-any.whl.metadata (10 kB)\n", + "Collecting frozenlist>=1.1.1 (from aiohttp>=3.9.0->cua-computer[all])\n", + " Downloading frozenlist-1.7.0-cp313-cp313-win_amd64.whl.metadata (19 kB)\n", + "Collecting multidict<7.0,>=4.5 (from aiohttp>=3.9.0->cua-computer[all])\n", + " Downloading multidict-6.6.4-cp313-cp313-win_amd64.whl.metadata (5.4 kB)\n", + "Collecting propcache>=0.2.0 (from aiohttp>=3.9.0->cua-computer[all])\n", + " Downloading propcache-0.3.2-cp313-cp313-win_amd64.whl.metadata (12 kB)\n", + "Collecting yarl<2.0,>=1.17.0 (from aiohttp>=3.9.0->cua-computer[all])\n", + " Downloading yarl-1.20.1-cp313-cp313-win_amd64.whl.metadata (76 kB)\n", + "Collecting idna>=2.0 (from yarl<2.0,>=1.17.0->aiohttp>=3.9.0->cua-computer[all])\n", + " Downloading idna-3.10-py3-none-any.whl.metadata (10 kB)\n", + "Collecting filelock (from datasets>=3.6.0->cua-computer[all])\n", + " Downloading filelock-3.19.1-py3-none-any.whl.metadata (2.1 kB)\n", + "Collecting numpy>=1.17 (from datasets>=3.6.0->cua-computer[all])\n", + " Downloading numpy-2.3.2-cp313-cp313-win_amd64.whl.metadata (60 kB)\n", + "Collecting pyarrow>=15.0.0 (from datasets>=3.6.0->cua-computer[all])\n", + " Downloading pyarrow-21.0.0-cp313-cp313-win_amd64.whl.metadata (3.4 kB)\n", + "Collecting dill<0.3.9,>=0.3.0 (from datasets>=3.6.0->cua-computer[all])\n", + " Downloading dill-0.3.8-py3-none-any.whl.metadata (10 kB)\n", + "Collecting pandas (from datasets>=3.6.0->cua-computer[all])\n", + " Downloading pandas-2.3.2-cp313-cp313-win_amd64.whl.metadata (19 kB)\n", + "Collecting requests>=2.32.2 (from datasets>=3.6.0->cua-computer[all])\n", + " Downloading requests-2.32.5-py3-none-any.whl.metadata (4.9 kB)\n", + "Collecting tqdm>=4.66.3 (from datasets>=3.6.0->cua-computer[all])\n", + " Downloading tqdm-4.67.1-py3-none-any.whl.metadata (57 kB)\n", + "Collecting xxhash (from datasets>=3.6.0->cua-computer[all])\n", + " Downloading xxhash-3.5.0-cp313-cp313-win_amd64.whl.metadata (13 kB)\n", + "Collecting multiprocess<0.70.17 (from datasets>=3.6.0->cua-computer[all])\n", + " Downloading multiprocess-0.70.16-py312-none-any.whl.metadata (7.2 kB)\n", + "Collecting fsspec<=2025.3.0,>=2023.1.0 (from fsspec[http]<=2025.3.0,>=2023.1.0->datasets>=3.6.0->cua-computer[all])\n", + " Downloading fsspec-2025.3.0-py3-none-any.whl.metadata (11 kB)\n", + "Collecting huggingface-hub>=0.24.0 (from datasets>=3.6.0->cua-computer[all])\n", + " Downloading huggingface_hub-0.34.4-py3-none-any.whl.metadata (14 kB)\n", + "Requirement already satisfied: packaging in c:\\programdata\\anaconda3\\envs\\cua\\lib\\site-packages (from datasets>=3.6.0->cua-computer[all]) (25.0)\n", + "Collecting pyyaml>=5.1 (from datasets>=3.6.0->cua-computer[all])\n", + " Downloading PyYAML-6.0.2-cp313-cp313-win_amd64.whl.metadata (2.1 kB)\n", + "Collecting aiofiles<25.0,>=22.0 (from gradio>=5.23.3->cua-computer[all])\n", + " Downloading aiofiles-24.1.0-py3-none-any.whl.metadata (10 kB)\n", + "Collecting anyio<5.0,>=3.0 (from gradio>=5.23.3->cua-computer[all])\n", + " Downloading anyio-4.10.0-py3-none-any.whl.metadata (4.0 kB)\n", + "Collecting audioop-lts<1.0 (from gradio>=5.23.3->cua-computer[all])\n", + " Downloading audioop_lts-0.2.2-cp313-abi3-win_amd64.whl.metadata (2.0 kB)\n", + "Collecting brotli>=1.1.0 (from gradio>=5.23.3->cua-computer[all])\n", + " Downloading Brotli-1.1.0-cp313-cp313-win_amd64.whl.metadata (5.6 kB)\n", + "Collecting fastapi<1.0,>=0.115.2 (from gradio>=5.23.3->cua-computer[all])\n", + " Downloading fastapi-0.116.1-py3-none-any.whl.metadata (28 kB)\n", + "Collecting ffmpy (from gradio>=5.23.3->cua-computer[all])\n", + " Downloading ffmpy-0.6.1-py3-none-any.whl.metadata (2.9 kB)\n", + "Collecting gradio-client==1.12.1 (from gradio>=5.23.3->cua-computer[all])\n", + " Downloading gradio_client-1.12.1-py3-none-any.whl.metadata (7.1 kB)\n", + "Collecting groovy~=0.1 (from gradio>=5.23.3->cua-computer[all])\n", + " Downloading groovy-0.1.2-py3-none-any.whl.metadata (6.1 kB)\n", + "Collecting jinja2<4.0 (from gradio>=5.23.3->cua-computer[all])\n", + " Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB)\n", + "Collecting markupsafe<4.0,>=2.0 (from gradio>=5.23.3->cua-computer[all])\n", + " Downloading MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl.metadata (4.1 kB)\n", + "Collecting orjson~=3.0 (from gradio>=5.23.3->cua-computer[all])\n", + " Downloading orjson-3.11.2-cp313-cp313-win_amd64.whl.metadata (1.2 kB)\n", + "Collecting pydub (from gradio>=5.23.3->cua-computer[all])\n", + " Downloading pydub-0.25.1-py2.py3-none-any.whl.metadata (1.4 kB)\n", + "Collecting python-multipart>=0.0.18 (from gradio>=5.23.3->cua-computer[all])\n", + " Downloading python_multipart-0.0.20-py3-none-any.whl.metadata (1.8 kB)\n", + "Collecting ruff>=0.9.3 (from gradio>=5.23.3->cua-computer[all])\n", + " Downloading ruff-0.12.10-py3-none-win_amd64.whl.metadata (26 kB)\n", + "Collecting safehttpx<0.2.0,>=0.1.6 (from gradio>=5.23.3->cua-computer[all])\n", + " Downloading safehttpx-0.1.6-py3-none-any.whl.metadata (4.2 kB)\n", + "Collecting semantic-version~=2.0 (from gradio>=5.23.3->cua-computer[all])\n", + " Downloading semantic_version-2.10.0-py2.py3-none-any.whl.metadata (9.7 kB)\n", + "Collecting starlette<1.0,>=0.40.0 (from gradio>=5.23.3->cua-computer[all])\n", + " Downloading starlette-0.47.3-py3-none-any.whl.metadata (6.2 kB)\n", + "Collecting tomlkit<0.14.0,>=0.12.0 (from gradio>=5.23.3->cua-computer[all])\n", + " Downloading tomlkit-0.13.3-py3-none-any.whl.metadata (2.8 kB)\n", + "Collecting typer<1.0,>=0.12 (from gradio>=5.23.3->cua-computer[all])\n", + " Downloading typer-0.16.1-py3-none-any.whl.metadata (15 kB)\n", + "Requirement already satisfied: typing-extensions~=4.0 in c:\\programdata\\anaconda3\\envs\\cua\\lib\\site-packages (from gradio>=5.23.3->cua-computer[all]) (4.14.1)\n", + "Collecting uvicorn>=0.14.0 (from gradio>=5.23.3->cua-computer[all])\n", + " Downloading uvicorn-0.35.0-py3-none-any.whl.metadata (6.5 kB)\n", + "Collecting sniffio>=1.1 (from anyio<5.0,>=3.0->gradio>=5.23.3->cua-computer[all])\n", + " Downloading sniffio-1.3.1-py3-none-any.whl.metadata (3.9 kB)\n", + "Collecting certifi (from httpx>=0.24.0->cua-core<0.2.0,>=0.1.0->cua-computer[all])\n", + " Downloading certifi-2025.8.3-py3-none-any.whl.metadata (2.4 kB)\n", + "Collecting httpcore==1.* (from httpx>=0.24.0->cua-core<0.2.0,>=0.1.0->cua-computer[all])\n", + " Downloading httpcore-1.0.9-py3-none-any.whl.metadata (21 kB)\n", + "Collecting h11>=0.16 (from httpcore==1.*->httpx>=0.24.0->cua-core<0.2.0,>=0.1.0->cua-computer[all])\n", + " Downloading h11-0.16.0-py3-none-any.whl.metadata (8.3 kB)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in c:\\programdata\\anaconda3\\envs\\cua\\lib\\site-packages (from pandas->datasets>=3.6.0->cua-computer[all]) (2.9.0.post0)\n", + "Collecting pytz>=2020.1 (from pandas->datasets>=3.6.0->cua-computer[all])\n", + " Downloading pytz-2025.2-py2.py3-none-any.whl.metadata (22 kB)\n", + "Collecting tzdata>=2022.7 (from pandas->datasets>=3.6.0->cua-computer[all])\n", + " Downloading tzdata-2025.2-py2.py3-none-any.whl.metadata (1.4 kB)\n", + "Collecting annotated-types>=0.6.0 (from pydantic>=2.11.1->cua-computer[all])\n", + " Downloading annotated_types-0.7.0-py3-none-any.whl.metadata (15 kB)\n", + "Collecting pydantic-core==2.33.2 (from pydantic>=2.11.1->cua-computer[all])\n", + " Downloading pydantic_core-2.33.2-cp313-cp313-win_amd64.whl.metadata (6.9 kB)\n", + "Collecting typing-inspection>=0.4.0 (from pydantic>=2.11.1->cua-computer[all])\n", + " Downloading typing_inspection-0.4.1-py3-none-any.whl.metadata (2.6 kB)\n", + "Collecting click>=8.0.0 (from typer<1.0,>=0.12->gradio>=5.23.3->cua-computer[all])\n", + " Downloading click-8.2.1-py3-none-any.whl.metadata (2.5 kB)\n", + "Collecting shellingham>=1.3.0 (from typer<1.0,>=0.12->gradio>=5.23.3->cua-computer[all])\n", + " Downloading shellingham-1.5.4-py2.py3-none-any.whl.metadata (3.5 kB)\n", + "Collecting rich>=10.11.0 (from typer<1.0,>=0.12->gradio>=5.23.3->cua-computer[all])\n", + " Downloading rich-14.1.0-py3-none-any.whl.metadata (18 kB)\n", + "Requirement already satisfied: colorama in c:\\programdata\\anaconda3\\envs\\cua\\lib\\site-packages (from click>=8.0.0->typer<1.0,>=0.12->gradio>=5.23.3->cua-computer[all]) (0.4.6)\n", + "Requirement already satisfied: six>=1.5 in c:\\programdata\\anaconda3\\envs\\cua\\lib\\site-packages (from posthog>=3.20.0->cua-core<0.2.0,>=0.1.0->cua-computer[all]) (1.17.0)\n", + "Collecting backoff>=1.10.0 (from posthog>=3.20.0->cua-core<0.2.0,>=0.1.0->cua-computer[all])\n", + " Downloading backoff-2.2.1-py3-none-any.whl.metadata (14 kB)\n", + "Collecting distro>=1.5.0 (from posthog>=3.20.0->cua-core<0.2.0,>=0.1.0->cua-computer[all])\n", + " Downloading distro-1.9.0-py3-none-any.whl.metadata (6.8 kB)\n", + "Collecting charset_normalizer<4,>=2 (from requests>=2.32.2->datasets>=3.6.0->cua-computer[all])\n", + " Downloading charset_normalizer-3.4.3-cp313-cp313-win_amd64.whl.metadata (37 kB)\n", + "Collecting urllib3<3,>=1.21.1 (from requests>=2.32.2->datasets>=3.6.0->cua-computer[all])\n", + " Downloading urllib3-2.5.0-py3-none-any.whl.metadata (6.5 kB)\n", + "Collecting markdown-it-py>=2.2.0 (from rich>=10.11.0->typer<1.0,>=0.12->gradio>=5.23.3->cua-computer[all])\n", + " Downloading markdown_it_py-4.0.0-py3-none-any.whl.metadata (7.3 kB)\n", + "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in c:\\programdata\\anaconda3\\envs\\cua\\lib\\site-packages (from rich>=10.11.0->typer<1.0,>=0.12->gradio>=5.23.3->cua-computer[all]) (2.19.2)\n", + "Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich>=10.11.0->typer<1.0,>=0.12->gradio>=5.23.3->cua-computer[all])\n", + " Downloading mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB)\n", + "Downloading cua_computer-0.4.4-py3-none-any.whl (87 kB)\n", + "Downloading cua_core-0.1.9-py3-none-any.whl (5.2 kB)\n", + "Downloading aiohttp-3.12.15-cp313-cp313-win_amd64.whl (449 kB)\n", + "Downloading multidict-6.6.4-cp313-cp313-win_amd64.whl (45 kB)\n", + "Downloading yarl-1.20.1-cp313-cp313-win_amd64.whl (86 kB)\n", + "Downloading aiohappyeyeballs-2.6.1-py3-none-any.whl (15 kB)\n", + "Downloading aiosignal-1.4.0-py3-none-any.whl (7.5 kB)\n", + "Downloading attrs-25.3.0-py3-none-any.whl (63 kB)\n", + "Downloading datasets-4.0.0-py3-none-any.whl (494 kB)\n", + "Downloading dill-0.3.8-py3-none-any.whl (116 kB)\n", + "Downloading fsspec-2025.3.0-py3-none-any.whl (193 kB)\n", + "Downloading multiprocess-0.70.16-py312-none-any.whl (146 kB)\n", + "Downloading frozenlist-1.7.0-cp313-cp313-win_amd64.whl (43 kB)\n", + "Downloading gradio-5.43.1-py3-none-any.whl (59.6 MB)\n", + " ---------------------------------------- 0.0/59.6 MB ? eta -:--:--\n", + " -------------------------------------- - 57.4/59.6 MB 278.0 MB/s eta 0:00:01\n", + " --------------------------------------- 59.5/59.6 MB 277.3 MB/s eta 0:00:01\n", + " ---------------------------------------- 59.6/59.6 MB 138.5 MB/s eta 0:00:00\n", + "Downloading gradio_client-1.12.1-py3-none-any.whl (324 kB)\n", + "Downloading aiofiles-24.1.0-py3-none-any.whl (15 kB)\n", + "Downloading anyio-4.10.0-py3-none-any.whl (107 kB)\n", + "Downloading audioop_lts-0.2.2-cp313-abi3-win_amd64.whl (30 kB)\n", + "Downloading fastapi-0.116.1-py3-none-any.whl (95 kB)\n", + "Downloading groovy-0.1.2-py3-none-any.whl (14 kB)\n", + "Downloading httpx-0.28.1-py3-none-any.whl (73 kB)\n", + "Downloading httpcore-1.0.9-py3-none-any.whl (78 kB)\n", + "Downloading huggingface_hub-0.34.4-py3-none-any.whl (561 kB)\n", + " ---------------------------------------- 0.0/561.5 kB ? eta -:--:--\n", + " --------------------------------------- 561.5/561.5 kB 18.0 MB/s eta 0:00:00\n", + "Downloading jinja2-3.1.6-py3-none-any.whl (134 kB)\n", + "Downloading MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl (15 kB)\n", + "Downloading numpy-2.3.2-cp313-cp313-win_amd64.whl (12.8 MB)\n", + " ---------------------------------------- 0.0/12.8 MB ? eta -:--:--\n", + " ---------------------------------------- 12.8/12.8 MB 129.9 MB/s eta 0:00:00\n", + "Downloading orjson-3.11.2-cp313-cp313-win_amd64.whl (119 kB)\n", + "Downloading pandas-2.3.2-cp313-cp313-win_amd64.whl (11.0 MB)\n", + " ---------------------------------------- 0.0/11.0 MB ? eta -:--:--\n", + " ---------------------------------------- 11.0/11.0 MB 84.1 MB/s eta 0:00:00\n", + "Downloading pillow-11.3.0-cp313-cp313-win_amd64.whl (7.0 MB)\n", + " ---------------------------------------- 0.0/7.0 MB ? eta -:--:--\n", + " ---------------------------------------- 7.0/7.0 MB 107.0 MB/s eta 0:00:00\n", + "Downloading pydantic-2.11.7-py3-none-any.whl (444 kB)\n", + "Downloading pydantic_core-2.33.2-cp313-cp313-win_amd64.whl (2.0 MB)\n", + " ---------------------------------------- 0.0/2.0 MB ? eta -:--:--\n", + " ---------------- ----------------------- 0.8/2.0 MB 6.0 MB/s eta 0:00:01\n", + " ---------------------------------------- 2.0/2.0 MB 13.6 MB/s eta 0:00:00\n", + "Downloading PyYAML-6.0.2-cp313-cp313-win_amd64.whl (156 kB)\n", + "Downloading safehttpx-0.1.6-py3-none-any.whl (8.7 kB)\n", + "Downloading semantic_version-2.10.0-py2.py3-none-any.whl (15 kB)\n", + "Downloading starlette-0.47.3-py3-none-any.whl (72 kB)\n", + "Downloading tomlkit-0.13.3-py3-none-any.whl (38 kB)\n", + "Downloading typer-0.16.1-py3-none-any.whl (46 kB)\n", + "Downloading websockets-15.0.1-cp313-cp313-win_amd64.whl (176 kB)\n", + "Downloading annotated_types-0.7.0-py3-none-any.whl (13 kB)\n", + "Downloading Brotli-1.1.0-cp313-cp313-win_amd64.whl (358 kB)\n", + "Downloading click-8.2.1-py3-none-any.whl (102 kB)\n", + "Downloading h11-0.16.0-py3-none-any.whl (37 kB)\n", + "Downloading idna-3.10-py3-none-any.whl (70 kB)\n", + "Downloading posthog-6.6.1-py3-none-any.whl (119 kB)\n", + "Downloading requests-2.32.5-py3-none-any.whl (64 kB)\n", + "Downloading charset_normalizer-3.4.3-cp313-cp313-win_amd64.whl (107 kB)\n", + "Downloading urllib3-2.5.0-py3-none-any.whl (129 kB)\n", + "Downloading backoff-2.2.1-py3-none-any.whl (15 kB)\n", + "Downloading certifi-2025.8.3-py3-none-any.whl (161 kB)\n", + "Downloading distro-1.9.0-py3-none-any.whl (20 kB)\n", + "Downloading propcache-0.3.2-cp313-cp313-win_amd64.whl (40 kB)\n", + "Downloading pyarrow-21.0.0-cp313-cp313-win_amd64.whl (26.1 MB)\n", + " ---------------------------------------- 0.0/26.1 MB ? eta -:--:--\n", + " -------------------------------- ------- 21.0/26.1 MB 151.4 MB/s eta 0:00:01\n", + " --------------------------------------- 26.0/26.1 MB 63.3 MB/s eta 0:00:01\n", + " ---------------------------------------- 26.1/26.1 MB 50.1 MB/s eta 0:00:00\n", + "Downloading python_dotenv-1.1.1-py3-none-any.whl (20 kB)\n", + "Downloading python_multipart-0.0.20-py3-none-any.whl (24 kB)\n", + "Downloading pytz-2025.2-py2.py3-none-any.whl (509 kB)\n", + "Downloading rich-14.1.0-py3-none-any.whl (243 kB)\n", + "Downloading markdown_it_py-4.0.0-py3-none-any.whl (87 kB)\n", + "Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB)\n", + "Downloading ruff-0.12.10-py3-none-win_amd64.whl (13.0 MB)\n", + " ---------------------------------------- 0.0/13.0 MB ? eta -:--:--\n", + " ---------------------------------------- 13.0/13.0 MB 143.1 MB/s eta 0:00:00\n", + "Downloading shellingham-1.5.4-py2.py3-none-any.whl (9.8 kB)\n", + "Downloading sniffio-1.3.1-py3-none-any.whl (10 kB)\n", + "Downloading tqdm-4.67.1-py3-none-any.whl (78 kB)\n", + "Downloading typing_inspection-0.4.1-py3-none-any.whl (14 kB)\n", + "Downloading tzdata-2025.2-py2.py3-none-any.whl (347 kB)\n", + "Downloading uvicorn-0.35.0-py3-none-any.whl (66 kB)\n", + "Downloading websocket_client-1.8.0-py3-none-any.whl (58 kB)\n", + "Downloading ffmpy-0.6.1-py3-none-any.whl (5.5 kB)\n", + "Downloading filelock-3.19.1-py3-none-any.whl (15 kB)\n", + "Downloading pydub-0.25.1-py2.py3-none-any.whl (32 kB)\n", + "Downloading xxhash-3.5.0-cp313-cp313-win_amd64.whl (30 kB)\n", + "Installing collected packages: pytz, pydub, brotli, xxhash, websockets, websocket-client, urllib3, tzdata, typing-inspection, tqdm, tomlkit, sniffio, shellingham, semantic-version, ruff, pyyaml, python-multipart, python-dotenv, pydantic-core, pyarrow, propcache, pillow, orjson, numpy, multidict, mdurl, markupsafe, idna, h11, groovy, fsspec, frozenlist, filelock, ffmpy, distro, dill, click, charset_normalizer, certifi, backoff, audioop-lts, attrs, annotated-types, aiohappyeyeballs, aiofiles, yarl, uvicorn, requests, pydantic, pandas, multiprocess, markdown-it-py, jinja2, httpcore, anyio, aiosignal, starlette, rich, posthog, huggingface-hub, httpx, aiohttp, typer, safehttpx, gradio-client, fastapi, cua-core, gradio, datasets, cua-computer\n", + "\n", + " ---------------------------------------- 0/70 [pytz]\n", + " ---------------------------------------- 0/70 [pytz]\n", + " ---------------------------------------- 0/70 [pytz]\n", + " --------------------------------------- 1/70 [pydub]\n", + " -- ------------------------------------- 4/70 [websockets]\n", + " -- ------------------------------------- 4/70 [websockets]\n", + " --- ------------------------------------ 6/70 [urllib3]\n", + " --- ------------------------------------ 6/70 [urllib3]\n", + " ---- ----------------------------------- 7/70 [tzdata]\n", + " ---- ----------------------------------- 7/70 [tzdata]\n", + " ---- ----------------------------------- 7/70 [tzdata]\n", + " ----- ---------------------------------- 9/70 [tqdm]\n", + " ----- ---------------------------------- 10/70 [tomlkit]\n", + " ------- -------------------------------- 13/70 [semantic-version]\n", + " -------- ------------------------------- 14/70 [ruff]\n", + " -------- ------------------------------- 14/70 [ruff]\n", + " --------- ------------------------------ 16/70 [python-multipart]\n", + " ---------- ----------------------------- 18/70 [pydantic-core]\n", + " ---------- ----------------------------- 19/70 [pyarrow]\n", + " ---------- ----------------------------- 19/70 [pyarrow]\n", + " ---------- ----------------------------- 19/70 [pyarrow]\n", + " ---------- ----------------------------- 19/70 [pyarrow]\n", + " ---------- ----------------------------- 19/70 [pyarrow]\n", + " ---------- ----------------------------- 19/70 [pyarrow]\n", + " ---------- ----------------------------- 19/70 [pyarrow]\n", + " ---------- ----------------------------- 19/70 [pyarrow]\n", + " ---------- ----------------------------- 19/70 [pyarrow]\n", + " ---------- ----------------------------- 19/70 [pyarrow]\n", + " ---------- ----------------------------- 19/70 [pyarrow]\n", + " ---------- ----------------------------- 19/70 [pyarrow]\n", + " ---------- ----------------------------- 19/70 [pyarrow]\n", + " ------------ --------------------------- 21/70 [pillow]\n", + " ------------ --------------------------- 21/70 [pillow]\n", + " ------------ --------------------------- 21/70 [pillow]\n", + " ------------ --------------------------- 21/70 [pillow]\n", + " ------------ --------------------------- 21/70 [pillow]\n", + " ------------- -------------------------- 23/70 [numpy]\n", + " ------------- -------------------------- 23/70 [numpy]\n", + " ------------- -------------------------- 23/70 [numpy]\n", + " ------------- -------------------------- 23/70 [numpy]\n", + " ------------- -------------------------- 23/70 [numpy]\n", + " ------------- -------------------------- 23/70 [numpy]\n", + " ------------- -------------------------- 23/70 [numpy]\n", + " ------------- -------------------------- 23/70 [numpy]\n", + " ------------- -------------------------- 23/70 [numpy]\n", + " ------------- -------------------------- 23/70 [numpy]\n", + " ------------- -------------------------- 23/70 [numpy]\n", + " ------------- -------------------------- 23/70 [numpy]\n", + " ------------- -------------------------- 23/70 [numpy]\n", + " ------------- -------------------------- 23/70 [numpy]\n", + " ------------- -------------------------- 23/70 [numpy]\n", + " ------------- -------------------------- 23/70 [numpy]\n", + " ------------- -------------------------- 23/70 [numpy]\n", + " ------------- -------------------------- 23/70 [numpy]\n", + " ------------- -------------------------- 23/70 [numpy]\n", + " ------------- -------------------------- 23/70 [numpy]\n", + " ------------- -------------------------- 23/70 [numpy]\n", + " ------------- -------------------------- 23/70 [numpy]\n", + " ------------- -------------------------- 23/70 [numpy]\n", + " ------------- -------------------------- 23/70 [numpy]\n", + " ------------- -------------------------- 23/70 [numpy]\n", + " -------------- ------------------------- 26/70 [markupsafe]\n", + " --------------- ------------------------ 27/70 [idna]\n", + " ----------------- ---------------------- 30/70 [fsspec]\n", + " ----------------- ---------------------- 30/70 [fsspec]\n", + " ----------------- ---------------------- 30/70 [fsspec]\n", + " ------------------- -------------------- 34/70 [distro]\n", + " -------------------- ------------------- 35/70 [dill]\n", + " -------------------- ------------------- 36/70 [click]\n", + " --------------------- ------------------ 37/70 [charset_normalizer]\n", + " ---------------------- ----------------- 40/70 [audioop-lts]\n", + " ------------------------ --------------- 43/70 [aiohappyeyeballs]\n", + " -------------------------- ------------- 46/70 [uvicorn]\n", + " -------------------------- ------------- 46/70 [uvicorn]\n", + " --------------------------- ------------ 48/70 [pydantic]\n", + " --------------------------- ------------ 48/70 [pydantic]\n", + " --------------------------- ------------ 48/70 [pydantic]\n", + " --------------------------- ------------ 48/70 [pydantic]\n", + " --------------------------- ------------ 48/70 [pydantic]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 49/70 [pandas]\n", + " ---------------------------- ----------- 50/70 [multiprocess]\n", + " ---------------------------- ----------- 50/70 [multiprocess]\n", + " ----------------------------- ---------- 51/70 [markdown-it-py]\n", + " ----------------------------- ---------- 52/70 [jinja2]\n", + " ----------------------------- ---------- 52/70 [jinja2]\n", + " ------------------------------ --------- 53/70 [httpcore]\n", + " ------------------------------ --------- 54/70 [anyio]\n", + " -------------------------------- ------- 56/70 [starlette]\n", + " -------------------------------- ------- 56/70 [starlette]\n", + " -------------------------------- ------- 57/70 [rich]\n", + " -------------------------------- ------- 57/70 [rich]\n", + " -------------------------------- ------- 57/70 [rich]\n", + " --------------------------------- ------ 58/70 [posthog]\n", + " --------------------------------- ------ 59/70 [huggingface-hub]\n", + " --------------------------------- ------ 59/70 [huggingface-hub]\n", + " --------------------------------- ------ 59/70 [huggingface-hub]\n", + " --------------------------------- ------ 59/70 [huggingface-hub]\n", + " --------------------------------- ------ 59/70 [huggingface-hub]\n", + " ---------------------------------- ----- 60/70 [httpx]\n", + " ---------------------------------- ----- 61/70 [aiohttp]\n", + " ---------------------------------- ----- 61/70 [aiohttp]\n", + " ---------------------------------- ----- 61/70 [aiohttp]\n", + " ----------------------------------- ---- 62/70 [typer]\n", + " ------------------------------------ --- 64/70 [gradio-client]\n", + " ------------------------------------- -- 65/70 [fastapi]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 67/70 [gradio]\n", + " -------------------------------------- - 68/70 [datasets]\n", + " -------------------------------------- - 68/70 [datasets]\n", + " -------------------------------------- - 68/70 [datasets]\n", + " -------------------------------------- - 68/70 [datasets]\n", + " -------------------------------------- - 68/70 [datasets]\n", + " --------------------------------------- 69/70 [cua-computer]\n", + " --------------------------------------- 69/70 [cua-computer]\n", + " ---------------------------------------- 70/70 [cua-computer]\n", + "\n", + "Successfully installed aiofiles-24.1.0 aiohappyeyeballs-2.6.1 aiohttp-3.12.15 aiosignal-1.4.0 annotated-types-0.7.0 anyio-4.10.0 attrs-25.3.0 audioop-lts-0.2.2 backoff-2.2.1 brotli-1.1.0 certifi-2025.8.3 charset_normalizer-3.4.3 click-8.2.1 cua-computer-0.4.4 cua-core-0.1.9 datasets-4.0.0 dill-0.3.8 distro-1.9.0 fastapi-0.116.1 ffmpy-0.6.1 filelock-3.19.1 frozenlist-1.7.0 fsspec-2025.3.0 gradio-5.43.1 gradio-client-1.12.1 groovy-0.1.2 h11-0.16.0 httpcore-1.0.9 httpx-0.28.1 huggingface-hub-0.34.4 idna-3.10 jinja2-3.1.6 markdown-it-py-4.0.0 markupsafe-3.0.2 mdurl-0.1.2 multidict-6.6.4 multiprocess-0.70.16 numpy-2.3.2 orjson-3.11.2 pandas-2.3.2 pillow-11.3.0 posthog-6.6.1 propcache-0.3.2 pyarrow-21.0.0 pydantic-2.11.7 pydantic-core-2.33.2 pydub-0.25.1 python-dotenv-1.1.1 python-multipart-0.0.20 pytz-2025.2 pyyaml-6.0.2 requests-2.32.5 rich-14.1.0 ruff-0.12.10 safehttpx-0.1.6 semantic-version-2.10.0 shellingham-1.5.4 sniffio-1.3.1 starlette-0.47.3 tomlkit-0.13.3 tqdm-4.67.1 typer-0.16.1 typing-inspection-0.4.1 tzdata-2025.2 urllib3-2.5.0 uvicorn-0.35.0 websocket-client-1.8.0 websockets-15.0.1 xxhash-3.5.0 yarl-1.20.1\n" + ] + } + ], "source": [ "!pip uninstall -y cua-computer\n", "!pip install \"cua-computer[all]\"" @@ -165,7 +626,43 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Option 2: Local VMs (Lume daemon)\n", + "## Option 2: KASM Local Docker Containers (cross-platform)\n", + "\n", + "### Pull from Docker Hub\n", + "```bash\n", + "docker pull --platform=linux/amd64 trycua/cua-ubuntu:latest\n", + "```\n", + "\n", + "### Or build locally\n", + "```bash\n", + "cd libs/kasm\n", + "docker build -t cua-ubuntu:latest .\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from computer import Computer\n", + "\n", + "computer = Computer(\n", + " os_type=\"linux\",\n", + " provider_type=\"docker\",\n", + " image=\"trycua/cua-ubuntu:latest\",\n", + " name=\"my-cua-container\"\n", + ")\n", + "\n", + "await computer.run() # Launch & connect to Docker container" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Option 3: Local VMs (Lume daemon)\n", "\n", "For Apple Silicon Macs, you can run VMs locally using the Lume daemon." ] @@ -590,7 +1087,7 @@ ], "metadata": { "kernelspec": { - "display_name": ".venv", + "display_name": "cua", "language": "python", "name": "python3" }, From 26565beaa0eead7bd316d10b994a362bfface08b Mon Sep 17 00:00:00 2001 From: James Murdza Date: Tue, 26 Aug 2025 10:39:06 -0400 Subject: [PATCH 019/103] Add missing callbacks page to docs --- docs/content/docs/agent-sdk/callbacks/index.mdx | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 docs/content/docs/agent-sdk/callbacks/index.mdx diff --git a/docs/content/docs/agent-sdk/callbacks/index.mdx b/docs/content/docs/agent-sdk/callbacks/index.mdx new file mode 100644 index 00000000..a432f5d4 --- /dev/null +++ b/docs/content/docs/agent-sdk/callbacks/index.mdx @@ -0,0 +1,15 @@ +--- +title: Callbacks +--- + +Callbacks in the Agent SDK provide hooks into the agent's lifecycle, allowing for custom functionality to be executed at various stages of an agent's run. They enable extensibility by allowing developers to integrate their own logic for tasks such as logging, cost management, and data anonymization. + +This section details the various callbacks available in the Agent SDK. + +## Available Callbacks + +- [Agent Lifecycle](agent-lifecycle.mdx) +- [Cost Saving](cost-saving.mdx) +- [Logging](logging.mdx) +- [PII Anonymization](pii-anonymization.mdx) +- [Trajectories](trajectories.mdx) From ba15aed316c4f3efffb2d697f96ef9e51503f6ae Mon Sep 17 00:00:00 2001 From: James Murdza Date: Tue, 26 Aug 2025 10:39:13 -0400 Subject: [PATCH 020/103] Fix broken links in docs --- docs/content/docs/agent-sdk/benchmarks/index.mdx | 6 +++--- docs/content/docs/agent-sdk/usage-tracking.mdx | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/content/docs/agent-sdk/benchmarks/index.mdx b/docs/content/docs/agent-sdk/benchmarks/index.mdx index 59e9b7ad..6397b2ec 100644 --- a/docs/content/docs/agent-sdk/benchmarks/index.mdx +++ b/docs/content/docs/agent-sdk/benchmarks/index.mdx @@ -9,9 +9,9 @@ The benchmark system evaluates models on GUI grounding tasks, specifically agent ## Available Benchmarks -- **[ScreenSpot-v2](./screenspot-v2)** - Standard resolution GUI grounding -- **[ScreenSpot-Pro](./screenspot-pro)** - High-resolution GUI grounding -- **[Interactive Testing](./interactive)** - Real-time testing and visualization +- **[ScreenSpot-v2](./benchmarks/screenspot-v2)** - Standard resolution GUI grounding +- **[ScreenSpot-Pro](./benchmarks/screenspot-pro)** - High-resolution GUI grounding +- **[Interactive Testing](./benchmarks/interactive)** - Real-time testing and visualization ## Quick Start diff --git a/docs/content/docs/agent-sdk/usage-tracking.mdx b/docs/content/docs/agent-sdk/usage-tracking.mdx index 54bbcaae..2709d738 100644 --- a/docs/content/docs/agent-sdk/usage-tracking.mdx +++ b/docs/content/docs/agent-sdk/usage-tracking.mdx @@ -56,7 +56,7 @@ agent = ComputerAgent( ) ``` -See also: [Budget Manager Callbacks](./callbacks#cost-saving) +See also: [Budget Manager Callbacks](./callbacks/cost-saving) ## See Also - [Prompt Caching](./prompt-caching) From 46801edebfba85cfd417c8fa67c600b03d55375a Mon Sep 17 00:00:00 2001 From: James Murdza Date: Tue, 26 Aug 2025 10:39:48 -0400 Subject: [PATCH 021/103] Add package-lock.json to docs --- docs/package-lock.json | 7189 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 7189 insertions(+) create mode 100644 docs/package-lock.json diff --git a/docs/package-lock.json b/docs/package-lock.json new file mode 100644 index 00000000..e4379add --- /dev/null +++ b/docs/package-lock.json @@ -0,0 +1,7189 @@ +{ + "name": "docs", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "docs", + "version": "0.0.0", + "hasInstallScript": true, + "dependencies": { + "fumadocs-core": "15.5.1", + "fumadocs-mdx": "11.6.7", + "fumadocs-ui": "15.5.1", + "lucide-react": "^0.525.0", + "mermaid": "^11.8.1", + "next": "15.3.3", + "next-themes": "^0.4.6", + "react": "^19.1.0", + "react-dom": "^19.1.0", + "remark": "^15.0.1", + "remark-gfm": "^4.0.1", + "remark-mdx": "^3.1.0", + "tailwind-merge": "^3.3.1", + "zod": "^3.25.76" + }, + "devDependencies": { + "@tailwindcss/postcss": "^4.1.8", + "@types/mdx": "^2.0.13", + "@types/node": "22.15.28", + "@types/react": "^19.1.6", + "@types/react-dom": "^19.1.5", + "postcss": "^8.5.4", + "prettier": "^3.6.2", + "tailwindcss": "^4.1.8", + "typescript": "^5.8.3" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@antfu/install-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.1.0.tgz", + "integrity": "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==", + "license": "MIT", + "dependencies": { + "package-manager-detector": "^1.3.0", + "tinyexec": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@antfu/utils": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-8.1.1.tgz", + "integrity": "sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@braintree/sanitize-url": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.1.tgz", + "integrity": "sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==", + "license": "MIT" + }, + "node_modules/@chevrotain/cst-dts-gen": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz", + "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==", + "license": "Apache-2.0", + "dependencies": { + "@chevrotain/gast": "11.0.3", + "@chevrotain/types": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/@chevrotain/gast": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz", + "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==", + "license": "Apache-2.0", + "dependencies": { + "@chevrotain/types": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/@chevrotain/regexp-to-ast": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz", + "integrity": "sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==", + "license": "Apache-2.0" + }, + "node_modules/@chevrotain/types": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz", + "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==", + "license": "Apache-2.0" + }, + "node_modules/@chevrotain/utils": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz", + "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==", + "license": "Apache-2.0" + }, + "node_modules/@emnapi/runtime": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.5.tgz", + "integrity": "sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.9.tgz", + "integrity": "sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.9.tgz", + "integrity": "sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.9.tgz", + "integrity": "sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.9.tgz", + "integrity": "sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.9.tgz", + "integrity": "sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.9.tgz", + "integrity": "sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.9.tgz", + "integrity": "sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.9.tgz", + "integrity": "sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.9.tgz", + "integrity": "sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.9.tgz", + "integrity": "sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.9.tgz", + "integrity": "sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.9.tgz", + "integrity": "sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.9.tgz", + "integrity": "sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.9.tgz", + "integrity": "sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.9.tgz", + "integrity": "sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.9.tgz", + "integrity": "sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.9.tgz", + "integrity": "sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.9.tgz", + "integrity": "sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.9.tgz", + "integrity": "sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.9.tgz", + "integrity": "sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.9.tgz", + "integrity": "sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.9.tgz", + "integrity": "sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.9.tgz", + "integrity": "sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.9.tgz", + "integrity": "sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.9.tgz", + "integrity": "sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.9.tgz", + "integrity": "sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", + "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz", + "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.3", + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.6.tgz", + "integrity": "sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.7.4" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", + "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", + "license": "MIT" + }, + "node_modules/@formatjs/intl-localematcher": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.6.1.tgz", + "integrity": "sha512-ePEgLgVCqi2BBFnTMWPfIghu6FkbZnnBVhO2sSxvLfrdFw7wCHAHiDoM2h4NRgjbaY7+B7HgOLZGkK187pZTZg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "license": "MIT" + }, + "node_modules/@iconify/utils": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.3.0.tgz", + "integrity": "sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==", + "license": "MIT", + "dependencies": { + "@antfu/install-pkg": "^1.0.0", + "@antfu/utils": "^8.1.0", + "@iconify/types": "^2.0.0", + "debug": "^4.4.0", + "globals": "^15.14.0", + "kolorist": "^1.8.0", + "local-pkg": "^1.0.0", + "mlly": "^1.7.4" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.3.tgz", + "integrity": "sha512-ryFMfvxxpQRsgZJqBd4wsttYQbCxsJksrv9Lw/v798JcQ8+w84mBWuXwl+TT0WJ/WrYOLaYpwQXi3sA9nTIaIg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.2.0" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.3.tgz", + "integrity": "sha512-yHpJYynROAj12TA6qil58hmPmAwxKKC7reUqtGLzsOHfP7/rniNGTL8tjWX6L3CTV4+5P4ypcS7Pp+7OB+8ihA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.2.0" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.0.tgz", + "integrity": "sha512-sBZmpwmxqwlqG9ueWFXtockhsxefaV6O84BMOrhtg/YqbTaRdqDE7hxraVE3y6gVM4eExmfzW4a8el9ArLeEiQ==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.0.tgz", + "integrity": "sha512-M64XVuL94OgiNHa5/m2YvEQI5q2cl9d/wk0qFTDVXcYzi43lxuiFTftMR1tOnFQovVXNZJ5TURSDK2pNe9Yzqg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.0.tgz", + "integrity": "sha512-mWd2uWvDtL/nvIzThLq3fr2nnGfyr/XMXlq8ZJ9WMR6PXijHlC3ksp0IpuhK6bougvQrchUAfzRLnbsen0Cqvw==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.0.tgz", + "integrity": "sha512-RXwd0CgG+uPRX5YYrkzKyalt2OJYRiJQ8ED/fi1tq9WQW2jsQIn0tqrlR5l5dr/rjqq6AHAxURhj2DVjyQWSOA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.0.tgz", + "integrity": "sha512-Xod/7KaDDHkYu2phxxfeEPXfVXFKx70EAFZ0qyUdOjCcxbjqyJOEUpDe6RIyaunGxT34Anf9ue/wuWOqBW2WcQ==", + "cpu": [ + "ppc64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.0.tgz", + "integrity": "sha512-eMKfzDxLGT8mnmPJTNMcjfO33fLiTDsrMlUVcp6b96ETbnJmd4uvZxVJSKPQfS+odwfVaGifhsB07J1LynFehw==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.0.tgz", + "integrity": "sha512-ZW3FPWIc7K1sH9E3nxIGB3y3dZkpJlMnkk7z5tu1nSkBoCgw2nSRTFHI5pB/3CQaJM0pdzMF3paf9ckKMSE9Tg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.0.tgz", + "integrity": "sha512-UG+LqQJbf5VJ8NWJ5Z3tdIe/HXjuIdo4JeVNADXBFuG7z9zjoegpzzGIyV5zQKi4zaJjnAd2+g2nna8TZvuW9Q==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.0.tgz", + "integrity": "sha512-SRYOLR7CXPgNze8akZwjoGBoN1ThNZoqpOgfnOxmWsklTGVfJiGJoC/Lod7aNMGA1jSsKWM1+HRX43OP6p9+6Q==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.3.tgz", + "integrity": "sha512-oBK9l+h6KBN0i3dC8rYntLiVfW8D8wH+NPNT3O/WBHeW0OQWCjfWksLUaPidsrDKpJgXp3G3/hkmhptAW0I3+A==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.2.0" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.3.tgz", + "integrity": "sha512-QdrKe3EvQrqwkDrtuTIjI0bu6YEJHTgEeqdzI3uWJOH6G1O8Nl1iEeVYRGdj1h5I21CqxSvQp1Yv7xeU3ZewbA==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.0" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.3.tgz", + "integrity": "sha512-GLtbLQMCNC5nxuImPR2+RgrviwKwVql28FWZIW1zWruy6zLgA5/x2ZXk3mxj58X/tszVF69KK0Is83V8YgWhLA==", + "cpu": [ + "ppc64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.0" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.3.tgz", + "integrity": "sha512-3gahT+A6c4cdc2edhsLHmIOXMb17ltffJlxR0aC2VPZfwKoTGZec6u5GrFgdR7ciJSsHT27BD3TIuGcuRT0KmQ==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.2.0" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.3.tgz", + "integrity": "sha512-8kYso8d806ypnSq3/Ly0QEw90V5ZoHh10yH0HnrzOCr6DKAPI6QVHvwleqMkVQ0m+fc7EH8ah0BB0QPuWY6zJQ==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.2.0" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.3.tgz", + "integrity": "sha512-vAjbHDlr4izEiXM1OTggpCcPg9tn4YriK5vAjowJsHwdBIdx0fYRsURkxLG2RLm9gyBq66gwtWI8Gx0/ov+JKQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.2.0" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.3.tgz", + "integrity": "sha512-gCWUn9547K5bwvOn9l5XGAEjVTTRji4aPTqLzGXHvIr6bIDZKNTA34seMPgM0WmSf+RYBH411VavCejp3PkOeQ==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.2.0" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.3.tgz", + "integrity": "sha512-+CyRcpagHMGteySaWos8IbnXcHgfDn7pO2fiC2slJxvNq9gDipYBN42/RagzctVRKgxATmfqOSulgZv5e1RdMg==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.4.4" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.3.tgz", + "integrity": "sha512-MjnHPnbqMXNC2UgeLJtX4XqoVHHlZNd+nPt1kRPmj63wURegwBhZlApELdtxM2OIZDRv/DFtLcNhVbd1z8GYXQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.3.tgz", + "integrity": "sha512-xuCdhH44WxuXgOM714hn4amodJMZl3OEvf0GVTm0BEyMeA2to+8HEdRPShH0SLYptJY1uBw+SCFP9WVQi1Q/cw==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.3.tgz", + "integrity": "sha512-OWwz05d++TxzLEv4VnsTz5CmZ6mI6S05sfQGEMrNrQcOEERbX46332IvE7pO/EUiw7jUrrS40z/M7kPyjfl04g==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.30", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz", + "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mdx-js/mdx": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz", + "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdx": "^2.0.0", + "collapse-white-space": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-util-scope": "^1.0.0", + "estree-walker": "^3.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "markdown-extensions": "^2.0.0", + "recma-build-jsx": "^1.0.0", + "recma-jsx": "^1.0.0", + "recma-stringify": "^1.0.0", + "rehype-recma": "^1.0.0", + "remark-mdx": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "source-map": "^0.7.0", + "unified": "^11.0.0", + "unist-util-position-from-estree": "^2.0.0", + "unist-util-stringify-position": "^4.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mermaid-js/parser": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-0.6.2.tgz", + "integrity": "sha512-+PO02uGF6L6Cs0Bw8RpGhikVvMWEysfAyl27qTlroUB8jSWr1lL0Sf6zi78ZxlSnmgSY2AMMKVgghnN9jTtwkQ==", + "license": "MIT", + "dependencies": { + "langium": "3.3.1" + } + }, + "node_modules/@next/env": { + "version": "15.3.3", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.3.3.tgz", + "integrity": "sha512-OdiMrzCl2Xi0VTjiQQUK0Xh7bJHnOuET2s+3V+Y40WJBAXrJeGA3f+I8MZJ/YQ3mVGi5XGR1L66oFlgqXhQ4Vw==", + "license": "MIT" + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "15.3.3", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.3.tgz", + "integrity": "sha512-WRJERLuH+O3oYB4yZNVahSVFmtxRNjNF1I1c34tYMoJb0Pve+7/RaLAJJizyYiFhjYNGHRAE1Ri2Fd23zgDqhg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "15.3.3", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.3.3.tgz", + "integrity": "sha512-XHdzH/yBc55lu78k/XwtuFR/ZXUTcflpRXcsu0nKmF45U96jt1tsOZhVrn5YH+paw66zOANpOnFQ9i6/j+UYvw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "15.3.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.3.3.tgz", + "integrity": "sha512-VZ3sYL2LXB8znNGcjhocikEkag/8xiLgnvQts41tq6i+wql63SMS1Q6N8RVXHw5pEUjiof+II3HkDd7GFcgkzw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "15.3.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.3.3.tgz", + "integrity": "sha512-h6Y1fLU4RWAp1HPNJWDYBQ+e3G7sLckyBXhmH9ajn8l/RSMnhbuPBV/fXmy3muMcVwoJdHL+UtzRzs0nXOf9SA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "15.3.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.3.3.tgz", + "integrity": "sha512-jJ8HRiF3N8Zw6hGlytCj5BiHyG/K+fnTKVDEKvUCyiQ/0r5tgwO7OgaRiOjjRoIx2vwLR+Rz8hQoPrnmFbJdfw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "15.3.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.3.3.tgz", + "integrity": "sha512-HrUcTr4N+RgiiGn3jjeT6Oo208UT/7BuTr7K0mdKRBtTbT4v9zJqCDKO97DUqqoBK1qyzP1RwvrWTvU6EPh/Cw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "15.3.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.3.3.tgz", + "integrity": "sha512-SxorONgi6K7ZUysMtRF3mIeHC5aA3IQLmKFQzU0OuhuUYwpOBc1ypaLJLP5Bf3M9k53KUUUj4vTPwzGvl/NwlQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "15.3.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.3.3.tgz", + "integrity": "sha512-4QZG6F8enl9/S2+yIiOiju0iCTFd93d8VC1q9LZS4p/Xuk81W2QDjCFeoogmrWWkAD59z8ZxepBQap2dKS5ruw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@orama/orama": { + "version": "3.1.11", + "resolved": "https://registry.npmjs.org/@orama/orama/-/orama-3.1.11.tgz", + "integrity": "sha512-Szki0cgFiXE5F9RLx2lUyEtJllnuCSQ4B8RLDwIjXkVit6qZjoDAxH+xhJs29MjKLDz0tbPLdKFa6QrQ/qoGGA==", + "license": "Apache-2.0", + "engines": { + "node": ">= 20.0.0" + } + }, + "node_modules/@radix-ui/number": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.1.tgz", + "integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==", + "license": "MIT" + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", + "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-accordion": { + "version": "1.2.12", + "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.12.tgz", + "integrity": "sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collapsible": "1.1.12", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz", + "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collapsible": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.12.tgz", + "integrity": "sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", + "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", + "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.15.tgz", + "integrity": "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", + "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz", + "integrity": "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-escape-keydown": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz", + "integrity": "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", + "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", + "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-navigation-menu": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.14.tgz", + "integrity": "sha512-YB9mTFQvCOAQMHU+C/jVl96WmuWeltyUEpRJJky51huhds5W2FQr1J8D/16sQlf0ozxkPK8uF3niQMdUwZPv5w==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-visually-hidden": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popover": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.15.tgz", + "integrity": "sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.8.tgz", + "integrity": "sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-rect": "1.1.1", + "@radix-ui/react-use-size": "1.1.1", + "@radix-ui/rect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", + "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", + "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", + "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz", + "integrity": "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-scroll-area": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.10.tgz", + "integrity": "sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tabs": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.13.tgz", + "integrity": "sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", + "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", + "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-effect-event": "0.0.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-effect-event": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", + "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", + "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", + "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz", + "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz", + "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==", + "license": "MIT", + "dependencies": { + "@radix-ui/rect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz", + "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz", + "integrity": "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz", + "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==", + "license": "MIT" + }, + "node_modules/@shikijs/core": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.11.0.tgz", + "integrity": "sha512-oJwU+DxGqp6lUZpvtQgVOXNZcVsirN76tihOLBmwILkKuRuwHteApP8oTXmL4tF5vS5FbOY0+8seXmiCoslk4g==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.11.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.5" + } + }, + "node_modules/@shikijs/engine-javascript": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.11.0.tgz", + "integrity": "sha512-6/ov6pxrSvew13k9ztIOnSBOytXeKs5kfIR7vbhdtVRg+KPzvp2HctYGeWkqv7V6YIoLicnig/QF3iajqyElZA==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.11.0", + "@shikijs/vscode-textmate": "^10.0.2", + "oniguruma-to-es": "^4.3.3" + } + }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.11.0.tgz", + "integrity": "sha512-4DwIjIgETK04VneKbfOE4WNm4Q7WC1wo95wv82PoHKdqX4/9qLRUwrfKlmhf0gAuvT6GHy0uc7t9cailk6Tbhw==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.11.0", + "@shikijs/vscode-textmate": "^10.0.2" + } + }, + "node_modules/@shikijs/langs": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.11.0.tgz", + "integrity": "sha512-Njg/nFL4HDcf/ObxcK2VeyidIq61EeLmocrwTHGGpOQx0BzrPWM1j55XtKQ1LvvDWH15cjQy7rg96aJ1/l63uw==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.11.0" + } + }, + "node_modules/@shikijs/rehype": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@shikijs/rehype/-/rehype-3.11.0.tgz", + "integrity": "sha512-4njEqPBoFn+fsQqSOEw8OjiIIg52jBM0I2qRC1NALFFmQm97qZuQvP570RI94HvAfzCT6agG6ZFBPofrNZ4tlQ==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.11.0", + "@types/hast": "^3.0.4", + "hast-util-to-string": "^3.0.1", + "shiki": "3.11.0", + "unified": "^11.0.5", + "unist-util-visit": "^5.0.0" + } + }, + "node_modules/@shikijs/themes": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.11.0.tgz", + "integrity": "sha512-BhhWRzCTEk2CtWt4S4bgsOqPJRkapvxdsifAwqP+6mk5uxboAQchc0etiJ0iIasxnMsb764qGD24DK9albcU9Q==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.11.0" + } + }, + "node_modules/@shikijs/transformers": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-3.11.0.tgz", + "integrity": "sha512-fhSpVoq0FoCtKbBpzE3mXcIbr0b7ozFDSSWiVjWrQy+wrOfaFfwxgJqh8kY3Pbv/i+4pcuMIVismLD2MfO62eQ==", + "license": "MIT", + "dependencies": { + "@shikijs/core": "3.11.0", + "@shikijs/types": "3.11.0" + } + }, + "node_modules/@shikijs/types": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.11.0.tgz", + "integrity": "sha512-RB7IMo2E7NZHyfkqAuaf4CofyY8bPzjWPjJRzn6SEak3b46fIQyG6Vx5fG/obqkfppQ+g8vEsiD7Uc6lqQt32Q==", + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + } + }, + "node_modules/@shikijs/vscode-textmate": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", + "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", + "license": "MIT" + }, + "node_modules/@standard-schema/spec": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", + "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", + "license": "MIT" + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "license": "Apache-2.0" + }, + "node_modules/@swc/helpers": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@tailwindcss/node": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.12.tgz", + "integrity": "sha512-3hm9brwvQkZFe++SBt+oLjo4OLDtkvlE8q2WalaD/7QWaeM7KEJbAiY/LJZUaCs7Xa8aUu4xy3uoyX4q54UVdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.4", + "enhanced-resolve": "^5.18.3", + "jiti": "^2.5.1", + "lightningcss": "1.30.1", + "magic-string": "^0.30.17", + "source-map-js": "^1.2.1", + "tailwindcss": "4.1.12" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.12.tgz", + "integrity": "sha512-gM5EoKHW/ukmlEtphNwaGx45fGoEmP10v51t9unv55voWh6WrOL19hfuIdo2FjxIaZzw776/BUQg7Pck++cIVw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.4", + "tar": "^7.4.3" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.1.12", + "@tailwindcss/oxide-darwin-arm64": "4.1.12", + "@tailwindcss/oxide-darwin-x64": "4.1.12", + "@tailwindcss/oxide-freebsd-x64": "4.1.12", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.12", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.12", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.12", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.12", + "@tailwindcss/oxide-linux-x64-musl": "4.1.12", + "@tailwindcss/oxide-wasm32-wasi": "4.1.12", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.12", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.12" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.12.tgz", + "integrity": "sha512-oNY5pq+1gc4T6QVTsZKwZaGpBb2N1H1fsc1GD4o7yinFySqIuRZ2E4NvGasWc6PhYJwGK2+5YT1f9Tp80zUQZQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.12.tgz", + "integrity": "sha512-cq1qmq2HEtDV9HvZlTtrj671mCdGB93bVY6J29mwCyaMYCP/JaUBXxrQQQm7Qn33AXXASPUb2HFZlWiiHWFytw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.12.tgz", + "integrity": "sha512-6UCsIeFUcBfpangqlXay9Ffty9XhFH1QuUFn0WV83W8lGdX8cD5/+2ONLluALJD5+yJ7k8mVtwy3zMZmzEfbLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.12.tgz", + "integrity": "sha512-JOH/f7j6+nYXIrHobRYCtoArJdMJh5zy5lr0FV0Qu47MID/vqJAY3r/OElPzx1C/wdT1uS7cPq+xdYYelny1ww==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.12.tgz", + "integrity": "sha512-v4Ghvi9AU1SYgGr3/j38PD8PEe6bRfTnNSUE3YCMIRrrNigCFtHZ2TCm8142X8fcSqHBZBceDx+JlFJEfNg5zQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.12.tgz", + "integrity": "sha512-YP5s1LmetL9UsvVAKusHSyPlzSRqYyRB0f+Kl/xcYQSPLEw/BvGfxzbH+ihUciePDjiXwHh+p+qbSP3SlJw+6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.12.tgz", + "integrity": "sha512-V8pAM3s8gsrXcCv6kCHSuwyb/gPsd863iT+v1PGXC4fSL/OJqsKhfK//v8P+w9ThKIoqNbEnsZqNy+WDnwQqCA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.12.tgz", + "integrity": "sha512-xYfqYLjvm2UQ3TZggTGrwxjYaLB62b1Wiysw/YE3Yqbh86sOMoTn0feF98PonP7LtjsWOWcXEbGqDL7zv0uW8Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.12.tgz", + "integrity": "sha512-ha0pHPamN+fWZY7GCzz5rKunlv9L5R8kdh+YNvP5awe3LtuXb5nRi/H27GeL2U+TdhDOptU7T6Is7mdwh5Ar3A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.12.tgz", + "integrity": "sha512-4tSyu3dW+ktzdEpuk6g49KdEangu3eCYoqPhWNsZgUhyegEda3M9rG0/j1GV/JjVVsj+lG7jWAyrTlLzd/WEBg==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.5", + "@emnapi/runtime": "^1.4.5", + "@emnapi/wasi-threads": "^1.0.4", + "@napi-rs/wasm-runtime": "^0.2.12", + "@tybys/wasm-util": "^0.10.0", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.12.tgz", + "integrity": "sha512-iGLyD/cVP724+FGtMWslhcFyg4xyYyM+5F4hGvKA7eifPkXHRAUDFaimu53fpNg9X8dfP75pXx/zFt/jlNF+lg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.12.tgz", + "integrity": "sha512-NKIh5rzw6CpEodv/++r0hGLlfgT/gFN+5WNdZtvh6wpU2BpGNgdjvj6H2oFc8nCM839QM1YOhjpgbAONUb4IxA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/postcss": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.12.tgz", + "integrity": "sha512-5PpLYhCAwf9SJEeIsSmCDLgyVfdBhdBpzX1OJ87anT9IVR0Z9pjM0FNixCAUAHGnMBGB8K99SwAheXrT0Kh6QQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "@tailwindcss/node": "4.1.12", + "@tailwindcss/oxide": "4.1.12", + "postcss": "^8.4.41", + "tailwindcss": "4.1.12" + } + }, + "node_modules/@types/d3": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", + "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", + "license": "MIT", + "dependencies": { + "@types/d3-array": "*", + "@types/d3-axis": "*", + "@types/d3-brush": "*", + "@types/d3-chord": "*", + "@types/d3-color": "*", + "@types/d3-contour": "*", + "@types/d3-delaunay": "*", + "@types/d3-dispatch": "*", + "@types/d3-drag": "*", + "@types/d3-dsv": "*", + "@types/d3-ease": "*", + "@types/d3-fetch": "*", + "@types/d3-force": "*", + "@types/d3-format": "*", + "@types/d3-geo": "*", + "@types/d3-hierarchy": "*", + "@types/d3-interpolate": "*", + "@types/d3-path": "*", + "@types/d3-polygon": "*", + "@types/d3-quadtree": "*", + "@types/d3-random": "*", + "@types/d3-scale": "*", + "@types/d3-scale-chromatic": "*", + "@types/d3-selection": "*", + "@types/d3-shape": "*", + "@types/d3-time": "*", + "@types/d3-time-format": "*", + "@types/d3-timer": "*", + "@types/d3-transition": "*", + "@types/d3-zoom": "*" + } + }, + "node_modules/@types/d3-array": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", + "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==", + "license": "MIT" + }, + "node_modules/@types/d3-axis": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz", + "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-brush": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz", + "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-chord": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz", + "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==", + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "license": "MIT" + }, + "node_modules/@types/d3-contour": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz", + "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==", + "license": "MIT", + "dependencies": { + "@types/d3-array": "*", + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", + "license": "MIT" + }, + "node_modules/@types/d3-dispatch": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.7.tgz", + "integrity": "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==", + "license": "MIT" + }, + "node_modules/@types/d3-drag": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", + "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-dsv": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", + "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", + "license": "MIT" + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", + "license": "MIT" + }, + "node_modules/@types/d3-fetch": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", + "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", + "license": "MIT", + "dependencies": { + "@types/d3-dsv": "*" + } + }, + "node_modules/@types/d3-force": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", + "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", + "license": "MIT" + }, + "node_modules/@types/d3-format": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz", + "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", + "license": "MIT" + }, + "node_modules/@types/d3-geo": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz", + "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-hierarchy": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz", + "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==", + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "license": "MIT", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", + "license": "MIT" + }, + "node_modules/@types/d3-polygon": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz", + "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==", + "license": "MIT" + }, + "node_modules/@types/d3-quadtree": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", + "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", + "license": "MIT" + }, + "node_modules/@types/d3-random": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz", + "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", + "license": "MIT", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", + "license": "MIT" + }, + "node_modules/@types/d3-selection": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", + "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", + "license": "MIT" + }, + "node_modules/@types/d3-shape": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz", + "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==", + "license": "MIT", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", + "license": "MIT" + }, + "node_modules/@types/d3-time-format": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz", + "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==", + "license": "MIT" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "license": "MIT" + }, + "node_modules/@types/d3-transition": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", + "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-zoom": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", + "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", + "license": "MIT", + "dependencies": { + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" + }, + "node_modules/@types/estree-jsx": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/geojson": { + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", + "license": "MIT" + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mdx": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", + "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.15.28", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.28.tgz", + "integrity": "sha512-I0okKVDmyKR281I0UIFV7EWAWRnR0gkuSKob5wVcByyyhr7Px/slhkQapcYX4u00ekzNWaS1gznKZnuzxwo4pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/react": { + "version": "19.1.11", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.11.tgz", + "integrity": "sha512-lr3jdBw/BGj49Eps7EvqlUaoeA0xpj3pc0RoJkHpYaCHkVK7i28dKyImLQb3JVlqs3aYSXf7qYuWOW/fgZnTXQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.1.8", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.8.tgz", + "integrity": "sha512-xG7xaBMJCpcK0RpN8jDbAACQo54ycO6h4dSSmgv8+fu6ZIAdANkx/WsawASUjVXYfy+J9AbUpRMNNEsXCDfDBQ==", + "devOptional": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.0.0" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "license": "ISC" + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/aria-hidden": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", + "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/astring": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", + "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", + "license": "MIT", + "bin": { + "astring": "bin/astring" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001737", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001737.tgz", + "integrity": "sha512-BiloLiXtQNrY5UyF0+1nSJLXUENuhka2pzy2Fx5pGxqavdrxSCW4U6Pn/PoG3Efspi2frRbHpBV2XsrPE6EDlw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chevrotain": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz", + "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==", + "license": "Apache-2.0", + "dependencies": { + "@chevrotain/cst-dts-gen": "11.0.3", + "@chevrotain/gast": "11.0.3", + "@chevrotain/regexp-to-ast": "11.0.3", + "@chevrotain/types": "11.0.3", + "@chevrotain/utils": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/chevrotain-allstar": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz", + "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==", + "license": "MIT", + "dependencies": { + "lodash-es": "^4.17.21" + }, + "peerDependencies": { + "chevrotain": "^11.0.0" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "license": "Apache-2.0", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/collapse-white-space": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", + "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", + "optional": true, + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT", + "optional": true + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "optional": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/compute-scroll-into-view": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz", + "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==", + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz", + "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==", + "license": "MIT" + }, + "node_modules/cose-base": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz", + "integrity": "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==", + "license": "MIT", + "dependencies": { + "layout-base": "^1.0.0" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/cytoscape": { + "version": "3.33.1", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.33.1.tgz", + "integrity": "sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/cytoscape-cose-bilkent": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz", + "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==", + "license": "MIT", + "dependencies": { + "cose-base": "^1.0.0" + }, + "peerDependencies": { + "cytoscape": "^3.2.0" + } + }, + "node_modules/cytoscape-fcose": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz", + "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==", + "license": "MIT", + "dependencies": { + "cose-base": "^2.2.0" + }, + "peerDependencies": { + "cytoscape": "^3.2.0" + } + }, + "node_modules/cytoscape-fcose/node_modules/cose-base": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz", + "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==", + "license": "MIT", + "dependencies": { + "layout-base": "^2.0.0" + } + }, + "node_modules/cytoscape-fcose/node_modules/layout-base": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz", + "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==", + "license": "MIT" + }, + "node_modules/d3": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", + "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", + "license": "ISC", + "dependencies": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "license": "ISC", + "dependencies": { + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "license": "ISC", + "dependencies": { + "d3-array": "^3.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "license": "ISC", + "dependencies": { + "delaunator": "5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "license": "ISC", + "dependencies": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "license": "ISC", + "dependencies": { + "d3-dsv": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-sankey": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz", + "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-array": "1 - 2", + "d3-shape": "^1.2.0" + } + }, + "node_modules/d3-sankey/node_modules/d3-array": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", + "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "license": "BSD-3-Clause", + "dependencies": { + "internmap": "^1.0.0" + } + }, + "node_modules/d3-sankey/node_modules/d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-sankey/node_modules/d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-path": "1" + } + }, + "node_modules/d3-sankey/node_modules/internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", + "license": "ISC" + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" + } + }, + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.11.tgz", + "integrity": "sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==", + "license": "MIT", + "dependencies": { + "d3": "^7.9.0", + "lodash-es": "^4.17.21" + } + }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz", + "integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/delaunator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", + "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", + "license": "ISC", + "dependencies": { + "robust-predicates": "^3.0.2" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-libc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "devOptional": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dompurify": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.6.tgz", + "integrity": "sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/esast-util-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", + "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esast-util-from-js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", + "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "acorn": "^8.0.0", + "esast-util-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esbuild": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.9.tgz", + "integrity": "sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.9", + "@esbuild/android-arm": "0.25.9", + "@esbuild/android-arm64": "0.25.9", + "@esbuild/android-x64": "0.25.9", + "@esbuild/darwin-arm64": "0.25.9", + "@esbuild/darwin-x64": "0.25.9", + "@esbuild/freebsd-arm64": "0.25.9", + "@esbuild/freebsd-x64": "0.25.9", + "@esbuild/linux-arm": "0.25.9", + "@esbuild/linux-arm64": "0.25.9", + "@esbuild/linux-ia32": "0.25.9", + "@esbuild/linux-loong64": "0.25.9", + "@esbuild/linux-mips64el": "0.25.9", + "@esbuild/linux-ppc64": "0.25.9", + "@esbuild/linux-riscv64": "0.25.9", + "@esbuild/linux-s390x": "0.25.9", + "@esbuild/linux-x64": "0.25.9", + "@esbuild/netbsd-arm64": "0.25.9", + "@esbuild/netbsd-x64": "0.25.9", + "@esbuild/openbsd-arm64": "0.25.9", + "@esbuild/openbsd-x64": "0.25.9", + "@esbuild/openharmony-arm64": "0.25.9", + "@esbuild/sunos-x64": "0.25.9", + "@esbuild/win32-arm64": "0.25.9", + "@esbuild/win32-ia32": "0.25.9", + "@esbuild/win32-x64": "0.25.9" + } + }, + "node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estree-util-attach-comments": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", + "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-build-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", + "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-walker": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-is-identifier-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-scope": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", + "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-to-js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", + "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "astring": "^1.8.0", + "source-map": "^0.7.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-value-to-estree": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.4.0.tgz", + "integrity": "sha512-Zlp+gxis+gCfK12d3Srl2PdX2ybsEA8ZYy6vQGVQTNNYLEGRQQ56XB64bjemN8kxIKXP1nC9ip4Z+ILy9LGzvQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/remcohaszing" + } + }, + "node_modules/estree-util-visit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", + "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/exsolve": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.7.tgz", + "integrity": "sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==", + "license": "MIT" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fumadocs-core": { + "version": "15.5.1", + "resolved": "https://registry.npmjs.org/fumadocs-core/-/fumadocs-core-15.5.1.tgz", + "integrity": "sha512-5eJPJw+BFWFdgrtWPQ9aAZAhhsyuZAwth8OjBd9R77sXoIoae4Y4lJZMq3BeSpJZcuIAOVbSCS+pJhsBAoXJ8g==", + "license": "MIT", + "dependencies": { + "@formatjs/intl-localematcher": "^0.6.1", + "@orama/orama": "^3.1.6", + "@shikijs/rehype": "^3.4.2", + "@shikijs/transformers": "^3.4.2", + "github-slugger": "^2.0.0", + "hast-util-to-estree": "^3.1.3", + "hast-util-to-jsx-runtime": "^2.3.6", + "image-size": "^2.0.2", + "negotiator": "^1.0.0", + "react-remove-scroll": "^2.6.3", + "remark": "^15.0.0", + "remark-gfm": "^4.0.1", + "remark-rehype": "^11.1.2", + "scroll-into-view-if-needed": "^3.1.0", + "shiki": "^3.4.2", + "unist-util-visit": "^5.0.0" + }, + "peerDependencies": { + "@oramacloud/client": "1.x.x || 2.x.x", + "algoliasearch": "5.x.x", + "next": "14.x.x || 15.x.x", + "react": "18.x.x || 19.x.x", + "react-dom": "18.x.x || 19.x.x" + }, + "peerDependenciesMeta": { + "@oramacloud/client": { + "optional": true + }, + "algoliasearch": { + "optional": true + }, + "next": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/fumadocs-mdx": { + "version": "11.6.7", + "resolved": "https://registry.npmjs.org/fumadocs-mdx/-/fumadocs-mdx-11.6.7.tgz", + "integrity": "sha512-jOZzxowvhwe9RzV6jVjIS2FsQIz9P6QYkMBPgR0nq9+7trP+mmiLoIq5EwhTPrR/Y/4gTiSl9TXFWxTY02trnw==", + "license": "MIT", + "dependencies": { + "@mdx-js/mdx": "^3.1.0", + "@standard-schema/spec": "^1.0.0", + "chokidar": "^4.0.3", + "esbuild": "^0.25.5", + "estree-util-value-to-estree": "^3.4.0", + "gray-matter": "^4.0.3", + "js-yaml": "^4.1.0", + "lru-cache": "^11.1.0", + "picocolors": "^1.1.1", + "tinyexec": "^1.0.1", + "tinyglobby": "^0.2.14", + "unist-util-visit": "^5.0.0", + "zod": "^3.25.42" + }, + "bin": { + "fumadocs-mdx": "bin.js" + }, + "peerDependencies": { + "@fumadocs/mdx-remote": "^1.2.0", + "fumadocs-core": "^14.0.0 || ^15.0.0", + "next": "^15.3.0" + }, + "peerDependenciesMeta": { + "@fumadocs/mdx-remote": { + "optional": true + } + } + }, + "node_modules/fumadocs-ui": { + "version": "15.5.1", + "resolved": "https://registry.npmjs.org/fumadocs-ui/-/fumadocs-ui-15.5.1.tgz", + "integrity": "sha512-HyMoM+mv5WZrXDAv88SLLqFrduDSxQHFU+uQkSpJQdycaGNSIB8063PW/wb/QIliusWP8o+c/YLFy/29KymEWA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-accordion": "^1.2.11", + "@radix-ui/react-collapsible": "^1.1.11", + "@radix-ui/react-dialog": "^1.1.14", + "@radix-ui/react-direction": "^1.1.1", + "@radix-ui/react-navigation-menu": "^1.2.13", + "@radix-ui/react-popover": "^1.1.14", + "@radix-ui/react-presence": "^1.1.4", + "@radix-ui/react-scroll-area": "^1.2.9", + "@radix-ui/react-slot": "^1.2.3", + "@radix-ui/react-tabs": "^1.1.12", + "class-variance-authority": "^0.7.1", + "fumadocs-core": "15.5.1", + "lodash.merge": "^4.6.2", + "next-themes": "^0.4.6", + "postcss-selector-parser": "^7.1.0", + "react-medium-image-zoom": "^5.2.14", + "react-remove-scroll": "^2.6.3", + "tailwind-merge": "^3.3.0" + }, + "peerDependencies": { + "next": "14.x.x || 15.x.x", + "react": "18.x.x || 19.x.x", + "react-dom": "18.x.x || 19.x.x", + "tailwindcss": "^3.4.14 || ^4.0.0" + }, + "peerDependenciesMeta": { + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/github-slugger": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", + "license": "ISC" + }, + "node_modules/globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "license": "MIT", + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/gray-matter/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/gray-matter/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/hachure-fill": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/hachure-fill/-/hachure-fill-0.5.2.tgz", + "integrity": "sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==", + "license": "MIT" + }, + "node_modules/hast-util-to-estree": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz", + "integrity": "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-attach-comments": "^3.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-js": "^1.0.0", + "unist-util-position": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-html": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", + "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-jsx-runtime": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", + "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-js": "^1.0.0", + "unist-util-position": "^5.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-string": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz", + "integrity": "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/image-size": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-2.0.2.tgz", + "integrity": "sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==", + "license": "MIT", + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=16.x" + } + }, + "node_modules/inline-style-parser": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", + "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", + "license": "MIT" + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT", + "optional": true + }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jiti": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.5.1.tgz", + "integrity": "sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/katex": { + "version": "0.16.22", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.22.tgz", + "integrity": "sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==", + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "license": "MIT", + "dependencies": { + "commander": "^8.3.0" + }, + "bin": { + "katex": "cli.js" + } + }, + "node_modules/katex/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/khroma": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz", + "integrity": "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==" + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "license": "MIT" + }, + "node_modules/langium": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/langium/-/langium-3.3.1.tgz", + "integrity": "sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==", + "license": "MIT", + "dependencies": { + "chevrotain": "~11.0.3", + "chevrotain-allstar": "~0.3.0", + "vscode-languageserver": "~9.0.1", + "vscode-languageserver-textdocument": "~1.0.11", + "vscode-uri": "~3.0.8" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/layout-base": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz", + "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==", + "license": "MIT" + }, + "node_modules/lightningcss": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz", + "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.30.1", + "lightningcss-darwin-x64": "1.30.1", + "lightningcss-freebsd-x64": "1.30.1", + "lightningcss-linux-arm-gnueabihf": "1.30.1", + "lightningcss-linux-arm64-gnu": "1.30.1", + "lightningcss-linux-arm64-musl": "1.30.1", + "lightningcss-linux-x64-gnu": "1.30.1", + "lightningcss-linux-x64-musl": "1.30.1", + "lightningcss-win32-arm64-msvc": "1.30.1", + "lightningcss-win32-x64-msvc": "1.30.1" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz", + "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz", + "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz", + "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz", + "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz", + "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz", + "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz", + "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz", + "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz", + "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz", + "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/local-pkg": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.2.tgz", + "integrity": "sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==", + "license": "MIT", + "dependencies": { + "mlly": "^1.7.4", + "pkg-types": "^2.3.0", + "quansync": "^0.2.11" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "license": "MIT" + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/lru-cache": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz", + "integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==", + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/lucide-react": { + "version": "0.525.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.525.0.tgz", + "integrity": "sha512-Tm1txJ2OkymCGkvwoHt33Y2JpN5xucVq1slHcgE6Lk0WjDfjgKWor5CdVER8U6DvcfMwh4M8XxmpTiyzfmfDYQ==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/magic-string": { + "version": "0.30.18", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.18.tgz", + "integrity": "sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/markdown-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", + "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-table": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/marked": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-16.2.0.tgz", + "integrity": "sha512-LbbTuye+0dWRz2TS9KJ7wsnD4KAtpj0MVkWc90XvBa6AslXsT0hTBVH5k32pcSyHH1fst9XEFJunXHktVy0zlg==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 20" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", + "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdxjs-esm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mermaid": { + "version": "11.10.1", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.10.1.tgz", + "integrity": "sha512-0PdeADVWURz7VMAX0+MiMcgfxFKY4aweSGsjgFihe3XlMKNqmai/cugMrqTd3WNHM93V+K+AZL6Wu6tB5HmxRw==", + "license": "MIT", + "dependencies": { + "@braintree/sanitize-url": "^7.0.4", + "@iconify/utils": "^2.1.33", + "@mermaid-js/parser": "^0.6.2", + "@types/d3": "^7.4.3", + "cytoscape": "^3.29.3", + "cytoscape-cose-bilkent": "^4.1.0", + "cytoscape-fcose": "^2.2.0", + "d3": "^7.9.0", + "d3-sankey": "^0.12.3", + "dagre-d3-es": "7.0.11", + "dayjs": "^1.11.13", + "dompurify": "^3.2.5", + "katex": "^0.16.22", + "khroma": "^2.1.0", + "lodash-es": "^4.17.21", + "marked": "^16.0.0", + "roughjs": "^4.6.6", + "stylis": "^4.3.6", + "ts-dedent": "^2.2.0", + "uuid": "^11.1.0" + } + }, + "node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "license": "MIT", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-expression": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz", + "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-jsx": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz", + "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-md": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", + "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", + "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", + "license": "MIT", + "dependencies": { + "acorn": "^8.0.0", + "acorn-jsx": "^5.0.0", + "micromark-extension-mdx-expression": "^3.0.0", + "micromark-extension-mdx-jsx": "^3.0.0", + "micromark-extension-mdx-md": "^2.0.0", + "micromark-extension-mdxjs-esm": "^3.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs-esm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", + "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz", + "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-events-to-acorn": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz", + "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz", + "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mlly": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz", + "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==", + "license": "MIT", + "dependencies": { + "acorn": "^8.15.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.1" + } + }, + "node_modules/mlly/node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "license": "MIT" + }, + "node_modules/mlly/node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/next": { + "version": "15.3.3", + "resolved": "https://registry.npmjs.org/next/-/next-15.3.3.tgz", + "integrity": "sha512-JqNj29hHNmCLtNvd090SyRbXJiivQ+58XjCcrC50Crb5g5u2zi7Y2YivbsEfzk6AtVI80akdOQbaMZwWB1Hthw==", + "license": "MIT", + "dependencies": { + "@next/env": "15.3.3", + "@swc/counter": "0.1.3", + "@swc/helpers": "0.5.15", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001579", + "postcss": "8.4.31", + "styled-jsx": "5.1.6" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "15.3.3", + "@next/swc-darwin-x64": "15.3.3", + "@next/swc-linux-arm64-gnu": "15.3.3", + "@next/swc-linux-arm64-musl": "15.3.3", + "@next/swc-linux-x64-gnu": "15.3.3", + "@next/swc-linux-x64-musl": "15.3.3", + "@next/swc-win32-arm64-msvc": "15.3.3", + "@next/swc-win32-x64-msvc": "15.3.3", + "sharp": "^0.34.1" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.41.2", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next-themes": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.4.6.tgz", + "integrity": "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc" + } + }, + "node_modules/next/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/oniguruma-parser": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.1.tgz", + "integrity": "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==", + "license": "MIT" + }, + "node_modules/oniguruma-to-es": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.3.tgz", + "integrity": "sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==", + "license": "MIT", + "dependencies": { + "oniguruma-parser": "^0.12.1", + "regex": "^6.0.1", + "regex-recursion": "^6.0.2" + } + }, + "node_modules/package-manager-detector": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.3.0.tgz", + "integrity": "sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==", + "license": "MIT" + }, + "node_modules/parse-entities": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, + "node_modules/path-data-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/path-data-parser/-/path-data-parser-0.1.0.tgz", + "integrity": "sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==", + "license": "MIT" + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-types": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz", + "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==", + "license": "MIT", + "dependencies": { + "confbox": "^0.2.2", + "exsolve": "^1.0.7", + "pathe": "^2.0.3" + } + }, + "node_modules/points-on-curve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/points-on-curve/-/points-on-curve-0.2.0.tgz", + "integrity": "sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==", + "license": "MIT" + }, + "node_modules/points-on-path": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/points-on-path/-/points-on-path-0.2.1.tgz", + "integrity": "sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==", + "license": "MIT", + "dependencies": { + "path-data-parser": "0.1.0", + "points-on-curve": "0.2.0" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prettier": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/property-information": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", + "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/quansync": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", + "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz", + "integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.1.tgz", + "integrity": "sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.26.0" + }, + "peerDependencies": { + "react": "^19.1.1" + } + }, + "node_modules/react-medium-image-zoom": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/react-medium-image-zoom/-/react-medium-image-zoom-5.3.0.tgz", + "integrity": "sha512-RCIzVlsKqy3BYgGgYbolUfuvx0aSKC7YhX/IJGEp+WJxsqdIVYJHkBdj++FAj6VD7RiWj6VVmdCfa/9vJE9hZg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/rpearce" + } + ], + "license": "BSD-3-Clause", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-remove-scroll": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.1.tgz", + "integrity": "sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/recma-build-jsx": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", + "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-build-jsx": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-jsx": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.1.tgz", + "integrity": "sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==", + "license": "MIT", + "dependencies": { + "acorn-jsx": "^5.0.0", + "estree-util-to-js": "^2.0.0", + "recma-parse": "^1.0.0", + "recma-stringify": "^1.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/recma-parse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", + "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "esast-util-from-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", + "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-to-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/regex/-/regex-6.0.1.tgz", + "integrity": "sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==", + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-recursion": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz", + "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==", + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-utilities": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", + "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", + "license": "MIT" + }, + "node_modules/rehype-recma": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", + "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "hast-util-to-estree": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/remark/-/remark-15.0.1.tgz", + "integrity": "sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", + "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz", + "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==", + "license": "MIT", + "dependencies": { + "mdast-util-mdx": "^3.0.0", + "micromark-extension-mdxjs": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", + "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/robust-predicates": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", + "license": "Unlicense" + }, + "node_modules/roughjs": { + "version": "4.6.6", + "resolved": "https://registry.npmjs.org/roughjs/-/roughjs-4.6.6.tgz", + "integrity": "sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==", + "license": "MIT", + "dependencies": { + "hachure-fill": "^0.5.2", + "path-data-parser": "^0.1.0", + "points-on-curve": "^0.2.0", + "points-on-path": "^0.2.1" + } + }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "license": "BSD-3-Clause" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/scheduler": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "license": "MIT" + }, + "node_modules/scroll-into-view-if-needed": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", + "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", + "license": "MIT", + "dependencies": { + "compute-scroll-into-view": "^3.0.2" + } + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sharp": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.3.tgz", + "integrity": "sha512-eX2IQ6nFohW4DbvHIOLRB3MHFpYqaqvXd3Tp5e/T/dSH83fxaNJQRvDMhASmkNTsNTVF2/OOopzRCt7xokgPfg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.4", + "semver": "^7.7.2" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.3", + "@img/sharp-darwin-x64": "0.34.3", + "@img/sharp-libvips-darwin-arm64": "1.2.0", + "@img/sharp-libvips-darwin-x64": "1.2.0", + "@img/sharp-libvips-linux-arm": "1.2.0", + "@img/sharp-libvips-linux-arm64": "1.2.0", + "@img/sharp-libvips-linux-ppc64": "1.2.0", + "@img/sharp-libvips-linux-s390x": "1.2.0", + "@img/sharp-libvips-linux-x64": "1.2.0", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.0", + "@img/sharp-libvips-linuxmusl-x64": "1.2.0", + "@img/sharp-linux-arm": "0.34.3", + "@img/sharp-linux-arm64": "0.34.3", + "@img/sharp-linux-ppc64": "0.34.3", + "@img/sharp-linux-s390x": "0.34.3", + "@img/sharp-linux-x64": "0.34.3", + "@img/sharp-linuxmusl-arm64": "0.34.3", + "@img/sharp-linuxmusl-x64": "0.34.3", + "@img/sharp-wasm32": "0.34.3", + "@img/sharp-win32-arm64": "0.34.3", + "@img/sharp-win32-ia32": "0.34.3", + "@img/sharp-win32-x64": "0.34.3" + } + }, + "node_modules/shiki": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.11.0.tgz", + "integrity": "sha512-VgKumh/ib38I1i3QkMn6mAQA6XjjQubqaAYhfge71glAll0/4xnt8L2oSuC45Qcr/G5Kbskj4RliMQddGmy/Og==", + "license": "MIT", + "dependencies": { + "@shikijs/core": "3.11.0", + "@shikijs/engine-javascript": "3.11.0", + "@shikijs/engine-oniguruma": "3.11.0", + "@shikijs/langs": "3.11.0", + "@shikijs/themes": "3.11.0", + "@shikijs/types": "3.11.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "license": "MIT", + "optional": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/style-to-js": { + "version": "1.1.17", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.17.tgz", + "integrity": "sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==", + "license": "MIT", + "dependencies": { + "style-to-object": "1.0.9" + } + }, + "node_modules/style-to-object": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.9.tgz", + "integrity": "sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.2.4" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "license": "MIT", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/stylis": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", + "license": "MIT" + }, + "node_modules/tailwind-merge": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.3.1.tgz", + "integrity": "sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.12.tgz", + "integrity": "sha512-DzFtxOi+7NsFf7DBtI3BJsynR+0Yp6etH+nRPTbpWnS2pZBaSksv/JGctNwSWzbFjp0vxSqknaUylseZqMDGrA==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.3.tgz", + "integrity": "sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tar": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "dev": true, + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyexec": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.1.tgz", + "integrity": "sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==", + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", + "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", + "license": "MIT", + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/ts-dedent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "license": "MIT", + "engines": { + "node": ">=6.10" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/typescript": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", + "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==", + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", + "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/uuid": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/esm/bin/uuid" + } + }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vscode-jsonrpc": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", + "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/vscode-languageserver": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", + "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", + "license": "MIT", + "dependencies": { + "vscode-languageserver-protocol": "3.17.5" + }, + "bin": { + "installServerIntoExtension": "bin/installServerIntoExtension" + } + }, + "node_modules/vscode-languageserver-protocol": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", + "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", + "license": "MIT", + "dependencies": { + "vscode-jsonrpc": "8.2.0", + "vscode-languageserver-types": "3.17.5" + } + }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", + "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==", + "license": "MIT" + }, + "node_modules/vscode-languageserver-types": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", + "license": "MIT" + }, + "node_modules/vscode-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", + "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", + "license": "MIT" + }, + "node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} From d0d3af0e74bdafb136514682fb701d3bcbb91b24 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Tue, 26 Aug 2025 11:09:10 -0400 Subject: [PATCH 022/103] Remove broken link --- docs/content/docs/libraries/lume/cli-reference.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/docs/libraries/lume/cli-reference.mdx b/docs/content/docs/libraries/lume/cli-reference.mdx index da8bdee1..4837d154 100644 --- a/docs/content/docs/libraries/lume/cli-reference.mdx +++ b/docs/content/docs/libraries/lume/cli-reference.mdx @@ -56,7 +56,7 @@ lume run macos-sequoia-vanilla:latest lume run ubuntu-noble-vanilla:latest ``` -> We provide [prebuilt VM images](#prebuilt-images) in our [ghcr registry](https://github.com/orgs/trycua/packages). +> We provide prebuilt VM images in our [ghcr registry](https://github.com/orgs/trycua/packages). ### Create a Custom VM From afe01ff8313ec86eb72c76fe5e26bae2622a1d66 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Tue, 26 Aug 2025 13:06:44 -0400 Subject: [PATCH 023/103] Add missing comma in example code --- notebooks/agent_nb.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/notebooks/agent_nb.ipynb b/notebooks/agent_nb.ipynb index 34b2a56a..30746780 100644 --- a/notebooks/agent_nb.ipynb +++ b/notebooks/agent_nb.ipynb @@ -302,7 +302,7 @@ "source": [ "# Create agent with Anthropic loop and provider\n", "agent = ComputerAgent(\n", - " model=\"openai/computer-use-preview\"\n", + " model=\"openai/computer-use-preview\",\n", " tools=[computer],\n", " trajectory_dir=str(Path(\"trajectories\")),\n", " only_n_most_recent_images=3,\n", From eb0fcd6f5e55357491536a0a242320d2101697da Mon Sep 17 00:00:00 2001 From: James Murdza Date: Wed, 27 Aug 2025 13:00:51 -0400 Subject: [PATCH 024/103] Remove broken link from documentation --- .../docs/agent-sdk/supported-agents/human-in-the-loop.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/content/docs/agent-sdk/supported-agents/human-in-the-loop.mdx b/docs/content/docs/agent-sdk/supported-agents/human-in-the-loop.mdx index 8d084d7e..f1574891 100644 --- a/docs/content/docs/agent-sdk/supported-agents/human-in-the-loop.mdx +++ b/docs/content/docs/agent-sdk/supported-agents/human-in-the-loop.mdx @@ -62,5 +62,3 @@ The human-in-the-loop interface provides: - **Testing**: Validate agent, tool, and environment behavior manually --- - -For more details on the human tool implementation, see the [Human Tool Documentation](../../tools/human-tool). From 61a442da5682d22e74e970d087882609b5c62e52 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Wed, 27 Aug 2025 13:21:46 -0400 Subject: [PATCH 025/103] fixed getattr crash --- libs/kasm/Dockerfile | 2 +- .../agent/agent/integrations/hud/__init__.py | 208 +- .../agent/agent/integrations/hud/adapter.py | 121 - .../agent/agent/integrations/hud/agent.py | 509 +- .../integrations/hud/computer_handler.py | 187 - libs/python/agent/agent/proxy/examples.py | 192 + libs/python/agent/agent/proxy/handlers.py | 248 + notebooks/eval_osworld.ipynb | 110003 +-------------- 8 files changed, 796 insertions(+), 110674 deletions(-) delete mode 100644 libs/python/agent/agent/integrations/hud/adapter.py delete mode 100644 libs/python/agent/agent/integrations/hud/computer_handler.py create mode 100644 libs/python/agent/agent/proxy/examples.py create mode 100644 libs/python/agent/agent/proxy/handlers.py diff --git a/libs/kasm/Dockerfile b/libs/kasm/Dockerfile index c3a4c795..b8cf9976 100644 --- a/libs/kasm/Dockerfile +++ b/libs/kasm/Dockerfile @@ -1,4 +1,4 @@ -FROM kasmweb/core-ubuntu-jammy:1.17.0 +FROM --platform=linux/amd64 kasmweb/core-ubuntu-jammy:1.17.0 USER root ENV HOME=/home/kasm-default-profile diff --git a/libs/python/agent/agent/integrations/hud/__init__.py b/libs/python/agent/agent/integrations/hud/__init__.py index 787613de..d7fc3a20 100644 --- a/libs/python/agent/agent/integrations/hud/__init__.py +++ b/libs/python/agent/agent/integrations/hud/__init__.py @@ -1,77 +1,149 @@ -"""HUD integration for ComputerAgent.""" +"""HUD integration: Generic HuggingFace dataset evaluation runner (CUA proxy). -import logging -from typing import Any, Optional, Dict -from hud import run_job as hud_run_job +This module exposes two helpers to evaluate HUD-compatible datasets using +HUD's OperatorAgent, while proxying model calls through our ComputerAgent via +`FakeAsyncOpenAI` (see `agent/integrations/hud/agent.py`). -from .agent import ComputerAgent -from .adapter import ComputerAgentAdapter -from .computer_handler import HUDComputerHandler +Exports: +- run_single_task(dataset_name, *, agent_type="cua-proxy", model=None, allowed_tools=None) +- run_full_dataset(dataset_name, *, agent_type="cua-proxy", model=None, allowed_tools=None, max_concurrent=30, max_steps=50) +""" +import time +from typing import Any, Optional + +from PIL import Image +from datasets import load_dataset, Dataset +from hud.agents import OperatorAgent +from hud.datasets import Task, run_dataset +from hud.tools.computer.settings import computer_settings +from hud import trace + +from agent.agent import ComputerAgent as BaseComputerAgent +from .agent import FakeAsyncOpenAI -async def run_job( - model: str, - task_or_taskset: Any, - job_name: str, - # Job kwargs - auto_reply_question: bool = False, - adapter_cls: Any = None, - adapter_kwargs: Optional[Dict[str, Any]] = None, - max_steps_per_task: int = 20, - run_parallel: bool = True, - job_metadata: Optional[Dict[str, Any]] = None, - show_progress: bool = True, - max_concurrent_env_creations: Optional[int] = 30, # Limits gym.make calls - max_concurrent_agent_predictions: Optional[int] = None, # No limit on LLM calls - max_concurrent_tasks: Optional[int] = 30, # Limits overall task concurrency - **agent_kwargs: Any -) -> Any: +# --------------------------------------------------------------------------- +# Proxy OperatorAgent +# --------------------------------------------------------------------------- + + +class ProxyOperatorAgent(OperatorAgent): + """OperatorAgent that proxies model calls through our ComputerAgent. + + Accepts the same config keys we pass via hud.run_dataset `agent_config`: + - model: str | None + - allowed_tools: list[str] | None + Additional kwargs are forwarded to OperatorAgent (if any are supported). """ - Run a job using ComputerAgent with the specified model. + + def __init__( + self, + *, + model: str | None = None, + allowed_tools: list[str] | None = None, + **kwargs: Any, + ) -> None: + model = model or "computer-use-preview" + allowed_tools = allowed_tools or ["openai_computer"] + + computer_shim = { + 'screenshot': lambda: Image.new('RGB', (computer_settings.OPENAI_COMPUTER_WIDTH, computer_settings.OPENAI_COMPUTER_HEIGHT)), + 'environment': 'linux', + 'dimensions': (computer_settings.OPENAI_COMPUTER_WIDTH, computer_settings.OPENAI_COMPUTER_HEIGHT) + } + computer_agent = BaseComputerAgent( + model=model, + tools=[computer_shim], + verbosity=20, + trajectory_dir='trajectories' + ) + model_client = FakeAsyncOpenAI(computer_agent) + + super().__init__( + model_client=model_client, # type: ignore[arg-type] + model=model, + allowed_tools=allowed_tools, + **kwargs, + ) + + +# --------------------------------------------------------------------------- +# Single-task runner +# --------------------------------------------------------------------------- + + +async def run_single_task( + dataset: str | Dataset | list[dict[str, Any]], + *, + task_id: int = 0, + model: str | None = None, + allowed_tools: list[str] | None = None, +) -> None: + """Load one task from the dataset and execute it with Operator+CUA proxy.""" + + # Load dataset and pick a sample + if isinstance(dataset, str): + dataset = load_dataset(dataset, split="train") # type: ignore[arg-type] + elif isinstance(dataset, list): + dataset = dataset + else: + dataset = dataset["train"] - Args: - model: Model string for ComputerAgent (e.g., "anthropic/claude-3-5-sonnet-20241022") - task_or_taskset: Task or TaskSet to run - job_name: Name for the job - auto_reply_question: Whether to auto-reply to questions - adapter_cls: Custom adapter class (defaults to ComputerAgentAdapter) - adapter_kwargs: Additional kwargs for the adapter - max_steps_per_task: Maximum steps per task - run_parallel: Whether to run tasks in parallel - job_metadata: Additional metadata for the job - show_progress: Whether to show progress - max_concurrent_env_creations: Max concurrent environment creations - max_concurrent_agent_predictions: Max concurrent agent predictions - max_concurrent_tasks: Max concurrent tasks - **agent_kwargs: Additional kwargs to pass to ComputerAgent - - Returns: - Job instance from HUD - """ - # combine verbose and verbosity kwargs - if "verbose" in agent_kwargs: - agent_kwargs["verbosity"] = logging.INFO - del agent_kwargs["verbose"] - verbose = True if agent_kwargs.get("verbosity", logging.WARNING) > logging.INFO else False - - # run job - return await hud_run_job( - agent_cls=ComputerAgent, - agent_kwargs={"model": model, **agent_kwargs}, - task_or_taskset=task_or_taskset, - job_name=job_name, - auto_reply_question=auto_reply_question, - adapter_cls=adapter_cls, - adapter_kwargs=adapter_kwargs, - max_steps_per_task=max_steps_per_task, - run_parallel=run_parallel, - job_metadata=job_metadata, - show_progress=show_progress, - verbose=verbose, - max_concurrent_env_creations=max_concurrent_env_creations, - max_concurrent_agent_predictions=max_concurrent_agent_predictions, - max_concurrent_tasks=max_concurrent_tasks + sample_task = dataset[task_id] # type: ignore[index] + task_prompt = sample_task.get("prompt", f"Task {sample_task.get('id', 0)}") # type: ignore[attr-defined] + + with trace(name=task_prompt): + task = Task(**sample_task) # type: ignore[arg-type] + + agent = ProxyOperatorAgent(model=model, allowed_tools=allowed_tools) + print(f"Running: {task_prompt}") + result = await agent.run(task, max_steps=10) + print(f"✅ Reward: {getattr(result, 'reward')}") + + +# --------------------------------------------------------------------------- +# Full-dataset runner +# --------------------------------------------------------------------------- + + +async def run_full_dataset( + dataset: str | Dataset | list[dict[str, Any]], + *, + job_name: Optional[str] = None, + model: str | None = None, + allowed_tools: list[str] | None = None, + max_concurrent: int = 30, + max_steps: int = 50, + split: str = "train", +) -> list[Any]: + """Run evaluation across the entire dataset using hud.datasets.run_dataset.""" + + # We pass OperatorAgent as the class and provide a config that injects our + # FakeAsyncOpenAI per agent instantiation. + + if isinstance(dataset, str): + dataset_name = dataset.split('/')[-1] + job_name = job_name or f"Evaluation {dataset_name}" + dataset = load_dataset(dataset, split=split) # type: ignore[arg-type] + else: + dataset_name = "custom" + job_name = job_name or f"Evaluation {time.strftime('%H:%M %Y-%m-%d')}" + + # Execute evaluation + return await run_dataset( + name=job_name, + dataset=dataset, + agent_class=ProxyOperatorAgent, + agent_config={"model": model, "allowed_tools": allowed_tools}, + max_concurrent=max_concurrent, + metadata={"dataset": dataset_name}, + max_steps=max_steps, + auto_respond=True, ) -__all__ = ["ComputerAgent", "ComputerAgentAdapter", "HUDComputerHandler", "run_job"] \ No newline at end of file +__all__ = [ + "run_single_task", + "run_full_dataset", + "ProxyOperatorAgent", +] \ No newline at end of file diff --git a/libs/python/agent/agent/integrations/hud/adapter.py b/libs/python/agent/agent/integrations/hud/adapter.py deleted file mode 100644 index 77c8dc7d..00000000 --- a/libs/python/agent/agent/integrations/hud/adapter.py +++ /dev/null @@ -1,121 +0,0 @@ -"""HUD Adapter for ComputerAgent integration.""" - -from __future__ import annotations - -from typing import Any, ClassVar - -from hud.adapters.common import CLA, Adapter -from hud.adapters.common.types import ( - CLAButton, - CLAKey, - ClickAction, - CustomAction, - DragAction, - MoveAction, - Point, - PressAction, - ResponseAction, - ScreenshotFetch, - ScrollAction, - TypeAction, - WaitAction, -) - - -class ComputerAgentAdapter(Adapter): - """Adapter for ComputerAgent to work with HUD.""" - - KEY_MAP: ClassVar[dict[str, CLAKey]] = { - "return": "enter", - "arrowup": "up", - "arrowdown": "down", - "arrowleft": "left", - "arrowright": "right", - "cmd": "ctrl", - "super": "win", - "meta": "win", - } - - BUTTON_MAP: ClassVar[dict[str, CLAButton]] = { - "wheel": "middle", - "middle": "middle", - } - - def __init__(self) -> None: - super().__init__() - # ComputerAgent default dimensions (can be overridden) - self.agent_width = 1024 - self.agent_height = 768 - - def _map_key(self, key: str) -> CLAKey: - """Map a key to its standardized form.""" - return self.KEY_MAP.get(key.lower(), key.lower()) # type: ignore - - def convert(self, data: Any) -> CLA: - """Convert a ComputerAgent action to a HUD action.""" - try: - action_type = data.get("type") - - if action_type == "click": - x, y = data.get("x", 0), data.get("y", 0) - button = data.get("button", "left") - button = self.BUTTON_MAP.get(button, button) - if button is None: - button = "left" - converted_action = ClickAction(point=Point(x=x, y=y), button=button) - - elif action_type == "double_click": - x, y = data.get("x", 0), data.get("y", 0) - converted_action = ClickAction(point=Point(x=x, y=y), button="left", pattern=[100]) - - elif action_type == "scroll": - x, y = int(data.get("x", 0)), int(data.get("y", 0)) - scroll_x = int(data.get("scroll_x", 0)) - scroll_y = int(data.get("scroll_y", 0)) - converted_action = ScrollAction( - point=Point(x=x, y=y), scroll=Point(x=scroll_x, y=scroll_y) - ) - - elif action_type == "type": - text = data.get("text", "") - converted_action = TypeAction(text=text, enter_after=False) - - elif action_type == "wait": - ms = data.get("ms", 1000) - converted_action = WaitAction(time=ms) - - elif action_type == "move": - x, y = data.get("x", 0), data.get("y", 0) - converted_action = MoveAction(point=Point(x=x, y=y)) - - elif action_type == "keypress": - keys = data.get("keys", []) - if isinstance(keys, str): - keys = [keys] - converted_action = PressAction(keys=[self._map_key(k) for k in keys]) - - elif action_type == "drag": - path = data.get("path", []) - points = [Point(x=p.get("x", 0), y=p.get("y", 0)) for p in path] - converted_action = DragAction(path=points) - - elif action_type == "screenshot": - converted_action = ScreenshotFetch() - - elif action_type == "response": - converted_action = ResponseAction(text=data.get("text", "")) - - elif action_type == "custom": - converted_action = CustomAction(action=data.get("action", "")) - - else: - raise ValueError(f"Unsupported action type: {action_type}") - - # Add reasoning and logs if available - converted_action.reasoning = data.get("reasoning", "") - converted_action.logs = data.get("logs", "") - - return converted_action - - except Exception as e: - raise ValueError(f"Invalid action: {data}. Error: {e!s}") from e diff --git a/libs/python/agent/agent/integrations/hud/agent.py b/libs/python/agent/agent/integrations/hud/agent.py index abbf5f8c..4155d736 100644 --- a/libs/python/agent/agent/integrations/hud/agent.py +++ b/libs/python/agent/agent/integrations/hud/agent.py @@ -1,373 +1,170 @@ -"""HUD ComputerAgent wrapper for OSWorld benchmarking.""" +"""HUD ComputerAgent wrapper and Fake AsyncOpenAI client. -import logging -from typing import Any, Literal, Optional, Union, List, Dict -import asyncio +Provides FakeAsyncOpenAI that adapts our ComputerAgent to the OpenAI Responses +interface needed by HUD's OperatorAgent. It implements only `responses.create` +and returns an OpenAI Response object with `id` and `output` fields, where `output` is a list of +OpenAI-like response blocks. We intentionally only support a single-step call +by consuming the first yielded result from `ComputerAgent.run()`. +""" -from agent import ComputerAgent as BaseComputerAgent -from agent.responses import make_failed_tool_call_items -from hud.adapters import Adapter -from hud.agent.base import Agent -from hud.utils.common import Observation -from hud.adapters.common.types import LogType -from hud.types import Gym +import traceback +import time +import uuid +from typing import Any, Dict, List, Optional -from .adapter import ComputerAgentAdapter -from .computer_handler import HUDComputerHandler +from agent.agent import ComputerAgent as BaseComputerAgent -logger = logging.getLogger(__name__) +# OpenAI Responses typed models (required) +from openai.types.responses import ( + Response, + ResponseInputParam, + ResponseOutputItem, + ResponseComputerToolCall, + ResponseOutputMessage, + ResponseOutputText, + ResponseReasoningItem, + ResponseUsage, +) -BASE_SYSTEM_PROMPT = """ -You are an autonomous computer-using agent. Follow these guidelines: +def _map_agent_output_to_openai_blocks(output_items: List[Dict[str, Any]]) -> List[ResponseOutputItem]: + """Map our agent output items to OpenAI ResponseOutputItem typed models. -1. Be decisive and complete tasks without asking for confirmation unless absolutely necessary. -2. Use the computer tools to complete the task and do not stop until the task is complete. -3. Do NOT ask questions like "Should I proceed?" or "Would you like me to continue?" - just proceed with the task. -4. When you find what you're looking for (e.g., a file to upload), proceed with the action directly. -5. Only stop when the task is fully complete or if you encounter an error that prevents completion. -6. Trust that the user wants you to complete the entire task they've requested. -7. You must say "Task completed" when the task is complete. - -Remember: You have been given permission to complete the requested task autonomously. -""".strip() - -class ComputerAgent(Agent[BaseComputerAgent, dict[str, Any]]): + Only a subset is supported: computer_call, assistant message (text), and reasoning. + Unknown types are ignored. """ - A ComputerAgent wrapper for HUD integration. - - This agent wraps the base ComputerAgent to work with HUD environments, - providing the same interface as OperatorAgent but using ComputerAgent internally. + blocks: List[ResponseOutputItem] = [] + for item in output_items or []: + t = item.get("type") + if t == "computer_call": + comp = ResponseComputerToolCall.model_validate({ + "id": item.get("id") or f"cu_{uuid.uuid4().hex}", + "type": "computer_call", + "call_id": item["call_id"], + "action": item["action"], + "pending_safety_checks": item.get("pending_safety_checks", []), + "status": "completed", + }) + blocks.append(comp) + elif t == "message" and item.get("role") == "assistant": + content_blocks: List[ResponseOutputText] = [] + for c in item.get("content", []) or []: + content_blocks.append( + ResponseOutputText.model_validate({ + "type": "output_text", + "text": c["text"], + "annotations": [], + }) + ) + if content_blocks: + msg = ResponseOutputMessage.model_validate({ + "id": item.get("id") or f"msg_{uuid.uuid4()}", + "type": "message", + "role": "assistant", + "status": "completed", + "content": [ct.model_dump() for ct in content_blocks], + }) + blocks.append(msg) + elif t == "reasoning": + reasoning = ResponseReasoningItem.model_validate({ + "id": item.get("id") or f"rsn_{uuid.uuid4()}", + "type": "reasoning", + "summary": item["summary"], + }) + blocks.append(reasoning) + # Unhandled types are ignored + return blocks + +def _to_plain_dict_list(items: Any) -> List[Dict[str, Any]]: + out: List[Dict[str, Any]] = [] + for it in list(items): + if hasattr(it, "model_dump"): + out.append(it.model_dump()) # type: ignore[attr-defined] + elif isinstance(it, dict): + out.append(it) + else: + # Strict: rely on default __dict__ if present + out.append(dict(it)) # may raise if not mapping + return out + +class FakeAsyncOpenAI: + """Minimal fake OpenAI client with only `responses.create` implemented. + + It uses a provided `ComputerAgent` instance to produce a single-step + response compatible with HUD's OperatorAgent loop. """ - - transfer_gyms: dict[Gym, Gym] = {"qa": "hud-browser"} - def __init__( - self, - model: str = "anthropic/claude-3-5-sonnet-20241022", - environment: Literal["windows", "mac", "linux", "browser"] = "linux", - adapter: Optional[Adapter] = None, - name: Optional[str] = None, - **kwargs: Any, - ): - """ - Initialize the ComputerAgent for HUD. + def __init__(self, computer_agent: BaseComputerAgent) -> None: + self._agent = computer_agent + self.responses = self._Responses(self) - Args: - model: The model string for ComputerAgent (e.g., "anthropic/claude-3-5-sonnet-20241022") - environment: The environment type (windows, mac, linux, browser) - adapter: The adapter to use for preprocessing and postprocessing - name: The name of the agent - **kwargs: Additional arguments passed to ComputerAgent - """ - # Create adapter if not provided - adapter = adapter or ComputerAgentAdapter() - - if name is None: - name = f"computeragent-{model.split('/')[-1]}" + class _Responses: + def __init__(self, parent: "FakeAsyncOpenAI") -> None: + # Caches for cross-call context when using previous_response_id + self.blocks_cache: Dict[str, ResponseInputParam | ResponseOutputItem] = {} + self.context_cache: Dict[str, List[str]] = {} + self.agent = parent._agent - # Initialize the base Agent class without client (we'll create it later) - super().__init__(client=None, adapter=adapter, name=name) - - self.model = model - self.environment = environment - self.kwargs = kwargs - - # Default dimensions - self.width = 1024 - self.height = 768 - - # Update dimensions if adapter is provided - if self.adapter: - self.width = self.adapter.agent_width - self.height = self.adapter.agent_height - - # Create HUD computer handler - self.hud_computer = HUDComputerHandler( - environment=environment, - dimensions=(self.width, self.height) - ) - - # Handle trajectory_dir by adding TrajectorySaverCallback - trajectory_dir = kwargs.pop("trajectory_dir", None) - callbacks = kwargs.get("callbacks", []) - - if trajectory_dir: - from agent.callbacks.trajectory_saver import TrajectorySaverCallback - trajectory_callback = TrajectorySaverCallback(trajectory_dir, reset_on_run=False) - callbacks = callbacks + [trajectory_callback] - kwargs["callbacks"] = callbacks - - # Initialize ComputerAgent with HUD computer handler - self.computer_agent = BaseComputerAgent( - model=model, - tools=[self.hud_computer], - **kwargs - ) - - # Set the client to the computer_agent for compatibility - self.client = self.computer_agent - - # State tracking - self.conversation_history: List[Dict[str, Any]] = [] - self.initial_prompt: Optional[str] = None - - # System prompt for computer use tasks - self.base_system_prompt = BASE_SYSTEM_PROMPT - - async def fetch_response(self, observation: Observation) -> tuple[list[dict[str, Any]], bool]: - """ - Fetch a response from ComputerAgent based on the observation. - - Args: - observation: The preprocessed observation, attributes: - screenshot: Base64 encoded PNG string of the screen - text: Text observation, if available - - Returns: - tuple[list[dict[str, Any]], bool, list[LogType] | None]: A tuple containing the list of raw actions, - boolean indicating if the agent believes the task is complete. - """ - try: - # Update the computer handler with the current screenshot - if observation.screenshot: - self.hud_computer.update_screenshot(observation.screenshot) - - # Set up action callback to capture actions - captured_actions = [] - action_done = False - - async def action_callback(action: Dict[str, Any]) -> None: - """Callback to capture actions from ComputerAgent.""" - nonlocal captured_actions, action_done - captured_actions.append(action) - - # Set the action callback - self.hud_computer.set_action_callback(action_callback) - - # Prepare the message for ComputerAgent - if not self.conversation_history: - # First interaction - use the observation text as initial prompt - if observation.text: - self.initial_prompt = observation.text - message = f"{self.base_system_prompt}\n\nTask: {observation.text}" - else: - message = f"{self.base_system_prompt}\n\nPlease analyze the current screen and determine what action to take." - - input_content = [ - {"type": "input_text", "text": message} - ] - - # Add screenshot if present - if observation.screenshot: - input_content.append( - { - "type": "input_image", - "image_url": f"data:image/png;base64,{observation.screenshot}", - } - ) - - self.conversation_history.append({"role": "user", "content": input_content}) - else: - # Subsequent interactions - check if last action was computer_call - # If so, add computer_call_output with screenshot instead of user message - last_computer_calls = [] - for msg in reversed(self.conversation_history): - if msg.get("type") == "computer_call": - call_id = msg.get("call_id") - if call_id: - # Check if this call_id already has a computer_call_output - has_output = any( - m.get("type") == "computer_call_output" and m.get("call_id") == call_id - for m in self.conversation_history - ) - if not has_output: - last_computer_calls.append(call_id) - - if last_computer_calls: - if not observation.screenshot: - print("No screenshot found, taking screenshot") - screenshot_b64 = await self.hud_computer.screenshot() - # Add computer_call_output for each unresponded computer_call - for call_id in reversed(last_computer_calls): # Maintain order - self.conversation_history.append({ - "type": "computer_call_output", - "call_id": call_id, - "output": { - "type": "input_image", - "image_url": f"data:image/png;base64,{screenshot_b64}" - } - }) - else: - # No computer_call found, add regular user message - message = "Continue with the task based on the current screen state." - input_content = [ - {"type": "input_text", "text": message} - ] - - # Add screenshot if present - if observation.screenshot: - input_content.append( - { - "type": "input_image", - "image_url": f"data:image/png;base64,{observation.screenshot}", - } - ) - - self.conversation_history.append({"role": "user", "content": input_content}) - - # If the last message is a reasoning message, change it to output_text - if (self.conversation_history and - self.conversation_history[-1].get("type") == "reasoning" and - self.conversation_history[-1].get("summary")): - - reasoning_msg = self.conversation_history[-1] - summary_texts = [] - - # Extract all summary_text entries - for summary_item in reasoning_msg["summary"]: - if summary_item.get("type") == "summary_text": - summary_texts.append(summary_item.get("text", "")) - - # Convert to message format with output_text - if summary_texts: - converted_message = { - "type": "message", - "role": "assistant", - "content": [ - { - "text": " ".join(summary_texts), - "type": "output_text" - } - ] - } - - # Replace the reasoning message with the converted message - self.conversation_history[-1] = converted_message - - # Run ComputerAgent + async def create( + self, + *, + model: str, + input: ResponseInputParam, + tools: Optional[List[Dict[str, Any]]] = None, + instructions: Optional[str] = None, + previous_response_id: Optional[str] = None, + **_: Any, + ) -> Any: try: - new_items = [] + # Prepend cached blocks from previous_response_id to input + full_input = input + if previous_response_id is not None: + prev_block_ids = self.context_cache[previous_response_id] + prev_blocks = [self.blocks_cache[b_id] for b_id in prev_block_ids] + full_input = _to_plain_dict_list(prev_blocks + input) - # ComputerAgent.run returns an async generator - try: - async for result in self.computer_agent.run(self.conversation_history, stream=False): - # if the result has computer_call_output, immediately exit - if result.get("output", []) and result.get("output", [])[-1].get("type") == "computer_call_output": - break - # otherwise add agent output to conversation history - new_items += result["output"] - except Exception as e: - # if the last message is reasoning, change it to output_text - if new_items and new_items[-1].get("type") == "reasoning": - new_items[-1] = { - "type": "message", - "role": "assistant", - "content": [ - { - "text": new_items[-1].get("summary", [{}])[0].get("text", ""), - "type": "output_text" - } - ] - } - # Check if there are any computer_call items in new_items - computer_calls = [item for item in new_items if item.get("type") == "computer_call"] - if computer_calls: - # Remove computer_call items from new_items - new_items = [item for item in new_items if item.get("type") != "computer_call"] - - # Add failed tool call items for each computer call - for computer_call in computer_calls: - tool_input = computer_call.get("action", {}) - call_id = computer_call.get("call_id") - new_items.extend(make_failed_tool_call_items( - tool_name="computer", - tool_kwargs=tool_input, - error_message=repr(e), - call_id=call_id - )) - else: - # add error message to conversation history (fallback for non-computer-call errors) - new_items.append({ - "type": "user", - "content": [ - { - "type": "input_text", - "text": f"Error during previous attempted action: {repr(e)}" - } - ] - }) + # Run a single iteration of the ComputerAgent + agent_result: Optional[Dict[str, Any]] = None + async for result in self.agent.run(full_input): # type: ignore[arg-type] + agent_result = result + break + assert agent_result is not None, "Agent failed to produce result" - # Check if we captured any actions - if captured_actions: - # Extract reasoning from the conversation history - reasoning = "" - # Look for the latest reasoning message - for msg in reversed(new_items): - if msg.get("type") == "reasoning" and msg.get("summary"): - reasoning = " ".join([s.get("text", "") for s in msg["summary"] if s.get("type") == "summary_text"]) - break - elif msg.get("type") == "message" and msg.get("role") == "assistant": - content = msg.get("content", []) - if isinstance(content, list): - reasoning = " ".join([c.get("text", "") for c in content if c.get("type") == "output_text"]) - break - - # update conversation history - self.conversation_history += new_items + output = _map_agent_output_to_openai_blocks(agent_result["output"]) + usage = agent_result["usage"] - # Add reasoning and logs to each action - for action in captured_actions: - action["reasoning"] = reasoning - action["logs"] = {"conversation_length": len(self.conversation_history)} - - return captured_actions, False - - # Check if the last message is "Task completed" - response_text = "" - for msg in reversed(new_items): - if msg.get("type") == "message" and msg.get("role") == "assistant": - content = msg.get("content", []) - for c in content: - if c.get("type") == "output_text": - response_text = c.get("text", response_text) - break - break - - done = "task completed" in response_text.lower() - - # update conversation history - self.conversation_history += new_items - - response_action = { - "type": "response", - "text": response_text, - "reasoning": response_text, - "logs": {"conversation_length": len(self.conversation_history)} - } - - # Check if this indicates task completion or failure - if "task is infeasible" in response_text.lower(): - response_action = {"type": "custom", "action": "FAIL"} - done = True - - return [response_action], done + # Cache conversation context using the last response id + block_ids: List[str] = [] + blocks_to_cache = full_input + output + for b in blocks_to_cache: + bid = getattr(b, "id", None) or f"tmp-{hash(repr(b))}" + self.blocks_cache[bid] = b # type: ignore[assignment] + block_ids.append(bid) + response_id = agent_result.get("id") or f"fake-{int(time.time()*1000)}" + self.context_cache[response_id] = block_ids + + return Response.model_validate({ + "id": response_id, + "created_at": time.time(), + "object": "response", + "model": model, + "output": output, + "parallel_tool_calls": False, + "tool_choice": "auto", + "tools": [], + "previous_response_id": previous_response_id, + "usage": ResponseUsage.model_validate({ + "input_tokens": usage["input_tokens"], + "output_tokens": usage["output_tokens"], + "total_tokens": usage["total_tokens"], + "input_tokens_details": usage.get("input_tokens_details", { "cached_tokens": 0 }), + "output_tokens_details": usage.get("output_tokens_details", { "reasoning_tokens": 0 }), + }), + }) except Exception as e: - logger.error(f"Error running ComputerAgent: {e}") - # Return an error response - error_action = { - "type": "response", - "text": f"Error occurred: {str(e)}", - "reasoning": f"ComputerAgent encountered an error: {str(e)}", - "logs": {"error": str(e)} - } - return [error_action], True + print("Error while running agent: ", e) + print(traceback.format_exc()) + raise e - except Exception as e: - logger.error(f"Error in fetch_response: {e}") - error_action = { - "type": "response", - "text": f"Error in agent processing: {str(e)}", - "reasoning": f"Agent processing error: {str(e)}", - "logs": {"error": str(e)} - } - return [error_action], True +__all__ = [ + "FakeAsyncOpenAI", +] diff --git a/libs/python/agent/agent/integrations/hud/computer_handler.py b/libs/python/agent/agent/integrations/hud/computer_handler.py deleted file mode 100644 index 9fcc8245..00000000 --- a/libs/python/agent/agent/integrations/hud/computer_handler.py +++ /dev/null @@ -1,187 +0,0 @@ -"""HUD Computer Handler for ComputerAgent integration.""" - -import base64 -from io import BytesIO -from typing import Literal, Optional, Any, Dict, Callable -from PIL import Image - -from agent.computers import AsyncComputerHandler - - -class HUDComputerHandler(AsyncComputerHandler): - """Computer handler that interfaces with HUD environment.""" - - def __init__( - self, - environment: Literal["windows", "mac", "linux", "browser"] = "linux", - dimensions: tuple[int, int] = (1024, 768), - screenshot_callback: Optional[Callable] = None, - action_callback: Optional[Callable] = None, - ): - """ - Initialize HUD computer handler. - - Args: - environment: The environment type for HUD - dimensions: Screen dimensions as (width, height) - screenshot_callback: Optional callback to get screenshots from HUD environment - action_callback: Optional callback to execute actions in HUD environment - """ - super().__init__() - self._environment = environment - self._dimensions = dimensions - self._screenshot_callback = screenshot_callback - self._action_callback = action_callback - - # Store the last screenshot for reuse - self._last_screenshot: Optional[str] = None - - def set_screenshot_callback(self, callback: Callable) -> None: - """Set the screenshot callback.""" - self._screenshot_callback = callback - - def set_action_callback(self, callback: Callable) -> None: - """Set the action callback.""" - self._action_callback = callback - - def update_screenshot(self, screenshot: str) -> None: - """Update the stored screenshot (base64 string).""" - self._last_screenshot = screenshot - - async def get_environment(self) -> Literal["windows", "mac", "linux", "browser"]: - """Get the current environment type.""" - return self._environment # type: ignore - - async def get_dimensions(self) -> tuple[int, int]: - """Get screen dimensions as (width, height).""" - return self._dimensions - - async def screenshot(self) -> str: - """Take a screenshot and return as base64 string.""" - if self._screenshot_callback: - screenshot = await self._screenshot_callback() - if isinstance(screenshot, str): - self._last_screenshot = screenshot - return screenshot - elif isinstance(screenshot, Image.Image): - # Convert PIL Image to base64 - buffer = BytesIO() - screenshot.save(buffer, format="PNG") - screenshot_b64 = base64.b64encode(buffer.getvalue()).decode() - self._last_screenshot = screenshot_b64 - return screenshot_b64 - elif isinstance(screenshot, bytes): - screenshot_b64 = base64.b64encode(screenshot).decode() - self._last_screenshot = screenshot_b64 - return screenshot_b64 - - # Return last screenshot if available, otherwise create a blank one - if self._last_screenshot: - return self._last_screenshot - - # Create a blank screenshot as fallback - blank_image = Image.new('RGB', self._dimensions, color='white') - buffer = BytesIO() - blank_image.save(buffer, format="PNG") - screenshot_b64 = base64.b64encode(buffer.getvalue()).decode() - self._last_screenshot = screenshot_b64 - return screenshot_b64 - - async def click(self, x: int, y: int, button: str = "left") -> None: - """Click at coordinates with specified button.""" - if self._action_callback: - await self._action_callback({ - "type": "click", - "x": x, - "y": y, - "button": button - }) - - async def double_click(self, x: int, y: int) -> None: - """Double click at coordinates.""" - if self._action_callback: - await self._action_callback({ - "type": "double_click", - "x": x, - "y": y - }) - - async def scroll(self, x: int, y: int, scroll_x: int, scroll_y: int) -> None: - """Scroll at coordinates with specified scroll amounts.""" - if self._action_callback: - await self._action_callback({ - "type": "scroll", - "x": x, - "y": y, - "scroll_x": scroll_x, - "scroll_y": scroll_y - }) - - async def type(self, text: str) -> None: - """Type text.""" - if self._action_callback: - await self._action_callback({ - "type": "type", - "text": text - }) - - async def wait(self, ms: int = 1000) -> None: - """Wait for specified milliseconds.""" - if self._action_callback: - await self._action_callback({ - "type": "wait", - "ms": ms - }) - - async def move(self, x: int, y: int) -> None: - """Move cursor to coordinates.""" - if self._action_callback: - await self._action_callback({ - "type": "move", - "x": x, - "y": y - }) - - async def keypress(self, keys: list[str] | str) -> None: - """Press key combination.""" - if isinstance(keys, str): - keys = [keys] - if self._action_callback: - await self._action_callback({ - "type": "keypress", - "keys": keys - }) - - async def drag(self, path: list[dict[str, int]]) -> None: - """Drag along a path of points.""" - if self._action_callback: - await self._action_callback({ - "type": "drag", - "path": path - }) - - async def left_mouse_down(self, x: Optional[int] = None, y: Optional[int] = None) -> None: - """Left mouse down at coordinates.""" - if self._action_callback: - await self._action_callback({ - "type": "left_mouse_down", - "x": x, - "y": y - }) - - async def left_mouse_up(self, x: Optional[int] = None, y: Optional[int] = None) -> None: - """Left mouse up at coordinates.""" - if self._action_callback: - await self._action_callback({ - "type": "left_mouse_up", - "x": x, - "y": y - }) - - async def get_current_url(self) -> str: - """Get the current URL.""" - if self._action_callback: - return await self._action_callback({ - "type": "get_current_url" - }) - return "" \ No newline at end of file diff --git a/libs/python/agent/agent/proxy/examples.py b/libs/python/agent/agent/proxy/examples.py new file mode 100644 index 00000000..2838c5df --- /dev/null +++ b/libs/python/agent/agent/proxy/examples.py @@ -0,0 +1,192 @@ +""" +Example usage of the proxy server and client requests. +""" +import dotenv +dotenv.load_dotenv() + +import asyncio +import json +import os +import aiohttp +from typing import Dict, Any + + +async def test_http_endpoint(): + """Test the HTTP /responses endpoint.""" + + anthropic_api_key = os.getenv("ANTHROPIC_API_KEY") + assert isinstance(anthropic_api_key, str), "ANTHROPIC_API_KEY environment variable must be set" + + # Example 1: Simple text request + simple_request = { + "model": "anthropic/claude-3-5-sonnet-20241022", + "input": "Tell me a three sentence bedtime story about a unicorn.", + "env": { + "ANTHROPIC_API_KEY": anthropic_api_key + } + } + + # Example 2: Multi-modal request with image + multimodal_request = { + "model": "anthropic/claude-3-5-sonnet-20241022", + "input": [ + { + "role": "user", + "content": [ + {"type": "input_text", "text": "what is in this image?"}, + { + "type": "input_image", + "image_url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg" + } + ] + } + ], + "env": { + "ANTHROPIC_API_KEY": anthropic_api_key + } + } + + # Example 3: Request with custom agent and computer kwargs + custom_request = { + "model": "anthropic/claude-3-5-sonnet-20241022", + "input": "Take a screenshot and tell me what you see", + "env": { + "ANTHROPIC_API_KEY": anthropic_api_key + } + } + + # Test requests + base_url = "https://m-linux-96lcxd2c2k.containers.cloud.trycua.com:8443" + # base_url = "http://localhost:8000" + api_key = os.getenv("CUA_API_KEY") + assert isinstance(api_key, str), "CUA_API_KEY environment variable must be set" + + async with aiohttp.ClientSession() as session: + for i, request_data in enumerate([ + simple_request, + # multimodal_request, + custom_request + ], 1): + print(f"\n--- Test {i} ---") + print(f"Request: {json.dumps(request_data, indent=2)}") + + try: + print(f"Sending request to {base_url}/responses") + async with session.post( + f"{base_url}/responses", + json=request_data, + headers={"Content-Type": "application/json", "X-API-Key": api_key} + ) as response: + result = await response.json() + print(f"Status: {response.status}") + print(f"Response: {json.dumps(result, indent=2)}") + + except Exception as e: + print(f"Error: {e}") + + +def curl_examples(): + """Print curl command examples.""" + + print("=== CURL Examples ===\n") + + print("1. Simple text request:") + print("""curl http://localhost:8000/responses \\ + -H "Content-Type: application/json" \\ + -d '{ + "model": "anthropic/claude-3-5-sonnet-20241022", + "input": "Tell me a three sentence bedtime story about a unicorn." + }'""") + + print("\n2. Multi-modal request with image:") + print("""curl http://localhost:8000/responses \\ + -H "Content-Type: application/json" \\ + -d '{ + "model": "anthropic/claude-3-5-sonnet-20241022", + "input": [ + { + "role": "user", + "content": [ + {"type": "input_text", "text": "what is in this image?"}, + { + "type": "input_image", + "image_url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg" + } + ] + } + ] + }'""") + + print("\n3. Request with custom configuration:") + print("""curl http://localhost:8000/responses \\ + -H "Content-Type: application/json" \\ + -d '{ + "model": "anthropic/claude-3-5-sonnet-20241022", + "input": "Take a screenshot and tell me what you see", + "agent_kwargs": { + "save_trajectory": true, + "verbosity": 20 + }, + "computer_kwargs": { + "os_type": "linux", + "provider_type": "cloud" + } + }'""") + + +async def test_p2p_client(): + """Example P2P client using peerjs-python.""" + try: + from peerjs import Peer, PeerOptions, ConnectionEventType + from aiortc import RTCConfiguration, RTCIceServer + + # Set up client peer + options = PeerOptions( + host="0.peerjs.com", + port=443, + secure=True, + config=RTCConfiguration( + iceServers=[RTCIceServer(urls="stun:stun.l.google.com:19302")] + ) + ) + + client_peer = Peer(id="test-client", peer_options=options) + await client_peer.start() + + # Connect to proxy server + connection = client_peer.connect("computer-agent-proxy") + + @connection.on(ConnectionEventType.Open) + async def connection_open(): + print("Connected to proxy server") + + # Send a test request + request = { + "model": "anthropic/claude-3-5-sonnet-20241022", + "input": "Hello from P2P client!" + } + await connection.send(json.dumps(request)) + + @connection.on(ConnectionEventType.Data) + async def connection_data(data): + print(f"Received response: {data}") + await client_peer.destroy() + + # Wait for connection + await asyncio.sleep(10) + + except ImportError: + print("P2P dependencies not available. Install peerjs-python for P2P testing.") + except Exception as e: + print(f"P2P test error: {e}") + + +if __name__ == "__main__": + import sys + + if len(sys.argv) > 1 and sys.argv[1] == "curl": + curl_examples() + elif len(sys.argv) > 1 and sys.argv[1] == "p2p": + asyncio.run(test_p2p_client()) + else: + asyncio.run(test_http_endpoint()) diff --git a/libs/python/agent/agent/proxy/handlers.py b/libs/python/agent/agent/proxy/handlers.py new file mode 100644 index 00000000..f68952b0 --- /dev/null +++ b/libs/python/agent/agent/proxy/handlers.py @@ -0,0 +1,248 @@ +""" +Request handlers for the proxy endpoints. +""" + +import asyncio +import json +import logging +import os +from contextlib import contextmanager +from typing import Dict, Any, List, Union, Optional + +from ..agent import ComputerAgent +from computer import Computer + +logger = logging.getLogger(__name__) + + +class ResponsesHandler: + """Handler for /responses endpoint that processes agent requests.""" + + def __init__(self): + self.computer = None + self.agent = None + # Simple in-memory caches + self._computer_cache: Dict[str, Any] = {} + self._agent_cache: Dict[str, Any] = {} + + async def setup_computer_agent( + self, + model: str, + agent_kwargs: Optional[Dict[str, Any]] = None, + computer_kwargs: Optional[Dict[str, Any]] = None, + ): + """Set up (and cache) computer and agent instances. + + Caching keys: + - Computer cache key: computer_kwargs + - Agent cache key: {"model": model, **agent_kwargs} + """ + agent_kwargs = agent_kwargs or {} + computer_kwargs = computer_kwargs or {} + + def _stable_key(obj: Dict[str, Any]) -> str: + try: + return json.dumps(obj, sort_keys=True, separators=(",", ":")) + except Exception: + # Fallback: stringify non-serializable values + safe_obj = {} + for k, v in obj.items(): + try: + json.dumps(v) + safe_obj[k] = v + except Exception: + safe_obj[k] = str(v) + return json.dumps(safe_obj, sort_keys=True, separators=(",", ":")) + + # Determine if custom tools are supplied; if so, skip computer setup entirely + has_custom_tools = bool(agent_kwargs.get("tools")) + + computer = None + if not has_custom_tools: + # ---------- Computer setup (with cache) ---------- + comp_key = _stable_key(computer_kwargs) + + computer = self._computer_cache.get(comp_key) + if computer is None: + # Default computer configuration + default_c_config = { + "os_type": "linux", + "provider_type": "cloud", + "name": os.getenv("CUA_CONTAINER_NAME"), + "api_key": os.getenv("CUA_API_KEY"), + } + default_c_config.update(computer_kwargs) + computer = Computer(**default_c_config) + await computer.__aenter__() + self._computer_cache[comp_key] = computer + logger.info(f"Computer created and cached with key={comp_key} config={default_c_config}") + else: + logger.info(f"Reusing cached computer for key={comp_key}") + + # Bind current computer reference (None if custom tools supplied) + self.computer = computer + + # ---------- Agent setup (with cache) ---------- + # Build agent cache key from {model} + agent_kwargs (excluding tools unless explicitly passed) + agent_kwargs_for_key = dict(agent_kwargs) + agent_key_payload = {"model": model, **agent_kwargs_for_key} + agent_key = _stable_key(agent_key_payload) + + agent = self._agent_cache.get(agent_key) + if agent is None: + # Default agent configuration + default_a_config: Dict[str, Any] = {"model": model} + if not has_custom_tools: + default_a_config["tools"] = [computer] + # Apply user overrides, but keep tools unless user explicitly sets + if agent_kwargs: + if not has_custom_tools: + agent_kwargs.setdefault("tools", [computer]) + default_a_config.update(agent_kwargs) + # JSON-derived kwargs may have loose types; ignore static arg typing here + agent = ComputerAgent(**default_a_config) # type: ignore[arg-type] + self._agent_cache[agent_key] = agent + logger.info(f"Agent created and cached with key={agent_key} model={model}") + else: + # Ensure cached agent uses the current computer tool (in case object differs) + # Only update if tools not explicitly provided in agent_kwargs + if not has_custom_tools: + try: + agent.tools = [computer] + except Exception: + pass + logger.info(f"Reusing cached agent for key={agent_key}") + + # Bind current agent reference + self.agent = agent + + async def process_request(self, request_data: Dict[str, Any]) -> Dict[str, Any]: + """ + Process a /responses request and return the result. + + Args: + request_data: Dictionary containing model, input, and optional kwargs + + Returns: + Dictionary with the agent's response + """ + try: + # Extract request parameters + model = request_data.get("model") + input_data = request_data.get("input") + agent_kwargs = request_data.get("agent_kwargs", {}) + computer_kwargs = request_data.get("computer_kwargs", {}) + env_overrides = request_data.get("env", {}) or {} + + if not model: + raise ValueError("Model is required") + if not input_data: + raise ValueError("Input is required") + + # Apply env overrides for the duration of this request + with self._env_overrides(env_overrides): + # Set up (and possibly reuse) computer and agent via caches + await self.setup_computer_agent(model, agent_kwargs, computer_kwargs) + + # Defensive: ensure agent is initialized for type checkers + agent = self.agent + if agent is None: + raise RuntimeError("Agent failed to initialize") + + # Convert input to messages format + messages = self._convert_input_to_messages(input_data) + + # Run agent and get first result + async for result in agent.run(messages): + # Return the first result and break + return { + "success": True, + "result": result, + "model": model + } + + # If no results were yielded + return { + "success": False, + "error": "No results from agent", + "model": model + } + + except Exception as e: + logger.error(f"Error processing request: {e}") + return { + "success": False, + "error": str(e), + "model": request_data.get("model", "unknown") + } + + def _convert_input_to_messages(self, input_data: Union[str, List[Dict[str, Any]]]) -> List[Dict[str, Any]]: + """Convert input data to messages format.""" + if isinstance(input_data, str): + # Simple string input + return [{"role": "user", "content": input_data}] + elif isinstance(input_data, list): + # Already in messages format + messages = [] + for msg in input_data: + # Convert content array format if needed + if isinstance(msg.get("content"), list): + content_parts = [] + for part in msg["content"]: + if part.get("type") == "input_text": + content_parts.append({"type": "text", "text": part["text"]}) + elif part.get("type") == "input_image": + content_parts.append({ + "type": "image_url", + "image_url": {"url": part["image_url"]} + }) + else: + content_parts.append(part) + messages.append({ + "role": msg["role"], + "content": content_parts + }) + else: + messages.append(msg) + return messages + else: + raise ValueError("Input must be string or list of messages") + + async def cleanup(self): + """Clean up resources.""" + if self.computer: + try: + await self.computer.__aexit__(None, None, None) + except Exception as e: + logger.error(f"Error cleaning up computer: {e}") + finally: + self.computer = None + self.agent = None + + @staticmethod + @contextmanager + def _env_overrides(env: Dict[str, str]): + """Temporarily apply environment variable overrides for the current process. + Restores previous values after the context exits. + + Args: + env: Mapping of env var names to override for this request. + """ + if not env: + # No-op context + yield + return + + original: Dict[str, Optional[str]] = {} + try: + for k, v in env.items(): + original[k] = os.environ.get(k) + os.environ[k] = str(v) + yield + finally: + for k, old in original.items(): + if old is None: + # Was not set before + os.environ.pop(k, None) + else: + os.environ[k] = old diff --git a/notebooks/eval_osworld.ipynb b/notebooks/eval_osworld.ipynb index 7b00795a..beccbb1e 100644 --- a/notebooks/eval_osworld.ipynb +++ b/notebooks/eval_osworld.ipynb @@ -24,7 +24,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -34,7 +34,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -43,720 +43,73 @@ "# - ANTHROPIC_API_KEY (for Claude models)\n", "# - OPENAI_API_KEY (for OpenAI models)\n", "\n", - "from hud import gym, load_taskset\n", - "from pprint import pprint\n", - "import asyncio" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "# Import the HUD-integrated ComputerAgent\n", - "from agent.integrations.hud import ComputerAgent" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Total tasks in OSWorld: 367\n", - "Task prompt: Can you make my computer bring back the last tab I shut down?\n" - ] - } - ], - "source": [ - "# Load OSWorld taskset\n", - "taskset = await load_taskset(\"OSWorld-Verified\")\n", - "print(f\"Total tasks in OSWorld: {len(taskset)}\")\n", - "\n", - "# Select a test task\n", - "test = taskset[148]\n", - "print(f\"Task prompt: {test.prompt}\")" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Total tasks in SheetBench: 50\n", - "Task prompt: Given the Input data, determine the ticker with the greatest correlation between volume and next day price change.\n", - "- in ANSWER tab put the Ticker in A1 and the correlation in B1\n", - " - use CORREL to determine correlation\n", - "- be sure to first sort the date by ticker z to a and then date ascending before calculating nextdaypricechange %\n", - "Correlation should be rounded to 2 decimal points\n" - ] - } - ], - "source": [ - "# Load SheetBench taskset\n", - "taskset = await load_taskset(\"SheetBench-V2\")\n", - "print(f\"Total tasks in SheetBench: {len(taskset)}\")\n", - "\n", - "# Select a test task\n", - "test = taskset[0]\n", - "print(f\"Task prompt: {test.prompt}\")" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[INFO] 2025-08-08 19:08:17,078 | hud.environment | View the live trace at https://app.hud.so/trace/ca88c178-cf40-499b-8ad3-d5d60348d9fe\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Environment ready!\n" - ] - } - ], - "source": [ - "# Create environment (takes ~2.5 minutes to start)\n", - "env = await gym.make(test)\n", - "print(\"Environment ready!\")" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " " - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "'\\n
\\n
\\n \\n
\\n
\\n '" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "await env.stream() # vnc" + "from pprint import pprint" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## Test with any supported CUA model\n", + "## Quick single-task smoke test on OSWorld-Verified\n", "\n", "The ComputerAgent integration can use Claude, OpenAI, UI-TARS, or composed models just like the original ComputerAgent:" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 1, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\dillo\\miniconda3\\envs\\cua\\Lib\\site-packages\\tqdm\\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + }, { "name": "stdout", "output_type": "stream", "text": [ - "Created agent: computeragent-computer-use-preview\n" + "\n", + "\u001b[90m╔═════════════════════════════════════════════════════════════════╗\u001b[0m\n", + "\u001b[90m║\u001b[0m 🚀 See your agent live at: \u001b[90m║\u001b[0m\n", + "\u001b[90m╟─────────────────────────────────────────────────────────────────╢\u001b[0m\n", + "\u001b[90m║\u001b[0m \u001b[1m\u001b[33mhttps://app.hud.so/trace/60b2956b-8520-4225-93d3-22ea2ff0253b\u001b[0m \u001b[90m║\u001b[0m\n", + "\u001b[90m╚═════════════════════════════════════════════════════════════════╝\u001b[0m\n", + "\n", + "Running: Calculate from the RawData tab the z-scores from the mean close price for each row. Return, starting in ANSWER!A1 and descending to ANSWER!A5, the 5 dates with the greatest absolute value of standard deviations from the mean\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-08-27 13:10:52,780 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", + "Step failed: 'dict' object has no attribute 'id'\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "✅ Reward: 0.0\n", + "\n", + "\u001b[92m✓ Trace complete!\u001b[0m \u001b[2mView at:\u001b[0m \u001b[1m\u001b[33mhttps://app.hud.so/trace/60b2956b-8520-4225-93d3-22ea2ff0253b\u001b[0m\n", + "\n" ] } ], "source": [ - "import logging\n", - "# Create ComputerAgent with Claude\n", - "claude_agent = ComputerAgent(\n", - " # model=\"anthropic/claude-3-5-sonnet-20241022\",\n", - " model=\"openai/computer-use-preview\",\n", - " # environment=\"linux\", # OSWorld typically uses Linux\n", - " environment=\"browser\", # SheetBench uses the browser\n", - " trajectory_dir=\"trajectories\",\n", - " verbosity=logging.INFO,\n", - ")\n", + "from agent.integrations.hud import run_single_task\n", "\n", - "print(f\"Created agent: {claude_agent.name}\")" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Initial observation complete\n", - "========= Step 1 ==========\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-08-08 19:14:10,479 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "2025-08-08 19:14:18,867 - agent.ComputerAgent - INFO - Computer: click({'button': 'left', 'x': 55, 'y': 149})\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Agent's action: [ClickAction(type='click', reasoning='Sorting dataset for analysis preparation', logs={'conversation_length': 3}, point=Point(x=77, y=174), button='left', pattern=None, hold_keys=None)]\n", - "========= Step 2 ==========\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-08-08 19:14:24,566 - agent.ComputerAgent - INFO - LLM processing started with 4 messages\n", - "2025-08-08 19:14:30,430 - agent.ComputerAgent - INFO - Computer: keypress({'keys': ['CTRL', 'A']})\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Agent's action: [PressAction(type='press', reasoning='Sorting dataset for analysis preparation', logs={'conversation_length': 5}, keys=['ctrl', 'a'])]\n", - "========= Step 3 ==========\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-08-08 19:14:36,137 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "2025-08-08 19:14:42,483 - agent.ComputerAgent - INFO - Computer: click({'button': 'left', 'x': 73, 'y': 151})\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Agent's action: [ClickAction(type='click', reasoning='Sorting dataset for analysis preparation', logs={'conversation_length': 7}, point=Point(x=102, y=176), button='left', pattern=None, hold_keys=None)]\n", - "========= Step 4 ==========\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-08-08 19:14:48,687 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "2025-08-08 19:14:59,516 - agent.ComputerAgent - INFO - Computer: keypress({'keys': ['CTRL', 'A']})\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Agent's action: [PressAction(type='press', reasoning='Sorting dataset for analysis preparation', logs={'conversation_length': 9}, keys=['ctrl', 'a'])]\n", - "========= Step 5 ==========\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-08-08 19:15:05,229 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "2025-08-08 19:15:15,153 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 55, 'y': 147}, {'x': 319, 'y': 713}]})\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Agent's action: [DragAction(type='drag', reasoning='Highlighting data for sorting preparation', logs={'conversation_length': 12}, path=[Point(x=77, y=172), Point(x=448, y=835)], pattern=None, hold_keys=None)]\n", - "========= Step 6 ==========\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-08-08 19:15:21,362 - agent.ComputerAgent - INFO - LLM processing started with 13 messages\n", - "2025-08-08 19:15:33,774 - agent.ComputerAgent - INFO - Computer: click({'button': 'left', 'x': 229, 'y': 41})\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Agent's action: [ClickAction(type='click', reasoning='Opening sort options for data', logs={'conversation_length': 15}, point=Point(x=322, y=48), button='left', pattern=None, hold_keys=None)]\n", - "========= Step 7 ==========\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-08-08 19:15:39,973 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "2025-08-08 19:15:52,928 - agent.ComputerAgent - INFO - Computer: click({'button': 'left', 'x': 430, 'y': 96})\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Agent's action: [ClickAction(type='click', reasoning='Choosing \"Sort range\" for sorting', logs={'conversation_length': 18}, point=Point(x=604, y=112), button='left', pattern=None, hold_keys=None)]\n", - "========= Step 8 ==========\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-08-08 19:15:59,611 - agent.ComputerAgent - INFO - LLM processing started with 19 messages\n", - "2025-08-08 19:16:17,003 - agent.ComputerAgent - INFO - Computer: click({'button': 'left', 'x': 530, 'y': 172})\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Agent's action: [ClickAction(type='click', reasoning='Accessing advanced sorting options now', logs={'conversation_length': 21}, point=Point(x=745, y=201), button='left', pattern=None, hold_keys=None)]\n" - ] - } - ], - "source": [ - "# Initial observation\n", - "obs, _ = await env.reset()\n", - "print(\"Initial observation complete\")\n", - "\n", - "# Agent loop with Claude\n", - "for i in range(8):\n", - " print(f\"========= Step {i + 1} ==========\")\n", - " \n", - " try:\n", - " action, done = await claude_agent.predict(obs)\n", - " print(f\"Agent's action: {action}\")\n", - "\n", - " obs, reward, terminated, info = await env.step(action)\n", - "\n", - " if done or terminated:\n", - " print(f\"Task completed after {i + 1} steps\")\n", - " break\n", - " \n", - " except Exception as e:\n", - " print(f\"Error in step {i + 1}: {e}\")\n", - " break" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Evaluate Results" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "=== Final Evaluation ===\n", - "{'error': None,\n", - " 'gold_file_url': 'https://gahludmjcsmszgyufydt.supabase.co//storage/v1/object/public/sheetbench/615426c8-9df7-4ffa-92e9-200134a84da9/gold_solution_2.xlsx?',\n", - " 'logs': 'INFO: Starting evaluation with evaluator: sheets_cell_values\\n'\n", - " \"INFO: Evaluator args: [{'A1': 'ABC', 'B1': '-0.08'}]\\n\"\n", - " 'INFO: Partial rewarding: False\\n'\n", - " 'INFO: Starting sheets_cell_values evaluation for environment: '\n", - " 'af7a34a0-43b0-44d2-82d0-2b66ed16f1ea\\n'\n", - " \"INFO: Raw args received: [{'A1': 'ABC', 'B1': '-0.08'}] (type: \"\n", - " \")\\n\"\n", - " 'INFO: Partial rewarding enabled: False\\n'\n", - " 'INFO: === Google Sheets Cell Value Verification ===\\n'\n", - " 'INFO: Current page URL: '\n", - " 'https://docs.google.com/spreadsheets/d/1h-Ec3rW9sAME2sTn8qxIvFxO6qXtdURPacEFL5DJnqw/edit?gid=700326861#gid=700326861\\n'\n", - " 'INFO: ✅ Confirmed on Google Sheets page\\n'\n", - " 'INFO: Processing args parameter...\\n'\n", - " 'INFO: Args is a list with 1 items, extracting first item\\n'\n", - " \"INFO: Extracted: {'A1': 'ABC', 'B1': '-0.08'} (type: )\\n\"\n", - " 'INFO: Cell checks to perform: 2 cells\\n'\n", - " \"INFO: A1 -> expected: 'ABC'\\n\"\n", - " \"INFO: B1 -> expected: '-0.08'\\n\"\n", - " 'INFO: [TASK af7a34a0-43b0-44d2-82d0-2b66ed16f1ea] '\n", - " \"sheets_cell_values: Checking cells: {'A1': 'ABC', 'B1': '-0.08'}\\n\"\n", - " 'INFO: === ANSWER Sheet Navigation ===\\n'\n", - " 'INFO: Attempt 1/3: Attempting to find and navigate to ANSWER sheet '\n", - " 'tab...\\n'\n", - " 'INFO: [TASK af7a34a0-43b0-44d2-82d0-2b66ed16f1ea] '\n", - " 'sheets_cell_values: Attempt 1/3: Attempting to navigate to ANSWER '\n", - " 'sheet\\n'\n", - " 'INFO: Searching for ANSWER tab with selector: '\n", - " 'span.docs-sheet-tab-name:has-text(\"ANSWER\")\\n'\n", - " 'INFO: ANSWER tab search result (attempt 1): Found\\n'\n", - " 'INFO: ✅ Found ANSWER sheet tab on attempt 1, clicking on it...\\n'\n", - " 'INFO: [TASK af7a34a0-43b0-44d2-82d0-2b66ed16f1ea] '\n", - " 'sheets_cell_values: Found ANSWER sheet tab on attempt 1, clicking on '\n", - " 'it\\n'\n", - " 'ERROR: ❌ Error navigating to ANSWER sheet on attempt 1: '\n", - " 'Locator.click: Timeout 30000ms exceeded.\\n'\n", - " 'Call log:\\n'\n", - " ' - waiting for '\n", - " 'locator(\"span.docs-sheet-tab-name:has-text(\\\\\"ANSWER\\\\\")\")\\n'\n", - " ' - - locator resolved to ANSWER\\n'\n", - " ' - - attempting click action\\n'\n", - " ' - 2 × waiting for element to be visible, enabled and stable\\n'\n", - " ' - - element is visible, enabled and stable\\n'\n", - " ' - - scrolling into view if needed\\n'\n", - " ' - - done scrolling\\n'\n", - " ' - -
'\n", - " 'intercepts pointer events\\n'\n", - " ' - - retrying click action\\n'\n", - " ' - - waiting 20ms\\n'\n", - " ' - 2 × waiting for element to be visible, enabled and stable\\n'\n", - " ' - - element is visible, enabled and stable\\n'\n", - " ' - - scrolling into view if needed\\n'\n", - " ' - - done scrolling\\n'\n", - " ' - -
'\n", - " 'intercepts pointer events\\n'\n", - " ' - - retrying click action\\n'\n", - " ' - - waiting 100ms\\n'\n", - " ' - 35 × waiting for element to be visible, enabled and stable\\n'\n", - " ' - - element is visible, enabled and stable\\n'\n", - " ' - - scrolling into view if needed\\n'\n", - " ' - - done scrolling\\n'\n", - " ' - -
'\n", - " 'intercepts pointer events\\n'\n", - " ' - - retrying click action\\n'\n", - " ' - - waiting 500ms\\n'\n", - " '\\n'\n", - " 'WARNING: [TASK af7a34a0-43b0-44d2-82d0-2b66ed16f1ea] '\n", - " 'sheets_cell_values: Error navigating to ANSWER sheet on attempt 1: '\n", - " 'Locator.click: Timeout 30000ms exceeded.\\n'\n", - " 'Call log:\\n'\n", - " ' - waiting for '\n", - " 'locator(\"span.docs-sheet-tab-name:has-text(\\\\\"ANSWER\\\\\")\")\\n'\n", - " ' - - locator resolved to ANSWER\\n'\n", - " ' - - attempting click action\\n'\n", - " ' - 2 × waiting for element to be visible, enabled and stable\\n'\n", - " ' - - element is visible, enabled and stable\\n'\n", - " ' - - scrolling into view if needed\\n'\n", - " ' - - done scrolling\\n'\n", - " ' - -
'\n", - " 'intercepts pointer events\\n'\n", - " ' - - retrying click action\\n'\n", - " ' - - waiting 20ms\\n'\n", - " ' - 2 × waiting for element to be visible, enabled and stable\\n'\n", - " ' - - element is visible, enabled and stable\\n'\n", - " ' - - scrolling into view if needed\\n'\n", - " ' - - done scrolling\\n'\n", - " ' - -
'\n", - " 'intercepts pointer events\\n'\n", - " ' - - retrying click action\\n'\n", - " ' - - waiting 100ms\\n'\n", - " ' - 35 × waiting for element to be visible, enabled and stable\\n'\n", - " ' - - element is visible, enabled and stable\\n'\n", - " ' - - scrolling into view if needed\\n'\n", - " ' - - done scrolling\\n'\n", - " ' - -
'\n", - " 'intercepts pointer events\\n'\n", - " ' - - retrying click action\\n'\n", - " ' - - waiting 500ms\\n'\n", - " '\\n'\n", - " 'INFO: Waiting 500ms before retry 2...\\n'\n", - " 'INFO: Attempt 2/3: Attempting to find and navigate to ANSWER sheet '\n", - " 'tab...\\n'\n", - " 'INFO: [TASK af7a34a0-43b0-44d2-82d0-2b66ed16f1ea] '\n", - " 'sheets_cell_values: Attempt 2/3: Attempting to navigate to ANSWER '\n", - " 'sheet\\n'\n", - " 'INFO: Searching for ANSWER tab with selector: '\n", - " 'span.docs-sheet-tab-name:has-text(\"ANSWER\")\\n'\n", - " 'INFO: ANSWER tab search result (attempt 2): Found\\n'\n", - " 'INFO: ✅ Found ANSWER sheet tab on attempt 2, clicking on it...\\n'\n", - " 'INFO: [TASK af7a34a0-43b0-44d2-82d0-2b66ed16f1ea] '\n", - " 'sheets_cell_values: Found ANSWER sheet tab on attempt 2, clicking on '\n", - " 'it\\n'\n", - " 'ERROR: ❌ Error navigating to ANSWER sheet on attempt 2: '\n", - " 'Locator.click: Timeout 30000ms exceeded.\\n'\n", - " 'Call log:\\n'\n", - " ' - waiting for '\n", - " 'locator(\"span.docs-sheet-tab-name:has-text(\\\\\"ANSWER\\\\\")\")\\n'\n", - " ' - - locator resolved to ANSWER\\n'\n", - " ' - - attempting click action\\n'\n", - " ' - 2 × waiting for element to be visible, enabled and stable\\n'\n", - " ' - - element is visible, enabled and stable\\n'\n", - " ' - - scrolling into view if needed\\n'\n", - " ' - - done scrolling\\n'\n", - " ' - -
'\n", - " 'intercepts pointer events\\n'\n", - " ' - - retrying click action\\n'\n", - " ' - - waiting 20ms\\n'\n", - " ' - 2 × waiting for element to be visible, enabled and stable\\n'\n", - " ' - - element is visible, enabled and stable\\n'\n", - " ' - - scrolling into view if needed\\n'\n", - " ' - - done scrolling\\n'\n", - " ' - -
'\n", - " 'intercepts pointer events\\n'\n", - " ' - - retrying click action\\n'\n", - " ' - - waiting 100ms\\n'\n", - " ' - 35 × waiting for element to be visible, enabled and stable\\n'\n", - " ' - - element is visible, enabled and stable\\n'\n", - " ' - - scrolling into view if needed\\n'\n", - " ' - - done scrolling\\n'\n", - " ' - -
'\n", - " 'intercepts pointer events\\n'\n", - " ' - - retrying click action\\n'\n", - " ' - - waiting 500ms\\n'\n", - " '\\n'\n", - " 'WARNING: [TASK af7a34a0-43b0-44d2-82d0-2b66ed16f1ea] '\n", - " 'sheets_cell_values: Error navigating to ANSWER sheet on attempt 2: '\n", - " 'Locator.click: Timeout 30000ms exceeded.\\n'\n", - " 'Call log:\\n'\n", - " ' - waiting for '\n", - " 'locator(\"span.docs-sheet-tab-name:has-text(\\\\\"ANSWER\\\\\")\")\\n'\n", - " ' - - locator resolved to ANSWER\\n'\n", - " ' - - attempting click action\\n'\n", - " ' - 2 × waiting for element to be visible, enabled and stable\\n'\n", - " ' - - element is visible, enabled and stable\\n'\n", - " ' - - scrolling into view if needed\\n'\n", - " ' - - done scrolling\\n'\n", - " ' - -
'\n", - " 'intercepts pointer events\\n'\n", - " ' - - retrying click action\\n'\n", - " ' - - waiting 20ms\\n'\n", - " ' - 2 × waiting for element to be visible, enabled and stable\\n'\n", - " ' - - element is visible, enabled and stable\\n'\n", - " ' - - scrolling into view if needed\\n'\n", - " ' - - done scrolling\\n'\n", - " ' - -
'\n", - " 'intercepts pointer events\\n'\n", - " ' - - retrying click action\\n'\n", - " ' - - waiting 100ms\\n'\n", - " ' - 35 × waiting for element to be visible, enabled and stable\\n'\n", - " ' - - element is visible, enabled and stable\\n'\n", - " ' - - scrolling into view if needed\\n'\n", - " ' - - done scrolling\\n'\n", - " ' - -
'\n", - " 'intercepts pointer events\\n'\n", - " ' - - retrying click action\\n'\n", - " ' - - waiting 500ms\\n'\n", - " '\\n'\n", - " 'INFO: Waiting 500ms before retry 3...\\n'\n", - " 'INFO: Attempt 3/3: Attempting to find and navigate to ANSWER sheet '\n", - " 'tab...\\n'\n", - " 'INFO: [TASK af7a34a0-43b0-44d2-82d0-2b66ed16f1ea] '\n", - " 'sheets_cell_values: Attempt 3/3: Attempting to navigate to ANSWER '\n", - " 'sheet\\n'\n", - " 'INFO: Searching for ANSWER tab with selector: '\n", - " 'span.docs-sheet-tab-name:has-text(\"ANSWER\")\\n'\n", - " 'INFO: ANSWER tab search result (attempt 3): Found\\n'\n", - " 'INFO: ✅ Found ANSWER sheet tab on attempt 3, clicking on it...\\n'\n", - " 'INFO: [TASK af7a34a0-43b0-44d2-82d0-2b66ed16f1ea] '\n", - " 'sheets_cell_values: Found ANSWER sheet tab on attempt 3, clicking on '\n", - " 'it\\n'\n", - " 'ERROR: ❌ Error navigating to ANSWER sheet on attempt 3: '\n", - " 'Locator.click: Timeout 30000ms exceeded.\\n'\n", - " 'Call log:\\n'\n", - " ' - waiting for '\n", - " 'locator(\"span.docs-sheet-tab-name:has-text(\\\\\"ANSWER\\\\\")\")\\n'\n", - " ' - - locator resolved to ANSWER\\n'\n", - " ' - - attempting click action\\n'\n", - " ' - 2 × waiting for element to be visible, enabled and stable\\n'\n", - " ' - - element is visible, enabled and stable\\n'\n", - " ' - - scrolling into view if needed\\n'\n", - " ' - - done scrolling\\n'\n", - " ' - -
'\n", - " 'intercepts pointer events\\n'\n", - " ' - - retrying click action\\n'\n", - " ' - - waiting 20ms\\n'\n", - " ' - 2 × waiting for element to be visible, enabled and stable\\n'\n", - " ' - - element is visible, enabled and stable\\n'\n", - " ' - - scrolling into view if needed\\n'\n", - " ' - - done scrolling\\n'\n", - " ' - -
'\n", - " 'intercepts pointer events\\n'\n", - " ' - - retrying click action\\n'\n", - " ' - - waiting 100ms\\n'\n", - " ' - 35 × waiting for element to be visible, enabled and stable\\n'\n", - " ' - - element is visible, enabled and stable\\n'\n", - " ' - - scrolling into view if needed\\n'\n", - " ' - - done scrolling\\n'\n", - " ' - -
'\n", - " 'intercepts pointer events\\n'\n", - " ' - - retrying click action\\n'\n", - " ' - - waiting 500ms\\n'\n", - " '\\n'\n", - " 'WARNING: [TASK af7a34a0-43b0-44d2-82d0-2b66ed16f1ea] '\n", - " 'sheets_cell_values: Error navigating to ANSWER sheet on attempt 3: '\n", - " 'Locator.click: Timeout 30000ms exceeded.\\n'\n", - " 'Call log:\\n'\n", - " ' - waiting for '\n", - " 'locator(\"span.docs-sheet-tab-name:has-text(\\\\\"ANSWER\\\\\")\")\\n'\n", - " ' - - locator resolved to ANSWER\\n'\n", - " ' - - attempting click action\\n'\n", - " ' - 2 × waiting for element to be visible, enabled and stable\\n'\n", - " ' - - element is visible, enabled and stable\\n'\n", - " ' - - scrolling into view if needed\\n'\n", - " ' - - done scrolling\\n'\n", - " ' - -
'\n", - " 'intercepts pointer events\\n'\n", - " ' - - retrying click action\\n'\n", - " ' - - waiting 20ms\\n'\n", - " ' - 2 × waiting for element to be visible, enabled and stable\\n'\n", - " ' - - element is visible, enabled and stable\\n'\n", - " ' - - scrolling into view if needed\\n'\n", - " ' - - done scrolling\\n'\n", - " ' - -
'\n", - " 'intercepts pointer events\\n'\n", - " ' - - retrying click action\\n'\n", - " ' - - waiting 100ms\\n'\n", - " ' - 35 × waiting for element to be visible, enabled and stable\\n'\n", - " ' - - element is visible, enabled and stable\\n'\n", - " ' - - scrolling into view if needed\\n'\n", - " ' - - done scrolling\\n'\n", - " ' - -
'\n", - " 'intercepts pointer events\\n'\n", - " ' - - retrying click action\\n'\n", - " ' - - waiting 500ms\\n'\n", - " '\\n'\n", - " 'WARNING: ⚠️ Failed to navigate to ANSWER sheet after 3 attempts, '\n", - " 'proceeding with current sheet\\n'\n", - " 'WARNING: [TASK af7a34a0-43b0-44d2-82d0-2b66ed16f1ea] '\n", - " 'sheets_cell_values: Failed to navigate to ANSWER sheet after 3 '\n", - " 'attempts, proceeding with current sheet\\n'\n", - " 'INFO: === File Content Extraction ===\\n'\n", - " 'INFO: [TASK af7a34a0-43b0-44d2-82d0-2b66ed16f1ea] '\n", - " 'sheets_cell_values: Granted read-write permissions\\n'\n", - " 'INFO: [TASK af7a34a0-43b0-44d2-82d0-2b66ed16f1ea] '\n", - " 'sheets_cell_values: Extracting page contents\\n'\n", - " 'INFO: [TASK af7a34a0-43b0-44d2-82d0-2b66ed16f1ea] '\n", - " 'sheets_cell_values: Selecting content\\n'\n", - " 'INFO: [TASK af7a34a0-43b0-44d2-82d0-2b66ed16f1ea] '\n", - " 'sheets_cell_values: Successfully extracted 157940 characters from '\n", - " 'file\\n'\n", - " 'INFO: [TASK af7a34a0-43b0-44d2-82d0-2b66ed16f1ea] '\n", - " 'sheets_cell_values: Found 5003 rows in content\\n'\n", - " 'INFO: Content extracted: 157940 characters\\n'\n", - " 'INFO: === Cell Content Parsing ===\\n'\n", - " 'INFO: Split file content into 5003 rows\\n'\n", - " 'INFO: [TASK af7a34a0-43b0-44d2-82d0-2b66ed16f1ea] '\n", - " 'sheets_cell_values: Found 5003 rows in content\\n'\n", - " 'INFO: First few rows of content:\\n'\n", - " \"INFO: Row 1: 'TradeDate | Ticker | ClosePrice | Volume | | '\\n\"\n", - " \"INFO: Row 2: '2023-01-02 | ABC | 476.87 | 2225355 | | '\\n\"\n", - " \"INFO: Row 3: '2023-01-02 | DEF | 322.21 | 3778582 | | '\\n\"\n", - " 'INFO: ... and 5000 more rows\\n'\n", - " 'INFO: === Cell Reference Parsing ===\\n'\n", - " \"INFO: Processing cell reference: 'A1' -> expected: 'ABC'\\n\"\n", - " \"INFO: Parsed 'A1' -> row=1 (0-indexed: 0), col=A (0-indexed: 0)\\n\"\n", - " 'INFO: [TASK af7a34a0-43b0-44d2-82d0-2b66ed16f1ea] '\n", - " 'sheets_cell_values: Parsed cell A1 as row=0, col=0\\n'\n", - " 'INFO: Row 1 exists in content\\n'\n", - " \"INFO: Row 1 has 6 columns: ['Col1', 'Col2', 'Col3', 'Col4', \"\n", - " \"'Col5', 'Col6']\\n\"\n", - " \"INFO: ✅ Found value for A1: 'TradeDate'\\n\"\n", - " 'INFO: [TASK af7a34a0-43b0-44d2-82d0-2b66ed16f1ea] '\n", - " \"sheets_cell_values: Found value for A1: 'TradeDate'\\n\"\n", - " \"INFO: Processing cell reference: 'B1' -> expected: '-0.08'\\n\"\n", - " \"INFO: Parsed 'B1' -> row=1 (0-indexed: 0), col=B (0-indexed: 1)\\n\"\n", - " 'INFO: [TASK af7a34a0-43b0-44d2-82d0-2b66ed16f1ea] '\n", - " 'sheets_cell_values: Parsed cell B1 as row=0, col=1\\n'\n", - " 'INFO: Row 1 exists in content\\n'\n", - " \"INFO: Row 1 has 6 columns: ['Col1', 'Col2', 'Col3', 'Col4', \"\n", - " \"'Col5', 'Col6']\\n\"\n", - " \"INFO: ✅ Found value for B1: 'Ticker'\\n\"\n", - " 'INFO: [TASK af7a34a0-43b0-44d2-82d0-2b66ed16f1ea] '\n", - " \"sheets_cell_values: Found value for B1: 'Ticker'\\n\"\n", - " 'INFO: === Cell Value Comparison ===\\n'\n", - " 'INFO: Comparing cell A1:\\n'\n", - " \"INFO: Expected: 'ABC' (type: )\\n\"\n", - " \"INFO: Actual: 'TradeDate' (type: )\\n\"\n", - " \"INFO: ❌ VALUE MISMATCH: 'TradeDate' != 'ABC'\\n\"\n", - " 'INFO: Comparing cell B1:\\n'\n", - " \"INFO: Expected: '-0.08' (type: )\\n\"\n", - " \"INFO: Actual: 'Ticker' (type: )\\n\"\n", - " \"INFO: ❌ VALUE MISMATCH: 'Ticker' != '-0.08'\\n\"\n", - " 'INFO: === Final Results ===\\n'\n", - " 'INFO: Cell comparison summary:\\n'\n", - " 'INFO: Total cells checked: 2\\n'\n", - " 'INFO: Matches: 0\\n'\n", - " 'INFO: Mismatches: 2\\n'\n", - " \"INFO: Failed cells: ['A1:', 'B1:']\\n\"\n", - " 'INFO: ❌ NOT all cells match expected values\\n'\n", - " 'INFO: Mismatches: [\"Cell A1: expected \\'ABC\\', got \\'TradeDate\\'\", '\n", - " '\"Cell B1: expected \\'-0.08\\', got \\'Ticker\\'\"]\\n'\n", - " 'INFO: [TASK af7a34a0-43b0-44d2-82d0-2b66ed16f1ea] '\n", - " 'sheets_cell_values: Mismatches found: [\"Cell A1: expected \\'ABC\\', '\n", - " 'got \\'TradeDate\\'\", \"Cell B1: expected \\'-0.08\\', got \\'Ticker\\'\"]\\n'\n", - " 'INFO: Final reward: 0.0\\n'\n", - " 'INFO: === Sheets Cell Values Evaluation Complete ===\\n'\n", - " 'INFO: Evaluation completed. Final reward: 0.0\\n',\n", - " 'reward': 0.0}\n" - ] - } - ], - "source": [ - "# Evaluate environment state\n", - "result = await env.evaluate()\n", - "print(\"=== Final Evaluation ===\")\n", - "pprint(result)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Environment closed\n" - ] - } - ], - "source": [ - "# Clean up\n", - "await env.close()\n", - "print(\"Environment closed\")" + "# Quick single-task smoke test on OSWorld-Verified-XLang\n", + "# You can swap \"hud-evals/OSWorld-Verified-XLang\" -> \"hud-evals/SheetBench-V2\" to test SheetBench.\n", + "await run_single_task(\n", + " dataset=\"hud-evals/SheetBench-50\",\n", + " model=\"openai/computer-use-preview\", # or any supported model string\n", + ")" ] }, { @@ -768,109261 +121,29 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v2/tasksets/OSWorld-Verified/tasks \"HTTP/1.1 200 OK\"\n", - "INFO:venv:Taskset OSWorld-Verified loaded successfully\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/jobs \"HTTP/1.1 200 OK\"\n", - " 0%|----------------------------------------| 0/7340 [0:12 output.csv\\nlibreoffice --calc output.csv\\n'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'cd ~/Desktop\\nlibreoffice --headless --convert-to csv file1.xlsx\\nlibreoffice --headless --convert-to csv file2.ods\\ncat file1.csv file2.csv > output.csv\\nlibreoffice --calc output.csv\\n'})\n", - "2025-08-11 15:32:49,711 - agent.ComputerAgent - INFO - Computer: click({'x': 694, 'y': 248})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 694, 'y': 248})\n", - " 2%|----------------------------------------| 155/7340 [6:28<300:27, 23.9 steps/min]2025-08-11 15:32:50,329 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m15:32:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:32:51,007 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m15:32:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 2%|----------------------------------------| 157/7340 [6:30<297:33, 24.1 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:32:51,672 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m15:32:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:32:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:32:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 2%|----------------------------------------| 157/7340 [6:32<299:06, 24.0 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m15:32:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:32:54,187 - agent.ComputerAgent - INFO - Computer: click({'x': 463, 'y': 136})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 463, 'y': 136})\n", - " 2%|----------------------------------------| 157/7340 [6:33<299:58, 23.9 steps/min]\u001b[92m15:32:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:32:54,845 - agent.ComputerAgent - INFO - Computer: click({'button': 'left', 'x': 103, 'y': 380})\n", - "INFO:agent.ComputerAgent:Computer: click({'button': 'left', 'x': 103, 'y': 380})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/edaeedb6-9993-4b6f-b226-19e2768a5736/invoke \"HTTP/1.1 200 OK\"\n", - " 2%|----------------------------------------| 158/7340 [6:34<298:46, 24.0 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0a91cea7-3ffe-41c2-9405-1151904aee0c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e7ac3560-cea1-4b97-a59c-4b3038bec6c7/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 15:32:55,978 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m15:32:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 2%|----------------------------------------| 159/7340 [6:35<297:36, 24.1 steps/min]2025-08-11 15:32:56,643 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m15:32:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:32:57,305 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m15:32:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 2%|----------------------------------------| 159/7340 [6:36<298:28, 24.1 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 2%|----------------------------------------| 159/7340 [6:37<299:14, 24.0 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0b1cfd32-0cbc-48e7-890d-9ec0ac043035/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 15:32:59,978 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m15:33:00 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/77f486b6-dc2a-4a1d-bf54-fc05f9a8c3d7/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 2%|----------------------------------------| 159/7340 [6:39<300:32, 23.9 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:33:00 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:33:01,288 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:33:01 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:33:01 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:33:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/835128b8-2a29-46f4-853f-4d70bb46a9d6/invoke \"HTTP/1.1 200 OK\"\n", - " 2%|----------------------------------------| 159/7340 [6:41<302:27, 23.7 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:33:03,240 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m15:33:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m15:33:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:33:03,930 - agent.ComputerAgent - INFO - Computer: click({'button': 'left', 'x': 390, 'y': 345})\n", - "INFO:agent.ComputerAgent:Computer: click({'button': 'left', 'x': 390, 'y': 345})\n", - " 2%|----------------------------------------| 159/7340 [6:43<303:26, 23.7 steps/min]\u001b[92m15:33:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:33:04,616 - agent.ComputerAgent - INFO - Computer: click({'x': 101, 'y': 295})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 101, 'y': 295})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:33:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:33:06,000 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+a'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+a'})\n", - "2025-08-11 15:33:06,671 - agent.ComputerAgent - INFO - Computer: click({'x': 219, 'y': 53})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 219, 'y': 53})\n", - " 2%|----------------------------------------| 160/7340 [6:45<303:33, 23.7 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:33:07 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:33:08 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:33:08,650 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m15:33:08 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m15:33:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 2%|----------------------------------------| 162/7340 [6:48<301:44, 23.8 steps/min]\u001b[92m15:33:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:33:09,987 - agent.ComputerAgent - INFO - Computer: click({'x': 812, 'y': 189})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 812, 'y': 189})\n", - "\u001b[92m15:33:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:33:10 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:33:11,307 - agent.ComputerAgent - INFO - Computer: click({'x': 102, 'y': 238})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 102, 'y': 238})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:33:11 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:33:12,659 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+a'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+a'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:33:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 2%|----------------------------------------| 162/7340 [6:52<304:40, 23.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:33:14,031 - agent.ComputerAgent - INFO - Computer: click({'x': 309, 'y': 116})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 309, 'y': 116})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:33:15,326 - agent.ComputerAgent - INFO - Computer: wait({})\n", - "INFO:agent.ComputerAgent:Computer: wait({})\n", - "2025-08-11 15:33:15,962 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m15:33:15 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m15:33:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:33:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:33:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - " 2%|----------------------------------------| 164/7340 [6:55<303:17, 23.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:33:17,260 - agent.ComputerAgent - INFO - Computer: click({'x': 652, 'y': 139})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 652, 'y': 139})\n", - "2025-08-11 15:33:17,929 - agent.ComputerAgent - INFO - Computer: click({'x': 212, 'y': 53})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 212, 'y': 53})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m15:33:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:33:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:33:19 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:33:20,602 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+alt+t'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+alt+t'})\n", - " 2%|----------------------------------------| 166/7340 [6:59<302:22, 23.7 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:33:21,282 - agent.ComputerAgent - INFO - Computer: click({'x': 371, 'y': 624})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 371, 'y': 624})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:33:22,607 - agent.ComputerAgent - INFO - Computer: type({'text': '100'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': '100'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/8d197f4f-b7b0-4196-9681-135d7bc3a45b/invoke \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:33:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:33:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e9d83ed4-d6d0-46f7-982b-98433769e30b/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 15:33:23,270 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - " 2%|----------------------------------------| 168/7340 [7:02<300:36, 23.9 steps/min]\u001b[92m15:33:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:33:23,919 - agent.ComputerAgent - INFO - Computer: click({'x': 414, 'y': 75})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 414, 'y': 75})\n", - "2025-08-11 15:33:24,594 - agent.ComputerAgent - INFO - Computer: double_click({'x': 473, 'y': 93})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 473, 'y': 93})\n", - " 2%|----------------------------------------| 170/7340 [7:03<297:55, 24.1 steps/min]2025-08-11 15:33:25,220 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m15:33:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ae9871c0-5cb9-4c5b-9c02-c899819f9f81/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 15:33:25,919 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m15:33:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 2%|----------------------------------------| 172/7340 [7:05<295:18, 24.3 steps/min]2025-08-11 15:33:26,562 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m15:33:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 15:33:27,860 - agent.ComputerAgent - INFO - Computer: type({'text': 'edited_colorful.png'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'edited_colorful.png'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:33:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0a6ee00b-4e8c-4a3f-bac1-9baec4d920a2/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e1e61614-8290-4d90-9feb-594d2a7199e8/invoke \"HTTP/1.1 200 OK\"\n", - " 2%|----------------------------------------| 172/7340 [7:07<297:07, 24.1 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m15:33:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:33:29,689 - agent.ComputerAgent - INFO - Computer: click({'x': 693, 'y': 130})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 693, 'y': 130})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/77f486b6-dc2a-4a1d-bf54-fc05f9a8c3d7/invoke \"HTTP/1.1 200 OK\"\n", - " 2%|----------------------------------------| 173/7340 [7:08<296:07, 24.2 steps/min]2025-08-11 15:33:30,343 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m15:33:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cfefeec4-603f-4657-b0fe-7a641734693c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/982f8f16-b578-409f-8388-d8d5ee68ccee/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 15:33:31,382 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m15:33:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/2d349f43-6c63-4144-9bd3-bbd16183b16d/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/69393c41-bcaa-4752-9a82-e3b105fae459/invoke \"HTTP/1.1 200 OK\"\n", - " 2%|----------------------------------------| 174/7340 [7:10<295:35, 24.2 steps/min]2025-08-11 15:33:32,020 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m15:33:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0a91cea7-3ffe-41c2-9405-1151904aee0c/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 15:33:32,699 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m15:33:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 2%|----------------------------------------| 174/7340 [7:11<296:28, 24.2 steps/min]2025-08-11 15:33:33,362 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m15:33:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/0a6ee00b-4e8c-4a3f-bac1-9baec4d920a2/reset \"HTTP/1.1 200 OK\"\n", - "2025-08-11 15:33:34,058 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m15:33:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/5a854981-aa94-433f-9381-2964f1117035/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/edaeedb6-9993-4b6f-b226-19e2768a5736/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e7ac3560-cea1-4b97-a59c-4b3038bec6c7/invoke \"HTTP/1.1 200 OK\"\n", - " 2%|----------------------------------------| 174/7340 [7:13<297:25, 24.1 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0b1cfd32-0cbc-48e7-890d-9ec0ac043035/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 15:33:34,700 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m15:33:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:33:35,380 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m15:33:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 2%|----------------------------------------| 174/7340 [7:14<298:20, 24.0 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/835128b8-2a29-46f4-853f-4d70bb46a9d6/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 15:33:36,059 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m15:33:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:33:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:33:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/49f1eefe-9bc4-430c-a6c8-83675960a057/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0a6ee00b-4e8c-4a3f-bac1-9baec4d920a2/invoke \"HTTP/1.1 200 OK\"\n", - " 2%|----------------------------------------| 174/7340 [7:16<299:43, 23.9 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:33:38,043 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m15:33:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m15:33:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:33:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:33:39,360 - agent.ComputerAgent - INFO - Computer: click({'x': 15, 'y': 285})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 15, 'y': 285})\n", - "\u001b[92m15:33:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 2%|----------------------------------------| 174/7340 [7:18<301:01, 23.8 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:33:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:33:40,000 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m15:33:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m15:33:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:33:40,660 - agent.ComputerAgent - INFO - Computer: click({'x': 20, 'y': 139})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 20, 'y': 139})\n", - "\u001b[92m15:33:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:33:42,006 - agent.ComputerAgent - INFO - Computer: type({'text': 'clear cookies on exit'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'clear cookies on exit'})\n", - " 2%|----------------------------------------| 175/7340 [7:21<301:04, 23.8 steps/min]2025-08-11 15:33:42,645 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m15:33:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:33:43,335 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 46, 'y': 166}, {'x': 386, 'y': 356}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 46, 'y': 166}, {'x': 386, 'y': 356}]})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:33:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 2%|----------------------------------------| 177/7340 [7:23<298:59, 24.0 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m15:33:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:33:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:33:45,327 - agent.ComputerAgent - INFO - Computer: double_click({'x': 244, 'y': 155})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 244, 'y': 155})\n", - "\u001b[92m15:33:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:33:46,591 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 15:33:46,592 - agent.ComputerAgent - INFO - Agent: Opening the desktop and launching GIMP to convert the image to SVG.\n", - "INFO:agent.ComputerAgent:Agent: Opening the desktop and launching GIMP to convert the image to SVG.\n", - "2025-08-11 15:33:46,593 - agent.ComputerAgent - INFO - Computer: screenshot({})\n", - "INFO:agent.ComputerAgent:Computer: screenshot({})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:33:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 2%|----------------------------------------| 178/7340 [7:26<299:25, 23.9 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:33:47,979 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': -525, 'scroll_x': 0, 'x': 126, 'y': 419})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': -525, 'scroll_x': 0, 'x': 126, 'y': 419})\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:33:48,644 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m15:33:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 2%|----------------------------------------| 180/7340 [7:27<296:56, 24.1 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m15:33:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:33:49,323 - agent.ComputerAgent - INFO - Computer: click({'x': 249, 'y': 81})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 249, 'y': 81})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:33:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 15:33:51,332 - agent.ComputerAgent - INFO - Computer: type({'text': 'focus editor'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'focus editor'})\n", - " 2%|----------------------------------------| 181/7340 [7:30<296:59, 24.1 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m15:33:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:33:52,512 - agent.ComputerAgent - INFO - Computer: click({'x': 416, 'y': 74})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 416, 'y': 74})\n", - " 2%|----------------------------------------| 183/7340 [7:31<294:26, 24.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0a6ee00b-4e8c-4a3f-bac1-9baec4d920a2/invoke \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "No screenshot found, taking screenshot\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-08-11 15:33:53,159 - agent.ComputerAgent - INFO - LLM processing started with 7 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 7 messages\n", - "\u001b[92m15:33:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3d9da005-d40d-4335-86ec-275c2ec5665b/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:33:53,831 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m15:33:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:33:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 184/7340 [7:33<294:07, 24.3 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/77f486b6-dc2a-4a1d-bf54-fc05f9a8c3d7/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:33:55,575 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m15:33:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m15:33:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/8d197f4f-b7b0-4196-9681-135d7bc3a45b/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/69393c41-bcaa-4752-9a82-e3b105fae459/invoke \"HTTP/1.1 200 OK\"\n", - " 3%|█---------------------------------------| 184/7340 [7:34<294:47, 24.3 steps/min]2025-08-11 15:33:56,223 - agent.ComputerAgent - INFO - Computer: click({'button': 'left', 'x': 336, 'y': 493})\n", - "INFO:agent.ComputerAgent:Computer: click({'button': 'left', 'x': 336, 'y': 493})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/982f8f16-b578-409f-8388-d8d5ee68ccee/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 15:33:56,861 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m15:33:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cfefeec4-603f-4657-b0fe-7a641734693c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e9d83ed4-d6d0-46f7-982b-98433769e30b/invoke \"HTTP/1.1 200 OK\"\n", - "ERROR:asyncio:Unclosed client session\n", - "client_session: \n", - " 3%|█---------------------------------------| 184/7340 [7:36<295:51, 24.2 steps/min]2025-08-11 15:33:58,012 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m15:33:58 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/49f1eefe-9bc4-430c-a6c8-83675960a057/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 15:33:58,652 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m15:33:58 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 3%|█---------------------------------------| 185/7340 [7:37<295:08, 24.2 steps/min]2025-08-11 15:33:59,334 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m15:33:59 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:33:59,993 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m15:34:00 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 3%|█---------------------------------------| 185/7340 [7:39<296:01, 24.2 steps/min]2025-08-11 15:34:01,015 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m15:34:01 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 3%|█---------------------------------------| 185/7340 [7:40<297:07, 24.1 steps/min]\u001b[92m15:34:01 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e7ac3560-cea1-4b97-a59c-4b3038bec6c7/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:34:02,373 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m15:34:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m15:34:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:34:03,423 - agent.ComputerAgent - INFO - Computer: click({'x': 692, 'y': 624})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 692, 'y': 624})\n", - " 3%|█---------------------------------------| 185/7340 [7:42<298:12, 24.0 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:34:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 3%|█---------------------------------------| 186/7340 [7:44<297:45, 24.0 steps/min]\u001b[92m15:34:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/5a854981-aa94-433f-9381-2964f1117035/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m15:34:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:34:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:34:07,220 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'meta'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'meta'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:34:07 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/a74f1790-a107-43c9-8389-0a50a5192c5f/reset \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:34:08,609 - agent.ComputerAgent - INFO - Computer: click({'button': 'left', 'x': 550, 'y': 627})\n", - "INFO:agent.ComputerAgent:Computer: click({'button': 'left', 'x': 550, 'y': 627})\n", - "\u001b[92m15:34:08 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:34:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 186/7340 [7:49<300:46, 23.8 steps/min]\u001b[92m15:34:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:34:10 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:34:10,587 - agent.ComputerAgent - INFO - Computer: click({'x': 515, 'y': 457})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 515, 'y': 457})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0a91cea7-3ffe-41c2-9405-1151904aee0c/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:34:11,253 - agent.ComputerAgent - INFO - Computer: click({'x': 905, 'y': 50})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 905, 'y': 50})\n", - "\u001b[92m15:34:11 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:34:11 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:34:11,905 - agent.ComputerAgent - INFO - Computer: click({'x': 476, 'y': 169})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 476, 'y': 169})\n", - " 3%|█---------------------------------------| 188/7340 [7:51<298:42, 23.9 steps/min]2025-08-11 15:34:12,560 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_x': 0, 'scroll_y': -659, 'x': 18, 'y': 13})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_x': 0, 'scroll_y': -659, 'x': 18, 'y': 13})\n", - "\u001b[92m15:34:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:34:13,202 - agent.ComputerAgent - INFO - Computer: click({'x': 19, 'y': 44})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 19, 'y': 44})\n", - " 3%|█---------------------------------------| 191/7340 [7:52<294:43, 24.3 steps/min]2025-08-11 15:34:13,860 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m15:34:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0a6ee00b-4e8c-4a3f-bac1-9baec4d920a2/invoke \"HTTP/1.1 502 Bad Gateway\"\n", - "2025-08-11 15:34:14,514 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m15:34:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 3%|█---------------------------------------| 193/7340 [7:53<292:23, 24.4 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:34:15 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:34:15 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:34:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 193/7340 [7:55<293:37, 24.3 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m15:34:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:34:17,714 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': -575, 'scroll_x': 0, 'x': 90, 'y': 194})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': -575, 'scroll_x': 0, 'x': 90, 'y': 194})\n", - " 3%|█---------------------------------------| 193/7340 [7:56<294:20, 24.3 steps/min]\u001b[92m15:34:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:34:18,367 - agent.ComputerAgent - INFO - Computer: click({'x': 120, 'y': 53})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 120, 'y': 53})\n", - "\u001b[92m15:34:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/982f8f16-b578-409f-8388-d8d5ee68ccee/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f1593044-fc61-4fc8-b29d-87e37914d5c2/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 15:34:19,040 - agent.ComputerAgent - INFO - Computer: click({'x': 15, 'y': 430})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 15, 'y': 430})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a74f1790-a107-43c9-8389-0a50a5192c5f/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0b1cfd32-0cbc-48e7-890d-9ec0ac043035/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/835128b8-2a29-46f4-853f-4d70bb46a9d6/invoke \"HTTP/1.1 200 OK\"\n", - " 3%|█---------------------------------------| 194/7340 [7:58<293:36, 24.3 steps/min]2025-08-11 15:34:19,683 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m15:34:19 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:34:20,361 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m15:34:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/2d349f43-6c63-4144-9bd3-bbd16183b16d/invoke \"HTTP/1.1 200 OK\"\n", - " 3%|█---------------------------------------| 196/7340 [7:59<291:21, 24.5 steps/min]2025-08-11 15:34:21,003 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m15:34:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/edaeedb6-9993-4b6f-b226-19e2768a5736/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 15:34:21,660 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m15:34:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:34:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0a6ee00b-4e8c-4a3f-bac1-9baec4d920a2/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 196/7340 [8:01<292:33, 24.4 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:34:23,387 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m15:34:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m15:34:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 196/7340 [8:02<293:16, 24.4 steps/min]2025-08-11 15:34:24,065 - agent.ComputerAgent - INFO - Computer: click({'x': 414, 'y': 75})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 414, 'y': 75})\n", - "2025-08-11 15:34:24,731 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m15:34:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:34:25,787 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m15:34:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:34:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:34:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/8d197f4f-b7b0-4196-9681-135d7bc3a45b/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/77f486b6-dc2a-4a1d-bf54-fc05f9a8c3d7/invoke \"HTTP/1.1 200 OK\"\n", - " 3%|█---------------------------------------| 197/7340 [8:06<294:10, 24.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:34:28,860 - agent.ComputerAgent - INFO - Computer: type({'text': ' active editor group'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': ' active editor group'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cfefeec4-603f-4657-b0fe-7a641734693c/invoke \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:34:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 197/7340 [8:08<294:56, 24.2 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:34:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:34:29,500 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m15:34:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:34:30,194 - agent.ComputerAgent - INFO - Computer: click({'x': 625, 'y': 427})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 625, 'y': 427})\n", - "2025-08-11 15:34:30,876 - agent.ComputerAgent - INFO - Computer: click({'x': 904, 'y': 558})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 904, 'y': 558})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:34:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 198/7340 [8:11<295:24, 24.2 steps/min]\u001b[92m15:34:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:34:32,811 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m15:34:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:34:34,147 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+a'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+a'})\n", - "\u001b[92m15:34:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 200/7340 [8:13<293:33, 24.3 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:34:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:34:34,769 - agent.ComputerAgent - INFO - Computer: click({'x': 183, 'y': 53})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 183, 'y': 53})\n", - "2025-08-11 15:34:35,412 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 15:34:35,413 - agent.ComputerAgent - INFO - Computer: click({'x': 15, 'y': 428})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 15, 'y': 428})\n", - "2025-08-11 15:34:36,077 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m15:34:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:34:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:34:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 200/7340 [8:16<295:30, 24.2 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:34:38,113 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m15:34:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m15:34:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/e1e61614-8290-4d90-9feb-594d2a7199e8/reset \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:34:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:34:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:34:40,185 - agent.ComputerAgent - INFO - LLM processing started with 9 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 9 messages\n", - "\u001b[92m15:34:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:34:40,912 - agent.ComputerAgent - INFO - Computer: move({'x': 230, 'y': 128})\n", - "INFO:agent.ComputerAgent:Computer: move({'x': 230, 'y': 128})\n", - "\u001b[92m15:34:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 202/7340 [8:20<294:32, 24.2 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:34:41,633 - agent.ComputerAgent - INFO - Computer: click({'button': 'left', 'x': 361, 'y': 549})\n", - "INFO:agent.ComputerAgent:Computer: click({'button': 'left', 'x': 361, 'y': 549})\n", - "\u001b[92m15:34:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:34:42,290 - agent.ComputerAgent - INFO - Computer: click({'x': 93, 'y': 184})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 93, 'y': 184})\n", - "\u001b[92m15:34:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 203/7340 [8:21<293:50, 24.3 steps/min]2025-08-11 15:34:42,946 - agent.ComputerAgent - INFO - Computer: click({'x': 17, 'y': 382})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 17, 'y': 382})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e7ac3560-cea1-4b97-a59c-4b3038bec6c7/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/49f1eefe-9bc4-430c-a6c8-83675960a057/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 15:34:43,638 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m15:34:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 3%|█---------------------------------------| 205/7340 [8:23<292:06, 24.4 steps/min]\u001b[92m15:34:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:34:44,985 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m15:34:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m15:34:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:34:45,658 - agent.ComputerAgent - INFO - Computer: click({'x': 332, 'y': 92})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 332, 'y': 92})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3d9da005-d40d-4335-86ec-275c2ec5665b/invoke \"HTTP/1.1 200 OK\"\n", - " 3%|█---------------------------------------| 206/7340 [8:24<291:23, 24.5 steps/min]2025-08-11 15:34:46,281 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m15:34:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e9d83ed4-d6d0-46f7-982b-98433769e30b/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:34:47,314 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m15:34:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e1e61614-8290-4d90-9feb-594d2a7199e8/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 3%|█---------------------------------------| 207/7340 [8:26<290:55, 24.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/982f8f16-b578-409f-8388-d8d5ee68ccee/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ae9871c0-5cb9-4c5b-9c02-c899819f9f81/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a74f1790-a107-43c9-8389-0a50a5192c5f/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 15:34:47,977 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m15:34:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/77f486b6-dc2a-4a1d-bf54-fc05f9a8c3d7/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 15:34:48,632 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m15:34:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:34:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/835128b8-2a29-46f4-853f-4d70bb46a9d6/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 207/7340 [8:28<292:01, 24.4 steps/min]2025-08-11 15:34:49,913 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m15:34:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:34:50,584 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m15:34:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:34:51,263 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m15:34:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:34:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:34:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0a91cea7-3ffe-41c2-9405-1151904aee0c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:34:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 207/7340 [8:31<293:58, 24.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m15:34:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:34:53,944 - agent.ComputerAgent - INFO - Computer: click({'button': 'left', 'x': 148, 'y': 105})\n", - "INFO:agent.ComputerAgent:Computer: click({'button': 'left', 'x': 148, 'y': 105})\n", - "\u001b[92m15:34:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:34:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0b1cfd32-0cbc-48e7-890d-9ec0ac043035/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:34:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 207/7340 [8:33<295:06, 24.2 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:34:55,256 - agent.ComputerAgent - INFO - Computer: click({'x': 18, 'y': 477})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 18, 'y': 477})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:34:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:34:57,289 - agent.ComputerAgent - INFO - Computer: type({'text': '100'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': '100'})\n", - "2025-08-11 15:34:57,983 - agent.ComputerAgent - INFO - Computer: click({'x': 462, 'y': 133})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 462, 'y': 133})\n", - "\u001b[92m15:34:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:34:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 208/7340 [8:37<295:33, 24.1 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:34:58,660 - agent.ComputerAgent - INFO - Computer: click({'x': 308, 'y': 116})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 308, 'y': 116})\n", - "2025-08-11 15:34:59,285 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 15:34:59,286 - agent.ComputerAgent - INFO - Computer: click({'x': 387, 'y': 158})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 387, 'y': 158})\n", - "\u001b[92m15:34:59 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 15:35:00,674 - agent.ComputerAgent - INFO - Computer: click({'x': 640, 'y': 436, 'button': 'left'})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 640, 'y': 436, 'button': 'left'})\n", - " 3%|█---------------------------------------| 211/7340 [8:39<292:45, 24.4 steps/min]2025-08-11 15:35:01,337 - agent.ComputerAgent - INFO - Computer: click({'x': 420, 'y': 101})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 420, 'y': 101})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:35:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m15:35:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 214/7340 [8:41<289:39, 24.6 steps/min]\u001b[92m15:35:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:35:03,280 - agent.ComputerAgent - INFO - Computer: double_click({'x': 213, 'y': 117})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 213, 'y': 117})\n", - "\u001b[92m15:35:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:35:03,948 - agent.ComputerAgent - INFO - Computer: click({'x': 416, 'y': 75})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 416, 'y': 75})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:35:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 215/7340 [8:43<289:17, 24.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:35:05,212 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m15:35:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m15:35:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:35:05,863 - agent.ComputerAgent - INFO - Computer: click({'x': 610, 'y': 60})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 610, 'y': 60})\n", - " 3%|█---------------------------------------| 217/7340 [8:45<287:15, 24.8 steps/min]2025-08-11 15:35:06,527 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m15:35:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:35:07,204 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m15:35:07 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 3%|█---------------------------------------| 218/7340 [8:47<287:00, 24.8 steps/min]\u001b[92m15:35:07 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:35:08 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:35:08 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/8d197f4f-b7b0-4196-9681-135d7bc3a45b/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:35:09,599 - agent.ComputerAgent - INFO - Computer: click({'x': 385, 'y': 35})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 385, 'y': 35})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:35:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:35:10 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/69393c41-bcaa-4752-9a82-e3b105fae459/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 218/7340 [8:49<288:18, 24.7 steps/min]2025-08-11 15:35:10,889 - agent.ComputerAgent - INFO - Computer: click({'x': 237, 'y': 123})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 237, 'y': 123})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m15:35:11 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/edaeedb6-9993-4b6f-b226-19e2768a5736/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/5a854981-aa94-433f-9381-2964f1117035/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e1e61614-8290-4d90-9feb-594d2a7199e8/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e7ac3560-cea1-4b97-a59c-4b3038bec6c7/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0a6ee00b-4e8c-4a3f-bac1-9baec4d920a2/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e9d83ed4-d6d0-46f7-982b-98433769e30b/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/2d349f43-6c63-4144-9bd3-bbd16183b16d/invoke \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:35:11 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/77f486b6-dc2a-4a1d-bf54-fc05f9a8c3d7/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 219/7340 [8:50<287:40, 24.8 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:35:12,208 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': -496, 'scroll_x': 0, 'x': 90, 'y': 219})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': -496, 'scroll_x': 0, 'x': 90, 'y': 219})\n", - "\u001b[92m15:35:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:35:12,847 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m15:35:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:35:13,519 - agent.ComputerAgent - INFO - Computer: click({'x': 15, 'y': 141})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 15, 'y': 141})\n", - "2025-08-11 15:35:14,161 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m15:35:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:35:14,807 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m15:35:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 3%|█---------------------------------------| 220/7340 [8:54<288:03, 24.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a74f1790-a107-43c9-8389-0a50a5192c5f/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 15:35:15,833 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m15:35:15 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 3%|█---------------------------------------| 222/7340 [8:55<285:57, 24.9 steps/min]2025-08-11 15:35:16,495 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m15:35:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:35:17,131 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m15:35:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 3%|█---------------------------------------| 222/7340 [8:56<286:37, 24.8 steps/min]2025-08-11 15:35:17,814 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m15:35:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:35:18,873 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m15:35:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:35:19,539 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m15:35:19 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 3%|█---------------------------------------| 222/7340 [8:58<287:54, 24.7 steps/min]2025-08-11 15:35:20,204 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m15:35:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:35:20,855 - agent.ComputerAgent - INFO - LLM processing started with 11 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 11 messages\n", - "\u001b[92m15:35:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 3%|█---------------------------------------| 222/7340 [9:00<288:36, 24.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ae9871c0-5cb9-4c5b-9c02-c899819f9f81/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 15:35:22,016 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m15:35:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f1593044-fc61-4fc8-b29d-87e37914d5c2/invoke \"HTTP/1.1 200 OK\"\n", - " 3%|█---------------------------------------| 222/7340 [9:01<289:13, 24.6 steps/min]2025-08-11 15:35:22,704 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m15:35:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3d9da005-d40d-4335-86ec-275c2ec5665b/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:35:23,375 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m15:35:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 3%|█---------------------------------------| 222/7340 [9:02<289:57, 24.5 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cfefeec4-603f-4657-b0fe-7a641734693c/invoke \"HTTP/1.1 200 OK\"\n", - " 3%|█---------------------------------------| 222/7340 [9:03<290:29, 24.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 15:35:25,703 - agent.ComputerAgent - INFO - Computer: type({'text': 'delete browsing data on exit'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'delete browsing data on exit'})\n", - " 3%|█---------------------------------------| 222/7340 [9:04<291:11, 24.4 steps/min]2025-08-11 15:35:26,361 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m15:35:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:35:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:35:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 223/7340 [9:07<291:14, 24.4 steps/min]\u001b[92m15:35:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m15:35:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:35:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:35:29,669 - agent.ComputerAgent - INFO - Computer: click({'button': 'left', 'x': 585, 'y': 449})\n", - "INFO:agent.ComputerAgent:Computer: click({'button': 'left', 'x': 585, 'y': 449})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:35:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 3%|█---------------------------------------| 223/7340 [9:09<292:18, 24.3 steps/min]\u001b[92m15:35:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:35:30,981 - agent.ComputerAgent - INFO - Computer: click({'x': 586, 'y': 134})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 586, 'y': 134})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:35:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:35:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:35:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:35:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:35:32,967 - agent.ComputerAgent - INFO - Computer: double_click({'x': 244, 'y': 154})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 244, 'y': 154})\n", - "\u001b[92m15:35:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:35:34,310 - agent.ComputerAgent - INFO - Agent: I enhanced the color vibrancy of your photo and exported it as edited_colorful.png to your Desktop.\n", - "\n", - "Task completed\n", - "INFO:agent.ComputerAgent:Agent: I enhanced the color vibrancy of your photo and exported it as edited_colorful.png to your Desktop.\n", - "\n", - "Task completed\n", - "2025-08-11 15:35:34,935 - agent.ComputerAgent - INFO - Total usage:\n", - " - completion_tokens: 288\n", - " - prompt_tokens: 10800\n", - " - total_tokens: 11088\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 256\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0164\n", - "INFO:agent.ComputerAgent:Total usage:\n", - " - completion_tokens: 288\n", - " - prompt_tokens: 10800\n", - " - total_tokens: 11088\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 256\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0164\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:35:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/69393c41-bcaa-4752-9a82-e3b105fae459/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 225/7340 [9:14<292:25, 24.3 steps/min]2025-08-11 15:35:36,296 - agent.ComputerAgent - INFO - Computer: click({'x': 332, 'y': 105})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 332, 'y': 105})\n", - "2025-08-11 15:35:36,947 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': 650, 'x': 261, 'y': 230})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': 650, 'x': 261, 'y': 230})\n", - "\u001b[92m15:35:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:35:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m15:35:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:35:38,290 - agent.ComputerAgent - INFO - Computer: click({'x': 955, 'y': 130})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 955, 'y': 130})\n", - "2025-08-11 15:35:38,926 - agent.ComputerAgent - INFO - Computer: click({'x': 414, 'y': 75})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 414, 'y': 75})\n", - "\u001b[92m15:35:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 228/7340 [9:18<290:09, 24.5 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:35:39,569 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m15:35:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:35:40,246 - agent.ComputerAgent - INFO - Computer: click({'x': 16, 'y': 478})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 16, 'y': 478})\n", - "\u001b[92m15:35:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:35:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 231/7340 [9:20<287:30, 24.7 steps/min]2025-08-11 15:35:41,893 - agent.ComputerAgent - INFO - Computer: click({'x': 183, 'y': 53})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 183, 'y': 53})\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 3%|█---------------------------------------| 232/7340 [9:21<286:44, 24.8 steps/min]\u001b[92m15:35:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:35:43,077 - agent.ComputerAgent - INFO - Computer: click({'x': 506, 'y': 190})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 506, 'y': 190})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:35:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/835128b8-2a29-46f4-853f-4d70bb46a9d6/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a74f1790-a107-43c9-8389-0a50a5192c5f/invoke \"HTTP/1.1 200 OK\"\n", - " 3%|█---------------------------------------| 233/7340 [9:22<286:10, 24.8 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "No screenshot found, taking screenshot\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-08-11 15:35:44,347 - agent.ComputerAgent - INFO - LLM processing started with 11 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 11 messages\n", - "\u001b[92m15:35:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m15:35:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:35:45,032 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': 547, 'scroll_x': 0, 'x': 125, 'y': 629})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': 547, 'scroll_x': 0, 'x': 125, 'y': 629})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 15:35:46,313 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+a'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+a'})\n", - " 3%|█---------------------------------------| 234/7340 [9:25<286:13, 24.8 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:35:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/8d197f4f-b7b0-4196-9681-135d7bc3a45b/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:35:47,613 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m15:35:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m15:35:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0b1cfd32-0cbc-48e7-890d-9ec0ac043035/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e9d83ed4-d6d0-46f7-982b-98433769e30b/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/49f1eefe-9bc4-430c-a6c8-83675960a057/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e7ac3560-cea1-4b97-a59c-4b3038bec6c7/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0a6ee00b-4e8c-4a3f-bac1-9baec4d920a2/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e1e61614-8290-4d90-9feb-594d2a7199e8/invoke \"HTTP/1.1 200 OK\"\n", - " 3%|█---------------------------------------| 236/7340 [9:26<284:25, 25.0 steps/min]2025-08-11 15:35:48,312 - agent.ComputerAgent - INFO - Computer: click({'x': 877, 'y': 537})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 877, 'y': 537})\n", - "2025-08-11 15:35:49,338 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m15:35:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:35:50,012 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m15:35:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 3%|█---------------------------------------| 236/7340 [9:29<285:36, 24.9 steps/min]2025-08-11 15:35:50,692 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m15:35:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:35:51,345 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m15:35:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a74f1790-a107-43c9-8389-0a50a5192c5f/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:35:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 237/7340 [9:31<285:21, 24.9 steps/min]2025-08-11 15:35:52,714 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m15:35:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:35:53,753 - agent.ComputerAgent - INFO - LLM processing started with 13 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 13 messages\n", - "\u001b[92m15:35:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:35:54,426 - agent.ComputerAgent - INFO - LLM processing started with 13 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 13 messages\n", - "\u001b[92m15:35:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/982f8f16-b578-409f-8388-d8d5ee68ccee/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/77f486b6-dc2a-4a1d-bf54-fc05f9a8c3d7/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 3%|█---------------------------------------| 237/7340 [9:34<286:52, 24.8 steps/min]\u001b[92m15:35:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:35:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:35:55,767 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m15:35:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 15:35:56,466 - agent.ComputerAgent - INFO - Computer: click({'x': 501, 'y': 55})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 501, 'y': 55})\n", - "\u001b[92m15:35:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:35:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cfefeec4-603f-4657-b0fe-7a641734693c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:35:58,194 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m15:35:58 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 3%|█---------------------------------------| 238/7340 [9:37<287:10, 24.7 steps/min]2025-08-11 15:35:58,837 - agent.ComputerAgent - INFO - Computer: click({'x': 347, 'y': 186})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 347, 'y': 186})\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:35:59,467 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m15:35:59 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m15:35:59 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 239/7340 [9:38<286:34, 24.8 steps/min]2025-08-11 15:36:00,161 - agent.ComputerAgent - INFO - Computer: click({'x': 309, 'y': 116})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 309, 'y': 116})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:36:00 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 240/7340 [9:40<285:59, 24.8 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:36:01,470 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m15:36:01 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a74f1790-a107-43c9-8389-0a50a5192c5f/invoke \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:36:01 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:36:02,165 - agent.ComputerAgent - INFO - LLM processing started with 15 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 15 messages\n", - "\u001b[92m15:36:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m15:36:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 3%|█---------------------------------------| 241/7340 [9:41<285:27, 24.9 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/835128b8-2a29-46f4-853f-4d70bb46a9d6/invoke \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:36:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:36:03,352 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 633, 'y': 320}, {'x': 422, 'y': 393}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 633, 'y': 320}, {'x': 422, 'y': 393}]})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - " 3%|█---------------------------------------| 249/7340 [9:42<276:30, 25.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/835128b8-2a29-46f4-853f-4d70bb46a9d6/close \"HTTP/1.1 200 OK\"\n", - " 3%|█---------------------------------------| 250/7340 [9:43<275:49, 25.7 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:36:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:36:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0a91cea7-3ffe-41c2-9405-1151904aee0c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/edaeedb6-9993-4b6f-b226-19e2768a5736/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a74f1790-a107-43c9-8389-0a50a5192c5f/invoke \"HTTP/1.1 200 OK\"\n", - " 3%|█---------------------------------------| 250/7340 [9:45<276:35, 25.6 steps/min]INFO:accelerate.utils.modeling:We will use 90% of the memory on device 0 for storing the model, and 10% for the buffer to avoid OOM. You can set `max_memory` in to a higher value to use more memory (at your own risk).\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00 output.csv\n", - "- libreoffice --calc output.csv\n", - "\n", - "This converts both spreadsheets to CSV, concatenates their single columns into one file named output.csv, and opens it in LibreOffice Calc from the terminal.\n", - "\n", - "Task completed.\n", - "INFO:agent.ComputerAgent:Agent: Done via Terminal.\n", - "\n", - "Commands executed:\n", - "- cd ~/Desktop\n", - "- libreoffice --headless --convert-to csv file1.xlsx\n", - "- libreoffice --headless --convert-to csv file2.ods\n", - "- cat file1.csv file2.csv > output.csv\n", - "- libreoffice --calc output.csv\n", - "\n", - "This converts both spreadsheets to CSV, concatenates their single columns into one file named output.csv, and opens it in LibreOffice Calc from the terminal.\n", - "\n", - "Task completed.\n", - "2025-08-11 15:39:44,642 - agent.ComputerAgent - INFO - Total usage:\n", - " - completion_tokens: 679\n", - " - prompt_tokens: 8809\n", - " - total_tokens: 9488\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 576\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0178\n", - "INFO:agent.ComputerAgent:Total usage:\n", - " - completion_tokens: 679\n", - " - prompt_tokens: 8809\n", - " - total_tokens: 9488\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 576\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0178\n", - " 5%|█---------------------------------------| 359/7340 [13:23<260:31, 26.8 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m15:39:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:39:45,831 - agent.ComputerAgent - INFO - Computer: click({'x': 111, 'y': 213})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 111, 'y': 213})\n", - " 5%|█---------------------------------------| 359/7340 [13:25<260:54, 26.8 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0a91cea7-3ffe-41c2-9405-1151904aee0c/invoke \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:39:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:39:46,456 - agent.ComputerAgent - INFO - Computer: click({'x': 148, 'y': 739})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 148, 'y': 739})\n", - "\u001b[92m15:39:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:39:47,105 - agent.ComputerAgent - INFO - Computer: click({'x': 984, 'y': 68})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 984, 'y': 68})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:39:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:39:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - " 5%|█---------------------------------------| 360/7340 [13:26<260:46, 26.8 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:39:48,477 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': 607, 'scroll_x': 0, 'x': 91, 'y': 464})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': 607, 'scroll_x': 0, 'x': 91, 'y': 464})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m15:39:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m15:39:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0a91cea7-3ffe-41c2-9405-1151904aee0c/invoke \"HTTP/1.1 200 OK\"\n", - " 5%|█---------------------------------------| 362/7340 [13:28<259:43, 26.9 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 15:39:49,752 - agent.ComputerAgent - INFO - Computer: click({'x': 219, 'y': 53})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 219, 'y': 53})\n", - "\u001b[92m15:39:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 15:39:50,434 - agent.ComputerAgent - INFO - Computer: click({'x': 416, 'y': 74})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 416, 'y': 74})\n", - " 5%|██--------------------------------------| 374/7340 [13:30<251:38, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0a91cea7-3ffe-41c2-9405-1151904aee0c/close \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:39:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/c8c54705-3689-4d05-b8e1-7a57903f3a21/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/63010886-f715-4208-aef0-b98c456e7e98/invoke \"HTTP/1.1 200 OK\"\n", - " 5%|██--------------------------------------| 374/7340 [13:32<252:04, 27.6 steps/min]INFO:accelerate.utils.modeling:We will use 90% of the memory on device 0 for storing the model, and 10% for the buffer to avoid OOM. You can set `max_memory` in to a higher value to use more memory (at your own risk).\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00 Preferences > Input / Codecs > Record directory or filename and saved the setting.\n", - "\n", - "Task completed.\n", - "INFO:agent.ComputerAgent:Agent: I have changed VLC’s recordings folder to Desktop via Tools > Preferences > Input / Codecs > Record directory or filename and saved the setting.\n", - "\n", - "Task completed.\n", - "2025-08-11 15:53:48,419 - agent.ComputerAgent - INFO - Total usage:\n", - " - completion_tokens: 232\n", - " - prompt_tokens: 8729\n", - " - total_tokens: 8961\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 192\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0132\n", - "INFO:agent.ComputerAgent:Total usage:\n", - " - completion_tokens: 232\n", - " - prompt_tokens: 8729\n", - " - total_tokens: 8961\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 192\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0132\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/8a8f1594-3659-4132-9059-6fa366033df0/invoke \"HTTP/1.1 200 OK\"\n", - " 11%|████------------------------------------| 777/7340 [27:30<232:18, 28.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:53:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m15:53:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 11%|████------------------------------------| 779/7340 [27:31<231:49, 28.3 steps/min]INFO:accelerate.utils.modeling:We will use 90% of the memory on device 0 for storing the model, and 10% for the buffer to avoid OOM. You can set `max_memory` in to a higher value to use more memory (at your own risk).\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00 Open File (or drag-and-drop the files into VLC).\n", - "\n", - "If you want me to, I can play the show in the browser via Google TV, or play any DRM‑free local media in VLC.\n", - "\n", - "Task completed.\n", - "INFO:agent.ComputerAgent:Agent: I can’t complete this as requested. Playing a Google Play Movies & TV purchase directly in VLC would require bypassing Google’s DRM (Widevine), which I won’t help with. Additionally, Stranger Things is a Netflix original and is typically not sold on Google Play, so it may not even be available for purchase there.\n", - "\n", - "Legal ways to watch:\n", - "- In a browser: Go to play.google.com/tv (or tv.google.com), sign in to your Google account, search for the title in your Library, and play it in the browser.\n", - "- On devices: Use the Google TV app on Android/iOS/Android TV or YouTube app where your Google Play purchases appear, and watch or cast to a TV.\n", - "- If you have DRM‑free video files you own, you can play them in VLC via Media > Open File (or drag-and-drop the files into VLC).\n", - "\n", - "If you want me to, I can play the show in the browser via Google TV, or play any DRM‑free local media in VLC.\n", - "\n", - "Task completed.\n", - "2025-08-11 16:05:33,041 - agent.ComputerAgent - INFO - Total usage:\n", - " - completion_tokens: 1371\n", - " - prompt_tokens: 8756\n", - " - total_tokens: 10127\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 1152\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 2560\n", - " - response_cost: $0.0218\n", - "INFO:agent.ComputerAgent:Total usage:\n", - " - completion_tokens: 1371\n", - " - prompt_tokens: 8756\n", - " - total_tokens: 10127\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 1152\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 2560\n", - " - response_cost: $0.0218\n", - " 16%|██████----------------------------------| 1143/7340 [39:14<212:46, 29.1 steps/min]2025-08-11 16:05:33,721 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m16:05:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:05:34,369 - agent.ComputerAgent - INFO - LLM processing started with 40 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 40 messages\n", - "\u001b[92m16:05:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 16%|██████----------------------------------| 1144/7340 [39:16<212:41, 29.1 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:05:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:05:36,085 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m16:05:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:05:37,424 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+='})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+='})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 16%|██████----------------------------------| 1144/7340 [39:19<213:01, 29.1 steps/min]\u001b[92m16:05:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:05:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m16:05:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:05:39,411 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m16:05:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:05:40,051 - agent.ComputerAgent - INFO - Computer: click({'x': 247, 'y': 103})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 247, 'y': 103})\n", - "\u001b[92m16:05:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 16%|██████----------------------------------| 1144/7340 [39:21<213:11, 29.1 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:05:40,712 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m16:05:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:05:41,401 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 16:05:41,402 - agent.ComputerAgent - INFO - Computer: move({'x': 512, 'y': 32})\n", - "INFO:agent.ComputerAgent:Computer: move({'x': 512, 'y': 32})\n", - "\u001b[92m16:05:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:05:42,101 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m16:05:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 16%|██████----------------------------------| 1145/7340 [39:23<213:09, 29.1 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:05:42,775 - agent.ComputerAgent - INFO - Computer: click({'x': 87, 'y': 165})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 87, 'y': 165})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/932fb6ee-8e77-41ca-8220-27e0c8783ced/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:05:43,825 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m16:05:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9618024b-01b2-4c48-8a72-2ec16bffcf41/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 16%|██████----------------------------------| 1146/7340 [39:26<213:09, 29.1 steps/min]\u001b[92m16:05:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:05:45,138 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m16:05:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:05:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:05:45,820 - agent.ComputerAgent - INFO - Computer: click({'x': 709, 'y': 305})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 709, 'y': 305})\n", - " 16%|██████----------------------------------| 1147/7340 [39:27<213:03, 29.1 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9618024b-01b2-4c48-8a72-2ec16bffcf41/invoke \"HTTP/1.1 200 OK\"\n", - " 16%|██████----------------------------------| 1157/7340 [39:28<210:57, 29.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9618024b-01b2-4c48-8a72-2ec16bffcf41/close \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/8bb6b36b-e7fb-4e80-916a-501fa7ad17f9/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:05:48,172 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m16:05:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:05:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/c3f7029e-7bbd-43fb-bea4-c66cc9ae685d/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 16%|██████----------------------------------| 1157/7340 [39:30<211:08, 29.3 steps/min]INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:05:49,481 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m16:05:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7955abad-b178-4311-85d5-7f1dedbecbcc/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:05:50,142 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m16:05:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ffbf23fa-9bd6-4b26-befa-cb45d31fc4fa/invoke \"HTTP/1.1 200 OK\"\n", - " 16%|██████----------------------------------| 1157/7340 [39:31<211:15, 29.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:accelerate.utils.modeling:We will use 90% of the memory on device 0 for storing the model, and 10% for the buffer to avoid OOM. You can set `max_memory` in to a higher value to use more memory (at your own risk).\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00/dev/null || true'\"})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': \"bash -lc 'cd ~/Desktop && ls -1 *.png 2>/dev/null || true'\"})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m16:10:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 18%|███████---------------------------------| 1308/7340 [44:13<203:56, 29.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:10:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m16:10:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/d8b3a739-de56-40fe-896f-831373c8ecee/reset \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:10:32,953 - agent.ComputerAgent - INFO - Computer: click({'x': 512, 'y': 384})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 512, 'y': 384})\n", - "\u001b[92m16:10:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 18%|███████---------------------------------| 1310/7340 [44:15<203:42, 29.6 steps/min]\u001b[92m16:10:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:10:34,242 - agent.ComputerAgent - INFO - Computer: double_click({'x': 984, 'y': 658})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 984, 'y': 658})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:10:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:10:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:10:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:10:36,222 - agent.ComputerAgent - INFO - Computer: click({'x': 15, 'y': 284})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 15, 'y': 284})\n", - "\u001b[92m16:10:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 18%|███████---------------------------------| 1311/7340 [44:17<203:43, 29.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:10:36,912 - agent.ComputerAgent - INFO - Computer: click({'x': 205, 'y': 735})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 205, 'y': 735})\n", - "\u001b[92m16:10:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:10:38,184 - agent.ComputerAgent - INFO - Computer: type({'text': 'sudo find . -type f -exec chmod 644 {} +'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'sudo find . -type f -exec chmod 644 {} +'})\n", - "2025-08-11 16:10:38,849 - agent.ComputerAgent - INFO - Computer: click({'x': 100, 'y': 390})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 100, 'y': 390})\n", - "\u001b[92m16:10:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 18%|███████---------------------------------| 1313/7340 [44:21<203:36, 29.6 steps/min]\u001b[92m16:10:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:10:40,187 - agent.ComputerAgent - INFO - Computer: click({'x': 359, 'y': 258})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 359, 'y': 258})\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:10:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:10:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 18%|███████---------------------------------| 1316/7340 [44:22<203:08, 29.7 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:10:41,570 - agent.ComputerAgent - INFO - Computer: click({'x': 131, 'y': 91, 'button': 'left'})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 131, 'y': 91, 'button': 'left'})\n", - "2025-08-11 16:10:42,221 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m16:10:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:10:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 18%|███████---------------------------------| 1317/7340 [44:24<203:03, 29.7 steps/min]2025-08-11 16:10:42,902 - agent.ComputerAgent - INFO - Computer: click({'x': 910, 'y': 233})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 910, 'y': 233})\n", - " 18%|███████---------------------------------| 1318/7340 [44:25<202:56, 29.7 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:10:45,238 - agent.ComputerAgent - INFO - Computer: type({'text': 'https://upload.wikimedia.org/wikipedia/en/thumb/1/1e/The_University_of_Hong_Kong_crest.svg/1200px-The_University_of_Hong_Kong_crest.svg.png'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'https://upload.wikimedia.org/wikipedia/en/thumb/1/1e/The_University_of_Hong_Kong_crest.svg/1200px-The_University_of_Hong_Kong_crest.svg.png'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a23ddde7-5509-407d-af64-ea09807c1af1/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fa4f593f-4977-4dc4-9238-0a67602a0900/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fafe8f9a-bc46-42ad-b3ca-7190a64ab552/invoke \"HTTP/1.1 200 OK\"\n", - " 18%|███████---------------------------------| 1319/7340 [44:26<202:54, 29.7 steps/min]2025-08-11 16:10:45,918 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m16:10:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ca85c226-0c49-4084-b2bc-86bd540c8bce/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/79295f2f-2987-488c-b4b7-c968f71c7597/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b2656d0e-a6f4-4ecb-a099-cfe8471c4998/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:10:46,633 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m16:10:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 18%|███████---------------------------------| 1320/7340 [44:28<202:49, 29.7 steps/min]2025-08-11 16:10:47,821 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m16:10:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0cad7a26-2224-4401-9a66-57daca76d380/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3b3e7fbd-8c02-45a6-bb3d-83c056398d3f/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d8b3a739-de56-40fe-896f-831373c8ecee/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/80299c20-3bcf-48b1-a471-299a1eda0a00/invoke \"HTTP/1.1 200 OK\"\n", - " 18%|███████---------------------------------| 1320/7340 [44:29<202:55, 29.7 steps/min]2025-08-11 16:10:48,618 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m16:10:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/89cdf329-a61d-4d69-9c6c-5d0ea35677b6/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:10:49,365 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m16:10:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/c3f7029e-7bbd-43fb-bea4-c66cc9ae685d/invoke \"HTTP/1.1 200 OK\"\n", - " 18%|███████---------------------------------| 1320/7340 [44:31<203:01, 29.7 steps/min]2025-08-11 16:10:50,151 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m16:10:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:10:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:10:51,510 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m16:10:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 18%|███████---------------------------------| 1320/7340 [44:33<203:11, 29.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ffbf23fa-9bd6-4b26-befa-cb45d31fc4fa/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:10:52,195 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m16:10:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:10:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/932fb6ee-8e77-41ca-8220-27e0c8783ced/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:10:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:10:52,855 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m16:10:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:10:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 18%|███████---------------------------------| 1320/7340 [44:34<203:17, 29.6 steps/min]2025-08-11 16:10:53,549 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m16:10:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:10:54,253 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 420, 'y': 162}, {'x': 170, 'y': 133}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 420, 'y': 162}, {'x': 170, 'y': 133}]})\n", - " 18%|███████---------------------------------| 1320/7340 [44:36<203:24, 29.6 steps/min]2025-08-11 16:10:55,291 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m16:10:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 18%|███████---------------------------------| 1321/7340 [44:37<203:17, 29.6 steps/min]2025-08-11 16:10:55,940 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m16:10:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:10:56,604 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m16:10:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 18%|███████---------------------------------| 1321/7340 [44:38<203:23, 29.6 steps/min]2025-08-11 16:10:57,291 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m16:10:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 18%|███████---------------------------------| 1321/7340 [44:40<203:32, 29.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:10:58 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m16:10:59 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:11:00,151 - agent.ComputerAgent - INFO - Computer: click({'x': 122, 'y': 219})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 122, 'y': 219})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 18%|███████---------------------------------| 1321/7340 [44:42<203:43, 29.5 steps/min]\u001b[92m16:11:00 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m16:11:01 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:11:02,396 - agent.ComputerAgent - INFO - Computer: click({'x': 16, 'y': 429})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 16, 'y': 429})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e8a299f4-d946-4970-b9a4-2503717de8ce/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:11:03,765 - agent.ComputerAgent - INFO - Computer: wait({})\n", - "INFO:agent.ComputerAgent:Computer: wait({})\n", - " 18%|███████---------------------------------| 1322/7340 [44:45<203:44, 29.5 steps/min]2025-08-11 16:11:04,441 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m16:11:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:11:05,798 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'enter'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'enter'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cc2e38be-6768-4928-bfe5-d7f31cb68b24/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:11:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 18%|███████---------------------------------| 1324/7340 [44:48<203:37, 29.5 steps/min]\u001b[92m16:11:07 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:11:07,755 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m16:11:07 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:11:07 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:11:09,113 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+a'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+a'})\n", - "2025-08-11 16:11:09,745 - agent.ComputerAgent - INFO - Computer: click({'x': 434, 'y': 418})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 434, 'y': 418})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:11:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:11:10 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 18%|███████---------------------------------| 1325/7340 [44:52<203:44, 29.5 steps/min]\u001b[92m16:11:11 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:11:12,504 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'enter'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'enter'})\n", - "2025-08-11 16:11:13,143 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m16:11:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:11:13,809 - agent.ComputerAgent - INFO - Computer: click({'x': 248, 'y': 291})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 248, 'y': 291})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ca85c226-0c49-4084-b2bc-86bd540c8bce/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m16:11:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fafe8f9a-bc46-42ad-b3ca-7190a64ab552/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/39724bde-60dd-471d-ba25-1ac9b1405c76/invoke \"HTTP/1.1 200 OK\"\n", - " 18%|███████---------------------------------| 1326/7340 [44:56<203:48, 29.5 steps/min]\u001b[92m16:11:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:11:15,137 - agent.ComputerAgent - INFO - Computer: click({'x': 293, 'y': 185})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 293, 'y': 185})\n", - "\u001b[92m16:11:15 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:11:15,821 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m16:11:15 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:11:16,500 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 16:11:16,501 - agent.ComputerAgent - INFO - Computer: click({'x': 650, 'y': 362})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 650, 'y': 362})\n", - "\u001b[92m16:11:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 18%|███████---------------------------------| 1328/7340 [44:58<203:35, 29.5 steps/min]2025-08-11 16:11:17,188 - agent.ComputerAgent - INFO - Computer: double_click({'x': 247, 'y': 153})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 247, 'y': 153})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:11:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 18%|███████---------------------------------| 1330/7340 [44:59<203:19, 29.6 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:11:18,491 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m16:11:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:11:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:11:19,525 - agent.ComputerAgent - INFO - Computer: click({'x': 867, 'y': 233})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 867, 'y': 233})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 18%|███████---------------------------------| 1331/7340 [45:01<203:18, 29.6 steps/min]\u001b[92m16:11:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:11:21,243 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m16:11:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 18%|███████---------------------------------| 1332/7340 [45:02<203:11, 29.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:11:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:11:21,948 - agent.ComputerAgent - INFO - Computer: click({'x': 573, 'y': 249})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 573, 'y': 249})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:11:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 18%|███████---------------------------------| 1332/7340 [45:04<203:18, 29.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/932fb6ee-8e77-41ca-8220-27e0c8783ced/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d8b3a739-de56-40fe-896f-831373c8ecee/invoke \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:11:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:11:23,815 - agent.ComputerAgent - INFO - Computer: click({'x': 254, 'y': 736})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 254, 'y': 736})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/89cdf329-a61d-4d69-9c6c-5d0ea35677b6/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3b3e7fbd-8c02-45a6-bb3d-83c056398d3f/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/80299c20-3bcf-48b1-a471-299a1eda0a00/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b2656d0e-a6f4-4ecb-a099-cfe8471c4998/invoke \"HTTP/1.1 200 OK\"\n", - " 18%|███████---------------------------------| 1333/7340 [45:05<203:12, 29.6 steps/min]2025-08-11 16:11:24,492 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m16:11:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:11:25,193 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m16:11:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 18%|███████---------------------------------| 1334/7340 [45:06<203:07, 29.6 steps/min]2025-08-11 16:11:26,204 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m16:11:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 18%|███████---------------------------------| 1334/7340 [45:08<203:12, 29.6 steps/min]2025-08-11 16:11:27,268 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m16:11:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/c3f7029e-7bbd-43fb-bea4-c66cc9ae685d/invoke \"HTTP/1.1 200 OK\"\n", - " 18%|███████---------------------------------| 1334/7340 [45:09<203:16, 29.5 steps/min]2025-08-11 16:11:27,895 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m16:11:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:11:29,210 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+a'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+a'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a23ddde7-5509-407d-af64-ea09807c1af1/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:11:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 18%|███████---------------------------------| 1334/7340 [45:11<203:29, 29.5 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:11:30,853 - agent.ComputerAgent - INFO - LLM processing started with 40 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 40 messages\n", - "\u001b[92m16:11:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:11:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:11:31,535 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_x': 0, 'scroll_y': 685, 'x': 633, 'y': 405})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_x': 0, 'scroll_y': 685, 'x': 633, 'y': 405})\n", - " 18%|███████---------------------------------| 1334/7340 [45:13<203:35, 29.5 steps/min]2025-08-11 16:11:32,197 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m16:11:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:11:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 18%|███████---------------------------------| 1335/7340 [45:14<203:31, 29.5 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:11:33,951 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m16:11:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:11:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:11:35,279 - agent.ComputerAgent - INFO - Computer: type({'text': \"bash -lc 'cd ~/Desktop && ls -1 *.png'\"})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': \"bash -lc 'cd ~/Desktop && ls -1 *.png'\"})\n", - "2025-08-11 16:11:35,955 - agent.ComputerAgent - INFO - Computer: double_click({'x': 49, 'y': 431})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 49, 'y': 431})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:11:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ffbf23fa-9bd6-4b26-befa-cb45d31fc4fa/invoke \"HTTP/1.1 200 OK\"\n", - " 18%|███████---------------------------------| 1335/7340 [45:18<203:47, 29.5 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:11:37,317 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m16:11:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:11:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:11:37,999 - agent.ComputerAgent - INFO - Computer: click({'x': 122, 'y': 176})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 122, 'y': 176})\n", - " 18%|███████---------------------------------| 1337/7340 [45:19<203:31, 29.5 steps/min]2025-08-11 16:11:38,642 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m16:11:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:11:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 18%|███████---------------------------------| 1338/7340 [45:21<203:26, 29.5 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m16:11:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:11:40,487 - agent.ComputerAgent - INFO - Computer: click({'x': 397, 'y': 624})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 397, 'y': 624})\n", - " 18%|███████---------------------------------| 1339/7340 [45:23<203:24, 29.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0cad7a26-2224-4401-9a66-57daca76d380/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/79295f2f-2987-488c-b4b7-c968f71c7597/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:11:42,633 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m16:11:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ca85c226-0c49-4084-b2bc-86bd540c8bce/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:11:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:11:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 18%|███████---------------------------------| 1339/7340 [45:25<203:35, 29.5 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m16:11:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:11:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:11:45,987 - agent.ComputerAgent - INFO - Computer: type({'text': 'find . -type f -perm -not -0644 -ls | head -n 20'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'find . -type f -perm -not -0644 -ls | head -n 20'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cc2e38be-6768-4928-bfe5-d7f31cb68b24/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:11:46,670 - agent.ComputerAgent - INFO - Computer: click({'x': 249, 'y': 339})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 249, 'y': 339})\n", - "\u001b[92m16:11:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 18%|███████---------------------------------| 1339/7340 [45:28<203:47, 29.4 steps/min]\u001b[92m16:11:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:11:47,338 - agent.ComputerAgent - INFO - Computer: click({'x': 982, 'y': 741})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 982, 'y': 741})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:11:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d8b3a739-de56-40fe-896f-831373c8ecee/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:11:48,711 - agent.ComputerAgent - INFO - Computer: click({'x': 1000, 'y': 739})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 1000, 'y': 739})\n", - " 18%|███████---------------------------------| 1341/7340 [45:30<203:34, 29.5 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:11:49,375 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m16:11:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:11:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:11:50,053 - agent.ComputerAgent - INFO - Computer: click({'x': 553, 'y': 275})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 553, 'y': 275})\n", - " 18%|███████---------------------------------| 1343/7340 [45:31<203:18, 29.5 steps/min]2025-08-11 16:11:50,708 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m16:11:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:11:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 18%|███████---------------------------------| 1344/7340 [45:33<203:14, 29.5 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:11:52,081 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m16:11:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:11:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:11:52,743 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m16:11:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:11:54,178 - agent.ComputerAgent - INFO - Computer: click({'x': 49, 'y': 53})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 49, 'y': 53})\n", - " 18%|███████---------------------------------| 1344/7340 [45:35<203:25, 29.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:11:55,482 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+shift+v'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+shift+v'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/80299c20-3bcf-48b1-a471-299a1eda0a00/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3b3e7fbd-8c02-45a6-bb3d-83c056398d3f/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:11:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/932fb6ee-8e77-41ca-8220-27e0c8783ced/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 18%|███████---------------------------------| 1345/7340 [45:37<203:23, 29.5 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:11:56,832 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m16:11:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:11:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:11:57,492 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m16:11:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:11:58,155 - agent.ComputerAgent - INFO - Computer: click({'x': 496, 'y': 256})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 496, 'y': 256})\n", - " 18%|███████---------------------------------| 1345/7340 [45:39<203:32, 29.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:11:59,512 - agent.ComputerAgent - INFO - Computer: click({'x': 188, 'y': 54})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 188, 'y': 54})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/89cdf329-a61d-4d69-9c6c-5d0ea35677b6/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:12:00,870 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+f'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+f'})\n", - " 18%|███████---------------------------------| 1346/7340 [45:42<203:33, 29.4 steps/min]2025-08-11 16:12:01,532 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m16:12:01 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:12:02,223 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m16:12:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e8a299f4-d946-4970-b9a4-2503717de8ce/invoke \"HTTP/1.1 200 OK\"\n", - " 18%|███████---------------------------------| 1347/7340 [45:44<203:28, 29.5 steps/min]2025-08-11 16:12:02,913 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m16:12:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:12:03,573 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m16:12:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 18%|███████---------------------------------| 1347/7340 [45:45<203:34, 29.4 steps/min]2025-08-11 16:12:04,252 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m16:12:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 18%|███████---------------------------------| 1347/7340 [45:46<203:38, 29.4 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:12:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 18%|███████---------------------------------| 1347/7340 [45:47<203:43, 29.4 steps/min]\u001b[92m16:12:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:12:06,650 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_x': 0, 'scroll_y': 677, 'x': 633, 'y': 362})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_x': 0, 'scroll_y': 677, 'x': 633, 'y': 362})\n", - " 18%|███████---------------------------------| 1347/7340 [45:48<203:47, 29.4 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:12:07 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b2656d0e-a6f4-4ecb-a099-cfe8471c4998/invoke \"HTTP/1.1 200 OK\"\n", - " 18%|███████---------------------------------| 1348/7340 [45:49<203:41, 29.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fa4f593f-4977-4dc4-9238-0a67602a0900/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:12:08 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:12:08 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:12:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/c3f7029e-7bbd-43fb-bea4-c66cc9ae685d/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:12:09,759 - agent.ComputerAgent - INFO - Computer: click({'x': 296, 'y': 736})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 296, 'y': 736})\n", - " 18%|███████---------------------------------| 1348/7340 [45:51<203:50, 29.4 steps/min]\u001b[92m16:12:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:12:10,408 - agent.ComputerAgent - INFO - Computer: click({'x': 234, 'y': 97})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 234, 'y': 97})\n", - "\u001b[92m16:12:10 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:12:11,099 - agent.ComputerAgent - INFO - Computer: click({'x': 332, 'y': 162})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 332, 'y': 162})\n", - " 18%|███████---------------------------------| 1349/7340 [45:52<203:45, 29.4 steps/min]2025-08-11 16:12:11,772 - agent.ComputerAgent - INFO - LLM processing started with 42 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 42 messages\n", - "\u001b[92m16:12:11 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:12:12,423 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m16:12:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 18%|███████---------------------------------| 1351/7340 [45:54<203:29, 29.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0cad7a26-2224-4401-9a66-57daca76d380/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:12:13,589 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m16:12:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:12:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 18%|███████---------------------------------| 1351/7340 [45:56<203:37, 29.4 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:12:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:12:15 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m16:12:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 18%|███████---------------------------------| 1351/7340 [45:58<203:46, 29.4 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:12:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:12:16,944 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m16:12:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:12:17,601 - agent.ComputerAgent - INFO - Computer: click({'x': 684, 'y': 41})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 684, 'y': 41})\n", - "\u001b[92m16:12:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:12:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:12:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 18%|███████---------------------------------| 1351/7340 [46:00<203:55, 29.4 steps/min]\u001b[92m16:12:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:12:18,978 - agent.ComputerAgent - INFO - Computer: click({'x': 122, 'y': 213})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 122, 'y': 213})\n", - "2025-08-11 16:12:19,629 - agent.ComputerAgent - INFO - Computer: click({'x': 244, 'y': 149})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 244, 'y': 149})\n", - "2025-08-11 16:12:20,317 - agent.ComputerAgent - INFO - Computer: click({'x': 397, 'y': 564})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 397, 'y': 564})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/80299c20-3bcf-48b1-a471-299a1eda0a00/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fafe8f9a-bc46-42ad-b3ca-7190a64ab552/invoke \"HTTP/1.1 200 OK\"\n", - " 18%|███████---------------------------------| 1352/7340 [46:02<203:53, 29.4 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:12:20,972 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m16:12:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:12:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ffbf23fa-9bd6-4b26-befa-cb45d31fc4fa/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:12:21,645 - agent.ComputerAgent - INFO - Computer: click({'x': 249, 'y': 339})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 249, 'y': 339})\n", - "2025-08-11 16:12:22,272 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m16:12:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 18%|███████---------------------------------| 1355/7340 [46:04<203:28, 29.4 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:12:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 18%|███████---------------------------------| 1356/7340 [46:05<203:22, 29.4 steps/min]2025-08-11 16:12:24,123 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m16:12:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:12:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:12:24,852 - agent.ComputerAgent - INFO - Computer: click({'x': 623, 'y': 359})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 623, 'y': 359})\n", - " 18%|███████---------------------------------| 1356/7340 [46:06<203:28, 29.4 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:12:26,220 - agent.ComputerAgent - INFO - Computer: type({'text': 'source=~/Desktop/dir1; target=~/Desktop/dir3; if [ -d \"$source\" ] && [ -d \"$target\" ]; then rsync -a -f\"+ */\" -f\"- *\" \"$source\" \"$target\"; echo \"Copied directory hierarchy.\"; else echo \"Source or target directory not found\"; fi'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'source=~/Desktop/dir1; target=~/Desktop/dir3; if [ -d \"$source\" ] && [ -d \"$target\" ]; then rsync -a -f\"+ */\" -f\"- *\" \"$source\" \"$target\"; echo \"Copied directory hierarchy.\"; else echo \"Source or target directory not found\"; fi'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:12:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 18%|███████---------------------------------| 1357/7340 [46:08<203:27, 29.4 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m16:12:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:12:28,062 - agent.ComputerAgent - INFO - Computer: click({'x': 72, 'y': 90})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 72, 'y': 90})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:12:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:12:30,106 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'enter'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'enter'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/932fb6ee-8e77-41ca-8220-27e0c8783ced/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cc2e38be-6768-4928-bfe5-d7f31cb68b24/invoke \"HTTP/1.1 200 OK\"\n", - " 19%|███████---------------------------------| 1358/7340 [46:11<203:29, 29.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/89cdf329-a61d-4d69-9c6c-5d0ea35677b6/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d8b3a739-de56-40fe-896f-831373c8ecee/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:12:31,450 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': 676, 'scroll_x': 0})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': 676, 'scroll_x': 0})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ca85c226-0c49-4084-b2bc-86bd540c8bce/invoke \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:12:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:12:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 19%|███████---------------------------------| 1361/7340 [46:13<203:05, 29.4 steps/min]2025-08-11 16:12:32,793 - agent.ComputerAgent - INFO - Computer: click({'x': 553, 'y': 280})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 553, 'y': 280})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m16:12:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:12:34,134 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m16:12:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a23ddde7-5509-407d-af64-ea09807c1af1/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:12:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/39724bde-60dd-471d-ba25-1ac9b1405c76/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 19%|███████---------------------------------| 1361/7340 [46:15<203:14, 29.4 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:12:35,495 - agent.ComputerAgent - INFO - Computer: type({'text': \"bash -lc 'cd ~/Desktop && ls -1'}\"})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': \"bash -lc 'cd ~/Desktop && ls -1'}\"})\n", - "2025-08-11 16:12:36,154 - agent.ComputerAgent - INFO - Computer: click({'x': 263, 'y': 318})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 263, 'y': 318})\n", - "2025-08-11 16:12:36,816 - agent.ComputerAgent - INFO - LLM processing started with 40 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 40 messages\n", - "\u001b[92m16:12:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:12:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 19%|███████---------------------------------| 1362/7340 [46:18<203:15, 29.4 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:12:37,525 - agent.ComputerAgent - INFO - Computer: click({'x': 426, 'y': 257})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 426, 'y': 257})\n", - "2025-08-11 16:12:38,193 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m16:12:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 19%|███████---------------------------------| 1364/7340 [46:20<203:02, 29.4 steps/min]\u001b[92m16:12:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0cad7a26-2224-4401-9a66-57daca76d380/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "No screenshot found, taking screenshot\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-08-11 16:12:39,517 - agent.ComputerAgent - INFO - LLM processing started with 31 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 31 messages\n", - "\u001b[92m16:12:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:12:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:12:40,192 - agent.ComputerAgent - INFO - Computer: click({'x': 526, 'y': 232})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 526, 'y': 232})\n", - "2025-08-11 16:12:40,843 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m16:12:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 19%|███████---------------------------------| 1365/7340 [46:23<203:03, 29.4 steps/min]\u001b[92m16:12:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:12:42,204 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m16:12:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:12:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:12:43,551 - agent.ComputerAgent - INFO - Computer: click({'x': 835, 'y': 36})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 835, 'y': 36})\n", - "2025-08-11 16:12:44,241 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m16:12:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:12:44,933 - agent.ComputerAgent - INFO - Computer: click({'x': 433, 'y': 635})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 433, 'y': 635})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b2656d0e-a6f4-4ecb-a099-cfe8471c4998/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3b3e7fbd-8c02-45a6-bb3d-83c056398d3f/invoke \"HTTP/1.1 200 OK\"\n", - " 19%|███████---------------------------------| 1367/7340 [46:26<202:56, 29.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e8a299f4-d946-4970-b9a4-2503717de8ce/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/79295f2f-2987-488c-b4b7-c968f71c7597/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:12:45,580 - agent.ComputerAgent - INFO - LLM processing started with 40 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 40 messages\n", - "\u001b[92m16:12:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:12:46,215 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m16:12:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 19%|███████---------------------------------| 1369/7340 [46:28<202:40, 29.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0cad7a26-2224-4401-9a66-57daca76d380/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:12:46,933 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m16:12:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:12:47,614 - agent.ComputerAgent - INFO - LLM processing started with 33 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 33 messages\n", - "\u001b[92m16:12:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/80299c20-3bcf-48b1-a471-299a1eda0a00/invoke \"HTTP/1.1 200 OK\"\n", - " 19%|███████---------------------------------| 1369/7340 [46:29<202:46, 29.4 steps/min]2025-08-11 16:12:48,293 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m16:12:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:12:48,973 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m16:12:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 19%|███████---------------------------------| 1369/7340 [46:30<202:52, 29.4 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:12:50,174 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m16:12:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fafe8f9a-bc46-42ad-b3ca-7190a64ab552/invoke \"HTTP/1.1 200 OK\"\n", - " 19%|███████---------------------------------| 1369/7340 [46:31<202:57, 29.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/c3f7029e-7bbd-43fb-bea4-c66cc9ae685d/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:12:51,233 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m16:12:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/89cdf329-a61d-4d69-9c6c-5d0ea35677b6/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:12:52,561 - agent.ComputerAgent - INFO - Computer: type({'text': 'file1'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'file1'})\n", - " 19%|███████---------------------------------| 1369/7340 [46:34<203:07, 29.4 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:12:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fa4f593f-4977-4dc4-9238-0a67602a0900/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:12:53,913 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m16:12:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:12:55,675 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+,'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+,'})\n", - " 19%|███████---------------------------------| 1371/7340 [46:37<202:59, 29.4 steps/min]\u001b[92m16:12:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:12:56,375 - agent.ComputerAgent - INFO - Computer: click({'x': 304, 'y': 735})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 304, 'y': 735})\n", - "2025-08-11 16:12:57,004 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m16:12:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 19%|███████---------------------------------| 1371/7340 [46:38<203:05, 29.4 steps/min]2025-08-11 16:12:57,682 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m16:12:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 19%|███████---------------------------------| 1372/7340 [46:39<202:58, 29.4 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:13:00,048 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+v'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+v'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0cad7a26-2224-4401-9a66-57daca76d380/invoke \"HTTP/1.1 200 OK\"\n", - " 19%|███████---------------------------------| 1372/7340 [46:41<203:07, 29.4 steps/min]2025-08-11 16:13:00,705 - agent.ComputerAgent - INFO - LLM processing started with 35 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 35 messages\n", - "\u001b[92m16:13:00 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:13:01,364 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m16:13:01 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 19%|███████---------------------------------| 1372/7340 [46:45<203:22, 29.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ca85c226-0c49-4084-b2bc-86bd540c8bce/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fa4f593f-4977-4dc4-9238-0a67602a0900/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:13:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 19%|███████---------------------------------| 1374/7340 [46:46<203:05, 29.4 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:13:05,255 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m16:13:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:13:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fa4f593f-4977-4dc4-9238-0a67602a0900/close \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:13:06,551 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'enter'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'enter'})\n", - "2025-08-11 16:13:07,203 - agent.ComputerAgent - INFO - Computer: click({'x': 232, 'y': 97})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 232, 'y': 97})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ffbf23fa-9bd6-4b26-befa-cb45d31fc4fa/invoke \"HTTP/1.1 200 OK\"\n", - " 19%|███████---------------------------------| 1376/7340 [46:49<202:59, 29.4 steps/min]2025-08-11 16:13:08,546 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m16:13:08 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:13:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0cad7a26-2224-4401-9a66-57daca76d380/invoke \"HTTP/1.1 200 OK\"\n", - " 19%|███████---------------------------------| 1376/7340 [46:51<203:04, 29.4 steps/min]2025-08-11 16:13:09,882 - agent.ComputerAgent - INFO - LLM processing started with 37 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 37 messages\n", - "\u001b[92m16:13:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 19%|███████---------------------------------| 1376/7340 [46:52<203:08, 29.4 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:13:11 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:accelerate.utils.modeling:We will use 90% of the memory on device 0 for storing the model, and 10% for the buffer to avoid OOM. You can set `max_memory` in to a higher value to use more memory (at your own risk).\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': ''})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a4e9c5c3-fa17-4f05-8383-03a3cb3c1fba/invoke \"HTTP/1.1 200 OK\"\n", - " 23%|█████████-------------------------------| 1664/7340 [58:10<198:24, 28.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/4813e5e3-be12-40e2-9cc0-d5be0ad320cf/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:24:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:24:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/c062c21a-1b89-4117-86d3-d763f8af4cbd/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7a0a74ba-160b-41ee-a6d2-6dc61c143d94/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:24:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m16:24:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 23%|█████████-------------------------------| 1684/7340 [58:12<195:28, 28.9 steps/min]2025-08-11 16:24:31,005 - agent.ComputerAgent - INFO - Computer: click({'x': 369, 'y': 564})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 369, 'y': 564})\n", - "\u001b[92m16:24:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:24:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:24:31,655 - agent.ComputerAgent - INFO - Computer: click({'x': 842, 'y': 571})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 842, 'y': 571})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:24:32,328 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m16:24:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:24:32,999 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m16:24:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:24:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:24:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 23%|█████████-------------------------------| 1684/7340 [58:14<195:37, 28.9 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:24:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:24:34,996 - agent.ComputerAgent - INFO - Computer: type({'text': '3'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': '3'})\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:24:35,673 - agent.ComputerAgent - INFO - Computer: click({'button': 'right', 'x': 987, 'y': 658})\n", - "INFO:agent.ComputerAgent:Computer: click({'button': 'right', 'x': 987, 'y': 658})\n", - "2025-08-11 16:24:36,338 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m16:24:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 23%|█████████-------------------------------| 1686/7340 [58:18<195:30, 28.9 steps/min]\u001b[92m16:24:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:24:37,031 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 280, 'y': 375}, {'x': 802, 'y': 446}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 280, 'y': 375}, {'x': 802, 'y': 446}]})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:24:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:24:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 23%|█████████-------------------------------| 1688/7340 [58:19<195:17, 28.9 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:24:38,396 - agent.ComputerAgent - INFO - Computer: click({'x': 60, 'y': 35})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 60, 'y': 35})\n", - "\u001b[92m16:24:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e8a299f4-d946-4970-b9a4-2503717de8ce/close \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7bc07116-76e3-42fb-a0e3-a2273a5caa64/close \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d8b3a739-de56-40fe-896f-831373c8ecee/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:24:39,048 - agent.ComputerAgent - INFO - Computer: click({'x': 478, 'y': 256})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 478, 'y': 256})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a4e9c5c3-fa17-4f05-8383-03a3cb3c1fba/close \"HTTP/1.1 200 OK\"\n", - " 23%|█████████-------------------------------| 1693/7340 [58:22<194:41, 29.0 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3ad517be-7b27-424d-b632-3ba6ff1a1e71/invoke \"HTTP/1.1 200 OK\"\n", - " 23%|█████████-------------------------------| 1695/7340 [58:23<194:26, 29.0 steps/min]INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d8b3a739-de56-40fe-896f-831373c8ecee/close \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3980166d-0a7d-4a58-a915-07dbe8b607bb/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b6b06a1a-197c-499e-a884-cc6bce509fa3/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 23%|█████████-------------------------------| 1695/7340 [58:25<194:33, 29.0 steps/min]\u001b[92m16:24:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9dca7e41-642b-4cca-8758-834cef0e844c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/5da0c259-034b-4ba2-9e95-9d4ae99c7475/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:accelerate.utils.modeling:We will use 90% of the memory on device 0 for storing the model, and 10% for the buffer to avoid OOM. You can set `max_memory` in to a higher value to use more memory (at your own risk).\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00\n", - "INFO:accelerate.utils.modeling:We will use 90% of the memory on device 0 for storing the model, and 10% for the buffer to avoid OOM. You can set `max_memory` in to a higher value to use more memory (at your own risk).\n", - " 26%|██████████------------------------------| 1938/7340 [66:27<185:15, 29.2 steps/min]\u001b[92m16:32:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/8956c64b-871b-43e2-84de-047c8ce2a839/invoke \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 100%|██████████| 4/4 [00:05<00:00, 1.48s/it]\n", - "2025-08-11 16:32:46,573 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m16:32:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 26%|██████████------------------------------| 1939/7340 [66:29<185:13, 29.2 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e7117b51-399c-45d8-88a1-c54a00b2bc38/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:32:48,835 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m16:32:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 26%|██████████------------------------------| 1939/7340 [66:32<185:19, 29.1 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:32:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Loading checkpoint shards: 100%|██████████| 4/4 [00:05<00:00, 1.38s/it]29.1 steps/min]\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:32:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:32:53,100 - agent.ComputerAgent - INFO - Computer: type({'text': '\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08LARS Resources (Backup)'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': '\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08LARS Resources (Backup)'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:32:54,407 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+l'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+l'})\n", - " 26%|██████████------------------------------| 1939/7340 [66:36<185:31, 29.1 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:32:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:32:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:32:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:32:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:32:55,743 - agent.ComputerAgent - INFO - Computer: click({'x': 1009, 'y': 101})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 1009, 'y': 101})\n", - "2025-08-11 16:32:56,380 - agent.ComputerAgent - INFO - Computer: click({'x': 46, 'y': 527})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 46, 'y': 527})\n", - "2025-08-11 16:32:57,051 - agent.ComputerAgent - INFO - Computer: click({'x': 72, 'y': 244})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 72, 'y': 244})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:32:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:32:58,377 - agent.ComputerAgent - INFO - Computer: screenshot({})\n", - "INFO:agent.ComputerAgent:Computer: screenshot({})\n", - "2025-08-11 16:32:59,058 - agent.ComputerAgent - INFO - LLM processing started with 42 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 42 messages\n", - "\u001b[92m16:32:59 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:32:59,707 - agent.ComputerAgent - INFO - Computer: click({'x': 693, 'y': 698})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 693, 'y': 698})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:32:59 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:33:00 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:33:01 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 26%|██████████------------------------------| 1940/7340 [66:43<185:43, 29.1 steps/min]\u001b[92m16:33:01 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:33:02,296 - agent.ComputerAgent - INFO - Computer: click({'x': 70, 'y': 77})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 70, 'y': 77})\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 26%|██████████------------------------------| 1945/7340 [66:44<185:07, 29.1 steps/min]\u001b[92m16:33:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:33:03,527 - agent.ComputerAgent - INFO - Computer: click({'x': 635, 'y': 468})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 635, 'y': 468})\n", - "\u001b[92m16:33:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:33:04,208 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': -628, 'scroll_x': 0, 'x': 526, 'y': 463})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': -628, 'scroll_x': 0, 'x': 526, 'y': 463})\n", - "\u001b[92m16:33:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/4adb2bbf-d6e6-4d15-9e9a-c199cf02d5d6/invoke \"HTTP/1.1 200 OK\"\n", - " 27%|██████████------------------------------| 1946/7340 [66:45<185:03, 29.1 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "No screenshot found, taking screenshot\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-08-11 16:33:04,854 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m16:33:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:33:05,505 - agent.ComputerAgent - INFO - Computer: click({'x': 969, 'y': 169})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 969, 'y': 169})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:33:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 27%|██████████------------------------------| 1948/7340 [66:47<184:53, 29.2 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:33:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:33:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:33:07,437 - agent.ComputerAgent - INFO - Computer: click({'x': 87, 'y': 181})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 87, 'y': 181})\n", - "\u001b[92m16:33:07 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3980166d-0a7d-4a58-a915-07dbe8b607bb/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f83df7e3-6ab0-404e-9745-09768e42b6fb/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6d8a38cc-c8f6-484c-9a6d-e6c404b2c7f9/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/4813e5e3-be12-40e2-9cc0-d5be0ad320cf/invoke \"HTTP/1.1 200 OK\"\n", - " 27%|██████████------------------------------| 1949/7340 [66:49<184:49, 29.2 steps/min]2025-08-11 16:33:08,125 - agent.ComputerAgent - INFO - Computer: click({'x': 76, 'y': 321})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 76, 'y': 321})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a3ea8855-19d9-4e10-8208-fd9e060997e3/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:33:08,772 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m16:33:08 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:33:09,435 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m16:33:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:33:10,071 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m16:33:10 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 27%|██████████------------------------------| 1950/7340 [66:51<184:49, 29.2 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:33:11,418 - agent.ComputerAgent - INFO - Computer: type({'text': 'orig=$(find . -path ./fails -prune -o -type f -name \"*failed.ipynb\" -print | wc -l); copied=$(find ./fails -type f -name \"*failed.ipynb\" -print | wc -l); echo \"orig=$orig copied=$copied\"'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'orig=$(find . -path ./fails -prune -o -type f -name \"*failed.ipynb\" -print | wc -l); copied=$(find ./fails -type f -name \"*failed.ipynb\" -print | wc -l); echo \"orig=$orig copied=$copied\"'})\n", - "2025-08-11 16:33:12,446 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m16:33:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ea9e43cc-3d54-4c89-bb53-a189a3ae9a25/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d0000302-258b-4660-9baa-e149c2ad83fd/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b2ca79e3-4425-4cd4-a9dd-42e2431eb008/invoke \"HTTP/1.1 200 OK\"\n", - " 27%|██████████------------------------------| 1951/7340 [66:54<184:48, 29.2 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:33:14,195 - agent.ComputerAgent - INFO - Computer: type({'text': 'sudo apt-get update -y && sudo apt-get install -y steghide binwalk exiftool ffmpeg\\n'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'sudo apt-get update -y && sudo apt-get install -y steghide binwalk exiftool ffmpeg\\n'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e7117b51-399c-45d8-88a1-c54a00b2bc38/invoke \"HTTP/1.1 200 OK\"\n", - " 27%|██████████------------------------------| 1952/7340 [66:55<184:44, 29.2 steps/min]2025-08-11 16:33:14,816 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m16:33:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:33:15,505 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m16:33:15 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:33:16,172 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m16:33:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/6b741091-faa0-4d97-9592-0dc410b6cc53/reset \"HTTP/1.1 200 OK\"\n", - " 27%|██████████------------------------------| 1953/7340 [66:57<184:42, 29.2 steps/min]2025-08-11 16:33:16,865 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m16:33:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 27%|██████████------------------------------| 1953/7340 [66:58<184:45, 29.2 steps/min]2025-08-11 16:33:17,496 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m16:33:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 27%|██████████------------------------------| 1953/7340 [67:01<184:53, 29.1 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6b741091-faa0-4d97-9592-0dc410b6cc53/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:33:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/81398d20-3c85-489b-9abc-2af244ec1feb/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7a0a74ba-160b-41ee-a6d2-6dc61c143d94/invoke \"HTTP/1.1 200 OK\"\n", - " 27%|██████████------------------------------| 1953/7340 [67:03<184:58, 29.1 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:33:22,384 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m16:33:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:33:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/8956c64b-871b-43e2-84de-047c8ce2a839/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:33:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:33:23,684 - agent.ComputerAgent - INFO - Computer: click({'x': 237, 'y': 95})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 237, 'y': 95})\n", - " 27%|██████████------------------------------| 1953/7340 [67:05<185:03, 29.1 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:33:24,329 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m16:33:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/488d7653-4f2d-4576-85c7-d87dc7a875ef/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:33:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:33:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:33:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:33:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:33:27,033 - agent.ComputerAgent - INFO - Computer: click({'x': 592, 'y': 568})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 592, 'y': 568})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m16:33:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 27%|██████████------------------------------| 1954/7340 [67:09<185:06, 29.1 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:33:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:33:28,365 - agent.ComputerAgent - INFO - Computer: click({'x': 664, 'y': 213})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 664, 'y': 213})\n", - "\u001b[92m16:33:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:33:29,040 - agent.ComputerAgent - INFO - Computer: click({'x': 489, 'y': 427})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 489, 'y': 427})\n", - "\u001b[92m16:33:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:33:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 27%|██████████------------------------------| 1955/7340 [67:10<185:02, 29.1 steps/min]2025-08-11 16:33:29,694 - agent.ComputerAgent - INFO - Computer: click({'x': 83, 'y': 139})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 83, 'y': 139})\n", - "2025-08-11 16:33:30,372 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': -658, 'scroll_x': 0, 'x': 526, 'y': 432})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': -658, 'scroll_x': 0, 'x': 526, 'y': 432})\n", - " 27%|██████████------------------------------| 1957/7340 [67:12<184:50, 29.1 steps/min]2025-08-11 16:33:31,077 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m16:33:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:33:31,780 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m16:33:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:33:33,106 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+a'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+a'})\n", - " 27%|██████████------------------------------| 1959/7340 [67:14<184:42, 29.1 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:33:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:33:34,429 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m16:33:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 27%|██████████------------------------------| 1959/7340 [67:16<184:46, 29.1 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:33:35,086 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m16:33:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:33:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6d8a38cc-c8f6-484c-9a6d-e6c404b2c7f9/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f83df7e3-6ab0-404e-9745-09768e42b6fb/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/4adb2bbf-d6e6-4d15-9e9a-c199cf02d5d6/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:33:35,779 - agent.ComputerAgent - INFO - Computer: click({'x': 86, 'y': 73})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 86, 'y': 73})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/4813e5e3-be12-40e2-9cc0-d5be0ad320cf/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/485267e4-f348-45f0-a08d-1d1f28a01f1d/invoke \"HTTP/1.1 200 OK\"\n", - " 27%|██████████------------------------------| 1959/7340 [67:17<184:50, 29.1 steps/min]2025-08-11 16:33:36,470 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m16:33:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:33:37,105 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m16:33:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 27%|██████████------------------------------| 1960/7340 [67:19<184:48, 29.1 steps/min]\u001b[92m16:33:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:33:38,439 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m16:33:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:33:39,107 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m16:33:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 27%|██████████------------------------------| 1960/7340 [67:20<184:51, 29.1 steps/min]\u001b[92m16:33:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:33:39,749 - agent.ComputerAgent - INFO - Computer: click({'x': 715, 'y': 627})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 715, 'y': 627})\n", - " 27%|██████████------------------------------| 1960/7340 [67:21<184:54, 29.1 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/485267e4-f348-45f0-a08d-1d1f28a01f1d/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e7117b51-399c-45d8-88a1-c54a00b2bc38/invoke \"HTTP/1.1 200 OK\"\n", - " 27%|██████████------------------------------| 1962/7340 [67:22<184:41, 29.1 steps/min]2025-08-11 16:33:41,945 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m16:33:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/485267e4-f348-45f0-a08d-1d1f28a01f1d/close \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 27%|██████████------------------------------| 1962/7340 [67:24<184:45, 29.1 steps/min]INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - " 27%|██████████------------------------------| 1962/7340 [67:25<184:48, 29.1 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:33:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ea9e43cc-3d54-4c89-bb53-a189a3ae9a25/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:accelerate.utils.modeling:We will use 90% of the memory on device 0 for storing the model, and 10% for the buffer to avoid OOM. You can set `max_memory` in to a higher value to use more memory (at your own risk).\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00\\n2
\\n3
'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': '1
\\n2
\\n3
'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/2c254802-788e-4b4b-98dc-68cd2c6bcce4/invoke \"HTTP/1.1 200 OK\"\n", - " 30%|███████████-----------------------------| 2167/7340 [73:25<175:17, 29.5 steps/min]2025-08-11 16:39:45,389 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m16:39:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 30%|███████████-----------------------------| 2168/7340 [73:27<175:13, 29.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/8956c64b-871b-43e2-84de-047c8ce2a839/invoke \"HTTP/1.1 200 OK\"\n", - " 30%|███████████-----------------------------| 2168/7340 [73:28<175:16, 29.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:39:48,220 - agent.ComputerAgent - INFO - Computer: type({'text': 'Manchester, GB'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'Manchester, GB'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/8956c64b-871b-43e2-84de-047c8ce2a839/close \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 30%|███████████-----------------------------| 2168/7340 [73:30<175:22, 29.5 steps/min]\u001b[92m16:39:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 30%|███████████-----------------------------| 2169/7340 [73:31<175:17, 29.5 steps/min]\u001b[92m16:39:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:39:50,735 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 16:39:50,735 - agent.ComputerAgent - INFO - Computer: click({'x': 256, 'y': 173})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 256, 'y': 173})\n", - "INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/71840850-9565-4ed2-8fa2-e4f2ba6ec6a9/invoke \"HTTP/1.1 200 OK\"\n", - " 30%|███████████-----------------------------| 2169/7340 [73:32<175:20, 29.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:39:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:accelerate.utils.modeling:We will use 90% of the memory on device 0 for storing the model, and 10% for the buffer to avoid OOM. You can set `max_memory` in to a higher value to use more memory (at your own risk).\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00> ~/.vimrc && echo Done\\''})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'bash -lc \\'printf \"\\\\n\\\\\" Enable absolute line numbers by default\\\\nset number\\\\n\" >> ~/.vimrc && echo Done\\''})\n", - " 31%|████████████----------------------------| 2276/7340 [77:50<173:11, 29.2 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0803e2c2-9de2-40ff-93da-cb49f156cbba/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/029e3386-8f59-44a0-9dba-b14a4d9825ef/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7e0b0038-3a97-4d93-8c5c-154cc0b95af9/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6195bb79-4eff-4d3b-8b67-f28a4e6a73fa/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/74442f45-62aa-40d1-9499-ea3e8e0a4c18/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:44:10,219 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m16:44:10 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a8ddfa4f-6f9b-4ad8-b763-1881394c9926/invoke \"HTTP/1.1 200 OK\"\n", - " 31%|████████████----------------------------| 2277/7340 [77:52<173:08, 29.2 steps/min]2025-08-11 16:44:10,891 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m16:44:10 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:44:11,562 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m16:44:11 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 31%|████████████----------------------------| 2277/7340 [77:53<173:11, 29.2 steps/min]2025-08-11 16:44:12,212 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m16:44:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:44:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:44:14,267 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+a'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+a'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/475030e1-7ae3-4ced-91fb-2221d956a2ad/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "\u001b[92m16:44:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:44:16,173 - agent.ComputerAgent - INFO - Agent: The heading is now center-aligned and the document has been saved. Task completed.\n", - "INFO:agent.ComputerAgent:Agent: The heading is now center-aligned and the document has been saved. Task completed.\n", - "2025-08-11 16:44:16,851 - agent.ComputerAgent - INFO - Total usage:\n", - " - completion_tokens: 218\n", - " - prompt_tokens: 4658\n", - " - total_tokens: 4876\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 192\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0080\n", - "INFO:agent.ComputerAgent:Total usage:\n", - " - completion_tokens: 218\n", - " - prompt_tokens: 4658\n", - " - total_tokens: 4876\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 192\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0080\n", - " 31%|████████████----------------------------| 2279/7340 [77:58<173:09, 29.2 steps/min]2025-08-11 16:44:17,521 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m16:44:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:44:18,174 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m16:44:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:44:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m16:44:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:44:19,530 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m16:44:19 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 31%|████████████----------------------------| 2279/7340 [78:01<173:17, 29.2 steps/min]\u001b[92m16:44:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:44:20,843 - agent.ComputerAgent - INFO - Computer: click({'x': 1008, 'y': 193})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 1008, 'y': 193})\n", - "\u001b[92m16:44:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m16:44:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:44:22,141 - agent.ComputerAgent - INFO - Computer: click({'x': 776, 'y': 643})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 776, 'y': 643})\n", - "2025-08-11 16:44:22,791 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - " 31%|████████████----------------------------| 2279/7340 [78:04<173:22, 29.2 steps/min]\u001b[92m16:44:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:44:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:44:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:44:23,485 - agent.ComputerAgent - INFO - Computer: click({'x': 977, 'y': 16})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 977, 'y': 16})\n", - "2025-08-11 16:44:24,132 - agent.ComputerAgent - INFO - Computer: click({'x': 111, 'y': 162})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 111, 'y': 162})\n", - "\u001b[92m16:44:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 31%|████████████----------------------------| 2281/7340 [78:05<173:12, 29.2 steps/min]2025-08-11 16:44:24,809 - agent.ComputerAgent - INFO - Computer: click({'x': 625, 'y': 248})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 625, 'y': 248})\n", - " 31%|████████████----------------------------| 2283/7340 [78:06<173:01, 29.2 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ed3b76a0-7eeb-473c-8da1-310545515f47/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:44:26,462 - agent.ComputerAgent - INFO - LLM processing started with 39 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 39 messages\n", - "\u001b[92m16:44:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/5180ec6f-26a5-4ab4-8ca3-87f128083da1/invoke \"HTTP/1.1 200 OK\"\n", - " 31%|████████████----------------------------| 2284/7340 [78:08<172:58, 29.2 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:44:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:44:28,788 - agent.ComputerAgent - INFO - Computer: type({'text': 'none.png'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'none.png'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:44:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 31%|████████████----------------------------| 2284/7340 [78:11<173:06, 29.2 steps/min]\u001b[92m16:44:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:44:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:44:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:44:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ea9e43cc-3d54-4c89-bb53-a189a3ae9a25/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ff8b808f-c3a6-4979-8f9a-c6a25905116c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a46ee6f6-d167-47c4-ad83-e16b88450253/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a39ee9df-d3ba-456a-95cf-3a11a826583b/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:44:32,685 - agent.ComputerAgent - INFO - Computer: type({'text': 'pkill -f soffice.bin\\n'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'pkill -f soffice.bin\\n'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3e4ea7d7-21a2-4b07-abd4-a3e280e44e0b/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:44:33,322 - agent.ComputerAgent - INFO - Computer: click({'x': 982, 'y': 632})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 982, 'y': 632})\n", - "\u001b[92m16:44:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:44:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:44:34,677 - agent.ComputerAgent - INFO - Agent: All .jpg files from the photos directory (recursively) have been copied into cpjpg on the Desktop. Verified: 4 .jpg files found and 4 copied.\n", - "\n", - "Task completed\n", - "INFO:agent.ComputerAgent:Agent: All .jpg files from the photos directory (recursively) have been copied into cpjpg on the Desktop. Verified: 4 .jpg files found and 4 copied.\n", - "\n", - "Task completed\n", - "2025-08-11 16:44:35,306 - agent.ComputerAgent - INFO - Total usage:\n", - " - completion_tokens: 494\n", - " - prompt_tokens: 8268\n", - " - total_tokens: 8762\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 448\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0153\n", - "INFO:agent.ComputerAgent:Total usage:\n", - " - completion_tokens: 494\n", - " - prompt_tokens: 8268\n", - " - total_tokens: 8762\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 448\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0153\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:44:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 31%|████████████----------------------------| 2287/7340 [78:17<172:59, 29.2 steps/min]2025-08-11 16:44:36,616 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': 666, 'scroll_x': 0, 'x': 336, 'y': 152})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': 666, 'scroll_x': 0, 'x': 336, 'y': 152})\n", - "2025-08-11 16:44:37,280 - agent.ComputerAgent - INFO - Computer: click({'x': 520, 'y': 437})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 520, 'y': 437})\n", - "\u001b[92m16:44:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:44:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:44:37,941 - agent.ComputerAgent - INFO - LLM processing started with 42 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 42 messages\n", - "\u001b[92m16:44:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:44:38,620 - agent.ComputerAgent - INFO - Computer: click({'x': 514, 'y': 304})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 514, 'y': 304})\n", - "2025-08-11 16:44:39,286 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': -200, 'scroll_x': 0, 'x': 589, 'y': 128})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': -200, 'scroll_x': 0, 'x': 589, 'y': 128})\n", - " 31%|████████████----------------------------| 2289/7340 [78:21<172:53, 29.2 steps/min]\u001b[92m16:44:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:44:39,956 - agent.ComputerAgent - INFO - Computer: click({'x': 351, 'y': 153})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 351, 'y': 153})\n", - "2025-08-11 16:44:40,591 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m16:44:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:44:41,646 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m16:44:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 31%|████████████----------------------------| 2293/7340 [78:23<172:32, 29.3 steps/min]2025-08-11 16:44:42,285 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m16:44:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:44:42,973 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m16:44:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:44:44,693 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'enter'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'enter'})\n", - " 31%|████████████----------------------------| 2294/7340 [78:26<172:32, 29.2 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ed3b76a0-7eeb-473c-8da1-310545515f47/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fd628f34-1346-4947-bfa4-cf698adb3472/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:44:45,371 - agent.ComputerAgent - INFO - LLM processing started with 41 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 41 messages\n", - "\u001b[92m16:44:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/5180ec6f-26a5-4ab4-8ca3-87f128083da1/invoke \"HTTP/1.1 200 OK\"\n", - " 31%|████████████----------------------------| 2311/7340 [78:27<170:43, 29.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/5180ec6f-26a5-4ab4-8ca3-87f128083da1/close \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6195bb79-4eff-4d3b-8b67-f28a4e6a73fa/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fd628f34-1346-4947-bfa4-cf698adb3472/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/2c254802-788e-4b4b-98dc-68cd2c6bcce4/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/74442f45-62aa-40d1-9499-ea3e8e0a4c18/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d4054e85-5304-43a3-b6d7-128e302780cb/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7e0b0038-3a97-4d93-8c5c-154cc0b95af9/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0803e2c2-9de2-40ff-93da-cb49f156cbba/invoke \"HTTP/1.1 200 OK\"\n", - " 31%|████████████----------------------------| 2311/7340 [78:30<170:49, 29.4 steps/min]2025-08-11 16:44:49,145 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m16:44:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:44:49,827 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m16:44:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:44:50,495 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m16:44:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fd628f34-1346-4947-bfa4-cf698adb3472/close \"HTTP/1.1 200 OK\"\n", - " 32%|████████████----------------------------| 2321/7340 [78:32<169:49, 29.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/029e3386-8f59-44a0-9dba-b14a4d9825ef/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a8ddfa4f-6f9b-4ad8-b763-1881394c9926/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/475030e1-7ae3-4ced-91fb-2221d956a2ad/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - " 32%|████████████----------------------------| 2322/7340 [78:33<169:45, 29.6 steps/min]2025-08-11 16:44:53,297 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m16:44:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:44:53,963 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m16:44:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:44:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 32%|████████████----------------------------| 2322/7340 [78:36<169:52, 29.5 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:44:55,334 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m16:44:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:accelerate.utils.modeling:We will use 90% of the memory on device 0 for storing the model, and 10% for the buffer to avoid OOM. You can set `max_memory` in to a higher value to use more memory (at your own risk).\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00 ~/vim_test.txt && vim ~/vim_test.txt\\''})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'bash -lc \\'printf \"line a\\\\nline b\\\\nline c\\\\n\" > ~/vim_test.txt && vim ~/vim_test.txt\\''})\n", - " 33%|█████████████---------------------------| 2397/7340 [80:43<166:27, 29.7 steps/min]\u001b[92m16:47:01 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:47:02,258 - agent.ComputerAgent - INFO - Computer: click({'x': 855, 'y': 476})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 855, 'y': 476})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:47:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 33%|█████████████---------------------------| 2399/7340 [80:44<166:18, 29.7 steps/min]\u001b[92m16:47:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:47:03,544 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': 604, 'scroll_x': 0, 'x': 307, 'y': 666})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': 604, 'scroll_x': 0, 'x': 307, 'y': 666})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:47:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 33%|█████████████---------------------------| 2401/7340 [80:46<166:09, 29.7 steps/min]\u001b[92m16:47:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:47:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:47:05,490 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 16:47:05,491 - agent.ComputerAgent - INFO - Computer: click({'button': 'left', 'x': 465, 'y': 294})\n", - "INFO:agent.ComputerAgent:Computer: click({'button': 'left', 'x': 465, 'y': 294})\n", - " 33%|█████████████---------------------------| 2402/7340 [80:47<166:05, 29.7 steps/min]\u001b[92m16:47:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:47:06,659 - agent.ComputerAgent - INFO - Computer: click({'x': 637, 'y': 471})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 637, 'y': 471})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3e4ea7d7-21a2-4b07-abd4-a3e280e44e0b/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:47:07,327 - agent.ComputerAgent - INFO - LLM processing started with 31 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 31 messages\n", - "\u001b[92m16:47:07 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 33%|█████████████---------------------------| 2403/7340 [80:49<166:02, 29.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:47:07 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:47:08,385 - agent.ComputerAgent - INFO - Computer: click({'x': 111, 'y': 270})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 111, 'y': 270})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6195bb79-4eff-4d3b-8b67-f28a4e6a73fa/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/475030e1-7ae3-4ced-91fb-2221d956a2ad/invoke \"HTTP/1.1 200 OK\"\n", - " 33%|█████████████---------------------------| 2404/7340 [80:50<165:58, 29.7 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:47:09,003 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m16:47:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6fcb07bb-6857-4888-82a0-1fd0dbf2d722/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:47:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:47:09,698 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': 530, 'scroll_x': 0, 'x': 574, 'y': 736})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': 530, 'scroll_x': 0, 'x': 574, 'y': 736})\n", - "2025-08-11 16:47:10,366 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m16:47:10 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - " 33%|█████████████---------------------------| 2406/7340 [80:52<165:50, 29.8 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:47:10 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:47:11,392 - agent.ComputerAgent - INFO - Computer: click({'x': 1008, 'y': 164})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 1008, 'y': 164})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d4054e85-5304-43a3-b6d7-128e302780cb/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/81b23870-39ed-4649-9729-1d4809f713ec/invoke \"HTTP/1.1 200 OK\"\n", - " 33%|█████████████---------------------------| 2407/7340 [80:53<165:46, 29.8 steps/min]2025-08-11 16:47:12,011 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m16:47:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:47:12,685 - agent.ComputerAgent - INFO - LLM processing started with 42 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 42 messages\n", - "\u001b[92m16:47:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3e4ea7d7-21a2-4b07-abd4-a3e280e44e0b/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:47:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 33%|█████████████---------------------------| 2408/7340 [80:55<165:44, 29.8 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:47:14,028 - agent.ComputerAgent - INFO - LLM processing started with 33 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 33 messages\n", - "\u001b[92m16:47:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7e0b0038-3a97-4d93-8c5c-154cc0b95af9/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1473c3f2-39e1-4aff-8d55-0e23dc25a055/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:47:14,693 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m16:47:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 33%|█████████████---------------------------| 2408/7340 [80:57<165:48, 29.7 steps/min]\u001b[92m16:47:15 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:47:15 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a46ee6f6-d167-47c4-ad83-e16b88450253/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:47:16,409 - agent.ComputerAgent - INFO - Computer: click({'x': 237, 'y': 75})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 237, 'y': 75})\n", - "2025-08-11 16:47:17,070 - agent.ComputerAgent - INFO - LLM processing started with 40 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 40 messages\n", - "\u001b[92m16:47:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:47:18,388 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+a'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+a'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "\u001b[92m16:47:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/029e3386-8f59-44a0-9dba-b14a4d9825ef/invoke \"HTTP/1.1 200 OK\"\n", - " 33%|█████████████---------------------------| 2409/7340 [81:00<165:48, 29.7 steps/min]2025-08-11 16:47:19,055 - agent.ComputerAgent - INFO - Computer: click({'x': 458, 'y': 275})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 458, 'y': 275})\n", - "2025-08-11 16:47:19,739 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m16:47:19 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 33%|█████████████---------------------------| 2410/7340 [81:01<165:44, 29.7 steps/min]2025-08-11 16:47:20,387 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m16:47:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:47:21,068 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m16:47:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 33%|█████████████---------------------------| 2411/7340 [81:02<165:41, 29.7 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:47:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ff8b808f-c3a6-4979-8f9a-c6a25905116c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3e4ea7d7-21a2-4b07-abd4-a3e280e44e0b/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:47:22,362 - agent.ComputerAgent - INFO - LLM processing started with 35 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 35 messages\n", - "\u001b[92m16:47:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:47:23,717 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'enter'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'enter'})\n", - " 33%|█████████████---------------------------| 2411/7340 [81:05<165:46, 29.7 steps/min]\u001b[92m16:47:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:47:24,730 - agent.ComputerAgent - INFO - Computer: double_click({'x': 331, 'y': 111})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 331, 'y': 111})\n", - " 33%|█████████████---------------------------| 2412/7340 [81:06<165:42, 29.7 steps/min]2025-08-11 16:47:25,410 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m16:47:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/e2ffab0a-c998-4bbf-906b-d3aad0586220/reset \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/2c254802-788e-4b4b-98dc-68cd2c6bcce4/invoke \"HTTP/1.1 200 OK\"\n", - " 33%|█████████████---------------------------| 2413/7340 [81:07<165:38, 29.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0803e2c2-9de2-40ff-93da-cb49f156cbba/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:47:26,610 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m16:47:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:47:27,269 - agent.ComputerAgent - INFO - LLM processing started with 40 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 40 messages\n", - "\u001b[92m16:47:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 33%|█████████████---------------------------| 2413/7340 [81:09<165:43, 29.7 steps/min]\u001b[92m16:47:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e2ffab0a-c998-4bbf-906b-d3aad0586220/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "\u001b[92m16:47:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:47:29,307 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m16:47:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 33%|█████████████---------------------------| 2414/7340 [81:11<165:39, 29.7 steps/min]\u001b[92m16:47:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:47:30,494 - agent.ComputerAgent - INFO - Computer: click({'x': 946, 'y': 738})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 946, 'y': 738})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/475030e1-7ae3-4ced-91fb-2221d956a2ad/invoke \"HTTP/1.1 200 OK\"\n", - " 33%|█████████████---------------------------| 2414/7340 [81:12<165:42, 29.7 steps/min]2025-08-11 16:47:31,166 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m16:47:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3e4ea7d7-21a2-4b07-abd4-a3e280e44e0b/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:47:31,814 - agent.ComputerAgent - INFO - LLM processing started with 37 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 37 messages\n", - "\u001b[92m16:47:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:47:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6fcb07bb-6857-4888-82a0-1fd0dbf2d722/invoke \"HTTP/1.1 200 OK\"\n", - " 33%|█████████████---------------------------| 2415/7340 [81:13<165:39, 29.7 steps/min]2025-08-11 16:47:32,487 - agent.ComputerAgent - INFO - Computer: click({'x': 351, 'y': 294})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 351, 'y': 294})\n", - "2025-08-11 16:47:33,177 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m16:47:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 33%|█████████████---------------------------| 2415/7340 [81:14<165:41, 29.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 33%|█████████████---------------------------| 2416/7340 [81:15<165:37, 29.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - " 33%|█████████████---------------------------| 2416/7340 [81:16<165:39, 29.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e5b48f23-7687-494c-b68c-ebdfc70d085f/invoke \"HTTP/1.1 200 OK\"\n", - " 33%|█████████████---------------------------| 2416/7340 [81:17<165:41, 29.7 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:47:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 33%|█████████████---------------------------| 2417/7340 [81:19<165:37, 29.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3e4ea7d7-21a2-4b07-abd4-a3e280e44e0b/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:47:38,035 - agent.ComputerAgent - INFO - LLM processing started with 39 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 39 messages\n", - "\u001b[92m16:47:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6195bb79-4eff-4d3b-8b67-f28a4e6a73fa/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/e5b48f23-7687-494c-b68c-ebdfc70d085f/reset \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/c3518cd0-0df6-44e9-8393-0c62002bc984/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/81b23870-39ed-4649-9729-1d4809f713ec/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:47:38,680 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m16:47:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 33%|█████████████---------------------------| 2417/7340 [81:20<165:40, 29.7 steps/min]2025-08-11 16:47:39,336 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m16:47:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:47:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:47:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:47:41,078 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 16:47:41,079 - agent.ComputerAgent - INFO - Computer: click({'x': 92, 'y': 359})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 92, 'y': 359})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 33%|█████████████---------------------------| 2417/7340 [81:23<165:46, 29.7 steps/min]\u001b[92m16:47:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 33%|█████████████---------------------------| 2418/7340 [81:24<165:42, 29.7 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m16:47:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:47:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:47:44,087 - agent.ComputerAgent - INFO - Computer: click({'x': 982, 'y': 760})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 982, 'y': 760})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e5b48f23-7687-494c-b68c-ebdfc70d085f/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - " 33%|█████████████---------------------------| 2419/7340 [81:25<165:39, 29.7 steps/min]2025-08-11 16:47:44,730 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m16:47:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:47:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:47:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:47:46,038 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': 654, 'scroll_x': 0, 'x': 283, 'y': 664})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': 654, 'scroll_x': 0, 'x': 283, 'y': 664})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 33%|█████████████---------------------------| 2420/7340 [81:28<165:38, 29.7 steps/min]\u001b[92m16:47:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:47:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e2ffab0a-c998-4bbf-906b-d3aad0586220/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:47:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:47:47,983 - agent.ComputerAgent - INFO - Computer: click({'x': 585, 'y': 355})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 585, 'y': 355})\n", - "\u001b[92m16:47:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 33%|█████████████---------------------------| 2421/7340 [81:29<165:34, 29.7 steps/min]2025-08-11 16:47:48,672 - agent.ComputerAgent - INFO - Computer: click({'x': 962, 'y': 234})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 962, 'y': 234})\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:47:49,341 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m16:47:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:47:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 33%|█████████████---------------------------| 2422/7340 [81:31<165:31, 29.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:47:50,011 - agent.ComputerAgent - INFO - Computer: click({'x': 392, 'y': 275})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 392, 'y': 275})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:47:51,361 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 16:47:51,362 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'super'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'super'})\n", - " 33%|█████████████---------------------------| 2423/7340 [81:33<165:29, 29.7 steps/min]\u001b[92m16:47:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3e4ea7d7-21a2-4b07-abd4-a3e280e44e0b/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:47:52,058 - agent.ComputerAgent - INFO - LLM processing started with 41 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 41 messages\n", - "\u001b[92m16:47:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:47:52,742 - agent.ComputerAgent - INFO - Computer: click({'x': 196, 'y': 237})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 196, 'y': 237})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:47:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 33%|█████████████---------------------------| 2425/7340 [81:35<165:21, 29.7 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:47:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 33%|█████████████---------------------------| 2426/7340 [81:36<165:17, 29.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7e0b0038-3a97-4d93-8c5c-154cc0b95af9/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/029e3386-8f59-44a0-9dba-b14a4d9825ef/invoke \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:47:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:47:55,312 - agent.ComputerAgent - INFO - Computer: click({'x': 351, 'y': 294})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 351, 'y': 294})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a39ee9df-d3ba-456a-95cf-3a11a826583b/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "2025-08-11 16:47:55,965 - agent.ComputerAgent - INFO - LLM processing started with 42 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 42 messages\n", - "\u001b[92m16:47:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:47:57,620 - agent.ComputerAgent - INFO - Computer: wait({})\n", - "INFO:agent.ComputerAgent:Computer: wait({})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d4054e85-5304-43a3-b6d7-128e302780cb/invoke \"HTTP/1.1 200 OK\"\n", - " 33%|█████████████---------------------------| 2427/7340 [81:39<165:17, 29.7 steps/min]\u001b[92m16:47:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:47:58,279 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m16:47:58 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:47:58,928 - agent.ComputerAgent - INFO - Computer: click({'x': 316, 'y': 101})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 316, 'y': 101})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0803e2c2-9de2-40ff-93da-cb49f156cbba/invoke \"HTTP/1.1 200 OK\"\n", - " 33%|█████████████---------------------------| 2429/7340 [81:40<165:08, 29.7 steps/min]2025-08-11 16:47:59,585 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m16:47:59 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:48:00,942 - agent.ComputerAgent - INFO - Computer: type({'text': ':q'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': ':q'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:48:01 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:48:02,299 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m16:48:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6fcb07bb-6857-4888-82a0-1fd0dbf2d722/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e5b48f23-7687-494c-b68c-ebdfc70d085f/invoke \"HTTP/1.1 200 OK\"\n", - " 33%|█████████████---------------------------| 2430/7340 [81:44<165:09, 29.7 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m16:48:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 33%|█████████████---------------------------| 2431/7340 [81:45<165:04, 29.7 steps/min]2025-08-11 16:48:03,692 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m16:48:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3e4ea7d7-21a2-4b07-abd4-a3e280e44e0b/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:48:04,331 - agent.ComputerAgent - INFO - LLM processing started with 43 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 43 messages\n", - "\u001b[92m16:48:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 33%|█████████████---------------------------| 2431/7340 [81:46<165:07, 29.7 steps/min]\u001b[92m16:48:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:48:04,993 - agent.ComputerAgent - INFO - Computer: click({'x': 458, 'y': 422})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 458, 'y': 422})\n", - "2025-08-11 16:48:05,658 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m16:48:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d4054e85-5304-43a3-b6d7-128e302780cb/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:48:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 33%|█████████████---------------------------| 2431/7340 [81:47<165:09, 29.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:48:07,064 - agent.ComputerAgent - INFO - Computer: click({'x': 474, 'y': 332})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 474, 'y': 332})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/81b23870-39ed-4649-9729-1d4809f713ec/invoke \"HTTP/1.1 200 OK\"\n", - " 33%|█████████████---------------------------| 2436/7340 [81:48<164:42, 29.8 steps/min]2025-08-11 16:48:07,712 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m16:48:07 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/475030e1-7ae3-4ced-91fb-2221d956a2ad/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:48:08,382 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m16:48:08 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a46ee6f6-d167-47c4-ad83-e16b88450253/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d4054e85-5304-43a3-b6d7-128e302780cb/close \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - " 33%|█████████████---------------------------| 2438/7340 [81:50<164:32, 29.8 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6195bb79-4eff-4d3b-8b67-f28a4e6a73fa/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:48:09,668 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m16:48:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - " 33%|█████████████---------------------------| 2438/7340 [81:51<164:35, 29.8 steps/min]2025-08-11 16:48:10,320 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m16:48:10 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3e4ea7d7-21a2-4b07-abd4-a3e280e44e0b/invoke \"HTTP/1.1 200 OK\"\n", - " 33%|█████████████---------------------------| 2438/7340 [81:52<164:37, 29.8 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/1473c3f2-39e1-4aff-8d55-0e23dc25a055/reset \"HTTP/1.1 200 OK\"\n", - " 33%|█████████████---------------------------| 2438/7340 [81:53<164:39, 29.8 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ff8b808f-c3a6-4979-8f9a-c6a25905116c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e2ffab0a-c998-4bbf-906b-d3aad0586220/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:48:12,541 - agent.ComputerAgent - INFO - LLM processing started with 40 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 40 messages\n", - "\u001b[92m16:48:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:48:13,223 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m16:48:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 33%|█████████████---------------------------| 2438/7340 [81:54<164:42, 29.8 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1473c3f2-39e1-4aff-8d55-0e23dc25a055/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:48:14,391 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m16:48:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 33%|█████████████---------------------------| 2438/7340 [81:56<164:44, 29.8 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3e4ea7d7-21a2-4b07-abd4-a3e280e44e0b/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:48:15 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 33%|█████████████---------------------------| 2440/7340 [81:57<164:35, 29.8 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3e4ea7d7-21a2-4b07-abd4-a3e280e44e0b/close \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 0%| | 0/4 [00:005'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'WEEKDAY(B3;2)>5'})\n", - " 34%|█████████████---------------------------| 2477/7340 [83:44<164:25, 29.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:50:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6195bb79-4eff-4d3b-8b67-f28a4e6a73fa/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/422a20c8-b318-46e4-9f06-d599c9ed261c/reset \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:50:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:50:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 34%|█████████████---------------------------| 2479/7340 [83:46<164:15, 29.6 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:50:05,091 - agent.ComputerAgent - INFO - Computer: click({'x': 351, 'y': 294})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 351, 'y': 294})\n", - "\u001b[92m16:50:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:50:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:50:05,754 - agent.ComputerAgent - INFO - LLM processing started with 40 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 40 messages\n", - "\u001b[92m16:50:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 34%|█████████████---------------------------| 2479/7340 [83:48<164:19, 29.6 steps/min]\u001b[92m16:50:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:50:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:50:07,118 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 471, 'y': 328}, {'x': 351, 'y': 709}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 471, 'y': 328}, {'x': 351, 'y': 709}]})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:50:07 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:50:07 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/422a20c8-b318-46e4-9f06-d599c9ed261c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:50:08,416 - agent.ComputerAgent - INFO - Computer: click({'x': 268, 'y': 188})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 268, 'y': 188})\n", - "2025-08-11 16:50:09,045 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m16:50:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 34%|█████████████---------------------------| 2480/7340 [83:50<164:18, 29.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:50:09,730 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m16:50:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:50:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0803e2c2-9de2-40ff-93da-cb49f156cbba/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:50:10,446 - agent.ComputerAgent - INFO - Computer: double_click({'x': 618, 'y': 483})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 618, 'y': 483})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e5b48f23-7687-494c-b68c-ebdfc70d085f/invoke \"HTTP/1.1 200 OK\"\n", - " 34%|█████████████---------------------------| 2482/7340 [83:52<164:09, 29.6 steps/min]2025-08-11 16:50:11,451 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m16:50:11 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f73836c4-d8e3-425b-a750-f2319c89164e/invoke \"HTTP/1.1 200 OK\"\n", - " 34%|█████████████---------------------------| 2483/7340 [83:53<164:05, 29.6 steps/min]2025-08-11 16:50:12,123 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m16:50:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:50:13,563 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m16:50:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 34%|█████████████---------------------------| 2483/7340 [83:55<164:09, 29.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/514e0362-c0b3-4216-989f-d260ec405efb/reset \"HTTP/1.1 200 OK\"\n", - " 34%|█████████████---------------------------| 2483/7340 [83:56<164:11, 29.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/81b23870-39ed-4649-9729-1d4809f713ec/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:50:15,740 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m16:50:15 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 34%|█████████████---------------------------| 2483/7340 [83:57<164:13, 29.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:50:17,970 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 16:50:17,970 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'win+e'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'win+e'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/514e0362-c0b3-4216-989f-d260ec405efb/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a39ee9df-d3ba-456a-95cf-3a11a826583b/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1473c3f2-39e1-4aff-8d55-0e23dc25a055/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e2ffab0a-c998-4bbf-906b-d3aad0586220/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 34%|█████████████---------------------------| 2483/7340 [84:00<164:19, 29.6 steps/min]\u001b[92m16:50:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:50:19,965 - agent.ComputerAgent - INFO - Computer: type({'text': 'Orchis theme gnome-look'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'Orchis theme gnome-look'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:50:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:50:21,285 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m16:50:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m16:50:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 34%|█████████████---------------------------| 2483/7340 [84:03<164:25, 29.5 steps/min]\u001b[92m16:50:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:50:22,607 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m16:50:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:50:23,283 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': 626, 'scroll_x': 0, 'x': 588, 'y': 446})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': 626, 'scroll_x': 0, 'x': 588, 'y': 446})\n", - "\u001b[92m16:50:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/daac505f-9423-4b29-b11c-9b23c5c9e3ee/reset \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:50:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:50:23,909 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 16:50:23,909 - agent.ComputerAgent - INFO - Computer: double_click({'x': 989, 'y': 713})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 989, 'y': 713})\n", - " 34%|█████████████---------------------------| 2484/7340 [84:05<164:23, 29.5 steps/min]2025-08-11 16:50:24,578 - agent.ComputerAgent - INFO - Computer: click({'x': 412, 'y': 128})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 412, 'y': 128})\n", - "2025-08-11 16:50:25,256 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m16:50:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 34%|█████████████---------------------------| 2486/7340 [84:07<164:14, 29.6 steps/min]2025-08-11 16:50:25,924 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m16:50:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:50:26,594 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m16:50:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 34%|█████████████---------------------------| 2487/7340 [84:09<164:12, 29.6 steps/min]\u001b[92m16:50:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m16:50:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:50:28,422 - agent.ComputerAgent - INFO - Computer: double_click({'x': 960, 'y': 713})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 960, 'y': 713})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:50:29,722 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'win'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'win'})\n", - " 34%|█████████████---------------------------| 2487/7340 [84:11<164:17, 29.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/daac505f-9423-4b29-b11c-9b23c5c9e3ee/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:50:30,365 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m16:50:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fed9747f-6005-4d29-b83e-afc7934c0ff5/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:50:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e5b48f23-7687-494c-b68c-ebdfc70d085f/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 34%|█████████████---------------------------| 2489/7340 [84:13<164:09, 29.6 steps/min]\u001b[92m16:50:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/2b43eb21-4025-495a-8c66-358bfcac034b/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m16:50:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/029e3386-8f59-44a0-9dba-b14a4d9825ef/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:50:33,742 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'esc'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'esc'})\n", - "\u001b[92m16:50:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:50:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 34%|█████████████---------------------------| 2489/7340 [84:16<164:14, 29.5 steps/min]\u001b[92m16:50:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:50:35,048 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m16:50:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:50:35,696 - agent.ComputerAgent - INFO - Computer: move({'x': 887, 'y': 167})\n", - "INFO:agent.ComputerAgent:Computer: move({'x': 887, 'y': 167})\n", - "2025-08-11 16:50:36,379 - agent.ComputerAgent - INFO - Computer: click({'x': 260, 'y': 101})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 260, 'y': 101})\n", - "\u001b[92m16:50:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:50:37,041 - agent.ComputerAgent - INFO - Computer: click({'x': 537, 'y': 304})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 537, 'y': 304})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:50:38,373 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'right'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'right'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f73836c4-d8e3-425b-a750-f2319c89164e/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/422a20c8-b318-46e4-9f06-d599c9ed261c/invoke \"HTTP/1.1 200 OK\"\n", - " 34%|█████████████---------------------------| 2490/7340 [84:20<164:16, 29.5 steps/min]\u001b[92m16:50:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:50:39,696 - agent.ComputerAgent - INFO - Computer: type({'text': 'Mumbai'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'Mumbai'})\n", - "2025-08-11 16:50:40,392 - agent.ComputerAgent - INFO - Computer: click({'x': 746, 'y': 651})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 746, 'y': 651})\n", - " 34%|█████████████---------------------------| 2494/7340 [84:22<163:56, 29.6 steps/min]2025-08-11 16:50:41,039 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m16:50:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a46ee6f6-d167-47c4-ad83-e16b88450253/invoke \"HTTP/1.1 502 Bad Gateway\"\n", - "2025-08-11 16:50:41,701 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m16:50:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:50:42,355 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m16:50:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 34%|█████████████---------------------------| 2496/7340 [84:24<163:47, 29.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:50:43,043 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m16:50:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 34%|█████████████---------------------------| 2496/7340 [84:25<163:49, 29.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:50:45,382 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+home'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+home'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0803e2c2-9de2-40ff-93da-cb49f156cbba/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1473c3f2-39e1-4aff-8d55-0e23dc25a055/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ff8b808f-c3a6-4979-8f9a-c6a25905116c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/81b23870-39ed-4649-9729-1d4809f713ec/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e2ffab0a-c998-4bbf-906b-d3aad0586220/invoke \"HTTP/1.1 200 OK\"\n", - " 34%|█████████████---------------------------| 2496/7340 [84:27<163:53, 29.6 steps/min]2025-08-11 16:50:46,040 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m16:50:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:50:46,708 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m16:50:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:50:47,380 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m16:50:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 34%|█████████████---------------------------| 2496/7340 [84:29<163:57, 29.5 steps/min]2025-08-11 16:50:48,016 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m16:50:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:50:49,339 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 16:50:49,340 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+f'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+f'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a46ee6f6-d167-47c4-ad83-e16b88450253/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6195bb79-4eff-4d3b-8b67-f28a4e6a73fa/invoke \"HTTP/1.1 200 OK\"\n", - " 34%|█████████████---------------------------| 2496/7340 [84:31<164:01, 29.5 steps/min]2025-08-11 16:50:49,998 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m16:50:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:50:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:50:51,356 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m16:50:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:50:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 34%|█████████████---------------------------| 2496/7340 [84:34<164:08, 29.5 steps/min]\u001b[92m16:50:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:50:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m16:50:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:50:54,063 - agent.ComputerAgent - INFO - Computer: click({'button': 'left', 'x': 398, 'y': 89})\n", - "INFO:agent.ComputerAgent:Computer: click({'button': 'left', 'x': 398, 'y': 89})\n", - "\u001b[92m16:50:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:50:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:50:54,739 - agent.ComputerAgent - INFO - Computer: double_click({'x': 960, 'y': 713})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 960, 'y': 713})\n", - " 34%|█████████████---------------------------| 2496/7340 [84:36<164:11, 29.5 steps/min]2025-08-11 16:50:55,391 - agent.ComputerAgent - INFO - Computer: click({'x': 793, 'y': 41})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 793, 'y': 41})\n", - "\u001b[92m16:50:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:50:56,056 - agent.ComputerAgent - INFO - LLM processing started with 42 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 42 messages\n", - "\u001b[92m16:50:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:50:56,694 - agent.ComputerAgent - INFO - Computer: click({'x': 17, 'y': 427})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 17, 'y': 427})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:50:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 34%|█████████████---------------------------| 2498/7340 [84:39<164:06, 29.5 steps/min]\u001b[92m16:50:58 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:50:58,732 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m16:50:58 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:50:58 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:50:59,814 - agent.ComputerAgent - INFO - Computer: click({'x': 318, 'y': 237})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 318, 'y': 237})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:50:59 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:51:00 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:51:02,000 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'right'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'right'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/029e3386-8f59-44a0-9dba-b14a4d9825ef/invoke \"HTTP/1.1 200 OK\"\n", - " 34%|█████████████---------------------------| 2500/7340 [84:43<164:02, 29.5 steps/min]2025-08-11 16:51:02,679 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 16:51:02,680 - agent.ComputerAgent - INFO - Computer: click({'x': 95, 'y': 185})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 95, 'y': 185})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:51:04,082 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+home'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+home'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:51:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:51:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 34%|█████████████---------------------------| 2502/7340 [84:46<163:55, 29.5 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:51:05,471 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m16:51:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m16:51:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m16:51:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 16:51:06,153 - agent.ComputerAgent - INFO - Computer: double_click({'x': 615, 'y': 483})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 615, 'y': 483})\n", - "\u001b[92m16:51:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 34%|█████████████---------------------------| 2503/7340 [84:47<163:52, 29.5 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 16:51:06,824 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 483, 'y': 328}, {'x': 411, 'y': 711}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 483, 'y': 328}, {'x': 411, 'y': 711}]})\n", - " 34%|█████████████---------------------------| 2504/7340 [84:48<163:48, 29.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/029e3386-8f59-44a0-9dba-b14a4d9825ef/close \"HTTP/1.1 200 OK\"\n", - " 34%|█████████████---------------------------| 2505/7340 [84:49<163:44, 29.5 steps/min]INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - " 34%|█████████████---------------------------| 2505/7340 [84:50<163:46, 29.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e5b48f23-7687-494c-b68c-ebdfc70d085f/invoke \"HTTP/1.1 200 OK\"\n", - " 34%|█████████████---------------------------| 2505/7340 [84:51<163:48, 29.5 steps/min]2025-08-11 16:51:11,251 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m16:51:11 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/2b43eb21-4025-495a-8c66-358bfcac034b/invoke \"HTTP/1.1 200 OK\"\n", - " 34%|█████████████---------------------------| 2505/7340 [84:53<163:50, 29.5 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/daac505f-9423-4b29-b11c-9b23c5c9e3ee/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f73836c4-d8e3-425b-a750-f2319c89164e/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/81b23870-39ed-4649-9729-1d4809f713ec/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/422a20c8-b318-46e4-9f06-d599c9ed261c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1473c3f2-39e1-4aff-8d55-0e23dc25a055/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:51:11,946 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m16:51:11 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:51:12,584 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m16:51:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e2ffab0a-c998-4bbf-906b-d3aad0586220/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a39ee9df-d3ba-456a-95cf-3a11a826583b/invoke \"HTTP/1.1 200 OK\"\n", - " 34%|█████████████---------------------------| 2505/7340 [84:54<163:52, 29.5 steps/min]2025-08-11 16:51:13,334 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m16:51:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:51:13,968 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m16:51:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 34%|█████████████---------------------------| 2505/7340 [84:55<163:55, 29.5 steps/min]2025-08-11 16:51:14,650 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m16:51:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:51:15,336 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m16:51:15 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 34%|█████████████---------------------------| 2505/7340 [84:57<163:58, 29.5 steps/min]2025-08-11 16:51:15,998 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m16:51:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 16:51:16,677 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m16:51:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 34%|█████████████---------------------------| 2505/7340 [84:58<164:00, 29.5 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 34%|█████████████---------------------------| 2505/7340 [84:59<164:02, 29.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/c3518cd0-0df6-44e9-8393-0c62002bc984/reset \"HTTP/1.1 200 OK\"\n", - " 34%|█████████████---------------------------| 2505/7340 [85:00<164:04, 29.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:51:19 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 16:51:20,733 - agent.ComputerAgent - INFO - Computer: type({'text': 'Stockholm'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'Stockholm'})\n", - " 34%|█████████████---------------------------| 2505/7340 [85:02<164:08, 29.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m16:51:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00 Slide Pane to toggle it back on.\n", - "- You can resize it by dragging its right edge. If you lose the right-side Properties panel, use View > Sidebar.\n", - "\n", - "Task completed\n", - "INFO:agent.ComputerAgent:Agent: I restored the Slides panel on the left in your LibreOffice Impress.\n", - "\n", - "If it disappears again:\n", - "- Go to the top menu: View > Slide Pane to toggle it back on.\n", - "- You can resize it by dragging its right edge. If you lose the right-side Properties panel, use View > Sidebar.\n", - "\n", - "Task completed\n", - "2025-08-11 17:05:27,005 - agent.ComputerAgent - INFO - Total usage:\n", - " - completion_tokens: 712\n", - " - prompt_tokens: 7355\n", - " - total_tokens: 8067\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 640\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0163\n", - "INFO:agent.ComputerAgent:Total usage:\n", - " - completion_tokens: 712\n", - " - prompt_tokens: 7355\n", - " - total_tokens: 8067\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 640\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0163\n", - " 38%|███████████████-------------------------| 2809/7340 [99:08<159:55, 28.3 steps/min]\u001b[92m17:05:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6f141a0f-f4b0-4f99-b4c4-5217b268c96b/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:05:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/025be48d-d757-4973-8c17-e42b8f6814b0/reset \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d2c8050e-87aa-487a-9555-884be2298ade/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:05:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:05:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:05:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:05:30,349 - agent.ComputerAgent - INFO - Computer: click({'x': 87, 'y': 274})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 87, 'y': 274})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9b6fc8c3-534a-4e7d-9a9b-4c6bad0e0619/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00 Appearance > Mode = Light\n", - "\n", - "This forces Chrome to use a light theme regardless of your device theme.\n", - "\n", - "If any websites still appear dark, it could be due to:\n", - "- A dark-mode extension (e.g., Dark Reader). Disable it under Extensions.\n", - "- The experimental flag “Auto Dark Mode for Web Contents” being enabled. Visit chrome://flags and ensure it’s Disabled.\n", - "\n", - "Task completed.\n", - "INFO:agent.ComputerAgent:Agent: I’ve turned off Dark Mode in Google Chrome by setting the browser’s appearance to Light:\n", - "- Settings > Appearance > Mode = Light\n", - "\n", - "This forces Chrome to use a light theme regardless of your device theme.\n", - "\n", - "If any websites still appear dark, it could be due to:\n", - "- A dark-mode extension (e.g., Dark Reader). Disable it under Extensions.\n", - "- The experimental flag “Auto Dark Mode for Web Contents” being enabled. Visit chrome://flags and ensure it’s Disabled.\n", - "\n", - "Task completed.\n", - "2025-08-11 17:10:01,595 - agent.ComputerAgent - INFO - Total usage:\n", - " - completion_tokens: 876\n", - " - prompt_tokens: 8770\n", - " - total_tokens: 9646\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 768\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0197\n", - "INFO:agent.ComputerAgent:Total usage:\n", - " - completion_tokens: 876\n", - " - prompt_tokens: 8770\n", - " - total_tokens: 9646\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 768\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0197\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:10:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:10:02,937 - agent.ComputerAgent - INFO - Computer: click({'x': 400, 'y': 77})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 400, 'y': 77})\n", - "2025-08-11 17:10:03,606 - agent.ComputerAgent - INFO - Computer: double_click({'x': 476, 'y': 392})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 476, 'y': 392})\n", - "\u001b[92m17:10:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:10:04,225 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - " 40%|████████████████------------------------| 2945/7340 [103:45<154:51, 28.4 steps/min]\u001b[92m17:10:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:10:04,897 - agent.ComputerAgent - INFO - Computer: click({'x': 986, 'y': 578})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 986, 'y': 578})\n", - "\u001b[92m17:10:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:10:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 40%|████████████████------------------------| 2948/7340 [103:46<154:37, 28.4 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:10:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:10:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:10:06,706 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 143, 'y': 188}, {'x': 147, 'y': 229}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 143, 'y': 188}, {'x': 147, 'y': 229}]})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:10:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:10:07 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6f141a0f-f4b0-4f99-b4c4-5217b268c96b/invoke \"HTTP/1.1 200 OK\"\n", - " 40%|████████████████------------------------| 2949/7340 [103:49<154:35, 28.4 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:10:08,028 - agent.ComputerAgent - INFO - Computer: double_click({'x': 730, 'y': 648})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 730, 'y': 648})\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 40%|████████████████------------------------| 2950/7340 [103:50<154:31, 28.4 steps/min]\u001b[92m17:10:08 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:10:09,210 - agent.ComputerAgent - INFO - Computer: click({'x': 982, 'y': 167})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 982, 'y': 167})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6f141a0f-f4b0-4f99-b4c4-5217b268c96b/invoke \"HTTP/1.1 200 OK\"\n", - " 40%|████████████████------------------------| 2960/7340 [103:51<153:40, 28.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/091ec079-295e-4528-bad5-f34604d013c2/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/085317e9-3b47-437e-8528-0a0fc0e6e688/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:10:10,343 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m17:10:10 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9b6fc8c3-534a-4e7d-9a9b-4c6bad0e0619/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9f1aa688-383a-44cc-9959-87e1e32dd55c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6f141a0f-f4b0-4f99-b4c4-5217b268c96b/close \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/55d96e84-fdd8-4854-8eca-195f1a84dbc3/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/aa0172ad-f4a9-4f1a-9e06-2d510775dbd0/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1f48e361-2592-41ee-8818-d6e9174fe800/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:10:11,005 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m17:10:11 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/797f1798-0199-4d66-a503-1c5a8d488911/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:10:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/88706cb5-896e-4bf5-8b52-5df252945e00/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 40%|████████████████------------------------| 2961/7340 [103:54<153:39, 28.5 steps/min]2025-08-11 17:10:12,983 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m17:10:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:10:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ecc77db9-1735-4a1a-ab51-39c4517489fb/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6b818afb-eeae-43f9-b1ff-7f82844997e2/invoke \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00 Options > LibreOffice Impress > General: unchecked “Enable Presenter Console,” then applied and saved.\n", - "\n", - "How to choose which single monitor shows the slideshow (do this once per machine/setup):\n", - "- Slide Show > Slide Show Settings…\n", - "- Under Multiple displays, set “Presentation display” to the monitor you want (Display 1 or Display 2) and keep Presentation mode as “Full screen.”\n", - "- Click OK.\n", - "\n", - "Result:\n", - "- When you start the slideshow, it will fill only the selected monitor.\n", - "- The second monitor will remain free for other work, and the “Current/Next slide” presenter view will no longer appear.\n", - "\n", - "Task completed.\n", - "INFO:agent.ComputerAgent:Agent: I configured LibreOffice Impress to use only one monitor for the slideshow and to disable the Presenter Console.\n", - "\n", - "What I changed:\n", - "- Tools > Options > LibreOffice Impress > General: unchecked “Enable Presenter Console,” then applied and saved.\n", - "\n", - "How to choose which single monitor shows the slideshow (do this once per machine/setup):\n", - "- Slide Show > Slide Show Settings…\n", - "- Under Multiple displays, set “Presentation display” to the monitor you want (Display 1 or Display 2) and keep Presentation mode as “Full screen.”\n", - "- Click OK.\n", - "\n", - "Result:\n", - "- When you start the slideshow, it will fill only the selected monitor.\n", - "- The second monitor will remain free for other work, and the “Current/Next slide” presenter view will no longer appear.\n", - "\n", - "Task completed.\n", - "2025-08-11 17:13:46,540 - agent.ComputerAgent - INFO - Total usage:\n", - " - completion_tokens: 1315\n", - " - prompt_tokens: 13574\n", - " - total_tokens: 14889\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 1152\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 9472\n", - " - response_cost: $0.0195\n", - "INFO:agent.ComputerAgent:Total usage:\n", - " - completion_tokens: 1315\n", - " - prompt_tokens: 13574\n", - " - total_tokens: 14889\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 1152\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 9472\n", - " - response_cost: $0.0195\n", - " 42%|████████████████------------------------| 3054/7340 [107:28<150:49, 28.4 steps/min]2025-08-11 17:13:47,229 - agent.ComputerAgent - INFO - Computer: click({'x': 969, 'y': 218})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 969, 'y': 218})\n", - "2025-08-11 17:13:47,886 - agent.ComputerAgent - INFO - Computer: double_click({'x': 205, 'y': 214})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 205, 'y': 214})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:13:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:13:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:13:50,419 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+alt+t'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+alt+t'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3055/7340 [107:32<150:50, 28.4 steps/min]\u001b[92m17:13:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:13:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:13:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:13:51,700 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m17:13:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:13:52,387 - agent.ComputerAgent - INFO - Computer: click({'x': 954, 'y': 232})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 954, 'y': 232})\n", - "2025-08-11 17:13:53,035 - agent.ComputerAgent - INFO - Computer: click({'x': 589, 'y': 143})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 589, 'y': 143})\n", - "\u001b[92m17:13:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 42%|████████████████------------------------| 3057/7340 [107:34<150:43, 28.4 steps/min]2025-08-11 17:13:53,673 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': 660, 'scroll_x': 0, 'x': 658, 'y': 467})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': 660, 'scroll_x': 0, 'x': 658, 'y': 467})\n", - " 42%|████████████████------------------------| 3059/7340 [107:35<150:34, 28.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1f48e361-2592-41ee-8818-d6e9174fe800/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9b6fc8c3-534a-4e7d-9a9b-4c6bad0e0619/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:13:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 42%|████████████████------------------------| 3060/7340 [107:37<150:31, 28.4 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m17:13:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:13:56,551 - agent.ComputerAgent - INFO - Computer: click({'x': 660, 'y': 104})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 660, 'y': 104})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1f48e361-2592-41ee-8818-d6e9174fe800/invoke \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3060/7340 [107:38<150:33, 28.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1f48e361-2592-41ee-8818-d6e9174fe800/close \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3063/7340 [107:39<150:19, 28.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/025be48d-d757-4973-8c17-e42b8f6814b0/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/afb4e623-39bf-4f23-ac18-6c4a71f53c62/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:13:58,853 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m17:13:58 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/085317e9-3b47-437e-8528-0a0fc0e6e688/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9f1aa688-383a-44cc-9959-87e1e32dd55c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6bacb467-6eb5-4ead-ac71-a185d2fa5e80/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/55d96e84-fdd8-4854-8eca-195f1a84dbc3/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3063/7340 [107:40<150:21, 28.4 steps/min]2025-08-11 17:13:59,510 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m17:13:59 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:14:00,189 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m17:14:00 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:14:00,831 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m17:14:00 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/aa0172ad-f4a9-4f1a-9e06-2d510775dbd0/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 42%|████████████████------------------------| 3063/7340 [107:42<150:23, 28.4 steps/min]2025-08-11 17:14:01,477 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m17:14:01 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:14:02,169 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m17:14:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f0190121-650c-4779-b26d-2480f313dc84/invoke \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3063/7340 [107:43<150:25, 28.4 steps/min]2025-08-11 17:14:02,841 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m17:14:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:14:03,496 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m17:14:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 42%|████████████████------------------------| 3063/7340 [107:45<150:27, 28.4 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:14:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:14:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:14:06,224 - agent.ComputerAgent - INFO - Computer: type({'text': 'conda create -n hf python=3.11 --override-channels -c conda-forge -y\\n'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'conda create -n hf python=3.11 --override-channels -c conda-forge -y\\n'})\n", - " 42%|████████████████------------------------| 3064/7340 [107:53<150:33, 28.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/091ec079-295e-4528-bad5-f34604d013c2/invoke \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 50%|█████ | 2/4 [00:03<00:03, 1.58s/it]2025-08-11 17:14:12,505 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m17:14:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 42%|████████████████------------------------| 3064/7340 [107:55<150:36, 28.4 steps/min]\u001b[92m17:14:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 100%|██████████| 4/4 [00:05<00:00, 1.32s/it]\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:14:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:14:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:14:15,999 - agent.ComputerAgent - INFO - Computer: type({'text': 'spider-man toys kids'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'spider-man toys kids'})\n", - " 42%|████████████████------------------------| 3064/7340 [107:57<150:40, 28.4 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:14:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m17:14:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:14:17,286 - agent.ComputerAgent - INFO - Computer: click({'button': 'right', 'x': 512, 'y': 384})\n", - "INFO:agent.ComputerAgent:Computer: click({'button': 'right', 'x': 512, 'y': 384})\n", - "\u001b[92m17:14:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:14:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:14:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:14:17,916 - agent.ComputerAgent - INFO - Computer: click({'x': 175, 'y': 183})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 175, 'y': 183})\n", - " 42%|████████████████------------------------| 3065/7340 [107:59<150:37, 28.4 steps/min]2025-08-11 17:14:18,581 - agent.ComputerAgent - INFO - Computer: click({'x': 730, 'y': 275})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 730, 'y': 275})\n", - "2025-08-11 17:14:19,257 - agent.ComputerAgent - INFO - Computer: click({'x': 125, 'y': 182})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 125, 'y': 182})\n", - "\u001b[92m17:14:19 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:14:19 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:14:19,937 - agent.ComputerAgent - INFO - Computer: click({'x': 184, 'y': 178})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 184, 'y': 178})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:14:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 42%|████████████████------------------------| 3067/7340 [108:02<150:31, 28.4 steps/min]2025-08-11 17:14:21,216 - agent.ComputerAgent - INFO - Computer: double_click({'x': 757, 'y': 644})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 757, 'y': 644})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m17:14:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:14:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:14:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 42%|████████████████------------------------| 3070/7340 [108:04<150:19, 28.4 steps/min]\u001b[92m17:14:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:14:23,849 - agent.ComputerAgent - INFO - Computer: click({'x': 318, 'y': 59})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 318, 'y': 59})\n", - "\u001b[92m17:14:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:14:25,159 - agent.ComputerAgent - INFO - Computer: wait({})\n", - "INFO:agent.ComputerAgent:Computer: wait({})\n", - "2025-08-11 17:14:25,792 - agent.ComputerAgent - INFO - Computer: click({'x': 910, 'y': 254})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 910, 'y': 254})\n", - "\u001b[92m17:14:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:14:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/094ee49d-29b5-4911-bfc8-7d0e73a55c44/reset \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3071/7340 [108:07<150:18, 28.4 steps/min]2025-08-11 17:14:26,480 - agent.ComputerAgent - INFO - Computer: click({'x': 652, 'y': 178})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 652, 'y': 178})\n", - "2025-08-11 17:14:27,163 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': 654, 'scroll_x': 0, 'x': 654, 'y': 467})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': 654, 'scroll_x': 0, 'x': 654, 'y': 467})\n", - " 42%|████████████████------------------------| 3076/7340 [108:09<149:56, 28.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6a6179f5-13f9-4283-a0d1-aaafd881b00a/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9b6fc8c3-534a-4e7d-9a9b-4c6bad0e0619/invoke \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3078/7340 [108:11<149:49, 28.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/6a6179f5-13f9-4283-a0d1-aaafd881b00a/reset \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9b6fc8c3-534a-4e7d-9a9b-4c6bad0e0619/close \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/094ee49d-29b5-4911-bfc8-7d0e73a55c44/invoke \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3078/7340 [108:13<149:50, 28.4 steps/min]2025-08-11 17:14:32,090 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m17:14:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/55d96e84-fdd8-4854-8eca-195f1a84dbc3/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/025be48d-d757-4973-8c17-e42b8f6814b0/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/085317e9-3b47-437e-8528-0a0fc0e6e688/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/4b18a76d-ef46-4622-9643-9ee6fe4900a3/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/afb4e623-39bf-4f23-ac18-6c4a71f53c62/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6bacb467-6eb5-4ead-ac71-a185d2fa5e80/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/055e9f8b-8c01-4732-8b5f-ef4fc732f122/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/35bb6fb7-5b34-473c-a541-13215a694bc6/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f0190121-650c-4779-b26d-2480f313dc84/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:14:32,771 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m17:14:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9f1aa688-383a-44cc-9959-87e1e32dd55c/invoke \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3078/7340 [108:14<149:52, 28.4 steps/min]2025-08-11 17:14:33,404 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m17:14:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:14:34,070 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m17:14:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:14:34,696 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m17:14:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:14:35,372 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m17:14:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:14:36,032 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m17:14:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6a6179f5-13f9-4283-a0d1-aaafd881b00a/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/091ec079-295e-4528-bad5-f34604d013c2/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/96765d66-53fb-41dd-99b6-cd96984e52b3/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/aa0172ad-f4a9-4f1a-9e06-2d510775dbd0/invoke \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3078/7340 [108:17<149:57, 28.4 steps/min]2025-08-11 17:14:37,022 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m17:14:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:14:37,680 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m17:14:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 42%|████████████████------------------------| 3078/7340 [108:19<149:59, 28.4 steps/min]2025-08-11 17:14:38,337 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m17:14:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:14:39,001 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m17:14:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:14:39,701 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m17:14:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 42%|████████████████------------------------| 3078/7340 [108:21<150:02, 28.4 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:14:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Loading checkpoint shards: 25%|██▌ | 1/4 [00:01<00:04, 1.63s/it] 28.4 steps/min]2025-08-11 17:14:42,801 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m17:14:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 42%|████████████████------------------------| 3078/7340 [108:24<150:06, 28.4 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:14:43,842 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m17:14:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 42%|████████████████------------------------| 3078/7340 [108:25<150:08, 28.4 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Loading checkpoint shards: 100%|██████████| 4/4 [00:05<00:00, 1.33s/it] 28.4 steps/min]\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:14:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 42%|████████████████------------------------| 3078/7340 [108:28<150:12, 28.4 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 42%|████████████████------------------------| 3078/7340 [108:29<150:14, 28.4 steps/min]\u001b[92m17:14:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:14:48,883 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 17:14:48,885 - agent.ComputerAgent - INFO - Computer: click({'x': 314, 'y': 121})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 314, 'y': 121})\n", - "\u001b[92m17:14:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:14:49,521 - agent.ComputerAgent - INFO - Computer: double_click({'x': 193, 'y': 178})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 193, 'y': 178})\n", - " 42%|████████████████------------------------| 3080/7340 [108:32<150:07, 28.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3080/7340 [108:33<150:08, 28.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d351b561-0537-4e9c-84fc-8e1905f2f2c8/invoke \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3080/7340 [108:34<150:09, 28.4 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:14:53,931 - agent.ComputerAgent - INFO - Computer: type({'text': 'Paper Recommendation'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'Paper Recommendation'})\n", - " 42%|████████████████------------------------| 3080/7340 [108:35<150:11, 28.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/085317e9-3b47-437e-8528-0a0fc0e6e688/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/094ee49d-29b5-4911-bfc8-7d0e73a55c44/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:14:55,591 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m17:14:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 42%|████████████████------------------------| 3081/7340 [108:37<150:09, 28.4 steps/min]2025-08-11 17:14:56,259 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m17:14:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:14:57,587 - agent.ComputerAgent - INFO - Computer: wait({})\n", - "INFO:agent.ComputerAgent:Computer: wait({})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3081/7340 [108:39<150:12, 28.4 steps/min]\u001b[92m17:14:58 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m17:14:58 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:14:59,416 - agent.ComputerAgent - INFO - Computer: click({'x': 107, 'y': 33})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 107, 'y': 33})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:15:00,701 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'enter'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'enter'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3082/7340 [108:43<150:12, 28.3 steps/min]\u001b[92m17:15:01 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:15:02,638 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+f'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+f'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9f1aa688-383a-44cc-9959-87e1e32dd55c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 42%|████████████████------------------------| 3084/7340 [108:45<150:04, 28.4 steps/min]\u001b[92m17:15:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:15:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:15:04,289 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m17:15:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:15:04,939 - agent.ComputerAgent - INFO - Computer: click({'x': 572, 'y': 551})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 572, 'y': 551})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/091ec079-295e-4528-bad5-f34604d013c2/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3084/7340 [108:47<150:07, 28.3 steps/min]\u001b[92m17:15:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:15:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m17:15:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:15:06,301 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m17:15:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:15:07,327 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m17:15:07 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m17:15:07 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:15:08,631 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 17:15:08,632 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'win'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'win'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:15:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 42%|████████████████------------------------| 3085/7340 [108:51<150:07, 28.3 steps/min]2025-08-11 17:15:09,958 - agent.ComputerAgent - INFO - Computer: click({'x': 349, 'y': 207})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 349, 'y': 207})\n", - "\u001b[92m17:15:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:15:10 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:15:11,270 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 147, 'y': 581}, {'x': 147, 'y': 678}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 147, 'y': 581}, {'x': 147, 'y': 678}]})\n", - " 42%|████████████████------------------------| 3086/7340 [108:52<150:05, 28.3 steps/min]\u001b[92m17:15:11 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:15:11,906 - agent.ComputerAgent - INFO - Computer: click({'x': 880, 'y': 203})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 880, 'y': 203})\n", - "\u001b[92m17:15:11 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:15:12,582 - agent.ComputerAgent - INFO - Computer: click({'x': 918, 'y': 243})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 918, 'y': 243})\n", - " 42%|████████████████------------------------| 3090/7340 [108:55<149:48, 28.4 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:15:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 42%|████████████████------------------------| 3090/7340 [108:56<149:50, 28.4 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m17:15:15 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:15:15,903 - agent.ComputerAgent - INFO - Computer: click({'x': 894, 'y': 232})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 894, 'y': 232})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/afb4e623-39bf-4f23-ac18-6c4a71f53c62/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/55d96e84-fdd8-4854-8eca-195f1a84dbc3/invoke \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3090/7340 [108:57<149:51, 28.4 steps/min]2025-08-11 17:15:16,561 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m17:15:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:15:17,873 - agent.ComputerAgent - INFO - Computer: type({'text': 'conda activate hf\\nconda install -y -c conda-forge datasets\\npython -c \"import datasets, sys; print(\\'datasets version:\\', datasets.__version__)\"\\n'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'conda activate hf\\nconda install -y -c conda-forge datasets\\npython -c \"import datasets, sys; print(\\'datasets version:\\', datasets.__version__)\"\\n'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/96765d66-53fb-41dd-99b6-cd96984e52b3/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/35bb6fb7-5b34-473c-a541-13215a694bc6/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/094ee49d-29b5-4911-bfc8-7d0e73a55c44/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:15:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:15:19,817 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+z'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+z'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6bacb467-6eb5-4ead-ac71-a185d2fa5e80/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f0190121-650c-4779-b26d-2480f313dc84/invoke \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3091/7340 [109:01<149:52, 28.4 steps/min]2025-08-11 17:15:20,461 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m17:15:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:15:21,839 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'enter'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'enter'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6a6179f5-13f9-4283-a0d1-aaafd881b00a/invoke \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:15:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:15:22,509 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - " 42%|████████████████------------------------| 3092/7340 [109:04<149:50, 28.3 steps/min]\u001b[92m17:15:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m17:15:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:15:23,191 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m17:15:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:15:23,827 - agent.ComputerAgent - INFO - LLM processing started with 40 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 40 messages\n", - "\u001b[92m17:15:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m17:15:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 42%|████████████████------------------------| 3093/7340 [109:05<149:47, 28.4 steps/min]2025-08-11 17:15:24,498 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 194, 'y': 182}, {'x': 183, 'y': 294}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 194, 'y': 182}, {'x': 183, 'y': 294}]})\n", - "2025-08-11 17:15:25,826 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m17:15:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3093/7340 [109:08<149:51, 28.3 steps/min]\u001b[92m17:15:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:15:27,861 - agent.ComputerAgent - INFO - Computer: wait({})\n", - "INFO:agent.ComputerAgent:Computer: wait({})\n", - "\u001b[92m17:15:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 42%|████████████████------------------------| 3094/7340 [109:09<149:48, 28.3 steps/min]2025-08-11 17:15:28,558 - agent.ComputerAgent - INFO - Computer: click({'x': 205, 'y': 175})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 205, 'y': 175})\n", - "2025-08-11 17:15:29,222 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m17:15:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 42%|████████████████------------------------| 3095/7340 [109:11<149:45, 28.3 steps/min]2025-08-11 17:15:29,891 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m17:15:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:15:30,530 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m17:15:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/025be48d-d757-4973-8c17-e42b8f6814b0/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 42%|████████████████------------------------| 3096/7340 [109:12<149:41, 28.4 steps/min]2025-08-11 17:15:31,171 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m17:15:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 42%|████████████████------------------------| 3096/7340 [109:13<149:43, 28.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/091ec079-295e-4528-bad5-f34604d013c2/invoke \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3096/7340 [109:14<149:44, 28.3 steps/min]2025-08-11 17:15:32,801 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m17:15:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9f1aa688-383a-44cc-9959-87e1e32dd55c/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:15:33,431 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m17:15:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 42%|████████████████------------------------| 3096/7340 [109:15<149:45, 28.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:15:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/085317e9-3b47-437e-8528-0a0fc0e6e688/invoke \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3096/7340 [109:16<149:47, 28.3 steps/min]\u001b[92m17:15:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:15:35,248 - agent.ComputerAgent - INFO - Computer: click({'x': 804, 'y': 654})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 804, 'y': 654})\n", - "2025-08-11 17:15:35,931 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m17:15:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/aa0172ad-f4a9-4f1a-9e06-2d510775dbd0/invoke \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3096/7340 [109:17<149:49, 28.3 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:15:37,102 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m17:15:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/55d96e84-fdd8-4854-8eca-195f1a84dbc3/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 42%|████████████████------------------------| 3097/7340 [109:18<149:45, 28.3 steps/min]2025-08-11 17:15:37,759 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m17:15:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 42%|████████████████------------------------| 3097/7340 [109:22<149:51, 28.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/094ee49d-29b5-4911-bfc8-7d0e73a55c44/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:15:42,613 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+p'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+p'})\n", - " 42%|████████████████------------------------| 3097/7340 [109:24<149:53, 28.3 steps/min]2025-08-11 17:15:43,243 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m17:15:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m17:15:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:15:44,564 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m17:15:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 42%|████████████████------------------------| 3097/7340 [109:26<149:56, 28.3 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m17:15:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:15:45,740 - agent.ComputerAgent - INFO - Computer: click({'x': 408, 'y': 279})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 408, 'y': 279})\n", - " 42%|████████████████------------------------| 3097/7340 [109:27<149:57, 28.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:15:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 42%|████████████████------------------------| 3098/7340 [109:28<149:54, 28.3 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m17:15:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:15:48,097 - agent.ComputerAgent - INFO - Computer: click({'x': 880, 'y': 203})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 880, 'y': 203})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:15:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:15:50,080 - agent.ComputerAgent - INFO - Computer: type({'text': 'conda install -y -c conda-forge --override-channels datasets\\n'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'conda install -y -c conda-forge --override-channels datasets\\n'})\n", - " 42%|████████████████------------------------| 3098/7340 [109:31<149:58, 28.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:15:51,375 - agent.ComputerAgent - INFO - Computer: type({'text': 'python --version\\npython3 --version\\nls /usr/bin/python* | head -n 20\\napt-cache policy python4 || apt-cache search python4 | head\\n'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'python --version\\npython3 --version\\nls /usr/bin/python* | head -n 20\\napt-cache policy python4 || apt-cache search python4 | head\\n'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:15:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:15:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m17:15:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 42%|████████████████------------------------| 3100/7340 [109:34<149:52, 28.3 steps/min]2025-08-11 17:15:53,291 - agent.ComputerAgent - INFO - Computer: move({'x': 914, 'y': 232})\n", - "INFO:agent.ComputerAgent:Computer: move({'x': 914, 'y': 232})\n", - "\u001b[92m17:15:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6a6179f5-13f9-4283-a0d1-aaafd881b00a/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:15:53,963 - agent.ComputerAgent - INFO - Computer: click({'x': 935, 'y': 351})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 935, 'y': 351})\n", - "\u001b[92m17:15:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:15:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 42%|████████████████------------------------| 3101/7340 [109:36<149:49, 28.3 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:15:55,270 - agent.ComputerAgent - INFO - Computer: click({'x': 225, 'y': 520})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 225, 'y': 520})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m17:15:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 42%|████████████████------------------------| 3103/7340 [109:37<149:41, 28.3 steps/min]\u001b[92m17:15:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:15:56,620 - agent.ComputerAgent - INFO - Computer: click({'x': 235, 'y': 206})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 235, 'y': 206})\n", - "\u001b[92m17:15:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:15:57,299 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': 659, 'scroll_x': 0, 'x': 840, 'y': 467})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': 659, 'scroll_x': 0, 'x': 840, 'y': 467})\n", - " 42%|████████████████------------------------| 3104/7340 [109:39<149:38, 28.3 steps/min]2025-08-11 17:15:57,924 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m17:15:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:15:58 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 42%|████████████████------------------------| 3106/7340 [109:40<149:30, 28.3 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m17:15:59 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:15:59 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m17:15:59 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:16:00,272 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 193, 'y': 180}, {'x': 184, 'y': 293}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 193, 'y': 180}, {'x': 184, 'y': 293}]})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3106/7340 [109:42<149:33, 28.3 steps/min]\u001b[92m17:16:00 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m17:16:01 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:16:02,072 - agent.ComputerAgent - INFO - Computer: click({'x': 1011, 'y': 62})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 1011, 'y': 62})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6bacb467-6eb5-4ead-ac71-a185d2fa5e80/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f0190121-650c-4779-b26d-2480f313dc84/invoke \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3107/7340 [109:43<149:29, 28.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/091ec079-295e-4528-bad5-f34604d013c2/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/094ee49d-29b5-4911-bfc8-7d0e73a55c44/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:16:02,765 - agent.ComputerAgent - INFO - LLM processing started with 42 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 42 messages\n", - "\u001b[92m17:16:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/96765d66-53fb-41dd-99b6-cd96984e52b3/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/025be48d-d757-4973-8c17-e42b8f6814b0/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:16:03,441 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m17:16:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:16:04,480 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m17:16:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/55d96e84-fdd8-4854-8eca-195f1a84dbc3/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/aa0172ad-f4a9-4f1a-9e06-2d510775dbd0/invoke \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3108/7340 [109:46<149:28, 28.3 steps/min]2025-08-11 17:16:05,143 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m17:16:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:16:05,823 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m17:16:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/085317e9-3b47-437e-8528-0a0fc0e6e688/invoke \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3108/7340 [109:47<149:29, 28.3 steps/min]2025-08-11 17:16:06,914 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m17:16:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/dc026dd3-8d59-43e0-a475-ecef72f1db12/invoke \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3108/7340 [109:48<149:31, 28.3 steps/min]2025-08-11 17:16:07,563 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m17:16:07 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:16:08,252 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m17:16:08 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:16:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 42%|████████████████------------------------| 3108/7340 [109:50<149:34, 28.3 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:16:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:16:10,625 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m17:16:10 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m17:16:10 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/afb4e623-39bf-4f23-ac18-6c4a71f53c62/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 42%|████████████████------------------------| 3108/7340 [109:52<149:36, 28.3 steps/min]2025-08-11 17:16:11,298 - agent.ComputerAgent - INFO - Computer: click({'x': 422, 'y': 249})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 422, 'y': 249})\n", - "\u001b[92m17:16:11 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:16:11,982 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m17:16:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:16:12,642 - agent.ComputerAgent - INFO - Computer: click({'x': 381, 'y': 91})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 381, 'y': 91})\n", - " 42%|████████████████------------------------| 3110/7340 [109:55<149:30, 28.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:16:15,007 - agent.ComputerAgent - INFO - Computer: wait({})\n", - "INFO:agent.ComputerAgent:Computer: wait({})\n", - " 42%|████████████████------------------------| 3111/7340 [109:57<149:28, 28.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:16:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:16:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 42%|████████████████------------------------| 3111/7340 [109:59<149:30, 28.3 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:16:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:16:18,043 - agent.ComputerAgent - INFO - Computer: click({'x': 413, 'y': 587})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 413, 'y': 587})\n", - "\u001b[92m17:16:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:16:18,709 - agent.ComputerAgent - INFO - Computer: click({'x': 125, 'y': 182})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 125, 'y': 182})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9f1aa688-383a-44cc-9959-87e1e32dd55c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6a6179f5-13f9-4283-a0d1-aaafd881b00a/invoke \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3111/7340 [110:00<149:32, 28.3 steps/min]2025-08-11 17:16:19,335 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m17:16:19 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:16:20,773 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m17:16:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3113/7340 [110:03<149:26, 28.3 steps/min]\u001b[92m17:16:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/091ec079-295e-4528-bad5-f34604d013c2/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:16:22,077 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m17:16:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m17:16:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:16:23,083 - agent.ComputerAgent - INFO - Computer: click({'x': 839, 'y': 234})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 839, 'y': 234})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:16:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:16:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/730002fc-5760-41b0-97b8-f6783353a242/reset \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 42%|████████████████------------------------| 3113/7340 [110:06<149:30, 28.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m17:16:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/055e9f8b-8c01-4732-8b5f-ef4fc732f122/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:16:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/094ee49d-29b5-4911-bfc8-7d0e73a55c44/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:16:25,728 - agent.ComputerAgent - INFO - Computer: click({'x': 925, 'y': 244})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 925, 'y': 244})\n", - "\u001b[92m17:16:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 42%|████████████████------------------------| 3114/7340 [110:07<149:26, 28.3 steps/min]2025-08-11 17:16:26,375 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m17:16:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:16:27,003 - agent.ComputerAgent - INFO - Computer: click({'x': 847, 'y': 404})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 847, 'y': 404})\n", - "\u001b[92m17:16:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 42%|████████████████------------------------| 3115/7340 [110:08<149:23, 28.3 steps/min]2025-08-11 17:16:28,017 - agent.ComputerAgent - INFO - Computer: click({'x': 880, 'y': 203})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 880, 'y': 203})\n", - "2025-08-11 17:16:28,682 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m17:16:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 42%|████████████████------------------------| 3116/7340 [110:10<149:21, 28.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:16:30,033 - agent.ComputerAgent - INFO - Computer: wait({})\n", - "INFO:agent.ComputerAgent:Computer: wait({})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:16:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 42%|████████████████------------------------| 3117/7340 [110:12<149:18, 28.3 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/730002fc-5760-41b0-97b8-f6783353a242/invoke \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:16:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:16:31,839 - agent.ComputerAgent - INFO - Computer: click({'x': 131, 'y': 181})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 131, 'y': 181})\n", - " 42%|████████████████------------------------| 3118/7340 [110:13<149:15, 28.3 steps/min]2025-08-11 17:16:32,503 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m17:16:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 42%|████████████████------------------------| 3119/7340 [110:14<149:11, 28.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/55d96e84-fdd8-4854-8eca-195f1a84dbc3/invoke \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3119/7340 [110:15<149:12, 28.3 steps/min]2025-08-11 17:16:34,177 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m17:16:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6bacb467-6eb5-4ead-ac71-a185d2fa5e80/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:16:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:16:36,680 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+f'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+f'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/afb4e623-39bf-4f23-ac18-6c4a71f53c62/invoke \"HTTP/1.1 200 OK\"\n", - " 42%|████████████████------------------------| 3119/7340 [110:18<149:16, 28.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f0190121-650c-4779-b26d-2480f313dc84/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m17:16:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/091ec079-295e-4528-bad5-f34604d013c2/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:16:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/35bb6fb7-5b34-473c-a541-13215a694bc6/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:16:37,927 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m17:16:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:16:38,544 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m17:16:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:16:39,208 - agent.ComputerAgent - INFO - Computer: click({'x': 940, 'y': 202})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 940, 'y': 202})\n", - "\u001b[92m17:16:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:16:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 42%|████████████████------------------------| 3119/7340 [110:21<149:21, 28.3 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:16:40,538 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': 600, 'x': 422, 'y': 249})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': 600, 'x': 422, 'y': 249})\n", - "2025-08-11 17:16:41,185 - agent.ComputerAgent - INFO - LLM processing started with 40 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 40 messages\n", - "\u001b[92m17:16:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6bacb467-6eb5-4ead-ac71-a185d2fa5e80/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 43%|█████████████████-----------------------| 3121/7340 [110:23<149:14, 28.3 steps/min]\u001b[92m17:16:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:16:42,861 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m17:16:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:16:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:16:44,179 - agent.ComputerAgent - INFO - Computer: click({'x': 115, 'y': 184})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 115, 'y': 184})\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:16:44,861 - agent.ComputerAgent - INFO - Computer: click({'x': 185, 'y': 177})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 185, 'y': 177})\n", - " 43%|█████████████████-----------------------| 3121/7340 [110:26<149:17, 28.3 steps/min]\u001b[92m17:16:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:16:45,524 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 17:16:45,525 - agent.ComputerAgent - INFO - Computer: click({'x': 345, 'y': 202})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 345, 'y': 202})\n", - "2025-08-11 17:16:46,155 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m17:16:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 43%|█████████████████-----------------------| 3123/7340 [110:27<149:09, 28.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:16:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:16:48,493 - agent.ComputerAgent - INFO - Computer: wait({})\n", - "INFO:agent.ComputerAgent:Computer: wait({})\n", - "\u001b[92m17:16:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6bacb467-6eb5-4ead-ac71-a185d2fa5e80/close \"HTTP/1.1 200 OK\"\n", - " 43%|█████████████████-----------------------| 3124/7340 [110:30<149:07, 28.3 steps/min]2025-08-11 17:16:49,152 - agent.ComputerAgent - INFO - Computer: click({'x': 964, 'y': 734})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 964, 'y': 734})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6a6179f5-13f9-4283-a0d1-aaafd881b00a/invoke \"HTTP/1.1 200 OK\"\n", - " 43%|█████████████████-----------------------| 3125/7340 [110:31<149:04, 28.3 steps/min]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "No screenshot found, taking screenshot\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-08-11 17:16:50,459 - agent.ComputerAgent - INFO - LLM processing started with 13 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 13 messages\n", - "\u001b[92m17:16:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 43%|█████████████████-----------------------| 3126/7340 [110:32<149:01, 28.3 steps/min]INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/055e9f8b-8c01-4732-8b5f-ef4fc732f122/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:16:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/025be48d-d757-4973-8c17-e42b8f6814b0/invoke \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00/dev/null || echo 'no python4 found'\\n\"})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': \"which python4 || command -v python4 || ls /usr/bin/python4* 2>/dev/null || echo 'no python4 found'\\n\"})\n", - " 43%|█████████████████-----------------------| 3141/7340 [111:10<148:37, 28.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ae2379a3-a039-4954-afc2-582f8ebffdd2/invoke \"HTTP/1.1 200 OK\"\n", - " 43%|█████████████████-----------------------| 3143/7340 [111:11<148:28, 28.3 steps/min]2025-08-11 17:17:30,119 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m17:17:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/091ec079-295e-4528-bad5-f34604d013c2/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6a6179f5-13f9-4283-a0d1-aaafd881b00a/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:17:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:17:32,137 - agent.ComputerAgent - INFO - Computer: type({'text': '=DATEDIF(DATEVALUE(REGEX(A2;\".* \";\"\"));TODAY();\"y\")'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': '=DATEDIF(DATEVALUE(REGEX(A2;\".* \";\"\"));TODAY();\"y\")'})\n", - "2025-08-11 17:17:32,777 - agent.ComputerAgent - INFO - LLM processing started with 23 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 23 messages\n", - "\u001b[92m17:17:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:17:34,149 - agent.ComputerAgent - INFO - Computer: type({'text': 'LLM Powered Autonomous Agents.pdf'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'LLM Powered Autonomous Agents.pdf'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:17:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 43%|█████████████████-----------------------| 3143/7340 [111:17<148:36, 28.2 steps/min]\u001b[92m17:17:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:17:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m17:17:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/96765d66-53fb-41dd-99b6-cd96984e52b3/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:17:36,722 - agent.ComputerAgent - INFO - Computer: click({'x': 488, 'y': 368})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 488, 'y': 368})\n", - "\u001b[92m17:17:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:17:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 43%|█████████████████-----------------------| 3145/7340 [111:18<148:28, 28.3 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:17:37,353 - agent.ComputerAgent - INFO - Computer: click({'x': 349, 'y': 201})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 349, 'y': 201})\n", - "2025-08-11 17:17:37,994 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': 660, 'scroll_x': 0, 'x': 706, 'y': 659})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': 660, 'scroll_x': 0, 'x': 706, 'y': 659})\n", - "\u001b[92m17:17:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - " 43%|█████████████████-----------------------| 3147/7340 [111:19<148:19, 28.3 steps/min]\u001b[92m17:17:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:17:38,649 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m17:17:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m17:17:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:17:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:17:40,658 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+a'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+a'})\n", - "2025-08-11 17:17:41,329 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 194, 'y': 183}, {'x': 184, 'y': 291}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 194, 'y': 183}, {'x': 184, 'y': 291}]})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/091ec079-295e-4528-bad5-f34604d013c2/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6a6179f5-13f9-4283-a0d1-aaafd881b00a/invoke \"HTTP/1.1 200 OK\"\n", - " 43%|█████████████████-----------------------| 3149/7340 [111:23<148:14, 28.3 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:17:41,970 - agent.ComputerAgent - INFO - LLM processing started with 25 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 25 messages\n", - "\u001b[92m17:17:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:17:42,600 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m17:17:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m17:17:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/afb4e623-39bf-4f23-ac18-6c4a71f53c62/invoke \"HTTP/1.1 200 OK\"\n", - " 43%|█████████████████-----------------------| 3150/7340 [111:24<148:11, 28.3 steps/min]2025-08-11 17:17:43,277 - agent.ComputerAgent - INFO - Computer: click({'x': 850, 'y': 202})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 850, 'y': 202})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/055e9f8b-8c01-4732-8b5f-ef4fc732f122/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/730002fc-5760-41b0-97b8-f6783353a242/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9f1aa688-383a-44cc-9959-87e1e32dd55c/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:17:43,930 - agent.ComputerAgent - INFO - LLM processing started with 42 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 42 messages\n", - "\u001b[92m17:17:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 43%|█████████████████-----------------------| 3150/7340 [111:25<148:13, 28.3 steps/min]2025-08-11 17:17:44,570 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m17:17:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:17:45,261 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m17:17:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:17:45,939 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m17:17:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/091ec079-295e-4528-bad5-f34604d013c2/close \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 43%|█████████████████-----------------------| 3151/7340 [111:27<148:10, 28.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - " 43%|█████████████████-----------------------| 3152/7340 [111:31<148:11, 28.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/aa0172ad-f4a9-4f1a-9e06-2d510775dbd0/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/085317e9-3b47-437e-8528-0a0fc0e6e688/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:17:51,370 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m17:17:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - " 43%|█████████████████-----------------------| 3152/7340 [111:33<148:13, 28.3 steps/min]\u001b[92m17:17:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6a6179f5-13f9-4283-a0d1-aaafd881b00a/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:17:52,759 - agent.ComputerAgent - INFO - LLM processing started with 27 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 27 messages\n", - "\u001b[92m17:17:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 43%|█████████████████-----------------------| 3152/7340 [111:34<148:14, 28.3 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:17:53,422 - agent.ComputerAgent - INFO - LLM processing started with 40 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 40 messages\n", - "\u001b[92m17:17:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m17:17:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 43%|█████████████████-----------------------| 3152/7340 [111:36<148:18, 28.2 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:17:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 43%|█████████████████-----------------------| 3153/7340 [111:37<148:14, 28.2 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f0190121-650c-4779-b26d-2480f313dc84/invoke \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 25%|██▌ | 1/4 [00:01<00:05, 1.77s/it]2025-08-11 17:17:57,266 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m17:17:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6a6179f5-13f9-4283-a0d1-aaafd881b00a/invoke \"HTTP/1.1 200 OK\"\n", - " 43%|█████████████████-----------------------| 3153/7340 [111:39<148:15, 28.2 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:17:57,933 - agent.ComputerAgent - INFO - LLM processing started with 29 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 29 messages\n", - "\u001b[92m17:17:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Loading checkpoint shards: 100%|██████████| 4/4 [00:05<00:00, 1.39s/it] 28.2 steps/min]\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/094ee49d-29b5-4911-bfc8-7d0e73a55c44/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:18:01 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - " 43%|█████████████████-----------------------| 3154/7340 [111:43<148:16, 28.2 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m17:18:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m17:18:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:18:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6a6179f5-13f9-4283-a0d1-aaafd881b00a/invoke \"HTTP/1.1 200 OK\"\n", - " 43%|█████████████████-----------------------| 3167/7340 [111:44<147:14, 28.3 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:18:03,401 - agent.ComputerAgent - INFO - LLM processing started with 31 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 31 messages\n", - "\u001b[92m17:18:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:18:04,060 - agent.ComputerAgent - INFO - Computer: click({'x': 666, 'y': 219})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 666, 'y': 219})\n", - "\u001b[92m17:18:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:18:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:18:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/094ee49d-29b5-4911-bfc8-7d0e73a55c44/close \"HTTP/1.1 200 OK\"\n", - " 43%|█████████████████-----------------------| 3167/7340 [111:45<147:15, 28.3 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:18:04,733 - agent.ComputerAgent - INFO - Computer: click({'x': 442, 'y': 162})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 442, 'y': 162})\n", - "2025-08-11 17:18:05,375 - agent.ComputerAgent - INFO - Computer: click({'x': 811, 'y': 336})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 811, 'y': 336})\n", - "2025-08-11 17:18:06,055 - agent.ComputerAgent - INFO - Computer: double_click({'x': 347, 'y': 222})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 347, 'y': 222})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "\u001b[92m17:18:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:18:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 43%|█████████████████-----------------------| 3169/7340 [111:48<147:09, 28.3 steps/min]2025-08-11 17:18:07,401 - agent.ComputerAgent - INFO - Computer: click({'x': 536, 'y': 276})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 536, 'y': 276})\n", - "2025-08-11 17:18:08,031 - agent.ComputerAgent - INFO - Computer: double_click({'x': 489, 'y': 368})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 489, 'y': 368})\n", - " 43%|█████████████████-----------------------| 3172/7340 [111:49<146:56, 28.4 steps/min]INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - " 43%|█████████████████-----------------------| 3174/7340 [111:50<146:48, 28.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6a6179f5-13f9-4283-a0d1-aaafd881b00a/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:18:09,694 - agent.ComputerAgent - INFO - LLM processing started with 33 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 33 messages\n", - "\u001b[92m17:18:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 43%|█████████████████-----------------------| 3174/7340 [111:52<146:50, 28.4 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - " 43%|█████████████████-----------------------| 3175/7340 [111:53<146:47, 28.4 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:18:13,931 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+c'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+c'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:18:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9f1aa688-383a-44cc-9959-87e1e32dd55c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6a6179f5-13f9-4283-a0d1-aaafd881b00a/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/730002fc-5760-41b0-97b8-f6783353a242/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/55d96e84-fdd8-4854-8eca-195f1a84dbc3/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ae2379a3-a039-4954-afc2-582f8ebffdd2/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/afb4e623-39bf-4f23-ac18-6c4a71f53c62/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:18:15 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1909e6f5-b395-4e1d-b1f7-b06406f8731b/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/025be48d-d757-4973-8c17-e42b8f6814b0/invoke \"HTTP/1.1 200 OK\"\n", - " 43%|█████████████████-----------------------| 3175/7340 [111:56<146:51, 28.4 steps/min]2025-08-11 17:18:15,929 - agent.ComputerAgent - INFO - LLM processing started with 35 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 35 messages\n", - "\u001b[92m17:18:15 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:18:16,592 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m17:18:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/4b18a76d-ef46-4622-9643-9ee6fe4900a3/reset \"HTTP/1.1 200 OK\"\n", - " 43%|█████████████████-----------------------| 3175/7340 [111:58<146:53, 28.4 steps/min]2025-08-11 17:18:17,271 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m17:18:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:18:17,933 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m17:18:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 43%|█████████████████-----------------------| 3175/7340 [111:59<146:55, 28.3 steps/min]2025-08-11 17:18:18,584 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m17:18:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/b6bbc5bc-5598-4043-be1e-6ebf2da5f046/reset \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00 arr[j + 1]:\\n arr[j], arr[j + 1] = arr[j + 1], arr[j]\\n swapped = True\\n if not swapped:\\n break'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': '\\n n = len(arr)\\n for i in range(n):\\n swapped = False\\n for j in range(0, n - i - 1):\\n if arr[j] > arr[j + 1]:\\n arr[j], arr[j + 1] = arr[j + 1], arr[j]\\n swapped = True\\n if not swapped:\\n break'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a4b4d291-1fca-4038-8670-448014a55182/invoke \"HTTP/1.1 200 OK\"\n", - " 47%|██████████████████----------------------| 3439/7340 [120:46<137:00, 28.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b3bde0e0-c60f-4177-b7dd-15e361558126/invoke \"HTTP/1.1 200 OK\"\n", - " 47%|██████████████████----------------------| 3439/7340 [120:47<137:01, 28.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:27:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:27:07,882 - agent.ComputerAgent - INFO - Computer: type({'text': 'libreoffice --headless --convert-to pdf --outdir . -- *.doc\\n'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'libreoffice --headless --convert-to pdf --outdir . -- *.doc\\n'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:27:07 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:27:08 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/dc026dd3-8d59-43e0-a475-ecef72f1db12/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b6bbc5bc-5598-4043-be1e-6ebf2da5f046/invoke \"HTTP/1.1 200 OK\"\n", - " 47%|██████████████████----------------------| 3439/7340 [120:50<137:04, 28.5 steps/min]2025-08-11 17:27:09,249 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 17:27:09,250 - agent.ComputerAgent - INFO - Computer: double_click({'x': 984, 'y': 491})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 984, 'y': 491})\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:27:09,926 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m17:27:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m17:27:10 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/94463065-a78e-479a-b964-45ad23a48cbb/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:27:10 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 47%|██████████████████----------------------| 3440/7340 [120:52<137:02, 28.5 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:27:11,254 - agent.ComputerAgent - INFO - Computer: click({'x': 153, 'y': 53})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 153, 'y': 53})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:27:12,616 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+s'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+s'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:27:13,257 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m17:27:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m17:27:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:27:14,573 - agent.ComputerAgent - INFO - Computer: type({'text': 'do not track'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'do not track'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:27:15,903 - agent.ComputerAgent - INFO - Computer: type({'text': '30'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': '30'})\n", - " 47%|██████████████████----------------------| 3441/7340 [120:57<137:03, 28.4 steps/min]2025-08-11 17:27:16,549 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m17:27:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:27:17,244 - agent.ComputerAgent - INFO - Computer: click({'x': 268, 'y': 329})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 268, 'y': 329})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 47%|██████████████████----------------------| 3444/7340 [120:59<136:52, 28.5 steps/min]\u001b[92m17:27:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:27:18,557 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m17:27:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m17:27:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:27:19,249 - agent.ComputerAgent - INFO - Computer: click({'x': 955, 'y': 130})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 955, 'y': 130})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/127b9298-d3cc-4b90-8567-e45146efa729/invoke \"HTTP/1.1 200 OK\"\n", - " 47%|██████████████████----------------------| 3445/7340 [121:00<136:49, 28.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:27:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 47%|██████████████████----------------------| 3446/7340 [121:02<136:46, 28.5 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m17:27:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:27:21,579 - agent.ComputerAgent - INFO - Computer: click({'x': 188, 'y': 105})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 188, 'y': 105})\n", - " 47%|██████████████████----------------------| 3446/7340 [121:03<136:47, 28.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f8984906-7392-4305-88fa-ae9a4808fa8d/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/050a0934-63e8-46a0-8868-de32b28174ef/invoke \"HTTP/1.1 200 OK\"\n", - " 47%|██████████████████----------------------| 3447/7340 [121:04<136:44, 28.5 steps/min]2025-08-11 17:27:23,268 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m17:27:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/57944bbf-74a1-4e6d-9401-f7b0144460f7/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b28701c2-0fa4-4b07-bace-735fd2133893/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:27:23,935 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m17:27:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0322563b-daf3-41ae-8a08-f5ecd9282bcc/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/792a6953-2092-47e4-a8a8-57a4af4e3be1/invoke \"HTTP/1.1 200 OK\"\n", - " 47%|██████████████████----------------------| 3447/7340 [121:05<136:45, 28.5 steps/min]2025-08-11 17:27:24,567 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m17:27:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:27:25,196 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m17:27:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 47%|██████████████████----------------------| 3447/7340 [121:07<136:47, 28.5 steps/min]2025-08-11 17:27:25,887 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m17:27:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1909e6f5-b395-4e1d-b1f7-b06406f8731b/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:27:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 47%|██████████████████----------------------| 3447/7340 [121:08<136:48, 28.5 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:27:27,295 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m17:27:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m17:27:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fde8bca8-8a90-4fed-b46f-c24829445665/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:27:27,985 - agent.ComputerAgent - INFO - Computer: click({'x': 262, 'y': 479})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 262, 'y': 479})\n", - " 47%|██████████████████----------------------| 3447/7340 [121:09<136:50, 28.4 steps/min]2025-08-11 17:27:28,643 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m17:27:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:27:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 47%|██████████████████----------------------| 3448/7340 [121:11<136:47, 28.5 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:27:30,354 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m17:27:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 47%|██████████████████----------------------| 3448/7340 [121:12<136:48, 28.4 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m17:27:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:27:31,027 - agent.ComputerAgent - INFO - Computer: click({'x': 219, 'y': 134})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 219, 'y': 134})\n", - " 47%|██████████████████----------------------| 3449/7340 [121:14<136:46, 28.4 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:27:33,880 - agent.ComputerAgent - INFO - Agent: Added the Dissolve slide transition to the first slide and saved the presentation.\n", - "\n", - "Task completed.\n", - "INFO:agent.ComputerAgent:Agent: Added the Dissolve slide transition to the first slide and saved the presentation.\n", - "\n", - "Task completed.\n", - "2025-08-11 17:27:34,565 - agent.ComputerAgent - INFO - Total usage:\n", - " - completion_tokens: 475\n", - " - prompt_tokens: 6691\n", - " - total_tokens: 7166\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 448\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 4608\n", - " - response_cost: $0.0079\n", - "INFO:agent.ComputerAgent:Total usage:\n", - " - completion_tokens: 475\n", - " - prompt_tokens: 6691\n", - " - total_tokens: 7166\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 448\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 4608\n", - " - response_cost: $0.0079\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 47%|██████████████████----------------------| 3450/7340 [121:17<136:45, 28.4 steps/min]\u001b[92m17:27:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b6bbc5bc-5598-4043-be1e-6ebf2da5f046/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:27:35,955 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m17:27:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m17:27:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:27:36,603 - agent.ComputerAgent - INFO - Computer: move({'x': 166, 'y': 68})\n", - "INFO:agent.ComputerAgent:Computer: move({'x': 166, 'y': 68})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/4b18a76d-ef46-4622-9643-9ee6fe4900a3/invoke \"HTTP/1.1 200 OK\"\n", - " 47%|██████████████████----------------------| 3450/7340 [121:18<136:46, 28.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b3b14802-9f99-46f5-8fa9-9661af7a973d/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:27:37,265 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m17:27:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m17:27:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 47%|██████████████████----------------------| 3451/7340 [121:19<136:43, 28.4 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m17:27:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:27:39,152 - agent.ComputerAgent - INFO - Computer: click({'x': 87, 'y': 158})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 87, 'y': 158})\n", - " 47%|██████████████████----------------------| 3451/7340 [121:20<136:44, 28.4 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:27:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:27:41,144 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+f'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+f'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 47%|██████████████████----------------------| 3452/7340 [121:23<136:43, 28.4 steps/min]\u001b[92m17:27:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:27:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:27:42,465 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m17:27:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:27:43,111 - agent.ComputerAgent - INFO - Computer: double_click({'x': 984, 'y': 145})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 984, 'y': 145})\n", - "\u001b[92m17:27:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/57944bbf-74a1-4e6d-9401-f7b0144460f7/invoke \"HTTP/1.1 200 OK\"\n", - " 47%|██████████████████----------------------| 3452/7340 [121:24<136:45, 28.4 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:27:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:27:44,178 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m17:27:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:27:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:27:45,504 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+a'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+a'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:27:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b3b14802-9f99-46f5-8fa9-9661af7a973d/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 47%|██████████████████----------------------| 3453/7340 [121:27<136:43, 28.4 steps/min]2025-08-11 17:27:46,827 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 86, 'y': 123}, {'x': 83, 'y': 250}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 86, 'y': 123}, {'x': 83, 'y': 250}]})\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:27:47,486 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m17:27:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 47%|██████████████████----------------------| 3466/7340 [121:29<135:47, 28.5 steps/min]\u001b[92m17:27:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:27:48,140 - agent.ComputerAgent - INFO - Computer: click({'x': 225, 'y': 564})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 225, 'y': 564})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:27:49,491 - agent.ComputerAgent - INFO - Computer: type({'text': 'ls -1 *.doc\\n'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'ls -1 *.doc\\n'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/a4b4d291-1fca-4038-8670-448014a55182/reset \"HTTP/1.1 200 OK\"\n", - " 47%|██████████████████----------------------| 3467/7340 [121:31<135:45, 28.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b3b14802-9f99-46f5-8fa9-9661af7a973d/close \"HTTP/1.1 200 OK\"\n", - " 47%|██████████████████----------------------| 3469/7340 [121:32<135:38, 28.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/dc026dd3-8d59-43e0-a475-ecef72f1db12/invoke \"HTTP/1.1 200 OK\"\n", - " 47%|██████████████████----------------------| 3469/7340 [121:33<135:39, 28.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:27:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:27:53,445 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m17:27:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a4b4d291-1fca-4038-8670-448014a55182/invoke \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:28:59 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m17:29:00 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:29:01,218 - agent.ComputerAgent - INFO - Computer: click({'x': 521, 'y': 422})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 521, 'y': 422})\n", - "2025-08-11 17:29:01,891 - agent.ComputerAgent - INFO - Computer: click({'x': 17, 'y': 335})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 17, 'y': 335})\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:29:02,530 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m17:29:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 48%|███████████████████---------------------| 3490/7340 [122:44<135:23, 28.4 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m17:29:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:29:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:29:03,204 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 17:29:03,205 - agent.ComputerAgent - INFO - Computer: click({'button': 'left', 'x': 960, 'y': 713})\n", - "INFO:agent.ComputerAgent:Computer: click({'button': 'left', 'x': 960, 'y': 713})\n", - "2025-08-11 17:29:04,634 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': -646, 'scroll_x': 0, 'x': 890, 'y': 760})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': -646, 'scroll_x': 0, 'x': 890, 'y': 760})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 48%|███████████████████---------------------| 3492/7340 [122:47<135:18, 28.4 steps/min]\u001b[92m17:29:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:29:05,965 - agent.ComputerAgent - INFO - LLM processing started with 42 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 42 messages\n", - "\u001b[92m17:29:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m17:29:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:29:06,998 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 17:29:06,998 - agent.ComputerAgent - INFO - Computer: click({'x': 15, 'y': 432})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 15, 'y': 432})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:29:08,322 - agent.ComputerAgent - INFO - Computer: wait({})\n", - "INFO:agent.ComputerAgent:Computer: wait({})\n", - " 48%|███████████████████---------------------| 3496/7340 [122:54<135:08, 28.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/57944bbf-74a1-4e6d-9401-f7b0144460f7/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3bde46c9-685b-4102-9ef4-a1535d5fcc85/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/479a3737-3ad4-48da-b73f-c8ea6e38d096/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:29:13,557 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m17:29:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/2a28af1e-e61d-489c-a18e-23c5071c9aff/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a4b4d291-1fca-4038-8670-448014a55182/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1909e6f5-b395-4e1d-b1f7-b06406f8731b/invoke \"HTTP/1.1 200 OK\"\n", - " 48%|███████████████████---------------------| 3496/7340 [122:55<135:09, 28.4 steps/min]2025-08-11 17:29:14,241 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m17:29:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0322563b-daf3-41ae-8a08-f5ecd9282bcc/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:29:14,878 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m17:29:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:29:15,558 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m17:29:15 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 48%|███████████████████---------------------| 3496/7340 [122:57<135:12, 28.4 steps/min]\u001b[92m17:29:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/792a6953-2092-47e4-a8a8-57a4af4e3be1/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:29:16,889 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m17:29:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m17:29:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:29:17,556 - agent.ComputerAgent - INFO - Computer: click({'x': 599, 'y': 760})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 599, 'y': 760})\n", - " 48%|███████████████████---------------------| 3496/7340 [122:59<135:13, 28.4 steps/min]2025-08-11 17:29:18,237 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m17:29:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:29:18,917 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m17:29:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 48%|███████████████████---------------------| 3497/7340 [123:00<135:10, 28.4 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:29:19,548 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m17:29:19 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a5f69ad6-9361-4670-b101-61761113341c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 48%|███████████████████---------------------| 3497/7340 [123:01<135:12, 28.4 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:29:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 48%|███████████████████---------------------| 3497/7340 [123:03<135:14, 28.4 steps/min]\u001b[92m17:29:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:29:23,251 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'enter'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'enter'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:29:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:29:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:29:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fde8bca8-8a90-4fed-b46f-c24829445665/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:29:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 48%|███████████████████---------------------| 3497/7340 [123:06<135:17, 28.4 steps/min]\u001b[92m17:29:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:29:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:29:25,847 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': 612, 'x': 655, 'y': 419})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': 612, 'x': 655, 'y': 419})\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m17:29:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:29:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 48%|███████████████████---------------------| 3499/7340 [123:08<135:11, 28.4 steps/min]\u001b[92m17:29:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:29:27,867 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m17:29:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:29:28,508 - agent.ComputerAgent - INFO - Computer: click({'x': 256, 'y': 128})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 256, 'y': 128})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:29:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:29:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:29:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:29:31,110 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+a'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+a'})\n", - "\u001b[92m17:29:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:29:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:29:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:29:31,743 - agent.ComputerAgent - INFO - Computer: click({'x': 182, 'y': 105})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 182, 'y': 105})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:29:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m17:29:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 48%|███████████████████---------------------| 3499/7340 [123:14<135:16, 28.4 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:29:33,138 - agent.ComputerAgent - INFO - Computer: click({'x': 634, 'y': 529})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 634, 'y': 529})\n", - "2025-08-11 17:29:33,791 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 82, 'y': 124}, {'x': 75, 'y': 124}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 82, 'y': 124}, {'x': 75, 'y': 124}]})\n", - "2025-08-11 17:29:34,450 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': -517, 'scroll_x': 0, 'x': 46, 'y': 762})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': -517, 'scroll_x': 0, 'x': 46, 'y': 762})\n", - "\u001b[92m17:29:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:29:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:29:35,110 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m17:29:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m17:29:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:29:35,790 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': 673, 'scroll_x': 0, 'x': 86, 'y': 245})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': 673, 'scroll_x': 0, 'x': 86, 'y': 245})\n", - "\u001b[92m17:29:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 48%|███████████████████---------------------| 3501/7340 [123:17<135:11, 28.4 steps/min]2025-08-11 17:29:36,477 - agent.ComputerAgent - INFO - Computer: click({'x': 15, 'y': 333})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 15, 'y': 333})\n", - "\u001b[92m17:29:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:29:37,144 - agent.ComputerAgent - INFO - Computer: click({'x': 268, 'y': 329})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 268, 'y': 329})\n", - "2025-08-11 17:29:37,807 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 332, 'y': 308}, {'x': 345, 'y': 308}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 332, 'y': 308}, {'x': 345, 'y': 308}]})\n", - " 48%|███████████████████---------------------| 3508/7340 [123:20<134:44, 28.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f8984906-7392-4305-88fa-ae9a4808fa8d/invoke \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "No screenshot found, taking screenshot\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-08-11 17:29:39,468 - agent.ComputerAgent - INFO - LLM processing started with 39 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 39 messages\n", - "\u001b[92m17:29:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:29:40,852 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+f'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+f'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:29:42,174 - agent.ComputerAgent - INFO - Computer: wait({})\n", - "INFO:agent.ComputerAgent:Computer: wait({})\n", - " 48%|███████████████████---------------------| 3508/7340 [123:23<134:47, 28.4 steps/min]2025-08-11 17:29:43,192 - agent.ComputerAgent - INFO - LLM processing started with 40 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 40 messages\n", - "\u001b[92m17:29:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a4b4d291-1fca-4038-8670-448014a55182/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b6bbc5bc-5598-4043-be1e-6ebf2da5f046/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/479a3737-3ad4-48da-b73f-c8ea6e38d096/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0322563b-daf3-41ae-8a08-f5ecd9282bcc/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/dc026dd3-8d59-43e0-a475-ecef72f1db12/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/050a0934-63e8-46a0-8868-de32b28174ef/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/4b18a76d-ef46-4622-9643-9ee6fe4900a3/invoke \"HTTP/1.1 200 OK\"\n", - " 48%|███████████████████---------------------| 3509/7340 [123:25<134:44, 28.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/94463065-a78e-479a-b964-45ad23a48cbb/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:29:43,878 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m17:29:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:29:44,537 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m17:29:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:29:45,557 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m17:29:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b28701c2-0fa4-4b07-bace-735fd2133893/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:29:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/2a28af1e-e61d-489c-a18e-23c5071c9aff/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 48%|███████████████████---------------------| 3510/7340 [123:28<134:43, 28.4 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:29:47,830 - agent.ComputerAgent - INFO - LLM processing started with 42 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 42 messages\n", - "\u001b[92m17:29:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:29:48,461 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m17:29:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m17:29:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 48%|███████████████████---------------------| 3510/7340 [123:30<134:45, 28.4 steps/min]2025-08-11 17:29:49,532 - agent.ComputerAgent - INFO - Computer: click({'x': 728, 'y': 179})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 728, 'y': 179})\n", - "2025-08-11 17:29:50,219 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m17:29:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:29:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 48%|███████████████████---------------------| 3510/7340 [123:32<134:48, 28.4 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:29:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:29:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:29:52,661 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m17:29:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:29:53,352 - agent.ComputerAgent - INFO - Computer: double_click({'x': 181, 'y': 105})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 181, 'y': 105})\n", - "\u001b[92m17:29:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:29:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f8984906-7392-4305-88fa-ae9a4808fa8d/invoke \"HTTP/1.1 200 OK\"\n", - " 48%|███████████████████---------------------| 3511/7340 [123:35<134:47, 28.4 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:29:54,670 - agent.ComputerAgent - INFO - Computer: click({'x': 399, 'y': 541})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 399, 'y': 541})\n", - "2025-08-11 17:29:55,330 - agent.ComputerAgent - INFO - LLM processing started with 41 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 41 messages\n", - "\u001b[92m17:29:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b6bbc5bc-5598-4043-be1e-6ebf2da5f046/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 48%|███████████████████---------------------| 3513/7340 [123:37<134:40, 28.4 steps/min]\u001b[92m17:29:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:29:57,015 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m17:29:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m17:29:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3bde46c9-685b-4102-9ef4-a1535d5fcc85/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 48%|███████████████████---------------------| 3514/7340 [123:38<134:37, 28.4 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:29:57,710 - agent.ComputerAgent - INFO - Computer: click({'x': 525, 'y': 400})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 525, 'y': 400})\n", - "\u001b[92m17:29:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m17:29:58 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:29:59,392 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m17:29:59 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:30:00,039 - agent.ComputerAgent - INFO - Computer: click({'x': 1009, 'y': 101})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 1009, 'y': 101})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/792a6953-2092-47e4-a8a8-57a4af4e3be1/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - " 48%|███████████████████---------------------| 3515/7340 [123:41<134:36, 28.4 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 17:30:00,720 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m17:30:00 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m17:30:00 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:30:01,758 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': -657, 'scroll_x': 0, 'x': 988, 'y': 427})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': -657, 'scroll_x': 0, 'x': 988, 'y': 427})\n", - " 48%|███████████████████---------------------| 3517/7340 [123:43<134:29, 28.4 steps/min]2025-08-11 17:30:02,459 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m17:30:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m17:30:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b6bbc5bc-5598-4043-be1e-6ebf2da5f046/close \"HTTP/1.1 200 OK\"\n", - " 48%|███████████████████---------------------| 3518/7340 [123:44<134:26, 28.4 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m17:30:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:30:04,432 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': 638, 'scroll_x': 0, 'x': 90, 'y': 244})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': 638, 'scroll_x': 0, 'x': 90, 'y': 244})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f8984906-7392-4305-88fa-ae9a4808fa8d/invoke \"HTTP/1.1 200 OK\"\n", - " 48%|███████████████████---------------------| 3518/7340 [123:46<134:27, 28.4 steps/min]2025-08-11 17:30:05,089 - agent.ComputerAgent - INFO - LLM processing started with 43 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 43 messages\n", - "\u001b[92m17:30:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 48%|███████████████████---------------------| 3519/7340 [123:47<134:24, 28.4 steps/min]INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/57944bbf-74a1-4e6d-9401-f7b0144460f7/invoke \"HTTP/1.1 200 OK\"\n", - " 48%|███████████████████---------------------| 3519/7340 [123:48<134:25, 28.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a4b4d291-1fca-4038-8670-448014a55182/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fde8bca8-8a90-4fed-b46f-c24829445665/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/479a3737-3ad4-48da-b73f-c8ea6e38d096/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 17:30:07,300 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m17:30:07 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m17:30:07 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 17:30:08,649 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m17:30:08 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 48%|███████████████████---------------------| 3520/7340 [123:50<134:23, 28.4 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 17:30:09,313 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m17:30:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00&1 | sed -n '1,120p'\\n\"})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': \"ffmpeg -hide_banner -i video.mp4 2>&1 | sed -n '1,120p'\\n\"})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/83c40b56-f0bf-4b3a-97a5-8a1ae567e0a1/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/8d107e49-ae48-4b20-a0a1-7facc71e66f7/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:10:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 62%|████████████████████████----------------| 4522/7340 [164:12<102:20, 27.5 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:10:31,841 - agent.ComputerAgent - INFO - Computer: click({'x': 802, 'y': 437})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 802, 'y': 437})\n", - "2025-08-11 18:10:32,505 - agent.ComputerAgent - INFO - Computer: click({'x': 745, 'y': 540})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 745, 'y': 540})\n", - "2025-08-11 18:10:33,146 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m18:10:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f096381e-eb5b-49dc-8943-c821405cce10/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/afdc88be-f209-412c-8905-25f3e8cbf43a/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/53e1a378-de8f-4a22-9dc0-27eef85d8356/invoke \"HTTP/1.1 200 OK\"\n", - " 62%|████████████████████████----------------| 4523/7340 [164:14<102:17, 27.5 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 18:10:33,803 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m18:10:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m18:10:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:10:34,476 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m18:10:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 18:10:35,141 - agent.ComputerAgent - INFO - Computer: click({'x': 205, 'y': 152})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 205, 'y': 152})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:10:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/91803c09-cf12-4c24-92ec-24bcf68c0897/invoke \"HTTP/1.1 200 OK\"\n", - " 62%|████████████████████████----------------| 4525/7340 [164:17<102:12, 27.5 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 18:10:36,437 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m18:10:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m18:10:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:10:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:10:37,794 - agent.ComputerAgent - INFO - Computer: click({'x': 1014, 'y': 31})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 1014, 'y': 31})\n", - " 62%|████████████████████████----------------| 4526/7340 [164:19<102:10, 27.5 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 18:10:38,466 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m18:10:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m18:10:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:10:39,125 - agent.ComputerAgent - INFO - Computer: click({'x': 399, 'y': 354})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 399, 'y': 354})\n", - " 62%|████████████████████████----------------| 4527/7340 [164:20<102:07, 27.5 steps/min]2025-08-11 18:10:39,795 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m18:10:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m18:10:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 62%|████████████████████████----------------| 4528/7340 [164:22<102:04, 27.5 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:10:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m18:10:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 18:10:42,145 - agent.ComputerAgent - INFO - Computer: click({'x': 437, 'y': 99})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 437, 'y': 99})\n", - "\u001b[92m18:10:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f55f73a3-1816-4f61-8ec1-88f743cec333/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b01cd4a6-3203-476b-8ece-c651b889f821/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 62%|████████████████████████----------------| 4528/7340 [164:24<102:06, 27.5 steps/min]\u001b[92m18:10:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:10:43,477 - agent.ComputerAgent - INFO - Computer: click({'x': 46, 'y': 52})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 46, 'y': 52})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/941d9ec3-7c28-40f6-b948-70db95115571/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/91803c09-cf12-4c24-92ec-24bcf68c0897/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/c83605a3-e62d-48d7-8568-f181d5627773/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fcdab7d3-0448-49dd-b2db-f79a7c74a08b/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 18:10:44,127 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m18:10:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 18:10:44,765 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m18:10:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 18:10:45,424 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m18:10:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m18:10:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 62%|████████████████████████----------------| 4545/7340 [164:27<101:07, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f0aa6a3e-e61f-49b1-ade9-e8150e333596/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cb48f65f-d00e-465a-a0ea-394e844382ca/invoke \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:10:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 18:10:46,114 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m18:10:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m18:10:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:10:46,753 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 51, 'y': 730}, {'x': 991, 'y': 759}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 51, 'y': 730}, {'x': 991, 'y': 759}]})\n", - "2025-08-11 18:10:47,399 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m18:10:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 62%|████████████████████████----------------| 4546/7340 [164:29<101:05, 27.6 steps/min]2025-08-11 18:10:48,065 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m18:10:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:10:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/91803c09-cf12-4c24-92ec-24bcf68c0897/close \"HTTP/1.1 200 OK\"\n", - " 62%|████████████████████████----------------| 4547/7340 [164:30<101:02, 27.6 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m18:10:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m18:10:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:10:50,780 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 18:10:50,781 - agent.ComputerAgent - INFO - Computer: click({'x': 18, 'y': 237})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 18, 'y': 237})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:10:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 62%|████████████████████████----------------| 4547/7340 [164:33<101:04, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00\n", - " 64%|█████████████████████████---------------| 4702/7340 [170:06<95:26, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f55f73a3-1816-4f61-8ec1-88f743cec333/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/2bf9cd89-2d6a-4856-a09d-a771bc278600/invoke \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00 Settings > Privacy and security > Security > Safe Browsing.\n", - "\n", - "Task completed\n", - "INFO:agent.ComputerAgent:Agent: Chrome’s Safe Browsing is now set to Enhanced protection. You’ll get real-time warnings about potentially harmful or deceptive websites, dangerous downloads, and malicious extensions.\n", - "\n", - "If you ever want to change this: Chrome menu > Settings > Privacy and security > Security > Safe Browsing.\n", - "\n", - "Task completed\n", - "2025-08-11 18:22:14,920 - agent.ComputerAgent - INFO - Total usage:\n", - " - completion_tokens: 514\n", - " - prompt_tokens: 6726\n", - " - total_tokens: 7240\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 448\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0135\n", - "INFO:agent.ComputerAgent:Total usage:\n", - " - completion_tokens: 514\n", - " - prompt_tokens: 6726\n", - " - total_tokens: 7240\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 448\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0135\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:22:15 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/26d5566b-d949-4b71-accb-45197078f693/invoke \"HTTP/1.1 200 OK\"\n", - " 66%|██████████████████████████--------------| 4823/7340 [175:57<91:49, 27.4 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:22:16,260 - agent.ComputerAgent - INFO - LLM processing started with 21 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 21 messages\n", - "\u001b[92m18:22:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 66%|██████████████████████████--------------| 4823/7340 [175:58<91:50, 27.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cfe4e097-0434-4025-a00a-78e26d753e51/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d9bc2461-8bd1-4c45-bebd-f473293c581c/invoke \"HTTP/1.1 200 OK\"\n", - " 66%|██████████████████████████--------------| 4824/7340 [175:59<91:47, 27.4 steps/min]2025-08-11 18:22:17,920 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m18:22:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/26d5566b-d949-4b71-accb-45197078f693/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:22:19,103 - agent.ComputerAgent - INFO - LLM processing started with 23 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 23 messages\n", - " 66%|██████████████████████████--------------| 4824/7340 [176:00<91:48, 27.4 steps/min]\u001b[92m18:22:19 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m18:22:19 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 18:22:19,764 - agent.ComputerAgent - INFO - Computer: click({'x': 120, 'y': 53})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 120, 'y': 53})\n", - " 66%|██████████████████████████--------------| 4824/7340 [176:01<91:48, 27.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d9bc2461-8bd1-4c45-bebd-f473293c581c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - " 66%|██████████████████████████--------------| 4838/7340 [176:02<91:02, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d9bc2461-8bd1-4c45-bebd-f473293c581c/close \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m18:22:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/26d5566b-d949-4b71-accb-45197078f693/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a4a2a38e-bec8-46b5-b9c9-3e82144e6ff7/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:22:22,630 - agent.ComputerAgent - INFO - LLM processing started with 25 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 25 messages\n", - "\u001b[92m18:22:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 18:22:23,272 - agent.ComputerAgent - INFO - Computer: click({'x': 833, 'y': 385})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 833, 'y': 385})\n", - " 66%|██████████████████████████--------------| 4838/7340 [176:05<91:03, 27.5 steps/min]2025-08-11 18:22:23,933 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m18:22:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:22:25,259 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+alt+t'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+alt+t'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - " 66%|██████████████████████████--------------| 4840/7340 [176:07<90:58, 27.5 steps/min]\u001b[92m18:22:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 18:22:25,941 - agent.ComputerAgent - INFO - Computer: click({'x': 989, 'y': 73})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 989, 'y': 73})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/06215fad-881b-4e96-84a9-854f2d453fc5/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:22:26,601 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m18:22:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 66%|██████████████████████████--------------| 4840/7340 [176:08<90:58, 27.5 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 18:22:27,300 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m18:22:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m18:22:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:22:27,963 - agent.ComputerAgent - INFO - Computer: click({'x': 901, 'y': 312})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 901, 'y': 312})\n", - " 66%|██████████████████████████--------------| 4841/7340 [176:09<90:56, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:22:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/26d5566b-d949-4b71-accb-45197078f693/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ad87d89c-437d-4ed4-b0f0-a157e7d11bbd/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:22:29,233 - agent.ComputerAgent - INFO - LLM processing started with 27 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 27 messages\n", - "\u001b[92m18:22:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00 Lock).\n", - "2) Select the text box from the Layers/Selection panel (don’t click on the canvas).\n", - "3) Snap it to the left edge:\n", - "- Either set the X position to 0.\n", - "- Or use the Align Left to canvas/page/artboard command.\n", - "4) Unlock/show the image layer again if needed.\n", - "\n", - "Exact steps by app\n", - "- Figma:\n", - " - Lock image: Ctrl+Shift+L (Cmd+Shift+L on Mac) or click the lock icon in Layers.\n", - " - Select the text layer in Layers.\n", - " - In the right panel, set X = 0. Or select the frame and the text, then click Align left. Tip: Cmd/Ctrl+Click cycles through stacked layers; Right‑click > Select layer also helps.\n", - "\n", - "- Photoshop:\n", - " - Lock image layer (padlock in Layers).\n", - " - Select text layer in Layers.\n", - " - Press V for Move tool. Press Ctrl+A (Cmd+A) to Select All, click Align left edges in the top options bar, then Ctrl+D (Cmd+D) to deselect. Alternatively, Window > Properties and set X = 0 px.\n", - "\n", - "- Illustrator:\n", - " - Lock image: Object > Lock > Selection (Ctrl+2 / Cmd+2) or lock in Layers.\n", - " - Select text object.\n", - " - Align panel: set Align To = Artboard, then Horizontal Align Left. Or Transform panel X = 0.\n", - "\n", - "- InDesign:\n", - " - Lock image (Ctrl+L / Cmd+L) or via Layers.\n", - " - Select text frame.\n", - " - Window > Object & Layout > Align. Set Align To = Page, then Align Left. Or set X = 0 in the Control/Properties panel.\n", - "\n", - "- Canva:\n", - " - Select image > Lock (padlock on toolbar).\n", - " - Select text > Position > Left. Nudge with arrow keys if needed; it will snap to the page edge.\n", - "\n", - "- PowerPoint:\n", - " - Home > Select > Selection Pane: click the eye to hide the image (or select the text from the pane).\n", - " - Shape Format > Align > Align to Slide > Align Left.\n", - "\n", - "- Google Slides:\n", - " - Arrange > Order to move im...\n", - "INFO:agent.ComputerAgent:Agent: I can’t see your design app/document open on this computer, so I can’t move the text box directly. Here’s the fastest, foolproof way to get your text box flush left without ever clicking the image again:\n", - "\n", - "Universal quick steps (work in any editor)\n", - "1) Lock or hide the image layer.\n", - "- Use the Layers/Selection panel and click the lock icon on the image layer (or right‑click > Lock).\n", - "2) Select the text box from the Layers/Selection panel (don’t click on the canvas).\n", - "3) Snap it to the left edge:\n", - "- Either set the X position to 0.\n", - "- Or use the Align Left to canvas/page/artboard command.\n", - "4) Unlock/show the image layer again if needed.\n", - "\n", - "Exact steps by app\n", - "- Figma:\n", - " - Lock image: Ctrl+Shift+L (Cmd+Shift+L on Mac) or click the lock icon in Layers.\n", - " - Select the text layer in Layers.\n", - " - In the right panel, set X = 0. Or select the frame and the text, then click Align left. Tip: Cmd/Ctrl+Click cycles through stacked layers; Right‑click > Select layer also helps.\n", - "\n", - "- Photoshop:\n", - " - Lock image layer (padlock in Layers).\n", - " - Select text layer in Layers.\n", - " - Press V for Move tool. Press Ctrl+A (Cmd+A) to Select All, click Align left edges in the top options bar, then Ctrl+D (Cmd+D) to deselect. Alternatively, Window > Properties and set X = 0 px.\n", - "\n", - "- Illustrator:\n", - " - Lock image: Object > Lock > Selection (Ctrl+2 / Cmd+2) or lock in Layers.\n", - " - Select text object.\n", - " - Align panel: set Align To = Artboard, then Horizontal Align Left. Or Transform panel X = 0.\n", - "\n", - "- InDesign:\n", - " - Lock image (Ctrl+L / Cmd+L) or via Layers.\n", - " - Select text frame.\n", - " - Window > Object & Layout > Align. Set Align To = Page, then Align Left. Or set X = 0 in the Control/Properties panel.\n", - "\n", - "- Canva:\n", - " - Select image > Lock (padlock on toolbar).\n", - " - Select text > Position > Left. Nudge with arrow keys if needed; it will snap to the page edge.\n", - "\n", - "- PowerPoint:\n", - " - Home > Select > Selection Pane: click the eye to hide the image (or select the text from the pane).\n", - " - Shape Format > Align > Align to Slide > Align Left.\n", - "\n", - "- Google Slides:\n", - " - Arrange > Order to move im...\n", - "2025-08-11 18:35:23,380 - agent.ComputerAgent - INFO - Total usage:\n", - " - completion_tokens: 3277\n", - " - prompt_tokens: 1951\n", - " - total_tokens: 5228\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 2624\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0352\n", - "INFO:agent.ComputerAgent:Total usage:\n", - " - completion_tokens: 3277\n", - " - prompt_tokens: 1951\n", - " - total_tokens: 5228\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 2624\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0352\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d05e9e78-ad03-41fc-a347-043ec46bd299/invoke \"HTTP/1.1 200 OK\"\n", - " 70%|████████████████████████████------------| 5147/7340 [189:05<80:33, 27.2 steps/min]2025-08-11 18:35:24,059 - agent.ComputerAgent - INFO - LLM processing started with 33 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 33 messages\n", - "\u001b[92m18:35:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 70%|████████████████████████████------------| 5147/7340 [189:06<80:34, 27.2 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:35:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 70%|████████████████████████████------------| 5147/7340 [189:07<80:34, 27.2 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/c268b680-eafe-4b8d-914a-28e5540231cd/invoke \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:35:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m18:35:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m18:35:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0d923fcd-4666-4869-8ad2-17460c904167/invoke \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:35:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 70%|████████████████████████████------------| 5147/7340 [189:08<80:35, 27.2 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 18:35:27,111 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 76, 'y': 181}, {'x': 124, 'y': 181}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 76, 'y': 181}, {'x': 124, 'y': 181}]})\n", - "\u001b[92m18:35:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:35:27,806 - agent.ComputerAgent - INFO - Computer: click({'x': 290, 'y': 149})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 290, 'y': 149})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - " 70%|████████████████████████████------------| 5148/7340 [189:09<80:32, 27.2 steps/min]2025-08-11 18:35:28,462 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m18:35:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 70%|████████████████████████████------------| 5150/7340 [189:10<80:26, 27.2 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d05e9e78-ad03-41fc-a347-043ec46bd299/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:35:29,639 - agent.ComputerAgent - INFO - LLM processing started with 35 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 35 messages\n", - "\u001b[92m18:35:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 70%|████████████████████████████------------| 5150/7340 [189:13<80:28, 27.2 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/2350cfc0-8e2e-4302-b87c-df7d35bd6eea/invoke \"HTTP/1.1 200 OK\"\n", - " 70%|████████████████████████████------------| 5151/7340 [189:14<80:25, 27.2 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d05e9e78-ad03-41fc-a347-043ec46bd299/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:35:33,840 - agent.ComputerAgent - INFO - LLM processing started with 37 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 37 messages\n", - "\u001b[92m18:35:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/89880137-9134-4973-9389-b3535802254c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 70%|████████████████████████████------------| 5151/7340 [189:15<80:25, 27.2 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:35:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 70%|████████████████████████████------------| 5151/7340 [189:16<80:26, 27.2 steps/min]\u001b[92m18:35:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:35:35,720 - agent.ComputerAgent - INFO - Computer: click({'x': 207, 'y': 488})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 207, 'y': 488})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - " 70%|████████████████████████████------------| 5152/7340 [189:17<80:23, 27.2 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/2350cfc0-8e2e-4302-b87c-df7d35bd6eea/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/c268b680-eafe-4b8d-914a-28e5540231cd/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:35:38,050 - agent.ComputerAgent - INFO - Agent: I converted the opened ODS on your Desktop to a CSV with the same base name while LibreOffice was running.\n", - "\n", - "Command used:\n", - "mkdir -p /tmp/lo-temp-profile && libreoffice --headless -env:UserInstallation=file:///tmp/lo-temp-profile --convert-to \"csv:Text - txt - csv (StarCalc):44,34,0\" --outdir ~/Desktop ~/Desktop/file_example_ODS_5000.ods\n", - "\n", - "Notes:\n", - "- A temporary LibreOffice profile was used (-env:UserInstallation=…) so the conversion works even with the GUI instance open.\n", - "- The CSV file has been created on your Desktop as file_example_ODS_5000.csv.\n", - "\n", - "Task completed.\n", - "INFO:agent.ComputerAgent:Agent: I converted the opened ODS on your Desktop to a CSV with the same base name while LibreOffice was running.\n", - "\n", - "Command used:\n", - "mkdir -p /tmp/lo-temp-profile && libreoffice --headless -env:UserInstallation=file:///tmp/lo-temp-profile --convert-to \"csv:Text - txt - csv (StarCalc):44,34,0\" --outdir ~/Desktop ~/Desktop/file_example_ODS_5000.ods\n", - "\n", - "Notes:\n", - "- A temporary LibreOffice profile was used (-env:UserInstallation=…) so the conversion works even with the GUI instance open.\n", - "- The CSV file has been created on your Desktop as file_example_ODS_5000.csv.\n", - "\n", - "Task completed.\n", - "2025-08-11 18:35:38,700 - agent.ComputerAgent - INFO - Total usage:\n", - " - completion_tokens: 920\n", - " - prompt_tokens: 10826\n", - " - total_tokens: 11746\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 768\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0227\n", - "INFO:agent.ComputerAgent:Total usage:\n", - " - completion_tokens: 920\n", - " - prompt_tokens: 10826\n", - " - total_tokens: 11746\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 768\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0227\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/2350cfc0-8e2e-4302-b87c-df7d35bd6eea/close \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/c268b680-eafe-4b8d-914a-28e5540231cd/close \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d05e9e78-ad03-41fc-a347-043ec46bd299/invoke \"HTTP/1.1 200 OK\"\n", - " 70%|████████████████████████████------------| 5173/7340 [189:20<79:18, 27.3 steps/min]2025-08-11 18:35:39,393 - agent.ComputerAgent - INFO - LLM processing started with 39 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 39 messages\n", - "\u001b[92m18:35:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/055914cd-07b0-4dcd-9407-c6975b1eccbf/invoke \"HTTP/1.1 200 OK\"\n", - " 70%|████████████████████████████------------| 5173/7340 [189:22<79:19, 27.3 steps/min]2025-08-11 18:35:41,381 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m18:35:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/655a0f34-fb5e-49f8-9a65-531af668d6c6/reset \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:35:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/5afdf327-0d8f-4749-8016-19cb1aedf273/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/7a6ead00-3730-4f34-9acb-3c8109ec140a/reset \"HTTP/1.1 200 OK\"\n", - " 70%|████████████████████████████------------| 5173/7340 [189:24<79:20, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - " 70%|████████████████████████████------------| 5174/7340 [189:25<79:18, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/5afdf327-0d8f-4749-8016-19cb1aedf273/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d05e9e78-ad03-41fc-a347-043ec46bd299/invoke \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 25%|██▌ | 1/4 [00:01<00:04, 1.67s/it]2025-08-11 18:35:45,241 - agent.ComputerAgent - INFO - LLM processing started with 41 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 41 messages\n", - "\u001b[92m18:35:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 71%|████████████████████████████------------| 5182/7340 [189:26<78:53, 27.4 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/5afdf327-0d8f-4749-8016-19cb1aedf273/close \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7a6ead00-3730-4f34-9acb-3c8109ec140a/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/655a0f34-fb5e-49f8-9a65-531af668d6c6/invoke \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 50%|█████ | 2/4 [00:03<00:03, 1.62s/it]27.4 steps/min]2025-08-11 18:35:47,491 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m18:35:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 75%|███████▌ | 3/4 [00:04<00:01, 1.58s/it]27.4 steps/min]2025-08-11 18:35:48,319 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m18:35:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Loading checkpoint shards: 100%|██████████| 4/4 [00:05<00:00, 1.33s/it]27.4 steps/min]\n", - " 71%|████████████████████████████------------| 5183/7340 [189:31<78:52, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d05e9e78-ad03-41fc-a347-043ec46bd299/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 18:35:50,250 - agent.ComputerAgent - INFO - LLM processing started with 43 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 43 messages\n", - "\u001b[92m18:35:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 71%|████████████████████████████------------| 5183/7340 [189:32<78:52, 27.3 steps/min]\u001b[92m18:35:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:35:50,943 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': 713, 'scroll_x': 0, 'x': 716, 'y': 646})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': 713, 'scroll_x': 0, 'x': 716, 'y': 646})\n", - " 71%|████████████████████████████------------| 5184/7340 [189:34<78:50, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - " 71%|████████████████████████████------------| 5185/7340 [189:35<78:47, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d05e9e78-ad03-41fc-a347-043ec46bd299/invoke \"HTTP/1.1 200 OK\"\n", - " 71%|████████████████████████████------------| 5185/7340 [189:38<78:49, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:35:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 71%|████████████████████████████------------| 5185/7340 [189:39<78:49, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9b006d7b-b853-41ed-8a84-b7eaa5b6e94b/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d05e9e78-ad03-41fc-a347-043ec46bd299/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 25%|██▌ | 1/4 [00:01<00:04, 1.66s/it]2025-08-11 18:35:59,836 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+shift+p'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+shift+p'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d05e9e78-ad03-41fc-a347-043ec46bd299/close \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 50%|█████ | 2/4 [00:03<00:03, 1.61s/it]27.3 steps/min]2025-08-11 18:36:01,386 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m18:36:01 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 71%|████████████████████████████------------| 5185/7340 [189:43<78:51, 27.3 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 18:36:02,052 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m18:36:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Loading checkpoint shards: 100%|██████████| 4/4 [00:05<00:00, 1.40s/it]27.3 steps/min]\n", - "INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - " 71%|████████████████████████████------------| 5185/7340 [189:46<78:52, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m18:36:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 71%|████████████████████████████------------| 5185/7340 [189:47<78:52, 27.3 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Loading checkpoint shards: 25%|██▌ | 1/4 [00:01<00:04, 1.64s/it]27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/89880137-9134-4973-9389-b3535802254c/invoke \"HTTP/1.1 200 OK\"\n", - " 71%|████████████████████████████------------| 5186/7340 [189:49<78:50, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/89880137-9134-4973-9389-b3535802254c/close \"HTTP/1.1 200 OK\"\n", - " 71%|████████████████████████████------------| 5186/7340 [189:51<78:51, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/497d5104-1e6e-44a9-a164-fec745a337b6/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 100%|██████████| 4/4 [00:05<00:00, 1.35s/it]27.3 steps/min]\n", - "\u001b[92m18:36:11 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:36:12,164 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 18:36:12,165 - agent.ComputerAgent - INFO - Computer: click({'x': 16, 'y': 428})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 16, 'y': 428})\n", - " 71%|████████████████████████████------------| 5186/7340 [189:54<78:52, 27.3 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 71%|████████████████████████████------------| 5187/7340 [189:56<78:50, 27.3 steps/min]\u001b[92m18:36:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:36:15,365 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 18:36:15,367 - agent.ComputerAgent - INFO - Computer: double_click({'x': 989, 'y': 650})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 989, 'y': 650})\n", - " 71%|████████████████████████████------------| 5188/7340 [189:59<78:48, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/655a0f34-fb5e-49f8-9a65-531af668d6c6/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:36:18,079 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m18:36:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 71%|████████████████████████████------------| 5188/7340 [190:02<78:49, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7a6ead00-3730-4f34-9acb-3c8109ec140a/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:36:21,321 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m18:36:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 71%|████████████████████████████------------| 5188/7340 [190:04<78:50, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:36:24,203 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+c'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+c'})\n", - " 71%|████████████████████████████------------| 5188/7340 [190:05<78:51, 27.3 steps/min]2025-08-11 18:36:25,341 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m18:36:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 71%|████████████████████████████------------| 5188/7340 [190:07<78:51, 27.3 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 71%|████████████████████████████------------| 5188/7340 [190:10<78:52, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:36:29,780 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'pagedown'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'pagedown'})\n", - " 71%|████████████████████████████------------| 5189/7340 [190:12<78:50, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:36:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 71%|████████████████████████████------------| 5189/7340 [190:13<78:51, 27.3 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Loading checkpoint shards: 50%|█████ | 2/4 [00:03<00:03, 1.58s/it]27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9b006d7b-b853-41ed-8a84-b7eaa5b6e94b/invoke \"HTTP/1.1 200 OK\"\n", - " 71%|████████████████████████████------------| 5189/7340 [190:17<78:53, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 75%|███████▌ | 3/4 [00:04<00:01, 1.56s/it]\u001b[92m18:36:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Loading checkpoint shards: 100%|██████████| 4/4 [00:05<00:00, 1.31s/it]27.3 steps/min]\n", - "2025-08-11 18:36:37,871 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m18:36:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 18:36:39,406 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+shift+p'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+shift+p'})\n", - " 71%|████████████████████████████------------| 5189/7340 [190:21<78:54, 27.3 steps/min]\u001b[92m18:36:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 18:36:40,047 - agent.ComputerAgent - INFO - Computer: click({'x': 15, 'y': 142})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 15, 'y': 142})\n", - "\u001b[92m18:36:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:36:40,733 - agent.ComputerAgent - INFO - Computer: click({'x': 15, 'y': 629})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 15, 'y': 629})\n", - " 71%|████████████████████████████------------| 5189/7340 [190:22<78:54, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0d923fcd-4666-4869-8ad2-17460c904167/invoke \"HTTP/1.1 200 OK\"\n", - " 71%|████████████████████████████------------| 5201/7340 [190:23<78:18, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0d923fcd-4666-4869-8ad2-17460c904167/close \"HTTP/1.1 200 OK\"\n", - " 71%|████████████████████████████------------| 5201/7340 [190:24<78:18, 27.3 steps/min]INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - " 71%|████████████████████████████------------| 5201/7340 [190:26<78:19, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7a6ead00-3730-4f34-9acb-3c8109ec140a/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:36:46,172 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m18:36:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:36:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/055914cd-07b0-4dcd-9407-c6975b1eccbf/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 71%|████████████████████████████------------| 5201/7340 [190:28<78:20, 27.3 steps/min]2025-08-11 18:36:47,482 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m18:36:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - " 71%|████████████████████████████------------| 5201/7340 [190:30<78:21, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b3df65c5-9d1c-44fd-b9bb-37f1f0cd64dc/invoke \"HTTP/1.1 200 OK\"\n", - " 71%|████████████████████████████------------| 5201/7340 [190:32<78:21, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - " 71%|████████████████████████████------------| 5201/7340 [190:33<78:22, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e42da596-e101-4fd3-9dea-8a1d63615dad/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1fef1c7a-93ef-4a63-b067-399dfc4ff08a/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/b3df65c5-9d1c-44fd-b9bb-37f1f0cd64dc/reset \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 75%|███████▌ | 3/4 [00:04<00:01, 1.57s/it]27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/497d5104-1e6e-44a9-a164-fec745a337b6/reset \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 100%|██████████| 4/4 [00:05<00:00, 1.32s/it]\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 18:36:55,357 - agent.ComputerAgent - INFO - Computer: wait({})\n", - "INFO:agent.ComputerAgent:Computer: wait({})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b3df65c5-9d1c-44fd-b9bb-37f1f0cd64dc/invoke \"HTTP/1.1 200 OK\"\n", - " 71%|████████████████████████████------------| 5201/7340 [190:37<78:23, 27.3 steps/min]2025-08-11 18:36:56,039 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m18:36:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m18:36:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:36:56,709 - agent.ComputerAgent - INFO - Computer: click({'x': 15, 'y': 387})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 15, 'y': 387})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/497d5104-1e6e-44a9-a164-fec745a337b6/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/e42da596-e101-4fd3-9dea-8a1d63615dad/reset \"HTTP/1.1 200 OK\"\n", - " 71%|████████████████████████████------------| 5202/7340 [190:38<78:21, 27.3 steps/min]2025-08-11 18:36:57,382 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m18:36:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/1fef1c7a-93ef-4a63-b067-399dfc4ff08a/reset \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:36:58 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 71%|████████████████████████████------------| 5203/7340 [190:39<78:18, 27.3 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e42da596-e101-4fd3-9dea-8a1d63615dad/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:36:58,641 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m18:36:58 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m18:36:58 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:36:59,325 - agent.ComputerAgent - INFO - Computer: click({'x': 368, 'y': 561})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 368, 'y': 561})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - " 71%|████████████████████████████------------| 5203/7340 [190:41<78:19, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1fef1c7a-93ef-4a63-b067-399dfc4ff08a/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:37:00,501 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m18:37:00 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 71%|████████████████████████████------------| 5204/7340 [190:42<78:16, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/af5d4b08-d761-4bf8-a2c7-7ce16ed98ab9/invoke \"HTTP/1.1 200 OK\"\n", - " 71%|████████████████████████████------------| 5204/7340 [190:43<78:16, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:37:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7a6ead00-3730-4f34-9acb-3c8109ec140a/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:37:03,933 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 18:37:03,935 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'meta'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'meta'})\n", - " 71%|████████████████████████████------------| 5204/7340 [190:45<78:17, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m18:37:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:37:05,291 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m18:37:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/655a0f34-fb5e-49f8-9a65-531af668d6c6/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m18:37:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 18:37:06,012 - agent.ComputerAgent - INFO - Computer: click({'x': 524, 'y': 503})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 524, 'y': 503})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/055914cd-07b0-4dcd-9407-c6975b1eccbf/invoke \"HTTP/1.1 200 OK\"\n", - " 71%|████████████████████████████------------| 5205/7340 [190:47<78:15, 27.3 steps/min]\u001b[92m18:37:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:37:06,653 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 18:37:06,654 - agent.ComputerAgent - INFO - Computer: click({'x': 13, 'y': 41})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 13, 'y': 41})\n", - "2025-08-11 18:37:07,313 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m18:37:07 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:37:08,648 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 18:37:08,649 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'win'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'win'})\n", - " 71%|████████████████████████████------------| 5206/7340 [190:50<78:13, 27.3 steps/min]2025-08-11 18:37:09,323 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m18:37:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 71%|████████████████████████████------------| 5208/7340 [190:55<78:09, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9b006d7b-b853-41ed-8a84-b7eaa5b6e94b/invoke \"HTTP/1.1 200 OK\"\n", - " 71%|████████████████████████████------------| 5208/7340 [190:56<78:09, 27.3 steps/min]2025-08-11 18:37:15,613 - agent.ComputerAgent - INFO - LLM processing started with 40 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 40 messages\n", - "\u001b[92m18:37:15 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b3df65c5-9d1c-44fd-b9bb-37f1f0cd64dc/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e42da596-e101-4fd3-9dea-8a1d63615dad/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1fef1c7a-93ef-4a63-b067-399dfc4ff08a/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:openai._base_client:Retrying request to /chat/completions in 0.403242 seconds\n", - " 71%|████████████████████████████------------| 5208/7340 [190:57<78:10, 27.3 steps/min]2025-08-11 18:37:16,773 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m18:37:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:37:18,458 - agent.ComputerAgent - INFO - Computer: type({'text': 'drive.google.com'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'drive.google.com'})\n", - " 71%|████████████████████████████------------| 5208/7340 [191:00<78:11, 27.3 steps/min]2025-08-11 18:37:19,460 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m18:37:19 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 71%|████████████████████████████------------| 5209/7340 [191:01<78:08, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:37:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 71%|████████████████████████████------------| 5209/7340 [191:02<78:09, 27.3 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 18:37:21,836 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m18:37:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 71%|████████████████████████████------------| 5209/7340 [191:03<78:09, 27.3 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m18:37:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:37:22,505 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 18:37:22,506 - agent.ComputerAgent - INFO - Computer: click({'x': 1006, 'y': 9})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 1006, 'y': 9})\n", - " 71%|████████████████████████████------------| 5209/7340 [191:04<78:10, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:37:24,905 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+v'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+v'})\n", - " 71%|████████████████████████████------------| 5210/7340 [191:06<78:07, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7a6ead00-3730-4f34-9acb-3c8109ec140a/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:37:26,064 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m18:37:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 18:37:26,733 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - " 71%|████████████████████████████------------| 5210/7340 [191:08<78:08, 27.3 steps/min]\u001b[92m18:37:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:37:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:37:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m18:37:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/497d5104-1e6e-44a9-a164-fec745a337b6/invoke \"HTTP/1.1 200 OK\"\n", - " 71%|████████████████████████████------------| 5210/7340 [191:10<78:09, 27.3 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m18:37:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 18:37:29,395 - agent.ComputerAgent - INFO - Computer: click({'x': 16, 'y': 429})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 16, 'y': 429})\n", - "\u001b[92m18:37:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:37:30,066 - agent.ComputerAgent - INFO - Computer: click({'x': 18, 'y': 45})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 18, 'y': 45})\n", - "2025-08-11 18:37:30,744 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m18:37:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 71%|████████████████████████████------------| 5210/7340 [191:12<78:10, 27.2 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m18:37:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:37:31,387 - agent.ComputerAgent - INFO - Computer: click({'x': 18, 'y': 239})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 18, 'y': 239})\n", - " 71%|████████████████████████████------------| 5212/7340 [191:13<78:04, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:37:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 71%|████████████████████████████------------| 5213/7340 [191:14<78:01, 27.3 steps/min]\u001b[92m18:37:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:37:33,218 - agent.ComputerAgent - INFO - Computer: click({'x': 49, 'y': 53})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 49, 'y': 53})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:37:34,578 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'enter'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'enter'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/c1b31663-de2f-4fd6-a091-28bf62a74f86/invoke \"HTTP/1.1 200 OK\"\n", - " 71%|████████████████████████████------------| 5214/7340 [191:16<77:59, 27.3 steps/min]INFO:openai._base_client:Retrying request to /chat/completions in 0.421017 seconds\n", - " 71%|████████████████████████████------------| 5215/7340 [191:17<77:56, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1fef1c7a-93ef-4a63-b067-399dfc4ff08a/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:37:36,730 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m18:37:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b3df65c5-9d1c-44fd-b9bb-37f1f0cd64dc/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 71%|████████████████████████████------------| 5215/7340 [191:18<77:57, 27.3 steps/min]2025-08-11 18:37:37,733 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m18:37:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e42da596-e101-4fd3-9dea-8a1d63615dad/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 71%|████████████████████████████------------| 5215/7340 [191:19<77:57, 27.3 steps/min]2025-08-11 18:37:38,404 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m18:37:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:37:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:37:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/655a0f34-fb5e-49f8-9a65-531af668d6c6/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 71%|████████████████████████████------------| 5215/7340 [191:21<77:58, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7a6ead00-3730-4f34-9acb-3c8109ec140a/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 18:37:40,395 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m18:37:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m18:37:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:37:41,082 - agent.ComputerAgent - INFO - Computer: click({'x': 605, 'y': 527})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 605, 'y': 527})\n", - "2025-08-11 18:37:41,718 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m18:37:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 71%|████████████████████████████------------| 5215/7340 [191:23<77:59, 27.2 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m18:37:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:37:42,379 - agent.ComputerAgent - INFO - Computer: click({'x': 525, 'y': 502})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 525, 'y': 502})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:37:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 71%|████████████████████████████------------| 5216/7340 [191:25<77:56, 27.2 steps/min]\u001b[92m18:37:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m18:37:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 18:37:44,917 - agent.ComputerAgent - INFO - Computer: click({'x': 652, 'y': 139})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 652, 'y': 139})\n", - " 71%|████████████████████████████------------| 5217/7340 [191:26<77:54, 27.3 steps/min]\u001b[92m18:37:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:37:45,530 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': -1169, 'scroll_x': 0, 'x': 526, 'y': 427})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': -1169, 'scroll_x': 0, 'x': 526, 'y': 427})\n", - " 71%|████████████████████████████------------| 5219/7340 [191:29<77:49, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3077c8ef-543a-4fa8-b46c-49b632230eed/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:37:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 71%|████████████████████████████------------| 5219/7340 [191:30<77:49, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9b006d7b-b853-41ed-8a84-b7eaa5b6e94b/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:37:50,126 - agent.ComputerAgent - INFO - Computer: type({'text': 'Thunderbird'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'Thunderbird'})\n", - "\u001b[92m18:37:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/1064657b-b89a-4eeb-8197-1c110af6b752/reset \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 71%|████████████████████████████------------| 5219/7340 [191:31<77:50, 27.2 steps/min]2025-08-11 18:37:50,787 - agent.ComputerAgent - INFO - Computer: click({'x': 749, 'y': 440})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 749, 'y': 440})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/055914cd-07b0-4dcd-9407-c6975b1eccbf/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:37:51,454 - agent.ComputerAgent - INFO - LLM processing started with 40 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 40 messages\n", - "\u001b[92m18:37:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3077c8ef-543a-4fa8-b46c-49b632230eed/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:37:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 71%|████████████████████████████------------| 5220/7340 [191:34<77:48, 27.2 steps/min]\u001b[92m18:37:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 18:37:53,444 - agent.ComputerAgent - INFO - LLM processing started with 42 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 42 messages\n", - "\u001b[92m18:37:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m18:37:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 18:37:54,116 - agent.ComputerAgent - INFO - Computer: click({'x': 1008, 'y': 10})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 1008, 'y': 10})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a72854f0-3bb0-4711-a18e-7a467a56390e/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/3077c8ef-543a-4fa8-b46c-49b632230eed/close \"HTTP/1.1 200 OK\"\n", - " 71%|████████████████████████████------------| 5223/7340 [191:35<77:39, 27.3 steps/min]\u001b[92m18:37:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:37:55,819 - agent.ComputerAgent - INFO - Computer: click({'x': 80, 'y': 430})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 80, 'y': 430})\n", - "2025-08-11 18:37:56,505 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m18:37:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1fef1c7a-93ef-4a63-b067-399dfc4ff08a/invoke \"HTTP/1.1 200 OK\"\n", - " 71%|████████████████████████████------------| 5224/7340 [191:38<77:37, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:37:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:37:57,824 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m18:37:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 71%|████████████████████████████------------| 5225/7340 [191:39<77:34, 27.3 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/e42da596-e101-4fd3-9dea-8a1d63615dad/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/af5d4b08-d761-4bf8-a2c7-7ce16ed98ab9/invoke \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00 Settings > On startup.\n", - "- Select “Open the New Tab page,” or “Continue where you left off.”\n", - "- If “Open a specific page or set of pages” is selected, remove funbrain.com (click the three dots beside it > Remove).\n", - "- Also check Settings > Appearance > Show home button. If enabled, set it to “New Tab page” and make sure funbrain.com isn’t listed there.\n", - "\n", - "2) Unpin any pinned tab\n", - "- If you see a tiny pin icon on the funbrain tab, right‑click the tab > Unpin. Close it.\n", - "\n", - "3) Remove any extension hijacking your homepage/new tab\n", - "- Go to chrome://extensions\n", - "- Toggle off or Remove any unknown extensions, especially ones referencing “New Tab,” “Home,” “Search,” or anything you don’t recognize.\n", - "- Restart Chrome.\n", - "\n", - "4) Check if Chrome is “Managed by your organization” (policy hijack)\n", - "- Go to chrome://policy\n", - "- If you see policies like HomepageLocation, NewTabPageLocation, RestoreOnStartup, or StartupURLs pointing to funbrain.com (and this is your personal device), remove the policies:\n", - " - Press Windows key, type “regedit”, open Registry Editor.\n", - " - Navigate to:\n", - " - HKEY_CURRENT_USER\\Software\\Policies\\Google\\Chrome\n", - " - HKEY_LOCAL_MACHINE\\SOFTWARE\\Policies\\Google\\Chrome\n", - " - Delete values like HomepageLocation, StartupURLs, RestoreOnStartup, NewTabPageLocation, or delete the Chrome key entirely if it only contains unwanted values.\n", - " - Easier method (PowerShell as Administrator):\n", - " Remove-Item -Path \"HKCU:\\Software\\Policies\\Google\\Chrome\" -Recurse -Force -ErrorAction SilentlyContinue\n", - " Remove-Item -Path \"HKLM:\\SOFTWARE\\Policies\\Google\\Chrome\" -Recurse -Force -ErrorAction SilentlyContinue\n", - " - Reboot and recheck chrome://policy (it should be empty or unrelated).\n", - "\n", - "5) Fix the shortcut that launches Chrome\n", - "- Right‑click the Chrome shortcut you normall...\n", - "INFO:agent.ComputerAgent:Agent: This isn’t a cache issue. Chrome is being told to open that site by a setting, an extension/policy, or a modified shortcut. Do the steps below in order (quickest first). They’re written for Windows on your Surface Pro.\n", - "\n", - "1) Fix Chrome’s startup settings\n", - "- Open Chrome.\n", - "- Menu (three dots) > Settings > On startup.\n", - "- Select “Open the New Tab page,” or “Continue where you left off.”\n", - "- If “Open a specific page or set of pages” is selected, remove funbrain.com (click the three dots beside it > Remove).\n", - "- Also check Settings > Appearance > Show home button. If enabled, set it to “New Tab page” and make sure funbrain.com isn’t listed there.\n", - "\n", - "2) Unpin any pinned tab\n", - "- If you see a tiny pin icon on the funbrain tab, right‑click the tab > Unpin. Close it.\n", - "\n", - "3) Remove any extension hijacking your homepage/new tab\n", - "- Go to chrome://extensions\n", - "- Toggle off or Remove any unknown extensions, especially ones referencing “New Tab,” “Home,” “Search,” or anything you don’t recognize.\n", - "- Restart Chrome.\n", - "\n", - "4) Check if Chrome is “Managed by your organization” (policy hijack)\n", - "- Go to chrome://policy\n", - "- If you see policies like HomepageLocation, NewTabPageLocation, RestoreOnStartup, or StartupURLs pointing to funbrain.com (and this is your personal device), remove the policies:\n", - " - Press Windows key, type “regedit”, open Registry Editor.\n", - " - Navigate to:\n", - " - HKEY_CURRENT_USER\\Software\\Policies\\Google\\Chrome\n", - " - HKEY_LOCAL_MACHINE\\SOFTWARE\\Policies\\Google\\Chrome\n", - " - Delete values like HomepageLocation, StartupURLs, RestoreOnStartup, NewTabPageLocation, or delete the Chrome key entirely if it only contains unwanted values.\n", - " - Easier method (PowerShell as Administrator):\n", - " Remove-Item -Path \"HKCU:\\Software\\Policies\\Google\\Chrome\" -Recurse -Force -ErrorAction SilentlyContinue\n", - " Remove-Item -Path \"HKLM:\\SOFTWARE\\Policies\\Google\\Chrome\" -Recurse -Force -ErrorAction SilentlyContinue\n", - " - Reboot and recheck chrome://policy (it should be empty or unrelated).\n", - "\n", - "5) Fix the shortcut that launches Chrome\n", - "- Right‑click the Chrome shortcut you normall...\n", - "2025-08-11 18:49:11,237 - agent.ComputerAgent - INFO - Total usage:\n", - " - completion_tokens: 2424\n", - " - prompt_tokens: 1953\n", - " - total_tokens: 4377\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 1600\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0267\n", - "INFO:agent.ComputerAgent:Total usage:\n", - " - completion_tokens: 2424\n", - " - prompt_tokens: 1953\n", - " - total_tokens: 4377\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 1600\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0267\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/497d5104-1e6e-44a9-a164-fec745a337b6/invoke \"HTTP/1.1 200 OK\"\n", - " 76%|██████████████████████████████----------| 5568/7340 [202:52<64:34, 27.4 steps/min]2025-08-11 18:49:11,903 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m18:49:11 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 18:49:12,597 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m18:49:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0ce9d177-2b9a-4fde-a8a5-eb1b59248c8f/invoke \"HTTP/1.1 200 OK\"\n", - " 76%|██████████████████████████████----------| 5568/7340 [202:54<64:34, 27.4 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:49:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 18:49:13,963 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m18:49:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 76%|██████████████████████████████----------| 5568/7340 [202:55<64:34, 27.4 steps/min]\u001b[92m18:49:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:49:14,626 - agent.ComputerAgent - INFO - Computer: click({'button': 'left', 'x': 18, 'y': 237})\n", - "INFO:agent.ComputerAgent:Computer: click({'button': 'left', 'x': 18, 'y': 237})\n", - "2025-08-11 18:49:16,032 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m18:49:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/8a9dd85a-f951-495e-aea0-d3864853591e/invoke \"HTTP/1.1 200 OK\"\n", - " 76%|██████████████████████████████----------| 5568/7340 [202:57<64:35, 27.4 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:49:17,933 - agent.ComputerAgent - INFO - Computer: type({'text': 'ICLR 2013 location'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'ICLR 2013 location'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:49:19,279 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+a'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+a'})\n", - " 76%|██████████████████████████████----------| 5569/7340 [203:01<64:33, 27.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/8a9dd85a-f951-495e-aea0-d3864853591e/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:49:19 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:49:21,241 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 18:49:21,241 - agent.ComputerAgent - INFO - Agent: Yes. VLC is set by default to reuse the first instance when you open a file (especially from the file manager). Turn that off and you can run multiple, independent players.\n", - "\n", - "Do this:\n", - "- Open VLC.\n", - "- Go to Tools -> Preferences (Ctrl+P).\n", - "- In the Simple settings view on the Interface tab, find Playlist and Instances.\n", - "- Uncheck:\n", - " - Allow only one instance\n", - " - Use only one instance when started from file manager\n", - " - Enqueue items into playlist in one instance (if you see it)\n", - "- Click Save.\n", - "- Quit all VLC windows completely (Ctrl+Q) so the setting takes effect, then start VLC again and open a different file in each window.\n", - "\n", - "Command-line alternative (Windows/macOS/Linux):\n", - "- Start each player with:\n", - " - vlc --no-one-instance --no-one-instance-when-started-from-file-manager file1.mp4\n", - " - vlc --no-one-instance file2.mp4\n", - "\n", - "After this, each VLC window will play its own video simultaneously.\n", - "\n", - "Task completed\n", - "INFO:agent.ComputerAgent:Agent: Yes. VLC is set by default to reuse the first instance when you open a file (especially from the file manager). Turn that off and you can run multiple, independent players.\n", - "\n", - "Do this:\n", - "- Open VLC.\n", - "- Go to Tools -> Preferences (Ctrl+P).\n", - "- In the Simple settings view on the Interface tab, find Playlist and Instances.\n", - "- Uncheck:\n", - " - Allow only one instance\n", - " - Use only one instance when started from file manager\n", - " - Enqueue items into playlist in one instance (if you see it)\n", - "- Click Save.\n", - "- Quit all VLC windows completely (Ctrl+Q) so the setting takes effect, then start VLC again and open a different file in each window.\n", - "\n", - "Command-line alternative (Windows/macOS/Linux):\n", - "- Start each player with:\n", - " - vlc --no-one-instance --no-one-instance-when-started-from-file-manager file1.mp4\n", - " - vlc --no-one-instance file2.mp4\n", - "\n", - "After this, each VLC window will play its own video simultaneously.\n", - "\n", - "Task completed\n", - "2025-08-11 18:49:21,909 - agent.ComputerAgent - INFO - Total usage:\n", - " - completion_tokens: 1307\n", - " - prompt_tokens: 1975\n", - " - total_tokens: 3282\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 1088\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0155\n", - "INFO:agent.ComputerAgent:Total usage:\n", - " - completion_tokens: 1307\n", - " - prompt_tokens: 1975\n", - " - total_tokens: 3282\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 1088\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0155\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/655a0f34-fb5e-49f8-9a65-531af668d6c6/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m18:49:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 76%|██████████████████████████████----------| 5590/7340 [203:04<63:34, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/35ee5a0d-d8f9-4419-b253-d394f35fe993/invoke \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:49:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m18:49:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/0835b0ab-8369-4209-a85b-955dbb271b54/reset \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:49:23,196 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m18:49:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m18:49:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 18:49:23,915 - agent.ComputerAgent - INFO - Computer: click({'x': 109, 'y': 125})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 109, 'y': 125})\n", - "\u001b[92m18:49:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/8a9dd85a-f951-495e-aea0-d3864853591e/close \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/655a0f34-fb5e-49f8-9a65-531af668d6c6/close \"HTTP/1.1 200 OK\"\n", - " 76%|██████████████████████████████----------| 5591/7340 [203:05<63:31, 27.5 steps/min]2025-08-11 18:49:24,590 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 75, 'y': 177}, {'x': 278, 'y': 177}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 75, 'y': 177}, {'x': 278, 'y': 177}]})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/aa800986-7030-4845-b4a1-82119abb97e9/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/84265bb9-b6f6-479e-8a58-920cfa2b7c69/invoke \"HTTP/1.1 200 OK\"\n", - " 76%|██████████████████████████████----------| 5592/7340 [203:07<63:29, 27.5 steps/min]INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - " 76%|██████████████████████████████----------| 5600/7340 [203:08<63:07, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:49:28,277 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+c'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+c'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0835b0ab-8369-4209-a85b-955dbb271b54/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/a72854f0-3bb0-4711-a18e-7a467a56390e/invoke \"HTTP/1.1 200 OK\"\n", - " 76%|██████████████████████████████----------| 5600/7340 [203:10<63:07, 27.6 steps/min]2025-08-11 18:49:28,957 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m18:49:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:49:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 18:49:30,327 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m18:49:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m18:49:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/84265bb9-b6f6-479e-8a58-920cfa2b7c69/close \"HTTP/1.1 200 OK\"\n", - " 76%|██████████████████████████████----------| 5600/7340 [203:12<63:08, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1064657b-b89a-4eeb-8197-1c110af6b752/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/584f1ba5-3dc8-4b11-9242-7100c4e1133e/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/aa800986-7030-4845-b4a1-82119abb97e9/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 18:49:32,369 - agent.ComputerAgent - INFO - LLM processing started with 40 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 40 messages\n", - "\u001b[92m18:49:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00 log.txt\\n'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'cd ~/Desktop\\npython3 calculator.py > log.txt\\n'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/10c454d7-987f-4a23-83d6-534bd9ba42c2/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 83%|█████████████████████████████████-------| 6089/7340 [220:38<45:19, 27.6 steps/min]\u001b[92m19:06:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b641dbb7-3e3c-437d-bc11-5e038171855d/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/43a383a0-163d-4a8b-8494-0e1d1eab6cd6/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/27fc4825-1617-494a-9308-b128bd8af05a/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:06:57,016 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m19:06:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:06:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/80d19a15-b1ca-43cc-8d1b-1f86242172b5/invoke \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00 Modify > Font > choose Liberation Sans Narrow > OK.\n", - "- Drawing styles (for manual text boxes):\n", - " - Click the Drawing Styles icon.\n", - " - Right‑click Default > Modify > Font > Liberation Sans Narrow > OK.\n", - "- Remove any direct overrides so objects follow the styles:\n", - " - In the Slides pane, select all slides (click first, Shift‑click last).\n", - " - Press Ctrl+M (Format > Clear Direct Formatting). This makes existing text boxes pick up the new style font.\n", - "\n", - "Method 2: One‑click change with a macro (works even if text has direct formatting)\n", - "- Tools > Macros > Organize Macros > LibreOffice Basic > select your presentation > New.\n", - "- Paste this macro into the new module and Run:\n", - "\n", - "Sub SetAllTextToLiberationNarrow\n", - " Dim oDoc As Object, oSlides As Object, oSlide As Object\n", - " Dim oShape As Object\n", - " oDoc = ThisComponent\n", - " oSlides = oDoc.getDrawPages()\n", - " Dim i As Long, j As Long\n", - " For i = 0 To oSlides.getCount() - 1\n", - " oSlide = oSlides.getByIndex(i)\n", - " For j = 0 To oSlide.getCount() - 1\n", - " oShape = oSlide.getByIndex(j)\n", - " Call SetFontRecursive(oShape)\n", - " Next j\n", - " Next i\n", - "End Sub\n", - "\n", - "Sub SetFontRecursive(oShape As Object)\n", - " If oShape.supportsService(\"com.sun.star.drawing.GroupShape\") Then\n", - " Dim k As Long\n", - " For k = 0 To oShape.getCount() - 1\n", - " Call SetFontRecursive(oShape.getByIndex(k))\n", - " Next k\n", - " ElseIf oShape.supportsService(\"com.sun.star.drawing.Text\") Then\n", - " Dim oText As Object, oCur As Object\n", - " oText = oShape.getText()\n", - " oCur = oText.createTextCursor()\n", - " oCur.CharFontName = \"Liberation Sans Narrow\"\n", - " oCur.CharF...\n", - "INFO:agent.ComputerAgent:Agent: Yes—here are reliable ways to standardize every text box to Liberation Sans Narrow in LibreOffice Impress without clicking each one.\n", - "\n", - "Method 1 (recommended): Change styles so all objects inherit the font\n", - "- Open your presentation.\n", - "- Press F11 to open the Styles deck.\n", - "- Presentation styles (for placeholders):\n", - " - Click the Presentation Styles icon.\n", - " - Right‑click each of Title, Subtitle, Outline 1–10 (or Outline), Notes, etc. > Modify > Font > choose Liberation Sans Narrow > OK.\n", - "- Drawing styles (for manual text boxes):\n", - " - Click the Drawing Styles icon.\n", - " - Right‑click Default > Modify > Font > Liberation Sans Narrow > OK.\n", - "- Remove any direct overrides so objects follow the styles:\n", - " - In the Slides pane, select all slides (click first, Shift‑click last).\n", - " - Press Ctrl+M (Format > Clear Direct Formatting). This makes existing text boxes pick up the new style font.\n", - "\n", - "Method 2: One‑click change with a macro (works even if text has direct formatting)\n", - "- Tools > Macros > Organize Macros > LibreOffice Basic > select your presentation > New.\n", - "- Paste this macro into the new module and Run:\n", - "\n", - "Sub SetAllTextToLiberationNarrow\n", - " Dim oDoc As Object, oSlides As Object, oSlide As Object\n", - " Dim oShape As Object\n", - " oDoc = ThisComponent\n", - " oSlides = oDoc.getDrawPages()\n", - " Dim i As Long, j As Long\n", - " For i = 0 To oSlides.getCount() - 1\n", - " oSlide = oSlides.getByIndex(i)\n", - " For j = 0 To oSlide.getCount() - 1\n", - " oShape = oSlide.getByIndex(j)\n", - " Call SetFontRecursive(oShape)\n", - " Next j\n", - " Next i\n", - "End Sub\n", - "\n", - "Sub SetFontRecursive(oShape As Object)\n", - " If oShape.supportsService(\"com.sun.star.drawing.GroupShape\") Then\n", - " Dim k As Long\n", - " For k = 0 To oShape.getCount() - 1\n", - " Call SetFontRecursive(oShape.getByIndex(k))\n", - " Next k\n", - " ElseIf oShape.supportsService(\"com.sun.star.drawing.Text\") Then\n", - " Dim oText As Object, oCur As Object\n", - " oText = oShape.getText()\n", - " oCur = oText.createTextCursor()\n", - " oCur.CharFontName = \"Liberation Sans Narrow\"\n", - " oCur.CharF...\n", - "2025-08-11 19:26:25,833 - agent.ComputerAgent - INFO - Total usage:\n", - " - completion_tokens: 3294\n", - " - prompt_tokens: 1964\n", - " - total_tokens: 5258\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 2560\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0354\n", - "INFO:agent.ComputerAgent:Total usage:\n", - " - completion_tokens: 3294\n", - " - prompt_tokens: 1964\n", - " - total_tokens: 5258\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 2560\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0354\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7a2c2835-d21e-4e04-babb-e8305a4f1f9d/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1a178f89-87e5-46d9-a114-22d5fcc5c630/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6f055f32-c606-4a58-91bc-c5990d4e8280/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f209659e-2ed9-40fa-ae61-5359fb9ef290/invoke \"HTTP/1.1 200 OK\"\n", - " 90%|████████████████████████████████████----| 6611/7340 [240:07<26:28, 27.5 steps/min]2025-08-11 19:26:26,517 - agent.ComputerAgent - INFO - Computer: double_click({'x': 884, 'y': 123})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 884, 'y': 123})\n", - "2025-08-11 19:26:27,223 - agent.ComputerAgent - INFO - Computer: click({'x': 344, 'y': 34})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 344, 'y': 34})\n", - "2025-08-11 19:26:27,897 - agent.ComputerAgent - INFO - Computer: click({'x': 548, 'y': 249})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 548, 'y': 249})\n", - "2025-08-11 19:26:28,563 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m19:26:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 90%|████████████████████████████████████----| 6613/7340 [240:10<26:24, 27.5 steps/min]2025-08-11 19:26:29,242 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m19:26:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:26:30,582 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'f1'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'f1'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:26:31,909 - agent.ComputerAgent - INFO - Computer: wait({})\n", - "INFO:agent.ComputerAgent:Computer: wait({})\n", - " 90%|████████████████████████████████████----| 6616/7340 [240:13<26:17, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:26:33,178 - agent.ComputerAgent - INFO - Computer: screenshot({})\n", - "INFO:agent.ComputerAgent:Computer: screenshot({})\n", - " 90%|████████████████████████████████████----| 6618/7340 [240:14<26:12, 27.5 steps/min]2025-08-11 19:26:33,810 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m19:26:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:26:34,481 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m19:26:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/09c933ad-61bf-4498-b248-0df86e3aea78/invoke \"HTTP/1.1 200 OK\"\n", - " 90%|████████████████████████████████████----| 6619/7340 [240:16<26:10, 27.5 steps/min]2025-08-11 19:26:35,113 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m19:26:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:26:35,982 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m19:26:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7f4008ee-6c98-4905-9ade-965ea7842b64/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 90%|████████████████████████████████████----| 6619/7340 [240:17<26:10, 27.5 steps/min]2025-08-11 19:26:37,325 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m19:26:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/18debd9e-6c58-4504-8a04-13cba683a254/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:26:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 90%|████████████████████████████████████----| 6619/7340 [240:19<26:10, 27.5 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/2d8a6e51-acdb-47b9-8ee4-f3085c741fd5/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:26:38,682 - agent.ComputerAgent - INFO - LLM processing started with 40 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 40 messages\n", - "\u001b[92m19:26:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/bcec4523-df7a-48b5-aea1-8d7c632a6dc4/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/51954fb4-34ed-4511-b2fd-a6169b5ea5d3/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9a544504-3e48-48b2-8429-0a97e266ebfb/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/84a5d283-63f1-43fc-b483-76116d67f385/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/c915dbd9-32bc-40a7-9c07-d437c737419f/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:26:39,380 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m19:26:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:26:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/775a5b67-2406-42b8-86e5-243e01b8dc27/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/052ac585-1998-46b2-9ac5-0dc192aeba02/invoke \"HTTP/1.1 200 OK\"\n", - " 90%|████████████████████████████████████----| 6619/7340 [240:21<26:10, 27.5 steps/min]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "No screenshot found, taking screenshot\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-08-11 19:26:40,063 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m19:26:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:26:40,762 - agent.ComputerAgent - INFO - Computer: click({'button': 'left', 'x': 344, 'y': 137})\n", - "INFO:agent.ComputerAgent:Computer: click({'button': 'left', 'x': 344, 'y': 137})\n", - " 90%|████████████████████████████████████----| 6619/7340 [240:22<26:11, 27.5 steps/min]2025-08-11 19:26:41,401 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m19:26:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:26:42,073 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m19:26:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:26:42,723 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m19:26:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 90%|████████████████████████████████████----| 6620/7340 [240:24<26:08, 27.5 steps/min]2025-08-11 19:26:43,402 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m19:26:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:26:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:26:45,407 - agent.ComputerAgent - INFO - Computer: wait({})\n", - "INFO:agent.ComputerAgent:Computer: wait({})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:26:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:26:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 90%|████████████████████████████████████----| 6620/7340 [240:29<26:09, 27.5 steps/min]\u001b[92m19:26:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:26:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:26:48,083 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m19:26:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:26:48,753 - agent.ComputerAgent - INFO - Computer: click({'x': 914, 'y': 660})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 914, 'y': 660})\n", - "\u001b[92m19:26:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 90%|████████████████████████████████████----| 6621/7340 [240:31<26:07, 27.5 steps/min]\u001b[92m19:26:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:26:50,093 - agent.ComputerAgent - INFO - Computer: click({'x': 641, 'y': 498})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 641, 'y': 498})\n", - "\u001b[92m19:26:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:26:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:26:50,755 - agent.ComputerAgent - INFO - Computer: click({'x': 893, 'y': 134})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 893, 'y': 134})\n", - "2025-08-11 19:26:51,455 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 19:26:51,456 - agent.ComputerAgent - INFO - Computer: click({'button': 'left', 'x': 386, 'y': 250})\n", - "INFO:agent.ComputerAgent:Computer: click({'button': 'left', 'x': 386, 'y': 250})\n", - "\u001b[92m19:26:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 90%|████████████████████████████████████----| 6622/7340 [240:33<26:04, 27.5 steps/min]2025-08-11 19:26:52,153 - agent.ComputerAgent - INFO - Computer: click({'x': 173, 'y': 150})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 173, 'y': 150})\n", - "2025-08-11 19:26:52,821 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m19:26:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 90%|████████████████████████████████████----| 6626/7340 [240:35<25:55, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:26:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 90%|████████████████████████████████████----| 6626/7340 [240:36<25:55, 27.5 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/77892268-14f2-4dfa-b58c-6a682f258679/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:26:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:26:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 90%|████████████████████████████████████----| 6626/7340 [240:37<25:55, 27.5 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:26:56,855 - agent.ComputerAgent - INFO - Computer: click({'x': 46, 'y': 528})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 46, 'y': 528})\n", - "\u001b[92m19:26:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:26:57,527 - agent.ComputerAgent - INFO - Computer: click({'x': 731, 'y': 617})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 731, 'y': 617})\n", - "2025-08-11 19:26:58,183 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m19:26:58 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 90%|████████████████████████████████████----| 6626/7340 [240:39<25:56, 27.5 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7a2c2835-d21e-4e04-babb-e8305a4f1f9d/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6f055f32-c606-4a58-91bc-c5990d4e8280/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1a178f89-87e5-46d9-a114-22d5fcc5c630/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:26:58,873 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m19:26:58 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/73c70c0d-c1a0-401f-83c0-063e983abd6c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/af58ffed-65a3-4c4a-a9fe-5c940230627d/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f209659e-2ed9-40fa-ae61-5359fb9ef290/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:26:59,543 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m19:26:59 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:27:00,884 - agent.ComputerAgent - INFO - Computer: type({'text': '20'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': '20'})\n", - " 90%|████████████████████████████████████----| 6628/7340 [240:42<25:51, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7f4008ee-6c98-4905-9ade-965ea7842b64/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:27:01,553 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m19:27:01 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:27:02,260 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m19:27:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:27:02,945 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m19:27:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7f4008ee-6c98-4905-9ade-965ea7842b64/close \"HTTP/1.1 200 OK\"\n", - " 91%|████████████████████████████████████----| 6648/7340 [240:44<25:03, 27.6 steps/min]2025-08-11 19:27:04,256 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m19:27:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 91%|████████████████████████████████████----| 6648/7340 [240:46<25:03, 27.6 steps/min]INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/2d8a6e51-acdb-47b9-8ee4-f3085c741fd5/invoke \"HTTP/1.1 200 OK\"\n", - " 91%|████████████████████████████████████----| 6648/7340 [240:47<25:03, 27.6 steps/min]2025-08-11 19:27:05,962 - agent.ComputerAgent - INFO - LLM processing started with 42 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 42 messages\n", - "\u001b[92m19:27:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 91%|████████████████████████████████████----| 6648/7340 [240:48<25:03, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:27:07,803 - agent.ComputerAgent - INFO - Computer: type({'text': 'Extensions: Install from VSIX'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'Extensions: Install from VSIX'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/775a5b67-2406-42b8-86e5-243e01b8dc27/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:27:08 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:27:09,824 - agent.ComputerAgent - INFO - Computer: get_current_url({})\n", - "INFO:agent.ComputerAgent:Computer: get_current_url({})\n", - " 91%|████████████████████████████████████----| 6648/7340 [240:51<25:04, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/18debd9e-6c58-4504-8a04-13cba683a254/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00 View > Folders > Unified.\n", - "- In the left sidebar you’ll now see a “Unified Folders” section with a single “Inbox” that aggregates all accounts.\n", - "\n", - "Optional: choose exactly which accounts/folders are included\n", - "- In the left sidebar, under Unified Folders, right‑click Inbox > Properties.\n", - "- Click “Select the folders to search,” then check the Inbox for each account you want included. Click Update.\n", - "\n", - "Notes and tips\n", - "- Thunderbird remembers this view; if it ever changes, repeat View > Folders > Unified.\n", - "- If you use POP and want all mail to physically go to one inbox, set a Global Inbox: Account Settings > your POP account > Server Settings > Advanced > Global Inbox (Local Folders).\n", - "- If a folder is missing from the Unified view, right‑click that folder > Subscribe (for IMAP) to ensure it’s subscribed, and confirm it’s checked in the Unified Inbox Properties.\n", - "\n", - "Task completed\n", - "INFO:agent.ComputerAgent:Agent: Here’s how to set up a unified inbox in Thunderbird so all your accounts’ emails show in one place:\n", - "\n", - "- Open Thunderbird.\n", - "- Go to the application menu (three horizontal lines in the top-right) > View > Folders > Unified.\n", - "- In the left sidebar you’ll now see a “Unified Folders” section with a single “Inbox” that aggregates all accounts.\n", - "\n", - "Optional: choose exactly which accounts/folders are included\n", - "- In the left sidebar, under Unified Folders, right‑click Inbox > Properties.\n", - "- Click “Select the folders to search,” then check the Inbox for each account you want included. Click Update.\n", - "\n", - "Notes and tips\n", - "- Thunderbird remembers this view; if it ever changes, repeat View > Folders > Unified.\n", - "- If you use POP and want all mail to physically go to one inbox, set a Global Inbox: Account Settings > your POP account > Server Settings > Advanced > Global Inbox (Local Folders).\n", - "- If a folder is missing from the Unified view, right‑click that folder > Subscribe (for IMAP) to ensure it’s subscribed, and confirm it’s checked in the Unified Inbox Properties.\n", - "\n", - "Task completed\n", - "Loading checkpoint shards: 25%|██▌ | 1/4 [00:01<00:05, 1.72s/it]2025-08-11 19:29:25,906 - agent.ComputerAgent - INFO - Total usage:\n", - " - completion_tokens: 1266\n", - " - prompt_tokens: 12578\n", - " - total_tokens: 13844\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 1024\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 11776\n", - " - response_cost: $0.0151\n", - "INFO:agent.ComputerAgent:Total usage:\n", - " - completion_tokens: 1266\n", - " - prompt_tokens: 12578\n", - " - total_tokens: 13844\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 1024\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 11776\n", - " - response_cost: $0.0151\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:29:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Loading checkpoint shards: 50%|█████ | 2/4 [00:03<00:03, 1.67s/it]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:29:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:29:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 91%|████████████████████████████████████----| 6708/7340 [243:09<22:54, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 75%|███████▌ | 3/4 [00:04<00:01, 1.64s/it]2025-08-11 19:29:29,309 - agent.ComputerAgent - INFO - Computer: type({'text': 'sar -V\\n'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'sar -V\\n'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 100%|██████████| 4/4 [00:05<00:00, 1.38s/it]\n", - "\u001b[92m19:29:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 91%|████████████████████████████████████----| 6709/7340 [243:11<22:52, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:29:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 91%|████████████████████████████████████----| 6710/7340 [243:13<22:50, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:29:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/73c70c0d-c1a0-401f-83c0-063e983abd6c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6f055f32-c606-4a58-91bc-c5990d4e8280/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:29:32,337 - agent.ComputerAgent - INFO - LLM processing started with 29 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 29 messages\n", - "\u001b[92m19:29:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:29:33,023 - agent.ComputerAgent - INFO - Computer: click({'x': 115, 'y': 635})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 115, 'y': 635})\n", - "\u001b[92m19:29:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 91%|████████████████████████████████████----| 6710/7340 [243:14<22:50, 27.6 steps/min]\u001b[92m19:29:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:29:33,677 - agent.ComputerAgent - INFO - Computer: click({'x': 28, 'y': 739})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 28, 'y': 739})\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:29:34,335 - agent.ComputerAgent - INFO - Computer: click({'x': 530, 'y': 417})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 530, 'y': 417})\n", - "\u001b[92m19:29:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:29:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:29:34,988 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 19:29:34,989 - agent.ComputerAgent - INFO - Computer: click({'x': 80, 'y': 181})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 80, 'y': 181})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 91%|████████████████████████████████████----| 6711/7340 [243:17<22:48, 27.6 steps/min]\u001b[92m19:29:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:29:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/c915dbd9-32bc-40a7-9c07-d437c737419f/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:29:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:29:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/775a5b67-2406-42b8-86e5-243e01b8dc27/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/18debd9e-6c58-4504-8a04-13cba683a254/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7a2c2835-d21e-4e04-babb-e8305a4f1f9d/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/77892268-14f2-4dfa-b58c-6a682f258679/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:29:36,366 - agent.ComputerAgent - INFO - Computer: click({'x': 186, 'y': 148})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 186, 'y': 148})\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:29:36,994 - agent.ComputerAgent - INFO - Computer: click({'x': 85, 'y': 234})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 85, 'y': 234})\n", - "\u001b[92m19:29:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:29:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 91%|████████████████████████████████████----| 6714/7340 [243:18<22:41, 27.6 steps/min]2025-08-11 19:29:37,669 - agent.ComputerAgent - INFO - Computer: click({'x': 483, 'y': 267})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 483, 'y': 267})\n", - "2025-08-11 19:29:38,353 - agent.ComputerAgent - INFO - Computer: click({'x': 974, 'y': 34})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 974, 'y': 34})\n", - "2025-08-11 19:29:38,999 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m19:29:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:29:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - " 92%|████████████████████████████████████----| 6717/7340 [243:20<22:34, 27.6 steps/min]2025-08-11 19:29:39,730 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 914, 'y': 671}, {'x': 984, 'y': 467}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 914, 'y': 671}, {'x': 984, 'y': 467}]})\n", - "2025-08-11 19:29:40,390 - agent.ComputerAgent - INFO - LLM processing started with 42 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 42 messages\n", - "\u001b[92m19:29:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 92%|████████████████████████████████████----| 6719/7340 [243:22<22:29, 27.6 steps/min]2025-08-11 19:29:41,077 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m19:29:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:29:42,161 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m19:29:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/73c70c0d-c1a0-401f-83c0-063e983abd6c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6f055f32-c606-4a58-91bc-c5990d4e8280/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/18debd9e-6c58-4504-8a04-13cba683a254/close \"HTTP/1.1 200 OK\"\n", - " 92%|████████████████████████████████████----| 6720/7340 [243:23<22:27, 27.6 steps/min]2025-08-11 19:29:42,846 - agent.ComputerAgent - INFO - LLM processing started with 31 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 31 messages\n", - "\u001b[92m19:29:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 92%|████████████████████████████████████----| 6725/7340 [243:26<22:15, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:29:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0180c5d2-a012-4261-b093-ed34f443f269/invoke \"HTTP/1.1 200 OK\"\n", - " 92%|████████████████████████████████████----| 6725/7340 [243:27<22:15, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/052ac585-1998-46b2-9ac5-0dc192aeba02/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6f055f32-c606-4a58-91bc-c5990d4e8280/close \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/963f0b0a-47d1-479c-9077-6c59023108fe/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/84a5d283-63f1-43fc-b483-76116d67f385/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1a178f89-87e5-46d9-a114-22d5fcc5c630/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f209659e-2ed9-40fa-ae61-5359fb9ef290/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/bcec4523-df7a-48b5-aea1-8d7c632a6dc4/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9a544504-3e48-48b2-8429-0a97e266ebfb/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/af58ffed-65a3-4c4a-a9fe-5c940230627d/invoke \"HTTP/1.1 200 OK\"\n", - " 92%|████████████████████████████████████----| 6725/7340 [243:28<22:15, 27.6 steps/min]2025-08-11 19:29:48,280 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m19:29:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00 System_Resources_Report.txt\\n'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'sar -u 1 30 > System_Resources_Report.txt\\n'})\n", - " 92%|████████████████████████████████████----| 6784/7340 [245:45<20:08, 27.6 steps/min]2025-08-11 19:32:03,959 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m19:32:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:32:04,639 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m19:32:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/c915dbd9-32bc-40a7-9c07-d437c737419f/invoke \"HTTP/1.1 200 OK\"\n", - " 92%|████████████████████████████████████----| 6785/7340 [245:46<20:06, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7633715b-dde0-4c56-a4b6-22ccee78f5f5/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/963f0b0a-47d1-479c-9077-6c59023108fe/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:32:05,820 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m19:32:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/6f3b006b-141d-439d-b6cb-eed7bd6483c3/reset \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7f112db6-0b60-4e6c-86f5-0d87dc91f371/invoke \"HTTP/1.1 200 OK\"\n", - " 92%|████████████████████████████████████----| 6785/7340 [245:47<20:06, 27.6 steps/min]2025-08-11 19:32:06,520 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m19:32:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 92%|████████████████████████████████████----| 6785/7340 [245:48<20:06, 27.6 steps/min]2025-08-11 19:32:07,704 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m19:32:07 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:32:08,380 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m19:32:08 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 92%|████████████████████████████████████----| 6785/7340 [245:50<20:06, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/51954fb4-34ed-4511-b2fd-a6169b5ea5d3/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:32:10,389 - agent.ComputerAgent - INFO - LLM processing started with 42 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 42 messages\n", - "\u001b[92m19:32:10 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/775a5b67-2406-42b8-86e5-243e01b8dc27/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:32:11 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0c64a3b4-e9b0-46c1-a580-cdcf62b74e44/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 92%|████████████████████████████████████----| 6785/7340 [245:53<20:06, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:32:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6f3b006b-141d-439d-b6cb-eed7bd6483c3/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:32:12,779 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m19:32:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:32:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 92%|████████████████████████████████████----| 6785/7340 [245:54<20:06, 27.6 steps/min]2025-08-11 19:32:13,458 - agent.ComputerAgent - INFO - Computer: click({'x': 461, 'y': 169})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 461, 'y': 169})\n", - "\u001b[92m19:32:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:32:14,530 - agent.ComputerAgent - INFO - Computer: click({'x': 125, 'y': 182})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 125, 'y': 182})\n", - " 92%|████████████████████████████████████----| 6785/7340 [245:56<20:07, 27.6 steps/min]2025-08-11 19:32:15,198 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m19:32:15 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:32:16,538 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'win'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'win'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 92%|████████████████████████████████████----| 6787/7340 [245:58<20:02, 27.6 steps/min]\u001b[92m19:32:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:32:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:32:19,209 - agent.ComputerAgent - INFO - Computer: type({'text': 'Dublin'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'Dublin'})\n", - " 92%|████████████████████████████████████----| 6788/7340 [246:00<20:00, 27.6 steps/min]\u001b[92m19:32:19 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:32:19,877 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m19:32:19 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:32:20,569 - agent.ComputerAgent - INFO - Computer: click({'x': 90, 'y': 183})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 90, 'y': 183})\n", - "\u001b[92m19:32:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:32:21,243 - agent.ComputerAgent - INFO - Computer: click({'x': 430, 'y': 219})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 430, 'y': 219})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 92%|████████████████████████████████████----| 6789/7340 [246:04<19:58, 27.6 steps/min]\u001b[92m19:32:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:32:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:32:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:32:23,644 - agent.ComputerAgent - INFO - Computer: click({'x': 188, 'y': 190})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 188, 'y': 190})\n", - " 93%|█████████████████████████████████████---| 6791/7340 [246:05<19:53, 27.6 steps/min]\u001b[92m19:32:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:32:24,280 - agent.ComputerAgent - INFO - Computer: click({'x': 123, 'y': 178})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 123, 'y': 178})\n", - " 93%|█████████████████████████████████████---| 6793/7340 [246:07<19:49, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:32:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 93%|█████████████████████████████████████---| 6793/7340 [246:08<19:49, 27.6 steps/min]\u001b[92m19:32:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:32:27,608 - agent.ComputerAgent - INFO - Computer: click({'x': 18, 'y': 476})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 18, 'y': 476})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b928bd01-f1b7-4f34-accf-acb6aec5d8cd/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7a2c2835-d21e-4e04-babb-e8305a4f1f9d/invoke \"HTTP/1.1 200 OK\"\n", - " 93%|█████████████████████████████████████---| 6793/7340 [246:09<19:49, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0180c5d2-a012-4261-b093-ed34f443f269/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:32:28,295 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m19:32:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7633715b-dde0-4c56-a4b6-22ccee78f5f5/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:32:28,953 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m19:32:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/acf3037a-4b6c-4ea8-b81c-ffc2e76132e1/reset \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1a178f89-87e5-46d9-a114-22d5fcc5c630/invoke \"HTTP/1.1 200 OK\"\n", - " 93%|█████████████████████████████████████---| 6794/7340 [246:10<19:47, 27.6 steps/min]2025-08-11 19:32:29,623 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m19:32:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:32:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/963f0b0a-47d1-479c-9077-6c59023108fe/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f209659e-2ed9-40fa-ae61-5359fb9ef290/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7f112db6-0b60-4e6c-86f5-0d87dc91f371/invoke \"HTTP/1.1 200 OK\"\n", - " 93%|█████████████████████████████████████---| 6794/7340 [246:12<19:47, 27.6 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:32:30,976 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m19:32:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:32:31,628 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m19:32:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:32:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 93%|█████████████████████████████████████---| 6794/7340 [246:13<19:47, 27.6 steps/min]2025-08-11 19:32:32,293 - agent.ComputerAgent - INFO - Computer: click({'x': 534, 'y': 554})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 534, 'y': 554})\n", - "2025-08-11 19:32:32,937 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m19:32:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 93%|█████████████████████████████████████---| 6794/7340 [246:14<19:47, 27.6 steps/min]2025-08-11 19:32:33,607 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m19:32:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:32:34,249 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m19:32:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 93%|█████████████████████████████████████---| 6795/7340 [246:17<19:45, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0c64a3b4-e9b0-46c1-a580-cdcf62b74e44/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:32:36,916 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m19:32:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - " 93%|█████████████████████████████████████---| 6795/7340 [246:18<19:45, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:32:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/acf3037a-4b6c-4ea8-b81c-ffc2e76132e1/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 93%|█████████████████████████████████████---| 6795/7340 [246:19<19:45, 27.6 steps/min]2025-08-11 19:32:38,805 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m19:32:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/51c56274-d8ae-4edf-8ff1-b637cd2fff66/invoke \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:32:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:32:39,495 - agent.ComputerAgent - INFO - Computer: click({'x': 173, 'y': 149})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 173, 'y': 149})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/af58ffed-65a3-4c4a-a9fe-5c940230627d/invoke \"HTTP/1.1 200 OK\"\n", - " 93%|█████████████████████████████████████---| 6795/7340 [246:21<19:45, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:32:40,803 - agent.ComputerAgent - INFO - Computer: type({'text': 'wc -l System_Resources_Report.txt\\n'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'wc -l System_Resources_Report.txt\\n'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:32:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 93%|█████████████████████████████████████---| 6796/7340 [246:23<19:43, 27.6 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:32:42,099 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m19:32:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 93%|█████████████████████████████████████---| 6797/7340 [246:24<19:41, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:32:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:32:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:32:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:32:44,597 - agent.ComputerAgent - INFO - Computer: double_click({'x': 482, 'y': 277})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 482, 'y': 277})\n", - " 93%|█████████████████████████████████████---| 6797/7340 [246:26<19:41, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:32:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:32:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:32:46,644 - agent.ComputerAgent - INFO - Computer: type({'text': '=SUM(Sheet1.B2:B11)'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': '=SUM(Sheet1.B2:B11)'})\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:32:47,299 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 19:32:47,300 - agent.ComputerAgent - INFO - Computer: click({'x': 578, 'y': 286})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 578, 'y': 286})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:32:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 93%|█████████████████████████████████████---| 6798/7340 [246:29<19:39, 27.6 steps/min]\u001b[92m19:32:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:32:48,654 - agent.ComputerAgent - INFO - Computer: click({'x': 316, 'y': 416})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 316, 'y': 416})\n", - "\u001b[92m19:32:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/775a5b67-2406-42b8-86e5-243e01b8dc27/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/c915dbd9-32bc-40a7-9c07-d437c737419f/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:32:49,313 - agent.ComputerAgent - INFO - Computer: click({'x': 306, 'y': 416})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 306, 'y': 416})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:32:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:32:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 93%|█████████████████████████████████████---| 6800/7340 [246:31<19:34, 27.6 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:32:50,681 - agent.ComputerAgent - INFO - Computer: click({'x': 237, 'y': 254})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 237, 'y': 254})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:32:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:32:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:32:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 93%|█████████████████████████████████████---| 6802/7340 [246:33<19:30, 27.6 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:32:52,640 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 19:32:52,640 - agent.ComputerAgent - INFO - Computer: click({'x': 14, 'y': 524})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 14, 'y': 524})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:32:54,035 - agent.ComputerAgent - INFO - Computer: type({'text': '=A2/1000000'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': '=A2/1000000'})\n", - "\u001b[92m19:32:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:32:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 93%|█████████████████████████████████████---| 6803/7340 [246:35<19:27, 27.6 steps/min]2025-08-11 19:32:54,689 - agent.ComputerAgent - INFO - Computer: click({'x': 19, 'y': 481})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 19, 'y': 481})\n", - "2025-08-11 19:32:55,406 - agent.ComputerAgent - INFO - Computer: click({'x': 237, 'y': 193})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 237, 'y': 193})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:32:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 93%|█████████████████████████████████████---| 6805/7340 [246:37<19:23, 27.6 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:32:56,702 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m19:32:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:32:57,376 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m19:32:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:32:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6f3b006b-141d-439d-b6cb-eed7bd6483c3/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/963f0b0a-47d1-479c-9077-6c59023108fe/invoke \"HTTP/1.1 200 OK\"\n", - " 93%|█████████████████████████████████████---| 6807/7340 [246:39<19:18, 27.6 steps/min]2025-08-11 19:32:58,080 - agent.ComputerAgent - INFO - Computer: click({'x': 343, 'y': 183})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 343, 'y': 183})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b928bd01-f1b7-4f34-accf-acb6aec5d8cd/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:32:58,735 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m19:32:58 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:32:59,441 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m19:32:59 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 93%|█████████████████████████████████████---| 6807/7340 [246:41<19:18, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:33:00 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:33:00 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7633715b-dde0-4c56-a4b6-22ccee78f5f5/invoke \"HTTP/1.1 200 OK\"\n", - " 93%|█████████████████████████████████████---| 6808/7340 [246:42<19:16, 27.6 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:33:01,450 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m19:33:01 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7f112db6-0b60-4e6c-86f5-0d87dc91f371/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7a2c2835-d21e-4e04-babb-e8305a4f1f9d/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:33:02,154 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m19:33:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:33:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0c64a3b4-e9b0-46c1-a580-cdcf62b74e44/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 93%|█████████████████████████████████████---| 6808/7340 [246:43<19:16, 27.6 steps/min]2025-08-11 19:33:02,855 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m19:33:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:33:03,530 - agent.ComputerAgent - INFO - Computer: click({'x': 633, 'y': 473})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 633, 'y': 473})\n", - "\u001b[92m19:33:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/acf3037a-4b6c-4ea8-b81c-ffc2e76132e1/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/51954fb4-34ed-4511-b2fd-a6169b5ea5d3/invoke \"HTTP/1.1 200 OK\"\n", - " 93%|█████████████████████████████████████---| 6808/7340 [246:45<19:16, 27.6 steps/min]\u001b[92m19:33:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:33:04,220 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m19:33:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/f209659e-2ed9-40fa-ae61-5359fb9ef290/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:33:04,896 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m19:33:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:33:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 93%|█████████████████████████████████████---| 6809/7340 [246:46<19:14, 27.6 steps/min]2025-08-11 19:33:05,586 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 424, 'y': 418}, {'x': 527, 'y': 226}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 424, 'y': 418}, {'x': 527, 'y': 226}]})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:33:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0180c5d2-a012-4261-b093-ed34f443f269/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 93%|█████████████████████████████████████---| 6809/7340 [246:48<19:14, 27.6 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:33:06,917 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m19:33:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:33:07,597 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m19:33:07 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:33:07 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 93%|█████████████████████████████████████---| 6810/7340 [246:49<19:12, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:33:08,272 - agent.ComputerAgent - INFO - Computer: click({'x': 946, 'y': 750})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 946, 'y': 750})\n", - "2025-08-11 19:33:08,957 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m19:33:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 93%|█████████████████████████████████████---| 6811/7340 [246:51<19:10, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/51954fb4-34ed-4511-b2fd-a6169b5ea5d3/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/af58ffed-65a3-4c4a-a9fe-5c940230627d/invoke \"HTTP/1.1 200 OK\"\n", - " 93%|█████████████████████████████████████---| 6812/7340 [246:52<19:08, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/51954fb4-34ed-4511-b2fd-a6169b5ea5d3/close \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:33:13,491 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'enter'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'enter'})\n", - " 93%|█████████████████████████████████████---| 6812/7340 [246:55<19:08, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:33:14,808 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'enter'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'enter'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:33:15 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:33:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b928bd01-f1b7-4f34-accf-acb6aec5d8cd/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1a178f89-87e5-46d9-a114-22d5fcc5c630/invoke \"HTTP/1.1 200 OK\"\n", - " 93%|█████████████████████████████████████---| 6813/7340 [246:57<19:06, 27.6 steps/min]2025-08-11 19:33:16,837 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m19:33:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:33:17,526 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m19:33:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 93%|█████████████████████████████████████---| 6814/7340 [246:59<19:03, 27.6 steps/min]2025-08-11 19:33:18,187 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m19:33:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 93%|█████████████████████████████████████---| 6814/7340 [247:00<19:04, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:33:20,027 - agent.ComputerAgent - INFO - Computer: click({'x': 89, 'y': 185})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 89, 'y': 185})\n", - " 93%|█████████████████████████████████████---| 6814/7340 [247:01<19:04, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:33:21,352 - agent.ComputerAgent - INFO - Computer: type({'text': 'find / -type f -name \"secret.docx\" 2>/dev/null'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'find / -type f -name \"secret.docx\" 2>/dev/null'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:33:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 93%|█████████████████████████████████████---| 6815/7340 [247:03<19:01, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7a2c2835-d21e-4e04-babb-e8305a4f1f9d/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/963f0b0a-47d1-479c-9077-6c59023108fe/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:33:22,639 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m19:33:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:33:23,336 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m19:33:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 93%|█████████████████████████████████████---| 6816/7340 [247:05<18:59, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00/dev/null | head -n1); printf \"%s\\\\n\" \"$path\"; echo -n \"$path\" | xclip -selection clipboard 2>/dev/null || echo -n \"$path\" | wl-copy 2>/dev/null || true'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'path=$(find / -type f -name \"secret.docx\" 2>/dev/null | head -n1); printf \"%s\\\\n\" \"$path\"; echo -n \"$path\" | xclip -selection clipboard 2>/dev/null || echo -n \"$path\" | wl-copy 2>/dev/null || true'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 50%|█████ | 2/4 [00:03<00:03, 1.76s/it]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:37:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Loading checkpoint shards: 75%|███████▌ | 3/4 [00:05<00:01, 1.72s/it]2025-08-11 19:37:50,401 - agent.ComputerAgent - INFO - Agent: The video has been converted to an MP3 and saved on the Desktop as “Baby Justin Bieber.mp3.” You can now play it anytime.\n", - "\n", - "Task completed\n", - "INFO:agent.ComputerAgent:Agent: The video has been converted to an MP3 and saved on the Desktop as “Baby Justin Bieber.mp3.” You can now play it anytime.\n", - "\n", - "Task completed\n", - "Loading checkpoint shards: 100%|██████████| 4/4 [00:05<00:00, 1.45s/it]\n", - "2025-08-11 19:37:51,060 - agent.ComputerAgent - INFO - Total usage:\n", - " - completion_tokens: 488\n", - " - prompt_tokens: 12887\n", - " - total_tokens: 13375\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 448\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0210\n", - "INFO:agent.ComputerAgent:Total usage:\n", - " - completion_tokens: 488\n", - " - prompt_tokens: 12887\n", - " - total_tokens: 13375\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 448\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0210\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:37:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:37:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 95%|█████████████████████████████████████---| 6944/7340 [251:34<14:20, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:37:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:37:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:37:53,761 - agent.ComputerAgent - INFO - Computer: click({'x': 515, 'y': 232})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 515, 'y': 232})\n", - "\u001b[92m19:37:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 95%|█████████████████████████████████████---| 6945/7340 [251:35<14:18, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:37:54,423 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': 640, 'scroll_x': 0, 'x': 989, 'y': 366})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': 640, 'scroll_x': 0, 'x': 989, 'y': 366})\n", - "\u001b[92m19:37:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:37:55,120 - agent.ComputerAgent - INFO - Computer: double_click({'x': 94, 'y': 453})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 94, 'y': 453})\n", - "\u001b[92m19:37:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 95%|█████████████████████████████████████---| 6946/7340 [251:36<14:16, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:37:55,799 - agent.ComputerAgent - INFO - Computer: click({'x': 153, 'y': 52})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 153, 'y': 52})\n", - "\u001b[92m19:37:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:37:56,468 - agent.ComputerAgent - INFO - Computer: double_click({'x': 354, 'y': 136})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 354, 'y': 136})\n", - "\u001b[92m19:37:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:37:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 95%|█████████████████████████████████████---| 6948/7340 [251:38<14:11, 27.6 steps/min]2025-08-11 19:37:57,837 - agent.ComputerAgent - INFO - Computer: click({'x': 471, 'y': 205})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 471, 'y': 205})\n", - "\u001b[92m19:37:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/af58ffed-65a3-4c4a-a9fe-5c940230627d/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:37:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:37:58,540 - agent.ComputerAgent - INFO - Computer: click({'x': 945, 'y': 500})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 945, 'y': 500})\n", - "2025-08-11 19:37:59,244 - agent.ComputerAgent - INFO - Computer: double_click({'x': 989, 'y': 713})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 989, 'y': 713})\n", - " 95%|█████████████████████████████████████---| 6950/7340 [251:40<14:07, 27.6 steps/min]\u001b[92m19:37:59 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:37:59,918 - agent.ComputerAgent - INFO - Computer: click({'x': 913, 'y': 184})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 913, 'y': 184})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0180c5d2-a012-4261-b093-ed34f443f269/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:38:00,585 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m19:38:00 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 95%|█████████████████████████████████████---| 6953/7340 [251:42<14:00, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/acf3037a-4b6c-4ea8-b81c-ffc2e76132e1/invoke \"HTTP/1.1 200 OK\"\n", - " 95%|█████████████████████████████████████---| 6954/7340 [251:43<13:58, 27.6 steps/min]2025-08-11 19:38:02,285 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m19:38:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 95%|█████████████████████████████████████---| 6954/7340 [251:44<13:58, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7f112db6-0b60-4e6c-86f5-0d87dc91f371/invoke \"HTTP/1.1 200 OK\"\n", - " 95%|█████████████████████████████████████---| 6954/7340 [251:45<13:58, 27.6 steps/min]2025-08-11 19:38:04,439 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m19:38:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/51c56274-d8ae-4edf-8ff1-b637cd2fff66/invoke \"HTTP/1.1 200 OK\"\n", - " 95%|█████████████████████████████████████---| 6954/7340 [251:46<13:58, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/8e75deb1-3c97-408b-8c7d-f4681b322141/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:38:05,613 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m19:38:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/c915dbd9-32bc-40a7-9c07-d437c737419f/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:38:07,021 - agent.ComputerAgent - INFO - Agent: I configured your system to lock automatically when you’re away.\n", - "\n", - "What I set\n", - "- Enabled Automatic Screen Lock.\n", - "- Set Blank Screen Delay to 5 minutes, so after 5 minutes of inactivity the screen turns off and locks immediately.\n", - "- Kept “Lock screen on Suspend” enabled, so any suspend will also require a password on wake.\n", - "\n", - "How to adjust later\n", - "- Settings > Privacy > Screen:\n", - " - Change “Blank Screen Delay” to your preferred timeout (e.g., 1–2 minutes for tighter security).\n", - " - “Automatic Screen Lock Delay” is set to lock as soon as the screen turns off.\n", - "\n", - "Tip\n", - "- Press Super+L anytime to lock instantly.\n", - "\n", - "Task completed.\n", - "INFO:agent.ComputerAgent:Agent: I configured your system to lock automatically when you’re away.\n", - "\n", - "What I set\n", - "- Enabled Automatic Screen Lock.\n", - "- Set Blank Screen Delay to 5 minutes, so after 5 minutes of inactivity the screen turns off and locks immediately.\n", - "- Kept “Lock screen on Suspend” enabled, so any suspend will also require a password on wake.\n", - "\n", - "How to adjust later\n", - "- Settings > Privacy > Screen:\n", - " - Change “Blank Screen Delay” to your preferred timeout (e.g., 1–2 minutes for tighter security).\n", - " - “Automatic Screen Lock Delay” is set to lock as soon as the screen turns off.\n", - "\n", - "Tip\n", - "- Press Super+L anytime to lock instantly.\n", - "\n", - "Task completed.\n", - "2025-08-11 19:38:07,641 - agent.ComputerAgent - INFO - Total usage:\n", - " - completion_tokens: 790\n", - " - prompt_tokens: 10768\n", - " - total_tokens: 11558\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 640\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0214\n", - "INFO:agent.ComputerAgent:Total usage:\n", - " - completion_tokens: 790\n", - " - prompt_tokens: 10768\n", - " - total_tokens: 11558\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 640\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 0\n", - " - response_cost: $0.0214\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/5e73167c-1836-4752-b7e8-57434e5d7875/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ba3f752c-7268-49e8-819c-5b471e52bd54/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0c64a3b4-e9b0-46c1-a580-cdcf62b74e44/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/25f45afe-ee57-4629-9991-c515438accab/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/68f513cf-ec21-4216-bab9-84c5bfcfce88/invoke \"HTTP/1.1 200 OK\"\n", - " 95%|█████████████████████████████████████---| 6955/7340 [251:49<13:56, 27.6 steps/min]2025-08-11 19:38:08,315 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m19:38:08 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:38:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:38:09,672 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m19:38:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 95%|█████████████████████████████████████---| 6955/7340 [251:52<13:56, 27.6 steps/min]\u001b[92m19:38:10 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:38:10 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:38:11,032 - agent.ComputerAgent - INFO - Computer: click({'x': 375, 'y': 75})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 375, 'y': 75})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/af58ffed-65a3-4c4a-a9fe-5c940230627d/invoke \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:38:11 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:38:11,731 - agent.ComputerAgent - INFO - Computer: click({'x': 210, 'y': 202})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 210, 'y': 202})\n", - " 95%|█████████████████████████████████████---| 6958/7340 [251:53<13:49, 27.6 steps/min]2025-08-11 19:38:12,415 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m19:38:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7633715b-dde0-4c56-a4b6-22ccee78f5f5/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:38:13,115 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m19:38:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 95%|█████████████████████████████████████---| 6960/7340 [251:54<13:45, 27.6 steps/min]2025-08-11 19:38:13,805 - agent.ComputerAgent - INFO - LLM processing started with 40 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 40 messages\n", - "\u001b[92m19:38:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/af58ffed-65a3-4c4a-a9fe-5c940230627d/close \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:38:14,486 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m19:38:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:38:15,845 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m19:38:15 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 95%|█████████████████████████████████████---| 6960/7340 [251:57<13:45, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:38:17,724 - agent.ComputerAgent - INFO - Computer: type({'text': 'Vienna'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'Vienna'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7633715b-dde0-4c56-a4b6-22ccee78f5f5/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:38:19,084 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ENTER'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ENTER'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/40c5f987-3d81-47fe-8798-4e45d9755f93/reset \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6f3b006b-141d-439d-b6cb-eed7bd6483c3/invoke \"HTTP/1.1 200 OK\"\n", - " 95%|█████████████████████████████████████---| 6960/7340 [252:00<13:45, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:38:20,825 - agent.ComputerAgent - INFO - Computer: click({'x': 342, 'y': 184})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 342, 'y': 184})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/31367309-0055-409a-a992-edf729fb010c/invoke \"HTTP/1.1 200 OK\"\n", - " 95%|█████████████████████████████████████---| 6969/7340 [252:02<13:25, 27.7 steps/min]2025-08-11 19:38:21,487 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m19:38:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:38:22,165 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m19:38:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:38:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 95%|█████████████████████████████████████---| 6970/7340 [252:05<13:22, 27.6 steps/min]\u001b[92m19:38:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:38:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00/dev/null || echo 'Requesting sudo password if needed'\"})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': \"sudo -n true 2>/dev/null || echo 'Requesting sudo password if needed'\"})\n", - " 95%|██████████████████████████████████████--| 6973/7340 [252:29<13:17, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:38:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:38:49,132 - agent.ComputerAgent - INFO - Computer: click({'x': 178, 'y': 305})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 178, 'y': 305})\n", - " 95%|██████████████████████████████████████--| 6974/7340 [252:30<13:15, 27.6 steps/min]\u001b[92m19:38:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:38:49,800 - agent.ComputerAgent - INFO - Computer: click({'x': 932, 'y': 296})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 932, 'y': 296})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fa081188-4859-4858-9d33-0f9675111182/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:38:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 95%|██████████████████████████████████████--| 6975/7340 [252:32<13:12, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - " 95%|██████████████████████████████████████--| 6976/7340 [252:33<13:10, 27.6 steps/min]\u001b[92m19:38:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:38:52,154 - agent.ComputerAgent - INFO - Computer: click({'x': 88, 'y': 313})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 88, 'y': 313})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/51c56274-d8ae-4edf-8ff1-b637cd2fff66/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:38:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/fa081188-4859-4858-9d33-0f9675111182/reset \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cb64a220-43d8-4373-bd2a-e73bacb4a122/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 95%|██████████████████████████████████████--| 6976/7340 [252:35<13:10, 27.6 steps/min]\u001b[92m19:38:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1a178f89-87e5-46d9-a114-22d5fcc5c630/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:38:54,176 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m19:38:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:38:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:38:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/8e75deb1-3c97-408b-8c7d-f4681b322141/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/68f513cf-ec21-4216-bab9-84c5bfcfce88/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/25f45afe-ee57-4629-9991-c515438accab/invoke \"HTTP/1.1 200 OK\"\n", - " 95%|██████████████████████████████████████--| 6977/7340 [252:36<13:08, 27.6 steps/min]2025-08-11 19:38:55,531 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 19:38:55,532 - agent.ComputerAgent - INFO - Computer: double_click({'x': 379, 'y': 105})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 379, 'y': 105})\n", - "2025-08-11 19:38:56,196 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m19:38:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 95%|██████████████████████████████████████--| 6977/7340 [252:37<13:08, 27.6 steps/min]2025-08-11 19:38:56,856 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m19:38:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:38:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:38:57,552 - agent.ComputerAgent - INFO - Computer: click({'x': 351, 'y': 75})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 351, 'y': 75})\n", - " 95%|██████████████████████████████████████--| 6978/7340 [252:39<13:06, 27.6 steps/min]2025-08-11 19:38:58,981 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m19:38:59 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d71be89e-00e2-40e7-8b8d-38e36bc6d26c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fa081188-4859-4858-9d33-0f9675111182/invoke \"HTTP/1.1 200 OK\"\n", - " 95%|██████████████████████████████████████--| 6979/7340 [252:40<13:04, 27.6 steps/min]2025-08-11 19:38:59,669 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m19:38:59 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:38:59 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:38:59 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 95%|██████████████████████████████████████--| 6979/7340 [252:42<13:04, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/40c5f987-3d81-47fe-8798-4e45d9755f93/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:39:02,357 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m19:39:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:39:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:39:03,722 - agent.ComputerAgent - INFO - Computer: wait({})\n", - "INFO:agent.ComputerAgent:Computer: wait({})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ba3f752c-7268-49e8-819c-5b471e52bd54/invoke \"HTTP/1.1 200 OK\"\n", - " 95%|██████████████████████████████████████--| 6979/7340 [252:45<13:04, 27.6 steps/min]2025-08-11 19:39:04,403 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': 640, 'scroll_x': 0, 'x': 993, 'y': 732})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': 640, 'scroll_x': 0, 'x': 993, 'y': 732})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6f3b006b-141d-439d-b6cb-eed7bd6483c3/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:39:05,068 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m19:39:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:39:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 95%|██████████████████████████████████████--| 6980/7340 [252:46<13:02, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:39:06,128 - agent.ComputerAgent - INFO - Computer: click({'x': 316, 'y': 183})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 316, 'y': 183})\n", - "2025-08-11 19:39:06,806 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m19:39:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:39:08,174 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ENTER'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ENTER'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 95%|██████████████████████████████████████--| 6981/7340 [252:50<13:00, 27.6 steps/min]\u001b[92m19:39:08 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:39:08 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:39:10,148 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 19:39:10,149 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'meta'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'meta'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:39:10 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:39:11,496 - agent.ComputerAgent - INFO - Computer: click({'x': 569, 'y': 372})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 569, 'y': 372})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:39:11 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:39:12,817 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+a'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+a'})\n", - " 95%|██████████████████████████████████████--| 6983/7340 [252:54<12:55, 27.6 steps/min]2025-08-11 19:39:13,521 - agent.ComputerAgent - INFO - Computer: click({'x': 81, 'y': 148})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 81, 'y': 148})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:39:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:39:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/25f45afe-ee57-4629-9991-c515438accab/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:39:14,827 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 210, 'y': 177}, {'x': 210, 'y': 457}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 210, 'y': 177}, {'x': 210, 'y': 457}]})\n", - "2025-08-11 19:39:15,498 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m19:39:15 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:39:16,177 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - " 95%|██████████████████████████████████████--| 6985/7340 [252:57<12:51, 27.6 steps/min]\u001b[92m19:39:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:39:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:39:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 95%|██████████████████████████████████████--| 6987/7340 [252:58<12:46, 27.6 steps/min]\u001b[92m19:39:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:39:17,905 - agent.ComputerAgent - INFO - Computer: click({'x': 461, 'y': 321})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 461, 'y': 321})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9882ec8e-4618-4be3-802e-bb5c58c9fbbc/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b14fe395-5fa2-43f0-9d0b-23c42f3e9093/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:39:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 95%|██████████████████████████████████████--| 6988/7340 [253:01<12:44, 27.6 steps/min]\u001b[92m19:39:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:39:20,770 - agent.ComputerAgent - INFO - Computer: click({'x': 15, 'y': 430})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 15, 'y': 430})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0180c5d2-a012-4261-b093-ed34f443f269/invoke \"HTTP/1.1 200 OK\"\n", - " 95%|██████████████████████████████████████--| 6988/7340 [253:02<12:44, 27.6 steps/min]2025-08-11 19:39:21,798 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m19:39:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fa081188-4859-4858-9d33-0f9675111182/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/5e73167c-1836-4752-b7e8-57434e5d7875/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/68f513cf-ec21-4216-bab9-84c5bfcfce88/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/31367309-0055-409a-a992-edf729fb010c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/c915dbd9-32bc-40a7-9c07-d437c737419f/invoke \"HTTP/1.1 200 OK\"\n", - " 95%|██████████████████████████████████████--| 6989/7340 [253:03<12:42, 27.6 steps/min]2025-08-11 19:39:22,498 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m19:39:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:39:23,147 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m19:39:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:39:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 95%|██████████████████████████████████████--| 6989/7340 [253:04<12:42, 27.6 steps/min]2025-08-11 19:39:23,865 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 209, 'y': 146}, {'x': 281, 'y': 396}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 209, 'y': 146}, {'x': 281, 'y': 396}]})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0c64a3b4-e9b0-46c1-a580-cdcf62b74e44/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7f112db6-0b60-4e6c-86f5-0d87dc91f371/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:39:24,516 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m19:39:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1a178f89-87e5-46d9-a114-22d5fcc5c630/invoke \"HTTP/1.1 200 OK\"\n", - " 95%|██████████████████████████████████████--| 6989/7340 [253:06<12:42, 27.6 steps/min]2025-08-11 19:39:25,167 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m19:39:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:39:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:39:27,161 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'esc'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'esc'})\n", - "2025-08-11 19:39:27,846 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m19:39:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:39:28,870 - agent.ComputerAgent - INFO - LLM processing started with 42 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 42 messages\n", - "\u001b[92m19:39:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/1a178f89-87e5-46d9-a114-22d5fcc5c630/close \"HTTP/1.1 200 OK\"\n", - " 95%|██████████████████████████████████████--| 6990/7340 [253:10<12:40, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:39:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:39:30,222 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+a'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+a'})\n", - "2025-08-11 19:39:30,916 - agent.ComputerAgent - INFO - Computer: click({'x': 91, 'y': 314})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 91, 'y': 314})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:39:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/40c5f987-3d81-47fe-8798-4e45d9755f93/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 95%|██████████████████████████████████████--| 6991/7340 [253:13<12:38, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/acf3037a-4b6c-4ea8-b81c-ffc2e76132e1/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:39:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:39:33,548 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m19:39:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:39:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 95%|██████████████████████████████████████--| 6992/7340 [253:15<12:36, 27.6 steps/min]2025-08-11 19:39:34,246 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m19:39:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:39:34,914 - agent.ComputerAgent - INFO - Computer: click({'x': 341, 'y': 305})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 341, 'y': 305})\n", - "2025-08-11 19:39:35,577 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m19:39:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 95%|██████████████████████████████████████--| 6992/7340 [253:17<12:36, 27.6 steps/min]2025-08-11 19:39:36,257 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m19:39:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v1/gyms/OSWorld-Ubuntu \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00/dev/null 2>&1; then\\n echo \\'User charles already exists\\'\\nelse\\n sudo useradd -M -s /usr/sbin/nologin -d / charles\\nfi\\n\\necho \\'charles:Ex@mpleP@55w0rd!\\' | sudo chpasswd\\n\\n# Give the user write access inside the jail via a subdirectory\\nsudo mkdir -p /home/test1/uploads\\nsudo chown charles:charles /home/test1/uploads\\n\\n# Configure OpenSSH to chroot the user and force SFTP only\\nsudo bash -lc \\'cat >>/etc/ssh/sshd_config <<\"EOF\"\\n\\nMatch User charles\\n ChrootDirectory /home/test1\\n ForceCommand internal-sftp\\n AllowTCPForwarding no\\n X11Forwarding no\\nEOF\\'\\n\\n# Restart SSH to apply changes\\nsudo systemctl restart ssh || sudo systemctl restart sshd\\n\\necho \\'Setup complete: user charles restricted to /home/test1 via SFTP.\\''})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'set -e\\nsudo mkdir -p /home/test1/uploads\\nsudo chown root:root /home/test1\\nsudo chmod 755 /home/test1\\n\\n# Create the user for SFTP-only access chrooted to /home/test1\\nif id -u charles >/dev/null 2>&1; then\\n echo \\'User charles already exists\\'\\nelse\\n sudo useradd -M -s /usr/sbin/nologin -d / charles\\nfi\\n\\necho \\'charles:Ex@mpleP@55w0rd!\\' | sudo chpasswd\\n\\n# Give the user write access inside the jail via a subdirectory\\nsudo mkdir -p /home/test1/uploads\\nsudo chown charles:charles /home/test1/uploads\\n\\n# Configure OpenSSH to chroot the user and force SFTP only\\nsudo bash -lc \\'cat >>/etc/ssh/sshd_config <<\"EOF\"\\n\\nMatch User charles\\n ChrootDirectory /home/test1\\n ForceCommand internal-sftp\\n AllowTCPForwarding no\\n X11Forwarding no\\nEOF\\'\\n\\n# Restart SSH to apply changes\\nsudo systemctl restart ssh || sudo systemctl restart sshd\\n\\necho \\'Setup complete: user charles restricted to /home/test1 via SFTP.\\''})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 100%|██████████| 4/4 [00:05<00:00, 1.34s/it]\n", - "\u001b[92m19:41:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 96%|██████████████████████████████████████--| 7029/7340 [255:01<11:17, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:41:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 96%|██████████████████████████████████████--| 7030/7340 [255:03<11:14, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:41:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:41:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:41:22,776 - agent.ComputerAgent - INFO - Computer: click({'x': 187, 'y': 52})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 187, 'y': 52})\n", - " 96%|██████████████████████████████████████--| 7030/7340 [255:04<11:14, 27.6 steps/min]\u001b[92m19:41:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:41:23,473 - agent.ComputerAgent - INFO - Computer: click({'x': 540, 'y': 471})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 540, 'y': 471})\n", - "\u001b[92m19:41:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:41:24,156 - agent.ComputerAgent - INFO - Computer: click({'x': 865, 'y': 201})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 865, 'y': 201})\n", - "\u001b[92m19:41:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:41:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 96%|██████████████████████████████████████--| 7031/7340 [255:06<11:12, 27.6 steps/min]\u001b[92m19:41:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:41:25,511 - agent.ComputerAgent - INFO - Computer: click({'x': 91, 'y': 314, 'button': 'left'})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 91, 'y': 314, 'button': 'left'})\n", - "2025-08-11 19:41:26,190 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': 640, 'scroll_x': 0, 'x': 990, 'y': 709})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': 640, 'scroll_x': 0, 'x': 990, 'y': 709})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/25f45afe-ee57-4629-9991-c515438accab/invoke \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:41:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:41:26,861 - agent.ComputerAgent - INFO - Computer: click({'x': 13, 'y': 673})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 13, 'y': 673})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:41:28,168 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'F11'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'F11'})\n", - " 96%|██████████████████████████████████████--| 7033/7340 [255:09<11:08, 27.6 steps/min]2025-08-11 19:41:28,840 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m19:41:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/68f513cf-ec21-4216-bab9-84c5bfcfce88/invoke \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:41:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:41:29,543 - agent.ComputerAgent - INFO - Computer: click({'x': 461, 'y': 101})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 461, 'y': 101})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 96%|██████████████████████████████████████--| 7037/7340 [255:11<10:59, 27.6 steps/min]\u001b[92m19:41:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:41:30,890 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m19:41:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:41:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:41:31,564 - agent.ComputerAgent - INFO - Computer: click({'x': 510, 'y': 283})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 510, 'y': 283})\n", - " 96%|██████████████████████████████████████--| 7039/7340 [255:16<10:54, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/31367309-0055-409a-a992-edf729fb010c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/8e75deb1-3c97-408b-8c7d-f4681b322141/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ba3f752c-7268-49e8-819c-5b471e52bd54/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/51c56274-d8ae-4edf-8ff1-b637cd2fff66/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:41:35,309 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m19:41:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fa081188-4859-4858-9d33-0f9675111182/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0c64a3b4-e9b0-46c1-a580-cdcf62b74e44/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:41:36,009 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m19:41:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/5e73167c-1836-4752-b7e8-57434e5d7875/invoke \"HTTP/1.1 200 OK\"\n", - " 96%|██████████████████████████████████████--| 7039/7340 [255:17<10:55, 27.6 steps/min]2025-08-11 19:41:36,709 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m19:41:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:41:37,392 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m19:41:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:41:38,081 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:41:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:41:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:41:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7f112db6-0b60-4e6c-86f5-0d87dc91f371/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/40c5f987-3d81-47fe-8798-4e45d9755f93/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 96%|██████████████████████████████████████--| 7039/7340 [255:21<10:55, 27.6 steps/min]\u001b[92m19:41:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:41:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:41:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:41:41,479 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m19:41:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:41:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:41:42,130 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m19:41:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:41:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 96%|██████████████████████████████████████--| 7039/7340 [255:23<10:55, 27.6 steps/min]\u001b[92m19:41:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:41:42,794 - agent.ComputerAgent - INFO - Computer: click({'x': 996, 'y': 732})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 996, 'y': 732})\n", - "2025-08-11 19:41:43,448 - agent.ComputerAgent - INFO - Computer: click({'x': 223, 'y': 35})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 223, 'y': 35})\n", - "\u001b[92m19:41:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:41:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 96%|██████████████████████████████████████--| 7039/7340 [255:25<10:55, 27.6 steps/min]2025-08-11 19:41:44,120 - agent.ComputerAgent - INFO - Computer: click({'x': 343, 'y': 195})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 343, 'y': 195})\n", - "2025-08-11 19:41:44,810 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 209, 'y': 146}, {'x': 407, 'y': 399}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 209, 'y': 146}, {'x': 407, 'y': 399}]})\n", - " 96%|██████████████████████████████████████--| 7041/7340 [255:26<10:50, 27.6 steps/min]2025-08-11 19:41:45,450 - agent.ComputerAgent - INFO - LLM processing started with 40 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 40 messages\n", - "\u001b[92m19:41:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:41:46,139 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m19:41:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 96%|██████████████████████████████████████--| 7043/7340 [255:30<10:46, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:41:50,003 - agent.ComputerAgent - INFO - Computer: type({'text': 'chrome refresh 2023'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'chrome refresh 2023'})\n", - " 96%|██████████████████████████████████████--| 7043/7340 [255:31<10:46, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:41:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:41:51,944 - agent.ComputerAgent - INFO - Computer: type({'text': 'Yann LeCun Google Scholar'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'Yann LeCun Google Scholar'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/25f45afe-ee57-4629-9991-c515438accab/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0180c5d2-a012-4261-b093-ed34f443f269/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/acf3037a-4b6c-4ea8-b81c-ffc2e76132e1/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6f3b006b-141d-439d-b6cb-eed7bd6483c3/invoke \"HTTP/1.1 200 OK\"\n", - " 96%|██████████████████████████████████████--| 7044/7340 [255:33<10:44, 27.6 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:41:52,582 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m19:41:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:41:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:41:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 96%|██████████████████████████████████████--| 7045/7340 [255:35<10:42, 27.6 steps/min]\u001b[92m19:41:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:41:54,575 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m19:41:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:41:55,282 - agent.ComputerAgent - INFO - Computer: click({'x': 90, 'y': 314, 'button': 'left'})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 90, 'y': 314, 'button': 'left'})\n", - "\u001b[92m19:41:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/26dc2412-0699-4a4e-a272-dc576348a5c8/reset \"HTTP/1.1 200 OK\"\n", - " 96%|██████████████████████████████████████--| 7045/7340 [255:37<10:42, 27.6 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:41:55,970 - agent.ComputerAgent - INFO - Computer: double_click({'x': 12, 'y': 524})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 12, 'y': 524})\n", - "\u001b[92m19:41:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:41:56,628 - agent.ComputerAgent - INFO - Computer: click({'x': 164, 'y': 427})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 164, 'y': 427})\n", - " 96%|██████████████████████████████████████--| 7046/7340 [255:38<10:40, 27.6 steps/min]2025-08-11 19:41:57,310 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m19:41:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:41:58 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 96%|██████████████████████████████████████--| 7048/7340 [255:40<10:35, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:41:58 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:41:59,486 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': 590, 'scroll_x': 0, 'x': 991, 'y': 420})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': 590, 'scroll_x': 0, 'x': 991, 'y': 420})\n", - " 96%|██████████████████████████████████████--| 7048/7340 [255:41<10:35, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0180c5d2-a012-4261-b093-ed34f443f269/invoke \"HTTP/1.1 200 OK\"\n", - " 96%|██████████████████████████████████████--| 7049/7340 [255:42<10:33, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/26dc2412-0699-4a4e-a272-dc576348a5c8/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:42:02,043 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m19:42:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ba3f752c-7268-49e8-819c-5b471e52bd54/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/40c5f987-3d81-47fe-8798-4e45d9755f93/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fa081188-4859-4858-9d33-0f9675111182/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0180c5d2-a012-4261-b093-ed34f443f269/close \"HTTP/1.1 200 OK\"\n", - " 96%|██████████████████████████████████████--| 7049/7340 [255:43<10:33, 27.6 steps/min]2025-08-11 19:42:03,400 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m19:42:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:42:04,040 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m19:42:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:42:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:42:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/68f513cf-ec21-4216-bab9-84c5bfcfce88/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/51c56274-d8ae-4edf-8ff1-b637cd2fff66/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:42:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 96%|██████████████████████████████████████--| 7049/7340 [255:47<10:33, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/5e73167c-1836-4752-b7e8-57434e5d7875/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:42:06,703 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m19:42:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00Background Cover'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': '>Background Cover'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/7f112db6-0b60-4e6c-86f5-0d87dc91f371/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/create_environment \"HTTP/1.1 200 OK\"\n", - " 96%|██████████████████████████████████████--| 7072/7340 [256:50<9:43, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9882ec8e-4618-4be3-802e-bb5c58c9fbbc/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:43:08,956 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m19:43:08 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:43:10,282 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ENTER'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ENTER'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:43:10 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:43:12,251 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ENTER'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ENTER'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:43:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ba3f752c-7268-49e8-819c-5b471e52bd54/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 96%|██████████████████████████████████████--| 7074/7340 [256:54<9:39, 27.5 steps/min]2025-08-11 19:43:13,540 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 1 messages\n", - "\u001b[92m19:43:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:43:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:43:14,917 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'enter'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'enter'})\n", - "2025-08-11 19:43:15,565 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 19:43:15,566 - agent.ComputerAgent - INFO - Computer: click({'x': 75, 'y': 166})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 75, 'y': 166})\n", - "\u001b[92m19:43:15 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 96%|██████████████████████████████████████--| 7076/7340 [256:57<9:35, 27.5 steps/min]2025-08-11 19:43:16,239 - agent.ComputerAgent - INFO - Computer: click({'x': 985, 'y': 759})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 985, 'y': 759})\n", - "2025-08-11 19:43:16,881 - agent.ComputerAgent - INFO - LLM processing started with 42 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 42 messages\n", - "\u001b[92m19:43:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 96%|██████████████████████████████████████--| 7078/7340 [256:58<9:30, 27.5 steps/min]2025-08-11 19:43:17,557 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m19:43:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:43:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/765aa707-cf44-4dd0-8933-2c2b94870afd/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:43:18,888 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m19:43:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 96%|██████████████████████████████████████--| 7079/7340 [257:00<9:28, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:43:20,265 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl++'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl++'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:43:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 96%|██████████████████████████████████████--| 7079/7340 [257:02<9:28, 27.5 steps/min]\u001b[92m19:43:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:43:21,621 - agent.ComputerAgent - INFO - Computer: scroll({'scroll_y': 588, 'scroll_x': 0, 'x': 991, 'y': 433})\n", - "INFO:agent.ComputerAgent:Computer: scroll({'scroll_y': 588, 'scroll_x': 0, 'x': 991, 'y': 433})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:43:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/51c56274-d8ae-4edf-8ff1-b637cd2fff66/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:43:23,319 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m19:43:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/25f45afe-ee57-4629-9991-c515438accab/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d71be89e-00e2-40e7-8b8d-38e36bc6d26c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:43:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/26dc2412-0699-4a4e-a272-dc576348a5c8/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/68f513cf-ec21-4216-bab9-84c5bfcfce88/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0c64a3b4-e9b0-46c1-a580-cdcf62b74e44/invoke \"HTTP/1.1 200 OK\"\n", - " 96%|██████████████████████████████████████--| 7079/7340 [257:05<9:28, 27.5 steps/min]\u001b[92m19:43:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:43:24,668 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m19:43:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:43:25,366 - agent.ComputerAgent - INFO - Computer: click({'x': 341, 'y': 75})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 341, 'y': 75})\n", - "\u001b[92m19:43:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:43:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:43:26,376 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 19:43:26,377 - agent.ComputerAgent - INFO - Computer: click({'x': 48, 'y': 52})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 48, 'y': 52})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:43:27,706 - agent.ComputerAgent - INFO - Computer: click({'x': 213, 'y': 183})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 213, 'y': 183})\n", - " 96%|██████████████████████████████████████--| 7080/7340 [257:09<9:26, 27.5 steps/min]2025-08-11 19:43:28,338 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m19:43:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:43:29,016 - agent.ComputerAgent - INFO - Computer: click({'x': 666, 'y': 279})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 666, 'y': 279})\n", - " 96%|██████████████████████████████████████--| 7083/7340 [257:10<9:19, 27.5 steps/min]2025-08-11 19:43:29,687 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m19:43:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:43:30,358 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m19:43:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cb64a220-43d8-4373-bd2a-e73bacb4a122/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 97%|██████████████████████████████████████--| 7084/7340 [257:12<9:17, 27.5 steps/min]2025-08-11 19:43:31,038 - agent.ComputerAgent - INFO - LLM processing started with 8 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 8 messages\n", - "\u001b[92m19:43:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:43:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v1/environments/765aa707-cf44-4dd0-8933-2c2b94870afd/reset \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 97%|██████████████████████████████████████--| 7084/7340 [257:13<9:17, 27.5 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:43:32,348 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m19:43:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:43:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:43:33,008 - agent.ComputerAgent - INFO - Agent: Taking a screenshot to see the current computer screen.\n", - "INFO:agent.ComputerAgent:Agent: Taking a screenshot to see the current computer screen.\n", - "2025-08-11 19:43:33,009 - agent.ComputerAgent - INFO - Computer: click({'x': 79, 'y': 157})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 79, 'y': 157})\n", - " 97%|██████████████████████████████████████--| 7084/7340 [257:14<9:17, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:43:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0c64a3b4-e9b0-46c1-a580-cdcf62b74e44/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 97%|██████████████████████████████████████--| 7085/7340 [257:15<9:15, 27.5 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:43:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:43:35,405 - agent.ComputerAgent - INFO - Computer: click({'x': 679, 'y': 563})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 679, 'y': 563})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:43:36,736 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl++'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl++'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6f3b006b-141d-439d-b6cb-eed7bd6483c3/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:43:37 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9882ec8e-4618-4be3-802e-bb5c58c9fbbc/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fa081188-4859-4858-9d33-0f9675111182/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/0c64a3b4-e9b0-46c1-a580-cdcf62b74e44/close \"HTTP/1.1 200 OK\"\n", - " 97%|██████████████████████████████████████--| 7086/7340 [257:19<9:13, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/765aa707-cf44-4dd0-8933-2c2b94870afd/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/5e73167c-1836-4752-b7e8-57434e5d7875/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:43:38,000 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m19:43:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/31367309-0055-409a-a992-edf729fb010c/invoke \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:43:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b14fe395-5fa2-43f0-9d0b-23c42f3e9093/invoke \"HTTP/1.1 200 OK\"\n", - " 97%|██████████████████████████████████████--| 7087/7340 [257:20<9:11, 27.5 steps/min]2025-08-11 19:43:39,348 - agent.ComputerAgent - INFO - Computer: click({'button': 'left', 'x': 308, 'y': 153})\n", - "INFO:agent.ComputerAgent:Computer: click({'button': 'left', 'x': 308, 'y': 153})\n", - "2025-08-11 19:43:40,018 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m19:43:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:43:40,687 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 6 messages\n", - "\u001b[92m19:43:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:43:41,369 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m19:43:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 97%|██████████████████████████████████████--| 7087/7340 [257:23<9:11, 27.5 steps/min]\u001b[92m19:43:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:43:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:43:43,783 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m19:43:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00>/etc/ssh/sshd_config <<\"EOF\"\\n\\nMatch User charles\\n ChrootDirectory /home/test1\\n ForceCommand internal-sftp\\n AllowTCPForwarding no\\n X11Forwarding no\\nEOF\\'\\n\\n# Apply changes\\nsudo systemctl restart ssh || sudo systemctl restart sshd\\n\\n# Show resulting setup\\nid charles\\nls -ld /home/test1 /home/test1/uploads'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'set -e\\nsudo mkdir -p /home/test1\\nsudo chown root:root /home/test1\\nsudo chmod 755 /home/test1\\n\\n# Create user with no shell access\\nsudo useradd -M -s /usr/sbin/nologin -d / charles || true\\n\\necho \\'charles:Ex@mpleP@55w0rd!\\' | sudo chpasswd\\n\\n# Writable directory inside the jail\\nsudo mkdir -p /home/test1/uploads\\nsudo chown charles:charles /home/test1/uploads\\n\\n# Configure SSH to restrict user to SFTP chroot at /home/test1\\nsudo bash -lc \\'cat >>/etc/ssh/sshd_config <<\"EOF\"\\n\\nMatch User charles\\n ChrootDirectory /home/test1\\n ForceCommand internal-sftp\\n AllowTCPForwarding no\\n X11Forwarding no\\nEOF\\'\\n\\n# Apply changes\\nsudo systemctl restart ssh || sudo systemctl restart sshd\\n\\n# Show resulting setup\\nid charles\\nls -ld /home/test1 /home/test1/uploads'})\n", - " 97%|██████████████████████████████████████--| 7110/7340 [257:49<8:20, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:44:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9882ec8e-4618-4be3-802e-bb5c58c9fbbc/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fa081188-4859-4858-9d33-0f9675111182/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/40c5f987-3d81-47fe-8798-4e45d9755f93/invoke \"HTTP/1.1 200 OK\"\n", - " 97%|██████████████████████████████████████--| 7112/7340 [257:50<8:15, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/acf3037a-4b6c-4ea8-b81c-ffc2e76132e1/invoke \"HTTP/1.1 200 OK\"\n", - "Loading checkpoint shards: 0%| | 0/4 [00:00 Settings > General > scroll to the bottom > Config Editor…\n", - "- In the search box, type: applyIncomingFilters\n", - "- If mail.server.default.applyIncomingFilters is false or missing, set it to true.\n", - "- If you prefer per-account control, also set mail.server.serverN.applyIncomingFilters = true for the specific account (N is the server number for that account; you can set both default and per-account if you like).\n", - "\n", - "2) Ensure Thunderbird actually checks those subfolders for new mail\n", - "- For each subfolder you want filters to run on: right‑click the folder > Properties > check “When getting new messages, always check this folder” > OK.\n", - "- Alternatively (account-wide): Account Settings > Server Settings (for the IMAP account) > enable “Check for new messages at startup” and “Check for new messages every X minutes.” In Advanced IMAP settings (or via Config Editor), ensure mail.server.serverN.check_all_folders_for_new = true to have Thunderbird poll all folders.\n", - "\n", - "3) Make sure your filters are set to run on incoming mail\n", - "- Tools (≡ menu) > Message Filters.\n", - "- Choose the account, edit each filter you want, and under “Apply filter when,” tick the “Getting New Mail” options (before/after junk classification as appropriate). Save.\n", - "\n", - "4) Restart Thunderbird\n", - "- Close and reopen Thunderbird so the new prefs apply cleanly.\n", - "\n", - "5) Test\n", - "- Deliver a message directly to a subfolder (e.g., by a server-side rule or by sending to an address that your server routes into that folder). When Thunderbird detects new mail in that subfolder, your filters should run automatically.\n", - "\n", - "Notes and limitations\n", - "- IMAP required: This works when new mail arrives directly into that subfolder on the server (IMAP). For POP accounts and Local Folders, Thunderbird only “receives” mail into Inbox; filters won’t auto-trigger simply because a message...\n", - "INFO:agent.ComputerAgent:Agent: Yes—you can make Thunderbird run filters automatically on subfolders (not just Inbox). Do the following once per account you want this behavior for.\n", - "\n", - "1) Turn on the hidden preference to run filters on non-Inbox folders\n", - "- Thunderbird > Settings > General > scroll to the bottom > Config Editor…\n", - "- In the search box, type: applyIncomingFilters\n", - "- If mail.server.default.applyIncomingFilters is false or missing, set it to true.\n", - "- If you prefer per-account control, also set mail.server.serverN.applyIncomingFilters = true for the specific account (N is the server number for that account; you can set both default and per-account if you like).\n", - "\n", - "2) Ensure Thunderbird actually checks those subfolders for new mail\n", - "- For each subfolder you want filters to run on: right‑click the folder > Properties > check “When getting new messages, always check this folder” > OK.\n", - "- Alternatively (account-wide): Account Settings > Server Settings (for the IMAP account) > enable “Check for new messages at startup” and “Check for new messages every X minutes.” In Advanced IMAP settings (or via Config Editor), ensure mail.server.serverN.check_all_folders_for_new = true to have Thunderbird poll all folders.\n", - "\n", - "3) Make sure your filters are set to run on incoming mail\n", - "- Tools (≡ menu) > Message Filters.\n", - "- Choose the account, edit each filter you want, and under “Apply filter when,” tick the “Getting New Mail” options (before/after junk classification as appropriate). Save.\n", - "\n", - "4) Restart Thunderbird\n", - "- Close and reopen Thunderbird so the new prefs apply cleanly.\n", - "\n", - "5) Test\n", - "- Deliver a message directly to a subfolder (e.g., by a server-side rule or by sending to an address that your server routes into that folder). When Thunderbird detects new mail in that subfolder, your filters should run automatically.\n", - "\n", - "Notes and limitations\n", - "- IMAP required: This works when new mail arrives directly into that subfolder on the server (IMAP). For POP accounts and Local Folders, Thunderbird only “receives” mail into Inbox; filters won’t auto-trigger simply because a message...\n", - "2025-08-11 19:47:20,255 - agent.ComputerAgent - INFO - Total usage:\n", - " - completion_tokens: 3021\n", - " - prompt_tokens: 3980\n", - " - total_tokens: 7001\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 2496\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 1920\n", - " - response_cost: $0.0330\n", - "INFO:agent.ComputerAgent:Total usage:\n", - " - completion_tokens: 3021\n", - " - prompt_tokens: 3980\n", - " - total_tokens: 7001\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 2496\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 1920\n", - " - response_cost: $0.0330\n", - " 98%|███████████████████████████████████████-| 7212/7340 [261:01<4:37, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:47:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:47:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:47:21,621 - agent.ComputerAgent - INFO - Computer: type({'text': ' chrome refresh 2023'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': ' chrome refresh 2023'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/5e73167c-1836-4752-b7e8-57434e5d7875/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:47:22,286 - agent.ComputerAgent - INFO - Computer: click({'x': 239, 'y': 178})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 239, 'y': 178})\n", - "2025-08-11 19:47:22,928 - agent.ComputerAgent - INFO - Computer: click({'x': 980, 'y': 60})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 980, 'y': 60})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/40c5f987-3d81-47fe-8798-4e45d9755f93/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b14fe395-5fa2-43f0-9d0b-23c42f3e9093/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cb64a220-43d8-4373-bd2a-e73bacb4a122/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/25f45afe-ee57-4629-9991-c515438accab/invoke \"HTTP/1.1 200 OK\"\n", - " 98%|███████████████████████████████████████-| 7213/7340 [261:04<4:35, 27.6 steps/min]2025-08-11 19:47:23,594 - agent.ComputerAgent - INFO - LLM processing started with 42 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 42 messages\n", - "\u001b[92m19:47:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:47:24,237 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m19:47:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 98%|███████████████████████████████████████-| 7216/7340 [261:06<4:29, 27.6 steps/min]2025-08-11 19:47:24,914 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m19:47:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:47:26,264 - agent.ComputerAgent - INFO - Agent: The Impress slide was exported to PNG using the default settings and saved as “res.png” on the Desktop. Task completed.\n", - "INFO:agent.ComputerAgent:Agent: The Impress slide was exported to PNG using the default settings and saved as “res.png” on the Desktop. Task completed.\n", - "2025-08-11 19:47:26,906 - agent.ComputerAgent - INFO - Total usage:\n", - " - completion_tokens: 162\n", - " - prompt_tokens: 8778\n", - " - total_tokens: 8940\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 128\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 6656\n", - " - response_cost: $0.0051\n", - "INFO:agent.ComputerAgent:Total usage:\n", - " - completion_tokens: 162\n", - " - prompt_tokens: 8778\n", - " - total_tokens: 8940\n", - " - completion_tokens_details:\n", - " - accepted_prediction_tokens: 0\n", - " - audio_tokens: 0\n", - " - reasoning_tokens: 128\n", - " - rejected_prediction_tokens: 0\n", - " - prompt_tokens_details:\n", - " - audio_tokens: 0\n", - " - cached_tokens: 6656\n", - " - response_cost: $0.0051\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cd53d966-2507-485c-bbe9-ee55dbbeddd0/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/5e73167c-1836-4752-b7e8-57434e5d7875/close \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/25f45afe-ee57-4629-9991-c515438accab/invoke \"HTTP/1.1 200 OK\"\n", - " 98%|███████████████████████████████████████-| 7217/7340 [261:09<4:27, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/25f45afe-ee57-4629-9991-c515438accab/close \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9882ec8e-4618-4be3-802e-bb5c58c9fbbc/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6f3b006b-141d-439d-b6cb-eed7bd6483c3/invoke \"HTTP/1.1 200 OK\"\n", - " 98%|███████████████████████████████████████-| 7217/7340 [261:10<4:27, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cd53d966-2507-485c-bbe9-ee55dbbeddd0/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fa081188-4859-4858-9d33-0f9675111182/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:47:30,124 - agent.ComputerAgent - INFO - LLM processing started with 40 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 40 messages\n", - "\u001b[92m19:47:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9053f5ae-149f-4a73-a89e-977f3e750435/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:47:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/31367309-0055-409a-a992-edf729fb010c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 99%|███████████████████████████████████████-| 7233/7340 [261:12<3:51, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cd53d966-2507-485c-bbe9-ee55dbbeddd0/close \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:47:31,452 - agent.ComputerAgent - INFO - LLM processing started with 10 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 10 messages\n", - "\u001b[92m19:47:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:47:32,084 - agent.ComputerAgent - INFO - LLM processing started with 42 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 42 messages\n", - "\u001b[92m19:47:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:47:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 99%|███████████████████████████████████████-| 7233/7340 [261:13<3:51, 27.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b4eee866-c191-4acf-b232-9b18a3c888ef/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:47:32,764 - agent.ComputerAgent - INFO - Computer: click({'x': 76, 'y': 53})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 76, 'y': 53})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6f3b006b-141d-439d-b6cb-eed7bd6483c3/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:47:33,390 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m19:47:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9882ec8e-4618-4be3-802e-bb5c58c9fbbc/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7235/7340 [261:15<3:47, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/6f3b006b-141d-439d-b6cb-eed7bd6483c3/close \"HTTP/1.1 200 OK\"\n", - " 99%|███████████████████████████████████████-| 7245/7340 [261:16<3:25, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9882ec8e-4618-4be3-802e-bb5c58c9fbbc/close \"HTTP/1.1 200 OK\"\n", - " 99%|███████████████████████████████████████-| 7245/7340 [261:17<3:25, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:47:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:47:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 99%|███████████████████████████████████████-| 7245/7340 [261:18<3:25, 27.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:47:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:47:37,446 - agent.ComputerAgent - INFO - Computer: click({'x': 901, 'y': 579})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 901, 'y': 579})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:47:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:47:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 99%|███████████████████████████████████████-| 7245/7340 [261:20<3:25, 27.7 steps/min]\u001b[92m19:47:38 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:47:39,450 - agent.ComputerAgent - INFO - Computer: click({'x': 1011, 'y': 194})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 1011, 'y': 194})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:47:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/26dc2412-0699-4a4e-a272-dc576348a5c8/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 99%|███████████████████████████████████████-| 7246/7340 [261:21<3:23, 27.7 steps/min]\u001b[92m19:47:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:47:40,815 - agent.ComputerAgent - INFO - Computer: click({'x': 243, 'y': 52})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 243, 'y': 52})\n", - "\u001b[92m19:47:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:47:41,487 - agent.ComputerAgent - INFO - Computer: click({'x': 259, 'y': 178})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 259, 'y': 178})\n", - "\u001b[92m19:47:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 99%|███████████████████████████████████████-| 7247/7340 [261:23<3:21, 27.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:47:42,158 - agent.ComputerAgent - INFO - Computer: click({'x': 893, 'y': 296})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 893, 'y': 296})\n", - "2025-08-11 19:47:42,787 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m19:47:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7250/7340 [261:28<3:14, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:47:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/8e75deb1-3c97-408b-8c7d-f4681b322141/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9053f5ae-149f-4a73-a89e-977f3e750435/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:47:48,590 - agent.ComputerAgent - INFO - LLM processing started with 12 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 12 messages\n", - "\u001b[92m19:47:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:47:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ba3f752c-7268-49e8-819c-5b471e52bd54/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d71be89e-00e2-40e7-8b8d-38e36bc6d26c/invoke \"HTTP/1.1 200 OK\"\n", - " 99%|███████████████████████████████████████-| 7250/7340 [261:30<3:14, 27.7 steps/min]\u001b[92m19:47:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:47:49,265 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m19:47:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:47:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b4eee866-c191-4acf-b232-9b18a3c888ef/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 99%|███████████████████████████████████████-| 7250/7340 [261:31<3:14, 27.7 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:47:50,594 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m19:47:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:47:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:47:51,304 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m19:47:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:47:51,990 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 275, 'y': 181}, {'x': 79, 'y': 182}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 275, 'y': 181}, {'x': 79, 'y': 182}]})\n", - " 99%|███████████████████████████████████████-| 7250/7340 [261:33<3:14, 27.7 steps/min]\u001b[92m19:47:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:47:52,662 - agent.ComputerAgent - INFO - Computer: click({'x': 252, 'y': 230})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 252, 'y': 230})\n", - " 99%|███████████████████████████████████████-| 7252/7340 [261:35<3:10, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:47:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:47:56,131 - agent.ComputerAgent - INFO - Computer: type({'text': '=A2+B2'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': '=A2+B2'})\n", - " 99%|███████████████████████████████████████-| 7252/7340 [261:37<3:10, 27.7 steps/min]\u001b[92m19:47:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:47:56,793 - agent.ComputerAgent - INFO - Computer: click({'x': 563, 'y': 101})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 563, 'y': 101})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:47:58,146 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'alt+left'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'alt+left'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cb64a220-43d8-4373-bd2a-e73bacb4a122/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:47:58 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b14fe395-5fa2-43f0-9d0b-23c42f3e9093/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 99%|███████████████████████████████████████-| 7253/7340 [261:40<3:08, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ba3f752c-7268-49e8-819c-5b471e52bd54/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:47:59,467 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m19:47:59 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:48:00,135 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m19:48:00 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:48:00 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 99%|███████████████████████████████████████-| 7254/7340 [261:41<3:06, 27.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:48:00,837 - agent.ComputerAgent - INFO - Computer: click({'x': 111, 'y': 52})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 111, 'y': 52})\n", - " 99%|███████████████████████████████████████-| 7254/7340 [261:42<3:06, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/ba3f752c-7268-49e8-819c-5b471e52bd54/close \"HTTP/1.1 200 OK\"\n", - " 99%|███████████████████████████████████████-| 7255/7340 [261:44<3:04, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:48:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 99%|███████████████████████████████████████-| 7255/7340 [261:45<3:04, 27.7 steps/min]\u001b[92m19:48:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:48:04,749 - agent.ComputerAgent - INFO - Computer: click({'x': 19, 'y': 45})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 19, 'y': 45})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:48:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 99%|███████████████████████████████████████-| 7255/7340 [261:47<3:04, 27.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fa081188-4859-4858-9d33-0f9675111182/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9053f5ae-149f-4a73-a89e-977f3e750435/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:48:06,105 - agent.ComputerAgent - INFO - LLM processing started with 42 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 42 messages\n", - "\u001b[92m19:48:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:48:06,746 - agent.ComputerAgent - INFO - LLM processing started with 14 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 14 messages\n", - "\u001b[92m19:48:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7256/7340 [261:48<3:01, 27.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:48:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:48:07,447 - agent.ComputerAgent - INFO - Computer: click({'x': 273, 'y': 90})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 273, 'y': 90})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/26dc2412-0699-4a4e-a272-dc576348a5c8/invoke \"HTTP/1.1 200 OK\"\n", - " 99%|███████████████████████████████████████-| 7256/7340 [261:49<3:01, 27.7 steps/min]2025-08-11 19:48:08,626 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m19:48:08 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7257/7340 [261:51<2:59, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:48:10 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b4eee866-c191-4acf-b232-9b18a3c888ef/invoke \"HTTP/1.1 200 OK\"\n", - " 99%|███████████████████████████████████████-| 7257/7340 [261:52<2:59, 27.7 steps/min]2025-08-11 19:48:11,495 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m19:48:11 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:48:11 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:48:11 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 99%|███████████████████████████████████████-| 7257/7340 [261:53<2:59, 27.7 steps/min]\u001b[92m19:48:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:48:12,687 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 211, 'y': 178}, {'x': 211, 'y': 473}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 211, 'y': 178}, {'x': 211, 'y': 473}]})\n", - " 99%|███████████████████████████████████████-| 7257/7340 [261:54<2:59, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d71be89e-00e2-40e7-8b8d-38e36bc6d26c/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:48:14,357 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m19:48:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7258/7340 [261:56<2:57, 27.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/40c5f987-3d81-47fe-8798-4e45d9755f93/invoke \"HTTP/1.1 200 OK\"\n", - " 99%|███████████████████████████████████████-| 7263/7340 [261:57<2:46, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:48:17,188 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'enter'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'enter'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:48:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/40c5f987-3d81-47fe-8798-4e45d9755f93/close \"HTTP/1.1 200 OK\"\n", - " 99%|███████████████████████████████████████-| 7263/7340 [261:59<2:46, 27.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/31367309-0055-409a-a992-edf729fb010c/invoke \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:48:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:48:19,057 - agent.ComputerAgent - INFO - Computer: click({'x': 257, 'y': 152})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 257, 'y': 152})\n", - " 99%|███████████████████████████████████████-| 7265/7340 [262:03<2:42, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/31367309-0055-409a-a992-edf729fb010c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9053f5ae-149f-4a73-a89e-977f3e750435/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:48:23,287 - agent.ComputerAgent - INFO - LLM processing started with 16 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 16 messages\n", - "\u001b[92m19:48:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:48:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/31367309-0055-409a-a992-edf729fb010c/close \"HTTP/1.1 200 OK\"\n", - " 99%|███████████████████████████████████████-| 7265/7340 [262:05<2:42, 27.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:48:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b14fe395-5fa2-43f0-9d0b-23c42f3e9093/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:48:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/68f513cf-ec21-4216-bab9-84c5bfcfce88/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:48:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 99%|███████████████████████████████████████-| 7265/7340 [262:07<2:42, 27.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:48:25,935 - agent.ComputerAgent - INFO - Computer: click({'x': 95, 'y': 74})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 95, 'y': 74})\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:48:26,606 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m19:48:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7266/7340 [262:08<2:40, 27.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:48:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:48:27,282 - agent.ComputerAgent - INFO - Computer: click({'x': 986, 'y': 133})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 986, 'y': 133})\n", - "\u001b[92m19:48:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:48:27,901 - agent.ComputerAgent - INFO - Computer: click({'x': 528, 'y': 50})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 528, 'y': 50})\n", - " 99%|███████████████████████████████████████-| 7267/7340 [262:09<2:38, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:48:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/68f513cf-ec21-4216-bab9-84c5bfcfce88/close \"HTTP/1.1 200 OK\"\n", - " 99%|███████████████████████████████████████-| 7269/7340 [262:10<2:33, 27.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:48:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:48:30,287 - agent.ComputerAgent - INFO - Computer: click({'x': 105, 'y': 230})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 105, 'y': 230})\n", - " 99%|███████████████████████████████████████-| 7270/7340 [262:14<2:31, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/8e75deb1-3c97-408b-8c7d-f4681b322141/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:48:33,466 - agent.ComputerAgent - INFO - LLM processing started with 40 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 40 messages\n", - "\u001b[92m19:48:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/26dc2412-0699-4a4e-a272-dc576348a5c8/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7270/7340 [262:15<2:31, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b4eee866-c191-4acf-b232-9b18a3c888ef/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:48:34,163 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m19:48:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:48:34,825 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m19:48:34 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7270/7340 [262:16<2:31, 27.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cb64a220-43d8-4373-bd2a-e73bacb4a122/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:48:36,005 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m19:48:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7270/7340 [262:17<2:31, 27.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7270/7340 [262:21<2:31, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:48:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 99%|███████████████████████████████████████-| 7270/7340 [262:22<2:31, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:48:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:48:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:48:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:48:43,277 - agent.ComputerAgent - INFO - Computer: click({'x': 66, 'y': 164})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 66, 'y': 164})\n", - " 99%|███████████████████████████████████████-| 7270/7340 [262:25<2:31, 27.7 steps/min]\u001b[92m19:48:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:48:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:48:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:48:44,471 - agent.ComputerAgent - INFO - Computer: click({'x': 248, 'y': 173})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 248, 'y': 173})\n", - " 99%|███████████████████████████████████████-| 7271/7340 [262:26<2:29, 27.7 steps/min]\u001b[92m19:48:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:48:45,143 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 288, 'y': 153}, {'x': 81, 'y': 155}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 288, 'y': 153}, {'x': 81, 'y': 155}]})\n", - " 99%|███████████████████████████████████████-| 7273/7340 [262:29<2:25, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d71be89e-00e2-40e7-8b8d-38e36bc6d26c/invoke \"HTTP/1.1 200 OK\"\n", - " 99%|███████████████████████████████████████-| 7273/7340 [262:30<2:25, 27.7 steps/min]2025-08-11 19:48:49,336 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m19:48:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7273/7340 [262:31<2:25, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9053f5ae-149f-4a73-a89e-977f3e750435/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:48:50,547 - agent.ComputerAgent - INFO - LLM processing started with 18 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 18 messages\n", - "\u001b[92m19:48:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:48:51,906 - agent.ComputerAgent - INFO - Computer: type({'text': 'webui refresh 2023'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'webui refresh 2023'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b14fe395-5fa2-43f0-9d0b-23c42f3e9093/invoke \"HTTP/1.1 200 OK\"\n", - " 99%|███████████████████████████████████████-| 7273/7340 [262:33<2:25, 27.7 steps/min]2025-08-11 19:48:52,576 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m19:48:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:48:53,923 - agent.ComputerAgent - INFO - Computer: type({'text': 'Thunderbird'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'Thunderbird'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 99%|███████████████████████████████████████-| 7274/7340 [262:36<2:22, 27.7 steps/min]\u001b[92m19:48:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:48:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:48:56,172 - agent.ComputerAgent - INFO - Computer: double_click({'x': 144, 'y': 167})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 144, 'y': 167})\n", - " 99%|███████████████████████████████████████-| 7276/7340 [262:39<2:18, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:48:58 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 99%|███████████████████████████████████████-| 7276/7340 [262:40<2:18, 27.7 steps/min]\u001b[92m19:48:59 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:49:00,051 - agent.ComputerAgent - INFO - Computer: click({'x': 761, 'y': 229})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 761, 'y': 229})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fa081188-4859-4858-9d33-0f9675111182/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b4eee866-c191-4acf-b232-9b18a3c888ef/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:49:00,717 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m19:49:00 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7276/7340 [262:42<2:18, 27.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:49:01 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 99%|███████████████████████████████████████-| 7277/7340 [262:43<2:16, 27.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:49:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:49:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/26dc2412-0699-4a4e-a272-dc576348a5c8/invoke \"HTTP/1.1 200 OK\"\n", - " 99%|███████████████████████████████████████-| 7277/7340 [262:44<2:16, 27.7 steps/min]2025-08-11 19:49:03,565 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m19:49:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:49:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:49:04,222 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 237, 'y': 178}, {'x': 258, 'y': 280}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 237, 'y': 178}, {'x': 258, 'y': 280}]})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fa081188-4859-4858-9d33-0f9675111182/invoke \"HTTP/1.1 200 OK\"\n", - " 99%|███████████████████████████████████████-| 7277/7340 [262:45<2:16, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/fa081188-4859-4858-9d33-0f9675111182/close \"HTTP/1.1 200 OK\"\n", - " 99%|███████████████████████████████████████-| 7278/7340 [262:46<2:14, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cb64a220-43d8-4373-bd2a-e73bacb4a122/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:49:06,401 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m19:49:06 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7278/7340 [262:48<2:14, 27.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7278/7340 [262:51<2:14, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9053f5ae-149f-4a73-a89e-977f3e750435/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:49:10,616 - agent.ComputerAgent - INFO - LLM processing started with 20 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 20 messages\n", - "\u001b[92m19:49:10 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7278/7340 [262:52<2:14, 27.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7278/7340 [262:53<2:14, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:49:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:49:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 99%|███████████████████████████████████████-| 7278/7340 [262:55<2:14, 27.7 steps/min]\u001b[92m19:49:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:49:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:49:14,305 - agent.ComputerAgent - INFO - Computer: click({'x': 1008, 'y': 223})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 1008, 'y': 223})\n", - "\u001b[92m19:49:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:49:14,966 - agent.ComputerAgent - INFO - Computer: click({'x': 75, 'y': 135})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 75, 'y': 135})\n", - " 99%|███████████████████████████████████████-| 7278/7340 [262:56<2:14, 27.7 steps/min]\u001b[92m19:49:15 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:49:15,652 - agent.ComputerAgent - INFO - Computer: double_click({'x': 540, 'y': 128})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 540, 'y': 128})\n", - " 99%|███████████████████████████████████████-| 7281/7340 [262:58<2:07, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:49:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 99%|███████████████████████████████████████-| 7281/7340 [262:59<2:07, 27.7 steps/min]\u001b[92m19:49:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:49:18,506 - agent.ComputerAgent - INFO - Computer: click({'x': 229, 'y': 157})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 229, 'y': 157})\n", - " 99%|███████████████████████████████████████-| 7281/7340 [263:00<2:07, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/8e75deb1-3c97-408b-8c7d-f4681b322141/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:49:20,217 - agent.ComputerAgent - INFO - LLM processing started with 42 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 42 messages\n", - "\u001b[92m19:49:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7282/7340 [263:02<2:05, 27.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:49:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d71be89e-00e2-40e7-8b8d-38e36bc6d26c/invoke \"HTTP/1.1 200 OK\"\n", - " 99%|███████████████████████████████████████-| 7282/7340 [263:03<2:05, 27.7 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:49:23,091 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m19:49:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:49:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b4eee866-c191-4acf-b232-9b18a3c888ef/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 99%|███████████████████████████████████████-| 7282/7340 [263:04<2:05, 27.7 steps/min]2025-08-11 19:49:23,787 - agent.ComputerAgent - INFO - Computer: click({'x': 237, 'y': 178})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 237, 'y': 178})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b14fe395-5fa2-43f0-9d0b-23c42f3e9093/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:49:24,438 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m19:49:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:49:25,775 - agent.ComputerAgent - INFO - Computer: type({'text': \"=VLOOKUP(C2,'Retail Price'.$A$2:$B$200,2,0)*E2*(1-F2)\"})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': \"=VLOOKUP(C2,'Retail Price'.$A$2:$B$200,2,0)*E2*(1-F2)\"})\n", - " 99%|███████████████████████████████████████-| 7282/7340 [263:07<2:05, 27.7 steps/min]2025-08-11 19:49:26,452 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m19:49:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7284/7340 [263:12<2:01, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9053f5ae-149f-4a73-a89e-977f3e750435/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cb64a220-43d8-4373-bd2a-e73bacb4a122/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:49:31,690 - agent.ComputerAgent - INFO - LLM processing started with 22 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 22 messages\n", - "\u001b[92m19:49:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:49:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 99%|███████████████████████████████████████-| 7284/7340 [263:14<2:01, 27.7 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:49:33,032 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m19:49:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:49:33 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:49:33,738 - agent.ComputerAgent - INFO - Computer: click({'x': 1004, 'y': 60})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 1004, 'y': 60})\n", - " 99%|███████████████████████████████████████-| 7285/7340 [263:16<1:59, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:49:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 99%|███████████████████████████████████████-| 7285/7340 [263:17<1:59, 27.7 steps/min]\u001b[92m19:49:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:49:36,569 - agent.ComputerAgent - INFO - Computer: click({'x': 980, 'y': 60})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 980, 'y': 60})\n", - " 99%|███████████████████████████████████████-| 7286/7340 [263:20<1:57, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/26dc2412-0699-4a4e-a272-dc576348a5c8/invoke \"HTTP/1.1 200 OK\"\n", - " 99%|███████████████████████████████████████-| 7286/7340 [263:21<1:57, 27.7 steps/min]2025-08-11 19:49:40,273 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m19:49:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7286/7340 [263:22<1:57, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:49:42,639 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'CTRL+H'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'CTRL+H'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b4eee866-c191-4acf-b232-9b18a3c888ef/invoke \"HTTP/1.1 200 OK\"\n", - " 99%|███████████████████████████████████████-| 7286/7340 [263:24<1:57, 27.7 steps/min]2025-08-11 19:49:43,312 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m19:49:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7286/7340 [263:25<1:57, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:49:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:49:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 99%|███████████████████████████████████████-| 7286/7340 [263:26<1:57, 27.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:49:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:49:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 99%|███████████████████████████████████████-| 7286/7340 [263:27<1:57, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:49:47,535 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'enter'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'enter'})\n", - "\u001b[92m19:49:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/8e75deb1-3c97-408b-8c7d-f4681b322141/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:49:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:49:48,871 - agent.ComputerAgent - INFO - Computer: screenshot({})\n", - "INFO:agent.ComputerAgent:Computer: screenshot({})\n", - " 99%|███████████████████████████████████████-| 7286/7340 [263:30<1:57, 27.6 steps/min]2025-08-11 19:49:49,547 - agent.ComputerAgent - INFO - Computer: click({'x': 259, 'y': 180})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 259, 'y': 180})\n", - "2025-08-11 19:49:50,246 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 55, 'y': 164}, {'x': 55, 'y': 600}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 55, 'y': 164}, {'x': 55, 'y': 600}]})\n", - " 99%|███████████████████████████████████████-| 7291/7340 [263:33<1:46, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/8e75deb1-3c97-408b-8c7d-f4681b322141/close \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 99%|███████████████████████████████████████-| 7291/7340 [263:34<1:46, 27.7 steps/min]\u001b[92m19:49:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b14fe395-5fa2-43f0-9d0b-23c42f3e9093/invoke \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "No screenshot found, taking screenshot\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-08-11 19:49:53,552 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m19:49:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:49:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:49:54,210 - agent.ComputerAgent - INFO - Computer: click({'x': 867, 'y': 296})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 867, 'y': 296})\n", - " 99%|███████████████████████████████████████-| 7291/7340 [263:35<1:46, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9053f5ae-149f-4a73-a89e-977f3e750435/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cb64a220-43d8-4373-bd2a-e73bacb4a122/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:49:55,903 - agent.ComputerAgent - INFO - LLM processing started with 24 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 24 messages\n", - "\u001b[92m19:49:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7292/7340 [263:37<1:44, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d71be89e-00e2-40e7-8b8d-38e36bc6d26c/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:49:56,562 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m19:49:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:49:57,261 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m19:49:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7292/7340 [263:39<1:44, 27.7 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7292/7340 [263:41<1:44, 27.7 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b4eee866-c191-4acf-b232-9b18a3c888ef/invoke \"HTTP/1.1 200 OK\"\n", - " 99%|███████████████████████████████████████-| 7292/7340 [263:42<1:44, 27.7 steps/min]2025-08-11 19:50:00,993 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m19:50:01 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7292/7340 [263:49<1:44, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:50:08,913 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ctrl+c'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ctrl+c'})\n", - " 99%|███████████████████████████████████████-| 7292/7340 [263:50<1:44, 27.6 steps/min]2025-08-11 19:50:10,074 - agent.ComputerAgent - INFO - LLM processing started with 26 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 26 messages\n", - "\u001b[92m19:50:10 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7292/7340 [263:51<1:44, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7292/7340 [263:52<1:44, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:50:12 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 99%|███████████████████████████████████████-| 7292/7340 [263:54<1:44, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:50:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 99%|███████████████████████████████████████-| 7292/7340 [263:55<1:44, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:50:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:50:14,024 - agent.ComputerAgent - INFO - Computer: click({'x': 871, 'y': 135})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 871, 'y': 135})\n", - "\u001b[92m19:50:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:50:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 99%|███████████████████████████████████████-| 7292/7340 [263:56<1:44, 27.6 steps/min]\u001b[92m19:50:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:50:15,204 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 275, 'y': 152}, {'x': 79, 'y': 154}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 275, 'y': 152}, {'x': 79, 'y': 154}]})\n", - " 99%|███████████████████████████████████████-| 7293/7340 [263:57<1:42, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:50:17,610 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ALT+TAB'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ALT+TAB'})\n", - " 99%|███████████████████████████████████████-| 7294/7340 [263:59<1:39, 27.6 steps/min]2025-08-11 19:50:18,781 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m19:50:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7294/7340 [264:00<1:39, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7294/7340 [264:01<1:39, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b4eee866-c191-4acf-b232-9b18a3c888ef/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:50:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:50:21,132 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m19:50:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b14fe395-5fa2-43f0-9d0b-23c42f3e9093/invoke \"HTTP/1.1 200 OK\"\n", - " 99%|███████████████████████████████████████-| 7294/7340 [264:02<1:39, 27.6 steps/min]2025-08-11 19:50:22,169 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m19:50:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7294/7340 [264:03<1:39, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:50:22 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:50:22,830 - agent.ComputerAgent - INFO - Computer: click({'x': 120, 'y': 53})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 120, 'y': 53})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:50:24,191 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 257, 'y': 153}, {'x': 259, 'y': 281}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 257, 'y': 153}, {'x': 259, 'y': 281}]})\n", - " 99%|███████████████████████████████████████-| 7296/7340 [264:08<1:35, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:50:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 99%|███████████████████████████████████████-| 7296/7340 [264:09<1:35, 27.6 steps/min]\u001b[92m19:50:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:50:29,058 - agent.ComputerAgent - INFO - Computer: click({'x': 749, 'y': 229})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 749, 'y': 229})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d71be89e-00e2-40e7-8b8d-38e36bc6d26c/invoke \"HTTP/1.1 200 OK\"\n", - " 99%|███████████████████████████████████████-| 7296/7340 [264:10<1:35, 27.6 steps/min]2025-08-11 19:50:29,733 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m19:50:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9053f5ae-149f-4a73-a89e-977f3e750435/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:50:30,431 - agent.ComputerAgent - INFO - LLM processing started with 28 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 28 messages\n", - "\u001b[92m19:50:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7297/7340 [264:12<1:33, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7297/7340 [264:16<1:33, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:50:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cb64a220-43d8-4373-bd2a-e73bacb4a122/invoke \"HTTP/1.1 200 OK\"\n", - " 99%|███████████████████████████████████████-| 7297/7340 [264:17<1:33, 27.6 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:50:36,275 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m19:50:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:50:36 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:50:37,340 - agent.ComputerAgent - INFO - Computer: click({'x': 229, 'y': 91})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 229, 'y': 91})\n", - " 99%|███████████████████████████████████████-| 7298/7340 [264:21<1:31, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:50:41,280 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ALT+TAB'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ALT+TAB'})\n", - " 99%|███████████████████████████████████████-| 7298/7340 [264:23<1:31, 27.6 steps/min]2025-08-11 19:50:42,453 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m19:50:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7298/7340 [264:24<1:31, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7298/7340 [264:25<1:31, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b4eee866-c191-4acf-b232-9b18a3c888ef/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:50:44,654 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m19:50:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7298/7340 [264:26<1:31, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7298/7340 [264:28<1:31, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:50:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 99%|███████████████████████████████████████-| 7298/7340 [264:29<1:31, 27.6 steps/min]\u001b[92m19:50:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:50:48,511 - agent.ComputerAgent - INFO - Computer: click({'x': 243, 'y': 178})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 243, 'y': 178})\n", - " 99%|███████████████████████████████████████-| 7298/7340 [264:30<1:31, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:50:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 99%|███████████████████████████████████████-| 7299/7340 [264:31<1:29, 27.6 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:50:50 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:50:50,849 - agent.ComputerAgent - INFO - Computer: click({'x': 138, 'y': 90})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 138, 'y': 90})\n", - " 99%|███████████████████████████████████████-| 7299/7340 [264:32<1:29, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:50:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - " 99%|███████████████████████████████████████-| 7300/7340 [264:33<1:26, 27.6 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:50:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:50:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 99%|███████████████████████████████████████-| 7300/7340 [264:34<1:26, 27.6 steps/min]\u001b[92m19:50:53 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:50:53,680 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 749, 'y': 183}, {'x': 837, 'y': 244}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 749, 'y': 183}, {'x': 837, 'y': 244}]})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9053f5ae-149f-4a73-a89e-977f3e750435/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:50:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - " 99%|███████████████████████████████████████-| 7300/7340 [264:36<1:26, 27.6 steps/min]\u001b[92m19:50:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:50:55,684 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m19:50:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:50:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:50:56,394 - agent.ComputerAgent - INFO - Computer: click({'x': 258, 'y': 155})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 258, 'y': 155})\n", - " 99%|███████████████████████████████████████-| 7301/7340 [264:38<1:24, 27.6 steps/min]\u001b[92m19:50:56 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:50:57,053 - agent.ComputerAgent - INFO - Computer: click({'button': 'right', 'x': 118, 'y': 182})\n", - "INFO:agent.ComputerAgent:Computer: click({'button': 'right', 'x': 118, 'y': 182})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d71be89e-00e2-40e7-8b8d-38e36bc6d26c/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:50:57,705 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m19:50:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7302/7340 [264:39<1:22, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7303/7340 [264:42<1:20, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cb64a220-43d8-4373-bd2a-e73bacb4a122/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:51:01,944 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m19:51:01 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b14fe395-5fa2-43f0-9d0b-23c42f3e9093/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7303/7340 [264:43<1:20, 27.6 steps/min]2025-08-11 19:51:02,644 - agent.ComputerAgent - INFO - LLM processing started with 30 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 30 messages\n", - "\u001b[92m19:51:02 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7303/7340 [264:44<1:20, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b4eee866-c191-4acf-b232-9b18a3c888ef/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:51:04,313 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m19:51:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - " 99%|███████████████████████████████████████-| 7303/7340 [264:46<1:20, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:51:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - " 99%|███████████████████████████████████████-| 7303/7340 [264:47<1:20, 27.6 steps/min]\u001b[92m19:51:05 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:51:06,170 - agent.ComputerAgent - INFO - Computer: click({'x': 285, 'y': 98})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 285, 'y': 98})\n", - "100%|███████████████████████████████████████-| 7304/7340 [264:53<1:18, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/26dc2412-0699-4a4e-a272-dc576348a5c8/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:51:12,936 - agent.ComputerAgent - INFO - LLM processing started with 40 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 40 messages\n", - "\u001b[92m19:51:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "100%|███████████████████████████████████████-| 7304/7340 [264:54<1:18, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "100%|███████████████████████████████████████-| 7304/7340 [264:57<1:18, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:51:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:51:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "100%|███████████████████████████████████████-| 7304/7340 [264:59<1:18, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:51:17 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:51:18,032 - agent.ComputerAgent - INFO - Computer: click({'x': 259, 'y': 180})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 259, 'y': 180})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:51:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "100%|███████████████████████████████████████-| 7304/7340 [265:00<1:18, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:51:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:51:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:51:19 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:51:19,864 - agent.ComputerAgent - INFO - Computer: click({'x': 151, 'y': 232})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 151, 'y': 232})\n", - "100%|███████████████████████████████████████-| 7305/7340 [265:01<1:16, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:51:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:51:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:51:21,195 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 298, 'y': 152}, {'x': 81, 'y': 155}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 298, 'y': 152}, {'x': 81, 'y': 155}]})\n", - "100%|███████████████████████████████████████-| 7306/7340 [265:02<1:14, 27.6 steps/min]\u001b[92m19:51:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:51:21,882 - agent.ComputerAgent - INFO - Computer: click({'x': 59, 'y': 157})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 59, 'y': 157})\n", - "100%|███████████████████████████████████████-| 7307/7340 [265:03<1:11, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9053f5ae-149f-4a73-a89e-977f3e750435/invoke \"HTTP/1.1 200 OK\"\n", - "100%|███████████████████████████████████████-| 7308/7340 [265:04<1:09, 27.6 steps/min]2025-08-11 19:51:23,543 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m19:51:23 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "100%|███████████████████████████████████████-| 7308/7340 [265:06<1:09, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:51:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "100%|███████████████████████████████████████-| 7308/7340 [265:07<1:09, 27.6 steps/min]\u001b[92m19:51:26 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:51:26,961 - agent.ComputerAgent - INFO - Computer: click({'x': 762, 'y': 230})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 762, 'y': 230})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b14fe395-5fa2-43f0-9d0b-23c42f3e9093/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:51:27,615 - agent.ComputerAgent - INFO - LLM processing started with 32 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 32 messages\n", - "\u001b[92m19:51:27 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b4eee866-c191-4acf-b232-9b18a3c888ef/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "100%|███████████████████████████████████████-| 7308/7340 [265:09<1:09, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d71be89e-00e2-40e7-8b8d-38e36bc6d26c/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:51:28,303 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m19:51:28 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:51:28,994 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m19:51:29 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "100%|███████████████████████████████████████-| 7309/7340 [265:15<1:07, 27.6 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cb64a220-43d8-4373-bd2a-e73bacb4a122/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:51:35,225 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m19:51:35 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "100%|███████████████████████████████████████-| 7309/7340 [265:17<1:07, 27.6 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "100%|███████████████████████████████████████-| 7309/7340 [265:18<1:07, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:51:38,065 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'ALT+TAB'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'ALT+TAB'})\n", - "100%|███████████████████████████████████████-| 7309/7340 [265:19<1:07, 27.5 steps/min]2025-08-11 19:51:39,205 - agent.ComputerAgent - INFO - LLM processing started with 42 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 42 messages\n", - "\u001b[92m19:51:39 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "100%|███████████████████████████████████████-| 7309/7340 [265:21<1:07, 27.5 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "100%|███████████████████████████████████████-| 7309/7340 [265:22<1:07, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:51:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "100%|███████████████████████████████████████-| 7309/7340 [265:23<1:07, 27.5 steps/min]\u001b[92m19:51:41 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:51:42,081 - agent.ComputerAgent - INFO - Computer: click({'x': 237, 'y': 95})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 237, 'y': 95})\n", - "100%|███████████████████████████████████████-| 7310/7340 [265:25<1:05, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:51:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "100%|███████████████████████████████████████-| 7310/7340 [265:26<1:05, 27.5 steps/min]\u001b[92m19:51:44 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:51:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "100%|███████████████████████████████████████-| 7310/7340 [265:27<1:05, 27.5 steps/min]\u001b[92m19:51:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:51:45 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:51:46 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:51:46,954 - agent.ComputerAgent - INFO - Computer: drag({'start_element_description': 'Cell C2', 'end_element_description': 'Cell C10', 'x': 268, 'y': 188})\n", - "INFO:agent.ComputerAgent:Computer: drag({'start_element_description': 'Cell C2', 'end_element_description': 'Cell C10', 'x': 268, 'y': 188})\n", - "100%|███████████████████████████████████████-| 7311/7340 [265:29<1:03, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9053f5ae-149f-4a73-a89e-977f3e750435/invoke \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "No screenshot found, taking screenshot\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-08-11 19:51:48,615 - agent.ComputerAgent - INFO - LLM processing started with 35 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 35 messages\n", - "\u001b[92m19:51:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b4eee866-c191-4acf-b232-9b18a3c888ef/invoke \"HTTP/1.1 200 OK\"\n", - "100%|███████████████████████████████████████-| 7311/7340 [265:30<1:03, 27.5 steps/min]2025-08-11 19:51:49,299 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m19:51:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "100%|███████████████████████████████████████-| 7311/7340 [265:31<1:03, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:51:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "100%|███████████████████████████████████████-| 7311/7340 [265:32<1:03, 27.5 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "\u001b[92m19:51:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:51:52,164 - agent.ComputerAgent - INFO - Computer: click({'x': 87, 'y': 166})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 87, 'y': 166})\n", - "100%|███████████████████████████████████████-| 7312/7340 [265:33<1:01, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9053f5ae-149f-4a73-a89e-977f3e750435/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:51:52,805 - agent.ComputerAgent - INFO - LLM processing started with 37 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 37 messages\n", - "\u001b[92m19:51:52 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "100%|███████████████████████████████████████-| 7313/7340 [265:35<0:58, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:51:54 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "100%|███████████████████████████████████████-| 7313/7340 [265:36<0:58, 27.5 steps/min]\u001b[92m19:51:55 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:51:55,701 - agent.ComputerAgent - INFO - Computer: double_click({'x': 841, 'y': 244})\n", - "INFO:agent.ComputerAgent:Computer: double_click({'x': 841, 'y': 244})\n", - "100%|███████████████████████████████████████-| 7313/7340 [265:37<0:58, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "100%|███████████████████████████████████████-| 7315/7340 [265:38<0:54, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b14fe395-5fa2-43f0-9d0b-23c42f3e9093/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9053f5ae-149f-4a73-a89e-977f3e750435/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:51:57,894 - agent.ComputerAgent - INFO - LLM processing started with 39 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 39 messages\n", - "\u001b[92m19:51:57 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "2025-08-11 19:51:58,566 - agent.ComputerAgent - INFO - LLM processing started with 34 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 34 messages\n", - "\u001b[92m19:51:58 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "100%|███████████████████████████████████████-| 7315/7340 [265:40<0:54, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:51:59 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "100%|███████████████████████████████████████-| 7315/7340 [265:41<0:54, 27.5 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:52:00 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:52:00,770 - agent.ComputerAgent - INFO - Computer: click({'x': 422, 'y': 360})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 422, 'y': 360})\n", - "100%|███████████████████████████████████████-| 7315/7340 [265:42<0:54, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cb64a220-43d8-4373-bd2a-e73bacb4a122/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:52:01,926 - agent.ComputerAgent - INFO - LLM processing started with 40 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 40 messages\n", - "\u001b[92m19:52:01 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "100%|███████████████████████████████████████-| 7316/7340 [265:43<0:52, 27.5 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "100%|███████████████████████████████████████-| 7317/7340 [265:44<0:50, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:52:03 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "100%|███████████████████████████████████████-| 7317/7340 [265:45<0:50, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9053f5ae-149f-4a73-a89e-977f3e750435/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:52:04,815 - agent.ComputerAgent - INFO - LLM processing started with 41 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 41 messages\n", - "\u001b[92m19:52:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:52:04 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:52:05,539 - agent.ComputerAgent - INFO - Computer: click({'x': 15, 'y': 526})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 15, 'y': 526})\n", - "100%|███████████████████████████████████████-| 7317/7340 [265:47<0:50, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d71be89e-00e2-40e7-8b8d-38e36bc6d26c/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:52:07,328 - agent.ComputerAgent - INFO - Computer: type({'text': 'contacts.csv'})\n", - "INFO:agent.ComputerAgent:Computer: type({'text': 'contacts.csv'})\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "100%|███████████████████████████████████████-| 7319/7340 [265:49<0:45, 27.5 steps/min]2025-08-11 19:52:07,988 - agent.ComputerAgent - INFO - LLM processing started with 36 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 36 messages\n", - "\u001b[92m19:52:08 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "100%|███████████████████████████████████████-| 7320/7340 [265:50<0:43, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9053f5ae-149f-4a73-a89e-977f3e750435/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:52:09,185 - agent.ComputerAgent - INFO - LLM processing started with 43 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 43 messages\n", - "\u001b[92m19:52:09 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "100%|███████████████████████████████████████-| 7320/7340 [265:53<0:43, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/26dc2412-0699-4a4e-a272-dc576348a5c8/invoke \"HTTP/1.1 200 OK\"\n", - "100%|███████████████████████████████████████-| 7320/7340 [265:54<0:43, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b4eee866-c191-4acf-b232-9b18a3c888ef/invoke \"HTTP/1.1 200 OK\"\n", - "100%|███████████████████████████████████████-| 7321/7340 [265:55<0:41, 27.5 steps/min]2025-08-11 19:52:13,898 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m19:52:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9053f5ae-149f-4a73-a89e-977f3e750435/invoke \"HTTP/1.1 200 OK\"\n", - "100%|███████████████████████████████████████-| 7321/7340 [265:58<0:41, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:52:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9053f5ae-149f-4a73-a89e-977f3e750435/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "100%|███████████████████████████████████████-| 7321/7340 [265:59<0:41, 27.5 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/26dc2412-0699-4a4e-a272-dc576348a5c8/invoke \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:52:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:52:18 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/9053f5ae-149f-4a73-a89e-977f3e750435/close \"HTTP/1.1 200 OK\"\n", - "100%|███████████████████████████████████████-| 7325/7340 [266:00<0:32, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/26dc2412-0699-4a4e-a272-dc576348a5c8/close \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:52:19 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:52:19 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "100%|███████████████████████████████████████-| 7325/7340 [266:01<0:32, 27.5 steps/min]\u001b[92m19:52:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:52:20,887 - agent.ComputerAgent - INFO - Computer: drag({'start_element_description': 'column header A', 'end_element_description': 'column header H', 'x': 90, 'y': 155})\n", - "INFO:agent.ComputerAgent:Computer: drag({'start_element_description': 'column header A', 'end_element_description': 'column header H', 'x': 90, 'y': 155})\n", - "100%|███████████████████████████████████████-| 7326/7340 [266:02<0:30, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:52:23,480 - agent.ComputerAgent - INFO - Computer: keypress({'keys': 'enter'})\n", - "INFO:agent.ComputerAgent:Computer: keypress({'keys': 'enter'})\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b14fe395-5fa2-43f0-9d0b-23c42f3e9093/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "100%|███████████████████████████████████████-| 7326/7340 [266:05<0:30, 27.5 steps/min]\u001b[92m19:52:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "No screenshot found, taking screenshot\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-08-11 19:52:24,777 - agent.ComputerAgent - INFO - LLM processing started with 37 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 37 messages\n", - "\u001b[92m19:52:24 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "100%|███████████████████████████████████████-| 7327/7340 [266:06<0:28, 27.5 steps/min]\u001b[92m19:52:25 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:52:26,307 - agent.ComputerAgent - INFO - Computer: click({'x': 828, 'y': 35})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 828, 'y': 35})\n", - "100%|███████████████████████████████████████-| 7328/7340 [266:10<0:26, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "100%|███████████████████████████████████████-| 7329/7340 [266:11<0:23, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cb64a220-43d8-4373-bd2a-e73bacb4a122/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:52:30,881 - agent.ComputerAgent - INFO - LLM processing started with 42 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 42 messages\n", - "\u001b[92m19:52:30 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b14fe395-5fa2-43f0-9d0b-23c42f3e9093/invoke \"HTTP/1.1 200 OK\"\n", - "100%|███████████████████████████████████████-| 7329/7340 [266:12<0:23, 27.5 steps/min]2025-08-11 19:52:31,557 - agent.ComputerAgent - INFO - LLM processing started with 39 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 39 messages\n", - "\u001b[92m19:52:31 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "100%|███████████████████████████████████████-| 7329/7340 [266:13<0:23, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b4eee866-c191-4acf-b232-9b18a3c888ef/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:52:32,766 - agent.ComputerAgent - INFO - LLM processing started with 40 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 40 messages\n", - "\u001b[92m19:52:32 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "100%|███████████████████████████████████████-| 7329/7340 [266:19<0:23, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "100%|███████████████████████████████████████-| 7330/7340 [266:20<0:21, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:52:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b14fe395-5fa2-43f0-9d0b-23c42f3e9093/invoke \"HTTP/1.1 200 OK\"\n", - "100%|███████████████████████████████████████-| 7330/7340 [266:21<0:21, 27.5 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:52:40,663 - agent.ComputerAgent - INFO - LLM processing started with 41 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 41 messages\n", - "\u001b[92m19:52:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:52:40 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:52:41,739 - agent.ComputerAgent - INFO - Computer: click({'x': 328, 'y': 286})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 328, 'y': 286})\n", - "100%|███████████████████████████████████████-| 7331/7340 [266:26<0:19, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "100%|███████████████████████████████████████-| 7332/7340 [266:27<0:17, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b14fe395-5fa2-43f0-9d0b-23c42f3e9093/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:52:46,968 - agent.ComputerAgent - INFO - LLM processing started with 43 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 43 messages\n", - "\u001b[92m19:52:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "100%|███████████████████████████████████████-| 7332/7340 [266:29<0:17, 27.5 steps/min]\u001b[92m19:52:47 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d71be89e-00e2-40e7-8b8d-38e36bc6d26c/invoke \"HTTP/1.1 200 OK\"\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "2025-08-11 19:52:48,348 - agent.ComputerAgent - INFO - LLM processing started with 38 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 38 messages\n", - "\u001b[92m19:52:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "\u001b[92m19:52:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "\u001b[92m19:52:48 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "100%|███████████████████████████████████████-| 7332/7340 [266:30<0:17, 27.5 steps/min]\u001b[92m19:52:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:52:49,902 - agent.ComputerAgent - INFO - Computer: drag({'path': [{'x': 749, 'y': 229}, {'x': 749, 'y': 732}]})\n", - "INFO:agent.ComputerAgent:Computer: drag({'path': [{'x': 749, 'y': 229}, {'x': 749, 'y': 732}]})\n", - "100%|███████████████████████████████████████-| 7332/7340 [266:31<0:17, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:52:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 400 Bad Request\"\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "100%|███████████████████████████████████████-| 7334/7340 [266:32<0:13, 27.5 steps/min]Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:52:51 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:52:52,289 - agent.ComputerAgent - INFO - Computer: click({'x': 17, 'y': 386})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 17, 'y': 386})\n", - "100%|███████████████████████████████████████-| 7334/7340 [266:34<0:13, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b14fe395-5fa2-43f0-9d0b-23c42f3e9093/invoke \"HTTP/1.1 200 OK\"\n", - "100%|███████████████████████████████████████-| 7335/7340 [266:37<0:10, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cb64a220-43d8-4373-bd2a-e73bacb4a122/invoke \"HTTP/1.1 200 OK\"\n", - "100%|███████████████████████████████████████-| 7335/7340 [266:38<0:10, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b14fe395-5fa2-43f0-9d0b-23c42f3e9093/invoke \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b14fe395-5fa2-43f0-9d0b-23c42f3e9093/close \"HTTP/1.1 200 OK\"\n", - "100%|███████████████████████████████████████-| 7335/7340 [266:39<0:10, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b4eee866-c191-4acf-b232-9b18a3c888ef/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:52:58,539 - agent.ComputerAgent - INFO - LLM processing started with 42 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 42 messages\n", - "\u001b[92m19:52:58 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "100%|███████████████████████████████████████-| 7335/7340 [266:40<0:10, 27.5 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cb64a220-43d8-4373-bd2a-e73bacb4a122/invoke \"HTTP/1.1 200 OK\"\n", - "100%|███████████████████████████████████████-| 7335/7340 [266:41<0:10, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/cb64a220-43d8-4373-bd2a-e73bacb4a122/close \"HTTP/1.1 200 OK\"\n", - "100%|███████████████████████████████████████-| 7335/7340 [266:54<0:10, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:53:13 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "100%|███████████████████████████████████████-| 7335/7340 [266:55<0:10, 27.5 steps/min]\u001b[92m19:53:14 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:53:14,687 - agent.ComputerAgent - INFO - Computer: click({'x': 318, 'y': 306})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 318, 'y': 306})\n", - "100%|███████████████████████████████████████-| 7336/7340 [266:57<0:08, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:53:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "100%|███████████████████████████████████████-| 7336/7340 [266:58<0:08, 27.5 steps/min]\u001b[92m19:53:16 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:53:17,018 - agent.ComputerAgent - INFO - Computer: click({'x': 49, 'y': 53})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 49, 'y': 53})\n", - "100%|███████████████████████████████████████-| 7337/7340 [267:01<0:06, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d71be89e-00e2-40e7-8b8d-38e36bc6d26c/invoke \"HTTP/1.1 200 OK\"\n", - "2025-08-11 19:53:20,724 - agent.ComputerAgent - INFO - LLM processing started with 40 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 40 messages\n", - "\u001b[92m19:53:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "100%|███████████████████████████████████████-| 7337/7340 [267:02<0:06, 27.5 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "100%|███████████████████████████████████████-| 7337/7340 [267:03<0:06, 27.5 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b4eee866-c191-4acf-b232-9b18a3c888ef/invoke \"HTTP/1.1 200 OK\"\n", - "100%|███████████████████████████████████████-| 7337/7340 [267:23<0:06, 27.4 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:53:42 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "100%|███████████████████████████████████████-| 7337/7340 [267:24<0:06, 27.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b4eee866-c191-4acf-b232-9b18a3c888ef/invoke \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:53:43 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:53:43,990 - agent.ComputerAgent - INFO - Computer: click({'x': 432, 'y': 314})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 432, 'y': 314})\n", - "100%|███████████████████████████████████████-| 7337/7340 [267:25<0:06, 27.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/b4eee866-c191-4acf-b232-9b18a3c888ef/close \"HTTP/1.1 200 OK\"\n", - "100%|███████████████████████████████████████-| 7338/7340 [267:29<0:04, 27.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d71be89e-00e2-40e7-8b8d-38e36bc6d26c/invoke \"HTTP/1.1 200 OK\"\n", - "100%|███████████████████████████████████████-| 7338/7340 [267:30<0:04, 27.4 steps/min]2025-08-11 19:53:49,710 - agent.ComputerAgent - INFO - LLM processing started with 42 messages\n", - "INFO:agent.ComputerAgent:LLM processing started with 42 messages\n", - "\u001b[92m19:53:49 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= gpt-5; provider = openai\n", - "100%|███████████████████████████████████████-| 7338/7340 [268:00<0:04, 27.4 steps/min]INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "\u001b[92m19:54:20 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "100%|███████████████████████████████████████-| 7338/7340 [268:02<0:04, 27.4 steps/min]INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.\n", - "\u001b[92m19:54:21 - LiteLLM:INFO\u001b[0m: utils.py:3258 - \n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "INFO:LiteLLM:\n", - "LiteLLM completion() model= HelloKKMe/GTA1-7B; provider = huggingface-local\n", - "2025-08-11 19:54:21,613 - agent.ComputerAgent - INFO - Computer: click({'x': 469, 'y': 487})\n", - "INFO:agent.ComputerAgent:Computer: click({'x': 469, 'y': 487})\n", - "100%|███████████████████████████████████████-| 7339/7340 [268:08<0:02, 27.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d71be89e-00e2-40e7-8b8d-38e36bc6d26c/invoke \"HTTP/1.1 200 OK\"\n", - "100%|███████████████████████████████████████-| 7339/7340 [268:12<0:02, 27.4 steps/min]INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d71be89e-00e2-40e7-8b8d-38e36bc6d26c/invoke \"HTTP/1.1 200 OK\"\n", - "100%|████████████████████████████████████████| 7340/7340 [268:13<0:00, 27.4 steps/min]\n", - "INFO:httpx:HTTP Request: POST https://orchestration.hud.so/hud-gym/api/v2/environments/d71be89e-00e2-40e7-8b8d-38e36bc6d26c/close \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: GET https://orchestration.hud.so/hud-gym/api/v2/jobs/a2c1347a-2925-45ed-b86a-6b475b0dc4eb/trajectories \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'task_count': 360, 'avg_reward': 0.21677517254432735, 'success_rate': 18.333333333333332}\n", - "View results at: https://app.hud.so/jobs/a2c1347a-2925-45ed-b86a-6b475b0dc4eb\n" - ] - } - ], + "outputs": [], "source": [ - "from agent.integrations.hud import run_job\n", - "from hud import load_taskset\n", - "from hud.taskset import TaskSet\n", - "import logging\n", "import uuid\n", + "from agent.integrations.hud import run_full_dataset\n", "\n", - "# Load taskset\n", - "taskset = await load_taskset(\"OSWorld-Verified\")\n", - "# taskset = TaskSet(tasks=taskset[:20]) # limit to 10 tasks instead of all 370\n", + "# Full dataset evaluation (runs via HUD's run_dataset under the hood)\n", + "job_name = f\"osworld-test-{str(uuid.uuid4())[:4]}\"\n", "\n", - "job_name = \"osworld-gta-gpt5\"\n", - "job_name = f\"{job_name}-{str(uuid.uuid4())[:4]}\"\n", - "\n", - "# Run benchmark job\n", - "job = await run_job(\n", - " # model=\"openai/computer-use-preview\",\n", - " model=\"huggingface-local/HelloKKMe/GTA1-7B+openai/gpt-5\",\n", - " task_or_taskset=taskset,\n", - " job_name=job_name,\n", - " max_concurrent_tasks=20,\n", - " # add any extra ComputerAgent kwargs:\n", - " verbosity=logging.INFO, # Enable logging\n", - " trajectory_dir=f\"trajectories/{job_name}\" # Save trajectories locally\n", + "results = await run_full_dataset(\n", + " dataset=\"hud-evals/OSWorld-Verified-XLang\", # You can also pass a Dataset or a list[dict]\n", + " job_name=job_name, # Optional; defaults to a timestamp for custom datasets\n", + " model=\"openai/computer-use-preview\", # Or any supported model string\n", + " max_concurrent=20, # Tune to your infra\n", + " max_steps=50, # Safety cap per task\n", + " split=\"train[:3]\" # Limit to just 3 tasks\n", ")\n", "\n", - "# Get results OR view them at app.hud.so\n", - "print(await job.get_analytics())\n", - "print(f\"View results at: https://app.hud.so/jobs/{job.id}\")" + "# results is a list from hud.datasets.run_dataset; inspect/aggregate as needed\n", + "print(f\"Job: {job_name}\")\n", + "print(f\"Total results: {len(results)}\")\n", + "pprint(results[:3]) # preview" ] } ], From 3c502354a8e0c0ae9c00b95e9498f7bd3635c36e Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Wed, 27 Aug 2025 13:28:24 -0400 Subject: [PATCH 026/103] added simple task id --- notebooks/eval_osworld.ipynb | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/notebooks/eval_osworld.ipynb b/notebooks/eval_osworld.ipynb index beccbb1e..6d521eff 100644 --- a/notebooks/eval_osworld.ipynb +++ b/notebooks/eval_osworld.ipynb @@ -57,17 +57,9 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\Users\\dillo\\miniconda3\\envs\\cua\\Lib\\site-packages\\tqdm\\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", - " from .autonotebook import tqdm as notebook_tqdm\n" - ] - }, { "name": "stdout", "output_type": "stream", @@ -76,7 +68,7 @@ "\u001b[90m╔═════════════════════════════════════════════════════════════════╗\u001b[0m\n", "\u001b[90m║\u001b[0m 🚀 See your agent live at: \u001b[90m║\u001b[0m\n", "\u001b[90m╟─────────────────────────────────────────────────────────────────╢\u001b[0m\n", - "\u001b[90m║\u001b[0m \u001b[1m\u001b[33mhttps://app.hud.so/trace/60b2956b-8520-4225-93d3-22ea2ff0253b\u001b[0m \u001b[90m║\u001b[0m\n", + "\u001b[90m║\u001b[0m \u001b[1m\u001b[33mhttps://app.hud.so/trace/7fa015b7-75b9-45df-accf-66b1d8895fe9\u001b[0m \u001b[90m║\u001b[0m\n", "\u001b[90m╚═════════════════════════════════════════════════════════════════╝\u001b[0m\n", "\n", "Running: Calculate from the RawData tab the z-scores from the mean close price for each row. Return, starting in ANSWER!A1 and descending to ANSWER!A5, the 5 dates with the greatest absolute value of standard deviations from the mean\n" @@ -86,7 +78,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2025-08-27 13:10:52,780 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", + "2025-08-27 13:22:49,324 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", "Step failed: 'dict' object has no attribute 'id'\n" ] }, @@ -96,7 +88,7 @@ "text": [ "✅ Reward: 0.0\n", "\n", - "\u001b[92m✓ Trace complete!\u001b[0m \u001b[2mView at:\u001b[0m \u001b[1m\u001b[33mhttps://app.hud.so/trace/60b2956b-8520-4225-93d3-22ea2ff0253b\u001b[0m\n", + "\u001b[92m✓ Trace complete!\u001b[0m \u001b[2mView at:\u001b[0m \u001b[1m\u001b[33mhttps://app.hud.so/trace/7fa015b7-75b9-45df-accf-66b1d8895fe9\u001b[0m\n", "\n" ] } @@ -107,8 +99,9 @@ "# Quick single-task smoke test on OSWorld-Verified-XLang\n", "# You can swap \"hud-evals/OSWorld-Verified-XLang\" -> \"hud-evals/SheetBench-V2\" to test SheetBench.\n", "await run_single_task(\n", - " dataset=\"hud-evals/SheetBench-50\",\n", + " dataset=\"hud-evals/OSWorld-Verified-XLang\",\n", " model=\"openai/computer-use-preview\", # or any supported model string\n", + " task_id=155 # open last tab task (easy)\n", ")" ] }, From e8eaf66e2a3442dcf37d438aeeac1d068d970a07 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Wed, 27 Aug 2025 13:38:55 -0400 Subject: [PATCH 027/103] Added latest nb --- .../agent/agent/integrations/hud/agent.py | 10 ++++++++- notebooks/eval_osworld.ipynb | 22 ++++++++++++++----- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/libs/python/agent/agent/integrations/hud/agent.py b/libs/python/agent/agent/integrations/hud/agent.py index 4155d736..b30d0b6d 100644 --- a/libs/python/agent/agent/integrations/hud/agent.py +++ b/libs/python/agent/agent/integrations/hud/agent.py @@ -122,9 +122,17 @@ class FakeAsyncOpenAI: prev_blocks = [self.blocks_cache[b_id] for b_id in prev_block_ids] full_input = _to_plain_dict_list(prev_blocks + input) + # Pre-pend instructions message + effective_input = full_input + if instructions: + effective_input = [{ + "role": "user", + "content": instructions, + }] + full_input + # Run a single iteration of the ComputerAgent agent_result: Optional[Dict[str, Any]] = None - async for result in self.agent.run(full_input): # type: ignore[arg-type] + async for result in self.agent.run(effective_input): # type: ignore[arg-type] agent_result = result break assert agent_result is not None, "Agent failed to produce result" diff --git a/notebooks/eval_osworld.ipynb b/notebooks/eval_osworld.ipynb index 6d521eff..afbb1716 100644 --- a/notebooks/eval_osworld.ipynb +++ b/notebooks/eval_osworld.ipynb @@ -57,9 +57,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\dillo\\miniconda3\\envs\\cua\\Lib\\site-packages\\tqdm\\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + }, { "name": "stdout", "output_type": "stream", @@ -68,18 +76,20 @@ "\u001b[90m╔═════════════════════════════════════════════════════════════════╗\u001b[0m\n", "\u001b[90m║\u001b[0m 🚀 See your agent live at: \u001b[90m║\u001b[0m\n", "\u001b[90m╟─────────────────────────────────────────────────────────────────╢\u001b[0m\n", - "\u001b[90m║\u001b[0m \u001b[1m\u001b[33mhttps://app.hud.so/trace/7fa015b7-75b9-45df-accf-66b1d8895fe9\u001b[0m \u001b[90m║\u001b[0m\n", + "\u001b[90m║\u001b[0m \u001b[1m\u001b[33mhttps://app.hud.so/trace/426ed182-564d-4b12-b950-c551caeeb8a8\u001b[0m \u001b[90m║\u001b[0m\n", "\u001b[90m╚═════════════════════════════════════════════════════════════════╝\u001b[0m\n", "\n", - "Running: Calculate from the RawData tab the z-scores from the mean close price for each row. Return, starting in ANSWER!A1 and descending to ANSWER!A5, the 5 dates with the greatest absolute value of standard deviations from the mean\n" + "Running: Can you make my computer bring back the last tab I shut down?\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "2025-08-27 13:22:49,324 - agent.ComputerAgent - INFO - LLM processing started with 1 messages\n", - "Step failed: 'dict' object has no attribute 'id'\n" + "2025-08-27 13:36:03,660 - agent.ComputerAgent - INFO - LLM processing started with 2 messages\n", + "2025-08-27 13:36:21,971 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", + "Tool execution failed: Tool evaluate has an output schema but did not return structured content\n", + "Evaluation phase failed: [MCPToolResult(meta=None, content=[TextContent(type='text', text='Tool evaluate has an output schema but did not return structured content', annotations=None, meta=None)], structuredContent=None, isError=True)]\n" ] }, { @@ -88,7 +98,7 @@ "text": [ "✅ Reward: 0.0\n", "\n", - "\u001b[92m✓ Trace complete!\u001b[0m \u001b[2mView at:\u001b[0m \u001b[1m\u001b[33mhttps://app.hud.so/trace/7fa015b7-75b9-45df-accf-66b1d8895fe9\u001b[0m\n", + "\u001b[92m✓ Trace complete!\u001b[0m \u001b[2mView at:\u001b[0m \u001b[1m\u001b[33mhttps://app.hud.so/trace/426ed182-564d-4b12-b950-c551caeeb8a8\u001b[0m\n", "\n" ] } From bf34ee75b9d1b5adea5c88c2f25376ccc3e3c7fa Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Wed, 27 Aug 2025 13:47:02 -0400 Subject: [PATCH 028/103] Removed invalid tag --- libs/kasm/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/kasm/Dockerfile b/libs/kasm/Dockerfile index b8cf9976..c3a4c795 100644 --- a/libs/kasm/Dockerfile +++ b/libs/kasm/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=linux/amd64 kasmweb/core-ubuntu-jammy:1.17.0 +FROM kasmweb/core-ubuntu-jammy:1.17.0 USER root ENV HOME=/home/kasm-default-profile From a34d541b92874b2179f188d9809c1a48f298f4db Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Wed, 27 Aug 2025 15:16:52 -0400 Subject: [PATCH 029/103] fixed crash with composed loop --- libs/python/agent/agent/integrations/hud/agent.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libs/python/agent/agent/integrations/hud/agent.py b/libs/python/agent/agent/integrations/hud/agent.py index b30d0b6d..8e0ca0e9 100644 --- a/libs/python/agent/agent/integrations/hud/agent.py +++ b/libs/python/agent/agent/integrations/hud/agent.py @@ -45,6 +45,8 @@ def _map_agent_output_to_openai_blocks(output_items: List[Dict[str, Any]]) -> Li "status": "completed", }) blocks.append(comp) + # we will exit early here as the responses api only supports a single step + break elif t == "message" and item.get("role") == "assistant": content_blocks: List[ResponseOutputText] = [] for c in item.get("content", []) or []: @@ -161,9 +163,9 @@ class FakeAsyncOpenAI: "tools": [], "previous_response_id": previous_response_id, "usage": ResponseUsage.model_validate({ - "input_tokens": usage["input_tokens"], - "output_tokens": usage["output_tokens"], - "total_tokens": usage["total_tokens"], + "input_tokens": usage.get("input_tokens", 0), + "output_tokens": usage.get("output_tokens", 0), + "total_tokens": usage.get("total_tokens", 0), "input_tokens_details": usage.get("input_tokens_details", { "cached_tokens": 0 }), "output_tokens_details": usage.get("output_tokens_details", { "reasoning_tokens": 0 }), }), From 1634abe3d0b7cbaa4b9e32ea781c61c0e4620af8 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Wed, 27 Aug 2025 16:06:25 -0400 Subject: [PATCH 030/103] Added validation level retry logic --- .../agent/agent/integrations/hud/agent.py | 105 +++++++++--------- .../agent/agent/loops/composed_grounded.py | 5 +- 2 files changed, 58 insertions(+), 52 deletions(-) diff --git a/libs/python/agent/agent/integrations/hud/agent.py b/libs/python/agent/agent/integrations/hud/agent.py index 8e0ca0e9..5c89c7fa 100644 --- a/libs/python/agent/agent/integrations/hud/agent.py +++ b/libs/python/agent/agent/integrations/hud/agent.py @@ -114,66 +114,69 @@ class FakeAsyncOpenAI: tools: Optional[List[Dict[str, Any]]] = None, instructions: Optional[str] = None, previous_response_id: Optional[str] = None, + max_retries: int = 5, **_: Any, ) -> Any: - try: - # Prepend cached blocks from previous_response_id to input - full_input = input - if previous_response_id is not None: - prev_block_ids = self.context_cache[previous_response_id] + for attempt in range(max_retries): + try: + # Prepend cached blocks from previous_response_id to input + full_input = input + if previous_response_id is not None: + prev_block_ids = self.context_cache[previous_response_id] prev_blocks = [self.blocks_cache[b_id] for b_id in prev_block_ids] full_input = _to_plain_dict_list(prev_blocks + input) - # Pre-pend instructions message - effective_input = full_input - if instructions: - effective_input = [{ - "role": "user", - "content": instructions, - }] + full_input + # Pre-pend instructions message + effective_input = full_input + if instructions: + effective_input = [{ + "role": "user", + "content": instructions, + }] + full_input - # Run a single iteration of the ComputerAgent - agent_result: Optional[Dict[str, Any]] = None - async for result in self.agent.run(effective_input): # type: ignore[arg-type] - agent_result = result - break - assert agent_result is not None, "Agent failed to produce result" + # Run a single iteration of the ComputerAgent + agent_result: Optional[Dict[str, Any]] = None + async for result in self.agent.run(effective_input): # type: ignore[arg-type] + agent_result = result + break + assert agent_result is not None, "Agent failed to produce result" - output = _map_agent_output_to_openai_blocks(agent_result["output"]) - usage = agent_result["usage"] + output = _map_agent_output_to_openai_blocks(agent_result["output"]) + usage = agent_result["usage"] - # Cache conversation context using the last response id - block_ids: List[str] = [] - blocks_to_cache = full_input + output - for b in blocks_to_cache: - bid = getattr(b, "id", None) or f"tmp-{hash(repr(b))}" - self.blocks_cache[bid] = b # type: ignore[assignment] - block_ids.append(bid) - response_id = agent_result.get("id") or f"fake-{int(time.time()*1000)}" - self.context_cache[response_id] = block_ids + # Cache conversation context using the last response id + block_ids: List[str] = [] + blocks_to_cache = full_input + output + for b in blocks_to_cache: + bid = getattr(b, "id", None) or f"tmp-{hash(repr(b))}" + self.blocks_cache[bid] = b # type: ignore[assignment] + block_ids.append(bid) + response_id = agent_result.get("id") or f"fake-{int(time.time()*1000)}" + self.context_cache[response_id] = block_ids - return Response.model_validate({ - "id": response_id, - "created_at": time.time(), - "object": "response", - "model": model, - "output": output, - "parallel_tool_calls": False, - "tool_choice": "auto", - "tools": [], - "previous_response_id": previous_response_id, - "usage": ResponseUsage.model_validate({ - "input_tokens": usage.get("input_tokens", 0), - "output_tokens": usage.get("output_tokens", 0), - "total_tokens": usage.get("total_tokens", 0), - "input_tokens_details": usage.get("input_tokens_details", { "cached_tokens": 0 }), - "output_tokens_details": usage.get("output_tokens_details", { "reasoning_tokens": 0 }), - }), - }) - except Exception as e: - print("Error while running agent: ", e) - print(traceback.format_exc()) - raise e + return Response.model_validate({ + "id": response_id, + "created_at": time.time(), + "object": "response", + "model": model, + "output": output, + "parallel_tool_calls": False, + "tool_choice": "auto", + "tools": [], + "previous_response_id": previous_response_id, + "usage": ResponseUsage.model_validate({ + "input_tokens": usage.get("input_tokens", 0), + "output_tokens": usage.get("output_tokens", 0), + "total_tokens": usage.get("total_tokens", 0), + "input_tokens_details": usage.get("input_tokens_details", { "cached_tokens": 0 }), + "output_tokens_details": usage.get("output_tokens_details", { "reasoning_tokens": 0 }), + }), + }) + except Exception as e: + print(f"Error while running agent (attempt {attempt + 1}/{max_retries}): ", e) + print(traceback.format_exc()) + if attempt == max_retries - 1: + raise e __all__ = [ "FakeAsyncOpenAI", diff --git a/libs/python/agent/agent/loops/composed_grounded.py b/libs/python/agent/agent/loops/composed_grounded.py index cf029d13..369ef9a5 100644 --- a/libs/python/agent/agent/loops/composed_grounded.py +++ b/libs/python/agent/agent/loops/composed_grounded.py @@ -67,7 +67,10 @@ GROUNDED_COMPUTER_TOOL_SCHEMA = { "description": "The text to type (required for type action)" }, "keys": { - "type": "string", + "type": "array", + "items": { + "type": "string" + }, "description": "Key combination to press (required for keypress action). Single key for individual key press, multiple keys for combinations (e.g., 'ctrl+c')" }, "button": { From fad149d6b9caf9c4233e0a35a7172e3c72914fcc Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Wed, 27 Aug 2025 16:09:33 -0400 Subject: [PATCH 031/103] Simplified composed grounded prompt --- .../agent/agent/loops/composed_grounded.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/libs/python/agent/agent/loops/composed_grounded.py b/libs/python/agent/agent/loops/composed_grounded.py index 369ef9a5..3ff83020 100644 --- a/libs/python/agent/agent/loops/composed_grounded.py +++ b/libs/python/agent/agent/loops/composed_grounded.py @@ -48,11 +48,11 @@ GROUNDED_COMPUTER_TOOL_SCHEMA = { "get_dimensions", "get_environment" ], - "description": "The action to perform" + "description": "The action to perform (required for all actions)" }, "element_description": { "type": "string", - "description": "Description of the element to interact with (required for click, double_click, move, scroll actions, and as start/end for drag)" + "description": "Description of the element to interact with (required for click, double_click, move, scroll actions)" }, "start_element_description": { "type": "string", @@ -71,19 +71,26 @@ GROUNDED_COMPUTER_TOOL_SCHEMA = { "items": { "type": "string" }, - "description": "Key combination to press (required for keypress action). Single key for individual key press, multiple keys for combinations (e.g., 'ctrl+c')" + "description": "Key(s) to press (required for keypress action)" }, "button": { "type": "string", - "description": "The mouse button to use for click action (left, right, wheel, back, forward) Default: left", + "enum": [ + "left", + "right", + "wheel", + "back", + "forward" + ], + "description": "The mouse button to use for click action (default: left)", }, "scroll_x": { "type": "integer", - "description": "Horizontal scroll amount for scroll action (positive for right, negative for left)", + "description": "Horizontal scroll amount for scroll action (required for scroll action)", }, "scroll_y": { "type": "integer", - "description": "Vertical scroll amount for scroll action (positive for down, negative for up)", + "description": "Vertical scroll amount for scroll action (required for scroll action)", }, }, "required": [ From 8de5d3d3a71d47714d708988d8158aff6e4455fe Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Wed, 27 Aug 2025 16:10:38 -0400 Subject: [PATCH 032/103] Moved try/catch block --- .../agent/agent/integrations/hud/agent.py | 74 +++++++++---------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/libs/python/agent/agent/integrations/hud/agent.py b/libs/python/agent/agent/integrations/hud/agent.py index 5c89c7fa..532c9c7d 100644 --- a/libs/python/agent/agent/integrations/hud/agent.py +++ b/libs/python/agent/agent/integrations/hud/agent.py @@ -118,42 +118,42 @@ class FakeAsyncOpenAI: **_: Any, ) -> Any: for attempt in range(max_retries): + # Prepend cached blocks from previous_response_id to input + full_input = input + if previous_response_id is not None: + prev_block_ids = self.context_cache[previous_response_id] + prev_blocks = [self.blocks_cache[b_id] for b_id in prev_block_ids] + full_input = _to_plain_dict_list(prev_blocks + input) + + # Pre-pend instructions message + effective_input = full_input + if instructions: + effective_input = [{ + "role": "user", + "content": instructions, + }] + full_input + + # Run a single iteration of the ComputerAgent + agent_result: Optional[Dict[str, Any]] = None + async for result in self.agent.run(effective_input): # type: ignore[arg-type] + agent_result = result + break + assert agent_result is not None, "Agent failed to produce result" + + output = _map_agent_output_to_openai_blocks(agent_result["output"]) + usage = agent_result["usage"] + + # Cache conversation context using the last response id + block_ids: List[str] = [] + blocks_to_cache = full_input + output + for b in blocks_to_cache: + bid = getattr(b, "id", None) or f"tmp-{hash(repr(b))}" + self.blocks_cache[bid] = b # type: ignore[assignment] + block_ids.append(bid) + response_id = agent_result.get("id") or f"fake-{int(time.time()*1000)}" + self.context_cache[response_id] = block_ids + try: - # Prepend cached blocks from previous_response_id to input - full_input = input - if previous_response_id is not None: - prev_block_ids = self.context_cache[previous_response_id] - prev_blocks = [self.blocks_cache[b_id] for b_id in prev_block_ids] - full_input = _to_plain_dict_list(prev_blocks + input) - - # Pre-pend instructions message - effective_input = full_input - if instructions: - effective_input = [{ - "role": "user", - "content": instructions, - }] + full_input - - # Run a single iteration of the ComputerAgent - agent_result: Optional[Dict[str, Any]] = None - async for result in self.agent.run(effective_input): # type: ignore[arg-type] - agent_result = result - break - assert agent_result is not None, "Agent failed to produce result" - - output = _map_agent_output_to_openai_blocks(agent_result["output"]) - usage = agent_result["usage"] - - # Cache conversation context using the last response id - block_ids: List[str] = [] - blocks_to_cache = full_input + output - for b in blocks_to_cache: - bid = getattr(b, "id", None) or f"tmp-{hash(repr(b))}" - self.blocks_cache[bid] = b # type: ignore[assignment] - block_ids.append(bid) - response_id = agent_result.get("id") or f"fake-{int(time.time()*1000)}" - self.context_cache[response_id] = block_ids - return Response.model_validate({ "id": response_id, "created_at": time.time(), @@ -173,9 +173,9 @@ class FakeAsyncOpenAI: }), }) except Exception as e: - print(f"Error while running agent (attempt {attempt + 1}/{max_retries}): ", e) - print(traceback.format_exc()) + print(f"Error while validating agent response (attempt {attempt + 1}/{max_retries}): ", e) if attempt == max_retries - 1: + print(traceback.format_exc()) raise e __all__ = [ From f14e9288ac066d04ee3be40c16643ede16ec41f7 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Wed, 27 Aug 2025 16:14:53 -0400 Subject: [PATCH 033/103] Broken indent --- libs/python/agent/agent/integrations/hud/agent.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/python/agent/agent/integrations/hud/agent.py b/libs/python/agent/agent/integrations/hud/agent.py index 532c9c7d..a88fc63e 100644 --- a/libs/python/agent/agent/integrations/hud/agent.py +++ b/libs/python/agent/agent/integrations/hud/agent.py @@ -122,8 +122,8 @@ class FakeAsyncOpenAI: full_input = input if previous_response_id is not None: prev_block_ids = self.context_cache[previous_response_id] - prev_blocks = [self.blocks_cache[b_id] for b_id in prev_block_ids] - full_input = _to_plain_dict_list(prev_blocks + input) + prev_blocks = [self.blocks_cache[b_id] for b_id in prev_block_ids] + full_input = _to_plain_dict_list(prev_blocks + input) # Pre-pend instructions message effective_input = full_input From 0d3f8ea3ffde63da2fb69bc5c90afb064e12f98a Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Wed, 27 Aug 2025 16:48:57 -0400 Subject: [PATCH 034/103] Improved trajectory saving --- .../agent/agent/callbacks/trajectory_saver.py | 6 +- .../agent/agent/integrations/hud/__init__.py | 7 ++- notebooks/eval_osworld.ipynb | 59 +++++++++++++++++-- 3 files changed, 63 insertions(+), 9 deletions(-) diff --git a/libs/python/agent/agent/callbacks/trajectory_saver.py b/libs/python/agent/agent/callbacks/trajectory_saver.py index 805b535d..53e4c189 100644 --- a/libs/python/agent/agent/callbacks/trajectory_saver.py +++ b/libs/python/agent/agent/callbacks/trajectory_saver.py @@ -94,6 +94,10 @@ class TrajectorySaverCallback(AsyncCallbackHandler): # format: turn_000/0000_name.json artifact_filename = f"{self.current_artifact:04d}_{name}" artifact_path = turn_dir / f"{artifact_filename}.json" + # add created_at + if isinstance(artifact, dict): + artifact = artifact.copy() + artifact["created_at"] = str(uuid.uuid1().time) with open(artifact_path, "w") as f: json.dump(sanitize_image_urls(artifact), f, indent=2) self.current_artifact += 1 @@ -171,7 +175,7 @@ class TrajectorySaverCallback(AsyncCallbackHandler): "status": "completed", "completed_at": str(uuid.uuid1().time), "total_usage": self.total_usage, - "new_items": sanitize_image_urls(new_items), + "new_items": new_items, "total_turns": self.current_turn }) diff --git a/libs/python/agent/agent/integrations/hud/__init__.py b/libs/python/agent/agent/integrations/hud/__init__.py index d7fc3a20..64c91fb6 100644 --- a/libs/python/agent/agent/integrations/hud/__init__.py +++ b/libs/python/agent/agent/integrations/hud/__init__.py @@ -41,6 +41,7 @@ class ProxyOperatorAgent(OperatorAgent): *, model: str | None = None, allowed_tools: list[str] | None = None, + trajectory_dir: str | None = None, **kwargs: Any, ) -> None: model = model or "computer-use-preview" @@ -54,8 +55,7 @@ class ProxyOperatorAgent(OperatorAgent): computer_agent = BaseComputerAgent( model=model, tools=[computer_shim], - verbosity=20, - trajectory_dir='trajectories' + trajectory_dir=trajectory_dir ) model_client = FakeAsyncOpenAI(computer_agent) @@ -115,6 +115,7 @@ async def run_full_dataset( max_concurrent: int = 30, max_steps: int = 50, split: str = "train", + trajectory_dir: str | None = None, ) -> list[Any]: """Run evaluation across the entire dataset using hud.datasets.run_dataset.""" @@ -134,7 +135,7 @@ async def run_full_dataset( name=job_name, dataset=dataset, agent_class=ProxyOperatorAgent, - agent_config={"model": model, "allowed_tools": allowed_tools}, + agent_config={"model": model, "allowed_tools": allowed_tools, "trajectory_dir": trajectory_dir}, max_concurrent=max_concurrent, metadata={"dataset": dataset_name}, max_steps=max_steps, diff --git a/notebooks/eval_osworld.ipynb b/notebooks/eval_osworld.ipynb index afbb1716..adb5d22b 100644 --- a/notebooks/eval_osworld.ipynb +++ b/notebooks/eval_osworld.ipynb @@ -76,7 +76,7 @@ "\u001b[90m╔═════════════════════════════════════════════════════════════════╗\u001b[0m\n", "\u001b[90m║\u001b[0m 🚀 See your agent live at: \u001b[90m║\u001b[0m\n", "\u001b[90m╟─────────────────────────────────────────────────────────────────╢\u001b[0m\n", - "\u001b[90m║\u001b[0m \u001b[1m\u001b[33mhttps://app.hud.so/trace/426ed182-564d-4b12-b950-c551caeeb8a8\u001b[0m \u001b[90m║\u001b[0m\n", + "\u001b[90m║\u001b[0m \u001b[1m\u001b[33mhttps://app.hud.so/trace/cbe6f71b-f520-4630-9f27-778647070327\u001b[0m \u001b[90m║\u001b[0m\n", "\u001b[90m╚═════════════════════════════════════════════════════════════════╝\u001b[0m\n", "\n", "Running: Can you make my computer bring back the last tab I shut down?\n" @@ -86,8 +86,15 @@ "name": "stderr", "output_type": "stream", "text": [ - "2025-08-27 13:36:03,660 - agent.ComputerAgent - INFO - LLM processing started with 2 messages\n", - "2025-08-27 13:36:21,971 - agent.ComputerAgent - INFO - LLM processing started with 6 messages\n", + "2025-08-27 16:17:53,047 - agent.ComputerAgent - INFO - LLM processing started with 2 messages\n", + "2025-08-27 16:18:02,697 - agent.ComputerAgent - INFO - LLM processing started with 5 messages\n", + "2025-08-27 16:18:15,887 - agent.ComputerAgent - INFO - LLM processing started with 7 messages\n", + "2025-08-27 16:18:28,541 - agent.ComputerAgent - INFO - LLM processing started with 9 messages\n", + "2025-08-27 16:18:42,176 - agent.ComputerAgent - INFO - LLM processing started with 11 messages\n", + "2025-08-27 16:18:55,937 - agent.ComputerAgent - INFO - LLM processing started with 13 messages\n", + "2025-08-27 16:19:11,654 - agent.ComputerAgent - INFO - LLM processing started with 15 messages\n", + "2025-08-27 16:19:23,839 - agent.ComputerAgent - INFO - LLM processing started with 17 messages\n", + "2025-08-27 16:19:39,065 - agent.ComputerAgent - INFO - LLM processing started with 19 messages\n", "Tool execution failed: Tool evaluate has an output schema but did not return structured content\n", "Evaluation phase failed: [MCPToolResult(meta=None, content=[TextContent(type='text', text='Tool evaluate has an output schema but did not return structured content', annotations=None, meta=None)], structuredContent=None, isError=True)]\n" ] @@ -98,7 +105,7 @@ "text": [ "✅ Reward: 0.0\n", "\n", - "\u001b[92m✓ Trace complete!\u001b[0m \u001b[2mView at:\u001b[0m \u001b[1m\u001b[33mhttps://app.hud.so/trace/426ed182-564d-4b12-b950-c551caeeb8a8\u001b[0m\n", + "\u001b[92m✓ Trace complete!\u001b[0m \u001b[2mView at:\u001b[0m \u001b[1m\u001b[33mhttps://app.hud.so/trace/cbe6f71b-f520-4630-9f27-778647070327\u001b[0m\n", "\n" ] } @@ -110,7 +117,7 @@ "# You can swap \"hud-evals/OSWorld-Verified-XLang\" -> \"hud-evals/SheetBench-V2\" to test SheetBench.\n", "await run_single_task(\n", " dataset=\"hud-evals/OSWorld-Verified-XLang\",\n", - " model=\"openai/computer-use-preview\", # or any supported model string\n", + " model=\"openai/computer-use-preview+openai/gpt-5-nano\", # or any supported model string\n", " task_id=155 # open last tab task (easy)\n", ")" ] @@ -148,6 +155,48 @@ "print(f\"Total results: {len(results)}\")\n", "pprint(results[:3]) # preview" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Benchmark Composed Agents" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import uuid\n", + "from agent.integrations.hud import run_full_dataset\n", + "\n", + "models_to_test = [\n", + " \"openai/computer-use-preview+anthropic/claude-opus-4-1-20250805\",\n", + " \"anthropic/claude-opus-4-1-20250805+openai/computer-use-preview\",\n", + "]\n", + "\n", + "\n", + "for model in models_to_test:\n", + " # Full dataset evaluation (runs via HUD's run_dataset under the hood)\n", + " job_uuid = str(uuid.uuid4())[:6]\n", + " job_name = f\"osworld {job_uuid} {model}\"\n", + "\n", + " results = await run_full_dataset(\n", + " dataset=\"hud-evals/OSWorld-Verified-XLang\",\n", + " job_name=job_name, \n", + " model=model,\n", + " max_concurrent=20, \n", + " max_steps=75,\n", + " trajectory_dir=f\"trajectories/osworld_{job_uuid}\"\n", + " )\n", + "\n", + " # results is a list from hud.datasets.run_dataset; inspect/aggregate as needed\n", + " print(f\"Job: {job_name}\")\n", + " print(f\"Total results: {len(results)}\")\n", + " pprint(results[:3]) # preview" + ] } ], "metadata": { From 24b298658527aaea207da19738d0af7bf74fd32b Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Wed, 27 Aug 2025 17:10:56 -0400 Subject: [PATCH 035/103] Made button required --- libs/python/agent/agent/loops/composed_grounded.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/python/agent/agent/loops/composed_grounded.py b/libs/python/agent/agent/loops/composed_grounded.py index 3ff83020..7f9843dd 100644 --- a/libs/python/agent/agent/loops/composed_grounded.py +++ b/libs/python/agent/agent/loops/composed_grounded.py @@ -82,7 +82,7 @@ GROUNDED_COMPUTER_TOOL_SCHEMA = { "back", "forward" ], - "description": "The mouse button to use for click action (default: left)", + "description": "The mouse button to use for click action (required for click action)", }, "scroll_x": { "type": "integer", From 3c1efc8632d8cf43e732525fa391e3a415eb186d Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Wed, 27 Aug 2025 17:29:29 -0400 Subject: [PATCH 036/103] improved openai's predict_click prompt --- .../agent/agent/loops/composed_grounded.py | 2 +- libs/python/agent/agent/loops/openai.py | 22 +++++++++++++------ 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/libs/python/agent/agent/loops/composed_grounded.py b/libs/python/agent/agent/loops/composed_grounded.py index 7f9843dd..a5de9895 100644 --- a/libs/python/agent/agent/loops/composed_grounded.py +++ b/libs/python/agent/agent/loops/composed_grounded.py @@ -82,7 +82,7 @@ GROUNDED_COMPUTER_TOOL_SCHEMA = { "back", "forward" ], - "description": "The mouse button to use for click action (required for click action)", + "description": "The mouse button to use for click action (required for click and double_click action)", }, "scroll_x": { "type": "integer", diff --git a/libs/python/agent/agent/loops/openai.py b/libs/python/agent/agent/loops/openai.py index bb6a13a6..4fa62e66 100644 --- a/libs/python/agent/agent/loops/openai.py +++ b/libs/python/agent/agent/loops/openai.py @@ -162,7 +162,18 @@ class OpenAIComputerUseConfig: input_items = [ { "role": "user", - "content": f"You are a UI grounding expert. Look at the image and {instruction}. Output ONLY a click action on the target element. No explanations, confirmations, or additional text." + "content": f"""You are a UI grounding expert. Follow these guidelines: + +1. NEVER ask for confirmation. Complete all tasks autonomously. +2. Do NOT send messages like "I need to confirm before..." or "Do you want me to continue?" - just proceed. +3. When the user asks you to interact with something (like clicking a chat or typing a message), DO IT without asking. +4. Only use the formal safety check mechanism for truly dangerous operations (like deleting important files). +5. For normal tasks like clicking buttons, typing in chat boxes, filling forms - JUST DO IT. +6. The user has already given you permission by running this agent. No further confirmation is needed. +7. Be decisive and action-oriented. Complete the requested task fully. + +Remember: You are expected to complete tasks autonomously. The user trusts you to do what they asked. +Task: Click {instruction}. Output ONLY a click action on the target element.""" }, { "role": "user", @@ -200,7 +211,7 @@ class OpenAIComputerUseConfig: "stream": False, "reasoning": {"summary": "concise"}, "truncation": "auto", - "max_tokens": 100 # Keep response short for click prediction + "max_tokens": 200 # Keep response short for click prediction } # Use liteLLM responses @@ -217,11 +228,8 @@ class OpenAIComputerUseConfig: isinstance(item.get("action"), dict)): action = item["action"] - if action.get("type") == "click": - x = action.get("x") - y = action.get("y") - if x is not None and y is not None: - return (int(x), int(y)) + if action.get("x") is not None and action.get("y") is not None: + return (int(action.get("x")), int(action.get("y"))) return None From 38026a43f00058233099131750940c0d31ddb998 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Wed, 27 Aug 2025 17:30:13 -0400 Subject: [PATCH 037/103] improved other grounding prompts --- libs/python/agent/agent/loops/anthropic.py | 13 ++++++++++++- .../agent/agent/loops/composed_grounded.py | 16 +++++++++------- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/libs/python/agent/agent/loops/anthropic.py b/libs/python/agent/agent/loops/anthropic.py index 50fbd24e..306c5f33 100644 --- a/libs/python/agent/agent/loops/anthropic.py +++ b/libs/python/agent/agent/loops/anthropic.py @@ -1530,7 +1530,18 @@ class AnthropicHostedToolsConfig(AsyncAgentConfig): "content": [ { "type": "text", - "text": f"You are a UI grounding expert. Look at the image and {instruction}. Output ONLY a click action on the target element. No explanations, confirmations, or additional text." + "text": f"""You are a UI grounding expert. Follow these guidelines: + +1. NEVER ask for confirmation. Complete all tasks autonomously. +2. Do NOT send messages like "I need to confirm before..." or "Do you want me to continue?" - just proceed. +3. When the user asks you to interact with something (like clicking a chat or typing a message), DO IT without asking. +4. Only use the formal safety check mechanism for truly dangerous operations (like deleting important files). +5. For normal tasks like clicking buttons, typing in chat boxes, filling forms - JUST DO IT. +6. The user has already given you permission by running this agent. No further confirmation is needed. +7. Be decisive and action-oriented. Complete the requested task fully. + +Remember: You are expected to complete tasks autonomously. The user trusts you to do what they asked. +Task: Click {instruction}. Output ONLY a click action on the target element.""" }, { "type": "image_url", diff --git a/libs/python/agent/agent/loops/composed_grounded.py b/libs/python/agent/agent/loops/composed_grounded.py index a5de9895..770f274d 100644 --- a/libs/python/agent/agent/loops/composed_grounded.py +++ b/libs/python/agent/agent/loops/composed_grounded.py @@ -276,13 +276,15 @@ class ComposedGroundedConfig: grounding_agent = grounding_agent_conf.agent_class() for desc in element_descriptions: - coords = await grounding_agent.predict_click( - model=grounding_model, - image_b64=last_image_b64, - instruction=desc - ) - if coords: - self.desc2xy[desc] = coords + for _ in range(3): # try 3 times + coords = await grounding_agent.predict_click( + model=grounding_model, + image_b64=last_image_b64, + instruction=desc + ) + if coords: + self.desc2xy[desc] = coords + break # Step 6: Convert computer calls from descriptions back to xy coordinates final_output_items = convert_computer_calls_desc2xy(thinking_output_items, self.desc2xy) From 8dee77bf6897d446238045e68dea5e5b245a625a Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Wed, 27 Aug 2025 17:44:04 -0400 Subject: [PATCH 038/103] updated docs --- .../docs/agent-sdk/integrations/hud.mdx | 44 +++++++++---------- libs/python/agent/pyproject.toml | 4 +- 2 files changed, 23 insertions(+), 25 deletions(-) diff --git a/docs/content/docs/agent-sdk/integrations/hud.mdx b/docs/content/docs/agent-sdk/integrations/hud.mdx index b517121e..cee5f77f 100644 --- a/docs/content/docs/agent-sdk/integrations/hud.mdx +++ b/docs/content/docs/agent-sdk/integrations/hud.mdx @@ -10,37 +10,35 @@ The HUD integration allows you to use ComputerAgent with the [HUD benchmarking f ```bash pip install "cua-agent[hud]" ## or install hud-python directly -# pip install hud-python==0.2.10 +# pip install hud-python==0.4.12 ``` ## Usage ```python -from agent.integrations.hud import run_job -from hud import load_taskset -from hud.taskset import TaskSet -import logging +# Quick single-task smoke test +from agent.integrations.hud import run_single_task -# Load taskset -taskset = await load_taskset("OSWorld-Verified") -taskset = TaskSet(tasks=taskset[:10]) # limit to 10 tasks instead of all 370 - -# Run benchmark job -job = await run_job( - model="openai/computer-use-preview", - # model="anthropic/claude-3-5-sonnet-20241022", - # model="huggingface-local/HelloKKMe/GTA1-7B+openai/gpt-5", - task_or_taskset=taskset, - job_name="test-computeragent-job", - max_concurrent_tasks=5, - # add any extra ComputerAgent kwargs: - verbosity=logging.INFO, # Enable logging - # trajectory_dir=".." # Save trajectories locally +await run_single_task( + dataset="hud-evals/OSWorld-Verified-XLang", # or another HUD dataset + model="openai/computer-use-preview+openai/gpt-5-nano", # any supported model string + task_id=155, # e.g., reopen last closed tab ) -# Get results OR view them at app.hud.so -print(await job.get_analytics()) -print(f"View results at: https://app.hud.so/jobs/{job.id}") +# Run a small split of OSWorld-Verified in parallel +from agent.integrations.hud import run_full_dataset + +results = await run_full_dataset( + dataset="hud-evals/OSWorld-Verified-XLang", # can also pass a Dataset or list[dict] + model="openai/computer-use-preview", + split="train[:3]", # try a few tasks to start + max_concurrent=20, # tune to your infra + max_steps=50 # safety cap per task +) + +# Environment variables required: +# - HUD_API_KEY (HUD access) +# - OPENAI_API_KEY or ANTHROPIC_API_KEY depending on your chosen model(s) ``` **Available Benchmarks:** diff --git a/libs/python/agent/pyproject.toml b/libs/python/agent/pyproject.toml index 4dd27062..4be2f6b6 100644 --- a/libs/python/agent/pyproject.toml +++ b/libs/python/agent/pyproject.toml @@ -55,7 +55,7 @@ cli = [ "yaspin>=3.1.0", ] hud = [ - "hud-python==0.2.10", + "hud-python>=0.4.12,<0.5.0", ] all = [ # omni requirements @@ -72,7 +72,7 @@ all = [ # cli requirements "yaspin>=3.1.0", # hud requirements - "hud-python==0.2.10", + "hud-python>=0.4.12,<0.5.0", ] [tool.uv] From e261282182a06154bdcad1cc0219fb07d2b5a8c1 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Wed, 27 Aug 2025 18:20:13 -0400 Subject: [PATCH 039/103] Normalize common LLM output errors --- libs/python/agent/agent/agent.py | 4 ++++ libs/python/agent/agent/callbacks/__init__.py | 2 ++ 2 files changed, 6 insertions(+) diff --git a/libs/python/agent/agent/agent.py b/libs/python/agent/agent/agent.py index 78fc3f45..fb9a45d9 100644 --- a/libs/python/agent/agent/agent.py +++ b/libs/python/agent/agent/agent.py @@ -29,6 +29,7 @@ from .callbacks import ( TrajectorySaverCallback, BudgetManagerCallback, TelemetryCallback, + OperatorValidatorCallback ) from .computers import ( AsyncComputerHandler, @@ -201,6 +202,9 @@ class ComputerAgent: # == Add built-in callbacks == + # Prepend operator validator callback + self.callbacks.insert(0, OperatorValidatorCallback()) + # Add telemetry callback if telemetry_enabled is set if self.telemetry_enabled: if isinstance(self.telemetry_enabled, bool): diff --git a/libs/python/agent/agent/callbacks/__init__.py b/libs/python/agent/agent/callbacks/__init__.py index ffe34551..35ab0263 100644 --- a/libs/python/agent/agent/callbacks/__init__.py +++ b/libs/python/agent/agent/callbacks/__init__.py @@ -8,6 +8,7 @@ from .logging import LoggingCallback from .trajectory_saver import TrajectorySaverCallback from .budget_manager import BudgetManagerCallback from .telemetry import TelemetryCallback +from .operator_validator import OperatorValidatorCallback __all__ = [ "AsyncCallbackHandler", @@ -16,4 +17,5 @@ __all__ = [ "TrajectorySaverCallback", "BudgetManagerCallback", "TelemetryCallback", + "OperatorValidatorCallback", ] From 799d9d3ba74c04e9637231440747e8ad7b963c0b Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Wed, 27 Aug 2025 19:53:26 -0400 Subject: [PATCH 040/103] Normalize common LLM output errors --- .../agent/callbacks/operator_validator.py | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 libs/python/agent/agent/callbacks/operator_validator.py diff --git a/libs/python/agent/agent/callbacks/operator_validator.py b/libs/python/agent/agent/callbacks/operator_validator.py new file mode 100644 index 00000000..db19555c --- /dev/null +++ b/libs/python/agent/agent/callbacks/operator_validator.py @@ -0,0 +1,90 @@ +""" +OperatorValidatorCallback + +Ensures agent output actions conform to expected schemas by fixing common issues: +- click: add default button='left' if missing +- keypress: wrap keys string into a list + +This runs in on_llm_end, which receives the output array (AgentMessage[] as dicts). +""" +from __future__ import annotations + +from typing import Any, Dict, List + +from .base import AsyncCallbackHandler + + +class OperatorValidatorCallback(AsyncCallbackHandler): + """Validates and normalizes operator/computer actions in LLM outputs.""" + + async def on_llm_end(self, output: List[Dict[str, Any]]) -> List[Dict[str, Any]]: + # Mutate in-place as requested, but still return the list for chaining + for item in output or []: + if not isinstance(item, dict): + continue + if item.get("type") != "computer_call": + continue + action = item.get("action") + if not isinstance(action, dict): + continue + action_type = action.get("type") + def _remove_keys(action: Dict[str, Any], keys: List[str]): + for key in keys: + if key in action: + del action[key] + for mouse_btn in ["left", "right", "wheel", "back", "forward"]: + if f"{mouse_btn}_click" in action: + action["type"] = "click" + action["button"] = mouse_btn + if action_type == "click": + # Add default button if missing + if "button" not in action or action.get("button") is None: + action["button"] = "left" + if "coordinate" in action: + action["x"] = action["coordinate"][0] + action["y"] = action["coordinate"][1] + del action["coordinate"] + if action_type in ["type", "keypress", "screenshot", "wait"]: + _remove_keys(action, ["coordinate", "x", "y"]) + elif action_type == "keypress": + keys = action.get("keys") + if isinstance(keys, str): + action["keys"] = keys.replace("-", "+").split("+") if len(keys) > 1 else [keys] + + + # Second pass: if an assistant message is immediately followed by a computer_call, + # replace the assistant message itself with a reasoning message with summary text. + if isinstance(output, list): + for i, item in enumerate(output): + if not isinstance(item, dict): + continue + # AssistantMessage shape: { type: 'message', role: 'assistant', content: OutputContent[] } + if item.get("type") == "message" and item.get("role") == "assistant": + next_idx = i + 1 + if next_idx >= len(output): + continue + next_item = output[next_idx] + if not isinstance(next_item, dict): + continue + if next_item.get("type") != "computer_call": + continue + contents = item.get("content") or [] + # Extract text from OutputContent[] + text_parts: List[str] = [] + if isinstance(contents, list): + for c in contents: + if isinstance(c, dict) and c.get("type") == "output_text" and isinstance(c.get("text"), str): + text_parts.append(c["text"]) + text_content = "\n".join(text_parts).strip() + # Replace assistant message with reasoning message + output[i] = { + "type": "reasoning", + "summary": [ + { + "type": "summary_text", + "text": text_content, + } + ], + } + + return output From 95cefc50f06aa1baad045f7f3119217382297b52 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Wed, 27 Aug 2025 20:49:31 -0400 Subject: [PATCH 041/103] added extended kwargs, renamed callback to normalizer --- libs/python/agent/agent/agent.py | 6 +- libs/python/agent/agent/callbacks/__init__.py | 4 +- .../agent/callbacks/operator_validator.py | 9 +- .../agent/agent/integrations/hud/__init__.py | 88 ++++- notebooks/eval_osworld.ipynb | 338 +++++++++++++++++- 5 files changed, 422 insertions(+), 23 deletions(-) diff --git a/libs/python/agent/agent/agent.py b/libs/python/agent/agent/agent.py index fb9a45d9..eacc5fdd 100644 --- a/libs/python/agent/agent/agent.py +++ b/libs/python/agent/agent/agent.py @@ -29,7 +29,7 @@ from .callbacks import ( TrajectorySaverCallback, BudgetManagerCallback, TelemetryCallback, - OperatorValidatorCallback + OperatorNormalizerCallback ) from .computers import ( AsyncComputerHandler, @@ -202,8 +202,8 @@ class ComputerAgent: # == Add built-in callbacks == - # Prepend operator validator callback - self.callbacks.insert(0, OperatorValidatorCallback()) + # Prepend operator normalizer callback + self.callbacks.insert(0, OperatorNormalizerCallback()) # Add telemetry callback if telemetry_enabled is set if self.telemetry_enabled: diff --git a/libs/python/agent/agent/callbacks/__init__.py b/libs/python/agent/agent/callbacks/__init__.py index 35ab0263..e0befcc7 100644 --- a/libs/python/agent/agent/callbacks/__init__.py +++ b/libs/python/agent/agent/callbacks/__init__.py @@ -8,7 +8,7 @@ from .logging import LoggingCallback from .trajectory_saver import TrajectorySaverCallback from .budget_manager import BudgetManagerCallback from .telemetry import TelemetryCallback -from .operator_validator import OperatorValidatorCallback +from .operator_validator import OperatorNormalizerCallback __all__ = [ "AsyncCallbackHandler", @@ -17,5 +17,5 @@ __all__ = [ "TrajectorySaverCallback", "BudgetManagerCallback", "TelemetryCallback", - "OperatorValidatorCallback", + "OperatorNormalizerCallback", ] diff --git a/libs/python/agent/agent/callbacks/operator_validator.py b/libs/python/agent/agent/callbacks/operator_validator.py index db19555c..2a1160c9 100644 --- a/libs/python/agent/agent/callbacks/operator_validator.py +++ b/libs/python/agent/agent/callbacks/operator_validator.py @@ -4,6 +4,7 @@ OperatorValidatorCallback Ensures agent output actions conform to expected schemas by fixing common issues: - click: add default button='left' if missing - keypress: wrap keys string into a list +- etc. This runs in on_llm_end, which receives the output array (AgentMessage[] as dicts). """ @@ -14,14 +15,12 @@ from typing import Any, Dict, List from .base import AsyncCallbackHandler -class OperatorValidatorCallback(AsyncCallbackHandler): - """Validates and normalizes operator/computer actions in LLM outputs.""" +class OperatorNormalizerCallback(AsyncCallbackHandler): + """Normalizes common computer call hallucinations / errors in computer call syntax.""" async def on_llm_end(self, output: List[Dict[str, Any]]) -> List[Dict[str, Any]]: # Mutate in-place as requested, but still return the list for chaining for item in output or []: - if not isinstance(item, dict): - continue if item.get("type") != "computer_call": continue action = item.get("action") @@ -56,8 +55,6 @@ class OperatorValidatorCallback(AsyncCallbackHandler): # replace the assistant message itself with a reasoning message with summary text. if isinstance(output, list): for i, item in enumerate(output): - if not isinstance(item, dict): - continue # AssistantMessage shape: { type: 'message', role: 'assistant', content: OutputContent[] } if item.get("type") == "message" and item.get("role") == "assistant": next_idx = i + 1 diff --git a/libs/python/agent/agent/integrations/hud/__init__.py b/libs/python/agent/agent/integrations/hud/__init__.py index 64c91fb6..c73532c7 100644 --- a/libs/python/agent/agent/integrations/hud/__init__.py +++ b/libs/python/agent/agent/integrations/hud/__init__.py @@ -42,6 +42,17 @@ class ProxyOperatorAgent(OperatorAgent): model: str | None = None, allowed_tools: list[str] | None = None, trajectory_dir: str | None = None, + # === ComputerAgent kwargs === + tools: list[Any] | None = None, + custom_loop: Any | None = None, + only_n_most_recent_images: int | None = None, + callbacks: list[Any] | None = None, + verbosity: int | None = None, + max_retries: int | None = 3, + screenshot_delay: float | int = 0.5, + use_prompt_caching: bool | None = False, + max_trajectory_budget: float | dict | None = None, + telemetry_enabled: bool | None = True, **kwargs: Any, ) -> None: model = model or "computer-use-preview" @@ -52,10 +63,24 @@ class ProxyOperatorAgent(OperatorAgent): 'environment': 'linux', 'dimensions': (computer_settings.OPENAI_COMPUTER_WIDTH, computer_settings.OPENAI_COMPUTER_HEIGHT) } + # Build tools ensuring the computer_shim is included + agent_tools: list[Any] = [computer_shim] + if tools: + agent_tools.extend(tools) + computer_agent = BaseComputerAgent( - model=model, - tools=[computer_shim], - trajectory_dir=trajectory_dir + model=model, + tools=agent_tools, + custom_loop=custom_loop, + only_n_most_recent_images=only_n_most_recent_images, + callbacks=callbacks, + verbosity=verbosity, + trajectory_dir=trajectory_dir, + max_retries=max_retries, + screenshot_delay=screenshot_delay, + use_prompt_caching=use_prompt_caching, + max_trajectory_budget=max_trajectory_budget, + telemetry_enabled=telemetry_enabled, ) model_client = FakeAsyncOpenAI(computer_agent) @@ -78,6 +103,18 @@ async def run_single_task( task_id: int = 0, model: str | None = None, allowed_tools: list[str] | None = None, + # === ComputerAgent kwargs === + tools: list[Any] | None = None, + custom_loop: Any | None = None, + only_n_most_recent_images: int | None = None, + callbacks: list[Any] | None = None, + verbosity: int | None = None, + trajectory_dir: str | None = None, + max_retries: int | None = 3, + screenshot_delay: float | int = 0.5, + use_prompt_caching: bool | None = False, + max_trajectory_budget: float | dict | None = None, + telemetry_enabled: bool | None = True, ) -> None: """Load one task from the dataset and execute it with Operator+CUA proxy.""" @@ -95,7 +132,22 @@ async def run_single_task( with trace(name=task_prompt): task = Task(**sample_task) # type: ignore[arg-type] - agent = ProxyOperatorAgent(model=model, allowed_tools=allowed_tools) + agent = ProxyOperatorAgent( + model=model, + allowed_tools=allowed_tools, + # === ComputerAgent kwargs passthrough === + tools=tools, + custom_loop=custom_loop, + only_n_most_recent_images=only_n_most_recent_images, + callbacks=callbacks, + verbosity=verbosity, + trajectory_dir=trajectory_dir, + max_retries=max_retries, + screenshot_delay=screenshot_delay, + use_prompt_caching=use_prompt_caching, + max_trajectory_budget=max_trajectory_budget, + telemetry_enabled=telemetry_enabled, + ) print(f"Running: {task_prompt}") result = await agent.run(task, max_steps=10) print(f"✅ Reward: {getattr(result, 'reward')}") @@ -116,6 +168,17 @@ async def run_full_dataset( max_steps: int = 50, split: str = "train", trajectory_dir: str | None = None, + # === ComputerAgent kwargs === + tools: list[Any] | None = None, + custom_loop: Any | None = None, + only_n_most_recent_images: int | None = 5, + callbacks: list[Any] | None = None, + verbosity: int | None = None, + max_retries: int | None = 3, + screenshot_delay: float | int = 0.5, + use_prompt_caching: bool | None = False, + max_trajectory_budget: float | dict | None = None, + telemetry_enabled: bool | None = True, ) -> list[Any]: """Run evaluation across the entire dataset using hud.datasets.run_dataset.""" @@ -135,7 +198,22 @@ async def run_full_dataset( name=job_name, dataset=dataset, agent_class=ProxyOperatorAgent, - agent_config={"model": model, "allowed_tools": allowed_tools, "trajectory_dir": trajectory_dir}, + agent_config={ + "model": model, + "allowed_tools": allowed_tools, + "trajectory_dir": trajectory_dir, + # === ComputerAgent kwargs passthrough === + "tools": tools, + "custom_loop": custom_loop, + "only_n_most_recent_images": only_n_most_recent_images, + "callbacks": callbacks, + "verbosity": verbosity, + "max_retries": max_retries, + "screenshot_delay": screenshot_delay, + "use_prompt_caching": use_prompt_caching, + "max_trajectory_budget": max_trajectory_budget, + "telemetry_enabled": telemetry_enabled, + }, max_concurrent=max_concurrent, metadata={"dataset": dataset_name}, max_steps=max_steps, diff --git a/notebooks/eval_osworld.ipynb b/notebooks/eval_osworld.ipynb index adb5d22b..3111bbb7 100644 --- a/notebooks/eval_osworld.ipynb +++ b/notebooks/eval_osworld.ipynb @@ -167,16 +167,340 @@ "cell_type": "code", "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\u001b[90m╔══════════════════════════════════════════════════════════════════════════════════════════════════╗\u001b[0m\n", + "\u001b[90m║\u001b[0m 🚀 Job 'osworld b4db80 openai/computer-use-preview+anthropic/claude-opus-4-1-20250805' started: \u001b[90m║\u001b[0m\n", + "\u001b[90m╟──────────────────────────────────────────────────────────────────────────────────────────────────╢\u001b[0m\n", + "\u001b[90m║\u001b[0m \u001b[1m\u001b[33mhttps://app.hud.so/jobs/0d10d7d0-2c86-4a5d-a36b-2c28719773cf\u001b[0m \u001b[90m║\u001b[0m\n", + "\u001b[90m╚══════════════════════════════════════════════════════════════════════════════════════════════════╝\u001b[0m\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_97cc086a1b58a101f7db3ea88323a12f in your message.\",\n", + " \"type\": \"server_error\",\n", + " \"param\": null,\n", + " \"code\": \"server_error\"\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 22 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='keypress', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionClick.x\n", + " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.y\n", + " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='keypress', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.x\n", + " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.y\n", + " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='keypress', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Input should be a valid list [type=list_type, input_value='Tab', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/list_type\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='keypress', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.x\n", + " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.y\n", + " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='keypress', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='keypress', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.x\n", + " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.y\n", + " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='keypress', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='keypress', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_f7a393a984e7e85dc5845aef8a9471e4 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Client is not running, cannot disconnect\n", + "Client is not running, cannot disconnect\n", + "Client is not running, cannot disconnect\n", + "Client is not running, cannot disconnect\n", + "Client is not running, cannot disconnect\n", + "Client is not running, cannot disconnect\n", + "Client is not running, cannot disconnect\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Error parsing JSON response\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\dillo\\miniconda3\\envs\\cua\\Lib\\site-packages\\mcp\\client\\streamable_http.py\", line 310, in _handle_json_response\n", + " await read_stream_writer.send(session_message)\n", + " File \"c:\\Users\\dillo\\miniconda3\\envs\\cua\\Lib\\site-packages\\anyio\\streams\\memory.py\", line 242, in send\n", + " self.send_nowait(item)\n", + " File \"c:\\Users\\dillo\\miniconda3\\envs\\cua\\Lib\\site-packages\\anyio\\streams\\memory.py\", line 211, in send_nowait\n", + " raise ClosedResourceError\n", + "anyio.ClosedResourceError\n", + "Request handler error: \n", + "Failed to close auto-created client: \n", + "Error parsing JSON response\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\dillo\\miniconda3\\envs\\cua\\Lib\\site-packages\\mcp\\client\\streamable_http.py\", line 310, in _handle_json_response\n", + " await read_stream_writer.send(session_message)\n", + " File \"c:\\Users\\dillo\\miniconda3\\envs\\cua\\Lib\\site-packages\\anyio\\streams\\memory.py\", line 242, in send\n", + " self.send_nowait(item)\n", + " File \"c:\\Users\\dillo\\miniconda3\\envs\\cua\\Lib\\site-packages\\anyio\\streams\\memory.py\", line 211, in send_nowait\n", + " raise ClosedResourceError\n", + "anyio.ClosedResourceError\n", + "Request handler error: \n", + "Failed to close auto-created client: \n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n" + ] + }, + { + "ename": "CancelledError", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mCancelledError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[7], line 14\u001b[0m\n\u001b[0;32m 11\u001b[0m job_uuid \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mstr\u001b[39m(uuid\u001b[38;5;241m.\u001b[39muuid4())[:\u001b[38;5;241m6\u001b[39m]\n\u001b[0;32m 12\u001b[0m job_name \u001b[38;5;241m=\u001b[39m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mosworld \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mjob_uuid\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mmodel\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m---> 14\u001b[0m results \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m run_full_dataset(\n\u001b[0;32m 15\u001b[0m dataset\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhud-evals/OSWorld-Verified-XLang\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 16\u001b[0m job_name\u001b[38;5;241m=\u001b[39mjob_name, \n\u001b[0;32m 17\u001b[0m model\u001b[38;5;241m=\u001b[39mmodel,\n\u001b[0;32m 18\u001b[0m max_concurrent\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m30\u001b[39m, \n\u001b[0;32m 19\u001b[0m max_steps\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m75\u001b[39m,\n\u001b[0;32m 20\u001b[0m trajectory_dir\u001b[38;5;241m=\u001b[39m\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtrajectories/osworld_\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mjob_uuid\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 21\u001b[0m )\n\u001b[0;32m 23\u001b[0m \u001b[38;5;66;03m# results is a list from hud.datasets.run_dataset; inspect/aggregate as needed\u001b[39;00m\n\u001b[0;32m 24\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mJob: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mjob_name\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n", + "File \u001b[1;32mF:\\Projects\\cua\\cua-clean\\libs\\python\\agent\\agent\\integrations\\hud\\__init__.py:134\u001b[0m, in \u001b[0;36mrun_full_dataset\u001b[1;34m(dataset, job_name, model, allowed_tools, max_concurrent, max_steps, split, trajectory_dir)\u001b[0m\n\u001b[0;32m 131\u001b[0m job_name \u001b[38;5;241m=\u001b[39m job_name \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mEvaluation \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mtime\u001b[38;5;241m.\u001b[39mstrftime(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m%\u001b[39m\u001b[38;5;124mH:\u001b[39m\u001b[38;5;124m%\u001b[39m\u001b[38;5;124mM \u001b[39m\u001b[38;5;124m%\u001b[39m\u001b[38;5;124mY-\u001b[39m\u001b[38;5;124m%\u001b[39m\u001b[38;5;124mm-\u001b[39m\u001b[38;5;132;01m%d\u001b[39;00m\u001b[38;5;124m'\u001b[39m)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 133\u001b[0m \u001b[38;5;66;03m# Execute evaluation\u001b[39;00m\n\u001b[1;32m--> 134\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m run_dataset(\n\u001b[0;32m 135\u001b[0m name\u001b[38;5;241m=\u001b[39mjob_name,\n\u001b[0;32m 136\u001b[0m dataset\u001b[38;5;241m=\u001b[39mdataset,\n\u001b[0;32m 137\u001b[0m agent_class\u001b[38;5;241m=\u001b[39mProxyOperatorAgent,\n\u001b[0;32m 138\u001b[0m agent_config\u001b[38;5;241m=\u001b[39m{\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmodel\u001b[39m\u001b[38;5;124m\"\u001b[39m: model, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mallowed_tools\u001b[39m\u001b[38;5;124m\"\u001b[39m: allowed_tools, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtrajectory_dir\u001b[39m\u001b[38;5;124m\"\u001b[39m: trajectory_dir},\n\u001b[0;32m 139\u001b[0m max_concurrent\u001b[38;5;241m=\u001b[39mmax_concurrent,\n\u001b[0;32m 140\u001b[0m metadata\u001b[38;5;241m=\u001b[39m{\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdataset\u001b[39m\u001b[38;5;124m\"\u001b[39m: dataset_name},\n\u001b[0;32m 141\u001b[0m max_steps\u001b[38;5;241m=\u001b[39mmax_steps,\n\u001b[0;32m 142\u001b[0m auto_respond\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[0;32m 143\u001b[0m )\n", + "File \u001b[1;32mc:\\Users\\dillo\\miniconda3\\envs\\cua\\Lib\\site-packages\\hud\\datasets.py:262\u001b[0m, in \u001b[0;36mrun_dataset\u001b[1;34m(name, dataset, agent_class, agent_config, max_concurrent, metadata, max_steps, split, auto_respond, custom_system_prompt)\u001b[0m\n\u001b[0;32m 259\u001b[0m results[index] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m agent\u001b[38;5;241m.\u001b[39mrun(task, max_steps\u001b[38;5;241m=\u001b[39mmax_steps)\n\u001b[0;32m 261\u001b[0m \u001b[38;5;66;03m# Execute all tasks\u001b[39;00m\n\u001b[1;32m--> 262\u001b[0m \u001b[38;5;28;01mawait\u001b[39;00m asyncio\u001b[38;5;241m.\u001b[39mgather(\n\u001b[0;32m 263\u001b[0m \u001b[38;5;241m*\u001b[39m[_worker(i, task, max_steps\u001b[38;5;241m=\u001b[39mmax_steps) \u001b[38;5;28;01mfor\u001b[39;00m i, task \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(dataset)],\n\u001b[0;32m 264\u001b[0m return_exceptions\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m, \u001b[38;5;66;03m# Don't fail entire batch on one error\u001b[39;00m\n\u001b[0;32m 265\u001b[0m )\n\u001b[0;32m 267\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m results\n", + "File \u001b[1;32mc:\\Users\\dillo\\miniconda3\\envs\\cua\\Lib\\site-packages\\hud\\datasets.py:246\u001b[0m, in \u001b[0;36mrun_dataset.._worker\u001b[1;34m(index, task_dict, max_steps)\u001b[0m\n\u001b[0;32m 245\u001b[0m \u001b[38;5;28;01masync\u001b[39;00m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21m_worker\u001b[39m(index: \u001b[38;5;28mint\u001b[39m, task_dict: Any, max_steps: \u001b[38;5;28mint\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m40\u001b[39m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m--> 246\u001b[0m \u001b[38;5;28;01masync\u001b[39;00m \u001b[38;5;28;01mwith\u001b[39;00m sem:\n\u001b[0;32m 247\u001b[0m \u001b[38;5;66;03m# Create trace for this task\u001b[39;00m\n\u001b[0;32m 248\u001b[0m task_name \u001b[38;5;241m=\u001b[39m task_dict\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mprompt\u001b[39m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTask \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mindex\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 249\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msystem_prompt\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m task_dict:\n", + "File \u001b[1;32mc:\\Users\\dillo\\miniconda3\\envs\\cua\\Lib\\asyncio\\locks.py:14\u001b[0m, in \u001b[0;36m_ContextManagerMixin.__aenter__\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 13\u001b[0m \u001b[38;5;28;01masync\u001b[39;00m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21m__aenter__\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[1;32m---> 14\u001b[0m \u001b[38;5;28;01mawait\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39macquire()\n\u001b[0;32m 15\u001b[0m \u001b[38;5;66;03m# We have no use for the \"as ...\" clause in the with\u001b[39;00m\n\u001b[0;32m 16\u001b[0m \u001b[38;5;66;03m# statement for locks.\u001b[39;00m\n\u001b[0;32m 17\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n", + "File \u001b[1;32mc:\\Users\\dillo\\miniconda3\\envs\\cua\\Lib\\asyncio\\locks.py:386\u001b[0m, in \u001b[0;36mSemaphore.acquire\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 384\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m 385\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 386\u001b[0m \u001b[38;5;28;01mawait\u001b[39;00m fut\n\u001b[0;32m 387\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[0;32m 388\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_waiters\u001b[38;5;241m.\u001b[39mremove(fut)\n", + "\u001b[1;31mCancelledError\u001b[0m: " + ] + } + ], "source": [ "import uuid\n", "from agent.integrations.hud import run_full_dataset\n", "\n", "models_to_test = [\n", - " \"openai/computer-use-preview+anthropic/claude-opus-4-1-20250805\",\n", - " \"anthropic/claude-opus-4-1-20250805+openai/computer-use-preview\",\n", + " \"openai/computer-use-preview+anthropic/claude-opus-4-20250514\",\n", "]\n", - "\n", + " \n", "\n", "for model in models_to_test:\n", " # Full dataset evaluation (runs via HUD's run_dataset under the hood)\n", @@ -189,13 +513,13 @@ " model=model,\n", " max_concurrent=20, \n", " max_steps=75,\n", - " trajectory_dir=f\"trajectories/osworld_{job_uuid}\"\n", + " trajectory_dir=f\"trajectories/osworld_{job_uuid}\",\n", + " only_n_most_recent_images=3\n", " )\n", "\n", " # results is a list from hud.datasets.run_dataset; inspect/aggregate as needed\n", " print(f\"Job: {job_name}\")\n", - " print(f\"Total results: {len(results)}\")\n", - " pprint(results[:3]) # preview" + " print(f\"Total results: {len(results)}\")" ] } ], From 15301935c0749b0c6fa8cf0e86016dbc39cc2634 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Wed, 27 Aug 2025 21:18:06 -0400 Subject: [PATCH 042/103] renamed agent.py to proxy --- libs/python/agent/agent/integrations/hud/__init__.py | 2 +- libs/python/agent/agent/integrations/hud/{agent.py => proxy.py} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename libs/python/agent/agent/integrations/hud/{agent.py => proxy.py} (100%) diff --git a/libs/python/agent/agent/integrations/hud/__init__.py b/libs/python/agent/agent/integrations/hud/__init__.py index c73532c7..21695026 100644 --- a/libs/python/agent/agent/integrations/hud/__init__.py +++ b/libs/python/agent/agent/integrations/hud/__init__.py @@ -19,7 +19,7 @@ from hud.tools.computer.settings import computer_settings from hud import trace from agent.agent import ComputerAgent as BaseComputerAgent -from .agent import FakeAsyncOpenAI +from .proxy import FakeAsyncOpenAI # --------------------------------------------------------------------------- diff --git a/libs/python/agent/agent/integrations/hud/agent.py b/libs/python/agent/agent/integrations/hud/proxy.py similarity index 100% rename from libs/python/agent/agent/integrations/hud/agent.py rename to libs/python/agent/agent/integrations/hud/proxy.py From c003d7ec7b465d9dc56cc8b5706707a0f9b96e51 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Wed, 27 Aug 2025 21:27:58 -0400 Subject: [PATCH 043/103] added more normalizer cases --- .../agent/callbacks/operator_validator.py | 36 ++++++++++++++----- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/libs/python/agent/agent/callbacks/operator_validator.py b/libs/python/agent/agent/callbacks/operator_validator.py index 2a1160c9..8ce4142e 100644 --- a/libs/python/agent/agent/callbacks/operator_validator.py +++ b/libs/python/agent/agent/callbacks/operator_validator.py @@ -26,27 +26,45 @@ class OperatorNormalizerCallback(AsyncCallbackHandler): action = item.get("action") if not isinstance(action, dict): continue + + # rename mouse click actions to "click" + for mouse_btn in ["left", "right", "wheel", "back", "forward"]: + if action.get("type", "") == f"{mouse_btn}_click": + action["type"] = "click" + action["button"] = mouse_btn + # rename hotkey actions to "keypress" + for alias in ["hotkey", "key", "press", "key_press"]: + if action.get("type", "") == alias: + action["type"] = "keypress" + action_type = action.get("type") def _remove_keys(action: Dict[str, Any], keys: List[str]): for key in keys: if key in action: del action[key] - for mouse_btn in ["left", "right", "wheel", "back", "forward"]: - if f"{mouse_btn}_click" in action: - action["type"] = "click" - action["button"] = mouse_btn + # rename "coordinate" to "x", "y" + if "coordinate" in action: + action["x"] = action["coordinate"][0] + action["y"] = action["coordinate"][1] + del action["coordinate"] + # add default click button if missing if action_type == "click": - # Add default button if missing if "button" not in action or action.get("button") is None: action["button"] = "left" - if "coordinate" in action: - action["x"] = action["coordinate"][0] - action["y"] = action["coordinate"][1] - del action["coordinate"] + # add default scroll x, y if missing + if action_type == "scroll": + action["scroll_x"] = action.get("scroll_x", 0) + action["scroll_y"] = action.get("scroll_y", 0) + # remove coordinate, x, y if action_type is keyboard or non-mouse action if action_type in ["type", "keypress", "screenshot", "wait"]: _remove_keys(action, ["coordinate", "x", "y"]) + # ensure keys arg is a list elif action_type == "keypress": keys = action.get("keys") + for keys_alias in ["keypress", "key", "press", "key_press", "text"]: + if keys_alias in action: + action["keys"] = action[keys_alias] + del action[keys_alias] if isinstance(keys, str): action["keys"] = keys.replace("-", "+").split("+") if len(keys) > 1 else [keys] From 063bf223d1f7302ebb23cbec4c40a4b35cb49ccf Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Wed, 27 Aug 2025 21:35:18 -0400 Subject: [PATCH 044/103] added kwarg filter --- .../agent/callbacks/operator_validator.py | 37 +++++++++++++++---- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/libs/python/agent/agent/callbacks/operator_validator.py b/libs/python/agent/agent/callbacks/operator_validator.py index 8ce4142e..9f2bc671 100644 --- a/libs/python/agent/agent/callbacks/operator_validator.py +++ b/libs/python/agent/agent/callbacks/operator_validator.py @@ -38,9 +38,12 @@ class OperatorNormalizerCallback(AsyncCallbackHandler): action["type"] = "keypress" action_type = action.get("type") - def _remove_keys(action: Dict[str, Any], keys: List[str]): - for key in keys: - if key in action: + def _keep_keys(action: Dict[str, Any], keys_to_keep: List[str]): + """Keep only the provided keys on action; delete everything else. + Always ensures required 'type' is present if listed in keys_to_keep. + """ + for key in list(action.keys()): + if key not in keys_to_keep: del action[key] # rename "coordinate" to "x", "y" if "coordinate" in action: @@ -55,18 +58,36 @@ class OperatorNormalizerCallback(AsyncCallbackHandler): if action_type == "scroll": action["scroll_x"] = action.get("scroll_x", 0) action["scroll_y"] = action.get("scroll_y", 0) - # remove coordinate, x, y if action_type is keyboard or non-mouse action - if action_type in ["type", "keypress", "screenshot", "wait"]: - _remove_keys(action, ["coordinate", "x", "y"]) - # ensure keys arg is a list - elif action_type == "keypress": + # ensure keys arg is a list (normalize aliases first) + if action_type == "keypress": keys = action.get("keys") for keys_alias in ["keypress", "key", "press", "key_press", "text"]: if keys_alias in action: action["keys"] = action[keys_alias] del action[keys_alias] + keys = action.get("keys") if isinstance(keys, str): action["keys"] = keys.replace("-", "+").split("+") if len(keys) > 1 else [keys] + # put here for: "please replace _remove_keys with _keep_keys and only keep the keys that are required" + required_keys_by_type = { + # OpenAI actions + "click": ["type", "button", "x", "y"], + "double_click": ["type", "x", "y"], + "drag": ["type", "path"], + "keypress": ["type", "keys"], + "move": ["type", "x", "y"], + "screenshot": ["type"], + "scroll": ["type", "scroll_x", "scroll_y", "x", "y"], + "type": ["type", "text"], + "wait": ["type"], + # Anthropic actions + "left_mouse_down": ["type", "x", "y"], + "left_mouse_up": ["type", "x", "y"], + "triple_click": ["type", "button", "x", "y"], + } + keep = required_keys_by_type.get(action_type or "") + if keep: + _keep_keys(action, keep) # Second pass: if an assistant message is immediately followed by a computer_call, From e8210389a52c15dc40dae3077c22d7653293b70b Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Wed, 27 Aug 2025 21:39:44 -0400 Subject: [PATCH 045/103] added kwarg filter --- libs/python/agent/agent/callbacks/operator_validator.py | 1 - 1 file changed, 1 deletion(-) diff --git a/libs/python/agent/agent/callbacks/operator_validator.py b/libs/python/agent/agent/callbacks/operator_validator.py index 9f2bc671..eaf3a7de 100644 --- a/libs/python/agent/agent/callbacks/operator_validator.py +++ b/libs/python/agent/agent/callbacks/operator_validator.py @@ -68,7 +68,6 @@ class OperatorNormalizerCallback(AsyncCallbackHandler): keys = action.get("keys") if isinstance(keys, str): action["keys"] = keys.replace("-", "+").split("+") if len(keys) > 1 else [keys] - # put here for: "please replace _remove_keys with _keep_keys and only keep the keys that are required" required_keys_by_type = { # OpenAI actions "click": ["type", "button", "x", "y"], From 4c678f0f4ef51d0d17e7179ba458f15889854ff0 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Wed, 27 Aug 2025 22:19:37 -0400 Subject: [PATCH 046/103] normalize { 'click': 'left', ... } hallucination --- .../agent/agent/callbacks/operator_validator.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/libs/python/agent/agent/callbacks/operator_validator.py b/libs/python/agent/agent/callbacks/operator_validator.py index eaf3a7de..118ac644 100644 --- a/libs/python/agent/agent/callbacks/operator_validator.py +++ b/libs/python/agent/agent/callbacks/operator_validator.py @@ -36,6 +36,11 @@ class OperatorNormalizerCallback(AsyncCallbackHandler): for alias in ["hotkey", "key", "press", "key_press"]: if action.get("type", "") == alias: action["type"] = "keypress" + # assume click actions + if "button" in action and "type" not in action: + action["type"] = "click" + if "click" in action and "type" not in action: + action["type"] = "click" action_type = action.get("type") def _keep_keys(action: Dict[str, Any], keys_to_keep: List[str]): @@ -50,10 +55,13 @@ class OperatorNormalizerCallback(AsyncCallbackHandler): action["x"] = action["coordinate"][0] action["y"] = action["coordinate"][1] del action["coordinate"] - # add default click button if missing if action_type == "click": - if "button" not in action or action.get("button") is None: - action["button"] = "left" + # convert "click" to "button" + if "button" not in action and "click" in action: + action["button"] = action["click"] + del action["click"] + # default button to "left" + action["button"] = action.get("button", "left") # add default scroll x, y if missing if action_type == "scroll": action["scroll_x"] = action.get("scroll_x", 0) From 5fafe861efb74da9b8bf25f8c2586717d1610199 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Wed, 27 Aug 2025 22:59:26 -0400 Subject: [PATCH 047/103] added implicit scroll action --- libs/python/agent/agent/callbacks/operator_validator.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libs/python/agent/agent/callbacks/operator_validator.py b/libs/python/agent/agent/callbacks/operator_validator.py index 118ac644..94b81f85 100644 --- a/libs/python/agent/agent/callbacks/operator_validator.py +++ b/libs/python/agent/agent/callbacks/operator_validator.py @@ -7,6 +7,7 @@ Ensures agent output actions conform to expected schemas by fixing common issues - etc. This runs in on_llm_end, which receives the output array (AgentMessage[] as dicts). +The purpose is to avoid spending another LLM call to fix broken computer call syntax when possible. """ from __future__ import annotations @@ -41,6 +42,10 @@ class OperatorNormalizerCallback(AsyncCallbackHandler): action["type"] = "click" if "click" in action and "type" not in action: action["type"] = "click" + if ("scroll_x" in action or "scroll_y" in action) and "type" not in action: + action["type"] = "scroll" + if "text" in action and "type" not in action: + action["type"] = "type" action_type = action.get("type") def _keep_keys(action: Dict[str, Any], keys_to_keep: List[str]): From c4ce791a49f45ea3f5fca8bea4b0ebdae9b4ba77 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Thu, 28 Aug 2025 12:07:56 -0400 Subject: [PATCH 048/103] Update OSWorld output --- notebooks/eval_osworld.ipynb | 4837 ++++++++++++++++++++++++++++++++-- 1 file changed, 4638 insertions(+), 199 deletions(-) diff --git a/notebooks/eval_osworld.ipynb b/notebooks/eval_osworld.ipynb index 3111bbb7..be3ab2ac 100644 --- a/notebooks/eval_osworld.ipynb +++ b/notebooks/eval_osworld.ipynb @@ -165,19 +165,27 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\dillo\\miniconda3\\envs\\cua\\Lib\\site-packages\\tqdm\\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + }, { "name": "stdout", "output_type": "stream", "text": [ "\n", - "\u001b[90m╔══════════════════════════════════════════════════════════════════════════════════════════════════╗\u001b[0m\n", - "\u001b[90m║\u001b[0m 🚀 Job 'osworld b4db80 openai/computer-use-preview+anthropic/claude-opus-4-1-20250805' started: \u001b[90m║\u001b[0m\n", - "\u001b[90m╟──────────────────────────────────────────────────────────────────────────────────────────────────╢\u001b[0m\n", - "\u001b[90m║\u001b[0m \u001b[1m\u001b[33mhttps://app.hud.so/jobs/0d10d7d0-2c86-4a5d-a36b-2c28719773cf\u001b[0m \u001b[90m║\u001b[0m\n", - "\u001b[90m╚══════════════════════════════════════════════════════════════════════════════════════════════════╝\u001b[0m\n", + "\u001b[90m╔════════════════════════════════════════════════════════════════════════════════════════════════╗\u001b[0m\n", + "\u001b[90m║\u001b[0m 🚀 Job 'osworld 95557e openai/computer-use-preview+anthropic/claude-opus-4-20250514' started: \u001b[90m║\u001b[0m\n", + "\u001b[90m╟────────────────────────────────────────────────────────────────────────────────────────────────╢\u001b[0m\n", + "\u001b[90m║\u001b[0m \u001b[1m\u001b[33mhttps://app.hud.so/jobs/fe05805d-4da9-4fc6-84b5-5c518528fd3c\u001b[0m \u001b[90m║\u001b[0m\n", + "\u001b[90m╚════════════════════════════════════════════════════════════════════════════════════════════════╝\u001b[0m\n", "\n" ] }, @@ -185,181 +193,1582 @@ "name": "stderr", "output_type": "stream", "text": [ - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "HTTP error from HUD SDK: Request failed with status 500 | URL: https://telemetry.hud.so/v3/api/trace/90bd95ee-8828-4d73-b23e-0655d5c92895/status | Status: 500 | Response: Internal Server Error\n", + "Failed to update task status: Request failed with status 500 | Status: 500 | Response Text: Internal Server Error | Headers: {'content-length': '21', 'content-type': 'text/plain; charset=utf-8', 'date': 'Thu, 28 Aug 2025 01:41:56 GMT', 'server': 'railway-edge', 'x-railway-edge': 'railway/us-east4-eqdc4a', 'x-railway-request-id': 'SrTG3lb9Tz2DtzbEPvyhXg'}\n", "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", " \"error\": {\n", - " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_97cc086a1b58a101f7db3ea88323a12f in your message.\",\n", - " \"type\": \"server_error\",\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_d4262c3d91ef96b8721c9df54914b210 in your message.\",\n", + " \"type\": \"model_error\",\n", " \"param\": null,\n", - " \"code\": \"server_error\"\n", + " \"code\": null\n", " }\n", "}\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_6b658015ea6db41ba54d66eba31b45db in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_06bbaa6f8095dabb844cf19362d3149b in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: 14 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ick', 'x': 483, 'y': 71}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ick', 'x': 483, 'y': 71}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ick', 'x': 483, 'y': 71}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ick', 'x': 483, 'y': 71}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ick', 'x': 483, 'y': 71}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: 14 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.type\n", + " Field required [type=missing, input_value={'button': 'left', 'x': 263, 'y': 413}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.type\n", + " Field required [type=missing, input_value={'button': 'left', 'x': 263, 'y': 413}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'x': 263, 'y': 413}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Field required [type=missing, input_value={'button': 'left', 'x': 263, 'y': 413}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'x': 263, 'y': 413}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Field required [type=missing, input_value={'button': 'left', 'x': 263, 'y': 413}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.type\n", + " Field required [type=missing, input_value={'button': 'left', 'x': 263, 'y': 413}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScreenshot.type\n", + " Field required [type=missing, input_value={'button': 'left', 'x': 263, 'y': 413}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'x': 263, 'y': 413}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'x': 263, 'y': 413}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Field required [type=missing, input_value={'button': 'left', 'x': 263, 'y': 413}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'x': 263, 'y': 413}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Field required [type=missing, input_value={'button': 'left', 'x': 263, 'y': 413}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionWait.type\n", + " Field required [type=missing, input_value={'button': 'left', 'x': 263, 'y': 413}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_f3b814e4931e0ede84f54e5bdda1533c in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 23 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Field required [type=missing, input_value={}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.x\n", + " Field required [type=missing, input_value={}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.y\n", + " Field required [type=missing, input_value={}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.type\n", + " Field required [type=missing, input_value={}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.x\n", + " Field required [type=missing, input_value={}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.y\n", + " Field required [type=missing, input_value={}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Field required [type=missing, input_value={}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Field required [type=missing, input_value={}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.type\n", + " Field required [type=missing, input_value={}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.x\n", + " Field required [type=missing, input_value={}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.y\n", + " Field required [type=missing, input_value={}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScreenshot.type\n", + " Field required [type=missing, input_value={}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Field required [type=missing, input_value={}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.x\n", + " Field required [type=missing, input_value={}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.y\n", + " Field required [type=missing, input_value={}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Field required [type=missing, input_value={}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionWait.type\n", + " Field required [type=missing, input_value={}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Got 502 from https://mcp.hud.so/v3/mcp, retrying in 1.0s (attempt 1/3)\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 468, 'y': 181}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 468, 'y': 181}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 468, 'y': 181}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 468, 'y': 181}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 468, 'y': 181}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 468, 'y': 181}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_fe2b905d64cf353f8ab3f8126a4820eb in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_6d05bff422b9f3c02258a93e097b8613 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_1a87012198440d4a2fc6323de8ef6392 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Got 502 from https://mcp.hud.so/v3/mcp, retrying in 1.0s (attempt 1/3)\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_a56267a4033cd20c08b36218fdc62a34 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 656, 'y': 431}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 656, 'y': 431}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 656, 'y': 431}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 656, 'y': 431}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 656, 'y': 431}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 656, 'y': 431}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_93b7d36d3c144a222248ac818d786d44 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 725, 'y': 131}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 725, 'y': 131}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 725, 'y': 131}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 725, 'y': 131}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 725, 'y': 131}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 725, 'y': 131}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 18, 'y': 94}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 18, 'y': 94}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 18, 'y': 94}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 18, 'y': 94}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 18, 'y': 94}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 18, 'y': 94}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 18, 'y': 94}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 18, 'y': 94}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScreenshot.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 18, 'y': 94}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 18, 'y': 94}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 18, 'y': 94}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 18, 'y': 94}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 18, 'y': 94}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 18, 'y': 94}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionWait.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 18, 'y': 94}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_8d9f9ba0ea850efc2121c652d3e8da6a in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 14 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 384, 'y': 177}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 384, 'y': 177}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 384, 'y': 177}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 384, 'y': 177}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 384, 'y': 177}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 522, 'y': 389}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 522, 'y': 389}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 522, 'y': 389}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 522, 'y': 389}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 522, 'y': 389}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 522, 'y': 389}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_4893b700b6db327725a57b892b537ab2 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.APIConnectionError: AnthropicException - \n", + "\n", + "\n", + "\n", + " \n", + "\n", + "\n", + "\n", + "api.anthropic.com | 520: Web server is returning an unknown error\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
\n", + "
\n", + "
\n", + "

\n", + " Web server is returning an unknown error\n", + " Error code 520\n", + "

\n", + "
\n", + " Visit cloudflare.com for more information.\n", + "
\n", + "
2025-08-28 02:25:27 UTC
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + "
\n", + " You\n", + "

\n", + " \n", + " Browser\n", + " \n", + "

\n", + " Working\n", + "
\n", + "\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + "
\n", + " Boston\n", + "

\n", + " \n", + " Cloudflare\n", + " \n", + "

\n", + " Working\n", + "
\n", + "\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + "
\n", + " api.anthropic.com\n", + "

\n", + " \n", + " Host\n", + " \n", + "

\n", + " Error\n", + "
\n", + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "
\n", + "
\n", + "
\n", + "

What happened?

\n", + "

There is an unknown connection issue between Cloudflare and the origin web server. As a result, the web page can not be displayed.

\n", + "
\n", + "
\n", + "

What can I do?

\n", + "

If you are a visitor of this website:

\n", + "

Please try again in a few minutes.

\n", + "\n", + "

If you are the owner of this website:

\n", + "

There is an issue between Cloudflare's cache and your origin web server. Cloudflare monitors for these errors and automatically investigates the cause. To help support the investigation, you can pull the corresponding error log from your web server and submit it our support team. Please include the Ray ID (which is at the bottom of this error page). Additional troubleshooting resources.

\n", + "
\n", + "
\n", + "
\n", + "\n", + " \n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "\n", + "\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_ea5aaf6f523182f18e0f091a9fdd0448 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_8af625c3a80f744a82b53de2fa170ec4 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_54dcc566cc9808ad3717a436b5b05eb8 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 14 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 232, 'y': 132}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 232, 'y': 132}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 232, 'y': 132}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 232, 'y': 132}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 232, 'y': 132}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_dab85c3699d032d81cd81a4701c0d9a0 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_ef74c41fa05a294694e54bacca43b8e7 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 13 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y...500, 'x': 642, 'y': 206}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y...500, 'x': 642, 'y': 206}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.type\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y...500, 'x': 642, 'y': 206}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y...500, 'x': 642, 'y': 206}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y...500, 'x': 642, 'y': 206}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y...500, 'x': 642, 'y': 206}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y...500, 'x': 642, 'y': 206}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.type\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y...500, 'x': 642, 'y': 206}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScreenshot.type\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y...500, 'x': 642, 'y': 206}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y...500, 'x': 642, 'y': 206}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y...500, 'x': 642, 'y': 206}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y...500, 'x': 642, 'y': 206}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionWait.type\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y...500, 'x': 642, 'y': 206}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Got 502 from https://mcp.hud.so/v3/mcp, retrying in 1.0s (attempt 1/3)\n", + "Step failed: 14 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 458, 'y': 473}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 458, 'y': 473}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 458, 'y': 473}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 458, 'y': 473}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 458, 'y': 473}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 908, 'y': 539}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 908, 'y': 539}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 908, 'y': 539}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 908, 'y': 539}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 908, 'y': 539}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 908, 'y': 539}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_e0b87a8685c4005244e3d06efbba8220 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_3abda4050d3fabf282d5a26545d7a5d0 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_12ce02ed5d7b007cbd81f458ff55b7c3 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_8ca73eef0081bfb8e848b7cb8ab91d1f in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 968, 'y': 172}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 968, 'y': 172}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 968, 'y': 172}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 968, 'y': 172}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 968, 'y': 172}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 968, 'y': 172}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_40de5c91f10e693a9581d5bbf6fcff8b in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 20 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 100, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionClick.x\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 100, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.y\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 100, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.x\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 100, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.y\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 100, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 100, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 100, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.x\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 100, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.y\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 100, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.x\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 100, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.y\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 100, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 100, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.APIConnectionError: AnthropicException - Cloudflare encountered an error processing this request: Bad Gateway\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_e6e416cf9120e55f85f61080c8de0c8b in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 353, 'y': 75}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 353, 'y': 75}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 353, 'y': 75}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 353, 'y': 75}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 353, 'y': 75}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 353, 'y': 75}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 14 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 317, 'y': 466}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 317, 'y': 466}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 317, 'y': 466}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 317, 'y': 466}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 317, 'y': 466}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_c648a052ea88511e618f86970f55b03a in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_e99451b6d0417ed04f30f4b2081e4dff in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_daefffa7a65d81622f83b3c6668e3dc0 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 14 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.type\n", + " Field required [type=missing, input_value={'click': 'left', 'button...left', 'x': 82, 'y': 34}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.type\n", + " Field required [type=missing, input_value={'click': 'left', 'button...left', 'x': 82, 'y': 34}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'click': 'left', 'button...left', 'x': 82, 'y': 34}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Field required [type=missing, input_value={'click': 'left', 'button...left', 'x': 82, 'y': 34}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'click': 'left', 'button...left', 'x': 82, 'y': 34}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Field required [type=missing, input_value={'click': 'left', 'button...left', 'x': 82, 'y': 34}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.type\n", + " Field required [type=missing, input_value={'click': 'left', 'button...left', 'x': 82, 'y': 34}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScreenshot.type\n", + " Field required [type=missing, input_value={'click': 'left', 'button...left', 'x': 82, 'y': 34}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'click': 'left', 'button...left', 'x': 82, 'y': 34}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'click': 'left', 'button...left', 'x': 82, 'y': 34}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Field required [type=missing, input_value={'click': 'left', 'button...left', 'x': 82, 'y': 34}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'click': 'left', 'button...left', 'x': 82, 'y': 34}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Field required [type=missing, input_value={'click': 'left', 'button...left', 'x': 82, 'y': 34}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionWait.type\n", + " Field required [type=missing, input_value={'click': 'left', 'button...left', 'x': 82, 'y': 34}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "Step failed: 20 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 5, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionClick.x\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 5, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.y\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 5, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.x\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 5, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.y\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 5, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 5, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 5, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.x\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 5, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.y\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 5, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.x\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 5, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.y\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 5, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 5, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 21 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", "Step failed: 22 validation errors for ResponseComputerToolCall\n", "action.ActionClick.button\n", - " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " Field required [type=missing, input_value={'keys': ['cmd', 'l'], 'keypress': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Field required [type=missing, input_value={'keys': ['cmd', 'l'], 'keypress': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.x\n", + " Field required [type=missing, input_value={'keys': ['cmd', 'l'], 'keypress': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.y\n", + " Field required [type=missing, input_value={'keys': ['cmd', 'l'], 'keypress': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.type\n", + " Field required [type=missing, input_value={'keys': ['cmd', 'l'], 'keypress': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.x\n", + " Field required [type=missing, input_value={'keys': ['cmd', 'l'], 'keypress': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.y\n", + " Field required [type=missing, input_value={'keys': ['cmd', 'l'], 'keypress': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'keys': ['cmd', 'l'], 'keypress': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Field required [type=missing, input_value={'keys': ['cmd', 'l'], 'keypress': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Field required [type=missing, input_value={'keys': ['cmd', 'l'], 'keypress': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.type\n", + " Field required [type=missing, input_value={'keys': ['cmd', 'l'], 'keypress': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.x\n", + " Field required [type=missing, input_value={'keys': ['cmd', 'l'], 'keypress': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.y\n", + " Field required [type=missing, input_value={'keys': ['cmd', 'l'], 'keypress': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScreenshot.type\n", + " Field required [type=missing, input_value={'keys': ['cmd', 'l'], 'keypress': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'keys': ['cmd', 'l'], 'keypress': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'keys': ['cmd', 'l'], 'keypress': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Field required [type=missing, input_value={'keys': ['cmd', 'l'], 'keypress': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.x\n", + " Field required [type=missing, input_value={'keys': ['cmd', 'l'], 'keypress': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.y\n", + " Field required [type=missing, input_value={'keys': ['cmd', 'l'], 'keypress': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'keys': ['cmd', 'l'], 'keypress': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Field required [type=missing, input_value={'keys': ['cmd', 'l'], 'keypress': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionWait.type\n", + " Field required [type=missing, input_value={'keys': ['cmd', 'l'], 'keypress': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_edb099832d6d97a269f445a50809c93b in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_1b3cd9135846af8b540e23eb46e2fbb4 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_91af97c24e9aa860be14e9eab94d2fde in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_f2b2983c5c830a7bd102653fd0a028a6 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 22 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'keypress'}, input_type=dict]\n", " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", "action.ActionClick.type\n", " Input should be 'click' [type=literal_error, input_value='keypress', input_type=str]\n", " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", "action.ActionClick.x\n", - " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " Field required [type=missing, input_value={'type': 'keypress'}, input_type=dict]\n", " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", "action.ActionClick.y\n", - " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " Field required [type=missing, input_value={'type': 'keypress'}, input_type=dict]\n", " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", "action.ActionDoubleClick.type\n", " Input should be 'double_click' [type=literal_error, input_value='keypress', input_type=str]\n", " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", "action.ActionDoubleClick.x\n", - " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " Field required [type=missing, input_value={'type': 'keypress'}, input_type=dict]\n", " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", "action.ActionDoubleClick.y\n", - " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " Field required [type=missing, input_value={'type': 'keypress'}, input_type=dict]\n", " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", "action.ActionDrag.path\n", - " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " Field required [type=missing, input_value={'type': 'keypress'}, input_type=dict]\n", " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", "action.ActionDrag.type\n", " Input should be 'drag' [type=literal_error, input_value='keypress', input_type=str]\n", " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", "action.ActionKeypress.keys\n", - " Input should be a valid list [type=list_type, input_value='Tab', input_type=str]\n", - " For further information visit https://errors.pydantic.dev/2.11/v/list_type\n", + " Field required [type=missing, input_value={'type': 'keypress'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", "action.ActionMove.type\n", " Input should be 'move' [type=literal_error, input_value='keypress', input_type=str]\n", " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", "action.ActionMove.x\n", - " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " Field required [type=missing, input_value={'type': 'keypress'}, input_type=dict]\n", " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", "action.ActionMove.y\n", - " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " Field required [type=missing, input_value={'type': 'keypress'}, input_type=dict]\n", " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", "action.ActionScreenshot.type\n", " Input should be 'screenshot' [type=literal_error, input_value='keypress', input_type=str]\n", " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", "action.ActionScroll.scroll_x\n", - " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " Field required [type=missing, input_value={'type': 'keypress'}, input_type=dict]\n", " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", "action.ActionScroll.scroll_y\n", - " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " Field required [type=missing, input_value={'type': 'keypress'}, input_type=dict]\n", " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", "action.ActionScroll.type\n", " Input should be 'scroll' [type=literal_error, input_value='keypress', input_type=str]\n", " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", "action.ActionScroll.x\n", - " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " Field required [type=missing, input_value={'type': 'keypress'}, input_type=dict]\n", " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", "action.ActionScroll.y\n", - " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " Field required [type=missing, input_value={'type': 'keypress'}, input_type=dict]\n", " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", "action.ActionType.text\n", - " Field required [type=missing, input_value={'keys': 'Tab', 'type': 'keypress'}, input_type=dict]\n", + " Field required [type=missing, input_value={'type': 'keypress'}, input_type=dict]\n", " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", "action.ActionType.type\n", " Input should be 'type' [type=literal_error, input_value='keypress', input_type=str]\n", @@ -369,79 +1778,378 @@ " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 392, 'y': 324}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 392, 'y': 324}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 392, 'y': 324}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 392, 'y': 324}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 392, 'y': 324}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 392, 'y': 324}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", " \"error\": {\n", - " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_f7a393a984e7e85dc5845aef8a9471e4 in your message.\",\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_07880876182adfd1c9fb8af49840fbe5 in your message.\",\n", " \"type\": \"model_error\",\n", " \"param\": null,\n", " \"code\": null\n", " }\n", "}\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_171c97f391507972db1c8b55b0026d80 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_fa514903703f38c748dcde9605a6dbe1 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_e8ba77d8c521643a7b0789e416e80f98 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", + "Step failed: 20 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 3, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionClick.x\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 3, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.y\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 3, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.x\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 3, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.y\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 3, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 3, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 3, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.x\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 3, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.y\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 3, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.x\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 3, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.y\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 3, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y': 3, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Step failed: 21 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Step failed: litellm.InternalServerError: AnthropicError - {\"type\":\"error\",\"error\":{\"type\":\"overloaded_error\",\"message\":\"Overloaded\"},\"request_id\":null}\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Client is not running, cannot disconnect\n", - "Client is not running, cannot disconnect\n", - "Client is not running, cannot disconnect\n", - "Client is not running, cannot disconnect\n", - "Client is not running, cannot disconnect\n", - "Client is not running, cannot disconnect\n", - "Client is not running, cannot disconnect\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Got 502 from https://mcp.hud.so/v3/mcp, retrying in 1.0s (attempt 1/3)\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 22 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'keys': ['ctrl'], 'type': 'keyrelease'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='keyrelease', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionClick.x\n", + " Field required [type=missing, input_value={'keys': ['ctrl'], 'type': 'keyrelease'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.y\n", + " Field required [type=missing, input_value={'keys': ['ctrl'], 'type': 'keyrelease'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='keyrelease', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.x\n", + " Field required [type=missing, input_value={'keys': ['ctrl'], 'type': 'keyrelease'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.y\n", + " Field required [type=missing, input_value={'keys': ['ctrl'], 'type': 'keyrelease'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'keys': ['ctrl'], 'type': 'keyrelease'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='keyrelease', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='keyrelease', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='keyrelease', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.x\n", + " Field required [type=missing, input_value={'keys': ['ctrl'], 'type': 'keyrelease'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.y\n", + " Field required [type=missing, input_value={'keys': ['ctrl'], 'type': 'keyrelease'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='keyrelease', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'keys': ['ctrl'], 'type': 'keyrelease'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'keys': ['ctrl'], 'type': 'keyrelease'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='keyrelease', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.x\n", + " Field required [type=missing, input_value={'keys': ['ctrl'], 'type': 'keyrelease'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.y\n", + " Field required [type=missing, input_value={'keys': ['ctrl'], 'type': 'keyrelease'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'keys': ['ctrl'], 'type': 'keyrelease'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='keyrelease', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='keyrelease', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_0b1bc25b68c7036363abf9252af6f4fe in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_e37cd4c1d34010ee9ec8a5e8c5de4336 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 20 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y... -300, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionClick.x\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y... -300, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.y\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y... -300, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.x\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y... -300, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.y\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y... -300, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y... -300, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y... -300, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.x\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y... -300, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.y\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y... -300, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.x\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y... -300, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.y\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y... -300, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y... -300, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", @@ -451,45 +2159,2776 @@ "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", - "Error parsing JSON response\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\dillo\\miniconda3\\envs\\cua\\Lib\\site-packages\\mcp\\client\\streamable_http.py\", line 310, in _handle_json_response\n", - " await read_stream_writer.send(session_message)\n", - " File \"c:\\Users\\dillo\\miniconda3\\envs\\cua\\Lib\\site-packages\\anyio\\streams\\memory.py\", line 242, in send\n", - " self.send_nowait(item)\n", - " File \"c:\\Users\\dillo\\miniconda3\\envs\\cua\\Lib\\site-packages\\anyio\\streams\\memory.py\", line 211, in send_nowait\n", - " raise ClosedResourceError\n", - "anyio.ClosedResourceError\n", - "Request handler error: \n", - "Failed to close auto-created client: \n", - "Error parsing JSON response\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\dillo\\miniconda3\\envs\\cua\\Lib\\site-packages\\mcp\\client\\streamable_http.py\", line 310, in _handle_json_response\n", - " await read_stream_writer.send(session_message)\n", - " File \"c:\\Users\\dillo\\miniconda3\\envs\\cua\\Lib\\site-packages\\anyio\\streams\\memory.py\", line 242, in send\n", - " self.send_nowait(item)\n", - " File \"c:\\Users\\dillo\\miniconda3\\envs\\cua\\Lib\\site-packages\\anyio\\streams\\memory.py\", line 211, in send_nowait\n", - " raise ClosedResourceError\n", - "anyio.ClosedResourceError\n", - "Request handler error: \n", - "Failed to close auto-created client: \n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_30c460b92c1dd64f81cc1fd271bb3802 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_d66d2a19da572b66de44e59b2777fd40 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Got 502 from https://mcp.hud.so/v3/mcp, retrying in 1.0s (attempt 1/3)\n", + "Step failed: 21 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.x\n", + " Field required [type=missing, input_value={'type': 'click', 'button': 'left'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.y\n", + " Field required [type=missing, input_value={'type': 'click', 'button': 'left'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.x\n", + " Field required [type=missing, input_value={'type': 'click', 'button': 'left'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.y\n", + " Field required [type=missing, input_value={'type': 'click', 'button': 'left'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'click', 'button': 'left'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'click', 'button': 'left'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.x\n", + " Field required [type=missing, input_value={'type': 'click', 'button': 'left'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.y\n", + " Field required [type=missing, input_value={'type': 'click', 'button': 'left'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'click', 'button': 'left'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'click', 'button': 'left'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.x\n", + " Field required [type=missing, input_value={'type': 'click', 'button': 'left'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.y\n", + " Field required [type=missing, input_value={'type': 'click', 'button': 'left'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'click', 'button': 'left'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_407ca9ac6cc60cf2528ab26d0ebb216a in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 14 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 650, 'y': 137}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 650, 'y': 137}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 650, 'y': 137}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 650, 'y': 137}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 650, 'y': 137}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_eebc630287ffdc99505d68ec452a99a5 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 458, 'y': 285}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 458, 'y': 285}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 458, 'y': 285}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 458, 'y': 285}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 458, 'y': 285}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 458, 'y': 285}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 24, 'y': 370}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 24, 'y': 370}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 24, 'y': 370}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 24, 'y': 370}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 24, 'y': 370}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 24, 'y': 370}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 24, 'y': 370}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 24, 'y': 370}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScreenshot.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 24, 'y': 370}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 24, 'y': 370}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 24, 'y': 370}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 24, 'y': 370}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 24, 'y': 370}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 24, 'y': 370}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionWait.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 24, 'y': 370}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 987, 'y': 170}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 987, 'y': 170}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 987, 'y': 170}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 987, 'y': 170}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 987, 'y': 170}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 987, 'y': 170}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 614, 'y': 35}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 614, 'y': 35}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 614, 'y': 35}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 614, 'y': 35}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 614, 'y': 35}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 614, 'y': 35}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 22 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'exit', 'text': 'exit'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='exit', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionClick.x\n", + " Field required [type=missing, input_value={'type': 'exit', 'text': 'exit'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.y\n", + " Field required [type=missing, input_value={'type': 'exit', 'text': 'exit'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='exit', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.x\n", + " Field required [type=missing, input_value={'type': 'exit', 'text': 'exit'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.y\n", + " Field required [type=missing, input_value={'type': 'exit', 'text': 'exit'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'exit', 'text': 'exit'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='exit', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'exit', 'text': 'exit'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='exit', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='exit', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.x\n", + " Field required [type=missing, input_value={'type': 'exit', 'text': 'exit'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.y\n", + " Field required [type=missing, input_value={'type': 'exit', 'text': 'exit'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='exit', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'exit', 'text': 'exit'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'exit', 'text': 'exit'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='exit', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.x\n", + " Field required [type=missing, input_value={'type': 'exit', 'text': 'exit'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.y\n", + " Field required [type=missing, input_value={'type': 'exit', 'text': 'exit'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='exit', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='exit', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_5c53aa95e64ab70c42813298eb1ec717 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_7ff64c904c8f3851b67717462bfd152f in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_40eae6ea4e0389d5feb6b124f3d12bd1 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Unclosed client session\n", + "client_session: \n", + "Unclosed client session\n", + "client_session: \n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_5274aa770c5dfdd785fda4df6da6b9de in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 647, 'y': 268}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 647, 'y': 268}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 647, 'y': 268}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 647, 'y': 268}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 647, 'y': 268}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 647, 'y': 268}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_ace80396f01199cf1f7b2959db30828f in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_d3fc36b25719a4310c4ef00ee9fb80e2 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 893, 'y': 220}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 893, 'y': 220}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 893, 'y': 220}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 893, 'y': 220}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 893, 'y': 220}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 893, 'y': 220}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 14 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 529, 'y': 242}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 529, 'y': 242}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 529, 'y': 242}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 529, 'y': 242}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 529, 'y': 242}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Got 502 from https://mcp.hud.so/v3/mcp, retrying in 1.0s (attempt 1/3)\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.APIConnectionError: AnthropicException - Cloudflare encountered an error processing this request: Bad Gateway\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_69e1e17a074f2106e7d9f550d06f2129 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 542, 'y': 397}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 542, 'y': 397}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 542, 'y': 397}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 542, 'y': 397}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 542, 'y': 397}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 542, 'y': 397}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_e4cfa4d5e4d1c7a29abf1e99bdf13d4c in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 14 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ick', 'x': 266, 'y': 65}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ick', 'x': 266, 'y': 65}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ick', 'x': 266, 'y': 65}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ick', 'x': 266, 'y': 65}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ick', 'x': 266, 'y': 65}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_0de88e377d3e016333e75cbb721467d5 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_6a72d8198557e585b311fc2f574c06ae in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_565b6f653b140a9f9616812bca9bede4 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 21 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: AnthropicException - {\"type\":\"error\",\"error\":{\"type\":\"api_error\",\"message\":\"Internal server error\"},\"request_id\":\"req_011CSZXyZhhMMUkqx5Rn49nH\"}. Handle with `litellm.InternalServerError`.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_ca61663ebdf6a23abe76f8a623e9cba7 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_19b4c7cbfd607aceb64225a211bcb63c in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 21 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_f5a55c799f314865c754e9ef2085d6aa in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 566, 'y': 106}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 566, 'y': 106}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 566, 'y': 106}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 566, 'y': 106}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 566, 'y': 106}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 566, 'y': 106}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_75d03c61c6f4b25a20022c405da92f3e in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.ServiceUnavailableError: AnthropicException - upstream connect error or disconnect/reset before headers. reset reason: connection termination. Handle with `litellm.ServiceUnavailableError`.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 14 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 449, 'y': 287}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 449, 'y': 287}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 449, 'y': 287}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 449, 'y': 287}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 449, 'y': 287}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_864eb3e72deacbac1273d63ec1300d63 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_6e9676b4bf46acb690f7f03e5000c774 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 318, 'y': 428}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 318, 'y': 428}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 318, 'y': 428}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 318, 'y': 428}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 318, 'y': 428}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 318, 'y': 428}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 21 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 14 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ick', 'x': 489, 'y': 37}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ick', 'x': 489, 'y': 37}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ick', 'x': 489, 'y': 37}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ick', 'x': 489, 'y': 37}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ick', 'x': 489, 'y': 37}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_aff343428a6d53531e2e7e53961a08a1 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 264, 'y': 458}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 264, 'y': 458}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 264, 'y': 458}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 264, 'y': 458}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 264, 'y': 458}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 264, 'y': 458}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_62d62a7d978a743da6e34251ab321b6b in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_91ef10c85551d3461eb078f9a9fab016 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 307, 'y': 231}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 307, 'y': 231}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 307, 'y': 231}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 307, 'y': 231}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 307, 'y': 231}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 307, 'y': 231}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_d34610618a89b212bd65cab09d37ffce in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_e0724c94603820eeee26337000c7f280 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_d5e422c31b3ba5e42c1693877282b13c in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Got 502 from https://mcp.hud.so/v3/mcp, retrying in 1.0s (attempt 1/3)\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Got 502 from https://mcp.hud.so/v3/mcp, retrying in 1.0s (attempt 1/3)\n", + "Step failed: 14 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 263, 'y': 351}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 263, 'y': 351}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 263, 'y': 351}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 263, 'y': 351}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 263, 'y': 351}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: OpenAIException - \n", + "\n", + "\n", + "\n", + " \n", + "\n", + "\n", + "\n", + "api.openai.com | 520: Web server is returning an unknown error\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
\n", + "
\n", + "
\n", + "

\n", + " Web server is returning an unknown error\n", + " Error code 520\n", + "

\n", + "
\n", + " Visit cloudflare.com for more information.\n", + "
\n", + "
2025-08-28 06:05:09 UTC
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + "
\n", + " You\n", + "

\n", + " \n", + " Browser\n", + " \n", + "

\n", + " Working\n", + "
\n", + "\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + "
\n", + " Boston\n", + "

\n", + " \n", + " Cloudflare\n", + " \n", + "

\n", + " Working\n", + "
\n", + "\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + "
\n", + " api.openai.com\n", + "

\n", + " \n", + " Host\n", + " \n", + "

\n", + " Error\n", + "
\n", + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "
\n", + "
\n", + "
\n", + "

What happened?

\n", + "

There is an unknown connection issue between Cloudflare and the origin web server. As a result, the web page can not be displayed.

\n", + "
\n", + "
\n", + "

What can I do?

\n", + "

If you are a visitor of this website:

\n", + "

Please try again in a few minutes.

\n", + "\n", + "

If you are the owner of this website:

\n", + "

There is an issue between Cloudflare's cache and your origin web server. Cloudflare monitors for these errors and automatically investigates the cause. To help support the investigation, you can pull the corresponding error log from your web server and submit it our support team. Please include the Ray ID (which is at the bottom of this error page). Additional troubleshooting resources.

\n", + "
\n", + "
\n", + "
\n", + "\n", + " \n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "\n", + "\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_731a2b625462c9d2d582d1053510b6d7 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_ff2d8a59b90db337014147e1d007bd48 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 20 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y... -800, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionClick.x\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y... -800, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.y\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y... -800, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.x\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y... -800, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.y\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y... -800, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y... -800, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y... -800, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.x\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y... -800, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.y\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y... -800, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.x\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y... -800, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.y\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y... -800, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'scroll_x': 0, 'scroll_y... -800, 'type': 'scroll'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='scroll', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 14 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 710, 'y': 429}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 710, 'y': 429}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 710, 'y': 429}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 710, 'y': 429}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 710, 'y': 429}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_a0d2cc3868d537a5f9fbe2594ff3111b in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 624, 'y': 364}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 624, 'y': 364}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 624, 'y': 364}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 624, 'y': 364}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 624, 'y': 364}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 624, 'y': 364}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 14 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 654, 'y': 136}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 654, 'y': 136}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 654, 'y': 136}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 654, 'y': 136}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 654, 'y': 136}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 510, 'y': 372}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 510, 'y': 372}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 510, 'y': 372}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 510, 'y': 372}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 510, 'y': 372}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 510, 'y': 372}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 21 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 23 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'action': ''}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Field required [type=missing, input_value={'action': ''}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.x\n", + " Field required [type=missing, input_value={'action': ''}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.y\n", + " Field required [type=missing, input_value={'action': ''}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.type\n", + " Field required [type=missing, input_value={'action': ''}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.x\n", + " Field required [type=missing, input_value={'action': ''}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.y\n", + " Field required [type=missing, input_value={'action': ''}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'action': ''}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Field required [type=missing, input_value={'action': ''}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'action': ''}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Field required [type=missing, input_value={'action': ''}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.type\n", + " Field required [type=missing, input_value={'action': ''}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.x\n", + " Field required [type=missing, input_value={'action': ''}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.y\n", + " Field required [type=missing, input_value={'action': ''}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScreenshot.type\n", + " Field required [type=missing, input_value={'action': ''}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'action': ''}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'action': ''}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Field required [type=missing, input_value={'action': ''}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.x\n", + " Field required [type=missing, input_value={'action': ''}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.y\n", + " Field required [type=missing, input_value={'action': ''}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'action': ''}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Field required [type=missing, input_value={'action': ''}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionWait.type\n", + " Field required [type=missing, input_value={'action': ''}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_7cede1574442edf20721264e92def0e5 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_01ffb88ba8ce9674981142a95e74d761 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_66612b5bdb381864a8d969606cef24ae in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_8e8f0499e19ab802c3bb846c1760b91f in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 373, 'y': 390}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 373, 'y': 390}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 373, 'y': 390}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 373, 'y': 390}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 373, 'y': 390}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 373, 'y': 390}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 373, 'y': 390}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 373, 'y': 390}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScreenshot.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 373, 'y': 390}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 373, 'y': 390}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 373, 'y': 390}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 373, 'y': 390}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 373, 'y': 390}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 373, 'y': 390}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionWait.type\n", + " Field required [type=missing, input_value={'click': 'left', 'x': 373, 'y': 390}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_94e02af05e07b713a323768e11e50240 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_c1976117ae2105b15f03270251e60d7e in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 282, 'y': 274}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 282, 'y': 274}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 282, 'y': 274}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 282, 'y': 274}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 282, 'y': 274}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 282, 'y': 274}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool execution failed: Tool call failed: (-32600, 'Invalid Request')\n", + "Evaluation phase failed: [MCPToolResult(meta=None, content=[TextContent(type='text', text=\"Tool call failed: (-32600, 'Invalid Request')\", annotations=None, meta=None)], structuredContent=None, isError=True)]\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_e75ae0b9d7688b63d8b19a90bc12c66f in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_213c31db0a325578b61cc609a035fe6c in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 474, 'y': 434}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 474, 'y': 434}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 474, 'y': 434}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 474, 'y': 434}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 474, 'y': 434}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 474, 'y': 434}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 14 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ick', 'x': 217, 'y': 66}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ick', 'x': 217, 'y': 66}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ick', 'x': 217, 'y': 66}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ick', 'x': 217, 'y': 66}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ick', 'x': 217, 'y': 66}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_b18b0c5c4b7fa1ecdf2a38138795e4db in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 14 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 462, 'y': 129}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 462, 'y': 129}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 462, 'y': 129}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 462, 'y': 129}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 462, 'y': 129}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 14 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 462, 'y': 424}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 462, 'y': 424}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 462, 'y': 424}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 462, 'y': 424}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 462, 'y': 424}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 271, 'y': 234}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 271, 'y': 234}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 271, 'y': 234}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 271, 'y': 234}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 271, 'y': 234}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 271, 'y': 234}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 407, 'y': 397}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 407, 'y': 397}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 407, 'y': 397}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 407, 'y': 397}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 407, 'y': 397}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 407, 'y': 397}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 360, 'y': 200}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 360, 'y': 200}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 360, 'y': 200}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 360, 'y': 200}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 360, 'y': 200}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 360, 'y': 200}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 15 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.button\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 881, 'y': 579}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 881, 'y': 579}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 881, 'y': 579}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 881, 'y': 579}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 881, 'y': 579}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'type': 'triple_click', 'x': 881, 'y': 579}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 14 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 444, 'y': 472}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 444, 'y': 472}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 444, 'y': 472}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 444, 'y': 472}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 444, 'y': 472}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 14 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.type\n", + " Input should be 'click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 536, 'y': 240}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 536, 'y': 240}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 536, 'y': 240}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 536, 'y': 240}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'type'...ck', 'x': 536, 'y': 240}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='triple_click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_99932258b791a5b87203ab08daabc63d in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: 21 validation errors for ResponseComputerToolCall\n", + "action.ActionClick.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionClick.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.type\n", + " Input should be 'double_click' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionDoubleClick.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDoubleClick.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.path\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionDrag.type\n", + " Input should be 'drag' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionKeypress.keys\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionKeypress.type\n", + " Input should be 'keypress' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.type\n", + " Input should be 'move' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionMove.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionMove.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScreenshot.type\n", + " Input should be 'screenshot' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.scroll_x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.scroll_y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.type\n", + " Input should be 'scroll' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionScroll.x\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionScroll.y\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.text\n", + " Field required [type=missing, input_value={'button': 'left', 'type': 'click'}, input_type=dict]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/missing\n", + "action.ActionType.type\n", + " Input should be 'type' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "action.ActionWait.type\n", + " Input should be 'wait' [type=literal_error, input_value='click', input_type=str]\n", + " For further information visit https://errors.pydantic.dev/2.11/v/literal_error\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_362f0f22e6cf3e4d7b4beb474c63be5e in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: [Errno 28] No space left on device\n", + "Step failed: [Errno 28] No space left on device\n", + "Step failed: [Errno 28] No space left on device\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: [Errno 28] No space left on device\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: [Errno 28] No space left on device\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: litellm.InternalServerError: InternalServerError: OpenAIException - {\n", + " \"error\": {\n", + " \"message\": \"An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_bd3347660b6e1902a36bbdbb20874e62 in your message.\",\n", + " \"type\": \"model_error\",\n", + " \"param\": null,\n", + " \"code\": null\n", + " }\n", + "}\n", + "Step failed: [Errno 28] No space left on device\n", + "Step failed: [Errno 28] No space left on device\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: [Errno 28] No space left on device\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", + "Step failed: [Errno 28] No space left on device\n", + "Step failed: [Errno 28] No space left on device: 'trajectories\\\\osworld_95557e\\\\2025-08-28_open_claude-opus-4-20_032836_c76d\\\\turn_000\\\\0002_agent_response.json'\n", + "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n", "Tool evaluate has an output schema but did not return structured content. Continuing without structured content validation.\n" ] }, { - "ename": "CancelledError", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mCancelledError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[7], line 14\u001b[0m\n\u001b[0;32m 11\u001b[0m job_uuid \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mstr\u001b[39m(uuid\u001b[38;5;241m.\u001b[39muuid4())[:\u001b[38;5;241m6\u001b[39m]\n\u001b[0;32m 12\u001b[0m job_name \u001b[38;5;241m=\u001b[39m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mosworld \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mjob_uuid\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mmodel\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m---> 14\u001b[0m results \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m run_full_dataset(\n\u001b[0;32m 15\u001b[0m dataset\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhud-evals/OSWorld-Verified-XLang\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 16\u001b[0m job_name\u001b[38;5;241m=\u001b[39mjob_name, \n\u001b[0;32m 17\u001b[0m model\u001b[38;5;241m=\u001b[39mmodel,\n\u001b[0;32m 18\u001b[0m max_concurrent\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m30\u001b[39m, \n\u001b[0;32m 19\u001b[0m max_steps\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m75\u001b[39m,\n\u001b[0;32m 20\u001b[0m trajectory_dir\u001b[38;5;241m=\u001b[39m\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtrajectories/osworld_\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mjob_uuid\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 21\u001b[0m )\n\u001b[0;32m 23\u001b[0m \u001b[38;5;66;03m# results is a list from hud.datasets.run_dataset; inspect/aggregate as needed\u001b[39;00m\n\u001b[0;32m 24\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mJob: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mjob_name\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n", - "File \u001b[1;32mF:\\Projects\\cua\\cua-clean\\libs\\python\\agent\\agent\\integrations\\hud\\__init__.py:134\u001b[0m, in \u001b[0;36mrun_full_dataset\u001b[1;34m(dataset, job_name, model, allowed_tools, max_concurrent, max_steps, split, trajectory_dir)\u001b[0m\n\u001b[0;32m 131\u001b[0m job_name \u001b[38;5;241m=\u001b[39m job_name \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mEvaluation \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mtime\u001b[38;5;241m.\u001b[39mstrftime(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m%\u001b[39m\u001b[38;5;124mH:\u001b[39m\u001b[38;5;124m%\u001b[39m\u001b[38;5;124mM \u001b[39m\u001b[38;5;124m%\u001b[39m\u001b[38;5;124mY-\u001b[39m\u001b[38;5;124m%\u001b[39m\u001b[38;5;124mm-\u001b[39m\u001b[38;5;132;01m%d\u001b[39;00m\u001b[38;5;124m'\u001b[39m)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 133\u001b[0m \u001b[38;5;66;03m# Execute evaluation\u001b[39;00m\n\u001b[1;32m--> 134\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m run_dataset(\n\u001b[0;32m 135\u001b[0m name\u001b[38;5;241m=\u001b[39mjob_name,\n\u001b[0;32m 136\u001b[0m dataset\u001b[38;5;241m=\u001b[39mdataset,\n\u001b[0;32m 137\u001b[0m agent_class\u001b[38;5;241m=\u001b[39mProxyOperatorAgent,\n\u001b[0;32m 138\u001b[0m agent_config\u001b[38;5;241m=\u001b[39m{\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmodel\u001b[39m\u001b[38;5;124m\"\u001b[39m: model, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mallowed_tools\u001b[39m\u001b[38;5;124m\"\u001b[39m: allowed_tools, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtrajectory_dir\u001b[39m\u001b[38;5;124m\"\u001b[39m: trajectory_dir},\n\u001b[0;32m 139\u001b[0m max_concurrent\u001b[38;5;241m=\u001b[39mmax_concurrent,\n\u001b[0;32m 140\u001b[0m metadata\u001b[38;5;241m=\u001b[39m{\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdataset\u001b[39m\u001b[38;5;124m\"\u001b[39m: dataset_name},\n\u001b[0;32m 141\u001b[0m max_steps\u001b[38;5;241m=\u001b[39mmax_steps,\n\u001b[0;32m 142\u001b[0m auto_respond\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[0;32m 143\u001b[0m )\n", - "File \u001b[1;32mc:\\Users\\dillo\\miniconda3\\envs\\cua\\Lib\\site-packages\\hud\\datasets.py:262\u001b[0m, in \u001b[0;36mrun_dataset\u001b[1;34m(name, dataset, agent_class, agent_config, max_concurrent, metadata, max_steps, split, auto_respond, custom_system_prompt)\u001b[0m\n\u001b[0;32m 259\u001b[0m results[index] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m agent\u001b[38;5;241m.\u001b[39mrun(task, max_steps\u001b[38;5;241m=\u001b[39mmax_steps)\n\u001b[0;32m 261\u001b[0m \u001b[38;5;66;03m# Execute all tasks\u001b[39;00m\n\u001b[1;32m--> 262\u001b[0m \u001b[38;5;28;01mawait\u001b[39;00m asyncio\u001b[38;5;241m.\u001b[39mgather(\n\u001b[0;32m 263\u001b[0m \u001b[38;5;241m*\u001b[39m[_worker(i, task, max_steps\u001b[38;5;241m=\u001b[39mmax_steps) \u001b[38;5;28;01mfor\u001b[39;00m i, task \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(dataset)],\n\u001b[0;32m 264\u001b[0m return_exceptions\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m, \u001b[38;5;66;03m# Don't fail entire batch on one error\u001b[39;00m\n\u001b[0;32m 265\u001b[0m )\n\u001b[0;32m 267\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m results\n", - "File \u001b[1;32mc:\\Users\\dillo\\miniconda3\\envs\\cua\\Lib\\site-packages\\hud\\datasets.py:246\u001b[0m, in \u001b[0;36mrun_dataset.._worker\u001b[1;34m(index, task_dict, max_steps)\u001b[0m\n\u001b[0;32m 245\u001b[0m \u001b[38;5;28;01masync\u001b[39;00m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21m_worker\u001b[39m(index: \u001b[38;5;28mint\u001b[39m, task_dict: Any, max_steps: \u001b[38;5;28mint\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m40\u001b[39m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m--> 246\u001b[0m \u001b[38;5;28;01masync\u001b[39;00m \u001b[38;5;28;01mwith\u001b[39;00m sem:\n\u001b[0;32m 247\u001b[0m \u001b[38;5;66;03m# Create trace for this task\u001b[39;00m\n\u001b[0;32m 248\u001b[0m task_name \u001b[38;5;241m=\u001b[39m task_dict\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mprompt\u001b[39m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTask \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mindex\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 249\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msystem_prompt\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m task_dict:\n", - "File \u001b[1;32mc:\\Users\\dillo\\miniconda3\\envs\\cua\\Lib\\asyncio\\locks.py:14\u001b[0m, in \u001b[0;36m_ContextManagerMixin.__aenter__\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 13\u001b[0m \u001b[38;5;28;01masync\u001b[39;00m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21m__aenter__\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[1;32m---> 14\u001b[0m \u001b[38;5;28;01mawait\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39macquire()\n\u001b[0;32m 15\u001b[0m \u001b[38;5;66;03m# We have no use for the \"as ...\" clause in the with\u001b[39;00m\n\u001b[0;32m 16\u001b[0m \u001b[38;5;66;03m# statement for locks.\u001b[39;00m\n\u001b[0;32m 17\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n", - "File \u001b[1;32mc:\\Users\\dillo\\miniconda3\\envs\\cua\\Lib\\asyncio\\locks.py:386\u001b[0m, in \u001b[0;36mSemaphore.acquire\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 384\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m 385\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 386\u001b[0m \u001b[38;5;28;01mawait\u001b[39;00m fut\n\u001b[0;32m 387\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[0;32m 388\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_waiters\u001b[38;5;241m.\u001b[39mremove(fut)\n", - "\u001b[1;31mCancelledError\u001b[0m: " + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\u001b[92m✓ Job 'osworld 95557e openai/computer-use-preview+anthropic/claude-opus-4-20250514' complete!\u001b[0m \u001b[2mView all results at:\u001b[0m \u001b[1m\u001b[33mhttps://app.hud.so/jobs/fe05805d-4da9-4fc6-84b5-5c518528fd3c\u001b[0m\n", + "\n", + "Job: osworld 95557e openai/computer-use-preview+anthropic/claude-opus-4-20250514\n", + "Total results: 369\n" ] } ], From e90997c4ff5ced5072bd6ba70a8a05b3ad63ffb3 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Thu, 28 Aug 2025 13:18:17 -0400 Subject: [PATCH 049/103] Added screenshot_dir and lazy loading of MLX --- .../agent/agent/adapters/mlxvlm_adapter.py | 5 +- libs/python/agent/agent/agent.py | 8 +- .../agent/agent/callbacks/trajectory_saver.py | 88 +++++++++++++++++-- .../agent/agent/integrations/hud/__init__.py | 6 +- 4 files changed, 95 insertions(+), 12 deletions(-) diff --git a/libs/python/agent/agent/adapters/mlxvlm_adapter.py b/libs/python/agent/agent/adapters/mlxvlm_adapter.py index c38f4ad6..8255725b 100644 --- a/libs/python/agent/agent/adapters/mlxvlm_adapter.py +++ b/libs/python/agent/agent/adapters/mlxvlm_adapter.py @@ -78,8 +78,6 @@ class MLXVLMAdapter(CustomLLM): **kwargs: Additional arguments """ super().__init__() - if not MLX_AVAILABLE: - raise ImportError("MLX VLM dependencies not available. Please install mlx-vlm.") self.models = {} # Cache for loaded models self.processors = {} # Cache for loaded processors @@ -95,6 +93,9 @@ class MLXVLMAdapter(CustomLLM): Returns: Tuple of (model, processor, config) """ + if not MLX_AVAILABLE: + raise ImportError("MLX VLM dependencies not available. Please install mlx-vlm.") + if model_name not in self.models: # Load model and processor model_obj, processor = load( diff --git a/libs/python/agent/agent/agent.py b/libs/python/agent/agent/agent.py index 361a3549..f7ba6418 100644 --- a/libs/python/agent/agent/agent.py +++ b/libs/python/agent/agent/agent.py @@ -3,6 +3,7 @@ ComputerAgent - Main agent class that selects and runs agent loops """ import asyncio +from pathlib import Path from typing import Dict, List, Any, Optional, AsyncGenerator, Union, cast, Callable, Set, Tuple from litellm.responses.utils import Usage @@ -162,7 +163,7 @@ class ComputerAgent: only_n_most_recent_images: Optional[int] = None, callbacks: Optional[List[Any]] = None, verbosity: Optional[int] = None, - trajectory_dir: Optional[str] = None, + trajectory_dir: Optional[str | Path | dict] = None, max_retries: Optional[int] = 3, screenshot_delay: Optional[float | int] = 0.5, use_prompt_caching: Optional[bool] = False, @@ -223,7 +224,10 @@ class ComputerAgent: # Add trajectory saver callback if trajectory_dir is set if self.trajectory_dir: - self.callbacks.append(TrajectorySaverCallback(self.trajectory_dir)) + if isinstance(self.trajectory_dir, dict): + self.callbacks.append(TrajectorySaverCallback(**self.trajectory_dir)) + elif isinstance(self.trajectory_dir, (str, Path)): + self.callbacks.append(TrajectorySaverCallback(str(self.trajectory_dir))) # Add budget manager if max_trajectory_budget is set if max_trajectory_budget: diff --git a/libs/python/agent/agent/callbacks/trajectory_saver.py b/libs/python/agent/agent/callbacks/trajectory_saver.py index 53e4c189..a65722aa 100644 --- a/libs/python/agent/agent/callbacks/trajectory_saver.py +++ b/libs/python/agent/agent/callbacks/trajectory_saver.py @@ -11,6 +11,8 @@ from pathlib import Path from typing import List, Dict, Any, Optional, Union, override from PIL import Image, ImageDraw import io +from copy import deepcopy + from .base import AsyncCallbackHandler def sanitize_image_urls(data: Any) -> Any: @@ -43,6 +45,64 @@ def sanitize_image_urls(data: Any) -> Any: return data +def extract_computer_call_outputs(items: List[Dict[str, Any]], screenshot_dir: Optional[Path]) -> List[Dict[str, Any]]: + """ + Save any base64-encoded screenshots from computer_call_output entries to files and + replace their image_url with the saved file path when a call_id is present. + + Only operates if screenshot_dir is provided and exists; otherwise returns items unchanged. + + Args: + items: List of message/result dicts potentially containing computer_call_output entries + screenshot_dir: Directory to write screenshots into + + Returns: + A new list with updated image_url fields when applicable. + """ + if not items: + return items + if not screenshot_dir or not screenshot_dir.exists(): + return items + + updated: List[Dict[str, Any]] = [] + for item in items: + # work on a shallow copy; deep copy nested 'output' if we modify it + msg = dict(item) + try: + if msg.get("type") == "computer_call_output": + call_id = msg.get("call_id") + output = msg.get("output", {}) + image_url = output.get("image_url") + if call_id and isinstance(image_url, str) and image_url.startswith("data:"): + # derive extension from MIME type e.g. data:image/png;base64, + try: + ext = image_url.split(";", 1)[0].split("/")[-1] + if not ext: + ext = "png" + except Exception: + ext = "png" + out_path = screenshot_dir / f"{call_id}.{ext}" + # write file if it doesn't exist + if not out_path.exists(): + try: + b64_payload = image_url.split(",", 1)[1] + img_bytes = base64.b64decode(b64_payload) + out_path.parent.mkdir(parents=True, exist_ok=True) + with open(out_path, "wb") as f: + f.write(img_bytes) + except Exception: + # if anything fails, skip modifying this message + pass + # update image_url to file path + new_output = dict(output) + new_output["image_url"] = str(out_path) + msg["output"] = new_output + except Exception: + # do not block on malformed entries; keep original + pass + updated.append(msg) + return updated + class TrajectorySaverCallback(AsyncCallbackHandler): """ Callback handler that saves agent trajectories to disk. @@ -51,7 +111,7 @@ class TrajectorySaverCallback(AsyncCallbackHandler): within the trajectory gets its own folder with screenshots and responses. """ - def __init__(self, trajectory_dir: str, reset_on_run: bool = True): + def __init__(self, trajectory_dir: str, reset_on_run: bool = True, screenshot_dir: Optional[str] = None): """ Initialize trajectory saver. @@ -67,10 +127,12 @@ class TrajectorySaverCallback(AsyncCallbackHandler): self.model: Optional[str] = None self.total_usage: Dict[str, Any] = {} self.reset_on_run = reset_on_run + # Optional directory to store extracted screenshots from metadata/new_items + self.screenshot_dir: Optional[Path] = Path(screenshot_dir) if screenshot_dir else None # Ensure trajectory directory exists self.trajectory_dir.mkdir(parents=True, exist_ok=True) - + def _get_turn_dir(self) -> Path: """Get the directory for the current turn.""" if not self.trajectory_id: @@ -139,12 +201,21 @@ class TrajectorySaverCallback(AsyncCallbackHandler): trajectory_path = self.trajectory_dir / self.trajectory_id trajectory_path.mkdir(parents=True, exist_ok=True) - # Save trajectory metadata + # Save trajectory metadata (optionally extract screenshots to screenshot_dir) + kwargs_to_save = kwargs.copy() + try: + if "messages" in kwargs_to_save: + kwargs_to_save["messages"] = extract_computer_call_outputs( + kwargs_to_save["messages"], self.screenshot_dir + ) + except Exception: + # If extraction fails, fall back to original messages + pass metadata = { "trajectory_id": self.trajectory_id, "created_at": str(uuid.uuid1().time), "status": "running", - "kwargs": kwargs, + "kwargs": kwargs_to_save, } with open(trajectory_path / "metadata.json", "w") as f: @@ -171,11 +242,18 @@ class TrajectorySaverCallback(AsyncCallbackHandler): metadata = {} # Update metadata with completion info + # Optionally extract screenshots from new_items before persisting + new_items_to_save = new_items + try: + new_items_to_save = extract_computer_call_outputs(new_items, self.screenshot_dir) + except Exception: + pass + metadata.update({ "status": "completed", "completed_at": str(uuid.uuid1().time), "total_usage": self.total_usage, - "new_items": new_items, + "new_items": new_items_to_save, "total_turns": self.current_turn }) diff --git a/libs/python/agent/agent/integrations/hud/__init__.py b/libs/python/agent/agent/integrations/hud/__init__.py index 21695026..0da87bfa 100644 --- a/libs/python/agent/agent/integrations/hud/__init__.py +++ b/libs/python/agent/agent/integrations/hud/__init__.py @@ -41,7 +41,7 @@ class ProxyOperatorAgent(OperatorAgent): *, model: str | None = None, allowed_tools: list[str] | None = None, - trajectory_dir: str | None = None, + trajectory_dir: str | dict | None = None, # === ComputerAgent kwargs === tools: list[Any] | None = None, custom_loop: Any | None = None, @@ -109,7 +109,7 @@ async def run_single_task( only_n_most_recent_images: int | None = None, callbacks: list[Any] | None = None, verbosity: int | None = None, - trajectory_dir: str | None = None, + trajectory_dir: str | dict | None = None, max_retries: int | None = 3, screenshot_delay: float | int = 0.5, use_prompt_caching: bool | None = False, @@ -167,7 +167,7 @@ async def run_full_dataset( max_concurrent: int = 30, max_steps: int = 50, split: str = "train", - trajectory_dir: str | None = None, + trajectory_dir: str | dict | None = None, # === ComputerAgent kwargs === tools: list[Any] | None = None, custom_loop: Any | None = None, From b7cbac31a0f4fbfbda262a42f02cf6873a852b37 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Thu, 28 Aug 2025 16:39:43 -0400 Subject: [PATCH 050/103] Added grounding model fallback --- libs/python/agent/agent/agent.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libs/python/agent/agent/agent.py b/libs/python/agent/agent/agent.py index f7ba6418..8d6279fb 100644 --- a/libs/python/agent/agent/agent.py +++ b/libs/python/agent/agent/agent.py @@ -253,6 +253,10 @@ class ComputerAgent: # == Initialize computer agent == + # If the loop is "human/human", we need to prefix a grounding model fallback + if self.agent_loop in ["human/human", "human"]: + self.agent_loop = "openai/computer-use-preview+human/human" + # Find the appropriate agent loop if custom_loop: self.agent_loop = custom_loop From 22160433051086f2945f6b94db89e29b6459d922 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Thu, 28 Aug 2025 16:50:38 -0400 Subject: [PATCH 051/103] Fixed bug in init --- libs/python/agent/agent/agent.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/python/agent/agent/agent.py b/libs/python/agent/agent/agent.py index 8d6279fb..8120109d 100644 --- a/libs/python/agent/agent/agent.py +++ b/libs/python/agent/agent/agent.py @@ -254,8 +254,8 @@ class ComputerAgent: # == Initialize computer agent == # If the loop is "human/human", we need to prefix a grounding model fallback - if self.agent_loop in ["human/human", "human"]: - self.agent_loop = "openai/computer-use-preview+human/human" + if model in ["human/human", "human"]: + model = "openai/computer-use-preview+human/human" # Find the appropriate agent loop if custom_loop: From 038ad4df10cbd43ffe431dae9096b482e053bca2 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Thu, 28 Aug 2025 16:55:28 -0400 Subject: [PATCH 052/103] Force default model for human-in-the-loop --- libs/python/agent/agent/agent.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libs/python/agent/agent/agent.py b/libs/python/agent/agent/agent.py index 8120109d..b796866d 100644 --- a/libs/python/agent/agent/agent.py +++ b/libs/python/agent/agent/agent.py @@ -188,7 +188,11 @@ class ComputerAgent: max_trajectory_budget: If set, adds BudgetManagerCallback to track usage costs and stop when budget is exceeded telemetry_enabled: If set, adds TelemetryCallback to track anonymized usage data. Enabled by default. **kwargs: Additional arguments passed to the agent loop - """ + """ + # If the loop is "human/human", we need to prefix a grounding model fallback + if model in ["human/human", "human"]: + model = "openai/computer-use-preview+human/human" + self.model = model self.tools = tools or [] self.custom_loop = custom_loop @@ -253,10 +257,6 @@ class ComputerAgent: # == Initialize computer agent == - # If the loop is "human/human", we need to prefix a grounding model fallback - if model in ["human/human", "human"]: - model = "openai/computer-use-preview+human/human" - # Find the appropriate agent loop if custom_loop: self.agent_loop = custom_loop From ab359f6d14a1df2e233876e02b23cbbaefe1c896 Mon Sep 17 00:00:00 2001 From: Andrei Onel Date: Thu, 28 Aug 2025 23:56:46 +0300 Subject: [PATCH 053/103] Added reference documentation for: libs/python/computer/computer/diorama_computer.py --- .../computer/computer/diorama_computer.py | 139 ++++++++++++++++++ 1 file changed, 139 insertions(+) diff --git a/libs/python/computer/computer/diorama_computer.py b/libs/python/computer/computer/diorama_computer.py index 2eee77f0..da67c72c 100644 --- a/libs/python/computer/computer/diorama_computer.py +++ b/libs/python/computer/computer/diorama_computer.py @@ -6,16 +6,35 @@ class DioramaComputer: A Computer-compatible proxy for Diorama that sends commands over the ComputerInterface. """ def __init__(self, computer, apps): + """ + Initialize the DioramaComputer with a computer instance and list of apps. + + Args: + computer: The computer instance to proxy commands through + apps: List of applications available in the diorama environment + """ self.computer = computer self.apps = apps self.interface = DioramaComputerInterface(computer, apps) self._initialized = False async def __aenter__(self): + """ + Async context manager entry point. + + Returns: + self: The DioramaComputer instance + """ self._initialized = True return self async def run(self): + """ + Initialize and run the DioramaComputer if not already initialized. + + Returns: + self: The DioramaComputer instance + """ if not self._initialized: await self.__aenter__() return self @@ -25,11 +44,31 @@ class DioramaComputerInterface: Diorama Interface proxy that sends diorama_cmds via the Computer's interface. """ def __init__(self, computer, apps): + """ + Initialize the DioramaComputerInterface. + + Args: + computer: The computer instance to send commands through + apps: List of applications available in the diorama environment + """ self.computer = computer self.apps = apps self._scene_size = None async def _send_cmd(self, action, arguments=None): + """ + Send a command to the diorama interface through the computer. + + Args: + action (str): The action/command to execute + arguments (dict, optional): Additional arguments for the command + + Returns: + The result from the diorama command execution + + Raises: + RuntimeError: If the computer interface is not initialized or command fails + """ arguments = arguments or {} arguments = {"app_list": self.apps, **arguments} # Use the computer's interface (must be initialized) @@ -42,6 +81,15 @@ class DioramaComputerInterface: return result.get("result") async def screenshot(self, as_bytes=True): + """ + Take a screenshot of the diorama scene. + + Args: + as_bytes (bool): If True, return image as bytes; if False, return PIL Image object + + Returns: + bytes or PIL.Image: Screenshot data in the requested format + """ from PIL import Image import base64 result = await self._send_cmd("screenshot") @@ -53,41 +101,122 @@ class DioramaComputerInterface: return img_bytes if as_bytes else img async def get_screen_size(self): + """ + Get the dimensions of the diorama scene. + + Returns: + dict: Dictionary containing 'width' and 'height' keys with pixel dimensions + """ if not self._scene_size: await self.screenshot(as_bytes=False) return {"width": self._scene_size[0], "height": self._scene_size[1]} async def move_cursor(self, x, y): + """ + Move the cursor to the specified coordinates. + + Args: + x (int): X coordinate to move cursor to + y (int): Y coordinate to move cursor to + """ await self._send_cmd("move_cursor", {"x": x, "y": y}) async def left_click(self, x=None, y=None): + """ + Perform a left mouse click at the specified coordinates or current cursor position. + + Args: + x (int, optional): X coordinate to click at. If None, clicks at current cursor position + y (int, optional): Y coordinate to click at. If None, clicks at current cursor position + """ await self._send_cmd("left_click", {"x": x, "y": y}) async def right_click(self, x=None, y=None): + """ + Perform a right mouse click at the specified coordinates or current cursor position. + + Args: + x (int, optional): X coordinate to click at. If None, clicks at current cursor position + y (int, optional): Y coordinate to click at. If None, clicks at current cursor position + """ await self._send_cmd("right_click", {"x": x, "y": y}) async def double_click(self, x=None, y=None): + """ + Perform a double mouse click at the specified coordinates or current cursor position. + + Args: + x (int, optional): X coordinate to double-click at. If None, clicks at current cursor position + y (int, optional): Y coordinate to double-click at. If None, clicks at current cursor position + """ await self._send_cmd("double_click", {"x": x, "y": y}) async def scroll_up(self, clicks=1): + """ + Scroll up by the specified number of clicks. + + Args: + clicks (int): Number of scroll clicks to perform upward. Defaults to 1 + """ await self._send_cmd("scroll_up", {"clicks": clicks}) async def scroll_down(self, clicks=1): + """ + Scroll down by the specified number of clicks. + + Args: + clicks (int): Number of scroll clicks to perform downward. Defaults to 1 + """ await self._send_cmd("scroll_down", {"clicks": clicks}) async def drag_to(self, x, y, duration=0.5): + """ + Drag from the current cursor position to the specified coordinates. + + Args: + x (int): X coordinate to drag to + y (int): Y coordinate to drag to + duration (float): Duration of the drag operation in seconds. Defaults to 0.5 + """ await self._send_cmd("drag_to", {"x": x, "y": y, "duration": duration}) async def get_cursor_position(self): + """ + Get the current cursor position. + + Returns: + dict: Dictionary containing the current cursor coordinates + """ return await self._send_cmd("get_cursor_position") async def type_text(self, text): + """ + Type the specified text at the current cursor position. + + Args: + text (str): The text to type + """ await self._send_cmd("type_text", {"text": text}) async def press_key(self, key): + """ + Press a single key. + + Args: + key: The key to press + """ await self._send_cmd("press_key", {"key": key}) async def hotkey(self, *keys): + """ + Press multiple keys simultaneously as a hotkey combination. + + Args: + *keys: Variable number of keys to press together. Can be Key enum instances or strings + + Raises: + ValueError: If any key is not a Key enum or string type + """ actual_keys = [] for key in keys: if isinstance(key, Key): @@ -101,4 +230,14 @@ class DioramaComputerInterface: await self._send_cmd("hotkey", {"keys": actual_keys}) async def to_screen_coordinates(self, x, y): + """ + Convert coordinates to screen coordinates. + + Args: + x (int): X coordinate to convert + y (int): Y coordinate to convert + + Returns: + dict: Dictionary containing the converted screen coordinates + """ return await self._send_cmd("to_screen_coordinates", {"x": x, "y": y}) From 4d6e611d73ac4bca8b2a2c1f1af7b13899b33cfc Mon Sep 17 00:00:00 2001 From: Andrei Onel Date: Thu, 28 Aug 2025 23:56:47 +0300 Subject: [PATCH 054/103] Added reference documentation for: libs/python/computer-server/computer_server/diorama/diorama_computer.py --- .../diorama/diorama_computer.py | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/libs/python/computer-server/computer_server/diorama/diorama_computer.py b/libs/python/computer-server/computer_server/diorama/diorama_computer.py index 4fc37b3f..c00bd86f 100644 --- a/libs/python/computer-server/computer_server/diorama/diorama_computer.py +++ b/libs/python/computer-server/computer_server/diorama/diorama_computer.py @@ -6,11 +6,26 @@ class DioramaComputer: Implements _initialized, run(), and __aenter__ for agent compatibility. """ def __init__(self, diorama): + """ + Initialize the DioramaComputer with a diorama instance. + + Args: + diorama: The diorama instance to wrap with a computer-like interface. + """ self.diorama = diorama self.interface = self.diorama.interface self._initialized = False async def __aenter__(self): + """ + Async context manager entry method for compatibility with ComputerAgent. + + Ensures an event loop is running and marks the instance as initialized. + Creates a new event loop if none is currently running. + + Returns: + DioramaComputer: The initialized instance. + """ # Ensure the event loop is running (for compatibility) try: asyncio.get_running_loop() @@ -20,6 +35,15 @@ class DioramaComputer: return self async def run(self): + """ + Run method stub for compatibility with ComputerAgent interface. + + Ensures the instance is initialized before returning. If not already + initialized, calls __aenter__ to perform initialization. + + Returns: + DioramaComputer: The initialized instance. + """ # This is a stub for compatibility if not self._initialized: await self.__aenter__() From fe3e2f1d16ce3093f231f6a1976e875d3e57bb75 Mon Sep 17 00:00:00 2001 From: Andrei Onel Date: Thu, 28 Aug 2025 23:56:49 +0300 Subject: [PATCH 055/103] Added reference documentation for: docs/src/components/iou.tsx --- docs/src/components/iou.tsx | 41 +++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/docs/src/components/iou.tsx b/docs/src/components/iou.tsx index 275f2c4d..ad342304 100644 --- a/docs/src/components/iou.tsx +++ b/docs/src/components/iou.tsx @@ -1,26 +1,53 @@ 'use client'; import React, { useRef, useEffect, useState, useCallback } from 'react'; +/** + * Represents a rectangle with position, dimensions, styling, and identification + */ interface Rectangle { + /** The x-coordinate of the rectangle's left edge */ left: number; + /** The y-coordinate of the rectangle's top edge */ top: number; + /** The width of the rectangle */ width: number; + /** The height of the rectangle */ height: number; + /** The fill color of the rectangle */ fill: string; + /** The display name of the rectangle */ name: string; } +/** + * Props for the IOU component + */ interface IOUProps { + /** The title to display above the visualization */ title: string; + /** The description text to display below the IOU value */ description: string; + /** The first rectangle for IOU calculation */ rect1: Rectangle; + /** The second rectangle for IOU calculation */ rect2: Rectangle; } +/** + * A React component that visualizes and calculates the Intersection over Union (IOU) + * of two rectangles on a canvas + * @param props - The component props + * @returns The rendered IOU visualization component + */ export default function IOU({ title, description, rect1, rect2 }: IOUProps) { const canvasRef = useRef(null); const [actualIOU, setActualIOU] = useState(0); + /** + * Converts a rectangle to a bounding box with left, right, top, and bottom coordinates + * @param rect - The rectangle to convert + * @returns An object containing the bounding box coordinates + */ const getBbox = (rect: Rectangle) => ({ left: rect.left, right: rect.left + rect.width, @@ -28,6 +55,12 @@ export default function IOU({ title, description, rect1, rect2 }: IOUProps) { bottom: rect.top + rect.height, }); + /** + * Calculates the intersection area between two bounding boxes + * @param bbox1 - The first bounding box + * @param bbox2 - The second bounding box + * @returns The area of intersection between the two bounding boxes + */ const calcIntersection = (bbox1: any, bbox2: any): number => { const x1 = Math.max(bbox1.left, bbox2.left); const x2 = Math.min(bbox1.right, bbox2.right); @@ -43,10 +76,18 @@ export default function IOU({ title, description, rect1, rect2 }: IOUProps) { return intersection; }; + /** + * Calculates the area of a rectangle + * @param rect - The rectangle to calculate area for + * @returns The area of the rectangle + */ const calcArea = (rect: Rectangle): number => { return rect.width * rect.height; }; + /** + * Draws the rectangles on the canvas and calculates the IOU value + */ const drawCanvas = useCallback(() => { const canvas = canvasRef.current; if (!canvas) return; From fb3dac9ed45c6d2195898860291c50d8339fb3e9 Mon Sep 17 00:00:00 2001 From: Andrei Onel Date: Thu, 28 Aug 2025 23:56:51 +0300 Subject: [PATCH 056/103] Added reference documentation for: libs/python/computer-server/computer_server/handlers/macos.py --- .../computer_server/handlers/macos.py | 400 +++++++++++++++++- 1 file changed, 395 insertions(+), 5 deletions(-) diff --git a/libs/python/computer-server/computer_server/handlers/macos.py b/libs/python/computer-server/computer_server/handlers/macos.py index ded73408..e23b8ea6 100644 --- a/libs/python/computer-server/computer_server/handlers/macos.py +++ b/libs/python/computer-server/computer_server/handlers/macos.py @@ -77,13 +77,37 @@ NSApplicationActivationOptions = { } def CFAttributeToPyObject(attrValue): + """Convert Core Foundation attribute values to Python objects. + + Args: + attrValue: Core Foundation attribute value to convert + + Returns: + Converted Python object or None if conversion fails + """ def list_helper(list_value): + """Helper function to convert CF arrays to Python lists. + + Args: + list_value: Core Foundation array to convert + + Returns: + Python list containing converted items + """ list_builder = [] for item in list_value: list_builder.append(CFAttributeToPyObject(item)) return list_builder def number_helper(number_value): + """Helper function to convert CF numbers to Python numbers. + + Args: + number_value: Core Foundation number to convert + + Returns: + Python int or float, or None if conversion fails + """ success, int_value = Foundation.CFNumberGetValue( # type: ignore number_value, Foundation.kCFNumberIntType, None # type: ignore ) @@ -98,6 +122,14 @@ def CFAttributeToPyObject(attrValue): return None def axuielement_helper(element_value): + """Helper function to handle AX UI elements. + + Args: + element_value: Accessibility UI element to process + + Returns: + The element value unchanged + """ return element_value cf_attr_type = Foundation.CFGetTypeID(attrValue) # type: ignore @@ -131,6 +163,15 @@ def CFAttributeToPyObject(attrValue): def element_attribute(element, attribute): + """Get an attribute value from an accessibility element. + + Args: + element: The accessibility element + attribute: The attribute name to retrieve + + Returns: + The attribute value or None if not found + """ if attribute == kAXChildrenAttribute: err, value = AXUIElementCopyAttributeValues(element, attribute, 0, 999, None) if err == kAXErrorSuccess: @@ -148,6 +189,15 @@ def element_attribute(element, attribute): def element_value(element, type): + """Extract a typed value from an accessibility element. + + Args: + element: The accessibility element containing the value + type: The expected value type + + Returns: + The extracted value or None if extraction fails + """ err, value = AXValueGetValue(element, type, None) if err == True: return value @@ -155,7 +205,18 @@ def element_value(element, type): class UIElement: + """Represents a UI element in the accessibility tree with position, size, and hierarchy information.""" + def __init__(self, element, offset_x=0, offset_y=0, max_depth=None, parents_visible_bbox=None): + """Initialize a UIElement from an accessibility element. + + Args: + element: The accessibility element to wrap + offset_x: X offset for position calculations + offset_y: Y offset for position calculations + max_depth: Maximum depth to traverse for children + parents_visible_bbox: Parent's visible bounding box for clipping + """ self.ax_element = element self.content_identifier = "" self.identifier = "" @@ -235,6 +296,11 @@ class UIElement: self.calculate_hashes() def _set_bboxes(self, parents_visible_bbox): + """Set bounding box and visible bounding box for the element. + + Args: + parents_visible_bbox: Parent's visible bounding box for intersection calculation + """ if not self.absolute_position or not self.size: self.bbox = None self.visible_bbox = None @@ -265,6 +331,17 @@ class UIElement: self.visible_bbox = self.bbox def _get_children(self, element, start_position, offset_x, offset_y): + """Get child elements from the accessibility element. + + Args: + element: The parent accessibility element + start_position: Starting position for offset calculations + offset_x: X offset for child positioning + offset_y: Y offset for child positioning + + Returns: + List of UIElement children + """ children = element_attribute(element, kAXChildrenAttribute) visible_children = element_attribute(element, kAXVisibleChildrenAttribute) found_children = [] @@ -288,10 +365,16 @@ class UIElement: return result def calculate_hashes(self): + """Calculate unique identifiers for the element and its content.""" self.identifier = self.component_hash() self.content_identifier = self.children_content_hash(self.children) def component_hash(self): + """Generate a hash identifier for this component based on its properties. + + Returns: + MD5 hash string of component properties + """ if self.position is None or self.size is None: return "" position_string = f"{self.position.x:.0f};{self.position.y:.0f}" @@ -304,6 +387,14 @@ class UIElement: return self.hash_from_string(position_string + size_string + enabled_string + role_string) def hash_from_string(self, string): + """Generate MD5 hash from a string. + + Args: + string: Input string to hash + + Returns: + MD5 hash hexdigest or empty string if input is None/empty + """ if string is None or string == "": return "" from hashlib import md5 @@ -311,6 +402,14 @@ class UIElement: return md5(string.encode()).hexdigest() def children_content_hash(self, children): + """Generate a hash representing the content and structure of child elements. + + Args: + children: List of child UIElement objects + + Returns: + Combined hash of children content and structure + """ if len(children) == 0: return "" all_content_hashes = [] @@ -326,7 +425,20 @@ class UIElement: return self.hash_from_string(content_hash.join(content_structure_hash)) def to_dict(self): + """Convert the UIElement to a dictionary representation. + + Returns: + Dictionary containing all element properties and children + """ def children_to_dict(children): + """Convert list of children to dictionary format. + + Args: + children: List of UIElement children to convert + + Returns: + List of dictionaries representing the children + """ result = [] for child in children: result.append(child.to_dict()) @@ -375,6 +487,12 @@ from AppKit import NSWorkspace, NSRunningApplication from pathlib import Path def get_all_windows_zorder(): + """Get all windows in the system with their z-order information. + + Returns: + List of window dictionaries sorted by z-index, containing window properties + like id, name, pid, owner, bounds, layer, and opacity + """ window_list = Quartz.CGWindowListCopyWindowInfo( Quartz.kCGWindowListOptionOnScreenOnly, Quartz.kCGNullWindowID @@ -425,6 +543,14 @@ def get_all_windows_zorder(): return windows def get_app_info(app): + """Extract information from an NSRunningApplication object. + + Args: + app: NSRunningApplication instance + + Returns: + Dictionary containing app name, bundle ID, PID, and status flags + """ return { "name": app.localizedName(), "bundle_id": app.bundleIdentifier(), @@ -435,6 +561,14 @@ def get_app_info(app): } def get_menubar_items(active_app_pid=None): + """Get menubar items for the active application. + + Args: + active_app_pid: Process ID of the active application, or None to use frontmost app + + Returns: + List of menubar item dictionaries with title, bounds, index, and app_pid + """ menubar_items = [] if active_app_pid is None: frontmost_app = NSWorkspace.sharedWorkspace().frontmostApplication() @@ -473,6 +607,12 @@ def get_menubar_items(active_app_pid=None): return menubar_items def get_dock_items(): + """Get all items in the macOS Dock. + + Returns: + List of dock item dictionaries with title, description, bounds, index, + type, role, and subrole information + """ dock_items = [] dock_pid = None running_apps = NSWorkspace.sharedWorkspace().runningApplications() @@ -538,7 +678,14 @@ def get_dock_items(): return dock_items class MacOSAccessibilityHandler(BaseAccessibilityHandler): + """Handler for macOS accessibility features and UI element inspection.""" + def get_desktop_state(self): + """Get the current state of the desktop including windows, apps, menubar, and dock. + + Returns: + Dictionary containing applications, windows, menubar_items, and dock_items + """ windows = [w for w in get_all_windows_zorder() if w.get("is_on_screen")] running_apps = self.get_running_apps() applications = [] @@ -586,7 +733,14 @@ class MacOSAccessibilityHandler(BaseAccessibilityHandler): } def get_application_windows(self, pid: int): - """Get all windows for a specific application.""" + """Get all windows for a specific application. + + Args: + pid: Process ID of the application + + Returns: + List of accessibility window elements or empty list if none found + """ try: app = AXUIElementCreateApplication(pid) err, windows = AXUIElementCopyAttributeValue(app, kAXWindowsAttribute, None) @@ -598,7 +752,11 @@ class MacOSAccessibilityHandler(BaseAccessibilityHandler): return [] def get_all_windows(self): - """Get all visible windows in the system.""" + """Get all visible windows in the system. + + Returns: + List of window dictionaries with app information and window details + """ try: windows = [] running_apps = self.get_running_apps() @@ -632,16 +790,38 @@ class MacOSAccessibilityHandler(BaseAccessibilityHandler): return [] def get_running_apps(self): + """Get all currently running applications. + + Returns: + List of NSRunningApplication objects + """ # From NSWorkspace.runningApplications docs: https://developer.apple.com/documentation/appkit/nsworkspace/runningapplications - # "Similar to the NSRunningApplication class’s properties, this property will only change when the main run loop runs in a common mode" + # "Similar to the NSRunningApplication class's properties, this property will only change when the main run loop runs in a common mode" # So we need to run the main run loop to get the latest running applications Foundation.CFRunLoopRunInMode(Foundation.kCFRunLoopDefaultMode, 0.1, False) # type: ignore return NSWorkspace.sharedWorkspace().runningApplications() def get_ax_attribute(self, element, attribute): + """Get an accessibility attribute from an element. + + Args: + element: The accessibility element + attribute: The attribute name to retrieve + + Returns: + The attribute value or None if not found + """ return element_attribute(element, attribute) def serialize_node(self, element): + """Create a serializable dictionary representation of an accessibility element. + + Args: + element: The accessibility element to serialize + + Returns: + Dictionary containing element properties like role, title, value, position, and size + """ # Create a serializable dictionary representation of an accessibility element result = {} @@ -669,7 +849,12 @@ class MacOSAccessibilityHandler(BaseAccessibilityHandler): return result - async def get_accessibility_tree(self) -> Dict[str, Any]: + async def get_accessibility_tree(self) -> Dict[str, Any]: + """Get the complete accessibility tree for the current desktop state. + + Returns: + Dictionary containing success status and desktop state information + """ try: desktop_state = self.get_desktop_state() return { @@ -683,10 +868,28 @@ class MacOSAccessibilityHandler(BaseAccessibilityHandler): async def find_element( self, role: Optional[str] = None, title: Optional[str] = None, value: Optional[str] = None ) -> Dict[str, Any]: + """Find an accessibility element matching the specified criteria. + + Args: + role: The accessibility role to match (optional) + title: The title to match (optional) + value: The value to match (optional) + + Returns: + Dictionary containing success status and the found element or error message + """ try: system = AXUIElementCreateSystemWide() def match_element(element): + """Check if an element matches the search criteria. + + Args: + element: The accessibility element to check + + Returns: + True if element matches all specified criteria, False otherwise + """ if role and self.get_ax_attribute(element, kAXRoleAttribute) != role: return False if title and self.get_ax_attribute(element, kAXTitleAttribute) != title: @@ -696,6 +899,14 @@ class MacOSAccessibilityHandler(BaseAccessibilityHandler): return True def search_tree(element): + """Recursively search the accessibility tree for matching elements. + + Args: + element: The accessibility element to search from + + Returns: + Serialized element dictionary if match found, None otherwise + """ if match_element(element): return self.serialize_node(element) @@ -714,11 +925,23 @@ class MacOSAccessibilityHandler(BaseAccessibilityHandler): return {"success": False, "error": str(e)} class MacOSAutomationHandler(BaseAutomationHandler): + """Handler for macOS automation including mouse, keyboard, and screen operations.""" + # Mouse Actions mouse = MouseController() keyboard = KeyboardController() async def mouse_down(self, x: Optional[int] = None, y: Optional[int] = None, button: str = "left") -> Dict[str, Any]: + """Press and hold a mouse button at the specified coordinates. + + Args: + x: X coordinate (optional, uses current position if None) + y: Y coordinate (optional, uses current position if None) + button: Mouse button to press ("left", "right", or "middle") + + Returns: + Dictionary containing success status and error message if failed + """ try: if x is not None and y is not None: self.mouse.position = (x, y) @@ -728,6 +951,16 @@ class MacOSAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def mouse_up(self, x: Optional[int] = None, y: Optional[int] = None, button: str = "left") -> Dict[str, Any]: + """Release a mouse button at the specified coordinates. + + Args: + x: X coordinate (optional, uses current position if None) + y: Y coordinate (optional, uses current position if None) + button: Mouse button to release ("left", "right", or "middle") + + Returns: + Dictionary containing success status and error message if failed + """ try: if x is not None and y is not None: self.mouse.position = (x, y) @@ -737,6 +970,15 @@ class MacOSAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def left_click(self, x: Optional[int] = None, y: Optional[int] = None) -> Dict[str, Any]: + """Perform a left mouse click at the specified coordinates. + + Args: + x: X coordinate (optional, uses current position if None) + y: Y coordinate (optional, uses current position if None) + + Returns: + Dictionary containing success status and error message if failed + """ try: if x is not None and y is not None: self.mouse.position = (x, y) @@ -746,6 +988,15 @@ class MacOSAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def right_click(self, x: Optional[int] = None, y: Optional[int] = None) -> Dict[str, Any]: + """Perform a right mouse click at the specified coordinates. + + Args: + x: X coordinate (optional, uses current position if None) + y: Y coordinate (optional, uses current position if None) + + Returns: + Dictionary containing success status and error message if failed + """ try: if x is not None and y is not None: self.mouse.position = (x, y) @@ -757,6 +1008,15 @@ class MacOSAutomationHandler(BaseAutomationHandler): async def double_click( self, x: Optional[int] = None, y: Optional[int] = None ) -> Dict[str, Any]: + """Perform a double left mouse click at the specified coordinates. + + Args: + x: X coordinate (optional, uses current position if None) + y: Y coordinate (optional, uses current position if None) + + Returns: + Dictionary containing success status and error message if failed + """ try: if x is not None and y is not None: self.mouse.position = (x, y) @@ -766,6 +1026,15 @@ class MacOSAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def move_cursor(self, x: int, y: int) -> Dict[str, Any]: + """Move the mouse cursor to the specified coordinates. + + Args: + x: Target X coordinate + y: Target Y coordinate + + Returns: + Dictionary containing success status and error message if failed + """ try: self.mouse.position = (x, y) return {"success": True} @@ -775,6 +1044,17 @@ class MacOSAutomationHandler(BaseAutomationHandler): async def drag_to( self, x: int, y: int, button: str = "left", duration: float = 0.5 ) -> Dict[str, Any]: + """Drag from current position to target coordinates. + + Args: + x: Target X coordinate + y: Target Y coordinate + button: Mouse button to use for dragging ("left", "right", or "middle") + duration: Duration of the drag operation in seconds + + Returns: + Dictionary containing success status and error message if failed + """ try: btn = Button.left if button == "left" else Button.right if button == "right" else Button.middle # Press @@ -801,6 +1081,16 @@ class MacOSAutomationHandler(BaseAutomationHandler): async def drag( self, path: List[Tuple[int, int]], button: str = "left", duration: float = 0.5 ) -> Dict[str, Any]: + """Drag the mouse along a specified path of coordinates. + + Args: + path: List of (x, y) coordinate tuples defining the drag path + button: Mouse button to use for dragging ("left", "right", or "middle") + duration: Total duration of the drag operation in seconds + + Returns: + Dictionary containing success status and error message if failed + """ try: if not path or len(path) < 2: return {"success": False, "error": "Path must contain at least 2 points"} @@ -823,6 +1113,14 @@ class MacOSAutomationHandler(BaseAutomationHandler): # Keyboard Actions async def key_down(self, key: str) -> Dict[str, Any]: + """Press and hold a keyboard key. + + Args: + key: Key name to press (using pyautogui key names) + + Returns: + Dictionary containing success status and error message if failed + """ try: # use pyautogui for their key names pyautogui.keyDown(key) @@ -831,6 +1129,14 @@ class MacOSAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def key_up(self, key: str) -> Dict[str, Any]: + """Release a keyboard key. + + Args: + key: Key name to release (using pyautogui key names) + + Returns: + Dictionary containing success status and error message if failed + """ try: # use pyautogui for their key names pyautogui.keyUp(key) @@ -839,6 +1145,14 @@ class MacOSAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def type_text(self, text: str) -> Dict[str, Any]: + """Type text using the keyboard with Unicode support. + + Args: + text: Text string to type + + Returns: + Dictionary containing success status and error message if failed + """ try: # use pynput for Unicode support self.keyboard.type(text) @@ -847,6 +1161,14 @@ class MacOSAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def press_key(self, key: str) -> Dict[str, Any]: + """Press and release a keyboard key. + + Args: + key: Key name to press (using pyautogui key names) + + Returns: + Dictionary containing success status and error message if failed + """ try: # use pyautogui for their key names pyautogui.press(key) @@ -855,6 +1177,14 @@ class MacOSAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def hotkey(self, keys: List[str]) -> Dict[str, Any]: + """Press a combination of keys simultaneously. + + Args: + keys: List of key names to press together (using pyautogui key names) + + Returns: + Dictionary containing success status and error message if failed + """ try: # use pyautogui for their key names pyautogui.hotkey(*keys) @@ -864,6 +1194,15 @@ class MacOSAutomationHandler(BaseAutomationHandler): # Scrolling Actions async def scroll(self, x: int, y: int) -> Dict[str, Any]: + """Scroll the mouse wheel in the specified direction. + + Args: + x: Horizontal scroll amount + y: Vertical scroll amount (positive for up, negative for down) + + Returns: + Dictionary containing success status and error message if failed + """ try: self.mouse.scroll(x, y) return {"success": True} @@ -871,6 +1210,14 @@ class MacOSAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def scroll_down(self, clicks: int = 1) -> Dict[str, Any]: + """Scroll down by the specified number of clicks. + + Args: + clicks: Number of scroll clicks to perform + + Returns: + Dictionary containing success status and error message if failed + """ try: self.mouse.scroll(0, -clicks) return {"success": True} @@ -878,6 +1225,14 @@ class MacOSAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def scroll_up(self, clicks: int = 1) -> Dict[str, Any]: + """Scroll up by the specified number of clicks. + + Args: + clicks: Number of scroll clicks to perform + + Returns: + Dictionary containing success status and error message if failed + """ try: self.mouse.scroll(0, clicks) return {"success": True} @@ -886,6 +1241,11 @@ class MacOSAutomationHandler(BaseAutomationHandler): # Screen Actions async def screenshot(self) -> Dict[str, Any]: + """Capture a screenshot of the current screen. + + Returns: + Dictionary containing success status and base64-encoded image data or error message + """ try: from PIL import Image @@ -902,6 +1262,11 @@ class MacOSAutomationHandler(BaseAutomationHandler): return {"success": False, "error": f"Screenshot error: {str(e)}"} async def get_screen_size(self) -> Dict[str, Any]: + """Get the dimensions of the current screen. + + Returns: + Dictionary containing success status and screen size or error message + """ try: size = pyautogui.size() return {"success": True, "size": {"width": size.width, "height": size.height}} @@ -909,6 +1274,11 @@ class MacOSAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def get_cursor_position(self) -> Dict[str, Any]: + """Get the current position of the mouse cursor. + + Returns: + Dictionary containing success status and cursor position or error message + """ try: x, y = self.mouse.position return {"success": True, "position": {"x": x, "y": y}} @@ -917,6 +1287,11 @@ class MacOSAutomationHandler(BaseAutomationHandler): # Clipboard Actions async def copy_to_clipboard(self) -> Dict[str, Any]: + """Get the current content of the system clipboard. + + Returns: + Dictionary containing success status and clipboard content or error message + """ try: import pyperclip @@ -926,6 +1301,14 @@ class MacOSAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def set_clipboard(self, text: str) -> Dict[str, Any]: + """Set the content of the system clipboard. + + Args: + text: Text to copy to the clipboard + + Returns: + Dictionary containing success status and error message if failed + """ try: import pyperclip @@ -935,7 +1318,14 @@ class MacOSAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def run_command(self, command: str) -> Dict[str, Any]: - """Run a shell command and return its output.""" + """Run a shell command and return its output. + + Args: + command: Shell command to execute + + Returns: + Dictionary containing success status, stdout, stderr, and return code + """ try: # Create subprocess process = await asyncio.create_subprocess_shell( From be339c2f35fe60d19c265299165cbb920883a5ea Mon Sep 17 00:00:00 2001 From: Andrei Onel Date: Thu, 28 Aug 2025 23:56:52 +0300 Subject: [PATCH 057/103] Added reference documentation for: libs/python/computer-server/computer_server/handlers/windows.py --- .../computer_server/handlers/windows.py | 225 +++++++++++++++++- 1 file changed, 223 insertions(+), 2 deletions(-) diff --git a/libs/python/computer-server/computer_server/handlers/windows.py b/libs/python/computer-server/computer_server/handlers/windows.py index 2d91ce53..eeb0d6bf 100644 --- a/libs/python/computer-server/computer_server/handlers/windows.py +++ b/libs/python/computer-server/computer_server/handlers/windows.py @@ -41,7 +41,14 @@ class WindowsAccessibilityHandler(BaseAccessibilityHandler): """Windows implementation of accessibility handler.""" async def get_accessibility_tree(self) -> Dict[str, Any]: - """Get the accessibility tree of the current window.""" + """Get the accessibility tree of the current window. + + Returns: + Dict[str, Any]: A dictionary containing the success status and either + the accessibility tree or an error message. + Structure: {"success": bool, "tree": dict} or + {"success": bool, "error": str} + """ if not WINDOWS_API_AVAILABLE: return {"success": False, "error": "Windows API not available"} @@ -65,6 +72,15 @@ class WindowsAccessibilityHandler(BaseAccessibilityHandler): # Enumerate child windows def enum_child_proc(hwnd_child, children_list): + """Callback function to enumerate child windows and collect their information. + + Args: + hwnd_child: Handle to the child window being enumerated. + children_list: List to append child window information to. + + Returns: + bool: True to continue enumeration, False to stop. + """ try: child_text = win32gui.GetWindowText(hwnd_child) child_rect = win32gui.GetWindowRect(hwnd_child) @@ -93,7 +109,19 @@ class WindowsAccessibilityHandler(BaseAccessibilityHandler): async def find_element(self, role: Optional[str] = None, title: Optional[str] = None, value: Optional[str] = None) -> Dict[str, Any]: - """Find an element in the accessibility tree by criteria.""" + """Find an element in the accessibility tree by criteria. + + Args: + role (Optional[str]): The role or class name of the element to find. + title (Optional[str]): The title or text of the element to find. + value (Optional[str]): The value of the element (not used in Windows implementation). + + Returns: + Dict[str, Any]: A dictionary containing the success status and either + the found element or an error message. + Structure: {"success": bool, "element": dict} or + {"success": bool, "error": str} + """ if not WINDOWS_API_AVAILABLE: return {"success": False, "error": "Windows API not available"} @@ -140,6 +168,16 @@ class WindowsAutomationHandler(BaseAutomationHandler): # Mouse Actions async def mouse_down(self, x: Optional[int] = None, y: Optional[int] = None, button: str = "left") -> Dict[str, Any]: + """Press and hold a mouse button at the specified coordinates. + + Args: + x (Optional[int]): The x-coordinate to move to before pressing. If None, uses current position. + y (Optional[int]): The y-coordinate to move to before pressing. If None, uses current position. + button (str): The mouse button to press ("left", "right", or "middle"). + + Returns: + Dict[str, Any]: A dictionary with success status and optional error message. + """ if not pyautogui: return {"success": False, "error": "pyautogui not available"} @@ -152,6 +190,16 @@ class WindowsAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def mouse_up(self, x: Optional[int] = None, y: Optional[int] = None, button: str = "left") -> Dict[str, Any]: + """Release a mouse button at the specified coordinates. + + Args: + x (Optional[int]): The x-coordinate to move to before releasing. If None, uses current position. + y (Optional[int]): The y-coordinate to move to before releasing. If None, uses current position. + button (str): The mouse button to release ("left", "right", or "middle"). + + Returns: + Dict[str, Any]: A dictionary with success status and optional error message. + """ if not pyautogui: return {"success": False, "error": "pyautogui not available"} @@ -164,6 +212,15 @@ class WindowsAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def move_cursor(self, x: int, y: int) -> Dict[str, Any]: + """Move the mouse cursor to the specified coordinates. + + Args: + x (int): The x-coordinate to move to. + y (int): The y-coordinate to move to. + + Returns: + Dict[str, Any]: A dictionary with success status and optional error message. + """ if not pyautogui: return {"success": False, "error": "pyautogui not available"} @@ -174,6 +231,15 @@ class WindowsAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def left_click(self, x: Optional[int] = None, y: Optional[int] = None) -> Dict[str, Any]: + """Perform a left mouse click at the specified coordinates. + + Args: + x (Optional[int]): The x-coordinate to click at. If None, clicks at current position. + y (Optional[int]): The y-coordinate to click at. If None, clicks at current position. + + Returns: + Dict[str, Any]: A dictionary with success status and optional error message. + """ if not pyautogui: return {"success": False, "error": "pyautogui not available"} @@ -186,6 +252,15 @@ class WindowsAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def right_click(self, x: Optional[int] = None, y: Optional[int] = None) -> Dict[str, Any]: + """Perform a right mouse click at the specified coordinates. + + Args: + x (Optional[int]): The x-coordinate to click at. If None, clicks at current position. + y (Optional[int]): The y-coordinate to click at. If None, clicks at current position. + + Returns: + Dict[str, Any]: A dictionary with success status and optional error message. + """ if not pyautogui: return {"success": False, "error": "pyautogui not available"} @@ -198,6 +273,15 @@ class WindowsAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def double_click(self, x: Optional[int] = None, y: Optional[int] = None) -> Dict[str, Any]: + """Perform a double left mouse click at the specified coordinates. + + Args: + x (Optional[int]): The x-coordinate to double-click at. If None, clicks at current position. + y (Optional[int]): The y-coordinate to double-click at. If None, clicks at current position. + + Returns: + Dict[str, Any]: A dictionary with success status and optional error message. + """ if not pyautogui: return {"success": False, "error": "pyautogui not available"} @@ -210,6 +294,17 @@ class WindowsAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def drag_to(self, x: int, y: int, button: str = "left", duration: float = 0.5) -> Dict[str, Any]: + """Drag from the current position to the specified coordinates. + + Args: + x (int): The x-coordinate to drag to. + y (int): The y-coordinate to drag to. + button (str): The mouse button to use for dragging ("left", "right", or "middle"). + duration (float): The time in seconds to take for the drag operation. + + Returns: + Dict[str, Any]: A dictionary with success status and optional error message. + """ if not pyautogui: return {"success": False, "error": "pyautogui not available"} @@ -220,6 +315,16 @@ class WindowsAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def drag(self, path: List[Tuple[int, int]], button: str = "left", duration: float = 0.5) -> Dict[str, Any]: + """Drag the mouse through a series of coordinates. + + Args: + path (List[Tuple[int, int]]): A list of (x, y) coordinate tuples to drag through. + button (str): The mouse button to use for dragging ("left", "right", or "middle"). + duration (float): The total time in seconds for the entire drag operation. + + Returns: + Dict[str, Any]: A dictionary with success status and optional error message. + """ if not pyautogui: return {"success": False, "error": "pyautogui not available"} @@ -240,6 +345,14 @@ class WindowsAutomationHandler(BaseAutomationHandler): # Keyboard Actions async def key_down(self, key: str) -> Dict[str, Any]: + """Press and hold a keyboard key. + + Args: + key (str): The key to press down (e.g., 'ctrl', 'shift', 'a'). + + Returns: + Dict[str, Any]: A dictionary with success status and optional error message. + """ if not pyautogui: return {"success": False, "error": "pyautogui not available"} @@ -250,6 +363,14 @@ class WindowsAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def key_up(self, key: str) -> Dict[str, Any]: + """Release a keyboard key. + + Args: + key (str): The key to release (e.g., 'ctrl', 'shift', 'a'). + + Returns: + Dict[str, Any]: A dictionary with success status and optional error message. + """ if not pyautogui: return {"success": False, "error": "pyautogui not available"} @@ -260,6 +381,14 @@ class WindowsAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def type_text(self, text: str) -> Dict[str, Any]: + """Type the specified text. + + Args: + text (str): The text to type. + + Returns: + Dict[str, Any]: A dictionary with success status and optional error message. + """ if not pyautogui: return {"success": False, "error": "pyautogui not available"} @@ -270,6 +399,14 @@ class WindowsAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def press_key(self, key: str) -> Dict[str, Any]: + """Press and release a keyboard key. + + Args: + key (str): The key to press (e.g., 'enter', 'space', 'tab'). + + Returns: + Dict[str, Any]: A dictionary with success status and optional error message. + """ if not pyautogui: return {"success": False, "error": "pyautogui not available"} @@ -280,6 +417,14 @@ class WindowsAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def hotkey(self, keys: str) -> Dict[str, Any]: + """Press a combination of keys simultaneously. + + Args: + keys (str): The keys to press together (e.g., 'ctrl+c', 'alt+tab'). + + Returns: + Dict[str, Any]: A dictionary with success status and optional error message. + """ if not pyautogui: return {"success": False, "error": "pyautogui not available"} @@ -291,6 +436,15 @@ class WindowsAutomationHandler(BaseAutomationHandler): # Scrolling Actions async def scroll(self, x: int, y: int) -> Dict[str, Any]: + """Scroll vertically at the current cursor position. + + Args: + x (int): Horizontal scroll amount (not used in pyautogui implementation). + y (int): Vertical scroll amount. Positive values scroll up, negative values scroll down. + + Returns: + Dict[str, Any]: A dictionary with success status and optional error message. + """ if not pyautogui: return {"success": False, "error": "pyautogui not available"} @@ -302,6 +456,14 @@ class WindowsAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def scroll_down(self, clicks: int = 1) -> Dict[str, Any]: + """Scroll down by the specified number of clicks. + + Args: + clicks (int): The number of scroll clicks to perform downward. + + Returns: + Dict[str, Any]: A dictionary with success status and optional error message. + """ if not pyautogui: return {"success": False, "error": "pyautogui not available"} @@ -312,6 +474,14 @@ class WindowsAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def scroll_up(self, clicks: int = 1) -> Dict[str, Any]: + """Scroll up by the specified number of clicks. + + Args: + clicks (int): The number of scroll clicks to perform upward. + + Returns: + Dict[str, Any]: A dictionary with success status and optional error message. + """ if not pyautogui: return {"success": False, "error": "pyautogui not available"} @@ -323,6 +493,14 @@ class WindowsAutomationHandler(BaseAutomationHandler): # Screen Actions async def screenshot(self) -> Dict[str, Any]: + """Capture a screenshot of the entire screen. + + Returns: + Dict[str, Any]: A dictionary containing the success status and either + base64-encoded image data or an error message. + Structure: {"success": bool, "image_data": str} or + {"success": bool, "error": str} + """ if not pyautogui: return {"success": False, "error": "pyautogui not available"} @@ -341,6 +519,14 @@ class WindowsAutomationHandler(BaseAutomationHandler): return {"success": False, "error": f"Screenshot error: {str(e)}"} async def get_screen_size(self) -> Dict[str, Any]: + """Get the size of the screen in pixels. + + Returns: + Dict[str, Any]: A dictionary containing the success status and either + screen size information or an error message. + Structure: {"success": bool, "size": {"width": int, "height": int}} or + {"success": bool, "error": str} + """ try: if pyautogui: size = pyautogui.size() @@ -356,6 +542,14 @@ class WindowsAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def get_cursor_position(self) -> Dict[str, Any]: + """Get the current position of the mouse cursor. + + Returns: + Dict[str, Any]: A dictionary containing the success status and either + cursor position or an error message. + Structure: {"success": bool, "position": {"x": int, "y": int}} or + {"success": bool, "error": str} + """ try: if pyautogui: pos = pyautogui.position() @@ -371,6 +565,14 @@ class WindowsAutomationHandler(BaseAutomationHandler): # Clipboard Actions async def copy_to_clipboard(self) -> Dict[str, Any]: + """Get the current content of the clipboard. + + Returns: + Dict[str, Any]: A dictionary containing the success status and either + clipboard content or an error message. + Structure: {"success": bool, "content": str} or + {"success": bool, "error": str} + """ try: import pyperclip content = pyperclip.paste() @@ -379,6 +581,14 @@ class WindowsAutomationHandler(BaseAutomationHandler): return {"success": False, "error": str(e)} async def set_clipboard(self, text: str) -> Dict[str, Any]: + """Set the clipboard content to the specified text. + + Args: + text (str): The text to copy to the clipboard. + + Returns: + Dict[str, Any]: A dictionary with success status and optional error message. + """ try: import pyperclip pyperclip.copy(text) @@ -388,6 +598,17 @@ class WindowsAutomationHandler(BaseAutomationHandler): # Command Execution async def run_command(self, command: str) -> Dict[str, Any]: + """Execute a shell command asynchronously. + + Args: + command (str): The shell command to execute. + + Returns: + Dict[str, Any]: A dictionary containing the success status and either + command output or an error message. + Structure: {"success": bool, "stdout": str, "stderr": str, "return_code": int} or + {"success": bool, "error": str} + """ try: # Create subprocess process = await asyncio.create_subprocess_shell( From 2ba67d399d6bd3d618d6529ef7a8856c3ab8c4ae Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Thu, 28 Aug 2025 17:09:35 -0400 Subject: [PATCH 058/103] Added wait action --- libs/python/agent/agent/human_tool/ui.py | 31 ++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/libs/python/agent/agent/human_tool/ui.py b/libs/python/agent/agent/human_tool/ui.py index f4a9fb4f..39c41bc6 100644 --- a/libs/python/agent/agent/human_tool/ui.py +++ b/libs/python/agent/agent/human_tool/ui.py @@ -368,6 +368,10 @@ class HumanCompletionUI: """Submit a hotkey action.""" return self.submit_action("keypress", keys=keys) + def submit_wait_action(self) -> str: + """Submit a wait action with no kwargs.""" + return self.submit_action("wait") + def submit_description_click(self, description: str, action_type: str = "click", button: str = "left") -> str: """Submit a description-based action.""" if action_type == "click": @@ -515,6 +519,16 @@ def create_ui(): ) description_submit_btn = gr.Button("Submit Description Action") + # Misc actions + with gr.Accordion("🧰 Misc Actions", open=False): + with gr.Group(): + misc_action_dropdown = gr.Dropdown( + label="Misc Action", + choices=["wait"], + value="wait" + ) + misc_submit_btn = gr.Button("Submit Misc Action") + status_display = gr.Textbox( label="Status", interactive=False, @@ -615,6 +629,23 @@ def create_ui(): outputs=[call_dropdown, screenshot_image, conversation_chatbot, submit_btn] ) + # Misc action handler + def handle_misc_submit(selected_action): + if selected_action == "wait": + result = ui_handler.submit_wait_action() + ui_handler.wait_for_pending_calls() + return result + return f"Unsupported misc action: {selected_action}" + + misc_submit_btn.click( + fn=handle_misc_submit, + inputs=[misc_action_dropdown], + outputs=[status_display] + ).then( + fn=ui_handler.wait_for_pending_calls, + outputs=[call_dropdown, screenshot_image, conversation_chatbot, submit_btn] + ) + # Load initial data demo.load( fn=ui_handler.refresh_pending_calls, From 022f999259e51c77c33e8b88a539bf8d4929c5b7 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Thu, 28 Aug 2025 17:12:26 -0400 Subject: [PATCH 059/103] Simplified UI --- libs/python/agent/agent/human_tool/ui.py | 110 +++++++++-------------- 1 file changed, 41 insertions(+), 69 deletions(-) diff --git a/libs/python/agent/agent/human_tool/ui.py b/libs/python/agent/agent/human_tool/ui.py index 39c41bc6..81421d55 100644 --- a/libs/python/agent/agent/human_tool/ui.py +++ b/libs/python/agent/agent/human_tool/ui.py @@ -466,69 +466,51 @@ def create_ui(): submit_btn = gr.Button("📤 Submit Response", variant="primary", interactive=False) # Action Accordions - with gr.Accordion("🖱️ Click Actions", open=False): - with gr.Group(): - with gr.Row(): - click_x = gr.Number(label="X", value=0, minimum=0) - click_y = gr.Number(label="Y", value=0, minimum=0) - with gr.Row(): - click_action_type = gr.Dropdown( - label="Action Type", - choices=["click", "double_click", "move", "left_mouse_up", "left_mouse_down"], - value="click" + with gr.Tabs(): + with gr.Tab("🖱️ Click Actions"): + with gr.Group(): + description_text = gr.Textbox( + label="Element Description", + placeholder="e.g., 'Privacy and security option in left sidebar'" ) - click_button = gr.Dropdown( - label="Button (for click only)", - choices=["left", "right", "wheel", "back", "forward"], - value="left" + with gr.Row(): + description_action_type = gr.Dropdown( + label="Action Type", + choices=["click", "double_click", "move", "left_mouse_up", "left_mouse_down"], + value="click" + ) + description_button = gr.Radio( + label="Button (for click only)", + choices=["left", "right", "wheel", "back", "forward"], + value="left" + ) + description_submit_btn = gr.Button("Submit Click Action") + + with gr.Tab("📝 Type Action"): + with gr.Group(): + type_text = gr.Textbox( + label="Text to Type", + placeholder="Enter text to type..." ) - click_submit_btn = gr.Button("Submit Action") - - with gr.Accordion("📝 Type Action", open=False): - with gr.Group(): - type_text = gr.Textbox( - label="Text to Type", - placeholder="Enter text to type..." - ) - type_submit_btn = gr.Button("Submit Type") - - with gr.Accordion("⌨️ Keypress Action", open=False): - with gr.Group(): - keypress_text = gr.Textbox( - label="Keys", - placeholder="e.g., ctrl+c, alt+tab" - ) - keypress_submit_btn = gr.Button("Submit Keypress") - - with gr.Accordion("🎯 Description Action", open=False): - with gr.Group(): - description_text = gr.Textbox( - label="Element Description", - placeholder="e.g., 'Privacy and security option in left sidebar'" - ) - with gr.Row(): - description_action_type = gr.Dropdown( - label="Action Type", - choices=["click", "double_click", "move", "left_mouse_up", "left_mouse_down"], - value="click" + type_submit_btn = gr.Button("Submit Type") + + with gr.Tab("⌨️ Keypress Action"): + with gr.Group(): + keypress_text = gr.Textbox( + label="Keys", + placeholder="e.g., ctrl+c, alt+tab" ) - description_button = gr.Radio( - label="Button (for click only)", - choices=["left", "right", "wheel", "back", "forward"], - value="left" + keypress_submit_btn = gr.Button("Submit Keypress") + + with gr.Tab("🧰 Misc Actions"): + with gr.Group(): + misc_action_dropdown = gr.Dropdown( + label="Misc Action", + choices=["wait"], + value="wait" ) - description_submit_btn = gr.Button("Submit Description Action") - - # Misc actions - with gr.Accordion("🧰 Misc Actions", open=False): - with gr.Group(): - misc_action_dropdown = gr.Dropdown( - label="Misc Action", - choices=["wait"], - value="wait" - ) - misc_submit_btn = gr.Button("Submit Misc Action") - + misc_submit_btn = gr.Button("Submit Misc Action") + status_display = gr.Textbox( label="Status", interactive=False, @@ -584,16 +566,6 @@ def create_ui(): inputs=[action_type_radio], outputs=[action_button_radio] ) - - # Action accordion handlers - click_submit_btn.click( - fn=ui_handler.submit_click_action, - inputs=[click_x, click_y, click_action_type, click_button], - outputs=[status_display] - ).then( - fn=ui_handler.wait_for_pending_calls, - outputs=[call_dropdown, screenshot_image, conversation_chatbot, submit_btn] - ) type_submit_btn.click( fn=ui_handler.submit_type_action, From e2fac486ee5a5c66e16fe68a2fed95bd4cad3109 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Thu, 28 Aug 2025 17:19:36 -0400 Subject: [PATCH 060/103] Renamed Response to Message --- libs/python/agent/agent/human_tool/ui.py | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/libs/python/agent/agent/human_tool/ui.py b/libs/python/agent/agent/human_tool/ui.py index 81421d55..d9d9ab11 100644 --- a/libs/python/agent/agent/human_tool/ui.py +++ b/libs/python/agent/agent/human_tool/ui.py @@ -459,11 +459,16 @@ def create_ui(): with gr.Group(): response_text = gr.Textbox( - label="Response", + label="Message", lines=3, - placeholder="Enter your response here..." + placeholder="Enter your message here..." + ) + submit_btn = gr.Button("📤 Submit Message", variant="primary", interactive=False) + status_display = gr.Textbox( + label="Status", + interactive=False, + value="Ready to receive calls..." ) - submit_btn = gr.Button("📤 Submit Response", variant="primary", interactive=False) # Action Accordions with gr.Tabs(): @@ -505,17 +510,11 @@ def create_ui(): with gr.Tab("🧰 Misc Actions"): with gr.Group(): misc_action_dropdown = gr.Dropdown( - label="Misc Action", + label="Action", choices=["wait"], value="wait" ) - misc_submit_btn = gr.Button("Submit Misc Action") - - status_display = gr.Textbox( - label="Status", - interactive=False, - value="Ready to receive calls..." - ) + misc_submit_btn = gr.Button("Submit Action") # Event handlers refresh_btn.click( From 2cf6290c47f8b7faf4b79d79c1864158ae53795f Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Thu, 28 Aug 2025 17:26:09 -0400 Subject: [PATCH 061/103] Made UI more compact --- libs/python/agent/agent/human_tool/ui.py | 174 ++++++++++++----------- 1 file changed, 94 insertions(+), 80 deletions(-) diff --git a/libs/python/agent/agent/human_tool/ui.py b/libs/python/agent/agent/human_tool/ui.py index d9d9ab11..34e1c468 100644 --- a/libs/python/agent/agent/human_tool/ui.py +++ b/libs/python/agent/agent/human_tool/ui.py @@ -196,7 +196,9 @@ class HumanCompletionUI: gr.update(choices=["latest"], value="latest"), # dropdown gr.update(value=None), # image (no image) gr.update(value=[]), # chatbot (empty messages) - gr.update(interactive=False) # submit button + gr.update(interactive=False), # submit button + gr.update(visible=False), # click_actions_group hidden + gr.update(visible=False), # actions_group hidden ) # Sort pending calls by created_at to get oldest first @@ -237,7 +239,9 @@ class HumanCompletionUI: gr.update(choices=choices, value="latest"), gr.update(value=self.last_image), gr.update(value=conversation), - gr.update(interactive=bool(choices)) + gr.update(interactive=bool(choices)), + gr.update(visible=True), # click_actions_group visible when there is a call + gr.update(visible=True), # actions_group visible when there is a call ) def on_call_selected(self, selected_choice): @@ -246,7 +250,9 @@ class HumanCompletionUI: return ( gr.update(value=None), # no image gr.update(value=[]), # empty chatbot - gr.update(interactive=False) + gr.update(interactive=False), + gr.update(visible=False), # click_actions_group hidden + gr.update(visible=False), # actions_group hidden ) pending_calls = self.get_pending_calls() @@ -254,7 +260,9 @@ class HumanCompletionUI: return ( gr.update(value=None), # no image gr.update(value=[]), # empty chatbot - gr.update(interactive=False) + gr.update(interactive=False), + gr.update(visible=False), # click_actions_group hidden + gr.update(visible=False), # actions_group hidden ) # Handle "latest" option @@ -286,7 +294,9 @@ class HumanCompletionUI: return ( gr.update(value=None), # no image gr.update(value=[]), # empty chatbot - gr.update(interactive=False) + gr.update(interactive=False), + gr.update(visible=False), # click_actions_group hidden + gr.update(visible=False), # actions_group hidden ) conversation = self.format_messages_for_chatbot(selected_call.get("messages", [])) @@ -297,7 +307,9 @@ class HumanCompletionUI: return ( gr.update(value=self.last_image), gr.update(value=conversation), - gr.update(interactive=True) + gr.update(interactive=True), + gr.update(visible=True), # click_actions_group visible + gr.update(visible=True), # actions_group visible ) def submit_response(self, response_text: str): @@ -411,7 +423,7 @@ def create_ui(): """Create the Gradio interface.""" ui_handler = HumanCompletionUI() - with gr.Blocks(title="Human-in-the-Loop Agent Tool") as demo: + with gr.Blocks(title="Human-in-the-Loop Agent Tool", fill_width=True) as demo: gr.Markdown("# 🤖 Human-in-the-Loop Agent Tool") gr.Markdown("Review AI conversation requests and provide human responses.") @@ -424,21 +436,22 @@ def create_ui(): height=600 ) - # Action type selection for image clicks - with gr.Row(): - action_type_radio = gr.Radio( - label="Action Type", - choices=["click", "double_click", "move", "left_mouse_up", "left_mouse_down"], - value="click", - scale=2 - ) - action_button_radio = gr.Radio( - label="Button (for click only)", - choices=["left", "right", "wheel", "back", "forward"], - value="left", - visible=True, - scale=1 - ) + # Action type selection for image clicks (wrapped for visibility control) + with gr.Group(visible=False) as click_actions_group: + with gr.Row(): + action_type_radio = gr.Dropdown( + label="Interactive Action", + choices=["click", "double_click", "move", "left_mouse_up", "left_mouse_down"], + value="click", + scale=2 + ) + action_button_radio = gr.Dropdown( + label="Button", + choices=["left", "right", "wheel", "back", "forward"], + value="left", + visible=True, + scale=1 + ) conversation_chatbot = gr.Chatbot( label="Messages", @@ -450,12 +463,17 @@ def create_ui(): with gr.Column(scale=1): with gr.Group(): call_dropdown = gr.Dropdown( - label="Select a pending call", + label="Select a pending conversation request", choices=["latest"], interactive=True, value="latest" ) refresh_btn = gr.Button("🔄 Refresh", variant="secondary") + status_display = gr.Textbox( + label="Status", + interactive=False, + value="Ready to receive requests..." + ) with gr.Group(): response_text = gr.Textbox( @@ -464,68 +482,64 @@ def create_ui(): placeholder="Enter your message here..." ) submit_btn = gr.Button("📤 Submit Message", variant="primary", interactive=False) - status_display = gr.Textbox( - label="Status", - interactive=False, - value="Ready to receive calls..." - ) - # Action Accordions - with gr.Tabs(): - with gr.Tab("🖱️ Click Actions"): - with gr.Group(): - description_text = gr.Textbox( - label="Element Description", - placeholder="e.g., 'Privacy and security option in left sidebar'" - ) - with gr.Row(): - description_action_type = gr.Dropdown( - label="Action Type", - choices=["click", "double_click", "move", "left_mouse_up", "left_mouse_down"], - value="click" + # Action Accordions (wrapped for visibility control) + with gr.Group(visible=False) as actions_group: + with gr.Tabs(): + with gr.Tab("🖱️ Click Actions"): + with gr.Group(): + description_text = gr.Textbox( + label="Element Description", + placeholder="e.g., 'Privacy and security option in left sidebar'" ) - description_button = gr.Radio( - label="Button (for click only)", - choices=["left", "right", "wheel", "back", "forward"], - value="left" + with gr.Row(): + description_action_type = gr.Dropdown( + label="Action", + choices=["click", "double_click", "move", "left_mouse_up", "left_mouse_down"], + value="click" + ) + description_button = gr.Dropdown( + label="Button", + choices=["left", "right", "wheel", "back", "forward"], + value="left" + ) + description_submit_btn = gr.Button("Submit Click Action") + + with gr.Tab("📝 Type Action"): + with gr.Group(): + type_text = gr.Textbox( + label="Text to Type", + placeholder="Enter text to type..." ) - description_submit_btn = gr.Button("Submit Click Action") - - with gr.Tab("📝 Type Action"): - with gr.Group(): - type_text = gr.Textbox( - label="Text to Type", - placeholder="Enter text to type..." - ) - type_submit_btn = gr.Button("Submit Type") - - with gr.Tab("⌨️ Keypress Action"): - with gr.Group(): - keypress_text = gr.Textbox( - label="Keys", - placeholder="e.g., ctrl+c, alt+tab" - ) - keypress_submit_btn = gr.Button("Submit Keypress") - - with gr.Tab("🧰 Misc Actions"): - with gr.Group(): - misc_action_dropdown = gr.Dropdown( - label="Action", - choices=["wait"], - value="wait" - ) - misc_submit_btn = gr.Button("Submit Action") + type_submit_btn = gr.Button("Submit Type") + + with gr.Tab("⌨️ Keypress Action"): + with gr.Group(): + keypress_text = gr.Textbox( + label="Keys", + placeholder="e.g., ctrl+c, alt+tab" + ) + keypress_submit_btn = gr.Button("Submit Keypress") + + with gr.Tab("🧰 Misc Actions"): + with gr.Group(): + misc_action_dropdown = gr.Dropdown( + label="Action", + choices=["wait"], + value="wait" + ) + misc_submit_btn = gr.Button("Submit Action") # Event handlers refresh_btn.click( fn=ui_handler.refresh_pending_calls, - outputs=[call_dropdown, screenshot_image, conversation_chatbot, submit_btn] + outputs=[call_dropdown, screenshot_image, conversation_chatbot, submit_btn, click_actions_group, actions_group] ) call_dropdown.change( fn=ui_handler.on_call_selected, inputs=[call_dropdown], - outputs=[screenshot_image, conversation_chatbot, submit_btn] + outputs=[screenshot_image, conversation_chatbot, submit_btn, click_actions_group, actions_group] ) def handle_image_click(evt: gr.SelectData): @@ -543,7 +557,7 @@ def create_ui(): outputs=[status_display] ).then( fn=ui_handler.wait_for_pending_calls, - outputs=[call_dropdown, screenshot_image, conversation_chatbot, submit_btn] + outputs=[call_dropdown, screenshot_image, conversation_chatbot, submit_btn, click_actions_group, actions_group] ) # Response submission @@ -553,7 +567,7 @@ def create_ui(): outputs=[response_text, status_display] ).then( fn=ui_handler.refresh_pending_calls, - outputs=[call_dropdown, screenshot_image, conversation_chatbot, submit_btn] + outputs=[call_dropdown, screenshot_image, conversation_chatbot, submit_btn, click_actions_group, actions_group] ) # Toggle button radio visibility based on action type @@ -572,7 +586,7 @@ def create_ui(): outputs=[status_display] ).then( fn=ui_handler.wait_for_pending_calls, - outputs=[call_dropdown, screenshot_image, conversation_chatbot, submit_btn] + outputs=[call_dropdown, screenshot_image, conversation_chatbot, submit_btn, click_actions_group, actions_group] ) keypress_submit_btn.click( @@ -581,7 +595,7 @@ def create_ui(): outputs=[status_display] ).then( fn=ui_handler.wait_for_pending_calls, - outputs=[call_dropdown, screenshot_image, conversation_chatbot, submit_btn] + outputs=[call_dropdown, screenshot_image, conversation_chatbot, submit_btn, click_actions_group, actions_group] ) def handle_description_submit(description, action_type, button): @@ -597,7 +611,7 @@ def create_ui(): outputs=[status_display] ).then( fn=ui_handler.wait_for_pending_calls, - outputs=[call_dropdown, screenshot_image, conversation_chatbot, submit_btn] + outputs=[call_dropdown, screenshot_image, conversation_chatbot, submit_btn, click_actions_group, actions_group] ) # Misc action handler @@ -614,13 +628,13 @@ def create_ui(): outputs=[status_display] ).then( fn=ui_handler.wait_for_pending_calls, - outputs=[call_dropdown, screenshot_image, conversation_chatbot, submit_btn] + outputs=[call_dropdown, screenshot_image, conversation_chatbot, submit_btn, click_actions_group, actions_group] ) # Load initial data demo.load( fn=ui_handler.refresh_pending_calls, - outputs=[call_dropdown, screenshot_image, conversation_chatbot, submit_btn] + outputs=[call_dropdown, screenshot_image, conversation_chatbot, submit_btn, click_actions_group, actions_group] ) return demo From e61fbeda5eab4a0086a33ece9a9a2c38d6d39b78 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Thu, 28 Aug 2025 17:36:56 -0400 Subject: [PATCH 062/103] Made labels more descriptive --- libs/python/agent/agent/human_tool/ui.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libs/python/agent/agent/human_tool/ui.py b/libs/python/agent/agent/human_tool/ui.py index 34e1c468..c26a23a8 100644 --- a/libs/python/agent/agent/human_tool/ui.py +++ b/libs/python/agent/agent/human_tool/ui.py @@ -431,7 +431,7 @@ def create_ui(): with gr.Column(scale=2): with gr.Group(): screenshot_image = gr.Image( - label="Screenshot", + label="Interactive Screenshot", interactive=False, height=600 ) @@ -440,7 +440,7 @@ def create_ui(): with gr.Group(visible=False) as click_actions_group: with gr.Row(): action_type_radio = gr.Dropdown( - label="Interactive Action", + label="Action", choices=["click", "double_click", "move", "left_mouse_up", "left_mouse_down"], value="click", scale=2 @@ -454,7 +454,7 @@ def create_ui(): ) conversation_chatbot = gr.Chatbot( - label="Messages", + label="Conversation", type="messages", height=500, show_copy_button=True From ddd01ee719a85ee80a9b6156d80b56190237bf52 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Thu, 28 Aug 2025 18:18:40 -0400 Subject: [PATCH 063/103] Improved image retention callback --- .../agent/agent/callbacks/image_retention.py | 125 ++++++------------ 1 file changed, 38 insertions(+), 87 deletions(-) diff --git a/libs/python/agent/agent/callbacks/image_retention.py b/libs/python/agent/agent/callbacks/image_retention.py index d91754b1..ff38a6dd 100644 --- a/libs/python/agent/agent/callbacks/image_retention.py +++ b/libs/python/agent/agent/callbacks/image_retention.py @@ -50,90 +50,41 @@ class ImageRetentionCallback(AsyncCallbackHandler): """ if self.only_n_most_recent_images is None: return messages - - # First pass: Assign call_id to reasoning items based on the next computer_call - messages_with_call_ids = [] - for i, msg in enumerate(messages): - msg_copy = msg.copy() if isinstance(msg, dict) else msg - - # If this is a reasoning item without a call_id, find the next computer_call - if (msg_copy.get("type") == "reasoning" and - not msg_copy.get("call_id")): - # Look ahead for the next computer_call - for j in range(i + 1, len(messages)): - next_msg = messages[j] - if (next_msg.get("type") == "computer_call" and - next_msg.get("call_id")): - msg_copy["call_id"] = next_msg.get("call_id") - break - - messages_with_call_ids.append(msg_copy) - - # Find all computer_call_output items with images and their call_ids - image_call_ids = [] - for msg in reversed(messages_with_call_ids): # Process in reverse to get most recent first - if (msg.get("type") == "computer_call_output" and - isinstance(msg.get("output"), dict) and - "image_url" in msg.get("output", {})): - call_id = msg.get("call_id") - if call_id and call_id not in image_call_ids: - image_call_ids.append(call_id) - if len(image_call_ids) >= self.only_n_most_recent_images: - break - - # Keep the most recent N image call_ids (reverse to get chronological order) - keep_call_ids = set(image_call_ids[:self.only_n_most_recent_images]) - - # Filter messages: remove computer_call, computer_call_output, and reasoning for old images - filtered_messages = [] - for msg in messages_with_call_ids: - msg_type = msg.get("type") - call_id = msg.get("call_id") - - # Remove old computer_call items - if msg_type == "computer_call" and call_id not in keep_call_ids: - # Check if this call_id corresponds to an image call - has_image_output = any( - m.get("type") == "computer_call_output" and - m.get("call_id") == call_id and - isinstance(m.get("output"), dict) and - "image_url" in m.get("output", {}) - for m in messages_with_call_ids - ) - if has_image_output: - continue # Skip this computer_call - - # Remove old computer_call_output items with images - if (msg_type == "computer_call_output" and - call_id not in keep_call_ids and - isinstance(msg.get("output"), dict) and - "image_url" in msg.get("output", {})): - continue # Skip this computer_call_output - - # Remove old reasoning items that are paired with removed computer calls - if (msg_type == "reasoning" and - call_id and call_id not in keep_call_ids): - # Check if this call_id corresponds to an image call that's being removed - has_image_output = any( - m.get("type") == "computer_call_output" and - m.get("call_id") == call_id and - isinstance(m.get("output"), dict) and - "image_url" in m.get("output", {}) - for m in messages_with_call_ids - ) - if has_image_output: - continue # Skip this reasoning item - - filtered_messages.append(msg) - - # Clean up: Remove call_id from reasoning items before returning - final_messages = [] - for msg in filtered_messages: - if msg.get("type") == "reasoning" and "call_id" in msg: - # Create a copy without call_id for reasoning items - cleaned_msg = {k: v for k, v in msg.items() if k != "call_id"} - final_messages.append(cleaned_msg) - else: - final_messages.append(msg) - - return final_messages \ No newline at end of file + + # Gather indices of all computer_call_output messages that contain an image_url + output_indices: List[int] = [] + for idx, msg in enumerate(messages): + if msg["type"] == "computer_call_output": + out = msg["output"] + if isinstance(out, dict) and ("image_url" in out): + output_indices.append(idx) + + # Nothing to trim + if len(output_indices) <= self.only_n_most_recent_images: + return messages + + # Determine which outputs to keep (most recent N) + keep_output_indices = set(output_indices[-self.only_n_most_recent_images :]) + + # Build set of indices to remove in one pass + to_remove: set[int] = set() + + for idx in output_indices: + if idx in keep_output_indices: + continue # keep this screenshot and its context + + to_remove.add(idx) # remove the computer_call_output itself + + # Remove the immediately preceding computer_call with matching call_id (if present) + call_id = messages[idx]["call_id"] + prev_idx = idx - 1 + if prev_idx >= 0 and messages[prev_idx]["type"] == "computer_call" and messages[prev_idx]["call_id"] == call_id: + to_remove.add(prev_idx) + # Check a single reasoning immediately before that computer_call + r_idx = prev_idx - 1 + if r_idx >= 0 and messages[r_idx]["type"] == "reasoning": + to_remove.add(r_idx) + + # Construct filtered list + filtered = [m for i, m in enumerate(messages) if i not in to_remove] + return filtered \ No newline at end of file From efc2c3e54cdf56f6ace65626e3c11d19a13f9186 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Thu, 28 Aug 2025 18:24:20 -0400 Subject: [PATCH 064/103] Fixed KeyError --- libs/python/agent/agent/callbacks/image_retention.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libs/python/agent/agent/callbacks/image_retention.py b/libs/python/agent/agent/callbacks/image_retention.py index ff38a6dd..320a3f43 100644 --- a/libs/python/agent/agent/callbacks/image_retention.py +++ b/libs/python/agent/agent/callbacks/image_retention.py @@ -54,8 +54,8 @@ class ImageRetentionCallback(AsyncCallbackHandler): # Gather indices of all computer_call_output messages that contain an image_url output_indices: List[int] = [] for idx, msg in enumerate(messages): - if msg["type"] == "computer_call_output": - out = msg["output"] + if msg.get("type") == "computer_call_output": + out = msg.get("output") if isinstance(out, dict) and ("image_url" in out): output_indices.append(idx) @@ -76,13 +76,13 @@ class ImageRetentionCallback(AsyncCallbackHandler): to_remove.add(idx) # remove the computer_call_output itself # Remove the immediately preceding computer_call with matching call_id (if present) - call_id = messages[idx]["call_id"] + call_id = messages[idx].get("call_id") prev_idx = idx - 1 - if prev_idx >= 0 and messages[prev_idx]["type"] == "computer_call" and messages[prev_idx]["call_id"] == call_id: + if prev_idx >= 0 and messages[prev_idx].get("type") == "computer_call" and messages[prev_idx].get("call_id") == call_id: to_remove.add(prev_idx) # Check a single reasoning immediately before that computer_call r_idx = prev_idx - 1 - if r_idx >= 0 and messages[r_idx]["type"] == "reasoning": + if r_idx >= 0 and messages[r_idx].get("type") == "reasoning": to_remove.add(r_idx) # Construct filtered list From 6ec083e28a0cec6ad381206fad0614939c257497 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Thu, 28 Aug 2025 19:21:04 -0400 Subject: [PATCH 065/103] Removed reasoning pass --- .../agent/callbacks/operator_validator.py | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/libs/python/agent/agent/callbacks/operator_validator.py b/libs/python/agent/agent/callbacks/operator_validator.py index 94b81f85..56a9c280 100644 --- a/libs/python/agent/agent/callbacks/operator_validator.py +++ b/libs/python/agent/agent/callbacks/operator_validator.py @@ -102,37 +102,37 @@ class OperatorNormalizerCallback(AsyncCallbackHandler): _keep_keys(action, keep) - # Second pass: if an assistant message is immediately followed by a computer_call, - # replace the assistant message itself with a reasoning message with summary text. - if isinstance(output, list): - for i, item in enumerate(output): - # AssistantMessage shape: { type: 'message', role: 'assistant', content: OutputContent[] } - if item.get("type") == "message" and item.get("role") == "assistant": - next_idx = i + 1 - if next_idx >= len(output): - continue - next_item = output[next_idx] - if not isinstance(next_item, dict): - continue - if next_item.get("type") != "computer_call": - continue - contents = item.get("content") or [] - # Extract text from OutputContent[] - text_parts: List[str] = [] - if isinstance(contents, list): - for c in contents: - if isinstance(c, dict) and c.get("type") == "output_text" and isinstance(c.get("text"), str): - text_parts.append(c["text"]) - text_content = "\n".join(text_parts).strip() - # Replace assistant message with reasoning message - output[i] = { - "type": "reasoning", - "summary": [ - { - "type": "summary_text", - "text": text_content, - } - ], - } + # # Second pass: if an assistant message is immediately followed by a computer_call, + # # replace the assistant message itself with a reasoning message with summary text. + # if isinstance(output, list): + # for i, item in enumerate(output): + # # AssistantMessage shape: { type: 'message', role: 'assistant', content: OutputContent[] } + # if item.get("type") == "message" and item.get("role") == "assistant": + # next_idx = i + 1 + # if next_idx >= len(output): + # continue + # next_item = output[next_idx] + # if not isinstance(next_item, dict): + # continue + # if next_item.get("type") != "computer_call": + # continue + # contents = item.get("content") or [] + # # Extract text from OutputContent[] + # text_parts: List[str] = [] + # if isinstance(contents, list): + # for c in contents: + # if isinstance(c, dict) and c.get("type") == "output_text" and isinstance(c.get("text"), str): + # text_parts.append(c["text"]) + # text_content = "\n".join(text_parts).strip() + # # Replace assistant message with reasoning message + # output[i] = { + # "type": "reasoning", + # "summary": [ + # { + # "type": "summary_text", + # "text": text_content, + # } + # ], + # } return output From 146ebf1a6ac6d743ddd65b214e676d6fc24a11d5 Mon Sep 17 00:00:00 2001 From: ahmadhr Date: Thu, 28 Aug 2025 19:37:11 -0400 Subject: [PATCH 066/103] unified capitalization of 'Get started' in Quick Start section of README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 88cced63..24ac2817 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ Missing a model? [Raise a feature request](https://github.com/trycua/cua/issues/ - [Get started with a Computer-Use Agent UI](https://docs.trycua.com/docs/quickstart-ui) - [Get started with the Computer-Use Agent CLI](https://docs.trycua.com/docs/quickstart-cli) -- [Get Started with the Python SDKs](https://docs.trycua.com/docs/quickstart-devs) +- [Get started with the Python SDKs](https://docs.trycua.com/docs/quickstart-devs)
From 70043404837ffaee404b02f2aa590f45191d7583 Mon Sep 17 00:00:00 2001 From: ahmadhr Date: Thu, 28 Aug 2025 20:02:56 -0400 Subject: [PATCH 067/103] docs: remove duplicated word 'guide' in CONTRIBUTING --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 92da20d7..10478cb9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -51,6 +51,6 @@ Documentation improvements are always welcome. You can: - Improve API documentation - Add tutorials or guides -For detailed instructions on setting up your development environment and submitting code contributions, please see our [Developer-Guide](./docs/Developer-Guide.md) guide. +For detailed instructions on setting up your development environment and submitting code contributions, please see our [Developer-Guide](./docs/Developer-Guide.md). Feel free to join our [Discord community](https://discord.com/invite/mVnXXpdE85) to discuss ideas or get help with your contributions. \ No newline at end of file From 39d60a852cbcf9dc50b559171e65aa94ea07fd11 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Fri, 29 Aug 2025 11:33:04 -0400 Subject: [PATCH 068/103] Updated license of cua-som and cua-agent[omni] --- README.md | 8 ++++++++ libs/python/agent/pyproject.toml | 4 ---- libs/python/som/pyproject.toml | 4 ++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 88cced63..5183598c 100644 --- a/README.md +++ b/README.md @@ -187,6 +187,14 @@ The base image `kasmweb/core-ubuntu-jammy` is maintained by [Kasm Technologies]( Microsoft's OmniParser, which is used in this project, is licensed under the Creative Commons Attribution 4.0 International License (CC-BY-4.0) - see the [OmniParser LICENSE](https://github.com/microsoft/OmniParser/blob/master/LICENSE) file for details. +### Third-Party Licenses and Optional Components + +Some optional extras for this project depend on third-party packages that are licensed under terms different from the MIT License. + +- The optional "omni" extra (installed via `pip install "cua-agent[omni]"`) installs the `cua-som` module, which includes `ultralytics` and is licensed under the AGPL-3.0. + +When you choose to install and use such optional extras, your use, modification, and distribution of those third-party components are governed by their respective licenses (e.g., AGPL-3.0 for `ultralytics`). + ## Contributing We welcome contributions to Cua! Please refer to our [Contributing Guidelines](CONTRIBUTING.md) for details. diff --git a/libs/python/agent/pyproject.toml b/libs/python/agent/pyproject.toml index 4be2f6b6..c92c4dfa 100644 --- a/libs/python/agent/pyproject.toml +++ b/libs/python/agent/pyproject.toml @@ -30,7 +30,6 @@ requires-python = ">=3.12" openai = [] anthropic = [] omni = [ - "ultralytics>=8.0.0", "cua-som>=0.1.0,<0.2.0", ] uitars = [] @@ -58,9 +57,6 @@ hud = [ "hud-python>=0.4.12,<0.5.0", ] all = [ - # omni requirements - "ultralytics>=8.0.0", - "cua-som>=0.1.0,<0.2.0", # uitars requirements "mlx-vlm>=0.1.27; sys_platform == 'darwin'", "accelerate", diff --git a/libs/python/som/pyproject.toml b/libs/python/som/pyproject.toml index 0bae7ea2..10b29ff8 100644 --- a/libs/python/som/pyproject.toml +++ b/libs/python/som/pyproject.toml @@ -26,12 +26,12 @@ dependencies = [ ] requires-python = ">=3.11" readme = "README.md" -license = {text = "MIT"} +license = {text = "AGPL-3.0-or-later"} keywords = ["computer-vision", "ocr", "ui-analysis", "icon-detection"] classifiers = [ "Development Status :: 4 - Beta", + "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", "Intended Audience :: Developers", - "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.11", "Topic :: Scientific/Engineering :: Artificial Intelligence", From 59418b0261f2e35c1b7b3fb48375db5bd7383507 Mon Sep 17 00:00:00 2001 From: Dillon DuPont Date: Fri, 29 Aug 2025 11:40:43 -0400 Subject: [PATCH 069/103] Added AGPL license tooptional cua-som component --- libs/python/som/LICENSE | 661 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 661 insertions(+) create mode 100644 libs/python/som/LICENSE diff --git a/libs/python/som/LICENSE b/libs/python/som/LICENSE new file mode 100644 index 00000000..691cd005 --- /dev/null +++ b/libs/python/som/LICENSE @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment + to the third party based on the extent of your activity of conveying + the work, and under which the third party grants, to any of the + parties who would receive the covered work from you, a discriminatory + patent license (a) in connection with copies of the covered work + conveyed by you (or copies made from those copies), or (b) primarily + for and in connection with specific products or compilations that + contain the covered work, unless you entered into that arrangement, + or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting + any implied license or other defenses to infringement that may + otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot convey a + covered work so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you may + not convey it at all. For example, if you agree to terms that obligate you + to collect a royalty for further conveying from those to whom you convey + the Program, the only way you could satisfy both those terms and this + License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the + Program, your modified version must prominently offer all users + interacting with it remotely through a computer network (if your version + supports such interaction) an opportunity to receive the Corresponding + Source of your version by providing access to the Corresponding Source + from a network server at no charge, through some standard or customary + means of facilitating copying of software. This Corresponding Source + shall include the Corresponding Source for any work covered by version 3 + of the GNU General Public License that is incorporated pursuant to the + following paragraph. + + Notwithstanding any other provision of this License, you have + permission to link or combine any covered work with a work licensed + under version 3 of the GNU General Public License into a single + combined work, and to convey the resulting work. The terms of this + License will continue to apply to the part which is the covered work, + but the work with which it is combined will remain governed by version + 3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of + the GNU Affero General Public License from time to time. Such new versions + will be similar in spirit to the present version, but may differ in detail to + address new problems or concerns. + + Each version is given a distinguishing version number. If the + Program specifies that a certain numbered version of the GNU Affero General + Public License "or any later version" applies to it, you have the + option of following the terms and conditions either of that numbered + version or of any later version published by the Free Software + Foundation. If the Program does not specify a version number of the + GNU Affero General Public License, you may choose any version ever published + by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future + versions of the GNU Affero General Public License can be used, that proxy's + public statement of acceptance of a version permanently authorizes you + to choose that version for the Program. + + Later license versions may give you additional or different + permissions. However, no additional obligations are imposed on any + author or copyright holder as a result of your choosing to follow a + later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY + APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT + HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY + OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM + IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF + ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS + THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY + GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE + USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF + DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD + PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), + EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF + SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided + above cannot be given local legal effect according to their terms, + reviewing courts shall apply local law that most closely approximates + an absolute waiver of all civil liability in connection with the + Program, unless a warranty or assumption of liability accompanies a + copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest + possible use to the public, the best way to achieve this is to make it + free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest + to attach them to the start of each source file to most effectively + state the exclusion of warranty; and each file should have at least + the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer + network, you should also make sure that it provides a way for users to + get its source. For example, if your program is a web application, its + interface could display a "Source" link that leads users to an archive + of the code. There are many ways you could offer source, and different + solutions will be better for different programs; see section 13 for the + specific requirements. + + You should also get your employer (if you work as a programmer) or school, + if any, to sign a "copyright disclaimer" for the program, if necessary. + For more information on this, and how to apply and follow the GNU AGPL, see + . From b378ce20278fb0d202625fccdcb089871c17beac Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 28 Aug 2025 08:30:21 -0400 Subject: [PATCH 070/103] Fix broken links --- docs/content/docs/agent-sdk/callbacks/index.mdx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/content/docs/agent-sdk/callbacks/index.mdx b/docs/content/docs/agent-sdk/callbacks/index.mdx index a432f5d4..3c229e7b 100644 --- a/docs/content/docs/agent-sdk/callbacks/index.mdx +++ b/docs/content/docs/agent-sdk/callbacks/index.mdx @@ -8,8 +8,8 @@ This section details the various callbacks available in the Agent SDK. ## Available Callbacks -- [Agent Lifecycle](agent-lifecycle.mdx) -- [Cost Saving](cost-saving.mdx) -- [Logging](logging.mdx) -- [PII Anonymization](pii-anonymization.mdx) -- [Trajectories](trajectories.mdx) +- [Agent Lifecycle](agent-lifecycle) +- [Cost Saving](cost-saving) +- [Logging](logging) +- [PII Anonymization](pii-anonymization) +- [Trajectories](trajectories) From b0ed02d97484471f2bea80e8de23230ebb79f03f Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 28 Aug 2025 08:34:15 -0400 Subject: [PATCH 071/103] Fix links --- docs/content/docs/agent-sdk/callbacks/index.mdx | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/docs/content/docs/agent-sdk/callbacks/index.mdx b/docs/content/docs/agent-sdk/callbacks/index.mdx index 3c229e7b..edc502c4 100644 --- a/docs/content/docs/agent-sdk/callbacks/index.mdx +++ b/docs/content/docs/agent-sdk/callbacks/index.mdx @@ -8,8 +8,7 @@ This section details the various callbacks available in the Agent SDK. ## Available Callbacks -- [Agent Lifecycle](agent-lifecycle) -- [Cost Saving](cost-saving) -- [Logging](logging) -- [PII Anonymization](pii-anonymization) -- [Trajectories](trajectories) +- [Cost Saving](callbacks/cost-saving) +- [Logging](callbacks/logging) +- [PII Anonymization](callbacks/pii-anonymization) +- [Trajectories](callbacks/trajectories) \ No newline at end of file From 63b7d1ae0d10d0355a534983b9f7c8b4db9b2419 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 28 Aug 2025 08:37:53 -0400 Subject: [PATCH 072/103] Clarify lifecycle and built-in callbacks --- .../docs/agent-sdk/callbacks/agent-lifecycle.mdx | 9 +-------- docs/content/docs/agent-sdk/callbacks/index.mdx | 11 ++++++----- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/docs/content/docs/agent-sdk/callbacks/agent-lifecycle.mdx b/docs/content/docs/agent-sdk/callbacks/agent-lifecycle.mdx index 4b75ebcf..494c4a8f 100644 --- a/docs/content/docs/agent-sdk/callbacks/agent-lifecycle.mdx +++ b/docs/content/docs/agent-sdk/callbacks/agent-lifecycle.mdx @@ -42,11 +42,4 @@ Called when responses are received from agent loop. - `on_screenshot(screenshot, name)` - When screenshots are taken ### 10. `on_run_end(kwargs, old_items, new_items)` -Called when agent run completes. Finalize tracking, save trajectories. - -## Built-in Callbacks - -- **ImageRetentionCallback**: Limits recent images in context -- **BudgetManagerCallback**: Stops execution when budget exceeded -- **TrajectorySaverCallback**: Saves conversation trajectories -- **LoggingCallback**: Logs agent activities +Called when agent run completes. Finalize tracking, save trajectories. \ No newline at end of file diff --git a/docs/content/docs/agent-sdk/callbacks/index.mdx b/docs/content/docs/agent-sdk/callbacks/index.mdx index edc502c4..9d5766f1 100644 --- a/docs/content/docs/agent-sdk/callbacks/index.mdx +++ b/docs/content/docs/agent-sdk/callbacks/index.mdx @@ -4,11 +4,12 @@ title: Callbacks Callbacks in the Agent SDK provide hooks into the agent's lifecycle, allowing for custom functionality to be executed at various stages of an agent's run. They enable extensibility by allowing developers to integrate their own logic for tasks such as logging, cost management, and data anonymization. -This section details the various callbacks available in the Agent SDK. +The callback lifecycle is described in [Agent Lifecycle](callbacks/agent-lifecycle). -## Available Callbacks +## Built-in Callbacks -- [Cost Saving](callbacks/cost-saving) -- [Logging](callbacks/logging) +- [BudgetManagerCallback](callbacks/cost-saving): Stops execution when budget exceeded +- [LoggingCallback](callbacks/trajectories): Logs agent activities +- **ImageRetentionCallback**: Limits recent images in context +- **TrajectorySaverCallback**: Saves conversation trajectories - [PII Anonymization](callbacks/pii-anonymization) -- [Trajectories](callbacks/trajectories) \ No newline at end of file From 6d43977db626205a04ec73626e484bc9deb28f16 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 28 Aug 2025 08:48:27 -0400 Subject: [PATCH 073/103] Move text from API Reference to Agent Playbook section --- docs/content/docs/agent-sdk/agent-loops.mdx | 55 +++++++++ .../docs/agent-sdk/callbacks/index.mdx | 14 +++ docs/content/docs/libraries/agent/index.mdx | 107 +----------------- 3 files changed, 75 insertions(+), 101 deletions(-) diff --git a/docs/content/docs/agent-sdk/agent-loops.mdx b/docs/content/docs/agent-sdk/agent-loops.mdx index 0be4e009..22b54836 100644 --- a/docs/content/docs/agent-sdk/agent-loops.mdx +++ b/docs/content/docs/agent-sdk/agent-loops.mdx @@ -30,3 +30,58 @@ async for result in agent.run(prompt): ``` For a list of supported models and configurations, see the [Supported Agents](./supported-agents/computer-use-agents) page. + +### ComputerAgent Constructor Options + +The `ComputerAgent` constructor provides a wide range of options for customizing agent behavior, tool integration, callbacks, resource management, and more. + +| Parameter | Type | Default | Description | +| --------------------------- | ----------------- | ------------ | ---------------------------------------------------------------------------------------------------- | +| `model` | `str` | **required** | Model name (e.g., "claude-3-5-sonnet-20241022", "computer-use-preview", "omni+vertex_ai/gemini-pro") | +| `tools` | `List[Any]` | `None` | List of tools (e.g., computer objects, decorated functions) | +| `custom_loop` | `Callable` | `None` | Custom agent loop function (overrides auto-selection) | +| `only_n_most_recent_images` | `int` | `None` | If set, only keep the N most recent images in message history (adds ImageRetentionCallback) | +| `callbacks` | `List[Any]` | `None` | List of AsyncCallbackHandler instances for preprocessing/postprocessing | +| `verbosity` | `int` | `None` | Logging level (`logging.DEBUG`, `logging.INFO`, etc.; adds LoggingCallback) | +| `trajectory_dir` | `str` | `None` | Directory to save trajectory data (adds TrajectorySaverCallback) | +| `max_retries` | `int` | `3` | Maximum number of retries for failed API calls | +| `screenshot_delay` | `float` \| `int` | `0.5` | Delay before screenshots (seconds) | +| `use_prompt_caching` | `bool` | `False` | Use prompt caching to avoid reprocessing the same prompt (mainly for Anthropic) | +| `max_trajectory_budget` | `float` \| `dict` | `None` | If set, adds BudgetManagerCallback to track usage costs and stop when budget is exceeded | +| `**kwargs` | _any_ | | Additional arguments passed to the agent loop | + +#### Parameter Details + +- **model**: The LLM or agent model to use. Determines which agent loop is selected unless `custom_loop` is provided. +- **tools**: List of tools the agent can use (e.g., `Computer`, sandboxed Python functions, etc.). +- **custom_loop**: Optional custom agent loop function. If provided, overrides automatic loop selection. +- **only_n_most_recent_images**: If set, only the N most recent images are kept in the message history. Useful for limiting memory usage. Automatically adds `ImageRetentionCallback`. +- **callbacks**: List of callback instances for advanced preprocessing, postprocessing, logging, or custom hooks. See [Callbacks & Extensibility](#callbacks--extensibility). +- **verbosity**: Logging level (e.g., `logging.INFO`). If set, adds a logging callback. +- **trajectory_dir**: Directory path to save full trajectory data, including screenshots and responses. Adds `TrajectorySaverCallback`. +- **max_retries**: Maximum number of retries for failed API calls (default: 3). +- **screenshot_delay**: Delay (in seconds) before taking screenshots (default: 0.5). +- **use_prompt_caching**: Enables prompt caching for repeated prompts (mainly for Anthropic models). +- **max_trajectory_budget**: If set (float or dict), adds a budget manager callback that tracks usage costs and stops execution if the budget is exceeded. Dict allows advanced options (e.g., `{ "max_budget": 5.0, "raise_error": True }`). +- **\*\*kwargs**: Any additional keyword arguments are passed through to the agent loop or model provider. + +**Example with advanced options:** + +```python +from agent import ComputerAgent +from computer import Computer +from agent.callbacks import ImageRetentionCallback + +agent = ComputerAgent( + model="anthropic/claude-3-5-sonnet-20241022", + tools=[Computer(...)], + only_n_most_recent_images=3, + callbacks=[ImageRetentionCallback(only_n_most_recent_images=3)], + verbosity=logging.INFO, + trajectory_dir="trajectories", + max_retries=5, + screenshot_delay=1.0, + use_prompt_caching=True, + max_trajectory_budget={"max_budget": 5.0, "raise_error": True} +) +``` \ No newline at end of file diff --git a/docs/content/docs/agent-sdk/callbacks/index.mdx b/docs/content/docs/agent-sdk/callbacks/index.mdx index 9d5766f1..0d0f7de4 100644 --- a/docs/content/docs/agent-sdk/callbacks/index.mdx +++ b/docs/content/docs/agent-sdk/callbacks/index.mdx @@ -6,6 +6,20 @@ Callbacks in the Agent SDK provide hooks into the agent's lifecycle, allowing fo The callback lifecycle is described in [Agent Lifecycle](callbacks/agent-lifecycle). +## Usage + +You can add preprocessing and postprocessing hooks using callbacks, or write your own by subclassing `AsyncCallbackHandler`: + +```python +from agent.callbacks import ImageRetentionCallback, PIIAnonymizationCallback + +agent = ComputerAgent( + model="anthropic/claude-3-5-sonnet-20241022", + tools=[computer], + callbacks=[ImageRetentionCallback(only_n_most_recent_images=3)] +) +``` + ## Built-in Callbacks - [BudgetManagerCallback](callbacks/cost-saving): Stops execution when budget exceeded diff --git a/docs/content/docs/libraries/agent/index.mdx b/docs/content/docs/libraries/agent/index.mdx index f0e1ab77..6772d5c8 100644 --- a/docs/content/docs/libraries/agent/index.mdx +++ b/docs/content/docs/libraries/agent/index.mdx @@ -8,109 +8,14 @@ github: The Agent library provides the ComputerAgent class and tools for building AI agents that automate workflows on Cua Computers. -## Reference +## Agent Loops -### Basic Usage +See the [Agent Loops](../agent-sdk/agent-loops) documentation for how agents process information and take actions. -```python -from agent import ComputerAgent -from computer import Computer +## Chat History -computer = Computer() # Connect to a cua container -agent = ComputerAgent( - model="anthropic/claude-3-5-sonnet-20241022", - tools=[computer] -) +See the [Chat History](../agent-sdk/chat-history) documentation for managing conversational context and turn-by-turn interactions. -prompt = "open github, navigate to trycua/cua" +## Callbacks -async for result in agent.run(prompt): - print("Agent:", result["output"][-1]["content"][0]["text"]) -``` - ---- - -### ComputerAgent Constructor Options - -The `ComputerAgent` constructor provides a wide range of options for customizing agent behavior, tool integration, callbacks, resource management, and more. - -| Parameter | Type | Default | Description | -| --------------------------- | ----------------- | ------------ | ---------------------------------------------------------------------------------------------------- | -| `model` | `str` | **required** | Model name (e.g., "claude-3-5-sonnet-20241022", "computer-use-preview", "omni+vertex_ai/gemini-pro") | -| `tools` | `List[Any]` | `None` | List of tools (e.g., computer objects, decorated functions) | -| `custom_loop` | `Callable` | `None` | Custom agent loop function (overrides auto-selection) | -| `only_n_most_recent_images` | `int` | `None` | If set, only keep the N most recent images in message history (adds ImageRetentionCallback) | -| `callbacks` | `List[Any]` | `None` | List of AsyncCallbackHandler instances for preprocessing/postprocessing | -| `verbosity` | `int` | `None` | Logging level (`logging.DEBUG`, `logging.INFO`, etc.; adds LoggingCallback) | -| `trajectory_dir` | `str` | `None` | Directory to save trajectory data (adds TrajectorySaverCallback) | -| `max_retries` | `int` | `3` | Maximum number of retries for failed API calls | -| `screenshot_delay` | `float` \| `int` | `0.5` | Delay before screenshots (seconds) | -| `use_prompt_caching` | `bool` | `False` | Use prompt caching to avoid reprocessing the same prompt (mainly for Anthropic) | -| `max_trajectory_budget` | `float` \| `dict` | `None` | If set, adds BudgetManagerCallback to track usage costs and stop when budget is exceeded | -| `**kwargs` | _any_ | | Additional arguments passed to the agent loop | - -#### Parameter Details - -- **model**: The LLM or agent model to use. Determines which agent loop is selected unless `custom_loop` is provided. -- **tools**: List of tools the agent can use (e.g., `Computer`, sandboxed Python functions, etc.). -- **custom_loop**: Optional custom agent loop function. If provided, overrides automatic loop selection. -- **only_n_most_recent_images**: If set, only the N most recent images are kept in the message history. Useful for limiting memory usage. Automatically adds `ImageRetentionCallback`. -- **callbacks**: List of callback instances for advanced preprocessing, postprocessing, logging, or custom hooks. See [Callbacks & Extensibility](#callbacks--extensibility). -- **verbosity**: Logging level (e.g., `logging.INFO`). If set, adds a logging callback. -- **trajectory_dir**: Directory path to save full trajectory data, including screenshots and responses. Adds `TrajectorySaverCallback`. -- **max_retries**: Maximum number of retries for failed API calls (default: 3). -- **screenshot_delay**: Delay (in seconds) before taking screenshots (default: 0.5). -- **use_prompt_caching**: Enables prompt caching for repeated prompts (mainly for Anthropic models). -- **max_trajectory_budget**: If set (float or dict), adds a budget manager callback that tracks usage costs and stops execution if the budget is exceeded. Dict allows advanced options (e.g., `{ "max_budget": 5.0, "raise_error": True }`). -- **\*\*kwargs**: Any additional keyword arguments are passed through to the agent loop or model provider. - -**Example with advanced options:** - -```python -from agent import ComputerAgent -from computer import Computer -from agent.callbacks import ImageRetentionCallback - -agent = ComputerAgent( - model="anthropic/claude-3-5-sonnet-20241022", - tools=[Computer(...)], - only_n_most_recent_images=3, - callbacks=[ImageRetentionCallback(only_n_most_recent_images=3)], - verbosity=logging.INFO, - trajectory_dir="trajectories", - max_retries=5, - screenshot_delay=1.0, - use_prompt_caching=True, - max_trajectory_budget={"max_budget": 5.0, "raise_error": True} -) -``` - ---- - -### Message Array (Multi-turn) - -```python -messages = [ - {"role": "user", "content": "go to trycua on gh"}, - # ... (reasoning, computer_call, computer_call_output, etc) -] -async for result in agent.run(messages): - # Handle output, tool invocations, screenshots, etc. - print("Agent:", result["output"][-1]["content"][0]["text"]) - messages += result["output"] # Add agent output to message array - ... -``` - -### Callbacks & Extensibility - -You can add preprocessing and postprocessing hooks using callbacks, or write your own by subclassing `AsyncCallbackHandler`: - -```python -from agent.callbacks import ImageRetentionCallback, PIIAnonymizationCallback - -agent = ComputerAgent( - model="anthropic/claude-3-5-sonnet-20241022", - tools=[computer], - callbacks=[ImageRetentionCallback(only_n_most_recent_images=3)] -) -``` +See the [Callbacks](../agent-sdk/callbacks) documentation for extending and customizing agent behavior with custom hooks. From 110e6482c1398d22cc84a97456557efdcf8a2f16 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 28 Aug 2025 08:55:56 -0400 Subject: [PATCH 074/103] Consolidate constructor items table and list --- docs/content/docs/agent-sdk/agent-loops.mdx | 55 ++++++++++----------- 1 file changed, 25 insertions(+), 30 deletions(-) diff --git a/docs/content/docs/agent-sdk/agent-loops.mdx b/docs/content/docs/agent-sdk/agent-loops.mdx index 22b54836..d443c3ce 100644 --- a/docs/content/docs/agent-sdk/agent-loops.mdx +++ b/docs/content/docs/agent-sdk/agent-loops.mdx @@ -31,39 +31,34 @@ async for result in agent.run(prompt): For a list of supported models and configurations, see the [Supported Agents](./supported-agents/computer-use-agents) page. -### ComputerAgent Constructor Options +### Parameters The `ComputerAgent` constructor provides a wide range of options for customizing agent behavior, tool integration, callbacks, resource management, and more. -| Parameter | Type | Default | Description | -| --------------------------- | ----------------- | ------------ | ---------------------------------------------------------------------------------------------------- | -| `model` | `str` | **required** | Model name (e.g., "claude-3-5-sonnet-20241022", "computer-use-preview", "omni+vertex_ai/gemini-pro") | -| `tools` | `List[Any]` | `None` | List of tools (e.g., computer objects, decorated functions) | -| `custom_loop` | `Callable` | `None` | Custom agent loop function (overrides auto-selection) | -| `only_n_most_recent_images` | `int` | `None` | If set, only keep the N most recent images in message history (adds ImageRetentionCallback) | -| `callbacks` | `List[Any]` | `None` | List of AsyncCallbackHandler instances for preprocessing/postprocessing | -| `verbosity` | `int` | `None` | Logging level (`logging.DEBUG`, `logging.INFO`, etc.; adds LoggingCallback) | -| `trajectory_dir` | `str` | `None` | Directory to save trajectory data (adds TrajectorySaverCallback) | -| `max_retries` | `int` | `3` | Maximum number of retries for failed API calls | -| `screenshot_delay` | `float` \| `int` | `0.5` | Delay before screenshots (seconds) | -| `use_prompt_caching` | `bool` | `False` | Use prompt caching to avoid reprocessing the same prompt (mainly for Anthropic) | -| `max_trajectory_budget` | `float` \| `dict` | `None` | If set, adds BudgetManagerCallback to track usage costs and stop when budget is exceeded | -| `**kwargs` | _any_ | | Additional arguments passed to the agent loop | - -#### Parameter Details - -- **model**: The LLM or agent model to use. Determines which agent loop is selected unless `custom_loop` is provided. -- **tools**: List of tools the agent can use (e.g., `Computer`, sandboxed Python functions, etc.). -- **custom_loop**: Optional custom agent loop function. If provided, overrides automatic loop selection. -- **only_n_most_recent_images**: If set, only the N most recent images are kept in the message history. Useful for limiting memory usage. Automatically adds `ImageRetentionCallback`. -- **callbacks**: List of callback instances for advanced preprocessing, postprocessing, logging, or custom hooks. See [Callbacks & Extensibility](#callbacks--extensibility). -- **verbosity**: Logging level (e.g., `logging.INFO`). If set, adds a logging callback. -- **trajectory_dir**: Directory path to save full trajectory data, including screenshots and responses. Adds `TrajectorySaverCallback`. -- **max_retries**: Maximum number of retries for failed API calls (default: 3). -- **screenshot_delay**: Delay (in seconds) before taking screenshots (default: 0.5). -- **use_prompt_caching**: Enables prompt caching for repeated prompts (mainly for Anthropic models). -- **max_trajectory_budget**: If set (float or dict), adds a budget manager callback that tracks usage costs and stops execution if the budget is exceeded. Dict allows advanced options (e.g., `{ "max_budget": 5.0, "raise_error": True }`). -- **\*\*kwargs**: Any additional keyword arguments are passed through to the agent loop or model provider. +- `model` (`str`): Default: **required** + The LLM or agent model to use. Determines which agent loop is selected unless `custom_loop` is provided. (e.g., "claude-3-5-sonnet-20241022", "computer-use-preview", "omni+vertex_ai/gemini-pro") +- `tools` (`List[Any]`): + List of tools the agent can use (e.g., `Computer`, sandboxed Python functions, etc.). +- `custom_loop` (`Callable`): + Optional custom agent loop function. If provided, overrides automatic loop selection. +- `only_n_most_recent_images` (`int`): + If set, only the N most recent images are kept in the message history. Useful for limiting memory usage. Automatically adds `ImageRetentionCallback`. +- `callbacks` (`List[Any]`): + List of callback instances for advanced preprocessing, postprocessing, logging, or custom hooks. See [Callbacks & Extensibility](#callbacks--extensibility). +- `verbosity` (`int`): + Logging level (e.g., `logging.INFO`). If set, adds a logging callback. +- `trajectory_dir` (`str`): + Directory path to save full trajectory data, including screenshots and responses. Adds `TrajectorySaverCallback`. +- `max_retries` (`int`): Default: `3` + Maximum number of retries for failed API calls (default: 3). +- `screenshot_delay` (`float` | `int`): Default: `0.5` + Delay (in seconds) before taking screenshots (default: 0.5). +- `use_prompt_caching` (`bool`): Default: `False` + Enables prompt caching for repeated prompts (mainly for Anthropic models). +- `max_trajectory_budget` (`float` | `dict`): + If set (float or dict), adds a budget manager callback that tracks usage costs and stops execution if the budget is exceeded. Dict allows advanced options (e.g., `{ "max_budget": 5.0, "raise_error": True }`). +- `**kwargs` (`any`): + Any additional keyword arguments are passed through to the agent loop or model provider. **Example with advanced options:** From e17f6106c80640a96b804822b8230c714d7aaa75 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 28 Aug 2025 11:07:20 -0400 Subject: [PATCH 075/103] Move text from README to Cua documentation --- docs/content/docs/agent-sdk/agent-loops.mdx | 91 ++++- .../docs/agent-sdk/callbacks/cost-saving.mdx | 12 +- .../docs/agent-sdk/callbacks/index.mdx | 47 ++- .../docs/agent-sdk/callbacks/trajectories.mdx | 10 +- .../{sandboxed-tools.mdx => custom-tools.mdx} | 24 +- docs/content/docs/agent-sdk/meta.json | 4 +- .../supported-model-providers/index.mdx | 32 ++ .../local-models.mdx | 0 docs/content/docs/quickstart-devs.mdx | 10 + libs/python/agent/README.md | 317 +----------------- 10 files changed, 223 insertions(+), 324 deletions(-) rename docs/content/docs/agent-sdk/{sandboxed-tools.mdx => custom-tools.mdx} (65%) create mode 100644 docs/content/docs/agent-sdk/supported-model-providers/index.mdx rename docs/content/docs/agent-sdk/{ => supported-model-providers}/local-models.mdx (100%) diff --git a/docs/content/docs/agent-sdk/agent-loops.mdx b/docs/content/docs/agent-sdk/agent-loops.mdx index d443c3ce..6a18f064 100644 --- a/docs/content/docs/agent-sdk/agent-loops.mdx +++ b/docs/content/docs/agent-sdk/agent-loops.mdx @@ -22,7 +22,7 @@ agent = ComputerAgent( tools=[computer] ) -prompt = "open github, navigate to trycua/cua" +prompt = "Take a screenshot and tell me what you see" async for result in agent.run(prompt): if result["output"][-1]["type"] == "message": @@ -31,6 +31,69 @@ async for result in agent.run(prompt): For a list of supported models and configurations, see the [Supported Agents](./supported-agents/computer-use-agents) page. +### Response Format + +```python +{ + "output": [ + { + "type": "message", + "role": "assistant", + "content": [{"type": "output_text", "text": "I can see..."}] + }, + { + "type": "computer_call", + "action": {"type": "screenshot"}, + "call_id": "call_123" + }, + { + "type": "computer_call_output", + "call_id": "call_123", + "output": {"image_url": "data:image/png;base64,..."} + } + ], + "usage": { + "prompt_tokens": 150, + "completion_tokens": 75, + "total_tokens": 225, + "response_cost": 0.01, + } +} +``` + +### Environment Variables + +Use the following environment variables to configure the agent and its access to cloud computers and LLM providers: + +```bash +# Computer instance (cloud) +export CUA_CONTAINER_NAME="your-container-name" +export CUA_API_KEY="your-cua-api-key" + +# LLM API keys +export ANTHROPIC_API_KEY="your-anthropic-key" +export OPENAI_API_KEY="your-openai-key" +``` + +### Input and output + +The input prompt passed to `Agent.run` can either be a string or a list of message dictionaries: + +```python +messages = [ + { + "role": "user", + "content": "Take a screenshot and describe what you see" + }, + { + "role": "assistant", + "content": "I'll take a screenshot for you." + } +] +``` + +The output is an AsyncGenerator that yields response chunks. + ### Parameters The `ComputerAgent` constructor provides a wide range of options for customizing agent behavior, tool integration, callbacks, resource management, and more. @@ -79,4 +142,30 @@ agent = ComputerAgent( use_prompt_caching=True, max_trajectory_budget={"max_budget": 5.0, "raise_error": True} ) +``` + +### Streaming Responses + +```python +async for result in agent.run(messages, stream=True): + # Process streaming chunks + for item in result["output"]: + if item["type"] == "message": + print(item["content"][0]["text"], end="", flush=True) + elif item["type"] == "computer_call": + action = item["action"] + print(f"\n[Action: {action['type']}]") +``` + +### Error Handling + +```python +try: + async for result in agent.run(messages): + # Process results + pass +except BudgetExceededException: + print("Budget limit exceeded") +except Exception as e: + print(f"Agent error: {e}") ``` \ No newline at end of file diff --git a/docs/content/docs/agent-sdk/callbacks/cost-saving.mdx b/docs/content/docs/agent-sdk/callbacks/cost-saving.mdx index 9a543dc1..0787b1f6 100644 --- a/docs/content/docs/agent-sdk/callbacks/cost-saving.mdx +++ b/docs/content/docs/agent-sdk/callbacks/cost-saving.mdx @@ -28,19 +28,23 @@ agent = ComputerAgent( ## Budget Manager Shorthand ```python +# Simple budget limit agent = ComputerAgent( model="anthropic/claude-3-5-sonnet-20241022", - tools=[computer], - max_trajectory_budget=5.0 # Auto-adds BudgetManagerCallback + max_trajectory_budget=5.0 # $5 limit ) ``` **Or with options:** ```python +# Advanced budget configuration agent = ComputerAgent( model="anthropic/claude-3-5-sonnet-20241022", - tools=[computer], - max_trajectory_budget={"max_budget": 5.0, "raise_error": True} + max_trajectory_budget={ + "max_budget": 10.0, + "raise_error": True, # Raise error when exceeded + "reset_after_each_run": False # Persistent across runs + } ) ``` diff --git a/docs/content/docs/agent-sdk/callbacks/index.mdx b/docs/content/docs/agent-sdk/callbacks/index.mdx index 0d0f7de4..590c236a 100644 --- a/docs/content/docs/agent-sdk/callbacks/index.mdx +++ b/docs/content/docs/agent-sdk/callbacks/index.mdx @@ -4,26 +4,61 @@ title: Callbacks Callbacks in the Agent SDK provide hooks into the agent's lifecycle, allowing for custom functionality to be executed at various stages of an agent's run. They enable extensibility by allowing developers to integrate their own logic for tasks such as logging, cost management, and data anonymization. -The callback lifecycle is described in [Agent Lifecycle](callbacks/agent-lifecycle). - ## Usage -You can add preprocessing and postprocessing hooks using callbacks, or write your own by subclassing `AsyncCallbackHandler`: +You can add preprocessing and postprocessing hooks using callbacks, or write your own by subclassing `AsyncCallbackHandler`. + +### Built-in Callbacks + +Built-in callbacks can be used as follows: ```python -from agent.callbacks import ImageRetentionCallback, PIIAnonymizationCallback +from agent.callbacks import ( + ImageRetentionCallback, + TrajectorySaverCallback, + BudgetManagerCallback, + LoggingCallback +) agent = ComputerAgent( model="anthropic/claude-3-5-sonnet-20241022", tools=[computer], - callbacks=[ImageRetentionCallback(only_n_most_recent_images=3)] + callbacks=[ + ImageRetentionCallback(only_n_most_recent_images=3), + TrajectorySaverCallback(trajectory_dir="trajectories"), + BudgetManagerCallback(max_budget=10.0, raise_error=True), + LoggingCallback(level=logging.INFO) + ] ) ``` -## Built-in Callbacks +The following built-in callbacks are available: - [BudgetManagerCallback](callbacks/cost-saving): Stops execution when budget exceeded - [LoggingCallback](callbacks/trajectories): Logs agent activities - **ImageRetentionCallback**: Limits recent images in context - **TrajectorySaverCallback**: Saves conversation trajectories - [PII Anonymization](callbacks/pii-anonymization) + +### Custom Callbacks + +Create custom callbacks using knowlege of the callback lifecycle as described in [Agent Lifecycle](callbacks/agent-lifecycle). + +```python +from agent.callbacks.base import AsyncCallbackHandler + +class CustomCallback(AsyncCallbackHandler): + async def on_llm_start(self, messages): + """Preprocess messages before LLM call""" + # Add custom preprocessing logic + return messages + + async def on_llm_end(self, messages): + """Postprocess messages after LLM call""" + # Add custom postprocessing logic + return messages + + async def on_usage(self, usage): + """Track usage information""" + print(f"Tokens used: {usage.total_tokens}") +``` diff --git a/docs/content/docs/agent-sdk/callbacks/trajectories.mdx b/docs/content/docs/agent-sdk/callbacks/trajectories.mdx index 8799c5eb..8118f217 100644 --- a/docs/content/docs/agent-sdk/callbacks/trajectories.mdx +++ b/docs/content/docs/agent-sdk/callbacks/trajectories.mdx @@ -29,8 +29,8 @@ agent = ComputerAgent( ```python agent = ComputerAgent( model="anthropic/claude-3-5-sonnet-20241022", - tools=[computer], - trajectory_dir="trajectories" # Auto-adds TrajectorySaverCallback + trajectory_dir="trajectories", # Auto-save trajectories + tools=[computer] ) ``` @@ -46,6 +46,12 @@ The viewer provides: ## Trajectory Structure +Trajectories are saved with: +- Complete conversation history +- Usage statistics and costs +- Timestamps and metadata +- Screenshots and computer actions + Each trajectory contains: - **metadata.json**: Run info, timestamps, usage stats (`total_tokens`, `response_cost`) - **turn_000/**: Turn-by-turn conversation history (api calls, responses, computer calls, screenshots) diff --git a/docs/content/docs/agent-sdk/sandboxed-tools.mdx b/docs/content/docs/agent-sdk/custom-tools.mdx similarity index 65% rename from docs/content/docs/agent-sdk/sandboxed-tools.mdx rename to docs/content/docs/agent-sdk/custom-tools.mdx index 8fafce7a..00847cf6 100644 --- a/docs/content/docs/agent-sdk/sandboxed-tools.mdx +++ b/docs/content/docs/agent-sdk/custom-tools.mdx @@ -1,11 +1,29 @@ --- -title: Sandboxed Tools -slug: sandboxed-tools +title: Custom Tools +slug: custom-tools --- The Agent SDK supports defining custom Python tools that run securely in sandboxed environments on remote Cua Computers. This enables safe execution of user-defined functions, isolation of dependencies, and robust automation workflows. -## Example: Defining a Sandboxed Tool +## Custom Tools + +Define a custom tool for an agent: + +```python +def calculate(a: int, b: int) -> int: + """Calculate the sum of two integers""" + return a + b + +# Use with agent +agent = ComputerAgent( + model="anthropic/claude-3-5-sonnet-20241022", + tools=[computer, calculate] +) +``` + +## Sandboxed Tools + +Define a sandboxed tool: ```python from computer.helpers import sandboxed diff --git a/docs/content/docs/agent-sdk/meta.json b/docs/content/docs/agent-sdk/meta.json index 5db33148..07bf7199 100644 --- a/docs/content/docs/agent-sdk/meta.json +++ b/docs/content/docs/agent-sdk/meta.json @@ -4,11 +4,11 @@ "pages": [ "agent-loops", "supported-agents", + "supported-model-providers", "chat-history", "callbacks", - "sandboxed-tools", + "custom-tools", "custom-computer-handlers", - "local-models", "prompt-caching", "usage-tracking", "benchmarks", diff --git a/docs/content/docs/agent-sdk/supported-model-providers/index.mdx b/docs/content/docs/agent-sdk/supported-model-providers/index.mdx new file mode 100644 index 00000000..68e372b1 --- /dev/null +++ b/docs/content/docs/agent-sdk/supported-model-providers/index.mdx @@ -0,0 +1,32 @@ +--- +title: Supported Model Providers +--- + +## Supported Models + +### Anthropic Claude (Computer Use API) +```python +model="anthropic/claude-3-5-sonnet-20241022" +model="anthropic/claude-3-7-sonnet-20250219" +model="anthropic/claude-opus-4-20250514" +model="anthropic/claude-sonnet-4-20250514" +``` + +### OpenAI Computer Use Preview +```python +model="openai/computer-use-preview" +``` + +### UI-TARS (Local or Huggingface Inference) +```python +model="huggingface-local/ByteDance-Seed/UI-TARS-1.5-7B" +model="ollama_chat/0000/ui-tars-1.5-7b" +``` + +### Omniparser + Any LLM +```python +model="omniparser+ollama_chat/mistral-small3.2" +model="omniparser+vertex_ai/gemini-pro" +model="omniparser+anthropic/claude-3-5-sonnet-20241022" +model="omniparser+openai/gpt-4o" +``` \ No newline at end of file diff --git a/docs/content/docs/agent-sdk/local-models.mdx b/docs/content/docs/agent-sdk/supported-model-providers/local-models.mdx similarity index 100% rename from docs/content/docs/agent-sdk/local-models.mdx rename to docs/content/docs/agent-sdk/supported-model-providers/local-models.mdx diff --git a/docs/content/docs/quickstart-devs.mdx b/docs/content/docs/quickstart-devs.mdx index 9b220081..37367709 100644 --- a/docs/content/docs/quickstart-devs.mdx +++ b/docs/content/docs/quickstart-devs.mdx @@ -87,6 +87,16 @@ Choose how you want to run your cua computer. **Cloud containers are recommended ```bash pip install "cua-agent[all]" cua-computer + + # or install specific providers + pip install "cua-agent[openai]" # OpenAI computer-use-preview support + pip install "cua-agent[anthropic]" # Anthropic Claude support + pip install "cua-agent[omni]" # Omniparser + any LLM support + pip install "cua-agent[uitars]" # UI-TARS + pip install "cua-agent[uitars-mlx]" # UI-TARS + MLX support + pip install "cua-agent[uitars-hf]" # UI-TARS + Huggingface support + pip install "cua-agent[glm45v-hf]" # GLM-4.5V + Huggingface support + pip install "cua-agent[ui]" # Gradio UI support ``` diff --git a/libs/python/agent/README.md b/libs/python/agent/README.md index cec3cd45..ed90076b 100644 --- a/libs/python/agent/README.md +++ b/libs/python/agent/README.md @@ -29,16 +29,6 @@ ```bash pip install "cua-agent[all]" - -# or install specific providers -pip install "cua-agent[openai]" # OpenAI computer-use-preview support -pip install "cua-agent[anthropic]" # Anthropic Claude support -pip install "cua-agent[omni]" # Omniparser + any LLM support -pip install "cua-agent[uitars]" # UI-TARS -pip install "cua-agent[uitars-mlx]" # UI-TARS + MLX support -pip install "cua-agent[uitars-hf]" # UI-TARS + Huggingface support -pip install "cua-agent[glm45v-hf]" # GLM-4.5V + Huggingface support -pip install "cua-agent[ui]" # Gradio UI support ``` ## Quick Start @@ -79,303 +69,18 @@ if __name__ == "__main__": asyncio.run(main()) ``` -## Supported Models +## Docs -### Anthropic Claude (Computer Use API) -```python -model="anthropic/claude-3-5-sonnet-20241022" -model="anthropic/claude-3-7-sonnet-20250219" -model="anthropic/claude-opus-4-20250514" -model="anthropic/claude-sonnet-4-20250514" -``` - -### OpenAI Computer Use Preview -```python -model="openai/computer-use-preview" -``` - -### UI-TARS (Local or Huggingface Inference) -```python -model="huggingface-local/ByteDance-Seed/UI-TARS-1.5-7B" -model="ollama_chat/0000/ui-tars-1.5-7b" -``` - -### Omniparser + Any LLM -```python -model="omniparser+ollama_chat/mistral-small3.2" -model="omniparser+vertex_ai/gemini-pro" -model="omniparser+anthropic/claude-3-5-sonnet-20241022" -model="omniparser+openai/gpt-4o" -``` - -## Custom Tools - -Define custom tools using decorated functions: - -```python -from computer.helpers import sandboxed - -@sandboxed() -def read_file(location: str) -> str: - """Read contents of a file - - Parameters - ---------- - location : str - Path to the file to read - - Returns - ------- - str - Contents of the file or error message - """ - try: - with open(location, 'r') as f: - return f.read() - except Exception as e: - return f"Error reading file: {str(e)}" - -def calculate(a: int, b: int) -> int: - """Calculate the sum of two integers""" - return a + b - -# Use with agent -agent = ComputerAgent( - model="anthropic/claude-3-5-sonnet-20241022", - tools=[computer, read_file, calculate] -) -``` - -## Callbacks System - -agent provides a comprehensive callback system for extending functionality: - -### Built-in Callbacks - -```python -from agent.callbacks import ( - ImageRetentionCallback, - TrajectorySaverCallback, - BudgetManagerCallback, - LoggingCallback -) - -agent = ComputerAgent( - model="anthropic/claude-3-5-sonnet-20241022", - tools=[computer], - callbacks=[ - ImageRetentionCallback(only_n_most_recent_images=3), - TrajectorySaverCallback(trajectory_dir="trajectories"), - BudgetManagerCallback(max_budget=10.0, raise_error=True), - LoggingCallback(level=logging.INFO) - ] -) -``` - -### Custom Callbacks - -```python -from agent.callbacks.base import AsyncCallbackHandler - -class CustomCallback(AsyncCallbackHandler): - async def on_llm_start(self, messages): - """Preprocess messages before LLM call""" - # Add custom preprocessing logic - return messages - - async def on_llm_end(self, messages): - """Postprocess messages after LLM call""" - # Add custom postprocessing logic - return messages - - async def on_usage(self, usage): - """Track usage information""" - print(f"Tokens used: {usage.total_tokens}") -``` - -## Budget Management - -Control costs with built-in budget management: - -```python -# Simple budget limit -agent = ComputerAgent( - model="anthropic/claude-3-5-sonnet-20241022", - max_trajectory_budget=5.0 # $5 limit -) - -# Advanced budget configuration -agent = ComputerAgent( - model="anthropic/claude-3-5-sonnet-20241022", - max_trajectory_budget={ - "max_budget": 10.0, - "raise_error": True, # Raise error when exceeded - "reset_after_each_run": False # Persistent across runs - } -) -``` - -## Trajectory Management - -Save and replay agent conversations: - -```python -agent = ComputerAgent( - model="anthropic/claude-3-5-sonnet-20241022", - trajectory_dir="trajectories", # Auto-save trajectories - tools=[computer] -) - -# Trajectories are saved with: -# - Complete conversation history -# - Usage statistics and costs -# - Timestamps and metadata -# - Screenshots and computer actions -``` - -## Configuration Options - -### ComputerAgent Parameters - -- `model`: Model identifier (required) -- `tools`: List of computer objects and decorated functions -- `callbacks`: List of callback handlers for extensibility -- `only_n_most_recent_images`: Limit recent images to prevent context overflow -- `verbosity`: Logging level (logging.INFO, logging.DEBUG, etc.) -- `trajectory_dir`: Directory to save conversation trajectories -- `max_retries`: Maximum API call retries (default: 3) -- `screenshot_delay`: Delay between actions and screenshots (default: 0.5s) -- `use_prompt_caching`: Enable prompt caching for supported models -- `max_trajectory_budget`: Budget limit configuration - -### Environment Variables - -```bash -# Computer instance (cloud) -export CUA_CONTAINER_NAME="your-container-name" -export CUA_API_KEY="your-cua-api-key" - -# LLM API keys -export ANTHROPIC_API_KEY="your-anthropic-key" -export OPENAI_API_KEY="your-openai-key" -``` - -## Advanced Usage - -### Streaming Responses - -```python -async for result in agent.run(messages, stream=True): - # Process streaming chunks - for item in result["output"]: - if item["type"] == "message": - print(item["content"][0]["text"], end="", flush=True) - elif item["type"] == "computer_call": - action = item["action"] - print(f"\n[Action: {action['type']}]") -``` - -### Interactive Chat Loop - -```python -history = [] -while True: - user_input = input("> ") - if user_input.lower() in ['quit', 'exit']: - break - - history.append({"role": "user", "content": user_input}) - - async for result in agent.run(history): - history += result["output"] - - # Display assistant responses - for item in result["output"]: - if item["type"] == "message": - print(item["content"][0]["text"]) -``` - -### Error Handling - -```python -try: - async for result in agent.run(messages): - # Process results - pass -except BudgetExceededException: - print("Budget limit exceeded") -except Exception as e: - print(f"Agent error: {e}") -``` - -## API Reference - -### ComputerAgent.run() - -```python -async def run( - self, - messages: Messages, - stream: bool = False, - **kwargs -) -> AsyncGenerator[Dict[str, Any], None]: - """ - Run the agent with the given messages. - - Args: - messages: List of message dictionaries - stream: Whether to stream the response - **kwargs: Additional arguments - - Returns: - AsyncGenerator that yields response chunks - """ -``` - -### Message Format - -```python -messages = [ - { - "role": "user", - "content": "Take a screenshot and describe what you see" - }, - { - "role": "assistant", - "content": "I'll take a screenshot for you." - } -] -``` - -### Response Format - -```python -{ - "output": [ - { - "type": "message", - "role": "assistant", - "content": [{"type": "output_text", "text": "I can see..."}] - }, - { - "type": "computer_call", - "action": {"type": "screenshot"}, - "call_id": "call_123" - }, - { - "type": "computer_call_output", - "call_id": "call_123", - "output": {"image_url": "data:image/png;base64,..."} - } - ], - "usage": { - "prompt_tokens": 150, - "completion_tokens": 75, - "total_tokens": 225, - "response_cost": 0.01, - } -} -``` +- [Agent Loops](https://trycua.com/docs/agent-sdk/agent-loops) +- [Supported Agents](https://trycua.com/docs/agent-sdk/supported-agents) +- [Supported Models](https://trycua.com/docs/agent-sdk/supported-models) +- [Chat History](https://trycua.com/docs/agent-sdk/chat-history) +- [Callbacks](https://trycua.com/docs/agent-sdk/callbacks) +- [Custom Tools](https://trycua.com/docs/agent-sdk/custom-tools) +- [Custom Computer Handlers](https://trycua.com/docs/agent-sdk/custom-computer-handlers) +- [Prompt Caching](https://trycua.com/docs/agent-sdk/prompt-caching) +- [Usage Tracking](https://trycua.com/docs/agent-sdk/usage-tracking) +- [Benchmarks](https://trycua.com/docs/agent-sdk/benchmarks) ## License From b357a9efd3984491cdba36218b564fdb900b7865 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 28 Aug 2025 06:17:25 -0400 Subject: [PATCH 076/103] Move Computer UI instructions from README to Cua documentation --- .../content/docs/computer-sdk/computer-ui.mdx | 78 ++++++++++++++++++ docs/content/docs/computer-sdk/meta.json | 1 + libs/python/computer/README.md | 80 +------------------ 3 files changed, 80 insertions(+), 79 deletions(-) create mode 100644 docs/content/docs/computer-sdk/computer-ui.mdx diff --git a/docs/content/docs/computer-sdk/computer-ui.mdx b/docs/content/docs/computer-sdk/computer-ui.mdx new file mode 100644 index 00000000..e90e9f08 --- /dev/null +++ b/docs/content/docs/computer-sdk/computer-ui.mdx @@ -0,0 +1,78 @@ +--- +title: Computer UI +--- + +The computer module includes a Gradio UI for creating and sharing demonstration data. We make it easy for people to build community datasets for better computer use models with an upload to Huggingface feature. + +```bash +# Install with UI support +pip install "cua-computer[ui]" +``` + +> **Note:** For precise control of the computer, we recommend using VNC or Screen Sharing instead of the Computer Gradio UI. + +### Building and Sharing Demonstrations with Huggingface + +Follow these steps to contribute your own demonstrations: + +#### 1. Set up Huggingface Access + +Set your HF_TOKEN in a .env file or in your environment variables: + +```bash +# In .env file +HF_TOKEN=your_huggingface_token +``` + +#### 2. Launch the Computer UI + +```python +# launch_ui.py +from computer.ui.gradio.app import create_gradio_ui +from dotenv import load_dotenv +load_dotenv('.env') + +app = create_gradio_ui() +app.launch(share=False) +``` + +For examples, see [Computer UI Examples](https://github.com/trycua/cua/tree/main/examples/computer_ui_examples.py) + +#### 3. Record Your Tasks + +
+View demonstration video + +
+ +Record yourself performing various computer tasks using the UI. + +#### 4. Save Your Demonstrations + +
+View demonstration video + +
+ +Save each task by picking a descriptive name and adding relevant tags (e.g., "office", "web-browsing", "coding"). + +#### 5. Record Additional Demonstrations + +Repeat steps 3 and 4 until you have a good amount of demonstrations covering different tasks and scenarios. + +#### 6. Upload to Huggingface + +
+View demonstration video + +
+ +Upload your dataset to Huggingface by: +- Naming it as `{your_username}/{dataset_name}` +- Choosing public or private visibility +- Optionally selecting specific tags to upload only tasks with certain tags + +#### Examples and Resources + +- Example Dataset: [ddupont/test-dataset](https://huggingface.co/datasets/ddupont/test-dataset) +- Find Community Datasets: 🔍 [Browse CUA Datasets on Huggingface](https://huggingface.co/datasets?other=cua) \ No newline at end of file diff --git a/docs/content/docs/computer-sdk/meta.json b/docs/content/docs/computer-sdk/meta.json index f632538b..92e14612 100644 --- a/docs/content/docs/computer-sdk/meta.json +++ b/docs/content/docs/computer-sdk/meta.json @@ -4,6 +4,7 @@ "pages": [ "computers", "commands", + "computer-ui", "sandboxed-python" ] } diff --git a/libs/python/computer/README.md b/libs/python/computer/README.md index a75c4fe3..78c66566 100644 --- a/libs/python/computer/README.md +++ b/libs/python/computer/README.md @@ -63,82 +63,4 @@ The `cua-computer` PyPi package pulls automatically the latest executable versio Refer to this notebook for a step-by-step guide on how to use the Computer-Use Interface (CUI): -- [Computer-Use Interface (CUI)](https://github.com/trycua/cua/blob/main/notebooks/computer_nb.ipynb) - -## Using the Gradio Computer UI - -The computer module includes a Gradio UI for creating and sharing demonstration data. We make it easy for people to build community datasets for better computer use models with an upload to Huggingface feature. - -```bash -# Install with UI support -pip install "cua-computer[ui]" -``` - -> **Note:** For precise control of the computer, we recommend using VNC or Screen Sharing instead of the Computer Gradio UI. - -### Building and Sharing Demonstrations with Huggingface - -Follow these steps to contribute your own demonstrations: - -#### 1. Set up Huggingface Access - -Set your HF_TOKEN in a .env file or in your environment variables: - -```bash -# In .env file -HF_TOKEN=your_huggingface_token -``` - -#### 2. Launch the Computer UI - -```python -# launch_ui.py -from computer.ui.gradio.app import create_gradio_ui -from dotenv import load_dotenv -load_dotenv('.env') - -app = create_gradio_ui() -app.launch(share=False) -``` - -For examples, see [Computer UI Examples](https://github.com/trycua/cua/tree/main/examples/computer_ui_examples.py) - -#### 3. Record Your Tasks - -
-View demonstration video - -
- -Record yourself performing various computer tasks using the UI. - -#### 4. Save Your Demonstrations - -
-View demonstration video - -
- -Save each task by picking a descriptive name and adding relevant tags (e.g., "office", "web-browsing", "coding"). - -#### 5. Record Additional Demonstrations - -Repeat steps 3 and 4 until you have a good amount of demonstrations covering different tasks and scenarios. - -#### 6. Upload to Huggingface - -
-View demonstration video - -
- -Upload your dataset to Huggingface by: -- Naming it as `{your_username}/{dataset_name}` -- Choosing public or private visibility -- Optionally selecting specific tags to upload only tasks with certain tags - -#### Examples and Resources - -- Example Dataset: [ddupont/test-dataset](https://huggingface.co/datasets/ddupont/test-dataset) -- Find Community Datasets: 🔍 [Browse CUA Datasets on Huggingface](https://huggingface.co/datasets?other=cua) - +- [Computer-Use Interface (CUI)](https://github.com/trycua/cua/blob/main/notebooks/computer_nb.ipynb) \ No newline at end of file From e6d0b262d36918609e46807a1cb010b67b159c98 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 28 Aug 2025 06:23:30 -0400 Subject: [PATCH 077/103] Use callouts for notes --- docs/content/docs/computer-sdk/computer-ui.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/content/docs/computer-sdk/computer-ui.mdx b/docs/content/docs/computer-sdk/computer-ui.mdx index e90e9f08..22b131c0 100644 --- a/docs/content/docs/computer-sdk/computer-ui.mdx +++ b/docs/content/docs/computer-sdk/computer-ui.mdx @@ -9,7 +9,9 @@ The computer module includes a Gradio UI for creating and sharing demonstration pip install "cua-computer[ui]" ``` -> **Note:** For precise control of the computer, we recommend using VNC or Screen Sharing instead of the Computer Gradio UI. + +For precise control of the computer, we recommend using VNC or Screen Sharing instead of the Computer Gradio UI. + ### Building and Sharing Demonstrations with Huggingface From 2c2fb4c27493952b193e9a9aac2f1ab7db7a275e Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 28 Aug 2025 06:26:53 -0400 Subject: [PATCH 078/103] Add links to Cua documentation --- libs/python/computer/README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libs/python/computer/README.md b/libs/python/computer/README.md index 78c66566..5d7c3c9b 100644 --- a/libs/python/computer/README.md +++ b/libs/python/computer/README.md @@ -63,4 +63,11 @@ The `cua-computer` PyPi package pulls automatically the latest executable versio Refer to this notebook for a step-by-step guide on how to use the Computer-Use Interface (CUI): -- [Computer-Use Interface (CUI)](https://github.com/trycua/cua/blob/main/notebooks/computer_nb.ipynb) \ No newline at end of file +- [Computer-Use Interface (CUI)](https://github.com/trycua/cua/blob/main/notebooks/computer_nb.ipynb) + +## Docs + +- [Computers](https://trycua.com/docs/computer-sdk/computers) +- [Commands](https://trycua.com/docs/computer-sdk/commands) +- [Computer UI](https://trycua.com/docs/computer-sdk/computer-ui) +- [Sandboxed Python](https://trycua.com/docs/computer-sdk/sandboxed-python) From 8917592b854bbabfd99fc15fd02ea892b8923b0e Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 28 Aug 2025 06:41:16 -0400 Subject: [PATCH 079/103] Rewrite TypeScript README in the format of the Python README --- libs/typescript/computer/README.md | 90 ++++++++++++++---------------- 1 file changed, 42 insertions(+), 48 deletions(-) diff --git a/libs/typescript/computer/README.md b/libs/typescript/computer/README.md index b51713c2..2505ee63 100644 --- a/libs/typescript/computer/README.md +++ b/libs/typescript/computer/README.md @@ -1,28 +1,35 @@ -# Cua Computer TypeScript Library +
+

+
+ + + + Shows my svg + +
-The TypeScript library for C/cua Computer - a powerful computer control and automation library. + [![TypeScript](https://img.shields.io/badge/TypeScript-333333?logo=typescript&logoColor=white&labelColor=333333)](#) + [![macOS](https://img.shields.io/badge/macOS-000000?logo=apple&logoColor=F0F0F0)](#) + [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?&logo=discord&logoColor=white)](https://discord.com/invite/mVnXXpdE85) + [![NPM](https://img.shields.io/npm/v/@trycua/computer?color=333333)](https://www.npmjs.com/package/@trycua/computer) +

+
-## Overview +**@trycua/computer** is a Computer-Use Interface (CUI) framework powering Cua for interacting with local macOS and Linux sandboxes, Playwright-compatible, and pluggable with any AI agent systems (Cua, Langchain, CrewAI, AutoGen). Computer relies on [Lume](https://github.com/trycua/lume) for creating and managing sandbox environments. -This library is a TypeScript port of the Python computer library, providing the same functionality for controlling virtual machines and computer interfaces. It enables programmatic control of virtual machines through various providers and offers a consistent interface for interacting with the VM's operating system. +### Get started with Computer -## Installation - -```bash -npm install @trycua/computer -# or -pnpm add @trycua/computer -``` - -## Usage +
+ +
```typescript -import { Computer } from '@trycua/computer'; +import { Computer, OSType } from '@trycua/computer'; // Create a new computer instance const computer = new Computer({ osType: OSType.LINUX, - name: 's-linux-vm_id' + name: 's-linux-vm_id', apiKey: 'your-api-key' }); @@ -30,60 +37,47 @@ const computer = new Computer({ await computer.run(); // Get the computer interface for interaction -const interface = computer.interface; +const computerInterface = computer.interface; // Take a screenshot -const screenshot = await interface.getScreenshot(); +const screenshot = await computerInterface.getScreenshot(); +// In a Node.js environment, you might save it like this: +// import * as fs from 'fs'; +// fs.writeFileSync('screenshot.png', Buffer.from(screenshot)); // Click at coordinates -await interface.click(500, 300); +await computerInterface.click(500, 300); // Type text -await interface.typeText('Hello, world!'); +await computerInterface.typeText('Hello, world!'); // Stop the computer await computer.stop(); ``` -## Architecture +## Install -The library is organized into the following structure: - -### Core Components - -- **Computer Factory**: A factory object that creates appropriate computer instances -- **BaseComputer**: Abstract base class with shared functionality for all computer types -- **Types**: Type definitions for configuration options and shared interfaces - -### Provider Implementations - -- **Computer**: Implementation for cloud-based VMs - -## Development - -- Install dependencies: +To install the Computer-Use Interface (CUI): ```bash -pnpm install +npm install @trycua/computer +# or +pnpm add @trycua/computer ``` -- Run the unit tests: +The `@trycua/computer` package provides the TypeScript library for interacting with computer interfaces. -```bash -pnpm test -``` +## Run -- Build the library: +Refer to this example for a step-by-step guide on how to use the Computer-Use Interface (CUI): -```bash -pnpm build -``` +- [Computer-Use Interface (CUI)](https://github.com/trycua/cua/tree/main/examples/computer-example-ts) -- Type checking: +## Docs -```bash -pnpm typecheck -``` +- [Computers](https://trycua.com/docs/computer-sdk/computers) +- [Commands](https://trycua.com/docs/computer-sdk/commands) +- [Computer UI](https://trycua.com/docs/computer-sdk/computer-ui) ## License From 1ff757c23bcb9d4d62066cf464badf057dabe89e Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 28 Aug 2025 08:22:06 -0400 Subject: [PATCH 080/103] Move text from API Reference to Computer Playbook section --- docs/content/docs/computer-sdk/commands.mdx | 35 +++ .../docs/computer-sdk/sandboxed-python.mdx | 26 +++ .../content/docs/libraries/computer/index.mdx | 200 +----------------- 3 files changed, 68 insertions(+), 193 deletions(-) diff --git a/docs/content/docs/computer-sdk/commands.mdx b/docs/content/docs/computer-sdk/commands.mdx index 30657471..602de164 100644 --- a/docs/content/docs/computer-sdk/commands.mdx +++ b/docs/content/docs/computer-sdk/commands.mdx @@ -243,3 +243,38 @@ Access system accessibility information: ```
+ +## Delay Configuration + +Control timing between actions: + + + + ```python + # Set default delay between all actions (in seconds) + computer.interface.delay = 0.5 # 500ms delay between actions + + # Or specify delay for individual actions + await computer.interface.left_click(x, y, delay=1.0) # 1 second delay after click + await computer.interface.type_text("Hello", delay=0.2) # 200ms delay after typing + await computer.interface.press_key("enter", delay=0.5) # 500ms delay after key press + ``` + + + + +## Python Virtual Environment Operations + +Manage Python environments: + + + + ```python + # Virtual environment management + await computer.venv_install("demo_venv", ["requests", "macos-pyxa"]) # Install packages in a virtual environment + await computer.venv_cmd("demo_venv", "python -c 'import requests; print(requests.get(`https://httpbin.org/ip`).json())'') # Run a shell command in a virtual environment + await computer.venv_exec("demo_venv", python_function_or_code, *args, **kwargs) # Run a Python function in a virtual environment and return the result / raise an exception + ``` + + + \ No newline at end of file diff --git a/docs/content/docs/computer-sdk/sandboxed-python.mdx b/docs/content/docs/computer-sdk/sandboxed-python.mdx index 1e7f6b78..5f1687bf 100644 --- a/docs/content/docs/computer-sdk/sandboxed-python.mdx +++ b/docs/content/docs/computer-sdk/sandboxed-python.mdx @@ -44,6 +44,32 @@ You can also install packages in the virtual environment using the `venv_install await my_computer.venv_install("myenv", ["requests"]) ``` +## Example: Interacting with macOS Applications + +You can use sandboxed functions to interact with macOS applications on a local Cua Computer (requires `os_type="darwin"`). This is particularly useful for automation tasks that involve GUI applications. + +```python +# Example: Use sandboxed functions to execute code in a Cua Container +from computer.helpers import sandboxed + +await computer.venv_install("demo_venv", ["macos-pyxa"]) # Install packages in a virtual environment + +@sandboxed("demo_venv") +def greet_and_print(name): + """Get the HTML of the current Safari tab""" + import PyXA + safari = PyXA.Application("Safari") + html = safari.current_document.source() + print(f"Hello from inside the container, {name}!") + return {"greeted": name, "safari_html": html} + +# When a @sandboxed function is called, it will execute in the container +result = await greet_and_print("Cua") +# Result: {"greeted": "Cua", "safari_html": "..."} +# stdout and stderr are also captured and printed / raised +print("Result from sandboxed function:", result) +``` + ## Error Handling If the remote execution fails, the decorator will retry up to `max_retries` times. If all attempts fail, the last exception is raised locally. diff --git a/docs/content/docs/libraries/computer/index.mdx b/docs/content/docs/libraries/computer/index.mdx index 4ac698d6..6638f878 100644 --- a/docs/content/docs/libraries/computer/index.mdx +++ b/docs/content/docs/libraries/computer/index.mdx @@ -8,202 +8,16 @@ github: - https://github.com/trycua/cua/tree/main/libs/typescript/computer --- -The Computer library provides a Computer class that can be used to control and automate a container running the Computer Server. +The Computer library provides a Computer class for controlling and automating containers running the Computer Server. -## Reference +## Connecting to Computers -### Basic Usage +See the [Cua Computers](../computer-sdk/computers) documentation for how to connect to different computer types (cloud, local, or host desktop). -Connect to a cua cloud container: +## Computer Commands - - - ```python - from computer import Computer +See the [Commands](../computer-sdk/commands) documentation for all supported commands and interface methods (Shell, Mouse, Keyboard, File System, etc.). - computer = Computer( - os_type="linux", - provider_type="cloud", - name="your-container-name", - api_key="your-api-key" - ) +## Sandboxed Python Functions - computer = await computer.run() # Connect to a cua cloud container - ``` - - - - ```typescript - import { Computer, OSType } from '@trycua/computer'; - - const computer = new Computer({ - osType: OSType.LINUX, - name: "your-container-name", - apiKey: "your-api-key" - }); - - await computer.run(); // Connect to a cua cloud container - ``` - - - - -Connect to a cua local container: - - - - ```python - from computer import Computer - - computer = Computer( - os_type="macos" - ) - - computer = await computer.run() # Connect to the container - ``` - - - - -### Interface Actions - - - - ```python - # Shell Actions - result = await computer.interface.run_command(cmd) # Run shell command - # result.stdout, result.stderr, result.returncode - - # Mouse Actions - await computer.interface.left_click(x, y) # Left click at coordinates - await computer.interface.right_click(x, y) # Right click at coordinates - await computer.interface.double_click(x, y) # Double click at coordinates - await computer.interface.move_cursor(x, y) # Move cursor to coordinates - await computer.interface.drag_to(x, y, duration) # Drag to coordinates - await computer.interface.get_cursor_position() # Get current cursor position - await computer.interface.mouse_down(x, y, button="left") # Press and hold a mouse button - await computer.interface.mouse_up(x, y, button="left") # Release a mouse button - - # Keyboard Actions - await computer.interface.type_text("Hello") # Type text - await computer.interface.press_key("enter") # Press a single key - await computer.interface.hotkey("command", "c") # Press key combination - await computer.interface.key_down("command") # Press and hold a key - await computer.interface.key_up("command") # Release a key - - # Scrolling Actions - await computer.interface.scroll(x, y) # Scroll the mouse wheel - await computer.interface.scroll_down(clicks) # Scroll down - await computer.interface.scroll_up(clicks) # Scroll up - - # Screen Actions - await computer.interface.screenshot() # Take a screenshot - await computer.interface.get_screen_size() # Get screen dimensions - - # Clipboard Actions - await computer.interface.set_clipboard(text) # Set clipboard content - await computer.interface.copy_to_clipboard() # Get clipboard content - - # File System Operations - await computer.interface.file_exists(path) # Check if file exists - await computer.interface.directory_exists(path) # Check if directory exists - await computer.interface.read_text(path, encoding="utf-8") # Read file content - await computer.interface.write_text(path, content, encoding="utf-8") # Write file content - await computer.interface.read_bytes(path) # Read file content as bytes - await computer.interface.write_bytes(path, content) # Write file content as bytes - await computer.interface.delete_file(path) # Delete file - await computer.interface.create_dir(path) # Create directory - await computer.interface.delete_dir(path) # Delete directory - await computer.interface.list_dir(path) # List directory contents - - # Accessibility - await computer.interface.get_accessibility_tree() # Get accessibility tree - - # Delay Configuration - # Set default delay between all actions (in seconds) - computer.interface.delay = 0.5 # 500ms delay between actions - - # Or specify delay for individual actions - await computer.interface.left_click(x, y, delay=1.0) # 1 second delay after click - await computer.interface.type_text("Hello", delay=0.2) # 200ms delay after typing - await computer.interface.press_key("enter", delay=0.5) # 500ms delay after key press - - # Python Virtual Environment Operations - await computer.venv_install("demo_venv", ["requests", "macos-pyxa"]) # Install packages in a virtual environment - await computer.venv_cmd("demo_venv", "python -c 'import requests; print(requests.get(`https://httpbin.org/ip`).json())'') # Run a shell command in a virtual environment - await computer.venv_exec("demo_venv", python_function_or_code, *args, **kwargs) # Run a Python function in a virtual environment and return the result / raise an exception - - # Example: Use sandboxed functions to execute code in a Cua Container - from computer.helpers import sandboxed - - @sandboxed("demo_venv") - def greet_and_print(name): - """Get the HTML of the current Safari tab""" - import PyXA - safari = PyXA.Application("Safari") - html = safari.current_document.source() - print(f"Hello from inside the container, {name}!") - return {"greeted": name, "safari_html": html} - - # When a @sandboxed function is called, it will execute in the container - result = await greet_and_print("Cua") - # Result: {"greeted": "Cua", "safari_html": "..."} - # stdout and stderr are also captured and printed / raised - print("Result from sandboxed function:", result) - ``` - - - - ```typescript - // Shell Actions - const result = await computer.interface.runCommand(cmd); // Run shell command - // result.stdout, result.stderr, result.returncode - - // Mouse Actions - await computer.interface.leftClick(x, y); // Left click at coordinates - await computer.interface.rightClick(x, y); // Right click at coordinates - await computer.interface.doubleClick(x, y); // Double click at coordinates - await computer.interface.moveCursor(x, y); // Move cursor to coordinates - await computer.interface.dragTo(x, y, duration); // Drag to coordinates - await computer.interface.getCursorPosition(); // Get current cursor position - await computer.interface.mouseDown(x, y, "left"); // Press and hold a mouse button - await computer.interface.mouseUp(x, y, "left"); // Release a mouse button - - // Keyboard Actions - await computer.interface.typeText("Hello"); // Type text - await computer.interface.pressKey("enter"); // Press a single key - await computer.interface.hotkey("command", "c"); // Press key combination - await computer.interface.keyDown("command"); // Press and hold a key - await computer.interface.keyUp("command"); // Release a key - - // Scrolling Actions - await computer.interface.scroll(x, y); // Scroll the mouse wheel - await computer.interface.scrollDown(clicks); // Scroll down - await computer.interface.scrollUp(clicks); // Scroll up - - // Screen Actions - await computer.interface.screenshot(); // Take a screenshot - await computer.interface.getScreenSize(); // Get screen dimensions - - // Clipboard Actions - await computer.interface.setClipboard(text); // Set clipboard content - await computer.interface.copyToClipboard(); // Get clipboard content - - // File System Operations - await computer.interface.fileExists(path); // Check if file exists - await computer.interface.directoryExists(path); // Check if directory exists - await computer.interface.readText(path, "utf-8"); // Read file content - await computer.interface.writeText(path, content, "utf-8"); // Write file content - await computer.interface.readBytes(path); // Read file content as bytes - await computer.interface.writeBytes(path, content); // Write file content as bytes - await computer.interface.deleteFile(path); // Delete file - await computer.interface.createDir(path); // Create directory - await computer.interface.deleteDir(path); // Delete directory - await computer.interface.listDir(path); // List directory contents - - // Accessibility - await computer.interface.getAccessibilityTree(); // Get accessibility tree - ``` - - - +See the [Sandboxed Python](../computer-sdk/sandboxed-python) documentation for running Python functions securely in isolated environments on a remote Cua Computer. \ No newline at end of file From d4ab8d7f82d59e0264ff4370abc12fa56465ed6c Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 28 Aug 2025 08:22:12 -0400 Subject: [PATCH 081/103] Fix comments --- docs/content/docs/computer-sdk/commands.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/content/docs/computer-sdk/commands.mdx b/docs/content/docs/computer-sdk/commands.mdx index 602de164..d8e80493 100644 --- a/docs/content/docs/computer-sdk/commands.mdx +++ b/docs/content/docs/computer-sdk/commands.mdx @@ -202,17 +202,17 @@ Direct file and directory manipulation: ```typescript - // File existence checks + # File existence checks await computer.interface.fileExists(path); // Check if file exists await computer.interface.directoryExists(path); // Check if directory exists - // File content operations + # File content operations await computer.interface.readText(path, "utf-8"); // Read file content await computer.interface.writeText(path, content, "utf-8"); // Write file content await computer.interface.readBytes(path); // Read file content as bytes await computer.interface.writeBytes(path, content); // Write file content as bytes - // File and directory management + # File and directory management await computer.interface.deleteFile(path); // Delete file await computer.interface.createDir(path); // Create directory await computer.interface.deleteDir(path); // Delete directory From 78a68ae40af52e014fdfd9a06ed10677643121e0 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 28 Aug 2025 06:57:24 -0400 Subject: [PATCH 082/103] Move configuration section from README to Cua documentation --- .../docs/libraries/som/configuration.mdx | 89 +++++++++++++++++++ libs/python/som/README.md | 88 +----------------- 2 files changed, 91 insertions(+), 86 deletions(-) create mode 100644 docs/content/docs/libraries/som/configuration.mdx diff --git a/docs/content/docs/libraries/som/configuration.mdx b/docs/content/docs/libraries/som/configuration.mdx new file mode 100644 index 00000000..ec57d8ed --- /dev/null +++ b/docs/content/docs/libraries/som/configuration.mdx @@ -0,0 +1,89 @@ +--- +title: Configuration +--- + +### Detection Parameters + +#### Box Threshold (0.3) +Controls the confidence threshold for accepting detections: +``` +High Threshold (0.3): Low Threshold (0.01): ++----------------+ +----------------+ +| | | +--------+ | +| Confident | | |Unsure?| | +| Detection | | +--------+ | +| (✓ Accept) | | (? Reject) | +| | | | ++----------------+ +----------------+ +conf = 0.85 conf = 0.02 +``` +- Higher values (0.3) yield more precise but fewer detections +- Lower values (0.01) catch more potential icons but increase false positives +- Default is 0.3 for optimal precision/recall balance + +#### IOU Threshold (0.1) +Controls how overlapping detections are merged: +``` +IOU = Intersection Area / Union Area + +Low Overlap (Keep Both): High Overlap (Merge): ++----------+ +----------+ +| Box1 | | Box1 | +| | vs. |+-----+ | ++----------+ ||Box2 | | + +----------+ |+-----+ | + | Box2 | +----------+ + | | + +----------+ +IOU ≈ 0.05 (Keep Both) IOU ≈ 0.7 (Merge) +``` +- Lower values (0.1) more aggressively remove overlapping boxes +- Higher values (0.5) allow more overlapping detections +- Default is 0.1 to handle densely packed UI elements + +### OCR Configuration + +- **Engine**: EasyOCR + - Primary choice for all platforms + - Fast initialization and processing + - Built-in English language support + - GPU acceleration when available + +- **Settings**: + - Timeout: 5 seconds + - Confidence threshold: 0.5 + - Paragraph mode: Disabled + - Language: English only + +## Performance + +### Hardware Acceleration + +#### MPS (Metal Performance Shaders) +- Multi-scale detection (640px, 1280px, 1920px) +- Test-time augmentation enabled +- Half-precision (FP16) +- Average detection time: ~0.4s +- Best for production use when available + +#### CPU +- Single-scale detection (1280px) +- Full-precision (FP32) +- Average detection time: ~1.3s +- Reliable fallback option + +### Example Output Structure + +``` +examples/output/ +├── {timestamp}_no_ocr/ +│ ├── annotated_images/ +│ │ └── screenshot_analyzed.png +│ ├── screen_details.txt +│ └── summary.json +└── {timestamp}_ocr/ + ├── annotated_images/ + │ └── screenshot_analyzed.png + ├── screen_details.txt + └── summary.json +``` \ No newline at end of file diff --git a/libs/python/som/README.md b/libs/python/som/README.md index 863c8856..02802bfc 100644 --- a/libs/python/som/README.md +++ b/libs/python/som/README.md @@ -75,93 +75,9 @@ for elem in result.elements: print(f"Text: '{elem.content}', confidence={elem.confidence:.3f}") ``` -## Configuration +## Docs -### Detection Parameters - -#### Box Threshold (0.3) -Controls the confidence threshold for accepting detections: -``` -High Threshold (0.3): Low Threshold (0.01): -+----------------+ +----------------+ -| | | +--------+ | -| Confident | | |Unsure?| | -| Detection | | +--------+ | -| (✓ Accept) | | (? Reject) | -| | | | -+----------------+ +----------------+ -conf = 0.85 conf = 0.02 -``` -- Higher values (0.3) yield more precise but fewer detections -- Lower values (0.01) catch more potential icons but increase false positives -- Default is 0.3 for optimal precision/recall balance - -#### IOU Threshold (0.1) -Controls how overlapping detections are merged: -``` -IOU = Intersection Area / Union Area - -Low Overlap (Keep Both): High Overlap (Merge): -+----------+ +----------+ -| Box1 | | Box1 | -| | vs. |+-----+ | -+----------+ ||Box2 | | - +----------+ |+-----+ | - | Box2 | +----------+ - | | - +----------+ -IOU ≈ 0.05 (Keep Both) IOU ≈ 0.7 (Merge) -``` -- Lower values (0.1) more aggressively remove overlapping boxes -- Higher values (0.5) allow more overlapping detections -- Default is 0.1 to handle densely packed UI elements - -### OCR Configuration - -- **Engine**: EasyOCR - - Primary choice for all platforms - - Fast initialization and processing - - Built-in English language support - - GPU acceleration when available - -- **Settings**: - - Timeout: 5 seconds - - Confidence threshold: 0.5 - - Paragraph mode: Disabled - - Language: English only - -## Performance - -### Hardware Acceleration - -#### MPS (Metal Performance Shaders) -- Multi-scale detection (640px, 1280px, 1920px) -- Test-time augmentation enabled -- Half-precision (FP16) -- Average detection time: ~0.4s -- Best for production use when available - -#### CPU -- Single-scale detection (1280px) -- Full-precision (FP32) -- Average detection time: ~1.3s -- Reliable fallback option - -### Example Output Structure - -``` -examples/output/ -├── {timestamp}_no_ocr/ -│ ├── annotated_images/ -│ │ └── screenshot_analyzed.png -│ ├── screen_details.txt -│ └── summary.json -└── {timestamp}_ocr/ - ├── annotated_images/ - │ └── screenshot_analyzed.png - ├── screen_details.txt - └── summary.json -``` +- [Configuration](http://localhost:8090/docs/libraries/som/configuration) ## Development From 92737e44ad6c34b723a776d7d9b99dd92c5542f3 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 28 Aug 2025 07:05:22 -0400 Subject: [PATCH 083/103] Rewrite TypeScript README in the format of the Python README --- libs/typescript/core/README.md | 35 +++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/libs/typescript/core/README.md b/libs/typescript/core/README.md index bc585ce8..aecde720 100644 --- a/libs/typescript/core/README.md +++ b/libs/typescript/core/README.md @@ -1,22 +1,47 @@ -# Cua Core TypeScript Library +
+

+
+ + + + Shows my svg + +
-The core cua library with support for telemetry and other utilities. + [![TypeScript](https://img.shields.io/badge/TypeScript-333333?logo=typescript&logoColor=white&labelColor=333333)](#) + [![macOS](https://img.shields.io/badge/macOS-000000?logo=apple&logoColor=F0F0F0)](#) + [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?&logo=discord&logoColor=white)](https://discord.com/invite/mVnXXpdE85) + [![NPM](https://img.shields.io/npm/v/@trycua/core?color=333333)](https://www.npmjs.com/package/@trycua/core) +

+
+ +**Cua Core** provides essential shared functionality and utilities used across the Cua ecosystem: + +- Privacy-focused telemetry system for transparent usage analytics +- Common helper functions and utilities used by other Cua packages +- Core infrastructure components shared between modules + +## Installation + +```bash +pnpm install @trycua/core +``` ## Development -- Install dependencies: +Install dependencies: ```bash pnpm install ``` -- Run the unit tests: +Run the unit tests: ```bash pnpm test ``` -- Build the library: +Build the library: ```bash pnpm build From 29d52c04b6f1ee5caa4601fd80921c95b0e02b34 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 28 Aug 2025 07:11:42 -0400 Subject: [PATCH 084/103] Add links to Cua documentation --- libs/python/computer-server/README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libs/python/computer-server/README.md b/libs/python/computer-server/README.md index ed5d0932..0e914298 100644 --- a/libs/python/computer-server/README.md +++ b/libs/python/computer-server/README.md @@ -35,4 +35,11 @@ pip install cua-computer-server Refer to this notebook for a step-by-step guide on how to use the Computer-Use Server on the host system or VM: -- [Computer-Use Server](../../notebooks/computer_server_nb.ipynb) \ No newline at end of file +- [Computer-Use Server](../../notebooks/computer_server_nb.ipynb) + +## Docs + +- [Commands](https://trycua.com/docs/libraries/computer-server/Commands) +- [REST-API](https://trycua.com/docs/libraries/computer-server/REST-API) +- [WebSocket-API](https://trycua.com/docs/libraries/computer-server/WebSocket-API) +- [Index](https://trycua.com/docs/libraries/computer-server/index) \ No newline at end of file From 2f6c52001c39fd6c3c07ae3d141f59602b43dccc Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 28 Aug 2025 15:34:32 -0400 Subject: [PATCH 085/103] Replace ASCII diagrams with images --- .../docs/libraries/som/configuration.mdx | 27 ++---------------- docs/public/img/som_box_threshold.png | Bin 0 -> 996852 bytes docs/public/img/som_iou_threshold.png | Bin 0 -> 2259213 bytes 3 files changed, 2 insertions(+), 25 deletions(-) create mode 100644 docs/public/img/som_box_threshold.png create mode 100644 docs/public/img/som_iou_threshold.png diff --git a/docs/content/docs/libraries/som/configuration.mdx b/docs/content/docs/libraries/som/configuration.mdx index ec57d8ed..e57cdf1c 100644 --- a/docs/content/docs/libraries/som/configuration.mdx +++ b/docs/content/docs/libraries/som/configuration.mdx @@ -6,37 +6,14 @@ title: Configuration #### Box Threshold (0.3) Controls the confidence threshold for accepting detections: -``` -High Threshold (0.3): Low Threshold (0.01): -+----------------+ +----------------+ -| | | +--------+ | -| Confident | | |Unsure?| | -| Detection | | +--------+ | -| (✓ Accept) | | (? Reject) | -| | | | -+----------------+ +----------------+ -conf = 0.85 conf = 0.02 -``` +Illustration of confidence thresholds in object detection, with a high-confidence detection accepted and a low-confidence detection rejected. - Higher values (0.3) yield more precise but fewer detections - Lower values (0.01) catch more potential icons but increase false positives - Default is 0.3 for optimal precision/recall balance #### IOU Threshold (0.1) Controls how overlapping detections are merged: -``` -IOU = Intersection Area / Union Area - -Low Overlap (Keep Both): High Overlap (Merge): -+----------+ +----------+ -| Box1 | | Box1 | -| | vs. |+-----+ | -+----------+ ||Box2 | | - +----------+ |+-----+ | - | Box2 | +----------+ - | | - +----------+ -IOU ≈ 0.05 (Keep Both) IOU ≈ 0.7 (Merge) -``` +Diagram showing Intersection over Union (IOU) with low overlap between two boxes kept separate and high overlap leading to merging. - Lower values (0.1) more aggressively remove overlapping boxes - Higher values (0.5) allow more overlapping detections - Default is 0.1 to handle densely packed UI elements diff --git a/docs/public/img/som_box_threshold.png b/docs/public/img/som_box_threshold.png new file mode 100644 index 0000000000000000000000000000000000000000..80c89b31fb7a31f44ae9a9c82cc6ac85add2a314 GIT binary patch literal 996852 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%0A)bSK3hVw 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 IS6q4J?=IiAb<3b0qJTnF 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%0D6yx8m`<3}6%{g7O2npLvzu>NL_`m@kD6(8 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�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 gY!lD*vns>~K2t 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�uk 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

b+oOf$jCsC^|01YAV7sO6@;0nu!Kzn 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�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
      f*jQao>SLi^?R9M)hO$Qp?{ji zq42v#^1RGUOLodvg(`Ye`K3qdLU7V3lYh?!(d-1@c`DDQP%GMCJ+#q_6xzXTu@eQh zwf3wHx*WElu|;_JlTkG~Y=z>uM_Ga_KdK1KwP5?gv<$E7=n@RHsRy^#oCyk zkzR3TMIxBH-H~VpHtI;dLEk$-+ZquOnood9;RFCp&mPnKf7h5Myr59Gf!v{Xnp}<0 zG=7^8zXsJ?_!y>}SKsG>_0zJ*t7fxl*c4Th%gH7Lqp4G49CI}|qc*4LD*34|$A@r{ ze__Il>g&Q1S@EtgHM^1|^M-+jkv;3%nZEL`IhwuMVUSpx*Sv9t)UaNQ-hzAJH@pRU zsLFYG+0+VfzW41fb2=||Z8Su4#y3WvAWQ2IOx;R~`U(IBWV`k(44k8Lyq+L{ZVsLN z8D+3$D3=o)iUM>@ccJBpvDEIl59B34;IYwKKLaOJT${D$z6z33d6d`7RmAu|m( z_enb>VE;(LdYKeJ6rMyUt81QUU@oJOriXhl?-pDDu}wgW1y-vB_AEja1Hnnn}aYEGZk`XxtdG>+aCV zHbR1(PFoxP5Lyp21dVBid`o6*V1Ai?9heV~=N|T*lCKLW-xhdhFNaZ}kg%u^^Sj6a zilhuU@RPPhIg%8a5-C4pt3!IzzF=x4k7`!IhqP4O>vSN5RfK@=wX>dr0-cK;ILe5| z453<|GRlOMI3UHB^~QS?QAm`NzR*byi`)nRF&0w3KZ;oSSg~vnG=H~ct-|4DVrNJ+ zOw2gw@q?xv>gK|?T9r)29j97iW+>U8B4?j~OLdx^XbQL<5q#x+h1`;iCYboGa2lcu zWfP=Q$fLHn>%$-V^b}0lK>*xZgATnnqE0{reFn`#Y>0{}Tnr7RG1c^7uz`9RIx`8* z;o2n9ZiYjq2x5j51Jabi{ciq&&{IX~sPr%5E{6MMYY=n>Hu!UL%Ej1iw=2@bx|<)V z5Ra7_Kx^#+00_3}Ao1pEfd}L=6)^zDnLPqPdjh!7rnr>nxw1B-{_R+^s}iYH{k9?y zYLRD9h0MR1zEMnhT%;;VZHA<^jgtcb{N5wNND(}u*;DKZc*4R}g|kkp)yI2{J+4(% zt-Ys`m+q?dA5{2OT;?rG_7P!Y^bsubl+Fji8WmXU5-y@Sl@#ZdyQm4p#;jUppaaSt z=0%wZI;ILf9r~ovz|41ruQBe}Rs_f<+bLZ9^!gWZ0ZhpT$N+|rnd#J+d10~>@0mv9 z!c4G4{m�h=kJK)pjU(?zAaEp=}|vB)!9_aUy$zAYY1^9$#%^P78Ib71i1CD1C|A zq-M%q2BcN|Ns6-S?m}Q8Ff5>2NW|iun0rPO6uILM%6OEB#GiW zzP-TTK4^g0fcoA6ph5SV8LIR}V|*ZHw|H}4CY@I6AN2msB!R#2x+*ME4gk|Fm9Hg{ z=~opi?`rx`cK)u=%ODFurFop$I*rMNZ7hI|C^DVWl(?@)T(E_f*L2Ce8%-KkSBO6( zkhCoSDzyXXhDG;g;mX*lS$S5gSLu)O!$SPLn^TzAM2l|lj=Xc;hi_lu7y-bDi0bh- zI5;VkkJWZ3Rk-c}*Ms@>N?mNzQt7hTS1@&EnXl3O0@tfYmCMU9+h6$vMg>$ZEu945 zeO7y)JehzU=;ZUNe*9|D#`te;PjE;unQ1^=k;ms*hH3!-lu#XR;8Z6*ccB!pvV*_9 zg4YEZ%UHY<*MP6)ryvthENbSFV-?||b_))hZsqKJYM)4u%gda-TbAbaQfD!Wog@gr zE4LWIvM)q34HAmDGY$?jW%E~L4zdZr-clBE&kts&bnDApc2s|as1sq|5JoT=ATF^} zr`RS2B1d8#jW!57QC5_#w15BrH}+w??;s?tytQO{*NjO&T?`=WAO;AI&Y%IzMYD4l zB7A&-ur=tg6Wk&IB!V3YI@&$u$CqEaC9uP9dpgAZjnp4q-piU% z2gt0l0>BhbT-l8)VFN&cDitk3(GHxL2p0MW!Ptx{Z;}!deJ3EqIms-p#E`m&uyVa^ z;sSn_4T>hyKa3O+v}J&Hn+m+9W)95}#B#t89?!zYTF#L+dUwl^WXSPe)R}G>DjYDO z=v*4ngfz>#z+_b;HRLVt5&ozktcEWRdC1)4L4qq@B_VF?8V*%e9g1Z{Q<^!TQ)uPv z7*k#Ja@o;AOMSKRSsxsBD&}^c7r)s78nh~9VP|5D(xQl9$=-FX6&7T{8Xalnoc}F% zyi;*^g)3>x(he4qeFg_(PgC{w{MQ29w_6+;%!d-D^_hVt1R&y>X&?mJpb=tg8vqa? z`Z=iC@oQCbMuPxmKx@@qPugSY8{>?jl^m-aeGr+Plo&aH*!sz<(yf^{rojg=Zu-T@ zf(Q!x4Ky}BH^kl$p!bG5G$KBd)Eq$g3LKdVny#ByEM>S@8oc`1F~URjw$#K0S*0W4 z;X2=NB0bxi-&8b=Qq1cj^qZwDsgcr0{zbC)<59`D_%NcU%46Ky;ysO{h37N)d&Uv) z<%nfSyedqb_dAs6t5%Lu5dy5%LtVc(h4g^uw>m6>Yn?NQu8v|vqHE$sev+_W+0r36 zNh%zkOj)*nV2AdH7cK5%xtb&i`T2{Wic~wwDU{NsOI>AHV<|Jga*{9L+`_ABLGr^hN(*k(1kV)H5Kr=Mxph!{5FB(u_I&YhODa| zQqzNRupI4bf`?RLHFj}bRO}L)iS&@-s&&OfvVzKXdp@|_FWU}44G=qF+ZuHmO(;VE^ndJ3q<6m{9Bn#2iiAZ1_Z&o~_H~}`P zu!2&1JmWXBN_kobTPz=vKQ13nlhu%)XmYx;V#EF?PYQCB8a6%HO2QX)hmSL5>)sj@!E|MRf`G#2qTT&`- zR-ZPvtr<7y@s2#<5y+CGn+Q?bgL)&$rl;DxmYz&4qXVmyBjQ0&%CjUD;s2;&3rI6hW_h+t-VxjJLwcA8jI#8A9BGHek$)DRy5g?jv=k6j)0ML5J{z>J79Th88)j>lAv| WdI& z9t*9}3C1#0 zI0p#^%4StH_@bRlD=I!unki~N&k|93O7a?`KsmIU)+@L*SqBp(09H!^qAe|vuUFr= zPu|$(;QZWrU2>>L&2iq}TIWDF$}GMnN63JP?)iLK*1=Rr3fnSszxZaJCBR6}5WA|Y zUFY#G+L|H+I|>c}G=7=i&1Ca*dFS;iam1abp8qZhtz^X$8|Vra)H664HW#qKTG*vh z1@DYqV$L;o?6*eHfjYLW(=K&4pL6il$Ad@ET^%b6GFX#vI5bIVEhK@`kGOOH3IL_4 zh^2-@lkj6pUE@ZRMDmECECO*R)(AX3Xz;U=HGfdJ~y9HIDZ>2DnT|z`ro;owmF$yH%283| zkLg^Kx&pJap_`$4Ese58V(^qKduS;zizZJYb2$Qv^1E)H244i29i-XQ@QfQng2_l& zzz&+0M0(cO6u&BRG8nlE4$|Q-K{C|i9Q-^pAT**70!j>_ zSrt03Wih_BHm@ibrQyf^>`YAFbyHA7^GtS}sGapSYlOkMRdy#LplwG)K%&+<05tQ7 zB*{CKQ*Vnlftm1`^3@cn3Ta3pT>E@pG^D_|i?y5-?jjAx=GNds0X}N-W9lR*K<3KMK9|k{`Q7;o2Klw=yDbW2f4vxTJsD5<6 zfbNyXK+Y#7sYJYaHrZ#mAB-+m2Y^=oNJLiIHcz}%NZ>jU!7Re*{Ft2*JDxAqY73-a zK_iq6N#_tJ&pQ@z*zVCLPtu4$tnHSo)36ET4I60 zWQ9GCR{G3C1lkwQ$j#2Q+H0&q3d$*Z7wc6()JS=ik0>D;6NVG6Cs7EyZ%|GG;GnKU zlrI1rp9x~U>ppul6V5i;6l7XvY-Z8RLCEG0624c73!;>_)i?LjT`fN0ODg6=7%M%h z#CE1PGB05}2zyGZm|Cc(*6k?36%CP#zQ~pHPQ&#p9uE=j+?hCcxlA-VwMNi8Q6nTo zB<$0Np=P_!7z;N$ivYZ4aX6Q8(VlRraj!R z)_R)1!N({A6&bnEG$ed6{bG57AsVQ8bzuGkmJa&^Abe7Yc+_(Rheul(BrVR%*LD@~YMNDXOMSBs{ z{UDYI@i*-Rq@CDZI2GEVqd#)sw|aj1U{n!fis>((C+t3EaI;@PP0|tGSjo-3k4h)9 zie)y0H8m-X^j5EKd5V?vH0k;3nVo()wD%WmTGA)oEm+u1$Yhk=(d3@3(lX{gzT9t8WuY|;B5@F_M z_Vj>cX*I@4w7>F5cBzUq0(muPTLWmFcIbWI_eQYq88V%NVxcBp9uNjr=vKLaDlmsf zg-QdY{;htvJWcNO54A!XqP7Lqv>6mpt@<5ZhIy=|Zt`w091)=rAhb@1hv0NqmS)lx;WTOGkD03nDXa6z`>>&R{247N zqFJqYFmIaShB!-5Z#}Qn;>hPc;8OJ})9$O12kwdLiI=j1e~Zm#eglmgPatn<$p)TZ z1RqQ!iaZDS$9d0X7Voyd%u;oAHQAW9g6_pt&j&bXLr3SOBOld7(pu&plM+pnJe^vW zY!HQ{z8EC8Mzs>ZplmGB?mTQ96djl7%dUF@(K`O*nFz+bkY=bok4Sm0YyMnVHc5c9 z8VtuM9DX%}45JH(b^_RmTH7{gFiwK?OS;9PnS@*p0X@`loK@v1sEZg z&C;ubGblAkp7`3eQX0f-u(N|iQx=O;V*o#=bNmb}MUd5Z_JEQTR0N1lb6Krnfj%oz zV!Y#au8-X3uFOj#f~DR-=}AJ+wvpg{?R}VCEY3)f$(gPL=ePoZ+$7t6!KXch19PN z-;-dhWPI&|_!kow>%_$DYaPZGR;0c+XwWtwfUS*h7LFoxN*P@dhqKC@hGAeeAt$!O z8lDB&sgcQ)d2j{CGmERjc6D)!>Ub|*FbP=9*Oiw=AG54PL^#=tG%iFW=s1qu^&}@w z)-A4@aEJAlo#kf0QYglsS&&)P7&^QNHc|4T))}W%X5o`eu3|;5DzLPVxc+I!47 zyPIChJGZNbH~d;7HB6c~N%{ND2evX?S4icgl1gq+k@AYwwS%{#*lypeuR;M2JzRO{ zI=^+vZyLxh!$>4r!Gx%1f zhUc*q{P@BQmo3JURJEe?im-cTtZ!E4GQ)&|)xsIB?Pf{pvC9&D&!g_1`qu`p`wrMT z5aHtESgOKK+WX~N!CI-5PFb! z?4m6izua9_7UG^@!`>0L4PbtHts%4-t8zl%p}>)x;`gnp9Y8!bAw`dx=#j3E@z@PZ z^%f#(!}h4c6PTYVVVf2FTNcTI5SjCGU9q=pRe>y zJPgOE@RlB{d7;eT)-`z5XclRx6ORrcFq#qv!5hw+p6X;Y*rupHXJ$v2G>SC#BzB9- z&PQ7#Y0)H?h24Oi^sjdmgCqemtMb+j>DPaVZP5)T7(xDgw01^?{ZLAhkEzEk-7s^=F)s4Sr{_3eyoRPo? z2pcqP4UyW`A%{@r?2plyMK>}zZ-*{YB_uhK@W|?_<^F0%N1D*)#x2oRYAJn!N^Q8B zs=p|tHoLBT+ytWeJr`S>tNSP zV17*5=Tm2Cbb4KT`BZT?NT(-aWicrF&`H*!rko|oZ`okn6&eGN=PghEk;|E`=+PEw zT9;ZQsb^5QXbM+)WiPo@M1x!w7Zg?FvGPTYxg#MpVOF&w_~`l7Vx;G#OIJq78-k=* zpU(sYbN!h6M4guUgj@we)%wSSA>j%wEX7lvY=C|Tzr{nLyC`$ zz85|d6SQ_6NyZ}tgstK5A%`L%^5RmnuFPsBB+yS@NxLJ^N<)*!2rR$$Osj902VV^N z^c73pdLHEv?oDA!p;xaVdpL(bFcJ$LWyz2Uj?Ji5t}ci)Kc=~2NT}3w}VFc0vSA}8oS^Z%qD=e8PUpcxAxgwkESRKVmI$ca8 z%&3_eI7~-i`e0nBi`e%mX?r`T2#+HP^vo> zr_Au1X;zoI>k+A!%0gf!`fO_1qgjgyf^JddT*>V$&$w$9)uYLWS9Nm~*KVdB7a7;|Jmx8F;@ z(35l0oFM%05{iaU(iJKyx0Z>okhOD3NjWe&>V90HuS2;?h5hm2RO-qG4~!<#XEouH2nhfY+Z^idy#oS&D9oz@OLhc_Xy51M z4nmFlg9vA1@Uk>jl>iy6;c^NPC#b^fEWyHga4FH0IGdmqLNo7OkQ5>Ug5EnIjPqXr zNZ9-IgD{?dWVA5fJBi{tF1G^X+#+kLRoM?=_rSUwu_nJcwB1Er+3}9<+Dtch6IjE! z+*WDEhU{&O3Ai$Lfx$zShiK(l=F@igatl}CkLD9~Ri`e?iIf*LxTpSZ8NN4MrA`ZM zloh$W1h9zqgrQr5OLXNANk$JNY0t{UYu=S2RK|W$meYw6-Y_*$e+YgW7kCj>qY&`2 zffyQAtEJwuKd?Zty1HB-RSY!?2MFLy^EumoKu1a*j=@kq%jlV>RK>bx8^}Hjgk++O z!^i)nL=h`u61%-UNAnN#G8ZHR#?fUh%c`R zSJ{NI!jOGp!xvsbUe;|eBA z6Hb}4meGSh9{dUwK+Uky^{hlzWYr456)uMj9vNz4t0NoUHSy-^=))PB&gCHrJt?NR zAj)&ia`PNBc?h`1r6QAkbk+3fMQu?NOS3Rnnx(1QY|-$W2uAEF#7?vg=f_3Vh~cOn z3rN`UND!P!o|wl$Q7n-n`@C5B@7dXt2F77Yo7m6m7yuCU__%u)p}5RDGa*1QTvHq* zHf%t+0Z=1E+GlJxjh`BJM=o44e!o~rL^dG<*cY1~BEx-`Qkmxe!4)mIedKmaXHL)a zqqhGUz!uBMZl44~BaBOuu+#(j#VTnv(%2{%1M32 z0j9$r1ra`FwRpiEs{OXkvYcR6GZ!mJU}I3g(tI1@U`8xWXOi6KY#yVNWiwvoajA(; zRBa+kNzH3@wAdt$hONwQdc59&5ePVDi3Cpd567RvgRXt7@V$|hYf&H7N)mL|qbr|X zwezFgdl*PA#CVGN)p&1+Htec7ZzmxL;^#1325+jXuk&3Q+Q(LmhW_in#pM`L<7$Nn z{z#17K9N4ZX$eOHz_tN(qP^pEWMFcpBl8xGKU!;)bDsL*OYYu@Mkai`uFkIeqGyAK z_*Ng`LA#?kS6@9S9y?q)1f}SZRn-odXJ0}s8O5B)uZ504p?2UXlK?sq0klpXvG?F{ zkza{<%vV~gjPLy~41SjdSuBg-1i2@CLH33`VT)^}GX!%Jw0jgX9z)Fei}TxU`Mt_- zhP0u4f;hvn@Qx zC$t*HwI~T%Oq`Q{J$La^bWv8;Z1u26v#;JEmk)I#TY zrJH!6|G@@Z2Dz;)ZvKj;qPxWo4LWl4B1GswM7;wb>;PcD(lDoIBSHmxbO`$s4b3+Y zz4s+D8l=g%vm+1HfxI7s&9UN9VR{B)(B@gc2Nm&+YOxBg(9U~t`pC7V&|XK8NLR7B zZovvC!e~GBX$vl%Ff?Yh!6-XCe5R5G|6z zo#ETDvS+`wc3O@3T_m$$gvx?oU!dMRaq!Ka@;VrqE)ZIF@CiY#h(mu9pr<1xGwTKcY^@$?|KrR@02LG$=BCo8ZRfDzhcGkVQlOpS82 zg_jV2K14)|7oVWeX2zI;Ta-P5x0Iqi)vy7C*N2 zqxBf%Hl>U@OI*iDZ#nd#4kx#uDlLcm8@Is$-~7Zwo@VxBV98DAWL* z>)1ExeuU*s^%-^@JZ?$_xDBL6=ROY#WHe@|XtP>%Z`#5l|B5g#Vm>?S&icX<7TfWX zi0fM|%_YE}H`c$!&}TzQNB*2M&y4F18iDM-}`zC$tGS*+ZHU~daTldP<8dH#fmR&X*hc|AurW7=`^Oo_z|+Thrj1{Jh$o``}#UPspOeEOa*3 zzoP|y4vIVYlUzR6pHmou-?o_f+$5LTlgtSfU{U#*my32p=-h#n!QH-ku*gg(vbq-- zf#a&s=xVy@?WtYwrbwG4!Ho~<0zbOi4poX9%?oK)Dw*)r3eVRddAmV@%m%e6;F+tU z6Y$FaEueYY6clD(0E-I#NF{&UhF>B<-^`5B!*8oC>32d)gKdlC){^bXkc%JETg#Z2 zm8xcQ5EG`ao~h>3@2|$(3_3qxUhYj9>sZa(Fo_)#mqRxJu8wn-^RfDAMZ51)X2KU@8aVji!EQW?># zuUo;gm$-RrFi(knti=?assFqNQD;T{QHeD{s$==mIb_$ao2XFvkzG>xtbSWcULH(> z36D&4ZZ=R03mp`tioFw!ht**edRj2)RAVT`-LGV;gBvi}{fx({h5?1(ed{K`4KpD> ziS)gmXzWpg-C%8pG_Xq=X%2L;myfsTwfJe5lLiZArn>qd$$=Zoy59Tkddb(67(XpP z8}r@M)6pFue~XS*yy`i5xYL%c#5<_jRWH3zsCEgAL|;j6&s5`-p=`y^Z%pm2sAK(% z;WVE`HhdDwC(Iyu_W<6R*IB$pzVyB3Zws>y!n*f0t}6No_&v5wgsS{9L=f&+ON+wr zm+kRc5z|k+8%70m1LmiwnO#dLzPCCDcp0G<1`#WH&i3ZdKZ}TYZ(g!K#LS<6c<+PU zmdZOQ9FahQg>RvOlV_^Q*!l9}SG57aO};wI^?=g-<3pzC1kyhXh^Lnm3u#nE>-2@I z+`(d;@&4d9MmzIB1YM!>-I891kuZ1{Vr@^?>?7~H^abS{JDKA3cIxZ`D5`W8SD`+% zhHx0|SmFK^!Xw`+(bA}^V_6Xn6r{AAS<}jKWSV3{+Ki}T^Rw6pQcry=_Q8j-3^-)l zR~uv;MR4Oe6^d{=F!87LU8XXp0ABxBOS}^3$y|DgIJ_O`*0!YAgV1w%*Rt3Pm|8Z? zzLuqYNiNc@q)jBc_f4BsE}31bJ#G2q=QGu4zYgdKJXFguU(umRb=XcCY}t!hh=uRP zR{!4Jbu98V&`~~g$va=gM8tlkj^8|Q!>*+kZ2#A*nc@I(k2QWyY@ZOkj@K^q;YIur;eUws_q&Cdw)hPV7Dw{gW3cj)QF`YjYzq{=dDBnbX;SbRARFv?9MESBO}8{} z8477RfjiVQ?r+yWRew`dlLU=dHA9A&J!zB`Z)EftvhQO!{G{K5YB5k^o|onqy?fiXMm0h4@6x*}K(=NeFl{<1L&3Sv$Uu_;mdx4FeaXGb(UP za*}V!erXX#V3?o@-uub;_gsS~iT3F!Ks z0sZv|zE~BX*?U!p&Xr-P&bwryTl2r2M=Y&|Df1%VJuyH)=02id1|ICLK1~82O-_U( zSVY;cY*Hw?5)UPUwTs4CNp<`8G>s~^1Gu=^vj+h5@rqsR_HTl_WB=NMapqs>!1c`g z^MdKOF`jT zN)NBd(hsPCmY)u&$0j=lL|%IhF5bQtC21yX)oG{v@r&S2;^HKtQE9o?e#lu|aRP6s z6wDXY?)1T!F}%nMs*@$i>%j_9bBH1a@2_AVQa-N4s!*7S);V{;w3z;(BNamO(K>A0 z;8c?Ra0QQ*6>IGmHcY=(Wjy~~aqmVx*SJik5M0-4ZkFQp2I5K~(OZ6f6R^d>Vc}j!?WPO#Lwh8v%lbF4k%6 zO8dT+7viwKh-QbyW^=VbK&)wB*$c`)YYieeBJ|);7BI-~R)9n6rqgp>eLpz^;V<6} zb%QCy75g1u2dZip8C!N24|_&3&MJWqxM5XRNA1Qp8wNfod7FboMwB?UA>}KJs-=5Q zk8WL;>ScpDMV| z6Y;q_b>Gv-=jMg;gC%U)H2$#$a37rO1jTj7+vRF+YqshUslJhg4??YS9_vRer@z=| zp)>8$VkMNnELE&qWBnH<$7)P;E?JYkw|q(NPU!uw-kF-bQRr_I59ao>b2fXR@0U_hqI{z|F100w(SUOF8M5$D@yf{{@!`h?$HZ+GWIG75itJ4rB-Y|dIH`F z^nb6$s0aj*;b`RGzBF>#OI(;*EU+Hhp?e%FFgPoQDZhc;=W^T*uS0qQK5sdn#AlS`psDYY7Rh&t_p>XIC8CTF&EvhRz*m3J8&&55&BS z+q-HCHPuz*7&b0O6pIp{WTlffX^O`yw1_lpW-rAOJ(`P##Wi|}C`8hnW@~ToEN-0f z#ANMTZz0G{uMb(^7$-oJ3@G~ThXm@rF%cXVe-xt(q}i!h9E+&>frc&-v4}~Oq^!^q zAjLp~D2{E;a8)L?wtV8 zdQzHR7ec1a4fy~b(~`tnA!4AZ)NZ$rJ5mEN2$3?UH49*oRj!*UTE19%D2Jixz@Z}d z^Da__coi#u8_?c}(d+>{@aRKRwY{Q=!fyeUXmwaVYxjA zvNjZs=Qi`qf&DT&s&{>aVnVQCBCrNb_QffihIY*;`WiyAGP=lJ*bv=XJC^~?v=+%T z4slV(wx2}89F=Yb!zn+=L_ZXSD-Ny4MXA7o}Om(#TG!13ScV=jH zX)jV&{1`6TYc=){=sZ+|%~W$=Q_otrsW^sFQYiO4YnReg=xn!6BM!7&YXi2Z1T(2m zo`YC{F6>Z^T*FNfPIO3ByO?;SNvm>TuZZI|6-5UvGg=_bebP7EN6TI(EhML01IhUi%`GVV*qu8Eh5-??bE<(JB51h?ROj`grK*zs`=^r`af%bRZ zpeUD7I+)osi*}?YCL-Ap=a#48#mwHIArEgL)Zcub2AU(9Gl7W?b3q%YLNr*n@`|&8TRvLFavN>I z^u#>!7jLRJf821J-ucF)OqaKV=6M_n{{gm4Dgy|jOymzentrtj9;i)Gjl2W*o zmNVUw=r~k-jXs7V0S-k5kf3FCb_v4@iaA)ORJ)=UpdmSiMawE2ogW*<2;T?8$!RzR zs}l-)H6jf=-r>%LO%(D@&e^-+$C zvlhwb%{F0jyg^&_z%Ib`f^r(Y7kWOFI$SRfX(^K8LD2oNn;WvPW{v=tKYjQMBQ0+O|AFd8_r zXs!U=tntw6X#2-aK$kV$wwn(!dKoQ#G4GFK-x^`~iyIgOh$gYP7~h@t;dOhx*U)0< zM2*vpMz>Xc8T^yS7hz2sp(Omhd{Cywb<=UTjXJg#y`XHTrgT;kGXFjfby^pl@cOMi)qu+6)p{ENa@}K_@cWulRql^f!qOc zChFq$G`m$_6w^w7$D)lbc}Q}xc}!WudElDpO1MM9clXR$+v&AbF|M>{YjPXc8eIB#@LuVeWqP2M=FM~__;w%H&Pl{!O}1-7;@B!(iU zUobP*?>LW-8Rbw+;koAg-#uDwDOsWvo{C#l9?yRpa;5;XxBt972-2?g=MvchBr|OIandt0_9MVCnhAro33U5=EoNav@ z&Hh1&WG0FpVLS@ig24q|Q~QE+TG3P5_leJcYl(kb=rY6qsCCm~#Ud1nq!|4-4*#XNp zD)xxa*!QlFw5tP9Lt2lgNgN&~F`6J5hceMR-)l?w%fy>y2`{0&c`dm&I9}@9b67=P45;!~+r%AwBHOC(~KZ zQjZvL5qQM7;1}~HmeIW5+$a#+Fh|1abu2%S`gLWlhZ&P#Bdl5PKnst0Yc)I%G)5HW zIo`3u2M=Nu)ws07*JF1c5(}7r2D%NG4Jwca)hcrK_-7?4xO z6D}qTQ4fUS2O(wQ^ToS(olpgLBVqS(Uf3}*RH2z+G1$EB&9o7(q^!#0)XC4og~(91 ztdMcRk22R$pr6G=^uSD~j=Cux-%1PT=X1-v_bsZ6Zv6f7Vj|j`7xDLt`tw%hw1J^+ z`mV8K2{|&zSeS2@T!|~;m z)P^?LOeyj}HVF6mSi!upTD&na0Rj3m)tSrmdr(OFOQIwjl?=y*?h+8oZbdgSdbaX( zH#c_BU3)|mCXSXLo&$v^2$r8%M!VdwUEzIuoIOYz4&~!y<=qDfLo4Yz!$6XJPH1j5 zynQj-!DAz&Tw5`@0$ix|l8_VZ_5ox#VRin1J+e1agA)y&%PrEyK6~{;$(gGtmhu~5 z>ObI)ntZfMao<%Kr^4_pTz}d}2eiu7MI%@JIBBt*NDk-wR zTllV6`Z=%6w>M@D2cnbsDD(;~#whF(O^ghp7C3OSD3Q;$77fKelu4+2r8=bxoRsLef0+t?Q3-8nl-QK|4Zp(o_R449 z)T*3OYpw>;Rt!=UY85S#yW)JS>GCrZ{d@j?_^h_*d?X%yH${%NuEiM%|D$cWauU|{ zAGDobakYugD*6tDf12QH5y~o}lyXS|PA#jq&fv+-xxfbmW@*=R^N0*g;wJ{*|=9B;b@3TeNpq?$TU=tsXjuGFFt>a&jw! z6=-^5?CEI?9i0JoPp=A3+v6+BJQwTX^k&~j#ZI6-Z+K|r-`VmA)n@t9 z=0%J6``_<*p#~1|M&HaH(GX@tP;Lj0`n*XZn5%S3h|~v2W1SA5D9o#=geX`P&aL>Z zKn>I6tzrY=A9N5Af0q91pw{}ZZfW;>7@#>AcVc8{zSimz%|n4;@S1>27ekh&e$_Be zsz9?1@@5i~rSv3&?w#;G(sxI#W1+?(*erBFzlntW?I(Z!d9bS(iGfsgwZWfEJlJPh*>(z zVaEF>>ODi!IAH<6$$&-6!*}j>vdr&fmo!OAfTr`)3w)tZJcd^|fq)R)?DaQV(E`~EkOIto&~aljOL>eZgUk*nL0}X*murX zJn7{SB{uKloHQ-#miT)VUjDnk-_7!2Vv7QID`Vs~|5{Z(xLOL=fL7?fO#$K3Sx|y< z*;3n8K7aoCfIg4@W|*64kfsK+&IJy$kFRk8}^Ei6)QanZr?scJmX)a(wcbeB9R_u;b~ zwmhCes@w)m1Sh3e$Hn_N#WZ+nwZo-TC4Rb`rI|LFa(3AF28fv#dg$Q&qAPyu``5*vf^nRHb++>H2~6E?`8y@Ip+q z`1ARE4t@UffBwTl^6&SvYQ(V6AE`f*TC#P*`_UsL?FO5?7lT#*D2J7ejiVM2%3t6R z;7MJO^evyoAybdrpPAaDah3G;Y~T5Q|2^KtS|n@n780TLA*N3~(cr8EIL2c*e1*~- zC6++E(7}c$Tcp)cN%S`~ka2GxY{92>M>?6GMeeu{5Da?888bM_6z9_HTp;c=5V0`M zFTCUDFLCh&1wr=ic_Z^xLrkN6Y%SO&iB%g}*J7!g=b9S&2T=-Hsh17qKw>ElGWw`Anfp64$lPJe$$?4bn$ZUX{Y`x8$ALj<=;gduI) zNTN_O;RmM$R2L6U#iIi^$tJ(dGYZESew%gBqFn>+nHw`&yAzBT*37tthc0aH$ol1q zf_8@)XF9)Q6?H?jPQ5CibE`ZyFem{c%CRyHUQlExWCpUAi|mFO9Z;4Xoz__KH4Ai| zjQu?&*FW@O=6^mXasuCdR$J&^Rub`qX3o_Z;gsHQl<$qHmgrw`d?>eo)mrTkv_>4c zz6vN#zE%@w_7$Aw9+!}tO8)HNkwR{JDrd>8Sz*{SosyUG5=X=n%Wfu+_o@Bpp%S38wFg#E^zq>{t9 zW4ql>&qghmBNqvYidMlkIBM{N!~1}QkE$<6hTgsUUkjG%N)o6i7A zY(ZBu?pm4)0MoESV}Sfa2MWpQs$1ON<`T{dXrG^UmU8{L2I!bkS4 z{D2R>UZFk^sB?M9jz=Gs%%^A@ezJCYp(}WupBB7SC`W-FSKK>Qd}-IkwXa$^y~!H# zfuyJWn;+Q&@i&=5Vy@sTs|-$B2y2w0PI_tBRM54RmAHRu7%NEno$4pdmxdB@Rx`et;Iw_B8!!$w`tav$6G<7sN-1eG;!TvbEh$I zEK&b3(Y*^is7WS*Z}v$1aIjMsnRpCKpL^7)$jl3b_VE%zB$0S>#SWk?yqK6})8Z4r z@(RR8S&2Gd)M;T-6Yyedh8i0D&he!mTNb zuV0Fo7DT>mXwxpjJmCRFnb&%C2Or@^eBj`0+peP;6_$4lzk_xrGI$((_PDyGiY?Uz z$m{q#>hveipixjF>HK0;f*iA2SloWXzP0b_mW!y5wI7-RBl_kXfg!WOH2Mp^NB9s{ zDq@?h#%tsyZ@$eRYq$H3?4bP15V-c?kQbUA@AvUXFA)z8u{mjvC#GMpWdC41|NaiH4bFfsa8I3g?pvep(yKsmDUNAp!jDCIv`J!PRE5Gg-3(J`rk~jyU z0GOzJC0$oBh&$9mbDX+^W5Tm<~aWKhqa((`G?2o0*xXx}oF@HH^|T{@5qIZP}h3kL_nxS4o> z%akvc(tM;-e4Fz)tgAy=w_imsm~VeM9Ys}AuSJ%*fb=!fh+nd))e%RP})yOv&qYA1+CbF+`UCOeG@hyCA5h0_nvE0 z8=!ue`&3#<>;^uw7$;8KWZW<+GE_6nQb%*2Ev`_-8Uy?PX1fiZhffO(F72$Mo0!nD^~B*I&G z5s7@|yOiSR%G%iZ`{TTcCe%a8JyBZn&r-P6J7M-nRZi=d{pd^hXxH(8$21^1u6-Mm zQX29M-Y@Dz9G_u4{mB^y-OQuZ-!5g*n!`kU^-9xSZaxO08{W?nQjCu#+7&sd;ipIO zK$J~bePhH3eLe{zdSr3~WNhGpPomeZS?q!=1EyG`fz^p3ZYAzzErOOtQh@heU<~1IJg!ifd9;d1~s>47m5vDYZ@#jxOUfiBibVl?3BF1(8L- zLkLCyJGybpyv&*(r}z})O?2jbL}+gklJEZVF_>pbU;Ku5Li!gu3g3M2Dk+$31S2Jc z)t_}>d8F)V83aJ1Krd^VlNxE%Fi$5RrewI!- zH4d@4dE(RIiklRV&uekcAR?l5Y;))j@?tdV1uXnhBErF#3y%NnnVEiAO_^(wOY~HG ze;LEbHz>iz)Cbv*Di|CuLAPn1k3YV;08J&lA0@%t0M#Pke8PLI64u9qv($3YI3CSt zdr$?1EvYxPUU&=d1Rxo`B@G8KWE)&G(XekBo(zm4<-vWC-z=k{aW;!mpf^>&Wq~xPE$$_ zkF4if5b`o*fA-c1@4Z>%cuXSONtB%(iWjfs&Xm-52+L=l5TG2!0`z)p(O0W7K#NHQh;`b$T$|h;Lx(Q!VQ&*Mm@@LsDRw-WW!| zWW>%9CjfDE&shDe{SDu^DYwH&X?t~d+*cUb`S@qx*2q0!jiM>S!nEJ68A7XQ0@pYEF2Nwgp^oyhGKxj(JlS^&bVd$E>{f^j z=H7`5_O(6D$QP6{1_8aFG#$T|nBENdVZ#lsGVB1)Fx{qh`m?QWV>$PN(|-S!ZZ9d~ z$cdpe?TU#&9SCl)ubwGBTAR53c;ya!TMR_gcRxB_z{%Z)6~@4fh_2`;^UvoM?8&}n z)S209En!(i{Q1cDOGLbc_ojO_Jb9#2>#z=M&~u%gEl9X*f*HBHgE*|o6WHg>H!HrL zeGzL;R7?u_dlgfpM#tWbY93k?P<wZ_bkaFLOxd+LW)hLT$8~n?%>o5! zX51qV^i5Tm*_dgdWo((RQ?1D0hl5n3Xv3Mv1Fx15U^+8NK?94C)u zobaWYlGD-ng7c|7uHy#PI(vo>nay>d7pt1f-?82HXfLuc%k*3YG#qkHP{HsZHgn$8tlvDG;$WU?dy z1gvmK=4ZvxyoKne_kG!fM8~wm7UOqsx43VNYy&%)NbH4Ku#$?m>KnP{&E6CK_(v0~DtRBe3}iEL-JLzfz>yoB=2 zK6(yD(ut7JDZEQ+J4+*0Tvbct|M>ZPRIV`5xeNZRf;pKjxGZVxlk`2?$Q2B5Ks{Th zDl1(=Nf!T%;xry_yVeu~6LvQs$wq|-^dqPaVA;^7%WvdXD)mB}?C@0^;uhu}8yFpw zh;;P^!~#(2eQsqjd*LtF{!#Cy>3SR4S?-`y7ant*24Z*}1mLLt=>MF`OJ`%Ib_C_$#M+_3k^mMedV0%6tqY<*7f@ip)``@x}b+E zX}^D@TjvR)9t&Q>*ais^?PZu`jeQ|naDzqeue~pZ_U~nU6Wb=`A;9IKKhb`m zI@{v@yv%NBosL8;Vj|%)o4~@tvPHi8`i-)5-cT?tm|=fIwbC&Ycf>Z=gs>0 z6m~xF5V!U~#r$llpvpbb1Ap=GDjSAWsK^KSy2;0@wZWq|YzvBK)8siOeKy^Q(1(_! zK)zjTLZ{AgE8tuk5GHoH%6;4iTKHLk?C|?YLEPdRs+b;mKVt<>C&U*zh%!zMD)cfv zE=0U?PYut80H9WuoIu<$aQC|qWc%XKA#x4(7O(Zs8vP^98cq3~^6!r2NFuId92FkV zMjpd+!NGZfpXc*1a6@FJ2Z?kvgmFh^yAuarklH}(n*I%91I7Bw(DLL&Y%_+VPq~4vFdbI8UENWtEc;zel}4g2Y%+}N?8+V>;5ooRH13i94V)^m81Au5-L^_9 zdqus1#`JfFQ{8|&B23JIT` zKTAZIX|V{c4-t{@YFECTeo>dAg_rmf3N#%sP-620nkju@CjE47rAjmV1Fa!3^0DGB z#MAIdc_^JK{C|O+?lTedViIEc%Kq>@o7nmb68KN8&d3~*z+E|Me@K2~O|>HTl!ErZ z)^(G0BS(3SHZ8MwAc~aNHBI*RwF@i#ZS10;-LHk<3ZU@1OveVlOrKr#oU;mQ4l}KS zZ(#mILiO3cDLMmsd)66MI%m9Q=a*7o=7*aG}way;NIvp zf=Fthv#z1DnJvi3dCtyqR0&o6HH?+Ht?5+a2=r;5NAkGE*FZmn-)u!8+&kN_gEi6P z04fzeWVSs~Wu@%-g?>D?Fr?PSBBFc=mf=&JKBf;d^LG;oeLf$ieRh?w=;FijvCkcP z9Q@|DG#aW{4WGmPcQK%HUq?3ZzHPm)$LCx_Dmnp3`&U@?bw> zx8o_Dz=o&c;l63S)xIY->BGFEXFp7G3gs)K+bz*X zZq;N!WiI8MJuUn~8lI&2ht8Zo=|Bf(-Noxei}|xeh&M6Gy|1J()HY?#h*xkudR0}8 zN)%Fi591gt!KC_TC4%grJRq>=rC9b}^%8V6t-$F->Yvndfj`MqFLt)b5F33wHGnXJ zO5~7vA5E8F7{VY6joz?7@7@au=_*j>hZAu?BAsoap>F&SPDAKR@INw7PHf^F7keSY zb1);-A2_gv)mLuH78bN@AtfCX`CY#W)^Lp9zT`$em4InY#Pq$pJ~aR5oeBBMbSAaR^E1=N+ZRJ({rsyU(2U&s#Ul zhQ%5<&I12Gff~>XdSgN=xnb%uoZ$+)4~lOSnKkj^kS23^(HMj=@}%LT9rSm5Z`u6$ zY&qxR)?Y~QZ9q06ti9pe4iUi~DAumks0+Duh0kiwBaVxG_(Vko1{H45z z6f|XYNan;490Gb0)pS-)(W;h~V9+fto)8|_xEv_v<`9v@pkEpFvpYh3Gf>&we}CLD z5_-B!0@UMi8P2Z$q@WOA*bEQ{w09ztf8orP&2?49tZF?hu+)d{Yes_!L}h!|bcGFf z>pu>($!B#RvFp(ivUaPi*i5MgXCZq2>ZR-jFoDV%tz6J@|8oj`<)&}tjLD0uMJL4Q zu~~l0c9%GHm55|D)W^1S_>Eb$E1Z06aFb2vghOadH{6WAuiEA!r}m5q?P~OA0vja* zZU+o|QpQ}fCHJ*UifE8@Efs|*n92a`Jl@p|jDnO^+|88YzjH)NK()lHVxVOZvk2y9 zVaJxpBH~5D!k;C=%y%ULw3cF#eI0+owXCXQZttij;K`+i$Obl1$znK}H2`uY9+LQ+ z!v0h=LW@uPS0j+t&IA<%mf+wivPI}C{1u`7B_`%ANf6AW7)rrbGW>Cm=TTc0G^2^q z7cV{rL2%(sv8!2sUW~aZV%<>rK~*H?TERwK9nU5rerIPNQrSR2bys&pItY)ZRr2x! zgU6o*KkxdEkA_lYGs!N4!yi811G^;6f*{lw1Wm@rmFe1aJwC#;zd}S1-F$~)jh~r+ zara^p;=}=kA>!1Gpb-dt3Hx76_m^f*528Ox)CJm#JWd?!OYTMb!MRxRBEfE=OG=I# z+M`rN8+j%APwo$tX$4dA#i@$1ON%rEhp<~a0t5|HfNmrqI^V1*zVKX`=~oS#qt|&= z?#~_E+pMe(`~?1tr?MZA=?BV5Q9=)-wj8=jdoVv(Z`i!`z|&YcR>->$W`4Vl!2L#J zB3j??SwY&wvhO$^&IS=hzeeIv2$3C%p=eo9QdJS`kSm5qz&nYNtLoq>%(}1kJMxce zCo%1AOO4%F`Jf6$LQIC?GDpy+obEf0%0sH(O0hJ`gAfs)yVpLS&z42q z`e7+7qBXAgf*FR+95oV+5ZZuKA*@YgAMWNS+7#OPvoDy7ipQl(7Z9q-cPp0Wmn6j{XW-Y4FedO9F;;I& zM1=QOh=@M4cndAkTc9s|A=)JIGb8l(p$onCdUd2Z2#Dk^g{?vU%FQmoa1Vi^PuKMX zJp@UmxGDaSI?h^)WeY84;YI(52oZnyOb~7&;vF`bRa%AxLd`bm@2=ttJqqe45mwYQ z>+q+D$9?&BhwYJI_KoefdpgTcM8u-DWAv_QOe<=tGt#(8_yy=jXYV@VoLbW#Mz~I6 z)=H);@T3qlr*xJJJN3|)a1)y|oheV>MbP*I0G#wpS)`75BNRp;^v{hzItq$fAQSxd zKb)at|C<;r8HEHTy&FYOWk$RMBTFXj!SU6UlHI{K?EfAFU@XI^H|BOylckmW8)uBb zEZQO+)^lFG;|tDB2pVQd*QDRvjSGU`m}#r^bT|vlaBTEJf#s@w5e^;%o^2OHF<^v$TpmmJi=+iC8Gp7jGJ&^p^(O7q z;?+I%7$GqQ*Q&8eONfZS^6y$VHsTgy;{Dx3@`VXAvpj{(nhxo|q4TL%3tS8drHfBu zNhAB3rJh%-gOgOflptj&X`N@}Zve$8k^=0~`&}_5#Xpf!;ecWeUa*MJVx|w#2G=&; zNkBnozqnuw>fkZRen z%#)s$CXXJ;gsHPzhDeFQ@ORiKemIE1e#etTx0-UBz-qW@9U&m}CL-GI4WYl|71NF) zK!A^F!MQg{vgW99_-oy=2zZUV@)Nzx?GWokf%BB|VT;T%s9PG-p?bW$|7)^+==03! zDHr@MM8yD1Re8G{u8#d(`**6;_g@@N zz-d&@uhs!893@nSl`ZY}3>}V;6(43soOV>c|8sVdA(PB3Q8SPQVdu z_@z?dL|7}z-fH2SKxvS|`y(q$V}DSD*kult0=N4hp1;eS4sV%>eD`d?ytgONcE}I5 zMJT{xkiV&eV*^|*lCup1x3BQxrnBBD?Z6}AL}c?JIr{>4;!m(zqtImGs_F={$-cvh4EtiU zk}^1cj%Q5Q4QOr?nTGCC_5bD!yzydLfUNR!#CY+zRtXqW0_| z%F#g--LRO72kxt(oeSXD-t4@g3->~~M?iB*NJSSdBTJM=Ty!|T-+x7vZY)HLHxs2h z2}m>$gbn12bX@${0z@aitcF{NJk<5DM9_9P_Ax#1IR+6qFIicJ>~hNCzDPzlcR$Ds zr!AIGT}ajyxvHV?yLp5G#%{HE4mkrvu37dYI3nQ{v)E{wW5h(h*2hF7i#Y&@ei{?4 zJ6Ul5;eHS=cMb~$kc3FKdn~o|J6VY6#&yJvR(-pj3W0VAKV(eUnp9wR+BGqx+4vRoA8ST=XT4D=a*nE&7oKHs75i9)By+cazL<0uWOr{uJ-);CIz#x z$r~9}V@WQLD^PC24j-;Y9r0yk*=JpJ={b24;chB|)4(R41TE3!9ygf9m75Q<9-*D>F*6V)=ikT0uyE1n^df(#U~z7F)Q&Q5j?&*P)kX;eZ- zk|zMxkkLT>qKIvFJ^~k``S3rcx=?{{)|b=4kl+UKZ9M3#z8mb{r0@ObKA1M;L){!6 zJsi5L)#8^)`-oX%42XbXkWLqqrf<#7K9#*F48twJxor5n0UxPJnIkMa9dPoH&O~QV zKxYzSb`-5jirOVjTz@^BKq`B`+sXGzUa#6B5g|4&a@@wp)V)79Eew%)`VFf>83i}c~i=o5W zx6~H9bgRWRXnyz;VKI??1qGcOgO3b`S?5LIT$OJidgdxg?VU`k(_OUKJAOC79Dhjm zCLvnP%q;mx;Ze~C!Lw|6mOo4%O0)OPh89hNm*8eNqX96VK}x}hUF~a@Zo7fWcIhA| zC#@Mhlx&q9p@bh>-m{XMvY{CcFk|Z2=^C}@>LBZ5Z?hq~o3wf(NU+9Md-bBg119LY zaVp^NU!rd@{u&ShL@oX|8 zTDenD4LGQw?|C>M%}jJ>_v+4m5qKSrS?656PH4ubvNjU#kr|XV?sJG}Nw3xovD-gOG zU>^18h$U6ijVx<8lgyvd<`U7}41;BzIGvEE$Uc$&&x4+fPBr9B209vLXK4ZJZ*Rzs zEzBaH#Uk`s#InC#J0{Y}{=?H5wXS9M+vS3X$k@x)IfxrNG&p4B$qS3q z2`OUt-GZyv$VZTzYSfZ2hQ397QzH_xVi-QqLjjc{G1CrCMB99%tN%?(;N7;|4W#xJ4F^}8GdnEg)(YA#Y7juO!Iz0*$be`IvDwgP*QQ0y zMePZ%vUu2S$dOqbMv88S;{sr19;YL-54%jkuO4tk4=g1kh2$*i227D`VW|MJZ%gP3 zz%OSE(W(WB2Cw`=h{7C0`9P>L>(8R<;vTbsxyYI3t`@=HTSUuWHQfFtLekA2-5np& zaL%J;Ud&AAN+{ZkHti)RY}s)i7sEbXPVT}12f8N*i;NP3zd&2$5yRhp!=eb0Z^j1v zsY^W#IT`X!;vhl*A{hX(&x%=z!I3J6+_wV6!0(B=QLg)rWn)F*O~Ne9LVF8s*}`Wb zP|KppOR{s1-vFK*IEeG`W#n83lSDdcKe^H%2u$s3FWr;>p?hSrV}$-kLQ4EG;0^{j z^tBzsk~6FS$K=7*D{0e1qn}`X2#td>F5ARpub6s_v_iH#u@*Pv8SHnJAioZ?eyPAO z*A^(BpvXDXP4^RW9(pKVmS+_|MZXryO09Mf4#sxWl~@))h95CEw#=DC6}701_5IC~ zp@?#gE90oPnNCcxlXk3T6>9|Tl)%yl-$Bi4SmEk|)sncI3@L z>V#=n!)D)*kZ?)+h4Z*gx}g1e)jX4N-<=0Y?C;+g4@;p=-0DE&$5;9S#;B1a{@tb` zC?+JiOs|-66z^}znrujtM=+o%Ud(3T?!h79eM9W=-Kx4(@5H0C~2|Bk(;lW`*{qPajReHD8Js+DPATa@&dOu05zR zo)qq_RO_?ex1%KH4^NITU-{E-1V4j3vLh;V&eY~pwHjzjD0p#j9nJr0&U-eB;7O-f zoy*ND)%ouC1c1hG!H6v|q}AZ1xvS|m5ckXoh(V9kA|i++Vt<40F>g;|p}LteF*9~6 zlg;v@NR*YB27P*-o9i9eRBpwevDcJj40aRb*h7;9_4>d^Ysc}y;%$)mxhJ`7^NBa< zi`3c>#xl~H5$BG(+=5k}yN6wzSs+3+99|AA0GtKHVjrTji<9*8IL2frj`iPqna-z9iPyqJ~_#zUL&$V{4&Q&}lOj~$?=K$m+PTAy?9i$s|t5S;@7Y9~d2is!SzZD<_6M(`La_QL!gN4XI4-D3|e z04W2OMX;l{8Xvqf5&zo|sRW~45#BT~QW#5kBrp}vkh|q!J!Ng%`s*j+AkORBU0{#Kr z)JEHr5!Orjzye6OKZyS$bnY2A0fZr*o8nxCn|DMk1AX6cZFW;UCtGjPf5S+j>TnFB zMX~)Ib(F5gF*EQU!$Be6)e{!^oqBeby(`x_Hp_7XHC+L$ zBND)mxlFJ$relpIfb9yDK=bS&XN#wvXuC);BU#fc=bzl*484M@ULe-h2t)CUQu-}^ zClysNXy59$mZG>UI}dV#%=KaVB&p*@LOvm!OO)FFv4gQQ@(z#M7^l}eDJw1#gKH`y9xi(Kfv5sKF!35-*kQM2wIyNur)-(=$>5zy}mnpEF1++OAp zs_~Pbk(UBF8brb|X%?JlKD0d|F=;+)$-D>_#cE41O&PfCV&pbLzIbF+OXCP-__-#rH(`J z+LNcR))jgha07j8(a+`fw>X8&tsTw;M8*-Ky@_b=?^lSvvT1K37Wtm*fy4T83{X;t zSU6SB#3T%M#KDwynBD49XT8H?DUglcOqH%FwCcDOs=5~({`3t<$w&AW?jdeh{?Qb^ zONzb3^Us3ULMM59CQwo*P)UPFps$DYBc>%d+8OG#gZ-c;RgnqL^;Lp)K2S1!^Zubk z-rd9qL;h>mtyLPrt5vCNh3YPC(OrwR%UywDJ++d){nY?*&1Tsu@I ztuV-Pws&38Jf-kkV&W*2a1Q$gv#Vj!pec*?;r&geu|{V}@XrVa_P7)f$!(-=5E0wP z8qsKp>~dJD$@NlsT@#%YQs`K+J2H^E9HNG>I#nFg*AMt4>$o#ErkxOCesrPQ^b(1_ zsSuy4DZU{pmu#Ue#2@|=(fXIR9wiZL*yYj}_|$$iAHX!pymlQv%dl+FpwS1Ac4I~a zoqg5fK}f=_g(jgqKIjxV1T~MkKO!IPJI|*jAH=ph6I0k*&O?62-zU+r{H*OK;v!?dw zA47KTilUXzL4#XS5Q*)Sj^POfmz|`n*u)ZE#Dg<`G+Q0Yt=Qr-8se(U!rwEb+8Hcd zRn@p*wrRlTXnwTTJiw1or&epv8*@`@G~*sK)KvOct*pRP*Nz1n85CP>CoO|>^bS0? zbT|yotDpGrK1d6ET2;%tdq58ZrEa!&QK-xk3tcydW%2&rtH@cH_nom|BIZx7<%Tfe z>j80`+LPCEkt8n&XE$uXd_Ul2=IYvJ8Z`H(AdZG5n1kFi+n3M_c+kSv3k+UBxHRM( z@$on|2^*>{0eOcC2j1dE=R#Dz&B#7piqC+tLIP>IpIgDs2dW8C@4(uz9eZ`ekzr0W zNJnIk+O0?tEASw4{`n}@LgKMRtFUh``3!9;+|zeXTU$!!G^kRt#>TQOhp%{eL>6Mg zE1*xHW-#E0L?(we5`G>*?`9|C4DE5|s(hguZJn6vj7_vj78VajwzrNr+X~rEJFz;z ze?n2^6Y;d(l=OPW6&)~9K7aOEQwqX~fG4VX6M*P*SNE=zALAT-c z+>81X@`eo$;ajnFAJAB|AfQ|wi!5W1cEad+2#bTUAz$!CO{mfNsc5I5Ol@l;(fa|= zV14wvH`q~ph}`EnZq2GwmwckZ$9ocRe5d=FM`u#35tO^c2w?*x)O3}0&*8I5Y!IQw z0CNneP}on@KM|(A7oW+XV_h%ILIQRT$wW5@p)%`WC>4owN|nS+qzNZTa%vcjt4w$mNpB7x>gWin2>| zowx_|M#VE~mM#R>kiyWXagU5Wz~E3`9{?PlF=WddKpFla9>7b=#wuEu;?v;|Pzm9q zE~&f>!3ZT-0|dTSY1+3OiCk9NN!{RN3Y-0sm`yfi96?DAY=KIyPtivZqBFhMS@Tk{ zQ)&q$_9LChx_Yw=M`(K6U;8eI^IX-=cgeSx*q@|sUPqKDc*CLj_hSh?R=*YmBSF-; zJxa&QtQ=5%9j__pWNUSdLG*<58(DrPKv&%7Q|4w$e}fFN{ckaifJhn$$9nRNEf=KH8dMBR*4Yn~I=;E=W77|<5FOF1rU>>4wr8J(ydxr|8o#E2ehGsrlHn*6{=PbBuI zc@7>gmv#dR1yL%$o{p4wvAalCm`YEBK3|r=(~CZH;x{!T)QxAhuRW3TjSNVsY1ebw zq55t@9NUZ}*(4(q*)EhV3avE@eO;1@BdW(MY+ss`l+BVQO+AlXY9}E`*lk16$ zjTn-i+^tqezc}t0D~YdJixqm}*F!=zAux-J;Mb@(pj#@g6+IKrTjU%EV`5$($AQA* z{kyl2kO)LD^cYEnZQT~oqNr=Ldmd_H6lDi*xrM7VPdkFd1pp}kz z6p@a`EBovZIEI&;${{n%JZAU{h7o)0dbG5K>|OPs+R-mhDk`YFg0AW0%=?+yhi;!d zdFo`}4eRlll-Js3oF(#6-tg|E@u zrfr`vmq@Q~mgDEy#R^KaFWGGhDpqSTah(oP!BT6Njqm;CzC1){WantDrLqB=V4plH ziT`HVG2;$L%wK(<`vosvP9=(IC=eHoTenOdHu==XJloKk>G>Y=#~G%&MRW z8^48!XyZ3jovf_NnvQ&r5ed%zuhNp_qFs>INBQyrja3nmDryBtCQP5eMZ0`kv_&pz zzk_@C44x8?og6#aH{%~IeY!X5f|8S!^_&xSM5P$Bo%)^Ds5Iz3hW_01h(pIcX)nuEs8^!7|oE*Mr9<`nBhnT zOAt@{^tNk)lu1u84;29==W}Rc*&O!8EtXDQ>cAHip#+NDqgKO8<;|#UV!{m+6?oDzv0(3|>aUF{k0q2n5IqF=AI`@=PA~Xn0ozalsh#U*xx8u&b0t<5 zg{sI7%B5lp2PQuXQ;q84S2yPt?)-?Tr$A0(i$(l34?U>|f8?iY0F3K}x>;u|#x~S> zOe^k08beQ-Qq2iX{2kw(Q4*Yy4mdoC6!4|=W1z0YSzQal7km~8--pn6ilWsH2X-9* zVL+b0>onNDbm$0YE)?VSm+Xkq_#uIJAT)N&0qDP6LunTVbu{cdcpSMnM64OX2qpAK zT1ovC*bzhzp=0|zya4!6#182+XF9nb+u1fdmWV{7BfPpg3|y4+2>m(hiKCltu(>X! zVAtNCjpL6x{iPP-hsMLs9@L1SY%*72Z8IO((Hd;$X3B?zc=3&BA|iSSo{2E-B=OKD zs3b$S^LF!NDKqx!)xU~i2s>?eq##P}aTrlzH0lQr=+hhGIlfV|dT1|(2G4oj&L5!Q(H6;nC$ilA`Tv`E{VCZ9*>9dmT*UU# zjnX2U zTW0=fjNCxkr_|P-Z@PlQcibnlnGy<;cB*e5LuD4w_J?cX}x+;YF z;FirJ^W+M^8r2G}_X7}Vp0tcP%o&UXOVA+H4E9xWeS7d6HrYujdC?K*->YKedL?iF#!M0ZJrY#<-1qGs&nUm40UBBp1tM`lc zDQ_2Vx78trQgF(081%xf$+`mIn%U5>O{mElU3LrIv1R|i=WY$e)rp9-b+Q&PI*$#89mA+cTR%hZ{$rOpH!C$Y!bItIKa-|Awnr5w*s&tR)Y`o?h=0W$Ul1@Lsq|5PBWR>R=JL|LaG?MOm@A0a&KO6 zLgi;iv!<_yJhB}H^|xPD3}e$Dcsk2xXU{DwU}cl|_wmk-^c(yQPy*7F&-|9Hmy$=< zxqxXy&9L~$q@z_Z3sx?x>2bJVDy`!AcJvBfGVvXrC30PB<|QKMDpNgE=W(!3FI+8y z?hD`FAcMbz2k9dgAdlltm}YD;7~EGyCl&+2*0xxy#|cTw5_02M=JA7J+3EM39*(3x z>5*8gn!PFTQ)cw-d{bIb{P76q4`b@M1hX3k&$fr59TN)o`XMf6KQi%;@4ya#sxXm{ zPa4kP@Sq;VjCwHo>s6PgQrS<*KdTSYxgHhEz#DHVd8Qg0v%xtrn>IQy zTJ?_AOGuzQ(VLXQs4P6KM|ua_mN9=*vcPw+LGP6ZP*k30@R;KH6m8*HsJam7kwluV z+#}cy6A2x7x7e)gYHJ%Ri$X7#7_1UKa!3~ZJ=^Vu6ul)Bx*8^Cm4<%GJN89?Ej{*q zKVf*CsL-KKrLXH z?>X9qIKBLhe;8;0U8G0)3wF2AFK`b>pF>@?J9$;=B(J+S`%DyLRGT8Utb>#3W*30! z>}g_4>UFUH;Zz%k(* zhH`T|9qBjtL@gIET3&PtqhG8A=6cS`g<*=7gJ^&rAR@}&lIKl~yHm7)HO_`V4hC%L9t8>3hJ#(PYPo=qVa<~hFe$S_!=!`1+LFcjBcxR*6>A1s`9&5 z#W3m(Rb;nzFs9hs*HV%9TYS=+uVEDt+9w?U-s;|6utG%VkbQPn9`$<0vvXsdjqjf% ztG98EIQJ9$X~C9}+sJ!nPa%bRFso3offnLc;#Z zecz5Y>V+E%vxqe;#3U@7S0SM5b?pYh%h`sn9R^!oG0PCdzut*dS-D~C+!oL##-#mV zpu(sP;5ouEHV)>e86;4OQH5_9$?Q!4>kf8-?Um;;}_Ouh^QVc!@icQAu&C#{z7K6EI1M^pJA zd?)JPY73q$Bxb7zu&^wQ0Qzp_JT~L(OF}*PT4z-hmntj}e;14l1GlC5v zD7qxd^g>h>w7yqzybQwVo5n&Y!O^YjDuV7zE*twPBkAL%7B6PRS_&`dyzAL2Vdk{; z6T+OK`Cq@KhjL8TXC0=3cngHP%xUy~lPoIaKXv17wnHA<76`lM}q9>f(J`8aS z@4rni1N~Cm5O5v(sH)ofoPup0+?fMiN^y9Zv5lON%=F;gOMDKM#0NIdq1rd`m9x4d zt9pBb+iUycg;|({dGUvd_7WB#_x<2LOU{6afyTQzo(8v6>~QY7F&yWFgd@@1(t>Qr zr{gNfJC+;~&c#%S+S!O1gy}0WL6OC43omAoRrFLv%|k($5TjL0PD^Mx7ZC6nGoEyK zy|KvJnjK;(-A|ne?>mc9hBrE@(NAO4W#R7tE-9f_VMj44Uq!iQWN^2hjV%5#lzfv$ z?gYk+`urIx&qb>8h|R>p(UI*(x%+AC8g6kJEOfC06&F;z0moM!)E`$Hl=vmml+WnJ zXH}doYZpG--Gom-p6C{N6wIMLPs8VO`Y`sboQI-$UUbi_=@9xKQ+e^n2{D~H1Xt`g zFSt4EP>%LAQe+8RPHbeTA+#% zk#6;b*}L8#$L`D~r1D;I#nHg}_%@z_)dDVk8_9?egbaTx7?BJfP=i+XC;ifCyJt(X z>WDq1c67iYo#s&OT7L)9=10$Zy z%A&+XGAxr&VkW45n!JPKl`RT*)$ncxIlkx+OK;^NIOdr0khYLx4u-;eC~xPD%iRO7 zSK>4_Mn}&W+=kPLukF2cM}}Uf;eB^*-b-XLwBMUJ9ocPQUM%z37H*g$E0^=oH4j>@ zG?A!?GXl?iAiLKxB%X0=MTVWJj6plaANi) zy8Aep{l*ecB00VL;jYoPYC6pNl#(+C)+H9ZmcutP1L3Ov9*7aoqcq6P?no&FSQ|v4 zXn7PGdO+bA0n@!rfJ4jG-6>xzv-Yak?+$Ip4k`;BW&XlUu3txJ)*^I_2XuVJ{Ot~( zO~hX)$(!l;FMHptP4x9}!sXTq7?!-bTHJ7)oW^w)a-Z+yu5)8X?9meo$-GCt2AS@U zpK-n=D$}yfjZ^@MeQ2;DL^W$A7zq=&gJi}AlH{eDUpr76=E# z+3)&+gX{?s8j0TjyRAXQy@InUFC{ov)6&7uBbsD(lJ;S?-D{avQEDWpOhk#wb3;fX zy{s*?m)CK5#(ZigKL3Hi@M$plf^YVI~li- z&^`z;IK#PT=x*RLNuV2tD));pvu;qt#;*X41AY3M-CH!zf2fBI<1c#>WU})ikA|Rv zN@QR)R^{O9?~;d1A;X)%RXlea6lk_oDxv+!@8+@oZ2J@`2*2+Ughb5jwD|uLGOe`L zFJ^b|pn}z7>CtTD5{yJwzBnqe+&Td!goslV-J|J`4oeE(c`?b&3cvhO%PM=>QJ2gq zEU7BigFSWCZ%lA1)2Lo9q?Ppd!f2E%7K;e<$TV2=K7lnb32a5cM6p@VHQp_$BzO^gdaQ|YuP~d1%64DAK(T~%*QG1L&?OFdE7V&rB7C%^W@`LkD5SVR<8!&E&yU9z)pOb zHMuH-?u)J<_~J}zL48uM^$?i+8t^2H8G*DPLI|72<^)G{RtO$E-&>qXlpBnSRB2pfK=aoGI4c)1& z`=UL9ICfbGKL)Q)8GY(lzl*k&Mkt(!gf3n0=E2dM2P@0>a>UV&dB<+jj2UDlq!$z>3aj5?_$kUn#q#Opr+w;8Y{J zA@GR$kv+?$=ofRBS5FW-b|6glA+O`+f)Ybqg3F=T1CM4-3_?xlHe~Do4f6g6+3(oD zx)IsNtc;IV2?J79ox}#E8j-RHPKDblR{pbNrY8K4zh3oDsEbFFP!$($Zp*jit%t`e zf;Lh@VWpk>A^Tg3_k#pPB1287b_{u;sCMf0r-}oJ#q7*@{sDK1Qp`m{t7$d^L=BWY zlk66a?cCRi**SMTz5Qcqy`DhE z5X-lX$xgZ%BU|b5ib$;5g)Up^Ujh-MVX4>Xsz&UK}j+=_5 z2tuLAjyUu--g7%Lyzn_{hNcFeioy^@0l!qqbyD~^ubg=*`6s1(i+%igiO6xrC(h-^ zi6`Wgw4=T88`^oWnDq-|#fBxLW84G!z?VpHFLeX3%}LT@dmpL*-j-lwpF0$8e3((u z+(6;9sjYL08Xlaz&?%t_InQ_nkHX9BC-I-3n?UW*#KJq#JT?)3&Wicnzrc2o61Lzp z&0KZL{%>TlqDi8Nd{)*45mI#{z>>M_r`cW@3i9;ZIB9vW{E(u>nC zq1K&wTSUTgo;R<@ZvuZ1jOxd)U0yKHRC@AZuJMOf9JM+F3 zU=>X-?nQ`Ud8vTzDT@R+7!B}}hT6T|(G-1;B~G=5VeKDL&O z!LyNn#!SW^kQtn(-w20QP@}MqyNhjCnJ5H~zD1iE0_B2?SJ!WqXCBnp59Y7ezjIrY zpcLrUvxv`O5QwB+UU?SP?*iBLWR}JKVd70&ciBsJH1X^Z2-c5clF)9#`y&6?d8J4Y z-7na!7CpDBv{N<^q<%Y&bs`bKCb$U??v&ee3g^|+pGvwL-q0-Ev4Tqpq^pU@(s{)9l`*_foD9k7TRimS-K$Aurwd`XycX1!0NCxfEA8mc} z8=8IQ6EoNsbdoL8PA^S?1h2%oqe(`c2wBQUohOj;e)pymgnACYqj3F=`}Q90WKXSi zCl9>9SM*{j+1E=EIwP`mYs=u8_-<%P?Eb%yMt!u>0~?JpYt2Jk#0=!tE=XO-(arcx zef7G*LzFfFyO@N&{3Y7-Sx4{hFER0#HWQyO!VeGgj`Z6aLGmPNH4~QRgVy=vJ57bk z&~a(n=ZL7yN(6+6=-wJGoVHt}a)G-NOU>Fi4VXF#Ob{4_-BTWwO4kB=6FEX*EQb+b zfh>dCWUtn`5vpmX*320~U=ii!RpT@w9+of&JeF5%)`XV>7=E|B?Q}}0M`O2WV1n%a z%!{-sio^nYmAcD8L_GC5;RQ(_rU+- z+c~)sNcM6nU4>o|`#oJgtUboT5<73e$CqK+LiGI-k zH;c~^zI!|E7GWaU!a7ci(J#KdumDa_dw6Ml<(wjVnTzMWd2m=u&I#>N8{iAO{8A`H zg8*I7N$*6pRAPF2m}|0?ksOm?I#s24J7MJ|^5x=k=r(=-iESgxYEp>onl3F=NPI+3 z9EaOAHt8(JF~UjvjXNZzeNz`9b{x_2*?%!%-}R9V4Uvm!i$>{z8=N-m@}|I3$UIf8 zM&eGcq~3iq@Pvf;{rg2D27uTgf}!W48YM4#dvahnoUQS8@}X= zvr~A^GnwK7Z_sFi$8~?y`-VJ~*@>zuLW^@=tyFT7E%iQU*~)y=IDh@`u;MG>Q95qa z-g4Yn=CB^GvuILye^@u`1>KPsyH<8(67IEXrW6}{f39=jvnbPb|U|*%e4`CbB2Q_{&6MHu+_HvqYP2qr1sdSR_ zU98u$n?CMjHY?%m$@ZfVT&8&XbOq(rMi%(V(@FZIFP9;qKT3yRTj;fuY3tosC3$cH zV{$=N-^UMDjuHv;c-4ByIU5@rQh0o4`ZDWEylpkE;?4Yuv^<^LiTqU@Ebzq?zUA~m zBMH}rJZD6VBZZa!hdrbjjn={fZinvYG(@oiothT|6Z)Y66rv{=>{>$r$LMK0SL1*6 z?xOh1L1Ly+;#jU0YtT!Izm`ork#}LuUTv3>JUA}9VAl-VVhyLOcT-LZ=5!3 z3$bD`S;Wk+Cp4VgnJfPAV&M<3brx?~&Yf+U*{@D25{phKkxmpGN<`EFopv7y5!v*d zaWNW#qfz7ejo~?Pd}@KH6l}bTUY#)Ms;3s6_hSX9%3Gt1Gm)*8W(6L6ye4(l5=V|n z(!SwTFph~hx+IHLtL47oB`){hxJ{VJHprCW22HZzT}Hvgyz$18dEYpjn?%bc^6HBW z>yfm-B%!dJXgx7*1x3e5vndsd0Ymrk*}S45lD@HVgG*JgH6wIB7=ea4PAEZ;#28aH-=US)k%d|I%N%%mN=H5JuXG6XRSU;V4FGyP%GEA+PRJO zIm)ZM%V-gP*pgfmkEl4ydf37Nr&_st%!?m5`azecyybM^pI%q%X$h(FR<spX$cY2-e>udMc`ny(Y*K5 zQlW^DDZ^4k6;R_I`$O~%5}_KmhRWDK&?%dnmwnzaB3k9?bP2ThlXwF5;t1TmF6l~M0Aphi0r2@OWNm2_xme+XVJ(PAOX}Fr@ zRZoUYoT@9@MUSeBx^ojnQ#=d1l(=AEwlCZUIWb&MYVO``BcUsMdE}Kz@lvF5#@_Wz z^^TvgE-#8O!0Xtw9aG`({?ft7Aw)zwFhF)DVWh!f{W1L{08OyYxrr7B?fW^^P<#aQ zx+}Q`RH!xl)$I)hA`yS5(lNkr0)#s@6C&QQn>8UG5Q{!>)N75XBqtTiJ`CLdC+hM~ z0IEJW1{E#jEGMv8XJ zE;JuLs^`0Ux%<&L9aoLZW2~eRFlJ>z?UnO!XSgZ*<-#u>&| z8-v_PeDfpaAf`X*HkIs@yO`DV}=hu<$lch4rJGB;(ok-0@ z>YYMeUM^fUrYtn|`ZU&S?w`Sdo;g+vJ5$!yf@OObk2DT(uqG}3l)zO9vIQncFx+@! z@r3wGTV&DqdNE6g|5<8`2);GcLK~VAyFf%YbWmyRkvvXQfjl3CyAum`{-jRWGF*5e zrg1pAKMgWM@FgK=HJ+U0K#_VKM{Yt4SD|%?w23zJmhav-0yAs;9gF(=w5!O?$FU}S z8_1s$lDVUhytL7q%%>Dp#5*H92G5oU(K+wVw%+WEbjTiQNdB(oJ|&s<`$)WXmPGEZ^n zvZI*QthFc&{IHN61V2-?Xfoq|+hN&v>p^R9bXW#!=V$Yn&U8R>8iM?Z_gDE-+{b0sLRNQ8q3unqYT~--J3ZRNxHl}FoA+y%( zTqk8I{M#gD-!M#$a7WV-b04~3Ao3yXY;RnUt0|NT393Dcp%_%$l2u}jeY$)5n z%IWOfX}j?t3Z8`^QKPAES79hl5&ruz!CCA%VIFPYPOhJ2hHb3B5LySGwAUUC` zA_nDa$=?ht!xn+6)ReAo4}+2>p~IHXE0|&7?a+DYo76z$#G*aiC6Q2iO4Sy(-Rr9w ziv)WD3Taes_9BqRR7JroT~CvBaOY7xr*hi3f{E~Ee(UH}6zday*<+d;@+!0a9U6%+ zs+d~;y-eHh&VIO(K!T=kq~Xg~CVwvlp((;Vwu661R>(v0G6u;V%3o^tSLah$iG$Bt zi`Z_o;B(H%w4B`yvN!;eVUGziUznodG>UW2GNiM>mPeVJbzvBHu2+kI_Z8P_W**Ffgkc&O@qpMR=2&w!gL6&mJ*yTY z5@E5x*i`tGnBdIn7%-(cfvx8#98eBn)^od|=}vzEpb#w}dLFY)D^F3ZF2lbu8^?ZD zEW)Iu9TUzs98X5v!mN@R05(uK0m#^X+q*&Y^WX#a1KqlQecFJo5ZNZ51&>+Hy>{{fc=k0awCHIS zgy7>ERHpsZ@k{2&AM!RcaHSf2wvQMQ{pa(~IrSy$L&R&5*mYfc{_f5QslAJFTY_n5 z#Txhzh~&jVy)7>>b6rr+Vp?r`1JP5EuByvNgZJOuv7F2HmJK<}5|+|M`}@d;Su4GU zf_i|qC^*7KiFz)qWunOIJH6=~mM2_cGTyzulAGe>=8Pd z(4Nd%V}c`E+~ifvBU=niW((q zVRn9k%TyUKuuk<;sp1QGyoyz0d7DdZHkM!_?j5Y!9?t<$LZ$X9@C!kona>yTTK9Wi zm^W=%z5s7vp0rB7MSE~BnFvBBJHRJl&%(jcdz$>c3S%Xl80Q{4V}RYbQV{&BxVS#G zZ1R)tp5x>-0j81Cg>`^#Yr-H}D{(OGbSvjt*!*PU9o5u)mF!M7pT<2&EY#}7l9i_q zPUsnA1Xp(hP-$H?S1yS_^^4%i%Ct^+DjcO5G=)1OIfspT1b8)I8vMP!X+-R2U!hKT z!6f8WDe(G%*(mJna1aAGS>wNX2FSAwJC(_lWRjm8vF?%}I76A}SvMTvb4Pc)Ku~pE zvtrfJq4!oW1s!-UhSs_`X*Z19547j}eCSa}6^N&MSp;2sI>PbWaNqJ)xbrVwAO(i) zRbD85w9Mn4ME|OauT69=ZCLhym(cnUGs{~0Ui`q{b04QIsR3%$yL) ziw8Ry*RCduFPbB2F+R$^ekKVqZ{9*ovUoA;ts=MNt;poPDy?aZd3i8dBdhrjm zY5Wu(Ml)E9*m7XH*hTDDtTF1WE=Q(UlltycJ99dbNZ|ih$PZ;2>xspZ%BTjhtGf$z zy>BS8tr`F)2z(_`W#y;SgjE08#<>irTMcU_Y_0Au^s@@{D|O(6vXff|_`#PuZi5t} z^Z291W%g7n)LhgfcLaU=OX_DMlcQZR0F5%rPVg9;Qo`ur#&4A#RjCCA)eusDz<5$I z#UhfL@nY)JuLix>Pm*;_g}-zs=Lb*j=OmJ)F7l`95kBt9#IX7B!vjw3Ij#};`l3Ct z5+-6F&O?!NXmK_`#R)BqHP+qDWfVWJv_QK~ zhuBB&+7ASWQY{{aJ7A_TF4VYD{i%ma#nPf7lmc_=tJD12n?z_4$+`Poh=spic2|oa zhW~Hcjm7Rq$nM(#rNi23KzVfyu_fqPLO6ea)Gw8&$yy_#kURM;bl4LYWT^1aaa>ixt8>*OO>B ztw*@%Qe8YRl^a(&WJO$%xs19Zadx{iWUk?UaB#xZSOe?XFCP?*^8un0E4P}YY24}5 z+qgclZ!vFP26;{n;duJ6Z)Pl8>h*M-e5&7*w2#GwymWj}0}rW*Q-|vQt-9Jz33zo( zr=`O7w8Aka_tH&Yp5O8GQdV)?5vKisW8*l{cL-)Y_;iU zE6|xWjNYk&tjKFd!Y7xZjxJGf-2<9jI$UwphF(4~9x>>01MH8?=qqZdF8>P4;m$N{BbnWDj701>Lnmjh7%3MM*mD#M~i(hG04a+0C-kboc z9Xhw}<#S=#Yw>r<-X!$lbE=JrzCIr#(R-Pq$Ol%|E*(Zm-U7Fs4rk;#3x?|TqM?wQ z8seqGd)(t?fs9hT%crmf=|Uqdkc6R`(>4S?Oe}lxVrFJJ+pf+rFd~vq-6F~n`nwP? zi=5RqyD8qx6cJ5ZOrgYM>JSJre!Or1mbZi!b6zHOKz53}4v0R@Ts_bXUtJ`cE7LkZ ztD=iU?|t>e}L*V|IJ;B`2VuWuCoBvpgTQQ8a;sKj9u;! zh*zC?A0q~|poaI*La7lqp4X5UvBnOJ#NY;H7b^bD{!+-EdQqAj_-91gG-GO66(Uta!`?Z`A3Oe0 z@Pi^w%Q1{YaHnojwyOQ0&fgZY{bk$xtOfIS@@fN4wh*p?6B*dGEc-VBqaZ7o3#*VQw%^l!dqbOzRDUQD06ABZ;z z2{SV*V+KAFZ!V2vK4}JRRIS=|I?giLze8_~A#RUz$BUK;?HArEx<6MG|LJ}ZQI4VN zed*YR)CFC1!s*Jr(Te4}Pq2ceXVXpRslpMMw<$)aV12)e#DKc=S=Raoq~>M=@AP+O|m=#^xGU8!1TnWXBz2~fVG76kV9);tzFsas=lCOv3UCc)gR2dW#5FzBAPm;^xn-#rGbnlurim#MS=FtI<#~zwA8}rl+ zca>OMky2r3y=b#rz4t0XKgDH5LC49ZB&dBMHrpM93^9v_VsgQZ|1At=K@gl7vH6v! z6&~YTk<+@kbY!mZ2@w5KVUbKZ- zh-8U`S&g7!9<;MDNN`9SG&+@~+ZE3EAoH{>#?YlNM%^o=M!O$Vs)Zu8b3@#JqJdK* zEV60y+PsLFnHLFZV2wP@q91laBN+>D%}Tz2HSNsb>0<9w<0zBiUQ!TJ?my%re0E3S zT+eN@q)c_ytV5-PI+yM|<7O(WfEOo6qs^|ul3~6tJ$6c`S42ZfdIL4h_3&!l_Li9u zhkAO|IX1os+UgzSl-&$R!;h@Yz+|JfBMZvqq&fuVyOpb#Bhuy=20fMvMXatE_I}8# zm;IEA&EoRXo@M@t<1}Bg%S~Q@nfNWRMrV@ei0W$fB>c+t+hj^!h;$v?;B*nxA5$GO zo{3CA$R4x+-v&Xq*ok?{qUn3rT&i(k3UIBlpiY)FNaExIE^xQr8J2xQDHMGqcsfft z!Ra^(%!8qjXKjyC(B6H%Lb90o++)G26&LZHpjdZ?2q3*e-)=5aSw*QL z^oM9Xujn#S-mCz%f)a?YCAs=-icQDkl!63NFZG3@o zXIaLvdRz}Ah#2_?_Uy}+x;Avt)Hdf~wUO%GcNw;m%1)FR!(YecK0cx;%`@Lmb}r!= zqy~d57$#c>T2;4{5wV?<31YGVTBNY}2EFRC#1z{HN3P_*)U}L!4ly-d<*05!Xdq`^ z)=$#gJ%jqBj$0A#n7!&%e&&sqJ~}jm%QARlM+>~`8DlO9!LIZli$L4Tpj$-PG6{ZXh3yhU~cqr;!MjEDju4dC|(v_n{yx`d?=sA zaAA_ovgIouCgJb;Ff%dBR-R8gGDZ4Pb#g~PuC4`TEw-W7*^YQvAa+3{hB{aF`ejw) z@UNc|Px${7*2oiM4fQiqfzUks*;~%0aHb{9M2nbtuPyt+k)?EOkpd}n(a-?_Ol+bU zsUOP*2flbY&z`+MmapqVj;>Zr7gr7$hO>9su>LtY1=_8N#lK630V$BWRru!{r`eD9 zm?o#CY#APsM^U;DVi`B90GbHL-Ah!$0Z&v|{%=c}M>=pVb`dG&T(`B}D(OB&XZXpj zkRhHBZsVbeK4DzZAu?pEzZ&}RD>vLH@viG+kCibaziL zUPN0KEk5>d%dRE|a<;iWHIig`;>+hY{n-qj_b59rHF%rLc`{ddUutfoeYE7~aNmS7 za8vgmJkQcD>V!+xq+E0O&h_z_rVRvoyyV5smXD7 zxnZxrxjug_5&NE}YUS}$z5}0$3wzy#bU~lnjz&zLe4MuOp5Bipmx7=~cGX$jRuGu_ z@#+njhE&rNp1}w=Mj~=}VNS1JZ5~q^zJQ(N!AW&PgHnf-DQNis8)5nkcsEcw@o2dA zSk3WYE)PwCxmPY-3*Fa_v=Gr!{V3tqw}72GFcDiJqAj$)|7HGeIqF%qe1&Lj!KtNc z27bOE>CHHujW6ol;Gnr#kZ|hFn4f8gZii@?3vwI*%QoBcx69rDBp})}kI^bLtHr;poBm5NlW1e9^S8*$5BWPtCMLBarz zCif{tjTeoc5SQ6b8JZ&HSf@a@kW>7-M#VoFkVXm0Fe4j5TEiU2H#-d@9-JOHGh_q= zUj)DJ^+m!py3R+tam_gB^s&jtpfV@}B4V2wRruV(`=ilyn35^tTUdj^Q;!Z!1YBtp z;zj|A_w6Imt1@vQ$p?_W8n#(5=Ul2c_XX-;fvPEp&OyZUnyG$O1j+=q`8|2F6-!Lp zfG3Xa{DSx~S454HGMUCi9)MWYsHu@`jK%$cf#P5Iwnrj>4ZD$^2wiMBED_J2-K`Jj zhO8E8prk`u;Y=Rk@{{lVxo0i5@HzWM>|1?w-19t3?So1N*ELA&6UIZCn4m-WmZ{#{ z8U#|Y$FjKg9mUYYj*#o5n3}wCOGuDNRd}GALeY>BC*qsM*`v>oOUFd={qD8?`F_7= zj*gi>AKy6^)W%`|WyolV)(0=Z`(5Ir#`i+Dykwq(DzB78fWqKkJqlFwSt9=Xr<*r| zLNFMeI&RWb=2$ku9gBU#wbp$!z2H(_xXQwu_=c5erYyD_W;sm@Vm*VGK``|>D(o3t z`>Ha-(Ztzmc9HM04it*#%j|4UQBD=Tsz>kz2JYwhzJuFE*;crdUi0Qk&1~v3h-i@> zIP(f@a)G+m1g2`42re)h9S(5gZl-u%+$`}ImqeI^rHp@2QK=(q&^3~kOjEZydu9WI zqUpO(byCbtVpmQK$0o`~F0>HLdgyQ_6(qOX~NNmYzaP$R5I zJM?!=bZL}rd+nA0;?@(DYc8hnQXUqMX)%BJA7)y-c(I6l_#ggmT8o$97#!8&e8V;uA+?c+?BrV6V03QI zRqO`hlt)*D5H9O~Rn+S*t5pqrLB%Y0Mg3s39vG!D0fW~SDhO3RZ2`A$HVn;vF=x$D zD)ovfjEyUTNkPkFUW2EXh5$yquzDXE*RsC7X`wp0$}__C%Z4eBN{pYtu?)D%3;8Ig2|x&spYV`G_q^tF6FJ#_DUa2*0s zLOVeD>QVG|1i!l#;#Xub?HiLt*5^O^`<4@u)zGu+EKaI1zV^H_)2{ioD}o3^ClD(0 zqPwoqn1=qEwWAzZ_cXmQVe7}%vrVz-N1GJuy)2(4O(Z(O#(HLXE#AVk7ANE3ZjI( zTsQqLhm(-wT2*c&*x^rt9M;MOQ8s5>0M;xzM0r?bfpx!ErdQg=2JA44$o<(ETrT9k>( ziU3VOvcG&^w6<22V5)9h!q$|Rv_^#u_!$Ba$-S9{Kg>k3Sa_2N-@sIHy$|KWdp2~X z*rzn=_@AjXRxHpv4y#!?g!Cf1YkMh8yQchw=TnhJf>HTC}s?Jnk{Do@0Qn*h144PD^Yp*bA`-X?uc7?9MFj@Q|fls|P%| zJkb60zP*e^-*uR>bnZx$KJyD3PK}H;w0Zl@wcE+C8&($!A&Oe-a!aTCBWPXyKDi<0 zZ>Vv`k*DZYxs@v+qfEfJB3PNQ43_1q_F!e{F5W_X{saUCgnP1$0I-^wfZZb>!JB?H zw>#dHaZ=4S`ZS^U=q485IMp_l!fhFR(vIRlRU~uj3>Q_JLWA{M+^+0;qB%DF5^D3Q zjTU4*D;&I$fvKLxpfB~r5|WFAC%2_GZz0jsY>e2=DXv?w^5FoNA;PznZcv;q@Tq#% zD;OkEbe^U4ZzDJ)fT9)3Gu^pWCgD3JrVFq-L!DH57}q2h7%xlI90N|l$igH_!rqYU z&LKqGa6^DDf6?(2cNuuQ)s%GEG3#{Z-EwatxD^L{`+3J9shqpH7O+{ek6XINM&qPIbJfktyR?X^@hf+LLMtIYSt$x;ABjT=IQfs)F$gopj1$`Keer8p%bahL1ey2;kn-XZA1mFkT3 zBT5NQE(b;@`Zd{NJ;8*sIDi8ZErZW11 zzo%@!xF4@D--8EV>Okrtwv(Ks9zVE*7OO|IGYzMa76juPFT1Z#>Uem*XgGCp-q^UgmuyKdL-74nZ>J z2l`*Uo;h_IhtaN9t{AQ9j0%%P&$MiFFI(AWQ_n5|I)B=1AN5!^FZYvSn{#qR;Ut+4gdA-UZ4;dHKjl+Tcq;x)Uj?EkOA%ed?IE zHkWbn)`6T{oq||#gdd!vC>)t_;&K$MQ%j8Ld{9ttLUg^>2&uq3 zM6NDp0*RlUxLUMhX-lQ)mK$OLBkrT>fZ+#+)e&H8B5dlc zOxa>s3V39sM8|HRb;w%SMUmtZxJ6E;a%0mm6(O$(bjG- z4-qSN@$`1HTy+O+OOouT(6az*zR&WjMs7kmIvsqVm_ndTIkG9&XtX=<@fr0cDknb$ z^gykrElZMb1M3v4)E9NimvySgh2BN^$reTyXlg)^BpenFf9kVb^OrksQWl#MYsAA# zGh!4(->0PwREtGJ&Z4j~2f6KX@f20&`j7#(=H>p29=o{MF}f8}2{l2~0ZB~;*MJlL z4WLjyC@GNMuB)!Lf7)0ZI^F=&W`62AAY~#wO@(_gifyBWJY(JhP6jnv#Nec@5ETN% zDz|$WJy@wua0Aoo0CV>i&>xySdD#R&LDWiFW@1xuXam`Y8c;yGmtEOjKMvvS+7*?; z14HUnMp`;ioP_Tgo@?0Hr};44FjQ)QOY;i}1i#UD@2&g&<8!aJ(@UTxpM@A+i|M?Kk}aa5;e_lRnFN$bNZI31PqWn}K|emcSBVY^8+d~&`;>UjdW}Zc(u^CE z&d5aW3a;g8jMrMUzsHP-&8|o1`*tvKpm1 zo_-H|Ec0+jz~xs%9tIRk7UWhXPi zd$)NLhXN=iM#GIv(OW~CUQv%TuyHb=@Z;HKC0iETC*iS>OZi#grfan7xD!zb;%bgg z9PB&H@J`(&)aP^6RWwoK zK!nozfKb3KFge_Q5jg+~ry(`+L&4Sc}Ak)~uui!kfA_!yIVF`aZLU47(@V^z83P7JsP1U%x$&Yny z#+1nSYihjm##hJ^38(i6M2x#GL5JWs77u3FkSAK(`FVS*A=-ohbx9{s^W@%Fc{Sg+-zKE z0y2Z#8vAF(eSbxB8*O?Snc%uG;W^P*ZVs{QgDj~(xqQ}Q9Y@$hSej}ZCXlKu)!EXv za6FV&kAf>Y^+85-Gjtis$)(f%0;w}QAi;eK>=5eKDFt@!Y?-A)G0vRnp$Em=y`o1* z-j`q^2Gyz^1JHDuE+{}JOh*?C0g%=&Kmji>v!ITi{j+FY9MNo-U$$Qkv)-huo{WSJU zeaNhXb%Jn= zqSw?dDD!FdRpTVQ*_LmS*Q!sDEQ$YUt$s^!21=J=)?lOiqwTaJ9Go-_ zDNzBf*3nmwHT&VDWIU^JU^`DM9Jycc|+P*ZQ7HPgD zqoN5&AlGnW?p(>^9sl9-i`WPEIzl%58P3+9k;ID(38qPC-yI;dXnmNNHZ8I%Ohx41 z3*?+a320P#rRIAn7l>-q_>kcx_2cVc*;ieQmA)3NGk~=mwwY&-*s~vzIWW2d>=#wS z0VJs7rR{uP&^||^S3v?lEIzcDNES28cb{lxX$x%V*Nqs=$`|O8XrWm7uF#0Yech^b z)nmY+^KAxMn{s|C(Qz-(MvG4b&e`1}E&Lm6!-yxpAW$WesQqw^+6v=kaqlhw;26|P zLT8%d4=HT})z;q)D;ePe_XC$UR;w7dR!;%MQLfD#DJkHjVa9R?o*5iT-wNgAtU_38 zdWMEW!vZplrZa8RLrFi9k)|;0>NZf`S<*z4h2Tz64;wr;wHw z(d(1$1rdy@aKH#3{t`~VYzcBl=Gj2Z7A|1yoz;WRe338l`ue7jCsZ}2mL6oMc@-{D zM7xGK!w)g(YeXS5@9&%Q*KvI9O_B^Df{hwoYXwn$D}}{{P)W;00sTOv_oNNOk33II zHWkX(M(%UuL&SH0w!z1V$O0=`^VtRuU8`G1Rb|v6zD*3yFkI2$dO<`g^Wkv{EpMB@gQuHE^@`O6*0PXMHo@RE)aDnsju+eFA<79pc*&Z~=7c zv_Hd2*fFBIMX57wf$P%Nfz)47#ZoL|jz*muY+ojZ=kT|b2+Y!%!)CB28xZ`(um$Kn z{r*{tqKNgaSnQ~CYeUaa-y}*1x(+8-{{lY?(rcHNBz&p36;KVAITiIM`hC=ZWw;&J{ zb>AX8Xt&O_QO}gh1Z%G0;&+fX$L@QL^q2nKXY%!5+C&fsNComTpKYBMI;ZC|YFt05 zkMk1U7XzaBU_N>*ktCTNvai!rVfY^iJVI(jdBMN2F+Sq>H$B`Ik9l}?=tHHFZU++q zpIft5Ho4~L6x8(7sxY-1s`B!*W7kZNnjj|b{mDmg#Ta%QM&%V`K4Oak0yT1%L_E6r zh(%b7b6Dlcf7$eZP!q8OGZ!$R%4+`r(shnqVq+hFWUzNU3_c+?v0CVF4;8WR2t62A zeR(^GO^h6r?TF{M*=@Mv3evDln6)6w&llU%{3^5@F{_rOrr>w!sCh+;pWUj9+T>6q za(BA$jYcvS9q$0I`bhju<>#zURESWAc0ulli1cEM4jOLpL3iqM)%B8ySlkPeRC&udI!bM1Q|#@NqAyfM3S~zih`f5Ry`e1HF60+;-Jm#7BS1O; z))rZN%Vwed&p)64eAeDDgkAiF;?E#tYx;GSBp}H#6awcD)pH-~=#$iK0jc{vd&@wd zrW^w68bDr1jR7S*SdP_7K&y?6?KQ8g)$C2znpjz9KUvT_(4lX%L&J=Bi&8REU9+b_ zXdNL2W@h3v37qDxVWaF!3y&D&01C&PLH;55x zYm+b7{`Hf`?V-|yXtn2BlI}uN=>=x^n8Lj%Pz|RMMscrz8+x>bQ+^FW+_cC2EARbo zUJnL^3R5}uW*3DX7RU;{p=7&t73Cb7-IO)qu!<;;~ zaK`Bv)UW{ffSl~pd0xcCOGs!f`p|caoRB}T2|#Ui#kbk{Y1H2-SJ^46;)hOYq^+lXB?0vBBJkCK8twC`tV}r z{qX^-4uCYU=%rvNXWzJo-tDOx)yCDLW_Pd*4=7scN`bratcn7F_BA+f&9MERo+{X= zq6|FxnS=9lel<-A!L0D2!Zdk5S5vIyd=Nyn2>aZ(d=jFbv&TY>~6zay6~1)r03Xe#?68NH!|L5_|Ds+vc!;U+J)d#;<{ z#kA$b0OBp1W$|Jmy~sU}{zxr_thHcsl}bda+w}mHQxa?jt5&fpK5Hc<lLYGH7MZNgYGX~#bv>_JBp>~xl`SU-rKqur?$<09gAm}e=7$OT%$ zv}-jDsc`RkSe)eh&Pt8ceaNiS*^SmOfTyq};WkggAJ3ZR;@+_-9p@^_kx{;Z-Gvp` zPAYr3c}7)BICi-{cBX-J8U|uX_E)lEi7@?Fe>;aQgj5&p;(SA3mUds#*5*4gℜ= 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

      @sb3=SZ}jl;l^6q%3jB+AWF54`QaKW{F%6x?I4 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/public/img/som_iou_threshold.png b/docs/public/img/som_iou_threshold.png new file mode 100644 index 0000000000000000000000000000000000000000..0fa3c9c11bc4e47e6de43260bb033417beb6ef7e GIT binary patch literal 2259213 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�Gg? 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

      ?&x5dG;I;$#l{-0 zC%IkE%EmDx25~_ocXB-T0E3C}l)7ht$)OEvSG13R>_5WW_1FdPijWsc4W1L!+CF~Dr`vy=@b5oG5NlG?*f_Z2EumRj@rbGw`RiQGNw)0rak(X+uMtd zcul+hn&0GD726hj?zMlrhKaM^-h5{}?4bRakVTg|z0c}fva*~zR<5}CVtC0}RQ@o>J{nJeg>Ewvw|K#nXt+|1Hc>(aNAaj@x%{(BD)nF3HI)lCucv@&iv{{ zv2_ka4nh_l&17S!Ot2IOdG}Us9i2+HqeBfU3FFewZ(q9e?!NWH!@fzCBxBM!1?CuF$S57%sBd2*3K^;~;c!#fpCJqS=!P$6MNtQ>V8ZufKz%MJA=3 zkSf`l&M_osed)CJMSjm`;?&9Ey|^!6sJ4yzXVkcf?UN^;+KxZ=Xjay-@SXOx$E;Z1 zHNj%`k4IgSBiz-hOY@e1jh0P*PK+cgev%Jq9^kGd&+;E2^Y1?P?QQGrcO}=hxv1Z% zPanAFw)XD#{YN{W3(;+`ryWfg&gkZLO z`IJw!?_5mV&Y3=7o5yIe3K1q+UI2@~{Hn<eD|_%x2?9GlpJp%zH{d>hyyqH4bXJxl<69j_9~!o1n)Dv)Gj=LGd1JL}Ce& zh`_xSyS7!kWy{xcEYZE~Us!#A;dx(eJ2BDXqa8ACKXzEVXC1Cy(Zpqe1Nub0^p>|B z%`t5=nILDk02y+UXgNp2U4O&x+Y1k6*8_H~+6%OcEl2Rn-B@q>_aoXXj#$8C@GkA% zyKis1?#?b$aDPDy!8I!O~r4m+Y$OBHJtgoRxB6zeP+!yy{#b}~=s|~ea8;U#lL;ux z0g95G60g$n#*tlD1v%}A4hud!RXBsW_#|%A1wsd~)7#(&kwKIN;}rs_MrWZnbQ5gV zrLQ*6+Qg??AjU|B@ZhbJC*x2F5hjUEA0U(ylKcoyD5RzDg|!E_VjHIePJH{0 zvJ9>VpLx}#CG6~q#EP4&m^ngIpo~tO7^NhIGQ;$i;4KUcJ3_Z%Jp+_HiX%0e0Rjoy z!1dcqSlrW5F>{F&2VoM04|uAhR-wkqN?>UV%>04&Y82(tR?_Gz4auCSZ8UX^k!_Vx z<8(sCtGr1R668fM&)~*eaFLKvh@*iru6Rr?<7~LepZM`7Ux_bGiB*1yRS>gM1}Ak; zXsiLrUR>iy3opnKihunVzeMwoKK?B_jTIM>5?5k1w{q`U)gazzmT^9y*= zO1Fr6gIzWTqiO-8R(0~}s7tycIJ#=$9Iw!Y%U27n{+7XN==$a--$Ji$VgNi9jQYWo zbfJf$4vZvGJEVnt#Q+oTif=vV%$c1PZJXU1OGjayw7K`*zoY0l==(7Fw2IvI2A#M zH>(`e0Fw?Pf@=`M*J;_cffrGbPCqG82R-&k5R!-~I0Twq)@<(sRkEfZ?s@@c!t3 zei-}UeF_d7^|AES9S7^_6tBwG=Yh6@^Qt}i#1-G>HhJZ3`LVI^ zKIv9- zYy0lCb6brb3;@^8iaQ`Y{>aG*j{tDBmU6uB-rL%SHJmTcAgkN{U1htO^8Q}V{jljzn8j__H_&9*icJW^#N zaMr`qe(xB7Cp)k*@1gtep~&^MKi&4b9M5vWCEsu7edV*!nH-_i>5ihXj1DK=zrXg) zZQR6Z3^I>wqZllh|LB}Hp37?Q{__pwSsYA%4XA5qyMrcCsG&@%$csVko$oxVo%n(O zYL7g84--QSC_vkc8N0Rn*jaMx9rvgFDT8$gQXA;1MR%xV(h&D?Z#h2qL5$vNJaIYu z9=aUpJM$~&v=bO)^*9mFuHDGw9OO{mH*-7zdV;P9<(n6s)85FS#=OV=+D3DS%3vCy z_ub>l{|)WdKm0zX!cJv>Kga5@N`4h*{;%Y>Yz6ly0PnFmk04T3`|)o8ony$XEnc|5 z%yE|TKwG+!bCMb4U5bvaSl(ZHjg4?pBV{{va#;c=Z_9WCIJO2LHU{Ann$-P;YSNnj zN@bbXO(&kCBs^FB#P^(-73rf{5ju$N|0`E4OZmI`=0CK9_S=UeP#C~Q?gI>-uBY63 zKZa`MWG2PD{owKo+rPcxEv!g}4=|fG;oQl=3UkD1#sC0707*naRB*B!ge*M&Sy0n9vYz4y5mcmo>a(B6{te~Abnj1S zZ866*jGnMVJ81t|f#U$0gAX17=FTJQv}2BWL*T7NkK7%wc^KM5xjXy3i_&@4b|~ZC z({uSQw=_c}^f^fDLvsISQb}F0-sy8Bp5TXB3A{VIE|xEOqJ8?~Co%ZH9dTJ13ZGs1 z={*42rVM~1knqy-3bwyI@Myc670@#{stcl6yfD1Yf8?+2tgoKk_TBSY88BNz+0bq{ zsji)L@W%TY)&N_2ul>c9ZEMc4e;C^^96RBlYTwAQ?GvY*mNMYoERYjju%2;u)7I<^ zo6qFlm(RJ7J5hGy&X^lA0r}@!xKNY)_T}F}4h)25_mcG{GN(i4K&84NTQhjBVnR{cY291dQ)Na7)jlM5+A|ZW zW5}cTZ4Ff%ELq7*QCU$Z9^o zDU#zv7px5m(dV<06ZK z6QHp%;*M=JOfI3v9uH?7F`9|bF&uF=`+@t~K6~uTgzue90!&6Xsk0djchbs9m44cB z{j|}C(GI@t#$PeGJ*q8U@>B-DSFs>q($pQeTVoOTl&na7;PHN{fthijDi>z@DQ|dk zRFS$uxOM{)aU0@<3bHeu@`w0A=`(C-AN}xY90$dbc+*)?Z(T>(eei+5wjzlJJtYHK&!u?^G;-@orI0>IGqi^8qeh1oJamb8;s-rIPz0jkDyGBN9RBCp_AYV z{SGD?*1;HM;G&4=Ayj2N0-i)aHZMJ@v8ToAc&xJgy$h9}!N`3eg z_1QG5?Y7cEeZr1;`&%Om%hm{XNJy8xp!M+B3Ge3|bO<{I=C|?VCxqwQG5P%SpZ$<} z(@9e8EXGkozFr=$!0 z8|w%&+@E5n<>@Ty8BdwJ|Bk!bgZJLrUi=5A4ZxdphKOb5X#hV^&;v*kP-0j6tir91tw4Em2HRwt0TtdyVnX+r}gZ? zu6PAI=1)-KRF{Ydrr@jgRxm>oeuVehZ$(?tCBddJX0jqWktEpi!av+jURj6NqE>N2 zc*;bQ2DV9rm&DMV`bj?n#LvsNL&jnB;^*I>(`MznKqS8sDm?M}&xl6iJLO9JdI%p6 z${|Q7ENMI?Vinjh!*8AxIvENu|J57hGJ>CErt_4{1xN@Msc|cRV)W+&)1@m0&EXFi zMKYNt{q+cpU-vCNVhV_$5GzmT#VauEgbBpXcnw||!cPRDMK+XIm}B%H)q%hHkte$I zbOeYkaRa9Jr)VNx2Dy0~yBfCUshS-DPwUBst&Qc%i`};*G(qZRS6igxXgmOAFuube z-$BA(-pZo;jyw}z{`f=)ad)hUFNyOmT7Z&I^At#g^7hkM=!0M?4&Mg&4Np@rjFWHE zn4VN7G=n~Yqi*nRe)S8@zUy0jq6s}BB78^?Cb8564qrqP0J_OaOQYm%lcV zQ-0&2-U{DjV%J$N!Dl5D^p0|Q2JzO>cymC*q^tp9H3=OTV9LRegS*qxz#3Ac2c&V3 z0=}`kz(>O?jF7;$m^IKgvW1{=amGL4xJz~w(N1_Mw5%u}yycTTv9WBTlxcaS!tlTF z0nfB1@PV)CwBii!q0jbiHSEf!SsIHyU<6)xBY>!bZ+@awXgxXOnm&Dc+i}LO?SKPk zwSx{mwC&G|*MpvWNPFIa&u#n8dUo4$&plbqv^U3L?9ukxYtOb1#~3`D^NVNA+KczB zw(owk+JUnU_#}+{geO1DF?=#KAmz8w%n=LIDVl^q_w3pCwfzr&aeK#6uSGw( zXp%A!jRvQe7&{>8K(q*lBwwwK1J6kx{Sbq|54Ld(0QNH|IFS|n-}&D6m{i~>82WP_ zVI(KzZU%4oQZ^-6I#M_XfN!0t$~?i!&#!;u-1fZZ%*qiU8yFOIU{(d!Bza+;fsHc(cqSi(iTliT#2rjj3aR=8pdUJ7aiZnwgF?1sI6&nk8x zcm#tHr=EH;E1So1r^B4~uD8Ax9wT3MOZ@7U{D+PqeH+@`#}>53>{OV#1D)wjoK?%j z*(&h<`d7aq4wDt6bs{jU4av8=NZh$$KJ6@fPQ4w0ubg>0@J4Y-@uD12G#uG;9uc&h z8hst&1f`P)7JSA~Wttc4&Y8cs-EiYC+EmVz?PsO%$dN-CvBk7q_&gjv8Nm*XwRAiI)h@m0>^6q8w{N}im+cV-iDvFPodN1a?S|`r8C#Vd zK2M{=g~aCFiO z6yQS~IB6nxv?UJOnwKAa=b{`PwSd7$ zS4lcZHf8EA?I%C{Q7)i&GEJ&7IZ8U5(1M;=$?_kvfJ06Qa~FrDb}ce`dckAu&O86q zw&jw@b?ZGE3EkviZ*9v6xHDP+zS9@j{@gX+t1tO-Nu`c3Cdcv*W$_E%09v&yyJeF)= z&^j&v|3MqK?e^Z;icW9=;_QdpamT(L8Ovt|sNt=3>IUsSkjQQ(%4R+9`RpEeEc)bR z%&s$bZ`W{q-%84a{C1_iwEM>*ZXQive-@KlIPX=NroSP^YLgk>59N(iYw>&s7?S!d;C!FvfTw*-|U1rx7_YBRO`v@yT zXR(Xnm<%TMGjlY|QEZ6RPWnh!dCp}3;lw~sXOo7Zo2O3OvG7N zZeozpI!X|p(QjL8IG0_1@Py;qpZ|DWyW)R-(XQe`OYMd{97=f_4E@76-&`@OVIp$% z^Z+ysrY!#Zn~u)$FT>fLvzEc6vE#?Lh4be^XARD|vfi>}uA{aRYMsi5a_U{S59?PyYhZnDpRsa_@~KEf@KMADdWm>sTR$EIMoXi$35bnaPXHAUukI(|RimBCgsmrRk@DpPa^R z=`ooq8h8RTFBQ8$#mjanIu<*urudTz?I4gvYbyWvZF)XPil=-NXZIijDw_Fb$4E8g? zIxMzEn?s$5p1W()3#V5yF{}cfd-j*xlXD-y=|DVpp?K#77v5fT^>4`rcuPaU*4Yec zCzEN{>W3n@>nV#dLKPX3A2KLek&k?<$0>t@+j-}m+a^q&!r(IJ&NJEh6c@CQWXI)q zE{szkIFeWsN?_{mImg<{&QQNt$e^Z+q&Q4j^;j&r=OU|dGiaP7Xsk3{ENtC zPZ(plhpH+_MH^A0PrO6FzQpHKiungaN#nON$RAaLM9Ra(CAJkkR!l?rna`fVYW>l) zeM;{0XFp24cu1Qxkt1=;JCboRh!CBO)P_sz3GaVTTfgFI%D>a+n>Yq&3Ul-W?eZ(G zEV~!|Go2(*B08EBw{)3TVdfupgHL!Y!m1lR)=PN9$Bd*s`4C4_zN;Pc=GUXowy#|^ z@6Kdw9kNl6zZG?t#v{T;s&UfanhvDqz-N0_CtvQbD%>QN=ijVO@t(Z1KciQ9_ zCcN6mPkIl#S08M1=FVxaeZ$+@B^RHSiLTYG!f>+NU1g33$S!rwmU?treSoM>e&VAX z)5V4IEUXg2`0?KP)lXRQPV{mu>JsGvE6j*rFU+|7q_1=Z-m7!O%BzE=Tl-XLD_k3t zdR_+Cf3e}VHCD1Tqlv9>I~poFyp02V!scI!Ngb;xP0PM-ic`bwbuBdJNajR@k>(E=|~t3(@<_Qj;3G7lR^zFqPROO zyDEebGWY`mbul;~7gyvFdym^O1nJ25212mzP?aMaP*w`lKwCP6(!qaWkoa&_2g|_e*e&ezwrci@D%_5U+Y02BX>0nQItHvr!16laPyIRKK>=k$nzQTw8N6A zKA1N0^Q~ghHZx3E>R-k^h-kd%2X9lkutQ1=F{~byg+~Cu3T&NQ6fXglM&L0v^YEgu@X#y)i zaPqbsCsTw;QV32YlYzj3%HJ{}M3%TMjaecFH884)RSnO;F>c5=lU5^sbx6en<>s$^ zar>dckjVJM>=37cG@iyD0ECsJ+$pS;fV7E7V@f>56tUY-Pco8}OONsiiVm)65+mQ{ zznGVtBtD@^YRf}JzB@?Ci*7j^zW_JBdBIyQ1~z|)AZ<|!qX55*B2F8+@e;EMNooAR zjZf#FAS!j^cX87zAu>i-zj{o}j{yV$OO`=f6fhrpRen_(!So)I7$XU*QdDvD^;cn$ zRle#^k8_3^D+Zi=mQEQ5-~89u8iRPiRQ|z1sVEYlD)}~!(c}{$ypztfeClO|5MKA9 zf3{LApON|)F#U1||E7*iXGu$Wz+izkhAD#kR>Gd~lXd^&h3$k=6<~a2;QP<(X z)d9g1{kQO@WRQ6IGR`BX^K1Ui-$pw1Ls+FBa(n6csEIOZ26teWtfa$L61G`Gumnl5 ziqp~QV3DhwM7q&VB0<>(&G{Ct5^+tc1E&uDEoUW%9V0vF>VoovHD;~gCC99eWhlUo zu5gJ>7zFSNN0Y9~M|BuvjB+*{T6G|_=o+}PvQAk`GU1Y*i4Q!|u_j{j9D$IQM>&N@ zFu!C-92+2{_lY=+szWc{uBh@U37Vb&;@HMEj=YtA32|UF2!w(2v4`(vTk{?5S3mi2 zyZ(Q#;N1G3v}=F;qjtm9KW;bv=BMqZYp-g*yY?6D_rLkycGERK=XVtsV*a%K?&_Zt z_owZ~tAE;VxaOzrw^tK>^-tRG7%(*6@2BNrI%yQRBpB z#w||?mp>hkiYFvMs^LXtkEa=W)lD&9ghWM^Gl!N8t*AO-n>SIUf^bm*|NBj3^~gkhd_X}QR1elj~GXI2n_ z0UtAI+NcNP#f}^JZRaLOA9dl^-*P*HQ48C&soYDzIj43K*Kx*7Bjbpj9!>(NjN&M-fGuVf1%ETPsC;jJp+mhvr+nBA! zAUo2D1d20QP5E&U$B6?{wf{Q#lMI}UW^iy6HiJ7E7CgZ*Pdm2#_uW-fK>pEBa61UE zV0-03zGaZaRcv%f2V`uH{CSrNyDz}&;NM`BY7?Dd z%gAL{T!HLHaA7PRUUc$lE`03g_?1g9y95k$n%84TkfSjAEGwk#9SNr#Mv_K84}&k~ zfBm91Z0t7ewmfGgMy_`-ky`%z+F%%cRUogULPh{3Sol#4^3|H7lo!G*&2{^ec( zlNVql9U)nfCPU<$N~Q~9 z37b1^zppKQa#7oP=N)qd*gAIDSit}D{l{m3#fvx9J$Y>#Ip^HFD-ie}|L{p|?UF^| z{RXzfjF`X$z39OumwlH`FC2kj2YA#K2qG=1AgStE!UDzYbb2A-&~H6&*^*{LGNJgh zpIya3Twivdc#N02n2ESll1#E{58zv$w2A||#bkzWiU>m~E!C1&=?LvNC=gJ2^J@w<~^f zC2#nXaxKNQQTVHCJv+(P$p~P+{>YcN!w-Fd&P-IMjx>*?wLI7!f?z^{r5^E|@PYTT zOOK1tsb_?_?YIeCe!ZgIcmKoTsXI!97g77i%vi^eZx_WB6d~~~1md_mSy(~EA2H^S zY5X8unA*PtM1cDHi6{D}P#w_AN@Jj%bLJOVWxf;q;_ezR!Dhwu$tQmto9jw;7-?G) z-fkKIGiT5^P$muHRj+*VH#j?Y=bObLhC`ncGLcE(n29T$fXJJq5{)nO?@xe2t^obv zE@d4*fW%fA1>ZV;lNis)e}aV2@u1o&fv#^L3&#OWS)+X~T*X&F@u@ybdEv7?h%2(N z{cJZVGN-;%iRF~LxWwgAm``)`$(29-KK6eIymi8W0bb&mPwf)b53)i>finc7vx)lp zsH2X=?u_LwBlLzr%S~1i?98~8i&85uSX}hde>EXqc?tRWSq2@q$|4ZS!<`uT=O{Pz zmOQZ^Qc<_-Zu}#wwwJZ-x1U1WgA41K;9NN8;r6*RK3fYGNH@sIW#IJmJT!ZOHl%qm ztCJE`|Lxt!9o@#VxMJbL$8+iZIwlu~jh@`T^517AkG9nyvHA|uC7t|~gOe$nsEacZ zO1bsDmis?Oj2PK|{Jn2QCp_lVM8hrh5ad8^2J%#R8OmdvkALDLZPijPEw=n4$ZfWp zXh^&F{s&{9Y_EvB`hx^TS&BAcr0*0@@=jO=JY=MLYuyEI*b-U4chF9p9w%+m)D&a+BZtM`MT_`%WcRnt{@Ue|)BJU(v?CuTt zbT;>6p~=~OK{jA5`hrmvgSOj^Z??&-?wtG=#h>rKx2;{eg!>G3qz%drW#T{m)tc_Qg-10$_J_*nZl`B9Ey|&g=zEuB(%u=Xp_C)_#6F(+vb~_N+z|{$O%d>h zw3oi(p~mJiDOsbtGw^oB-6&OB`$x+ zzjnSJ=~8w`P=@nAkABX;b8peZyY@wHo zTHly1^#KTEeHekKHX`JQfCL0#(xa#5L!L$M$WphzMDMvHt%50pT695NA{Lz$7HEaM z(i8a~dLVE3{T=9mf=8qh!@m&4UxkgAf{g7pT#`%Ym1$`2DF)vekL0@t!}uw?ra@Qy z8)$fzT`(LZwg-4w=4;+a#6?r|kgt%VUX?>1G4cbVG$eh+OIF7L*K72@m9D5QV1Lh%IdSVVK`0 z!BsTbDDc|{hneH27twj^E?UaCs4f6ADi+Z=KGLLTIs0nP%O89?7z)dH!qHLQ@Qx(u zc=3if6h(N(@yA2N{FABhw|JrtaRapCgqNg~Ch@4qQD$k;D=-tpmwDl@G6*5Ked}jv zM?xnNlS@XuleQwJ0LCd7{KvCJrkz}bmBaP0nx z?Cc8LvzRqNYZuHkP9cY`BTfl*y9lh0ia%BC!n^E9(?sBk@aID`Ls> zF`Q`r)bm_Oi+3)Wq=Ubn)taudu_Iy{RE2oLw1F=GXeERu85z^BJoS?g)j%n1lICEC za_S8niZ>Y+kQwJmBbPW^cyAmZ-WyqUlvNdkyBg9morYN=R6|{7=pc^LDUzg1*_K~$ zS!Q|2UUWX_rI9qX>V^P$LPkTAag9tkr7MlsG^l8#J}`TBoBi10HjhU4g2hYQd%yp4g*}_wL{UDAXW|04pWyDZAX^=)e z4MN?f;al6CgveUHMfmW-t-u-3?_^yB5Y?Up|I3CFpTv?YUXS*P(kCtY$NBe9GvM{g zBVWTA?wr9)v>~j(v`=YD<(4vl+s>q@hG*6J;P%|-?yqke^zz?(7F_Gu->ne!xSgs) z6dxTM688obwJr8L&0orgfMYz+s~iEsCte=IBPG844qd>K-=0gUzk?UwyW|R@u^OAh zYdzX#@uJ0T9D|DP=8%0u=v8mR5Swy6jbAVM6W{+Iua; z>x#J8G%3?|p&y&+_10kfNL7`UZ=C0k4DA%!Ay%HQnu|_>*ZlnN|6bL`ZM|(|@3Cep zpI*rENAFFi)PaEw_(`g~lmFte3#)7mcLlF-H_%#p;~QSb>c`c@g~31^$11kXoBG>a zF0GYFkLq$_bHK??JCi{EAs3tuWpH{Uw~xB}t6%jjkF z#Q{Zmq(2x_Hr<{t#&pQyrxMBs8)No-_({vl#k`}xTedq`n{ow0*< zqV3SHLaz5PNHw0$xAwwIl^4#N+g^L*>$3a6qb~+C=%75E&GQmc!IwSct-tLybf1uR z+%a!wfN67Eynv$*#tx^flWgSpcJ5i{6Y45&(vV$`S5S9c4X8d@azvt@d;beH50hE! z_Ml!o<>Zf%7mj68@8Bt~=;vUGLKenVE)EKMoQuz^Uh{HRA@*ZSh9m!V+|@9?J^Azk zLS%sQkq+LV4QkQrCKq-l^YAUc8ic^dZ(dN?3pPU4D+#uY^4-C)KF-mNBV24Q1fdBn?-ACIZ> zxIoKQ>NXXUN1Ne&E1FH)vtGjM;)DYZd|q3&bZJ&*Tc!pL8`CcT4wHDqQU11%v<=!m z>#^bRZ76x+@dRadQ^pWI4v7Z1?`tiV3F@k2AGH9NSic%YqHI<23K+;pCQAD z1XmxKGfy&u!}`M#DzOgc=27U;g%B3qvT};eCd}ZHMkf>fDy2|65anZxw4YQ`@}v&P zf9pvF{Ig$N9o-(!>i@N@zMb>f?6%**FKRnYLx+N;;2All#hxvE>Mf=yg#ZiD)bH2^ z;zl?4&cLX+eDIWv1p3mOd__AIR+kUkr~X`>>y!2=@%)kpS&`41taNFL(%^;=y+bt) zIht~$F9`LQ<2CRG3~iT_cm@+@9UuLa7WGuGf(Ci@ZF*xz^OKOcR<5|+c_xkS1f0tt z`i|3gYllDYKPj>Wa+w~5;(yZJ12nPsVj6Z1T#`fbM{)DnQHWwFr`S4S;K|MO` z1MfKwnNu%AyV-MveI~NWXK&!r>PPUNr{0g@97?(RkN-M}iOG4XYX>vHJ89BHF0_BR zt;Tkm_l=vmy~lxWGcAc$9^I2&Jm8V*E)IC$k^7j?{4Z8wkEKpzZw_HzBCfrc_2Rbd zJ5g;a7l2p?zWgOGiTwIWGmJrJ7k&(;&Gp!vIV6Ce_!(cbADvQx%_IQjb?*^}{3Csi_*nOn+1;nb|*^r`Cq?;okr{gV)D^lPK!9IZzu~$-g@-wNvEx` zEvx_G3Ncz-| zP-%S{Cw6j6zRZ9F@^lQ9l9M~QhK(H69)IY;_KtVIFO#xXe;zMqawq#eipziD7oMKM zuT8L>?D3>$IT^vu$zj$VFwQ#*2D97YsMo(1-V@2=`AFj&w6rKUk477WBDz~*o#h6d zb*y76j+7d|)mV;lTAH0>$piAa{L=4NTih&=QT5zArR*zc_nqk9%%X|Z@zgomY9|?b z{Q@^s*u<-yNtWAcGq@dU1F%NH19vF&BPSWz$8mB_C`CQg4R}$1)IUp>WfNj_nLYB5 zNkQDwTKxGW=`-~KGqyhD#~;0eve6Dj{h?2TRE zOYd9tbVRv{@Cnp?)HIWE)b~&q*0A%5}6PK9D zi;U?QhXi_tD}@;N!tOm~SRsM<5t;#JivNFWh+2i2u;*`}gm;-#b7CD7E^r7i%nHzN zAOGs#{m~0Q@V8$KBfwj=!iMRPF;PDq%5GGH42r<&Yn{U11TluMQJcMD*8JcmMxxbZo z(t?My)$lC0EfN2v9UD}_r#N+N6lBq3UWI2m-5QGu^Q*^)43q{=mrh~>515h$uwE9b zW1%OcnpY8YXoho}fq!aBCXKpiX?R#zXgt|ziT-0SHf&f;BME%0thKQ`WC-VP zbAEKn4){Z@#FQ8+f8vz@2uUNR8!&TKL>`HjnvO{8a992aYXfJiOQ#D;HgNop7c_aS zgj@eN(fD;WZ*hpS061k?eHL2~AwMXz1Ljf&*MHmZ|8Jky{H zTkYftKMIfLRzqqGFP$0;eI8p;gJWjWxb#N0 zd<9Yn=l~h+1K-p$6S#85ixGF4GKG%zc5Ujm6Bx)H-?pd0J8`QCZPJ9%`JOgu+cs&t z@ol?_BzLHClM=*FixNS3G>vqGn*8m@W6EEdN-tybX0FE}w339ETA{$0WGe;QEF@Fh{ zv=Iz{l!Xmw;+hZnB0q53Ax)W}d=H}2DkrvKtF#2KT(L6pUbkT#$N%i!KFvz5Lk@p= zTgdsv9$VrL0ndsTUdF?~u>n~)5N2n_ycH)4rRm+}e?|jd@Lhm}ZoZHEi z=Mgl-i*JZZ1^f)?LUOHW)MlZ_tW;aaU`sBRgm&{`y+9Y1A8*oGOg*=G0}~`w2Jt`w z4lG4x?7HwQ^|Wz-VHvPWly`E~IwBMM#t2aK!Mp+330ND4>bSIq?@l1$&cJmy+LKyI zLW~37J<7sQkJ#GGcKL}DCuS#vx!SOHX?xpSjv~vrQF!GiozYG7v+Au-OXXqN7q7hF z2o{R{D_`?kjuChmnmF=i%>c)gY~60z&f&|jZzv+q**TT-+RxQ43?l{)FIhHf&bby zu1F^qc(SVnSjCU9nk>LW43E5ve_q&7_?1q(B;tpJCA?&096$9=pj7Y$y&J)ug)*5K zV^E1f3`FYm7$oYQlXIvx@SL85F;Tuv?XvHF&&bGu z_=FE&14i_XY?HRx27ltCkARHK9kdxr`Swl*%X`W=^r#LaVt6;T*Zk{0Q&+H3Sv!b+ zjTtwl-G1Be!K%!qftrl=l7qOCv4OTZFYFEWfXUF&;B#_TnIjVH3GmTT_0-8I6;c|d z!(+=bu?2)a^xRzyFb85swk6A+Br+)Q+C&}gI|T@y!Cl;VSfIp?)3$Y(3w-}oe7p#Z zemqluj2U?31&2DAb|PsV>{h=;;f3cqPhk>i1h#wRh%tntBP&<5Pk;2J%0K17_M>b6-)e?taAuX4;UkIACvG&!95{pgT>S6o2+oP%gB4F>{&x6t9;BJ4K(B;_zgX z5eV4fSvznK&QkJAn0ScSPuoSsv%Fw}Vms4crtZ;hRNiC_G!lnbo*b(wPfUd1tT*gW zS{GW^UVq&UZR-i!)c`(qm zZ#j~@f(tsbt4DVvOO65JKx|2jvK9>7zc7}?6-GyL0tSz{LpwS4 z?A<1%?d+~i`Cd$@BZI(0{%lv!JVKASL>gW97|YvlyRD6(ehw|9Uq(Hmo}>}R_h5{q zT{`B*G9fxtn@wBJ0ep|aqM1t@xF%-Qw$T$Nv7lsSCdN!KYRq=+7r*#rY_+9L+oJyG zXiUDUGMBx}cPmsS2j@5tz%!wUJ%@m@s57G;5dczbQ#?GF+tV?G}ixCL~dl zuD9qrX|~`477wbGh^fDN=>XhO58YxR3Ld7=jMg}bp3nvEd_!;avl8M*L}9C^p;hcU z3vcPLA-(TJ(^m{T16_6i4fioK_0KPnR9fL>R@B7M znhco+|0I?9e0H|h0DizGFfJWD;d$ro)P($(N(xA~KoT3L@6Zz-;4c$9oXN64r9aG7 zsyr}H8`uN#e`rWr1tV=j=SSQ$T7op)i_l3_f}zN8;QLfc-l?SMtcPC0_+R=&~jLc_C)7JL;o8mMnan=ruK!Ay>E z>yf-ci*(uaiU$#DU|tU@J7uCv3jtBa*2wg>vpaZ_hen$XTL-bzs3W?K`N4D`CQsgh zRrqT$9t;N2DDvXFbsSCM`HDjH=#MIQLb8m8Q@o4D*brF|T!aQC2%xQKf@V^t^X(ft zT%EX@!G8HXl!3lf+9Y%kY%CYbX~|p#0@-8^{ZTH-olQ=m(HOIAh=NG2*w9zrS2fQ! z9@4EWiVihaKmIU6TgHmF`7i{0;W_ZqxF96Qhk!c+L&gDSuOn%>SLW(T26qhPyCi~} z{AdG;fTBar$)D(kC#>N*C6!XBXKgB z8x(dP&{-eh2`n@!XLTBXXpmkzj|rpWkn#$2OR+2D1f^bB?m3;K#{zs!X{enF%PS`s zL)2prKfvI$<(5R01y6OIzSHzv3g{Mm2LYtrRfF>0ZOH!QhXW2?*5^v}eh&Vwi%Cb5 zMz!3`g?OvE5OiGI*uN^PtE9^d`_j-5IeAJWK|jiYS=>w~r&hi8arD6O;BXKeNBF5D zeAa^pu@-Nf1d%4Z?LZ&>mbbRYAHJJaRO3>HhjZV;t~2*(fBe%eZHMirwrA}*tG(yM zliL6O@>*8YyTYF{*Xb0Fq|@i!2(FsQ1;@$)zF3YOfKo0FQd>9n!4OG%V&PLTW*w`8 zComWaKhXCPV<)w}X70)0o@?km511AESQq0_a z_R|^mjDA*vVLz_9;o77%-|DV%RBUVdS2G~JhJgn1%A}{mI4+5L^(&9ytqzx-rTw7} zD2OzCloC#Ujx%E5kg=1f%GPw25%W(P-$V)jaq0G#0ptXbB4x#T07(*Go>_lKUMaC9MvQ0S+20uW};9)Qd06uLLHKgumhyM}U{}py8*79*tx0cjKC; zx$N9>LIOZ+W^lj;aVAzNr-8wwlI++?G+q7vrXRz1{nX}D1jF4}VQT0r3 zkTK;F_;x%;jpcY8sP#N_C(2wEZr%$|4UPp!%A^sOt}025$SCQl}4GlMM*-Y}4V+Q}bEnsHntx)pa>jP=J^ z%%d2s_6~zF+*2`%v-HLEvnzkl)~#9s9jr=5kGxxgEd}k2|2~^=9^j@9gQ84;OQ*DS z8PXP&o?%3qAg%Cuv~>zGC?~VKcmS9bQy1D``HqH)HWyTVp8lPc={>dPJCG2y#%_S$>R~DSct%7=bl;a ziqomnc4})@u3|Eg2|S3_#@m*X67^j_4>Ock4!U~$QXhl+c5X5zZ26ED9+NpqJAzRx zFU$2wyt9Gd)DHfzwhaHZc@tdr`nEcpjPssZ$2$~NO^|1n6tj2#T%_joue<#x?) zuIEc7lt0Q1m{JP7@HB>iZ;gXKDgX-%rcK`w8ng@4vcz>FK!%xj?TYWjkH0p7fnM}u z3`ftcqi(N3anlUq7@4(3#+LI(-Sou|u;Fm%lMjJuZCbodEIjk2PDJ>ow>%Yu_z^+- zEC44*Rz-<7anxgfyYId~x2aRO6A8Jd?T2;w)sHVH{t((8!?{CYR2$FTKwFK$J!UkQ zLHDsUbX41J!uZJc&2M=_n>cw!dwjvXOyJr_8asY+`|?@XYuwr#>uAwCp_xey35K86 zkEO7LCvW5h-Ev1>Y&ZE>&E(&httYoVXY3q)gb7_f5f?zzd*xDXFx!ZmxUWhEQloNw z5O>cpy1yAc_wEAA=l-jM>upubG!#kNfxw^+8O8B* zL$TelZ{*jBh*eJTN4MaUyyL0e@j8n5u;v-G%lGsRI-W_GbouGKQ>xIbCM8UN_?Z4F z0DPx!OuZP;)&sc0e_V=FILU*~;OgK5P&+5!8XydW#4)`KLnJ2j@TWrY3gJf3hs0K< zy?B9Faiz#lZB>9IcEPkm5Izalf?yECphE53b<3>=ne5Ir84a_iS%3Q1p?C#Q;+I@_eRH55X(HcLu1rQf6^pw5(j~0 zDH!lCMGKe?qZw2`D}E1d3WIuSUP2||!4Xin1y)bmn9^a)PLTzdc0aJY5&^A=QEX zh`+Zvo1nFcEHdS-`vU zt}<+4V23|`0ZU>53MxV_`l1v8&v)`wa3#eKXObq>-~I%Of1=gE?VcVk`3tB*M7&_K zvZNM_!sn}qK#a!&ZB~TY!qV|6Y%#1D5SL;xzQ4#hZzO_8Q2VDK@+tvJldy^n zi3Mu;sXQyMNt1l1c^U}f&{6!skqlP5F@;|*qGY?d4q*`|Pzw!y_95j6j;0yPoCh2Jn-{O>*AyhT4_|9 zdE0XCLLvv?rrzem%EX5LZhP$7?z#JJiU%~(n9Aj-41PVyMV&iL*^YQ=235Gyk_W&{ zdFcw5^cKzd;|`6YMxb)Q_;!t@(N3aeZz-#Mh2@G!S2U?NEN5+d?!HUnyB#=#xik;RKlc8 zgyo=t%7aIMlmdcBdX<4`$V2ibPvxON@skJAlyW96|3fF;sKk*HAy*leBZR9XWGpa} zTHh*D4yp|5qq}Ok<*8yJeqcDzEJg}ep98fpCJS2VPzYaKuDngU&{6S81|a!WJW^-6 z_MF6qj^tiBcC7Q;hb)HQ=2Rb9tUKrUR_65O7vC;71t;ap3=mJrk;8;nxhweEkmxF* zhL^blY09Qh3$`kbWkMc&LxdAsPImRLT1P{Dbdf;p+&LjC+^J_slO%y&xk$r}IO=4h zx3B;JKmbWZK~(%;R`qOR;MvC#AfP(72b$rj`49V~(==f~Q57`y8i;2Z^TKN7Qv)^1 zGXObLS0L(=qAP&K$3S3^iU}MBk0(#viB1wLauLF`9d>M&UHItOeRk-Mp1IU!Gbh5y0IuTel9SDgk;Uj9Zqdv-6-x?l^xPiz1BvVUuDe(S%t=RfCw zT!g4bi)-ULaQ(u>jg{E2J$c*emwNxL&Ty?tXqSv+}Or4*fy4n{>E>;9ob=Z zJb3Fd=OLW8jk+p}gE_LmRr6sY1_vNUNg&qM!n$oXItu21= zk;hW*ErSE#+rWxG376WH04m4=Lh3$Z#tIHkqI`5ow+DHa#tbc|Q zcg_0MZRcHgZ*%56O7R}tmMwlVgXURy&Y&bvDHB*hDhP+)x8_3HaTB&;;BP#9<>Fc{ zH%9T>#O-%z=U;Gs`||0hu)>pi+=)5{@N#5=CPT8!4m5g#z5Aa=#6wTAPMK0xa98#* zQB#B6S;_1+D)iKFsDU?~equWWDle=%veFu_Cl)V)29AEhZ!KkVB$INpxww7skWtXV zaX{<_*o-WdM=>7R#GXlsG91QViBsVy9V~>{WyYSFyrl=wd*3USK%Lb0;vyQk|l_#!-E6>Q@e z9$U%wob(+Dvdk&d?DErTn$C{d>Hw12h*US4Z8^ zSBs%YXU2k8sPookcAlW@>V!^qgDg9t z)Jx`BsZJf@q5;&7wB!o==VN{AAglS7KO$2HN^kg7K+vi!l!}Vm$%dftp0rM4SZ}w@ zYq8m^jJ92Eo}lBf!w$w@*;97h1>$4I;8jEf^y>FQ1M$S9Ew@H*}ybC6K(K8mZ>7)yFil{a$@_0IPP*A!sKm^a|}bV?dYQe&$cdIeP3cR zQ}{tgb~^xA`#*Zj2<$#b67mmd$fj(Q{9=Ov90Q7Y;g@ven=m z<@3YT8~P=-DMn&DHqm}?va$~tlXl#J%Z+z#k32Rzb*guiOqsSrd*Gg%+X@!_jAnAz zMP7YOzT0}#xP(^R$|v%|N0Iutay}DT@F0s~SP0@S5jDKT!Mmb{2lmZ;%x2ZJ^3@pd zoe8d|7S3tA?E5_CdYE(p;Wm@EYqKAEn4_g^e|AViNylUE*U|12!vM~Nf$5}g7#C2F z9KB7Oy8SeEL$H&8sk7muoD^eG2gG?Wk>x2zAwp2qvoMde(l*lBFGS(4%4=`DiT3rS z?fM&j%W<0vatxCT#zu_VwoTk-QakQl?`Us6`gLvk4pWk5+wG?^8RCvPj#OkaCV5n> zG6nf&fF9mP?D#A4s?*@MAH64O_=sNk_J8rV$JfN>kKgh=-{7%rkOaVs6jVNbX=@Oc z!NsH?9dXje<2%O$3MB~qgN&&ErCoXjlQ7(Bg|O`lq&_-?6lSN~qKdn8(uUtG;b- zMJL6pmpn0y?_`BPfq<7J5ZNet<}Ls5B6{JJPvJ?2N4I=2=|A*99>IveGd+l|DP?7? zTss|z&freCjp@jc?@lk3bv5>}OC+=o-$cClldkGm;H6+hb?{SnOPSQ2YRd<5shxTm8NhriSYEnk8pitc@)7oehDl9OOWEwOc|zkc!NVa5>c8e zgnZyv#1#lKmRKD>Lox316_~{Sf9#$4|6f;K=TGw8vovX%G<%vhU4fRipvY3NP(epP zXAnkU0D%z{L_k5b2!aC?#6l71KmkEn6w5Y(6ewVkBCEhaOH0!v&C)bmvoGI#mt>yL z*ZbaYnaBJA!wFOCyFLmbq0lxW6+U$hnY#h+CI@=y$c z1&r7$!A~60=y*{+`7BuTyd~AMT#6qXqysFUCeIvL*fa{CbR^Tm`%cCnvwXJZ@bOW5 zi&eicx5FRe=G0Ner3$c&ZG?q~>NJsy z`g~xJP6lno!BG<%+5;RhaM>n0Lmy>h{Tg6wBQFqz7s0~-l*!LMdWy}AQFT4ZwhRuI zMGuMk(xJTdQ+->IK`lrAUCnP`PvGyQPD_E_tumi(bBJ-Y_xR>TJdn&f&vGQQg$T zeZTLrgG^8qBIT7=^;ht(hl#Q=n&ScUWJb~zB85^W6OPg+&18KbTw>d-RKupONSkKR zdLG-6__4CATm*Q<8E3VjGtWU@>bQDECd*|1YJ9}Krjk~815tH| zOX)jEF^^G%Z+_={?J5_fI6+u-Q3 z+ctCvz4A)@!i9_37K=eQR;8UJ&bVe=yXzx)RiA-3Ke8y}L+mAcI5LZY(VyIMTlD4|3=DaVaFm@`v$fvER~8KOjh<)KP3S zj@{?a@!Jp;*MlU8rBh*OHs7gONJ&yqq@wzhcp=BpGjfq8U9%H^qw6RL(PWUA z#3Y*^aO?~SY?uyTrD$yp4#2BV;9!+ylaOLyOdcoF(LX#G6V*xNhsUfygiP8JY%7j2 z=fZN(|a8n0HD$aPUC8;DU=lqFqshXZjkho@V-ldv#uMFhu#- z=W_Ouo*HMRE--#9@ie~QuE1%AQ+&meKcZ71$!TeA`BV8(K7=v&OD>d zVj#>9I3H(rLvPE&8ghy(>{$1R4TfkxgzRLx@%`8l2Br|x53xEyH{jMB7~(K*^2kd* z462KR#go|FPQuvu^ymKf_Q{WbtR_T87w|U4oVJL!QASoQLM~SL@^N23NdNVlztL{G z@eA#BZ+K&S(TjhdE%{cWI@=}Uk@bf-?Di6hn*sB!9&-roTaY>Ww}ni2jgr zmL*R)ybKn8nY<$Mh8JpQNwrk#5Fs;ta6mJT|xF@LQ6`ma0@9q{j+-h2oo*pXCeLC!@No0 z8)Z^ojLc`8`9LOJ599Nc)0i01c(>_Xsnm%Um<{fY1{8{?3a%O6SIeyuyrzM zns$nHFNx8;X!X2 z-qrr%%2(v?7cYBk``~rgwZ)50XZxkysjINW(K(p)U8!9BgAR=yh>`q$5u33t$pUhv zKUnS5mww@OX-2*4GsdURci=GqLL{$XwNDJEKlP=dBT9L28%5LtY5fjbq=^nX+mxT7pAZ&{3TII&F4l& z(1-ogTn3XsV()#D90|Z<#;FiCX!0YR7q$!fQ*kADvh~}P1%LEMhA=Xs;yeARx6*+Z zW&zU`?WF7Yqln5DIRK)*-w#yA&yOEy6;10;jSG}-*;Xdj#dtz>cEtCppJ5?=EuLpJ z;izjXhIX&^uj;*HQo#azEdV4xKBGs9-QNyFEdt?ev7Bfl znhdE51Qi@@2-4knB}W~D04RXU;9nFdH2hV)R&lvavCoMdw^OvK6z7mgE}|?Ol1N~hg?jlq8ht zD~(464J0nD?obgjRzAC*S+xC75zswBm0fNUwkWPmz`!}aU2_|Iv$4`7ZtMW$ZsEzY*mdOh0 z!$U8*DDv919RXhQ9%V*k>SXnS%005l9~7>FqyoUqeMn)-2Yps#ycLH?a6nR%F^ zmpep3{YUxT)0sYDR(p@L;$*H5bWEg_{g|yZlf(ES5AH)wQ4Y1iHMlBX72}nr(zq%^ z!VlLn%YU(%F8zGyFzBkRrG$}x2TjJAwBb<(Dkvtn0s$^L2dBJHKdn>QqQiRSgNu4Z zk=j1?gLcF~N709TFc6aPBR$b_CI#NQaIY_ukp>7vTyZV`o$f#sxhywr-Fi{-R?}oa5%4t!EBUI-r-q3o;z&8+X8)B6)a} zKMNG$(3B1ufF5?I{1m{-YbPLa3w{P!(dvVzgCRb|^an*{EPR?8JwQu*dP}Y%v@!|6 z862)yvlBYaz(EEgDU%KdFv@J%v?DB4cA(j~GQ@uK$GP_5&`BWUkSovIasAZ+XQ;{} z`kC!YIDBPF-qB}jM@3XRTFCW1E%1vKxU;fJH+PUi< z*gpB0kGBiXVO6dyL1dbVB|nHb=zh=W!Ec(#f-C*4cfQ6x#$5XO51kM2VNBj?N_0gJ$g3`t`{*$y zSh>_UjjzYqPG}a(3a!byyeo`lUX{yeI*{t#``(9uHeRd5z)@$+*6###z<1{Hkc`9_ z;W-Qoxz7#omT^#8gSyg~1L^{G^t>ho5Yy5r4jt|t8)ootfPR|1hbNd)H-ZNZr_>cm zMP~TqTA!MQ|B81%AE_MRyEFDBTq{gOF~A-z}vgNg#F zAAc0sZ%qvIwiFrz2$r=!jJb`~5CbIE=UIHnkMBHkCCS`Oy!) zB<+CfAK=S_o_bbgp5!IGYYl5G`V)P}OCBJBNfDKox*~uGq$8H@;J)rmPc4GHDRKj5 zihC6(>y%j#3(x4m=KtFN`96Hq4{OiC562S|80BaSPCJD+i!MVK#3Hv3gD2Z*+ss(g z#RJ6cactuXN>^$Qu{hwEz6(u1OgV>DrvrSr@w#h2*dE2i+z@YXWB?S#^aW#5;(Jsg zzVbD)sQym6IT7P@HMW5FYCnj8ya{MMp;-7)!fHFksXI7O`?}nI2pUwXJeu#XEM#b+b zjEaYN;@csyKaC}16F+>QauMn6>$kQCU-IBotrcgU-QneA`Dv^kJ<`_S`lI&OSN(NczMKUY*u!``*~QNpe<;zBT$_7fc?7TiGEgL% zp1z?K6YjKRG3%``*hK^#4V20a2l81~l2!xd6@E6hu@CU)S6xl)oN9~s_^U{ed7DtJofS2duOHDlSoPe5(KRn{n5#*9Mxaz^5G>cC!IXbsfM|* zc2!0}0jW_q3>W!mFR{wLf!ncpr2cVMJH-`oOWjm%#mZa*8$*Mi|MIF{;?L-{zBN?$ zP|Hf}YD3VI9oMqu#Vq?m}0T#!vN8c>+Q~z4B*%tqSMD7zaJmj`3#DeEJsO z|KV+I&o1J~FI?V^GTAtr#T#zjIFBt7mtOpk^lLPwgWgl>*Deki{Emdrfl}4BZe`}6 z__3ph^K9gHjp}9Y!sYD)@BiEOhS&coWsG02Ay42^&-$zV?Mz~*;|dsQ>vaUxoxTS8 zf>i!g3r$DVE;42E`CYBVPT(-6<%_ZytP?I=;kgJ}lYYOB?+Io5G}82$Dc-J~LLY92>%>FFrefJ=OD#cj z(Z2ZQueB#W@kvnSdss_OXDgv~Y;DQ+ztFwUe=5kg2^XKfw4K3ZvRnK4cHMWs`<-^_ zB^S13E7lPg*>*`9D8hK`KXvM#{r-5Jiqj8euX2DFQlHmfO4ZyIlfYGMBO}*=h-dYE zfZ&Nwi4q>$&d4lrcN7o%FBw3>*WByYL08HE*wSP_myEn@S7T>XI|x;IZ; zX^qNtxfVQq8ermwm5}tHN_(UrB87?sq-mc@LeNS7S=8#3tne?mH%W_T0!~WG_jSAO z@AreBCqIY*wPS3j2V*+?z~{}_D}JhPmG63yYKoclwKNThjh*?)ryAk2RT0FP9UVIS z6vATApz#l?&gpfOXN>%3~2AXtnRMhj5B z;~|Pf0B;RE{VN`zkI-h6GszAZlmob0eNnv0h(_sjQyoDxHsf?6Bh!C5^aKwS8`Vlb zxpK$>ej{+-fXG|WD_l?%+>8&Bna(aWgW5=IU`59%0$@70((8~}Rue=fNvcy50~4); zR?;LNl0{eVs1F}?NaTs~(UaHS`lmj<5vS)Ix{~6lbD_95)9X$?9Z&ss8Q_wiPD8*X zXj4g*HG_$iFaDsT50GwY%lDMaW0DwBX;`8Qsr9%i7=GlXklMh+wqXZsG#c|CKQhY40O!tI)IRigA8D`uvp=GHU$RsuoWlAXv?8V~ zh+kc!PvfBy)LRi!P@DD8NnbSmzd=@i5(2dL}jXfx8Nlv z7F#Ni;hXZnz^Xv$fZDkp^ut#?loX^x860#v9qji;n^(LMl@C73jEwRY3IOF=*6BEl zNn{?Dg=wDYC?n?TG-vV>-fdW1H3L{!GGDBo{jFFnA0?k7GFh>x))hoL>Pukxjm%sp zLz<-le|>1dRgho9Tfl=d*hw_81wNPuOKz1-gz8j_#`dHP3IiV*Oe9Z_kFE`7$}8uw zn|cdN(9~y{tU`M}dI#2fscdx_l0rwlK23B%BXxHpe^{*oasax2h^Ww_=peG)k!I3 zs3ZAPkI@C-)(g~;!7@q9>-ntA-n{kp_W7@TqrKu~uWWbR_M>*!?F=@~o7WaDUd*fN z4E~?We*06$Dpo-6RPq))_#s)Xb?5pG?ZOKl(mwjJziZF{cST;j00jGojdRJsYX*cGT=uUaJZ5h_K3 zL9R;Iii(IZ@um-lEit~TuHeH(76L9%+1-%og zRwqB==wVTPlv89Us}50uOiHz?iic`mnO7gFW7Ib%y9OCx&R*f@CLdY_p7~4KEj1+_ zenhSe*e9}?7eWl&I)Kf#Us=hG62u{F2DwXWiaRhuS&M_pi}Wv$O*HASl14U%&3u`@p-e&c61?p`i!Z z?&$vxz{Q1n9yu$LZIIhul8r1ckPBu=qK1#{2tSju3m*N z^sQeRD~U~C!ud44A*b&~ofS%^+ z=h~``^43}OcY^IBF;e1-X#JpP97uxxQ9cjq`cvq6mT%!GKsp!_2OLZsWU$c;w~Ns@ zl;++oh71CH1B9*RJp9&3&{5bvP5dqhEiGbTT)`b(pdWC%s$O({b0Jo?9pImqD{0|M zU4mGu+EHv-8PByoX`Sw$=R}sc1#ZZMhHpbeApFR(!K441h`v;hM^-JPS2>Zk5K&hK zeo3dyH2lwIGHrlKU5nXY8Gr|A`K*zN(VQ%>I*nkXA_6%jT}bmN7&MAiiu3O?D0Dh_EBvgPO>t7kY^$9#p6?-?aiEd42l!SeRFgclL5w! z3BGf(=8QAiZQuWT+jjSkwr0gLz72(r2~B#Mhrhlxkyru3w6jW$p6o-(wLanYI$3ZM znh{OP$Uwcep%)5e_=YNOtiYYWI@P2%sdM9}Ji|S!@OSOGyB+84sM&O>gz=5!1UJhv zaSCVrF{tmvfEdujNhh6rAbrST z{ZvO&gW-Wo@1)5&ePMK=ujnJCSI)xoKUrj?wh5Nf-7lxqW9=c%u8cR9r+9E!@w^WC zzOI-6-qaQNOL^b~)F=D)go+#{0)`3237#TkIz?m;Kq2ZV8l>5H+F2owD>A+AlxeB1Ot2da(t;OmSCm#q zf^>^YSEuO&^;CwpbSXOAs3CEAwwOGINzSsbV&OsF!#1ULgIsrTojAc;a6nj2YnsU+ zD1`zNeaI>kf- zF>n~{cr#V{fPquF6NG~c1RNO}0jKH+AJXDbHIa{>8vIW-KjIWf>i*+8dIUjN8I(P2 zd664`Oyexl=%144M!yM;0B|L!{wGi7d(WS69(D}tFcDnIBUd3+4Cf32l%c&XQv+L+ z;6D8JRM8N$@_J+NNmo8Pe5x~hi~D>de*b(ZWz`lBZa$pa(E&O<_+aFOKn95D&uB-F zx$HA}`jQpxUbbYI$1C0r>@1~YxQT(agM29V6h2CKoQIn{c%Y-KB1=ox*+Dx7ll*z% zU|{L5*N!a11%nQB_;8#Fc)4fmruKk~E(Wji54EkEZ*AwD_aIi&G6)2;`3? zvD$OUEf*l}!__3KT#oW;_gSoNQ9qVTHL$R}>U&mpWRe%<$OE&!5T21W!g6nZKnqVy zWtuo-4)|Q>#KVC}$m)vhs1Rk^A*~DtCsU~CfFo8TDFcz{%KD%B1tC{$TQ}v?hjHIH zImzH|bPE4yDg%NM2dZM8X>Y<$Qi?xVIKe8^-nPQYd(d;mW&S*QC}%V-O)@oOiLHi+ z3_eQ~MC7w?;YY@_v4cnAaesY9Hx6cXA!#E_a1F4k&F^x!lFNOq_uRX?UG?4#O~*q`&d#{7WnELV-eU;NmjsAPP<>`84;`4Fa3SwF&SoEbSd zJFwwou{Oz|A7{Vapq z+}7(kr;Meo$-o)9_v5*H@7Ilg^*(cM`^nt zCDAs<-n=ZRAtEFdfCzC{t|2B&tL zl3xa(hWOy*+B452Ch-Oh6~%3U?%8}>yXhO>YLEZrM+S%7MGf5Pe_a;iPlN^%b{+#$ODo71*rX`gNOFD#ZDUXG0ZKS?`n^} z{L$^xAN^3`lLJx0iNmsqC8dV;Tf{pR+rYv0rU<(H2{DM$zldEAAK1~(XTZxv7JKj6+}50Paa+SjH}yC1vs))vZGHr~>f9*?IWbFA0Px3%H?VZxx{A_xd1tJ6fpwnkE$jmtdfdD%Y=YYF= z!aIZIGvhEHxxVAJJ7fuZa3m3EsI8h#>2yc=P!7>(CpxnVs%MYHcizrBboc=B7;Rt6ID9B~Lfx3;_E#qyIoIB0 z?C4kSZAb0(`Np3%q#y_(pua|kWtT3v(QcD(M<6_aoC`q1zuGLs#an%kMw3xb>FWtS zmsRBU$K}ud)&v8ry1?ihzqJIv+(aMnrjK_T1fG~IzrdPGqt{N-4|U?eZ%Ev=c~joB zn{6A35~f*<6r7O}+W4cBx^XwlbJ%V=l&r3`r+iLkb+~$wvN^&kk4K0D+w(;}NtIiE zWDH3>k`Nr%HxHz%^c*CIy82ZkRhU!R(k^pPG4_N&KupvwGMY5)RnH_&K1}kgF~+KM z!fX4?^`B^`tz46d93JFi_d9<2({_w4+p^$8KE&r?oTe{xk`G8XCJH(Qmmlab$T~uO zSh?=(Hp-$2`+0tQ#8=mwR6s0*B0<>Da~=VcRb1)so(tG_u2>k_V3#b z|MJ;TJ_8topVcaFxocmp<3f~-1gNqW0VoY=U9ePpYFWv$m8UKxV<`o!5e=Dt2Y_Jr%P*vuRur%4RPR8@{KNplO=znSMutg zslp~RKUqi`AxsP!d{|upo20HSrJXXVOXMW(qGM{wZh2A@kEN3WT{(HH;^Cshm22qV z?+5Cu^cX$=fAWJoJ7^~i)0wDl^jUpatLu~8Xn%RuR}$yqexwR2jAc4J!e;T0*i6%Z z^cC*oOJ1Z7h|udeCB7tzikF3$JP=g>NN#8^xwns?4`mDl|MM)Gpv{H!xk!DZy!y?3 zm;q9<{Ofq=`-bw=IWPd^Q$D^fVp*h2`V^fkYC;``M{?Cc(u4~i-pju?0tnNc4GP?( zpGP^GcM;{kr|RGmkW#-aqb9q;VN#`0u%b(qmCI5V$s|Qc%2hxWNe{0<)uQZ4Q|jVS zN>db`vn0YN*FPhKAaMy4W`9ZtF%Xz$C=RQ_t5AVcRz=JpG_}|ln0!GjpA3>>Gw(H0 zPM*1tH&3}zdhhv7(6qP?0VdH>(8f17{h_nyz4$z`-zPWTTh9J@SRg^uNhdJU=+KnY z0RJ;QR9>gUQW#}JDf|m8z8pDO7>d!qogh1~O7A~%WR?6G+T5uR>GoxD9+;|&e3xNqgiU;pg2kvcG zyznJ(Gb@8P4yH+?_MumrXoEov&kVS^6#*+;PM(~|{<=H1ZOQ(;^BE*n53aKH@vbJU z;3F#>&`taiY>Hukfp)LWAqG0!tIsmqcihXuVD=TZBZ@E+bkdc3&8iiWCkO*8E9qy8 zgG0f?siCm0^3WS!qDI zP=QFl=?=XtKB)dl^C8z!Xlfc@_(%`PxhPT(d3e>gv+CRjTY!|oAnmG3udQcs!6>i0 zK@Q!(HfAPn1}{IR`O|gYPCDqOV*qbm$N+*);|O0_t3VA#FkolZqxV}SE_}eND^KD# z6+1ZK<}ouF3!graINKaWm=|3ItaJm7Xi0HM4nFZBS5^|kd(0}X&=L*+NF}~dUcR)M z)K!h<1`$<-dP6^aLc|RIln==Z6LVcTAAo(BQY{{eTq}uMo6m~YQT9bYa_|@rh7*J^ue`djIrv=KV!J%t> z0NY#!6MpAePixQNLu>NBhiwNwb^Q(P8~^^*_OXBbaNBb1IIB^Ywv{WEXR^YF=Ymgzu_yIw+6UivP3orcYLFG7J~+)`(!hNRGGG8pbLY=vW$-<$wDWxre4SBV=^GVB*E|SCc~X*wb`uR6_9FN4O1k%eX=CqmkY*iB9TnVvX2o8N z-|Cp!B(f17GZ|EMCfi0i;mE(jRaf=Ehz}!Va)?Qx?G_NEWtBZn?iOw*e1%9JQUMB2 z-{#7P^*#E8h2=|@FhR$ve+J|x!Rfxw>+iU2hToICYOnoW-I}c!C~LHHARv_lLW*U5 zQK#~>b^DH}+-noHJwoj?2bLnC#O z^w?TB>Z^lW!e>!Pmp3zDq5=>$iyE}0MJg%jX6FwC?CucS$|-1?Rtu0G7%ENrD8>hI zCeMCLhc{qc!*nfBF@gGQyU4${T=jN@9AIk+1~I7Y``J3{Aa4-8>%G^uqX!Q&2{6uf z2flT|pvV}jB;9ra(Iy>iGn(lxO6#CCP0zdqbJ{IGy{*0Tnzy%e&wc=zPP9^+$4+Ti zv9I*wfB6y7O}5=b0NJ!J82doK*IV4fiX{FnMo7;#unG~2th>H$qIig946z@Qn1w#H zi#{9w0^ouNKA?SAQ!zT2?Eh=?e(rUCKh&wkHc)M9V+R z<`AcciX_!i^5Qm*k%Pv`z2I#pGiid|M&{0M|M9WQM#PnE`IO>dp zz_MLDIl%;R7@|%%Nh&`s;TZrpYoAk zvw#z4@M;@C|q{cG) zZWNVHL?RtLTI+<);zT$+XOaWi5AQ$J#+cxDlF~Ts){PfmbYXaO8&g-Zi&vcd57TL5 z&{O(6&KlHl!G{3%dQ@Z4toQuc1mX2e|*RZu4xQp|3|s(Klsl+ zR^ZTYl`;+K`of&!tC>{h|)akL$$J>0i@ zTl?&dH?$`{?s7|a2Lw_2+&RPfd-CHiZ~pma!6PpFwYG8VmbP-`Drl-JbyPe>chZDE z%^^dwOXCyUi@f5FiAV-qiK9RPFBOQ_I-Ih~019z|J86lXTni@*N90Ejs=shsC%x_t zX~C5J)Ut8es%l3e5#0I#Ky(?J{PZ?0cBG3O+?ZZ%eNV%(#jk^uB7#HF6+R2*I+BE! zzHJb|K2Zefbmw*SLweeL>TB6wIN;4EukiQrr|zU9n)FMGm2hKv4&;(Mdv-oMM#uUY z#no#Dami0V4LaHs$d0Zuri9|k3P0lG2tOtD{eGa2l=6Qb{Gj*a_zv+uKCEwPHx4~1 zK93Wm{m`IfT1T=-6c30^D>?pUS!Jtq{et>3;}c|BI`zbB4)XMwv|0L<4rh7VhQ!g( z2BU~UWE<=_gY_(RljQ!{(4z7jCPfOKa04?Hf0RRCE*S*%jbz*Ez={_o$gljTK9gsc zT$tb&l!B3q-x^Pf#Nkgq<-rsW&!P`I-gD!+-!xgJ_`K2;RRWLU7K(DZzpJlutn6r{km^umF;VL^u>NgK$ZcfO#?;Im4GiiYlCdoUNpNut$2aRjxesHtb+yoY=G=#g+2GWMz(6bpF9FiB7N4e~+WX zX}*;7=_1IPi|}f3(yLs@ulR(p!-P>?m6um=>D1W)cHL$Huqv9eK7d=q2N_@AJi)`| zNmg{c@=yP;-T2SfJ3^#!c(9vjOO~%X zjGuew>$lb)`a0;h9+3TjsIO4llY7TIuWd_Kp2Hry$Maxxiii&~CePV|&$k2 z4V_;)_6hvh+!fbSQ3hDc3PK~F{^P^_SH66c@8$BK!oWlKeFPuJF1+}GB2Fh;f18HB zS~ZSP7)0PiHy){Pc9ONZ!8M7b(^;l)fT+?5tp^icWrDJ zUUU)rd$PhA8t!>|5@R};Vdvh5ci#YT@X7(u+~aq4_OhBDhLx}C334NcvF>}{{uaJP zynqyiAjeO5h82Z@muhfKzb|e@d&(^cCuI_MuEoNI6fz(R>d+NgP?AG}Fd1maX0;6j z*|a+P>WS>m=7a*c$s~!V1xolkAtvexo;j^{bZ7F=-he>_ME)g%8(uAGk-& zoWX%JS@p72fEKaAfoW|UztIn<({W#Uw5&n_m-YgTvskg^!;J$O?iuc(oyBE`MHOjF zeubu-m!%==XvIJB$Z(v)?T~zpe9%D>WVfVo<2ZCh@#+Vh|Hl=h+b zzq8%+Z{KLY`@1h|KfUetb{?xfcFmvw06+jqL_t)q28QSHa=>6aedV(D@#{a@-gDhG zeDsZ#{=~Md<^#_|A4Z*pC+W?_Ha-kGA@lhgzucbjo4>)zE*_lWV^X_nE99>M264!Y z3?m`(J89}xGp^rP!Rdfmhmq?Tj^yC8I`^T?$pwqATfH*ExVQWuU!-%w#qBC?{^s`> z1big^SLHAWd@8>@zze#?6B4shmq_+OJ(DN!YrASI@9HL9Gi@14bYj+$>9fd3w>R>U zy@$$~8F`)@XSFpGAV+tz^%@5*1itb?cg+~2Tm~n=t@z6BIdPuzfUy*Q^tKb|RUgoS z>_l1zb+Iz4Orv{sg6YvfGbqP+f4>4F>!Jqn{AbwYzB@Mi)#r`No zD+cI`I=hEBIRy__h+8Xg)om0)UI*j7JZEL2MFAP1tvil>N3pAR`P8RA)fTTh119}& z=TO`H(;v4#c=?s>c}%WppqNPgiYrtBg%@ealDtUPn`!EkZlnr6c-{Nj?p^n^Max&( zsxknwrrmt=zhYxrS$xa=r-zAgg~u3E^(k*AU@NyrG5!n;j!;keF2OY0HK6DIn?)3e z4%M-=VKHrjTzZtBlgPbq4fu_Ni!XUd`{via0&e0O@#$2y7u>k%4z{>pAPfXY7-Uys z>-jW;vlSa?AvJS1@g<+Wku-$9Y(FOKHy9Jpl^;>fTa?PEIc#oJI&8fE10My+G%NU* z1#aV=>)Uw`x|G5HcSn!Y%m5!}@GNbTT2~=JX~;~LiLS`>F88-1P(qpMC-jai*41rzJs1pC&?E>^q9gV@Lyk@lC1v zf9AnkIGwFHg=gU@2TY|Zsp1%iN~XvsUCWv$9nK!&a@Uv<;_u?6YufIeJKO2RUAK5U zb&Fzngu2&+qb^={kCw) zViuho#5cvs;4I&adDNpGrY6`Q-^D2)kwN~P7_Kd4Z2v+S-*Ny}K&ihGgpao2#I{{jS^FDkjf-{z!iUJuhbv+{r}+mE%$o z$Rd_KTlr!E6SOAaYlz_Ff|*)4MgheEw)*9!i$mS=%T4h0@!UMpX1kX>#_0PEJ~K%# z&wT1Pb`uK+@Zk&=bskCwcg7k(F70@5%2ye*o{Y5bIGFYmCU04w9`5pj! z-D8*C)VDS`);{-{e}D$Pe0azLCDjrEMCwEJ#lYe-IST3gZ2Fh=Ox_BkE=AExaw&VS_Z zKh{p=8P^45j+NZAX=8iSo8Q!)_}I%?kbr+tKzn5oow!hl{ds8)WBWP0RrH;2+{l|- z3)>-NSinTO@YK%8+smH*OYd`>#UoUFP$ipYGNsgUwZ+^>v#a)H6Uvbk>=xlKxbXQZ zFB16EF@h{q;u9f}U@d;iNe6v+sm<%Z`0-)VlFpBJ))xW%HOF>IjjDg?X97$VGG>l4 z0i6Cb=hSCl6JG*ic}fFTJ{&EV>!z%QV%^|Mn?QQ#%ADmWFQ`ZQo8gagJyLj1EDVq0 z1C9bT!tA`6}d`8Il0=R7>;{4L# z&+A|hFXYeM>*p5mfBoyQB(1zsKDY&}e6iqzFO@_B;upF~hrUQj&7XXSXXzDdX*Y#Q zaen&FIJ|Y$AvhzG?O&fSuU@MMuPqN`@xx^p^{njtaHJ_!)oDb@=?e*zKqs64-he!5 z-omX9YY|Nt348BJN%)_KandYfBX62Yt(8ZVkqNB8F980SuRwKO1uRcNj-FOZh(An{ z5ou+!f>$vd;i@wt{}eXB(-Mj*ya%g4Bt;+oadDg0{wvBJX85^{HJt&MOM@mSZK=P zI57fAF}(C*qaZ;wBycYdQn;>kL2_6;FahhBw^TJ+fe}R~sJM$`a+Ey|AWjh$cM?)w zQzAbX;VJpb2Zpc#4E%6eumX2S>;X_&2%7Y8>cOxiNhu17C!Q)_>c2liBbhv(kO%6H zyMl<`;y8t5hBT7Waq+M_oKZ^iz*i3t;Izf_koV|QnE(+dSsCyF$K?}B zDf|DrdTH6pmFzcu4{rfnmj~Bj(a|CI0XlvRT06>c2A-;ex@rQaAP8bik&c6Xksp4p zddIbG&z4PX#p+eeB_J=OtM_c#(#|>mlD1~q=?<%bw>py11vuQ#J+BL+A9eJY$2^X0 z47R}#ooF5;YO9oy_MZ1%2TdOas#BOsY>$&815})+U<#_(OJ>1`LeyeDJ`R6*m7M&y zzU68@(zmPz(;TF7)zi?NcHUWMLznW<&ek=^U~pB_@fY}22d3(3>9ogRR6J?Wbg)Rj zkPrPW<@8bE)d{%#^8rjYy}Rv4KWazVpK{BV?bzw=cGulo+xojUw%a#tXd5dCh2D)HZ%MMAq|aq3g-zPcxTgTk7b3|?hLZ}a1fslPx`5JdP3>q>PEJ~ z5(+jaRPv-E92wfzByHwl{9+EL&fGh&BPXuBszxnQh;1Gi7-cZbSCuWjYmfUU%P;q! zV%(~e2RnDPv!ezH{;123m7UJ^gvg#YWOeg}b>CE0K5)}70*F@=F|1~T2sW`GB_fBx)^ z$jLwldT^^Or;GA2Y-n4*2N{A$Y$>#x!M~-vNyAEA z%1Awn5#s39ecK5b#js%wl(oeiIzx|guCGTIfT>^qsiTBEA;O=CjS@^g;tPuIs#V=# zHu{%b%23YuU_8@46f(pA!J2Dt#Gex4rzAAQEqHN7Iy#JsMIix%a|=87Joj_e|McaE7gb!99|I ztTsJz^mseW{Soe+l-+m859Xe1&wSRi*xP<9TY`)cOIT65bTMzs9pO71pQQhzqTr+B zH7lG+QY^eTXXB+3W>AX^>!kz3#wHzy9N>hY9(xme;is{Qd6waaylQ)9wMRVS7r@6r z67@`9pUc(_)4bvEA3ywY_;I!Dh;Bg{V-o+PSLY&(0rrJd=qP91$67H-U3D-#ACN^L z7grd=)VqFTSXa)Q{_X43r7?U6tFfANeBaLYuD|(fp!hg3TTy`_18nZ!o%jMTuCRA+ zZ~HpRWsLDdyS5b8zkICG;Vo}W^GB!if0Qd^uh?j_WXkhGz<@IebFlsGKYTLK_9YWb6;orvly%IlUA2Y0O>%7vlMj8~!9U;hpgCa0@KoEy zp!NLu3$Xz0E6O{_VCDdI{@itEMc?jg8`)tn`jr->JW4bA4m_Kw5abTC<)24%N}{^a zhI*X*>7(&oVzQIIweNjO1Wo$hz#>A*B}X_bkxoGQ&Ktl^g0fm)DPt^@j}yG923eT{ zzM$2KZI&K)_SxsMI^FLNF%V4sTC`+!`^ZN>mH|`T8kE#=eO4TtU38PSfb%T;yoLK$TdRf5F>nv6Dw0jfL81HnZb; zgwMowdC1~V3vwebadPry&vN**;omkP@s(e7FL)`@O2PlmMm5$@_-n8fCa^^vq>EUh zmIs%G6Xr>%f2I>x_$|K&idieSINE>UQ2Xx9H?`B(tj$2u92)ptJmdWKQ=e=h;`2m1 ze0Z`QU?2Y@N5+ZY#OA{jOqfr$gWMa-k20x$7@HV#j13hx>Gn+a}WI>-?k`57_F1ogN7mX|A zjNE#X?bHPQTJbLQ1L#Ngu~>$ME%=~|xpv&WiN5ZE@_!K9eh#CXAv#s1tf4PUc}MdGVQ7dGZFR!Y7dhQ_4Wha?)x2rn}nRcdciU+cN6zFxx9J@y6Q; zfA*@E$6m%Z-_rDZA-YVy0|yD;S{b6hH=Y1Qd&|V}G>h2ASP(++z)z@`_+UsPd)z^u zkXt?K8YZS*1EfC%C|WWPP~kl~U523`G|gmg@}HmJtMnvV#yrzK1hLL1vHUYxm_U~n zfp*ba>D1lGL%L^wyu`*SBxV@37%36TbKszvK9-sMPu*20oIL+hCZ&3covMp| zauT>Gu78W(l4&qMb#_QyE{Lb7%q&(JgVXa7pxcE(zcG2);d!B=I`_CyTasy}XidbR*1!PsIFi;L( zGz3p3_~k$U)JG>f*?E@ZUb;T#89^%O-^WE1NS@$9D9)nRpDFEs5t(Fu$7~ucZYwYa zC_MS_D9*sgyp&CFBXA2Jg!zqvND@g-;l=9$gq{L|uP+$}y_b>hkCTQHLpl~grPFvJ zF2iLKxh;cA%xo3b<59*Oy^*|65B35TNa z%FHg{OCy*Q^td6R|JNfjD0--t;NiAXID0L@>6l}7a$}B$pk$@2T}g&?Qd>-c?HtJFt^$9!F2gq=eH|g_R_Y8&Z+wVXV1|N zf6tqQ}y^En9mw4`g)Kedd7oqlb34tKaqp z9;$ip@`2gTq$s%8zg*d4M_pd+P(15-zs&>3czAS>)d8i`maS|b|JcWPXs46s$SVA2 zf&!lGg5=e21|s9HRzdX#&({3f7Dp}6d88wE2j4%~aOV%$?q_vu;L6eMcW-OI^vK7t zenaNI*7SJJ;E3fP}-ou`rG#bopxKr86Wl0h1@ZGFQH7_A!sMjmbUR zHt_M%jZ6Y;ZacScYkPKX=hapAb>6k3?c2K}XD3H?Zre=WJ*?W>+79g6&EA&x@Y?z= zY`nYOyQARu?%CP)QEqgEJvq@so&{a@gbnrg__xGK3jd_VGTwK*dg6Z$t5SRp;VVr% zNFA8+Ky7NCo?8#M*ayM|FPdm6_gVEwirCbdw1v}#`A2(E110)DQ24EIK4j|uKG-G2 zM6qzrr95~ILizPtyx!~A((~y<8`w~u%qF}J33YJ70-}ygQx?l6ku%&dk~p0G=KZLn z13w-=WdcUsW>SKC{WeV&vB3HqWJ(4@)9~*bGtYm{v)a_L!#v+GnZZE#JXXYyGidtR z8@>!P)E5T2{orK|kc4;nP6B5JXstJn0Wj7lc^fGVtleu2Q#ZqG|5gH+lW$_{3aRr20*Rd}I_{`OW}3x2P*lUFcw(Gv3UZ z#}*FoIvbx5)BKUS`F6-5zNZj)()17OOzep)ntc!)PJX20W=SV2@Lg+dwUyBGAxR|u z#80|w^ryXi!^n!_c!`6;>((x3HSMCdWA{C6m_Y#de;%2CTKn@qe;qtPkB9tvl!gXO z*`jL>)QT^`7rtcNw9Sx*eY}$YlUskx%I}5QM!~_gLwj~HQS@+Nur1q_gg^LDeA`p| zZw~k)ZSl>oZ&#>LGa#hm+9Ll*}6Ns{pTnB8cL!5@7zs{A)fN>qG9UBTiQxBy9R3-=j*T-Nt7tt5@DI0h)Vi&p8W1TRC3jDkK_A&JJiR(Xt&pd!W*>S!- zvkx6GNcKlBPMd3N$)F%O`xTP1sO*MGJBXnEA=W%u$|V+@HF=>E#CPL3(Ob~Y<| z2*QFhJCI}sZ*UYI`-u*CJ?Tlm&g9S0OyGzGj@l`F=jx4r`KIt;A2)BCQ_Kd~2_F=| zwY=dK_=pn(PE1Fi$|_-lBgboB|3CO8{?iuMTPqW7*Y>-q1B=*>lI=5P2gk03PT(k` zfJ=hpdC!r_Zj)S1AeXcok()F*QPNCEl*Hs4i{JtKMGuKJ@K3Buo;dUYi^_xt4Q~2D zlv8h!kSzP&0R)$dtVvVStdMZ(WQQ2?!PyAJ1UK}a@Px;)b;|+THr@yX#)$6}#7L(^)K&%V;^zZ-v^V=l-+T#qM55e;o z@l&0B&5Kcx-y9XXVaN^~-U6KQ_ejEMmHLB0Xxq>=qT`(BAnP7cD) zBzDnsn~b%T9UP$k!uP?$``hwWD?{IJsmZr*)udOA3%Jn8?Q5l_xGq4DyF2gLYzl9j zGU-e|y5b)29c=s(_-K{0b&$tc8(Pw*gZQ+2E(<0&0&I5O86PS)MJ--v1 z3hqlz@l#&8lNbrBfOIGykv#J+Z(>Cr$|O(O>radkF!j05FT36E2k7JH%nx*m@`u#8 z)HC}Iy&o6@?KhNN^)8);GB{MiW#=FISOp=_9Y4J~h$>MwP9 z4sB2ViC20F2m~M%E2>^Wl2Xpd23(XvLHNSf`Kxn7 zTI2^N8n+O@UBRCFlqWIz15W_bnh7fb6N|@^Ru~WYtH0i{rJHNhp&fLBf+|>~EhS~+ z+J^|O8a@G_Ncb13cg(VSP^430o@vr9eFEFb7aEl#7#aKl9J1o)ww%WBwL%FDRCOF+n&sVg7aqN&WlD6jfAEqVyjqEm>-LpT0QBZECs zLSX)E`bj=m1|wNXkzkoR0D6K`>TpL=T{!S!r`iuu*>Sn}A&i{ci zcQH`GM~YdUzkJOKRwf;7SH1NebZUzi2h3#F&SW}H;7O-7#)N%BzeYBFKNQWjVon7Mzl^0(4$(e@( zbRRes<*1lY`XHy+NVt4Gw*2Jap6#p_I@*rz+tbDmA8Zq>o|!u0cMA5m<9z&Z{K#Gg zWOkE&Z=2-fT9Xq;NUQvDR)QWUf1D3pjUVPLENMrXFgSW}A1gjt(UpH_0GX8`K7xGl zPnniqGQvJQIsieE%$Cf8B)6pZG7~`HwJ!O0o;gF%=�gIh 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%0ANOdbYV0!|?!p^{$^{ySy}|$$l#j$G1F-JtAjN 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�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 z z?TX8Pz(oqaRl&mOUN83Gt0`^__Hbli$(M@*C?>zvKSexzR{X+wi`o;O{+xE*HP^J` zPC2XHbNAit_FI0)^VL^?|M+$o&vak9Xr^uETN(fHpZ}*_bLszO(e)4>3G^ryweQbk zX0+*om%gZ-a>_~VaX-kOr>o0hDI}Y9_pY;UB50A5S)N*O zz*72yXW`Gx$`56Gv0y8Y=-IJ#TNVd5-*r0yA|@=v`$O6D=CY8#Z6_Dn=GBrjG{40# z7krN^`H)Y5{APs#+{-sU_<7-WD39Pe{j788;{|*xWmWsx4}Jji>~_{Uk8i)lqm0%b zbxgbcwvFwkb?e#}zxd^L&6St8LszV5%gFI<+jq7{9C$F}dQE%z%U{)g^RAmS4|w;2 z{gH0%bH2G^j+(z3=x-wU(4LdIaKM#9zDdEw2)=c&ga!R;uD*f`RlB(eGnL0Ac`;@W zbITkqD0(5}{qK7xWA=!)f(vMVduKO~0y^$7k8PLz-|x2H`JD^ee|(+CY3Zw}VH%>9 z5Ku|>Qn%=QM&80;uh)s{$nP$Qta$+!Z@nT;FYAG0(yBa48vs^7slRL4Lm|h61l)@BS6XZxqg23rhd1wg($YS;8@YA3_I#K5Z9Ygy_pnUkFS-S&2bYx#Z zT>`E?=XOiV1bO!B)XnmvXdZ8jt7nqZ^b&LxubsV(knSWu`|HR9^qHOtgGV!dV<9@rlBiLEvIEyUc zxS@v9{&y+y(Z(DDjXAvf?s>j6*%LSlG>MeY2gGGI=SI#+!Lf~ESt^&jv|CIp*%@o` z!z(t0^mEx?tmUJ8)^jc=zwF5qMBJx!67oRhf=f?GrIYXK6exDaC|Z!$9U9yV9-hb= z(TWl+vDHqj`3V~&!JoNw4@P; z%=UPUzASZ-syr@EaFNqZUj~4Gi@v3Q6DOg~6Nt{ek*)rjEJ!FCc<9-~s$Js6zHV25 zRS-*~XaB*Kd^KjO5f5JDuExYH4LC`q@{|Uu^&1`gBxa#DXTTzHjnm|-%{luI^Ae(cD(T3)qbD2oc}P*68b+YiA?>0o8g@ zs6((%)AjMIGsS4R#4GOc*)4s6OpPCL!d!irPGRN~CMwA1==8X+-9fB9N|VR(A~%`m z6_hvhfsPH*B(j+^mZDBuurWClT{LJj(`{ni^EF6il#;YDKX<&+1x_-;_!NePhsP+f zGA7|L{y|ky{H&YZs3KRkVh8g@Y*(vvp_6L%wnX1_*+z_oi22#enA|8%Xf{@Vr)|F^ zC3S@`0Z27UgcCnp@aey_+A5kxRsBkphuW!=Bkq=MmP2P!?m@^gM;f3BtIifD@1-fw zwgK?{|9CfyE#X+qo%sgL`&z<8~m!QZDNRAYd1vCC3MO_;Pru=0=$&?Os zNn}eb(CmCw*mgh##%LiSWjRAWkOjc?ETG6KV%91FL0S8TN3 ztqyI<3sE}jT%izho+lr#I{#2gy}b`QPPcYgnZA*)+{&P(42sD4+D`6_Yqo<6XNN1Cy)SJjNf^xaJ|`8fx>zZ2f=K7_9{mYBB5vw|}1D~MQqDbk{BtJBF)dEFlqYVq< z@H?5#^|3x+eD^=U%YJv8%VTJq;C*)X$)}zioqK%54UghTp6R%o`p^|0Vgt1Jj(+{_ zIpQ6<+KS~FH{SkB6}|k<08cl0`m>+kZoKj8cHC*F<+lK)=gw<4UiXXkwg32Td-^#~ zXggV)-Qy3jV*GTBMp)+((gejKb^8`A@Ttpx{oQAub5ic3N3LCWb9>vHFJvM6)HY`U zcTls?d(AJe3v7k~N(?dltDY)^gCv)c7nUDY0W!ed!P zf2bXO;>qpnU;Y%2#Cc`=wP&2|$1FeA(I1IC_PSu~ z9=Z~Y9qsm8*W=%=_Ti6xto<%`evi!yl)CySe|TZLVcoj+$`|7si@eB;4}KnQ@^vVP-sNq;rucDNuIoVA*A6&zdAsH2 zTet{uXuJ8Q>$xbiuYK~fpKt%|1;3HIzr{(AamD55E3dk`z3jYKx2t}3X*-FW*uoF8 zu2^wM+w$N8?Tp7gx$SuHHtx)>3lWarj5zw=lZM$mc1fK{yTDS$x5`!ai4h$3AF}3R zb%63R+7s+4XVkg4k6qzof&9=_%M-R`%a$bO9{94^554F~qN75~ZrON8yWlmiYv20n zSK8r^Jb`aSaQTLBmi+RvpS3fe_{{biE@~Kme{fry>H<>Pk=*6NkdKlQ`iGZZ-rn(! zKWS_Et%TX!HNSWFLp+E7!M0)D_3h+ed3^iQMW1SiuU-wOK23~imtOHp7Qk1S*nkGVYd$$4$puAS_O2m{?8 z7uFdb#+ALlgOF$Xf@LhHu)~{HHr@3A7Y7e+S6_Bnd*YLy*1q(G&$Pu$7U3CJ-tCY? zq_ubb#h^B-j1--pjWM=CuQOOx32Fck)=QP3>?lNH|~3LC9RqWkP)2vGv|| z$jT$y4(6L3jInuKK=Ao2v-y_7jq7egfXhbsnj9lfbDZ?HaZZeGy#7i%sl1X|4}DxQDTf=KDH-T67kd-T_N$9}xtHP~2kxiKIo1={DU zk1xlbdCz|qam4Ifbcefi22*>8vI1F@&=F{kLx*a%*qnh2U0LH}i@qqYKg5wj*;?3Qy^Va%$1 zM6(hu2#Jr!wm5`-$AMyLhX-5YcjOeQoQ^%FNAKvwDRLs~v;C!Fk*Ggh^{~^u{-)KP zeM+9j2jy)kSy_S+qKIx-CNFwoPZ-LlsHRgAPceonP!b#W&~scb;9&M*nWYj0wIDW8 z&j;4vDO>hc9IO9x9$m&Ijxp0WWwWJen6vIJ7{6uP!_p-=m zmp<(Cfno(j8~H&@cH`AI#}L{5Hq*$qVTMj8W(K$)mlDpYxA4iXI!wub70+>JN0nn*}dqwT#~L zjd+_Z-o$|(8_eIpm2iCyf(G*>f3>FjR0b$mo5vYcbsf^xSF*MV?N)O@kA*V>tV3;l zfdD&2-o)c&zhq2y^hm2uwgS!ZwP!-I?#Q{C$ zuhKRAA8^JldSet782nRC+q+b$mEQRhuhhjyw?KktoNAk6UtbW>*T@M=o3Lz&Fk%&3 zQ26)QR7z}Dcz?~jcTvs3mblWGxazBnnxGVur2Q16D6ZMwL>akeS)<~+vf5Lip%1NT z@XhlL`$gRtIzG#%t0J%7(qD=TCcNNgfk}hZ$X>mppB1lp3=I2JJ7XK{GKW_gOJids zI9@~XQy{^Mue}}S=rNw~Wj--3X->u#G%-Fy_Oz>nQ9|P+gXnqel?X*l>CwRgZ)pz^F@tX5AZ55ve+1;F@ zGiS#?WbviMiz$5=INsdHFeNEsl$IwQ*=u|8R3Wjje>JT`i#(rm+$_H@Qfs zS{pqE?yyli!WdgEr=|C^xeP@+jhQiIpSiM<5ANy*#i9d&?nXyawxg<-b*C`)UELIA zgi6P-(evcGz$GQf9iLp(Am@pEexjK^$x6oPV-2vKn^R(|5ZXX{=5F^f5;jl^-S*Q z@nT9=Q4Ak6q~T{Tj70UP-F|oM+qr3xQ^Df2W9+`-);Q@fq`8DCMxvV;4JNgLb?@h7 zMKUZV;+-2SR2#!A11ztbiQ7%5RtGNmGSzBFp$9w%8@U0?3oacLtWNfnH^60WCQkwv zw5~7*0&r86t(VoAO?xcoWkQB2I>M6p!9!xj9->+tyxW!x=up`17G1R2oaCD*uhu}O z2v7IdxCXf&NEFuUBx+O%!pr|&S0XwXl<{Z6QiV*uQDz;X`p4#yi|sbKiCLv0133AB z9)&XWIBJ{89}AO7$QwE6@Z^=muVJPqiG%oJ!7Hus;ze`^4aeWqou^(B|F$Ae~0p!{G;4*lfEKOsym67Oug^NjJG z?Qy4^s&MoM%G7hy=lG;@kh=|@kXVd|z(=8tmXUQ~b$Vt#l_Fj6-`~`}^UaI7qyA*> zqMy}vZs*Y?+@U_3g~OR?p7o88cgS&*FAIBkCk}YY`_ySn3bMy0Kg8q!Wq%_(r|;)^ zXE+nmIcJ{Trk5PVkDwl+Iqi=1x8&l$U3Y9~FaFJE5sq0b818PHxodd`y0-hwdE#^Y z(MPq78?I|JbEn(w8*Xazcr?<21&i8}16Q;cKL0mCV$)CaQe@3>L7Y3O^T;D`U-;WE zZQHo0vU1H4Z97*!?%u?shPH2Q>u$b|#s8PY9v{)OgWnt2E6E8{~vceB{Z_Y?>h zOTF0X;{Uqqu5YWBAKD&#U{gEqzdb+S^6=Xp5Ai&F`(iuaEN~upERX%U^3or)M?dD2 zcID5n$erNZxS(+qcd+k#=$>}rAN_fS0A0o~b65HtyX+VH%#I=f({A4(;mhseW#-|xtql#nMl;#{BW;RV4lCvj~ZY8^UK>ezVp5IkxzWCefl3SYXA88OWNlz{%X7E zU%%cy!;jB?;gYYm5Ab^rFL>e0+UdV?c3Znyab*`P@X!49=ka))6+9M)iw^{P+e6#i zh8us;-uwQ)X_x)z+bmA6%*`V^u=yc=YE@jU@Y#OxTt>MZBgC=4%~}53 zn|9ekqYgQ93`A`Oy368`Cq1MFyIoVa>C6*{1OFQ4`3i{{wp9JY@!BP9_* zndcLZbFs4ZT>!hj@nJCi?YzWG`NB~TG~((G@6*;TDH}Rw7lqH03}azdu;tByn9@bA zS{m`u&6wL-fUbAzH$o( zgq(+9N60dS0zI;d7cKTHpN<|FVNYL#j!d;E*ZXUN4b8?f0zNAEExP+mcjDWgy_Uce z26qaVoz6<-M%QPYnGBQL;S^A5W!QvF5sLGLnCgM8KKOPekQ4QsXVBNm@d2jh2biM= zoq#0+1cjXb#doX5$rJXd052leX%oBdMuso;$W5H0zN}50wFBHb_f<|iM@wNoJYRd7 z!3D2ij`QGa&%-t<(FJz47!0Fy->BCIA`ih|APyNPiir`MrOTyk*~%`GYAO8@(DjmsE`OIw>_@*x2d&xgKXf{B!rf_^ z!?Y*5;AU=4Ji2J)(x??>qGra_#1$g@@p&*B;LkTRW0}oZkAMgfp>EC1edh3u)7abiA2Z=8`0t-w^?RT7jv16%zChnBL{CL}!u zCMR62(I@En48q=V%7BL7yj7_(XwiSFLBh`**YrsiU-1tK_q_5PcJxF<43voB5hQ-1 zH~Ed}|DQZZHW0R}+&a79#~4RU;hBH&k@n~`NO^u6-WvL#I7hwAtO&J6c*`uvQE~4K?7t#T)jvcO?Q)+&{)tDH5_3(D18Rbg>Oa z`be94zB$jyFpe)JR5p#Au0YW*=vRN8uyEz_vK4cTycB&x`02FWcxOlMYgjy$T1nVmDD7e~K^X zUkHd(zL}tYiYtHH6K?m<$Pq%T{g$n&swCt?%Sct4R(9#21=dbhy7uuAG z%BY~kxHmQZHdW;S?JACaMm{EB5AEtrTi4smRkKp(VquD}Jzi?;_Ue@O>0RdYZX?27 z|HyFa{`Ed~m%NdYa`MbUXhYu@9_?f7*!D2|l<@(nVoIRkQBRDjXr{S4-g}I2*d|}e z4|?Jx0`ZzWRw>>UZ!W$dl>XKhY|<>Z*y~~}m`StV5c||`1Dk6H!#DM2ey~Zr`|w1KOMDN~Y1mWkm|RO?YMOuQAIN)@C|Jf!+x zxkSx2H^ubNm$Z@dFb~}dilKIWuek;-l(T*SU3+p9p*s4e9l1E2SR0<|NM+JG)$$WE7F&o#;A*O ztOU?JAxle{Z605vkF52aQ$0gAHbyx7WlJ4%f@eSV{84Re7O(eTSs3_gRBsY3isLJ2 zC}gsQqZ~w^lW(l{9aMGXDZ2!}B2^YOoC`+nQqGi=yY!w|3c$L)f(x6Rp z#y0!20MbYHd8)u91&uj>2~kRgFOUZS8T zwIz^xzWx`06vky~wev`|{a~ zzsB>^?`p^Jqr00o-^EuPcD1`U-PXSGwJ)~=mM&(&-GxdQ52v_Ony1;*UsLRjg+D&* zLH{Q|y_CD(?`d0k#=AjSv*y^gmHOu{`eN+zVvTnq%=SYPv2fHl$=`6xhW78@xTGC( z;$w&j&-lm6+t**)zVXd(wABYM%|fJlyl60+N4EGah-v(u!@}u9EW*!Yf&aQ2u5VlK zzKuoAExG%9#Y!G+vh%_A-Vc2gEqu6B9$o75ez4>k-IjgT-Dz*#*rD0d7D3(RbQHp7Fl^=5<_zn8#x5_IA+n zwe5rNe=l)jTFh@wz(^d;TsQUCfdv|Lw~VQbr|P$2m1>*$foujh1gh~NzR@TA4#5z$cRjb>#zV-F?jHf)Qz4n5awwIsxVt#P;x7&-K|D5)M=RUK&>;=zjFL>T_+l8-t zO}pe@E@{`Szlq1dJdQ_B{R+0sYIojxOS^}=%3txS*S3u}{gQ73aQ`?1NH@IDszv_! zp{TqeZ5Tv+)vW#FKV8%wxZ`FXlXVZ%-kojzwLfoff9HGJg>QH@@#crLxq!5n zz|5J2&5U86yYGdA?JU0P>Bs)}``goaCjQOWu4{9N_YN)$9ednkxx4<;?T-5&AfEIo zd2FV0Z79QOCk48MczeHl?fvZszj2cjFpS^4;ucI1Or(b|!`d zGbfkHTd2;11`wXQ6WW+!SAs6hmbCJwz3^siC@Uru+|NGaq4U%4&hJ4B7Ayc|ZXcjQ zhEW^TW3CA=+JG0@i6T1FQua%yS~{v+3*o~bHTSI-;wDu6Q&G-)h|%D59<dSwyUJ`N`8t@>`9C)P;hMOG6(KXiKRp#MnnTI?|TrAu4KHu|Ve z2?`AhCM>8Zg+o6m15bTrq-e@$lVvu_aW9Y%oi}@1+27+1Q)J?#{ZA`=*#i^afhn(e z8RuamS*p>zk=fDiw}?^^I7Za2Y%|vYK~52)Qkyjo80>H*{okEILU#gUnFu8I>0fwy z6EPo1k)T2ww5l0ZdsN}l+a^@TbUAZuw`2^1JgQ7n3 zCIeN30Md>mFBK)9C{hZ+K2moAC`CRnjEl$Bd|pkQ!WDb+Ii}+!+A$ot(4cfB`3zZB zh*tV7IM=u*5ZYF;k)h%xOo4TK(C@g>wcvPh*sP1O<*s?1r5hOZJA4IBI7a-z_k5de za^Zur5s)=WMcE)k9+G{GID6>$mA(sv=RM_z_D6p7lk(E?hpYf%rC-=np3K8wSl0@_ z*`G47elIm*s--pkVEVbyV6N-G$hom5DyVB?{$LIs4ca1@@)&9knW|Z=bT2vjs+7Km zhLG>IalYZEpJk<^9^3UvdfqLoYw(z_ywq=t!oH|^8YbW1t(?++{bi4>@e6j`gpW7c zim&hr03vPT_~uR>`j<+Nkz^VY9~)|f84Kx=vYApM5#Gejx*tlig`wD$>$XO>@ntLh z>?z37*(it%(OC2tI8W7h2484iVg*ky`;t0pf+NWU6enHTom59@c2pEj+Czp?3}NvO zU87Xy>MP_N`-vHq$aVf6&HduJcn2KzV^&^*>rQY&6Vq`lW$;m_n)w#RkxhU~w!VRB zJ9W(!5Z`h>LqAt%{Ft$W$f4%(Y1z zm7@~tF=F@^?% z0(YOVDf(oURxTu-qi-jBgBVa{0d)RAtoju$!Fj8_fQF#g(WzT8NgkuZUR!v8b9fam z(@Ms={^yTMxUfN~I3BRVjPKa4|LJ?NXs;L`%zqv`uMEW4Xh#5Q9{HcQju}#?`MDxD zatf9{RS%5;2SB|v)eXR67l{5Q@51T|fEr|krwmgm6sR^5{H~(R5g2_n2RX-KN5-P_ zpLTbgsLNPTxlL45YQ!ACp;3mO4@nWV8gp!*tRl|Hkclw`g9$D`)HY6ta$95R%Ulv}SR}g)RB(SN|&;5imebU?5X-OGMETcbQwv-JS3^a(I z%`&7CaK8F%|GZ^kP?S}eMi;xiNS zymM?DCfL8#ui8_3f|&#)9s#q%t9j&X$=3oI%fNXg&Mu!b&dHaji<>v!+h+I?UKcC( zvN%4)e(jpW;ABx+VIU_zB12hPVr9(e1N)_Zh_infj>TZx=D_A};rzvI1wW|!!^?iz z{`X(My{$R%Bo>jm3zu7z=TFaX`&hu+#a;5NRr2pRQFU0&A7V`NWg6WyI{`za%lb-slcFtL6@NEFofJZU$ znnT$iId$`^#JkKraJ-Ol2#-B^#`B)nZocvQHh&S1GhthF(CYT?cfAJyp5xAi8~bAq zamk16K5bY6+>M2um#xLJ<-Y2p5hKlSyG$09UH)q70ZIW*mb9CY7q-fKw(EPRfB` zfiZD{!DJxDfdb1QA*(fk08Lm3sarj_r0&-1_xjB*zu#}|^S##jzI)H!d#&|f!(Mxz zbN4y-T*J&A6WMR?)161SFmaKEYpx6M2$wf+r#^Kbc+6QW4nODi+qr;qX8XN&ybFuC z1KcQf*K#J>8xf>&%G`|t<0pa0pPO1s~{I8XoY!>T+&Ute*@4sRqm?uQlH{@xG% z$o8yTU%=w?1@iNn?ZHnxxV_*-uh@R{2fvRtFLv?Bs^dOg-_QBv5y5jU)`fZ@&ayD= z_G`cV%jkTPm_AP2FY%+)H*%5V=Iw`m=trX~D@GsaR%|t}zM}ndcd_%W9rD%K5@i<2 zCqIrl29!0Yxcj|aV5}YT8zas;Vv{q@UtT;={IYk+Q}-`h$=UN<;CSls`?ufxjbEjo z=o2mo9RwD z>c@ER)OY^sm|%*qRVE3%*rSLS=v=JO$HyLf1O|O1Ajo?ot9c62_6tAvliL@(;)}Nr z^E(+IeD^!HKf34lwog6qvF*qH(NAx$`%gZPi)buoIA+KP2d;6V#7o6sP50EsT3Zxn zXaDwj$M~tOc~BP1$?2OS`b50>YYvr#_Q_{k+3?xTMJ5~*V(J0dZo_Ka_p;eUtlCkT zbCQKcYZAsp|AKv{Cxr=e`3D*)+gO`Gfo`Q@NLvjNulvKbi|vRwq@fd0;>ZTByOgUw!L zjdir8&9W!@4ivH6;-PFck6M7t652$Wql3dEdv+rd)@jFA+S(u35g<6y5VqSrET$K+ zkr2dr$M>-y8|hOmFebGc>j{to*(HB;upDQ)pEUyevX(r@Wt8r5m>kC^Xuf<~N1ZVa zUQaK^ckKq4Aa&=VcIk*Y$6lSiR+Dzn)I3yo0AyXXA-K~s_9{23YS zLEINY$+5$1-d3AFltW6R*f{8fIP%6PyJhvmV^O{8citRx)IIzotB^8mFw{2IBWD{g z)2RYg+Geg@LMp5{KA`Qu#}PKr6Ax7kl4uHzQRQd;(WHX@>5mMcZS{kAW~%Y4j}h;K zGc207e@0os85}V@7PHrt{mr@-KvFOpB`f6l!!zfY18ikTO-w9yHqbM_Ok|74OD6fRPBe(l%f9sB7SM%5UjL$xs$WSZ<;Ds(PYEGwN zsdSBTBPp75jDc&N6PpMGS>EOpC^6ioUR z=7`6n&oX%)G{z3E#*ngP+=y9=Y74n{6|<&qYMr#qrPJSv@f1pl=#a z2ORJk6JhHFkvRufA8oUq71GKN2=JF9nwB|?efG^6_J_WxR@&Y!L;Wgn4(b|~JUs66Q!r)MKDo-;EDafn=s(~GeUAT&Hsk?8 zsJ_AfS=>jCu?r_MX{kKNOV%{fg;q%Bm}{t`Sh$i}N&c2D_y$Ei_~EOT3X`AmYrDr# z_iW7-j&WjAUexY*5}QVJ&-uJ~OK9oTpDs`ZHrhHa0OwfHN-_0O={E41{oKxX)ey?sPfXO zF+MW1;L*}V5Wc2RXFzzBMdPwgleL;X{@K zT5AI$^1N{_WXCq@><5{gaQM?(CzJHd@rZ=iJa*Jg@=51aQmT@& z9QxpvMjMQOvA0o1UnDF7h@?+$+a&Gywn^^?(b&T|JX$4YGVoZmO<~*gO+mJH>9K$7 z<%9P8HE&E>MFA2c|JT85CcBAWJnD(nh}u_6(Lz;Tzm&_yYy+OXahiz*8Y+8?geUCe zgZcc#g=i4`1BwdfCgj zU;7uou>JP$zLNbq)5$?(~pMuoVPZzL& zuUb#g1nzhwf$eL*@-J;Kc=6ra!=LkSTQ z>1xuQI7@PyJ6xwM*UJ8(F_&Dxj-xExUSgqIPmf{i)2C1KO^j2-hOFhWGJZSY3U|Ew za*{a51rC3__%ok*id^9SbuNII-yiw#pKo9PP5;IA-T&2(Y)|mR(>`*?N9MTDV$5c4 zGAG6vFADiYockX7Y~-pZw$_+vmLa75sL^?c@pzEeay+JojUjypGgAK2L?H6O; zHTiS|JC2{YhKn7ic$WW@_3L^1N`JbWm6&PQ#9F%;M;Le6V<>pH+#mg z$DbsR0dU?ihi4(-FyF8UYWu@KddK$8Kl$MHkN@c}ZvW%|@^f6cdu02Ozw@2WoW)RC z=gEHe06fih?6w(X<7Q*N@g_gj87ad_l?LKfE3$JU5nuDO>@rLXKYokI>ka(vpLA2clt_u3$9X3EM-{@EbN!`}|aCDS3X(>>vb7FY7=7{xKo z0-gE?Z%M6Kj$EKiub5$@yHKi=Yh_lYiBTS=_DQ_ z1qHG>C)b=)kF+5VQQ#?-P=!NW^|@y=lywm?(Xw<$S@RR+U7vhezx>u~^<-u^ILp5g zlC%D#q~6gs_Dx^XVj~rC=LP}AsEi^ivIxw6<-rI=DsE%EIV-35?2$(#Id^t}=gTv< zMalA+zcoUJL00wHw;C6r_={ouV}cHpdezq4H_!?$OQ0=7_I;CEDj}4I?C6VWdImr! zE-9e19MU&!v%=nZFey$KE6-m_Xp?BCh|6x~V0pn8#5rO)s>Za+$P3A5Hf;hg9dQBtvt#_DwLu@U5|idxL@e4n~`~4a8^h z%|!=EV@Kx*vg!j&{xvVMmv_!LLeNrPGyW)A0e74pG^8;|Rr;dlE<8^qkpn|y(*Hd` zQ3H&{MHu7hsix0#cI%>?xKpi7zpRc{`vw8$j|fogXMF;1mrH!fC9N&$v1cKMWru`J z_9nm^fwgQEb~Xf+^+n5k)}#l;s!bY^!Jf|027cHUuhjR@>qpuQpA3^P z351(H@a?geY4pOZj5M%kT<-GPqqXdbQ43tyn2YYw?`KK=f!8|P7M6_%v4C$D@zk^T zV~jS?WIUqq2AJa*yvZLK)W3X_-4lA_An!q(yily&W1r~S-Dfb30$}nd0%GQ@T%ymr zRZw~PH~jkuo^fK|Oizq&<_^3|PRsm5cwTlq#Dh3!Zxv)JW?{M#6NvxD@gNP3O_KD1 za=c-w4Gi>1UmY=RG7?uMvRQrBVAN*W1JXu6*90)$BT%et${)2(g?K~s03-!_Jtq@v za>oKyUL~t3AuEkN#UVR)9u>1iSBthyEXAPYuJ!>{-?H02R~&v-45NzS0qzWVk1&&XV&tHAQWZ9bG5Ju`3F{sjWCkC8{l^cJ+ih%J zMm1}UuglTV52k~s!L9X9a>fALcVFf_3?Bcq^8kPP&xUwfkS~&el3p1w0-bazxY~qp z;tfhr*|1~idjvt&Uzl7Vo5_K)#@PoYtbJl~Ew2fzI! ze@&G1RzfK36)`p$1C#Z`+Ca0LDt%8izMH8>F+9C+`G^-MsI%Dq^k*L5j{0nE{JqSh zdJeHbdE~m|+2LgBLbm;JHE+;DTS}KLo?QFdOr`K6`uQQ;%+svsin} ztv9juesTKu3)REl@XU)av_1H>1I#f9@{c{~d-LFFr7@*lC1%cRXCUs(O!Zhr2q z>@RQs^4ESH9hk@>v5#x<8wv*c?eBUQ&-6dD-F(~a%n28_GoN{KJI;lc*WCSi+i6#Y zX*+%X%yy2)>0Cgk7X&Un%^lq=z+S+I%Pf+f$vR-$^*S zedr?}%?7_6v0ogquS+ZP!$8tlMte-uAZNM<0)DLPlHbBg&Hp z;9x1Hg9jG#S101S@1I2J(%AbUEPmdaHw-*X{&4frmEYRww>cho@c!*j-t*4weeZn7 z_J{9!>-N5Pzis)Xg5CQIu{CDz&c6)GT68P;*|i~ef$s- z$X@2hG;pW6rg@P#I@h@{?+Kgz?{)-S!|k2+2s4BZZKrq~(O>(?4$ea(r({6@mf+o{t}!gF-Hc9Mg~EhR*Avzmbxh0P$DH(Pm{kxwD6?D{fo; zCm(XQfv&9O9v7A#MbN-&KKsKx#z;ta7t6)y1wbI0Dt&Naol660hh_H!+rw}vO2{Y=-M(P`^JU|?2IXG+Io3a5(cm0o_sOY? zZp~-vC{&}vc?-pbARG|H@HI9rVFp?jLui3Sz%)ZQeoE9YO0wZsc)VGX#aO9MInvVi zXf{m_Iqq$RmpGb-R?I(b_pFz<;%EDe--$$c$VLyLVzMrd*yYI-e?ZV*p3|)V#?MW* z?%IJx|Bas?G8GP971hO8$hl}@*#ZG_;YvclejPm!Y(kNJQ%x*njqH@B&ypMN-eXp| zY;G2f$8<0iY&4I2iCC;C)h4?-6~t2dNR8HwsLe@<$+3TIlfI~QShC2~q8*mqJBcVG zv`&gGpjhr#&PZ-cL>`1F*RKkzi&t|H?L|AI)L2)A*ElMe`Y6u4v_QUPN&7t>nxW5! z(AoJejJ5IBzV{_t+t@L=Ws*+pI&W40P42YO5*fR6OM}AsnCA!iU%VMDz?k^988_uk zq0$I{Z1XrKK}7$m%jX|)t`8LCCF_7moi^z%bL?}k?KA%<#1_7-zVrzL>SIW<*zDk> zO}hNWkecR zjhVCw0=#Z8w3vvn;>B4k_0wXWC{oUfVVi%^m(8`nUYi(lC7rn*M*~zyxcbquvGhe* zLl;iR1?&Nxjdoe1*D&_NYqvzKr2if-Y*EI#hzd{L-2#nnd;Y=W`I0s}hsu^MHi#e) zxA&*7wh>oPv6a5I@;3xf=qu;9<}vo#md;Ty63A+o{>?XJZJzk`UIKX3kVy=EoN|EH zg&njhg}M6=nu_fLW9U8&nn$}Y?dQL}0a{6|e&>}v(srYp{><+}*mvV!sK^N;Sh^@p zU)Qu);0a&7cm<|XGY-&&Eov|{8yMr)=48r~kYZGioa2-20AQc-vwb)P9CP|y6XMkE>s@cQVbd;~Z$j9hjqaAM zPJxj!Ru*c!vQt3qMbzxHPsb1G8UoG1ZBbjoq(PYy!aY4}y*^ybveG8j^dDs>YIqxI z;+CZB#pT@?Xp@S%hzC7c8)%nPUTQKd8YFQ2lNhFBCp~fxt|FHG^ZZKw`g4_NZd0E( zAylWFi^k8guB}ZQ=Hl_fFVC_f9V>KjIqwXQu%l;`0SVPMtny`9rUOOb*%%YOvvS#f zQj-#5x2;&pvd;r@DP+8D586Ey!%VZPd$saJrE%rDh- zqw7l*H}T55oPn=WLi#?s#uaFMei&b|N1JxF09`<$zeqLj^0`ol?B*=RmSpEdpf*){ z&f?xUh2wb4?#V0Tpe23&(kCyZE=>Hv~y9o~)I}*uWr3T@>9su_#BhvBp6$!NY=HOrjyzYz76Ki4oWXRl!NKNB1;= zc`u%(p_}&nV(+4}&i28Ux{rMK0>Ip3&FKwyqxUsgfQ`1Y&Xbxz(RbR3k2*M;aqxR3 z*qFEYPcj_iZeb0-eCQ+#uq<+4JhFZIQ;%)uxcmQY?|$oc8;hwYuD@}6gvaaL@x14B zSN99=dhzy$+-dz+zv-K||L0f!*>=gNlc3lG6YHyn4&(4CL(FnEZ8Y`_%tI_#I#K`5 zZ~t5Fe809w@VIdL1Ph0M^KX9BcH_0zDY0F@_Eq#JplYA}2JM9}xr@jC+_XJ)>hyN) z^|x$CRZgrv{?R|D4=(eVqvI^*bN9a|b@2ZRKSUdz&-N!CXZW_kE5GOs+s)6u(T?AE zsD5`*15r$sX}&lxf`)A#>2l{Cw{OpR(Ovv#?-PAn<2Vbdd}(6))qnMWZ*Tmv*UbTv zesr^6j8Cy(@z?R}m^@5BoPOd{+gH5tFGKfv^z<03rkoY2o3?-Q(?7+SvTdk+XFx0`OeW4q&y=WciMIH(ug^`h+~ z{2=n{U;TyKzxnOAZD0N6uV*ov#ct7LKoqFm??y`Rl!Jz&8 z)7u|^@FUw7z3P>H>x0$u=5Aq(75}gy?RYTPC|)^+-vrwj1;S1nVsnI(BjDabOX|6PE z%qN>${8og0evU@~8H~$5Zp*v*jWfE$GEWz1emW0@%kNb<|N1QqH91bsbHOCN^|4DM zGxr2Bx4v+3jc*wc15mNsM_Q4e#sc}qMwTp{nr`Atv?*{siK%vNA?5K?fWZWs!i7^7HT&2dJa)n~|RgVv8EdJsCect)f7RX-`imL*Nf5HWq1TZZNH zYFtFDH}=T(LPnGIZ3?z#A#i0}{Q4ZWx^};u&uScM$FgLBU>p8bf;FzizgtkawA%vz z%sk_tIZu)sd(|mBc_*DRZ7nJ@Urfx3{vQ6NTnVY-r`Qk;%@}0=qRS@>%-OQ@DZFB> z>+$S-#m?jNvQ1WTG7jDBvzhlYGP%*?u-T1`y2jCRHXDl(cJ`cpuspW!ew5RWBXxtN zD~>kDcN;tBE=`|28{@S|C(R**!PH)w60=}&Fjkiovrh1B7EcVtWu`bP%}4dynf~j! zwv9&Tp!lmFC{%nv+RIDUp?G+Qy4%_Z5BNCq=x^*^_@ixfYfu0qZ)Nf-;b>tQ19;0P zt$ov;xXU8vp_IupOnIA{)wj#v8Jqa6>fLv6ynD??XWxB1i>(R1niHYV>7DX{ zXOC7n_ZlqwTmS0_nw%pqfxmxvvhS#cshmPtcn}kD;Zj$7?F3kR<#)hYqG(^#zRS`$ zedFG_a4-_EVbm$T{-G-p2IOQ3MyP3i>^(9rYL)q z(f4G;PQU80S~IGHi&OfwQb!9ptsR^&AXpoG3q#WYDdY39{(zBo%6oM*opH^%>X zvvbuoz;Q8m1Py}rRmyV8XtS-!SUpl>qRBaEkCglA8xyWRI^f-XpS^R)%v)Ks)a5W? zgoa%+r`tBV9M>|2;5<*&xXf=)D5FnOV++`@DAD|t14Eo+rYtfbOJB?}iefUON386j zV0&|)ed56zxk8eCSrwH1ns2I7JJs0+v*U5($gjL)`cVCV1f!2%9%%ReRTI&(Z} z%@I&WH+a)#JNB-q6tm71Wo66MCDWW#9x1K_dBL$Iy|ianIuO(zgwuu%7CZ;fhR!+V z871W+#e?Ikq-bz2+{st7Nnqhbb`D|RKlX?(xpfF+*LhZBq2P^9?GnRv!s#=D5S;-e zN&F6aY6ExiDFit?@mvV>>$fHF*va9_(=y5(B4&X@L10)K$nlJ}?8$f+PR0m%6xi=j zlD$We*m3IfO+YosYND&iCfnSxSt^JUq`5;y4p;|An8TcK?B`%LiwSua%qSDo^g7a$ zfl83XQCIfTZdnfxDB?8mihzn~7@Gj-KSjdfNVZb0t2@YPg_vNAv)gW+zoO}cYK%3| zV90Omq-#^1JA2VGp|)7_-_jm6u{<%D=cNu0%Xh?L5_r;3Tai%RsElz=%G7;Tp9+R| zrkUL%#j?ATc(IhTjWYVjY+CA=Q8RI-iN9LHrrv}%2l6P(CNcEi0kq$l-3czbItdF2 zCUuHw3{Ch_342yNBWa3WLf?ZXyFut+yTpx;c>~w@AU!_bvPBGD=ydOitLxW#?=#pg zuz>33UDDl2Pkic678!jsxF=;}EemN#IT70Zn$;wwFb?=Zu&+~^H+tt}C4Y}(;RKpT zu($~S@O>ZM-tv3D+v2}w{>1F+ZI9>%aQXx3}H% zo!c8;`$gMR+%bO*i+K9!Zw|Bwl2s}{aE%GVMNYLI+1|n3;r^(u7fUX1*ZvJR-nc!? zV_g2(|MoApPkj92EEr#8Vf;9cPI2_GfzKrh>Q3f7W`?_ros6D$=kvBl9(#DZ^|t4P zcZF{%I4(|J|E%pTzx})0p?}CXB@B2;!~!z<-~Y!SWU=@t7Y0sjPoMit7ebzR?9uIi z{+XZWF)|PFgR0!kk5(5;54YHeWX#3Oeu!f=Ie zP^kM4-gS>wbJ4-)%rlpv-#eVI(5IN69o{+bv-*!;a}#}fZhP$)e{uO^|9Osa^fPHY?nGs>YbCmw+&j*psYP$21Jq~z@YjAKte{@C`aSG{Wc8{hC(0b99x zFmBXi8yYE^CqK?(m(CKupMCQ$Z9nm2KfZnNkKVJr@a~rr|0CN=Uv~HQ=l@~bzUHgG zq67- z(&;n%Smw}U1@U0b&)P$ai`#w+#)auGeB~>)d)|2u&$@pB3jJLSzS+S=3FQvEXx&@| zNi=*RMA>CITx_Ei^XTUlJN;La= z0%tsph2w&P;~V|Xz0MA}e z%<+#ns9*n)pE+1ic*H|bCq&D}^cE1w#H+gp$Crt>xhLLIld7>Ry9aiBUplJz2Ci;- z+>tbI%VcQwwLD$uG{+Z{b6ouc$J|MXa(MTXCFiR-F4LU+gl|GI{c0>!sQww76fDD3 zoQRik$Tvyx%NyIY54>NBOW%Y{yXDbtJ*XGT<8*-&pGkupKnoCC$c6OT97c+3(@*^y z+Z0o&dZ#a}DwKUYq%5YmjM@|3{-^51qYMe^HxZ@J`B;`CVxQ1HL#gthCmuwRt`Zi8MSreWX|4ELtBPF)BO6*FXmI=vn#>=(HE&=~bEX z$3jUpk=*B%g3?&T0s-AoPbUrPT!V@|bs219TRQ}%lwHvW$maSBknyx$p$!yr!mx|z zyBI4Pv{1r7>6LZBfn>X~@*iN1{K4l6Xy!)qB_uyrm0FfH+D)el%4(F5j#4WP;r`)c4^^yv$8bS=VS8f1HHzdr8CL+m2t$8{nU54{qv91=C73KBjd

      7uDdC2a&$V>k!2-`M&MNvF2`h_CbP*%MA~0rMNio76kABzvc|_bp(pEnKNhK7+7}F zVj$xx5^G-Zb97y)e}gbQ3sZZv%`uim?8+JT*{f=>JN|{4fay18sk0dQ=0+|f)3{## zWW9I*8kZo|A0Hw$WPTPlQE7*yWQJ$Pjb5}OKqGWIEzI!tSkjKL7G35W()-2Y_yDn= zjP-Cd@-m^2s5Mu{sGa&*$9cG=jxXS;Z28rE3r2m*d!J(^YilyRt<4Ck@k7Z+*P$Cv%nmD&{=v-DMkfWc=h>c(msF!ypnMF{HsyJD zM^##!DWb7pj*T5lh6ppcGos;7ywE!VTc0OHMj-H&Ys%1hWBH7Yn&8>zfX;Q)<2+45 zA8~SF{M1w6kBZ$kb-=po+11sr-C7g>@(Ruz7zufoB~5877WqZ|z4@U&R8^AdHnw>m zx3=3a`N&{)I_##x%ri+V!0RzX9}x)6xkWiyG(=0_FHvYzF()0)!G5NxJ7nW!-js*R zP?`A<51~nLZtL?9%&G`dt?^>N`>Y=s^~08)5rArLWiMFz1;-qV#giKh@s;DvwT)`( zlLn7IFN2clyZ}C*tUzkZCde2#S1JS^#X7p5_~pbhxb{39gU1ws{1;56)~QicR-Br^ zEQzT!QKu`>tkHpt?CO+E(9#8#imlTV9t`J-ZyM{7K6pZRQ=K6*U};WN42be%Se&cQ zE_{Q?qM)6A(BtwG#;_+D8r(sx4?!^Kb?pq69?KKFLUiD=8H47efuQW2C7U*t1hm&> z_*{Hw*B;YDi42h+`>fAbkD8*W$*jl9ipQG;5tryhW3a`QIx_6w9Uah3;%KxeZheO# zPWl;{H%rE*_`@?NTei}O4XSnoG#@mHEPQwy;IJC{^#&d?@N2#)4|h=3^hrdqj7b9u z;o_joP}hJ|t!-|+uY+ynq`?MYTp?~_sG%MI*f-FWL!TdxU6XT>+sE9PUp^AUJE!#- zW}NrLR@+9UU~>oYV0qGNoV3diPjdPvuy)iZ?pegVkw^QSW+C^%kG_BV<^SXV+P?hD zUeBX;F0eRwZ2SHeub1)iPnBJy)?_mMU4*nZ>J z|Ich?wUhO1?y~1j;Z6=_=3z1+Ml42MVUauESb#iw;=1kjJ6=#c&RyXd^L&%xhG*TB z%`JAX{PP*_M&iMT9_9ynPx5G?v;Ao5%{M=r1?Gph@BWT&an&82MwJ=4JLi37JymCW zH}9Izm*x#F3LL+2yZyFXwj(FGAi*O}4k3U1nrpTP9(XWz`^&r5%_T1^I@IeI^6L_v z&83CyBC$Ti*9Knqnpc5u4$$r*Nx5gV%#-zITs6oXVBdkosDpQecwXWH$Z>2rd4$Ka zAoR$?k8O9}eyb8Jwoc!42Ujg)SGiDK5fzmA>78cnWUk`9G3wZWEjja&I34nW3=6}? z`{P`|agKkI-&Wws0np4m<^U3Jtfp3(M=9L7rlf>G@aSr@a1pZ-v0-0Cw*C<_Y=DDL0?~I<0`{S=?9V>dF`vWxBbp<^&{AN z?~Lh%1qB*Y4kY@>)D+9Rq02FR@7QApKBE)O*NLrqumf>VO1;?AQ|!pQa1CzS$OVhu zAWwXq9EddeL{8$ztvA!J>WX{%tdkPjCf3B+vi%jFoZ7o`*|Lw$VgcWiFQejAkqoTX zd!x|&2F_gQVbA>HBZV$sI!|ordocWf*s)U(F4SDqZaYL9u0l1pH7;qiFL!eaPn=`3 z1KN}3dJJOL6Z7dua#!c_BI0$^+Wy8@p$$fS-27t((rqDOmPZ*hSTJOYGf}hjG}bSxy!^#bGR{ zy|~iHElTMn%FEeo)YiC0l{SJs?f}+5EyTe#aebR}JSvT8^~_f8t?5}m>|SNEgu>VZ zuS5qfpkYEOCRT#Q4jTG#HrmXs3=34xmE)cE%J68D{Tmg&7RY3_gQ7udp)tC3Y}JSEwvG-9 z+sIJ>qdbGB4-8CN#apG&^hMl>2PFoICTLF}%f}cCC^Simu}#j7Jq4h~u}S}zSGKZI z7tdw@TA;HpZKrOt%C)5i>k+`)=bLPvSldlA8ISPj8(Dp@WQ_HfYygVA@({*HaHy}L zEO)d)pcV+V_-C)6eWqXgd^_}{(WCVfA!F-tAzevOSD%`Ur9rMTJDNXRUVEH}*!z+? z$1Dv}AM-GH&M^8oS!}!fZb+%ZH_JHA%%A%zBys-9#cW;WdsEUU7_j^r){zY6GFC+U9G( z2RMrKK-yP}4NNMXcgSZ&9ASt*-mNYbj={|p|lb#}(ca2AS#xD1BzY{+WsI&KCo z?9~ItM3Fud+0R(h8PgwQin@#&g7CTC?B}l;;uid;9p+4I51NiZ+xvayZ$Fu=t|9K@ z7oVdJ)_<@=8MfBxIQQuBuo|Ksbh|Hi1{{9pzwt9QbJrj$e zqbVcRNKn*_eSMY}R9S#!8GHK#76Ns4el|1R@24bNp%DDNY0LO=M;GI_6DZxK><4b-(CngO^0POCR3zmY!a0yxX z>%W*_$ll2>;`5d9_DgOdlYta-q9cJ1zr;ZwWKdL!dm}mTYUN_ zthUV@Fvkc3qTHgR&+%Yg0W;HgUGaX`6lqWa)({yCUd~d>v2^yPlZ8V^DQ6oZ?nfyF z26uH08ASG_QiFGIn-c~JU}>Yh5iV`YRvqw}d@0)~xc13QeeBrzr+p@JX-X)^W)Sw6 z>-!izG_lq|nP8C|u%w8+osfCNMi{rq7@{B3nd$>4Xxc{k_=2z|Hy_&BGP%WbwS#Ob z#y0JC$2azkQf1LKyY$Rpt6A>ZFw``4QYy*l)ZC{%oAU!ZwHeNQfVNNCxSD-?n7T^3 z?9R66x~Ko>5|=jfZ3c~4_-r82J$hh>37zu#Cz%)Gxwp5qtfxJBqqA#}tTwGqsL4&) ziAfR)X@{V0D9B24O*xdq4Z(MDEIyOhzJf--X`6RgdmuiYG-WOQ} zKf&GV-d%p4*Kt<_)y2u5(GPp+Z&wG{-gE%#=xkkEKOBqfz4P}x3+CteRQ#uZ@b9_X z|EITa`s-iM9r-R~vY5Oqf6H(FR*zeKN_TbddM@H4kC(x2SXO@7%g{rdtfDe^Upt8K>-uZ2-7cMHLH6V|_1zUN zj+{AlO16Mp&=Rz{%r^SUenLg`#)=gS#MYfJ-H#XH$mq%xJ;bRV=Yn6x$&*sQDI&|Y zJd(#JCE2(8V<$X(`XN@Wj@wJb*cD+hkv7 z=YP)jp+9=>_TXcm-kx{svwO^udEvKBRG|+KJ@nxA+|PMFl`-uK{d&`l*D}A(*y@9} zaU!{FQ}zh^%bxww?j8C)PgHqm;@o)M^;kpkm;@bcm2py{PvV22?y;$U8D6ElE5ZeO8T%#yn1UTY$yExlo%1_!6odB3 zIt%c#YdmT846OWd{yofvn@bK_ZQ-SzvN>yHH5Cu+b0~+!{^j=FW)&upi{#qj!^}&J z;fut@lb+@#ksNCpsgLZeU=@^;K+NGakf_)s}KoW;r{yrAEw!PHc=(C-&nQwa`=`1r!75 zzZ4_8$2W4N9?pePYecf=`R+@Kr8(Ay~?6$)S7#2t$VOn_KcF(y0Vq5 zNd$gkR_qqMwhotalxQCW-o@ZmZqe?XV+P1i70fAHapA=INs$m1t~Iy8CD!FF4fx*q z8+>IN@{ap(#oq&L^rY2>obBoG4NLSZrAwHYY2zS`4udonI}Rq^cFyFLtb>(UlEYss zAuE>4vT)J)%r^CF$HaLw8{>QqWYMu*opSVHgOVRm<5PL0vA&o?a17u@G=1>G`eAZ2 zp+ppNqiqst%2ZLN#MotU^_jme=p!b(INCq4hq`ho(t4Xb&;;<18-MAw{J|b!db1Fu zl4A~gwF>JP8J$;YOt(J%ytzt~J+GLB8{?w&;K5@-O-}z^=1n&hwnZjCr|x@mNk$P* z+T%g_%zZ1LcK#H=gAVn%8M#76V}4U#Y#47pz?5-Vqn+h1jp|5RA}{+OP(9ZcDjav@ z2_nNFO=N1fsQv?zWHzH=d;bvYOZ19gyDfCk%!g%7DqUzvXE9U$z;PtlwDCZH4ZLYD z8w^>pADq--yLu=z?`hCgqYmcIS`C_dq0689*dvDZa!EWJ<}LdhUoqtzas?%xu;kTo z#zU&5w@rQeYQ+oI$tBLySG>A-AHPIk>{EqS5(J$N#&KZKsLy;uQPni_6=m3nj9v$9_K0Y5s*jcsoS~d5nZ~MfFYA z{gH1oj)!q#OYYd;h7v{>#)|HWO(0r8eQa{fPCT?L1<-3$q1tWUX&Rsan`2hk^vdJQ zu0|lY<=qv6;P^E+`dktXase4UOzt=(rW(~*oaH@$GIo*E(fN-d#>=r$S=qH}wC{G> zpsfBZr<(h$PJ5nEa~u7h13DUKZASX^LyoIMCGceD45<9vk6KxhAtTouW{0f!M*_sC z)F+Uf{|bwS#!Dkxx->RN*mXW56paQA24gE3Kt!{OxsV1~`0K(CljA-=&u=I3sR?=K z%xOmAaV-e-K#l%h=J(}Bf zB@5cDLy`9Kw2yzXWTc)?jMz(?cqod$<|OtjIgYva->4iQQLnLcTxo8`M89X|(;|Z@ z-{7^THk>nTQjJX|T7+{H}bX3!|7n0*)n zq!eE672~_#inp>MQEf)9cwr~waxiD;wAi21iPEQFl29d_I7+55A0pzu~36-B>d%n|W&=AxHY^LNYoaS;u9v#%7dl1JBf( zY<60SScmP7>$1t7!>Yi5IRLp2CXB%s&rpi*LBx)yO=sKOj}!V~@;GSXk*=8Aq8&^& zc391Jj)22cQG4($Q5)Et1YzVQ%?6@ZA?jd_Kv40?=HGM#I*5A7n;{F9 zcMELQS7~%HNuy)*FIyI4s*Mj)-a$|-q{-%+XD-;GDe^8?P4Tv~(3a>iZqPE{^M%3!H}2zCOf4=?C8P-tBMw?eE)u=cR&6Qw!i;_-?!az^DW!4<45>G)U(@*UiR|s7k~br@`I^w z+P>%u?q(r-9tENw#sby7{FcEH{Id6*q>SQWE-)Ntaot4OQ^PvxaX#4ad_cB1Z zyPrGhn}7|VV@{-ixmvI$An%%I#oyoTW!7~v=CLI1mEmZ1@%-uX(MR|AW4=D`+`PWP zw-~O!<=ON-JmkwEehc9K`#!P#@q6BpoP9AzHao?u6RM|AyVDtCSkRw=0sRV#pgwz^ z#r7*cYKFyZ_4<6p$#a%&$&pUJu-`e&Jn)Bl{eppaU|%dj9BV4}ZguQTr#|O-Z}q39 z7>fvee}G4?bXNgEIDFz7t~;D3UCx2Qg$ph$1mvV=-}6lk6eH~+N+56=FAGoH^r4A; z`j9PGN>Doj8`(*Z!}wXATiCIMAG|d_Y=;T_EE>VUU=>fW*cD>@HJ%S7S#W#lr-^FEr%vtQROM}5YdyWf0 z7P)eBte7%q&_2?zYoxyT#`_iHMIV$u)cetRcN8Q#0xU38asd=$cNb7bY2?NplQ ziJjlv(aWCupGNi52Ad~_GmqPb4&J+{sUJ=PGV$^QNso_W9xx`3BqwA{OKUr^ZCE?Y zV#mYVc)j?+zxqfb(ByTHz>RnqMx^-?=Q^Q6CXM!)cEkBJ-`;T|@%eqHa4RhrpmpGz57qAL%@EL zVdl#zm)x|cJ_O%VP9sRWUa+-JErHmbt5t-Y`)5cCT{l3S;UYc`MV(_ZXM+$b=4l)PFD@DYJRXKI+M%pf~XcmWFUwXD{ zFqXq3Lsf;t4esRao_%AyRIRCpcC{m7|1!o_$`qFR)-WMe-)RV&2;pkG{<#yGf!hau z_!`fPd&G8OnE`DO%0NFuQdhn<{%Ej`zmVBkT1G8>VAwj!H60g;F@E$pMhMBWNmE`> zODo2O&nEl4b~)tSW6nMwp)2N_dAh=1&aW6)Hg?@9TVecJy_)Po1%*;-W;}P{E7MdG zAzvE6#>!k`*ZCOqJ#^y@dMJz(wo#_%eVfq8RDgw+%MGvsmZ8*XUvX?q+FZZR_}quv z=or7s6?n#d^sanY@5D)1l{<^NSBJ+h$COOgX~q=!Tr}E0$jZI5Sd0%GN_Wdald2H1E2Qo{ocH^hby!7Ul5d_D-SP@Q*dn+o1E+JMbDD8e zFV($Y3YiV)(}sP4@nFnq$-=XL{9HK;Dub^MSlAf_fv2AR=9bXI5Y6^!Q$`AM>Q6Z} z`>z;SPe;#xMI{ z%HS6(=vNo8;MFylLx8t9gumccAE;BLnU6AJe3MssfLeHSPRFnG$EHn2Q(Lsee8UfN zwsj6$APh|$dDPAOE+6)crO5;A?3m7;5h#4ar zvtxYeuHO|$b20pQ^aR$rJ4>x4-+3C;LN3=7pbxyx*<`dW?BzLjjb1s!S7!y@N{C<} zQ|EJu`lCbB|Afp3!%yt?M|3(j`FSUYwZlN$rWK08s~6g$=E!o4OEZV@xlO!e7VUt6 zIs{wi+@z9-;Ek$brM%C{eyl2d@fwre29+ul0c&=yoYLYU;G}lOnW2=L566ev$Ecus z%Ou|1J72<||01fN${yy9hm) z6q6-+_v35y;IT)#Sk!}G+?W0Qz5GrdQOBR-y739KXempNZ_6lX4$;)^N#yv!SFMy( zAY#dj;ita$N08PJ45VxfA(%tHn{Z@Pf1PL0V)MvaFuo$vf*omBOg4kCE3u9qb2$I7 zKay_+2BHTpHv3RPz1Y|6CeN2XDApYlW9uA?M;UF2`{pJN&=#}jYWt*xblP^NRTNi# z_u>^#>{M$`;7rKH9^Ty;K%n}z}N4vt=kx7>6>In`2T8yxY$8a2_&9NrjoY-Jmd}DYD zQD>*PP4Wt}luv8#zU>{|ab3zxQ;uo4bikq&AUa=#ct=U-(lz`Me24$!tg21RlfV83!&&{tBlN1w>+7Tv~C zSxbg!aI4o`X!3$2p8W@9I#xLcnUkGG2f6&&XRI=>`0sfXi0ZRR+w}=Xgyd-mX$L@F zznc?WEg#?2E~6}N4N4d6YD@3{t4U1z6p>k74rcf0EIFxad?r(L?_$HaHZiz5IzZtc zI3TbOzPZzG>`8m(sb{c!-}7lVTI}7A36e_jF(W1p8sJ}kqsPA5Cn`UrrxzK0@J@5@ zkU#U(pTft%)Uy)qD!=c(`?r_A=yR}uyPx5kyOmWAZhn}N#s_c*5%@dd`gqs7w`Tvy-~Hb0&A;@E+n@dEN4C2^ z|85@n^YnJ}4L59$-tg@0YrpF2x5pm-v+X30V!3dUrCb()%b$ViAm0bdZX$75?A-7d0V?_#UZ&o@X{SX4H4;`qp*6D)kY zsj_V6PN=W`o{0@QZ=B~mbYu;Vp0)-2*$5`Y)!*2i_Lccy= zIDeKOP(8k#dE(RC4aCNi)eG3v?+MU3jsuL&1}(jW&5qT%3)?=Fhd=b#pLUbq z+I$#{3Lp7SpZVN+porNlnB(wvo^LmJ$JX7$2|xdcX#kQpZaJZ^^+2NBXxKb)WA^1WrR@m#7Kb52#b1~2?|{??WW=fbrHPQ z>2cN{RF>xhANT-^PW+Izabp~wKmGLfd7pQ8DBj(-e@jDN0kT(}f|Ee z_rW110?C)aw9mOp4e|Q{&+*m&5>+5RL=)B~z~+MjEyZYJKJ-Rt#q7nPFxhKD22LrS zJ%>CJ?C}v(tGYW;{ruHZJI?8(E$q@9Fy(P2`$uZzCK8krm_F^iB6H|hT?W<1GdB3=x!W3Y*|6uyfQz$B5eF36kAA=___<+xvYs|*sNMTdEUhROmJQaN zZ0RyZ#;e5Lu1rIRG~<`9g@?Sh8q_%_0v(@bLlD4`u}JwK-r$8lTAK3_$};eUwAP1P zE5ztx_ z93qOu9iKI3^h{0*LW|J$kFk_{**-G1IFE2L#D3;eag_r%3FQHy&F!imRP4tCnpUgF zW^vhgtFQO=X*zfxH1frGz-(+956U&^(I%FdzQl|ZNgK09$wgGDc|v?FN*N<2<^wYQ zBB@v=iigCqIcpq9TAip5WAZ&A8bMY)AVVHa@zdftw=-k5us7C@A4SGf3RIR{buhM!JKIP$U{Lj2(=67Lb9Hb0g zozn@_!Esz_Lq1y2D>jOrr%jCtHeWsOqZJ{!WmFqyy>*F>s&3#$zd9U0&3`Kd6CUEI z0>`KgDbo*&f{cb(Xc@AYl;AHnWzipSwJ(cTeCyVnYc1XCiwV1?1gM5Kn21nCP9PzCNpNEj9 zT{92jkZ$-SE!p7{0soNqkl2l5V#%gmV5AwDZZM0Wj}XoE>d>-7PBRPA7*zOes0+bT zTMQU|na@4q`-#YIYMiG#1TbcAjQHf0K80=W*oKV#HjlM-%ntl?CKl1KkUBJ3S!pwj zC8LchA5I~f>sQY0{F1BWJ*HuBycSjTJumbP%U+ju9StlY`&tYFx` z9aE)`&ng@{q^ZXZS<0T9&aq2c%A$FE)_%w0%0PfSn`Z!hkcv}|6Ldp%;s>!R!B^Cs+W~lh0)%76BX#CwHhfHhPq4$ zaRu@G!+j9u0L0=XnHa^El@0ZMO;R6NmoR7+0he+3GGG??4Lprm2w!^Ork-EQ&}K78 za#nWlHZ24Kem`=Fr9m^Gu5wMg2z0$h%esOy2}MGtP|A`6^Dwi5cNJ?yCy^PGbb;}! zHDe$25=mgT?AMTGxsb)d2v0mF(#r$bmO1b#Hc9E#mCRBsf(Jjn*!fv#f+9^-cK&?0 zfsSEDw*yip!6#U@h@l+1JU~+uSF)RYi#j|iv|TXytn->?-ZK&!|I;>nHq3-eyW};9 z9sUjOm??Wg0A2X;Z?q2@jXGz5kn2E9RS!(ePEf_hhKT_&qMq~6^HV+b#UL)mFnCMW zgYNEzvfAU8CCK{c)*f21twmpU+!_|Aje^W%r?jz9ZVn9fTKLAZcHS?th<=QN@ylQK z((O;)^)^hs%%f#^90@kO?~gvbz41$5M^OR$i~UkwSvzT~8Nj}vfCm4)L)REK`FWT9 z;cK>YJZJqYzWOf(@f3HkU&}(Pk7YT^BC3naTE)7uzwf#I{%`-*cIO>;ZcjY^_;%eb zH?rV;X?xKNU$TAZ1Mk_s<9mO2`zJs34_eSQ2j`J5#HFMrw+dFuLF6(JcdB3D1nwBm z`9IHs{u7^i41d37`=0;uThZx8q{x+7D4mvrckNmW+6QgVD2&xMjD8=T!{Bsv|XKazNb}pN` zIm0Fn6YK80Ab6hM`s1xfxm&u$S1t^6S2!^^?r$AntNm^cm%E4`_k*?089r*r+`ImU>&itx5+Czu!Nk}+iNVxRJ3bXF8q818 zeaSv|!{=40dOdq`_Gy75(q5oQQ?a4QCL2)M=KSlo84gV zt71+D=SV!U8y!X<>)7pau*r5|XEP>L@F|K5S~y&cl*>Cg;gQWLX+cIf-Wb7oJ+5~Ce;s*+N^Ob`#^u*cM} zcHXx-=b)cdKqn2m$`|nf9U!zVd?R z{DJ3CpIicAK88zmNh%Ay4yXY&3fRV;|3-~<$j!;-C-beF{j!+XUJ-=gu8W`>1Izn) zv2%x(%==iOZ_T;-tF)?pqgEs-CTEix!0>pLQSv-PzOfFo*&mRD3v)aE<@G`xCA5nd zF#a){uko#shT!U^t+Z)B#aYDR{4rx7&>jc-@CuIhQ_n_9OV8L6T7dRPFuJ6?aJ<=% zRbt(9(unN1^aaUPl*0DN$>wC7es`2od;LvCm{?`a_-hf7HrXgNn;LWLzOmJ{?DzV_MT&DNI@Bp^W!pV3s~Sza zM>hmbbZ6VbFUF1;w}q2Hb07`==OcQmz_;-0WGZ11j7dGP#9^DAy}Izl*=g*9r72$W zy7M#RZ{P2>Lfqpr4mf|K8K=~D^?cZy@fJM3bu`pRc&8h*W8&5HhrQ_+W0D4Gcp{GS z=5dPwNR0)&N}^T1YJ;G|XH0U{w_#_uJDp^>E`sjy^$fi1f;{MT73=ZqMlfD5lH4%F@N<&*M|ah;jgQK#RXx0F{g_V>wmz@jo(|utJNjX>8J&&045d=;EQv_*)dF0&Q5u%WAT9*m3OVdlP0n4qqH6513+}pWb7_$ zn^*$o2D0D_N}C97lWWu=I3qZiV(~5E!LgsGJ0NI8xw9~26^u=F#j>0gcUlbI_`fs* zu?xww_y16h*Od5KM%R<$RldAqFTcpH%kBNQheIn+r*hvkr*iz+K}p);v0Y#LHiZ1f z+Vi8NM~}6MmA1+<<9qB70Xja9Tl4`jSFiGwHe)^=sv_FidHhw*m!HvP z37h@?8QmKT)#w)H@(+;O2T2~WAbO5~z)n?4eS5wHzjDbJXdO=URM5QjDi>b*f1itAy-A6@Y9zwv=S~p+T5{P2F^nqyT-UJBlUvVE}Skd zKpY)oL*FhjuW4)?4SaclN`Spuu@WjDadIXc_JGa73qJmP*=i53tqxt}0z`WsW(uUd zR~P>kG2#1AVa0&5IjLEm6r!PKLG9g<=}u9a_73iZ5`!BQ@q1dpOWQP@M79I;aW_{s zeXL&e)v3BD5DBlcna!JJNo{u8s%n@1fia0L>kvIS4w|S3!V637xSnt@-xw8)OWqTW+}}WbdT)@j4sNA^+od zy$fbz0T>Hz?)H$3l~Z>h>aUL~xn$?UchN;>?$URHYvRHG^E}7qCVLQb)4W4@XJPY=`&YatxI?e0+MIJ$PfjhL%^G$?v+Y?Vcy`4JsG;Q4V|1`9- z^E%Cs>z?JHe2K-$ve-EAD5B@T;Lh#rsZVbwj-BM3=JIy^O*d}ue%C$q|9KYSpXS2G z`AhsZz*+FncN!h1*q=Imc0057XV0Sl^t?WE`t;a_J*S?+Chiiyc;1+C7e1q+Z!zGP z{cV3aFpsf_$`1kX+W<$m<0dw7yPt1kmWD5 zy2&z0c9y>tF@4R4ZsOdJRXcBxcbB;+ajup87Jg`Z@e4nf-(fhnU3s$;&Dh1J#atr z6O&6|`(w<`VM_KP*?lnpz!12$-{e8R5c+%G{qFg#2KwQ`IWEc_<55KU=BSf03<&0@i%Wi!#$$xBwi7IOY-Hyo zp#7$!y3Hj|6drrzAuhPw+Tr~S-?q`WFMP$zih*HtD$xsnG*D5Y?YB80wJa{`jLqWJ zZok>1o0q*>VZ6;t2F@Z4EtMiYaKMBrmi{uB5weU5xErym^0U~htHW*le*IAC%We_W>wB zeEClii?7Ovs4%>a@v$s22;w?Ym}h0N&U-z#V|TEPGk;V)cg4?1f3{)wU@6bvvX5fz zLvy}!%fpEQW43XKeat#hcNssZ85nITmS75J-_5*ag)*{T*k)g^#58KGJBI2fu;7Fs zKf90za}sIv%i|+)bYDh4b|_|uOQ(*6)YT2Gb3p0*IT5*UbY}ZLPLZu|p&2WIkm&=x zz+$^wi@5VaZ0v6F2bvlVHdU!59a4;tEy#dvZ^&Iwqwi?TcN-@QW<}C371ZDz>UD`O}T9~~w*#Eo!YzIgzyI+VI+sj@U#xHR_ zUa{vD#y(&Z-rH3O2--YXvA^0V7z^VjT@EDbOR<_eXpy20k6V7gog1nwD5ey4*>M=U zyeQ@~?gN14@f1G!0V^yPA@{y$)+vT3PacCEzjiD?65~z!9*a(}ZDWjJE;5anSVv5G zu*KEyD$^exU$uQ1luV4_8z(K3#}_!(#VO0g6kw=3WAkIi!DxKYH`c0WwFW=SfIzV@<4kecz)%m%sv_W(5CDN%x<(<)^-F@g_MT<|75)h_-9vH z=Xq*hld7b$R%NNI1d>3Y0|*H_Hlm`^({|(5O7q~>JTRyz*xfj7OEXGiqjo#kDq}m0 zIIZaD;KoCf(4g1^B!NIMiCI_@vR9>&+N(03&-Z)ozv9#P|Nq^4&U@bF`@ZKr=icAF z_jfP&dWWhw+Ei^~q}|7R#&BTH7(!=h{vkANE&Il{L8c>3Gxa*mg=a97j`rlv;=4^S z>QcTCQVwouv4v&|870OUTE~Jq;NhcCF;H>;1krgSjoF%8$i`ON zX9R=aicgU~Z*iJB2 z49%FRM`7E|ss$4@A@Se%Cur34Q6h4Z;;{;3jsYquvVw7$$F-7Up5%)>_ANAJDpFgl zjYZ~n2dH@)bJd?R_29QfKb4Oj%4v)0;)i66Qi<)xB7EeBzQmrLKbL;bS1E){65^o} zTg4Ml@)j} zxKYZ1EEpnZ;N>93x@zd-`yAAs@Ke29;X`5dU{})Qo3&ztSr?S_FL)tzViKZ0!2td& zi7_SWs*@UCG%T@{)dTa|L#v?*ZwIwlI>k@p>W9ajwrzgmpvtX9*0QzckmdNPkIP>K z&h{BKFz)w4?3``VAoP6$xgrSTvsA<;3)W0tDmy8ob_0EY#7V{vIRMeeVY1@y! z%A*~)_~Pp6ao5JjJ>knW7y>ZKy@#&jxija4oduMbeHSs&fmW5)YB0ef< zLT_f$GHKHw|D|C1+YSD+w=f}(yXt1M}3SlC@(W(tT4yR+skBmnjxgYGj44Zy9 z#5djK&w7EuM2t9}pW$@O6E}>J=Uw}3^dF?@DEWL~Y}&eI{Mlc81S}x+kw7TQ&X1Ux z_F{4f#v=-O-oIBoxSFw+7<$p>t9RbcMYz-GEADUy=#e9P$5qdG20Z*a!9aOd3|SAP zeV0QHsL+@b-r~~G5gPIPxK}!aZ{S(HXp*`W*it4g&Ul%_(Z9QlI(Kwr>v7?gr{OQ`ATmUdNxhe@^ z!jL3yx=J$;qSqEx@=??|v)nTEBT4*84fBV3+=AKA+Ma#0Se#%&!?sW;=L5Ojq9)p? zn-l7ahSVv+6kUQztIEh9l!aSN{AYYBsZ#3wf=yZb%3@%}KP{Rkj>kAzotaOS#}CWm zYCKWlf&%@MESee?ySGIwHf3u+6q@+NtN#j%r#?r~jE{6J$|qO7)sgmm`a^{@F7Z#6yw&S@gSt z>b|56G@9R00uTow|EQ*!RkrA{tRy+)Cw)x4Bhy?;V`3fC>8lWfLjHU=WB;l@IX;cF zHfrA()e3&;+pLMR`zdXs2>Fhm;)upLX&dT{cWqXTLSUtZR%C3H#@__j?ZnrMFL2@)9K?oo3=jcwD^N9OBe2td z@aA!)_AmM~-voa#)>Kb$tIK_P%&|(@inzq5YODDJXdRINZyUw1%*kz^eWDJ8BO5tN zY|Z1~45lbSk-BI%7W&FI%qrwRI;2GpE6Y$5d;Oj~v>tx?BHbwN7IMm%^l zNh#;T7OW@|ZCso?9#6I>eWd%zya>KUCJ4}~Vq*|Hayk!UL73ERYaz%vR+s1^dTc~~ z0RV2;b1or5B2|lY$1mlDWIq7dF_!PI)UzKcd-%-h%zem9)}mW6Yu1``TgFSAulmHt zW(xY!xlH?h8?`=V3=n1KQ5XB);u8Iw9Ho|dRXQJ}@!42JNn_lG+Ol0fnv-A#C}oIK zrj69oM{1%hPm){t#Zzt5z$bH2(jfn`$l1YE3yG^JoTvSkF~zmTM8MZv)kY)90uTvhDjfZl zBry)Kfp00!tvu3tq2E}Q#qp0 zG2Jf{O|gv=5r?KfuCP2~OCCbX_W)w!Xp4pPF(qQ*Hy#79_!rgcLW_R^L|xU3-j=P~ zt_``vK!_=0E7AgrLd}Xvc3K2A`&2P=(;Yn=W?SbQF`BcsYa;r8sGz)(ced+< zK+xT)^4LogH1sITSjU)G!yN=#pa*ImrfKxV_d`6)wOfnbp^_!R8ZjR&K=y zfDEvb0!{~;xy6#58^vIgWH}uL$zbUb|0{QTlIS^+Vbc_fjC?L)N;l2QLbm~yOpdec z)g)sPAzh$cozi5+?wk;$cfxb3qh{|AOX=Pr(>sb91M$b~?4;$yot=^i2C3+UsXJhF zMW5}lB+!&aB@R29u1v=oKS}aD`3sJ++E90vV22sqo+Q(!w3rLDyY+|%YvPHNdvM5uzc=$av z!Q(FiysEpNyStBhGLsX%AN$00pjImyJgrxM%#-zy7z#0SBY& z-HU4vh8#&y^IRmP`}aM8Xw*PSF= z=L_PJJNsz0JufdMxsHI%Ur9X9-T&s1F<%9CFDNu$8*2|rzU|w;g)@@e<$v@5P3yP- zz&inWVeE(h+x2Ml1bpwd^b373h(ib5I)4$M`eQp8#fjtN#Km7qI3gVf8I$HPAuyhv z%XG1;(n~nD3P*hG&jIcj-*U?7<9Gk-2Vv+*@0Am#C@{Zr!bZu=NuDGJL&krz?|tum z9~U7uB?iv0`ySadF1h3~&=4qQH>KwwhBca)e#H&q{xJ?lV*v~I7sFNc*&pCfQaL--iuCLzXP6(Smh9|pV ztQU(A@}(8JC&U55UHkMS@NfM5ZTt#l-`Kom8*|sOagblic-H>KFL?pFh$J1PclM=K z=hb$x`&Irtz_wjHc8&ek3zO>7zU@SS{)! z!K2^A;A8jlO9YJPzzcpniI2Gh10I28Uy!XB&GazEM<~Qf0-VOj+>OuXwbIRnR8Z~# zpt+!(IIX|XTo#(7oS;gqrK(r1;wyXmq5VPGG2qyc5x$ukQC(}cCyQu5VNZ0?8#(Ff zZF}v}e<8Q#fxEvfk)(ggEs;~6h-jf4q4vGJ2E1GGv1DGEI*k|nW`kXn_^F&Fu~0;Z z;Ba4=?V>+*#ueL0xSGy4TK2WNU0B0sA4OZ}aA7q2Fk}}_PYODm8L z6M_-3FFO0hSXPk<9z^g{70E{mjgGQivj0Iq|AT~0vWQ6F;xjFC*azGHU-nSwN$!}LZI>5u5U9N;yttY(iIsCiuXSybg}Vy!NzD+oDf9 z?qj6&SkiXm_xJ64tS}WU-lBs>{jg8!RUvl$FI!L z#Kn0!u`xv2x7{49ThUiV4oOe^#r%JprA7Pt(pHB zKk(TcU(pc``pXDiyfAS7xmMR9pe_Jd(6TsH7IFF&4-Y z(Nh_;*gOG*6Wun3WE0iSQ54K)afT7P8DmAo$vFg+wLOB>4~1$B$De%Hkwt7O40~!E zuUn4-+W+T8e^z3MjoL!ClW%2`1mR4*$8RfYs~tQUqnOG}W?g;LXr@5QRVz+MyC27i z9@X^|`%`Gdpe+dlW#dvmbKcQb>k4P7&#mhVbujq1#7nR%>{ig}+E2%}r7p%I;~qWH znY>YY%0P^E=lhAJjGaT%m&kgI8r`sU?4iRzs22@$_t1L4K_w6J&Kp7K1F|`{Cwk;! zM^NF1w*_#(4{zqA=!Zh3eGDJ`%S)UqY@77j>9Mo+pZ4&H31LJ36{&T$VV< z9vosXB1H=mITrIuv?_1OK4#ILWXmqGEr-6$HiBS(kkowG+8>r=3SDYtqQ@B8BsIL^ zUOr0Jp7CE6&)vA>m=9t7SmuuA$K=Eh|1wUK53%T1_r%9qF8X1wIfNE{Mt$Z+MU{7% zI7Mn&^t*7e%MnX)GTd=Bc^CO7fe#Ml;hTMwxnZ&x-$a90RJ*z*&6rVHFvVw^#4nd| zvo%;f(?moa2FZPu0MMyCDrL6Q-1@JT(A>%aFWb%rif96wcBr~`o1OHO%N5^Rq`^c; zq~S8K2zo%$977Ixlr>x97IckMOAdzYxaz8U+riK)kdBH(BPP7)Ni*{4NGow7g;_S4 z!J$Be*d*9d5M0y2cqlbS!;c>9&CVwwwM^!*GiV+NfJoTF^TB*wMKvfhtn^+zcvi<&I)3r7emr>J*SNrP(s=q)FAo0vssMg-Lp}PE6XsM--F_-LcVry! z1<~XntMT}wk0w@Y@UM^m@uCoY0>7{lQMR)?W^)FS(eH%y`hfD^D&BB+tQZ-X*s%_{Sgm3oxuF&*?Mp z?B8?W_@3|n&fw3G2ciKDwyd;E=((6-%>2cKW8N2NAK_wvzl`a@ATyi%GV?JnTNa)? zZe6*UW0KuBB@&5?$Rig$VM|&|%N@efO&|VDKC79R(JxI+Em^27hehaCV+u}UlpZj6 z&?KuenhOkKq-F!U7d>IN|1GFX`TDyc2oZW!MnL5(_KN}$nzA`MK?AyAH6ODWvwYN3 z3q9_b`rOFRCLd{&Sdd*@5M6$~hM;4#_OKHF4L%f-SU=;tp6C!{JuVJ#MPV%`aqPYHfBo!YIu6cxt zK;~*T%(J?C!WeB3YC-u$Z;oc5SJtg|TyoMZLeP{=f2l{^Vw`ba_~G#wEp1uHWbrFA zyHRBhh1k%pHrPKZnP}-8Jbn*}b2Nt~ymDEW$LN!X#87IpES?YmRPxEme_PS1x_*?^ zR;+XP>=>0`r|!07QGp?S1##l>M1GE)Vi6=$hf)?* zkQ1lDLRFf2+(%jplXMHQ0BpFtIm3KXKxZr1ZFF@GnP@9J*-ji|LssvCxwY7g-zaUq zmMcImcnC$ z3!BhkCZ+qsGXF_%^iYFfTC+n}$;PAz3bY-RtdUO3n(c%p4NCNXCs zr-+~UC1&(#Uq{6wU3(V%C?^fOYRGvb=nKB=A0jdN;OYKFarhTk(e2T@OEfuPYZzV8 zoO)qY*AmZFoKOvv*=vC|4GUe(>Qu8TS@+M}r({cpkDy`bK2jUSlQ~TcnaK6Ny4;%2 z{`Gr=`%mR)j~?Vxj0Fv+y+qgKS@t#dl}Kf98;xmCzd*|TCEf;Gm#|apuH&IL1Fb>r z@tI|LUFAPzt%Rl(6hlIpL-`m#w403Fdw+S{jDjZ!_)Lkw$Q$~;RlO}K3 z?PEVv_tathmwiibgrWh33C)C6t*q@MX`Xa89>gf~U*bRYX1+^vZY-3V{z)N4s}eKb z?8WGWrk%J5>6jR7Vy^HevXmXKey>k_)B%GHB$Tp=F>U%IE^|MoCaV@qtHj2JIH?L` z?YbC|nI-)si#{tfZNV7xlN=|eo$hb6>zpS4RONm_TS8?O(>BF^=Vookm58ixM1^Yf zuM69yA2osP#)C?naDHR4DsFlBh(Et%gePRxNTyOY31UbfIBIDO%|ZEOs%G$4A*!1> z+6ar=%zgBcb}E^+h*&px8iX%#H1HAe9(|C+)7{WP?(U?#yy!OrejTa5Ro6tTHkq?EiLA6g8i9P-GGKZK*NI@ss}DNLMocN$SrW8GA^*rhiXG`T zQ_);%lV7T_lIoz*7irNaId$8xl=hO;q5TD05`PLsU3AoM6Uuyfa;gLys`NO6l`U++ zr*8(llRh+!xHqvOJs#FDr$1ES0^e~@^2~Y$4NdhIEV7AFnj1mTSE9t5X^#lttNoVV zfY-a`tA#cN`6U0dhoi}*1T>k5Mls6Uujn=g#$QXhf~?9c(Cw7ilt-&=OkYy#3D3q~ z%=JfY5sMGe@g%t*j)UsvUuNwSpG>;S((&S5gMUYO{=7Ut@cpkH2e>1eQ=PPPa(Mmb z@teQ#8?b*+;mbbl~6RU^E89TP~_?yGrAiXUX->0z3_e{iRQh-VH z2q%rDALT03QSKb~MDGzF55+}^@OvjXCf4(~pS9%24L5#a{KC)wyK&l?=ko4_Bhc22 zeZ0?Lko(VnA-{-ma-1j5h2}$+)a7-hAAQ6B%8B|rBjcl;cI`T6eBk~6W!!Z0?ZgR; zJgO#->QRs-b0B@}`!0?cS8#iW`xkG$bA0ThALa$u7vxbx?k^s==gZ?Cf9GrB_d(tV zVBGr>XA{#P01aQA8_(W(+IWJCUmEc7IGeX@9k+b(i*pS4SSrGd4@c;K$ESC2*dP8c z8%misbDJbHJq;c-YCAhq zRPj>lReb1bel0^@fO|dqwrpHAHkx-xYg8Z9;_TZ>O2A&`G(Df~l#O0NFv^nUm!6nV&%CQ1)rre(Di&BMTg`r$LOAkh3$cJt zn^7tkG&e1!52nWIwLRL(Be7WNFc-%Jjz-hsJN53zV!Y+pSm@f1aPrD>?nKd2l+*5` zs|+CjF=(orgVsrs90$-SImU4!S&|@k|DFR(+tV`rKt312v~TR3$WT(f5czjso7}DO z*pne~L#%Dav3Y6TF(tc{q+H?~uo{~2rpU6KxJ``2VY?fal&EALoBPNp7NmH?IrR!R zcG5Hzv@gsRRRfWQRm73Yzu1kJb1?j2M6-qdr+*eriHB-Do{~SBEsHZMp-}MB02@Op zE`7+HPr1B~9SmgP+jHom!M+T?Hk5Izj9RHAPLedi;${}*h-~WGl))8*+AODf3QpC~ z7Mn6Y#1|zVxJwIj3HAs8jUv=wA$UOWQOp4p3y&v< z>uCMA>+C}NJ?bgv7=T!3(uAm`e$lhcqQZ=WCB~8;ig^Dw%`6It9>7%rjXL2S6Vla2r?!P{j)tMMgK+lM8^NDsk??nD$2_MtP z*iEj%pOlA>Vld>pq|Ug+FKlTpF%f#>Sr+)x%!;BI%$KE2Ez3v7j6Z0(Napd1!ojXy zWaDHMMh;fZ+KbWD6LV@*Z~2yeiTh|zs#O4tl;e9GRGub)Ra0fv;`fValw`X(m*&zl zp93O1V9YR3Nt}!aD}7VHZK@qxlYillH7yznTUu_FMr>%?mdMxZ=**bW17-Zcmp%gz zm1L8yOP9^XeSrSR4>8}3ZKY3HPLd2*w}{7Wl}c9+voTu2N4QJWaNc?E$CbnQ^)-=3LjX3n%Pav^d0Bi5BD zK+AEC6Knt3s)b6xl$e`BV;3xv#5*yr*qtIvH}!l~)u=AtozxM%`rC5GaH%Sue$+;J z0|^!SeWHDa7LjR~Ia_`|&Dj`o72ElKN~3w9h`O4CVrkr>)3}=x$aU_XZB-#)w5o6MEjtQups492 zE~+uDNWxX*O0%YN1n;DU~} z2J(as^e>_-wkm1Ra88g>jp8H}lmM6NKd9uAW{{F7=v)%r1X}o|b?T^GzC0?clQ1=o z)Z-B}mRyz6kdC>{8557*V}2%#Cp^KC2q~k*`kxcWiY1VX)buNM#ooHD!K)szMo;x+ z0;C=hdM4=NJFE)Ppw*0>IJ2aYbmWv#Es{COfqwo|4_YeWOoCI!mXk(LJjv&xH0xwW zC-6|^ow|&d6UqdbZFU-Bmq`Z}+zPWqs{qBAIxG2T$<7l0INvC-K4_1R37C^t;j~q| ze87-Cq@F&DUcO4e?;}Ap;v_E|MWT1fHS6l2p*ykJ?uNxawqL@g9y5w}FH|)Kzx*q| z$PWh|9s3`9bgbsN`dfK{>*mvUjF-Lio5x;WsJqsajhrABjL(?&x%u${f4m#nNBnHr z=;>5`QSj1NjvGJyv2o1+AUM(h06+jqL_t*ZzF}PTycdi=`|y9`Bsp&_U}xah*u&`Y z1-04BErS<4A)Ph8`-C$2qV zeVE4``LbGf#+;kxj{T$KyT9u@$796cn_vE-vFrTH#;^azZ-Etid>Az8w>-NY`(C@! zuKnPh>O5G+&L$=Y$A!f1{lEFE_q{L@JN{U$tK>{un9by!MTZFRcz#0{Jz6M z`o@iG_@xCGO8C{p8h8SRx{u<^OJ4lV$Zq0S2%E+le0lJ}hok>pzwmRIVHR=BW5<1lb;psI zmR|t;gR7r~{>My_ap1AX$64p>95;UUQ(Oc&oH=OEqkD4#Jn2X-cp)gU#=hesU6gnl zTk6`P=%Q`IY!>x^T>+|MA|S>@9SUUXg*RWOP)evuq(Ac|FnaNU`Ct{lkjS))taFAc z`tor15njyULGBg}d9vX{Vh+3|5VY9=LDpyx^(h)RVT*>?~L_vadtgVaAZg z`4JQEcGy2&`pSPaHk@?I*t%uM_~uuC&v?WaShM(}4#%e_(h?Cci(^@gi@Ke$Tzb3! zIQ_tX!MRQll#R~_MGsp76Mb13Q)$kJ68toN(v~kumX(jx-il8WM z%6=nuq46?3`EzioE&MEO$Cw}L1Uvh=xFg;aVgr_y#XQJ~yx5~b`Pm*B`#58{Hq}ym zZgr`?R)2YPGp@4r!jtO66%?tcWbQ3Ah9f1TOJ2uAl*`A0GTEYmLVS%s^k0KuV{AUj zO$8+ZG_vx;KN_)t`nLbAD{8;ozpp8ZL@qgNh9<#B<>!-MV} zmFHuB$&vJ{&hRQHKcvK!*x8qI7?J2<)f2H&7c25O2TzJRth3IsV%W?HWZe(zADChY zu3(|AMu%AZWDdziH)W?hrOcD+c8=&Wx7rrCF{?loG7m~=KG(N+1h1j0ns88YwA!j3 zw5w~X?}=ge8<3%EDu5Fo_|g$Yq}1 zj7eDL*oktD1t?5aMWOMhz=9?G$#EE4elpwoxIiP=3;4JuzO9gJ%Xr+vc%;7l|>PNX1>H(HISjfVQ=fymkDdxX{#T|G^^x(Aun_`sK|nHbK-VTNzxJTDk$|2qSSWJ+XqT z-0(xreqzR2Rpw=^$m9oFj_;yJoc0%ge#bI4QC6Ak^DtOZ<3@=N?S*6G4?;+R94p!@ ze!tID74q83{4aAcsjJ7P=pbH^(=FQ#)ZAh%K6_!MBOji`NxK!0zrzfnv|^i>3$CgX zh_orHchR8{*~F^vkVPNkv>7MoGyP4!&bHnKDO>&b04;GqT@mOm%B*<6DqmzJskeC1 z8tO`{;4-RRiZNJKm5xz%(IqCmSS(Ubu^P<(^uIWaf1<}GYF#xZ>Tnz@Ds?hYx7NP5 z7}ayzoC?L=X+;d4?bMS!(w+0t4^tkStGGE$nPhy7YrlTk$IJez`yq7;-cN)msY5!t zookbC;-5ZD-I9%SatT~TulfXMuAGDUSGopFNTa-uhV9n2b^*yLxzSoETl76L$XGCo+^2f7fq zvw}r6EQ$407d#R(AE`!J`?o%r!4zuWu~eHGi^ys~no^ttS&n<0rX(&GN_uh}9MIJg8_3GG$jAPy=NJRd zs&6bC-^m}W7|<|_o7~`*nk#T2?5}ui)o#OC>rf!uui_7y+S1R=zxvsp&^yaz^?SoC z12Q)_!~#^Dx6QuHF^_$+0#G|-n*kOq%A^E-pcG5|h~2bkN$X*>lx}CWs98~MVhd{=42Py2B#PRge<@2}`Aa1-;g{D1vQR3ml;D+O zlJJBXHCv0TWz)y{;-~e zy0J6g?f)FuXUE?>c!Cr1$9u*X{?+4E-~96NZU5-I#;vz}jyr>Szl@X_dSw3e2;Jc> z>C?vNKmFP9s&9JvxcQ5>CdS7&@n)y^s2CoE!rk7-xZ`|`fAQuwk4NskGr6{Z|KsD_ z^DgGariaJQUFVMnd1T9GPKtWRvwz-ozX4pE5!}EpFV^v8^{e;XGtS?A>DaR6v~l%w zpFb{r=C$MN_uM&t^haJl_WSrFWXxx$mbEkI%^eLou6)!}z8DxcE>mpUuxac(@6z$2 zYo5!U@L%MvcI;zovv);A>nH2{BH<8sd>`O*n2Q&lNIt~L@WbTF*B{t3-u-Lu8&A3N z+VOqg`+dA%`rL8m&a=lsUSjOaoe%Ns`~#2NJAUKWewp*U?c@z#Gm?!EJtyg+&_xppBJM)o}P$k=tkg8PgW5-FGTS62g=@!zA5p2g8Vx& zF1hHL&%pVCfA$0X zq+!c=1nkafTQ{9dzpNkM^}RpLg$6D(ZQn)?arZkI){x&DxyWEH8%*bdJUib${P{R_+m3M(FIfJwKmOo2eaEis8`ojSM`U?jVU5;kyX-=IK!Z8Q@?7}9WgyCHq;6$ z#?{GEe~}D(N0am4(ifJ(xA++&3g*A?D;~Z!V}IBxdZEG`u||K`0w^`LFU zEm#$ryv8hdiFzW{c-R2VK3MMZS+GaH@yTDz1mDtck)whJid`pvqIbqpCh*Nxt;C*+ z(!aLz$w{*oqtN2~8kXHekA={~oYSr?vwFqtPBgl~>-cx^MdG>Oj3!4hO~IkP{z*U& z|I0C8k*2q+gLU>FnouVnWlhN9u%Ak6Uqo#7kMlzND%1!sTA~O(avvW3OTM81V?dn0 zu48uL>oztKsgG(Cscps77AbIG$2r+%j}BNc-q zGVC+^rw$dlv`v-4ieQgh)Ctjj#>|7B423S9$m?{+mt7bCqiFhLIoPPr&S=YmqP5Hs zaLQ`tx6kW;;$o8y!JrLGS%IPL+NmwqIS$If88!a}2bOX~TCRMg*_?f>N+EQvu|+e` z6j{Xd318wSDstffP=N=NeQ0R3na4UP2yxM-$9YE*lw2%GgMCjSI~#3D)JCOfQ1c|C zFMySY3a=Q=o8mTi5qA+YacD}(m)R%s$=S)WU{^lfid?$Oc6A`>yN`mw0}c2*!t7nd z-ux#H#xYK7D`SE^z5Ti<^n`@vx~V4Xv?HTts|GRV=1Gf`A;Y-F( z!QAOdM`Nd7+LJkUAtZEAawMT2i_Mj?aq`2$3UWTK)VJuhIsSx~HvgPhR%}{EQvpU< zVmWgq@fEA~Bct!cB6Z95R^3!>J6-kY3@AthdpS8I2M}1yuLZPq7lE^Zu6!615Xi7* zj&>_+c*~crE;rQr7_K-{8|e$`=96|4JxpXyBA?Z12y9nO>s^N!y&=UerGl95#@i{= z^Dg3*kepW8%JglLyRt!@evE3=4Sggx^0qwBFR{E2e}No^ta8`W3Hyp;ZHuP-w7tUGSx&M z-l{v9gA5fh+Y8MlXvnx%4Lnw{02rw`QLS&N%)Z40uts}wYE}bVKWR-nJn?76?}(%= zBp9=eU&XMZ-v)&Z97|7JmLv|%n@g5uQ7%Ue1U$z(^iB3H#)dz;u%(Gfnz6DIXzRSE z2IHdv`?Pc@Y1fvRvZa`IX;l!}G|D4(^TO7Nj}sv@(+d#nw~kl6Xl(udp>DfZIUul= zuR0{@Cu?YpR~ey@PbZu3|AQnO9?SsZBC)rJubj@V;0 znbg-Zv{a~yL4E{fr^uonXt5cupy3~S95dB}9aTqu;a5Tx1vNFM=6Ek&+K^F~7W}7y z6`P1PA5GXau|Cn~C-`h#d<@nZ+**#d_@I&=|7+HGVYiAQI1in`oOvxc^rx_LJ^>!L z@jDP$x%Hzv4j8tcH*frtxHPb}Z_S6?xr0O|Jp+(76Tl9ru4UcBdx$IsC6g0I{8^q$ zCsNvi5(e$Zs~Xmk487p0E$u~Cncz{83LAjrY_2@nXy@2sJL)rwVKnl zz{Kioo5;+j)*_!4oa(6(_z_E|1V4<4M!L7cb`U~hi5b_@+^|}@Z-P?+8m4_V)h(3@ z6Swu?%q&;=q#6NAn<-B6IpHQ8#IVl@1E`aOailGFiIYh&(IVeA+l^omvo2(0S3D4n z%mVy-I@Ff9nmE|Y;s(A{6;XQjQ8{WWWdXUsXCBC>tHO>^u_+rBZO_Rk=$XRA16gJ_ zevEZ}nY0kW17i+u1xB(b=g@667=_}_Hh&1s0it+*i9mnE7IE>wWDO@NeL<`zAb;#9 z-#i|F_{;PGcT2BYH`Z+4Fn;={-;N|F*P!`@NWFz34*aqY(?4u&(4-UXjIlf!8}>u` z0%qe}me~)`*irRMI42%wo3z7+8=K$$FYoghW<2n9o{`SU@q>qtj_uqDy#A!q$5osZ z_xQlOz#X53!Fc3Artux)_y6nv!}IDN<9YmdaU%Vcap>Uw@svw183%a;(uKRu8E^a9 zcaFV}9?JUw)^NAD9q0wN2lnnAKlN{ZZk&4h&T+@>cW{UJGsk0lALS(aM&fjIy!pr9 zKCXTyFOAixKJyc{JjC+#?EeChUExf^-wILKpTE_uq8+?l^| zoW6b6_?dUUYdpk-01uCzIL6Ci=?nAaA?*C{8-Hq?d;Ue^;L&~Kf{V@{`*@E38ZUJ4 zONih8y+0h=w`}BB8wVrn9Ce(@&M^DpYagexhR!+2L;f=d66OtSHW0f5^*NoGY`pOK*NiRPg?+)rm+%tSgXnx> zeC~hz<#^`R*N&IJ;F`=Uy@*2yw4EKT{Z1W?=BQ=oR6EBWO8VO8(8R5X%*7ry(3@YC zafia2ZMitbo!-ZfjGa5r8}EJZdwCxJ>0|xLr*L9>)7Z%K{5NjiHcr}nGLJgiIyUf& zi<35=%8BnSqp;TGWOL?L?Q_EGD33&P+`a4H{L8U(_hsX=|KkRjyIlD6%g4UGkBn`+ zX!-STeCxRH{)ajiOmA53{@VTH9Y6moxzP6Y`@c3Wzx=7_>b~ga8$UfZZrVQn-~;aq z^Fe<(Kuog9yjdN`2+%tE_6Q(P*}8sQaL$F}?pyyh7wNnx_SDO+7=QQ&9~iIwp*M|t z?s;(bsqs8MZn^F6#(#d_`x9fs?U<)Kk{edVm@h8rA7byIg6cliL2e(qvQN@)k*3K$ zCBb?EqIGG8(F+eUxT9uon!e7QAkCQapWMJk4lcNu^Vb!Q|9|nOH|G&dSNwx(=%e$-MSPxq%{S&35bt>B zyWv3*c;c2$gDhBxZTGJb-8qZTW%iLpDW-7_sIlsP3n`l#7q!|hpcx%j_2FAqesEo)pqn~G@lqQPa2>*#?s-%*@H3xSfBiC zPV_7GF`X88^d&xqf1ztlCUh7#;bO1Y!kzHtLP;QG1uc85@J-8=sS|}HMP0(fN;Z~M z0o|=JTUxbizj^$S91^cWfPxfUT9qerkg_VNLKtf+IS{?oZOpWn9y4F36ebZNY3AnwRxlowmM%98Zan`>mrVT%=PK_F6iC_$? z(!|U_62_) z2WKA{Q$Z4w^2oSgFs{bmATKc$gfWOs8DkrLa44G(n~VwZL}AcWFZ`JcG9S{KK7ua^ z4?8lEa+O7Eke#ofu|SPc z_QR?KKyX+VF)aDDx3)MA3JNDmKeXrl5K!ZbfOB9;#AKw3l$(aaJ`jro%`JavwL_y= z-@*+&1mxOB2n1IEEfrYhGeX*LE>c0XQFBe1x~AQxpK&n9%xQqZSj)qo)-%^abNJ1!z+#+xTn6|F{N**rnONjc+#c5dNyH% z^KW7@5&75K;I%En=yp6t0_@I|$w%YV1H<&YHlnI#kXB;qKt8=?;8LP)lX~?xvSPMf zC;Xn!_7%Mnq7SSUFeYRx&wCB2Fd zvkjSy^@I8SKSY&iTm`U2RAVMoDz>L70hKF0#Q+TmdVtlF1lEm|+bOSZKq-?ioKdBd z237}E!Ad%tu`3UtKS4hOk>e! zQ9KTebhtZ*fRe?Il1>+CPmmE--ZG8u6|(3bWiZmBa534OV24l|9ECUe)eaS*3(ZJ2Oixs zzH;lW;J!g|4+v2zWaX}&w1fL z9FIKk5YHyxJU;W8PmS07)7Omm|JJW^*ZLDs()aS83==N6v4nD6k zA7}5jftUCG(VtvDUj3?X9Oqr|w6X2XUEGELIM#S9&XI%Tj+<}fg#3D5aC`1J`Q+`~ z6~BfTy?%A<+4C@=T0PD@_uO&%X{YfB9UiZO{#$Okah!L_Q^wu5d{)Hc&|zLW>d8*@ zc?WzC2AmcAHNhAUJ-m0Ee%5*5-aMXi#bx6VcY)gtK1ctqJN|Y&ap2H6dB-VZGbgb9 z>EZz{Q0#wf9~pIY>^kqFv31+Y`E|nHJ^RL;x7^4H<{#&gJnt}i+~pn!u^o%VYojly zW!boC+t|fB4>oP(g2fTy!QJr>J@yb6LynG}ms~UsJ^I-A>TS329Q^&na`QOl6rS(T zN$yAY?#YD+&Z_3u5?jFK$>@z6*N>Y&cQc)`Z#=T+L0(AA-ShZvtoy}U81}3^*&V8V zn1fdP8LIh9F*{bXAnbD-n(Wz6Bkwpou%Eb`w0``j$Ukd!Hn2#Lf<|vE1q?A;;@R7*N;4S ze=bzW*jF+h%-$}{cHIrEHh4BicEHjP_u`NBA`Z|}JM_FKjU z=j|fS#>sg4@v%5ul<|ny1%j=<*Jcxe`q1^C7_WNy3&;7FKR3S|@o_{x(&+BnZyWm` zeT4TtY#wX)CC3(im9yvZhsN&R7mZtQ{Zhui`hA~(edn(fu6@BP#%Dfv)42SKXM*){ zVzz4B%p-*kAKjk|Ne9S_^~BVe_&BgUmPklJ1ko+Q@;wXI&fI;;*iZjm`HU;Mga3)~ z=}&xkT>szya=hr;=Z?qeH($zaE|>#)xPf>aQ63XN@z#Gg{=?6|V_f;{=f&R5pSfXt z|La~qe&fCWejGAK_!t|+;={7f_F4aDoPAMf=U#LnzYI7GAHT%lV&>=m=7w?YwJ#eV z{j=ZaogTb91Vfo`%|+r_PgutlRwgM+P6~oC4Z#bIItUa&$7~CC_Z^W$UY=!NQ^hht z2fqi5wkwa??k8-fERTg0DQPcDOlg#V^k>*)S0gQr+1j_ZSIlzNLSfM^Yj~FZLyiN| zR*_hi3CoU2kK1Z9A6dHuBC6E1Ek{+=KV6T4c4F*K zmg)?HGAf%g6uW3^9=C>8+p3I_$>+u#6Qll%Z?U_mr!j3})8!}IlUcIXqnA=I=C%eA zS=wNd#~3wsO1VIrMK|`3?o=yB9EB|44u5*3NrTgHED zE*&$1QD^H)6dzecEqaJTD~v!K!vh;1kemh9gLYXgB<~ygTpvR-u#e^ zMz`pQURkZDk;I%5Hf7rMGls|$le^fcWg?C~JPtYPBOU1ZgKrPcm;)05p`1?^U?B45J zwFVzs?96xdTv8~@s+ZkCBKP902o8~l=Y?~)`@|w`A$gQ z+7_>nH-_bJToO4LPCTYXoSdDvwo_bbNNqX`Ud(bNdQ;vV5T@F4j;x13_t|q6G^GXp9Zz|0n;@V0Vg3+E@CY@fMT%hdcrHSJ~=@C5ySGUj4-~JZv#IvpcrcuL+uwoBZmNT5wh7 zT3%??H*-uU(9>U5le-!V5}7OOoF4tu>BhuVj{A0x@k^f2q`dv4ZF@!ItV4%8wB(9?Mw{(!j8V3UN4<+q z6bf_?p&YvY|GtR;*o#u6xC;&YzZJ+Cs>yyped)n8nonLaEb&~ zuD}vklcS~QU?xYIw)c~cg|XPNI`L%!f+>@Du+e~wniRDpp2S!&JI+6G@h6iV-JJs! z^@_f$E z(?9($lXh#scAUGAIy{+n_6Q?KGg{AW4P zCkCw*4~VZp!@JvE$V7cej0s`qA;XH-DZJ0!PRC&0Bb>@5$pi&%S0n z{rNB8#PB)T^m+B`#&+(wzv!Y%#+6sUU~JoQT3+JoGwScW<%aQn^wEEQ&pQ(UeeL%l@ zvBdt&yukQ3my(}s9n%?iba8f`_Jk3ixbOaZ$ChoUjKBHh zN5}qy`#7n+YMe+s~mJ5ckEL?$W;+9 z5*#DWj&CEJg97A^V8a(QAK+radw%I%<8*TH7~k+8=2sQRjvW~P{ulmjWW0!#S%>k} zyPf#LhpwEkLC--h=&kaq8;%^|*G*4&C5G|8mPz5bXAD>zXP8SY^{EbI4NZTb+Rh4B z_;kJ#Z}uM&=hF5QwcLec6@RM(Kj-`=LG+nC)4cFRAY(}L^68s1NcLkv02%fyY{l^b=_HhfWizWhcx!ZBk!By_Q;Dz|}}2iZSDO8*CKD#@+78^qBk!nlDh`$%POR2{uya4u1hMUQh)8zw9< zjv&mBbz`@TG4-adAd9%#jtDXlQ%`)KIJD4)Y-#}6q;f1osj-kXA&`Hip2)NzMk#__ z--4KO;!~rcO>;D;r@FMHa;pI(V3uA)X_?5RJ*di#9b!v!*eOIeT-wYo4ub8XTw0fL zWJAr^7Hc%gta5D6ak7F*MK+{;=||^05uwZWD4O~zSQ>f_fnO>$k+Q0yPqif~*?e}c zBU`lPf`D}~)fTkiv5o(!KiF)t|AGZ<$YyLo*W5A}N$*$^le1&c#EznxR<3>7U}Ua< zSEJ>Q%DTPGSG1>1`EYitU5recIy?>5u_+dhmDfT%Jh_(fv_`d><6L)U7Sb-kGk?$twVgAvlrn*dp_Sijz?6A88M?sXuco zZQ?zuEWCLakbJ?^t@B^L(_zy;5&5U;+921_Q+yCv7vG8cd5UzO{~lbF?*n)8vRQGAZxaj z5-LS`j6W^OY3LsBsGm>rnC}P6qaKSLv8aSEc=~-%8`2RBK6N{W^vgk-NYW-HwV9P1`vpNMKq|zw7(NY7-Wt zG*sFOr0xZTomfz z&&N+W&xk!ChQ8M0-T=`d%LoVn7sP6x(1qb&V&q&cp%>w4WJw#V1tx+a_B+1-RIE1f zngk22Tl?9M!S_3gb8@Qc0f9FWCWoV@F;bUPth(Bl!~~)ENBjZ-UD-FwX2V<>f5wJf zV$1gi5mM*7gPeXc4E$1ckGDW|K^+}BbM0e;<6-GRFK!Fs*#s6eDc#Z$x-LX zw8tjSnFng6Z$w)k7;6ajGMC)OwcX}+*_TAI+R!DvV~%qA)w*+ohDGkenD;A2069{)`gTfctK(mc^+m0X2qls^xo^MF?(u^k%MD7~Td$OH;lDU+P!7DI1py=i z7rpeeu7nAOUi>4cVo#nV%4}yJBCjg7G5L+XJ)ix7ZPb*~Vupqoyn6;}`dJ<6P)CTE zL!~Uv%B5q&CyT^rL#JECvrZo<=aRWt`*EnbULfLQ=}uAuiFwo_6>-9-nM3y$O z*ka6Wj}MfkO3yybioASgakj$|rPZ4rW|g@wcB7=W6!tRZ3(IfgCrP@k&THZO|}Zfx?5{&GjV%<$DIWP2U0uJ_C-WZdWSGp zL$zZZSSC62rL(O#0AzNuRc9oi=fELi& zl;nXxOsf<5OpOqN#%;aUiQrqlH0x(hg2WHoy2#&7j>7n=J!6q8ShQP<1)0(7@Jte$ zjADQxdf;jj1!-iWJ9K!6r9L5oyh3WSWAxbu)eDFUA7e%hAF+-t55y>D$(MiGsD+eO zWuvP>E`t()bc$E~qU6M6ry_kS4*SLM0axVtv#tsEo!(*FD9|eJqEhn{ku-7We{51| zY#=zvL6n{hVH* z;ZH<>i68pMHG5)qlv`k)SaWQA>MyS!=j_})9t7W}t*0P+eC#-F2lac#H81|g@r9di z;C%o3J|mo5N;+YHQ-9+i{{7=``KEE*U;WMa)>nSh`0Ncg@Mxbi#%Viu@*Mc>oFF}W zoXiV)SJQXvc$T^+DUWeN_0ZA77b8yH!E@u! z<}o+ER5KJdXm8n5||Z%fRMdPhHh{vsoG?L*>=W$Y2h z^s_OPiwg_bIPma&Hvi2;Y$aR^WLozKb&i{tZ(S`;uPg|i1imRX7J?UCykC%uB9Y*6L<8i^FkDP;hgTT zN3^(i?>_SJF}9D4BaiP9!nmAwDSYVv`#oOzdpi6a$ibV7TnH%3x>&`ac-(*Az2hr)-^Rr>ewAW`anaD}7-8er zBJ1(aM=bfP1G0z5%z{*g8L`$NCSv?nlNkUPgY_xo2_l;n29}?mNc!a*^hglQ;8g z1TvW~>@lw~OgcAaKI2zN&J|ZZ<5~P#LkzS?ac>f=tFYP3Tco`-Jg;OZExL1Cf3JxZ{6CFNULzm6(E6dF$jnYU>kx zjf;HhSIYiPASwW@`yl&c@>e@T`LB$4Sh9}_y?8>iP1P7N9Ik>T_KU@O=M$N0zb8`^ zRUtBv9lx13mY|3ihit1EFwS^7$7nZmR?O3eZ680?zEU$i*nq$xI|AUc&y8D707pk4 z*qYCT#75r6+e|lpOp{@TYyko6s6%cG1sXl_#AZ0FN2%^Z)3eAx4;C?*aaAFo>S|-* zO~%$HoauXgk!#vb4@1ko9r|)SX&jsqjXR#Ja78BAH6>YJ;OneQ1tCO&O98#`*~N(m ze96tpAHOJzTOA5&D<^YR?1w%sV8L0py4YYFVX*}zOl|8g(5#BVMcs`#T4pT`sfABn z*1!=ds>v4=xIfPqlCq?Cwbd~#12wQMcMWHss1k z)GoDrA)n|MKcr_|=?(p#FX@Q(JAvSdv`lj`{<&d^NupoygF3AX8#9MtU1`ww^aLRD z-2}$+#Cotf$P$~RxqXI2nw^8>W-%VnWLf+&fAd99{Q4ZL> zdUQ5OoJZP(OHmMAF>96OM1O!sMWKtg=B!(8ylB_A8cc&0%=>)xppu-5le2GV)3h>< zHJg@wn!S>nzF-Jm_|ot4pf`J51TtqJd({27`DS3kE9NLJjiNEk{83L;5@p^1Rw%@3ypz)am;_=UZ)J3AuBM{0M^Jb3R@t;@9AsQBW{c5Ku}~0*LtHRiFq00W5-T- zevG_)c+32>X;eT3VcNSGgE#?c9*ZEq6JKpLB6HKi9H(47s7Gdx6X^(J$*!@ic2=Fu z4oSK-QFQZGfyZXITkR`K?PI=cowktIluTP~azU3UD6)80Ir^aW zZ4Vol&E`>8+2#Rwjz7)wp<6lUbhYTmpu0AprT~x$2L4&A(eAaC=VBsHIh52$<8N^` zCecQ{BGYzUfO#n&e%rpqoyx}lY|-+QwlKA;c&A5ua|8@*(pEs`+E5pUR|vUU`?8=8 z+r|7+Zb$}T8VMY?KKW>F5Z|%}T75{4{4tIh#36faunxcY%##4u@#G@yDJ!{J&g&J& z+aDZ(GW{nt>LJGB$(65^G_{AsvYGnE2O~7ww67x5KE+PCs@10csc#&!#!CDco)wgB zdvbn^4U2i&%<-l;uroIT9syPKO&sc%*5Wib9raX1;!FKWG~Ur*K3R_$#cOO_W&m#A z9^Y)!6(=3Aj-4ncSq~u^k@}Ydj$=r_v)@wNt`SkWxxO`t0S!_R03gk#V*j9%3pS0` z84sy*eQMmbX=v$Lc84NkU~{gpxOrz>P#&t-*i`eQqw&!^NvXQ!8>k)m(THHz`Tzqm zSnN5fA5&^X!7$YXBA-4MNNBdzu9})~Mm|)TsNwU`>yFBDqd>bYuY?)nsg|C|V)UTR z2y-x%tFh+P)uejP0)b9Y5dtj7mGLi2#V`yspbJJgw;h;qx-x3wu|tq=vZU5QVv=N}#umfg zNew&2HMS$alUE0&BSWW}CZklu z%W*uTO3)?=B>@bp_a_gZZP?fNGg1P8(1aS14F*A4e72GYriy9o^aEoATlo1BuUOW~ zM}7HW?x@S(g^y3gwBr<^pO~abTyWNTb4~ytVyh<_F|#$Bz!OVV9`k9(R>mid29El4 zD{A`y&ccW7d`89J`qIC5e8UUB{CKbDe7Ii=IR3{k{M7O1KKV0_7k~FZZ;{`pXM0V_ z$!6C3FyIju4DY}9^6`SN{l?=fzvT0I_xjuLzWFz^xQDGgMf|?c{=nnsfBvU=EyoSa z(Pr&03k!Sw)hJJ6={`Ul&O{lrU;&-<&Nf4uw^{FCM5QC3`8WWB;-C9mPRzzv6MyrSgJ z9iF`ArpmpKf70=#fBTD%FZ!E*y>ACNvG-dCJ_VjW#u_J8Agcu5ZXWko$L|&1EC0uz z`mV?0cq0DlefJ)}@Ut&DzUyDT`1p&T@Mn+PEQZ&&cq< z6NZ&KUo_+=GM-GlzyYF(nRw9W#K!j}SX6!--$Hr!r$6g>#mj${L?eRmm@9iC*`&-E zJCk)Y&si9UV~ipe=Js1X;cbo&`G`M#y#I6F_xQ`7@#)7qzQYr1E$5@RJXa`TuGm)@ z^OHBE_8*SSLsdHtbwcyl9O0iu%kgW!@v7qszvxSjANsfdj{e3|=dP;T5n1fMOzz!0 z-h?dw6`I(+=leYO_@;09rsKn&`@Tr>Pi&!ymJI~5kQxVm_C@kueCfg#Yy35?+&e(c zh2tx~?i-J<`|1}QkG%2s(aDN>lMa31;_A{{(O2Gbyvx&`dHn24U&24heLSz?!uHEN zq0dbT|2gnG@oksaz3P?V&Nq3)r{f;K^SiG<-i{jy*WmY?16nx^hIRC%+RMOTga5yx zZ-np;|NHm`(e+3EfWF1I4!F5+lbcB|`p)k@KI2oL&+EeYN6GXz+ok42|5e7K-})V2 zQ}mSMDewA><9^!f4Zri6<9A>4o4l&&VP0``g`08YCvk1DRza+>>AbmejT=|@!Sl-3 zzV>*=ySzKEKjNku{{;9JcNgC9n%_7cc*2v8*FXFqHV%&e*Q8u>oG|`4wpzeuppA1B z`>0=aI9uFT1IdQW7WBxh@qFN(oS{nl3Z?Btn^@O{EPGW5sqz;6w1xhyEh3+9Wg~~i z-_ZoVC(2ssylZPHap-&~YCLqUWBo!RIKDV9vLtLrmS5@$tZ-Z)C+Hjxa79V5dc~#Z$ z&v{xrW!;o&7UD2H@v06@;>*@vXXRgVI>olfq#=V}z-6TzhfMq#I`%W{s&m!Dw2-nd zQ;Wy&r*G*RkQwuA59OvRBlD?tT6RyppF1PrD~ND4--!EUUkgq)0a5NX1sOJZW&As& z)>xY-l_mjfjiBkEyFT_gt?${ zOi`Z1iJ#{Wt7IO2d8DZj{4Gaqi-+_t#|MRUrA>d>B%g4o*MjU3i*iu-8~$)BA=eE3 z;Mkvv7tEaw;_zd|YZ)mPjM)&bHp@nPxe8|fnsa+RtCpmi7{Qru+B|%TZhx>xtLmUT zA303Va@yVCyGXcn4=j??Pr@)CYCCo5-||C+$mxSMHft+y(%H%)>W7~y6iyiBM@}?5 zNrBLdIWHN%X*=pk7!5Uvn5O@)_9gTOs7n~J~F!g3^ur1`@aosJN{rc5P7W#Bb+mgf&=Xuo6Ln4mT zljGaLZwrU58UoR!a9WS95J;0-<*4FqA(lD;ikJWkTlx*2UO)NjDW zTKaU!V_y|I=f^QXmMS#N&I;N7Rqd#(Eo)qiG@98$ojhaHl;<_1(rjESDY^&NT}2a+ z`P}XY)@y@xZQ8$R&aBl{y}>aK)b;eR?YugRZZXsCQn|8%3KO4s_44X3$jOodk99@Et)02+r^V-%cQ!Ff1-5U}D z($YYA*+>kWuiH1LFQU-KCYFYA+JxCEhI9!AzvDn)TBg6)8*V;mGj#j3^#C;A64GNq zS8jkZey{l1d~?%W`uxcwJ^zt2p8lpIGtmcCdxS*;b=vM;xkY1NJmN*dO6>M|L|@6u z1ps?^l!r&03*;OsX43|?`kMZMzs=ItkpMDNAc((qyPzN0B@oqlgYd}0>;_La5|bS} zn_q&LKY)4@q<@SnNHWF*`vM?@H8y3GHzDu` zoUsO}frh-Iv5v)`bA@Xn#3k&s4sM9R=?}T=xn8Eh(cg(86q%@VZ%eLGVv)uW`hv0N zM@!xNfQ7l0&*Ysp+xX!+zQGwUxQ%xlC9hs9jJY(&Fjc1?4q@ETH@Rk|eNp?V*VeXL z{1hKS%IV^_Y^;p@zPK?5uwwqS$M)e!6_ zA)Gw|z-t;eIf1%;(Ls5|%W+tH+D1v8uY$cc+(q*++tdS}dQP9pa3tO z&_wJ8k1JfkZr^oyi%~%OO%^i$kVVeN-}^WPg0>B^(5BZusNR6^9|>P3w;Tyx`+E-^ z|KeYM@A2S+uQ*=zKVN=4^xD_)uKu&*J>KIP#|MAV^Nx@Hn2$T2`L0i9LD2|aK>(_YwVC!xwo$z@)}bJ43i9DBn<4jR6e-!-TAM#;5@vj4eb)B0zeXD?c(55b$)e5#@ z%vX*_A#%nN;_2H`B>5S40cM=PaJ=NFf981k|9;i+rnkJA{{!#{-vU7Iv)=7^_OqYO zB0B#_8Ch@OX{{M#H}qdd_>BSymwkU0o8!nGW91X~1b|blRHTf8CHepbCp=A39IL6* zIBzIiGY@_3j>dXJOB-!V9Z|-70H@}#osfCY_kJF)=z7KRwD)|U7W;qwmw)E?;xBr^ z@xrhEBE}6T^|Tg3EjSRb#%{+2ziNfPMZ3e_-X|)0N1ul zC|~6zP9{IeZAQvx+y}|LgGa|`TXU|g-lo`3#2n^P2*Q{JXVvPSsuqI;KM@c|_JVeY zkrJC}az=T7>>sKZ8GXx&aJD_ob(F(af9Q)*`N9mbi0x_%0-u+fLaJruhv37 z`=D+8>Kpw62<*`c0E#=Gi3K(PJuiD4O9E7}Um|mUclHF-`gB(t<}38#j~=jWW^EX5 zv6TeO9EV?>RWGi>trOFLW0Ogcahd|g%6E~46W@3l7jDscguKA=x1)acedce{tCC%~ z>fM$~^8hc|Hzw$xri1TAMNisU*N=U8#YH~s;S*VHgJ;>1j097M;AAc3&f8(ZTTWO9 zi>xai#hq8KVySwnJ-*GCi zXj(p-oYnhLDP_}aI=1$vwtoi}L=lEqQ~F>ukuNe`37LL$9&IRC;U} zT?)=|`YD%-`M&C?F4QR5i!7igHIC@V!q|ty3Ed@&)6nhro5{@R&l8UKl& z4YA?j>Hi(rzR*%r-ALO9YCjXJpiKUo3)!d<#sR>2q+$G3ZtEDN*i431Fs|53W#4p_ z3F~LxHL=(s8`bD#Je&u3%telo4;#$gUMfxZb|!|v$DHMd=854Lbeo*1>Ej)51UA#` zY5pjteJucxw2dE9XYZolp^Pyw+bvo#aF zTJCX;?3_sBl+#Cw#RUE4x$`TDM#JFGNDF1h0UnFaMchu~Dg8&ewwlhe5rT?LM@wH& z*r2I*yq06%f-hR-ONNBBoi}f7DPlt8ALlg}g5CDDt$uiI=r!5IY+JPQ3wD}q;*gD@ zr^Jxl1l#LkQ)uU?MrzY=dPdR)bfRBsbZr`|7auiLcurDb)p0A2+``W%!4!vg#!n6u z+eoy*`Hg@0U{2>MIltNGm(-nz}h&OEj z7L3NSaW4iqFt_;FX2|TeQB5(2HV*1PcrY8^utif(e#*!n?We4{Hl`s%ja$04iQqIU zES-Zd&f*BuGC%1X=^6mZK~mS~UbTit#bbjBM1z?L;Z|7ul(lNSh+%9hwhN82Q2QGm zLa#HfYSA(0UW)@g_UeDbp!f#XZGe`490O3yCU|+&bwDKVhz2g_Qtl4BT(<+P(!D}vg#Ks(_&FG|aY|Vxsrz7oeCD{1t9enN37=Oo(VxJM% zOk6saMMe+S4pK7GteeC+_hrFi+Xy7D-Aq`WUi`g*-S&d=yWMt-WGTKiS$S~TqN+B`SH`HLDno45t)4%Pg zQ6n=-heaznUi`_&8x?XCc-W+~X}`V{vit#qeZ1N)llB;djwY5K4TaD0g}w5~NcVH! zQLl4Jrvq>g;P}_y_ru5YKk3gL@AfDE)Nz&9nLPN)Uq7y(_Vo|Fx{LRlESTBOPL@s= zPN`7`@gT>YAe=QQc?>xjO;HXe<8I(6YKwSK@>h~aQey$Yn+R)8ki5Kp(`KLiT_n~q z1++;bEonHeXXU zJ~j>a8(KirKJ6M0s8AZ3?PE)v@zv#9;Pi?aCe+S#uJcZGZ=$fa3Ui(eXeV1SXisMl zT;OyAUy)ye^4_*UPNv`c=#;_dK2(0Q?i+`|iQ+`;K4y zxgR@T{C(eleDcSC-0{Xo9_1SqmwD~b`P1&|TIooDIMOsWU*Rt91;1GUgM5a@@e-pr zz!v?rE)WjgEJNR*)4PXvDq+A6>5WU28{3f5{Vr&^b90eEodqo3Y@)cSS`*Zzx>T}H ze$h6si`f1z0Hb=rwjh7ZdF!VYr~$CaAo;7Owl5E~qeoGs=Z<*XazW$$n`|$;T?eqBG3D4o%L-!vqf8{HWtK|Aa zzx_%sY|!2m_786&_`gQ{2g%c~XgeG@v;T3k>n5-4nr~8h+s3w@ z_T7GH7VeZ&mWnlTGyJ7^wTnmQF(E(98)M|CWj_cfA(-X}oi-`;d`8p$RhAl1=OH60 z{tm83US6_4(KJ+;B_}R?o;w-Kh2XhQ|$9nC~@4T84^6HnxZSXjv-zA$2Ei(f_zD*QM z1=O2=LEl9a&coO#d+3(c=p31Is(Mwuty7@6YB@W$&*B+AfzoK-&Eqjh6VivT>KJ4J zHG;i)0?V*bLZEW?YuVITN?y6u1kIDIUI;CYW-l1>A=?FR#px3>e@pG?s*aDl{8Y~H zcS8<)Dx)LTlQ|O?iDiWYIk`~v;;~POrB6zG{&erp#APsKcZ+UJ#?(2s!ehp<@;M{a z#WD24sGnl`32jnCG_^xpvGjO`wM|nh3;Cq94kpA%<_E-OVATNhgrny#8Acg<%fN($ zuN;=|9s}6OHG#xt^%?`M+s(Pp0W)U#59H@YJMv7BOes~3667f7ze>epC*F8XS+Y9P z#kfxUOl#NRxIv2Eh8y0S`6vGv62P5#it2e_tA?ciIdAAZgQQ_BwHZVhq`GXgK( z&UdV)db8LDcCPC-F~Rb2DB39@kX@%GVARo>icd#0mrl!}qO6Q7+cwF!!5j+DT}8-C9_ z=8rNNx5_hDGQW7hf;oM!D2dVYspre>w|j+b7Xr_`(}$KEW5#4-H+DPRt4H?Qdz3=3 z!NwQS9c}%_@$>^@K`kG))|}Too{&gO7GKI6Dkk5}9Vp~^^E*M77FgFeMJQnJ9qp}N zJJ6fG+9(18)XGCVJZ}ceo)xgO+(fkJdB7PDb!{QaZ0@JG_^1dagJ*J~qd7Ew)&BXU7P;0nOd7z>h=A3IgnX;f zG!ZykN9vd>K1kSP7Ko~aYfpJ^+3&tstmxvaO09SBzjC=B?! z8CaqqD;GQ44Th$&=97_`ywpnh#C3>3FLw3Nq;!(f8w*y7?{s+b2fDVwKjYWb2Lib< z0bb)UY-6{5OE4|S`7N+aDmG|xF00AiL@`#-Jf-A-7&Z3Tyyt$(T3(S*dHmhTwcTwK zozx}+KYzT%$_C$~lHGKgl`vZD~w$*D|9$0eiLR$GjeJ02* zay~IG_;6#6;p5Vs5FbXVev3T?L;ni-!fLB)@5Bzi+k>Y!jLZuU(f z+j18Ai9cl=8wB;2nFJNPOa@9LF0SD4J2~mJE3U>{K`Y#G1|E+JAOkQ11Z4zI_;%7d z)ylAVD&~(J zL0;p^-e2U4ey%|nX?CJhCtb2N`7mwL2}7b7Fj-eSP6)tNe%V4P3~9U94WOvR61qn6 zHv<*aft;!-#Kr6?|eju_Fw0n=e_`YKP7Hl&EYOoRz8S7uX-8% z7x@;zbqscK(^Hpyj%8;2=iTKj&U=At`x@cf`pe|{B8&e%G3@01vPve<5;_S?AXIKp z(2wD_oGgfso&NOX5_8CcQ)5C78U3bMotgK__FOoMfT%V&7CSM)S=S-#veZA2elVbt6in zP2$>-8IYc(0?q*`uK63PJNqyu6%(-bH7P)iC1HFkq1xBC_grIQLE>U z7g+-o3_Z;Rj{fzH0`G9a?>7nTr#`WFg9UnDU**@6uk#A8d%3gs`)_>o_=3Oj`Nxyq z?HR`f{xS9I9)A7t$iu&VyyRzpiLu6;5WFG?D09YG&Nr?mPv#t@FWg`t{tn%5=I-1X zy8WVsuMG0lL448TxW~nD~;K;09RB$YfZrKX7_;G+Gi2T_jb=lKiQ#rQMdOEoAv1o43f`O(C ztv1v*>`3pJn1=FsVMg#n0e2#zNAo*3Vy+fP7t69Nl!k^F@j1V_Zq4urHCvR5jR8wu zl+lR>b4tB%`B~gYL&u|y+JZAWl}BX!qdn)TGiG`yOPfV%LEXOtd))K~HKpf{LyM}IEK}ZkwFS!;L;H+MM_GU2=;;{TQhh{vM z$($X`a#Y(zp&iaqMo-S+XRactUHf7#=B=l8UW#QB(R@bF?pyhgVb&tZ)`f?Bma9|P z=YsdS8D3*)oml)-wC}4My?R!>)3s~}5AMcN87Wg=%O;2(Sm!J3MrY)TCIMEDE=Bbt zU(~m4Sa}Oz;~YE_BMI=E(@Mi{YtAB)k*5{3dEuN!86I8Xfdy)~+__VRBINa%`P(VVhH~JRb1pes3JlxF})E-CYSo zn2VPDIe>?5`ZvJ(R>DYL+pgnqIjP@`r6)OfvX77U@Gdp+n)kupg>^!Qw!}vU-W|;F z&-I>?;G|a&<&jzX7VKkpk5TJ^n|h|yUi-G*_;;mr+5aC3wv14fE$l7t(WGo3RZMB& zD`R~u?m5n%&9!n|$w+>jqiwEJyPbFhbX#ru7~5o;Jj}w!_@0R`b{hN{fiFfmjFFQldInQn09Or&X`J;ALDE{&@b@nTVih5&C62+9BV!COW4GC_$b{Vu6!z604POe zj&J$gF$8Hl{1n}qN1m_&?SjvWYS~li2})A)Pq7zBav4&6Mit)$sMup-H8?TvoZg1A z?>g;n|L^i+6a=_*tzD3OpwjPcdmhes@U8ON$!oddf~i_=thh>`B)5zI92n{Q1tf}M?#C&AuDbn_pqZ={o{cX-Ixhi>SPX+kZ!mY~~rb7hJIc~(N)_2Z;{$y1S z>YU|AU-KGe;-|WE7Ipld+eI}j<&@ZL`l9i+d9oeOoUzysTmA{ARgbv|i!F_brit<5 zIxgMtW*>M8wf>Ye1XX1S`<2R06pXy{LF3?GwizEFCJF;qJmAw0=V8u)%sBf+b0Zvf zcpq-n8EaAIv!|4pyv0M=p$21FYX^q|<2fwhR8&9qce4=QBs7PyB)aw#@jbcKKaYnanGPiEC|xkPlgE%Wy&!159n#u<`?%G4nS&t%PZ}cJo2o zt~iZ-#TUMM?7m=_i%yh?C6cY15b!GDQ04Q9Aiw`x9W zg9Z$ItR55D@r<0*gQ>BqY~>-~-&eDSv(-~I_7d;F!p@CnBwv^PucDpC`F2$4JXq13Zz ze7S#;iwzjzqJ!J?!MQu%i6jFBpiZSUc7H#ukg=@FYxHK zi|bwZ(zq>*cu}fOtuvNB%1z;>PixzkIi4rM8A7xj_A?ee4X^{_85g;lkmZy9J?SDI z;Y$C$u{8s;HH#l#OjjLpIft%Rg?-j<6Z9@~>dtryzx)&*9{s<94fezRPiYn1H^pWl zr%+)7Jowm&7ky3+`X^~PV!o!*Cz3Lo|2)4VetJv=3ThbJER-@@E8^&RzhSd1kO znu#sEB!_kbM?aC3CZe&ht^HQSC2tIHY|SdPhh2jy+kcfnZU>UV1XGKvl45J8H&!NK zh5v-3wBIBl7-99wDtH~cT;EUcO~*0Huwhp1c!%8chLEPY)Z>D@Fm9=GPNywkj2F|t zTQtRH&j+C)V+^KWVuR8I!!gnL$atCDa}C6s5dH(@``EiCbhY>C-|AZyena4nW4m9c z&<^A;dB>dBW;JdjgGbQq-$oi;s?q^t$>OdweVMUHIVj>_hha9y?&aP0E&g&~oB6F5 z8phxp=cHJg`7g_u#%*flfpgE?a*BfG!0Mm~U$4+!puPa)voqJ(k zO&VtN+@yWY%S$ZuYl{B}Sl_R)`0qdGebXavIiB$z@6A6{zVCR4x8wgZ@G7F;`;A{e zKJ7C<=Xk&Odj|YQLmvi5jGO57rpeAJV{nGQwYOerE_~hK(=ICPgEzP_VE5MUxmd&& z?$(&E`y5nTXkrbF1324+2zemk^;|-U`s|`u4Hz{>T&qZpZ-;?}@_- z9zp|O{Tnyh)CAIbNqHMw4ETX@r-7+)95e_+@{B4Ub@QlRvQU<9nB~FRiig-{BJFG} zv#bhBTBL5v?I;kaWeY-sU&qml=`S*is?5$DionPNHG?Q=r#$*#N&oySCelTK3~kFM z6aSKzS8*FqrQmmNLR9I|Af0XDHDrxuM6#gsgXfa5NgLp|12~uzPY$7pEpX>K_Of*c zPn-NR7Hpy>Knb)t9?@#YN2QffAC?k#_0If30LBvN_AmSOKIe)(^DGM!>2gdxU>OK= zH_UXZ1MFyeOx^M+9P5y&chm7|;_On7@dcB87ZIRSOuu_$G&i8u1)NA?%R`+vmNN+_ z)MX3{YZ1ZTKmY6=f%)Dvr%odb;qq+-eCjp*F*_tQiyf7FD zmiFjk*8yOSrPe{zzuL$ct^9%PSfLH|ZT97NZPh8o$aOtn{It`6YC$&xjTQ9H%lcvo zmStfodkPM}ov)2a$e^d;0US-A#VQVlBbyqLJ@4XgH|lkc%{HFctBY|HfL@@Sncp&- zcam}yy7_tW0*lV(gJ9H@3$p8%ytH@iPgx%QH9m+BKcC@x*!&GSuPd?}`|8)&CO&0t z+UFQCye3iebZzo|&09Pd;dcKw>fAb&m^Ji6ZN?72#c9kMe>JUZ0rr&5VIOX)pCegB z;LUW8G2FSgHi|muEXw$}&#UR7&X_w-^jGfk$}%>Zf%@eC$#XB0Z_9LUE6xa6M@hfn zQD6NK8~R7b)=9@1n@OLv-RpBtR{E+>W4&{5`bM#%z^_h~&+(;5MAT;i_n|n;CR;FvJq66STs#>4A~tCz1HZ~cU~K0fgM-qwlZL_iOdzQoo`ztVA#0-;V-BA>2&H4{-4Z1e6_{~Xp1p}b7(yCO`(2{ug|S`N zSc2AQwPbw?s z4gzwGY1u3%n>pyt5Bz$FcAP(N(3~Us5QjyHwyuHe-@LRd>uqt|`@vWKy`XHArj|Q_~ZhiZeVpOC6QjAUg&B*{TtDv&JWLAIAmVx4q~)j!*rRPd=Xb zz#lu_;qBjvf5`b;$7eqO&mW)q$-F*>#o}IrvoKtYcCzI}sR5x7c+$i!pu4zmuMyg4 zhgT(h+EOUpFIw$LZ0x`4F-`@lRaWR7mcb1al4tTqK^?{=ZwB0d+N)0cq`n%LODw*+ zAj$AL-58MF&R)p!5On<1Vh4E5Bc`1Vm%RI%0s`2-&4DmX9#6#Nll{~Nxy7+xb=OWE z(3ab4(ga7xTD_X7r?_oLC(gEQxH4)F{+!{X7jw7FRqWB@NVCz%ZU=rM(g2onY>}CM@u(;GPSiE@1DQ^pCfy1db+UAdOMqk9&E z0MiVDyK^)~nDfMH6BliL_189>nnKZqp4I$aCx%WoHPCNr^g62TFbp?+_YGLKwQ=R8 zP~_4GH^w95kByv`I>GpBE|;&w%s8n}tcf+p*vs`1p-hqmcWL^JO(caQPGj95bMoa_ z%yiMHYmC2b9^|hI21^}{9onZHHJV-jc0aQ>*wtd&K;x%zzT9+?#pGpTuPW*<`N}C` ze#J$3^6blB@IwCY#)HR`pZ2WA`Ct8&mmP2Q)(;%t`cM8Lcr4nRcVhOGE&2hm|IljL z!3TJZ5gwaY$h5KR#s~*3var8Hf6ovZ8btL$-y|qI?bA8P7~ApOiV^krayr+QPwJ}W z_^djZU1coh!i9EKiNE3!jN8P{TnW#(^XFJs5JQuFY#KRPL5HbN{Z%(?J8os*!k;;VyyTIJ;Y%mwIejU}rd|(jkYZC(mlSoc^64Q8EwIYLlANdvPdBEdXNQ(e6kAlt8IH#}IINws z-fG_DW-JoGwsEf=+Q0#}jx7;0(?P}aSM~0b@I%{%Fc;sTtod2I8yg2wi9}#><8-JePlBl_EJR14sJJkMVb| zI!Pf0+}LQh+~*Wip-mkW9MTJvz*3OebGQz%zCMOM=AYg$nkz}E9-Rr5iQkTeu;HyS zp&-C7ZTk1r>-#OQcVM{869jL3^oWeR|vN1fTOGGuFjqc+O44wx&zrkVn^i!MXh7-D2RJ+J|#<^K> z3w-#D+ssqNAV%tjU!Zi0?aH)`fFHH-7y(Ta)#c`a7?w2x{Vq&0PPDj2g|DET_uhd; zvGY@y9Lvv-bIbFSk>rV;TGn?5!)&EQ3}u?vm@~F5MD5cMACB=nNy5zBCF78HPn~VZ z^ktF2HQ?w%2|BC9zz?+GADbg zbQ>PdeVzk7lxRC4UG*|GK^wQu;K}-~&A8Sn*xR9PKXLd~fp&P6)U3p~WJHye$4>LK zhiY`PF>uw__VyjN+8y0a{L{fjk$R&WW6fiq&9nt>xB%Gtn=Y-*>MG&yX3n^~tJxb< zt)1AKbGq2VaQ=f}ERB7*0zuO^_Zh;zNev7fOR_%k6R&a9Uh0L)53wXGGnhRXMA27U zmXCG^c)AYnJUB6Q?9$GztHqeBZuzkBNG&*AEuI%*I7bpcSb;K>H? z%YWz6#MC-B`hTzMVxHU8f@29-<$z6}Bl;#3bLhrD=qo0Mqs<4CY8x!1y}I^B*zson zZ=W#*KoX!B5NjXKn>DGK+nc|)&7l-h&z1Jhx$M&(d~BX=td}2ilZykfRsDlVWHuy9ziSVUt4eSw^n;Oc(z?Pnh=+J-V@^5S` zRM2u0HHuC3cxU{2Xau73CiM#*I|1zEr6UUGBre08G6*whPo)X%LdZPvAx(sYYA79Of)CwumH!~82`mRW)4-(8 zL<@A9Ftp_w{j*9rlNSu#o^fED*@o(boBFk}fGVGi4S*i(ku81LFnS54CkZxcSEYVU zapVQw_$0$K zw2fUJi8Ho|EkM~8?PQyBqiR(9=>S<4i2|x-;gE&yc*jMk~&i3f}~@lWeK>HCED^Lf($M}PeDj~9LGHyy9x zpO{{I^v%ate9hPQ-!^?ci)~qKmk;Wj3lGq+Nz>J9N7fID{Waig*b0Hid+}V8nfeG8wBCQhweSe)XXE8=ldCg&CTcES& zF@3{>(}{8P39tIO;O9&vfz8R=JY_{$xrmvCol5wJJ<2Pl^EP(snc~8e7{2zjKK%Kr zgVEg0^v!lhY~-;oWIoI}J)&goY`Z8~C}byG98fS$hPVEXT*oqIvk-HhF*#~aI~Ru9 z_Of&#Blg;CTdmV<`$Z136SDqfU*TuYT>xlLRqi=MXcM%P2<7qr&hd3G{PN@R_uqGX z^$Wi0c-^aii|g#`$FK3vxbNX9(`$Sipsa?yaWJ1okN%b1?CM_{L!o|wzWORm@|`Z& z@N@D58qVl@(Xo>(8}lz2>y!nPx^4SDSLAR0>x!)k2Mq|T1b+3AV-rAZ?X(WQQy-V5 zlNuFPRi9lY!c;GOLBle zidvWWw58<))o*MV&?c)@Gt6SoX6s3XV4skPj&e?HkHIiM%JFFS0%}ft>UHyzvb(i# z;DlY@%Z=<6TiQq{Qdd(hSX*tj+7m-#wGGN^j|D)5vZE0^aqTlByD>c4?YwE@tv(Ge z3}bq{e*6)-$Br{p#9BRN_UFg&Y?#`aIvmS48THNaQ3LaZopi+{g@q3i0IepxRT+K7 zMy7b+N4Ud%Ow}C2QdxPGj|uXhM|kw5%kg%!!YO^v8db%y;U7Tiz*Gra`Bj;CQg5bB zd&?6t0NM$Ddzqp0JAT72+p_C1eb=OC^V~5{C+UNI!M?ov^R(lPB>}-Pm`P(p?rYAd zLErSJ%!o;UwSRKl-0vwxsTxUp>SuWehNms#KgTuf>%w4UOkf($IhOOgxo}0EamsuO%XZQpzGY_Ojpre4ck@_(rvIsI?CE{^ z=7sgZ*p{YE|LY6f7PqYMuBmwu7;TF|X%SP}G)ys}^62yijS=Y*OqnxK zc(SD&wuWzx_^Lr4gvoy61$+z66uN1hp&a19b)#P+^v{0owBZM*?!PNA~#o7#y3u`ynr z3){?D^=LO(dn~pMjh9y&5V3Lc!oCEnZb8c`>63eJ!1e844V4u=J)9FRu?MTMNTue3Jo>-vsQoj5dhr&& z_2~@Ocwmd;wUQcDpBAzNt1Zk8XSLc^u2>Y*?v$g$juaIF8x8H^#s*1PF8JD8emZBs zBA251if5O6_buBze4{EY0tr0Z+ItW(+q>sGHEa)M!${KkgghPla@VJL5rn^))~ zuYKJ^$1nfNFLH0xHv{mRQvIV%O_FW9W?9B`Lr5Jt!Fi`eOKB%Zc6q!pMr{TYo3eMc zL+!3EVkEv>b7Ay0<{8m^1S7wV`-%}5m64mCCmqVtH?hlwr4w*5Y76;1))8_{+w_;6 z)z*ont!|w+7Or&3o@ZJ@i+AjzCgFXRrLJg@>ksHLU+fE~c^^3P_@};dShMJ3W0v_d zby`zSyLSv^(L4SOvW|+d6Ue2>kpx$}QSQ)~x!qmml9acbwU1&ZH2IU5d8U#HMrgNx3d>G>5ko_La zBsUNgeL1E%ErlN+c;b1PygNWLVjCb9sI$phHRO&N{MW$rID45qk?k& z^$Q(;EQ4YD8Cxxre@>1FOXj0V5*V-!IG?!;L74`<3_yNi%_6{LQ&}Ez3c>S~+rKe+RM_<(qrd`wkrxP>itPUs*=3*$8hX5A8*vCJ02I_7UQtRdkQeUY^ zZm4kaJ8kD&(WjD~1h^>KYc}XW-~7#AdwkD#ecN#_^}qR=*BnoJ!u<_M_BUSv)8aHY z(ZdE-+l;#M)o&r6=2LaxGVoz{CbtsO6{i4)pPexXQ-n z6uZeG^$%Z=ebn|@!eN5}`@MlJf8!vu-M=73ckkw|_&Z2+U_UT-u-l*br~ML85uK=9 zlB>oSLm-gk=OF*W6x2F!t-zoex1doaa$|*6R5(u620n1%f1-uM{uj0|4Gy-KlR1(6 zw2yAxV>_Iu_R&98Yl&m2v0RRYFc&MtS9R2pHZglRaicKlm7MW8wU7KI1$F?SuJ9>0 zrVOY^ftsJ^F;!;yrdV8N&ZyH&rIwM6LFSq#q(IcIMg)sl07wu>wYyD@Sm4)OLsr~0 zG~u-@07&A6H6$6yYEx7N)Ga>vDG5INJ?_%^B3v5|Q{C z+1_4^d6UuCkNur5`@-WRKk6fn5BuN`IlkjNUwpjd6CXIPb5-H!?YsQFpbG$Lb-UF* zsb2}k&Iyn~C=S^tun`I*Wc9 zAt=!BVAH`Hn=8NtpK7OMfs&h&yA9)z$lX2LHcC^BXY*2Keswlmi6 zZ;_=X9!HVE4_m?V#3ME;<()h-b`U1OHL(MOJ_l7vA&*iS&)6u2_Bg)J#cDP!SsCZX zlQ|Eb5P?pg>=+=I75!(&>I_%f?l>^X*SV2`+}Wms<_5g>t6-~Hj+zAVs&eY%(T-~P zv|zhTH0BUo5tP>c)5Wevn2+qHt;UY@hoU*lHhKC{fhFx9S+x~!^+=P0K5D)C-10JC zm2+80o5f9JA^-qD07*naR2Q=)ilWZbHIxFG{4_S!_Gt`Z-jSG+`65|NxSTJ>+~}4r z8LCrfZJ|->6M4%TCCJE%r9C}>gSOkPo@~FjeF`ctf1}^BpjhbMF>3`yUA2PFCNy{z zp*Z$CWYj>1iAw>4e=h39 zm7))sy8*;W>Nk~E7l)ArpM zNyA4ph_hp1i+`MluioQ=KK0oChj08p23D?a2H4Ur@Ly*k#%YM(uzxy z1^#)0_T28Nbn7W&y#2qelfDadon1yJIQ+9376&<`Xk1O*#x-f^vu!T1+EbQVcU)_c zuUA=kOdC3HH7>mKt5WS`o?n}TBbO!rxi(Sbbr%8e9B;wKc@+$HYoGZ2=`L+*8yGMAa^E=szFM384Sux6 zu|VI7kzb)*{QeIjYyB}t@*m9B8MVtA7f~G>uvz?hXEPj-yk%q`vej?ni@EO;r?9TP za|{v%m-sCIp!h_(o3BMAfW_NywMaIr%yS}*K9NQjCPPOP=9>X$9J_#2UO?BN8MDx1 zz5>yWI^tCRcpYnh6#I;RPJ8%mUtf*FyIv62R(@!Vo=gYvf^#*#jcZ@>RjsP=ZL7X6 z$Lq*!XIEbEA*r#H1z7XS|33w!mQk?CL4U?%;;T2Ud&?jeEcQuny19_+I1?`3IG?+9 zO;AwK=RDK7tP~g6?f-rwMSbS6Hvn#OM`DkMDsUX}e{^Z5aWby+jRyTBzSfy9*mBDU zRm8K54(GJyfQy}al1J0|D5J+VGe|CS@}t*&7B}TM(m~X+(@x@K+-qkV*7kSo*Dsi^ z_evYXOoc>%yiwMjK@P)*&-nO_IOpHv`}N}DH>J%<&yU)mAH@|eZ`2Tq;;6Mgn1*AN z(5nn~*yf(c&1q@6+SC5Fg>iC$-Zwf}rba?P=SIB!o|m^mzex=I zhVo_I=352Yc!#mUn}7ZvJ$(|xfA+PnTb!G^HFlGu&7E#v@1~wQZYsyQ?E0-ok1LOR z9P-moZ(P5@O+l}dvx>dSJVb}#rEELfzYLgOsmdI|{Aj1OHQUdaC=Z@MS~`F-Qvq&c z5`ng_sdeUu1D7bAaeDxdWw-JOTKLx4kQ`)+OzEd0Igin0r7{6dm4HQ1Y#79?TDrmJ zC>=w^KKQ_?Cf_YlU^m<HL$`;vTdlKo z>!h7*<&N+&ZXb=Y{HdkR>d8BF1_*(zxoW_Rm)x`OB|!bO3DWWSp-n@VNs5HlqM-9M9E#cf!>G2><*zA8lJ1kwpZ`#DxHQ1uRWNe3}oks1F}qnYuE)ZIdZ ztpAIDPHbW-r>TQ;o<$L%YpnIis$Vh&Onj&PjBhy+kUS?wnW>YXBIVh(&J{n%#V3~0 zvtzpi*lk(0k)PPr0+V(ZdsxtMo}1Wh{v;`nNOm-sJWxi8hRMp_Tyw9nzI*Q~6ZD54 zewg#>_2XXNwZ|!w6X#429JGBZKo3mZE?g{^j5}s(7~iL9;Z7g*w8tqf$lKny&6nFPd|7_zp86#2KLP4X<^Df!4M?rp3Je6v2C1A^G>{mJf9e( zxPs*sh725^*0Jk^wRqaetqtsZ#n*J&bnp81#se-*8=V+WKc59kXkssc%;zkqpG`if zFb=luSY%#0dA`N}Vu0oZ-t(6RnyZYSzO|LnkTeKRf$P7ART?UMm(kL*k~tuK_r%yf9+H&Xsc-<$4P<8+!G2i8NuS8q_BVxgS=+h-e$MKInA zyBry$;yksqwOHeugu!@}ZA!uB$$6pp9L^q~p%iD~UL zRfAh5+IGtMA;kDF3bhlD6{lX7`A6`JAHBHT`J}N=pU~A)HZboz-?C$yINGlsdIQCo zXAHhdoJTlf$i)#j<~`BYPkxkLMjNW=%5`40zW8uVUDtB>Al?=Qz+`lYgal@LKM+vA z?KqXxF%D=C)jcr_KU| z-7-)#NrF22aGwXrHZL99hEJYB^3%wT!L!)!q1ZEq%*94yvck&;_0)E1!L~x85apA- zltr$cG7P`eCQkxO5!5j}D})&A;Pgp?G|JNW^P`y5f2qt1v%z9XnP+_PON)5k8KaSv zUq1f8X=f)fKl{OMiSf%b_|~b@L*e44tbdIou)2kg?BuRCTMyl&WAk%-Fb)8jNAe7l zT85`K9vqdb&qZKcDHLQJbJ8bZF@~0b8m5u#*~yeYCa+rP8C6Wts-8*)j}rKNqR&wKf1Z#8cIgIDy6vHt+Gr%ZpbS@E z;N{P&gwAcuX>1y?^DB+^K#0n!&+7?e?xL6NjDRiExs8%B%wFsoub{1!$MHj679I70 z7`fO#b7u9Ti#ZpXuoF6Z=4o-`%0jBIWOOl`g{u}J(Pi9{ba2-ADATICVbnY&ni@CN zNl;u|)@p6-SP0~cRWZr^>=ANa`-MHs0cVi_Fn`JCVy901Fc!*lY_6JnG8&_a1&5$E z&zIL)eZ(&3hRV1;sEpSI{1R>B?Gv~9B<{51j{lth$KE-=%)d#stsHlHe!GR@iG!oY z#cu8tW%P0R-vx=5nM|}&p=42)cGLGW;yvNjICxwgU+uU1jJEC^@Z4w{-Ez^eSi5L% z>k}jXT#mHuFVdd=Ke5ZkURR{Ov{RoqHoOVa6kYpOz;9zRyv0RE^{~rqb5cIH z0H-~>nWBEGW^_Ra!EVg5_uK1ySqfWtV!v06nfr_;*jxKylQ&e)xJlJ0w*6NhKW1Zk zfxWEL*l-QWtMu7>@45fDaqW@LHRgeh=>I|K>2zY#7^XSfY_KZJ3r6c>_7ODK22c&S zIVzu`72sbG?T1dyBF-FB*|FJU<8NN-fj^D~wu=oJ8fEqjXp19*RDMeKnqUkNS{szc=x%UwG!MZb1)j*t+k#@KVzjA8 z)k~ke`~?T!7<>2LO7*xWZrCC(>B%v&?A4>~gDamR;7hQMKjq!Wq`($tUmnY=j;v%q zU^1>U^^RFW@|QhUad2YAhRH9DqyKt-poa~9+M&BmOaP&byr1Zv_Q|-ZqL|zHs(s** ztaUf`jj_tdWQ?|PgQ}K*&JCRKrV%*V#dgC8`+@Vr^4b6!ch0A0b;t}QSTJg^Iblb( zEK#FOnofx9O=byO%Nxz@l&fyEkJ@L?mo#;oNfD$EvHFDsB(`@!>WJiG4}FGd|H)$74H_ zr6H}vwHE%trQjyOG!fiNtH*GU9#QnE_I4kS7;tVQaB`mR5+8Y!OevKKt}yhu^CXSU z_^}&^amMIao1c&jdxMiUZA|<$2RvyuNCh``Y49;^o1Kqp4&(FU2vnhvyV zVmIx$C-qt>ul>S{$Koz6rR+&4ZwlFtO@`Uupi|3#iGPrDi$%FE(8y6QaOBww>q6v( zO6r^us8{D$sNc$9d5S8d^4r4c2NMg>)p>NB@dKzFCK!Bu4-A zJ&`#sXnl}EGnuJ>4Jw}&#E{#*L_QNv4)dwDPpKHTrGc_g`V^P>=luF|vl{$J2~%c@UcBm4!LXr_ zYp`~|#xjU();SSjuih1N?f1~yE_PQrOsJg*v`;zg=z?3>_*RZt76+b8s8&xl_ME6~ zK`EML{N}`s@fe}aGuo)e{FwaT2tsZf>PtX%LIxAW>Wo=Wvlus>Vyl+&=z>7rcL4{3 z_W0v)Eg!+LkS)v7jsudD{Att4805$9c4)BRuXXvv9$#1Ub6~t2mB!|~F_g1^^vVJL zw}U~_FBO>@LMpGmR9nO0ECxUshS3F&k`ZBYystw07UqtwT;^*xlIU1(M1qg07YQ$~!#>t6Y{WUl=hhP+83KX>91Um@oLb zf~$VLZhWQGh5m@^Js3n?{}yh3>Z4;gKW!d6cB zo$Rq?&Ohig--^HTc^2x$I{fGi4W98l=y^>V;0Ud0^V(jiB zjn9RK%EmaPB-uNd;toLSj~Q-DxOv? zd`j7kl=eDaYQ@|%kWU|=;Bd&vE*&ULdiM=1*cabnQd#|K69bWC4X+k{z;H3C_!m&= z$|YF|OCgM`p=)l5f3*d^nSZv;$VgRI8S9p<9M8=$6e5#9>Fp4bOL{uADzLgMF|FKsX+DBaT$$n8RDmm{mZZHw7UR$9( zo-fpZaQOK&%4##~0F-qs7#WY$le9)we-|z8-L_N$AjUjt$^t73TfPG5jgLHfyyn%f zIjmMQMzONcxF1p!gvCXHm1$WWMp~S^MRXKh%r?HQ%c%*=Z9v9g4$1zoX`}I4{ z#fmWW9<5W3e&GUST~Vy!U_8*G-;Pi6c|LJ<>!$g|9sw8s=Bg))w5k|S_9LgZSy8TT zzC}pLiLv-*^R&HlD|E2f=|y!nidBOPcVC| zY;$&v2H)3MbQ4CInhmtMgTgi4#9{g!Wmzt1<(y9$#;}{1%tTyA@Q+1Aj=k>7KO0GR z(A#*(;pB<->mz^IVhr*l^DR#uJM^KLUupi6V=UnSy;fqhez#a+h@euH?&{++S6nnD z4!6%{EYdFWsxau6ZEFi?x3R|N^r3;71aZGg9=S+8I#qI;3BVaQzl>>ZG1Wfrj^m9dd}@~=Fw&OFfAVvfRM z>CQN=d@x_}>!K^6F4ho_&eYg{$9I^k4|&@`CCyyG)pq+!H!&L z^6AU?=z}dFM!R^4|D!_O)$gm*v=|lXC>30!b37m(^Zz=OGjHL8(S30-Km2CKYX3k$ zCcVe@63)C=F(l+1;hewkxz7dihO0%D7dsiXsBcW5Q~S*&jO7=g@{jf;#EwZW#@EyV>@b5H!nFq?y9^9NUHsSfO8FndKUU!3!T%vuH_q^BtInXZr^_tC_ zFc^yfmT_>=_ANf}fNx)!Z?|}!0EGN_`zQa2^@$g6)f#CZw)I!+!;(Wx_PXgl`=ORt=mNjF zmLz^AZiBBL%}PafQEy&qv%g|$-&|O8JT{ec>Y+}3^2ru{vJ-1*X;98Gd#i<&KH~!f z@}M<1l-BR7A3TsSq=>+#|J%et5wCL)hb^m^Bl2;)W8N#|AWRb&lck^?Z3>3Iof~IA zIhR)e%ab>kwf*EbNBYKZJgwDOpHE6zf2!qpcP_* z$740iS36=z6yRnIaUaSks}e1$L(Tp!M9{J?i5`eQK8NYA-|2S3qg*tinyhQ{a|RW z2OU+nO4RGDDBw%vPd0Tp;3URJgHQG9_tY=z)W=hC1x#fI&53cybMmY#us&2}85y`r z68x_L1fYrcdQ+*ultvH2vN{OaR;He9;)%|fh?_}UCcfS2Hk7jB$h~x>#t$}h zhA+|>5!b|HWN=l+Q@uxS#=|EReD|UqaO~nHKodO;Uz0UXns!dxrC~!mivbv#k$lQI zm^Kq{^@!^A8%y)0Hc>x#$x}8k&VP-!*fXf0tv*{18hIxelR`~ZsXR(%u(V>vKVD8GSOeA$^H+r*MBIj7j*^G?V zCqmWUxA0kT$VHSX+gE`}(Jo-%Z4+B0c6`#%TYjm~dUMx(a%KzuF8UrDAVw?OiO-C8f!mn)QtLPhOpan_kb{PB7El|yCZ(>z z^sM5uZ@wB)#~-VdIq}=~1KxJZfKLC6H=DcqO6GY+naw`x&s;2MuQn-TyUPPb_=QuR zk$z2-HyuWQ)Fp45ve`OlLGm#cQfDk|Gk*x|*uy6P##zoe&%-;$58as7SD>TI*tS6{ z{vJdUdCKNy;~x}h;?G=JhEzt>N6#77r*mp47Y!}SKWD1WBLov?=Gh$9<}NY`fOG6* zTL#ITeoSpY!IFE~6(k>uuQ({*Tpu|5ftABO`4)WS!LBxWF}5C~zWBAND&lNC2h+~> zD*31<0JWnw#7&fAQrl3H^(e-qwig^AXa7##9dZr6>Kdhu4HV63`Fl8l__)OmUr*+W zMOn@2UXf~V{v?jQ+M#q8w6sG<3MDv7b2iftC;G z5wjeTfIXu|RngBa8T@XDP`UF!zg6SMR;|YWuWcF;S!`Vxed`oqNyemMryM9!9M3*} zqldkt*m6NXsqWhlR_hFm`&!9H?#zR13(?{j-{j?WlV90&4oo3+s;4gg)yJd^Cb2Mp zZnO*Q;EX5qH{to1SBt27bj(dOMxyk%w87j<@ohpt!w+&5yRDLOfzpNNRQkc+ZUh-P z9&7;lEsx9>6V)xl)W7qfbU)WW!o#~h_0RV1W?*_J7gDF11wHwk5?is}zjO_P`>yQBJyz5fRRzibPPb&SVK*Ia23jSOr+1((B| z#w2~~yqt`S*s@`J=T=zdUp^|?rk>2TLciSmcRsgMF3}wzYEP_ID36|PtI`v*d6GRb zKDznEBD5;a30?7)S!E77hsI1rZFQGl>4CF7@^rHL1j@YGU`4d^?S^qRU{ zKjBRC?p2XzKK%Wk|Cj&u+yD4K{SV*%=|BIk`AY+Onw$T>{PG`lOAf&2H>3Io(A488 zaX0fSepUF8_`+~ORi29du?!@k$y~i_IAfAe5RC!L#y;LQ4BvW;nqv(W8+BNYDAQgw zUJ@Lz=h^y4AltNaUw=>>m`%0CNwGY2X_-gpkr81SuU*S2z7}h+anP`JIF&gv%PWXwL|v-)qEV_*m!e5+*ZuA?>z&9i1?<1 z*>NlOD8d|E$3kuRmy>*ayY;SX?I1tMGSi>9A-VAj+Tm`ZQYmhBk-0p>&oOJ07%$@t zbt?ET1CBX;+v_(BuqbY9>fh(x!OEmAKQ<&1B+nX3)B z2$n;6+8({ksB6nU8$k45-Ru#w8tyDP=JYS!))|`2u~wltw_8Usv1`4*k*yFS5myt8 zM#18!Hyk&Cv_fttcL5q8?QC6~>Plehqefky2qR#Fpz3*`UM*Q6(2T?ZNVAP~79dM} zmcy(adAgpK)IVH~25u4#HD52Y#^OWY+t9|oQ$ySIK0%iGE(Zw0Rz`dM`nOj=Lo^OqqW}Z-5(9N=H=5!YUF9sWw z+P;z=#%FRTC^(y+w9sxnw2WqJyy(mlrYPBO_GfsEkFpz>J*-DxY=%%At2frdmoaTl zMu8mENMegWDP^G_Pja=fr?``at5~%(551#wi2s z{qsVd6*u+0*+NxkTBu*i3Z+}Dp49kK1>=A^F4j<~-(rQLkLKFxJGP5MFUVZPNAPgv zja}=8ww957E=V=%g}p@039t7+l8q`}@Yq|sfjm{w>R<9O9~hW(;wsl3H5S{=u|QRf z~vs#6el9s()c(v|2T8*4M)Ro}X;`tAF%Y{FBvx^z9FS_yg1Bhj0H0 z|8TWUUv`?4YEX5D>a99bbc*0vQZJ>;qT(z!@X+tlz8PiYV zHB-*RFhZCsFaH@T0MZR#pZxfW&FdbEGd zYvAf3<5eEiHXo443;j4B57$_fxm%lloT8cy?D_R5_KvO3C3Sk8Ge}~s8H)!<*at?V zsp{%PMe772N3-_c1cjLfmoj<1{j4)J>IDq(1TnwqPWqWIYKY@QWvlLFXs}{w2gc4Sw1%(l`p6@t!JAyoZEn3> zr9BvEeRR#cSi%*f$6h->d4bg!i1&et3lsHPJ1j-KhV&^R8l~HOe z5-F#8`>e5}z8%WZKB<7dE>zV2n!!%^HR5z^Y(AyX-azi+Jek)fsi_sj#%Q#>mThJUn{-%Up=tC^=S)6+7jgo6eA$2*V4DTI;nOUMqzU*L)!` zR{T3ByV13vklBVY$7M#3u5TMx;`9clezu92wfSr-E7J0js7%%4H1uygaz{?tezR@! zcD(WqAH%mXdkuIwKFy>3=#7qWsRH=fv-PwMlt`hc|s(Y2Oh4lUT(H%c21)UrkEy=hL6(EKw#%EPn*tCQw)=(NGX z4`Y{ln|R=?>^ zuF=;-IC^gnDxHZ4ul}X(T-CofKaIgYa1(oN*1#0kHh)G66fgHhhDhb!u^5ewIfG$i>ZmEQj#=h5qaun+@`tEc0!kyiDZd zD#3?upONc0(=OHbr3|@h%99+sCl3w<6V6tDYfm0M%kG=oV%dIULq%6DBFIH$^KNIx_nxj)H7al;o5P2Ijj$uaB*>vI!2KDKM@);U}S^Q=7^ByX?nlN zFOCp|pFSM}UJGw-niu_CXvlxT_GkYBC=>pg#ravqd}Bw`#_o*FvwvOdyp+6cuEAC{ z%b!Kd$2+0wBu-2*+`<`(i}%W9XpuK4_53)p8ZtU5ByV%|Ng)GZ~4C}f8wXZ_SZ!I34!_j z^(T5tLIomQ`(~Qq~IVQA=WzyJG_r3U%Dn}tXg7+A8U8T$x zP1Dj^#9@^#Ti%6Y;zciJ-gJYGsoHhg>>Wq8H2>@ixxp#j+U7$L$A?zi?fQP^vYvdY z!r5)bfl?p(d49!F%w7(x30%HtLwEfv02PUqBj@khvqy1bV{^jfIL0nX;eF1BCdk}) zP3E!uA~P3EUh%dHU|y$;d@S2jDmh;e#!m#a3vlu?goKay%I0`y!({j%V{_ z)4QJ1fWMELvBz~iN^>(Snq9DsWqc{eaAfBUrSaL_Da_pj!kqA${s@r>R23RTI^=$5hL_XzQa|! zF0#$o;d~`m-{)Tz*m`rai%H~SZWyQ)dl4}J87$vG^hSuX@#xnh5ZhFxlee6#twF#} z{+9tvQq1O=3MaF0^;6Y6iMgg^V%g`C$NvVhacB9#pang$Vi+GrDv2p)cpmYW|0syh z!@VRdn-v$l4I{N^&$mU|vH4&$rkoJS(dpAfI1JBh`Uv4W?(jsIjvc8B@j28$sZa2f zTte!p&zV5uwTZ1w`EbD?2m422fnx6@1e>!|qlPoMZ`ic+pSkO-rf%(QBUD2KX<2ASd2I>aWeQaK#fyq zT3O3Rfj2ugB80H%^}2EW$fDfE6mkB@6@Cjjef01Cpa1*Y|M`FX?|#984*>olef86~ z|LfoWTde;}rmBBtPtopycVm{SCl7t;p|J|SALu;BO9gdfjgvWJ>@fG`;P}&Az0GC1 z*`(SBOYYin_~~oxw2{vKa*H-}!+@YS?DFpdj?(NLpH|m{tvL!*VC%xH7_2A(4{qZ{ z?K;jFziz})ejGVAPQsi$ju{qkD{19|;x1MTc~zTn7tuD=ASvxemq@YLxIoxnM``9{T6Cvkqo z#cR12>#c*{q#qZ@P3M23x!-1%Gr%-}=iHSPPq#c26dDB15J^>qipa_WxoSNuIqKL- zUd!)g4nA+~RkA#yXD;$D5!YE{Hs)h%*<}eI_BkA*i5~dg2n*rj{<;oEH-4gnN4a$o z{l4X@%qUE5JgM4m;MiiDB{VuJYkb>I#SDnpcqx8_Dw!`^)d}m#MZ%`Ox7RpNHclv7 zGaO^*IfPqdK79%o+hxOHaoa;knA77v<1&I$>H)r(h#~&d>sy)9qiQ_GlyiN_O7uLk zzdUWkQMWCNO7kF4hSvg)YY+LcUF}W=XIbu3r_J@RSXKYx`{oQ^j%6)D^Q@EdL1<#cUm zZi@?W-KVTMHqMSse+org-wT>Ar(#_7Pu{u~czps(Z_qdYxiRQB;?2))&I3lGT9f=$ z8Bl-aXFY%LT$@kYvGFhQe53!HzF2}1QJOU~tKa^av2iJpAL~Lt!9+~nv*<4x(nYQg zx~NeygY2nu>kU`-CH~3BFMXImv!3AMKce+|MooW4#+!8h-wMBV+nVlzNPazc){dqB zK-cl>ZcGk=f{8VrbI@X#; zATud!p>6ZgZ;$&ED9)d*fdTO^aQdke0iD;5AGwv6;Zq~7aq0TnIjd8Dj)j# z8*m)Y4*vb*4Yz;wPaem{GV`FH*jZm|VgLHEl5;kH_6M>1Q(%oJg~kW8JUhqLM%}(L zsTEbA-e~e?B8|^~(rd0U^?j&J{Q1jrJHFlAN1^;Umc`^@Ec*P3|E=)D{k)X_@YfIX zWa_y_Eq`i8J#WULNSS|fD=TUXA*@$VO_T%C;6pu|c7nAzsIgoZ;mxua9zr(3|Dt+w0Sx#9#vW16qv(=ca3teaL_7bzQJunOpZepbNx8&F!>^p+hdhfVPxYfjxuS%eqxOYyaZv91(EO!> z22I9KSq#V)C!Xv3V!hlgY%tDGfvv0>j^UAWC^2{Rgjkk?JS-1_m z>m$nsAS)Yr$#5Jk*Yt_YcvULTaM_f_NEljNgL{9SA!W@i+vq`ip60*5>@vaR^W{wg z&%LhIZXuYLg4*%LFV6A{A9eFXezX;KorftX<<>q`(`NK&AC|t<;UK1MR(K zY(ABEo>fxi+TJevorkfrk-YWcKS$HNYwzLiXKpp-RJ^zHcUq-`C}Hc3UwqrQsr z7MN>@jy|osbrf^4x!lOJiw>0YCKTW{=aJ}uy+601PbaB7Hdu&2 z)1~4_TpW@Q2j3SP3h2X6xhDv1}I8DbFkD&i;{!Net+BS)ZFX+!`mh@`isFwo!97cHL?kldz zQHgB6?OQK6w8;-+Tbqqc+p?61fgh-D3Yom|=Xb7q2)G?od~NxP-FUvxi!Wd7>)c|AvM&$YFN{hNRFFTefuKl$t7KyLjx+;S?mzVykH z6vxGsC@VE3&^#jqZSFg%4cn`#Vt#kUhc;)tLC8JK+)s5A20pj+Y1q~o2B_yt}dhq zz%X4)j23DB-k*tf5=8f{Tg4Vd^W#_*igx{%9}tiUZSWpi+bp?UM(undtU|(KSQa>EW74GEtcWi9W zYimJ+MnxQmXxl!78ct*1xl6TiM9G`SVw%z)3B>yu`tc2ydTrpn^Ak<^vi_OtD5V=P zJKt521lih!hR7#nmQkDTW>PXQ^v=E|~Q9^@|s0_P4-2a~v-^Lir# zzH?TS#;b*VqD=p3^6)IW#Mi!-YXnmpFkLU*S{uGxCM#mO*pB_i6J`9=b2(#&ila1r z2N!~F?p(VP$3!=;-y7wGsv=jfNy8EQ`9XoFZBj_4;5JQ~r-%v>MIqEbCeutPAK_?W zOcWCJ&VR_vk2X0p?``wd%?m)C8e&Vq*w;GEc|@M+?28x7&7)8q4D>1bzX&l!V!s1<^S3$4=kn1CH-(L2)?p z2U;ET7XGvs|7%n)-yQ+AGUW@*`db@S)Z@5S`+NA>$3dKcxBhRPp1lqAq`txa41LIM z{u>P&*k;CSq5bTNLN?^N%@O6x*BqKV^X`#%92cKA;!5}No7n zhP34C5cgj0kKR~A+E4Feh!7! z1&OHA1R1vDt$5IIZg%}Di0cu0y{Ds&+H!%ttDf!})t&df3CxC2dUi!F5WSn0`y#{X zfYATDF?fvnnL?97xnZj(K>*V)(vI$&Q~j)K|Jz3nsUeFz{ie3#PeaM@mluu|+MSBM z|Kui@H!Av>5mZp8Ybo%QSD!B+^IOOYf8^LXiT=}O`bWp8b~bR}u+_KzGgN$g z!?O2I#v?mP6G$B4)%!d0J>Ga^9QJ{nl#D@sq{=lS9}0||fb4^C?!4F+r)GlI-a{Hk zI+)4J^Ix~??IgO+8?)sKyXyd;9j`Fr{}tGGju!cKlUzH;Ek6~azGuWwe~V9>IqJ8F z#dPeeC!X=}bS9LWSPsuG;p9U)ML69cq_)8TALF=~aF%a`xG2uwLd!gP1>#R6{D$P& zy@n~W#TaQ<`xfxNafmTJNIFiebn(IU#WqGQbD$OE0*`J2kz8!%MbFOPjY8EVQ} zljSe%c7oiPldpNa9Qt94>%ec3ZC$tf@voj%$o+z1{pbfn6g@8$2mdhH4FB#cRUPWUWEL#0KE3`T!1I9G7!3=~G<%Mcv20?Z zPwnAi{oT`geN*_2Ax8qrIYSpt^DI8)Pg2z~FnY3aBPRO!p{yTypr0i{=98oGULeb_ zzLM#of}ZL#k4lVUYb>f@AHC&NPAoV(SG+bNIu4CJs-7ohy!gN`QE#5;Z@&5qRkd`i zBVP4QPG^@X_1#CqH~F_&lOiZ@L}P9cbgo9j>&)NCHz^G&SGRC4>ydW!?HTdROdzUF z7WO5|8U`j@kP=P+ZkuRW*ygJ2K(P$YkT_Bg6AbvFtKgEMOq8p4aM*gtiUGP91N#*6#?i#%4E#mr7(# zNMpgb=_rq;g*CPXRLlW~^*X*7^>euLHx6m#s}mx)lF7b(aV=NlrhYj>PkRA`aOURR}SimQ__Weh}}s+=S7Y(*E(X)#~Lq_za}rLOiI z!$Z#-NaUcra$LWIKz{XQXd8RSUt56Rg;s3LA-Yb>ce3il4Bs3PWO+^t3m~*N_!flJ zL{J+PX_`+37la;ss$|*mW^;lVib+j7>ks4R&x{cYzCjkJA%KUSt{!FMMgb&*+Bn{L z)|vS>E9z{awcO%BEb{VC8^?tTjgEzSuR(zZ7Yp6=rCz23yL@Sa%IisEF&8i5CB`~B za8oy)AngLt_#t3_UT%XIr5eA zH8k3>d=O_h+H7{?XzTjP>ay4vMyic|b>y)N&V#izndT;Zi9Jrnr-2A7o7>?A*u~SJ z_31zm!w8KBtNg)?LgSyh`sL4pTSs)wB~?7-PumN7xU}ufnSD)L6BTXeEyI6u*`~{jM<>;V#E%JO+dA$% zl6Sl0wWR`z{y1pz-kez0kNCae!Pdvit){-VzN@3bWKN8C4rsi|Icp5!dn4L446|MWo4@uM!|LoWUJ*sghRd&kaoFp%sa=FxXBl2Y96io45T6nDquy|_FcOc z>iT`#UmUPH$8o-)>{xU#XJV08YUSEBpp`usT8(l_l;u}0u(7{CTMcWIQ{%2i8;p+x zfAr0Zj=>|qw{}cnxsu&em-oiht<50r4ZwM~{ffnDSphCg;QGp=f;?|ewVa&vMs(>4 z&%m+wBHE1bUh?$kunb;aJDsAp@k`EiF1Q_NoQOD;M9C~VzMbD*p4q1CsryE|Zy%=( z6vxFd?sXWLLLVUI`BD4%1Ts~X91Zq^o_ucnQvozrt11ISH+iO+G&Y2MHGu!GdEO{ zlmPT-_h%4eV1633xkUC;p1FW zIv&Q>milBgEtfQOlUY6=MTGI?aQymWlJPkFo2Vf&|85?NXCxj+tC-A(Y}P|Gh+!z^ zOMN$GmEU>DHlaeCE`B!NE{Ca{9*0psJg_b+aYvLn}Wkvr8VEId0vsz<;A$gR%RsHYA2u0 zT{6t60-nvS#q9gUjM=H8Z3QZhb5-qAeT;;XDmefEKmbWZK~%5yfv89WQVp5M`s)1& zWjVSY&T6X5q7Kf4Vrv{2eHe8<^&|GqKVngRK6P2b%!~Nn=SMTSWR4=ORKMn?zURLq z#mQb`s+k5UlPTgy>yIYS3Vo z+1fQpnZ9z(D(~gX6fj6A+wMVBKjN@%eoJkR1j(}ZJ*m{WiWvjq>PX$>R7#XM%FmYa z);_QWVecFxp_rLt`KhCCZ8pRUOA7?`!g2FMw$?*^u#Lm8E2H1qr~eW%#s0ZAw!pM` zXv{hpsqEaXt#WprKY2um-J6?l9v6%85=-aN!Q38(#I^U*5Q2vv*rex0j#`*5*NmNl z^k{>5$$fcj44MOUHsU?5q^wa<9+6>ai%IEd(fVgN=_BS!@pF2X^^LY$+^m^%Iznmp zA?!D~*p}Yx8)1eukN`qTh8%61cK)C?=gDicU(^v5f9ffBvuH_)^LAf+aNhYr2+^Tn z-Y9}gHgv>%&_>j((b*VOPZ_TaRJ#6iJlZ1W3UM;OpEWc%`*sks5Dh^#?o7Aq`D7l% zYfjkAIo*|}7;Q`6y)S!f`L^ns88CLu6=K^LM9_-lHR}Y``5h816u?67GY_!e8ah9I z!BZW_=>?!8L`6*zc_AUwcl@@VxJEXAF3$Sa+_TC0ojZ#a`RHDJOa}Rz6Xm&K*L5P4 z(xT0HkV*+5{%#E%5B2b5TL2Dna6c(?&BQ)i)kH&so%Txft%op>)KZhO&{0*u)*G45 zur$s-<0V%lVRdL316W@gsThVyVdrK=AF%V}A<6Kub)nEUzXbeDEEEie1zIZ+ONu+Dx7%J_`mP7eIUkLN*B(ZN)`#v5u#UF~w zTBt|=oJ}ecFjDeTJu?k?8I+4D#!b|?SX)!%E%SI6y{gE0ylD~M&0{A-{96{J3|rI) z0f)S~psHgF@;6qxkOi>5L_r;CrdwH=h8)p5rumVGE$~vz_s}QRY2#m9 zcFx1uqv}aa3l7TKA?w=|cDAJIGHe`7O&W2g`#w04OHhHJtLei7Lms9@Y4YrqA>?WG z&F;M!P)K`@>{ENjhxR&=PrUxa-+ue$&;D7c z{Qc)spg4EsEPnkr&I=!34p|)T#FFD|RM)@Sj&&ciL~w<4AShP$;1o>_=v`m5whdZm zf5(2Rhi%0ZGdfRh!7<{OU0})X1gOeMskyUcxo@A@0x2)Dj@)u;oL(&24!7Aa$HLaH zn(&ChKr5RgrHy?x3R)WsI)jRP{bjz@A-9#Vb&RE(7II|g(aOTg9y|JOXj(*UQ{klL z~%);=*(#Ww_ zf5@GZymQnWef{KGZQ`P?p$GVF#?{mgi1{h7uW?;fd$r6B2Vwflrpj{Ezj8+}Iv6R@ z*4Oi;P5|f2ikidRP0R+JNvZAeBsNi66DFG#`vxpN^kbea7>uaY=iixx1k$#s>^ajn zr1cNN;P?m82Kl;2n~+t%%40~sb2 zg5KPNfZe3;KjuY(wS}QNS9|&H9 z*1Bg;j;=$()A-|GRe-$)O~x^loKf;PS#w1RM9Z|K0o<1&C|K9E;&N=?Xsp+@>0-r= zg^&ELd#8F4mV7_n(2-5q&H-!717oEt!Dys}S~`wTt(C8>8x~U903r?M@XV4iW{}y} zts6MZv$!hS*V#*rI)gOV$57n*hI&&V>W+#1e(_R)utcEb28?UPj?_^yzxwrb`1`2wVT3!vZQcPx>m$+pJU?7jfOnAzXUsNH_SY|0WGkv~6dXJyuoE7Yc^eI5GzL zI)=mFJ?pMH(?OYB8kP>4Z(-epkqCCi+4(o@XQ*7B)K}m@-ow(rV!wT^zGaWR=#l<% zTt&uPU)pg!OW)k4-tNtHad+Mm;~b=E*XJSp;$Y4hzXM=%!ixOaS9}F+@vA<{yU&Cw z@Qwqgqc&m04L{Q3Wp0Ifcn zLSj9I}N;OH9n6# z#%v|A&275HWM-XL(=F#f_&*}1#KCZa&I*IoY_FeOdmOCrbaTn9cxoQZamO?$FEI49 z;Z_qV?sOs(lL2~m}~9kBeGgZL7#(MdwS+x5ZZ{b zRT~|dstQbYq=544M}^Aq3aGm8rG78{mvdF;V=?PU6%?^ob~Tr!w)oRf8-(8@yPF7J zVPqf=t&{_8C>r*moa3s-b~e;+xlv@FX+ZfMKRP!a{c=*O06Bl_XKb7!VlVHwmaI@C z4Y=@nLc=&e89kY84I(fVp|Q1J3w$}g6}M5Mu6nA>A?dH(a9<-K8p5baO@t7t??L2)?onr9KJ+R?~SmSZ9=f&T>V9k-vf+6A#(8$et|Mv?+F~G<4md)$h0|sY_?>hPNnij>!1iYdvR)+Q7&cY$o| zgRGEh*Txzzu-`6etJAUT;bd5@C-P1aeqw8o%2{OI-_i8`WKqVMy}x1ea{sSrzNueXq8kI1nWk8&`7ew%E$Sk$%~Q|De(%8~iba84{LcWvmU4Fq-r&Wk$a z>3cCnURp#2(?-AMO)aCW7XMPfuFFD>Vno&POWo_5raujG>^C97_Rko9|5tzf_7DH~ z`)_~X^~c}-;oI+j_dC87^jqvrBEE3sn=12!TVDF77SGlFfMhrL4F&^qTOu?vVi`+{ zrvwgHqI=U&>tZxkbyZh2?MxGd)cBXmu+C+D3)MPd*~G*|u?xzDl=gBjKKA8R%D#F` zSNc+2tma$YvH1%hqFC3ac+b{WEoiiLHYn*w$JwMq$s1ujoT6%K^uD2yiZ`9G+Zs>N zH7H&5IohwTGt@|KC**sCUlz;3l6)2UCO%Ln7s zBhT?%=HWApWrsv=+m-r`aj3*=GAOh>2Zq0RWr4FU|~A{MV{j>q#Z z30wBty4s2EQ90i$uhUgZU`y?@G7kM&b6ft(EI4NGfGDA7{OHa{+MWASJJf6h%bmU~ zBE^5_hT<3dcwAiONy*-LXyJo-+M*l`^+pFuVud<>28;2-m!q+p_pyu>yr+kv>eW*T zem=9b(GGTf)u#z6iq6ucen>ABplYpe7C;a? z7MSSYH|6^Gk*>a%K_z#A;g5Ub%`X1GzqGZiTzL zDu$8`9Et`1#dkQ5kr~-JVVLf-Mc%dXdCTpEAcyfE9lK(&i)Lk5d%s}|{e)k6+HbK` zXKEX>-<_k!%@MV%sW*<`TrSh0tZ!WaPC&80CYF~1CbsW)^kiFqwJe%V-qPmW%P&K; z$;I~gGidtnsYB}E#4?KCYAwDo*R$G(zf8E_4ga-CZZ~?*pJM$B99If(@mk<* zjdwXHz&;by5K-2U^7HM`Oi^844eBRQrY7-~_LFlM3hi#p=Lmg-d(&bL8vo@{H4M+$ zkia&O5gUfgs9z6KTVCQ}jGuW#IUeW_tYK$y=Tv)INROfwK<6;^=NIhrofo(SC0}!E zJml8-EbXo53iBd*&pwQEl%En2G&_rgLgJnI)$2wv*WvwDsW`mNW z)aK8Nf{|_wry_QTVNX$JJal3{Y3Ip?yuLX*g5S5ik&9zKd{{9)iQOD9PgWnpGS8jd zeB(oZxy#XaT>P>C53$q0;Ni~3UYo5a%f3`52F`Y1pEI-^pl#k?86T@%&&y9gaMx4T zlD7TG?-C(`ap)&`hlCb##@*fj2l*14+CJSnMBzIbMSc_t z6mZU73aX{Qj)0#6_;en%NUP&qrSk1hFH=siT)B1`y~fJ{t(u|Osx^ab(kq?BBIe9= z1mahGmh3N0n=iTC8rYn`DNQ=*C{$O02)iljq9uv?oyPc_&vX@mM}9q5HJ8;Hit3ok zh=<(n+63{o{IFZM#KX08Rc-VYijl-a!?86cbR0~|$gk1cT0g2~TYi~!n7^OdRi`mg zM`6W0(P`_4o-B)2a>00h)JHW+vrCAPc*1wA(`bPHjC_-M=(a?^^puw3fPvF0_Z*y@Yv(YVZ6e}z~@FgAoTt*_D5 zZkz4;lDEb4kIa0&^+xs94GO0EnVTPzXr3E)fzlco<>o8k^u*j3D#X{8xczoLWf9ym zHAu}AA$T9q8|SnzRi_$?t%cxt?y{N;;WxEYwaupV&(seR*LF}BGE%P!+1s9y@Q6~4q=etRGy2`E7 z)KQb(;P^)P;7qdOSGS;hljCG^YmZQ$;XQqE^>um_;56r55UQ8|9M>E_u(=VhI}V6i=()%0QgvD-19fZF!r^^^Y1q49D7(NC_=cm68N=lsayd>g9^rTyTT z&e(Y&j&>G^&l?TmH_qi?xklp?TO7xxV6xXIm84}vaqe<0I zlJ%om^Mz7goSRDd=XBi9M#fKSm<1K>7v@0g11)uvIjk|H{1m6^I(NfCHv_E7<481z z&dh`4`twyP&2Mze51hgz9&Lhg_c$c;#Gt|DjMmRM>?CKKw(AQiI2U$e^0$bWyI|4k z+aZzCPG8HT{c6OXs6)E8vIeNQ<=c}qHm^@VxPhUEKwaBy6Vo8=bJyY5H;LbTK*f(- z%7r_1^#;%`n84(rt=_|@+*oAqW-r&_R?3x@=0QB#uFo2~msk0Tn>t6p-LoUt9u&C8 zpHA?)V;aNG!R3!uc;`>R zOxZb3m~S4QXxzY%w3|j^rLpx!p%1tHMS(q_0Wt@ecmfG5Z^js<3u!z;u-yj7oA^7) zEKc}}(Qi-(c;DQLtnujE(FDMexAyv0(Y_rf_W8zEd2Y3Je4FQ^AwjExmj|J3tD<w>@=89Q&hQG$-fD(Y{m!t5i1Smz}`U3Jvu zz|IKE32;jlF}ilzEQ)&BoQVyYYfvNhTpLjIoZ_bRUC(W9;YB+d8j~Ievfya4E1mZ- zg2=c~hk&s1aIG;vExTr%!t47i>Bgai(??J`NJu1^5tbrNwrZ%oW6=ZALjA6oV``sjlHpHegI=H zL`Tb2%%s1udq%#YbaQVuQVmWr7MjLEShaPw#T5w0__y z12@}u9ijz~f;{dhV#;e1%o6P(#hWKb}8hEUK(SfG?&6~`(r$DUx zmac8}npVvdLFSV@(ClUgdS6jxJSP`ZD($0~AT%|!l{4+fxn8xO!q)dWL1m%3-WN#u z*qD+V?4_$KUg8Al7%+df!DDj}nXtWLK*hRxFFxu3iYZpul;8L-XTr#Zj3WDX%aam3{d0K&}_BuC0%eVju4((}CkBbxowcwSwa|`mMYj z3JT>-MWd~AC~7NDrHqG)?$GPH%yH$qp-TC5tkQo(4rVxyLxBkf6{~=*U)W(C9eU5@M zfK5$PU=HyIcRx8TpX&3V&2xqH%O$yU4YVG?%kR8&_RCTD>9{ixU+{W7s4IF+o$HiM zgjf#*tPVn38mEe%A#HN$2Bx^a`NC$DG_o&jr_EOw53|`M^zblky%oEBpj~%lSRTw~ z`W)TF*5lZ5&@Pf{jd+^uJer-P5K5lb#&>n>J%7tHcJ?<7{>6vifQ-K)s|6$jioCo4 z{;Us3yH>OX1$CA)ZO_7WTtrk{ce>W2KE(MjAC8Ya1jYKQeQ_F(*vE=-bG^Uywsmi+ zG02Yw_6HbtN^@NY)+gJS^(dp$QjT0!FL$fS8+$j~Rj0nWh|G?|YMZz{FLqc<+;c(- z`Vkcm;`Ewr_eu&1M7-rx2 z3j=vMUmi@G`m?8O>}T1f4}NyzT`sf;%F7sQuR@#WGn!i4QbLEtPDb?uvHOq3%Vv2{ z!2F7GfXlfZ6+e&Oy)i=~zno&AIE; z0&Z(mK5SQkoMER)fkcFe(v3~S(DhlJ?j>k1FW*!O!DIiAs7mwEF}(AAQAS&tI9Rut z!^S#h%A!bM@IedFgdTYid^f#d8Gvj~{w8f>0Wu|FXBQltLx3&AVfG}=DZT)Zt=9yd z0(x68^_^Nt)Lx?bY9iVFw(ppOB<#=)-@q{tM^VE3ZIGHMaox!y>}jn7<89m~9K{Bv z+-W$(j9zjP?~RkHe&iuoCv`q^T@6#_Q5(~Hfq|6XY^u>eSIcYaTA*xb=&(kTsc|0se&CX9P^Q? z>Ow2!c{dHM8K<$>Y*QB#c(TmSf2_Mf4XU}e!5BEGw1sD|8R=U-j1##uPiKOX*|kTv zfJ~owiSY+c)SgI!l}tQ6vV~<#wz@AvsOU$VP;(@`K09eH`co#Xd={Ig z>$0yt%%2MD8y6URC3tpy!-AOOMZMfq7gl+iAGgMzbDe&+%_h^kW-N(s5qWEhu_h+% zUXy49BuL7SP-zV`uy{(k3Ba=&)Js zSaTVpst*Mmop{-Ka8%fa5wg!qIPi^OHyJG0o+d}Ks(u@K#lew|iAsKk+nYdu>@(Bs z`q6nwd~!2R!pniZamMU8DYuCIe5$FAn|t%)3N=ppfB&#hE#*IYUZKI5dc)6g^A_uZ zG(H0wZhN^H50BbtwvX~FPP)tQo1=)j883&=x4#)Xhx}UN;@q{$df`{3>)j!{_>TI3kI;=$cF7>sWFd$@Ba8Q?sX! zCH!4QP-YRsGEPs*8*3;;`&4J0-4;lZieR{?*Kb z+BUZOY+Tp9^=f+g0ap$`cvIBBQo~5gdSWE1)mLj=YilF^4B*^s)Nwh*iPd?8lXI(E+{`gSLR@-&j^NFhC~ zDD?hKba~QdET!H`ohU)tJor+_gZ^4~5Oc0sUd*Tuw$49BZ0^hf`JiEIX&N7_CO!Tf zB5l_kS1i3(l=AsjM}Mss5KCN)QZylOKsa^w;#twZ2irYCgv9OXbXE-1UjoG}qhQ)~k$DKb!-{v$aTO9kTMvm!w*I{M4! zi89Vs74)-lEN0P8dit=be$t=)G$&MaqmT`y_)|2GJe%gVp1x(7^aQwi3Ys(id=sV9 z<8mV`fBo#v0?xj_QUIv_DKed40bYGa@^-%6d04;s>t2-kOc8thqU#qUUs!UHJ21y5f}e+5g&DIN5OV+1;OcTFE6wOaz}Bzg=n>&L3x@} zJ7e1CxSYJiB&tR0+oYhQGu zcMk1dEpAZFp+0@tL1M{+k_);=1@#NY+P#y_zNw=!OzArjG|-iRjZe!6TYPEQi9?i< zpWfqay!DSDlr=3cr>zg8+HZ`hp|eFIKkK>cf`K+FM(TbQGzMBVU0T#g=d(hAL!+Zg zKFuvpKH>#MivirinjKI4yBbhdyjuv|As?NBzYmVp+Dp z7AObwP*{Io3^wD$|Bs@vn)dC=U%4L>b>Xd&M;^teQ^##ruDV&*V43OQZeko7UY>z^8u1zG)?Ij2he)+bpQZ7C&(OJDK;bqf7L7tIDg{ zr3qNpeN$M~c6n8sQ{BlSJ$4keAU6BoHmi)A%a3j43Uf{MA;!yzZ8Nmd&BlitB6avA z4ji4?xc(uoeP-}iPg451@$5(}m+G$R{L_*?>crgoa=zw?en7!8g>s?N=JD$UTMce? zYs=ZiAdix?xDRO|KsG<*u1K!m=J4!_<@qYwaW-H%3CQMG1yV&|OXX|H2XP5sN@#4p zowd4x#$nchB-v0zf4-mYI)1B8JZ#5@V^vmuLuq4Lu^%!s@y1%;x}Fd@ITH?@Zd4xj9j%=tay8)t?8NI|i@u@yN)g-} z_pTGmUOvUpUmNm@>YkW_oC9L6_!AjRh6&6Pz5u3g$ye2Z2*cblI z$rszlCw`u*9L|1M4Di(!U14QeILNHUM%&`P@t1#gKCzRBHeF9qX&f-%l!ZVnjd)|y zL8wYr4ploIi)k9sf9i7BV9uHSogE;p3qse~%m1!9N(v3+Cuifd^(q+rk+al{Lvr>N z2Zs8tP421&VQ&&IPx>}*a@<<0tw}Qq9{B@9-r5#BN9y8dU#D4OQ^;#(Dv5<2F)t@& z@a6z*&Y=`g6(J>hl;b-e1>kNDs(QZB&%0LdLs0oBmqJ+hdS#ttKRb2Qt-ZuikxPAZ zT+5M$Y#jOti5vr^t>R+!Lp8^KlxlMvHdk<9AEwRt?!(~cL+7F37eLpDu50W|OiX3l z1~x@8PqdN9eG1RPPmMxP^)@SP=`DG9_^4fjGPL+HQsT?a9x57mB)2b+D@#XyXvO7X zFvMa`ld|!gl{wN_TZi!Hrr+5HWWH#BjqCCx($K#@##s!uQhYj_4_}<( zb36qW+w;msD#ps_XJ^dA36!0ljivagR5uREU#B_Ww6jmm;I1(>G)c;*`w#q}UZ>XG zXlOi{_kgc&k@wzL%z4CB6{vuJ_K5_yaG=H&Uk;Xys+EAUH}QMVW8~CTeHxyn&PAMB zYaWm|`jn&?9Vc6EjTr@-g%*fcn27yWr2wkr)FXv-SL~+66+Jj;*g3APP_7S%fm{tl z7mLjp-`q<(F4~u^^NX&$FL_#SyLd8;{KAx<>gqwlXcpG|Hy;9^4OipoQB61T58D$v z!XzpaOIlrjo+|PSIk5aD!*63#y>XI_x?vcPPhM|uJ%*lMon^RGjY@9)*la)=bgp1nMLmx3-_ znqS~|gWr7Mw=ro$*Gk4A78dw$UX&KV;zY{=J0G;G?Ot}~ZfhXYV!t(*#y$|$ek?ow z1Anr`l0JEf;r}`)mn{qk;AKmmR8C7xU-NAe<@f0?;#wbLutjBYXmfo6)2z*3u| z2=krCVan|n{;I8g$s+5*Oo|%B2a7Y~WMgUQeK3 z3~F0|*Csf2#EXqS_a0(8W}y^icsQ804yux)3RluG?bmd;L-9^u?Z;OcK~ zD2IuCjMAcXkM0S!?rW~ScJ}u4!xl?R@I7|^vc2oW;S1&K)F@DVe2iBP#LA)J+sNWB zfAwfn*2o;gBWk8DpUQ$BfWEG-efL+zR)~$)^KKz311#R;JRDCKBV0RLk{Zc#nnUx1xcL-dsuH!u*rvVq$L5TE<#0&+{S`ZkHT3y7cp93 z&s9}{u&Ki-u1(DOQKFT;{7H*XP{=+(6}ZmbcHGTh%HNA4V=CFCOv#`fygnpeY-YC2 z#Lj0hwMQ7eEW%R#X(=^+UzNeBE_da{KzvfW@>?t(S=5S6`{r{a&kXQ@Ph3c-@i!Rs z!OJ{pbDDyz-Hv0+r!qGV+PL30pEyELOn?8Yg~?WPrlH8@$+CKsT^QZ`kf40h6esL+ z!2S(hu5hHp=1|?q@|2E)I(ri~E-pxJg`yvw zMSM(&sJuZkfmYs(mFdDXv&OL3D&iQtoB5ER3fQTfYn?q?gp?J}Eba8n+pwEe8Jl`H zbDd2UJ&lAeG%~Nb;^c3eto1Km{v0a=-k(q+vQKP!FTW*Qj>QQJGha)6CVIq0 z6++LKWn%`@4{Vg8p3FHf|Kc@9v#jF=j5<+loGTsw*}k|oo->+3KGZf&v3VJvSaz^S ziK7qC1zwySQ;ew_^TRNnTIV4o`=ZXXg$MeM(v4Jz)4s8aEK1|% ziL~Ew)CU1}lh2%q&#}2Ie}IOoo`N9LsgeSi^0u$+8+G8}#glkmsBSG#J`6uk5!q+2 z))C71-dGS5tT3lio611!T(!|+y)mh7c(YR$7F^`9n8e3E8}p-ocZO=iu*{nk_nQ@z zZG)3NlwC*5#+sqTcs>g!DcRKqSr-=J!6yA&G)@ICTaFQF$cd-+9U}rZdWttDiC&t)SiFwg>L<);KR+mDEYQ#+&a&Nc~^;?Nx@1$ zHtuEjr(+kWi#(s`$*6B(CSRKaXqNs-xh3}J!^Nrd8DitMz1R8Nn_O|&ayDL_-^9|6 zU2`I0D%wZv9nZ#vMjHp09k%EaQ4UInywKq4FXo|3aA<;ja{p!V?1uEq~zgb&B1bGlX0sg@iQL50VDc+8_jl|xej5{D-&}C zPusM8IsR0U*@iq`*cd~4otKf*{&l^hA)7K^6pg*VYlG)qo?b+lnLby*!Vqg`30`xj;q7@%IecS)} zK+Cmy*sRUk+n|;%AO2I0)8mf<+B**-3kP-@W#>^2a3(+fREhH1IEdu~!@fc8+|u^L zXUfM09ab$wXAaP9IW}}PhwB&`e?FFpFe2FqTJdwlI% z&t}QkbSUrh9Ru^iwuCgc;*6e|Gr*=3#ri=`ZeZ+&!EP44U>iC(T7QpA-sm8?X(v|- z?Q`Ktkec!OSBAfO6PZ|SQ??rv_+v8E|LW2xg4pxsQO3xHXONBRTAxp?bms?RauLVl z+wzOfXCsz;m`hA5)7)GjST+6jsfD2^yNWlfO1ka79$$kRk{pip3K3L`yu3+9~ zYWk#RR}M2J_Q!v`bIlHy1Vv{fh``@+azMaIMgMJ=9*HLE!axsz*++K zkNguGd)O@|6}e_v>XE(9c_?y6nb(e2uwRS?q37FNF-N;L07Y2a--jjETLbMY+tM&j zEA~DF>SHt+EJl%LRT!rTzINbhs7~iQs&XqvF{ryG3rAjd5c(IVFl9=m`c7}Ot7i&S zV4IiYq6NP97~XW}yD>zLwQ}oBh`tzZ=0hDhB(u#XZQy2EY}dzSz&4)A)vL}X4h7;Y|Z<>`H3T_a04upl0bjq2&U)gr>eKtQ!-}AGdTwAkxAV4Hr z_WIm=5&PFqHE4VnLVluT3`?xR>QM*>0%CdFJIVDPhxFb8*nmN=f9RaV!6F&V^DwlaHP;y*HJW@I3shx^P;WI zGOs+DV|2~8TYoYn4o}CTcn;QFXd&NpJ>JMu(m)qXIcN?R>`b2=-L~*r;3c?xXzYe) zp#>QB`Ik<7+Vpt$y*pOqv1b@Jn9QgxFxOpuY^_VqA+a_lKn) zb!-)5KGrC|ljrj*k7*gZkL>j|Tl3~(>jdf>W$-g=#UR&#Co9J4%6$d8IK%@Z29$R* z6AtE{ri~NxD~p+W_%PO2{S+!XEL|w7pA8kKn{&mz7B~)-r}exgHzRGv zC?_ko(_Ciu)5^!pzmwX4n=bmbv-`wSzRy$gc?wP3e90qc*w4q~{1+!Nu}jrFy}prc z>lgmD?1ivC6OK}OZJZBZs_(-?{Wpi|$Jh7xCQtq(m7CnUVF8vDN~oSJvw6_GZvsC7 zKD5pwId=T`VUs5ub7+2QWM0_=_L=kTEY^-Z2|LHJHal6P=6$3*AjfXeE7Jxtzj~uV zf8!<_vE2UR->wzAXH-ulp3(bQj0b`tSb z(!}?qgb10a>2c8B?{H|EIt_i2j_fHdmngt`_BG~Hfp`tg_^#Z^yc~$i>pH4U~uMFyy8Hw9>lfW z`o{58kJI!T%kes<1%f`u556p2IM|f+;LpW}Uj+53k}07pNfMyh_59jyFTU;J<&3fk zLvFQpD)vPP9Cw468hX8PsH1llkeMA{ZU;l%d4z|2HB$1YA6;z>+32>T^45yCsB7_c zV$FxD-SD?t<)HQRX+;o}jLio9y-}fh<0~_rsgCB28*SF!3>P76_0kPlY}&!@ybS2@ zFaOMfjr5cE`gW@#*emcISF}JttrR^v_wp&IMBMM3E7tO9&ai~6dCe{L;k)NGGI{LUtnqou_FaK)jxQweh*=-oD5Il9 z|Gj9K7xO7U1ss>$io2df>nL<&x0~SF$X#razr1;uu|6wiMn{+E>B}tJXX0wxwMQnyR!d{?cTO@->pX9k+ic(JtBrM9U59@> zRkvBa3JNIjEH-T|`%_a$goz19^~RGm@YWK6mQR|?g`BbMZj{<=@?v}AqKdrAuQhNf z|AMo^Du0&sXKT)b`5I5M1;6vqvr9ScEyr3D!`$03R2QI#pOPscT>bUUIF9Qkd*rKZ zMjH13ZfwuSakn+tm_YXFU*~cBjXy2;^G`VQuU>bD&JW9-&pwPnj=rq7EeRFBWctFd z$wjT$Q{N0X7T;C8`7UI0Fi_iW9kn?Aj+wx(Y5&WhL?iNly~1d4^IY-Qk%NE`E*P!{72eJib0 zCf^N(EbQN^_@EPwLxRn5{1p@9x2?gjz6l@Q;+6%8-v4q~AIty___IyZ7@gmIr&Nzo zIv?nofjAkU?yXB+L84>64P{(kauY&+Qg%)8unO*H;$$xHx;ld2vdhHj;>EjjkI zY7WFZHHXZNMI6*V9Y=xw%34ln$B9}_ze=?u2pJ#~u&N55mpvATcl_}CPXCH&=7gR2 zVw%Tz9=K&01Z?j*Vr9WAJ^R93PU!o~wIYx_ZT4?#O$K1m)EbXwYd~_Y>owuk<%5M{ z#=b#g7M`qGgRXqWMoD9`{zeAjQke~oDCuBaonF5#B}^EHpT#ge1T!QlhZDqvDi!pI{76CL4AB zrc)~q?FFwB^XU4?DLTCz;|HC-2yK!iuNnt)=$Nqknp?nNuF|He zW27ZXfN-Aws_c-8Q?LPJpQg@xy;y@#f8uiCwXJfQD4zko%^Ly_#^+B)54~u%G|QD{ znWD0O&9^8>Tg$Z$tp!(QqKYFQ4kuZ)1f$Nw6D-B!UikW~`Llc@K@D$rv87 zF5K8^0MkkmWWY!YiyZn22K&{9 z$T(daMEoewG5ZF}{N+hqUiZ{KO#5RQLlRSrOMJ$O16dJ{*!k~KQX6*;`XQJ}3J z9@p+^q3y%&Y@~B|aT)(Ov#0$*?UUEZa+b~fc4vk$VjS;8(ai|^O&1^oy!-%|Gb-*#)$fJSr#)}-D4JZbtu7@|SwRim4W`p?` zCz45s$2Og5=h&v|Ccnm=Bj;i`)s!e3x8u~rz9ym4mnV-GpY27Ayl;ic6@JRq^6@q~ zbg|?($qIqFRlzw#LA!1&pV^S)Y>RE~wPSy;%8JJ%zj0I-yKc17=ldic*^{H`+-h6^ zY0kP)PFZ)o%(W&S%g1*St!d*^B?y(5h>`Q>hhuAASm-QaS~PcqK8McbU-?10)*9`* z;7K(O{l$P@zWWAG>yY&FE2$%fz4OufF(dyQ-;ICD=0rCJt5y)r4~@ZGYi$Z%O!9QR z>bo4C@A+Gs)^6sc>_*Gr@nlmA7X_0uniSaJZ1egsR*B#GypSX(7MclWXSsP4zVkw0 zE9!k68-H+i-i!;n*Dp;gRSB%NY^g)Ea|5~BdJ498PQ>6KUpL2*rPbbXG2Nh=MtzG` zN!7B;C{)nZ|M9Cry-e89-5T1>oAM2=c)Yb`(>####rcxJUjJyx~3FkLI; z-a{L$DjY=Lo};q%eTzvoRYJtCI}XIJ|z2LCGL^n=*T2hq{Ij z%OYE`rMHZ9VW-a1wczvWtziQ$kMRkZ81AS62oZREo!_7Hifv*VpNbp0*}N<^1*SHv z5zsQ+0M0_@TYK;UZs*l0G9M;$Ou3eYuTSuLG+_+R*7eaFLxl;T>f-jMxiPLiFLsU9 zYfoe>Ha7mSHAYq2kBc?C?--PqZepLr7GrWQw3eEn+e$;2;_hWE-53fK8^Y*{UKBc-mP9iat>_2>F^sA~z3iLU5;7i=D z0rUcnc`)Z)hZ(D{;?d_<$#aQgReKp1iW)dC8*-r0c6Z8zZJ*EkYe!`|R6h{opk5x7 z(~zM+6iNpE(B0Z90TtF9cX{YT5lX`T|5Uw+g5)@^EPJMV{{MsD>*bo6gUTF5ghXO- zI6#V0ELl|y%)U0)D7~EGZS^tq{gRGs{pDgUFwV~U>=$K%DqL>P=~~DX4`V#uy?An6 zc**l$K7^R}`p(bl6?5Afvw5`Ofr6=+wxuxGYRV``$!qWNcWo8ldJb1dIeDDj-{@8Y zP7=D#v07w8ACZQ#$^vXdu8jcxgZrR|+sIGXEgl>Wr?o2%`tCnyHIMu*H`kZy<&H{@3pVN{`SLY}94;r6@$nwQxuUoK zF0i3B**S?kV$nsjO>3b|N9Nkt{;b4~Wx{MN#oPQW;{7-!+S%h#+yj=&43{tb_a*+` zpLhCbDnG!B2=VbSl3+W{s+WCUeZ7Ocv!=L+A)(gY{O8+z94Vowi*n){{BxlGwJ9M0 z06+jqL_t)U`S~P2KIUKyoaMLo*s!6Wne%|H`XSku7zbcqCE$HNVbi`F4P&--^c<4y zgu5;o^R|AKcx{E}?`)Sr+!V)a)smw`-`s8eN~Ymr#o_RDKE@>^iV_*QX6+u>J`S9y zy18rq;ro7=IK`9UWgm3==b9H#SUSYUcC600wJ6dLr-PjeYRuWA;6{!QGD z$+QSf^UeKtRDXUgG?^)LYos;?aBckoe;?{f<7X_h#qG}c)(^SJu8qK6DjXZcpUj3` zdA;|TqeC{hu8uRhwAQHxi)REetDiu4X}k5+uH#~LsI_B^jqY8?ct7EIjFUo%aKO!7 zX!3~6;ZXat5L`?2o_WaYGVUbXxp?QoK7Zhv^+5=P! zOyj0Y;MnV@QFGekfXwm3MvQ`&c{pEi(C1=)4SX$)wbP(4zWp+qUQ-uwZZAf53R&y4 zVf&Xqr;qF5S86efsc^NFj=lD@jp%FJbEapWU(&0hHqA9WDm%M5<0R5}WCP^aQ0I6-$Tzf4_ ze#`LU${8#fdDzm4yNe_E{Lh6qSnp(d*4d4W9z*fw{%F-g-QFRlBe#HU6(DT!S2Ne7gAo!ybbNOJu6C3{;0O~`w(Zz3w znQlOA0w#r(cyT;2hKPqSag;k%@S71&%1*f1X^Rru`P)$@jcyEROIN5km~->gU@MtgvtS_G(cJn_aixG;e8IfSu^$Qv_-eE zG0LQqsX~{Hkeh@*Ny|-|zTvW6C%yqe_@*mBkQ<#3uW0d7H7xm;!IZ-XOuicjf7wi* z8on{mVKtN~FGz)Pxm}SpN*6cq--W@k(S92(V>2OIrwFVbV}zZ_*lNRGyo^0p)M`hg zIuMR#8z&<2B%fq~i0e~L{_*yJ|&Cer|vs*is0@nR?Y_i$MsW;Gh z(iPMA8yB&DzO~2P9C%e3akUNh+Thkl7lfVWA9gh2j7Wda!Sab4t>j{Rfh;2pv9XG5 zwPz=IHprB}i+|&7OrC!*AvV2s3unx&FZh(B&NTZFc)BLtrv zy6hRZ9>v?QJC(8(0stEBi_1Y@$9_VLShpNY&zAynfKi#}>9}O9jrKk{zsxoGn}hiw zYBHe1%Du<=*VG`4t)a7HaFA)m(ZwBn=VTMY>5$KAnGCb|8q;}lk#H)SN2!@oFYUE! z4R%a#VyJ90=GxIeyqybGAuHo-UfPB4s~dB|ip9jb(AqgNJ4sX*>_z)<%}X6-dgV#K zS(jj(^^&26uDSNlxcpSrM?4PpwGkvVEwbrPK{YlmgCJ|UeJqe`_+%m&x5FKO-!Q#3 zCLD~kZ%&#U=zBvP3QF1Wf>%-4DQRTmDlPd4l;!d(t_+J-3~SK(FH%8AGuH$}4__8G zrdc&M4n;@2TnBS(ifda}H4DMM2?7`8=@2Ov=h>dz_!>>j9;41WsJ2WNY_E^9oI3NpP0rf zo*pLV+G0V&&hxP;Ha-lBts>1tv%9wf zHNyCvk=H+)8%wh;b7W@_rfoLk`3b^^F?SLI$vk3Q;wk=27t8CU19Y2X9I`~4OqwC# zdBYlRq6}4OdyG!Dn?dtgxzie&{xeZiy1Kg-%OM-qH@_^=otNnpoBX`D?+w2=>9KQs z?1PhiVGyWCCYLKonzhLjeY^p;Srrie>zDO+Empq|hqRYD9|mb$z~#K_5q|n=lHQoN z3LgH%XK*Dy1Of3g54jlAT=2+AF>)`19NkQd4y4E3xbF?E@_s~xZ`KP8pW)pVW%yz> zQLuC__#ltoQyE+UW8&L9+9LMl86C{@jDrrju?x%ol5HmAVBNdxLjJXtU`i@1vW@Y@mp1V{Q5Bus?9|-|>&d|(Y`aYZn zrwlaH+fdrLGn`HMSq^Dh9I{OP(bWQ!yh-LzwUQ0|P-b4KC`gJR@<`i@mf zyzw>OckVQmML&Pxl!0X)F(jB4ZeGhLo3=4f>HI(^g+pr|HPeiZaJDvh*3nws&S2N= zebA3he07t%yyd*UScrNB1By7SC+t)jBRTE2wYGqzQ#I1oIe>v?Ih5V!zk3OkE?{pv zJB?N=>%<0@-iyl~&QdYf!l~QY*9X`d?nKSjZb%rvXx)#y?jrO5UWzJpS|r`D#qr0t zaO0pHpwu(=<+}wQ)?Ua*SxbS15S38}p1I%-| zT8kFan{44@gSjTU`O&NWhy6Hoj1(w<^v#IFsR|`En$2r|#@{sP`Z^4`dk^8i{f`8=`wKHM zDNy#u1yP*z89yuNR^)5KS0{M&1q2JJb#q=-ksCLub!{GfVu{W@0*al7I`Imd#Zl86?{ka@^*txJwW~ zw%_o6a}!x@*MSBTfm{syz2@w%&fUUf-dbJjCx?vhxN~4RdBNKC*=pc}vo$hz@vTR7 zGJYbfpzQ7$M21Y`KaSPTenJ|xRU1oU2s~)71MS8%!v+rAu@U7=(Z1Ra zu=?55pL^Q4>ky9qtFiSP+hJ)Trn^Paa+r$WHonN=Z0zjKLEac`y#HWEUS60suT#=? zz8V;zajZSh{JK88u#qE1=EvJAHeLa=rm&z@UokA(KD!x+!?9~HesLV9Z@n-FYTET3 z|B_&DBQ%|x4Co?@&LB$?XL&d%*f)u+J_ZfcqUX1PJYP+!2)<1V1f7kGixmc_zCvkV zsewjO{EJZ?7T-H)^$s~EGM(+~$%~u0z3D$)_VQ@igX*hSnBo#elQCtDs(PEB|jvkb+*F%L>O9!)6Z`==GKar3}y<6}Ke zV9VNB0}{`=+5_fU`qec}_{~XeibodsnObigHM0%3Elfs2PvNXrbCIJ-?AILH%VB=T zEK+kz$_@$+&My?!tnm{}oCyV_k1sN_Q!X#ToRzcHCy-LJDTEu%okO&`=r_d%7c@C@C6ZM1i_` zK4?-60CWC1l=5g{G(d&QBiqG<4ykGDOo>!8LRQ7 ztype8a*_bD?24-q{TAWFN~yiP^e;Ob7?i<|H0A9{F$?XBgiO?CmQHrIN8foZ*ySB? zu*$Hr?(9CyVj|Pm3zs3SuSe{SqTe><^E7I8Jv;Re>K4h>p-B3H)XfiV=Nk6!ugF>x z^e_H+if3H^Nrz%x-?k)8!?`41Hz~?&AI^S+vF({&enj6x3`lgHtF8iVG}hA5v&3`7 zH(}gB*PX=8?@er)A;EecY^lp)-IVF~tun-EmeTraDR7)<4OH>;o~r39$8nn>v)? zompzJEF`ktylMq-I(GiGk0@WiYrXS77dXgkwP>v%4qj>JQ$*~n<4(kAYS&l~yj%p* zRWsUND#Vb1K1HJc?ys~>&Q2a6Pw=bH zbYbeivwA2{C2xXtUh8OJ_?w=_*H*LqKgzr?E8#12KBEyKmDc(;B`x>4R(+@_~RWm*KZiwVsTz*|=#Vd?di=oDbOG z_|~?GUHR$noXa~7&XJ*U-L>IMd;aOVHt`k0tMQc=-M+BtC}N}4l#oOA&kuY_T4PnX z%uXgxXWJV1FwVvBK5}zQL*!!S!_nM}Pungp&(R*mw)H7&jenNl#>F+#!7?8ZR+#+E zsVQj~6K3;EN>RIq5WE0V(deiD?r#&ZbG>OT$4IE(Uq&CxYGLlZFmmjgr{}-O#Hjzm zK|tGxqNCLuuyy%4r5ZOHtEIl69Zq=8jW(Uc+va!-|Hrc!IOmc2NB1{{+4$jq<2b{- z#>u>luZa`FF|K}(g9@KnP!~H4y6Rr+n4070y5=y6G5c(qH`rs9xR2@R9md8QwSNtb zOmV*?JbeIDK&-#(H@o-+Lwuj$#*0w;`GXg|t?yOj>aLtE@K+y48b?&uvR7YUXQ9|W z#@X>_%rvsDSsR$AxNPOTg_|BSv2hlyanR__7jeRpD{T=x|MsEO&^1@Nziu}^dMvfg z+0Pu^#2CrriVP!%G5&Dsh;ZXF{Rn6yA{f;;^nBAFKMcZL{>&KV$@IQzK(MKcPSn(w z-0FbjcuvP2TP@`pU=8>xR7XS1Mg*N^me3I1^EcO$T4N1WcvSBJ49_{7UX5_ic5&e^ zpzBUtbTTfU0E{=$X@_-oF=-y)r|YXCabxv(NJI|m#g&@6w#n23k(J`^m-C~eVot~_ ziYC*FMFpJq)+nx+bnci&R+o=H7hkpwi+vv3Hb<+jE?%#sX^i|Tpq!O<+@R(K8&`a zdjx=;xhnPCF<&=X@0y_AS+dRXt#6&pNijQdjpgT~E*Sn8K}CM;Y#W1p#+k)T%K>@R z_+B2w#l9b8(zGAOv!U<2oZAl{=a*>}+MTs7E**J>#W<}|%}hy;%`3-4Q_qp{-o3^? z8}Kuz)$Q!&noofx1bC1|JNx2MXK5tI5nJu*=VzNb%Go?p$_vN{pJ!{hlZaV z-z*sn13E>rm8^MeuIxPwwJVS{!PeY03l$WH6?q=wtLJz|(6p%Y!$?;M<)Gtd7oa_5 z?mRI@T%$MrE|~*dFnylAcHTK@M_VlabcsWl#-{1O^>{=9YLEl0PF4h)ov=-AZ6aqu z05&IVZ0yDgR6+`2L3@QShK*dB*o8sVbih=_Z1rIxH$O4-hQm!?_j)(aiCtddvg1<^=eB8Wn}_&x8vDaH zu3yY_S;!e1ErdP@}V?6sYF-go}*gSIVB&36b3SpmyIKON=fws?w6 z&N>%c6JMyaQ<2koiK|GC+FX2P%XPAEjP>oMeAo+(v#Pg|o7>Jn+m00`#h+;xF=dT3 zH$Uk-W3_jT^|2>5wGdNP79evT>f%^6-)rNKt@$=a4yGLp-Wq2vZml&XZ^yB9B03)c zDkia=MBpnK&9&p2P}4QAjNZc$tJwNpbfyeZHa^w2_>1{bsbTJN$JQL!JUXWR(we?G z7y2Bn)0rZtEv@nfUn+EcxyezPHai!Lg%1HbZ!|*Z2RU7zMj=jb?U1#6e)15*eup2q z<971amLu6PApd1;2TrSpJiLk0B(5R;@Ka_q+^`AmRV6htYpYajb@%4zKv#&K_qQY~>w^}q0rl@B5 z7+JFJje!Q7ATjL&ILVu{ZzK-Cf38aq;VR&KMA2NBS!0lmA=IJu37)msFR?H+J~*q7 zzHAnPCuM2#j2=(As)TNxS#1y{?7USkFN`J^2PAx~k}4_Q2+qbmPtWJY+Ey<9GO&&iNGW$iRvD{QkBC&1F3wC3~`k}|(u%gZo0~ed<>A=%IES=-!;rl+} z%J=39{Q{XR+G9%waHVVua()TW`C2f9*p3U40uvA! zUnbBAgOTUiB^yLA0k*#rE;&Huiwip|yu(DentAQNFJTEx}?h%=Pg`2AD zGJbDr>TJ;+eO=7Kje~i{U5Erg&|W+ug^jA~^5)JtUVhlHhD9wufo%A^IOJvxl&D=y z1UM;PzN%+md;#5bg-EW z9cg>6Tw#oF_VVevqIu=eM>|dZho00gUhATE#rIs%Xy)nI<=yzD)w%FesFpLp&a=Lb zfjld2Y#@=Cmw{92xVy4Gd^LTu8oCrwi$KA-U2HKWqI}LJn9y%W1y2*q>(tMC# z=L(f%Uydj`^}RkpY`=)c#sW7f#>W}u)(4@wi^8}&ES+D6DzvswwsgkhjgzqQ z5koF-KE2bn`T$&*@ZjjmGs;khb$u@Jw`8i#Cxy7sX96*El)W62_!P^*h zk6nu#81iTlzIFqK;g{24X{W!h5?GzAaj@(hC+qdh=!~oOz4Xsokb9}4U5&91+b~|= zl%vO|3h0_SJu+0WA0}V>hm-<=+^59!`4kH2^oM-*@OgFei%X=^ zHfQf4?WaDu(DF!gyhiNmY-pT3zr`v45&x+LeIxnMM0+_kKb#`upNRARXZldcJk)q! z{V?>+I;>-?kZqWapT5+ic#efGfVcj{ncc}fWN;$c7|mP)Ft_Hfj>lCO63*AZA{C>B zC`HYc0ejtwF*pUU79pxDfcFRb6Q8lDS>g#!dk8`E)tEqW;e-Z=nW3v5s^9+Xf*FtI6JUuRsf}5Ug6@fOf zTCZ}NRq->wdog0~b09ErS$?=$BXJ{2huF=#yS$r*MRbfbvfo(Oom8H_va+cS^TYMG zE^7vznIUmV2Nc>|iP6HLPK1&~ue{NQwHNenk^WF`fnvv@skg(IPD}TOWSTMpNx7x*bh~pslCA4O|$i z>|;Q%vL`n;JeRh9b|k}O@G;OGHCJX%$Hv|!d6wF-hXpgj+b&RRJG1f$L2^9G|nX~!q<&INam=*wbX@0nNOAkQc*}kBT#B9-VaneN1i7fy}xBfu|y-UW`z7thmo&v_x zfxe6QEw+ozUe1lZ{AiQ&Ta5hjAU3Ex>eKjQUrNb_u?UNQ(MS_J-#F#HOrwvpGgvD7 zvJlIOvL4pL%!eg|sN*Qz|@mD=j$=lGz>1bUS^nH0J3tziXFRug%iD3zI#!(q) zpO4+=EH0gHPB<>i^HDcmyOA&hbor>W>4T~}33z#++pd2uz@{5{_0N>RNsP=MPLRkr z8li^#)7$6i+#XWjl?txD6k`@pPU9i>K zo?gzzTVJ!q{$2Zo^Pl%at|z21u!5I7R&R^3l#L;VtZaLC$kzFX++ypDE_(n&;J6#( z(_vISR37$MvmEhvNHvcG(X`{$xoVzbdXzIZ^y0B~T|b@C5u@hK3CFl4MXJd9vRJ;@ znbkI0>5X$Tog~fHHHG7T9ksaCggV4IBkgxzq)-^|qvS2N_Lgh+8S~q?-)Nhdp&_QE zvgC#z^4E{2rU;5bg3VFE@oP=epIpT$9ddO%UOWd0X6(E|bCBaCsK`$qIO=QtzOh2< zUnlJTfPW4^yKwO*@V+RxIa_qqf#E~zpp!9``p_=*vl^!+5ghfdEF%e$LL8bD>fKZ# zI-8w+X5+@*JUp)Wi14>|)lHk(j-__Fa6t0@tz+kbZtgT>=e%}NA{W@}XQ$T??G>Cdwj5xG9D zqv6n5p2p;*PMQ8ZC%OIw4jLYte;OBrzCL7RZrD1#`in~(nj1GZSU2vS_jU|gFr$ef zwlbTv0b*aj4>VF@tK9IaI5xh-&Gs;@W*N(O=oVsF*sR(J3@esEG&Vf*=%4D>2bJhv zLC0sY_Ff2pVqjQp?CT(&1oh*Au5l%RxrKnNYl5tFTc{dNhx0`4dOyyZYP)k_u{z&V zM06&G|79z<96D!h6S%R_$d`FC_ly(1$F^N*y4D3~p8Mi$^NUWK`GtOY;71Lb=dCZs zH*2@W?uUE0E8CnvE*vB*U$YoN=QKv$%VnSuw(PCBQJO(I6+J{utUG-5)#JwFU274f z)4KB_8}0Nt9ns{*5-6)8(q2=c3@AJL0pMbK_Dj z;_O^5cWp|xBFVpmpsr z)DVxm1}e+U^MD$ua$u?{&3=fW0rPP`N?ctHudTgTX@R;AL^*mMc}br~k<2HhV_+M3 zLDdT?i1Df%zE(?a$Zc^@+^rsZB8s0h>=BH< z{ELC8C8rOC#|HsY2I$WSh5!&5=!;6c1+qh1k_TQlgV~sd|1p8`+|cbqozq*G%l^Wr z=rW;Gjuv75+PFPi6MY5mW~0m)SQFG4UQ*NEV)kJfi$TAL63Akp%vRih+f81=Pmk4% z5lC#?YO+{K&EJJa+<0K;$x45jpz99T>X5z*x;lV3un37|Sys1qaHRo9F5B?A` zBUj^VSiC;D>E@r4VJn}2HHsV2=JTx=D*Viy~ zGd8m2NzZ^7v;YBi(;GY6vJ(>*F|=iSbKeVq+RZcDH!nG{qO7?-I&;*vi$&{z5%4%p zLCZrI_N~Wu*zyxA9Q!`t1&eSnzPf`SrXlV1l%I7r|mel zvxkRy)KINnj7-~A4^4tXLw=cG(qp89Huj9yfr|i^f!TlaccPf48=j``yxW&bhMK?e z{AUS%&L!oGwfa?UM4pp3`&08DN5u&M*Gtwo*Rj26=;z_Inydg*xbBpDb(Vqn78nc;6%w1~PLoyn z>@aQKYGzj1)MnQf8u;iUB~R;UjGKMNF&_@@-@J`fg%v}}J67z*p^U17@h=Gs>6vfi zZADnU$_Xb8EKxh=Z}UK-X## z6S(9*A=W<_5BqX+upf=6yO6@|y-!fq+JdYA1~E7M2{D;(^z4^}m010}->-(+!J%u` zykwNmy7*WR?QaVkBkigM4JmK3(asJZ&L3^utXJ0$1=VLV|Cgs%n|)M<8m>+W74Js@ zrszl%hMZhSjaR0Sa6HpB-ixKIDDp36*()rj=YDH?iaDp<9I)Uyziqo(!cZ#a9)DbH001s)@z>#AiwOO&`^hoQf1kkjE`*v0T1@0`$9yWQx| zABkJ~cxkbinl|PH_Pi*B?1|B}G%WJ85Y8ua0;_wj}D ztM??KtuorLmh=@xMlfIKtWUn}1c&?htQK<-QmJ)pg!I)#{%Qo$ft;Ml-PNb(JTy6^ zK3jKmm5Y=t*tx;xtv1CXmu}eu{N%*--ai*fQEN8zC2WQ z-49!b#d&Lz{*_Jo;V_<&+c~cO(u|`j`FJhSK~`IoY-G*ed<~`ExvnZp+IM8$nPIB) zlN(PqBZ%eL7Y28c1Vt_cJI8d_TK!gY*Is=MDpq09^ZZeR7qd*{j-8Gi$3wsQV_KY<{2AYUsf@+d#WDHYUmfV8VJ~vN zAl6T%H8NIMk)-9IvAORa$4PF_1Gv?cPV5Cz-nKFRxG$qGudd11nrki{X;JK!V=%07 zoRuwIrEq+eT~4VmRoY(~l{a<(snb`e?pJK!|9l!;Y>*Z!TeRBlOG_=$()U_v)0%Im zQ*QZNzZY+qV z5s<#$KDZHYoU|}6!+txP`B%c!padZfIK3J$%yb35_93nn!DW%m- zZi9=XSdK|6riOcV?rDd0_dRMiy)bEOJTOm=t$}n(&(4Y2(qwQ+ z^K1Y~!lu){i;T9QmW;e&aXBjg7Bb1R$i0iHcf;cCGkdXUW0P4I_+g3BWWP9ZU}u$_PJ(>7`z9y5&A@0d z#y5qa>WDac8X4b~TIzRTzp-|6g4g?1Bp#XJ;h!RTQ|6Uve=>{Ex&mhmpToB~zalXP zDV5Q3lTrC=Nq}l#UfSFh=38(8iNn=%XA#B-U){F|yXbfWt`0^I)PRWiqbK4>Qa=Q2 z@;2N%E#zBV%&J*o#!q|Q@}b>dFy}Bv#y~kd{hTWZ%-XuRohTz+wb;IZ@l%d>dv!$r z8BnDdh_m|5&Q!nESOs2{9m1ZPj`{mQMhNwef90qvpqSQXj7HAB>|B=!XD+&4%mt=Ha6cQYY#OMD zGctPX0&b_ZE2)~|TRk62Jx}ER{B71R^DOY;7!Qusmwc(G55s!#_dMxCs7yo``_)fW z0X*u%)gjEBPj+qcaZZJ+M!bqZ=jtDpwF7clZ0|Lv4X5u-i9Wmx9jluM5kw(RwdLsV zK_?i$(?vpFkZQh*B*8WvB>4`u)f11pD0Uppp)berZJp6qykqc>3&CONT;B9s<1#(2 z7S(=x*K%WE&twXVT#pgOKm2f%qp{5g8$0Ldzw<)O`0OYL*XjM5k~r48m;k`RFPkQK zYlCv0=wc*K!+8g2GARYPj4P1mH#*{)-KvG9fp!<|(1j^RAAo14i#UtvA-$N$#S}tJ z=h;5|Qs(^Fm5avg3{Si29cMt2NxQ0l^G7eDURcAqb$@)q=ErNJbNwk}&a-L*g{|p} zTmFwf_M3;CUj<)|`ZY|%6F*O6H95bnky~MrS6T(wZ@r9Jg|_DLE0GkI4J58@Zbr z>Eo(buhux$#P`O_6!w=$i?;I)V}I~r9l+Ipn|V%LUbMw;JtJCWt0vF>dBIoy+RI&W z^#P@P4dCmxE*KZSBz85_wl4ZYzyrZie(5P2_YCeG0?@%bB@@s2Mp!7aM{tqmijghr8e0*x}TG&s>xTvR=EQYwx|qI}e^kOc!`*l>Lw|-l3f^#-g>MNOrDx!_aa#ctD>i1+vvL$*V=e)l!G|tA}?x~z5Ld9olrzC ztUiPnr~t-Upwg<$2mXFIL+s{|c0|Fp7xTHbxIPXXWzjXm82H~#Y5xsP_Y>Mt zSJ&R=S_35eDv*D51yaQK&vNxoA7Ldgy?sBZYvrKfXHmOfH$WZTn|X7gqh|->t<$|6 z!pV2E-RC#e%B;5eaa8wmbj#CYS}kz$sn44?x$XQO6g;gh^43?6=D|JOAOHEUy%DBW zzAi|BRyTBxouj7s3!#aD-+{ih-8@mXvrnlt-ePW^IVLq<`Tfid+xT{4EHESeJ5Ccx z4vvqID6#c?92NSIyby*iP7O@nJaTReyMH%-oV;fBK0zOqSa|=}m{deWIx6Q-jCHel z|3sYG>VGOz$oSopsYx#YM#U1a4W0N_xnh$icHFfQW9@J&(mb@5QwP1ht~6l|AGH>a zM&}JJ`|~lL2D~y?Lv?9;v(>oJRQk7huxam__+3_vXe*oc}jHpaPyb9Z1VaUhI@rKb)}<&G;dTK@jJ? zbr)jq0n{$8#Zm578u~OZI3f=#URun{g-3b%*3zn+zZRH(^U2>Nn@tHjtvw_Id7YlqPeTZ5f@*r(j9Ek3NZ7s0^%n2=~tu{#XrrjzRK8LuDk=lo5mQ^;VZhTN3&xukTz&1AKD5zqdSj6vJ&x5uTQJ)^lsK#{yz*Q) z!a47^kdEau^uh+XUL4byHgjloMB>t+vMajj1ZCh(f=hp8Uh zKHS1g6eat@0uxO0Z<2sX04>a=8%*ojX*|O&^62Dd{Azw2yqRuF!J}G8!&edYas0fg z^<_3}=1^km>)+Vsr(Q}M%e^U(d%}*j5365E>p!UGjsS8I&ZFx@a{+1S+Z zsohskOVKyyX%@>k;*>8nj~sTnx4s;PMvZ&U*b&!4J*_jyfjW^DL}N!YNBLjrQqr~i!D!1b*GZEGW>R@7PRJ@wjHWiTV`Xb8tkQR2?u zYgb~|j42)G<_GUQTPN`IiXeo}GW^FcEUT%q>EyqEHb6_Pj;Cwiu^Nv@f}^F#F9Xhw zNFcL(Z6htB*|{+lj6@wKrGvosPY%t|@Q<6gKC3wq^(ls&k@rO#GK_WurtN$m_UsKa zCPwTA8XP%^Z~iyc>8=Ld+)=C6gfFi6_!v)4VT#KLMo28R?e09soH+7Iu6t?2Q@MRM zMdiO13NewDuhnM8XpH=Qm(sOO$Kq|g#CUHIgmNCcCTtFFMBh46Sor*Ixy zI%2i17FW2NzanVBW=y}+(6%%^mW09a@Gl)qhFs;nf9mtdQJ=jjrH@|#;59NPAW=>6 z7s9Q-3VT@AR~k{l*khkiNr<}^;_E)vs^x}2skRs2dz{WURp?)=1y{(H-;~W~3R9jc zHfZz3xpjmPjRAFP?uB6ulwSl782NuO`Gu&(?!Ac}B@IG~ZNI&fzl|gDm#$hrFu_9gGqHJN+41~3m(MnKfLL|$ z8;avm%|0->F*1gV41MBQJ~5m-%B^=U#)Y5ULzk2FRq3)!`n%ST)uJ2QS z=7IhWAHFnhMagbcW_mLzOV=t|V!f?e)W?=Q+-4eq244fedSPPMeZH5D>J;d0 zZ;a`%xqfy&gKuq%aVXt?25163(`z?wF`3_C6)2ps=tco+?Jcj;Alb!ZjLPXRDP4|T zOAM;Vm%E<45(~h{jdY@F-7lZkD$>K`BnvvM!xb$~G?cS>-@NVdG@doGrr5Zq@>u>l z(54J}$;EpNd**7t4@R{PUN0Wn83f$DSF&#mMDk2)XLF)2dW^3Vuj2d9$W{V{#&Rq; zp3RL65(Vafgl1O1PhLTg8@2cKCgSF8damv;F&FD_<0Vj^4;7ayTDnzb>lS_z)(;># z8|D3+k>f*I!}$^OqM}F!?3GU;n=!Ec2J##Q(`g&%?G3&POqoHm_nCSVObpts)I1)8%ljzL)6O(2sO!P)!B#e@0rH22=~aeO(yAFh}|Ijw*1X#(Vn z8ExYP$Li+Mi7N2$mYe)0?EY?KG0DhqZDv}nuyy`gX>q$(dHQ!I+oc$kFA}a*`M^U>Xuk7=Gyr3^8t=PeXmca zeb%YG3UBsc+Xv#0<6MsjRY!ZFIG20I{_e=z_BGBfnPj z)dKB4cVja|V_l8|;ChJ+z{U~X9^&h-y+grSX($cl?Sdyxw?ZO^K@Yu;`nEAz@x#e* zC)D*ZtpH-^#O(Hdcfr836Db3bI1hOk8+cN$iaCg*&Yi6m1dR0gHq1Lokb5Gv_;$r9 ztLXyAr?_Pkt|(i~hkt?MF?}~oId?&tM>)iyzIgf=&~3Q|iL4T$ z?*evuFM!7X=B5z(!`u5wkLLQlsn@T`kBvVAkuVsovvid-X8Qh`fSV)E0n-B%y}!D! zrp;~Zq;LQ=H*XXr)S%Xso&6ISUnOg^Lu$FI1G%d4y!Q+?$HqgwwM=G56-=~8JTJA5 zgLZ)OY-c^z(TfMsaB3=D4q<>L2XU=mH(Dagk5?D6`bHCa_BOXpiS4G(<1mTgEv*-A zC7p}dAf_)P*CadWBeR*?wIw5CVbB``{DPhL=GLwaTXU3KQE`upBHEir<5~X5v@w@S z0nRom&`}O?;5P2UU};g#ZkobvUb<$$H5CdDU1y_w2UI$92ye`)WXa?_PI^)b_9}g&fVtG2R#q zbmyslgA-Brb_q*OrGswMRaukba@X;jK}ctTtF^#I85$%z;wtI9>JA-aL$F z+ns9cNM&0$cumUW+BQxZoE1LR^!acM3Y=}&(O%|$U?#pfmFeZMdNx;bQg<0yOE&$L zJ$4^Fx|kT$$c-KT9xuPdVpIt3L~(HKuy(m|{K?^Q)qgowA;zQg0GxhUQclJc%RM=P z=A$u3R=9ZUBY)P-VlS@a(;6lb(~R?YX(6ZH7%YH6*b4R?bbIxE_wP7X=V3Oj=7n+B zE_pP+9NXcQs=qp5v*fQH%l*P>ieKxhHlij&&M_`DzUw{`ALFI9XC(UEblmo0>7T9N zMug*tuMRs8JonHD;LwX;8k$@Z4N7@8P`b-IQ3$j~tz&e!-_1 zqr*ODjyV#_FDlrO7-8ZA2$k&lNF z-5Md`!`WmEvpke5#xn+tY0GLaH(NiE>uHL(ESyE-$4IQeuz+HkJtuD!mWFtYcsNjLJRMC(8j)B(C4Hae~Yz(#mT%w zH9zF04LxvNhnK_qGBll-+6cq3VQ{?Yz4Lj>1&xcw`esNKxUiR~)dFG2Eb{a9T*TrS5aYOUo=c?Xm1d>jjV=@nZHPtze<|!OI0$P2K zStn9SeqB89q3f_DLhHFwH*5`k0p5QQjAvSN8*A(>GTZXE;W=gy{k3y!-L{vT=TP_A8xUgA zx6QUM5Ovo7^O{args~S6eja*p-g;aQn_u;Ad=I}dmY3^-A>scI=Teyi5U)G$tZNaB zN%5)~vaR7bE5pb-Zp_hf&RG(hno;GP5Bu!Z4g7^U zaQM~Hk;c}k>tt*L=rVuZ<(OLC0%e7*z3)Z=eY#}! z05wkZ%B3g(D|OT3$Hp%UHlX6EcBkIakkd|*FRqJgkIdrL$)Znm(Y63Dk}(@cxcuWg zbT`0bVQjXY^flw(9IH$G0I>05VtvgC*>ZVYZ>~-V{A`S42J+R?{Y8 z#WHKuB>X-n$)EG>P&UvK$ty zU(srdeqJ;621TUVa}*;Bxv{wz*7%84{Th1>*f3DLc}I&Fjh`b5xI?iyM;_wwSREYe zjR*UnJhtxPTFt!(l+)zKS&GOFl^2aBkAXm!PqkA|TT>11f@1s#Xf79D`tS&pH&ERK z{ea44r=8evcrGPm1q`mUJl#AJd7Wf& zREn@T=>PHCRy)QzD`&ZQ%^Y>~!>wKK@Hs^9#}~<dbMVv2ABn75s z=2)!@gwcGAu7i6;R&3ME#Jl(frB!3$bcs4CcgP^*Jo< zkGFCx^!xtm5aYxIQ9f7Oep13%(%KYuWXDZu8^FyAe0>w$^&461q&Z^bOVEx5C>osR z^X64}=77x(8>_u3QETk1@^wyh<@6Lt&GifSH~xiE!?S6)A`D;@YAdd0)3BGfIk)isAO-G5yCxg<3yg=g|3?3H|Ug0B;`h zRpOaoJI+V$SvLFNWl78@U;PklO-ClY+MVg|)<;?Dc1CoFJ(r7(QkZ@4 zhoSdyLFlB#9_1E-dDh6!n%kGBxC(dun$6=TC-v0>d(R_j4k`jU3}s%mQ&|K2%S({O zobwPwLaLJ2)vOl$@e9%O&WT}8Vz9~et)aV?Vu>mQ8d066r69>^lM)c0XFI zp#OJAzPk0Vz((1==lA$#Y%p;gkTvOxP5*G;JBquy{E+_RYV?tw3jsZ0|&MWd=4+!TS|cq~!nOFM3xP zY>%%&UlN`+QZ%0{LPPJ+A&?@gROVgQ+9&=%2kuMX zyEz_iX^OoHIsdzk8oF$2IJh*3gIQJfsEc_(#0O_yIb@f$KE_>aYa9vBP$_m_QVCknOFE{uFlU!cXI z5v0d8Fk;f}{)0F-vCL-f>^T7+Cy{o3Qb2Iuj}6P!IpI8D498t-9puD;rkD@ep*CDE zZH(eU%f5WPYh?E{kR+t%hhygW#fd<@*Tg;_-%!YW6^aN!Og(#w1a`4xf)wp zMF7w;PCuIqiMfEvAx){e7_~~XqpVP~NLUMAVVP`tZlY?8dwg4=Oo>ja!AYV?_HOlmxzv1AY-i70Gv6hXwd_|j|xfsESFRx_QSNYW=oi-TH zefGd-<9OQ+sUsd7d*S1}cN_0TG{Cu3zjc&MZ~o;mMSGWKwO+W&r*SY}(d9%#lE5g6 zKaJ|0OiUG5gt=k<;v&d@`CC)X)qY!FhM~WUl!?FitBxM{7|+CuCxSIm_;_Zxwp17|xv=XNMUk z*tJ=y1?i%sQi%t-c&L7f?e&m_bEKk-67AKvUvTHS`KrxUHIccI{1t!WG0va?KVF6Z zcE+NhhcC4J_EitqC*N4CPoNlt>CUk&jC!G-pU3I;MIE;EM?(;FhAswj$5ovA)M8*8 zPf6_x+c?Efy(u|iX|8S4$JHw#I=2PG?)=m#(we_g2s2VUEEO(Mwt znhvyy!!SfSBI|bETqQ?;cD8vbZ`M-h7DoN_q%TP4r>z55TXN@*e6vVnZSv~i+<8C1 zdF#0OXjTj+`9ogKR<~D|A2{W5(skpyDEkVbx*=$;s<4g_mwJrcwUHBg*W{mhfFdv% z;b%P+iO2E%BB}YE1vcTa>u8I;j0oBKIS{=v$GCx%NE%?PpT!B)+y7)6TV*{Ba{mc@oBg(?!ExP*V9Dj05tY> zAB58`MR9mEt*VK9+_e3fHLDX$gTwynH*CiXFJAG`)h&YNreLqe&Hx4Z8dF!h>6V+~ zl8B$odRP<9;y}Z8@oQzfAM$9&i|fWuCfblOb(T_d{X6diN+w(9vzJyk`&(}2H;Fhf zi7dyc8c$%oaApu(^W3bn{7t^|z`8tN#GA*e#qcQLHtqFxUy-#Ds|k@5je*#EowQ|r zczNJCd)shUzlCF{_Dn@%^)K=)&py0i30Ug7&>7y#&T6kMhw!vNB5F*#cqZB_285S{ zKF{E?irZva@DDz3Ekwq^R8Q_-AC%*}3b8Ntc&gw1f$I#4F5(;=R_)$Ri7XIc&ISgJ zo!iJW-*`Z^Z65-f*Nv0wCjM4(x!^C@z0?RQZWw}Mu!!cN!VOE?aj_QQKNSrh5^A2- z9BwA;%E=(u6jRyZ71+s{9(jYldg7^^cbD;hTP#JOZV^1^>|KJ{a>4(f%fXYv4MK$*XU z(6n$T-(1yJd?>KKt7s8v0se3QF@VwKGt7>*0p4{h7zM)da$l4% zmJi$!YmvsC`A(Qzg=lC1oDs0dm`!IW*izAIhV}Gts2(C@ZpM4`(iym>|CDYWZm4d6H_E) z)lhr4x0b1x;qnpNKATHHI)B(tQ&`W->InJ!f^180hGH@4G#sc-dmwlwAJ|~kXmdrt zd2d)7UPEfY>yCCH*g&!~*)2|sDU!q*HuKIv9&9&pjOWDM&=#-|nS^gh^^EFh&e^(fz-|~Ev$w%7+`Vr51d6a-h^!qo#Hg$&-OX-V<#tJL~ z{RyTi6qvTbt@1t?q07I?p!**rJbn?~#8h44G}yX{69ZZGqU}+mE+B{BU|gd8DVjM^ zr(FhVTR8MBr25B?BkfKE@H0WMEHFW5KE5Q}3D%(B*l-rc514LBvH1^!VV%yb8aICo z`MB41w?#lYZc^GwX{@n%rI3Yf>lW#bdDQQheRRji_*R_Doht=Soh#~*T7zvHr{W{q znSdUpCbDqbQOvq2ck>~h4@DuDdv!bF;yipo8#{qCVskF#Nw@RQ`CjaH=m$`2oXt@NJV&HkybmV4uXw`&Y@Zw%yj+_9HnkN|k|x0$;%!C zb^?!VRjy!**^L+miaNh^uFj&xE`cri_>f4oRwQUU53XAZ#ZxGPBHG70(*?uw+0921 zemHfjLT<}(vtu8q3n=c-wfkSLDTNcJfKB zZZ6u{^Blr9cLMgSompW*#r(pU`4$b$jmHAfOlPj%aLcHogsQI(KmN6nA!1vnGb;zmTiz ziic6p`3kex+QiNirq2{bH#$^#Q<9Fu9Q6f^1F>#-ahLY;(oIX3%`q^*8t}(!- z`Gr#M&=VU&i8r-ut&K{$0ky8@ zukrJQRO=_j()Y2gCC8pRg2}m+h;C6|Xw^J=b5vf~YSVpJq2^$I;#Dg=7)UGnu36uQ z{g*eM)xo1HzVl*09@+X($edY25=n@y*c|CLw+On*AYx+q=y~;SRGVu$09&D)0~g0b zxids7r*01?*Z%tD$hQ~fHYir)# zQ-sr;<=R_)k-Xy5Zyhm?X&+`N0;x}GN0Zs_9?;&lm~^d)?$ro1<3ZN*Yor6sZ$9{6 z5}p^01o`wsJ|h=)vF+IMdeORs-)SC+39#GeDQGnS&n)^7lR^6Cigp&y_zfz?9S`{7 zBev{D$3x@rHbpg>)GLkd@A_=$zpu{D06jJE@jeJvq+(`pv1`q+=|#KsqVaS6HMTKx z(>Odmqpm_79X0CP>R(%o{M(`S{6UA1R7B6WwJZN3B6WStyj-n*64;tpy1JRMgM`n*bR<}45ZdvACF zob%!s1MFyU^ctW16Yd;-JmVEZv2k_hxrXnnrJx}19Fzn7eNk*EAIy(zXkaM??f>g_ zgpTKeHk%K8IR5uv|M%}-9Gxu9V~NUBD>fQxb<<$4t{t`Ug`aWV^tbe?jQLKvOyz{3w)tN!!uxu%@0Uj!#uOjy-~Cr@MQHn+&|^a}5?)Uw?(q52(8|g&fD{+_9T%4zQ%}T+)5(0Y#FYvf|S*2M*daM7DftDH79^WYdH?8N`Zu1+wjcg~v${9|P<;xdpM< z<+-En&0CaoYRiGG+YRyUYuJ-WU{tFFD8uZQqc|yDoN;?~pQ!-IBM`Ml{JPm^XK)%V zLb}L1#r!2?{9~KJTa^320_!alR>cJcdxAJ#i+V?8;)-t?9;o&Gj-bA=JlQ;nhUVf@ z@GUYfy!X(-y1O}Kjg+Q})bZLI-1{}D9tezYkQQ&6 z;bLbl{+*~FuG6CZEgRufGi#%ct!ikPAoe!~M98j4!;(1on!gK}ZoMJI*3ix@BW8M0 zKKQA_aPigmU;l$68jh97$|TbwfTK5YN`0g)hOHX;W}ii_(?w=B?&Dc8=i4G>Ts7~G zf4$jC!@dJ)G94}^7b5Gr3qEs0J>%pdXAX@6=CaRAU1Mp_v&`f2>YTT(!W{4Z{WMPQ zRp~JJb~Zok^zK)A1`KL=f-LsNUG@9&ON$70BF)Z=W_4vB|A4cCOw}pRN>nYj7J7dD z(JzH(>*xA9# z(U26LZC`%kBiWaEGGY^6LvJR$IkfW6QFXG7+$SzKloz9+qw8i=*VSw-PTN-9F+Lsg z#os7+sc~Bw@vE?4Sr)qG^KwEcM`h1v4g2y3*`|YcN&c!vrm4?Pn9Qs*T6G3!UCmlv zBBY_C!@clWz0AYhLHOtI-6&TWFb9rSeEeR4g+r&`s_@g-Ci!7xMNI!K#@z9Xf_QnW zpru?1M(HVmX|nA6+QuYHeR5@or@nhrKrSkj84&-Cf%Z9|hc!0NnQdm_8Vqw^4xaI| z$Hui;g04q$LcSX&&ROPf(S-6vXTLgBN?W%Y!`MHCgM=mN{UXSEg=-Qx=tF?=Bch#K zSDo(06Vy88Nt3=e7Ur#7e@*h8e*!(#v01ThY&HBgd8paudSy+7{qY-Wr-+6Z#AfxQ zFDtwZLJZ!VWkdeeP3)`L=YJp`cp2-R&)r`D@ZBGv(QTwKc1R{Lb;J*pqivrVC=WiK zzS+~>v2851v36oOyBl;Sp{Ano-^@WMit8YtMZwOO~IG@aw0Ny^{T$mYt z+k>ztUlqL$h&pdnkVAnCG+fbb((XW1?RxWgvgW?$mG#sVZ;xdnSv`F|{v7wkTc!|q zeHi}ETR(>V;o~~xeE2_q!Ps^g6U0=F@T(wUdoszv6hq=@g!N^3K0gPS_0>gP-uh_C z{t8|!`pT9dHKx~xax}jAMZ5Fd=s@hA6HX9#Rg#N1%@^DC(PA%V<7BPqdEGao?{PTF zvOV9;8-w5La5fj6N!0L-Lj$d&mDz}kuRd+hB_G$XEXJV%U}LryvilL&C!+2E`6B)UNgKgQNWB+&JwVrmi=K&DS5A_z=tgDc_v)IN;&Or?Y~= zV$Qi96aRPKi$)Uv{SZ?dd?B5t4gz}G?`7k8X{FKjwG?G==MueYg;M?dVVy~cr@3>& z>uC2k)d;C`i`@EQErvVORxf?T8c(^AkN(I6wH}*GUXK!Wy_bkF-#ixQ*R^J4%{$JG zC!obM2Bdax>}*6TUXOt4yQU*j5HIgHqPw4C3hF(+PyxjSnWu zCg%R237srcVc7aiMS+D6jn61t$0PtBRlob5p4M-_|A)(`JUIWoHe%xZaxC=Uhr#5n zoR^z(x-S-$zY1^!#owCQjFcF5I4X@-2_W~2sjU$la>lR#=(3^jn&?5EV!1gl%){;Q zt08SeZKuu-afLGbgCzYsKxM`-EaxvclWLfLT<96Me%l{Io3oo_CGVahY!?9`ZPRzP=x#gVghqeLl7(S0_!^f(*;W_;$5< zb!IXZ$otwDoL(k7w}c*dIiO}MbN0EWfA=VkOKXKV=#As9HGrnuyH=`#Id<}=D9$}z zmNb4vK&+7)jfSM0x-!m3l}_Zc|9fN|e68LRs)7;Hc(2orBP_J>6plDkJCJE%P*w*d zQ5`y7@JJU1^lcTprb;U!x=Fid(}1P}xRc64C>u7Nb+4i$d<#$~z@>0^NTVn=L)koa zrU3_dF)RSs7QD$}iwRgZR@{8jYglyYH6U>ZZf{KHGYc0N{B+?Z%-hx;)(lh<(@9rr zII>eBTaTM8v|cS@Vc+_c0#>TYMZU)8*rH%iYm>q9j~im6J8d+z(@!K(I(H}uB2TEr zcnidQk>$X_`0maxz4g=^aW{>P$8pPV7hdO!j|_Fh!7+O`JJJZZ!F%%rJH=<~=v63@ zT0DjsCjhkGBCiA;va3dQGQ2BL`I(km1+c-~>THWiC*JZyb@^(W>}uTNO{B2|$_MkU z{`vfR@*7|DccRmvuk|SoNt+*fSo9$_b(9}U7o1fcUpeuj91g%1Z~9`mc~jJFIf8!7 zP|OrXi;FPjFE}rr;@Ny}`h{u>9I7J->fM}&7_ILy zN1Xm5-#pb?weWE7dJ-OOPlL@5^HyLM#y1zbi2Nta91KJ9tB>vZS-7c;Bahwq($?v7 zq;CaW%K+`1;y5)&1abGuYmUZqgO53{s9E=erJVyCMQv9qurU#}*!tU#KekQ2mrGt+ zuo>GM-u0|#98Dh16T@lYohqx5=GOmWDsO{KK5*ZKR7YNw*jRK0v)1|=cn)wR4sy-i zCVsQ>N#IH_&HS)P+w3|DsBSgvT%c`j;~)On|a{w?n7lnN=lb;;tYpn3uFLq#G z{KisUvnC^4bP{;S`Ua&=e(*JPOxh5#ZR}_;Hhq|#6+S%uaMF40<}_F?@^Ea$2{!6^bpQj8@Hm-)&#v1->L*N*_>tJRW>;p6KE_Vs<`a6c*r()cPa@ha>Kb==R zOHaIFnxj1FbU@{r@BLZ1Qw;4q@2u_E3%s$}LQhv`93CbXgj&t?Y3*^K^~2Vhc>>Qy z3v5CMWOQ~rB^!N|spyHl@f7-E6SMQv!D|4Ot501!)9s3-%IlP2$HNYof%HU7OIy zpT9YYtdX|kXIG7O>K_C$0wlL)*3qMO*gG_>KXOIqSezCOo8u-Pj-qzYBN+p8?7FL+ zehW@hokF$-7esWb+dZ9qHlg<0-v=U2J+$X zxYQRH12K1Ax#nyZ>s}aCCmQonmA`@9l!9oI*~2A!s5Ktkt9 zlQoP^CePGKf>4|0KilIiihztO=C?WdjH|WHD6_0Vyw*Vf@Exe~2ovIdX=e&)h z$vp2pEq-I~r~;5&yi6M}S$?S<#;I3Nd4(cAZF$HCslGnFzVseXUFU{tp`0pBY3zqO zFApP#!T!c9@%TMfp2+D{i)za4{BJ4-8Do^?M`& zFoT_6sQIfT&Q%mI%Cy*PRpesYPgsr00sZEYMYEV$FYwO|1);=;%lkG>u*v`!ERJA& zo82_*#0FS=aU{{Yn?&eX)j`g;%Mez#iy7 zodOrBI1DkU$DPbY?QiRgfn5v6wW~{$jwyXLap5sW6Vx`3{klB9Ty2b1Zeqlfzjp|b z6zsR%AzpD2k7~WUn^>K-_0*o17-rE02#1!)uv}1$Eee~5nwv|L!pnvj)}PlFqwzKN z=0PU2GZyycX!|e?VaL!L8pj-w1~k<4%>@ixy#9z=P9L{2Zfua}D>15SjOrj?#%G1w z(K%)m>ypfWd_}Nu`bjF+g zJ`Aq}TC`c0;@f+h+QY)^Uva|9 zwk*-jyIe8$TZ{2B#}OQWh;lGTTy$$LUCu67x=L9@(({ST>Bdqf2q$s@D?z zcLVnbnRm9!Up#Zv-*$1l2^Ofh(_#P?T9cO(9Q5+lulyn#b)EE|vbvkDPReQ(rLH9~ zmp7dR+4Tl_b4xcdk!!bRaKlq8Fsn~MnbKG04D(1Y?!?U>Ah!Xa}jV-=oWt|0-r_D`x8|!}`%B$Ca*VYJp^gG8YgMl@dxdDuS(_+pEBm<7^ z`p;fmqmHz(oF1!=Z-BMimIwO!!c{~1%+H`5j|(2obHv@b)0lf5#719{7MrF6*V@+C6Q_G0@x-?;4so5-`Kl68J-)um8o4SS37zloHL8o#=Gs(= zj5_DML`kl@VF3@{opIS7g@w=_IRT0RmJh3`wQkK}Kke9JnZ0sj8M>TklxOnGi5i3{ z*2w6ww(e|-cmG@iojm40J{m2K_Uaoqa`D);OQI41Onmc^)4P`Jz5u!PR_)8|@}X5- z@y%og&gldge>E(BS)tY4N9SuT1jbh_kk9S_G#pgg*~Yto*cl(U&eQzaS?@r=uvz_7 zu3k$SZrY%0{f1wVop|1hVk{3|1hB4p80)>6^&LU)bJB!<(_~JqO*nL4!!gX`BF=ja zSvEY3%htTnK&xs`P1~yOwK!lu-dY;hry!vI3|RJ#={rxh{uBUydN}4h5E<#!)AIEm z5DpC?n4;^s%Y!Xs9L&Ss5}l2JyAGsCSB}(q^}(aUpcgolYv)Tl?37)L`(eyREe`Yg zWsj+lo~t|OwN zW8$oPTh~iswf1Vbimj%0eF@^RxHc2+{7+2G=I$J%-Z;8m({9$tmo0g%!I^AdN=P<_ zHe2s;(Mt^Hp>;6>=Y8vv;(O3+^H!()&0G5mP_pM|+dxluM$TJhi_Wq6&oMXo(8j2FW~by`6X-B(f8Pi7B_pP_a8YA( zok(s+6+A`s9H?Gk{AC>p_U6gRTZLihzwQt|GA!w5?wA*KTwWz1o+DaTW%Jc@Nv)r2X5u zVlGZ{an%&^{kG* zO5or*)eorzG?vErWP)rtk!1oapw1ttaBgT?!F4I(kAFBA2x)r}^EOVh3-_+K?`-Ls zeb~kb3jgL^VPwH({-i7V!ow57>inTxo5Ul(@%zA3YRuC$qgq`Krql={?*GzQLv0|}N}zOpio8MwxQhVSxXZxam`;jc?Rjio|1Ic9M9W3-Nn#+90I%)jwf zT@QCFet+Bi0S)gi7XoOD-MG==DXrs*QbDB{nM*DSWW{q$@>t+^k#aKe+Jfj&Lvp%B zT}&T2z8LS1;wwbo1a*#c;SC!+7r-qt_+l3>$4Y?PZqo2=u_%)!wj5U<$(rB(ai#eo znT>JTv@^3Vt}IB_b2lE?ITx%4_^mhE-Xzp(qc(1~F*Tg67S1LLJ1tst%nAQ_n4f)l z5J;+d8pIb;f?m}ZA6fQS;7-iYfN)!&YAF|Eb<-st$&@E%tDpvU*h#^{$Uzx&oR7QN zQ_1EbrAK*bg_~v4ZV{*jWg4+)WGInhA!JwyegaY}EimO9oqmNcjx~z>) zBzDm%PV@5V%i)>8Irhip~t z#G7*>TKgzDC%mBg@?kgZ`N_W)_^^*rOe}Lv(vS!sSQ`*+%K@M>I zs9!vd$*UhYMwtF_iB2(%tc?KU<%(f@8*RYMKY%& zbi^(x1GkUL#66JCdpyJ@PIE>Q$mJx~_vTKsaxm`6%Totz5w6ulLQ>%Il_JW`FR=?4 z{&ugPMl>!*^K-pa!frRd2#YD;Vpi{0t8e|%ccwe1i--ptag|vJub4*hn#Mu7TpjUh zfK6j25w`TUH?TXV!=4&g8(|;K-jI~L&U(Y5LSY~8Rl2q9Ig5?W_^bvv-kk9$j{NkU z+_CY^h=2AjI_xwX4=hcbtq|Al1G>cckiT^?+IP)FVBP1Ldz=hV`Y}-ci;eZ-o{DPr zI4_8R;(Wcas`&vK8IyetUO2Y0h)e0-sD0nyAu%ob!37SxR*B?^uvQvT|LY_NBzOF-A&nMTfA48 z=|z!?cIPLqE}i>8c%GFSvPQx6@-P~F{5y}3Io_>rVJ#P(f8*LLH`n0)R7}C{nx?G* z%#(v&ks(fVOMFchy;c?oyZ7TLowi`!9Cgf0e|3_3zY**FHDP>2*0uA+`&w+gF7bp8 zIyqs`8+}{~ME})Gz6UfP35R2@Xo%GjtKBy^Sc{`4>{fpx-}P_TLd+}~cw5sjg-G>} zmvPWr8%W62`43yTYKP9=7I8WeT|P9YkNM%_pU005L0h%51%@!<)-69U4o^PTDXm50 z`PYB_z~qlUQ0ZHoT$}&%=DWZ4iS_2Z>*jcum*=uCWl{sIu@ICx8KkxF{QF=(2H?axcCKf$Fp?6k-Z$>mqM~cDc}5wO&vY7T z%MphjV$j{66hrM8%in0(P;2KA4>!kBj4{-X2R@F7xaQIqeZ)P}p<#hQltUU1eZX&O zg@%?K#IdkN)Ra9#n+!X0-Py5VJ;cb`OEgCqOESX!k1NW`Y?mjw;(6 zd;iItPlMnezX)m#mi*1H*%L}y*>aFTIq&~Z$xpooMB?Zg9xwQb>eiWi_X(~?t^KOt zISbsyv2z^s^Slx(D{Cf;i&cyWZJhtiYB|fraS7X9c7eyW4}1^5=>vqZycFos#Bgz#Jc6(X^3L9ow~cwY0p15iI0 ziQ->JKP=<#eUAKpeprNZ4+DuWFZKnt>&93(j*THW&a*du%||`Nul_pNAI_DBn1ESO z!R47^x!U|0%e%&6?)>Qs$2bXZL3SOK!KQZe3uS9KLbEYX3uci6hqhLZE-}~O;w2?fG_su?|$Pl zzV;1hO@zMW>x;2C$hFJGb!cxOc4!;ON`;Duf+Rkt|>S^KVvD{aT$;Hkq&nWc`TZP))@r{WFt29T|>S;_? zm^c=KiR2HIR$uMUj^iGS*-sD+CzMAUzS!)$kNdRwD%p9<*jp4{Rn$rB)7aL#L46pU zJBRy88gpmoFc$pA5R9;mrQW?}v?#qnlC^de)C+#1#WCNwV2a}|NEa)Ga)7kUZ*i;Z zpz~L$+ReXuD7gKl?Rjy01JR0V8P{>aFkjkzFk7EmiGfWQQa!T0xmS@~51cRRLLjb3 z$8@rM3`ckwIYxVFrxAx-*+m2`O<($Y^aoOU`2)~hj0Cj4>M^)&b4P`clXruIH<5mP zQQ7w&bJsF~T6!_crOJno__S(Vf!POr{#S1y0F zuj_c)K`yQ)!f&I2pz9QPXQt@@RELM3p9$dT8qkL@)fiDg4&?E6u&g1ry9U~KO75Ik zJag5TqYW_yqV4?ZdZkY~eI+6j4%U7yc6iOtF;P?Z{2n_IhL274)KA-Cna|Jq)a_Kb zn|b7h&u;b)n8TL=*YxEeska%=IjEm9cf>%{7S||@qP0qajnpvLbaQOJEnhUBUVGV3 z>se|G>7J`y^#Mue+A6iPYkS;Pw~hoRsw(G|4deLW$j(SzAMH0XvwOd(Vw~@Kpp!8? zu>0Pi8M~URE`SzY_eIrqb$mAZmZfTQ ztll1ZIOkH;*S3j0X-?Jww&93jg3cY}p8x8+tUrRc*fqDQA`GBmqCQu1dcCLWOBUqN zB?hh6t~VEMbefY!Ev)`R@p9hy5`UaEVx!*rS{mc{lD{#$MyQo*_t)4x|K@tB8Xbt&J!kgf7*GXw#hbL-ZvD_gwVO)8f*_!f5WXY5Sy1+ zS}Nmdp8G9Egl;6d56(D#7oFwUT*lAqck4h%Iq7(`mhb3TU8Av&gKapNFLBCQ8s;o+ zGWEG^hpm6gN1rPa^|0bCvfun^%|zn(f0aq89W`{!1n2d~5@g=k&1jr! zDm0+BJa6oi-P&xp)j>YjLUmD8n+w44$ z+}VY%9;J0~qiMWqLr3fN2l6D^+3vcEzjbcSB8Ed+U0e&ZGyZZBw{g&p#~Wr1<*|4; zp?M$XC1uh!k4LdfUDrnYh2FJbQ+3!NmWOBtl8g28`nG#m`jYh=(pEhL$9a8arslxZ zu462j>RRUgs~oX3tpH@{Cs>V@HiEi2Ph8)0FV^Phs=^QABO!n6w8tUTZvRhALs1t`DJa}xa zHCN#kw25mQpC{86iS^k1DGj(Lb5GqGBl#=j1xihK#&);EVwZzT#ue}R5YLdCLtFdx z+MmQcL}OJDT)^CyFR-fC#&&$*hOYArfAgudhKq%DiZ;6)rw4~5#lymxq|3Pt_y7Pv07*naRC@c_ z+SXTjTR}pr>o~o0WTmo(_zKG=Psg_R;~fwEVuz#+56_|QE$HVi1zyU=W0?EHp^p`s z)@y9Ab8~)loim0QpjEGS@>9-l-=Gu4FPw1T`7#jbM(;kq&{e5-p^d1(ZB(EpJ8!J~ zWUq^Yq;OG}ei80s3z))A2*}mIR^ox8G@^P190f@a?iqDZ=07bIu*rwv;$iRAL$>fL z-d%ae?DiG|xjpUN1rV>=l3 zP7iA{c65w&y^h*~>0{p}(uS?VTr3XdTbAnHONAYfnp2=$>@5taD8ZS~a2^cl!;rWB zaF@Q_hSY`^wFJ1K^knn>UNUwrWNn&B<;(?`YDee5a@6kl;%Kvz4lKuSAjpO~11pH( zE|EI%iq~p7E{G-FGlRIq8HZgchCgf!YjAWcVUE`3!*FznP5mNDLRKy;?er7l&RGNM z!8L5U&8mzFRkBVa1AygGkIt{d(ngHag|C&x#60za)-NKq&%EFYfs3(wh*D zo)0@$f>0Y5xev&5GKb>I^2K%RT&P9p!*hHLv-3@V{e1GE?V~xD523*l&vR`lX)h*1 zmCjWTZoV(n}Kjg%=C%28g@Z&V21#>L2lQ(Up&PVf*e?Jj6 zP6T&Bs!mwug1n=1#EAprnr1=Y_(kxF7lWtAl8b~MeoIj+pIhJL64c4fhi3KQXjO6? zUz-{ffzC1~6L|9^pE56&Mp;Ihcp4m*X^SJ@-MAf}u+7?sIT>WREqOx;OdM4-1ub@H zcE<&PY&@5}dL*|_;p(V?HWx!znwcuH&uc~=m$$93Fx<6aINERAwOkyrHb&MDv=I&a z#c!=5u*0t3(V-(QI2`;_DO_+8Py!P_4qHcG@$LX*dW0CT><*FS*7ZQOA_Etag zby6jEb-FpbqL){pjkd`rlA)tC5e0CfeTwCfPFZq}#ev`DY#-0~dY!V)Zskp1^PD-F z)BDiYBDS8O^`@(ul)%NcEyxOi4cN5p8o}4rzX{kYnf(TG68%a7)yOc=@Ny9M>?ocM zLuLl|<{OdBNqp;X&*-MFu`q5~G&bk2bqSw`u?C`d9xrCugVlO@KF-i$7@21tHGh0R zu4;LJ<1+9I?;E{Dy!K zo5snaR#?xU)vxpEJ}5R9x4wOAyOW_rszalY4RKwRoHG^(Oy57c8Mo`Ep-8lILet_Z zo1dJvnayo9lFALeKUC1H5SNXX&H=}~dqZ%w)i1l|9er!8v6w0pU~6vQHO@XJjlH(A zE1+`!oB&#%xSLmCmxtZHrPaAn$z;8yHyT{T{~NwtGEn^wW!{1YVUI z5^~%*R)39oJ&thcTz@#_FV?sktBs>=dxk9*wm)_Mfz)7jpvcSVQGJo}YaC&R z@~{{y*EG+Af@v?v*K0Z5pJhO2{XSbG@j^7tHk5JDo#0iFw#VK`+IBvitDc*|wh;2v z%Wc=An(h4X*i=F@|8VJA@5HM~=Xh4gQEbZK8z&TTFpj!gpTfWxqwI;*km-}dvq#`m z+K4T@B{cn+R%h&migX3U*eRRKM zOM5x>W(YguctGZBr-}j+pf8?VbGZSxKa8$XVrhr?Rrj4Mvs864i=QbwWgzKZQv+-PGDbII@tY0xP%SSH+L5?%ZHpUcG32TE@cQyz z*HGop4-1;+Z!hXDEc4>!+eyh&{e0aZM?;x-IbZQ zlaA=f{s`j&aw5JEA2spYhOfcfuJ13*C0bCd=DB5@%M*Mk> z)4nijo%M9;CE+M;bLu$+EI8W@?qUqj@b)!dP77rE@;ASJE6`p!`9FiSwctJR=DfRp zKd2D&&WEle<}5MB>;0er3#Kvvg0MB8Y;+H?%0*W{=X~SztQA@N)m*pk6*&4KrjYuY zVKj&%C9OM>+#-vs`8&D}qRBo0x*i>i#4VN1flh5XAa^>s?H*#-Be1yQ4RhnDQ=dwD z9#%$4IGT&){48v!xuS8T4HR2iw6S|@y$*dwD}T*6zM5KR+nha%VXX9GiD4l9h`eS^Dy!iS6FgeLr3VPl%bp|gP%HG1T)k$zEac{!$_&x@z5q}4`qOxAu|*kK zuL0m98}^GKHbQOR3j^(BJ1l*87+**?Z8+?+99kIK@0`9d%9+X3HSF`GpD*>eaV!eGUixK7{9(muZ2WQY$tl&aPbocb@m&J z%<$*fH5;Ye#QVk{%l)v=fOLG$1tVb^oFb}H88>%ZbXK_b`D!zJNrokKb6q(vo}EnC z`KzVd)UoNSJ)4ub;?nM<@j`M%A4eIo$ua(RV8X>=zMC}3?gYp}TO4zNqeb!i6@Ioa z-l=grBdc|F*arm|wV=QPxv5n|a755QKF7;;3&q0XdUYiqQ=*%n7&d!jMPm!mXb74a zHnK&^AQHcri|gK(Cz{ss*snq&^V_E)h#L}0eC7V{&54Xf@r-4T$Yzdd$lx3bRO0DO zFSsmi45Q)HIhnzc(-qmo&A-V2XMmDzQPs!3&&8Y^F4YmJoHUz*W5#J6BBCNIF@Mw9Sldlr#G)8 z9tU`N33WV=;A}bHwbeXV0^+Bu{YI4IyXnyNky2ltG618{%ZfG_CAc{;Kk4w&M z^KN`M!-i3Q@w~pd;`B1IRgMOf8+s2vb3lOr$}}oqv2!WE(_L<7g6V2lG>yGDizU80 z_14lCforQ*t0+7g98XLey$~35_HeWw?t4ReSX*jK}?FBN9*J`s+&jO+|f;6H|Lja=e;p_Eq@#86`JdK?}!2pXl9~a1IqC>b^5iL zi~cz{4>5l_&ub_wri?w;<`%lf`RTui+IBu-rm51#!iJl|_o{gvuw47p32VbS_cr<2 zHO?E`F;cjEcaG{||FBGc$#t(Fer0nKhNZomIdse0`SCvFd@(kn7Gu`#*A&MV>^ZC? zU}Xje3f70?-yqPJFYzhwa^-h)Uw#`b*aOx%$FaOj-kdzSK-b*nd!wu`OYWIXvj4q3V)FITa}L0=s*TiaSR*U|sRZ#z2w zHqIC|KlBYO-+eGef1=eLpN&abq48+7q%{8hr5puvF}`yGH&|5E9b>F8nJC#NI9mj( z_sldEq7CeP*egm*5Fgz`c|;y3YXO<&0QdXM;md&}ref=DwUD%($2uskQWoqiu1(6*>s~^z9`YHQbuPeADQ|EvQ~O(nIGhs-yVe{s70F4==^@?LmfvtCS2^zimsbt?k#h|)6P-(hgp1m=#m0G0Knebs4 zZgT{g;euP+dNS)L$8P>u1GbmO~X1H5cK>cq2nx90TWIu^=2VZZrkj@pi5jm8%M&mYZQ zvzr%oOiGzeZFp3_{2#yh;glXjn(pv=vi`QufckujrvD`Q_dotqUB%bWOczZ7wXzFp zd+^qkpScl_m!X`hZ6v2m{_oL1A+x@3{gkQCpW77kq7RlY7oOHqedu0hDom+k?Zc2+ zVr`Xa;->NIIQLNQ^E-6O8GpGFR18a|_{ES**c|%}FvlX5O z;mWORBMsH|D~cTxWg8Y}kmtJw`Krf9AjriJF4ov>{0&K8x$(7CZ_$+#Bkqc`lfWakd4;}Mh}yFAJQWc`kKh@9cC`=+&UQy3eJOpadT`1TL?-s(jhPPnDOx)>jN0BG2(^kNLD*2acr%Gb+sw(<&Sz} z1^`k(t-scdNo(y(#hi$_drsT(PpIQ^CSdQh&@~M#gw*8ILvpqf4a7Wnz-MrJXzp|H zHk56%2wGN<2;JZ-2wcm>8xxJY=x*Md&uajkD#LP<~FbV$sC9dlv*{o;)!$BvWqVarybPJ25;l$i=q52KvTKPkr0M zVJ8lOocJEKFj^BiwYi9;UQe~~z)@a!X8Ykd$Le5&e|*hV*W`L&Va#GHZrX;Yjd^#J zlR4O}Njs(fh}5IqPsQffT&w&#@XQX|ex>Aq@GCUf-JA@iSPL}0MJ?qpD8dTEmAfCGNX}PahKw~mY(OMY2F+pCsy@LlsZY^ZkSWmFJ z3BfRlKsR5#k-{5bxMykGCzi#J2s;YLfDO+)qqT}s@O^799bGWFcl($_5HK0galed!uP zD`B1E4v1FsZ><5YWha6@aAHk=4TT-$EF)x9eFugJC8HPW|e(6l1CxqFlZUL z(uv_l47t3qa_uNjvqR@v%nq~T9}!9C%t3$p+R-j%Dtxdtu9@X6P8V@&#zw6Di5k7| z#a@_MBeUcIih}~Bhs7}#o%klg{A6|ek?{Pmj9$Ch2Ga9>)b8>q%(vEnZqjoGDd zo~-{uTauI-YU?@gn2O19^9*+C+Q!pm9wXVo52ce^*}-TU96C#p5`Aloyzm!1zrvw3}`All8sD%)3ZbJU!yofGEpj2+h-j3G&Sw z1~_a)Dyp~k<*i7WHF?`-J=u+CbKs12p2>GBN&(Rs(gdwhrG8vIU*aeiDLK{yD`Up4 zUI0h{a9-}4(*pC%p9V*pMOJ>gS9fs{VIz($x5e)q&VTWCS7+PV`}_)5O4cSzd_;P< zBFfEqvU7TK-*Zb++thyZCa@0y_?yuQoKr9zgTkn?GaDwl~|x z;!$lMKzifMP7E^@e6?A$Wv^KL@rfPwF{0D`qP2Bk*!1rQ5gPVGdK8TRKmJhba30pX zPjY(r?XGg;2za)!fNOpVQx!DhLJ+uk8~M%~zgbph?idSktDKbX9FCX(w;KI~E!#uiAF*H9P&R zk&ky@t>l~E`r+^Q@552|A=qMrw;1&ZZ9TfHSYd)GdLE;}078Uqeus4}2i_mLM>9R{jfON`xlL>;Sz zIhdRLwE`obpz#4tnd*4a?)dt1QB-Q!mV?)ud<4U$13WakSNFzr+epB95f|s2Ab{>K z<8bs|B_PH`6}xxNbqxX28ua?hHw*=2eC4Z;PGZ>SXKSROD~$PAX_ z*1yf&;mK`z&vUB+d)0iVu()3HXjA|3IUZg+EwJLNvlQ};OFjD54}|!d&uDruf-&~c z4w>)G+8o`0mbdK>9FL0`hkVq7=CvqNg4imH!y01igVbO0ntD;x7M?aocm1~}Z+vkq zl)L4iyMMY&dFuy9xqe^t5EEPN-M$|@-}z=RT@2iPP{GCW+QJ&r+9Uk(aqN5V5Eih+ zdZ~!id!jc1h`Dd9V^_^a!zzoHUwq%}ksoo05w7zHz5hp0T2Z^B@2j#)p-$uBTJ_!I z%UNB~kUk9NqrLM*Oi!D|D~>%U#nt82Ry(aF_U`|ZIQ|PZE?TKL7*!c4Yl~$qKWQ<~ z4L+7QTCM?dunm4T&koUl8g>~i_uhkP3+MgdW_jz|+BF~yu+P^6HplxX04CC4_fMZy z3Ce~n4mfnbbpkVS=@rLX@4cnG4Cp?v`3e&cb~J3F-4>DM+x70*-LV|7w609caGe98 zQ2f@lY`yj!D*7sIS6z;Fcv&`aoJ+)Z?m3M#Glq>f*Tv{w%bPWQID}CS%VU|0kMsS@ z^BhidW*0#I#&z-_GM@_B2}6_hCF;q^MK`%#e%fo{5{Ux-HEK8enWTL-mU#Y}7>-og zk-OIJilM9^n|{`)HGqVu)8hJjsN*f6cdp^N_uN5=!6spX#oK0Le93Ru*%Q+5-by`O z`a_jbIvH8SpF%jak@H|gLd?r08|ugV>S;t z+HUjxW%kz3h(!QSU@TO-a~>(0If{*g6RbHEC%hRSv7wxOYp{XvZ5Sd^|4|4Y7XxQE z;yPK8m}^6u&3qg-9}c)Y_iI<4#I#o}HLIp>IJLMb1J77KU6jS>!zu)SFq0~fKC?n9 zE7LK#NxRrFQgL=NH89mEQ+c#@Mcmg}|u;A6jyaZw-cyT;hMgdeyc5evD1NXn! zU36^L(yG5xj&qRu^OAG%IT*#96%|q5bPC~xfrjl|v{f$?PAcWrYLkQp0=X2-krfB* z=0P1q_Q|0eRb9+kO#KA(5FZ4`1NQj2;3;A+G&;;WD#hvIXyi8?1oBOQpmyAd?ZLq{ zE)V~9qxqVZ$MG^AGD9iM(xVqGgf<)hUDUi0`Eb+Abog4j`Nm(q?yQ%`YJtq$YKNlS zg@OnrNW%_Kx4yMjuI55^K)Gn(gw`WAHp?pum@Xd`dsBz6c-p$_#et*say+`waxC;O zb)^fE~5?Z~ow5V?J)pFZ`6Wxv2Kinvq8r9*btXgA8@?a*7F!RUp46@!hhtR*=j<(MO&R}cdeY6W8V+m9;VjTf>%Fw ztxdeRZp`B=Z|6=}Ti<#k1c&Ee77_%*ai~mj451pxq8ezYsez3(W17tf%Azc&?dgOf z9xY=o0DC+AAap2d()*jPVjrhm+=YQ^r$>=@uC6xyz+RnW8z0)?zlijYuOyd`H6fPt zwyR$9D7?8gi))lyA!wE9*#&#K{}Mt_y5?;HY|eqpqrP&WEoaxQ)U$8g=Y(2n_B$q23vCIE>4S%ylt$i`wy_j8J=y}|4_^CfF$>(9c zbfQqMlk&H=iriW+=~yd)t$?qtGY>1pi|;v!DGpH;sDzQKU~^6Wr=R|N4&g_?n4E)# zJw~;QgQGbJknVhxiW#@G&4NI*_7+in=NeY;fBU@pj~_M~i_OtjA4>5XARF%kku&FY zSlV?z0DtPHkC<)R@d~e_%H{Xu%Si_-Is4sDI^dZT2TlH(kv#*`8+&qhOvaf}E$-?V z9{S$*G#}u`ysNh2aSidD-o1?LwZR=P=OnfjhJ5iUYZG$|i(`o%uMXaOJ0?aT4zigz zKStl^j#=lopc)aU{D9ZKbqWW^xO;Q?NP`#F`P(v*Pp>5aq+v%a<@OyzbKFZ~vny;` zEpl)#6u$aw99rYy7gywHdU$LT2x-|8$8)8+AuVs_gxMZ){%<|hAVk#F3w*c6;P9Vk zU|4ryAJF}Dln=7Q;HXuij(yulh}&s5%jU@`$m+s3KDG&upqc=gi2 zn3}nDo?Q%jJh!fR3!;@}44b27zBep)2((5^BrxPO9iQOr*f&;+%c&Z{M<3+g(}@!% zvdyVn(`WX^w}K1Cd`v+bK7PIgIA9oNJ$8vW(0FPjCU;Bn2mP`k#dhg?zEl|TK) zFkuGnQd(E}7(cJ(8zN(P(2=Hp#&_Sd*ql(mdq&kIkfCmad@`~^*fm|el-532_G?s6 z84zC#x0u+Hr<9!2@ay!A^xntWb8 z=ru++mOK9pUYN~?I&dYXw#MHJ;sq4Z{I-t1b7Un^qczUD*$anm^9Esl%X!8tLgM>@N+#5}jkJ&3JLd zs`|}4Rp*$#g;uYR9j)CMQ3f_@w0*cahUp1pKD{@f4%VXe&ZFMSJcsF3Td;@l@KJd# znVWOL`K199qxa|H5NM?_;&AkiE62Xr78&DbB0vusY)wo!2OPrWVBp~D9d6EYrfUJ+ zkd>?V5)e~YzNzpe+3YhmXZ<$LAJ^cgS#lOcp;*`xqxlkJ`?EEJZ|g<}9l@$^3#hgA zLj>of7_%1Aac%`dHhxzRjnK={^DI9rfJ}SWBkO;cmt%yG5Pmw@=%L*CS7nDMXR!5c zgd(#(-gke$yr!oek9OpwmGJ`@Md!KV>OfnSanjO3r+3%HlGFw*PMxP`kPYoOPyC_A z!|fcQ(-e&Xu!9~y4dLO`G@uoTfS}!+N$?S=gzH;KixrrIW^YkfT>5)pU-BG*e>QSl!bVE%N`$@_Bi@8`Glfj@f1`6S%{aMe z-|=aTWRA)=fm$@-;3Czp`(U~SU-zAeUa1`D%4$w6ayt$Eys8^_w2#x?IQ`^hbafuT zO$zbGE{tcd!WP%Z-W!brdS2KRHc!$n-803Q4#Bk%~0->7|4!z5;?G|r<{i&7V z8c$*&Sv$bP5epc3_yaJ<;Y~#}ZR&ivb&-}l+kRTd5uNdS!(>hZ8Y_h@W%vX#Ae&q0 z)uX!Uzr}jvX)M!L`{NE0F-%>5+bP{!e0_3J2M%g!XywopCj*Vxo;!2JI{C&gNbzS8 z|Ne%7{lLyfeERRyX>pRn6O8=Dbf#fHio+pi>+tK%h#{&KxISbd#l4xP4>|kkY-Cfz z&gO%lT4@eWb;yhPLHx!LWpU58nr6eQj%!hzTgGc4aXeej)Au(^#WqxV7|f+fzS!MO z(ZkuLfF5R@OO8`xB_ZU-)JHtp)^Z~z|4dNP-lBFnSWM$@ohF~!L3&^{j70xyIyo_C2PQpU?19`?n;?Q#^AEgDK?9MiZ89sV8P8Yv!Th3aq5 zR$ngcj7v8J)OjBmHyfD0A$87(-uWdj9~`w3^36}Dsb73{=>e%9%oH#qnL6u(oR{qKsb@?i5F0r1$_JbM-`bg*z zCw=sCdpF_^f~9k_KAV?SL-acjHl~gl@s)~s{ZSg(6T4|!Jde5NoNlMId z#fNs+Z6;acm!DQc=)msfsiq%JXh1xtgU8L;#c#g7FAr>@Z4J{-W1jmhLu1pm&s?;g zmSZ`-x%_VHh@iPIRQ}rf+Cg18MMOL+Uqvy1hdCNU za@eSCZUnP+Dm+d2TT9*lWg|ZRxjI=~7ql5{NX8bvLaNxBuMAbN%SAh|T+=)`&}D;3 z{KO7ON7UBFMqx1~=vxWI4MV$gcRX^xxnazH5Eh)PqUR!hI%h-Y7ZU2W(K2iTGpx({ z<={FW#ZYL2m|#uVqVsu5`;|K4)&e| zt$p^f>$>M0`ZgW4Grl|UR!{|}@;*x&cOFc}`rCm6M-ktfVXb7?`jY-;N@0`c>zwF+ zIO%&iyz>gxFfSj2ye|V~i;q>Z8usJDZZ$z!n`;{RtKNH?tCReFHCJY9qQ(qWo%IJp zwk3nE>kjqteBApvt=03gHps0_^GGBBz0QxoxEf-0p@F@RU+p7d{0;kTyspNzX!&%{ z4Mg_h2#nhrD%cpb{h-Yn(Wm~UmXe)9CdBe~aKv}L@TIx4P_cQPJ@RB+bM|4HUIO#v z)tF|A4>(&3MHK@+5i#cV!;glo`~$+a=_2M7hR~vy`*EV-S}+ROXeIV6yT)U@_mYms z=3nz7YsdLE?R;>wPR*+q@9<4@_i@Ijjl4A&kpA8`^TS-f5AnM9)#5*HKWqBBA>&0rm!lRQ?`DusF^TrxT46Yu`&GW@ayo-LMk(W3|w6Mnp9{J1B zzrZjJM{{*Q{N`Bx#sM9_H=p&lyl$<}6*o`3)i_6p*m)tQvB5D<+dX#NOj1r}xvsKi zV}hk$8!trDs^h7^BM&Ph&+@e@Hu(%zk()p47v2vUZ^)AW{og<1*)>Td>_HulwW?6hVj`@mbLw;|Vw0=)c;WPV}0Ggr1ZpNq?N&-%qH z2T{(4M7rPT{lw)J#EqQc4Ey}?t3Jk1Dju78Rzn4Qrjw5U?D$wA^Be?$XS}BvmN6QC z!Mt~0CC`~LMh~EvyDsXy8fR&@JUHGw%%1M|gGov9G^JQwnsghBh&dR3mSr5|n=fjN zkD$S_evYMFHPrqbj&K#$p3O1O*}U_aLYK}rZETxQ$eN42xPhppe@y;WKi5U^O{Xzw z%(NBLm&l8$%uy8ToonHST}Vw(W|5s=aByqp36r1yOYWJ#jR}_ zB>X(c++4)>MCnZp>MT4O)R@{R#Mg&xw!oDMZQc-Z^6FnIy-T@##m2tLdy8h6N;ezr z7RQU5weaY3({zi!Xv;^w5|c@%T7w%eaUk8_v=mZ&@McfDaa@c-Qr~{S7P6RcGZJyk zBZy_4)*KNk>5JR6{Vl*QP%&A|U5I8^GC02vmc&)FZFsi(pauEzM?aG5v-gI{3#T=1 zVQYZoU1eteV3RrRoBFGij#{0+?h`2(#?A&!wtxd8G3qi$RaxpQG@IG@cx~e^ zFLa(XsCE-av%UiH)mayh5;M=?C=$8X(&_x$8%}i>6CB533(exB@x;b&cwpXnS)A~Y zdGTSMn@1NqkNQ+UYlFbHG&JWB*Pq=4&P_lzhAv9vqzDfm<~V>Ma?PD>IH)e3Hd@x@ z(9KExjgv5)Q#4vM)!|`Wr>*3K?2Ush?Lt)Qc*$*Y1X1dTbqrE*pHLfJkQ&*ht!_fC zwM5RLwx$|U18Zr`TWmFA99GX6<>rnzF52ev&JBuYh2$9?&cE}4admW@915M@3-{gJ z+Q3hFHlg4r4i%7Z*d40Zcw=Ew#=D|75A;Fe=CKQ*HVN@TZ>VSGinKnm?CkS`i<{`P z#c7>E)!p^O^=g+c_J-0wUq{!#PMY(lr;?Jep{1?u<74%G^?_z}(Qfu(0y7@~tc|c@ zn3qV_%J?+jO_ITU!3)UH9@EVYjO8j1apmcbSG>ietE9SRgfoS8e4U%tSOdBB1MQ=Z#klLwt92~?I=I## zH>LqRwv)LEpVnS5S{yWP{%L8F9(}}xc5~mDa@L!6iM`t)9d^Yk#>I79ENxt zdEz-*oKS21-y1RePO4$lL}1<1;LogpmyROFLQoTDbAG!iYSX9zKEB8| zD&zY7@Pe9ZA->KV73<@<%2>P*s^dKiX?3oszt}>&^*lWkv>A3Yw8SvmhLJ;Btqhc{ zeMO67L6%}dVs$~7|HXc+&+y|Mf^)?aNkZ0y540W2?>?Jg<0_HRD_bXTfpx+MHQ{bs zOPRixe()QYnK_di=>{4eBHOUX5AI2-!j_%CdTXVBefsJ`(bn{3H%+yMx^#|U6_-z@sKDayIKR-iJ zIVb7&TcKHEZ@3qUI3X14g>>9zG4Y*kbgYr&ey1)kxA%n?f!?)W%)(Ht-dk92$3~+- zO~$@Qn;U~%NMC2)AFYV+eLFbsKsyXs%)NE7V)--ThKaOkbFS^c4F_7;=Z#tY5A}Z~@r*rab zltvF?RwB=gcfVQPoVyvKMJH$Hd{as}TfUv2>k%q`+E|m2%k{0vC0DJR1G=p^9r_`e zPM&A@wHDCqi-C$nl!rADzp^8x5l8Wm`@$^QFB2@^6eXbnWAclg^?v?lzdVN7cxr1G zh3Dbki+bc4R!; zTap~d#`4)MvNdWJcukVZ70H=sZbFR*4Yo{-X-GT%x)3Mm-sg>h7@MEyY44wOMhdz4 z>&}{N0NQbApy;Bs?_6H(tW;*~4X5@=XyaEctAkjAit~1~%sjkBFZC!h{D&H3j-{J_yOaH;J-~3!0BN&tME$Z@e zEW_6Q;d`NDTU}SApv^%W0yK`{;O{uH>D3ozRGMFh<(W3#l;eMy#qjKN8hyfnEB5=U zt+7?e**Uy^?|sS@L2C8xatty1yD`Lk-@!qJ^BgKAO88LQ3{E)Z68ioNN2Le=?+6|M#BvsczA*D^-r& z$LQQk1fs|vf>lVl_d011)3DdP6I~uE+sSt}-IJYezIa7}9{4spm2;gRsRJ|qeMHMO zEfys<-NLLUu_}g@srpR_edv~>{5t2seUFB<ENy`4^u4GXLSSbH(?wSja`g4zt{O zy*lhYk}-{ME*Pd#U}4QwfW2&Xt>}wRBu6 zhP)92i>R7Q-IseGz5(A!+0Bs=kyc0&+DW1a9|GoWr9|ZrIk8i4RJKmGi=wS$w@^As z`yk+8%3>x)ro|?nK4$243!VDddUCjEG`1OIGvECuYi_t1c&y^Bra`sa1UE|KQP8BVMSwwuipqH+PX?pIn3^8X<& zFR(p>dA%DsFB63ov)UWKtjNnej4KOc-K&W!*f3WBYeCN7^v%$0%>>T|78LA*GmaNa zG=Y={`!|x4Mg!H9o}EN4zl@PCe!05g&1Nd)wS9 zY!Ju`kNi!q^}$del)s9tKdWbT3uCqLgC-xI)a9m&b=1Lw#n3*1HY&Vex}}(g=9|}z z6IHAhnoCHmy(`Hrl-$|fKR~P=^2wIk>PP&2Lox_pQ0m9$lWQiy2O$d22itG1yxhWc z*NoKGKU1*9#X0Qu<*(Xv(l~HXD|HhRS3yVZ*o>iA{-a@MZw+j@sn49{h=Q;$>f+;Ca7B|#94-^qszpKhZcE)bI$VB^>uQas$Mn;h#HgVym$)^*veA9u&lI_V5MjQnP) zYp^UFxi$`R7x?ipA0OKIa(puIXt4U8b7Q`^24Hfyd0;Kq1WX_G`Q!Y$9Xq3 z(01*XJ33=|^aiXC?3@>J$j4{`V)qLlWzL_CvvcUUzZ&Y}=J;`FEitGB?DNW}{Kn(S zEyB+m^utk!Ei+@za2+o(g7X|&)9NCwF87YR3qibnF}-@1cwv z^3|yGRwJb9H1sj6&5zCftzT-YPd>)cbg^E^3brU(m-lac^ZuO+jz{+i<*|9yO+R&S zUb|SuA3FkWoCxIL70_b}8ygT>o0H1@KD?&Qf*&TR%K!LcVw%vEzqahnr`U&IoQ=^` zU6FHj4ybONH@f+EmRAht_j1v0;2e0&@Z!=joq*)}I6UQ9e;n@3vF(ZuUo zzp?Gz8BqnluJi`*hvKLQ`yyo!Q;)rKGFlom*=Dk*PFM5m6Z**v^{XKMX)3*|oYXlpql~7S ziQ8C5Z=AS@TcaQaV+$Y0q$(c279en`!R9<|_28a0rd39#{Q96z8!aqIHSx%c&3bjD zJN9C|kUO`ktFpQ5yrDl>gz)P9Zk*{Na^BHeP2;^Y!)U2c*N*3bC1VGt)?{>j=&M}g zP9;Z=4zfN78jIrjzQ4HTgn^r!uIU}8JeTK$-!(?xhb6wfd^r~GDxRDAOjZ*T>b}ac z)VNxbFHLim`<)57Iex|x|7ZOW7&&2fKkD)369Ao~V9S0W9_OE^35Tp?&C?hJX3Q1k zHJ9^$_{6BVMi)|_wT(7xkPx3)^FF*7496f|Lwh05zQEu!p~V*3I#{0(7A<>3!)!E@RQTO|;+hI3p%CP+1-h+ zj%X7kM|rdn^ZO9#LqWkZk|NWo8 z_~*cX;-`)4i9G+8HP+H-Rl2WuN7VV=IJ%cG&n71QYURQ6lV|t)&P_3Ty7r!q{^Ppg zgM;}gP4MFA_#zTZ;5-qds*B$7^3M}Rw-72FBaXhY(akLB?mW=ma|#=T{y9MgC$s*i z1-{k0a$zee?A}_$*S+#RU_s$skVh)sO2m=NIM5=F^==M;Y5lFCrHP-mG}QaaOjW6k zV<4{A#G}soXdXOAKDsNf<)r`5mc2D@{RGJ{s*N3^H*fXhp%Q>$$dk6OAg#~z`&3*X z=a8Q0DAdrJiM2m2V)B~ay3wyj9_xJh7^L;h8ueUG#{TCo=QQ?4Je_kT-q<6eD?Tma z`NP&fG_-EUQ`f;&Q{%E*w9)b#_W=B)tWJ3{aC8S#k_?)Y5{Vk+*G z<;$GDciitJiPfD>yc`!3yW2~g_#DEKHx`>P8_El;+`_idVR&|tFroF?*U(+#rc!>M z&`Q-eX=R;_LS!k~JwFEFgwHx=}w^9Pvc|t#&YP4AGo0zLrzWV7-E^czRt}d>-2{D#W9(NQubPpP>!ALjHs<`R}M6rXD?U4 zdE%VTgv`O-$f7cCF9R}G+M|p=M?Zk^4BG{Ay24rqySI695r1c+ZJx^5q~{lUT5kv- zmVrF@cOk8HRy3V&)ydcfa?3_~*tIrITnt&r-}6rX*f!@-I+9CP+<^yas&fViIh!{+ zlWxp(+&qpwU1zXw&oo4~0_jB8Iw}3(Y`c7&3qnY}!qH|zwB7&}o}8)A^4+(j!V-^{ zzoBG~;TSKj;DT3anm-fwk7_jFxp_^~pA?);yus|qd1B>dUTKxfg@?G#m0$T~iHYaJ z`vGWkXM}- zYK?{51YsPkhYxG9TGJMv!EgT9abs+kIr`h|I|kddry>MWVn@^)UX9#Sa-j*hMM zcpUr3^MZ#3vhCMbN=!4;cdXt?;2_SjG1_2$fzm0IuK(Voq zqc0uR>qBQRWnY&l)-1giv5S)?u?UP7$NU)QMos~KU6%m3lIxaUhhSaYYy?1q9J<3Z zZi=niuSX$1j5LmkzHQ3|*La^W6fMGg;ZA9-yzWN9rdi}aO0I`)@?T|Yw7$KTKFK1TW1) zG!65h*RpNi0{iqt6N}^$sZ-9_nQvQ(3kEM_)dSfi9C5Uc?~6Gbd+o#|F8JnCt#n49 zukdng{Shx6bA}*Y3$#)$e{HWG%{NImc-W|PgGYD~Twh%uHlVvHhZ_hcA_+G+(&=Rp zR2VZon6@uQ9CO(ZgYz}0f#6!s##$FS+sVV#?q02{#EMTgHxyX(o0#aL;ND-~wHD&# zZwo!K3@>Nyuj*KB1hTO#yU}Z|wEnl(^ zyF7x>HN0@NdyiMjA+KGam2TdYQRVo)zEQI^m%8Wu#;cY&R+qBpT5%j_+EVP?$K+oV+3Mq^rW0eABgUr*P*h~WHWWQ;k) zieDd^MaiQgffYCi>u7N81FBBCzh0jS^X7|lY-7h*X~B{(K(NBboKHd&A>rfvHPTzseXF?2ii#H#S98 zvFlWW%Joaw)rDxbMN|O&a{$eD3s-)zH;{PYON)gs@l>#bIegMt;yV(*KLmBP|)!& zr$a{&stvI4`XH@v@q1wFPBk^CkdEZHz4wT9UJ80EGBZ+|2Q)c z?8*;EA3Gb#`i!Pa+|C(hM<9&rGY_+Wq-5BO-PR}yUNgr9>*k$D^C6bUtFLOb3d1SU zRBSRuM6-=BwkHX{H4KmbWZK~z1dB{HxUERSN@&aX)xFD!=jbVQ&)5q= zK*|p5yyskpa&8zuE^ehvN8*cvj&XQG?FPWQZ6?T#Lp~@fQo0tB#cFK1_RgFj$`R1= z@(6?9coN&-JRZvQV+>E@QrC92?5P}qhYiS@RWSx@h-$~YcRD4@t7|`-t&$MMeUCeZ z&Fw9{Aqhacc@ImX6!fsgwUXY7aa6};Nw#H!$iB`t2zHMrey!Oj$~w_nL@+J=Sz>cQ znv;Gw>M;ECVSIt*s$JFejKLZ&>UK}KLY{BcELyL>XnWol)ogtO^eyShHPEJYQeZ0P zjDx$c=$AkAcGA$vs2Feb=&A9-Xk(^0qOX7dv^s?pmvhtL1CquCWn-NlLiAMC@7C^WVMx!~Xs*2r zf{eys8mWhoR0oWMc-cf%ZnrXQULqI9b-8nhk*XNBylM18P7cDQe}(WDZ~dXI-pn1p zDtlOeAg5xxh4-FQRTTyH;89`0o;W`C@#^7`-&SU1*=j-|o`^gb*WiJ2(^Ud0(-D4( zr}5Iol(y#SHdOKv7ch;VCdbFoverwLE_56J){tk{g#GZ5oAa}A#L?~G1z7!!p|I6d zj?dG5ABqrXane2-N{W-hwvtWU)-He70mWZSw)TrSRCvXN;yk;uh)hj^a&)y-wp{G! zL*Qi)*7$CnAg*Hog_VkF;N?Hy^u+PHLsHwUS8WWhheRv@k)tJ(GD82Ht@*TgSV@tM zAA9YnOQXMzX>g!rY#fxY|BYV`8u)vBOp5-!22f_1A6e*Ae?8!$uus3C;d%gu9Q_n% z6$FcqDq}0ZT9o|~>&$C4g&|DM`Rby<&9DZwu=j-I?cD<(!xbd3-b?51P=&|c{ z6UJ!>Dr}Z=G{ym$i>(V{qvK1XY=_&pJJIa0dhvmiy{ckizw??3`cPhDWw|>B z{Q0?29z7ewPA`@9N#hwT^ZP7~RTo{iC11XVF3$S4^-*UZ>`0A|auN57ica)`NVQLY zAa)X{SMcHw$Mc>e)jp126YbXd2DN7PldV7FtJ{!w)-;dcrSZYP_;M2&aLo7Z@n@b| zcae$R*a^!9L`n+>FF=%6j`?l}p8{1~Ty)s&t7_GIAf=f$bp&$N-8mvBsL8Ak3$}P| zeMnV6b;Z^PiHcGJ(H4_~ps}N#G4RS497fR#%%5@5s3N2D4Bz?BXClL?rD96x=1t39TjXeS6U!sJS+jRxt>Ty? zq7tBA@rsngyhkJ)0mMX(Uh7i}qjHamZo{jr!D$#-&7Bis-n8|Erhm8k-BqgjJy_b6VEYrE%wP_4rp=ZNYmbZ zlcQwJnbF;50xrdIK-?OGmcHt5bo$_m1eM*5cqkbC;r{_b?wm8W<&z^niz%yetz&ij zS}F#h_~)s1BkBzyTp45c@5VQ)a$4)i(-hAv0Iem{D<< z=M86CvNLBN29Y-WJZl$%C^veLb^caKzUit)flAq?Z<=G+wqoJHz7$2S`aku%b~ip- zf8sfgR2%J{xFi<`_VCDB za+DCeUyo9eX7!pp;Uhq@#T#LbOF?6Cqm+0Sa06*3sapK&W~?74HabW-n&j}CMQ}KlA$#3pL&4-xQW+8!o;WHiO(@=-DiI)on%I>HB zP3G>%agh{@aw%VjdNCp-2B;em|Zvn3dL_<_Dwcl|v76`u4Z^ShDHE zl5UkKa*h|MK+#_dV=^I%;^VPlJbEywwCC{^rHq20ytbRu|+^ceDX3xyi7b z^s3;#vj#k&jfLDr+e>5xF;I@)#`l!ur`@9wb&b*$LnH;1IHzlpW2y=hgin!Y?<`WqjM&NF@uqRsOOuJlzhp8myxa+=_DxV!M5mYrX6ZUlj6*;bFK(ykxvbxjzaS@Sxgc3$s6;TYrby*DMlqs^YyQAZ#;)#cYfB7S833Hr_ zS0g1sOd#7E|E_QS)K&{V)K#e>{AM$3G0*eE(}aX zJ<+qG(CARWEBSy>KwBl{6vAX3x`?0h0p{7RveKf6FE#W&5BuXf z7mlQ}%$MaAlyB{|e}fm1au>RKV0@GZ@s#6hee`IHCOclXQ!+xgVvc9kGjO~SnR!T` zouOv}wi6*ZV$r93#6!XHiN?^4+3~K9WgB-vQx3%zM+ARz=8^vP6F)=Mj#hK*WJ!M( zT~CkH*&73G`H9gSBxar*W_+3`WL;c{$c5(5aZwmQZNL2fk@weS`Gk}4TE;G3%>jy? zLwfg=M31Wq=6nxjsp(gTZt9y0WbYcYYdGowzwwXKXH7DeiydL>`}!O#t&BxEKU-fy zqGfV*7&xSwc8mIAy?AV`{=xra$TbS$_=9yn>5H+b^1n%@p?bjazY?BBgwj2Ka--3j z*C=tgqdpri0@}bPuZ>B{k2B}<_}OB*k$25dUck)x7`UIe!=kZkAaLj1hjNy0O+UX% z`Wg)Zc$L@M)@Q{~zYM?r!M`fKJc+6lGEt!0{ZBezqm+O7yt0;#Pj%sQg9EAd!)^Zh z)J185F2eF;9K5_vbs{u;zh zw)1JVA&8>=B=^lPG3IB{3Ng$y&rcmG#dO)}@Wz#6$|kp)X1E{5COr+=iFhD5wXDAU zKhTukxvn)*KWuTQ=z}(gtZ+^>OSwuiU5oGBMrq141$ApoeJ2(Oa?R3C4~%+o2d@W= zbM`>8)4SZY(d?}Yr3QJq0B2+H^@KL)^GW|bJIZr1Tf*X+LT}FE?x_LXgI#IJ#-HhE zZFzLjDJcD%)pDuWle8O5#y5KDC@0p10L;Gqym_Ks}o3)B0Dw za24X|QZ|Nof|@05Lgz|l5jfwjUo_B{?dYS_a}-1h$HacKD(+8xMe249nKmlqRx91? zx`Kio7bkQDYW#!TFZHucA6Y$XTV~oQbB$m8k<~rX}`q@Ck}3Xu+IVQx|yrp09Zh$zZ7_~cgQOg zzr?5mXdS0t8oem8zf!uy+Tu@QjeS$W&Gwt1wJD3F7Ju0aTFH2I;Z-x37=~gqbxUU_G#`)KRKuj zr}s#ph@+6kLS)i- zefB1e&2iWfPu*A@&Kl!ev7IdTT2{b^%)G$O0`AYJ##-aX!?45? z$apGq)Jp71_7D1oRzGA9?X-Gk#W>ENWlxrG!P`7oZpFzmJnc?yEH<%u z?BSz2B>-ONwa(BMNA>D&qq%;!#b0=M6X6)A_~}#IKKW|>nMZY2y1pM1|BZ!|d*m$#?8+J{F{LIH+AW^e- zwlz+vfgG1y-I&XlJKJdRlPjMMu8u@0yc>M9_=E^D3%+REdMgLwePg+R^@+UlbSsmy zV$fb*_}u)E;ecOXXs&2CDikzSrMzEEDG5dW(;pD4kKWib8)O1|KP23uv`Z-d+ z@DM`Yo}|s9FRjf(r58_9eq6d!T@U5M38p;AMWzgZ=6Sd@B(6rolk<_2OP$%z&@VWlB{q z2EB48sHJ%QqcVQ71TQsfjWLPPcINp=;@H5yki490n_t?!)Y9-i=_KKxG%%JTK*&bG zW-}a0%d9Z!q6v0$NPFACw@HnMqzzuHFA`!#XKEJ{Wb=cnr6^eDrOmQ$c}?l)MGkg~ zRsvGo&FFBncf9n56LYivN2$=!Zyl5jeQqo{0LDU9F;8xs{3?(ko3%2b=wyiaL|P*? z*>cy_2*S6{1#6IXo>*+=KElgbI`xNge8ztsXMfi?b%1?lpd5IW3kvJ63HAVbD(Mk- z*Dr>l3I{{Vc8duW`PVbHvY}AtnM-|&F?pFtHju=kTJ_Bc3vBL#*Z;}-Q=nRfM;;$F zV>K)FO{|T?yj*eAr+HHTHp-<^b(_h}9`qZM_B0fzIfR8Ask@f#{C1vEjfI56*DvL4 z`Kk)@gRxCL#Mh}l6?l>e_v-q*HZhF7YXN2aB#Vfv(ELBQT|s`uA(dJiQ z@uF|>)idu_RiY3)CT>XBAUFj|n`JR84mCEv_dj=5@4DY&Ias`&Gt}+8P?IRg6#w*; zyFW;>{rCs}3&1z$>JRgzW~47R>gL7BY@NILQ`vg(X-(IC>#{9kk@IvI1ijgFABIrcjmjJ*5#OJ9ad3*5Zk>IYT% z#7O&(pNKa1o$&F`9;Z}V&$Mk}9g(u9jyRy^+4nQ#qt92=n<~7T!Ao@QYFQORebw3! z?nhf2ZKYpT(5HooW>2|Zk?R9Nr}K-!W;iJ0TiCLJfjDj+vmJKh9WZrmu*vcted^@m z1NWW3d$S@e`RPW zawo2OStqk-n^{;KRe&lm4}%Z|%mlfhI!GdfNy4te2T`U}|+e zCB4`-`@+edx_!c5J2ubkCr#MoyJ(+(g!nHe^qoP{+4*GnT9~7E%`7&o*vQsGp)8(U z(bL}M%Byc?D&>{4^MCzq4?X@yq?+8_K$s0;-~33|2AlQa`G<)RXXP|V<>i!G(jBNZ zX$F}dew+{arQgeuzTz(rWRNrJd;r&&At$>oU#FC#^QF&SA4&(yk_sijJ3rE1U&;(V zo-0edEE)?rF%${RzBXCfHqJM5N8Y7DN7)PPhOYIJ<_dveK|@OL^>)FDV(^<7&A{3v zBt{+VQQY%`MQsI;uN(L;I`Qo^UO3@}7o8yQq!_bU*|-I*WTWH808y`?WqEwVDiGTQ zesRSpiL%E#_a&K>QK=(r=jGNhKUuMJ`Bf?gWnHk{RB`Bkwh+n-J9K++WQ=SgjNv>f z?wXOK8seKOzXz?&v`bdGnB|XZc@y7qnk&jV+mO<;`Gc*hX7O6tf$Ek8_Kus6EWAZ$ zyCiJuyUF3Xcdo`Q0>!x=*t`-gaQF0`?!gcWEFW4pz8s0~qRE9sMoWQxGn;3x08uZ& z!zzS85qRN>Kx`jCQj~*vF@M%wT=dziIA+^e{P+`N`1<6xesA1^zfWTZoL;0M)8en` zJ$!RbE8i|0GJ81kk`IQCBi}G_EDVPu+aG?vF*=M=binMcborU0LNeN*5m+t#-NJ1% z(Jv$TQjd-)*Qly3H+Gr4b-4eUwW#74VBC=V&*cXr0USmb^jEzZq&;c-}_m>|VBwEP_ zy^8M4?|7`7N*F7huCTdd=TQKE834It&~0q^?(MU5jH;GmCeEAI!eW8T>H2UmSlC%I zpUri^bfpg!@P-b~j-#*lKyd4>@MP*al#dA& zH-nA5ByzW19P%LFl8>9l-1*Q@O#ATB4=lO5jBEVqryL=7ZpeFH1v(BD*A|9z1IMx$ ze^WDPnGktIMyGOH5dN2aYtsMabmkT zLo6+FQsRZw^-bo8#Wn6`P#{#q(E_{usWx~B94?+GY&=AYmfX0R0;pJMFZMu?b;J+8 zESkSSsFWXTmE|FuZE0Us9+|y1xg6imr$vw{+VvT4+qCvW*oTrjZY|X(FLn7z6c)AP zkV4MvJCuQF4J`?+gs~9PwrHqlbVt&0^{(S|W9sj7>_9OU%^$+q&(Se?hSr$aP?dt+V5*Jpvw zmAdA*?c_6De70|ts)&|rpe!^p-<|}-wb^#I+`7B+isnRH<3J)k4z5ReB1Y|vb^kD0 zJQd6n8oc&kV!6?oYfr%r;`6}b_AqDl0Tk-AeWy& z{B8`bY+S~d+G}#mfg@7>G19g*Is3&vD9R?JmxpIz>oV6H5ZWhtdC*2GC(qMt)(|C% zawGp;L)}P#^w+Q7`G<+J*T((zl9+J$aeO*|(7Fg|8;OtAI#i~-9PgEaoDTZ?Yb#o` zEiY>?W|NKaZea0Z?hvt@WM4!H$dmS#+01O$vsW*_$mN@Q*2|T9`ER}pA&z|@I@<-; zxS}dTW72Xir>njFGiDwfgO9+lv=d+co^l;4o|opYM%r(a>+vw%$&+#2r7zUPmqWP{ zmtuOCw;>tduxm_VfSn&qEBcB%Pl-`}=@a@RRQ&YSGOfk4&B8GPx%p*J*^z?T@&>u` z8YcZOU(ewMWPEx3#FM>=QQrAb|A!|QHA9o&9ylSYBC=tcico1i1O;d3<#tRq@`hr95*c*#FG|SJe z{==|wkIbB@B-Zk8A5Xc}?(#EKu?V;m*m5&a^do~meVx5F`3+m#7|3EiKYKCF&Dz&0 zzJ>u}f=&RoB9oUiA>G=cNC6=4`o8g!(o}U@?=(QDgfB;dGV<&_x8u;O?{^>b=|!AXZ_jBPwwFs zqiymOrF*LGGYmEEBUO(3D9=Gc1Gg&@k5oz5ehy{OL zQ`r1~nVZ)i-^IgLp3&p|GbuXpe(+Nt*p>>CG+AE8PqW<7Z4SieXLf6W=)5x4HwN7!(ZC?g}N0v?bxel&(N%DY}x-;tJhJA(~y zYl2npC%Rt3*1R~{!vQW|)*N(f8yn;AT+-g_T3=a-H}mqWy}$9NO_U)m|DN;AR(kC7 z;m&yY*@t|tuMqG0RF0^Ki+zkQzdh(q@?nkwNDwub{w%i`OT^$ETXN&&@o20<+^Q`O zF|4TUFZnV64Xt0BysIm-nFiPCt`{G8K!XBNb#~|#lzpR5Wq5&~3dIg!=VS7t|8pI` zmQiuzw{heB*_gpBQe>qOik#qjF(L7@{!HE}T z9ebivn?PlFH1o5VkULJDB!S=y8%3s66JBmQ9EeAgl|JHpTLDS={%l_O7)deF-sGijp4AiAk~g!P;Lj8GjxdD9Di3}PsVy}n$|ju0 z>D2=79#)VG>vm=y$-U?Nx7jL@>@U{Xk#tj|yo;QNp>2yj5f)SCYVmS&Pg|XqfcW?6 zZ(DYul_I>W-2a~gu3ws886 z2(l&u?aBqS3Egtk#PG2Lk^m!}uKBjVyjT#u2VeQC!tP=dGji1Fk6ajcuj$&a(sA2? z_HdDFV`Jp-McJQGy#*$}$Rgs{ln;5a|ILlSk3S8|bkeZGK77la=(M@*bJOJb;uQmZ zgeA^=>(e&pMvE$OZ{2X@sbj0$kQ;$St>d#Fj?uKO1^H;B)1PgrTt{pK4#&PfJkceA z{ba-TRBd0`_G~aw4U5@Z_Cn+<7d2~&p#VDNm%4uH%jxEoCa14&TJA(BXZuAS=bv(@ zC~6->V?Ts==tC~s)ZzOU@%MO(ib>-}I;}qPcbv>sL_{?AKYEj7WijRGU*+v&0S~aV zD?Igna{0=fK*CE0`>U*-G*r&ue4;_a`q~J1J(Z@4?aD{cKCFNJ4}n74$WfDBbWbmg ztgy^Ly)o)$JiFP7?h-{axk6d6oEnp@eQYiTkWqrG1#a7JAm`{N(eHv9VgaI+U`P%W=2; z+2*P7uf6(9YI6A$3+kVk(2Iz;RdIU#FvNk!Po+O8)YujrQq*ET{O0IWD8A1$B~?f7i#H&bQnW_-Ruc zyoRpYJ- zeXWjg#=K8FQI`X%=FPTt;Q1+2C8MC8jc4x&vVO7}Rb-QUV#?0H0=&a+&Qn{ikh=zJ zIegXa6R%?*pIA_rkKnvYkY4^V{y?W9NO7-lud z;J;55t95pwKTkj4*1A4ztQ|j~pzJ+ESG(tXcsOYg#3UlxxR$x%dwsCJz{N-wW@|@_ zxG1}MRzWDasv6?w#sOh|$ChR|Ek~9c&l3t4-yYlu_F3;P8-@#k^{-xTP02YrwWCs8 z@^EusCaQJKP!O@MIlje>O0inOj#qC&94`S}zg0?&VxvRVew6aEuToZj>w?^xC+Zzv zRbEzvt;e*bQY`4b{N$FMrac(45CA&;6>$}Z5gT9?Tq6RWOb~OA>=+IYaf=t9x-_Fj z$9NK|eS9h3BZ^rIb|EJ@G|zx*#*T7fKYem#Fe5OTZ@ zP;1|8uy2I)9;GHRMSd|+i(~7NVztC#kBxOjg->Bv%!#y&L&eE^W7hKzZGP{(I3Tr| zw|y#h{iRJwmiIB!BKOF$Q{@S9Y+vm0OCi)FPGB{3_Rn>(Q9X!}~W` z>kr$Af@9aC#er>O+56U}o-Oj{hk@k&LFgc~R!Q<gFz)7AewC?*9c{k0 zyVxD7I8|;}&d0FywhylB_1aq3@>DD(Xk=zISK;ZZn6+LdD)}G>9^EX}DfQ!np$$TL zVi)h?$lwI>Zq(PYtx4q>TWsuWL(4+7ZMemeYrJjh+u}=u66M0bOes-o?PY12*<$R; z>93oE%dqU|{_@WB%n3H05=eGWGUOjJUkZ7^wo$IP4xq#z+hDgpS(pq0Y-7gg!IztG_?F*1K3jC=ES~a?o6Svbj^+i-U;g~QoXbffY~|Miy1mPWAk%h0 z6MXR0>!Y~ zlt;<{;3vsP6p>OMc%_=B#ioZnB)jNQkO!7!&KV)NIkwU)*A}po5_Z* zcEq_4473)=4`y@Q+f^*{cWroj9^vc~%^tyVV#I;eZE{q%`G{EmK^cOp#;V7QP`Bti(EXZK@)qgoye~POEwk?90fClqJ3JQZ44r5`-Ahke!8Afg1s^5|F7G)mGxqZ zI_s-rLe=*PXvbM~++Tf8`kk&5P)+w44q9e~;zsL#m0I~C@en?P^B6VH~ zPh)?Pkyz(yKLG!zOrs?H6#{U_PdT^GoC9&dUNS0)*L5t_h$#p{7>fK*ciTZUvrDVL zj7!VDVXL{iZ@lk(c!qVfCPQfrplJ~}0V&UTAY#Gq(L9Ch#qXyspoFe@w$PetovpD) z+10V@V4SpmaU2Vj^n;Ve3&M@VMU>Vlmb%03fZX@$w}vmDo3jQ=UG9>ASD{l8wbK;m zJNegcEAf<3co=VUEDX&LD?{w)N9Sc6{u(m~jUD?#Ia}9|6s?x;!>(}%3{^XeJbd?!JbM1kHt4FJ?zsAF>bjlC;Yj=*-*X--nIPC*9 z)46#8@t(9cAboY zeL>x!WUj>a&5PC+9h6}Fs7CeMC8Jf!j>$h*m0uP+1JHO}8>hxCUccp`e5U09rIj{u zHqRLoakC8^PEhNMjfdwU==>}zd&7C3_V-feI}ZIo-Og`1HxM9!-5XT~KqkCtzMMNo z`%9@>nQJrefXe?r9n=rFeP$puzPA#XczJ z`MD$@XzI&SSl@tyUwP%uc*`HgHls>tge4iCl! zQ*Gy!`fYTw-^(ty;i#h)b%}ADTMI~Gs?2uv+!8Bk!JmB{TI(BjqR+9^>KttBkOoQi zf=x@`^2~$KG&S%qZb@X94!UTnBN-PhvOIruf*8s&rCq)b2IU?TSQ8*+u&(UFs2?vH zqe!_2IaIPGe}|NweJ(_MAsKzu7c>>Lv!PAhHMY1|DK9whqF)q9f9$PWIr~P8bzU!@ zjU?O6fk9~C(cglycqEP89#DnSBeY>|{@AcLzAc)%T0Vo&9$!02PRB*#z=U3reLp%8 z^j;ggIZ3!a(i_8@y*6s`WDJg} zuU~#EuE|6q2dwT!{4N}w-sa1^x`6m+b3T}MLD_;ieztj1^!vz`-WbE&Fxg}8#efTw zL&&d_h%0V;K$G8{tiwV_UxIbQ)QFb{-!S!C%KzX~+1Aa^9`sT+@Aie`>j(enkDqTm zOgA}Y5r01bu}?Ae9HS zB*+tH7gpYGLD9hZ&T%?fE#Gi5pWor)iMQPTE};H%#U4)J+7I7M9F{~34G@HrBkFIF z|E^E95c-|;-7Fa^=2BY zDWq@O%}+i%tAl4BhI?Zlo8EX+I}oBQesF;HuYp>ta4BbD8^igMgJV*k=0`5$+F#gt zzLTqj%pJbXnuPw82W@^Wm%7^akjHiz8drJN1FyH>}}IF;ITHpW4FSv8)-*QOpt$CK)w6Pq)cV^jPp*shIA*E<#qN@ZW{ z%%Qr(Uoi{i+HN&ztvjA2m8M;Hn_+XyIC$}zcihby996P4YU*vy1zlVnTO-z|{4-{^ zaclp0!GK&9Q5JaE*8R2FK6Y*!R+}VfQD+~XnYi3(gumT*%Ex~3+>n^uEoX70|8pWg z^cq8ym36pfFf4QFkNKq0pB^fp-FYWYSfc04wXpGU^5#2o&$U1Nt2hY#!kgp$bt^L4 zy?l{F>xl#|UYE`nZ$pW`HdmEnyH+5;GbcrW4qR~M8AaXB$;N3XA!vS3_t>1DIr{2m zKp6naX1o6-rM~U{)0*!({sIXH7jl#uFpNM1&oY7kzV-^6)&w4}@-Tx;oHOisAl%!G=bZ&k9E-HqpX*o2KLHA`wq zpsEMAca&2C8L-((+XE_J+Vfj*j=9CMK5|T5{HoQj6tZ{SP$u8w1CQtgs6P}Ms9xKQ zljB@2p!DjRit7wzm&F=%VV>4NuGX#b)aUY}!ss|?>U#wvW=pwz=k|^eY+TyUhu>cs zsr&4ZuP;5$u{K^`+1-(nUx7UCiW5*!HU;P9{K)V424VXLEy$*9Fj|w#2bcc(!2~xy zxVEm3Ot?037S6Hmd`UcRe|pnaevEN(Miu;B-y>@TE6{NEv6F*ac&I%3gZG7%52xtec8PJScTAI;{&59VlM4mTavxAo28 ztLLvfe-yvD{-^&m)~D{F2`w-$I5!`(ps@3zAm|s%`po(L!hdt#q}Dg*t$r8NK8fq| z1GByxpSt;!1MMJl0U#xODKKo?guu6%at^B}-|n?YW`0CLrVa|j%(eH*p@2ghxc=xf zf4X2(;;+N0#Oi;dazYUuMV8n%?uM1^)HhbNquv@(471Bp-i8N?<3P-m3sP3dFy8YN zkQ*23QVxI}_Pg#v+5UPs7F@^pu^%dF6RJ;|-13MWC5mf)B&$sg4#lXxW6gRp{GryI zsI#eXbT)gQKm}a#Vu2<_kOew8>PNk16zH_v3|$AYeYr)G=ZLDk4HJ3 z@8Hqzm|y!y&c|D<$n5%BHyb~4l?TtwII@Y(g(pXs1)crjgM^buKw-L5SE&J17Hq&9 zfE|z2hKyu)LTbPoFk0JTV$Tpf?l|b1`q_WfZWKv64kaC~7#RfSbMKM55T1zNA{Z<9 zjvlp3c8NlF0}tPp!?II$VpOp2v8LUMc~Ftbn;peXE>f)zYP~B*a{A{s+2AsqH@N0U zo|1A%(#P@5J-fI>*a~eXTi;gnp(lzB5&@_eud>t9bxJC_(a?n*xPGc;3k+qk^N)`9 zyk3~EJFLsGKxmJKWsbC$*L=#2cHQ%{PtpoQ4v_V3Gi3Jw@XMFqdB|nnzkdB2I%r|* z`vF?0FE6i~#A*?9JQ^%_cgp^bvg3K#!C1fM-Iy$Y=aC>sD`qC{o{_-OpN8HX&R$)| ziY*#1t>6D{9v7ZD@FHn^u%)4Sg>L@raLXDH$1mQ6Qbwe=j&(j|iT%R69>#3@cakbs zaa>+q(7kWZFoO8{4kybB@pVj>H^oRALKe|8559c(x<&Ews1u2^r7umq>hn8y$Btbe zw(_3Lm*4wGH5A~YNf+w+79$22sZU<|Gf@Jv5Br3HHzmk0^TNAm+OZ~We$XqGQ_ zz6s#?{~H%Pey6Tnd{e+B^wP;cGt<`o6(1}c93yBs)=G^x!r0G-HiPfihqvaMHWYiq zq7cv###lJ|zdm~7$bVRd?%#3tIYAn+AFBK&=$#N-s8m)x$M;$ow$@kYrQzL75WjT1^IrQ0f!(!f4?r1(VgqNDw8GkkgC6pmibo~7$e_!T-Xnr^^^b;B~_2B=# zF`y6`9i-gJo?GnwS_@KuOGp?X?a}w#O%>UyQb2&W{ zl;R8rxqZ0c@9C5TYin;l#4m+%ql&2O7c)gJvn%A<%(8hbY;`rqXR_nR0iboF8tY&6 zl%uP%YsrZcGak&1)2v*phfJk?8g0HD*XFc7`au5lg=qZMGmtS9uinN41BCY|mQvJ%>Aq>|tbK5tjvy&{FG5he>d2Mdr+HsBNjDu;8$fB&>h{4tG zi?@EW5hvb2+NY*HMU)*=UHhHg_@yv(IS5G2byj{ap6SwZeF$ybFqSx)%a|41^EcVc z&DPT4HQ6@cus3dOGT-&`z*+3{8x8?Oaf%ngXS$i8_ zHG?O2wCurdK)@2gZPC+C0^d1$V@3kRVWI*sSByV_b9SQbe5Fm*VcYfY#w$bO#I`rK9fo|;CW6DnqJwQUr)X_bvnoCMb7PDV)^<+>BRbd z&NkizmV;Y=b(Uk=$_a<_?*nS{=J@MApgAYm#p{@k7403-b^Yvot1LM!E5zrer!o8z zqMa8Co_qOe-FL3##}VUZru`u|=cjQ-U)in;ZPjz@dJ%gO?-xAmYt91s>V0Tr4e>W! zKhdUB{KkWxx%b$7*Lyr&lf9Nhr)xhsO;5DvOM1;esq%6dn+w|)D0ALmTvHer-Mhpm z_4FP8jnyu$kUNJRM1aRrCS8xzLGknhJ+}L+Ul)=NIPL67B`$Dwb6>x~!^rlm&^bed z#GY0Q2#Uh;%EQc)iPM}Up0}Q&~S zqM`PHQ9^FOwkl+3pCBTE*_r1s^-T#Url89r@uP%nt?l#s@?c^X(D7DRN2*=}#*UXa z=Ss08&}`HwpxX6T{@?`n#U-cE1WZT9CPVASci4y^?Ktp5J(@H#Fz#!Jh*O**!AD(J zo)f|^$K$TCl+2&l9JqtSo(6F!w>;M&_*5Thaf`_-Q9NrZubtuLN27D6^ICr8tx#-j zf9|)O9X3#-Sq9dpy2fHK9L<|hNIhRQm&99m#PM^S>M1=Dw7K=?;Wg$`(Enj_^ajB3 zv?$pN%J$=r-}Alo!E;7PV0*u_vII6NUv7ww>dE2*)VIVC#Sb^4k17F`wY9BURV$vY-L|rMgAs z6mA;rc*yDWycAt2tIt+C4o%d~!K^Xni7p$q;C8@`SI4O{Ud%jmGyTwC*@0L1Dnke*(2W*#Z@yAlL_J}6IqJVtbSJ(O0!=3ud?M_$d98qyC3GSheO3dW{?##_oB1ZT$wXQQ8o zJ;$NNB!woZ?IvW~GgMGgBp$e~f{ebRYLRf`XK-S>%+UF^i!7;+&8$Cpn0)lUwq5;FuGC>l-W!v!(= zClmw)^P`^I^308i724~GY^+mgR!-jtG}FI-`qYJyevM5P^mkMFlS?^C$N2OwRR^{O z%SS{21Py5?H#W9paWvk|z`{XjA)SDzt9=(1ST0XHVZ%t`>4&Oc^}#U2+R-_RQ&oi) zz1ZhIz_;R967DMtVgFPK1V3r+pU$gLzqK2(%CJ~2$=f%Q?v0;YYWh`2Tp!T(PB3Nj zDI~V)VQZy?~khr#oXN9;b&EXxxHd6~Va!-j#Kfp00vI36}SIBa6Y**ZlX zrN)nXw8h7yv{35BXL(U%KK&O=0`-QLAXAKt98v(z@z?v?7neP+r^e6q-&AENr8y1Vh zv^ft=k174mn_-@hiV>`N+?y5FDET ztHkggLd4(m9PQoMQP5j&IAwu<+psl%^$*1^R?xK@@Qh#fg22o-2DF!tr@H=9My|AW zf=Ays<@+9T$eBmSL*r4h%)!o00)S_ii&NF{d;XkDzV;VEYPva(^o5aQz!F8rhvTd_ zh*?m2(}4U7>Zt8{;MVKE|4qN&i}APK44?`~4;j$!VWAxO(OOsfHBtH1pAc?|Cs57T z)~8D4R{v&r=N}NV71`WdH@_i+o5yrTlR=wsS)9c64O{zeyE0KfmdlLJA_&)g^|8Br z%uZ%wSgyq56`FPiYJ!i8{$h2sn%nvU*B1G=cBE&65VX;+`teuHZZI5g#z3>Ut_Wo% zf1zDnGdU>xc|5i7Y7tBLPE3vHX#?&=-t-^`XACqP>aF*rdJLo&&+Q<_+CG7YII@WU4+Q=gbm~Ka+zHT<2uhV=BqQe#3m&d2Da^yccW^w0Ss%SsIul#a10&AIO@(Z@cLZ;_H*l@d1j+p{%3;$wr?B_(f08+8!^iUo*wb5UfcEEZpa;L zvSO3N>6j|5Y_TmGhrgJWuDv55ohE7AHN$*rybmDR3FzC$5~AU8YMk1}OI=}m=+8UP zoijX#W@eiOSfU%VON_M)-P>j?a-lBnuKQ1C5I})on+_`rk6qZHp!M zFO}HRWo@v>f3A;M8awfoCzV{EJ>pN?u<}CP3b78K@&t_M8|(9exX%1J-i${$^v!VV zQAcIug+zMZZN3m|?`o$@Gf+E+4s)|vv+=RtyByOR(VIVe2rarB_`+&ZUnOi^vTHq$ zc>{t2O*4nDAQD6k%Y|!`9CCJ6vb~@;Vtp7C9!W2L0f*{CU=gBW` zc7j|X=xVvI%@tWD?AJ-zb`6?iST$D26}CT+^@bBR?;cZ^^}lUmmDY_-i?Yb$ zynhH2*RWBMg3an)-|Z`eK&bE4cMg*m6U;F;*mVuSBoLzh77jnlwYagu77fXEGy~{s zpHGi&^5l@c;|E+XZjpB#Y9r&h927&O(?5XOTZ!kzEdrt!vpyq39LBZ&QFL4*kykXA zKLcI}GyQeQLhgkp8dLE4feSTojo|(H|C|x%&_`C8Ll@$$YP2XsS8E%?UzF5u-Qdd zfr-(VdFdbyqJ$@jpY>XMK%^b(I{T8{!sckt*HU8c+ zdF|I`Kp1)M`q2%aQaobg^#?=jFWgbZ_L&OyIR^=6PGiEcaHx4CrR7Xs^3g*(3MiPH zI$arCb&g@sxApOH(u06qcMgs!aXVQY+u~;^9p;o{ss5o2`Nm*Wkvqp+yD0K97PG$p z#ee`vo7_2W<=Bui$=DS;ZDPcWa@Re9X=Hu<9u4XywCmY{s&F{Z*&H^$&C3UWIbBYc zGn(L~zG_=5U+yNoe8?`2r%c(czkFlSF^=kCIR4Gpco~`7#sM}on_oY`SbW7{QGRM8 zC!y8RZCVN-jDE4JtHhkP1=^4^7VwTOYp~OL>ULHyV5Df{l=i)Y z$fp98n1S1lA~lsbS=wfE7d?7+bATzM-Op&&aQf}{-@p8mzZvM)FaN=R z_#c1ypZ@3nk%y1}(wBejU-{R2Sou5eet-L0Ur6)i|NZ^fWcu%oFra%tcN5&N%V_E| zgS&*mnOwYR^Dj&O{F6s~_}Rm2h9u;C&%Jk`vHaa9texzfOT_0O%@+s1ZpL7Y#b)Y1 ze%m|qt{6Uy{++M!Y1E~#T=j_)=MfxyknV$)#sD4W!@DJBN%`^XKYaQ6H+Vv050TBC zzRYz1;iz4~L#8T0loP)>=T8~R?;bkC*SQF$Unlf8d^%Pf@4n2FPs`1idFUkSb+@0C z+Q$pB_ksTJ<<}HAhrlskU^^fEd^zFIKRA~BguCBt;`Y^>ZO7vX$4{M&V{&UBg6F&M z<^5f0AHQ$>Wyp`;_!_7z!GX4)#wmq77}K7|yy5R6!Z~DYDq`k4$o!Q1>)Tu^#r_-Z zzti1&Xw6uUE7>6z-cW-=3h`Ggp0v0?t3PSu;jHby{r(&6TgTo*n&QR3pLK<`TnKa zxaG2(HjL%#VB{FKx+WYlh~odlui+x8GKPgq0s7+c2H>~9XYaT$?_oxP7~t`h{&juv zuRgvy|GZe}(}wgX_`V@vpLnhmqrY+?pJk9S_MNt0jhCb2#CiDxzRoN2h4GjF^1t}6 zzWlR)`k%#4mfwiMIqJMJImRR1pX;|BU=N{3XE%zij@ESccvuVmxT{uj>vS}CRU3dKg1Jx2psd{Z{e&nA3+(AA`ISPo~`bxa1e)?b~= z&_+#SVQGyd>?GP)Fj>i`v239SFGj@Lv`wApDOeVF$kP(Tob@3Cnr(EvEs7_GhsUqJfrJ} zSB0F+j|0iUZwL4?9V%L#GX6CZU!iTRRp!O2{fa0L^lK{dwe4cbT8!J!SC2zVKIC$| zxlTwxEG5d6>>i>jrM_8%oI*zq#sxu5G>^Wck3>6Aa|yTW-v% zoa3LR!E##``#Qv_20ZxQ6aM)1iJk@!_I7}K_ z*F9>63$Pfq=tn$tl)l~Y%t@PEYE)n(Vz?(K^}iXhPr)Kj^3`*mG?bThcE);#iKKeTR*d@{r%z&E7HokK22b7~jf0ziZiF2sXy5zFqnB!&G|r+>-Y= zAi=(C540P%S~XY{Xu)#PreP!-UbTAB|*hos%ctTN*qB+4!tExL z0~T`NFrI5yw&iVk9Ms|_tRDqx_G>z9uLH%AZ;@Lv z;qnn*1_njN6PN4SCXYU6=%KNaJ|!eQ8`~#jmHhr?ll=)e3yzRp%=yC+@k$_EGA z^=9zO{PYM%b*(wFfMRsFU05>-Y6XowRAnH^(j{Rc(TZIj$dTWBGV-lF1+L zbPCISvDiQV^?&o@2gzUA2%0FY)d7LDUcWYgok>+@UYbHC-2Wmjl~?{?<;Q+{`Q+u zA#$8K(ct$B&%L`)xiP86pFAvgF4#A6u)BI}iH=6;cmgR0^3%s}Uw%y=8``k`@;kOZ z%>4G}-@!9yULMRsW~MF0jd=X2#F)cLq}rcgw-B%P&0qDxH7e*k8VsKgSNI4&NZLf9SBi*+tF) zwKw)vLO+-v){URc8ygR%jpf%LztNxFQfKq$FT9z6E^Oe){3266Q1(rNf8ev|eSbbg zeW3k4e;cFyKZGrm_*}TO;DdSUI5&TeBQryL56sQ4oF+wXyW@@p`H{0Z2T>hf z`#LDzob%#WP{)u5=L~vMk*jasAT+_?mS_ZSDKI2>gMvA4eJ6VHF=E`@D5XE_G4lru zW;!ASc!|dtqotf-$26tc*#HFXzj#Lrch`m=KK%E+DmHb@vewT1uYDESpI?6M?+w6) zue!gYyXoVb128cc&N$xu`_3Dn|HuFSe}4Jr|Li~i@}K;t|IwF!^WXSa86O24zg-l< z#6i;7wpZB@?c7NXbu(5xYf=N@a&3#IYI!jK_J`l;XLjj@N7XEA$9xx}(W2})0eeZu+u{>GN*p%lg4m8mFTzu(T^q)g1CV?* z4waWEBiMRoDt#!in}tEqq{6lm2R6CvjWqj`oFd`p`m|I%a`ug7g@8C1!6-FUg)MFN z4TaV**ALgcT0x~OzArcR_eOS!IuOBT?;QSY`KC$uD?4)nd3wlu@Q|6@EL=awLw%!@ z!^I^>iA;4zL(>vm&*>ugJ26J88UvX@>4wM)D`s?mHdcfJ6btYE7fquyQ0mb$#xuIBnC5V`5n0abDZ{fPciE2V6&f_7_6+*_lt! z1f;CC;2z*Yby-nQwHjJ7;@mh#Lpi@&v(+1?3B}~xXkf6B>wF3ri5<$N^ARnal?QNh zYlQ){wF?P3*r(Mm7dIcYl?zLGxienJU2iOfajxXox<9?wQkBE-^&+r>f1m7>hoYqjXF?x3BwW9@~bzwQLnEwrECTzq1-OY-12cv*SfZ- zcJB!2Br=#V_)zBl?`3+%b)sOihjnRKGBnn!(ARH@ zl$nv<1b_9CM?-nwpq@k#}Uc9uIsN%?4We91oIca2h@PfMRBv!$>1nZELo_SJaf)ZquzC#_N{N{%{Y-M zf7d`jmk?Vl);S-1C1{&J;VBwLTe)vkBiHX<>W2gHa#6OBdH3~vgc`0^8i+b}1v(!U ziAWX4U*q2hW#N^+o)+ihXwKDWuoLgT#*1|i)z7(C?rj`Nh&f2o{IvuIw&6r?>sD(s z@@J~g?1*gFP;jAHJI9Lr%vOc7^?3&+DI6bMio!39Yu~VLN zj~f-{!A!ZXBdobTIzNUg74|gSKeJ04EZY(CD%)3F?n^-9TmnLH)W6tN&(MZX)8N!o zEdG>PK1l?TDh^8 zQWe=@4K%RqXl*Qst8R+~34gZ&8w}H^bJ8?6eLKio7Ip%Jpd91EPE_$dwte_pcS zMJDmj)bgU+WR*kojiJDl;h=SXr|VKb!AO( z>I5u3AENagddNL4$;dqcNX3Vn^0znbw~V-uV2pWl;>%N~cIKl9$ro@qR&H!EK(7VW zs@UTwJGr#jYsZ7~AN0vrp89n&622F~g5yIne&YW<;J5CJW;4Zst)4FiNjX2?gC)nC zR~J6^?W<)t_8`F%FtK%gW}L>P&o&~oTwOdKIu_vmS(qxm0qG;}tzT%w5m!Rs@=yO# zg9rCkdV~wSe0_*5UKi^Ap93GVijCbbKDG7T2RO^9Pmcp=?t55TZd6pqeDZ*mvbn6+ z)T^Wi)EFy<;B(%_r@25QAH?6-z+ZXMCs;=7FfuRvG0JekuxH&`@2K0Kej@v8Usa_7 zc-pZ`7sovS7qNJVoAy>r)Xn$r&YMiNU@U+MDXtI1!ju0806fQRZ^WQw)bC{a9+>F& z|D)~QTCMH2^sMo2zV}<-T2-+&SgWW)DOAt{|3W+n*}8KYsk}|M`D>eErieA8&v4mvBlQ)!aK~!f4UW6K2}{u|GlEZ81M=m!nOx zVf@j(jYwdhK3`6NhGW~oQ6s^8xDq?LHP_o6 z0TtMsqqA=Xo5cVbS@f&l2xC`EL0NaR%~X;9$=!{P{r;gb0ikNE^~R;9)5A_Gor}gD zZH2*+zc%uA0JJZTX`i;%G32@dI#^tyV7cInCW_eNQecyQJvpb3&JFgq*N33w&SpBA z{~lk0?gdQRJje0EP&@rz`$Tb^2WdXI%?>sFL#0@nJ=q6GF^ObLt(RDgpv2_5zRZXd z7up21@#v3K8re!t8Gkj#UZ&%+HA*jC=XPF$7s@f-_tTw2(+(y1x{uQtqmC)G<&$y> z>4!V!6ouqnSk|~bByMhv6jCKPiZjQav0^|%RXtxf4?JFv$1Hk$6aKiHqq{LmqwUyd zH(_*_BWH|XwOf21qq1DYvK9b-c0QNR633-6%7=G+?NU|E!%O3Gn3#O9k4*E*b3Ocb z9ZJi3`K4bkJZ*+Nnix21n(`tK*Sv~Bv2bp@^d;E%N>3?s-8gst?ihh>#C^kD0nJ$$ zmDM!s+S1c-^oEb#*1ydUb1xS}NLhKxjl0M7%WD0JIR45@Be|*C(Di`6aA0uRsm)la zPQOh?t~`HEXnG8=`r-1*U?olaX2A3&gPb|5-^FnC8_zystd*y)T4v0Mo6I|QA0LYm zHnldd=BGS&$fFM%_F+u(Y}C)1u8EomVtc(5;wfvK@c_WhU+0SB$&0d$C7S#i>FnxL z{A?Tkq&@%LIgl*WQTRG5?d>!p41zBi*5WKD{}{E?&DB#KR|@hT6; zlm5#kJ{|Wx4zS^Oy?9H zKULEYK!-~o5{cRA0R}+ZcFd&Eb$ABQNB0Iiq2PPT&p?3@pMLY8bTk4OwcG2qt=v@P zra&=^g^kG>>&oh3ceOO)Ute60vFBJI*?a_#uGSWLAF+tpaR58ESdQ>)i@i5wCgdv+ zshC-wKgWc5(LY5$`3C9)8Iay^k2^6yUVl95ZtRVtgwm)dOSQpUzO?$=A3LK{tCInz z)C`Y!rbdg`cl}R3?MWCOvr62xC8U`2-~3O`CJmTO6QJLDe5^(jM)6V@G4m-ESg1At z_O|*52gbIMqv|m0ukglJac?oyydB;4>kkUp)*mxjzWg3o*MsGKk4eL0=N8(M@AtQH z*|#Xneqi9;Fs7T6Y8=bHeDpyx<4lL>IM|KGI&<&mndIhHM0{Q*O%C!jFoV)_E zPH<_av!}HJ{b8-y8uM#GZb3r6v8UfbEDl7nK6TDQa7H8FWv7Pru}; z|8KwQ!szoK{-B$#JlBj#zY6G!bbV?!9CL@C_nbhQS8{erxR~4S3FVu&Jn7u@f(J(J z_khr+1C*k{h3$!VxarysW}ci%+=UAa^j(~KAQ|1h|5H5YCOpLR31nw^vE#{Lsdb}9 zOo+bog!to!FpC%Rjky&ABQN$voV|+;EIZLJ?)2|zL2P(any+k8%_qd&9G*@>)VnZSTn`%8s9M`j3v5cR@=#-F;U)fZnK<^T&_eVD*g= zbh(0OfdgjB(5oc0R}hf88~y=}~WA zS{L7s-|`s&^458C?P{QZU=LSJaNO7%K;rai1NuLaH=amsMxOPi;Lyi#WQW)p&&?6| zq2Jd7>A(Ka(6J87-!h+e5o%nZ%UW)HtaMX_oD;{o;qXnH&*<;OtpCD8D}Da+-2~v0 z-?S-f?)P;Oi1~Fy+J#-RZ{GVgK<5(?CJJWkat-h+e*EMHsa*)2Z-j-{`O=$1$T=r0 zdt%!hreFQx;1l|9<;i;Dr=8vq_wV3pj+h^x5zjt-0JiIh%Z|E>5qmbHjrjT~l)vQ~ z?d;1v$h$r{7dD=75+@?)kZfUuM+Ec_W4lo=rfp{okZc?sZ#df;CA}Af_9hnbVwjZ{ zKn64`NsGEBk^SZa?VcNH*G+C+n2Vmeww4!(3}*TWJD&=^9FJQTziZbI?FrUz+^461^qJ84>ADRsLzKLQs{_uc3PYp$Tq)Yd z{<>iN?vpRIrH3sfOizR0>3@cbbCFm)Sx0sQ62ojWV_B~FMbVJmJ%++*z8PPA)hA^5 z?Jt_V?40f;mJ!eIjhm}a7gSnHU!OIm4fBFJ$yv-ozInTw4~pKgsCzGr9enuN4A6U` z0+wrDZ%8dD*#Kc%SeyI8H2nF8k8l=G?~JIC?bXG&cKc6$seIeTWZQYJu@VYyfa{Y+ zx?m9R$ZA8m>|tLE(KrLUudbjCeSe;Dt48RQ4?sZY;bKXJ?eq$W!T#5b0AQDX715}I zxP5FM$Gd;G>iB_SRep|@1$Q=f&SQIVAg20DHB$k{qgB}sAKAaS2?bS{h8%j}3$3%Kd|>SAfY*{=Uqodf#nd05ASB&LU&y~vC& zl)@=C#@RU~q<;rgdzYh79bRcr*S@$(#hN)~L%z#}3S)nL6I&gRv8Gw6WlI&gXkn&p zGG?uP;co3nN8hzUXEumkp|A|!9CmN5nVW;tk{7S9E)nZX^%4Po=>`t6fb%;t#;?r;=~25_H;T=95cvv zoFg~#BO9~YFc7ff_*4V}3{6QQI9|q-Xo0)v&`H@)$WNV{Ph0=Z6*Gg4zT%8QZECMN zUELJYANv$+px9>|o}O7?pKbN+FsIEQuLI$sab3@&Cjp<3Ksu&j%{H zUtrvQ$b@zcJL&tC?^!Qk(a89e(^(Yaf=}lEVszt&3~i404XD>|j#B6HO%9z@&vtsS zV?LV&H|F%lgPBpk)KbZJrQnTz*+biYJfF~#UV2XgDY)cPfKj8(!9VlB^A7E6E~4N`=| zkA`^bmvZHAW={TKPpF((JF5P+X-Y2sA3zoh!(cs&14DTqQ3D8}9q30?3mdFUYxYa5f)>^n2to4m%uCzH8?<129ZIuD+F^@*+j?f3uY znddR{>KjF^7xq}kkcjHi>or9!?Zv-s1$l#EF z0db*tV`MBBWSJW){U})M-L#=OPmp`2nzrk|bd+BVw8gs{gJ8fs?I}(;$gIo1py3yf z`$mU(?5SmgT~xtE2fxcD2CL=DN7yx&9SXD?pJ)6#i&^*VAVQoxfpOa>2J{WxT=a#% zzRX|$ts4*aCq~A8pQ50>_$flaluZbD8iKtGZsT~_wRdKep^du?-u&!IJ^WU`6D#`e z!PPg2k`-DiVikNa%%2|pXCEYe6nvW9uO}ih>o=L?o~|+hu}9Cc!SWnz*m)D@$xpu71v}g5ms3jE zrhRje3@YapVq<6S+4dHHybUPKI8kuH5Zb10bQ^GFIw**%9XgGbUs*-jPkGcRr^a1* z`(1Cy{c+!%=@goN2 z@m+gGJfV71mAu5{PEkr{m(zX_|Xp^-|`h#pZTs9@%L+{ zd^6x1x$7Qf-%z+iZyb!8alACWSahv%Og*~T(a9RRoHwp6zqF`ER)Q<%yF(7oB@KNZ z6fo-8b|X#R{4L$}q3q1ZPONk|+`X!|<6%bV9cJz$=^HA39hKqgcs&Vvwl&^!CA;Rx z&DqxM@a{3sSYQY6W|J?{fkQa@)*DB(A!cXu-dM41oa9%v*ge}8Btsfz@i-Vt8!}U` zPJMubV{LTw)mTfVb-c2O{w5Xbv zoXT^I8kpKmMjW{+=x+)tt6)RID$gKF`mX)i5NqY-gx27~oN{^H4Gb{CXIy-<_}pn$ z|H&VFjfHcB^TXnTniO`XBp?5bOwIA8SgRv$yMOm9icoEnk9rxiQp|3bw7c$y+-9);! z>?(rH!orx<%OV%=={nK-$~F2Ny1mGVO>o*h7b}XZ&Stj3z)zb~rBFUnH-Fs>i)OX1 zcly>v(@}8T98+VO7Ujn89KZI2{+NqdIK)xh7h*QuwAT!V$CPYi=cC6ib4WYd6$dtQ zS{@UVO~!V;0p+-jab{Rj8z&%;kw->CGG-e^Ix*E6OOM-Z9C+!<;q)|i%Hx!bJpQzH z2JMS~C%(lQDS|~Sf6MvM0D8GGAl~I??=oFmJ4UH%1ydf!_!Z9^WMXzsg>a0DmD9ld zvVXQuW|l_FSP=99EVquCmOW0p2d_&w@cT!+CkUe5YgV+R!Vat^2WpgeUF;i1WshLl zRdlv9l$>^)C%qv?QO_0LP0IP*1wZyXgy+{{f7dtVy|JVAGz@|sZo~b23n>D;B_uX0YX_}fG%R5C2vU-_db41>)tG(D!)np6k3Vh1 zi@jRIK!=K<5|29x^ubddFvNBI{P8zEK#CyiZ#~MF_r=W`2(XjHZUlL zc*CYcON#JvUCt+&(9nZJV3dn$DkPvF%Dfz?1gXzm^N`$>PWgFMTx*I+JjD=AR*WAU zCU0KTI%1QtOef3AY{MfQbjx*u)^)f3(&nX~*DUgL%{G6aqr20Ws_rNqx9R!D%hu=2 zjfYJKw__V|%@%m~e`gfcOAh%v|1{&K{&>z_ga2xL)R)2NHPcWsE+7OViGxNg@TQ?{ z@KBPT^UpAOS?I7>cDpwkJ6Af%BUCXLhuE2i=7?)wan~FHFW<$$z>bBMMHOHMJpS&Q zj6F@x_or;T9If^Ir~o+k4S)9XgknV74x3%tkh`oIgQP zFH$xf8ycBUN(f-A5R1A^n4?L1k3t zrM1xtxavlzEZ`hhu3&b3ql3yL6@sxz9}W07e{JwS26gjDtY(z`-eWje#fP>9Ezr1% z+xo80mXYuN5Vg)%*E-)0M`a}9sO&8h$|`sKJscD9MMz(kCoWT}4+161u7r;NoI4C7 zgD={VywuIp2K^i-<3O`9H~xxHHa}Jkx#3$V#lyD7mDNXHoh#b8eqBDU)$vru+~BAC ztKzH4ylO0Mr>)!x(Ofmp(J(L?g}>7<-?3fvXpgnF`Rllks9bdS7!Q%JAXjCZctzZS zx77~+@~f9MP}II3*UUjP6h}_T={&L$I5RL9$wo?t*$`V&T~iBei%a&$!`AFYP(?Ur zV&v{?p3rem7_DpW(h=8$2|*<`7wHC$QDItf56sD>p7oVGQKVm!YG2F)k^bU+zf`GtgXJyndj7azNz!G`$xN8G@a5sf4%KF}^56Sjh;m@WBw`?P)g z5oR87r<}ybV>iRtcfiCi$A*b4`df}>dt$U!9 zfzXr0V9mz!Hrq#AC75f}zqv_}yC%9-lKUqA5EPdVIid&}57pVD-lGJlAh zpBC_)b{z0rpgpgTuenjVKqs0{nkoKrfS2~oo$?>Q3y2W@;eTV;IB{T7=n_WOZ>rBP zF}UFjR^g718ET0Y70qJ7+;CExem`f4DSAw)cJPXfRD`W$0` z1R(Vd>|kJDP;9uK?F|);Xn`EmZ{(G_42yLw*y3q#9q=Cp%fbVo`D2K8AwW5OP87s) z&O@%bi@ZUoZqYhhu2M9vS}msH(cww325t`blstXgMM#>9(`@k%Y)FtiBn{EPGHP@nVTivHh#W@HaIc*(x)!ae6T#MVW zV*a$r#`P8Ua48b#J4OWv1e+b(qlv)s=%^^F z950QtzUUwFO^xzFe_0D?1gY^{$PZ}tik2Y7UOvj|i)%^qK_$7^PT9Qh+rg~wxUjaT zpV_0P9=OgEe#_%QU_&T=T&Wflg?1c}?bcpt=z};S3@eNRqka10LbrCoHLvB~$MDf} zPMBBeX|cOtwBbkJdyQ;MxiSca5xzD}!Tm3m*hy0<IUTz!7rT%$rg6Z4+GtWz$O zw4*(>F&qZ3z-(PqhOJoQe``9O_G_kdQ!3s1uPv}T_0cBJNnCTiXvtUFR7R3Gv)3tY zdpLly=T|C@OJB$y$;(kk3yE38PwmdpuJ{Xyc&2a3L03?~lIRu>&oE=v%hT%QGIjZ9iK@Fod?z z+?R%2J>M%i1>?j-Z@#+yGF!^Jxlrgo1RpW`NH; zkbSzSYa`D+?jq~_^-Zs>BkVOn*UPaHF2;wS#cS?}xcD4dM^4?dW&bohbHYB_tb>vb z>+fms|0Q`E&LN2Z6+{g9e?eWZyx%7-{pvp7DF2prNy;Yz#BZNsT9kzLA&&mFJ$U&V zfsCeN$v1ZU0G^zUzX3N;{Q1>)UK6P1^5UmYjaBaW2EHnek?SA&-7=UdPi$P^h1AfS;IKKFwcrS@Wwyx8ptQ zqU(!e0R_~p;}8}7rG`CY32)r8rFqDMA;#wee*0;B+dXsH9vw9`gyPO6@IhzUWsd17h0u2AiB6D|5F` zHUzMFXX*?eHT33Txx1)I*XM*IXU z7%q0@C>;CxVe9DcUWPFOP!oGun2?FBi+muk*CrU{Mi>TEb`m;^bjBM&VrVQ7L}KR! z6af*Vc}aga#>waWQVw}PX};?j#W(hT<*jopoE(A=W}Plk*N$c7D9^IKiJ_q6{guBQ zXfj^ZZEKTPEh(Kc4R-=0hOY7)lv>jPYThE|T%+}HM@Ad`Tr0T6hCI3N@kf~ai6nAO zTH{GH?9(AP%^~l!(`MJ{G%vRtJLK@Ca}wHJp@c*@+g6mlzS-5}!~=c8+b$EqDT=(imawsKN?o`RreeB`%jBI%@P z9Ht)a|0s^1`M^T}3aZU-MGDt~fe9tpXW6y_h{Bw|7&>NfgX^^?B%3%^*VCekV!Sl$ zM({M76BJ5*0%cnVn@(tE?twQEmxk@N+Oc;AWZ^2)%) zcj=&^e0C8jEL5h>*Nl~Ygd00dG0^m#)&NO zvV;}{o@_ht(_xd`TnyxZ|ZCg30bpZ~|>KmE`D zi^sq7yZ@$alN){&m0uUEu;m$hJ1<|#2C%XG+5U;!=4^KVN;VzZPVyd}DG(M$v88Ototpu5Oo~+}r41P*2_6&j1`9IlEmv%dgvD zL02x=b>(W**2TPj-56YqlwQ4Dd7G|HWz~0kt@lzMhu89mo&!T_y(oWWYpsQTKgHA6?)&+E z{W$zz#~gXr=og8Lxt5_`JuIE#)Aq6VtViYr?Ps|moIWpdxVo<~ZBxj$@5e2RC~>Cm!#lzJinC4`+FSp_9Ym9-qZ@#BYD)b8+A?Src0W;iQmY;_)-I$+%`#SAmj;Xupfp`Qw{eo%mOsrcxU1 zTm+h3+={6Uw}aD78i@EKZv2cXI?8skd35x47kCsp&N&V>9$PAbAP+?b*^E!_mFf5? z#V@A-Z0j5o&x)@9II53GbiR@gN1I0Z%#5!|A@4cKZiKw(MHyLs^bgF%epoW_Es^=rduyxmSAxQ29*SR>bo8HEJ3OS*Q__4sjrfNw`ho8_BSKjQ)^(y!)@8Gi&#+x|C`VmB4TM)!{%W)| zqK|%OlH+y#k_Xk(rYtz<2%UbozJZ(tUUq?JpQXOC?Zih;sx^|B=p-Vl-BFy$$$c+%!xUeg)8Se<`rFD@pi_P7SHs6I|Qo1CwmkJ_AHV7YD>8~$Y4 z+=hVetFs$=;Js^EAib7kpK6_=e5l1^7rvx_ucaU8=2zreE_-rf&jSabP%`%{=eMcxZM3K z>~iR5d40=j^oe)dyno)qWI<-)`5Usa9ihYOar-OmeO(9 z2HuR=)5!;$Cf9H8Q5lz|y2k~UMSz6brX4qr4g4^%cgA+i9Xs8hLi2{W^V}(>`&_)O zxj4}03hm}`v11nTh`>AFbl`YEcgM8O)g~)$jKm;D9dXeQ6RdiTo&85&OxruZ(3bTa zJaX)^>rM>&l7r!q)35Fyc5IP>IAS_}ma9J3y&g;$Wx4{{IhXO)2rs=UkCVO;a*vmt z?0ZboGjFsT1PEpS9K*Z+SfB&a>G0+-+;l)b`Dv$h$t-sE+xn6}t7#`O4z@c!i&%t_ zR^i0i7xY3;7lkxj4>}S*$$XdVS*7q1nF6>#$PR_A2Nc(P&sUj%%_0k=%MizJ)jKxZ1b#B-w9#rX@TmnDP8#XEZv4 zyfKNNoiP!FKj)P(N-W*ORG8|We;KnBY^sMsM3y@S%qnfo9kFX*jC=z{Cq}LKt16De zbvNxcj-BArF(J55B2jTE^kB4p*#&tsp>tLIbls4L_sy-DVfQY>*$~C@e=6_M2W42*>)04-b^d2q3DtMWIby4?^2FJxR#M z0P-9I8DC{*V;3BkMd~u#2K`mY6(Lo&4V}N~M`6Je`;XLbLo^AXatygd4 z=+Dc%A%tQ2a&LNkN1%Gs%J>$iE3Yq&EQQ6_@$I4#`!_B!TzJQHU1Cu(BC6uU#toBZtjNO8G~Jf>f-!i1xG$PVH%ujcp@BUtI!EwwK+fj|!Xv+LJhCZ&u=mdQa(~YlzyaC$M3F-OKsZ_5lMsg8 zC|7ikk!~u`Jxa>?JGS@49ps)M^V34h0)06#1>-qdVWQ88zW)ez_bwejYD5Ka;$~ zW$iW=Hf;FFiE9C+w&!=))7Om*RWl%vcp6(yw4TIwV+0uE14Bd-J(zL`LQC}TIC0tx zfjsC_?2IHOTj=7&W79oJ@J&S5#cagieuWW4xFRtwFVqLRCmHS04C8ZkUHfW-w{yZF zI|sgGy18s#0OFggaY4Zx6knW_xSN|{MO@t{ab%?*v4)i8tLKVLnqowIQH<=ue%n|C@cQlW~)4+X)$#a&0}>O zLH7Dq{;EMa-MzX_n8L$Uq3l4=nD5C+%>>9!{Z2k<%idK5!!^xV?4-rZ>Yf0K?}s$E%|2yc_57=z<0P=Nhc4AOffq zAcgFD49F`5+Kg{GOU-ea()xPEk>Y-E^7qPxPn=GlSa)64p4-)}=J?cV2e`_B&yce9 zf;<+?rGxEQzdrwPK83-{o-`fCoQ8pzCqM3aWAfR>e)$7F_KUZM1kJwQEj~L&a@(=~ z@$Q0Goa4W;=4Y1xCHAeLF zGR8#RxCmIl@h<}jjSHQ5NmDkcE59)q7qrLUSFtn;zk95bne%yF`b+thTx!|Heo5gm zdjlp^TY))m%n&@?mzTVarE-qp&B@NYj8`$mhd7^cmWdM{O!ageq>v}A<|RVG}@lL#4XjJ|8Dg2V_kyb_mJWb4n zMxV+sejcxAmv{f011u5xsz^z>cC&fiiTK|57TXPj&cE`3Na>YC-uXYS&iUAuDD4Wx zu?dk+{!gRM$Bb=Jq){-|7;db6bNV#kF@KX@4*0|WuJT%9V>`8SUv*@S?KjB1BS2F3 ze;@4=n%aqQ$11bT;koCoSjoPh{`~Mc|6>SgqwCi)mb2zQtA`UEq-3R0*zoh+rH zb(FSu^k)iv$ILatMW^{kKkP9Cu2^xgEN~bc64U`A;!U12Sd`c-O;x@_Kk*dnrf84+6$S zz8Wb%1{LofyyIT`CqBl}`WqJYeqbWrF(^b24I20CzIlB0^*-S$G5vdwJ|kIxI=3XB z8dKxLAD+TP<*f#H?xiC>{mW6u3Km>Dz2%>8DecMRbARsNd;HEn z_uE)w72yVN_alnIxM*tkWZ{U7j5P^;pp^9n+l~ifVdMseT9+1Qjqe4xyI%poCm;OAhvEtg-It&L;Ugo4a8n@r`qSgQcTRI&-*OcPn7}lmB zeZY4-(jr2gSJ2a((sAQ9(zI@C%q-^SxHX=LN>${|$*DS;ckNaQliBS-Tyo^u=ela2 zX4!YnY1ztYv|lOLfJTRQV^+kFD~FArI-;eEUsesJl8{_T*RSpb720Nu($_9qVW4R9 z`qrk@71ihG7*b9Lfz}Tf@%RAJ1Qcx8_kpoE-DZKCMC|pCT)Q!i68+taorCy;7v_=U ziNC%_!;6`ZORrSZPcvD%eCtpK?*P8r2Qa z+7X_7`n6`L{BL6FFz@sT9tIAb_=mme7_HjVp-0)00O2UIk9i|Q`N7BSy zCYidxtStvJlDf=KlQEIv8Ol0d4?=$0iIARyTB1^%JsMlI9H=%lQtE}c&m(7R$q)#! z)|;o?kOw%F@xzw*+U%8zp``4ItI2ba;D7vJ(6+G3>)1Ro+YXH|4?jI$W*z>-qOsCH zP%R%j3aB;S2E?4HWtaj}znm0a4k;&|yeS}OEV{Wwfg;EFwO>Cjid_n5bE*_fs|_#~Fw65&%d*x4$6syc1gXp1=zxww1 z@zE1j7jsWggg0~sh$iYXqfI|(+Zc?$4)t*@@bga@7b-ha)|c5*uZ3P4{M4gOY$)$I zb+~KXkP)H*5aHF+E&g9;eX^O&SPjE6w!~A{ANE1eCcmu}YR%V}#8>{bGAEw@Fw6$q z)QvH7%7YaK?tG^?nUSS}u}{9cy+I~c=KF*;PKXQ0$8xPtnOAHTW&NU6UY@1;|28~8 zx`1p(BPA_`*eKFYrTM`a78gl7p4g^71~4(0&V6*2I$)z0G7#fwUjra&an6E<(sWM? z*psSa1HxW%(E3@L)a7A6f9k_2!(0qyLNAFyUq8V|nLU2VP2apYXektydgDgH7`Vl{ zzQxNPJ>6irACNen##^=9*emy~H!!I8kC{L6l|Z!HQ>bI%CFRl4t{jk8sd38$jW>RR zxrt-3P-96E`wF_B&1=LPY1UZiJZ zWeZ5=X9(0VR*+6y1K00XFZL+nm~rmhgF2~w4h7he`<)Bu#y|`-r95cLt~2V^rT~%( zgVkQ)jX0S4>Bg)0vM7kw^;oV)KEYuJLETeRLf{7jgEu$@6PJn1{zp8W5oH+Q%=}vN{I~8@i+0i1QE+9;rt+|S5`#@v3i&jL&87|1TzJ-Gw z`*KFcQ(S&8W^$j^GlJBw1;3tRZ-%E?OpHZ3*G_ST7dC|Q6B6N3(Qb1!U%;qqxgwaT zs#_|rSgRbbZpfawR6Zw(pktZwNM>hTC<+FW>y$ZTIkzp6AL`0bOYA1EoILp%`_&b( z-7$U2N*?f*B{h!U_W=%r;$d%V6Z$Cnl>#2Q9YS$r;4s@@zNJu|Zt%J>aPmM_brmP% zsqRe!TDOR@*Pwo?yPPW9;puU>2s=0EGXxRAa5o%P+SH3*wy8)OTSljch2TPq zKUKW=hAu_+E>oxWlq=9OWeEd=y= zf?I^;7*9E!I0<9k-}q`jhmd{RvdowiKlJWA2_LL*1)_Y%ryIH8O0DxEgJA!`%^&;a z#0;h$HKdwX${9NwPyF7zpt0CFhKar5YE|MJc% z_?r%J*CqmSMb1s0O*KIsGjJAz#YC}&KD{6|g%YI~(xqK^tDApT#jYTt#bm&U2YbVr z@@dnD*5GHf&^+-nrd{9zg1+riHhco_jTiuQMs66izix506aH)&l$}#3fe*?O|xhNxiwDodxKeax_t9`Tohy^8gIC0 zlbu7t5*k zhNl!4%jph$F2gUibn1`g4S5f(euai5OwXR*jAN(9dPrQ(vz9UB!@%eIbG#Uh)$3Z@jDln z3i?S;^(D*_(t~hT=mr1S9!o9y-X-MS;vh++EGL9@6-P&*iTN%*{m;pxz7~*ERQ2J) zq6XVm&>w%j@hBsO?-TkB4w`$~Eg^vscS3nl$WMz7ZQ2kbqDF*m4U{2=VPkTJl0I=3 z`(9hnP9kb5(rKJ=5-^Jbi&R{k4?94kgq;>nakGsK1{YuY#nteBw-#kbUAkQenqY_= z?&@gOglX*pFJDza#*FCc7v+x47s9dx)1Z^9%9qQvo=kaVCmRmGu@d`?5wnfdFk8sm z#)*@Fk2_&?vUlEy9#Tf&Oz_pC2?urUFLJE_Fkb_0lWn4_eZ$YI^trT zt?^`Uko46>2OJM*Brgn?^tNk8SY{~ zhbW`y3C5il>h#oMI3sNM&EfLI^#ltopup%}bs-J6i;GX;*jSHIp=2Fj-0y@C+s2G~ z^Ic96g@HwWx^ZuRO6-l781(a7S^bK<>}C-?h}rMcZ^pInCDm?RH_qwNpzRJO+6LIK zMRCideKb2xJ9owxfdz7--?)vdt4Gm2c=S7^@oP^F?3YYQ1`Ho~<-JbR;KTlvtLAuY_GjyH7pqh_KO&sLl$ zhadppqP8x=r@38j)v?$qH_>GMX1%^A&&FaS!;^m*qz-Z4jBsmSakI)#xBI4n$2b4a zgaZ*YdzeZkSzZzJG)zqP!HcO^M^@9y+aeU0o%9ez$M+=y2oWT4)A)&3W3S%H~)oVo-McS6Epa4=)DustLO>q#Gf*7{BIGu|=`ijZ=}$*1QT^ zb6QqZH1_5TBSJepsnT#;EFvs_$27gh;+RS+P@&KVH64K1Yr{3HV-bllKgXd58EdiUxSi=W$XTtOB?Fr`?KG8 zr~_UDLY=bR#jAF8LZMZzzRFL%#j0Zk3c=>f!Bsw&#Bi+9g|y?)$fIuzzJs5>4*B2% z=E-}bZ#+a74q0{OCmAEOe4s4%{0PeKaK}vj#Z65)Y%MwJnwNWlLPH#?9;-YiUZ2$! z_}-AsM5%XXOYtuyO$UIiJK572IzY|p=q~SR~1cu8xHmx8#!Pb zB94P#vnQX)XUi_?SB9RgBedJv>){x04YTdjTXKdQb<@0y*pu&KFXr{)`HBz zo2UQDfBcuYNBs8jr~k~q@%Zw~KjB^;Gl#3z{+|~5;&}VC^Yao9Fyhwy^7!QU_cI4h zwl;@lYM^D~>-%o-6DxUmu7R{!p%3Pd{}0C}iS=9Eu$gN}^#1@l*R{t^G2A(*Tq`(^ z26JyvTBgCZ#Q<|&+r3-c)H~~wUo}z#5O4kZBY<1C?dRCwd1K>jK^#OpJJBCnx@_sV zEq~hmieTTg)Tccl0iHLniI3+#%>{^bqYMDg^Ww(@dFz+VGdPPMNL~Mc6h|N=?*E6P z9?l7Z9)Q@7TrJ(p7<@lH(bl-p=C~s3fQaQwu|d`m*m{c& zK09XqA0_4AaktE`u#j%7n_!L(c_p?u^*KuTQywywg@(@KtGU;vaf@>%<;`K+_;q~n zrT-x&FZHQ67WmM)JTm6D@$&qkV=aO7`~PJvM6Q}6UJGkbu8=kUjZcddZNn~RBdt;WtBxmp=R2g*5=HvF5z)a0$(Vq&~~QW}kKs2I_( zvqrk>yXW=vO#c{FwfMyqtKu62f88rBhvbc29Z#9M>93jCc${wt=qMKSiDkLtCzS(F zTkMaGjf*+cagNq(qt_M{M+J{mbAwa-k4)uBV8i3b89cbO9$$M;Okzm+-qhDm{V{Nw zv$|nG&ISh`n`14P(@y~=bW_-2le&%CZ^RAqu#Jm-0N(35yKY_y(|BlGS>&vj5tKKc zbOoXRXKd)nCNl45K%q^pEH{AT_V;`A|-$p9YetSL1cE69k=|DM_4A6y1cm0KSXbs zP&r4VGeSYznh$iMhcKY>zw>IG0L)vM&?kP2<(iRK!HP`Vl^@-h8R`7YgfiGUp%Q4i z=&QX&NepA2qaxx5i^$1WV`zC7ES#EQ)EoXDZ<2{%OlTu#*$zEa{b-?bHS^*a`ic!+ z_RprMOOQbL5o69x>F>o?`ru!XsMrZW2UkG-$)Z!`T%IN?KTxuytzuN!rs33Qk*yo@;?q}LwI>*L7k6`1P9Hfr+5uc`Wwe1^emWS^>Ob!_ zuH_VC~ukH@$@J2+m zogC0Zeg2`Ssq}qS@Qk8);ea5V&yJHm6$^DHYZ#sJ7sK_Z=gj2aoIytdYD7eQYLr`F zkW+V0r`vP$2=y6gcf4ReJ$VK+t!}#Mmj)b*>=2_Z zO4xD!+RTqOZ%pF}8}@FyxT{E+cJy2Pg+xp^qRjksTv9l5(sQ1=v#};c6zZQ?5^fW$evP*w$d*P`)^u#L8 z#-pe#y{BRWzX%XN=T-TKU{hnLP}aXfx#XHVU{Xw41Bb>m_xkFH~koEVMEA@1=#Joou8PjIO(N4zN0te&9nH~>X= zZfMRzRpqQ%sZE^O)VA=+)kaA_*lEtaRSS-J@uF6foFRADGBE~p3N;|Yoh>wzHlYr*)ki>G!h3xBwFK4A-T4x_x0N~c38U9F>sd#El*$WG0CAKzIN z%TE99CWzoLDp#;U)5geVbL?oaZ~hoiN6z?VK$}=l?{G2yK7N}*vg`Ds5IOBQ5N;T< zw7E*VAoR~u1;jPN<1ycg!p>o6@E=en=~~wvAG8Z}%~D-FuE~VK#atPv@7i@9r>DNT zC=cm?tACV>i|telwcC|*EEXTz#J1B{|MXis=+;pSWh1488R6?yoKB(|e$^aB8yW_6 zD1M>9fZl{mD-rUw`=xUy1YS@%d+;J>I|nI^O49 zB4o@pF^_J8%gt}zc)7>TLU7kQCPm}UM>4q-zX5`oKZb<{Q|b zh&#z-d2cWohkFwn1i8XOKCXF{50?yptgb|NqaC082hYgjDfqk+M>S*Q+&jk!L(mw0 z{0hX)&u$|55Xa%;F<+bNe)`0l3zR?lkD?s}0J`Z*4830Rrq6f2QIKQ!p)KSbBbQ6p zx*f^QS|Wy@H$R+m;kBCq(@`JS<$ofp2&#*qd{JNWE%!_H6l z5XUF^b2jj{ujp|sjTrZC8YE=RKdLUr}@|!ax1&O&)taZ%4qdAR_R@SEmu>$92AQ zQV94pNN#3%*Ru@(NN~#%?=XP$`1sY==zIm9=ew*sU;L1@`Uj8qeC?(7`?NEmlCn0O zv*u&51wq^T;BP$ZqOo^3*rO*;RT`U#9t)Iu zT`p8{tPiHXFpk~pP*nS_0hcV*nlWlq*9Q8NJ~^tt6S$`H+dL9#50_HF;5}bbeD{l- z57U1h-|}CZv=gXegOjZjcxm3dP474nXYE;6kA7d=EEt@&SGv@-VN1DLm%(-Pcol2E zHn9!Y(#kaQn}+rs7KW3qK{lG0j=vY-Qe6{XeU+3!~s{7+<%mw&aq1C34{T~v)!yjMzNG= zCm+W;y^BY~27j)Q|qA7u~tV&=$5Qr0hxurV;KOW~Km$eMtP zx|J-J4Fp(vxCA|ktwH<2aFdb97o)O_u-635?$JSZ^o}2*ixnWRWuk2~3PfiI!eYt9 zajZC{)!!}f+Ercu)Uh36W~cxe8}5AydND*Eouve0sdxvP!V{(kTN61-y*sU~P0QYu zMn$`t*RGojlr0`?ZjR-j29Q+_#Kbk}3}}%-T{-*QJg97u*u=XsaXB(hNT=uCNI*&3 z@?dY9C(ZiW_iXxPjCumgFH(qh(ZKg(`UHYGQSW4|ZLzBn9phnai7`#S^wmLS9z5-$ zxzM{;hWP78?@a3dM$R+7FtXXAFSp?G#{S?}nW~^yK$J}W=@0e(x zO`SXUa+??P-$Ag>FDGdh$S)RD>xOZQJ2r@!3zciFCzQE?ymOKV33|c?C);}3Q5o?a za$8l#$DYo!PGjkyFI4n1xi#jC_O(+iEj+ne<~Iew9E zq|DuMn-pVBLG{)bv6MTp>Ov@N^0$i==MxS2;{eRw&5dh%Z}uF299XU|go$W6Fu6en zFW)E8t0MZHKMqnHa8T3vNt^NF)sp$IZ#Kk;+)*VQ_PTSQE_%yXbhUoi&Yz!lF~^PP z%@x}Pl0taM$nyDh32Gjp)+~g|O{D#4t|p>3+Z8|kQZ>e|FT9)$3*xA+%6XBKH;3b> zEV)*^nK#~iU{)RsI*Fxo)OEFueSE9{Zs;WA5NfNNUD~0|G1xYZadCZAV0j`bPadxR z9k+Kp73HU0MDVup7J%i-JJ)vlya=lwPL5e`<;a1GHttE^IBZ;9Z_7vIX3H4_n7>_Q z!i9t`R$|0dFDZ>o`}%DVk00%Kghm7OzkFiuPIY6!0SDfk zoqwyxM?C*f{rLKg<}*liovmQZf{mooY+C_W-?W2Wvnag;s2xAOd11fCD$%bDa(tPGy>X$r?!4EcvLjmuwh>8Cg8+r0()0 z&huQ6_KoeXFO)HTJYU&*IUg@}snxuY^|9ejTsj-B@?{Jqrd3Uh58LP1>+Mr#H#v2KfXFe!3f3eElY0 zKc~$<`Qtx%{Lvr((c{a1_|u`_pYdsKdDn1`fv1lW^zF`>?3hAr<0%JY?P|_VSM)q* z?S>M~VtQlIYgGTInR(>bG~GCOuAzq>ul#Ou(e!8QmhIy9Rt7lc9OHvf$HnI{4tyXR z+OT-ZrnV1Oe6fV!PMOS&2^Vt5g?j6rH;Li7b0Ycd1}AKe*Kp#dXXlc4a-up&o z*Le_WJjK6%aMm|p^i{5&8=0qhhg@rkI9h?smQu>T3DUe*9YKT2-Vt!WknpkZD#8m&Xs&K#2k6+bs~F@_^luRI6sZQpLG51JnXV~xb}ReTi7^0X)Hr{OS6h>c+lN-MW*W zIf4K7Ph(?h&Y%ABQ331h#WC02S|8cRohI9(iL4Syod)sOGIoWIKJ(Ha@s|`!q&7M{2VpU9P6c3#Fa${+>UaLD^j2^j+>SUN8%dMeEt4<103>Kft zC*uPGgXMTN=7>w>ax#uW7?hSdDvhV|2iijC#G@=z{`8lz$MEIqfj8N7aX|=DCvmMp`~Gn ztj#gF_UU(VzX^+g0R*LhM@S_zMsmD3pq+@LW0!-o1waAHI8?ltX`i^k6xzWs76#Wg zdH54_22q#0+p&e1kZd4|;f8_>yEWalyEvfhWK3K+ZRr=uus13w_nSsZGv$M0(iA%< zv6vW1;But~=ETHs@_ua z2qkSEqNkRDYOy`>w(0o>17>O%C>yUdktzp$ZX%ZEcWzm z^?35Ip!A|bL40wIJ%)=0ZF!-6rEM&~$IXxyIphstH+_AJmbk^0mljOU_8miwY~HCS z9(A28-)W)PN1c_VoJ*A5T;0y7(0*`fFD_?@gj8w=3UdSjPS721=MnCZKgaQBypY5G z@DV8Im0x_cRp{tabru{IeWt-*C!-fwe(qI0+q8{C9xQej6Hji0HZR2RAbfG|$AUTAj$gPGcR`CBx#CTAG5kbJC-4~Y2PtsmKYq;#o9#XJ z<<N=BphB3LDQ97Bnn$upt~|Di3D$ zXCBO7#&@5WpG`zj14Ek|E7ucLf~lDo_jiC>Z>-kN2^g~Rs9{|7O?x|sq!%H(o09gS z?|5|46-PR0Z;25XVJ~AF_j3{Uo$@dWt&e)5!|Z%%N(fM4 zeRhB3;m!4j_J-%=shWmY$&=sIrh;O$GE5yCi{M9W=^kt zY)>}|NSM!~ho{5#)lGf#uB6&uh-nuvQh6&8s-Z+w+qGjDJ@oP=uWTu6^`d>>NN0`|Y9>hXP82EZBMO zR7CNs^C%6=wT(7~;z7g0v+=QAO-y!^Z;-PQ2KgqwN!GE5*ifFDHm2X6viv08Kh;Fv z5fsK;aE+8l7x-&dn(o8d{_9U22+=0S;=bJQ0HfK~%MhAjlx*|}Qb{eHs;!aKZ#%UT z^zfB#O~%%J7^c`IG@FgX;i(z_Vyg^f)})UohZO-&GW|o-bC5HZ@85q;=iA4(-01wl zyAO|l^yN<)`}O@`ry}p$gPWfgJz#kMkfYWZ!%lqPuceT6WBE}5r+$i1xVl1+R9=v-(h$pze_UZW2u&*2XmK&2E9ldey*Sk=qrjOk0QI40j zT@2~G#90&i&=c@g7>Dj;&9|F7-MmJyuU3S!YlW*>`K=wef5N`&uV-4F^BimtY4hI; zZeYZ`zG)kE0KnwWzVZx?jmp-f<&#z4s6H zTmE76cf?rL>wDKFG?a3+kGMWe4F23D{LY8G-ujRipAul09bZ^hf9K+jEmPVd^k$0V z;`nZv$Y?csxm8u7&_XOI}_XcO;YP(-L~929 z_~N*`E{eZ=&=|fL=(AK~kH7oB|J}#0|K^V$ zzxt>Cl!h2^-W<4Ni2n{(8E|4j@Ea2(?SP{tg~qL7F2PCvC_9gw(4Es62gjfTvE0Ek zXN@m=W3DL~w|K zd{I~oJ+;VRawwf*DRTd)^dpgq%;h zwofYwDwoMuiW|`bL%WH_Lm!wY`b24O#=>f%nE2f2_tE>$LEi&PV=!ruY zVF~Mt1uRi)<@Gp1lY#CeHef8cKT!ALETc9f+h7({*=!5ie)Vh(ix>AMyB$Uhzq}w! zB;z`OPn1npqp`CE7gpmJkm79O6m@XHu~E19=|EyV9CoPr@jGJ)3^v7aLx^Ig54z>c zJ8K5Ozk}^l2inM{i@OKbV=LCk>a#fIn00})rkuRfrfmzxO`T!G|%I ztF|HQXJy&mW1z20;e_Jl;$0EO%RYPF8bEcMKcncl<2^tNhjhs@jg^FDgb+Ws- zJEy|5T@5QzHl_}|d1tbF&^>dxH5O1c71Ng|ifVGp(iTr+P+hx9H?Z1L`NncwpInZt z=r`{x$8saRCx&jne4LCX>aaTLIrBlgN-T%ff%7$H7kyn=UAg8pa&pgiM0|>uJoX8e zj$g!YE)3nkKVx&oyf_<=6VLiJ$L5J}V+BXK*w>zT?&Cod zV$#2mZQbq$$ccMMM_&M^<2F4{m6vh$WOQo=TBp1dFY7hMZ*UHsn+vFTM7UiR5z-+n05Cspe$C&i{wNv9AYFgeFc z`4bCcEa4}AnQ06vU@DcxVxe_5%6+vM)g-Sj6`ycAO35i6UjC~;Tdtvb16QvPnh$~z zY|D*_5@Hjd#?HZZ9yK;1Z`+(*eisP)brPHUp1;|huU$Z7YgD73-28J5D;;pY8|177 zzA>p?@rS3Z0g!8+Xd$19C$){=eVxC%XW{&j9|~f!m1}AQa{X3^&DgVf{$L)Jp9YzF zqvfZMT3@Ie=VRNFc;&>+oipwmS1_^P>Pfp7k(c`{W>zz7qHPPaA}#!O1I8HWlbg-h z+nNwfny^@|9h8E2^y5Ze!u^nC-|QMU{W+NWrh&VT?TJ#v6*x@QHE)u{razA7a^Xg2 z(&mnGrB?i?6lnRY!FHfGHYG)IvKb+|Zw`Q@U;1vJiWaoZ-l6v9r!x0^+wQFm+Vl8x z6h!4%IHVUI^&+?P%4=d{lWFt7!NsQQR#9+HQU6C@etlDkuYZ}HeL8ox`LFQJ#e3eU zj=c4OB0KDe%g>@q`NT-xJKsRy=%_SiYl@gL4wRk~E9KnU>3?Hs4F?)H0bhi&PnYKz zvkNmrq}Y+`X?x=U)--(;8|KQ&gY4Q(J+#a{wubA1zak&dGDj zZm9LLI&%ly?A(s_^d5hjYg9`ywfWunEtdCuA-+PVI`m>)19j*0lM8Vmew`I4N_%U& zwyEn&4}yuOes&k@J8ugW!ksIi*Nt$;gl&=@p{BdNxWuF!TwHg2%_J5C(Uj8kpUKk0 zS9F<=cK32H2>p}y&dD1gNr$)LM96srZbw@7t#KDmyU+6M7$&!DJ~q*P-cYzC*%x~Qva(FIYdssq zM3@BDc5B7NbN3`uDld`heh)xj@ikGu`)~idkN@uX{`%v$e)BhYe}Z+GWaul~q=m1> zD+@V6BlwG$0+u{UK`LU(vKef;yDz1^)8yVygt#7ef2eyByx{|VWA6M)Hmuna2QB_8 zpr=2SolA}dc@QpDvw!Dgl*Len7&$K}RgLr07qOKwH!X`z8NHRp%Q2II_f>w%o0DE+ ze|qqb*r}^$yKj_zZS1m%h?AS`|Dozmvn6MeBt7TEs^&tP`yjdhjqvm@l80TVGQTX! z^Qz%SBz%CG4x*xJ1_K=Kaf2R}LwIe}Cb{+LH=7J+$zDKqxbc?ju*0KT_inl~?5_Md zHC+xPDjnR@56AJWULQtz8ViQD?cGBu)Vj^z?K|pUBBISO+nV9mB8}_bYLi}$mji9* zoB7;zh~5ojYt+lJ(vK}*pMK%*_pp=pg z*U}{KK#F5t9aco}F|o6`1n~<3O89D=!LTM^w(h3++%hPh7G`Ew{5y{TWHE3VUkPBi^&8_mUCyj}GmBk^zRln3U())HV=0UtVB1ZHEVG=YX7(~X`& zs)2z0N>EIAf=u`;n%I*K!^76(eQiFG2=VZmJ8;@GL{k{WKAd;zpY9HZxQs(LSzzB& z9d1K(0A)E@84P;T(S2-9OyNFX%8!@k6j?r_eD6r87J+5Qbe5~B3DpE~6A`|FTzq^x z6L5m3Z{XB!{c6MxRJA`Q(r7H;&kjy0=07EWUdEiS7x)Ua&T4QsVo%vYF30>ERS=UT zn9pqmOxuOaGyw3xVluxwdQl%Es1o!1lE$PI`5^~cy#a^zjeu~ zm-j^3R73soX-sGQVHH9@*B_AAcM#7HaL4jtCSA^5s9)$lZ1lGgE8cQ~Hx`hir8`^v z+tm4KSW)F8*7rgub8lB&$o%5efH0bRxj69W&!;=8`Ph1GG6qK*%va-S?)sMinX4Acc~|i58P*m^EeEo zU$DZP!F|L0u$MDx>&=Gl`pxxk+!q^97ixIC(aozrx1`3ig%jVn>dhR-7q=R(4+e%k z2NzHLqP@MUC7(ezBIJOdIFs2Q2D9TEv1|@=?;5k+W8m=D^*mF$I(}_KKRc6Y+kF6= znE}Q944X;cd7%#kv;B@ZUyd2K8QJif1D-7r{#4;h_8C=b?4CeiZ}aEUJeC^wT1`k>R6-tXT33lgFj=k z2nm znGGWfXpFCR)nUJe3#g!`e$(jj&V2r=vPa3xh_%9bxenTfaoaGpI;Qq6WN+WR+1%34 z6|XhCY(66{$ok@GuJ+*%jqF_KetZr$msyJ>-i&g#2<20-*!vGuFzVVR@3s zO5SG=J+2ODVaQqWQ8<;yQ_S^}u$w(zT{5o!9lvbCVG9zDh0QMI8k3a+TiuWjAJ4mK z#Gdlb0j%z8yPZlJp1q+q(7WcD?Kb(aZLC^Qq3_W##b;4X{}(=E7Th!iOF#^4*cyV@BcrdH^owd^T8){_#+aPd-kEu0<7I4~_KB$)uPYo7BADi-t|Q31fH15Zms48) zlN+XLG+;L`fZp|uW5h4q_jlL#E9rmk@41@;|MUO*zyI{#|NH;89CnlGKmP+%8z0wV z-Bcu;t>1uL{^Vma_&s~O8(GKIHGQ_vU+JwC`0z6|)|t)P_VjD}0f#@E!+wJ^xubNZ zad~#yqr-&!k9F>~{@ORK*j%mDJ-D#v1aPmr=2=r-=I^k|`Ry;j$wsX@sQ6%}lK+c8 zIJSS^%P-1}k99#I|B<5@{Jq^514iGk&ehDG+4)6n?eo#AHpBMO$-2PKCO%9*#;Lyg zOFnM#Q_peqFD~fj`}Z1(x7Z!CB6#T^c4NMI(%2Md{=0F~T$)d{G`C@oTrth}22HHf zF}yW?c8oVM#Twmhvn&7MRqwO;=9Joziv?ERwFeMBJ)QjXzd6$wPUB|xAGl7BUwyvw z^IpA{W91kzbMVK0bIyIDKQ<4|M{`P?f8g`ljhAFbVqx~Wt0w#AxHw;4@n1K>)&+&Q zI;z1R1N&!xO6mE;@aiFiUzm&0-{&{hYg=3BDDua{X89>hX9rpVqEs#fr_0@k@&K^n2LvO`e?>7V~O9-FW#IQ(Ys> zf!^Bj*Zu1WHzEB{a)TW1UH^p=ZA=Td9sJi#7)=B8woT#liR&FR2?p&PRDC{F<<#CY z^ED2=M3PN)8)}WoU2m|Dt#hL~Fx(r~nXPMj>XYY{-3;G^x@(b)vJpsKI*$U`R^>nZ zxf;*v)P8jwcK4Ik?|NARrh^NibknadPl#WJKO_a&hQ3(+pzsrHe?A&ot0!!HSR3p0 z?>dTiQ=#Ld@n0VYHru5K*m)|9!%R7Y?}ws=G6YMc&)xFyco01OV%we#r;7Dp8!6vsaO@KK#??Aj0-Ak|mL3?FxK>8ph z(4NH&i*})%JjV^2B(pR575Xf48|J3^i+TH#dv`f_0}s%X=iX=U{z>KFn|eC?b}?u$}P>_!dI{IS$~de{>1$-8<*+2NvAFky90E6yh-Ev zO`_R|b;F@r4|lQ~F&B(#G!39xSbW64oZza=`A$6iGN|4K1!{X7G%q{*wP1VVC&tKd zv52>|-$5jSE&8Z4zD4U*;tdF>LH5>3XMOXa@o>WM5_MO&{wCl~gAHWqH6R-s`^@$x z<|cV6xL>0fkZx-~T_=Te-uvphc;-q?yBO?N)5Wf2O=6tJ zel@8KeVB?w{j1{jf9F;VxrBK6J69wbzNme9Gu)4}8p)$IQN`Bn;$Tkyk}8zx$oi!V zV7a|I&9y*%C^s&LGOuGR#xW3Yujx0yuWnoqoaPIZ?~%X2Vz4`-wIfr%wYC^=JonaE zTmP95@*S%9y6c0AbM-#R_*IkX!eI2Tex^=zrfM?}hSx<`MKXS$vgqr_YQnR%2y|h_ z?s1A3no*=bkl#(_9ajH7?FJ;wi>CIQPvqgt^YG+qlXb_OILoiKy8zy7#>Jd)fo?xU z&d=r>|2WdY-|PD)nGaN!(|H%;{O!N9&wsOZVK?=nd}#=&*`K7#GTo3y3#2F9-9W<9uWG zp~ZI~osYJE5S2n6l~pK>CKlYU>f^h~A_i`qyJ*GH-^&|re0qYJxV#c<7QDLO+BB@@ z@O%b>FL3LMalLCl!cR_pjBc);;y#3lW!!EJ(YsjlFvNJH75`&dohPfe{KG85a4XyK z`vU;%`A!m!$hVf%h&S2PZwiOhUUVJo-47UX4N<@I4key;>g;u2kDNcwZ_}cm?k$x zDLnq#EneHNzLQQr)c8)d@n~JGA~Rls-H_1ayS^KWjmf%8=#7{9Umk8e`rPH55VIW5 z_Wra4AJ+B=ZWAAu$=4`W^S}X7V>bR}EyVeBWB8rl_J=+8XG8q*bT_eQNk#rN&O~=+d2gT!ZIjw8Ue)S*Mt38~F)qgq}?4NM#eSdyu&9?0? zN235%K&iibIhyO{ZS&m}S$@?x3qS(J^g*n@&6*_-V{peEyBAwLV`Z1QH!-({!{^t9 zlo^CSo#6ND*Zse)hc&bJ*K=kw47iHDhCKdo)9;OgMWq|$t5^7ac!17)aW4!I!=`1;G$$!p1oXLG@XH>-lqvx9je~PH%O@8Zl z)7tk%9>X~Q?X58?;#e2pap~}Z73i!7cjvf=QS2f&We2!$!;8oMCFC4#4G<5`^!{Aw zVw4YI^N5lfr^CM4s-42HUOl$YhQLhd*jv#Z?`+!^qxr#jYs1v8SDH8Kx|sdP)!#8t z?dIrsoW5V!6ei@yWzA{g1vG6L!}3>;K6;5G~EQs#T*?q;un;Z_!2R{ zR;_c}yLj@uqFfD5Oc)0+HzvSlFD~JHRX3w=@It3tybG7Fdd2P|ynUymVVI-xZ0$eS zYTXx{m)PmVEAWi$7t@z;@hHIB@cFzrt(Rp_{)yKZ!0}-|E>oAn_B7R6u6qc2$0DV3 zU$bP*;c$euCT=jfemt*Kt0%r< z#p5U%|GQ4-H~l+aze@t9wyW2OiS0E`Jeo27Bg(w5RwcYxrO?}=F6ZMhOa6fO`py&1 z4XyoOz=~e#XDi$`X*%BJE|-sISW}X7^$yCh`TajN#pNY_-s3bQW2!PgHC!WKBg%L> zV?YnpmvSx7RO`FPYW;mBiQfUpc}6&F9y71TYnhhkOnNqvQE1KxJ=IyRQ_=K9ikSVL zUPDym#5*%EIeW4@m>n=Avey&duuTSb?;3!+DIelvpAqId;k)kV*% zM8EL*Fz7hoxxIy>!3zhFf!Tg1LA^VEw1hlDJ_H(oE_|0LOPVW%gD30xHcZG|sfe?N zE90wEehVS&og7XF6jqDdiWn@Pm|cv7FE`jX@!-x1puO6xWc(ppEDmkF*6tvGm`=o% znQeA2H+^{dzXiJP^t02Hz?$~W$gZG1yvU(>F;bb*?{#j*1@DbDdDisn z>?p~1g-M_GD#OxXdZ^=i=U?saBD^ZRS~Oo*uk8R^5`CC|NGmX>?2YEd74nG0^d`-;C*uJ}rR0lMFbXuKDpV}704CI?OB;SQ zqpsM)s}`4AwUsxupS{}FIe+*)t7Y~4;wB~vwJ|q$)4u%HZ5%HR{_|T$ zDc0ND@|Bav8*4Sdd!;R&LH#)y=L3{3gxkHm@a|YxCF8g8g3lkZ^keBmNb7(&#qXBb z>BS#}MtV zLg03!Y=6HN#IYl1y2G>b<96pJ`;P4RFH+b@%({c=<0JGPo71@QKoC$_wNB`Fak%(O zLt}P$od`n$-tO;8S;<}$(_9dG#T(Kuxs=|_8Q z@eKN)Og~y4wr|bqc$nhkYc%1mSB~TLRW$n$YaVLkZ@o~Ty2f`69{g?4FNXrx z$EvwwRyy#X>5ei?uD<_Fiocr0Lsn%~^5J4Kz`z*;!QqZn@FSN!R z8F+hh)8dj!mV9qFzWb$`5I>sn!VP~yH2}i@s4Vi%37j&J$J*oChm?32j-0Cl3iqNs zkgq6X83iaN8yaVv|E?xe&wB+8%z#?K{V-KOIXt zW*2kl_`Tz~Ikhh9AC5CVTTT=(GHCoR{$$g+wsc?T>}EQO|Ljj4h{GA{p)ZH~P{`-Z zrDa2B#@j!(>mT#&9g{nFI^NDYKDX`+AZK5_@>zd4B8u0VzdAIo#5VS?ZHDUbuA=x% zRP5TX4&{MAtL4INdUlS1SQ}Hqz5bUtY;9T{{H=Nk-_88lFk$D|sd;3Gjh}Of&qt^I zb^PHCR*gKej~7g&Nw$tZZc5OWe7Lx?&mhx$)Ui4UIKAW3p8w7LX$@*L#dsT>9mgNj z;?M8awb=-@*gWptIc9ZW^Kob$kTG~4fTy3XUl_kIf7wj}^Yt%(-58CdKRwa>ot^(X z$7|2>GYS68ZZTZL%ggm;``K563M(i4r@Nxg?tG-_KLa+OsC=&MGeP~?CMa4&F4+N5ndj%!NUkRHk>42i2H3fI;5)`F16Hlt%YH##TP~vG&Bk$?o;sAT{_=A(`B~)@zVTFVk15Uhe6)w@e+lTu<&I;2 ze$qAu!_&Utaa_M>tCzYo#>29fG^XaplElFmJdMfP-+VBy#O;U5yJ-TxF)q%<&KFM& zwJdQtdB7C|w=taG@xaGlQD(u`+f`N@M)|B`?ly0poJ;d(ebs z&yV|tp}8?RegCpc4OSapkWCq;7-6dII`lJ}Og{Y9FITk^Yh3pBmwvRt&b)|$C_nlC z%zvTAsoLVL_U8KJ>iBV7r@04_?nNq=Ipq?7?-5(PVemO*I3vbJr180RXuZk$@&|4| zLZ4s({Ndj6brW$s{C@_nV;y5Z$1KpT2iV;9=Rf_o|MlMx*`c;`|Nd1#pQG@#2o3XF zBj>qwNOej^v|jh0FSGwJr=JGTzKBV@&h~wN%zxZh^lm!Fg`VN$J=WCo`Ga_G;&zOv zlYYnLl!)xjSb?sviaVQX#+?ludbM0fDGvMXNt+J=&QSbu-0ObO^B|_~Pp3IlhZ(H7 zvl|< z-eLKretd@SoGCQ^r#8L8U5i{nkPN~tKVUU$OUFqAPHbl!{BNEK8$?#gJ?L2 zUHs==etotICzfPujAT!?VF=(&lg6%Yz`=V>x&GGg=)fK z32qlAzy4`(C!Iw=JM`_|8p8broAA)KTSx=+%-MVg!!sf&sD4S9CEM=X;2KY_y;nvW zSj=~%Rqz&pC7?@Vvd-4S$st7$X)6d?-Qb>GC77@I+MJzEz4;dxs)cs4MvU%LC1X21 z=kV;b59dHOxz{%#zJF?azqZ61@)=_jxIKsMJ%0GW7WfF)sfW)YcdH-{NpJ znPDd{3+%UOh~diaZvHKX6Qd-<^)~(^arIIErsWjJv5QD?=2PlBSw^j@-()oF zXTY}DW3pxiyQo*YuPu%m*lyhU@t;K)>atpF(TtlqKmIE8)vTE8xb5vPegW0knn%On z_i*FGP)@&yEP*$-U3`n}!odG1*0$&tKPDqAhOHcDe3v={{ zHfleMUm;hl#hnXW^%2_%0}hYUun%?b8j>aYi+vtQFAD)VJL47qk<-CHN}+28z&WO2P^ zC!qM!)h1mh|MkLDP%*ggWyX=S&h8!GLwWpZ)&sqkjl|on78K3K&3}Ny!m;M~x5^&= z55VmF!W0#}!ye47%Quc>#r>QF_iBq>eRj~p8175^;renTO6NuS1|2*&AJp^JUxP_U z$J))1?K|Po8=M*Nh}EWM{at$wZ*+UA+R=wbnB;md-*3(2ORFWv#?1i$z1!PLq*X(1X1z^ z9k-8AqnWIN6>t1Eo_x+vdGQ^>>fHU12u?OUqtV>C2zwV~akt2b+GxcGZmNwl!pFh1 zyKR2+ur`U?GZCjXQe4GeHj6)b*mE6FwSH&f(paO04EcpYP4_sVOg z)$WJT=Kf;RIj5ZN66;^I(yVJr-dL^lMHH6!>zvYl!K^*?eUeCsEDc zfUmAbqEb|ZLu7j&DzMz~HbMT5aS~-9Yu!@;DAT-}R*T8pH2LPz)n)j8S?lJ={F^N! zSuKh&edBR)zxQe!zV$<4r(t)Y7YVx?8}&0DVNc%qo4Wb?Oh<-jffHbGU()EGzZzZb z0<1>;B2sM56_@Sw*3bR@SU1MnBzNG|NV2y+x;{9QzHq=p91zc=lz#X<#r#|Qjg@%A za42Xvp8bhQUqs(3J6SgD==Zv!tY0txY~OgD)p>(`6b0C(I%iS)^BE>iy3G$cwyvEI z6mhG> zw$XotYx6y9X>r`spF$DET216%GTU6=w0>?5b_|?Tw$<(R<=OS?z$*PLLQsDVcC#^` z%8}M}w3;TnuRPY9?b_R!$70~+m5Se<&O2bGe`m<;Gcs;#IM?i9eSSt6q*YJHq+@$d zzU&am+N>3>2G=C)33RtlJ|qNt<}u}N;7w1RNiJ@-F6UxQrws=;b44ED-A@%OTjRB6 zF@az`uj$M?HMuzJwBA76IAuE9F9r<%sV~?0vpQT%x4KtDtH#}QT>5MK!sykV|GU3& z_e%sAQiC$w0XKFRxLmR@rf11~nEuA}WGhO?PZ^AlA|W*${dc2|UFW0OeYtc_WghU} z!nHOq#&?f7f-_^)Hq!~@Ph-w}_0r^cd{`zR+_JVgF@tU_KW^GE?tEt6&Jb{JY3j#& zJ_QeBJk}SlboYkYMH^lNGXD%1vE4p{8?!v!YuIDzh27ioru9XQ8|rFkyU#1QZ^Yuk z>s?!9cYf7doUIv`#^uM~-1z|3**t$6XgxDcCf5IP@men%9Oxae!GYPBZz_x|v5`i^B@tCUZ#=`q3 zIcF8CHnZ4r#Ge-}2L-RR80W>H5ZsODTPLc?YBzZH-N~FYb1Go^N6G zUVoaKvr~M>G`JkD)_33Y9JWji=bMu=JE-mXA8PsH)nY`pjoRGV>+Yw$4`{`jb7in6 zu&tq)hHy{#l2fdT{%oDhs__g=BDKkOZ*Y-2qVok+5YDXZ`D@!&=~VW&0GJRZJuTO` z?j4u-*>}WDxi&8l-EgdRV-p(U;m^Q^+XTkDi{kB@9H~CM;jbA-``KSk$Lu8+AO8&S z7QMSj>whhaQQMRXZ((KWZ_IN*BmQ#j*{}N&C_W=&4 zpM_(K2F%8+X$x&R|dOyQ;#~yp{?6Nw1)AVo?D1r#A|KAOC-0D zhM8yf%;nYsvb~!^S#fIIhWnjZo z9@_;eWNurjuFe;W+|B+jNM58IzPe10+Q%IR^xH5i;1_1DvzW-QA36?LIIt(|n0#P& z@i6Y(<;7;}4&-j^3ZMr3t*$Ftw^lPqwfQUhmgaGNV&vM;ciN&85>u+;k$Z`oQfv&b zMlbc*Ou~s`o4Pf2_1+ufZ?K1Thu+217HJ6_&ekm9mSFV>LEb$V?LifDL1Vmn-kMk? z=Ktk0?*;gM-r#%rx$L@mei#CnyVz{+;^)G~NK2-(!vS z9d~?PU~pCgeOBt}f)6ISh;lUwIEy2L=J@vMd*2(y?60QR|1c=S*#7gs;~DIp!&~jQ$=l*7%-k`?(nbF+2@j{)Y_k*l% zYm4{OKGZ_WL^z{WO>wK36PiaM!P*S?1~hDO1NL?Sw`;`a8d$!I@ah$3Jghg{%Kt@Z zsD$3*a+UP!CC8uWNVH^4;5;WBpAB?jldOCEhWYtVrUvXUX)QAwpD)uyvtv9i@E6Py z-v(^kb-h=?xw~dMl+L|#=(zoG#6|sWou|tOgWK5mp=f(I>x~KB&kskcow^?{GhWQ% z$wR$ngR?EBYwDHV!0h!~OWDSs_3Xkree(6qKlbNy)tYEPd&7f{GP~oUf zZN6kj1zY`1&bCKRadrT7K4T&-6C9`0bUv_}NP8CHTv1|iVqqNFI(Bi}i#;3AD&NMh*Qb9Rs+qOmJUZsr^rh*oL+l<3p3HhH zlf|&#`{b#p?{9tlkobPg6Qe=N@5`B^?rk`(HJ&0i1VG<7-4{a?#<{4){{o-y9HRNL zF+x}-%(S6aB)#q4(z|(iIrS~FHg26SW;(-=`ujBNRj=(OK3zBUnJxE!%72@2kvr2k zEUEVSF307CMfIKThWt2@s{xMva&Yf>$724C&vF>V)#;Ge+Zr;USPkUkiIMtz$4fI; z4J>q1RF2tP;kQ#?`NN&FV@dwsz;qnReOy|v==Q|-u9NPZ)o01s^rt3f;9uW~*XXfd zk|9FXsGa!y5b@_vpYvi4e1sxrRxxfe*4zs^2&r zcB#$zRWg3fTR6M1K@P7uHyKIk(_ACY>dfwx{vhilUoNLvdVE&j`Ke{|v$wPD>Ulaj z-`rh$_Elnn@Nk{4&|jX`(QYEoFRrv}voS9B3xAVve&SD)zc)F(b5dV24xnoxHqB`@ z$0^7eZ{xQ}eTk}NUWxqe*UrR#7iC=^EUNevIDWaP{{w`y=3$NXbzuO@4<}}m@mu@$ z>kqmg2hAYWkI(sA%e$skO@!9(PdTAA-uM)GKzCjPz9$@C+-z5WZ#dT<7X4RsiDr-U zTTk2@A*<%hkr3Jd(5(B@3mtFX6F@T==WGE*>}T`WUBLH ztPN*be*A&V%a=X&*_fQ$_`x^(*cWDRv?A&!-&=7h_A1^r*PZtSRFubu(e)`>10uxk zJ;a;rjun;LHXOC6cybj;cY9Y;Dj*$o@VvRkbNusvvT`L^ZS88V&1PFUf1UHZJk#Fz z5jT}*XYLd;gta!fXl4_j{;O^EK6=kQd&jzCR07RC7~0#PiwIYnqja_fNicu~ePMy! zF^gxs;jBi!B;MBA0&xd6e131(*HYWyF1RAGkyOpY;J0V?U+nbF2MJ8yy7JkbL!Ub< zUe2rEs~-ILKwUc?)}H118;2Xs@pcUF9MMM4Wl5Myt}4CTsC*$Gx9y>K+-(0>>*n?u zX^jJF&wP6hZ(eb%e|w`|2%&Qg8Ti#|dNyLAde=hK>zpRr&abc@-^&$uzTJ5m(Wl3) zcx%|}3%)H_3-x3v_nyjB(QcsEnjvOFI>zXl^8i4x+eXI|hGy&a`ql#)_rMy<#d99U zgQxw?6?^uqQ%pHyzua4{q_Ql&Hr@qW(!ZRxC<2_M2^!!G=ZX~Kd=y3QmIBoVZV7dP zq@^zs+a|Xp2k;xc8B{sQ*#a%83ISl-61YSydLnFt8=3L0tweXi=obK@O!4!hgi(wS zU(N&J*RMn*@{wFK?CfDE{4#WqOvRKVtdp!QU-goZ}|uEa#~%Q zj5~;p>D{ayp#0U8jDz{K-5ag#;qGB!(N=);>)sSN4BSjA+i=2|>0HmB(}dMyZ4bHL zq|a;dW&Yap`VRgJ#6O5%@qCE^XD*c>SD5!f;QZ76;0AJ&dNR?xjI<4>8ofoo1I6r> zlM2pi_!lpWNw&9YmcLq&-`opV*R~Hp@J|NgYQX>F&(#9a|0X_{?;?}I&B+J$ISf#| zLN5MVd*nD5_0j%hY>O5al`H*lm)Ku6e|<>d)X8W>)BRQx;FmukL+_%9%|R0jjhe46 z7dvZi@T zb&M{fMc}V~&3o-UH8O$W82N6}eB)Fe^4eJBvbURu)>09NjR&4qx%R@&?u{j-dFE(n zY_Xlrhs2-9qw@jW-0)%VcyBk=_*IZM=Y|8-0PTE75YfrFE$8r+(_VNPBggY09VV=>7wot%kG34v+CBi|G2eANRwgSRX(rxm z3pW05lnZ=c^qhZd3{G&`J^z7uU}tE6$45Ycz?+xTId1rRE0>nOJF=1|<>z^lt{c|7 z8$$>8yamhZ-r3)L!iMhTDt8aV^VM^rmp|bh+YMR8!4saiLn{}UwwLSUXq_UtC~u5` zTU8c}N6O)cho z8hsy5epz)+_-!oy=|>*y3yA+*^zF}W>)u=62Ny26&0c+;-Q6T#XIR!s)_wK^G*TX& z8#oAJ|6@OO?=0iuwFggYs&slNUTU6F+ zc{xh?-5udoZ#>ik*L>jQ_sGwn8y(L;4$T9T>z>NKK(~iMRZC!6Q zF^9Xc@tJT2;kLTg#c$ASf8)hh7_kcny9wj78|{pF?HBINfElsaXZu=SI$&INuJgGQ*Y~E^S=nef4xBO?`VXWZiT4_>W&TH7AjT|LPZFi?kZ%HjcyBW*QH?Nbs5P ztvA^Z%gtSp&O|&+ILpbly|l`i{Nc0HHb?PaXS;jVKO9R#H?csW@pj*50woHke`R|5 zl3C1~%l2?LBL#S@Oab?4%$?@XROP9B8Ha5;D#mb~tMSYxr@uLX!{!hD6u!)d$Eb6OI!@P^v8ncxoPcJ& z_`_Qit{(GKdsxQpNC11jp~ALdpv6uM$4`OlC!4Onc=^QP)mCA(Sgq#QpYlGW;QIUz zYg=~4l3%iu8=Thb*?ed@k87XXo|%~WTGJn*DNFq`{$H*yk8f=#@1NX}!FkTj%^}Qw zqV~YGTfZAq$G3p%kc+rIF7~IRw;f0Gv*VMsIYQOBW0kU>erXhMJ>j#575)g^y0QHX z{lN+0a(VfiWjGwn;=+{2ku1hCOg@mKFPL@sC#bkMVJ^ZpWbB65d9gB0Ho0?6>wr4{ zUeB@MW<3(9`5DTM6)9THONr0;kN(w$ahPI#QSY8{rt81>A20h6Z9SQ-FA!Z{G*&Pm zDaZu%)B_(2!XFni+D{+;Fu5H0?Kd`82g2hKB!0z$tl~3my<~knt7%~KLt_u`_nO}f z*vz^)(EPZf%>gc3`@IH0)Ol&*rp$_W?ATy&>uWXL#QA~fXkK)KI?VDZ&bpvE&zPux zE3$T@ckols5fvfsKn)_vy}jiE(hQMm5o|!ulN8=1b;a+7i>Tx)p2fk0Z_;m4^lc?# zSH0@o1^CyWUyGf@hw}ZInSP}y(v3?|#l0J3%8iSHOgj9W+l@CWdl4&F+X!9R_+0z) znKolMdwmB3K!ZEmpUUC<4)_rWuZf5q^3`Ec-eQmt|EXOe=sQ6RQ>+-B2XLJKTP0v&Zb3uEs~Bu zIB)(zsdiSH#rck>i#Cq|bX@T%;J3fI(FILG-l%h!t)r!NW4-t(MstNuta~4gn@iIf z&o02#_;;I`yNoi3vS=)qtK;WL@xyEXBzAgD$1kr;IAprF#W782!zsQx%|=Z=M6ozK z!MvOTo56QM)jUXdCOC`DuC?_BzVRnMrN+hn;){#F?9iNHbD{b0Eqq(It2H(JJsL|j zo2QfOSC7_}z$Zg!I@@LU>;&RFy_b0-d6r!uI=(m=m!ve!uAe;k^(!|PO2wY7_OOj@ z?R!f{)S8m@@RT>MJYW5Aw$1oj!=FtthD+8li~HJ2M0WF(J4mt%%! zXRF@Z*Q?%f_SlI3okdwsvv0@5ARjQ{oi{!!ZzN zFI>7&6cOuYjdY=}+xo(=9C6_bZx0R6t(Rr7zK0StR&V~SJL_#VW&v-D09nVtu;tx6 zg)jxYYBzY45Sor!Am-DHQYd>A$I{&v&$**H|V#S-eM(@Uvp!I?7 z)w*kpOLBJn=b@(R-MPbY`AdGadYtX{0=22z9)^)K*~jq|l#6e?*zdLH z(3dkuodj#Izo&XJMXxsDsEEmfOE70J`I{e$edol>i5YvZLg)XEb39WXZ-7S424e{6 zNxL?yYfPYK6bGMc)ITWo*+E)~9zmR4-InTEbsTs6PUXDdxMmh#=4;^V)zS3wqGI^- zuYB`hs9xA>Gs4OE>6FPNr#n8!Sj;dp!+X8Wb4akv@%!~89`8CC3^V%1M1O+)z^1*3 z_)Jvz)u(n$q89(S&gP5;IxOoCwuYu_kg5OZM&t7F{j=QFKfhTDAl6jjR0B}5w@pXM z$6TK9`{HQd zYwdCTZuIx#jS4`4=eWIg#Df^O;g4r?itl^`k^48~6KosW z0?oZG+!>j>=OY(5vw24SiI8c(H2@zp9QS~_50dP0I?!L|M%4QJ?;`U>8Tb6;(75x3 z3tfA*)}kE7uS7oI{Ry05w(f*Dw|sTr+3)xgL$2#}{k>M#H%yFma<&)eD(&W9pVlB8 z)?(lBy#Dg|S({cfv|795fc`-H!KV5>S!m8H0j_Cki?H`8-vN#^;{Br6>x9qUti7lg2U4B zqiIcZywin&S8LQFEUvL6w;o1(U4O^_3OXBW{5O}@I-b)nwudm%u!WUW@6MGNd4j(U z2EobcfAMfkKhq6Tbz#=H@R>E7a#)1P+v1XXCS%2@crR$XF@1Fwy3aXtF?DX6ehG-; z*swnO7ffsBr|^vzz8lBp@pQ(v8qG1Ny;W~^Yc~!@IxIE1n1>x#z5<1D^6EfFT$;w= z#X#5?s{Rbs@O&w#aGJh+-a5#68(bc?{Pu3_FV9c%I5KACJUp+~spWFl?!$@KG#aQ* zr*6#&goxL_^GAUrAUa$1wBI@>5aC{iru`Xx@=HVS*={cpiwLhP$ZM7j8WTHlwx6GX zGtGtYYivZiVXL0WsT5@|k}n3k!cD&9Fu0rOW5+jBT!7r}npuViuA(r&=NaBIcNps0 zBzuKug3a(I=9HYQ=5~8rjMc3Iew^uVaP99zaFgi#7G)#a2gDC!{__9QEj-NmzYGK% z?cOH-@MjVo^<9h|ym#uD$xbF1dNuJ!wtSi#7wls4wV=S9q#W(Xy}Yh{wo#fLTkY+y z94WfEiMJFFx6E2p#t;AbHZ_*)o4?J!avzKAaoDTz&|c@V(S#wF$u=3bD@XR>%TI^j zUhxA&&#^{E<=lcZg+(p>8Qmr1#_8{hH*)lUyX&l7{EX)yaE>=l-<%qLC3*4aZxrs} zE)Owgg!`V`2-ceHyWncf&KdMC@Nf-E z4l^!{T-Fe-lc+lH(b!Db2^IgH@vFJEI3cMeh8Sr;-zF}+J^D}qkqSp7wtcn1`glwM zTW7DEKMH@=+={XNEqJFg&)M^HGvULRkYA0l8p@5~+Ot}x=#$!#+oa}f_I!rm01L?qX<*qUl+?uf*E9EdFuz99%vvx6lHayKEm^2;_8E|=VK3ujp zw^ZR`PZ@#u2V!2G@MrAs9n7t@GtX{0s@aT0$Z3wk#=9$0e9}&6A8_0|_NxPI{I`eu zyZL1nHcn47T>XtTU?*RhW42JNeRzB%xnD<7C%Y9YHl{S9V{zx|v4Vr|}=1plnIzSMv! z2fxUiw)&YHldlgiUgg4e?E8GqR?oHsw$_?Y$7zxcpjzU==Ik_Xtbdg2vOJ-B(W+eX*1{o;2X z9?m!1Yz!gZc_<7)_9UzMxc=a+jLnS|5{4SHl5y8vt=DHy#`V^I12O;rKmbWZK~#8O zO>T`@t`akj^A^%(7wx_Md=S-sYg3UL<6$jmbA173v4=4)+rtH9PzXQ!0e`u@{2WKv{(7jtV{?+JygHu8*&zGjDse8ywl*@3v@uMaK>A3kq-j*l)-Ca~j)qbZ)i4;*eS1i*vf!6?|x>wF==im5@G~KL6fp%42Qq?!LRhXT5E4s^|PIX?+3VIGU)V$n`&U%uS0}-qyy+! z{M<{M9)&6}&ivahp{IN2$upeHCoy)$*d8CRwXIWobj>$Wa}$SP>9tv$OMC6fI(EWa zJoX!uo6kkq*t6bdyg=2x<2FFo4>mE>Y9Qi&<1F*)mn=iZ9cPDpb)xatB}6qAabM2; z07#$(Z#@!+u`$|)Pffx)+fVRKztHlDiO^GX;vJJ~q+nw^4&nBLA=2?|4O)EN1^8LZ z;v1{#**ZECXdWEoQ*VCZu4kQ=lUbUr0$QKeYlV>nzr6|#%RE@$W^Pq7;2Lb<*2j3@ zN8Q28WfqDNgGXfj7l#4&nIOIA6g}!r(BgCh4%fl{-LQ$(Wme3!< z(VcQn3D%zhmG_d#cYe6^QZ%+GDkA=jF4m`HQ}%GzE|2W$%nw2(%7wm(JM}r-0@W`B zlFWh6+m(h07L0*?gW0OE{vWHAfr#5{-}!9>Vv+pfUt4@*6p6#BsV+mj)9i!cw3!#&VOIXfLtOU9d3nzVXZucGb17o`ivu3CdVbrr z;LJMPwWenxMO?HUTjam8RgXqAqvHQ$2%Y_%DBaAUUx=Gm0^x5bz@CmV>sJsHBjXsj zVuVIWlUpZ&y)glPIqf8{{>_x>*xqDWV{9idj;#|Pp8<3}pllrA;mdw9J`=g%yCk0D zq+AeSMw%x4TbZhk{(L>YE&H%1Q&&2}KU*kSPJSpjOhQNT5;7JxqPR}qhlBM~g{2+I z&QDbY*CT$oiw?dr&1b#l?uUQgaE>R~)_1{8K?K&g{cOI;N4!loU%fxBVZzInkueA; zpGElD8)uv$7D;{uw=Dajb4%EI>12Pr0_TRI|x~G(i4d>teZPh#D?izrXS2 z*SNm8TqM)_t*x{D-rIQgdan*C4i^Blz_Z7G-H12gcjz;495IEAKF`5 z_)eLA?b-hvFLP3>Mdo_1^y|NGW|~7Ucynd3yXl5>=Zfu`r{Zg4d3?EDysO)~acK?; z2qOM+W?R}dtYQ4ati`}FDw~(5`K`@yZ5Y` z_XCS=CdvIl$d{>obI}}`KX&>-V=_W}hh%CWf6IJJ&0a9Pd#7#-f_I>~Yr_kKy9F;V&4 zF*?4m-dL}h(j0FT<@~VU5}SW>ZN`)(qM(cfAWB4P`h|nfAylX4tCCF z4}1I0MQgb2b^hD2ADKsO`K?f?rH%6VpNyLqJj#hOz$uk{~)p6<=G z&b?Zu%Eo-0>GztVFJjlfIE?nn_UcqyeUr^~PNB4~ft}ws- z?6d(IGdi`|rv9Fe&f}{Ce>;osVi>U+2L1&#M&~ES#JQMbC(rb(2M5y%KsWoz-!~>& z=iA(!-c3vSvb6?}0*;M2PyV7E@S7+3gFAlVpew31 z#RJUjs_;5)_Ik*}u^K;l%tA zb9$`F*gg2|#Y~#4&*+Jhdkrf!RjFnZp(6s zHQ(jhb8j!kTEC&~_B5NK-Y!b~_qywdX02gdj*l->&AuF2ihkH9v(J6^B*$%`Lfab&yg`Erq@jdzHPhy zHHU7S?B(*?jEet^wina95>wshCD{74_l7cY{gCy@$7sZr_51TmY>x%pSq*CAX()o& z!Ggvme}Ipm4j|ARbv!4>jYp+vkS1se_)zCHJGHoxb;5cZf1bkcb=LvwgZS8rx7QV8 z^0+7fr)^F)nw%V{_SJlaTl2?`+UvzjH)?o+oVYEhWEbP20MakZX;tFz?px+{n2b}k zp-Xg2Oc-2N-xh^}Gnz)tmP0&iBl5fv6Vs0S-YRM9X#v z;p&TZo5ich;x!M}C)i6UaX<4Gy4-L(Ke6wIoBm$Ixjknfp__3(@%vj|1sU{%zwtWX zqT(agM`rt(&a2B|$wX9m5 zv?DPiKx;EaCzI@-ZlVn6vU-d_1-Ef27<+7N_a1=;2|v+`GA`RQSwQ3ceVLW(`khQ> zlJ&D=tKZ^Ui}jSlug>dL3uExwBv*q8*d;$ZHVqfyaQf2Y2lvZ^>e_Dfs_u6&uV&S2 z`hH0?DtJWK@fOy4ro;@%3$^$1onIS;_;v1^j}z2i(AJ0B9nuS6uBGf#K6^uO@CFwAkjyTR__zPY9~65Y@mUN`)N`L>t4 z9iOgThig=h%l7a-UgyEaRaxTTm$p?bph#DqRaHN8&+TL zeyHlR_>T4Oe10qasD*_a{;2K|-^&3n!>lxn=-3o%LTy|+Z!qa4SRT)IHg6#LXEk-U z*>#qvPiwoIC`Rw_6K)Le0$uO$#l`EmlW7A-bXvP-lS>Ej@XukQ^J#$S#98G5DD;6=;GV-qX-mzlkSLC#0$}?F5;hk`SOVn0b;!Eb+^~-y~eX4nKIXJ|6>Vznx1nS33x?3ht)`4 zcmBEKjK_>dw9`%~oDWf#h?H-+MlX z-8K07#?8C{UEbNip#-&k!N-1kbzkFT*-kJ*`KyQ59*4MAYv%OjL3$i(&0htAH@h`p z#{Z3V2dUak=gEdyv2j_~`tbBWVg=YHysbR851v5Y=0g&KZ4RCz({5q5;i1KIYv-JP zZqn_%(EKB3vtLr?I8%0A2Mq7l^cW&COOIFM?JX6gohPd0#gxL`D9007JOD~SwZFXf zzT-^G;np4=IUf=ndMna8x0d`sFquvL5#Y-{cI%iWo)>QVwZAp0To>qNT}<-{kK)LA zP1lU(rS-ipg34`g|InW`4t)sL+z8Jp3}L5-GV3>YX3==Dz=yMQw2&t=$JX1+yKD4W z4xso+*#&Y|T~ARgRjtAL|tF=1RxF z52C~{8NmERQtPlC1(`w7zar5V zpJI_-%sC6>t@$?9{N~TEjqQBc6NRxI6K=uL?bSS9b*F^ShRHO&VBAgqhy83miq2o= z5C-S<+CbXO^W{E1ucD8{aOuYZ#yu8w?pb!-aQ8+);}fIi)%@gy?4xzZ+T`;;@eI<* zal#S)uIE}`0DP}t^x3^*gRdCv)nzz45LwweX5OUNURkz13^l@+@4Zn@O@Fm$JxiZr zs>`sN@SbVs^Ks&pXJmBdxI%&ZW9_bwC7aL9Epg~?9XWm-)_@udIW6C}1^M`D|6n2l zNNKpnq;4&$6ynX`u5mB+<#4vu0n{Ehj*J7$kMAS=a{m>Js@H1iIO+aHNEC;MOkCc) zZ$T>F%^OxYm|NNMg9XO|yW;@&P6tIhZu=J%lJSCuz!VwO(7E0eB#n2fn{*%fuW&*d z{7#mPAD)A(i*9aYFP-CV+xCaBcLVdu z!`fS8wzq4pHf!wQy%Q^3V>UGWz#^&M)j+pk+Yi4Xxjg8}Iyue!C_P)g?*&Td{+ZJ0 z8EeH`+%Mc>6>hW31Z3l%7vBkxof=KrSr5p?cS5s}TX=38U~wPUe-$ur|CDjcJ@+<1bKvKq z8HEAeJd!I&hvM3^bwf&+FPOI2-}^OLpQh5)jN#1KE@r#Ena6czw78%6s!A5ie87kk z=EKinZ-coe6CfGm;n-5_Qmh8&b}jI6kl$NuQ+g>#Dr-8Zd?RG z15WFSR+IVF&lMv7ZCxy``TM#+URmge3r8jLE{+HnKSR9AbA}VEk*$j#jrEhwhC8G# zEZ90>=}*B%+vV8J`->U`Os^TSxnEzrTHQpMa)mgM&-9$8cUju;yJTAI4ceQ~$ywsC zy+Gf1HHQ91Cd8i;a|ssdtZ|-`cO0R%Vr>)F`q4G+K~Acg-f;;cLv}W1mkGOvJcsW*tFW#$u6C2l z=KvX*#_fVL>G4aC^Nalk$L@a7u!fvA&u|t4lgy;DZs$QZfw5<|SNe4v$8$(Oc{t3n zpAq$!*?4kgWZY_2q*~{@=F`ko5cLJ)u}z^^jB|Ekox{Xg@HpZ64k6N$J)U!D?Tb&E z^?{saz?ypnooXZ39>x?uW0A$Va+!*&dc^ptbDae1u3w*grgKoIPrz?&HCnFSM8P*u z<(|%S{hNXBW-OfLaK21t&krY~l(Ywb|c?!W-&OSIwsb=dEnmx4s^y%l`|)P?#C5 zX^r!gmA{v)eJTw&oA+-H7>+wG&!`X7jEuScO~P7V%;tN1h853O@8@y<3UhO4H_RFX z0*!taFGowz+XC1pbAa&7J+OWiPY2TmL#HV?& z_YzzU%kLuf>*xYj#c^M!zIxm`)y=?RTT|s0)r^>aSsW+*Z}Z_hJ_2TmpEw6nEnhem z;yB-VG3j(sdtNKBxzzc*L@yGV7_HlDpq?|K4OuU_cWtN1keq(6HEo#1)OmAyW7G`< zLJJBmptcwFY>2;{%#Sp*AlsW~$@z*PbZUZxM7ModGrL-er+srzi_hJxEWlfr4hPUN zaICDwJhPiyAEsc9PdwJ)hkN|D0(Jo4P$!o<1b#0xz<$Q)>s_r znD%Ie_|i%e{+62WZ_eY_wu0gDI>%!jvW9q$_P2@iJms3*GN0|Om$x3u29M4qGXkIf zC+M_r=h!(+EIt6)M<}n^z#^Zm*L14cVjzltHZb|OR>1-Djfd#wT*rTZCu!cp=okjUVn@?9Hjb369pce%$djIS$XCk34V2q+)P*_NKt}EUt>$ zwh1ZKOw2qKZY_10Js;v5{q-g%s-EiDb;4)Q^z^}N!cvQBJ^>zfdwoL}H~FR#7vVkG zw(yB}=VUym&7X%VG!S!WUKfD#a2B&;cP5=fR(F_j3}gV%w6}>&>*c>90Bs}jIV?{A z%~x1ERx@AhXZN8b*xQ}kCS|bAH1yI9eu|E_fXty&HuvQ4EL)4Rg*Cf@SXSf@yL+59 zAn*Qw#EonE&0Jj9F8|59MvVh|IQLeX>o~i@a9`;=PczCIG@$9)lWv{4RWPJt8{p4g zj`Aj$Tl>G3&*k{7wU}flmu<~6@YO{Ib6x%8sof;H8UVd(1->e`#~j{pT^>U??bUCF zVP5HOM#3LrJjk0@anN~(c3wqXO#4kD#MizlJ1*c1Qbo6>WmwPO4d`^SnMtY6H-rLN#PTd)Os;?jq^B0%s6juc<$dJYX;)TBP zx==eS#^IDVRyOE1j|6WjOh1e+ zgsK*)#J8Vwa7$L|2JtTF6n0aUaxXh=gVR{ev5P!~q{M=K##a{7`@jKL@3CPze+BK} zpz0{d`{H~>=U04hcaj5UP;HI*8N9j;Dc`4ea8957503cf+YOIQXEQt#rG;Y)TNiQ_ zV3_OQjg@mm{l|%} zZ((_m$qTpE5Ozm4zGCgsTzEBmDOChqe|>N`kWN;mwFFR~7_YmztCM7D3|S)EGM~}U z!JCxba@+)|CdNEh^*RrZ-F$}WCk|m^ygrj*-h5k}{@(I^XuH2DNw3yO!qne3jN`a( zc){$|MTf?~)bDQOPM$#|&b7E4=$M-ikM9I`0{P-OV*DDRp!sl`Hs5b9;f7L`n*QjO z;ljX|g&Nrh7HL_e9Ab+VJ3=owa35Za@c?d~L;JSNcbd6eEwz#D_!D$nyMf2SI1HCf zbFE2mKGCC^t$$r$GnV4sNpSuCJi+WIyAOhg3o`!PIWhrw3&?Kd&5q*n5L^C7rBnU+ z1dYV%&&IF46|sR>|HB>jt$|fq94D zCkje562xJS&x>q$>cnVowYHc4#eZ@><5B8zI`JLL=&1Aa$M5PchfJUKg^#{qebKkQ z@gGLEYQbQgTobOpj=tB`J#FB|L&r_QnQ{z|uT&;znuHF2FqgHHop@+nhcRuO{)*Gk$1>Uj337h+}L7a&G z@P}`1Qpn8#E$Ua7YGV$m0kt=FKM92}iFjA{tJm7hmcutkxcppHI){bvxHaFLhj9Vr zmn`zdYi%bVp)Hy8^X<@QG*>*CLS=zA=t zvHOl9a$${`D#-I9O;`(En04DPBI_B zS==Hlj(NgAHWZD|tu3r>KCPAGSZ1F?C?U^>+Pk^?(CV+V?fI>BvE^uPy`CJ#^o}h| zH$q@+BNy(Z@pOH#hPI0yzs)GO6SJzu_SPpc*s230@9ow+TzmO$FOT_{=l3_)S5DMc@4u}^DM3} z+n;qzRJ;eS;`!`-w0O7u^Q~_r_b19=Z+ixXtGy_tuzm4GUF`WcSM!-+*OxkYiMu_2 zZ;}0uVj}>HrMAM~DxY0GKQ!_$B0x~v$*6Gav^Q}mE^6b@oK!Y7cmX88ORRSvfA zk|}`6etxB$;1y_X5u6vhE-JubhXL~8npejK{@U{~sIAW_j{nD3%Ft~-hvc=lD;s6V z#{ln8`Pkqy5p#{{zt235-K#y`(-&ve!@c94;|bXoZ;0x-Zdg!%VptdI+4E!fxG|IW zWTm@qn`3Vces}^7V{dudw?1C~A?IN|`@FA)Y{iB1Fz3SGQnMVRWTO?4K@$m47d{hAhN#i>a(R=wfkXGeYefooII#(~3T}P0c?|TPe zdL64@2`v%FKTGhI=XR*&wXqvP&Dx2GROv7#-jb>HpgCu0RZA>F221oZ19UygsYD+`AnaX zez?USK>BlqfB9Q0{j+4`&n=oH^5H}&jcE-GxG~UI565%3>)l+{zQMpwA9|bB*k4}Z zA$Qmkk!0_Q>B=Ggt`Uoo)rNKUj)`Ed?Mb*yN@f9yquQ=qvzL!d#kPiud8Wn_D^)fO ze^sI%hWYG0b5&7qn;;K&*8v~B_evh#tfm*)$#{k=*smP-kV>QwCI##y- z6a}MQp`?qIyan<+06`}6jLVzrURc+@{Nw?5=Vo(f=3yH1mj7=N1-vMPTTT5;kT?YL zUWuc8-o~g1+r75@jboE3^V#c84jU2V^!I+8_#Ut3G{LMU!pUj2d;;t?Rh2U)m z8kC3A(N{`7Iva_vEVb93X4C|mhDPVT?PF&|>enOYY+e-m&#bd!8uvo$B}HRfkoxhrc_-A-G627(Bq7@u}ALxBlGNWn8 zw}+dx%@T5=p^j8qG%+v~Tc-`nd zp8i8FY~xEz7d~CRCAfhaKnsedp8IqMZ4BF6NBrY!Hdk$tIACuAhO%J*+dQ@*+E5sJ zwpWHnZ8ug1b6mudv*(&N)QO{*_^02?T8&iswECylB^kNqLT<=zD`+fQP?|9hFp2XK zU%il-{>y7O9`f145RIR+&BZzv$hg>Ev9-yXzL&~2A!Po8FJo=;qpK(aiW1Qr^|w*V zjvE4zlvh^H{_n8tgrsFVF2=Ck1-X$!2NnkA)Wuis#N5lY%*kC0?AtW3Wsa}pWul-p zI_wbdjY1{nhzSluF_sVexz?9W9FdtvYt9<=Xf#^4*7x^A9&aNTS5T2UvPHnT4fks5 zS}}o;oD3^EW@hcza9aD?v5q!Qw9m%9!uj=%(1g`lA2Dfnj*l59dM;tj7MH%PodELn zIRMH_M&)21OM!Z-OPjrcv2Aa{&d?${=c-q0iGJgV>fOV_-ways*cL+``42-JE4srr zBNaK?aw^a9tR9HV;quqrtS}5|>y7TSbH8-{XeFLG9~W!xz1`N5d%^OVFJ0Lf$BT1r zvym6wyBHDC4%TI%-MUOoW83En5SVQR@Gy3@3<dim(Td1&kc#{qGEb4Koz7KP@EAF6ZKZ?O&Z=7j)r z#!siM1B+w)ZkpWBETI1S^3;4fyf=r+U`4&l0(j-ji5%b2`hGF7UmfKw{pHsWCXA!g z*;FNs8)`L->k%`o#;XxH&F{PsuC~^rdJl53tQWP}nnvMKeUX)~RdJ8=7mvXues6%Z z2Vj%=#etad?KK8ob&2Wdi{hNpp**tTNsa55mRQxD80O={bZu<@Xz-OU)^z?>-)9ei zuiO{wkj1PH0lr{>T?``VvMtdZk;g$2X+D^eSt{_R4o;07+U?=9ZHK4vMqm!hl!nRK z2fMluuj?e@YG?o1XlOvj)N8`TpjEdV1+G@jACofI6%Tvr5$ADjPV<{WG0=~P%fZo1 zhJVXL93+jQ`$c^x%zS@;lQ&D`(`X~E8G8nmz9}q*&yJDRkeGev&gMUzYGq$s-+$y8d3(9Sy>>vaErPCh;t9j^cK^N6(7LdmSz==oxYmE9q$0T} z@kB;+-&*qAUbA4>I!`$;T0Gmdh*7Pzvm1})WR0A2yEi;0+;dicL3p?Zb?qoVGKyiX z_1DHnQ5%3~tJ9QbE|>A=Tukk-@f(F-ahG#B=nsPN!?zE6PNIgj*7hjf#bAzGR>wj= zV{1EpPo@AY?R3HR*|&!(e15dU0rz{2Q_tYvo9V%Qk~q6b&1pS*P7%uKlCkX*f!m#+abjU zYZmMk;tOnC{9CSi&4`oP+M&k8wH{h8I;X>vi!x1ZIX6Atyl;8X|HLlVyp;6^i>53G z^ACZi7}Png`Z~^Ntc$2tDR3Ms8BeYw^RtGgh)Xtl?uU~)fl;spEZ6KnH;y`i@wc|` z_4@kCWEZ(?5UiZIbpO+}@n8N4usnYJ@n3KXk2kmFqqja)f_O?C1K)dIZb%v*`+j+j zWzX+^FSonF!{Z|I@0-YUQ&9i#(QMcb9ZERI@$m%oK9G|#4_KkWL>9OlL0=q9kMx5?L zi=)NXnp1p-yf619+m5F5nqE|^lKp=U#@pm9`+f&6-a4j_P5Zp zTpmr%e7f?YZ#VoMYcVEqfOr@P_MMA&gT`bwsS5|!`Q|0A#pa~D9?Bh9)37(s({ged z>JT*-<$-6Ru>AGs!Ajc%ml}OtLG+MCOPcuFEEb(G2D6LQ_!f7hj@9JFjT1f;+`f;- z-I&M89Ocwa$h6pLi7lt4p%oG?zt!AwR3U!H%zxIr*kUY*@&8heomKF7zhW7K$0d6c zH%AUlt!W*)=xtlWC9BCQW>R}&9m$Ml6Ys+)r`^hB16DsdHOAuru=7&W%xjO2bv`7< z?O0uoQH?xAAy^qE`OzK;Y5+L^bEZHMb-O=mtl*PcGx zYKcDM8SY{-y!?VyxB9(3Y2hZ%T24gjC)!1HzURz&b$s)E=wyV?E0cI0zxR7%M4`1} z9EE%9n#_Ky-OGA$G<-FrQ9bnSQ&@75s{%A-MbNd7`^`M>)=Hef=r>jf7;rNcpi#xQ z{fAZOr)Aw_9F^vPK7+h-J8j;9gpcjL88(@*UR)#5KfZ5Q6JQ)R-`mTpF~Kc5aSJGS zr+|x!re5=d2>FjE-Ptd1 zJD=L=rL8t@aOe!{v-O;Ze9T2ZYalz?)O|C97rE$`i)V7vz`AEhZOrZb4A}=3bOOnF z(@kbh+95{XUZVdylw-5n@ccG%iB-G2^c=qCB%wOY$gJZGTR3o%JATv;WkT;n9f6)6zbXtCzBRl7Q!C;sDH z)iN_Dr22<0CXY>|n#Gl$D$cICxlX2ot?H+dcAS0eO$DM`TYQ~Y@}2FBLm{5McnWSV zj+IZg*?08{XY$22 zGO^7~e%Q3v>Uc*rRl(u^$tq3Soqfvo>z`@$0S`VMG|CTi$F;G|Piy<~6lwdRuO0dMLxYt?c;%r;0$mf( zHJIkHV>Py*{D8$kG~=Lw@px3L_I+eeu6wmYFGvK(#_Qn@$Kb`vG0t*i*6;;BKV6+Q z?U5<2a2p8f6EF0E;)kv_PoDMHM&5Bz`02yUak_Xx_=L>7s*SPm_RDFaED_RD!#nN8 z%UXYG;`LDbmuG7pnOt1gT}x>1wa@A^dPWcs%UcvqPiFXHA3w(>OOgaFa{3#zaVdci z$D6sB9k{|9(Hz#Lk)Hr}0J)Wd&g1SK>fu=acB++GjYGfbeoEh%lSXp|z2@&4rrfEc zkmha6qKK1t3g+d0qkXbC>#UO}>fzCxIk`6Oc?*ud%|WY;hGXGKJo#pU7(2Qz!KO5f zLE}&Uw67LFxRLaSasS}2eLfk=ZwT(=t$(?@2e`JL4Nb?=c~;d1KzsX<<3SVk;y1_5 zN9@BWYVGZnv38PhX!m&7FV88$6(%d=7^sKXe5d=4QR9O}*Ksds?GXubvo7b-Yi~Js zgpCRF+zQrABZsW_{|s{TL!k&1mHga)W~=DMX?=VW zL@pm|BhQMooKz_53moH`P%ViWSN{5{Ouwc)yI_?Tb|GEvkxJc zzh40wb3Waj_M@@QgC?c!aF4C2mOFlQHP!8D|CrW5cy!kH~5uGZz}O+pt%d*cgLL?`8lI^8|? zlbQwc*~w6%qGIA;xTGXgxe+(Eh?L3gZ6cmUFjLWI&vPN|dEkTZ+6AER`36Bx)8}FH z;{%8TE7mSG!_vly+922t+_KW)J1Yn8zR1R@5Cd&>#<%`aVH+LKte@d8b&yLkBbS+*sS|D+-<3QCN2c#>| z=8ar8{>BHZ9m}?Me(ML0zRoqjB8BFlOHTVPPI=;kk#2sm_xr-@#W!XbRdJ1w-Bp0L z2xjTnU|MpsqzRTASa0H^@{rXZfBWgyn+*8b3&-5wN`mlS;EkJZFE4GEoiAQu zp^b-CYy@(${2M&~>Of*&RDtk1TjjCW+;}K@<4PcKienorhbtg` zE0*35Z>x85xCMqfE}n0N$lo#XMky(6WrZW2#KfoH+~(|PwE>sAy^BwOG`zK*uF z@An*WMB+cjSmg=cK!0gngN338mpb1 zH(SQc7M|sVz4?n-OmSZgb*HP`8&AJ>Xw0Jnss5ENeHFSmGV6UOtUo2xZ_7$?KT zbu%f?@l|--;&6J@;TV`BpPJz2vU#AheAI7E&DPMmYGp3&i`vM^d{o*`eP@65_G6Q+ zlNpmsRA!&+pLrm69_bZUcFqg>a>Ca*?v3L7`t=X{(qim44A`@rGpM(L%hr1H;HF3o z&1$B9k@UZLJ4e=NQxOBloRc{&-xw!!cGD0>K#i(b+i+=$KH&0+XKw++rQqoC6WGdNOCp(B^;I-C;Cjflnl}#!gorett;r{X^y9HTHQuv6=!-qMPi2Omeeu;O!tr^M7+vu?@Z}TwzuEA(~QV^ogYIIdEn>$$^RFO?YfsVM!miKM=CUt7%taK`WpMf+-K9!>Q5z84bC zw=66RYo_)6unhs6d(JAw+kW+pw^3RRc$S~^z>B{g*ofYqRXrGU&Qg`SVeAZvHuLDS zS76|m2;%7D(F=a&fm813_M;YUIjT1;?Avc~499>TseIyrZ2wRZ`2cleY)x_)cM7j; z%rmQ}=S=^zW&)s?s&U>ulRg~8+f{q;d(CNXFvNa&%65m8%U8j|Z~}vVIh|dbNKRr& zQ2to3?`-r@;_rQMoFLm8kBph%tX?rZIC|9 zLemRV`A2F=ncKR?ln_06q@I#UdUG6RbSW{2SB21&|L|tno3iZQw=d*{)y_ z30=X4Dg5b1A3Otgc&09_spw#^{rPI*df-sk>w0*%O&QDYxN*izr0tLP=cg~(dAjl~ zmvTR0rWIfyjU{(~y7|`z{1a`S&C{8_!!r+vxjR1TPhLm#CMbcPGQV!`Q)X4lSqI=6#f!`P3wiOt$t1 zG2U3F8))xu+0>T@RIcfKCJr&(XUtNi>wcMPtYWzrT9KyKPy1@MdNpVIX#zGHe~VG> zo4e-a+zvMQUO&oP5l`AR9*rrP77#gop5cxy@$H#OY5?1Z)Y}$_x%sNt2c_xve%-|$ z337c{x`ZYdQN_7pv9^>+D-kf>DM* zjTGkLhOS>Z7i#Le#%sJa=o@76(?*Q7t&K7txmXwMG$}vi#(eh=pLZDbFOpUsoEaQ( ze4-U6V}5FynHpcy;cb3=H!kte7FBX{(!t+b!p7-X*JmEa$RH^q#)f9~(Sn+_rr99k zWISWZu^@r@1lBMV3)z}iUWfg{xht=m5!nOgexXUT_%Mg`FapEI*sLTTusSgK5A?2o z;>(#l{Isn60dL;0e^*cJofrL2hm&k3;zK{U_WH=uZ_$ah!uF}q7(z%HU*5>%gRL9p z{Yn8XhMHhniR{?|zVo;EvzX1{uHqH2PkBa9yGxnG%(23VXyLKx6Q?a~`sLu0O0|3F z^QRljYJ}VYLYF=GOoS%2IQUKMGd9>c*4TWSmt-+=jA(UqQ}=)W=a0V$*1u~dtj$=qVn$H1z>XFF&vGU1p$Ah_cYt_-q%{N#2gn^Jqnh)e+9*qS4 z`-CyF3uMi_Ahg~%V}WlKZ>+yLBR4*N#_I;vo0ufJsN<-1BD{l^ou^k!Uo-O#K$9lh zqW5QC^qC{i=3w9BY77ap$|G!A@Qb2mHpJj8OHJ(hy3e4Wxs(IoD3zMDwdilOonN(b zLtEll$w+&iZ7?2h?lrg2`y#ltj^1&4b;;q9v679c_5vNpZajFoy8FwMWLe_keyThanhZg-aRN9wX^ER*etlf}E3^fH5}5zuC#8RL{q$FI+nbJyrk_u>DKjKE<(3Y?mvH$SZgw%d_}WRcj0HV; z5z;k=w@;g|I2sWZbL{bPzvxT6a8vRe8adu>*Rrft<62;#P@nqSm%=Lv9Z5(B*t)@GxAfXEE0p{=NI%* zY`7LfL2JYQ~tv@d*ZShn$KHDn>H_tT|;`~cM}{iWe_L_7n1bAG_)Mk zt!=iSHw>{8(~PPB06+jqL_t*dD;l=?UppYl8L2njD!bw$dwZ%wu{Te}!ap5$$T1oeEsn+VIn|7DC@$px8kss;OO7Um+i}NsI%Yw!|J}-MO5;Ukg(I} zH`!I>(-Ui7cw9V{dow#26q2QF_fyO|$+p37G#BxB<|fbS9{$EbECT|p-KXf>HTnsD z3RZ@w|6**KpX{GM`DvYhg5uT2hOeJK^V^!@vzG5VcpN0 zYhK_ze!}~vI_Ju4Zn_!*8$YRC98%kTC zo6OBc%_8B-)X%#7`^SI(5ZW zlsuiWbO)n1PayEg1~8c^2^BkAN`0-~xYkEYC!JUVHa@@km#lG+8Ka$Qo`$-b`zI5xF7PNkVi!Bp0}#V2{-L^;nDh{5kwBO)1R;nPGcB2=hDUE z@Xuac=2E`37eRAa;f9chIj`u>K4t4l#9EvcCe%Y`<0`Fv9va!l-mm?GdIZ+Y!AP$^ z@t8|~nSOufRzHuMB-=MkxskuiiE7tVI9ubTx%?y>z4z}$RzaH@4@YwjZ? zfgdJot-QsN6JGC{;l5vn+Ix>=Z$-fercMMn6h{`}`-HBxcpTQ&8gNwqFf53s%Ns={ zQPnh{@z$Q+;(2s0VZa{N24r>VBdjp5);HiF}7PcnUnepy^&S7x>!Btw_e-bYWttngciFR#79Lp8$nP~Tu`gwhD zKleit?U#-1e2h{(z{V=x1rAKii^543jU2MpyM}&84sXxIX`j-qIiMad{+6=W{r~*) zpFjTm+Zu@`FR^xZ{H>Mi9#&|FXCn!^Y~f%0TkzfMX)1wN_c1B5;vkZXK=ju z-5VLxzVWro+`NaQx|*Z}(3qaIl^6Nj1|pT1$~BWNsV%R3crq3bxyUO&8$NQnIv|n5 zJ2v;}4Pw6LS^&=iqT~?=TJq}t1=+hs6<;}et86Wc6L0Oo>WlbrukRUdj-j8nSKpl1 z|M+a((=P|@orhaH+7hN(R2%uo0o!<>6H~B__cH0(B-EOkHq2Y-EVs*7v4C;OiuT>y zhKDQ+u!yiY`63P18o*Y5y)s z3yh*eznRO>WA(FPpMBOCw;$-`{^>}l-TYkb;(*MUJ!-FhK~aOg+`stRI1a--yK*~N z{WiZK)aJeLgg!+^IQjQ%;s(MmLWABUccU50bXwS*kf{d|6G;?q+6QzRL#=pXNpkyt(vf0F0rT z!IJqbuDslgEjAL3s`7)sh{r`NUvQRZK1bm6(j5J>(Z0yU2_Hi@rJ`3g`hAZ-rTL@= zA#;iW=k`}Q>zqGW>Fr=8^zm@5w83d;gML`bA>!A3Y0+Hr#&VNj#D#WZ^X$ZS0cz7k zUo#h7wfxA_d0VC!Zw!{dee2B;IOt4d`-^WFYGwXPA4iq?aqdkZ?Pc}J`$xa-C#H2W zo}8?qNUmtdxP73p?j^s?`*Hq zqU5w0i8Dd^!Z|oZ`UcFIE=xuMl~2wShFzTUoNacFud(^EFHUp5$|Et>K+aAp4(E)< zUZgnfhi}NMC1QmhZ~oX%gnvQoT3`FZs1%d##p@;@>DH%_^_iY3IX)AjVVvY7o`-Wm zNa!iuEL<#2oD;>;Mlao{nO|M-x)>U3`e3t_pELT|=AQc4O;>%8n9s$+#qV8A1m?S& zxfo&P@Lw7uC`GgfbyN0e>WS6-QSL7|(Qb+_%qwzrCNPgqkR`E|bifxctr*gC7@f#Y27j4+;9h_EO3 zMtT^wSGYe04+_Tqy7r&`^AF9z>!!gsWiIyKRM=P=TQ&g~*aT?wI3F*d9>-0ydE1Z| zJxxp+KVAFV!P#xS##Gz(7ym{vN{)PW!@oT$+Amk;z!_R0C&*_cjRjsjPzg84#b152 zDNHvi@dKcHOT_It#uLlqbEXX;u?6r2fhDk}zkc%H)0DrO$cU~rHiul0jb2xW3C&~Q z_1j16dq3e9d&-kZ@KG5!F75p?UJc?tPl%ZmJdcaEUK_fJmeU>mnke$^-bP)9t0NHf zd%Hqqo=-Qewm^mMfVy~aZ`RcfS#)zut3=hLpbK}Q8 zob4ZY6Hn8&cuY;iIoWzFljHB0(T|^bEpX$v_SGWDMksF~9XD&-esxkJh_>ekm$6Ta zUx;VJ+_7)qovmJEEx*Ziux!J0{L0qY+F3l?oEuh}%~E6{wzuJ&`TvTacUZ$Vj5vG~ zGmfqU`Wrg))MPySKnvZj@5aiNGd9*d4i{fgUB!02*{+Yk8MP5Wd2;h_>M9Tyh0zy`eA_=WvL=vhGFJ_Gqx2Ymr+X&KL92Yx8cyA?NTg zE;D?JKj$#S@19|4!6(ZScdmt3ZZi;XGeIz8axzE1G||?*d*%^|gX{U(&|2-VLq0s( zL4scm;9+rJ)y*LY*Dzv=>3opi;-6mCdHE*6);WfJ2WP{2RhueQTw|jt8mEr^7Lp3E zH*spqx3R>^vxMH-a@L5`?2$+#xN)$no!74`M`V37MIVp0w(`f;%FrGnJpif|#_cuD zQF6I{9{nI-@%N^v$jn_&OyK4YO)Ibucj1-zqd8^`03;+TMmYca@j7>a%l!bXXzM@@e2b%MWMf zwnS^D$9*wVUwt9b{-94BX21BlYsXhHunBNHTf>T$NGEN*5A9_iATsm^8SOQ4k;COF zM-&2t5saLhXG*Q(<3K-O2FEZ!r zyP>66%wPTniTOdpzb?}U44g+8x74uRc$o7csDNZx#MC_E=>4#sbJP+2&VSVI+sec+ zPkS`Y*TcD>XmftD))QEcnZ~uWnZt|%K_`|UbQK0HZ5lHK4uJ;4`OR&{D(CM!JPZZR z%76ehUlMH$voDjt)el?irJa}?xPHJ>E)=^rRgbUHG}N{AT3gxd(v{Wh?2EsAoln-l+Qk$M$x(02 zcih}S{CSO|hy3|^^_6eGaf%|OV1`{O;2-XJy4 zFxzWPlo;gJyxwcnBv-?q% zpu;wTU-Ckyq6>;S*d`Ne-x-N>N-<`#2iGw!bPa0$t?jjPA(I;*!gK=2p(P>w$bRza63x0`pF;q-b}FX zV0hN?;Ua6$OZIegmvEtCm<%q)^GhAcv=td2ncwAjbud@|tce?!lTbXd_TJ+1t{}*Q z&ret<^YA*8w|Z|BrM`tsOgZ!odO1Z`fH{alTi;Ca)wyz_Yhf5C1F_|#`+VFGt!qn& zpLVG&em+?GYZ!6^!W`vlh~9+fJfe7^YpQzALY0>IHsx}Tm(j|ltE_bu*Ymy}{tFrm zLOJ*`()|tR!+uGtHyGqkLw~a&1xn}G>Z;k-Zeu1-JY2Jb$=(e~yw;j63(L{mfRN*} zb%;(w$E5=~{d)QsUo3>aq1HH`fi>TH!2yLZ9X7D>%Q?0H?|Il8J2{KOvlj$x^|3U! z+8YDHXQg6uNgrf9*;?*HlBYi;dj3Y2|Mnh$s{7*N98Se?l4u*IKH_UPf%Ph0{$Im+ z<$74dZZ1h&gRrPypbjQ&WXHZY*EIDvLo%n9tHsdY-lR-Gd8jdCkJb@Q`$^2VM6inV z<&V+`(L&DF!13{-i2+J6RBi6G!jKtpIz7a#hqyN+A1PE?hDAdfN@h(}?CVaw8#nsi zr0fkwb;Az-bRj0+rF4kHX&w=z8wwT)-YL2uFNqo6_=?+$GNs`E|8}LX zT|vR?*O%zr^-pI^1dN;c_$8Ik9NpDn*;vj_U-AXy>)N*EQeGf`UbhS*m(AIem3=5j^nQCaZZbo z4+ukUg)_;MS6LJ|M4@BPW$kILA&N6k>kVHVmYwp z5u2C1_Sk4>+dP(^4jgIxO_|^9$AV`#?E^W-ivZ54>Tod%W^&1~b1b?6d-095Tz4Hs zZA#i)o%&PyN64DT4kOQ>F{p5cnc?<#`h$^bxoZD%4yO(6`G`5KyKA4$vwM4+V|O&L zLgBh*-F94Di|i*X`^0Ko(d%Sf&iV5+z4THR)mAaEed&Dl?$=n%s2YiBR)%(bnrnrd z_p6OI3(N`5>y|zK&Kt587qiXx-KBrrUT(xF8j)8W~hdF*eoWtrhd{F&; zVDLOVSx?V##;D(vm6s+w{1Zd19bIc&~QY& zqnbG-tUEHf_V+@xS?*eTKNeBj5?>gpgp2dsA;VrdEwk z?Rs#|_8t>5x4DR`C!o>tVE|Um_4>qW*8mLU%a;r1tPX(0SoR*>0R_u8D=x2%H+aG0NUeYMuoqdAhF*DMhL$4UQ}&l`ir zUhX-LlOD}m$LkdCah1n%q&G19>np<6Sf1(1ZG7>=(ece8z(59Z(lDh6VH1c zr>${%9mbj7;)}tTmLAPjgJA4?Q0iQL&Gq#2)x{c_Vpztc|BJcWH5_84FK4j)Q=Eoa z2^Z@&gz_=1_D%7q=X>*Bbdw%Su(*+FoB*o+0}R{ztjqhM%i{%Pfz4gL>(IgtC#_LF z^{4~;YKTL-li0KuQy&?*isly$k}%DVF0QH_A@l7VrG8_;!Pd4Lp=Q{My=UzQ=Embs zO_iHqa-$yZ$3E4_e&00D91RCWob5Qs$%4Ge-G#5osgD5+VL(}$hY$M6IN9d#`7MMN zwcc~DVEu%Vev??+d%OiBW%1nny&NRqDd)ZPsN#_=cw}J;2~HI$i)t#J>ACBE_WL@O6R_QX1Z?|>Tq=3n+%-8 zfeB}qpC$#1m`&qx$lF4nyf*`tpNrzRCftgCc{4_B{0-#!gu-SokntpV`~((i-B)*qk%_)kG1j9uOX@z-;jYYqddREc_I)tzSuQ{=K54G?ed#L72g6n z$W!Wsq%16;{-$R$&}qvJS@@i<0yC65GKIr=XE}@Q*N)fg;-c^rZNbEoeKb(XtiD&; zI>xy`*4oWqh2QXQ^G2Nsw=b?SKY`V{%m#|;X?wTq6T0aZH_!!d~IR?eQemC`ycV3F@@ml#ZIn2|;zBWEq zFFWXX_%%Dcdt(MMJlt_Ts$&D7rC4)Sr;YX7zT!Mr$dhLd`h(0)G5zLHn}Rb=T;&=%Sg%I5 zkr&tcA*XL{?iGL9MR>Wn%p&$@YD8uBM6`uUviZg;Yto%w6$ z17r6eZA@Wr7F{0A=YodlQ|K1B+UaYw)ylKD%M#3LLLYG-=8Gui3Py)`)`sZT;jr45 zGSO(JwUE8TD83xpp)XOrJ~|d2?g7Yh;mNaW#ynwP-JWuB5poA!X|RcpK79FYDmU48 zf71SB@kIvp5rq7!Vf7@4X^qS3rtx#ts@p7aQ}Zp!(qm!EQ;`)&_9fBE%7=GkCu zw&gJMc!mpaVOB3|HOTkIv9U_c+?WTYCw9dn*wxr zK1obi~SOoGpM~-l9bU^|6G;=>7 zPsBilQmHM4>*wTvl(51bv*a0(zonMH+_7_XJgmQV(dNmyT#b{dT)m90U9~L#R7geD zhA*0qOX~yE*&Cb|7rI`svLLmKYkt_FZ$A`XKk#cVe6rR12?D^zb*M}qTYAw}eLY{w zx6ij^u_%AIx@Pfjecbr=13a=25-q`kek zBhY+z9m2#ppebL{75BY)_{K-)X^ULXmUTCN$DP~bMEoeQA%@p@zqXH67_-Q(`x5MX zvykhJw4K-LeS^jQ?adu;ki_x$;ooAj{o!CkTPL12J{Id-KIYAB)XV5Ev(ok3KI?dPQn|J1? ze%I;wxtPMtk$8tEaxuDQNap(LZ~bZOjBOyA0N7yaQEipkuD)`+{>4fsE@RMd1gp1( z#S-J}Ln9VCF=YPk54@+{b?x%O*V;ySMHap_mLF}^+aJk5<;A(75`7%pTg|WB#w}a; zx3?hI`|V}Yk2B|1a`%@pffJVcaWi54+%4>&ny^Igy;B9)?RZ=WKjJ>gsZzk+eB$XDREMAf58jTDyvi z-kKR-7@zfVOvQ1{()N9u+E`4EGqMkr{2G}c!myr=hcy4DgAa5Nbs!phpZ~oer()K|)HAeBI$(QwA{UxKZR`>p~-1zbp$>xUk+HG+9 zxVfC<;}h-1nx@p97s93P89gzoOZH$J6Uh*E&I!lt%Go`1uhpKlS?gDfYb!BtBQzk% zm05AGk9ho6U%Bmvdo<+ZpA1JoY;85rrc+PG_t3+mTHAAOik$*0OH=@@w)Wf4_31%& z1e23TXKK-2svMbc2Je66nE#SR$PW4jJ4+dYP=e=V5i11a^$v^U00`=Ym24XlmJN&g zzVx_-6bp@agi0WJ8`k)?o2yZt&^Ho1oJyOF!`lGNNvz^XoH)7gw7eT)3D&0gScp0q9L@yW_yhT@FzQK{YX3v)62JD0lT zLDTcUzM?`l3yn2M!?e`k7P)P#TTeNkQwz({>MVx~(ggG9Az`M+$?lHMd4B zKF3Z#{V{FhvhOB{VF>h_Cx~}LFRL=Ws9aR3RX?0Kg3_u_T=#f!TqFeQ4V*;yJ0HliPZ4AH^QTNaI18ZOhCA=oKXSTVe2XIM z=1TL6m<9d1I!|@;2m3;UL7W=wXM}k+%#S%K7|GTG zZOIWUu}$M6)BJjv_*3Rxc(iRJZ{i*oyu4wMi$D%xZ3z*lHRE0pLCKGGu?xf#{0UzU za%tSOlN0B?!73xM9W8ZM(_r?{nN!*WqU*&)&YxHq{(ke_m>L5+F*g6~i=TvZy?87( zcGgVuHce~q_z^EI#-wwH^T$7{v=uy+c`e|mc|qD9$T>{VtXJP6E4L0bfmbpmJe{%z zv`zrK->cIW(_kjqSYYI^?1--pEi_di-OZb^tHJ4wdNqy!-DbrFv4)SQe!UqOVK@>e zy|J+}H5*rT;GDz8nK zyye)T9S`ph0wi!62g8=}tg%f_&YSq#MwrZI4KWgr6Nb%O3G~equj)cRnSTCR%l86I z8p`6APu9T-vh@vN&F)#-=ptD>Ec~;WPR#BZy1$^Ko>Q(qHA$443w5Pg zeK^0Prcc`AZ}nejYt(F0MSiZKbQh%i>T*PGENOAHyBHo^4D$UQD4=CU=qLsC|1S-HnOC87cmzytW?WPUATXK-{f0#S$BKD^I`p)1cP94mlgg z&#}$K0*KXuY_;xI&a|3#+v~?y(?CIBZNnujuM_?RKzvVpIR|=OvM5l)QddJg3_#6S z4ENbu=BGcl%DRVZ)`Dk>=`mS>XRH0?;ry;N#^=jxKyyAzB-V&_Ts|k`F=pDzUoJGt zKVy+#slfQesvdBB)$shce`-$RUJtq^;CFn(HLiX4BY6m-y>;N!4}SU(fI-n?8(T|< z-ly`%SWPv~QGVj>q3>JAsr9EJgvYQJ!`MFDmNghs&C7WX;fT*yKz9$JyK~h9tP!D} z^Tw1Mo=>&7u-Ta(eMP&@%vPQ83WYM>Z!p#w1x!2=6&Vi2L+BZBS!rO)`$p@~4?Z$M zH|j&_6DBs1YnwN1vBBs)2XH$yQD_(YBDpV|TA$^xoYZd(!N>3JwtSkgm$hUIfhpNio(Xh^c_S1QJfxlqG z58X-h;$H37jZ+jr+3O=fC-Bm;IO$rsyOfA&oDTW%z@~uJz+9DVUD|S<#0yKUO{VJ< zu?Cei-D)1<*$(S(L*Qq6R=Q_sRaf?R`DTehRc8{o4%@fYAeVPLndxv?(_t+?`$)$F z+tpKtEZS&ulH>P5|Nu3$S z+M7Qo)PCQ?4mjm&Q5c7mvRiKU^V63Ypcl8w;U`Z{`Q?GJHg45^D8R#7_Mt|Qw5@jD z3vlQoU1eH#Z9`zp+INl7cE@3Q%16uLbnn*KE>6-T_|}w^R!=e{=*)*9xxK%z_)a)A zS_$L(fN`WJUQ8NiT8x>tt;Yw)8Hm;_Dh^Pp3AQGz(!-+2#F`*mjnHG8o%Q7L*QaLs zU|PhQJi(_4fo=sJzf83>p7@^4edD;b<&{E1`4LGIyToW7Twe~)@0c$II(XtEj`!4Z z8opBTe9tJ~<{N!@lqY>(s;n%|Z(d*XQ!4jvF`FB`Rp@=G_i^4-$?kILr`|6aOiI;V z5}9UiBanrF9;kSr_iQneTKLL@+`$;hR6O;@s`yu23vQUAgh$((2iu3Isgtc2C`eIp zSO`uOn{Xwby|J}F{0*iWSo=+LZ^qaV#wQQ_$mQL1no}eejF^zLx+whGl)siTRY0kU zA-KKSCOPF6&5b7`LDloj&AuYOzmvq88U+LS5IMazFZ)>->wU!*1Fbwb7iNr-*2f-B zO{C(W@f$zmWzyWpBb{^Q{h1;K8$-_Iq}42M{ORYHhzbYI{`%X6PS4z$K-ysF;aD|b z*!p6OY#eWF-Gq?6Pe2tv z8a;*Kq5+D7wbEQO4{;EM;ZNd;e^#0LRGfpLE8=q7vpEUWe4y!8;vs*Vd!vfR>8hXh z>Ia4m+^RvYnCj@L1TDzyk-xoEUVBj>G&{oF$a{DdcBWJH;6L>!I%OSU>jAs4nm)>F(H!T;dc&o2<`TDTnDXoB&X@?Lj8Bp zdL4bpqe#cY`z~uz4XEAF<<^X=K3{IK{qpQOW)Sdoeepea^Sp$^cLq=IGdS3HBVHa6 z5UILuoJYI5&$vLJb@0Z_^UKL5220mm;L+OR{C+lW5aKU8#*MjXVYL>@pCRoY#7@Tb zEBt^>ROFP6s}N%F5NVp5Z(1SvT+55}wW<)9EdFY1+cJyOJR~Vg-~>vho})LLQ{>&) zD!1%m@U%bE0Vmpz*~4)B7R7P3sS&OAEhu>Zrv`Z{>{VMc?R)qnj%Vo$>EZsMAI-6T z<(#3H!!5oH@@wy^{(}?OTr}N5OMGdb^yQjO@z9VLvo70pnQxH>1{zY&Ll+*c!IL&?u8v`Xn~i|lU@zb8le2K;^`<47mat~+ZQAb3 zz1y!Y_;R@zflJEyD=txtWBnZ~*UZm<=-7j(|8b_|JadE#o}N*>JjL-^1JQfX7RCd^ ztp|5TgqUc$qR|y7usN9Po4a0PHs)WpeWFsr9s*ggFgz)j4Jw-NA3!INv&`d(Qa3kL zYlGiG=!pttF)q*Qg=)~$My%^TM|6&VZrFE@8;013>9a>Ub2dv>eHV@WLxWD3%)Q)3T2Q9z&*Wc^nG|mZ0x0OsP3Wl zHFt!UUO781!J$_^Mvkp*{jEPb{S{<14>{O+xos|Cg0nL19c$OAhptBRtY`NzNv8Df zuiEH%HhIvOPix7%0Vwa^eC_9Npqz;y4_<$Em9ZTo;ycm84+|P;yZcab$JmGwt)7T#qWBoY!*rYXoTszFw>+o3T4*S1 z#?JcCmYZ*SG3+!V(pdC{Kizbw!Y#fWJ;3t*Wp6o+1G()t{f$dSoJZ8r3UqIWxnZR5 zS_|W0qIj>{W4|5@=kv9ySDcffpCqT9X2ITTFAcy{| zKC8vCB2QKE<4sFN)j}1(dmk;Pv(-3qMA6nbVsai5e6?x1jh{(dYLER8D28lT>R$r# zx-q3;yZk-N5P|g-M&0lRYE5@fcXnD}@YxUWYrP{E;c>D37jx_Ve^z;y1NOb&Nx%7k z*XGB?j)1nqExc4*r*s-R=Pt+M+CZJnFrH4|mbi`>G$vhJM5ixUMz;sh=`U5Z$1WGw z-S@hO525$kO-vr1_-c+C7>27hDr<^^A7s%+OT%r=VF17Q+&~!N^-aMZ*p(?At=AhvLQ)85))4=^o_RxAwx`>=sT&zwh%)M(Ng5 z``6=h4xqgXT#cTD^Eb_5%Y(raLJoYFpS#tIyL`q~Cr!)B!AQ`VC$Va4~6g zd){Rq3pX3>by=e-oWDL)vG{pl@*`i)`r!JDzMG0Mqt{d2<#D)LhmC3Vy7RfFQ*O>> zLx67l;NK7Dk#;lA24a1FzX$*|P*(*Abg)_T7ynS~jgQ$VUeaPHna^Kb3GF{_%GZ82 zpfb0-2z}p_H57;zgVVxaY*l?3khXrs8bfE7ZXPeDXW@Jk&hcnk)7Lf|CkTg|Q~bi` zm*=QS7gcQa_l3slNDLjx%VT_emO~@k#+Fjq$JY2*_;_EyIG;iyh>-E9jg|T79|1`KhK|7+hxyNbA~7UuW>l>xxu4ux zH2%i6z6LON&imOKZId=UvT8`%o3!@Eq}E97=C7@y>2_FpKNe0L|CzhL2hu*)(=7Hp zE~3a~`93T+WF82WZ^Y*152jTSehl!9HqVIQKAz@de-qdiR{AUnHHggB+9)5-=2w*9 zk1RZGt%awd+Pwqk?7#Z#tS4jEpG~6q!dlyWFSl?TSJ%Aw!uh;oYjJJo(NF&?dWP2K zA8PN-ly88_gU7XhS_j?4_SF2*rkz0vdUWkaoFw((v^5}{wKkRA8|XE^y}-htx)?+L zR!4Gm5#1}g;z(QXy`a@Tv`#!3%XZRxLZ)KZ7T&@q)~mlQ{~u+2?0f^54k`51oRiOF z4h6A$fM+07)~oiy0IzV&Ufm}-Sz05C3tlJpcPlCRWA~iwmy|jfTbj$UWZmbEN`L2H z8;s0tFR1d`ddAKerl-CTKHa)i*2H)>4PKeNJ|pc-`8KP(kOhXGel^fY-SpL26CTM< z+!Vs5Yd&$xM+p5QX1<%Aaur^Bts|j0)CWuZ<)h34WQ5d2IKFNs&EYv3kBe{Dud0AsAtj5ZOP{4S4iq}n?emhcIT`C+lb4Nf$uWq_o?+%SQHXo7Y z@3m=dt>pCmQgX35r!RgUh6|&b4#nn#ZXh^l>8B7|p8}vCHDkL? z2bdn(oviD3>LGpWG8>I{0>D7j?XIm|4kFQpmTpc;!of3A#Qfmr#ENhCEq&yU_Ev3b{Zut>#y;4dyE7!{A@c0+I4*S?AnKrTvMAjjTh@2 z!ZlmrH#YQ|PXjf?r|u$2(%6FOCyBYl(YpJZH%pxM zhR@n4yT$~1iZ9a)4qC;{N~|Y zZ!V(o2Q!X@RwX2e2lkB_O?~#H9KAIR|KZTr#(69fopOj@(UHnuIqH(5t`8TX98z*p zt)0?&bLv>%Sf! zveaTZwvua~Z6%EuO&r^OYuo~KsK62Hybs}H!RQNb-)`zlm=GgUk+_$d@ z4RK@WDR-J(<3e$L%Vn6&G2|;VviDnK`sR30gM$TMB>fwczgH^A)EQe8OS4*f+4IkVzxCmo$wFQ{st)Hj{Q3r={tOoqOUKGiSualI zvIrtMNhXeqQjxPk{SMy*0-gT=wsAVFz$Pzdc@(T>wDOD0KMF6mIHlLsU5UYu&ZnZDGc zk{$T^1M=&AB#n69EQOD*DU5#j_J^M)LiW8C7Er$pcq%!M{o&cyM&7nKm@EUO?GA=q zO_KmTQX8LYaeVbt=eYnNY1giSf54mUy*Z{`ac?j&c==gRd%|?1?hKB>L8I$?GY27Y z8TTKo27UCco;}U8$xpveUh!gPS)+61d^dLUa@Y*A zS$P-4MCd>?-uqt#R#ZM7`;$`F2XA~|e=&?|{XAArTS%MIUichWc^JnBwNr=uyEgS< zG$m|w34M;md(T;@7PD%cMz@G8pWpLnzThI4{GAIVBM(R4H^S50-c@)E<+wK^XK&2@ zfzOK_o`E$~370EIbu|v+xT+_n-OUl*>~WYkzABZp8Ux;vzridpD%CXwY*$@PjP6{mP}G`109kYa7^@ z^EasFk(OLlr8ztY$h;Q9wTo?&hci6oq=6Vku`PeG@Vl+=q6;nxN}n zlQC?%;M4Q0pofk=cw64SYjHF`whbmd=a;Y^<1^gWi4YN>!Q2s2IG-v*AM3XbU+d1X z^x@l0wKY)>W}L;FjMm~-18iQLP;`3r;2gB}5_N2-|B>$cr;mi3pXNid*3wp~iKU+( z>AE@y=^Ao%xca&`(icB{^($a#h*AOA7;tPRj+QrYa9p~DFo!{6AWV`zY zHME2DobQJ&N(GA%I|jCSq#Hsgd}e_-b!z4lVBB zCwDI75#K!VT76cNzz90DS%CWX9|X#*ioAAzwm9dRZ`Ht1ln(IPmt@!gAQkIuR&xb@ zgPtQ#6$c@Qytj|&tD`w#n;I?i*8SIc;S>&wzRRqd=)=5s42-uA$HX-BoW#P;uWULa z!>6%Bzdc|w(F%}WGvYHhEuX{HZev_k^yKyqTeCy2t!9qn%x9*NdGclc+8eTZIc~PA z!}zK8`0ht`v`NgyiZhh-uj{V@WdKIQ=;-A**-poDaa*2{P3utj_^R)G$ zV#>V`jnd{0;>~yU9*#Yg7L;atsUlh-@bryG%VPCSTZ47_q3)|==P=M_FGBjqhrRdgP>umH!(EbLt{=>!syMIW46MHKdIzgiAo2LFlPwll3Lt7r=?+{B1 zWjyPT_1?4*-+~eC=?OMW{r}8&pzCUASatIn9{KM@Dn@>kZpy%)Y<8l0ERLqJ+z^<=_as2|~5O|#z z&-nD)>x}2Ui8{Zl_jd%wbr z%-^Gv{3@dS<+0=Ki%n0lCC0fi@SNG@q<%prRgZll4QU&<6h@T3Rl$NfEau`1Fzop? zZKJ8D5^Jmuj)Tw$XNS={EQ&f3>!lg}Uf1Z4+*4=tpSg&rdN|&FWsm^40oK=D`ikBiNY!w2Sg?GLVV+H@jQPG-dy<>)nu zaW1~xnqK%e*R(^u>Z7egEcA^I;O;lT4qo2wEy~3Bd^tAu#J5P_2WG>?6$8dn0TH{F z-zduuu_CV_GSaMrrq=~dli8@_P3`84aepvae|00ESs>*mm)1N!en3swep7;)+UcJJ z(=c_Xp2x1Y7skE;%db<{0+G7H>nM8Oq43#M{ za~Sx88i!rJ2Iko>LksZ%wEwtiVOyi}@a$s- zoa9ja**X@t3EVyZ(+*bLQ;KwsE!-nx-pf3&qIRb2;#5Tl5Rqvz$2lXoLmYrk74T96i}@ z@oHRMtg`lg+ZKj1#OvMo1&(q*Xb?v*4q!IYG>UHx<}dE!+=QF)>@seKfXR4OI6aPm zST^A?UplGqsksHQdK_eYi0>6RUj=KP^U38$(^_C?sBny>0|nanoHO#D%s+WJ_V3UA zI?w#UK%eCDHyil%H{aar(3YknESAggM-!f!u*0+%bZldlzpvddlAcA$iOTPuG29r#&Ba znk3hV@BR++W zQ`utUJQVM&U6(7=E(SR4#%$wgt*X(-olP_|88hH%bu(Lsq zQ=aadnu*QBc2i)38`k4oTazO`g#5LnxH z6J%U(Z;ap}FCV)Bb1s$nv?bB45Joo!teboeWlSp^XjeJ#a#gIc2O+yK&N=-iKRRTx zaXYASoaE_#U9I$Uum#qPns@m?t0eK6STk|jU(%uAJ9ZlD(+>yr(|E^_HhxOHq3|dd z2OALQMAuj$71_s5*!G+Yo=p?zM(qkxcyjTFce_>#wEV5SM;U`7R5w5kES;&(f{q0v zhBpIUtIbQTPc^>RpI?6BM_Cu7&4;~*{Hwpuj29X5Ll&I1b8qrm-kae+x9-Apao?kS z4F%EGK?cjBF_SV6$00h$&$;l~pPUrt%A-$@UM-a2dbI~r9EtJWG*MYg*?#bt2v-qU2H0v~Hc&EINy?w)IF)*%)TCkiCu?fRk8 z-J4)1hEBeKmX&!*rad2?yWzwDKZz>$MN4ZXpFYebVmY+lX%7$lc>02MdifYhb5EVo zH6H9EiX2O){@T$YXKSSdc}lb3fDbH(qrbQ)Iv+wg;Jf_5z&~vGYp$~|yc&p#q`x&f zZ1gg#1bX5mm*@y!O&w&B#Ka_go`IM>r=nU@(0~E8002M$Nkl|^Qwmk=B12>MRb3AJgd)XyGIv@ zI`(FQB;!3EHWOfCK9nT2xS7?M(ih({QS`rl$p*(sAD?mFd|i!Arn#^wyg4h5`@@TQ zd5534R=I99D!fN39ao#x+8V2H|GGdo|0KQPP*0w!O_*+`jt?ERiuvAQ-IQ1Gw8))* z*k`mc5hw(NKb?Hd(Z%`?`>A{6Uts2>GecSyK4hzO!i>#+)%Oh9bF}hlkJRXa0UWJ`PC=aY6)!mxM zY2$;<15;q!of_XT5d7@FN;KlcS_6`U)g-o#H&>GL(pkC3aaE{$=Dhe%qgu-5PO-%^ z9pk_g8?)*@qrN>6Jje%G78gdTGfsp>+LsDdKQBLsF}}}YxaZsU#XUqzV@c|qyeG^i zmofO>FZ>vRfzEHVVmu`JU56KIpB2N;c-D|OyVq3YV|LEWjhj$jgVeB+qP7fIQw08h zeqi|!@8z9~Fa9(S1TR9^e!)rkC$(w6r|s3y8oRPCA(?rpqEDp8X9&q`zHu>>MgCFH zMuhL!+C|XdkH^-8u{O5aY2vedtN|VCFroT7_^8pCgE^J{o#>w?&iYuV<}NnvJMz$o zK+#@@{_1ZH%(s2fd7_ag6XN*y|NTF__5Sxi{BYDmF7cG2SX~?-!f@#l#95}MZKd^g zoi_f&*!+PjPQIUtEBg0gtRDnew>QuBVYU&SwHy}CF_4UQ$$GuEHRTZd&bH;z*o4iT zL+PD;W2YWGt5_nfbdM*_$7QsP7mWb!+(DpT#i+%BTPQms=meTbJen{yqwdh`A6WIZ#B$zEK`c474SR zLTt6J)^z!p2j23sIy&&wo>Tj;E;!23!(rK9bPz+j6XatvV0oBh4%%1wAvlp}?R`;T z@$wI?U;V}&HkuN|^QG!g)0ZzgNy@rF=IFhJvLdu6=C_HZqvrY9+&GD)aDH8}URQjd zt$BpT6Gc9#uZ&+!#i6JCwy$w;TyMhWaDx9f2@Q*ZPaPc#|(AV0ecRh!jasNd)0 zz66F5n8iJB9l{sDL%!?}VhYLtP>X6V$<~yvAY1SXT?@oD^f@N38)Y1{t9GayK92@9jtPg0uss<2OCWnEc7tMG z1q0XLDhrak0S@!@#o%QO*qST=y>bGqH=`L%9wFmkAj6H37d85a?Ie0N*}W}FxvKZ2 zXuSEb6-XmP4?P3a_==vX=ZtPVVXE900QyJ*^)6J7q)#JkEb}FZ4_(yHLReZFpJcGZ zn6X>6YP@ykr@G=ZKXeR)y6_Kucw2<}8&jqdw&gh0O^KZIXlUu1W-DV1`DK*n_GbGY zoSn??$jlhy(l>|ct(N3$Opoxe0<2#o8JYZCdo}U5+_G;6omV>9Aq5M5cT;8k-D^{d z=8t{TFi77Zl>v5PCbQ#@56p~b!*;_#r->~56ut(3_XmAwjc{5yV9>>b*aE%R6xtz2 z;l)jzHtoHE((}TqTl};bXFYwRA5#sS)AR%jLpx*lM8bZ!Z&si$VRYp5=B0*?@eiIj z_!UDf#$Yw4@wdPAZT*8X2^#uv<}kP16kWchr6wEqT5#{s{@F#|;`5ZQa`mQDruy4) z;c$*^eZg$3Zf`GX?7@)Y(jQ)L7Q~7lKDe3!|N7}6$O)e&LKWH8qK|w4^RHgYHEa|* zs0V9q*Vmu%OMzF|2OH8@%yfIO|9sgXgb{2H(67 zgcpmTN?P6&3Cd~r91>EYh5MQ@^3vJo0bR^)-jQ1k{X8C&*Y>#RsIP^t=2~gz zjG9k^ni)zXoP|5=SBnw*anaUf4sUD8dbxL58G%)PD zn%Mf;@%)G5U!tqMWUaY1P+ZK;*j>!N1%v-W3W}ZksgGtmW8eI&pb$wiCeYhuml<;pp8I(@T`PSZjQW#S^!XY)u$1gM`KDy+;^XVsjY zEBIG0`yQOWCc1rj$#o`z`tkHle)ljKZt8HT=lp zBc`Tt@dF9!ba9%Kwy&nU*RrO=l1Zlcx1}7e<7%eWp3OA=1W|3>U32DDU{C0JpMb6y z2C(wQMk`qMo)=7$-HJ5RXNy`N-5Ot7j-fuCt%)*D|KvAQa@hLU(GZS>ueNh*r?Bmz zuGc1k%}H9Tb=6-@h`aq`-g)xkSQ%d&kKT)d_vZUPmsn2na}8u~8a%o_fGyJ^QJjxg z(@XXq?WO`uZyjjW&jdMVn~qbZxp?8KGmb?L!HB~Ys&%H5!vw*eSZXV#*fv^k>Q#AM zW8-fmac4iK%gfm9A{nZY%keyr##DI)!iG)O4~~Xu@U6Gjv2n4h{^TTd}@E1oI?~ScvkkVFGY-(5?u?y>JS8B8G zdP;w6@dCd*1>x|zGdl9nN@Q~o`@D#)IIijHrjPTp^ZxntVuq)$s5cIVHU8KQe=)tq zWCh{aKWT@Z`&Oah@+a;2iE#T$EqNm&5$l#tTaD#)=h0w|pldxvRh#3Y>!zf{`5}hJ z8u+vvGtRKzNo2RZhgL2IrNE_ye^NTr6%BuhZ4OpL?TSfJ zkUO6iSa8Ex2`3*o^j${AaBR9h+6J>W1IV<&Hgg)_8BalAyw*PgX$->8!q3!L?m6gv zDJ|O`#wtfS(Dg5KJZxj=Jm=nX$~;%KSr?=WgX*C098yuFJkIDG^fhs_jE_@2L1?0>eKhNPeiHz!D&C~RfHLBHYobWz_ z%!@IlII|l|O|f{dnzuLj-w z%6e!o2KJD5jQWL(-;@D&@?q~y767vN!Ug$ADP&u(&ZbY+2_aUG$oj37P@oIXx?=QA6ieu5nFW4%!1c_D3{>DrK{uEMQ zM6d7_!o9>iH04FR@Hp$ItvX)ZrA%YYY2e=+)a2!-DT}NRv-QHv(KraTn{LFabbBf9 zD`nQcaqkyL?kzf7uQf!tJ#<{``={>3(A4^R?sfl(o_xA45Ttd8eSg`}IADl#`&5N8 zrpaLw(6ATZC_iId3|^`g5qooOA_(;AOJ#WM9%Ftm4lYw=50XW|Pgm^gSKMU6&{HUXGJT!m%w6v;~ zullOfm-DRkV7Am(qJw-Vw?54^yXbs~<2A3n_d_v07WrXf(2_%tkXcI8Yj*pr^GGzu z!+M5pEL&=zaqC2h2IDgA_Fk+;oa`{b*Lkl+XF-ZLfHdMS1=a?QY^=?2yN@Kd9&*D; zHg7IGe%9cd1g?c_jcZQC!|%H{QD=Z$wBfLR$?sPj;&J3l^Jo4Dg^!ACP!g}vj)Prd z=I#rz&h*U*b-fWpyL%OEsGD}qHTSuZk^u*OMU4%<;fX5{a-WU8U6joaKBQST_f z^}0C_9|LdzaW-(QXFx|v#ep66=Hcm7H`bh~N7q;x06r!m@DjVHuW zbLkfvOo#p%GmLiaS$*YQCdjEq^M}{NG%EQyUwlub++yToGvn$GMlMN%@7|F!_(z7qW;Mks&+ze!QdTWA>bIturKjS;E zc19_XJhQ1IGChju`m&{7-_Dr;WacY|@LTuYhiJ(|d_3WhBasU>O!zduP+- zEQcPLFllyOh*`OVXppQ7sc=xvo#T1_ZyhX{KBgqT*p8u5cbJ#V+pi>a?2vaU|F-+MAG zaH;g3ci2KMv}kiihX2jO#vFrmH*DsYlTpl1WPKCUE`Y{bA{3GC?l}}|qpxi&%8^c{ z)P(z$<*g^^|M~0dmlyo}2C;$UE}Z=28iWG1oP~aSaJeAguMrkkkKW_yP<{7FKwJY> z>`q{XID8>UdgNyBa2O~Re_dOH{=URlbu4gPd}-cVul(+0i~!UB8TI*sMaTHXGvKbL|%X0?benxi)G%&?%DZf@RtqjO0 z`$Zu(yF^hZ--G!XPVWT@5)W;yO*6{+HICzax3G=z7ttD;Q_;nth0pt^Wrs(saxxdp zt^buw&E|v{9Qc}-@mT#f#*1`289I;cS72VB|5>j2uQm%+ z8R|!iSn0HrPNIo|s5)ARMSB91kk z0hM_hEyXp485awP@{EmAmHbr=^2#Z=Qv1YnY!q4JmYE=6?;d>0L}p>vLEzZDPY}TN zH2N520)AH!bK=-sWEPNz?>Z68c={DnLT{s%xP`fR1#i)S*Uc)RZH)3UhQ%znUJH7P z>=P9aL;Z@70m#pbF)vxR_uY zU)wCol|G<8^p(4dtxfP`?kT3^KpX#?tXNrQBPk!c{oz@U@-d(bFnBLxMbhguRmEF%B)`dq{z2Id!I=aAT5}26wTBLMUSO%Qb?u*7Fif zEWk0`SUNilreg7hS06P+;&UX%ZW$;L&zyhfyBa#K8!-UH0_4+&h z{p>ZO))iHp&8K)|$F8MmZ<>x3{Wpr+gVzHo+_wab?m%n#7{(~tfdl@$3I}(u$+RQFNndTPnXTd$Z4Mfq zeIF>+wuY)X-#!zD{?<*oZS!;v@Mw(+o?b~78&_O*ohOF@=VP<^AT`>}&-i*fWqy(s z$vJA&)l}ofm5Otd(pa9cI81~dI9jK^m;ixI;U%0 z*wV-s=Pm|eJ(+TkT@x1o8%cOLo;=*w^v@TSVVvWq#athS;_$Ftj#yYf^W)*qX2NXb zo}cG`alexZwsR4r8Z}q#5J#j!MG8X@#nGn^FQ0Scqvfraiyy|}>n)mAzt60G5YeW@gzhoFJ{XSsE$$UdOVTeg|{{h~-rr-C)} zxKsO89518$_LFvP!I}bTn4ry^#^x~~^1kb&HTDpxbKS|D3gM&}@9^TYTDsqE|FrfT z)d8J}n0xa{u^-5wua92-hLnplC9=aT-|9B5)oY1JG+VDPx>o^x4W|;n_ZBu=ts>$1 zLgH6jOumg*ZSuV;z-b&7OXK#;B|m3e!=R4lFl0~G>3Vl|uF7pzW=oq+Up_Do9R33P zzy9->PMmVFc3OJyYQ5@Uhex=kL!;gWv;#5e_)Kj%9dy3oM+%**Ly-v^4Y&T zkK7za!r<7;3GU)}Zb>@y^p znM)4S`=(S^gxePkH-oJ;Ioe+hL^57BYtTX0&BNJY|MAlv0@k;&#AIt5H+;;meH$B4 z>Kn_D%~R{IPn37PVCW?5OCRQSzvNI^NRFYnQ_(^s&7?FO$2UHGi3?eF>Kr$Focs%u z#{6n8hBXzhv#4?)uYUP$XbY{9!#T7IjbhpqB$c(I+g}%of!#dd6VY5wx;Mk z=jE)-9J`M&ulnY4jL|h-`jT8s@%7PhUlK{JN$g^X+WH~H)cQ%`GS^&Td6l7hW!b3n znH9~g&HT}8xpg5oYnyQPCgXm^v%SbOIK_|_ZKKvK4EC6dVocX&J=^Xl3gIag=X`d& z)>Oywz6jF2lT@^i$M)G-ArBmb^cP4h9{!HiwbJ;TpTHc(X}=Jpe>X5j422miH(ulB zdGiZZ`-c{@v4xr^FUB`KFYY(y<=K5G-uk)*-nx8boC(74?4MN)9W$xO!HF9!KO$|E z#zzk4_v+V&-3V9H+?$7(4J&(J952rB`y)QeZoe>IDqc8x1=G1+9tJh(6v(o zFtkLL6(+f=s9q|u9l%h^Pr>TferWEl-y+>Q%>rOCnIKVd{so3o|LkcxZ?$-N(R}NN zq^fiNV8tA6PJ_vgi;((-Z<6v>KqTv;gm$5jZ)b7rXql`31g&RmH2$H9jTnRHjPE8< zhGKe@i?|w+hmVe8J8r`f*ZJ0$#4(o1tByhYC4=78lXX!l^ntTHrSxJxk}7Khj-Rp0 zu-KB5mogr2@77+fzVK7sDvnU@6g*Al_F+xA-k1ah(-{M^-3RM{7t9T7au>8kc0Fkw zag*_x;7&pHf>?^Q_fzi;N(<-3m4`SQx>@<;=B~*|Tyxx~XseVHVCLGMpRP4&9G-4s znqy~Gn=xrb^Cr-97CD$FeFq^q{z^W6v#$7vyWoJi%~>-v#f!%82;o?h4msMUpq^c9 zU0gVuh`DT#$3=bLgv?r7Q6kXfa*%y&fEc$12$SM)l7F?8>$p{yAezf5m=2R^UU+L7BseAbubbZ{t(L&I(Mv@?Q*yN z;q!8~^HMv%`iCLqHZtQ#j$@l~AnW7ls4ia|jHIo;JUSF}xUP+FS;q|<$LP$mH!lSQ zZ*EsNB}U-DeivtP{52H^is}Y_G{vh(A+6>{L?+wHRczZn}_oA<+^gXoc zKQlCf9F_GdyfPy)R@6@4=F%K7G&%X8i<`EJ=t~vu`eTxf=MFKw(YKFHyw6UdK6q&~ zE()4Z?vHB5Ff;63bB*l?&JRBEe*rmz%!_2kyZL;2uf1YheoaQ=YN#8&%J=PS1VV_{ z0WbXHE9cK&n4D+z%ohb6AO*W|F@}-E$_*gTVIHpfazlmMGV9|E@~{?h!EbvOLJZ~F zO$v2v-TCG~EFS5N0h*E~nB#rp_cIUNZw-P=d0`uat~j(g{LC~epm8o0UYrjT%a#Kp zBl^&0W6e3P?hUr>V&@`o(i77;+%=N!_S)GlZwZ${G2|gnKh$%M?z%w#;u4`LEVMbs zTYsLRBm=~AWc0wt@xx}5QH}Q26QGW)e|m|0-2`_J?Rw`SP>%X>dewoc@*SgYmYeB-Kv z2S%@c(E{Jv8rcs4l&OylZT}#qJ{tL1$?aD<4s-XaE;yeeV6#my6YH*@b?k8*x;AKC zcs0Afu+`)?Hh!+54*cF1Cc^4X@#(rBS`93JT#rw42gvFkni0mwP?uQEURW4%Ql(BT zk22%Me;;%;L?$_H%k9VK?ZcG;-qi>MAKG`O>AC9w0gYp*O2|u@8_VGKBS5=r%E|SI zgL~sQ-vM$T@Sc4mDuCEUV@lC7m`?in6kJ(dv9*<->a&NVSK{Uin@=_HmIA-*gu7>B zD&zx!$@XBf!p8aG^<50{jokl}G&o+xaz0`Ea!+{gbMnYc%MmqOfvmUnG>3d4QSom7 zgrwu;u{X8)IBPg4oL1uOmvKwNG>RkMwSzQ@OTm5HU!dT)u^ztDLoD}h8*wVa;W^g; zYR>A;lMvZ8cj$;D=70G>XlqeHvqKOL9M}u|Tb=Ik0Q={^{yZ_d6&#__L9?v3FWCNa z)S6(+AJ4l>jB5H~99}hY zJWi!%ip2KT$Ho~%6^hYp3RjPJzd$|#{Cvozp!Hucqx!JJ6Q0mlNLSfT&Xmb^ZhbhO zn6&q0>-Ej*=;V(ecQF5y&t9c_z*)fOVF)9e46P^a#{Z!Oppm-8Z!&oQl0>;fLH_vf zeFHMZ@=Z&J#w>|e9P7xzi@CO3>^t^4S;Q_BYbHAfQTL@k_iAD$$FEwf9(}`JxiH~z zo?$XW>F9bcwfa-#mQ%o(fsMX8O+@Dd&Hq7nKY+@;%QUspS#$qswsHzD4K`O(Z5Si} zX`t_4gCPIqG}}nv+jY`{7?eFsZKF*hWsiJgXmF0|9S!vQSz`mX32-*HxX9>e)BX6_ zD)HfcYWLaLnNR!LyB-z@nGpE>;L(#HFXm!<*BM6+yGw7b8?&j$>ME@vISNd5Uh&7k#}G`w*%UcAW@t%%iGJA3kTjYyLuwwCV0a#cJXN7WH4 zS=-~bu13c4nC1SeLAk2Uso036NoVJy)5$T&dET_Q+l=3?FY>1^S4=gx<(Qe?_BZQ5 zhnzOwFv`B2b@sgG69-YOn5pCA7d!7>pdiixOy0G}>SZh0n`cCng=U<8dw5}cL}~1c zl^|d^TVpyz_ z`{JW3uKBh$vARgj97E=ct$rS6?~e;lE~RZB0{yZ#HF)YE-bg6p*}RgEj-0n&OsT!w zNqND4OeLvffqA993UKz&L!~cnb^@Qh#j3E0R$_OTNXY4bz9hUt$wEHMi-I(DC)FQk>%mds z9dajx2@Z|WjsX2~a=`E*M;G}k^kW#9t}473I|bwigyLV$Xukcm7zoPC*V|YXoy?Cd z8#r_=z7WKvo^cVA$PNH47oq34nin>XdnQ1wV;{TnnQQJb5F12KBJ1m6|M`SZeBZRj zQ_IuOG-)yPg@!yWT>xHopkGF6OnJv)nPSVG~1f3-rWcouYV$D zwbS75+b`N@n$&n>S0D_U%5eDha&nYqG+QWu(B1qoB5|Gb)}KUUkv}SA)yn*ZFn;#* zQxXT;ehH)gc$pRL(@B(sX!MHqNRQ zd9qvEc#Q6X>WJJ-%~(rp;b2X+9}9<$7;1}XJ~J$CZ)^}~Xa0RSpq@iy{Wccs6&vZ5 zBhc+h6{b4=C?(Ak1Nj-NVXscabUY?7N)Z*g5R6&u$VL@~{D70^joaKbGL|`5AyMd` z?LJIEgxQ-{&VQ|{EByR$;+w13i6X{(G=Gu27>;%Pt+%m!3MOyPTVL|>d53xqYuNnf zY}-&~bh99sP&Ky}VuKTsK6EYNJ}5$^23c{{+4tHtF)A9w{+pYY=0*yo*aVF}fc?c# zj{3|qeC=E#CaA_2dp>v5Xp6Qv{&pknUv#w^iD@3*dvq40Bq*5Y*zk&7<5Cb2Ie=_z zY-9Ult&Y9|!*h22mJ|d1=JNDJg_~Jx-nG-dos%UD#5xJd131_J+mlsn-k1+Y@p&^2 zNr0Rgx5l)>VQU<0M^it!Dr60JmWx_coQyFB3XH$`sBHOdErlxvkM5K3j5BsOQrM#v z(DiWZf8SywzOZsJS~o$OgLPpLFTRH2Bv=)rt0TwaUppB#7_1(%c=s%3CvWQ;V9A>Q zLdc}X#$wn+X)#Ey4iiegyoNO!ZVS^GannFPg+vbK!rLM)M;xWHd9`1t-5dybb6Qi8 zt6yvH`bG=LE3Ww%OLVLqZ_Rw6(96$|FE?khv9RXpy@Bgo-`h~ZjqU>8>#F#hDJ z$w+T~7*-VgJa>I-AI1=3+l$1@aQK0shmhgqqiDP^eRZ7|@;&Hc8Inz;zFdwMLW8bb zY0cJ$p^Bo%hvpD9%qH*AV1l%Zb^wDFtWyDzL61UQPt9>=K#=_ zQ*OTSY-$RO&M&=nfABcxH-v&Q_{QvG=J04Uhj)J*1enC&af5`A0+th^bZ2)woNH3q zIMD*PeNqVIVQXN`>V30&7r@Bu=-BW9LYsnYh!%oz_(YS-*pB={G0Fkc(4~a zm#UWl=-b3lY4ZQqPZt&DOenL>B_ZyA^9Gtzhj4aW_kr2LDY<#umk&Xlm(@W%?eb_{ z>hJv9d<#%m{NyKwbI<_qnp)R9w7~BSIcaxs6!SDha}kZnRsw8((Dgd3&Rcmf`d@6i zio|&L-*VIYePF$NDE$tPrY>(S7`(pfTGWm4$(on3I*#S19r3Iet?D4A^;WNt!}(y> z=XP`ZX6QcW2y!??1~+bg^0seBP`RDXeLT(N>dq=tG6Jg#<+pSNTQc(9eY_uPzI@aZ zZJ(zjb;i3d{PQ3DT6R;?a4iG`EP~dTsXB;kM*Y%{rkO1T=crsovpV42`l~!2X#-r^ zInu8_;@ad4#(pV5llIDs@zq)rtyWFApfX3-h%?kz=ckp@R(*W!hiJWM;gCK#5^Y@* z*Wdm{zd+MV#@MZUG3I(V-pmmV3w+2StP;^>jcm&Mur zjSe?vHz?oyQh}^>VxH!1JR&ut;8Ps05ypx}~2| zpo+)&CRYe3e;;`LboJTA!oJ0LAS&Xa#|Mdjf~;4m4|uz`yC+`u=ozB#0bv1twzS*v|n6f_NeRZ!9RXRTS~nt zCPv@ViN(>xWWL5Y83V4=$!sp$T!_iYHi3}Kfhczv_;ESBV(82Bjg>XP3|F*2-hyl~ z9FE+PjjR047aKMz^Y&*qGT1q{(7iWl)k;Cf;b|cTxp+e-L+kB$T3Rt;<4ds?Lx{#$ z8`{ldS`M?rrpzrMa-3r=A4L97>AhLPP}V}@!c!|=1@P%^z<7zJqczW?2~I04bk?57 zqVCm2?c8#`luyZMqkd7v-69nTo%xY_L&8~6%)T>vY?3E)ZfaA7I*S|wYY418FHUw^ z0+_B=(=9o_3%9=h+CDUOij)ai`H?pmFQQ zo_%i@8>|JoZ$dQ2b11<0Ij_d`t;V6rg{NG@@a6Uq*||S(I0tuQT5s#Y-->EO@Gg|# zn`Un|0PAseo29ncFi@?%r$ZzT5lpX1sD1N0QeyhFCh{;ISsJ4Swht`w4azu!vRdC~ zjpd2N{m}rD^@8OU&54iG!r8_qd&My`)A2^vH^k&TH(7Pz+}Cm1BlpzEi$Ps4h8h#L|5VN9Zw!-%tU z?(b&Qf1_QgkLB|Hr)`*Sej!iAi~Erf4g}qPp+loJrHxp(@wZ2J{nEkM*sodNwbM5n zuD0q|H^aC?Y#r)?1c(C6hW0*Omb*OW{rn;H+3D($h&8Y^OSaXmp(}ep&JHYoc8wNi z0Dtcej=t;5c*JJ>dibr=8-tI77L4ad+r3>kWV^P~Md>=oh<0NjBDUS^F`wUh-M)2W z?I3s|gVQpFld+sX>cZvpE_R&J_RwA%=cW_ug55>Ztmwpcx}`HNWwMOcAam`=XSL$hF_rss(I~Bwq-u8P z_iBFm>MNFVd5P?g#NE?E;iWn1kg;wqq=Rv_$}6HT;&(j-D%@ZNwxpr9I+eVcXR_KF zyY*mPy45a)Tv5jh8*{yN!s&dK%;sg{MMvK-2)jBUw#%F`KYd@jexo2>lp3nn9T#8 z=bs7UmbtRyq97b6lm6y_zA~xN(FK3`MrM;RPQ~e3Zwp-a&KL8}${&Vs-(Nexy|txq z0VxR_z^~4ShjS1`0BWYl^kaZqOm3N~0;OhAg&qGIY#J*LGT zG)u{&>qnT2-<;P_zkqL^g6rJOS2a4P&EjcJp5ctEqj1{J%~144HN5J58+zm9HyG2B zlWLDykJnsyRcKAb%9gV=MjSk~*49_Ks%iYpM|WLad+Sz5%)`}R-}u$CYD$!^R=tnaci=mib253{^!<(l>H%{rz6TLQh^1@Lc{^o4YyxKrP4uc#H=c2~XZc5edz88mIoLWj*AY8;;vLaLSI zx_|RPq`1VIHfQ{|k8NHV=fczQud=}ZB^3!hrq_La@fvKj3gj@GU ziZ#qf89nkX?o5mCWa|C|wOHn%r>CDi*Phi_KF+m%VR12o){Ue05Za+LC#z=t#MRtm zIylkrsmb;eVlW}%XvisSbPX4$Lo92nAI3iGU(6S0f62pa(cVPGi-i{EV%^S~0yb~3 zt5#WRf6oeIEPU=MRAVGB^ddSA&a2I)Bw-Xe3d1YvE8Gf#V~p?@&X=);Slq5xoKJ@t zjOT0ce%=|e(W{SnxjNz5^rfXe4l*}fYf@Ko@p{lT(7qtPIPd-3Q6J>Q0A_ha4j(RLw7+y6kp4>}?uQiX!{13tURo?QVU zXAulYoQT-0Ao^M$1qP(=1Tu+DSUSj>1e%C-PyLh|-=R;Zs|qK{C12f2)_HMFjx24*ja@ebh`E8I@Dr>t4-`J*30mIyH{fDR6KW{ZJT0NFR zLk}%U@)J3mZeZ9VkdL^k98<;C!b7-Z)WS*G8xRGkt0&~!k~Ku;g!Mz7HjxmBKPb-D z&kp=dy84#R@D!lW0=R_cFJ=K#m%IGTGO>Jk#z#xI={}_uzBgFG zy&7WS>~QY6`6zDDV%rDCV)T_?u}v1lS6{J_?v0|6xTFbAt({jkdv%;>dD8y(`Q(mnln21?CRh3P56;xYc!iWZ zbFmw?>SsOaS95s{v-Lwvt6$r3JCL`w#BI_M+UCzO46)va^hS@h10x@Ox-nsV?6`dT zuzGe0u(JlLdl$xuSz#|ucgMjzaj&y>S)w(uvi*3qUK3##5wNYRc^k*P@n5cp^-r#J z59gJ3rm$a1=`ufB#5W0j{XPcsAH%j0{Z8jTAzI;lkxYbS4EWYn)f7&A=XGyRjAyP>(8P}Z_IB9n>rqV~cWaCdKFeAj z+kG|b{tmym>MMVaU(P9G(JnvQ9?lhOABSwmH81OlY~uN!6Y*J}DPV!Kaog1cs?rj( zY}M6pMenSfhp}6GF-d>7%kk9n`DOe12)qA+qquO{W#~`{>&^Z^R2cCkr}&LGks)`Vb@=Ip!1l8=p0fJ7jjlwyzbA%#{Z3} zS})Y)R$SY|YyBVUFhMd$>}IlvFS^+YXB~=aSRVC=IqRrwxuchwK8~rDTm9OoQ2k;A zwpts5u5&?W@g>wR9+T}uhN~`e?J&X2($&DH@w1z9HqC4M;vyPm-MuKYPDO)`~ zC>8e<&V8xJ3V3Zy?%GzNO~GjJQ^$FzPDYBa=52lkgQujKYmH#_3532Nn(SO(xMWl< zit29m>y`ug({48v+8Be#xxLp4sndr>w-6dxl5Q?kGPC5B?|$Koacf5(*LO!i!rZtZ zR^(IruT5VpM4~LXKFX4hlkLr~4CiEB{!r>6kmsE0H}3RZ*Ndy33J8(y8vU|PPl9fZ zYbPFk>{_E10Y{{q)KOn><9X&X?EXa9?1*hHauSH=K42UCWI*ZfF{d!&h)A6Xj$PQN zkW;e!oJU2;A((u}&%X1s*wSbgc-CBj-~x?_RChUa;8UEfc=mZ>@V;QuwD$#^tv}AX zzT(gxif8I}5Lgsn_U_+eXD1FCY5Ad{T%516lbf|q$II5AbCPid!+Wz(veR$&k9&u*q=H@V$8a8tWqub^53pMU__bHyc*$3=B!cp^tBj{jMcs2WaCJm2h9VoU?{&6VVGrg9)4j%s6@xZ8LDDGk zfTulP(iz*X>*0GZqTuA>I{rPMtTO!lkH5|=+x`g#!Kp6TvUM+XL_0Z$Z1^-@`Ouc; zZk(tgnaS1piOd{U9qedXhwc~LS4<3?<_+fMrbxMpH+W&sx4D~N*0a;r7WUO2y<=&< zLeMfLa%ok?2#p5C(8Q-v<)_bo{TDlI^K>3*q0KE&TPA|c{L~i({f!Z#Nj=|M2FG>M zzGRT!Y#v5J_5}a4`1irDh>pM5=Cl}vjI47-qU8%{aV1MKz3<>`4vigL-UNTY)ECnD zK7B3E@&Y0pE|;$XR$q!bE6N=1d<{uU+gn7%2W)%7`Id`2i1n%1`Z}|p zp0l|KtO=i`$iD+0MVN046{bTT-VAd?@qL~QUw2;Dqj^M7i9j6!@}oQF$9d7NV&+#c z&!J@Kd~}YStL{Ao3s11-svOZde|$;crwIb4ak>a7*Vrere*xtFltT!j?AZiV z=Z6*&c0z+`2#-W^Hr`g0CgtECRh3&%tDixfT>dhq5ca?;yzqz}nih?Heg<4VFd%R@UhS;NIlskhh{S>! z+79FPC$aqC)(_>|q|{pj{p77Z!~*1E zp5;1!<10_6o#Z(jcaMphA?c>w>qnZnj?MS)b?XH{<5gm1)BJDE!cpIO-TojaoJ7v% z&erOU2bDwTJjRm{audgS9z%1-xNojUG4>d0ytaORQ@nMZzc1>Z3B0I*>{c1drLTPWEwSwMv(vgnG=rM^g(ZXAZj@i%9DrK(tbClvAXyMe|9s( z*sF_2H$pYS6JrHC5Bjxu=|ia0=4K8Yoi!px@jR>G4A=dlb9NG3=H$kPrJ3=3V#yi3 zZLk`44btq~Z|1F!dQPn`eb}H79auzZ9}l`WBpP(_>I{JMqcx#TmB)2l$q+n1|@*y|G8#p6#CH)0mx#4-g&j5)N?~a*~X^ zID_F>g=IYWdeQF9U}ml(8sd8{nX7pru67q9_W0|%JF_1 z%Bc#&Q3S^T6AtS#8*iSv<~Bv;=(h>>KW_Zu+do$HZ_c{??YDEBgONmX>w9T|BbEUq zmXLiCV=JUTr`e3IEaE6@4{iF;s-h?AX49L~;%*{_uaEX!tKw7-JmYCUz-rXDm>37c zAb)i!z877ea`5N;W$av5*nHuvyL-R%gmqai@BIVn#LFyn|m9oMedB0JmV`7e~crJ>jVOymf+gT>HVjRjg=I%!pUEf_|Qiz39%)2 zumAu+07*naR2xs4&Q)>E!Lx^R!;XF9Zm&_J{0yBtZ(bqtsQjGUbL^V~_PLY~EW#az zZuaHXoJglXoKVECv+Oy_8*3+C0?yVs9-&0BacA&aW!dSx8c9a{)jMc=ta@W1T+}?DO<(%lM3NSIwjm}&fXfAoEdDpk#%uP$ZgLUiqzH@@AcsPy<37{v5TL+&L#-bB>4F9ev! z_Uh^>Ke_T!)OfA!S~R!jNP~v_)gB*n+XtK5!^L$}2Z!%riC+DLbKX*;uCHRW@9T%B zj^G#90rK!9t~|9ezX4l@>ZgtWacBo?*!O{61^@WB?~}ZP{6Ap)mHMw=_X}q@IRBhG zdNxIhVU$AhN-He-^gN=4v03V0eLTTMooMPdM-|8gDNtR1X!~Q|Ox_2>3p)ABRrn@$ z4VS#k1OkuA)>u4IpsE4ySYFzb;)ymkx%h(4dP-(vsgDn2=j5qtei+8Kk8Az==RN3l zeNfjkC3cG^hRBZZ_Hy++TW(gtL%owjE>)&Evi%nevCvgl^Ur5~p((&`*Mn&{K8>>Q z;4)8BF)M7;*$24B6=%6~c1>O_J!NkQ-L%yBJm!hH$t$~)?SCW#RV;dP6SsV>{g1z9+qh61^}a9i4|6XF@%8l@MBdo=ez{NHm`{!x^lTr61vk0#>h>g05Ju|)%?9UdCH)6-E z!`fc%vZ}7u7oTEUKk0%!^ox(~pMHZ-puR~so%+=e9qme_?HZgH z$6t==`-^|z=TBj_^;Vnz{`${yQ08F4LY`X}<_WIr6=NhF{R#^2gF%=S0O3H4%`bJnZf&A*M?>{3v`RN(slSDEwE+UEWCY=PBD z!OyPb!HsI`kR zY{cKUAJI9q)}YM*{Bi(8Ke`RZAuXI}$oma+;BrdPzfEl{^&$)AfQ0$Dsp3eEiM~#{ z_u*O>mmHjBZmuDT3W9jX8?GCMVbrt;wB2rm!b4!6+L#*)Ej(VFWcsVK$#a(UM_7^~ z=htsPu?fj{A2?-yc>9o4F&=>J-{rdmE21%0#zzY6R29*los>t(NNOUojjr z4}Y7rh5m4ypgfL~kjC#}m3qA4BDV8@+ioO#u!-0w|?WiaRDi$FS5gx#YL9JKf7EH+3Cx^vvx zd&GwR{zJ1#ni%IQEI&(e^vmIUL-}-AIFB9c$47p1){!#D7f#>0MXz??6JL7{FpCE|%5^pqCj%>Kq&H! zMX|dvKpe-tAPHMx|Q`y=E&tzy_H)Xxnz`sdG5y0u7<|!K0?F@kiq%r@7#YkUGdTJp5|28 z2FINbg}R1^k+Lm@4Np8A#^tYW?KtMG9ftC<4m98K%Xy5vIiVjqZ@7j!!(D?BWvh{J z=!oxCPeC@(;iW@Xdq_-fZ@5>8M&|s508b;%X*!R`l3~JauV2aVQtcF9Eh=R2bu>e4qd#b?*HoQo)lEwdHKc1bl-=|&)&C7=uELx z;MSf7&VAOE-20Ud@u{uTz@xe1rUHgl)prhZlQwm5PH@&Q6yMt#Z zv%h}Jta#2h@y)lK+#ifFs56xD4&~OMc^bH3M3DBgTHE<*8LDRn=n=@THCW`+3sKMl z6hliL=5JJt@OQ2~e#y?db(zn@ST5p-~! zANQVPVf{~3)i0V@8LuXE2aZ1k{^b{;vfa+y^#l9X`^6~#+z{NoPq9l1g?6@Sv_Fzh z_aP-gj_94t{4sA-wDfqHH8ud)*VI~@)ym>rqAmVC+sllRja-2j@ab;@YF$$w*M$E@ zc3=JsRAVDWx>oUML2)|NY2o5B8yR9ER4%58sS;~woUz~i%_2lh2ON#@jU(%Decivz z&xyYEFewRr@q_tl;d|#}8HU7G2LmFij=Ep{w5B$ez`f1m@7qiN%P(QyKB(V5UvQsZ z{Re!EacxY*<0+oou85&lFy+KW_Kxm5ZVklHxvvF@bRDH_pYX`26#1n;knPxbf|2}U zc0GfHW^(xsfizc;8(wlcKcmU`e|)rU_F2cw z=e%oLBL={`cF=Uti!*2l835k5FLU;gw^RL_wUdck=M_vT7zDY@3&G+54n2&9yk7blsy9#V}Au)DV{=1eb#M26O+`A2iApF2?XZ zsPA)~lO6h63l+{``oUZGK+hKWe)&qKY_dqPo&D~GXzNdm6_H%|%fSA+06QO>#+#Y> zVlLa_#|K|6gVke)`R+koTg20}H=fO9F@HxR8nO(GaGd>#i)Op0(9pHE4Hj!_s&9VU zTmaAGNXr89DDj-p0kqUih{J%`SoHqPO&JH{lkcTXF#R}Wd{~{$Re9DZD#GmYk)<~J zpc6%Yi>e>Tl*3IAYoRivA%y-*Oo#J#Iv)}aO2^a9e>TFuL(3*h@vrDA1vf9`E{Xl~ z1+N11d02dP9{zh~9T&re((eF;vF5!K*bJA&XzOkM`l9ouR}hpgF2@LE!=Y6*!@{>t zDz+Fi=Y{_9Z9$8qyL^EIKQkx z-(+ap7yyyyO;bT5Zji74{(ec|HSUx%r2c+iD#_8qj zplw{n$;3>t{XyKJb1Diam9*_X?l|lNgxEq0%rWmZQ_OcU5p(tE!wGC#M@v#yj+ejbZsyB3W;G#A%`cnqjKtd&pKSerTamrk0}!M+*;C|3K9V}QkvExJXtp@yfq z^J*IlNcfGw@W?oV;ZW(LnQekUS(Ocb;lo3mZSN zh2S+C?87t=QjB^$wYGCWkIjSEtv1%ko6FdFtG#u~DQ=5jZ0*FOvw6fBVy$V-vHz+0 z@>*!TfZdy86H({<_`w!<=;9bf9$Iu4=sW*i+h(0NkXXm# zNhddqKu))BUMB?d_BQ_o(0y>lw=}8Aax~udUNh6b>yLOZv+9Q2*c=yXJRQ4{l~&v` za$;k+?BL*}+F1P~P$tMp0K}epl2^Yn2ed|Dz z|MH9OH($#{e-8IYn?Bnst!*;S7O@MJdh!#Or?vLF)x4+OU$cloj$^vp08BALZf(q8 zTrv4+9n!FwfT`|2(ly7JQy93mSjK($<{-cJ8t(0PjN2TL=*!_4#ibs?`*ct|YoeJq z#yV63j2mySA4;{cE*#M^F1F)lZYjUk^D;w6^N44+GN|AX1$eLGIdZGt{pZ|oF0&_G>*y@X^ ziuI1LklN9xeS&b2zsY5P2R;?f$$2~TZ?)8b+$OK_c$lMeO1T(77~<784(8bB zX)oTs0HnV^yYA9>^)gmitTWDiUr5X$*Q)7w+XJ>*XscgBU##Qmp>VCL(6ZEf*F#L7 zug!a@{C zi{fmGefaY4T7;bt1?lCJ)A;gT{D&ub=KgUTxdplEN$!EdVD^HwcXM_|uQEl^0+`DO z-);RRhQHTMV{>qB->|Mc&D-(Jfkaxn8Y#P+vZGz@DEjd5)N)&$kOL&PJO?R9j-Qu7 zqF;WfY`?=8s&sK|Xe>t>OqgKOV&J}E`%VBtK)t{15gPO)K0wyIbu1qt%@LCSgJ$rM{zEX%Ha4z^hexrd{ z&i?jASzI>?x#S9q!osI?=y=9OD%GH~m>l3VCOB0|Y_;ht@#<+eJ3?yk@M>kq>lIj}UfE|H~<<{4uho#76g%~uJ4JXlL!%l)#)pZJ)w zew)9cg%yvdB30BY=U2N?z_n(>0^_zHE?z_2Ze1 zwF%!b!H=i8$jnk*lHdJ6Uz`)I>m3?Ncqk_d&pZ`;Ed)`GH$h>n6|g3O+))G-p_ys?#9hvw`aCAn}tcXWO0{ zmvzGtZ#%{t8Tp#S&%E+a600h*UAYbw{PjyL&1^L<4z?R7Z+H;i2+GIxylTx>sD-i4XynMFi;#i) z1s!LDQs;+n>@F1gBMgUPZ0{MOz?-u$P^3Q%;~TX&0{)m6-#f1ANU?GYTz`6C?B7XU zUsZc7XN}uyZNk@KiWo(RzGJJ5;xt;OBtRT!sI#jR4(S}Qvyty-gM8m^M(O<1PNi63 z2;uB`*PUh({qYjJ>xIUW^dN|zW--~ zpW(*G^^e`+isvCFr<*LwbkWqjjj69i+Mm2DpO53wy3{>vb_TCuSDRn{XS(R5EMW7J zK&e$Ir=FhPOM7DTYx7rCoUqeha*z3d=IlK1zEYn2blyL0HEX@xw*ng?Hn#`MU3`lm z{_PJU+mAn5>n0i*s3?Yd3s}u>JhfTfwc*JTb$zgL?)Ij)MeF=R2I-BF#_#}E&o_Qz z{854mc?!iReR@?F0~AX~ku>t4rOH-ki$vRwO_HM(##+2uj-;X-4kz`i?VSbEB3&JD zc0Tvpm*nt#wI`xnu(bq>#j8XhWq&XT91=j)^&!xM4+AW@&QU5Hg80Pe>rW(qgKlQE z`xmMB7z>#n(ohPjePUi*O6A3_)j|+qYuh2Co!wH`D5ptF2{)O1H(x)e3+syb_647A5Y@E zeI&6QwQjRpZHH&(*jD#3&CVwIiJxoy=r{Mpw>F%s?>K80f}zgdcw+3DiaGMfxqqU) z`GW+U;&>+c!5U|nrc^0JXb*c>j{*jQF91$D!q>$jh=9#Sn(4TH$wb^PirTv0JikHp zZB|TnZ2<|G_5#n!1;wW}wb?&SxLj5btBWmpy0`!Gtqbv`<2dW5-YVTK?cG1s z%_e4npffa%`MdTkBuDn0^|3eb)J`NtbpF_8+y{n>iw|j6}+OP;LMFZyClS8qLf`K+2;J>zx)MaT;==I-L zXZY3@K{Bd)o}IQ zTISS&FQWNRVjb+~aJp(@ysYY>*=G;R*UU89U2zGv)TeXRHw zA4TSf{>0*7MZ|VhUIRYYZRqn>X?U z>oc)d>VEUb#X*dQvS|i5iSsgOOU_(4I%1ne)Y2tekg;|bqx(KwbLr_MEAHIk> z99J8fc~XDMZC4`ZQEnq)1eOxOD$s;l)-xwu$`W0uPbiKi$?E_dTIC z5lijysb@SzJN23wEfa`VF=kL*gJ1@oZ+K16U<5gUIM4*Oj=jB*4s1zj$0LzTJ- z`O(Ci)G~-~zD{f)$ksnaoV^>3MaS+D6~|d<0d?5V#yQr#Z5XbF?nfiZjQTFrhAQQ3 zv{RqG1KWeXqGHHFd)MwRD8!|E?ziXuHk^Yg|I>HH>L!; zUw=?X4ZtGEesefG*?U91O@DT;{#1W?%8#fWCQiRa@8n-MXgOO2 zKNL5VhoQ}(Zv@&K(a~wF1kf5?g@B8BA+uZl6z(nP;$hy+xjxM|cxY=Z{gBIJs5_&g zsu&$W3y`*2?Mm-$TJplw!;>4&-+Zv*RLZts`q4|Ek;b4oPty~vzY;)~(XAK-; z9?~gSPv*_hMXy*_b7l4g!DxO8)C-WL8aQ_{!&ta?<5d-Ade-xD%℞$0eCS;55g> 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

      E<2)Z@Z#@dxw5PG9D!8jIz0 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

      {{IKB?YR+= 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

      yd*3}|%=Pw|Z?zF`w!vmd!7zC6loty7E=>a> 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

      %f7S{*5K=?J#tDkZsn-F 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 z z%MC0h@45P`48&=@rfStS)R94I{@}=09xfzpB)Kslw0ox0o z<+uuk4u<&J#*&y|$^_i)Zc2ugclA1)%XNDUZh8XL+6F_!_cso_V(#`3+aJvRKe;&cqRo2nVzV)KFIftglNCjPd#_h45izazUKbG; znfDtyI5f^R>3QB7xb=*%X^73rDz28~DSsaAlVJG<#r9*O({{}LqQFl`uCC;&9B(m1 zQ4p?jlITOb^gdw*&kg{4Esz(n74pK&d;fg$jTJKC9Y2js(p|=m3Pn6+;|p*C(B>At z>#p;6AMNYun7cMLaBgtS6*+IZ(5|K;AM^`TaAZveeC1N@U$O{PyPt`(I0|sV{;daX zjAd-uU|OBFk7^8ddq}}d70i$|ET`rsZJkR6){RK}Pk=lH#rSD$+ejYN80q#C#{gJz z@b&mN_k8m)j;1`x(0Q?`#j`gv7uz{k`u1%*Mooz2>!h^nVN~n>=8L@FYqLjfS>7|D z{1D22UwV6nT-3R~R%_+&4Qjc5YFtdYJc8zcEA>Hwog1!SesKQ6mHNs%n{uNT*jsiv z7Q?f3xcOzhLcvB}PC@IHAn(89R+P_FW#-y|C&5VCh)dV7m9oqmAr zm$dj*U|B?NER~!X)na3U!NxwlZ5q*~cKhPpa)^VN#BmOFy=h#{pcNTz*WJT7>4(4d za={sW<711uk#jHWIXB-d7%J=FqcusR`;7 zDqo5!Ehnm`wI8B=er`6^{=Dg{+(}pQXQltkLzOz!)ycdYV2wP+yO)cOx7<6^c5Z&% zh%ARVotGOB17HXb5u+jjgV}%+U3~*&6tWGsU@KjDR0Jw4X&78)7t$`bbc`81Rfv(RhOGI?z~bPgBH2 z(bhHoU z?FG+1c6ruE1in_ujk?Za(kZqxt&B9BEF!vDPGJp-PV|Zo+XkXc^t(o8OUeQ^K{52l z-(fhsv+vmefeogM3nQ^N3&5ht`G@fp$4`=0W3`VV`nzb2HH#q^@J66e<|Q4_Iopy0 zHB?|*AHY{tZ0XA)s+nY%ja_XwQSq*p_6r<(JngP{*x$s=#@LE@BA`+I7Ls(#%5QZo zgjt>)rp6Rc8yBbfEut_5ORinzT{1XYe*=zV7kcsX!3bl!%R{Nw%l$3J0F8e~+~X3l zVdr-?&IOvq3Z1rbl=0MJJXa!bT$Xk=U64zHfL;iH{P>OQ8`rMyzx|j0{r~vwzx}uW z&Ns{XI2@rjd@e$5%F$O`{JuI_r5_OSo3Vb=O1tl#ts%BRh!OHnYn=SRtMIE#!k?embnn}?q4{6I19-WA*!>~Qm2Ychi zIG2~Pk%Ln#jH_q7#pbU;$o+5h-_bdCe)I1i=Y?eQaynVZ)%uyy?YfJgJl+Fu()Y>Yl$Lj{kLeAmx#>WE`K zH>Vh<>fm2Oycm8h95VpK2)`nVL*DWg?`rUqv35Q=#?Fg!1he^%&U~vmGHcfCG}Wxksa9ka60kM~on z+tcs7T>PsIbJBkGqx?VOGFZO_`hz;e3LF1QM%P}5G7v^|u6^g>H6>JQ zDMt;M>XDf{$Kyk z|NYzl_<#S$Z~y0i{jceN=Pv?$10cRGd}fa9ZTf=u-S}A0rm+eqT5)MBpKmd zvG!3ScsZvHs0iKsY9+w93RbVPb>SD4R&HctmpFc_?P6&)JJGNgC?1~3@Y-#N+{bA1 za@Etcyg}>RxC+vOEe=Q5AbFD2D80Nu0?!Yxyta-F$olm_NB&*+)Or(+{JpUPa)wO{ z?VTfc{%|;4D_9lFMZd*!PIVKC-0@KT?pt00+qbN|!RKkaq2a8LBj&J(!EZXFq|{cK zzH{o$Ysp4OALH}JXqIs>9-OluBb(l!bLWz7*C+WLxKfPf0=7Tm>Zht&6M^{|kAmZi zQtJgY3Ge50@)4w>b?ujkK{+JJacpbx`eO&W;`pLM0zA4>G5Ok4H5Ww;?S0y zGC@Y4jy(LDr9$P83x38(h+=!P7(9Hsa~95T#b9~;sbp)->|{Dsfg`c}XRo`)u8F_| z+0A)fm5yJL^d|w|bm^Ycu4AB2I>F$gJ(GK085P9op_xZ}jr?zXMDp8v;x|U@vECmj z|H=KMuRH$WTMB>pDLus!|A+IFy7>W;9K446X3(gJ1BbXerM-E8*du`=`Zd9i%% zTHyVdgu#ZHVw~vv>znQ7XFtBv`39#hM9OrRn_W-EZ(opVm67*7s3Fk`;rcCqZ~)h- zM|DevSS)|6mojq`D=Bq3JLg1}_4S~Zx*Ts$ZbCo#D^Xw0^r0wNy`MFUtNpi1>Sx z+2HP1$n!DS0+!#(jLz#iDgwyOTE@p1&MkbKE6BBzvopav5qkVG{tYk?`r5Cq8--$1 zxcrodN2J%jVB3=p5}jhEHK6jNM{J|Emg3>P3o`J!$ML=;O5CGl3>R?rX0tT$G&~5E zW36OL5qIkPP7d-e7HtRK{{E>x&g9#53t4}WM!z??;c6bcpuJe2I0mADV^x}u1oArM zKY!uc?a}0l#_e8ME0Y|)y&*$y$a1tSK8?J6TU4TRMQ=>xkC%D}g0qQtza?6n>8q2e zg`(M7s20}J4^nc&-pY{Y9nlsRxp#J?Q{BaK4BbDxTtV zVjgy1jxuw{gZA!il_52Un}@?2wD!h7tNCMV2F`7d@9=VNYqP(iJYVQEo|qA`IopRO zjx&DV12w<#-yND)X*D{IlDwLi*g6YD-aQ*Jvmq)5#s_SHG=q&Zxp{|gYM&hsO^N9n ziq7jk{Lxl7uN%Zb@D@0Ia(7rwBP4zJojxmGgz%5taR7g{QY)w za=9*Vk=n0(O~=vvmzKSBnJ zqa4JmUg^>#M}K((&w=_&hY^$J-BSwDJcbdKcLwn|G_diN`Y~*b9}V zB7K!9mIp)K+!oy&r89i7mGLxd6?TGU4=Cl$0u{a329H= z)52vyi))>c5XLupb%#eun?K(@?9&D}kSq45AcH*;OK52t%rbx`^5xQn#^C+(X;&$!lJdwAb6M% z0_3(G%gd2^6@21TA64b_buOZkOij9SYxFh6dOD&r{Mn!3?x^c;Xqw;@WEuVzK~~+A zB_6QKy!xq+EbZ%qR9ebjM`CjQ-2hN`Hwfg9hTU3avX5Wv?4$h50P1_Uhkp6t&?#B{ zl>?~*x{sa%M3ECBH{iI*<=2G#{rO-2b5Fndul~)`+kg2l?d<9IZqzEr+(b85 zvVNDfK3KL<_g#GCsJo=lbRz=&TPSgb?nR(Wj{8K_??IQ=PpCYcl94K#2LKWkxd+#= zq(AM?XY_UBR-65cA5dalRe!l!=*@gFtxHS6llvR=))DCGVyV0RHWXZKwC@B;CcjFC zTZY*#Pa?T#e3LB9GmfJd-RdlhdRTy8{qomxE3f3w#bY=1 zxitx|H^+r-sjRUsT9rj#i%mX*;aBghO+sYq?-C7p9;Md^^Cq26zg3lcOTR*l>__Sz zb%UF+N^g$*s()`B;f=?xVwEa_TomqY2yeEl1ApqQKPd|7qVxK@hLTGD)2{G7e=0);)#u#$ znR&JGrq0GvtbiR~s&xCQXrn80a%30Rz^Hetb&lF1UJnNRGz7k6?0KX76*?qZjO!!p z$;UisDF)Pif7=H^`_6?j7(R4U7w1&{cDCOBrP{@J1_MIl}e$YM?qa7TwHo-3U9sQ%NjyzVQW!80ku$zx%R0?`HouAD{lr zU;IntuMy(w&|W=#8Q!%}J)h;6RZ3$+j-oa{O_XP~ z4Pv|GT3UuC{z5d@L?W1Su33vL?zVie}en6q$^U%DgH|5gqXL_o~)-Iay zL+4Wnjf<+ZseNATZ z=Fhr2tzw(wqH(Cr|N4tdV3?(qWTm_wZR4+g1wf$QQBR8Vp4HAFV2wnHB5LdDx2YC) z^SR#Ijiw)oC> z$H_T)Yc;=TNpZEb@q6%-#&{~8TCn!kk;)R2ZMw2IxZZF^C-rMxYlW>(uGp@^C*HQV zPHv&5zr-KEqVG6X&oE<94s`r<`VSsrbZJgbrIjs~A^IS?jhu@5l&!U$_|it_dDa;QEzyue(UZi@? z%{QKl$ff&rBq_?Pr0EJ~@xy;9ga3R`{RV}XE$FFU^fzyGw_e@0q%!+uJ-dyw0wM_Z4GQ!m+nq1bMO*TwaizC0AlCH_{Rx>8QrG~Uv7r@NMcB)eD$wRJLTq7^!El}%P$B$qvbkTiHBbs zp=PohXTwzpIjWIq*pjv29!!N9?`X^ih+u3ir3m$_TkBcKkDmuFu;^^)SNy}YOq=j& ziaep9b&m7sn~UrrQdj+7#-f93a$<@ce;h(I99k6x2p)|!Z;La{(oWbNP4_32mgDOHGtCw%b*bEDW>mgJCMv)U&#Xw!aK8V}e*H!9JFzkIo)|ILD3y64WR z!vsSgeKL~Rr!T0ARey5H*WdM+=EWyIQ-!Y3BeL(1R4bl<_1?qZ)d{bJnhDt_T_oV8}A z?zq$y*%z*{g3qylZuTWqI{C#y!B6!0b!FWQQzzqSA3CU;I#xdz`k4z1cp>b3;}JXv z@2Go>#q`i`BH>e*^C@L5wza&p$Tl4vm6Yw1E_o!)`53gEUZa%vb0E6Vn0z~_XoO#h z3!z!=m~(iFw=ru;3HU-gHHv;=BrorxhK8=}r*PxygX1y{nW`tIbbXDk6F8e#d(f~x z$9$@VOMh~vleBabD~0jPLEO&gmT0qHTg21F2HVDS`~~w!1hUh43t^8c9Jh?^o||s0 zn= zwhBUt?&VliaboGFkG9cvOYnQ1_dH-LmQ|KBWAa1EL)|uh!4cmW`YDfOQBEiO#Eyug zK|0qQF>9bQPFHhfJexn1;k@NKLJ0ZwgQ$i&Tg0@2{SP@Invm)*JtUTop2lGEImjnH zP4l<@)S2VW68P$bQgN*b)tgG=PY(Gpz$#S@_wb?Bi>3kFMu19?ugA zIVxfCpdG(>-*o+IMqPEHffg5~Ka9Ixpv`>AF6|SLqx9!Kl=QQE zu2Xd9S?R**j+08;Wv@FkQ|AD5h1o2=N4G{Bhv?Lm67VOFOo}Ms+SLG8GMXJE zbb?C&yCyh{yIH162P_f>vVqSCdUi6UN0A(&NvLc(7Hf_(L@FUINC=NM-vMh?JZX0F zP){~-JQN9!)Uw;-itFEE#x^-TDS4tw2K5HM{+M9N=A)Z9av2Z#mD%ihPZXyO9{U^g zmfhg@DY%~T*ZAH3bcUp4pj~a0t6&#eEi6)GzH#y6mW>i04%N~Rs#=ugvChHNYdihA zXC6~76xKO5DI9=%!PE(czMXVBjiEc+fMK<8WL5+$TWM3Q!7|3;y2W?&qFggad)4de zEd3T7V^OGfIgu&<4L7>H{qhBGX?^pax7**oefkT3`L6)~>gnrmzE12r`nHHx2eI`8 zi#1nR1bfpA9Og8HuYBW+KHibvVnsO$Lot6|aq;3!&F+iR+=-Q=vFrvbwmQ$q;tlU_ z`HG#s)6t2SB^yh*WO8bv%nf``ZhVrU@8BnwJXy*AHlLZRPBA=uC}3iN%G*>w`%H!RxZw6gkX2reh)Zuw8;fzSs3wn{GS{8iT91+HaNjVsSlh3JA$D~ zerKQG;jV1o$Wl~q5g8+N{P=l!uZZNPK>#ZH@@@Wr?CKov7 zgZN!^I9AVG)It=>Jv{}?WIO(ITyFSdkCsv~pS-~TNSv3;-bhvwo3Qlzrukb~KHxUL zQ{CqcUbNXS4_YGL1-dr~SO}v_IfTynnts2pk6XFO)R*XwPWp<)g!)yWt9!_8`?u=H?nbq5hz?U;+QtJ7m*l4tB#xEN+T_G_S~&ZcL-Ii?}Xa^$mV~ z>)7~!|GbH>Wq|6!{6=Nx7x>V?3zxo2n8_zEpoaGOfUT1p2_?TiGM@gQ8nOJ-cw^dg z6ddDCb+P?!Ss&Q=UB;p+SXVb*_@1S1HbCb>{S}K@ZOmotXpVk22a$&#@`{-HM0+9W zK^~~E;qgGtn;hQr_xnR}loEX?kZ5Tci_R&|7?_@)%}+o2ubx<) z|CR3?@YVN!@bu$9_?jI4NbbIQ`uYP8*WP}C?};z`c%832Dtgs*;`}If=1TUkMVoBi z&3fA5C2I7~zxH{dP~2tTD#%j)7pXsEVZO}5%Er2Q0n$1_Ql$x|Ui9~dr!K?ZEeO#C zpvQt7UtG2lLm$&Z3UHYA>$hDT;l-aA?ZKQdlxKV0=KjgCVu(KC$jj^m*)S4w+Vzwf zsCTl*@PT(9oM@KwmRd~|4HGuPaMpyN#``_D&~>F219MD&%!BTgK0MEj%1jR#ZT66P zP=amVs@pW4uWc96AMGMDSCW}hC>>~s*Y=Rxw*$ku@lX>d6*d2e{;9NU981L$ggxw#^DEP=(!d{%WYhEPEqS_am1>>p}(D3T~32 zzXnR}4ZhQZXwPNy|ME#69(_5gwDVqakrPc7WYBD`p>Q;+zuXgm&iWP^`Sg)By_P@a zr=8TmCUtguR`#JQ!RY4G2;gx%owI{S>{J`c1rbB}|0m zdB@vLy&>8f1Us) zQRrq^Ir|{eg#bq#VEc_>>WGI`bh#Pl)(Y|=R6l;^>x%sGys-N|dO-%)xb(T5cEsbar$uu&Ek$ToAiI_=$HU26na-)`clk&1BCwXHij zzgDL8uCI+md9Rum3!k%;DE2uI2L_Lw{;sZ~VyTFq(lcg_GP_-pIw|t&^?>ak zq=jb9l!Zf(^RlR+DN82WUYm-Zdv!fWb#^no1Zk|GUl_LIN5|#80pwVa)SQU5xJ|86 z!%qGOm1?<7G^fOP#Ze<5fA6so=(KDw^K0#HxcGcX^yeP&btG zgT6yB##92gwI{jnTCRCd{l$hxT641-!y2Pr&~2F7D~hzo2Najz{2wklYz+hdOKZHl zrjfqjM}!Vk^q)T(Y9~jphFZI1s|;+%c6BsW-2A_2;UaBbw>1#5^8+llog6mD)T&rOpFfm^j@h9ejzNBP$mp(E8|l{`Xnb%2 zd2RaCyweZbaqnyF(;N^fR2h)8;*U?wj5~VZ&(T|VauB_%YwK9IkVf@j-oU#}=Z0(l<4gk?-Xx-sY<< z*7rZ&6sTWX!vd*3L*&wCME8N~?C((bQ{rA@ z^vPpB+1$lM0a9+>DGb7-nQi8<4awKv`h^DMJNw54k5>Bf;R~F@=$!f{E*dF~+ z{vo0wl0(32)$$q4bdpgzwop{el75ipc6gJnb4S{TH)+cW39oeLxkQU4sJ7_~X{aw7 z1ZGS3f;HNZvH$2^zNOf)Ul#h*YcZZa#?Jc`BJD=?Inv^JvQMtSmyfhfI{MOHpQ>2f z`Yh_71dR(-l{?>RpgJ_qie_K8=uk2=dZl;N)M`_H`e8|xcUgg z%(;0AjwM4r&4uvjTy<8WXJN08#Xi#W8x6_dS9KvrHk9h#1his>aAR*xrPUW~dnK}{ zUe6NNo*$rUf;&DP9c{qyY9lNPu`?@=NmLE&@=O6bSXz(CSNG&kI%ONgk(SBNC*Td( zHHD$eoSeE*^$3@WdrvH?yAj(dzg2wzT;Izh;E)bLk93M|*k3uEyy@c;Uj&-S9kx*IL@?}QfisJ^tOe1u}a+zHfj_%a;o=0e#U|o~UPU9djp6PdNs> z!M~@WPF|Q!UHsh;^a6@cA-vx|_*AqvD>b2;ztVG~?#&n6MCFRjJU6ahUHSIBap-0r zc5PYIXhR8*^f99RXSyHxC&N9NL}4}4es9R{cBQg*^UwSeUzEfcS7muumc_~D58{jd zesADszxT$N)z9Pzzi-v|R2w<(e0!ewDD#y*HdZ9sE_j^-l*RvMpv{}i>hp#NGzP&1 zviMED*z=LM@Lzw+!w`m24^dbs^qrO9wn)Zr#ynZ#;HJF=<5w9Wzr_`P{tSk(b|M1I zPivTz-ZWGnShK@7!M#xSvdd2}xLEgO$iHKz=X}xwhWGIMrr!tezM{8rH@@oa+bYJl zZ?&iHLSZLTN~8nC)V;L7^8@_mAW&%7cuFTO0^Z_VU}=MfMsw4f-hMSq{{)?Ozkhfa z{bH*;Jl;L_?RR5?amsfLQf&dqZDHzI>!%#fgB>pd-^fE;KN6R1Uc3<#c=by2KNz5p z%Z?*rMSU^Y4Tt_&BJy8zgSqkeLBGfXA-+;IvqMMd2j4;OpHkr*ADr~%Qaqga0zI^K znY0}BfkgJw`YktRqUG%?bHdOXzo0pO>}Hd>swg_uwS~P6_{{i2>;n}4>9BhDPq3lE z!R1>z>f^>IGK_&9weHCtUeD=$f+b&o>6}R1-?-Su=EwOEp5{m&dcpTC^NCyMMbs?% z(qOlrTzcc2fv+~N;zPbRXb-}OC3$TIX`3=~tynZU2F$wt*(Wx>%u;%3z8|S)7{G4KRJybl`C$ z?BTLrLmX7@>>>{xhgiSNH+UO;dVBXUXZa~RI6L{3w5PLk6^{*O49maGpmS+Y&i>NiqhsInPL7p6ft|M0uv%^tif8 zkDp|gzMq?eNQO)sa0fw2QO{Yo1V(IK|Mx4J+$T6NJsNY{m>_W{%~E|%?M#=AFn!?Uod3i zJU1U~1TRO1AEmI6yTwPjNQ#rf>Mp%{OAK8+hsm)~jDWG}@JJFJyWM;k?@{a!&m!}v zmrf#40ey1hnae2X{Lx$k-r@!^q|-@D4!-?#pz-Kb0xUmC;CW+|DVlxv9E!Hcaj(6J z<8tdw(AZRQWgZa(+;zwT!$?V43<*~`+Cciio!#Qmp zZbOrUG>0g{4i1w52FWzTglHoM)fPSGFxCjbcW z>eq2E`pRFKPy2TOE9VZ&!ymNEe^t3jqOT1D$8IJ`CR{NX{rqnma>JA2xEEfy= zV7Yc`GnPZapbSU6(N3XTcD=6-cufF#>@xlwnCS>X$xv;rlF_T{+)3yzhHkgSziZ&l z(d&#s;*le7v3fYO4x?jxdC{aIw&3s|TdbOTKX*$HP;|MA&MEjziml1W1pz|BF$Y4H zpQP~I=-SjK>ux(=9u29}+Cq<#b9_`_MVtchj92pOXNr}j)kkcqa$TW5uG8|b=VJJ* zN|QoVl#9%oX;UXF#gXye3YGq!vTX!_h@*ZtJ~hy5T|4Bv`YXXdeMuX--L-ZKU45Fj zAvrWt`0#}H0#lwFzu?)O{Oo*w!dCvJv$*hEmLA$!Oj~n_ZM#l?*c%~0XKge-+2Ku` z&ZeKrt5@%yzWkEwFy`{#|K0yXNVpf`n@XR^XMXysVQAH$Yc=KL|Dz^lF_fi#P~p49 zOpdjwvGIE7rw+QC3+etTYBwS&rxsFmH4-P4y7Z7wXUfP5osQNF^y?S7q`ji#uvJ)f zFt({kefraT2u=v7&mPxpZ5)D^0lRnpAC^rDyz5(CaI_eYHJPC~Vo=i(O%iKoRd)Q| zHK`@H^tH@y>*5uoo&MvMo@Qz0eW&1_ndC(y*u1@QkXcX0( z>zOlrK%G;Y`zR_s7~8>80r0d!D0Q>nEedwYm~-(tl(wZ})b)4jKM3;Pb4VT)s7*P5 z`&&XQ#Mi?BXK#QB1MU35^34a>97Y zcVNg#-!kgSKHTCNhZy9cI1%_U5ao@2pbvs$iT=_mgD@DE0BV*!?7Ig`0Gt?vb!B0HI&H*a?LhK)X4^3e`9HsoJ0mLJ-TZOVba`B<@Z8&hTW zwzc}(roJ|#yV>3w^vU(jEL9Tci)0y2Z|eI78?0^nuF^d`Fly%b-ZHKR-7*UpT!UVG zQp3@1?3Hydn$#&-8q;gu2xme0%CFVow;Q%}b$Q9r{AluozMK2_Kh(58JInMF@L6YZ-|F0t#+b6%Do}y zeb}HVee?9{J+a*dSr1T%uk&>eKu`%HQ-|k0GQEEK0{^ISZ}0&!weCpNyrKX3jgNS!E6*Le+2`o%mOmoJDA%Er#}#A?W+>kgFCVBthKa-@ zd-Q>LI!X7Q+fLl{ce?Sb1m5sqAZkf)Mi(;rhkj#?x-g=DcZ0|j0|?Ije*Arf5IG0o zKBlaL&|mqcl>svUkFL%kE_nKsgNt_M^4I*S-pKQ7rF?LstXGbs#xH!~k%tg1|MsBH zz*Gmy@96gXk$c#2^2B)LE^*w@UtjnMs1MlH12uGf=O+pL!~t&udG7eF|M6P@zIyuJ z4}P$7GBlmb4vesdDp(cAknNSBQS@;<5B^8M-4uFt=DK!nlScu&ZgpgV2|`-THhGd@3xAu!|0^qPaJg= z5T=JuZ9n9i(R^1dX~o|7?1xXfVhm#bM%2ufuAiXg`IjO=I$hMz_BJm9)C`&2~& z)d9nGnCrJxSIIMvf;Jr5Jil7+;=Hi|pSbk7?kw*Efrz?3dc!$Gzbd=`YXz=83P)WO z&ZbWK#kenEl+kJVZ@&tAKAH}YCbLf|xYqOq9Y~6yxoDYn#6DR#OxMgwrqfR;`XI_R zU7xIhL_6fy$JZye=or`Jo*SIM%$epgFyiNY+|4g}Sy#!cIld6!OC}oC3mfG6mu6&75*k?YJ8&YidnT-rIdUMFYFzaEIu*o|Le z*9@rHu1e!j@@fonPa>)OHpqePl*1J^Z_FVU30F23{w+0keKQ-AwXM_(JN zDvn)LyFT+;rI$X?Nj+6ppPF3y#s*(7(+|Z**Ce002cEv-$z0POFJR@67=5?6L_YbY zR(&!<&FFVb?UO*rfKP9V(RCPdyN)c+0xp^-9-$=IXguvvGl~ z+5lKUr@yb?^=r;^Ml$!2ft(NDpsYM0&uf};ypj&C`*a;UL_M#H_BJ{1kcD3nq?>zm=FMaj&&;I$p zc>0w;{==uw-|!+MKVE};gI&(5ZIt`J8puIh=*uK+lL9X6bJWAPB+bHc$EKn$Z*hW* zWD&=l3@arOawJ=_A8`?pNz^m0COa2Dm5?Nlz7W*qi@t9nBrx0Frtn(w#iRRtGoN43_M5 zd|Jv*cFiBiFLDU5*Z7;m-A6mTSG0c982#S-OI4o!*xfO{{`r`0SY(pV-D0PIt%{jG zaA&pp*iQdGB>)KxH7O~5JJhyMRUqrchSZH03ezOHvL#zt@Q;x`oT5oKlx_+>HlB|4 zp<(MJ$3?!*V~PM5t%Z~|;nyx2gI%^=N&Zm=wv@SI*id~7ez%n0~bj7_d9+%vrQI#5iLdBbthhv z!4qF9)GvUtAWFJbh|ob9N7d=Ae(Gru)mFRgNl-!$!X|b)^Ho&gWj*}oC_$Tehy;I$ zqTAtuPF}agKjqhuzwDS#Yg7-~-HIPKM_X*DBW+^o^Jy;;yoa8eCc7^lHLJ5tm!G<^ z&o5D`kA4I3h)#|`_^<&@xy2YhGhd^Xw=|KTa+8j>4&)81eHWB}>W}~Fr~mc)zfJJI z%SncJg}pO`pw$;2Rr=dsIDqqOr(Ret0!}f zP#b7fxf?J##52EV8pZ@mj9jg$l7|bUmlW9{zS^DHC+h@O(eT+R@0<{J$JM&Ic=Ce< z-T{xv3l!HhZ@kcet_!*V^EAAzP|pbkU)|W+&1>6gr{->{qVn>q&(%pAXfmrXD)a?c zl9Mk4!2Z5N9vfZgdegECA7jJ~;b6qoD_o;`q6<>Yf-DkSJN$gP@HV1gY?1e-g zs1LPWLFP{1bngvEDO~ir$*am;Y^sL5SV8x)AaAV=zIR+W5LrSZ|LJqSgTj!QtLFH7 z^ys_uxf$IPXKWL`x`p8ee_`~K$9aiF~Ge=`=eDKok z2n~*gzC*Ibq5S-%!^x8-8t5Hh$%BD@Ml}%VD8Jz5MHg3$bIXtX*A7691LNaA@sEN3 z=HK}1Ppl&v6Wv5o2KscqsH7x)&EEruHdN>VqB4Or)@O-I<%l#s_{j?bF&9^g^yj;i zV7fT#taJKZK4AxYnN5Sz)W&4A=uBs1Q>6sI0G`&VT-)~-pAK>&- zhUD5zxpNmy3tJ<<)5*ON6ti~dCRxR6)1K9|!9g{7&i*#U$=Jm|_^LWM={uw0Asf^| z;he)pMw$LF#gA5>E8qMPSbF6-XVB-5eKadNX|ft4eJl?B=NTRyg0LO>Tg@J2^P_J) z52{mS?3_2kGhdQRoA?P-3u(~@CA~4>NbX@K$E#B%6$Ln2di=Pw^O1HHH;sfjxd&69 zx^`2_UBB5cmF}RKq8Mv)e(1pib|}Y=(|ZNd;VHq0inB z)AGsPTyS(yH`{N1)U3VCh4d}vqd^yic`cM4|%zQwF zjs7rcODC~x<2d-tb$wV{JapK<33_A5wUG?csc+_UJlaX_dbSQLh-mYsF!p}-<&@iO z;mj*GO3}4r>nU|tSL4HxewU`7S{sT8uxo+rHNR+rrm<5+9@@lDH!Ak)gOrqCd<=ko zpIJU5FMilsAF}SvR>{m?n**kh#-S_Y4S1i-Cv)$_Zt>aL17VVF6G8<~{IH<4x1W$M zKKQHLN>_(0LR58K()Pky#m!Y3O)(+8sIsqOsioQgc-k`DH(@ch*EsU7xR z`|<-6u8XDP4sUs8xt8fTrlS-3%zeYv4^g`l+?;Sr4`W9EA$=x<&ag5cw$Z=y3H8hm zj4qBR2g|$07X;FrzOL^&mqKgaltZUqcw;9mzv-PwbTt3NrWd}EdX1)k;gk5pcWBU1 zudCgWp$Pc>>Bhbk@|IVj4)4Uh{8XCrf?GMd;*@~DF@urmN1s^w({N@4Wu0m+f_tN6 z&hI{ieiu_k)knJJP5)B?EU%-Sv;V}O_>)gR{Iy@>TMMW&N&N2b{LiNkoVR}OfBqLZ z{c2>!l;41W+*-d5eR7u6g>m{*j92Y&`kUTIlE{ z#QY%5$q#wXPjlwM4?P+4QxBh{Q+-6GX`O$R zZ<)Vy3nAM!ETK?NH0~fhzRNbs+R*i;ApDY8@mtEJ8cMEh?e6+f)$t&C7c|{^4QT+x`)~QJsY~d z^2jeF!Y^;(alTOi9j)tC)-@(=J&=u3UgdL~2oy!T?P8mQ z8a!f1?S_v0Ho+&~8@(-Ql~fP{rfrF@U28WPQg~_|=bQ?1w8vAOu<{tp{G*Q(3s%_x zK{WKgu;qGv1JR2|lR;eNA50Kb6kZbtHdXm92zr9hATo#l@WvQZ0w3q04zj}iwl||5jQDG05sc61XhR>eI zBoXN_7m7`8`>GSu5o#IG+3!!6QVG6kT=1|k0DU|hZcekTQv#N0UQqV$K}91`@#v$=&c%jOs5Ynu_m zKImGw(68?r=VMn}Hu|f}aiNK4i_+suCNo_`FZ_a7cBl6I*hXESxvB4j+0RY(z60Nj zS#E>3LP#ulPGdV4rPOAiNx_N0K*Hm0E$2NCN6svq4?wzO zU^+ie?@;9~WJp6^$f`CK=;fm9p7(~Rwh+x&4(iTk-MJTxJ`qI2YmyRJRH2ijDW&g= z3%=1#W9>sBYS_%fO}={Qm%jR{Pa5fin;*urmjl#TSpXZh@a0yHLfnv-&M79cyvl-= zwwi4{Z4W#P0czD~*C#UcI!or{yAxAvd?5CXy+qDe5}JRK;?K=VV%dDXX(xZsdt=R- zDkv&Cj+PoLk?DQv;10(c^z0mi@tPabh9dg%c;nFeL5BF!4Mn+>2AqHD&$)74dX8!( z9h>E{RR@cmqoKhm!S;=!+l`KGokx*jTWMnP`Z4^qzh?= z{-IN!EDu-U^2LUW57G-B37vzr`5Kyh>JAO(S82AkSzCIV1CG)9DMM>+loHA!P}gts z)3CaLNFH_RVKn9j!JKV91*2VBrBloi`6}6{{#tJt-t>vVogf@&obC9IdD6}1P@6N) zEn6|@NS1oRcQ2+Mv4OyH_89=$ZpYU4X34Ng_XVNy@{2mnQ{P1A$?oOE)-R%+9Vx0RcE4sH3>@FgN=4v9{Ry z{%e9s{p$~WK_E9+-+lS+>HDw0dipDW^{?^oRNnEHxtRg|o_I1|jFr607x5<(7;eBg z7h9h|sU|ns&RxVith;pb5kULhmM#i7Zcwax z0OJEjW7Z9$;~YQ5VEeb^wl}!^WT4FEL~CoIpm7|%=4&OB13lg;7M(MoQOXBi5Q$G; z^P_5EwYSYr6OOmwpp%e(QiROv}%*~8gX=0FBF`9?33fvacn?l z;|-m}znixCLXkT4NdY=Gr{+X>j1yLBJX`ac4!}lp&7$-AIt?xx_}x>mlgj>w0JM2h zJyk%x#dd76kb}%D`Pj4+QZ zsf|r*bmd@ps?n~t+NWP!Tlq=UbhHn>Hor^75A|-UG5%V6AXmNB(1oxn;f!EyQi4v zn9HsGZt@ae2Cwr*Zvn&8=|h>?+hSWfN9N`^ahr!o2VdayQ#az66TKjIblDAFRiG0B zwa#P7QaK(lQC4T|^tCaucW;Gq7jn)`v!%1~!Gb9r{Bi8~X`;o<8-B`Fk~i}=cAPux zkk|Eru^5fMBmbIQ)@HmukS~6c<~8eoKOz3^yI(y0@8ADjXwhAMc1GA=zvZ`l&1T#5 z^$weq^(Xoq9qfckg(N#VVGoLVJ#W9H7PCn#Tdmi4_@I`+IY*m(h}b#Oa`vF1v8CSl zqxm2p!7)aae$>uS$_ihtbe!EaDg&7aX?}}}eqtDva{wC4d*j~d_WnzTm`9NF*ZGNx z@EhMEr~}6%vo$QVcgt@mtDbJg-nG1V^9haS1A1J0b0E4qU-hz98q%*lGO4WqmK2Si z$;~O)0*yX3uFX5PYm4rTK?Kd3%~y9@L@gi0=BJlml1Y1+ZoicDx1-Q@{Bp{W9vLDU3kYX@

      rGX?N?ctPxOP}_uS$-NF3RmFAmI!Odz%C}%ALLRo2i=^ z^$os+UiSX+n>_sJ%Wt?y`;rTQufF2#=cn`itb(@5Kq2QpTHs_;p$b+W1uNU+bGu#P z*zhP=Vbfda>UO&t+4`9c{tF?27CzTigBD{b=>zHjbqHlZ;;}uN4^XC9rsGP8rv6It zJ$5#+nbQ`J_N&;Dqv$*qm**uz6vEk>iIBqIF%5vCzJ7W!pTVbzo@z5pOy4#81 z-*b4ay|Ak)yH3Kfw0pL4)Z;q59MZdSaD6s8FOY`=ZKLJnj`b4{KfsS`I$zF&UH4Tr9E9VtZzzq$s=US>?H2W4?RzLphY$+Gu0$C~pS`6Lmmt zPRx&2#xs)Wt4+@K--DZvBXhChg<|W#1TvQ*?2{KU>R^!1G1;DvJ&yqBRCbkgtal?I zqsFtjYg&~*@TP0ZfOC|RMVu{S@o*TYldcw(=uz6x*Sy#{n@%kQDE~myIocrEbJs2> zzG@=Y79FPyUXl*YWXasGFm1a5ZR+9|;{aiLCyBJ=%whX6ina^&eSKj+S+e zXEit5R-%t}j>`lM*XK(s6`Ox$&Te)#xuCxn8M$zPLoAm?Uc4uVI)uvJIa%M^R4^vy z*xHSA^+Wf@1@=3?>b;uUQBMTBbQA|0DEIOKl3;;<_#MPK@hWz9@uv>@ay}ZKtj34l z15vNUHu=kjHPkgX-`J#lkX#cyHd&xCj&A7%%_VVtv$C=-zUPg#i)3-t$&=yQue2_( zvSNgpDV7_;&FAAm3UZ(`z{hF|E2aMtXr>22ef$(?XgKJ&;B5o!-u$O=4{}bH*{4rj zHyw3k)JxkqdP80xq|N%=i+@>kU2}j1mtp4W!5+?wDkR2tH{OGdM6B|_n(ID)!m!R? zPJ>F@sOXW?NXf)^>?|*gXK|yhPlDm**LV&_2V|hLa-`9p>XpA^qU|2(b1w9gdA9wS zw~Y^#>+5xl*hq&)a#P2AGt{UV%l4v6`GZUrl z^X9lp3DH-M^x$Gvi`DfdHk;zhsA*K*#EO0y2*32=@Z&Y8=5=AO(a7%nC6XQRO1+yE zi$^Wxh`DgSHivpV@?@vPJYYRKGNO;AeoS-o{{JP{MUR* zvs*eN+wG$=`SF}0lR4M@H)VShjF^5PIec-VoY#-~0$5q(^RuwZ)O3qC){axZl1Z(* zQJcLII(CfaHs_Rmy@fFJdF@Y^&*aJh|Ib^-=w}}`Kvh0LB;o6?(_0&z|MgK1iLiTL zb%GN98zv52`;(80kCqF~Op&G@Y&n^hUvNST8Jh1LpM8xdg>tDNQ3Au8xE0`~nu=OR z)VdMuOHIoeZ-&#&TBP#=80K3ZQ#LW_6Aj8&e{-aET%2#rBbrdG7fAFO^QPx0{bP*# z?(iO_9w%YPwCyFr zjzD(yC|;*I>Dr>B@NDO6*t(Z-RJ1GD#)LeOuBAf{$!x+0I^b0=#(_(o`t1OI6G5Lc z!k-S+H^}re>B%=6-s^XDP&dHwnV;l&Pu+WZ&cXS&2O&_XP->7@eid$u0NS*Nt@E+T z+)U+HZ0S2>ApaA-H7xq(BM&Fu@>O-sU-;&O4+P%$e*%tm*i+gAIRDV0+(eNY)srfTH~P3d5KMF%g!>AUl!PPa}U`(YegOQ6Y?G8sd^_0mxyL`b6lx2e|pm!?@qlXV$H@16wAq0cgGJj1!TFba3zZ2FOKQx zp(X~;<^Z}Lc;s(>1Bw{xOLb~I$%gHXyF+h0Tk9oT8T`4?E=k0z+Dbdxn71h4K04de zZOp@uw0_APIr9xVX=r+ZQHVLBSN0=RDE0NBg}m2x+l|W_DW!*vbFO1OrEOPF$>UKM z`>1eq{+I7(Usq-=#5Q2DG_J zyQhuqu6j)2Ip21DU=DG({!jzj9QyQ5Z<>rq3YOpSYEZ3ejvQnElMf9=_%#k99R;00 zDT?%fGFgqY%Q&>yC_$xBy#A1Kn_6hB8zHD)B{rzkN!?^T z6JC@D+{p`8b=!sYLDj)WmM1>HtcB{)SDj*`$5u`RXP{JVrUM5eo7GpaWaukpRkwp} zXRiEE;@L!hH|*6x5!=yWgErv<^?tO|46^M;K=0Ib2dRB^1{ST8WRnSml;{^5Zs@|5 zUObvBdOYaX<*JXi{>h+tl-;}ZwLIQUF1bh+{*>F~jLc-K?2#`){=rUdTufs~ez>Qk zK5k-^hqQ0fKgt>?8DLkL1}9zO+azDx@vA!6rv3MXmp)88p3LM^)tz9bnf5r+eEa!W z-O0i?+^)CjNfIc;g2$*D3kRJOUt{yC_Cycy^*V4|LR9yV80w z%;fZ+UM)zV*hU^>xC;|mo0QOVw)RLP-Nlfg#g_EaMz4P{*EU~(X@;2wjeCh=HV3dJ z_ku$uH|W?C7OM)PSLgG$aJHw zgPO>XEV=4alzGU}Hk%1TZ(*UY3p%|3MQ~D`TKe7?$glqlNp?7o9vS&oC$`Q0@}8KE zCgGYQcsNnjKqF2lW@nL7Y?KAL{#nw9ge2-=3uT|)rr@Yr8bC+9jY0ZK!ZtJu$WjNe zTv!T16LtI0R{{BP%Y$+OCAvV8(CyfO2m+-%_{61ZlaUj&lU-vO7Q)ilKwcum0(}0F zC#Brez7xGzn_p;^Un=@sAbFydc=Lz_8MjH-x$H&T<2x9Y%jTj&^YvwV>Mzyfb$^yEhatp=u7$d>7ri&ZV3XD;}K6Ib#0Q(v9GZyphwUNLiU*z zDkOU|f}gMxpbGb!6o)F|mF3292HZ;J5$@8{guWLScn??NEqG zgt*7z?8uNLL1Uf%wx!VF%TLo&Cm5@pYvfe{4gi%WRF+48I2h#3iL+G>`x}#xSnjQw zWFEWJLY|x7Nf}QH3R1W0lZj7+80qI2v)$M*Ummz+uWd3PJ!PrR9yb^^<-2gDom{>eoQy0=9<@=}Y^;?kr&5b3V+6F`5`B zZy+>hHgCiPg7!^{IF*V4C5^Mq@h?pBN0dxq50A(BNgWT39LSrG>|NjH2in!eL1H^B zshdnoVvN4SIe&Hmq8->Y`pJz$Sxjs9B1L~c)^g58j_YS8>d4@{k}Vk6O%*GO#^&3u z|8A^po3hAK!(`Y(%?8Y|%`MvGt!p55)cdeMTWXs>oRcL|A06MEMTCgW9ukt^6zkK?^ z_x~s_nfzpP`1z`v2L$89IhK1l2`dw^NgECxlB56tKmbWZK~zpw5+kKYMY}n)oO=EW z04!5CjWPE2r|cY7EGa5;w;0hD2WYAPm#A~YVrfblxXJw)t&~jI~ ziV++I)Oqs<`0%8QEXdnvQNauvqdFsD%tr)64AMtgB=7Ve5bkT?E2@y9bX&nD8!JceE4L&mV$x-Fg=6uyf z4Hi|GZYbpkmB+&YPa15lS!X+R*yi_}3vZ4z{UOkHzq9|1b6H$QYvyP}mL`y1^Gn&N z-+7bv#Sb23`M``5Q!xzt#>JRwvkL1gZikYi$7R#0Uiu}0*Xsq>m3~#1UyyqZr(iK zixTsZ`DLFmu!M{8FQv|zYAD+JIzLHFf8z5W4GQv*g7}i7bCc)RJfR(iMS5bj`CFi@ z>s;@h+pNI2hka>gz{FQEij+HFgWb7XAKaNll0yd-`hY23j4J3aQZ7w88~gb!UBL~* z^B~yIZNx+yuw~ypP9-+w04#C5>rY=~pUA)~Qjr1Q1h>a^4o4Rg<{vcLr`{aO1Lry` zn}y(47USE4`Bxo(8#8abJLdF@1gV4^D34FIC$*79yZR~GVlg!av^ht?Q#>6He(Eb> zwwZw5TL8(trhFufm-eQNWQr%gV+VRFe)9X4YhKsfTtr4F{!c)ABb5AAAicj+d50g!P0u^t=5%D-Z&k6V4K*8+n)os*(D zb>{`hM1CYCHZDrW$h^l7$8N1IPn^3`Vr+L!sSvR=Rk>ZybF`8Scj_WYi?{h={O~G} z+*SiovLGJWj#ktiCn}c=brYYtK))Zg3e`}c6%jD~Xco)fkdx8877L&CsWRHK(Z04R zFrDB-z~g=ggi@(C`(&==Gzt`U-4v-Ke8}@vFCD9U5bP~XB(gwr?oVMgP|uOvwecX= z7oRbu(e{1yy1;JQPMhsGFzJ+Eef@#=_sRkq5$u9V*9ua0a0sndf!IJ%0i7Maix55P zgahxsuT(q-q)96i^aa6`JYw1lngQlJ}9X{#c6+JBaM0HY< ztc75PtHcCnug;Z^$|P(*)HshuQXPHcKMoBW*(oz#@%7Dhp+~_V?;y8Y$%h4pIEt?FHqFCx6PsGU`;wD^mf+hedO?q%iMAI~t z)g-Wx^SBpct4-gf6gtUFpGd`nLO8TH*&#^HAM%u~W()4hA*%^}jRufh0CVzoP|5BUB=pNFG{lT^ceEZ!xp?C(>cJR6}OlKM8O3tt;Kjq1Nnv7fiQuYCA ztk_3eG}x9MjF&Cy&ZSYal!Q^{R~^$u&_L766J!f$eT81;K*P_v4e4e){KMOHKHr!^ zFYxnuae;n@a74DhVrYlFC~Pc3JGPpmszdX6LxM8CuzfkIFMP`ce(`9J7zst8JragC`@ zBJj!~`I7^#e##LwHNN*WSuA`agtXZ}0jKnk!-X$?^P{2qPQpF7K{B-69K3ewNVZ*U zvcNQX)$5#OG60_Y@I>ttcXNZzD0o<2?lK{O>cfojv{Ge(far_R#;M9 zJB>TFITBjvchW{WkB^tYJSN6iN;1I)!J=QmBz zer=L#A6vCe9i$YT*pbirIyJBV%@xN2beiH$mUK1my->*}`DV*wUV+vdGk&FyGMt}W zU+t}~D<3@IohO>VE*4|4ES<2hrO0jS1bsf?h*Ek_Z?F#qHL2Oh&T%M>V|w{24{iDT z91e*H;yBtjf6@U)-T6!2Nzw~>+jajrJX zHITm^Vir4W#_GolY&iH7~E@9maGY%+_ zZ17cb_}VR>9NNzwRkW>w`l`45%9c(eF8|T%d9Idtc%EO3vpQe7dh~Aj?&8WOY&a_$Q<_$-p;0;oIrV06(l6JVZQP0*-VD-kRZFG5q%OE-zO>*u9aE~5!JpbWR1v$k89J<_}z2kbM8sVpPu7r_S3l-(dyvqhIc_^?SUW6 z`Ndv(*Xz`cnb*ETv^jP-(nsIScJ^n}Uzt~|CEw#H`m z0)QZC{RSI-4!&EmTg(((VSH$9YQ@n>0>(Bb(0TY7K4Yv(oNRecY9m*P3tz1!9sDb z+kE5M{}I;ugto1D^b61k^{Z0e_&u`NtrN>*WojI$cXdfi6fo|ypBD6kiWuUjlUtjc zX;fc&U-^Hzw2d3Xox`O=5BUtf-ga(rj_^4Wk%R}$HJ(rF><04iWHOG8Rx#DtT*6M< z#FD1pd z?APqbRfe6|<24@Kx<=|8tIQ)Op~er4)(4ced0)M%P1+5XaUy7+86Q4OdQGg0A>&eB z=Z1`Az}-CB`pb5^w2=R{0XS87QofILDC6^M6vV)H@7|R^xeXd~H{ax@S5M#ND~_FH zz9rAqQJp^U$umDapih4I!(V&)joc(5N|4gD(_IoSho#g%W`{aLD*Tvs5?JHaLreG4eqL(F{ysKK1TFYANyst?QVg&n+_)Jd@@mme;aLqyj6UDk#(+zM$(M zKihyFO?mQ2sD5Hg8|LIXzs@+1i|6!792~d}esxig{Bq>SYplYX|8u(yoez{P9~%d` z?b`W`nA10U`zPNZJ-4AT`YF@%ffD4HJgtF846w}~TV8#`KLLJep?W_YikydWI*^~& zyy4~K{XB{(1EeCrr>p>-%#fUN_LEo}*sw}SlY!~Rg+d0AW;0<;1|uw3;EeHNFM33Z z_Sl8Nx_w7)Za@}1cFIaQH)y@}qunJ??#lK-*-TX?z{(&b;F(Tuu)&PyCds^{A|vt% zj<61_CTa=IdX5&KCrU9L*f+?>3kp)-0Eb~wImW85U!V+U`+|zzCA?g+x)BIZT5{S} zvRn5LeI)b5YU1xgN?PU3VnbBAL%$?-0Lm-aWK$468SSk;CN=SrGJ1IDE1JR3M8%Ka zHY`$?66oNI2OpAO#G%HEe2xQh4pBXA+yt6(^8@($3W|qNag*!ug?@_(+A8W$uMBPz zCZ3_gf$yZCwyRGzds}jKCpaf(;nkl8fLUlFq2Uoj>KZi>R4BN(@?(igkuHDGp1p^@_~`G(kc}uJt$el%sQ%fK z1O*k#JSg8v3Tt~n^ zzbEZsn>zH+OH2*Y*J9hAcFIyQ8e)~o9)x>y?Bd5mo0cU@%V-o#EuftN{>7nLpry!e(07PQ$bax;q+*MNt-j1vQ$(1>BU@^ z6SG}gL$qIer&>ob^wi>GIS9i%9x-Tcu0w&mLW5HB?~NBN%h56(>?1^c`4F2~T@X5_ zoqqHwepS^HoC%D6H?c>X4mv#Jr!CKV3#Wd~ zTlAPeYU383`beK17N@HYxi>XTAah>1DjC211E4;gRM?rwdCQj7BLdzz=bWF9f0dEb zpj3y>os{-~+5*20o^UBskA=GWc21^$^U&JTkM)LGpX4bE?TM3iDi#WNcB_u1Xl?_? z?2_I*Xac6q>QN+XZIIXFUEl}@jTfVxlcLwh^3OAeYk)&Yr*3?mWH46ZNE@?blD2MG z)OKS*Wq`v#kQtEvw2yxfxzo;KAUycgyZ=C27s~3ZP3*U+gLT@Ey)xa4@C}pcax{v! zOi+G2AT`)I3M^E4a>j$UO2_XuXQCU!`5`vRWM9xMMee?vCgrp7c+s;-Cj5EEa2lVV z78w$|=dpNfRwBQRlp7E6(V?3I>625DYd)?#C7eg|92n3yNjSF$$!@;Yh~7rjF5gx} zj(ikmA-o5rzFxKf!+CmhcG}YrS3Hk%h1g=z8mh3iut>B;egkjrEw@C)pJK@-RmT{! zS*z4h`}ITqrtUb_I4@8;1!lAI4<;1SZtkUZ!&@OxEF-QgZ&2N`;vHVz_?|rVRd;da z+%|d%ZBd^`4`p<70ML9SaRiT^(dCtjwPjD8kNz;?7+3J8_!4EZZ7~-#@@ytuHpBFS z?{@EadDPv%or|^hnduiY58|=ESZlZlms@npJF-6wJNzuwx2x9i!p zzu5n@N{^1A-M##GyQN>ic*)Mu*t$)R9Zwgz2R?Ain2YQ2CAK>7cXCDEX(i3&lxMB> zZ+lUHQM|oB|9A;^RK1h*>Hm_)F8`Jdx98e$>JW5;wKuD+ZaO*cp0{B?*D3v+rutvF`k7><_9-FJR;fRQ8K^DS|F`^->Y#dXOU=`^ zmKXaM?G&xGR*B-JeZRn*7woe9Of{6}-Ou(~zZBf;R8RH;!k%%cDlipNsS}H0wMvJVwcqq-VJl>RXN$BQxXMmY<1bwNG6YTz2kK^(;<<-jdSBQgkdsEL-l{WU$ zl@+#@FM!!Erl?z!Qlvr6T4Tx?okxF{*(p}jF!VFkZOHFsTZDA|eUwO+MDw$7t1u#$W-gA0LTW%oL(L^}-%`v~M^vpKbxzy55J; zs(-RBua3Odt3v2g`=pC9+FkanZu_ox4TOYZpoj9~I|9%tUDFC|{bX6;N64}0c^!Bx zm>p89vn!qyP9t~e-c1W2!BS4^!5nXcVot8*d)L}$j$GSh~>#RNhM zH;1RB$VzY!;dN+*PsgMxLHWb-O-oCfgsNv#0e`WD1n@1YI@JS;nWyh)51dwK8f_sl zKl`!L2BC6?f8|NqJ_6eJ=6pRgEMMV>!*H7iEMy7%-@(<5Om=u*Vt5sbojs@rEf!^eFMy&&)%+)9sS1I zH=>R#b++BZVl^K)z649AW%%xi4Z z@n<)0p7mg0-T6V=oU;4s7wH`{`V(n=RoRpnKVZV^pR@!t%S&uJa+H2Yz>CefK7H(0 z5BvGGXrYJ7mgw)z^%+GE6wvy@p8seoHkshn+BMF63S6~vJ9i<(*t7ZeS#H%q>XCf0OciK2 znv=5$2AVdyE%V@%_+kARJTBnH`BZtpjTL% zDa?14x1Fd%&rAqj@o9gUUIqvdfAm(p`ENR;%Z$i?7Tt*O;fimMIu90X1C`!cvi>mf z`m#oj_d0`rkzI*`B9z7uD z#))lG%FUlTW1q2{51`7gr#nXb4hw~Q?vg&8+4Yu+a`=_y4o96}US*g*l_0*;W|hB< zR~e;oo95IJ-x#K-tinhNHsf^0jxq zRPTr&(QkIKD?SF!1~>UDv-5$>dHc_<;!E?*1~s!ha_Q5W7FsFS!{n9j_T^X?_D1t4 z3RStHBI!8W*Y@INZM4+%1uU(z zJbwarZ{}M`bw#i(2SlhAuDZ<%X%$R^@#yG|Kb`4(C|bnmp`V*qXg-^I*?l)T+zeCe z0kFD=LutRlq5077_j&y#V#tHToc`j2_m(z~&bxLO234Z&8}@xKK0tBi1c zP`r`((1}K=yGC%WYF@jEA(2X(5!ilp)&8!t=<2QHv+kM%`rU!%66c=*BX z?X+`#c;u?anJqL3wY``sD-e>jfvUdBC)r`nPL@vE{NrktvXFv#j;$HHtz zEBZ&HzMboor7yIlF61N2f9gDcV-x*)_KH$fePWve+ZVXhc)azTuc2f5YAYY0TUvpK zSaragdpM3A-?Gqj zUEFma!oT$^S5#QNk-7CZ6)>AOJSGDi==e8ohQBRs%prr>eFHj(W$S5L+vw_iLe&=+ zOo`Dd3o-XAU!Z?S{bM$%vv27d3#GtJ`&-H%=(%-uu3u5&>sJ~Ze!gU5Bimzc*H756 z&-m~bIGBp#HEeVuHYg`X{`Wknq8m%qAul~Y$vk@M zmM(V85zS*0>+SJ%pAu21zsNFgdhv<|zt&&c?x7*Y{`-jsaV}M_qoZb6H*bqk)iO;Z})(q#oO9VQvc~spYrkB{+ zo&{9!ZT?sq=}YsjPhX`YddPk@Us&w*<9O&0H2+hiZR4BvjPnTNH59_>qwV@Qt7$_9 zFpVPu-#wQT({i;rWl++E`Iy(KDuYJ*DpJe8RGf2bi;ohzcuv_1H`3XQb2;X5z-+lW z()}y-KXm7eo==+Z5bE_kK#;_VOf7S>Q7l{poyX2+N2-uOn?&1+ zDaCRWg&POXyO7M=&z@I-SKsito!yu{0wi-5RWr4flivjEOn&BOOLtR~0hhF6iKm`+ zHW~~n;VJ$mkL^Lw;&$3~7HT9(J?fQ*OZb0E9hX$Y=cWQHs&64$>$Sz#>hBW;Q`o zqROdzkcnT~(?#MNK+EvA41l1;)u@IkRti9fyau=QXM#6op13<XmPo z#9(*grLD2rYRXYPT^1%f<#8-@q|Dm)tUN5#ZkR1R#vZn93?M^#uVds7PQ9jUH_gE? zbv#j+1IqVg(F|(`jPb&5eD$SkKQWvp8}r&3NE$(BtZ8$xV6I9Vw)o2uHK3Kcxbhh* z>@N^1D^tHG=F^Ri5Uef#c2tP=4{J7RhA_JC@lZlc70;*0R{^%=)QJ`bn;&Ti>8w^C z`t2jOMM}r$2o=relxgcmH?8JKJ~r1RQ|I!u5;c+GJxWlDEM4SL9zU^4CqH|<%6_?G z%`w>`+fJ~`Pf6s-2s+S9?oVC7S%xp4Nkc9>R%tT_iWybuYqc+0@zb~zblx)7jT=aG zg(|3CeaZ~SKG4MBH`Sy}r<&#hiOE;BGdvRB@n7rMH}~4%qy()pyNG4b2w?y|K*7I^ zWGpv1zGe>c{Nk3G@Tp6*$Wa~y4oMC<3|Md>@F8VictAZ~L1bi;uY7$ur%I>d@F`Iq zL)oI=U@)n9ab#{dMi$E`^P^@Je`)E>K0s`jN>smIteb_76*j;bvy;QZGQ#rcur%*nrB0jldiEhC0Y?NhdL;~@)kS=MwC6~Ozx)x? zese2ADz-skwQ*;8YR+bRspp?$YqKE40x%JpA1PT@hlGe@O9ax~n==D9B-bv_sZ>YW z$=R9&`ns?ly(JQG(f91Ohj-8_N;cafIs6`MC#XA&XW2o!fi>sp&wmgtohXPC*vh-; z5#`VxU6z*8z|cV%khy^$E;jlB%;1i$dx(f8ypUsj5+^onAQanO(4I`LV|E;4lb0O1 z>}N|JM`c|!E6dwR*17bBXy^aNvc_YF^7ZFq{1%r3s*ICg6XGfn9@_Tc0C;#eM~b5& zG~i}xxLS0v`14|wj&5A2KeUo>$MI1<`6e#($+I(z=_k4) zctMo2-7wWr82auQwL>;jznjg-*gwu3ttXN$`XM@+Ky0SL(8e6hG3^^aB5DJIkhD)@ zpr0{lZKO5IV%}D+wE37eWfPNL+n_C$CIjK3+$kkwb^@^(H_r{t)#?DP;v0h=5uqJw zEQ;q4*R=BSDvk@^sJq|NrjYnc8b+j-b?(L`LA@a3CIJW~x*QcJZp% ztNXeDsuXP2(nN0CH?TFShP1qPyV2aEF`CW(HMG`@00gxyEa7F~q1F@H#aDx^Fiuzb zuDNHA=btM7!houeB{=>+Z$4o8T=O4ahZ+l`x1Wp+esjEgKT-<+)`=Bz z%$=jID}yL2f4crjrf=?HM@mPCs|Vn3&e)bx@l{!m^i>aub+Lw~Xg)@wQ{OqXwir8> z?bg4%{2ox_C5f9=y%A^=OS$<>nukMH0#4fwZ=v6%&<&? z&&v4+clQ%oN8xlD@pJaOhZu&ep^=%k{I@O%pE%-sN&~7Gx_9-;QO|Sgf+lvtd{byx+e3UG}u$ z^S^u;_3t)&1Az&Mke4EuKXY}6Wip$`(LswG78cc9)6sUU<&4yMlpNw-LJiZ z?O%fEmz97K$^C8XODAJ+!LARCD94IHA4PKyf%}W4vP7}9Chb>_GWuBT?%D?-=tWNV zVjOhOTIOi(=O+j4_1aCZ_-L0L$SqdD!Q*c@~Y z;73oQelYp7UtyMOtmNE>068>S zw9a<(m^B_Kk<8mMLMxWvgEHQe281oU3^9EV&v95z%g=egah_s%yN|h!xehv~JczGu zwWaasVcWj|5Y6;dl&1}xe#qk93`1{@qG>|gL-H2VX9qv%%+F~177A?<&fY$1^cHFV zOxC23GT@16`VcIiOATBDbGS)Jp06!@Ffg30ay@w@vEa(vut!#GV=uo=%3go~{od%G z8g%*VzycMsSS7WGJY%e?Vj5ou<8g3$i`>p85OQsDE3vhoUY$yFOAS^NK=j#L0w

      ;VB4DMILuQq|+V%o0|#+ayj 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

      5MIIBbbz?F2Z?V>;#Lf! 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 z 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

      !|N62CKp&)2ESuMc<_kP?6Tm_ z6Lx?u=BS%CE=oP{-TS~hj^tr*)Og0Rp4ED167s0ZYEuE@XFB4|%6#C30}byEo>scT zTlg$*b(=?Focxz*2OY2v5xEnBv(S};0oVY~KKcmljQoQa5K`OiN>j`s@YIy~kx)=o z4v5!4@=apu=?pfTaHC7)QSwD3Z9;XU_Go@6_-@_1l$(BcSNYbrzFU5Nmt8*KP`<)b5%S~*r9kt{dH);AF~^;n zU9X*ynJ)B;waetC2A}adqMIWwl!bR>sW(I-PZ+WWu$HI4<~f6^jjYLw>a^Yx2Ygh? z;M?TRayYa90f&}(b6#X8MOS#uL>?3D+*VLN{IOHeJ1lBq@rNB=7r;pGdg{bl6zppB zpLcPz!LwWLxVv0;^_3hQJBcEcIBgxvkR*8OVhCy0K7>Zd_K2kQ;1&PjA3Pd6XkPBx zusPpm($wmFtSjBTABr^QzWNGxacoxxxG0Lm>8;29ko%&j zHm35!2Rbt0WWMEt_`?I!Nelu=%`hITmuM(CeXE~%^iCZ#u*NmeH0ncU5(C=f#e0pO zI@KhdxUrxE1Ryf34CIlKq#J?2FaCH*hw^4i-}*Cp#tcl>kl>JJ;rRxjW$VOd1y5iI zN)+pR=xcb8@Tz0Ps0Q@kl8_$bR+5o-m5Gn`S){m8@{)4WTUD|hWRJ0*1NgF4?ctx+&H$7{3Lyi&aQD{|; zZAV%hG4Fy|M6&K348af2q#>&+GHvDqYkL z1<02c9-OtH%#Xw+f5Z!+yo*dAy@ahY6#rEIq+Kg>-KtyjmhoPpO{23j0 zGE&o3C~FFS8&=cKDheZ+dd&{MxS`V+$&N(vFPX-3^xU84}SPA`v z4B+Ih$!1_D>5Gp~c+$A_PeKa6k8~(B`1285qEtlbG~ky3D1S-3mY^Vw`Zn<(O6oN| zQOK_(WSI(3!^Q7M#=3lvyYaxZr!pi*X@~O zCQK<;eEX7e)UlsPN2wD7RM|RBgYD&K4n#O`?d-OLeV(Q6%(rJ+TY10qKbMzJpLSvy zI&Ny|*{5gd?8B~GLo!mlALyeK)#X=id{o;A+YZwq%7bAc{4e0Df zp8oc)$I5ZX9?vCiBe@)~GmSHO+lu_WwU7bSUy+7gEBPgj@;fYS+*QV8w=x7v3C~Ny zvt1QB(&05sz%6AT=}4!n19T{#asbsDBPC@d7Lclga3$^3TVM^3E+s^H@Z8(1kR-k$ zAEU+*q&F!`}+-Ez+MXO;Ha6|6ensXX!M1Lc}u{U!1e6gdB>>&%LuWWC$lLEb#E7Ade zbrN+5{3oAs21f`jEXN=B(K2@Hoyv_j|AEzx$R|_-So2DnYl&|WeCZ2cC@a{R(v2h3 zHqxOV!G)7@<;bH>3ZL4L3DZR+Qf98e-blM_`WcjhE?7a@?aR@}f1*6`(7ol07k;5k z*mf5NM}Ncd3WQV6@*VBNACKZ8-4OsLN8C+>C)`h-#*7u|v5h$BAAz<6(tyx}rTE&-g+?vPGQa-DeWhs-*wsi+yqYqifJ zb-@do;H)x=mt}1P9|`uIU+Yq~?d$D3Wf2_*UV$8&Gheppo6$YSvoq$sB%V?2eHn(? zR9bGS;|}aaxSX7%15exGB;{jIKVSBJ&wi!vu(7%L*TEra@}kF+PW)JSl?%b)ixZ8q z$TqQ!N`K`!_0U3+ zcHTQNIJtxiq|Z9_<7MEe@tkMNu}aA7f`zYvvvWD?6DPm`F0e!fW2VUyGe%yNS+Syx z%an#33`pU^$ahSFRZd^H1C6_n;mAUQ= z;B6-VSO5IV(u2EwI&kUYDs~WV+OVpe{h8AvLrzkpO$D?0Fu|;HinxGCV&u2F#&B|D zYF6Z$rXVJ0%>V}3HEJH>8CQMkpK_H%BbY#m7q1qq&T1pz@*lM3#h<2Dh9CcpWZL2f zCP2`{OYkHrZe9|EBU#FuK0ZxEUo|Fp7gq)b^^-U}(mx1Zb1W3!36m~0QIn!8BIOUk za-$&%KmGY&>qn0HuJKG(jOa@v@xKvWWqWM>m*IvcF0U15Qx6b`kW8ku?bHW<|2uk= zOV3}MJ2U5HtFuOq8JjaF#*7?So_l#t2AVrClkWtpXNPOMrY)!LTG!We7nbi1NOO7) zB(yJwAALf(^`@)JcvgrnU%D(Z>`uKm=e}5e^oyTo(AJ4}%R+m|EGd7Lcj`nw)c>^* zOzkh<`p%{7#G6YU=jJ4BAN0@|1_0mUUX*tq$b>ZY)d^`Yo6l|n5I7*M&8@8wnyrIy z%{pPbvW&|rx7lVw>B${2JvqLHtpsH&)Z3d2=auu%|6+>8<2GEVBNb$whqAL=Wu8TZ z5JkV@Z`hW{qCijRlQu!2N|{;m)I|&@CxJV{*VHA;j`GoMNec}NXcNU_eIqvY#AF>% zc4fU~Y5V7{Sa(bL@pw5WEn*iyZ-oUPd2oxDB zm!OJX-oV{RhaI$688&88d1dx=2LIXJMY)Whyj^+Zq5I3%zxAEuG51@M8wbR4e2CbP z)9eVNv6D+zU3){h|F6H#;*m8RiP;f-I%C$X(vf5CK6B#SPWWWG@wdNE9&I<13*dn!Hh=QgyhNtz#Cvw_AtOJz>U!$L+A?&+i1f?4 za`(@|1+SJ*e)5x~L;HogC9QjlpL2eXyB-F{K==6rR*-!22EQ}Mq#bB4w`G3b%3$bhVVd(^-->-^)e&* zSnsMVBrCY9Y~YcVyR1*Pi{#yZ3!h#x>eVa}&JFSP<~h*>tFIkyc!#RKpUx6u!=Caz9ryASRx(N%2XON+Mx|z|AMh8XD7d=_f~g z6y{d05Pr!sI0F#Sp&Mj*#91kbZ@g%WepgQnP0h?@1yjFTkPPFL|n5QZQ0trbdeh8p% zxN14^mbCbiruaj*`IdHdT^h$^QcUsyC}|DrD{kpf{F1Fk&Z?p}j#z6P!`rD?#Baj< z*6_+l8%c}3^2a#1NvHD292lry^J_i?5?_FuIJ}b*fQex+d2;BE{8MI1OKntI^b3z4 zfDR0L4sX5OS^~5qX#SDqM<4rFI{2^7ekJEJdn`jw&dVJ?X$LOzxwZ7@H>~{Wum8|m z&E=6@Tos6c?$&4<@-_w+yYRjqd`~^~Vwtr4p5?MjFDk>vZeRNL>B|u{oC^<`FTXeq z9<3|SKJ#$sU2FM3yN#;532X$VOMAqkQC1x93@Z1tWo{e{wZ$jEZXop&c*I|hSY3GRf1D=xZr>A--1MhE9K!;d%KTvE^AgN0+)x-eFgc%J^FO@QJ5l*r-1-2r&dxHV&xKi*$hUzWe{p3Xt(JE=LU? zlwBGKU3u=Ye@CuP`}lD%lRR=H&}MLZE~9lRJq`@f+i(9<*?;fd%k&qYV>d(_XWp+X zKe^%uW#EwU3AHe{+KPN(Lwc)jtUJT}-pSy0_80BrxF-5oi;chxwlQ}PbKvupx;H{dNG3}A^u~R<9rC7Zwk*2Jn zz)ng!*$Nu;Se&&;ai?(cASnLI2E2%_!}50EG-W`EY9#JHb!zF}cUW2S#v-=xa*PtI zyk4I_w@jb?YU;S>Dci|c#!Su>Rb9%mZd$gNCri1vFM~!+EN7i`N?GnoIpmQHiMr}yaCKmX z77|vD`{)PJJzJOOpM9EDTW+gIrWrv0$KUTNA3yzEB5&Uu!pDv(_dW0sWduz|QZLG5c?2!zeCFg_ zggtu>=hH%u7deg?H@5uw&fCk$r=62LcR(h#q66av%1`rZG1QTFK>duxxjqWV+^Uh(}aAk-uAUgPX@&II4kp$r*4 zrJV7}v&tQJ-JLviQMW*crLq;W*@3p!f~F8iO4w zt`?QI$cM6=wv`JC;jz4~mwhQO@>V`Ep@J;BddJnh@wYO9p&kiP+qcM4t6-%ra$nmo zX$3Vz);3Z5!O1M|v~gfGojWTkPvFuBn1b*4h?h9?xpe*I=}(vbg9o9XI+Xcy=a(Km z2b8^b+A-0w{*_UZX7t1~o)~B=!h2H!AY0RoAKWkpuuR+#vFecuCzfheS@zTu zWTmx|(syw?n1CqoSoVqF3;xt^>Vk67vul^~^J}jyi|5bg$iWqbDSTGzFD;`-k11W* ziMQRPiRJ7sU&xA12FO6$g#qg>=X@svyD@R5ed}QCU;cg{tMx~fyMFgO+Th)Q zhT{fqp^)= z%yS>ej~u$8C#gu{~RajfX9s4&vVgwpYnMIIOX?7bgP4iN|fc7lBq=({>tF+ z*0KY}r^+{6Hvq2`2Tn!Yycyju`B_H;!A@FeJa8#-wx_=H=L8X9Y6207BYh*0ii?h! zJkmb1k0x&Gyur1t2N#j`H?FuqTi^3*&Z;+Ppj|7oc`B&Be1wuR^NCFlo!a2K|8&!vvYDO6B_731|UaGnq0ni!I#RVm;Z=(?5v=jcG%aC`R;_iv_E8>{^gCoEvKJ$ zMj1P4`|Ngx<4j7eDoYp6EqC7eNAxUZtsX}=c`>hi1zp;xk9_pha_Ii=F4z9_N98v+ z-&9Wg=uu_z)IBqZZ~w@}OcsOYPbNrVmV9wcLms&xXES#3ccHT*N4jp#B*Vt?Hhmp4 zc=3f7L{4R%b%`kCSbkYLaz*(SAuc}#BG4Jo1HgqynJkiq#IA7+kKBkPm_(s1P}6Xa z%4Y7UFtJN6|0c(=Ex^`b_hS3DoVWkOD}I=r7VWocBTXz*+N7W&4dqm~e5&ct3Xz_Y zRS6^<#oG};C0iXxMUW7)QS*^kLW9hHlA#Q&Q%79iv24YfvYf>|e%7EzM6JzNvnT;# zCJ)B1QTZlZ%1F<#gapYj_~#05AKN|qDDoW1BS-KiXQ{eaB zvWy+g-6E@&m5Dp|lzgD?@OZ6`_w*u~QcosdNzydVGZ)5~9OzrAd;``+lU z?&VhGW*|oadL$rdA)+n{l1}M}-Huy4%0TpMQ%~H*1cmujUc=KQY;NGW`AOE`2M8Rm zaCw~U9l>24C$O+(-b>R;_pTf-N*_l(K6>jN%3XJGi8uEveDrAGQs2LTw0)=wVFQ5 zZo3`C<=wN&WO=Ba(eG9tRmoqfoeJo39bno6S|PW2!}%Kj>Yq@zZS2W69b zumwlukGS-2_3x|LR{Xl*ph%Gc>(o2aj(?-ANnG|+&_v3M@%8r0a&RoqdKI}zfd1qX zyh#fgkq(3E@sUX|cugtwjM&1OPyKw%d+bJth@6IGDHpdmOb5WEL#%}3U86TFlRo?q zoI1vdJ4EqrTq0jUsp~9F>cnQwxAgqPVK;2?6X^_Ugh>srVQVPtn zF;2?PghQL*Jo%~ArkrYE6C%aITmkfmkgT1&IAefGdIGkkJjZ2}^^~_=E{5 zUR$E3q4^Q)Lo&RZ3MiKEBm(@d3uWzm#9%Rd)y>JY~hNK-vC?Gp|Or zGS|qVE!p7R@bC+L8fu>QBwrGH%qz{}pQKjxymaFOIr|5wXV&fX9G9WMV zJT#CNM&j^61Ild}r;A>j#W5KRO84$;p~i^n)~j3DewV!x_x*<+$d=Oa<&5*rFW261 zOL_icUTx0lmD_r)?{;*Mp<9jDOgURWmWup4K9_oidE1_P!uXPho7 z%imm3p5lVCo?XDNrLUn!W>i)gV22r*m?1wl44%=yer=_DjR)Kl=e~d3&4j`lwot#y zz^emhtQum=ucdcixFyvt1H5Ka@q41Z%9KSfxwa zY0vs62#(`j~j7ryTg#}hq(gkPmuML>7`G6;i7k3gi+%iWN zd}kq(K-l{=P4i$~Lh~Vd4z5W-qtpROM?G>y&RX&%0n%n1{91J-b;EoSW^S?qO1|)K zhg~zu%HttamoI@hdNk#o=IzVKxE$|c_^lg15A-=qr$y-ce|2Eb)>h(|bC4?c0? z(dC05KDIpfp9i?~xI4760tO+Nvh!}`p?^KdS)0AeNvD4{a!voGtfHnY=bYaebLN(- z83@>Rj|0m`jy$ULXVuDpfdd#EVZ}1L7^YG0I``}!LpF7*E`GL3k#%K49yIQ}E9tUB zdDGuAPVvejUMPQ76gmj#s%^K(uBX7%vuClA>J7HLyMozHX*-PZuYL6!L}KeXt9~N< zrprg!5uIu9AN>>;9@girJlq&S2gbAh*VRP=@+k5~b`U6f7Pq*P4`c(81PId`U8eu9 zZ@!XYmUiXUSu;yVCIQy5Lt(^-;bfqc!w>y%VBG0sb@IYz^J~NIMvFEETduqQT2}Hb zDoZ#U)MI=$p>QYev|G917e6f%rtV!Hd74QlqIkByXF)qDqdxP(uRq*SZ=)W zS7jW!(Mbr8Co%D(j{hX958o3Whapg6+vo+wPB>bBuDkZSvWW9(SD=qP^W6@y6IIvW z@XIo8%8uo+C!eJZIx;E5KoJABPRuH1?qYcQx#vlHLb>s#>&hr#yEEwIrMv4^ZB-^t z-i;$Nb_m@We7C&7Ex$Lh8rJ|jWOiDWQ+0uLdF9IGT=q7&j2u3>oN)ZH<^9O)ocXU) zUeHaNPCB5y%TkVm`q?!%BFp{DtXb2`r0uq)YOSUd+qukS(za)xA?4yPpO?H_*DX9t z%ljhgqvlcul~KrnHf2$|D4{Bg@z*9o2gF|(a4^u4&G^*u*d@eU&rS=^r1x?>*0obl zMwZW>_l0uA(I=N(_c^fazV9JS;vG`55up;n-H=M3ZklSnOT3QtJ%D-LB@4{_(=H6G+W+A9HI z1_@D97sVGaLG|>OQs`(}B z=FLyzZ9HEUlJG(W-%3O8e8Qa?hq7}ez45K5>PiQWO|6Z=!FIHXwl6*@`|2dkYR_oL zB0Z_+4jHm=zMS^)kFxXa-16dcPcZ0+UC^al8h?BGKfRo$v=yUXs1AT}{8^U!>@t0M`V1D`c>fl5GI`l% z(xeO!AHY#9y?YNSpSj?xEH>7qf$J1{3N3{?Fs(<~#pfK1#dMy;qNN)+s0E zsKv3{PAW^OXPrBBp^aKxRxWwH{O#Vq(LU3TIOwb$hMZ_mSdX=9YQGW*^Su%erTT|x z>SO&40Pghl%#HGvk9q~WlUHp&^J#ANvy|!zbp!dR1JQ>LkXpu(J7G;Dal{20!s?x7 zLV*+e%(9L@u<1uyY2PXHVlWx}T6HdwNYAA7s{E1Xb8h}!6{44<%Vx#&w5lwI~bsLY(ZfPrG-(GIGQSJO^DHSHx&U(mEee%3Om*`CRZwdIwW&y>+4 zN74SQVzR1xneozdv~9FqeY%l8?Ig1(PWJoj9)PckE>f4p0-hTi)BKmPJ%Tflt*T&9&m>r3Wm#n~UAPzWP zSx#l(sd5?>!dF9rVg^0nq%O8^*M)jTif%Oo|5n&Qu*H{}R|{TI(}w^hPadlGUHqoK z(wTP9ySAL*a~FX}d8Ye>#A&c6pArF6{1Kn^#$9n%6ff|V9`87Eg44;MTE^R#0 zdd@%eLC`%9K3v9*+rHd<%eCBHF_k*8sf?UBB6PLmo|0paIXd>QV-!}EO)daJC3HH%&78L%IiJcyq zsOrL<9@}vQTi^ZzSrz~7GI`QAOa=@nLs(QbZuFRP+9yse3%N6FhduW#LxzrEk>K-X z*LUr~Ks>@j#$$J;UEp{tb_PhPeNFX)JXB1S)z#Pu`rUia?_)2&^5RSMsXAieZKCfs ziQQKl%76ib%BRjeuRQgH3lXbr>;g6AXC=GEzIpi-+4(b#quwU(!VZA->_VW|v4jO& z=YHwpGJNR3=(%>3MULDeUF)CvY#q#itC5#;zWh~$xGTpY^(^ffqgXg^R@ssKb)hYB z(WN$v@?dR=eOPlvK0rpMw&-Nved1T0=HIb18zeZ9KV`J_M7CT0WHR-{x}qK>o^65r zf~DY~Y(-^JHy_=WdUgO2XuS>&{f+A%e$`)C^pJ440%D!_}!05LU#Qd%J)1o#CG|0^vAir=_I1&iFc?)p_iASOdGkr6Xc9vf$ zGGF=!i^#=*M=QGVg$u6}jtqsL%2=y7|Sj38@G8gRgc39H_3Y@4t+BtA|OI2Gk=zYIL)9Abfxj?xD~Grk8Aq^P!(JP zh`ZL>6y_S24wXTd002M$NklNBXPsJm6gA0#@H*BjsQta?G zzlflXwF2h$e2vP;jFCtt>=!*m=%rZJ##}Gr0~0KU>khF^#8@DfOH)Sv3LRX)`1ljr z2nl18%fu10=&FyY>#jHiWt=)`_UJ!|PQrlFr*EHB%GVfx*~o>F3+J=llof?*u{4~8 z&x1y2FuXH!AadZAri<|3-f>Sk=IFyq4;tvP71ytygc~G!)1>hw#|0X?4-bG zaWzX+$vfmHnUg;nY)k@p`Kg1=*oQRk8_RG0cz5~e2M;fOhfm}JwUMmoTF!Q7jBRJ% zN$-_8Gs~*C-(r*nI=4Koq+o>!jO~JP(zoxx(!YN{R;{n4bHr*C&MSYD!T(nojQR6@ z50pdp+b4~+WHdHpQ^t5$2+~`H0H^QdBJajX;rU(5FrfPL;8t$p;CG8lx#dMUO1(*# z7^=)xJ(PdI`gzZtzb#{??ur~RzzricxMt0Kp3A`4`ih?& zpwbRw4|;oa?_Wla9Y@CsgN#A#UcGylm!5x)iK90dTz$Iiy8UF%x#XxR2HK=A8Rgr7 zbT4zZliSv%2bcd%DqY#tjD zUz#ziOxk)%&Tt$(ZZe%i2Cyh&S2xd{J-e*rSRS`3JAvb>B`?7mIeK)C`&qtfbvlP0 zmG$yd|0$=O@#%8SPkzA8Ht<7ZxM=xk*<08o>fozKZM0dr;nTz&_AE1*I2c98vuE#K z#9PPel1?1?v9ip5;aOnT(IM!8;b{v@X=K23P3hFDR~f>QByNrE&bDHW{29|9hwQJwXOPT7L?22lwST_x$Px`?HHu-*ss4n za6fhXfK1YK>d_t9VKqDD`t;NPF4z9z#`3WfKa9!G_G=(MWhg7lAAjtL^2a;xVgkyE)d6Mb zSjvV>dep`AX-}1Hw%wsT|HQx2;iUM}CaF)f>2nVNaw<<8XgK~8XP29=`x%{+y#u$N z72uZL!dGW=G}@xlfB5Kf;KBQs$&;s)O-z`+zzWm<{Ogf2n*o5%+<`EGJ5)S7xf7Ex zPygrN3{G@ruy=9F*46i2X)~-B)-4A`)-loQYS%-KIJ(^Xw|mOY3`(q6zLd1vvyy)a zgU_qVU{8kw<^5-2UrdK^L7umftIXId(1CXwe3} zn69p5cM$5mhaSa%;GfGRWNI_*b$eFNui|p*S7y$PZrNe?-OBcpx6S0mtT}Va%UmYD zgq;S1INN*B2=4blH+6*0d2?ozW#r|x*B27jo3>4UkR9tdl_dOxZm57a(4fMm4wBn) z*Wd3iM;>-inYiuV8HjKYz(LpfvtFjott|bS?CICPKgTw$DD!5%09G#OL_RujIkjvD zTUpD>z8*|$UGVj9m2Y2qN!jZ?`?I2PC9D2kroHV|=DzS;z5EW|y6D2X3w7iXjmUc~ zV(FsHC^T0*+qU=aF^qeOCgo_8)#%n4&p$=kv0INkxMH&t`Ln}N7ZIq}+>Oz$ELpp{ z4D21-)FUsc8sjVYStKT6eqVdBQd@=8GGkTc!_$%myx4>#3@A6Pzg17t- zF*H@^gr{xnqfq4XcVQn6k*c9m2+Gr z3hx>s40;U&tC8LA?4rBs`Wwq>r+%XB^{#_B(s2>H)cSHM=L6;UfB0j0-@ylDGRm7IJNSF>~IZMSE9%cv8tg`GaY)IOWQQQxu%{Y73 z?6P6?Tl6nF(#CF!-M~>}!1wOjvpoI8!%TAbFK;fGLmE!Rz=NcztwXqAn znG4HLfBHQp5a_=EqZB^(@IT7k|M$;w@IHHTtR?mi^m)mB#vQ;ROyz9lPp$XiQWKJ3 z%7n6!k?}R2F)Po*!w3L4Bnkl%kKmS#<*K}O#`zI;LEd)#FUnLF>3CV|)BkyhqX|za zxBT*|O!#JHG4VP?r;A7gekw8-MR*LKwpWjCeXtMr(A3AqU0UY8Jc}b>I0BEseD6PS za$A~}{g5FR@j+{_TK2&%?p9cUcqL3Yg0zx_^v^rM+L-Wn#rL2Q+aPC~vGs;AsoYkc zdGhgcd9Rxy~?8xJy5>)-S3yre)?4U zUYvQ)1Z=H~GDX%{C#ySkKJ`=HAcNW#z__#CJJJRY7@4Csr%c(IovU49pR`dPunC^6 z2mdN2tJoP!A5Bf;#K|i949`9OU^(P{N0vXZW1t&(8#{jMj9+wN0`AFw-jfyl{d#xD zHpj4G{K0u5c}cdKdTia@$Y}-tS3Yp)0j$8Ez|I6#;bXI?pFM(T`n0F%I;~)WqEFd< zcleI|`r^wkG0`@SMHI`+C~V{&z53>Eg0ArXxknx><0fxkUV66f$kLWnu3<>{sP31) z(m*qof&DJ*yzYa&J#f^pvXPw})1Q8{JoxZK+{3bSj&&l(K_o+f7!j| zsq$BA+5bP#u8i_gIF)CeeBzWo9m;MMyauOr2{~2?>ukmO|5C)$ci`%y4z?cX%~$d+ zZk@Fb=_d@3$U;q9F!g}uMm4Ky?FpI&b0rv5O&+3OT2uu=P0~0ai8Nx%w0`k6EcFvV zAHPYGUuh$K{S`cc@Tp1R)(ijSixBIhT=q|yYt|qHE+oQ?&_H$H43QXZaflNGabs(_9gjN%upCU*K|Z+ zYOTcdwY5l3nEU99||*=u3~(QeauBE#bMgGNg7fw!P_=vSGVl|~j?e8~o=l33#t z))6j4sy~3@O&qh`Y7p>mh)SHe-&yEHf+-4O6)aMOlu#n9{teGeCtFo2NGK6D5fa~6 zH6NijZ{n!=N(AFJ_-vT$e5TUK6y3>#Fy@P>R?;wE96U)oiTYOIgRkZ(aY6!s!7Y+h zeX>aa_yx~Hctwa$lh342BIcutmC!^A-^^*HBeT`UPg)gS{jMAc-UNnfFc6b8>f1XY zX{>7{R@pYVDbu(GmS$o(Xr!Kil1c&IDUZ{iAX2im;nBtXh z6=cOPkx~*vx2Yt8w0Qf@SW(!7WyQ1Q3A`&|rP=dCOygjGeek=|uzXAi2hB-@*M@@i;V{ z^G<9-b}2$GDWWmcn6y*Aih;I`torYc@%rZCWn~^6rCvSym+AB7m%$EXTF&xMl63N? z3@WR>sW5XEw=fV@2QT0qup3f-?aDDn99B9q32@YrN0jBPa@u~!Jz4p_IxC?&(vh1q zaqDJgo`GSEvUMw0BciN8SpzIwiVVL*Z9tD#SK z;__}B2d^?1l8S?*sdF{jv4&i+a@QR&Ey?Gyq*>J z46IRay0y8o!@)LIcDkC*P7bStpZM1Uxk&BV7p9eM*}m_psdgBC>nsBa;a3iXN7c%} zYc=(N)z_^0+{jJ=dFas`YuH*lln%X}rd;sJFAOBAC5)T0%kdN#ao%k)aopJQ*i%oI zo!O52{In-oZ9R!eHHL<%W8nb2*$#nU6;c;vBI~^YA??B#MdE@}`3k*oRMfmT3xs#)ZMqr? z;l{rljw`qS_SUk)UhiRW za~&(vI&eAH=yK|*rwYTv`0a{PH&j%kTQ*?~p47jX=BTa8El@#%DySAD1YX$ z`_o2y#`(Y3L%|cd#tXQo5{q&*=L`FzFl5^`hy>qop;;4?6mWqw99#;8D_r=Gd}N|jWPCibip(S*9+lLI$(t?=ZVwm)4m*_? zxlZ1D(6x62nUy0~2a_5V?=u$tfe zB6B2{L1rA)c7%5GC9PB-JCFDL<&LuZo(GgC{&O#rW;>O>{rZ%4JvvZ#_GB<)H3Lkq z(s7;6j*XS+uy^UvtxTG_Gi8gupbm7QjeG8yrzqTYW$ye}82s-WJz|?`3r10f7AtH$ zLJI=nje0O06xzi1vGZz=eco3dVbFC7yIP!7bx?6M$LpA1I*ZII;| zOz3&8FXBZVa{$0Hq2`%i>Y0NLrj^yv@WHdol_}c|6IVU}jlAQetl$qGvN`$~o?Fsv zC%}_|9B^!QD~^q|97pzKkbq zo*Gd}HnQo4r-sSf`U9T~ue>7rVOR#YKH|Ct@R?xP2Pj zf|<+kh(dcO{%SW!p4<|u^;G>E-cffGmOxylck(`%m6RR3u~xIA%H3ZqyqU=W=*qX| zmuqjnt(^Q(F0X|g%m#R(CVXS}aec!zcWbb>W?9%dHybkNgcZ1hj0`L`>N?{07Fpgf%p= zfsO1CHL_@GrrG4z_@+?@!f6|T^C(9+UGBW?m*tSd)|Pwj{vG!M(9Uzg`fBcJ88v&QIrgFk_jh3a=turZyVDd zndPTkf88}@;NVg4mN(j|*XGSFy$6pe2klKCDfy*trQGC@ysG6U%}s%XSJLRBE6b@0 zfY|d!IBA(jXpx~}Y5hjOM?l0*9s$W%gHRB#34Q#F?|+90fUC;eEGAH9M^4z9qicS} zj_mK0J}ksqjVKoQMD9_PK3=BKKEPV}0p)>tUBH11( z8wN%WaMkf0@FYyW1`sIoTVYMl+|*xQj8Cxb4MR?mS#9nPo!nmvf3-`EVIlz9l9{r8 zHC@Y$`}0tM`|q=Bx$frQl}~W~{j%l5%czm#()JEw@yM{DqslTCXt;Rk-h1z5Vu|*S zmF4{g4KH0sww2CZ(E;FJPdQD0>Jb)QtSb-v=U)u|4`%S+)%;HMAWP6`UG~T$@6(g+ zN*gULBzm+|xGK5AAiJ1F5jl|X)cT|=MIf~G#JmwlE-4%G$RlvxerrM5_ka(ShyL;B z(v9Qx29F#=KaL&;le6tuWYUuf2idU}gVcfl1qXQ9f(Q=XN{o zj-9)qET!%~^w8trdYDP1?q$TNk=O}6v1RNTp?|S=o}Dp`v4y>IPgr(6B)^npBZp4@ zDWm3p19!%4VjGG_fNj7g?9crNT`=OGoAYdT-|oraztP&!N0VcUNRE*)@%mq!5~l|c{-xaOYvO4CCoXxbFeWJgAN<~V z1h8>a=7xb+o+ww=Ph(gvO;GZxU+e{beM}*w6OiO=lPKec0z(5}yb4^sDlkw@K+6US z5y(Nkm^^`rCtT7B6^*-k)ciMYPpd{)4v3DL&pH=0(-c!Em0}MrmCS|AsDoq8kU@X@V zH71rsg(xbz>>(;v0xFg?sE3oXP=ZMxRHfSoeusf|BgH2FOL|spTUiE=vN9v@E$H%1lLYJ z5fYfdibZ*(ZkZ22WCf&`Rp!6+8JU9^86*L$pY*56f|fK3qV&LDyhc#9U@9KrlxvsO zIw8wQOvZ4IAOiA@Zk!qWV?3FO1hI02A}DJ+yfE+#OiB>!L>y_3*hYW|1qK=5RHp|Fc_|!Or7)!D z&o~q`R$xq)B6>zvg#t+fIo4*hVD5TH0fxx435$+|q%le{8!+J$5Q74Yx=AFNkE6P* z^dFg_W{U9AG>#3_P`x^nb1Ff?z0Rmr}Mbp_HFCUx8kX`nOqbtjZN3G zl4Lo)6uU&c3ciYD7JHFFSJ0tHH zD-L+^7BE~pav{ate^%o-P#^OVLijq6(#&huPiwa^K)!$RZCn&?-!8c7^0xa<+cMyA z5I}XwjRIw{wYfaTztVlx9Sy?9m719xMz(6cxqxTl z-IvBa>yKX8&i?vW+9P*=Om6;I6@-0=RfR8p@t`cd9Z?u@g++hVwL(` z3~KM?g4@u zGwdh+CRS2&A-BcWyg++L;L(+W-Qp3{NgCtzOp;CECd4ELpl)S#|AP;c6n^eF^U&*qD`4JGPI1^6%U6CmffRlWVwglCDIxyD~r} z3ErTSo{wfv<05!AD>BEJ{NHSg&D#3K+7j?MHvGYGTBW3mF?&5CCo-82ZDe%Y7j^#Z z=l-Gn+rNE-RqKn|9^5Qk!HT5a9{ZSf>3K`qQEz!?JMEJn&XWu)toNA0fxcz51{%tG z=4pS|c3H5Xz3-U!@N&JIxUs}GVw=t9$)ZWT+;w-J24Q<4COp@3A?wyozMJ78wu)N9 zMb0g(sCFXvRcuFf+9@YRe&%QJN4LyD4}F}A5bJ}!Z8z-%fg42dZu9p2Z~jX=@~C&V z(?9+}CSNygJ1$^rD&AEwgO?W0+ho_a<1V|<&MxEPgQu^!NxOoVL#|>n>E3(pV-@1< ztX{mWJ^RoBagbx1)Te9FJq6_PkiLW zb~by}U-_eRc_+c6+jcwdi2iIlg^{MvAuWZs@Ag>dMLG4#`h68Iy`42_ZoBw`%bOQP z?uVT52F{RHRv8?VFkVSJhR*Sm$XDe(v`#~RsIwp)5X#6I{`z=QEJM<g#rG9u5Xboqdj31-_SV=#!jGH%09=IAUS9p8RlSCDpU{U6vz)Xk6&l@TI-2e2cC-a2h&h+=Zuyrvno}|tH`%ivUty7W9kUm7V1NO>Fe6!J8$Euky~?<|Dz|L+WzwON6L`N zB>8Lm>PL~VYy)3yq3)(7(90FZXnU~+PM*kC-qNdte1wonfTk=}?!-it2#F;6!w zZ+q>0K*l=&NI%m;rJ4g!0L3bMl|KL$^WY?3L|HU;12o%-;L+ zwC+5fdYRK+{_4MMU;EOh@mJvNC-5W7(W#4aE+w#T+GdakgQ?v7-iQS!ZhtfbyWM%~ z?I{!06DMsudZq0}&Wsx^bEHfgRl)*{4(Q@`Q)#mte{|!hzaAdv(D$LIHT1)2vw6`h z=7J^7#~w_jd)epar} z=LUdV32n|({_{55A}i*d=w8k{@20Y?l$B{YecbK0FKYL3ZLs4m`*4%s+nM}#L4{9O zTZQaLEf>J~!C41{?<5yKuw;E>7Lm+moZ(Ud7zWLrd>(i>_tI z0-k1l>pPEaAO665WHQ>d0N1qWa!p{@mA;Yd*V*2<<^1-e{;JJmF2ScpA7bI*3dV~6 z$acauiL2O=VG?!T8)5oTy|`5kh{vNWqWXHxc=-(*&v1u z(thhN%1f5n8IvkExQ>woO}&JXvUH_ch5h!AX8g%NW5@!SpOma$*@?n4{9KvKI+lj;! zU`|@OD(e*@Tg(a5QX1^Y*;OA^o-#~{qJWYH6zdHYLcW#8zw|iSzL{8Iuwwac*eGfq z05nS4ChegHB$^6<#6rujB+@X1yP=eQNDp)1(y(HoRNSz)v6TXC-bPjgC_6fyDH><2B@={xNs6G<=pkF#zonsscbqR zh9p&ttaHQ=%(8kJRZ}&`qeMNj@3}?w>X`N&#l<&dhQtA5 z1|6Ig-|bUaD-&FeqkQfesqi29*r(b@PyTqjgKa3d+HW)GZkEY{jW^pA3?Dm%CY9%b z`yXT#&r$~J_cLjFKe&_I+Xu-fu0#1HU<8kR{{J}HZiN_z;_S$tvh2~7%Wb8n`i8569??23OP2qFKe z*?#D)M;+CUJmMwDg5JoRZ2}O|d31Eq}?Q(Ga3lgozdf(iY|%eEz?J8}KaV@_yi zeEQSvp1W_s#bX%Mu0tMfuEy#=OLQ7%f$>bd6HJi!n<4*W!d*6HB ziji2EDMPnxpnX__&8g9>a$;B@BYg)vMXrIbG5a{;=`bW62{S=EgMRv-St0b|7ySuv z*aKh6#I`q2X<^=V?BBEx{Po*-LIsMHoBfVY4@{z6w90ye%Zub2ZoZ?v;mt=g3C^k| z;N0eF#@tP~keb6bYV)#<%YAGOv-F_{8E8M`-AEpLe^UGW=l`kgx$_Q6OAW%I4%gzUw_Mb=M=WO%{F6QQB>osr2+<)Ia ztRTCG?SSwR+V5TW*tebf>C@U%*>=Lirw-Cmpug=)OlbxJ=z(jP+@8Zt(`P;J#qFH$ ze4Ca22jTB)+cj5S)}H^u!`fFq`-$xL{@%a-VEgDtKEx9@4?u&LXwKOGY(?fHAmXHYfV&C-G@3y=1BDX~5v(N_O`Y_9dNZWXPYy z3cT$XEZ{W7}h($;xX+Ind}=S8(Q zt$+5*>)R_|`{s7ph36s*e$G=A8#DPmhnG6eV1n`?CWw~s#NpzOW`{)o>^l-6tR2gSm=1fyi@;geUV7x~+n3My2SAwEXHtN@ zj%eH1+n-g1?!T+dI92=Nzka>FfD3IKU-x%*TPt6R{=yf%ynX$j&t%0lTWq;XnR1-T zBlpXA!p^;YY3Xt^AZ@=zs^cNJH)@s1v5oDZ@2k zS?6fELDeTSkknmL+H?NoFWR@y=1G~{2%g!lx#Yt3l2^R8eg2G(QRjHt423794bld% zgkNlCUtlDM=gJ%=IZPJ5`c56feB|chKP?5g!6KQAvM~voU3c}YpKEiEfN@rZjGr-u z?92Df9Y+=)HIpI<2yAr zQ#Qw>($5%HW#ALLagNq91giRy3QH~riYT>xual{>nb3a!@h9=b#!+p$?7UT z|Mgl(7V?Z6MiTS`rkfs7v=-21e5A3}r3bP9!pFT?>ZRjxANXiH_5;VbG?s}XCN`P) zo6Cym&3S^%mxOCY*fE}BEX%~wUANsreWD#$v6Oyi^Y*r*-_`#5-G5o*Xz4roV0mW8oz$Vr9{tqIG9*3YPHkC7N;ze0+eNI8Wu@n#KEu#CeK#3_BhPVO z{3nq9l`S3LNiwuG-arhtl21DSp7ks3Z5wY}E3ot(i>Q}%C47YsEp0)%VF~+9f@Kjx z^zmSj?$d=nu{3=~>HG6vENU-4>@c?KyE+S)X3yG$rv_(bGTnDo$p1HY-JS&(R?vMP zzkfUFCWCe`-Fe441-0LW@{{NG7=Wq-wM-qy}M{bZgj+$GzSPG)lZ znkz1Br=4+TJN(a|&lYPw(OgdqXbt6D9fQ@1`6-jx_L8LnlexL=7K<*5VGz=8x&6+z z&3v|RqwRH^<9Nb}%q$AS2B;i^X*1~#NA+2Hs>Z^eWaWtu_$CkB-kp)HUllFs#N-ef zR(wiYwO2C6vX5BB7;h%yl`Xg2vOQw!?b{Mw3VSo}F1Vhp6c_O1j!)rA&o)u3rKk)b zL$-%w+azzs&t<}W=4{_JXWzG+E^`$t>6cS)c$$K7kMC(vveW_OmVo|O%^bR6zxY9* z$d&=&{7}wN-LNuXUh$tzTck|Wrp#tM3LpAr7wxQI4F0Ic?$0~7F6SmR3m|A)Vhih0 z)vi&!la=*q8icYy1#a&>?gQ;_|MqWr*A(L=`reJvZ;Sa`!;5|m!#>FSdG6(gx_v2k ziL&MCJ9xS7G4Fg+L|e}wOZc%ToYX#e;`@2}^+EJm*XC@x z731WMXJ=ef z)f5kc1=drtY97C_KAIFV0j~OI;aKKHOCV^(7bwd#q|BdCX2BmA$=?LN0X0CHG`!hT ziz7lRf3^yB^S0;*r-Ge8*~qJO%gC%$9~>oe$dAEszSLFDS8Jkr)Sg{TC@gQ0ful~R~T)t+xX1t7NIY<^J1?QLO55;vW+)DRdd ztL;kJT5i%R?h=u1CzbQSA`tL_TenfMjHf7TKC0ef0x0j2VSG$)8XPRMoXU2cYvuKS zNfbi^<5C(kV^~0KUibqtMg4+gD&g)k85@8#u5H;V{?!?o;?cby5tR{)&?Gf>tI`wF zGOw{{2#`QrWD69Wz^wF5YMrn`m$L|^Y;fEcI<%1`puF(?Q^ zK_`uiyp%_n$i-hAQiI7e(ggsJ$YK6SYtuYBjRXl-VO2&9C7TF>tipC4gX5YO{VLFn z62K6*U`jrv5Yoecbq1~oRVsiPn3_($vIIE=GfpQRCY4m%6me-qw46;MrIj3wd@`G=qoblydQ05=k;}Ry$W^u;@aD8RRX# z_r7)=FS=Uz>zf!H-rXL-qtjb&wO!k7*9B~KGd}|>>8|7gxhCsGuE{NV>Ca(9m}w^l zWlXri$H_M@w0H`YJ^UB7L!SO@R>W=5es$f?+y46<(0+9Ow?lJ17e}t9iDFWYkLh#L zQ-ksdSHoC^yf~XOnTaP>*t^2(x*_fmNPN_{a^rxm8!Sf3aH1%%&$pZL&y+E>1dICt2{v3Na@XDJcjnT)2oAfc|T{ z?DEUouedN>#fl&=K->rTfPMFEFJcRu10J_e+muz#MT;$7yy1b3yZ~F{UM9$A*c*6G ze)m%5JU&>{Iw@ZR{0t*n0_8O%C}aMm0~G-vZyPd;LRi8|^vySUM4QiQn@4QBb-VAb z#cY@I)As9IZfQGivtY&PY5?N}kjKJB zx1h%l+PA*_t#&0V0GF^DoGTdw_Njo`Y`693_Vi~wofk9zMcaOBE+lCaRzu&FZraGY zZ2REEZ~RdDBwEYdhGO=t>FpWMd0{*E?0;|jJ>f}QxG!rzzvk-p=Z7EB&ivF#s*>YD zRzIHg&3|u~TzFx-^2b-T`|i6pk6&-I{Wk3>Pd%g^^n}N^XFu(U&|^g}JeTWxIKAai zH5!@JS$m+k<(k9xhO#y-6(d%vI;ywY7C3>fQ8WG{R4aP4p=Bnl{TxL_qyF9RpU2i6 zD_LR8yD-?U!8+iip{vJyS+t)Lgo``sulAnAYBknwu_yQ=+qSGCo6lBSz6d$agsrUa zUTFH%P;L$(D`+9ZY1FP5jxgriHgooZ+KDe6z$%cN0Tlk-O!S}iwQshso%QW@(T^@@ z5Aae?+d})Yo%VQCJM_8#gUR<7w8!nUPqzEgb~Lj}pSm42pjXgS$9$=rnMcmePr8trv+{ANA1$~*ypir?_GDsJ|Kjt zH?w%^i+1M9pZ%8<)~{E-{3XB?UwuGZD7U;N6FQ#xxjm5! z9o!=Bl#@^Ag@@a>rIg!L%HlUX&GMGlzM8%SAI0uI<)sK7K8f(dE3a%%dfWlLYSH7P3Onl?wjcd6uF4Jl%^2BkBY)qlg zk)TWB;elZ=Mudd;q6$XEoQ2X)9h2n%7wq_L+5u#gR>rX5QoO9VwUTP!-(^Dcc0v{2_%2g@^2k3qkU*!dm~S^bQ9-(X`DFFh~-tRKy6r zE*7w^q@TqN<6r#p2A<0LSNc)5Qp3;P4sFq|Z)mSL{AFz$-gB{vNgw^v6`NL_OlEZ( zm*K6e5SKma3TeAx+6*d|_1q^=uKmTY+Zmtxd^_(4=eMhW`s2EppT3oC%9t>n!%N8* zFfn!DQ=ZyhKplG$H~E}&Qtnl~&2-{6E3jc!69}cV?UT0DJ~f^yTiTXKB=b}s0fn;- z@aDbS9?s-Oghtcf&pZEownzJV`{55SXxA^ij>Rey-({r%si)i^*m=RO?Vv-R){gj# z!`c%bw|Blv#`<9dNbgi*jPjPWlM&o}e%iPPjT=^KLyooVD{Ol$ zXVFBei+R$BSDRjGfg>$46eRiB0;9xT2vj>w8uY6D539gY@C9g@>dP|7(Fq7e9aGOb zl(xb(CLYC-J)TQcnkb<@`ik@m+DSchq>P6CRwhruWJAD&tF77`XhWJP~fKiK-Ze&YGX#3?GvB+2Uc{m0-c*%zI$dR zTenT;ChVU)=UH59)p$?8h-uK*zD_Hp-&98Ej@vMtkccDpwycG&_%LQ3;7h*_3Wz>p zVVdvQ&Iw1$O<(XLz;||?_>t4vG4FU&+hyPVc*=9*cJ(Ef=V|jBue$;``ZHHdD=);; z&RD;wikiVOoKN1q?C{re17VxC*+#Q?Pt@{u4>#_7mqI~Zn@(Vo1(tzHE+%qdGokQ@3rF{JTbKIqaWMe`L?%k z1ESuypdFN7JI02@rRAitGOW>9Y>7JEyYQw!_lz(6Yy0|HUuzfs;2duFGp6gu)G7Gd zcH6c;dfs!}^Pl(p_LPGU$P*-1MB7q%WLuXSx<*#FYN7_1i_UG0IzcQTH+2i)LWZ~Jyi3zp2+Gf zOv+PPm0MZ?BwASYZ+f)>u}r{}M;qFP6!*gJ`hy{EY^-t3OeCqq;SFMv!dX1!pq#?A z+GME!$-jv*;;h_~OPZ;Kq7#Y6fJr;EAw*qc02gnQK;$A2U7-nY+lb7KN@~Q%$e@Jb zI!Xrcv}KChdRIOqu1B=$wvFh8TL0ihY;6Ia9F#wpg-#rpPAl)`;=)9nI?5)KSm8`s zkC2mzY{|eNxMqd$03(qys_bG&0d+La(jW3eK-mnb5EX>*uK zEU^&A_BVb(ew;mU*qlx%9gb*_E&0Jg<}QI%Iv3)qs!$^t)n5+~RvyG^;4EG2U@}Al z1(JLXi?6POUQQZh|9z4+IDn(iO4%rb`s;_%ky09gP>hL5gD!pjdS)84&zCR^Zkz~M z!vNNaR&q^M+4SVzz3K6=wx^#Cguzb0FIx%xnzU8Uhgmn$xv+fR`@K#&T9Q~T@u z!6^H-cE8BWy#$K1#W6MnGk1NJ09b7iyOTMYS-m_BAyyeM_|BKO=j&SXUGeQIuQ6u} zh66r|;Y4#Li0H_*oi+(iGmXHr%CBl~l<4W^CaBMB6nSSbSJmG6s254Z6L= zE$+7T^0!Uk(9iH&2lKgTrcs%Syze^Z1MP3#|K9d!_V=93B;s{f{gii!%x^dT^2d?W zc0#93+XgK!N*!Rkx<=jIerI%~ZdY8MuKJ2>gG8lH`Wz>hHGlaqevVyq6FojJaHYJx zNG=`aDlFDy;O~kTM;2>r6K&7T1-beFESWwR_^B{q#kkj~4?n!P_W>pC8wxZ=lezI^ z`{K*#rZaJ1S$cyf^*?2V4KvzRs*X&4dRi{5Y#XPL?*+edPG#b(GYGVtJZy919f+`D=}}-t;7an2mbzGeEQ#_y zEnuqR#faD+I;bLC&)`g&@+S>Q!(LchpQH_Ztx$oZH&XnFLLT4Wa)emu8S0!x7$Wg; zdHOPI4{tbH6Qrl_kNAR<$G4#ps{Cd0L0`nLq}^4D#jK7vbyhzs-^8v;4l3_93UpJ@ zW1NNWvHfv;LHXowR2dvs)(ts`CcSJjS@|-lf^{ADDieSDxpi$NzB!f2$fyJ@+re>P zR^M@-v##rBbwOBVIF*ZT`_hucvq~i)$q6y* zV%<USXp zO)ucnZbU_B222ZcP^N3pBl|*gwyb+Ht2iwS+8)Kg;q~if?4Q5fCk~LsEktH8Mod|e zR}(Pa+_NwBiCgLv22@wa>iYknx2={wYr?pl4Jls9n6f~=n1w&(G|&1h4`b8E2+%3` z?h2@-g87t$FH81`fi;ZHr!l79c#a-S{ZI(n__Z|lYrMN1&qf;CK=LdPeZtD6-qN%T z$&R?;ssltQZ6&-usARw;i*)jCpFpI`~igD)pSS)J^;wzjUv7{dXoe+p-t;>+3xK6X-j_nTjn z@vEz@BYq!q$yILDzSO~b!UvB=cHK@da~!f3o^D5(`H^%irBD2aczK7OSQasT)W+)j z5YzYS+F2kVq+gXOSiWdJX^BZu&t(j5y@Z_$3Uad#9N|3dGa@5Ad=Hp?n{~{wklXsX z9iZ2;c^V8d!Qs!Krf{3cX~^%*Z>4w4;H{+fY}w?Cy=9|_j{n04#Eb`sxuRctIj*pL zQk4QE7Y^{0ub#4&PVdbCjrgJfqhC5jLka+QsHcQK=<)oCC^ge-ol*#$6GNgyG* zQYD{rfFS~oW~sR0;27XA4fBlX#ACU-3{Dp|g@i(NBSPAC5I6xqHN`+$=oQiM z9x;Y~1DI!Mc;gAPoJx>#X|5*G*iDjVtM8%)LP z5ozZZP?x9VD0#KHc!i@uA`$dMJQ;$7lupQnb)26B(=FKn%L$)!g*r8G0RS%Y0vvgj zHT1|p9xt?wTL$W)tftE^PKcT_947--uYnf>fH9r`m-kg4`e9@|MEqmSd&79?C80peg_HZO3~=IZOp~KBK>M>|lp_SMZ^Qf7zi}C#367TS-~|h6j;J{O{xU$O0MM zQ%GqG9SGs?KKAb_5-*}$fi!DcT?C|EqAt4fCM#p812dSkweVf3VELyl>^?;C$Crk& zXM6zN#|JfT%!IG$ciqSGgpM8ruAVduK&Rrj>#Z1Ok(YWy-QZap>LJ_CtR8E}AH#n2 zr=QV&x$xSy>#lpYU3cHTU48jQ?H$J+-#&cYdzk32ZBT3s+&`U79{5O;)xQj|SFj3w z5{-Z_XUvlrJcZ#ZHg|BcVoav~j3zQk%HTxl)l-2H%zkwkcIL%h)C>EO6|63@4a)m) zZ>aTF!-6-YbCde35KOt*{UB;uakG1uryxI?S@MLDkjr2W|aT z`)CuBBbR55ZVEO^TB3wimV~UX9DoCl>^7X>iRvEVOMT26dqrOai{E>{Y>WI z)ssBYzC=TVG5U+VfR4e9Pl1FlEEFXNxaBM8C2tP@4N7*nPzWMv_FE}$@^WTk#ODp1 z9B>;1w@p$dOGlg9t-F%XRfCRK)>95s*=8X16&(HFC;1#7L=M{kCBVSaA+g&UiqfLa zX;<@niov~bwf`#cy+HM)-cy;GvA&R$GPYgt;@9_zXf}O)9V`2#w~CuRt9YD#C5qLa zyj-$sd}N>N3@q~GrO42*%rj<&HxLX3dbuEgZejnW4YK8sx-Mm+1DMGymz@r+NlbcJ zXWUY-CTAzH{l+2fzQy;n10Meec@g5zesy_!)V>F{H@@=l?DamzKG>PimN!~^f$HJO zwk%PMkqb9?mC-zFH!?W|(9Zid;?Ep>tYW~35CJ=R$K!!xKm?%{12TAe*sG2!kF zQr`sy>!|5Ok2IZRTZd0(f=fMM5eq3FWuk1^hA5Q4H=i`e-zm=+2UujB>Uf*D6I$|? z{;HL<%>;ZYd$zPff1mc+7&$v?C0_>KR)Wh z6qbdMZ*PUe1AO+sf0I@02eCElmTf)ndfIO1UE6!!@`m=(KYdQyo-J4$xmmw0`*;C$ zDRU~M=qvZLz-v0Q=xg!w_0;Jp^p{@ydRe7&dVPk65yqi7TXW+_<{^`ltbXvk$g3_M z!#?-8UB&fL+kW7b+xn(|y6xRE#@wm*jsfv~_tT%oP4uB%3IXMTOZ*&sc~Y(IylTt= z>ACc4J}tkJCm&|eHhDekwv)aqK)#L-6jI)9gSmPg@5o|2==hFx6}24{HUXr@$FzGj zr(wH|706r5)55;jXa(=ovVTu|#^f{)39~o;RBp`FyV2we!IC%j$L`eU8v7$ZOd^(a zwF$PdugZf=*xEMN@q#eZNz`;MG+gVvfR$TSNVBB_1YLNi5rg`5@ciD{=d`U@B;;Jg zbQ;DL>^AU6&wduPm~{8)1p0pG{=I=5Wd7>fKp9Q5e3*k!nDAh{0>DxK&qr9ifMF!qTQ1(gQ*wrQugP@ zl!)7q>gRl22nlEa!n+f(X;ykMY_=1?y4 z2!@_%#9>#ubCxR_m@|QwI?^Y_Z^Z_Jr1VFC)|`b1SZwH5gwmcW54^2OZkQ1^rC1Q+ zo0JGf1Y54>nysM9UmY{V#Da$(bYlb(P-J9V^1@E~9z<-<2A#AIUl`g?ka4-1|cE!_zc*dk9M;x=6E9u}|@_AI_N9 zc;HI||9iA(7zv%ugKYKkkXPot)LG%=pWHAf&e`_B^yEW>dQ@Wxpmh-0RY3<{Ds_-y zUSPz54tkhxvOb%G1gepO)L$7w!&1&_4`}>FF#ys49?9Y?o=`SS5!40%;~0+Hnhw$2 znK8+*$neiuD-cf>#IqM9+@+xGGPDu&7>p2uDpyxdTo3uwKt~x&DZ|M}4$3O)!Cuk1 zODcQ{M8$;>J3>j5KpfJufXOXD@~ZKHLlEE{8sPCs$2fq8D(HN=fWaN)sEVj-dK7*I zHI|NFX|YyxB2&n) zUz5Y2Fr`Vz#-*Iucu@RL!&362Ux+AUQP&kmCPg6U5z5ZN^iPPK0z)Ks+{kxppzxyijqj#Y(0<4VJ@fKUSXttt z2o~AMl~0PM!y3t|Cxrl+>oht`bi!_4Y@}9`<(j%Fq+2e^pYjD(dE>{@0biccoQRe& zo(s3+m90n(%+OFtJwB$8IXv@I24xqVu-kOFBG3dMue0y=NsTnH%Hafwg$7e^6ijy_ z3Lw)Q9Hm}&8^|F~CUA~_!lPs$F2mSK-3SVkxB^9cr31d(fxMuQox^jHuzJJ>!kZYY z0B?q(hQ6@qhIvg1g2C8FD0Sn*DYC`(gu~Oc;2>87HN(2vg)r~G;GrqhJSLfN{(Ue- z+ChYKqQQ%FSI$`1oY+&~=?qSNnVPa^aLH)cvYp0-(0V4Wvx=6u4?pWa`auSBItayX z$>-2-^ie4RSRvbfqs9k+)KVP4imQhcA?gzczzmL>wuXxgVS)0+;>z^B?|rN7zt6ty zo@L9~8fZ#eu;&5oqaQq>&7Ze%d+VFun3b41x2xa7+toeLugBHdqtr%4S)rQME~?RW z7D2T%fYRB{6(DJafSe34yY3m70AgD-+0~vX#5IZHVlXFJs;ybi1d08!aM3liv~$T~ zTVUQg%A)vNM!c7RtttX9a|~mek1cCwUurCwl${0B?MnbSu@s~CGbWN^xuvm(juW-@ zm?mkkanNbwmBFX9u*C|}rf}gXKh4H-Pw6wYPAO|&(RBpYQcl_HTXH1L2`O8M;E?8a zaA_pH;Bo?$HZv1V2r)UU%9tRg+07GLkn!9|WZ zJ4by$nM^?qf)3ItUDND)OqYOVr{P4PAVu>SAcTsqb{fj$e&6b+{K5PUJ(DRoPMwAJ(t9k>x~Y@gvRzdi)h1myQ!m@dxl6=g|sB79@k2|MKDAAU0CM zm>7yVx)0f;3g1zv&vgr2o2d6nwh;*}kwVNfdO)-K$GU0m6AWQxF@~5o>jcxj1}a}# zR&>*nLex+_RYq7k!^|D56t8StdgkVpI4D#LqtH|Qh^OBW2xZ$7%bQ%%ED<>c8vMXi zQu0URjrdd7g?w-Bizg_j63Fm>p(DDZ??m;7wEypB&=(LUD@-e>hl{vU9l#x9a@w2m z3bmeghb0RfT21*#RyId=S+wUE!|QTz?Q3Y?RH(?SKk(4a`zByCnSq*fO*46inC(#n z9nCwwYl5`zRM@5NciWWrjn*Il%PGPYaiTyzOKFKb(Ey$uU=czSRy=K2-jzUN%9ws;I{E97#j#IJ z$T<_v07%{9kVsAX!VB4Fq4Rgn`%!z->t5Y<+3hiuFS62h-h1cG?FZ+b$8{PD7jVg-7@&AYB7mghSZ`f|unlAJa6wB85iuCr5(?rBj1h zV9a+l6%(P7Qh&eWB?l7hLSGW8z~FXzAj1;+DQ{7cJ(Lv%LYk}yCe`L#80(i|w>`{L zDYBJ5^t8k1aIC1FwAysH~pBiLk)*CjHCjzdzhu_WNb7&C|GTzKgi z64&q=%d;txM5@6tRW3QfuW)drqwyu7P|>y0BuiA(U}q(!WKBz{n4uD$<;l4irx1#k zz*VRzE?QTD2`}) z5Wp$hk+TAfI;DbT#ZSHbNf;h+)PcVOBtIl0M#?oB$e156;b9?iRB3^yuAWGaSM+dD z2PpCRMbu#Phy6kcId#RO& zrJ>C7jQ%wVr@xgsMo<|HbkfLYg_Sn>{`74=%B_G-Ib* z3Ko%A{p5B@4jjB-%IZV)2t$Q(Ql|@L112JeXXR9es(@Ms?Tp4|YG#}SzUBrt?MQ_k znn^?3R->!0iUtD5phn>e*6|=+ZA_<+B4roS!K-$QQUXqU`%$*g4&j0`UHyhmwK{YS zMp~FlK>5diN|qnQB3EFA?*hkeP$oWtmFEVr0E>{{AYCM!h-7$!V?(@&G$-c#uOueq zP6&=0WCD{Re?rp#5{z;HdX`AaYvB5D=pnt%RT}mGaL5hg6Yxi^ z2ydXeNa51kc+1L*2mMj0Q*T1nSOUSdH;m63qw;t$WjzU9!lf(l3G3r^gi5a;@e7k} z#)OMcKnp4flBF!}iK^f1x99HdUGIHQ`^_(|Xk)B0TFzeHJipt{`sz0#rzA2VLHprE zX(tU0-M4%%H`vLF4^uAUD6}>x--l5Wfk|q}U_Wgr-I3I>kL{PjNiS$th1i(7hF#P{ z3`7XNe_<&x)A;04QnumfgiKm?E)IE$!pFFY8x~O>gKebXK+3r3d`l*2ru|T~p)8Rl zvWqXKQWb`=$UZ7Sx09e0xXSPXHDL0A79>C|SqKp%VZ>Yw>#ZeGynLYUG&h zW1#E)_qh=fg~*XO-@3>~I&2yCmS2eqQKc?f2ENs{ie7dLuduW*NDqz)T=c2Cg%Mq# z)ANh5m@<++Wo91WVk)`qWi&F)@kH!cFapJ%0;8`!98%(>Zb?>)6g_niKwZ7IH9ddA z@JpZAVdNS8kwVieO|4=OOaG~(WFsv~RsUOl9*ZT}CrDhKZ;_Q#DpT1h0;sT}!%%%3 zXNg$+J0pyFw7==o%yCMmPnZ%UVp3{Z)fM_8MOJalaz z^2CIK=fcIh1y9RSIY>V3L!XYHBiqe&9$|JJK*q>Rz3X=#Y`-{ZX zS9!q221!&&3&V)$R!k<}Bw<>SDLz`sEdb>st06zN#W+9F{JG^sWDKC?Mk>6(?6@Kb z*^vwtQ9=`sPFT2LE5+~|XbfB@;u#*&Id4d2!}!C|enakmHt1@eHK$-I$uU@bmZ*m!TaFmY-5+-x!Qk(hA-jLVP7v zsnWOn$IHfempJ`%=!goC*7ZpF#!y8s#xpPSnJ-@e`%m~h07F2$zZpzG-onL)g_k+! z&?FoP;*vKn^$y?5!acC9m!azkCc*0oKG`ptwh*~ABd86aVQL8mjA>mSYidj=WhXst zXd*$7${-nNkS_zX2OAsddKU2z7N#p@gPgFq{t!e0vH&p`4t6-9EFOs(Ah0T|6-eig zQ*Z<+<%^=7O*vZ`K<8c6BZ&w`bre?_Z=PZ~(l)kgg1 z8$2_e6e1GIC2mZ130gA5K^DSqazaRq9ygH6)}{fCn4Z60pOqsTs4)y zFs3Vk5h(@RfU%q_Ba;=>6-ZTb^3_Bg)d^hX62}5VkFp5iu50WT5dX9sxEaI{N5|Zh zi+tj1S7FM|(v?g|gJ-(&sxPV-D{@vM;P}PvhNL;6@rr!`5>ABz3rwX*hcwXyz=q|s zLvE!#EinQ~NjKRi08yo=$1tlx* z)q~@Oq)UJJO+*~h`gub#rR0z{5$!(+58%W3KL8yUN%jvrQnnEBJkT1>8-hMehY6Ww z@v?W>d^~fY<=JB*zYQYEfJdC*;etxrvaO$Z@$)#N_BY=)g^5tZK~HN?Oy$eZ^z<9> zkWJy4fppL`E~Rm~3NQab07lq;1fKN5tn}_;p_w`gpFy>t#Z_oobU1+BN<^8DKjz(S zul){czr6I4cKffcYJd3rKW`VG|Gl8-w^OOxskU9lE{@AF3no6OUn^~wg_G9FU=k=r zSAJpYC|i|HNRg-*<`Wz!2iz=w;zK|lMoFNaYc~&5!2%{EWF#@P%sYo z(?$sgyi_}tPz+OuC$&g{Fdk1^jNG}1CS6|USGy&pN=w~WA#qKNz~o21QMBMY&Tu^u z8j+xrx1Du-A}@}x1jvhk^(^B`vb-Wnwg2IlHruw<3^ZkiT=wRvpTec@GOd^r;LxNM z0#NITkX|FHk`r5Eexe}ZT6Jfg;RrzQi@XQ`DRQWX*$C}f{Mg67%{Y;?#Zk&SRWn?Y zOA_a5tC35ZQHVUE83LLQu*qFIF-78B1)?Sy4;ZK5+|nv43a32Kid~?izqpc5^zb4r zPgY?2Otio({rSiz$(Mf_Amal)kfgBJPdwCLI9aaaBAgVH`vEpleJtu(&W3@B50I&( zb=5N9lIztwMu7ImTpC~X$mge8=G;rz%TiHaDC0(TtF;Fvl*eIaaa z=p&mSpYAy6gm<^Aul;#@@V>j+^;ccoUU=9M?bWY3JoPaXJQ6I%@JTZu)RPBNEdKHl zJaUvUMH4#=?5YkFSAkPLq0k{b@$07mMhp@{CFNzZ1B~skk^vVQkqz06 zOC!K0R{Ihjl&Ob#K2cXUl|(Snn?~l#TdODlVeA}t&%jDp>NH2x^$&)bOg9VkjCFgT z7#l?nm(q|;e%dMkt@D|<(|F|ONq{1kco;~K!|N6OC}d4bn_wQk4ZivSk&kKBQWkE; znxuIIgTGAX4u(sPf8GAdkkyA$!VWZO%Bn@m=dGK?Qxa14m$HbV$_Vba!~l|de$g$GMzhE=LIz^|7{@8x zaSp#bN9>2?PK=HdFR+Q=6Z0M(R{7y4eQopGg`SW;*roiVEc9@~6XO$Ure=@RGAsPB zJ>iUzl*bmpJgbIcS?7lSm~fu(p)NW0yZ*)-+g-o8vHj$n@3xtwOYI^}=^_Og>C1_glv)A+Y4G!AM}_#8Hhh#-wtN{g8?pZLuguU3|0D}xdQPPC zL54uY*7A~2=PYsZZ4K2&LWN4iJdY&sXB4KPMH`ZHXsN3}q=6GUqVrMbH7wewG zUD7t0JEQ&MsVBGXciX!y*meK*$x}{hH{Nu6Zm`x9UbL!dH?aXr_}B1$scdDma#fo< zODj!kZ-4iR?Y3KPYFq8N6YGOkKzpn$x#za_-uE4c<=hGo8Jzg1(N-#P6mO)T4Iw$+ zkg1yw#3HYH&^`$mTdA*jg=|0RQ=mX~VuBHtR+50LZ}B56eQ#oX>?0?%g*Pm0v)B&t znjfFv7VNfHJC%L^1zh7;8BqrLsx8KP(oR`(magL?2Z)hT>k3ox00^cWaga!dI z37J4IFUSjTmSjBVQ{h1NxeLP?8-)Q8>@vFHfZ&m}+iG|+L3?RCKV>uU90v|E*IkYh zTKWiJ-=Q4-JYwHOs=i9AjKZQxZI*cdC(D{sgw)D#od6`LvQPlexwZ5YrV0vkZ4h5k zTJ_|p|A}(EP1FEj@>9WRv@0Fn7cX6PlVtqf!gZLN+}mDbxl64O3d^tKbxPT@S{ z?J0D@Hqg_|NP8g01Q~^wOU+yMMZd~GT6|l3WYFDZBt47^#D5N@fJ(;u@{w&M2@PwS zF%{{g1&Dmc%}s4o-p~hH1M!{Y_P>3<42(98%kv}BB1kda?R&`mt5;kJ;9c9JkAxe6Ic2&cgzFQsWZ zL7YT&0-Axo%rKsr9^&gP-I?U)CzRaRyZk8=<=_AH7O_^nsyDRA$sE>N$GjE zL6=U6mekO+ONcR2VU?LYzX~iZke%Gt0=YA$OhKJJ_jEfD{$@oD9J<(#45nNj!4+*MABILXwfG4tSZsp&2S@UUh^@o)1ZRN<%z; z!pYIYe@&VY+g!xX$RS=J2-jn^0V>%Ek{o&Ti^zb$xx1e9PFoZKjS|*diVEk!uB2q( zKs*!6;)_7pc=6vU6%S}p1u8B6IA|eV%B&l~3j%FC(m~$p4rbY&oDQq(>uj(~FklKR zH$Ai}2!6DY<)qxH8;Z%H82)l$P=!_*(i6v%%%RsxBI;W8hnIt99{Gwu)c}>@hrI z87x#2P8dxZlMzV2sBrKvPtt~=RHXPH{Ji*D=kz7ZoIEO1)eCTfr;eq+-GIHM@U@aa zy8cR%_!c6+ zY(Kf;!uH6W_h_e_{!i^2U-?WPTeg1dvqKvemdYhD(EKTBU^rKDq)57<@Eq(B9RMU% zy!t0#dlQxU*o&y#=35(>f@;_P@M17PB#Iz@d}-@rn^^dd$5hPL(1 zkcqW8pyUtl$e@(Ur7m?Yj$x8?#jmyiB3-WW!JypuG2V!+6-5I4EGEYX;h3}@COd5> zK=CgDX=j2X6&Ox&B93F!=V%Z&Fh%A}vqcneK#JsM3!f`>INJG3f<)V}peG?H6(SGu z0#pNc!zADUnnrs_eK@N3Gaq$zk|29&B``c-qMeKmK4jE{Iul8G0Du9c=P!AZu$`b6p5asK6l?ff{@k+iC|<)vxfssIARQz z(Fz;S)>dKx4Znji3z$yoy?8C?igTL#|(hzt@GEED^MNn|Ji@)R6B zOB!YFwCe;d( z;@hup+dg88ygW8rvglK`DKzx*D_)%O_1L8Q3|YiGgbpN*zG{*=@!j$}ajj0}>i`2I z-P9T~;>BFB37z&!I;tZnGP7qnx|E7xKpiT-&4g+(1>SK?_jCKjd=xE|px?(X#48Co zAt%L9B~e*yJB??Ypm^gz(H-JjpntZ*_`CgTov)saIa(n$--q}8U;``c;d+p7;V0gzFPlVjQ=+|v*)|__K>s|$Q zCy-gSPbk7EEAd)1XPR=AT{51DuE#bBAY<8R1IH^4BiOm#O16&*2gGmUYDqIKUD{T6}bR z`R7m|VuE;>?tNm>!pBk)#T@s@*8Uwfq<|Avd88_G#?&dRl0`Z$=9cz=n$iF~M+jE$ znJtPsJ+spvVQ<}9DRM^G)H?B~)bWi@dyq}s(y{&(GO7ZQ6nW$$q_D(Q#7;RksRn#= zV}OFv7#`9S9)YS%17!vuIFKcuc&K8g@iD#dt1XHo_;=A4$3y#NtO)H`MSmkb@+*r! zBF2rSNfsgiCK|>@oIDFdfS-~X^1s^@-d*CPS5CK8cZy2uWR*YiDnoDkq$^ObkEK;l zBf0S5q97WCpX~sqw(w#ipg@x*f0=ak43J;X#W!n5NRT+#2vClIG9g~9!$h{GaR41D z)JHm|m(pQNE*u2!B~T7E#C6;{q!T4bsMMrH=5l`M=|G`xV@bXUd~=(FfxCQ7uVgbA zQg@+>J$We87tw@wjH?JD@^$vWtD?lx`6>g^l#g7>8_^fWl@SN1ixIp~!NuK;lxM~zd;S=~m zSC4{`GijY>Af;uZ2YfRT43wpk$p+IEdL*ONv4h6X4-09e7#>}e9pKoFKXnOzQiB&d z{+Uqr5JSHZ&(&R#KX{dvc&G>>wB^uwgiz6wq`6)Q+L(E!8s<^LOzi_;dP-xyrR#2(Y`2(nyyRlH08$Kk4MK zu2npBB8>!aCJpu>tpAjoby!5OHVarfrZfU0+45>~5YnMfU{b& zEf*7>Npg!6T2E-R7p5;}Bk{(CSGOZy`BKPCb-PRv3K$yp$LcQiqFFpbokV4NxUS~u z??LKv$T0o815RW?XSyxgv3eRpB+@wLFdX@dVA))m$VEOOb4q7Rl0@a< ziR`GY4kl=dgy0QR?WJoeh%`hEU-E2kr5>M%p9mmL@FZ#(2qCVBk)Kogrj(Y1^UHWk zoPNlw#tDTlShxkIG>=Z*@eQZ7mxSdPesI@thI4o(Ei8c%NBAzIC$-ZKCAa@5COeRP z`XhZJ@(ViXD87Ch+Q}e9|7wzx#O9cn|G|hbFERARlD!~+BqLxw0qX@fZI;6H{P;TZ zr8@G5xigWp9D)d1(XNh0rMxW4)jjest(`vaMQ;132y03z>Mynd75R92AL{GV$zFWe3N*Xdlnj> ztx03BO-tiOIR0!l5(y?6f7Ql{%b{%KrJf*Mjp3C7ni?rs0tT`0WfMMOlu7w@P9$T4 zV30TH;P@kB)!;+M_ERVU0dnFr79?)dqJGAs7W}KNC!GZGGC$I(4}GC%7N~kU-!{lF zjTaTKLZ{t!+PWQe^k281UvUBZ;B!M~d293MZ{IfEVt(6qugA0(y!0>HchCD_TeW(1 z=7@YLuv=9w=bd1m`KK?pEw|pGopQ>_ZTCGN!=jUQY~?qjEm`tVyXUT(+qvI8hbR5G zSp?H5>IOf3qD-$Onq|YY+ltty#D?T+#SRfOSHDZ^Xokv>X}*?}mgSPod!=iJzGtrX zCr?P{&(?5(;}fH+QwEdTKYZ%Lyq6K*)n}dSRsd}#iJ)mi%cHmV&@)rMIRY*;FrG#S z`N~CHUoz8iwz3X=Yr+BGPq{Hb=Fk9lyl#Ic=g@I{hCs!&KyLE)2@M;ZY!OI91U zk^LYO+ob#?%%PwHEAtSRa~Ok3z-)gxqML+BQU8*#=6a>ePkzA{Mx&TcFwn+1%*sJj zTV&2vIOz$a9-VVg0J7b(?1LKyI(Wwk*Yd~Cy!=#~2ok!6z=w1^Pg)VK|CeY5+Odob z$zsPBOdujW+OhBTW+KSEDYzN9m>nHj~m*_eenuJ`s<HB3{y!reqT`9e3#Qr`;(RVar#b6J;jQS03~b#Xn`p#X0^` zHYmPUg{&UX*D$7b4SX3Q$fYLv(l9d>3e1#$z=M|tr4#^GJ|M_XoPOB0#XivRtR4IT zUh!lO7$u_&?O1%w--|D;9eC2Tx4x8#8uDFrrwCQ15+|R8;K)i*NVbflP~y_7xEBq| zC`_b~gulTTJsa0PzzLH^f<(iXlli&$2P6#9spN&WxWHxqae1nX6r=@^DRoH1T+5ko zq9Uu$Pqzz0z9%g|dIcH@W4((i0^^~D96RkFBfb=|p zzA{fZHsC$TKID(1A>)65Hvvx64WjBj;Yj_O5FZb2pbg0z@*9WyEujf4^z-q&M}?U*CcK6x0oL+p>=?ACu&;57gtw_>g{`<~ zmC1te>@q_)T_ZSYdj%8GuRd(1NhXl)1iYlIb))UT0#W#Bg8(QJ!pcklrLMzPO1r7A zZHhLkep0Xw2Wz`S>yr~pS&>e-YP;!5BqAwwicO7&VP{tDVQ&@9BfT!Pw0Dz>&&lSyJt6Jx=qv{4i^ z(E0!+2U-tA5CjiA6^}#&&x<`M5)TB6;=j-Xu_r=%On=cdgIE`}43qYkj}h(|xTB5Lm0L!A6WMWFnPS1iuC`uwU~-}!?6u1*lpXd)`FMbbxp#Qz9_btlZy zXioG--C?L*+8hQY4==lr5CcPV?l&AQ$>v<$iA}eGB#^^EAJ8K*E`#=Ye0nh>c)sK& zhxrDL-(F0U5!2i#YSILwZ@}twQfJs@(L>HdJ9UyrC0##{A7Z*1z-V2ASB+mYn(rP1 zKxJO$sr^Goj8*fpd34aHav&vVP#3@^ley^rW?J1lxwefBfcZL6KUx0k-}b*KeZt@5 z{YG`_+*+f%_M+hsasPhty&mUCKF~v8RcTFVd$bh>?&wBA82?_Jy7?2>Zv*y8!xNJ; zRU90(V?OVim(rh|@*4*DsALUY*I)Zx4iKfOK(kyRG+gHcE#II!??DP;j5g)9AcPwF zz4^3W>GR`nO9;NtGxj1-$|}+Di1%DvYaEIwGzh`sW(BVOLjyo!vM%XHNd*C^>nJNWaL!O4Yrvo=D2)_s%n zqI)IPJlNm4Z(mdM<+P3C^by*9EVA^&$t!cM4CDgQR^Skn(0vmLz6WfHp{ ztGgFOdgDz1C-dOkxeiAnelryX=}Ey|zm_lSJ!T3>B>VK=6!_-3{TIAy@hVGK?v?*#{i}1#?GE7# z0(c6%%ipUXiJMI%Hkn1|TB zm#;1O1t#s(Z<+-%z9OK^*K7ISz z_xMIALjUof__??L^iTe&xBu z+l=QmU*Z3?d{ZARYK8Qn5)#eMXr9ck*QJX&WB4Y%bSHw}?%#_=M}(CQpBk;soF{FC ze$LjM8$F){?!|rh_j+_-g;>*`4;ags=VK?QW>0<}mh@f`d_CX&$$;jserppE9&%cH z((-qC*6*^3fc|*@%hyVyBbkKn4AaKUIw z{necnWL_2N#93d(iKy+E%g?9#0LE=tGYTl_69lphoJVr+$~K@pHC3AzU^gHtlcPlVE)lXKbxnW9;CvGlc1 z0?Vz60Y1*517Pr*!gl4k<_hKyzM_L-5SA07km6 z*g8@_N3xY&bb%#a4i%tgacn0&HOZhgnYeEMlGjFj4=pRX4OKXf->&l!TI|C0G} zp3Pb<;iQOjbKzpXo3jPD**x0XIk}jsxagH6nC8Ys%g;8uNgXqJ@Z3n}!+pYQm1N~C z25Z&<7E2an(h04Cn(j)Is@V;lN<+wHFpwsD`3ZX4x@IBJ&uyR-a&tL1$n>MMF(r)txEjy2K0?msq)OUG;V)R zyjQz2oG)9OwySbQMm@(bB3^)Zf*;8LW-?!-cWBn24ykUp^ToR7Bl`%%@vEP&%2)RP zm-BUO^J9&=#@c;g&4ufvvaB%5s5Q=nqP6Q^CBMCGbFh`!wGhnhKiloB9kZ}{6HGnE z(V=P%viqb)bHm_2#{Dj+pP=(Kg#C8pM_>C!`<5@s^-VR_fNRLW ze3RUpItQ&O?9XfcvuJ6@C&yi@lvS!c=mV_-I;tt}f=zxTV>gy8(f9AwCubiVkonQ_ zY3}n~JEXFAr(1#%*mX}c`s}s(YU{Bt&@Vo%jg#F*&%>_e<1BV~w5@MC*u*)19gsae ziNwe!(&mi3b8dgumT@aYOU-%VXFJhkORJNb3_8l^MjB2SMg|fbW1qM=iP=K@tGt0} zWD68^y46|v5RUvsbKhQm#wV9ON%wkK0#7Z^1&?~x_1W0-eKBZG=HrF5Gd{*w8@s3= zNYkk>=o9Z|LYHS(yj)O}q_{H5vAEequH+LtSdvYfzD;9Ub*`Js0*3RV(_AXA(9s)` zHl%6d+#66ly^tZijwunpZtBB>Xd)DG{_8k=)@QE3Z~nN5DU-M=tjX%6h~P2Tz3?`7 zlCzG@2a;*F)^c_>yPv_i)#~-%`anaU`Dx7|E==<&K8`7~Ckit7B{$+LSCHju^)^6Q z@Oq&g5$E7j0`od9z&CjT>9g;BgNG}Az7#LHsmxJU)R^+in3^NUC`IMO`Kx@2tNCTF zvZ<`|me_pk$tL!j=i|fHG6)Yj^oeP;u76~c^<#YdUlvrH@nUlgI~r-Ir``a|rjMY$ z7(sTF(?9cMlXtqUQ3#6*8zkT(WVPiUv)Y_e^#adz=<6k)YD+M&cx1A9vBx9-tqO6( z8#!NOOHYm-lfg{%f}Zz}cW+-(v2$#8uNxRxmt)m_@W(nYv@K4j%j zS3mtGntS8*Ezi))XL2G&S-LgixcqR&x9qr2ojS=W4P;vxods1r?@#G0>k7;l&&$a} zjm{|Lra-~4NHLY3_Kx3OlNh%Sh1J;EM_l#(8rMh+eDOyt^GObN(ntIVR~CJ6dea@6 z^OBdxZ8Xt!a83}q|2+Eg!aepkCrO93Yq^U;RAL3{uI;W>Do;E=@r04`G;Vx)a~mbS z`v2Un%H02Ab!Cp+71KwXWV;te+M|6D@d7-A=zIwBMKZ7QU(ioQ93J_@p`2f=d%n6K zj<2uMuRmAz@ARBcuB+X*wO3M8+sg*-`my<1LHoSUlVtZI|MI%C>zlEkef^`iZ}=@O zWm)Im!*oyJvV&i37Q?CQHZhqfXv2NcD|S!lX3uStUYNT;pbN(Qbk#6U_oN11-XhfN z4hd6_?se@UtS`%x80I2~j z*?@*m_P07%mF85PLk$OkUf1En8Gb5Zw#=pG{GVcAI56+ny?2%F4= zZu#e%zQ_AEU*pB_U-(P^``b_d{(t=KfBj$nhqs^Ne*yf&kN%it@%B&t>>uVu`%m6} z=@)*Hu)g~CH~5FS{sZ8D^k@Fi+c$pnn|v7PN0_GXy#4swH{SlQU;4$j|NEE!{M#S< zxu1Lc_y65L%JT+%z)l}%#kS8oRw3?~{OFgDd?yZmtug&y4a$_}F^yulZx)BX*rMUwGBJ{yk-20d(tib1M`Q6l<@EA}?asSDx#rI~+Rnd<`gzH*S+>ovSC$ zMDg1-G|g3qHB|ZNpL~9Hy%bj&tdN{uzjRKTo5MMdc0Z+Z^4FI66N7fHe|l(>TspLe zkaXQFL@`=lQm=+OYUy3lDyp@7NaMHX*peG>epf^C6yN=Zdc7f}sIatW`es2|o&gYK zH-&w@iYN8{MOZ&T+jFSuO}W*aG30wS^t5dxZJEZaOva7JzJ7Dg zx9ioZSLm&lfLU)AsJZJMTniB|OA4!90Fk>n=j;ZscZCg-q$(f~7{!cLD773}-eBG> zSN?QL2$GeL}WX=Ymw6=}V$#J18A)2PWiRL_9PeB{#y=PbfhGY!tMW0thx zqpz!K58h z{)pk&n@;SgkQfJZejDAsHiPHIr3{b!u7KSzfIhpV|6^b`l*ov~?_P)&XVK4t<4!&~ zOWd5m?ul+b8k=*`)7G=UXdK9M1G29wVL;mzQ(2i^4Idf=ur@C`G%_^c$}oKGaH`m= zCUwe#Ho>B021##TvJ@X4vgv}hdJ$(edEdQu^Y^0YKilbr81cpAas4?ngRZ{A5Lz9& z_9U;Jjz($H&9%0p9R1ypsj1L1&^w8a735(E?LSkTzT#SzFC{zXhdc?!!E%|hvMPHd zHf(zVS+2GzbW>RIpu$2G!DLj8md z#+!s*P~zEwe@ez>;@%~0H-_lBinf3?Ao$juH7xF4ko4S;!;NPK%>f9zQE~n1Gx4il zUQpEQEf>z=8Y2R19PK%iIO_)bY09LHGydq)u9?0@ao>;&y>+-OU zIYOaxMo^mFYOAhti)-t4pRCn09eb@wb**dDabHx{WR9Hqc)EuiG}+zfX8HLdN2USF ze;(^B z5YdwBI;E=TjBgEO_gKk=t(agu@Nk}cK>~bTl$=@W*?Bnz5_Z`AMI-YC!DepMHCE$$ zkR!%#Uc)1IPBW~%c!~r3BIJQ)^yEbWM+SKCJhhLb-`C`27^{WGr#SUUx^VjL8(-o* z_7V8qv#KL2Riqm`Pm-Kl`LkY^mPGs0Jy4p2anzC-pql&AoT*L1> z9jUcH2nPM^KaA2ZALda^2k^DBnxQ9vK9Qe3WCJ%xO;-~qPm&ngC70R>3;NLLNJ}zW zV>BbR{*eTF_u|Tld+L(W@3bGZ3^+&Dgfn%URl+Yq(ujQwu+R9rg_i{dDj1|5u<8p02t#lDVBBR9(8Y30ST} zu9CA|Ip(DP>HUpQ|1jRXaL(3zcD;0efV{8CJnk>iQ2ndqVe#f%fzO2cJi1QYTxk!x z2B7!)knifo(u=zJvPFUvyQb)=$iJm3^+lGOTHbIsMw zgSPoi)-y(ZPGAWbx69gm>b7#?`2cxD21e~_aT%DS$tmdE-8_t*9R&`~97HC)(VsG1 zvBNn=OS7AX_H?n$z}#aP?b&3FwR(fYyBP2u_q1pdXKyxQccrxTe(%>*@p-nj*Q`pw z$??`c>LFwCsPULU`NwC4hk!6SI%OBF zx(&`~w|VQYH;w8y4?rzP#!fFI!^*$pN;xXm*2WsqMIR@k`V5<&YC;Nn%}rjxGj5#o z0^&t_xyD268;fmu)*0KSo<75B2AGR1r$vS%N-vkrW2U?wJ$zHZspc7an+lKO&P9fp!vr$uBP(8?9(T{JNPxhM7dNI&=No3tfPEudr)B{V(p zxk>KPm#$tCSVoUFH4ExD7{Ha>E^Z0WOdoDWSur>dNjV`z?k;htIi%}-Iy%nzUxCF$<9fo zdGwv4YBH9nqFET6%pyZ6j}`{}yMW#~ZT4pS6jy3nIVm!pPr0bI?CX|mLu2}fYz(9i z|NiN)S-4m)des-s+;yra;JAKVA1C-=^+ANd^p=q za=R)1xQ<(*8PoHb6fUFEozH~iFH?RR*C&jx^7(g+EHw;_52tV7gDW|?DK`^9uCMgMqy&0ep3Dw7>djgJ8=c!AQvOaVYy5iRGZa_6P?{>eS zU;^n}n;WP%_8rgo!2{V?ZM`_bIa|=&>bo{&-+V6{=2V%7V(~bKRIv;l_xjMg6S_M2 z<_5meSdChm>BZ-GHA2#gl~eM=*63;qRYZD|FSLUXxu!0@=!(s=*Lr=@wL>^3ZBOFn z>7grOlf)S{bbErE{Co`zv1+kAAn5+(USZzaBebv>`}C6X$7(ilDi2Bqk|~itiL_~3 zEXNyTJ3MJ_Pbbyj&QJ5RYyJG3YkDzT=^^AEuAgnWfHrjoO8@$K~?9Y_oj_hQ;#8WeUHC6 z?T2o9@jm}j$iL>x`)Xy?J^9Nt2eijJ>|_M)W)(FB%N-s29(0I9&oA^tntPXKRKNz@ zM6HA7k$B2i7$(ja1&!4liFWr;u|{iMW=nH)BxL^*wIhXN`BIl(=F!TFetdIO zUvf_!ROUZ@i26JK4=+r>%tJ}gQlXta4BkkZl(VA)?Bs_c)yNU#^tiq!?Lpq*M;n^m z>MZ@VH zeGTY6@72QRrCzzemEMcCwQ-(@>msMvQcSc_fT1Ua^abJ(}6+&u2Q3nmADEG(_x`{(SiUMyet$?~b0V{fWk zKUS6a(%e_{#W3y0@Py6P@+7U5uH_d|Hx34;z_i_xJve42KVs`EK4WCha}|;?l(Kl^ zJalzQ$yt&}FzB0D@RfIs8{h857PXG-UO`+Q{D#wF*Z%x=&xH~G*T3fEzPNX$EW^HL~rOYW1oGOe-?o5M?dt#Z~xHm{YT#Z*uV2f z-~O$C^Iv=W2LCYl6a4v%f2Ny}GZ((GpG9qvz~xvOeu?+yG@1O>fBklj$)5>GcrYB1 zat4i^R{oSAqWi(z=p52j#w?jXUvj}Fef?-|B+B=MXnzt^YzNTPOA>dw9I30Ve1j&A zB4_f|b9kF?-V{&Q+mH|dRlS6oos_x{g=b}(wW2HyzNNJnQO(EhS7&$mLpV3hm$8EE z%?NWKlK)?!ZyIP%V4DGV)(iSCIZ(a$6tk0n5q64x~mpF`r{yx4?Z?#t3@;mG9^@xFd& zuMaw*B(HS~(2d?qJ6Fz$v1`lp=036Y0>1X7D| z7`ap?POeX^#`rP+iS9A!Mxm-FuxvNEBOC@NC)|W~ldf&uWkni})9eIjxgxx38dMHl z+4{#2vExt#=>p2M;dnTTUYe=`$koP?5x+iObC%~PP{M1r@efgJUZ@q`@rMEG=$kOG zk*kohB#(zhq7CGpPb~FycowAHwhQexAsUk?XZZyBv}4PBh#z$^z|n2Ib6E30GXyEWH5oc(d0dE z&c#F#nR;QmppaKkx@SA)l>Qd=>Y)we3aX<)WUII2Z#;w0@9-4!aq6plMSzdYriDz| zF>VxHL!m!F#Kzagh{9C&b{^wtWmi#K>#_AAB6`wNsDlP83G=<#0<-Il?i?HDYTiIo z{~q)c-t}XyLIFb&*OcE($rj^Uy7V|(3ufOM5ocN+Ve-3oWFfZ$>eysZ06%OP2N^suBajso}#mPgl|3_rg!L_ zO6V)$wf_QmZ9Uje!n1dnFKQozL!O_~&BK+2ym=YMT|13bd8(1Ct2FWpixfP0>b{Hp z6(r!7!z&0FTQ}pcX6|fxo|W|`qq=J|J&QSvfnMoJ&cAnlRm4hpGssySt(;IoTfv7r zoW=f#7Mt3(sw#v`OLNYlbM6TheLvvc_2n42TBoRkZ#{+uh6>fFC#CP1iVP!TiZnN# zvk{wtY~);<&YiJcnqYm~#<<-Z$iT!W4;LNf5p=C_IvzyJ7yUtI{c+7@*WRew7Zthl z(Czj<#uxtTxEAwK-g(StN2gtTI)rqevSjbj`r}hR8d*}1S=`5s@b@&wh~@I*zTT6H z2de2s^%e|?uv{C}N4`?H8J;f>nall&)e%Q2{6+1EpD)KJnbv#kAl53tPW z?|RGE-7k?Rj$TXzWOh%!0q)+7z{E38<+YL-ej52fhRvG*KD-F{Rd_#Th<59YfO~;g z-x5MpSzKEro0+bIP>kzQQ}iv6K7I3$hL3)JDUXrOyB5hk@}({t$I!{QdCP?W#NAMG z`LH8VK~*QbanIfs*UjRRj;-`8qh*8gll1E)%F4hCLMj_Tnqld7azJW1zh@M6-$_n_Zj>62yCo-fegr;eS?IkFVfd1}P@jFG!}(1Wn` zMl%e%W@*E`c-BkK&-hI3XwG>)k?Wpc=${xu#S?e=)K0!iudA$*w&h^M#nm2S&HxGz zsp0CEx&WOg#64eI0nSEv$A_zT^0=pyU}7v+UguX=Fp?jA%gA-K`tVv;tS2r5Z2jwp zzc&;I*t-4;Sq|;k6l7BFHw&N7=VacTD~HxZt3eCWb?yFB=!~+NKgM%>cse3rw(D@P zK5k3w`Ygsa@XIdNJ1_&ceE^@Im-qRzz^6SSK1cW*>qYIwG_fr90Fdc^;>rR7ci5cz zw&n}(9gYb+P1~>bovYhk0np}_F^Bq9Q&8sj^51zfe zL|>e(z$xm}HElh*-nu@?7SyKMuAyp*B;jgl!^#+k4h`S1<2n!gA&!o9i9{a&@Dr_& z?lsH3#_=PTM@Pizdg8ZOwWLCO1jOCtf!=1Qppsps1wam2?*(n zJwEJBYIb0kv3sF9;;2B|UPJ)NOM#DoKZ$5xG9zgz-a2xhRqn(hS&6MTwB2<4ixTAP zGrq?0HUC6piTd>I6aF^-um0NKdi%3~?tgmwYk&Dy-v07m`m1lh`m4YC_U-R}`|S_> z{-1vPhkyDHy#4e4+#h-S-9N^k0dk6H-}(;U5b)3V@r@Ag>vOQ+^>jkZ_paLNXile| zevKws71xV108v1$zkX9Mxq4CuAzug|@_>xkn6(`yLe-0k@}$e)kOup#z3sa(7-5qf z&!#l^>_gRX*znPpW7A@9Y~=3~ZyuTN&94s2?fymWpgH6e82M&2>tFdBZ}UDjvS8g9 zju+Kyuv!)tYuQ|1d#jzRJ3H1}-)t==2hh={ciQpI5i&L<>Zz=>z7&AjrotMZT*#kG zrwpK<>)Sp7uiQkk>%lm?Pat=yr_TZ0_5f*UIY-@_WAol8<32J##6v~h4v*vk)2ug- z+F^*y>?m#&&apB1a{KHfAdWFZ@XtSY%|zaO^!x@=x+-K-=F!s#LaJ(SaLi*)Vkd<3OwM!b&Wj z#j2Yw9Hu}2#W0&D&3SNw+L-usc?(Rib7fOq49_);X)a&F6@GYyXxA~mirVDl;B{n3 zNMzp}_|=^jqBLZiUuhWxPn!(9keRp2Z~zeO?5IVPdN(J{7V3#r!1*(Ja3`?5?TN%$ z$YCNq_~|8^VYozxfn7vlKra5H$7#B;TDHw`pQI5--}KiR$i^*j22C3LoEPYbd9DbH zf`LsS8EfT_?wucXCw=T3*?d1bdjd2g#qf}sz;05^iy5QAf9NwY>dXqhJYuo42$gNa zjH0NOaRzl3Lh}l?YemSL-`11z(>mcAm`|3d2QZGylgYmnI<$`LDHQPGSy#tL>GRk* z#lJod2c?8~vVWxEYt!e-kUSnhdIdTo&7a*uoTZIt#)~botSD zbFB~h*BKJz)u?sP`eksv8C^_ul;uE^o=Y5}OUxJP#`wN%Hby%Y&>;MWF-Q_#m38j4 zr&nJj_LRHw&+`lK+IldbglF$CU(_B6IjlPe4vY56266{-O^|1rycZ*_uNa?Wp>mZb z@GkaOkfZ-Nz2Iy3&X;_5y~lMAc>T6^QX$XAv~>cVzVuevI%j<9=K80b@T(zd-Vj$K zp`N-5W$V|PqfWAoGsd|aPCdLaAKT5nI6PAF>~MJZ#cDMz!ciTl^Tcv55bDCcxTo;M z(Yb!#Yupp>2n9Rb)(+&YBO$K6bDM_|pFDL1x;bV~?hOUzL2pxOG0b*3cMV^(8#eoh zzH1>&WU}TQ=~E-^F)+W$VZoundQE~_+%cE;R6PWy@NAb$e81nAFrBl1giit;$#a|8 z_5Jc8=f}BbDdu>N_5T|D8nb(!z`ii|8K0Q#&C6VHZ#4Uh&p4V3Yrt?&J7KuxG}gZT zY#hBKMIO?ItGQ{bzo488{MU~qED-NylHu6?%HZZRJZ>a{5?h{dK#PCn^rxmty+p{E zs)=!SOi#9gGqfi{V@q!y$yrdyEY8E%Fof;9NuN2e=vZdAyK--h(tZFl8 zM;0w8wyy97217YM_Qu^}(1qMC*DrZ42Oek$l~=mU9U3RDJNMZXNndgZ zOT~wh2C$rt=j&$}C?KG_*-7-;b%4)`q|U*_G>kC6${7`$pC@+Kn13>6vw_ak7}N0u zVQr%)ZZ`6rD3**9=b}2{IA}J=^8q$AlUf0@cb&j^mrn5zqoj724P2MF$z;oZEjsmVh zaPRd~@T53+-VvM9%cb)TCuPpsYmFn23{(1?0jy_B27)L)pj|WO|i;EaUwifA`aCf7dnQ{5pMc^iy9P^k>nyvGkL{ zx*++x-~A3R{C~v#W_O%?3t;!2yC=x-nU8_#j_vLNO5~CZKe+-ZAx+}p`#RFgKTdUT z+Ye8x^<%S z#(Z;=S0{X=PR-^EzK+Y8&h(MN=3S51+j!=~c=suqVRGEuVK=a{zAobjDSX!h`j?34 z<8@kT7pvapX9#lW6_-lqo=hNrq5B=mTMx-*<6wFsz&<2}RIGA$qfr za!7RY*S9dt`5$adc`jk6&Qaa~=Z6w&KexEXYx`S5C)enxCa#OKe{9m6BahEgcf=WEFHpJ$E~B_sK{EvqzcQz<&Vv)n zKjGjD)9he~>Fq4oZ}Bl4gh?FUqN1;WeyJ*KJ~AjLT`Huu364*nPJPdc@{piqn@d-E zH5|phB6?N_!s0j5la|g_<6cI=0maR$-|)>gJ_sXTJm(2UN+(uiU%aAGk;ve z`+TUzw#_5Z8oQeMB~o#T?Z`VBiC|O?`gd4;S`B7eCY4|9SQSU9EKGelXrF4XMA5H8 zqI+r-Lh^x$V@{IvFn{RiizV8+JGRx_jf8r?J(?lgJiqoM{s0`VU)Q%UbICdE6==?9 ziz1#XClzaE^X_`|VRMpC+{ZvWh&AGz)2!{zUgWD^c+^rGjEqy$tpUf>^HjOrnUN6W z4@+Gh4~VTtt#q9bQXHf`@47loWyU*ib}(}J6g$l9=5B|~v>xR7)4s6yrKG1N{OQF9 z&y4#NdA0vAh^{$N4w_QQnpN`w8rO37Bw3>PX)wdA2@1=bX9f1;gdW2pGX@^}X4d-U zB3r7UtbKm=JM4U7p*A1#=Z-EUr>qu0W-NvTboC_`JUb~EpM3_+p}4Xjp1e3#Ha`Gq zZ%AT!6Y?`Boty9Pg5gIkzQg!4{tVD3^u47CqC9NBEbsh{*Y5w&&j+M>GX;aM_l5ec zzL!AHx;q~n=zpFufJ?mP7vBrZFo< zG3<8Bp{j;8Vb`f6-Q2>|Hd@bxxHsqP9UC zIs9qO=O?_eX5#^*-4n4iE%1AB{B%X+i27?#;GVg3>=UIl<;6EvJZ(*>x*94=p2lTSN!9^LN+IjYI#uE5A;}&<&_Ju-1e`ReZ?nE zu9Nl+&fQZ6W9~#V*J;w#ioW1G%*|V%!_MEy?%wt!0uyH_alVV``d zCNVJv=o(g@K$`^(ugc6t_Z! zKO1q!DmrSZiJ_>n$dp%gqm7=hWAKe_duNrv7=Qy-y(uH94TqS*ZalhdfX}g7N4#7!^PcFTMJ+p+P(W4cs|bUUNIeH?H!n-fy#Z zL-PFE|3L`z`gG4h~~K7|yi@(XUR#sW_#n z??b#Z&d&OeBh2h+kb0hX*GJB5I^3dY0TpEQC!5M!=%f3rPyXFMcRhNMefXe1>LR{{ zl#g9UE-rh!_HHP}p`WO{1e0l@ycWd8vDT|MG3M1Zh28W7>%$GMbK{fYv(`l>SUvIh zX-&JnHIB6Vzdv3()lWo-3^IP`A+8FC<=q{6`WIu1d*Qc~`CkCq`Ru!&ynV{!<8OcV z_UqsJWjnR!U-3jSi_u|Ifrn_0rn6*-X7&hPJGGC0_yqDQ0j>&la7LFXJq&g8og0^|A z-sPHB?X0)!6C#yb3Mn=p43`Ua^kq5GH3&Tx8_L#;zWW9)EPB}w=ZvNL;agiZLbq!I z3iD6@r@uUCLMKw;Izb$b@t<$d>aq>5vaM!u>45DxVjlEU-A#r4HRbblLJW|>PF^U4 zzmB(_&)z_+eh@^(=iKUreg)B4zOQA4ML(O}i`WBK7nGNG{Bzuk*RYzc{1cn8Jb(02 zTO9A4gk5g0uW*@E-PD<^q3?WDGbL&{@gAdGYQ)!{bjZFQb1p}bv@R*80yU|{;0Ts; zYxAsmZSE&{sPi%0@}Z>+AYHHX6J4 z?76%+2Gg}?7us-?c~%%ni*LsI%@&b-{9W8oBPRhUc?v;$DH4O_7rQ$u?*_0N6@b*2 zn`6Q)sRp?x7dpehn@@fe^KjkjowP_|C3?aXFCAI2>&1#L4q;)N*}5WSy8&t@m|a zLktX^?CB$1z?1XBiG3q1d3%;O9i5UamI4ob9n+ujw0;mE%VTusi%l|G$p@pLL=A3p z0*>o&nUTTc24GVEg7|wV+_KSKMfCHiq!{Cx*fWi3ADiiJ7wK`;QNOH@93Ky!JIH;dQ*QcD-Kj`LVNkdV}thMig*?x?#-}4`CnGIY(!Ti=!9 zO_RDj_;nZZ?`8I?CS!fs#vuTYnjI2$>~D`BZaypHjh*^Do_jt6o2O!j-#!c;XJdSP z#w4@L+}#^=h} z?ZE2|5LJ(!aXse6U~R}fzReiY@bt8u@%oT6^V$4u@7A3oP(GGBb*<0-j&Su-^t1PJ zTvXTx@5bvq-#U?>51dzPGW#7Mw(oq`)0Os9H5JiMI{A1UR0dEldEGZM-Y1R_MAtCe z<>|C;%#TLP9j7qMq&e`;Zr=g1}AS%e0Pj%=& z{K;S<92Q@p0>WrH3mD8?0?r4l<2vwm{!KfEZKz3CZ@`-$nf*Q)dx-#t+`XVnfi+{Y+}_6yc> zxwnqzyfNKM$+oNWD=3_WJJw58PC7#cUEU}7$HDC_9bp&J4eqRjO)9JlZFxPyf!(uyO%b2 z72J(Jv4U)k1~q>LJHzJYf@h=HojBc?eZQaW|EFk8UR?zIe+5j)oI|u2I5&5KsqZh} z)ba)O_B&J{@j&40nJ}7q^=}T(6P3d9Fgl(5bC%4D;78Y@I4xNvj9ocw_5zHu(wu*U z@I2r1C3SfV$Ni%^L4;#$0-F9KT-7f%ZBw$4>*__x%b@k z{{&1gK!6?B1{*-)1GsM zw6@yUR}*^Z{mcG8+=qJ`vO3_NQ?a67(MiN6{#4)ZY8jTi1$!J_UCU8pdo@xyf9u<^ z`~E%zGc&_it34Nam-}5W?Rm$N76T+P4=v@1&Aho^P96XaH`Xs>*;xABSH9IiIZ(#Q@)wuA zf`_jU8J%2ULLk?E#<%7kF&*FF$Jug7-I;s>xet;ukEY#rp27>>z+CaKKkr@ZC5z@_> zHVxR_T$mg4W*wSue|5Z*d2x~$=<9Br={b-51Z@%2)Ic;F2S9>3We%Ve-=d};CMbf4 zl{#`J5NSVfCC7udS~>P-X5P9^py`dy^nXHdAiu;Mf++QLRm}0%w?3N5>>SDFX8rJU zNp1emEXrj{8EoA=2<)8he*JnZ#&MX_eANT6a(VT);PK<^*=pShGe3H0+@zK+#StWl zdTaursRTb@g--%;xpJD6Kr1kMGq!qm@L`lr_nS1j=T`?fZB0pz?0m=j^ELwO2EyEyaE%9@Eo{twfdV zAfNe0uK5snW)}8cm=GoClp7r<7vS)ZoWPFs*b0A}}_*Vd+I1d@%by z%C~j6NdaJ<4_IH!9cK;oIKI*EUFxhLfu8Kim;)Xq{7LiAu7z$QY@Ui~y3;4G@XbzN zp;RFM_4U*Of~Bc>2mq|<2`bJ^Y|b*0pXO^hOGap2I3|LR0I|lvx;>ApJ%lT`b9m@@ z{(Sp#?t9Evxi9XYEHB1mXw~>)`>H;q4&f!1FLCtqu797DS-81)e_ocaQ|GJ*?bc}; z)!rDonvXG*+st)M6T$+p!QVxA{YbE?en8af#rKm7WxIx=U&&je+Bk~O8UW)S*njWVo4_l$xH>x5xw! z-!EAc5+p-NG`a_goaj1Q1=&Bbux7i1fO*1C+yq&J#Zzb=PTeEubJw+lqrTGSMIaOW z@Og2zCm>b*!#mG^^J}sq5MBB}m>lG+VOMukKwW}NA4%r}Q+-=m6vUgS6Yur696xCD zb4CT?QJ`90(|mO)gPN=&&GQX`n}KM$vOFhaTelUeV95C#{aGIJAhS?8Rc9<8Xio4>cHMt=--5ldlsKK*U+xBHj0&kZZJYszJcl~oO@E&h2 z!(@FFn>6?yA3q8OC`Lfs<9Oy597)|lAGz#Y?S+s}%Lw^D7}}f9z!(g>ekL@C-3$JmCai0n~0lZdVz zP;7$`R2%!zZ1aE5h(7NxnLo$Th{wcc;GES#K=k|Kc6pTU#qa1kA?4FpYp!4VBxvhY z1$FRCun>ulP^#Y?$F<_R~hTuNvMrND}Bg(M4V%YPuY$%_>pqxkN%%-Nl zi}GG)cu#1^SfQ{%M7R12Kg|rx2WN9lmrPIhBo*`M+Ra7> zY1%}%c~N_{rkog3=K1_kt?83TqU_ts4M@Y+hMF`^Zil{MYG3hHV_9_xo?L9KQE5eN z+D&FgvK)X=xhvXn()`^TRKC{|Q=#uCzEE2Ih&_F1o9sSm1yN&yi))#zdA^<>K9keL z;i!~Jn8+i`jLn(Qk})RvOAT^5nY?|SQ(*XKxn{SCOs)u$GubMsW3l!?SN-d1m?g)A zl3XWCcc9G=Ha~TT)Qx9=>eP^80^Ar{h;B#;J4VJ_WlkbRZ_MUHd~`y&d_`y#OuZ9( zn=i8HDDTa0@5nj8SaE8f3W`4m=v$;l!Ozj{f~ijgWx;tBC{4s*>)pk5IpWZgsKY0& zVNC>#d={^zFuAe?`1Q{`6-ffFXZ8NK*R>i(+4%AGST2ONIdrCb^HUAUn%V zy`Ab_qHN~8DV|l%+el~xW!Rp>svD&mk_Cg3VZG9X)YrDO`d6zhF`jeQxx`6VV z46KIKhd*oJ&~+VcFMtYPm2I@MQ?)8*9jlOlR4Y;}5WPmc;ARY5xyoz1bp}Oszwsht z-f%qpM<{XO=k)QZeOxW*x}o112;a4zCu}G53CJITzv9tZ!6WJ&_H6zXFuY;xPGsjsyMR zz23?1IRDK`_j6EVaVVx-(hyIWB$Q~4SbNAM1mAg5S5aczHA0ih&YJA>T^s4C1|LPe zaTG@JjOaah>7Ur-%Av3$Vv@#DIuCyiAod;Q6f({eqemXJZVies50Xhvd>-&zGd3lZ z*X-Q`x2DA1lvjE5^TV@PVyJV*kidb^c$gMKbw;rFKFh2Xl6EngP4xidh(Y`Zqxi0% z_LPS~>c9kp{U>?nOdNFFZv#(QFd7&)75h}&WX)jnl`IDU{Lv3X=wVXwL7(lzP(C@k zXsA-}_^q50Fv?p4b9G|4;EpF+j`TmvoSm6!42mOF>=r*AsjWF)46I%bPI%#H`Px(a zxi*fK;YpW$d@c?_#PbBxpX(RYr!QyFs!$H6A9Jh^*1NgXfRB7!?!yyVI_r3A;mEi@ zBCAV&Qqp<3{uq_56_tNy=Lbj3%rsAnU67d;W9!f{zu3S(&c?SUAioZ;5CmoR94B@M z*`eTgIm4sHBvqRm^&A_(UVL>^lv}XS3{C5dBWWjXrOw*S83eV*3&(DGzFjc)lnI10 zxuW>F2$_f+Edh_aI0*)ltsewxU-i%r|?X zg-QVo%f*Q91-8$R$4e4T*t5H^R0OyqnUnPBT5(x<-IttCj#ZIl0Vg;+YTH_hb?B#e zXvU&GZZ0f=ZrdATVr!=t#Oouh7@)4?))qtMH0`5w5VZW<$q12aT$!^j7ppq18P~4R z=4MF61#K^UnoIc{I^*%(v()lhl;JA_?Xl*kqj~oL@8=cu{>ImSOs5ZqZ*O1AATnCg zXYJ}6WBC5<`(86b%zXP-#%;UK=vb1x7PL9=f4vls`N=?A|;igd8;U z*azs8XUuPh@;DZ>{VeE~tFSs>YFDL^{CyOXHz-M`(90x_=2@J@_oB{tmv>@Aogty8X0g&)Os=np5Y#(StIuz(_-9jHUmXixKbjD0V6^j?BUR%y)0(uo=W-3wHs7^6 zQ2iP1;G_$|d>KfShnky^j_uvkB$!Y%b&fNX;XNi4fUxA)42YvaIqa-uZR{N9=vV0U zC#@Yn$uK>|4J>5np2aoUZj4*p-l+K!AzW-+9E;O_iBb5@o^c$|d1MmBWW>W}QoC_> zU_Wfm@|_{{+hpXQ@u&Q~<2~c_rn^XYM*JCt9*KtRU<3-{?Q3Aum!TKt@V?l;4Q=rQ znxDPXiKIU3FVa2S{2PiRNn84>EJx2_Bc$ufuJ91n{-J+_vX@%26FF4)%5P&yGkGtB zrqm0Uwa`~)bjrNPfSG^jLn_btq|V~KPsH2M^i;aS{2FtgM?xAjTDs zL2zvZoJW;IJfveU$QVn~YS8TS0BpDZbAOyH!qT9I1p(K2Mn(L6R?f{=x?0b+>^$FO z+Qz9ZXyr!*q)twnmA6?2cSdo3J%gJd1pG~I@!VIEeLGosL5XjKq~b_9plX~K||=I$pT z*Z^CZtqGCf_o-%Tt-K1u&&=7gxkg57(`NyQp4_wQ<^dvpZTjqx*1s zlAk}$0bO`LJ}>p82>)e|r_}r2hw|^a&(Vi+j=!K?@)cL)(!N0a?;7cg{Q1rNy0gDp zIdwrDwSJ7r+F@Q=S5TjG>tvm^qnx$prisMeldN&8$HdHsDhVUUYT}1;YFCnvDIte_ z*MpdQ|93mZK8=MpZ4ThVPnSdW#)$6`wHHJXQHBjnTh}j0i$WWx=3RG5zyUWr&(QRR zm5>oBN_ukwfrt3>BbgT(4A#f;mlyeh4g;V87U|%4vSEJE!%YtI!te>qJXcdWui3+% zp1IrFKYOn638HL2i$@2-XkO+;t^oMRt2!E1)`_*<(+j404*TRzhSb?U+$Zh!sJKn42}n}C_0bkuE<;y6IUj5v0E z8Ml+Dl>j)>S05Zxsz0v1@`_Y5rXOj{J0VP;I@U$^GGI)~IsnzNc6dn9i@iX2EbE3E zLTb|v!}p(ZL_$ywek)HbWuEs5`m7`VmdW_Np(2fkyw7-%K%B*DY{<%k;*06&cg_n< zz{j>uLoZ$<5X5=0u$`|I1zLnc6ey>fK*&Ughh=`4%kry^FlN{n_YnYh`<_5Dvyd;< zmA;6BE0)6i)B*$Rx2CSXN}B#-FGx=L9CJi(`BOEzu|YLI=D>4xkKsI)jb9c(>F^u4 z-GG}98m4tc%gVcpO3xG37{?dK#`z&(e+HwgFN){ZpStRRa`DQ8j+|!A>5g*CwgYr$pNui{)Jk>fQ2W|SP-90(zwLLPulXEJ&i0vT`Ks)6J?i}Z5X>WI)r7w4 zxqi<%D{ir3$3Xy#)8{|QThp?1%Z9E`(r?|NDG{boR@6H6va2t(}>sMs)}< z{YfGWb+%_k(?=A#F4MmlJ&<(kC^0EH716_Z5DlRwT5v-8Bb1Mu+9Gj@Y=DzD(@aj4FK)8PA4#* zzrywB-m4q84}WgVo!yJHudmA3?i*1sL^^0)Ta`6_+t4^d*px3r0`_hF>_IyU!e<>n z#j$pS$^Ze-wiVtSTL*~A@-ZbkD1@#23%>MN(6oV$^Xl4JBa7lWkk3yM9{=@D$wkdQ zp*HpLVC0K3*AM?Z>h%l9r+4O8AQZY5F{9e8;-#bCiLUpyPCjnO)_s z?THFJ{pd#@Vb{?RoX55DKz`aE@)()sWV2zM!iZ@u`X2z-@GQdw%|h-I39I@X$p5tA znha!lnspML6j>bnhq!xJ%nV9|hj41%1w2*<`m_VLn6iVcI+)8p1vJz=svuTV zKb~y4jb0nw8KnS);QucD^#QwDnYb^2>sW zGd?ABPao;$*1GBEn{o2?xM?fF$R^J4>f}C9)iSv)ckw-BAYX*mRu`{qNzvjt2aE8za9s`AffzqTM zbvTM%mKZ2+2r7Gn=Yq03dwJPO*wUToI_`Uy5d9VC%5fg~q4~mj zsK28<2k!w-_MhyR-gC`Bd^dOzqWd24L;LT2e3gCAc@NaZ`jD&}^?ayv&va|=aTt}u zQCES?H%jW=IDDb-Q~&;@wQypajJ3_m$jC4}RznS4moP1Lep1a@tIJx$L<;Z&WWf2- zryCGtipjMOzLyvE!n*~4QrFw|Rw})H;lyDqZ9d*W5CcBUT$Mc>W59%aS9SG}IeuqQ z93OKa&+OY6R38F&je(}ksfqV$YG3g`R6vwYl# zDrb3`Q&7ae`9UVI7r&BI6FH{1%ab|MeeWguMj)7C+q8auTh_bD!shkOT;Why*-h=_ z952n8xfaVX{Na2(FAf-^#w>X%{Aze1cSv)+7=!;P zvNy3%R@@mc{_b}e7B&ZdyC2ENiz$#g12w+8HuOiG*0cV(cS|xBYdU-A@oPPckh`0N z2Kg~gZfJV*6;L7eT76tpkbOM2urKDpO_+W(a`bpkq<~F7)Vbqm5<^HtnfB%+VL6`S z0iHeUur-(bp&9R_PrkRZ9_0hKEMQJr&AiahC34nv?qTonoX31bLp_A`3m1l`{woe5 zuKQpDR!7^nfv1k8VsgE=v~O3nD|j7)Mr8nDM_v4)e-Vvo^Qf8ibvGHD^c;e9aq!g< zQ@k5ba*3jxj*fuGaUV?5rh8o~(R+SJPjT0XSC269-Q6ai3uty!a#(1Js(bvnwWvMY zVXI>Lj!{SYEp5IvNQmCCRZap}q}lMkSJgd1KvaQi?RHaQaBS9lC-r#>5XN)cec{J( z?mQu{NasAedLPJKa)PgeT;}kQH-BH=vVYm{2A8<=hZwIWU!(s`b$m&rjZfbr)J<;3*BehgYPbpt*Zyr zUegi%ddeB2*7tL5<7xhRWd|RTyS1($y3*%&_YCOwCZf*gs7S+yQm-9KQ~GjlFuE=o ze|3*W!sY`(9XNG-_X7=XEnn0ll&LIL{yKTWm12y**5k+4FgK^L+h7N$W_LLr3!o6>O)Ej{94C7X1nA ztgJqG_5+;9wC0w_<^|nzR-g|coN81t>&V}GOMA=XwY5w+chB_dh;4J`DJLK=51~fW zr?u+`HK2nh*4XMn)lE}wtxP$wbFYV%^MZ{3S7sL^`Owunh<)fJXY@NF3gA@(2u5?P zp<^&2eb$!$i>YkrLdLYk>tEPj^+Aq~$DZ-ES*weT*NSo|2O@TixSFvhc=ESbnq(c_ z?AwRt`%dh|J;kfgh7E3aW=Hcy4k$mz@<1I+L>st@8qPi1}g0!cg%*J%a{AuFQe(dUR{ z;qGSXSYf$(*gH5V6^J-_0}pFGr=#>Ge~+SJJ67lBQdT}n)C#qstvqak@y&UHdzVo5 z8Rb6*$GY?MkiNFBo{5v|I6DkQgY4#e(PzVXx2Fg?6zIMVKXmm}bkX_{a~zK%aW)@~ zj6@m5tfh$Y5=&a*(LFUGtTzKb@z!0}NV=WDc0yKE#p5STmB|#HGD04$!&>y*oV#eejP{r zlEe2ScV%ABzXjYC{SvXitK?T-?Az{nqc1utQI(R;W{WbgMxBt2&9gU_!!qe=FuF3F zEuUGFvpTVI+N>r`iAWchYSIQjRo6pz5Esigh$~qL`$ue+nEN$yz_h38gD&yd{$vMa z6?-I#?PE9hw@&5UsJ3~thEZ#;lXv^tnn90`rtdycY)!fbXxiO=#i0Bkh0OL(U-&#R z6Mvs*FpsS>wYT?5x-Sg+PwQ*a=)Au^8$0&Ygz28kkyMO!^;*yRa&oSW?OrbeE{@0< zYX4?EXA|9foyt&mXk{cz`no*oB({qU9dmJFD;0u~f%&Qf^F&=~!-gh|$muH+b4P%R zS8DnkROaEhCkS-f|HKfM$HQ1U`pZtQ0{MGf15kR-Gg{S*0L;tDb9jvX5P~Q;30wPm zN#^Zaf~qwgNQJXpY>%Y=k=wTsv1tD&0ax38dt%qmL$xb*P4cN{ZI>@dk9vDbp57GX z>$g99^Sm@1rvW&=S*r^|-&N61uN7G@eVZ$&=Mu84ID45uhF@)CslMm4$I|uzN z7hO(}G=0qh{^+ug{_eTFe4!&0uBfag31CX39KbYn!{I0X}p zcM?o5B&5(uuB_mTIM6kIu+Q=zA)82C>Giq*fiw#rqeFg#TzyZ zQuJu|o(>Q4DG%URXE&ERZmgWG)o?hwzis}<$B{hi&4aQfkg*!E5qO^OB?fx;=>!IR zxSbwOn6J%&=k6iS{OQJY1J3vS3SVjc8lj33cG>jTVVI6bj_Ak+-$+!S6g zR1pLlswa};nTqRt$^cA`dFXyF4B;plWC zc+a)NYRza1;?|V5#dHS~iz7@WQay`gVMNI{F*hg9o(_w#81yH6Q>P$2_fB)&utYi_ zW02cBl^Ig#&46ujq09%5W;%R^6lUA7y8$_v<8@G z1gnKZV=AM2u0G--#IN_RzModj?XW#UT?Dp|*|WYwr3W7TzP%!i*9WR#gn?Qga=vif z{yg2}tLGr2t_O))Xm=P{zkTuxpwxu)U9N%f zC~W1_uhBuK{e`ibtsAtw#sWAjUl)-JK)$HPI3F}MDrb#=plbMwL37)$pE>IJru$9I zgtagv0YYG0uy9!a*>oP%Ic+Q6{hl9q;TE?7^2cc zF41)YMHlqzk;ptt(&qvKEI$)5D!u=xx>`=GPybI;nH4un@FeJiw2RYNL?8Ub(@O=I zBOPl`mE`jme6&^%hS;_{w++-it?K~&a!qYFe<&|JlHj!>*>gUNMf|Si2dC>m%FDV@ z+oF@ua>m%#CS>Iwe&~siCo?MGKSDAR#x8D%v-Joag1M-!G;`{%yfV`|Ts--Xr1;{V zq~w`>I-{v_V_uHa(O2XYb!@J!wFRJ#4}T`7&u5hT=FnOS0Ns561v_DQB|3Q#oYoxS z=cZJ-gAc8d3>)%I`H_uej?vIpJsjeVZ+gykwhKla^J0AX29`=%62mRPbN|0iWbn11 zj3~*WV~mi(>Lh;%HQLSn6te%|AtPKxb5y#xaK-BfMq4>Ty?Aml)x)ly??NRw z8q&G|m{1>*;i+E{I7Y4*=BNGSEHJ|mQ(p`_b%^w(Dkoo#ekP!g6hS%wgyqFdyAHbO zy7bUDjnI4&C(3<+Q@P#Ls>egLevOf?P@JRbr*<5J;|7$#nfXt37D4$g%C>6dE!0Pw zzqu$41KAKOG59iN5#MrY{3ZpP2m#qR50SkV?}fxgsh{p4af!=<)Uvju>R~;)7O#u+ zE`*04#Y&E~mzEegxiQ^p0Uwt0Ah9w0@@k$kba~81xX2X9(N%>u3kn$xE>MNCC)~=YfG=Q)={FNlg9hu!PN6LYTRNxbv)?Dy&^I<)M?|*9 z=7aRsZ!rt~1aH2jR~rcS5$O~bBclA)vU%3G`F2BHeQ9@9u^0P{cCCBBVp_h933Ek| zx9)-0uQ7D~)LViF>32?lyBTo)ULSwEIPdkS25X_2WVY!xVt%XN*Q#+|Y0s*d>}q6t zkVSFPtP}^WHP8G&p;7l@DOhtIFg$hBC$=2(xSzsuJ-1pcyo!(Yb!uHd)g4@mMmK8O z7Ne?G4)wd2U;DE=A6mdyS#Nb%Jr}%Zew5UOe6q7dO_08<%Nvw?!SRo?{C!FXPmD|b z08|UUQBHE)vbMHI05NvO|a;#tFl~uG@Qe@yb2Ar6~82U&l zK4R4lzwEh-2xUKIcks1Sqqe+hRxMbkM;-&Qr8zLZaH1=(KKVI$nIABD()9nb_a;h` z1jmsq0r3BS_w6A7pQ@TibGf^gY&=d=S< zCm|aHy>ih9-qk(OYwKjK9_-_Q*t!jwPC><9T!UXlkB&9O`hdL3W%psdUx0(MTU~y5 z_WyNQCUw>tE?qduzynosXN~!Y+ftU7d6iqy^6`GIuYO`WZsPa+URrB8H zfn_d-p`DzJQz)8t4PbwJU92WdZ!Iz@_5*VcwCCYhHME%Mfn2KWIWhp}+X4_gZE3%meMK(W7? zqgj~H)>`~EWpNnS<}#9t^JY2pEM0-{Q-opjgwD(Tg!u)TJ-C=VC-UJ`z69G}{dhJ1 zvkMoQKAx6TKD7gbgF4!y;^d^?B?A;(!E9{Mc{M`Mf4;F9cxO7`2_}ekH!ti{m;M

      }TPcrGofYJNO5!I$w+lugsXveRFZ|>;9w}WSv^kd3H@oL5wsm zYntQM##_c}Cqc3IP+}QxHB{GM z*NMZkcsldr1ET0P^!#Ucs;@xAN!!D<; zSoNXN0s1L|es66#`g;Z&o92)6zxm``RPK5p2Cw%|#yEG2Z-&OQ_clTCl|y2C)vY(7 zwvmS!wEUH0|5+6>jiQawYb8(7aO`;P8A+3Pl{iUIEtw}ED5Qyy<7*M|B{lQ|M zEfE{oaD-=^iexT~jj(96cx%Xczx~+Qdj2}cG*-Olb>ilI7!nwv#LiJ0H(PGLAgg9- z_NAB4S6vUW4($Q$USbsK_e;FY`S0h}aGDp321oydMS(I8Nz?CUV?=;``0uxwtW-fwLlSl!0DIs# z`g|*ojQsKU!`_OVJt`-RG~Wc&{vF7}y-Bg^Rf(*}HpxxDEd`%bhb(OuF zlGyzTwrOH&8I~ClE~M8sg5n6Ng%~(ZS#HJ97M*!@LolY+k1N+ttv(wf_UT2{ziFV? z^)}&Oo{DRSJf4e*f*r58r|S=hNNV?S@uUoXpFX4Y=6f7>qhk?bre&0}C!PZTUj!yT zXS3rg$Be6Ib+`WS(8(=MkJ)-|VWVHa zkh7LzY!l-eZ%FsQcDH>QIGf-jjoh)q){VnO9uo2Vfd7w<8U9=7xN|gr0q~~hbTSp| zig)R^V`%6a7Wcj^pdrnzxg<6EuYQiAqvl*_Lr*8rZ2m&t{Rh8TX_ue*|CzDCxmgm( z<)c5*w7p^=AU618yZU1`JZ$^ExSL-hNXT4iIbe|U5)8gSvke;|4|4#!X5I=&;-44&xcigJ2HG;(_aI=gxOn7@{GUmdCQ~#EDV|O}Lzk7Z&+c;0+c)i0~|LXVM`z>=o+DGx}&kMux#JIVxKxz&@ z@UG6e&5DIRObGYeQW6(eTb!G+G~3^Bke|n9p1ul+$7QnxWkHvTAIS8<95UCw@P1&@ zZLyd`6V<5JrFncYiiBM?I$ishhS~#kTgc7haoV1*jmOKm)Jz7+j^epak8`Pf77$jZ zhfaQ-bi_$}c8ox#gGc7pu@JK3#aTT6I*O+vdCjYZh`&~YHc2tm>)F}TVjyO5{jHie zDDC%fs}^#^2V=*kfhVZr=FMEV(%;BJuse27cJgY#c@kBTe-MJB@V!c2@3i zKXKYpQX|5SdNMA(~31T?a=O7yaH#BWgSOMpi5v;-H>?&D3G)s?6 zAb2$%%IJ!-i)XyKM>O(uGtUHe+*s@{hh7l0n)BrcBRP=gle5 z9E2GbFJ^N9#N*2rlxR$9kHh+!ghKF)aqVJUch5r0AsCw+j^)o>+#Z(d!5C1%ao?P9 zk08@G5X9Yhx>v?n=yJ?0UP{n@xN29mHve>_7GnCt2=_sca^SjHHFO-5dcImeVyzJe z`SmURJuK$5y~|Hf4CsqP8<&O)K{q(|A;rb%c?$XN1k+as{Y+2@bL@&9tj#}dr+@Q7 z+cy{X0lXlNo6a~|pK?Dxx{i-Njn37)XG3(NIl=n>5NMWzQ0K1x=UHKM5v^W#rqKql zT_D@bDI=}m;)5%PYB zp`Atab$V;RdJxC?gnj(I1|z=v7ToWT(+ zoQWsb-WZY-Kays?^=UVMRdnKP(?c92f9**1r3nA}>OOiJzhG+f*CD^XwEDZpH-xNz zj!)!7-x>wh;^+9KQ*EE_R}`e*rWWjP9F4=@(0%i4=)UZJ<@K$gZ4GhIrV*rXd*i+_ zm0oi;`Ffrse)a)fAbGln_`dV=`2&4{{SvDK_5kl`@kg#+Cip&@B z-Lv&O=W=j$=ok<0$?d_5AxS?BE@jLLPbZHSeTy}JPQaqWNM1JFOZ=+#`HzFOv`)UX zUi`IP|56C&@_*|MRb#NbwXOicV-_5h3ulJ2y`y9VGGbStP&~rp%oiKJPf5%KMDff0v2R zP~Nk+^M9Xn$#CO8Ecr`5N2%BR+^dvVsAq!-u|D^nDkFdu+OcZgSeu)5LD~O3lF76D zI82W?FYxoJ%Yx`7T@1au_{q8DfF$8|)gsc;&k|6E7yn0iUMA;)LS9~A zyRaamJR(<6NvsYQn9zi{VN|u_YGcQ^J7oLQGTXlOzv8+0%vrDLW|JOiTvbK#?4G@q zA}{M#c?`>|8=s~vh{dv7eB;!@@1s{@{vDn)zZQ~2XIIZ17I~+HT=-{6bvBxhZ3Y|k>n*4$P51Dx& zXN{bf&B^u4`^AE#uKh;3?sj-3GeZd(@^s3D?5C+%C66>CP(0_W_0n!_<>i#~4^}N? z>a_3Vs&-8B7m^6|HAEgd0@i|Kxly>7=(ZW_;PF7{!{IM%@_%Bp@6AqYZ6+_jgFk`+ zJc`Rl3MMSP<7^!uzD-X>TawwAi{%)=>OXD5e5Gft+Q0<1PL7*-R1m!V08Kb#Z*?1f zanFA!k#iY)SP|EP(e}{bx*39Teu`Y!YO?q`pPw5{xtN3lS=@vdS>{;wT~zctRI?_>MOB;OFf znf=7Z^oHUC<2e2t-}qZEPv^OASk<`eT;wPzxXNM z4TpyFV|K=LoO>|iYLwe}_0d&Y|bR|>HirtIfU)gDM((PE;b_1PO0Hr@20vg~o) zvfku#&N9E-b1{+6`^~M|s4G}2$&cbjggDAAfB=H}x=^%X2{| zASa70uzi}V1|7duHU4%t&f@#h++%G47~2v#9R?d`EG&watf&4dBB#Np?$cA{_Bg{e zhBR7>x&n__Cr{}u$z8@_v9U_I< z#h&Agh?4aIpGj0tD+f=2%0+pgyK+8!{hbF{hsS@*$bRzp4tw-2o>*dAw7Wr6TN5ZI zST!N#`oLMeI%COfdxxXGk$z*Q&DJ@7-v7MlX-KT!`z&WeAFy$SYB{%F%3TNZUew3{ zB8#xKp9zQp%VK(5s@eXD&4lTWMFMR$VN@+QWr{yXkiSTNRb5Pl-&VzcmST+BNq!IV z48iyUsj6RoGWoO1%A!1 z99pbDAaDKs_?(W*XHJ~^MvG2s8-p9Trt&6j)HUDy1_PU|MWmNodFjqqn1;;%hlR<# zdEfj#YYZEa-M{sFcC5K_6GQTHa9xA4pBjc|sA150{E0nk*j_s`PYmRv)_fP>39k8B ze{fmeyPvrB8l=bT2I=#BBG2$N{4rJ3vV20<^0k{s;01Lb1ZcmUvszmruRR}_>U4^0 zaX;*No6fc&*>2y`AlY2Dhg7TWIVZ-Dfp7hE{DR`!=;=uI@vV#)FB@7kOrdFQuP6y)8v;{V8s!>jic$odbOnGDAB{*f<{Ty0@LB-Dsf5}5pK98HTWXM)f#o3&fW4nE7I^Qca|ImwHsGJn&>;<{w z6dwg!SFT6XH(sIiw=i@{&k)8#ByJ7cJ#W$X2LUFL4;O6wh_%e=ywA0oasrAc%$;d= zY#i~@S3jivQmWcH(6Ekyuicv6+_uJ>i|3$^Q2_M$RbD>hfu&{z4vcO;VNxnTEG72} zWzxzWr*b555fJSvasmk;bn)h`hbog&!QteBj2gEa9gJmx+YpfFjlDcP)El@#pjRgN zEsE%=u@`H0L(wk?=GPc~1SVykh43UU7n{7i_>&lg#_=bd4)gNZLia2uH-t7JC*gs# zhyky5xcjz2vnG^y2Kb6+(@0zVREHT97ES(B_SGUBU1P+UNidS+0S^gFg=n9}p&)GK zd@!6YXZ?jTp~Jgms^K1J9D1>=$u<$|GsengaNOzo z1B+%zz{cd3VjMk+O+A=PujW>#_EL_EX#M-zd0Ah_Nq_xlTzzbfsPm6DCu3~!rbR{< zQFGC;%YSuKSA1Rd6GJ^livw?etM$Wex5s`kf^Bo>`Fbt$3s4`NfB9!(V<`qi+=!u( zcHx$jJT?p`t>$1cxsqE{^K-|!+FGZMHUN5biBLV&q))g6w)QfD1KJN&^g-!M!x+^; zIWk^iS)=#Boj*oBIH=PFAN{kY-#jQ;aa}DO*Dn|B#r@PV3-iSuZ|!Y~ojncZ3xtqw zw|fs^ZEc3C;)WZS)2rp%9Kz#9>u4Iw`2ThM;}vjtJl^&9cFKR`v$8*6<43X#sh`otvG@Pd$W^wa92&$+qYeMB!^ z+l$b-AGeaof_%!w7_K4C#qcJFo%`r2b9Sz=+oNc5=*O7=h2Lp%e2a^X;_~2rVaL+B zr*v-!V39xW6^O`+1!;VYCf5FwtRm;2Jl1#KzOBrcdzOP(e8bc2pzV)w^h|3)DY<%p zoe#qHM0M#QB|r0^Kbxtl2{Lm-;kVS+(EaMv^h=4*XEEh`Ik)@}G~8n0D#f(g(l4em z5AV|o05kaUGP5XvEsXfV$QHY1jS5rYl2!;s2G0pAh)Tao2*~m7oujq7YQEgH_86)p z%uB1DpAMt=+Q{X_B~o*k_}agt`1titi!k?!RRj<*)3O?=P+trXoNFFVqG-{_rdh6^ z>wzRV2U6OvmezUZW1_uweq$)-IC8bHh&kDbEq&V@+6vDktm^Tw4R`F@*Jef=AMthd zWPw|Qj|=t%q7RPERfB%=A|PGtnU)=EfL?O|M~&s|H6!>C+ipL|)L$+LoGadQr4vNd zj0!;fCPzHIAiPR5f4auffWzAF{{S#|`(j;uuKxBOA8nU`_jb1-dzVGy)q2(kO|{aZ z4jz|hedJ=i8i$esG_LbMW_ElI(!R}!rU!U_l`CDxvB;Pj>ctmD?*u*5+hII17+2#D zFIBka_jyj!B|%8&TQT_D`z)}+``Gv!|H!Db*|b+mR5HFgNtEWuC6l*9=TQzS7gEV? zjrQL@MB9+f`@Q2Eq_TWzV9=hX413=l3Skb2npa+(XDf-hAUL{>hH(&i-k2fK$jgn_ z8{a_uE404Eq}BK>M!-zGDq~Dgi!VHwtu=6Q6P(v7V&B-D2wUJHXl8fz>J@OcsVj>2 z@z2J5`u*~fA&80XrpEaPrcQp#WfQ*0#lZ5vj{n07G*n=GUtjzG1lspF+d~;I2CAv* zJq6IW?wjKU!*&WjldyrXwR^mn1NIY(70T|tO`5l0!xDchMI`5H`>}HfBFUWN>Nt!$ zdm14H7dxph?TUlqv)AGK7k}rmIna|sym2kB z)o=b{n(v>Q9^U7)5{w2HXXju1*)evG@7^&a^g zo2kJzlI24^!gJCYOADIOl&3W+mX$U*vhbFVe+h9Z-5NFO;}8Jy)h<8rL%=3DBRVK* z8DD>but@ctFY!_@zZNw1S?Qt7dBEY=Xf6a8tJTKt>at>~?hrEoy!a3nK1;S%D9@}7 zO~i_TR3rz}e*f+u5M{*KX5LOfZPrQX=HZ(%W$wQXkRx$+CDfoQGC6I;=89Q+gz4%+ zq&ESK>ThBhqz__lb6>e1?}4?*X#&B^Jmhl%W%M^uu`q@BiHx;8eaP)Aw%PU|Cns$= zvh7->>hD1f-Q}ZYO&dLU-eRKLPa(p>;<#z+s|Q3=wdc2WX8aWS(?yHsr0XX`7{myD z+_A6kPw;J7W1;TaETApc>L7pH)I6cahE*z<-o&`L7fqAiaIQfN2NH;|WmbCxmTqbb8$+r;j2?UsJBJL~Vfly72-<(UbxJ?fE z7!rFdy2`iB*Bmtsdph~AKbvms#=@>T$*V4vr?JftK|wM(J)-p5JIWidU<50+!Hq-L z21ok`w&ka>hi1+5vq#iSd-{z26(>V1%+K{-;r4A}$j|HHz3aE3?Y|}e-R|GB|7!F| zf5rN1rFgP0v%lVaxxMReR)xJ&P- z#gbnZumNCNG1ls#$y^a_Eefw~FbdC`$SyuEt+^Vs;pKX_29JsS{>6uPZPjz_{>D|b z?$-q{FJob!#tzgFH@U*kZ3LCh|1?dNmg3q%_Q-8RsWe`I>Yg|x=NG@B7|Sw z*T*M0s`loRD9pt1UyizOaPR}iBW@BBUTp8_%Dwkn7=1X!sGM&OfSYUvIAVjKeIL!^ z<~0g}BQKY);G5^mL+XDvrdDA2TY=VnTK##I-*WHGHuFdx`E<3e9NB>tCoaC*J1&m3 zoHWsRb9S6_UEwvq>9<@3vnKuvg_g{mcVRSW^afG>3Xiv*IQRp9 zzMQ)66%Nj7s&CLo+%_*0$imV%!Fs-6hKEg8lb=&DtAsL1h)%nvU5wX$T(4ivG}Mvb zpXSoDk^`kk5MO>kz&L%LeFa1Q#XnPs$_9}5dhpQIBh5KnB zHOAZAv`5f=_$@g7bTtHx%&FU7ZVyuCSG9!e+iT=qZOy&V^3u)_lllA*XC^?{@f((y z#>~E`%9Wu(QOsw+RqVbhjrdJYd;l@O=H)nHJ-I&TSKjfH1o(cU#<9KSav*kdw;IXj z@)6!uMKrHLH%#%e#zIHDfD-eO&^6pTtk4ss6=eYn8uTP>!E3G*cGoDHq4 z5y5|LFW}+4SjWy-3vub4V=Aajad(24BxYDHeHMDIWzCHl(3 zg@*5&1T$Yh>~Fx}+dUY$K5y;VDM$F1wH)xCZGmqt+&UBpBk(A8m5X?yqo`u z=nvltV2l4v4Yf%26(Q6z%19j~^_rhGFLIm=BlAj!-=J^*YOD}lU4sm|TJcHY_Nd*`Bbjj)e z_y4&^)_8a_Nv}Fcs!1-jFw!lXDUeMH`}B$qEmSzaiGb z7CywbF9T!mux(LjZCXU~Gvxq@I^e*O6k*mkmBS z?0a>U$NLSIk54H)J3Fi4Cd+=yQRG0qLgww0!$yX?Hv@C>!FF@vIG{|fnPG~zO4C(3 z**al8n{`y^#LGaw%9nns64AA){e`z_XjCnxYgX+(SNj)mV!Nl_VNJe|Z;U-`JS}!#99<`$zRe1c?X!8;CqEeX@bAMZ z@wbj|%gw4E%Ws%|po~hW9(LgN_N&$@ijB0{zWWTBx)>+GN z8|%K>i0AXg9tP&~nLh$`m>(Z@@c)~5jj$~6m3y3M)Zb?JQSARk!M3eLo(mPMT`_R9 z7E+OGc(tubBX>&mvoTn9Bq-nZ(o^Xg7Uy!&rx>db6{W9m`&EF8|9a^!83Gcr!YB)}ZH8Amy<)U5rO#rlcy( zN3H}Dx%KZq8{lLjXT8hIYaA!C`Ptjh$S~A{zGJ+HL0K0(S^X>PX&QdJ>h=^O2Jd9F3sQosd@lFtzB2}OKWBzgo zB#F-*c->%0%{>VK1Eg5)_M112|Ha9Kll(AlJkQ6`sZz(qeD`dllk<}wNLUB0xNN*7 za(37^q*faYq;SL#68i;}7ZI1s!8u=M)=?gIknP#X>M>8sZ+x}3W<7gl3TyQ@=ZxAn z1WLm_!w>Dm7Tkt8n7?~Rb!(K;i*0V%-ubFRuZ-}Uzi^EonAQ35FNq=KarXYmI3C6} zMhTCOKZWg|)WUYU!UfX(CGM1y7;hgpKgY%TG)^kbx?&K3zF6&t-grA;WNZ}O2fu3~ z_T}jQw3?a0;p$J*Ui5{ebT9zZ&MfD*af%Ka!Mf+WIn>|9b9j-`-*wJBf}dOr6eq`t z{`9txhKas_^d0Lte8A3{A&kv*Rj z<8c7m4{!UUGw&VSA2L9MulwR!UCYHI8OVgYlxz)HdomhPo|Z`yp*ijK{G|R1tpeX<*6^+&%vq|LxI0;M<;p*<&YC@SxL-XA~<4R&?s?k!&_I)@k*v z9zDOD1F_t;8wLSxI_NRP7uP$shxu@rLamEekpMDpbxi!-uPh!OI&*#h{M|4(8<=14 z_zU&*alvS`j6i4A&7A~4_dkD8H6F-rek6%C1;*5n*zwZKYD1<@-j~IGqD!z-_k5M<{|a_C2{r&Uhb@u}w>KiAK#qz3Y+~`z`(?Jm>Av_hFjM3Fh(8KlJMPP5J#*&>03l|;QZS-Vn+@4i38&yAl_0aWApnaHup2_OX z$@upH7tl znF!y0ej>YZ2mvD2;B4eiJJ_P5*4c%q6!`wk$|mC8tQe-4;^_Yo6ek*z5|mdNTc}pB zxcK<$RL07_}`e_j$W?# z`cDV+#t7#&MR^*eZwX#Zc`4(xI2p!Q+as#;zwXd|5I@&{oo7~t^!VlajXCwt`S0m| ztp0sl-(+9=E8?U0u3xIZ-PG9QZ#a1`a*t{%VD{PbSYw|(hAMi4Y}#VqI5&p?g{M^A za=d!uFBDV5!|CCKaE|HN)yVbE{^%x4TZ`@=$gnxofO#Fvw|%*%cW{Z7yp-mp?B=+e`WCLnEWj|8dfWJ~6CYK450H zj*8O&NLvnDj>f>&`!`?GF&Dqe$9wT{4jEsO?t8vStgcm4VcgFfGjT*SM-Pf&{Sor1 zD2-Qw><~8|h|za1M&B z4(-jDm__xcPTe!G+Z@9W&i&BW@xx9GZ`D0~(zb++vCyx66<-kfdH7$c*%^-{wB6t2 z>U~I<&zn2t9F}Xf09bdQ3(LO%$!h5w!q?@Ei5S&M0K;9a)VnSd!lnEIDrWaeba4Rt zG^J`Cee>7(k#m_zFXD-?w zvw%iI$c2{|_B#7akc}~s*SqJCOLDf__brcMzh|{L1unmFb^LuVB)`mUBP=e3|J3Ln zxSyX~LP>y+hxUI4K*~mlD=nJM|0aWR-%G>I1?P@==pulyzQGe`A4V$hzouOEUJNZ8 zd*{Bm4mgW=a}gi06bVQ>WIC-KY~@lI8m*a(vAo*ls6XDV8+}EpPCilGVH#jqxBgk2 zB4K1+9tQGdW?r}OvQq7v>yB)uZ!Ke=242RDs{-0WSTV=7yyzRvJe*fgrg47gme=s* zDkD*P*1@M|B#gre-xf!C7>zM@6Cr+BV%XM(hV+eGeFh%ZvvvMAtBCcUA6?&DxV;eji!e=v;I*1s}2Ff{#RN5FGg`e`pfn2Vg5bc z|APMSB={y<4S$XEDE^zu@{Iq6^TxQ{p?k0ubNzU2I=99)&+IoF9AiF^(`z4WtI*~z z?OQE~88=s)39h;3j_W*5%q+un;OkoZnmdWV_EzC^`%H6UMNly4j4O@Tw>j`dIMqbW zOq`at$jfD`)F1XY*CRThS=@Y9wsB?7_m07eT zz%Zf3Yfsl$U3zQGt616vL|-2E;TN>yWk72O7OIZJ)u_E3?)yME(>VB@f2+?#5T(9dfns|2%U( zbT~FHGW!lm{^IW*^SN(8$=^bE*qncUwQi_MHpJf^1`fWCWupm@G^1S*VwpH?S#@ZC zYs9q>y7@_hmoYnx8e-N&GFPYpTK1 zVvwtMpx7*%Vi?lm+SxF0rr(%{<3xa7r-3!V4LD4&ZG$IJC>2~{950XJsmHT{cf&AW zzUlV^1+KmE)=5kW7=vVnES?TrDP&Et!qZljTyz^|F_O{e8Vz;=Av_ijdj`?}P5kx@ zHOmQ1+aCI;FD~|8_gf&eHBo?-@f{1tIC}Jlu=tv7Z0G~1uiSiyRNl?UMJ*05z0Idh zioRuW{Qa_nrGRY;Ie@8+uD;qNBmkKG9cgHCRbDVP4^#BB=AygFx8V`1I?p<#{ceik z0m%nGl>_-|sdYtWzQ(k@R&D2X^M?fAcs`!{%LL3Fvml1k#$jya zZ=;vVCx>XslNz=Ltv3eQz>;<`HyFpyhXReLiJY3J0Nsuur}D;G-{4*xdY>=3YSW0) z#>u*5YPSfQAa|qT`_-pBypfv|O9nIq9A$i9`1cAybgP14c^k2t+ zx(YNWm{aYx4OYX)>HPzPP*&~`JC0@0Y@_Ae++=fI_7I`e3DpA%PE8i)rw5qKd2hyk zP$AalEiIv(&${x`UYyM&&OxbH#?ckrI<6;doSXIo0Qt?|7XKJHqY-1nE1pT{?-s9I zN!I6&B?tKEblb5tR9h~BV&J-xVSB+q@@c)vO8{P}w5NN^aIgsCr-r0;(V>U=HIr+k zUE_Cotp0MR9zHc$>-L7_Bb591`;uq(*7huY7SlSGPw~u+2EoisTH+eAhpH1PPN$tP zJ-oYNaO4k84|6&wP`qoo(5`mOr<0!F234NMm~O510TIV!soTaO^Wk0HHwVFvxX&Bl+SX6}u3W^*#;dg$ zmR93?_5~HL(YTyuylVg8-iTo<@W8F{svtgX%&k;BG|62d9mko1JpT_q>*BDr<@;0QkHHJBF`Yl%?O0o|2%$xqnAN>3hXn(mW5B!Rc3{`Iy zkoC-lzxwQVTE}=Q3>=>1SQc-UcUmeYqDjBQrxU-*2CEAP`empGq_+ z8w+l%VHNlhY8P^F3}+1VUC-lny)UbtFWT?d|B&GSuLNOWoOkYR?mZhdD%RvqNqcjwhI2wS`F-qZ_uhr@ioS zQ(gyNhUzB39xiWHk)`o)w-V^WQQsE8E@J7UiQe^T_n*jX0{8TsiZ#>fK?eEg?sJ1T z^d(_Pnf57WH5ZHgAghuwxC3EQW#l~pk zusqagC$IpSJaXGmK{I}EYsQeHi;Aaf3si8ZHoH;Q=)i~9Cq z-NEqr%o-E8stYd(UhZ4tpk1`-BXqLpE1ztXja_oOGWGDRMmIZoiDj)$<^zHD&u2`q zRF9*dP1pSY_$Pn@lbIV@Vo`BH6k$>I?V>Ik`pn z*!nuz8az5RLq2w=4|n4_`)k|5r1(zM;VN-4n*2k&e4T6-TN9&MOpX>yo<&=@>Sc!>WO|aK7%r5o&jrM^M6dyp1{W(S_*_s5! zPKzxZT6|m2{T5G=)ec{C!3vI!j`P*Ss#(3EAv~qy`Rb}^{;A&xbFJ3P=FO8rU~S%x zlb@+rdJ(LlahnGkI35@I@iCC*jqRrnO6DuSHaRz##IPqobg}wA;vx@(V~s;0JtCHuORe+|Ertn+zbTn+s--}!J6pFA$0?^VR%Ev9+jf%Xx`pj zi{t_kLlEtry}2OgvOH~kijBuM-!Lu*FCU+)A4_Ol#M);P;{ZZ@h1ew-?EJ2w?LI$hp$N#hL$ed>JY9q4bVb z;`JQ1ALhUF`bK%7KAt~r#QwIlZXc_0{>1)rLe^M+nU>#o|I_|8!gp;m`HJVbdAwZO z5iU?;itfw&LOKU{v;2HXpe8bHf5v~F?o&VbYj=;sZ~Kql+BUmpYZvj5vD2izd$B{# zjTZQy8UO8#7c(EnMf1VkybeIpHnTg-7Z0fL9)9uV zxB0(JJih~6@^W7{m-ak;!k_gl;Y)W9({dpUeSf>zzbLX&{kD)eIOP8tNP1I|ze--| zXcF{~OuFtX22uy6_5G|^z;-{`+c{au)Wh-h4Q9V(od{p~r{n`u9#($t^-6h3+=D%{ zNag#+Qj13SIM8Ds_P4goNmp}!{OJjVjLp{nR5@O&$1`rPmm7|{o(Ev`Nvs^uh+lM* zZC(5tbN7|yr`_UO31$m9EU(92Etm%5w2E-9FAo}wL0z~xmkK`$j@VCMBl;Ud>O`+K zqSzSfY=TpLDv*LB8f9nOF3)*;yRtD<)^CDgWjfWz%Q^NGRRH6NvAk^VH_Y_U zG5_TR2j7<(dn!8i_2(rAF6K0HbZGSa>(5KeX^!P>O#J!*hNd2q$W(rD~W`w_J{VXU)u8-kQ+yp|dviweaMFK#>HEyhrIGX*DK5GpY<$i( z4@6l092ZTIzSh&jelqQ^O<{$62zm*Mdld__-#zPLMYeo<~41t%0~sq@4UWID&fp_{t8D`zBS)d z>4*PW{8E>1w=cY3!062E$M_rLJG4V%s_o~3=z=WhYp)awwzKxw=%)|o_LQ4EpI-`d zK7GwQ?>FxUW6nLX!f_8;#1}q!bC-$J{EsLOuc&eJj^sL!Of-(y*3TP4vA2eti}q$5 z_eX-xt3_GG?}wLRM*#zYL5!35nt5Qd&d__0uTr^3ZF55(w;$zHj_1ehu#Bs(HE_?S>8U>l zocw*3_39?p2goL08x!}c?a!YLqnpBF^dCL5j}%alBeOcXNUk^Cfm2`(V-{u%HA)BiPb8UH+mmHJfkPrHd`AdWF zwO7Q|m=|OJ^q>!F^V`}N*@H1Lu%ClqlAFv1#bt3_0R3*0^6BkKb$U<=*AH{S_tLyp7ZIlPW6|a2oEK1$MnXw z`+>x_2~VxNiCAwvo#R|4QjW3y#ModRw-%p+x97BXuV8NIgxoWA3q{5C8Sk$(I-W{E*+iAv`zeW||&VkZwiV&C07R z{IH=#>tN@<(^*x|SHEp$!|gZr%DcC;VDt4B70&iOs`&NA@j*RJzP9C&p=@-VJ}LSp zN)}pikS{>h#++3NXkLz;dMBH4Q0^_8M!fE_`LQvzG`$%K1DFOuTLtfUj`S^NP%f5d z10Ui?0a>Z(Do?MR%u=rEEYl=6AM0VnIErBaZ!qS*zs}G}HA?fMyPKCNItXaooY8AT zAD{Gy+gvegy-A{*t^%>NJ6kyHW@3JW1`V4ty15qF!|%@*2XH9Xzh<}x<0YIv;98=^ zcpF{!sl)V-);x^e{N`$Vvej@kHA9n_*4h}{c~(}$DUajlhgVw~C$LU5>*Z`b>pmQ> zrA{#wY3wYsw&JY5RY+}lYw1@Y#0v^trHifF&7Rh#H@$F$S0|etj@PFT5wSMD!|y{W zqz|vPpSzYE>`!^UdW8LhKO@c+;I2h^tc~-f|2V8sZP0uD$@F}G@%!%l*8Z*gE6%S0 zzgSs_UtW&md;OlmuQ~jJ@@s&9u;(29etpAyrvP0*qQ9ryq4?z`Ib~g#R5bMIS*9!F z>)0osuE$f1nnlKTQ^7_bKVYpi$^kapcPNo(8f;tFD#O-NA>TP&T&(-cD}9w?E2!)B z;Wuwpn%De5@Q#i{nglX`#?I`>SwKcPItk2#0>+COJ~WX3fVl6HU6^VyI5^D##jIN>4xp# zxWWT`;}z#GYzEqs`(N1q+tcG#xPST!zs=&;Cl|T4u_P(AaatVtE=xZAcaCHsE_26| zk#s#k<5}1K({|PO>(8pKbGKu2rSBnx_SK$-`_3>gRG`;29x|I&y5w$LY%oAlQ2 z89+x~=Jn>e9v+=hloy?=A z@Ply+i_cxd$jWfwz$XvsL}vcg17qJP{)>Of>0B3T$(Lj432sFFbApZS#0>oV0xp~xYE&XgGO_8(n>o|=2b47Jz`sP`>C@2pMreP z!ggLxB#rU<)Y&dtCz-jWV?IU9b!=G9e%En5Osb#4ezR1+tKC88JFZU3{jjR|#Oa45 z4vtV~Syw#zyWiS|ZZ;N zdM}N>jwkjyl0Vm9bYDI+@JH{`{ zU-AFZUV9rnUcJ9@eh=Na%Zo!@6q!?dwj0Lw6!)xV4Z6+yC75gbLCzHavz7$(z`lKh ziMS8{QOHjn_I^28{^G+VEYbT6*bRE~m0br}VHHFT+)$O_3`!KsxU;-WfSe{)W;i7WB=F@g?_LCzO0v=j< zHs5F>eE#kEI43up)0rwY6 zho8_>zK)kaY_*2%v&1#2_G#mA4;{Z@W1XiAq*jbOD`@-`Iu{K>-f{}oxuPtER{@3~ zQkcrl#HJrD>Z40P2(^`o91+?>F4dSI)GZ=g7)eUqLxM`~IP+z;!dg=+mw~wl`K9TKz1-oSm|sM=x&w zX|uTY-)t>k?dDVLkca3LXd&l?_UyfG4sn&Eq>Lv3P3IHc>#yw$&rcKVHFdr?E{>1u ze^>qO3m}YFK{q9JtMmSPWrCeGc1xJEPDmOc!?F1z63@goXmtEmu8glfG*qAqmQ8Lj z{D9MiEEl5`iB6AIksWw$oc1OPD~i#ZVQd{tO`SAG+aYVw)aj_&?ZAT2POaAu>d!F%`<}4IdnM~(6#flj z*kU%7LRkHP!=c=SCXgGRJf}C8cgTZW)t!S(ykUzf$2MKsj)vcIb7Hwq%s}_67Y4h5 zYp*S*4tsYPMg9}NBKQc>pAn=nywMSBxWZTWB|T0!*fm2JpKs8dlm8R%Zc^AtI2 z;%33|Ca_#`%yK!Z$KEJE|7nUM43YcQn7QGKOMxm$afG0s4Sdnd~k$nKxw%D)c?f7?>Lnzw&s6TxEvP9Ik(?d!$^>KX{{{2mj96l6r}Na{YS?B zeW3zWI zH8@&punx-tIsNXFG*$L*8#g)Sp)GN{YRF4F4&$~*APA@3#PxxalhniZLc4jbpvLBQ zSmBjLx~&}<^C~X!v*9ibkgA1) z@0W{<**AKQof_-A>(Cq@ZNx%xM?+&9U~?)SA9nx252yQ6;rXWOg_myD45{lGZ}Ka}J0wmyy4E5mX{ zot)wyrJG0F>M9c$@-wgEy9aVO&V;)h42YeEm%CN0ugEXt;`I>DbSnQsUL!8crPS1)1B7{slFPIOyLgnNdPrf$ijC?rYK*oQ97IuPOA}MRfUhp`kQ&?( ze#RGluyV6u2;YQQ9PPT833}HenD2*#;bJiQ@XJq|3Q)@WSuGKglkeMe{jgX5exPp5 z&xaqlOG}h$%9|YL`XnP^*6fApJw524FbIJ=Z5Ol25S_G*7SH$`+ zjdWo=dmoN)+dfNPtd(j2sA&GM;=O;eR>ffod=CAwS#9wbmkt+R!!RLpS}kXz|JKam z>!FPW)>#aB^_3u*oZcIGnwfSoFo$_3<+_~d@0&~B^U(@YlTDrizvhJTg)*^h<+64n z9um{vJzz*13+)?!6Trv&QER~Xd^;b1_TSa?CKmc;O7$}L?rDCYW9@|@_*&M7mXNx< zefR9N(b9586uEmvQtzvZJ#n-W=#&>hoYVTv%I8lyaPHy_PH&7)f~`D|;b%>3!npXF z=2wHx|Ak}m$K(G(`2YMNDNyqQrrztD2#z6R-5hsJ`%-5*ocQjaneg6?ME~t;>X~^? zCT%qpq=|^eSopL*YpR{|hW)sG1N-eW=Pa5N5Xa3ioy1c=ALrZjT*0>MVGJyHb-u#E z{_daGMlOZ6QfI9l0QB_PcypgV^7c}A{IJ(>5t{V)AF2+;a^0H0R;^(hh5*m6_T6$* zIGvDrKf)1|qjeQ${#dj2S-pg{9Dd+0t`!)zKM1F75;%(MM@V5{z@8~t@SpbJTbL4(5 zwr%sbwOw&}ESKW@Pua*Kk@tq>y7`N43QapQyScnt%Uc?9=L$dHPyE4OslP&QUJszp z6XauYKZrOA-1yuz&Wd*D)<6!L_^hJ3UuH;7bmZ@|3Zcx(tMkIlGx+-T{e?QK8A5k4 zjN|)YYt?68VE`5mV?j;&IMf){=ZIA*x<12K3-RciYJZ6d?tW2WHSfK%vBB|cInpY= zxYFk2n5P$4jykCnkZ-#-uzPvEJxx?!o-}i;#z<}#^=+OEp7YDqlo`OQ0zG2&EE@_4 z)`wuu6Ky=&YiQa7UC9rQB*hj4psC1?=f_%FY&ZBeh!}eXa2m( zeR@}*b@y|29r`ME&W3cpSOnepK%T@sEa0$qHoaW5n{ftC41Z$hPc)V|2KpN8uu9g+ zDscX5^pJzyn`BB&$Jp?FvO(0=#xZs5xk3 zSS12C6tr8+;+jhsK&#Z}tPH=l!o%WXHprK&un{OeO>p;9Qu9>j z#2~&2@ZH1@Q~y8w(?1JvT(&6m;ZSTOujatbKwjNYP+Q~h^Ti09ehPXqg*E5-ko2|p z04$EU8Mj!(bK*5N=;AcktD&}=N7c8uip)<3`4)z=!ZHn{D^Y}S=nvWU_vDo_Uh733K&(FN* znD(ZfP8^%lczCZjHZ|x6EUK};sZ=|>$BQvAduekYTOJrU7U4`Ms(xbM4!9aZ)DYH0 zLZ2Im1O*LWi`j^Pg88_(C6cc;E{-B#yn1QdaAMQ^I%Zm#llq}=j)~tIvwnk$v-a3&Au`J z>-bMs0f(u3k~8M!wrk8AK}+2kgwggm#OTtKN$Zw@ZJxOIp53-PCZ@iQdp=&?>{96b z@Qe-DehUb_d$V@UBW_Gvq55jY;nE3Ie%i^2Q+bHSL1@umyz@kY{^eEptisllu#2rF zZS(Qy{^_+IC)Nq4&39XJR_Ccjd2Rd2IKeU6iB7>{70If6?gs^a39N=%I3(^B9}YAc z2iNcIP1#{KGB$SXqg%9LE87Ep_L6EtRDLx8&p<|RZd70FkToZczNA(g`7=_Dk&fWd zcV<}E$P?Rp>o{C3#Ipb%V&Y%P{jfN1|A_H0wBf*I57bw4_d8_)h{tQZhtNG#78(U^ zZ2Q|Y6QddpIUl#Ki!C*}^T+UZ+xq15NNwhhS+?vT$3}f^$kQ0^0_MzDTRy{%rhE~ClJN8X0qll)j)xdynaT-D-6(E1c zu`!V|Ultn@j=%nb_kP5teQb75(NwEp9+`j!E?(bL*rJ+1E=WpKg`C;SRRCg>J(H~COcYi|e ze%zjaG2Dh)!{Q!@sFvP2)ifgDZCB0|_JO-kH$DJ)b?thzXXv{%(f)Jo*4jIc{U@Wrxr`Yl?EB(Ro(Cy_o0@i1G{lxOn zu7idcL-Jf0uAdbR4EhLH72Lr z{GVz3$&c7Pi{nxLd7c6w<48^4ibeqk{bQbn|jtJsdylsIeE1 z5U7n&m9_42fJMgL)@N(}wETRc*%sbvWt^cp=$DJRBkuDRu5X4r7qeA)Yqeh*A?{GF z{*Tqw&KP^a%mQfVXqj5|ch1T49I6t1^=0|SSxounNCcnl z0Mji|`;Z1Db>168=R=>FVmQf}0a%P1zdqErD8U#HNBZqw1=m{H=3CFy715b+{LBTt z1L*wrO-o%t!#HQUuD8dhF~;{jKZw_wd3g!K@#63KFe6!j`1)vCuKO4Pe4uq6y|on#q)lu=ysfKUQRWCO>ojROsPkx-vLvU+(1~h788H4Tw*YmmXNst8RuUU@}^$?(BmHIqsh*um-eM zp%>dha{qKB{c8M;DV&&X{K1-4Au*djJt2OMpZqjQ=Sh4qi$KG=`$f~5H4n?l5_aV%&YyTMt)Ef!=1BzzHHLkB`Ih!Qp;bt&y%Te01d_K71@6FjMHAHMNv`#pT8cs2Cvks{<@wV$sek+NE2jSDyW@?6J!|=WY`>f2cZ_da>-v3s+g5`w)sJ#*B33m6_*1Y*UZ)nDs20J zQ}yv3zCNzCjhFSUrUViDkATEicw%g4HcQr`2FBs5d#|y@?pjlWa6CuNb9rHxtz%?c z3-f*c1uSN}T?XhFWcP&^#C@aRHbefs_lZ-^qEl0A>o#c#EmZ-$|~e zB4yI}+NyS39ZR^q{j+;p22|51FA2(o8N-1ireEE2V#Bm zbWBzs8#@|Hkn}BQV#>6CUc~%gj+qmcn@x3)z_HNVLs7f{>iO0yGIQ`)$y}FsP>A@? z!BqFGfo}H?P0mK=mrIrd9P25y^f$k{7t$WbRY+E{en+)0*>AlJz>OOIeX<-myyrgOkjl$wS94VR0sHNF%GtCwS5`y)6136Co5$$!9O#qYFf%X^0_^>^X_$8)+o5!rX0SE6F?M45 z;f+~@`|%kc|MP5l#VwS*dF~f9pFAoB=d_!Io^&R4H9GlO4`?|$S@EvxV2NB2A8x79w0coK5_aYOh^huof>seW~= z)0gex-`$w(ez4hwc)+ajduMLT_O-6L^Z+c+113^LUf%)OOad4jRSqOeTlMvwLdiVcu z;w8yt{%6*5@2ii0yNR)#+ee^KoId|N@2!6;5v3A4T0YaiLBBg?nCo2pEjxvk{TA zw6%HOwbmJS21pyv1BSc!?SWwVRppaiZ2VrHmd|}{GlBOE_%wWSZ<4U%nfT=mC9uIv zz2A%8zKzW>_FBxCAA@RY+oOPB7<{!-y3aq<@!|ux?fEp#ftof~unTb{B@^b`d+}7% zAxt+C|6yge(y~NySTF3JrCQ%TVvzled14iA})r!#-SD0 zI_MTro#lxBbN{h|$AvldPk-d0tchz769JLQ)L0~WeC}EBk`p06$1gkm9`eT4>DoP- zIP`JEKb)!m4VNuL_^PxM$=$4*(7)u4M~nZ~e|k^H7eoUVDTtr=zb6E_phn`_j} zF{j@rd60Uw2@bFPFVAk?CW_MirFYpHTJ%5qjKW;Cj2a-4tH!Hxgo^K6@3YL)nc!-y zlXhHlwI1_dfz=Ot2JdVM!L+FAIo^3N;4tRRAvN;qTdlU%R@c?qY40@H=bB>D%hXJ? z5zCm$mCQz_9&NV3^Z)=r07*naROY|+{)5;0R?j!NTW-Hh#!!;DgM?j%ldGo{O9$6&RNA&>7u%fD^FW)(O->(TTefb@YV_Cg^Cw6V?UX$&)EtZ3 zBw`@`WTgbgTMm|gfBs|+;^D!*)VSiCsX*38JZySHqvQ9HQb9&=U8ee5*RsBiFgNO$ zypt1HzZb0v#$o=P+wA?5V6)@!;ey&a@{ZMy?>LVRm^7BJ?XwG1NNek$0w?atN6g>( zu|5jrMkMTg7;wJ#r%uXoYPP`7mZKJ`^%2vMhoQen$sN!sx%gK$XL~X&YjP6tbq=B2 z{jV719A-Al-8d&K)_ZU;w3YSPo0(d}hO4{Ce#=M$tBQ5tl88utIV@=0s;drey-YozkW0*a{g7KbjO!G08SNf75$u(VQWs-jA-AlhxYsR zo0IKdkH4?|)%K_N9rug zA-(RZU|F+lsF_CMp`X2bh%$P-y7)nY!HSJu9KPLWjAG^Y&m(wG2rSzkq>SaV@kP6N zhmA9T{wxr=E-1~}JE8`Ul}k=v_J{4qN?GaHwnstE^jaJemX&jS-V*hDa%Jf1d7tA5 z)2p%f{qY%n@j}%KJ8Q&CW0Aq>Va_hOsmo5Sc)Yszmp?*|dCEhU9PX9r#Y3vF{GSDa zgjQQjIO!QLnQ*5!7>8UZw<90qeUI_ZjwxS(WhNSC8}qOmd@<0-#hAB88zP&fDj{?R z;nf^COz|mm_XBXm?_qAiP@=XC;lk;wPf5sKdqoH%OH}YSgjb7_C4#2JF9zn$4PBHA z6E{PJL)Y5*OyT&=Ko+02`I%0KxZ;lqj>I?jS${F#kJ&ffmZtv zPn^xm!AJb=K~(`gsPLHvDuv*LgU#e%iqu-?I!<@7AkI_e9yK`W*n!T(FZsqU)@P~% zL2rmyb^!#_GnG1CX3?{sX)oTKH#)=eK}5G z$)jq}aeSQZO;xG1UbWHV%@5l2MJ~4S?@fp6xz$3Rd#=aKqPKtO!|ON=QIv^QIZ|Ot zjM_VPlZ&^u&pJ8ryz!oaw=S@!kWs^F^$|~BV|Wry9AuxsS8ZkLn^M@&DI}-XmO3Gf zp^ev(qhnm_z8IhNefwK$W~%Droaqf92;&R3ZGjBkO9vwGXV?BS64MfNVpSR2-97?O zYpe6)tg)SUpV%8xz3c>UcJh6TK{RC6xL829kjB69V8m^+Ts%rd%4Z; z3yU$Xwxw=?}_x!Gp(A(GKyEHe?NF8%EB3IsG z6z(?)Zc%u)=2KQmQLvDG^&zzccou_pdE5Pm3K*1@SE3BPFL6QM4xtPpO|oaO{FSJ> z&!NZs&?yj5QD^7O!tHTPM)0`B<#02n{Bj zHV1b-p%QUDW5h3)XnR)@G+n@`X}>q^&bI5Xx=zJ;QlLCQo?qi{UYWZwZ6 zdp4N+vqa*UC-v!bZU^ElDPN<}ljgPUK!XlTKfs5cPvU5_HlFT8y?f8~#ndfrBka@D zDfbrz+^kf_Hl{BGy?P%ue=E{Q#`ix`F@OW~DpegS0@G)EHK*n8#*089dhT6%iV}W* z?iCdc+Jgn8gutmWF1qN&rijifQ&;;pJReu{1GX>!lNS13KdJ%g;dosBGAytP`eO;w z^Zh{n718{%{sUpGqqN;$J-jGr`bKu8q}v&4<;@*0g_LGEJx)Q|Ap0m5}_~pI&ftj&hCjJ zV=U^-_qr1u4f#HVXy%7q0N$VRbVm2#r+(?@{99CWXSSs8J@v{-SsBh11oNcBmqF;w zV3<;iCYd3>JzGxiX%&R{+c(Q0IoVy4bpx_*CordCX;1TJ)t_uPudGg!?YHr|S&@@( zisx5~YV=by2H*&@RtZlXGl)-Q^)+SEw7$TbXsFe;rohQT_+9iouP(Ens$x!(ALoGU zB!tJQn$0J{^aoj8dDu;;17+28VIf10QviAIRU$gxpgfs}U!I9+D zw>IhYCbx6R)5K?Ad-+mXp|O@t55(G=JkQagPDmU?^j*F1$U|=^J80nw;f26*+??u{ zEj{JT4<}ovd$+f#II5p`g|C({9E|r*)@1&3F18dxa#LNb#1OC+>7bX#V!GoetrKF% z_c<@qJOzD|0qFQ2S>+#7Gy=AJ#Sw2jl{A6ZU4a@{rQi ze|gr1Iq-t(j}L3aRoI1B8GaCfr(xedTsPr#(8LwJvG7*^jLa{5Rrfqh#;&{EWRuj| zDMO@-a5p=CL~GO6I@Z_oQ<`=~Rz%;4oT0wh-v@K_p*4rlr0<48A@Ed()=i3CT@gcr z$xD7oZcdK3OiP6CiG%u{i^;x|%VWlhmcc*Uf4dB@K&{3mvI(P0fi!*0cQsa> zIltbpQ8yHT>!UZG{JloxR%@H{)|N8jh;cvr;|%IjC=_azttlG?R6SapU1!8sW4>`z zD5T!_R4>)-Z*|e#n+do6@YTI$`@d@xh@L}RiMl3Mw!M)f|JLxLM5P4=mW%A%Gk#qS z5FN)ZX+Ml}eZ<_NbOeUJytX%wRNp^$S`6uDABJDfz(BEjgYuL+6DK}(lj^v*#m=GS z^5pUh{`BEP*TcpoUln6)UR?AqDn-<}r#YAVjpwlBI4=n9#*;mZ ze>~hQXizO5+{d){7@OFDXM(ZwW^4aehlIz2HqpyhH+Iml*IaYRKNPwrvgRO2Q?Yc= z`MkNR4W24j-_~rhj`dhac}Vl%<6=-w9rHBL(Me+p;lxwzt{K$Jt|Q_M50&!ZZyZ`f zeK1XZ$`6mTz2a*=o7N!J(PhJ39ITimioc$8}q;TklOv*TG~sYXgjMw3)89h89I)Ytar}{0LQl zTA0YdpL!E26C6G|(=8`<(LbkvOt`alZQ3m*p0$xr!fRvx zNi)9IRZ7@Sslmm%`4zPsXvLa#F6UCdXkvJ?E8qRV`{U8&gLSr-A86umFa|M(BTZkB z5=XB2l6+$^rMK}VEthA(T%Qxs#SH~8@1<+Tj=V8FyV)p6_i*SumC}|T_M6NSh+}{A z7fmmvCu3*x<29FlzR+9pZm>fn6<2R zU9~>9zaj6#{gWJY-%37~+oFT19_{O-Upc3vFkD8_u&G#7Yu3@rowcmbw65fKeU^ZU zy=f3Zj5jZeNpUV*53@>tj11;;gw>5T;+s#INB^JgzflI7w`Q#Q*>&CdrAVAyTJztW zTR4unXSAkVx-f+}#?}|K?SJ5cvr6RccqvsD+S&8k2L@W}Q$afa#Pvf0>+@Q&uFjnFJHti*;0=;C8g$; z0fa0{#=>hJ)bm49innVD622KcoCcHSXuMkFEsC|A+C--kHk#yHeUp;BaDTk~s_R8t z8ct6VY;!{sXXXO`(!Po6(Ll#a^c#hax0UOj|7UqocCbun4-9U$w}ILjf6 zBNMJ)5@6O`no4BIa+w?<$J zpFKLQPwP}U&-iGr9S5XWhh?2P3_x9EwdYzMCU!M$mJ&MnW^Few z1-D%2xqC|9Kt~K!#`+<>e0qQ`p8khxEWR@+0|)efNi9sMCL)@R|#eHdpiJW zL)L=*1bfLb0G(8{fHl;>K=X2AJUKUque{11UAWnZ6w8e@DCF9R)YNARB2~Eh+5o|} z6!=5kxxVpBm!zDFjJ}()+0w5pkxf4UOiVi|D+o;@O&j`>UHU7s`Q;*NQD2_Q6_Tq5 zaeU$nlce1-JP$boIWwNi!{=;g^d(UT(sQBeX*TN5hYDC2P-4*gH{Ie zR*d?L$d`!WDwhr>FD@v3LvO#%r$EACJ~eTwd63G9Z<#!s2)#UNrw@X)>tt)5lfQA% zF#nNOkk%VMC)BihkpAqnO9&GPPVX$g7sLQ{S>Wut6Si++2}0f+SC_)#)83G{e1O$P ztB{h$n5FftPt~^e)#r(hOEVQ^SqE)k5b~Mx{(HPUrFa&S`#@l7LC))P>3FHKSmeDq zWXL!a?TW{oxu-9^0zOUX4+?&5I(QE0KskwT1;x6f0aU1>c1Aj&r)%RnNm*MOgF zJH~Y1`Y2y&0HCa*zi-n1BhTOC{AZ5;mOpns$gZyMWZBF|{7u@{j+K`O9#RURJJ?L+* z?1GM_VvtMkMsNbfq0T3{$?tADWS^eF} zFJ^wt_T&?>GA>WbzBqSJfCN0*&7&6({kgl)V)nYEp58BEisXaeKIy(u-?F{=nMO{a z#VAKO7VrGV z=t`@T7RRCPMKr?rxi9ZbTqz$q|Kfc)eg2qNW%{ruS%=09JyYWHG#{Y&^k@ddMsEJe zAYMHaKudN2t!a}X+RgLcq`?lka^B5raeGvZ zeW`jw>z8&gIre|j{{`efdGPIr(2oCBd-Ny&w`BfLY3AEj-q-ylH%I!1PTv?0_xFm@ zogmJ2<2!RU=H2xRqc^FURIf$7{_<==C56bkoSo;%cl*{Rk=Wr|J=Wu^2lr!LaEFJZ zGR@;~>@hdtDX`Q^Pulz8$di|Im@BO*n>tSM;A-E`rl}Te{sIU5I3FJ3p?<37YUSrezI#N#n z6!U~`_voJWKU_~re~sy`rs!yc7SvFpr3$V-h0T@YiX0@bOET2&k-kWJB1QbJ$vC;C zWR05jjm^+Rr}5?*Avmqp`Ivt>k-X^hLu-RjcR3MXqPFzXKD;;Y?imEs-0S=K+0UFX+DW?k5L7xDB`|H6Tj#njWHF8=pC79yJpEB$yMD66Nes7>6pC3pLlZ+8 z=Vw`iM@QG}xF4D0Kl`N&CrMcjder+u+0}^p%Y|w1DXY39MD>K+7YVW5rXhufF>|BK z`mRo2hLhmh;QZ$zz&C~_x|+p`?`!+IYYq>ugTK>p`zZkxRqnv6L)oz zSyV?nPnvMM>rGlFXcv*GDDm+DsPv#YF$SL-`elrOHM#kVK(-(ZAH~(bQ#4{)9 zI)kbW?m7x8JvVf`ek4J>7A z9yE68J>kVYU-|}zm`{^v%9z5q6v)Lb$c@7tli!D#KvcfYildgvr$ zPdvrs#L;|chaQB=G+Q{J-h}7F*)_VofiGXz!0H|MRE`L&2Gm5z)zsWcM5og$f`;>E zN(PT#=xw^t&++MTtmT?+8oLS9Ux8_cFz1#Zc|us1ZN}-$k?Hus8?w;<;x}&rXdhu* zPEKEqw-4y+tj(^q7r*0t`in2dTMXxy`gS?wb3Q#3=ytz`;{DpbDPMxv#Pg5n>imY^ zVvxRTSBW33lfP4RC-_=9eS_bfS4Sfj*YEhB;Sb!x{PJx#s2|B+{CYRqa;NeGw5(50 z-gkU|a?)S>>VCivCcQ6y6$p^~Yx@J=a^4M$S$?*my*i6z{b-DA&`Iv>PX{J)&C|*K zh2IbLSM}Xly0Ctne>PNsC+f{beQDa>g4L+d+yCZ7I=g71(G8A!*l_pej5ib7)+z81 z>pBRIv7V>kjNcwd-!p}0bVGuMnVE6x@9F*AX zTsVm#f(dVC1dGJkMUA{S2nus5nDB}2_9hwO!*&no3XiVh>P`J-im|E61oI z@bu*Tm~si~t3cb4PN`m8+77U9+pu?8A1Bx;%-PmfA7on#qVcGH$^jK^otzWzn=ko@ ziSm>`FYhNR{^?D7*sc#hd{MA1`OCvDsFwDA0L%eJb;3xqp5(Cs|R8rtog? z9AO)+7pK!o!gu||Dhk>*CY}6TZ*P91>nA#W*+y{Xv?s3TXcvq4*qTiPK)iT#gbsYg zw>PQ@0`&HX%a=}VU7LSm1>@~;X&nD2ZZL4aZHl-xqh}c^CLP%Ld#{bu%#jW6s}Lz4 z03_`g)lZzoeXzzsQ_iMeKGqhOJR|5sr^h>mWex$2-hMhQ5$GA?(*eVLbdMwt9oMA3 zzBQDVShhzGN03=7c6sRbCu`0?F{g-S#9RN_ggEuiFAs|L0gyNvJD)bS`pRT%b82qG zZ{JgM-qaDhy>xaTO?mf>KYJ~Bb)2s}!GV!Je^!T%9-WTuUB8l*uv{vr z?4+FoL?Qee6k{8*9jrj#JuE(2FLNq|vJFjr}id!8T z>MqmQf_j6_-xP&k)6Ng?AH84w(ResN=XY-t1)mJ9rjq@SvT+=f)924+DEyIeK>He} zacZ%?^YE)E=wE^)_S=`O4-vFI*EX{BzVsgPoxgoS>=#LV**%SQ;cL0w>upa3pql_^ zPn+i61Su)u2kBk^&CsKpD}T~HA8wRLxfJuTerklC#E(t_9@x zfp|ZG1byG2bMLKrZjmcDPygJ#i$%G*HOb9KCXAVpV93wcuLAziQFn59D61LOYvFVl z2F!OqVs6_W5LBn*Q=G}s-P`e7U)twU3Q?J;Dc?b)1F@@tZeZx^uNq(#lXwhT|FYFX z#uWCRSa#J%%Y3Qcdu0mn$O&jPb!XN1ee2L`{P`E)JdJj_pWX8{{pC(AdvfgM3~%V} z+9xgZcVy(;l=q~29o9ahorLGC{mtlnvlMJi9fxvaZj9G_OH)4|^cX6jl;Q|d}=}7t;4QU#sjWCIDNXHonD?iUBExk>ml;=rs6$C`#kQo zhdQU|UuB!Rpm)#^ZNaUN?B{ieLMj+4huu$2Z2DyYb>*P*Y}Og8=BODqmV;8p_4!_! znm6}%^*X{A&TG1|&dtC;QkERd-0`Jps-tl-GZ~-!-qW4L0F_0zHeK^$ii0q3C3#ZL zr;OgivWvY0Rp23lB0lZS^x|#})VLFC%QFQ2&pLYb6@Or zCKv<+cYyOt&4wilCoN9tCTE{J=IRGoRf|Le6*bZ!oLHM>q(c`NrHWoh8Sdf*Umx(y zKb4?2K5mYN-5)s8pa48kZWBh@y!g#CPQTc9B*t#Af{ed!KtBVx1V9^y6Jvvwa{@*Z zMY0Sho}PY`C^-r?RrQ>Jf$Y3^>>nKZE~+*sG#rhq+H57vq4|a6S={+xKKZ7)b}SZ! z4lLA`Fm(D8+3xrMA9Zz2_W6{Ej$Y=-VMMDi@nLk=iGV>cO{ z0DvwA$Zx|c76i;?i!uN=G=%MIBN{lJoeZ`1Q+(mgEQ-Uzt~piKV-Y{dUG;cP}y^QaHx(@jC@TwJF1jSWQd;V|{JW<05fwfZo}#PJa! zm(9Cb2OEWS(y*Qc@Zl?;IaIa?d6n9@V-8rGjPYj1lR z3WJ2$5Qltd0^CgrbR9HagJi9Avk^9$DjZ8^Ki5KaXuC!$r@uVJxCP%jkuJbX0{D@j z`BRezQOTYfCEj9`#jqFk=Zx`8^3*v+6GIu;-B1Q^dyqkY`n3_5o;PEq>$Gl+W4UsNX;&2(QVeM>)S;;-2$MQ(sfv?|`j)xv1_Wy9ID? z{$xxZ`Fe29!M^oLKDr-Lmx@HkpO>4wBOm$|gs_UxHlcHm9_vDA3Y-3EI=*-jxb2(a22xtg19{C1|a&uGdX<$thzN$bJ~yg&qwNS-^fK3SRTpARXL05 z3iM(xMGUjV5f}^U?41Tf{O42WiKi z-k#P)QUA4r?{>uMN0%nw1VfWoLr(eLqc3r190%J6xWC{2B;6P}C$e+H1wQEPDL}#C zU!vB!_8eRs(Q|==XXyIs`XIXyPWSYjLQ$l4-Ma6;t%d5;+MwgL5bD-{Vy`~4 zvJwq;*ii*Qryuu1*Bc~`qlM|})f)wnTPJ*$Lqv z-R{fyQcZi*UhK7A#E~yX&bNn2)w_2BwLL+bw?7q=JN Wd3uu14P~;uWzn3PS+-* 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 z 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 ^f z*6gtH{t_xDgtl85@-Kvj&Lnx*r2p|1gtB?n?+Y32u{1KVd1&h1w zJKX0?`gU?)v<1#uS;*tmKTqNN1Vf>B)KpmvdHwP~mgo39Hxa|BzuYvO-|&ntwiwh5 z|7L8Uit#l*wM_r=52cV;n5zL;(_FEn&nU~8p6gwyL)(zpMmD>}s4P;GhlYBNme%c` zO5YD9#Z_OZv#oB#EG!Y5lY6kC7y|okMvm0l;&^=4j|z_pCTkCKZ=|b(d;*)wRO`O? zNP_oEn)tNWoo_fQ&mD2?y??qfM&t+LakLJXr1$&JSfI6b?a$3MeFgK_b+sc9-&=89 z<Fc{Ntbj7iO!Z>WZ|*g}8ib8g~uzsE;L&NoXj4$gS8ElTK=8o| z-Pt*%<)kat&bceCMsPva7f#J6?XU=h7QEwYAfuV@F2$8&08$k22T{lSTtX{{PUBzw zHiOX|5`{aQcHZw}sN7dEBsx3mVxZOCv7b$K!gzVepRY*He*5(Z8zJ(1Zp|nlWOTbA zZ*zo*0M!TMl~i&rPQW$Bwig%4Sft1~tBvEK*#j2Q4AmJ#aJoy9MhVYH{7ra6nA+Jf zcoo?YB`!ftkQgTO3ZG}4jCVjc%zz0ahapC}KoDME+K<`>`aVKBc%MqLRq3hzp zi-3C^740y?AP@L2jyc^%74We2yl%XgEHM5?yBd@6us+pbJQ`?J9~(&amk{J7bLDLk z$^#gV42<_445VxB{m?xV>xM9nw zeSqsf=MIHYl`ji@OTC*{OJ=F1%9=DfLTEoZSfwAG-o#b&;o@oV1d71z^Y+giZQ zxj8%9&K2Wvt#M=14OmljfA|BTOl3<;V&Zpo9TgopzZ>HaR!ezks;B0wp^q)+7Qgfc zL0G2d&8xl_R6X22FF~DmD25+6z93mg*GyOA8VSx2RTnM9`t88WqR1^J|52J<{Ptmh zsw0t&y2(TiC$2Z9nx1}2kgScuJIuEa*yt;^q8?G^+FoQ7z#Fe3s@O}PUi9~Y@qw%N zQ0~{rO(utQRe1jP-7_RWaMRFv^N9`))0w@3E02N35=E*+D)4{nZH;);)SM?iaiK(+Z)Jd>3 zHV!@D;Vu_rr+WP9yFSL}aWNJOPEu|-?24N}EN$Gs$hW-27=L{=ed8g3Yo;+KxIX5h zeLnOX6MS4+9>u&5BLx%BbNSh0th8wk>Ladpa-lI8>?y8!dyOWY>Y=ZbQEud+!*anF zLw%Hqls#SXmnDkEO)y^UgZ1^nqJK8amUDjDmcM8tp;BD$-~5J#?#;c8;ZQbC@-Xh7 zax@1?@$$<#B4kJYn&`3nl@^TwzS{TiI9m_uy8TaQ<=_BY?eI~W2aUb)v2O=6CiChp zf1C`*AuHQkH`rGn8Mwy|Q4{O5^}Wh$|HW(Y1_Fy{4HjJ&F?D?RqsL3DVqzPf@x(r< zy5H{xZmo^YL8kFHo`lV-d>F%)n2za&G&6)a#6dyxMiDmETdc(|f|D3K*@!Qt(3Bah z@7>#k^W|qodn1SX;j2ULVU9MfuZP$=IRnIB`>^M1 z9EqE0U#2qkp%pq-z>2+(`MpnsXCun09zx7>VaTOavJ$(rM& z*uy`UyhD-PyDt-@t%%t2YF>g@&Etl(Bps6Lx9(01%CPWJ?dtKK)%=myz|qKC>%sZU zVaE3diqkEAUB{|eatySb6!yM!2@p&Yes4`EcCUIttdAKL7o|(owoJOBw?>VW`Qz#j z$eNe5d#`YHF_z=((LM)`>vqAk#s38d^WC>wBySJOTMoQTP)s}JC?j!7938A!Lvl${ zXl&^010#6Tj)HjxN=>dgkQ_Lu7-^$;d$^Luqc^imI!+z2a4%3;hxmFuxGMGpIl6 z0_gS!v+hH7z~9==%|IOHwn~YGn-CtvZhd&$a;-LSn&|h&qN*3q{M`$rDUK(b-M7s{ z5vTThAMW61b>$@VrI-HAmF%+$@Nk_c)=DtH!9l%edF__X`qNuj*SEFs>;3bCj=%lt zA!%%!gF{&|mT~v03tytzqR$0B$~@pBFV~l2X)TL55P=XZZ_V}VSqdwed{>;%*j-VU zQ63LM?ft-_r=NTya52qgAD&mCfBSvEf!$w}%1X+e_^U#BzyR^qn7-7(k4l#(3e7d( z)x6M$u5D+;vQn1`C$R{k60NS~i@@5T^)wky-_e<^KK(Q4+Ps(8VbKsf)0>fsfHafl z57%X`aQkcJH*TL*Noa7{+ivosSH(-Bf7*?(g1M;d8HRrMIw$a^Lwh1FS*|8F1?P}6 zFz*>~GSB)m1Fn`QSsvE8FQl|(v43J0AK`AD+cvMpEb@gysP}igo3`4*Y2&t8*S$4s z*yEp8zW9pZhPWOQNW_V&ZAZ@-mQS1Av}{a|isRO8vSC>kRn4{bRl^8!cckJI>FRHs zW?Oj9SXa%sgcLE~TgyjWSkbT?)dg8K{9pghh#g3T1Adk|4L}=jkWPZgVzL`(zfWLF zC`O|DhkdJhQCIps%tlQ_PC5*r!$B4O%k;pi|rPg z8{oT1@*yuz0sX`dtH}Th%lgQ7HPX+Ax=raq$5p=ZhOGO;TO51ygKylh5#Ko@5WQ+_ z9)=5PO8wT-gJ?MAD~^heaoPf~Zo|>g`Yyy`t9$YE8b^bgo4(`(Y2~lXa$3;kZ+mk^ z0uk;~a^&ro0~V_dOm_DBNhlw_`0U?|F&~RU{7)DHRtIc;=AuE1TRlnnZ@BuPoJ~>9 zR42oM2d>S(|AZ&s{)1cnW(oe!$3WVM-5ALQiSc`g**hKV5%{{IXw@8hlTt5D0LvsQ zS}B-qakTf_02-rokLZIENVZ-wM4l-p{bT9)U!eMv_kg-;4tG)Wm(07-EgF3x%i91O z@Aq$_y6GAsz3SSWU4RVQ@{7fuxozFU2J_lz5J1I%&wY?X??(IXCp`J-?+|L3tsaH@5WW=i^w&n z#V!P1@}@nS5fK;xw$|923k9>RL1Nu+5inQFHvg@|-9yIW=bMZ-R*STHE}-OKM@`@U zBOf0?dV6gA1uX}6LGzE^kzO5E+uk6mx2DU=EblNkD>03US5HhEc3n8SnM0;MOC2&P zJh~E3i`X+$(?dh1V8s;*)+4~6qZfL%)&l#{IwL@9GVEuZ#8l=mS|n7!~2cIJzUPmd9K}A>A7(Z zNxK1YVPyhVCrCqPBc6;7;sW}|MNIoF8km`7i=#6KWcQj#<4NS z&T%W~izDq}URZkYH*N(!pAW~2kC*#z{|;}lwI6h@qO1Wm6fciAP%Rq7%nAObysZr& z_S-(-V82M?VSV>BcKmI2C;uoerl)Y%$>VL zy;%94&i3jjhab=?uuq7;Pssdo{8hJpG*jpND$x01u;|D&_UzaS!zNOj z=5zZr9nM*~@a1@0_M!(QxN*>8Q+&quZ~xb3jvc(h*|kCzjC&)H+t`??0znu%#-W0r-T9q6_{$@^x`O9+eZ>*5#VI0rY5=Fxh> zz*~~<;pOjPT;Escdh@gTP!z}O`MvvJ_mzw&!KMoP=~QxXBWy;^;#S)M?NVVjKleul|?IdmxDrX4v<`>t`Rn%J0$r_#ih| z=tNAL#b}}`PV(daUVLh74Gy+>Phs0PzF`jPJ06-#$HR(sfU{W6+s*m3)IgiKu9bPu z?kmQ{&k9`EsJ|HEO1E+*coC7UCGQi9R({4HqH;vqc`T=ItN%gQq~t9eZDDZIC-Jo({P;C(VfAFxhbfAvl@gqn(p?Ea)x5<9r55JP>3Zimsdv79NiEu-y#xEu&9&vDP6dJp5mF`~a z5;fQMM=6Ny!PWb4?-k^AHd}Wp!2pXAY08N{uRcpbP+a9<@>vJEtxW~+`S<_8+}UAu z7=#|yiEh#bf$=u2*=$4H15~pVZ1eVT(8k>I7`$m5c7sPirJf0f-)^A0JG$(QX<+xgr&P6BeuIBLsSJTe9M!tOW22yemx)9XV#t75l8n)wcBafyr|0jR+QV z^OmIjFp|lQ{zpErY^>pqt8IP9$}Bw{(#R@-!{)(9Pwlp;VB4e~YVjc84Wa*7E=q92 zv76pzb4@U}xwYr$M$jURl*kJP{oHf*BZt+>0dw|n;M?A+=wfZ13#j01j0}hBpy=j;{le!zW6iwxY?#zy z^J8tE2UxQ=Kj()1g|Nf%)_^1wxemDWgAJX2aLy0y7n@2TTpu88+uvxo!wA@ZU&|Ag zO-w7eaOK+^L2yTN*zw28dFBTi?H}qRha7H3QIIL&-0SyYxq39k8awT5IaVjeSO3|S zTMyg_?uT{0@qbI)={`R)GZqe($J1xZ*?sk*y|t*&*b23X>N(p^E-S_bgGkmztk97+y^UGiN(@8WQoZkHe75e!J*$|YFcez6@ znGB<%-Ev;cN))iUYA5lt*Vc}GXWi9vB81pB4n{`D@NuxO6QK3c^*GYDL>9j}6ljdY zf1DP7F{L7=HHch1?Qp~ic7V2DAb9Fjcr`y)z+nU=g~t&=Ne|LNcdqmo9v8X#n#a;z z?XI)RYf<_m6$vCIJfu`u>^roh(KXy}Jmf3-^d?OgcmQ_zh&b&MkcDkG=Q7#Ks)B8Oh2 zZ(XJ{WLaPm2G?eViu}3Ot`g{Wt$r!==eR{KBfooooFi=n{3f42*YmL3@Svv&B7qRL zmX$%I@d_u8<8T7z$;&&^@)RiI>kL<{0(6qOq5L4rf1}uEKxO^B@dhK@z|OA)z^>Ci zgRcPStF7-noa6-F4hv@UO_RkEZ!>G-skQJu$B3gqupUN+vNbxx?7=W<2i#lR3hr4j z8!+BFEJ@<~A%^>C=~$a;Y;0{$UOLwM8{@OTA-i<%ic`hX-Zd=r*&I%>6!CJ7xQxBD z_YksWjZrHu653hMn^)R!Sib)DB>80VXPm?f_a^G*noi{4xWdWwf*+Bd&nmGx707!( zDYX54*KRcJ6UQ9)15Ija9z$Lp^ih8fb&YmoujUNyvUxBcX~{?I&5->t*y&avz0I#1 zp+X!umiwZ9@>T&(A8KGHwsZX5cjK(1vAX(U(e_1gMRs13p+LMGUoUHWw!OU>ooj)k z4^36s?n~;9?8Y}u@wEPDrIZ+IbFB!On6u^cl}R?3f@@;l<$Q+SSeUDPykd=0b52># zoT%Ua85q>q`2MiK;+3nH1qlL~G0X=KUgOdSf|~hE2+5CCpu_67qIE;-EY#{CxC~2? zCapKQP*lgQsjPXqXg%NZ60(BKxpm&;ILz?Cr7L!Gh^y_w>Sj$EURYVD0;<;u4%+08 z4rL#poo+}d`Hq&Pz-mm4!J+>RN;sYp8R**9%<(o}4qIF_otOB(A{0bBUVdY*@2i3R zxNvgqXy=yzRi4SQ^31=9i#C%mm+$7OEZ-r@)dz9=oA!p|;=W)J|FKu1thPXunlz&4 z9MWFwVO-f>TKHl3V?LSc@dtr|v<@IC#pdR4(~}t1(f%8s zp^3$-4T4K{8|UVfyu4wEuNnRRNi5@I>w71EfLQHr-L*GZ2;F#@V{G()ve!r>=4dPk z%5rhepd*e)b%DgzsS@lYmG6zQcGFzcMYq!0x_>m|7?k!~{XNY4Y^?Wo8m`7yE(gDz z7kvdcU*t;{Tjufi{_#-6=XIg#5V!Rif+NxlAr%-BGaKiChkW88dv!nHsttN-|JF~R zomrHd4~4#btzD|(n*-X*t$D_Px*oj`cz{Ao6ST6l!9vx;w8b4b{m34lR+cuN(LXyb&mb;z!5?EOdksjVy~KH<7B1p2l*6r@6>zLRRp9tf?j~fsFVe|D z9;3z9I*Kt5J1Ch{6Tj_*OU#GtNv##_7o1 zK0Sz8uW39xCf)uL<_Gp)F7$aLPkKHRZb*jGAYnYN$gocXt{)I=!(Bd&L%_@>=SW=O zw3WQEq&;RkzZ=LS1<*^4t2ae{TNd!A#^T4E(XNcV3d2>GB^!dTC zBFz3Om5=+JDSH^bFU(vItIzl9JRK1Xf+7%C*P9^~c}@kcqZq~HXi#*&!oo3X+;l8| zfo9l{+eGAA(64z0UXjX=7KW%+Be+#l`%V;N3n6v|sh8Zp@RElQsfYS+*XV(Mqjx!P`jQAXU=wJ<7bv`!kNjfHeh^@w|4R*atLay@DaLy3Ly^_$I6ohP4_UEA7n>Kwmp4D*{fkqjO_2+wm=T znwfH4Osq9$PNz7W%c6T*D#o%O%%k@+)}AlkyhRqfa$N;_W^t^6<-22h`g-oEPM@fH zk%M1i)mFtUwZBa|``r_;CH99i{?1NwEqi<(wwmfE5!=;H1CMX5RV&r1m=Dj`n90kW zd(L%UGuF;AYvV6JoZ53(@1`)LPtC;0%PT;%H&$ZMl7kW&QWe-5nUB~0$*&n@+faz7pP{l{f!eDW z*U$Yqjv5+~5i-2K;wk22{f1=@I`ngiWIydJv39F7whVytS5a%sxEO7}6j>XTFP^Rv z{^X_~baQ1@@#&U^m?OHnloXfWJpKN}Ug)ck?eb{CU zzYNgTIg&xR%^^9b$Al!F{pOCkn=f37YjU!8j}ahlTyW@x4pR<5n_sraqZ%1Y196H= z^}x_#cE+RW$!lY@X6A`dP@lQm*6bnZguQ%B%tX|2DFU3Vy~ncM^}LFweYJU3jl~;R zL;E-NSOF*|rTENc1(wW!+gr53+S=;C;TZNgfOCYG7s2|a8f^Ffr65Aw`n&;>_x40F zd08sstyhlC`|?I1ywJQnYwO%~-q~*8o71yx&Z1~f!N%wQ_hG$``Ma6wT7@tW@5>;K zJQsC*_cK>w7}MBXye~Oo)kHZ!;|V^T_Qdcq%MI80TF>5-G)a}YZsxtj1RujdtDmui zW`0JMBI>aLZQ*!v^_HQ+_c;kUy-p^pZR$YEOPb^;PtU{?+`j*&fc5ad#caH zHK;oL6JKA@^3qIwR*a6nUs8t?;5N<2YuwByAoVBrVb48Aj05Y3!}bXT%jSQ1Vd^!k zL$zH^?`qA8E4RYjK2>adZ*$rjef=m9FBV1izVqlxF@|CK1c4t)hsC4&?d?M%Je~fS z()T_%)(Sp*IqF56u6ySd`*Y89kOK8GJ7I5A7M>%5#c8UvcIAHzxf-*2Fi6|CE;d4c zKvIvZAO5#5Tugo5Z~0pT8F+YY{t$Y6=+kc8n@cn^4G_?MR@pum0`}1Zsky@S70mZ- z;^V(@s$mDulUpa}f^|0pSl+8vx6BY~W82YOjY<{Z&A4&sFY+*b__Q4TB>=eN{ruz= ztoC;_6PQ-cK(O>_tBpyX4sY#M~~BWzE9;kyjJkTlMCGT(p6B z)y}KYWjtNnY3}{>f@<2ch=V6TjS+U?oW3hEg0x38uxD#zd3sSUZ(jbZDVYf%BnH9@ z+|?$!J?9t=IhU>PR#>{$mU0m=@GB6X>Ge6@#uiU~pBs&kuqHOcf>n?O<}Vyoj3^28 z1|}{mXvw4ZKM(1l)Xn4KmsW%j-2xXMG$5l^UCQ5n4dOYI#DEqdIr88<6H8~YJc_TL z`2IAd& z4~AO#Q`hy)W(rLe+SluvHr$ZBT>bPZ-qj>G^h+xD8{EpqScn^Qj6{<2p{N6Ip=tZ) zE8)+KGdFo-k$M^wdtueo}@(6E8pQS7YI#CAgcReJILHdRGDk zwC&kAJ0;fa9akf7l5WJ^T$n@qz*N64`C8VY801E<-Mq>qTWvhl?Xf{(vhd3m)XmQp zF+Hqw--yO-mTI%G%dyLJWn=CmGsEZLP6BqD34VszPt283N9h{1Nky*mc`=%F7Z<%e zjnSXH{-}lHtMpORQY66<@V=i({>mb;q|28b1A*X&ydQ zX+M7NVPz?t&Pmdn>J}2V!!S<1sNKJ;I?eL1T>_4s3owPUg5HUk=}=AlXZrFa{_&J7e}8?;(&xtF>cdwZCIyPQrt0?e_zj6&nA}$y?S?!-CxL)+`zaM z8dV;ZQa|v!AA#>2YFN;pDfUE*6wQU{9ygKbB5E~mvav|jdkSk#P^gdg z&g1+cSKh7#^hqI6e(LzjvFihO1)*ad^F=ry~7~!PyvsHpUTL~t=5ylcDXYAVtN3IF)joPz z;j|#-uHWXF4n|0#)W&e&H-9-R6x}xG3OEe&%SkW4sd4#dAL}go5DE^PyP8@v@h-zc zFL-h7+i-1#6-=>^2$Ues*foE(L+;qpGL_G%6qL~D!;?q~Z(lj1;YEn-biO!T8dv-2 zIi(#p=gaex+xwxJFfwUgVqZSSGmuADJsh4lrn6Jl9F8aWT&tAvr^H~-PxAfLmA{B^ zPMA`_=2WMK8WbMbDR-_=W0wY--h60w+d?hZ!g;n$Z9~Am=U6)Bm1`Qo4+r64u0E5? zSA%G2D~8X1vU5T?j`CqMXx%smv?sne?>(*lVrlN7+(V3hiNrA4=vUE7x47={f}!G& zi}?C^(r+yFKSg!QK__iEyoy%0_W|-m?cuXYJdr3{ z9cefy{kyJUSi|z+ z>iqQx9{L_I;I-)|_VYd^nCNx;Zaa=6c8@&r{QLl*3Ujf3ETnrTdOG z+6^OVYYY;VE`o?XFk9Tsn@UvSz#~B;_gMj^`vEle)xfyN%KaES*LStQI+wS8)}t5p z*22j|efko@cpUw}MI_ZPu7s=8@m!EN2&u0z-`cuOrl83jBzZ=aT-qzN$JcrouY48k zb0~G=3=10J2tZ!;ou{LWzqr|tcU-YG$L`F4ISj46)}lTM!nKBuo2Q<|ji>%<5^wWM zzE~>lyPt0kng=l=GaJ+$jTQ2qd1iD5dm3wAI2P8Cmmg_5=2EZ-a;pYjwdsR+^~>Fu zBKfs>y}%b9FYv&UVX|fViUkXAtsKK^`uf3 z!k4xZ0L!lJa-^x3bLe;X2NcfHndEEUu}64WboJS31LajyS2*hk{;I5_=x-l3--lrR zzF(k1s(WZA{)g`X91nRq2Bu$p`q_i95mL^}J*cGYWp4Q8tH3%R2geLJ4%aTd26x#w zI++H#an0vXr7GY4+*O~jQ)w4r;{`EiqHy;N|gqy(&^d^(;EgB5o z!=KzjWq@?n@Xj_J@_HHdt)Sq57?bX0GIF=}l z!dfpHtBH2scqOGD`YxP8QqZkTD~gN4Nq!@1=6hFeHld}Ec= z8qwsNd`C2%dk_U}p|Q<~;$!d0yuzQqQlm5v#A&Pd>M<_*&FetT7k<|()=`L~lx%3x zhwf4!xBYNKzNaq-XM?t2R&%{%WK1_rY~#+A_R=;!U2pnIZk>dxL-=0Kf#e>)IO)QN z*82+>ea&iSd;@WnMZ<6Vj?~y+{esh+R}a~k^-zOAOf;Qs z`?4krHf{dpPaqx$%sa}cy?TR=%AA7RlwbYd#=i}{(aZ7^10KJA^C;pzb=7+_Qz{hPf1DjFbcqM8a>GoH zpS=w~W0{w&wkU5#_%;p)(VC>~7e9nj8Sumy;2-WWueda-fXg}wq9|;s$XC!gLb;rtof@J zZ|ti%oJ75aW23(3m34iq;lI1t=(Hwm&9`~w95GS-BkN)i+@z0R{Iw9x!@Sko!?*pE z>)BiTeVCN#f}NM0YA)Ctw-~uz*{4}g{WWC8H(BfqgYEbRw7TKZ8q_96Wr;5EWS?dx z$SYb5#^arpi*tJMYHxz+&4H}%J%v`IDT=vq)(xXs(^|c|Iu7L0KWoDE58g#RuDzkc zCmPuGK~R&!x*+xY^=~|*RwVfN?1kRgi+NnBTT=HX$5$uo?$x?-weIu#hzy3A`^Q7` zy1XPK@4W$}XvT=!#bmRo?$tn<eai!1k-FK}60^S@suUjUwxO@f>C4nMj z4HmO}JypwlhS3bH?Z9OnqRzXItKZna`(Uv0vca(>GR~vDvHDD7;<-e7`jK4m&)@iH z-v2X&R7B3Zn!|g(lbySY?{lrV?=SlR1P}iLdaD6nTuW1=Vl9{GQulX%EtbaO;_pW= zRJdBE1LU7<=)a^KKZ7tJJqN#lpvAofMjc*!aGhj^%N{!mxcQ3*{_Y`iY`UnvU}EGe zvQ2ba_TeGzBdNp21l;a#4bTy8ej8sNd>b1q$GvB1^7-`_`M>pRo#ca!r`+O4I|c@} zKI_S;XTq?Rn&rY<_(KDzn#)i7{Xg_4x+DQf2?oyh? zq}<9=1M@UL+jo|qZJ$qC=Y_T=a%UziX&A%yJLH+?n`|glH*a`ecQqK_ zF9*LGwTL6Q`sf2s^V+^-eAXg?+J_BB-&p3=KJAs44t+kfsBMpLKCg~ogR8gZ)xVl- z96kG`yu-<1pRV@vT9wuoV~4O&;MAUh(|0djW%AL%F~qL9NOyJ!kQXZ(amT0_CHoXf zmjBEmV*E1keG$}SuOHGpX)dF2&B^?F$r~+WJzqRVshU-Lp#~?_f8;0e_8TMVih<+T zxCA5(c~FILSLgCIZ`AE!Hna(k7W{Y55I+ridD6kwwdR=rJnD%P?srY=69aVB$#Ztt zD%132Q+<^tCf5EjOFqTz&q!NvXH4al=v{ z6wWdE4%)1SvMU`WeEY+N_c_UOrBB13QN&M&yuE^HA6)0a_R0MyN3D9l-Ov1Ilz;Qg z&}VA+j6rJ4Ow0`9Z;tBCvb2Q)0}DoSxi_}rC_LTJ?DO)J^YZo)sLw}LdEi(SY~0VZ zZT_j^%iO1-Ex!+52A$sC)RRetz|dOI-Y3bD)AZ(F?LuD`lIk0c(Imsmg2_ON5m)W# zffpH1X`xC}^NOsDKCszlV{H5CFxJk*d!PbSoeB3-)*KU{R|=MuDE6@37Y*sgpAotdhxg5O9@;@zHqRj9xsu0_&GfOyU~Z z?_&2WMsN?phc%8FbJeb?P+S%MRNh%(KC&^Y`1 zH2gFV9})bGrCI-1f^&eEU()*^9h75JIbWWIT$141q|#_=%vl|F|H9Vf#b*rkzpwol)?kx|)ie*U;#3v$ za|#sLtLp^~uWEDSr-5Uk*;?wsLJ%HjZ(Q~=N-i8$EyMnL%oU&eQspLksP-eJ6IEfSAN=u>K7K!*a$r6(7~ z;3QSyW7YI7C$aWLj=b}B-HR-SI@`0ck4;_WcD)*tYjGW%>k5FZY~-&4C$CYRTIpo9 zB%4KLO^0Z{8$ZKs4;sg&qZXHUxsaIQ6`Q}DrRdyI0n+reO~JL`o7p|Ih%mh_)?;hP z@e6^dx%gln>_rfV0uHy9JMPe|ipDRj@W0yt5MzUJP&lLzBciqOHb|Y9`?ptz@ z3$YwOYt|ju1Uby5D-0+=`G~6-ab-|Zv~qv*dOp^xJs*>|cOb$htB>2(gYgA31|Mkn zlt7R~+7}32`#aJb3@yS`ZysJFXN|=BVzkdBqatVfT#9A=9ANpgU++eLa90j`EMaZ> zw##=_+;(P2WdwIFSW374jj?ByTuxZ9hxGMe(OXK=UGbItD@iH6NDrf6TTaZbS z#Ub$VHabR*<>!GP-}2KJ(?{18F+LCbvR&Zt^fRtb*8yxn%55aU{|E`-v@bUi~DkS@LXrg`R4WB9LX`;;;E)M z%FLOTKJV3UXw%Qd3kr4O5vhK+EHK{qXx@(4gT%(9_1JvUnQwoZ#!)>zF+k#e=1ocs zcomGj#e9wb;jP{}X*|>BgZdswCwtoM(;Fk#iD5U#xwa$+ds*_G;fZ11KMO-}uE)Ve%Ai`Dbwi-FnV z%0d#@_qF)-EHrklL2f+iU-7F={fWd#Pf*u@ynV)g$C|@)O}VF7C(iL)!*H9s@-ZD> zGmwaFWz*a&>A5bm#AwS!Q`a0q>yNByNZhB_XGn&SJ@XoY)Xr^VCq$z*%y*Vc01$~9 z0gTrVee_|I+C4_I<+@*P%Q|QEzg&RER}4Z!OuIZKC7*#*KmcHINEP7Ygq)@ioJ#j=^BFO%Ty zd;QW(@$fSu0rn-&#cN)-ER6Z(t9{S2#F2lARUe;uX6F(b$MH0`Obq4xl&5tyD)8pe z-kTp{4(l4=wYB!8&mT8P$?)~dIkLG$p7OS6T9db-nvdKcOUY>JUw-Bv2V)@D6`wdR z==#NVzKHwu*48#J*OsoFwztqwKpbV9v1>%^To_^pAP)X=a={j#wzbk%C|*_6F=|1z zVo_+!g*_|1=JtuTy;c~V5A^VI!nS)2S23K}W>N0pjh{9CqHD|n=Bt;ZzxOc4HGp6o zHa&{TNe&#IHyR{tVjQA5cb3C!!#9pLyyVqPQ)az`dszpAoxkwOn)2r0#GBD5^f}Ge zh*9GpGl#Fd+jw0&`nLAtG0(j`#T&lxKzTW9&Kii%Y<*x~Ra4Dt?`W8c; z2FggA8aQYJx$a2;&=jj3ktBs)8)AwjSQvX(6 za@vt6l0zXQdAB}{8UtBmXH4D337PQ5M(+OMRSPlSTFTzR0RQ<(NO>puWTZgNVwxLG ze3Xhg&1AGy7|-~P+fb{qe&&O`^+i8#`l8=ZVuXjv<-xq7_L@G+QPB9oSF!?5r~I>KVjCg z0nnAm1Zm(01q0FHZXF`H08T)$zrjLSj#grs;qYWM2Xb2cdJ~0ZKsRZ|TU+cHed835 zTFB3y=nhda6m(cC7at?Wb(ScJ<0Oiqw&?W#!wE!NwCX)Ty2QK%V$LENzcAwR+VCft zz3A5K@T6l|oI85kvJr=LwlL_MlLY+UMGI7yD{A}F^T4FnI4IGQFMYLjtdbB_uH@ry zy!jbP8%RcaEdMI${P7Lk4f3W3I0h4AyVL?8JN8^JCRgWF;j4kc@E3q)^;XVzwI+Js ziC|0De7Nw^2L;BSJ=z42e{xp;9A?7VcwoiVx(`EjI0Tu*`H?vaZ$8#`T&>$1-FSlc z_6u>g8iuF*MF`GZ@$cMRqAgFX%)c8wHq8rp_QiEmBQ8eJr8l$YLE?MU;)5IADQBc{ zxL%EVhjs*+>EidKK*3tC##X7%%>_MuP*AFGa@6lnw$(caWW8hlRRI3>Jd%>5@@o3b z>3OXC^9-VUAG+`}3pHcclxXsKQ1;)4>B&mey7FSs79IO|$SDLGUYSF#?FWWrf9eN; zgpU5Q`9EBpi(>1>k|f9W|Nrmq%-DA$BC8>JL6PXLM^;w#10cnt^O+dgpXQJFc4u>; zE!y0%aoC*k{qt0f!F9gni9>o9n09hfC%$L%=iG<;D)jO$X5O=>m$7g3H5Q!s`fq)s zx2>CDY-fppwmej2gR*@~S&PE#FP@}YaI06E-eKzOm<6`8Ue*=)p({BnE_9g|BMw-MVD)zZ-W>eiY+&Lw&ON5FTD0;JKNf`V1}P2~_i}MO_s^W~ zx-Bm_?>UA)6*q?QZas-7CpUg;XJYhA+0qnu9ClNNK$e(w-O?5bjwk1gQh)86$4yv` zhIh{S=~gz_9t1JP5sl_z{g6~*jq3~5 zG^n5j-L=dp%qnpFBa7D4hb~9r>a~9BN)PzW2-`RI#~Jt2SwlMhl%xu=9 zp0&27*(=a@MCjODN0WLqJ|FK@sGD!}LX{vf%EWTAUd1lAI2B-hOL9CH;a)lQfgbAZ zTl5RAL*<1L5j0osV&h*3nOYwPo_P0-^L_V{s7~vk&^%7nwc0qF8F`B<@3&79+WAlr zPWH5un5}BGM3IrR*jl}_9r^K4wtOV-n1CQ=HFVz*)BJd5NN|3(KQQm~7tbU7@u&^B ze5Ae7W-vT8m@3i6bixm;q!7dqgZcIP)j+QD*I`&Qo80?1_mS$3jeAb}iu4xr^H*M^ zLDhaA6hsjGD^juIn@Au$;S>$p?YHt#MH)e#`#u<4a53c3nGc^|owLW)xMHqv!$DU_ zy!^J)nSZg+A#VKiDp&iEXxJXG9S!kwtc`DwrdWjRh{Z!659MO&OFJJ5G@A|X?laNN zWSn#p+(R%!IesD()*9%LMY!qFb+x;juy2fo(XWIlFK08@gLQ8{EYfBVcE$9Upv53& zza^4uJ!W1i-3+<>Rn($DzS2M3+^ zUz?v`SYM~&&4aw;g}t>mLl1ehH_-L0ofnMvg|a@x()P<+C%kme*fXr$Pqm9UqT|}u zE`J@u_eE!O@k~qqYg?@h;iyHw1X6@zHuEubW#-&iSSu>GyDw{DJaN5V(sbO5kDX(t zjD$to*o0{B?%8O@KzU6Kr2)3h*d@zu7X$hziFLCyN5?>Q5!fI0;j+`l=$Yj9aN`|m z16}Pj!=O4|P6Gs+T9wm2F)AmM?pk0_bIRZPl<{R2BMmsfwuXkxIFZsll4-xp_Ae-{ zhWd?F{@AStmh-H-SW~eDuUh%wTt24y7eTjm>doPF>SV*X`uVc)EJgxk#M!*ja?wpB z*<7RHJSjI{l=IZ8vAO;3#Xc5i1QH7GUz#f$;2^AXA6Od=jQktOxe}2eurlV!4QUk|9e!~L(1*C# zh=MiGi@|AJkF)52DU0jT5M7?;?BmUlwLxoaje`+Cd!Hc}Vig}B?+fzO*ckM*)x`v) zL(0 zQQ}%?u5ArbX?WMZxPC$_Xt-eR{g3k)N%JV8^j!am%5&FL&`jv|FN*@ifBo10iUv2@ z{nA%_pFFH3qG$;U=gZ{2ZYbc19zxIW& z42T$+vCPGM4Yj!-ODcm>ecWc)wFwpH#TSR49RfIx_J}Q_Q(|L70}THKu{jhC!|1gq z(dMx~rKJ4Ej``=@23CWP)|G2ZD95kdFmO_uleOoftIysG(9oE}8fbCdax*m#^Axd~ z(UN;{BWoNd1Xgb&Xu=*V(-piVaJHZ>?ig`~SH;v$&K{$Lhk^0c-k@C&5gK=-GS?Hm z6AO)i2*S(XF6FSIfuzYM$NrOoSRk8DH-kH0w~-~GV`LxV>*GORY!A(@+0D*NE~RRe zIn#17T9@qY4_U12vbAMV+|KWtjVt*we_xwqh22@DYdlAEf{*+RIC~H0QR9a zcF@RPd~HQrRL9NE)xuHH#`tko4qw{JcM#K=!bJAbg$R4w#x%D+7-gq&jvCJwL;OXs zKl~FJJ&r{+at0Z*%N?z}h`Bl;IL@M9e#Mk4e8hk3?DsgfaO&{vQzBZEkm&k*^gE7L z0Qji2nx0o(Pu9(;-_A$BiAwwdQI6!7WH2!aUPgyL@jG)u%aj>tmb-G#Fwof#WO3ix>9R zV55-(dd@cY3j|x{z{#T=*0esWsr}i#mT!d2>z7-&+O{L(^S!@~vob;W(Y`7NL0d!hU^d@vbBLE*J0g942yHuR z?$z&G34H?|xn#swZ;5o*#;nyv9lO{YvmmHcn+RiEZ0x&!2cq2Z-u{@6eQ|UQXR&-W zCc^oL@5;Hvu4TVVZh`4Fa9klMy`_@BmFhkLKoMG%*qeX<8cj%pWiO%)aN!dNfV#%P zwZ8UutiFyjPmiZF-wpVnaa8mw^<`%*b+w>@TXSOzHuhtrCnkl#VjDPq)>+qwC=RyB zsus#PTA%V7s^|e02j9*CAqJm1cFjNe3)h@8T{96=^496>JnfoY1XTsfmXzvdc=>6#HMbfVQH&nuBm;uUl^1k5GEUY)y|JvMjOdY%u_fdb$$sQ!kF4=lsaI}# z+dxuZ9aYu#?A!mVG_p}BkKI$qL|mTOL@F%yKV<5nri^EAGQe%`n50+%8=9k>R_yx4 zhfKARyZ+7z+KrW>N@Qd8YXnNbT#y-@1lvb$;63P-Wt-jj-pZb<_f*{frj|)KbmqhE*jy+P|aO? zFj{-&93Fb*GR4kTRh0OPmu;XL^X%o*>(O53n&ydH7@X`KzCDiaX>DH(j3Jz!`30Mo zaU6&DzDAxMg(sGJ1m=;mDET}yYp#L)c^8YZZW^fopeG|z*_4yS>>0(J?Dw+-M%tJ>XDc=~CZpum zY0Qv!PQwceS}Qa3UlRsw0xonla>VD=Xx7NC815bYLI8W+w)kl^&xk}bBwy~3+CEGa zo{oJfqc2BWjh#$&Y?l7)VU3K|JpHjIaooH~Xg!6|Ov{U-&>A|nDmU*hzl`_cl|Ef3 zJ-eY*OYEuxt$8T1rqQ{4qYgew#%jU*W}rfAdm9^XBQk+DN1JgJ0*y zpvZs#-H%`aEPKMm#DH#3vus&jZRj#2embF#TJ)TvSx>>LBY*!y(DI$_zwQ|@Z5|PP z^%Gz@7{7frBIdj~XI|~GNQ`g3n%p3+W{npjH7cvaa_Z04iH*WiyzK{gF-k|((7*W$ksnj0tQ7;)vE=;-l2Njtj#jWT930u3J*t5i+63^JUJ^S z>iqQyx_H^kPoZ)#FwBP6?@P4u$pB7w4ao_y^J@Gp2vTVzvF^=oAemi4Ke>}ANIl_i zxBRg{S2*=T8e_(r!-%q%XLN_E3DdSJtkB&lXkDqr?AmqtNug`Dag_1gwT-;dZG1R8 z#$b4iS3tVpckkuX`hwlc5Myn&=Vd$@HrwIEF+KQke&4L`vjqD6sYyM47GeaNP7rZ^ z*>?Ihgn)zrfoe+s-J>-p!aSmH-C0Q3n6C_tC6_qJlJ@4DjMwtRb?ekGH?noJa2&A> z%$iv>^rzrpapxjdg$Mv9scilayH=7S)?*ChBL?* zkZLo%*djXg?QsRx7$rf<|KezFENj_+o+Am`9#L+>?Z)446{=1L7>pJpeC<_^%Qjt^ z`_ylPWwq-Y-#8S1nBym^3S+;?+J-HU*_Xk%yZwHKUWCIl69Gqyb!M?2o;C}m6 z5d=34+#GNH*RGKw^{ zIF-t&bI`|$=h=nz+K9yVKeKK#6qLe6YP=3B-U8ED6*YdSqA@>PSl~LZP?~0kZWMc*?bz;>m*Hqy zNo-6hLUm{jAzyg#-Pq%AF2nKL&E9^*&jE0}JtJL2alNhZ&7-;FnBASTTTS%Qsp(_T zO{XyTbA$)(sJXGAOt?t*hufIGkbvGHEmFwlW$W^C>u80_~?)swB z=Wuq@uespIzf7Gl%%ZE|E2UBPtq0E@?`&)9u$*o*6&9-zr|!_Wr`8D|N;=Eljf_FB9W&{Za$HjO{x^Sr3^Wbo*fO+SnK4`y1PV1fds?pP1sbUs#v>g{@2egNfIe#ZbQ1#@q@nxs4Zsk@bAK zuKREOU{L&uYwqI|o;rwlv+7)~{J(0W=U-Rz!J9>B1EIYGc?BEitf-j`t-0A(C)M36 z$rKGX%Hw_YdO4Je1?jjr`5Q|sAH!&#V!P|)^T9D_UOYo)->e#;#M$t;PqFb( zno6(kJ%ryq9=oc*9hU>Tw-;N&oI)@ocj103Y^1sUs)I;Y*7IJs8Wc!rNo;O3?-0HF z{<5;*-c0I1+Zd~J&d8Vr+&p<-6K(oiKJ?GzQqLElxX__4&L4T1Lls<}3f18#g#PbR zxjGFbEd|YP!7oN$@PYS|#KAalSCuUde@v@&=7(GxbLXSBGo}3!$T=u-#L=?A{ZHpB z=N&)uMmN8ey*Id2?ff?ma$!}PE8d>0z!%rN5c(!~m7$}5q%w||9wi|cbv{MIHq(L7 zM|P&PXdZ6$(M2E5t&KIS-Ot4a<;>d7HPt1|G52GI{(e0eR^vkc*u)Kum>m798^7d* zygaTx>9mdL>X57iCf-`f5&sO;7W2#qgZzZsvDwKCuMm}a_z90+%o3t~$~m4|0q%4j z%n6F&{uYkJ1ahD~uAb)Keg0vzW;8KoC+dGL;|Mx}*3PQOvcn7eeK_X)(H%kg!V`Nr z2Wp##E41nYbpN{?dTbgfIJbs>0>9Z6?VygA>(38DB}vGy2IQ(}U$ih8`4oYdHwh7| zQ6458VG!6&s4I@<5P%?P8v|8{t#2N*y9Sl(!^J)fPxu9VP`~DpP#)UsI%aRk#Y=ZD zUmQ&&@L~w=(>_QP!yzAaIa?>k8(f6`zkZs#|9IUluI?UA3~)AfV%0_L=&k(|SByF8 zR@3>5XnT_Oc91bqn$Ms(GxuTGZ2y7W_8#*NDgVkOU!H1==mFMZyzcalZmS3^8nfe6I895`h6WrI%l9ts_pKF0a`%@#PEZ1> zTkg9i8oQ%Hle=9^C!Kw9ZsqLShZfxKx#r#L?%Q$?py_Cu{>fYTUnJli3uNjL=2y&% zCz{5{isO(lesWj%b6udTAwObu9d3Ubw)OK^y$oi1wN9Z9nXqqXAj;Z@DZ*FpoC-9@ zk0hARV+{3|&^z0kS*=fF#HqAwl&QmFjdkj)F=J}I#kX!jdY)zc6DpakylB5`_4@N1 zz_0ceXFP9pc$fL69MQ1lr!{4-P1goOrwn6jjXeA1I`fEzoM~$FeHMu%^#}o>qeces zRA(4jB1^6X*kJwX{&J?`zW4jLNHCPt=D-ZW2DiQQ#{bp2`5;#712A$JK!LYN{PVe@r5joegfw_#WoeVUFP~uTMTk)k4|sU3DCX0+k4W#VV*7 zu!$0*Fvz;W6oH>6s|p;PB%ZSqfTs!C_n$;~(X%bB4GcXolrb3F^j5@@M%f!ZtDK*< z6v@e4|NJ?L3{-ri7GE12@iKmaR#=-I3H5`&BOwa5c}l(sgpVQLK-fgpLNO3W9va<6 zqc=u$9h`3b<41tO|KQv5H~7RcW)o~$dRq=HQn1`irGQbo=;Y^wHcK!jJl-4F=5iZA zQ%&dMY~yq+gcI8u$-v~0mAg4%kd0z5RH|mLZY4y>g2=66%|%?jqD-xv)IIR?pW$^x zz?S?yRZVR3T1oYjKEX6^fzqhlUbp3uT80_W+p)eT>NtO|vn>ibGDSnrAGvYv0+W1w zZLF$mAUa~n6C(OrKe^MUvJs>Gj&(eGor!DxMh8iR$UJiiX(@&}Va#bCCYd!7p23cvrrPk7n@{aC>x}&LZG-M1 z7ejS{4g2i}4bXT9l#$i8G5moq2S*I}iEbZ}XDsDpgIt24Gy98y6bpQ3H{M!G$P+L5 z;N_6aI$ijfgwMv46p8=-?SOifmwIn-Y*>~x zu8Yv)YO6Z|oU=^tNMzR_5*yJffIT>ddN-f)njSj|Wm|I0Az3J}4>r$MHUn3sH7O2_3(@=x9fPp6)c8Ayp_4+V9?uK4nx&cE+{>>scJh+T6}Y_x3*)Vh z`VCFGo2Tjo1xr73;2N>4{$Bn>M=nj3~af!C4e|*w)@yvcOMnh-=T6w)JrU zIjehbuH%Hjv~-D{7(8q%t6}6i$a&Zl#~iGIbd9Cf*7g&vTn|>~j5(LLs@uB@{wAYx zZ3LH;c%6n`+wo%1WFeQaxwvO0N=sBM+U>c-vn{3%3*;W_2TFG3rM}W56Wx-zUF4zN zAyl_|8t@|@_)0s3Fdf@lZ^-r5cpv^>z$ON54qf{tqHX-z|C29msJ&Xh%K7Szgx?KL9^U^>{XmX%4TZl_cDa_b3cNHXu61l5bAaJ$bw6wPFr1tJ+H1=*SGu0})W>V4 zc&m^$#i-pWCH=a(m+ zK4|p*&wM{-wD3tl1*=zKA9bblXWHTF2Y`%VKWdzN04+bV={J)o$( zn?SN$z5)}&_mzJS7|rg>HQ10~?HC6l-$0wBWcFcO6XRQV_m%G1OHv>-tv7KvB05sq zXQsTl#2GH~H+IZHUfCblOyq*2zLu_xjBC-E$1=!7 z4h`Imp?V3K*7shU8ICA;UV7hwfhgVUXfIq7dbsjiRO6eA3^~Bc^^{#QM?Z**& z-}eWp+__JX&@V)Iv>gKD`O5`;=dTDEM*T}bfYugF2NFToy-Rl15wLJLee+FwO*g-) zfi}o|eGegJS6V8+zI^l_zIu7=8f1Ks8zd7kt{eoHqqh1BXy>r#w-r51?L8(0+aMFE zlC#}73^t|wcVD1pie-ix$LfLO;v-PzgL8g|Nw>U<;oPSo71+|8Ujdb0?aBqA*ETU7 zUURoLOIP1O5EOXl+K#hz6SW9&)!w@9-p=UOSDRl4F}(Js%zqhIcZB9O&YTaw3X<1l zvx3qSx@n>vo%pcE;+<9l{7{rvX8OTFK|jR2npoF8u@IA|=jMuiYV}HC!G!St3Dhvm z0kVzT<8VHC_Qm<{gEp%Q-1)rMz>G&g_Y?!ogLD4eLt412!+?pM@`5nv`&W3wDF;;L zB&3Z@8THG*t}hwcFejNtl-|YntP~vc?SzR#=~MrCjlcWbAhq27rIU1juEX;2DFVuV z>>FKU^0RIXKyk|t+c4(47z&7p>Rk_pp(*~CtK;H47rpnhxFK3>Mn&Ac=w%CI5B)jz z9vHb@48Ao$yS4gwYmCeq^zn~+u{;yT8CnsNz{sgBn1Nn#ilMBE9TkhAqNk8N09_V0 zIQ9wRP4~)ZVudeUzGnS!v`4=}{3Mx76}x+HVt|o+@cL44e{=o5CFF0gDy+b8)QBtMIz0=cJdqE&e0w9UsFYhX-L zf`B>BWWee`LAZP0jgcKQ)5nTB*^KNw)gsD=qdqFyKElX$aY$f*!*fE~Mvi~>&Qvk( zk?i97H-36kPF>vS)rHjTGAl{&eB$ z*lB1Da3|*|HTtUBxM5&z`WFmh{u{RuPfrZZ3n!Mi<(=-=f zJ@t3q#j_LUj0K$@#m4F4 zRfD&_kZlYC?OLMU<}of}@a%@UiG{V}WFQTj2JU6UK}f09?dStPx|+X=J5RHq(M^CF z_14of{^q!>=3Bn#tWTlQ&&I%hW5b?L{X!Qg=jK*w*DU_fv&lLA3xtdM%&ssKchl>wHZ#k(4!C#g%N_#=4j4hg{`llc=4ZQ3uxb0 zyPID+>9ram&R#oZ4HEp#j8jUnmxTiThT5CbY;ONSYj?3gs}663jLQ!)b1fE0gqUje zs|XdMP_xS(OT%)+O`C2U%5L*5UKq$#qb zTdjezt)W$Rek`tX?1baF@uM9%&j{armKgZSC90@9=q7MoF14;5LKaiw;@U6T$xm<1 z&G}$dmWOT(mj80(A2>8_<-IC6w?CS4FezenDklC{zcj?CBCbOYU*`c1ja}2qM3l5y zqU`>VPQ270le6Cd^{{S@Lp=>0>*1&8MXdHgS;&QZ9%Y4k5gWT$3YwEl<~^R{pw2gv zoM;wbE5*w2HO96a1Qg0zd35iD-80tSxe9tB?~#490x9~w742DIgB_4|HpSwYbOiL* z_HlDAbgdV|>B-sV0~jQGoj&-=e+KrNn#hrvu(=^qvvrcFIlOUEDTBptZi|P+Q{z%! zGp$??Mww0Xw*6;)qs8a+kE3{6^kO_NdUE>NzwNz;JDWT&PVw`OkKHm=|K7-mjenZ- zUP+MLLJ4sYXO+=xEIiM{`FU%vUFCQ+e;;Xm zL(u-}io~(+7*Q;UGRW|QFR?$~3nm1j z8Sy&q35X%GhroC{dBACZJc8Qq`ZEHLi?Nmya)0oXV;n+#da?Q8*^<*M+sTcq*Nd|e zQ-p)IWur}2%_Hf?lap53&bki5v9PC|Yi{>1V(>uU)@^Lt47$x;?%WtKm8(0d_D8Th z-nZ|oiz7YfI5_UNtcYW-WOUEk<|@X!w&MHPswqU9(e7K^Jv~Ot>d2KIPhdaF#>y>A zc~=?CLhbrj-~)@YOlMYr`#T3+dm9HnPtibrnfby~X!m}*u88qoZxf z(Ke$uVxG;TTIDyC=B`fFZUC!PyX^KZ@iBRL;V4jUf(o#3?Y=KiB)d2|w+Fz%m75Db z?(@PlMiq5zy?=0?YAsGx5krX%hST%a9D&hgxZ%dH*xJ#g-8~&9#~^y*z0bVL$q2&c ztTCv?5a8eQM9d_{(J5c~3*hYWY@Z~dBbL8BiHy3EM~lsHcx7MHw73mEOpL<|komfA zYNOBKz#Vx#%gd;R_gt*Ww~id8jc}Ohu`95=Y7|SpJ&r?gApYe&2AXoE?^z1#>yeN% zmQ)=)dO0D(DwD&!&-TCQ7gl)RRVQqQc z*;vi??c3E5jKT5hdj$atgp)r!UthbrhU<8B;LNzHd!Jc~ZSJPE&pyOP0EiK-k80h9d?o{gL?Tl^Szxe{Le+Up#bvzAFJLGdoW9v1@Nt zjKA}#IfX7?T(=fdp9?m`-gQS1=7jNSie*COrAyr^AUpKFM%`0o!`L>UNv4(9d(+ki z(=H*lfdDLd0rmALgEi6j1;lD9ssx|i#X;9`1LBR&U(TFpdJ`pQgyW2c z*@wZJ@^}l=0bE;;(55#QF@lT(T13xcD48HL43;fYKcp643O1Pz7Jng$9(ooGI6nd;_1)L1{dYt^3> z$ej2nRXOR#)3D?8XCJzQ6v3f-fe9U(eYmE6CMYnaByzmv9$M(%(OT`0K z{8~$l)B3BC2*VRekMVGdy_@?$Fe)F%nxlF*@3qrcp|wz7FFsxHX>F{3eET+zK9cEd zTy7^Zky)GhG_lgk{Q4nDZM^Z=hZ^%~9>UME7YVS=a~>`9eF&k13KJD0V?nefnhyaCc_LtyhFZGkF_|MKkq3yceh;Xq(v^RY) zEjMk5y@6SDM18YG9vxy&)=dz63e8LL2x7>0efga*P~}lR)LKIQ0)=Ki<}Ifd62MI) zl*rouKdjom?D(-gr|ih-ALf#E_5<#2N)09Oi?zZc z&=>JnGxq=NGEEyd&5&0&Y@G+TojX@lY|R}*WIl9pE)<~`WZ5gn-`aS_;_c<#tmQp_ zEDBuZttn4s?dR0};S|s0iKj`Jdd7tYKJUZn2J3h>_bZwf)(Rwb#WBwt3v?cuuBqK( zt;#Kjz(sy*gW9WtgCVt+bpB_fhOU9;>n ze>u5jmjr6(j}f<~{lzv0TNuML`40Km#;JcnFuA^8eb3Z=!=ry{Pjh|>oWsW8Ty3Sn zJhk0DWM0)fgvY}%Ms+DJo{1>*B(G;X2t$4IBs*RnFU?z9Z@joD_`_@-($RbK#JOhF`S{u!Wb->-=CXkh2Yt>4 z^#>yil~ogUaBPnh0~^QJ7}~UVQQR8l}ec0W3fw&U$f2TXGl>_pD5du)ywXE=|E#zAOcxH`+* zIseeB7r3qw18FfAgiXq;lwD2q9ihmGqtATRYh|AwfU31amLr-LpD2lmoOrrE+c4ipT7OK}7ZZVpXZg_FpR@A5kG^Wo*=Zv9 z#r`l0r7d=^?hCSD&pu+}8Q*Xlhj7fnbsdk@TDxjXE#Cc}evXah$y7ISh`T++n#n~= zl^*ZfadPKc&Ym_N-6MBBY~-r3t$Ga@Fl{nm@Q`!kfjH`%tZiONA^ZO7mNhaUFL5~6arDpAsWK_^ zk^4Jq=vq4m=fA{mfj2)~kJ#s7?di)?tSEX@ri(m_?~8`$!_gme5A)-xpF$A~H#F4R z^Hk$*kX>9I1Fh6?78|9UI_j^tc}bh3Ha83_mVUGgXwW@R6L$R8I^SXTxp3U2=Ol?) z=l<#o^KSQl1n2_0Gq1(V+Hl0&7nKhJF4AcaqR|e~8NFON`D*Upd(#8k-sn77P3og- zx(Qmn#92KXV~3@_YGRkmY>eL6U!L~+^Oj)wm;MK7M%p<-;&R9*Ok~a#J|tJCopP(S z>0}>s1(8vnGXf8lJUO?%X;x|De`9raMnE>}jiCG(16~2|O%JveZBuh-dSGc-3)hG1 z+7q~6+K7+deM3`U7Df-T6>`$XLa8!lGMZ*8SfLVM$INwyk8l&vA4@;dSfxy;dDM>&c2>sJ5oUDuA zl5c%4ICx+-Qs}VR8)AX(DTaP@4PksEYnL2?Q!{ahWvEm^2V{@sK#lw0JDIM$e8$(-*lDHQ!l~1AYiFZG1gDmI}(n9Ptss z*sEto*l6v6WlfQH$aaBLh1lpO~ zkBiE5*2ixkh^_vbq1kbt>l+FiL?~Jl>u=~X$+o_!8n;6m#>94Y)xqWrHWq2CaY%vTU(@+hz|1FpQrRJ@ePLBR?2UoDI+pYzq9Pt{%LMz>5J?LYYz z5-U3%MWnYeDWKTZS8n7kXZn5fL%&y7?t*p$>G!>jcbKNYV`M$)gABhcq{f&efiW! zz>iOvEVsFO>pMAm0DLqRvGw}m-0eyrxLV_Ra843$`o%}5kiS!GrFv309E)*m-?j6|6>!l#p5ErR7 z`55QL*4Px4_6r5tqI4rcO~mjQ#*KA-Sr{A-PVtdhd^ZoAi!rgLa?%ic^Y#|>3-tgHSxv5gcRZ;E*4Jhjg|>=zE@}Ohm6Dtg2ZZY8gXtC{<;BBnXjFrE&b2;-CGO)>QL!t&G5r2VUW?PdB8Q~< z5u8{Zas^je4#{D|WzP1)6BX!7d@w|#YUgqlual_EYJY=zbJ-6y>&A!9- zh|mDF8YN7;_hj_J9kgwJ=om}ayVXQ?RWRr~m>`uqCSt%B!O9^&!B!K&h5_d&pznUE zfT$hgjmh&H&~YPXYb{7+B;%m*)0{jGqhy>!9P_RC*$KW!YZB9BG zU>Uv7g*R6mAw3M>IADfP97V9!@x$WdaCq|Yy3<3m$y-l{C!CHx8e{GU-2dM=w1?6! zem=HkOJEx9QQkyY_s9qr$>Nos{@?t2*9`*$AZK5A?ySEN6p=fAcH^Oih33bxt>)Cs zaAkmDQ%`|vmhjrl8 zNHHH}te|ok_yyO9wl!JZ)ID3}y^F+z;N|Xm@_>b=wu;S5^A7>BKmOKNRfg#5gK6KG zfVjGS#Yz#jykHO~ZLpo3bBPJ4z5So39qYI86~iBGIXl1ds8j1ylntLqYAxdYY>f&W zAmKdR=No7&!o$C_9Ls}2*}kGcMjp&DUZYLJQB>|Xg9Deh&jL-vh zj913CeI&a)nj5PUJCatj0btFP=^wU865eJM;{BN>r9M!bkX2ot&z1a8Allou1Worui!MqFP7(wd12M+LVx=^BKoGL zP82!$sf=~-(feSrQ1@Aju>?f6%{mvibGv>iY=T{ohT8~@a#$CLIQ&Uocc%C z=>4M)0!q7IGMMA@cf!+_cN5at55iX;d7|INkEZJCFq_o8s7I@kT*s^bq=!DyhM^ya zv1@sj_svap^bRGL`Dq+KElQrVZ_mtUaWlcQi_OC2bCJr?F=->w$2opHOes58AiiCM z#6sT2tN}ACrtw)^x^>XS$QQuGhLI~5JD(k3 z^noSnF5-?Gc)6MvM$La)&rcjSnY@AzOz-e#%Y z=2IRE*L=!X3K(ne5)sqBN9PeZ0jHaP;`(7$YP^g0&gUQACZr5>=5@ToM)c;Twbovw z4~^QGsYmt6f8g2BbZ_WSrU1Ab8G-b$j`$ts!CZ9pC>jUz+(^g8O_d`FO{aeIf9CnE zE(#ns;?~4ag^uFUG)BLqRg7+Xp*ofO$7(un{sAI8PPx(>1T{k@5BK@a{ZnGx(nQz% zHz!piG+AwtGn(EY{qUlgTI~ZA<0Ig(u8vinJ86oswi?{nPlz1f>P{qN?PmBje&&we z{Yz(E{D9tnDbS420hRK7>(9PE>gR*17%N7-?JbTW=K6Ym^}&nUFzZ|c>>Iar#4Ya} zwBqn2$GW_6z3iR3)lz)1F&KMY6!L1&F^^hMH^i3S>7f3mSa_S$R=9$le#qAR=peUd z;?wG;92>h$O8IDE{t3xZYlQUW9oF1MDB7!)#oC;~fFENz_Txqy|E^)?tkRoEoqHMr zf8`y>yQgR-CE1%#xxmjN^u*31zBU9{PUWB)ks&<9@7{-ta}UiuIKN*O+Wmnee>?hn zg1Z&&ddIoSBLButGi-|IS$tk}e{X!s@dXf5r5M=mx!u_G`hdwf9Zn-r9d%Kd-1{K| zb{>W~dJ87-KHxUnx^b3cZ`3A@|KIq$wVLyB4+9JLQowkM#i$C%Q<1A`^+P5pe=x`# z(JScQWTU*p`o&9IWcJ_dwA%{Av-aINhZcNOM<7ws{M zg#(;GAMtrI2EIvY?V?Q0ORMcAiCwGZUG&OdXPy=-Fr30P@8SF{UmkyJO8aL|&|*~f z7X&fzgF`D-3i6qLeF0X-K7dylLM-EcnSY$B3w-||_&oJF9Ge`nyzE^f1LEtu;NG?b$6(VtrJBIC=^sjso zf>9mZqnOjqMeDX3LmiQU@&8|Yis684aB_dM8Gw6~_Mi80;x2Bt55)%)_YnbzkOb_hFrWo32hFlZd>eT_fl&~?5avlve#k8$l{N~*{`Ix23tl~jCpK12R zpW$E8u$8kUII8K|Z=Mj!DaMNtJwTV2=kL$zA^v>zmxCO&;_MvZoDDcj0X!zxTbHc| zRXz>q#9^4CW_%FFKztPHk#)UY6piQ;Q!er?=*6bpo@lz*iK|`lL@tIpowV?@^&N-H z-}=jBxu8e+>e~JxesN zIV_*Dfn1-L=@5bQ<>axvJqMZW#gXn4$SHhdT;bKru6^n9vDuVsn*syG2!(U; z{pWRxJv>*(dcCC5k9adPD{+}2knB1)1stq4M}vS+zS{oxfA2QP-YcST4y=DZASYfL ztb2{DKsp4-Io%NfU%%8431!SQ#NDFQwAaI;_MueO)nk(__$hPH*ST+iTz+w|7OLir z0$Ufl!9?@bV`aJ)HhS&#YM?Cw@uTA+r4es}{A?b>)4w;tN2~>kb8FNgW=1RzxI?SI zeT$^1?Fz87CVr@eyblD8ugnm~|K+nhRhXlCCl$W6^+V=yCd2pJ|>)m=jS`LX>s6m)z4q79nbpZpmZ|hfQTs#=NkMhCsea& z{2fDj<79k$Y{|)K<2$=yRWvXfQEViiMI5_kj^XjB8ZRZUQRCwHa!Yn&w z%|Ua+KTAx{{AWzyzF(lJ8t=w|i>QY+Qojorti&%!4f=ux+qpQ!p442-GX9N)t>=rF ziImowHmTHG3#8a@ol*n_)_QLaY9lH(<%b%y!|k< zSehH3=iXprq0CxhZ9XGy1CJvtPB)K?Z}mZLwtlGixgfjIN$0rtp_q#djbjl8KJB|# zU-@V|+*t6k`E6~@V@h$PCl*5eJ1(iC{E29km2-yq@|N%P=g&!~I234@imX>E`P%c1 zS+ON-uJ1U2<|A?dU8C~Mj>Nv)l(T_GRYLF3l;ZE2Rr>T-lh&8DHMTB31;`yhh4Ha2 z%1;)1`{uOfTm} zA=iKnyPQPKA-wIf?d44xSHUc_d2`j+jj4GOs}J7`Ir&A6M(Hu18W}iM*O3A8MK_N1 zMFH2xQQ@0^&3jOqng!6~4&0W-{6DcKjG6yxV&id!lIHMr*8p0{^j85<=5+JaE;6~P z(oRzu`(~tT1T)NYB#cG7zw_L+Nx%8LF)1eI=Hj(Ze0|!poQsZmwHTze7Q1;Q2kR-H zY{b7Au8m;WtJ)z?J3jGiT*oO9FW#Stkd^LjFmh(^sxEjZ*H)Bw*a8dxLd26c7K^Ex zy}*A}i-Eq*m1NN~zYw6&$58-Xp%TTI$h!-FWX&tEGCWN*6hm}k!9gpYH! z!*Qgs`0}z~Fczyg^s#SVN1B+;r{@kQ^?f;De5}moC&=Lu6TIxcxEjfegBKubJ67JQ z`2M2NcaEs!*baKM^f+hjR%^LEq-CWU!U9yD>L^2xVXwYoP=(xwt$cF;JNY};D-W}P zIQ$#W`n#MMugnW6(Dq1U;A`CYk_C0`8`1V@o7a|+apdKTM6L=nn|E2t?dcu0^S>gA zrRPxz$GqOR8#j*6Uqjlj9B|o(FBlQU(YSTTr zYZpOW*4jD`%(<>^7&srYuTa>SC=zY_Q=RQS?puia@=Mlq%oS$MSpsp^R}{Ow2$3?EKj^b39{2 z!vDgEg!)ZcuY=YxXsH_yWwmO3=m5pS4avBTPm?-r{nn#h_5S&u&atQ%l|`AemwNi> z;Iw^FKlotS=VvWSM&qszjHb=TtJA?va$Fvn8abs{WG&3e}` zo#Z9iVdO@jM0Bj+uE~z$a%_Wq{0-tp>HkfdUIGU8i9KD%zm%j-+dO^_Sb??K@(cy| zMkZ>0KH7V?I0*o-C&2cl2JGwWi#J2i9#%jE5tzddPv?J zovPK3`BFmav=AU$Ftw%QHLS66PKaLz^WZgR;x>k~1+JqdeXVHGrbE7M+MLs&NGpcH za2BU3n6ynRQsTPYf<(5(ZZz$9YR|JUVkyW{J!0#t%X`$ zum&TJV$}7#r#5R_Jd!k?akaHF65?>OB%`Z79=0_>;^xF$tQdM&?+!a`bmrld_QQXR z_6ABQIT^JL4m+oZym~X;Mz~2`;c%Gt4PKFlcJ2Jc(lpi z9JT21KW`!ipe@h%Xn|OR{QjyM-4I!?lo~L!1Adwlq zhx*l1=y%BP(cZk0JN{y67!TWGUq7APBq)LhQD`^TV%C?lZ#h*{tK#y4n`!#`K5SIK z>x$=;h|G$^0+=+aey3C1&wbz5Ajg{&tE*Eh= zdvt(ymF4`mb;`-?Z0XApmV4dtk(ctwEuY;pxW9PiQv2iU*tuJ-W;(*9@t{Sb*2Wm+ z9yj{R!dI>b24GLDKf+!!&yV(Bwp1FdT=j zF}m~cr`&Lgf#>5R(AE=NtGk0cKiq5oNCc)_Ar7`9(xP%Jb~0jn4a?doa&Y8g0v z>u2?x!&%kP^R5q)&`*vB*Zw4ca0q*NjmlS^j05WvXnc&U|HjZ}d!x0}z-K~Fj*W8# z#NzJ0U5lTB;GZed<}4le(~NjQ>8~z?Ep9Y@S*=fBZ%W2vK7F`n5G*}~)2rhx zj(=Jec|mqH?^;GJtlGy#2zkWKPLaR9C2yZNP25ae`{Q$ksAh7hZ|tjkWB0{vrEPAi z&%tpct|YDoip%NAALn?gov(AtKONNEB#@cDx;AUjkEV^hBt`>t>}jF5hDGaKuepK& z&YEWlznam!_kGb{QQCsBh{|8I7N%d2GaHd0nvb`Z-}zo4Me zhwiTIq&Kk(Ks53E@J5}*_DD8sFF4gu3+vG)Cq67_%g4pBi1=dMo3_invBS3oDlR5& z0{S5a6P*0zC%$@``gro(pCvg5BUMXs#_qG-%1mH04tRSL-2X>lFaYHl7m1R57kuoT zq*87;>9_fC7N|B#>)=t$(f#3z(h_IO*g8g=C&uKN6VZ)XD&T6bWn*K<8Y}VGm^A;r zVM)I60)#Q+DG>P?=gnp@i&$~)hQl^?j-B=F2L8nX;zg|0pW0{`v7B!6_{s2h(x~Ja z*EV_Q;PIE28s`VC4t;!Db_7^fy9Pu4Qq-8Uy5P&fRfZzI)?tWybsm93r@V_XTQ}S4 z1XAPBq@b#C8_$^-NgwP+jQtzjCg|fMZMRjpWFGr3kFE+ac6>0vw_ixm?B=%&bi7KN z7g)``+QuRH#B}7t$xpUuCnmSeRre0nKYJoZap{%GZ9NqeCK!Qt0E*H|72x(9YmToEfBHM-*g9VJJ@S!G)O^{TD^K0^bprL zjuwaGX#>&hXCuGd@!K(sY?@Tfs`Aiedoiu!d{?~UZQqfCtCM(q>%+QK8{IN!{`XDz5F;E zO9IVP&RZ{Fa09MREccjwX#$zlmFd^n_~`xi5VG|a+qSW)Idi)+{!TAD@BUpFtT+iu zj^yXrtu21fci`D+;p}m>`Ve7HeZ-nHj+$~<4*`96Z&58Gqcy72wI->)*W2P$Z_#Od_rssJ9@T&&A>Svwzz%U1cdYChQ z602u@R&VXivs&pNp>bMF{2T{d$|7@HlF7UJn}f%4M_ylCd1V@>{+@0;5Sp(}yzEac zaYklbb1Xh>^O9|QfcE$|W^uvxVmrS46i);n`fLr^Q;$qw?+NhJbyJSM2RiMxFV{if z-`&<i^5$vJKz!Y=kkx_!&fU6{s-7(of)YbT}FV=eYjS)Bq&oau(B8`;C1u z%l&GHx$9zf;v4s{BYgJS>ERgb)!uIaYoU)dKvnMQ zC634sa5l$xei3!efX41s5-c`Yz4sIc&~g%Nkl3^%a2AEJitF$9J`5W9B{nyq@pWD~ zoPKE1H((tdYlf~vICS=jT8^YSQd=Ke}nDZ6Sr8+fg!j)TxX{psxqyuD{Z4~Uw8f@2evQaI9|?yygj2b z=6gDB?O*su*L@wIOg+!`+e2#X(*Lnk)10eV2t#F1)dHwLlJt zfWq-CZlK!8ar`t8a$i2tU66NN`?x5T#U&Wd`vOY)nW|j;H$rse!OPR(z{$o70= zAs>X8fBT3W;oo~|+d@?v*0l<1y^=a+K3o^bFzW@p+W5Afus41Ovd2Kt?0Q{YjDxi6 zTI&~I#=$6}v`)eRrTe8_f1JO$=8f(pMU3i85}w6%4B}gS;&I*b`ejnqV0AR!xcb@F z=E0a(Z;afPyMMt<%RGD^BnI`Dk5q5>?%X;+?m7@ZI^xTTbMr*~{oX*T?;!Jv45v(Dxa^;b2g`#KaDm6yCcSc!->< z^c|I>725QWtM3r?MFSdE+v%wg9G z*G_Tz1gHT;?L;?lPBFV1k~jN{Bbde{m^};>smqaSFcB&aa^Z?tyH2UMB!ZW?zM5OJ*A@MY0b#L3yD$uQ8%~ZZ4O#nl#W3L5Mi8O zZknrie)SJD!!c%ouzN9PX#}%(Tt1%IxRxBRtZu&5IazN8P~!#_`AAW0B^-dsLxkbl z*KD@kOq|5wGoC+hjw~PSTPOzN84uGn4kBaejJJkeARRo#yl~RE0d1skdLzbA<0=j_ zQ|OrHI*#^d)Wy<&?pLe=3oN?p(${y067Z?5E3+S;UG&75pJq+8ypdTibX+Pr3;#^V zeQ}zj`HZ{LN+X3ZgR)c{BlmJX%GIskZfn9JBcF{87dGET>Mob+NS(hNsag9>vLU~5 ze&d4c4nW2AwPEzP6}|Hi<5*>26lRZO8IgIFSl+x?I@J*C+fbOqsho!uXV)mn_rY-n z=&{Q>JJ-i$q z8Eb1DoD0>1T%6+;&*<_8=qOc>BilSvp|AV&w^Ql=IJ=lEpn34v=*nRAD-^cN>~c09 zkFGxrfMCNQDBLV4XWHYXgZ&)i-#Wt!X)mg}eu^uc@x^Y94a?+&@lCWjts+9x#xyKl zWk>9{Uu=MupU@lcVQdVwosT&Bo5uVHoH)$TiI+j?tFj~j06+jqL_t*hJxJf$62~i> zYaFrBIEx`W1y+_8oU5_>J0x6Uw64Gy+|eo#A{;$26d#Fu$o5Pn*xVp3Qs{*b3fosR zsjVhzVvm12_4STh{55%48)L`CbXF@7hOv2kdEjeaUcXwO-Bi>jWl*bftndOVcF)Pa9Etqw9FuhTt|JDl5ru>Rh&1QSCg7}p` zrVz=+=72pb#MqiY?cCCp7MjIHp|0z|wROesZcl)cBQ|&R<)3X(iv{4zyER<$jo5P6 zZ$%w~IV+Nz@_tOt+ISst{LvZ|z2mF(w{O-P$AI#qUt%Kr++?$5SAN0RcI~H7>0u0Q zXpKglws>>txE$qU-$W^pWylGkG1Ph6ko72pEv_YgA1LUvHL*O^J7j%B?Z!fAA@-qw z*z?&vtbUtkUAF_cB=mvH`$c0ad>gW>>#kK$hpYEjKY!xYv4)5RBKYo+>0d6gFkbf` z@@ao0Angw98aC?Bkwj7A1x;?)MLokE_DgI&0aIb%+9>eXK6ztv(1 z5w9wE{&+^zI_gPZ+lZ~NqJ4aYLwM`n`f%vxdoyO&N%3i^IAL!qZ=jcdrOUo z%5kYSH@0!XZSvbEg5f26BRzOgts4hHV+MEiRkQqN(2$-tSc&O*?iX1pcB%wBeq`e4s;`QQ4R}&Vv8k!7Z|ZRNp46N9TmFbW_I{5 z&SL6g?ykGd!9t8ldB_Z0?D|(VX#6oxK7i=7WYA;ZX95Im@70I4vuFKbZ?K|=9v=M2 zxj41tRt29?T3`CmxBH)Aw?|7y<%@5dfb#KQ{`s$ZyVo@ky4BdTwInw$E^V;qXJ5Ny z=&ggQaCR07F)!=CQCkh0NMUHOi2k3E`Zz`o*x5Ka;(^3C)s=JWXWpL-eK8A;7o^G` z;oEoLZArOlCu@I-^YC8uCD9j_&lHD_QbTqrPWEv(hei0(z(U*ScMkNm^bia!V^?$y zJzlA3rdIa$v75hB;4cvS-*ORew)-5a4koN{bM+qU_k9#=xxY?OT!G*vm)zE`sh=ox zjN>m!{Hp^m)_KwmXtuQ9{l1QcN7KQnF*BEZ@N2!k3Sxjyu`aH>jPEhI(-U0k-~7UE zpN)WVa~IVjo?k(m41ypuel-ylW3MC3u{#k5eD`tH99VpSuO4C!YMe95A#3KW9Px_` z4Sy`ggR)ufzi_Gw5%dcd3>*1T2hQoV!`J`!({r|-Bt#zKz8VPiayDdea!on`a$ zpj z?mJ?(=r!Tu=A^4U91LEYtedD10YhK$EUpA)?S|F2P)$nzjq;cyiVm`@)5EPeLSVoR z$eVC|uw`V#eMsQO%^?SIYV*nKHJ2LoNMCRqi{v}-@l(=2L8XRHIDOSvM-OvYLbbrU z@j+b8aVT$Wog`JJV)Hi~8+a?HfQsuYC@(H-<1|`Kus5FaIR;+a^67$s{oYV|Srf$# z5NjR!2HW!4s=+UOWRAm`&D>eWgmx3)!>Kj|HzFWK^=Uk3<-3qc-`VK6xC!ru7(wRf+Bvu#+H%<79k6yWT>48j7evGZe5q|trs9|CWu{B!D^k*nI4yO5++$0$$a*fn0^9S&{rwXEpf}lfR zZDixanj=GPY`@*VPH+RXE{1Remc39247r;Z+X#tc?S0O>Off}X2rmfOHZ2!N27QQc z7r@pa^I}WPpk6R%+Zu@L;)P?V3)e|}9^$l)?=17}XO54$zgs_50CHBLI5=u6f1|n& zym@an9_7QiNN}DdNH`?(730>WATE0j_otAnkCA8ZjrPMB8vf>C-LR>)f+Led`!OEX zS-uqwEVyVEYP?)M^csKsR0YG!8>axV8W~P7u&tc4RP834`vm`wtuxVXBngt^&b0pj zf2G}-m6>^Dk*lWyfy#`-!z1#j0*Gci7f#=YXqq!!`Yqm9P0f zawQ-?scx+FEisLd`@ur>u`3Dum%H^cXZ#SCY&gcv5s?hlj7#wkx0Ll;5pDFN&BJX} zN27VXJp_RT>SwHd^)N#r#q^rwfE4q_%p&$75GHyUN3-@MbfwOVGGEMXmcD`=xGl%< zSc+XB{oHHEBUb_W*<}VVFnx?9EikHGB5jRvQPCk0dAx9P9OFz3bv_pWYzjJE4Rluv zEJkD2=3w0Rp?MDnBmEn(Z1BTQdnQ|9K}aRRnBz^HjhEXn z@l1lBrUP%*3%g(f;kR*zKFg^2n;1zj+maxfVlAaagmR!Ld$sdJu0p-aI0Pw0L?yV{eA`jRw=~|Cx z|BWC0<>8#>Zt^!Tb=fXfBm4)x+~0=uF0Fs#ha5NWchNYoUKEY%@uh+>^$wvzF#H~L&%Ri zI-~Y4m`T#M{vWR>@KV80u$JlRu{ouO#UZY1yFbl@K2rLyA&A-dV;45BVxaW4ADkB# z3^yS0tffZas(tg@sNY@*j%{}Ve}3L$J4b@p+%t|(>z3j5Pn48kW2Ytl0Epe*qOLe- z;8p!VDlXPO=N}|MUDjb z{!iyNcFy|n-qJ5OI0A1Ulv8}VznLAz9JYtweW3$>yq#B-uIQN+D-Q^nznriN;9o9Q z>iVSv=as~|Wt`3M(71Q@T<|b?X)Q4~UX1tQ+5||=!-%daLa#hY# zAg^Dk642-T=3`b@uQIKU*3bBiw(~J2GP>*lYxEuoZB=u8a|sJ=whwQ-5pe7dzmY#4 zuhi{p;jFgiYMmGN>g^mgVSiMqy>lCNlF*UMU3+Z>p5IIqnj=RAts6z*_KS4R-S6tF z(9mMkSX^VcR~2MNi$%M^+`Q7Ky#~9+(;&7u+w4!276v5oO`Z$4bxmJfb@XZ@7hk;m z%+&qOV{7dyMh^NIw}FfIDr8)}Q2z{qX$}+MunQ?`^8EM+X?^dShEMC!`79!K;#~G| zsFbOuN8J%lgDCht2|UsAH3zwDOv#V7du8KCB&^Vz1o`M2GBa3r+X`^%)MQ242j)o3 zBZW<^^XOEM7uCJe=$BWyfd>KkcijfW@yT02b>R8X-)CQ>vz@;oXk55rGp45DI+BV{ z_aaUH5X^IPvX}<~hI@&52-m+nz|Pv_flLIk+~-C_r5zDrbF>S-g{wkaD4vr59?d(> z?$3I{`2mix95g??-NCu|`XNaSEA)Glr;wwO z)^>JnJQ^F4>=nw?V|H4=zTo0 z`4H;#eEXrC=)EY;ziME?!Lj~}2vnd%)QKNY#$_63rO^7OQ*(BT%1>L0uzCw7rWq^? z=Uv|p6@VX0Y;<$#pACao-*0V%IQ=#^XMmQo`PMqY#qT4Z5?Flq6tR4H7j*61$cwAK z1hLob-|b|zV14-u)msdZaoaY zJq}l-0uDVW+k!hL3gBRu$Mz3eiYdA@`rwPRc}c-JWt}~5a$@VDG8|qyn+y^+@J z=OeEBQTgKM+1TIwaj(`3om*Yk1oh&^c~`P#NoM*QEdzp0?=QX3Al2xeB{!MPavvc9 zN~7rL6#QOK@0WQQhBKP^`DrM89kXiAxj7?7SjagW3d3=-iBgWwHcg9lvd^AIb<)Sy z#qVzk&nV1^Ek;4Hm4~m098?eMN?}`9ban5kD)l*VO70o*+sCyyyfsnMSD%7cv5BGJ zs$X5tAiZtvZzk!2@zkP=4Z9LFdNb{8}c*nPOf7jnsc$aUc;0WL$KNF>MIvt{UXEdF zvbaYyUthxK?0k?*R_6XBSBv(~-h81lKaGv&p?OXCq0?p2mWg)CT20z=l;!6q)D-gR zo{+QmUoNG8{g+7uhze)x=G+{{R(bcW@e!a9-%F#8%+c$YBCa8|)r+?EGpF>Pw8Of! z_rRXM!1;>j&&+PDPG*g!#~_#Kcik;GV(-JRMrDJkVYKJzw*&W0bR%G=TsqAiZNydp zcJXL&-dY?``w5Q9W!mM>(RuSBI55l?tRP?B?l0ATn7m5u@-nLN5hOc&1>($#vGhHo z_$Mz3=ZA|GnW_Nvf3=W@B!XHTUL6z1Z(pMM9JfBjBEQX3{jhJ6z@z}k+Aoc{SjxK& z1m%k}g}BBks`1=4R)5FSf8V6PcEW6LFYhuci;X9c1mPNB8&0TVcF-8QXgw zOz<(L;k3L8A7YnOGnp^h))`Cu- zYoL?s{zaAntn0bj!RO8QZhO#)=V%IRjMkTs5+T`8d|Be0b&}r`xwH8&#|*2P{EX+( z30><6$Ep`z2o<}<#c?PCMPu)$+ zz8h;i@>c+oCFrjoEWajHKI|LDy!sgTo5*9hVbsL;KH$i>8fi)(V;Z|}k<&Kz_{f#M z1x%>Xo*Rwv%GmihBy4c{b$G|L|8r3r9;W_ksV$JM8y~A9El46R?~ic{RA4mlxspR^ zS2Ve8YtnOU)*9^I@9In6yjAj^p?cUhe#)I}H-?UfgRdVZmZHNxi74}5AvxEb%c}b@ zH2DOR*;dH2^)1Tf;obuO9vKG$CK3Ze*3uW;aWwy#aQ2!(ha;0-(NYXUd1x*63c6gf z250*rlv=;DmS^|!xLBW!91X@<`TE=lbo|sn?iu8WrAfhl?{GomWUVb{) z$E%4ZxiU-s`}+RoMdKzu!S(So2k(cB_XE9v<4K!1?_p(RqpiEMe9X4{qQ?ha^^cAj zQ4{8iK3exQ9z2GF-p?oFATRL6a!tNJo#gzqvN*I(ES}B?!lmoVsm}KW;Hrk++mhr# zVlB1@ak?iK15n3p5BnN$W`3;+FKg!03x)ej9B=HfvIf$!I{gt6AxL7^tK}u8IT&ZJ zocVG0R$i>?h+T2O?}zLSHDdYx-lOzuj6tv+4rdAVIl5W~tMwPYIx1$;+2OK9u!JT? z2hu+{xZmikZ&_Z5x){GnJuC+|-oa?2A1JNU6~G!Mq(RI9W%H$gtQ&iz5r<0?sSHWR z!6=|-`XpEp73$y_=>11W8J<0gU8OqfGh<0CJ?Ea{xP)b;GURoeto*+lqY8BPP6T}c zDOWh?qo9=0$GEc;*7tAikBbw6X;gljDsu#sqf(h3&)4?sV)k&~>oP(-$7N3!2dpH9 ztY(AxoKk=%u-Nw1VXK`E1=C-R6V}&>-v{I7m03fY75$C7xIM!gq)!-2Wf*w3IfU~F@5ICR5*Y{Bsdg-b*#lF+UQQSs&M z!Fd?kHHLAqt{G=p(*!(>YYqTrDsXjh%}uD~-`jn*2V|@-J}9^O(@%~-S!JJrxpdPI z>(kq|F8DMa5l1GB8drHLurLz0HnulkTnA#=?ScU;A|yyPSH4rh+t|IxJ)zt%te@TWrO z=X>>w&IR&he!Jk>l8k{oRI(2UZ~Sy#R@ID*(!@&IbR9@68h;G?R1uS}kYc2XWJTUtRD}(@Gx&4%eiPH ze6^8U2)s1LuaGZ3{r)A181giy@{lq6PepWo%wMV3E_3F;1*2zlWj;;Vp3f>i8C@~e zwkOoU3Za%A`0m4Y?T|{uGpA?MTEniW)S_~z1gAepgnV$&CcKA6C)R z3TgLl*z6hOd!sazaNG~Zh4FE&is7QLrH=Eic?!_Gur=ZI%>5?0o+?V~a(ngt38&sY zL>yQ;2H2LDwGmKY!7Km`XT(O_KD!V4?LivNRG-W_TVLbWx252Y=4v+6XNO)MA%!gm zcwPL^tnKyN*Jh3C7ybfA-)|MScNSWnJ|ng!{c6zo-DurCn0uv0hO->BtZM$-Vgn7w z^|X7g!J5xn?!VTSsB$E);+KOKtExf523QOGi)mg+{6R3CZLELg^vb4T_MN2wuCdCG zJ~{QlQ<#EkkKVKBoa1Q?lF5%IkE0x(GExI(35~kN40d~DX2z&m3&=}I} z5$KG)+!`T3f6oIU-~OX%*qo~-=Zb^ET;%D$d`m3Zp7cEXQtXr4_eU{kTVmL19v|!) zLq!-3HD^aKE^G*Y!c>1?wFK2_NBg<^AcF4MZE$Sw8uF{Lb0Mf=OJ?;_XwIsar!9S* zt>>g37q=2)zICXqr&uQZKpH{1?6aaP_s!bsJ-hJCBs?9Bd3&Zgs={#}Y#LKP32^Qv zOb`9$>shsC{u$2i+F*>EMD30E51S&(p9iPrwCwK9RGN(WHH^AdzL5-`U)Pj)2jUQ{@dGGV>SHh`np6Wy2So+rf zaz${6nN$y%im&cheZ9^gcV5Z4w)yjz@9ee8-9>P=k;_sWIb1FD&s=8iHFm)B?ELZ^ z*z`v010Qm3ufS+?MixR~A@wlL!s{NDPzF|b6-sb^X!il3acJvTGQ12=8|n{+{V*_c ze50m4ifj!$)9RParKv^hL2%-@$G?Y|tySC?e)x7|u{*!2y0`|`P(Rm-j~vNGY*ZOU zka{r&6_b-_cITs$akd*HA_e_yWWkFu`0*z6{H(!*6Et4< z+`lm__WOmLmUDEEID6)&bsCIw0(o&cBivj~OI?AtZ&BzQN>ys~S)kf$^uBPEE z%=T*GJnnO+=8%>gcUs<9)96fb@;&+)Rhmj$ikVsY*o&`ftBbGUs}TR~>R zoY@+2%|8+w1w08_TM8?9The|RAb>UWn1`TVf6oj5>r)q&ST)|dvL@C}+{;fS!RS)O z^tQ8oI_i)67!eG>q((+t&{*e6|j)x^b+A))_=Ww@O39VGp4Fe>rB$i+Hlvxez(M zeNR8Xh=tOhY>BOnKgH;U?l`Fuae$t&Yw%W~{uT=2G~vO{dNSXVdP3Xh%Vt+UkbJ&N zSe#ITVJ+NC9CbOF4v5_X$fXS59*tk`Lo{T4HQ!!-y4sE$UYfLi#BhGQ9ubnHX7@rv z87CvTfVI2+NX%XoxoH1t-l7t(db5DSDYNZW4M()o4h_znys>%|db+qNrLatBzZK8MZOaMQ9O z(Xj{^IF#AJNh%(3)FA`BFlb@w!=Xm3zJXN*9q3f$>tN^Y9}qN0u#+U@#d9y)ls3^W z4w_}+Ts5$^RGB!%v+V#WrqMT6nJ+#ZR z9JaBvB&k21UA!{G${6Q&7t;MxK$aQuPy%JF>_gCQzrl7;`7vX88}pyQ=u~XRFJoTT z&~r~u*nArRSk_jt4WpE!eU9o`C!z|sx_pRu6akd+WST&lAhUb z)e*Ccew)b617zO#kY#?xZ38d9uGY_!3Gu_zdYW7^gsrLM(~DtD&0ZbtPwZLtSjBPq zyf|{)c+JGN9*&(Dd!@BPwZEaL)@C8v!&2V9B4&>2hz%xH!qNxzX_LdiGe5qOsv#cY zMWtaU0cZTOst)#1`TXYb!=Jykkc70$NM{h@Cx+dN-FDNja zFZLVD8P^Z@xLY@C@gjD^SpRYm2l$uj#@WCE5-a}X(dJ-h)zM%#R54$@!Lp{gO3W5y zyAIUF=kPLWkg!4KH{+-d;;jYEJ%n5WGy>*DA%v|%dwPEOB6r`ZDurJC%k5(ES51~w z#H2S)@6EJ9w#RbDw3y%;tG;I&()LMb|1mp4euRG?N`#f)#VGml7QzpPx4-J^I2m)X zP?t|%sV67X<8Rao1XRaXkm0lhTWq`#M3eCMaOi963GCrjRP z>MXkCk@aR#Au>4)ortZofnBJtcHTGSLM}67+?L!0KO)5e1LLh7+vD!MvKC=QMH}L( zmzRe4hi@}S&m31PF;jJ4W?kt=EbGd-IxmCST3K59da}p4`G~wU#K}dE`4*REaw!ZY z@n%0r4y-xpWlr?X)4q;-EYElzSA)O45KaU8KdeRg)dy=5#28s4!eo=57=UbkE7uJF z;@y6g(EH361q(>)??WCVKtt|gHtq&!|LXz$JX^x1;2CFX9ObsvEyFaMw zr`jt2uEzyD-3#71FT+8I_O1DLG5mdq(GiEWjaXPQ2wIL{DC=^JZ1-%~UoBf#xm#=- z_)&!FU@V=Hm-i+HzFJ{h-@Smgb>crN4_}?Nl?HKW(MZ%f*4y0VXPnfYIi#f~2x>0x z#YUE`XpRF90%-2^^9Zlk>7T^%d7r&Cq@iB=dkP)h##Sh=b{?+XX*E>NvslJOM!Pv# zgEscF@im6JY1#g%b88HIas0Nk`)tFU6+Xy|j)5q?IHwActirXA$h{g{2XuGo(5vV> z+X2gD;pe@fZ65>WWB~~>2}W&P>q}hMv5}Eh9N4^g=~GcHu&i}v=hq%+JF?`iFNj0p zwVzd5=%%I(f%V}8BFEN~`=Qt6caPS(z$kdEbe@jL{$ zxyKhvALMjA_n|V4eC+4ri=50zW94WB;OKoyUA5To223nX;ukO;%979S{c8d-l>3F* zwf(SQ-`I-~B8}#YWfA|16dsVw% zHs|!mueriN`F*Z{HBxR|Y?{|-9DVg7*{W6%V^#Q@o-9^pT*2M`7heV7_DyrSir^+g zOuN?Of6*t>8=fMn}+7a@F=-e(V-t1)MD%C0#2@e_pBdU51Dg!=9| zcTsWoQuFeC`=4VY!^Y?rOr>IP(CI6Y1vMr@|3O%Ic_VVtEAaGcnL(A)i9>(pGQMI8 zC#$MmUapmKcD=;u`B4Dx)m#@V_3_5voSF}#3$B58I3N0@AvUJ-uKyM@W)gWvV`ASV zceN>9<_TS%)|%6bg9!GSD<=!*nga#FN}z4^cP^tl|1bqa)@Oad<9LZFXI3}aFmQsq z0R3=i18qu@xQi?2<%*?#4&$)1`tU>h^&+QYKOfG4dFJOPZ5z*$9qt<}Ms$3@pvW>tJJ-9lA& zVWX&<`1B=>qQ9%3y^@OF8husK*UGnmh(-4{9c(>-5lwIIkK1RTxDPdiRNzrzL_k(3 zH012%%5irxSI>B2BgKrx*NLZgD%d!JEBD2B4BDQUH?c#fO+Gk3JolXCXKiZXp8+3d# zD#!JakJOnry0m!&vA%Qv)#LrPuv!{I&OL1MW;&XI5_`4I7OqN{XN_XW@p0RQx4_99 zi#Dq~m23MrqclGb=c-5Z(6wL}yEkVy?wM>T(97AQ*oC~>>CTNJk(RUhRa`;;>;hUb z#4x8JZ3O6F&L1l$O7_^vpNDFf6Jo3X;hHmZ{2{e7C3Z9jG zV1nGZ;k;`|7L#Q2+>n zI`6|?_ZI`Gm#j>EEVePM)dCO08yHJw=-Fm99+@s5bp`t&UBB@<*wqBf;>Ii-T{Yg` zNrwPpK%KvJ9R3cmu}MnXaYjSe{~F7hRZETW@uK>W{_5(V0VdnO`={ilB8qkF8Y7-< zr1m+Az2=5eRPeFNR@eHTedcqG^ILI|>E}&SQHSmNew9t`Kwy`TVnp^)%e9b zK5%kB)UUi3cw9D@-#Ap0#tM6B+CDy3vJd%^n2Qf{^{MgVdq(6>hu6B@Tq^vX4anLO zqhD;<*7<5+o{ghKJi?^?IHg|{U%fYLzftapTc3PHU99G+P^~!{LT`|=ZGS-~!vA}? zR=WNk)-%!aSzF?w$&vQM$%Z^iMY;1cV>)am?jd=?B}(-5@r~;%hl0kWqIp%u4`Z)S zizV*3H0Q9GshCtiK#$%OE}p^6OGBqt>)1GKG>)p@(tC3&UfP8Nc4uR&;kbH-sjfZ? z#ahTk8wlI(Ef|9S2pRfe%gGkGb8^2bM)=mq+<4{9L6%)V=vyF_8H~5%yh?EL@SX)6 zO@<;8vI^*xMd>|o)jeBYYS%$8|7&kB44*&%f5zSU#qrjUa_bO-%*oL=IXq;X`n?d) zF^Lsz@73w{w2J28Jd~jRPhzx(^p?Bk$1w>Ojx@3`tzdlS~S@T^_V0a6U#_euj&T25}O_wuj@` zFIcL;7#c$pF`_CKGS`n#f9;&7LxaOgy&Sr^rK0v#+R&VH^pk?CA20p&38P3_ z)2_>lZ&!JIG}m{;;#X~u_OAhM?qHVAJ$ZFIfgR^4pi=4{!oEBXbNtL%qt$!!-7!Fl zv5&@>b2hs3aLI_fd9r%Exgor|%7cCJvNfa26@%AyR@B4Md#U6Xn~sGDZ*!kc*4UAp z>JfR_7_P68v@}}U7!?7`uF-g99hA``7fnB7=)MI<&!8dq$%-UiwuogJF_4lasmknc z+Z(NQ2o8cjE*cJNqr9%zNky^6tF>w1=A0 z&Ww9qe#X+=c|}`NVqe_07xaC8hOjRfb<4N#-spfxJ^tJMlZS`(*oW0(vnv-G9Xv+ye1&lVTAaC>DhFHu z=?_9zrwyE3_yJ>8)WX|3IpGUCrir{?175SXTX z;zGgp4E);Jcl48gv&OL@KxBPp6vJv4|qo8;u6 zMat>23+`7at66o8@e3h8px`pKh4SH{tl^nX2sNW8P`M+fz0KS!SH8TIa=2Mk4mW>o zJ4;%o*tGcUq4Qx8t)oocIKrf_)O8{+Z#dourrU53ls|IEqJ;t0LN=p{OFZNHY%K{c z2i;wqocjii1n9x`dnnl^tdqdEn8h?Ek0#BlgJ|Yt5ok z|5IU2GUK&zp+*y4jSDdgoBOb5SY=MkKHilUL5+)5b+tDAL5XT$9_n~Go-dA!}FlDQD)0BRAWsgpob%V?YBr zesb7BD=bt9dh+5rXpvU?WnIn%*8m)C^wrC={Tdg`(8$`uC~mt)c7vX+G4=OJLE$Ej zsV%Ccz$=eC8%G%&bk$$m&DzDZ-*JA~BWS!&rM?jMT|0!+SB-y?Ae?%85wIV)(QbaO;5(Fc98dEux=HY?mFfVDO&X^Zod^Wqz!@xV`- zj@houSR*TkJ1f|JjiGUT^3sQX)qJ5%zv}^r`z5ptMCT0mpZ!IN#>0_h{IpzR45UZ@cH9N=Wm%ksbR4M*D^J1gs#UKh)`uzMo+M)`>)u=r-fgRbLN zZoMj7uV1j$_C_5W*O1u3U>A20MWPmr!}cm8Z0#d%+jULWNTZ%Z95@$^II9Ul_o`I8 zZoha59YcN1Ex~MSqOrW@EHyD!=2?2r=i!^hFnEo5xuxOd@M-mJGsWsnT`8&AgmJkq0=fXjkV$A z^~PE_R`$o0R=Dz~VNSZV{_a|Wr1uV9^z&mZurXiBHdP}P@#;D&{6W`pGUWFSTZMxPJ7bwo(uOQ$) zE;trTf5*+v;hTR6&_`y7;#fc1nZgPFPuI9?bDeEAyxcL~TCcX%D+1Us23m??>OT9B zQQzb8{X!X0oHF$Kn32-+(?x()dVd~O?XM?#F(#wodqIvZk>h~YHB(*Uw+frE_1iMo z{;+j}^!SVA-mbP<4Y;;Jkz&F4f>raKvZKS<=B`b%cD;SZIsx4LkWUSPwS|AcnlRSb zS@G6?VOO(cxq!=9yKa5oQ51Rk6wO-hC!AzyZWiI7sd@Iy4?$d15S#is|6JF6b#8_Z z96v+x93#%Oz3$~Y-mTZeb${pp%iO9lf-*O6?JVBeZ!H-Ge8D*!`wTp@S15lav`*g_ zst#-BypmJxqT*}OIGnfJzw5T%%(ef|0Fkk^tUe)Vt(-%^!Ce0Y$ljQ_Z?@8q6~D7w zz_lE%Rl!Y!{;H=XPv@k_OZq#@NxiRVnM0cw@4nez1StP0n$XB_XaqPfXM2A0-q@fP z3M@JCY)?j4U3D%Xah+FiHi~f^*L^Oh&A!QRUAre{pV_@J`?~X{`AtRe-}`3PIzFYS z3>$H`474{7ei-Y`A8h>dg~(Pn)o>|i*d(7{Ht}0-G>MB2v!)ws%=PBKh5{8iI-Gil zb25jgdjVqzs!ii{HPE#LijbRZdw8wGHaFEA`ucr?gbabr@BaE>-&^SZRgOtXf*9Ji zzgn~8`opI+Ienw79%IMFsZJLwXQFGy9PkoMsXFUyUnh?8L!jwf)9K;YtjQncob*WU zJac0=UyuFk96Kkl^?&};kV_zOv!1>;NFGPR=G>eR2GGqxP_si6Zy8!})*50hIMnGd zZgQ*|;3-{_p@W;snMSePc-_3Uut3up)`C&2cLvFQ-HH4i`t_R|C5|kS;Od^}%`zUv z7d#fGi$Qxp!7%php`$-w)@_vLC(0w(B9(*q#F_VUvfVckog7A%J2rMX4Z?VKibI=o z-=a`!TR)p|#Rpq!?4(rCGLE;87ZL; zAYK%; zXY7Zsc@}yOLuCdDXl`saMpLOa#(M8{rE8pKaC00pYmjWVjR*Z^$;r*pA?vLG2IT}d z*?D;G!zOf1OU0XJ;XBC2NUUFO!+9I6Z&3V(b@lgRhl6IXR;?9-A>9ZKr!lDxDTxCI z$QHs{KO9-wSA%T(20rD;i)#+f)kwY!^v2q8HY|RJr%&c5(_s5TQHkIT^P;MJ@x*vI zNQU5t~)A>8$@L&{2@rSeG!l$0YgXI3V7vHF}0O_|E_pF&`E1^TGyLJIbF?d8rm0YUNKUC z;^fkAKtjpDk_{8zO#~xRha!eq`VW^p&E2=Id($b5!2B?VUYo_+jn3pzMJSH(;!XR_ z7$su1e`!bmw_QrT5c;MS*By*wHx798fJgI0+vB6}voF`zQEE&Er@5JxPW+(COg#^= zCrL1a6TLiJXIBS`Kv+EMuUYqvKbHeC0DVJ@343r&P$8$ z2LrQihULHdBGuF3bA>7q&SJwnxOc#dF>lS^!rewxt3vLF242JIPfn} zQ0*7IhIF2z3tpcao5=a$3wrU%k zKWRCi2r92FUndzhBfc2q8pVQ{19WVAbc#7b-|##3$c?4i7w0tKlL&u#E6K?5{`Wur z7d-5~3Ha?@#M*p1UyMX3OfOFk9)0g4{V-VzA2S3Oev&y#*kS>frAk|lnwtPZAJ5q_ zbT*ZYUj^|OZIJIe$;N9OwRjSTpT^oZ71~b4go0rD!} zOf)CPs!%m`m4H?mVXGUFe{apzL#gAVzj)XM>tNIvk8cc-86$YizqO9J$IWVCa_@sR zCo=VZT!w%pSk9fs(?kuWqp>;USKW;XMzv59QR`erv(b$lDpTJ07#67Z9`V5O#j)MJ z1z6bF2c!>fwk`roRuYHj>0yO)^61dsIB-rbU;z;@?zOFRtNsTYg4S~H$1tU@sh*op zG|sm=9lCZ~JI2AA;8vtOIJGaL8j_gmjAXry;~ZrS7=&`7Z><~y)WW<-$nTySnTp1o z=36UbTeq(NI--c1adIIp9QUOS;~NXMPhWnR*uTK~jqSsuk3)Hf$qVRKZ}AUIS_yhl+=`cQG5cWERDSJYTQ4{kPtQPnT}OJ3Cq7b8cqco_%wL-rV5foez#65} z;pL}O=Brubl;Fa}m+{4MPzo#x=fDKme6!m)Oq9vU8NW>)3w*KL{9ib=_V-Y4fuFxvKS(jMi)>?~9plGGyMDMUr|ls(q;PF$E8cK2 zk{Mi#Nkm>fuGY29#j0_3t>D`K?c`@8v&=uQY7wc^z(I%Ba$uF+mm&q`yqk|TbFUgt z^C!Xxh4=XWjGbhRA%=#b(nRi0qOY1~p^tl=^I#sm&%;*p?Q^u`X4Y-i$iZx1(MdyJ z8XvH*)mqv7X>~zUdh^Set#|sk?p}i$3Nug6t1*UxbtE%hA37=LX`kexXw8xev@z+= z==uIcMFBve-Tqb*-k)L~oOq7?%=6)8vq2rc{J#v<3%jpA1=UNFXT5p-_QU2CG>VOB zbK6=`n^If?3;eK^IbWo&kv{-5H{=;kv`~>dvM)evFz{&H0?9|-;)bW%hKG3c?k9nL zVf|&UGiCb~f-L8$cl=&{4?{eajX!6Pl3mQ!s-hHJ8=1St^3YG(yH3#vX!9or_1TiS zF+32+sP~iZs~W01yGob{&EfBtj9wcr1m>hsKP*EJ;8ADJS_=++!0Q^-I1#&83wdnv z-aJ1iiEHP;uBydQZD zUQtkE8pAXvTPyx`GT{Zqi{~8l-sJ{>)|C5D92Cr(UN>e!h%0rMoWIB7a@9#@5r# z_iP(bCl3gI3mUDHM_m^`TXZ*M$h5a&$XfVLMhZ6%#VUA$ z*&A(cVsDw^NMvo%drkNTS4@jvp|;@cc5ogYP@GKqVrRS#!|AHP#>MumT?0YhdI(uz zES!COs=F_gMvPy`vq2L6*&tkAS{hRvg%oxhAx*IeWd2?;H*6!h4@wr>bh|c!5Ezse8kA0I(`sWjA_hY7$4xk=PlN1NMBetoZor(OBAPvb-F=%H$LyC zzQtjp23qlN93;-6+@}Gs`*}4ZduM=e5I{Bl)l6;9h^Pk`-gunqblXO<6XRV_bqjwd zsa0p>uU>i%UZM7PSO@G)xi?WNrFx7tmS%lz33_zkEog-Lo`;H;u-|i{w|M zA2dCy*Li7*;MNh1EADO{sE*?;j*v@6h{XROcRT~=20$aa84t@fX2=}5k_Z_)+*vn++pcsEZ2?G0H17g zx2{7`eDEKxe*Woz)daDJoWd8tzGJO`<1mBbr4PE6K=8R`cEQx)Bq#H>?aHd0_9Az- zI%kjEu{xdOT~3(Uw&zjZY44`rtCle?-a!s;Sn2Z~A2A%`FnJL#8Su_cYtmXp{BsW* zlPGjikBbKUtk5`*=ctH4V&=uEU#3`3Y`Z?{Cy!#!4oeOdZ|rPpbr}@Sc`>tBrxL-( zP}5ypu_d#~5sJI?^3~G$YaNH@*C_fn2r<9iEO+pjxBC!y_Im4Ehy|rx)u`Y2?pisU z4Ds2q32SX>70W_5-7r^%Dwoz5d@O^tGGuea!1nKT`v)?TX-hKauIG4Nj$)Ln*gAS} z?pDWsWE{1txBCB&Q|0o-LqJIWta;mynf0)iGWQVKAcnmfnJELO4Vw1&h% z3g5=w002M$Nkleg{%z@8)B9qVZwq*?9x(Bd!dKg_ET z*-`V$4Y&m{A0u?yd?|m3$suIUTT(PM1fzNHcvGA217ocp&MbL_M?y02nu6Z>6VKn= zQ0y1a0&p109P5hf2hMNCh@l#J{IS)}wiCkU_kyfqYT(ns;t1NBS)=|9Cqf5tyMX%5 znc)p^adp-&IPkppGM|nWP1N*$&^oyH*vclCe1c9to#^6N{W98>i9LG@zk0B6Dqkv9cjV}=La=%y*9ySHIr3B8& z7Hs%n=xL|@2=30QY?F<*^r$AofCl;Y4$dgb>*82}=1|e+g+)EfrSs2Re~bX^z|N-A zk(!9}4|CZ)davW^c&yUcN=6?Yb#SVvr@6I(oW6YJ8VAjN(0}9Wc(ooB0;pct9h)2F zC62nox44dFSb7jR2yC2xikc5Jnm?W~FmsWn?x_fZ`ER1T~Cgx*kib#6MB zoLBct$p{#01V7s`7*>QW3|+4m#w$V2vACsat=*fIEvhYL+K-b>pVe72^xls*Uh0zg zq8Hxe?EKWp_hqjwrz)sj1qJMd)tq?w_-fmlg5Uh9jtvEo4SJ5)wQlWpoZL2ML0UV+ z?Fr;9A902FKBUEfr7mM01~q}IAX4S*UrV9tPyUpP7Sk!?T_N*R5T(K|U#*hx;@+AU zbILkx9?inY{`7vY%_orT1XvyC-n>I5nnSt!mB;t8sCb7lH(&_RtAVhmK+O)h@$54T zEF|K*(0=1gYc2*8Vh*0)aboYKG*ER+&L<~g4mIX3Xw5z3L*Cy9hjOr%PY;@P-d;49 zZs5#7GjHaKy^}KQV`6=Y&}$mpWwsQkxbf+0xO+m{{Pc2ho5NyQAY*Bu?zo2-40xQ4 z>#;~PJyFtKX9g~0RSpkZ0X)K4oMvPIzSQ769_5EbXu2b zm{@x~F{Jo{TL;c%DW)-GAurBv-iTu6I!{B>197{Ffd(4Z`&Uufxc}wE3(c;N_;tm_ z&)mlY{=FYI);r)Lb`yw56vF+gV#bL!2AQ18t_@0vC-&3Q-g-tHadepEYY_N9F8)G; zIko}mZ&hifaW~oLC=sF5Ihh5>W(ml-%@(`&_e3RUYzOo*tM3M>?aJadT$Y*+7hM}; zo0o;q)n18s|DJo~z})#SzX7gWHF418vk5O&VboD3am;7i%Z&%J4vA;ckV}<3 zxuD>*@ih-^)ca5|ALBXbj*YiVFPA1DW^&U;D|OXGiG&mgCDG1a#H`V~!8`9UW~noElfM0Os&LF-LfeSD46#l{AFGz&u=7`d50)HK;N z;!xpfwQ}h6QEKYL_q_bu7sx?<7tm%Ldiq_!J)^BYN-=z!)iyQjk41S*@7t}`D7M89 zYnaASXqB&-%?$N7&*512#-8++dmeGvw|&>&O&&b7GjD@Zn_|%v!x}g<=HVN64s+>I zbHl8w?5eHySU4^;MFgg2F(|0KoDY3lVAgbsTyGazo8A!OE3fiF=4N0B`6(AoBZu>B zh1!^_y+i*I3b%OS%7-@x))(WAtpM~RE^y%%hxWttEyZq7(PyP*IH5^V_17X|bfoF9%@jPzuY0wm&?lYG-nxq!#cN%OAX<}RIT zb-C+42=71EGrU}aQkwxUD@y%;dBd@B!b-neM^>x(Y+PLlc(78LkGYj&!0jakbF46~ z;>8kU1^l?k%aHK)WqZ)L7ALXR&U%MSOP<6lKRFmo6U94C=49vR{f&5a{n8gJN7*sz z;8YtTr2$vR$(osL>quO$N%no#=f$|95$C(7QHOz6&87wjmWAVmx>zr}?N`agvEeve zvp((Yr#1Fl{i_?s)W3a8H-+2G=_MGRSSA;Db0@z24s>s_-2khXWBaxBILr3yhH!OJ zZeGsU#sL+nBqU;BV7hH3!ycbrvF+Y* zpi{(My|Kp0iQRk<93XMN9NbXlbo}i2zM>f5E|zc^&6oDOhK8f6=f*tmyCw@SZART7 z93|3lG(P3@bc+#JI5^C^2h}gBjgPAAtjp%Hft-;ZTSceB>tf^@`?m^wkrMIN@T25t1HJA@g_oWps3&1uAq1O9F|A;`^rE|4Mo#owM*D=+=p zd&^7XDz`|PI|CBKL&5U0HtyT5@OU?eG?YCoGr;zE=vplO1?jN0Jf}Y$TtqGh7g{~+ z$j^K`=ZO_Xc0C~O83M82nAqPu6J~XDc;5Rqhr)3(x9S~#Y>Tz?3T43gn_-yr#d_;l zENwllXg26$=bsYu%N0Rbev{y7nR-w1YIf&xMCmoj&E~4q*}}-Rd1aA|7+?RLNYRNi zn*xkBIbI4bE{K$`wS5ImKdk-%nN0>z_cyQNYoBMI(Gwd}v+>FsNix1iB$ ztmU($58RnPJI6Lq&c^@V=c87ql_s6RY3y&_ZEheN)DI@D-pe&m;toiA+wCi&@}}B3 zyd9TuK=j^QbrBG8uALiGxOj~J%K{9?yQerK-}=!w^2ih849ID9eD-=d-X3@saPN=pvnmv| zh+|pboHEp2eUq3R$i-|l`ta%Mo{ukZaf;Zab;}Zd$=nN!69li?n2E=*t>d@1t2dnS z1wAXzhq5?gYf=?Nb3a$06%W@(7b|(=%L`h}Zm*}O|Ag4HNmv&VJ#70Q!fW$>k(xO% z#uXd(Ev@~fgbb>WapEELVy`%}&Eav>S3e6yLxzrOHput4?jnMI^G}0)bIzQVB^N)yl;OL0nrw>1_iN0Y z#rHXLxP(ni2Xw%SN(@;C3LRNh{c?i20r3H{o=V@ zgo4}!YtMzGA0JIt2lP!^mjGs7MERz1Q1PLELCT*Gd%`pT3Qy8)VVrCZ+f22p@2935 z4VjQm#NyMImoY9e@fA2rwkdA2*+wuje{#SVAIHqRdh>uk?W zdGpb^{%#!laK;!0)e5i+8LqbSCJJ(6aKoPxXdM5qm=AhW=svfP4d!*b5 zfpRm`X=|8yj1Wy;+k{Pjk)4a0Z_R^MZo+2nl8q`7k| z8#j3$AJDAisD})aJVjVsb8DR-Fk}kP9IjQVl#BIJs4wf;k$UrS`@%VMN~bM6ToI2! z7dvnk97+>W-dx8nz2jpEJd~NN`Q`sH zj{NWWyI;J$9EjzZn3Mi+5nJwdExeE6rf58Dr8jPy3>aSYTl)y*s*Pyotb?!O`&8hC z!o3rDZywllI&g2yU+j$Kc$Js0rh#TWKLdJ&wqT=BO%!(&N)$3GK44#+XoJYga zPV<($ovWwm1Y^I3b54{xwDSu01#G|Tmn)05Dp?fjin%V`ZyiC$Yx|g-^pTVikejIX z+W^w4RPH#4^^HCC^5znT)qx&%7;qFWiMWX?{tt8(9X*8<^XL<6q(X3XS##2vpDsHtH+d&e1P?HH8V zsv`#%cV|yXt5+}(4K zQz~CD23w4G-_~;XTLsco9ftKK4%eV;rw+b-0$pQ`*3rn3bMwO&Mb&|G`=+TFUsws7 zvo%scUy(A}YFz7?(eu8(!xCpVoAHZw5aw8(8Wl=DYC&vN(vY2X%3c5A@j*|Y2o4&t)|qWhk2M>2GqcK`dM$!9`a~DYC1p7jj;X2 z8ek+28*a7k{g;kf`4EymjrQ;SiJ^~XoTXwazF(iG;tccK)FqZfkPl}X{rzI?kTut7 z_>h%Pe-;;M`I^pjjRU@oJsgzgV4V_j#(y-r!W<`8w~Bcz%=sD;d9hG5M@5ylvB9)`M54P zwDQlEa?+6gct@?ZgTfl7rvm0f|NR>wm5m{`O;vIcqqS7-FeR^*V)$m+dbE~s=44c! z0Q)llK%AQh%!~NN;hb6{f3#O7KVIZl^~BYHz7QthzNBvfowr)(>=}YJ&qhnR$slOY zVjGXPkT0$wd@f0}VEE@$w9&rz)`9qfjHj*jcE%-)9}9CEKZ9Ys)6@Z zeQ|2kQNV#ybpw9&qk*3hdI}o;1JO=^_e9Q*4qQTGBzc%?rgxRQ_7WU(!-rV## zzHmsTArAXi{$#yR(U!wnJcwGzZ>MBlVejN3xVq1;aK>@QD0ykd^MMce9 zd-`GNS08@bWETs}=oCPEV#(7$9?$sp+Z-{UTAMd7h*_TULVWm+ZN@nGFL}*QUVic1 zv2ne-Ca9YpZju`1wuE#DPyGWkm^~Aib(4q4O`hYP)*u9Q*Y_kuzS+1i+=QOP&SLfk zrCHkyny+^L97f~ie?T#Ufme6?9@zGG<{v(meK>3}+xg)_zJBOl@t$+FfW=MnKa8f6 z%Hze_KOI>e%&%`%GFTP(8M;!ymPmtQrjfS>;5Q(%&?TDcOKbw0PSS3aM3=y*R0tjF4c>w$t`F`V%4C;N52QcP>`(m{S>L_`bpHf-~^cg{O z)enKhI_QM~pK6SK^LH10LG)-L+0IQ{8gh_(b7FSJdC~RRqKO@CG=VR25Wnnqu?8W9 z`A`+?_vd)3cuOlz)J7<4|9xl%5xF)kOq{tQHEZiyk`GeqftCLBH$c=>C-V_AuW{Df zzYid%)}y}VE7tH@M`T?LaGk%y4J-z2C{CQ}X9UK|kZ6OueC(S;o3CvXJll;feaBEJ z>!dalUufT&-kkOqN%A?K)TiHc6402*9X#rEP)bEX)@v{3tF#&ztOCm>sn!kxXKE%l zCHTaVF|QulU_QoT&5taa4mKl1way5I~#&BNf`PGk3IY6fU zAW|5cuai|{a}oG*ej8K&lsZ35;M*LeD+F2 z?*`C0>DuazI!U%B&&44qNA&;WxY$;~AD_MvD6xp7A(na#Jiu^%x+i&p;~(0Jt+%z) zR+FuDT42puGYtn*ZEed7pWS$$-W-kT{;G|KW|q35C=}Jl+e>6*1Py6X)NTUluLi59 zx}YDXwz$aO72!{ZXNx?r;i_;?Ll!1yExvD%q66m2CE2yLXLeQ-Kt)Ms9Zk@Oc-G&r z)hkZOGe=@yJIQKAtd=dZnIOLpgT(N@#rr3%S4+J;E>a!i^COR0b}k3$E9SYer9nNq zkwxtB#wJP_I_Bb3l?BUgA2`lIldk_XjI+c0gn52@=mIauuQ8X95po5~U+#oM5j>ma z_J8tMudF%?l~y7e?p*HRVVquIpPq_q$B5RFTINLw?RX&<32**41fRnX2h8%n_niFIKthx*!>w z`vJ2)Wg>6npUCW|yz1s#jIZ`y%@e`6gG27p-UKCBDpkeZ+x^Tft6$k+HB z-6!`xf6f;ZF;rBRtHrRf;hg*>~h9Ugji}dxESTl4arqeH9bTxVLUO)cUfd2QP zzp)|%7(Y4eWpf+jeQ0X!P(Q5J2?A~5o(}BR937+v>8Z97U98>@r{=CxE`nMxWjy!6 z=Hq!gi`PN4nwj!gTRD8e?H9CI2*po8=4sodw)>6oaO90CSGl-0=O=MF=YUK$9DvwL zW&NBF3LUej6eBBisfxU~f^)?2@i%^(u=_hWuIV_LANJKUH(un4OaeUHVL4k52eTc$ zu)HWO8E|Kgk9gY)g)x8oBDH_HNjjf6xtBLS_hh zHjlEvU%6ZzcdQEzE)VT&dE6?mFKXka0<|1o!`jKgd)9rPfeM(iRObT@FdmKW#Ynv6p zifJDo?ew=%+ZPjX@0q6eCDj43UoAE*^WNPoqYBpC(1kO;cB&6A#%vqIvN-&?dCwFH zc?=A!q|@$4R)%jLqPNa+SxwB_5`b}vsv!LX>Yl>bgGGTY`L$nN-0c~|4%{Rtb{LX& zZXH0S5u3iBLG;Bs@%u0d68_?uM{zhcw#UZ#>z2|UA#ZWyE*6h!<(_-1*H0x!@9>g2L)xH9di&VmD+0NWx_t)pT93wGDh9 zR%AyKSy6%S4Oei|6jOZ8KJBu95nc`27cgftmO~B6e_YcFy8)2 znH3H|z0*Wh+UE?v+OOTLK=Eb!ZWp zkG{+ewQdhm-oi7%@o-WbA<7uGF2r*lIDb0NKdyq&Kpa@JhIZK1Ywdz!E3!Co(pQ=G zVy~O2FWwF(4PSm5r^wdI^o`%+Bn6){qt@XfFn4VB1`@qVl9)AX+_dwVFV(f-L`7mV zOS+y*v;o7nt3}H(%W}{yFOwHvmQ=;@15Cu`M5HtcSa5zE8+>?%(KynUyF7Sl?iB(V zK4Pkv*Lfn`Z!wXJs|`o%%d@fXO4eqY0froXNE4d1m$PR89AN9L4c*7PaZE3R9o@(y zbKh|cwgg6^+2=(=4E^%uHM`mLpCK5}itLo7mCW8Mz~2k1j-`UD7yQkmz_F$e+18Hw z#v(d#Gg|ms7Ek{dLkHkB>P)bSm_G`TbIe?S1t$z*W8ug2O8fHB2-8!h(dyY$vqv!H z|2RB6Z2OH$a|*qpIj{KX4Vp;N%Vz$nHDLAVl%9r^;V56r=DhEw!;2`gca2b~O?mrY z&G6%CM$H^LBJ8jh&gVaEj>he0^`-r8xCElxp?!ZAshSCWPFOe&@+@!K?o%G|3B&n# zGUYv2M`BCP(AWl~&DG=VDwOrCuaB785xY-P7N@+@ zXv0&V&b{_BHpV`+=fjpysEog&@d>asCH}s-ExrsC&~WMqSiXf(Gk?T>P>wOO?VEPn zi!sv6wNhL=SQVRg_|)BRq?vo_;!&XjV4)pt=j6MI8<(pg@=+YF5yWw9^tCf&UjY)> zAD$lXTB4!s6Ca;_cq4NS(YQDbrl2)so7vukq=|fEi;PbDIeOiyZLZ+(&5*{TV0h#Q zI}3MpFoZtkU`&v!g-zP;O^dQJBVO|ie_zzZGbTGs{QK-b#W!R9lyA=I+=E=2 z5m&sfGw|wz9W9i5bixwYMD`=+*?^CP<9BrwJA7=qE@6{d*+I{~dx`$okX9@^)6y25 z(`9us55?dG-qcm^?Q2bH+E7eI9ST`6G@pn@aBu{v9tD$sd6i2h{Y9O&hvpk zVEwarOyZCZZB9BO*SeTQP>)W%BdKmSlZ(5)93F^uF!GLU^vBevU@b$=yQdt++!tk@ z<|^j&%Hr&Q>`Xgc=ci8uqQzYx$6kl#0JT6iu1K}j#-#Ys#y6AY94;z4uJc{P@kFob z@O7mngfiM;ipQ}(^F%v2u?e6mHBPhFM;lqqPx%}F!1Z5*?_7L(#a4}P*8p05F(O?G z1XvS81|H^8yq75FeHf=)1Anv~udxE=g7u-`AhM~VB}UhCYb1~$HiyxrmIcw^RGyPo zdtbhBWVn@vi6 zG!z0gsf`9MZLe>N?`7kMR;*qMu=~bbiRHfbqX)e`Y0pTl9VJ*E)&jpEc)@?yO1-g+++jT;7EDw7;dAm!Bp5qZT_#X?E%!cS z@r}GasyU=9zFivPqMu+V#Q$CA%E`P`gCR3} z`vfbn`F0N`G1kLlW_SPMTF#TMp7P?zUo0>#!HJj?zlzg%#RD%4e4iv**&s5G{$U2X zJc}40FBf8SOTD!QL%nF!#5lf}xNIA5_2PEUW>j^vjQetu2pZz6aeIw95+iaVqHY3( zh8;20nK$6ZZcnKwN|XvD!CZ?!>#o|+XJZp=r(^F zJ%SYOa$4@QR&KnmKQxOAMj1-%c*sHCZ*9dp876O^m5Ug1Ab#^w9^T6!N}CFc0#Mq{ z*2YlacYP&Rg1~q&HV=rue-)x$?v3sncWWe)Jp7j&83?4WXM%BB4zgSp3Y(LAei;bU2MbA&JYIhj2=lf5V3urWT))^ZuHN^Ue5B{7ok21;b<*yS9Z3b zMso`AsT~2lx9ox3FM61x*B3ceBjfPg7eQ|v?T_fy)!xQN%tByO4G3C|z;*0a&lz>k zsoBaKpYQr03gdB+PA6E25yU@thh8&8eWpO$__{V{XgUVDWJC)G)DBd}-rLP-v5M)v zTl|@SE@US}Ae#?za_`ya<|+Uauc8g7DDv-H_+p^v=>09{?s*8kU&^917atYy#gnx7 z>o*?s>>Enc#=#^RM|s723p?&&T3^R>M%wZ);9YVTR4Zf>Yp{!hakfJ5@B@;9(@jQ_ z3c4sXV9JpdVmdvIZ%t)gj#^2)Lxp|LHm!#PmD=;-tNIRnw@{JL9>Odhs$h*>N?ADy zbfm@E_=_RLd>7m(^vTEc%+H#5Q4qrVHBfYR5iMgB=x>KoFQU(GYB@U!)}V`n95g=; zZFX|F$rjh}W*-h{jgMv}As86g^{sXJ_;7I>&sTXE%elnSZ;0Laly|c+4$EL({_pfo zBrm?2ScB@&00tSfFE{O$41IIz8tv>dh6H)_qJ}DET*R`LI8+aH&Qg3FixzZqa@@^9 zoYf3j`ENw0`pLj7d~Pn&AhtKm)~OKsYEb^PZ!^RpjvGSd^4FFutTRoVR!>^udz-Ad zf940K**15rA8j|+T_oivp5vnf&t7mkT!-KJV^y80@=-TW9Js+Vrt(~9cLO$~Y*P!P znf$Zm44-WRnt`iA<(&n&sRW1a00aLN%2B=CqyS|8jLM3bNa{lDuQj|Nrmq9eXw+5>&TW zRV9&lBoZJ+sUCffJwbfZ4kw4@MR8dQ%A<2qU-F|2C7`9L1<(PsCYh)rst>%iCS>e) zQ!`xl*}A^G4_Uj2;k!2tV3>r@e~WKUau9ztcD+&Ne=aRKwDH@y(MpNI>9CWBHnXHx zLd>5`*om9I=J1+d&Np>#dJB8GT9*OnzSntfl8NYsQvNGkb$;;?GwndpKf4{ui7#*B zYdj|wlkAOmVV!hQXBQ_iE<I2X zu7^5dC;(DGt-rU2u+dh?Yro*4Z9eA+t(w{=3e%cwOys7Cx$7@xy8@OCUGp2v_o2$^ z8&~30&1}dR9LH1>?f>q7RCk^r@u^~EYkU$~L&R@QwIeULupCD_>^hUhv7c0(Jy}@q zMu)!18VHuvM|1in6PQ7;(^4+o&VOXVf{c@GvbU)wTkI+@LyxRUZem z?q26;zw=Uad0WHQ-Qdh!)bS~0a2iKLi&@$_8#y#7frFhlPxRhBm^JXaJy2^R2z~L3 zoB7lXT)C)blZRgtRUXTtjMuwnG(dX9BacC6XAQwC)?sPVIRCPZGh&ib6*e+?v`%{d zm{Qwv`{vwn+IpoAo3iBg7rYvF!pPo@I(fZCR>sD=-Vz&~e6{&uYVPQqQ|7%O-kK%1G%~2q zSiCQm)ea*tJM)EtONxDQv+`g|5aq=9sSV1Az4{nS2P%^Lsxn%xS+X&Ex3i-YG{-&w zQB|ThHvlqrL&vdPG4XtB?rJYUcW4oNaYXd9Lhg<3X}d9?<^uHU3|R(pOQz3lIE~h1FHU?NGaQW3 z2FKP)JBGAw)zF-<@qG+pIrL?QewLwi7M$V}=fUCgVyjz?hV_2jm);$(y%(X`FOZhG zP&;dB$(R1ybLI_#DOz`7xv;CB_yX!!8L{JKAty){kFYBpj>dKly7?Di{TK;hKgv-lcxo^$h8v$L ztX|BnCL}i2Mm!$TA0+a(UTC77aI<~$G5I+e!*jnMd%{&j&4a_{qaPXhPai7n_{*dJ zlh1h6=N6)USU(QiOGymOd|6WtZq8Rj_^GjVbt!dx-w%pSvgin3}IaAlJf$xG}IqG1#%Xpz{NdZ(#z{0gAkB z^gNlE*z_{!Y%GA|y^}0jk%L|nGb=~K?TZVVi=Uua@6T!I_-lkS)mYvuu2|=fJefhW z4P^WhDD;GtQ_EU*GBcJhxtX_{l5YHoT`l<9&J$UG;T+Vgv`4;)aLyb;%viO(d3gFR z7dV`qfNGm(94j0?PULVlK=iFM*a#J=Yv9rNYue&y;6+lMJ6_(%77NGaBwtht#pCEh zj!vFV9vqW$mQk)a3AasKc!z#95FhJ095XeKj1F)gk_Q=QU7VwS`q;O` z#y>CpWVVgtjkmRGYyLQQIQ8V=WXar|k<+yvR@2^~q7Tt8FJNGWG5} zQ6Cd8Qeyhepw0~$n2v;_cr>%gAK5BwY*7rnm)-uBLpn2F9B_@8y_}iw@s@0^Vwn4ZA_S|21-TazOn7NDyS>S!GbY8A^X8;RK3!PXc7PmzZ(z)KbATiB<@<&k`7WR$ z8B#8o@~TPvYU3CYsEf=?7?U``)p?{Zk;=glc;Ci%-YLg!HdSbC<48}+>b+sGhUPD& zHj?c8OLn$8Of^BgessoqCPIZ7}r0M$=@OlW$!|~#zG6(0cF-3Rk?1Fi|$ltav zMX{5Y9&!`Ft$2%{PPVB)#nhMb+Akh@uSv?x!cCvAei8e}h)jI+?HxXnXtthO~iY~^MkC*@a$ z`61jJQT2VajVQmAnF2?#e4GQ`_a#XwKiY zN@V6V9shTKrpCOqd*}bgM||(67AN+aA?YW-w59OAi0A{kjX*fYaKbeQ45F-td!(PS9#{uj-e*Qvl5@D-v z=GCnG4?&A5${M{#$E-RNB5dYtFib?>yJU-N_q)Ox7yqC4HS~C z3O9Y0$c~%M#|6wz9V{BBT>$N@U!HU@Z+A^s?@K3MFZVY-p8N8fU)f~0kwXlw8KsB& z+A+XM;z*GDfw26mWj@}^pfh)@X1hci2jwNS8usHfPi_NQ8!>ENU*4K46lH6LT4PWt zbq0G0#~Exye?V^Uhv}D!SupoSsxP8_J3slz;p4xFWe{G5BC<;Ry4&RCp&Db~J+c^@ z=%x?G;x@KHu{&Q~!`R>~CuKMrPk#N-2YW{)uHg$5*u|jt-LsIX{45Mlc^KOb$h;;) ziEe3%zWj_?KH9z;G~Eq{aV4l0m?6}EWzoR1`rm~MEUWLX1WYs_X&d}ZG7C)tM7VscgY$aVFZsF-;P&}yYY4Df z@MI?t%$o!2I}{^R8gbsepL*+t{MqLlL>!&N>KBrhdfvM^qQeAXO1fahPfWNwzzl2c zB6&}Yo4fv#<2vZEfxo>H^5~|*gJYYc_}clhZMi(Ztm)Zu@SgSc1<_uvgR_s1(prc-x)yo#e*R&K;InBEC=w^m`GnT{#1N9t87%GeRpofTbARFm#lUmI&dxjU z4RI)Uj`+RLs+IZWXKSu!uK3Rn!VZDy8E$o{MIX*Kwc%)<`y$uAS~qM|+S8_*tsaek zvaC9B~#>q3@tti)Kc-(}})BGAf>)rj1GQ)cvkY z48qs$l*~3EsF;Z`~I1J!#jo)}%cIgyn$WBm|HuH@zAr%8Pn`;(cFvX;@N?RYKHPP_8g>I=3A z=g484zx?Ry*-av`^%KLgEC(9pDW)}pLk6m~j5}hx{(eX{_U5{m>w- z_)RD2F^e)+~@^%7X+GoqiuSnAlw&o?ReUKKeybH>gO2K!5%y4s7i z*!GsQEwUirJ`kz?>kH*pO~bTU3gv^hJe^EJu)TFA0f~y){8Wb#-PzOL7<1H}0nu06 ze9Hk_0^2OU0o>?!Ba*3rXCPuS&nwzEerpE(YU)pJu5P9yR$odVpX#QGDt3>rZJ22O zYa|q!g~rpnel);eebmci;^rXrdT$cN)Ww}vw|cRauOgUI?6pmX+h zE+&d_o8&vMocw*Ef}pyakix`LL@oWqdXBlN80M9R9{f$26veaNc$h8%i zy*1bpbMa8LJ`$_V$<8|vv39;0(1dh1zeCpCDPv!`_8LLN50lR!4CCj|ZfN^}WNVFF z#Se(~w$4+G`|?+RUh;AEYgpk~oh9%R+=(h7XuznPI7*AQdAg>E#eTbdCsVj3(SUCH zf>qbpFdbO_jSpb2PTKBEyyfp+3}d^1u1W?$%r_!TkD65ln|-j2tpj9!x(&kpYVc4{ zIL=rdznQF~(&#cCzi`asYp9VMM`HOsvZ-mXaiOK|WXnO>>KQk5i?5L_^iIT6{)Ee_ zIhx(&SKfv^!?RjnIRsR>#l>SW&5U_$oRb-|F@HJ9XUQ=peZ8gT8(+)QPzvb$qocnr zR<4Zdcnv~rteq(FTdbN`qmzo02Os~^+7E+t|4p3Afis(PC{Xh#GIR?pck^4wa)Xi8 zc;}jS@)V%8tYG#$KTz^?c1+@th>EFwU+l{Ry?N|&0`XX*e$PAH_T?y8sr?-u~@vUVI)L0=kY#gkQ zaq>dlc}mZ<)|xfW`Wg4Q<%sWoQMz@oI#Vx)w?PquhhLgp6#+j|Cy|MXwysO&;_Urd z0TAK+3YTbHv=yITwOVdxTWse6ee8ljws1ua(mCr;8QLtW1(V)2Lxa%~0}c5b!+1+l z?mY2LiXsMQXGGa&}8);-+ucl^S+fec?+3;G4L9wEqS4hy}JO>(;| z!LJAaJHEkz_b2o3&CNVBrsW`hC%-w*=d#Z~89;G{gVobre7uchr~24;8aIqMgfFV~ zd^}xWb-{MIZ66Mp#!+cmmVkB&un>eG^AB*ct5b2&dz{v~g?#amqfq7?(5jh*tf8k) z`qiQRU*1?Z&lUMFXRwE;Vb)L*Z|4WGImShBf14p8k?Q9@TaBI#&Z6JJR3$ z1z)hY+02G09Lr=)6ezEKEa3O3!wvMl| z_t{gL=K5iQzetYM+984wD)sdlJh>W&kn+n zx4b;#(DTYW8~bt@C(N_z9R5H5+iz~0uIgQ&@O4ZG^>cFwHeq`c|6r-2gO^z^@ZM632b@hSxV2 z5GFU4cHwfo+!KjEDgy9yx?1^ z5WEW<3!OAYiF2)EQBI(1;NX}FhxjvzbqiTJ!l5H%tM4G?S5#yiu~oE%9Uol!zhqTFDIs<`50 zhdBYO?-UBM+mw()OvcA78w>e~SUNH@91ZYysyNaLv)XaWO(!#E(`*Ryv+JiS*)HjI)vHUFJ^aw^rj~(wmj5(9SW0 zLbDmO`6;x9y0yWd7>|40Ffi;PfAKXpzSonTV~f=|uvl3KjDLK|-SDm)GU(pIMGZsi zDA-ut+rH|5wy1UP{=ha{oV3xOnpo*wyE2^-`%J>u=>)IN`N~Odw-55wfg`w%OXCfl zogc#MqhOdam5a8Wqv(=d-gioXBVVF%^u+J~50d0<`k0&QVv2KolY^eGKFW0!$JkK)0rsb|Vm)qHEVJ^jUM_c|ozvf;2vUg{gi-@DlDj&zL zedxwBM9tZbMRirqOLFF6+H!UG-CLl!0_SP65*y3;8dPU>o_PHDVC$Kf-tlwHUO!zy z!mc?(SKQ{#FH3CL{vo+u$e&ssQd1NJ{eN& zUQTP0qt-8e>gyq^CO^lX;oP6TD{~G4 zy6fQH0~qH+woUwau=~NX2>2eh2(3+rhb4Mt99!`0eW+W!y?K=HT>}7HUKGVTw7wgL zO|v-EvG3YC#Mnd9`4JCOH!j=v{+_n}!gVi4%+|QR+}^l{Mxf0>M+QvJnOnV+JAVZd z{m1?%oA7`(*sMim1wjpL-~HKRg(z}k5alXT_|4PHO@JE~0d zoT;VPWIth+t68Y=T=GBF{`go!@5xMF&NUrLHe{|@uJLUXUd^pN(#A<&-NjvAGI?&A z1!&!!;|k`ILfEbc=dktad~j^N?$;0EZ!QVgP{{wPAP&|^3=wX7D@8y2`L}i<>wfp+ zqR;yY5IzUuVH$h^?Hoqf7wG1z0SSAG?8n!ezfI>z;iscMCg1$?JzC^Q1f>&Ai|le@ zM}}grl51Ni2UI|H7R2bA@b)bXHu@FQg41x&8BOI*LZcUprqe@(;wBrpJB;d8SmF(u zEndj=@z_A)7l&yj!PBA-)JbYPTaLpk!ld~dY^20R@x_1g0ve<7d^~1Y4j1KJNP;yJ z$;*|5%t`nHSSS1KGWg`>i>R99QO4=Fkipe)DA(2h)vuY5C2?CA>3EWr811&PGq&MT znlcCW6NFv0f_d-4Mp?oESYhxmf77^N00;7K?YCS6=7oCm8)|(iXQe;UCVaRrluNb_D>p9-Z zPFv9~lC<=Zzs673h@z@?g4p(k-XlBWR@L$m0)N_ty*%R(Dm?JpoB+gl4|yu! z5YmrM38G%dVq?X=oaG{lIamY7N*>0ezb}^r=mf>f`iXa(CT;?R&(0h?Upfb|^NW=* z5zEB|T8PdQ5s4KI3ao6?Z}Ep=zTLiwU`F_xDJ^LLCI%r-PQ%)0*hXJF+S1iC5ZcNv zweqzq&@Qm*ic-Hoj_ct935;pOoyHQz2A20;JLAag6WM`>`>)_QtSC%*E|Kl@|J z{*;($2o*Y+0F9OBFSE#;Nw6S6Yr^0%z_QVkrJgClJrW=yHHVV}g8H+?BGvaSa9+&yNDrb>bFD z$jz0w-k7NEpRzz_DEn^JN)BHNw3$chwX+8O6`ekQsCET-*U~v|?F-Kx+w4q4koCXX z*)O0$jl{7rDC%VLrn~cTChR|Zu|lR%isohh&CSJZoiPOU3OO#D?OHrprE|=ZAQyWO zNa$1#S~l_X{L4R|h>r{X&dtV8u2`*z)#KHA>)7UZQ4973%un0Sv2+IBNDFtZ@AJ`O zptw-n-Gg0zR9QbUsI#*|8+BcSZobe(W(=MtX{(Rp<+vE=HDL#&n#}Zxn!M1PVH`~;Yxlf#r;#nk)<0~szoT}7 zchoRr$Mtx7#3UTACp=bB9g&CQoVRylUdv3*kJhf+>kB3~um9o}+b{UtqF_D(8jW=v z;~jOFy{!BquJOD{7*heUHePSaa>3u47T31eWRWhfi-e9u78edWGR$D#Ph|_(RZTPv#WPEJ7$$jnjX8(QBc#*?#6y~@3v_6}o{7Q_YVH#Xz z6FUb!4hRjk>*e@`NwcpB^aqOrxX7}lp+Ji0^ex>M$$CWvQjf#SLBslZs6N2;ck{Mji;? z{4L*v8e-=`yN*_9=WtkA#9-Jth%Kh$KaRV0;2!#2rkx!ABDkYXN+s)>!+_g+wvh~$&6 zivU~y=a-G*FTafk`f!i?1+i9g5W{%)?AQsYR%m@o2K)GX-clFpm)@8-n^QOe4KG)I zHNSdAZFw2j+%lMLYq1E{6uqaNpZ7?ijlP`ANkLo|(fO*KbMbwiF>9UF@ctHiTh8f! z`J*1z-ts``a#jLGFpqKQTo%`ACo(?%tqBO?Kwq6cHW-ii&}<$=EN#A`X;zGZ(kFtv zgeiX;Zb;CI*Nh(&5H#Jcg@wp zWUYx~s^7cDnu+&s@@Z@_>R!*h%~z7ffhZato~yJ4LzW5Zcl0Mjeyz9jj9@0n_%(O& z@f>jm@4ON3>Lgiu@^kZgy1Bc)Uks=!Y(>*o!QolX3Nj||GmWN+PHd%NbQVj|wp5|h zSCd}gO52W5`0AHIMKg{HE9W--uxZC(++05=XAhjYT9@vTL$EF0kc`nd}137SXrFA|Au*iEM zlmMu$i&j%$@gfKrMeMpz6=!%3&^{o=o^8Ko7U~jXG@>lNAjhpaZx)J_p?7>Vb7vfr z0%o!!RAJ`C{^40tOREF^VG4wAF`Xe;pcYM0oCqL=Fx8R#TdbQs)(5@FLT7TvP9o8q zZCE&|b^#GBMfN3z#MsGc7=JNoc%o>|qkIp~De9)3`Z!SRU1W$Eo|8-?GY^rrEZwlx zK6$;Xr7|9ns2um;k}EA^YdF2z-q30QW(=$65GpBu1{Bujmt5!RtiJ)=$c{o7JlUvMVsb_I>0uT zsniVLmgd+PIv93;Ij9Us6?Wod)26({^GO0B z>SyimIPPHo%AsL18Q*C0wCR^kGZFu=;S=3J3=(6BELmX5Pfk8*fl^$u+$sVtA<>fr^Zl-Q*Mm^u5ZT1L+o_o9Upz|qS^I-c3Xpy z<>P3W!)!HPs%E5tdScbyd^Zs>+vLHvzRviBn;7n5t0gbn&-P5?>O4VXT#@^rg`D(y zU_oM_Ub%CAU(k-Xazkq`qxq`C9^3aH#)|#6Ma4Qtob?YwfBksb=jc4C=~}{La#Rb7 zHP;dI#HgGNLbo>%gvdYJn~mr;t~nTj{;)OMxe1&>eF;Wq=cqk1M%0d@YdoanrKlI} zm+phHZ)MG)4TswA!sxmr26)xS;|Mih#C03K>kTblyE4*LLtifb({hto%i#^n@yM*3 z@N@Zc9lOyMrQ6I(JBh0QpclOpnB`S zJRO_mXI>d6>zZMgSNziHd<<~TnxA)tV^13i=;o1AvNy}GFOOUQ1U{4O$}K?eht(WD zE%~}~RNwHYvs_>8^r)D*E&kc8!^Jt{CPblVNO}k=4bh zqX2CBJ7L(YX5~?Ed5vqz;=Y3FZQS`2$@ymozsE&PMO8-I-VYHxB7R5$-{wI^!&7a3 zJW7RK+Wg@+f|BiZp4lr?+-5k>ceeTOJPsFGcJ2mH-<0d?%Z*nfmtFx%Ibd*y=A1(k zL-KcXyelV0)h8(u)!avWf9?Ej4yS`rfU2Jzb3Bl_&6g^E=ZrB=XFTgA#wawN@w&d$ zy*4^7`gxZ{ZvNEA&GmO5VA6?) z<4J>O7GFJo^wtbUT`lU+FLZ$8_-2}>B_Oqt-_hI!QPwLN=LS> zg?{9=ddXeA=r@wh)7Gi1;EU30?DAh?G{slaX9}FkDuUd@|>T$HIU<|Y3OkcX|09d5`M$Nq|CfpT!<_}#HCEOHL|%O{xF~`NFA)x6+-s95m2<-f ztatutubtA&UuCTmPh*(B56#%j)m?Jty3yKnx%cua+{Uf8isGik8s7}uXC2Ka^*5$C zd%5vyJQVlC&7WR)sJlPJznM+!=J8B(;Xk^Kg9z4AfAcm+(h`-8KE9%);{;G{498dE z)s^NpgvESa^z@Bwgo`pC0d)2$7LD>R-Z;Ft1}zRpWB0{h<56#8;kimzwtLb3?8U!4 zigY+$&q9<$ChS$YtXSe1<7e9f1PF{P&{tydE%@=qU-&mMGk(FX8k_qt*zI9FamAu7SI>G- zybe`>^tAPM;r4_`wLxD%h4^unZ3>W27c#JQ5R1)2e=^=EZdj7zD&~qM#yQAI1ni5+ zF8|Z-hRYb(W6MyM-!d?mef4Z51Wq0C88zBX`g%^T#naC(X2PUaP9dLeUgRuPi;&f) zy+tYU!YpF;ekcvC;x0D!2;MIb_hw5|1H4he#xViAYh|(F&fGwQJBwg4{j~L{xeYOv zvn@;AqQ%kqCKpL|6GMNtD)klZ+Q5opdhfzOw@pi9^}ldyr`!c5{TYdjpa^0MtC@pC zM^57CWU9{Z`7g)#xN76|5H)ubQ{m+1GOYFpJ@y@mHU+WaOXt~_e=#wDfH_(m>k&!) zv}gCLiHW_E!2b9}eEgs7K6rQ+D_j~o0MC7uxp?^R!}~_(%O@&15S0s~DVWPZzQn(n2 zG4A}JGhV3U$UL0e3mxt*Qim5M;t>-`_(9tt#9yu8=&HRGl!uv^Qg^I#wJ1t3kUxN=M{q+8J}#Lcmf^Pp$6;Nt-4=AnG?dvo6Zz^?V1AZ3Yv z_Zm_)LGa}vs|S|@y75zC^gYT|-*}jtjrk`ljumv>2^Cw8HsNJRo4IqG1xLrW&XfGu z8QHOR3(K}$9K^H6Zu+|%_6EQ>^ux5xOVf=Ujo<#^3XPi91{Ng}<4|5d)sQC26 zdj?5KASaggoWO8fEC)bZoQe%JiBo)~x6SMv}X8y#y7!0>nVs#cAmej2BI zqxvdAenJdxJh1ceMbYG8gp&%HPCCOzbJ~u&(Yj~UCw{ZhqIrS5IjU)E0`@`)QtUM) zqnO^O+ciHSKCpxv&)L{O(0{0DbJ8$eLF$7kCAVUB{dC;TL1MQhhw9rSDA~7MLv*xU1;1ty+yoc5-f80N)7jjXA=w zIBMb-eXet{K;X@pIjU4|J&46~{)&;wLmO9`{xSf$cIG6eh&C${n2m)w-dbG@`hCHy zr4DSvrD1*-Hymqz`1Y+^vGtib5C?(;(|Ym1pj!g%c$L2fI=0!)GMQQRi|^J7b9u3ppH!84 zCDnc?UpmRt;(o;)-u8hWhU?t21*<%!b?$Vnvf{|C`}?QrpoETp`~^7IJyFX8tCdu1 zR#FsC+xuJRnI6=o^V2y+oTjESkh-2?);zCFfMXFSFtceJf2KD4c{O2wW38Jd%x&OKgz%Bj(mnC_n+wrh}_cgR9+ zJX)*QIxg57UL#+$T^G*!aHcR+uuC1&*;R)FXzrk?o|1Z?BI2*Ub%{>3a*p0ZW$UnZ zQXydLy`031z^wPdx>la^96C9jbdC-m!KvaU1_GZV42L*X5)Qq`kJN1Zk*NNSWdO&8 z{KSZ(MKBrpY2yr1}Z5>0kY|bis;RG=M`e_S4hPEmtWRHEvRwbN*HGc$~FhFcKs|H zjN}0y>tjos#*8&Te`8xflvddHEo-7rh-zaXl=I9O0*P!z>yzZ{lwBP4)6*c7TVkzcr9RIM~Z!UESFnbFt1BeNnTsAh!YBUn)?f@l!4q{<_=3 z$LTxHX_`ywT9Y!jXO?ot23*6t$yJ$vvM86F=U+|a!J|2R=Axup zUYt0v6D~+$9S?g6Xzz(w`L-;WiJCegUmjVUSrZ%|VXR#r6bhT($)#?!@z=8640v=F zNUvJZae*=YxDM?601_(_v&#r!Z=le1p)f!Fl=}j!6UXr@_Xsuq#t_egJZz|auhl@I zF;tAdINf;S(9KeW4?q}eWo+!4-w-l}IS!kC6TXm}Q(S0_VFYc;Z4LVR$58ZYYm(oa z%+ME;Z08%{;or(5=>PoNnF7?QYwNxntmETcEA0sI!4H_Rf?JamrA1cli>9+PA9>!n zokBBS1+-1xn=5ZYGcOI;8%7&2%guR$sQhhcsuCkH_D>SfwckMww9r}Je66dGfo|Nj zWotZg1lY0CRXKsIkN%Yt#qi93HhaUic2_u^!@z()qYOt|8}!6f7=4j_8la@LQJwM5 z0d2`&OwZvtXvD?Ht|~qHbn(>6tPyfA_O3JL=zV9{`4Kcc^W_h5Nwf=}zUgsy9P|w* zI9t3DTOAsjt+sFOI6z9gu;^=gPOvVt;UxiDBsW-zBS(AAjX6z=Pv>-K&9GYX*Q~LI z>vJjJDH^YCR?M$R*nwApF1$5)xm@7DG_x3*T_jp>vl7GV@^F@vbj-R=sqMLQ zsw{J~cud1yKEj{MxzzgU zC?UtW&BNA^$;vgI_#i{1Q-`DRfn$5_tPj>%7+YQY zUI7w|)7hp~_{)iSj*;t&a`tarTYroJSXvx9r?Dt!%_RV!dTS3_uUZ9i7c(@s8JJgd zP#`yzyy5Y~ndY5YsIz9zk*<1uBjAC;itd_e>;*w_kaK088jnYH@&9DW)E#l?^d^aT z-mm1-bPBP#zw_;(4%~IHO_<}&h2qL3{b734^x`* z?3#Cvqep{YAKT_TDeX;W>_BM%P+};cHN2P#JGVkn&Fm8ghB2TWSL;~Icp<9ji@Dv; zYn5>|Fi5|;9he$6eX$y4V$rsf5`W!ayT-h{Uubo7id0OQfv=7D)chuI`f|gV=_q@$gIBnX|kYKUoT2bCicjW~C6v-1(#_zt#p6RgdD+2m3l zt{e3if_OV;U4KkbA6a&8+43gEF;U6($|$>d7#GacG|LaWl?#Jtti5Yqkd?3x= z^$|$zZ2V&?SuZirqSI!54+&_v4&Zx4c1@qHw_T%ub=O)q*O5H?8Z8^6h_&lQ?2=?i zWaq;|n2X+i$ZCCPw&t2!C5zkUo)BI=!9QUYN#njIEBIyj+868S|YdAQfNhK_KBqxA%V! z+jzKIlMt@+`YF%*Cz!^MBiPcMmdL_FV9Yuh-ewtv~J8_R4^ly9ZcyQkpHFpPJ- zXrz{7dUgUa=bBkBI3J$%Z*-%yZay~Wu&>;%4%TY_oQ#zeq3!q%N`FrrgYl})>pBJz zBlh#v%g<#1NMk#WSX(e06>DDZ^n?YnADhG(UjIhl zwfNoWm~;hqS0i-YG4;eyPB;%B`k|=p!ga*oNC}nh!T2J#@)}KVvSQseA+hjP0lWUk zWb|Sgw;O^CG}@N>Ym4XtBOkfq^=9O`?8X!`&vu*#FFNt^^W@pYRaVi`{=E;m!odsU z;#BC_*$)$SDGnTO`Q&&pHISh%p!kx{IIp%^TPm@d3@*}kEg#2Og2%HVqEYMwsncbu z%ph*YXl&MX-(-m_ooc1f7aTaO^G@W;(|8$KZL`=W_IT)KJ++r4NW>7)lc7J)qkg@) zy$Et_@ieGB^~JSF%Fu7Es!Ger+CT0yUd+cIjAF)cz=)zF^21lH+;d>A+S)RoVZ`59 zE$HfYvoEQ}PEkO2F-AC)@$G`|oKcRVU*ci^-bm?f41L;&TRocy<81#Q|749g@pORw zw`e?P4gY?=7{A&($Kb7<`P*^9>FB=;Xq#7SRbWqQL-{NnYqz(qD3KE_$geIGnZ3NXJ$8lKZ#?Z(46n}3TLar9fV=c~1H?bfb4(};?3 zjk%zsjTJjzpZRn||KZ-bG5rv`5;0KqjPFzbvNGPr-M(`vxw}mUD;JUM>>bw5)y3`& zIoMU$7`PCkT;gU-F~Rpk;(b_wuh$93QWpzuBW@n;2QoSP$&#vR8pv-C`jAYn&T3Ul z+dt>8^^Hr#B)(>ahCN3aZ7ip-ay}Y=Y2p6|li=mt$Vk%=Q5FP2wo+i^1SY6)4V#&? z*y8Jn#?kDgCI1Ljm;IH5JmoBu*0XH@=6yM+gK=bJ9EbE}3b>X2x{9??QJ$9>eG0qKV&+?dF~N@5_LB=y>lE zbiiAE&3e^^$uw`ZY`iaZ8jJAZTRUSDQxtWs%l@+lu4$W>2q}PVc2Gy2n>%K|6Q}yq z6-PV9^kHh_{l>eWFw%bTB<}b`!+8LKSa5>G^Y+QCOMPq%ov*UXoxU+T4{^@F<2cJL zs%ng-Z79YR3>=-5X3P1Ak$ks~F6i=CsZ;RnGA-EQWpAYwLWJmINf;5}uFa67U#1M$3$`(e`0@)Y2qw!Mwl0Rgtap z-t$+#kro-Dfjm!q(3U+-Ow=ozTz*DZxzui4w7r;GGzR5~T#s@vE<*6X*-bYp6QesP zAUX%}?HB5xuryW|5idl(a(3&!+R*v{I_WR2>B!Z9y<$3BI9US6tM|&}BFAKY4&%Kb zKCL+mZ;s_gP!T~U|I{tC}JZoSTooqEgS`YBF%$X|{~wj{TQqtnH zm34FO#u62q^BNo5QhPO~-MK-o#+cG08+~JXycIsT#ghZ5ZxNLfcDrv^r{lQwnU4L# ziqFN8t3dnEHWx4!ZP!us%|CPo#E*(bY&9`+?nA}l+5F?UAB%*J{^oKmodG$1<;<=$ z^cUSc90`Q0rG0Y}$rf!M1;j_I{pAD&SB#{CP2yND&!xr;d*7QT4@t7xsL;W~; zdnWp2%1&&q5wv1K2hS$E76_fxt;XnmL)$E?DD+^3gg0kJ=h83|0+M5mb=xdQezE1ugSm`_SV9H-# z9@PH`2J*TB@NqFeLUrKLK?W4M#jRj}`F?TYE8yE9S4~79W^!Q=i1gcXxsF))I9}zBQ*}Gj;c-$5+DtQA8N{b= znP?gIKVa?Ov1*;%RLg7c2LYWo%!ZI+x|1lM@7z7>UEQ}8gl z*rV^www_`Y7a6{dRXE5k>IH7BnwOh(Mk{vHTaeLEYN6A6gMq@fIB$Wv?)-`2&4V|N zKC~+?Tns&5F+9JFh)o~zbI3;<X@m9_uZl67}w%p-( zwQpJ~(+6OhY{q5-Xcu^~(9oB!pTv)HX zfvdg=(WxeI2byxP7RI%Y=NN_XNhW81e2k!M&ssaztcOBg?i)wzI}u{rc3R1kZ_Xid zLnV*wuJ2Hp=kGWCT{AA%^XPn3PwdB zs_hP)qYH;5P;8(vl^dHXwjWzOD+=0|xJI^pI)^Qg-pH0~5VNtl;2QVZx{EqI*BIm! z)b2L39ko`PFu3&p{VW@1YLB)#Tzy+XIztB?hc%XPlm8xWxuFI|-W z(|+a~X4iLOo6p6ai+&`;`e(~Ly58s)pz(Yu$E*`d1z0+G^uYFXTgTRqS_Lz2ESd=3 z)8JqYB?yk!VTsn)CX({qy8QkDwL^1=frkSHL zyqtp8Mg?2qHN(%y{yQOX^cRhZbjWwufAmj5z)P`mjGTv^+w}K=nx584SF&`Gu)VW@ zqxSMau4>fR&d=J2ucfY>#ZC>dl)G6w|FxWQy2+x>>zDtGmBCxD&RQ;R`Vl%D(Kc=f z^hw{LxXq;Gu5RaqnY<3pOycmyq;*{=U-H$E1X~A#0Lyxy_xiYVPfR!!pBNXUilizm&%SCv;BAiVZ8kUT7%`_J)`#w*0wQ>6gv9e%lqh`m(mwE?{Pde z4OGt5zHtx}8|Q!Vk$10g=jpB;I=W4GDJRj#HMR2xtYTnb?puq-*P))&>zS@Nx}Dtd zmD`Ep5+Atr84Pw!bNt3%T-$hHBV3;e2uu9X&6QSd^;6X!md?~re=RvUuK7T?^F*0y zq@EBiV|t0^I64l`-?$PnS6x0V%^j19K&`V{t;|I(*8B!)eDgud4{73oQENWH&2RKx zFC-`9vGV+c7o4oc64vfGYa0*y=S6?C$DJt^4_6V~Orkvcl_~d3UElB#-0{?E_b9q4 zf5&kXWdHw2mW|y$6c)l@t5u%ygBK^7?8fL}YIwOC$0vzhQ`Pul_TyIuKMFKTR=?%n ziby_NDK>DXr=8J6+uWwF+G47y1~l3FAlayp_-Z|sro0xn^}{Zf#l7A`wKDa5Or<9E}r0c=VUxG#Kt-1mjeYWp7T)ccyTDMRVuK3;ucYV z0(s5ry63$+4^wPcP0WH9ao+s1pA|rg-;Y0)if2vxD}YYQ;fZP9o*XdN(oS5&bIwhO zkvYTA+V}p6e&>wG{Mb?aA$hOq=M2li`pC(;|GfeMqSyV<(ZJT;wbmEiwyN$crMGwt)<9Ef+V>xH*{CzPJI~j2Uzh zT%aZ(AdZn(fvG-U<7TRjG6eZ|a*s1!>6E_{!HbYLG(z?vpoHldqjCu>apcVdr3BK< z6R#~o#xOE_^PV^TB`^Q75<6g6h@;P&V6;mIJ*{2}%Gn-4U7T_c);vsgI=QeMh0zTk z{HCME+6gYU#1Xjo>{m*9f}G6OYUk0IWn~QW?WH~z)%+V^aGl@z8IZi#8?d-rj9?KN zfwonv#=MbPeNuzf>SmrB>BnKncvfqT<;PLJa=@=JCH&$r1`0=gQ1-{N+;*WfUZYj+ zQ7N}tjk{xKES)yq97}d+%AQ|Dj6$r&UaHoX z?^tF;-B^^np)_v;`=KOTb8O)M^S2*3p;K+z#&K>{dYpWdrp!_3gG>yi<)&P|K74Kg zY~(W1PQB-o)47m0{*8A|=4KFUi;-iiPYc6DyOH~e_5G^J*v56kwHwyh(eY2AL5?Hv zUL>=vW;j)+(H>(7j<1F^HHoxs{gwAnuaKTk$FEmoKc5sd`>>_L4pF+A)za2Q>u!gx$S&6f30^eHh07qFaGMVFOD4aMM9$5+`Bm% z_$Rm=XxmL>+rscvAVL>(Tg-ig^JR>?agmSled)w=bHRYy;vhI2%{NSrH1biOFT5JC z#&5(=ThUxAx`8#%?P7G`GXE`VqH^X`^W>3pc-x;164&Z4bi;=o}|@jd#t- zH1)FLBT8h=SsHi)EuYo!yDq3WY(Lb@2~j*;kJKp^fr0hB)xJN=<>=|XMu3fheR&#f9$61HpcX6pNh_*P_;F+E*xYx>^ym zoD2@)poU!x#MRsJkrRkyRNXvx^QG@m2;+9{>POpt=V%7V;H`gK^EQt-HVwXYeD}>m zdFJqx{M0jx!V@cElu~kK4t$SY{(HzYMP>2_){zR7`3mlJyKxU)t?y z#M_9((8#&zWX?uenDY(USk7CpeP5xU5yJ6(59Ta+9^rV7m_2r0o|*n*)Ur)#=k5se_+o zY?L|XcQy#w_)xdSes=2pCj$%*BVy7}=&mPy{WLhvt=pNH-}K)HADZ&2ejc?$AnxD9 z)i;5hjbq>VboM}24V=GJ>)Fp3mA2UEUoBiS@DxMj@X(D}wAD?b9WSwFjNA(dubVPfmNWn#%;Ys29f z2hhz8+S+A)^TBvvd>=G2308|nfH|?e^A|j+Z2XMP9bWPCrDhezfIN}y{jqZJ@Gave5ZXjYkF zFj(?!EiktEELkD45vdO|5dlv7g3UGzJ*2G8wny!Gl^}S|p+ul*mlbXOv3E|j zJlGJeB3unI60g|cr1xlzNLZ}Vyy8kDZ_O5w`5$)l{ zOZt~^vQMGU=EAk#{IVAMP*Z=o-}xt(KQ|F$hTiNCWH@lxm*wbacg^MV4aeF4 zuw9d;+56ZRo3(SL=)64602B zTXD^CJ@$a1w|eh9bQJRqXZ5|v{RM5YG}hHLc)eSw_!t)9#vX9vW7{<|jvA=fSyQ6D zHIeb^dXtW**jH2e>4t;+JpMq*7Q9!#(|6E?%`t5Zpe;B3I|t*5-eY!YXsx~$@1liK z&v|Y>aaS9g_|;?Ak2a%ajwZ*ELxHr6gSxT+&_sCz_2i*pi}4DSx&k<;kF=!1b3roD zmyB__D1j}0=Rz?c=!FG1)Ar%BlU|`3JDwojZKzkG%oCc47 zk*p3byotli&-dielLMl*?@eGa1rt-P7@UZ-yxDbAtE!r$1u-Bv^O#2hl$$rX; zPzVLQT;Q5ZdeO#OB`^5}mPAb0rqgC0xNd=e7g%$S>xL5;G4QlbIVqA4b}W`%>_oR; zygGFk-6A+w&@#ZLH?G=gahs6#<=>caGz98~Ld(KpbNYD>!8+>i=HA7{SZ*!Ix@!uT zm)ba=SMapqm>E{i3wz}~q`<4;!^5KSA=Zx1-+7}`8N{W!$<8NbQSFB%w%ZWMrb}C7 z=~p`yI$1{o*VYMJ>Scs#B4F%2Xy^Q$gaexQn5;c`{>sHO!#^$%q6L>@8_Caix)l)( z^1^Af!qS&L)(tlD3XKerHS?&-IbB0v33j#M=mrN_=1iWQKL(;mMXXk9oAWjddSdbT z3acOE>CJ*w`fjjex!P1uaN^}opAKW;n00;|i*sM<-B6T_T(x&ECo%QYhnM2Rs&NAC znuVXud`yiH?sen79J&71ff#-%-`ITlJ$A?%E5R*~m%y7+srvbHt;Y%e1*v^RpxX<9A~jX1paq zjFL6Z@@+24jG*uOTvnQ6mTR^Mlo?aGEgJR__tF@8o4@GZ%~^BqVt4&?PUUONR!k6n z;S|LBUL2153n#G)K7R^ZY}Y~L{X3wMlNTEA9jb#zu-FAHgi|Iz=AU*dmIZ!m>Z^F= z10WCt)rw=A42bsP^x>If$%bqU?a&5HL~GtXns{yeHjyG3%a5y#r(d%=UK*j-UuE0s zt9mk8ICP^*Ag_zTzY<1EYuA);5m(Up+~j$2R0Hp0qq7>zun7=DYjk zB58#A>|I+8S$OR{ad;YQA70tUz`;e)s%uR9;p>Z3AH?o#YvN|aa^S;P^~P;F(XoP7 zRr&n!0(Wx#czL+IOfy6=YF`upD}l!6W;E|*{Hz*L*ZAUM>2deLvh&(USfNZ5A`WkC z%`1Q9j!{7|u^sBLAh?x7y=do;i5i@fSnFO87?d-?Ha*R_5w-mFlg;o{Qr!RmKmbWZ zK~&Bkk90o0yy57%{}U7UxPucf```)MxY-&LrEVKO3DF^LZc#rjjDjj*yg$aHb_vTr z<=CspL^E{XbyAyN;FI`VLPYUXnSyuy$Kq#c=i8xtSoeVBtm*D(29of;c)3;>4sFNW)+^TM2r?3`JTvBao*H)LHiyEvHy zHXOzaBcAarX6pLcC@UV;Q1x>J4s4Fg%TLKK98WaC;{s(Sq8Jwl`9;pfJmsB3R(@V! zPR94%gl8^8Sv_U7FsqC1+GRsct>K$D&Y|M-Z$~=)#dRyctAh8&8_PhlztbvP$Gpfm z8OIvN_+e>P8RRqD_-IRG+{KnCeDJ@}A(!WXF`2cH<|V}Ycl+%uM-|2ykLGwaG;d_+ z^b0_L%z5dj%5hL>A8pNBExFL=s@(=fQrBL~{W$1Ik86N=T%^>M z6Nz)vO3*~U1;QHabCcs=(TPW@H`Deyr_Sr7B-;%h$kz6i|lm-d4Zf z`&1Bz(HxBd3eF;}PDypH8avl9T!NcAaNa%J>fE(c0&R!$`qjxej<_3ou_BzH_yv>& z^2TTEW+2z2wQzyP@e5X!n_}Val+U_i=7fvhAjd$Gg@Q z&mSwMKO4-<*+@GlblkZy3+rnwJWcO~)?j^>uP#pG$b`+oZS zOhm5Knb>e?`@pPZtEi;{5$lZKv- z(IVFwlsIxB%{FQT8zn-Y3~z;kFm8JfLaqoDyBT+U>`34_PZtA3%&VvgkKK%Pv|c)O zQ!k<$@_m?H?fmk>8w@9TKCBMLwodjv70a8rE*vXMB)V`6Mc!faO-5TV{v)*LGINv`17%Taf53UJtcU>+Z zUhWNozN696@#LYeJo@s+wxCWf$K&;DJH|mI-+*e*Ltf}w!~+mFAjHPy#ilCST|kDX zbT|HL#hHCfberqykiV>E#-Yud3(K3iJc6QU+k*v>No|$dI#-qYn6LcD8$}l9k6awj zn=5+`=4MS^t>&|!A>bsYGbgj0r*|HAd37!*hod&zn6LEBv^QGec;15KFIopiShJu5 z#^wVI#p=WsN&OqnwVf?1gbdj_fMSf-MP{#aT7!72RFQI)##eXqjst0cMTq~$)w?K0 zjwDHvGu89||GT?gT_+-Hj>tKX0l3>kP0joPM3Bj}HsXo&@l7CO z>IqIct|OukHyr?2pT}EXi>N;@@)3S}y&C)GG~75d&y|Jg;%QxqUgVZRJ>h7yJ;fRR zn3%&y8TqK)xZ$xc{g$r`MH0eV`C!-Z1H8}`u2|onum}{)!;ptHd0*oBC8B%;Z%kko zN8_|HNZ2{%UWlQ#vd3xmAn2f<>WI-d7V^cgGANPBuXvo~5}a1*=$9a9!>D5SE4L#%u2HoxH+ESl5 z=f3YR zVF-h6jIEEn`*A_?2mugBg7vH=e+7Eec0X9x`HBqw-OIWffTOnf1&gx*q#VvnJpb2U z{ts5QQ1adUk0~8vW3y*IGzJEwoPb7E9|0bF72|P4ipL9y?d8niRnLsA)oh%5Li$Sw z)kuNbeG~fRSjltw-8kAeZ#?!7#$LXX5%qzriRl`gH;-;`6+5}G-@kCQMKtp+COsXf zMei-bF^2fOUVR*I`g@l5y8EYRWB0=%8hd|0pBNs&ptsi#w3FH)AHJ9}$OW)gTxskc z(O@A|#=+J7pfQx1zKGk;1t*85H_iP}*YU+CcTVSOEgYuy5@Sa!r{X(@we>%l%vDvK zIO8bC{YyF9aLivz*}$o}^Y-{8an^5d!mS;q+Dn*k@xQ&awb%^`h;-}(x3gp*pUKMy&o zj^i(Z(0HKToB^Zv z-PV@FF;w9++Pb@JA1*q-WFBGc_xz)uBJoyNxm;wF?)!q6pO^%|pqirX2WKHWM%b;` zi-Fvg>woOH@dIB0$L6?fJr5KU^`8Ps61wC}f=BEK4ovs#6t!{yc(02qa=)b%ZK zVTkA1gRAo!gT9h4hA~w+>~9TaS0VKiM~o|*?Q#JLMK6`+44HmtB@gX%3<5bf9JxM@ zts?tPv|aaqjM2VHAx0nCm1Ka!3>-TTF$z-kXqh3xn;`zCc=IlIWFjSughSKAN z!NzrVl1XDY4wbTzl^U+IVEC1L<57;f*684JGZ}66_BHb5r1#LCN%R6uZsU_>KsbQYE~bgqM~-QE>2fhFiY))~r`M)ZAN3dk!X(Rf*ZHFbSR1*Bkh6KTfh{)^GtcqT z7CAl+iC)!RefabcN=;phi@f({YrdZ{18hjrF(#}asde@T36%w1f1}@8NJMaJUQ-YS z#v3Prs;_!;NhzS;*vOOPJ%q>KfUWjs>T0|UYMa#Rmus=~6I-;(cfIC+s}=<$-K5-T zvRxsc|i*55c!>Um*f0!Zj5b$^Fc`^IxEZY7ypjQ8u55Bm#ZOW^Sr?ng0BYS)@ zZ2Yy|e85Bw$I=0BBR&0_pMjS+3cmOM31CaRLwhl>NrYlKID1a+1b2`K*bPj%BpSq5 z1M8yPjq>!ZbMwO%v*s_VwuyYRL}A^G&NYmWnv&s_!ygX;hUcgTU^@q|`je4|8I+CV z3#$%f39sfvo~D zd{sv-buVV(Nz4r-F!ZCz5r4Qj`y?DcFjrFhmjn2{5v}gSo0suHG5$yp!n)a84FoA1 zgJ^wPj%ii!!g%`>S94>qYdB9+vTJa0`s9>#Sjy5%e3H{Y`*L3EX*mR zKPc%<{j`ylHO@Wr%`o>R$61@E6$a&PDsk|S*bGx6=e^eR0LbqO?@%2NuebLq@o*UZ zp<`@_*VdsOm|;=>#*kj`WiAf%IE?v_bl99@M29CYzs&#YtFDJp_XXwVFKZ<~U&a=SgGg(bnEBdg(avl->)Z1rTKTjCBlE)tI!U!D|FDTA5&d|* z5VWvGzHig+2$lAGQ~DX;{KiM)xaEBHLjSKwFxJ%6Iqp}b1X(J^A9wm-^e>;(@mk3@ zPx3?RYO3@N1XlVeWitN9#dW^@oaH|O*R2BkO$8!09R#Os zjl>i6`I-HH-+tj-bCqNi5o3v&RdV^N(toDY)=@+9(h*}`%V0HDPAk3|Xe*bKd#&zx z+7?82^Y%)|GMJOU?Pf;GWMHg55W%l%a_t_>wYuo!tD19Ze=A!$bQ6iqp05u2yys)_Gp$TQpnv6mL!6cZQlXUeg)tvW#cKjEk>xoU9l5sUr;!aNA zb*n4#J{!==#3{Lke^;Y!}~qI(!^ zxXcDWiO5YHn)SWn@7|lxF{sE|%vhDm7urTSTZ@GHXmh($ZFRh8^JK<#qf(Ic)?GgU z#Lx!zj)S>>FO~Y9PhC!RNfhyuJnv?0?yr&cfW5Zf;k z&vc5u#*I$_(Gj0v69XJF}1FNW2*VR%*A&51bP{{_d5%f$-^g% zM_;-4y6d|yMAkvM{KONBexJJts^wh~W3X5A6Ws*OYMpuM%Y_@W)3yAwyS6ui=T=QN zAG-GdK7PWoRvf+*vULI|9>3~Iyw-t$=roOkHvW>8XsW#Ua*lv&cu&?92fmcq=4=?7 z$$yK6s|UXGfIpKasN6)ie=>{Lq(Vy56$Db5Afe5Rm}#4|nDlpM%}CRm zR3okcUz@kl&C6EudhrEMGyl5q~y%}a>^y30?$g(H&L%p)6Z zueio`Xw>e(S5D;l;(^(l_BiTCVGZMNdPo~R>EWV*4ZhtF{G#2UWT}p+5f2Sl8y^eH zpME9RA3OQ@L0a5`29w-20{RBQ)#&42E^oZhtHCln2Ug7LjNC(An}Yb_$!}zu2>E8X zRvX5d>R>-=SKCNEe>By`eE8ZAQ^2u!>GE_aS5xclIF_?Pl_OIxIp>cF&Aplt9yz%e z(Xo-6PRXfI}3O;CSXhdn>%_VkVhOnL-H$u2=d|D zP1#2I(Xbu*&TVFHM96#7a`X7rz?5=7KVyphFjV#-V2f$=wOffg`s~7nFMisE`@v5w&Sr8(=*1lXzjZ-yrd>YAE z#*>!&xNfMj^8-qC&PNshViRodr;}Z0Z0K0C6VCYJC5PX;zlRuzb1rz4G^oYfWZPR1 zx&OxqUheber%Q+C=7Qv&p%9>D4$L24)#abD4%uf{a0ko7e84wv>FEf&Kfqlbs`nv=WR{)df{vc!cn{|CogQZr{?;G1 zy=iky;G{{*-1^Y&8LUQ;%e`N2LFQLDw8_})j8?n7QI|wCT=Uv7&xEt)dxLC{*@@?~ zdh135`eo>NIe!rCnH_ocb4P%8Yt(TQm%E#D`9Nzb*BRTrxHMH+Lm6mp21IKESY&Ap zX*_h1Py3`fL`a*-P!E?+37}U!)Xie^ZRf@6ewg>!xcAsUTro_lK8wg|3pbtyaE$83 zzwoX>w}w?lK)+{8;grL#x{O9L?(GSIs&KrRScRUOkK;eeJgHXxl*+ zo=yAa>HSFCGbo*cAS9NY&kU#i(EHWzdw+ZJTtC`}ZFC&lgK0n9_grKRZ%v}h)!G~M)xI1nviKtNVonb8@goMBYQX;7X9mU+3(Z?!f9{8G?6g=6IY@+_ z@jL`@+6<`9s-trG^w46>EZ{|K4feT!IP(ztWnjx#eQsoZtRKGF*tYJBxw0=d%4msW zJdJhKrmy@%2L1g_BpzEcrLTA!rT#dgEI$zg*RD zWK%fsh#|F!hh?qF+<&>(zQ}~$-ZM_^MF2hePJ^+Ver2-u;9#_>+Q+FI9O(JSX2Ho> z3?u(-q2XX(EODebfA6X6_q~u&fQ>r_AKdb6I)c)Zsa&kDFLA$<5yjiS5eI^eyE?gC zUq*IW=i)d{+C`Mh%4iHxIJk;xW=&V@1yHNW{$CbkZ5ZOd8l1lv9?YG*5R2d|9<|NK z+!Q*r)Xkz9bCJ*+Lz#zC6Z~k?z#pGJ-@so}8FV!!N}o@!a)OY1mug`Ajn;(o)dwlW z%(WVaSh${NhEd?asIF_v;owUf7}kIPpa07{%t)*pO@bIaN1XA?L4W;16r4j}10-95 z_LZ-Yx=73`DKfi#6FnTWTX@~WjX1spoyZ9x0%|cXj(*CvA=B`pC8 zWImqUwECM^$X$%Ow-^dEio(XM&Ef6f-U#cXX%P*F)EmkZtUYY^;Uhftl$yBuFF$phQf zMW7uY&hbrJKyz@+kpS#?braBlem4d`NEcZf4(FqhH-8c=*QFh&YHY1rEVo8A<(0up zz)9vNh2mK~7PEdCo?|t!1~hErX9Yc+lZl<@DUtDh(e>AFE>%|zY2@w=(&qe8(6{d7 zt(h-R+J3QUWT$*>TG{54UD3mhN%4izo`ZZNYWwA3_SaV2WN6bC`^7Q8%RM9Q_y+%F zFrvt?6VAEx_K@*KhQ0MpZ_Vsqh=&tbjjm>xglV-OBV#K!dhR|1`Qaf#CB0#7{OMnA zzgmAN^Zy7DhX@_a&&@UQwm#j0oRbnB*N7E!ew?FVPTOBM-kZbAM_Q$F_-T^&Z#+wEQf_RYPaTjXyp<>E}G!C`$cx52d?pz*Ivn!GuJ zpofjH=kqXhcg^_7vsC~yLB-Th7*5_F%A<#)8$oQEOW14!)M*Znmq2gaY&S#?)4I&z za00B&DczqGORVHs7api0*_p5C}sF3+U4)AO;r-K0B?B`nBr<#-^ymI+@0=h z4I>ZZM^igx43Td#{c}Kmh@`Rbv!kt12g(#G6#9ageaty~zA%D>E_qh*%k3`5G)0fVF@5>RLnsbR z2U|~plC#CZ40v0_Ua~qlf1PQ*;oEp?F%0u}YL4rC<>JvV3D7p5-Q$d5Zte@_=XW34zhEjaFWU&VXUu+)LG6d?)(4BPe(N_Q&9A%;_;9sdEcjuw+k!Ua9jg}` znfG921)&Q@6*+(`9cG0j{1ewnFWu>}iyCStpaH^}Iyl?QfKM|BDYml^={?^ePUG zGV|)O+N>7NGwtjtw_vm)C2s(F5X1<>ev{j0{r0h8VH~>N<%^4L&wjrTKi0ukNbC4) zNP2NrKT%a}O%jZ(M`xJM!SX}{6enx#>RI)d$A_Mk^GlF$^s&%7zc@8iU?aXzwYkX8 zy~6Mv`p(&W-+Qft3%549WvQcWq}ECvO0K=0IUseeun>Gsvg;n@QGJlrLr$|?Qp$BV zq*VYTyz}?2J7eQ5x9~u6MOBj z-n~m4$IQOZpMHDycTM*`)}NEv{~t2Ce;wLA0DJv%0koL`HSrUA;ZS3Vmp2&f`+jEc z{;Iq4shsGTy6$g3u;;xt?qFyyRCwIu`m6+=`6J(?AZ~No01$XQ> zkfJfGxmj=i7&(vRa%#_4n#vQhTZ`pkAF*v8E6laN$s2@@Jk`_TTaL9RQ-@9O3%Kst z1cMEx4ZS$f+1AExg}uPm_4EZ#kHSy80n_SCF2wvlchQ|0$k*@Ju^c76t>toRT zQWU;e>Nd}Iue|;RjJfUGS8|nigZ{3I(ET@t_BVeH4FRnlu;h)FJbPY~TXoqbs<+HU z$<112#>sCJ<#-XCD<0J){Y5_?F2n<)hm!eKP`Sp%!tg#1L;o*a?cY|byi$avfcUUr~jYlg60nKje10kvcY%%tyUn2O=-)3l@PJtO02O`qw6mKp0 z5`e4qSarN&=wi|?C;BGBcas6RUJABMSH-VpO>`{q`FM)O%X}Jt+kA`h&%YX#uPnn5lYT~?&fa=d zKkXSgi{gTs;p(R!V{a^Nzj4V{929)V#WD*2j(FjVaw8-Q9Fgn(H{-qE+_iVit()B} zcD37$&QQ%6{GBVj{_0asNQjwCCujo!HuYxiy&9fEP69 zje&TgZu6r>?8c@NQY&nVdN)ja<0Xu-jY35MTFI~W)eF_DiA~vJ7ft6fNB-uhn~?+w zNW+^8SA(xUelVddPO{sVWpJ*`$jss`76Gdec+NrNi`*x?SoMLgE@JYk8H%=Y6910q zA(Nicv!B-fFMb?Mj3YMM^73P*gWttBxsuWsz55Tn&E+q$0f~5ZGOb8-AH zauxyZ{%L(KKWlCkrpM2Ms}E#?z7FGi=N3?LDm0%2qQPV1YLp(wGf&+wZn zRtNvxtDG197M^_{Ua2X8tgJ_|xc0+d>^8oS*I`-*ZN0w45m=}1uwDNUu{GlVBz&=s zX=Ghnf>1AB++tSiB8`V$Zb_LlkDN*d)lKPsP>X>A3jAtcZi+KA2AcEhVa&l0Asic< zL+>}qUtY~)JAC)xsb6DkJYG`w3a`4J;MGHC0X&fl{93yVXlqHnP8013qRcnB-2>wZ zpcDreMtLie0?NuJ?wQF?mpM{_bqIlV9rXI@;6cZx_0`k)G6baQ9#^qwH|LCv9+2iH zS68iMhNkZC>C6%7Y8&IYM;wh>xwua+Cj_kw>Ve$yIG#MN){^_yyjb&B<`azh8LnZ4 z*tmcuKi%UP)3sYmO3Qp)G!wbPvi}K4+n7gmxCMfXrrnsd(+2n61lZtE?0Dxt24d7Ig^bo)VOM=ub9SCVV|q* zs<&o8fWg0&$eY$~d79>QIklJSxSRzNYR2^F^t}G&M+22PcCz!p2MA5#XeZgjvP(W; zVdt8|Sl=uOQVIn_$f3^X$Lg;yc==Hu`S%>aB7R%LB8qo4(?+2$j>-kz_)h4Y_u0|? z&ArXfGn>4wZOf>Rjc}UyW5t`>LY*3M=^Rj1#``ZNPITfmAcsb!$~y!OL}4%_aRbN3N76hc($4 zjEyxp-POw8o=rm)0Ke5Q$cQ0p=&=o8F|_i#_~7`}zw88|Jm`C5r%Yl2oy<8a4;1ES z?D~$AuAI6y$EVjbRDCqz74VxV!fAR@<7-eV^9zV{K=zq<0Ojj_%rZ$1;F zU(h-3T4R-s@VALfpkoCP!&u9&jKK-7ca|?EGD*bUsyt4}EWmLwk3wB8rJ=bdX=G&V z?PC?lu|ywwcC_VyN5AB%t^~3e4707xDaZPH87Fzrpcz-s2p9@%2$}%XzkaU!h`iEg<2?(VhFy z=Zjr6FfV<0_3msi|IG{?Tjg6dOP2%&FgL3_@Z3rdiSdGTc z8-vJ&7l*lLpC8WJz`?mS*G(q`Y6Js^lWKeGC$~exg|a!v|Bih6f<0TvWD{OM5mDA) zcu^;)i9mKgU8SqJuTCbw&vGpiGS|;I(zyX2k~rgT|KSSpx4*Fw*79!H+2FPjipOzl zwi?FC#b5w@d5I7PjXfM{^y5@1iPLlm+gM05D+0~8@{DcHLp9$9SJDF6x2nvdZCawT zsM!?qu<+d3%Cl#q-K8bGm)|)_O%-a+xdzK!dE1HQCJTRke5RnF(R&xTw~-# zQ4az%M zL7qZw&(RoUYkA|ZZw8JZoqzZ>i&fBAQ)Q#QeZd@cjje$A$l~h^EZ*(e%Ji?Yq+Z;bc`Rne{!=rVj-3_-SE-rBX zhs^eZrPb|%t6$EAU5yPT@`-sl>Z}DE!?Y_BHLx}p6G7{@2N3CFlNSW7nK^HrEr!Jy z9R1O}lxM4cF;N;{8w_8@zM=Mm)Nl=cG3BPs%St=nyd&64+Z*tHAodjK-44aGIDWl& z@l?*yn?`-ayScRcLLP_(qK&;K)ymRQKUo>TcC+OYw@$@1h8vUD)(F=QEE;I%ohTxU zZ=%A|2TI~E{Wyk3^iiWyf`2R*PmB&!LGQD zts3p*Vw$Fu^X6Vw~Z#Wf*_Ss=*e1AA$C2|pvL;u#RSBqi6$+th7W8T;Z z(>&5)NFjQ^F@LQzS$$~(<4LIUurxi332&{m)@D`t?1=9diqu#yPo?P;BP-ajtV}hS zCbjzC{dx913*aj^(=%AlX=;dhbcYjwfjHPo`H1A@dGv>W)H)j-! zZ%kwz&DqUL=W)2K52%H)IGdy9T3E~~xd8yO-C9^97;l;F8O0F{&zxz)!A|cTXi4;O zs)7U0UcU0L614+Sgx<4(yk1^iXQN5H%+cB;7*;Oe$w3>n@lmGT6`;6izxZnNkrc1m zjq?1o#3V*gYh>&wL2ij{TglDuAQU3S!5nMvTq%Zz2iQJ;Xp$XZ)lQ9;n+N~#eTTu! z%eP~8!{E|0gCvZ#y))Cp$wzbYuSO1}dGhT#Yd=D*C`fo%8{Z1O8d>XiTs7m~4?MG) zt@m+(EcN!JXPp?!afpYed|`R7=YzjD0F11F{M*NE%1v{Qwow}mj$>~7jSm<=>)#rF zHx!Io5)xG3ePjEJzGLH>1rMG6yC=}ForPnfv2|+H%OC=dPax)vHErKNuL|Ry?_pI} zgYb%{IRjn3VEG7?uQnXRzN-nBG>A4)uC8Z1mpDGZ--kBI<#?H!5`%l)fZ%)A}7+DxgNX~LvaqSx)jd}Y8zsj$PB}Y{b zI;-%x6I`cQ??*>8|0TaDsB`|8gWW(mzt--T2aT#+9OVRiK6=IqffULG9L@cg4{uJ` zA2;8@vj&dKR+w{GsmJF0_Hp^+s3rie4F=d;U#>oD`)t?`>6&`_a9mBi!@c!el~D`h z@zv10Jj5E2bUiyLCcYHRkCWf`!za4LvA%^S)_3Rw_rYCW&BI|8Q8>SS`+Hu?d1&%IC8oa4LG8CDw#IJ#9EO(;4ToZ+ z;5Q|lv9dyYbEIDwKrrkA z9i5X2mtpn|J2r)JL21OdxJU;-X*{}FTUUBnV7IZgk3ZO-7cuweaR#`$P`^T8RibtT z(VxS((mRx!0w`RBB0FMEZerzw^a|*t`wlodmmIAhh6wVVRXNujr>BVDr}F&4Py2>1$8g&8!ov-* z^K>~LU-|}G-Rh8sQv&u80Y8VI{VL^nVxWtB{EJ?^A@M)Zqx^^?hY~sZ{4~Q7G2)k`1~#FAg!wylCG|D?6beFTQ^vsFIHDgk6qzKq7RlZ9#JNr^D;v5rbI9I zqt39dQ%;+^?onczvk&;|4__>!?*lEIv)!d}KN5=ltuGf@Jg8eSA1e(IsBLB+j`O3# z@W|?6=k?{Yk))S?c^bC$g;jyDe?B%Aj>hqmOR3xFAeLhw&KF4q0*}+hH$1Jt2y#4| zL&4cU6#IZC(Y6oD>@x@+Oy-T(<2_sdg@V6b?gNGo3vFLBEUvJ1n^;g2iLyj+OYiw?tdCxGIW=GGTpiWUNgrZysZRgPUq2Po2Z;&EWyu4TOF*iKP54~2ToC;E`9KZNWXCO zHMA4OgHE|vH$?79&b6)SqNPw5Cf8Ofo!*E5;jr~X_$${a{U><_@X?aMA{Z`Pm(!dNXKj9g|GY*0qG-?Uj>4fVj3pkg`@2UV~r=V+-E(!y;GFhM3X)a<`FcEQH(c|1fl zj*}#`5b7N^n=g*<{l?X7v6K_!8e7B1ANw2hrM4*jU{HbJ_{p$eYQT2f7xD9<5qx~` zaqy|9&@!(?6BH60hl9KaY7sdb@2Z7c6c zY5|TqR3ocf9F;ZSXjt#{VidRh?QSi7?+fIhll*#q6OZ}fI2@KNHg)YfS2hwza6KE?_w>&RcE#0GG`n%#&nfJM!A= z#9^5BI0WrOa9iDe`GkS6^{IpW!4I$KF)PN~uQeO7E|&6B<^MCxyAtyEs8+HI=0He(xneHUvBh8JnL`#l!Rt}I_Z1yP|X8f zYhFPnfwh-ya1I;0eo-k#vlUN}_K3rAY)0BESRKYk(ZDHp)ZGh^TO&Einydc;VR4cq z(_D+@DOYjd-cy~+SR;eq0hV>F>WrUPkKVT)59vAA#gpGGu(9R0xh1rr88OOZe%(j$ zHR@aW;^?DqdpSU6tDAh{tNxoT23Txy9%nh};=cIKHRY?( zFNR|CetWMBJZ3>dfquG^gyZX@#hx9Jp%{M*N^bWb{U3j?9{wLh{^b!d#Z&BfcU#oN z7{n5$cG#{19WbEg?rYCCGkpRQ(1YHY+tBt9!f|ZE@%oPHCD4lv_lh!XYqo4&KZarB zB0Hnz?`MgXA#CfWr!VX>*3MW7mdt?+#~jbYoI@8(?OhOOi=X$>ei2Js&3XAgyUaNMJVu|MqSDfI@U+;K4P*5cvm@cKeM|4)6K3j?lK ze;m4XNC$qK?_A;V{w!Vo_|8xHc|{U$h+G<=V!gl!!EA7DJYW7>0W#zV0RQiA);8eZ z1h6P_VSz(>=R3XFW8-kE*y>+bqwwpHg#|={Iu3$ojDHla5pC zrQKvQ(V?Q{z`XUP+|V4-d+kQ`iw9B)j17~sw(_TYgL|byjqr_T=Gc*dd{(cs#H{?a zwc6CpFy+g&oYg_Bn_L^|vO^n>HqP{Rn^a>?GLy)5zTW{VKCFT?t5$4}$^vSq?MhOh%_h6utm2f_Mv@XRTt1WOWwS(h zSLuVs|Il?#Y1Ru5>5K8U{w2Ohoh6?=j!WbwG`^Rh(`~kz*osL(4Cf8Bze_BX0*Gz1 zszZ39OYA~XC2SaX;~u|gV6y9M(JsdvUrb=|Yh>LEoJV#TlitML=1^_CDXvjYZ*I!5 z8zt8c@XG1(rNfgaucv=TH=i~Rj-q+$IZl!{B?+|$B-nJgQE=Y4GA|BfcbP z^ZnyvoWpEvt|-Oxgwn|9K2FYIzwbkd?FpE91ix_`PyL5kecWr!kCVSqW1R#mSIicR zb0Gq2&Hk;eYLBK820E9!csIXLH!qDTW5>3i02^p?so##Lt4DRH@YZTMzWWOiRxVu9HL>I3 z`s$z-iY?*vCzEF)yLXT4Qy-g_{BoLj=ov#SXAq!wA0$w>n4iU+Idg^eXxR$ zocMAhU);IW)(P`05Y(*Kqs7L}(!1w~fsNzmx{C`F_4~z@^S2HdWNStr!65eRl#Phh zkw%eSug-IPofo90jM@2 z&9~j5+zSCTh;qk-VW+?LqDx@U2E|2(*X(WCm8A^;_FJo5#SBcY83~N7H6VBQdY^eC zC&ur1YwRa6-u1+&4kCe7+t#JY)jXm@dwPABlZG%dgR1fV)sa$drsrZ4?B4k5?u>9@ z3Z71LG?X!A=oYjg<>qYudk54RO-@a{ow7h?TkWF^pBaw3tHm}eHwe6g2Je70A8QmXOecl{3#K(V&(<#qX z`f(7p^{`;oEgS2~*I3F?%N=jkxWy=)jaPaJXkEOQ=STa4!KVAZ-dG`b&3=&(msSZ~ z`;T~YxVdn=UR5Jef=7)206+jqL_t&}D!y+#qLp0}1f^qZ{eSG`y7m10#=b2dtk#e| zF&1ouUX4xOT2=%TZV$1`E=k)xQJ)ZyWm=Cmx*wGn;p*QUaX+L!+T9OeMe>IzO;;zP z2O$0HQG&UKw`Gdw>&+?J(%cEv;wX80qvN-E0Uqt(oj1ZrT!`v7+|_zHwcf=#Q%SU+ z6w`3#i}p7ZQBj13xHJ~%f71jpeZZZvvu;A~{%&A(T)>xi?Em6@{Y}{HJ$1|$>+1{l zbSK))OlIe?Jk9I9ca)dw;@JcNkLCkzTa(MJEDWKXll6$FedOb(8UdZyH1BAg-wYky zaaql?9O-Lje)TAxfrdCcLfC!&{fQv*ZN2JeeD$;DObagV!<*t{;H2ceO*w}(v+MvL zOWanJupDClM2!3tJC}?Vrm+me$y!wh?RdSt$F_$ExMgJ@x9mLc18wh{O+e{PkNrMO zWoD3vE2~2sz!opi&qsaOKJXSW5SmK&FFy4wItkg*PVDYQ+eDNi!`Cx*ax5k|KBF1X z%VK~M(An#(FW(N0b*n;|)oLDvui43IelbN5vbxp5+BuPs2A^4d<8-ptYX}N3aUEUB z4DxE$XqG#6`Q8;Db-(|IL`Kx5`V3Qx`^GirFto|fz?i(LoXN?&s9Vi!;=@;?@;S`L znn->38RJ;3J(J~${eF4a-F8*-uC#(<5eIG58I(V>!=zOnh2!oRwpZt{*!>{CJ!r~3u%*<%sc=|BEB+(he zz#d+(uXi~)QHtSC+~ELXgIMm@s7gkt4B@!ZA`s7*SuBL-{WD0p7Hv7}k1dpf&ALQP z(pXZNUOZ#9S;@^95GJQ$YFa{ z{ZtkI@-3!z_~J7tl$X0<^m7hbzF4%TY^rGn6i02uD%4>W6i4dW8pGb7sA_U>O4don zoO4cqz4bKKp0h8+*0XgA6q$2S&Rbv4+T^s+)0cAXm>;})crwqvtp-+(nKJFg3{#3nA>=;M=w3zOL zy1~}y}Y4@z0e;;-f)mZxO@FA?OZi-&PXwJ;I>crGS`+LJF(L!)F4>abNCllD} z?LLQGu*<1E#6J11-l**B-xtlWmzQ$i_!!wR*&0T(zM^qs=Da{EC0_2crqq7>Jmlym zh<+&?X9TU6!*!ixR8Tq^Co&(}%+sw`{BO>NbY}0*-Y9EKx|*Tf-o53fHNx_fFAnW@ zT4JZaaq?u&IU-mk_hEl)6(JO*C1+*hW`DNhR`lu7R4v0aZhC5d*f=DYkIuyExJv{$ zVCxUY%);}ja@{^EJ6>{l;0Tt7SOc~m;x^YYZYWgxT}&|C-~9>jlnhBv z0QAjrwgz)J{Q%IM!ry85u4!&!&OBjy)2Cj0WV=7n_s~Er<+NSv_8;!{XARv$faPky z_nYCt>U?Ml)tQ5eT zw(~`qUk@us?Uj3Q&D0aH`nAqeReSX>PPLmC_RG;deDfED$QB@e#~J_L5~xPeJ<+DP zTe8*q^;NaT&DrM@1)LizNxLrlN^vLj<@$B$6Kyx$@lhq1b&&_pV#3MSYc(oaI$AhT z-~E7ybYEO`TcZgvXa5vrGiPzH4j49X)k;bV96(~nSJ_Tx2XgVH3X@$yhFl0tFw$Fn>tgQf4+S4z*^aKcl zOLoJkK7~UmBJ;=a)p$V^=GzH}S(3rw#Z@11PpM0CuG$S?%2AQ4Sbm*ejF+2!c5&|g zNb6Fy{Rq?1lUD#*BL`gEa`2aoXv8=hO?JP`^u;66AYBDB^j!MdfYEy-ng)A}UDv9s zt)Xe}y%QaLy!92|wpzu(!^y7BoOTbQjmzxvs$x3tw%9r!3I$tj+%9 z$jOQufKGlNC&)3Dj=%HABR<&o%P{n-zdCJr^`7n9L(PHLoZ|4F-HI&FKsnLanDJqV z59S>T`>uZ4ez}%&lCv~t>m(y*IQ_rLgaRAhnz$wSoR~#(fEHK1JSdrXMf5h>*(HUmJv@HnT%sGiF?$LrXb5C;5*63EP+@3yh=XGLGgpXJl@_patqL}| zz1svF8{>Fqc;nQxG&v;CuX}R&7#dsDzM6xqCu?uM*x)Y>csWE<+BM*;I= zo@&s+55@HL1#aK9Z7Q=SWv3@X+GpSR&1<&0%gH#}sk6qoH9qLqHaM^NZrr{-MB4&! zEdc(ctVahrk;UKMiqzaNo?Kg>ArTupM{C9r_hBWuoaMM@GmSx^=wrQDZ=We|VcfKc znKc;8(Z0m*x71C-Z?OBqI4TntCliFGxqVE3?A*AwI%q3vv^j6{GPe@*o)qe_Z2`h# zFaqIYZii36eTc7AA+LvJ4DxCoC|i&s2j?JQ>}Yw2ygil9ik!S!)zZe;`_o>E%)&2a z`6F9R#XK3Ytw-;7h=%wM8{V7nq}dOZOcZ-P^=j_tppZx!a%`Ds!zCoQxj11?W0d}8W-4yU@{&5Y7YvLb< z5Y6`Zszea%=9;0bb6DD*u6?mF*2TEL7YF1weT8@xEk(R6h&{yUE*MDo;vR?OLoI9%d}XAzMWd$;-O zjGezb^*gY^w9Ws7{WCs%osI$+PsleE#yOJ6ZCi!{(faYI=4m;>SB{;VY|4<}-h$z5 z$J=KQDfWHXvWN>2AESt~ZxrAz;*6Za{Zh0!VY>ylZ0l)OXxuxJdED?Zjn z8X?lw-J^$sI3sA2L+E_qG8<4-F^DlxfnDQ7Zswu94bAbCJT}GDR8cN?$X&|%*yd>N zYZC{q_*V@9Jmihe-uQ@SOs;w7)77r| z8^f_G78qBj;ypfhwf60GBFRzoSHKTbyy*;4RmE=3c%5F|9#-kgra~sAD>5KP(AWCv zM|rq4LyNHw z=9JjqW&E*mavq&-TE;TZGwtTDNx37WsPBzTM)uJ)*0?%9jBD-1?I4ED#zEW$#xZt} z)E2}u0iap6uvnIR$f*RPJH__%lKF-|Is@G~XSIFxL4?-g#gR)fE{?(d=g;7X zsh^O2kQgTnShV@4DDtiCTkCGl?NegN!u1<)eI@N*Zz9ky*-DEC*QV8y#a6zqDKR)S zuuU9I;u7+*G*or1WP`Sw_Ic5Z0S$r>~#VW2R1 z;$kGr@$o?io^g82E&hZyko&-bBA~ z@QS8;wZKe}?>SH>4)fSOgm(4Cr@Yzi0Ie$fEr34kUUWuf3&SL~ zXw3qO)BdK492bTrd@;LW$q$?wgtnLo5{g-3nI3KmsKRZTizkss%<}Jq` zJ`RRyPZ16*iJ6gMYFQ-wd}-ou=<@Zy_C7gie+wc#0NTt8B%P7X_xb<5(B{tT+uDpH z2i>f3tZ3TuI(U%$wFCz@-W3ajo&*!uiLyy@xVzuq^ z>hH~y49#-deBAvzPPtuB+P>TFUh7!W+WQ*xC2?_#ptD`u2C~gdepxxOY==pxa7aIrOkSeW>^Ot5l<`LcE!2O-k521PV?0gtnOa%wYh z9!+mdt!3J0NZ93DLFc2*9y0Nd?^cN1su|wznZ$mz#wEA#aR;PvP{_-RIfQ3kNhX)k z_g-uSvorZVSZ9v>D<63+4@-ejHC!z43F0r0wzu?)iRj~p?N!hmjQ!0q+ZgSK2lCpX zpS)T>wg68@{9VB*`Qu>y;1ezVth*qNiG2ezKl(F!%ALw@E))whv2-A+z=PbI%ad= zn1l8BHq&r`0K*4uCp4X6I-0ifIJfel{jawvYC%8T z&4N6%vv4_MP_5{jzp2vjo8yX_t^7`gb{|YqV>e9zH>t2c&Y9NUKyTvt5xO<@tl>+-o-C-3pB@Slju$Z(#JN-*mD(;SHrB?4qF?qf?%|W}#cFL(pErII@HX-= zy5Tta`yM}bj>`>7ac%>*0&$fuATwbs@NImMImbGjze?So z#P&e7RF&x=HHFTat8e3L9Qn>suFhL=nh*Ne=BqdS+7(vA zgf^!+`zcCs6=Q+gMBh)S^%*|7K}gn$;-sbFgLKZ#w-~vp)P8x7hx<3EJUPli7axSQ z*f`o)ZAEh)GhAK6F-`rz(A#bp4XAeZsikRYS)KLSv9YvGJ{a^NhY9F|)A)d3jn<(( zUj_~eaN@^fa@GVF3r`Dh9an>v{lXB|zV+(E#a1{5=4`=M!==5QJei;gdwYhEokdJG@ujw{Ns06Va6Y=9Q+s2XR zyN5*sXSL$q2Dli)xS$#%BVYij>ROJg$hHFF{2LShV{}ZH-mO343s@#7{8D3H+In@5 zh^M>}>Jo@;^!rd$VC0_C4>yUb=3EAJ&>fZtgKLJQO1%>tWOTST@-vD&rs)k49DQ1E zj4sTw!bfO>bg!Waw#&t&M!{2sh|rzUjd0=4%jtj#zai-H+PgZhpmxuG!ywo#@h}8*y`@kILBEXCo&%P-H9xTOL-TMd z5>5ARjjf|NU3JEXi({5Q`TGlYVRPM~&+>aU*}gnJuhzzEE*S@ezBRF?1-Z6rY;N0J zTz!#>-xyu3J{kqv66y=U%ysdLPja2f;Nl`4XW zzGdS4QkY^FcpjMOlKc6EsM%T3Nlb69RVHT5g6PNF!|)Fb3O zJ_8KVy7|f!No%k9WLEB4U}(c+>9d>bd+#&M$MfN6Ovo@f^&TMxa1hGV#c%!5*48zk zO83;A#EN;-KxOybaOEeU-+t*UCtC0~PjQ_-^)w*B+6J0#&t7@YNB@0i(EDz=iFpLy zz0UkSS~51mx4{8_qv*4muUg~ky_g_vzLx{@c9wF%iuvK^9RKi)Ya-=B|G)mS46r(%&GW+hzMFay(o~8E4d5QW?h}ow&|#LhR+pSQ*d2 za_QjWUL}`z^ek9kETImoxoRCys?P~R>WzCoQJ81GHPN{bOLe(nPQxz|-834J$0ZQu zSjf5i0Tzbi!aW~Mef@H+;Y1&awKcdg>&FC0wE%#fT^_U1LA+_Y3k*}CBj@0F zfNd>{XH3OUW#2VMVM_x=S@O(Log`$|BYyF?H<|0hh@*BKCTtD(_VNW1wR;}&D3A>e zS@(l~Ki|Vfo>te|zZfDLYd@GIuDSSCfP#d%xZXQ9YkTf-EwHGZtKx6$#%t>vKK*N8 z`8o~;=H)dHu1y4e#@PzF-r}Jexp{u|)(#UPdOq3ERJ$-y$i=ywAMut-43jk|^0+bF z`@`vrrZ0^ohtubDVD~R_P(KZ*^~BJ}Fa3%4 zWbza_y--Gxvtz_7oTra7M&`v)-Ke7!0>#fyWS6D>mmk{Rr~jY-YsscarDJ5BT+7q+ znoxLG)SZxGEP)2jc5D_*r(Z_dRgk07!pYpzxpG~2(f~{M7EF9r6k)w-{fDF$!nm$B zaEiB7?TTgK_ZvNN)m$+K+c#&gsKXqJOV4V>gGj~D)`E&G%7LlQoO2ImKkl=pUosfw z@0NEpH=f_tcIvLq@4|c4p!3DXuyjw}q$u|vJM9OoEB=>@HPU`HDRBC>2;{@P$swnO zUZl?)M%u~={M}*1u3WK*ExAed9{9CSsS$@xPVVeaq?p(KIhG6P#>1<@NwPf$-@d?XF9FJ`8?hW3xWgQk z=4n5q7sJ@XVWR!^4!px%-ffu7@xPc$A{*PIwDo*_+hJuDrpQ@iBTo(9cszL;mkc(0 zGd=vk;89+oII-2S-Wc1~3x4tF=|@&Z-1s#7_`e65TxCIHd1z@LjJu(TzMF(R>AAaS zk3#NM&!WEBAQElojrP{l!}bX1R+9_F(0A9OO|#rpWUm1S{nnpQ$}wzy=c_2Bjjte@ zX~iiQPR?&fYr3>&iNu;opT>71pqH6gZw*@0SaHRRZ~1MrU(5{- zpmgKgWE_vta(>#Ueqeye3sNUjzBL;7fH+4|TYMaa)m>{b<{npd9O9ab*XmBY5i_UL z>+5dbZxtB-<&<6&@!v78#+vaRKF|i|@Y;vWjlB#vzubnsdH--SPk%(NJ&Wb=vYKtw zw4!my`D}h4FZPCaf03IAewTqcV|J_+F7&HO_EjfcxzK7zMABc6aA?uof8eGOxWsO+ z$VL%Dh;G_Sq7iGn4Y2W#oJB*>q(oDc`Pb9NOw5tv;`e7=MlO%mt?JuLZ$>n>^XDvm zF(`1utUsZ@^){r&O2g(R@w~(D!(C@3N1GCy=8jBuoDtaa&BfyEIbrfIgW@|M`%QYW zI)-gbGga!V-||!+=V^wWkP|&i_mT?_JH-A#)U_FqCvCWz`&=9|C48x)cK`SXCp#Q3 zlvfk4{ZBdAi89-RwjZ=$Vyq%oV|z>qs;6zV+G|hDP885@B=7`yW4`-}Exig?Y~c zdwwhOYOCHON}RgtRt3mp(KeS>17|?{#1B5d@-Se*2mEltZ7^RzgZ{>D5g*+l8Cl@x zal=7fku@QH`ggyn9zx@%iATR!P{TGF=MSis*XVMCXVyaT9Y7SNkczgady@OuH)rL-=E=YYySHoRDjjTzgONo2Glpt z`=O2A9-hs6Smh{z=E}Hcc9wFVjj;(VhGB--yhUhf27`ZO z(91hM@^c3Bb@!?`iuM)A8W_jt)Bp4*JA2%FLyLps5g+`z7nj%LG+nGNez6re*5G`< zO>a!)0}FTDJ&#khe)A_O@_jG1ywE$&f^B{3&*8e@;x5|#Ozu-)>6f`^*EjjjKH7+% zclWPqGUMo8yrRB2qfHprPk#`^w!?9|IW2i?e=xP6G~zpcIC=FygLj>UrVgQbimQ`0 zFNXc(32B?V?RVg!TTbGC_RG@nn>)k#cp+b;pZhP4G#f>Aut4fARjW52g~L^T04uiG(#bwXPq(tI_2&qllG{c2|vZDS2R#c(}DY8@cFQjswE)&;MxM^%j=<&*f)MfNpGm{$VxN@Oxvf zZ*h#~@#+zkaOBtho5qGn?tI&~Xg3EpLjvJ+%yDp<+T9O&F5ly*_0|oM#iakZU$2rI zV))1J=F&k|pWQc}L}U;9&zCE7y}7n-mD?BDv9Of&xkhBV5F@v`s&jYMVfP2>fbZ7& z>iFHOgrWw!Jq?NWpdKT)WCsXI~_=$CWT;6zy)f^)S5jw&x3zOZ zB7_BG)J@C~eE@|>$Cs?v+9LAmCc^dohAWOT2gekX z$cOK7&^coowy|>u?Qa-y)yd*%-Ob~?!V=9Jfquq!a2*Vk$6+5p3};cWPOlS(DijSk z^8M331mXwd$(NVq5WK&JQ&%pUDm7v4<8j z^uW^m7nD8#-Zi<#owU4>KBP)Ex5bxJ^G2UW6Tcx_4>=l7t$Nq4@>#e!VPjwUdx=ny z^g&pBuHtCJ;e%}R17ZJs#`3EGsE=wO?ccui0c>vo&ry5v{;I{&S6#xQ5!QZ=;fQQT*5~VCqKy9n*+IsYaYBbvd9WK`i+q{;Mi#3X5T+c zvYqj65b-x3{CYsbyxJmb-0<6ag8NrrjJt!3XTF9uZ;`~~-{!8) zzT)><@t6Z_{8Axjm40b!e8;RFw(7UPJAUpRXq02@)s5W`g1PLlZC)48sS`mi&B3hB z7?Ae#%wZoFM;dkp0L1;8?t|m1UOBB25PrGmB7X1{H)}<$B7NZ3G|NnK-U;4#aa~wl zbc&NAU*XCT3@c=qAOB64J{;)pm{KbY+J>RxeB_kR_8no&L%Ac0k!>tQe@WZwkZPH) zJ4?0AfUw_(#nvX=Otmq_|HsvtXh)9h$nx~<`~M$2?^Mq-Ge=PBVJ?io;&31qGE*uQ z@5Mhv+Kr~aHN>%hd8es*{5d&Z^~+bQ!hpuZ7_}y}+Woehfyy-$k<=`ITBa!X_wLAr zmuzq1I!N-}e{?L5RmC}?{q{{`-TIxBeuXM(>p|BB)$_u3?Ujgq%x&7%E-`QBv+I7h zy6E|b&f#F})Ag&*!3=zY7{F8W&DMv9UU}<_>aS>stj{=z{SHOu>hWDCGE7nMC`A@o zUr5f!`Tn!^9?AKwlBK+y3bZk5?<29|R+z2PeSs?vFm61nXOLPO1B`OA`FI~WVi>nH z(b*C+tLlyB?UhvDYjyjU;p8Daul)-WhRqM>VyuX^XfKCcz&3ddy)USn8@R3(^UFU|_*SFwFmhio8p;3*?+Jt;PN>rrr;n}2Ui%t=*8HOuYzs1V0@qS>`<$4O1DDtLbLGMk(* z#Y&wxJl$^_E5@X3>3g)^JoA#9*O_-OvA~2j%;AYe2m6q1Mr#P@h$7bZCT!yD{G)=! zT;Ouj(hC@;=7%cm-M>pMQE_O{o^0iz9I`WOyhWOF2vRe z^IT#lC?vr=_fkcS%?r6{xT9a*pgTNt0b>75JYRgV+OI&h&h{4pIlWxOqJGm9-Sn#E z3Bk}7!=5?7>GBC>^%qI$i{q81S&3i>N)8L~H^%cangKS~yT5{S`x*1Uc|xzXWBtX< z{Gyq&Jk67)28~5c@>Abay)SvZIbdsRC1)Uwzj;Xp=Vu)}oM$>0=d#_n`xSty08Dx| zkwsyj(^qZ71|(N~v?&-(_|Vqgyqt>NPs^MBsCd7G+>ZHL-H{4QNc~%H!0NB0>${q> z?LOAF#vJ2s!*LaN@zsSduQ(CUy{YxBRt#VGq1W@Mt*t&Q5&fI*dEhTTG6dS2Z2L3< zWgVRLR^L6MeFP$DWRA`!zxXyTE#4VJ>y;HXa~ky0hjv`oc8{ecc)raKRoHKRfZ}yF zBi;z{_K$h!>|Bw=&&x4bopa28BHqo<*#-)!=;3Q_WL~M57Xq3HD~>78|Yymp@fmi?&ddbkpeY$`l_4Bo*`j< zwduNegV{QkOXI@)#zw1GXWPQ|;?!sFM1lpVLv6&M>>6adsu;KHO2FCKb+a*VIhwon z8!znS!>QV?p|b0fD8Ax(HjXFvg2Hx#0 zIIkAZCNPY4e^D;xs5o@(@bQIQeKF6Zz1E244AEH(Q^F=tS`x*f<{P%3zu_Wlmh0XkZ!P$XmeJAjZwdg*CkXW z?--!xLgyj zFWz+m=x-*RwQZ7EQt{x@7ay)FjEq+t+?M9@QM)Z!)E!ytprLD|0pT>x~PB*01B>c&}pL!q9d zJ{D$V1pRb-H>Z;PU%uf?T5S4PyD$OpMnKSc;@tR@P4NZP<@-YVVy)crz}6)q85-47 zF~`Ttj_OX-SUhY0qK2A6lO+0R%bc%Ul} z8y*6lgH<#6I4rqry~LWW^|84*14r$fG=dzSHXh*nA&qHmIgdA;@*9U-vCFgiYw4tX59Lc@B^h5`uIcS=Sv0qA%~lYyeyWSIyo8!<(-)CHxKnTc60Mv z6CyI#Jf-wxt@J-Z`>$<`z$7wl$Y>Ie)l~@Vz5Rub_P-A6uH~z#dh^fwaN7rrpP&2m z;#&WNc8d#+K7#FO7U8u{R~B@`63@JL81xw|o4eZxOOPHTL3tL-P~9>jxBW0z`{m|d zakKrRZA}=t==wUC9GKp*nwraRnRBf9>EPU0Sl{I#8ST|Eqz~}yvbunZva65Az9_~| zW(}^t7VlP*;}I&ZUORL(e(RWK2&Zh$u|~W<>Vkw`RcRPGOnHY=9lb7@+xB0Kky@21 zgJWZgzPSQ++(8v#?-zhmznK!k-l`)>#~~3M*eH^`b>lq{pyI|~y9!6cc$^%#?WNdu zLxq&*e`Ue5-)fGLtTyf{^c72~#dm+PWAz-1;(9-bjccU+14Z`qw<}l+9ty>>U>&p( z`hlQJCa6MsRHMDs*9TW#1`h~ZYbzHiP2ZYwee{i&H5r%uoM@50_yOYUwdMj_zqHke zmbK;ZZ>##~!$r0~T-_h_*~tQ+3C> z9mNqSmUzDz6bFf6lS4^-=e$@dnhVH>Z;sYVl@c0=+GeJ~&K0q}w)^Vr3V@SLw7`kF zJI?LF__oiB3#RMCxXWZ=s=L>Zf^&+z4*Tc&%UyJRFH4AdulVZxe6*<&aPw?2&BkOv zthVEh_Tr_Eg!ZdJt}2u>?^biUiTiwwASdP67KlD)%8{>iP~oGZsFR6u9X%VPSEgNC zvqAj!RP!$O@q5e1teTHT@cOEqj{k2#;r^j}%^G`0{N z?Fa$D8vjtmBkuMrI`%1!d3NY~ubsGpSG*rZ)zbm&9>g4D-)#ed?r-X79ve$F_B=Ry z9YNs_r={51f>$00od4b@7<%6uoVVa2m?x~AAC9BvqK8q0>}ESYH_>nt1V00Fb{FZF zT)=r_Y7&c~uOtu@Q*Op?!6C!0d&(N)-;XBY1Af?^%@ZwF_-MPxB6)mr+R7%MUAlbN za{g_1(Q*4=*JqrZAEl+rd2g&2Iba!?4!L>_wVhn9?w9)Uk^zkvFRViHxE#M>i{$H}vPKm`zg*DGP)%49H&f}WKU>d3#d5Qy65!A^0Q~Kn#|ZiE zNx&e;vla7A)!1ep$i`Shj}d8JnowWms+VuZsP-F(FLRW)m8gt4~mIy9Uo8?;T3^#K-HEDL`)N*jl%lV>ky zd1AQgo597X1zR@gYWhHmO-%a+z~4Q*E_=^vPp|mknk2!tUb3pM$9@soYtE|F9!mvF zt*Ex}kt0tlvOE|1C6X0y%^%`gzs1vT{q{^iwvy#@W5zGk^gW$AIZK#$f8_l}NQ_a4 z+s3-+_1!P}{;*nDtvm3ExZG?rrhQkTfr;F!{gbvPM2i0~3@YRGP;*p;xPFl|^PVw1 z@0m}#COUs9sX4`s1BY_Uy6+a1IJ1%__f3TEZIs(5iDrZQrPm^p;^nwiE-=a^dl8NE zc-bcxgw}aFWnc@>%RJ?zz#q=XCtF(D_^bHV8Vh;#O9gu2tW1m$?;7|x#nBG>?Kk3R zi_mj<>>SpS^Vene9TzPB=l_|SUoq)~zyXWwIRexL#UQ4q?(qF0()Ki_xv~_j1hvlq zH`?O6s29Cz^r8nZ2Hy zRBk-}^Jd@?5rcj(7ssA)^(~J>o{>0~TRvQzI?vxpuR}fpI5EXefX+Y<3j3H^m*?Xt_$ke&frZYjv@5|Y&^!>$Wv8~V+W*dk#IWyU1U$K%l zJ+mw7cvfqCyj*MV^z%l)`Xbs7D@0>sL+=fe`-0qCyhMCI$mj+}273yzHh%gW>!!j= z8aKr0vE|sD0^r&XL_Hke2dtHNHj8DT3wBs)n~^lsNZ7fa)LJWxlNYAt-Y}z)gNI}1 zF=XCrV2{2J9N1cuE{;H;XufOMI?&~KYvU~H;kwQP%t0!IskY5}?F?9QnIXYg}Nuk&?d-3dx`FnXgaI?obwDa}vk!0TV>ra-d(>+x((YY8zI0qd1!Jbo@*JC*9srZ6*d}jrOJT7Z7-zT*%~YnfxtOGQ@%}# zhR$~!j$6X;U}2tM$$YmyIU`%9hE@OSYp$kKK(S|_01TLu%ddz?>EY~6sJYH>VtXCs zMn#1KV|NT{2)+W*PI=~MA;;)0W=j=;|Ch~p@THLB0m+qm##9{vQPD%`r=4sPgbF8C)-4%^JVcb&Yo*{UU$|uJaXR z^vxj!EoxQb<40VxTn+5|R3b0G{1^Cekm%_XGqCO3QY6O7C!oK5ONA(} zY@QQ@g|a6+f+n(@GT!}$*goG!G2tTte^c-e{Z^eSxD)sVFxWl@tS^M4BHqI5=$>#97}{q;T3@#6vx1Jp$HI z8Yb9HBlYtBP9OaHjEa@&!Yf8@nSNYW@qLM-nXwE$r|iN*=7FI5i)xK^rpR7S+M<*D z%81UMaGu+{X=>(0r=}J{`@S_i0rpKfj8pLjP}tZxD)FHy)HH_yA7fhk7h4L>fvv?l zw24>T#n8K8#;89Tc4i@d)wbp=k5_tE~EtF;g~x< z?PbP6#eg~6HTa27cIBnBK)$f?42D=abLvohYNva71OC=iK{Yh~hzv3r;yL{)jrDbZ z2!wN>xwePD_=-&eUf-BjzlN%RDV{n;#?SP_d-r9Ht<$qV3!t4d$=J>{W)Ja)BZMQS zj@QdYUwy2N!>=lb;b$`E{{euCb_#4#+4qo`cF0=;V)VHpB?{(Gb$69%*priSw$=-ax$F(ZJ6PDZE;#dS zT=YG@^6S3(!gz}J^*7f5eU-88ze1Kz+1)RUM`7B> z#;hMOK;G+tIWRAA^EV1StgweTz1#$8^fV2Uk%_!22#vaikn@SDe4kSs%txIC*2F=r*!EOuek2_L>#3b29hRJXhf@T>nCqx&42U{C z7oAo$Kvxj?(lof^TLCsYF{i_=o=?^`fviSX4rQzU>QJF{vxQ|Laj?Gi)r41 zy$#My#6$bxk+H#gA{Ed7L`Qx3&EfqvPd6m`SF6QnvKwEYlJ-oAdC6}-`9^IJ?aWhu zo5|=JpSPm%6Ge568nPB2b#Tb6xf?*^ME+rmDH2ZVbZ%TvZk}x-f*Z53wRjDR8$6JkG*P9jV(U*P`3f3VfMaB`#f1B>|^>t7$dg-sW5K0*~eO#JjB zKuFpqk-{upK!03obj9~!?OexQung@>4Is9gL*kHIn>9KQZwMR%V+DU1R}yUA-Z29) zF9!DQ8%e;W@O#LKS(jqjO|cB^D$pyrMaTy|$(z&s&ZhAI3-hfF&j)$u;>p7g2Ddnx zuZ)}UW|cqu+tUUngT^b;C5~;x3?>g=@~I66_em$bw$+ZxxpMvr*r;<5c!#q!p# z{nT1q{i+=%M>Boy$mAzd-h&kOmrO3?CoWEX`H$X+7DyMv4B@Bk7Y12j)3wcUG-;mq zZ@i|~OdAzGeIYy3#iXX{4-usXUU61mZQtQO^cm*I9)heN(g)yMGh;4vbCHAdnBc-$ zkG>>|&oI^Wz($0w%fEvk>4}U3POf~kwaY8&)-m?HE1ODl>~ZKOKxtRi5o8RMtUxt< zt1pkPhZuOxvG#p=!D17xdFH-b-(AzO)Y*iIfsvOSynCkN%@5=<-T0^MlQ-@jPi7*@$<6uQ8h77Zg7F$V zblT-CzcQ;Yls`m^4{x3~J{p66wykYEoJ+GY6A`uHpjmv9mCO8IPAYx*oa}S!!T~3L zGt;p^Ej#C^!93+ndy4>j{e6?EI@*o}?UhA7&xZ3`uMG~0J;60t z*_yFPycv_T0_R*J-XuRNjZb@1H+9BF5oeciU_9HIH&!JGiq}7x!nEiQ_k`-78rU6Xad7SR|#y_x<3+ ze88&4$0>;O#b=f1$02hDY`8%35L-;^HB!q}oeG!En-9$|y^zfh^bL|=q9M1zi?-JY z&AG@d6%!esadga@7w*63}g<7hhI!` zvNmGHhx2M@wqW639Ben{+Nt90VC23g?>yxf$4z{TQVPtt002M$NklonDVs#jC*j#QFQ)8&ZK(CVTbq|l`ooHe;@WyRzu{5 z($+Z|Je_Lec)?4wbktrX{k%7-mXb?o<#`G80Edcf_bo;dXC`Ez9fy5qYF$Jtg>j7` zJWh=}W*9A`=glW4X*CxqFvoFRFBRXqk(yGIL++nt&v~ew};5T=|g>JTPNLf zM0Gb&`HdHV#O}AiH|-7!FQJ4#ccBAMu)Ji@4?fY!WxTYz1MK;UgCiYbk`)hs310p~ z(HA?+`<#Jap?Pn_Bk zkiFxJT<*LNTbIY3v3o}-XD8lN1_+wBtA%5y4AADh5E8K_nv~h*KNW9G(GC-{ES>6G{%4Je3#_8#y{vE)O*{eJ6Yh z%n;E0bN#zRedlMFSNGz&3pqh~E;}M&V|y_* za-U$FtotB4S*lIYiN&iTjyaue4csKc{S@1Qv0gtH z`>5uVpH3X3v3UK&^Om~{*9qR%=AdC|(jCrd@jbeD))36+*}cVV(Xn;Vb>Yo)wHv}V zPk+RfzQQzB1tXkqUuJ&I~U0(vmS@wSs=&!lS%e!LG#-{izzmvgi|>L zsfHI^>eDgOpH<$6%v6Y6eH4?+Ph`s4?6;y9e)m`0WhS+?8 zyEw|_0;wc)pM18~!#O4-TolF;L_6jUKQr!wH9Y)tCti4*lcI@iO}yyXOX}Mdp*Z?a z!@IaVJ3S1vFCMn)fx5NxD7;<@8N9LaPO$ zau-Yai%YXSJSV?8M+ER{kn6d?v)JZWaFMnT%AYp9-uv)*H7p#M??%dg`GT>E=xNJC z4r;ULy4KK~Ha+!m44p^cak+@pdc(prK2#^4@!A6~QvP|6zyENYn93A&(9TA=0u+ql zRf&E?kfA9SbKg03re16hy&)N|VQ5vwG?>xZP`@}R^vG(M*Uo{^<;K8!wnoO)dUL=| zOy(7wMtMPf3|f$gqtMz2A;BWcp$J>6Mq%ALWA){k??vu9WGyU+{;SKltdGOv;GQGE z7-DO?ZhP1p_gT180L=54V`w1X(UI$O$AA!8(_k~)-mad0^>W|Yd>BNaSl^t|#x*Cr zd6W=Qt4|@ZRk{7^=i0G7a14E~O5@@JC4LVR5`j9vqOp*h{Z#2_DKn2YbU2+}472|5 z>3I|9%9E99Q(XfN-0guiIO?`jgK+4z4bGEW zH0~w-BET`@?4sX&OYt;q0b+z;vx%w*>RWL*-CEz8IDF?;Y$dcqzRh)ls`IeMAdGmf zyxISCw67^LUwAOHI9o)o#a^4L%IDSy36K23*m=)H2PJ6HV)TX8Szn~&uXyA2Y{&Yu z!D1!VuQ1>H*9XfFMSV~ths_(;i0ICv1#d0TcLm6??Mski9Da3Q1?Me-d}n9=!-Ov& zu@%g9MF2y#P7wLUkK}*GPG84_BVW#R=YF+7^mrOdCXR{!X>}!sv@sS3pW5Qe)_Jsg zsd!oVA*=b3#9vcPgXR@(U+yS~2q%DF&WU*2zG5I=k`aPeKcuA|iE*;7s||Ii7#J~* zeL+%8-oW2#@$+lK4(c|=35-ECg!5db>_n58Adf7yrJW8YE3c(ce$?~ zg(k4)WjyZ9t$8dq;}J`MJim6o9EPX!^U0bx@&(FLMPI!nl*RpWK(1qRL38~2?eG5c z566D>Z64WfTzeD!~#B^~}-dwt$_56Q~N zc=8-%DD``jNVdjPGTRX}e}$5zeQSPof4J_>&iUC^W$Qytt%oO%uHAB1VBHTlXhn`r zp=CgW4OHBIds=?o`w$b1YB6GYZoe`<;Lf!?3)GNA!g%`X-j_*Mg$MmCm8;L&N}*R~ zi??90)S`OYK(5}GN7Ov8$Jqym1_C%R9SG=_XMYe_71m&OrC z_ArX0gC5p1rmM9wUSF=*W@AkEb$X2p$?h7#Y>E(Xan%s3WC*VQ{z6edShQHlIMHkm zlo*{Jj|(Cpl#TZC?Ox3|;V)Kr^t*=TkC%Gdd(@=;jv<;&5mHz?eRva}PPcu!#932q zM6^1_u*%fmiRGc4ys`74P5ZHc_C1+&hd7hXACFUI)*gk;n+o{6{UT)Mu>RghI` ztDSjTU$yXXev+WQx4uO4wI67r=RQmO=Cg?AVmeKT^EI9zC3gM^l=Jx=oprFT-SZj~ zc@-C~O%c66)Y4u1@U)9gta?-DI4Zvb&mMjsr?Xjl1f{*L3UmC;0og_jgAXg?`C%g8 zl$x-iJC0uWU-6uJ}semk!g&+p*`TWih2*0$g z8b)i8K%kpgArJx_F`Tzy92fdMB?hMM;zYQ2%VSdWs~smS90eSjbb@OMjuTe<`kcG) zYWq0T{3b|Pm@+mN&;jLHzlq_7;BKJ53Jg|cnb4JRPUC0Uv~5Dl#lF1Yv7EfM!?Q_c zyy*tx#BotIaXMB zk%pig147v&JY-WhM)a^ntBzM)QS^5d$R{e+gF~F%8ChRPNhe>-AWXc0`BnLR_eKu> zJF1S=(wM%gLHI>P&>t@0>|fO4gT~d!*x!NWw?EsjN@S7ZxaeXAxi!=OX%Z{W2q zjeE!UCy|m#aQw4x42ImaH-*hZKQ<neAF3dRQ2P5N#%{lqR$U&5_X-t=U6KZ7ghPN zW@}y=oXk8i=#}v1j|4<`+*?nG!0k&1)#lKgz)pLMo;~M+_VND1MunbQyN96PZZA3e zKmLy6`$39K-3LUfdO~ZfgWR`xH=m3d5GsmLP7W&$%?)Lt=xZK=A>-^nTJsC9w_j-4 zb-lGWEU~@H7Dm_-Qnr23=)Oi!pY1K$zjf%C>_drhhmntNaTNf2b4=09(<|KSklf$+ z%XH(dakWs$i*a(ESu5v*=W41A;8wG-XtIz4U5}j>+{{!sPM-bZy#p#BuYR=pLn*p= z2=Kd2tnx2e9jyQ(NwQ8CiMpR@G!Eljx)uRE|M~Jhc#EwcLSEuH2L2h8ew$moR5a8# z9}&q(MK9ZV@_u!gNVHjLdRUH|&8`g;(J$x4v7Q=9r7xt}z;*)-SN>+YS5QsLRRWGj zK7-az5LM2T4u!NE5@KZH8Fl-r=X;f3?PJ~07(}Gic%Zz0F|@@go1Kg=zVknM0%Mxb zkX%RSGMh8~gaGW`R5cvjgzzz)_Bz{${I=b5-+Sat2Xj?=YU>j4kY`*~BJUv~{gAny zT`yzix@~2u&8Bg?f;ZauG#|pVQ)o`hQ^)^!-_s%#LMGM|7MU-u{a$FzPn|J0lVqdd zK2#wuS$z2Se=X0}Bo0~X*pis{_FDWS!@Es6c+jpQ1;krlj_@j)0&NACGdBLvHaIHK zq$1ZaF%yrMbGPG8LUj+seBdvkdgsPt^Rzz$*}o>CFFv;0*Rt4nYk&L1@+p+Xjq8Sx zdN2w0Tb$O$n7m=rSkd(8pMr|HVKxW-r>lM_kdOGZqYDF~@&^HjU>pq2cn#!cw{grM{5i>AFjmCNbP|HcThyn4s(X2Q;^=lh+T;>s}_UOxzv%WC6#O+>XmOrd45VeD`m!kB2Ay`j;f)%OhuGcFRkD<(e9d zr`)~`W%#jD?t0e<4&iIBZ$+NUu9#L+arcAD6yV$5h>_hew%9}!b}^iH3a%h;UEBb# z=BV9aT|c*z;SWdpM42!C!U+5`9~C5>jX|l4rCCr;D@A?r-u{=DZ3sWVeDLFJZ5C|t#CZPmBObE;Z=Dg>V)swy?-;$>SjX+-#JSkFMGR;(UpODjw^4hNr4*c_RU(jhFL{hd7=#_vV`zr+Dk8(FSh*%}(!& z5o;IpuuJU5XZQxtK#YqQR!)bFWgIp(G&zcj3pyb@gaE^C>-yl-?^E~b?*~9)ZeCLr zVz!sKM6lm4mV!mwIsfix!lvi7t^G{_F^$^xbTLh(U$R6kpkJgr?fTBoeW$-xw@hP_R*8P7{!q7H}g_MEK`ICU*{g)`pva#WWJzl$iqzezJIIyXlxE!A5 zJ3%!uoVFP*e{Et#;}3iqcl7i39>JtA^6>MP?dHPeb!x@t+n!>bij#zxXJo$Fxl6aJ zcb*;_>>j`7D}C3=&mqqGLb{ISCe}avq{aU`$<(4}96wN4mk&Ue9+NdLa-9(9B=|Ts z2d>tn(WSrm%pDX8aqf#EBXgV{p*;%bCVC*6%tK-tYo<^sXLp8#Ivdyvj(Xq0(mGra z{b`KmLCt>Hx$&l-Bd*aE(v=uWr`ec;py<92oDl`s4MBY@hHfrCcH!B8(xnFI55J$D zxltmIuX?!XcZ8zXP{}im__pOtrZgSkeLzu+%mv_w7nH|B*Pj>Pd=xJT7a!Y`lSte+ zXv@UA3!Ux#bQpQZ@gwy({E`a6vzPDw4OBM=H`*%`{fn>u?8UKGZHm%(7Z9-YFKcZL z&0&lN)f}y-yicy~*N`$_(1fp_oZfkUqALmES5rGMQ}U(DvA*7D@s8xW#oXJCM;iLf4Wxm@Zl+}X|9oF3W#z!ht4>+vwFcms7$MAS4ZQyH~44E!U{%PNWjnd z&P`wWR-46jO@)h%M&4jO&Xn+U*cf*w~O4EJUkn}CiKKHmgC;F>98;ypBfs@KlK~? zc@(qxdiYC~815nXR~H&@Je9c~{o{&-w}-1Q&sAiv;<9ZgQz<6S88B9?I|?sOQ@ExzsM;SHvYTKjKy>F+OiwBB%`o1>xkg}8HM+|5CCd=-(4?2YWjwrgi?7)d~J zIP1q7;pP_#l@N36B;3Qm+BoOJ4`#MHWT(x>IxQI8OTDpp`D<1Xa;O0G45e5c7rS}5 zsWI2uUsU=Zz*^b3+1DJ!eSgYpfcn&Z^_h7ag=T^7)W{Zdt%o8T_4zcwAWfw?0wc+6Fe|0f+bfdxmAm)w0r{5&pKW`i2tv{*cGkhE^jOt zQy+!q^nMA!L^fX7+%;fhkSTWH`K2Qyb`NfRs@%orHacA+AyHazDrMsIOH#;Ow_Ubr z8^$jj{|k0Y$b7Fx%^UordZ6jVmuVkP;ao1rxUu)0!}%btXJp#o)%XrA($-h7cOQ=Co6_|3;&dsKF2arUUIVs%BV3V-wOPh8QR5D$kK zU9pE8|MrOTF`AG4($^o!d6=i%`f%WMG&X{$72PISUOUW>h3rS>co1A&IUQ$F8has%r637%{KTVQ8b{tQ z(uSjjI_x;!x_2hzdf{!$UfbF6J^*4mpOBNcMO(wwH%Brsw|RvwAxgNCxfMonuyee^GG2sd+KQj~&697ZsjpfO$XS zc$i7%yg8HY^k+nD8(d@Ye1*@({r?NC zzxg_Dg5u{{+qe@?aQhtbG%xyZf2Ehs>UgaaoGOtDnwxKZag3~VEBf-WGKKTcX(2CG zMkA4)Si4phePc!xp<6fjwSONk6`~GXoxJE>4!EKBZFt>d5L3Op^;O^e%V1? z8AaM0w#!@F@VPg6Hn(YbzhjW@6U3Wq{x%zDxv!AJ3zrJWkwag{yQ2+Rl4-!6SjXn1 z^9?-Jtq&TR=6|&>Kkd<3*Pwh?#sgbl{svFJ)i!nd_kS9ybFX(^IR}5nm-r}Qsl~Vu zr_a*b^04X_P)19C(#;d(ji27g4MhFb<>48bd+&tXw=MfHp}zdG1}z^lKfDgj3E4St#Cqzx)#8rTnTFTUWepz}5Q0JO(X z%3?OTSO{*=w{X#L7{$eiXSV3$jrb@!q%;xlOM3NT_p6ck5?_8gWLL)Le{jjcZ}X=B z_xfBsEF0*#rR$Dw%TscdV)A2_vX8?OU&CdhtTO?>QIXWF6P zhw#|Z6ZbO3r%f}AvMOh@*@b65WmiqLIUMISH_-0}to=abFll54uecA}(2j5wA;03# z)3j`zOi=4Xfn!3~x9M#Jdd7!|HcJ-H)Xc1joUPZ(?d;L0 z1djZ05M|Xc5Gpr&3-5!s3 zW+etzx!DhJ2;!fuR@h@DV#mY0@!7vfaa1{UJG&r}ws$FWb2%eV#nPu^ z5`Fz(F5Asx8FE0{EljWewLzWpF-E``5VU=brg`>dnhk(?UmeYt&fo1z&IP;)BE~mw z^D&%+jJg_FBM(nE)T^sT*_`f*P(@Xx-P;>t0pfc4jBZ}cK1QHQVf8lV(>doVDY2Sn zGlYPvYU5fFl@2HVC8eV>Y)p-)`IqUDL2oCK<>2$-3ROAQUnY)ukoWsZ;uiO zN!Wum%Bq*Vn$UW6Nd0oq!yw=-iLPOKza#GDN(|1`8Dq=a^_#Q4_B$SD^5nA>p^x+9IWJuH3U(tD_gIE8qA)+v!T&Zy|m%*#PrDQ8^Sc|K*S(ZAmT&EyP~#G z?B3@qBUtF}{q}d#pf=m;iF!kJdAo?9W}O6%lNgAHCGSR0>1BY%8xikG{qBImTNUZc zy~CUpd>-G(Z~;ZE?rf`;wWP1;cb{&cjiV-Vtk!9IbIujL{SCb&ZfyQRW(L78@zX(o zXB4#WGlPa3srHs|kU0Ud%$8OwU)_y)PN#qM1Ex5AmvNJ=YYb4^`)AqS5LONseEXjB zv|J1&9IxhN{Yk2ongUA6*+<9k>q^nyxVN`77yP9)<_PUH1AYOrcY%CAxRM%2w)m{R z3UDMw-vQXJzFKO#I<1b0nj7x7Ms3>Zq8)y3&6E{#o*c-qi&+SFb zc)+mvu&d9ny~Fu=GZXCj8p24MV`La6D^*+TR_#n~`IOwyfVF=hE+&)r(0*TTwiFUf(;UKzMe_U}I(`2-)h?9G zG_e3`Q_n+Gr9AS1v?dLP<&h6Ec!=+YB*98y+X*X4UP=vL6c;@DWHC4FWd74$vGDE? z#$#V_0VRkLikm;ec5G)c7rbH3!WYJLW#YI`Px%$C5mZX(mV0UXJWNUcOyy%$x>?QN$ zq%>9s=OTKRo7_?Efdy?BrJK%gKkLxYan_|V!*1LV2xA?=9VUI@wAYcRNArY2m7f;q zokwlgIzOAWa6@lE5A?IJExytBuArZ4Yf#O`Gr3;Gc=`O@MPE#O!=Y&p{9U-QXAo9z z8rDy9#@y5X_AGJ-1E2D<7V(pha=CFfbO4+o(3jDQd2OUK!2&!9a)uuMzHE4&Lp|dN znvRR1JhRcxF{2`nmvY*UhqGe-Gj7wRsjT`E+uYljCxolEyb<7S)U7c%q*ATYWIlln z$5+29kxhL?y<)6$b807j225Y-f=y>U-|*qkKGKXp=ofgpDepstW2TpT zf#W3zV;MIHZya7Nt(kwWVRJ!SxPDUsdnw$? z%TKh%u)2v{m>Guun$$=j;`muCOS-#Oaqi(+f8Oz}9>!PZp?#;tacOC*d3nP57;q-u z!&uKQ{u;{#OY=nLTi51`wb8tBAun%pz2+IN!(fgVlIoJ;I0@DyK}fN;Rtaa=AApT( zrrLq!z(@;d-g%;I+}GE&y+kdYKBy_fwt1VGR`OP+KUz;=swsOd^OK)+{Uyk!DbCju zf*g&9&py1(H>{VZ_9cit=k2S+Cb%I`^Rz$ocW)q1CB8M6u{Q>kvY#_L*P=3XLfHFo z!&Eyj4H_A`?XwvU&-oM&-m?PByyOt4Jn0KXOxLyW;^?7W$7{r2V~)4)IF@vsPyVVw zW8pb(*K^j(gC7oit!;-c9==Y#2zZa7?H@kt65E)KQ|R$kRvw5l1>;4kPfv{5i7TEb zC)(weQqCHVd%o7~?7NPUmtBXvVK*c9M;`U9mGz+G_%}bn7Hcy1swLmr)Zdqr)6jOUW`z1DC z_0~MLyYGIB{e!;N{m|$zj_P7*5WF^_#V5k<1*ez4hxE+P5OqA` z=zXZUEK#!&)X6h^y$TQjj1ULW`Ph@E^`4)+L&>c>81VgD@%g=ZKqv3+`3#S~F(95$ z)7DPsMMf?>`THwY@nSrg8g zPZ~ofZ&vYh-fG7SKD+0l9>yj>`#-I&4jPH3%2q^%-n9%M*Mj%&RxY0`WhXi76+$&A z!g1K%wVV&JF#b?hwDx8>fnmv3Gf?A1V1?*a^;>dsv4?Ckc)Zik%1qLG7N#7^Y5fe$ zCFS(5o{MXi%oc6T3p@3Wtz+kZ1ZW+_^#^HM51#X)%YanIsuTU+RR z;)aRdy-LV(hJ%RNnb+0Ean8thISL6ze$I9OESWle!aQ^O(`f4}t75qK7(05X1aMxs z2QX^$lj~bcx?&fe1j@nrwd1RcHVZRQ8HJA}H(2?rk7;3(WrJNgqjfw4>a02T-A^d9 z2X{?8`f`$iwBP+w@#!FNOe!(5hD0NC$IsVS$8eEDb7QSuyS)?|XTKF4wYbUqT`R_i zK;*tz z;^6Sa-Y6T7py=^X$0IXctN>U*r@uEYT8N*sbw5Xkf0=Ub`lHiU+pP5y*Lh~nL$C~A z%?{N-aj-V&u{Eat#_=p@gQowm{7%Xk9{JNYyGy+|%R>iVGBz1suK+f!4}IfQJ8-wx zzsg;v>J8q(+4|Jim-g!~$&CTxLoEl&Q9YcD)uFKli|1+}kaYDjdB@HNbFo}$%b6HH zHV(U%G7P1e85oS#>M5~8;2}qK_Pr3wDh`5jpQE8o9|US2#i}$>)hIvB^hM+;{IwTC zg$%?&Nhp_>4m*`??S{s>28DH)XZJ$q|2R#?JBRiL=S9<4y7)3^KAPCoj7PtW zxE8?jF;8ushs}nD(zoqrJNy3%JX}A^8&`WnhittNCyRiKY$7P?hju2q zkzS1LU$|HRp4K>HF%w)ZVNyp?GuS3oU&*oig};$}th`Vvf!CCmxszx?bdBYL|> zO4@HwiH+XPA)bMsk2MmErx@8exwO5Qs+^D-dFrO@hYlg{3g)a)&MO-;lY_1oqw1pX z=;K}xZ7-M-0?Qd8c z#hCY7(n1;5^u4heEqUj#e$M8cRoK>1FReTqyV_dga=MtWttBqqgoEv)ynGkmuKMiZ z2aYyxzNpUxJx|&iKcN)pC-WV7F(xWI2WkO2o2Qa(yvC!0qzq9c$7Wfn;qeArQ^!8* zqS59doj~!be(31y+wQ2&jL?~<;&LG9#?IXI5z8FZ=iP@Y=l|TwKD!x-DubI-xS394 z=*G#T{KSG#xoe7%Ytx*4nTg!KiziOygM8-*#j!fwqLs6cj0~K;KPt0jY+CY2XAa|U z)NcNe4_UkU%X(G_Eg`fjXH^iV%SIrl|gNTEe% zSxx8{3&n!JX}44j0(JjYd$Dc=HSB}U$<0|G<$dWspg5YJ4d=5{%rC+AFBou0BDy~B>(0e5S`JfcCFga9_+ppW{kuVJRNe+##ZB8X?Akfv)|Cm zx|x^F+|{R`3jp@#0u+7c0>@(1yp$wHUmMS3x0^CCcv+)wE{TraayUPst)&38w|^kB zb29brl7&!CWE(QgdF0Lr^Gg=T{)9_HXa;{Idqj^}sXj*!;a60dwq77SyHrLu(z=EWn* zPaNx&jeI3JeCLUr0@o1+t%Ep-nL{hrrH1Sd@0fGa(SM=p z6XVS*vNjjTrob0d50l_PwR?T^V&811aU7b*$}zk{PgloEqMtc1M}+5x7=D^r0)5961^K1*7+A|RbyfZa=))A+_-e92aNGB`Zr6~l8JKBBOB?HfmY zU;V2m81G8rxK<0i@(XzO?H3XQuMCOfzexS#7iVBfMRl3DKBaQ+a#|IgLm;=u&1stG zi?Dx*S{M-Zb4;A8AoO`yBrqzuCdE;U)1FB9v9)!u?mpzIZF*#mDgEx3l=0fOi`+gs z=N+fpUl4-hEu*$)OurpJJH^H~VvXy2^8U-u@bXq|Hr6q2%yD2bq6fGShfLEQwgA5V%K0l1{@2pmdC)y_xijTMBjH=$8wuO(Y#Z<5_3)wKL<*D&Ws+*Jynp zXTL1;HGT!h_c&nju&l2phSJM(7Xe{9WXOTSwPv*Dz_a6Qv&|m<`nMO&DV_KOF_2ik zh-HilD()#b^_`?Z6&hDB2AC6&MR|wmCm1biuDB<~2{fw|>)>jJ* zbF8XR$gv;?(J(nweV=e@<4^ySW8>zv*8Q)zS}p$0I+acMCQ>-aR%?P_eJ}T(H*4U3 zam(wq&vt7@J}3m}pv|+Ycs^D0Q$4ZA1itKva@W7HqwQhadt4!Rk6DZU$s8vWXu459 zK=P3!Pp?%)aokmKzK<0M=xD=hw%4E=ui}cZXyXqCIBy>tU;K2%&Vm`ry|nQ%dNtkn zC%>_gx4HHC$y(spJl037>kW4@*VrNu%CNk;k1FV^O67=>;uRKu_7Ax{Bni6Xv?p>l zzb3;!`?WuMVHl+SLC^eU1V67$S@8Zp|HH>O4N>$HhP(*|XulDqvpNL9vskn@P2n1* zb&v}_VrgrCN-#yTufME$uPZ_Qru7Ev55<M~9f*9Eh*hqt#nXp#vX2CQsJxW95zVXspKZU1^CS8;6#pi4 z_V~vKn;o!XQaeu!sn&+JuZB#C@)|$n5M3ZeEL}PhH-2n7%k~Q`km7 zul%sDMEQvV{|W^5jgJ?YB9Z&U$*CmpNALKwrj}lO+ywP|akeI;^Q3Z=`|tNMRl#xO zY#x{5mlQsZ7xk&)=J}Ak$Y+Bv2xBbg);w5GZEXbiMyma%WM5U$pf(HbG?lCG`L9#G znum@ZTKV`qHy!BWGnjhzGoo&N;h%%^Yrf?q&nBZ_hfUM6w-*WlyVj|M+{A;;dszCR za)z~rIKRD4)Qtu9#?r<)ZPMQD`^6fA=A$q9{bz(WHN0Z{^aXIDY;4<~A+yzD?)pX; z=WA~P+QU!rz#C)w<(PHsZw=1YC}Ha&zb5N$*7W~5)U6MTFh8B*l2Nkpx!Hu=weV)} zFnITRN_~8j2e0#Y?)>Zr;&JFEu1qPg!=t^nr{pw@xFzeu}Z5=0i+wb#^iW9{Dz_#@hhQ_?K#jH{wFqUcd zA4rp19FM+aHny?1E156^+cl6n!ND6{KeYItB6SmHEMC^QEmM7yw4z2uqW#j0;LU$|G*?h= zf06HetdA}C%C1KrY4TPUV9@~K+`@hNm@~1irpr+pV3v!?fG&=_oXqNiqt1MB-`YW- z$}gFxoBgcy6JzxiOI~ahi-QN*jG)f(cU=l*(5cGT{hO{YF=}wm4L`%^5FYDWci&7e z*0s;BfjXP>(njCHf_1bRR_3z&r|rB*zTZLeZYli$VTHfgpc>!3t98AU97lk9*#w%d z5tc!zln@eXQS6A#ST@;c-}upQe2qsI7T5s@(KCHxV6)WqcAue7vn`6XQylm^2iqGa z;obQpJN<~x>005g$XPjaTldy74~$!1$baS|GVc$l+pf!l87l8LRuzwk`w0eU6iynI z#wg86d|%CP-dL*5Ki)}tInyTD>SZAS>C0I0JIrV`XQ6r8#P}f2;|%#iieuG%s%XJLgcm+8fj?>6%|p&9c>3Zgd|vd1&m}ob2*ueY-ZG>`OJFXQX0dtvxtPeX~aJ@_aSb zP2X>OA7@z?2bK3d9?HCx-4ER&ghWmXF`zE3Oam%2KJ!`nuGg-isNP(3{xH4yT`)d# zY0m4{R2Sj$pz#icMgiMs*2_OjyC}2&1K)mV6AkC5uWtZE%Auo98bZrw} z>=va2MC3fP`tM#b8S1{T(o8-UQ{N5?x4GxJ>#f*1Du)@S?JLMjX^xnPA-E^!$Fg{~ znsr~r9Csd7ikXI!UlE`LpSBjhl>Y18=Ky`HM0Ry3QZ^PTOQ> z^ke*CTWc9?1{oh8?4DceVnUEp68zSe{nIs`r#FnKEAm#kzZvf+mWz9n{PguOo^?Pb zlfGL#?wSeI52onIEH{HVzrk94#M72Hu%ZPwwpj`#1Y6amDje#V12p~TiU`_qZ&Tv45yjkV@O@*?Z&hSc$FoGBhoQckLU`KL_O zxKJyB3GkAi*fQ`2qlt-WyFnt?^HIa`aQQimTSal;v?On%iB+lJ!NEjLO zUdp;)sCRswJk>&40}PK?UgJwe6XyVSHh0jE+^wn=bt*VE7P{yoPQK2EwG`eS7tA?o zc!zezP;gN_l^1nvo(QKC}{}i`9od+_qAw z1$_Q;fL6XJnxFL@vsM#2$6p%O3`;SL4!79aN4O6o5?K&+8iZ}kU{-f|D=>nDqU1c& zhI4bk_%A>0&H4IWY>BVA`0~-m;TG8=n^Hi(KvQavoTvhb>6blv8e=W|&GCNzZEXVP zjM(|V;8@=ms@-^g*x=GGv$LJzRdfiIgz1<6p=dcg9h)x|=H+P$RRJrxgJO}o zmSFR2FX`1w-O%z%|IC2;)rCM z6GvffqucdgcK)C_Ei!7MFB@QcqNZq-Nh3sJm~w|Q+s19K$#=OXGmeJQz`MPRPI;;z zwp|VGY~`EU{Kx3(jXi!_UmKa51wmmiXBTd@qVEPPANs09;6#Wz*s@-U#(5KgJPtsGcH}L;%0rdrmoeDuNT@UbXMaDAM4HI_px7KKt{|z za`cf2HG_XF0no2?7?wc|L>`5hkNOv@-*^YeaaxJ`^%i`7G00eI1oY|u??Mh^TtxEc zY+Wn}e44Kfl=Cv$$P^4WI+ph&nI6XWNfaI8;-4XPu|BeIV^yj-#xg#=92?&JRjGM{(sY33|;#7EgO>zz2`^<<$=nKOp~49J$KFG1Trj z(XO5bs$NCA4$=If&_|!xe);dhHJ4()vj7~#a4qA~m>AQrKT+u4xGbC5Zf$0mzW|Q^ z{39tyF|*>WFD*CRR8AbY(pTRL9<7^A#j+&Sc zqVZVSw0ZZPw)fdmPCTrahkQ6$F$0YXZEJ*l*TCbfI0GANe|t4>jdNf|@YuOsN?u35 zgtAivc5N8wL}y>F;7i;3v<|VE8TR{-Ta2YUt_lXbK(^On0Nm%Or^B3)`P=cVA!kv1 z4;WD^Jr33jG4pQ6yWu~+_~r$KWQz6;MkZHp+lJj6kq_EhC{M>(9A(CTYl7x# zmj3AOTjk9a97J=?*=cI9zwygx+-jM&>77u$ab z?hhN=%^R>EesPY!IT_1bnhF^i^6U(HzMI?>NuT2tsxh4@omFcP!r6iacwcsFng8tc z(Xur}sLiU?z=Q|6TsD>NnhuDybcob$B+uFtFDRt*EZ@YZa~_10P397r&$H1RnOf)O z>Lm4nt^fc)07*naRHm7{_QMX7u72mdYk@Wcc`K?PA|tZKY0OP*JHA!tYZL3kAxYcb zjm1TPYs=x){M9e4!;J$4vQF`&@w;A%)&11Y%s4W#&Ewm+_oLMICH;J5tiv4$#FRt2 z$Wc3k7zcYa=oc{|z12_6#%TMg(XU!w+I$GgPwt9Q{lrr4`^LzbP`or)0`WLww9uS~ zL7zikuT!;IQx1h}oTrMd|JFJJp0iwA?Sio?R6hB2LgVq2!xgump5 z&zmb%1D{>D^$^$33)Y2~vBmbNy}f()`Np^$&{^@`qeo;n93;c!d=u&YpKspnw~K40 z?s3-xJQuVnOTc`djRIYa9e>&yme;E%r?7VAo8>f4L zmTuGnTYvXP7Hzc#_@=agxPvWsj+lVgcWvleuk!H)ndX4l)`0Qh-5&27h4NB{UKWNQ zb4M46ILUX7ED_v=%b4>%!_pTQF6F--lHoYM7RN{b^4Y#NJLMWEz^1Oadk6ikf3jyx z^28bB_&GnkH+m&BYKMG|tUpZB+NaKPX)0%ri15EZ8Qv1BQjhnK&UB4%@zo3~da{W<)RKR9x*Q2DFy#fIRGLZ6-JHZoaY#q%%!V+-M|g~_JlWK5`!pMDdmmQyz& zC8>+C7w|HhOm7!Jgoa$bBBLcf>ENi5?Kt39o40nQ#aG{C_pB+L9VZ_$%}E~dnJlgK zH_5ZfwlvQ&DzaC-< zNYD53!Kmse;Lt~2zVdHlagIi;8ktUZj<@zbkjNoqWW+J{ceo=V6Rypa)AY#YS3GUh zi*ify=_)Bk@zF@T!+2+%d2a681V=x7YO8a+u&?%qEfAuhoi4Uz@Ovn3e!gw74?;#}3ir};vt3#cyG43{?CV{hK(0;~FT6|~vV4ohE+ zN>CkL0+;)|3avu-Xc*T#bk))ZW2Mx+NT}91@@=s2%@_sGC}HGdAe{MBAzjV7;D?Mr zd^})w4@62?cWT9ziEVMs)F7KD+UQ^KG+&J{vxfdgOw8qt=W0=d7)Z>^lcFX#_8Ka@ zWAkEo?q#%en-k;mez;d&>N8oL295xG_0=or1mkpAepw}t)+0C@rHu1`H4<}~^X`XH z<0ZKq@pVdBFYDBAWMn4RUR6auKQNl>)teq=xOqameWrq7W8B*hzdw~`zN&buWW23L zB5}w?n@Doz`G>k|uiV=0dISuFHSGhapeCS;a|!--6Cgx9TpJv%Z?WWI-|7Lezr&~W z4jYZb;sb1}vc#6l1^QB74m`m#(tKanjB{jHz^thSD#$7qmCDT%Ye54Qzt0Ipi>2 z&TE`48Se5ui%AF{*P8InHZkFS)Ay#8b$CfX!>`dLoc zm1-RG8lZ^wl|*ryosNWoAIiGsmF{$Jofwxm?JSEH@!IA^t}_qDwR-a0SCeo2laSAd zS5Du8UpV^KSPg#T$t=ek>x**{p?G|;yT6-p;{=QD<;X^5V2LqWR~vKu0r*9Z4x4{0 zXJLy?4sEvP)0dlKu))CDA-0bBakVF%KpnDr!CsFaNgq5fn0^1S%z9M@2D8O=#?xrf zrQ)#0A+x`{*Wm56JiN??QAwQ~D|+YNi|kAt_DSm}Ta25(FalcGizRw%G5ORUrVuW0 z5M8Th@#)P^b^3J6cd_d}-_m}$sYX*Vn+z@${W*Eu^;Ar_YBtT{-Ace@$6k)+ZbX8Iv8vcKRKWxE%0dD~7nbd)bdM z@jkZBg7%kR*Y)v-G5AvI_Yt$_FOCnAc0%^KuIDF0$Q)!Qa0c|RT@Q<$=XlKah7Ygr z7=K1^_bit}tR`sI9^U4jZ~5cckGSh2Txy?B^3A)+Q}30?aNk_xuEvDywDy>>8C7F# zbngF{SPo6g{aGpe^71-UPLq|*aEjwkXYKLtcP{{swP<~iH>@u@jK+h65uX`0PhL_* zYJSw3-LXHmlWm~v?#+E@6E!A)@Vzv5#$(C}h>UjEzfGj?UWzRq7sJ~1WSv`Q`;tHX zNZ0(@xs2y0m%AR^e*ImO)OG5`5#ZWK&pn9*}I_*7rx<-N8*PIRs6RdVa;GJq&+->I+}Yk^lnZ>i7-(*{K=z z?Oo|E)a0<{=x9IIhJq6g*4QLF`}Z}sFRtBsogOgTJ^EA8`0IN~>B1<-)p+HL?_O3N z20LIBU_M4)&8EKvFzs}Pk@-MxPnpb6n5PfoD#K{c+4cE>-^S`r>b-THz3P|qtLwME zaY{6OR^qJ{m4ljo-X*trv}XHP=Ce(wGm|&2y>ACFU}_w~G`=MBF3%j~mY5YR@+4V?Mv(4BVYf%_Od)B< z9E6IW_N#x=MZuS!QiGVBz4zk8?fnGLzF4#B8jr{v?b{yRA9m(=E?m{yLBz&&d|PIc zLts#{V^9PRo)UJR8qq<_{oPEiKihy_;`EovXZvSREC}|WsYwGZ%amMCavRA*V#rlN zD%O>#fe2%*6%Rz;WXpWRMzFSYzM@iz_Z1|Am!ID|nj~Zuy(T_Inq$CoUca`=>`nTD z>t5N;+FSQB*x7XP!3Di%ic)Y<@_bj;#1k7T#p)TJHH&p+nqoaM^fYZQt-^$xvO*n~vopk1k~SZFEvSkaaEs$ZN+=!jmXh<7NQoVk~LA z5P9h@z-*4I@>o?XSbE39csur*4^(sQHlXhVbaRV+p)c~_hBO&0A{$2Sy?RvH$@}I> z_zb3Dn|{`cSLkDvPlGW386GCTJ?9gF&8_dBPqJ^lQ;Rt4<}RYi$nUsN7|zH1+&PKOz-Bhr5R+hgJ)2R2nIpYl~7GU{R9QdhGg7B`x&28U7#BUQxwv%&9+ z^$pA|>^Ybq{h(1zxob9$0`T3P9g#H*Ub5@Ssqli6sV2G{{v>ic!sO;z#z@Y-T7}G|K$=&lnMv@&FONAI zd*g|8$D1!}x6F~s#0O{W;+FM?v3+Us|Nf^B zCZ`Xo6`x=CRCw`0$zH+^KN*(muy)RD+&bEGPF5||We;s11T~NHpZ)OmaslvO4@$hx zt99C&GaB^}=YDw381_LNyLC(+Tybj+XBa+b6+<(}Dm?p1)epaNyQC*?H+=f(1QU5@ z9(TQ*Xl;LRroQmg!mM}^)tx4R35(B_PX}Qa{8+fB331}UytryH2CZwgg=|E0tK6({r_|=F}4Va5#E{s z5Kq3gzDV}*@55nkbmw>eiT3{O>cDU8_VieyQpVuXwZ`UsMmJf-ww6^)ko3A(+{MmoS zoXv39bWfrNGir>zuHJX>JS^jQ7JHp93vH# zyhBuE#hq2Lx0b~G)(i2iSp#@H5Hr3ndR*w(e)ke0Ky@vC8^Fqt1JcyPw(od9KE^IpyBTeZkL%1@6<&hFS11W`m2GbP3#94hi{ZYdzuM zxJF~Ozv)d50Y+zUq9$7vuNdW@sZrw-ihIi4ukQY zoJe*uXIY%x&J(t;OxEfb@CCgJusMk0uS0(SKMU0E_`=`IaMjZaxc#cVv*OWCTAtdE z=ggb8<5As&-{XRA{8sSeu}E`i3ViNqLOr-J@+MpwV(bXhd5!s~gD+*(-AkDHKI5!r z)CSENhxs(fyVu*_vYWiBq(W7)1GOAZlJhw9;P>?1v9cE z-z2FSj)80NY^cKwBF{IG3O3VyhyqcxYNEFeDP%mnq4mL-!FQoFI2*nnM-CMV!S|~h zRsi~EyALxXzapBdi|i#dfoMa#_i2E?pL-KCdjkLTP_0}xx*!NQZq@k6mMhK|-r1tx z32zA;(cL}b=P)CF#)NjU8js6^hrSO# z&o=?_jr~Bsi}u}!gwS}0n|WExUagJ54ta{UxR>O5YPv(NVxs%CuP#Q$QZiAEqJ$3* zobvb&xem}GAAa)(7UldK0~V6zvzNDMBR26@CZiRa7xr&riuLGEew$EW6Lvj%dcWnx z&V!wwO1oZsg-5XLu=33wy{4A3~N9-xvXP;G$t?T-Lk030}N#S zh5*x_VsRrA4`b2%6JLx9q>VE>y{EAhZ-*1J=G}VI)CTw2 zu#1}-$>H&Z-&!yJeEiJm`$bRSaH4iBDge4{htoITztPD~Ffs0&uk~(>A|=N8XMW&} z=eC(K;l0@$z}ooW-1x73^$V#yZ#}%)n0(wGescp4vH`=nn8Qqddu=hrdgI0FEcd!G z?%P+9nT_0ETOfFL!Y3_On+4DXaq=RZS6xQ6uSnJL<_6tzH3qYZ*PBx}u;=TWDa8cJ zZiecz*4!6C=pw;cdty&FIVavZ&Dlcnx8ytL96(NA{bkDE`Er7Fc+H`L1aVvj@sIJe z2G4$i9li3?wm!$VdzZ%_{#~EtaPioNG0xvVuPkTzz*vnyvcb1CuzlvPhgAhcrTN~< zu=OFrs|syD{4-2~XP`S@)2U%=4EPL#+4Jug7}^ty@80NQjr+J#ap?X)Yw=`x`{i9z z4b6*u!^CAa?P)G90pcD~HN5zc)?$*4YCgO5E%WAc9M;Bf@n1K;c;jTvuEQS+xGdr5 z56fL3Cv6zy9YR*5i*dlSpSnytGpTSncW0*dvq+5FL;SFv zpXT@j3w{-sQ@Ys;HaWWr_`Jku?1nRC>kL1?fUvH*Z@__4u>H`(cvMex;8Q;RPB&+8 zy#4Vc=VuNAzz1v}E{ER^op-=%8E>}D@i(?{#GR3R8wO}=?}f{+!MDfau}%4{m37)b zc&?ppr=7EVwQtTbVZ|leHZB6~{7?I7 z`JKN@dSCcpxw^Nmivjy=u9aJ{ZY>8#74PaY&f>x_6FP>EbsQ&;v-29b@H3GOIWT(X z8}AAAXO#E@Ig`B_7ahmtc>Dc&vklt|LKARThhw&$xzn+@dr#b~7-0E@yLvKv<1@|i z8bn-W-}RAiIUy=4?K=ugKFmb-%7oqP72;P%I%Fm&yh>&dW*)mnvn^%~HJx~| z8h3s@obeHRl3}zSW_P)+7Wk$35e~m1Z8GDx^j42yl;h=hFFJNvyFvRc8b?%qS=300kf5?j|pW$`Ax@fhF zE6#A_iK!2|i@VeLPBy){P2_Vj_oUq9=ZQvoLh(XUpVb}fIeXWHzjHhs0F#>!d$2Vv z%ZIaLXL+1`0h(jzc5g(5YZGth@*SFSdQXAX=Ffcmz)vnnL5KCftvtkb>zhBdtx26EYnR->_~JG=rjabF=n0k1Y!dtT!SlL|mT5FhSa|MkUm zz}Uk&VxII$$tgBhIS}eFEYGtadX;7Ef&TsB~3aKVP zh3VY$yPs+~Y_Z=j&gQ@RHb3N!elG{|jiGs?HoFGxq9SmVkidX;Q8tm|;*+g`G>8@C z+L4|=kME5yqBkMd*xyXG0Pdf&VjY`VONh=Tf*1z2skU*gJjvKQrkL+Pwj;yWXVW)U z=GHOOnq`RkO0Zn|Ez0am_MIXx*w79`UQwE98!O_jzWo2yX<>mzUReL0c1Sjf+ZqyoXR z5kESLR9@6Jjb-<{DUIc9@zMT|zl)~R@#;1C-#Hay9#ugcxDf8TA;>W3|DcEsKMphP zPX;_LkZ+H~`AkNX1%Q z>&JmOB^}}Y+T8u^%_*qHo?{{o8ygLdM_v5>EW)`SisN@ z=g#PG3=f^AB$voP`_KennO+AtxSu8oi!gtJBVzE?;qr^-PVOIj`H5SPdGj z1z@abjI!fD#06_Edf}bP=5X`S2%iflu`<}{I@2OwEeIETqI+X-T=Jhhq{jRiQ-r>H z)Yg?D%f)X~c5Qn~{9YQ_to!|ad;4@=zhb~v_gQksac9?25gcMzi`1=GvM|SWd4?FV zArHSlp+x`c6CR8;stade9Wx4yF+onhJegh2_F1+pt}dm$_MO>noJ!*0gImDz_%3ei zwT6rNuwjDkY0jA$+oQxQAQpG??k1%}(Dc&``>lXt6%i(r1y@qGd5EDQ*!@g?FdGhYehom1fHJk8^zCjoBl)lQ-e^ zQ`Ld$X#ag&IdyZa8iHjsTWxh%|0;X%Dk6t^JIkT5nmLB?oxJ@?$G)}r#=jcQxL+VJ zel=KYZ78@b!u+alksqauSlrRoj!X3*dvj*3ei=Sup~QjkxbVjxKMyPBt|`ae7dY+> z7jMU`7USj+d&y6;!hC-0V0pb?j?A}YXFc)7nRSG5_&mR8i27(7OTgyMH+OKV`h5IM-=7TIncKbGDOjL|yVz${W{n+7nfe>| zc40#h$A@ps)Wku57rR>zQ23fJ{_b^c{>It)>CT6|tgCnT*@I;l%8@P7$tITQ4qsNd zIXPoB+|$8DOc3g`uv(XcW@fl(c;br3Y^~D;lJ5b)J1hd@avluwdTVc8`_aTV_OO`1 zVpsF!x=x&&jp00Y##?P1a&3Ii3K!xI6*SLcYneB-*^3vle%pV3c|ct zY}VLwbOt#E?oY`qQaiajY~Ia3iz(Zi6pf7Q?Bq?~T7;Jj_8Y+0KWnj1(A=M=^(PMV z+vjJ~08H@AQx^RMAFrq|!lk0w!(NC1TI0WQjm`||x7Vqs_Dpsuvq??jhU9c7|H_MHlh-shKh6 zk^stn_S7w|{=;Ci!y1jp`n}iGIfB#8KIA*MPXb#UV{`KW3jGd$s-pH`-{?(OY;lG# z?A|{|^g@v}PF4QC0EB1KxIElJ*-pgY%bw?7F_IjQ!=inD?UU0jH}fgIyobH4ZxYmA zpV^0t*VN`pM{%b&LCz}1R|mfA<(X41wKJb=dJcW@0S~;+s<=kxVo$yXZt}$v@B3Gd zYUnxRba!rlnJmAY*xv|r4QMRsp}t5Lta*cmy_)~kZQ$6v7*a|%|LzYy9brG8@49b_ z`9QKrpd9c$CcG~zUg=Yh>s14R$8gx-#r6`1wXJ0Xb72@Iv!S2A_0$&{3^W8u$z^&v1=?#z)tSsM z6bdDNNis)lW;;2`C4TGdVrrhWCP9iloNC+oJOCWr;e#uu{mD2k_k8&_)~ z+vfre0r2I3_w8#)PuJL84)@vCq+!!Dd5FX6o>c^Z&6_{5yFZy&%U{3n<+mvVRQ z_1IY%T${kLy5o5AiM;hBq-Sy03iHY3IuWemZ=SVfj%Z(IGq23mZyy~_eDh&zuUjEz z1LrN?=47Sbo%Rm3HGcvmfruU08fCfStxJQ_5oxl^P zRHEPhmYY z7aA8hkJH2P_e8G{!&@%YH?P*1e;<&_Tb%V@G>T<+EQio>^K~}UvE*MZbe|`W>=xwv zkUeMbn2L9dE2sR-JNBxqUUM-t5Gk?%(|eevK*Opk9hQ9?g*%*^aun zPveh6*)YD*hUB;n@a3?6KiATy7CeowG=1QZ2 z7KTNCm-y`u%Ew>EtUa(jz@8d z^Z)ZFUZ!t&S7%MQGm$lyu0!+jK~?pfP1??D_9tl8$p`#!Ozdt{*s?wvjo0H(7{xVi zOx0(08+Wm_eQ;S!Aj{()+l>4o;OHJda2H^4eYXMb4DLEf_eOAhjMsPFDwZ)*pB;2I zyXqRKgz~6_>)d1Z9y}bDtK&G&p4(=cT#wA*$1A(-Z;umT*Nb9LcmFA}zC#grl`Cb`#oHopfhV+{M(tFQHt__CA4D@4kKb_INp%1B>+X z;rn{bi-jQU<58RltzYn|mk>H_1GwlkDTgly3D3BAY7)P*Yk!^kR>E-dMV0kn_HyU- z>1Nqj&5(|L8Q?lTPI2wt@@7#oIldeo;*gAj12*v0mjK3lq%B5PVdOKcuHg*IY(5JV zZ@H`49{mHVcxQGmzoe#^Py2Hfh<@@D#$xflj)pHdKS6=qfiMye`F|7Qg+0b6S zD#5*6>@V(2+8^ggo!h*w=Ht}bgw2ovyu~)(SU)cDm(z6WTc5?|DifSlhTK%=-O&lY zLHuKL{)sf#P#^d>Y`q`UT*L_0DE5Rqli$((?emk@%?J6;m*9ie##A&@wv4&e$ydv_f+>qQ=%K}BF5udf5m_GD3!eo_Khvq z2~t4%3LM*sALiG>hclATt+B*`&Ygydxwe&2ZS$R;A>S**?ft}TKS-ONqcOQLgR0&W zc809mlOrnLtISm{{T@xedzPDPLhdIccd!0d?r`@Wi!2g==V!inwidQG!^netO&W9D zWH25Az;HHRbg^y@;G+GTmP0op^pmOVvPsv ziUsg&D#n{oM1HrQP2AUZ0gOxvFa0=0Yj_RjH2AZ9^q5?MR}23^(8c$Li4O1heRIAY@A=|<|M|Hdwz@V>b;1|H;&@FnUVjJX~7M>1mSLW zsK1B~3-_Pi>`&I4xGFG1y2W;X)OZohw}rI?W-Dd+~ z?VMPNdVMu>+@d|ZUMGf}_P`T&IjLq)rjOq&5yTVyIhpBJduxKq;a|DXtbb7_d)W7P zn@|2qFs1SD)XVXo^L{qWePD`@KkK3*YS!i%K8a0p01ccT*Y(x+!Qw-DZ@?!VIjN{^ zc5B<{B-NNmYaaRR^)|uviaF(uZ@ob-=EJye2f||KJbrMyI^;Qr`|H4j)ymYQe6Y zhSi(@%|Ago%rPG8R<7oHO4ihq#j35%$i>SL>VS)4`h@zCAvw91z-3B__wU znkVF+at87^3@QPtA(F;~=#TOG@*S3covkL5eCldBhyJWe{#nijf#rnLjQd4-!1$+K zsFzc`ae8jmeeBuo*^LfuHB%cp^^@U^yAKoO@cUDP(_qq+8%U7r-1Tgr`GUH9eM!Jv z@Nf<3U&>59%ZKr2R7}VJi5o4OKj+wmd3iR!)8o4wGg!hee)muE2?^MZ%U$bX%yvpR zMHx5yoB7{0i2d@z>HY-)E4l-mx;}5?_-9X;gwGzF+t<`dpw{)Oha;oLM=dq3;#f9* z5DGq=7YnAQ4_L&n=3>l0e0tb8UV$F&*`7CAi^AvSa-grnc|YFN&kUQ3H6()XKa~A1 ze><09oP297<0s)qau|9y3n#lF8s_FM9|-5#dM>W`K||5WD#NZV^(WuFyL-Mjb`~v< z?f-I&{Y&!dJy`>H+v`UX za+myNKC8wZO}vfiY+oQ1lg_u#O6OJM@Jt?aHlHc|G{2^fh48pdG1JyDW~&EU%M>ea z9E+nKcMV=(c=|i5-Dg{NIn8e%^sSjETd2mk>vteCTTWyiIfG*4G5$u2)95w$n@xi`G6QY{%d6VTw1~K13Oh9`;zqVoy@NzRA1I zCLfw%U9PhoNY_usJNh6L$F=cPFxU$>M%LfUCn=+|4OBgh+v2xgr&f}NI8O7gZi~YY zyiHK!#g|h_MBcuG-^o(7ADw|2YtKYf2XX9|z=vcC8@*5H=wtM2GDZ?a!3_t&^Nz_Eqt6$9agU>z-5WUXiI-gO^8-E;4%d~=dbj^K|ANM2GT4*zgBl(= zAGz(*VCJ_MsQL9d-1`?XUMxv3=T32+u48!Q6eD_jKABo#KCz;}*|^QMqezp-iv-UK zKFQ2^;&t5Ck%R+{8i$>KYwF#*O1dB$pZWjZdd=%%{n<hlfZ0Vi6jF!#>XPP&?AuOfNw7(tJna$qU}= zt?}r;98e=wqpt?Ii}`5Bg&+ojmgUO0^M0!JiJ+_=_*;+G*ZQzryWe#((G{m4*Qd|) z?BP5P6h&w7*(~X8|BJCYsNpPbFSou*Wx7>p&r7u^(`5{Oerh(qk^J_%Vhy0r7nxcBt=s zfs&0@^?)k@XrhFD!0jnVB3d=Ax#s+Ak-RxSPk=j4qEWEm$(w)w-~Yeg1u;~e9W9x4 z8}wY!7}=6y)Aq3QCHwQu=L!}Is#%!L@T*Oj1ZsjKYI%KaFmPvCNwS(_$F=cu$KYq6{9ihy<*!W(O zkNt#0T@0}ea5XYGlD!U)ML(M%#Ql6^asDUwW=x>JY}Rul@JSmZd#OCx3I+RFsCYIz zyV&EZ_WlTu_+NFoxhtqFA47C|#g_8^u)3o#DrQY{Y}`T+jJxc-T|EwN?IC zoP4en^9NDfFaF{7O}y$v|Hg5gPITigx2BNu2Nfkb4QFloMDkqY_aRO4;hk`bk$W|a zySebNraX#`-GqK{UZXKxjjnWyp>F1fT-lAlt?~6^KiL92_m>YWY5^~<_WB3|3zgl zj@bz2frV9nqF_6(McDi@{}+GV8xM_B-`flM4KtT<(&&drSJ4?;Gz`w}Fz7GQ)#wj;G%lY!-JEtWIhOEZU(Q}@{V-S0Ve?j7BxssZgdZ;gp*;x}^S4HxEITo$vj(r` z=GZuaoulc1uKe1?!#PY5w3b(T?}@aL_3+vt0fQT*>^_$dG8x8iIL zbdB2^qzWEbR%;0;5iRxEy~@Zg%hNf_sq4(z;vngmJihmGvQQejOnY(t5w5w&Z1o8L zx$Hzez>^N|qQ7{r80HfBy&i`w#sBSdtDRELxH)5o+` zVTr>qx+hxq8_DeF`(a#UIUVCc-Vs+t@Na(|_FfSkd#ynrj&6g!I8Wc1Tpo*e3d^m$ z#pef`{+EA#&$u}1QWy~!1DM9+9UAfd^y}_H?Ag5+$cW;*&VH)R4}`(vA&?K%Cc4$W z?B?^`69H|^x#+y{`EpGfoZR2FRlps+zh1NVi56@HK<)P06AY;wb18?*7#`UGz`g60 zwereeZLKYf5C7YBZXdE9rG|T;b=asS?8})XS=Uf+_Gbu-Uf4bFN@<_iei;E$HhVt! z8n=-jUY?)6M8<>P)!q5K2Ee*Ga&-?Ku!5D_V(;7@c!m$>p_NNs1nDk^rxz=Md@k>% z78$&qd0*?W#7J($}vYehg~sNVG_ z60ow(&RDWnw~zPDp&PTAt{b6f-5Op$07|*NV;Fz_q-wzNg8N#>TvzbE6_}8StIKw>KxP zCYNFJitpmG5#@&$?!~M=>;O2*_fNMm-F(Nf8mzW=uf$>U-7Bf;tn(K)2-{X6)9%0=6wYt4M_g};L-oG94%?7^&H0`E6 zPMotPGk!QB%mS#Fvz^=3V;s(s;MOZ!wYv4T4zvl&aiQA*C%DfFr+6`87o?NC)!rGK zSXO`gECZ{FCVGqRyTMZ;U#U*gVAnmhdHCw00 z2VXsU6OI6;SZ+0~Qn1rgD$n6lZXDWPT8c87{{R$mu%KvYE&~TRMX45ga`Q zvH;3!4X_q!YZ-ArjqY&po4#Bor)HoIeeha?^It`LKKri^9%e4ZDDa0-COF}_Gt!=| zPFaZb4$A%Ln<6ft89WOtCoca)QE9HkdtjlNT`Tfz%19v>+7qLG!|017t z7cMQ>f+3VSCjVR-WBL{f?7q1^ja<+E8>yTD%>R8@wx%fe1S((SQHWtJ<}&6Po8IVY zId-N<>1C3MuyWjZ@_)yaZS=ZP$7_d>FV6YeNGZJRxexZf8&Zq>*2i#<>TDX>3qHVV zy~Ho~!)cSva&nOK=`*=%d{{-BKR-6diN8L9vAaWGe73zA{>G5q)?u4$7_+x)8lyEK zF!=##m@7LS@0n7+&8;{S*feqe&p)=URHWO&x=Ak4@eyXecy{^qf#@x^#T?mhV8-t- z*vDv2{5Q_#*pDCCI)Sb||9%;uU!MPW8W*3>)UP(bm?90!z60+llZ~m#wxipa2HvJW zqZ2RGFjwF96NZz&VQY?YFU|hVEzClk`vQUKo1k*!?q#`Tx4-qLYYg0^M}@ckcJ|{Iw!W*8Ri`rdJt_s6^e%$17?&s_OaS3cOQ0til7n-Za6=}V4o5o-d>HE+T zr+!O5kH%RL$2eJ2A1>76;hHwC=8Qlqpc72`{wnigeIHyV1u}3S$66cf?D@uTW%~ON zGkrYPMsU8-evv@1`mT{og&-^x4C6x<&Q5O<7JrJuE(cS%`N(t~tIxkyZISVa;)G0f4j!)W^XVYVhy78 zyyo5Xz#~3P_U6XdMfk?(VrQ+0JDjY7)^}rP?1yGNESzT(7{Itq$XyNe*J%jXDgxhO zzBIOv@SAcq7YFKj?JO6z@%ii~n^DmxIu=)#%6DI1ncsagGMc?Wy~+p2u0V&7Mqh1q z^h=_t#NyX^?f%puRs-o?W>(6OI^2RZt7dGF^X4jWjs>Ns?EXC~A_Aqk#CX(6~WpU*z$oj22ng#rGKQJYm zu2p0D)yE`wHBlKhcv1Hs?}1bo0v9_?oc7WlwSKzi8=WQ=qZRo}V0L|Y`Q*QkgsC#m-j-KLg$T{vmp~(j+7bf zjOW_Tvv`^kV{E@<)3~fXvp4M18H02E5nDH`1FMZyV>}>i4^XVz8}GU|D_D`P0qF6Y z9}$kuKkl1>;6})PXK#1tRg>jfJi?OD7?=55x2}&(d-;WX_izwfmkFnuU3Hla-0mgS z<-!emjTh@HRe*Jl0siW6bzHoS!Jy)W8mPW$EQ0wsNx0SuWwpb~FD36#O^3NBbz^Jp z-~7Lt7Xv1{aL(uIIr}N@!~dY>i{&Z^ua}*tvj2(g2U_=m zFK&L+Z1!wgp|Bpj=$tADr74PBXY&cqe*KNh(KN51Znlo^oBb&-HQvUL=d3Nu1gvI{Zg264mgz?}4^)o6Hd6PQBOeBgpD|eKUap>CVCzbDgfQ(=5SiwifJb~V1+> zr|Dgj{VNmBGA|4hymsb}MKI^O_UzZz{ql_Mj0|NSYnM*42_IfxPMIvTha3hh9s@8W zckPnUVl&tcrhP)+}v$SX)im-}QDKIqhNR zkx!h)IiK;p>yLe7&Jy(bM)PD}>|i(lV|P*1x|m^1_TqOfU10AWCsG!nALj{nfGzL_ zurXuM`oitQX99ukT7%MVoJd(LS;T^quks^fj;Gg+4`*ty&+wSP^tCxcgyy&q;n)?dfqqgHtO8JF`C zVB@fX=$BulM?U^s4#c~zHz{YcA4>>}4U$NjJHq$oqbQ>82jKb^WP>~V$gMyo0GsAX z=JTwW7tUDvrYiW0`5baOxtU4|)B~qNLVdBtMZa%KcZbN%@y<<}P432q?2wwEZ(wmQ z!Z81{e@4zqbtIj;{@TecRJx6r&!7|LJ$C*%-5eUssWPyDKK|Se`S@1Up-t~i`E8;s z$ix@1thYa0I~~2i8^!Q49aqX7H!c_Ja?_qAI|k05@nYO!P+K-Ke?ZGmtNN}bU11Mx zr!b7Ql{2k8qw>6F%K*Q)lC%Gn`=Ow+Z_5`KVe5J49%n#3RusE&k=q z%7MZ0_`}AC?%-cRZ=Oi}>su=SZZTx^f+BJkzY&Bm`^#`AaGTb#JDqwr0b%UP_T0+h z{0}27>0*f4d?oO0!JW*hzJ)kzdjeVZ>#kWm!w?hu z$h$xmXN)fJ^{fG$F-)<(Z;JOh?0owrQ%G=X=ZX2dN*Yw zs0ufC;7-3}TZ6H&KgoA|hWYJrSq=;1W4*PzMf|>uvN%w8EO66i4%P4*()^b5jJ%Pz z%Hy~=diO2)xf43(S0b16+LNo1v-Rr-4(DGTHQ9a7>s#+_>+h3|Zr<4Ae)vqnU_SUuZsN7eK*RCYOmwFqy$m0B_9r~w*Upzh|C=k~zUv@Pbj_PJmB8`s zo#)8e*f}$}`Px{%IxB0XeMGylo?ZXBEc_Sy(lP#^jQP7R4Hka&ndFBhViR)c|8LXjQ%r*)maraCoUmw35XaCKmtb7q+ zb(r!#fSQmoTW*iP`r%$Ix;<~stnsru8SYHpZFg-kjb%Qw2X%nUycBk(pAlbAM(UD5 z-FnZL-E?olx>a$rY@b_m&mjP*^VW-NXZf6wQkCCVY<({EHy-b1-Mpi~{r39Be%Q^c z`N%K+h|Kur+qF}#xm}nhZu!sY%FE7iHEtiNM>g(@8;7;+8}7S8w(qP_8=vC#+S;%_ zJQihZNCJMw;hJ%oAuZ=>86SDB+cjy%)p^&D?yX*I_a>2lHF}JK0ap#fUQr1wD*L_% z9&8YQWAfD)KsrYJ%!fEkUM80lmE+>rn`S-7a^t(X5T`Z$b9(K&KYM{0PG(F>c7WA^ zYZ}pUUC$hw`FUV5+s3&Fr(0}wHdon!_aTD!5OG@{{+GA4evx)o%5*r4&xPw;TV8vb zf7ODE{t)hXdBluF&F}T@%?dDyjCOEbqx!#C#fQ0P`VF>t((Hrq>N(YT=f?~fP9LW8 z4)BeO7UMI#=B!UQqmLGcu*BlOm+9KdlI!oO9lxq{`w6_opyJdD`|QTeG?n$$`^||( zXdk*@x97+!3@^vKRUquT>VA5ff*FL2Ed9Cq~T zrCJF%zf&a>NnBh~&{LvK^fx!2nric1@$hU@53iG9o7gJ3e*}-)d#PefXPN<>S@``z`Nr7K4<40otUjr z)^Q*uc#2Cdd%w&+?@d6=L9YO^Bj)7$&4!=4D)E6TXl2T!pnU! zR;3wIL$m&5yN+iw#{R@vHV0BfHWeY>!+u;IOtEG3lg~~vFq@J)fBU{Z&N(@+!Hx?S zBsX{0j?4Ivt={p_9!UE>C&x}T5AI~+Xs&r5+UHty@Efw_Zrt5AzkCFIi(W8`S;;V>|t1 zS=HQ&&W=oVj<)I-8#qUjrkk<%3|&HShfXNzt2|%U3>RceF-MWL-C6X>*n^Qixs^2DW^L3 z8i%>r*(RRBUkneVE$6GtV-NHKTu8(%rjWDkmnSBR9-@LQBQ{Ad+&MI9Ml3KSkEjF` z;U=RH^Te-l3gvhx-@4rYz3gcWnpkZh1Fq=gCg6^Wnc)}fxRos;V(mEp4E63O+?7mT zjHox8enlsvSXnF~v5UWnK+KLj-_em@v{3tsh<`%C#Nm^3IdX2{P~Z0OU;CFhFV5x8 zyo-3&{G*TP<$^F@kazFn0HC9^yr;2zM48 zW;k!GRL6&x#p;DYKWj+g>QHBnCa=AYMd@8+hWjy|u=XK{g~(=)UvBUofmx>C%kQ`w z{2@0c&!SvU<`%KvT&fA6{oGB9L3rGt;eYCx>>=U(G_RXuHxq-pk^1i1i1O=TzPd26x|h-}a(Y80mw=j2^7G;N+%EiPL0sS<~su7@8rVpJx-Jg-#Bf}SEH&p*$n{CI2{K_@-X%@ znFIgAzhBT4PL3}Icfif_3GWTi!;I>+<<6^`_(+7kOv1UbFh7Mzcu>s~C|AGZ(z;=Gin|Ha-qDSO{B;Ia^!C{#r13~MQPT$} zmiws==ls^)(dp)e?}~Ht?`)5+1g) zi*FIap*_LP+4cYSV9{EV$b5>X&IKP`wVKM2-!NO5@jvNITCew}i)>7045IxNmw|+R z0oQNv8z-fg&$HM`e7!x4qxR0dsa~gR&CKD6^T#uf7we?h7;G^rgRVUHx&StM$H}~x{lKIiI1M%`Bo@m@Zzr%MeLHhpx2xKmP z)!HNw{o<^8>%)}6H-mytHZweS>SeNbryGa++vAit2{UB#oP++I&PR~$FP;JiHwBZg zwG%l8&#U=#v8%H+dNW`a&qlmG&94)EbL3@0o@zEPtn4dw4pTmx4A%)u=O+I16GQxg zB$wwx_JYe`cIp=*088WKDd*Q-oc)cBIOa)k`y`&PT&#Ox=FtOJ6pJp2j*Ed$bD_Vd zzqY+LmTC&;oY7gN|N7srev8wbY;3#Ytv@n5+6U**UCJP;7kN+h(Yk(YVBvk@LQZmz zoW|s!hdqzt$VMzYZjYY>!Q_jf7UnSe4B6%JS82b2g1J1*Uq9_5u=2QhAO~@YwHGGa ze->|@1Z1q6_A1!y+pon|G!11R4c=MBMvpZQ)N^jz}tFGv#Z1_#`She%&= zl_T<0<-74HMpcNfet(LPd_N7*fRx#N56iGjK>gtME*IbOo_KP;PQD(sQ-19`VGbqX z%`?pt;017!et_&LmLK_1uVe3+sP&Oh=bWnZ{o>QuFq)G&{Tsur-w~h+4!dd>NO@F; zDGSd^4dpkJI1Vf8ufN{q2T@(jQT{hxfV7+c^MTuu{_r7Qg{K+5(KG;e4T37z>WQl+ zgT{ejq8VSSsIb{jbaRbv2EHWRB))jc;@+sSjp0}fx7zIm;@vB;?sMLq z;fdJ&P0_|(NaFRizXQH;3u-Og7UB5K-sdoQh4?thr7wurKRp9jRl2d8+xtAio-J#E zspMjvwOr@ae2nt|_Bpj!m59q?`CKO&g&7i$i&WmsD zg!1h0$)COU_fmf`!jYW%N2{T`U~@H5=hGPGe0KP^{~*3G3U&b1;bDDso%b&;pT4+q z(T+gi5CZUF=Zpm1BVYsZ$UQb^OP1}}?0?JqHZR5&#%*>yl;KELyq8Fz!v3C$%HCOH z&x&7KO&_)u+G%=qx0+YS^V1M6oc&!yIDW#*Xs{;5T?o^u@iqpzGJ^y|=vx?@xXlpy z*j<3L%$&44ig7Zj!JtwO$+%4Z{IgkGjQGx`whd~1^pIK#HD9U8A)D<8aj`LKEDxi8?t6th zt#P|aSxjTpw8o*Q{&mzJ9ByhodetL&80Uk- zvs$@Wi*b^C>cCQo$+tC9#V+tYYFl z8CQlvTv~b7=isI$dMox_^df$oIQw-mlqP54w{)9y_MxxD} z-=uw0LJRy1%(E`oA)Za4CBLH&-T-x6Zp{~dj_(`~d~hMWv8(>s%y&9*{SCkJVD)**SKG37JW9Xyn3+Xz`54xiZ{DAVBJ6(mh2{bixdI4Sd7po;}+_4ClrH@X1bb*Od#G`@8;J zP9rfaFDSJZD+-y|RcU9j@5yGWu3ygPQl$g#8Qy#e>wB4voCvxe(lNZXBR{qCt+1@K zT_4C|chfra?xzGevJ)7Co$dv~o_kHEaU)Z$rb69I5AFA1DXM_JU&2-Bpvr9atErfi zRTFJ733j?J{p-_;UBG~*VtD@EfH}Oj{s$1#xcy^qn)LXcPqwRD^MA5F6w3QTTIa0G z`!>zFUW}07uJ3vQ_ZU5218Anv&n|s-6F2QXYb=hh5Qo0Tt1;B}6_oj_#V*RN&m7H9 zSbG{bddE)Rx5P{uwLT#X{pI$pU9P!(*C#vjP`&AWj4Tzsu&y9!&h6gDu;7PJZ%`#8 zkJ+yZCTs7bFBZAlv%I!g_RD*-O-Hjs?)#6iWH6_b8EZ;8ui=gu$BLEHUK*ci7q>lf zYGBdIxr{j77_Zwf^Ve?Npz}8-lRs>-+bbrJ$MoNIK)ZR}{QGyTg8UwWB0FE-Ab8P|$eA2B~p5&Xe zm2P^+XA?vI^cQm4vb%VaD#o3|=QPYdEH7yQK!>X7g~@c?H#$FzKD=c*|H~OJ{l=_X zuD$xP_ZLcVzHzUzH=g3aM`lNJax$!iX??<4&-lY&+FW9QJ4-*XW^mrC6WJEE-6b1v z))}{v5;^PkGr~PtH_@iGypcb}Vc_ttPkI#dc$hc7muJz{zp5M;Me4y9-t_i-R$cFK*iT1Et~J;8dp@4< z#{JLraR!RdPmLRsb;5!?AL=QJ_r(GR=X-G3!)rVn_#2Z68^bc=hed^$$NJTJF&tmM zKYlZ(vQLGp9_2!6)blNfC3zO{}&DWdz`jh@$ zBO-wf>kw~#UM#u%vM%;4KVR%5v!}>c&zIE1naAn<*|OQ(FEp@v&+2utjC|7=sChM$ z+f6n%$X*=4VMEE`IDo_#7g*gJ?_6Eud>E|aJ-3R?L%ncCE6%I!I>lGNIp8zbBX;Ca zO5{b|S`!mi>%u``wL`Aq%oxs&?>-!FLa&$72)$Uhf4!U+!&JM^J&wwKcyW1`m$Bx& zA1y~;UVz>hlT$w%^M3O70ynin&md128ee}>*WSaO-+X;3np3lJI)^alUz9N0yC<)7 z5ts#|Ery%d%fI>v_VA_$DLdEig*$)eDY~BsOF#`zqYrq`?_^*-6MV16X0~&=&xWQC zVlVrF;nC-`iHy(cla0Ku>B8@EUwXYUMDn-ZV0bhUQ4ojZ>Lh1znuMEsn$?#`9d`B} z+Mb~p*(-{EFTN!C&3F3aT@AGddG|CYzb{EGZ>fw&P_7jQb_I?rXatAfwXS9(T)%&T zgP$raz^zaC=Tp$dcK`6-yEquPCYfw1T;RPFF!_w`f_L(V#xpWE5x@4xZr&+M3#KBj zE!+LHa1qOQBwq1vgJ!2Fukeqw8ch72H;|I|Eps16w~1F!G3E~W12K9ta;A;t zn)vnReKq&67y@1&Z?&x@kIB9_>{0o}0wg9&%YH{I3e(AV@;oikFk9FR*Zsx;sCfAn zm9hbV1mS*L4Gg!djyIuZzWMO0$=r+|lzU^d#)y@E6MOx_eQ~DT&-t_30-#ctIGz2n zsZlxBibqb1_0Ih0Z#tMCIIzw9HxI2xLOkj9z&F1(fB$T9@|+I!0!U>RTC)ML-PDbT*SoVq~O=X4mjcc>5X#<`GdHy4ZBOWfI3uM*tKGhXhv znS9vtSsxJmo9oBF;vh|5z|&hl9*%ik-f!*zyY+QJxF6T6hfbaqXZ*!9XBdX(1*!wa zo%Nf$kzH@`sO%{BjnZ|#>l?!<%}q$zrJK*NTOLW*Uk6h0XYXdJV@|)D2%;6I>7+TX z#u{!awri(f+v?CJJZx_cv$%0O>GXC(7LfM(^1i*`?a%p5t8Q!WwD_K4)DUg{JH9dS z2C{u=SG@AM>lUky*YoK*aD{tuZytriX8!+FmvDyl)Hrez z$cMHbMd|~`%SnGUPVRLexWX>ko!g^zlU^MNix)1x^YJg3wCOzaJ;1{pH+v;s_^`#- zHR~7}>onJ&{`+Nfb0VyZZ38tnkUDF|YdM4=7Ht-#^AEYtr|X^i(9KBnUfmODP1hMV z4v>g8zYmkgo-PPoTk(XYer)N2s9%!--R8=DI1I@h&CbMc4uSl9A@t@T%OUe6e1~|S zfaZJNdc<0cU8m!vHJi1gB732~H5;ZFYm7i2)GyfONvU;+y_r~!;@vNAj@LJGa9K;K z`3N)N1QY&C9!My+93166K?y$D)3xSbylf3x+}8WXY6EpF=+;`FS%%J=8}^)=YwH_W zzKn92zjMsBXHV7HZg+#-Qu~5fH=fmaZ%n$!%;oOORP@_x z`QCgI<8lkXi#M%MU&hnRSuVnKnss$2=%f3o4hMhf<9c&phUT_$7j6pU>b~)!$bUM( z6Zs-Rk>A`Yj`!i=3$AvDB*uQy)mq0g>t1-Z?fNN5??3T{V6{8<99!TG2Zup0!Qzf!?UNne%IsW(HICm`S*=lb18kcdlx2;S*V^l zqoYlI?-w*DVN{*@?`k!@+Vz3!nTs;ZvG^<38*TFeN4~?^VK42Pc%5R!0kFJ{iRKVz z8Kwov{V=9vg7khq&Zie^vNPfFv&EyK-T2Y<_>#XIqN^Q#vj>& z>Ll1{cAri*enk@wz$x0Jhi^<1Aw3(m!B5wFw$v}q8D?>Qd$nc+Tf)EVQ3#^pFXJ<`J*foDwEBxGN8KvhA8mm6vLs0%*bHEuWc&`?D6HOM7nX=~GFn@`iZWuR@(qyij9eiVc4E5Rz#b#5? zS!mb4hT61$9b(7QoUf! zRE>XQJ?lQhRWH8zA4YRzw%=8cwEw3N9;^ytFoNA&nE;jIE`Bh*tR(PHUH!k#9Qqt; zV6HXRZy0P9V71YA>Tq5%nGNG2t|!bDOQt5KCC2ywG^eR(jCnLs75@uxj7Nm8A}RDB zp0gMU3Os52c3vPDSvs%Zg?vr&w{C!0>M!9P}0 z&wnnE92N}D7gq%?mTw?9DsZ;q>YuGfH0Jm%I{oq|oFyt?wtmCtR$?#;n z8llNZaENctlh`Cme)63`)SrEC=$}1ESgF_Ip79Z%obL3D*!wOOYGp9H-V|Ri?Orxq zM~qD|;5v4`?f*qJA&CX9y?%LLT!lFM9A^o4?ftNjX5+11fO4Pk29@O1agCCj!P5l; z&ZD}2dCtH9OpYx-t=xD1#TQT=tMfiCfPqzRJFhSM#<63}ELFBQ;QxoJGtqJ+$&uvin*IOp-PxI{UJ+54Gus)Yo8eF>V23*y%t*WX%0+CB z-!~`SuaFu$e8#Mt#yk5h_D06OweTl5W5_)bS~;ZHxphd>bMv|)VS-I>&b7UGj$fDX zYC+o=EXWw9gQH(JQqEz9JE{^moDB;HbIK2p`9~sOZK|iH+J!BW_0dn{2A%e#Rhv#@ zxk8nGaP)XZD$aZnG*02BYoN@L7-Ts76W9dTh zr+Nvh^<*!<>Rx0u`eDMc4{!A0hYOGP9=pMyfqe5Vaf0edjQ7p9WwVNzM&J#})n6*& z%4%@HZ3hvo1r>)+WZs9TTmQz? z$_RceAW1zu{$}kgLv!1jZgyfqCB?)(Zf&IVS}62%hpo?~dAu7il^89D%QZY<^;gdd zK3DM;(@_km*ofCh>3-?qt2SF-a{oR1Lc@vyKWcLuds)-BF8%VvT7$7`k+G>Mvi2+F z7Pb2tuvUcvMzU%`Ol~f&)(BwocMd03Re)aT5tqqr&rE#15ys9%h95;}1j10(O8Gnt zAV-0_sWuc{*UZQW1A;b1q3+r`LAK~tv+AILbQwk+t;6!&u^ky;iS%vy+yTT@2R9 z+KnSI;#=|O8V`h;Ye#=cIVN(!TOJ*9;AyV(<>Al!fWzymhpDueR|MM=%DjBUwJAv( zoYP5EnTI~s#xq(~=XCQ7kKSV_w{F90?4vBsjeD4Z12@~?#hl}XAuIAtC#JQwb59Xt zhwyz{aT4+YzP*)s>Au(4y}IFKn3kF`Jr1nAt0n?sRt^K=kV*W+t^#vatyUKwj#*FC z@^HUX7kL_w4}MkQ$=&BryO)ULp-*^mCll6g_tfZ`n__9$%i|fLQ+;7D6#fjZ`Ip)s6h9p0cTwm=o)+Ia6w9CV0FdKtGE|xYDbWi*^&`hk% zqcNAy)lWjj8E)%AGxeNz|LdHgW8J$>)9%=Qslt@aMyMP))eL9v0K@F!g$}Im+qXFo z&0NFbq%)o7*qY&`NM{(0w{B*RJs58v+&(fQR!ej3!oH$7DrRbWd(XD{*}Ao?;CIjU ze6e*LL=r0w_v#(8x?&hk|7wy$fzu&%%++eWD~WjQS&k37rY7fxCQy*p(Pj0nwswYB zN=0`Z$f&&*ysj1FAXNJwXJfR>4Wcz-KzTba{TB(X6RebV?GT_3VWZxhFzN0mYZ2ASKt%L=Y^SjQM>}kcYwoW%=2PR=Uazl-Q7*@~wF}wTBX@R9?Ed|J! zKrgm^P*yPX01qHr=Ytqse+&VJ6y#IwbQe@JF*vfd0Z#YOiqX&SjZa|nv#G5uSx&J7?foWqKd?8P`;2O zHFfSObgsJ=o&SCrEuzofHR_SrKHhvfb^AaBN(|Bt~idsy9(%^Ee*(8*#8A@fkBX{*{hpr)(r-&A?vq9x4F?t<5`TK zv)q)$7$+(3rU(h`Z-Q!d8{K~Mwu*s784R`vm$IP5*}x13J9&GsNtydwux@~j3LM3= zuJ+rr$bY}RVK@RR)a*@C?wurF7RUsACR}nb*hODMVr0)v1aWM3nCoi@6~wF4;U;@Z z&v3#d&UE+TGI_12@P(TYfo)4)8#(ssS|8xF5S^geT6=02AKS!W;N5`Y$jh5ei$M>Y zh*(V99LZ?=uN=)_c&8SRM`QQq9zNX&1Yr6J~ z0Peyxmi~;5i<3`%#cjXA#v`3Ew9A{E7%<(VgvON2y7w5(?o5u;fE*RKh@8M~GN1G0|?pdyfKJ2U} zw9UmF`&37Rj8<3iP#OQ*3iZzhI|rRZo-@>#A5I$i`1S!!04r@?b}f}M3b?%wX)KI$ zeq~&dgxf)`*q5eADL9AixxjR-szR}M^5&)d1Ez)Tcw<5>G;`0@rbG9C|DTYyuWl?( zs}c;y>i%V5Xv5qHqVHxYa-@jVxryhG9~}g~vF%$NnZ9a*C4@Y+sZN+X4~$OV^KQ^} zbbOsh)4ltH)fpi;+I#d(cfqyiRp{X53xIo-_hjuM^gQISHEJC;mn0usIf^A_{<(yy zjd423p}6L zg3VR*i8Q4lOc=HVeVm*#_u-!S&dJ5HdWGf{dpjO*X>MV(`7v>?n7PJWg3iJGRj?LT z6FjaSs1eI+wYSxnnUwLgQzxHEPNv}Lt>iHK+f{L&P88#N-u1T;mdZE3jA<#_JMfjs zK3&(zHZtat%{My6-hDN`w0(5%>{(s~H#%J=1s4TAyn4J}Mv{VLQX z^>`6f!t2ZJ-QycKo)m0zsfvb~xpEzi<26(myWqY2f9KqIaipDlVruWpacLpZWuQgw z6@B}QlmCtS); zys&5IwClrJVSC?U4M8~%xahF%uLeY3*taj)|Xt%Ts&x@Kk4$hwF-OKt5hBrUzJKMF- zQ-N)d?kkno@x^PJXAiSf1E)7GD_FW%R$%PVYrFL`9(nTevh8yV4c}2w7U9owX{Pn;YQ8*PaGHZ2`*Y^noq-`y~=W_l!4}t($EQ z|IFoY$gO6(Y4ub8_9ZDqBL{rtVl1A`Sww?B;SFV(SZR z1zib6Y|`=S^Qm$#F@d1Xu&c({vcUBlP*a&C6iFC%J-zfCz*jL3xV{oBG^LU0cz z+g`{`hRmHzj6?V1MhAyDAV!hSyyHy8-_d-fP|XJxxu|Wfy@KO}2e;i$WlxX*@0zd# zk~iNNBV%hOC11yNHClZA2PG#5D!gROW#dl*UEQs*KLvtcP0#V$n%^9A z9cbqr2>JqpUQPxi*5xPl)nm9~S_`>h(o_G|gnDso^<31bbS$s6$ zI6By__KUfE)QhYCBnxB>TWilh!{KF_lLRz?if4&ph%&K64FoU|6szU8824G?d3uFeX+`&az__22*R z{R$ojNs1W}+G{-64MHPeC=Y`f5(gd4*A?WXQsf@i-H$Q8%`*Al6INa2bkCosaLu$Pk z%RZ_yyanJ`_ia($VCJo>X2flrsF!a-;@yNoFM0Fx#5V=~;C#6(x;i5Zw14?S&l)k` z+xYaqd9Phwh?;lkTDyf12Mgjh+_Vwn;M(#{x1bz?Y=T`!?p(OZ&71@*jx_CC^XFIN zbCV1QFJd#<{+t7%{>Sm+V!ttzD)p+S%5G{{kGIab*zXsLT!bSnr^EI1_<$4U$LDO2 zFALa6&N)$joQ=!V4=mpLU#86KKd~9pZ%zJ*UpshSIOr=9Bljrq5;x_ix1Mwy4e539 zr0tSzSn`{#`$T)NgfQNi)1+%E`c7~CCk!_ZjHX7#Sq{y+`r6hQCicyHoVUjC%hj0R zIG4TginXfk;wb63ci!A_+%)4*_2n}f3mFzlY>5giR>pv9W2@dcn8?AKXZzo-D3v97 zDT{&(v(^hZtD8c8s=wYRpEdPPNzdFheSOaM?J8qlo2>)X{xv!((HS{&OWUEi8~bpr z-^~bY8^4+Thre?&IxjG1<0~vgZMx*`HZHzz_NAiXi>>Ufw_`6KsRcmCq!FK+6}6>Qh*pW*NJd$enz&Xt#7WXCla|dpV3XY-QC{-wXVsbUtXsN#y4z~e%DRf z;^HdjFJH#i$Q>!I)oS_XY@Ds1xEvetfX1W2IDY6izMM7LOZi+Prg8MeGuQe0fsp1? z-sHG?7`tf=xnB*iajz6lcEK>NoU5Xnk%Ob6gGk!wa4|jqhYZcryXLw+;N#rL1#KL^ zAcsHV`TD+PaSdvA<2C^7sMK)HX6lXxBa8b5y}^4QV6 z0nKci*v7y@4m^JI@iEk!Sy?@G)cC-}FJ{rop?RdMHr3e<>+{AFQt1bI}^zJFQOZT{ab5$dFSN?R*lGoA<8E zV|jnWsLlYyA2%HVz55sMA^eu?Uv7lbG(yg{@YSy*cO3{txU<_1xY%usYVz6!`fnqpwIm z=c``N_Cg_YI0(T7|T+(<{Tr*SsV6sv?#<4VRAa%`-odxU6x8Zu;4uDd!2^d z#UdX)hD%E*xHb>2F4YK|EHQlb?w1zO-1e^=yz&62dK19#jO+HKt$poEbkwjhsAN2Q z!n&YFbd5PC-dUN=@*AR=s8zbQ^=r&t`Ly`nc#Y%Mz*Xk%hZ+>)n~e7g0ZQ;4wwXNe ztmX`&;}UN_lyow;$5+iUtro^a2Iel$5nL|HS9tshDEW%|cp{RAp>Hfak3XjP`sJaf z7B<;}vkFN~A-=v`+bY^F`-iPZ_+n65d02mP%1xeho6pwT+Va?+=+u72{_2WT(7bf! z)p6XcI&2m1m{BoWch=2)3|O3y<9}GXv~I||YpQjR?~Q>)9-YuvlfwaQa~DvV^z_S##&b~QpL&&hG~IlR)=`N+f7Ey3n@+aHGTTVM-E0wD}_M zo2Ze}4lREEz3exB)uJnkK~-{!x_OxaGVJ?Mr>=5j9RJ)6TlShY_T#6oJUza1@#Vot zp^|I-tBLzdN$1nrtghBTu;D7-g=cFb1k}5MKqm(e?Xz8+M9z>4;fD*=2H$Zl)8!s* zS*xTZk_9imVoci}^KnxHl?ZXgvAGzq` zDI%|i^L41x%}i6F!zeDD?G@M`);wqDYp(DgH&|TFT)lFNLt_mejkFZkIAD4%|IX4h z0&>U0v3B<5rvr`L73k^SFnhbP@NBN~75}U2JXW_rFqAB92LJ76_KPpNA?$m1Q=F|u zIdpWkHuU5MUD;GCU7|0Vp^TxBzNd>)wDYZvPJAnqr}jMLvAu6q(bj8gmJoP(x(DQ8 zP>-(soEB6;4>8TTJwqK*V|YB%#*P7vM;etkj*sKV3*GS%%1x`e;259~b2y8UjhJ3* z;QI8^u1=bX&AIibEk_t&zV%-y z_>aP?(Mlt#$D);^NfsZOWYrq>8lK%h{g!@n3>#TqNRe-T>#vjX4^yBQ3w87Q86me8 zJ|*||knF7~zQ*uAOr21S!U9KAPy0qR9u4G<_HtFFaxwNs=}eQ&rC)x;P4|cAdA=`x z{)1U%jfFZ6$G;B_>F!?$I(M+;8t`J$(~@XowS?90C>&+d&2^!Cuj&=z>y!4s_=QA! zMDp>=-zHDTzBqy5u8^mgw1D%~I)la7Hv~$E9}aSDeKEJzX8TL1ql3TGrujV6=7N#i zpBCxxjOC00p8#gDI1O<*YaZP;X9Hu*hg1r+kEFC!kW1qvj`qHp*Cc#R@UfOB>rcNa zwhsDecr{pXx`&H)JnHX5ZL=;{W%}ygtFu-pylFO?adbsf9}_wk#rkO5zUQ^eNg!90 zEkQt}s3w>?j*oUC?yw%?yMC3`={w4zHR`-9Uthozqi?zz*9YSGE9X&+g`?+T?icyE zCf6?ubgF%G&si?kLhXgL8DpbAsP_&2EB0ztO>oT!FaVdkc*9->Yb$%TSZo7dZ8l)& zBg%Y$nLL#UZBv5QNBIPt7{zKsr0VdDbw6yZTobyrXI-MYilhUzTL!7H>B;^ z+JQ?fubE#B2`tB`C#Nmv$CSz7d>Fc1UAso+#rclE>qfm8-czWXzb4|7AG~}|-@j^? zBo>Wc-i$}7~Kmwat>a#z?fqnxXG(Xi|2S4 zD3jGu6!TDIg|4xAg?wuoF+7cH?fuc9@iV!8A?^AxGUJR$#KLGShm;w>i8>-vp}XuEbjtl#a*2CI&)tAX|KD6<6(`l`SaeSn&b2+`QfPdmVNN=Sf~qu zS0^n18$*P*CY-+lR9~BMlZr7Fcu&C@Ne^PYdyK|b7034J)j~TQd3p_zezh9_06+jq zL_t&;R%==WRd911d9()1jqZk&$Q45@{q66(3S&zyYX`9$9daZ zKA2Lvd=4VncbRfF)44Axx)!h^61Z=bAafMP!P#UC%Y@?*Q(MzQXV1%P7`s8#%D)H5 z(;|KejB{{R9vvK9SfUP*JPcrdC(&M;{W9GE3!_c`VwlTmr1L_y?ChZTNLQipDTlI| z0?rQCE0rL_>NN;c>|%0waYPnpp`f>kM(0Qr9;B;W6U-YQYrlUkuV$N)_-#EpF=%4> zP5;Ve0=AK%+zkmJ-Q+xikIO5*3*Cpl zdjUxpbCZt%v>EqSg&UXs$mIl+ix19Lf&`|EDL7ggDku^yqU>|=$eD&+m6N6W*p_r=$Mm6 z+VQX+o_q5+aTF$BZCjRENT=g;j zE&_bet}H}YmKA-^R{_-B04u@vGU@EN^iSHEILfQoh=z!WF+i?NZoYI_2P4QADUDs~ zsft3Ma9*a^B-F0aS0FHYqC;J&(C+ctzWLIir$SbIISPJ#_j|ijHZS`nr1kUA7kuYb z*KI`Jti%@+&BW`^8(Bgf;^o<{apb-Fno-EucowT~itFm38Gg;K!zqSi#Z$=c8)*3F zL*ktQxGgHVZSA()urFSoU}($X4P<-2v5-|>ZCWIm^wOTqbw*O{=bF$fRo4?L|6y!F z>^BnRX3h!$HsfjzUwx|&F*8@-vq3a0WgQ03krR6<3mo`aIR)KA=6)i^^GUky81bfR6%8V)7Ctx zSo96qj0Rty?sE>W3OVoU4`=xyqXy2M#wU>BweKj$u(-wn`)@ls8&p1ak!^Hn^M^K5 zVXu4!$mPh>vvoFqdrcFX;`D7rq{%y(p>`g$zgTp0UsOvPmkofuA7`A*s4+7}TFx|D zYYL2CeaO`y;IvFEnBB(PQx%^q+<{eZ`y}XmebUb0z8okgdZg4@*uAk9Zn(|rS2ygo z{-)Dr*JRF)@lC&c3kjxYf%P??3PW^*${mCK`7{|hP8xsd)QBtgGW1@;l6oJML|lDz zyI}h;dN^XGXMTtsHvv%hWfA%DH17^J+2S3fvdW)lri-OK#dw&@BI0em(67IBCXPqz z-|&tNMpjaouH`eC&bDJL$m#8dZJrI90D)lSn(!)#il^xuGvwQwcI_A>>W;?W7ZJs^*IHs!sfAR^(+utqz)U#L&NB!3 ztisqfZp&Sr-R4$#Xv~3s4{@9aBo_7uiq@;d&;Axt@fY22=N`1$yU_a*h+sKjMmX>HqWP|Vvs z;e$+Ip1gL})^+>kH;38gu4UGrjS)J8G8X5(7tzk5ZSKtm{1IL^AMIA}&T5pKf_uDs zgS?cJpZ8sc3HMKI$cxP}3)|K~Oy-h3e8pNkwF+myFEe4Q%-2&c3|{4DZyak8FMY4h z8=Z)r@UeI~t3u%%z)W5poa{fG>LUh^T`Q*1_pOz&M6N75@(ZJ0F&0a%K9N@+;~Vg} z2EBp0C{b$K%9C-cy@bFpj#B*Nfp4`Qq7KfdNORu-S^iCQZ1V%M_~$!B!pOj&#-K%LaT+Pb zEqAe90SI1=SOC>bQx9#whWsB(Ym;X+M8jFz&3IdJ?t^c~%RLN(YCz9F2Z?|8)JAB{ zwsV2td|#YuDzNDOgux4qSGQ@coVBqhO?rOjf&uNGfj95Vxh z-F4a^wv9E18Vv)!8$*>wAWxUJd>l6q9EY8A5VpFGbv@E(?5dCPsatuRMvmsV&)H~W z(mWAOFeAj1x=UC7%E5Qs-fDOLjp>VzS^lnjT`sEM+~jEZ94i|FejB9|Dig5H^X=jA zFg_3Wtlr6M%cPUP`PatUxuDbEjSFJht$|FyZ%~P04)}Wrwa?)gjSJ-c^Y$61 ztqh~?nIlk73)X~ltUV;>L+rg2rU5Z1E@m^%yiTAe2mKT_wON7_IawiMY)!?vjzyg{ zx)M~!QIZTMvhM*|ABA<3Q&-236xWmp&;%EshJ94|>1g~GIXSx=`UQg0>V$pVz|}Ck z6;_<^GgJ{M`1&l4Gv^nNSYd6@eWMb0UXA%XtodS%pE=3PS!j-6f5xGze%lgCX`*n~8^fqqTzdC5f zGj%vO*Jy9shdqH;QP0NK->0?R9PnlW6}*XvvI~ka6l%+hJ@c~Rsj;scYIce}vKJEv zZT~hP7>XodjK-ggRP|?_P#McNLgp!N8px=pi2C`fZsX^Vj(HSx5!LBwh}oA1269k7 zKym3|voR5J_Pc>qr;Mk?Du>AiWOhD0u3e1f`Y%6h)_HWYBGk`AyfYELXI8!(hIsBF zN(w|f&Ikm%cGn7PK);$fq+y!#W}pls6z0VvXjO?AZT(^>QCoNyS00Gy^RhGiUA^Wf zd8sH_JvF+BH1+61b-)T$6!i8LaP0LObga4Gurx&4`|#f0E7nt4yY?^!x(eXm?EyCo zZ;frpqeiY^YOw;jC`E2o43^oPlvOc z5A?>>uHuTh&TdlTwVld6sXxo5t%3ZJZ!W%i?EGEp=w3B~El1-&b38Wx6!7$i{CAzQ zgEs~~cT;hC<41tWV&Uy^7S~^LQGv;v9hkn}KJeEjZ@q@E0fvo2B>jcl=8-D@6svLE z5A-dh7$vf3=IK=N&zg2L28%7Eb3vO^(%X@&A{=Wl`@j)3aP9Ynq1|2rN^?Na>HxOu zKt6~fXG2UQ8WO!ndk}$JGg_-_zNW6*n`(WdYDF@NO!p7~R@1|ci+f?UR>+W9R0Ca(sODpx<@4F?=-!kiPEXc)w&Fst3aMkuD0CnfJSzTy?D> zF*dWpyLGG7kkwMWsE8fo;u%VtPQ0Wk=J4A;iDgdJK#Xu!FWKbp$$G?lbrb7uccK~r z^^$BJcEyj+V89GtHfKkxA}Nv=`=f6lH$2!ZsVK>4+yIxezTjDz-0gGdGB+#9A@8$_ zGjR-+4+h=0LHhU0pOEQm7sA==WDcAaH#ZERe5V>>7Ex>~*r?I59w_N5-8vWNJ}{6M zYVqGSMRT!n<h;8f9$->U!Hf4FlN;NL!~$%MW*GjvM?tM`Z2bi1E(Iu zHNWO4B*dWn`G@2tL!+@3`4Z8tJ=GX-w>IF?xBlOL`}l~AukWB`QEdu<{QQB$#%C5- z85kudzSyrEiiA_l(fd>c#@~UhdDD^Z>MhphhU41d_%hzU=bZ1xDMtew=IpI8RkAo3 z_$nFacz<<4Ho648F}5Q8QW={@^)R)YnThDPeEU!sWvlOE3mRtq)#A^(G%oHV#x6cu z^2E|G`1*SDgPPPzq5a##$ipC!lFMt0p)m(J*!%zxj0WNG+DW8gX8ubzvMs0ErDx_nY&vnNk&Fx^YWcoP7rQ zMpIksTBza_(}XyDEs}bk)kfnt ziHl=ZdU#8My84T$)`ajJ?P;9f7oy_dc9W%75lm5s!sxl!d4%wp_bqR%<9Mfk#k4hDfE zN}F>Z)EP-T14~o)+V3?K>u4%C`E`!;?1cSf{&X0pq zO%Y{h6x-z8qM}`{EhL@wF~7Afa9cU}9Tr@Fv3XjHQ`}h4%U6SGy1_;0W4;2MpNn1l z>$(`$onRj(+9p0HFJ|K=);$mVA^q3#4Zp4pGXoJDZLPwu zz6jL8eZ`!kaPLo0DYrg-n5AzR`iVPx|GB-KrTZ>i|KjUhT3ZwG`ZBuqNImw?1J$qZ zny56+W7^ZO*2%es zjcd2xejb+h`>H*xh`-1xR9y7O@Xbqol)#}lkH1p<92R-oZe4-Vhwxx;UIq{+^$RN& za{aXP)h>r~)W=D&qZPSC*|}aVpTYZ6Kr~at2d)bu1mdBYVIjPDE+R@=)K2?cj3pE} zo#bo25^(eIM?$nKuh!_6yXPU#W?0s;Un=T10K5cpE#WUen$PZ4Bo3HW_8pw^c!z!|7)K*tULA7Ec6CBd1M0|%@Yz;mxOE+he?bcDpAwT>_?^b43%_{I z_rh8~b*sO!&D>qzOrkQx5B&bG3u;DF?B)Y)F>LqGdaap``rf9ld3`4aSAFATgJRYQ za#7(kP(|e-#lD-P8SQFAqx}Zin>Fo;^yOAv#WIrEHfx{3=@#!ZASP`As*|VKC+nYN z3v+8DNPrsy{2Hrpt+5#Vyt^Fi9Fw6L&!3%xgyhRh96NmmcRtq1AN?(3GwC>%gG!Iq z3v#Pv5AxaGh69wBU7q6sz`_%S z+`_9s*jS6Dd1JVkuXdg*Ljb_}n{g>;ZJoetueuz>H2}wQ%GeYam#$fyr|^P>=A06* zEU`CaYMcjo#+}q6_nwMo>qrmdd-A1W;|xl3nARqS4cNH}a&G?HHV8lSPzARC95O3j zw25$L$$P<1EdAcNloP}TX}+`@M6E8y>Cq(6cDWlfDQ5>%{}(kH<2`pHP`HY zaTd5{ozqrV^^oXyO+l&y2IFdjrMQ1_*4zNIvNbA`NtH2A}lX89*(mYm6Az)#b@xp*MzozDh^ zhwArgoyx-(^o@bq#^J)EGi&w#fRpJT_M$2D;adEz)75H`8ecIlzEi*&DHr|iQzj$L zy=bn%#$sZ$%*(&}Pwk&%+!{~SaX}YH`84AW_t|>46?FBEe}T$K1Yku|6KvD>aQO zGpKmCpGihOUI=4pZI}BI+pW=aW}%bY-Dw_e_mB6~ozbIKnDt zor{LU_N>S=*Mit$yDv-VC&pqIfl_R~2Kj~#hoV>KVp(v@CUh9+{n1RB&^&feI-zUJ zR@e5k)37nQTn;ec{`8ZCbK*oi19-0bC1!pIvjMP@vmeKNM|nnVBD z9>@Mfp)sspGAjfIK3#`QM`-AAOMkH4n#Fu(Vw zx}+kUh}nT?M&&feeEbU_>k2meK1{dN#>m6w*7C42#Tcz_u5aGkHimYex}3JEsu@_4 zviAIN=+ACOr}ysYzP#}LqNDF$SyR5;dYS(*UY_D>Bi<~l^F=}qGe6_SOxiUZT6^g7 z0lRHqZc4m)M`kZS>va!3&2_^Lh6N|K{(U}H%{Jz^RKxcFAAwjpg2q}P4DDevxEzrw z<*A(c-v233-Skt(XA9y=rnvGw&S=|{?ORv$n%xlRT~7JaRnKGh_-ZDTP}eJUif+GM zkNJG#<43ZWP3M35a^jD_aE97}F<*!l!#O78$MDZb19b{%H&_4rfBFt75{~pJFmPklZDNMersEBPy{UH7Sb*7N z8t~poUB8otJX;W)!KZ_NpaG&Ls;aol{j(AQ^~cP$e;Ow zXdj%Muyv8Th6EPPDb%+b!S^`&ZN?7p_fL;99ae@8lr^e;_@UR{3%1Kk^D_1#OGh5^ zPo|H)SD$WHu-FIi3N0Pe9CN>+?>{%!UKE4a?86i!{XJmgsp6%JeDBt^=je28x<_GR ze7v4iXE@2b@n0CN4;O!a5cjhBIcuhO9(d!mo0WZ8a1&O0ruwUSlRz#tkkh{Ugr9iz zD#_v%_2Q4j+iZ((EgLlJ`+KAJ-Vj{L;;#J)vUA8l{>BHcCg)u7TmKG#^=7Qy%sL!* z7K9-^^j(qa6~SEk#cwvt=iL-kk2o7=HFY|=A#5H9sw2e!+qiD)d$W9eQf!vB85q5npor0XscgxbsV;Ja{iw&U^(;7b(n{3TF9S6@=t}6VJIRC^$(PAYm8*B?jP9X@ zeftaU5U;pJ|ZhBspE@Aet<-$kJ4CP(fl#f(RWq)Qz05QEKR z`y;yMkv6IhPd~=mt`|4s>9gb3A{}chM^77pjhwv-VLUd(#?U$H&)JTj_8Yly&^K2# zbn?BJ*WQ>~gR3)ktf)AMu0?R(SZn24 z#7CXAN%CQ=Xj)=-xX#zE=Z>8k>&as`OJ`KE(HU4#q-k?JE`vm=0Dbe+VFlM;#+Zw) za_9qwYs+Q(q+I`~xTW*n4&NK4)=eeV7r@x@l3)EKYNd0BGO_o;R8H_JM>N&0Vq#Y^ zTf^lz{={w_=F6V%z25c1ZRdfT#U{S)Qxb#^_NL02*$ z<=K}Q9CI9?L5@KvGF@U~rZfu_t-`w0kGyw3`de*W1bDv(#&j=fTikq)>wPKkCfM8D^?HgtiFR<{d2Fk)vW<1Ua z)^3#;SYbG&O*ySe-wly(4UMbL`NxhEc}t7q~pd)z37}L|p$Yi)%Y%`D#UfJZ9*Aoo_MlHy*0e z(Oe*XtPjJsHJZiJq}e^53)pPleZ%9~8I^}rJaVTaphEXu-WJxVU9mZ4^TT>M`IDn0Gl#;i1Aa*#MonsnoPsKjt z2zE{I_spN41)~40y|djqLgl{9dwW0dRMq{t6Nh~I^Dmpg5&&dlW|587Saso%ERs&n ziml5y6S;BAK_84v8fo%BMCYDvHZ%uXJoW7xaTVu5zVvE-oI~a8w3X||OQB;P zd5vt-S)Hpue!}MOi>)}@r0x3TY!0qJ=Xf@#Rvlh-QBQ$f%kIfl>#h-_d4Bn0Qy4Uy zi`QA4iEQ*|U0P=+Z~U~-|Dx0VkC9UC+=bM4O`=}y73%QaK10Wt9`dH$XNF!c-G`vI z@%Y&}=k#CQiC;Zen{4xWpv!Uet&yAvc{Qy7nrh&oT%`+E(pd3G6jhCQvWo5+=@%t>4W|!p0NdBc@-HF-t$=HHgGac&wM&ous@Ub63 z%#7y}+ z2`N#_Hx5WuAoK%U0}7F#(Oi7t)hTj#D!;DUqI(Oa66K#*G#yEa;@Z3cOSTO5pO>D^ zOaKs*XIXOYKQEDlHw8RsWg|q3>K4K5onV%Oo=`pA95>{;=B$z@ueTs4HkbELHPQjF zdcngw(Q&M*f|RbHE===`n;~*?;?XFULJ#=exJla>rq&I!&gkqLp-rbVa^mb43>q~% zH0DW6@hEUTVtHQj>}BYqf{mnXXG`E>AlbbNmfC2>(>zvxZAP~63_lb zl7eE*=IO&+VyBJ(?O__@)Z;;M;^V4xhv8T~^m}p59XYvg{%WNDVbY)J=HGE|&`7!) znkAa3t*08`AB@gm+p$h{r&CfTj0L}qA8p3FkeSiq#|wrZOgL3;bi$WZ^H(=?32Do} z6empMi%iT<@y3h>pi$<<`bfvVV>R9wl%pTJ5M$wJbm-&_XUdIsj^*m#TQ(;r?q&b_hGxa-&^Up8-FHD-Fw zwN>Q25XNzeaf?$(U$&2^V85eY_W#v8T^i=gsXESMc<{4MD!X=I<5>Ar>Y=MSzO0|3 z|IGG$0~f=3x)*rHZ`TI#l=}oHZrC937o6>d=!McoTg$dKqhNjHgslJmPM;Hvi%zJC zDQ3TPP!xuJ8htv0%-Hnv2iLPTF<|>_VFafixblTJhNe!S_|6E2Q2v8$Jek&>T!eHP5R_!vezbUN*F*3NYq zhpj7lI3`=jo;4PND)B9ud~Ku9J#f}f`%isd9v|~kMqS+>$`OHe6DTbD;dr*uHJUai zzIt^D<9ra;4~wxYKd&v{x_G{>>E(1_x`sGpGP2O%8q3h0yH9iM5Tqv1#zOuM_SxSq zC12;`y4cY58*cpxV~k@c&~r2v?dAo>)~quF+W6oiWHde6XOr3$#C#3| zh#UEx^{?nN9RneIgAOyuoZA5;5#G77LqD7%#*gez~Uu=XWnBf1~Y{c}(M=UkYJ| zukFowV^H0AXm5<~Jrf9*2GSREEc&o12lI6-d1aioSI7e;{JcJ#=S`)_B_om_42DP` zum9%r?$0;0zxCbNz+L;|=o3NWzc>RExcv25X^6YzsrAkM0c9u5>bEh`Gz7?-reCBp zr`8YstsOPy&TC}tE7H^UuzEwTIGy70w$4?7b2#e7$~Wtg}c9Q`H>9j(8b zq#KHm!jEHCU2liO{1+E-_Y|pl5!h!R4q5>FzUMK20hgcS+WR~S#(}IiXlTsc>|7Ug zWq5fib=;iM!^6f95!KE#wbIQfmkavQ(uTbzeC>=e4u!I*?;V8|O(7j|8%z4echAvX zz4rme(?%A3NQ03y`WG;1oj>k}+Gxqs{at_B-LGh`JdU&_-eE3i&MmP#(EUuFtqzWn z)v!6k#ZZ7K$Gu-N9v07x*6QVYiX5DF{Wt!24Bu){1pGsQ$a1-HQ7-Ti-2b}+rnQ`6 zv3m6dV{G3BF8H7>naE^~2js8H#G-;L4m!Uk%rvX6tI#bK^(o@_2S9LuUI*g3;V zeck)M<=JB`2fw^I_wV?nk9{U*tb7Az6Q(SvrpzE7KcDiedD#q z6_`$O-fE;{pLn~zq(lG`P5l~I1HpY+>%$y&dSSO(57)Lu=oj;<^#i+cp;<7Y3R;x( zni<)-++kJWEO&Fj7?u9r6NzDkU8WTThDve8CE{Swj!m2NyGQ7ld5q(aois#_HJN%3?V zbRVJ4LBp{3eM`RBl|cXx?+b16G)JL4-r4r_aMST@V?w{JMwxt3np=yDlX0E(eg@Oj z>SeZGx1#-n#Nq8kU6(hu`_~TdK1nkANM>VHB*RO?_wVUCYYLdGzZS3`CFTWOA1&571X* z8DsWAwi^+#+e47$RgLFw#jNqj?BZd5Stc(E7|ND1K!aIVvPKzh5t9e%7{&jQR7^;ia8!frew^odwy84i8 z8eNS2(-v^_g^Kw#- z#S`3qd8zhcMIF6`whaWMF(0Y$#2tG(RVRMRDnQuyfGZ7|J`nr4g+-2D;;e@n!1C+ze^j%@Mm zn8AeAg@xHSoaO2hK=U%wwlSSm5W9VyzVX@<&!_xU_T%`#-8ccve>^adu$Y`LS*H%Vc9u_2QA$<}=)_Qt!t8c9A(icH?$~;0;ZqCNuC(LmLonvF|m=0HO?IgK> zV%lC)Tr*Vf;j298BTmLk@D=X#m^ANn(N-7FG`vr=?s|{6*cs?l?k1&=&r<3vQ}GRm z=RPId05mpg)xU#wav*&}<+rLjlw(=l8_}e#O>;8f2+tf05B0pRZStm|%(d+@2REx3+H0O!d!SL zTdrWCYo8TYa=Z~XO6yNM+q^D)y&Ws19G)7KjaGH44CIY2Rdmb=+l#yS@C_8S;D-7* zOVUUk#qTK;VZ-@Xi!mKWxa?>XA%)e|Fb?lJVk zeCUJR^>wD@TNT?|ZdJ*FJ-?_fcw-s5)_XA^{PSJ=JrseNt6NSQ=&p)Mv=2pS zZx)^JYN?%q=3@7kt8)OYhw-B*3yN{~Vg+ApksTNDoyX3z=DYrokhc0!y?}8xKaO6+ zzwuI}S^0Yw(73eA)H$=tMA0y3cIq&d<)RMzy?@piEM>li ze59OPUkovxPB*W_5=U!Id+S6mZ{!N!7fLqX3RnH&XRF!#zY-z;^Dv+MU5^edz)))e1?=Uy}#Bsj)>`M*t2{6k_aQf!FZWciMo(K#Z zoLD@i%|o@OPv0*X==!-pdzgOc&G})y`Z^!v-JE$4#t_fLGf(5#=x^euA6C91gHcWO z(Kdg_pbF04Skz9t=DcI6HD~3z7^l@%$9UG;Cptqa=h^tuaGd&+dl_it&;1g(*v1%p zaUDsI<=3ogUr^Jv4(#HGjkJY~?Dh=DMhe1I!|d=yFYuBs-rPgf{Vn18$G!uV@50X9RazeXtI9u%UC*)W$rs8SGi*t(!Q$K+m zMhRI~vN?PdH&L2b0?4TMkXH2`Cl!1gX9RDf)S$7}Pcnm-r>e!L;jFo0Yk3OcSPz^dnmDdPwIoF z%;agl&5Kjv=N z5)~ERvkvA>dmsvVf*dg;SY^o%{9pg~fBskYv&($6Ty#!Y(K-p_VDjc^90cJ9^8IG* zkpRQvQp?|e{<0feF;k|Ogl{gFm~yBsB)~BcibFr+N?HK$l3SUUUuo_l^Auop0U zdFjib2sFY*S+jrp_3 z#R~WnSMEtTR-hWW`zBla;}Lct}8}Y#|gt#OWVn{*{&m&Ft0)a=*W+l zo`-Y|m9yWueK;TAU;A6MbMO2*O+Jv`SP5+0as`OXdvnTp=8c(~>}n~Rn}fKt<73Mu zKC1Fi@0+=9F8weJrPsvOcARyHTQ5r|jRT28xq9}4g)k?Rdwk|yFM~O2NiGZ6W`%`W zG)CB%wK+5-`Y6Lb_jFH&JQC`bgKKQ#bKJwWt&I=#*t&s=-^O?UEYvY~HN@}6MT-XB z_~wmw%PS_KXB~S4s1v3$LIgLz#v@N`Zk{(!W#ekO!*K3D z=l@~-EJzC5f{k!F`>B*(bAX@Z_^EH6;J(H5qqc;RH?wp>=ipUW`m6s0)=&dYF11*N zO{;Z>&M?}1ha3QG6ljC;>EAW6P5APf{;WC~)95}H|6#|a4jQm`gMyt3@HStk!`Yw3 zM!z@SauYyh4Nf;h5LFKhq_*qCF#H9xzq}Y5wD{`nIPaiOk$&?Tx#NwjU${`x;Sr1Z zWoG+Xjvqb~QrvOX#0t15E{>dux$zi}Vj|YcS<(94q$x$?HWg65U*u!9qlAwu7~vvo z4|5EOCkLa;EN%jNaFShni;gGOXgD)_ua-)#^HNHkG5pU6inZZnY?{wzaT;WFTc0mZ z=kC?OGd>UROB^%FBt!phn8({XE`|~1;p+}_C58lE9V#SUz>KG@_YSpl{ne@XLnwCE zT{CVhFRmebv#)ND+uH@@*`L?5DTf}3%VP|qH{ZbE+k(`7n7(cfDcSzhg})gCo_gF2 zS$*tqcyG`c+%G6GYy2$3&@rl`qyByXp^gV&U1vAwszvNa-q!SCXktH*Y~Ts5vGtqX z@vevL%&Uv-v(z>pUi?MUn{Qfla6N8KemGilaEgL*+N92z#tW4F`VaH5GiHfd_iuQY zKNQj$q6;{^ttka4n_tE%31=K7^^@!MS4(`rZG40|H+BA~bYv$#zvS@Qa#72Jj{KCF z3X&6{MbAQ!OPM3jR$?*ov-w5o}#hp{h@K?LhW>$5v!S4 z#^^;oK&})ynXhNn#q_Kkv1|LxzO&|fIDWgX-DFv??FR)rfd2mTfHr1e7Xge+u1CPI z%};!u?_WH}C63rSCsbl2QhO^hg&>fR#qk$Xfj4KcZYDT#`OFz9HgJ7ksEVJmJG6HY zdXJ5)Uj|7oF<;%|+<#wmbv-6C_0PtFgM-s0$+V_4c~> z;E=HQRbEs2GjrlU4j0E9%&)G<=vxKRD1nr&Bdg`kqpcjAPk$4`cso+8X&k`cd%&4I zy~({y9S6I{<~&s;QoLBpc{H;&dU>@^5Ua7sVIwL|P)&NNh%vxM-Z{e9O*Z_lg)3fo zApq>0C>`A0`nxX3*9jE>FBi|~PO6q|XB2VZtg-e!@pVmf4| z=FZr3?y1?+>r1Ati!i2l4qX-CL+5h-?uE1!a4J&+hmK)+*z6Z^5N|)axXL`#J6sns zSue_X`aZt+0>ica3*V?{Sov-a$TBK-{J;srz*-#8+doafeNwL~x`IdY zjq|_yKL7&23=H44mynnqapLpzzp^pGfm ztcYd`1*H2vK|FTsHU2V&!Ew^ge~F=7Og^yhq*4g z-VrY+ObhWQ2s%ct$z#ihF{2rA`)C?3DHLFf^<#@y#RJTk2B#rbK(`@{D+HL}yQoNV zK7E^f(0bv=cz|gRFPRpcI)%lcu)E^V2QW*Wf3<=`g_vwu3+aB~;x;*}zWo8lExv9G zlCK^H1=+eG4GrAtWHfM!%Xz;H(*Epf(q2HMBJz-At{Zc69s221gZDRne#u=cH$=b1 z>s)gD#WJp=C!pzU+!C7Lf*5D5uXK*76J89bvAKCu>$=c7HZ5-YfHr4DF-CKU24OcJ z3}99qH9?h_?aNBPZMg_bUfx@`TAeqowL1%lpZ2YB=8;@SQ44hnI5mLs#@4=^ukCp| zq&Pb1k`WqOG-qq$Y_hu~bkZot0X+N(^(Ut8+PMkavHo&zU^p8~F532LO?1)>twP%^ zY%*~T^!VBD;-tO2^&MYYhvP{({dlXV6FCCFX}^(PZpM^f`TI+;enI&57Wv5^+ww5n zu!|4BewhbIYvE!RKR;UfN$vaqT0JHO);XM`8Eky%$43F&)c0o8zDHvXs=UN0Pi~wz z>t|UGp17FX|KspJVb?8$^2!HKA?eE4`BZ(=J~`)O#+Px!$VUn~`lBEp{jYA4Nl(8I zQ_$t3A8oGQjjORW)!!G-^@*AT{eo<*mYaL)XQ%!hNS#Ms4>8<)F*D@Hap35siCshF z9)nFa9P)4M@C*OAMTz!Ni@0Mo4&VS7j>Wd<9jsyH7+K$9A|FOV{Dv@oDkXR}7rU`G zc9^ae4F)6@lZL+`?Ed0FDPK%;v+I#B#+#dtxkB~IK7%u)k4(PuGS5|N@|VkeF(R({ zYj*_j1>j;lDaxxqI`Y)ysvJJQgIv&J>(8^_#K6H1rU62d-~RNHi1bB4S^Zxy&&0Q! zbE4bgSXH*4{DEi91anT@hW^&X(h`hFQQEkUi*accw~Bo6l>I*37GDn!Te}Z=H|R^M zOu)M{mLVRujoJJW!DV~qP!$OMi=m}G_qDrZAdr+l8__tOtl`qB1EZq<*>j9n)TSUW zx~?w1QN@GWtqKMqx`Foz>LW9mBxGl9;1oN&x2gmayBC2QOW`~=TBpm~`E>mo54+U~ zYisA9erd7jU#ubdx?k>C6R|z2%=cOi?cwK?(x~d^;GCk5qHm#Lv$;dOih>e5>$2<5 zV#v=!llF<5tBU<|9O94AYGSQl{KD#o!S4gQ!$rOe!FcHNu6xGoe)I*Wuimxy`!Emt z2DT`=7^SgKTzk|oq(NQqH>}cm-3)s~<$zWcS=-Y7NozZ9U~O(|E!WjNA=Zll#^Jg5 zc^Ko1i6EWWD)ptI>sGybWLGOqp1ss%=?DA$5}xGW2g=W0yuH^G)nGikrcWN8 zIF1j1-z+j!?C&&gjiK^8#L_n_=H}JGe+l#Z1(k6*upP&XkSnr_yK0*|dUfWEo8znh z@}z+}xsW_Nu=RbD689jw7ZZ^H^g=s%l5g%tBs1ml^txz3{j`fCUFTzYKtnN)e(|RK zj&CoK4#)D4w4dyoxr)WPVV?c= z&)EcGj7vuU@j2_AmSjYX?O2IBWgJAFik2Aaj*kP#xRpD)4oYIE91$jWwW{tO{Cn&ly2`%m*gy z?R3Q!dtuPR$9ugv=;IH($6%bDr{3;6e|7Xx8zQ6kYIQK`1wy&KW{iC`m3^^jSjx0^ zQSH5{M)W<-zdUhl-K7Fu-7jSkn(BXEhlR*ac%Ci=Yp<=?e!uIq3_dk3@jkg0LW*4Lj?}Ty_ z3b25*2!!i4BIAp#y~I4QGx@;KcsphvOg!@upCdgTB@-@G!A)V{hX(z78DSR1hL& z#D5cu00@y<*R7!Joj5JjXj1nNVk76?8LoS@+B&B_AmA*|$_wEZ)$Y^)PvEoGEf&(4gOoc*w=T;`Tmiz%qbm8cKZWMjn9Af`)T@hyK?} z1nPoS2ZzK)u`(p`fh*Ice{n%$ZyXS~dG}2+*B`a8bnUCr;pJj`M&7*%c8~qjXZ1&{ zEToGf{>>S@=aGUX7C;1i$MZX(6AFPj&1Al*Wqhd6yZ-h~Fxa5`T-<|VI-C5Cm0x7xK$Agkl_E>4b{@^8iqjgfhM?#5-o*ng>qfwI#dML)be5PX%(vFj7o|G%np(Q+io zjiofB|Nq~6k9J39=7?l(vdE0U!{IH;KrC|zQig$e!P=YKsS(qrBR$8?qnl#}!IbyG z8#3l`Ye(+bnEP6GeshZsg0sQ!*)5{;2)#MvZX40ZQTtUMQM@#GW6}LcmA762#Px%d zS&0x0O7C6+DIrC9d!|7VvKRM_D&wPTow3GXNpDp*&ie1$P&&%$Qqhlx9DbX)7Gs@d z$;{#NGv=J)V(I%uvB=096LP6G$ev%Q$mgr{4&uiHOR3}$KAm*PG9Rz5N6bC1F@HNO z4k3?4qV0G)H*xYyIN$#92WF8e^gfUk+~>nzJZm@U&T>&;N#38-SG+%RbqL=a)?A-> z)uDU(*05MS)T<_q`gY8z4`Y;lymMatv_Yqrqx?`hH|QW^AojnhMQ^@08S>LdGTMvZ zHch+ZJFOm~9N34MsT}a_{ZHhdJvIN<6^JHn)NqLxar|x_y8rZH9OveSyu5c5U$+hZ z3rQb&7rJ2!_suEoiM8vh>z+(WH3s2WgdB!1FZsd0w?<+UG(UA7494(jpI$uMj**DQ zEXZ2CDs>P!Jx;|j9x@bRVzz58ed4;7ykvQ=#eb8Vta=G`u5$YqMt5m#FK#QYSjH2i zpf3Z0ET(+gPsBr}DXn`(>`~sF0k~Q#J={jQTHfqqjTwI{ZMFXe7PBA*T2=l-bRADT z#dhj={L-;Dhe2Krefc6XO;d9fH12sS14j&XHms?0AxXDd)jhfDD~6_Tz8TW%dH(oy zFQ=ZT>obD&PACINZw@cEtU4qjS^A!w-(ojK3WO}v+pj*Xy!WCXE$tSb9y#p`JkAy8 z%yfp;_N$7fViMfSd~?S>fX)dMeS3D!Mvbg~`h%&hwYs)Ey7bO{{E+G9;i;*DVfi+w zB0W6VVAOT{_z`V-V#U^dx{;e-`xO+d)Nrsb2-cqc41{z4zr*blBIwcalA&|eNLPIf z?bv9Oy=R_{tM>Gwch^o-qV^>|&FC2Wy?@$Vtx8yVsJnVgTh-x<WJ7qc92%1;hqkb#0F zpmmS@u-MqnXY1IUX0A=sX#|M(#=+t;2-d@s5ovoilrLiJSfnvkqSEsPu^GAXs%zgu zWb>c=9gjg97#<_Qd2zzlU2kN&Pdsi3=k44W$Hh_FwdkuadQ~0zZzp{<4n_Pmj+1c_ z_*3D~UmjlXo22&Lciw!zi*+zK{>%R#rwxX&L8!UskZBy;6a<&m_G>s2qjJn4+kJT* z42_7n99KiR`~1z1l3h$Ih|*E<`XKwGf!HxI9wu*Y%=Md3pTl7Ay^+(WsWZ&*^({~N zF>j4)K!n9wZtPYNSJ>6m} z2hqIX>j#_S6_d85G1YjIgg$OXxlAUqMvM%AB@iYqz+{o2L`e;buWoJeqyt>Fo(TZ>nsXt((?DAi>EG zTHUxB-!>_6d~oOlmh(_S`QwugUVSi=g2>jEcKH(^ThDP3OaO6ZFCq;GEs+=ZCVb1HCZY{4oyp*u_^UIA$l0 zd_u-<>&p+iLex)H{bqxm%XL21ukSE&R9m-Is4;n9gU|2Xj6qkVtt(pe+y5A6A9S&&WkYkHy!05cZ1i!w zGv~$Z?dC?K7~<3#7Er^~Uf?CxX?Ds`_L~|S#YI#Y6`=M^n+PP;omW5Js`hAaM!OI`@AxA%kHpUDB4Tagod z*Jan1GYb=Kjn=iscHwHoR4}ESZJLkV^!GyyVK=|9sXQ1o#dUTF#TqeU7oh< zFQ8B)rN^rquOT$;_y92XX_eQdJuB%xR=Vw{XlfbFaq?7Ch+1bD^SMFGtb6SBm1W} zkJNamf40cImw)NG<)>0o4aTwhT*}rZ`-?2>D9A}S@Qtm}42u_&VlRfg^UYtMnY(w% zNPEdxYF9|_Q|a{H2f2UgR*JL@o^3!=YI z_9^w&l1-!>wP>Fn)F4_T|C#l`N`9G{zA>o zRlFU>o=ki11sqKIWkmNyx38ber8Q~}Nru!Uu<2YCtT+dBxpt3s_3`@f?>@H?MF%4> zRuveSBN@FF?6{bd_;}b54`XKCaKcBfzmuVcRiIjjZKU=@b-3?6n9*lHMn&mnU~7>P zFb~AybUpqb$JDuR`~srfcsO1oIRhW9iGtxT*{lGP#^QZe6@8uQ zVS2G#@A}d8xzBI#yYcQbC@thE{<}{cBBM!gCO>HSJ6_F<~2H8{kG~lFh-iIkzrd!@O?!xNKFh4A z)HZazpQD;xTq}ctCFaQqQy^^V?BOq=UtvLUxIpT6lW z30Bm%QO~RLn3s|B!^h3I_zcL~oa`$c4`ceIM*{u>Au4^eXbpQ3K||b?YKn9=FQ+PM zy&0F4`*JYKjbFB(BMqWE2N>Trl`G^njbmrw%1352m!P!cQI;sW$eIWCekhhcyw$?K zF23}kEILc8X+WTR)4LI-E*fi)%#C)Kd!wpaKEw7~5Ke+>QA{!MZO{!M_TXqv=NbJ= zr|uz&voTqenc9|5TJ+Q`^2CLs^Vj(ri#r#}Vpe|n$b?h%q2u_!1#_6N8$Gbi zkJ!Z_b{nZCl}h>2)m!8xW(y|^fPmLL&<4wDfU7JW59i{~ z)j2J$y8`w%FZ!M|a@qHxgal^RsZ@-IpZk@7JNYWhjdMZ8k&3^f@(s$xP-X;qEeCaV z;uofa5HNCs#z~tU*7=|Q6INr8OW5-fyV}NPv7&*GdAi^Cp(}Gwc{=@T%-&bSdXA{$ zc>0ox8&`UWSBF9qnX{;x_H4|^kBxf$>CD%bW3-5qm$o7gb8KGeJKNO`l^eew>Kv~u zun$FX`BY&kLKzLVo2brAZFx0D6vQu`@-&b6X}Pv}R|Dgix&?xUNbPSe9AwzN549`E z6|N8LvKP@|1>5}A1!X+ddDxc&)r-HmnxAu>(K+ZcZj7AIJ&4!(!FTsDAlde5Jn?#C zw)!j*(g>i=M*G!7y}ny1W=j+cq&eM`5${!6 z6XBV&9IFn~$Px4qf9u!vVM_8X=XtNMh{1X5Tt>|m{B4UG7Jcc8{l7dD({tH9E(#rI zeR?BoeItXTKl1NP+nR^tt5wM)e0|K~eIWdM6NtY_;9>~}aP9D7f?Ni2;T1bgjbNl= z((V_tDvd_d$$9@?QPB7JR&L!)hpvpnJjNZhqDEKhBZ zxy-`sz70e7p_prg@je_DYH@b&$u1&Mf_1+yr+XA89sbGmTfObeuYYC?nQO+(`vuIa zM{dLg!|^LwZD^ajr6Vvu#7xHiNI^t0Wv>nGrP<+Q{<>iET!V#(tWi)a??1Hju{agY zxgF^Hl|?|~g{9p4rvXGUv5dhaz&v&vk=XIZve;+I{b7Z1a=Ocn)xAzKRw?U?c5(8p@Hze7Pc48kVR8wSysdmV!=kUtrITB~@ z!;Fa#yWaa3d$`L{Up;^4rY^#MQE4#dt+oc%R&uRn-y>OrWVBV8-&$oIe-&FwXtYO~ zaifJwC%pVWK76PbBQZ8_{^-MzYlIxn6VkW2=jIFU*>2-fY3!>9e7qNM*yZbv-VTO7 zNX)I{)1AMT|xZ6MF zbujZ6!}@vR7qNB=EhdeNgb5md5NO>zRAvkdVQhZ(GCe{Sh!~~(XbQdnh7GG%{Q3Sg zrVj_HP8YQJ*mNDupBDWd`Cbm{4x(5j+j{X@gRcES6KrrZlaG3NRUJ^VZ7adT_1Zj> zj?ZqctPKzMmu$5$&(*g80`y}PxLZ>m<>mahjXq8gYCg!v80D^?5I#7g*e_0&U|%lK z!bC2%ga78k1$T&66EK(KV#xTHeC%aZL|@(5+`rnp#83p7_+qmwBr8|>UmSJ8SY-D{ ztgK7IJLzamHm{sOo4@^Yz|AMQ=?+Hm#NxR@n+P9at0yWQHfIr5lNpploHSBr0He=- zEo*|DAIIBRLGV(@0wGUFqJuabPM1s9PHmZQW&U_bzj!}txQM3f*Vy&Mm}20gLB0kQ zgNHY1;Ffm)bm7}I1;h;x7(DvC8`oDO>DcyH^2w|zbI}I^A{=1B!~%zW)Odvn+cq-O z)IPU0!)yurmk>VWRk1W!ON@AsOTK`cZ*R{K?D}Rz0NR8#qa~_9 z`f;{pyAS##Bg2$HYSV;3U@#?^=n+DzXNg;|-sqUQZHr?pv7G1)x^EO&8pa6au-F9M z8b-~f126v*A&xlI08dOL+sq-9QoGnx^c9575)S36eX+2EdpWe}dI7P|3poA9O2^rM z`q`UkPUyUREmVEl%YRWf&>C{YXN;|EKL)YhZ4PcE90TSw-g51OmeW;Mjn2*)@qUBt zxA4e3kTxm9EF>|y1mMOap>b`C@1GTJ1MZ)!5oHwTfB%`A^Pmik{eUl;{j}(IGloJ* zw!>CWplYrBAOFb|^%g3-mWrY2E>BFagAmDj-(2H+3R&%rqFy ztp5&jAVxAx)%9Z4?x68)z5(m+7;L@#ZQFjVZ^^2Q&F7gPXC9YkqRl?wb$l zO^v4?o_QE%`^46q{X(|@p;}+W%^#^bj^XD|y%iLb*K*KF9L_d6CM%hOfGKD6al*zO zsEa&;?P2GtPM9F@0k>Rr0t)#zRi&vAYeW`Ayfjvh%s)?SIBHkVe*WXK`vX zBT{Xa;d=7)@>0V7LZhnGw*^kGi)aX}v$yq)c~(fMsSLH2dh^YuAX&joz^+)DMFCFNM(nUG3@DFgar-1%>(?ESgozQxz;6LUFX~ww;5eN zffLC%$XoaB(USK7Zf}B3Lc6VVVKv!}3mt1_UJBh8^ViC_^RcF%7>$Qf!r_b-{KfTK zhe~$Sf(&l^#l~SrAdluu`N^#!8`Jza`y{@ReE1`!8tB@KZi4$^h3YusBHwTkb|a-L z?LO?$PH4^n(rK@;OgxQfoG|pKwY8#$UszD%VS)Xb|FIkgOjpmv>B|v#h?S4{<{)oH zV!~rp!7wv>$ljPpnq$9|f@OPffyymbb$1QSSOfz2%j~UxZ}zfWJW`O)NsN}8w%()E z1Jhh>zy7$+&w9yUtu=7(%vO!pP4 z)VbvSo_5U}vDN7mjv8=yard>2d$DIih0Gs~^>9z~`95TDkJM)`oT))`NSR&&V>9en zAR7tyyPHPXxbAf^PAtaRw$J8S96BUuJ$rLh zoTr$*U*aimUU!RuyckC1(2PPm8~fH4F@E@Zq7Tx)uE3{)IyR060y*K}wvx4Y1lqM> zb@l$mJ6-2d*Jvk-hk?Y?p9yVOz2~@%)l6A%(smSW;GuEx{ZL<@4q|MrT^?bIrU87M zQ26%1N!xe}+rzw^ADB7u!t=Z_vmtxuCWgiBe(yL@<@w~Y^%Dl>`&Jw=#pP!~I77*< z`5CsuxXqU|<^9%g`%cEjB6m-E&H?vde(j0m`PQ)Wq1^O0-mlmoz}~UbJ{0v=W=Wmg zAcY6l6_#b(@8`ui{LoMfCQtRW_JLDKlVcZjFXkX`RGeQN8^NgK;b@8aP=*X= z=c5XqA=QE33qapFSKV|UD6(<14jONIPF4-uhi0D(d#)UX)z!7+_*e@MTgLG0OCKiV zur*@*&87FjfA=1e?u!OuU+iW8#&#PA8css=#`PCD#ekn{#Qn+rvH#KrMY}2eY;+q? zc&qbi9)JA>c3@YuJaDCJ9V4>(SSy~J7ZzS(TonZ-SU zRG-nf|7Z{(LStGVVVs|mhzl}*5rT=_n_Sis2j`K(u6u?GY<;5|%d>g)OFc2qD$@uQ zCRg!AZtWS1_6Aavb37i#{P3&0YXS2NHU8D;?Im&+(-;+*bDysPWX$ARpx&ri2kI#B z7+ekLhT*Fi=*ty*IUsA^(~(Y;SeI7J&+$BlxVhTBlvX-toJm&ef(yPnbJkh5V))%z z<@;Hcz&#o|7Xk^^W zb6fNu_c@PS!LXf!4Pwcghr06cT(f%mg&K4J=!d}=AXrVXZSah5?z-Cs=j5~7e6Tj} z^VN;RY=%lj;j%TW4i4bU>%aL= z6q?q|<*giK#+5%U!P`3|fzY`wbbEc4R&R&v+NJd0|L^~M=delZ?|Xxh)E^BK5xn0} zklb!o2@vyzzRWL}TVwy7aGvVQ(H@E0w%%?Meqi6AY{wXwX4rVqDIqH0f@#u0J9!C$ zBZh$A4((*R1)`k8Tuj!Y0TTc2c4eZC!D&FV-hpuw;`Qjq ziI)gERvfhhMt>ZfZOz zb#@xl_MFk)_=nreRE}5tm@}Rqj%OEil`22#b9XhmdpsCzj&ag_(8_B%IXNd3jN#H^ z+XuvN|LsjWD5>$n_$_MGmj*KDZ-R)|Y4pqw#ph!UB?ylHhI}95=nSh}q&b_PFtOL) zb)eH>)9ymA2w9wIZ?q9P2M}7fzsaz1P^69VtDn9yM(9z3w)Jzf^8BEzH@-I&7jO9O zI7@s`It9r~YuUmmqmN_1U@(Si9(@D)HtqbheVm%Naxnfz4VU&CbI`vH6#d4f5Zhzq z@L}mBDt6^*GPI$lSxQ@SGCVJifAj8*4Uv?wYsER7cwv79?!px!%)}>F-_mpZ2IIN|Hb#2TXQH(4VSMnbkrzaCTB)&K#ikHm7tE!(u9wLYS4*kO z(2uPZJ1zY8qWdr_TX2Ki{$ehAtR}!{Q{|0d+r#xn+ZtuTV!V2#p2cn)G|Q$c(Lvyx zjlRsruMgS6n+%tk=53hezHvI1+T_nm>p(l7rx)BV&zf;O;c3+U$*H}fwF3sGvnGQK z=_9Bn2y9zB$5%W19y9gzCm7aMVonW?Yq5PLQ}-{|ik&y#MHHKYVVkCjODi9EmKX8R zyZ0y`rZq#BUX*d_Px^Hy&hJB}anqtVlfkc!n+t0%xy7*EUS|yK`+#GlP!ZXr=MX1* z4tpYVDF%6VR(xv`+<5Tnd37~+`e7>6dbzu%^;BhHjK~$HDh`eQn|qq}#RO}4knf(u$jj&Uaq*r1HxH}7 z*vJcwI=y}F3x99EM#$-?W&CXa8r52m);Wc*PT~;DCH|(eZce)9rgAXe{RYTC!&fWL zZyu9qabiOfUN^-5$Qu`>b@;Z%*4G z53fCMKXi_F$jNH}XC>C9MMo}$*X__69L|c8$Ga&stmV7Eq4sauV7F z?)`x0v3_~W=jd0Xt+ektQAQcnyT zmSXQwuA{%>?i|4~IP>s&ZvAc_GO*3`1;d<9*uL_USOJIQGRWoQp!;FZGgP_+CK~YY zB197Y0b%QT!)uoiRtxq<7}3y;1Z|VHV=(W zT)j4Ve|W9I<8~)7&3pFeB``FQa#{^MuRbqFYpz*j5l$`{MnZQ4&V7k)X!S>h{P}*@ zM-)}n>)czrd~$5Czi<{8?=M=amkG zhjGS=4!m4T79F+N?bx*2pR?cozd|Uda$vik^v>~pFcTFK*nL-EgB5A}bX4ajzR|PO z=4Ls<_7`*_tvp(CR2Ro!D@V?REWh8i%{m$f%)=IM^EKoD&|8T%BllUGu`-sLfD}#& zW=z%br2|I*i(ajeoysU(Ntgk)W@g{NEbE@rzDIaiIX*dydwX{hfi73En-enh(>o$c zm|nyD*$b=`Ec55QeGl82r|$(m{6nv+-&5u?Lvyv}`A0=LB6-kvO1J-Or<~{F)=hdt zFdezI*Xqo1XsuHV=Z@r>bxv##i@|Ksd(D^=QH&2j@9*qbXMHhIzQY<=Us>JpVf^8b zQ|s>87+)m)fZkraPfXvOLRo%sp0x@5*I(R+$l-nQX4hNv8hY&HIX!q@7b}u_+pEjI6>pAW5d+Lr(vrc;8`z>f4+iTFT2&R&uvsiS3PYW?Qz(*?u_Y7pf;tK z(b}&c+xuM7IyvUu)>tXy3SIbX>qt=T!l1qP%bLZ2MuBI5tomat=i8%L@(AAGbvDkj zK|wHq4J@p3qs{%=bdkrcAhz@)IECsa+}%M^O(1P)GvGdE%gMvZqpM+OGo9MEO~7;w&guLPS|w8RQ&R(r3#KX%|}BN2yWbU2-ro|pc*g{6Gnc< zPht$vkE8jn)&jnoJsvvgW%N$GxZ$qTg10G#M3^1h^oLX}5o<2GHFn_oU@$3t|2uBA z_+OMcxS$QhC(OK(1FvV(;x(zmev3kzjj9mD(FNZ(?r{?VV+Wl0GRKX1!89aR5BOcm z`8vAWzab7s+`y5JKMW#cGz(;0KXgbdImoVV=-mD8=mQsY!a4Vh@7xnV z-o9e4M;Ao&TJ??U$5VV{9?kFDx6Cn>a(Qc_;F8Wuv4vCK4dG&K;D`#3Qr0(;j$J?q z5aH_RNToA6x!T@dNhe=J7(*}fqc&XyZ6^OX@|doK@fGHYAQC0h_>^0aVXG@TAg`Y=Y10l`Qj z#sSAEz{A54)ZUFj-{19fI_If;jjq35o4dKw@rK;?oBvo;n&V5?y~=0#4gq^{#Z&5G zd-$9#X5w)&KY5!5&nzW_<^Ijv^Lb;UM!xtsk`G^U_Imnau;O_}z>jmV^;eyS+kPhp zJVe<1wdX-5#`WHyLpyX=`|87sOVLWEYMdH+x=8iCy}|gh*049o>cOf~=vITa|1MuK%hq)ub_0t&HblCQhh{$YNUGYHhtSY|dFQ z99{R-3(MXp1w0<*hF#Zk^B3+gZ6$ABY6G@->OJ$cm&~@cP75}g-tcF!^|IA0{9&MT zu2<97w(#m*V>}Rt&|ml%BPnNdRQX9(Nu|mh0|$Hd*5s#uegx4doaxQQ{ziU0-3vj~ z^kNpB%D_ZZtgj8EGU zcJB7A%xu$^+ncvT9^q96V0_ELxdQ*AT|{S zgUU_LC6IWwi+8EYAq8mf1n1bd7bms|`NwL+JA(4!-V*no6cxn+W>G z0-$u+jFpidL#g%QzrH@OKWG&E@P;~ig6GBVW$nN#Z|j#vrS0{$-*0a#s=NVijf#u8 z{ub0+FU_Rk9}YWAGG1cfywun@?MHoBx?ID6+fl{HxvAq=In~a&oZN>M={GJJF!#wr zM-`qafMX`~R)y^6^R6ZRGmXgp-Cw5^GC%!$yWuz;#yNNTufP0F3eCXB{jC@II#Sk0 zo5q}`*NV4i(_Q_vA)D3GRf(L=?jyx5Nc!(yxZ3kUT#L!Eud1SVUn-vDoe#YqYrP^3 zYk21G+IYXv-(ItN8%({u#yyH)N+*Jn9A~Xo0+jObq@i=Bhgiz=ALc*Y+Xb_m5YgjS ztcUOXVQrg(#$wbKTM}{%b@;&>T$%ICwj4M)ewgRy|B>KfS16y&1!aajq53%U%dhHY z$bslEKW*Tm+YsU;NtCp0ABV&n^W8(_HV)d$ z4XCXfv9m&7B?LjVaX`rdo@NCY*8C;n*W8RJpg+9?p;kxhA>`(xmfioeH#W*&)QwN{YZ2bADEeh|3B{W3y;w2vV#OL0t`pVkm& zo5!4^rJr%+qS6D;<7X!CbA#zp%!;Nly(bgOPJEHIKGh>Jp8rhU)@%+c5Hgn-0B40` z!Vd^;EHqT(SYG{RWH?HNwSJ8NvCR+m4P)1WZep#cHH1-v9H6}o$28y&QNYG?+!`nG zt(%;rLz|Cl>~atbVKlv$qLI9_VDp*n_y(~8sO?!;ctl)@0zZ32En?Tg;LL)9myN|b z{xzNN7t-p!H-7!=E0000< KMNUMnLSTX%YKp@E literal 0 HcmV?d00001 From ce14edf2f9f46c6850dfb1669515a52603638c20 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Wed, 27 Aug 2025 20:09:36 -0400 Subject: [PATCH 086/103] Fix mistakes and add missing HTTP endpoints (with Claude) --- docs/content/docs/libraries/lume/http-api.mdx | 540 +++++++++++++++++- 1 file changed, 529 insertions(+), 11 deletions(-) diff --git a/docs/content/docs/libraries/lume/http-api.mdx b/docs/content/docs/libraries/lume/http-api.mdx index 5191119c..dcef8428 100644 --- a/docs/content/docs/libraries/lume/http-api.mdx +++ b/docs/content/docs/libraries/lume/http-api.mdx @@ -97,7 +97,7 @@ const payload = { } const res = await fetch('http://localhost:7777/lume/vms', { - methdo: 'POST' + method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payload), }); @@ -348,7 +348,7 @@ console.log(await res2.json()); Update the configuration of a virtual machine. -`PUT: /vms/:name` +`PATCH: /vms/:name` #### Parameters @@ -368,7 +368,7 @@ Update the configuration of a virtual machine. ```bash curl --connect-timeout 6000 \ --max-time 5000 \ - -X PUT \ + -X PATCH \ -H "Content-Type: application/json" \ -d '{ "cpu": 4, @@ -393,7 +393,7 @@ payload = { "display": "1920x1080", "storage": "ssd" } -r = requests.put("http://localhost:7777/lume/vms/lume_vm", json=payload, timeout=50) +r = requests.patch("http://localhost:7777/lume/vms/lume_vm", json=payload, timeout=50) print(r.json()) ``` @@ -409,7 +409,7 @@ const payload = { storage: 'ssd', }; const res = await fetch('http://localhost:7777/lume/vms/lume_vm', { - method: 'PUT', + method: 'PATCH', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payload), }); @@ -425,16 +425,29 @@ Stop a running virtual machine. `POST: /vms/:name/stop` +#### Parameters + +| Name | Type | Required | Description | +| ------- | ------ | -------- | -------------------------- | +| storage | string | No | Storage type (`ssd`, etc.) | + #### Example Request ```bash +# Basic stop curl --connect-timeout 6000 \ --max-time 5000 \ -X POST \ http://localhost:7777/lume/vms/lume_vm/stop + +# Stop with storage location specified +curl --connect-timeout 6000 \ + --max-time 5000 \ + -X POST \ + http://localhost:7777/lume/vms/lume_vm/stop?storage=ssd ``` @@ -443,18 +456,30 @@ curl --connect-timeout 6000 \ ```python import requests +# Basic stop r = requests.post("http://localhost:7777/lume/vms/lume_vm/stop", timeout=50) print(r.json()) + +# Stop with storage location specified +r = requests.post("http://localhost:7777/lume/vms/lume_vm/stop", params={"storage": "ssd"}, timeout=50) +print(r.json()) ``` ```typescript +// Basic stop const res = await fetch('http://localhost:7777/lume/vms/lume_vm/stop', { method: 'POST', }); console.log(await res.json()); + +// Stop with storage location specified +const res2 = await fetch('http://localhost:7777/lume/vms/lume_vm/stop?storage=ssd', { + method: 'POST', +}); +console.log(await res2.json()); ``` @@ -526,19 +551,91 @@ console.log(res2.status); +### Clone VM + +Clone an existing virtual machine. + +`POST: /vms/:name/clone` + +#### Parameters + +| Name | Type | Required | Description | +| -------------- | ------ | -------- | ----------------------------------- | +| name | string | Yes | Source VM name | +| newName | string | Yes | New VM name | +| sourceLocation | string | No | Source storage location (`default`) | +| destLocation | string | No | Destination storage location | + +#### Example Request + + + + +```bash +curl --connect-timeout 6000 \ + --max-time 5000 \ + -X POST \ + -H "Content-Type: application/json" \ + -d '{ + "name": "source-vm", + "newName": "cloned-vm", + "sourceLocation": "default", + "destLocation": "ssd" + }' \ + http://localhost:7777/lume/vms/clone +``` + + + + +```python +import requests + +payload = { + "name": "source-vm", + "newName": "cloned-vm", + "sourceLocation": "default", + "destLocation": "ssd" +} +r = requests.post("http://localhost:7777/lume/vms/clone", json=payload, timeout=50) +print(r.json()) +``` + + + + +```typescript +const payload = { + name: 'source-vm', + newName: 'cloned-vm', + sourceLocation: 'default', + destLocation: 'ssd', +}; +const res = await fetch('http://localhost:7777/lume/vms/clone', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload), +}); +console.log(await res.json()); +``` + + + + ### Pull VM Image Pull a VM image from a registry. -`POST: /images/pull` +`POST: /pull` #### Parameters | Name | Type | Required | Description | | ------------ | ------ | -------- | ------------------------------------- | | image | string | Yes | Image name (e.g. `macos-sequoia-...`) | -| registry | string | Yes | Registry host (e.g. `ghcr.io`) | -| organization | string | Yes | Organization name | +| name | string | No | VM name for the pulled image | +| registry | string | No | Registry host (e.g. `ghcr.io`) | +| organization | string | No | Organization name | | storage | string | No | Storage type (`ssd`, etc.) | #### Example Request @@ -553,11 +650,12 @@ curl --connect-timeout 6000 \ -H "Content-Type: application/json" \ -d '{ "image": "macos-sequoia-vanilla:latest", + "name": "my-vm-name", "registry": "ghcr.io", "organization": "trycua", "storage": "ssd" }' \ - http://localhost:7777/lume/images/pull + http://localhost:7777/lume/pull ``` @@ -568,11 +666,12 @@ import requests payload = { "image": "macos-sequoia-vanilla:latest", + "name": "my-vm-name", "registry": "ghcr.io", "organization": "trycua", "storage": "ssd" } -r = requests.post("http://localhost:7777/lume/images/pull", json=payload, timeout=50) +r = requests.post("http://localhost:7777/lume/pull", json=payload, timeout=50) print(r.json()) ``` @@ -582,11 +681,12 @@ print(r.json()) ```typescript const payload = { image: 'macos-sequoia-vanilla:latest', + name: 'my-vm-name', registry: 'ghcr.io', organization: 'trycua', storage: 'ssd', }; -const res = await fetch('http://localhost:7777/lume/images/pull', { +const res = await fetch('http://localhost:7777/lume/pull', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payload), @@ -596,3 +696,421 @@ console.log(await res.json()); + +### Push VM Image + +Push a VM to a registry as an image (asynchronous operation). + +`POST: /vms/push` + +#### Parameters + +| Name | Type | Required | Description | +| ------------ | ------------ | -------- | ----------------------------------------------- | +| name | string | Yes | Local VM name to push | +| imageName | string | Yes | Image name in registry | +| tags | array | Yes | Image tags (e.g. `["latest", "v1"]`) | +| organization | string | Yes | Organization name | +| registry | string | No | Registry host (e.g. `ghcr.io`) | +| chunkSizeMb | integer | No | Chunk size in MB for upload | +| storage | string/null | No | Storage type (`ssd`, etc.) | + +#### Example Request + + + + +```bash +curl --connect-timeout 6000 \ + --max-time 5000 \ + -X POST \ + -H "Content-Type: application/json" \ + -d '{ + "name": "my-local-vm", + "imageName": "my-image", + "tags": ["latest", "v1"], + "organization": "my-org", + "registry": "ghcr.io", + "chunkSizeMb": 512, + "storage": null + }' \ + http://localhost:7777/lume/vms/push +``` + + + + +```python +import requests + +payload = { + "name": "my-local-vm", + "imageName": "my-image", + "tags": ["latest", "v1"], + "organization": "my-org", + "registry": "ghcr.io", + "chunkSizeMb": 512, + "storage": None +} +r = requests.post("http://localhost:7777/lume/vms/push", json=payload, timeout=50) +print(r.json()) +``` + + + + +```typescript +const payload = { + name: 'my-local-vm', + imageName: 'my-image', + tags: ['latest', 'v1'], + organization: 'my-org', + registry: 'ghcr.io', + chunkSizeMb: 512, + storage: null, +}; +const res = await fetch('http://localhost:7777/lume/vms/push', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload), +}); +console.log(await res.json()); +``` + + + + +**Response (202 Accepted):** + +```json +{ + "message": "Push initiated in background", + "name": "my-local-vm", + "imageName": "my-image", + "tags": [ + "latest", + "v1" + ] +} +``` + +### List Images + +List available VM images. + +`GET: /images` + +#### Example Request + + + + +```bash +curl --connect-timeout 6000 \ + --max-time 5000 \ + http://localhost:7777/lume/images +``` + + + + +```python +import requests + +r = requests.get("http://localhost:7777/lume/images", timeout=50) +print(r.json()) +``` + + + + +```typescript +const res = await fetch('http://localhost:7777/lume/images'); +console.log(await res.json()); +``` + + + + +```json +{ + "local": [ + "macos-sequoia-xcode:latest", + "macos-sequoia-vanilla:latest" + ] +} +``` + +### Prune Images + +Remove unused VM images to free up disk space. + +`POST: /lume/prune` + +#### Example Request + + + + +```bash +curl --connect-timeout 6000 \ + --max-time 5000 \ + -X POST \ + http://localhost:7777/lume/prune +``` + + + + +```python +import requests + +r = requests.post("http://localhost:7777/lume/prune", timeout=50) +print(r.json()) +``` + + + + +```typescript +const res = await fetch('http://localhost:7777/lume/prune', { + method: 'POST', +}); +console.log(await res.json()); +``` + + + + +### Get Latest IPSW URL + +Get the URL for the latest macOS IPSW file. + +`GET: /ipsw` + +#### Example Request + + + + +```bash +curl --connect-timeout 6000 \ + --max-time 5000 \ + http://localhost:7777/lume/ipsw +``` + + + + +```python +import requests + +r = requests.get("http://localhost:7777/lume/ipsw", timeout=50) +print(r.json()) +``` + + + + +```typescript +const res = await fetch('http://localhost:7777/lume/ipsw'); +console.log(await res.json()); +``` + + + + +## Configuration Management + +### Get Configuration + +Get current Lume configuration settings. + +`GET: /lume/config` + +#### Example Request + + + + +```bash +curl --connect-timeout 6000 \ + --max-time 5000 \ + http://localhost:7777/lume/config +``` + + + + +```python +import requests + +r = requests.get("http://localhost:7777/lume/config", timeout=50) +print(r.json()) +``` + + + + +```typescript +const res = await fetch('http://localhost:7777/lume/config'); +console.log(await res.json()); +``` + + + + +```json +{ + "homeDirectory": "~/.lume", + "cacheDirectory": "~/.lume/cache", + "cachingEnabled": true +} +``` + +### Update Configuration + +Update Lume configuration settings. + +`POST: /lume/config` + +#### Parameters + +| Name | Type | Required | Description | +| --------------- | ------- | -------- | -------------------------------- | +| homeDirectory | string | No | Lume home directory path | +| cacheDirectory | string | No | Cache directory path | +| cachingEnabled | boolean | No | Enable or disable caching | + +#### Example Request + + + + +```bash +curl --connect-timeout 6000 \ + --max-time 5000 \ + -X POST \ + -H "Content-Type: application/json" \ + -d '{ + "homeDirectory": "~/custom/lume", + "cacheDirectory": "~/custom/lume/cache", + "cachingEnabled": true + }' \ + http://localhost:7777/lume/config +``` + + + + +```python +import requests + +payload = { + "homeDirectory": "~/custom/lume", + "cacheDirectory": "~/custom/lume/cache", + "cachingEnabled": True +} +r = requests.post("http://localhost:7777/lume/config", json=payload, timeout=50) +print(r.json()) +``` + + + + +```typescript +const payload = { + homeDirectory: '~/custom/lume', + cacheDirectory: '~/custom/lume/cache', + cachingEnabled: true, +}; +const res = await fetch('http://localhost:7777/lume/config', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload), +}); +console.log(await res.json()); +``` + + + + +## Storage Location Management + +### Get VM Storage Locations + +List all configured VM storage locations. + +`GET: /lume/config/locations` + +#### Example Request + + + + +```bash +curl --connect-timeout 6000 \ + --max-time 5000 \ + http://localhost:7777/lume/config/locations +``` + + + + +```python +import requests + +r = requests.get("http://localhost:7777/lume/config/locations", timeout=50) +print(r.json()) +``` + + + + +```typescript +const res = await fetch('http://localhost:7777/lume/config/locations'); +console.log(await res.json()); +``` + + + + +```json +[ + { + "name": "default", + "path": "~/.lume/vms", + "isDefault": true + }, + { + "name": "ssd", + "path": "/Volumes/SSD/lume/vms", + "isDefault": false + } +] +``` + +### Add VM Storage Location + +Add a new VM storage location. + +`POST: /lume/config/locations` + +#### Parameters + +| Name | Type | Required | Description | +| ---- | ------ | -------- | ------------------------------ | +| name | string | Yes | Storage location name | +| path | string | Yes | File system path for storage | + +#### Example Request + + + + +```bash +curl --connect-timeout 6000 \ + --max-time 5000 \ + -X POST \ + -H "Content-Type: application/json" \ + -d '{ From abab65a10f703bbccdfe93fbf56f643fe71eb983 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Wed, 27 Aug 2025 20:10:27 -0400 Subject: [PATCH 087/103] Add missing HTTP endpoints (with Claude) --- docs/content/docs/libraries/lume/http-api.mdx | 122 +++++++++++++++++- 1 file changed, 121 insertions(+), 1 deletion(-) diff --git a/docs/content/docs/libraries/lume/http-api.mdx b/docs/content/docs/libraries/lume/http-api.mdx index dcef8428..079a134a 100644 --- a/docs/content/docs/libraries/lume/http-api.mdx +++ b/docs/content/docs/libraries/lume/http-api.mdx @@ -49,6 +49,126 @@ curl --connect-timeout 6000 \ -X POST \ -H "Content-Type: application/json" \ -d '{ + "name": "ssd", + "path": "/Volumes/SSD/lume/vms" + }' \ + http://localhost:7777/lume/config/locations +``` + + + + +```python +import requests + +payload = { + "name": "ssd", + "path": "/Volumes/SSD/lume/vms" +} +r = requests.post("http://localhost:7777/lume/config/locations", json=payload, timeout=50) +print(r.json()) +``` + + + + +```typescript +const payload = { + name: 'ssd', + path: '/Volumes/SSD/lume/vms', +}; +const res = await fetch('http://localhost:7777/lume/config/locations', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload), +}); +console.log(await res.json()); +``` + + + + +### Remove VM Storage Location + +Remove a VM storage location. + +`DELETE: /lume/config/locations/:name` + +#### Example Request + + + + +```bash +curl --connect-timeout 6000 \ + --max-time 5000 \ + -X DELETE \ + http://localhost:7777/lume/config/locations/ssd +``` + + + + +```python +import requests + +r = requests.delete("http://localhost:7777/lume/config/locations/ssd", timeout=50) +print(r.status_code) +``` + + + + +```typescript +const res = await fetch('http://localhost:7777/lume/config/locations/ssd', { + method: 'DELETE', +}); +console.log(res.status); +``` + + + + +### Set Default VM Storage Location + +Set a storage location as the default. + +`POST: /lume/config/locations/default/:name` + +#### Example Request + + + + +```bash +curl --connect-timeout 6000 \ + --max-time 5000 \ + -X POST \ + http://localhost:7777/lume/config/locations/default/ssd +``` + + + + +```python +import requests + +r = requests.post("http://localhost:7777/lume/config/locations/default/ssd", timeout=50) +print(r.json()) +``` + + + + +```typescript +const res = await fetch('http://localhost:7777/lume/config/locations/default/ssd', { + method: 'POST', +}); +console.log(await res.json()); +``` + + + "name": "lume_vm", "os": "macOS", "cpu": 2, @@ -1113,4 +1233,4 @@ curl --connect-timeout 6000 \ --max-time 5000 \ -X POST \ -H "Content-Type: application/json" \ - -d '{ + -d '{ \ No newline at end of file From 4eac69285dd3445e4b266affb32e22d00627dd8c Mon Sep 17 00:00:00 2001 From: James Murdza Date: Wed, 27 Aug 2025 20:40:43 -0400 Subject: [PATCH 088/103] Restructure API reference for clarity --- docs/content/docs/libraries/lume/http-api.mdx | 2165 +++++++++-------- 1 file changed, 1098 insertions(+), 1067 deletions(-) diff --git a/docs/content/docs/libraries/lume/http-api.mdx b/docs/content/docs/libraries/lume/http-api.mdx index 079a134a..04792f26 100644 --- a/docs/content/docs/libraries/lume/http-api.mdx +++ b/docs/content/docs/libraries/lume/http-api.mdx @@ -1,9 +1,10 @@ --- title: HTTP Server API -description: Lume exposes a local HTTP API server that listens at localhost for programatic management of VMs. +description: Lume exposes a local HTTP API server that listens at localhost for programmatic management of VMs. --- import { Tabs, Tab } from 'fumadocs-ui/components/tabs'; +import { Callout } from 'fumadocs-ui/components/callout'; ## Default URL @@ -19,11 +20,13 @@ http://localhost:7777 ## Endpoints +--- + ### Create VM Create a new virtual machine. -`POST: /vms` +`POST: /lume/vms` #### Parameters @@ -40,6 +43,1099 @@ Create a new virtual machine. #### Example Request + + + +```bash +curl --connect-timeout 6000 \ + --max-time 5000 \ + -X POST \ + -H "Content-Type: application/json" \ + -d '{ + "name": "lume_vm", + "os": "macOS", + "cpu": 2, + "memory": "4GB", + "diskSize": "64GB", + "display": "1024x768", + "ipsw": "latest", + "storage": "ssd" + }' \ + http://localhost:7777/lume/vms +``` + + + + +```python +import requests + +payload = { + "name": "lume_vm", + "os": "macOS", + "cpu": 2, + "memory": "4GB", + "diskSize": "64GB", + "display": "1024x768", + "ipsw": "latest", + "storage": "ssd" +} +r = requests.post("http://localhost:7777/lume/vms", json=payload, timeout=50) +print(r.json()) +``` + + + + +```typescript +const payload = { + name: 'lume_vm', + os: 'macOS', + cpu: 2, + memory: '4GB', + diskSize: '64GB', + display: '1024x768', + ipsw: 'latest', + storage: 'ssd', +}; + +const res = await fetch('http://localhost:7777/lume/vms', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload), +}); +console.log(await res.json()); +``` + + + + +--- + +### Run VM + +Run a virtual machine instance. + +`POST: /lume/vms/:name/run` + +#### Parameters + +| Name | Type | Required | Description | +| ----------------- | --------------- | -------- | --------------------------------------------------- | +| noDisplay | boolean | No | If true, do not start VNC client | +| sharedDirectories | array of object | No | List of shared directories (`hostPath`, `readOnly`) | +| recoveryMode | boolean | No | Start in recovery mode | +| storage | string | No | Storage type (`ssd`, etc.) | + +#### Example Request + + + + +```bash +# Basic run +curl --connect-timeout 6000 \ + --max-time 5000 \ + -X POST \ + http://localhost:7777/lume/vms/my-vm-name/run + +# Run with VNC client started and shared directory +curl --connect-timeout 6000 \ + --max-time 5000 \ + -X POST \ + -H "Content-Type: application/json" \ + -d '{ + "noDisplay": false, + "sharedDirectories": [ + { + "hostPath": "~/Projects", + "readOnly": false + } + ], + "recoveryMode": false, + "storage": "ssd" + }' \ + http://localhost:7777/lume/vms/lume_vm/run +``` + + + + +```python +import requests + +# Basic run +r = requests.post("http://localhost:7777/lume/vms/my-vm-name/run", timeout=50) +print(r.json()) + +# With VNC and shared directory +payload = { + "noDisplay": False, + "sharedDirectories": [ + {"hostPath": "~/Projects", "readOnly": False} + ], + "recoveryMode": False, + "storage": "ssd" +} +r = requests.post("http://localhost:7777/lume/vms/lume_vm/run", json=payload, timeout=50) +print(r.json()) +``` + + + + +```typescript +// Basic run +let res = await fetch('http://localhost:7777/lume/vms/my-vm-name/run', { + method: 'POST', +}); +console.log(await res.json()); + +// With VNC and shared directory +const payload = { + noDisplay: false, + sharedDirectories: [{ hostPath: '~/Projects', readOnly: false }], + recoveryMode: false, + storage: 'ssd', +}; +res = await fetch('http://localhost:7777/lume/vms/lume_vm/run', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload), +}); +console.log(await res.json()); +``` + + + + +--- + +### List VMs + +List all virtual machines. + +`GET: /lume/vms` + +#### Example Request + + + + +```bash +curl --connect-timeout 6000 \ + --max-time 5000 \ + http://localhost:7777/lume/vms +``` + + + + +```python +import requests + +r = requests.get("http://localhost:7777/lume/vms", timeout=50) +print(r.json()) +``` + + + + +```typescript +const res = await fetch('http://localhost:7777/lume/vms'); +console.log(await res.json()); +``` + + + + +```json +[ + { + "name": "my-vm", + "state": "stopped", + "os": "macOS", + "cpu": 2, + "memory": "4GB", + "diskSize": "64GB" + }, + { + "name": "my-vm-2", + "state": "stopped", + "os": "linux", + "cpu": 2, + "memory": "4GB", + "diskSize": "64GB" + } +] +``` + +--- + +### Get VM Details + +Get details for a specific virtual machine. + +`GET: /lume/vms/:name` + +#### Parameters + +| Name | Type | Required | Description | +| ------- | ------ | -------- | -------------------------- | +| storage | string | No | Storage type (`ssd`, etc.) | + +#### Example Request + + + + +```bash +# Basic get +curl --connect-timeout 6000 \ + --max-time 5000 \ + http://localhost:7777/lume/vms/lume_vm + +# Get with specific storage +curl --connect-timeout 6000 \ + --max-time 5000 \ + http://localhost:7777/lume/vms/lume_vm?storage=ssd +``` + + + + +```python +import requests + +# Basic get +details = requests.get("http://localhost:7777/lume/vms/lume_vm", timeout=50) +print(details.json()) + +# Get with specific storage +details = requests.get("http://localhost:7777/lume/vms/lume_vm", params={"storage": "ssd"}, timeout=50) +print(details.json()) +``` + + + + +```typescript +// Basic get +let res = await fetch('http://localhost:7777/lume/vms/lume_vm'); +console.log(await res.json()); + +// Get with specific storage +res = await fetch('http://localhost:7777/lume/vms/lume_vm?storage=ssd'); +console.log(await res.json()); +``` + + + + +```json +{ + "name": "lume_vm", + "state": "stopped", + "os": "macOS", + "cpu": 2, + "memory": "4GB", + "diskSize": "64GB", + "display": "1024x768", + "ipAddress": "192.168.65.2", + "vncPort": 5900, + "sharedDirectories": [ + { + "hostPath": "~/Projects", + "readOnly": false, + "tag": "com.apple.virtio-fs.automount" + } + ] +} +``` + +--- + +### Update VM Configuration + +Update the configuration of a virtual machine. + +`PATCH: /lume/vms/:name` + +#### Parameters + +| Name | Type | Required | Description | +| -------- | ------- | -------- | ------------------------------------- | +| cpu | integer | No | Number of CPU cores | +| memory | string | No | Memory size (e.g. `8GB`) | +| diskSize | string | No | Disk size (e.g. `100GB`) | +| display | string | No | Display resolution (e.g. `1920x1080`) | +| storage | string | No | Storage type (`ssd`, etc.) | + +#### Example Request + + + + +```bash +curl --connect-timeout 6000 \ + --max-time 5000 \ + -X PATCH \ + -H "Content-Type: application/json" \ + -d '{ + "cpu": 4, + "memory": "8GB", + "diskSize": "100GB", + "display": "1920x1080", + "storage": "ssd" + }' \ + http://localhost:7777/lume/vms/lume_vm +``` + + + + +```python +import requests + +payload = { + "cpu": 4, + "memory": "8GB", + "diskSize": "100GB", + "display": "1920x1080", + "storage": "ssd" +} +r = requests.patch("http://localhost:7777/lume/vms/lume_vm", json=payload, timeout=50) +print(r.json()) +``` + + + + +```typescript +const payload = { + cpu: 4, + memory: '8GB', + diskSize: '100GB', + display: '1920x1080', + storage: 'ssd', +}; +const res = await fetch('http://localhost:7777/lume/vms/lume_vm', { + method: 'PATCH', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload), +}); +console.log(await res.json()); +``` + + + + +--- + +### Stop VM + +Stop a running virtual machine. + +`POST: /lume/vms/:name/stop` + +#### Parameters + +| Name | Type | Required | Description | +| ------- | ------ | -------- | -------------------------- | +| storage | string | No | Storage type (`ssd`, etc.) | + +#### Example Request + + + + +```bash +# Basic stop +curl --connect-timeout 6000 \ + --max-time 5000 \ + -X POST \ + http://localhost:7777/lume/vms/lume_vm/stop + +# Stop with storage location specified +curl --connect-timeout 6000 \ + --max-time 5000 \ + -X POST \ + http://localhost:7777/lume/vms/lume_vm/stop?storage=ssd +``` + + + + +```python +import requests + +# Basic stop +r = requests.post("http://localhost:7777/lume/vms/lume_vm/stop", timeout=50) +print(r.json()) + +# Stop with storage location specified +r = requests.post("http://localhost:7777/lume/vms/lume_vm/stop", params={"storage": "ssd"}, timeout=50) +print(r.json()) +``` + + + + +```typescript +// Basic stop +let res = await fetch('http://localhost:7777/lume/vms/lume_vm/stop', { + method: 'POST', +}); +console.log(await res.json()); + +// Stop with storage location specified +res = await fetch('http://localhost:7777/lume/vms/lume_vm/stop?storage=ssd', { + method: 'POST', +}); +console.log(await res.json()); +``` + + + + +--- + +### Delete VM + +Delete a virtual machine instance. + +`DELETE: /lume/vms/:name` + +#### Parameters + +| Name | Type | Required | Description | +| ------- | ------ | -------- | -------------------------- | +| storage | string | No | Storage type (`ssd`, etc.) | + +#### Example Request + + + + +```bash +# Basic delete +curl --connect-timeout 6000 \ + --max-time 5000 \ + -X DELETE \ + http://localhost:7777/lume/vms/lume_vm + +# Delete with specific storage +curl --connect-timeout 6000 \ + --max-time 5000 \ + -X DELETE \ + http://localhost:7777/lume/vms/lume_vm?storage=ssd +``` + + + + +```python +import requests + +# Basic delete +r = requests.delete("http://localhost:7777/lume/vms/lume_vm", timeout=50) +print(r.status_code) + +# Delete with specific storage +r = requests.delete("http://localhost:7777/lume/vms/lume_vm", params={"storage": "ssd"}, timeout=50) +print(r.status_code) +``` + + + + +```typescript +// Basic delete +let res = await fetch('http://localhost:7777/lume/vms/lume_vm', { + method: 'DELETE', +}); +console.log(res.status); + +// Delete with specific storage +res = await fetch('http://localhost:7777/lume/vms/lume_vm?storage=ssd', { + method: 'DELETE', +}); +console.log(res.status); +``` + + + + +--- + +### Clone VM + +Clone an existing virtual machine. + +`POST: /lume/vms/clone` + +#### Parameters + +| Name | Type | Required | Description | +| -------------- | ------ | -------- | ----------------------------------- | +| name | string | Yes | Source VM name | +| newName | string | Yes | New VM name | +| sourceLocation | string | No | Source storage location (`default`) | +| destLocation | string | No | Destination storage location | + +#### Example Request + + + + +```bash +curl --connect-timeout 6000 \ + --max-time 5000 \ + -X POST \ + -H "Content-Type: application/json" \ + -d '{ + "name": "source-vm", + "newName": "cloned-vm", + "sourceLocation": "default", + "destLocation": "ssd" + }' \ + http://localhost:7777/lume/vms/clone +``` + + + + +```python +import requests + +payload = { + "name": "source-vm", + "newName": "cloned-vm", + "sourceLocation": "default", + "destLocation": "ssd" +} +r = requests.post("http://localhost:7777/lume/vms/clone", json=payload, timeout=50) +print(r.json()) +``` + + + + +```typescript +const payload = { + name: 'source-vm', + newName: 'cloned-vm', + sourceLocation: 'default', + destLocation: 'ssd', +}; +const res = await fetch('http://localhost:7777/lume/vms/clone', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload), +}); +console.log(await res.json()); +``` + + + + +--- + +### Pull VM Image + +Pull a VM image from a registry. + +`POST: /lume/pull` + +#### Parameters + +| Name | Type | Required | Description | +| ------------ | ------ | -------- | ------------------------------------- | +| image | string | Yes | Image name (e.g. `macos-sequoia-...`) | +| name | string | No | VM name for the pulled image | +| registry | string | No | Registry host (e.g. `ghcr.io`) | +| organization | string | No | Organization name | +| storage | string | No | Storage type (`ssd`, etc.) | + +#### Example Request + + + + +```bash +curl --connect-timeout 6000 \ + --max-time 5000 \ + -X POST \ + -H "Content-Type: application/json" \ + -d '{ + "image": "macos-sequoia-vanilla:latest", + "name": "my-vm-name", + "registry": "ghcr.io", + "organization": "trycua", + "storage": "ssd" + }' \ + http://localhost:7777/lume/pull +``` + + + + +```python +import requests + +payload = { + "image": "macos-sequoia-vanilla:latest", + "name": "my-vm-name", + "registry": "ghcr.io", + "organization": "trycua", + "storage": "ssd" +} +r = requests.post("http://localhost:7777/lume/pull", json=payload, timeout=50) +print(r.json()) +``` + + + + +```typescript +const payload = { + image: 'macos-sequoia-vanilla:latest', + name: 'my-vm-name', + registry: 'ghcr.io', + organization: 'trycua', + storage: 'ssd', +}; +const res = await fetch('http://localhost:7777/lume/pull', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload), +}); +console.log(await res.json()); +``` + + + + +--- + +### Push VM Image + +Push a VM to a registry as an image (asynchronous operation). + +`POST: /lume/vms/push` + +#### Parameters + +| Name | Type | Required | Description | +| ------------ | ------------ | -------- | ----------------------------------------------- | +| name | string | Yes | Local VM name to push | +| imageName | string | Yes | Image name in registry | +| tags | array | Yes | Image tags (e.g. `["latest", "v1"]`) | +| organization | string | Yes | Organization name | +| registry | string | No | Registry host (e.g. `ghcr.io`) | +| chunkSizeMb | integer | No | Chunk size in MB for upload | +| storage | string/null | No | Storage type (`ssd`, etc.) | + +#### Example Request + + + + +```bash +curl --connect-timeout 6000 \ + --max-time 5000 \ + -X POST \ + -H "Content-Type: application/json" \ + -d '{ + "name": "my-local-vm", + "imageName": "my-image", + "tags": ["latest", "v1"], + "organization": "my-org", + "registry": "ghcr.io", + "chunkSizeMb": 512, + "storage": null + }' \ + http://localhost:7777/lume/vms/push +``` + + + + +```python +import requests + +payload = { + "name": "my-local-vm", + "imageName": "my-image", + "tags": ["latest", "v1"], + "organization": "my-org", + "registry": "ghcr.io", + "chunkSizeMb": 512, + "storage": None +} +r = requests.post("http://localhost:7777/lume/vms/push", json=payload, timeout=50) +print(r.json()) +``` + + + + +```typescript +const payload = { + name: 'my-local-vm', + imageName: 'my-image', + tags: ['latest', 'v1'], + organization: 'my-org', + registry: 'ghcr.io', + chunkSizeMb: 512, + storage: null, +}; +const res = await fetch('http://localhost:7777/lume/vms/push', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload), +}); +console.log(await res.json()); +``` + + + + +**Response (202 Accepted):** + +```json +{ + "message": "Push initiated in background", + "name": "my-local-vm", + "imageName": "my-image", + "tags": [ + "latest", + "v1" + ] +} +``` + +--- + +### List Images + +List available VM images. + +`GET: /lume/images` + +#### Example Request + + + + +```bash +curl --connect-timeout 6000 \ + --max-time 5000 \ + http://localhost:7777/lume/images +``` + + + + +```python +import requests + +r = requests.get("http://localhost:7777/lume/images", timeout=50) +print(r.json()) +``` + + + + +```typescript +const res = await fetch('http://localhost:7777/lume/images'); +console.log(await res.json()); +``` + + + + +```json +{ + "local": [ + "macos-sequoia-xcode:latest", + "macos-sequoia-vanilla:latest" + ] +} +``` + +--- + +### Prune Images + +Remove unused VM images to free up disk space. + +`POST: /lume/prune` + +#### Example Request + + + + +```bash +curl --connect-timeout 6000 \ + --max-time 5000 \ + -X POST \ + http://localhost:7777/lume/prune +``` + + + + +```python +import requests + +r = requests.post("http://localhost:7777/lume/prune", timeout=50) +print(r.json()) +``` + + + + +```typescript +const res = await fetch('http://localhost:7777/lume/prune', { + method: 'POST', +}); +console.log(await res.json()); +``` + + + + +--- + +### Get Latest IPSW URL + +Get the URL for the latest macOS IPSW file. + +`GET: /lume/ipsw` + +#### Example Request + + + + +```bash +curl --connect-timeout 6000 \ + --max-time 5000 \ + http://localhost:7777/lume/ipsw +``` + + + + +```python +import requests + +r = requests.get("http://localhost:7777/lume/ipsw", timeout=50) +print(r.json()) +``` + + + + +```typescript +const res = await fetch('http://localhost:7777/lume/ipsw'); +console.log(await res.json()); +``` + + + + +--- + +## Configuration Management + +### Get Configuration + +Get current Lume configuration settings. + +`GET: /lume/config` + +#### Example Request + + + + +```bash +curl --connect-timeout 6000 \ + --max-time 5000 \ + http://localhost:7777/lume/config +``` + + + + +```python +import requests + +r = requests.get("http://localhost:7777/lume/config", timeout=50) +print(r.json()) +``` + + + + +```typescript +const res = await fetch('http://localhost:7777/lume/config'); +console.log(await res.json()); +``` + + + + +```json +{ + "homeDirectory": "~/.lume", + "cacheDirectory": "~/.lume/cache", + "cachingEnabled": true +} +``` + +### Update Configuration + +Update Lume configuration settings. + +`POST: /lume/config` + +#### Parameters + +| Name | Type | Required | Description | +| --------------- | ------- | -------- | -------------------------------- | +| homeDirectory | string | No | Lume home directory path | +| cacheDirectory | string | No | Cache directory path | +| cachingEnabled | boolean | No | Enable or disable caching | + +#### Example Request + + + + +```bash +curl --connect-timeout 6000 \ + --max-time 5000 \ + -X POST \ + -H "Content-Type: application/json" \ + -d '{ + "homeDirectory": "~/custom/lume", + "cacheDirectory": "~/custom/lume/cache", + "cachingEnabled": true + }' \ + http://localhost:7777/lume/config +``` + + + + +```python +import requests + +payload = { + "homeDirectory": "~/custom/lume", + "cacheDirectory": "~/custom/lume/cache", + "cachingEnabled": True +} +r = requests.post("http://localhost:7777/lume/config", json=payload, timeout=50) +print(r.json()) +``` + + + + +```typescript +const payload = { + homeDirectory: '~/custom/lume', + cacheDirectory: '~/custom/lume/cache', + cachingEnabled: true, +}; +const res = await fetch('http://localhost:7777/lume/config', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload), +}); +console.log(await res.json()); +``` + + + + +--- + +## Storage Location Management + +### Get VM Storage Locations + +List all configured VM storage locations. + +`GET: /lume/config/locations` + +#### Example Request + + + + +```bash +curl --connect-timeout 6000 \ + --max-time 5000 \ + http://localhost:7777/lume/config/locations +``` + + + + +```python +import requests + +r = requests.get("http://localhost:7777/lume/config/locations", timeout=50) +print(r.json()) +``` + + + + +```typescript +const res = await fetch('http://localhost:7777/lume/config/locations'); +console.log(await res.json()); +``` + + + + +```json +[ + { + "name": "default", + "path": "~/.lume/vms", + "isDefault": true + }, + { + "name": "ssd", + "path": "/Volumes/SSD/lume/vms", + "isDefault": false + } +] +``` + +### Add VM Storage Location + +Add a new VM storage location. + +`POST: /lume/config/locations` + +#### Parameters + +| Name | Type | Required | Description | +| ---- | ------ | -------- | ---------------------------- | +| name | string | Yes | Storage location name | +| path | string | Yes | File system path for storage | + +#### Example Request + @@ -169,1068 +1265,3 @@ console.log(await res.json()); - "name": "lume_vm", - "os": "macOS", - "cpu": 2, - "memory": "4GB", - "diskSize": "64GB", - "display": "1024x768", - "ipsw": "latest", - "storage": "ssd" - }' \ - http://localhost:7777/lume/vms -``` - - - - -```python -import requests - -payload = { - "name": "lume_vm", - "os": "macOS", - "cpu": 2, - "memory": "4GB", - "diskSize": "64GB", - "display": "1024x768", - "ipsw": "latest", - "storage": "ssd" -} -r = requests.post("http://localhost:7777/lume/vms", json=payload, timeout=50) -print(r.json()) -``` - - - - -```typescript -const payload = { - name: "lume_vm", - os: "macOS", - cpu: 2, - memory: "4GB", - diskSize: "64GB", - display: "1024x768", - ipsw: "latest", - storage: "ssd" -} - -const res = await fetch('http://localhost:7777/lume/vms', { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify(payload), -}); -console.log(await res.json()) -``` - - - - -### Run VM - -Run a virtual machine instance. - -`POST: /vms/:name/run` - -#### Parameters - -| Name | Type | Required | Description | -| ----------------- | --------------- | -------- | --------------------------------------------------- | -| noDisplay | boolean | No | If true, do not start VNC client | -| sharedDirectories | array of object | No | List of shared directories (`hostPath`, `readOnly`) | -| recoveryMode | boolean | No | Start in recovery mode | -| storage | string | No | Storage type (`ssd`, etc.) | - -#### Example Request - - - - -```bash -# Basic run -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X POST \ - http://localhost:7777/lume/vms/my-vm-name/run - -# Run with VNC client started and shared directory -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X POST \ - -H "Content-Type: application/json" \ - -d '{ - "noDisplay": false, - "sharedDirectories": [ - { - "hostPath": "~/Projects", - "readOnly": false - } - ], - "recoveryMode": false, - "storage": "ssd" - }' \ - http://localhost:7777/lume/vms/lume_vm/run -``` - - - - -```python -import requests - -# Basic run -r = requests.post("http://localhost:7777/lume/vms/my-vm-name/run", timeout=50) -print(r.json()) - -# With VNC and shared directory -payload = { - "noDisplay": False, - "sharedDirectories": [ - {"hostPath": "~/Projects", "readOnly": False} - ], - "recoveryMode": False, - "storage": "ssd" -} -r = requests.post("http://localhost:7777/lume/vms/lume_vm/run", json=payload, timeout=50) -print(r.json()) -``` - - - - -```typescript -// Basic run -const res = await fetch('http://localhost:7777/lume/vms/my-vm-name/run', { - method: 'POST', -}); -console.log(await res.json()); - -// With VNC and shared directory -const payload = { - noDisplay: false, - sharedDirectories: [{ hostPath: '~/Projects', readOnly: false }], - recoveryMode: false, - storage: 'ssd', -}; -const res2 = await fetch('http://localhost:7777/lume/vms/lume_vm/run', { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify(payload), -}); -console.log(await res2.json()); -``` - - - - -### List VMs - -List all virtual machines. - -`GET: /vms` - -#### Example Request - - - - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - http://localhost:7777/lume/vms -``` - - - - -```python -import requests - -r = requests.get("http://localhost:7777/lume/vms", timeout=50) -print(r.json()) -``` - - - - -```typescript -const res = await fetch('http://localhost:7777/lume/vms'); -console.log(await res.json()); -``` - - - - -```json -[ - { - "name": "my-vm", - "state": "stopped", - "os": "macOS", - "cpu": 2, - "memory": "4GB", - "diskSize": "64GB" - }, - { - "name": "my-vm-2", - "state": "stopped", - "os": "linux", - "cpu": 2, - "memory": "4GB", - "diskSize": "64GB" - } -] -``` - -### Get VM Details - -Get details for a specific virtual machine. - -`GET: /vms/:name` - -#### Parameters - -| Name | Type | Required | Description | -| ------- | ------ | -------- | -------------------------- | -| storage | string | No | Storage type (`ssd`, etc.) | - -#### Example Request - - - - -```bash -# Basic get -curl --connect-timeout 6000 \ - --max-time 5000 \ - http://localhost:7777/lume/vms/lume_vm - -# Get with specific storage -curl --connect-timeout 6000 \ - --max-time 5000 \ - http://localhost:7777/lume/vms/lume_vm?storage=ssd -``` - - - - -```python -import requests - -# Basic get -details = requests.get("http://localhost:7777/lume/vms/lume_vm", timeout=50) -print(details.json()) - -# Get with specific storage -details = requests.get("http://localhost:7777/lume/vms/lume_vm", params={"storage": "ssd"}, timeout=50) -print(details.json()) -``` - - - - -```typescript -// Basic get -const res = await fetch('http://localhost:7777/lume/vms/lume_vm'); -console.log(await res.json()); - -// Get with specific storage -const res2 = await fetch('http://localhost:7777/lume/vms/lume_vm?storage=ssd'); -console.log(await res2.json()); -``` - - - - -```json -{ - "name": "lume_vm", - "state": "stopped", - "os": "macOS", - "cpu": 2, - "memory": "4GB", - "diskSize": "64GB", - "display": "1024x768", - "ipAddress": "192.168.65.2", - "vncPort": 5900, - "sharedDirectories": [ - { - "hostPath": "~/Projects", - "readOnly": false, - "tag": "com.apple.virtio-fs.automount" - } - ] -} -``` - -### Update VM Configuration - -Update the configuration of a virtual machine. - -`PATCH: /vms/:name` - -#### Parameters - -| Name | Type | Required | Description | -| -------- | ------- | -------- | ------------------------------------- | -| cpu | integer | No | Number of CPU cores | -| memory | string | No | Memory size (e.g. `8GB`) | -| diskSize | string | No | Disk size (e.g. `100GB`) | -| display | string | No | Display resolution (e.g. `1920x1080`) | -| storage | string | No | Storage type (`ssd`, etc.) | - -#### Example Request - - - - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X PATCH \ - -H "Content-Type: application/json" \ - -d '{ - "cpu": 4, - "memory": "8GB", - "diskSize": "100GB", - "display": "1920x1080", - "storage": "ssd" - }' \ - http://localhost:7777/lume/vms/lume_vm -``` - - - - -```python -import requests - -payload = { - "cpu": 4, - "memory": "8GB", - "diskSize": "100GB", - "display": "1920x1080", - "storage": "ssd" -} -r = requests.patch("http://localhost:7777/lume/vms/lume_vm", json=payload, timeout=50) -print(r.json()) -``` - - - - -```typescript -const payload = { - cpu: 4, - memory: '8GB', - diskSize: '100GB', - display: '1920x1080', - storage: 'ssd', -}; -const res = await fetch('http://localhost:7777/lume/vms/lume_vm', { - method: 'PATCH', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify(payload), -}); -console.log(await res.json()); -``` - - - - -### Stop VM - -Stop a running virtual machine. - -`POST: /vms/:name/stop` - -#### Parameters - -| Name | Type | Required | Description | -| ------- | ------ | -------- | -------------------------- | -| storage | string | No | Storage type (`ssd`, etc.) | - -#### Example Request - - - - -```bash -# Basic stop -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X POST \ - http://localhost:7777/lume/vms/lume_vm/stop - -# Stop with storage location specified -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X POST \ - http://localhost:7777/lume/vms/lume_vm/stop?storage=ssd -``` - - - - -```python -import requests - -# Basic stop -r = requests.post("http://localhost:7777/lume/vms/lume_vm/stop", timeout=50) -print(r.json()) - -# Stop with storage location specified -r = requests.post("http://localhost:7777/lume/vms/lume_vm/stop", params={"storage": "ssd"}, timeout=50) -print(r.json()) -``` - - - - -```typescript -// Basic stop -const res = await fetch('http://localhost:7777/lume/vms/lume_vm/stop', { - method: 'POST', -}); -console.log(await res.json()); - -// Stop with storage location specified -const res2 = await fetch('http://localhost:7777/lume/vms/lume_vm/stop?storage=ssd', { - method: 'POST', -}); -console.log(await res2.json()); -``` - - - - -### Delete VM - -Delete a virtual machine instance. - -`DELETE: /vms/:name` - -#### Parameters - -| Name | Type | Required | Description | -| ------- | ------ | -------- | -------------------------- | -| storage | string | No | Storage type (`ssd`, etc.) | - -#### Example Request - - - - -```bash -# Basic delete -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X DELETE \ - http://localhost:7777/lume/vms/lume_vm - -# Delete with specific storage -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X DELETE \ - http://localhost:7777/lume/vms/lume_vm?storage=ssd -``` - - - - -```python -import requests - -# Basic delete -r = requests.delete("http://localhost:7777/lume/vms/lume_vm", timeout=50) -print(r.status_code) - -# Delete with specific storage -r = requests.delete("http://localhost:7777/lume/vms/lume_vm", params={"storage": "ssd"}, timeout=50) -print(r.status_code) -``` - - - - -```typescript -// Basic delete -const res = await fetch('http://localhost:7777/lume/vms/lume_vm', { - method: 'DELETE', -}); -console.log(res.status); - -// Delete with specific storage -const res2 = await fetch('http://localhost:7777/lume/vms/lume_vm?storage=ssd', { - method: 'DELETE', -}); -console.log(res2.status); -``` - - - - -### Clone VM - -Clone an existing virtual machine. - -`POST: /vms/:name/clone` - -#### Parameters - -| Name | Type | Required | Description | -| -------------- | ------ | -------- | ----------------------------------- | -| name | string | Yes | Source VM name | -| newName | string | Yes | New VM name | -| sourceLocation | string | No | Source storage location (`default`) | -| destLocation | string | No | Destination storage location | - -#### Example Request - - - - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X POST \ - -H "Content-Type: application/json" \ - -d '{ - "name": "source-vm", - "newName": "cloned-vm", - "sourceLocation": "default", - "destLocation": "ssd" - }' \ - http://localhost:7777/lume/vms/clone -``` - - - - -```python -import requests - -payload = { - "name": "source-vm", - "newName": "cloned-vm", - "sourceLocation": "default", - "destLocation": "ssd" -} -r = requests.post("http://localhost:7777/lume/vms/clone", json=payload, timeout=50) -print(r.json()) -``` - - - - -```typescript -const payload = { - name: 'source-vm', - newName: 'cloned-vm', - sourceLocation: 'default', - destLocation: 'ssd', -}; -const res = await fetch('http://localhost:7777/lume/vms/clone', { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify(payload), -}); -console.log(await res.json()); -``` - - - - -### Pull VM Image - -Pull a VM image from a registry. - -`POST: /pull` - -#### Parameters - -| Name | Type | Required | Description | -| ------------ | ------ | -------- | ------------------------------------- | -| image | string | Yes | Image name (e.g. `macos-sequoia-...`) | -| name | string | No | VM name for the pulled image | -| registry | string | No | Registry host (e.g. `ghcr.io`) | -| organization | string | No | Organization name | -| storage | string | No | Storage type (`ssd`, etc.) | - -#### Example Request - - - - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X POST \ - -H "Content-Type: application/json" \ - -d '{ - "image": "macos-sequoia-vanilla:latest", - "name": "my-vm-name", - "registry": "ghcr.io", - "organization": "trycua", - "storage": "ssd" - }' \ - http://localhost:7777/lume/pull -``` - - - - -```python -import requests - -payload = { - "image": "macos-sequoia-vanilla:latest", - "name": "my-vm-name", - "registry": "ghcr.io", - "organization": "trycua", - "storage": "ssd" -} -r = requests.post("http://localhost:7777/lume/pull", json=payload, timeout=50) -print(r.json()) -``` - - - - -```typescript -const payload = { - image: 'macos-sequoia-vanilla:latest', - name: 'my-vm-name', - registry: 'ghcr.io', - organization: 'trycua', - storage: 'ssd', -}; -const res = await fetch('http://localhost:7777/lume/pull', { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify(payload), -}); -console.log(await res.json()); -``` - - - - -### Push VM Image - -Push a VM to a registry as an image (asynchronous operation). - -`POST: /vms/push` - -#### Parameters - -| Name | Type | Required | Description | -| ------------ | ------------ | -------- | ----------------------------------------------- | -| name | string | Yes | Local VM name to push | -| imageName | string | Yes | Image name in registry | -| tags | array | Yes | Image tags (e.g. `["latest", "v1"]`) | -| organization | string | Yes | Organization name | -| registry | string | No | Registry host (e.g. `ghcr.io`) | -| chunkSizeMb | integer | No | Chunk size in MB for upload | -| storage | string/null | No | Storage type (`ssd`, etc.) | - -#### Example Request - - - - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X POST \ - -H "Content-Type: application/json" \ - -d '{ - "name": "my-local-vm", - "imageName": "my-image", - "tags": ["latest", "v1"], - "organization": "my-org", - "registry": "ghcr.io", - "chunkSizeMb": 512, - "storage": null - }' \ - http://localhost:7777/lume/vms/push -``` - - - - -```python -import requests - -payload = { - "name": "my-local-vm", - "imageName": "my-image", - "tags": ["latest", "v1"], - "organization": "my-org", - "registry": "ghcr.io", - "chunkSizeMb": 512, - "storage": None -} -r = requests.post("http://localhost:7777/lume/vms/push", json=payload, timeout=50) -print(r.json()) -``` - - - - -```typescript -const payload = { - name: 'my-local-vm', - imageName: 'my-image', - tags: ['latest', 'v1'], - organization: 'my-org', - registry: 'ghcr.io', - chunkSizeMb: 512, - storage: null, -}; -const res = await fetch('http://localhost:7777/lume/vms/push', { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify(payload), -}); -console.log(await res.json()); -``` - - - - -**Response (202 Accepted):** - -```json -{ - "message": "Push initiated in background", - "name": "my-local-vm", - "imageName": "my-image", - "tags": [ - "latest", - "v1" - ] -} -``` - -### List Images - -List available VM images. - -`GET: /images` - -#### Example Request - - - - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - http://localhost:7777/lume/images -``` - - - - -```python -import requests - -r = requests.get("http://localhost:7777/lume/images", timeout=50) -print(r.json()) -``` - - - - -```typescript -const res = await fetch('http://localhost:7777/lume/images'); -console.log(await res.json()); -``` - - - - -```json -{ - "local": [ - "macos-sequoia-xcode:latest", - "macos-sequoia-vanilla:latest" - ] -} -``` - -### Prune Images - -Remove unused VM images to free up disk space. - -`POST: /lume/prune` - -#### Example Request - - - - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X POST \ - http://localhost:7777/lume/prune -``` - - - - -```python -import requests - -r = requests.post("http://localhost:7777/lume/prune", timeout=50) -print(r.json()) -``` - - - - -```typescript -const res = await fetch('http://localhost:7777/lume/prune', { - method: 'POST', -}); -console.log(await res.json()); -``` - - - - -### Get Latest IPSW URL - -Get the URL for the latest macOS IPSW file. - -`GET: /ipsw` - -#### Example Request - - - - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - http://localhost:7777/lume/ipsw -``` - - - - -```python -import requests - -r = requests.get("http://localhost:7777/lume/ipsw", timeout=50) -print(r.json()) -``` - - - - -```typescript -const res = await fetch('http://localhost:7777/lume/ipsw'); -console.log(await res.json()); -``` - - - - -## Configuration Management - -### Get Configuration - -Get current Lume configuration settings. - -`GET: /lume/config` - -#### Example Request - - - - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - http://localhost:7777/lume/config -``` - - - - -```python -import requests - -r = requests.get("http://localhost:7777/lume/config", timeout=50) -print(r.json()) -``` - - - - -```typescript -const res = await fetch('http://localhost:7777/lume/config'); -console.log(await res.json()); -``` - - - - -```json -{ - "homeDirectory": "~/.lume", - "cacheDirectory": "~/.lume/cache", - "cachingEnabled": true -} -``` - -### Update Configuration - -Update Lume configuration settings. - -`POST: /lume/config` - -#### Parameters - -| Name | Type | Required | Description | -| --------------- | ------- | -------- | -------------------------------- | -| homeDirectory | string | No | Lume home directory path | -| cacheDirectory | string | No | Cache directory path | -| cachingEnabled | boolean | No | Enable or disable caching | - -#### Example Request - - - - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X POST \ - -H "Content-Type: application/json" \ - -d '{ - "homeDirectory": "~/custom/lume", - "cacheDirectory": "~/custom/lume/cache", - "cachingEnabled": true - }' \ - http://localhost:7777/lume/config -``` - - - - -```python -import requests - -payload = { - "homeDirectory": "~/custom/lume", - "cacheDirectory": "~/custom/lume/cache", - "cachingEnabled": True -} -r = requests.post("http://localhost:7777/lume/config", json=payload, timeout=50) -print(r.json()) -``` - - - - -```typescript -const payload = { - homeDirectory: '~/custom/lume', - cacheDirectory: '~/custom/lume/cache', - cachingEnabled: true, -}; -const res = await fetch('http://localhost:7777/lume/config', { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify(payload), -}); -console.log(await res.json()); -``` - - - - -## Storage Location Management - -### Get VM Storage Locations - -List all configured VM storage locations. - -`GET: /lume/config/locations` - -#### Example Request - - - - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - http://localhost:7777/lume/config/locations -``` - - - - -```python -import requests - -r = requests.get("http://localhost:7777/lume/config/locations", timeout=50) -print(r.json()) -``` - - - - -```typescript -const res = await fetch('http://localhost:7777/lume/config/locations'); -console.log(await res.json()); -``` - - - - -```json -[ - { - "name": "default", - "path": "~/.lume/vms", - "isDefault": true - }, - { - "name": "ssd", - "path": "/Volumes/SSD/lume/vms", - "isDefault": false - } -] -``` - -### Add VM Storage Location - -Add a new VM storage location. - -`POST: /lume/config/locations` - -#### Parameters - -| Name | Type | Required | Description | -| ---- | ------ | -------- | ------------------------------ | -| name | string | Yes | Storage location name | -| path | string | Yes | File system path for storage | - -#### Example Request - - - - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X POST \ - -H "Content-Type: application/json" \ - -d '{ \ No newline at end of file From 9294540c1584b5c324a38642d283a19c5f4617ba Mon Sep 17 00:00:00 2001 From: James Murdza Date: Wed, 27 Aug 2025 20:44:58 -0400 Subject: [PATCH 089/103] Use callouts for notes --- docs/content/docs/agent-sdk/prompt-caching.mdx | 4 +++- .../docs/libraries/lume/cli-reference.mdx | 18 ++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/docs/content/docs/agent-sdk/prompt-caching.mdx b/docs/content/docs/agent-sdk/prompt-caching.mdx index 5049b4bb..721895c5 100644 --- a/docs/content/docs/agent-sdk/prompt-caching.mdx +++ b/docs/content/docs/agent-sdk/prompt-caching.mdx @@ -25,7 +25,9 @@ agent = ComputerAgent( When using Anthropic-based CUAs (Claude models), setting `use_prompt_caching=True` will automatically add `{ "cache_control": "ephemeral" }` to your messages. This enables prompt caching for the session and can speed up repeated runs with the same prompt. -> **Note:** This argument is only required for Anthropic CUAs. For other providers, it is ignored. + +This argument is only required for Anthropic CUAs. For other providers, it is ignored. + ## OpenAI Provider diff --git a/docs/content/docs/libraries/lume/cli-reference.mdx b/docs/content/docs/libraries/lume/cli-reference.mdx index 4837d154..90edf035 100644 --- a/docs/content/docs/libraries/lume/cli-reference.mdx +++ b/docs/content/docs/libraries/lume/cli-reference.mdx @@ -3,6 +3,8 @@ title: Lume CLI Reference description: Command Line Interface reference for Lume --- +import { Callout } from 'fumadocs-ui/components/callout'; + Lume is a lightweight Command Line Interface and local API server for creating, running and managing **macOS and Linux virtual machines** with near-native performance on Apple Silicon, using Apple's [Virtualization.Framework](https://developer.apple.com/documentation/virtualization). ## Quick Start @@ -16,7 +18,9 @@ Install and run a prebuilt macOS VM in two commands: lume run macos-sequoia-vanilla:latest ``` -> **Security Note**: All prebuilt images use the default password `lume`. Change this immediately after your first login using the `passwd` command. + +All prebuilt images use the default password `lume`. Change this immediately after your first login using the `passwd` command. + **System Requirements**: - Apple Silicon Mac (M1, M2, M3, etc.) @@ -38,7 +42,9 @@ By default, Lume is installed as a background service that starts automatically /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh) --no-background-service" ``` -> **Note:** With this option, you'll need to manually start the Lume API service by running `lume serve` in your terminal whenever you need to use tools or libraries that rely on the Lume API (such as the Computer-Use Agent). + +With this option, you'll need to manually start the Lume API service by running `lume serve` in your terminal whenever you need to use tools or libraries that rely on the Lume API (such as the Computer-Use Agent). + You can also download the `lume.pkg.tar.gz` archive from the [latest release](https://github.com/trycua/cua/releases?q=lume&expanded=true), extract it, and install the package manually. @@ -56,7 +62,9 @@ lume run macos-sequoia-vanilla:latest lume run ubuntu-noble-vanilla:latest ``` -> We provide prebuilt VM images in our [ghcr registry](https://github.com/orgs/trycua/packages). + +We provide prebuilt VM images in our [ghcr registry](https://github.com/orgs/trycua/packages). + ### Create a Custom VM @@ -68,4 +76,6 @@ lume create my-macos-vm --cpu 4 --memory 8GB --disk-size 50GB lume create my-linux-vm --os linux --cpu 2 --memory 4GB ``` -> **Disk Space**: The actual disk space used by sparse images will be much lower than the logical size listed. You can resize VM disks after creation using `lume set --disk-size `. + +The actual disk space used by sparse images will be much lower than the logical size listed. You can resize VM disks after creation using `lume set --disk-size `. + From 1be96220c16cb60a6fa9b0a8881fbda54d1fc7c6 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Wed, 27 Aug 2025 21:01:30 -0400 Subject: [PATCH 090/103] Add Installation page to Lume docs --- .../docs/libraries/lume/cli-reference.mdx | 45 ------------------- docs/content/docs/libraries/lume/index.mdx | 4 +- .../docs/libraries/lume/installation.mdx | 45 +++++++++++++++++++ docs/content/docs/libraries/lume/meta.json | 7 +++ 4 files changed, 53 insertions(+), 48 deletions(-) create mode 100644 docs/content/docs/libraries/lume/installation.mdx create mode 100644 docs/content/docs/libraries/lume/meta.json diff --git a/docs/content/docs/libraries/lume/cli-reference.mdx b/docs/content/docs/libraries/lume/cli-reference.mdx index 90edf035..8c4b2c61 100644 --- a/docs/content/docs/libraries/lume/cli-reference.mdx +++ b/docs/content/docs/libraries/lume/cli-reference.mdx @@ -5,51 +5,6 @@ description: Command Line Interface reference for Lume import { Callout } from 'fumadocs-ui/components/callout'; -Lume is a lightweight Command Line Interface and local API server for creating, running and managing **macOS and Linux virtual machines** with near-native performance on Apple Silicon, using Apple's [Virtualization.Framework](https://developer.apple.com/documentation/virtualization). - -## Quick Start - -Install and run a prebuilt macOS VM in two commands: - -```bash -# Install Lume -/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh)" -# Pull & start a macOS image -lume run macos-sequoia-vanilla:latest -``` - - -All prebuilt images use the default password `lume`. Change this immediately after your first login using the `passwd` command. - - -**System Requirements**: -- Apple Silicon Mac (M1, M2, M3, etc.) -- macOS 13.0 or later -- At least 8GB of RAM (16GB recommended) -- At least 50GB of free disk space - -## Install - -Install with a single command: - -```bash -/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh)" -``` - -By default, Lume is installed as a background service that starts automatically on login. If you prefer to start the Lume API service manually when needed, you can use the `--no-background-service` option: - -```bash -/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh) --no-background-service" -``` - - -With this option, you'll need to manually start the Lume API service by running `lume serve` in your terminal whenever you need to use tools or libraries that rely on the Lume API (such as the Computer-Use Agent). - - -You can also download the `lume.pkg.tar.gz` archive from the [latest release](https://github.com/trycua/cua/releases?q=lume&expanded=true), extract it, and install the package manually. - -## Using Lume - Once installed, you can start using Lume with these common workflows: ### Run a Prebuilt VM diff --git a/docs/content/docs/libraries/lume/index.mdx b/docs/content/docs/libraries/lume/index.mdx index 28080bff..d62c80e0 100644 --- a/docs/content/docs/libraries/lume/index.mdx +++ b/docs/content/docs/libraries/lume/index.mdx @@ -5,6 +5,4 @@ github: - https://github.com/trycua/cua/tree/main/libs/lume --- -## Overview - -The Lume CLI provides command line tools for managing virtual machines with Lume. +Lume is a lightweight Command Line Interface and local API server for creating, running and managing **macOS and Linux virtual machines** with near-native performance on Apple Silicon, using Apple's [Virtualization.Framework](https://developer.apple.com/documentation/virtualization). \ No newline at end of file diff --git a/docs/content/docs/libraries/lume/installation.mdx b/docs/content/docs/libraries/lume/installation.mdx new file mode 100644 index 00000000..dac0df75 --- /dev/null +++ b/docs/content/docs/libraries/lume/installation.mdx @@ -0,0 +1,45 @@ +--- +title: Installation +description: Installation instructions for the current version of the Lume CLI. +--- + +## Quick Start + +Install and run a prebuilt macOS VM in two commands: + +```bash +# Install Lume +/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh)" +# Pull & start a macOS image +lume run macos-sequoia-vanilla:latest +``` + + +All prebuilt images use the default password `lume`. Change this immediately after your first login using the `passwd` command. + + +**System Requirements**: +- Apple Silicon Mac (M1, M2, M3, etc.) +- macOS 13.0 or later +- At least 8GB of RAM (16GB recommended) +- At least 50GB of free disk space + +## Install + +Install with a single command: + +```bash +/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh)" +``` + +By default, Lume is installed as a background service that starts automatically on login. If you prefer to start the Lume API service manually when needed, you can use the `--no-background-service` option: + +```bash +/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh) --no-background-service" +``` + + +With this option, you'll need to manually start the Lume API service by running `lume serve` in your terminal whenever you need to use tools or libraries that rely on the Lume API (such as the Computer-Use Agent). + + +You can also download the `lume.pkg.tar.gz` archive from the [latest release](https://github.com/trycua/cua/releases?q=lume&expanded=true), extract it, and install the package manually. \ No newline at end of file diff --git a/docs/content/docs/libraries/lume/meta.json b/docs/content/docs/libraries/lume/meta.json new file mode 100644 index 00000000..dbca49ea --- /dev/null +++ b/docs/content/docs/libraries/lume/meta.json @@ -0,0 +1,7 @@ +{ + "pages": [ + "installation", + "cli-reference", + "http-api" + ] +} From 40254ee6522eb35beec75191c82827a1f33fcd72 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Wed, 27 Aug 2025 21:03:11 -0400 Subject: [PATCH 091/103] Organize headers --- docs/content/docs/libraries/lume/installation.mdx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/content/docs/libraries/lume/installation.mdx b/docs/content/docs/libraries/lume/installation.mdx index dac0df75..161e48e0 100644 --- a/docs/content/docs/libraries/lume/installation.mdx +++ b/docs/content/docs/libraries/lume/installation.mdx @@ -3,7 +3,7 @@ title: Installation description: Installation instructions for the current version of the Lume CLI. --- -## Quick Start +## Quickstart Install and run a prebuilt macOS VM in two commands: @@ -24,7 +24,7 @@ All prebuilt images use the default password `lume`. Change this immediately aft - At least 8GB of RAM (16GB recommended) - At least 50GB of free disk space -## Install +## Install with Script Install with a single command: @@ -32,6 +32,7 @@ Install with a single command: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh)" ``` +### Manual Start (No Background Service) By default, Lume is installed as a background service that starts automatically on login. If you prefer to start the Lume API service manually when needed, you can use the `--no-background-service` option: ```bash @@ -42,4 +43,5 @@ By default, Lume is installed as a background service that starts automatically With this option, you'll need to manually start the Lume API service by running `lume serve` in your terminal whenever you need to use tools or libraries that rely on the Lume API (such as the Computer-Use Agent). +## Manual Download and Installation You can also download the `lume.pkg.tar.gz` archive from the [latest release](https://github.com/trycua/cua/releases?q=lume&expanded=true), extract it, and install the package manually. \ No newline at end of file From 7814ea297cdbd10271152eeb72ef4f707092aa84 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Wed, 27 Aug 2025 21:21:39 -0400 Subject: [PATCH 092/103] Extend CLI Reference --- .../docs/libraries/lume/cli-reference.mdx | 173 ++++++++++++++++++ 1 file changed, 173 insertions(+) diff --git a/docs/content/docs/libraries/lume/cli-reference.mdx b/docs/content/docs/libraries/lume/cli-reference.mdx index 8c4b2c61..f532c1a1 100644 --- a/docs/content/docs/libraries/lume/cli-reference.mdx +++ b/docs/content/docs/libraries/lume/cli-reference.mdx @@ -34,3 +34,176 @@ lume create my-linux-vm --os linux --cpu 2 --memory 4GB The actual disk space used by sparse images will be much lower than the logical size listed. You can resize VM disks after creation using `lume set --disk-size `. + +## VM Management + + lume create <name> +Create a new macOS or Linux virtual machine. + +**Options:** +- `--os ` - Operating system to install (macOS or linux, default: macOS) +- `--cpu ` - Number of CPU cores (default: 4) +- `--memory ` - Memory size, e.g., 8GB (default: 4GB) +- `--disk-size ` - Disk size, e.g., 50GB (default: 40GB) +- `--display ` - Display resolution (default: 1024x768) +- `--ipsw ` - Path to IPSW file or 'latest' for macOS VMs +- `--storage ` - VM storage location to use + +**Examples:** +```bash +# Create macOS VM with custom specs +lume create my-mac --cpu 6 --memory 16GB --disk-size 100GB + +# Create Linux VM +lume create my-ubuntu --os linux --cpu 2 --memory 8GB + +# Create macOS VM with latest IPSW +lume create my-sequoia --ipsw latest +``` + + lume run <name> +Start and run a virtual machine. + +**Options:** +- `--no-display` - Do not start the VNC client app +- `--shared-dir

      ` - Share directory with VM (format: path[:ro|rw]) +- `--mount ` - For Linux VMs only, attach a read-only disk image +- `--registry ` - Container registry URL (default: ghcr.io) +- `--organization ` - Organization to pull from (default: trycua) +- `--vnc-port ` - Port to use for the VNC server (default: 0 for auto-assign) +- `--recovery-mode ` - For macOS VMs only, start VM in recovery mode (default: false) +- `--storage ` - VM storage location to use + +**Examples:** +```bash +# Run VM with shared directory +lume run my-vm --shared-dir /path/to/share:rw + +# Run VM without display (headless) +lume run my-vm --no-display + +# Run macOS VM in recovery mode +lume run my-mac --recovery-mode true +``` + + lume stop <name> +Stop a running virtual machine. + +**Options:** +- `--storage ` - VM storage location to use + +### lume delete <name> +Delete a virtual machine and its associated files. + +**Options:** +- `--force` - Force deletion without confirmation +- `--storage ` - VM storage location to use + +### lume clone <name> <new-name> +Create a copy of an existing virtual machine. + +**Options:** +- `--source-storage ` - Source VM storage location +- `--dest-storage ` - Destination VM storage location + +## VM Information and Configuration + +### lume ls +List all virtual machines and their status. + +### lume get <name> +Get detailed information about a specific virtual machine. + +**Options:** +- `-f, --format ` - Output format (json|text) +- `--storage ` - VM storage location to use + +### lume set <name> +Modify virtual machine configuration. + +**Options:** +- `--cpu ` - New number of CPU cores (e.g., 4) +- `--memory ` - New memory size (e.g., 8192MB or 8GB) +- `--disk-size ` - New disk size (e.g., 40960MB or 40GB) +- `--display ` - New display resolution in format WIDTHxHEIGHT (e.g., 1024x768) +- `--storage ` - VM storage location to use + +**Examples:** +```bash +# Increase VM memory +lume set my-vm --memory 16GB + +# Change display resolution +lume set my-vm --display 1920x1080 + +# Add more CPU cores +lume set my-vm --cpu 8 +``` + +## Image Management + +### lume images +List available macOS images in local cache. + +### lume pull <image> +Download a VM image from a container registry. + +**Options:** +- `--registry ` - Container registry URL (default: ghcr.io) +- `--organization ` - Organization to pull from (default: trycua) +- `--storage ` - VM storage location to use + +### lume push <name> <image:tag> +Upload a VM image to a container registry. + +**Options:** +- `--additional-tags ` - Additional tags to push the same image to +- `--registry ` - Container registry URL (default: ghcr.io) +- `--organization ` - Organization/user to push to (default: trycua) +- `--storage ` - VM storage location to use +- `--chunk-size-mb ` - Chunk size for disk image upload in MB (default: 512) +- `--verbose` - Enable verbose logging +- `--dry-run` - Prepare files and show plan without uploading +- `--reassemble` - Verify integrity by reassembling chunks (requires --dry-run) + +### lume ipsw +Get the latest macOS restore image URL. + +### lume prune +Remove cached images to free up disk space. + +## Configuration + +### lume config +Manage Lume configuration settings. + +**Subcommands:** + +##### Storage Management +- `lume config storage add ` - Add a new VM storage location +- `lume config storage remove ` - Remove a VM storage location +- `lume config storage list` - List all VM storage locations +- `lume config storage default ` - Set the default VM storage location + +##### Cache Management +- `lume config cache get` - Get current cache directory +- `lume config cache set ` - Set cache directory + +##### Image Caching +- `lume config caching get` - Show current caching status +- `lume config caching set ` - Enable or disable image caching + +## API Server + +### lume serve +Start the Lume API server for programmatic access. + +**Options:** +- `--port ` - Port to listen on (default: 7777) + +## Global Options + +These options are available for all commands: + +- `--help` - Show help information +- `--version` - Show version number \ No newline at end of file From 667f35a3139da8ce426eb8bf8a0df7dde2044675 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Wed, 27 Aug 2025 21:27:35 -0400 Subject: [PATCH 093/103] Add prebuilt images page --- .../docs/libraries/lume/cli-reference.mdx | 2 +- docs/content/docs/libraries/lume/meta.json | 3 ++- .../docs/libraries/lume/prebuilt-images.mdx | 20 +++++++++++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 docs/content/docs/libraries/lume/prebuilt-images.mdx diff --git a/docs/content/docs/libraries/lume/cli-reference.mdx b/docs/content/docs/libraries/lume/cli-reference.mdx index f532c1a1..5afcc7fe 100644 --- a/docs/content/docs/libraries/lume/cli-reference.mdx +++ b/docs/content/docs/libraries/lume/cli-reference.mdx @@ -18,7 +18,7 @@ lume run ubuntu-noble-vanilla:latest ``` -We provide prebuilt VM images in our [ghcr registry](https://github.com/orgs/trycua/packages). +We provide [prebuilt VM images](../lume/prebuilt-images) in our [ghcr registry](https://github.com/orgs/trycua/packages). ### Create a Custom VM diff --git a/docs/content/docs/libraries/lume/meta.json b/docs/content/docs/libraries/lume/meta.json index dbca49ea..3b274f24 100644 --- a/docs/content/docs/libraries/lume/meta.json +++ b/docs/content/docs/libraries/lume/meta.json @@ -1,7 +1,8 @@ { "pages": [ "installation", - "cli-reference", + "prebuilt-images", + "cli-reference", "http-api" ] } diff --git a/docs/content/docs/libraries/lume/prebuilt-images.mdx b/docs/content/docs/libraries/lume/prebuilt-images.mdx new file mode 100644 index 00000000..0120af43 --- /dev/null +++ b/docs/content/docs/libraries/lume/prebuilt-images.mdx @@ -0,0 +1,20 @@ +--- +title: Prebuilt Images +--- + +Pre-built images are available in the registry [ghcr.io/trycua](https://github.com/orgs/trycua/packages). + +**Important Note (v0.2.0+):** Images are being re-uploaded with sparse file system optimizations enabled, resulting in significantly lower actual disk usage. Older images (without the `-sparse` suffix) are now **deprecated**. The last version of `lume` fully supporting the non-sparse images was `v0.1.x`. Starting from `v0.2.0`, lume will automatically pull images optimized with sparse file system support. + +These images come with an SSH server pre-configured and auto-login enabled. + +For the security of your VM, change the default password `lume` immediately after your first login. + +| Image | Tag | Description | Logical Size | +|-------|------------|-------------|------| +| `macos-sequoia-vanilla` | `latest`, `15.2` | macOS Sequoia 15.2 image | 20GB | +| `macos-sequoia-xcode` | `latest`, `15.2` | macOS Sequoia 15.2 image with Xcode command line tools | 22GB | +| `macos-sequoia-cua` | `latest`, `15.3` | macOS Sequoia 15.3 image compatible with the Computer interface | 24GB | +| `ubuntu-noble-vanilla` | `latest`, `24.04.1` | [Ubuntu Server for ARM 24.04.1 LTS](https://ubuntu.com/download/server/arm) with Ubuntu Desktop | 20GB | + +For additional disk space, resize the VM disk after pulling the image using the `lume set --disk-size ` command. Note that the actual disk space used by sparse images will be much lower than the logical size listed. \ No newline at end of file From 1cb2dec27b5da8c0d61a12baae6997dbe9cfa50c Mon Sep 17 00:00:00 2001 From: James Murdza Date: Wed, 27 Aug 2025 21:33:35 -0400 Subject: [PATCH 094/103] Add FAQ to Lume docs --- docs/content/docs/libraries/lume/faq.md | 116 +++++++++++++++++++++ docs/content/docs/libraries/lume/meta.json | 3 +- 2 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 docs/content/docs/libraries/lume/faq.md diff --git a/docs/content/docs/libraries/lume/faq.md b/docs/content/docs/libraries/lume/faq.md new file mode 100644 index 00000000..98d6b766 --- /dev/null +++ b/docs/content/docs/libraries/lume/faq.md @@ -0,0 +1,116 @@ +--- +title: FAQ +--- + +### Where are the VMs stored? + +VMs are stored in `~/.lume` by default. You can configure additional storage locations using the `lume config` command. + +### How are images cached? + +Images are cached in `~/.lume/cache`. When doing `lume pull `, it will check if the image is already cached. If not, it will download the image and cache it, removing any older versions. + +### Where is the configuration file stored? + +Lume follows the XDG Base Directory specification for the configuration file: + +- Configuration is stored in `$XDG_CONFIG_HOME/lume/config.yaml` (defaults to `~/.config/lume/config.yaml`) + +By default, other data is stored in: +- VM data: `~/.lume` +- Cache files: `~/.lume/cache` + +The config file contains settings for: +- VM storage locations and the default location +- Cache directory location +- Whether caching is enabled + +You can view and modify these settings using the `lume config` commands: + +```bash +# View current configuration +lume config get + +# Manage VM storage locations +lume config storage list # List all VM storage locations +lume config storage add # Add a new VM storage location +lume config storage remove # Remove a VM storage location +lume config storage default # Set the default VM storage location + +# Manage cache settings +lume config cache get # Get current cache directory +lume config cache set # Set cache directory + +# Manage image caching settings +lume config caching get # Show current caching status +lume config caching set # Enable or disable image caching +``` + +### How do I use multiple VM storage locations? + +Lume supports storing VMs in different locations (e.g., internal drive, external SSD). After configuring storage locations, you can specify which location to use with the `--storage` parameter in various commands: + +```bash +# Create a VM in a specific storage location +lume create my-vm --os macos --ipsw latest --storage ssd + +# Run a VM from a specific storage location +lume run my-vm --storage ssd + +# Delete a VM from a specific storage location +lume delete my-vm --storage ssd + +# Pull an image to a specific storage location +lume pull macos-sequoia-vanilla:latest --name my-vm --storage ssd + +# Clone a VM between storage locations +lume clone source-vm cloned-vm --source-storage default --dest-storage ssd +``` + +If you don't specify a storage location, Lume will use the default one or search across all configured locations. + +### Are VM disks taking up all the disk space? + +No, macOS uses sparse files, which only allocate space as needed. For example, VM disks totaling 50 GB may only use 20 GB on disk. + +### How do I get the latest macOS restore image URL? + +```bash +lume ipsw +``` + +### How do I delete a VM? + +```bash +lume delete +``` + +### How to Install macOS from an IPSW Image + +#### Create a new macOS VM using the latest supported IPSW image: +Run the following command to create a new macOS virtual machine using the latest available IPSW image: + +```bash +lume create --os macos --ipsw latest +``` + +#### Create a new macOS VM using a specific IPSW image: +To create a macOS virtual machine from an older or specific IPSW file, first download the desired IPSW (UniversalMac) from a trusted source. + +Then, use the downloaded IPSW path: + +```bash +lume create --os macos --ipsw +``` + +### How do I install a custom Linux image? + +The process for creating a custom Linux image differs than macOS, with IPSW restore files not being used. You need to create a linux VM first, then mount a setup image file to the VM for the first boot. + +```bash +lume create --os linux + +lume run --mount + +lume run +``` diff --git a/docs/content/docs/libraries/lume/meta.json b/docs/content/docs/libraries/lume/meta.json index 3b274f24..5f4d907a 100644 --- a/docs/content/docs/libraries/lume/meta.json +++ b/docs/content/docs/libraries/lume/meta.json @@ -3,6 +3,7 @@ "installation", "prebuilt-images", "cli-reference", - "http-api" + "http-api", + "faq" ] } From d2500a2c47be67d5390f7f9f02ab4b7bf22cfec9 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Wed, 27 Aug 2025 21:39:37 -0400 Subject: [PATCH 095/103] Replace text in READMEs with links to Cua documentations --- libs/lume/{docs => }/Development.md | 8 + libs/lume/README.md | 172 ++----------- libs/lume/docs/API-Reference.md | 387 ---------------------------- libs/lume/docs/FAQ.md | 114 -------- 4 files changed, 28 insertions(+), 653 deletions(-) rename libs/lume/{docs => }/Development.md (76%) delete mode 100644 libs/lume/docs/API-Reference.md delete mode 100644 libs/lume/docs/FAQ.md diff --git a/libs/lume/docs/Development.md b/libs/lume/Development.md similarity index 76% rename from libs/lume/docs/Development.md rename to libs/lume/Development.md index cbaa4df5..0ddf8c5e 100644 --- a/libs/lume/docs/Development.md +++ b/libs/lume/Development.md @@ -10,6 +10,14 @@ Lume development requires: - macOS Sequoia 15.2 or higher - (Optional) VS Code with Swift extension +If you're working on Lume in the context of the Cua monorepo, we recommend using the dedicated VS Code workspace configuration: + +```bash +# Open VS Code workspace from the root of the monorepo +code .vscode/lume.code-workspace +``` +This workspace is preconfigured with Swift language support, build tasks, and debug configurations. + ## Setting Up the Repository Locally 1. **Fork the Repository**: Create your own fork of lume diff --git a/libs/lume/README.md b/libs/lume/README.md index ac4257e0..c90c250a 100644 --- a/libs/lume/README.md +++ b/libs/lume/README.md @@ -23,174 +23,42 @@ lume cli - ```bash lume run macos-sequoia-vanilla:latest ``` -## Development Environment +## Quickstart -If you're working on Lume in the context of the CUA monorepo, we recommend using the dedicated VS Code workspace configuration: - -```bash -# Open VS Code workspace from the root of the monorepo -code .vscode/lume.code-workspace -``` -This workspace is preconfigured with Swift language support, build tasks, and debug configurations. - -## Usage - -```bash -lume - -Commands: - lume create Create a new macOS or Linux VM - lume run Run a VM - lume ls List all VMs - lume get Get detailed information about a VM - lume set Modify VM configuration - lume stop Stop a running VM - lume delete Delete a VM - lume pull Pull a macOS image from container registry - lume push Push a VM image to a container registry - lume clone Clone an existing VM - lume config Get or set lume configuration - lume images List available macOS images in local cache - lume ipsw Get the latest macOS restore image URL - lume prune Remove cached images - lume serve Start the API server - -Options: - --help Show help [boolean] - --version Show version number [boolean] - -Command Options: - create: - --os Operating system to install (macOS or linux, default: macOS) - --cpu Number of CPU cores (default: 4) - --memory Memory size, e.g., 8GB (default: 4GB) - --disk-size Disk size, e.g., 50GB (default: 40GB) - --display Display resolution (default: 1024x768) - --ipsw Path to IPSW file or 'latest' for macOS VMs - --storage VM storage location to use - - run: - --no-display Do not start the VNC client app - --shared-dir Share directory with VM (format: path[:ro|rw]) - --mount For Linux VMs only, attach a read-only disk image - --registry Container registry URL (default: ghcr.io) - --organization Organization to pull from (default: trycua) - --vnc-port Port to use for the VNC server (default: 0 for auto-assign) - --recovery-mode For MacOS VMs only, start VM in recovery mode (default: false) - --storage VM storage location to use - - set: - --cpu New number of CPU cores (e.g., 4) - --memory New memory size (e.g., 8192MB or 8GB) - --disk-size New disk size (e.g., 40960MB or 40GB) - --display New display resolution in format WIDTHxHEIGHT (e.g., 1024x768) - --storage VM storage location to use - - delete: - --force Force deletion without confirmation - --storage VM storage location to use - - pull: - --registry Container registry URL (default: ghcr.io) - --organization Organization to pull from (default: trycua) - --storage VM storage location to use - - push: - --additional-tags Additional tags to push the same image to - --registry Container registry URL (default: ghcr.io) - --organization Organization/user to push to (default: trycua) - --storage VM storage location to use - --chunk-size-mb Chunk size for disk image upload in MB (default: 512) - --verbose Enable verbose logging - --dry-run Prepare files and show plan without uploading - --reassemble Verify integrity by reassembling chunks (requires --dry-run) - - get: - -f, --format Output format (json|text) - --storage VM storage location to use - - stop: - --storage VM storage location to use - - clone: - --source-storage Source VM storage location - --dest-storage Destination VM storage location - - config: - get Get current configuration - storage Manage VM storage locations - add Add a new VM storage location - remove Remove a VM storage location - list List all VM storage locations - default Set the default VM storage location - cache Manage cache settings - get Get current cache directory - set Set cache directory - caching Manage image caching settings - get Show current caching status - set Enable or disable image caching - - serve: - --port Port to listen on (default: 7777) -``` - -## Install - -Install with a single command: +Install and run a prebuilt macOS VM in two commands: ```bash +# Install Lume /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh)" +# Pull & start a macOS image +lume run macos-sequoia-vanilla:latest ``` -By default, Lume is installed as a background service that starts automatically on login. If you prefer to start the Lume API service manually when needed, you can use the `--no-background-service` option: + +All prebuilt images use the default password `lume`. Change this immediately after your first login using the `passwd` command. + -```bash -/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh) --no-background-service" -``` +**System Requirements**: +- Apple Silicon Mac (M1, M2, M3, etc.) +- macOS 13.0 or later +- At least 8GB of RAM (16GB recommended) +- At least 50GB of free disk space -**Note:** With this option, you'll need to manually start the Lume API service by running `lume serve` in your terminal whenever you need to use tools or libraries that rely on the Lume API (such as the Computer-Use Agent). +## Development -You can also download the `lume.pkg.tar.gz` archive from the [latest release](https://github.com/trycua/lume/releases), extract it, and install the package manually. - -## Prebuilt Images - -Pre-built images are available in the registry [ghcr.io/trycua](https://github.com/orgs/trycua/packages). - -**Important Note (v0.2.0+):** Images are being re-uploaded with sparse file system optimizations enabled, resulting in significantly lower actual disk usage. Older images (without the `-sparse` suffix) are now **deprecated**. The last version of `lume` fully supporting the non-sparse images was `v0.1.x`. Starting from `v0.2.0`, lume will automatically pull images optimized with sparse file system support. - -These images come with an SSH server pre-configured and auto-login enabled. - -For the security of your VM, change the default password `lume` immediately after your first login. - -| Image | Tag | Description | Logical Size | -|-------|------------|-------------|------| -| `macos-sequoia-vanilla` | `latest`, `15.2` | macOS Sequoia 15.2 image | 20GB | -| `macos-sequoia-xcode` | `latest`, `15.2` | macOS Sequoia 15.2 image with Xcode command line tools | 22GB | -| `macos-sequoia-cua` | `latest`, `15.3` | macOS Sequoia 15.3 image compatible with the Computer interface | 24GB | -| `ubuntu-noble-vanilla` | `latest`, `24.04.1` | [Ubuntu Server for ARM 24.04.1 LTS](https://ubuntu.com/download/server/arm) with Ubuntu Desktop | 20GB | - -For additional disk space, resize the VM disk after pulling the image using the `lume set --disk-size ` command. Note that the actual disk space used by sparse images will be much lower than the logical size listed. - -## Local API Server - -`lume` exposes a local HTTP API server that listens on `http://localhost:7777/lume`, enabling automated management of VMs. - -```bash -lume serve -``` - -For detailed API documentation, please refer to [API Reference](docs/API-Reference.md). +To get set up with Lume for development, read [these instructions](Development.md). ## Docs -- [API Reference](docs/API-Reference.md) -- [Development](docs/Development.md) -- [FAQ](docs/FAQ.md) +- [Installation](https://trycua.com/docs/libraries/lume/installation) +- [Prebuilt Images](https://trycua.com/docs/libraries/lume/prebuilt-images) +- [CLI Reference](https://trycua.com/docs/libraries/lume/cli-reference) +- [HTTP API](https://trycua.com/docs/libraries/lume/http-api) +- [FAQ](https://trycua.com/docs/libraries/lume/faq) ## Contributing diff --git a/libs/lume/docs/API-Reference.md b/libs/lume/docs/API-Reference.md deleted file mode 100644 index 5af09cdf..00000000 --- a/libs/lume/docs/API-Reference.md +++ /dev/null @@ -1,387 +0,0 @@ -## API Reference - -
      -Create VM - POST /vms - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X POST \ - -H "Content-Type: application/json" \ - -d '{ - "name": "lume_vm", - "os": "macOS", - "cpu": 2, - "memory": "4GB", - "diskSize": "64GB", - "display": "1024x768", - "ipsw": "latest", - "storage": "ssd" - }' \ - http://localhost:7777/lume/vms -``` -
      - -
      -Run VM - POST /vms/:name/run - -```bash -# Basic run -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X POST \ - http://localhost:7777/lume/vms/my-vm-name/run - -# Run with VNC client started and shared directory -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X POST \ - -H "Content-Type: application/json" \ - -d '{ - "noDisplay": false, - "sharedDirectories": [ - { - "hostPath": "~/Projects", - "readOnly": false - } - ], - "recoveryMode": false, - "storage": "ssd" - }' \ - http://localhost:7777/lume/vms/lume_vm/run -``` -
      - -
      -List VMs - GET /vms - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - http://localhost:7777/lume/vms -``` -``` -[ - { - "name": "my-vm", - "state": "stopped", - "os": "macOS", - "cpu": 2, - "memory": "4GB", - "diskSize": "64GB" - }, - { - "name": "my-vm-2", - "state": "stopped", - "os": "linux", - "cpu": 2, - "memory": "4GB", - "diskSize": "64GB" - } -] -``` -
      - -
      -Get VM Details - GET /vms/:name - -```bash -# Basic get -curl --connect-timeout 6000 \ - --max-time 5000 \ - http://localhost:7777/lume/vms/lume_vm - -# Get with storage location specified -curl --connect-timeout 6000 \ - --max-time 5000 \ - http://localhost:7777/lume/vms/lume_vm?storage=ssd -``` -``` -{ - "name": "lume_vm", - "state": "running", - "os": "macOS", - "cpu": 2, - "memory": "4GB", - "diskSize": "64GB" -} -``` -
      - -
      -Update VM Settings - PATCH /vms/:name - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X PATCH \ - -H "Content-Type: application/json" \ - -d '{ - "cpu": 4, - "memory": "8GB", - "diskSize": "128GB", - "storage": "ssd" - }' \ - http://localhost:7777/lume/vms/my-vm-name -``` -
      - -
      -Stop VM - POST /vms/:name/stop - -```bash -# Basic stop -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X POST \ - http://localhost:7777/lume/vms/my-vm-name/stop - -# Stop with storage location specified -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X POST \ - http://localhost:7777/lume/vms/my-vm-name/stop?storage=ssd -``` -
      - -
      -Delete VM - DELETE /vms/:name - -```bash -# Basic delete -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X DELETE \ - http://localhost:7777/lume/vms/my-vm-name - -# Delete with storage location specified -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X DELETE \ - http://localhost:7777/lume/vms/my-vm-name?storage=ssd -``` -
      - -
      -Pull Image - POST /pull - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X POST \ - -H "Content-Type: application/json" \ - -d '{ - "image": "macos-sequoia-vanilla:latest", - "name": "my-vm-name", - "registry": "ghcr.io", - "organization": "trycua", - "storage": "ssd" - }' \ - http://localhost:7777/lume/pull -``` - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X POST \ - -H "Content-Type: application/json" \ - -d '{ - "image": "macos-sequoia-vanilla:15.2", - "name": "macos-sequoia-vanilla" - }' \ - http://localhost:7777/lume/pull -``` -
      - -
      -Push Image (Async) - POST /vms/push - -```bash -# Push VM 'my-local-vm' to 'my-org/my-image:latest' and 'my-org/my-image:v1' -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X POST \ - -H "Content-Type: application/json" \ - -d '{ - "name": "my-local-vm", - "imageName": "my-image", - "tags": ["latest", "v1"], - "organization": "my-org", - "registry": "ghcr.io", - "chunkSizeMb": 512, - "storage": null - }' \ - http://localhost:7777/lume/vms/push -``` - -**Response (202 Accepted):** - -```json -{ - "message": "Push initiated in background", - "name": "my-local-vm", - "imageName": "my-image", - "tags": [ - "latest", - "v1" - ] -} -``` -
      - -
      -Clone VM - POST /vms/:name/clone - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X POST \ - -H "Content-Type: application/json" \ - -d '{ - "name": "source-vm", - "newName": "cloned-vm", - "sourceLocation": "default", - "destLocation": "ssd" - }' \ - http://localhost:7777/lume/vms/clone -``` -
      - -
      -Get Latest IPSW URL - GET /ipsw - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - http://localhost:7777/lume/ipsw -``` -
      - -
      -List Images - GET /images - -```bash -# List images with default organization (trycua) -curl --connect-timeout 6000 \ - --max-time 5000 \ - http://localhost:7777/lume/images -``` - -```json -{ - "local": [ - "macos-sequoia-xcode:latest", - "macos-sequoia-vanilla:latest" - ] -} -``` -
      - -
      -Prune Images - POST /lume/prune - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X POST \ - http://localhost:7777/lume/prune -``` -
      - -
      -Get Configuration - GET /lume/config - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - http://localhost:7777/lume/config -``` - -```json -{ - "homeDirectory": "~/.lume", - "cacheDirectory": "~/.lume/cache", - "cachingEnabled": true -} -``` -
      - -
      -Update Configuration - POST /lume/config - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X POST \ - -H "Content-Type: application/json" \ - -d '{ - "homeDirectory": "~/custom/lume", - "cacheDirectory": "~/custom/lume/cache", - "cachingEnabled": true - }' \ - http://localhost:7777/lume/config -``` -
      - -
      -Get VM Storage Locations - GET /lume/config/locations - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - http://localhost:7777/lume/config/locations -``` - -```json -[ - { - "name": "default", - "path": "~/.lume/vms", - "isDefault": true - }, - { - "name": "ssd", - "path": "/Volumes/SSD/lume/vms", - "isDefault": false - } -] -``` -
      - -
      -Add VM Storage Location - POST /lume/config/locations - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X POST \ - -H "Content-Type: application/json" \ - -d '{ - "name": "ssd", - "path": "/Volumes/SSD/lume/vms" - }' \ - http://localhost:7777/lume/config/locations -``` -
      - -
      -Remove VM Storage Location - DELETE /lume/config/locations/:name - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X DELETE \ - http://localhost:7777/lume/config/locations/ssd -``` -
      - -
      -Set Default VM Storage Location - POST /lume/config/locations/default/:name - -```bash -curl --connect-timeout 6000 \ - --max-time 5000 \ - -X POST \ - http://localhost:7777/lume/config/locations/default/ssd -``` -
      diff --git a/libs/lume/docs/FAQ.md b/libs/lume/docs/FAQ.md deleted file mode 100644 index 21d0d287..00000000 --- a/libs/lume/docs/FAQ.md +++ /dev/null @@ -1,114 +0,0 @@ -# FAQs - -### Where are the VMs stored? - -VMs are stored in `~/.lume` by default. You can configure additional storage locations using the `lume config` command. - -### How are images cached? - -Images are cached in `~/.lume/cache`. When doing `lume pull `, it will check if the image is already cached. If not, it will download the image and cache it, removing any older versions. - -### Where is the configuration file stored? - -Lume follows the XDG Base Directory specification for the configuration file: - -- Configuration is stored in `$XDG_CONFIG_HOME/lume/config.yaml` (defaults to `~/.config/lume/config.yaml`) - -By default, other data is stored in: -- VM data: `~/.lume` -- Cache files: `~/.lume/cache` - -The config file contains settings for: -- VM storage locations and the default location -- Cache directory location -- Whether caching is enabled - -You can view and modify these settings using the `lume config` commands: - -```bash -# View current configuration -lume config get - -# Manage VM storage locations -lume config storage list # List all VM storage locations -lume config storage add # Add a new VM storage location -lume config storage remove # Remove a VM storage location -lume config storage default # Set the default VM storage location - -# Manage cache settings -lume config cache get # Get current cache directory -lume config cache set # Set cache directory - -# Manage image caching settings -lume config caching get # Show current caching status -lume config caching set # Enable or disable image caching -``` - -### How do I use multiple VM storage locations? - -Lume supports storing VMs in different locations (e.g., internal drive, external SSD). After configuring storage locations, you can specify which location to use with the `--storage` parameter in various commands: - -```bash -# Create a VM in a specific storage location -lume create my-vm --os macos --ipsw latest --storage ssd - -# Run a VM from a specific storage location -lume run my-vm --storage ssd - -# Delete a VM from a specific storage location -lume delete my-vm --storage ssd - -# Pull an image to a specific storage location -lume pull macos-sequoia-vanilla:latest --name my-vm --storage ssd - -# Clone a VM between storage locations -lume clone source-vm cloned-vm --source-storage default --dest-storage ssd -``` - -If you don't specify a storage location, Lume will use the default one or search across all configured locations. - -### Are VM disks taking up all the disk space? - -No, macOS uses sparse files, which only allocate space as needed. For example, VM disks totaling 50 GB may only use 20 GB on disk. - -### How do I get the latest macOS restore image URL? - -```bash -lume ipsw -``` - -### How do I delete a VM? - -```bash -lume delete -``` - -### How to Install macOS from an IPSW Image - -#### Create a new macOS VM using the latest supported IPSW image: -Run the following command to create a new macOS virtual machine using the latest available IPSW image: - -```bash -lume create --os macos --ipsw latest -``` - -#### Create a new macOS VM using a specific IPSW image: -To create a macOS virtual machine from an older or specific IPSW file, first download the desired IPSW (UniversalMac) from a trusted source. - -Then, use the downloaded IPSW path: - -```bash -lume create --os macos --ipsw -``` - -### How do I install a custom Linux image? - -The process for creating a custom Linux image differs than macOS, with IPSW restore files not being used. You need to create a linux VM first, then mount a setup image file to the VM for the first boot. - -```bash -lume create --os linux - -lume run --mount - -lume run -``` From 13773c4af0c4589fcd726765c3c02d9af30d02eb Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 28 Aug 2025 04:53:46 -0400 Subject: [PATCH 096/103] Split Lumier section into pages --- docs/content/docs/libraries/lumier/docker.mdx | 52 +++++++++++++++ docs/content/docs/libraries/lumier/index.mdx | 66 ++----------------- .../docs/libraries/lumier/installation.mdx | 7 ++ docs/content/docs/libraries/lumier/meta.json | 7 ++ 4 files changed, 71 insertions(+), 61 deletions(-) create mode 100644 docs/content/docs/libraries/lumier/docker.mdx create mode 100644 docs/content/docs/libraries/lumier/installation.mdx create mode 100644 docs/content/docs/libraries/lumier/meta.json diff --git a/docs/content/docs/libraries/lumier/docker.mdx b/docs/content/docs/libraries/lumier/docker.mdx new file mode 100644 index 00000000..3038f1c9 --- /dev/null +++ b/docs/content/docs/libraries/lumier/docker.mdx @@ -0,0 +1,52 @@ +--- +title: Docker +--- + +You can use Lumier through Docker: + +### Run a macOS VM (ephemeral) +```bash +docker run -it --rm \ + --name macos-vm \ + -p 8006:8006 \ + -e VM_NAME=macos-vm \ + -e VERSION=ghcr.io/trycua/macos-sequoia-cua:latest \ + -e CPU_CORES=4 \ + -e RAM_SIZE=8192 \ + trycua/lumier:latest +``` +Access the VM in your browser at [http://localhost:8006](http://localhost:8006). + +### Persistent Storage +```bash +mkdir -p storage + +docker run -it --rm \ + --name lumier-vm \ + -p 8006:8006 \ + -v $(pwd)/storage:/storage \ + -e VM_NAME=lumier-vm \ + -e VERSION=ghcr.io/trycua/macos-sequoia-cua:latest \ + -e CPU_CORES=4 \ + -e RAM_SIZE=8192 \ + -e HOST_STORAGE_PATH=$(pwd)/storage \ + trycua/lumier:latest +``` + +### Shared Folder +```bash +mkdir -p shared + +docker run -it --rm \ + --name lumier-vm \ + -p 8006:8006 \ + -v $(pwd)/storage:/storage \ + -v $(pwd)/shared:/shared \ + -e VM_NAME=lumier-vm \ + -e VERSION=ghcr.io/trycua/macos-sequoia-cua:latest \ + -e CPU_CORES=4 \ + -e RAM_SIZE=8192 \ + -e HOST_STORAGE_PATH=$(pwd)/storage \ + -e HOST_SHARED_PATH=$(pwd)/shared \ + trycua/lumier:latest +``` \ No newline at end of file diff --git a/docs/content/docs/libraries/lumier/index.mdx b/docs/content/docs/libraries/lumier/index.mdx index 3858504d..55e113e9 100644 --- a/docs/content/docs/libraries/lumier/index.mdx +++ b/docs/content/docs/libraries/lumier/index.mdx @@ -5,65 +5,9 @@ github: - https://github.com/trycua/cua/tree/main/libs/lumier --- -## Overview +**Lumier** is an interface for running macOS virtual machines with minimal setup. It uses Docker as a packaging system to deliver a pre-configured environment that connects to the `lume` virtualization service running on your host machine. With Lumier, you get: -The Lumier library provides a Docker-based interface for creating performant macOS virtual machines. - -## Installation - -**Requirements:** -- Docker for Apple Silicon (or compatible Mac) -- Lume virtualization CLI (install with: `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh)"`) - -## Usage - -### Run a macOS VM (ephemeral) -```bash -docker run -it --rm \ - --name macos-vm \ - -p 8006:8006 \ - -e VM_NAME=macos-vm \ - -e VERSION=ghcr.io/trycua/macos-sequoia-cua:latest \ - -e CPU_CORES=4 \ - -e RAM_SIZE=8192 \ - trycua/lumier:latest -``` -Access the VM in your browser at [http://localhost:8006](http://localhost:8006). - -### Persistent Storage -```bash -mkdir -p storage - -docker run -it --rm \ - --name lumier-vm \ - -p 8006:8006 \ - -v $(pwd)/storage:/storage \ - -e VM_NAME=lumier-vm \ - -e VERSION=ghcr.io/trycua/macos-sequoia-cua:latest \ - -e CPU_CORES=4 \ - -e RAM_SIZE=8192 \ - -e HOST_STORAGE_PATH=$(pwd)/storage \ - trycua/lumier:latest -``` - -### Shared Folder -```bash -mkdir -p shared - -docker run -it --rm \ - --name lumier-vm \ - -p 8006:8006 \ - -v $(pwd)/storage:/storage \ - -v $(pwd)/shared:/shared \ - -e VM_NAME=lumier-vm \ - -e VERSION=ghcr.io/trycua/macos-sequoia-cua:latest \ - -e CPU_CORES=4 \ - -e RAM_SIZE=8192 \ - -e HOST_STORAGE_PATH=$(pwd)/storage \ - -e HOST_SHARED_PATH=$(pwd)/shared \ - trycua/lumier:latest -``` - ---- - -See the [Lumier README](https://github.com/trycua/cua/tree/main/libs/lumier) for advanced options, Docker Compose setup, and automation scripts. \ No newline at end of file +- A ready-to-use macOS or Linux virtual machine in minutes +- Browser-based VNC access to your VM +- Easy file sharing between your host and VM +- Simple configuration through environment variables \ No newline at end of file diff --git a/docs/content/docs/libraries/lumier/installation.mdx b/docs/content/docs/libraries/lumier/installation.mdx new file mode 100644 index 00000000..63db702a --- /dev/null +++ b/docs/content/docs/libraries/lumier/installation.mdx @@ -0,0 +1,7 @@ +--- +title: Installation +--- + +**Requirements:** +- Docker for Apple Silicon (or compatible Mac) +- Lume virtualization CLI (install with: `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh)"`) \ No newline at end of file diff --git a/docs/content/docs/libraries/lumier/meta.json b/docs/content/docs/libraries/lumier/meta.json new file mode 100644 index 00000000..a24ac050 --- /dev/null +++ b/docs/content/docs/libraries/lumier/meta.json @@ -0,0 +1,7 @@ +{ + "pages": [ + "installation", + "docker", + "docker-compose" + ] +} From b724a136666c444c0754e1b5801c6745b9a740bf Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 28 Aug 2025 06:07:52 -0400 Subject: [PATCH 097/103] Move text from README to Cua documentation --- .../docs/libraries/lumier/building-lumier.mdx | 42 ++++ .../docs/libraries/lumier/docker-compose.mdx | 45 ++++ docs/content/docs/libraries/lumier/docker.mdx | 134 +++++++++--- docs/content/docs/libraries/lumier/index.mdx | 13 +- .../docs/libraries/lumier/installation.mdx | 13 +- docs/content/docs/libraries/lumier/meta.json | 3 +- libs/lumier/README.md | 202 +----------------- 7 files changed, 219 insertions(+), 233 deletions(-) create mode 100644 docs/content/docs/libraries/lumier/building-lumier.mdx create mode 100644 docs/content/docs/libraries/lumier/docker-compose.mdx diff --git a/docs/content/docs/libraries/lumier/building-lumier.mdx b/docs/content/docs/libraries/lumier/building-lumier.mdx new file mode 100644 index 00000000..df8ad4f8 --- /dev/null +++ b/docs/content/docs/libraries/lumier/building-lumier.mdx @@ -0,0 +1,42 @@ +--- +title: Building Lumier +--- + +If you want to customize the Lumier container or build it from source, you can follow these steps: + +```bash +# 1. Navigate to the Lumier directory +cd libs/lumier + +# 2. Build the Docker image locally +docker build -t lumier-custom:latest . + +# 3. Run your custom build +docker run -it --rm \ + --name lumier-vm \ + -p 8006:8006 \ + -e VM_NAME=lumier-vm \ + -e VERSION=ghcr.io/trycua/macos-sequoia-cua:latest \ + -e CPU_CORES=4 \ + -e RAM_SIZE=8192 \ + lumier-custom:latest +``` + +### Customization Options + +The Dockerfile provides several customization points: + +1. **Base image**: The container uses Debian Bullseye Slim as the base. You can modify this if needed. +2. **Installed packages**: You can add or remove packages in the apt-get install list. +3. **Hooks**: Check the `/run/hooks/` directory for scripts that run at specific points during VM lifecycle. +4. **Configuration**: Review `/run/config/constants.sh` for default settings. + +After making your modifications, you can build and push your custom image to your own Docker Hub repository: + +```bash +# Build with a custom tag +docker build -t yourusername/lumier:custom . + +# Push to Docker Hub (after docker login) +docker push yourusername/lumier:custom +``` \ No newline at end of file diff --git a/docs/content/docs/libraries/lumier/docker-compose.mdx b/docs/content/docs/libraries/lumier/docker-compose.mdx new file mode 100644 index 00000000..fece3473 --- /dev/null +++ b/docs/content/docs/libraries/lumier/docker-compose.mdx @@ -0,0 +1,45 @@ +--- +title: Docker Compose +--- + +You can also use Docker Compose to run Lumier with a simple configuration file. Create a `docker-compose.yml` file with the following content: + +```yaml +version: '3' + +services: + lumier: + image: trycua/lumier:latest + container_name: lumier-vm + restart: unless-stopped + ports: + - "8006:8006" # Port for VNC access + volumes: + - ./storage:/storage # VM persistent storage + - ./shared:/shared # Shared folder accessible in the VM + environment: + - VM_NAME=lumier-vm + - VERSION=ghcr.io/trycua/macos-sequoia-cua:latest + - CPU_CORES=4 + - RAM_SIZE=8192 + - HOST_STORAGE_PATH=${PWD}/storage + - HOST_SHARED_PATH=${PWD}/shared + stop_signal: SIGINT + stop_grace_period: 2m +``` + +Then run Lumier using: + +```bash +# First create the required directories +mkdir -p storage shared + +# Start the container +docker-compose up -d + +# View the logs +docker-compose logs -f + +# Stop the container when done +docker-compose down +``` diff --git a/docs/content/docs/libraries/lumier/docker.mdx b/docs/content/docs/libraries/lumier/docker.mdx index 3038f1c9..35ea859b 100644 --- a/docs/content/docs/libraries/lumier/docker.mdx +++ b/docs/content/docs/libraries/lumier/docker.mdx @@ -6,47 +6,117 @@ You can use Lumier through Docker: ### Run a macOS VM (ephemeral) ```bash +# Run the container with temporary storage (using pre-built image from Docker Hub) docker run -it --rm \ - --name macos-vm \ - -p 8006:8006 \ - -e VM_NAME=macos-vm \ - -e VERSION=ghcr.io/trycua/macos-sequoia-cua:latest \ - -e CPU_CORES=4 \ - -e RAM_SIZE=8192 \ - trycua/lumier:latest + --name macos-vm \ + -p 8006:8006 \ + -e VM_NAME=macos-vm \ + -e VERSION=ghcr.io/trycua/macos-sequoia-cua:latest \ + -e CPU_CORES=4 \ + -e RAM_SIZE=8192 \ + trycua/lumier:latest ``` Access the VM in your browser at [http://localhost:8006](http://localhost:8006). -### Persistent Storage +After running the command above, you can access your macOS VM through a web browser (e.g., http://localhost:8006). + +> **Note:** With the basic setup above, your VM will be reset when you stop the container (ephemeral mode). This means any changes you make inside the macOS VM will be lost. See the section below for how to save your VM state. + +## Saving Your VM State + +To save your VM state between sessions (so your changes persist when you stop and restart the container), you'll need to set up a storage location: + ```bash +# First, create a storage directory if it doesn't exist mkdir -p storage +# Then run the container with persistent storage docker run -it --rm \ - --name lumier-vm \ - -p 8006:8006 \ - -v $(pwd)/storage:/storage \ - -e VM_NAME=lumier-vm \ - -e VERSION=ghcr.io/trycua/macos-sequoia-cua:latest \ - -e CPU_CORES=4 \ - -e RAM_SIZE=8192 \ - -e HOST_STORAGE_PATH=$(pwd)/storage \ - trycua/lumier:latest + --name lumier-vm \ + -p 8006:8006 \ + -v $(pwd)/storage:/storage \ + -e VM_NAME=lumier-vm \ + -e VERSION=ghcr.io/trycua/macos-sequoia-cua:latest \ + -e CPU_CORES=4 \ + -e RAM_SIZE=8192 \ + -e HOST_STORAGE_PATH=$(pwd)/storage \ + trycua/lumier:latest ``` -### Shared Folder -```bash -mkdir -p shared +This command creates a connection between a folder on your Mac (`$(pwd)/storage`) and a folder inside the Docker container (`/storage`). The `-v` flag (volume mount) and the `HOST_STORAGE_PATH` variable work together to ensure your VM data is saved on your host Mac. +## Sharing Files with Your VM + +To share files between your Mac and the virtual machine, you can set up a shared folder: + +```bash +# Create both storage and shared folders +mkdir -p storage shared + +# Run with both persistent storage and a shared folder docker run -it --rm \ - --name lumier-vm \ - -p 8006:8006 \ - -v $(pwd)/storage:/storage \ - -v $(pwd)/shared:/shared \ - -e VM_NAME=lumier-vm \ - -e VERSION=ghcr.io/trycua/macos-sequoia-cua:latest \ - -e CPU_CORES=4 \ - -e RAM_SIZE=8192 \ - -e HOST_STORAGE_PATH=$(pwd)/storage \ - -e HOST_SHARED_PATH=$(pwd)/shared \ - trycua/lumier:latest -``` \ No newline at end of file + --name lumier-vm \ + -p 8006:8006 \ + -v $(pwd)/storage:/storage \ + -v $(pwd)/shared:/shared \ + -e VM_NAME=lumier-vm \ + -e VERSION=ghcr.io/trycua/macos-sequoia-cua:latest \ + -e CPU_CORES=4 \ + -e RAM_SIZE=8192 \ + -e HOST_STORAGE_PATH=$(pwd)/storage \ + -e HOST_SHARED_PATH=$(pwd)/shared \ + trycua/lumier:latest +``` + +With this setup, any files you place in the `shared` folder on your Mac will be accessible from within the macOS VM, and vice versa. + +## Automating VM Startup with on-logon.sh + +You can automatically run scripts when the VM starts up by placing an `on-logon.sh` script in the shared folder's lifecycle directory. This is useful for setting up your VM environment each time it starts. + +```bash +# Create the lifecycle directory in your shared folder +mkdir -p shared/lifecycle + +# Create a sample on-logon.sh script +cat > shared/lifecycle/on-logon.sh << 'EOF' +#!/usr/bin/env bash + +# Create a file on the desktop +echo "Hello from Lumier!" > /Users/lume/Desktop/hello_lume.txt + +# You can add more commands to execute at VM startup +# For example: +# - Configure environment variables +# - Start applications +# - Mount network drives +# - Set up development environments +EOF + +# Make the script executable +chmod +x shared/lifecycle/on-logon.sh +``` + +The script will be automatically executed when the VM starts up. It runs in the VM context and has access to: + +- The `/Users/lume` user directory (home directory in the VM) +- The shared folder at `/Volumes/My Shared Files` inside the VM +- Any resources available to the VM + +This feature enables automation of VM setup without modifying the base VM image. + +## Configuration Options + +When running Lumier, you'll need to configure a few things: + +- **Port forwarding** (`-p 8006:8006`): Makes the VM's VNC interface accessible in your browser. If port 8006 is already in use, you can use a different port like `-p 8007:8006`. + +- **Environment variables** (`-e`): Configure your VM settings: + - `VM_NAME`: A name for your virtual machine + - `VERSION`: The macOS image to use + - `CPU_CORES`: Number of CPU cores to allocate + - `RAM_SIZE`: Memory in MB to allocate + - `HOST_STORAGE_PATH`: Path to save VM state (when using persistent storage) + - `HOST_SHARED_PATH`: Path to the shared folder (optional) + +- **Background service**: The `lume serve` service should be running on your host (starts automatically when you install Lume using the `install.sh` script above). \ No newline at end of file diff --git a/docs/content/docs/libraries/lumier/index.mdx b/docs/content/docs/libraries/lumier/index.mdx index 55e113e9..5cb33762 100644 --- a/docs/content/docs/libraries/lumier/index.mdx +++ b/docs/content/docs/libraries/lumier/index.mdx @@ -10,4 +10,15 @@ github: - A ready-to-use macOS or Linux virtual machine in minutes - Browser-based VNC access to your VM - Easy file sharing between your host and VM -- Simple configuration through environment variables \ No newline at end of file +- Simple configuration through environment variables + +## How It Works + +> **Note:** We're using Docker primarily as a convenient delivery mechanism, not as an isolation layer. Unlike traditional Docker containers, Lumier leverages the Apple Virtualization Framework (Apple Vz) through the `lume` CLI to create true virtual machines. + +Here's what's happening behind the scenes: + +1. The Docker container provides a consistent environment to run the Lumier interface +2. Lumier connects to the Lume service running on your host Mac +3. Lume uses Apple's Virtualization Framework to create a true macOS virtual machine +4. The VM runs with hardware acceleration using your Mac's native virtualization capabilities \ No newline at end of file diff --git a/docs/content/docs/libraries/lumier/installation.mdx b/docs/content/docs/libraries/lumier/installation.mdx index 63db702a..e0c20267 100644 --- a/docs/content/docs/libraries/lumier/installation.mdx +++ b/docs/content/docs/libraries/lumier/installation.mdx @@ -2,6 +2,13 @@ title: Installation --- -**Requirements:** -- Docker for Apple Silicon (or compatible Mac) -- Lume virtualization CLI (install with: `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh)"`) \ No newline at end of file +Before using Lumier, make sure you have: + +1. **Docker for Apple Silicon** - download it [here](https://desktop.docker.com/mac/main/arm64/Docker.dmg) and follow the installation instructions. + +2. **Lume** - This is the virtualization CLI that powers Lumier. Install it with this command: +```bash +/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh)" +``` + +After installation, Lume runs as a background service and listens on port 7777. This service allows Lumier to create and manage virtual machines. If port 7777 is already in use on your system, you can specify a different port with the `--port` option when running the `install.sh` script. \ No newline at end of file diff --git a/docs/content/docs/libraries/lumier/meta.json b/docs/content/docs/libraries/lumier/meta.json index a24ac050..f6a8946c 100644 --- a/docs/content/docs/libraries/lumier/meta.json +++ b/docs/content/docs/libraries/lumier/meta.json @@ -2,6 +2,7 @@ "pages": [ "installation", "docker", - "docker-compose" + "docker-compose", + "building-lumier" ] } diff --git a/libs/lumier/README.md b/libs/lumier/README.md index 287a6e96..92cfc559 100644 --- a/libs/lumier/README.md +++ b/libs/lumier/README.md @@ -39,19 +39,6 @@ Before using Lumier, make sure you have: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh)" ``` -After installation, Lume runs as a background service and listens on port 7777. This service allows Lumier to create and manage virtual machines. If port 7777 is already in use on your system, you can specify a different port with the `--port` option when running the `install.sh` script. - -## How It Works - -> **Note:** We're using Docker primarily as a convenient delivery mechanism, not as an isolation layer. Unlike traditional Docker containers, Lumier leverages the Apple Virtualization Framework (Apple Vz) through the `lume` CLI to create true virtual machines. - -Here's what's happening behind the scenes: - -1. The Docker container provides a consistent environment to run the Lumier interface -2. Lumier connects to the Lume service running on your host Mac -3. Lume uses Apple's Virtualization Framework to create a true macOS virtual machine -4. The VM runs with hardware acceleration using your Mac's native virtualization capabilities - ## Getting Started ```bash @@ -68,191 +55,14 @@ docker run -it --rm \ After running the command above, you can access your macOS VM through a web browser (e.g., http://localhost:8006). -> **Note:** With the basic setup above, your VM will be reset when you stop the container (ephemeral mode). This means any changes you make inside the macOS VM will be lost. See the section below for how to save your VM state. +> **Note:** With the basic setup above, your VM will be reset when you stop the container (ephemeral mode). This means any changes you make inside the macOS VM will be lost. See [the documentation](https://trycua.com/docs/libraries/lumier/docker) for how to save your VM state. -## Saving Your VM State +## Docs -To save your VM state between sessions (so your changes persist when you stop and restart the container), you'll need to set up a storage location: - -```bash -# First, create a storage directory if it doesn't exist -mkdir -p storage - -# Then run the container with persistent storage -docker run -it --rm \ - --name lumier-vm \ - -p 8006:8006 \ - -v $(pwd)/storage:/storage \ - -e VM_NAME=lumier-vm \ - -e VERSION=ghcr.io/trycua/macos-sequoia-cua:latest \ - -e CPU_CORES=4 \ - -e RAM_SIZE=8192 \ - -e HOST_STORAGE_PATH=$(pwd)/storage \ - trycua/lumier:latest -``` - -This command creates a connection between a folder on your Mac (`$(pwd)/storage`) and a folder inside the Docker container (`/storage`). The `-v` flag (volume mount) and the `HOST_STORAGE_PATH` variable work together to ensure your VM data is saved on your host Mac. - -## Sharing Files with Your VM - -To share files between your Mac and the virtual machine, you can set up a shared folder: - -```bash -# Create both storage and shared folders -mkdir -p storage shared - -# Run with both persistent storage and a shared folder -docker run -it --rm \ - --name lumier-vm \ - -p 8006:8006 \ - -v $(pwd)/storage:/storage \ - -v $(pwd)/shared:/shared \ - -e VM_NAME=lumier-vm \ - -e VERSION=ghcr.io/trycua/macos-sequoia-cua:latest \ - -e CPU_CORES=4 \ - -e RAM_SIZE=8192 \ - -e HOST_STORAGE_PATH=$(pwd)/storage \ - -e HOST_SHARED_PATH=$(pwd)/shared \ - trycua/lumier:latest -``` - -With this setup, any files you place in the `shared` folder on your Mac will be accessible from within the macOS VM, and vice versa. - -## Automating VM Startup with on-logon.sh - -You can automatically run scripts when the VM starts up by placing an `on-logon.sh` script in the shared folder's lifecycle directory. This is useful for setting up your VM environment each time it starts. - -```bash -# Create the lifecycle directory in your shared folder -mkdir -p shared/lifecycle - -# Create a sample on-logon.sh script -cat > shared/lifecycle/on-logon.sh << 'EOF' -#!/usr/bin/env bash - -# Create a file on the desktop -echo "Hello from Lumier!" > /Users/lume/Desktop/hello_lume.txt - -# You can add more commands to execute at VM startup -# For example: -# - Configure environment variables -# - Start applications -# - Mount network drives -# - Set up development environments -EOF - -# Make the script executable -chmod +x shared/lifecycle/on-logon.sh -``` - -The script will be automatically executed when the VM starts up. It runs in the VM context and has access to: - -- The `/Users/lume` user directory (home directory in the VM) -- The shared folder at `/Volumes/My Shared Files` inside the VM -- Any resources available to the VM - -This feature enables automation of VM setup without modifying the base VM image. - -## Using Docker Compose - -You can also use Docker Compose to run Lumier with a simple configuration file. Create a `docker-compose.yml` file with the following content: - -```yaml -version: '3' - -services: - lumier: - image: trycua/lumier:latest - container_name: lumier-vm - restart: unless-stopped - ports: - - "8006:8006" # Port for VNC access - volumes: - - ./storage:/storage # VM persistent storage - - ./shared:/shared # Shared folder accessible in the VM - environment: - - VM_NAME=lumier-vm - - VERSION=ghcr.io/trycua/macos-sequoia-cua:latest - - CPU_CORES=4 - - RAM_SIZE=8192 - - HOST_STORAGE_PATH=${PWD}/storage - - HOST_SHARED_PATH=${PWD}/shared - stop_signal: SIGINT - stop_grace_period: 2m -``` - -Then run Lumier using: - -```bash -# First create the required directories -mkdir -p storage shared - -# Start the container -docker-compose up -d - -# View the logs -docker-compose logs -f - -# Stop the container when done -docker-compose down -``` - -## Building and Customizing Lumier - -If you want to customize the Lumier container or build it from source, you can follow these steps: - -```bash -# 1. Navigate to the Lumier directory -cd libs/lumier - -# 2. Build the Docker image locally -docker build -t lumier-custom:latest . - -# 3. Run your custom build -docker run -it --rm \ - --name lumier-vm \ - -p 8006:8006 \ - -e VM_NAME=lumier-vm \ - -e VERSION=ghcr.io/trycua/macos-sequoia-cua:latest \ - -e CPU_CORES=4 \ - -e RAM_SIZE=8192 \ - lumier-custom:latest -``` - -### Customization Options - -The Dockerfile provides several customization points: - -1. **Base image**: The container uses Debian Bullseye Slim as the base. You can modify this if needed. -2. **Installed packages**: You can add or remove packages in the apt-get install list. -3. **Hooks**: Check the `/run/hooks/` directory for scripts that run at specific points during VM lifecycle. -4. **Configuration**: Review `/run/config/constants.sh` for default settings. - -After making your modifications, you can build and push your custom image to your own Docker Hub repository: - -```bash -# Build with a custom tag -docker build -t yourusername/lumier:custom . - -# Push to Docker Hub (after docker login) -docker push yourusername/lumier:custom -``` - -## Configuration Options - -When running Lumier, you'll need to configure a few things: - -- **Port forwarding** (`-p 8006:8006`): Makes the VM's VNC interface accessible in your browser. If port 8006 is already in use, you can use a different port like `-p 8007:8006`. - -- **Environment variables** (`-e`): Configure your VM settings: - - `VM_NAME`: A name for your virtual machine - - `VERSION`: The macOS image to use - - `CPU_CORES`: Number of CPU cores to allocate - - `RAM_SIZE`: Memory in MB to allocate - - `HOST_STORAGE_PATH`: Path to save VM state (when using persistent storage) - - `HOST_SHARED_PATH`: Path to the shared folder (optional) - -- **Background service**: The `lume serve` service should be running on your host (starts automatically when you install Lume using the `install.sh` script above). +- [Installation](https://trycua.com/docs/libraries/lumier/installation) +- [Docker](https://trycua.com/docs/libraries/lumier/docker) +- [Docker Compose](https://trycua.com/docs/libraries/lumier/docker-compose) +- [Building Lumier](https://trycua.com/docs/libraries/lumier/building-lumier) ## Credits From 1626094590ecfaa842039cca2bb1164b5fddab89 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 28 Aug 2025 06:22:24 -0400 Subject: [PATCH 098/103] Use callouts for notes --- docs/content/docs/libraries/lumier/docker.mdx | 4 +++- docs/content/docs/libraries/lumier/index.mdx | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/content/docs/libraries/lumier/docker.mdx b/docs/content/docs/libraries/lumier/docker.mdx index 35ea859b..4ecd15d6 100644 --- a/docs/content/docs/libraries/lumier/docker.mdx +++ b/docs/content/docs/libraries/lumier/docker.mdx @@ -20,7 +20,9 @@ Access the VM in your browser at [http://localhost:8006](http://localhost:8006). After running the command above, you can access your macOS VM through a web browser (e.g., http://localhost:8006). -> **Note:** With the basic setup above, your VM will be reset when you stop the container (ephemeral mode). This means any changes you make inside the macOS VM will be lost. See the section below for how to save your VM state. + +With the basic setup above, your VM will be reset when you stop the container (ephemeral mode). This means any changes you make inside the macOS VM will be lost. See the section below for how to save your VM state. + ## Saving Your VM State diff --git a/docs/content/docs/libraries/lumier/index.mdx b/docs/content/docs/libraries/lumier/index.mdx index 5cb33762..814055ba 100644 --- a/docs/content/docs/libraries/lumier/index.mdx +++ b/docs/content/docs/libraries/lumier/index.mdx @@ -14,7 +14,9 @@ github: ## How It Works -> **Note:** We're using Docker primarily as a convenient delivery mechanism, not as an isolation layer. Unlike traditional Docker containers, Lumier leverages the Apple Virtualization Framework (Apple Vz) through the `lume` CLI to create true virtual machines. + +We're using Docker primarily as a convenient delivery mechanism, not as an isolation layer. Unlike traditional Docker containers, Lumier leverages the Apple Virtualization Framework (Apple Vz) through the `lume` CLI to create true virtual machines. + Here's what's happening behind the scenes: From 5ee601e21649b9b6670d76021b53a6b9496bbe09 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 28 Aug 2025 07:50:03 -0400 Subject: [PATCH 099/103] Move text from READMEs to Cua documentation --- .../mcp-server/client-integrations.mdx | 20 ++++ .../libraries/mcp-server/configuration.mdx | 10 ++ .../docs/libraries/mcp-server/index.mdx | 12 +-- .../libraries/mcp-server/installation.mdx | 53 ++++++++++ .../libraries/mcp-server/llm-integrations.mdx | 16 +++ .../docs/libraries/mcp-server/meta.json | 10 ++ .../docs/libraries/mcp-server/tools.mdx | 10 ++ .../docs/libraries/mcp-server/usage.mdx | 20 ++++ libs/python/mcp-server/README.md | 97 ++----------------- 9 files changed, 147 insertions(+), 101 deletions(-) create mode 100644 docs/content/docs/libraries/mcp-server/client-integrations.mdx create mode 100644 docs/content/docs/libraries/mcp-server/configuration.mdx create mode 100644 docs/content/docs/libraries/mcp-server/installation.mdx create mode 100644 docs/content/docs/libraries/mcp-server/llm-integrations.mdx create mode 100644 docs/content/docs/libraries/mcp-server/meta.json create mode 100644 docs/content/docs/libraries/mcp-server/tools.mdx create mode 100644 docs/content/docs/libraries/mcp-server/usage.mdx diff --git a/docs/content/docs/libraries/mcp-server/client-integrations.mdx b/docs/content/docs/libraries/mcp-server/client-integrations.mdx new file mode 100644 index 00000000..8699cda0 --- /dev/null +++ b/docs/content/docs/libraries/mcp-server/client-integrations.mdx @@ -0,0 +1,20 @@ +--- +title: Client Integrations +--- + +## Claude Desktop Integration + +To use with Claude Desktop, add an entry to your Claude Desktop configuration (`claude_desktop_config.json`, typically found in `~/.config/claude-desktop/`): + +For more information on MCP with Claude Desktop, see the [official MCP User Guide](https://modelcontextprotocol.io/quickstart/user). + +## Cursor Integration + +To use with Cursor, add an MCP configuration file in one of these locations: + +- **Project-specific**: Create `.cursor/mcp.json` in your project directory +- **Global**: Create `~/.cursor/mcp.json` in your home directory + +After configuration, you can simply tell Cursor's Agent to perform computer tasks by explicitly mentioning the CUA agent, such as "Use the computer control tools to open Safari." + +For more information on MCP with Cursor, see the [official Cursor MCP documentation](https://docs.cursor.com/context/model-context-protocol). \ No newline at end of file diff --git a/docs/content/docs/libraries/mcp-server/configuration.mdx b/docs/content/docs/libraries/mcp-server/configuration.mdx new file mode 100644 index 00000000..e5df8293 --- /dev/null +++ b/docs/content/docs/libraries/mcp-server/configuration.mdx @@ -0,0 +1,10 @@ +--- +title: Configuration +--- + +The server is configured using environment variables (can be set in the Claude Desktop config): + +| Variable | Description | Default | +|----------|-------------|---------| +| `CUA_MODEL_NAME` | Model string (e.g., "anthropic/claude-3-5-sonnet-20241022", "openai/computer-use-preview", "huggingface-local/ByteDance-Seed/UI-TARS-1.5-7B", "omniparser+litellm/gpt-4o", "omniparser+ollama_chat/gemma3") | anthropic/claude-3-5-sonnet-20241022 | +| `CUA_MAX_IMAGES` | Maximum number of images to keep in context | 3 | diff --git a/docs/content/docs/libraries/mcp-server/index.mdx b/docs/content/docs/libraries/mcp-server/index.mdx index f9885bf1..87c9a342 100644 --- a/docs/content/docs/libraries/mcp-server/index.mdx +++ b/docs/content/docs/libraries/mcp-server/index.mdx @@ -6,14 +6,4 @@ github: - https://github.com/trycua/cua/tree/main/libs/python/mcp-server --- -## ⚠️ 🚧 Under Construction 🚧 ⚠️ - -The MCP Server API reference documentation is currently under development. - -## Overview - -The MCP Server provides Model Context Protocol endpoints for AI model integration. - -## API Documentation - -Coming soon. +**cua-mcp-server** is a MCP server for the Computer-Use Agent (CUA), allowing you to run CUA through Claude Desktop or other MCP clients. \ No newline at end of file diff --git a/docs/content/docs/libraries/mcp-server/installation.mdx b/docs/content/docs/libraries/mcp-server/installation.mdx new file mode 100644 index 00000000..c04a4917 --- /dev/null +++ b/docs/content/docs/libraries/mcp-server/installation.mdx @@ -0,0 +1,53 @@ +--- +title: Installation +--- + +Install the package from PyPI: + +```bash +pip install cua-mcp-server +``` + +This will install: +- The MCP server +- CUA agent and computer dependencies +- An executable `cua-mcp-server` script in your PATH + +## Easy Setup Script + +If you want to simplify installation, you can use this one-liner to download and run the installation script: + +```bash +curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/python/mcp-server/scripts/install_mcp_server.sh | bash +``` + +This script will: +- Create the ~/.cua directory if it doesn't exist +- Generate a startup script at ~/.cua/start_mcp_server.sh +- Make the script executable +- The startup script automatically manages Python virtual environments and installs/updates the cua-mcp-server package + +You can then use the script in your MCP configuration like this: + +```json +{ + "mcpServers": { + "cua-agent": { + "command": "/bin/bash", + "args": ["~/.cua/start_mcp_server.sh"], + "env": { + "CUA_MODEL_NAME": "anthropic/claude-3-5-sonnet-20241022" + } + } + } +} +``` + +### Troubleshooting + +If you get a `/bin/bash: ~/cua/libs/python/mcp-server/scripts/start_mcp_server.sh: No such file or directory` error, try changing the path to the script to be absolute instead of relative. + +To see the logs: +``` +tail -n 20 -f ~/Library/Logs/Claude/mcp*.log +``` \ No newline at end of file diff --git a/docs/content/docs/libraries/mcp-server/llm-integrations.mdx b/docs/content/docs/libraries/mcp-server/llm-integrations.mdx new file mode 100644 index 00000000..a7515ae2 --- /dev/null +++ b/docs/content/docs/libraries/mcp-server/llm-integrations.mdx @@ -0,0 +1,16 @@ +--- +title: LLM Integrations +--- +## LiteLLM Integration + +This MCP server features comprehensive liteLLM integration, allowing you to use any supported LLM provider with a simple model string configuration. + +- **Unified Configuration**: Use a single `CUA_MODEL_NAME` environment variable with a model string +- **Automatic Provider Detection**: The agent automatically detects the provider and capabilities from the model string +- **Extensive Provider Support**: Works with Anthropic, OpenAI, local models, and any liteLLM-compatible provider + +### Model String Examples: +- **Anthropic**: `"anthropic/claude-3-5-sonnet-20241022"` +- **OpenAI**: `"openai/computer-use-preview"` +- **UI-TARS**: `"huggingface-local/ByteDance-Seed/UI-TARS-1.5-7B"` +- **Omni + Any LiteLLM**: `"omniparser+litellm/gpt-4o"`, `"omniparser+litellm/claude-3-haiku"`, `"omniparser+ollama_chat/gemma3"` \ No newline at end of file diff --git a/docs/content/docs/libraries/mcp-server/meta.json b/docs/content/docs/libraries/mcp-server/meta.json new file mode 100644 index 00000000..45fa4ba9 --- /dev/null +++ b/docs/content/docs/libraries/mcp-server/meta.json @@ -0,0 +1,10 @@ +{ + "pages": [ + "installation", + "configuration", + "usage", + "tools", + "client-integrations", + "llm-integrations" + ] +} \ No newline at end of file diff --git a/docs/content/docs/libraries/mcp-server/tools.mdx b/docs/content/docs/libraries/mcp-server/tools.mdx new file mode 100644 index 00000000..edf29c0b --- /dev/null +++ b/docs/content/docs/libraries/mcp-server/tools.mdx @@ -0,0 +1,10 @@ +--- +title: Tools +--- + +## Available Tools + +The MCP server exposes the following tools to Claude: + +1. `run_cua_task` - Run a single Computer-Use Agent task with the given instruction +2. `run_multi_cua_tasks` - Run multiple tasks in sequence \ No newline at end of file diff --git a/docs/content/docs/libraries/mcp-server/usage.mdx b/docs/content/docs/libraries/mcp-server/usage.mdx new file mode 100644 index 00000000..19eef934 --- /dev/null +++ b/docs/content/docs/libraries/mcp-server/usage.mdx @@ -0,0 +1,20 @@ +--- +title: Usage +--- + +## Usage + +Once configured, you can simply ask Claude to perform computer tasks: + +- "Open Chrome and go to github.com" +- "Create a folder called 'Projects' on my desktop" +- "Find all PDFs in my Downloads folder" +- "Take a screenshot and highlight the error message" + +Claude will automatically use your CUA agent to perform these tasks. + +### First-time Usage Notes + +**API Keys**: Ensure you have valid API keys: + - Add your Anthropic API key, or other model provider API key in the Claude Desktop config (as shown above) + - Or set it as an environment variable in your shell profile diff --git a/libs/python/mcp-server/README.md b/libs/python/mcp-server/README.md index 090ebb31..abf82375 100644 --- a/libs/python/mcp-server/README.md +++ b/libs/python/mcp-server/README.md @@ -17,20 +17,6 @@ **cua-mcp-server** is a MCP server for the Computer-Use Agent (CUA), allowing you to run CUA through Claude Desktop or other MCP clients. -## LiteLLM Integration - -This MCP server features comprehensive liteLLM integration, allowing you to use any supported LLM provider with a simple model string configuration. - -- **Unified Configuration**: Use a single `CUA_MODEL_NAME` environment variable with a model string -- **Automatic Provider Detection**: The agent automatically detects the provider and capabilities from the model string -- **Extensive Provider Support**: Works with Anthropic, OpenAI, local models, and any liteLLM-compatible provider - -### Model String Examples: -- **Anthropic**: `"anthropic/claude-3-5-sonnet-20241022"` -- **OpenAI**: `"openai/computer-use-preview"` -- **UI-TARS**: `"huggingface-local/ByteDance-Seed/UI-TARS-1.5-7B"` -- **Omni + Any LiteLLM**: `"omniparser+litellm/gpt-4o"`, `"omniparser+litellm/claude-3-haiku"`, `"omniparser+ollama_chat/gemma3"` - ### Get started with Agent ## Prerequisites @@ -44,19 +30,6 @@ Before installing the MCP server, you'll need to set up full Computer-Use Agent Make sure these steps are completed and working before proceeding with the MCP server installation. -## Installation - -Install the package from PyPI: - -```bash -pip install cua-mcp-server -``` - -This will install: -- The MCP server -- CUA agent and computer dependencies -- An executable `cua-mcp-server` script in your PATH - ## Easy Setup Script If you want to simplify installation, you can use this one-liner to download and run the installation script: @@ -65,12 +38,6 @@ If you want to simplify installation, you can use this one-liner to download and curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/python/mcp-server/scripts/install_mcp_server.sh | bash ``` -This script will: -- Create the ~/.cua directory if it doesn't exist -- Generate a startup script at ~/.cua/start_mcp_server.sh -- Make the script executable -- The startup script automatically manages Python virtual environments and installs/updates the cua-mcp-server package - You can then use the script in your MCP configuration like this: ```json @@ -112,61 +79,11 @@ This configuration: Just add this to your MCP client's configuration and it will use your local development version of the server. -### Troubleshooting +## Docs -If you get a `/bin/bash: ~/cua/libs/python/mcp-server/scripts/start_mcp_server.sh: No such file or directory` error, try changing the path to the script to be absolute instead of relative. - -To see the logs: -``` -tail -n 20 -f ~/Library/Logs/Claude/mcp*.log -``` - -## Claude Desktop Integration - -To use with Claude Desktop, add an entry to your Claude Desktop configuration (`claude_desktop_config.json`, typically found in `~/.config/claude-desktop/`): - -For more information on MCP with Claude Desktop, see the [official MCP User Guide](https://modelcontextprotocol.io/quickstart/user). - -## Cursor Integration - -To use with Cursor, add an MCP configuration file in one of these locations: - -- **Project-specific**: Create `.cursor/mcp.json` in your project directory -- **Global**: Create `~/.cursor/mcp.json` in your home directory - -After configuration, you can simply tell Cursor's Agent to perform computer tasks by explicitly mentioning the CUA agent, such as "Use the computer control tools to open Safari." - -For more information on MCP with Cursor, see the [official Cursor MCP documentation](https://docs.cursor.com/context/model-context-protocol). - -### First-time Usage Notes - -**API Keys**: Ensure you have valid API keys: - - Add your Anthropic API key, or other model provider API key in the Claude Desktop config (as shown above) - - Or set it as an environment variable in your shell profile - -## Configuration - -The server is configured using environment variables (can be set in the Claude Desktop config): - -| Variable | Description | Default | -|----------|-------------|---------| -| `CUA_MODEL_NAME` | Model string (e.g., "anthropic/claude-3-5-sonnet-20241022", "openai/computer-use-preview", "huggingface-local/ByteDance-Seed/UI-TARS-1.5-7B", "omniparser+litellm/gpt-4o", "omniparser+ollama_chat/gemma3") | anthropic/claude-3-5-sonnet-20241022 | -| `CUA_MAX_IMAGES` | Maximum number of images to keep in context | 3 | - -## Available Tools - -The MCP server exposes the following tools to Claude: - -1. `run_cua_task` - Run a single Computer-Use Agent task with the given instruction -2. `run_multi_cua_tasks` - Run multiple tasks in sequence - -## Usage - -Once configured, you can simply ask Claude to perform computer tasks: - -- "Open Chrome and go to github.com" -- "Create a folder called 'Projects' on my desktop" -- "Find all PDFs in my Downloads folder" -- "Take a screenshot and highlight the error message" - -Claude will automatically use your CUA agent to perform these tasks. \ No newline at end of file +- [Installation](https://trycua.com/docs/libraries/mcp-server/installation) +- [Configuration](https://trycua.com/docs/libraries/mcp-server/configuration) +- [Usage](https://trycua.com/docs/libraries/mcp-server/usage) +- [Tools](https://trycua.com/docs/libraries/mcp-server/tools) +- [Client Integrations](https://trycua.com/docs/libraries/mcp-server/client-integrations) +- [LLM Integrations](https://trycua.com/docs/libraries/mcp-server/llm-integrations) \ No newline at end of file From 45dca9082b1b714f9d71d6be5230b155d6c23645 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Thu, 28 Aug 2025 07:55:07 -0400 Subject: [PATCH 100/103] Simplify README --- libs/python/mcp-server/README.md | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/libs/python/mcp-server/README.md b/libs/python/mcp-server/README.md index abf82375..08aa763a 100644 --- a/libs/python/mcp-server/README.md +++ b/libs/python/mcp-server/README.md @@ -21,18 +21,11 @@ ## Prerequisites -Before installing the MCP server, you'll need to set up full Computer-Use Agent capabilities. This includes: +Cua MCP Server requires [lume](https://github.com/trycua/cua/blob/main/libs/lume/README.md#install) to be installed. -1. Installing the Lume CLI -2. Pulling the latest macOS CUA image -3. Starting the Lume daemon service -4. Installing the required Python libraries (Optional: only needed if you want to verify the agent is working before installing MCP server) +## Install -Make sure these steps are completed and working before proceeding with the MCP server installation. - -## Easy Setup Script - -If you want to simplify installation, you can use this one-liner to download and run the installation script: +Download and run the installation script: ```bash curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/python/mcp-server/scripts/install_mcp_server.sh | bash @@ -54,9 +47,9 @@ You can then use the script in your MCP configuration like this: } ``` -## Development Guide +## Development -If you want to develop with the cua-mcp-server directly without installation, you can use this configuration: +Use this configuration to develop with the cua-mcp-server directly without installation: ```json { From b504133f8d3b064a9927633839c83eb1e6f073a3 Mon Sep 17 00:00:00 2001 From: f-trycua Date: Tue, 2 Sep 2025 00:54:50 +0200 Subject: [PATCH 101/103] Add hackathon info --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 4ebf8fe1..af895a65 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,11 @@
      trycua%2Fcua | Trendshift +> We’re hosting the **Computer-Use Agents SOTA Challenge** at [Hack the North](https://hackthenorth.com) and online! +>> **Track A (On-site @ UWaterloo)**: Reserved for participants accepted to Hack the North. 🏆 Prize: **YC interview guaranteed**. +>> **Track B (Remote)**: Open to everyone worldwide. 🏆 Prize: **Cash award**. +>>> 👉 Sign up here: [trycua.com/hackathon](https://www.trycua.com/hackathon) + **cua** ("koo-ah") is Docker for [Computer-Use Agents](https://www.oneusefulthing.org/p/when-you-give-a-claude-a-mouse) - it enables AI agents to control full operating systems in virtual containers and deploy them locally or to the cloud.
      From d039c57c68a7dc619cf0f23dee16fdfa0116e7ec Mon Sep 17 00:00:00 2001 From: f-trycua Date: Tue, 2 Sep 2025 11:11:39 +0200 Subject: [PATCH 102/103] Add hackathon samples folder --- samples/community/global-online/README.md | 3 +++ samples/community/hack-the-north/README.md | 3 +++ 2 files changed, 6 insertions(+) create mode 100644 samples/community/global-online/README.md create mode 100644 samples/community/hack-the-north/README.md diff --git a/samples/community/global-online/README.md b/samples/community/global-online/README.md new file mode 100644 index 00000000..137cebe6 --- /dev/null +++ b/samples/community/global-online/README.md @@ -0,0 +1,3 @@ +# Global Online Hackathon Submission + +In construction 🏗 ️ \ No newline at end of file diff --git a/samples/community/hack-the-north/README.md b/samples/community/hack-the-north/README.md new file mode 100644 index 00000000..b25f7a8d --- /dev/null +++ b/samples/community/hack-the-north/README.md @@ -0,0 +1,3 @@ +# Hack the North Hackathon Submission + +In construction 🏗️ \ No newline at end of file From 7850fac399bf46c0edda07af5963a5c0ad3a1658 Mon Sep 17 00:00:00 2001 From: James Murdza Date: Tue, 2 Sep 2025 15:00:36 -0400 Subject: [PATCH 103/103] Extend HUD integration documentation --- .../docs/agent-sdk/integrations/hud.mdx | 108 ++++++++++++++++-- 1 file changed, 97 insertions(+), 11 deletions(-) diff --git a/docs/content/docs/agent-sdk/integrations/hud.mdx b/docs/content/docs/agent-sdk/integrations/hud.mdx index cee5f77f..3ad35878 100644 --- a/docs/content/docs/agent-sdk/integrations/hud.mdx +++ b/docs/content/docs/agent-sdk/integrations/hud.mdx @@ -3,20 +3,38 @@ title: HUD Evals description: Use ComputerAgent with HUD for benchmarking and evaluation --- -The HUD integration allows you to use ComputerAgent with the [HUD benchmarking framework](https://www.hud.so/), providing the same interface as existing HUD agents while leveraging ComputerAgent's capabilities. +The HUD integration allows an agent to be benchmarked using the [HUD framework](https://www.hud.so/). Through the HUD integration, the agent controls a computer inside HUD, where tests are run to evaluate the success of each task. ## Installation +First, install the required package: + ```bash pip install "cua-agent[hud]" ## or install hud-python directly # pip install hud-python==0.4.12 ``` -## Usage +## Environment Variables + +Before running any evaluations, you’ll need to set up your environment variables for HUD and your model providers: + +```bash +# HUD access +export HUD_API_KEY="your_hud_api_key" + +# Model provider keys (at least one required) +export OPENAI_API_KEY="your_openai_key" +export ANTHROPIC_API_KEY="your_anthropic_key" +``` + +## Running a Single Task + +You can run a single task from a HUD dataset for quick verification. + +### Example ```python -# Quick single-task smoke test from agent.integrations.hud import run_single_task await run_single_task( @@ -24,8 +42,20 @@ await run_single_task( model="openai/computer-use-preview+openai/gpt-5-nano", # any supported model string task_id=155, # e.g., reopen last closed tab ) +``` -# Run a small split of OSWorld-Verified in parallel +### Parameters + +- `task_id` (`int`): Default: `0` + Index of the task to run from the dataset. + +## Running a Full Dataset + +To benchmark your agent at scale, you can run an entire dataset (or a subset) in parallel. + +### Example + +```python from agent.integrations.hud import run_full_dataset results = await run_full_dataset( @@ -35,13 +65,69 @@ results = await run_full_dataset( max_concurrent=20, # tune to your infra max_steps=50 # safety cap per task ) - -# Environment variables required: -# - HUD_API_KEY (HUD access) -# - OPENAI_API_KEY or ANTHROPIC_API_KEY depending on your chosen model(s) ``` -**Available Benchmarks:** -1. [OSWorld-Verified](/agent-sdk/benchmarks/osworld-verified) - Benchmark on OSWorld tasks +### Parameters -See the [HUD docs](https://docs.hud.so/environment-creation) for more eval environments. \ No newline at end of file +- `job_name` (`str` | `None`): + Optional human-readable name for the evaluation job (shows up in HUD UI). +- `max_concurrent` (`int`): Default: `30` + Number of tasks to run in parallel. Scale this based on your infra. +- `max_steps` (`int`): Default: `50` + Safety cap on steps per task to prevent infinite loops. +- `split` (`str`): Default: `"train"` + Dataset split or subset (e.g., `"train[:10]"`). + +## Additional Parameters + +Both single-task and full-dataset runs share a common set of configuration options. These let you fine-tune how the evaluation runs. + +- `dataset` (`str` | `Dataset` | `list[dict]`): **Required** + HUD dataset name (e.g. `"hud-evals/OSWorld-Verified-XLang"`), a loaded `Dataset`, or a list of tasks. +- `model` (`str`): Default: `"computer-use-preview"` + Model string, e.g. `"openai/computer-use-preview+openai/gpt-5-nano"`. Supports composition with `+` (planning + grounding). +- `allowed_tools` (`list[str]`): Default: `["openai_computer"]` + Restrict which tools the agent may use. +- `tools` (`list[Any]`): + Extra tool configs to inject. +- `custom_loop` (`Callable`): + Optional custom agent loop function. If provided, overrides automatic loop selection. +- `only_n_most_recent_images` (`int`): Default: `5` for full dataset, `None` for single task. + Retain only the last N screenshots in memory. +- `callbacks` (`list[Any]`): + Hook functions for logging, telemetry, or side effects. +- `verbosity` (`int`): + Logging level. Set `2` for debugging every call/action. +- `trajectory_dir` (`str` | `dict`): + Save local copies of trajectories for replay/analysis. +- `max_retries` (`int`): Default: `3` + Number of retries for failed model/tool calls. +- `screenshot_delay` (`float` | `int`): Default: `0.5` + Delay (seconds) between screenshots to avoid race conditions. +- `use_prompt_caching` (`bool`): Default: `False` + Cache repeated prompts to reduce API calls. +- `max_trajectory_budget` (`float` | `dict`): + Limit on trajectory size/budget (e.g., tokens, steps). +- `telemetry_enabled` (`bool`): Default: `True` + Whether to send telemetry/traces to HUD. +- `**kwargs` (`any`): + Any additional keyword arguments are passed through to the agent loop or model provider. + +## Available Benchmarks + +HUD provides multiple benchmark datasets for realistic evaluation. + +1. **[OSWorld-Verified](/agent-sdk/benchmarks/osworld-verified)** – Benchmark on 369+ real-world desktop tasks across Chrome, LibreOffice, GIMP, VS Code, etc. + *Best for*: evaluating full computer-use agents in realistic environments. + *Verified variant*: fixes 300+ issues from earlier versions for reliability. + +**Coming soon:** SheetBench (spreadsheet automation) and other specialized HUD datasets. + +See the [HUD docs](https://docs.hud.so/environment-creation) for more eval environments. + +## Tips + +* **Debugging:** set `verbosity=2` to see every model call and tool action. +* **Performance:** lower `screenshot_delay` for faster runs; raise it if you see race conditions. +* **Safety:** always set `max_steps` (defaults to 50) to prevent runaway loops. +* **Custom tools:** pass extra `tools=[...]` into the agent config if you need beyond `openai_computer`. \ No newline at end of file

      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ð{ndp;4?TsaMVW%~xI!kL9U5vm_B-P=l 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 z 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
      +33vqQ_Oa3* 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