From fa0b35d96cfe54b41ce2fc2714b9ba71c7abe585 Mon Sep 17 00:00:00 2001 From: Bar Nuri Date: Tue, 5 May 2026 08:49:12 +0300 Subject: [PATCH 1/5] openai-swagger-to-mcp --- .gitignore | 3 + ReadMe.md | 59 ++++ examples/pet-store-mcp/pyproject.toml | 19 ++ examples/pet-store-mcp/src/__init__.py | 0 examples/pet-store-mcp/src/client/__init__.py | 1 + examples/pet-store-mcp/src/client/client.py | 12 + .../src/client/controllers/PetController.py | 80 +++++ .../src/client/controllers/StoreController.py | 40 +++ .../src/client/controllers/UserController.py | 67 ++++ .../src/client/controllers/__init__.py | 0 .../src/client/models/ApiResponse.py | 6 + .../src/client/models/Category.py | 5 + .../pet-store-mcp/src/client/models/Order.py | 11 + .../pet-store-mcp/src/client/models/Pet.py | 12 + .../pet-store-mcp/src/client/models/Status.py | 7 + .../src/client/models/StatusEnum.py | 7 + .../pet-store-mcp/src/client/models/Tag.py | 5 + .../pet-store-mcp/src/client/models/User.py | 11 + .../src/client/models/__init__.py | 0 examples/pet-store-mcp/src/mcp_server.py | 54 ++++ examples/pet-store-mcp/src/server/__init__.py | 0 .../src/server/tools/__init__.py | 0 .../src/server/tools/pet_controller.py | 52 +++ .../src/server/tools/store_controller.py | 28 ++ .../src/server/tools/user_controller.py | 46 +++ .../python-pydantic-client/pyproject.toml | 15 + .../src/client/__init__.py | 1 + .../src/client/client.py | 12 + .../src/client/controllers/PetController.py | 80 +++++ .../src/client/controllers/StoreController.py | 40 +++ .../src/client/controllers/UserController.py | 67 ++++ .../src/client/controllers/__init__.py | 0 .../src/client/models/ApiResponse.py | 6 + .../src/client/models/Category.py | 5 + .../src/client/models/Order.py | 11 + .../src/client/models/Pet.py | 12 + .../src/client/models/Status.py | 7 + .../src/client/models/StatusEnum.py | 7 + .../src/client/models/Tag.py | 5 + .../src/client/models/User.py | 11 + .../src/client/models/__init__.py | 0 package.json | 31 +- src/generators/ClientGeneratorGetter.ts | 4 + src/generators/ServerGeneratorGetter.ts | 4 + .../client/PythonPydanticClientGenerator.ts | 301 ++++++++++++++++++ .../server/PythonMcpServerGenerator.ts | 235 ++++++++++++++ src/models/ClientGenerators.ts | 1 + src/models/ServerGenerators.ts | 1 + tsconfig.json | 5 +- 49 files changed, 1371 insertions(+), 15 deletions(-) create mode 100644 examples/pet-store-mcp/pyproject.toml create mode 100644 examples/pet-store-mcp/src/__init__.py create mode 100644 examples/pet-store-mcp/src/client/__init__.py create mode 100644 examples/pet-store-mcp/src/client/client.py create mode 100644 examples/pet-store-mcp/src/client/controllers/PetController.py create mode 100644 examples/pet-store-mcp/src/client/controllers/StoreController.py create mode 100644 examples/pet-store-mcp/src/client/controllers/UserController.py create mode 100644 examples/pet-store-mcp/src/client/controllers/__init__.py create mode 100644 examples/pet-store-mcp/src/client/models/ApiResponse.py create mode 100644 examples/pet-store-mcp/src/client/models/Category.py create mode 100644 examples/pet-store-mcp/src/client/models/Order.py create mode 100644 examples/pet-store-mcp/src/client/models/Pet.py create mode 100644 examples/pet-store-mcp/src/client/models/Status.py create mode 100644 examples/pet-store-mcp/src/client/models/StatusEnum.py create mode 100644 examples/pet-store-mcp/src/client/models/Tag.py create mode 100644 examples/pet-store-mcp/src/client/models/User.py create mode 100644 examples/pet-store-mcp/src/client/models/__init__.py create mode 100644 examples/pet-store-mcp/src/mcp_server.py create mode 100644 examples/pet-store-mcp/src/server/__init__.py create mode 100644 examples/pet-store-mcp/src/server/tools/__init__.py create mode 100644 examples/pet-store-mcp/src/server/tools/pet_controller.py create mode 100644 examples/pet-store-mcp/src/server/tools/store_controller.py create mode 100644 examples/pet-store-mcp/src/server/tools/user_controller.py create mode 100644 examples/python-pydantic-client/pyproject.toml create mode 100644 examples/python-pydantic-client/src/client/__init__.py create mode 100644 examples/python-pydantic-client/src/client/client.py create mode 100644 examples/python-pydantic-client/src/client/controllers/PetController.py create mode 100644 examples/python-pydantic-client/src/client/controllers/StoreController.py create mode 100644 examples/python-pydantic-client/src/client/controllers/UserController.py create mode 100644 examples/python-pydantic-client/src/client/controllers/__init__.py create mode 100644 examples/python-pydantic-client/src/client/models/ApiResponse.py create mode 100644 examples/python-pydantic-client/src/client/models/Category.py create mode 100644 examples/python-pydantic-client/src/client/models/Order.py create mode 100644 examples/python-pydantic-client/src/client/models/Pet.py create mode 100644 examples/python-pydantic-client/src/client/models/Status.py create mode 100644 examples/python-pydantic-client/src/client/models/StatusEnum.py create mode 100644 examples/python-pydantic-client/src/client/models/Tag.py create mode 100644 examples/python-pydantic-client/src/client/models/User.py create mode 100644 examples/python-pydantic-client/src/client/models/__init__.py create mode 100644 src/generators/client/PythonPydanticClientGenerator.ts create mode 100644 src/generators/server/PythonMcpServerGenerator.ts diff --git a/.gitignore b/.gitignore index 25b4600..f9504f5 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,6 @@ test* openapiSchemaExample.json package-lock.json .gitconfig +tasks.md +plan.md +code-review.md \ No newline at end of file diff --git a/ReadMe.md b/ReadMe.md index 5319505..5b8ba13 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -1,6 +1,65 @@ # openapi-toolkit openapi-toolkit is an open-source tool designed to streamline the integration of OpenAPI (formerly known as Swagger) specifications into your development workflow. By taking an OpenAPI/Swagger file as input, the OpenAPI Toolkit automatically generates server and client code, enabling seamless integration of APIs. This automation accelerates development processes, ensures consistency across different platforms, and reduces the risk of manual errors. Whether you're building a new service or integrating with existing APIs, OpenAPI Toolkit simplifies the process by providing ready-to-use code tailored to your OpenAPI specifications. +# Generate MCP Server + +openapi-toolkit can generate a fully functional [MCP SDK FastMCP](https://github.com/modelcontextprotocol/python-sdk) server from any OpenAPI/Swagger spec — one MCP tool per API endpoint, grouped by controller, with dynamic loading support. + +## Step 1 — Generate the Pydantic client + +```bash +openapi-toolkit -i https://petstore3.swagger.io/api/v3/openapi.json -g python-pydantic -o ./my-api-client +``` + +This emits a `uv`-compatible Python package with async `httpx` controllers and Pydantic v2 models. + +## Step 2 — Generate the MCP server + +```bash +openapi-toolkit -i https://petstore3.swagger.io/api/v3/openapi.json -g python-mcp-server -t server -o ./pet-store-mcp +``` + +The MCP server is placed next to the client (`../my-api-client`) and references it as a local editable dependency. + +Generated layout: +``` +my-api-mcp/ + pyproject.toml # uv project with fastmcp + pydantic client dep + src/ + mcp_server.py # FastMCP entry point, dynamic tool loading + client.py # cached Client instance (reads BASE_URL from env) + tools/ + .py # one file per API controller tag +``` + +## Step 3 — Install and run + +```bash +cd my-api-mcp +uv sync +BASE_URL=https://petstore3.swagger.io/api/v3 uv run python src/mcp_server.py +``` + +A fully generated example (Petstore API) is available in this repo: [examples/pet-store-mcp](https://github.com/barnuri/openapi-toolkit/tree/master/examples/pet-store-mcp) + +## Environment variables + +| Variable | Description | +|---|---| +| `BASE_URL` | Base URL of the target API (required at runtime) | +| `TOOL_FILTER_ROUTES` | Comma-separated list of controller names to load (e.g. `pet,store`). Loads all if unset. | +| `TOOL_FILTER_METHODS` | Comma-separated list of tool function names to register (e.g. `getPetById,addPet`). Registers all if unset. | + +**Example — load only the `pet` and `store` controllers:** +```bash +TOOL_FILTER_ROUTES=pet,store BASE_URL=https://... uv run python src/mcp_server.py +``` + +**Example — load only specific methods:** +```bash +TOOL_FILTER_METHODS=getPetById,addPet BASE_URL=https://... uv run python src/mcp_server.py +``` + # Install [![Run Tests](https://github.com/barnuri/openapi-toolkit/actions/workflows/runTests.yaml/badge.svg)](https://github.com/barnuri/openapi-toolkit/actions/workflows/runTests.yaml) [![Create Tag And Release And Publish To NPM](https://github.com/barnuri/openapi-toolkit/actions/workflows/createTagAndReleaseAndPublish.yaml/badge.svg)](https://github.com/barnuri/openapi-toolkit/actions/workflows/createTagAndReleaseAndPublish.yaml) diff --git a/examples/pet-store-mcp/pyproject.toml b/examples/pet-store-mcp/pyproject.toml new file mode 100644 index 0000000..b12002b --- /dev/null +++ b/examples/pet-store-mcp/pyproject.toml @@ -0,0 +1,19 @@ +[project] +name = "pet-store-mcp" +version = "0.1.0" +requires-python = ">=3.11" +dependencies = [ + "mcp>=1.0", + "httpx>=0.27", + "pydantic>=2.0", +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.build.targets.wheel] +packages = ["src/client", "src/server"] + +[project.scripts] +pet-store-mcp = "mcp_server:main" diff --git a/examples/pet-store-mcp/src/__init__.py b/examples/pet-store-mcp/src/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/examples/pet-store-mcp/src/client/__init__.py b/examples/pet-store-mcp/src/client/__init__.py new file mode 100644 index 0000000..3ff722b --- /dev/null +++ b/examples/pet-store-mcp/src/client/__init__.py @@ -0,0 +1 @@ +from .client import Client diff --git a/examples/pet-store-mcp/src/client/client.py b/examples/pet-store-mcp/src/client/client.py new file mode 100644 index 0000000..be47395 --- /dev/null +++ b/examples/pet-store-mcp/src/client/client.py @@ -0,0 +1,12 @@ +from .controllers.PetController import PetController +from .controllers.StoreController import StoreController +from .controllers.UserController import UserController +import os + + +class Client: + def __init__(self, base_url: str | None = None) -> None: + base_url = base_url or os.environ.get("BASE_URL", "") + self.PetController = PetController(base_url) + self.StoreController = StoreController(base_url) + self.UserController = UserController(base_url) diff --git a/examples/pet-store-mcp/src/client/controllers/PetController.py b/examples/pet-store-mcp/src/client/controllers/PetController.py new file mode 100644 index 0000000..63874ff --- /dev/null +++ b/examples/pet-store-mcp/src/client/controllers/PetController.py @@ -0,0 +1,80 @@ +import httpx +from ..models.Pet import Pet +from ..models.ApiResponse import ApiResponse + +class PetController: + def __init__(self, base_url: str) -> None: + self._base_url = base_url + + async def putPet(self, body: Pet, **kwargs) -> Pet: + async with httpx.AsyncClient() as client: + response = await client.put( + f"{self._base_url}/pet", + json=body.model_dump() if hasattr(body, 'model_dump') else body, + **kwargs, + ) + response.raise_for_status() + return response.json() + async def postPet(self, body: Pet, **kwargs) -> Pet: + async with httpx.AsyncClient() as client: + response = await client.post( + f"{self._base_url}/pet", + json=body.model_dump() if hasattr(body, 'model_dump') else body, + **kwargs, + ) + response.raise_for_status() + return response.json() + async def getFindByStatus(self, q_status: str | None = None, **kwargs) -> list[Pet]: + async with httpx.AsyncClient() as client: + response = await client.get( + f"{self._base_url}/pet/findByStatus", + params={k: v for k, v in {"status": q_status}.items() if v is not None}, + **kwargs, + ) + response.raise_for_status() + return response.json() + async def getFindByTags(self, q_tags: list[str] | None = None, **kwargs) -> list[Pet]: + async with httpx.AsyncClient() as client: + response = await client.get( + f"{self._base_url}/pet/findByTags", + params={k: v for k, v in {"tags": q_tags}.items() if v is not None}, + **kwargs, + ) + response.raise_for_status() + return response.json() + async def getPetId(self, p_pet_id: int | None, **kwargs) -> Pet: + async with httpx.AsyncClient() as client: + response = await client.get( + f"{self._base_url}/pet/{p_pet_id}", + **kwargs, + ) + response.raise_for_status() + return response.json() + async def postPetId(self, p_pet_id: int | None, q_name: str | None = None, q_status: str | None = None, **kwargs) -> Pet: + async with httpx.AsyncClient() as client: + response = await client.post( + f"{self._base_url}/pet/{p_pet_id}", + params={k: v for k, v in {"name": q_name, "status": q_status}.items() if v is not None}, + **kwargs, + ) + response.raise_for_status() + return response.json() + async def deletePetId(self, p_pet_id: int | None, h_apikey: str | None, **kwargs) -> dict: + async with httpx.AsyncClient() as client: + response = await client.delete( + f"{self._base_url}/pet/{p_pet_id}", + headers={'api_key': h_apikey}, + **kwargs, + ) + response.raise_for_status() + return response.json() + async def postPetIdUploadImage(self, body: str | None, p_pet_id: int | None, q_additional_metadata: str | None = None, **kwargs) -> ApiResponse: + async with httpx.AsyncClient() as client: + response = await client.post( + f"{self._base_url}/pet/{p_pet_id}/uploadImage", + json=body.model_dump() if hasattr(body, 'model_dump') else body, + params={k: v for k, v in {"additionalMetadata": q_additional_metadata}.items() if v is not None}, + **kwargs, + ) + response.raise_for_status() + return response.json() \ No newline at end of file diff --git a/examples/pet-store-mcp/src/client/controllers/StoreController.py b/examples/pet-store-mcp/src/client/controllers/StoreController.py new file mode 100644 index 0000000..c9ce64b --- /dev/null +++ b/examples/pet-store-mcp/src/client/controllers/StoreController.py @@ -0,0 +1,40 @@ +import httpx +from ..models.Order import Order + +class StoreController: + def __init__(self, base_url: str) -> None: + self._base_url = base_url + + async def getInventory(self, **kwargs) -> dict[str, int]: + async with httpx.AsyncClient() as client: + response = await client.get( + f"{self._base_url}/store/inventory", + **kwargs, + ) + response.raise_for_status() + return response.json() + async def postOrder(self, body: Order | None, **kwargs) -> Order: + async with httpx.AsyncClient() as client: + response = await client.post( + f"{self._base_url}/store/order", + json=body.model_dump() if hasattr(body, 'model_dump') else body, + **kwargs, + ) + response.raise_for_status() + return response.json() + async def getOrderOrderId(self, p_order_id: int | None, **kwargs) -> Order: + async with httpx.AsyncClient() as client: + response = await client.get( + f"{self._base_url}/store/order/{p_order_id}", + **kwargs, + ) + response.raise_for_status() + return response.json() + async def deleteOrderOrderId(self, p_order_id: int | None, **kwargs) -> dict: + async with httpx.AsyncClient() as client: + response = await client.delete( + f"{self._base_url}/store/order/{p_order_id}", + **kwargs, + ) + response.raise_for_status() + return response.json() \ No newline at end of file diff --git a/examples/pet-store-mcp/src/client/controllers/UserController.py b/examples/pet-store-mcp/src/client/controllers/UserController.py new file mode 100644 index 0000000..95fc424 --- /dev/null +++ b/examples/pet-store-mcp/src/client/controllers/UserController.py @@ -0,0 +1,67 @@ +import httpx +from ..models.User import User + +class UserController: + def __init__(self, base_url: str) -> None: + self._base_url = base_url + + async def postUser(self, body: User | None, **kwargs) -> User: + async with httpx.AsyncClient() as client: + response = await client.post( + f"{self._base_url}/user", + json=body.model_dump() if hasattr(body, 'model_dump') else body, + **kwargs, + ) + response.raise_for_status() + return response.json() + async def postCreateWithList(self, body: list[User] | None, **kwargs) -> User: + async with httpx.AsyncClient() as client: + response = await client.post( + f"{self._base_url}/user/createWithList", + json=body.model_dump() if hasattr(body, 'model_dump') else body, + **kwargs, + ) + response.raise_for_status() + return response.json() + async def getLogin(self, q_username: str | None = None, q_password: str | None = None, **kwargs) -> str: + async with httpx.AsyncClient() as client: + response = await client.get( + f"{self._base_url}/user/login", + params={k: v for k, v in {"username": q_username, "password": q_password}.items() if v is not None}, + **kwargs, + ) + response.raise_for_status() + return response.json() + async def getLogout(self, **kwargs) -> dict: + async with httpx.AsyncClient() as client: + response = await client.get( + f"{self._base_url}/user/logout", + **kwargs, + ) + response.raise_for_status() + return response.json() + async def getUsername(self, p_username: str | None, **kwargs) -> User: + async with httpx.AsyncClient() as client: + response = await client.get( + f"{self._base_url}/user/{p_username}", + **kwargs, + ) + response.raise_for_status() + return response.json() + async def putUsername(self, body: User | None, p_username: str | None, **kwargs) -> dict: + async with httpx.AsyncClient() as client: + response = await client.put( + f"{self._base_url}/user/{p_username}", + json=body.model_dump() if hasattr(body, 'model_dump') else body, + **kwargs, + ) + response.raise_for_status() + return response.json() + async def deleteUsername(self, p_username: str | None, **kwargs) -> dict: + async with httpx.AsyncClient() as client: + response = await client.delete( + f"{self._base_url}/user/{p_username}", + **kwargs, + ) + response.raise_for_status() + return response.json() \ No newline at end of file diff --git a/examples/pet-store-mcp/src/client/controllers/__init__.py b/examples/pet-store-mcp/src/client/controllers/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/examples/pet-store-mcp/src/client/models/ApiResponse.py b/examples/pet-store-mcp/src/client/models/ApiResponse.py new file mode 100644 index 0000000..7f7a584 --- /dev/null +++ b/examples/pet-store-mcp/src/client/models/ApiResponse.py @@ -0,0 +1,6 @@ +from pydantic import BaseModel, ConfigDict + +class ApiResponse(BaseModel): + code: int | None = None + type: str | None = None + message: str | None = None \ No newline at end of file diff --git a/examples/pet-store-mcp/src/client/models/Category.py b/examples/pet-store-mcp/src/client/models/Category.py new file mode 100644 index 0000000..523354d --- /dev/null +++ b/examples/pet-store-mcp/src/client/models/Category.py @@ -0,0 +1,5 @@ +from pydantic import BaseModel, ConfigDict + +class Category(BaseModel): + id: int | None = None + name: str | None = None \ No newline at end of file diff --git a/examples/pet-store-mcp/src/client/models/Order.py b/examples/pet-store-mcp/src/client/models/Order.py new file mode 100644 index 0000000..2193ee0 --- /dev/null +++ b/examples/pet-store-mcp/src/client/models/Order.py @@ -0,0 +1,11 @@ +from ..models.StatusEnum import StatusEnum +from datetime import datetime +from pydantic import BaseModel, ConfigDict + +class Order(BaseModel): + id: int | None = None + petId: int | None = None + quantity: int | None = None + shipDate: datetime | None = None + status: StatusEnum | None = None + complete: bool | None = None \ No newline at end of file diff --git a/examples/pet-store-mcp/src/client/models/Pet.py b/examples/pet-store-mcp/src/client/models/Pet.py new file mode 100644 index 0000000..1752d58 --- /dev/null +++ b/examples/pet-store-mcp/src/client/models/Pet.py @@ -0,0 +1,12 @@ +from ..models.Category import Category +from ..models.Tag import Tag +from ..models.StatusEnum import StatusEnum +from pydantic import BaseModel, ConfigDict + +class Pet(BaseModel): + id: int | None = None + name: str = None + category: Category | None = None + photoUrls: list[str] | None = None + tags: list[Tag] | None = None + status: StatusEnum | None = None \ No newline at end of file diff --git a/examples/pet-store-mcp/src/client/models/Status.py b/examples/pet-store-mcp/src/client/models/Status.py new file mode 100644 index 0000000..1366cfe --- /dev/null +++ b/examples/pet-store-mcp/src/client/models/Status.py @@ -0,0 +1,7 @@ +from enum import Enum + + +class Status(str, Enum): + placed = 'placed' + approved = 'approved' + delivered = 'delivered' \ No newline at end of file diff --git a/examples/pet-store-mcp/src/client/models/StatusEnum.py b/examples/pet-store-mcp/src/client/models/StatusEnum.py new file mode 100644 index 0000000..2a25f82 --- /dev/null +++ b/examples/pet-store-mcp/src/client/models/StatusEnum.py @@ -0,0 +1,7 @@ +from enum import Enum + + +class StatusEnum(str, Enum): + placed = 'placed' + approved = 'approved' + delivered = 'delivered' \ No newline at end of file diff --git a/examples/pet-store-mcp/src/client/models/Tag.py b/examples/pet-store-mcp/src/client/models/Tag.py new file mode 100644 index 0000000..27152d5 --- /dev/null +++ b/examples/pet-store-mcp/src/client/models/Tag.py @@ -0,0 +1,5 @@ +from pydantic import BaseModel, ConfigDict + +class Tag(BaseModel): + id: int | None = None + name: str | None = None \ No newline at end of file diff --git a/examples/pet-store-mcp/src/client/models/User.py b/examples/pet-store-mcp/src/client/models/User.py new file mode 100644 index 0000000..fd809a1 --- /dev/null +++ b/examples/pet-store-mcp/src/client/models/User.py @@ -0,0 +1,11 @@ +from pydantic import BaseModel, ConfigDict + +class User(BaseModel): + id: int | None = None + username: str | None = None + firstName: str | None = None + lastName: str | None = None + email: str | None = None + password: str | None = None + phone: str | None = None + userStatus: int | None = None \ No newline at end of file diff --git a/examples/pet-store-mcp/src/client/models/__init__.py b/examples/pet-store-mcp/src/client/models/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/examples/pet-store-mcp/src/mcp_server.py b/examples/pet-store-mcp/src/mcp_server.py new file mode 100644 index 0000000..ab86ab3 --- /dev/null +++ b/examples/pet-store-mcp/src/mcp_server.py @@ -0,0 +1,54 @@ +import importlib +import os +import sys +from functools import lru_cache +from pathlib import Path + +sys.path.insert(0, str(Path(__file__).parent)) + +from mcp.server.fastmcp import FastMCP +from client import Client + +mcp = FastMCP("pet-store-mcp") + + +@lru_cache(maxsize=1) +def get_client() -> Client: + return Client(os.environ.get("BASE_URL", "")) + + +_route_filter = [r.strip() for r in os.environ.get("TOOL_FILTER_ROUTES", "").split(",") if r.strip()] +_method_filter = [m.strip() for m in os.environ.get("TOOL_FILTER_METHODS", "").split(",") if m.strip()] + +ALL_TOOLS: list[str] = ["pet_controller", "store_controller", "user_controller"] + +for _module_name in ALL_TOOLS: + if not _route_filter or _module_name in _route_filter: + _module = importlib.import_module(f"server.tools.{_module_name}") + for _tool in _module.TOOLS: + if not _method_filter or _tool.__name__ in _method_filter: + mcp.tool()(_tool) + + +def main() -> None: + import argparse + + parser = argparse.ArgumentParser(description="pet-store-mcp MCP server") + parser.add_argument("--transport", default="stdio", choices=["stdio", "sse", "streamable-http"], help="Transport type (default: stdio)") + parser.add_argument("--host", default="127.0.0.1", help="Host for HTTP transports (default: 127.0.0.1)") + parser.add_argument("--port", type=int, default=8000, help="Port for HTTP transports (default: 8000)") + parser.add_argument("--path", default="/mcp", help="Path for streamable-http transport (default: /mcp)") + args = parser.parse_args() + + run_kwargs: dict = {"transport": args.transport} + if args.transport != "stdio": + run_kwargs["host"] = args.host + run_kwargs["port"] = args.port + if args.transport == "streamable-http": + run_kwargs["path"] = args.path + + mcp.run(**run_kwargs) + + +if __name__ == "__main__": + main() diff --git a/examples/pet-store-mcp/src/server/__init__.py b/examples/pet-store-mcp/src/server/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/examples/pet-store-mcp/src/server/tools/__init__.py b/examples/pet-store-mcp/src/server/tools/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/examples/pet-store-mcp/src/server/tools/pet_controller.py b/examples/pet-store-mcp/src/server/tools/pet_controller.py new file mode 100644 index 0000000..8f3618c --- /dev/null +++ b/examples/pet-store-mcp/src/server/tools/pet_controller.py @@ -0,0 +1,52 @@ +from mcp_server import get_client +from client.models.Pet import Pet + +async def putPet(body: Pet, ) -> dict: + """PUT /pet""" + client = get_client() + return await client.PetController.putPet(body=body) + + +async def postPet(body: Pet, ) -> dict: + """POST /pet""" + client = get_client() + return await client.PetController.postPet(body=body) + + +async def getFindByStatus(q_status: str | None = None, ) -> dict: + """GET /pet/findByStatus""" + client = get_client() + return await client.PetController.getFindByStatus(q_status=q_status) + + +async def getFindByTags(q_tags: list[str] | None = None, ) -> dict: + """GET /pet/findByTags""" + client = get_client() + return await client.PetController.getFindByTags(q_tags=q_tags) + + +async def getPetId(p_pet_id: int | None, ) -> dict: + """GET /pet/{petId}""" + client = get_client() + return await client.PetController.getPetId(p_pet_id=p_pet_id) + + +async def postPetId(p_pet_id: int | None, q_name: str | None = None, q_status: str | None = None, ) -> dict: + """POST /pet/{petId}""" + client = get_client() + return await client.PetController.postPetId(p_pet_id=p_pet_id, q_name=q_name, q_status=q_status) + + +async def deletePetId(p_pet_id: int | None, h_apikey: str | None, ) -> dict: + """DELETE /pet/{petId}""" + client = get_client() + return await client.PetController.deletePetId(p_pet_id=p_pet_id, h_apikey=h_apikey) + + +async def postPetIdUploadImage(body: str | None, p_pet_id: int | None, q_additional_metadata: str | None = None, ) -> dict: + """POST /pet/{petId}/uploadImage""" + client = get_client() + return await client.PetController.postPetIdUploadImage(body=body, p_pet_id=p_pet_id, q_additional_metadata=q_additional_metadata) + + +TOOLS = [putPet, postPet, getFindByStatus, getFindByTags, getPetId, postPetId, deletePetId, postPetIdUploadImage] diff --git a/examples/pet-store-mcp/src/server/tools/store_controller.py b/examples/pet-store-mcp/src/server/tools/store_controller.py new file mode 100644 index 0000000..7cd3c1d --- /dev/null +++ b/examples/pet-store-mcp/src/server/tools/store_controller.py @@ -0,0 +1,28 @@ +from mcp_server import get_client +from client.models.Order import Order + +async def getInventory() -> dict: + """GET /store/inventory""" + client = get_client() + return await client.StoreController.getInventory() + + +async def postOrder(body: Order | None, ) -> dict: + """POST /store/order""" + client = get_client() + return await client.StoreController.postOrder(body=body) + + +async def getOrderOrderId(p_order_id: int | None, ) -> dict: + """GET /store/order/{orderId}""" + client = get_client() + return await client.StoreController.getOrderOrderId(p_order_id=p_order_id) + + +async def deleteOrderOrderId(p_order_id: int | None, ) -> dict: + """DELETE /store/order/{orderId}""" + client = get_client() + return await client.StoreController.deleteOrderOrderId(p_order_id=p_order_id) + + +TOOLS = [getInventory, postOrder, getOrderOrderId, deleteOrderOrderId] diff --git a/examples/pet-store-mcp/src/server/tools/user_controller.py b/examples/pet-store-mcp/src/server/tools/user_controller.py new file mode 100644 index 0000000..80439da --- /dev/null +++ b/examples/pet-store-mcp/src/server/tools/user_controller.py @@ -0,0 +1,46 @@ +from mcp_server import get_client +from client.models.User import User + +async def postUser(body: User | None, ) -> dict: + """POST /user""" + client = get_client() + return await client.UserController.postUser(body=body) + + +async def postCreateWithList(body: list[User] | None, ) -> dict: + """POST /user/createWithList""" + client = get_client() + return await client.UserController.postCreateWithList(body=body) + + +async def getLogin(q_username: str | None = None, q_password: str | None = None, ) -> dict: + """GET /user/login""" + client = get_client() + return await client.UserController.getLogin(q_username=q_username, q_password=q_password) + + +async def getLogout() -> dict: + """GET /user/logout""" + client = get_client() + return await client.UserController.getLogout() + + +async def getUsername(p_username: str | None, ) -> dict: + """GET /user/{username}""" + client = get_client() + return await client.UserController.getUsername(p_username=p_username) + + +async def putUsername(body: User | None, p_username: str | None, ) -> dict: + """PUT /user/{username}""" + client = get_client() + return await client.UserController.putUsername(body=body, p_username=p_username) + + +async def deleteUsername(p_username: str | None, ) -> dict: + """DELETE /user/{username}""" + client = get_client() + return await client.UserController.deleteUsername(p_username=p_username) + + +TOOLS = [postUser, postCreateWithList, getLogin, getLogout, getUsername, putUsername, deleteUsername] diff --git a/examples/python-pydantic-client/pyproject.toml b/examples/python-pydantic-client/pyproject.toml new file mode 100644 index 0000000..229d1b4 --- /dev/null +++ b/examples/python-pydantic-client/pyproject.toml @@ -0,0 +1,15 @@ +[project] +name = "python-pydantic-client" +version = "0.1.0" +requires-python = ">=3.11" +dependencies = [ + "httpx>=0.27", + "pydantic>=2.0", +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.build.targets.wheel] +packages = ["src/client"] diff --git a/examples/python-pydantic-client/src/client/__init__.py b/examples/python-pydantic-client/src/client/__init__.py new file mode 100644 index 0000000..3ff722b --- /dev/null +++ b/examples/python-pydantic-client/src/client/__init__.py @@ -0,0 +1 @@ +from .client import Client diff --git a/examples/python-pydantic-client/src/client/client.py b/examples/python-pydantic-client/src/client/client.py new file mode 100644 index 0000000..be47395 --- /dev/null +++ b/examples/python-pydantic-client/src/client/client.py @@ -0,0 +1,12 @@ +from .controllers.PetController import PetController +from .controllers.StoreController import StoreController +from .controllers.UserController import UserController +import os + + +class Client: + def __init__(self, base_url: str | None = None) -> None: + base_url = base_url or os.environ.get("BASE_URL", "") + self.PetController = PetController(base_url) + self.StoreController = StoreController(base_url) + self.UserController = UserController(base_url) diff --git a/examples/python-pydantic-client/src/client/controllers/PetController.py b/examples/python-pydantic-client/src/client/controllers/PetController.py new file mode 100644 index 0000000..63874ff --- /dev/null +++ b/examples/python-pydantic-client/src/client/controllers/PetController.py @@ -0,0 +1,80 @@ +import httpx +from ..models.Pet import Pet +from ..models.ApiResponse import ApiResponse + +class PetController: + def __init__(self, base_url: str) -> None: + self._base_url = base_url + + async def putPet(self, body: Pet, **kwargs) -> Pet: + async with httpx.AsyncClient() as client: + response = await client.put( + f"{self._base_url}/pet", + json=body.model_dump() if hasattr(body, 'model_dump') else body, + **kwargs, + ) + response.raise_for_status() + return response.json() + async def postPet(self, body: Pet, **kwargs) -> Pet: + async with httpx.AsyncClient() as client: + response = await client.post( + f"{self._base_url}/pet", + json=body.model_dump() if hasattr(body, 'model_dump') else body, + **kwargs, + ) + response.raise_for_status() + return response.json() + async def getFindByStatus(self, q_status: str | None = None, **kwargs) -> list[Pet]: + async with httpx.AsyncClient() as client: + response = await client.get( + f"{self._base_url}/pet/findByStatus", + params={k: v for k, v in {"status": q_status}.items() if v is not None}, + **kwargs, + ) + response.raise_for_status() + return response.json() + async def getFindByTags(self, q_tags: list[str] | None = None, **kwargs) -> list[Pet]: + async with httpx.AsyncClient() as client: + response = await client.get( + f"{self._base_url}/pet/findByTags", + params={k: v for k, v in {"tags": q_tags}.items() if v is not None}, + **kwargs, + ) + response.raise_for_status() + return response.json() + async def getPetId(self, p_pet_id: int | None, **kwargs) -> Pet: + async with httpx.AsyncClient() as client: + response = await client.get( + f"{self._base_url}/pet/{p_pet_id}", + **kwargs, + ) + response.raise_for_status() + return response.json() + async def postPetId(self, p_pet_id: int | None, q_name: str | None = None, q_status: str | None = None, **kwargs) -> Pet: + async with httpx.AsyncClient() as client: + response = await client.post( + f"{self._base_url}/pet/{p_pet_id}", + params={k: v for k, v in {"name": q_name, "status": q_status}.items() if v is not None}, + **kwargs, + ) + response.raise_for_status() + return response.json() + async def deletePetId(self, p_pet_id: int | None, h_apikey: str | None, **kwargs) -> dict: + async with httpx.AsyncClient() as client: + response = await client.delete( + f"{self._base_url}/pet/{p_pet_id}", + headers={'api_key': h_apikey}, + **kwargs, + ) + response.raise_for_status() + return response.json() + async def postPetIdUploadImage(self, body: str | None, p_pet_id: int | None, q_additional_metadata: str | None = None, **kwargs) -> ApiResponse: + async with httpx.AsyncClient() as client: + response = await client.post( + f"{self._base_url}/pet/{p_pet_id}/uploadImage", + json=body.model_dump() if hasattr(body, 'model_dump') else body, + params={k: v for k, v in {"additionalMetadata": q_additional_metadata}.items() if v is not None}, + **kwargs, + ) + response.raise_for_status() + return response.json() \ No newline at end of file diff --git a/examples/python-pydantic-client/src/client/controllers/StoreController.py b/examples/python-pydantic-client/src/client/controllers/StoreController.py new file mode 100644 index 0000000..c9ce64b --- /dev/null +++ b/examples/python-pydantic-client/src/client/controllers/StoreController.py @@ -0,0 +1,40 @@ +import httpx +from ..models.Order import Order + +class StoreController: + def __init__(self, base_url: str) -> None: + self._base_url = base_url + + async def getInventory(self, **kwargs) -> dict[str, int]: + async with httpx.AsyncClient() as client: + response = await client.get( + f"{self._base_url}/store/inventory", + **kwargs, + ) + response.raise_for_status() + return response.json() + async def postOrder(self, body: Order | None, **kwargs) -> Order: + async with httpx.AsyncClient() as client: + response = await client.post( + f"{self._base_url}/store/order", + json=body.model_dump() if hasattr(body, 'model_dump') else body, + **kwargs, + ) + response.raise_for_status() + return response.json() + async def getOrderOrderId(self, p_order_id: int | None, **kwargs) -> Order: + async with httpx.AsyncClient() as client: + response = await client.get( + f"{self._base_url}/store/order/{p_order_id}", + **kwargs, + ) + response.raise_for_status() + return response.json() + async def deleteOrderOrderId(self, p_order_id: int | None, **kwargs) -> dict: + async with httpx.AsyncClient() as client: + response = await client.delete( + f"{self._base_url}/store/order/{p_order_id}", + **kwargs, + ) + response.raise_for_status() + return response.json() \ No newline at end of file diff --git a/examples/python-pydantic-client/src/client/controllers/UserController.py b/examples/python-pydantic-client/src/client/controllers/UserController.py new file mode 100644 index 0000000..95fc424 --- /dev/null +++ b/examples/python-pydantic-client/src/client/controllers/UserController.py @@ -0,0 +1,67 @@ +import httpx +from ..models.User import User + +class UserController: + def __init__(self, base_url: str) -> None: + self._base_url = base_url + + async def postUser(self, body: User | None, **kwargs) -> User: + async with httpx.AsyncClient() as client: + response = await client.post( + f"{self._base_url}/user", + json=body.model_dump() if hasattr(body, 'model_dump') else body, + **kwargs, + ) + response.raise_for_status() + return response.json() + async def postCreateWithList(self, body: list[User] | None, **kwargs) -> User: + async with httpx.AsyncClient() as client: + response = await client.post( + f"{self._base_url}/user/createWithList", + json=body.model_dump() if hasattr(body, 'model_dump') else body, + **kwargs, + ) + response.raise_for_status() + return response.json() + async def getLogin(self, q_username: str | None = None, q_password: str | None = None, **kwargs) -> str: + async with httpx.AsyncClient() as client: + response = await client.get( + f"{self._base_url}/user/login", + params={k: v for k, v in {"username": q_username, "password": q_password}.items() if v is not None}, + **kwargs, + ) + response.raise_for_status() + return response.json() + async def getLogout(self, **kwargs) -> dict: + async with httpx.AsyncClient() as client: + response = await client.get( + f"{self._base_url}/user/logout", + **kwargs, + ) + response.raise_for_status() + return response.json() + async def getUsername(self, p_username: str | None, **kwargs) -> User: + async with httpx.AsyncClient() as client: + response = await client.get( + f"{self._base_url}/user/{p_username}", + **kwargs, + ) + response.raise_for_status() + return response.json() + async def putUsername(self, body: User | None, p_username: str | None, **kwargs) -> dict: + async with httpx.AsyncClient() as client: + response = await client.put( + f"{self._base_url}/user/{p_username}", + json=body.model_dump() if hasattr(body, 'model_dump') else body, + **kwargs, + ) + response.raise_for_status() + return response.json() + async def deleteUsername(self, p_username: str | None, **kwargs) -> dict: + async with httpx.AsyncClient() as client: + response = await client.delete( + f"{self._base_url}/user/{p_username}", + **kwargs, + ) + response.raise_for_status() + return response.json() \ No newline at end of file diff --git a/examples/python-pydantic-client/src/client/controllers/__init__.py b/examples/python-pydantic-client/src/client/controllers/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/examples/python-pydantic-client/src/client/models/ApiResponse.py b/examples/python-pydantic-client/src/client/models/ApiResponse.py new file mode 100644 index 0000000..7f7a584 --- /dev/null +++ b/examples/python-pydantic-client/src/client/models/ApiResponse.py @@ -0,0 +1,6 @@ +from pydantic import BaseModel, ConfigDict + +class ApiResponse(BaseModel): + code: int | None = None + type: str | None = None + message: str | None = None \ No newline at end of file diff --git a/examples/python-pydantic-client/src/client/models/Category.py b/examples/python-pydantic-client/src/client/models/Category.py new file mode 100644 index 0000000..523354d --- /dev/null +++ b/examples/python-pydantic-client/src/client/models/Category.py @@ -0,0 +1,5 @@ +from pydantic import BaseModel, ConfigDict + +class Category(BaseModel): + id: int | None = None + name: str | None = None \ No newline at end of file diff --git a/examples/python-pydantic-client/src/client/models/Order.py b/examples/python-pydantic-client/src/client/models/Order.py new file mode 100644 index 0000000..2193ee0 --- /dev/null +++ b/examples/python-pydantic-client/src/client/models/Order.py @@ -0,0 +1,11 @@ +from ..models.StatusEnum import StatusEnum +from datetime import datetime +from pydantic import BaseModel, ConfigDict + +class Order(BaseModel): + id: int | None = None + petId: int | None = None + quantity: int | None = None + shipDate: datetime | None = None + status: StatusEnum | None = None + complete: bool | None = None \ No newline at end of file diff --git a/examples/python-pydantic-client/src/client/models/Pet.py b/examples/python-pydantic-client/src/client/models/Pet.py new file mode 100644 index 0000000..1752d58 --- /dev/null +++ b/examples/python-pydantic-client/src/client/models/Pet.py @@ -0,0 +1,12 @@ +from ..models.Category import Category +from ..models.Tag import Tag +from ..models.StatusEnum import StatusEnum +from pydantic import BaseModel, ConfigDict + +class Pet(BaseModel): + id: int | None = None + name: str = None + category: Category | None = None + photoUrls: list[str] | None = None + tags: list[Tag] | None = None + status: StatusEnum | None = None \ No newline at end of file diff --git a/examples/python-pydantic-client/src/client/models/Status.py b/examples/python-pydantic-client/src/client/models/Status.py new file mode 100644 index 0000000..1366cfe --- /dev/null +++ b/examples/python-pydantic-client/src/client/models/Status.py @@ -0,0 +1,7 @@ +from enum import Enum + + +class Status(str, Enum): + placed = 'placed' + approved = 'approved' + delivered = 'delivered' \ No newline at end of file diff --git a/examples/python-pydantic-client/src/client/models/StatusEnum.py b/examples/python-pydantic-client/src/client/models/StatusEnum.py new file mode 100644 index 0000000..2a25f82 --- /dev/null +++ b/examples/python-pydantic-client/src/client/models/StatusEnum.py @@ -0,0 +1,7 @@ +from enum import Enum + + +class StatusEnum(str, Enum): + placed = 'placed' + approved = 'approved' + delivered = 'delivered' \ No newline at end of file diff --git a/examples/python-pydantic-client/src/client/models/Tag.py b/examples/python-pydantic-client/src/client/models/Tag.py new file mode 100644 index 0000000..27152d5 --- /dev/null +++ b/examples/python-pydantic-client/src/client/models/Tag.py @@ -0,0 +1,5 @@ +from pydantic import BaseModel, ConfigDict + +class Tag(BaseModel): + id: int | None = None + name: str | None = None \ No newline at end of file diff --git a/examples/python-pydantic-client/src/client/models/User.py b/examples/python-pydantic-client/src/client/models/User.py new file mode 100644 index 0000000..fd809a1 --- /dev/null +++ b/examples/python-pydantic-client/src/client/models/User.py @@ -0,0 +1,11 @@ +from pydantic import BaseModel, ConfigDict + +class User(BaseModel): + id: int | None = None + username: str | None = None + firstName: str | None = None + lastName: str | None = None + email: str | None = None + password: str | None = None + phone: str | None = None + userStatus: int | None = None \ No newline at end of file diff --git a/examples/python-pydantic-client/src/client/models/__init__.py b/examples/python-pydantic-client/src/client/models/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/package.json b/package.json index 8251319..cf87d5b 100644 --- a/package.json +++ b/package.json @@ -35,27 +35,30 @@ "test:python": "npm run build && cross-env-shell \"node ./dist/cli-generate.js -i $OPENAPI_TOOLKIT_TESTFILE -g python -o ./test-python --modelNamePrefix My --modelNameSuffix .dto.test\" && python -m pylint --errors-only ./test-python", "test:go": "npm run build && cross-env-shell \"node ./dist/cli-generate.js -i $OPENAPI_TOOLKIT_TESTFILE -g go -o ./test-go\"", "test:go-server": "npm run build && cross-env-shell \"node ./dist/cli-generate.js -i $OPENAPI_TOOLKIT_TESTFILE -g go -o ./test-go-server -t server\"", - "upgradeDep": "npm-check-updates -u" + "upgradeDep": "npm-check-updates -u", + "gen": "npm run gen:python-mcp-example && npm run gen:python-pydantic-client-example", + "gen:python-mcp-example": "npm run build && rimraf ./examples/pet-store-mcp && node ./dist/cli-generate.js -i https://petstore3.swagger.io/api/v3/openapi.json -g python-mcp-server -t server -o ./examples/pet-store-mcp", + "gen:python-pydantic-client-example": "npm run build && rimraf ./examples/python-pydantic-client && node ./dist/cli-generate.js -i https://petstore3.swagger.io/api/v3/openapi.json -g python-pydantic -o ./examples/python-pydantic-client" }, "dependencies": { - "axios": "^1.7.7", + "axios": "^1.16.0", "colors-ext": "^1.0.3", - "jsonpath-plus": "^10.0.0", - "rimraf": "^6.0.1", + "jsonpath-plus": "^10.4.0", + "rimraf": "^6.1.3", "swagger2openapi": "^7.0.8", - "tslib": "^2.7.0", - "yargs": "^17.7.2" + "tslib": "^2.8.1", + "yargs": "^18.0.0" }, "devDependencies": { "@types/jsonpath": "^0.2.4", - "@types/node": "^22.7.5", - "@types/yargs": "^17.0.33", - "cpy-cli": "^5.0.0", - "cross-env": "^7.0.3", - "nodemon": "^3.1.7", - "npm-check-updates": "^17.1.3", - "prettier": "^3.3.3", + "@types/node": "^25.6.0", + "@types/yargs": "^17.0.35", + "cpy-cli": "^7.0.0", + "cross-env": "^10.1.0", + "nodemon": "^3.1.14", + "npm-check-updates": "^22.1.0", + "prettier": "^3.8.3", "react-query": "^3.39.3", - "typescript": "^5.6.3" + "typescript": "^6.0.3" } } diff --git a/src/generators/ClientGeneratorGetter.ts b/src/generators/ClientGeneratorGetter.ts index a80d6cc..2de4e76 100644 --- a/src/generators/ClientGeneratorGetter.ts +++ b/src/generators/ClientGeneratorGetter.ts @@ -2,6 +2,7 @@ import { TypescriptReactQueryClientGenerator } from './client/TypescriptReactQue import { ServerGenerators } from '../models/ServerGenerators'; import { ClientGenerators } from '../models/ClientGenerators'; import { PythonClientGenerator } from './client/PythonClientGenerator'; +import { PythonPydanticClientGenerator } from './client/PythonPydanticClientGenerator'; import { CSharpClientGenerator } from './client/CSharpClientGenerator'; import { TypescriptAxiosClientGenerator } from './client/TypescriptAxiosClientGenerator'; import { GoClientGenerator } from './client/GoClientGenerator'; @@ -23,6 +24,9 @@ export function ClientGeneratorGetter(generator: ClientGenerators | ServerGenera if (generator === ClientGenerators.Python) { return PythonClientGenerator; } + if (generator === ClientGenerators.PythonPydantic) { + return PythonPydanticClientGenerator; + } if (generator === ClientGenerators.Go) { return GoClientGenerator; } diff --git a/src/generators/ServerGeneratorGetter.ts b/src/generators/ServerGeneratorGetter.ts index cdc0511..5dfb255 100644 --- a/src/generators/ServerGeneratorGetter.ts +++ b/src/generators/ServerGeneratorGetter.ts @@ -3,6 +3,7 @@ import { ServerGenerators } from '../models/ServerGenerators'; import { ClientGenerators } from '../models/ClientGenerators'; import { TypescriptNestServerGenerator } from './server/TypescriptNestServerGenerator'; import { CSharpServerGenerator } from './server/CSharpServerGenerator'; +import { PythonMcpServerGenerator } from './server/PythonMcpServerGenerator'; export function ServerGeneratorGetter(generator: ClientGenerators | ServerGenerators) { if (!Object.values(ServerGenerators).find(x => x.toLowerCase() === generator.toLowerCase())) { @@ -21,5 +22,8 @@ export function ServerGeneratorGetter(generator: ClientGenerators | ServerGenera if (generator === ServerGenerators.Go) { return GoServerGenerator; } + if (generator === ServerGenerators.PythonMcpServer) { + return PythonMcpServerGenerator; + } throw new Error('not implemented: ' + generator); } diff --git a/src/generators/client/PythonPydanticClientGenerator.ts b/src/generators/client/PythonPydanticClientGenerator.ts new file mode 100644 index 0000000..e33df14 --- /dev/null +++ b/src/generators/client/PythonPydanticClientGenerator.ts @@ -0,0 +1,301 @@ +import { EditorArrayInput, EditorInput, ApiPath } from '../../models'; +import { getEditorInput2, snakeCase } from '../../helpers'; +import { GeneratorAbstract } from '../GeneratorAbstract'; +import { EditorObjectInput, EditorPrimitiveInput, OpenApiDefinition } from '../../models'; +import { writeFileSync, mkdirSync } from 'fs'; +import { join, basename } from 'path'; + +const tab = ' '.repeat(4); +const systemNames = [`from`, `None`, `True`, `False`, `pass`, `global`, `in`, `except`, `and`, `field`]; + +export class PythonPydanticClientGenerator extends GeneratorAbstract { + modelsFolder = join(this.options.output, 'src', 'client', this.options.modelsFolderName); + controllersFolder = join(this.options.output, 'src', 'client', this.options.controllersFolderName); + protected readonly clientFolder = join(this.options.output, 'src', 'client'); + + generateObject(objectInput: EditorObjectInput): void { + if (!this.shouldGenerateModel(objectInput)) { + return; + } + const fileName = this.getFileName(objectInput); + const modelFile = join(this.modelsFolder, fileName + this.getFileExtension(true)); + + const extendsName = + objectInput.implements.length > 0 + ? `${this.options.modelNamePrefix}${objectInput.implements[0]}${this.options.modelNameSuffix.split('.')[0]}` + : `BaseModel`; + + const classDeclare = `class ${fileName}(${extendsName}):`; + const propertiesContent: string[] = []; + + for (const prop of objectInput.properties) { + const type = this.getPropDesc(prop); + let name = prop.name.replace(/\[i\]/g, '').replace(/-/g, '_'); + if (systemNames.includes(name)) { + name = `_${name}`; + } + const isOptional = prop.nullable || !prop.required; + propertiesContent.push(`${tab}${name}: ${isOptional ? `${type} | None` : type} = None`); + } + + if (propertiesContent.length === 0) { + propertiesContent.push(`${tab}pass`); + } + + const modelFileContent = `${classDeclare}\n${propertiesContent.join('\n')}`; + writeFileSync(modelFile, this.appendModelImports(modelFileContent, extendsName, objectInput.implements[0])); + } + + generateEnum(enumInput: EditorPrimitiveInput, enumVals: { [name: string]: string | number }): void { + if (!this.shouldGenerateModel(enumInput)) { + return; + } + const modelFile = join(this.modelsFolder, this.getFileName(enumInput) + this.getFileExtension(false)); + const classDeclare = `class ${this.getFileName(enumInput)}(str, Enum):`; + const getName = (e: string) => { + if (systemNames.includes(e)) { + e = `_${e}`; + } + e = e.replace(/ /g, '').replace(/-/g, '').replace(/!/g, 'not_'); + return this.getEnumValueName(e); + }; + let modelFileContent = `\n${classDeclare}\n`; + if (Object.keys(enumVals).length === 0) { + modelFileContent += `${tab}pass`; + } else { + modelFileContent += Object.keys(enumVals) + .map(x => `${tab}${getName(x)} = ${typeof enumVals[x] === 'number' ? enumVals[x] : `'${enumVals[x]}'`}`) + .join('\n'); + } + writeFileSync(modelFile, this.appendModelImports(modelFileContent, '', undefined)); + } + + appendModelImports(fileContent: string, extendsName: string, parentClassName?: string): string { + let imports = ``; + + // Import parent class if it's not BaseModel + if (parentClassName && extendsName !== 'BaseModel') { + const parentFile = `${this.options.modelNamePrefix}${parentClassName}${this.options.modelNameSuffix.split('.')[0]}`; + imports += `from ..models.${parentFile} import ${extendsName}\n`; + } + + const modelsRefs = [...(fileContent.matchAll(/models\.(\w+)/g) || [])]; + const seenModels = new Set(); + for (const match of modelsRefs) { + const modelName = match[1]; + if (!seenModels.has(modelName)) { + seenModels.add(modelName); + imports += `from ..models.${modelName} import ${modelName}\n`; + } + } + + const needsBaseModel = fileContent.includes('(BaseModel)') || fileContent.includes('BaseModel'); + const needsEnum = fileContent.includes('(str, Enum)') || fileContent.includes('(Enum)'); + const needsAny = fileContent.includes(': Any') || fileContent.includes('[Any]') || fileContent.includes('Any]'); + const needsDatetime = fileContent.includes(': datetime') || fileContent.includes('[datetime]'); + + if (needsAny) { + imports += `from typing import Any\n`; + } + if (needsDatetime) { + imports += `from datetime import datetime\n`; + } + if (needsBaseModel) { + imports += `from pydantic import BaseModel, ConfigDict\n`; + } + if (needsEnum) { + imports += `from enum import Enum\n`; + } + + return (imports + '\n' + fileContent.replace(/models\./g, '')).trim(); + } + + generateClient(): void { + const outputName = basename(this.options.output).replace(/[^a-z0-9-_]/gi, '-').toLowerCase(); + + writeFileSync(join(this.clientFolder, '__init__.py'), 'from .client import Client\n'); + writeFileSync(join(this.modelsFolder, '__init__.py'), ''); + writeFileSync(join(this.controllersFolder, '__init__.py'), ''); + this.writeClientFile(); + this.writePyprojectToml(outputName); + } + + protected writeClientFile(): void { + const controllerImports = this.parsingResult.controllersNames + .map(x => this.getControllerName(x)) + .map(x => `from .controllers.${x} import ${x}`) + .join('\n'); + + const controllerInits = this.parsingResult.controllersNames + .map(x => this.getControllerName(x)) + .map(x => `${tab}${tab}self.${x} = ${x}(base_url)`) + .join('\n'); + + const mainFileContent = `${controllerImports} +import os + + +class Client: +${tab}def __init__(self, base_url: str | None = None) -> None: +${tab}${tab}base_url = base_url or os.environ.get("BASE_URL", "") +${controllerInits} +`; + writeFileSync(join(this.clientFolder, 'client.py'), mainFileContent); + } + + private writePyprojectToml(outputName: string): void { + const pyprojectContent = `[project] +name = "${outputName}" +version = "0.1.0" +requires-python = ">=3.11" +dependencies = [ + "httpx>=0.27", + "pydantic>=2.0", +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.build.targets.wheel] +packages = ["src/client"] +`; + writeFileSync(join(this.options.output, 'pyproject.toml'), pyprojectContent); + } + + generateController(controller: string, controllerPaths: ApiPath[]): void { + const controllerName = this.getControllerName(controller); + let controllerContent = `class ${controllerName}:\n`; + controllerContent += `${tab}def __init__(self, base_url: str) -> None:\n`; + controllerContent += `${tab}${tab}self._base_url = base_url\n\n`; + controllerContent += this.generateControllerMethodsContent(controller, controllerPaths); + const controllerFile = join(this.controllersFolder, controllerName + this.getFileExtension(false)); + writeFileSync(controllerFile, this.appendControllerImports(controllerContent)); + } + + private appendControllerImports(content: string): string { + let imports = `import httpx\n`; + const modelsRefs = [...(content.matchAll(/models\.(\w+)/g) || [])]; + const seenModels = new Set(); + for (const match of modelsRefs) { + const modelName = match[1]; + if (!seenModels.has(modelName)) { + seenModels.add(modelName); + imports += `from ..models.${modelName} import ${modelName}\n`; + } + } + const needsAny = content.includes(': Any') || content.includes('[Any]'); + if (needsAny) { + imports += `from typing import Any\n`; + } + return (imports + '\n' + content.replace(/models\./g, '')).trim(); + } + + generateControllerMethodContent(controller: string, controllerPath: ApiPath) { + const methodName = this.getMethodName(controllerPath); + const requestType = controllerPath.body.haveBody ? this.getPropDesc(controllerPath.body.schema) : 'None'; + const responseType = this.getPropDesc(controllerPath.response); + + const bodyParam = controllerPath.body.haveBody + ? `body: ${!controllerPath.body.required ? `${requestType} | None` : requestType}, ` + : ''; + + const headers = [...controllerPath.cookieParams, ...controllerPath.headerParams]; + const haveHeaders = headers.length > 0; + const headersParams = haveHeaders + ? headers.map(x => `h_${snakeCase(x.name)}: ${x.required ? 'str' : 'str | None'}`).join(', ') + ', ' + : ''; + + const pathParams = + controllerPath.pathParams.length > 0 + ? controllerPath.pathParams + .map(x => `p_${snakeCase(x.name)}: ${x.required ? this.getPropDesc(x.schema!) : `${this.getPropDesc(x.schema!)} | None`}`) + .join(', ') + ', ' + : ''; + + const queryParams = + controllerPath.queryParams.length > 0 + ? controllerPath.queryParams + .map(x => { + const type = this.getPropDesc(x.schema!); + return x.required + ? `q_${snakeCase(x.name)}: ${type}` + : `q_${snakeCase(x.name)}: ${type} | None = None`; + }) + .join(', ') + ', ' + : ''; + + let urlPath = controllerPath.path; + for (const pathParam of controllerPath.pathParams) { + urlPath = urlPath.replace(`{${pathParam.name}}`, `{p_${snakeCase(pathParam.name)}}`); + } + + const haveQueryParams = controllerPath.queryParams.length > 0; + const headersDict = haveHeaders + ? '{' + headers.map(x => `'${x.name}': h_${snakeCase(x.name)}`).join(', ') + '}' + : 'None'; + + let methodContent = ''; + methodContent += `${tab}async def ${methodName}(self, ${bodyParam}${pathParams}${queryParams}${headersParams}**kwargs) -> ${responseType}:\n`; + methodContent += `${tab}${tab}async with httpx.AsyncClient() as client:\n`; + methodContent += `${tab}${tab}${tab}response = await client.${controllerPath.method.toLowerCase()}(\n`; + methodContent += `${tab}${tab}${tab}${tab}f"{self._base_url}${urlPath}",\n`; + + if (controllerPath.body.haveBody) { + methodContent += `${tab}${tab}${tab}${tab}json=body.model_dump() if hasattr(body, 'model_dump') else body,\n`; + } + if (haveQueryParams) { + const paramsDict = '{' + controllerPath.queryParams.map(x => `"${x.name}": q_${snakeCase(x.name)}`).join(', ') + '}'; + methodContent += `${tab}${tab}${tab}${tab}params={k: v for k, v in ${paramsDict}.items() if v is not None},\n`; + } + if (haveHeaders) { + methodContent += `${tab}${tab}${tab}${tab}headers=${headersDict},\n`; + } + methodContent += `${tab}${tab}${tab}${tab}**kwargs,\n`; + methodContent += `${tab}${tab}${tab})\n`; + methodContent += `${tab}${tab}${tab}response.raise_for_status()\n`; + methodContent += `${tab}${tab}${tab}return response.json()\n`; + + return { methodContent, methodName }; + } + + getPropDesc(obj: EditorInput | OpenApiDefinition): string { + const editorInput = (obj as EditorInput)?.editorType + ? (obj as EditorInput) + : getEditorInput2(this.swagger, obj as OpenApiDefinition); + const fileName = this.getFileName(editorInput); + if (editorInput.editorType === 'EditorPrimitiveInput') { + const primitiveInput = editorInput as EditorPrimitiveInput; + switch (primitiveInput.type) { + case 'number': + return primitiveInput.openApiDefinition?.type === 'integer' ? 'int' : 'float'; + case 'string': + return 'str'; + case 'boolean': + return 'bool'; + case 'date': + return 'datetime'; + case 'enum': + return fileName ? `models.${fileName}` : 'str'; + } + } + if (editorInput.editorType === 'EditorArrayInput') { + const arrayInput = editorInput as EditorArrayInput; + return `list[${this.getPropDesc(arrayInput.itemInput)}]`; + } + if (editorInput.editorType === 'EditorObjectInput') { + const objectInput = editorInput as EditorObjectInput; + if (!objectInput.isDictionary) { + return fileName ? `models.${fileName}` : 'dict'; + } + return `dict[${objectInput.dictionaryKeyInput ? this.getPropDesc(objectInput.dictionaryKeyInput) : 'str'}, ${ + objectInput.dictionaryInput ? this.getPropDesc(objectInput.dictionaryInput) : 'Any' + }]`; + } + return 'Any'; + } + + getFileExtension(_isModel: boolean): string { + return '.py'; + } +} diff --git a/src/generators/server/PythonMcpServerGenerator.ts b/src/generators/server/PythonMcpServerGenerator.ts new file mode 100644 index 0000000..cad5790 --- /dev/null +++ b/src/generators/server/PythonMcpServerGenerator.ts @@ -0,0 +1,235 @@ +import { ApiPath } from '../../models'; +import { snakeCase } from '../../helpers'; +import { PythonPydanticClientGenerator } from '../client/PythonPydanticClientGenerator'; +import { writeFileSync, mkdirSync } from 'fs'; +import { join, basename } from 'path'; + +const tab = ' '.repeat(4); + +export class PythonMcpServerGenerator extends PythonPydanticClientGenerator { + // Inherits modelsFolder = src/client/models, controllersFolder = src/client/controllers, + // clientFolder = src/client, and all model/controller generation from PythonPydanticClientGenerator. + + // Override generateClient to write client files without a standalone pyproject.toml. + generateClient(): void { + writeFileSync(join(this.clientFolder, '__init__.py'), 'from .client import Client\n'); + writeFileSync(join(this.modelsFolder, '__init__.py'), ''); + writeFileSync(join(this.controllersFolder, '__init__.py'), ''); + this.writeClientFile(); + } + + async generate(): Promise { + // super.generate() → PythonPydanticClientGenerator → GeneratorAbstract: + // deletes output, creates src/client/{models,controllers}, generates all models & controllers, + // then calls this.generateClient() (overridden above — no standalone pyproject.toml). + await super.generate(); + + const serverFolder = join(this.options.output, 'src', 'server'); + const toolsFolder = join(serverFolder, 'tools'); + mkdirSync(toolsFolder, { recursive: true }); + + this.writeMcpPyprojectToml(); + this.writeMcpServerFile(); + + // Reset methodsNames so tool files get the same method names as the controllers. + this.methodsNames = {}; + this.writeToolFiles(toolsFolder); + + writeFileSync(join(this.options.output, 'src', '__init__.py'), ''); + writeFileSync(join(serverFolder, '__init__.py'), ''); + writeFileSync(join(toolsFolder, '__init__.py'), ''); + } + + private writeMcpPyprojectToml(): void { + const outputName = basename(this.options.output).replace(/[^a-z0-9-_]/gi, '-').toLowerCase(); + const content = `[project] +name = "${outputName}" +version = "0.1.0" +requires-python = ">=3.11" +dependencies = [ + "mcp>=1.0", + "httpx>=0.27", + "pydantic>=2.0", +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.build.targets.wheel] +packages = ["src/client", "src/server"] + +[project.scripts] +${outputName} = "mcp_server:main" +`; + writeFileSync(join(this.options.output, 'pyproject.toml'), content); + } + + private writeMcpServerFile(): void { + const controllerNames = this.parsingResult.controllersNames.map(x => snakeCase(this.getControllerName(x))); + const allToolsList = controllerNames.map(x => `"${x}"`).join(', '); + + const content = `import importlib +import os +import sys +from functools import lru_cache +from pathlib import Path + +sys.path.insert(0, str(Path(__file__).parent)) + +from mcp.server.fastmcp import FastMCP +from client import Client + +mcp = FastMCP("${basename(this.options.output)}") + + +@lru_cache(maxsize=1) +def get_client() -> Client: + return Client(os.environ.get("BASE_URL", "")) + + +_route_filter = [r.strip() for r in os.environ.get("TOOL_FILTER_ROUTES", "").split(",") if r.strip()] +_method_filter = [m.strip() for m in os.environ.get("TOOL_FILTER_METHODS", "").split(",") if m.strip()] + +ALL_TOOLS: list[str] = [${allToolsList}] + +for _module_name in ALL_TOOLS: + if not _route_filter or _module_name in _route_filter: + _module = importlib.import_module(f"server.tools.{_module_name}") + for _tool in _module.TOOLS: + if not _method_filter or _tool.__name__ in _method_filter: + mcp.tool()(_tool) + + +def main() -> None: + import argparse + + parser = argparse.ArgumentParser(description="${basename(this.options.output)} MCP server") + parser.add_argument("--transport", default="stdio", choices=["stdio", "sse", "streamable-http"], help="Transport type (default: stdio)") + parser.add_argument("--host", default="0.0.0.0", help="Host for HTTP transports (default: 0.0.0.0)") + parser.add_argument("--port", type=int, default=8000, help="Port for HTTP transports (default: 8000)") + parser.add_argument("--path", default="/mcp", help="Path for streamable-http transport (default: /mcp)") + args = parser.parse_args() + + run_kwargs: dict = {"transport": args.transport} + if args.transport != "stdio": + run_kwargs["host"] = args.host + run_kwargs["port"] = args.port + if args.transport == "streamable-http": + run_kwargs["path"] = args.path + + mcp.run(**run_kwargs) + + +if __name__ == "__main__": + main() +`; + writeFileSync(join(this.options.output, 'src', 'mcp_server.py'), content); + } + + private writeToolFiles(toolsFolder: string): void { + for (const controllerName of this.parsingResult.controllersNames) { + const controllerPaths = this.parsingResult.apiPaths.filter( + x => x.controller.toLowerCase() === controllerName.toLowerCase(), + ); + this.writeToolFile(controllerName, controllerPaths, toolsFolder); + } + } + + private writeToolFile(controller: string, controllerPaths: ApiPath[], toolsFolder: string): void { + const moduleName = snakeCase(this.getControllerName(controller)); + const clientControllerAttr = this.getControllerName(controller); + let imports = `from mcp_server import get_client\n`; + const funcDefs: string[] = []; + const toolNames: string[] = []; + + for (const controllerPath of controllerPaths) { + const { funcDef, methodName } = this.generateToolMethodContent(controller, controllerPath, clientControllerAttr); + funcDefs.push(funcDef); + toolNames.push(methodName); + } + + const rawContent = funcDefs.join('\n\n'); + + const modelsRefs = [...(rawContent.matchAll(/models\.(\w+)/g) || [])]; + const seenModels = new Set(); + for (const match of modelsRefs) { + const modelName = match[1]; + if (!seenModels.has(modelName)) { + seenModels.add(modelName); + imports += `from client.models.${modelName} import ${modelName}\n`; + } + } + + const allContent = rawContent.replace(/models\./g, ''); + const needsAny = allContent.includes(': Any') || allContent.includes('[Any]'); + if (needsAny) { + imports += `from typing import Any\n`; + } + + const toolsList = toolNames.join(', '); + const fileContent = `${imports}\n${allContent}\n\nTOOLS = [${toolsList}]\n`; + writeFileSync(join(toolsFolder, `${moduleName}.py`), fileContent); + } + + private generateToolMethodContent( + _controller: string, + controllerPath: ApiPath, + clientControllerAttr: string, + ): { funcDef: string; methodName: string } { + const methodName = this.getMethodName(controllerPath); + const requestType = controllerPath.body.haveBody ? this.getPropDesc(controllerPath.body.schema) : 'None'; + + const bodyParam = controllerPath.body.haveBody + ? `body: ${!controllerPath.body.required ? `${requestType} | None` : requestType}, ` + : ''; + + const headers = [...controllerPath.cookieParams, ...controllerPath.headerParams]; + const haveHeaders = headers.length > 0; + const headersParams = haveHeaders + ? headers.map(x => `h_${snakeCase(x.name)}: ${x.required ? 'str' : 'str | None'}`).join(', ') + ', ' + : ''; + + const pathParams = + controllerPath.pathParams.length > 0 + ? controllerPath.pathParams + .map(x => `p_${snakeCase(x.name)}: ${x.required ? this.getPropDesc(x.schema!) : `${this.getPropDesc(x.schema!)} | None`}`) + .join(', ') + ', ' + : ''; + + const queryParams = + controllerPath.queryParams.length > 0 + ? controllerPath.queryParams + .map(x => { + const type = this.getPropDesc(x.schema!); + return x.required + ? `q_${snakeCase(x.name)}: ${type}` + : `q_${snakeCase(x.name)}: ${type} | None = None`; + }) + .join(', ') + ', ' + : ''; + + const allArgs: string[] = []; + if (controllerPath.body.haveBody) { + allArgs.push('body=body'); + } + for (const p of controllerPath.pathParams) { + allArgs.push(`p_${snakeCase(p.name)}=p_${snakeCase(p.name)}`); + } + for (const q of controllerPath.queryParams) { + allArgs.push(`q_${snakeCase(q.name)}=q_${snakeCase(q.name)}`); + } + for (const h of headers) { + allArgs.push(`h_${snakeCase(h.name)}=h_${snakeCase(h.name)}`); + } + + let funcDef = ''; + funcDef += `async def ${methodName}(${bodyParam}${pathParams}${queryParams}${headersParams}) -> dict:\n`; + funcDef += `${tab}"""${controllerPath.method.toUpperCase()} ${controllerPath.path}"""\n`; + funcDef += `${tab}client = get_client()\n`; + funcDef += `${tab}return await client.${clientControllerAttr}.${methodName}(${allArgs.join(', ')})\n`; + + return { funcDef, methodName }; + } + +} diff --git a/src/models/ClientGenerators.ts b/src/models/ClientGenerators.ts index c320f8d..35524e2 100644 --- a/src/models/ClientGenerators.ts +++ b/src/models/ClientGenerators.ts @@ -3,5 +3,6 @@ export enum ClientGenerators { TypescriptReactQuery = 'typescript-react-query', CSharp = 'c#', Python = 'python', + PythonPydantic = 'python-pydantic', Go = 'go', } diff --git a/src/models/ServerGenerators.ts b/src/models/ServerGenerators.ts index ac2ed03..682e4da 100644 --- a/src/models/ServerGenerators.ts +++ b/src/models/ServerGenerators.ts @@ -2,4 +2,5 @@ export enum ServerGenerators { TypescriptNest = 'typescript-nest', CSharp = 'c#', Go = 'go', + PythonMcpServer = 'python-mcp-server', } diff --git a/tsconfig.json b/tsconfig.json index 49c9e4d..5e29360 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,8 +1,11 @@ { "compilerOptions": { "module": "commonjs", - "target": "ES2017", + "target": "ES2020", + "lib": ["ES2020"], + "types": ["node"], "moduleResolution": "node", + "ignoreDeprecations": "6.0", "emitDecoratorMetadata": true, "experimentalDecorators": true, "sourceMap": true, From eaf4e70e0cc5b4e23833dccda0ca714ce50c0b4b Mon Sep 17 00:00:00 2001 From: Bar Nuri Date: Tue, 5 May 2026 08:56:07 +0300 Subject: [PATCH 2/5] openai-swagger-to-mcp --- .gitignore | 3 +- ReadMe.md | 68 ++++++++++-------- ex.png => docs/ex.png | Bin docs/pet-store-mcp-vscode.png | Bin 0 -> 65539 bytes examples/ReadMe.md | 2 +- examples/pet-store-mcp/README.md | 48 +++++++++++++ examples/pet-store-mcp/src/mcp_server.py | 2 +- .../server/PythonMcpServerGenerator.ts | 55 ++++++++++++++ 8 files changed, 144 insertions(+), 34 deletions(-) rename ex.png => docs/ex.png (100%) create mode 100644 docs/pet-store-mcp-vscode.png create mode 100644 examples/pet-store-mcp/README.md diff --git a/.gitignore b/.gitignore index f9504f5..e0c28d4 100644 --- a/.gitignore +++ b/.gitignore @@ -21,4 +21,5 @@ package-lock.json .gitconfig tasks.md plan.md -code-review.md \ No newline at end of file +code-review.md +.playwright-mcp \ No newline at end of file diff --git a/ReadMe.md b/ReadMe.md index 5b8ba13..9477bc7 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -3,62 +3,68 @@ openapi-toolkit is an open-source tool designed to streamline the integration of # Generate MCP Server -openapi-toolkit can generate a fully functional [MCP SDK FastMCP](https://github.com/modelcontextprotocol/python-sdk) server from any OpenAPI/Swagger spec — one MCP tool per API endpoint, grouped by controller, with dynamic loading support. +openapi-toolkit generates a fully functional [MCP SDK FastMCP](https://github.com/modelcontextprotocol/python-sdk) server from any OpenAPI/Swagger spec — one MCP tool per API endpoint, grouped by controller, with the async Pydantic v2 client bundled inline. -## Step 1 — Generate the Pydantic client +## Generate ```bash -openapi-toolkit -i https://petstore3.swagger.io/api/v3/openapi.json -g python-pydantic -o ./my-api-client -``` - -This emits a `uv`-compatible Python package with async `httpx` controllers and Pydantic v2 models. - -## Step 2 — Generate the MCP server +# no install required +npx openapi-toolkit -i https://petstore3.swagger.io/api/v3/openapi.json -g python-mcp-server -t server -o ./my-api-mcp -```bash -openapi-toolkit -i https://petstore3.swagger.io/api/v3/openapi.json -g python-mcp-server -t server -o ./pet-store-mcp +# or with global install +npm i -g openapi-toolkit +openapi-toolkit -i https://petstore3.swagger.io/api/v3/openapi.json -g python-mcp-server -t server -o ./my-api-mcp ``` -The MCP server is placed next to the client (`../my-api-client`) and references it as a local editable dependency. - Generated layout: ``` my-api-mcp/ - pyproject.toml # uv project with fastmcp + pydantic client dep + pyproject.toml # uv project: mcp, httpx, pydantic + README.md src/ - mcp_server.py # FastMCP entry point, dynamic tool loading - client.py # cached Client instance (reads BASE_URL from env) - tools/ - .py # one file per API controller tag + mcp_server.py # FastMCP entry point, tool registration, transport CLI + client/ # generated async httpx + Pydantic v2 client (inline) + __init__.py + client.py + models/ + controllers/ + server/ + tools/ + .py # one file per API controller tag ``` -## Step 3 — Install and run +## Install and run ```bash cd my-api-mcp uv sync -BASE_URL=https://petstore3.swagger.io/api/v3 uv run python src/mcp_server.py +BASE_URL=https://api.example.com uv run python src/mcp_server.py +``` + +## Transport options + +```bash +# stdio (default — for Claude Desktop and most MCP clients) +BASE_URL=https://api.example.com uv run python src/mcp_server.py --transport stdio + +# SSE +BASE_URL=https://api.example.com uv run python src/mcp_server.py --transport sse --host 0.0.0.0 --port 8000 + +# Streamable HTTP +BASE_URL=https://api.example.com uv run python src/mcp_server.py --transport streamable-http --host 0.0.0.0 --port 8000 --path /mcp ``` A fully generated example (Petstore API) is available in this repo: [examples/pet-store-mcp](https://github.com/barnuri/openapi-toolkit/tree/master/examples/pet-store-mcp) +![pet-store-mcp folder structure](https://github.com/barnuri/openapi-toolkit/blob/master/docs/pet-store-mcp-vscode.png?raw=true) + ## Environment variables | Variable | Description | |---|---| | `BASE_URL` | Base URL of the target API (required at runtime) | -| `TOOL_FILTER_ROUTES` | Comma-separated list of controller names to load (e.g. `pet,store`). Loads all if unset. | -| `TOOL_FILTER_METHODS` | Comma-separated list of tool function names to register (e.g. `getPetById,addPet`). Registers all if unset. | - -**Example — load only the `pet` and `store` controllers:** -```bash -TOOL_FILTER_ROUTES=pet,store BASE_URL=https://... uv run python src/mcp_server.py -``` - -**Example — load only specific methods:** -```bash -TOOL_FILTER_METHODS=getPetById,addPet BASE_URL=https://... uv run python src/mcp_server.py -``` +| `TOOL_FILTER_ROUTES` | Comma-separated controller names to load (e.g. `pet,store`). Loads all if unset. | +| `TOOL_FILTER_METHODS` | Comma-separated tool function names to register (e.g. `getPetById,addPet`). Registers all if unset. | # Install diff --git a/ex.png b/docs/ex.png similarity index 100% rename from ex.png rename to docs/ex.png diff --git a/docs/pet-store-mcp-vscode.png b/docs/pet-store-mcp-vscode.png new file mode 100644 index 0000000000000000000000000000000000000000..8cda47d45dd03c0edece73335d3eafa0c8345f8a GIT binary patch literal 65539 zcmcG$1yq!8yFHAFqJ*ThpmZomNJ~n`&@Bx^cY_EcB_Pt>T_W8|hje!{ba#F?!tZ_0 z`Tx(i&N<&&-z=95G4tHd9oMz5z4tY~(vlyLk?@cZ5D<_>gasf72={*=Al%)2bQk=D z0mp$10Ras`M1WV$A$ENd(Lqjrif8++b%w!r5%QXEqQWm;y{Eh@lP!kx46Q0T|3%a8 zrr!hgg}OsOTb%nc_kVvT&3y5~7DK>~BviWJIZA{)N@MffJu0VY6e0ML$H&?P3XSeq z=gkU(CD$Xz!>T&fS1T*7xCl1fB_+&H!2l50SsCtKe?|Bt`Pc*P@3X`Zz8ClZK3h&j zdvxdTGj^)`e1D&Ol0^Fd{%7pcFBaZO<_t3aeJg}=+E+N-Ow`n?N!~<8Q+tgVd!(eK z#EuKS+1c5w(=J?Z-fZu*BrrXH`nvYm#l_|PPgIeY7I}zKe|o^#(N@Z#?J#oGo7pd0 zwP%MsSEG|I*}W+(U!OC4$Fr;2n7+DHbaZ4ZNpRkDj1rebj)w;kavZK?&`g>gu|-(c z{{DOS2nby%omhN1gDTSBq}(&45|V=!7xh|#h*6P|H>PS@I$5Ps;=8$3=Lt=i@TkU4 zj*rFToQfb>`-lDl$xGIvuh2=5A(5%ltd?^DQ|g$jlJT4(;{yW&wXSFJ=D2yN4{zqI zsDuqIp3Pc+XU@HU`lp^4EWX6JF7c^d3!!~;QxlG~Ku5PR%kloW`RnY=%tSi}hvSo_ zR4Y1*gqxa{;WL%Ewk@c76=6==B z%<1=r!Ey#`g>+u-VWOH>TSAGCZcgyStmi_l;*=ozNpM(qO~wnWs=){mYEv;^G6nSo1eG zZxx%@>9IYK)lZ|CZ#b2rkaM*gAwwVGKVQzVS*`=-$k|@zWV7RSU8>>m>7M%P>Z&0= zHg}1YnMBXVOk+i zf)A;hWB51aDCE)7(th>#ml74-MJZLHm3z*~fqb|ULNCs!+bVtPusw5U426*0Wa$s0 ztBVUIai7Q3Z+7*K&B>}|%=zX3b3NR=r~hF^Pft%#o?9SaAmcGbI>sZ0M2_U8roLi5 z8d)98p*)+k8z-#e5D^gYdgE&WGmw`b?26;a{PmnT;k|sVd=9q}!(|I`8RWrkwDChH zV)-%c|FB(ry*~V~xsUGK*xfBv{uT{kOx4sB`TCfC>dNapLMtWC==WuM^mj5XMvG6r z%iPTCvGx1^pAPQ7!+^-`NUq27fi!~VIfx}JF=5wH;ywI}n9%<&Tx9X6z8G*&oB5ch zKoik1s+TH9&Ckczq`hGA_m0YUU#;(+w(!IwqoQU!?A|lziq-h3>)WIq=}f zVT6ZL$x;}AU`K3&EqBG{`e%JvRuUqG*(7NCUkSC;7X`q*!^S?2eT&A8pMEoR-NWQQ#EI~8W%=dT1ju-F)#!_`4`+l-XqEV$IQI8svm2;p*aO8td~SYV_ua=|2++`o2xpG|zCI1t z1Lh$)h7R?@xtBvib>~*wW5xx}mnS%TySv;c3-i&@(R%@@e#BU7fAotw7OAPJljAoh zo!3Wpj9;t|=Gbd%vt~0a!Qsq2s}*pK8Alvu4d;zP1#*LUG1aVz4<1EHNxaLxK97#} z6{YcX>$WV*#P5b(F{*a-s1 zR0x?@SNHP>I6!zpa_e-aywo!=kbO@_M@PsEwc+EduZLZ^T%N$Gsk`C|QXy1&e4?K5 zA!9~sa5#JtpP2YH?b1fsG}J9rqrjRS#vcn;6|%H^%q$uEjtCoDs8Bi$^0?~N_w?ye zXi4FdOXi!o8&e&>t7W!X=;!CRy}eyfcj*UrJp6F6m+-`voe-A46bDkCxm(-v$-vN1 zA71p)^8oTOD}plTBl^D))DMP>i)%dW=GcY1ZpRU}H2`HUdHFKMP*qbCK6%#3x(3qI z*%7hDd_YKa_YcF~n9kR@T+@u4$n$FjbweW~+huiJ!`T*OUYo$tMl z=X50H;i)s|PS2>2Zq$Z>a(p!H4oCJV zo3P6HHkyei^7}Zp103R0)61)hiGh!Aq{&mQYqsmf*x1;psHnQR&rpX}|Gl8+p}n6! ze~!>_@+i3nF8TGV@rwC!k5=wRrY`HpU(97wPO3^u$5C%HVlqnf2g@~G&v&d+3K_`B zh3F%QIUTmQXJeO~sg5^B3e{<`rQ$i8tR4Dym@0l$$8*Vc*ZGAT>?+)ycE3`u(I7@c zdt);4W-BfAX2}%4Q8E0|Q@KReZkl9`2d*chTP0(=!(;xpXoQKgDMW#Ul;& zahfnIYtwD-?&h&34;nEk#rE!b!Fr1;J68J;`H(!GJ)1Q$GUDu(B@gXb9MCBn2Z5dv z`-|88t!ej9c%7)cx0fwHr@!Fxl0&s&SBGTD&60$)y+ZdDO%s)r1WQZNR1d)Hcz1Wu z&5`?sWxGP-bvGNilFNhz-!v-2>NydSWLmvUija)7%hBW!0Se;nFlbWM;~7OqgW!&5 z=CN`NHWh|B`-#!BovhQGMt!gRV7GWMAC3Oan{Von(1#%*A!qw55~jWad}(}IVwBiJ z!^6V^1J47RkB{FWd7Yd*;EVe<|8ACqiI1&U?7U7TKYm^%woyTpIs9sE zti*WlWZGfA^By9~4<0}4i2}_!LJm7{78(BTjZcAjHFuNBhTt_G(#s_Ds5yhsLM2S3 ziVT6#eLKI-7*_ZKL09YZ*x=x21O)qk-d>?isT7(|*P4!(KIzAM`f!WtAu^tDk<7!r zg9B3&6HIn0soJBdGr42}R?S|xm`Jl{noW*LPwNR(UWv3~Ek4K&mCSq6`_0~W<*5RHlUVsoWae_vT zlZygz z56B70%_D_6MrQ}ZYo`Zm5y6&utY}VpdU`T1*2kEG$2hy;i;I&s{i*rtRp8%YxT={^ zZI_@w_Qhe_MOod&g-hA9hxhOI%mndhSZ>wyA2_-4^4_8QdUrOF*VE}}({<+8?}-VW zvPnDqn^RCOS}gVgGatqF9l;d5@ln(_JUOM5_rj)rpXEwY=mwv{QZ{!Ig9ithx2pH@ z?OC#k!8UkgT2m`&sH>~X#KHo3!(l^du-rq!6f|mLR{M~hBd%*&^QFuA;rQ0&))i42 zbYXMy%82NZ(O3K3X?bPk3cZf-mHsU@i<$Sz%4|(?r=M-?*oX1Wt9kF$H@v*ujab9| zyS~2$6Kn30?CH``cRG&$u_mMm6P_W$$M=~EjeEDX!NWsh*c~9PrJRCVGwv^|AvUX(m6bCyAD1eg1^3MZ zxV19S=`ADRvKXc~3bSN)cco65G%Fi58AvQZ!@*HhRD8Wp%;ki6TjAzoZyXTuC9y2K zKK9y%Af8gLCqI1fR@Aq1`W3H{#oiK~6c=-X9oOaYeBK|aogij;l+O4k(u0_*nIA{A z{~QblrEd6QT-EH`bj4O|)f{nGy#e`RZLgc>XuAP5&bnaRh9F5@MJ2oU`0++#V?HC* zG|Qfw`4ire6TiLkeTV@L`quU-`@|b!S;t` zy9{eM(_t-xWw?}Dc3I7$kd>8%4NvroAfi;Ke+VLaDfIPCOea38S@mY6@#snKXiZ2+ zbv5TKZ#sa6f#Bie^RbSCh9<}PXtO_kGBzaSEyzbV^^QfDVapNP*oK`S%&J0-@@c%a z_@3KVgPKBt##`t>=Gj)=7V(wRd*U;vM^%)F+}ppt_Vn~jOw3Q+vtJ(x4iC4xIFJ~I zQirvFAaZP+wTR_*Jq=);(#=EH@P21Lr85-|z_rz6rR{o|v04nz$0Zlkn9-Uu9t`pc zixBVaLw|plDz2M-vPdE-zTQkvm3<}wV8GHJ+|YKfCjwL$kl9Ta&uO=_xYu>(eT!Cw zIm*JqkMuhH{GPaSBmcrOC{q5r(QM2jYWajoq)8)s71AIwQy4@HV{ps-+zflh59)n{=Jco_m4YQk!U2_J@Nq*!Lzdh- z=l~^>A0SfV8)iS=-XW~GgI|yGY=_hQDjXW4y3W;ce!f*d%;Q9v- zAN~~c>-%VBWtG5PlSLOSoGC|X^0=uU6v)xhcqzTliHSdWyy2;v@f&_@^xOSx{AzG$ zb>E4r%IQxegASlAhSlxknzX5|XV+BVisqkEmr#>~M2$+6t!F%3G>s)@BO}30rOa&d z3o<_Cr?k{m>EGYfWkMAJ6*OJr%vkm42@bdOd;rF4iyw7$SIL6rAcyMU@a7;V)(s5A z8yRKYoTZ->iJ17Vf8;~K8uEe?WnD#^{ndA z&dyFiKmg7=r8Ec(27B<}K?0|v--Qg=WJsop1(%^WlWzI~!1W28s;2quvr@&dn7Y z^*0CLbAZeqAhfsJ@fr&U=Q{mR0aED%pxz!%rX^6!#4*g@q2>uB=Fv!!mVWlVSyt!r zJcF{R_ai7x~~EW{sN-O3dUn4s_Cx{&c}FTfQwT@SEC?FahH%%`Qem3bSMx)U^2RP1Usm*#_blBYfJ ziuAeOfm*d_^nAv%XjvzMUVS;$1`6$0be@IbP-#us^h>Z#Sa^z)r*+lW^PM6U$MIYl z-G-3fv9<3qv+@|7RAHiipD|}aeu|5acLOL=&3@7rM5jlfbgup|`-YsHoQ7ttyL4DUGp|mDTQYZwic|wpN0~ zx-V4(p!u!3tJfsQGC#z{#Z%jOE^L_T=2tS{PjJJao`5gd1(gY}caLwizxyl+tSqip(&`Y zG*OmCy4bAR@+x|Aadq7C7So1G3#5b6<>loT;)D-z11WOU;dE!;+>(8KTEl1*0o#|B zx_^7ZaPritz3K;(Fv~LQ$%|nKLIJ;iy(e*!5!m0^N&1_NGx^GO+Ykr9opCI(LJ7EC zMhuxGBP|++@^}tc2mK!wDDC(j(ITP}rQ#7X_w}DW#bdGnMAejfmHpP`jAzz_aS z;v=5l7wWERBFA`nJ#?DCiinD`Th85g<#aoLm-c(fe`~BHr>@T3(GeCD6n#leLqnAX z2{kn|TpoQ3v-WHgBrcs6tJ_rHWK=LL`9|t|o~s(U-5X@f zRl!+ry!v@vfn?2LX@$eJ6h=_3Qq zJ2iFo$z2xnslM}$IAW^V9cfO&uOKSV1qD=4T?(CyWt6Y@s zC=mpYNmk!$PyG>p?2wIg*~;lC?{F&Vzn9<&ImHbVCA)!fhE;ae-qPiyavQTX0n&!Y z4$`FP^+^_w7Apb5-QS$#U@pn9ASB+|AGJ;^2 zR;*eG%lZ|CMMR>QR)n@>K)_^jgh0M0BqSW+_tv9xCa0vtBqaa*>BqPVc5UXa2oK6$ zs&uwH3W0-!ipp4P@XKXdCXy-yEUd7Vm6hViA3vmT!b15?2 z`1ag#2Az&3?cYlAnlHA8OeaN>EXBzv+sygLtw_3DqmKR+hg zw;ayD(x|Jn+ZY=yGI*_aOl$1azT6LjeZ1awr{dtmQfExdSKPg3{DOX`&FVe+RmZap z`^&?!D`$YRvP@ZGrd{?VW~GO+gLp2FeodMU5j)Cz6 z32EASt7hp!zbGp|zw2YB0ggAhl%ym*J-tTJ(%aiz(x&#GVOLE&{%*ZBeIawD>oPD6wXl4{pHHsnfmTk2V!*!k&L$ zh@jY*hU#_iA#$bNaVxtgZ$SYKeGU_zghGrw27y`8II@tnps8;Yw1{IJ+n>30y5M)u zFV2Xt(%mJeo7WqnMsTA=i>D{gefP^=RZ)*?8fx6MfZ(ONa}Y{WOv|CC-ftCoMIA;> zT`8s;Asj4hLrdX(i{12WR_-M=Y4@)jJZMTQIb}x__M+od#2fR*3hf&FB0J(n?G|Z& z7}2p}F|uKo(a$?CC@yDliuunpuYs4=Qf;$QA)lTee{t{vz#HI)QN2 zWa!-{ZAoe@YqO$JH3fy{n_HdPg?b|;^&1t9Ql8juMTdr>jbq+*^xkfL9xVK7sS!es zC7VOVzDqx)u9;D!LYtLE6+$un91~O6IaYEQC}0;W83`-jK#Xvl`E>^d6V%coftHLd z&H;jPF*;f$pn2;z;uRh)?r%$iIKV%bxu0#2-|RaC9C4RfeplDQ%S*h|y`3E+y~r4Q zS;w9YJ6qqUA;RybI{jm`6EjzM83{}q8boNXl#p`)v*sR0Ip z!M_O|8=Lx%&~GW~uvg^dlws608d7Y1Egu9g_LeR*ZESEvJxfa1y&Hl<2Lf)E>Ah-k z65l(WW>>l3l;*aOj0oD3ZI=c$`iLfzV4o)5JC~d35l<^)=t&POE)RqH+n!{~Daop@ z9KPab55G(Fpgv8E2fBlelrwlbAlnUUI3#b*EfiGLCy%x>E`iL-`ucSOo`;9Z?VXzT zenFazX4d?f-X8DV8U0!XSLlE}XK*e>E_0AuLMqVmU5pvg{>1y`$DirjedNeP0XGNx zo~+H!f3LH`aZh2)ZUx;IWC>c8{q|3HE~2}YH8gl-9m&m+LYclge$V*!&{s0!wuVDyH+F z4fMHWBZ)Cb!BxNHQgYL(Tn#-!HfKl2EV!dd)+9tYm9$WJ-SMYkf06ElSx6h$crxnh zvXS=f(2~Au$lv|_`_J#+At7x7#A$s)*a|8tW-KxC)Pu58Ttc{m!^08nU(Ks`P;NK* zlcCc04kU{DyPR7~lko=KnUOvs(ebZdCUeJ3YRD+dt3V(c3h4!TdHK0O;!!9XU9@rv z#5hKZ60|TdB*&g>*X&laB-?oN z`^0+{`yM@uHUo0uH^nx>^2pdW5#P;kkKgkCOTv8RRRsGB zN_qt%bTVJ5h;m0Z3g&2h(=Zt4KcUIz$_bMlHCG?(5^z1HBhW#AW9(56V{iC2up;rrX1;)RT^qK`^I z{CTxmJD6%!;tO}JLOSU6A|!zg0>CI(kd%nXV`OBbsh1HQ6ylL+XlTD~=I=6PI~|IOudvg&0XoCyJ)=jovsv zE_3roj42wmWlj-bQ&9#?6%u-PIJ?V6I`-Tb^e`D17;tetv$UA-SWS)$;9SL?VuTF+$Ug&2ldF&H7SIMxWE+7SHXijkSb1GH@-{ zBsF|i`$--5dzs0LWx#^3PJkTU(d?D@1~C?Tx|XS;vhvA%&^V>pV+N@g5gk;PurFUW zM+!rz0roxE+id^yCwZq>G3lE#2dnwiPvc=TC;{g&D3?v9N=-ScY?cLV*m-y~Rm4qA zP3zoTjU4T&;?Q%C7!^f-aC375&i|G~m{f~;|C}g&AGJ4PC7VEBUOnr31un%iTPf67 zD|eGEUN@w)^5ksj%(7uvP<7s0;80jyg%*vv9Omcda*>gdA)*i@_TZxLt`T}V)x17Zx%Ur$LfL(~wY5lI@^SsdjH0=uM>VF{8JC zu`ko19dZ}aC;vcCFANJsRz9)6E7i)ZF<|G32C;3ox~GujKB|AP0?t^DagKJCdb>g8 zqua__Z0CO)hknSQ(>~ydySkn3F)2Ejo0&k`3LmOoPoO~PGjAoCz z*Gx-?@-A}w3iymnzI|xS@(%Qka{A!+hpKBLuFBe;C`6Q5#Zjk30Auji&rz&dJJ!km zR!bbL$VID@ZzRJE-TY=yU;Z!grsp;N}~As$VfynMltI(ac&U?*;UmfCo__go^Q_*-0p`i0bk$A5j~P60siJM zQdO+V897|Rs?MtdY5hjwt&u)DNEOtijI>lFG6&!M{8nb|=(c)g5sqB_q1otQKY@HeRyg+o+-tbao{rQrhiS*Kk_3r;c~Ux2)KRzJe>+85ymlx$+2D zBf;jvRnrT_DxZ7)?m5>1feiv-Em5g49;Uy&pUdk|h7zMYE&1Uv{;nw{4q?XbL0EZI z!{Qu>X}wB0IaUM1yOQ1ljTM5`(daux0wDD+b-CWVaQGN4$ zt4PJb9bU`A-EWj4E|ra)9c)>>6NWjo3pX_rf|`)p$B!?nXg?1^1LuqJxq7vo3XN?PgpH;}tG{--k%>GB#t(Dp$VXn|*7GZubS`DWFpS z(t)RxVWPxt$FmwWeVMa1>>!sM0I@zEJ7N*7SKqPkgVZYT~e+&?2W_=8l=!< z)Z46#gOt7iykqZx@w%Ie!Rzh*VU{#fCDHU9&)JYHDnJ zq~qc`Slk8JuEm9gYM>+ont8IFbP&o+C@ivdL)A*pq;_2={YGbS#m72kH3!(I<@Q?| zH>cU+cfL664X5}DaWaoXWxJLFb0~FGj3v5E8I$Q4vs;FhO-oS#mc0DE4-_J41Z4TZ zxhNUO4$Ib!VY#pX9FX^yFN7T7<3$EYi}{Kgj$!&7RttuEZKyeaJZJ=J?R5ZN6Vl34ie6)JALpsePA*h9LP1Wk#IH z;>3@~g-4yZi84N=ExJQ1rZ5VVK`ME5=T_Lad8-{s16fb)Fg5y=b`re`u+H&&m=uz+ zn0SMOgTQ)~N2@>IED?G^E>XFY9z)K|!a}c6y#Rnyl24Omtnh-c*c#bW8alcV;mb4r zu<&peDbI!N*@n>0Od(dl`o?q$g-BD-eTSb649IDTD=Ry?)+C+C#ITxc;d}|i!gF+V zWWRstNB<7IM}nl5Rw~CAdrmQVw#Ga;`#I8h_zTZ0 zSCe$K)2D(-t^MBG!#5}5J}`3xC`>8Q1tVK9ah%rSew{-T{0Zz|aeK5oJC=Mef!RXT zIxp9I)#M2_rx-8&%a`*Wh?k=7Mf#oTlF_mClcnL+&_sTJ*6?AhlgrRR~Uhd*R z6%`cZ<>YSRO=)>92-cCRCgTZVG11uXjEB6MoobT;hYc&vcSt?z?eG2fm*b{P6v!DI)m8W5pb$Uqt%Io;FP1Jvl)s&W& z{;iQGe+$YMJ~3{o{Z@Q-HZZqA#@>_< zPomm&8Eb&CgYOE6@1-Aq^Q1exks{dvu>q-Sg2+Is#2QXdy*W5Eq@Z}E5~5b;#xEy_ zIY^YXNkLE!B4C}w?wTAO`OabSh+c^bP$JD{bMn+GevXRRPuWk`3;>%1#ZBrmd?^E5 zdUnb_Y`xzKXZtrLhE||b3q$ejGAlOGWQ^o#IBMv z8jSOMgQw!GS|geU(hMCHRoY!b*VOD8aDU~7y{bUoV~olzE?&1+Op~V6*4BnXpXiD*Wm|Ip!FEgWH0ey&1$|Gm4v&;k zHcZSW$#`?xM@-D;T{>?&9g-Km{=)_6?-lA)7#y(%S;(!4NlJ1%|522vO`jVFnXH?w zqDh+#zF<0MRiWaZ)A%6S9GGCEmbgIhoKEDumsRL=fOm_m>>_}#!CT^|dB#g;DG!!V z|3KN3Q_+b(vsOF$MQw(;gYs;v#*P{Mq;nIb8l4;!OQ_!~(3qrv?)H0|hxJTm)ju$h z+u1@=5~T_ch^AOL5wVjA-}_Q(r+(P1^bHZm-mH`bcf=O(CNE1{v{7D%L!VoGVzZ2% zH?5i?SU8n2N-ckT(6GLq)b-*VWpi4GK{c~qaRZK%i2U^Nu2BqpLoiEI5-3Wf4iO=1&ZCmlYq@Q>^@%r9Vlj@L;a z@x4~dUZ>b`IF~N>^K&GtyZG@59-^G&|w=V zHkZ}r2ckUlZ{qB}B|8ieBVME71vLM6bS)z}eZH7Dlk2J8wA3wsG4>nO9@zeQ3K=w% z^m&8BY?Mf2>-6zB*4i+&^qr%<1DOYg=Psd0SzaMlbE)O@)iJMW=-D-2#4_jzNlT+K zmzs=P&HVDfc1A?T!^FWUb2_-KBoW}2CwG(j7mLT%g+iLNOGF#hR*`=Bn?)z*&PYq>r5Yf*rN%IL3(;kqaGHm-_|Pax7-*!dZwqZ zMh$RiHL8yn+GKAAKhwRu`+yI}lKsDCd`I??ke*@qHpR+OFHH#P=*YPn-cmHdSw-e-87|6A3oH!ELub0%W0)c4eVJ0!v^)kZJh% zhI6+yW$F@0WN(006Ai2?CZIf9Y?mKk12&b}+1Y`_^$+ukxk`lqYwquW`Q7Lm8*+V4^fhFnoh&y=wJUua1O#?0>_G zg))ix6gXD0(t#Z#GfOrjJTx>{^(a7zmWbWPaLpf>s1hYJ>K4O|`1&xwv`@I5ZGe`Q zOQ1jJSDCc}^kcVmDFxuc`}YXQ9i5%(ARBQViPy~sa(KNzZl@^#W=o#q8BZo|3iun> z*Eg|XJHz_%-C58rQx+Nd912*N{e$7@chhe~?G^k5NwEmLcK9 zL1IJ$ZG^^{ZI;or&H=zSB7%m7hC*U)j^sJ6@2H?^={owCICK`rBrq^)l#MQa7wx+7C?i&0$YuJzp^9159tDvBv zX^v(GU=dOQ`@jm6YdGib-&L`}j!5KF0(xacguxr8f#KmY#y@-6k8_0PUk6)+K8>+T z%-|H(3c~Pz7p3N-BT+z#DJI_hFlJDaSb|*E!eSeA<|3NC+3cCQy9WdX`T0hsQWg0+OqmvqchFG#BR%o+_k-rpw2O6oZGKqPyKKY4 z)vnhW%{)7+b#Zo-G1J1ymUj{h?s*5a5V$NwWn}d^z~dxPanvjK?^USLuVXQ;@>~{v zyf{S$n-Dn0`A|&UY;(%=9qcxMTdos$4;<$MhHFA@vcq|l55P@@9i(|%iRG!A!zg$o zFDr7Ak_wZvD?vEU{P80-^PBcZ&!j1B1`fhQYa%hMx_osEyyZ+kq{9!ruRuKsNRZT2 zfpT-S#J5GGxqok#y{rT0QNzm=L^TdtZtnb{BeV1G+z<*tnGwBde)}Y5jXDdnU|(M(`^Os0{zYsr^tRQeeD%fu z?VbL2GP6A)qPF&UmnBS%;s3lSTHT9I9ykOM< z77`MvKD{<6sXD!uH>Q+RFjSWhX`~PK@p+WTG6R~)aNgCrU%44{Er6=y)(p%OM{^b0 z3wQ(4xY}mj(npv{)e{Rp#YWRGfSVS0{$}T8ArJt=qmNn_cOPSr z-@kwV7I){Ud6#?l%pE6)4a-q0YfCAbri_~GG7M?9J3lHaDheXzahsiIH9bwLt*vzo zlA}gOLXyjpqs0Gvihm8}H`Lhi(PF2eN-xJb3WbczVgK55@vq^$`k*2730MG%$`RZ|!29lCp072E~`(l_&=L`;v6u~L*Uf4{zotbJ|%1YQa z`pg!;0YcfJqGplUD+Y!_aQ`JGmD}5IB06lBrMtkn(qkM2#GD)8DljM{ks8cu9jWsS zt}gH09<@1}T%3N{DSUR?R@ShWyAB`(nDJ!EmAaflC<@ExaK+;G5vNEDx9q zN87t^RS}D>2<$e%x0*EvY)3p>`5+A7NjYO7Rg_r+muZ#VMtbva&${#Nh9%&tE)w&W z6vzP0J!ws#TjOwTI3nBt*d~5Ey|zxfzcxP~lA!tPcCV?lAbHJdiC&?(M&*N&dob*# zP?+$tx7-YAEgV~y*07t#qr31+lqA|}6H%!J;VyPmX*i3iE zW7|yrT&zY<%(%e5QwCUQh$AQdwaLNt}^%9OD zJH{wlM#k@;EI*;Us|Av}{nnJkPSDuN$q64E?8qz%ZthFKSMVH)6aJm_Petk{?^`XC zljf^Xh_K>ZXBxAyqNup;VW9K5TahYn)X?kMf!BDCYWm$zkds91xW#d5GeMwr6O5AlzfJXRSx3yFyH^v&aj%*tp zk+0d5P*@pD#bw&CccSBBSc;P<3JQDyNY3m2@y4k00^IdP-(NkucvVvHIkMy-oR9ez z=&p4;-$4ox(kWD;yw5UCv(Rn3R;z^&;nS)AHxC2V@&t)w%gVr%jwOnk@yi!7TX`Xv zZSR^mc23xQq-c`#S!?IR$?$t0imWLq{o**yUkAl9u9OzRE!pGH+t_L)|Hmw~#fpuO z^CLo*w%WMBb*=|v()8?-i)%ENZ@oL3VmirF3KbL=GYb~uP<(x?{T-OefFtiu5ydlq zws@WvQ;&!I_l#NPTB_vyjSLM3)(#Ag5D^i@()xfqOHo?7_4XLY(YS*GO6^&>F6Q-5 z*oXXAZp)aT|5i)?3%)v=A7p(tN$T(Ijik-F`okyF({?h@X|93~n*(l0-5$P(l7^}w{sdmAW{NgJz!3Gvoj z6bZSh0xk5PfgT4ePDn`Hj=Q&>mhx!Z@?lAzrsVxQNHuS}4Xt9@?>fYr7e>I{U2&Vh zkpMDnqBP}%*%7elX*kR_DWns!Sv9KLPYNOf=WgrEAg43)a;^G>wh$w9?}kF#wISda zm4R0~2En|&Wj%iq2WS>*zqhglcBh-q3uv0E;puMymNTFEchEo42LS54{iDAJuo?R_ z?n_cq4L~9RZfayi3G{01F0_G`@ZXD8bSlNd1;fA;zE}SP_5|njqm4$gzpmT({ev1A38Cn(e1ukNU)3*Il0C=f%p9hk&jq zQBT123n~o7FDxv8Kqq_Ui_zk|zf3~QpEC&D-Jr&~h20VA|BFnQ_4C7EDMh@)F7T6s zo?)k*CLGm-sK50~c0qyp)HMMtr_O0j{+g|VLr)AkZ8x4*PY;!C13tk?KddJF&#(}3wDuZ$(maIDy9;BvjF z`!;px4a?Bu9>{cje(73CX7xbt1ZcN1{Gorf+Yzskv!$m!lmg>AjBER)^%$kAq1hv5 zcK{XwIBat|?`f%DyA5Y|M*8LHan#SByQfZ`J!YV@Dqmr61?rwBc}en@DlQ%aCJrc2 zzZT$d*>|bC^FXZ!LMLv3&<)hI7`63zPl@gu(qF%oFg$LOr+TKGrU~mCc@g9zi%N*` z_8<^5N;bBF1Ms+<Ez#s`Rq3Fdt5R-$RU_TA$nh5(ygJ0D?)VpDqx z0$Ih2MN$CC0IEK%)_%&d%+cM&CAKG#@g)`s>=5iiZuiS`pich0|X ztr&F8M{C2cnM({zOlZTHfOmk@hKS87l=_?JL*(R!Ai@S@ufL(yLQm~~n|r0?<(Xy6 zH}s;JRfoO2y$>=XBjdaN&ss~JemKsag-Z?aYp9t76zdnuDe23{LGH9lf0SkI-0)B| z4D^{YgRS6%qs16HyR5!!4lFGurkcuc)NblkR;2=bQ2FKokPPH-E$)MuYa2oE|+S)$kclEz) zZEXe3)Szv$`e11Mb{n@>>_&XO`wPqCwk=4fCi0)c5C6Z=k>~E-yQlo2-ZEBnao&op zW@{hAR{*M67wOfgadA3Mi>;$`@7^bWp(`q#>-D*YH5p$aQz5|E9wkn%cnoFI(h9D1 zb3;7ZDvYEXSjjoud(!jpi&3on{#XO6rQ*g=6a|RZZH+1II(dgS{l$g^_T_+oBd{wjGf#rB_K#4I(42 zo|98F5AJX)@Sj-FJ2xZi2?nQi*@i8TrK(rA zP$>_c0S610==sdnRz~`pOu2SJGuACDHbRuD$xRz}hhX6a>^M$4FLid%Y7`R}SL1f^ z@bJUQ=_$124yZ6aJUlw@k=XX#P@)fRnQa>;MQ*f8pMDXep5YdQg>S#rNgHst>~=yC zs2;E^{z_Mr_K6gxT}p*8z*&I#%MWSfx_+J>8EK`j#~}j8Lel>dD0{Hd97XrPJ>CES z#-m7+*sz*N)+Pv4uv2%fI-Zfg+qSD^lg_4(Ha~WC^o8c2U%!WE7)g zz1L$TSp9|_F_4O2I2x&4#sxKppfe*)(k}{#=u?rw$ z3qT;~2R-Hoz&z##M8Dg!m0Y6pVt;QB*lnTG>wtlaH;;^gXK^muRaFXn>2*Nzo=bn; zx+jOe&`7T#PW8hmG6u=p4C#xWU=!w{PyimY?drhy@83bCkmSH(vn)Mi zsaj#R2pVQVAB~)fN~PH(dvrJi^gWG%T-BQyvA6TPomwS?qrmrGI)0|FMPJl$3 z;Cjf`DJ?HgmrMQP#fw+38i$9?0m}titF8@IC!ocXjGTOPs-~*EeBs*4=5aLTtf{K$ z3A&RlfkH0({rvwVZl4)f?#oH6#WET7d5|NX9juAP0dfC*P8!-Va7chYIl|YVLlitd ziKP+V`)^3wJ}feUh+ik;JdzZz6WO)&1gQd&N%1!v=6oq&oZ(?%g5$Fd-m=<&R9FP- zKVGN<2OpW>{j?(RZjwbZkbk8grZn3QtA9`qzMF*BU^oWE$$4PbswoB8;j?uw)IeBHk`9`m-XtBA^83X8nX?GoHJzSBmaP=snQffaDyj z)Y!HVkEGn+vCLN3sB7{=d1Jr#FJvl<6fGF;F9p3)-l)X-@yqgxN7J%pR;Cm!mIn5a z7o1fTOibd26lAt3bg({s%|?OozI_Y1PLVtMM^?iQfZKU=?)PDB&3nD5NQ#R?tJO) zP!Nztx)JFTknVH8z>3*3v-VoE&pv1UHM8b3z#G5kx#PONSJ_@&x?-v;tA#4X)=BGXc31 zaN^XNJPSmqIoOR@$RZl`b0e5bj|TR;Cl+=Bz5=vmgjj&At+{k>kCm5~=9VtD&lOK0 z?!|(>g$dk1A=lG2LPGgnxDyGFgde`@du+u?Y}FacYFt%ay}hx>pw15)3L!OgZ!k?q zaXkH=n#nfwUWB3n`m3Bo0u4F37B#=P_Zlm+gTO*CXpJm4AI(jhp^lTr$2qr{$02fJ zF&%u{&?SKP=Td8q297P#acby6Qlk3Sw^z*6i*)KmOR(tTKY)FJL_{n13JbBtRD^B1 zRwWq?jYoqMY78!xZeEK=>Er852pbk?)Pj@fw*l01yq|w?KOnf*TSL~+>1+*!b)`+) zN0NFC3=Gi2bb;qo$kmlX$Q9=l;l(vP&%T+gs1;?JAnS$DwtFH9@^)NEM)224^I%|L zq!G*9Z|~`0;Nu%{!jj&N59}acu;EHj)U>Ow-J-_vfDMm$4_(Hs(?wT*m-9`W(y`N9 zeQxX~OPuy!r{$$@Puz1j8ZkVF3V;HkBC7n0Nh-~QdAzWJW@faYGiPtW=%=sp(T)vGJ=}-n-wL|zG{_Er%15D5RFUO|lcs1%l+=}6l0^Nv zVRoA)b%36lTOlr!!S^jb{-lRJ{;B7DO}|YkI8Fb;lme?%5P)@g{m((5qw#GMqyQ0j z{Q)9yxS>Wv%TOiWppL`!_7>uF@~(ek?LL1CS#v!*>=A($U8}Nvas8v9oCh$wl+xr*nGFD&a8hGoGMN$BuIGz9GqkXQikmiiMJLZO-7@AK!+@Lqt&8y-M)`kokpyP%~F ztk(leD2&au098bNv2<$^nHRaYgL%9XxL|4h--_k33R2V3b^*hIQ}{ZV@?GOZKoP7L zfG{A23scc;dt2xSzd|7)^QAlj#7uqp#_X(@NOmXONZHH=3L-Q(t;m5U6vaT7SWr-) zRaue8T{d;7Q4GAk2~W}89x8N)!pWwIG_D*tGf%P+cqwH2!0>WTiTgg zV^f>!c2=BGieX{wdi=B!J3YJ8af#PKp4P$lEGA4{X<(RE2u&LHR`bL|4 zjXCvyVQ#MWe|>H~-Nb1M=grr)WsS4G9xc4)x?LVk0g*4xpC_wu&T0R?ElGI6vr(e| zTU&PZPOZqBg`rZn6a$ITf}s4ZVkWpFF4Qo_IDwL&eLc*qJIYvFZg93ceE{Y{uUk)X zgPf@1z&WnXa$4pR?i@_e`29ffsgSlnr5R}!U+zNbW;Dp7QofR{ZPWcW9M74!*l(3?omn z9|S56AnKGO@fegMV9e0_Wy?}F>cNe9>6Vh}uDjP`!QMvGdd09|lQ@tl1S zm$7kny}aKYmfOfwCYm%)O@kcebfP+Wbk}|nQ?}^>B971qf%~%aFL&SK z??OUC45Z2NEV*5L22NtUIn!;L>|=|>>u76()l};b%uAPm5y5v*mKhy=Os2@ws4Ito zc|Y#4xI1;MX7%U`XkPy>z*oO7Z@XfmnEHt*am60#Vm(yMo!ebBLk%S0{kdR``^%q< z%|F)6O#ioI^P+R8vH9G)zce-nEA;W${4ZTdU;9J=j_8++9GNKj#r_Tl2M0GdP*a)p zb3-)9EQ)s*T@FgyG|TL=H8b)1he~ZLXA;Abb(lg>`_JQsSeTgovLXvxw;COro4*0M z{(JO@`!9I8X&D&Ui|0RiMZ{HPJ8roJL?@5hl)|UolfE+vV^pI(K~Oego?C*cdirDp zsIH{>c(jo6=%jpGdJ`~fQXY5&f)yYc)sckN?Nc=rs+yps3#N7v))J(i5Y_rDG`m>L3ASVftz9JsGO&n!R7PaamER=eGLhK?O*lfq?2p5(;3@2GziT zPEhk9?J*yvA8Z`pA-tCl_9|Uk!neLb2WOhS`>C!MJo~uUuGQ1SyPm+k1$DjJssUj4 z4&a_T7VMB(bd~+7^a^nw@H7q({{YvQw9o(M?VJdLI-h)8`?@x5YC%( z=r`GY0}FPb=uLUoopFC$tN9)+mp!24Ef$U0_>5_~?5zQKQkHV<9J8EEINt$sbJH$c z`3d9IVMoiauvSF6442ixm5Iaxkl!AyVp?zM#?*;Z+pQ5?LBctSCm(i<=f&e|+W8Sc zOHhp&1iN69rEj006Ol?{sx*ZRABAzq{8_yS5{( zIfpzMD&%El$>yJ}G_z0N&iewp{%z4Y?h$I!vZvoA*@pzr)_(ph!?-`{M#>Awj5UTo zSr?e&mT+oHNZXrDXI&3U6E|Sw#E8LQ4R2%cJI{VG=Wx{>I_cKtv$_gn7!arem8CMR1dgRrJ);PeP01@DRA3pcaFWF3*7*rjUFBf6_FD-Rur2_pZ#x;^ z-s%;nPoU`En_%d{$Hk@7EGx>+e!9Inqfug|W3o|op;c~J4X83Aq)zdQsX!mrS)|`4 z-UeSmV1r`%c0eq{>8~r2->0T1!A+({uThehmi7duDFF${gU{|`P|jcO&kOQMEiNuT zYGgB{ltlib(tWR}fVxWd=@XEQ%G<}~2^(e=6$Mw}=0iz;5nz;$q3j6 z52&MK=c>pHe{siv9|QyhuTNNcz`GMrfX_5gN17R(Rbn=>4_q&wt9M@VPlA9MgP3y_ ztW60-TqgZ2p;Ni7yhr;abL-jZ7i}VR7kpM{K77Fqm{3yW5X6v`;_`1O*14j)7{+`r z?y`w*eOku=x^!=fT#9b#X~tGbTlt_knLO|Tjm|{F9T;hHb59nerP{eFYIh9Ty4=p4S8)H;8N_uWj-^m& z_v5}Ebv55+J7Z48h~AWvx=`t&X_lLBx?m9Kj4S@|6*svQkCjAICl^9b>ggoN-b+`4 zk5T;UuCMWjBbX6+)K4$I%jj&D|RPE!ff`# zhYMR@Q)@iCge``Hm#bjgV$Wu>{Q@xp0|{1>L#r$OPUNhv7g|O;?PO z$>X#jb^QpEco~9l9tXU&`Qh?`(hXRaT9p`fnEH5oCm_rAV6+(@mna=Yf{TkpAOVr2 zlda6mbOw`<&1;N96+m0eeTy*`y8Qh7s;ZfId$5}_0PXfc(I<*4y2%PswB5^)^ zir$BH=BEz3$BznWP!ZjgVzF}U`4ktMiy5w*PtKfRpv}+!HZv+MugJNhw(2{RKO2YD z{8GiTpAJlSfIO&=URW++*@A@a;0K0-$J?t8k@l0j{~_hJ2tjzN4s@*cNffv za0!Wqy3BQxBGI?2E--L!jbC9lXo=>Vv_J1=d#3O#SLTOO7J^FDz?W5n)S<|p&I+c3 zF!H;RepFU{?2+?K6S1KHHYv>hJt&_;T&KS^IBCa*p)w!WNv4t)0cf+Ke6b}!UMV-4mugS>ZGIOpn zah^xSO~}g9GcdFgvL0MbA%ElM1{!l2R^R*~SeV~69V`N$1P?vER8oh%*?pX*unpxX zUMCo*I*;-z7K!IOQ_`X8HLEkkh5TPi2UXNOB@;coVsykb0%dhHRyqA^j3zh|5mcSL z7PJ-t@)$Vf&(F#$xIW0Hqb>7_lHYkxykpUd#*=>vJh!Fa*uQYXn!QUT2Ci=vDJwQAwrZt2Y1a|jOoOp z-Wf2bEzq0;BWw3#+^2>O(?1X)f(0&WlKWT}4u3h?bI*>ir^qNL5NCg>sc8_1y}3Mt z&CW0tFKii?p7ZYLct25nSHC$`F0j{(=nAs^wIT?o$9eO5EbHyw$3o zo83so%d1I~uoC&SI73+#%7iEIktYLEvmQ{Pv$i{j`=aQM*`gO&vDw+fM%j16xv$*u zm!H0fzB;O6j~cgN>dzCcdBe%x3(LEileu*+@q5@?8Ju@-?SH zw&8n55gye34R*^)u*xh@D_ZIUW7paodlp|qPmfY6#<>d@;`+^2zS&kdAHJj0d8oq^ ztoMSv{~#fmDsp>g^a`G`Q&%IP`(ViR-dU}6qh)FgB z8h!YzXyq&X#S>U6v%UbqDd@w82(vq#!F&hQ=+j`|k&=rv1 zV@!kt#1NPt7~8NUp_b-m=5I4ILv#A##r%PSIP7wu z#ozsGbJQ)Pcrp|OU$DjsW9kJ9rt2pbX((Pjy~OvIeGRA{JHb2*grIbsoS}+cdHUx? znB`=bp+=8?ESQ}IO2EYP$to?$h0Mp>h$GcYS1SwHO}{~TygCJOOoVOOHk>w)xlM8*jS=X zU(N7A*Rcz3=M!{UvI?wDGon&pVjsI1Yiih^XS^#lG3{eOcqkH;+J3r#blG1i25c@c z#==gL1&$@ZwFSg10cLKW#9B3~K20L#b>whO2K-=!*$A)4TgY4>Vj3?2HIw~WxU+X& zVSYfo;=gW!v@yt5HjFeKdQWv-_P*KYw^*P>NNTuhU7&0UNV&j9sskCK1Ye$KR??!P zOFxDHk_h@B5%0N-QlFR8F#>MD`klU!&;aGqq$l@??lY)im6RyuZ@hYW5`1$00RcAy zgc*n?c(zX`ql)PVq|}VQSMNB2oPCPRkT&^CvH9ph+&$Vrai|xhw4$6XXRV}cgS zHph>X&1z*P;;ckr<0$`0%pkuY!qJ8mnZtKE)o zl1SZd)Y|7?XlO{`TOU_AJVzf>5^t06iwm1(o46=u^y);xwy0{#OmnG!DM^dOZY(|v z^t)QlD{+!sE>epF22}y{JZIf+qI-&tKU>J}IdiED3@@-T{?UT7 z3o5YVt!&Z7KW@!HbS_0ZcNezcxVYfchy@Q*b+tkBvv=)SYd~;3pHMUvxnm$GD5$JF zeZ!Yq!lALT5qA4@x9I3hz*TJJ0sFR*y#|(BhlqN2yuNLo7eKH2^yxl4aY@TS>xj?n z>ecge|LCeP;z9VANf$-H*>_M$Q|el+Tx09*O2k^(X zMDjR{RvD;t#BoK@Q&Dk@=mLE?9be1wg%nNr)8+3J&2#>%qY@@E3- z_2h|+_oo9u*O?NW-_iB{sA>i=c)I$lXJpCR(_>=-3L>gB#$4i^@=g(48!^C^269ca zi+u_ey-Lm|48;=dnxbzQKCPreJq%X-F!RGk4)!@@u{?Yn%qD8cRPx6fxgzhNbH?MS zL^jLq+$6Am@7W}@RCn%$IXw4t+bE+Fs$K4M9QPBU=4YN3J<=ja3-HO;>iEwO%zPP^ zi^iCU9h0x9z-G5BQZMU!!bD(ft>Ck*Iz034El1&7r4=ckJMo`rUwOpRk+ji>ip|Js znJJf8QMX@5{fYO^cE-@YMr(6EiX?dcXSML3)xTA#6sRAEhDJZEaQV+{IQU6%XaB7Y zr}gM(d?Pmp$xoU9x?<{GpAIAWp$;6~N7hb(T_!;|kttt$fDuEL9%3DHy zXIr(lRdpR5%j9WzEGNA-)PuA(ehitF%-k{xmPmxkVqky|oQy!!mKlS77=`dX`bu*6 z`VgK2p441AURZTKGZwR$YfJP!(#XJ|pfL4y?ON4tcEB(lY_%S2%p|2&?)>1|-kgr} zy?B-JTfu;-K~M|mAb*t1(R)OsAwPZ(WnWzO@Iddj`EAZiw=P1BgPzWIFBK!8KE8Pe zc8*9s$X7C|Jnl}~JdQV)|A-FRyF2UrJu&GWLT9PR7qTNX5YSEGj3+a0X1eT!wSNPx z^w1AJWoL<_`k0=-pe{`XQy=*Aiw9L>U}n}idi&E$j5N9K>oELY2|vfff7uSpl!Zq) zd)sTJJ3mSxyCd0zg}|UGn0gf!tW6PIB5_~aUc)K;41`UPxU;7956llaI;qSaz%koG z%MKiKsBuT<4{Ka(0!Ej8Ik24RX7_3{0t7o2-Uqn@0G}&?)s2ua4uKSZ@Bm37Iw2VP z;Z~67%>X5se4obH*#^$=mj2$Bl=vQ$@grF}0tpCYv%VT=gP{OW9)KDaq{!Uh@4y2D zlqR4}VhY4M0FROb<6R6A?%)*9{9Vf8P%e6<$js!^LyBRnF=3|X0(d> z!ORA16j3l*9tF4we4B#XW)>F@Ry$UZ*?RTw7b{1C0S{|EE3X3>=FnQ{P!?)R%Bj7L z1Bzd`8{|QhY%mhA`Cmu1S+^UM0A;d1zvaFi7aMC@Vu)>xVhPo>{GpsSprs@R{g>9h zg%ccj-)lSx2?>#ceF+cnyKSJ4a1<2$47DTg_VkT>)x9q_FfZ&8)qNF%ZL)@nidbc} zG~eD$9Mx9$oG5krq!FE&_5{dIfbDto?V+|dZAKO^VlLsU0&-t>hZ#;EerbriyJX2O zV#;m1O=Cu8SOhCzB#2MyhYNPnNru^Yk06PLmY+NnQt0~lRm|0`MeXM9!U^UdVd6mVzo0=s0fqsC(dyT_9I5{=-3i_LWge|9~ zr)yL=-em048+Slj8LeSPjaX)-bNs*pUc-9|iiChUnCs-DR8VxlqZOYi zEGw(36OnWY*h~H_GUJmI&KRAN5-N4y8#ZYNKc0}fl)bbV13yd~ASMio3>pg1C7H@z+C(2{wy=OGps$-KOs{3u)O1oceH%bc7BbT=eTo1p>X zF8lY|&C{8_B~uyqZ%}T#)rh8ESm?@EAoELEX%=_{Q~C;kJ1A!Euewu`;B$hxhiBl6 zyzlli0pJ6!#Hp%>8-g26GJ@ys>6-R-M2yqs5>`KgM`lx5UHvu-0U;qcSWD69q{JyW z#C`cynE3djs&t^_H;x0~SwBr6`e>N=&Gwue3y-(MCqR-{^sT-Z>iu9!J}x33R7OYG z?2FC{P!Gtzj-S|Ds@6Y#L7HwEf4PMHb(ifytrKZ?i-_J&v@Fv#x(a^}pt>WLtsoue zMajAe@Bc5 z-vSZ$b=pbkW(^&U;q03AaCv}i>s`$BtgQ|aSBH}>TNDm`IgjSmFP;(bB=PV(s$1(< zd$R{8OW*tZgZ~j(HDkX~YZ$}K%xsKG3o!XW$o540@C)2FYCVnq>+)P_KC3m9RcCaC zox#pzvx5N>lKXmrTEbAd^))eqFKJ_eSw}o5@|7UAtB?UzJPVWKra29wrmk)Sj`r+q z+2C0?agFWl>`c<>`S^TUU27Aw078$6(?nwTEfXGIs)38ZA%?wldYVCvhct%|gzvZ@ z7-0zMH16kSD1{o_!f2g<&zYMd0i@OK1kM{T>jwwb0RULs2`N2NLk(Y?cGhLjg>%_n zim(E;Ws{{O(v~4`^6}#8Oh;TSxkAbTo+zlrVy=pfyxlfz28m&oavE?3-7pA+NoRHd zL7cmW3pkZqc7h@zg}v6Gtg@MDhwWS9*6iB6mUTYFSAGQ00w1Yj_Xdp-&q@<>6(bEH zIz~)ZPizGWx83j>PUAX=IBDTtBm=l}ey1I@+;Fm=p2g?HXVCmkN5&Qvz4ZhTrVU@d z*uj(_m@>%uXFcT<*9`2!R%g4os$cP%4iuEz_cyh+jsSHC$oJsP?*!~S`UdTL2>+m@ zq~w9B)x-0+YW+vNHAZgYR!R%K-m{V9r|a~9wFNsXmh)vZx_}&8aArSwG7n3eqdj~P z!J!HJl30`b8!wC~8?ziKB?t1t^-g#3q>kHucd+VkEEELwlo9+AqR&Sn%SD`rgUkwg z6U0-0$iM#j4ac(vh*iKy{HeKe9+?P9RZ*PQv-6D{NUupKLtS|r-r?u4rT7A8ud1qQ zG9l~TJ8dm3zEL(lU{U{^jt3bnU526wZMq^M35lY*`uFsRg8JV_yb;bi5mHl5x4gAs zL$>;=DU!$SQ`g7ekSd_oxQQsv-Ox6yZDTZf*RE$Z^9P=aqu~Lv1NR80GOUkWW}Usc zfK~gkk?@?_s_!*seK^H&RQR^1$LQ4dzZheW{uH>5(n&#W`FEzccWd9B8GxkG;tkb~ zNl=H5Th#PuWeOaHSrvI$!PAPCM=F09qZ%Do>2~?>F-Ge@{~P$^cX8ZPR5^KLltU`v z=hNcw;VD<(ROe@EN$~4tI`5g_d1hz7IPp;^?jYdsvzs2w*p(BeUKG2Djg+_*MC-^J znw2H0#aH=iXG6IOZ+2B-XY2IiQxLON701tC-QeLt)7ZFVdj9Yacj@BgNB+Q=`_^ zZ+x%v#I$I)&CQ87ql1e{8p6Tht(Hl$Oioc4lXWV?iuQ}8z43ioeS zGf3`HfI*K3G$|>@*4B7xS4ykJ4Bzc9SaC!+%89+hzE0@}+WX+5BKkXDS7(Bp_>R7- zXhr8hO0RmmKs6#Gx+qUkYbu)Rac-%dW|KRvMM&*PYmW$S^zw=i#5pN1MelvQ04WbrL)Q0 z@;{oZJ?BHhPt^E46VEa|H^yx7a!Oyv2R%&Xp0_tCWUK;hgBYz3UQkUA_16gym zbp>$OYI3Zz3_Sov)}$K2#lx$utLw0VRFIjme8>cXIWNN9S9cPs1o)2{qqqHU4S_2{ z&s`9qqC$=5S#D4{`sRG6^ceA_y6$u}r4041ZKGr49)Wb@KD0^)5P{SXfCjXX${ZdCoHajyDl+4P&_b417#=-){eM3=EQ9uBRYC1}UkF)TB zUgO#BraQ`HTzC@Jl)#pnu_~c>@Ihw4pFT|H#L~aO(&goJf{}l^E42rPTM+Lkm#UO$ z`uMTl(KDu$ZgcUq%fZgb@Mil-_(67^SrWjhT>JgWsQ?lW(OP*WgnYM zX=uf%Nf14d(TZ_Kz}~(OW+!djF)=#TZkS0~8>4QGAT!*8Xn}S=Fp-LszPUs!z6TD9 zZ2IoIDbwxq`STM-vc$F*mo?DWC)Qv)J&A)p-NI#z!$RWKEW5qZyfN*z!w|9DPaB zqy#dWno&#HF>ENz9tBS+Tv7C{)gm9Iy2dtfPul(+IT0n^Q>J3`7X}@;@w)Eyz1q3` z2eu~*3ln4t4CmG1}yVxi2JiOxhAY`!K7V z^-X2A3GO}^O|_4JPUTo(--RTmeXR$B8B(Xbvb8%>ktd@M@!VJnyBt1pUy!QF>ph#> zJ3D7LcVOIsFfcUiYu#}k-XBv;?XsvqGBGn7I<)fG+Cq5%{abQ!FhuI{z*0DRVX)W| zg4jqMmnwTQe+(82+{EUAo&pk;tZIR?11;~zQrkM8h&<@~W~^`~gu7QOJjklwV8qoB z@i`B|1NiE zfS?c8yfO6SzRp;&WTLZ)#5{$z6sQr7Yh6mgNrLbUh#LhrPc}8B8D}=z!B~;%i~Z~i zN#?XaD94{#8#_Di50^VYmoN@xTY>4`)2*Kqz|KQa0qV!X)bO=PFnnn*wI;md%n_O_A;cV5?m+2Edm*T#w zeF|ZQQw;YJh4-6hr4i__ZLm%~Uw?T7YJziHJU-`L*13K~g%7=SY=vP4Xl?t)VH(Vn>rMiQQvJ6z`}4}kd>;+WVx)cBjOe3`HiSBGyoN+sf< z1%mOiQYPly$J`4FRO7=f&0&S}{rO=8XEFDGR%3>tEV1;&oLCVpt*t?La%yS=nOa(^ zkwd0Qzs!|41!AZ9`bs-HpE$axi?o$Qt{+Vm8m$yA<)&oF*AII6zb#2RD^<)_uyLKw z6`?Mxz-n%l*B~<79b&?!W^J7h$({~M;BAMZ5j>9=Zug)2(s=(MY zuU_ zWAR0&jojr`?%`TJCJ3?w-s>}`h-Uq`eqv*;5D7d;i}D6_2HuM-t;&7q!V)({7It?X zV?c2j*9jg?mr03XQisGNq=uC~4ACvZA5U*)yb=*IAmzw564DoM{rLLzWi37x!>4-GByi)5xKzqc-?gH0^RPxmYl*_`LDOx6!_ZpTSSP{?s)6nR+?6t0?*4^!aKFEO zyHxFFdHh)sx}!i_|7nk>=Rz-kYJQ+_5ww48k69pUl3#nJoPS>(62H#03IFCK>V8W5 zKLCSoh9)E=1g-B~ZU&>0nrTQa{fsV5NLGAd<_hsfoknYLupGah0c-f~{jVZd`ZLBf z0Svx?4rXpRkUw@U{{{vh{}-SY^xv+i*|vWJ2LI?_>o;kBb`SQqz|Lvb{ zvgn$L=)4|65{P(~lb6TA#)je8Qo5Q;d?ZMsQ?5a@FJv!z)O?468qs^j!wt5qMIb&% zzHh$>5rJz`q7Kr}7^SP`yJ)>9$2oq)xJ`nIHt2h7jV_o1G1q_Wsa!pPz%kI}!jdGZ zW9!(;+*xe5TuB|!-e*`Ql?2nYsgzXXP>%0lWb>=csy8? z4gPG_5Q(Er!2W!O&%Z{K$)9^-6n}^#m$^Yh(_U9c35klPrWuzHlI0FLEZduaA#ck# zqOe?GCgLz(0!w5@ax$C;22o0>UC>>>CU98a6;$((?oqdt1Qb6?Y;wY4eZH?M>tFR~ zINM!D*5EmVk1R+l1LNE|XwecGr$8e^bg8aA;Q{bf?$|9w14G_@8#YT57WR&gL~CHK z>j)Y zFXB9Tq;%0rOoiFM_3`YVhsV5OFT4Eg7InaPkCc=bad8T~KY>r#u?Z^}S(A4syTAcn z=1&A64NL>D@iAiy1A;1*6(WEWP?mu$s^PK;h;+@p8Tj9NKo-Pm+JbBg!?+zPe}{pChoNi1*pZ|y9U@IpG0YP$R>_3ZCgbjG*vIy`dmEn)H)_mxAZ z3ZpZz<7=TN>To_hSt10W(B(B!d4jknUXl`>mX=eclY(y5A0pr4U3AC!(_Gw-V&k?i z?)y4-+GqJ4tW6Z26ry>E;beoIK^uN(lci9yZ3>EYhmle#1U_45&9LTm&{~2l$)+_D z+2p^$;S)C<^r4#;ZYg^Dio84ta>J5I8z7Y9)B~aXDa`Hw&VQ4KXNXH05~16^G&aVa zyxv6yt;Y02uxrDS`QFHOcp2mkdFg3s(I)qvR~qEA0#W86=<}HytpCCTq(@O); zD*o=p-d;N?MYiupuMrDk9o(C1&v=|b`otwEiXr~U+IkIGsSWO{L9kJCSWg3RGoTkX zh`&(B~PmzP(0xOEMHNz&vmd!X2!A^g<1-rUCHQL|3rT+8`-; zA)M8i{~^zaOr3F_dUWNEcK5J`3T3lRccn|oljmd(F5cOn+EWLpIA=o)_V25_wQqRk zvNxv%%N2;Y5+()E01&eLbI4t5p$a~ibXnZw_4jZTET=)Wxd%mb_VW59ZxPP5K}K^5 z%6^2mkN8Vi*xoDxz7gaI3B0)&Q=OZW1A=QQ>Hz%}5~)$k`QAI=V6&Qqu6q_j2+Dvm zvsgU!11^9tMbQhFQ(jI9Tp(eL=8N#Vl*D)q2S?DYjl8w+YWJ#g1PZt#ziND^tIty> zlI6kIJivGaFameU^7soa3^&lb5r)U!T%wX}O2pRi__* z!gkF&zl27_iEhzKR4`oabE-XMUGPr$O4}v`%f5<<)X;=Qa!n0I+Cz>h&|dtWPswxq z9hCS-ZT5faEo@vkI=Rry{W4y{6Rqp5h!vFR^@Bc8OmC;KYn(Lu$o`2|!~yM{1%lrC zo{V}L_f2u^DEg->7E(qm?EN$se#7j%KxLN^BmVpBvVGv09%q-$75$a$vMH_)@AW|1 z3gIkIpWZoYIiFk3{JGeAaLpU?-tB-n&R+_n)XAo^YJ4!z?>KdG7lKVak49=%w@^wv z&oLMBC~=Ah^D`+XEMbzowcC~>0+4xlD&Pz%rwalj-o1MV@gCVD{$TdIe*O9J|CuTF z^Jmj}qw9E{XE2w$xK?H*ZpoI}yAU~l4g+J9qh-__ zF7u@b+hJ=+nk0cS?vX+|IqHqmuli_^_v?VR9NqQhHe5m_&}_|iK4t;#55%j?T5)=M zc)+ZK#7_InS_cHtMtS)9!s_?TtI=k5e7NsbITpjrD(;__BtZFfNC6n`7Z3nR-_j{+ zB|K)W!E7e|MNc21a5q|W;aa=3gp|V&oek(1pya^>1n6j+5cvT3aHxCNQH3&W@V;JE zJ%HJ5eM`$eNJ^X0=)HcYUH-GOIaI47T2NRv8R^&0M{`r+3K3EL^^VM6X8{s^4D1`d zeau%cuEEu81veP%nvt(j;`3SP>%!oaCd4?(~eL!lb3W8Y3s~0gK zYzNH6sL39|d)v0&HX|5QAdXw@WKOqP%lu8-tduat@$( z&fA*|vknlQA(Ra>^1{I~+&ik$zrD0xMJ2}6+&Uc}pNihlKtoHEm~!thG3G7d7=9V= zY-H&f@9=3-yc_BCc}hKsPdySj!zx`G2~Xmp*ZiCy1%-Vov<=Zq!aR^?5$KON?*l{9ewXARLrx)(z$^j_P3XpMsMVKdwBf(k)Q!_m$6#m8@NA606dO&-^a)u3N`*x`|-Gw4Dxu6RDJj{KrR&c9uaVqkd;9zQzC7Jl8)E>3@gZ(BaTbMR%*KYTiv-fZLYOOu zqk}_2Siv+K>Q=G#27~bT`PSd8uyhM%ll$4Ai-g^>O-#)gK+1;N3} zL7rf$u<^_tpPcl8?SEVJeNYoX&Z)f3K(S>VRDav>EpptRG4ind4N6GrjT*gxDuaqj zSXkK3fa><`*?v|X$Z>?-IZFC#*S*~pX5|5UDpWM~WQ_GQloIa>Hg+-=G4T-jWkh0n zdU}GKoI~S>bbio|qrb*^j&v5K{MBsz^(nv@{v)XbZ*K{ZA7v#7cpa}Ar>wEIufw?& zEyE6`4I{XR8y+@4aQR*2kc>h-p_IQ0OUY=W5s=lR9f|!t=MgDl47|*BH8n$49XG|b zSXuKy*j#lHd{EtBgfIuWhfJ6axON5Y^pWOIJelIOfdGqh4h5dZ-De9vNdIb4COoz= zo0^%G_yB?F(CBORL{=6Hm#!ym%j@Wt$dj#eT6p~*krQHOx?FX$Iqqbq*6Y#G(XB`& zcNslmGJN!?>oooIu_ADAmkwzn5LGLVE6(ChnU(tl5ff%EJBvGX;9UaD;?I?p)(|wc zt4w-dK*R{-Lp)p(HBx(EL?BMAfXp)Kc1p(#cx*!#HFEUs(CLGq7I+Lx{fArnX}Fq) zCtCVdpD-!tUBq}Wo8pB&7uyqZTamWzP9T5Gx?dPZ3Ef#A{V5q494`Bc?CWivOLLF> z14h8e(xuB^uG!lE^5usO>z6NIoXRZTnhe7Pk@&lJm$9&xA^wYf1acDuTq?QfCfZ>X z!3796qrl3rGhr*dt-_4JjRdL-EZUq_zt$a{P0N#Dpqlboh4T|K&?w3 zRWA(K!s@HXMH?GvD=;N``LYU_Xp8){K|w+AWI%jJ{e(wmrDoxy#$z0Qn+@>>B*;8g zIz}I(CKyM>$43gc;|!2Cv425xkau%#cx)Lie>2cs$V;V}-gbvq;t-yU7A;rw|7s8y zYdANAJmwtSmB55v5pxu!iiYy zgx0lk&Q0)D) z%r-s;oDXD|Abv$OL2?Xg70BqQ2ldni?lI6XeSHCDuZKqmcEmk5=Y`h^)EN6gsJg4Z zhc(pL1NX4*+JwPXn+x>!L7E7KauW6f^XBba&H}WI6|Iy6XQgnvJ7Wr zJ`eb&^XJ7RB~j^Ra45nQVW1(0I->mrkjS*0i$7cnziWBR8aC0M*fak;sY0W#OpW6| zikBtj)|g;SB@hp6YUXfHRtsfYAgGkPTQb&HdpN4{$N7*rKjrknt422=y|U89WFa#f z(p9(N3xIeCxZ=F>{p~sGUnqax_gGXMTrpp62>KIMam;qXOK>TyGC#jJu$$ZdK z8NJLZco&8EeTp}ha!d@RsxLH74QyL)g2*@Z8JM&%09AC5z(?FoAyB|9oh#u1lCU*0;pk; z%09x~rJoCqqvJFgb(_E8XgZdI>Y{U3hnf=4e+UT?^PZl*+TZ{=b#p`L;^k zV!07(i&6B1+FypX9zMy!QNRH@7nwi?a6i<{&1HHr&ZAr(O_fj_!wmEx07<|R<+AiC zWOyG8DuZBl`LC2?!#!&pjTyc3=bKhmLnmJ_GBTPUO=^HZ04>dHDYxpUF!PInq~qVh z<7i{x-151CK|Er;lsr9uic&HCi^R;e;CGk5&r#CSWsKxyXB9QYV_YKUDl>D`>jkYs zN=ixyqzQDC0o(fm-tHJczjPy?eFG^xS<|h~ZB?9Is(D~_X*ihF!sJ^&w~zZ_sIbgw z1{w$pxbbS%xhflY6q^J0r_u=a3kz#ZQ@fslc%E5W<0&K!4DWZPD#=~H4J`O4Pkxp9 zy!@ZoZzOvxK~n1aUK#RtUBgAw6(MZ$S(M~#%~N&oT@0B*8m8g$2hR(6MqLe%gu|dw za+{p|<)m38t{doMjk{lY;+1zj8^wy=>wThlI3S2nt4qK9lis$wTh|{+{_wFfLg|sb zGJbiBUbgC8A0!TXzVG0ZHj}%MiRkt+wzq!8`}B*%H(Hrp@#kzuDVd&y4=q|0L&jz^ zJwX>)Yxv!i4%_TrgJD+e{^)H@B*F^e%GtvP6_(UULK;uNGdFc>rEa$qNRyw5l@||M=;B)quO$Mm& zjtZ1%iGO1UFL%o-DVc=eQKgL^^`MW~gc#ck=#UJW+Pg(TVSV8@@?S*LzqxF8Ga2Ht zROu*r1j(244B0nk{3}2$2Xsx~V}P=fa|yT_4CSji)uX|8#$Lb^rU*70!C080->-8% z9B}k0i*^1w3&`DfGzR-Ma%sstL}GGo&N#oH%7%o){9|kDB8*5t|F?)TZ4(H{IW2v9 z4<2}!9giFrgr`dXjSAy`MgS_vxfn`GMU`Aq^6b#Tj9LpJb7NvYX+OToW#h%D4=h}x z{E{{MqYsVqW$KN~Z``Q&1XdrF(7356D5dC`)`|%Zb(~5XBpq;g7sXGVk(@%n!KpgY zVYQ*Hr#Jqd!jo^$N&!NFs4-x|3YHf4pJcda9_s2QAgF69Q9MIYkC(8RVGnBt|4oq_ z{Awo((?T#59u$J29qffPfgaz!Y0vIL8xIUeFj;h>EEYn7p&rMxsVBsH?`8kay|~bA zMH}5^Gz2Jmd;1#LcT>&FN(%}W84!xObS7uA!|Af_);3XO$A==ZrrV|eAQoquDnbe+cnoV5xa-Zz^W19d?gd-<)hnKAisE~F zd!!EYi=E0~UxLx>FjQ>!YlJ!DkF2&gLqb$QG#A0U2fl{iEDLCdf5+cUb5H#dzVZZ$ zN#GHnya=egXix*8f(wa=R$&-+!2yT@0P7WrIBKCUxxM22L)*)J89@*ZrY42cl+uy9 zxqUG1c6Dy>#yKY^2hj$cua&MJZL<~r^SdqFG6kwWI1FNc4x!AVt1K>eM`02M6(I>w zb&l~a#x#Wc+ca54Tk$@;~+EPBA`D{X|;fkB54I z_E}I)-@l(tnh%nVNAt1E+%7-Ik&`?yvH)CFQB>3jz@mX7k-vInAK7ErRh|=otx%3^nX!G)=t1C>INOUOrV=B#1f6G% zBQFE$E_$9pXHNSX;p5q16neY6**NrUUgn2jFk5D!fRdBR}5yswT%HRSXcTiN+K@I-gvDnv4_8#nKmUg8< zwLO7!a`eW7+*Li+h)ELu6bxwns`Z%m_7)erySpzDvZd_}ude0+X5OY7kY#|cJi22y zy}u*mI(jGWk&nK))N{4GMv^ToohGI@axqKk@-EI6-fiWjttn$*mE^8F7yzCRLNEiw z6Nu{Uxk+ZXc2`;foAi(DMjTg6oSiE;o-FiRA1oeB z?C)u`stqrRNuJSlY+Y@54pzozoXc`3Z%^wk)WN9sD) zJ}B1g8+5O@!)?t9zO;fyxZ5ig3krS7(?Nt(=msPd4;O9$g|r zXUYxUKZz$0N?KP}C-WaAuSt!crOngqO) zKEvV~f^RuJ9(wfZEp*OYt2`L{rtN;ycE>M$z%!&Np^N(V8p32(`n*Sj@pp%qNFTbliM@j-<<;T zd4}tSgZs-rU!476HXwvsS-Cs01(S{BYNZEaTQiV@Vosy&v4D~lz{>1Q$2vfjbdJss ze7So{=cs+QC^C5LT|-nxF?l(@>SBk6{gUp3iMh7eI8aQt7(CQ`2BYBvCfn4aVHO(~ zM+@rm%23JOZi}ggkqIh(G9Qd3S&z?!eY|Mcn8odV1p5iJ1XDey!2Ig&$yf^31Tf$qKVP!E*HU@^uc zBplHB`Qp@Bef@PYaq;%YELtw*D)X=*T!Fyj;2H&3NdE+zl zp>kuo0n?Is`?c*NNy2$QCBxVDoEh@CI$wf!*hwSBmLiP;S^>^V3PiYrB=+N2 z-Kv$C$LBLd# zUHLE^U9xbN!b6aqegLF~QWyvoKH2g){yOQs*y%riz7>O%)N-Yq2jfj`oU6Bxh;g}Q zseB7ZBsK1AFNf2!jnBzh?})iDfAnkU+7>;cNs6KBHd=>A666Bm98Y6cC_m+a$-$!7 z>m&&m7tmip6(WEB$p~0wuUxqTQ%Eo2hf{8H3QINk2ivuTW)MHoF!2+3Eb9(aEl%O+ zVI4^$B0{2P%17$o~J++*?Owxv$&b*b3GX5J6fR zDd|R(?uLg_Lb^j5#6Uqrq+7Z{x)(WKz5) zOGs0hagw9#op`>Q7O13q!)lc*v+NLuyEOIc$=3$PNxd^Zw}(1Aby%LiPlM>Ae9r*b zk6_kYee$r=mRBO7!?aXtU>}7)LA8H&^|_zq3*il4zP|Of7G)S~ZKw43JW`xrnSN80omMi{AX}L=)8LlBhKAvmv+la1`ne3- z*-zm(>iTjt&->1i-V%Ws;e=)HJM?PWATM=}+*=>^mWU5rDhNM+If)y-AT~eu)Vo^C zl0ywYvy$zZ-@AxEMjoDpy3zcd0pIr#3FW?ievFQr_o-;If1>0YbaVs$_U3bV8))v| zUx&FpSIJrqyZ{X?Ek~nX8}mVk{CVfs{B4`QKdk@+b1Fnu-b6B`xsK3xIt}d&2{dD? zO$#olNF-9`$q1NEHe!?c%`CaP7UbvKLes>;7W66u-##lR@Y5%)EajdZ17l;g;&tvU zZ|W0HG~s78mduEc!iDo+MPmzk4A=TozHz8Iia1{Q8Wr02lFCxkId25%1>b>H|J{E% zUqBrh(FSq|2>QT7ZwTQ5;mecC6W>Sg_X%S~U;?+BZAEIFL2}30i6>r0Erc+Kz zt|gd38>D6UEEX}PkpByOyMU|8?A`-44M0wMS`~w)yynAvd-3g8Ver%k$vGI}Q+@>i z8t{?DtlPmZG3YQyGx`cb4`$^%HQ!#NL33!1-3l?HNHjhrE$zLhXUwBOhDXHAzqNq- zDxqOvjtK;YZ85IWBuK1gEOhv+weV_c4$*6UUxv-o47LLR66uTk;B!y59CZMn68u3Y z3X-)#kPu;9DXW&wD>=kddgTjYBnz_Da4E!$z^ z4Fe$mb=4Bv!J|FbqKcz~Mj*$*2NvM~mVj#YXE`%)p-oCo#%4AghvGpvxWIC_wpfDJ zWw^oE(nw89dpPdr+6Iz}Lm%Yx^KrC=-zF?rwu<;=%=H)0y{;s1-G{PvjRj3V;ji=X zB;D+1X70)?T}_d%m+Ne-uix#i;E@o13p0B*yb{-=!%g)1i3f%qhRG8Bvx-V;7S-@Q zc2u|?QOYG)-@5$r<;y(80>mUKFG+@2j)5NuNUC(4w)@MK=Wa;5!}g~c$KcOJsSMh_ z-|@T0hh=Mj{@a~0DyI6vCA)~)4ATsG2HvrFHAEoooae`wvsJ!MMiT0SAG2nLGH7?# zqN1YMtpp*SLcykTKM;lv^MfUs(U_QX6uM9t8F$dg1XsL8PwF>?e?R!BQt`8}vOd4# ziWv3NrZ_$IBp=X5wJ52o-phvsV&5(#7*~J*9)?q~H@NiXdQ&uCPu>2`&YlkeT@0VF z2egJksr(m7nb#jvTsuEoQ@Pwrag~+$^og7%JFkK@UKerq_|)x2d%yMEQ|T{U4`?Z9 z0_f7IlG9hrn^rVf{V2D6(ftxy@Y575he#(`u+?>i)HkqgL=2w3-XVorCk)bD2>i@~ zE4&!o6O=b24J_kj0mN348-HFm51}GvAlckJ2wNgjPq$y)01r-x>~xHP7j!=_#@yUq zZO9CF_yIeyR@K~wAya7cRN@yZ9@?%MYkMw@6<_vyPp=)G9DgV37+>bgOV zLK{bhuE|`E*YO%D-e%9zmEOswBbWO4`%HGrPdufxDBp9y+PAj@CLPHDQD(5TfL%jW z!t3@y?13t=u*b9j1hfA-NSVN!qrdvJ>J9gD<-z*a@XH+K#QlX#Y7^Z8PJOYFkHosr zJ=5&e>3Sp1tQ%*!$Et-!Uvtsx!-rdUuUr|VFqg%NV{xv9VV+S&(VM=!JR3OMp4=RZ z^WCn$!l>Q9)g4*-tubx+5<$2=!<8lpcg0!{kKL__g@M55jf>A-Ues;46t=d-q#TBa zJLL!|#O^c|07Z|0CJZ2SIe8;7QCJb-?K6R%Y(TdGAZG#IxR}H5-$|mRg1JkyU!|s} zFTh<7W^%gZs0J7{sHmt(9?#4F~`SlCsiM=Ge|mZ zO~v5`-HAq`t}%R(KXOV?e44>pykNgfNXaEQtc|?Xaf?FYZE5zmT#H940s#_O*xW9i zZvJcskmp6<@5Zc`q>NIaaj*WkmzEd&jQ$Q#c|V(cgFB1tg(X0p$83UdqnM_g1u`nE zn$3U*b%5i#!1vA9B`|CN$cE8Z_bKHDIl(AO8k&Q{y>uA4VCsD)4$~l@`5-PLlHkH% z)N7m%%hzDO2z0_sHanLtjLr92o&Va>r*Qeg?m!<4jyFhECD{SN@=}zmZ#yf3z)RL4Kpx<@2&?X2Df9K9G+VzERvHA?h}gGnQm_fhb=7_&@f`Mo=krB-sug(9SQu^}&S zZyFf1L}4=HGy$H+cA*dO#Ab}stG}n($J&B>OVpOc>n24;<5xUo9#k4pPncjjP2R$o zCyR|6_a*FF*cN_0-RI8~E2!@AOang$EPLaUyLzLh)$R>|16pb!E(W)2tH<6520B>o z;LQ>qDA$81E<5|9q?H!ej8i4zjLVJaTGGL?F29Ocd90@AVv0sgvb<~CPVi515O=TH z;LF7hZwRyhYPs^&J;>~+GJqD$e_iL{}E&r)>Ur!`djzUOP@2$1jAs>agPF zcwDT+E+&<z{tX<@m9T)f& z9N~cXeNGti^@nhE0Qu&`A_UBS)jY$lke~EszdFD+X<4KOXs>+$qQHsVOj!5_1W>@9 zeWa1|?3(uo8&nQg!?Y9)>+o~{d;UwqF&Inm{rly*xvS4oyKx5xD!mS5cciwiKD+Me z(+(lPuf{AiD%sYsa9dhgA%}gs_1>My(iEluAWBF`fZMqoS)6`i#|%dZ3A}8?#4+XN z$TarWPAMqlG0l^c&vJ_F!C^QW47Ja)0jqFvJLN-E{&_4=)=gUL>5>Sbn$#=xp9{d_ znJABQVJ8v|h)c*Y{n2AOOIRK9Y#R;+Fo$feueU52gf4msiTLI}?g>hNMuy2Dt$GNr zWki$cbk7B}LnM$-wag(;G#;W*am|n;ym;Y4+ju9q09G*m0Mh)antE3Cv*rUFjQc+C z(L}{2#8O2KjkwgTO1qnMP+i8q$IawiG71=Y{;o(uP^ni&$yrcc7NPvqWg*#*BB1^? z+E9EtU|kUDo%ezo41nIMiE0-RpwMYrGLUNpVD2d+`=M&MP#c8#G3p%b(k0{DA?Fm< z9i4zR_IwNK5%$R|ciHX?9-#Qz8L21Biw@?S6S|^0-*hIWHF@@o5C1WCEAf{v(Uz!X z0hZ~YMx)Mybjhd5L55>tDu)J>MJEadr28rN0Hh}1bx5RP;4sYh(AM^-r>6(REQl;^ zdO)uh4@h^N%J96v>A~c{pK3qtSHp;-}m@|d45g)Nn< z<)3V+wuvvYI@FjE3SF}2U{zh+c?BEg@uI!}9eUBjTfKUz$>rULH@yWrkPI;Exu5CI zgmFy5jM56rHFpyW)iScPA7n*Y-n;M(vP8I!u?r;^agT{5K zEr4M1+4>dW7Kx%0XQt7c3`i@==ynJQ`VcS^l1f%sO?`j^al(2@Y9FuCWCdO95LjYP z9LEwSsa>-xcHf2G%f=v&-5cFfNK&z((Ogo;n8lIx7tL*{F;~Tj4F`z3a6mUF&cLC4 z+-M{ykoqOpabMnPYmOo{!LOMI87+tvuBhN(mbA;m^ls|kTTpLas9@|$XY*9l5#t7Q z6vz$woc)!hEikW#MRpnQ4X7~4UJO7)fKYR~gwdj(fhx9tumibWd@zUS)~Kl)zx9D3ad3)v>i6cvC-i?>L70{CCvq;2`b69qwI1 z!|8cl3}nAETzlbAmt>NMK$0Xk^>lRL;-{M0)&2?saUiUJsvV0yq|Pk01l~FlYy0%u z`FL3a;7+zgS|!v?H92ySkqOcU88P7`cI26ld;|J6l&9>279GZWR0J+Z3DNRXD?Vsaj|zFQSniM3WHlO=OqD z(Z1$&0-pP}pv&>BHF6o=*C^eFuFG{ehR${-kJ5UR1=mPLauq>y(%^F}fR~s0)fwP> zhJsiJD|30vR0K0CcKqaTEx_ou&0^2W%g4k;NNNKEvfj)YR@!4TBdAhWgP`R`Fca1L z!6K)|R90#jwL)Wy9c55pd_ysDTvDYu$q+(LiB-qgq4$vS_LZYGH|!%{MJ@6PZX`)j zOY4?%Zm%)?)QCJog?<_2{*kRi$qd^pr)KoflIEA;BPSl{go=PE5?o7xwFmkJoCd_c ze!2+saZZ38$=*+} zvC$pY+iSrQq1D4_K1^t0W%(ve^JoH!J_j;2D?npFKQ~h!KyV5taQg!ZCm`X@(OL}a zZ&@@(9Eg|*d)N1+y_L9*&p>N2i-&EQN%GurBl=fA^bQ)gem35DVs#jK(I}_tNk;rf7Q@b@h5n-`!PuF>k^%_NB_c2G z6%a50zdfjCsIM&T8+5~Asl;Ko96xts0RG=4EKIya|2x>&SQRPxx>3NhNg) z8RbR8Dw0@Jy1iWp+82;7>p#v9l&#h`eEs_M&y7#s$>Q}})BrCmIw+~_hN)E(%2^Q) z&S%Ke%4amx0o3T>wJB%0r#W3$??y{4MSFIW-?_%((NVW1o-Tj!66O4}s>w2sRWu3; z(Ngy(l-CNF3)HG8FY{YitR$nukhN{dphZDNrMlVmtGoHUvdms27@DTWuSVCv3U%se zIUoFw)$$O2Uev5ji+I2|XL%N#hoSbly_$Qz$C ztIn7OCrnbYTP2+(u>l)1YTmMh^3qS%2x~TVQ=k43^EXD!2?=BzkBNORyH_56U6f(s z?Txe1U4}H7Y$|d}L;Cubg@{6K4bhkDu9>xSmC^iw%EMRY!nmMr8bv5<_fD3m`^_7D_s*w%9|;3w$tHA5Nx0b`E~6=6 zPW(PRVAW+}T`uFv?3l>!!@Zs;M>R4wruD4~+Ev{tucpYOHZNg0@nqJH*_M=P_*7bi zM{(M26Q1s#USr*8uXsi`WN|vrUr=Xu(&tyZioVbD;uc|iWgu?PDk|y+i(6Od{6y?3 zx(q4l=uU$t<`(;&nEaXD6P7@?>$=BX<|r$68G~!|o^}#0#R%yGGCyfAhKDzu+$*x8 zo1Ydy+Pg7g&kma5TGp&#TPt_iHYdXS7MLwaUHAG^Z+lG~9WJ#nO+C8NgiZg%O`ghz4OcAi zes7Ug5E}$Bdf|RxEe}bdYp^*D!O*e!mdR_J-0VIm&5zIFnfCsc!5Z zl)qx*_D-}WH+c8LosaaP#wa?8|5?>HJIUtLiBFUjG#)Znvs+C{<2b>M7BU|obk1(< z>Wk~^PlJ-p7}f+YH%RWFj=lrJi+Y|Rrjhdyx9&H%Il^YW53CHmrC(*Fw=zmg`5SGR zo;qWE>Vv-ImsdjV$*7ip8>X_K>hm$OvNK z8T27(e4SEx4?U^?65P?=PRR$KKwGR3WZ<8htd(x|4SjbfIsTX{&3s-(6hJ&ADo=iM zUu#U93qP}JM zsDjjrPTMd@hTv4Yd{!1idVgV~BAH)NMn=X#5#T!d54B;qY-PoGf!|Orc^Pyv`NlYO znWm3t^%NB~LrK`#B&1N`+Xw~`}|Bj8kVr`pr~=2EWzea7m2v;YWS4w>YU0VZk6UwBTt6NFh<7vb5Q&z zYv^zKq)VAceK_f#S3eJ>s*|-@jq41?|719${lItS->H(=8cHWKa&sA^EII$_KbRf6 z|1~=n(-@C##T%bIA32j|7&V(VMx;)8m$122GkQ6 zV6H&N>FAd*(@@blkd%&1eJCg}_utTRsCT?4D7Zatb1|pO=!2>0aJ5Tv_!z>Bq!AZ` zAig`>3dVm>(ymHj`i?;=PMU(kLO@6e%t?wV+t+Z}zL+SPn&NvWmO(^0eQhq26ppfiIc3 zSl`f(EOCP?vF!AF&)u014`bVe$2i}EMP@W02AYfe@Bo2F2namrtrcvFi+hYj;H4`H z2?|PcGUnX)3xNmU0}N>0Cq!nRV)xFrr=;}Z_@vVg%sqQ>fp>S;f5-K%Rf{^ik_2iO zdHrkyzzJY7iM1L+tF@eiFiDFSPt*zWFT5j#W~Qdbl}Aa??twJEnK0hJKMxJwCo9}A z|7CcZ{ug2;PYKEXVW1<9{b8wlE`RhLp8e-(8$_($-pI=I8{N>Mu*L;Pq<&F<*aqVJ zp4i&DKD-G)mD4i^?JKv-|5S}6f1PAiVkl4SYwpjf%7R->^K(_vR5MX*wEucsew6!@ zxiJ%CmXhu{80Q7G^}tL%$+osRLXFnP%PUsU!a~FybJXIu7U03hW$pGNcCeUElJyIzDMT!;;f3CF!5>J8 zjvfIu<1P2z7M66D>1-z@1|{#VJ}KvOVBqCaQwVc|HlIdHeY;?AW!kpH$j}fj^Ve}H zo*ci)C|H++LPKk4DgSp?r|hBIDQB)jGYS;vb{gh^?~MP+UYXXRT8S;*xkA1_hhYot zN|!H0@h*j-hNVC2x$Nw4L!p%CtNs`EaLGtL!}tem!cST6vMh1?Yw|sm8O1#R+-AVP zt{{TLr+Y3yRBFwJikg~kevhb6jw+yFz>=}#vll~H(*kcoTwGjYB0wME{q#Q3r`6cb zSp4T&q(33p<)tEE2y|hDso+9rQ`3A*G{>*k2yv^NYJH~2J_2lPO20Z7@2MjYH7B1K zZMc|g9R-Tot<&u7*}32S>C34P2~T9YzgwAjxVXYE+=`s)nk9^C>EF!e`7q|rO!RJ0 zZtptoxFuU!px5@tJ8l^-4+Bo{<$bgV$N2Ji*$}l1X$odUx&}ewl`FjkdLC7apCu*C zg@uD@xgZio#zTeBRM5~+Rqv|v8a(;&hwrQJ@&yO}V!X#FMi6u}xf|{WbrYgtRne%| zElSjVcYB6E((~4)DVEgfu&B=SMBO-nfT0Y#7q0)qE85T1K;CzRmrqszl;*1V8?O{o z^GZi`B-EW_qw7WtM>g#!ueBeQ;b$u8Q(lohJ035ahX@D`5C7QX&2vz=cj;s+LYW$A zzx0o7KGW&^h;|JAW0@^;);ygLp>N!+cVa%!Jl3Q zTjSMs`KIq_(8WKLkZx6|@*w+OP5*TXo#Kovs&U;5n#|9`cgTI0AB4QxQcVwBU6tja zCnDmZrTq|bDX~MuJ{uB_;D#nS*%g4j{+WMzqgahr)TPWJ4g?XyD=*xIoOG@#ER&Qz zuF<(=$Ut`4U22(?rBio(@nHC61ytuSJ*)P-VczPT$1ZmiBK=rgN-A+Bx0J48e-%Pl+9%I#1q~L%%{Q-J3CD9WbK(0`YjJnbR}f0u zw=QjwexEVmdi_X5>?+22sw=Cvq6nigdLA@Ny?(@dp(l6^|Y$PSGGwWye z8YiSnCWbN3J%s*C7|~CRU&Z5KN(7B&p)XHwmbc>*0M0(tzri?*w3T2jJ8ows`K$yjMVr+i>pQ^VGPGp z6N&hyXPlPf!b9aM)@;mu2{_D#7^F2@Lz?;EC59Frh(!xkc^rLk9}3xR$&LHzKmw;0 zs0IW5?e~#M;FfJ$>DI5kwD{~Pth;)nD|S$7{ZSMf7q@eD{Ekn-#N^kXP=N6Av(JN= z$KPbQ&IR$H4jO!l@-U53KWP#kvRr7n92H7eG%Dcan89L?knGF%c?&+dzf8x`@>B$N z!!9T9&~lj7ALodS?2Cp*CmMomcxtHaC=X|H;V8G`bhc$p^nwD~%SU;kt*xzJS^;!$ z%|=mC5!iWiC1w>C9Ih}seZCaE06k3U9Wxa9GMrFNoev4}=g^UmYp^9PlLhB}KbJN* zt2yxuHL(ssrtYzvObb|zVOtg<=e8Vw+b|LHo6p~blmUB4yPivbAiHnb>NZd9aXqVd zK{hf-nC;83ExL zm%B+1j*AsO8URN6o3CA;|Eh*VvM6Uc+Z^ zo;>dC6H!rAfs)C|$($Kp8Y*@W0syo#Y_hSedfG<;TY1fQo4ZaEKm7g2+tJDE8^nxK zBoU2d1!1VKOh25dtUhIX!(SBDU8QioZ!%{nRg6blq4@;GeC1?7RVm2iMrosAL7`#8axwq$ z-*Q{~=HcOyh5!v@mp?=!G&JuK}g@$51s6{Z_V=%-q}RQKe`$%ZP@=m*BZp!|NFIu z6X}_zT=KqyJ>u7m-Kdz!UVLIA{a{q)OK&CZ%n{WNv_7bjCLMeJEFTN}A}&mC;K2?t#dsUo^$ zP06>ir0|m6eUKl%D`lZz=E-D&F6Mza#R2`l3d5nyE(mZi;r(>m@+tV)~j}qyR zALyG-3v`F{m7dve$K$QoOsSBg0*0-D0IRMzY3G=<@<#O`GdvJVmOQ;gxV9H;2In3J=I=57vtn3L7qoc1gSTo~5G)Erk) z8FRi7IGM*(lQ6MfLEsVK&kh9@SgHPEC<(iU<4;3i+&t9r#Kg8I0wbn*Aw}jL>|Tq; zz2+DN$_@R+&Jncl%s4;xxuCkI`xIpL&TC{A=(T7FYWu-*-G|5d+_H!Z&L}v5^us$l zQu*R#zS)rEiccRYDXG>Js1HfxP~{F|WX(-+yyI77x*pt7|3|MfQ*Xs2B(%?ne6y;m ztsQVOlX@AwqW@I8tqqacO?zU#;9!xA`o+yabzi5p`DKZ1P!FDINWB4tXI^O8e8Fo& zH=r+V!(Ap1kzO_O`DTwxW-u>Ap=(i^AyalLYh5sXExo+6R-XK&*YJ&ZYvPu4^&I;9 zi(yqWfnGdH($;-=|44+6rq8kjGK05F+Fl0FTPm6Ts0dJ>$@9L zJB2=P8`jmQpR^W?b0Jfxe#J%da>Dr#aH!9cz(nD4Vi8TNvFS6cYh5d}om!z`G)P0o z;g27}A>#Q)-HYw*4^AJm#k0uNXkn5$+-KmA8a`dZ$&J+w?fO5k`zzCi9M=&c$ZkI{o-TLO32H5pZqXnR@(iIlQpH6AEXYB zrqH1O_5@x!zB0xA7=98tWrMKEydVEq!7RmUcd$J>=3;Cz2aABLA_e;(+OIRi#{bOl zr>(9Glor#%k&A{s#`!S1Pfd3PWEe6>RRf2cpJ^&p$B#KmGnjb(hhT~@Qr`SZcJj6n&ZfiDnK-XRy+|cs6lrD32fPz+i*xZAijAlmGhCG-OWS)5XiKx zd2AGH)yZO&r$|pgv%LXG9|Smv_iQ4LL}0ffaCKUY6ax!#tcN!Ic4*2vM9mivdqeg7z0B=KAx2D;%De%K_?~J2EU?^93SNCwY8_R&9Q>vr<=+IF$-x!<2 znnD4qOk+t-id#aUr$f^6V8ajj%j2MDU;tyJNnh^Fn9mXRty`-w*oMydifVTf=S)(u z+j1J}h06pdd)3*V382*fD?PAXNbDYR-z+DM0}Vk=v96&360u!?Rswf*Tr(V&^&&%r zyy1-Ry3zFpT9YLsI0ATpKk(tx(?^e9LLJdaN{$#mp@S_ z$I8cS@Jot|WUKez2U!}Z6sJ-1d!k+yT1{uRv3XRJ;964rHt+T#(z@ym*Et!<*oy-9 zMfK(HfT2$-UFs<|w*$uO;x~#=dB@)jZ5S@L*z&ls_K>vQ053~>Ex3i=9)Ok!D)w$I z?`;`QVqzyKzn+JrX|uEX=n+&A1`QXN^1geV5*9tqX8?l zqZMrazF`jO`IeR)Mm8hV2!qK!G@UG;a*$Mnn@e zgC$$=PugLmCig?Fz;pp(${>$VvlfB%lWC!MKl1p^GB>zz9C7_8M~d5m9`XtY)uXx7r`0tzt+hQpzb9%RA~@jzUfcN|*ByC0B*f^ybR9Pi=oHmH$P-SLmVqKwfS$#z zpCg{q2;O+1m0P`^KHWm~@b&eb$0a2vZ&Qqy^{jv?Y^>%xVy%8RfNVr==omvhGmTlv zkt-4@#vWIH&LkXHf132IpH!c?xnZ?p@_+DKZ}coOGvzJGG1wr_BVwj9${}W9xBFiB zJ^8uLkFrk#3$IlRuoy$cQ{|Lr^cE<}(l`@An3Q{eu) z@ih0WuTO-<#K5Ads@jO&rVb)c@@)%y&l>|@x>Rw*(6r<9H`HQlnPl*$&!IML>AeYBHB= z`Ptf}*>}l$?_B8i1n1Wb)|2BW_vZ510{(xPzExM}mfIavplJyJBiHjGXI3Mc0e~6` zbwUf?IG6;I?KWUg?df*}6~-pyeP5oAA*mz4@c4OT z40i<=Y|_ePm>Ia1=mwyczBA!|u6~;qRqH#CT)Lb2nYSZ1<3OqE!W090j0}Dxvk}Y7 zh8O?aqvjX?H~pcm#je2E%3IW~RYPQO~0Jjp(9>h{x@&$@Pj{EZv?Cq#+4K}tUmXjjoC4+GxQdm)x(dH z`qFQrXcP-mEkle_e9GEAb|U5F)%QCPElJw1Zax=ZF1HkV4?d-|2FSDWm`qDZNhwkI zN4b{Uu1%h{aMPl{a71e9^1rq81MXKRXB=~1!jt0?iuGSs-oGReOk|&oPY|^4z0z(p z*iwJBwSOW2ShN3M_Vm^cr+E|bmP4Gflg)O%2l7*WyI`FKc*a9-Xm3~=ED1XPG5CW1 zD3roZ&r+_xR&z0IaAs_PC8X-UP5%VKTk=U-ao?m>Lk~NEMEVGhwlCS*Bfbn5&1FV? zZ+kslc7Y;*Y86b3(mkGvN0QU8_ z4+%wL!ki5_J=s=M8O=e+p%$osaoGDVM-a%VCPzYh(u1=~!!6tiaQknwAz*1MsYlc3FTBXXoS?m>?51@LB>OI1*sI5t2gZ zV8k;0zT&8qz$%K@Z2a@6eNXUe1vJ%6 zwzz&!l+=a-1P0f`C^$EL3JR({ezb>`tnEvKBUgXD_5Fj#KH{tKMrdrHY5 z?LUs^)3Vw?dhx$FLrWNIAf@<51M7?=L*oi>k%1&olT(| zgcl%|7KG1k3BUO8yQYN?!&PFhBwS^IrQF@!{rQkOlIK0^1c`=>!ckACqlC*(gE0$4 z_)^z&kxnGALR)JfZb%T9^Q?%Icj+^sz9uFm4cP_IDY-vgZfRx!`4q z{XAR={i|WY!9DOPlEDURO-NeS!lNpY8gWej{I}+6H_h$|8KU>cyp+8U-S+ddlcJbw zj2iXvx-;1smno^}aq9|xc6MFE4m(_!C1xNvhAGqsP`egi&5jO${M>gN0I}p72zlcO zM9&>;1tGzh#G~L;zD96Z0((;awH`Q6eIgZ0en|8&Uq04~Eu2XTf#A46L^S}&&s_)* zadu=U{}6n*SVtbUTJY>)*4dvsBG8SQ8yYGOr91MFW8YdD(gfzpf&3pPrlzJ9+bjUm zVNG%OT!0%mY9K}i#kmgTNW=#6oe?GQV7>V1H2T;AGOp8!v706ZgH#%74t<&l=<-By zvr&b?ot^TA(sy|5mI<9XQ3KNt%HU==<8d&=ezTdl1e?Wvm>+LV3=srglIi% znEdvW;(lOWY71sxnR)|kcD`&~5sSQ9oYiNjPDttEv9r2Gs3ZV`uP)dQ>r zQG>m?yMBEiaRTyG{s_b6(o!4kH}vDTg?JJDLSEG= zis$x-TTxJMoELfgP(C%vZuH%CgZ!!jeKRm1rl0WvAg}wT9>zI(5#edU)Oe;Jh#V%G zjZmYEr!+GK5bb?)yu4Os(tchdiaS3ZRJb{gDay47iRHp!I@Tsvn@&c$Yeg>EE}FlZ zgETbDE#@-j&m53TicI@ei3D6P=`in*VAa)Gx8;ZcBybGo>-gZ{;7bJi&ieX#0;K~3TvSBOU@MjP`T=(5BX>Vf z!{7KANw1@s^12SdC)pOMfw9LI_#xmTpTV$xvUdhN2(LWAOwPl_!;|6sEiE~@sks^I z5?kkDXU2Y}4|S*+53a|yDJ7J4&zx0_yw*_`u-%^@-2ofphuIgfUwv=T6af2s zM?RwB5bZ>%3gU-2r+wsIhUnT>hQZY>eD$5Drh-w+i-WODM630v9W~cjMBl`yDAq?$xI=NJ2BelhGy3BGgi`Qb|n zqpY8@cZ_I0L~O<_NNq&r92MvRi5+5&uq(6wT=j3$6BQHdHMrd~3M6}%^)_CfgLS#i z{Qdux%TRD!t&-_s=F-wnO@SpX*_>VtX*56rT!iQ_sLo#yr92Vxu5bgZ>BVDflP+7fQ%B5Xl zi$j706OHu7#pF22H=3yeUP++3PHvC!fkT-1By7FJCq`H`e&A4@ck{Z0c|1qlkv%im!3|0JbWasD^wW;?y;>RF-|v0M&a%fJ*>x)3$0p`7^W@z1A$-O8OS(2&@$ z-T3v7IuXw#I|I@DPC5#^kSRWFWL{J<0AFTD{w%_e^Ajj{#m z8C}!oYmTF8?+NAxDGD@mHSC{&#ac8oF4!sfdELwJkc; z{P%r6+?)E=*6Tp}5?O#q?k_+vz)`$2ACb=ZtP$e|RB=P;Nxoug{FT4C=wUUOc#nMp z%BWqwy}AO&SA8Z3?aL&ZJR2&5;Y5bhqco1S->2?PE*}@);VXT?i*|Xwa(KV&^QgUu_B8|_$ zi&$X+2RYkC+8=a$)Zny)!GyerHHZ31zIzD@gpny{Xx^cwrjBL6u%7yFD4O$b|0dqe zUYqwzIGCM+M|9{`4Mh+9GDd%WQPcuvn2LX%hTX_(2!uAkQM>wI>!Jz+@oncjw!!?4 zg@FOVz;Detff`a-RvGeC;MngHqbpO>9O5&XJ?e;xjNfpAc+rqcNjy07nG$rHWFwzJ zfO~hnqlE%T<~|gA&~0?6P`ux9;^Dwzp3cn3DEF)8+FyPII6J1QT7n}v5LB^tW(wG_ zux7D7+fz*c?C!1rMUW@zIY{`OMWC@_C<3sM#i9|`Tz&#D)SUz%3F+1FG5=%e3`fUR zHR=>%d;?Nj*}iB=DlbwpvNoZxCKiWv3RD{tArm<4)qRTZ{L$33pkvQEV1BM?4Js=M zxE=g?02J(&4;r34ZR~!I?E=ScPs#I4(1Z%`vVoCt?DyXuTykNx)^7&H2*|xN_X1`B zGSsiwqv25vNxqWg0c?spm)gT2((OR$54qT45ZZp7C z@KaQ)qXv$;!`aXPym>qx{U^9S#-<#nomI!h5Ei(zP!vel%>h#>y1Az(_@@c( zK~|s`cN1+;&VdXt;6frUKqWJK;-foWUPd7~U%p81D{sgb1V#ug#TFyE%7e;R`a=hc|Y!LCH8b;O-INUxq= zH!CkA3;q7-{B?d~7cM>DtCEGgSh`@KHUk9pPg+kQ{SHJ<0&>$&|s}~kautU57*D)z~kA* z6Im0))N8QKJcGJ`Co5kK%(pv~N{aGk2i_FHb7?_;cXfXk1LEKq**C>_Vm* zIm}8eP@OGS9zM_kZcU%!T(|4j<7Jxg<9Xog{3i)|(#dT{|E@AcE(0?@KaGIlh)Hn3H5RxR|oN@aj2^XuAQ)AQCCes}ppW7_A@zOUO7G&AS>=NXYw8z$G2GL``@!QUG z6&gK%H#icQ9R4OoIkmR|F*GS8lkzCIZ7w#iuN9I`a*wVDG{6gyG$|NQV~d}}Llz*) z8O}jT`7WVMSV>G!K){fR2uA*TA?hvTT&^!*hht}Bvuh6bkdiqGkT$O$K%aR_9X7wrny=6yOy4RAKc0wye0;p} zHUEG{Xq(keXk;%rbIIRca>2~-K^8KdHJ{5X3CSM6x>D;I*|>+uN6-xg14bk$g?7?J z$bpy}P;8C|;V=s4`W*pO|4Vc{b%3F?{;LDrfB4t@J5LD)z&ms}`Lh3peE6>dE&l?L w_ None: parser = argparse.ArgumentParser(description="pet-store-mcp MCP server") parser.add_argument("--transport", default="stdio", choices=["stdio", "sse", "streamable-http"], help="Transport type (default: stdio)") - parser.add_argument("--host", default="127.0.0.1", help="Host for HTTP transports (default: 127.0.0.1)") + parser.add_argument("--host", default="0.0.0.0", help="Host for HTTP transports (default: 0.0.0.0)") parser.add_argument("--port", type=int, default=8000, help="Port for HTTP transports (default: 8000)") parser.add_argument("--path", default="/mcp", help="Path for streamable-http transport (default: /mcp)") args = parser.parse_args() diff --git a/src/generators/server/PythonMcpServerGenerator.ts b/src/generators/server/PythonMcpServerGenerator.ts index cad5790..0ab50ca 100644 --- a/src/generators/server/PythonMcpServerGenerator.ts +++ b/src/generators/server/PythonMcpServerGenerator.ts @@ -29,6 +29,7 @@ export class PythonMcpServerGenerator extends PythonPydanticClientGenerator { mkdirSync(toolsFolder, { recursive: true }); this.writeMcpPyprojectToml(); + this.writeReadme(); this.writeMcpServerFile(); // Reset methodsNames so tool files get the same method names as the controllers. @@ -65,6 +66,60 @@ ${outputName} = "mcp_server:main" writeFileSync(join(this.options.output, 'pyproject.toml'), content); } + private writeReadme(): void { + const outputName = basename(this.options.output); + const content = `# ${outputName} + +MCP server generated by [openapi-toolkit](https://github.com/barnuri/openapi-toolkit). + +## Install + +\`\`\`bash +uv sync +\`\`\` + +## Run + +\`\`\`bash +# stdio (default — for Claude Desktop and most MCP clients) +BASE_URL=https://api.example.com uv run python src/mcp_server.py + +# SSE +BASE_URL=https://api.example.com uv run python src/mcp_server.py --transport sse --host 0.0.0.0 --port 8000 + +# Streamable HTTP +BASE_URL=https://api.example.com uv run python src/mcp_server.py --transport streamable-http --host 0.0.0.0 --port 8000 --path /mcp +\`\`\` + +## Environment variables + +| Variable | Description | +|---|---| +| \`BASE_URL\` | Base URL of the target API (required) | +| \`TOOL_FILTER_ROUTES\` | Comma-separated controller names to load (e.g. \`pet,store\`). Loads all if unset. | +| \`TOOL_FILTER_METHODS\` | Comma-separated tool function names to register (e.g. \`getPetById,addPet\`). Registers all if unset. | + +## CLI options + +\`\`\` +--transport stdio | sse | streamable-http (default: stdio) +--host host for HTTP transports (default: 0.0.0.0) +--port port for HTTP transports (default: 8000) +--path path for streamable-http (default: /mcp) +\`\`\` + +## Project layout + +\`\`\` +src/ + mcp_server.py # entry point — tool registration and transport CLI + client/ # async httpx + Pydantic v2 client (generated inline) + server/tools/ # one file per API controller +\`\`\` +`; + writeFileSync(join(this.options.output, 'README.md'), content); + } + private writeMcpServerFile(): void { const controllerNames = this.parsingResult.controllersNames.map(x => snakeCase(this.getControllerName(x))); const allToolsList = controllerNames.map(x => `"${x}"`).join(', '); From 1fe0edd3fa76a21255c2fc9284b77073d11aeeea Mon Sep 17 00:00:00 2001 From: Bar Nuri Date: Tue, 5 May 2026 08:58:36 +0300 Subject: [PATCH 3/5] openai-swagger-to-mcp --- ReadMe.md | 2 +- docs/pet-store-mcp-vscode.png | Bin 65539 -> 203531 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/ReadMe.md b/ReadMe.md index 9477bc7..c355747 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -56,7 +56,7 @@ BASE_URL=https://api.example.com uv run python src/mcp_server.py --transport str A fully generated example (Petstore API) is available in this repo: [examples/pet-store-mcp](https://github.com/barnuri/openapi-toolkit/tree/master/examples/pet-store-mcp) -![pet-store-mcp folder structure](https://github.com/barnuri/openapi-toolkit/blob/master/docs/pet-store-mcp-vscode.png?raw=true) +![pet-store-mcp folder structure](/docs/pet-store-mcp-vscode.png?raw=true) ## Environment variables diff --git a/docs/pet-store-mcp-vscode.png b/docs/pet-store-mcp-vscode.png index 8cda47d45dd03c0edece73335d3eafa0c8345f8a..4b7c4135c3c07dc21350cdd065734a44260f8f62 100644 GIT binary patch literal 203531 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

C6{6Ee7Ib}@ZZHDH{iM~*E>|IWhfPwpp+?P& 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 z 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 Ja&4E#{|ENbyxaf) literal 65539 zcmcG$1yq!8yFHAFqJ*ThpmZomNJ~n`&@Bx^cY_EcB_Pt>T_W8|hje!{ba#F?!tZ_0 z`Tx(i&N<&&-z=95G4tHd9oMz5z4tY~(vlyLk?@cZ5D<_>gasf72={*=Al%)2bQk=D z0mp$10Ras`M1WV$A$ENd(Lqjrif8++b%w!r5%QXEqQWm;y{Eh@lP!kx46Q0T|3%a8 zrr!hgg}OsOTb%nc_kVvT&3y5~7DK>~BviWJIZA{)N@MffJu0VY6e0ML$H&?P3XSeq z=gkU(CD$Xz!>T&fS1T*7xCl1fB_+&H!2l50SsCtKe?|Bt`Pc*P@3X`Zz8ClZK3h&j zdvxdTGj^)`e1D&Ol0^Fd{%7pcFBaZO<_t3aeJg}=+E+N-Ow`n?N!~<8Q+tgVd!(eK z#EuKS+1c5w(=J?Z-fZu*BrrXH`nvYm#l_|PPgIeY7I}zKe|o^#(N@Z#?J#oGo7pd0 zwP%MsSEG|I*}W+(U!OC4$Fr;2n7+DHbaZ4ZNpRkDj1rebj)w;kavZK?&`g>gu|-(c z{{DOS2nby%omhN1gDTSBq}(&45|V=!7xh|#h*6P|H>PS@I$5Ps;=8$3=Lt=i@TkU4 zj*rFToQfb>`-lDl$xGIvuh2=5A(5%ltd?^DQ|g$jlJT4(;{yW&wXSFJ=D2yN4{zqI zsDuqIp3Pc+XU@HU`lp^4EWX6JF7c^d3!!~;QxlG~Ku5PR%kloW`RnY=%tSi}hvSo_ zR4Y1*gqxa{;WL%Ewk@c76=6==B z%<1=r!Ey#`g>+u-VWOH>TSAGCZcgyStmi_l;*=ozNpM(qO~wnWs=){mYEv;^G6nSo1eG zZxx%@>9IYK)lZ|CZ#b2rkaM*gAwwVGKVQzVS*`=-$k|@zWV7RSU8>>m>7M%P>Z&0= zHg}1YnMBXVOk+i zf)A;hWB51aDCE)7(th>#ml74-MJZLHm3z*~fqb|ULNCs!+bVtPusw5U426*0Wa$s0 ztBVUIai7Q3Z+7*K&B>}|%=zX3b3NR=r~hF^Pft%#o?9SaAmcGbI>sZ0M2_U8roLi5 z8d)98p*)+k8z-#e5D^gYdgE&WGmw`b?26;a{PmnT;k|sVd=9q}!(|I`8RWrkwDChH zV)-%c|FB(ry*~V~xsUGK*xfBv{uT{kOx4sB`TCfC>dNapLMtWC==WuM^mj5XMvG6r z%iPTCvGx1^pAPQ7!+^-`NUq27fi!~VIfx}JF=5wH;ywI}n9%<&Tx9X6z8G*&oB5ch zKoik1s+TH9&Ckczq`hGA_m0YUU#;(+w(!IwqoQU!?A|lziq-h3>)WIq=}f zVT6ZL$x;}AU`K3&EqBG{`e%JvRuUqG*(7NCUkSC;7X`q*!^S?2eT&A8pMEoR-NWQQ#EI~8W%=dT1ju-F)#!_`4`+l-XqEV$IQI8svm2;p*aO8td~SYV_ua=|2++`o2xpG|zCI1t z1Lh$)h7R?@xtBvib>~*wW5xx}mnS%TySv;c3-i&@(R%@@e#BU7fAotw7OAPJljAoh zo!3Wpj9;t|=Gbd%vt~0a!Qsq2s}*pK8Alvu4d;zP1#*LUG1aVz4<1EHNxaLxK97#} z6{YcX>$WV*#P5b(F{*a-s1 zR0x?@SNHP>I6!zpa_e-aywo!=kbO@_M@PsEwc+EduZLZ^T%N$Gsk`C|QXy1&e4?K5 zA!9~sa5#JtpP2YH?b1fsG}J9rqrjRS#vcn;6|%H^%q$uEjtCoDs8Bi$^0?~N_w?ye zXi4FdOXi!o8&e&>t7W!X=;!CRy}eyfcj*UrJp6F6m+-`voe-A46bDkCxm(-v$-vN1 zA71p)^8oTOD}plTBl^D))DMP>i)%dW=GcY1ZpRU}H2`HUdHFKMP*qbCK6%#3x(3qI z*%7hDd_YKa_YcF~n9kR@T+@u4$n$FjbweW~+huiJ!`T*OUYo$tMl z=X50H;i)s|PS2>2Zq$Z>a(p!H4oCJV zo3P6HHkyei^7}Zp103R0)61)hiGh!Aq{&mQYqsmf*x1;psHnQR&rpX}|Gl8+p}n6! ze~!>_@+i3nF8TGV@rwC!k5=wRrY`HpU(97wPO3^u$5C%HVlqnf2g@~G&v&d+3K_`B zh3F%QIUTmQXJeO~sg5^B3e{<`rQ$i8tR4Dym@0l$$8*Vc*ZGAT>?+)ycE3`u(I7@c zdt);4W-BfAX2}%4Q8E0|Q@KReZkl9`2d*chTP0(=!(;xpXoQKgDMW#Ul;& zahfnIYtwD-?&h&34;nEk#rE!b!Fr1;J68J;`H(!GJ)1Q$GUDu(B@gXb9MCBn2Z5dv z`-|88t!ej9c%7)cx0fwHr@!Fxl0&s&SBGTD&60$)y+ZdDO%s)r1WQZNR1d)Hcz1Wu z&5`?sWxGP-bvGNilFNhz-!v-2>NydSWLmvUija)7%hBW!0Se;nFlbWM;~7OqgW!&5 z=CN`NHWh|B`-#!BovhQGMt!gRV7GWMAC3Oan{Von(1#%*A!qw55~jWad}(}IVwBiJ z!^6V^1J47RkB{FWd7Yd*;EVe<|8ACqiI1&U?7U7TKYm^%woyTpIs9sE zti*WlWZGfA^By9~4<0}4i2}_!LJm7{78(BTjZcAjHFuNBhTt_G(#s_Ds5yhsLM2S3 ziVT6#eLKI-7*_ZKL09YZ*x=x21O)qk-d>?isT7(|*P4!(KIzAM`f!WtAu^tDk<7!r zg9B3&6HIn0soJBdGr42}R?S|xm`Jl{noW*LPwNR(UWv3~Ek4K&mCSq6`_0~W<*5RHlUVsoWae_vT zlZygz z56B70%_D_6MrQ}ZYo`Zm5y6&utY}VpdU`T1*2kEG$2hy;i;I&s{i*rtRp8%YxT={^ zZI_@w_Qhe_MOod&g-hA9hxhOI%mndhSZ>wyA2_-4^4_8QdUrOF*VE}}({<+8?}-VW zvPnDqn^RCOS}gVgGatqF9l;d5@ln(_JUOM5_rj)rpXEwY=mwv{QZ{!Ig9ithx2pH@ z?OC#k!8UkgT2m`&sH>~X#KHo3!(l^du-rq!6f|mLR{M~hBd%*&^QFuA;rQ0&))i42 zbYXMy%82NZ(O3K3X?bPk3cZf-mHsU@i<$Sz%4|(?r=M-?*oX1Wt9kF$H@v*ujab9| zyS~2$6Kn30?CH``cRG&$u_mMm6P_W$$M=~EjeEDX!NWsh*c~9PrJRCVGwv^|AvUX(m6bCyAD1eg1^3MZ zxV19S=`ADRvKXc~3bSN)cco65G%Fi58AvQZ!@*HhRD8Wp%;ki6TjAzoZyXTuC9y2K zKK9y%Af8gLCqI1fR@Aq1`W3H{#oiK~6c=-X9oOaYeBK|aogij;l+O4k(u0_*nIA{A z{~QblrEd6QT-EH`bj4O|)f{nGy#e`RZLgc>XuAP5&bnaRh9F5@MJ2oU`0++#V?HC* zG|Qfw`4ire6TiLkeTV@L`quU-`@|b!S;t` zy9{eM(_t-xWw?}Dc3I7$kd>8%4NvroAfi;Ke+VLaDfIPCOea38S@mY6@#snKXiZ2+ zbv5TKZ#sa6f#Bie^RbSCh9<}PXtO_kGBzaSEyzbV^^QfDVapNP*oK`S%&J0-@@c%a z_@3KVgPKBt##`t>=Gj)=7V(wRd*U;vM^%)F+}ppt_Vn~jOw3Q+vtJ(x4iC4xIFJ~I zQirvFAaZP+wTR_*Jq=);(#=EH@P21Lr85-|z_rz6rR{o|v04nz$0Zlkn9-Uu9t`pc zixBVaLw|plDz2M-vPdE-zTQkvm3<}wV8GHJ+|YKfCjwL$kl9Ta&uO=_xYu>(eT!Cw zIm*JqkMuhH{GPaSBmcrOC{q5r(QM2jYWajoq)8)s71AIwQy4@HV{ps-+zflh59)n{=Jco_m4YQk!U2_J@Nq*!Lzdh- z=l~^>A0SfV8)iS=-XW~GgI|yGY=_hQDjXW4y3W;ce!f*d%;Q9v- zAN~~c>-%VBWtG5PlSLOSoGC|X^0=uU6v)xhcqzTliHSdWyy2;v@f&_@^xOSx{AzG$ zb>E4r%IQxegASlAhSlxknzX5|XV+BVisqkEmr#>~M2$+6t!F%3G>s)@BO}30rOa&d z3o<_Cr?k{m>EGYfWkMAJ6*OJr%vkm42@bdOd;rF4iyw7$SIL6rAcyMU@a7;V)(s5A z8yRKYoTZ->iJ17Vf8;~K8uEe?WnD#^{ndA z&dyFiKmg7=r8Ec(27B<}K?0|v--Qg=WJsop1(%^WlWzI~!1W28s;2quvr@&dn7Y z^*0CLbAZeqAhfsJ@fr&U=Q{mR0aED%pxz!%rX^6!#4*g@q2>uB=Fv!!mVWlVSyt!r zJcF{R_ai7x~~EW{sN-O3dUn4s_Cx{&c}FTfQwT@SEC?FahH%%`Qem3bSMx)U^2RP1Usm*#_blBYfJ ziuAeOfm*d_^nAv%XjvzMUVS;$1`6$0be@IbP-#us^h>Z#Sa^z)r*+lW^PM6U$MIYl z-G-3fv9<3qv+@|7RAHiipD|}aeu|5acLOL=&3@7rM5jlfbgup|`-YsHoQ7ttyL4DUGp|mDTQYZwic|wpN0~ zx-V4(p!u!3tJfsQGC#z{#Z%jOE^L_T=2tS{PjJJao`5gd1(gY}caLwizxyl+tSqip(&`Y zG*OmCy4bAR@+x|Aadq7C7So1G3#5b6<>loT;)D-z11WOU;dE!;+>(8KTEl1*0o#|B zx_^7ZaPritz3K;(Fv~LQ$%|nKLIJ;iy(e*!5!m0^N&1_NGx^GO+Ykr9opCI(LJ7EC zMhuxGBP|++@^}tc2mK!wDDC(j(ITP}rQ#7X_w}DW#bdGnMAejfmHpP`jAzz_aS z;v=5l7wWERBFA`nJ#?DCiinD`Th85g<#aoLm-c(fe`~BHr>@T3(GeCD6n#leLqnAX z2{kn|TpoQ3v-WHgBrcs6tJ_rHWK=LL`9|t|o~s(U-5X@f zRl!+ry!v@vfn?2LX@$eJ6h=_3Qq zJ2iFo$z2xnslM}$IAW^V9cfO&uOKSV1qD=4T?(CyWt6Y@s zC=mpYNmk!$PyG>p?2wIg*~;lC?{F&Vzn9<&ImHbVCA)!fhE;ae-qPiyavQTX0n&!Y z4$`FP^+^_w7Apb5-QS$#U@pn9ASB+|AGJ;^2 zR;*eG%lZ|CMMR>QR)n@>K)_^jgh0M0BqSW+_tv9xCa0vtBqaa*>BqPVc5UXa2oK6$ zs&uwH3W0-!ipp4P@XKXdCXy-yEUd7Vm6hViA3vmT!b15?2 z`1ag#2Az&3?cYlAnlHA8OeaN>EXBzv+sygLtw_3DqmKR+hg zw;ayD(x|Jn+ZY=yGI*_aOl$1azT6LjeZ1awr{dtmQfExdSKPg3{DOX`&FVe+RmZap z`^&?!D`$YRvP@ZGrd{?VW~GO+gLp2FeodMU5j)Cz6 z32EASt7hp!zbGp|zw2YB0ggAhl%ym*J-tTJ(%aiz(x&#GVOLE&{%*ZBeIawD>oPD6wXl4{pHHsnfmTk2V!*!k&L$ zh@jY*hU#_iA#$bNaVxtgZ$SYKeGU_zghGrw27y`8II@tnps8;Yw1{IJ+n>30y5M)u zFV2Xt(%mJeo7WqnMsTA=i>D{gefP^=RZ)*?8fx6MfZ(ONa}Y{WOv|CC-ftCoMIA;> zT`8s;Asj4hLrdX(i{12WR_-M=Y4@)jJZMTQIb}x__M+od#2fR*3hf&FB0J(n?G|Z& z7}2p}F|uKo(a$?CC@yDliuunpuYs4=Qf;$QA)lTee{t{vz#HI)QN2 zWa!-{ZAoe@YqO$JH3fy{n_HdPg?b|;^&1t9Ql8juMTdr>jbq+*^xkfL9xVK7sS!es zC7VOVzDqx)u9;D!LYtLE6+$un91~O6IaYEQC}0;W83`-jK#Xvl`E>^d6V%coftHLd z&H;jPF*;f$pn2;z;uRh)?r%$iIKV%bxu0#2-|RaC9C4RfeplDQ%S*h|y`3E+y~r4Q zS;w9YJ6qqUA;RybI{jm`6EjzM83{}q8boNXl#p`)v*sR0Ip z!M_O|8=Lx%&~GW~uvg^dlws608d7Y1Egu9g_LeR*ZESEvJxfa1y&Hl<2Lf)E>Ah-k z65l(WW>>l3l;*aOj0oD3ZI=c$`iLfzV4o)5JC~d35l<^)=t&POE)RqH+n!{~Daop@ z9KPab55G(Fpgv8E2fBlelrwlbAlnUUI3#b*EfiGLCy%x>E`iL-`ucSOo`;9Z?VXzT zenFazX4d?f-X8DV8U0!XSLlE}XK*e>E_0AuLMqVmU5pvg{>1y`$DirjedNeP0XGNx zo~+H!f3LH`aZh2)ZUx;IWC>c8{q|3HE~2}YH8gl-9m&m+LYclge$V*!&{s0!wuVDyH+F z4fMHWBZ)Cb!BxNHQgYL(Tn#-!HfKl2EV!dd)+9tYm9$WJ-SMYkf06ElSx6h$crxnh zvXS=f(2~Au$lv|_`_J#+At7x7#A$s)*a|8tW-KxC)Pu58Ttc{m!^08nU(Ks`P;NK* zlcCc04kU{DyPR7~lko=KnUOvs(ebZdCUeJ3YRD+dt3V(c3h4!TdHK0O;!!9XU9@rv z#5hKZ60|TdB*&g>*X&laB-?oN z`^0+{`yM@uHUo0uH^nx>^2pdW5#P;kkKgkCOTv8RRRsGB zN_qt%bTVJ5h;m0Z3g&2h(=Zt4KcUIz$_bMlHCG?(5^z1HBhW#AW9(56V{iC2up;rrX1;)RT^qK`^I z{CTxmJD6%!;tO}JLOSU6A|!zg0>CI(kd%nXV`OBbsh1HQ6ylL+XlTD~=I=6PI~|IOudvg&0XoCyJ)=jovsv zE_3roj42wmWlj-bQ&9#?6%u-PIJ?V6I`-Tb^e`D17;tetv$UA-SWS)$;9SL?VuTF+$Ug&2ldF&H7SIMxWE+7SHXijkSb1GH@-{ zBsF|i`$--5dzs0LWx#^3PJkTU(d?D@1~C?Tx|XS;vhvA%&^V>pV+N@g5gk;PurFUW zM+!rz0roxE+id^yCwZq>G3lE#2dnwiPvc=TC;{g&D3?v9N=-ScY?cLV*m-y~Rm4qA zP3zoTjU4T&;?Q%C7!^f-aC375&i|G~m{f~;|C}g&AGJ4PC7VEBUOnr31un%iTPf67 zD|eGEUN@w)^5ksj%(7uvP<7s0;80jyg%*vv9Omcda*>gdA)*i@_TZxLt`T}V)x17Zx%Ur$LfL(~wY5lI@^SsdjH0=uM>VF{8JC zu`ko19dZ}aC;vcCFANJsRz9)6E7i)ZF<|G32C;3ox~GujKB|AP0?t^DagKJCdb>g8 zqua__Z0CO)hknSQ(>~ydySkn3F)2Ejo0&k`3LmOoPoO~PGjAoCz z*Gx-?@-A}w3iymnzI|xS@(%Qka{A!+hpKBLuFBe;C`6Q5#Zjk30Auji&rz&dJJ!km zR!bbL$VID@ZzRJE-TY=yU;Z!grsp;N}~As$VfynMltI(ac&U?*;UmfCo__go^Q_*-0p`i0bk$A5j~P60siJM zQdO+V897|Rs?MtdY5hjwt&u)DNEOtijI>lFG6&!M{8nb|=(c)g5sqB_q1otQKY@HeRyg+o+-tbao{rQrhiS*Kk_3r;c~Ux2)KRzJe>+85ymlx$+2D zBf;jvRnrT_DxZ7)?m5>1feiv-Em5g49;Uy&pUdk|h7zMYE&1Uv{;nw{4q?XbL0EZI z!{Qu>X}wB0IaUM1yOQ1ljTM5`(daux0wDD+b-CWVaQGN4$ zt4PJb9bU`A-EWj4E|ra)9c)>>6NWjo3pX_rf|`)p$B!?nXg?1^1LuqJxq7vo3XN?PgpH;}tG{--k%>GB#t(Dp$VXn|*7GZubS`DWFpS z(t)RxVWPxt$FmwWeVMa1>>!sM0I@zEJ7N*7SKqPkgVZYT~e+&?2W_=8l=!< z)Z46#gOt7iykqZx@w%Ie!Rzh*VU{#fCDHU9&)JYHDnJ zq~qc`Slk8JuEm9gYM>+ont8IFbP&o+C@ivdL)A*pq;_2={YGbS#m72kH3!(I<@Q?| zH>cU+cfL664X5}DaWaoXWxJLFb0~FGj3v5E8I$Q4vs;FhO-oS#mc0DE4-_J41Z4TZ zxhNUO4$Ib!VY#pX9FX^yFN7T7<3$EYi}{Kgj$!&7RttuEZKyeaJZJ=J?R5ZN6Vl34ie6)JALpsePA*h9LP1Wk#IH z;>3@~g-4yZi84N=ExJQ1rZ5VVK`ME5=T_Lad8-{s16fb)Fg5y=b`re`u+H&&m=uz+ zn0SMOgTQ)~N2@>IED?G^E>XFY9z)K|!a}c6y#Rnyl24Omtnh-c*c#bW8alcV;mb4r zu<&peDbI!N*@n>0Od(dl`o?q$g-BD-eTSb649IDTD=Ry?)+C+C#ITxc;d}|i!gF+V zWWRstNB<7IM}nl5Rw~CAdrmQVw#Ga;`#I8h_zTZ0 zSCe$K)2D(-t^MBG!#5}5J}`3xC`>8Q1tVK9ah%rSew{-T{0Zz|aeK5oJC=Mef!RXT zIxp9I)#M2_rx-8&%a`*Wh?k=7Mf#oTlF_mClcnL+&_sTJ*6?AhlgrRR~Uhd*R z6%`cZ<>YSRO=)>92-cCRCgTZVG11uXjEB6MoobT;hYc&vcSt?z?eG2fm*b{P6v!DI)m8W5pb$Uqt%Io;FP1Jvl)s&W& z{;iQGe+$YMJ~3{o{Z@Q-HZZqA#@>_< zPomm&8Eb&CgYOE6@1-Aq^Q1exks{dvu>q-Sg2+Is#2QXdy*W5Eq@Z}E5~5b;#xEy_ zIY^YXNkLE!B4C}w?wTAO`OabSh+c^bP$JD{bMn+GevXRRPuWk`3;>%1#ZBrmd?^E5 zdUnb_Y`xzKXZtrLhE||b3q$ejGAlOGWQ^o#IBMv z8jSOMgQw!GS|geU(hMCHRoY!b*VOD8aDU~7y{bUoV~olzE?&1+Op~V6*4BnXpXiD*Wm|Ip!FEgWH0ey&1$|Gm4v&;k zHcZSW$#`?xM@-D;T{>?&9g-Km{=)_6?-lA)7#y(%S;(!4NlJ1%|522vO`jVFnXH?w zqDh+#zF<0MRiWaZ)A%6S9GGCEmbgIhoKEDumsRL=fOm_m>>_}#!CT^|dB#g;DG!!V z|3KN3Q_+b(vsOF$MQw(;gYs;v#*P{Mq;nIb8l4;!OQ_!~(3qrv?)H0|hxJTm)ju$h z+u1@=5~T_ch^AOL5wVjA-}_Q(r+(P1^bHZm-mH`bcf=O(CNE1{v{7D%L!VoGVzZ2% zH?5i?SU8n2N-ckT(6GLq)b-*VWpi4GK{c~qaRZK%i2U^Nu2BqpLoiEI5-3Wf4iO=1&ZCmlYq@Q>^@%r9Vlj@L;a z@x4~dUZ>b`IF~N>^K&GtyZG@59-^G&|w=V zHkZ}r2ckUlZ{qB}B|8ieBVME71vLM6bS)z}eZH7Dlk2J8wA3wsG4>nO9@zeQ3K=w% z^m&8BY?Mf2>-6zB*4i+&^qr%<1DOYg=Psd0SzaMlbE)O@)iJMW=-D-2#4_jzNlT+K zmzs=P&HVDfc1A?T!^FWUb2_-KBoW}2CwG(j7mLT%g+iLNOGF#hR*`=Bn?)z*&PYq>r5Yf*rN%IL3(;kqaGHm-_|Pax7-*!dZwqZ zMh$RiHL8yn+GKAAKhwRu`+yI}lKsDCd`I??ke*@qHpR+OFHH#P=*YPn-cmHdSw-e-87|6A3oH!ELub0%W0)c4eVJ0!v^)kZJh% zhI6+yW$F@0WN(006Ai2?CZIf9Y?mKk12&b}+1Y`_^$+ukxk`lqYwquW`Q7Lm8*+V4^fhFnoh&y=wJUua1O#?0>_G zg))ix6gXD0(t#Z#GfOrjJTx>{^(a7zmWbWPaLpf>s1hYJ>K4O|`1&xwv`@I5ZGe`Q zOQ1jJSDCc}^kcVmDFxuc`}YXQ9i5%(ARBQViPy~sa(KNzZl@^#W=o#q8BZo|3iun> z*Eg|XJHz_%-C58rQx+Nd912*N{e$7@chhe~?G^k5NwEmLcK9 zL1IJ$ZG^^{ZI;or&H=zSB7%m7hC*U)j^sJ6@2H?^={owCICK`rBrq^)l#MQa7wx+7C?i&0$YuJzp^9159tDvBv zX^v(GU=dOQ`@jm6YdGib-&L`}j!5KF0(xacguxr8f#KmY#y@-6k8_0PUk6)+K8>+T z%-|H(3c~Pz7p3N-BT+z#DJI_hFlJDaSb|*E!eSeA<|3NC+3cCQy9WdX`T0hsQWg0+OqmvqchFG#BR%o+_k-rpw2O6oZGKqPyKKY4 z)vnhW%{)7+b#Zo-G1J1ymUj{h?s*5a5V$NwWn}d^z~dxPanvjK?^USLuVXQ;@>~{v zyf{S$n-Dn0`A|&UY;(%=9qcxMTdos$4;<$MhHFA@vcq|l55P@@9i(|%iRG!A!zg$o zFDr7Ak_wZvD?vEU{P80-^PBcZ&!j1B1`fhQYa%hMx_osEyyZ+kq{9!ruRuKsNRZT2 zfpT-S#J5GGxqok#y{rT0QNzm=L^TdtZtnb{BeV1G+z<*tnGwBde)}Y5jXDdnU|(M(`^Os0{zYsr^tRQeeD%fu z?VbL2GP6A)qPF&UmnBS%;s3lSTHT9I9ykOM< z77`MvKD{<6sXD!uH>Q+RFjSWhX`~PK@p+WTG6R~)aNgCrU%44{Er6=y)(p%OM{^b0 z3wQ(4xY}mj(npv{)e{Rp#YWRGfSVS0{$}T8ArJt=qmNn_cOPSr z-@kwV7I){Ud6#?l%pE6)4a-q0YfCAbri_~GG7M?9J3lHaDheXzahsiIH9bwLt*vzo zlA}gOLXyjpqs0Gvihm8}H`Lhi(PF2eN-xJb3WbczVgK55@vq^$`k*2730MG%$`RZ|!29lCp072E~`(l_&=L`;v6u~L*Uf4{zotbJ|%1YQa z`pg!;0YcfJqGplUD+Y!_aQ`JGmD}5IB06lBrMtkn(qkM2#GD)8DljM{ks8cu9jWsS zt}gH09<@1}T%3N{DSUR?R@ShWyAB`(nDJ!EmAaflC<@ExaK+;G5vNEDx9q zN87t^RS}D>2<$e%x0*EvY)3p>`5+A7NjYO7Rg_r+muZ#VMtbva&${#Nh9%&tE)w&W z6vzP0J!ws#TjOwTI3nBt*d~5Ey|zxfzcxP~lA!tPcCV?lAbHJdiC&?(M&*N&dob*# zP?+$tx7-YAEgV~y*07t#qr31+lqA|}6H%!J;VyPmX*i3iE zW7|yrT&zY<%(%e5QwCUQh$AQdwaLNt}^%9OD zJH{wlM#k@;EI*;Us|Av}{nnJkPSDuN$q64E?8qz%ZthFKSMVH)6aJm_Petk{?^`XC zljf^Xh_K>ZXBxAyqNup;VW9K5TahYn)X?kMf!BDCYWm$zkds91xW#d5GeMwr6O5AlzfJXRSx3yFyH^v&aj%*tp zk+0d5P*@pD#bw&CccSBBSc;P<3JQDyNY3m2@y4k00^IdP-(NkucvVvHIkMy-oR9ez z=&p4;-$4ox(kWD;yw5UCv(Rn3R;z^&;nS)AHxC2V@&t)w%gVr%jwOnk@yi!7TX`Xv zZSR^mc23xQq-c`#S!?IR$?$t0imWLq{o**yUkAl9u9OzRE!pGH+t_L)|Hmw~#fpuO z^CLo*w%WMBb*=|v()8?-i)%ENZ@oL3VmirF3KbL=GYb~uP<(x?{T-OefFtiu5ydlq zws@WvQ;&!I_l#NPTB_vyjSLM3)(#Ag5D^i@()xfqOHo?7_4XLY(YS*GO6^&>F6Q-5 z*oXXAZp)aT|5i)?3%)v=A7p(tN$T(Ijik-F`okyF({?h@X|93~n*(l0-5$P(l7^}w{sdmAW{NgJz!3Gvoj z6bZSh0xk5PfgT4ePDn`Hj=Q&>mhx!Z@?lAzrsVxQNHuS}4Xt9@?>fYr7e>I{U2&Vh zkpMDnqBP}%*%7elX*kR_DWns!Sv9KLPYNOf=WgrEAg43)a;^G>wh$w9?}kF#wISda zm4R0~2En|&Wj%iq2WS>*zqhglcBh-q3uv0E;puMymNTFEchEo42LS54{iDAJuo?R_ z?n_cq4L~9RZfayi3G{01F0_G`@ZXD8bSlNd1;fA;zE}SP_5|njqm4$gzpmT({ev1A38Cn(e1ukNU)3*Il0C=f%p9hk&jq zQBT123n~o7FDxv8Kqq_Ui_zk|zf3~QpEC&D-Jr&~h20VA|BFnQ_4C7EDMh@)F7T6s zo?)k*CLGm-sK50~c0qyp)HMMtr_O0j{+g|VLr)AkZ8x4*PY;!C13tk?KddJF&#(}3wDuZ$(maIDy9;BvjF z`!;px4a?Bu9>{cje(73CX7xbt1ZcN1{Gorf+Yzskv!$m!lmg>AjBER)^%$kAq1hv5 zcK{XwIBat|?`f%DyA5Y|M*8LHan#SByQfZ`J!YV@Dqmr61?rwBc}en@DlQ%aCJrc2 zzZT$d*>|bC^FXZ!LMLv3&<)hI7`63zPl@gu(qF%oFg$LOr+TKGrU~mCc@g9zi%N*` z_8<^5N;bBF1Ms+<Ez#s`Rq3Fdt5R-$RU_TA$nh5(ygJ0D?)VpDqx z0$Ih2MN$CC0IEK%)_%&d%+cM&CAKG#@g)`s>=5iiZuiS`pich0|X ztr&F8M{C2cnM({zOlZTHfOmk@hKS87l=_?JL*(R!Ai@S@ufL(yLQm~~n|r0?<(Xy6 zH}s;JRfoO2y$>=XBjdaN&ss~JemKsag-Z?aYp9t76zdnuDe23{LGH9lf0SkI-0)B| z4D^{YgRS6%qs16HyR5!!4lFGurkcuc)NblkR;2=bQ2FKokPPH-E$)MuYa2oE|+S)$kclEz) zZEXe3)Szv$`e11Mb{n@>>_&XO`wPqCwk=4fCi0)c5C6Z=k>~E-yQlo2-ZEBnao&op zW@{hAR{*M67wOfgadA3Mi>;$`@7^bWp(`q#>-D*YH5p$aQz5|E9wkn%cnoFI(h9D1 zb3;7ZDvYEXSjjoud(!jpi&3on{#XO6rQ*g=6a|RZZH+1II(dgS{l$g^_T_+oBd{wjGf#rB_K#4I(42 zo|98F5AJX)@Sj-FJ2xZi2?nQi*@i8TrK(rA zP$>_c0S610==sdnRz~`pOu2SJGuACDHbRuD$xRz}hhX6a>^M$4FLid%Y7`R}SL1f^ z@bJUQ=_$124yZ6aJUlw@k=XX#P@)fRnQa>;MQ*f8pMDXep5YdQg>S#rNgHst>~=yC zs2;E^{z_Mr_K6gxT}p*8z*&I#%MWSfx_+J>8EK`j#~}j8Lel>dD0{Hd97XrPJ>CES z#-m7+*sz*N)+Pv4uv2%fI-Zfg+qSD^lg_4(Ha~WC^o8c2U%!WE7)g zz1L$TSp9|_F_4O2I2x&4#sxKppfe*)(k}{#=u?rw$ z3qT;~2R-Hoz&z##M8Dg!m0Y6pVt;QB*lnTG>wtlaH;;^gXK^muRaFXn>2*Nzo=bn; zx+jOe&`7T#PW8hmG6u=p4C#xWU=!w{PyimY?drhy@83bCkmSH(vn)Mi zsaj#R2pVQVAB~)fN~PH(dvrJi^gWG%T-BQyvA6TPomwS?qrmrGI)0|FMPJl$3 z;Cjf`DJ?HgmrMQP#fw+38i$9?0m}titF8@IC!ocXjGTOPs-~*EeBs*4=5aLTtf{K$ z3A&RlfkH0({rvwVZl4)f?#oH6#WET7d5|NX9juAP0dfC*P8!-Va7chYIl|YVLlitd ziKP+V`)^3wJ}feUh+ik;JdzZz6WO)&1gQd&N%1!v=6oq&oZ(?%g5$Fd-m=<&R9FP- zKVGN<2OpW>{j?(RZjwbZkbk8grZn3QtA9`qzMF*BU^oWE$$4PbswoB8;j?uw)IeBHk`9`m-XtBA^83X8nX?GoHJzSBmaP=snQffaDyj z)Y!HVkEGn+vCLN3sB7{=d1Jr#FJvl<6fGF;F9p3)-l)X-@yqgxN7J%pR;Cm!mIn5a z7o1fTOibd26lAt3bg({s%|?OozI_Y1PLVtMM^?iQfZKU=?)PDB&3nD5NQ#R?tJO) zP!Nztx)JFTknVH8z>3*3v-VoE&pv1UHM8b3z#G5kx#PONSJ_@&x?-v;tA#4X)=BGXc31 zaN^XNJPSmqIoOR@$RZl`b0e5bj|TR;Cl+=Bz5=vmgjj&At+{k>kCm5~=9VtD&lOK0 z?!|(>g$dk1A=lG2LPGgnxDyGFgde`@du+u?Y}FacYFt%ay}hx>pw15)3L!OgZ!k?q zaXkH=n#nfwUWB3n`m3Bo0u4F37B#=P_Zlm+gTO*CXpJm4AI(jhp^lTr$2qr{$02fJ zF&%u{&?SKP=Td8q297P#acby6Qlk3Sw^z*6i*)KmOR(tTKY)FJL_{n13JbBtRD^B1 zRwWq?jYoqMY78!xZeEK=>Er852pbk?)Pj@fw*l01yq|w?KOnf*TSL~+>1+*!b)`+) zN0NFC3=Gi2bb;qo$kmlX$Q9=l;l(vP&%T+gs1;?JAnS$DwtFH9@^)NEM)224^I%|L zq!G*9Z|~`0;Nu%{!jj&N59}acu;EHj)U>Ow-J-_vfDMm$4_(Hs(?wT*m-9`W(y`N9 zeQxX~OPuy!r{$$@Puz1j8ZkVF3V;HkBC7n0Nh-~QdAzWJW@faYGiPtW=%=sp(T)vGJ=}-n-wL|zG{_Er%15D5RFUO|lcs1%l+=}6l0^Nv zVRoA)b%36lTOlr!!S^jb{-lRJ{;B7DO}|YkI8Fb;lme?%5P)@g{m((5qw#GMqyQ0j z{Q)9yxS>Wv%TOiWppL`!_7>uF@~(ek?LL1CS#v!*>=A($U8}Nvas8v9oCh$wl+xr*nGFD&a8hGoGMN$BuIGz9GqkXQikmiiMJLZO-7@AK!+@Lqt&8y-M)`kokpyP%~F ztk(leD2&au098bNv2<$^nHRaYgL%9XxL|4h--_k33R2V3b^*hIQ}{ZV@?GOZKoP7L zfG{A23scc;dt2xSzd|7)^QAlj#7uqp#_X(@NOmXONZHH=3L-Q(t;m5U6vaT7SWr-) zRaue8T{d;7Q4GAk2~W}89x8N)!pWwIG_D*tGf%P+cqwH2!0>WTiTgg zV^f>!c2=BGieX{wdi=B!J3YJ8af#PKp4P$lEGA4{X<(RE2u&LHR`bL|4 zjXCvyVQ#MWe|>H~-Nb1M=grr)WsS4G9xc4)x?LVk0g*4xpC_wu&T0R?ElGI6vr(e| zTU&PZPOZqBg`rZn6a$ITf}s4ZVkWpFF4Qo_IDwL&eLc*qJIYvFZg93ceE{Y{uUk)X zgPf@1z&WnXa$4pR?i@_e`29ffsgSlnr5R}!U+zNbW;Dp7QofR{ZPWcW9M74!*l(3?omn z9|S56AnKGO@fegMV9e0_Wy?}F>cNe9>6Vh}uDjP`!QMvGdd09|lQ@tl1S zm$7kny}aKYmfOfwCYm%)O@kcebfP+Wbk}|nQ?}^>B971qf%~%aFL&SK z??OUC45Z2NEV*5L22NtUIn!;L>|=|>>u76()l};b%uAPm5y5v*mKhy=Os2@ws4Ito zc|Y#4xI1;MX7%U`XkPy>z*oO7Z@XfmnEHt*am60#Vm(yMo!ebBLk%S0{kdR``^%q< z%|F)6O#ioI^P+R8vH9G)zce-nEA;W${4ZTdU;9J=j_8++9GNKj#r_Tl2M0GdP*a)p zb3-)9EQ)s*T@FgyG|TL=H8b)1he~ZLXA;Abb(lg>`_JQsSeTgovLXvxw;COro4*0M z{(JO@`!9I8X&D&Ui|0RiMZ{HPJ8roJL?@5hl)|UolfE+vV^pI(K~Oego?C*cdirDp zsIH{>c(jo6=%jpGdJ`~fQXY5&f)yYc)sckN?Nc=rs+yps3#N7v))J(i5Y_rDG`m>L3ASVftz9JsGO&n!R7PaamER=eGLhK?O*lfq?2p5(;3@2GziT zPEhk9?J*yvA8Z`pA-tCl_9|Uk!neLb2WOhS`>C!MJo~uUuGQ1SyPm+k1$DjJssUj4 z4&a_T7VMB(bd~+7^a^nw@H7q({{YvQw9o(M?VJdLI-h)8`?@x5YC%( z=r`GY0}FPb=uLUoopFC$tN9)+mp!24Ef$U0_>5_~?5zQKQkHV<9J8EEINt$sbJH$c z`3d9IVMoiauvSF6442ixm5Iaxkl!AyVp?zM#?*;Z+pQ5?LBctSCm(i<=f&e|+W8Sc zOHhp&1iN69rEj006Ol?{sx*ZRABAzq{8_yS5{( zIfpzMD&%El$>yJ}G_z0N&iewp{%z4Y?h$I!vZvoA*@pzr)_(ph!?-`{M#>Awj5UTo zSr?e&mT+oHNZXrDXI&3U6E|Sw#E8LQ4R2%cJI{VG=Wx{>I_cKtv$_gn7!arem8CMR1dgRrJ);PeP01@DRA3pcaFWF3*7*rjUFBf6_FD-Rur2_pZ#x;^ z-s%;nPoU`En_%d{$Hk@7EGx>+e!9Inqfug|W3o|op;c~J4X83Aq)zdQsX!mrS)|`4 z-UeSmV1r`%c0eq{>8~r2->0T1!A+({uThehmi7duDFF${gU{|`P|jcO&kOQMEiNuT zYGgB{ltlib(tWR}fVxWd=@XEQ%G<}~2^(e=6$Mw}=0iz;5nz;$q3j6 z52&MK=c>pHe{siv9|QyhuTNNcz`GMrfX_5gN17R(Rbn=>4_q&wt9M@VPlA9MgP3y_ ztW60-TqgZ2p;Ni7yhr;abL-jZ7i}VR7kpM{K77Fqm{3yW5X6v`;_`1O*14j)7{+`r z?y`w*eOku=x^!=fT#9b#X~tGbTlt_knLO|Tjm|{F9T;hHb59nerP{eFYIh9Ty4=p4S8)H;8N_uWj-^m& z_v5}Ebv55+J7Z48h~AWvx=`t&X_lLBx?m9Kj4S@|6*svQkCjAICl^9b>ggoN-b+`4 zk5T;UuCMWjBbX6+)K4$I%jj&D|RPE!ff`# zhYMR@Q)@iCge``Hm#bjgV$Wu>{Q@xp0|{1>L#r$OPUNhv7g|O;?PO z$>X#jb^QpEco~9l9tXU&`Qh?`(hXRaT9p`fnEH5oCm_rAV6+(@mna=Yf{TkpAOVr2 zlda6mbOw`<&1;N96+m0eeTy*`y8Qh7s;ZfId$5}_0PXfc(I<*4y2%PswB5^)^ zir$BH=BEz3$BznWP!ZjgVzF}U`4ktMiy5w*PtKfRpv}+!HZv+MugJNhw(2{RKO2YD z{8GiTpAJlSfIO&=URW++*@A@a;0K0-$J?t8k@l0j{~_hJ2tjzN4s@*cNffv za0!Wqy3BQxBGI?2E--L!jbC9lXo=>Vv_J1=d#3O#SLTOO7J^FDz?W5n)S<|p&I+c3 zF!H;RepFU{?2+?K6S1KHHYv>hJt&_;T&KS^IBCa*p)w!WNv4t)0cf+Ke6b}!UMV-4mugS>ZGIOpn zah^xSO~}g9GcdFgvL0MbA%ElM1{!l2R^R*~SeV~69V`N$1P?vER8oh%*?pX*unpxX zUMCo*I*;-z7K!IOQ_`X8HLEkkh5TPi2UXNOB@;coVsykb0%dhHRyqA^j3zh|5mcSL z7PJ-t@)$Vf&(F#$xIW0Hqb>7_lHYkxykpUd#*=>vJh!Fa*uQYXn!QUT2Ci=vDJwQAwrZt2Y1a|jOoOp z-Wf2bEzq0;BWw3#+^2>O(?1X)f(0&WlKWT}4u3h?bI*>ir^qNL5NCg>sc8_1y}3Mt z&CW0tFKii?p7ZYLct25nSHC$`F0j{(=nAs^wIT?o$9eO5EbHyw$3o zo83so%d1I~uoC&SI73+#%7iEIktYLEvmQ{Pv$i{j`=aQM*`gO&vDw+fM%j16xv$*u zm!H0fzB;O6j~cgN>dzCcdBe%x3(LEileu*+@q5@?8Ju@-?SH zw&8n55gye34R*^)u*xh@D_ZIUW7paodlp|qPmfY6#<>d@;`+^2zS&kdAHJj0d8oq^ ztoMSv{~#fmDsp>g^a`G`Q&%IP`(ViR-dU}6qh)FgB z8h!YzXyq&X#S>U6v%UbqDd@w82(vq#!F&hQ=+j`|k&=rv1 zV@!kt#1NPt7~8NUp_b-m=5I4ILv#A##r%PSIP7wu z#ozsGbJQ)Pcrp|OU$DjsW9kJ9rt2pbX((Pjy~OvIeGRA{JHb2*grIbsoS}+cdHUx? znB`=bp+=8?ESQ}IO2EYP$to?$h0Mp>h$GcYS1SwHO}{~TygCJOOoVOOHk>w)xlM8*jS=X zU(N7A*Rcz3=M!{UvI?wDGon&pVjsI1Yiih^XS^#lG3{eOcqkH;+J3r#blG1i25c@c z#==gL1&$@ZwFSg10cLKW#9B3~K20L#b>whO2K-=!*$A)4TgY4>Vj3?2HIw~WxU+X& zVSYfo;=gW!v@yt5HjFeKdQWv-_P*KYw^*P>NNTuhU7&0UNV&j9sskCK1Ye$KR??!P zOFxDHk_h@B5%0N-QlFR8F#>MD`klU!&;aGqq$l@??lY)im6RyuZ@hYW5`1$00RcAy zgc*n?c(zX`ql)PVq|}VQSMNB2oPCPRkT&^CvH9ph+&$Vrai|xhw4$6XXRV}cgS zHph>X&1z*P;;ckr<0$`0%pkuY!qJ8mnZtKE)o zl1SZd)Y|7?XlO{`TOU_AJVzf>5^t06iwm1(o46=u^y);xwy0{#OmnG!DM^dOZY(|v z^t)QlD{+!sE>epF22}y{JZIf+qI-&tKU>J}IdiED3@@-T{?UT7 z3o5YVt!&Z7KW@!HbS_0ZcNezcxVYfchy@Q*b+tkBvv=)SYd~;3pHMUvxnm$GD5$JF zeZ!Yq!lALT5qA4@x9I3hz*TJJ0sFR*y#|(BhlqN2yuNLo7eKH2^yxl4aY@TS>xj?n z>ecge|LCeP;z9VANf$-H*>_M$Q|el+Tx09*O2k^(X zMDjR{RvD;t#BoK@Q&Dk@=mLE?9be1wg%nNr)8+3J&2#>%qY@@E3- z_2h|+_oo9u*O?NW-_iB{sA>i=c)I$lXJpCR(_>=-3L>gB#$4i^@=g(48!^C^269ca zi+u_ey-Lm|48;=dnxbzQKCPreJq%X-F!RGk4)!@@u{?Yn%qD8cRPx6fxgzhNbH?MS zL^jLq+$6Am@7W}@RCn%$IXw4t+bE+Fs$K4M9QPBU=4YN3J<=ja3-HO;>iEwO%zPP^ zi^iCU9h0x9z-G5BQZMU!!bD(ft>Ck*Iz034El1&7r4=ckJMo`rUwOpRk+ji>ip|Js znJJf8QMX@5{fYO^cE-@YMr(6EiX?dcXSML3)xTA#6sRAEhDJZEaQV+{IQU6%XaB7Y zr}gM(d?Pmp$xoU9x?<{GpAIAWp$;6~N7hb(T_!;|kttt$fDuEL9%3DHy zXIr(lRdpR5%j9WzEGNA-)PuA(ehitF%-k{xmPmxkVqky|oQy!!mKlS77=`dX`bu*6 z`VgK2p441AURZTKGZwR$YfJP!(#XJ|pfL4y?ON4tcEB(lY_%S2%p|2&?)>1|-kgr} zy?B-JTfu;-K~M|mAb*t1(R)OsAwPZ(WnWzO@Iddj`EAZiw=P1BgPzWIFBK!8KE8Pe zc8*9s$X7C|Jnl}~JdQV)|A-FRyF2UrJu&GWLT9PR7qTNX5YSEGj3+a0X1eT!wSNPx z^w1AJWoL<_`k0=-pe{`XQy=*Aiw9L>U}n}idi&E$j5N9K>oELY2|vfff7uSpl!Zq) zd)sTJJ3mSxyCd0zg}|UGn0gf!tW6PIB5_~aUc)K;41`UPxU;7956llaI;qSaz%koG z%MKiKsBuT<4{Ka(0!Ej8Ik24RX7_3{0t7o2-Uqn@0G}&?)s2ua4uKSZ@Bm37Iw2VP z;Z~67%>X5se4obH*#^$=mj2$Bl=vQ$@grF}0tpCYv%VT=gP{OW9)KDaq{!Uh@4y2D zlqR4}VhY4M0FROb<6R6A?%)*9{9Vf8P%e6<$js!^LyBRnF=3|X0(d> z!ORA16j3l*9tF4we4B#XW)>F@Ry$UZ*?RTw7b{1C0S{|EE3X3>=FnQ{P!?)R%Bj7L z1Bzd`8{|QhY%mhA`Cmu1S+^UM0A;d1zvaFi7aMC@Vu)>xVhPo>{GpsSprs@R{g>9h zg%ccj-)lSx2?>#ceF+cnyKSJ4a1<2$47DTg_VkT>)x9q_FfZ&8)qNF%ZL)@nidbc} zG~eD$9Mx9$oG5krq!FE&_5{dIfbDto?V+|dZAKO^VlLsU0&-t>hZ#;EerbriyJX2O zV#;m1O=Cu8SOhCzB#2MyhYNPnNru^Yk06PLmY+NnQt0~lRm|0`MeXM9!U^UdVd6mVzo0=s0fqsC(dyT_9I5{=-3i_LWge|9~ zr)yL=-em048+Slj8LeSPjaX)-bNs*pUc-9|iiChUnCs-DR8VxlqZOYi zEGw(36OnWY*h~H_GUJmI&KRAN5-N4y8#ZYNKc0}fl)bbV13yd~ASMio3>pg1C7H@z+C(2{wy=OGps$-KOs{3u)O1oceH%bc7BbT=eTo1p>X zF8lY|&C{8_B~uyqZ%}T#)rh8ESm?@EAoELEX%=_{Q~C;kJ1A!Euewu`;B$hxhiBl6 zyzlli0pJ6!#Hp%>8-g26GJ@ys>6-R-M2yqs5>`KgM`lx5UHvu-0U;qcSWD69q{JyW z#C`cynE3djs&t^_H;x0~SwBr6`e>N=&Gwue3y-(MCqR-{^sT-Z>iu9!J}x33R7OYG z?2FC{P!Gtzj-S|Ds@6Y#L7HwEf4PMHb(ifytrKZ?i-_J&v@Fv#x(a^}pt>WLtsoue zMajAe@Bc5 z-vSZ$b=pbkW(^&U;q03AaCv}i>s`$BtgQ|aSBH}>TNDm`IgjSmFP;(bB=PV(s$1(< zd$R{8OW*tZgZ~j(HDkX~YZ$}K%xsKG3o!XW$o540@C)2FYCVnq>+)P_KC3m9RcCaC zox#pzvx5N>lKXmrTEbAd^))eqFKJ_eSw}o5@|7UAtB?UzJPVWKra29wrmk)Sj`r+q z+2C0?agFWl>`c<>`S^TUU27Aw078$6(?nwTEfXGIs)38ZA%?wldYVCvhct%|gzvZ@ z7-0zMH16kSD1{o_!f2g<&zYMd0i@OK1kM{T>jwwb0RULs2`N2NLk(Y?cGhLjg>%_n zim(E;Ws{{O(v~4`^6}#8Oh;TSxkAbTo+zlrVy=pfyxlfz28m&oavE?3-7pA+NoRHd zL7cmW3pkZqc7h@zg}v6Gtg@MDhwWS9*6iB6mUTYFSAGQ00w1Yj_Xdp-&q@<>6(bEH zIz~)ZPizGWx83j>PUAX=IBDTtBm=l}ey1I@+;Fm=p2g?HXVCmkN5&Qvz4ZhTrVU@d z*uj(_m@>%uXFcT<*9`2!R%g4os$cP%4iuEz_cyh+jsSHC$oJsP?*!~S`UdTL2>+m@ zq~w9B)x-0+YW+vNHAZgYR!R%K-m{V9r|a~9wFNsXmh)vZx_}&8aArSwG7n3eqdj~P z!J!HJl30`b8!wC~8?ziKB?t1t^-g#3q>kHucd+VkEEELwlo9+AqR&Sn%SD`rgUkwg z6U0-0$iM#j4ac(vh*iKy{HeKe9+?P9RZ*PQv-6D{NUupKLtS|r-r?u4rT7A8ud1qQ zG9l~TJ8dm3zEL(lU{U{^jt3bnU526wZMq^M35lY*`uFsRg8JV_yb;bi5mHl5x4gAs zL$>;=DU!$SQ`g7ekSd_oxQQsv-Ox6yZDTZf*RE$Z^9P=aqu~Lv1NR80GOUkWW}Usc zfK~gkk?@?_s_!*seK^H&RQR^1$LQ4dzZheW{uH>5(n&#W`FEzccWd9B8GxkG;tkb~ zNl=H5Th#PuWeOaHSrvI$!PAPCM=F09qZ%Do>2~?>F-Ge@{~P$^cX8ZPR5^KLltU`v z=hNcw;VD<(ROe@EN$~4tI`5g_d1hz7IPp;^?jYdsvzs2w*p(BeUKG2Djg+_*MC-^J znw2H0#aH=iXG6IOZ+2B-XY2IiQxLON701tC-QeLt)7ZFVdj9Yacj@BgNB+Q=`_^ zZ+x%v#I$I)&CQ87ql1e{8p6Tht(Hl$Oioc4lXWV?iuQ}8z43ioeS zGf3`HfI*K3G$|>@*4B7xS4ykJ4Bzc9SaC!+%89+hzE0@}+WX+5BKkXDS7(Bp_>R7- zXhr8hO0RmmKs6#Gx+qUkYbu)Rac-%dW|KRvMM&*PYmW$S^zw=i#5pN1MelvQ04WbrL)Q0 z@;{oZJ?BHhPt^E46VEa|H^yx7a!Oyv2R%&Xp0_tCWUK;hgBYz3UQkUA_16gym zbp>$OYI3Zz3_Sov)}$K2#lx$utLw0VRFIjme8>cXIWNN9S9cPs1o)2{qqqHU4S_2{ z&s`9qqC$=5S#D4{`sRG6^ceA_y6$u}r4041ZKGr49)Wb@KD0^)5P{SXfCjXX${ZdCoHajyDl+4P&_b417#=-){eM3=EQ9uBRYC1}UkF)TB zUgO#BraQ`HTzC@Jl)#pnu_~c>@Ihw4pFT|H#L~aO(&goJf{}l^E42rPTM+Lkm#UO$ z`uMTl(KDu$ZgcUq%fZgb@Mil-_(67^SrWjhT>JgWsQ?lW(OP*WgnYM zX=uf%Nf14d(TZ_Kz}~(OW+!djF)=#TZkS0~8>4QGAT!*8Xn}S=Fp-LszPUs!z6TD9 zZ2IoIDbwxq`STM-vc$F*mo?DWC)Qv)J&A)p-NI#z!$RWKEW5qZyfN*z!w|9DPaB zqy#dWno&#HF>ENz9tBS+Tv7C{)gm9Iy2dtfPul(+IT0n^Q>J3`7X}@;@w)Eyz1q3` z2eu~*3ln4t4CmG1}yVxi2JiOxhAY`!K7V z^-X2A3GO}^O|_4JPUTo(--RTmeXR$B8B(Xbvb8%>ktd@M@!VJnyBt1pUy!QF>ph#> zJ3D7LcVOIsFfcUiYu#}k-XBv;?XsvqGBGn7I<)fG+Cq5%{abQ!FhuI{z*0DRVX)W| zg4jqMmnwTQe+(82+{EUAo&pk;tZIR?11;~zQrkM8h&<@~W~^`~gu7QOJjklwV8qoB z@i`B|1NiE zfS?c8yfO6SzRp;&WTLZ)#5{$z6sQr7Yh6mgNrLbUh#LhrPc}8B8D}=z!B~;%i~Z~i zN#?XaD94{#8#_Di50^VYmoN@xTY>4`)2*Kqz|KQa0qV!X)bO=PFnnn*wI;md%n_O_A;cV5?m+2Edm*T#w zeF|ZQQw;YJh4-6hr4i__ZLm%~Uw?T7YJziHJU-`L*13K~g%7=SY=vP4Xl?t)VH(Vn>rMiQQvJ6z`}4}kd>;+WVx)cBjOe3`HiSBGyoN+sf< z1%mOiQYPly$J`4FRO7=f&0&S}{rO=8XEFDGR%3>tEV1;&oLCVpt*t?La%yS=nOa(^ zkwd0Qzs!|41!AZ9`bs-HpE$axi?o$Qt{+Vm8m$yA<)&oF*AII6zb#2RD^<)_uyLKw z6`?Mxz-n%l*B~<79b&?!W^J7h$({~M;BAMZ5j>9=Zug)2(s=(MY zuU_ zWAR0&jojr`?%`TJCJ3?w-s>}`h-Uq`eqv*;5D7d;i}D6_2HuM-t;&7q!V)({7It?X zV?c2j*9jg?mr03XQisGNq=uC~4ACvZA5U*)yb=*IAmzw564DoM{rLLzWi37x!>4-GByi)5xKzqc-?gH0^RPxmYl*_`LDOx6!_ZpTSSP{?s)6nR+?6t0?*4^!aKFEO zyHxFFdHh)sx}!i_|7nk>=Rz-kYJQ+_5ww48k69pUl3#nJoPS>(62H#03IFCK>V8W5 zKLCSoh9)E=1g-B~ZU&>0nrTQa{fsV5NLGAd<_hsfoknYLupGah0c-f~{jVZd`ZLBf z0Svx?4rXpRkUw@U{{{vh{}-SY^xv+i*|vWJ2LI?_>o;kBb`SQqz|Lvb{ zvgn$L=)4|65{P(~lb6TA#)je8Qo5Q;d?ZMsQ?5a@FJv!z)O?468qs^j!wt5qMIb&% zzHh$>5rJz`q7Kr}7^SP`yJ)>9$2oq)xJ`nIHt2h7jV_o1G1q_Wsa!pPz%kI}!jdGZ zW9!(;+*xe5TuB|!-e*`Ql?2nYsgzXXP>%0lWb>=csy8? z4gPG_5Q(Er!2W!O&%Z{K$)9^-6n}^#m$^Yh(_U9c35klPrWuzHlI0FLEZduaA#ck# zqOe?GCgLz(0!w5@ax$C;22o0>UC>>>CU98a6;$((?oqdt1Qb6?Y;wY4eZH?M>tFR~ zINM!D*5EmVk1R+l1LNE|XwecGr$8e^bg8aA;Q{bf?$|9w14G_@8#YT57WR&gL~CHK z>j)Y zFXB9Tq;%0rOoiFM_3`YVhsV5OFT4Eg7InaPkCc=bad8T~KY>r#u?Z^}S(A4syTAcn z=1&A64NL>D@iAiy1A;1*6(WEWP?mu$s^PK;h;+@p8Tj9NKo-Pm+JbBg!?+zPe}{pChoNi1*pZ|y9U@IpG0YP$R>_3ZCgbjG*vIy`dmEn)H)_mxAZ z3ZpZz<7=TN>To_hSt10W(B(B!d4jknUXl`>mX=eclY(y5A0pr4U3AC!(_Gw-V&k?i z?)y4-+GqJ4tW6Z26ry>E;beoIK^uN(lci9yZ3>EYhmle#1U_45&9LTm&{~2l$)+_D z+2p^$;S)C<^r4#;ZYg^Dio84ta>J5I8z7Y9)B~aXDa`Hw&VQ4KXNXH05~16^G&aVa zyxv6yt;Y02uxrDS`QFHOcp2mkdFg3s(I)qvR~qEA0#W86=<}HytpCCTq(@O); zD*o=p-d;N?MYiupuMrDk9o(C1&v=|b`otwEiXr~U+IkIGsSWO{L9kJCSWg3RGoTkX zh`&(B~PmzP(0xOEMHNz&vmd!X2!A^g<1-rUCHQL|3rT+8`-; zA)M8i{~^zaOr3F_dUWNEcK5J`3T3lRccn|oljmd(F5cOn+EWLpIA=o)_V25_wQqRk zvNxv%%N2;Y5+()E01&eLbI4t5p$a~ibXnZw_4jZTET=)Wxd%mb_VW59ZxPP5K}K^5 z%6^2mkN8Vi*xoDxz7gaI3B0)&Q=OZW1A=QQ>Hz%}5~)$k`QAI=V6&Qqu6q_j2+Dvm zvsgU!11^9tMbQhFQ(jI9Tp(eL=8N#Vl*D)q2S?DYjl8w+YWJ#g1PZt#ziND^tIty> zlI6kIJivGaFameU^7soa3^&lb5r)U!T%wX}O2pRi__* z!gkF&zl27_iEhzKR4`oabE-XMUGPr$O4}v`%f5<<)X;=Qa!n0I+Cz>h&|dtWPswxq z9hCS-ZT5faEo@vkI=Rry{W4y{6Rqp5h!vFR^@Bc8OmC;KYn(Lu$o`2|!~yM{1%lrC zo{V}L_f2u^DEg->7E(qm?EN$se#7j%KxLN^BmVpBvVGv09%q-$75$a$vMH_)@AW|1 z3gIkIpWZoYIiFk3{JGeAaLpU?-tB-n&R+_n)XAo^YJ4!z?>KdG7lKVak49=%w@^wv z&oLMBC~=Ah^D`+XEMbzowcC~>0+4xlD&Pz%rwalj-o1MV@gCVD{$TdIe*O9J|CuTF z^Jmj}qw9E{XE2w$xK?H*ZpoI}yAU~l4g+J9qh-__ zF7u@b+hJ=+nk0cS?vX+|IqHqmuli_^_v?VR9NqQhHe5m_&}_|iK4t;#55%j?T5)=M zc)+ZK#7_InS_cHtMtS)9!s_?TtI=k5e7NsbITpjrD(;__BtZFfNC6n`7Z3nR-_j{+ zB|K)W!E7e|MNc21a5q|W;aa=3gp|V&oek(1pya^>1n6j+5cvT3aHxCNQH3&W@V;JE zJ%HJ5eM`$eNJ^X0=)HcYUH-GOIaI47T2NRv8R^&0M{`r+3K3EL^^VM6X8{s^4D1`d zeau%cuEEu81veP%nvt(j;`3SP>%!oaCd4?(~eL!lb3W8Y3s~0gK zYzNH6sL39|d)v0&HX|5QAdXw@WKOqP%lu8-tduat@$( z&fA*|vknlQA(Ra>^1{I~+&ik$zrD0xMJ2}6+&Uc}pNihlKtoHEm~!thG3G7d7=9V= zY-H&f@9=3-yc_BCc}hKsPdySj!zx`G2~Xmp*ZiCy1%-Vov<=Zq!aR^?5$KON?*l{9ewXARLrx)(z$^j_P3XpMsMVKdwBf(k)Q!_m$6#m8@NA606dO&-^a)u3N`*x`|-Gw4Dxu6RDJj{KrR&c9uaVqkd;9zQzC7Jl8)E>3@gZ(BaTbMR%*KYTiv-fZLYOOu zqk}_2Siv+K>Q=G#27~bT`PSd8uyhM%ll$4Ai-g^>O-#)gK+1;N3} zL7rf$u<^_tpPcl8?SEVJeNYoX&Z)f3K(S>VRDav>EpptRG4ind4N6GrjT*gxDuaqj zSXkK3fa><`*?v|X$Z>?-IZFC#*S*~pX5|5UDpWM~WQ_GQloIa>Hg+-=G4T-jWkh0n zdU}GKoI~S>bbio|qrb*^j&v5K{MBsz^(nv@{v)XbZ*K{ZA7v#7cpa}Ar>wEIufw?& zEyE6`4I{XR8y+@4aQR*2kc>h-p_IQ0OUY=W5s=lR9f|!t=MgDl47|*BH8n$49XG|b zSXuKy*j#lHd{EtBgfIuWhfJ6axON5Y^pWOIJelIOfdGqh4h5dZ-De9vNdIb4COoz= zo0^%G_yB?F(CBORL{=6Hm#!ym%j@Wt$dj#eT6p~*krQHOx?FX$Iqqbq*6Y#G(XB`& zcNslmGJN!?>oooIu_ADAmkwzn5LGLVE6(ChnU(tl5ff%EJBvGX;9UaD;?I?p)(|wc zt4w-dK*R{-Lp)p(HBx(EL?BMAfXp)Kc1p(#cx*!#HFEUs(CLGq7I+Lx{fArnX}Fq) zCtCVdpD-!tUBq}Wo8pB&7uyqZTamWzP9T5Gx?dPZ3Ef#A{V5q494`Bc?CWivOLLF> z14h8e(xuB^uG!lE^5usO>z6NIoXRZTnhe7Pk@&lJm$9&xA^wYf1acDuTq?QfCfZ>X z!3796qrl3rGhr*dt-_4JjRdL-EZUq_zt$a{P0N#Dpqlboh4T|K&?w3 zRWA(K!s@HXMH?GvD=;N``LYU_Xp8){K|w+AWI%jJ{e(wmrDoxy#$z0Qn+@>>B*;8g zIz}I(CKyM>$43gc;|!2Cv425xkau%#cx)Lie>2cs$V;V}-gbvq;t-yU7A;rw|7s8y zYdANAJmwtSmB55v5pxu!iiYy zgx0lk&Q0)D) z%r-s;oDXD|Abv$OL2?Xg70BqQ2ldni?lI6XeSHCDuZKqmcEmk5=Y`h^)EN6gsJg4Z zhc(pL1NX4*+JwPXn+x>!L7E7KauW6f^XBba&H}WI6|Iy6XQgnvJ7Wr zJ`eb&^XJ7RB~j^Ra45nQVW1(0I->mrkjS*0i$7cnziWBR8aC0M*fak;sY0W#OpW6| zikBtj)|g;SB@hp6YUXfHRtsfYAgGkPTQb&HdpN4{$N7*rKjrknt422=y|U89WFa#f z(p9(N3xIeCxZ=F>{p~sGUnqax_gGXMTrpp62>KIMam;qXOK>TyGC#jJu$$ZdK z8NJLZco&8EeTp}ha!d@RsxLH74QyL)g2*@Z8JM&%09AC5z(?FoAyB|9oh#u1lCU*0;pk; z%09x~rJoCqqvJFgb(_E8XgZdI>Y{U3hnf=4e+UT?^PZl*+TZ{=b#p`L;^k zV!07(i&6B1+FypX9zMy!QNRH@7nwi?a6i<{&1HHr&ZAr(O_fj_!wmEx07<|R<+AiC zWOyG8DuZBl`LC2?!#!&pjTyc3=bKhmLnmJ_GBTPUO=^HZ04>dHDYxpUF!PInq~qVh z<7i{x-151CK|Er;lsr9uic&HCi^R;e;CGk5&r#CSWsKxyXB9QYV_YKUDl>D`>jkYs zN=ixyqzQDC0o(fm-tHJczjPy?eFG^xS<|h~ZB?9Is(D~_X*ihF!sJ^&w~zZ_sIbgw z1{w$pxbbS%xhflY6q^J0r_u=a3kz#ZQ@fslc%E5W<0&K!4DWZPD#=~H4J`O4Pkxp9 zy!@ZoZzOvxK~n1aUK#RtUBgAw6(MZ$S(M~#%~N&oT@0B*8m8g$2hR(6MqLe%gu|dw za+{p|<)m38t{doMjk{lY;+1zj8^wy=>wThlI3S2nt4qK9lis$wTh|{+{_wFfLg|sb zGJbiBUbgC8A0!TXzVG0ZHj}%MiRkt+wzq!8`}B*%H(Hrp@#kzuDVd&y4=q|0L&jz^ zJwX>)Yxv!i4%_TrgJD+e{^)H@B*F^e%GtvP6_(UULK;uNGdFc>rEa$qNRyw5l@||M=;B)quO$Mm& zjtZ1%iGO1UFL%o-DVc=eQKgL^^`MW~gc#ck=#UJW+Pg(TVSV8@@?S*LzqxF8Ga2Ht zROu*r1j(244B0nk{3}2$2Xsx~V}P=fa|yT_4CSji)uX|8#$Lb^rU*70!C080->-8% z9B}k0i*^1w3&`DfGzR-Ma%sstL}GGo&N#oH%7%o){9|kDB8*5t|F?)TZ4(H{IW2v9 z4<2}!9giFrgr`dXjSAy`MgS_vxfn`GMU`Aq^6b#Tj9LpJb7NvYX+OToW#h%D4=h}x z{E{{MqYsVqW$KN~Z``Q&1XdrF(7356D5dC`)`|%Zb(~5XBpq;g7sXGVk(@%n!KpgY zVYQ*Hr#Jqd!jo^$N&!NFs4-x|3YHf4pJcda9_s2QAgF69Q9MIYkC(8RVGnBt|4oq_ z{Awo((?T#59u$J29qffPfgaz!Y0vIL8xIUeFj;h>EEYn7p&rMxsVBsH?`8kay|~bA zMH}5^Gz2Jmd;1#LcT>&FN(%}W84!xObS7uA!|Af_);3XO$A==ZrrV|eAQoquDnbe+cnoV5xa-Zz^W19d?gd-<)hnKAisE~F zd!!EYi=E0~UxLx>FjQ>!YlJ!DkF2&gLqb$QG#A0U2fl{iEDLCdf5+cUb5H#dzVZZ$ zN#GHnya=egXix*8f(wa=R$&-+!2yT@0P7WrIBKCUxxM22L)*)J89@*ZrY42cl+uy9 zxqUG1c6Dy>#yKY^2hj$cua&MJZL<~r^SdqFG6kwWI1FNc4x!AVt1K>eM`02M6(I>w zb&l~a#x#Wc+ca54Tk$@;~+EPBA`D{X|;fkB54I z_E}I)-@l(tnh%nVNAt1E+%7-Ik&`?yvH)CFQB>3jz@mX7k-vInAK7ErRh|=otx%3^nX!G)=t1C>INOUOrV=B#1f6G% zBQFE$E_$9pXHNSX;p5q16neY6**NrUUgn2jFk5D!fRdBR}5yswT%HRSXcTiN+K@I-gvDnv4_8#nKmUg8< zwLO7!a`eW7+*Li+h)ELu6bxwns`Z%m_7)erySpzDvZd_}ude0+X5OY7kY#|cJi22y zy}u*mI(jGWk&nK))N{4GMv^ToohGI@axqKk@-EI6-fiWjttn$*mE^8F7yzCRLNEiw z6Nu{Uxk+ZXc2`;foAi(DMjTg6oSiE;o-FiRA1oeB z?C)u`stqrRNuJSlY+Y@54pzozoXc`3Z%^wk)WN9sD) zJ}B1g8+5O@!)?t9zO;fyxZ5ig3krS7(?Nt(=msPd4;O9$g|r zXUYxUKZz$0N?KP}C-WaAuSt!crOngqO) zKEvV~f^RuJ9(wfZEp*OYt2`L{rtN;ycE>M$z%!&Np^N(V8p32(`n*Sj@pp%qNFTbliM@j-<<;T zd4}tSgZs-rU!476HXwvsS-Cs01(S{BYNZEaTQiV@Vosy&v4D~lz{>1Q$2vfjbdJss ze7So{=cs+QC^C5LT|-nxF?l(@>SBk6{gUp3iMh7eI8aQt7(CQ`2BYBvCfn4aVHO(~ zM+@rm%23JOZi}ggkqIh(G9Qd3S&z?!eY|Mcn8odV1p5iJ1XDey!2Ig&$yf^31Tf$qKVP!E*HU@^uc zBplHB`Qp@Bef@PYaq;%YELtw*D)X=*T!Fyj;2H&3NdE+zl zp>kuo0n?Is`?c*NNy2$QCBxVDoEh@CI$wf!*hwSBmLiP;S^>^V3PiYrB=+N2 z-Kv$C$LBLd# zUHLE^U9xbN!b6aqegLF~QWyvoKH2g){yOQs*y%riz7>O%)N-Yq2jfj`oU6Bxh;g}Q zseB7ZBsK1AFNf2!jnBzh?})iDfAnkU+7>;cNs6KBHd=>A666Bm98Y6cC_m+a$-$!7 z>m&&m7tmip6(WEB$p~0wuUxqTQ%Eo2hf{8H3QINk2ivuTW)MHoF!2+3Eb9(aEl%O+ zVI4^$B0{2P%17$o~J++*?Owxv$&b*b3GX5J6fR zDd|R(?uLg_Lb^j5#6Uqrq+7Z{x)(WKz5) zOGs0hagw9#op`>Q7O13q!)lc*v+NLuyEOIc$=3$PNxd^Zw}(1Aby%LiPlM>Ae9r*b zk6_kYee$r=mRBO7!?aXtU>}7)LA8H&^|_zq3*il4zP|Of7G)S~ZKw43JW`xrnSN80omMi{AX}L=)8LlBhKAvmv+la1`ne3- z*-zm(>iTjt&->1i-V%Ws;e=)HJM?PWATM=}+*=>^mWU5rDhNM+If)y-AT~eu)Vo^C zl0ywYvy$zZ-@AxEMjoDpy3zcd0pIr#3FW?ievFQr_o-;If1>0YbaVs$_U3bV8))v| zUx&FpSIJrqyZ{X?Ek~nX8}mVk{CVfs{B4`QKdk@+b1Fnu-b6B`xsK3xIt}d&2{dD? zO$#olNF-9`$q1NEHe!?c%`CaP7UbvKLes>;7W66u-##lR@Y5%)EajdZ17l;g;&tvU zZ|W0HG~s78mduEc!iDo+MPmzk4A=TozHz8Iia1{Q8Wr02lFCxkId25%1>b>H|J{E% zUqBrh(FSq|2>QT7ZwTQ5;mecC6W>Sg_X%S~U;?+BZAEIFL2}30i6>r0Erc+Kz zt|gd38>D6UEEX}PkpByOyMU|8?A`-44M0wMS`~w)yynAvd-3g8Ver%k$vGI}Q+@>i z8t{?DtlPmZG3YQyGx`cb4`$^%HQ!#NL33!1-3l?HNHjhrE$zLhXUwBOhDXHAzqNq- zDxqOvjtK;YZ85IWBuK1gEOhv+weV_c4$*6UUxv-o47LLR66uTk;B!y59CZMn68u3Y z3X-)#kPu;9DXW&wD>=kddgTjYBnz_Da4E!$z^ z4Fe$mb=4Bv!J|FbqKcz~Mj*$*2NvM~mVj#YXE`%)p-oCo#%4AghvGpvxWIC_wpfDJ zWw^oE(nw89dpPdr+6Iz}Lm%Yx^KrC=-zF?rwu<;=%=H)0y{;s1-G{PvjRj3V;ji=X zB;D+1X70)?T}_d%m+Ne-uix#i;E@o13p0B*yb{-=!%g)1i3f%qhRG8Bvx-V;7S-@Q zc2u|?QOYG)-@5$r<;y(80>mUKFG+@2j)5NuNUC(4w)@MK=Wa;5!}g~c$KcOJsSMh_ z-|@T0hh=Mj{@a~0DyI6vCA)~)4ATsG2HvrFHAEoooae`wvsJ!MMiT0SAG2nLGH7?# zqN1YMtpp*SLcykTKM;lv^MfUs(U_QX6uM9t8F$dg1XsL8PwF>?e?R!BQt`8}vOd4# ziWv3NrZ_$IBp=X5wJ52o-phvsV&5(#7*~J*9)?q~H@NiXdQ&uCPu>2`&YlkeT@0VF z2egJksr(m7nb#jvTsuEoQ@Pwrag~+$^og7%JFkK@UKerq_|)x2d%yMEQ|T{U4`?Z9 z0_f7IlG9hrn^rVf{V2D6(ftxy@Y575he#(`u+?>i)HkqgL=2w3-XVorCk)bD2>i@~ zE4&!o6O=b24J_kj0mN348-HFm51}GvAlckJ2wNgjPq$y)01r-x>~xHP7j!=_#@yUq zZO9CF_yIeyR@K~wAya7cRN@yZ9@?%MYkMw@6<_vyPp=)G9DgV37+>bgOV zLK{bhuE|`E*YO%D-e%9zmEOswBbWO4`%HGrPdufxDBp9y+PAj@CLPHDQD(5TfL%jW z!t3@y?13t=u*b9j1hfA-NSVN!qrdvJ>J9gD<-z*a@XH+K#QlX#Y7^Z8PJOYFkHosr zJ=5&e>3Sp1tQ%*!$Et-!Uvtsx!-rdUuUr|VFqg%NV{xv9VV+S&(VM=!JR3OMp4=RZ z^WCn$!l>Q9)g4*-tubx+5<$2=!<8lpcg0!{kKL__g@M55jf>A-Ues;46t=d-q#TBa zJLL!|#O^c|07Z|0CJZ2SIe8;7QCJb-?K6R%Y(TdGAZG#IxR}H5-$|mRg1JkyU!|s} zFTh<7W^%gZs0J7{sHmt(9?#4F~`SlCsiM=Ge|mZ zO~v5`-HAq`t}%R(KXOV?e44>pykNgfNXaEQtc|?Xaf?FYZE5zmT#H940s#_O*xW9i zZvJcskmp6<@5Zc`q>NIaaj*WkmzEd&jQ$Q#c|V(cgFB1tg(X0p$83UdqnM_g1u`nE zn$3U*b%5i#!1vA9B`|CN$cE8Z_bKHDIl(AO8k&Q{y>uA4VCsD)4$~l@`5-PLlHkH% z)N7m%%hzDO2z0_sHanLtjLr92o&Va>r*Qeg?m!<4jyFhECD{SN@=}zmZ#yf3z)RL4Kpx<@2&?X2Df9K9G+VzERvHA?h}gGnQm_fhb=7_&@f`Mo=krB-sug(9SQu^}&S zZyFf1L}4=HGy$H+cA*dO#Ab}stG}n($J&B>OVpOc>n24;<5xUo9#k4pPncjjP2R$o zCyR|6_a*FF*cN_0-RI8~E2!@AOang$EPLaUyLzLh)$R>|16pb!E(W)2tH<6520B>o z;LQ>qDA$81E<5|9q?H!ej8i4zjLVJaTGGL?F29Ocd90@AVv0sgvb<~CPVi515O=TH z;LF7hZwRyhYPs^&J;>~+GJqD$e_iL{}E&r)>Ur!`djzUOP@2$1jAs>agPF zcwDT+E+&<z{tX<@m9T)f& z9N~cXeNGti^@nhE0Qu&`A_UBS)jY$lke~EszdFD+X<4KOXs>+$qQHsVOj!5_1W>@9 zeWa1|?3(uo8&nQg!?Y9)>+o~{d;UwqF&Inm{rly*xvS4oyKx5xD!mS5cciwiKD+Me z(+(lPuf{AiD%sYsa9dhgA%}gs_1>My(iEluAWBF`fZMqoS)6`i#|%dZ3A}8?#4+XN z$TarWPAMqlG0l^c&vJ_F!C^QW47Ja)0jqFvJLN-E{&_4=)=gUL>5>Sbn$#=xp9{d_ znJABQVJ8v|h)c*Y{n2AOOIRK9Y#R;+Fo$feueU52gf4msiTLI}?g>hNMuy2Dt$GNr zWki$cbk7B}LnM$-wag(;G#;W*am|n;ym;Y4+ju9q09G*m0Mh)antE3Cv*rUFjQc+C z(L}{2#8O2KjkwgTO1qnMP+i8q$IawiG71=Y{;o(uP^ni&$yrcc7NPvqWg*#*BB1^? z+E9EtU|kUDo%ezo41nIMiE0-RpwMYrGLUNpVD2d+`=M&MP#c8#G3p%b(k0{DA?Fm< z9i4zR_IwNK5%$R|ciHX?9-#Qz8L21Biw@?S6S|^0-*hIWHF@@o5C1WCEAf{v(Uz!X z0hZ~YMx)Mybjhd5L55>tDu)J>MJEadr28rN0Hh}1bx5RP;4sYh(AM^-r>6(REQl;^ zdO)uh4@h^N%J96v>A~c{pK3qtSHp;-}m@|d45g)Nn< z<)3V+wuvvYI@FjE3SF}2U{zh+c?BEg@uI!}9eUBjTfKUz$>rULH@yWrkPI;Exu5CI zgmFy5jM56rHFpyW)iScPA7n*Y-n;M(vP8I!u?r;^agT{5K zEr4M1+4>dW7Kx%0XQt7c3`i@==ynJQ`VcS^l1f%sO?`j^al(2@Y9FuCWCdO95LjYP z9LEwSsa>-xcHf2G%f=v&-5cFfNK&z((Ogo;n8lIx7tL*{F;~Tj4F`z3a6mUF&cLC4 z+-M{ykoqOpabMnPYmOo{!LOMI87+tvuBhN(mbA;m^ls|kTTpLas9@|$XY*9l5#t7Q z6vz$woc)!hEikW#MRpnQ4X7~4UJO7)fKYR~gwdj(fhx9tumibWd@zUS)~Kl)zx9D3ad3)v>i6cvC-i?>L70{CCvq;2`b69qwI1 z!|8cl3}nAETzlbAmt>NMK$0Xk^>lRL;-{M0)&2?saUiUJsvV0yq|Pk01l~FlYy0%u z`FL3a;7+zgS|!v?H92ySkqOcU88P7`cI26ld;|J6l&9>279GZWR0J+Z3DNRXD?Vsaj|zFQSniM3WHlO=OqD z(Z1$&0-pP}pv&>BHF6o=*C^eFuFG{ehR${-kJ5UR1=mPLauq>y(%^F}fR~s0)fwP> zhJsiJD|30vR0K0CcKqaTEx_ou&0^2W%g4k;NNNKEvfj)YR@!4TBdAhWgP`R`Fca1L z!6K)|R90#jwL)Wy9c55pd_ysDTvDYu$q+(LiB-qgq4$vS_LZYGH|!%{MJ@6PZX`)j zOY4?%Zm%)?)QCJog?<_2{*kRi$qd^pr)KoflIEA;BPSl{go=PE5?o7xwFmkJoCd_c ze!2+saZZ38$=*+} zvC$pY+iSrQq1D4_K1^t0W%(ve^JoH!J_j;2D?npFKQ~h!KyV5taQg!ZCm`X@(OL}a zZ&@@(9Eg|*d)N1+y_L9*&p>N2i-&EQN%GurBl=fA^bQ)gem35DVs#jK(I}_tNk;rf7Q@b@h5n-`!PuF>k^%_NB_c2G z6%a50zdfjCsIM&T8+5~Asl;Ko96xts0RG=4EKIya|2x>&SQRPxx>3NhNg) z8RbR8Dw0@Jy1iWp+82;7>p#v9l&#h`eEs_M&y7#s$>Q}})BrCmIw+~_hN)E(%2^Q) z&S%Ke%4amx0o3T>wJB%0r#W3$??y{4MSFIW-?_%((NVW1o-Tj!66O4}s>w2sRWu3; z(Ngy(l-CNF3)HG8FY{YitR$nukhN{dphZDNrMlVmtGoHUvdms27@DTWuSVCv3U%se zIUoFw)$$O2Uev5ji+I2|XL%N#hoSbly_$Qz$C ztIn7OCrnbYTP2+(u>l)1YTmMh^3qS%2x~TVQ=k43^EXD!2?=BzkBNORyH_56U6f(s z?Txe1U4}H7Y$|d}L;Cubg@{6K4bhkDu9>xSmC^iw%EMRY!nmMr8bv5<_fD3m`^_7D_s*w%9|;3w$tHA5Nx0b`E~6=6 zPW(PRVAW+}T`uFv?3l>!!@Zs;M>R4wruD4~+Ev{tucpYOHZNg0@nqJH*_M=P_*7bi zM{(M26Q1s#USr*8uXsi`WN|vrUr=Xu(&tyZioVbD;uc|iWgu?PDk|y+i(6Od{6y?3 zx(q4l=uU$t<`(;&nEaXD6P7@?>$=BX<|r$68G~!|o^}#0#R%yGGCyfAhKDzu+$*x8 zo1Ydy+Pg7g&kma5TGp&#TPt_iHYdXS7MLwaUHAG^Z+lG~9WJ#nO+C8NgiZg%O`ghz4OcAi zes7Ug5E}$Bdf|RxEe}bdYp^*D!O*e!mdR_J-0VIm&5zIFnfCsc!5Z zl)qx*_D-}WH+c8LosaaP#wa?8|5?>HJIUtLiBFUjG#)Znvs+C{<2b>M7BU|obk1(< z>Wk~^PlJ-p7}f+YH%RWFj=lrJi+Y|Rrjhdyx9&H%Il^YW53CHmrC(*Fw=zmg`5SGR zo;qWE>Vv-ImsdjV$*7ip8>X_K>hm$OvNK z8T27(e4SEx4?U^?65P?=PRR$KKwGR3WZ<8htd(x|4SjbfIsTX{&3s-(6hJ&ADo=iM zUu#U93qP}JM zsDjjrPTMd@hTv4Yd{!1idVgV~BAH)NMn=X#5#T!d54B;qY-PoGf!|Orc^Pyv`NlYO znWm3t^%NB~LrK`#B&1N`+Xw~`}|Bj8kVr`pr~=2EWzea7m2v;YWS4w>YU0VZk6UwBTt6NFh<7vb5Q&z zYv^zKq)VAceK_f#S3eJ>s*|-@jq41?|719${lItS->H(=8cHWKa&sA^EII$_KbRf6 z|1~=n(-@C##T%bIA32j|7&V(VMx;)8m$122GkQ6 zV6H&N>FAd*(@@blkd%&1eJCg}_utTRsCT?4D7Zatb1|pO=!2>0aJ5Tv_!z>Bq!AZ` zAig`>3dVm>(ymHj`i?;=PMU(kLO@6e%t?wV+t+Z}zL+SPn&NvWmO(^0eQhq26ppfiIc3 zSl`f(EOCP?vF!AF&)u014`bVe$2i}EMP@W02AYfe@Bo2F2namrtrcvFi+hYj;H4`H z2?|PcGUnX)3xNmU0}N>0Cq!nRV)xFrr=;}Z_@vVg%sqQ>fp>S;f5-K%Rf{^ik_2iO zdHrkyzzJY7iM1L+tF@eiFiDFSPt*zWFT5j#W~Qdbl}Aa??twJEnK0hJKMxJwCo9}A z|7CcZ{ug2;PYKEXVW1<9{b8wlE`RhLp8e-(8$_($-pI=I8{N>Mu*L;Pq<&F<*aqVJ zp4i&DKD-G)mD4i^?JKv-|5S}6f1PAiVkl4SYwpjf%7R->^K(_vR5MX*wEucsew6!@ zxiJ%CmXhu{80Q7G^}tL%$+osRLXFnP%PUsU!a~FybJXIu7U03hW$pGNcCeUElJyIzDMT!;;f3CF!5>J8 zjvfIu<1P2z7M66D>1-z@1|{#VJ}KvOVBqCaQwVc|HlIdHeY;?AW!kpH$j}fj^Ve}H zo*ci)C|H++LPKk4DgSp?r|hBIDQB)jGYS;vb{gh^?~MP+UYXXRT8S;*xkA1_hhYot zN|!H0@h*j-hNVC2x$Nw4L!p%CtNs`EaLGtL!}tem!cST6vMh1?Yw|sm8O1#R+-AVP zt{{TLr+Y3yRBFwJikg~kevhb6jw+yFz>=}#vll~H(*kcoTwGjYB0wME{q#Q3r`6cb zSp4T&q(33p<)tEE2y|hDso+9rQ`3A*G{>*k2yv^NYJH~2J_2lPO20Z7@2MjYH7B1K zZMc|g9R-Tot<&u7*}32S>C34P2~T9YzgwAjxVXYE+=`s)nk9^C>EF!e`7q|rO!RJ0 zZtptoxFuU!px5@tJ8l^-4+Bo{<$bgV$N2Ji*$}l1X$odUx&}ewl`FjkdLC7apCu*C zg@uD@xgZio#zTeBRM5~+Rqv|v8a(;&hwrQJ@&yO}V!X#FMi6u}xf|{WbrYgtRne%| zElSjVcYB6E((~4)DVEgfu&B=SMBO-nfT0Y#7q0)qE85T1K;CzRmrqszl;*1V8?O{o z^GZi`B-EW_qw7WtM>g#!ueBeQ;b$u8Q(lohJ035ahX@D`5C7QX&2vz=cj;s+LYW$A zzx0o7KGW&^h;|JAW0@^;);ygLp>N!+cVa%!Jl3Q zTjSMs`KIq_(8WKLkZx6|@*w+OP5*TXo#Kovs&U;5n#|9`cgTI0AB4QxQcVwBU6tja zCnDmZrTq|bDX~MuJ{uB_;D#nS*%g4j{+WMzqgahr)TPWJ4g?XyD=*xIoOG@#ER&Qz zuF<(=$Ut`4U22(?rBio(@nHC61ytuSJ*)P-VczPT$1ZmiBK=rgN-A+Bx0J48e-%Pl+9%I#1q~L%%{Q-J3CD9WbK(0`YjJnbR}f0u zw=QjwexEVmdi_X5>?+22sw=Cvq6nigdLA@Ny?(@dp(l6^|Y$PSGGwWye z8YiSnCWbN3J%s*C7|~CRU&Z5KN(7B&p)XHwmbc>*0M0(tzri?*w3T2jJ8ows`K$yjMVr+i>pQ^VGPGp z6N&hyXPlPf!b9aM)@;mu2{_D#7^F2@Lz?;EC59Frh(!xkc^rLk9}3xR$&LHzKmw;0 zs0IW5?e~#M;FfJ$>DI5kwD{~Pth;)nD|S$7{ZSMf7q@eD{Ekn-#N^kXP=N6Av(JN= z$KPbQ&IR$H4jO!l@-U53KWP#kvRr7n92H7eG%Dcan89L?knGF%c?&+dzf8x`@>B$N z!!9T9&~lj7ALodS?2Cp*CmMomcxtHaC=X|H;V8G`bhc$p^nwD~%SU;kt*xzJS^;!$ z%|=mC5!iWiC1w>C9Ih}seZCaE06k3U9Wxa9GMrFNoev4}=g^UmYp^9PlLhB}KbJN* zt2yxuHL(ssrtYzvObb|zVOtg<=e8Vw+b|LHo6p~blmUB4yPivbAiHnb>NZd9aXqVd zK{hf-nC;83ExL zm%B+1j*AsO8URN6o3CA;|Eh*VvM6Uc+Z^ zo;>dC6H!rAfs)C|$($Kp8Y*@W0syo#Y_hSedfG<;TY1fQo4ZaEKm7g2+tJDE8^nxK zBoU2d1!1VKOh25dtUhIX!(SBDU8QioZ!%{nRg6blq4@;GeC1?7RVm2iMrosAL7`#8axwq$ z-*Q{~=HcOyh5!v@mp?=!G&JuK}g@$51s6{Z_V=%-q}RQKe`$%ZP@=m*BZp!|NFIu z6X}_zT=KqyJ>u7m-Kdz!UVLIA{a{q)OK&CZ%n{WNv_7bjCLMeJEFTN}A}&mC;K2?t#dsUo^$ zP06>ir0|m6eUKl%D`lZz=E-D&F6Mza#R2`l3d5nyE(mZi;r(>m@+tV)~j}qyR zALyG-3v`F{m7dve$K$QoOsSBg0*0-D0IRMzY3G=<@<#O`GdvJVmOQ;gxV9H;2In3J=I=57vtn3L7qoc1gSTo~5G)Erk) z8FRi7IGM*(lQ6MfLEsVK&kh9@SgHPEC<(iU<4;3i+&t9r#Kg8I0wbn*Aw}jL>|Tq; zz2+DN$_@R+&Jncl%s4;xxuCkI`xIpL&TC{A=(T7FYWu-*-G|5d+_H!Z&L}v5^us$l zQu*R#zS)rEiccRYDXG>Js1HfxP~{F|WX(-+yyI77x*pt7|3|MfQ*Xs2B(%?ne6y;m ztsQVOlX@AwqW@I8tqqacO?zU#;9!xA`o+yabzi5p`DKZ1P!FDINWB4tXI^O8e8Fo& zH=r+V!(Ap1kzO_O`DTwxW-u>Ap=(i^AyalLYh5sXExo+6R-XK&*YJ&ZYvPu4^&I;9 zi(yqWfnGdH($;-=|44+6rq8kjGK05F+Fl0FTPm6Ts0dJ>$@9L zJB2=P8`jmQpR^W?b0Jfxe#J%da>Dr#aH!9cz(nD4Vi8TNvFS6cYh5d}om!z`G)P0o z;g27}A>#Q)-HYw*4^AJm#k0uNXkn5$+-KmA8a`dZ$&J+w?fO5k`zzCi9M=&c$ZkI{o-TLO32H5pZqXnR@(iIlQpH6AEXYB zrqH1O_5@x!zB0xA7=98tWrMKEydVEq!7RmUcd$J>=3;Cz2aABLA_e;(+OIRi#{bOl zr>(9Glor#%k&A{s#`!S1Pfd3PWEe6>RRf2cpJ^&p$B#KmGnjb(hhT~@Qr`SZcJj6n&ZfiDnK-XRy+|cs6lrD32fPz+i*xZAijAlmGhCG-OWS)5XiKx zd2AGH)yZO&r$|pgv%LXG9|Smv_iQ4LL}0ffaCKUY6ax!#tcN!Ic4*2vM9mivdqeg7z0B=KAx2D;%De%K_?~J2EU?^93SNCwY8_R&9Q>vr<=+IF$-x!<2 znnD4qOk+t-id#aUr$f^6V8ajj%j2MDU;tyJNnh^Fn9mXRty`-w*oMydifVTf=S)(u z+j1J}h06pdd)3*V382*fD?PAXNbDYR-z+DM0}Vk=v96&360u!?Rswf*Tr(V&^&&%r zyy1-Ry3zFpT9YLsI0ATpKk(tx(?^e9LLJdaN{$#mp@S_ z$I8cS@Jot|WUKez2U!}Z6sJ-1d!k+yT1{uRv3XRJ;964rHt+T#(z@ym*Et!<*oy-9 zMfK(HfT2$-UFs<|w*$uO;x~#=dB@)jZ5S@L*z&ls_K>vQ053~>Ex3i=9)Ok!D)w$I z?`;`QVqzyKzn+JrX|uEX=n+&A1`QXN^1geV5*9tqX8?l zqZMrazF`jO`IeR)Mm8hV2!qK!G@UG;a*$Mnn@e zgC$$=PugLmCig?Fz;pp(${>$VvlfB%lWC!MKl1p^GB>zz9C7_8M~d5m9`XtY)uXx7r`0tzt+hQpzb9%RA~@jzUfcN|*ByC0B*f^ybR9Pi=oHmH$P-SLmVqKwfS$#z zpCg{q2;O+1m0P`^KHWm~@b&eb$0a2vZ&Qqy^{jv?Y^>%xVy%8RfNVr==omvhGmTlv zkt-4@#vWIH&LkXHf132IpH!c?xnZ?p@_+DKZ}coOGvzJGG1wr_BVwj9${}W9xBFiB zJ^8uLkFrk#3$IlRuoy$cQ{|Lr^cE<}(l`@An3Q{eu) z@ih0WuTO-<#K5Ads@jO&rVb)c@@)%y&l>|@x>Rw*(6r<9H`HQlnPl*$&!IML>AeYBHB= z`Ptf}*>}l$?_B8i1n1Wb)|2BW_vZ510{(xPzExM}mfIavplJyJBiHjGXI3Mc0e~6` zbwUf?IG6;I?KWUg?df*}6~-pyeP5oAA*mz4@c4OT z40i<=Y|_ePm>Ia1=mwyczBA!|u6~;qRqH#CT)Lb2nYSZ1<3OqE!W090j0}Dxvk}Y7 zh8O?aqvjX?H~pcm#je2E%3IW~RYPQO~0Jjp(9>h{x@&$@Pj{EZv?Cq#+4K}tUmXjjoC4+GxQdm)x(dH z`qFQrXcP-mEkle_e9GEAb|U5F)%QCPElJw1Zax=ZF1HkV4?d-|2FSDWm`qDZNhwkI zN4b{Uu1%h{aMPl{a71e9^1rq81MXKRXB=~1!jt0?iuGSs-oGReOk|&oPY|^4z0z(p z*iwJBwSOW2ShN3M_Vm^cr+E|bmP4Gflg)O%2l7*WyI`FKc*a9-Xm3~=ED1XPG5CW1 zD3roZ&r+_xR&z0IaAs_PC8X-UP5%VKTk=U-ao?m>Lk~NEMEVGhwlCS*Bfbn5&1FV? zZ+kslc7Y;*Y86b3(mkGvN0QU8_ z4+%wL!ki5_J=s=M8O=e+p%$osaoGDVM-a%VCPzYh(u1=~!!6tiaQknwAz*1MsYlc3FTBXXoS?m>?51@LB>OI1*sI5t2gZ zV8k;0zT&8qz$%K@Z2a@6eNXUe1vJ%6 zwzz&!l+=a-1P0f`C^$EL3JR({ezb>`tnEvKBUgXD_5Fj#KH{tKMrdrHY5 z?LUs^)3Vw?dhx$FLrWNIAf@<51M7?=L*oi>k%1&olT(| zgcl%|7KG1k3BUO8yQYN?!&PFhBwS^IrQF@!{rQkOlIK0^1c`=>!ckACqlC*(gE0$4 z_)^z&kxnGALR)JfZb%T9^Q?%Icj+^sz9uFm4cP_IDY-vgZfRx!`4q z{XAR={i|WY!9DOPlEDURO-NeS!lNpY8gWej{I}+6H_h$|8KU>cyp+8U-S+ddlcJbw zj2iXvx-;1smno^}aq9|xc6MFE4m(_!C1xNvhAGqsP`egi&5jO${M>gN0I}p72zlcO zM9&>;1tGzh#G~L;zD96Z0((;awH`Q6eIgZ0en|8&Uq04~Eu2XTf#A46L^S}&&s_)* zadu=U{}6n*SVtbUTJY>)*4dvsBG8SQ8yYGOr91MFW8YdD(gfzpf&3pPrlzJ9+bjUm zVNG%OT!0%mY9K}i#kmgTNW=#6oe?GQV7>V1H2T;AGOp8!v706ZgH#%74t<&l=<-By zvr&b?ot^TA(sy|5mI<9XQ3KNt%HU==<8d&=ezTdl1e?Wvm>+LV3=srglIi% znEdvW;(lOWY71sxnR)|kcD`&~5sSQ9oYiNjPDttEv9r2Gs3ZV`uP)dQ>r zQG>m?yMBEiaRTyG{s_b6(o!4kH}vDTg?JJDLSEG= zis$x-TTxJMoELfgP(C%vZuH%CgZ!!jeKRm1rl0WvAg}wT9>zI(5#edU)Oe;Jh#V%G zjZmYEr!+GK5bb?)yu4Os(tchdiaS3ZRJb{gDay47iRHp!I@Tsvn@&c$Yeg>EE}FlZ zgETbDE#@-j&m53TicI@ei3D6P=`in*VAa)Gx8;ZcBybGo>-gZ{;7bJi&ieX#0;K~3TvSBOU@MjP`T=(5BX>Vf z!{7KANw1@s^12SdC)pOMfw9LI_#xmTpTV$xvUdhN2(LWAOwPl_!;|6sEiE~@sks^I z5?kkDXU2Y}4|S*+53a|yDJ7J4&zx0_yw*_`u-%^@-2ofphuIgfUwv=T6af2s zM?RwB5bZ>%3gU-2r+wsIhUnT>hQZY>eD$5Drh-w+i-WODM630v9W~cjMBl`yDAq?$xI=NJ2BelhGy3BGgi`Qb|n zqpY8@cZ_I0L~O<_NNq&r92MvRi5+5&uq(6wT=j3$6BQHdHMrd~3M6}%^)_CfgLS#i z{Qdux%TRD!t&-_s=F-wnO@SpX*_>VtX*56rT!iQ_sLo#yr92Vxu5bgZ>BVDflP+7fQ%B5Xl zi$j706OHu7#pF22H=3yeUP++3PHvC!fkT-1By7FJCq`H`e&A4@ck{Z0c|1qlkv%im!3|0JbWasD^wW;?y;>RF-|v0M&a%fJ*>x)3$0p`7^W@z1A$-O8OS(2&@$ z-T3v7IuXw#I|I@DPC5#^kSRWFWL{J<0AFTD{w%_e^Ajj{#m z8C}!oYmTF8?+NAxDGD@mHSC{&#ac8oF4!sfdELwJkc; z{P%r6+?)E=*6Tp}5?O#q?k_+vz)`$2ACb=ZtP$e|RB=P;Nxoug{FT4C=wUUOc#nMp z%BWqwy}AO&SA8Z3?aL&ZJR2&5;Y5bhqco1S->2?PE*}@);VXT?i*|Xwa(KV&^QgUu_B8|_$ zi&$X+2RYkC+8=a$)Zny)!GyerHHZ31zIzD@gpny{Xx^cwrjBL6u%7yFD4O$b|0dqe zUYqwzIGCM+M|9{`4Mh+9GDd%WQPcuvn2LX%hTX_(2!uAkQM>wI>!Jz+@oncjw!!?4 zg@FOVz;Detff`a-RvGeC;MngHqbpO>9O5&XJ?e;xjNfpAc+rqcNjy07nG$rHWFwzJ zfO~hnqlE%T<~|gA&~0?6P`ux9;^Dwzp3cn3DEF)8+FyPII6J1QT7n}v5LB^tW(wG_ zux7D7+fz*c?C!1rMUW@zIY{`OMWC@_C<3sM#i9|`Tz&#D)SUz%3F+1FG5=%e3`fUR zHR=>%d;?Nj*}iB=DlbwpvNoZxCKiWv3RD{tArm<4)qRTZ{L$33pkvQEV1BM?4Js=M zxE=g?02J(&4;r34ZR~!I?E=ScPs#I4(1Z%`vVoCt?DyXuTykNx)^7&H2*|xN_X1`B zGSsiwqv25vNxqWg0c?spm)gT2((OR$54qT45ZZp7C z@KaQ)qXv$;!`aXPym>qx{U^9S#-<#nomI!h5Ei(zP!vel%>h#>y1Az(_@@c( zK~|s`cN1+;&VdXt;6frUKqWJK;-foWUPd7~U%p81D{sgb1V#ug#TFyE%7e;R`a=hc|Y!LCH8b;O-INUxq= zH!CkA3;q7-{B?d~7cM>DtCEGgSh`@KHUk9pPg+kQ{SHJ<0&>$&|s}~kautU57*D)z~kA* z6Im0))N8QKJcGJ`Co5kK%(pv~N{aGk2i_FHb7?_;cXfXk1LEKq**C>_Vm* zIm}8eP@OGS9zM_kZcU%!T(|4j<7Jxg<9Xog{3i)|(#dT{|E@AcE(0?@KaGIlh)Hn3H5RxR|oN@aj2^XuAQ)AQCCes}ppW7_A@zOUO7G&AS>=NXYw8z$G2GL``@!QUG z6&gK%H#icQ9R4OoIkmR|F*GS8lkzCIZ7w#iuN9I`a*wVDG{6gyG$|NQV~d}}Llz*) z8O}jT`7WVMSV>G!K){fR2uA*TA?hvTT&^!*hht}Bvuh6bkdiqGkT$O$K%aR_9X7wrny=6yOy4RAKc0wye0;p} zHUEG{Xq(keXk;%rbIIRca>2~-K^8KdHJ{5X3CSM6x>D;I*|>+uN6-xg14bk$g?7?J z$bpy}P;8C|;V=s4`W*pO|4Vc{b%3F?{;LDrfB4t@J5LD)z&ms}`Lh3peE6>dE&l?L w_ Date: Tue, 5 May 2026 09:00:17 +0300 Subject: [PATCH 4/5] openai-swagger-to-mcp --- tsconfig-test.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tsconfig-test.json b/tsconfig-test.json index a101a0a..63d3eaa 100644 --- a/tsconfig-test.json +++ b/tsconfig-test.json @@ -1,9 +1,10 @@ { "compilerOptions": { "module": "commonjs", - "target": "es5", + "target": "ES2020", "jsx": "preserve", "moduleResolution": "node", + "ignoreDeprecations": "6.0", "emitDecoratorMetadata": true, "experimentalDecorators": true, "sourceMap": true, @@ -16,7 +17,6 @@ "allowSyntheticDefaultImports": true, "esModuleInterop": true, "importHelpers": true, - "downlevelIteration": true, "strict": true, "alwaysStrict": true, "newLine": "LF", @@ -28,7 +28,7 @@ "strictBindCallApply": true, "strictNullChecks": true, "skipLibCheck": true, - "lib": ["es2015", "dom"], + "lib": ["ES2020", "dom"], "rootDir": "test" }, "include": ["test-typescript-axios", "test-typescript-models", "test-typescript-react-query"], From d89b60ec129f7bd04d8e75787bbcb82aeecae8a1 Mon Sep 17 00:00:00 2001 From: Bar Nuri Date: Tue, 5 May 2026 09:04:22 +0300 Subject: [PATCH 5/5] fix --- .github/dependabot.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..ff9caa9 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "monthly"