From 52be68d05ac6d73af38444c35fd996d9b02cbc0a Mon Sep 17 00:00:00 2001 From: HSn Date: Fri, 13 Mar 2026 12:41:12 +0800 Subject: [PATCH 1/3] Feat/hsn/add display page (#9) * feat: add pdf layout json materialization tool * chore: bump version to 0.1.4 * fix: support explicit v2 parse model --- README.md | 27 +++- README_EN.md | 27 +++- package.json | 4 +- skills/doc2x-mcp/SKILL.md | 213 ++++++++++---------------- src/doc2x/materialize.ts | 63 ++++++++ src/doc2x/pdf.ts | 44 ++++-- src/mcp/registerPdfTools.ts | 91 ++++++++++- src/mcp/registerToolsShared.ts | 12 +- test/e2e/mcpServer.e2e.test.js | 9 ++ test/unit/materialize.test.js | 60 ++++++++ test/unit/registerToolsShared.test.js | 14 ++ 11 files changed, 405 insertions(+), 159 deletions(-) create mode 100644 test/unit/materialize.test.js diff --git a/README.md b/README.md index 3427399..6c3d733 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,7 @@ MCP client 指向本地构建产物: | 阶段 | Tools | 说明 | | --- | --- | --- | -| PDF 解析 | `doc2x_parse_pdf_submit` / `doc2x_parse_pdf_status` / `doc2x_parse_pdf_wait_text` | 提交任务、查询状态、等待并取文本 | +| PDF 解析 | `doc2x_parse_pdf_submit` / `doc2x_parse_pdf_status` / `doc2x_parse_pdf_wait_text` / `doc2x_materialize_pdf_layout_json` | 提交任务、查询状态、等待并取文本,或将 v3 layout 结果落盘为本地 JSON | | 结果导出 | `doc2x_convert_export_submit` / `doc2x_convert_export_result` / `doc2x_convert_export_wait` | 发起导出、查结果、等待导出完成 | | 下载落盘 | `doc2x_download_url_to_file` / `doc2x_materialize_convert_zip` | 下载 URL 到本地、解包 convert zip | | 图片版面解析 | `doc2x_parse_image_layout_sync` / `doc2x_parse_image_layout_submit` / `doc2x_parse_image_layout_status` / `doc2x_parse_image_layout_wait_text` | 同步/异步图片 OCR 与版面解析 | @@ -102,7 +102,7 @@ MCP client 指向本地构建产物: ### PDF 解析模型(`doc2x_parse_pdf_submit` / `doc2x_parse_pdf_wait_text`) - 可选参数:`model` -- 可选值:`v3-2026`(最新模型) +- 可选值:`v2`(默认) / `v3-2026`(最新模型) - 不传时默认 `v2` ```json @@ -111,6 +111,23 @@ MCP client 指向本地构建产物: } ``` +### PDF Layout JSON 落盘(`doc2x_materialize_pdf_layout_json`) + +- 必选参数:`output_path` +- `uid` 与 `pdf_path` 二选一 +- `v2` 不支持 `layout`;需要 `pages[].layout` 时请使用 `v3-2026` +- 若传 `pdf_path` 但不传 `model`,该工具默认使用 `v3-2026` +- 成功时将原始 `result` JSON 写到本地 + +`layout` 是页面块结构和坐标信息,适合 figure/table 裁剪、区域高亮、结构化抽取和版面分析;如果只想看正文内容,优先使用 Markdown / DOCX 导出。 + +```json +{ + "pdf_path": "/absolute/path/to/input.pdf", + "output_path": "/absolute/path/to/input_v3.layout.json" +} +``` + ### 导出公式参数(`doc2x_convert_export_submit` / `doc2x_convert_export_wait`) - 必选参数:`formula_mode`(`normal` / `dollar`) @@ -134,6 +151,12 @@ MCP client 指向本地构建产物: 1. `doc2x_parse_image_layout_sync` 直接同步解析。 2. 若需要稳态轮询,改用 submit/status/wait 组合。 +### 工作流 3:PDF -> v3 layout JSON 本地文件 + +1. 调用 `doc2x_materialize_pdf_layout_json`,传入 `pdf_path` 和 `output_path`。 +2. 工具会等待 parse 成功,并将原始 `result` JSON 落到本地。 +3. 该 JSON 可直接提供给后续 figure/table 裁剪脚本使用。 + ## 本地开发 ### 环境要求 diff --git a/README_EN.md b/README_EN.md index 6000910..68dc0cd 100644 --- a/README_EN.md +++ b/README_EN.md @@ -93,7 +93,7 @@ Point MCP client to your local build output: | Stage | Tools | Purpose | | --- | --- | --- | -| PDF parse | `doc2x_parse_pdf_submit` / `doc2x_parse_pdf_status` / `doc2x_parse_pdf_wait_text` | Submit parse tasks, check status, wait and fetch text | +| PDF parse | `doc2x_parse_pdf_submit` / `doc2x_parse_pdf_status` / `doc2x_parse_pdf_wait_text` / `doc2x_materialize_pdf_layout_json` | Submit parse tasks, check status, wait and fetch text, or materialize v3 layout JSON locally | | Export | `doc2x_convert_export_submit` / `doc2x_convert_export_result` / `doc2x_convert_export_wait` | Start export, read export result, wait for completion | | Download | `doc2x_download_url_to_file` / `doc2x_materialize_convert_zip` | Download export URL to local path, materialize convert zip | | Image layout parse | `doc2x_parse_image_layout_sync` / `doc2x_parse_image_layout_submit` / `doc2x_parse_image_layout_status` / `doc2x_parse_image_layout_wait_text` | Sync/async OCR and layout parse for images | @@ -102,7 +102,7 @@ Point MCP client to your local build output: ### PDF Parse Model (`doc2x_parse_pdf_submit` / `doc2x_parse_pdf_wait_text`) - Optional parameter: `model` -- Supported value: `v3-2026` (latest model) +- Supported values: `v2` (default) / `v3-2026` (latest model) - Default (when omitted): `v2` ```json @@ -111,6 +111,23 @@ Point MCP client to your local build output: } ``` +### PDF Layout JSON Materialization (`doc2x_materialize_pdf_layout_json`) + +- Required: `output_path` +- Provide either `uid` or `pdf_path` +- `v2` does not support `layout`; use `v3-2026` when `pages[].layout` is required +- When `pdf_path` is used and `model` is omitted, this tool defaults to `v3-2026` +- On success it writes the raw parse `result` JSON locally + +`layout` contains page block structure and coordinates, which is useful for figure/table crops, region highlighting, structured extraction, and layout analysis. If the goal is readable full text, prefer Markdown / DOCX export. + +```json +{ + "pdf_path": "/absolute/path/to/input.pdf", + "output_path": "/absolute/path/to/input_v3.layout.json" +} +``` + ### Export Formula Parameters (`doc2x_convert_export_submit` / `doc2x_convert_export_wait`) - Required: `formula_mode` (`normal` / `dollar`) @@ -134,6 +151,12 @@ Point MCP client to your local build output: 1. Use `doc2x_parse_image_layout_sync` for direct parse. 2. For robust polling behavior, switch to submit/status/wait flow. +### Workflow 3: PDF -> local v3 layout JSON + +1. Call `doc2x_materialize_pdf_layout_json` with `pdf_path` and `output_path`. +2. The tool waits for parse success and writes the raw `result` JSON locally. +3. The saved JSON can be consumed directly by downstream figure/table crop scripts. + ## Local Development ### Requirements diff --git a/package.json b/package.json index cfd7dd1..38803ca 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@noedgeai-org/doc2x-mcp", - "version": "0.1.3", + "version": "0.1.4", "description": "Doc2x MCP server (stdio, MCP SDK).", "license": "MIT", "engines": { @@ -31,7 +31,7 @@ "skill:install:ps": "pwsh -NoProfile -ExecutionPolicy Bypass -File scripts/install-skill.ps1", "skill:install:winps": "powershell -NoProfile -ExecutionPolicy Bypass -File scripts/install-skill-winps.ps1", "start": "node dist/index.js", - "test:unit": "npm run build && node --test test/unit/registerToolsShared.test.js", + "test:unit": "npm run build && node --test test/unit/registerToolsShared.test.js test/unit/materialize.test.js", "test:e2e": "npm run build && node --test test/e2e/mcpServer.e2e.test.js", "test": "npm run test:unit && npm run test:e2e", "prepublishOnly": "pnpm run build" diff --git a/skills/doc2x-mcp/SKILL.md b/skills/doc2x-mcp/SKILL.md index 34c667b..2ae3e32 100644 --- a/skills/doc2x-mcp/SKILL.md +++ b/skills/doc2x-mcp/SKILL.md @@ -1,173 +1,116 @@ --- name: doc2x-mcp -description: 使用 Doc2x MCP 工具完成文档解析与转换:对 PDF/扫描件/图片做 OCR 与版面解析,抽取文本/表格,导出为 Markdown/LaTeX(TeX)/DOCX 并下载落盘(submit/status/wait/export/download)。当用户提到 PDF/pdfs、scanned PDF、OCR、image-to-text、extract text/tables、表格抽取、文档转换/convert、导出/export、Markdown、LaTeX/TeX、DOCX、doc2x、doc2x-mcp、MCP 时使用。 +description: 使用 Doc2x MCP 工具处理 PDF、扫描件和图片:提交解析、查询状态、等待文本、导出 Markdown/LaTeX/DOCX、下载落盘,以及将 PDF v3 layout 结果写为本地 JSON。用户提到 PDF、OCR、scan/scanned PDF、image-to-text、extract text/tables、表格抽取、layout、Markdown、LaTeX/TeX、DOCX、doc2x、doc2x-mcp、MCP、figure/table crop、v3 JSON 时使用。 --- -# Doc2x MCP Tool-Use Skill (for LLM) +# Doc2x MCP -## 你要做什么 +## 目的 -你是一个会调用 MCP tools 的助手。凡是涉及 PDF/图片的“解析/抽取/导出/下载”,必须通过 `doc2x-mcp` tools 执行真实操作: +凡是“解析 PDF/图片、抽取文本/表格、导出文档、下载结果、获取 v3 layout JSON”的请求,都应通过 `doc2x-mcp` tools 执行真实操作,不要臆造 `uid`、`url`、文件内容或导出结果。 -- 不要臆测/伪造 `uid`、`url`、文件内容或导出结果 -- 不要跳过工具步骤直接输出“看起来合理”的内容 +## 必须遵守 -## 全局约束(必须遵守) +1. 所有文件路径都用绝对路径:`pdf_path`、`image_path`、`output_path`、`output_dir`。 +2. 不要伪造下载 URL;只能使用 `doc2x_convert_export_*` 返回的 `url`。 +3. 同一个 `uid` 的同一组导出参数不要并发重复提交。 +4. 同一个 `uid` 做多档导出对比时,必须按“导出成功 -> 立即下载 -> 再导出下一档”执行,避免结果覆盖。 +5. 不要回显 `DOC2X_API_KEY`;排错只用 `doc2x_debug_config` 的摘要信息。 +6. `model` 只用于 PDF 解析提交;`formula_level` 只用于导出,且仅在源解析为 `v3-2026` 时有效。 +7. `doc2x_parse_pdf_wait_text` 只适合预览或摘要;需要完整结果时优先导出文件。 +8. 需要 PDF v3 block/layout 坐标时,不要从文本结果推断,直接使用 `doc2x_materialize_pdf_layout_json`。 -1. 路径必须是绝对路径 - `pdf_path` / `image_path` / `output_path` / `output_dir` 都应使用绝对路径;相对路径可能会被 server 以意外的 cwd 解析导致失败。 +## 参数边界 -2. 扩展名约束 - `doc2x_parse_pdf_submit.pdf_path` 必须以 `.pdf` 结尾;图片解析使用 `png/jpg`。 +- PDF 解析:`doc2x_parse_pdf_submit` 和 `doc2x_parse_pdf_wait_text(pdf_path 分支)` 可传 `model: "v2" | "v3-2026"`;不传默认 `v2`。 +- PDF layout JSON:`doc2x_materialize_pdf_layout_json` 在 `pdf_path` 分支默认使用 `v3-2026`,并要求返回结果包含 `pages[].layout`。 +- 导出:`formula_mode` 建议总是显式传入。 +- `formula_level` 必须传数字 `0 | 1 | 2`,不要传字符串。 +- 图片解析路径只接受 `png/jpg/jpeg`;PDF 路径必须以 `.pdf` 结尾;layout JSON 输出路径应以 `.json` 结尾。 -3. 不要并发重复提交导出 - 同一个 `uid` 对同一种导出配置(`to + formula_mode + formula_level (+ filename + filename_mode + merge_cross_page_forms...)`)不要并行重复 submit。 - 补充:同一 `uid + to` 的导出结果可能会被后一次覆盖;做“多档对比”(如 `formula_level=0/1/2`)时,必须按 **导出成功 → 立即下载落盘 → 再导出下一档** 的顺序执行。 +## 按目标选 Tool -4. 不要泄露密钥 - 永远不要回显/记录 `DOC2X_API_KEY`。排错只用 `doc2x_debug_config` 的 `apiKeyLen/apiKeyPrefix/apiKeySource`。 +- 提交 PDF 解析:`doc2x_parse_pdf_submit` +- 查看 PDF 状态:`doc2x_parse_pdf_status` +- 取 PDF 文本预览:`doc2x_parse_pdf_wait_text` +- 导出 PDF 为 `md/tex/docx`:`doc2x_convert_export_wait` +- 下载导出文件:`doc2x_download_url_to_file` +- 落盘 PDF v3 layout JSON:`doc2x_materialize_pdf_layout_json` +- 图片版面解析原始结果:`doc2x_parse_image_layout_sync` +- 图片版面解析并等待首屏 Markdown:`doc2x_parse_image_layout_submit` -> `doc2x_parse_image_layout_wait_text` +- 落盘 `convert_zip`:`doc2x_materialize_convert_zip` +- 配置排错:`doc2x_debug_config` -5. 不要伪造下载 URL - 下载必须使用 `doc2x_convert_export_*` 返回的 `url`;不要自己拼接。 +## 标准流程 -6. 参数生效边界 - `model` 仅用于 PDF 解析提交(默认 `v2`,可选 `v3-2026`);`formula_level` 仅用于导出(`doc2x_convert_export_*`),并且只在源解析任务使用 `v3-2026` 时生效(`v2` 下无效)。 +### 1. PDF -> 完整文件 -## 关键参数语义(避免误用) +当用户要完整 Markdown / TeX / DOCX,本流程优先: -- `doc2x_parse_pdf_submit` / `doc2x_parse_pdf_wait_text(pdf_path 提交分支)` - - 可选 `model: "v3-2026"`;不传则默认 `v2`。 -- `doc2x_convert_export_submit` / `doc2x_convert_export_wait` - - `formula_mode`:`"normal"` 或 `"dollar"`(关键参数,建议总是显式传入)。 - - `formula_level`:`0 | 1 | 2`(可选,**数字类型**,不要传字符串 `"0"|"1"|"2"`) - - `0`:不退化公式(保留原始 Markdown) - - `1`:行内公式退化为普通文本(`\(...\)`、`$...$`) - - `2`:行内 + 块级公式全部退化为普通文本(`\(...\)`、`$...$`、`\[...\]`、`$$...$$`) +1. `doc2x_parse_pdf_submit({ pdf_path, model? })` +2. 轮询 `doc2x_parse_pdf_status({ uid })` 直到成功 +3. `doc2x_convert_export_wait({ uid, to, formula_mode, formula_level?, filename?, filename_mode? })` +4. `doc2x_download_url_to_file({ url, output_path })` -## Tool 选择(按用户目标) +说明: -- **PDF 解析任务**:`doc2x_parse_pdf_submit` → `doc2x_parse_pdf_status` -- **少量预览/摘要**:`doc2x_parse_pdf_wait_text`(可能截断;要完整内容请导出文件) -- **导出文件(md/tex/docx)**:`doc2x_convert_export_submit` → `doc2x_convert_export_wait`(或直接 `doc2x_convert_export_wait` 走兼容模式一键导出) -- **下载落盘**:`doc2x_download_url_to_file` -- **图片版面解析**:`doc2x_parse_image_layout_sync` 或 `doc2x_parse_image_layout_submit` → `doc2x_parse_image_layout_wait_text` -- **解包资源 zip**:`doc2x_materialize_convert_zip` -- **配置排错**:`doc2x_debug_config` +- `md/docx` 常用 `formula_mode: "normal"` +- `tex` 常用 `formula_mode: "dollar"` +- 需要完整内容时,不要用 `doc2x_parse_pdf_wait_text` 代替导出 -## 标准工作流(照做) +### 2. PDF -> 文本预览 -### 工作流 A:批量 PDF → 导出文件(MD/TEX/DOCX,高效并行版) +仅在用户要快速预览、摘要、少量文本时使用: -适用于“多个 PDF 批量导出并落盘(.md / .tex / .docx)”。核心原则: +- `doc2x_parse_pdf_wait_text({ pdf_path | uid, max_output_chars?, max_output_pages?, model? })` -- `doc2x_parse_pdf_submit` 可并行(批量提交) -- `doc2x_parse_pdf_status` 可并行(批量轮询) -- **流水线式并行**:某个 `uid` 一旦解析成功,立刻开始该 `uid` 的导出+下载(不必等所有 PDF 都解析完) -- 不同 `uid` 的导出与下载可并行 -- **同一个 `uid` 的同一种导出配置(`to + formula_mode + formula_level (+ filename + filename_mode + merge_cross_page_forms...)`)不要并行重复提交** -- 同一个 `uid` 若要导出多种格式(例如 md + docx + tex),建议**按格式串行**,但不同 `uid` 仍可并行 +若出现截断提示,应切回“PDF -> 完整文件”流程。 -**批量提交解析任务(并行)** +### 3. PDF -> v3 layout JSON -- 对每个 `pdf_path` 调用:`doc2x_parse_pdf_submit({ pdf_path, model? })` → `{ uid }` +当用户要 figure/table 坐标、block bbox、layout blocks、后续裁剪脚本输入时使用: -**等待解析完成(并行)** +- 优先:`doc2x_materialize_pdf_layout_json({ uid | pdf_path, output_path, model? })` -- 对每个 `uid` 轮询:`doc2x_parse_pdf_status({ uid })` 直到 `status="success"` -- 若 `status="failed"`:汇报 `detail`,该文件停止后续步骤 +要向用户说明 `layout` 的用途: -**导出目标格式(并行,按 uid)** +- `Markdown/text` 适合阅读正文;`layout` 适合程序继续处理页面结构 +- `layout.blocks[].bbox` 可用于 figure/table 裁剪、区域截图、框选高亮、可视化调试 +- `layout.blocks[].type` 可用于区分标题、正文、表格、图片等块,做结构化抽取 +- `layout` 适合作为后续脚本输入,例如 figure/table crop、block 对齐、版面分析 +- 如果用户只想“看内容”,优先给 Markdown / DOCX;如果用户要“知道内容在页面哪里”,就用 `layout` -推荐用 `doc2x_convert_export_wait` 走“兼容模式一键导出”(当你提供 `formula_mode` 且本进程未提交过该导出时,会自动 submit 一次,然后 wait),避免你手动拆成 submit+wait: +行为要求: -- DOCX:`doc2x_convert_export_wait({ uid, to: "docx", formula_mode: "normal", formula_level? })` → `{ status: "success", url }` -- Markdown:`doc2x_convert_export_wait({ uid, to: "md", formula_mode: "normal", formula_level?, filename?, filename_mode? })` → `{ status: "success", url }` -- LaTeX:`doc2x_convert_export_wait({ uid, to: "tex", formula_mode: "dollar", formula_level? })` → `{ status: "success", url }` +- 走 `pdf_path` 分支时,默认使用 `v3-2026` +- 输出的是原始 parse `result` JSON,而不是精简文本 +- 若返回结果缺少 `pages[].layout`,应视为失败而不是静默降级 -(或显式两步:`doc2x_convert_export_submit(...)` → `doc2x_convert_export_wait({ uid, to })`) +### 4. 图片 -> 版面结果 -**补充建议** +- 直接拿原始结果:`doc2x_parse_image_layout_sync({ image_path })` +- 等待并取首屏 Markdown:`doc2x_parse_image_layout_submit({ image_path })` -> `doc2x_parse_image_layout_wait_text({ uid })` +- 结果包含 `convert_zip` 且用户要资源落盘时:`doc2x_materialize_convert_zip({ convert_zip_base64, output_dir })` -- `formula_mode` 是关键参数:建议总是显式传入(`"normal"` / `"dollar"`,按用户偏好选择;常见:`md/docx` 用 `"normal"`、`tex` 用 `"dollar"`) -- 需要做公式退化时显式传 `formula_level`(`0/1/2`);若不需要退化,建议显式传 `0`,避免调用端默认值歧义 -- `filename`/`filename_mode` 主要用于 `md/tex`:传不带扩展名的 basename,并配合 `filename_mode: "auto"`(避免 `name.md.md` / `name.tex.tex`) -- 对同一个 `uid` 做多格式导出时,先确定顺序(例如先 md 再 docx),逐个完成再进行下一个格式 -- 对同一个 `uid` 的同一格式做“多档参数对比”(如 `formula_level`),每一档都要先下载再进行下一档,避免覆盖导致误判 +### 5. 批量 PDF -**批量下载(并行)** +批量场景采用流水线,不要全串行: -- `doc2x_download_url_to_file({ url, output_path })` → `{ output_path, bytes_written }` -- `output_path` 必须为绝对路径,且每个文件应唯一(建议用原文件名 + 对应扩展名:`.md` / `.tex` / `.docx`) +1. 多个 `pdf_path` 可并行 `doc2x_parse_pdf_submit` +2. 多个 `uid` 可并行 `doc2x_parse_pdf_status` +3. 某个 `uid` 一旦 parse 成功,立即开始它自己的导出和下载 +4. 不同 `uid` 可并行导出 +5. 同一个 `uid` 的同一种导出配置不要并发 -**并发建议** +## 向用户回报 -- 10 个 PDF 以内通常可以直接并行;更多文件建议分批/限流(避免触发超时/限流) +- 成功时报告:输入文件、`uid`、输出路径、必要时 `bytes_written` +- 失败时报告:错误码、错误消息、相关 `uid`,并指出哪些文件未受影响 +- 当用户目标是“本地文件”时,优先回报落盘结果,不要只贴长文本 -**向用户回报(按文件汇总)** +## 常见错误处理 -- 成功:列出每个输入文件对应的 `output_path` 与 `bytes_written` -- 失败:列出失败文件与错误原因(包含 `uid` 与 `detail`/错误码),并说明其余文件不受影响 - -### 工作流 B:PDF → Markdown 文件(推荐) - -当用户目标是“拿到完整 Markdown / 落盘”,主链路应当是导出与下载,不要依赖 `doc2x_parse_pdf_wait_text`。 - -**提交解析任务** - -- `doc2x_parse_pdf_submit({ pdf_path, model? })` → `{ uid }` - -**等待解析完成** - -- 轮询 `doc2x_parse_pdf_status({ uid })` 直到 `status="success"`(失败则带 `detail` 汇报) - -**导出 Markdown** - -- `doc2x_convert_export_wait({ uid, to: "md", formula_mode: "normal", formula_level?, filename?, filename_mode? })` → `{ status: "success", url }` - -**下载落盘** - -- `doc2x_download_url_to_file({ url, output_path })` → `{ output_path, bytes_written }` - -**向用户回报** - -- 回复用户:保存路径、文件大小、`uid`(必要时附上 `url`) - -### 工作流 C:PDF → 文本预览(可控长度) - -当用户只需要“摘要/少量预览”时才用: - -- `doc2x_parse_pdf_wait_text({ pdf_path | uid, max_output_chars?, max_output_pages? })` - -如果返回包含截断提示(`[doc2x-mcp] Output truncated ...`),应切换到“工作流 B”导出 md 获取完整内容。 - -### 工作流 D:PDF 导出格式(MD / TEX / DOCX) - -- Markdown:`to="md"`(完整 Markdown 导出优先参考“工作流 B”) -- LaTeX:`to="tex"` -- Word:`to="docx"` -- 调用链同“工作流 A / B”(先解析 → 再导出 → 再下载),按目标格式调整 `to`(并按需设置 `formula_mode/formula_level/filename`) -- 注意:`doc2x_convert_export_submit.formula_mode` 必填(`"normal"` 或 `"dollar"`);`formula_level` 可选(`0/1/2`) -- 若需要对比不同 `formula_level`,请按顺序执行并在每次导出成功后立即下载,再进行下一档,避免后一次结果覆盖前一次。 - -### 工作流 E:图片 → Markdown(版面解析) - -- 只要结果(同步):`doc2x_parse_image_layout_sync({ image_path })`(返回原始 JSON,可能包含 `convert_zip`) -- 要首屏 markdown(异步):`doc2x_parse_image_layout_submit({ image_path })` → `doc2x_parse_image_layout_wait_text({ uid })` - -如果结果里有 `convert_zip`(base64)且用户希望落盘资源文件: - -- `doc2x_materialize_convert_zip({ convert_zip_base64, output_dir })` → `{ output_dir, zip_path, extracted }` - -## 失败与排错(你应当这样处理) - -1. 鉴权/配置异常 - 先 `doc2x_debug_config()`,确认 `apiKeyLen > 0` 且 `baseUrl/httpTimeoutMs/pollIntervalMs/maxWaitMs` 合理。 - -2. 等待超时 - 建议用户调大 `DOC2X_MAX_WAIT_MS` 或按需调 `DOC2X_POLL_INTERVAL_MS`(不要过于频繁)。 - -3. 下载被阻止(安全策略) - `doc2x_download_url_to_file` 只允许 `https` 且要求 host 在 `DOC2X_DOWNLOAD_URL_ALLOWLIST` 内;被拦截时解释原因,并让用户选择“加 allowlist”或“保持默认安全策略”。 - -4. 用户给的是相对路径/不确定路径 - 要求用户提供绝对路径;不要猜。 +1. 缺参数或路径不合法:提示用户提供绝对路径,不要猜测相对路径。 +2. 等待超时:说明可调大 `DOC2X_MAX_WAIT_MS` 或适度调整轮询间隔。 +3. 下载被策略拦截:解释是 `DOC2X_DOWNLOAD_URL_ALLOWLIST` 限制,不要绕过。 +4. 认证或配置问题:调用 `doc2x_debug_config`,只汇报 `apiKeySource/apiKeyPrefix/apiKeyLen` 等摘要。 diff --git a/src/doc2x/materialize.ts b/src/doc2x/materialize.ts index 58c6fdb..3737cff 100644 --- a/src/doc2x/materialize.ts +++ b/src/doc2x/materialize.ts @@ -2,6 +2,9 @@ import fsp from 'node:fs/promises'; import path from 'node:path'; import { spawn } from 'node:child_process'; +import { ToolError } from '#errors'; +import { TOOL_ERROR_CODE_INVALID_JSON } from '#errorCodes'; + function spawnUnzip(zipPath: string, outputDir: string): Promise { return new Promise((resolve) => { const child = spawn('unzip', ['-o', zipPath, '-d', outputDir], { stdio: 'ignore' }); @@ -10,6 +13,49 @@ function spawnUnzip(zipPath: string, outputDir: string): Promise { }); } +function isRecord(value: unknown): value is Record { + return value !== null && typeof value === 'object' && !Array.isArray(value); +} + +export function validatePdfLayoutResult(result: unknown, uid?: string) { + if (!isRecord(result)) + throw new ToolError({ + code: TOOL_ERROR_CODE_INVALID_JSON, + message: 'parse result must be a JSON object', + retryable: false, + uid, + }); + + const pages = result.pages; + if (!Array.isArray(pages) || pages.length === 0) + throw new ToolError({ + code: TOOL_ERROR_CODE_INVALID_JSON, + message: 'parse result must contain a non-empty pages array', + retryable: false, + uid, + }); + + for (let i = 0; i < pages.length; i++) { + const page = pages[i]; + if (!isRecord(page)) + throw new ToolError({ + code: TOOL_ERROR_CODE_INVALID_JSON, + message: `pages[${i}] must be an object`, + retryable: false, + uid, + }); + if (!isRecord(page.layout)) + throw new ToolError({ + code: TOOL_ERROR_CODE_INVALID_JSON, + message: `pages[${i}].layout must be an object`, + retryable: false, + uid, + }); + } + + return { result, pageCount: pages.length, hasLayout: true as const }; +} + export async function materializeConvertZip(args: { convert_zip_base64: string; output_dir: string; @@ -22,3 +68,20 @@ export async function materializeConvertZip(args: { const extracted = await spawnUnzip(zipPath, outDir); return { output_dir: outDir, zip_path: zipPath, extracted }; } + +export async function materializePdfLayoutJson(args: { + result: unknown; + output_path: string; + uid?: string; +}) { + const validated = validatePdfLayoutResult(args.result, args.uid); + const outputPath = path.resolve(args.output_path); + await fsp.mkdir(path.dirname(outputPath), { recursive: true }); + await fsp.writeFile(outputPath, `${JSON.stringify(validated.result, null, 2)}\n`, 'utf8'); + return { + uid: args.uid ?? '', + output_path: outputPath, + page_count: validated.pageCount, + has_layout: validated.hasLayout, + }; +} diff --git a/src/doc2x/pdf.ts b/src/doc2x/pdf.ts index 5fe6c95..1a602ff 100644 --- a/src/doc2x/pdf.ts +++ b/src/doc2x/pdf.ts @@ -16,7 +16,9 @@ import { DOC2X_TASK_STATUS_FAILED, DOC2X_TASK_STATUS_SUCCESS } from '#doc2x/cons import { HTTP_METHOD_GET, HTTP_METHOD_POST } from '#doc2x/http'; import { v2 } from '#doc2x/paths'; -export const PARSE_PDF_MODELS = ['v3-2026'] as const; +export const PARSE_PDF_MODEL_V2 = 'v2' as const; +export const PARSE_PDF_MODEL_V3 = 'v3-2026' as const; +export const PARSE_PDF_MODELS = [PARSE_PDF_MODEL_V2, PARSE_PDF_MODEL_V3] as const; export type ParsePdfModel = (typeof PARSE_PDF_MODELS)[number]; type Doc2xPageResult = { page_idx?: unknown; md?: unknown }; type Doc2xParseResult = { pages?: Doc2xPageResult[] }; @@ -141,17 +143,13 @@ export async function parsePdfStatus(uid: string) { }; } -export async function parsePdfWaitTextByUid(args: { +async function waitForParsePdfSuccessByUid(args: { uid: string; poll_interval_ms?: number; max_wait_ms?: number; - join_with?: string; - max_output_chars?: number; - max_output_pages?: number; }) { const pollInterval = args.poll_interval_ms ?? CONFIG.pollIntervalMs; const maxWait = args.max_wait_ms ?? CONFIG.maxWaitMs; - const joinWith = args.join_with ?? '\n\n---\n\n'; const uid = String(args.uid || '').trim(); if (!uid) @@ -182,13 +180,7 @@ export async function parsePdfWaitTextByUid(args: { } throw e; } - if (st.status === DOC2X_TASK_STATUS_SUCCESS) { - const merged = mergePagesToTextWithLimit(st.result, joinWith, { - maxOutputChars: args.max_output_chars, - maxOutputPages: args.max_output_pages, - }); - return { uid, status: DOC2X_TASK_STATUS_SUCCESS, ...merged }; - } + if (st.status === DOC2X_TASK_STATUS_SUCCESS) return st; if (st.status === DOC2X_TASK_STATUS_FAILED) throw new ToolError({ code: TOOL_ERROR_CODE_PARSE_FAILED, @@ -199,3 +191,29 @@ export async function parsePdfWaitTextByUid(args: { await sleep(pollInterval); } } + +export async function parsePdfWaitResultByUid(args: { + uid: string; + poll_interval_ms?: number; + max_wait_ms?: number; +}) { + const st = await waitForParsePdfSuccessByUid(args); + return { uid: st.uid, status: DOC2X_TASK_STATUS_SUCCESS, result: st.result }; +} + +export async function parsePdfWaitTextByUid(args: { + uid: string; + poll_interval_ms?: number; + max_wait_ms?: number; + join_with?: string; + max_output_chars?: number; + max_output_pages?: number; +}) { + const joinWith = args.join_with ?? '\n\n---\n\n'; + const st = await waitForParsePdfSuccessByUid(args); + const merged = mergePagesToTextWithLimit(st.result, joinWith, { + maxOutputChars: args.max_output_chars, + maxOutputPages: args.max_output_pages, + }); + return { uid: st.uid, status: DOC2X_TASK_STATUS_SUCCESS, ...merged }; +} diff --git a/src/mcp/registerPdfTools.ts b/src/mcp/registerPdfTools.ts index 71ea002..0608e36 100644 --- a/src/mcp/registerPdfTools.ts +++ b/src/mcp/registerPdfTools.ts @@ -3,16 +3,21 @@ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import { CONFIG } from '#config'; import { isRetryableError } from '#errors'; import { + PARSE_PDF_MODEL_V2, + PARSE_PDF_MODEL_V3, type ParsePdfModel, parsePdfStatus, parsePdfSubmit, + parsePdfWaitResultByUid, parsePdfWaitTextByUid, } from '#doc2x/pdf'; +import { materializePdfLayoutJson } from '#doc2x/materialize'; import { asJsonResult, asTextResult } from '#mcp/results'; import { deleteUidCache, fileSig, getSubmittedUidFromCache, + jsonOutputPathSchema, joinWithSchema, makePdfUidCacheKey, missingEitherFieldError, @@ -37,7 +42,7 @@ export function registerPdfTools(server: McpServer, ctx: RegisterToolsContext) { inputSchema: { pdf_path: pdfPathSchema, model: parsePdfModelSchema.describe( - "Optional parse model. Use 'v3-2026' to try the latest model. Omit this field to use default v2.", + `Optional parse model. Supported values: '${PARSE_PDF_MODEL_V2}' and '${PARSE_PDF_MODEL_V3}'. Omit this field to use default ${PARSE_PDF_MODEL_V2}.`, ), }, }, @@ -92,7 +97,7 @@ export function registerPdfTools(server: McpServer, ctx: RegisterToolsContext) { ), model: parsePdfModelSchema .describe( - "Optional parse model used only when submitting from pdf_path. Use 'v3-2026' to try latest model. Omit this field to use default v2.", + `Optional parse model used only when submitting from pdf_path. Supported values: '${PARSE_PDF_MODEL_V2}' and '${PARSE_PDF_MODEL_V3}'. Omit this field to use default ${PARSE_PDF_MODEL_V2}.`, ), }, }, @@ -186,4 +191,86 @@ export function registerPdfTools(server: McpServer, ctx: RegisterToolsContext) { }, ), ); + + server.registerTool( + 'doc2x_materialize_pdf_layout_json', + { + description: + `Wait for a PDF parse task and write the raw Doc2x result JSON (with page layout) to output_path. Prefer passing uid. If only pdf_path is provided, this tool reuses a cached uid or submits a new parse with model='${PARSE_PDF_MODEL_V3}' by default.`, + inputSchema: { + uid: parsePdfUidSchema.optional(), + pdf_path: pdfPathForWaitSchema.optional(), + output_path: jsonOutputPathSchema, + poll_interval_ms: positiveIntMsSchema.optional(), + max_wait_ms: positiveIntMsSchema.optional(), + model: parsePdfModelSchema + .describe( + `Optional parse model used only when submitting from pdf_path. Supported values: '${PARSE_PDF_MODEL_V2}' and '${PARSE_PDF_MODEL_V3}'. Defaults to '${PARSE_PDF_MODEL_V3}' for this tool because ${PARSE_PDF_MODEL_V2} does not return layout.`, + ), + }, + }, + withToolErrorHandling( + async (args: { + uid?: string; + pdf_path?: string; + output_path: string; + poll_interval_ms?: number; + max_wait_ms?: number; + model?: ParsePdfModel; + }) => { + const materializeByUid = async (uid: string) => { + const out = await parsePdfWaitResultByUid({ + uid, + poll_interval_ms: args.poll_interval_ms, + max_wait_ms: args.max_wait_ms, + }); + return await materializePdfLayoutJson({ + uid: out.uid, + result: out.result, + output_path: args.output_path, + }); + }; + + const uid = String(args.uid || '').trim(); + if (uid) return asJsonResult(await materializeByUid(uid)); + + const pdfPath = String(args.pdf_path || '').trim(); + if (!pdfPath) throw missingEitherFieldError('uid', 'pdf_path'); + + const sig = await fileSig(pdfPath); + const model: ParsePdfModel = args.model ?? PARSE_PDF_MODEL_V3; + const cacheKey = makePdfUidCacheKey(sig.absPath, model); + const resolvedUid = getSubmittedUidFromCache(ctx, { kind: 'pdf', key: cacheKey, sig }); + const finalUid = resolvedUid || (await parsePdfSubmit(pdfPath, { model })).uid; + setSubmittedUidCache(ctx, { kind: 'pdf', key: cacheKey, sig, uid: finalUid }); + + const markFailed = (failedUid: string) => + setFailedUidCache(ctx, { kind: 'pdf', key: cacheKey, sig, uid: failedUid }); + + try { + return asJsonResult(await materializeByUid(finalUid)); + } catch (e) { + if (!resolvedUid) { + markFailed(finalUid); + throw e; + } + + deleteUidCache(ctx, { kind: 'pdf', key: cacheKey }); + if (!isRetryableError(e)) { + markFailed(finalUid); + throw e; + } + + const retryUid = (await parsePdfSubmit(pdfPath, { model })).uid; + setSubmittedUidCache(ctx, { kind: 'pdf', key: cacheKey, sig, uid: retryUid }); + try { + return asJsonResult(await materializeByUid(retryUid)); + } catch (retryErr) { + markFailed(retryUid); + throw retryErr; + } + } + }, + ), + ); } diff --git a/src/mcp/registerToolsShared.ts b/src/mcp/registerToolsShared.ts index 06c0852..6806835 100644 --- a/src/mcp/registerToolsShared.ts +++ b/src/mcp/registerToolsShared.ts @@ -6,7 +6,7 @@ import { LRUCache } from 'lru-cache'; import { z } from 'zod'; import { CONVERT_FORMULA_LEVELS, type ConvertFormulaLevel } from '#doc2x/convert'; -import { PARSE_PDF_MODELS, type ParsePdfModel } from '#doc2x/pdf'; +import { PARSE_PDF_MODEL_V2, PARSE_PDF_MODELS, type ParsePdfModel } from '#doc2x/pdf'; import { ToolError } from '#errors'; import { TOOL_ERROR_CODE_INVALID_ARGUMENT } from '#errorCodes'; import { asErrorResult } from '#mcp/results'; @@ -160,8 +160,8 @@ export function sameSig(a: FileSig, b: FileSig): boolean { return a.md5 === b.md5; } -function normalizeParsePdfModel(model?: ParsePdfModel): ParsePdfModel | 'v2' { - return model ?? 'v2'; +function normalizeParsePdfModel(model?: ParsePdfModel): ParsePdfModel { + return model ?? PARSE_PDF_MODEL_V2; } export function makePdfUidCacheKey(absPath: string, model?: ParsePdfModel): string { @@ -263,6 +263,12 @@ export const outputPathSchema = absolutePathSchema.describe( 'Absolute path for the output file. The file will be overwritten if it exists.', ); +export const jsonOutputPathSchema = absolutePathSchema + .refine((v) => v.toLowerCase().endsWith('.json'), { + message: "Path must end with '.json'.", + }) + .describe('Absolute path for the output JSON file. The file will be overwritten if it exists.'); + export const doc2xDownloadUrlSchema = z .string() .trim() diff --git a/test/e2e/mcpServer.e2e.test.js b/test/e2e/mcpServer.e2e.test.js index 0d23971..242ffdf 100644 --- a/test/e2e/mcpServer.e2e.test.js +++ b/test/e2e/mcpServer.e2e.test.js @@ -50,6 +50,7 @@ test('stdio e2e: list tools and basic error/result paths', async (t) => { const toolNames = new Set(tools.tools.map((x) => x.name)); assert.ok(toolNames.has('doc2x_debug_config')); assert.ok(toolNames.has('doc2x_parse_pdf_wait_text')); + assert.ok(toolNames.has('doc2x_materialize_pdf_layout_json')); assert.ok(toolNames.has('doc2x_parse_image_layout_wait_text')); const debug = await client.callTool({ name: 'doc2x_debug_config', arguments: {} }); @@ -64,6 +65,14 @@ test('stdio e2e: list tools and basic error/result paths', async (t) => { const pdfWaitPayload = JSON.parse(firstText(pdfWait)); assert.equal(pdfWaitPayload.error.code, TOOL_ERROR_CODE_INVALID_ARGUMENT); + const pdfLayout = await client.callTool({ + name: 'doc2x_materialize_pdf_layout_json', + arguments: { output_path: path.resolve(cwd, 'test/out/layout.json') }, + }); + assert.equal(pdfLayout.isError, true); + const pdfLayoutPayload = JSON.parse(firstText(pdfLayout)); + assert.equal(pdfLayoutPayload.error.code, TOOL_ERROR_CODE_INVALID_ARGUMENT); + const imageWait = await client.callTool({ name: 'doc2x_parse_image_layout_wait_text', arguments: {} }); assert.equal(imageWait.isError, true); const imageWaitPayload = JSON.parse(firstText(imageWait)); diff --git a/test/unit/materialize.test.js b/test/unit/materialize.test.js new file mode 100644 index 0000000..6a0fcf4 --- /dev/null +++ b/test/unit/materialize.test.js @@ -0,0 +1,60 @@ +import assert from 'node:assert/strict'; +import fsp from 'node:fs/promises'; +import os from 'node:os'; +import path from 'node:path'; +import test from 'node:test'; + +import { TOOL_ERROR_CODE_INVALID_JSON } from '../../dist/errors/errorCodes.js'; +import { + materializePdfLayoutJson, + validatePdfLayoutResult, +} from '../../dist/doc2x/materialize.js'; + +test('validatePdfLayoutResult accepts result with per-page layout objects', () => { + const out = validatePdfLayoutResult({ + pages: [ + { page_idx: 0, layout: { blocks: [] } }, + { page_idx: 1, layout: { blocks: [{ id: 'b1', type: 'Text' }] } }, + ], + }); + + assert.equal(out.pageCount, 2); + assert.equal(out.hasLayout, true); +}); + +test('validatePdfLayoutResult rejects pages without layout', () => { + assert.throws( + () => + validatePdfLayoutResult({ + pages: [{ page_idx: 0, md: '# no layout' }], + }), + (err) => { + assert.equal(err.code, TOOL_ERROR_CODE_INVALID_JSON); + assert.match(err.message, /pages\[0\]\.layout must be an object/); + return true; + }, + ); +}); + +test('materializePdfLayoutJson writes raw result JSON to output_path', async () => { + const tempDir = await fsp.mkdtemp(path.join(os.tmpdir(), 'doc2x-mcp-layout-')); + const outputPath = path.join(tempDir, 'result.layout.json'); + const result = { + version: 'v1', + pages: [{ page_idx: 0, layout: { blocks: [{ id: 'block-1', type: 'Figure' }] } }], + }; + + const out = await materializePdfLayoutJson({ + uid: 'uid-123', + result, + output_path: outputPath, + }); + + assert.equal(out.uid, 'uid-123'); + assert.equal(out.output_path, outputPath); + assert.equal(out.page_count, 1); + assert.equal(out.has_layout, true); + + const saved = JSON.parse(await fsp.readFile(outputPath, 'utf8')); + assert.deepEqual(saved, result); +}); diff --git a/test/unit/registerToolsShared.test.js b/test/unit/registerToolsShared.test.js index a5a1750..cfb0dd9 100644 --- a/test/unit/registerToolsShared.test.js +++ b/test/unit/registerToolsShared.test.js @@ -8,11 +8,13 @@ import { doc2xDownloadUrlSchema, fileSig, getSubmittedUidFromCache, + jsonOutputPathSchema, makePdfUidCacheKey, imagePathSchema, makeConvertSubmitKey, missingEitherFieldError, outputPathSchema, + parsePdfModelSchema, pdfPathSchema, setFailedUidCache, setSubmittedUidCache, @@ -60,6 +62,7 @@ test('path schemas enforce absolute and extension constraints', () => { const badImage = path.resolve('/tmp/a.gif'); const relativeOut = 'tmp/out.md'; const absoluteOut = path.resolve('/tmp/out.md'); + const absoluteJsonOut = path.resolve('/tmp/out.json'); assert.equal(pdfPathSchema.safeParse(goodPdf).success, true); assert.equal(pdfPathSchema.safeParse(badPdf).success, false); @@ -71,6 +74,8 @@ test('path schemas enforce absolute and extension constraints', () => { assert.equal(outputPathSchema.safeParse(absoluteOut).success, true); assert.equal(outputPathSchema.safeParse(relativeOut).success, false); + assert.equal(jsonOutputPathSchema.safeParse(absoluteJsonOut).success, true); + assert.equal(jsonOutputPathSchema.safeParse(absoluteOut).success, false); }); test('download URL schema only allows http/https', () => { @@ -79,11 +84,20 @@ test('download URL schema only allows http/https', () => { assert.equal(doc2xDownloadUrlSchema.safeParse('ftp://example.com/file').success, false); }); +test('parse pdf model schema allows explicit v2 and v3-2026', () => { + assert.equal(parsePdfModelSchema.safeParse('v2').success, true); + assert.equal(parsePdfModelSchema.safeParse('v3-2026').success, true); + assert.equal(parsePdfModelSchema.safeParse('v1').success, false); +}); + test('pdf uid cache hits for same signature from test/pdf/test.pdf', async () => { const ctx = createRegisterToolsContext(); const pdfPath = path.resolve(process.cwd(), 'test/pdf/test.pdf'); const sig1 = await fileSig(pdfPath); const key = makePdfUidCacheKey(sig1.absPath); + const explicitV2Key = makePdfUidCacheKey(sig1.absPath, 'v2'); + + assert.equal(key, explicitV2Key); assert.equal(getSubmittedUidFromCache(ctx, { kind: 'pdf', key, sig: sig1 }), ''); From e55a049beb0c4bcd030704ee623abf439318b99d Mon Sep 17 00:00:00 2001 From: HSn Date: Fri, 13 Mar 2026 12:53:06 +0800 Subject: [PATCH 2/3] chore: upgrade mcp sdk to fix vulnerabilities --- package.json | 2 +- pnpm-lock.yaml | 76 +++++++++++++++++++++++++------------------------- 2 files changed, 39 insertions(+), 39 deletions(-) diff --git a/package.json b/package.json index 38803ca..3576ceb 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "prepublishOnly": "pnpm run build" }, "dependencies": { - "@modelcontextprotocol/sdk": "1.26.0", + "@modelcontextprotocol/sdk": "1.27.1", "@types/lodash": "^4.17.23", "lodash": "4.17.23", "lru-cache": "^11.2.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9cf45d5..5ece15d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@modelcontextprotocol/sdk': - specifier: 1.26.0 - version: 1.26.0(zod@4.3.6) + specifier: 1.27.1 + version: 1.27.1(zod@4.3.6) '@types/lodash': specifier: ^4.17.23 version: 4.17.23 @@ -36,14 +36,14 @@ importers: packages: - '@hono/node-server@1.19.9': - resolution: {integrity: sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw==} + '@hono/node-server@1.19.11': + resolution: {integrity: sha512-dr8/3zEaB+p0D2n/IUrlPF1HZm586qgJNXK1a9fhg/PzdtkK7Ksd5l312tJX2yBuALqDYBlG20QEbayqPyxn+g==} engines: {node: '>=18.14.1'} peerDependencies: hono: ^4 - '@modelcontextprotocol/sdk@1.26.0': - resolution: {integrity: sha512-Y5RmPncpiDtTXDbLKswIJzTqu2hyBKxTNsgKqKclDbhIgg1wgtf1fRuvxgTnRfcnxtvvgbIEcqUOzZrJ6iSReg==} + '@modelcontextprotocol/sdk@1.27.1': + resolution: {integrity: sha512-sr6GbP+4edBwFndLbM60gf07z0FQ79gaExpnsjMGePXqFcSSb7t6iscpjk9DhFhwd+mTEQrzNafGP8/iGGFYaA==} engines: {node: '>=18'} peerDependencies: '@cfworker/json-schema': ^4.1.1 @@ -70,8 +70,8 @@ packages: ajv: optional: true - ajv@8.17.1: - resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + ajv@8.18.0: + resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} body-parser@2.2.2: resolution: {integrity: sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==} @@ -164,8 +164,8 @@ packages: resolution: {integrity: sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==} engines: {node: '>=18.0.0'} - express-rate-limit@8.2.1: - resolution: {integrity: sha512-PCZEIEIxqwhzw4KF0n7QF4QqruVTcF73O5kFKUnGOyjbCCgizBBiFaYpd/fnBLUMPw/BWw9OsiN7GgrNYr7j6g==} + express-rate-limit@8.3.1: + resolution: {integrity: sha512-D1dKN+cmyPWuvB+G2SREQDzPY1agpBIcTa9sJxOPMCNeH3gwzhqJRDWCXW3gg0y//+LQ/8j52JbMROWyrKdMdw==} engines: {node: '>= 16'} peerDependencies: express: '>= 4.11' @@ -215,8 +215,8 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} - hono@4.11.9: - resolution: {integrity: sha512-Eaw2YTGM6WOxA6CXbckaEvslr2Ne4NFsKrvc0v97JD5awbmeBLO5w9Ho9L9kmKonrwF9RJlW6BxT1PVv/agBHQ==} + hono@4.12.7: + resolution: {integrity: sha512-jq9l1DM0zVIvsm3lv9Nw9nlJnMNPOcAtsbsgiUhWcFzPE99Gvo6yRTlszSLLYacMeQ6quHD6hMfId8crVHvexw==} engines: {node: '>=16.9.0'} http-errors@2.0.1: @@ -230,8 +230,8 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - ip-address@10.0.1: - resolution: {integrity: sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==} + ip-address@10.1.0: + resolution: {integrity: sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==} engines: {node: '>= 12'} ipaddr.js@1.9.1: @@ -244,8 +244,8 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - jose@6.1.3: - resolution: {integrity: sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==} + jose@6.2.1: + resolution: {integrity: sha512-jUaKr1yrbfaImV7R2TN/b3IcZzsw38/chqMpo2XJ7i2F8AfM/lA4G1goC3JVEwg0H7UldTmSt3P68nt31W7/mw==} json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} @@ -326,8 +326,8 @@ packages: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} - qs@6.14.2: - resolution: {integrity: sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==} + qs@6.15.0: + resolution: {integrity: sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==} engines: {node: '>=0.6'} range-parser@1.2.1: @@ -430,24 +430,24 @@ packages: snapshots: - '@hono/node-server@1.19.9(hono@4.11.9)': + '@hono/node-server@1.19.11(hono@4.12.7)': dependencies: - hono: 4.11.9 + hono: 4.12.7 - '@modelcontextprotocol/sdk@1.26.0(zod@4.3.6)': + '@modelcontextprotocol/sdk@1.27.1(zod@4.3.6)': dependencies: - '@hono/node-server': 1.19.9(hono@4.11.9) - ajv: 8.17.1 - ajv-formats: 3.0.1(ajv@8.17.1) + '@hono/node-server': 1.19.11(hono@4.12.7) + ajv: 8.18.0 + ajv-formats: 3.0.1(ajv@8.18.0) content-type: 1.0.5 cors: 2.8.6 cross-spawn: 7.0.6 eventsource: 3.0.7 eventsource-parser: 3.0.6 express: 5.2.1 - express-rate-limit: 8.2.1(express@5.2.1) - hono: 4.11.9 - jose: 6.1.3 + express-rate-limit: 8.3.1(express@5.2.1) + hono: 4.12.7 + jose: 6.2.1 json-schema-typed: 8.0.2 pkce-challenge: 5.0.1 raw-body: 3.0.2 @@ -467,11 +467,11 @@ snapshots: mime-types: 3.0.2 negotiator: 1.0.0 - ajv-formats@3.0.1(ajv@8.17.1): + ajv-formats@3.0.1(ajv@8.18.0): optionalDependencies: - ajv: 8.17.1 + ajv: 8.18.0 - ajv@8.17.1: + ajv@8.18.0: dependencies: fast-deep-equal: 3.1.3 fast-uri: 3.1.0 @@ -486,7 +486,7 @@ snapshots: http-errors: 2.0.1 iconv-lite: 0.7.2 on-finished: 2.4.1 - qs: 6.14.2 + qs: 6.15.0 raw-body: 3.0.2 type-is: 2.0.1 transitivePeerDependencies: @@ -557,10 +557,10 @@ snapshots: dependencies: eventsource-parser: 3.0.6 - express-rate-limit@8.2.1(express@5.2.1): + express-rate-limit@8.3.1(express@5.2.1): dependencies: express: 5.2.1 - ip-address: 10.0.1 + ip-address: 10.1.0 express@5.2.1: dependencies: @@ -584,7 +584,7 @@ snapshots: once: 1.4.0 parseurl: 1.3.3 proxy-addr: 2.0.7 - qs: 6.14.2 + qs: 6.15.0 range-parser: 1.2.1 router: 2.2.0 send: 1.2.1 @@ -642,7 +642,7 @@ snapshots: dependencies: function-bind: 1.1.2 - hono@4.11.9: {} + hono@4.12.7: {} http-errors@2.0.1: dependencies: @@ -658,7 +658,7 @@ snapshots: inherits@2.0.4: {} - ip-address@10.0.1: {} + ip-address@10.1.0: {} ipaddr.js@1.9.1: {} @@ -666,7 +666,7 @@ snapshots: isexe@2.0.0: {} - jose@6.1.3: {} + jose@6.2.1: {} json-schema-traverse@1.0.0: {} @@ -719,7 +719,7 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 - qs@6.14.2: + qs@6.15.0: dependencies: side-channel: 1.1.0 From b520e26bacc93e57f8973244b31a6e4e84497db8 Mon Sep 17 00:00:00 2001 From: HSn Date: Sat, 14 Mar 2026 19:58:43 +0800 Subject: [PATCH 3/3] docs: add icon, changelog, and skill update reminder - Add icon.png to package.json files field - Add icon display (SVG rounded corners) to README.md and README_EN.md - Add CHANGELOG.md with history from v0.1.0 to v0.1.4 - Add Changelog link to README table of contents (both zh/en) - Add post-upgrade Skill reinstall reminder in README Install Skill sections - Add Release Checklist to AGENTS.md (version / CHANGELOG / README sync) --- AGENTS.md | 15 +++++++++++++++ CHANGELOG.md | 39 +++++++++++++++++++++++++++++++++++++++ README.md | 16 +++++++++++++++- README_EN.md | 14 ++++++++++++++ icon.png | Bin 0 -> 220118 bytes package.json | 3 ++- 6 files changed, 85 insertions(+), 2 deletions(-) create mode 100644 CHANGELOG.md create mode 100644 icon.png diff --git a/AGENTS.md b/AGENTS.md index b5eecb4..ebbd975 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -56,6 +56,21 @@ DOC2X_API_KEY=sk-xxx npm run build && npm start - Zod URL validation should use `z.url()` (for example via `.pipe(z.url())`) instead of deprecated `z.string().url()`. +## Release Checklist + +When bumping the package version, always update all three of the following together: + +1. **`package.json`** — update `"version"` field. +2. **`CHANGELOG.md`** — add a new section `## [x.y.z] - YYYY-MM-DD` with a summary of changes. Move items from `Unreleased` if applicable. +3. **`README.md` / `README_EN.md`** — if any tool names, parameters, env vars, or workflows changed, sync the relevant sections. + +After releasing a new version, remind users to re-run the Skill install command to pick up the latest tool descriptions: + +```bash +# One-command update (no clone needed) +curl -fsSL https://raw.githubusercontent.com/NoEdgeAI/doc2x-mcp/main/scripts/install-skill.sh | sh +``` + ## Commit & Pull Request Guidelines - Use Conventional Commits style (e.g., `feat: ...`, `fix: ...`, `docs: ...`). diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..dc68416 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,39 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +## [0.1.4] - Unreleased + +- feat: add project icon (`icon.png`) +- chore: upgrade `@modelcontextprotocol/sdk` to fix vulnerabilities +- feat: add display page support + +## [0.1.3] - 2026-02-28 + +- feat: add v3-2026 parse model support (`doc2x_parse_pdf_submit`, `doc2x_parse_pdf_wait_text`) +- feat: add `doc2x_materialize_pdf_layout_json` tool for v3 layout JSON materialization +- feat: restructure source packages for better maintainability +- fix: support explicit `v2` parse model parameter + +## [0.1.2] - 2026-01-19 + +- feat: add Skill installation scripts (Bash, PowerShell 7+, Windows PowerShell 5.1) +- fix: install skill shell script issues +- fix: update skill installation category from `local` to `public` +- fix: restrict `doc2x_parse_pdf_status` response to status fields only +- chore: streamline CI workflow + +## [0.1.1] - 2026-01-17 + +- feat: cap parse output via `DOC2X_PARSE_PDF_MAX_OUTPUT_CHARS` and `DOC2X_PARSE_PDF_MAX_OUTPUT_PAGES` +- feat: improve developer ergonomics for MCP tools +- ci: set up GitHub Actions publish and build workflows + +## [0.1.0] - Initial release + +- feat: initial Doc2x MCP server implementation +- feat: PDF parse tools (`submit` / `status` / `wait_text`) +- feat: export tools (`submit` / `result` / `wait`) +- feat: image layout parse tools (sync / async) +- feat: download tools (`download_url_to_file`, `materialize_convert_zip`) +- feat: `doc2x_debug_config` diagnostics tool \ No newline at end of file diff --git a/README.md b/README.md index 6c3d733..2df9833 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,16 @@ # Doc2x MCP Server +

+ + + + + + + + +

+ [![CI](https://github.com/NoEdgeAI/doc2x-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/NoEdgeAI/doc2x-mcp/actions/workflows/ci.yml) [![Publish](https://github.com/NoEdgeAI/doc2x-mcp/actions/workflows/publish.yml/badge.svg)](https://github.com/NoEdgeAI/doc2x-mcp/actions/workflows/publish.yml) [![npm version](https://img.shields.io/npm/v/%40noedgeai-org%2Fdoc2x-mcp)](https://www.npmjs.com/package/@noedgeai-org/doc2x-mcp) @@ -22,6 +33,7 @@ - [安装本仓库 Skill(可选)](#安装本仓库-skill可选) - [安全与排错](#安全与排错) - [问题反馈](#问题反馈) +- [Changelog](./CHANGELOG.md) - [License](#license) ## 项目定位 @@ -214,7 +226,9 @@ pnpm audit --prod --audit-level high ## 安装本仓库 Skill(可选) -用于给 Codex CLI / Claude Code 增加一个“教大模型如何使用 doc2x-mcp tools 的 Skill”。 +用于给 Codex CLI / Claude Code 增加一个"教大模型如何使用 doc2x-mcp tools 的 Skill"。 + +> **提示:** 每次升级 `doc2x-mcp` 版本后,建议重新运行安装命令以更新 Skill,确保大模型使用最新的 tool 描述与工作流。 不需要 clone 仓库的一键安装(推荐): diff --git a/README_EN.md b/README_EN.md index 68dc0cd..4333289 100644 --- a/README_EN.md +++ b/README_EN.md @@ -1,5 +1,16 @@ # Doc2x MCP Server +

+ + + + + + + + +

+ [![CI](https://github.com/NoEdgeAI/doc2x-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/NoEdgeAI/doc2x-mcp/actions/workflows/ci.yml) [![Publish](https://github.com/NoEdgeAI/doc2x-mcp/actions/workflows/publish.yml/badge.svg)](https://github.com/NoEdgeAI/doc2x-mcp/actions/workflows/publish.yml) [![npm version](https://img.shields.io/npm/v/%40noedgeai-org%2Fdoc2x-mcp)](https://www.npmjs.com/package/@noedgeai-org/doc2x-mcp) @@ -22,6 +33,7 @@ A stdio-based MCP Server that wraps Doc2x v2 PDF/image capabilities into stable, - [Install Repo Skill (Optional)](#install-repo-skill-optional) - [Security and Troubleshooting](#security-and-troubleshooting) - [Getting Help](#getting-help) +- [Changelog](./CHANGELOG.md) - [License](#license) ## Project Scope @@ -216,6 +228,8 @@ pnpm audit --prod --audit-level high Installs a reusable skill for Codex CLI / Claude Code to guide tool usage with the standard `submit/status/wait/export/download` workflow. +> **Note:** After upgrading `doc2x-mcp` to a new version, re-run the install command to update the Skill and ensure the model uses the latest tool descriptions and workflows. + One-command install without cloning (recommended): ```bash diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3ce82cae5e4695f4608a93f8329311f49785f84b GIT binary patch literal 220118 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∓St==Gb{q){t&OU)%aW{`WV3{Fs$9Dy7NuB*pRP2Pa~fN^9=t@|4;m zx1a%uwLy)d+C_I`S@NnFmu6Il_rGn!k;_#!xN_|stdFR@o3*~1$Ng9?Q-4*U`1R`R z?~i{&rD2p%K|+^{{}4deZGUB=LU#9;mn+0_PuouI6g3AZfFkPdtp|=BPD?;MIU)>t ziak4(iquoQb`p9@QpfN|eZrf;9G<5rz%5+6HS{@jVo*_8YiT2wjwBgCJh*)=Mf>*) zir&O9xi7f~?|*h>Mpp35l)bART`1b{CEr()$Ug%=T)m0!j~@e9DDGw2O>Pe%KhOjp z!wI&WSZ$2uP+mlKcVhorKikj0H);-3g}P;vNV5m!Tn>xu8y!;(PF|}8z2b<}yM5?t z-Ff-`GZP)=Y@U=DDE~{k%z%LJKB`ZYZrJ)XrM7#j@Z(hGr~f9-T4-Ra8xLZeO19(~ z_;1z2(vIy>vQf3<>yqb&h9X7!%g-Y%``a#>_B`_QlK?5u^MfiIF$U8#NdssYFci&N zK*Lh*L0VK#EG9?H_3JQtAhoSw)c`KX#G}HvltX>JOdEzqbb& z>JIAjEcDRoecH%W(F_SkjVlF)Ad%Hbx4*Z$Oh?nA z-hZY|P2~3STF;6}fQspYy}?iGU_2FSThLGMXutY+xP8~CF;}szVEn6sU*9IZP?u-y z=snoJYhtBrG&;I{V_Uo*E)KzY0s%KtIduaM?Ft+CP)-E3v<~e!aM82FAI)FTOl$(s zf)Id!+y-evIBz^M6f?eFh&HTJ!f^_fOplos$@(ITz3-0at7@;k#Y-2dLOU{V?N}&#wXy3H#PO!ZhYszSeKzn!jrdof zeb%w-=e>XZE;DDZ;!>XaOqMVqtEE|I|6_k!t9}??JfNW)>vdeb!WPeU4TK@2=nFNX znUCJ=42y0Zo%QuBHyVf^-51X6#nPphnoV$R7NZ-g7m^z2T?x>J$RZ%S4}-UbNUPUC zas@m_y$+$%IF}%sk%%l8IyW8aS=}>skSq`{8*(gJNmu1B&qCf4n`RF29JI6CCKz3q zxYa=ubB_^LHS1Zb;-HL279AEt9*>gocJIr?a)EfiJ^JS>zdw$I7GC8jo{)-5%Wt0Q zq@WAM1wWXv3+QQEGn+0ZazFcsKQ@U!CAo5)uxDJI#j?p6jVcHeiVecWKINHkePW(L zYB3unksgvxcQkcI;kGL7TlAM%F#KAoqHQ`m^Zq+MeL(sMf_9(>YO^|}Cp5%B@Z}*S zhX+arA|XS5`t05*M$nI__adwkf*#lgD*2QTYgdh3iu^%CQ>&(Ej%0hv(#T*YyVw?P zziw^@*n0JGEXc7X*kmxb;2*$bfG`i=7576zRqBt(U1Wo&M?5e`N}n#muhw1leDjjs z9&&C5q-6Hnjy>L^coH%>B9>z;LO*P8(njJA%rC(C_a}(9zK<-gQ1nin?AWYouAVi{ zml{_7(7K-D{W-x~`G@Pu$eFJ5^l6BFAtHYoF2NHBTx3IE%d)dirYa1qKL3#=<85@I zH0%VgCc-_sMy**?FzBeGxWqC5zS$DVJwzddx(o4vygI@&;2lx$_R=)f0}WOioUOc$ z(vFdh>E|J_$1$T(8n2m+Yn1KkOdNHP_%xeH{mJHflk84BFiEOlIxg@U%R)#Fu5y58 z6%T9)nC7jDTO>PyO$=*JQ)z zWj#xTJ?+JZiampn*n|tw&{F~-qO8&H+4ljp$mDgV@X^It0iH%4E4ef&++E%i!!lmL z@`T$PSVSm=gtzR@)&Mf!CQ5{gB|6eN<%DieVp+}Z{YL~FiS`A?cN5H5sAU?#eYx7h zRl~rFL3J;n5w$SjCKwS{(ZR8yVJqDLoX8Elz?wiPDzPU^s`x%=o#O4L*`@UyH~6c* zKywl7nl(g@Z(n`C=$)fg+YS0!Qjdwk4RH}m6O>UHC;T0!WwY>$SOy9CL68XcP82~6 z%B!#qLB5Gm18*%h ze9@}zZrv-`Tm0k$9nFNMjpR9b&bw6f^n&yiO5GN}1tdrF`F2#XY?oCgBTkqJ|9gE-`g8HB*1}SKVa)KC~ z$O2F;_JgqtJrJ~IiA2ng&18)=0J^@`odG267P3z!$qdJvL4Z;qvO8O6!&g;FbLJZv zdGJ#0R9u5~=sRCwLgv!LB@N{#q9P}5DDp#L}Kj&CzvwDScw z?fMJn^m7|K>3q6~;;WZY*-%vlnF>;x;%X;r5RDJ1Qwj#ceWxX6Ei|j-9v&+@q)mW3 zV4^$XBEw3<_Y!%Ez3;h)9S3^CqyM{p??-_)k)!>iCxv9$F zaA{{!2-+1iTVBRUw3#kjmET&id$Bc1qa|(g7O9zTGy+M zvNw;tCLgD#&9DW8k9v>x*_u1zTa3Teg!f$@cvW=Ce;qBZ7MG2oPo*GTfI_78=w(8Y zUp1R}r09y^x(aSy|(qz85#t0giZ!HK29E}_h`+STPVg*kpeQq2tz{d4_$B>rx$LA z(6hp1YR37u_DzZ9JH-)JK+y_q{d@10V~IayklQdEmOXC`6as13*M2^XTC6Z&Nq>F&l6`$y zu{$~jNNoWH=wqKG3gscPvbEoqYp3Ixxks_<-fd#i-L!V32Wu9}Jv)Ang? ze;067JzV+Ig3(_)cVHcebAP{u>=mz1EnOd4o?N|TgIZBAx~n|=WmSl}H-z@HocZ0p z{?&ISH&FQDR&Yfjm9rhyMiX$ zxQaGC(?x6JgH_gMA-R8E+51P^BiiaC33dQ1@C%L^Y#1jJh==#AX~K1XFg;+!t8ou3 z1^@;hZGFwZ!vJEB#rHi2m;}1NWjaF(5DepGmKT0s3yASlQRh#P_k>d6iTWEP3hI7lLN=|@BvyI0RX&h`if$uLDYbdh$efz*|I^q@wz$LT z%MRt7!iAlHavNNgAF)O6_N~r_I#*~VW$_HR75^j?_AH6&@htE647`kiOJ_BXSd>>< ztQxmV-kIc>Z@d+UwgGrpL1 zk#3Rm?au^87geCM1+EtKN}&A$PU~Xl~$HNcL^n-*28K{*ng6d4wg%T%j!z9?-0j+p+pqvl!%B z0i@reXole*H8rXSBup*(bPue1mi+*x{@tuDoPebwKXCG@- zb!X=3>_LUs;OH)yDnI3TLa>&ji}K2K+gNL>{zdPW#5`Y8(RR0N8#%=%r=IXT92zPQ zmJI}Z2I1m*T-KzYiT(dmeR0BAIxBu@#I|xp?f849-QAJO$wrIu{I;UKNt?FyayGqx zUFbC<*v#6~a{ZRy5oClv!4`yrz4-WaM-rHM26rSdAcE=(pjRQbQ4<{AO~opO{~Xv_ z2OrC%Ueg=nc8&$m61f;<{>$v?SfQ!+Gv$FVd1Q*|-rGP1Y(eQTyZvt1_bzqhA;3*Z z(=+$Ob+yn0_-n)92J#!kSS#Qa$RdF-FF-uM2&B*&-&qn903Eo+IX96)wpRuPvS1)U z)`UfG=#AK}6X$TwJo<3W{N|GTbnPML{o?PMVBLut%~Slzls@g+lg-x`*{HU4n3%0g z&dgLUl#TTde%d>DIvWkA`ocr=W8(4m;>aS8n8j!2+9Jurc=Qxfyg0qbbn=hBta~4# zd@fTww+OjYS!|AkPp55B; zUGf%6@rPTLnpm*OR79SFp+#)=RHN+_L=2G2Y9K8;K^b}`kZ5wfH;ZZ<+=+k31)m24 zqNQstu`G;VP;}5-He_8;s<2HVR^X8DUSsX9bZO`QCR?#2908oMCnSh1fDsBuJwokC z91wpV)vx6>$0qU9^k7BI=a!VJa^FWB%A5!)2{m)!0Qa#PL8$ij@=l4 zIr9e<#xAxb;%>>k=A;*Ysb|(*Ivo~M5;k5go7g2l0zFE+FKMUV&fOorZ!AkV)Lt;M zr$D=-mzx?vfo#u5>yh~iIpf@&WwSn?T(PWlBU0I;H+#zDw}$&S@ANKfpK96;tHXT5 zD!#Os;n6{+cB$hjIre zwxJM5Smh4KX5>4a5pCUl?y^qBq_jefeJr02Oj7;r1xDHZpz@LX*ZY4KoD|5J&RgBG z6&Rr`-ggw2I$*p=Lj+VsE1bT``b6vmKhdr~@25pb-T>HdqCJ90!x|{vnBNLsDTLPCK3Y~ekR9F)< z(srOvnIBW<&CVOYJ$X1c=GKl)mve@r8DBfdS0ips2b6>=Lcp#`^ zWLKBs>;BV60*%jN7js`1C<_ZwJqZ~K6pr+vzL^FI11^c))&4wG_IzSu>YUB9rb28u z6OWam#p1ZpVyV&}|JZxrc}i^&yIAq5t?tqa`G|OBq|*C?Y^dh(f%F~g+aGUTznd}7 z-32?6UxsrPtNBYKY|kiLA{IGPAQEQb+yb)X-eAUnv{K{XF7Sglh{{QtdJ>UX6fJwW ziu9K8E|z^B|5Enu>75L+^$)HgTfdgs+oP_J<5Jqf{SqiP0vjaZLpzMHB%FzF=um7f zGh^TYZM6dAkM#1PBf1N)Fs&ek3OCGFM?rZ%mett7w{e^KPcINi!v<#2_@B*_w_26g zLMARNcKcZP;-nHTi3?Z#>$jq#!;igHj|WGogL&D%+$zALDFpGvtcSNX^z>QdItg}U@!@vl^lsMN(M%X~%hz2vE9P8mFn zXHr@WafU$V2pR{5WK|7Xs@XpdCE0yqI(%yctuSFx}b5lNacX4<$Ni-(2r zF={0>04@l_wMLpNSlH9_EC&K5tU`v1cA@*T-!H!Yc(P#shf4Mm2hwC~ZNb!2n_aWG zGxT7xO&w`IjltJNgk*|2A`^8uNeG0%ZGSs4-u+f?OwZE8~425 z_x-wGujlje%%~8ndRt$+o@_)dQc0f?xXI+ncUIei~R9>m#o@NsiEob+)#QobaMRra>00n%uG_HHz=!e@7LR} z{m1%@v8YNUD?{o8ADIz&m8LPl23~XIfYoK27*uEjKu0)f=$2z?;R9f-99%|)$!ZJ5 zeq&K@^#aZ~m%p4eY4rXeXF%L=eqUYhS;^yUpPUEk2r;(6|4sp5iqn97$ZwJJK)Vm| zktn0-3HWGm{lxX3b84gF^!#Ka1#AQE;lVggfA~i)BIz--(;NFyZz7R5RH&1YVeF4y z`eF?3>JnxY&8YeD#_fVccgc6|6H+~~w8-!e_&Bm3_**YIv)!*LqUU8ti0IlxXJF&W zvs#0X`*c%lld{5FtMsOl<7_5@g8V94AhUGzW%;w{qt{hssdVAT^1gXUD}rGqgZkj} z?#z+-j#046?EV{(@xG#4&Ix_ zO=yY%6N^0uhLPl8$e#^S-J78%<(va&Lz{w@);4Xkm%S>TpFcILJRn3vnbJ=m&6rTG8D_z5#kqJA?Q?ieGU1#v zyZl<@VajD)ont0jz%=St73L*P7Qsy1&|s2EgC$IyokyLc{(I=cQ}~zs;G~I2D{ji9 zo->C2j<4GUKJ5Ojk^NecAG9)us+VPMK+xfSkK$&^^=CDQe0)Ubp?T;lf7w?qD&h2P z(j76wewwYOZB&MTHLfQc*2BIY1?|DMZBO{`B8sRw*ay`SvtTE;O~;acx3>I4zjc)u z2UHxOc%rZYUjZ0R?^Q@Bz%OaT0tN%CVgUi05`-JD z``71oqI?SwwSQ}vHpE4K*&5C*judn^7n$#r#t=6-u)Xm=T=Ct*mRNsLHgqCWqz?!)Dz2%*&3HvIeb6}XeJwWnFIY_oxmk8ZM1{qxLKmZk|C z#j~-tFws-Hcz{75Dh!?hO#a~@nQ2Cr6g})<3RMo_y0ED$QdZ)w#nK061Nngsm{?I2 z=lu7Ng`X-ry{&mo7d?*nbiTwzekx{ji!lekou~pe3w|do85*xFxN9TFTq7hR_J1Np z`!4n>s+=c9r#IduybG#`65O~X2U^|=!{@GTV(3r;)0f09d79p|*2MLmPQW9nQ~79J z=jQ{R>#kj=U^f@FUK+({R4aG<@7#9OovrW)7C*Y-uax{w}}{mT+}=eF!y z8eJh~8G7Mfv}bTiFH-O&mo5A9^xAIsBPLXuMcRu!pc9~>4gb%Ql;95u=B7)iDZ;eN zGxI`dM^6HnrA(QfJmarlui1udipX|pJ$O|e3c#tPSc_ErP1U%*ExXuS&*}mt4`Gr_ zsvNMP#Pfy}Hav#{7O{$~SERNA7Dd|U7)D{vK~Y40I~AhkMn|w>LGw}I+ zi{6Nr1iJ?;1KKY@v)uxyyziY+oBqR71AZqrq7P;Ap+0GHC`rWONwY$6qh0;QWh3uIY;$|Fz{JNun^{f;idBhAAmJ9L(%(r{!L z#LmC|!#~Y^w8ClV-{~ar(8En#oD8Il0-~O8I({f_W?W$(E>Acg(VEs)Yn79)F;Mw< ztgCgH*agZzUvgu{J-sZu7K>}XhS{RY7wiYpv+iZbc)MMZ$-RX6I(py#C`Z$&sElU~ zha(>dAZ1LdA>>i>1nxfttvcvO!OFo-t4P(*yk(e||Hq|u^gG3(FT1n#)Sr`Q*o@E& zl6l9zJm0W3wto?XAaP8VXYuY|I>?GYmuh?hMDAqAv z5M8MP=xVX()NI7JDK$i=a|TfqG#bxAOVQJ7w%_lo{Vp%;m~y5MRi|%Nv>+#b5*f?v z-g7d*rC}c#tTdr6}eJ z*e6{JkzM%jrxXnTT<3WSvngTon&<{J5r#Sp$cz&KgC{OSYoM#$Rj3}EO zxeZx@y;%_73D2j;2kR;d=w~a7mZB8jz>G=k)qBTA<+VSgyX6M~ISi_Yq@5Ha)k|d9; zX;@3ao}X1C?@C(>3!PU~C{i$*Y=hfGD;{ELJ1`gl^%PoYn<-Y{Meo{dj2?U+7zl_z z!P|aA4OkiK<81R!zm{j#4rs~O!dQug4(HgN44S?0-g(1j-ECE{zflzjNnkLnMEKjaFcRvvQOQ$?78Gb$ZU> zf$e?+RrC?heSTeRMPFM!6&ad34(t7;xo9TK%NbM@C3WmND2h2(R_n8WqAS;i^>}B} zf$uCB6i@VeA)kYNtNO#6*1ibCoApSv@%XHVO{EVw0QTv0gQo4%UvE$ywX`wj3l={-Z& z`v-?BwELW)+2xZrZ3l1q$Jw8jsW6?;+mmEig{4}tpVGxu&D~r4RG3^MK!g%R&9q{* z^V!5_Su$Z3aFo&qnE$GpWi^_Egd*6X+10l4)3Lgm?@(xPG7)H#O5xfH^MVVK=+be$ zz=69nVbYEJ$!Nh!wWtOtXy?f~U|~+i$S<0beEvKpG*At-DpfQ+jO?4R9{bXg9z(7p z4%4esht(rk&c7KfqN8Kph~e$yzGZ9Kx;q6+a8gbPAPhwp_XK(ZBZ z!@^JKfMeMt1LH+etyzmdH4zfYhf4yJPFP=ye#l}sVPQR zV44c4D4Oa@v9Uybf#woD7U&I;vKQi+=F6ebizbLLw3R8h7MJOb|1N1>L)voIOP&9( zqbcmoYVB+bNH0QS2m%VpGrR-CNoMAXCHvNMCv$k?2l$dm{>Ai^N%yBk)qKeZJvawS z-<}NYv7%|^tVuBM<~@7a{rWgZ7RCt^`4>C3c5}EfdSV7d&*@r-)_8gB%J=oM1B!M^ z{T5AUIm7)ObitLh;D(0d_np6A3N(+-oGnF6f&yc}pmUaZzo41^4oN}4r=T+S@HqdJ z;++3-xS^9@?a6yoOD?ZXBr}LjqmmUm{O@qzkvq_OkwOav0i>I!f%8j+p?Vn{h3LT` zkQ?LitgSY<-c4%7_aN0w-_Von(z768FiSsk4$n*Raeq87$?3ZiK29y}{BVse?THNa z>Dl8K-%vorx#X8WCU6)Gk)kT~Z#ekHbBn_TL1lR93iR!f^Qv*W?&^wOINVHmQvXhG z7Mm65SK!=$Bpy!Iz+T<}|G<=hE((OPqQkpj0pK}#=8Z3scfuUQvW$wI(`j?lYVyx( zLE=eEuFvlgYv;$R(Dc?$jAJ;b4ro33ytJ!2@zuU*f-o*0n7Tj$R!h`wWRfx2NM0@gA+d!; zg?Ny_I5kigZE%R8?6T1^z@z0lO{rCDWq4K;WjMcxD?i2wF^2Ub&vMBf-{9h)h+Owc zVOB?bTR@Hn$tpSoVivB~_yb&9_j|}&=-ZvS)MgXW(ZX&jDHmBIyIdNlu?^MT_oK1P zY(6aR99}#=F^=J??-i!!w1A!_JEF;`eACX84t%6=#l;1PXPjqx0mKNw%9<$RX^j$c z@Re(aH#r6Ig&{3v?{w-remQaKpB+q(ZFzZM+xciH0X9acW-xc6z(ZU(h+$FWjohQZ zz-@a)@-I3ypEF9i!)c*6b#=&^EhUjfY!&LNzz(s-jBx3A{x2Se(G~g%n7NuE;3JBP zV+^+oU8I+6gZ5FF-tBWs1KTiP;_&qgt z8v3{WeICYf-W=+AGJVOKe*&Z(_Inpuy$gg}4{3<7xR1}BVgaQy@>}%fv4VzP^OqJB z9)-6{d}AVnKe63s`J`ThzC6RN3slLFd&ME#lEEi|_;JN}4h@!Sc>+Lfb)Y_yobwr? zSFPQt1ct{c1pgMH^~KJ5WG`27+$mR5xlDKbUmecK0Uy)OK_Qb?=#UZ%e+~336#(r~ zjG(R>&OICrG9+;A`sf2WG1O}88Fp)p^)sAS#likM;dijR!H0ksO$kw2c6-q^-O<-$ zZ({mdHDaOI!xWUFmIlZY`k(N(s5frJ-i6_q3pA77sJYNs5~@FENPkv9N*cCCA}!mz z|I%}Ywe#+<=S~ef-_8F&YaD?Qx=318O=z0wzMjmLkdCW@l{)>jXv5zA({{t`qf_-R zqJNUamy-h0?Zu{yJpalzK@XlG-sc4_?Dpnv?~H{|xhm#Cn;^Z&WXiAg7cpcM)JStx z=K=~=2k-3MniDHt1uX`jK!*MXOy1)rrW?W^CLtt2MvNY3duwE5Z4M zkVQC?5SO>#I2n3*hMl%rH&w&<%|FVERqCw5lXjcRF6m5%dAi4u8uDKHe=!Gdl#E~R zc%$K=0}(6sDBz1_|LbxmF?G1MSA*P7h@a5&ctC_b46_^*g40ATNJKICC(Fc8Ai$A4 z*nCF9!05CAS`Cj}0xz8Ud2FH|tPI ztkE$2VzOFV+ofZ?#|5m>8rDcQdul6KHBE1bD2aK{3~#S=#uhoaHmSorM~%ENUsnT? zTM?aal-(l`zG%v(IBKAiUo8U>+qT;8KBkbgBy zm*6?Tu?LqSD4akY?VVE;Z0u>qNI1XLa79a#REJX=?;3p8-^+{iIkZSPrA*QISku|D z7TbTajGZdsLQF96TxIfocWJ#acP48=} zP?sB~Ux=mP7aVJhm?$0ADeL9I=E4f_-_hii=Rb$mO0*bgx(>Yu4tuO(V{oAK%n*p3NoK5ndE|l)|)+e)KHy(`zqQ zc7!RIczB5b3xx)RRp#g*H9$bo@<6DEJqs13KKTUTEhL`<%qG*@BSm{hXy|jN#+@De zg)Y!qhsjjY^cU8^w07)}f_^NFflw{64*&DRo!YUXx9-D*S>n4{zq)ChmR&cZBs}H~ z1ih0!$rUNGCyLo6kIOpt$uaD}F%#g{gRXvyd(dJ^7YBSHYkpZz=4r&DK)b3)xO0Z z9)u>TjqWJidOgMluxmg`*0>4M{JJ?PIcpTX?*FC}XB9G$YC3VrZTeoUO6DxQO^jPG zo!>b=xL|i|tgv_F39E;s_@kti)gr z(`5S)J*@)A!o-_w`T!cei6Ca@xLLcUJ2P}h?!as>(y%kk-V|DGsHdzib-V1duy*+M z;8G*fDO{5LW?$yo$Qu{rFq zKn)V7&>aTZO|F8XpP;aqY7y;Z;3Sfw5|2F|4B9c(D=joU!#b9TM z!taq2n8xpFe`CRI2_Lg6mCY>8CF1B!%4!yhl*%Sn*_aBFCk7u4oEz}8_P;U*SsN6F zv;p0c$TRbp8wvcg2tGm1i#(k zt#vo6s;c&VUF$s25yXFXR?GF?aqq4jY7P$D;J|rvcXvVCO3Ng~Wvq*=?>+tH$y@^u z`PObK_RaWY^RCaGp`uFD{NX@%_TbaSRpHH6%cxOyiqsl83{MrQr`e{;b8s_-L-sIX ztTtfc8-0HD-re099DaOlsmBbWbGO@k$sIwub;n*R0njEIOjm`{UX-V$NEa$c#A|)usM5T>kcmvrhk&vcH87%F4X%%+1 z_>rKRk;ODo9`D=&ZBjc9k{GfM7YoE>5a*FjQ z!!-&dFdPTUc2P~Ap3$p)TNLz_)&8xQ+>Egf;7DG$gpM2t>Nq~w-$s|6rI+wC!+Zq7 z&^^2$e%sBe&#Rr4vQ=*VZ2y--eRo8Q>pyU<1+KlHXg;yK0&_eU9 z4LYZ1UGzBru9C7&1r5DBwv{KP!glPxk$|kQ22=LOlgp&9q}}67nl$xOjqNNj;x|O+ zb|)hmP(?XNMMI1OPpZ{iV#YW;S-|;>sEs#%Ka;r*FM-T;CJO$(ALg)Q(}szJ{P|`I z7K$J&18@cb9H4&4ACm8;$EuK^qG{6vI{8SqLC}C?jy6QyY(>wbCoy~9e@RJxt#iZH z(sze?rcmb9yqu8zsVXby3(q~P+2VZ&(IYDrr?;Ggc;ap(++WR!R+yZ8;Ym}cww8k##}ki{pVF}`S#K6y(wxmh#8^+`HTT?R4d1QGbL{`R z@COO5i&qI|`z8!n50(oWrK62=c78u!y`U{T(DUQynryxCyf`Qw%ev}H-#F2y5c`Or zLcy~w4itoF0=2VruqVKcHJ-mLDI!<)Nh`=lqNuKDv@%+~D>4OU#0fPtoq@uq#1LA3 z0tpz>e!+0oYz;^pa|{2kFe&sJS^XqCGR)nY_jf?(@auhPT5;_0Sk zNdpH-)lI&t5G)TY~BhRamN z$$U{J|B9(*O)JD85Of7!hjSnb+I=Ya&bvjv>WQd~W7lt8Z@GkY9Bv_qLYXD}g%#1) zlv!T*xNV;$gXAtvBl7GnJUFPDeJ*SAv%B!E7CT<6z$9L#sG;p+JQTo}2GGY1=}*cE zn)ZDZo`)L&48bM7+Nb&g9tAAC6E^s`W#@m)&Y%OXOJbuQ`g4^na3Z4DZW-TGrD*q@ zX1{B>(dJmY*Kh6|z0!Q|cu~TC>3#PjJ{jtb{Yw(zMz-fp&dQxU({eB{#|YlQc-b$s zl+59tx-4mX$?tnE+;7ELQz;n&eo1Ts7L8=a04)O}DuOg<+muc2aaV_q(e%Q0 zB$FqZ(zk`*h=rH*4R>AJ?K<1yG}NmV`kt_qt;8JOG!{3{^T-Rs9TT398-%$P4nP$x=nc9=d82x_b|QM zqZ&AWARj?+X!JXN9>A=81*_2;t%{*P%B;u*+KM6HR zG^TMLRZaWW*xF;aM-Q03D5^}SkVHQC!x}fDg+8|%AwMMGaMp??OKub{s_`h>=i?p! zsJAgQ*jC_p?;=0?$4d`=$3(U9Ll^PQZq33Aj^39vo{y?(y zD@*!y%za|4rSJHPXSBvN0_p?-5#2Wgc`7DQ4Kge;0S_4#3DsOF*-5U-{|^j ziqYY2vxL647TX^SyEEK-#t!nY@p`Wv9QfJ&c>W#=0@%bsdFPK!@XpaiDibEE+f5Gt zJKr9(M$Brr5%3ur1V~&}k>lc_Ys$PcuE}SAHD|R>cQp4-(^+vKXjjtdmC(}O%K|DPSC_X8P-S?wq)o%@A{=xpMoM=R7*R!oWcRb zoAWA)ZqY?`oba<&5e1OwV+!j{OYpag$_r6%-S2%6t8%k?_09;Mf_kxAdABU6h%cFO7SR1>Gq0BkSbNnKf7`EdSBW# z$u}}f-gzBtqabmwp6o7mkLHD@rzv>0u(o&y^}9HUP)Ac7V-Fp9d{DLRP9I9d240s5 z{nIAfFG~-0-3IBI1Wfv_IKisZn-Z6_h;AQyrj2S}g7WvW)^;0J5vV`jcEsLN;`WWLy&pF)kYg3uWF-U=YREP8v+J4VFt@p{+}K{Wfjv~f z*G{{A>E$14+n4L3br>9=+31b1QUnl91nzrU^Bw^=#gi3&x?^8Ac#xh=(scXJQaNvZ zK=6*o-5&}IR~IF!SuoJ}0S^%DBVm#uXzTyqk7&q~(RSXvgpelS)OJCZ4b*UXq)QP? zP05r0UdI8$=BaCaM2N>tVZyG&eh#;)DvKH5` zPgbTYN{5nUlK>#4H-u(~TqmKJXr{a)4HZ~#T|6?8@@AvD@s68c+waXmTx+-8ejo?Y zr?#+0w(!R~`J!9P=s#+Jt+hS+#mC}m>+shq<~pa2THMN)n{A{_&|juzjg?)(f*DVr zqA#j;V|7}$_JBbeYdqRVcWmE=XVXvMG<9HW!7MAAJ0*kXJ1#V!ZLE#GntpDw#R88Z z8a!q)bhR}J4MqVRA){!byh0Xz>0fhTgFUbEACtVn4MF!+$z71DC&2Dj zk-q>f#@Rlwbac=7(V>8QAxpL{OLkpv*du3+quA8Ltqb|Ntg&BMY;KMV4;4br0x;aQ zv1Mr0Lwj*+iO>DCK9|YME@G(ryoj!hcCo^LTaX^|u=f-5# zTeeZO^(_kyo8%Xief|^&z{Nq?ad)JzNOk6>#Q}%9^hK{_(%<}{c&o?fn!Ma@0RxJm zmLWoq^kXXJU_VrV=?JWpV9l!7h33XLe_@SXZ?Wwz^ll~9)34vEC*eO~SvK#4)z`OZ z8#rit4l{9AqY7@AlW5bkuy1P}O%E}Kx`@O<*TdGM4|$L$fhd`g6`*MCU9ouC(wjyil zE=xpX!K=NGmNGb*F{a8M?kEV@ZD3@8*tR_25|EY~9b18hqIb+3O-3?x&Nk(SrGX3A z1!t(PLsCyGVN1%UM{2TJBZW!*tl&4y?Pt~GyrA$5Sy0b55R@WN2EfzqXuQUx*sSJU zg9-t3N^h8ZpSS*kf$O{Qo_4uz=o0jXp)x-1E_i!3QN_~}XlsnMyO3~|K?F`G^S^ub zy6F+VYjH}F`NB2ae2<1KwN+VM-ze#CEAa7aIef=lwgt)rm>}_rnhIFxgW}-FtAYnm z7Y#|KMZw|beMQAZ*dC;V2Y5o1Hj8<^cU>a>hd9fH8bz$oyKQdl$u(7v?r)y)g2FgT zM|9kd?vtJ+Gp#W3bInLeu-b;pRb4d2;HSMopi(yp5N`GFNvn z?E)YN%kT%@pO^@;FwmqZOdqnf`rIEcyjVS#Hwx#aEnjx<#P&+ruPAUf+Tc3RsYHol znJFF38OUi~NU4E77!M1v#707syft=UEL3tgYqU3O>~WSaXvl00?#H#|UlDlE6TfxG ze!8}ahMmNTz$Wztx%%WUUN9rN>tp^wIjxkfnl!gKsK{10kN)|l?bOX~K}dTSJ%eIK znYx!{J=LMtkug!QBU?p|!hNodFE|F(tv(e#0;&>|67%dZ0>)2Xa|{!x+DP+SzD!?t z=8_pV=ahQOhQANWp5I?uq$XPd=|AQ#8x`Q#16o@Rv8H?L<xS=`aNpLEyF}8)_q)THM^%_tv$8*xJcoV?kV zm`twS@tz1xHT1e2Eq1?V ziBX|<@Wcb*w#D;S0?v+?!H#UXc;Zqk#ouGvjb^z%WR(nk%kyZT)p$%jbP>IA4HmkR zM8M5dMusRJ1RX=_`?L^2qH9FowYPbz)aA@blr}7QN?z505T?Zd{CsKUf)&PZwujZJ zZWzXb5g3+i4H@UMRidN&boT~?{uF00LlZ&E>EI9Pp-mkOsx}^bWU6=5PvO1XcjGID z+H7$R88OmQEJ6IX9ku3sR1lAfRPuhta zm%=eqk&1L*tKgUxj_7^~Qb`}&PV^u2Vb-6m2H%)`OGc5{_ac#TiQyIS@R?-BaN z0lxSg|47c;eN1wpBt-vW%gb8nI0S&>fKj67@O`t^6Ggvl@9$qkfcoMSEYS)6ge^bp z!_#$+y$TdVspVyn@H6lCkGBto`IRlYXRp5?8Zo56>Y;x1%1pJ3Qd640`%pVKeCS17 z>Go$^$mXy6ZSz0u@cUqM=|{a&2+|6nob7QEI}x>*A_a~K4+V7cf6#!!5Cm0d&0(j2 zB}<7JO_jgX_NwoLX%m0HI}%D>F!jWc7#%>n2rh|MR2hT?4$Ab2Ujq zEN!wbm&euf70P=`KtxRrYjg`Myss&sqqVcX`RWUS25ilMt^oa(N8PNg+V?h_{naPD z-6wos{GpZAGBb!?*+N(L7{YGW_pV%X^#x}e`jp6sBG&zxf*Yy92XD`xS0}j{x8dst zNW$GG+H*ziMN6sr$^bEd)E{-nP*$IIpmbt|XHMbyQwnC!m0~I=N+7$Su?FK*U8?~% z>esfvBJZhMkNug3<^dj}!_yCu7S(vIBpLI}15R9+^r>fi02xbwYhStvB9n9wKWi8y zG^vsT`*D%KCq}htIN1T{{x;MHrg6&&#^J!bXzFJSOs`u$GC+IeIejIZi2VHL_4N<^ zAzFZc5Blaqu#B&~;pP3K@KUazrSHLM-P( z;MSskQdsv-Gink&>4Gfbg6n3QU2I*)B2G76+b>`KZ2rv{z+}x~&Q-J(5))O-3NNkm z4`A6y0MV^04i&J(Q!M7X=;_GG^K&RlpPszXiTH0=n1A*6YVEuPJ2?Y*QfJSBVvk~G zA?M-Yk*BY3yuG02?%@TUBULW8U%s179OmC9+9j9k62iMbe4g5Re7BP!6Wzd=N<~lN^*=a(IiD19Z$(%sMT3&v`Y#54(2nDB&&77#44o+IVI_2Gc zJV8XKrKO?0n9p!~otimv%POMDO4P>@B4sAA`AP$O5t#J{&m`|LZQ+jv@W+03mlYzV zL$-UJ03Q5%bH~R^?vJnxq$cFx0HGDAWC822^d>^%!j9y;c~Dp=xyBn?%o+#jy@f59 zP=941Y&239)ui zpT6&$U2wGH=GU>L%g*zbcu_Ix1bc{_7-n6ZB%CM4F*#RMBhsIZubI9D-a5Ldb0nuz zx-7Ck&Z>wuu$tUSXOes9eYgp#deR8u>&YHjv73q?jjeF$ zY~Aya2L1?|=a+lFQ{M)!w}_}m>VhKuRu}-BybVvp2R&J@i};O8y_TT`L5dlLE+1_S2X;3K=p3cWfqm zi(5-u0%d{6#qs~r(y_lzx*T#^SUZ+cCUleiYbp^pkMHz81RZWAp^#t$vQd?%%{uJl zBkJUfql4J!g;^R+F9AzB$l`rU-rO0sv>j+_zIXWUNm<);1qiaLpWG*D@+JEsBVGu15_D}lkF^VyAm~JGV5R35Nwdwa9!q<rr@m3e^+D>;5uk2w<V?G z31oF8SdE&ORx&pyBo~%_j>`=G?|WA!sY*6XyC!h|i+T5`@902hw)4^`hpxR|sNU+? zi_l;~l%S<-yJ9p|P4<{cd9mMkFl}4mhW^_=)?{F*+<)Pab~8&r;}78tcH(lmyEDuf zQYVM%H^%XN;eEYOZgJRbs)p<)EP!~x-?~f2bjn`o3=AGbBIUo$3FeJP3W`vsK=jqK z)KR_f?Z|HW=O#L$3pVd^z<9H$mi|FG7iVqYBQhadCi@>I50gng(;OP8;OS8n+aQZm z)|U%B_S=vqOLz&aS6*RRnWq~8aZuwHo>3hwS*8H7&pg`rhzC7(gg;GrNM#>%- z{3;oL4fxxBsg7~aKV(RjgH8na?v0c^Cv|jp-)DRI=TIMPzTp6Er5xhZhV?e$mJB%V z4)OP3x=uEFnia(&@GC!mz}tGn0N}pI*QcecXM7iS;+8T7Okf)7TQ{;MezA9$&w0bw zc%l<5nPy5dTutEFUmC4mwqZD@b1KJlU@(B`f0)K4;hmr%p+Rqx;C1v^@X&c&%(BLN zv-WL|S8^m)y8`4Bgx5b4^gOv=kjkECDBb-WU_9A()Acs8Afqa^DO`q+eZU|S)PCtZ z0He9QK>mglN?xp*tTI9TH;WV4(C~rjp)AkvP^i&Vtcc3<%Jb53TK9QR$?$;fC#*>M zAL@8r*mC4`;dx-I{tG)sMBQraLy)0B!XYOR1H3&g42Lv)F9Ah-tN1}U!izNh55eEa zGSGNvrYSS??0nlkT$tCSJCY(9)|ovmeQp!J9N*O%{1m7dC# zo(e*uIWlE%pZIuM)VAfxL}wWK>b#N668<~TIKrDR)#Zoq$|g=6@ZpLx;U;vY!Cn3Qhul8bji1Tp( zEUIbUol#U&L?$&7JaPUff`XO~XKj)j-p(p3j7Z&5oSa~;onVd#loio`78-Qd1&NuFSFQbm56W4MDS8^vl zEwhOX^b0(aC}Yq-*^M&SsQ5bc#iVo6ncbDmK9ql12jx1ATTvS!UM7?BrQaQe;5~#>Io$_>E+p_ok-j>*5OcxKrwHER z&y1OL%?rj=F#oO1hEIp5npFQ5XFuRgNa&Mc9Fa996#Wn9Rp`e~x_B;{m2q@Y`9KEe z;|7#rOeZ-zhSW!0A9A-HLl50p5qN5@l?*=e^b7mGz(d-BKg(DLlK?x7*CSuPT;qMX z2Adw|-ify-9ERvHhtWsSBhCcdK_HZSjTZ=0{;tjX2sBTiA`%u3*%SpYZ*Me;uNZSF z`YUc6EBv34vh{Yaz&hI87=L;FyUn|fw7mUW?fvT3?vv*Uenqyx=;E%qs^?Hk@}`gi z8>g0nCc1!Sgqkfca_ZiRtSO&+Ap@@!D>NI8sIhlwV}fw5Dm~((QxKsv$eh33mt(3W zgAu=%2$VgeFt%7wVP6A~%w!8tB8cKdh>96}TeWb4t5CHm3J|@ClhgWLHar4xzQ~Bn zpNP~OE#nEUWw^Qda+RZ~$vDV1dp%L9YKf3o0pY<(8aVx)y&NsrNSE-DRCm#ugMIyv z3*5MF=_(a)LWvNDDzBZauupe!1k8}F@Q%99o`d?OA^prGmm|y|bC0z)HvLnbZIf1N zX(Z*%j#o`y zJz|@cw##T;>JJ&evse=^A(8&=1G?K2*Dj&u$`GB>k;c`=y^^C*&L5Q9zlG;Io) zsL3G`7XPTVBdS6(?e_JDaiu@8yY4*w#w152_a_QfekWm(UG1JVdqFk(((+gP>U^jE z&7Evl6~CWIQiA^=&9PO{Ov5E?s>%KH+k<0I9}6Hz^uJQks-L-;SkPuzV(gc4dimD4 zIK9bez0sfDB|m@L-(Zz`lWqGsvGa>Fgj(azYLC2P#S&bWM>B?I)im0H&drrSYk^iXeTfCU$P<`GS{wc2Ql2L5l<9g&- zN6JLwvM#Mv4PV0_sQVh2{ghL?zkl+YZTD#U)|oUy?Bai0XuV}AqRjTe$++Xn6osc- zSQ(+{rLvDln|(U4)r|-GAymvE`;W%`D}`h4UvO zCJqJ4b7}D8D-LIEQSbE@`IS%g@%RxuHw|Q#T$ZgcvcpLHJ;e8s4cHERY{q(ZxEbla zJESJ?DWKqnfz9BTy3aG&6*D70w}c;ewZ^C3d|<89DA!E?#tMEOe1~fmB^Jr21ZY^F2<@Jx()9B}i zLVrc-(Z^He$o&cm?h!y<|}h=`_uJl#E2AnUPbfRnM3G7MIL ziJh_KUExrgTmOE&>6!h7woY=#UB>Q@LqsRH6`+$?+()AAezedT`q_Q>BEB{~hMNXn z7pOvGw!v|y*3+03meUeawrsXi1{;o~beOAS1goS7^{e!FR8HSG6lQBfeJ$1i1&gPRr?lAgrXhzO8 zl|3+x=$|~gs=%L1Q&Ud~{t=i+`H!n-;be0(m@_#THYn`iNjeZ5ktMpxlT}#{J~CY5 zU9k7=t2>|C5FUsr@wx>R19@#EQF``GO_gvYC8ok%rj?eC5U|O1D)z!zJ=DSxl%7&4 z(ckQUZ|uXc&ggj7Zy#T{JtZd_M|JvSlf@nv@l+>ld^?U)^{Ms%y+CBO06=;SrJ(Lc z5IAAV2t2(Ef4j1NL;qo|+WV%{OA9%~D*n_#`q(`BdiQ#jR>;b#*;ke?^}o##J8{JF z^iT4Z)8eWvUFS;p;U&e9wH#?5o!7d@>rMmbqA;x$zMK^mbyYWuLko(vMWcPkwUu9)wUHQB3#WgJPR|x9;5kUSztOE!6-5kkH_haMdI7umG z>vNmqe00ACO~v+M`blt2vKim5rdq%MUQ3qqaK~FpG9I*Pktaw8Mfq|Tu+-cVfRr?}!G zE68b7y>*gDH}FIedbnbw1YqVjPg%#&hAvlu_&|$zc05ISe#*mr_wRU=_Fl>$GpjN3 z=;;btx6Y=fJ8#p_z<9Tg?d)NU@sl_ot;@%*kty>s~ zq?+vw;Yae(oa1aZzsh#9iu2Wv^RJq^JvK9adlzZdm`g;*vw$lmwN-w)cY~y{eZ?=4 z@OWTMHe(u7CsSYdSi*`EWv+j7U&+t|dDV169NP>v2cc8LwgXCs1B@#t)hUXY)~=+! ztT3*LD|^T6nVLSwF7Bm|75(~kKScyJ04>@DG54( z!3p-@+UGkQQ=$l7S9G;ea+N1ebkAM-q})XZO>}`ArgRj2Gs@C8udSE4h+px=oeiqx zGYpl1J5SOdRprp%0fA=~JmGnK)AZVzep|bsPc@d((DiK59{Z;Z7$dsc<{*c3IhnQK zOvJp_ors^J6{5g_kE&q&FudvD-_|EK;gSr|*H~U?fmK8wZz{)~*WL-VD}{z6(E*~v zv-u(R^?!F*k|KU&T2RDR=H?+>mCPD@(R}20c41C2SizvIH`ODBq0(i(m+UKtB(ot3L}ol$ z0#7x{wr#traXY$cJK|aXeztAy8@V&sHw#QW1O|E|A7Gf}J;;CTt5YxU*tJd>dOBou zFw|6yfR0z&_2tX^A&;csPp*+d*RtV^QfhMgEahQ(W|NX*N!qGNaV`5bP#mg-zF&O` z>OZA_yZc#~UIx0>!C|ki3Fqs*a^&mw$M`#?#KN%b3_&P48VtW34ZBCGH@IXDhIFY> zqvmKkG7z%d<1Ki)0LLvDQE~XR4lbXb!$*={)%QjT8%fDn92ha(qPIao3{YL9TPt%gqUsoPnp0C!5;wKXC zAqeu&1d+HskjIqFloGx>pFVwR1!v?=wdXz_Z1-b2rBuuQhk0W~F1pSUturH9Ed#=) z!pnV^HG0LMg)p6HO}KT}FB>;LX+vqFNALfjI!!418x_gKv>T7}&(}WPpYKOFv{+PX z8znzRrvsgtka(@93^b#V5d^x(4>hG|-l1#9z<(ner#~G|to>YlUNz)yz_bmbqR7aa z_pyvV`H>0O5Alj-KS2vqbwD4LQH8aMH+*@yh~VnQ|J3c-k0() z{$6H%LE#Qh&&&pG1m+RA5z_N2(NHV$w|`nkCLt|h?A|o?-W4;F|B!uP-ZGV($(4+l z%2L`6ox4V(oSyk0gc4teFAxxwg8YbkWgI+0A#R&uiaBth0 z~rjZz0&+_DjVJ4KHeJBoe!p!etZUtXg(QtM-k0J|rc zicpBOL6-4{jxP6r=yc@2s~IuoX}IrdRdl&;WmLfDb#{wB#L1a@o8>46GC;rwu|X zJYBshNP(4U%@V)Td)M0f+rkXl|ITdtb+-upS8>whUrF^lNEa{bIfI*$IWn4E)|OHB zRw#NIz+^sbX3m~XsKf`C2d1kK95^&rd;f|ZfVBoAB2jo#ariwW(#&exGF8Nqy==sU zsNcKH$PUsz%YjTPSrQeyemEf0P7F_~gfl@G}-ePoC7Y$AA94 zWnN85R_Ur)YWA^EOvd*hvKqkaG=QsAhp!qPq~Nki+9`tY1v@I=AG@YI{y^}tWv0xL zX@o#|h=0&X`xx%|VTUJyw+i?^YDFP`DlNToYFI$;3#3bT+ZrG?1_(ph3I$EM1S(c( z^ujVur%q|*hM;$aj|*SjsX3g2R1F3ujtsnww~{@|_LqsQ5fBp5Qhae2vgciV{==;( zD55nk{MUiM?Tae)hi#08DS+%|P&2gb|ANZSy|6T%5bi zjG^N=gc1z}oq?X$1HO;%S&+E^_Xf3h|BdRJJvtuLP=rni4`j2I4|PRi52RB?nloXGrq zk8E?O!$=<;&2s6_us+JKxZwTG#oF_c{&^mAt3o5()=Lz$caTfUxk_ckwG59?ta`(ylz)jrr-x1R~7!LdOzal=QIjQ zH;>D!r2M$Oj`okM-jGypw2m|Ny=p}3CJW0OL+sN=8~ucstLc&;pNANs*zCKM?4PMB z&%j_A>+sH@=&FhL#JiAMSo~b&eQ{QSYi36}B?o5c*B?mA7>peG>HF3#)Ac1BZ<%_S z9|8N5`3yu-J0Pj+;HFranMzeyd+}eS3k7xEc~6f|^y(3n^JWtG*hF{pi6?E!s7DWL z5H&7Pz=UNxQnwBNCoSQvSiMe1$#A8mmdfFx^QKen}eaDNtIMs^t(>9hg!r@Tlkx zQBE-87B(N%7VVW>Vu@cCv$Koyf$5v1|IgB}%h4tLHMgvaOCMHF;ec2t!#Z*!t3R$${Y#`FOjFSx}C!9d30 zn3Yqe`dZ`sZo2m9E{TJD`f?&9OLelGFS*|UA8)%R=$#rGQ3_GeW~w79de&y`#Cvbk zB44DjtG7n%@!pR5Fd991*KKSO+6PZ^CF^?zOIQH67Z^w-n2S*5qaN=tV1yhSy{*g7yk3hy?M1kk%K*v!U0~d zfBR~xdZp}u`uX&v@Hd9g0I+-By7v{Hn>*Lf1b!)uI)G>DZTrW%wPf_R`|#%|e+pE^ z;5x?39t;rIQV;eOy7zSnXX_CA-JDhmQtEk6X{rqQ?nuRC`=iH>P1^D$<%opl{ZKL& z^LGXmI%uo83*xgz;{`(dr#p2(oLMz5Exu=~Mq?ZvDyKK?IhVG!90;mPl0Hx3h`%p= zr~(|%%-3^!-!o)682zGs!}cR{8O10Sq^#ruPwcqcukZw0g6HGExD5&vDnb4K&7O@p z{56*Tb($-dB1Z^)c`(*7BG)p&fB?EQ$^yJWsdmuR&Z!AV{~zeq zy-B=1grDg2s-1ifR7mM~oczM{wmd46iR*AG8NGq`t9Yi!b;nd#9vg;Dj6Ap z-Jy?!h2A1==5RM_SW~Of{atH&eKRwUis&`>h8h~EU&$tltcqxGU6; zpCir(K`Ond^&QUQnMmSzjTvG9LQv&f=HVb=6Hx;95uTA>->-Uwtbt@OD{y(PPJs#@3|NkF{6rKTx|(qR5GK8%4wqkn)R^pc|A~Z1vH7VuV^&rjXS&k zvwo5zNhL<#)N;YH&3U3}EQt#%Ol;SxmqsVD%O5p|aX9(ym0mmL;=2dyUs=w2>z&u` zHvvrQU4};B$vg$Be-3;rgI6#|(Fa~-fua)VnMfg|FpFj{!!6N2@{zI&->R=C*C1rgdR>ENWA+~9AwQBZeTi5XqPw?!tS zOQI@Wq7YQdg?{ChI#laR+O>l9_>Jn+;Mw`N%gooA!x;~vCgHjPb$jA{RngPcB<$$S zuYNyoCmoH>HtfSQxO0=c1|V9Ph~1BWudpz63))CXy7kLR1Uo=?efp`(uL+Yo>goE( zpAN0l*LZ;~bqdW(I9BqGl#R4N%i;VTS`zaHuQ+1XlA>d&v+}7wv-qT{HC$yS8?<`c z(OwNNumNWod!fK`pR!K00XIThGE@TVx|x+|aRBDBrRdWMBRsN4-H!mY&A z-}DO;5Ru`j2ZA&Tcbb;gj!E2pp(2Nk_ z9MSgcepYYi>Aw6j^#$6+-E=zbF}VC^s+BhH5ee_ZVG zf+!nW&Dh1`F~2jKu;tIucbQ+dyxFI{4Tr;rALMJQS)=n=IQ^_BF-k(pqVO@s549E* z9#31A-QmCQW;2R z5ovf&s^0)K%~}>)VKoey{Y>F#y`_&2_vp}KU0d}9DAq9RC@_w`nts%xwA2|CGZwC_ ze+oKc_dYE>mZgF-<_mSS3#-}gYdfC0opaP|xt=j{SOrF~5*j1#sforb(?Yd7%S`Rg zLi4Mtx8IW=zB_wf(y0n4`+n0$bq-pM;VJ!S%zp1UWE#a##(Vh{015T*S5{{?I(@El z^IC3^0$0;al~v|t!^DO1v{TsNMxE+slYV1!B^pqr{6+;ojGR2k4R{CJ4WVH)a8{J! z2DBsfrO>fkR`>|6xulG^^+b|OI&59|=$RrE-pI?n+&wqf`RtIcAP+@hEk63?MW5NZNJ5 zd}F1B&tFmhc!kw4CaRAeyfOLKs~7C@b|3Y7D`m%M!xr{87T7yT+VSs3|Jms2Dj3Ga zhKgXYToP{zO;c4MG)>RI=<$@IJJXCnu^hR4KhGtIgRAk_-55h}8U9d9}g=f%kE z4_Ghz-e(KKp@m9ck@yRRpkwrPD=6G+e5_7PG6}m{c~u7ZAkGclv`T~@ij}zF8McX6 zuU4Y5lOpZ3S9RX$vt9VR<{8~+V1A@>KC2cQ2j~!fNPaSwxN4w>wR&~sa%di{kPN_j zvg_oYB-=YDqipH?*SC1j$3?yyXEk%C&Cx7Mg2phL0R)Xz%Rzc`WZQWPZ$yLP6db5rgLk{JWp!(Z0M= zm=yT!GI3CkWzpq%xsRg1@QuzEa@>zOUtZ;dKh6E4>~}HX8*&54T4^K zMW?;uoQdM^IuEG7A>%v37oROX*;nd{Mi|?Y-QGlj1%d*iG9Ex%8x)Gbxr3az!$@%J zpLVZZ;=ZPXD_#vcHw}Br{S?cdzjyjy8VUBZG?SXve32#NRC08d>WSRZF6h z0uL>?_lcI4gaHcE;L2j)Ze%apd>CGMB71lN zCzhc3juKp}Q-cHL4)L~4HMM?vV-Up_Cu%G4px7QDlAAUOI_8U=otvt=*B&6(Y*ClE z#Aa#s4#j_g&NNZ{&!o04-n5ftqqBPTzC%7uXuwtX@j5KszF4V`1Ox;eKCiIPY=&BCE2BJ~pNvHM2sO-;?t>l2V)Sc?H#k zWdbAX{RGVdv%^{K)%KdEeC4|o>A7MYQ6B-Gg>!UnhrGBoBHQKO$W8C|wtdAd;99{5 zNfhH)-A+4kF%bk-4!Oq&b;{-`#_@8~bun=KL60^XNRu74QWUzYr~$(H|YCC+sm5l`xQrKtUp)JvYm4?Q1OhT4%Y5xW0ex31Kw$` z(J7=p4gMEc&Ar{I@M&99nq==XFK0ivKE!#}AUP?LC{R5&06bHtFUI<=jC0!gzwdgM zq5l+B6Bi{N*FG@;tC%^Z8p{~#gtE)G3&rg8#(TdV3t7}$jpjE}E)k9_wsAn6D4-ZV zI(h%31mQL!3~Y>yP$%ljA2uo;d#hf0=h#m*=YAD^BC1L+i)FI@f15WqVB4??NA0Y@ zaPf}36)>rP)?m9sKls+G?bday#bw9eij)lu+Jj#`)3gn?{1|PO{E4>tjp)mKZW(7; zhUvv=4Q}icFW@!=+ed%iBd|k!y;uBifK#;&@oXJ^DtIt?VNk;s!7+aynenSA78t#R z{p_*H?n1LmlsN2RO~k`n|G$a{2|O%Sb-u=+tgH-LhlZ*)16X+5NVe(H>NkzfyEa(o zoy{QI8axSu{b}TQvn)2cQJK`JzG5%`{Ymw_yH4TnF~<(#ugi-i|EzcSXNdkd{sbluQ_l^zJ`S~_^-oj$M#~Lcr|pht6Lxp0d@d^X zYo7kneDwj{?*M?guuMDShLaadtZNZ7VM7MRHYRC->~EaU-fk~|0KO<0(gOuT=;NXW z6vWf?odB#m(^wqE5zpdwHilM5g+#U^hI9CYykb&h?C= zmk!hTq6pToop7i=dI6%g=A|{cN6~x8F!;;?I~bm42yoC z`57$%REPnfSfj9cF&*(gNpllFzIb287nCt;!k9I5cRegjY}?P?vTKb}wA=5>{EyJ* zBgcSz+{n7zg#4Rt9g`{}9X0Q*5C)cUfx}<>U$LbkX4$xc9~E?XvG&9r4xaPESfoT1iYwdVU8@4aD>eGaEbC zg3C70Pq$l@{Yk;!_NO*dNxDQd5=$LcCDyOyc5gyLV5ZDu_U!oWm#6<@NhCe}`-Ri- zJ^o}srw2qs%+UpxK|LZg8lF@y&PB-y4h42%jJOL- z&oW^Stig*WJT`+pqP2u8BV^5V73St5yc@RlksI|oC<<}(!Bn;pnnf|Dh&y#7MvH2EdBDsZ3QSkG6XFs~PWs(0F9zDreu zqf1nNR}Hr&c=99G4EEl>j_Y15Nh_CD+Y$xRmpMrG7MIBe8dh1{KlO2#PRt;{6t52PIB{!ytl3~Ia7F1eZFrfr*#X5|+UF-U^dguu z)+cCIa_6?Io2i;(|4%(dO)@$XIjDXeSAXM$%|V1O5?h9Yg{62UI=gIi=E$I|y)a}< z(>~MA1T|4dXJ*vu5_;k77fIO=Pp^ zVLvxHd2L8CD?wJOEum)TrDQN<(50NGD$c`POA zI2}60a&7U=SATcb}Cz3qj4i!N#=aIazgz)Xg%><}rt zTSku`(i1N>*90fcN$)j9J{1*RLq*PUa&blulA=`gXOySLz8YiE1H~PJPaBE^<%pkJ zSO^x0`PbNW7#gTAVyW^uMeTJU)6FkRC28oqMoCm-7}zccNQ`L}KMt#W&wInbT0@?u zjP(zw!=e3ThfSGhbfVcMT+C)XI67mTC(efN;X6>S(wK-AUfX$?$g!1))mhPK0z@HKHHr0(nkS-96n{me@Bz6CxXl7emu zCStT#)yuuRy2h~vYJ{IcJKTuNXF*H_GL2HBL?-HiWZ}Ey(zSJa7|QuCTk(&f123#b$4a&Owlch>UV`i>MJekT(Z?It1ulhFq>IE88*a{9 zn;?>&6@?d-M$VytfxA`LHfL>Fe~>*6O#X9HP(jHD&y9(0~0uU*DeF&qq?eZFPUhS(;p!3_92N@dx#F z&9k0XB`*{JJ4}t*F(!kl8->^E2!AMqU)aEWO6ENyfOZO;`7RIUvO zO#_=j4vU-2|2;G|y8-Q^#!$9S&OJt_jbg|@3w$b+0YJs#1Fd+)0=;f1z1Q)26& zIXd})>Wg6MB#Nze;WX0Lq8!ghn^W>y-6Nd?=T%$aalvbPrr3eo>|5HKk$Dm4cC8iz zC|30>k@yx$(8Mv;iC3B}f@d`jT%DC>c9Xp8<&f+R-C!Jj|K>Dt zmwtm>Jw||ft+}C1^vCx@Gdtw{Jj{6Q$0y;~f;?X*7#kEAgYx9?OXu+4XU6e|KfjLq4;j>WX7%sy7%7kX zyqBT0yQwx49NFnZ+0Cp)1sk5pWx>41GxbFSq}pXaNKy=CclL{sh>TdU7+@YDZ2 zeuHaG?|7@4o1ee*oOUWgPCfilI`)9^&{u80vptp}~192bU3 zvdbmYOWpN=LnBXe+8NLt5q;tPC^_ZJkH1RJXV^GAH8^lC)HFKO>4Ws|%p98J@3R3_m39@{q9WO#o2UBm#L?K zY&7;WTzdn5yA;OQIn+;;OPwaCffMG;wXtpI74un={b9o2da@Onqi4^aO|lw(H;y`d zz~pWPx45BI##; zX}a#nlXuRZ5?B6mu$Hv z-)ooB(f77P?8EC4Y&62~R_w`9gwqDXVSmLS?(vqGRgeiUkGXGSLr0wpXK)|3&xnJh z?S84^jkkHzTS-ee5Jnu3;w-v5;8%iY<%xz^2TjmUk4*lnG?^~}jiZwBQ?JD0oc3W)L zJ@{glechE)P-TAC%-Yh@#LjATsW`-{We}#5Yr)?DFxK(0hc%ju-Ogv8v-LrBk;NPb zGslu&*`zzvg)7{@lqf(qQv4{#_@p!!zQZl~eE%2#s#(d1Jkk~0m;(MIUJ6UAnfXr` zYNuMswqbFlH9#7IwX0F_#$NdlXc?LRpXZ!b!6yozy0ybL8+LXVtmviXD3(G(>}>F} zZa`!VrRQU0jz^`=auq#nzSpunr1e!(ShnrwqnEziSA205-RtsJ|KrX3w21$yANDw^ zMojH_WD>Q20sx-6to`iv4(yR1?A6M~uMlo)?IgP2b42^eOwlfWG!MV35tDou>dDz2 ztNqV=dL`$r==?Ypt9+MMqkMAYI76}pCrxTmNl|td1mE~<4HsPBlxM`Mbz${HJnSj^ z8mh#tptdu7r%4q`pR8#c_sz4lUFd&*U)0mM$hK*$XVYSd zLV0e^X4>#t+E6%0(hi=_X}XxU>i6wl+*8nDOGm?4jbUGr)u6|`vDcL+F7s7klwt`7 zyQo~$(VvZU)_xh?*M{Qi6ViLT1bO41=?u{f!M2;!;Wbq0QhU`>;mCera_EHURm#SJ zPYC!enY=PhYGN~8G;;>UaI7smwnDa=Ssd-J{Iofx|NNn*yg>Gi1CbwULvzA^t|4;R zGb2MYh41%A4Nhah%jV?s+Ca?NL|NcZ4|s`9TA3p`ksoG!N*`zYgmEXI@8HO9!2Un2 zVQg%TP5Kc9xDHt+QZ5!HO*Ao~0;?;<<689K4g`rXF;QqEQ)ntko>1|*^5veTktP(Q!0M~WoiG2Js}MsH^C_Bo_d?g&ffVd199-#%_g_1NzXm_aF>Ah z)>TuTuWIry{Q1TsWsnnP!Ii+i5Q#BOlZ=rUxEk9B_|cEJW+@S!lL%6C=#D_t_NMKp zyaP)nX=YDADxm%X-9op0yjSe;f4x=e5?l zL^PLTd@5}x8OCB-h4s(r8_E)gl4%NK(V(v=2XXBha}1H*Qk8Gn4+q&KUv2l|sd;lX zg;3v8j0)ZNmcQuZzX;P*NPc6QU>DS3wgj;{awD7OA7@&vZTP_7=wUlgHJ2uxYb7_c zx|C%$yGrvl_Z^uNQ2QrQc`wap2YrLVbJB@F^$qscE_kt&DqZ9L>-~L0)OA9M%iBmV z?o>17`g4>y)kl-gjh)@5YnLx!l|^vZe{h$nmqI~w493vDmfiWk5iv*eidNohS>9eACM+o|B%{$obnyFDrd@mWV#u!JLp>A` zQT`zzlkk$BZ*O~-BL62v^LwM_O?%{$_sfvWCiZw5T-sa9`%p`TkaIbPW?)kaf?2O~ zS))PFR@ViI4FkOZ!CcvWdXmLYc?cItVZEV3=%S8C;#F9Yo$cD!+|XDM?%NDz&YHDl z#~RoYw5u~R%Tf1=4rS{O1)Ub->5bNk?>9F8R$>K*Qk&Pz& z+OqQV*?3e_0Ut$gARJBB^DxOVcx_KJh$C`3Ud8DXHmts#vHstJc4!U>Id^raUxw?njkhM{?9qN+f{7z{tZnEn(sqR^V`Wmleb8$9Of zOn{~Vx_C-}&-KXWu*jf8HiOid1#=-Jf^buR!OOdWH!8*oiLvFTr)}M9YFk7s2Jn1k zB301Qaq0CbS&Bbk&w9G?f1`pOj-^Vw7^4}CH1c(wP97HUB@v9#Y6drAu+#roYP+e% zj1WCy?{6|M_+f8U-FoI56XjErhG{EsJ>!auqY1mKQ@|f#yOeS(xT_FbWlNcDs)+&g zw+ijGt_b1B6&>IEB$^_XtNNOl1hw&c`}oI0B5Du5cJ|9*pGch^6e5;=W@zO0oZ(Y7 zUTxhheZ6W51lR{G;Y7pZIr)C9p!NBjUR)a13xi|5y0cO9YeYoQ;mzRLLE)6|k6A?9 z?&wF9>s2rBwn%eCvQ%vIF8VgVYv$7Dz;~%p`|xExGiJ=9(?bu1KwTAw>2x^u3cQB9 z^IJ(tJM5u7uJ?b5EjL&(;^O^z~)SU33hOD=4| zfZc7HUc6?dSpfSSe?-9R%kKEtPqCe??nyf_=dCD6KSNWOxe!DJuu%#tNpL9Cb z*>9Y)8tUM?5Ej|t-3zT^E!Nx6xl}9v98Yo(e$?!0%UHI#lFk1p&>-ZvqZ;h>Nk}z8 zLPZRK_tR2OSSK#B-I`vPu|x5fz29fDj1REep&VIkL>GpfpE|dx{)a zC#Q`A!i|*W=X(xfIhu9cV}o`9v?0i(TWaqDyPGAwh!%Srr3qt&z{*r~z?WjAV_n5R zLqZ`znKldVNymFcgScUIw%ray)hoRZVt~e%!7_^8+bxyXILpMf+$sb8c-E8v(lnXH z4WBq$us#m+@bfO1=*f5szQUZ*S+IeO^JM@lFH}WNY=cOv=Ky6;H2He*ra$v#&-25D z5*EMC1KUP*MG#XxjR^r-LpLH)o1G!1X?Xavfu+Dg5RU4~p4an>L@o?%X?JUjy>Mun6VISnv zbaFSp-iHq#%yWBuoF#M%cz0q}0o;Yz8p3>R>6A6;7x%vIzlEa`*$=IqrXa8vkecY! z;d>~NjD01>_Bm93A#r6oJLZ~R<>^t4j2oE z9id-P-A*~zjC{=d39MWgy;q}gP3p1MvOrRgWn##aG}j$;8!++MK;ZN{cFfGQD*>=Kma{KVBd>u+7lt!{cX!UaPzsOKLVbxki*Db!U*Z zDyA6dcr0vwd3azAb$AjCUyK)fvCDvcXOVP&wX&V2eA3734xv5#`9MI(94E6zTcj$s zziD){NBp?o%Ev$bRvak_i%79j4_al{2dyL}a$yYSUir#v-ttrJ^qm{q3gjH@YhFIWRK3`i``B( zf-eRa41-f2M0$IZC^U2jCBYo|!XnvXeAsm?_X`%eM|l@j6*#u|@cY?1+R#F4o$f5< z_Z(F?O*VzbyI(%{Sr&4@p4Rc9NIiY#z;9ifUCLYf9?sjXl(@3K>{WY9?_G?+dRp6HmX@OOb zryS285Kmr zC-DwH?%ss%FGrrwG51f(C7??*c*48C@SS<3t^!iy>4e76fBUP{8pu9>|2UrTa z!xIn=)4rG52jDtw`oF^be|w$$F$XymZgDilE1EBzesErNed6PFonJZHUreolh32!D z>IQ^(VUd|(^t=n(wUH-Om6)oP#fgI&8T7@kUrJ35r~}QR3`ScnN-R>VMSVf#T9tv% zkBvS!j+igfNvz3hx(k$47RNvrg?)uy*!koOZ=uy`VaO)5kKgZ65U5+(dAbTf)% ztJAU(xA7;m08k~w*e-liog)1^ErqMc=|m= zn2$Zu#At0pmwzhMv+uyjA%?t#==pdhCD6Q97@Rw?t<8-MPuo`p1y?=Tds{CsR2iZZ zanKAwmaEnOiqwy+9ySYjs_Uw^PyBO;>=hky8_x~3SFe_`Zk4KXtdwe=h|C}y1kv?z zQU9!G3QD88s=IF#hN8n&r?)o2x#Z3wA#je0ouF0)V;8k-GuX>bLAygrMwBQGFo1l$w*=RC?I;(fuaS zq-)i1<2{f^gg5t5##<`UDw0p4%8T+=N*!(YOn z(>HL9;};=hfrO3&abCOe=K8qx`Rc>@2*8wOkCl>TM(X#2ngZW^m#K-xI@qRYwd-_G zRR>45RnCf%*DZAL(>9(?9vG{f2I+J1;$Hoq*SukLboAvn+ zLNMJV;%ViU%gb}P|8K{F%Fa#$J;5cst5jMpRQ2~~XW!i12E3FeT;Id4YZ-b3IP6hJ z_U4ZqcK)~X0*UJLGD!8j+q)CPxga%teSpMM_B28e5p!*8`pC%+_#hqh>-0QwU>XsHKl`y%Q03P*&ayynN$HwGu|*TwigCua+Zq>0TYzqc)NwQAbFwMn6WF(puG z#X@?TPk?aCV(vZ87=|J$LZrSUI&!f-sQr>Lgqqlp=LU!=)zuaPi-0lhuBI(TbGuPp zw>J^(QD~wnBA?G^%1c>-(k0H$pY`>eHNpDP6!K5(2O(GWsFhjXT0#Daqtt{tWwb=` z&Px8LNZ9t;<6ZG1Wg;nqQwtsaDD?k4KV1Ic{TVh-G%o6&*?7bcY}T8?wG!J?N}q(JJ83hdD+8f?DBg2IKz&_SPT60fHS{xFyyq9 z%aFE^Nc4^PAjhLKMYLZqhsKreFWo+b)^zlEU(VvVJtsSlC8L>KoypJ`k zH@Q)OY4rd&l5G*AI)(9vUQ&3)-aWf%3jw+SNs~Pe` zs8=!5oQn;LSwjXfVf*bX3<_4E6*YTn`vi^pCs7QH4)U@>ayYDUPG+PbaKRQtr zm^dtgjOBD_MYOb)Bv^zxP;}$X`$il@J=6gebr`GEU!?KZ2<-3S68UwS{9}B9ai_4+ z&+G6GyznPpUY%u3bYm#aYR8HgF**ik;R#MGh0;j+3KQH6BR?_c*>1xbW;<$am|{d6 zmhpPZNJ0`dy<)W=0+XAlZfdKJf0BhC-Y|QdU8XiK15fv258&+6uf-R~y^`o**~#lU21AUs36DGEpckp|!WYp=VK?qtUeB zXNEhYTL16Gy`7_*g#&gXIU?2weJ)*pH6&D?nt@X_eDr?@Wr{C8iw`v~(=iC33^HJ# zmlV}IwMSq3^-gAO7%MkS^~Fk>v-fLUcRM|nHyXl!U+F%)#>?*O@9WXQ@-Ta`H?5z| zd(Rds^g8Clgx2Gy9%t6r)lBUw!Xc5$;$2*HFc%?<6kQ^YeC}sSM9u4~9B#X~Or;L# zQHSO+M%R&N?47pdvz6?<)tE@bQ4zF9IlHCU2n|XI31CrV5ypeby9n^ zm37rc)rFZa>Qn?Atb_V;QzsR18r^pdOEMZpnL<@8Lvof8;7ZJi5~uDca9ddDG!LAC zIkAlt0F;20Bzj>nc)ohGr{`zh!jqFI&OjJ-4z6$X6$m_<+I!x;kW+7SaDJoB%1&y+ z)$|tg9uuY}1qV!o6cI&ILeHQPXW%An5q0`s67zcs{ji%>RGsNjkQTCx@r5i-Rf;EM#t(AIp(5BaRYH!?8A z>I^I#Rx1@2IIufX4B-9SxxN<4dlS_ShN4>w32vy^#RQfNrFbXZInhvnch!23Gk0Uw zjj10@lojN9%Y#Wvzj3a^#UL?ZKZ0)()$V_64MwOj6aehvd#ouAh_i^%sj&Vded+C1 zI23!LT=?0s}6d_ImkwXo!U?&;p%74onAs zcs$D}dd;dSjjR#y-wFoaRB4tw!w6N867i<1Lt5YQ0rhVX>fiGKHcpF`m8L#9RzR6! z^b2?ng0hF=R%WG3%ic$jaJ;MKf9i8rPoi>1f3$HjcJ{-mX5o?cn^E|gF2TbQA6*;` z>-_|Nf0T^E%zJ?&zR&s2XE^O`6Vi|qdTf0scb`75|6lWFhlazN6~e){3}tmbC)iXo z2Uu7k)Mu~V*0$kq)id;b{;S>KA;xHTw6^2>NbIT%sk)H?~jvZkk`WNm#IM11z zyi(b-J$<3T-x<<22fQC|+f4`V^k+XNXO?`#;CC0m2cm@r7d4QyFA^NyW*aTquhb z%JPJl?Yr~lR$tVZ+N`cT`P*A`TAOY?gtAL}@-U=mTQ>X@rztHAx6G3F>OuXHVEj#UX$<&{)5(CxQMAzJn65$_49M|@UfT1DmI6Zq5> z3{8$`afu(^diP$8B*fGaEYE$41;5PO6|XsXHa=s|WEw_<3K+|B@=D@OH9l<(-trIL zvQKau{m{4id2u+zcUw9M`I41tjnyrY8&&>&cN;#M_26WoVz|cmE+>DK&d}UVOxtvL389o2?`!EVwma?A1e>rRL^mv}rT0 zkcrC)HmV*{{Pmb$Q~<0==3*k{sOaZlMi}p6$xWR$ip9ajRs77*ob%TmZfD*K3s;1x z8$^mbdvB4VK4=c}b4^qeG`_nQJG)eDA^M~Qo%IQI=}Kdoq+T?Ny*+E&?}(Wik4hJI zK=S@n%ls!kUk0aIW6BA2UD3s9YhRL@DROYXaP%!>khC7LApZv=;%|eo` z33%7FngVfxiK-w4bP@HLMCc%^q*;Xgn5d=jVl{{8PufO;}blQwoO zcyVLr@1(&PQB-=Ot1kU_O>f;4?ll_PC=qd`;eyK8*mnP%EVpq-vxxE^nr=sfV^qDg z=vTkUpb8iiB2A{_x39D&13jzJKdn>{-Hkv3VIZ)k7{QSRRo9#=B~w30A|*(ubmeV6 z^zHAODfFM&ud#fOW3|EvRNX!AF{HKF@i6xtgb*EimFJXuFCX~k=a+XsfHHsv(p2PI zviWo|-?p;EWGcBBf8-f!*`G&eKm;XxhfMRVjIrxpqit%~AEXC)+()<%SkE0F76MKJ z0o$_8Zs(-lQ?4gT=FX0);(hq3sVODDEK$5{v0 zsm8_<-ghfc(%8UhA+o6_sv$^V0QrnfjE;k$a+}piAz3X8N=mY~(7()AAG@%{?^0o2iE zd+{&!?Ryu^m0B%E^eJ&si`_NHdJ@BLARJF7IsbH+-oo!?mm67YYlgnDj```!XBPk^ z%0x~~A4W7riS@}X^C)yOuQ%86*cAHTzlg4vd8;(s>EFZwi0eOitB12Ydb8t39N3LT zn42DhLm7`6w!$P-9pryRTVAu_4Dqb0{z*~6-gWu)6i+D1w!HIJS9udY#e*l^XR_NU z>rh(#74Mk4Kz;|!ywdQpQn-{LS+h0;!B>4RMOKC1fFXF(vHF)Ap-C{kk*l|l52plN zxI3!_5)vY}ehDb{f*+9syg4~A@H)rgXadwAUb8z^`yR$D;%aUjHS6%{(4d1UI=scG=)XhgsBFtl<)nIT@BR5klj%; zOV`2rv?bVdjN|f`H|x^JUi33#zBno;)U#_j?A5%F#5mV5ZG6x-ltGU7f{lm1Rh7_2 zNKO1!N^wB~L-M1CyAyI>W z-f`XbOIM^SsLeAYZ)QIIbxcDvMc?2nvVybR1!>hsPXP2-D@5aOANtNWbm~|M@f&h| zz(9ypDIzNrPJR!M5defWP>F>_Kpwe73NI#a9`gz|>4CL^i4*=;lx?0yF z@T=V^inf$qx%+A^hGjvC@fi!n^)yXA(N$+<%_Z7nfaxKGQ^^~Z2n`5Ykro;-8&Qs6 zNh7qT2GKRv6=seT$w@=CUnqe;L3^nw^A|di)Q!HT>t5HV2G9Y^-D{wSM;mIo`p*O9 zC+}xQv}c~UIjwZ&Y$Ct;7k)#{0;P5N!xxtPCk#z@KBDYkFNK^glDJWC;FDvV%$G#i zlj$P_QY+NBT+F<>%0%~=yxqkuQtt!MaXUvFr}aZnlr8+y&w96>RUmR5(|`R1h922s zKg+kw&Xu8D%L_aw9JLdwkBC%9$n!CoyE49K_ySG#9cSRE6&1zAhfM($7Wx*Z_CJUp zBB|5a0F34dU4LJ|?k8Kp5Fck;AUp91ZVbV>sfwtoF037OXJjsL1HpuV{|i`YZZ%?N zHRWr8Ru!>MOTE0MZf?sc_RU8QOvh&cp2H9~;X_^@t2%3k%=T?I&7qfgJ+3?n@RZ0v&pIf=Gahwo!?XEx&K$*?PdXdlO9-seTy z;hr;X19uXD1CU%pp=xTe-ox1oECXqwOGK^9(Hj^6Z*XIWN83w(w^!e8lqUffzIuyg z1!9m7=9mmB@jh>H2G!+y`hgi`JVl|EJi!IjQ4$NzaucLsvdRO5;!D>wOUrqW5K)4l za<|OwP_xL)?bYTic@S%F$ah+oC(X-mt9FCVEwt+$_-DWv=PniqUqQzrT#E)d&)`>m zw;;9may3>b1}hE+DSYoW$$XY?j!e`1-9E~$lAqZvCD7alSl*BxWU)b9M)Tbr}SNk2Erl#TK_ZyKGB ztQ^E~D%n{C6{fRqoYGs3VB}G$8LsO3x-wBB&Yi~Y*l`%p&x{b-5sqAW-&Hv4nrik;_?-aX>B4~$;gGLL zF-r#%FiYqg#>AZe7&Dlknq9c1ua_MVtfLU6ctB33ttTcaCQ`^uKjq6l-RUE3jzgvc zYq45$M)q*Nr!9u>T5or}M&Cfk^mBk-BS9HLoT`gXTDz5?uJc2T?S+Apql-q8n^oF@`)=}gCdxk` z-pv2<;4qR=d-c^<8Z}LTJT`vnId;lP#}agM9b^OQuECD~N&Y1QO?pqe6dBy zvFtU3yp7VjMy#F-KG2>0j4B|Zb33mSdtxf|1ITPP@mt`yWk5@(x# zj;8@YBUawqKL6Ui3pD(wigC<8vN58>0b8NSgygZ~6XfJ31hX2_=C`{Z@iC`VINZ6+v>JPJeM%PKMi;6~qBV@`Al7;|kbKAJ|@CCMc1_(H?h0csB7 zEfmN2QePyo-Fo$)@2_U)7;EV{=WXER^5PHI!r`Y;-xg^fbop34jH{lRceVqQ=AlOQ zhm@&_YY+KXP*xj~6PVit|Ifpjk!Yghvi)j7iZEJph#M>)_SU??9iq0q24)NeS0^>2 zeu}RCTzdZ5ouUC}(ZEchY=6n*BvYc=ebcCTY%fgIM{)E&eYxp9ZB#JeG3*` z4{Ug#hWga9V=!CjNaUbskb=_0dR4>xyna-5+oQ0VtBoD%{2KdIJf`G0=7}Q>SL!a@ zm{sjLP(qWHXfK~=ImqS9nyF&gnU>Uke9-q`lh~>neX){^-y5aHjh9FEzt(=(zGLRW z8G^LqVfN5F@drif1_n~_5Yd51-}(PFKLc1)Fz>p|5{=4(Z*#R$Q=jNt~S|_h?yq5L( zilvX_p!=d6BEL}zFv16m5C?5b3eEznlyS#Au06ZVQ+n|}twAi|(jBvBt241hNNe$v zE*R6g{xIY4uBFNKEH~u0Y%*KA*DjMG#=2Ne9o7@e#!Q}O&Q{o$#H5@eVZ-#CwT9r9 zK?fC(l$&+)oT+9KkfAe_YiY`l9Gt>lH2#2l6=fbxTq+osE}DL9 zZTiKffjoIFznj>Lh>wKRxK0jpM|FzkUP`}w$$yvHImEN(KrH;UwbUE*XrVcEhrTp7g(0}vRB9wyx+X;I1*}ZaqiwGxARhy0MoX!=2={E8DFL7 zc%Lm?f=;?-1wHQ9(a-G?OcYkMQ7_lK-2D!BiViz~_%iG}`5Ac48JcXNc>mbduXlpm zO`^6MDo0dlV*O@1QX6Nhf2`tf@}qQ_zu3#Je_*BLSuwA=F!h4ahej-9BS*G}Bf;`7 z6F+hDc>Ts3QBJ>SffwT(ZN0I$#b$Vfrr0bRaTld#nRT+hA_VnBs-lQ`%$>I2=NstV zA`sD$qHFu)o^KRpw?hFmr6V>u?HjH$hRsq%O#f9>F5$gkKYT`2_6tM%KNmZ<1Bu*t zfHHnM_R~EdL@J(D_^r~DPC@GyDn$nb+;?lJ%1YuEXC8}i^67$$N>~Fuw%Of1`8&z; zl?BoU1Lr=*&~$#0nX{JW$P`N6LO#w7)dL4G)o2370lLWcF#9GqI3fVvTIqa*Nz8^`G3EOwxdQ~}V=x?gLi|QVw1cqtsCX6j`hRw^O zs@6xngcx5KD*B8A>4Z*dR`m9bA=4j)F2TUUw6yQ zH9OH744-P`xuB)*72?@yn9njJ3$gZ-`RTJ!1<5+pNLZ4V(Tq@f%*qW9f6@oem%hwB$vZ->FA_??l*Y8@647!2ZSG3_c;3Aq`PPf3vDsfE|74vtcsdpo zjF6|DE;R1mL!aze(((%k*{U01CwofIPo7H{7L?(SH2DSE@M+q;w%vY$g%t6_I+jK7 zcZ>1a3A;86KW)a*n#e&+#w1*2fylFM4Vzf`E!yc7=0Jnt%#3_4vs61z-smD;_x=vq zOwxm1m-Y^JqP`sEwfPOxm|P|X+8>#;U6&34DfD1oR*9a%;@Of*m z*`W@SPZ3FCM8c)1QX!_5L=dEC5GlFs{;64%PQ2Y4xsHu%W_JS!9PH++F7dQ~`tNae=SU618o%~{{BTamPCO(1_pxutyxJwok zugLeAOxd(Zbx+;2@w0PvR#K3m4Kfw}aAEzi9SOmQzc0y0V+inKwKk}u2AMFfP%gL+ zcDeuc@>?U^T4XO=>^T@4zQiWx9K!Fm?2xEB7Lk8p zi4nU82|$?6DUCQU8+*)txrCUAsnJqNLA@$z)q@C|w+88lSk$7i{w{_gyh$mI5=3YP(iks&?9{?dH$auV^poxiS@H!$WG-k^o;DDPjlQqRT8QA_}xvrpfX`T zpU>J(rFp#DGTU&_v|8c8pX?-=l^eQ9&^w!clM3+hrO9@mX$!Z<4LnC z3w)zqOk?)OF{|R1?=aV}A*qY3bcqyC;z+Axx5MVabgs8L?K%o(tYiD5KErCoyQqh2 zB#-u=6xpeK#ijhci>Ia)JUM0#gI{NqZp?|PgI7{3JfO@w2WS%OT|XcjdqePNvcsbr zHRu==d#gUk{LN+~p)?hd;-{C|>jwOPJe_+y)Or8@XOJk?prTaHsqNs@jt(-?$)VC= zca_Q^VylrY6>^xd6hefO9A-P(z9l52aux~AmXcGZC{xL)ahNfu-}M=L|MstY@5k+yhvtxF*|%N)C?bT|1n#4WT!4VB?#i%{x%gtRE^>5&GyiR`fJq@y=AXN zWCP4@3Q#|<{rg>_Lt|V*?#6$Vj@?rNn4gki;#5=n>9H%e{@84R$riKJ=vT)!mHshY zO=*yxh2Aun)dR7`%^aJ7!<^x59BhK=ZnKbs@*GHFJG))L;{}G41WJqjrNtTqE08$7(q~HM7&E>^PEs`%Zs!TL>cj!MVRRwX|>acVST zNJ{1aVn}7N;s0eXiV)!Yx|b)$v+Tc&(&pg?i}9G#h)R<#hj3&LEZ&=U@d%~?w(Rt7r)e(IgHgmeT>23l$A z4kf5g6e@|355{CpSO?ua#XE!BNCbrAK%W-Jy{Xao_G8?-z5>p0GpB80fo#;dLbi3} z*me0+GZxUot^JJTwd0%dG;Vr|makHqvQgo7LW>sTqZY^vp{rt~xhj~N@at)kXyDKK z;x?^OFHR_J0*2bs<%(89&?1LwcuvB)``4jIthjcU=&wxw#wo@YKQNW{v>#MFz37To zlc@G7-nj)N{8w(qPJQ!B9V)->_PzgPyu-6>j)xls_c#wwq0Tv^^JWhV!d~JL z+rnt7_gT~q)FS76CZhYaieoI;rtJ!gJ z3zbPqx~Lw5I~K*JX-d+s2A1`nqP9f-6}C`h`XQYVlC5|Dam#&VFH6!;G-UU{&rPAv z-HD0c)XkX7tA~6Ep5gc|Q{k@V88U&Ubib^Tu815cAJQFpzQyNgGN|u;n|$Q2ES+VC z7zj%u^ZDa$8*>>1qX^@e3=|lm&2$BooA^6+VUj!pr_486_e8#CEqN$J=}<+n z(!)(V;H*)GXPIc!Ssd>yiFf{Gqk>e64~bpB+E3$7OJ07$)1#u8!B_`f=a|#ewm9j( ziK6ER&Fi7Aw9xSsifuk@Ak-iy%J=BeAyeC+w?b1%#-pkt)cqN7@Kj+_L@f&DgrS~) zhfFA-G_mGAXDK$<DCv%pm-HVkImU^T(Ei7z^W{R>$zq9uYAD??TkAF2!NtuGU z5yjyxVQ=agvR|utT7L7Po?zHK`0p&V={f}Ixxj5<_%J~jLx##Kf>n%7`_ic^I@idy zvcG)1|0TB&%W4mV-vt25y|9whXVDvzKldC$3^2NRgTp-Q+6TsJV&u)QN0^fIBrRja z)J(eh!me|k2r{_?da~}S;2%MR?BK@ShLW zJ|C6ZI-6Q3M$P&Q4ovCiZzgEuPm_DPft&gx0J9sGV{Sk$& z(23#6geGE^NRfiHD~$#QmN}lH*QSymru-hZmXfRjRDe!;^ahbBb~xZ@V_R_&K;k4N zlxLu;zCt9<(phqceZ%HW(fduOw(|St8nuH}DsM9!NndJ2Lgp&|9Ho46 zl-=guGva6NqqB9#J$08k%%Dhxn`*;+*^*&3v3=^#u~LQPd?PHuLu>9nom}cmXg|@R z7juTtw!lRI>|=2ju=O#rBp`xb$s_~H=s6$iR6K}`9`Hhnm_#W$Lf_mb(AO2I6Sdl7 zfTmX^1TU1s?o&7y5k5=>Y82#0KK{bf z{#gVn++tt#%S8TgBGlCaA`1jGQ&B8d^%^7lf$XD91;5ee(*~NE!Sz|h zgkm2l^jl77A4Yywbo#N5I%Tj`k#ppLsHlq+2G(yFYRj!h+GxN3yMIZQtY&jvlSgh z9s@BvAZzQZ-+FlbnR#dIiKDYhM)V!N` zo`b$-SG2Mc3?6K2Im1WHkqBS6TFFIRAfd0*LIr4FUBVke%?n%7pV}g7%sNGHR*Yw< z&Hp)mwU)NuL?58$6x}kc^PmPQRQknhwe|>D(CB2)(?8qaQL_WE*za zw<nlgD;c@{3UO`&LSW)sFy|fj7hEU_%_wPt_Dr{r0T8O~a63!7 z$sPLZeDL+!P`JUr9)Lge3M2BLSFSqmdby!}+^`;#@Pj^%au}NUIdFI|2(+_CmK@+j z0?(lDrah8(O(_~=#jtL1SvlmMzia4CeeNkAScxUzA(hjgN`>ft!#8S86tMH((w8z4+ZnPe(?${yreM){eUrjh|=7WL01&3ff})JqueEWGE8 zjYN}7J_ap3@dW-G9s2L|v|R?(ROACZwXcm^Y-e9{VvIZ_mbgoEIeU)Io~qY}*2|vs z>1JtjZ3Me*K4z4U?K}ETcfmrR+jiCV0f+4TA* z&eD{(0}RWHqO^-EF90g^$=Pr&Xx3&|mfpN`C>EIX$>d$<{m^-|}BsV_iT zho0@ww-*cojGTfNby@&Tm3ey?!n?&`00;S}eU150nl3eu3fk^I{@HzOE^GWS_Mlkl zMh1m1L%AW!m@9u_M6x)X*NaH0&<5KE>o9qDvMUq2t>GzRDB4EDNSM(v$2{uq+J(aAXTB=Nw0X=yJvn-*7_7KqriFck*$g&qI5`Hi6~PA&^s?^w5)uqL2R9PXZ%MWpLVPQLMa_B@+&PyyKnepPP10P zwC(V8vJ<0ZXCjohu^R0sGV6eHG8N;E{YT~jgPMqcUkyg2fyXP(XEw}48jz`mm)j$y zcGo-^<4YQgS%=3IG)1~yM#5rf1<*S8Umo{bDEz|05(q*8VPT#KJenE|%R>fBbBg-5 zVk(?GCoW;%vGUJF?%Y$|y!RX;Wc@e8YMlKXC$Jie4Xj68XeC0EihS#~_xE0@3Ad!Z zeB1w3koUt0g7p5eBOxIsmI5`ye2=Rqs2KzkrugQ=XHt8r+-NL|zl1oI%1cXQpFga` zsIM@Vkq(!614&5*;q}JtD~!*1c3qjEjn>cvXZ-nVrUVfvA1g7sO#^2>d@|H)L-qD- z2Wze4XJLc5s|{mIL~KlJ$I5tj;VnE}1x&W`1TK{Bu>hrA%eXC=T zk#4}N-n6)R<-PJB7^ZHp8I8nJMy8z>TTQw2qcx(uJJa)qXXFjb!$lI<9n9545lAGv zo2(Nwa7{Do&$MmO{V^Q9?g!R12i4B}yBxOE_4{utNy=&i%>It?G-U|Z4r2YQQ}QIM z{MV37Kh>OLT^}o=jMk!S3^%`ym+!CO;+Q=P7lNHu!E-8Wa%uzqJDBcN4PDpdr#xgM zb#-(+7Bf0&aFn5h@;7D)eO(^Ci#L5QpY@*3UV-{A2rMi-D zZ?HW~``(zlt@9#9CD|QD>+k@>AT|Eq6YQoWzWe&g3$Q8^znmc-N6`f%!uSZhBCy$94d(_>%dfbpGD=<4CE8K$IfrYNwt!H21o1BaclJTi$Kf9;PKnROp!upX4PTW3hD;GYaB?++n@ zWv`DPh{{xE3bbOhp5ssH5oqo?->}`;eWHjnT#n3_{|=cY|EUR7Y&W)T&uL-$oiziA zJo%=Q#7l|9TekVjYrg@l^1kn3fp4;o*{C-Eb~)wFzJHsaG0K~k-4abgdr?)@O(1Fi z5+r(V*tj>Zju^9tBbNT`Net=^t7r@_VM*GFH)9Q^^T_A$Fq9bLW@WCoU2rnLD_KaYG_oRQ>l^Yu|UIVR}~q#;fz1 z4YC4~rX*AD($11~cKovg-?0;}4UC^3ova_7=^ipzopq}9ZR_SsN91494-6?u3J)zx zO0U2VdY+7~N|LLfcx`K7QTT`Hp*uD{Y+Wo$Jh)E|oheiV04iH&G?S6j9+iaMt))`T zuDauEii^a=L;_>&yfj>(aFT1L`~D!TC@@}!I=-8@mY=XZyO|Wz7(WfE$QerU3X2U2 zRr@~zBiMrGnT9@v(6Agp{h%w+*Il-0$+PsQiy<_?n$0wM*Xz?fqSOd&+Y-7FQ8C20 zi*ZK0Q?b>({SQk64u=?&4dS>p}+oC6jqi z_9g;dM6sWDZmbbJDtxU_ zbe|P6PwP?b(b0ZLm%3A)l zzg(h2``Bx9|D>^jMM|SAaDb5!WA^YkbSV6LiNe~%!rUYo5HK`@w}nO{e$;UpZ)=0bHm@1mw}Erh;}8x{^J`H=xEMTv#H+nRet!*AU0+VN83!y;OL@0X546YLj(HteT;yNP05{6tO864BC%j->>od?R8eRZwh;K>~Zq-b-I*lnG)^qrzqQAD3Y^ zeK~z~*hg;INPSpOeH;FH#blcSz*L+7Q$Yrj_uBO&nEdMGGL&x3jUIDhJbM>D937UF zHA7jZBX*v0gwv{ujjSYmlL?84yW%%$e9FdZMI`v1XtWM*p6_W$iV!6Fti3sQh6wF* z+3$n1M~;{0t)fxvxL0>MI!t%z<>~J;Put7e75?JNS7TU3`^Pq{D zTsQRN*w7z3L}Uu->u#U|@cfqt6_hHs&4F=)cDA5$k=@~rM-pfp`Vjp%@v=!NLNdPgqhhA#xXgTjfsojx>`~(es+CqH#E_ThC0Xi6Pgie*Dir{}c|CY`Ftj zlqN>C0qMr=_lur_a;1r0Du4I+*4u$#H3oRQunj6cy8h_BvW$p6L=;oHuKA`N*DL!3XXuQWma;Wbt2+$M+ zxzlH;wzRQ*X(&@fu6g4Bqe2l6I839_drZvx7PEkop@&1ofn3gK&G;#vQp! znF@Mwjf927-ox%{-NZ_`l(u5g8rZHb5bUjANO3ko=@ovm`4(r*`R z7F_V39JdOMeCPBZmaCrX(fJbnTAn1?RPa|qv+8p?yu#0|QxJLw5UYRAb-LfY9JIft z!GueOc((sr(F&mou(^{lQS1k`ovkP*CZ>trGAdy4f(Zvj@@acntuu3K-4oItbNCsX z@m`Q4IndemW#5I3H%!;hcw}%lFl|ZL;m-6mBQELF z!0#|f4!tYO8=pL_cb4)K!Hb98)xL-G+{2979AJU&;dbkhR3Od#!=D6(KDoSP8o*qM zUS=fw&~_KbdtXLt&T^_1&KQ!B0+AI27oKN+bD_h}uWrwOSHlf!1kASS$vQ2*(G?kZ4V;`MPs4_ z%GTJdEC8M`omOs|c`!S=IlzpW;7!qTzP8pif$W8^*c@gd-r3(y`!sL=g3u} zKPSoMllE;lk*3qP)K*n}v^-YU{PZ6MraCh|xZEhAX7XJBea7<*x-*!3|3mv;PlN-a z@DBGNJfn>dgCz=mn-03^=`<7@b>4!o=YR{uMdkfKsryZ#fqQ1~NbVz$;@^P-l=p1^ zwWd$gG}zt?E0G7wBVAa$`>0=L`Gw-mhOe-e79JI<9Yfh=bpAkuFvTU%9 zGdp%z(xRkNc{Wb#W!5^KopiU8aslZ$zDw<;1AEIj_B_Bcp3CCMlIbJz;>Cm&+K$ArWoe}PQDDz%vUj0fUpO<0GE4c$XIL3<|e-_)^F3P`71SsH)#QB%*} zOeDmKwj>vP7<@8h9XJ@8nxDc@jZjCyL{h9Azp-%aip=je(a@9xs#L{~?k7X--R%vR znZa}Py+{%27Jcs6b4230K75thSEwtxrpqXM$H<~Dcl^j$Oh%?4VbqicvxKV&GV%9X zNTCqF+{8PS4Jg~~J4M)HO4bbl2%k(S?n9}s2^&rsaL8Nk+BGu0Bqt(B9bwc}G z%%4{o>-4kZNJV!xefg-ySViioh@|}MDvyD`wCDcX!DY9+7kOm(T9DAXGpsOPe1y(d z%$eBW&)=Lk(;lP3E4A`r1H_4my*CIT2Gs}_LOKvKcnM{QwSpX2Aghf9r-&<07(R3> zCWeFr@`TYinlx@`d~j&{Kdo1RU8L6*#%NuFlp<}Kwu0?Hw{kMeCvjTI+k6Q#j53mm zP#MNkpKqG{@d-|D_>ZM8FCX8z;KlFuj)e#gT1JXgkKyVkQ7-F9W24Bc7=t1+m1K%^ zr;$Zr|6|RZ?Q$B@bqdUU@m(x|y>yN$=V$HrG;6bF21V4$$7mTiHndWG;@~&&54m9# z8sMN<*&zm5+^Or<9Pd+-)SM&VI+4S1MQ^EHRj$K^nbTyW^F@q=IB00F+~B632|xJ|2;>r`65(c{F`az3x(3kDqW2rnfr zhl5jx4ZTkL!^;YH@f(*+ul=c&SCf9D=y{o0q@^!a=|e1ZB-#G6f(KEfwN-XYj2+ZH zZBcn0RT{BXT)C}iC`-&hS;ElP5`o) z()= z-R};;r3a7nOxvVqYdw7=PhT?a*2czS^9se{&}S-32Gf2D=L${# z@mp}<;;r#A=;#Y zp&=G6&}~Mi_4G)-TJPdRS3Bt4jQYUPiG5GsW*qWK{lJj#WM;93V_D;;Ae#f>e;3-T z$S74giVHkg;5eTR`U#A}&CFPE6}-#)mX?o;ZKgEO#BE268U>#KGYq#$%hv=)fg;@w zXI^33#^+|aE-YTV`)~nkbmV`R-n6Mtc9A}l%ouM8sgOo$ao_(wGh?Hkyb`IFXN=X! zeKY$%KW5J^H9U?kFVT>6&NIQNf$9>&SdPV>{)&A~Rz6{DVw^vH`t<1N=v%Yk#iq#d zmK8h29?qP@lOW;-qFz;Z0y`pIu*{yjCG=B0Hmi&pXj&im{cjg*8i~(Eid0xc$Z=Ak zG8Fj@iS7?w!Hk(rOE zdAjRm9$8j>aZ(Cik220=`TMM_goaq}D3ZLkQ8q0S&A)|qQbf&ry5TJ@?c%x%hEjcu zwvEVz?OQdZ2v2$N-U7>vY|N~uM|t?cK=-;2tvEcsmEfqVR+B(WRiJ7B45fYU*+KY=Mm33PVis|)$ti|?#oj3g zL~GamS@mDEqnQP7a4TWDrT6~y<_Y8jB26!g{~do<|UiBv%QqW=^P0kb@Q*64oHo`uDSaS}@c9&VLv zfKk~cb+JgzBg8j^TbFSxyKX(~YLKn1z~aY(y@~0l(wkpUiiN1CH&47KPm#E{Qi<%( zI&2+T5HL?RXLRmM&OD4rDeObhky60!HPenzuiIl>cX-!u7Do^UT}hsD>MjtTeRM_# zIFnhd(FWGa40hG&zx>Rg1@}I@?w*a<(x%soCb?nkkSr@V7&E4(c(KczMOA9w#qFlc z6aAK*pjSV0C^!^-5#hT%({NKlsqxpY#uJxn&P(a(4TZo_vq(u`F9P>fZ!`XiNzNB& z#V#e5c87|M8lYp?UU+Q0j5AV3@L>*NJ9cBPiXz>&FD<+Qvs+9z4hE1TW(;XX{IROM?=PvwaF$@ z%Mt7;`Olq&qt0nlmQ>TJr_R^jq^^M_{$9nBbRF>xuv~XXJDtKLL9gp+`}EJA)z3+G z{WZlle~|iU&PSU;m`)MAvrt1OmTC{<9Pv}8q&DyOxlb{@qR=DAH&!`svE9!mgMma% zHi-QhhY)C&W_EcL0M7)%*;Zaqx}@PS>=U(?4T!TNmKvDY`Q((I(#%jrXcDfCoi*;V$Jb@y}rtV!ry>4=dwyO9}0>P%*8m>=qQ6uk5oBOw>d zS;$=5kscry6-2rQ!ht^~VWLOJT9q>!3YC;eWCU@0(1E5kGhIV2Hn@HK#hoy$z@JSI z9TxifEP*QdPXOmZtVEl~i1XBba^L&v(kK$LJ`+7j5E9)yUIgjHnZe<;#d60?qS`^E7FyU zk$%~c{CDQ2m8-Ui)bvu*k?Ii2nh4<>pHGL!rV&GF+v3^gMRSIM-y9$U>$AYAn%{)P zu&DT8W}fK(^29K}w}n#^clgX}Dtzui)>8p-RB{UTq^)&7n{W3j#?}rZQGvM(Q;7%i zBH=iYF*$zk|83y$RtVe7( zksxo~#6(3&_Z7dDiHphJ-X#6(O-x%oXijYP$T37_3|Wt~>EXq=Ks6HL>!@ZK%|;`1 zoP)2faGhV52KeS2#%kK?EHhE^PhvP4Q(zg4p%fqyJb#Mbio%N|SYN)ABw&timv1d&gES)N~&eZP1VAR|B+ez9JX+O z_?Az8Pm$1Fo48&Xl+F0%R^pSInZ{GFZi92dW7+eI??X1zjU+ePwVBP$+kgop@iOT* zVxA0^hxq%ep{Sm^z$>%ILP=SmccCtN6UO`#Akbuu2If^{_&;PX1urjOI!s-2cPVMxUl8nN*O3jxw&D*}<-gD#TU~mG~_6UPnENroEC;)|#-N4G@z>8Zody?BRaL zd##P0+I*J29fYjE`=d^nOs_fPw-18XsH7xP1f}Ti-M4G1Ieb;lp7j|RJg;R2Un9~#{bAJb%zS)b*bUIBRdAuzi&g_zMB5Q5FbQuwxTl>t zg+oGmY*imE`jMTTIvFM}La8_@z&&?s7SIuDJ}Q5H9sfGS;0_;V6gH_x_)YE6WyL>Z z`dZ`M6`$B);;=w#2VSn~%z`=rxt3rfl_NPndCo8Pox0Z=e zcz{{8E3HlBi=9&Av`(|L)=kI!OR)xBNKWWTT6oo}dz~xax;|>^D{a%JlVTU^KYR6K zxGCL|HjH>hBEUU4$yVfSoD}po0lbFSQjiJX>c&+W3C%N&dAhdhy(>4r!YpRu>D$hy zXE&zG5nhvI_zJ@N7XYB)di21%LyNGJkmF_ADc3xjgn=B8mM-@H6&W~S;!Q~#q&rVG zI=E&s&iRWo8e)yiWIA89sb@G_-F%SO$occ*h5EvxFYm8@>M?q4Veuf}Oq(M8y(fH5 z%+mS4rL8!#DxZR@B=h8Z)pu_@B1-Mx-h@!kjpVi4aqq$f?}NDqFySW~nN<=HQn3hM z-6^ZCKl2%8+jgfeHg;4tiYg$hUt4@$K4&Q*dKk%Qrv$I;nHLJY!q+_@A;DK11E6v{oopnzn;Ra;c zr86;Aza71$dF3Z@KPPI83CKHoSuWVg_5P>w#b*`9A;?W`%JcO7)sDi;I#e4SAD=}-;seHzxiV{Z9 zLwfF8*Q0leX01P3YVEq<`+|Fy8>iFw>rwr)hT|%R<4k!EOjG`Ui^%wz7WUdC{5zd$ zs(!lTGDR;k$TJEB3Dg7jcIS8DZW<*PDo?o~WxhU8R1oz9q5?(8`{>Mlx8dEXmkMBc zS+J{~+MYMt+B@o?JE6=PX=nLGs!Lbbc9#ttW|aPPSL&_{f<({o%;*lpm$AUcq1^LGK4eL67VJ5&j?XXjBRY2do zB->;^$!{1P#aE9HlyJyQzV1ei+|PGXazOU1_yP!G4WR`X2@IbIWJyMI-kQFK$B2FHRkM^zlp*k@Yf9k&x|4XM#*444veoqMrDz5Tc^#7!DaezTeo&pD@Q*MZ4B= z?o9Fw{cU$YrVw;|&{L-GQ}3ZQeiV#9r0G^?MNQLF?iw4rZ<6@)e(668Wlv1nlu*K@ zVEJKb_V``S$-(jZ5Nd|=LiIgLB%LU-vaKQ#O!2!hmY0)nv%h-II;4O2ZDJmt(btxa)aelWj1R0fq>Gx z9`84!|7iJ-qumqo94n&PBTV&>Q(l0O5#o>)j^4N7j7eyk>8(<&7;mU>&t(gXXh!#9 z6svf)mT|derXZE3^Y*-Vt!2B?-$Rd|WUuV#8vZ9+cH`%5l67@?9y$&oB_%AuRpCp{ z<-+#srTQdq3JF$9t%zW~k*$54I$P!UA>562>e5$6WRnZ5N8=rqf!(Ll6d>`av}VXf zCh0o{clAmnuWyxUnq26#7bO}1knPhk_+;>-T1Z=s?zq{)%Ho8qWXC(AA$?CCgp10! zJKUcX6eQ&@CxONq6cI0QF=yjOS~(sjUC!YTz>n{bRXXCCoFp*qCwxn#V@v! z^&|rd@B}cC_80-;IXASGi?wZ-1r~@ot5;<>OB*Bf?edPiI0`7&h_^a6Z7*wvoA9!|R1E6{ zsuh0MEn|f?j;nTyxaOFJ>t{eMd)9q;6Kiw{>kII=IqgqOSmRp#^Bol~la-Z~Axi%C z_{>nt?X?SO7iHt4voZm-)SEgZE9~{CrhD*s&jD9@(^Y*iX_#mp)Y+RvPu~1nbwBZ? z4%`^_8rM@F6ttbZZA7ZAsDzPc|Ep7{=I78RZ_qw6E7r{23D7*r50ITn{>}2!#S=|l_I;AL*as=h{|Mh=s&v6d4 zK4u{EtKFSicBOw$J^Ar)i!(#q{yyNAd((oym=2fKH_Oxe$J0*@HI4T`o-O1i2 zQpY-xj`k((x@-MUFj&?N!svbZ`X$o{&xWzMEm6b=o;vzeAt*qAv1=k}B7!tax#l5m za>3I?F+XvIMzWD4;QRZQY>A7ii@t(}lCpxFzCI?Qo_F)c%J+5pN&mH%l`|Ss<%}7o zQMFa;1Oe_L$EDqm&HFRA?b27?*HE~(r&L=-kHW42rqCO0X{D0co)fQMcK>ovVref& zm?I8T`zc0vxZ4c%8&1DF#hBzW&J1=g5lyscgmnOyDQ((^sH zcLBrdm23dRo0@M{sgS;Ij2B8S`M)pw(|4Iq);e`1yt*T#zETLZJ+k9av=T$((sW@g z*W0dZWVEQ6q1ajZi|_qAMU5*pOy`ZrDSPG@ex_5O3}ru&ikzkM^ZgKld{712JH|6? zh`Gn;$4JG^h)v0^>M}ht_nbPqU2#ZvpC4z<|ISs2L2d*Fb4&aka^I#i&Gqow^XR*x zo!ZH$Su4S2Py2^eF;~b8>4AB2Do-xj4{6vZ@{YH!a7psvpMD2#2q4l55tP|xt zC^c}5ui0}wv>x^=$n!d75jn*7Cj_V;NR!+BZyygG^)bj_FETNAiL#yN(hnzGBF4_r z`QHJ6glx(DVOR4$>5&t0N-!jDIz&=7Das3^oqF6qVkl#$v8OuyEtvX#v6EE0u)LGW(LNZxzJ#JoO zW?#MEQ?gFMqonEn5InSu;EA41Mj3Y{0er~&XWI0)(7bF|OHY2o% z0c}!9{r~pkE=bViv2|Bs+_0%?9mqXuI^3l{Ko+$k^}pie48~b z^qK-Fgt3X|k051V4YtD`yVa8ya#RqqHfNX5=>rop^7u1~{V;)mJ#1P*!lzL@k^O_6 z;X*6MTFRBXl3szP&B$&fYtTY~hyJvZZ6JGPMut2pJ>;1;z_(QgT|`_()K(`5uLhJ; z*pPF(`*JzAi(1)}Tjf1)Le}(IDBpbh@s&wvmr3|nm+&RP_^yoR{`ktE7GE-|L>yf3 z!ahMt1k7A`PRkX6?E{~HUWCe^z-s!3{6Ox1%9O3-=yn_ zNoQCWG&yOo_vm4DjEvqcXHiC*N2NUp9q#-B*lZZ1&@ttH2Rn+_ZchX40ET$}_G01Q zp{;m_L^)=gNg9iP-?Bwlih3IR%u-Qs}U5DEldjt%00?a+kG;C9~bLLzd;*SpzAv`UFVFFj<%XJ;vepxos~ z{+b&f{0f&1R371W_#SFz+Ay|gT1ZD!kgU{OqbnI6J7WwPgrVe@%)Lk3D;^T;2zh49 z{xN@}h0i5#oCTwVW)*z(UC-00z-l1PlY}_Ivz8EE%8{uUK5AAWOeqk7w@)K)VzEG| zIzDn4Bk#M#>zMb4zSkmyG|k~~YyW3xWOG8{@jsS3o0wYQv)*B>UVS&Iim5=d>zNUd zPR49p&0Ah?MG84$z2i}vyWC^!ebUEM#mu!SHyF+EVfUD6=;zW-X;nrTtJi4$_G)NT zt~3G+DFKRSvvnLPDI)2f_P#FOCo%=8mt{r`r%_C1z5oxZ5f8H`(>r&8mMJML32d{2U&jUFn zWFnB^YbKLxq79x&D3Vrg^BQn0KBwA8OV=}~gd65jqT~u&0*{M^$OMxZ!9&`Dm7BG< z7#K#XD*@>U-^|&IRUYzsTUQP2)#V=39TGj6I(-tSP9I^LvPuZ-1VcIK?h z2^4fa?I^d&xDAP)OG*r>n17$ko>c3fuiDez#F#a*8L=$t7t@)l9+3rAZE&=@H+W1O z0CfCG1q9pMo~PrRJ*e|XZWtCuB8@ zxx!vV(uf!+j|*Yhbn*D=vSH)&sQ^G=`3jz1socR6 ztD0dnoHTf(D?s=#(09g&?$%_wTi-4BZ<9L5wCi_jc<{QKD$Y?{+8z}4`w~%cp@ZK` zV~`5T_{GV)n5efAULl$c?{<2C))GgSA_jLVa@RLzT%F}EzT_^H=!(Lj*6Cra!Snhh zn(^rX1~U5|4;}H5>!V$&@^F}gFY$_+^dG{r3OTukbjix^f;$ZAr&&9r;;~o5F$r-1 zGw7$yq|23W%Dcx>PqQ_*ER$7nBv}<#aS0i(6GbfP`H*Acqii4Xr&o@=Wqs*URm81N z?8{(eoFh-gc+3Q41W8VxY+qpW;X-|GFm*&1?-^vq9Bl1Q%vYok%kx5Qh%6ZCw)WnS zS*IqtLnhwA*C%)Q{-jHRDxjw}L%ax%V1QG+haUB5r3)mUeViBC@xj{_BW~2bx%xd% z@*q$0x0-ZFgI`t+q!JE1Ja4nJ^!60wNGG1f=Ol7r5H@5 z{H07n(E|mYRnq7w1Op>FMYn6Ba95lkddJ?mDs|enau2PEAlC5jX<={E42>{vJKLHj zdPAFAzu}UB7mkVZ!Qm>nDZHGLP97-jZ|Gg;d_^{X`%ejz2btHcwZsUyE6e$$6>D2N zMb81_CUAeB)pfBwNIbh(sTpC4PfGIcymh%VdnH^3Q6$^_`Vz6iu!X76!m2x{*DOA{ zQWX8*z|qxh97Hh*X00v#w#iFprAj|gJb}_zx`K#=+~u9c<|J^P{13sGN+k9XBV*sf z!7Yq0COBp}#>8|vlnNdjZw%Tj-E|r48&Q_ikk;;d-%K&dw!nJLatKSrvr>)5Tu2_8~nkA;FywtbPG@7qCBl6KJL(r)7KZlc&5V@GMLCt*vvkn`YY) z(Mm)>J;lIrZr$;MJtD9S+jPnr`b#iChCcEl7IGD1y)YYdb#&Apq;Q=?(Ui2k_A{;# zmn(mS1(~Gma*dVF-=g)Sf$?}@+RpPy%T=C3#KLYScCkD!dVB&jm|J`HVpMJW;b#Af zb*P8qc@VWGA8> z(BBao)Wf>}Af4+Yi46TPJ!}VUXrHSFHYec!FISMSs~cx$H~)zenCx44-zclAg(N@^ix@+Pm=r&`{ig~|I^K86KHftj(M&b_k^5Q+EBPYWQ-y@b>iaILKpHmMc zgs`aS2$W@)))Xz<^y*2u7WIlrzqG;N^HiU($Lh}!5Q?>?9)jH>gD)cB3a=3U*BtE0 z&>tj|6v+Bc^Dd9XSGe(TMKb*=Nq8U_Nm+UhdfB=&6?!;&g?@B8#v-9Y0K4-p#WX1d zybUP)c!MUs(>4vMW=UYT^wKI)IuE*)EymwAb%v3|ft;BVOW)H3YV<~2%IswaOC>a_#?O%lY z2FJ2jWK~-mvr2RqKQ)u&^}X-@x9psRK-#ft*$dz(djaAqPcLpIl;Jjve)k7gCU#Sk zDyvD=a>Tv}**WZI`}L!OBAR%<*|d>NBa({x=U7HL9S@lFc$A$S0GHk0tJK1WkCY`x zkw&`k(O)dGE4n)*aT^Nmw9LMiM7#`y4RLb0yR?W1XG0>uvx?{{(Bm_f&Nr^}{QhJR z1xN^IZ~OK{GG79gScI9||co*_yfG`g&uzk=RpboX0 zJPsz}Nm^KEZ5kQ7xW?@Ctxyi}m7|E0nvZ(UgTtC zl$&_L=8Kp%+*mQbbb|(#u@`E1f={%$9Ts-f!}-u>AVr3F_1TTq%=ma)?M|i4!K0qg*%GiHv+p%aV4l!=)4kRsP- zztEI=`|()o)jz0(O4XkBJwAH-u!bB3*S#DWIgH!XkGv;R}q zTp!+EpCA4PSTe;u*Vwgp;leQDJ|{9>kj9Cl??d@G?(-9~cajVvkr&bc?`~5?0>0I^9{c9(e+8xOp1hene9Ui|B+Fsq`5YTV^0Mz`T#M!EJ= zUohl|m@Hc0*JvLp{A~vEd1g)0MC+!)PF;Wjjo`JdxN>}vzbso&Ek6mAOUv?HYzDkh&8e}1OWhDF> zIB&xz@3P+q-nF9o?4B3P-GDo(5f^=2PX2MuBAgmY?Zn&6!MVd%A0$^e|T3iW~VQXu# z0#(gug(e$>BW)E_B1D9M=R(`R5omD%s`ZJG@Gq*}U&btUBZkS>P+SECFTxo1#rLja zu`P8x0D!v&$4y$hwYz~GF+=$Oowe}{W-VjJ0H-s1QfujL4SmGiiy#z=5Cj5><`GYR z5Zs#P6xi1yJ#k&OBXW|x_}u#9n>U0V>~L{=$g!4CuaEiHi8u11vA(Q9*@G+4DL%+e zk+*CP^FU06@coU`-jc{zP^nKgCJ<4KtMC1utP-;6WIaidg_G)~Ny(6qOoJ0t zUA<1k(5JZApALVsCA=vxj2lSz^EV`fR4X9(vDK4xh}gb(UDCdN?ey5%3Z9VDH_*My zfXJNIBk6oilzd1egatljZfu{h#&doEC=xxnl$w0&?HK{`6&v6*VC_D-i8uhnA)ULW z4=!dUk)gl=-U^2vCOtR?iDQPR`wSom(&k-GllS*OTFM%C`C3OL6WPHFfO*)N6^eU? zCVeYl(Q9+AZaq-dCYU-bZU8QN^>1iEhk6auJQV_?kz$~rC-peOr@uB&f zGa=HWi7rEVU?-~Zq-<^BkLXU^0c+X4tgVgGRt#=YPefEDGx#FhuNg}f6lZU%(cTFW zK{?`2KW7oi+=OtG#;>7;gRaVpjI7zq@pY|+(G-PhET+glm3_gB<+OkACz8NGMHKx^ z(*N%%8PB<~KWRaoUggupaF9r*^-R+wVJDQYo~BHi>3MC|>$V?PGhQ^C?p-W9D@n2; z%zV0u*>^!&g`j$Y^Jrb@9JT2}2WT(h@lQUl6-dU7TPX$6bV)!@{Cxlb$W9FWqSGdDlA68P7_>TT03>n+f>O zaf8Q3@&&@Z<>M1S5xSD9;^6Y8nLdMHS)paIo)xk3UbI>$M-2o%=?q!TP}M#@O4Dul z%XW?)%3EYnF#4vMQ~TTx!q7!l*bH8d1Idx}z5H9(KyMaDE7s1oxPCFW zxI~(iVpV1bkOlm~S$K35RhA`QaO=6{_U+}`q3=(+5fc4^qzEHiBytq)O|O~=9a2N6 z5^`feHwwi3Tcvjrs=zc!gh>3@;-t`;wvn6mo zRqQ7IT|xzSv_jGk9_dj2!ru>Y)}}Djkn~3Co8h(4KG|{ag5|U?VckPmj2v}R#&tt< zRi9|{tS?dKEGDB#Q_(XsodFhC6M+NF27(QQVQWYcd0XX@R&EP!j_j?|>Q|Cc7_;Sx zhv*c|B>A+zKTZ1E#JXPpLe|?p^|^R2;+tj~z4A zP3ABVgwd1RTJyO7Ns~fTMKq{KrPWuaC-3;<)Jc9hsL60xxVt#Q3(|PRiuJ?fMl^+r zLXOA;!o4Zm45-xA0n}n)!Bk)M^+?x5{ONj*^D$ztActtL?yr~NXlm_0 zwQ-o#cUD6>PcF*hec-89whf%~KT>Qyr})Vi3o2@h7pP-!$q>%V8|eT(zoN9L?9%r5 z0$a%4Nh8k0%7BP@MUrZ`s_z6NVAqj z^n4lq0(g*N`Nxb3{qwSs!euQ{Ds67SEhT+JER@&lVG#yX_Z5b!7xs0Ae)waRMlDqJKI4!9owiKDQ6_@o|)Xn!TEC1G5@x!ls((h$zaG-OcGiA&+h!UR-rfE z$q=J9I()#wUQL`~PsC_Iz;qi!Ry?LbJLl5P*i`^oMjZ?e;v?*-zi2Qdgr+#F1EgKMK3pu4afoMSoy=*lpT4t$^#%XrmCXe9pjgrbT&VuL6g{^$rEc{ zX<+filjE^dTi%dgI9Gnzfn7Z$;kaFi+Dfk{7~Qp+9`QHUR>x^@Z9>LpimB&;sw+!Kk993=OP8pazdsv9fnpH$TU__Ej_XnP-0XlEQhOQ7Os$R`z# z9Q5L80n_Hrd+RR5iK%92kad`c)Jw;C=b$$k*-f||!qy?n(+a;fk|I!Phypaj4Q9aH z)p$mGd)68;Som=SJmCj1*XzGphh7+6ytLo}nR# z5kg$%l^!Ms5}X1{_DRo-5)$fDG}#F(buV82Y%sUQIlTGo%!%62-v<wNFwHb~ftf470?UGG5_o2~N$j3dG>o)2)qeP@Z|cVR=5_klQacX} zuoUwzuGs%{c$ewOE^eUd>02F#BcXfNg?y$_6lY{>Z+!67!>i3cgpO;nKzHKRfpNM`WASo(>?D03~7`y)J7@B zCF-OMcIl!9-AHAt-BiTLt;>{cRfx<8i#FmlbJ*-|bMr6MWPB!;=X z--mPF&-;0I&pErFJ+*k|x%__L-}j>U&!$?o8Xh%{c#H5e@+|S21~|!7E~c1pdHY5z zNK>~z_^`foO(!QMGCs1fF4Fe;^C#8(kJZQI-F!QQ0j~#ClO^}Lzllj#6HK8i<7IQh zkHtXkze_%-j2GDt+y^+&LX51R&7>#NVq!e^R_82G5AL}{#KIGB2MsDx=k5xAEF6vx zN$!iSysFv()FjNIqJI2VSV+m+$36pM{XLj=r9 zqMV`hr)T`)@?nni?0#AFsZpTzDz*-(!CxwBU{Pe2(P*g5pv7oyWZ@W*VKVeNp2}4R zZq{pAmivWPWfi|{Eq*yCux)DV>S@G;I;vW6tS@QGUf!kz@hS5e2n&UVkeTdvJ@&4c|n=fV`O zA+`FU+V$sak2Ocbcsgv;8Fm*Z?puFNmaJv^!b!}0UdwIhuh5VbrgZCPsH2TW?TGh3 zOl6EEFP?2=YG|mW;^qBzec%sA`u7wl>K)$TGNS`K98vryJ*FqdWAvNT(DI1NqP#SF zx;tw&OLkNh!{pAwnH2lB&#yOyvYRWD6h;_r z^nc6lA35s(d1UR{=!*tMY_mk7NHB|`Q2uCig{7V>LvWj!;;9)P?_#-`tkcYiQKz6o zaHX}#9keOMUx7i@fz1!@fP4hUeIy=rS_I(WqW}RQ1aB+G^V{y~cc1AEm*|CEwhoK< zA6|YifiG<>s&_R_*osW;X_O%*%^;lrwd!|I?G^C7`{0Dx5iCsP0kbdc$4pW~%bOk< ziQNHbfO+ECC?*$K0tB~8!S*vBvfRe42sr&vkly$EnS`0G&|UI-`GZ z^Q2kbF8k+7W1l16`ogizz<#2Q96N^NJAytutHH>xhJ^|Br0}5E%5*mTXYcv=b~S$c z_9@Wj4Uq=J9k5+7vtap3s#&V;Lpk2u&@o!vp@6pWcNj`_pyRrq?bM1YYC>7(q=<(| z?MOp6so}FNM@uYGhrMR81c|x-tD=TYY~)kgUrkwbLC8)UY)Kkb1$=1f;$S~3`Feu< z--O{yIm4Q&p!hmpyc~x?nO^$bHMD4$RIX)fg3%jon#ZOn{O_cq8zM zxHH6|_~g)}D5>hhhgd%Yf#4HqlipPv6)u;a^^L&*%BW?af38tJSv6OZf_Q`FmMM zzY?5Ch2M4uBS`Vdj=U+{001>9{H%FCcs{grkon1x{Pw?yBn%bcG}HlGmXe220o_12 zmTHKMV8mkRsB!(>ljyKl(J}XdYONI zd$e}NE-ys2mLkKOZ>*mYy+3z)(o+d!_#xz9BP+}tTH-7m>~VEX)0hiIy=u6TvSz2m z0?J-B1a=@DV_Ee{S(!-obYD^9^)YwW@GHpI6b2VJg+w@M1$OJi)v0i)NTyGXouy2Q?{^***Q}gJ8RArl4b06FgIB=54@;Pgq!PZSC=(loETuA} zXNp}q$?b)I65|Dh)0mT+!Wx6GrD>d@yITIT(fqqx(zhy$yp7Z>!1XilO05&dp_+u4 zM+@aYngEK}=64$a3RUY2>!D2TU)OC>U(o-x29%u&e#Rgh?!!gpIWV;Zx9%>FB7>CQ zf)8klqLmrUc?Je2PoAvuy!ZOI-i{A9JLG6^Ub=s{>i&1{(bD`+F|RBf+eB81t@eUj zNI%wrgNWOaJ%K~XVV|J>N9tb!EGw!Hwzapfd$Yb(upd24r{dnebM1;B`CSmxC+34+g ztH;*zNdI2ZaBujvb=roMDs<@0MZib3Blp9$bOz#LmXKR&Zl6hp9*w~kfrbw)_d%#F ze%!77q9*ObO85JkWL-Jq>#B!!Ei&VG?R(rIdwZe2yXTsN14LPdGb@C3Dj0(EwZt|& zVuBlxs-ez;lLn5bCWw8WAE^_9m~A1U=>^NbS@{1PKUaPk$xg|Ob{>6+Eg>9D6Yk*g zeE)>Sf~Ej7=WcyaKf~?l>s0?;yb)PpKyKmFp@{@n|DkjKvPSjb&nxHBRCqXfzToR$ z*yET)arZWOASOZfRV4pvCan`KA8>Sj%yVr`+m^Z~&F^;oMq`!bP@TswsidD?r7T8xZqmB;D6!()k#Fz-TG8&_e#p%hBHIkR+CcI zn6)N zd-qdA(}m#rrlU8lgD+bjZAm`X0@1=l1nOO#u3KuwD7A9vBq2a1%c4E+1sxnBqo}Yq z1z~U0!-mu|M!sh4Ec!+NxMbI+eaU;4rQ;;yy0F9dX|AyP&#cDsZ;g%4(q`x4u6@Ea zFkc&^iwt(iU#6AR=wx#E2dvVTO`}dk4U3E>JRI3QsEgQQ$lW?N8IXT=E6^q6MP`EC zYGYnR5X+N^e0Z}+GI$4FgSc00uu&f{?F{RLC&@|*Fk_+}W)7wHGh=SO`@uRn&Exi1 zgQzopRWy7&v+G57Q;E+|4ZpEV=Wtz3(uv4hr|xCi0l+uDG9VnLjPgWwMx;!K1jn=PQ`}rSF5OaHvd>QYRR8(bQH=`|-@It7rC{hs$`byHZ}uM?2gZ<$42uk+9B?Th%rrU9Jb( z+gp|#lnxKPsos0@?vbP*-6Ohl7OGF3ns9FI1FgXR!qE(qAe=>Yi=BvU~sS{bD+aM^VF4Db^&dLuht-{Z05&>xCelI{kmestDB@nUr=)Tf}(L z?;6)2+tB;>Uv@9vQCy2LQbA~U!BE~*0~1i_AXCCYxDhA3eQ3=t>$;Ys-aK7esw z3e||9MV;GCBi`<*vsC}vTIfAj8JLZ{e`P8uUOV7FliS@foFC^b3#cDi8ho1;zJDp#1A*%LTxX~3#9=bRSN>h>f3V34WWeL*JM;L(;vysb$n{r$m`fP ztZtZ*Hsv^RmXus^mR7Wc8ha{rO^WSa3+tpAVxFdAucnozRg%$aMlLu4vwz!j-so&h z{LOk~iCX$)FFDrrwJ0-lML^fHnk{*f&=r}_pWd~aqpJ%?yd%Z#{qFaJs^A*s8@ydNf4bko+v-H)`N8U^P1Gg=`xZzZUnh2+&s}#t&XJE0;8(l%9(FhU-z0Jn zb#Y+Og94952_xGxQ&~JmkX9L{Q3NK0VRk#hc4f$PPlXTA{6j(6%Lkp;IIpIqu(?d4 zVBi&Ze;EF7;ZI@hGWMxR1$dyXR}z zW3eAmcN%%lZ@%BK#rN0L{m8o3cyf5>sxv#TFjONR)zv98=@BS$PJr(-!JH5pbQqV; z4IVxA;q5iO(bsy&DdE5S-(Jn)kN9;A?(BH}IQx2!vZo>O9W*qW|IgmwuaEmbFB;Db zC*c#_iZ{ z#NDgg_6Q)e_;?B!_VPiuy*n2sTX#tR$Q*|0QcZGLELpbhyi<@;gh`ioyjgCr?$bJ7 zB{r-$rfDl_$Hx46=+IY?h)YPO)xXbo8Oifzr`MvBf7ZBJz)Q?Etq8~qW`zUx7nTyG zJ7`_Tu<7D;!UVn|ZWZyrM`&;@1~QrWX*9RgZm~Y&>VALAYaDdv@q?b}<@$8wIDbHA z(TY$0f7ahTU;jHBrYH7P37BCkL)pxt&4kv zxiosu8tLQ;A<3=ziCz(B+a~JVu57z|_KN|X+La#nw?IuL?;`>+|P1fJYZ`N$y=w#S{Afc0~g4+pCz_;aPvI=>!FL%Z|WaI zIyo^&{?^xV>=>BSF_7Q?`DE>7pGaac2LRO@$$-sZ9y6Gl^os8w3&&W)!fVkqsHW|0 zv`B_!71FRs1d6E&!IcKe7_m>EmzQ5oK6)(~=8B3+vOK(n-vTt!LyU{u;@w%h&d%Rl9;aV7=*P6Dd&bGx0~t}MUu}?>Vx*68D=VBNCBUo&Vp6h=#xRc!z-dakxX`q7=dRvy zw?E^nOF0mVNfrEAUaD!?js2s2{YOVJSS>GCS`EdcmiQ95KJqC%oT<5Vz$XmYb7$bD zqzE5iYz%5(DT;>jTT?XSuCA^w0^o!d&d_7Fhc-;fzdU`+jL$kuW{pVMcEfe^?>5Jp zyTBS#rIfy>&?dBhC@d#O{vzl6U@`pJyPJgt%RiZ&ch#@}*C$;0_Psg^BeT^-kD&dj z5TnI}Af3jl6P{$Ei;g<;=k>wPmy&0~3vFcgTpr7hRQPFgZQg2?>>Zk!;4fay*{~t} z!c-om#)`DFNerHWj~YiHAgZv;hTj>6U_*T96sTifr7CKOj;B~OM2nyvzD1$+&T|y7 zn>9Bxe?HUmiPKl{L&74cAyk68EjMx#qm?{UZWkdhvkIUcBntNa6|~! zM`@^Ml{`}!Pq-~2{qPi`WUch6!dvpkU$>UJwI3443kTDL0pf+$V*wL{oPuC9!bKjr zK6w9nx+UT&5CpH^SPLEWbJsA@kfJoyDsLfn%hG#TDA8Jw%32-?SniTUzm@!1xq9>{Y^PcIzIp^S3lrM|fnrkUL347{!VOA6MP^K`2QdEm(ds zzVgPqE9?{|+4mH#wNZp?bgz}J#W@SN9h<8fQ3!ni-2^JJG0L$!8-zBZ6H)t zSrem=j1Ab(nCx>1M1jH87(Bb$-d;d4xm4DJS>65TGX|0)bjSgm`YvxpZys4QnOf3| z-=PnFX(Bsi-SzU!6dIkTl4uHiaT%gxlN~X#T!JKGure@{WhTQ&#Rr-fmi#POb|8LY z=@^uLV&aCM-HOdcV{n1`8%-l!8N+lJd>(%0 zaOYsmR8|4sA2I2sNcBEQ#y2d;#S?8E{=U1cjZ@T9)eE69U-Bd&7$eK^c6mtgc_>FQ z;{VG)SriF-pkrT|Xk3L38&V5v#p8Zi#?6~ka81p>(=J9;`{gGi<|78cmd+@)C=*(W z9CGuT0<+J68v@!mcvOPgQUrG;9!jF{I;FFk6SV>s?={K34w1zOClWI``B2`%ZJ#8` zC4FVn2rBnW$99ad|dyxHaY&kht|JCFe$Qb@Zf;;Ka4 zx^)Y;c-LwZs+0mr94RGOAf{r4m9~yfU4W%oq`9`^rhnw^SCc~rv=sG_%vP5)dyUyT zg8YCq5@G1grqJ}bZnL_P?Y{J?PELB{B~x|vj;~WX-j0TS9xceXMy}aJOUg7*JfFX` zYiZ;{Lvd(|!U{JB#+0z$$iQP2z!95vrmDTV(%;!ONAguTd+d%{Nmw#`j$?TSf1r1f z&7fIzC9m;Ud#r`603YrEJ=M<={^Y5Ab;5wckzrw}D){Isc&xPUyy4XTdxyTMUY-uo z5ByW~TjYYFV;vrf=N|meD|J!9OxJe=a%nEw1!wv=TbN%Y64-md0Hk{hkd@(^sKnLr zj@itf7&7WVgwX3{pa`jly^kQ|k4(|IuOP>nQRed6T~9)8-UZEetVzrWyiEq`h!Iz?zFPhZDvgH7=!g zj%V5Xk7Sv65C8sSSc;4YkCPo@oj2u1piGPhe?I^DNHAyPH11@KNIYW!Ppw~LlQx`S z^F}%o8ks~-$gCnkYdeF+sYrqPg<;l@G-IN1Q%!GPpf0kh8AX6$<8s;SxgEa5@x z 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 literal 0 HcmV?d00001 diff --git a/package.json b/package.json index 3576ceb..20fc246 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,8 @@ "./scripts/install-skill.ps1", "./scripts/install-skill-winps.ps1", "./skills/doc2x-mcp/SKILL.md", - "./package.json" + "./package.json", + "./icon.png" ], "scripts": { "build": "node ./node_modules/typescript/bin/tsc -p tsconfig.json",