From f3e9fdb2affb28a0f1c4b94c1b2d0e3c52fad100 Mon Sep 17 00:00:00 2001 From: Su Yijun Date: Wed, 21 Oct 2026 23:50:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20ROS-DPI=20v0.1.0=EF=BC=9ARouterOS=20?= =?UTF-8?q?=E7=BB=88=E7=AB=AF=E6=B5=81=E9=87=8F=E4=B8=8E=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E9=9D=A2=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - IPFIX / NetFlow v9 采集 + TZSP DNS 嗅探识别应用,可选 ROS 只读 REST 轮询 - 内置 100+ 应用规则库,支持自定义域名 / IP 段 / 端口规则 - 按分钟 / 小时 / 天汇总写入 MySQL - 全网概览、主机监控、应用统计、流量流向(桑基图)、识别规则、系统设置 - 中英双语,深浅色主题,T568B 线色设计语言 - Docker 多架构镜像,GitHub Actions 测试与发布 Co-Authored-By: Claude Opus 5.5 --- .dockerignore | 14 + .env.example | 30 + .gitattributes | 2 + .github/workflows/docker-publish.yml | 117 ++ .github/workflows/release.yml | 34 + .gitignore | 13 + CHANGELOG.md | 12 + DOCKERHUB.md | 46 + Dockerfile | 22 + LICENSE | 21 + README.md | 129 ++ backend/app/__init__.py | 1 + backend/app/classify/__init__.py | 123 ++ backend/app/classify/apps.yaml | 254 ++++ backend/app/collector/__init__.py | 45 + backend/app/collector/ipfix.py | 223 +++ backend/app/collector/tzsp.py | 155 +++ backend/app/config.py | 52 + backend/app/database.py | 79 ++ backend/app/dnsmap.py | 55 + backend/app/engine.py | 260 ++++ backend/app/main.py | 89 ++ backend/app/models.py | 89 ++ backend/app/ros_poller.py | 150 ++ backend/app/routers/__init__.py | 0 backend/app/routers/admin.py | 187 +++ backend/app/routers/auth.py | 61 + backend/app/routers/stats.py | 124 ++ backend/app/security.py | 57 + backend/app/stats.py | 218 +++ backend/app/timeutil.py | 44 + backend/requirements.txt | 13 + backend/tests/conftest.py | 18 + backend/tests/packets.py | 88 ++ backend/tests/test_api.py | 66 + backend/tests/test_engine.py | 92 ++ backend/tests/test_parsers.py | 72 + docker-compose.yml | 39 + docs/RouterOS配置.md | 71 + docs/images/flow-light.png | Bin 0 -> 345419 bytes docs/images/host-light.png | Bin 0 -> 113373 bytes docs/images/overview-dark.png | Bin 0 -> 137411 bytes docs/images/overview-light.png | Bin 0 -> 138349 bytes frontend/index.html | 16 + frontend/package-lock.json | 1847 +++++++++++++++++++++++++ frontend/package.json | 26 + frontend/public/favicon.svg | 1 + frontend/scripts/check-i18n.mjs | 14 + frontend/src/App.vue | 79 ++ frontend/src/api.js | 37 + frontend/src/charts.js | 97 ++ frontend/src/components/BarList.vue | 49 + frontend/src/components/Chart.vue | 46 + frontend/src/components/Mark.vue | 13 + frontend/src/components/RangeTabs.vue | 13 + frontend/src/components/Spectrum.vue | 50 + frontend/src/components/Stat.vue | 29 + frontend/src/format.js | 59 + frontend/src/i18n/en.js | 58 + frontend/src/i18n/index.js | 19 + frontend/src/i18n/zh.js | 58 + frontend/src/main.js | 13 + frontend/src/poll.js | 37 + frontend/src/router.js | 23 + frontend/src/state.js | 28 + frontend/src/style.css | 188 +++ frontend/src/views/AppDetail.vue | 70 + frontend/src/views/Apps.vue | 95 ++ frontend/src/views/Flow.vue | 75 + frontend/src/views/HostDetail.vue | 134 ++ frontend/src/views/Hosts.vue | 91 ++ frontend/src/views/Login.vue | 77 ++ frontend/src/views/Overview.vue | 167 +++ frontend/src/views/Rules.vue | 155 +++ frontend/src/views/Settings.vue | 170 +++ frontend/vite.config.js | 11 + scripts/simulate.py | 76 + 77 files changed, 7086 insertions(+) create mode 100644 .dockerignore create mode 100644 .env.example create mode 100644 .gitattributes create mode 100644 .github/workflows/docker-publish.yml create mode 100644 .github/workflows/release.yml create mode 100644 .gitignore create mode 100644 CHANGELOG.md create mode 100644 DOCKERHUB.md create mode 100644 Dockerfile create mode 100644 LICENSE create mode 100644 README.md create mode 100644 backend/app/__init__.py create mode 100644 backend/app/classify/__init__.py create mode 100644 backend/app/classify/apps.yaml create mode 100644 backend/app/collector/__init__.py create mode 100644 backend/app/collector/ipfix.py create mode 100644 backend/app/collector/tzsp.py create mode 100644 backend/app/config.py create mode 100644 backend/app/database.py create mode 100644 backend/app/dnsmap.py create mode 100644 backend/app/engine.py create mode 100644 backend/app/main.py create mode 100644 backend/app/models.py create mode 100644 backend/app/ros_poller.py create mode 100644 backend/app/routers/__init__.py create mode 100644 backend/app/routers/admin.py create mode 100644 backend/app/routers/auth.py create mode 100644 backend/app/routers/stats.py create mode 100644 backend/app/security.py create mode 100644 backend/app/stats.py create mode 100644 backend/app/timeutil.py create mode 100644 backend/requirements.txt create mode 100644 backend/tests/conftest.py create mode 100644 backend/tests/packets.py create mode 100644 backend/tests/test_api.py create mode 100644 backend/tests/test_engine.py create mode 100644 backend/tests/test_parsers.py create mode 100644 docker-compose.yml create mode 100644 docs/RouterOS配置.md create mode 100644 docs/images/flow-light.png create mode 100644 docs/images/host-light.png create mode 100644 docs/images/overview-dark.png create mode 100644 docs/images/overview-light.png create mode 100644 frontend/index.html create mode 100644 frontend/package-lock.json create mode 100644 frontend/package.json create mode 100644 frontend/public/favicon.svg create mode 100644 frontend/scripts/check-i18n.mjs create mode 100644 frontend/src/App.vue create mode 100644 frontend/src/api.js create mode 100644 frontend/src/charts.js create mode 100644 frontend/src/components/BarList.vue create mode 100644 frontend/src/components/Chart.vue create mode 100644 frontend/src/components/Mark.vue create mode 100644 frontend/src/components/RangeTabs.vue create mode 100644 frontend/src/components/Spectrum.vue create mode 100644 frontend/src/components/Stat.vue create mode 100644 frontend/src/format.js create mode 100644 frontend/src/i18n/en.js create mode 100644 frontend/src/i18n/index.js create mode 100644 frontend/src/i18n/zh.js create mode 100644 frontend/src/main.js create mode 100644 frontend/src/poll.js create mode 100644 frontend/src/router.js create mode 100644 frontend/src/state.js create mode 100644 frontend/src/style.css create mode 100644 frontend/src/views/AppDetail.vue create mode 100644 frontend/src/views/Apps.vue create mode 100644 frontend/src/views/Flow.vue create mode 100644 frontend/src/views/HostDetail.vue create mode 100644 frontend/src/views/Hosts.vue create mode 100644 frontend/src/views/Login.vue create mode 100644 frontend/src/views/Overview.vue create mode 100644 frontend/src/views/Rules.vue create mode 100644 frontend/src/views/Settings.vue create mode 100644 frontend/vite.config.js create mode 100644 scripts/simulate.py diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..9d11ef0 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,14 @@ +.git +.github +**/node_modules +**/.venv +**/__pycache__ +**/.pytest_cache +frontend/dist +data +mysql +.env +*.md +docs +scripts +backend/tests diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..e3bf924 --- /dev/null +++ b/.env.example @@ -0,0 +1,30 @@ +# ---------- 数据库(docker-compose 自带的 MySQL) ---------- +MYSQL_PASSWORD=change-me +MYSQL_ROOT_PASSWORD=change-me-too +# 使用外部 MySQL 时,在 docker-compose.yml 里改 DATABASE_URL: +# DATABASE_URL=mysql+pymysql://user:pass@192.168.1.10:3306/rosdpi?charset=utf8mb4 + +# ---------- 基本 ---------- +TZ=Asia/Shanghai +# 首次启动的管理员密码(用户名 admin);留空则在登录页设置 +ADMIN_PASSWORD= +# LAN 网段(逗号分隔),也可以在界面里改。双 NAT(WAN 也是私网地址)时务必只填内网实际网段 +LAN_CIDRS=192.168.88.0/24 + +# ---------- RouterOS 只读 API(可选:主机名、WAN 速率、自动发现 IPv6 前缀) ---------- +# ROS_URL=https://192.168.88.1 +# ROS_USER=rosdpi +# ROS_PASSWORD= +# ROS_VERIFY_TLS=false +# WAN_INTERFACE=pppoe-out1 + +# ---------- 端口(与 docker-compose.yml 的端口映射保持一致) ---------- +# HTTP_PORT=8080 +# IPFIX_PORT=2055 +# TZSP_PORT=37008 + +# ---------- 数据保留天数 ---------- +# RETENTION_MINUTE_DAYS=2 +# RETENTION_HOUR_DAYS=45 +# RETENTION_DAY_DAYS=730 +# RETENTION_DOMAIN_DAYS=31 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..d0d6371 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +* text=auto eol=lf +*.png binary diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml new file mode 100644 index 0000000..40df172 --- /dev/null +++ b/.github/workflows/docker-publish.yml @@ -0,0 +1,117 @@ +name: Test, build and publish + +on: + push: + branches: [ main ] + tags: [ 'v*' ] + pull_request: + workflow_dispatch: + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.12' + - name: Backend tests + working-directory: backend + run: | + pip install -r requirements.txt pytest + python -m pytest -q + - uses: actions/setup-node@v4 + with: + node-version: '20' + - name: Frontend build (含 i18n 检查) + working-directory: frontend + run: | + npm ci || npm install + npm run build + + build-and-push: + needs: test + if: github.event_name != 'pull_request' + runs-on: ubuntu-latest + # 推送到 GHCR 需要 packages:write + permissions: + contents: read + packages: write + env: + HAS_DOCKERHUB: ${{ secrets.DOCKERHUB_TOKEN != '' }} + steps: + - uses: actions/checkout@v4 + - uses: docker/setup-qemu-action@v3 + - uses: docker/setup-buildx-action@v3 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + # 没配置 DOCKERHUB_* secrets 时只推 GHCR + - name: Login to Docker Hub + if: env.HAS_DOCKERHUB == 'true' + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Image names + id: images + run: | + { + echo 'list<> "$GITHUB_OUTPUT" + + - name: Image tags + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ steps.images.outputs.list }} + tags: | + type=raw,value=latest,enable={{is_default_branch}} + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + + - name: Build and push + uses: docker/build-push-action@v6 + with: + context: . + push: true + platforms: linux/amd64,linux/arm64 + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=gha + cache-to: type=gha,mode=max + + # 把 DOCKERHUB.md 同步到 Docker Hub 的 Overview。独立 job:失败不影响镜像发布。 + # DOCKERHUB_TOKEN 需要 Read, Write, Delete 权限,Read & Write 只能推镜像、改不了说明。 + dockerhub-overview: + needs: build-and-push + if: github.ref == 'refs/heads/main' + runs-on: ubuntu-latest + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + DOCKERHUB_REPO: suyijun8182/ros-dpi + DOCKERHUB_SHORT: "RouterOS per-device traffic & app (DPI) statistics via IPFIX + DNS. RouterOS 终端流量与应用统计。" + steps: + - uses: actions/checkout@v4 + - name: Sync Docker Hub overview (DOCKERHUB.md) + if: env.DOCKERHUB_TOKEN != '' + run: | + set -euo pipefail + JWT=$(curl -s -H "Content-Type: application/json" \ + -d "$(jq -n --arg u "$DOCKERHUB_USERNAME" --arg p "$DOCKERHUB_TOKEN" '{username:$u,password:$p}')" \ + https://hub.docker.com/v2/users/login/ | jq -r .token) + [ -n "$JWT" ] && [ "$JWT" != "null" ] || { echo "Docker Hub 登录失败:检查 DOCKERHUB_USERNAME / DOCKERHUB_TOKEN"; exit 1; } + BODY=$(jq -n --arg full "$(cat DOCKERHUB.md)" --arg short "$DOCKERHUB_SHORT" '{full_description:$full, description:$short}') + CODE=$(curl -s -o /tmp/dh.json -w '%{http_code}' -X PATCH -H "Authorization: JWT $JWT" \ + -H "Content-Type: application/json" -d "$BODY" "https://hub.docker.com/v2/repositories/$DOCKERHUB_REPO/") + [ "$CODE" = "200" ] && echo "Overview 已同步" || { echo "同步失败(HTTP $CODE)"; cat /tmp/dh.json; exit 1; } diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..bc49bfa --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,34 @@ +name: GitHub Release + +# 推送 v* tag 时创建 GitHub Release,正文取自 CHANGELOG.md 对应版本段落。 +on: + push: + tags: [ 'v*' ] + +permissions: + contents: write + +jobs: + release: + runs-on: ubuntu-latest + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + steps: + - uses: actions/checkout@v4 + - name: Create release + run: | + set -euo pipefail + TAG="${GITHUB_REF_NAME}"; VER="${TAG#v}" + NOTES=$(awk -v v="## [$VER]" 'index($0,v)==1{f=1;next} /^## \[/{if(f)exit} f' CHANGELOG.md) + [ -n "$NOTES" ] || NOTES="详见提交记录。" + { + echo '### 升级' + echo + echo '```bash' + echo 'docker compose pull && docker compose up -d' + echo '```' + echo + echo "$NOTES" + } > notes.md + gh release view "$TAG" >/dev/null 2>&1 && { echo "已存在 $TAG"; exit 0; } + gh release create "$TAG" --title "$TAG" --notes-file notes.md --verify-tag diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..63db043 --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +.env +data/ +mysql/ +node_modules/ +frontend/dist/ +__pycache__/ +*.pyc +.venv/ +.pytest_cache/ +*.db +*.db-wal +*.db-shm +项目说明.txt diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..d6993b6 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,12 @@ +# Changelog + +## [0.1.0] - 2026-10-21 + +首个版本。 + +- IPFIX / NetFlow v9 流量采集,TZSP DNS 嗅探识别应用,可选 RouterOS 只读 REST 轮询。 +- 内置 100+ 应用、20+ 分类的识别规则库;支持按域名 / IP 段 / 端口自定义规则,“未识别域名 Top”一键归类。 +- 按 分钟 / 小时 / 天 汇总写入 MySQL(开发可用 SQLite),保留天数可配置。 +- 页面:全网概览、主机监控(含详情)、应用统计(含详情)、流量流向(桑基图)、识别规则、系统设置(含 RouterOS 接入向导)。 +- 中英双语,深浅色主题,适配手机。 +- Docker 镜像(amd64 / arm64)发布到 GHCR(配置了 Docker Hub 密钥时同时发布到 Docker Hub)。 diff --git a/DOCKERHUB.md b/DOCKERHUB.md new file mode 100644 index 0000000..d396d67 --- /dev/null +++ b/DOCKERHUB.md @@ -0,0 +1,46 @@ +# ROS-DPI + +RouterOS 终端流量与应用统计面板。按 今日 / 本周 / 本月 统计每台终端的流量和应用使用情况,类似 Panabit / 碧海威。 + +Per-device traffic and per-application (DPI-style) statistics for MikroTik RouterOS, built on IPFIX + DNS sniffing. + +Source & docs: https://github.com/suyijun8182/ros-dpi + +## What's new + +- **0.1.0**: first release. Overview, hosts, applications, flow Sankey, custom rules, setup guide. zh/en, light/dark. + +## Features + +- IPFIX / NetFlow v9 collector (udp/2055), TZSP DNS sniffer (udp/37008), optional read-only RouterOS REST polling +- 100+ built-in apps in 20+ categories; custom domain / CIDR / port rules +- Per-minute / hour / day aggregation in MySQL + +## Quick start + +```bash +curl -O https://raw.githubusercontent.com/suyijun8182/ros-dpi/main/docker-compose.yml +curl -o .env https://raw.githubusercontent.com/suyijun8182/ros-dpi/main/.env.example +# edit .env (MySQL passwords, LAN_CIDRS) +docker compose up -d +``` + +Open `http://:8080`. RouterOS commands are shown in **Settings → Setup guide**. + +## Ports + +| Port | Use | +|---|---| +| 8080/tcp | Web UI | +| 2055/udp | IPFIX / NetFlow v9 | +| 37008/udp | TZSP (DNS mirror) | + +## Environment + +| Variable | Default | Description | +|---|---|---| +| `DATABASE_URL` | set in compose | `mysql+pymysql://user:pass@host:3306/rosdpi?charset=utf8mb4` | +| `LAN_CIDRS` | private ranges | LAN ranges, comma separated | +| `ADMIN_PASSWORD` | empty | initial password for `admin` | +| `ROS_URL` / `ROS_USER` / `ROS_PASSWORD` | empty | RouterOS REST + read-only user | +| `TZ` | `Asia/Shanghai` | statistics time zone (weeks start Monday) | diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2a9e118 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +# ---------- 阶段 1:构建前端 ---------- +FROM node:20-alpine AS frontend +WORKDIR /fe +COPY frontend/package*.json ./ +RUN npm ci || npm install +COPY frontend/ ./ +RUN npm run build + +# ---------- 阶段 2:后端运行时 ---------- +FROM python:3.12-slim +ENV PYTHONUNBUFFERED=1 PIP_NO_CACHE_DIR=1 TZ=Asia/Shanghai +WORKDIR /app +COPY backend/requirements.txt ./ +RUN pip install -r requirements.txt +COPY backend/app ./app +COPY --from=frontend /fe/dist ./frontend_dist +RUN mkdir -p /app/data +VOLUME ["/app/data"] +# Web / IPFIX / TZSP-DNS +EXPOSE 8080/tcp 2055/udp 37008/udp +HEALTHCHECK --interval=30s --timeout=5s --start-period=30s CMD python -c "import urllib.request,os;urllib.request.urlopen(f'http://127.0.0.1:{os.environ.get(\"HTTP_PORT\",\"8080\")}/api/health',timeout=4)" +CMD ["sh", "-c", "exec uvicorn app.main:app --host 0.0.0.0 --port ${HTTP_PORT:-8080} --no-access-log"] diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..12745d9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Su Yijun + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..3e834e4 --- /dev/null +++ b/README.md @@ -0,0 +1,129 @@ +# ROS-DPI + +**RouterOS 终端流量与应用统计面板**:像 Panabit / 碧海威那样,按 今日 / 本周 / 本月 统计 RouterOS 下每台终端用了多少流量、用在了哪些应用上。 + +[中文](#中文) · [English](#english) + +![全网概览](docs/images/overview-light.png) + +--- + +## 中文 + +### 能做什么 + +- **全网概览**:今日 / 本周 / 本月流量,此刻的上下行速率,流量构成(按应用分类),Top 应用与 Top 终端,24 小时与 30 天趋势。 +- **主机监控**:所有终端的 IP、MAC、主机名、在线状态、当前速率、今日 / 本周 / 本月流量,可以给设备起备注名;详情页可看该终端的应用排行、分类占比和访问过的域名。 +- **应用统计**:100 多个内置应用(抖音、B 站、微信、Steam、Apple 更新、ChatGPT……)分 20 多个类别,可以查看每个应用被哪些终端使用。 +- **流量流向**:桑基图展示 终端 → 应用分类 → 应用 的流向。 +- **识别规则**:按域名后缀、IP 段、端口自定义识别规则;列出“未识别域名 Top”,一键归类。 +- 中英双语,深浅色主题,手机可用。 + +![流量流向](docs/images/flow-light.png) + +### 工作原理 + +RouterOS 本身没有 DPI,ROS-DPI 用两路数据拼出应用级统计: + +``` +RouterOS ──IPFIX udp/2055 ──▶ 流量采集:每条连接的终端、远端 IP、端口、字节数 +RouterOS ──TZSP udp/37008──▶ DNS 嗅探:远端 IP 是哪个域名解析出来的 +RouterOS ◀─REST 只读(可选)── 主机名、IP↔MAC、WAN 口速率、LAN 前缀 + ↓ + 域名 → 应用规则库 → 按 分钟 / 小时 / 天 汇总写入 MySQL +``` + +- 流量来自 `/ip traffic-flow`(IPFIX),统计的是真实字节数。 +- 应用识别靠 DNS:终端访问 `v26.douyinvod.com` 时,路由器把 DNS 应答镜像一份过来,之后发往该 IP 的流量就归到“抖音”。查不到域名时,依次按 IP 段、端口兜底(HTTPS / QUIC 等)。 +- 终端用 MAC 区分(来自 ROS 的 ARP / DHCP,或流记录中的源 MAC),IP 变化不影响统计。 + +**已知局限**:终端使用 DoH / DoT 加密 DNS,或者在路由器之外解析 DNS 时,这部分流量只能识别为 HTTPS / QUIC。可以在终端或路由器上禁用加密 DNS 来提高识别率。 + +### 部署 + +```bash +mkdir ros-dpi && cd ros-dpi +curl -O https://raw.githubusercontent.com/suyijun8182/ros-dpi/main/docker-compose.yml +curl -o .env https://raw.githubusercontent.com/suyijun8182/ros-dpi/main/.env.example +# 编辑 .env:修改 MYSQL_PASSWORD / MYSQL_ROOT_PASSWORD,填写 LAN_CIDRS +docker compose up -d +``` + +打开 `http://<主机IP>:8080`,第一次访问时设置管理员密码。 + +镜像:`ghcr.io/suyijun8182/ros-dpi`(amd64 / arm64)。已有 MySQL 时,删掉 compose 里的 `mysql` 服务,把 `DATABASE_URL` 指向你的数据库即可。 + +### RouterOS 配置 + +把 `192.168.88.10` 换成运行容器的主机 IP(**系统设置 → 接入向导**里可以直接复制填好 IP 的命令): + +```routeros +# 1. 流量采集(IPFIX) +/ip traffic-flow set enabled=yes interfaces=all active-flow-timeout=1m inactive-flow-timeout=15s +/ip traffic-flow target add dst-address=192.168.88.10 port=2055 version=ipfix + +# 2. DNS 嗅探(应用识别) +/ip firewall mangle add chain=output protocol=udp src-port=53 action=sniff-tzsp sniff-target=192.168.88.10 sniff-target-port=37008 comment=ROSDPI-DNS +/ip firewall mangle add chain=forward protocol=udp src-port=53 action=sniff-tzsp sniff-target=192.168.88.10 sniff-target-port=37008 comment=ROSDPI-DNS + +# 3. 只读 API 账号(可选:主机名、WAN 速率) +/user group add name=rosdpi policy=read,rest-api,api,!write,!policy,!sensitive +/user add name=rosdpi group=rosdpi password=<强密码> address=192.168.88.10 +``` + +更多说明(FastTrack、双 NAT、IPv6、排错)见 [docs/RouterOS配置.md](docs/RouterOS配置.md)。 + +### 环境变量 + +| 变量 | 默认值 | 说明 | +|---|---|---| +| `DATABASE_URL` | compose 中已设置 | `mysql+pymysql://user:pass@host:3306/rosdpi?charset=utf8mb4` | +| `LAN_CIDRS` | 私网三段 + `fd00::/8` | 内网网段,逗号分隔,界面里也能改 | +| `ADMIN_PASSWORD` | 空 | 首次启动创建 `admin` 用的密码;留空则在登录页设置 | +| `ROS_URL` / `ROS_USER` / `ROS_PASSWORD` | 空 | RouterOS REST 地址与只读账号,如 `https://192.168.88.1` | +| `ROS_VERIFY_TLS` | `false` | 是否校验 ROS 证书 | +| `WAN_INTERFACE` | 自动 | WAN 接口名,默认按默认路由识别 | +| `TZ` | `Asia/Shanghai` | 统计用时区,每周从周一开始 | +| `HTTP_PORT` / `IPFIX_PORT` / `TZSP_PORT` | 8080 / 2055 / 37008 | 端口 | +| `RETENTION_*_DAYS` | 2 / 45 / 730 / 31 | 分钟 / 小时 / 每日 / 域名明细的保留天数 | +| `SECRET_KEY` | 自动生成 | 登录令牌签名密钥 | + +### 开发 + +```bash +# 后端 +cd backend && python -m venv .venv && .venv/bin/pip install -r requirements.txt pytest +DATABASE_URL=sqlite:///./dev.db .venv/bin/uvicorn app.main:app --port 8080 +.venv/bin/python -m pytest + +# 前端 +cd frontend && npm install && npm run dev # http://localhost:5173,/api 代理到 8080 + +# 灌入模拟数据 +backend/.venv/bin/python scripts/simulate.py --minutes 5 +``` + +应用规则库在 [backend/app/classify/apps.yaml](backend/app/classify/apps.yaml),欢迎 PR 补充。 + +--- + +## English + +**ROS-DPI** shows per-device traffic and per-application usage (today / this week / this month) for networks behind a MikroTik RouterOS router, in the spirit of Panabit-style DPI dashboards. + +- **Overview**: totals, live rate, traffic mix by category, top apps and hosts, trends. +- **Hosts**: every device with IP, MAC, hostname, online state, live rate and daily / weekly / monthly totals; per-host app breakdown and visited domains. +- **Applications**: 100+ built-in apps in 20+ categories. +- **Flows**: a Sankey diagram from hosts through categories to apps. +- **Rules**: custom domain / CIDR / port rules, and a list of top unidentified domains to classify. +- Chinese and English UI, light and dark themes, works on phones. + +**How it works.** RouterOS exports IPFIX (`/ip traffic-flow`) for byte counts, and mirrors DNS answers via `sniff-tzsp` so each remote IP can be mapped back to the domain the client looked up. A rule library maps domains to apps. An optional read-only REST user provides hostnames, IP-to-MAC, WAN rate and LAN prefixes. Data is aggregated per minute, hour and day into MySQL. + +**Limitations.** Clients using DoH/DoT (or resolving DNS elsewhere) show up as generic HTTPS/QUIC. + +**Deploy.** Copy `docker-compose.yml` and `.env.example` (as `.env`), set the MySQL passwords and `LAN_CIDRS`, run `docker compose up -d`, then open `http://:8080`. RouterOS commands are listed above and in **Settings → Setup guide** inside the app. + +## License + +[MIT](LICENSE) diff --git a/backend/app/__init__.py b/backend/app/__init__.py new file mode 100644 index 0000000..3dc1f76 --- /dev/null +++ b/backend/app/__init__.py @@ -0,0 +1 @@ +__version__ = "0.1.0" diff --git a/backend/app/classify/__init__.py b/backend/app/classify/__init__.py new file mode 100644 index 0000000..d8ff9e2 --- /dev/null +++ b/backend/app/classify/__init__.py @@ -0,0 +1,123 @@ +"""把一条流(远端 IP + 端口 + 域名)识别为应用。 + +优先级:自定义规则 > 域名后缀(先查询名再 CNAME,最长后缀优先)> CIDR > 端口 > other。 +""" +import ipaddress +import os +from dataclasses import dataclass + +import yaml + +RULES_FILE = os.path.join(os.path.dirname(__file__), "apps.yaml") +UNKNOWN_APP = "other" +GENERIC_APPS = {"https", "quic", "http", UNKNOWN_APP} # 这些应用下的域名算"未识别" + + +@dataclass +class App: + id: str + name: str + name_en: str + category: str + custom: bool = False + + +def _parse_port(spec: str) -> tuple[int, int, int]: + proto, rng = spec.lower().split("/") + pnum = {"tcp": 6, "udp": 17}[proto] + lo, _, hi = rng.partition("-") + return pnum, int(lo), int(hi or lo) + + +class Classifier: + def __init__(self, rules_file: str = RULES_FILE): + with open(rules_file, encoding="utf-8") as f: + data = yaml.safe_load(f) + self.categories: dict[str, dict] = data["categories"] + self._base_apps = data["apps"] + self.load_custom([]) + + def load_custom(self, custom_rules: list): + """custom_rules: CustomRule 行(或同字段的对象)。每次规则变更后整体重建。""" + self.apps: dict[str, App] = {} + self.domains: dict[str, str] = {} + self.nets: list[tuple[ipaddress._BaseNetwork, str]] = [] + self.ports: list[tuple[int, int, int, str]] = [] + for a in self._base_apps: + self.apps[a["id"]] = App(a["id"], a["name"], a.get("name_en", a["name"]), a["category"]) + self._add(a["id"], a.get("domains", []), a.get("cidrs", []), a.get("ports", []), first_wins=True) + self.apps[UNKNOWN_APP] = App(UNKNOWN_APP, "其他", "Other", "unknown") + + custom_nets, custom_ports = [], [] + for r in custom_rules: + if r.app_id not in self.apps: + self.apps[r.app_id] = App(r.app_id, r.app_name or r.app_id, r.app_name or r.app_id, + r.category or "web", custom=True) + try: + if r.kind == "domain": + self.domains[r.pattern.lower().strip(".")] = r.app_id + elif r.kind == "cidr": + custom_nets.append((ipaddress.ip_network(r.pattern, strict=False), r.app_id)) + elif r.kind == "port": + p, lo, hi = _parse_port(r.pattern) + custom_ports.append((p, lo, hi, r.app_id)) + except (ValueError, KeyError): + continue + # 自定义的放前面,优先匹配 + self.nets = custom_nets + self.nets + self.ports = custom_ports + self.ports + self._cache: dict[tuple, str] = {} + + def _add(self, app_id, domains, cidrs, ports, first_wins): + for d in domains: + d = d.lower().strip(".") + if first_wins and d in self.domains: + continue + self.domains[d] = app_id + for c in cidrs: + self.nets.append((ipaddress.ip_network(c, strict=False), app_id)) + for p in ports: + proto, lo, hi = _parse_port(p) + self.ports.append((proto, lo, hi, app_id)) + + def match_domain(self, name: str | None) -> str | None: + if not name: + return None + parts = name.lower().strip(".").split(".") + for i in range(len(parts) - 1): + hit = self.domains.get(".".join(parts[i:])) + if hit: + return hit + return None + + def classify(self, remote_ip: str, proto: int, port: int, qname: str | None, cname: str | None) -> str: + key = (remote_ip, proto, port, qname, cname) + hit = self._cache.get(key) + if hit: + return hit + app = self.match_domain(qname) or self.match_domain(cname) + if app is None: + try: + addr = ipaddress.ip_address(remote_ip) + for net, aid in self.nets: + if addr.version == net.version and addr in net: + app = aid + break + except ValueError: + pass + if app is None: + for p, lo, hi, aid in self.ports: + if p == proto and lo <= port <= hi: + app = aid + break + app = app or UNKNOWN_APP + if len(self._cache) > 200_000: + self._cache.clear() + self._cache[key] = app + return app + + def app_info(self, app_id: str) -> App: + return self.apps.get(app_id) or App(app_id, app_id, app_id, "unknown") + + def category_info(self, cat: str) -> dict: + return self.categories.get(cat) or {"name": cat, "name_en": cat} diff --git a/backend/app/classify/apps.yaml b/backend/app/classify/apps.yaml new file mode 100644 index 0000000..e870c41 --- /dev/null +++ b/backend/app/classify/apps.yaml @@ -0,0 +1,254 @@ +# 应用识别规则库 +# domains: 后缀匹配(douyin.com 同时匹配 www.douyin.com)。先匹配终端查询的域名,再匹配 CNAME。 +# cidrs: 目的 IP 段(没有 DNS 记录时使用) +# ports: "tcp/443"、"udp/3478-3481" 形式,最后兜底 +# 欢迎通过 PR 补充;用户也可以在 设置 → 识别规则 里添加自定义规则(优先级最高)。 + +categories: + video: {name: 视频, name_en: Video} + short_video: {name: 短视频, name_en: Short video} + live: {name: 直播, name_en: Live} + music: {name: 音乐音频, name_en: Audio} + social: {name: 社交社区, name_en: Social} + im: {name: 即时通讯, name_en: Messaging} + game: {name: 游戏, name_en: Gaming} + shopping: {name: 购物, name_en: Shopping} + news: {name: 资讯阅读, name_en: News} + search: {name: 搜索门户, name_en: Search & portal} + cloud: {name: 网盘存储, name_en: Cloud storage} + download: {name: 下载P2P, name_en: Download & P2P} + update: {name: 系统更新, name_en: Software update} + ai: {name: AI 工具, name_en: AI} + work: {name: 办公开发, name_en: Work & dev} + finance: {name: 金融支付, name_en: Finance} + life: {name: 生活出行, name_en: Lifestyle} + ads: {name: 广告统计, name_en: Ads & analytics} + iot: {name: 智能家居, name_en: Smart home} + network: {name: 网络协议, name_en: Network protocol} + web: {name: 通用网页, name_en: Web} + unknown: {name: 未识别, name_en: Unknown} + +apps: + # ---------- 短视频 / 视频 ---------- + - {id: douyin, name: 抖音, name_en: Douyin, category: short_video, + domains: [douyin.com, douyinpic.com, douyinvod.com, douyincdn.com, douyinstatic.com, iesdouyin.com, amemv.com, snssdk.com, bytecdn.cn, byteimg.com, pstatp.com, zjcdn.com, bytedance.com, bytegoofy.com, ibytedtos.com, volces.com]} + - {id: kuaishou, name: 快手, name_en: Kuaishou, category: short_video, + domains: [kuaishou.com, gifshow.com, ksapisrv.com, kwaicdn.com, kwimgs.com, yximgs.com, kspkg.com, kuaishouzt.com, ndcimgs.com]} + - {id: tiktok, name: TikTok, name_en: TikTok, category: short_video, + domains: [tiktok.com, tiktokv.com, tiktokcdn.com, tiktokcdn-us.com, musical.ly, byteoversea.com, ibyteimg.com, ttwstatic.com]} + - {id: bilibili, name: 哔哩哔哩, name_en: Bilibili, category: video, + domains: [bilibili.com, bilivideo.com, bilivideo.cn, hdslb.com, biliapi.net, biliapi.com, bilicdn1.com, bilicdn2.com, b23.tv, acgvideo.com]} + - {id: iqiyi, name: 爱奇艺, name_en: iQIYI, category: video, + domains: [iqiyi.com, iqiyipic.com, qiyi.com, qy.net, 71.am, iq.com, ppstream.com]} + - {id: tencent_video, name: 腾讯视频, name_en: Tencent Video, category: video, + domains: [v.qq.com, video.qq.com, vqq.com, gtimg.com, ugcvod.qq.com, apd-vlive.apdcdn.tc.qq.com, vod-tencent.com, tencentvideo.com]} + - {id: youku, name: 优酷, name_en: Youku, category: video, + domains: [youku.com, ykimg.com, tudou.com, soku.com, cibntv.net, youku.tv]} + - {id: mgtv, name: 芒果TV, name_en: Mango TV, category: video, + domains: [mgtv.com, hitv.com, hunantv.com]} + - {id: xiaohongshu, name: 小红书, name_en: Xiaohongshu, category: social, + domains: [xiaohongshu.com, xhscdn.com, xhslink.com, xhscdn.net]} + - {id: youtube, name: YouTube, name_en: YouTube, category: video, + domains: [youtube.com, googlevideo.com, ytimg.com, youtu.be, youtube-nocookie.com, yt3.ggpht.com, youtubei.googleapis.com]} + - {id: netflix, name: Netflix, name_en: Netflix, category: video, + domains: [netflix.com, nflxvideo.net, nflximg.net, nflxext.com, nflxso.net, nflximg.com]} + - {id: disney, name: Disney+, name_en: Disney+, category: video, + domains: [disneyplus.com, disney-plus.net, dssott.com, bamgrid.com, disneystreaming.com]} + - {id: apple_tv, name: Apple TV+, name_en: Apple TV+, category: video, + domains: [tv.apple.com, hls.itunes.apple.com, play-edge.itunes.apple.com, np-edge.itunes.apple.com]} + - {id: twitch, name: Twitch, name_en: Twitch, category: live, + domains: [twitch.tv, ttvnw.net, jtvnw.net, twitchcdn.net]} + - {id: huya, name: 虎牙直播, name_en: Huya, category: live, + domains: [huya.com, msstatic.com, huyaimg.com, hy-cdn.com]} + - {id: douyu, name: 斗鱼直播, name_en: Douyu, category: live, + domains: [douyu.com, douyucdn.cn, douyucdn2.cn, douyuscdn.com]} + - {id: xigua, name: 西瓜视频, name_en: Xigua, category: video, + domains: [ixigua.com, ixiguavideo.com]} + + # ---------- 音乐音频 ---------- + - {id: netease_music, name: 网易云音乐, name_en: NetEase Music, category: music, + domains: [music.163.com, music.126.net, music.netease.com, iplay.163.com]} + - {id: qq_music, name: QQ音乐, name_en: QQ Music, category: music, + domains: [y.qq.com, music.qq.com, stream.qqmusic.qq.com, qqmusic.qq.com, ws.stream.qqmusic.qq.com]} + - {id: kugou, name: 酷狗/酷我, name_en: Kugou/Kuwo, category: music, + domains: [kugou.com, kgimg.com, kuwo.cn]} + - {id: ximalaya, name: 喜马拉雅, name_en: Ximalaya, category: music, + domains: [ximalaya.com, xmcdn.com]} + - {id: spotify, name: Spotify, name_en: Spotify, category: music, + domains: [spotify.com, scdn.co, spotifycdn.com, spotify.design, pscdn.co]} + - {id: apple_music, name: Apple Music, name_en: Apple Music, category: music, + domains: [music.apple.com, aod.itunes.apple.com, audio-ssl.itunes.apple.com, mvod.itunes.apple.com]} + + # ---------- 即时通讯 / 社交 ---------- + - {id: wechat, name: 微信, name_en: WeChat, category: im, + domains: [weixin.qq.com, wechat.com, servicewechat.com, weixinbridge.com, wx.qq.com, qpic.cn, qlogo.cn, wxs.qq.com, mmbiz.qpic.cn, tenpay.com, wxapp.tc.qq.com, finder.video.qq.com, channels.weixin.qq.com, szextshort.weixin.qq.com, szshort.weixin.qq.com, szminorshort.weixin.qq.com, extshort.weixin.qq.com, short.weixin.qq.com, dns.weixin.qq.com]} + - {id: qq, name: QQ, name_en: QQ, category: im, + domains: [qq.com, qzone.qq.com, im.qq.com, idqqimg.com, gtimg.cn, qqmail.com, tencent.com, myqcloud.com, qcloud.com, tencent-cloud.net, tencentcs.com]} + - {id: dingtalk, name: 钉钉, name_en: DingTalk, category: work, + domains: [dingtalk.com, dingtalkapps.com, alicdn-dingtalk.com, dingtalk.cn]} + - {id: feishu, name: 飞书, name_en: Lark/Feishu, category: work, + domains: [feishu.cn, larksuite.com, feishucdn.com, larkoffice.com, feishu.net]} + - {id: wework, name: 企业微信, name_en: WeCom, category: work, + domains: [work.weixin.qq.com, wework.qpic.cn, qyapi.weixin.qq.com]} + - {id: weibo, name: 微博, name_en: Weibo, category: social, + domains: [weibo.com, weibo.cn, sinaimg.cn, weibocdn.com, sina.com.cn, sina.cn]} + - {id: zhihu, name: 知乎, name_en: Zhihu, category: social, + domains: [zhihu.com, zhimg.com, zhihu.cn]} + - {id: douban, name: 豆瓣, name_en: Douban, category: social, + domains: [douban.com, doubanio.com]} + - {id: tieba, name: 百度贴吧, name_en: Tieba, category: social, + domains: [tieba.baidu.com, tiebapic.baidu.com]} + - {id: telegram, name: Telegram, name_en: Telegram, category: im, + domains: [telegram.org, t.me, telegram.me, tdesktop.com, telesco.pe, telegra.ph], + cidrs: [91.108.4.0/22, 91.108.8.0/22, 91.108.12.0/22, 91.108.16.0/22, 91.108.56.0/22, 149.154.160.0/20, 95.161.64.0/20, "2001:b28:f23d::/48", "2001:b28:f23f::/48", "2001:67c:4e8::/48"]} + - {id: whatsapp, name: WhatsApp, name_en: WhatsApp, category: im, + domains: [whatsapp.com, whatsapp.net, wa.me]} + - {id: discord, name: Discord, name_en: Discord, category: im, + domains: [discord.com, discord.gg, discordapp.com, discordapp.net, discord.media]} + - {id: facebook, name: Facebook/Instagram, name_en: Meta, category: social, + domains: [facebook.com, fbcdn.net, instagram.com, cdninstagram.com, messenger.com, fb.com, threads.net]} + - {id: twitter, name: X/Twitter, name_en: X/Twitter, category: social, + domains: [twitter.com, x.com, twimg.com, t.co]} + - {id: reddit, name: Reddit, name_en: Reddit, category: social, + domains: [reddit.com, redd.it, redditmedia.com, redditstatic.com]} + + # ---------- 游戏 ---------- + - {id: steam, name: Steam, name_en: Steam, category: game, + domains: [steampowered.com, steamcommunity.com, steamstatic.com, steamcontent.com, steamserver.net, steamgames.com, steamusercontent.com, valvesoftware.com, steamchina.com, akamai.steamstatic.com]} + - {id: epic, name: Epic Games, name_en: Epic Games, category: game, + domains: [epicgames.com, epicgames.dev, unrealengine.com, fortnite.com, epicgamescdn.com]} + - {id: tencent_games, name: 腾讯游戏, name_en: Tencent Games, category: game, + domains: [game.qq.com, gamesafe.qq.com, wegame.com, wegame.com.cn, gcloud.qq.com, pvp.qq.com, gp.qq.com, tgpa.qq.com, dlied1.qq.com, dlied5.qq.com, gamecenter.qq.com, tencentgames.com, levelinfinite.com]} + - {id: netease_games, name: 网易游戏, name_en: NetEase Games, category: game, + domains: [game.163.com, nie.netease.com, netease.gg, x19.update.netease.com, gdl.netease.com, update.netease.com]} + - {id: mihoyo, name: 米哈游, name_en: HoYoverse, category: game, + domains: [mihoyo.com, hoyoverse.com, yuanshen.com, genshinimpact.com, hoyolab.com, bhsr.com, starrails.com, mhyurl.cn]} + - {id: xbox, name: Xbox/Microsoft游戏, name_en: Xbox, category: game, + domains: [xbox.com, xboxlive.com, xboxservices.com, gamepass.com, assets1.xboxlive.com]} + - {id: playstation, name: PlayStation, name_en: PlayStation, category: game, + domains: [playstation.com, playstation.net, sonyentertainmentnetwork.com, np.dl.playstation.net, gs2.ww.prod.dl.playstation.net]} + - {id: nintendo, name: Nintendo, name_en: Nintendo, category: game, + domains: [nintendo.com, nintendo.net, nintendo.co.jp, nintendowifi.net]} + - {id: blizzard, name: 暴雪战网, name_en: Battle.net, category: game, + domains: [battle.net, blizzard.com, blizzard.cn, battlenet.com.cn, blzstatic.cn]} + - {id: riot, name: Riot Games, name_en: Riot Games, category: game, + domains: [riotgames.com, leagueoflegends.com, riotcdn.net, playvalorant.com]} + - {id: ea, name: EA, name_en: EA, category: game, + domains: [ea.com, origin.com, eaassets-a.akamaihd.net]} + + # ---------- 购物 / 生活 / 金融 ---------- + - {id: taobao, name: 淘宝/天猫, name_en: Taobao/Tmall, category: shopping, + domains: [taobao.com, tmall.com, alicdn.com, tbcdn.cn, taobaocdn.com, mmstat.com, tanx.com, alibaba.com, aliexpress.com, 1688.com, alipayobjects.com]} + - {id: jd, name: 京东, name_en: JD, category: shopping, + domains: [jd.com, 360buyimg.com, jd.hk, jdpay.com, jcloud.com, jdcloud.com, 3.cn]} + - {id: pinduoduo, name: 拼多多, name_en: Pinduoduo, category: shopping, + domains: [pinduoduo.com, yangkeduo.com, pddpic.com, pddugc.com, temu.com, kwcdn.com]} + - {id: meituan, name: 美团, name_en: Meituan, category: life, + domains: [meituan.com, meituan.net, dianping.com, dpfile.com, maoyan.com, sankuai.com]} + - {id: eleme, name: 饿了么, name_en: Ele.me, category: life, + domains: [ele.me, elemecdn.com, eleme.cn]} + - {id: didi, name: 滴滴出行, name_en: DiDi, category: life, + domains: [didiglobal.com, diditaxi.com.cn, didistatic.com, xiaojukeji.com]} + - {id: amap, name: 高德地图, name_en: Amap, category: life, + domains: [amap.com, autonavi.com, gaode.com]} + - {id: ctrip, name: 携程, name_en: Trip.com, category: life, + domains: [ctrip.com, trip.com, c-ctrip.com, ctripcorp.com, tripcdn.com]} + - {id: alipay, name: 支付宝, name_en: Alipay, category: finance, + domains: [alipay.com, alipay.cn, alipay-eco.com, antgroup.com, alipaydns.com, mybank.cn]} + - {id: amazon, name: Amazon, name_en: Amazon, category: shopping, + domains: [amazon.com, amazon.cn, media-amazon.com, ssl-images-amazon.com, amazon.co.jp]} + + # ---------- 搜索 / 门户 / 资讯 ---------- + - {id: baidu, name: 百度, name_en: Baidu, category: search, + domains: [baidu.com, bdstatic.com, bdimg.com, bcebos.com, bdydns.com, baidubce.com, baiduyun.com, shifen.com]} + - {id: google, name: Google, name_en: Google, category: search, + domains: [google.com, googleapis.com, gstatic.com, google.com.hk, googleusercontent.com, ggpht.com, gvt1.com, gvt2.com, googlesyndication.com, google-analytics.com, googletagmanager.com, recaptcha.net]} + - {id: bing, name: Bing, name_en: Bing, category: search, + domains: [bing.com, bing.net]} + - {id: netease, name: 网易, name_en: NetEase, category: news, + domains: [163.com, 126.net, 127.net, netease.com, ydstatic.com]} + - {id: toutiao, name: 今日头条, name_en: Toutiao, category: news, + domains: [toutiao.com, toutiaocdn.com, toutiaoimg.cn]} + - {id: wikipedia, name: Wikipedia, name_en: Wikipedia, category: news, + domains: [wikipedia.org, wikimedia.org, wiki.wikipedia.org]} + + # ---------- 网盘 / 下载 / 更新 ---------- + - {id: baidu_pan, name: 百度网盘, name_en: Baidu Netdisk, category: cloud, + domains: [pan.baidu.com, pcs.baidu.com, d.pcs.baidu.com, baidupcs.com, nd.baidu.com]} + - {id: aliyun_drive, name: 阿里云盘/夸克, name_en: Aliyun Drive/Quark, category: cloud, + domains: [aliyundrive.com, alipan.com, aliyundrive.net, quark.cn, quarkpan.com, uc.cn, ucweb.com]} + - {id: onedrive, name: OneDrive, name_en: OneDrive, category: cloud, + domains: [onedrive.com, onedrive.live.com, 1drv.com, 1drv.ms, sharepoint.com, storage.live.com]} + - {id: icloud, name: iCloud, name_en: iCloud, category: cloud, + domains: [icloud.com, icloud-content.com, icloud.com.cn, apple-cloudkit.com, cdn-apple.com]} + - {id: google_drive, name: Google Drive, name_en: Google Drive, category: cloud, + domains: [drive.google.com, docs.google.com, drive.usercontent.google.com]} + - {id: dropbox, name: Dropbox, name_en: Dropbox, category: cloud, + domains: [dropbox.com, dropboxapi.com, dropboxusercontent.com, db.tt]} + - {id: thunder, name: 迅雷, name_en: Xunlei, category: download, + domains: [xunlei.com, sandai.net, n0808.com, xlcdn.com, xluser.com], + ports: [tcp/6881-6889, udp/6881-6889]} + - {id: bittorrent, name: BT/P2P, name_en: BitTorrent, category: download, + domains: [tracker.opentrackr.org, bt.byr.cn, open.stealth.si]} + - {id: apple_update, name: Apple 更新/商店, name_en: Apple updates/App Store, category: update, + domains: [swcdn.apple.com, swdist.apple.com, updates.cdn-apple.com, mesu.apple.com, appldnld.apple.com, oscdn.apple.com, iosapps.itunes.apple.com, osxapps.itunes.apple.com, apps.apple.com, gdmf.apple.com]} + - {id: apple, name: Apple 服务, name_en: Apple services, category: update, + domains: [apple.com, mzstatic.com, itunes.apple.com, apple.com.cn, push.apple.com, aaplimg.com, apple-dns.net, apple.news]} + - {id: windows_update, name: Windows 更新, name_en: Windows Update, category: update, + domains: [windowsupdate.com, update.microsoft.com, delivery.mp.microsoft.com, dl.delivery.mp.microsoft.com, tlu.dl.delivery.mp.microsoft.com, download.windowsupdate.com, wustat.windows.com]} + - {id: microsoft, name: Microsoft 服务, name_en: Microsoft services, category: work, + domains: [microsoft.com, office.com, office.net, office365.com, live.com, msn.com, outlook.com, microsoftonline.com, msftconnecttest.com, windows.net, azureedge.net, msedge.net, skype.com, teams.microsoft.com, bing.com.cn]} + - {id: android_update, name: 安卓/手机厂商, name_en: Android vendor services, category: update, + domains: [xiaomi.com, xiaomi.net, mi.com, miui.com, mi-img.com, hicloud.com, huawei.com, dbankcdn.com, vivo.com.cn, vivoglobal.com, oppo.com, heytapmobi.com, coloros.com, heytapdownload.com, oneplus.com, honor.com, hihonor.com, meizu.com, flyme.cn]} + - {id: app_market, name: 应用商店下载, name_en: App store downloads, category: update, + domains: [play.googleapis.com, appstore.huawei.com, app.mi.com, apkpure.com, wandoujia.com, pp.cn, myapp.com, sj.qq.com]} + + # ---------- AI / 开发 / 办公 ---------- + - {id: chatgpt, name: ChatGPT, name_en: ChatGPT, category: ai, + domains: [openai.com, chatgpt.com, oaistatic.com, oaiusercontent.com]} + - {id: claude, name: Claude, name_en: Claude, category: ai, + domains: [claude.ai, anthropic.com, claude.com, claudeusercontent.com]} + - {id: gemini, name: Gemini, name_en: Gemini, category: ai, + domains: [gemini.google.com, generativelanguage.googleapis.com, aistudio.google.com]} + - {id: cn_ai, name: 国产大模型, name_en: Chinese AI, category: ai, + domains: [deepseek.com, kimi.moonshot.cn, moonshot.cn, kimi.com, doubao.com, yiyan.baidu.com, tongyi.aliyun.com, qianwen.com, chatglm.cn, zhipuai.cn, yuanbao.tencent.com, hunyuan.tencent.com, minimaxi.com, hailuoai.com]} + - {id: github, name: GitHub, name_en: GitHub, category: work, + domains: [github.com, githubusercontent.com, githubassets.com, github.io, ghcr.io, github.dev, copilot-proxy.githubusercontent.com]} + - {id: docker, name: Docker Hub, name_en: Docker Hub, category: work, + domains: [docker.com, docker.io, registry-1.docker.io, production.cloudflare.docker.com, dockerhub.com]} + - {id: dev_mirrors, name: 开发镜像源, name_en: Package mirrors, category: work, + domains: [pypi.org, pythonhosted.org, npmjs.org, npmjs.com, npmmirror.com, yarnpkg.com, crates.io, golang.org, go.dev, maven.org, mirrors.aliyun.com, mirrors.tuna.tsinghua.edu.cn, mirrors.ustc.edu.cn, debian.org, ubuntu.com, archlinux.org, alpinelinux.org, fedoraproject.org, centos.org]} + - {id: wps, name: WPS, name_en: WPS, category: work, + domains: [wps.cn, wps.com, kdocs.cn, kingsoft.com, ksord.com, wpscdn.cn]} + - {id: tencent_meeting, name: 腾讯会议, name_en: Tencent Meeting, category: work, + domains: [meeting.tencent.com, wemeet.qq.com, voovmeeting.com]} + - {id: zoom, name: Zoom, name_en: Zoom, category: work, + domains: [zoom.us, zoom.com, zoom.com.cn, zoomgov.com]} + - {id: cloudflare, name: Cloudflare, name_en: Cloudflare, category: web, + domains: [cloudflare.com, cloudflare-dns.com, cloudflareinsights.com, cloudflare.net, workers.dev, pages.dev]} + + # ---------- 广告统计 ---------- + - {id: ads, name: 广告与统计, name_en: Ads & analytics, category: ads, + domains: [doubleclick.net, googleadservices.com, adnxs.com, umeng.com, umengcloud.com, cnzz.com, growingio.com, talkingdata.com, gdt.qq.com, e.qq.com, pangolin-sdk-toutiao.com, pglstatp-toutiao.com, ads.tiktok.com, adkwai.com, app-measurement.com, crashlytics.com, sentry.io, bugly.qq.com, appsflyer.com, adjust.com, branch.io, mixpanel.com, segment.io, hotjar.com, miaozhen.com, admaster.com.cn, scorecardresearch.com]} + + # ---------- 智能家居 ---------- + - {id: mijia, name: 米家, name_en: Mi Home, category: iot, + domains: [io.mi.com, iot.mi.com, miot-spec.org, mijia.tech, xiaomiyoupin.com, mi-iot.com]} + - {id: tuya, name: 涂鸦智能, name_en: Tuya, category: iot, + domains: [tuyacn.com, tuyaus.com, tuyaeu.com, tuya.com, tuyacloud.com]} + - {id: homeassistant, name: Home Assistant, name_en: Home Assistant, category: iot, + domains: [home-assistant.io, nabucasa.com, ui.nabu.casa]} + - {id: ezviz, name: 萤石/摄像头, name_en: Ezviz/Cameras, category: iot, + domains: [ezvizlife.com, ys7.com, hik-connect.com, hikvision.com, imoulife.com, dahuatech.com]} + + # ---------- 网络协议(按端口兜底) ---------- + - {id: dns, name: DNS, name_en: DNS, category: network, ports: [udp/53, tcp/53, tcp/853, udp/853]} + - {id: ntp, name: NTP, name_en: NTP, category: network, ports: [udp/123]} + - {id: vpn, name: VPN 隧道, name_en: VPN, category: network, + ports: [udp/51820, udp/1194, tcp/1194, udp/500, udp/4500, tcp/1723, udp/1701]} + - {id: ssh, name: SSH/远程, name_en: SSH/remote, category: network, ports: [tcp/22, tcp/3389, udp/3389, tcp/5900]} + - {id: mail, name: 邮件, name_en: Mail, category: work, ports: [tcp/25, tcp/465, tcp/587, tcp/993, tcp/995, tcp/143, tcp/110]} + - {id: stun, name: 音视频通话(STUN/RTP), name_en: Real-time media, category: im, ports: [udp/3478-3481, udp/19302-19309]} + - {id: https, name: HTTPS 网页, name_en: HTTPS, category: web, ports: [tcp/443, tcp/8443]} + - {id: quic, name: QUIC 网页, name_en: QUIC, category: web, ports: [udp/443]} + - {id: http, name: HTTP 网页, name_en: HTTP, category: web, ports: [tcp/80, tcp/8080]} diff --git a/backend/app/collector/__init__.py b/backend/app/collector/__init__.py new file mode 100644 index 0000000..594fa35 --- /dev/null +++ b/backend/app/collector/__init__.py @@ -0,0 +1,45 @@ +"""UDP 监听:IPFIX/NetFlow(默认 2055)与 TZSP DNS 镜像(默认 37008)。""" +import asyncio +import socket + + +class _Proto(asyncio.DatagramProtocol): + def __init__(self, handler): + self.handler = handler + + def datagram_received(self, data, addr): + try: + self.handler(data, addr[0].removeprefix("::ffff:")) + except Exception as e: # noqa: BLE001 单个坏包不能影响监听 + print(f"[collector] 处理数据包出错 {addr[0]}: {e!r}") + + +def _udp_socket(port: int) -> socket.socket: + """优先建 IPv6 双栈 socket(显式关闭 IPV6_V6ONLY,Windows 默认是开的),不支持 IPv6 时退回 IPv4。""" + try: + s = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM) + s.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0) + s.bind(("::", port)) + except OSError: + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + s.bind(("0.0.0.0", port)) + s.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 4 * 1024 * 1024) + s.setblocking(False) + return s + + +async def start_listeners(engine, ipfix_port: int, tzsp_port: int): + loop = asyncio.get_running_loop() + transports = [] + for port, handler, name in ( + (ipfix_port, lambda d, a: engine.on_ipfix(d, a), "IPFIX/NetFlow"), + (tzsp_port, lambda d, a: engine.on_tzsp(d), "TZSP-DNS"), + ): + try: + sock = _udp_socket(port) + t, _ = await loop.create_datagram_endpoint(lambda h=handler: _Proto(h), sock=sock) + transports.append(t) + print(f"[collector] {name} 监听 udp/{sock.getsockname()[1]}", flush=True) + except OSError as e: + print(f"[collector] {name} 无法监听 udp/{port}: {e}", flush=True) + return transports diff --git a/backend/app/collector/ipfix.py b/backend/app/collector/ipfix.py new file mode 100644 index 0000000..1337825 --- /dev/null +++ b/backend/app/collector/ipfix.py @@ -0,0 +1,223 @@ +"""IPFIX (v10) 与 NetFlow v9 解码。 + +RouterOS 的 /ip traffic-flow 两种都支持,模板会周期性重发(默认 20 个包或 30 分钟), +收到模板之前的数据集无法解码,会被计数后丢弃。 +""" +import ipaddress +import struct +from dataclasses import dataclass + +# IANA IPFIX 信息元素编号(NetFlow v9 的字段类型编号在这个范围内一致) +F_OCTETS = 1 +F_PACKETS = 2 +F_PROTO = 4 +F_SRC_PORT = 7 +F_SRC_V4 = 8 +F_DST_PORT = 11 +F_DST_V4 = 12 +F_IN_IF = 10 +F_OUT_IF = 14 +F_SRC_V6 = 27 +F_DST_V6 = 28 +F_SRC_MAC = 56 +F_DST_MAC = 80 +F_POST_SRC_V4 = 225 +F_POST_DST_V4 = 226 +F_POST_SRC_PORT = 227 +F_POST_DST_PORT = 228 + +_NAMES = { + F_OCTETS: "bytes", + F_PACKETS: "packets", + F_PROTO: "proto", + F_SRC_PORT: "sport", + F_DST_PORT: "dport", + F_SRC_V4: "src", + F_DST_V4: "dst", + F_SRC_V6: "src", + F_DST_V6: "dst", + F_IN_IF: "in_if", + F_OUT_IF: "out_if", + F_SRC_MAC: "src_mac", + F_DST_MAC: "dst_mac", + F_POST_SRC_V4: "post_src", + F_POST_DST_V4: "post_dst", + F_POST_SRC_PORT: "post_sport", + F_POST_DST_PORT: "post_dport", +} +_IP_FIELDS = {F_SRC_V4, F_DST_V4, F_SRC_V6, F_DST_V6, F_POST_SRC_V4, F_POST_DST_V4} +_MAC_FIELDS = {F_SRC_MAC, F_DST_MAC} + + +@dataclass +class Field: + fid: int + length: int # 65535 = 变长 + enterprise: int = 0 + + +class DecodeError(Exception): + pass + + +def _fmt_mac(b: bytes) -> str: + return ":".join(f"{x:02X}" for x in b) + + +class FlowDecoder: + def __init__(self): + # (exporter, version, domain/source_id, template_id) -> [Field] + self.templates: dict[tuple, list[Field]] = {} + self.stats = {"packets": 0, "records": 0, "no_template": 0, "errors": 0} + + def decode(self, data: bytes, exporter: str) -> list[dict]: + self.stats["packets"] += 1 + try: + if len(data) < 4: + raise DecodeError("too short") + version = struct.unpack_from("!H", data, 0)[0] + if version == 10: + return self._ipfix(data, exporter) + if version == 9: + return self._v9(data, exporter) + raise DecodeError(f"unsupported version {version}") + except (DecodeError, struct.error, ValueError, IndexError): + self.stats["errors"] += 1 + return [] + + # ---------- IPFIX ---------- + def _ipfix(self, data: bytes, exporter: str) -> list[dict]: + if len(data) < 16: + raise DecodeError("short ipfix header") + _, length, _export_time, _seq, domain = struct.unpack_from("!HHIII", data, 0) + end = min(length, len(data)) + off = 16 + out: list[dict] = [] + while off + 4 <= end: + set_id, set_len = struct.unpack_from("!HH", data, off) + if set_len < 4: + raise DecodeError("bad set length") + body = data[off + 4: off + set_len] + if set_id == 2: + self._ipfix_templates(body, (exporter, 10, domain), options=False) + elif set_id == 3: + self._ipfix_templates(body, (exporter, 10, domain), options=True) + elif set_id >= 256: + out.extend(self._records(body, (exporter, 10, domain, set_id), ipfix=True)) + off += set_len + return out + + def _ipfix_templates(self, body: bytes, key: tuple, options: bool): + off = 0 + while off + 4 <= len(body): + tid, count = struct.unpack_from("!HH", body, off) + off += 4 + if tid < 256: # 填充 + break + if options: + off += 2 # scope field count,作用域字段也在下面的列表里 + fields = [] + for _ in range(count): + fid, flen = struct.unpack_from("!HH", body, off) + off += 4 + ent = 0 + if fid & 0x8000: + fid &= 0x7FFF + ent = struct.unpack_from("!I", body, off)[0] + off += 4 + fields.append(Field(fid, flen, ent)) + # 选项模板(采样率、接口名等)只记下长度用于跳过,不解码 + self.templates[key + (tid,)] = fields if not options else [Field(-1, f.length, f.enterprise) for f in fields] + + # ---------- NetFlow v9 ---------- + def _v9(self, data: bytes, exporter: str) -> list[dict]: + if len(data) < 20: + raise DecodeError("short v9 header") + _, _count, _uptime, _secs, _seq, source_id = struct.unpack_from("!HHIIII", data, 0) + off = 20 + out: list[dict] = [] + while off + 4 <= len(data): + set_id, set_len = struct.unpack_from("!HH", data, off) + if set_len < 4: + raise DecodeError("bad flowset length") + body = data[off + 4: off + set_len] + key = (exporter, 9, source_id) + if set_id == 0: + self._v9_templates(body, key) + elif set_id == 1: + self._v9_options(body, key) + elif set_id >= 256: + out.extend(self._records(body, key + (set_id,), ipfix=False)) + off += set_len + return out + + def _v9_templates(self, body: bytes, key: tuple): + off = 0 + while off + 4 <= len(body): + tid, count = struct.unpack_from("!HH", body, off) + off += 4 + if tid < 256: + break + fields = [] + for _ in range(count): + fid, flen = struct.unpack_from("!HH", body, off) + off += 4 + fields.append(Field(fid, flen)) + self.templates[key + (tid,)] = fields + + def _v9_options(self, body: bytes, key: tuple): + off = 0 + while off + 6 <= len(body): + tid, scope_len, opt_len = struct.unpack_from("!HHH", body, off) + off += 6 + if tid < 256: + break + fields = [] + for _ in range((scope_len + opt_len) // 4): + _fid, flen = struct.unpack_from("!HH", body, off) + off += 4 + fields.append(Field(-1, flen)) + self.templates[key + (tid,)] = fields + + # ---------- 数据记录 ---------- + def _records(self, body: bytes, tkey: tuple, ipfix: bool) -> list[dict]: + fields = self.templates.get(tkey) + if fields is None: + self.stats["no_template"] += 1 + return [] + if not fields: + return [] + min_len = sum(f.length if f.length != 65535 else 1 for f in fields) + out = [] + off = 0 + while len(body) - off >= min_len: + rec: dict = {} + for f in fields: + flen = f.length + if flen == 65535: + flen = body[off] + off += 1 + if flen == 255: + flen = struct.unpack_from("!H", body, off)[0] + off += 2 + raw = body[off: off + flen] + off += flen + if len(raw) < flen: + raise DecodeError("truncated record") + if f.enterprise or f.fid < 0: + continue + name = _NAMES.get(f.fid) + if name is None: + continue + if f.fid in _IP_FIELDS: + if flen in (4, 16): + rec[name] = str(ipaddress.ip_address(raw)) + elif f.fid in _MAC_FIELDS: + if flen == 6: + rec[name] = _fmt_mac(raw) + else: + rec[name] = int.from_bytes(raw, "big") + if "bytes" in rec: + out.append(rec) + self.stats["records"] += len(out) + return out diff --git a/backend/app/collector/tzsp.py b/backend/app/collector/tzsp.py new file mode 100644 index 0000000..7503912 --- /dev/null +++ b/backend/app/collector/tzsp.py @@ -0,0 +1,155 @@ +"""解 RouterOS sniff-tzsp 镜像过来的包:TZSP → 以太网 → IPv4/IPv6 → UDP → DNS 响应。""" +import ipaddress +import struct +from dataclasses import dataclass, field + +QTYPE_A = 1 +QTYPE_CNAME = 5 +QTYPE_AAAA = 28 + + +@dataclass +class DnsAnswer: + client: str # 收到响应的终端(UDP 目的地址) + qname: str # 终端查询的名字 + ips: list[tuple[str, int]] = field(default_factory=list) # (ip, ttl) + cnames: list[str] = field(default_factory=list) + + +def tzsp_payload(data: bytes) -> bytes | None: + """返回 TZSP 里封装的以太网帧。""" + if len(data) < 4 or data[0] != 1: + return None + encap = struct.unpack_from("!H", data, 2)[0] + if encap != 1: # 只处理 Ethernet + return None + off = 4 + while off < len(data): + tag = data[off] + if tag == 1: # TAG_END + return data[off + 1:] + if tag == 0: # TAG_PADDING + off += 1 + continue + if off + 1 >= len(data): + return None + off += 2 + data[off + 1] + return None + + +def ethernet_udp(frame: bytes) -> tuple[str, str, int, int, bytes] | None: + """以太网帧 → (src_ip, dst_ip, sport, dport, udp_payload),非 UDP 返回 None。""" + if len(frame) < 14: + return None + off = 12 + etype = struct.unpack_from("!H", frame, off)[0] + off += 2 + while etype in (0x8100, 0x88A8): # VLAN / QinQ + if len(frame) < off + 4: + return None + etype = struct.unpack_from("!H", frame, off + 2)[0] + off += 4 + if etype == 0x0800: + if len(frame) < off + 20: + return None + ihl = (frame[off] & 0x0F) * 4 + if frame[off + 9] != 17: + return None + src = str(ipaddress.IPv4Address(frame[off + 12: off + 16])) + dst = str(ipaddress.IPv4Address(frame[off + 16: off + 20])) + off += ihl + elif etype == 0x86DD: + if len(frame) < off + 40: + return None + if frame[off + 6] != 17: # 不处理扩展头 + return None + src = str(ipaddress.IPv6Address(frame[off + 8: off + 24])) + dst = str(ipaddress.IPv6Address(frame[off + 24: off + 40])) + off += 40 + else: + return None + if len(frame) < off + 8: + return None + sport, dport, ulen = struct.unpack_from("!HHH", frame, off) + payload = frame[off + 8: off + max(ulen, 8)] + return src, dst, sport, dport, payload + + +def _read_name(msg: bytes, off: int) -> tuple[str, int]: + labels = [] + jumped = False + end = off + hops = 0 + while True: + if off >= len(msg): + raise ValueError("name out of range") + ln = msg[off] + if ln & 0xC0 == 0xC0: + if off + 1 >= len(msg): + raise ValueError("bad pointer") + ptr = ((ln & 0x3F) << 8) | msg[off + 1] + if not jumped: + end = off + 2 + jumped = True + off = ptr + hops += 1 + if hops > 20: + raise ValueError("pointer loop") + continue + if ln == 0: + if not jumped: + end = off + 1 + break + labels.append(msg[off + 1: off + 1 + ln].decode("ascii", "replace")) + off += 1 + ln + return ".".join(labels).lower(), end + + +def parse_dns_response(msg: bytes) -> tuple[str, list[tuple[str, int]], list[str]] | None: + """返回 (qname, [(ip, ttl)], [cname...]);不是响应或没有 A/AAAA 时返回 None。""" + if len(msg) < 12: + return None + _id, flags, qd, an, _ns, _ar = struct.unpack_from("!HHHHHH", msg, 0) + if not flags & 0x8000 or flags & 0x000F or qd != 1 or an == 0: + return None + qname, off = _read_name(msg, 12) + off += 4 + ips: list[tuple[str, int]] = [] + cnames: list[str] = [] + for _ in range(an): + _name, off = _read_name(msg, off) + if off + 10 > len(msg): + break + rtype, _cls, ttl, rdlen = struct.unpack_from("!HHIH", msg, off) + off += 10 + rdata = msg[off: off + rdlen] + if rtype == QTYPE_A and rdlen == 4: + ips.append((str(ipaddress.IPv4Address(rdata)), ttl)) + elif rtype == QTYPE_AAAA and rdlen == 16: + ips.append((str(ipaddress.IPv6Address(rdata)), ttl)) + elif rtype == QTYPE_CNAME: + cnames.append(_read_name(msg, off)[0]) + off += rdlen + if not ips or not qname: + return None + return qname, ips, cnames + + +def parse_tzsp_dns(data: bytes) -> DnsAnswer | None: + frame = tzsp_payload(data) + if frame is None: + return None + udp = ethernet_udp(frame) + if udp is None: + return None + _src, dst, sport, _dport, payload = udp + if sport != 53: + return None + try: + parsed = parse_dns_response(payload) + except (ValueError, struct.error, ipaddress.AddressValueError): + return None + if parsed is None: + return None + qname, ips, cnames = parsed + return DnsAnswer(client=dst, qname=qname, ips=ips, cnames=cnames) diff --git a/backend/app/config.py b/backend/app/config.py new file mode 100644 index 0000000..db799dc --- /dev/null +++ b/backend/app/config.py @@ -0,0 +1,52 @@ +"""运行配置:全部来自环境变量(见 .env.example)。 + +界面里可修改的项(LAN 网段、保留天数、WAN 接口)存到数据库 settings 表, +优先级高于这里的默认值,见 app.runtime。 +""" +from functools import lru_cache +from zoneinfo import ZoneInfo + +from pydantic_settings import BaseSettings, SettingsConfigDict + + +class Settings(BaseSettings): + model_config = SettingsConfigDict(env_file=".env", extra="ignore") + + # mysql+pymysql://user:pass@host:3306/rosdpi?charset=utf8mb4;开发/测试可用 sqlite:///./dev.db + database_url: str = "sqlite:///./data/rosdpi.db" + + http_port: int = 8080 + ipfix_port: int = 2055 + tzsp_port: int = 37008 + + # 逗号分隔,界面可覆盖 + lan_cidrs: str = "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,fd00::/8" + wan_interface: str = "" + + # RouterOS REST(只读用户)。留空则不轮询,终端只显示 IP。 + ros_url: str = "" + ros_user: str = "" + ros_password: str = "" + ros_verify_tls: bool = False + ros_poll_seconds: int = 30 + + tz: str = "Asia/Shanghai" + + retention_minute_days: int = 2 + retention_hour_days: int = 45 + retention_day_days: int = 730 + retention_domain_days: int = 31 + + # JWT 密钥;留空则首次启动随机生成并保存到数据库 + secret_key: str = "" + # 首次启动的管理员密码;留空则由登录页引导设置 + admin_password: str = "" + + @property + def zone(self) -> ZoneInfo: + return ZoneInfo(self.tz) + + +@lru_cache +def get_settings() -> Settings: + return Settings() diff --git a/backend/app/database.py b/backend/app/database.py new file mode 100644 index 0000000..cd3045f --- /dev/null +++ b/backend/app/database.py @@ -0,0 +1,79 @@ +import os +import time + +from sqlalchemy import create_engine, event +from sqlalchemy.dialects.mysql import insert as mysql_insert +from sqlalchemy.dialects.sqlite import insert as sqlite_insert +from sqlalchemy.orm import DeclarativeBase, sessionmaker + +from app.config import get_settings + + +class Base(DeclarativeBase): + pass + + +def _make_engine(url: str): + if url.startswith("sqlite"): + path = url.split("///", 1)[-1] + if path and path != ":memory:": + os.makedirs(os.path.dirname(os.path.abspath(path)), exist_ok=True) + eng = create_engine(url, connect_args={"check_same_thread": False}) + + @event.listens_for(eng, "connect") + def _pragma(conn, _): + cur = conn.cursor() + cur.execute("PRAGMA journal_mode=WAL") + cur.execute("PRAGMA synchronous=NORMAL") + cur.close() + + return eng + return create_engine(url, pool_pre_ping=True, pool_recycle=1800, pool_size=10, max_overflow=10) + + +engine = _make_engine(get_settings().database_url) +SessionLocal = sessionmaker(bind=engine, autoflush=False, expire_on_commit=False) + + +def is_mysql() -> bool: + return engine.dialect.name == "mysql" + + +def upsert_add(session, table, rows: list[dict], keys: list[str], add_cols: list[str], set_cols: list[str] = ()): + """批量 upsert:主键冲突时 add_cols 累加、set_cols 覆盖。MySQL / SQLite 通用。""" + if not rows: + return + if is_mysql(): + stmt = mysql_insert(table).values(rows) + upd = {c: table.c[c] + stmt.inserted[c] for c in add_cols} + upd.update({c: stmt.inserted[c] for c in set_cols}) + stmt = stmt.on_duplicate_key_update(**upd) + else: + stmt = sqlite_insert(table).values(rows) + upd = {c: table.c[c] + stmt.excluded[c] for c in add_cols} + upd.update({c: stmt.excluded[c] for c in set_cols}) + stmt = stmt.on_conflict_do_update(index_elements=keys, set_=upd) + session.execute(stmt) + + +def init_db(retries: int = 20, delay: float = 3.0): + """建表。容器启动时 MySQL 往往还没就绪,这里重试。""" + from app import models # noqa: F401 注册模型 + + for i in range(1, retries + 1): + try: + Base.metadata.create_all(engine) + return + except Exception as e: # noqa: BLE001 + print(f"[db] 数据库未就绪({i}/{retries}):{type(e).__name__}: {str(e)[:120]}") + if i == retries: + raise + time.sleep(delay) + + +def get_db(): + db = SessionLocal() + try: + yield db + finally: + db.close() diff --git a/backend/app/dnsmap.py b/backend/app/dnsmap.py new file mode 100644 index 0000000..59fd164 --- /dev/null +++ b/backend/app/dnsmap.py @@ -0,0 +1,55 @@ +"""IP → 域名 映射表(从嗅探到的 DNS 响应建立)。 + +DNS TTL 往往只有几十秒,但连接会持续很久,所以保留时间取 max(TTL, MIN_KEEP)。 +同一个 CDN IP 可能对应多个域名,这里保留最近一次的结果。 +""" +import time +from collections import OrderedDict + +MIN_KEEP = 6 * 3600 +MAX_KEEP = 48 * 3600 +MAX_ENTRIES = 300_000 + + +class DnsMap: + def __init__(self, max_entries: int = MAX_ENTRIES): + self._d: OrderedDict[str, tuple[str, str | None, int]] = OrderedDict() + self.max_entries = max_entries + self.answers = 0 + self.dirty: dict[str, tuple[str, str | None, int]] = {} + + def add(self, qname: str, ips: list[tuple[str, int]], cnames: list[str], now: float | None = None): + now = int(now or time.time()) + cname = cnames[-1] if cnames else None + self.answers += 1 + for ip, ttl in ips: + exp = now + min(max(ttl, MIN_KEEP), MAX_KEEP) + val = (qname, cname, exp) + self._d[ip] = val + self._d.move_to_end(ip) + self.dirty[ip] = val + while len(self._d) > self.max_entries: + self._d.popitem(last=False) + + def lookup(self, ip: str) -> tuple[str, str | None] | None: + # 过期条目也照常返回(比没有强),由 purge 定期清理 + v = self._d.get(ip) + return (v[0], v[1]) if v else None + + def load(self, rows): + for ip, name, cname, exp in rows: + self._d[ip] = (name, cname, exp) + + def purge(self, now: float | None = None) -> int: + now = now or time.time() + dead = [ip for ip, v in self._d.items() if v[2] < now] + for ip in dead: + del self._d[ip] + return len(dead) + + def take_dirty(self) -> dict: + d, self.dirty = self.dirty, {} + return d + + def __len__(self): + return len(self._d) diff --git a/backend/app/engine.py b/backend/app/engine.py new file mode 100644 index 0000000..a92d92a --- /dev/null +++ b/backend/app/engine.py @@ -0,0 +1,260 @@ +"""流量处理核心:流记录 → 判断终端与方向 → 查域名 → 识别应用 → 内存累加 → 定时落库。""" +import ipaddress +import threading +import time +from collections import defaultdict + +from sqlalchemy import delete, select + +from app import timeutil +from app.classify import GENERIC_APPS, Classifier +from app.collector.ipfix import FlowDecoder +from app.collector.tzsp import parse_tzsp_dns +from app.config import get_settings +from app.database import SessionLocal, upsert_add +from app.dnsmap import DnsMap +from app.models import (CustomRule, DnsCache, Host, HostDomainDay, Setting, TrafficDay, TrafficHour, + TrafficMinute) + +_ZERO = {"0.0.0.0", "::"} + + +def parse_cidrs(text: str) -> list: + nets = [] + for part in (text or "").replace("\n", ",").split(","): + part = part.strip() + if part: + try: + nets.append(ipaddress.ip_network(part, strict=False)) + except ValueError: + pass + return nets + + +class Engine: + def __init__(self): + s = get_settings() + self.decoder = FlowDecoder() + self.dns = DnsMap() + self.classifier = Classifier() + self.lock = threading.Lock() + self.lan_cidrs_text = s.lan_cidrs + self.lan_nets = parse_cidrs(s.lan_cidrs) + self.auto_nets: list = [] # ros_poller 自动发现的 LAN 前缀(主要是 IPv6 公网前缀) + self.ip2mac: dict[str, str] = {} # ARP / IPv6 邻居 / DHCP + self.mac2name: dict[str, str] = {} + self._lan_cache: dict[str, bool] = {} + + self._buf: dict[tuple[str, str], list[int]] = defaultdict(lambda: [0, 0, 0]) + self._dom: dict[tuple[str, str, str], int] = defaultdict(int) + self._seen: dict[str, tuple[str, str | None, int]] = {} # host_key -> (ip, mac, ts) + + # 最近一个分钟窗口的统计,用于实时速率 + self.last_flush = time.time() + self.host_rate: dict[str, tuple[float, float]] = {} + self.app_rate: dict[str, tuple[float, float]] = {} + self.total_rate = (0.0, 0.0) + self.stats = {"flows": 0, "flows_dropped": 0, "dns_packets": 0, "dns_answers": 0, + "bytes_seen": 0, "last_flow": 0, "last_dns": 0, "exporters": {}} + + # ---------- 配置 ---------- + def set_lan(self, text: str): + self.lan_cidrs_text = text + self.lan_nets = parse_cidrs(text) + self._lan_cache.clear() + + def set_auto_nets(self, nets: list): + if set(map(str, nets)) != set(map(str, self.auto_nets)): + self.auto_nets = nets + self._lan_cache.clear() + + def reload_rules(self): + with SessionLocal() as db: + rules = db.scalars(select(CustomRule)).all() + self.classifier.load_custom(rules) + + def is_lan(self, ip: str | None) -> bool: + if not ip or ip in _ZERO: + return False + hit = self._lan_cache.get(ip) + if hit is not None: + return hit + try: + a = ipaddress.ip_address(ip) + except ValueError: + return False + if a.version == 6 and a.is_link_local: + hit = True + else: + hit = any(a.version == n.version and a in n for n in self.lan_nets + self.auto_nets) + if len(self._lan_cache) > 100_000: + self._lan_cache.clear() + self._lan_cache[ip] = hit + return hit + + # ---------- 输入 ---------- + def on_ipfix(self, data: bytes, exporter: str): + recs = self.decoder.decode(data, exporter) + now = time.time() + ex = self.stats["exporters"] + ex[exporter] = int(now) + with self.lock: + for r in recs: + self.add_flow(r, now) + + def on_tzsp(self, data: bytes): + self.stats["dns_packets"] += 1 + ans = parse_tzsp_dns(data) + if ans is None: + return + self.stats["dns_answers"] += 1 + self.stats["last_dns"] = int(time.time()) + self.dns.add(ans.qname, ans.ips, ans.cnames) + + def host_key(self, ip: str, mac: str | None) -> tuple[str, str | None]: + m = self.ip2mac.get(ip) + if not m and mac: + # 没配 ROS 轮询时,靠上行流里的源 MAC 学习 IP→MAC + self.ip2mac[ip] = m = mac + if m: + return m, m + return f"IP:{ip}", None + + def add_flow(self, r: dict, now: float): + """调用方持有 self.lock。返回 (host_key, app, direction) 便于测试。""" + src, dst = r.get("src"), r.get("dst") + post_src, post_dst = r.get("post_src"), r.get("post_dst") + proto = r.get("proto", 0) + nbytes = r.get("bytes", 0) + if not src or not dst or nbytes <= 0: + self.stats["flows_dropped"] += 1 + return None + src_lan, dst_lan = self.is_lan(src), self.is_lan(dst) + mac = None + if src_lan and not dst_lan: + direction, host_ip, remote, rport = "up", src, dst, r.get("dport", 0) + mac = r.get("src_mac") + elif dst_lan and not src_lan: + # 下行包在 WAN 口入方向采集,记录里的 MAC 是路由器自己的,不能用 + direction, host_ip, remote, rport = "down", dst, src, r.get("sport", 0) + elif not src_lan and not dst_lan and self.is_lan(post_dst): + # WAN 入方向、记录的是 DNAT 前地址:用 post-NAT 目的地址找终端 + direction, host_ip, remote, rport = "down", post_dst, src, r.get("sport", 0) + else: + # 内网互访,或路由器自身的流量 + self.stats["flows_dropped"] += 1 + return None + + names = self.dns.lookup(remote) + qname, cname = names if names else (None, None) + app = self.classifier.classify(remote, proto, rport, qname, cname) + key, mac = self.host_key(host_ip, mac) + + b = self._buf[(key, app)] + if direction == "up": + b[0] += nbytes + else: + b[1] += nbytes + b[2] += 1 + if qname: + self._dom[(key, qname, app)] += nbytes + self._seen[key] = (host_ip, mac, int(now)) + self.stats["flows"] += 1 + self.stats["bytes_seen"] += nbytes + self.stats["last_flow"] = int(now) + return key, app, direction + + # ---------- 落库 ---------- + def flush(self, now: float | None = None): + now = now or time.time() + with self.lock: + buf, self._buf = self._buf, defaultdict(lambda: [0, 0, 0]) + dom, self._dom = self._dom, defaultdict(int) + seen, self._seen = self._seen, {} + elapsed = max(now - self.last_flush, 1.0) + self.last_flush = now + + hr, ar = defaultdict(lambda: [0, 0]), defaultdict(lambda: [0, 0]) + for (host, app), (up, down, _f) in buf.items(): + hr[host][0] += up + hr[host][1] += down + ar[app][0] += up + ar[app][1] += down + self.host_rate = {h: (u / elapsed, d / elapsed) for h, (u, d) in hr.items()} + self.app_rate = {a: (u / elapsed, d / elapsed) for a, (u, d) in ar.items()} + self.total_rate = (sum(v[0] for v in hr.values()) / elapsed, sum(v[1] for v in hr.values()) / elapsed) + + m, h, d = timeutil.minute_bucket(now), timeutil.hour_bucket(now), timeutil.day_bucket(now) + rows = [{"host": host, "app": app, "up": up, "down": down, "flows": f} + for (host, app), (up, down, f) in buf.items()] + dirty_dns = self.dns.take_dirty() + with SessionLocal() as db: + for table, ts in ((TrafficMinute.__table__, m), (TrafficHour.__table__, h), (TrafficDay.__table__, d)): + for chunk in _chunks([{**r, "ts": ts} for r in rows], 500): + upsert_add(db, table, chunk, ["ts", "host", "app"], ["up", "down", "flows"]) + drows = [{"ts": d, "host": host, "domain": name[:255], "app": app, "bytes": n} + for (host, name, app), n in dom.items()] + for chunk in _chunks(drows, 500): + upsert_add(db, HostDomainDay.__table__, chunk, ["ts", "host", "domain"], ["bytes"], ["app"]) + self._save_hosts(db, seen) + if dirty_dns: + drs = [{"ip": ip, "name": v[0][:255], "cname": (v[1] or "")[:255] or None, "expires": v[2]} + for ip, v in dirty_dns.items()] + for chunk in _chunks(drs, 500): + upsert_add(db, DnsCache.__table__, chunk, ["ip"], [], ["name", "cname", "expires"]) + db.commit() + + def _save_hosts(self, db, seen: dict): + if not seen: + return + rows = [] + for key, (ip, mac, ts) in seen.items(): + rows.append({"key": key, "mac": mac, "ip": ip, "hostname": self.mac2name.get(mac) if mac else None, + "first_seen": ts, "last_seen": ts}) + # 已存在的终端只更新 ip / last_seen,first_seen 与备注名保持不变 + existing = {h.key: h for h in db.scalars(select(Host).where(Host.key.in_(list(seen))))} + for r in rows: + h = existing.get(r["key"]) + if h is None: + db.add(Host(**r)) + continue + h.ip, h.last_seen = r["ip"], r["last_seen"] + h.first_seen = h.first_seen or r["first_seen"] + h.mac = h.mac or r["mac"] + if r["hostname"]: + h.hostname = r["hostname"] + + def load_state(self): + """启动时恢复 DNS 映射、自定义规则和界面设置。""" + now = int(time.time()) + with SessionLocal() as db: + rows = db.execute(select(DnsCache.ip, DnsCache.name, DnsCache.cname, DnsCache.expires) + .where(DnsCache.expires > now)).all() + lan = db.get(Setting, "lan_cidrs") + self.dns.load(rows) + if lan and lan.value: + self.set_lan(lan.value) + self.reload_rules() + + def cleanup(self): + s = get_settings() + now = int(time.time()) + with SessionLocal() as db: + db.execute(delete(TrafficMinute).where(TrafficMinute.ts < now - s.retention_minute_days * 86400)) + db.execute(delete(TrafficHour).where(TrafficHour.ts < now - s.retention_hour_days * 86400)) + db.execute(delete(TrafficDay).where(TrafficDay.ts < now - s.retention_day_days * 86400)) + db.execute(delete(HostDomainDay).where(HostDomainDay.ts < now - s.retention_domain_days * 86400)) + db.execute(delete(DnsCache).where(DnsCache.expires < now)) + db.commit() + self.dns.purge() + + def is_generic(self, app: str) -> bool: + return app in GENERIC_APPS + + +def _chunks(seq, n): + for i in range(0, len(seq), n): + yield seq[i: i + n] + + +engine = Engine() diff --git a/backend/app/main.py b/backend/app/main.py new file mode 100644 index 0000000..c8255ba --- /dev/null +++ b/backend/app/main.py @@ -0,0 +1,89 @@ +import asyncio +import os +from contextlib import asynccontextmanager + +from apscheduler.schedulers.background import BackgroundScheduler +from fastapi import FastAPI, Request +from fastapi.responses import FileResponse, JSONResponse +from fastapi.staticfiles import StaticFiles + +from app import __version__ +from app.collector import start_listeners +from app.config import get_settings +from app.database import SessionLocal, init_db +from app.engine import engine +from app.models import Setting +from app.ros_poller import poller +from app.routers import admin, auth, stats +from app.security import ensure_admin + +FRONTEND_DIR = os.environ.get("FRONTEND_DIR", os.path.join(os.path.dirname(__file__), "..", "frontend_dist")) + + +def _safe(fn, name): + def run(): + try: + fn() + except Exception as e: # noqa: BLE001 + print(f"[job] {name} 失败:{type(e).__name__}: {e}") + return run + + +@asynccontextmanager +async def lifespan(app: FastAPI): + s = get_settings() + await asyncio.to_thread(init_db) + ensure_admin() + engine.load_state() + with SessionLocal() as db: + wan = db.get(Setting, "wan_interface") + poller.wan_override = wan.value if wan and wan.value else "" + + transports = await start_listeners(engine, s.ipfix_port, s.tzsp_port) + sched = BackgroundScheduler(timezone=s.tz) + sched.add_job(_safe(engine.flush, "flush"), "cron", second=0, max_instances=1, coalesce=True) + sched.add_job(_safe(engine.cleanup, "cleanup"), "cron", minute=17, max_instances=1) + if poller.enabled: + sched.add_job(_safe(poller.poll, "ros-poll"), "interval", seconds=s.ros_poll_seconds, + max_instances=1, coalesce=True) + await asyncio.to_thread(poller.poll) + sched.start() + print(f"[startup] ROS-DPI {__version__} 已启动,Web 端口 {s.http_port}") + yield + sched.shutdown(wait=False) + for t in transports: + t.close() + _safe(engine.flush, "flush")() + + +app = FastAPI(title="ROS-DPI", version=__version__, lifespan=lifespan) + + +@app.exception_handler(Exception) +async def _unhandled(request: Request, exc: Exception): + print(f"[error] {request.method} {request.url.path}: {exc!r}") + msg = (str(exc).splitlines() or [""])[0][:300] + return JSONResponse(status_code=500, content={"detail": f"服务器内部错误:{type(exc).__name__}: {msg}"}) + + +for r in (auth.router, stats.router, admin.router): + app.include_router(r) + + +@app.get("/api/health") +def health(): + return {"ok": True, "version": __version__} + + +if os.path.isdir(FRONTEND_DIR): + app.mount("/assets", StaticFiles(directory=os.path.join(FRONTEND_DIR, "assets")), name="assets") + + @app.get("/{path:path}", include_in_schema=False) + def spa(path: str): + root = os.path.realpath(FRONTEND_DIR) + f = os.path.realpath(os.path.join(root, path)) + if path and f.startswith(root + os.sep) and os.path.isfile(f): + return FileResponse(f) + if path.startswith("api/"): + return JSONResponse(status_code=404, content={"detail": "Not Found"}) + return FileResponse(os.path.join(FRONTEND_DIR, "index.html")) diff --git a/backend/app/models.py b/backend/app/models.py new file mode 100644 index 0000000..73a70e3 --- /dev/null +++ b/backend/app/models.py @@ -0,0 +1,89 @@ +"""数据表。时间一律存 epoch 秒(BigInteger),分桶起点:分钟/小时按 UTC 对齐,天按配置时区的 0 点。""" +from sqlalchemy import BigInteger, Column, Index, Integer, String, Text + +from app.database import Base + + +def _traffic_cols(): + return [ + Column("ts", BigInteger, primary_key=True), + Column("host", String(64), primary_key=True), + Column("app", String(48), primary_key=True), + Column("up", BigInteger, nullable=False, default=0), + Column("down", BigInteger, nullable=False, default=0), + Column("flows", Integer, nullable=False, default=0), + ] + + +class TrafficMinute(Base): + __tablename__ = "traffic_minute" + ts, host, app, up, down, flows = _traffic_cols() + __table_args__ = (Index("ix_tmin_host_ts", "host", "ts"),) + + +class TrafficHour(Base): + __tablename__ = "traffic_hour" + ts, host, app, up, down, flows = _traffic_cols() + __table_args__ = (Index("ix_thour_host_ts", "host", "ts"), Index("ix_thour_app_ts", "app", "ts")) + + +class TrafficDay(Base): + __tablename__ = "traffic_day" + ts, host, app, up, down, flows = _traffic_cols() + __table_args__ = (Index("ix_tday_host_ts", "host", "ts"), Index("ix_tday_app_ts", "app", "ts")) + + +class HostDomainDay(Base): + """每台终端每天访问的域名及字节数(主机详情 "最近访问域名"、未识别域名 Top)。""" + __tablename__ = "host_domain_day" + ts = Column(BigInteger, primary_key=True) + host = Column(String(64), primary_key=True) + domain = Column(String(255), primary_key=True) + app = Column(String(48), nullable=False) + bytes = Column(BigInteger, nullable=False, default=0) + __table_args__ = (Index("ix_hdd_host_ts", "host", "ts"), Index("ix_hdd_app_ts", "app", "ts")) + + +class Host(Base): + """终端。key 优先用 MAC(大写冒号格式),拿不到 MAC 时用 "IP:x.x.x.x"。""" + __tablename__ = "hosts" + key = Column(String(64), primary_key=True) + mac = Column(String(17)) + ip = Column(String(45)) + ipv6 = Column(Text) + hostname = Column(String(128)) + alias = Column(String(128)) + first_seen = Column(BigInteger) + last_seen = Column(BigInteger) + + +class DnsCache(Base): + __tablename__ = "dns_cache" + ip = Column(String(45), primary_key=True) + name = Column(String(255), nullable=False) + cname = Column(String(255)) + expires = Column(BigInteger, nullable=False) + + +class CustomRule(Base): + __tablename__ = "custom_rules" + id = Column(Integer, primary_key=True, autoincrement=True) + kind = Column(String(16), nullable=False) # domain | cidr | port + pattern = Column(String(255), nullable=False) + app_id = Column(String(48), nullable=False) + app_name = Column(String(64)) + category = Column(String(32)) + created = Column(BigInteger) + + +class Setting(Base): + __tablename__ = "settings" + key = Column(String(64), primary_key=True) + value = Column(Text) + + +class User(Base): + __tablename__ = "users" + id = Column(Integer, primary_key=True, autoincrement=True) + username = Column(String(64), unique=True, nullable=False) + password_hash = Column(String(128), nullable=False) diff --git a/backend/app/ros_poller.py b/backend/app/ros_poller.py new file mode 100644 index 0000000..6e9e8d1 --- /dev/null +++ b/backend/app/ros_poller.py @@ -0,0 +1,150 @@ +"""通过 RouterOS REST API(只读,仅 GET)获取终端名称、IP↔MAC、LAN 前缀、WAN 口速率和系统状态。""" +import ipaddress +import time + +import httpx + +from app.config import get_settings + + +class RosPoller: + def __init__(self, engine): + self.engine = engine + self.ok = False + self.error = "" + self.last_poll = 0 + self.identity = "" + self.resource: dict = {} + self.interfaces: list[dict] = [] + self.wan_name = "" + self.wan_rate = (0.0, 0.0) # (上行 tx, 下行 rx) 字节/秒 + self._wan_prev: tuple[float, int, int] | None = None + self.wan_override = "" + self.leases: dict[str, dict] = {} # mac -> lease + + @property + def enabled(self) -> bool: + return bool(get_settings().ros_url) + + def _client(self) -> httpx.Client: + s = get_settings() + return httpx.Client(base_url=s.ros_url.rstrip("/") + "/rest", auth=(s.ros_user, s.ros_password), + verify=s.ros_verify_tls, timeout=10.0) + + def poll(self): + if not self.enabled: + return + try: + with self._client() as c: + get = lambda p: (r := c.get(p)).raise_for_status() or r.json() # noqa: E731 + ident = get("/system/identity") + self.identity = ident.get("name", "") if isinstance(ident, dict) else "" + self.resource = get("/system/resource") + ifaces = get("/interface") + arp = get("/ip/arp") + leases = get("/ip/dhcp-server/lease") + addrs = get("/ip/address") + routes = get("/ip/route?dst-address=0.0.0.0/0") + try: + nb6 = get("/ipv6/neighbor") + addrs6 = get("/ipv6/address") + except httpx.HTTPError: + nb6, addrs6 = [], [] # IPv6 包未启用 + self._apply(ifaces, arp, leases, addrs, routes, nb6, addrs6) + self.ok, self.error = True, "" + except Exception as e: # noqa: BLE001 + self.ok, self.error = False, f"{type(e).__name__}: {str(e)[:200]}" + print(f"[ros] 轮询失败:{self.error}") + self.last_poll = int(time.time()) + + def _apply(self, ifaces, arp, leases, addrs, routes, nb6, addrs6): + now = time.time() + self.interfaces = [ + {"name": i.get("name"), "type": i.get("type"), "running": i.get("running") == "true", + "rx": int(i.get("rx-byte", 0) or 0), "tx": int(i.get("tx-byte", 0) or 0)} + for i in ifaces + ] + self.wan_name = self.wan_override or get_settings().wan_interface or _default_route_iface(routes) + wan = next((i for i in self.interfaces if i["name"] == self.wan_name), None) + if wan: + if self._wan_prev and self._wan_prev[0] < now: + dt = now - self._wan_prev[0] + self.wan_rate = (max(wan["tx"] - self._wan_prev[2], 0) / dt, + max(wan["rx"] - self._wan_prev[1], 0) / dt) + self._wan_prev = (now, wan["rx"], wan["tx"]) + + ip2mac: dict[str, str] = {} + for a in arp: + if a.get("mac-address") and a.get("address"): + ip2mac[a["address"]] = a["mac-address"].upper() + for n in nb6: + if n.get("mac-address") and n.get("address"): + ip2mac[n["address"]] = n["mac-address"].upper() + names: dict[str, str] = {} + self.leases = {} + for le in leases: + mac = (le.get("mac-address") or le.get("active-mac-address") or "").upper() + if not mac: + continue + ip = le.get("active-address") or le.get("address") + if ip and "/" not in ip: + ip2mac.setdefault(ip, mac) + name = le.get("comment") or le.get("host-name") or le.get("active-host-name") + if name: + names[mac] = name + self.leases[mac] = le + self.engine.ip2mac.update(ip2mac) + self.engine.mac2name.update(names) + + # 非 WAN 接口上的地址段视为 LAN(自动补充 IPv6 公网前缀等) + # 认不出 WAN 口时不自动发现,免得把 WAN 地址段当成 LAN + nets = [] + for a in (list(addrs) + list(addrs6)) if self.wan_name else []: + if a.get("interface") == self.wan_name or a.get("disabled") == "true": + continue + try: + net = ipaddress.ip_interface(a.get("address", "")).network + except ValueError: + continue + if net.is_link_local or net.is_loopback or net.prefixlen == net.max_prefixlen: + continue + nets.append(net) + self.engine.set_auto_nets(nets) + + def status(self) -> dict: + r = self.resource or {} + return { + "enabled": self.enabled, "ok": self.ok, "error": self.error, "last_poll": self.last_poll, + "identity": self.identity, "version": r.get("version"), "board": r.get("board-name"), + "uptime": r.get("uptime"), "cpu_load": _int(r.get("cpu-load")), + "mem_total": _int(r.get("total-memory")), "mem_free": _int(r.get("free-memory")), + "wan_interface": self.wan_name, + } + + +def _int(v): + try: + return int(v) + except (TypeError, ValueError): + return None + + +def _default_route_iface(routes) -> str: + """默认路由的出接口:immediate-gw 形如 "10.0.0.1%ether1",PPPoE 时 gateway 直接是接口名。""" + for r in routes or []: + if r.get("active") not in ("true", True) and len(routes) > 1: + continue + gw = r.get("immediate-gw") or r.get("gateway") or "" + if "%" in gw: + return gw.split("%", 1)[1] + if gw and not gw[0].isdigit(): + return gw + return "" + + +def _make(): + from app.engine import engine + return RosPoller(engine) + + +poller = _make() diff --git a/backend/app/routers/__init__.py b/backend/app/routers/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/app/routers/admin.py b/backend/app/routers/admin.py new file mode 100644 index 0000000..1d1ae1c --- /dev/null +++ b/backend/app/routers/admin.py @@ -0,0 +1,187 @@ +import ipaddress +import re +import time + +from fastapi import APIRouter, Depends, HTTPException, Query +from pydantic import BaseModel, Field +from sqlalchemy.orm import Session + +from app import __version__, stats, timeutil +from app.classify import GENERIC_APPS +from app.config import get_settings +from app.database import get_db +from app.engine import engine, parse_cidrs +from app.models import CustomRule, Setting +from app.ros_poller import poller +from app.security import current_user + +router = APIRouter(prefix="/api", tags=["admin"], dependencies=[Depends(current_user)]) + +_PORT_RE = re.compile(r"^(tcp|udp)/\d{1,5}(-\d{1,5})?$", re.I) +_DOMAIN_RE = re.compile(r"^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$", re.I) +_APPID_RE = re.compile(r"^[a-z0-9_]{1,48}$") + + +@router.get("/meta") +def meta(): + c = engine.classifier + return { + "categories": [{"id": k, **v} for k, v in c.categories.items()], + "apps": sorted(({"id": a.id, "name": a.name, "name_en": a.name_en, "category": a.category, + "custom": a.custom} for a in c.apps.values()), key=lambda a: a["id"]), + } + + +# ---------- 自定义识别规则 ---------- +class RuleIn(BaseModel): + kind: str = Field(pattern="^(domain|cidr|port)$") + pattern: str = Field(min_length=1, max_length=255) + app_id: str = Field(min_length=1, max_length=48) + app_name: str | None = Field(None, max_length=64) + category: str | None = Field(None, max_length=32) + + +def _rule_dict(r: CustomRule): + return {"id": r.id, "kind": r.kind, "pattern": r.pattern, "app_id": r.app_id, "app_name": r.app_name, + "category": r.category, "created": r.created} + + +@router.get("/rules") +def list_rules(db: Session = Depends(get_db)): + return [_rule_dict(r) for r in db.query(CustomRule).order_by(CustomRule.id.desc())] + + +@router.post("/rules") +def add_rule(req: RuleIn, db: Session = Depends(get_db)): + p = req.pattern.strip().lower() + if req.kind == "domain": + p = p.strip(".") + if not _DOMAIN_RE.match(p): + raise HTTPException(400, "域名格式不正确") + elif req.kind == "cidr": + try: + p = str(ipaddress.ip_network(p, strict=False)) + except ValueError: + raise HTTPException(400, "IP 段格式不正确,例如 1.2.3.0/24") + elif not _PORT_RE.match(p): + raise HTTPException(400, "端口格式不正确,例如 tcp/8080 或 udp/3000-3010") + known = req.app_id in engine.classifier.apps + if not known: + if not _APPID_RE.match(req.app_id): + raise HTTPException(400, "新应用 ID 只能包含小写字母、数字和下划线") + if not req.app_name: + raise HTTPException(400, "新应用需要填写名称") + if req.category not in engine.classifier.categories: + raise HTTPException(400, "请选择分类") + r = CustomRule(kind=req.kind, pattern=p, app_id=req.app_id, app_name=req.app_name, + category=req.category, created=int(time.time())) + db.add(r) + db.commit() + engine.reload_rules() + return _rule_dict(r) + + +@router.delete("/rules/{rule_id}") +def delete_rule(rule_id: int, db: Session = Depends(get_db)): + r = db.get(CustomRule, rule_id) + if r is None: + raise HTTPException(404, "规则不存在") + db.delete(r) + db.commit() + engine.reload_rules() + return {"ok": True} + + +@router.get("/rules/unknown-domains") +def unknown_domains(range: str = Query("week", pattern="^(today|week|month|last7|last30)$"), + db: Session = Depends(get_db)): + """按流量排序的未识别域名,方便一键归类。""" + return stats.unknown_domains(db, *timeutil.range_bounds(range)) + + +@router.get("/rules/test") +def test_rule(domain: str): + """查看一个域名当前会被识别成什么。""" + app = engine.classifier.match_domain(domain.strip().lower()) + return {"domain": domain, "app": stats.app_meta(app) if app else None} + + +# ---------- 设置 ---------- +class SettingsIn(BaseModel): + lan_cidrs: str | None = Field(None, max_length=2000) + wan_interface: str | None = Field(None, max_length=64) + + +def _get(db, key, default=""): + row = db.get(Setting, key) + return row.value if row and row.value is not None else default + + +def _put(db, key, value): + row = db.get(Setting, key) + if row is None: + db.add(Setting(key=key, value=value)) + else: + row.value = value + + +@router.get("/settings") +def get_settings_api(db: Session = Depends(get_db)): + s = get_settings() + return { + "lan_cidrs": engine.lan_cidrs_text, + "lan_auto": [str(n) for n in engine.auto_nets], + "wan_interface": _get(db, "wan_interface", s.wan_interface), + "wan_detected": poller.wan_name, + "interfaces": [i["name"] for i in poller.interfaces], + "retention": {"minute": s.retention_minute_days, "hour": s.retention_hour_days, + "day": s.retention_day_days, "domain": s.retention_domain_days}, + "ros_url": s.ros_url, "ros_user": s.ros_user, + "ports": {"http": s.http_port, "ipfix": s.ipfix_port, "tzsp": s.tzsp_port}, + "tz": s.tz, + } + + +@router.put("/settings") +def put_settings(req: SettingsIn, db: Session = Depends(get_db)): + if req.lan_cidrs is not None: + text = ",".join(x.strip() for x in req.lan_cidrs.replace("\n", ",").split(",") if x.strip()) + bad = [x for x in text.split(",") if x and not parse_cidrs(x)] + if bad: + raise HTTPException(400, f"无效网段:{', '.join(bad)}") + _put(db, "lan_cidrs", text) + engine.set_lan(text) + if req.wan_interface is not None: + _put(db, "wan_interface", req.wan_interface.strip()) + poller.wan_override = req.wan_interface.strip() + poller._wan_prev = None + db.commit() + return get_settings_api(db) + + +# ---------- 系统状态 ---------- +@router.get("/system") +def system(): + st = engine.stats + now = int(time.time()) + return { + "version": __version__, + "collector": { + "flows": st["flows"], "flows_dropped": st["flows_dropped"], "bytes": st["bytes_seen"], + "last_flow": st["last_flow"], "exporters": st["exporters"], + "decoder": engine.decoder.stats, "templates": len(engine.decoder.templates), + "flow_ok": bool(st["last_flow"] and now - st["last_flow"] < 180), + }, + "dns": {"packets": st["dns_packets"], "answers": st["dns_answers"], "last": st["last_dns"], + "entries": len(engine.dns), "ok": bool(st["last_dns"] and now - st["last_dns"] < 600)}, + "router": poller.status(), + "generic_apps": sorted(GENERIC_APPS), + } + + +@router.post("/ros/test") +def ros_test(): + if not poller.enabled: + raise HTTPException(400, "未配置 ROS_URL,请在环境变量中设置 RouterOS REST 地址和只读账号") + poller.poll() + return poller.status() diff --git a/backend/app/routers/auth.py b/backend/app/routers/auth.py new file mode 100644 index 0000000..9e5605d --- /dev/null +++ b/backend/app/routers/auth.py @@ -0,0 +1,61 @@ +from fastapi import APIRouter, Depends, HTTPException +from pydantic import BaseModel, Field +from sqlalchemy.orm import Session + +from app.database import get_db +from app.models import User +from app.security import current_user, make_token, pwd + +router = APIRouter(prefix="/api/auth", tags=["auth"]) + + +class Creds(BaseModel): + username: str = "admin" + password: str = Field(min_length=1) + + +class SetupReq(BaseModel): + username: str = Field("admin", min_length=1, max_length=64) + password: str = Field(min_length=6) + + +class PwChange(BaseModel): + old_password: str + new_password: str = Field(min_length=6) + + +@router.get("/status") +def status(db: Session = Depends(get_db)): + return {"initialized": db.query(User).count() > 0} + + +@router.post("/setup") +def setup(req: SetupReq, db: Session = Depends(get_db)): + if db.query(User).count() > 0: + raise HTTPException(400, "管理员已存在") + db.add(User(username=req.username, password_hash=pwd.hash(req.password))) + db.commit() + return {"token": make_token(req.username), "username": req.username} + + +@router.post("/login") +def login(req: Creds, db: Session = Depends(get_db)): + u = db.query(User).filter(User.username == req.username).first() + if not u or not pwd.verify(req.password, u.password_hash): + raise HTTPException(401, "用户名或密码错误") + return {"token": make_token(u.username), "username": u.username} + + +@router.get("/me") +def me(user: str = Depends(current_user)): + return {"username": user} + + +@router.post("/password") +def change_password(req: PwChange, user: str = Depends(current_user), db: Session = Depends(get_db)): + u = db.query(User).filter(User.username == user).first() + if not u or not pwd.verify(req.old_password, u.password_hash): + raise HTTPException(400, "原密码错误") + u.password_hash = pwd.hash(req.new_password) + db.commit() + return {"ok": True} diff --git a/backend/app/routers/stats.py b/backend/app/routers/stats.py new file mode 100644 index 0000000..2ef3de5 --- /dev/null +++ b/backend/app/routers/stats.py @@ -0,0 +1,124 @@ +import time + +from fastapi import APIRouter, Depends, HTTPException, Query +from pydantic import BaseModel, Field +from sqlalchemy.orm import Session + +from app import stats, timeutil +from app.database import get_db +from app.engine import engine +from app.models import Host +from app.ros_poller import poller +from app.security import current_user + +router = APIRouter(prefix="/api", tags=["stats"], dependencies=[Depends(current_user)]) + +RANGES = "^(today|yesterday|week|month|last7|last30)$" + + +def _bounds(rng: str): + return timeutil.range_bounds(rng) + + +def _trend_gran(rng: str) -> str: + return "hour" if rng in ("today", "yesterday") else "day" + + +@router.get("/overview") +def overview(range: str = Query("today", pattern=RANGES), db: Session = Depends(get_db)): + start, end = _bounds(range) + apps = stats.top_apps(db, start, end) + now = int(time.time()) + known = sum(a["total"] for a in apps if a["category"] not in ("unknown", "web", "network")) + all_bytes = sum(a["total"] for a in apps) or 1 + return { + "totals": stats.totals3(db), + "range_total": stats.total(db, start, end), + "rate": {"flow_up": engine.total_rate[0], "flow_down": engine.total_rate[1], + "wan_up": poller.wan_rate[0], "wan_down": poller.wan_rate[1]}, + "online": stats.online_count(db), + "hosts_total": db.query(Host).count(), + "identified_ratio": known / all_bytes, + "top_apps": apps[:10], + "categories": stats.top_categories(apps), + "top_hosts": stats.top_hosts(db, start, end, limit=10), + "trend": stats.trend(db, _trend_gran(range), start, end), + "realtime": stats.trend(db, "minute", now - 3600, now + 1), + "router": poller.status(), + } + + +@router.get("/trend") +def trend(range: str = Query("today", pattern=RANGES), gran: str = Query(None, pattern="^(minute|hour|day)$"), + host: str | None = None, app: str | None = None, db: Session = Depends(get_db)): + start, end = _bounds(range) + return stats.trend(db, gran or _trend_gran(range), start, end, host, app) + + +@router.get("/hosts") +def hosts(db: Session = Depends(get_db)): + rows = stats.all_hosts(db) + top = stats.top_app_per_host(db, *_bounds("today")) + for r in rows: + r["top_app"] = top.get(r["key"]) + return rows + + +@router.get("/hosts/{key:path}/detail") +def host_detail(key: str, range: str = Query("today", pattern=RANGES), db: Session = Depends(get_db)): + start, end = _bounds(range) + meta = stats.host_meta(db, [key])[key] + if meta["first_seen"] is None and stats.total(db, *_bounds("month"), host=key)["total"] == 0: + raise HTTPException(404, "终端不存在") + apps = stats.top_apps(db, start, end, host=key) + lease = poller.leases.get(meta["mac"] or "") or {} + return { + **meta, + "totals": stats.totals3(db, host=key), + "range_total": stats.total(db, start, end, host=key), + "apps": apps, + "categories": stats.top_categories(apps), + "trend": stats.trend(db, _trend_gran(range), start, end, host=key), + "domains": stats.host_domains(db, key, start, end), + "dhcp": {"server": lease.get("server"), "status": lease.get("status"), + "expires_after": lease.get("expires-after")} if lease else None, + } + + +class HostPatch(BaseModel): + alias: str | None = Field(None, max_length=128) + + +@router.patch("/hosts/{key:path}") +def host_patch(key: str, req: HostPatch, db: Session = Depends(get_db)): + h = db.get(Host, key) + if h is None: + raise HTTPException(404, "终端不存在") + h.alias = (req.alias or "").strip() or None + db.commit() + return {"ok": True} + + +@router.get("/apps") +def apps(range: str = Query("today", pattern=RANGES), db: Session = Depends(get_db)): + start, end = _bounds(range) + rows = stats.top_apps(db, start, end) + return {"apps": rows, "categories": stats.top_categories(rows), "range_total": stats.total(db, start, end)} + + +@router.get("/apps/{app_id}/detail") +def app_detail(app_id: str, range: str = Query("today", pattern=RANGES), db: Session = Depends(get_db)): + start, end = _bounds(range) + return { + **stats.app_meta(app_id), + "totals": stats.totals3(db, app=app_id), + "range_total": stats.total(db, start, end, app=app_id), + "hosts": stats.top_hosts(db, start, end, app=app_id), + "trend": stats.trend(db, _trend_gran(range), start, end, app=app_id), + } + + +@router.get("/flow") +def flow(range: str = Query("today", pattern=RANGES), host: str | None = None, + hosts: int = Query(12, ge=3, le=40), apps: int = Query(16, ge=3, le=60), db: Session = Depends(get_db)): + return stats.flow_graph(db, *_bounds(range), max_hosts=hosts, max_apps=apps, host=host) diff --git a/backend/app/security.py b/backend/app/security.py new file mode 100644 index 0000000..f60696e --- /dev/null +++ b/backend/app/security.py @@ -0,0 +1,57 @@ +import secrets +import time + +from fastapi import Depends, HTTPException +from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer +from jose import JWTError, jwt +from passlib.context import CryptContext + +from app.config import get_settings +from app.database import SessionLocal +from app.models import Setting, User + +pwd = CryptContext(schemes=["bcrypt"], deprecated="auto") +_bearer = HTTPBearer(auto_error=False) +_secret: str | None = None +TOKEN_DAYS = 30 + + +def secret_key() -> str: + global _secret + if _secret: + return _secret + if get_settings().secret_key: + _secret = get_settings().secret_key + return _secret + with SessionLocal() as db: + row = db.get(Setting, "secret_key") + if row is None: + row = Setting(key="secret_key", value=secrets.token_urlsafe(48)) + db.add(row) + db.commit() + _secret = row.value + return _secret + + +def ensure_admin(): + """设置了 ADMIN_PASSWORD 且还没有账号时,创建 admin。""" + pw = get_settings().admin_password + with SessionLocal() as db: + if pw and db.query(User).count() == 0: + db.add(User(username="admin", password_hash=pwd.hash(pw))) + db.commit() + print("[auth] 已按 ADMIN_PASSWORD 创建管理员 admin") + + +def make_token(username: str) -> str: + return jwt.encode({"sub": username, "exp": int(time.time()) + TOKEN_DAYS * 86400}, secret_key(), "HS256") + + +def current_user(cred: HTTPAuthorizationCredentials | None = Depends(_bearer)) -> str: + if cred is None: + raise HTTPException(401, "未登录") + try: + data = jwt.decode(cred.credentials, secret_key(), algorithms=["HS256"]) + except JWTError: + raise HTTPException(401, "登录已过期,请重新登录") + return data["sub"] diff --git a/backend/app/stats.py b/backend/app/stats.py new file mode 100644 index 0000000..2a039ff --- /dev/null +++ b/backend/app/stats.py @@ -0,0 +1,218 @@ +"""统计查询。今日/本周/本月 都从天表汇总(流量落库时同时写分钟/小时/天三张表,不需要 rollup)。""" +import time +from collections import defaultdict + +from sqlalchemy import distinct, func, select + +from app import timeutil +from app.classify import GENERIC_APPS +from app.engine import engine +from app.models import Host, HostDomainDay, TrafficDay, TrafficHour, TrafficMinute + +ONLINE_SECONDS = 300 + + +def _sum_cols(t): + return func.coalesce(func.sum(t.up), 0), func.coalesce(func.sum(t.down), 0), func.coalesce(func.sum(t.flows), 0) + + +def _where(q, t, start, end, host=None, app=None): + q = q.where(t.ts >= start, t.ts < end) + if host: + q = q.where(t.host == host) + if app: + q = q.where(t.app == app) + return q + + +def total(db, start, end, host=None, app=None) -> dict: + up, down, flows = db.execute(_where(select(*_sum_cols(TrafficDay)), TrafficDay, start, end, host, app)).one() + return {"up": int(up), "down": int(down), "total": int(up) + int(down), "flows": int(flows)} + + +def totals3(db, host=None, app=None) -> dict: + return {r: total(db, *timeutil.range_bounds(r), host=host, app=app) for r in ("today", "week", "month")} + + +def app_meta(app_id: str) -> dict: + a = engine.classifier.app_info(app_id) + c = engine.classifier.category_info(a.category) + return {"id": a.id, "name": a.name, "name_en": a.name_en, "category": a.category, + "category_name": c["name"], "category_name_en": c["name_en"]} + + +def top_apps(db, start, end, host=None, limit=None) -> list[dict]: + t = TrafficDay + q = _where(select(t.app, *_sum_cols(t), func.count(distinct(t.host))), t, start, end, host) + q = q.group_by(t.app).order_by((func.sum(t.up) + func.sum(t.down)).desc()) + if limit: + q = q.limit(limit) + out = [] + for app, up, down, flows, hosts in db.execute(q): + rate = engine.app_rate.get(app, (0, 0)) if not host else (0, 0) + out.append({**app_meta(app), "up": int(up), "down": int(down), "total": int(up) + int(down), + "flows": int(flows), "hosts": int(hosts), "rate_up": rate[0], "rate_down": rate[1]}) + return out + + +def top_categories(apps: list[dict]) -> list[dict]: + agg: dict[str, dict] = {} + for a in apps: + c = agg.setdefault(a["category"], {"id": a["category"], "name": a["category_name"], + "name_en": a["category_name_en"], "up": 0, "down": 0, "total": 0, + "apps": 0}) + c["up"] += a["up"] + c["down"] += a["down"] + c["total"] += a["total"] + c["apps"] += 1 + return sorted(agg.values(), key=lambda c: c["total"], reverse=True) + + +def host_meta(db, keys) -> dict[str, dict]: + keys = list(keys) + if not keys: + return {} + now = time.time() + rows = db.scalars(select(Host).where(Host.key.in_(keys))).all() + out = {} + for h in rows: + out[h.key] = {"key": h.key, "mac": h.mac, "ip": h.ip, "hostname": h.hostname, "alias": h.alias, + "name": h.alias or h.hostname or h.ip or h.key, "first_seen": h.first_seen, + "last_seen": h.last_seen, "online": bool(h.last_seen and now - h.last_seen < ONLINE_SECONDS)} + for k in keys: + out.setdefault(k, {"key": k, "mac": None, "ip": k.removeprefix("IP:"), "hostname": None, "alias": None, + "name": k.removeprefix("IP:"), "first_seen": None, "last_seen": None, "online": False}) + rate = engine.host_rate.get(k, (0, 0)) + out[k]["rate_up"], out[k]["rate_down"] = rate + return out + + +def top_hosts(db, start, end, app=None, limit=None) -> list[dict]: + t = TrafficDay + q = _where(select(t.host, *_sum_cols(t)), t, start, end, app=app) + q = q.group_by(t.host).order_by((func.sum(t.up) + func.sum(t.down)).desc()) + if limit: + q = q.limit(limit) + rows = db.execute(q).all() + meta = host_meta(db, [r[0] for r in rows]) + return [{**meta[h], "up": int(u), "down": int(d), "total": int(u) + int(d), "flows": int(f)} + for h, u, d, f in rows] + + +def trend(db, gran: str, start, end, host=None, app=None) -> list[dict]: + """gran: minute | hour | day。返回补齐空桶后的序列。""" + t, step = {"minute": (TrafficMinute, 60), "hour": (TrafficHour, 3600), "day": (TrafficDay, 86400)}[gran] + q = _where(select(t.ts, *_sum_cols(t)), t, start, end, host, app).group_by(t.ts).order_by(t.ts) + data = {int(ts): (int(u), int(d)) for ts, u, d, _f in db.execute(q)} + out = [] + if gran == "day": + cur = timeutil.day_bucket(start) + while cur < end: + u, d = data.get(cur, (0, 0)) + out.append({"ts": cur, "up": u, "down": d}) + cur = timeutil.day_bucket(cur + 86400 + 3600) # +1h 兼容夏令时 + else: + cur = start // step * step + while cur < end: + u, d = data.get(cur, (0, 0)) + out.append({"ts": cur, "up": u, "down": d}) + cur += step + return out + + +def all_hosts(db) -> list[dict]: + """主机监控列表:每台终端的 今日/本周/本月 流量。""" + per: dict[str, dict] = defaultdict(dict) + for r in ("today", "week", "month"): + start, end = timeutil.range_bounds(r) + q = select(TrafficDay.host, *_sum_cols(TrafficDay)).where(TrafficDay.ts >= start, TrafficDay.ts < end) \ + .group_by(TrafficDay.host) + for h, u, d, _f in db.execute(q): + per[h][r] = {"up": int(u), "down": int(d), "total": int(u) + int(d)} + keys = set(per) | set(db.scalars(select(Host.key)).all()) + meta = host_meta(db, keys) + zero = {"up": 0, "down": 0, "total": 0} + rows = [{**meta[k], **{r: per[k].get(r, zero) for r in ("today", "week", "month")}} for k in keys] + rows.sort(key=lambda x: (x["today"]["total"], x["month"]["total"]), reverse=True) + return rows + + +def top_app_per_host(db, start, end) -> dict[str, dict]: + t = TrafficDay + q = _where(select(t.host, t.app, (func.sum(t.up) + func.sum(t.down)).label("b")), t, start, end) \ + .group_by(t.host, t.app) + best: dict[str, tuple[str, int]] = {} + for h, a, b in db.execute(q): + if a in GENERIC_APPS: + continue + if h not in best or b > best[h][1]: + best[h] = (a, int(b)) + return {h: app_meta(a) for h, (a, _b) in best.items()} + + +def host_domains(db, host, start, end, limit=100) -> list[dict]: + t = HostDomainDay + q = select(t.domain, t.app, func.sum(t.bytes), func.max(t.ts)).where(t.host == host, t.ts >= start, t.ts < end) \ + .group_by(t.domain, t.app).order_by(func.sum(t.bytes).desc()).limit(limit) + return [{"domain": d, "app": app_meta(a), "bytes": int(b), "last_day": int(ts)} for d, a, b, ts in db.execute(q)] + + +def unknown_domains(db, start, end, limit=100) -> list[dict]: + t = HostDomainDay + q = select(t.domain, func.sum(t.bytes), func.count(distinct(t.host))) \ + .where(t.ts >= start, t.ts < end, t.app.in_(list(GENERIC_APPS))) \ + .group_by(t.domain).order_by(func.sum(t.bytes).desc()).limit(limit) + return [{"domain": d, "bytes": int(b), "hosts": int(h)} for d, b, h in db.execute(q)] + + +def online_count(db) -> int: + return db.scalar(select(func.count()).select_from(Host).where(Host.last_seen > time.time() - ONLINE_SECONDS)) or 0 + + +def flow_graph(db, start, end, max_hosts=12, max_apps=16, host=None) -> dict: + """流向图(桑基图)数据:终端 → 应用分类 → 应用。超出上限的终端/应用合并为"其他"。""" + t = TrafficDay + q = _where(select(t.host, t.app, *_sum_cols(t)), t, start, end, host).group_by(t.host, t.app) + rows = [(h, a, int(u), int(d)) for h, a, u, d, _f in db.execute(q)] + host_tot: dict[str, int] = defaultdict(int) + app_tot: dict[str, int] = defaultdict(int) + for h, a, u, d in rows: + host_tot[h] += u + d + app_tot[a] += u + d + top_h = set(sorted(host_tot, key=host_tot.get, reverse=True)[:max_hosts]) + top_a = set(sorted(app_tot, key=app_tot.get, reverse=True)[:max_apps]) + meta = host_meta(db, top_h) + + hc: dict[tuple[str, str], list[int]] = defaultdict(lambda: [0, 0]) + ca: dict[tuple[str, str], list[int]] = defaultdict(lambda: [0, 0]) + for h, a, u, d in rows: + hk = h if h in top_h else "__other_hosts" + cat = app_meta(a)["category"] + ak = a if a in top_a else f"__other_apps:{cat}" + for acc, key in ((hc, (hk, cat)), (ca, (cat, ak))): + acc[key][0] += u + acc[key][1] += d + + nodes: dict[str, dict] = {} + + def node(nid, kind, **kw): + nodes.setdefault(nid, {"id": nid, "kind": kind, **kw}) + return nid + + links = [] + for (hk, cat), (u, d) in hc.items(): + hm = meta.get(hk) + src = node(f"h:{hk}", "host", key=None if hk == "__other_hosts" else hk, + name=hm["name"] if hm else None, online=hm["online"] if hm else False) + cm = engine.classifier.category_info(cat) + dst = node(f"c:{cat}", "category", category=cat, name=cm["name"], name_en=cm["name_en"]) + links.append({"source": src, "target": dst, "up": u, "down": d, "value": u + d}) + for (cat, ak), (u, d) in ca.items(): + if ak.startswith("__other_apps:"): + dst = node(f"a:{ak}", "app", app=None, category=cat) + else: + am = app_meta(ak) + dst = node(f"a:{ak}", "app", app=ak, category=cat, name=am["name"], name_en=am["name_en"]) + links.append({"source": f"c:{cat}", "target": dst, "up": u, "down": d, "value": u + d}) + links = [x for x in links if x["value"] > 0] + return {"nodes": list(nodes.values()), "links": links, "total": sum(host_tot.values())} diff --git a/backend/app/timeutil.py b/backend/app/timeutil.py new file mode 100644 index 0000000..b00d73b --- /dev/null +++ b/backend/app/timeutil.py @@ -0,0 +1,44 @@ +"""时间分桶与统计区间(今日 / 本周 / 本月)。周从周一开始,按配置时区计算。""" +import time +from datetime import datetime, timedelta + +from app.config import get_settings + + +def minute_bucket(ts: float) -> int: + return int(ts) // 60 * 60 + + +def hour_bucket(ts: float) -> int: + # 小时按 UTC 对齐;整小时偏移的时区(如 Asia/Shanghai)与本地整点一致 + return int(ts) // 3600 * 3600 + + +def day_bucket(ts: float) -> int: + z = get_settings().zone + d = datetime.fromtimestamp(ts, z) + return int(d.replace(hour=0, minute=0, second=0, microsecond=0).timestamp()) + + +def range_bounds(rng: str, now: float | None = None) -> tuple[int, int]: + """返回 [start, end) 的 epoch 秒。rng: today | yesterday | week | month | last7 | last30。""" + now = now or time.time() + z = get_settings().zone + d = datetime.fromtimestamp(now, z).replace(hour=0, minute=0, second=0, microsecond=0) + end = int(now) + 1 + if rng == "today": + start = d + elif rng == "yesterday": + start = d - timedelta(days=1) + end = int(d.timestamp()) + elif rng == "week": + start = d - timedelta(days=d.weekday()) + elif rng == "month": + start = d.replace(day=1) + elif rng == "last7": + start = d - timedelta(days=6) + elif rng == "last30": + start = d - timedelta(days=29) + else: + raise ValueError(f"unknown range {rng}") + return int(start.timestamp()), end diff --git a/backend/requirements.txt b/backend/requirements.txt new file mode 100644 index 0000000..cc74ad2 --- /dev/null +++ b/backend/requirements.txt @@ -0,0 +1,13 @@ +fastapi==0.115.6 +uvicorn[standard]==0.34.0 +sqlalchemy==2.0.36 +pymysql==1.1.1 +cryptography==44.0.0 +pydantic==2.10.4 +pydantic-settings==2.7.1 +python-jose[cryptography]==3.3.0 +passlib[bcrypt]==1.7.4 +bcrypt==4.2.1 +httpx==0.28.1 +apscheduler==3.11.0 +pyyaml==6.0.2 diff --git a/backend/tests/conftest.py b/backend/tests/conftest.py new file mode 100644 index 0000000..be2e9f4 --- /dev/null +++ b/backend/tests/conftest.py @@ -0,0 +1,18 @@ +import os +import sys +import tempfile + +_tmp = tempfile.mkdtemp(prefix="rosdpi-test-") +os.environ["DATABASE_URL"] = f"sqlite:///{_tmp}/test.db" +os.environ["LAN_CIDRS"] = "192.168.88.0/24,2408:8000:1:2::/64" +os.environ["ROS_URL"] = "" +os.environ["ADMIN_PASSWORD"] = "" +os.environ["TZ"] = "Asia/Shanghai" +os.environ["IPFIX_PORT"] = "0" +os.environ["TZSP_PORT"] = "0" +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) + +from app.database import init_db # noqa: E402 + +init_db(retries=1) diff --git a/backend/tests/packets.py b/backend/tests/packets.py new file mode 100644 index 0000000..3028d83 --- /dev/null +++ b/backend/tests/packets.py @@ -0,0 +1,88 @@ +"""构造 IPFIX / NetFlow v9 / TZSP-DNS 测试包(测试和 scripts/simulate.py 共用)。""" +import ipaddress +import struct +import time + +# (field_id, length) — 模仿 RouterOS IPFIX 模板的主要字段 +V4_FIELDS = [(8, 4), (12, 4), (7, 2), (11, 2), (4, 1), (1, 8), (2, 8), (56, 6), (225, 4), (226, 4)] +V6_FIELDS = [(27, 16), (28, 16), (7, 2), (11, 2), (4, 1), (1, 8), (2, 8)] + + +def _rec_v4(src, dst, sport, dport, proto, nbytes, pkts=1, mac="00:00:00:00:00:00", post_src="0.0.0.0", + post_dst="0.0.0.0"): + return (ipaddress.IPv4Address(src).packed + ipaddress.IPv4Address(dst).packed + + struct.pack("!HHBQQ", sport, dport, proto, nbytes, pkts) + + bytes.fromhex(mac.replace(":", "")) + + ipaddress.IPv4Address(post_src).packed + ipaddress.IPv4Address(post_dst).packed) + + +def _rec_v6(src, dst, sport, dport, proto, nbytes, pkts=1): + return (ipaddress.IPv6Address(src).packed + ipaddress.IPv6Address(dst).packed + + struct.pack("!HHBQQ", sport, dport, proto, nbytes, pkts)) + + +def _tmpl(tid, fields): + body = struct.pack("!HH", tid, len(fields)) + b"".join(struct.pack("!HH", f, n) for f, n in fields) + return body + + +def _set(set_id, body): + pad = (-len(body)) % 4 + body += b"\0" * pad + return struct.pack("!HH", set_id, len(body) + 4) + body + + +def ipfix(flows_v4=(), flows_v6=(), with_template=True, domain=0, seq=1): + """flows_v4: [dict(src,dst,sport,dport,proto,nbytes,mac?,post_dst?...)]""" + sets = b"" + if with_template: + sets += _set(2, _tmpl(256, V4_FIELDS) + _tmpl(257, V6_FIELDS)) + if flows_v4: + sets += _set(256, b"".join(_rec_v4(**f) for f in flows_v4)) + if flows_v6: + sets += _set(257, b"".join(_rec_v6(**f) for f in flows_v6)) + hdr = struct.pack("!HHIII", 10, 16 + len(sets), int(time.time()), seq, domain) + return hdr + sets + + +def netflow9(flows_v4=(), with_template=True, source_id=0): + sets = b"" + count = 0 + if with_template: + sets += _set(0, _tmpl(300, V4_FIELDS)) + count += 1 + if flows_v4: + sets += _set(300, b"".join(_rec_v4(**f) for f in flows_v4)) + count += len(flows_v4) + hdr = struct.pack("!HHIIII", 9, count, 1000, int(time.time()), 1, source_id) + return hdr + sets + + +def _name(n): + return b"".join(bytes([len(p)]) + p.encode() for p in n.split(".")) + b"\0" + + +def dns_response(qname, ips, cnames=(), ttl=60): + an = [] + owner = b"\xc0\x0c" + for c in cnames: + rd = _name(c) + an.append(owner + struct.pack("!HHIH", 5, 1, ttl, len(rd)) + rd) + for ip in ips: + a = ipaddress.ip_address(ip) + an.append(owner + struct.pack("!HHIH", 1 if a.version == 4 else 28, 1, ttl, len(a.packed)) + a.packed) + hdr = struct.pack("!HHHHHH", 0x1234, 0x8180, 1, len(an), 0, 0) + return hdr + _name(qname) + struct.pack("!HH", 1, 1) + b"".join(an) + + +def tzsp_dns(client, qname, ips, cnames=(), server="192.168.88.1", vlan=None): + payload = dns_response(qname, ips, cnames) + udp = struct.pack("!HHHH", 53, 40000, 8 + len(payload), 0) + payload + iph = struct.pack("!BBHHHBBH4s4s", 0x45, 0, 20 + len(udp), 0, 0, 64, 17, 0, + ipaddress.IPv4Address(server).packed, ipaddress.IPv4Address(client).packed) + eth = b"\x11" * 6 + b"\x22" * 6 + if vlan is not None: + eth += struct.pack("!HH", 0x8100, vlan) + eth += b"\x08\x00" + # TZSP v1, type 0 (received), encap 1 (Ethernet),带一个填充和结束标记 + return b"\x01\x00\x00\x01" + b"\x00" + b"\x01" + eth + iph + udp diff --git a/backend/tests/test_api.py b/backend/tests/test_api.py new file mode 100644 index 0000000..b747f6a --- /dev/null +++ b/backend/tests/test_api.py @@ -0,0 +1,66 @@ +import time + +from fastapi.testclient import TestClient + +from app.engine import engine +from app.main import app + + +def test_api_flow(): + with TestClient(app) as c: + assert c.get("/api/overview").status_code == 401 + assert c.get("/api/auth/status").json() == {"initialized": False} + tok = c.post("/api/auth/setup", json={"username": "admin", "password": "secret1"}).json()["token"] + assert c.post("/api/auth/setup", json={"password": "secret2"}).status_code == 400 + assert c.post("/api/auth/login", json={"username": "admin", "password": "bad"}).status_code == 401 + h = {"Authorization": f"Bearer {tok}"} + + with engine.lock: + engine.add_flow(dict(src="192.168.88.50", dst="8.8.4.4", sport=1, dport=443, proto=6, bytes=777, + src_mac="AA:00:00:00:00:50"), time.time()) + engine.flush() + + ov = c.get("/api/overview?range=week", headers=h).json() + assert ov["totals"]["today"]["total"] >= 777 + assert any(x["key"] == "AA:00:00:00:00:50" for x in ov["top_hosts"]) + assert len(ov["realtime"]) >= 60 + + hosts = c.get("/api/hosts", headers=h).json() + assert any(x["key"] == "AA:00:00:00:00:50" for x in hosts) + assert c.patch("/api/hosts/AA:00:00:00:00:50", json={"alias": "书房电脑"}, headers=h).json()["ok"] + d = c.get("/api/hosts/AA:00:00:00:00:50/detail?range=month", headers=h).json() + assert d["name"] == "书房电脑" and d["apps"][0]["id"] == "https" + assert c.get("/api/hosts/IP:1.1.1.1/detail", headers=h).status_code == 404 + + assert c.get("/api/apps/https/detail", headers=h).json()["hosts"][0]["key"] == "AA:00:00:00:00:50" + + bad = c.post("/api/rules", json={"kind": "domain", "pattern": "x", "app_id": "douyin"}, headers=h) + assert bad.status_code == 400 + r = c.post("/api/rules", json={"kind": "cidr", "pattern": "8.8.4.0/24", "app_id": "google"}, headers=h) + assert r.status_code == 200 + assert engine.classifier.classify("8.8.4.4", 6, 443, None, None) == "google" + assert c.delete(f"/api/rules/{r.json()['id']}", headers=h).json()["ok"] + + s = c.put("/api/settings", json={"lan_cidrs": "192.168.88.0/24\n10.0.0.0/8"}, headers=h).json() + assert s["lan_cidrs"] == "192.168.88.0/24,10.0.0.0/8" + assert c.put("/api/settings", json={"lan_cidrs": "nope"}, headers=h).status_code == 400 + assert c.get("/api/system", headers=h).json()["collector"]["flows"] >= 1 + assert len(c.get("/api/meta", headers=h).json()["apps"]) > 50 + + +def test_flow_graph(): + from app import stats, timeutil + from app.database import SessionLocal + with engine.lock: + engine.add_flow(dict(src="192.168.88.60", dst="91.108.4.1", sport=1, dport=443, proto=6, bytes=300, + src_mac="AA:00:00:00:00:60"), time.time()) + engine.flush() + with SessionLocal() as db: + g = stats.flow_graph(db, *timeutil.range_bounds("today"), max_hosts=1, max_apps=1) + ids = {n["id"] for n in g["nodes"]} + assert all(l["source"] in ids and l["target"] in ids for l in g["links"]) + assert "h:__other_hosts" in ids or len([n for n in g["nodes"] if n["kind"] == "host"]) == 1 + # 守恒:终端→分类 的总量 == 分类→应用 的总量 == total + hc = sum(l["value"] for l in g["links"] if l["source"].startswith("h:")) + ca = sum(l["value"] for l in g["links"] if l["source"].startswith("c:")) + assert hc == ca == g["total"] diff --git a/backend/tests/test_engine.py b/backend/tests/test_engine.py new file mode 100644 index 0000000..c0b9cdf --- /dev/null +++ b/backend/tests/test_engine.py @@ -0,0 +1,92 @@ +import time +from datetime import datetime +from types import SimpleNamespace +from zoneinfo import ZoneInfo + +from packets import ipfix, tzsp_dns + +from app import stats, timeutil +from app.classify import Classifier +from app.database import SessionLocal +from app.engine import Engine + +Z = ZoneInfo("Asia/Shanghai") + + +def test_classifier_longest_suffix_and_cname(): + c = Classifier() + assert c.classify("1.1.1.1", 6, 443, "v26-web.douyinvod.com", None) == "douyin" + assert c.classify("1.1.1.1", 6, 443, "y.qq.com", None) == "qq_music" # 比 qq.com 更具体 + assert c.classify("1.1.1.1", 6, 443, "www.qq.com", None) == "qq" + assert c.classify("1.1.1.1", 6, 443, "unknown.example", "x.bilivideo.com") == "bilibili" + assert c.classify("91.108.4.5", 6, 443, None, None) == "telegram" + assert c.classify("9.9.9.9", 17, 443, None, None) == "quic" + assert c.classify("9.9.9.9", 6, 12345, None, None) == "other" + + +def test_custom_rule_overrides(): + c = Classifier() + c.load_custom([SimpleNamespace(kind="domain", pattern="douyin.com", app_id="myapp", app_name="我的", + category="video")]) + assert c.classify("1.1.1.1", 6, 443, "www.douyin.com", None) == "myapp" + assert c.apps["myapp"].name == "我的" + + +def _engine(): + e = Engine() + e.set_lan("192.168.88.0/24,2408:8000:1:2::/64") + return e + + +def test_direction_dns_and_mac_learning(): + e = _engine() + e.on_tzsp(tzsp_dns("192.168.88.10", "www.bilibili.com", ["5.5.5.5"])) + now = time.time() + up = e.add_flow(dict(src="192.168.88.10", dst="5.5.5.5", sport=1, dport=443, proto=6, bytes=100, + src_mac="AA:00:00:00:00:01"), now) + down = e.add_flow(dict(src="5.5.5.5", dst="192.168.88.10", sport=443, dport=1, proto=6, bytes=900), now) + assert up == ("AA:00:00:00:00:01", "bilibili", "up") + assert down == ("AA:00:00:00:00:01", "bilibili", "down") + # 内网互访、路由器自身流量不计 + assert e.add_flow(dict(src="192.168.88.10", dst="192.168.88.20", proto=6, bytes=5), now) is None + assert e.add_flow(dict(src="100.64.1.2", dst="8.8.8.8", proto=17, bytes=5), now) is None + + +def test_post_nat_download(): + e = _engine() + r = e.add_flow(dict(src="5.5.5.5", dst="100.64.1.2", post_dst="192.168.88.30", sport=443, dport=1, proto=6, + bytes=10), time.time()) + assert r == ("IP:192.168.88.30", "https", "down") + + +def test_flush_and_ranges(): + e = _engine() + e.on_tzsp(tzsp_dns("192.168.88.11", "store.steampowered.com", ["6.6.6.6"])) + e.on_ipfix(ipfix([dict(src="192.168.88.11", dst="6.6.6.6", sport=1, dport=443, proto=6, nbytes=1000, + mac="AA:00:00:00:00:11"), + dict(src="192.168.88.11", dst="7.7.7.7", sport=1, dport=443, proto=6, nbytes=50, + mac="AA:00:00:00:00:11")]), "10.0.0.1") + now = time.time() + e.flush(now) + e.add_flow(dict(src="6.6.6.6", dst="192.168.88.11", sport=443, dport=1, proto=6, bytes=4000), now) + e.flush(now) # 同一分钟再写一次,应累加 + with SessionLocal() as db: + t = stats.total(db, *timeutil.range_bounds("today"), host="AA:00:00:00:00:11") + assert t == {"up": 1050, "down": 4000, "total": 5050, "flows": 3} + apps = {a["id"]: a for a in stats.top_apps(db, *timeutil.range_bounds("month"), host="AA:00:00:00:00:11")} + assert apps["steam"]["total"] == 5000 and apps["https"]["total"] == 50 + hosts = {h["key"]: h for h in stats.all_hosts(db)} + assert hosts["AA:00:00:00:00:11"]["today"]["total"] == 5050 + assert hosts["AA:00:00:00:00:11"]["online"] + doms = stats.host_domains(db, "AA:00:00:00:00:11", *timeutil.range_bounds("today")) + assert doms[0]["domain"] == "store.steampowered.com" and doms[0]["bytes"] == 5000 + + +def test_range_bounds_week_starts_monday(): + # 2026-10-21 是周三 + now = datetime(2026, 10, 21, 15, 0, tzinfo=Z).timestamp() + start, _ = timeutil.range_bounds("week", now) + assert datetime.fromtimestamp(start, Z) == datetime(2026, 10, 19, tzinfo=Z) + start, _ = timeutil.range_bounds("month", now) + assert datetime.fromtimestamp(start, Z) == datetime(2026, 10, 1, tzinfo=Z) + assert timeutil.day_bucket(now) == datetime(2026, 10, 21, tzinfo=Z).timestamp() diff --git a/backend/tests/test_parsers.py b/backend/tests/test_parsers.py new file mode 100644 index 0000000..de2141c --- /dev/null +++ b/backend/tests/test_parsers.py @@ -0,0 +1,72 @@ +from packets import dns_response, ipfix, netflow9, tzsp_dns + +from app.collector.ipfix import FlowDecoder +from app.collector.tzsp import parse_dns_response, parse_tzsp_dns + +F1 = dict(src="192.168.88.10", dst="1.2.3.4", sport=50000, dport=443, proto=6, nbytes=1500, + mac="AA:BB:CC:00:00:01") + + +def test_ipfix_template_and_data(): + d = FlowDecoder() + recs = d.decode(ipfix([F1]), "10.0.0.1") + assert len(recs) == 1 + r = recs[0] + assert (r["src"], r["dst"], r["sport"], r["dport"], r["proto"], r["bytes"]) == \ + ("192.168.88.10", "1.2.3.4", 50000, 443, 6, 1500) + assert r["src_mac"] == "AA:BB:CC:00:00:01" + assert r["post_dst"] == "0.0.0.0" + + +def test_ipfix_data_before_template_is_dropped_then_decoded(): + d = FlowDecoder() + assert d.decode(ipfix([F1], with_template=False), "x") == [] + assert d.stats["no_template"] == 1 + d.decode(ipfix(with_template=True), "x") + assert len(d.decode(ipfix([F1, F1], with_template=False), "x")) == 2 + + +def test_templates_are_per_exporter(): + d = FlowDecoder() + d.decode(ipfix(), "a") + assert d.decode(ipfix([F1], with_template=False), "b") == [] + + +def test_ipfix_ipv6(): + d = FlowDecoder() + recs = d.decode(ipfix(flows_v6=[dict(src="2408:8000:1:2::10", dst="2400:3200::1", sport=1, dport=443, + proto=17, nbytes=99)]), "x") + assert recs[0]["src"] == "2408:8000:1:2::10" and recs[0]["bytes"] == 99 + + +def test_netflow_v9(): + d = FlowDecoder() + recs = d.decode(netflow9([F1]), "x") + assert len(recs) == 1 and recs[0]["dst"] == "1.2.3.4" + + +def test_garbage_does_not_raise(): + d = FlowDecoder() + for junk in (b"", b"\x00\x0a", b"\x00\x0a\x00\x20" + b"\xff" * 40, b"\x00\x05" + b"\x00" * 30): + assert d.decode(junk, "x") == [] + + +def test_dns_response_with_cname(): + msg = dns_response("www.douyin.com", ["1.1.1.1", "2400::1"], cnames=["www.douyin.com.w.cdngslb.com"]) + qname, ips, cnames = parse_dns_response(msg) + assert qname == "www.douyin.com" + assert [ip for ip, _ in ips] == ["1.1.1.1", "2400::1"] + assert cnames == ["www.douyin.com.w.cdngslb.com"] + + +def test_tzsp_dns_and_vlan(): + for vlan in (None, 20): + ans = parse_tzsp_dns(tzsp_dns("192.168.88.10", "api.bilibili.com", ["5.5.5.5"], vlan=vlan)) + assert ans.client == "192.168.88.10" + assert ans.qname == "api.bilibili.com" + assert ans.ips[0][0] == "5.5.5.5" + + +def test_tzsp_ignores_non_dns(): + assert parse_tzsp_dns(b"\x01\x00\x00\x01\x01" + b"\x00" * 10) is None + assert parse_tzsp_dns(b"garbage") is None diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..23a8442 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,39 @@ +# ROS-DPI:RouterOS 终端流量 / 应用统计 +# 使用:cp .env.example .env,修改密码后 docker compose up -d +services: + ros-dpi: + image: ghcr.io/suyijun8182/ros-dpi:latest + # 本地构建时改用:build: . + container_name: ros-dpi + restart: unless-stopped + depends_on: + mysql: + condition: service_healthy + env_file: .env + environment: + DATABASE_URL: mysql+pymysql://rosdpi:${MYSQL_PASSWORD}@mysql:3306/rosdpi?charset=utf8mb4 + ports: + - "8080:8080/tcp" + - "2055:2055/udp" # IPFIX / NetFlow + - "37008:37008/udp" # TZSP(DNS 镜像) + volumes: + - ./data:/app/data + + mysql: + image: mysql:8.4 + container_name: ros-dpi-mysql + restart: unless-stopped + environment: + MYSQL_DATABASE: rosdpi + MYSQL_USER: rosdpi + MYSQL_PASSWORD: ${MYSQL_PASSWORD} + MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} + TZ: ${TZ:-Asia/Shanghai} + command: ["--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci", "--innodb-buffer-pool-size=256M"] + volumes: + - ./mysql:/var/lib/mysql + healthcheck: + test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-u", "root", "-p${MYSQL_ROOT_PASSWORD}"] + interval: 10s + timeout: 5s + retries: 20 diff --git a/docs/RouterOS配置.md b/docs/RouterOS配置.md new file mode 100644 index 0000000..dbcb775 --- /dev/null +++ b/docs/RouterOS配置.md @@ -0,0 +1,71 @@ +# RouterOS 配置说明 + +下文以容器主机 IP `192.168.88.10`、路由器 LAN `192.168.88.1` 为例。命令适用于 RouterOS 7。 + +## 1. 流量采集(必需) + +```routeros +/ip traffic-flow set enabled=yes interfaces=all active-flow-timeout=1m inactive-flow-timeout=15s +/ip traffic-flow target add dst-address=192.168.88.10 port=2055 version=ipfix +``` + +- `interfaces=all`:上行包在 LAN 口入方向采集,下行包在 WAN 口入方向采集,两者合起来才完整。ROS-DPI 会按 LAN 网段判断方向,并自动丢弃内网互访和路由器自身的流量,不会重复计数。 +- `active-flow-timeout=1m`:长连接每分钟上报一次,统计和速率才能接近实时。 +- 也可用 `version=9`(NetFlow v9),两者都支持。 + +**FastTrack**:被 FastTrack 的连接可能不经过 Traffic Flow,导致统计偏少。对比概览页的“WAN 实时速率”(来自接口计数)和“采集速率”可以判断。如果差距明显,可以缩小 FastTrack 范围,或者关闭它(会增加 CPU 占用)。 + +## 2. DNS 嗅探(应用识别,强烈建议) + +```routeros +/ip firewall mangle add chain=output protocol=udp src-port=53 action=sniff-tzsp sniff-target=192.168.88.10 sniff-target-port=37008 comment=ROSDPI-DNS +/ip firewall mangle add chain=forward protocol=udp src-port=53 action=sniff-tzsp sniff-target=192.168.88.10 sniff-target-port=37008 comment=ROSDPI-DNS +``` + +- `output`:路由器自己作为 DNS 服务器时,发给终端的应答。 +- `forward`:终端直连外部 DNS(如 223.5.5.5)时的应答。 +- 只镜像 DNS 应答,数据量很小。 + +提高识别率: + +- 在 DHCP 里把 DNS 下发为路由器地址,并开启 `/ip dns set allow-remote-requests=yes`。 +- 浏览器 / 系统里的“安全 DNS(DoH)”会绕过嗅探,可以在终端上关闭,或用防火墙拦截常见 DoH 地址。 + +## 3. 只读 API 账号(可选) + +```routeros +/user group add name=rosdpi policy=read,rest-api,api,!write,!policy,!sensitive +/user add name=rosdpi group=rosdpi password=<强密码> address=192.168.88.10 +/ip service set www-ssl disabled=no # REST API 走 HTTPS(或用 www 的 HTTP) +``` + +然后在 `.env` 设置: + +``` +ROS_URL=https://192.168.88.1 +ROS_USER=rosdpi +ROS_PASSWORD=<强密码> +``` + +用于:DHCP 主机名、ARP / IPv6 邻居(IP↔MAC)、WAN 口实时速率、路由器 CPU / 内存,以及自动发现 LAN 的 IPv6 公网前缀。ROS-DPI 只发 GET 请求,不会修改路由器配置。 + +> 修改了这个用户组的权限后,已登录的会话仍沿用旧权限,需要重启容器或执行 `/user active request-logout [find name=rosdpi]`。 + +## 4. LAN 网段 + +ROS-DPI 用 LAN 网段判断哪一端是终端。默认是三个私网段,以下情况需要手动修改(`.env` 的 `LAN_CIDRS`,或 **系统设置 → 网络**): + +- **双 NAT**(WAN 口也是 192.168.x.x 等私网地址):只填内网实际网段,否则 WAN 侧地址会被当成终端。 +- **IPv6**:配置了 ROS API 时会自动加入 LAN 接口上的公网前缀;否则需要手动填写。 + +## 排错 + +**系统设置 → 运行状态** 会显示: + +| 现象 | 检查 | +|---|---| +| 流量采集一直“等待数据” | 容器的 udp/2055 是否映射;主机防火墙;`/ip traffic-flow target print` | +| 已处理流很多,但全部“丢弃” | LAN 网段填错 | +| DNS 应答为 0 | mangle 规则是否命中(`/ip firewall mangle print stats`);udp/37008 是否映射 | +| 识别率低 | 终端是否在用 DoH;在 **识别规则 → 未识别域名 Top** 里补规则 | +| 统计明显偏少 | FastTrack,见上文 | diff --git a/docs/images/flow-light.png b/docs/images/flow-light.png new file mode 100644 index 0000000000000000000000000000000000000000..91cd2b0bfcb169c58e16178648c88518c6dfcae9 GIT binary patch literal 345419 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

G+y$GeBSh_wSa1E@2U>|r7F*>>$Tzu{~~I&##x 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

51d02!JRKin2EUZI*=H-Hz|$gUXmze-^ES znCzOg7IX}?W406C-X_bXTa_&7VQUMuA*RcWktgKg^H5-Pe9S9synZm@#WaG_S;E6N zH^N@y3L|vnbcn+s1AKDqpk8YzLcbdjbGzn%4I@klaJ_qv@4L9FxHFK_e66>rG!bg~ z8;7Ku2j(XKCfbZ7Tv8NWiJ*{xXdoFdJm!cf!}r!GRO+z5yTUxR;YF#>x%dY8;cd!V zX#2je5|K@l(ONSz*?{IyK>&RX zo=Av)tWBZx53&_?XG&D3#l!yuB1`N)uDD*U*4V%Mi7V~k% zLneBn#b8f#t$?961PURx&7zF*kW~X;8q@a*zRnactLmCS^Q}AHV69>`0E>u6x)Uqz z2QY4G0E`^Tugr98WN!3a(jTH-8rF;)$$!@3j5hUa*2~-qG@LH7+zmCGf}C7)zqBdy zD?ffg-_**oMoB;rwnR=G!u0xHTV+$SZ0uTR?>}*Py=EzbHN9+Phu?qNwJFxYrM&~r zUPasx+N$MaNou@$mIAkdfPOJZce6xujoygA05~Iqv`7uZZ6hf(oXo=V2#Iyf-Vmap z*d$A_z0WdsKSRFTo&wu+3qa{ge^E<7xB4V@`Mot__2p)ariL(!Tspp_~=Pw z>iTID2kx@ztWc$9aypb|iCQxqh5%TdMF-FIn1z^nL{hqPawJu%S%ZgQjL?JhJs*IE zr}V}na@b0tb+v3DKNTsj;s@As63;{2=#pko_oWHQ?fQ;@d+LqSK4VH&EQif5Gg_t; z1RI|qHi!nsWz2QgGxl?zJ(A$mgdk;W_X%9?K%*op%Nw3tNX>|A4`vrZ7w`;=g`fEQ zZn;Blzau7&UWQQ`N}N=s?p9V7XF+}C-hTV3^IF^#0<1(rLVq7as55el)c=RLe`d;mNjnVdW> zv|0v!ie+j%P{cJ)IVE^i-Hm|=^M~!+5lG$UrDtGhx zg`h=7(@spyluy8BF^?{4t+blZpw&Jq!fQS$ylDd?4sMf4X9%difg87QO1p7nk_=1l z@1T=`*{07+Fkai6BDy%t>o2yLMI4A5By#pkPL&R-hoO^8I5m3-d^)I)W&!SyzQ!t* zA&RkOD?4QjH$Uk&0)S~eqNRh|+2$VR)9y@GWiO?g$u3sKfW#%upXEKPQtx+~mhINXxE<&{jp=HaZu50S> zp%@^Drcvt=o(Rv=a|q8GzXOR!AvkJ!$}I2V^6Tivdkwt{y=rv|wFWr%N4+KQqE{Ml zyGaB?FZW>753zHzjN++#xcikSMhr88jAc^(21BxDtnOc6$V1FAjA8oxni+BcTGw!M zZv=if06%&WXZ2e=bbMXWDD1e;wwn@R>|uoHk^RZOKw4E!{QU~#iv ze6)k8#t{G-==&eYE|CWoT}}8^*c})`L1et>$FbiraR#!5f0^g9jA~*EQ}2THr5iD! zj{0qQ>`3vMKX2$+@+}o1$#+mm-NqI>iCl@Q>!fr+>ru=(4oR+!O{G^H4SG&k z+`CzpTg$`#D(Yp!bLU5M7eckaZnxN8AxGnz9A!%V6G^3dTzsKgAr>Swf9Q?JG&OcTmfU&!~@p`Vzcc zhAzT9X3o!+jxE~vT!^sX0hKse!q1)H^KbRdbDEB!K8q*GiH^Pbtg%<`n-8k4;5t|e zqj54+GsnT#U?1DKB_<4p$$Mh}O4JrD78P!X|E^W+5JKKW+|WBYDQgBbujoRCzu>mC zRg}_*5wAp73n|;Tlu5Z#P36i^3yr}_z9F}8&5v~gf`so!UVQfn8U~ZlHfafHrt6|y z(u4X4j4fx|QG#s2#$dr4x{^4jfjL;KLKxw&rVI~7>I6PgqH!z2N-3=z*_%)iR%k8j zREVnE%j}&;l%McOIoxYH7RF+Q3Q2uCo>#3kC`uoKmdv9)Af4MQ-0V%&`ijPj$iPUT zr4dnatF=J3j_!h8jqoGA>^T}6Kz?8n1-%nFw?#x1Twpe$}V{nGF1go zIK1UY=FMFBwh6VYFHp$herJo@{i{Kk2-D&qI`Atan6(;B^9cWrkS#8I{NwDJ=Gr#{ z`63!7d&Z(MISebaa~Xatf`5pe2Bp(|y97xN-!lK8C6T2|#hNs`!_R=o!mH{0OcxW< zbDj0=S8|QSv21{1tKHGm%`DZLTA4tZp6FY=^MA ztx+TUy=AhxsH}|;W98LCtbu;8s&_N$86QjRr%D(@#=Y}MOu$VD8Fy!L(vCBPu#T?ER#rdot*I`e>P=IV#jB4w2Hlr!wY_vQJA$&gzu8PaQm&+NvQQLr@i#`J8iCjx?7 zpzkE;){hc#T254ZOtvFTin@oH=mhQeHNGQNjM0VSu0>iz5YBSUME?U7Mrt8Nd8txr z@%QgB$k)=E4)T^V@ASC^+%N#B_!75++pt^%YFesXdih7RXq*#~;YPOwtY*?rGBecv ziJTMIhM%~<5or=q=98{w&fGSnkrL(jLP;XezyqUZ*?S3KHAUD7x-9sfOPwuSS0iQX2jxsV~UDPK28Nlx5^X zJO1(;#6tFsR-f&q_`Qb(=@9*|_$lOIdiDEc9MyDBB|mh*zmpdbD|EUD(LnH3TM1rbWdv>3T{as6S2TxmOC?U66Qp4k z-s9y-S=m&vUUp&FlufgA^;RY1l%O1tLS7cYWUG~(@HvM<>JZ~VW7j&2)JjR4(HB?V zFP(%UIYCKCTY~3-qPYqIb-SSJ6{(QPb=@~~kSsZp>xZjYlYjWA!Zo#gUqBFV&$rfN zIH|5G5Y@|u{l1t!CZKmb=<{bb3cuuwt^&X3GrfIGQE?ngERLU><3qw|yo*Rzulv+-$oD-VV7*0IV7(`EIj>;RR0yfN~Wz@4I z+5B)>pcUwXE!)E$yZ97cSdFxzK|IAlrXQ;C>0tuf<$t??He`srVi5)!51ht^Vu!pr zU32(|RL*Z)20{5Gn#ZVCXvGfAHmZ6P?6!}F(W!c2n}2dcplsr#raLtnH-jLmV0wng5~Y8f4dLGnjyc9<1ZFuad#vFs1xnQ zD_0j6Ls|XN&jc_bFS~Vo8*%p_Q|ZpU&-elP=54N$XC*I_&3Q$_xl|KmUJ@7_GzJN? zk034_a+xyV{d)n!_l6<^?E65Cs#V2I*E96l1e3 zC;HRLAK^nmEA8RFs>Imf7*o!^e19p`)IMu;;74t!5%n7-kY?$?Gqjv7VSmAz1yx{b zQ^PK0bN0`}avDe30o5hEZ~1|e23Fo8B6wW**Xhs>gY#yu*AGtGzOFzB zaQ*;~->89Bw?CW9Q%+z2_ zp-B1qUgWF0LyIHkvp=amk$UA{k2Q^}oPEwN(0*$8UGLx}#hn`3j1s{JwGn2FA)xmI zYmAWkmr5?vt8lgCOAY7uA7!df$ z;iDhYVS-G#k+a0Myka33=)H<~V0tGy^ritq33i1H7&@>qwz>+S6vNstKr%pH+IEAr zfx{uv09c`|wguSY;mN+y(?!P_xSwr*^(8ROl*o}(V}?Ql#%^3J9e5*%EY_6p3d@2z z&|;=W3eN1^v_Y=A=t{mtXC=R(vBhTBFdsTTxK~6^)E^UaChjXA*jz`(6as#m zA6IfVEmXd=5V9^N(f&*-8#k0Rxy;#zr8E09cEqm5MctV!_r_ckJ_QAJp0;8_X1|qv z|6KF)`qD0 zd}^!MovvSq5OVvDvU3xObOx~rGzG%By~s&i{O8HW_@^R~yi%~=*LlJR0UnRRQ}#@jzkr#YDw**6rET4oBhQ>GaV$Y|Qd2VZpiSg!*?{`tH*+RXf>Rjp6?LIarNxkB(c4f$58SsUy`?jj z{prLeT3CkGQH&(Kh`!{75ep+TeN>Ni8Z15WIV|b4XfVSx6Ma=j#>GGu3wr7ysDhn{ zUNuYVmXwJ+{kob%2|ruR^Z8hP)1-ZLnfde_5zR+-gx5--xMj7aM31O9Wm5<6^KdN^ zOsV{c!N!=762i=dW-QleNabhQ-m8%oIdzTWyy2_xtd7_2CA$zM;q6V1mN-Aa}+jhbPIPR(vcen z3ub3myf{(rKZ+TCF_jq8QCO533%7&NsCLAAJF%({MIw+bssJ>AMFK4qZ*C%Iv2M!xClCL z;12B2(fu)*hC$AGKw>0TRW~OUJ9v&V#>i~!!UOZCHG4I!4sL@5rjYJm z$Y+|5V9cu@t^UL^t?$Y7l{C~;ro!QosbkuPvCf`_4USGOscYR@GyzV3-Vywx`Vot_ zqgip%dc;8=gqL!pJ%qNArhl&Z+;;(@;Zvf#V`CmGN22VM|9;F=W`$XJQU-0e&cDD-5s_b6G9`~0>^n0<4d z(l6Fg7PP;D8~A&Eh*;8aJPUanVyo#C&fM4ne(%NrnKpcra0U$E+xyE?^A zvR&M7u3$n1(j%`Qw;(+T>NVS7Kl}EFh zXaX+;w>&<2E>Jw4d^E*{mloS=z&4d7UH+7|oNo_cyy0vyj0AdAoi*WvZ`j%VQPvR5 zq(86f%}oRYDxTyTME8`CYfw2;m@N`{N(eYYi|G zo(V6R!5N&bCUYNzQ2vr;HM#YlYwgwSAx09zDtIc-$ceJa>7zHG{lfGSrEuqQ{IPfX z&$R@6fjkyn5H)Hwf*W5UxZ0AiFaskg{H3|{k5~L1(U!CCbU&09>VZQ}mp%z}D_8G_ z-J+$GjA$V?ugqSf76x)upfTy}!pI;%s0m<=t|K-;4hOTZ{+o5x(i-3en?rZkm`_3U zqg}}N-;lK3e#ejHc7c;cib+f}Q5B_RYlD3gMO1Fl#3Tio$lVp{8mT_Gdu~@RIrmP; zD^yUvk0jKEu!4&`ZYj?yuRsS_LxCZAdMpjJFa-G6?6;wzZO@3SONi`C#><4(928^;zb9a|k*JF6g5A#tuoj&|PDcscON|bA0Yj z?}^1L=p{up8Y7)N+Yh6&BZgxoy^d&;{6E21&}00zPF0I2lL6XtqfV^qt`Qg$+MEhB z=s_-nsP1Xy5s6AhMHS!-_F>L%I0*Yp{FS#ldcB7rpG;`VPYOnwfke)vza!^*YQ{LV zR9O+we|a9XS|*N|L@`Fu`YBM*}0d)bW(&S^u^`*0Qw|HZUA5 z;#(EjmKKetNFPiZeQl8Z*0o&2ak`*SHR&z&HJwaRDOU>7mnmzo?&H55x7GfVFW1DG zdwNlGX6{l@iydlfW2-13rVmk2fAvqet~7i6aOAE0$7$Jw>xdC6dwSLg4{=t=1 zTE&n)m7%fHys_iy%v{$lI*bGq22<*{T%1r43`zz(f2-1qNXff3tMUHXi6}7U<)Yf=ghLqDidQnA1I(C>`Lo? zK(|N9a9-$?JxxU2s&PEM(CIpZ6evX}0k|BiRY5TQUW;4ZrZK0(#gxm;%;bv?biU;m zJ{E7^<+Yj0d5LQSla73V%x zC#<~IU(jHrUs{8k>^lN$aZ7}KPLnc{ zK;CLyIW#tQ_s;*GO}th%TFfjpeNstbn{p%3^#?2Bvklt{ybsC@MA=n#rYL--ryzRnA&h=a52&PoZ#i)iZ?NsYuVpO~*NfAse0% zomo0tM3CqzkFk$A&czQr36@G+O(q`Sv9PnbtK7b!4QGw_nZeEM3< z2+rCn6I5_ZjHX>0cG^$CGcxj$El=Q=l~*?*?Z&3JUXi`2c+&L{x=E{xNnigG{;E8S z{dxZ~w;35cgOA+F@^=ij=)4o>EvKuPG~O;pZr3tVOr(#NC0WGQ+4r0}Fe225_a_vX z3+^be9svk1l|(7TYg$bfIrc4XIyN#@Qe>ac_UA};PYnaCG`w3~WaNcPPzoerf#rDz zIsEH_SQAwR`WjEKxy~|RfiyC#1_4UnCby8L`JyMQb?+l+k-&I5DA-JOnSi5Oo9&;Q zK7(D~F33nQ=m|;oCvo{+N=a1T4Prm`$N8$SrO6h06aylazjmuGI3bEQgoDxf%-<2+TVZ#vxReaK9r0wnH+048{*ZKtl*Y1!Grs|h6k!62tfmE0TIr3J zeQ8Hfn$Qe%-eL1O*H9u{)?d4nNaB@lBQw$Ko)(k=H_1xKDib5}`v%(3uN-L!jzx*z zAZ5VB@<+gPhjDIG^@a-iNI{{LrdX>TxCdk2@>ep7o@texjTgIr`uN!HY|`HAXS$=P zVmC+l7dF>Nx+Fhm?Dyd!U3B$SIcW||aV%s$&=j(N_jOAQE@o`B@L+@8Hh0CL@@j>c zP)4%ZVu#25yV*YrN##>yF?1D-f;fqk13d1{rut5+N;`G!_32dG={15l#XniVykGm% z($*6VOO1<6agN$5Mt7jA0es!gpRx6v#}~Ra9|LJe(;U3dG>81rd-N&2JdIH-`YSEX zM<}*7jkBf?QG5F;EdiD4IF0h6^=^d>zuRe}ReU}Me64IrM6Z#j!~M>Cn!pZ~w*L;E z3}3EbQn((MlOtQ&tr5rbk5lqktTh=f9RATD@xfFJ>^IT0~s#A8HeV3e3;N4Uz<(|+Uz zw~kWark+pw9Bv@hTfSydY~FAtN)W#-1Z-BZp2)a#fjXMmiXv7#i5eyi{pJD)RygXy zg+TbTb~E>ZZQ8{Xj`mwEL>vngRqCh@Wd+jFF27mYXarOtW76m^?kLu7;Q@G-_`Qs@ zZGoF}GPmD;{hCEcZ|@k&7mSOvic2(Vz4BlWQ}p5%ZOuka(PE0v}U|}B7#NDlguXKaOHs~EM~uzk^w4hP6Aq) z|7Ih~MsfR{N7!-7W-N;qgPMWO_O6tR0N&cQjo} z>9^xz8ikrTDo4wJW+T+e_*L&i27BMmEnPO7EQW8VUqz>a%R|hFPu@PuZ$7`BJ5;ZZ zt^1MRA(naVI8i!&`q%pg5PF_vwN<^>pLrXtkinx-Y$Oz(ecWW4|Elw)ptprT&}l?! zm8f?6gYpxooDnkOA(wNbab>+5=cb=*_%5W~!;WT#WNpa?pObWeD5;E_COirb5F?tQ zidmo8b?yMi)Ri_a;3h@3#DKW-?&}?&Tg{hJaVZ9Pp-Mq9;~`s{hy`vc@pV)(%p}@& zLk5ipCFtq}80)LqG=XHGrEO%$!R0XW@%;r3v{@@^_i^Fc%k0v-U}jPdQ9uXo`(YCY zcIZR}R{7Eva7qSGz#lVy;wz8p4}VC#cI$y;Y-8GZwnrE^QO|E}pKG8&PIY7>VmE>oB7MOG4XANceQVbcB% zE~{{Lnu=1e)gpwms1lsBYHWdB;6YDU&JpcgZ$G|dJKQzVN~)+vE;Xk%nTW_OnTW6> z8xqSIy7eEddD&uh+#_>6`pRSEl7@Zp_H))zgvfq%>-XJ*(!z?VvCqLc72&|(9BF20 zc(Ds5%)R~ALPIOy&$5wk^31luQOauE|4kNLxz#zjOV>afc`2eP385v{Q8Aq@LTI^E zBf=;t#H#wi{8y0mm|z2GnZ>bMS%0V6I# zUrsjZ6jf((sB_KA3a4BASo101TY>HwEPCXF6pW?jyz(5-p~lwA+uw8Xidpe7nsChN zwAnp@KDr5|i3NZ}QX?Wsiq$1!xXmW5y>Pq)CacdzCQ%q1+AJ6fFq@d9Bz>roBhBBH z(ZRIQ#Djo3T1il_USRzrU`x-a8ibzaB^oJ{S$b?xRzVrzB&c2~Av>){I(!frT0y

BH>%+XrS&YQ3mf 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

OX-wDhWH7kh+MTwGS@S$ zf+!EXUf##jgG||={eD03{o2LQueqdD!Pq@t7sDrUh#(5uigIx${#z;C0UM~1<&nSF3p_PwVulP_SWrlyfq!M?It+o<-dh~63I({jx=*R z9k$O}u!E5bAOF(}*vzY-b=()bd>nadA+fA|9S{j{=xAz2Oi%~rWl%v6KkU^7)Ch7= z&TV#cu59KkmGp+zF2rm?rrQTP<@IX`Y}P;yLl)NOk0*@Yi`v{5t!itp@Oto{8FZm& zWHTf^-SBD z{uk&3{5+;XHgWsFCA1H4iL(u$ZjCPPRe9b9K84W57YJm$v(c4@Y5u;Yc_o))tiaG60bXdr0!$L{4#pWAdf5b)Ul zkr@;VdRl11+`bjq2L1{-CN=QceH*vtV=zA(gX;D>DvXbP`&IjzT04;wDfqBXTFDj5 z)pMW7{pEf3%Kmyk;9=F_rTH0RA6crq3L>pq1yAs;oEcKOzInEfTHw0VHZ&T@ZxvM} z9bUfa23obq^{o$Jk#5q7;<6yu#y~2KYxPZM!fQ;RWfK3SVl^g$sXpT{BA4zMbJsZY z`b#UL7gMhgk(A33ZYuBCHB)vz`JBi}k`J4hj*b7+#c|lyk>9>tQkRW!8#>KoM~iMd zxg}>)y-X)xilr`aS*k1hwhpovqd(}Jw+0$P!o7cb@ms~;DB>_c@8;7591W+0i1=XK z&pvW}*>DlZVh1rd>m(!Dtb`_JI{va1HVWp$O*+SNJ;dDCLh7V1c%HV2O~1uFGk$uX zQRABjR!dyZmMvyZes5et*nhe6e~z?SKYv_HSBwsj(J!8uuk)B$U*{wQ>nnx0O`I@= z3*MEg1pMvfG?Hl0Y631Q0N57OH$?u+^la;Gv0RPO;cN|<65U=l z(mt?r3(`k5{QSf%{BIRvjh)1z5`0Exp7;jgzjwixe`7dl$W`}!+^*$AW6#SQsn2D= zTheg=4O6614nr0)E_nGpE2Y z!%pZ>TYEcDOD-Vn{kjW28TyI4=W@IIqZIfz-hcTSh_02?`CPko8@}y3f8BFv$NW;j zd=S^BT~>BR+6BmFSAZ-kWPucBH+T-&M*ivQ)0JMZWW#j^7no$!K2{Tn%60j1`x(B0 z|9)}%CW-4~!U0BRO2GMQ>v-cnTj<747(8^j04MQVC^#(hk$1Dt0a>_he~)V~u3bGN zJ?5XWU?hS?XkSUFHad+M~w z+sBxbt2=>=YA`bW_|)ZyGGIq~55ZlvD-i>(Nwb3j={_l;q%G>Fv)I-j(#;AioIg;_ zL;em#V^C|hA_ZZ5wwbY~fw~U<@;!K)NG7DGS&PuBF^BaVBc_b2eF9H3`*H&#%OpNT z=ZWVjY*e{&j0ddDsBT*H0K$z$+f^?sQzcUDE=MqyBh=6gl7hO`59>9Pfis&t7 zz)QZVc!_(=L`1G51C5s&3JD2>!i{4mMjpQoLmwMkFk#XoAFqYe^-0{cq6p%%*R8*% zA5N1#*y~#Nj$PSp-rZ(PK@8ts9P&Z7vYlPUdvCr^ZTJt(>1y3pUg5L>jXb7_KK+>z z6vhbYtzvH4uWQM>#r!#X|RG%*wTwHOXG@36OxKw<#?NZHskUbE4 zW0+qD{@$>5qA-K6OpcGyKN|*b_bne=%)nX@Acpy^K@+qCE>K#!f{pQlj_IPT+0Up% z`0rNsr#nI278@S5HRl$JxgQVEX#QY~Fmm8m`Uc-0ez9h006<7_@zUA&-EaTfd#@ZJ zzq3JH{$p(#&LzXU0$kwl+_%+JS8u&Q=psn}*6`U;U&XYt@~!CQc=4u_6ojlo7g zOM$1EwvHSpi>_U5>O5&#^p`QuyYXe;Wx{~h=dD+%fJwv+u7Ks9w!=8KM2bK{f1P)x z7f@=45~Se}y$7@n`o<70RGFURc==nYmCtn9tNe%`ls0Tck1>$Cg_Of)XvQ?~ntAR>Zvfppit*vXm{t(#sz$=IirK&ro>B*}rZoyOF`C zh7I#g)3UM&bda!0$WbX2a6^fV1xjPtsj$Cf22T3^U158KllZQT(T5&1*q3YEVKTp^ zCXdv}fJN@91AweR(L@Y8Sy z!k&3fNlZI@;pw{vX_d3B9EJ!tK7RBgzaS>e=dhO}X=zsedg)g>L{@CVUp3|Le3~p+ zx&lr(-Rab=TiA@*&nYTlN2VF?bHdt%v3k6CC*iLXm<+j_JSPlir{-UGFtMBi-kamE zeV^DebM36S86pUQU+Y5ig*NzFTk1oPw%k*#mPYoc?G3gP=t*|eVc`0#<;ljZs~Z*x zjqrw5A<;u*V>Rr|E@8s`+&gUeu4Jj}^^t@zm7E3|)>^hyBK$Tku<}UqD4olGlB_Us z2<$+UIn`LqFDQJ;083r+9mQN^SQU3)k;33i(l8Y$X1sW@WJ*FYczzE0C8BUD|{U=Hy|q%7o2*R^*G=4FDu2h{nX z?sS&1<=foiBueis2ebby+f^H(5oxobk5S0}+0v6P@ZxgX=Lpb}j5iWnnz;h^Q?L3X z-Vh`c(AkQj0C-{kkWM(^0PTM_NZ^V=H#h*U*8;_F@?Twg9=8kg58G~mhU0MXdq41i z!L>lB8{7p1ASK;h@%BT%r(W=&#TCET(Ue*r9xR07R(cNdN(L*Sb~v8|)9&}J4VJd!qA&>!;;ev!+* zkK`qyAkR;UXt=1lm5aEH3&v2D?cXB{fcWXiS(9ye42-!0e6 zKP|`@rl-ewfMSd-+pP$UnvPoSAN0^80K$%v?VNM$i3JQ;3ZBEVnAN|?eg_&;44uU- zwp>E{==6>8iUcomM3SS1m(9PdIKH*7&Z0*SQf1s+Y6C241if0CWr0D_Q8ZLelg=gM9r6lL-u}e*cDBzLfLnq zM5NT#@MpwiW1EUbKRVUX&qeEbCO>)B^$}psE~E%V;7)=;4$Jl-lm$F4nyTX5*ab81 zm4EtF+KYAnIZ7tacn?QHZ}VsY7yCUAjY4kct86_tLjHFgLO?_K5RosFzk7C~1AwLe zNjJ6k`(EIp<5083-F@qQ`I<%HejPOMOtG9o(&Kph3_4K?IDiLIis2F#9czV~XeUwG z03lO*;iSH&Za;$rU2pHeZi+8NGn4iq&=SrJTn;C~J4U+#bh{1gGSG(#*m%j;@S$OE zR?q=jC^51)*&R=8r9xK&;)zpi7`Hf!Iqdc|CBwhK%#7s);f>(VQ<5m___V*baK&+Y z5nR{XNDP`Q;}dw-O3zMM<<6+7roRN8Hsu4pbY!b=pU|TWamVyZS5(^UuWB_`QQ`Po z2hqV{MS`FKLX9zzW)W0h)!1WqMQ&$Z9x_Bs29YFJU=~{@quc5C#8GLilt6GPRzx4= zsch^QlaYPD(&UX9xwkR5GZ%4E7`ho3~YFDiM+%+DNHb zCQfm>gh&ie(FmXnabH*{biZ#@4smMhtzVJYR-VZx*-$WZ$Iap^(WJIjDnb^hP~s<& z!3K+Bqhd94Y)Lr7+$7c)_*>4eST>oCcwLt==ak8?9zCHw73u6>HMR)M_DGYtM^`2Q zC;NyXju7_}r=GGWzYnsRS$nk9D8dQkDkTrrQERMZ#LPy`G5@C*z$K1PLOM%3C0&a9 zN2l`P+uK38uH~2F1m_WFz-REKs3CGLGAgAgPB2J`tOh{7jW9s1{lfvMZ@X;iV8XwBYj=b_t*fofNn@q&3XgK zd@Ve##}_Bp?Rk8r^*sPrncK}>9mw5ThVO>{cgF!|Jrxy8209p?zv;cGFi=m*9HHV}f#8uQKIc8f5tb{K0sd zp1{@WL^kL4(N7c33AqC+A%`XBqa6IqzIg!Yb0nDwvk1ZR(@c-!J3(Jy?tlPzLJBF2 zI#IM)Z+uOM6RGn(V@H~CBmeQ-jciPutz#*OsGaVT97POP3pr|4+5YN&V ziw6$-eoGFh^I$+wkG54;GGO1vMDRZiQZ}1yI#~}%s+$(5qdev#lk)59?<0Jf;+suI za}ZFbED!Sdjzo~G@FRI&Orq7!Q1$toJwyUd)-eX9f+pg|fN+CrZTv>`{lSh#=B)m* z>(?Z2?l8Ba?1UJa0RQKM_p5edx>JPE*OA{Wpfb4}j2B8(zzx;*f**|dqH2vDvhAczADLrA5 z3=;@m-fm&-J_= zIlM==0QzwGpI5hUYP+8ZyC1iM2Dje@w%tHo&k&}&?}mWf-1}nYcEFNu!nycj)Q4KF z52}I+jEL|4UxPRJfV<;nyPgXMLoD!@sQSQ&bcUrFoZ?JfUhY2JQutHn9kDQ z8dQ#eBo~Y3MB013%cOIQ5a{tlp~+9z$)d6(#&-w%f_|7H%GA8ma8l^VPGREJC5X*m zYY3WWbKQIzYlLq?<;vk8IMvtd_uKb=eHb+L%`2UL@pKD@Z4*|`u!}|2ua9Z96QSYp z@8MDIfwfELIht6&&#IVVmr{;&Z5v~i>_T)D!)IQSXkC|DtP+_{ix0rMOh%IIo4D)u)l1?NTHbt_Phu4aV7X6FUV;`5+g(Cp@q;Sc5|y*9E-{K$ zU6h$;(!LiFCf$XvVWO3@MA6b*+CbjYQy%{fGxBeBJT0GUN&z11GV_>QB4EDrGnpP@q=2xPh7ZpY)NuyT}?FxxB^{18rzrp3k=vL=gGrDCE z?u}s+fDRn{?S-{Z+>4rrKEj0%d_abw^X3^XhVBOw zf<*QIP0?D4lI+O@BKA1SDTMNZU+y$qr+JEZj0q=K7&wfyPIJ!Lk@*S=(4HSfM&DxIj)YZkd7(*J zPmJ1aE*WqXELq18a!4Q-=E{tT;v9CWcDeQcp5Qmq?`o3|by9o|v{ARDm^s2bH4p2D zMWU=P>r!?|z=8!E5aBwagbczeY?AFmQ=N_kLe3_Bg$zVuZYLsd1Z_X2kmnlU!9QlWIdPq|E^qPoP4uOq}sY)?C? zvvJHpX+o-fyxQ%_)$K8ID@CqwlcVO_*~L0UZ2t`J$fG*8YgDPi{<*#9iKMz&$YIA> za<3z6w>FMr$N8L%!g?pO!gvrD`bWKr4rW}#zOAc zN{lH7{zPi2Q-Y;uP_9T3N#wmAaZOn+j*aLp*00DRNLP%M{Q-*dHYf=Ao5oQi>h3+6 zC`3m165pI&hHsysHincDFhoe|M{a}AVEV-qq`9cFzfk7}Wu~jB6;>H-F=W-Njoi*q zByc@43GZ8xOpcxzCubb)IFJ9Q8N~YW1%sb_*Gz zJ1ko}w6snK)!OUykqbGOTLB-65<=L0zA`YhMGU;^^=4Xw8fVJPK5=fomU%jj;zGBH zQ@h3Px+fZs0B)V#Oy$tFmsmvwB&y!Xe~zqJ3oX}bgm%*;gPiE|k$^$IRz9a*z)!!& z>WAB<)yQw7pHx6`vph-NC)K-s;0`{B{2Dm(NP)iD@LavBtXau8EheS1Qz~t|f;6TT zvCbCjQbDmV9$oYiP6-u>L{+Z!q}vph=kWb>`#)xols7pwaSCqS1d%m972SHrLq)On2C|94Bxww2 z5hl7JAxv@mk15z#&owv{jIZg0!fn z%c;!rEM!fceZS2gI0RAhoa7J{I1zB$KgUznXnRjMn&BVbNK8t3$)6z*D^!+0C>XJJ z!9|lKI`(N5C}u;V4l4fz5C6pwou{r+9BLzq#it;DP4Ea>^$?!=lm` zqj_W%W};PE>mGTQh$Sh8NxZ|{LNO<`ns!hOtO9}L;?+x)@=cXx)9Bv17pl{#uvp!> zWCGb7%3qR-r;BXD$o05R#%!K8bH+U*tIhGuvmO`MvTN@{NJr06Y1>u4V4%C)HbBW} zr^(i`EZYBa)}XsEMH*N-y_qtB$ZZ*!Bahfx++}&N*7kbg`YPZ;4H>9sIoKnoCG*P>%0?uJr07Hsye;a9*Rw3;M?74F|;V)YHi>y43Ifu2WLB#|L2hcx&OFZQO?j|=}XX;U|7 zNlsp@{o4eb*?iCk?oD1d)^ExYq)0oDvX|}??ab3PCyO`!9Vs`rdI77a#yUI z+S+P?cJ=klp@zq8Hb}w<<-JJ~AnkdO@e2`HX-3XRUT?5tV8DxPmqkpy-;k38;7uyb zS4L-7&=tCwd|$Fec4VE?!3Q%CFBI@EPspoKYJ?s8`TM5ax^Tc4^#vLNcX$S6;WoRxl@p|vc0FO;H+%h#XvC!&C~`qdML0AcY{N%)SRAyneZBm%XX z1Jy99a$@b>TT;q&UEUn@1pbeTdJ@6wg+B-5;wt`2Rx=R3AxF&RUN#p%etWW2iP>NK zR@NGvX;IL`At?W40TxyvgsHpL<>!c2Ot>)-oKtfR2-hUmZipzmZFG|j_APzrN!1Kl zD@1M2m;98E5{GKEem4I}V>2$)e>45-22v#?LIe1GLr!2tPUF!uQRyZ@!#OQOelumO zs9g$kUk*Ba>xT^W3Zd96TuU9ATwL(E0i`EEf^YgsJR9Pw=jiVEn~cNkjPtCXlQYQk zV8In;0njk5u>DGLKDP$27vd}-gQN7SEkx#Kao860su-bj1xWe2ghVRN`S7tSJ+hok z^LK-sQk#kdN+r_hx-F}JLRKJ_ju!mPjFHl7iJ+iUOk6PQ7X@`}Sr3-^F zD5_ZYN`!IM?|#1hH;dL7tKI5|;TW@Y&lkYmKS9KCt?FjLVCQ zIFqE{7Q2n%d*8wMv{GJxYpSJ8N+IhgAN5TBtv%y0DH_gF6F&91II`94izHz|miP#Y zev8n6g;A>mIpfYvFYRLYE)m-c1Gm!)hY z!wa1j$4)!9#bQVa&44pd9|3r_Sd56-jc`c2?;9E6BR4>7a8~h+ZX>jp3E&-18PJx5cnKz5PdAnN-GK^P8a~FsrT8r2J3~WXvQM(Y z`3Z&_RR>v;X%?^mJn>v7m;39P#MWi>*53T}bd&`1!s?Ef!=3R;i_=^cZ9M%ogPMRq1Rl1B|d6g zd?7DF4H!wE#7YZfpMS@9jVGm3MAk`#bB(n#o*?`~bCSh@T(tkffixxbx6XQ-SC|G> zhLQfq*PW?&;Z5t`cM$04Z0&!5l9W)7+x6|M@MKcTx8x}ZUj!%F@7CcImCS~| z0<^Qmf9qs?KDp`Gzs%Y!!9>LlzJ>;&Gw&Yu5wy~C8lKOBK%`?-2gGJ1v(RM1VIm$_ z1M#{vr^m+K0;k8gjNAi9L1;>386x^^G*u#Ps~Tl11SF!bU_aRwq^Na5(~(*{*AH~!>R z8cI65Da2b}CH3*%pfUcK>qjxzxKHCM{o-JvElU6;*w~CAj6S~*_0DXg+yy@ai;w{u zZ4Lmg5ysbgz%uEk>B6MU{h}n@p^)7tqbGsuFQ4C`tXHd*4ohFJkNUG}A#ma?Vx+#PQDH~kuo z62=AlxJI@Ga@UUGZ00xDObC2i|I+DV&L$Wu9Sojy8kF>`diAMSu*0g8{O%zrP7YB6 z8~VVjtiLv5hUHg0lRb#Ljc&(c{wC(A#Vl+q5xM+nvc%`HDetM`G^HTxFxRZnQFx@rX)fIfU7utn z-8_&#gxka~Z97W0F~{_;PuIx?=;$PSaDWpzBwGftN@1yoKfeF*_^Iy@PT{H!a!6UP z?XcM?*CCve6AR>sS^Xe+x- zLz*je7@HsbTKyvVLXY3$6SAN52-#4{n^dw>C+l%gybChZ5rJp4@lh>r{LUL-yBfIqxnANiqzSGxv$NSm&g{;QS*Gc8!PZmtm< z4id^@RCqTIH1+Z!32+qW$?V1sE3HjQ4pGbhWx?A}4L_XFo0)J)(`C>U2YCOE7DK_v zoo{(A?rX4^nn;6l%{@uANeJ0zEn5Yj4sOH9Z^pIlB0Fwc-*%Y~Ou51t#Cf!v;~E_> zQZP;a|D`fE!JHyBu;*TU-nnhizHT0-bxouXH#RiH+o&nLtfUt#d~Ba?DAULz>m|3r zPirtHm&6k2csggkUj$t0XZE6sT5-c*>s_&EbsIe>hbIe)b%&B$Vd)BDkq~94+0ati zgy|>JAyquoVQ=GYvmzZUfmUmgR>vHU89N-~?p|z%ueeR)l11k`01gCjv@b4u#a=?U zBB(?VS5eX2+(e3`mXRinC+-4AzT>}s*PSO9C?UH~T~uka>&&?`N~?3C!A6p1Qe{yb z_ouPZQ13cSTZs?o?6l%cmfCw;w|DWVD~vlLc;uKD8p$bshFZo~IA%3#-lAGEHkx(k zIj#faqS{Mk+~RM~)r$!XMt(S6qDZx$gC&*FUyTqE63Jqh@*aEOCtx$&bRHo^0V9O~ zE0A$VuUpMI1%=2%tnIgu0@+sXzMps7iqb*PBPV zHV=U@w>2t$5a8v^YDL@7-{|V|=k!B^#CC18ov1>*O%-_OF8j#DcXTE59am2P*DW0% zSLTb1VoA<=O<0Qh8r6uIE;0w!g3+J4-+@8r^@yBYCQpB17LCyOkJ>1K1ibl_G>~+@ zA!C;y{yGw1*S)K)hL14L_ESWyOU<#X}_hMUTUMns8{)8H7jZsC2U=RfXH+|hpg z;vt=PeE}BgSj|DgiD3XF**GVm_z+p6vAP&F>9Rvk<=VjWz~okD)9NjmIUF#kSdV-TdJk`S|Rq|pqS7!J~Y7z_5o8K>`+yKqAAd#QwzEN>lS%8 zHlOji1Zp{P;{3~1TFVjP*az)^NAYAB~Kc5UDusyaO2rPsmz@$^U z|8LWgs#jGlw}ztEHFb3x!1s&?ZtwQl( zbfOnskwY!HaR~XYh2f+tRf>Z!u-0j^@*uM8v22Bpy4>rE5nVHK@ATpl7)vgc$1%`4 z!=I$v{5y7g^d;N+azVr}jr?0`CltaTpdzYAV8o#v81=U`+PO5DRP)JhK43OsoGuKR z%P%SL3XwcbU&K_GSnUvOrC)_K%rk)BF z;tG}|Z$(F%Mk$tEp#?3z+UF`Zpxj{E4Ksc|MIC5ZHID?>fNZ|7VGSLfPC3Y5MQ)fC zr!>B+egeb^99(O&AV0%MOuZyAV@} z4JCx+O_GJ2r&#h&=9#}CUz93Q8-xq|W_dd;pQY6;+iV_+nAT}xowa4-JhAGsiUO?v zr4;%%ENS`|ED^K>Pau>792!f9k`z7mJ~D?0APwI+sd|DznfXSEDhOVkHG6YIF)9Xb zheMIdKt-SlL5RV8K--bFALx$FC~jFqp8JY~0&7Cwuj1r{6|Noj+`qRP*#M9&6TUuO zsLFjaKRRNfB^yD%35ooSvXbsf#{u7lv`L_3WjF9jsrfeI+0C^SDPE*)3M6OxeQUGn zVl~$ZK;B*JK9oTdLocS)u&8I}O0PEct_+XhI~64hqGsq<1k1(dv8epPF|(=4@n05D z#G!+HaZ6xJF_w&|S7vb|bynOBsWjsg&B2E>#v(v@p=l?2Hxt!SmJMpt~` z5Y`Q@I;^;VBuEQp>=0ICLx`}}+lFaeMs|NoriBYqtBET6sZ~-?=moAK3!`7j<>zAzFf4#3fE``SuH(WF9RsXqp}e}eN9WV_h#MdbX#4KW`S_@% zy^C8^(45K23>}M7t}Dvo(T{DKEY!&1KNrJ0bkQ4~Bxo@RNJlL<44%{0^?~CO%hV#S zAB)aIV+o>D3Sa!O_}dHOTWgKn;cnFlt#VaVB268-zTfS`A?2{v{A6`uqGOfy%|rjq zPgYk+hxO6;r(s|xg0tz|i=hvh7%$d9eVdI0tQ8Hp7@2+WXnJNxm$ZL30WaoP{*6vn zDd>49eAjTk%BA*3TI$FO%smp?URNAY>EI1~&f;_~zzvbUf?3tt*OC zg%Y5m7u zc%ZkS!9^Bsi zd!#rdXD7WB``vOZ`A15oTx548GQ^T49~fsqFMk3b^C5)GFd;7Mr0^WO^&jjd6t2T> z_g{FpxeOe3O&)rB5su z;2ORD>ks&5Uep}V%k2~{99yS2%x(zgxPo&506VM`P(&ky0=E!vVX7mAhWmETmm7)% zMaHIl54lZ@gpx4?I4Ai^CSYDg3vmhaimAXloj>zo%?b_egcmFEN$Fd#!Ya=0FUdb7 z3jF0dc*jIo5s_*v*4lCsm5=Wae$s)eW^1Cc(nuW3(~7;AeXhvEn^Nm8Z!_ZDYpf!s zLw35JgAF}8z%@uOB+Vdg72&V#e4-cyb~vLz(atu6JQn*N3i)Mb@dM=S_AYJH+L5>{ zkT^;NXw5meJFk)GHd_(ipPtI?6)VIZMZ!`>=2bFZpS&7~?&!Z?Oqmp$t)vVt`Ao5L zDXR137y^?(Vw{vx-TAq&GSjRASKWCYDtkP;6?x`A@}l)J6TAT&l4zl($9mQ5*%jK& z-mdDxzHZ@1DIC(jF)*O`rs|eet@pNlc|TJ7-N0f9qak-mX@7khS1r=kH}K~+G2lsp z@*>9D`wiR2;!c639(_ z%e}2~26x5~XRr3~MJa6Av+->_w{|+?b48@_3PgoJ{f$y)MV94PN#bXL){{YOe-<|}h=J;)VS%*nOA z9)L5cee1&j=2g^23qlf$d8RH8rqUcCc|%MYu#_n{-{`R9Ac7y6@-2e?kBB5FSe9x- zgq{l^mJS2rWQ; zmHK5x6g-oPc1-xQU!s`<)G)dTiVkNB7N^Ml{bX%@NYstGgDJCiNXgLmU{6LW!awu2S4Rdl$rym&SM9uu8 zS#}f!3-LQUnUFDAQ(%=azU3viNoh&V7s9b=*~f?vVSw7BB;mk#(p&=f?z<4FnJ>J6 zm*6D&7OWWKyueCZ%>Mv^5vN$(d%Qg)RJiA zgf?;^JuhWE zA5XzxAIsezOk0nN#=egyp4%XA;ua)E&&`?fuWi?^3+=53s_EAE#I5%NT!FoZ-*oaV z9{>J0XRrI(SM;f>WsK=-2(i$H(7Xwcd;Jw@f$#x&oPt0$rn!|Mf?-z##OUGIKP!9X zeAe)K=y(~hKaaik`AY2wur3O|{IcE)HzD6PH-e84Fktu`MfJGA{+>(HToAJV*M`yP z2?Pn(HcoP5`4pY-hhJM9Efj6NWZFT92@psvy|AQrXpKMmffHsyUsU zbIR+@U=~K^bJ@EAe>H3`JW6E6PbtBEt!=HZoqB3!SIefSPPPv=jKmiNc?U0CGS=pp z0ltKg@`qnrdC#Q%UPOpBFSoT3oqhpQ$mDag|A^!3&<;rok1~I4nfB?GEAHFDw?K}O z60AmkLJy^cl3dms2Y8IZq&4z?k6~nT=aliWtmF9Wt+k?8)YZ<@)Dh!bI#fsLXDgs{ zK$Ssy(`&4)E>gmD36oLI?)`C&r}C}vtZUSvN%eRB_IEx^&(a@+p6KGY_0SF4lv$=c zjChT=KI1MyE7>lPVCb}p^r|t|PZ@>K=3YUgh-ZQr&U9gGLZ3QXmD9Bq4-~^V0?8DA z3RC1hyAy*!e!x?bt*5=(&epEav*3pd;}_*Egnr}Kp3S#Fmf+D1>!mPG=YV1V;FHN< z;K^wJQ_f*C{TZnn?xZk?!+CFcE@2ZDCsQ*o!K;MCLPQDT)#RBPI z!}X&*=ZnJN7)Ib{?;hyO$jepAyzTmym4u7x| zGj#y=mh;6G0Pd;RVn>&Wd2m-Y>H6WbYIVYRj^*)yMk|6$|8+=9jP-3+1N(BN&@v7} zRVcc7B4ze%)UPgB?xju4Gf_ntA=f!4S2wN8hsCLGkc^KV8yllODzz;Pi;=kec;`q_ zQ8I%YrN25Mar^H?~pQ zh(*oSMVk?Qe%UZzzcodwRKP58GLo=~1{z`{S(dF!s{Wi(51;zz77~+u$QXl(-iz5W zAUGwDU_snpJaJJ>vgs5N^0vYRMFDz$-dVBHyVg0RA`T$)vZe7~^J|2;d~wZ7rL=h9 zv0>?tFGj~^ghbMY0xWpJhZzA-=P8^=h}P8(c|^gTBvf9Zr7%B-UBm5IzUAB+ zU?|2DsidTarU{4~kPN^`?+XP4-Rggi6KV){f}i^LT>tL*)cz#;47k{^-g?6P3@x%v zYM3YaygK{5x)**Uo~*nZ^6otP>-QQl-A$M^ur4$Exf`DMz8|r1>9g}b-Qmdv_c__~ zItZEh5T-!`ys7HGK-3+Z&xR2B;1_;a5f=1;|0?{NvFQAf(ji(Ee9s~rP{IL0CLrFm zD}U*Gcyiznj`&*q-=2LiUqmLDw5+e+*xL3}q;T+g*b2#KVK9l$E*pE|8=`^XdXu2a zz%Um=DiiZ?te{63mJsGenF|>Yul(ivUYnE888{Xq@gElEzW8%2O5cH%?EA0fSh#jM zKU^{!`gYJGb|@onZNq^;%kLkSEio1MU5y;n$0A_vPi1;G2m>}@W-jav!RT1ISf^5g zQCQ%7%abs$24O$w$S#mH_J7Byq<=+FoXyAX7^q6T6sVg8jH^Q26i1U)tgn}WWn7<3 z4vQEQPe}bjwF5)BaB#AC(gvwPtKAjr{Tk}U7zNNF*?%IWbF&x{czu4%CTcq#Ej>hY zSYIYwY8zH*W-!cI1z+_pR!7o0EL35+62sis%$#|9WojwAv<(moC~kDryOr?!__%wQ z(C67`g}cnpw6NrHa5kw3g%5|AlR1Y5Vq)y<=E)P5`Bbnc=EcvCEN%8JA|73KKT1Bj z{3(0wVhpj7AmNX->4dnNU@)rV!I%&ACe%8W?jW- zL~sHosskj3#{-+xCR1nDs72%fd_w^s@v@W?1CvRWZnH^NVWh`$m6CYMR@p#my}mfy z#oXL!+}~0o5+v^%Jz&4quRjA-Ylf|u=bisX45;Rf_0U@!U{Om~k8o7`YK zzn_r2-3z}){S(-R*cQ%$&J&G3PeJF>{USjhz7A~!naN06Qsap9a5-e_6tp;e%BwP%Uu<@ zPPa-)?h3vV)Db{LnpG{P0`rZ|bFAr{O5Dhe{7Et)#0z@eEj_?Y67(~b6Vgsb<@BMe z>}9Bnq>0-$@uT`g@M|?Q*WApn{|f!}22G?9OfO-R%;n+gpP^5BfK4!^A-qqI325SZ zT1cO?)P*SrJsROkHec`1&s0I;cYRQDP$Jvj$+cUwgYXaP;ZbYSUqjaaacJ}^&Bw!_V@wg+>~wzZ z4F^-iMOQ?Uu@ZRsO;aYj9gVCwNyF?RuF@wy2~sYS$;wP}@AN84IoV0jWU1w#UBhr$ zCtFGP`?mjonF}vdn?oL`@Sd5V4T=AUx=@sxB$RC3s0&}U^K_oaU;13$UUo2jJ4d2k z-}pfN93vSbAnJKG-@0{Vc~AK#cSAM)BXArq0yO@dy%a@hnGfCcw>!y5f2sXAh$>>f z`mm%+p}gvOnkmu@4LoUdx@OdR-O=VRiZ2a#wS#=h3x18X`kHC&&IwJLal1#%5 z8)KCD{Il-AN||8bt33UQ)SRMctlUp>v^bVw90;GyuS*t+W!8Lj*)@iN38qHEY~wT*8M3i6R@Kvf%{-OYCXX- zXXo;22X`m@aQ*zD>}+?#FaG($&ehF29Ma}s6jWW*+r0@kP%>FloWYc=mbLCzv>%|Y?+zLp+l%a z^SM&6x&jWhu8wViegPf+4Vr;NbLV+0f%^sT?vG8*&<8G9&lB+_RqvxF)_nu~jVs4AL&t}mS})qp!$U1M>eUAN zDY(fxEhY11MZBPXKIKaInafZ`OAaVOQWXyc0mAZisgB)ktVDKEloAnjiV&h1M&e!o z-iN*s^{WzfR#}J};g}i`rN204EC}STGq8BQrNrDiBixBOx7t^uQJ22MsaYtbis_k% zx`L1d${un;sFj;fu5t_T^+wR?gdW3)zgKl&kUi=X|NAIv&j+f} z=fKwL&zK6_vRLvf21bPEC(LzJgSGcLf2EQEiVuUkl4&7CJ8ki}0r|#NVqRvogJXfu zf4jj-UVnLm4mHf2BD72X=pzS2Abz1LC_;k4z9%hA{m^$P0*?@I*$l%-vS~vDp-AAU z>_rF{rvdqsWr2;;4tSu~uz!jy(6^%rQEr6EA*uLlNXONl08p>c32{7nJFeUw(GToG zKLpDMR+H9e1Bw)NlHGItxI!Ha7El8j0+s}`O)Ma(P8*tEAt^Rjg7zK5A)sHGx{_GY z=UY$+S5LJddg_tTT5m#u5ww3B#o{CjZ!^gqs1+ z*M9ILZH3sYB?{KdLJQ}#b3fDSG;gC#1(%-YY&>nc?Tim>`S_7PMTZx(C>~7YVXJC`M5l$X2+lN%fz9xdpmWkS&B}6gW=V!4Jc)Yy#+@o z--S(g$5^0O<#!OJ>`QR%AWwlpKOx6HuMyvsWczzF+K4sDNV_$o5#qG4#?WaHPv|qO zcl*bwmdtfpr~6&KBT;Cr%foulW9EqFR88DOxUuc?!X4K*-~mazIN@`f*3a1dB=q8= zE1v3f#QOkBVtXa$?3~66#be%1yRjU<{AH=B3GX6FZ*P#Hx$&3?ijgiPGK0ZmWn!$U^l(IZ4qT+)`F{(2%3B!!VBdt!6<;-!b zS;K3Zl0Ai+GQS|wFh(TVNtQ%OgMb%hV^`e4anOH@=LRTn;r+PA+y_~;A0!_)9=1OB z#)EHoJ{jSHw`jg}*RA@FE5C~*?L|zty&94PT|IuD=54)j2;(ixRgRMQY_n~DmhgPu zdk3Fq^4MeS;-uxdyp0d!>$mjd<-qxL@x9BuHzCsfy7)MEQ+<(lEZ(Sce zh9+$VUt0H)d@t%giM>RaF0&Y8`HxHI)8jEyV-C6ahiZ7yv4cB3Hir0Do2feEQxDD* zCh*NBadb-mC1NGan{6?wRuy<=4YA(xGxviIQ3sH5c7k7{KiSa*>+pW#YX_(a&T|6( zbmvnF8@41Vh;|TRHh{FrvexkxS_TUj3k(b;#G5vQZOPidQK)=SnolQzlsD|*vY-`* zkO(gU@h7a^x6Z-2<)Bo!P;{CfE%8k|Z5vT*>GzejW8f}X1wxP)Bi`WODCXZFR49}` zM89k4*BGCipT~E=e@f1+{Xps4(rc2`pE6lVKJfe5luQHW$f>h)TKu`QAx~4XR+-db zMAk4Nc*gL4@>i~<=iJG#W&wD)5uBDXa!b=*aDl(Iwp)Toy$jmKfBkf> zP22#s>o8sDxYmJ1N{)As0QuWbEIt1kT%v`gI#WM_*t3y>5>+{h|Kz-e>GzYqfF4hzZfmfq9{UIs7U4wAv% zP=T@-_S5;*o4^cEmnv)}1Y*g&_NZ{#B%C4@_jH<)49GxcEaX8XbZkZR+ZW^U0?o8* z!+E{lI->?CB~4tF0iTfrc4#7t`WLJhRs(_{6HW8L-mVU!m&-?K+Xh82Ca8b*8+lvF zTGlY?7h*>tkp`~ZT?S6&JxVYxl&(2X@EyFM_O^D)MP`p?tM(WPrm>W>1e$@wOM{Bh zChP1r?J3>I2{aw6?6gycfP**C0+y}-eb0)NNFO^0!)2&?;oT~XNw5Kho>GL zuj`Gg7UzSyDSSh~&XyiX_QC=sG`Za;y)JgOg$tc5yP<}%u~4cxa9bEtyiFq;Wlou` z)oz6R)TYLkB1u*#+DCEgxGljnq}9;JFU=9U_D`pe}r0hCm^RaS}p8d|SXEoSbg|Mb!jk@L^7T z&cNSR>T9H9S8I;< zFtS-fRne{Lj2V?vobU2B<>zm9ocQo~oNbCSvo7DTkT%%0^YmvETs(#FzLKbqD6+=U zxQldb5wpx$m`@4HB`T*1H|+#(Gyz4z3_rK@Au@Fw_8r(8+Ec7yjD;6zEaYp&mSUE5 zxOs4!e|a!8XQq_Vs~1Dg&0pkc`aF9<0O=(8fkb&n$I9qATO_{)NxW%F<>vgFIC3q|)vR2R8vO|DLj;P^)#9=|r&a5nN=w>@b-uY4>O zMy?}H@#rsxQJ&9s-EW^yhDoi@YpA}sQ1vH|8l3Y|hI{>uePRf)NM+kumC-~U8mXI~ zC&S&Kpn*_~eZ;hzv3=JpWDLWQJ zBrt`iCHk=l4zHX9VDgkRY`JGP$=4I0i-R>D_in&mIgE1Tf zHOa>LxIc^hxjm}UI57f*X&Ur>Antb969Qy0HMhLrM#?#N1w{_lq83B=1?xI3_&&R# z{YV&Gii(L55!#IC+m3ex&A?XoouKS;w&+bL z=@b?|_Z#(B|HSi0iI{fF3OPwFUdk94ykW?V_tzheZ%=X}$g=q|yR(xU`dXQI?ELOw z+_|=+?-dUf3_1K6RT%yn&-JkvUiB#*hWR>MQc`f@Uz^CiJVN>*iDPK9t|8p~8wVr3`F#)*8vDGq+xkaFecVCj zK?j@s>AG8Osaf22c&^v~_k=K`Na4VNe<~AvE%wWVs|;gfbU^M1#c6DyKugV{R67@sK-wNSl4;NQ;=no`|h*6 zUYy$$yhH=C+50~hldfby_7EF$aeSM`XGw zL0)w=@OEbh3${1&H2et?lLz*CWmmnzCg%8SWY9lux#CKbKz87JJo0z^sL`iz0uMIlchYV{f3Y&RLAOP>i#Kz(X*Ghbz6`q81Qk{ z^Otw)gNx;9>GK9glgH@w-1v5^HkeK3s@>RsUB3Hj6IbZyg7gT)DyyxRGCL8?(2F_n z0{6~7mR;CmFO6hx)&I94uM>RaSixl&sq{7hDI=>a?6=?Fc5tZb++v`>gWY?*t34b} zK}2VZtB6XP7gpD+Z4y2(&8qEBzK1i+{HxFP7Y0Nvp))v+5`tv)_`^^WB%iw%ac$Sv zXJ1t;Ogy7)s9ba?Ez&FTg>Ojf1g8ihd|;bwjULfvc5y2A`7uy`zbWTD@eyEV6kCpo zbBZ+BvzD0hE-hYQQi|4UDVrYO^E%Ctc<^l)M(&_TuI8Z-4ZC7yO^ifK10t&zGuG7J zzro5nEVprt1LV17;ud+SLU?mbd_o0Pw4W$-}PXR zIpD|`cxGXmh6PIqbz0U|-fZrkP}_gI$qBE@lmXT>Y1ginkCnXlVZK*!S_?G>Mx_PK zR9XuD5pFG-`*WczRT=c^W@sj6VV!TEITZd%APi1A7dMTx8#M~;5+YBDr+Ax2HXCPlI9?9aEOL*HYs^g<)W$<)}MTj16U z!>uvhf9@XrcAh*?&lKJzEv=-Cp%>lG1!|9?*ryWKwiZT5u*YwUC(WLw3&eJ(OzBpsm>!C&o1L_Bi&FL=Ff`v>>jk?p>LH7> ze75L|!{e#B+U?gjlS;^j6W_qOmp-Ic-Q{K4!;@Wc7C+`DIU(${&gspZSIfOFb}(8w z`WLyBr0b=Xkz(4YE%llK;f{_`e39|2{^DX)ZnF80wD&96wH_`j#xR%+8&~|f=_6

zjZL*%Up@PuU}$vBeXfSS@@qybmeMoZPq;4-|I^9r0(bhSi~TQc zB*)se2;vm?@TW*rXIRq0+L)n_HeAZ2zKU29^>gd=`Zk=7_yEUgkS;W6-y)-pi0vFV zO43MA`Bw$Tl>Hc#o(`D>_7x>*haQS=-#VJ}VYj>EUog#(PobxigvMuydf9z4j_|(- zPq-XH%rQc?UL|8@z-;`$ZEJzcHw!+x=(C|`_I z>5s1cw8Gx?$A>kG;8Oo+W0_OYF%$`z>)V8yc@wqq#htLHEuzm_!&lRal;MHR&8350 z1hY4KF^U@Y8+>C4&?f7FwX-s))d5B)eOoUY&|CLmQkmW zs2AfxSVr(<05dA+Q|*ICNAt%a7JNEhd^GaCN?3x&px7SzMSN5+zJ3fls3>bRErENx*Iuf zgM+Nd-u#_Ab%mMMaA~K~>G>iI(fnYv@;6elG_2i9m-KimXJa|ZGV65O$?WIm-YH3& z-?Tfh5kB6@e*!RGj@GwB2(#%x-5PM`y7c(YSdn^_j+@TDB2qta3r?;XgIa3C?^o#_ zm~WjZMTNH$|Lf|SJpGrei|3k&zQFJ$Oal%h>tynB1lo54E?^{WTZ}md%bvN|*QEf% zpd1R9p3G$7zU^j%6sKL7itpRSkZ%#j9|w3BMguWZqbAW05*$fv$;qw&LrRr0Rc%tKy%<#qM4sxux_QD<*_)58E!~GbM{lk zJc5scR5`&WrK>6M^5XdPxhqPE)0w~UKy{v-e`8~|+_;*1I=9oJZG9t-tb~kX&-pRvu zZS?sRsXEFT8H0zeZFRH%_1;ahNyt+{aOZ(iMQU`rVMHqBlu$COK=glyt@)elprzjc z77{&L$8+q^!lQIH1oh_oJ%aGqpcUK!{LRY3j6+z=G{&44=yy0YnrPhiwA#hs-NYjk zcej=IB^D|&CuLuLZ>OEM$){lmBNJxmV?jWj0y@S6{qV-dLoS01K57j*o*(KW!sekI zj;I=4e`80kOKcmDGffcCf1kwo_isukzXr3X6b%78j&6a3yB^YsD{P`c>vRDxa&BhK zaA_>HAnxYsjytvpRRz)v6dEqCvlj1WHoRu~Kb9`I=)WDkx3UwSy?%d757(h@7X>!A zgT@tBpBK?28#Z~{vWl1*zxB)Sm zMS=7LoU)vL-;hxNiro;?lC>Sk32`qT&2J%M!JKRs1DKabrvRkL!e8Ef@VHgBGy6?v zioGzRp5rP^IaD@TICx>5&9~H;;^(%F-F(D^l?v`$k+p1LKKtrlA~+YN^xtF0(~+~P zSY)j5UPQgU`G~nr&;6>Szf1;29js`#cjS!b%UG!`q*Q{8anO$=5b%G!yh>ANPuFZi zxWGbJvyphp1~AP$(=!oO%Qii{n)rL!ellIlS<8b)@Y7`BBU60mS?3mE9KM}Q_Z;UA zNa~N}Qe>Lx6zQ5Ldfy1jBZCKLQyr|BYD2`KZ!rmwEJ7k^JgH%4Jmb*MWJB^DI+cZx z50z^^Gx~z6?Gs8RlN9iC6<69S^|v;qo7r)oAwS(%+ZSV2H`Aalzekw8NZPC9_{2B! z?8;K-i?kyfat{07me@kmk{rqy9mnRTs(%Y$O)&_GVh?{os}Joee=iC+^r@Ge(*aE$ z{C*$|zlqb07`E~ZY8Ky+1>1%f{YSBsr{x6tQ7j-h>F81n$D}}jOm;^A+ES8%M#*Qk zxp!4p{+09rjvE5!%H{k`oXUju!q!^F;b(rR>9Uz0rU^dS2wu6mN|Cp7m1AY;RLUqe z4U!T#s$0&8S55&pVlT=@{b}6Helgzw=CX&;&;w&)F31{RGICR13QB<2+iM_fiu7y^ z!Xd_Ga*PC45T^Eg(o%bSq2(VN<x(xGgOtLA$O9lG+wH(%Gbc>XAc?Tf1T3emTs`|JCWOcbxwfm!DwQ^&7#g?;LMN zY=LzmHj{Z3s;%Ld24+esUDUX+TiP`tL~to2YXV|Mypa7nmgHAIB2mz?H3J~h`p;f< z3zg%;86vx-QF>&MRIM^MjUoC)Wad`-aMJ6~#z%?Y_+qP}n&bxYF z_qCtrc#pk5uFvcE&pFR=j`16L=#!vFAo2zm*LF_ym5)+wg)lZg+XRf+aCrDmcHL++ z_WxrD9$^6f_)%Qki~u0>U4tGanEQ-6Fma*CaROeZVKPFd`^R?|dK*xZb+tbQWd$We zz!?lc$T5hOtdB_P2!#oyM*lJ{ONNiRq3>C%2vfSDiWLH735Z-_s=nuPh=bAhg5kaJ zh)xm4Z_}A)RM4|>c@b=X=L6z9EXA)P)Y{9nT2AhSa0FLY52RZz2#ioDqPclcgG~EM z7YN#qH=5g_71>Zn^OKI7W>@R&Tj#AtRS=pr61BHKVpkiWUU_>f1BAd*h?s=8bO7&5 z7yGzOnKqS))7x0_9h>V!aWA%~mR6K-#_`zx<$9Ug2l?yvV9p#|AmrN?o`hoHke8SG zseo{nJdfgo!4`m2E;}y8*8(R^d3Zl8;(`^Y$@K+oU_s#l_ML4vOyCgN?G7+531gfILZ^*d@Pn) zkYfiBBPTyGBS}#J6loUcp(H&i@q=!{iDi29N1!B^B;b2-5-p@Cq1c=9V*1w7++wL&VA73OuEZbDVw1x6ngUJ@$>$EbeG2+|FyHTVN zNe%QQs|IkK$V21RyUUi*j(9r0!b+ef+t~A+60`Qz)pccsSs#bz<|WXpp)@*Te>U;k zPL09#8d0Atxp&r4t@k(S2nRDl^Smlbh@NL6fM`Y)g z?)o>b=upB0ODF>D*_ z&g)?ZB}(TC z5(MERkgfVNOz?{^PLCDa$&IH*1}~X##sRlr4FW)F85|gRpFIO+o%4+b(&>;~Ov%i8 z8h?M?gpxer-?5MxZ-dLZkcjVT{GPr&&R>Io_|y+Is{Sud-5`83W1Aw`wfE>?b_-@0 zp)+z@@ofpO=+=+A!Yjd7D8jH}n!{cT!dvY83wbHF8`kocP=el7G_dM?s1Sm^vq3;bAY5aaB+|l6fKbZ zdlo*rWGcGP8?6BouuS?{{3qU!I{Lxm(xgfbe!(?pxZUvL3zDITb(0tpt~fQK);r?y zDUVD~#K~x&#yrcZ6SOpt>TO%wSj&3i<&8;gqP?+6A@Bw?tpw&x%h6Eapmiv%#JzHXGq~ziQkxeBa&8%q3b4 zM~oC1T@qz5HtjM~JCTmvplmNa-ZjJU4-1a%N<~K-W`;GGFa+Sw{9dUA$S>0(ZTYCf zJU4+fZ=9k*DP|6rMPE!C(kciyUB7d%2Dj?gMq19FW+WCclGU>+`!iM`H8LN`?Zl=@ zRHyjOtkso(jHs_of7C@2oqyuJT7@^FAEF|Kf^D87;IT~3y0Td1`p7|~@zjbL94knK zHtTIWp^tZ-FLe3OR3|tW%wLfN6!T8Xy9*1{U)lp3eAngvQH<$nC!7hLP_rWgB znGYq&ED*o-f9xtpDG}t2ct4YW#Gn0?;4M_nl?JXxgYkZX*cylO#yX!}%LwJ5B2zP= zUXoLJ&4fw}zoYVD4Ss>mfhU(oLzkaH7oN$=E&>FaLrBW1sUo2u_?77vnb_bD2kw|} z%0ZPtf#487d@N}1Sx|!Yrg-AKfqrUfg3dTQR0*=)^N`hfmUhE>t}G0gaa=q+xQdo* z>KeLU$`-v?`FQ$6@-r}h>$pPxEri^wS;Q=NX%W9=6lr{1f|VDz4t2dmUevIk$$0pc($s+9RXCVLM6$_Hl)PV@o!1V z^Kcgyn&;Nx?K)^*;A1VrlT`Lc%&e9bV$H!Ugl8AX+lFtDJbri>@_ByfWIo0n5f2%Y zac*;;d7)A*;3j8&XwAollS9o)PboTsf=Kbqqx+zpzkN8>!{#8f;4BWWLB_s2S%g?5 z=eS#01hVEMqo0a61o1T~Wm{Uzk#nTOEYQ1{VuVe}ON*S0Nknr(q(uChGV@m)Y*DgP zs3oI9Qu^YsKq}XxtEE?s0O<7$F+CWz=@GkvQB^sy$R5%QmZAPPS??#)1Uy&3k1guD zgD^Af0iVJoPE$zI=WXNsz1f~yZIBei)89z;NPv3+BZRPtVc^L^U6lh`nA)hD&KN|3 zlU6_-XaW&Hn6kZ%yVNtv%YqDbb=qOMwK{qgml6*zJlo{4*+(;}GH_TgF>p^BWzoH9 z-E7URpqY6#E)jR<4!m%7#8L|ec7+|CKzIm*@RFm8o2PIbf~b1XW_o`Lj7{fB`CvyF zLu!SGo7Gv*++fByzOji4i>k5+kv>J)_~qHI?&h9zb!#IN^$FE2_sy_Z8h{&N4%G@0 zAhEmsRw?Wa;TT5#0*R{=%+tVsbWwhCMlL>K_gZFuO}#=1LppTmDaj2o0IEmm;e|qg z=b$JFou+F!mDabAW{=*R^i{cz^^(W^((bGT6Y(i~;F}4B0u4Psfm*ucDS}gzdhgv%iPP0M&QWHp8UsgM*gZvee z9il^d)G3R+k+u>DRPGG#tyNp_z*oC=?c-RB)%NXg>JnekrI!>-NNP}Jfms*q5xsIJ zV=6)*^f~S4)`nbiT#w&QjBcJ_;!o%Tpkv}j$U z5O4>lqENM;eQ^|{7<;5j^mCPbj#80f#4r_s&XGkDGhts0A#0-X6|BlK{@sKZejYsh z$8=E)!t~IEYb@8d*+`Ip=LpdGCPD%6y+uH?1F!F3B5AN~kTDDmq!z@d zhg@N%V{o>=i=RFu!<3aYoB$6iZj$asX0Py4Zy$y5D_O6Jc8XiXN1+9u`FbqOk(Ok90-JW?WvKXL`K^e9U z-3fKL!ral^G=D(8hY(M9Lnyn}Fg`nle>yFQTl=sGIIUxj_M76n&X$4XFrHOU6#QAC z18b&7={F@3KDa%&cbDJ6kl#Fe_({tmx?M_zYW-CS!rNW?M81CTF}$2zplZbV7Xo0d zEtHa#@J>&U?Kpi1Dgqc#l$>cPk@5iiAatAvEt3(&kirfn2O?fR#1a9Fz!;>U9r@(5 z-Uc&m9V0qm^4D~oFR8I$KA)LkGJRZ3B%c#~7B1FnrucsbbUycfJ}Fn-1@zN(K8G>AvkbZey>A=WoB<%3ry|DZ~0i|_al!V zLyv1-n*=_q(4Eht29e}&pV#c4+Z~5%=Zgq8d1;lO$CvHz`T@^`N@t@6AL^TT1fNjM zcaN98m)Y&l=iv?lpQG82{F{#icCP9LWmW+<&;i$#o!*;`zKfi`>!Y0(9+sD!{?Cn* z{0A7Xet({`EcqY(RqOq413otdJ0C;P<=?lE-Xk181_B7WaI#`h#Bh5e6JnxD-HP%# z+mFXrSAB%%Tsn?$CO>8@`CqQki2NTV5!RQu+COFj-boYoHy$5}p6-eXA=2MA?;H&t zC=9RKgiu81>pou_FTFQEU$->$#318M5fv&&y zn^xhcKW{I1!b#nYA5r!5L{C`(ixrCrlid9|;Ae{n3~1(HPn0gq5ci4W>0&Ob6>wqA zDdurqu$t-%VI!Hcc+vI|KS;~Lh8a1Z+^jwEXPX=U82*>)UZ7^wMgV2SU( zibo>X(zIXNgM_H`LZ_`(R^Wn2=v2hXk7HKTTa2&jaid>(&_Uro#)-O+YFv|#`=(L~ zX)pDOgC!6U!Vy_Azel_)bh)7KHp?fLBtB(XXV#8k;A1(j@m2&syK}y&(;yGjQt3kU z6Ug1c5r|t1H;ADmn1Ia{m*mnWP3LUr41gc&Te*--to?wDGDQkU1MX;d%oLN!PIAvs zLP~c3vS+Nn!k~MI=rpselrnQg&91IXw}Kg^Ih{9Cj;ziOXXVv#3wSFTa739nIFkCX ziq}^`KV%|&`BM#XCziJ$@nL2FOJsW0hmuuD6TE~6fDEsU(o+*6M?#s0)UY@n|8SN2 zMORHLDM5(2vK7f4(SjMa=L>W&6Ef1&bfZ9R3rK*(5sdM+g$ucnc;fF+^}yizOHsRu zK~CVso1S=@?JcniygQ@HGcY^ zUqEl%ZY%oTu?oK1eqwCFbUp|M>}I`QfQ7wn3Vxg}ek^KAt6y{aA2$jwT$Lly%m1^@T!qJVVMS@I|(ct}WmCb&6`la`yAphxw&#!1`r?U&9?^Lse z8V_09E?A6yXR6s=2kjo8`})^~vvZ;Qe^ z*JVMG?XY=uI-Fdij^4g<&>YO~P{AJ#y`7NUKz>50g!GjI@8<<##yyGQ_D^;{j!Xb3 zULx`03ZAeJmS}x~qC2VkLg2OdzfPh2HCcblu7~h2 z(SIS04i6{CpCldV;7BKNDkrPd3n0}ZgBcgE#Dxl5rX!brhT`rLi7iN#D39HS7^P{HP{yUcTsos{gg6SbE9*>?44zkCI^U;}AvV{I(i zHqPKRPgFo8_Uk8wbQRhAKhy$D9Gg`3A<|@4w}wVUUo0pf#$cTdcdmc8BQI=u)+&~{`S>{b4>AnNu~pTzdoVAUth)3P#k z+vJe-iI0hok%5upRmG4ciPq`UyB&&)QeB0tj{7~w_nAwOPV=;okE;*MO?_Ln&bM*{ zr-ubqw%#i~D$PO}^~yQ3;4YfrJ?a!8XE3T1Jb7)*OKz9eBCAB=hC<3o=Xsg^4&6%w z8}<*ams^Tbud-$oD_y?bj}roqO<-&2?tPi50Rg^VljpOn;X|QjrvLqfd1#-2_wn|l z?-Mwc1FvvBm$cA+^xaaJ3t?AK4#q(1FETNezlTu={qwh4)W$NX! z<52R-DW=+G2%feLC-Y@vS9KxFruJv|11kHv9nZD_w;r2$M>3W(Uuw$3N8r{B+h5n? z^m!JEkfalraO^@RY6xsikmO~#-A-=?1s|?Lei9W}qe8K;1?27s#y7(uQR6G9SNx8z zV15ha<{cw}%2=+Bdni$z4|nSu6KkA#5`4oJ?5l|_Wyu^HKo|bfwzRkM>>e~31klPzq-p4>B3EG0RCp+U%{+Ec)e2(cI;b>JDj|x03JsW|N*IS+t$BGT zq_(nNR*gXxTBmR1#yu)JHVHx%-;tmtvog$-clA?G^ooX(KP5Z^Q+~98;eiv^g9x&N z4kZ{jIr`1U?!F$=qD&P<0gtv-fVq1r?##?3 zNCnvxwO$bHK^1W`n#7#oQCl>KAYwiwCNer|=WV0BrK3`csAzzi=ka@sQyxg0XCk^0 z8t9HuDz1$;^h&ThWRN@C013Ki3{h9E>1TYZF`-FI7Zh~Gw2S9CH#nY`U!ERnLE!Bi zjQjvifqJM#VB*~p(qYk6IpX;6i3#lrDBb@eE3vozXVD`E0v%)$e!l(_=Q5nT^4y!Z ze`2L{UeWJ~)#$Ljc5%I}tx$L1r{DTdzvo3iZh&d)PmhPjM@7HUMPrcME~hGTh~Cjp z=(jHGP4Yv@&ClV+&U+@Wpijlmedzt@w?78gZk<$07YRo6X#Uca4$8nq0y1C<3}EA?hjyd~db$7;tGKoW^@3WXf>;hABu zubZQkvqV4DY+^)~KZe}7O=QMn!~FsL@)M@)Xm@>LUsls;v04sej)l&q!xEP5rGgV) z_UjKp|3lt@SB3z!a#^O2mBW}Cr-zIB&)e1jqt%CjQVx}B#>~}?OE>==OMe5^do17n z+DM&}p7U`A5Yn$df>@fIoCILz=6nxkOB_gqzHnYMyp?E2`_7~ zn1Iy=GPRazuuM{U>rzAacxesIfuvJl^WrnOXpDP39wWrV4Sv8zU=9w`MUXQ3e%+ae zCo|BeMd6H8medK#6noGD}G8tgA=%SF%qq04d zYxEd+=@u)l@BUWXb7PVSrIRC)7(WD_RvU-5N5<@0PZ^8R4%GEAdOIDH#bEbAhZ!A6 zreSpPMn#h`gp+l5^^u!2?8ntyYI$|aZs0xFs8x!!!Dj!+4N#He+!wMI;qs@hASFOkbBIs|<5|zNnRCUN&yW8&kw^rP>-AR@S~C11fl!Dn62Vf+ z8$?mevie`DZN)#TtpymDz-qG?nphP8t|Oi*DQa7*b@tJ zaj$11TzXxc2YfzW`Yda%mKplI(;tTcPfy*I#nmRM4{!!=8OK%+rE&Z%-%O;@o0__|viE8U z&&E{uT(Scm^O5w|xTc{%B;$=Z)IYBpKXE<1vYuB0ZVR(ggwoiv8`rYDx(R{TsU92q zb6BT}4*YPiW$t(wvzOf>u~?)_TcK}wZmgxLdU`dRX7VX~CiS!Eqef2Ea&OPNenL_A zW|~%J+KZ6t!z)<|xtEB*F9(fgOvx`_9IYpkB&dGWtux08|B+QO^YI$joD1~2rFUTS z61G^%ymqoU5{|rl=@&Z?wn%a|Ob6BbGt5$9i4HD5jEc)&St8xBjBxpZ9!-2{r~_%W zgQ31YUpE`vWuisTe(i!{_2wGZRMY+^VWv`|K{~zoO3gAiW{;$HAYxzm04E`zxA)jR zKyMox#AT~_{~F&*ituY1W)m(M*ye&65e`XlI+d948lD`aQd1uoyoeC;vapB6?kX)p z+6`kj1<*Z!0pU}(*=lKR-pGr^cYeNcG(G;VtC0?} zpYiis;RvVL!}WUigi>?;@Dzl@>tQp!Xnigkk%19}!4jOkbWT5t72gK3lt7G~69mce z1;7jg(}ay30>$d=b;AqD*`nRSw*lditR0ap&vQFBcScu z8jWYztI}lwxXIN2AJgC5UmWazn4XREoXA$bARcB&RvCJjxW$T@O^=^%oaRM=W}Ppp zod$=r5&jUJx8$AOffx8cA!RKnp&Ykis=!LG11knJ0 znTI`>!zI7Y7|P#aG@dXhSi_xH?6-pA(bDhRTJ@$(bOz@;mVc9ij-LlN%au2nK%k+uY%eMxOt0UCKuqm7jGN9%HEa_ z7bFm=fX&{=hbM`qOc*)^E6*X=_VFF~6@>1G$+SaevBVNL!uAZYW&e_c2<95TZp!BM zMvttd-4(vvdtnLR=I?J=Q}s%-irF9#RECQ)UnHhLB6cbTi^phTO*2@T)n#F-se^L_ zNalYhPR)VXimIp0Lss+w6T+zUfDbhgk8k+;de$8#VA$H~b^sCV;6CU#&$U{T2w@jRqAe&AKuF|%j{UidkPAz3vKquA@gC)mv z&m_*0d$RyFItQk-)~zqpzcO!XF%$hlAt92L{#)i(`1-@?pZKPE2zaWk%l7&uFjOG; zG_3hKSKfw3r*JhL?f;UW{oLvJJgWJ=hs36X;K)Tn-NqXCf|FD;RWP(gg-am{t760XPJM;2&C_>=5L+V1Yz{60K zDxEAH0v8T0HilGF1TK!7Vcil;$PSZtiFkZWUhq&*r_TlNZP2423^RI`X(A>4Mrs5P zwGK8pU2aB^1iHZDfryGyMQIQtaQAuV6R*x$7saAchcgND`+#LXl{L_2(yn&E%LOu= zZSVkWOFjoX$ZVl-Ma=R1y9batV5F+|dpcO|t5%a;)~x&7JiGnW^eBe4iB4HI2&j*uPiWp_ zphhT0XnA9Gx>Ald7jZ=ZG6y#EDelNP4Pt@3ApE2i@{sze2wp706+w^58HQ5?>pa{z z`};*)6Lq69cptoQzm`@HL(`}pR0Oy{+qF%*fTGp_%iko4=uxJPb>(;n$10X@(=k59 z>E90Mr9I*MG+UX;>fr+QAXYG6?6ln0ZjoZC6Rk$Tg2!;ks7Y()7}%;gRhV1{@YsW3 zF9L$d1t^e8pW#t|f{hYObyJJ(Q4}{$3kHrja7n-uSjV8n%PE1T+Tf zv5Dk{6I;{ad0_>aGq-gOUl?u8lV zoW3{$fk0W!=XaX#_lmxItYvwysGV)qzV{5PhlK4gOC8^w zlM47o2|!JUkKzP=>JLFCBYN*D2i(vnF16G(y4T208-P#pdy5NNKk$U`UU2t2e=j=W z)qPExhCkbzC4UA8`aAw62{_i|8c)GV5srcps*KgdU^PAcOpaMEJI%T^qur>F^YN+=P z`{h`TbmGXlkfBuV@e%Oo-=p)@MVA2RUS*;ja;c@&C=LXxpXRGRwK$TAKuTaf9#@Z_ z`yvH(&9ok+6z#iM4=iZqbk1>k*-h&75&U3kzQ92`dRQT(s9vD$oR>*}i9kc~9AwRK z5(FR-1ztGO)kvO|O?EpNIsDG?S_@u_4P`IXSbv2`4G-^PET8KuM*?|MRVh{x*6~0HrEAmSgTTgS2 zmdvaYBq|h%!-{}{_rn*hxb-P0Xf@}ChyJ#1zr=;_>9!$cL+Op(+aml)*_k;8;x$qp zL;sI@!GD$}!ytgOEH5?@htA6drhsEO|Lwtmu!2a(C%~W1-Hp|c3#N_w&f3q$fNP{J zB=V-)kJZjg!OoghV41`h1lb#X^yjpn0r!sYJC2<%tpRO1e|#_Fe39s?m|lziyo?*Z zWiGzGW@~9X27JbKB$|{Qdp5MTTVfCV_Q>=bUTnV#_*gm>7T=9`D}vgx-;=fC?i;PAEcT~M~>3b-J7{9P!~ zuKXPRvt!FLpoi`}z2n_*)9un8R8uO0!GUy5Z}YK@srgd>@+~0X;lRT_L#N}j*<*_B zS={j9`{Ubq1aJgyUcKaQ_pd>Cn7?c~JoEWDAS1qq>)6q**Vr#K`~>6UGu{c`CnvzQ zb}GOEjL7-CX15`El1KSmYX*P{qc%eaqn}NQwC3O1JB23c<0c9n0$n#r`14Q^mo{lE z8kA`qyVxD-x_LRLtSBW8zp{@2$y4H@0Vm4D$Z$?_P43^4ETG$*e|YA3x3I1oVA>Rk zA|jaE@{}o6z{ew|eZlmZJvQSblujgvL7j6)w{e$2U8~^ptYG~`rvtL;B*zAbenGRz zG|^risZjU|CO!aJ!)N%LVVf(Z-WHh;Wm7Td$QqzYf2*pS9xLq4i!h8zz2!OYNtUVN>2gAaS0qc#6RjDNmN3O`nl4)ptOR-rB- z4;M5u;5Eeoa(5?XUdN*Xm<04G)8EFqsf>PG4#`BwO5oGw$RZ85_ll6zK-ll5BeJc@ z*xP2wwW~lI`tH{FdeF>o*)GD4eJQ7+(*?)oCp1vjbqn9Vnym(@ae(SXby86P6GY-@ zSb2eHsdxtXX(j<>uUNpwN&rQXJ=29H4QB3ZboIjDORWturX)XgrBc{&+$*}^AdvmXFoxI2Gj5WA06@1DK4X8Brj;)`r}3JCw=a{! zaFbDGn~Vmd>I)+zMG}7QUr#+eSMrj=fXLDeXo$$wiZ%R(Z)s*Fs;^F;IS3=B44GEG zXhR*I?-HF2oMFl%@;6-BzUf1UmNYCYvyVC(Er<6}xq1cL)xbv?tJE{fVDz!Fje-e) zhsA(2!`z@kh(3E`<~&VIxZ9eWhPE6=tYaAPFf1lKv#HdTujg7XpSp2##a!WBUht12IitO-f86oZDoo``;_(OL zdB5?bPH@dMXT8ZueK=UkI+`exYw(0mCo{v*2J`c0PFrc1t&}!M5m&_jYG>)eT&wSa zvBiuoV5or=n?NN9HH#nxPWlBZ5wj_OJT>OOFue;*{85o9AY*Ot_xn&aq+-Eq!y@r* z>2tK9_8l1Azy6T+<+X`bgZ8a{j~z=wAsO$NX)>${2F`R~C2ujX7)UM83PjxN&2TEq z_rx8Zje0@;W&#qk7q>lt7@nnrAm7QD2xEW1ycaHR&A_Ux?9G7MHw#~0(ozS(1;4>| zdXWF_n8;jcedpu*3tvBJpYGQ~WeqIp29d+NVLd$jFLcV;#e3Z~W2HQxQ&1o%5C#=8 zcukI?B)4*8UNFxf+9r?-_zGza#aF9G__vVGfXW7@@Nxcp z=hkwjyk=<0_D8Rg)Y}47W%|TJ-^bXHPRbRg;?}fFlo^KbObx`&3WjyXiEgHGIcXJo z@-$WOeh`p4D(_sBo*sfDxow}?Tis)gjGKP76)NVxK`pvI)~4nP>f%2EUx=QSH9c05 zoW>7(fEoGs-Dvq6l7c)|R7Dgwi?9WGPaMTFO|rI)Kt!C^$lUW^ z@yow9{2y}1DwO0!?dpFjmr)M}9Byz<1|XZ_c^x??naa1=cSZ8Y3QleWt*z#?J1i`?2^JWDEgpbzOUUb7!mnOoMv;Z0$1 z5-DFOl0r?4_{I4vfYV|#HfD4QI%uC{C_M>!DKP4@4}1f2IAlnTCYbw|p1HoVI-Bs1 zi7YPgtbAi#QGISs9wXz9CxU_B`W`1 z&7k#O%nxr(te_%kR|J+)I;jVp0xWggQJ!>d)lR@3$&C@C@-KPo>(=oM&*2}TlJ0rv zs_V>;PwXPSbK)XQAT*PRkHxLqM&Nx(`!h=`3~()g_m9}&qr#(_4>+8NCGtj}Q;+4j?N)A=#?C+@e^T^wEP-dyp>_`&4KkUS@cpc(`sUDLMMuet{jrpraL#W4(LwF;06-2`E1Q?B;)1&OvJ{ z`m8mJNDP*_MuF6&F9eRB2kfzSAarA+k6V!|Z4XPIGOW>#^#Nv?A9Lp2eAH&M@M#+r z*+N;K8Uo`wPU$T4pDf;W9bkT5MJ%(OVXy(12~FfYA4c8ti`@^Z6j)mSJ$1G$lNriL z6vSIXbBz#n`Mn5a7o@AtM!yX1%-KE+N(Z})rS9!i%E`P=jyt`TH@hkC7QJ3={~FAe zD7VYJfDO}{&r zG7kQI#>^Ae2;WKe&7p|-PAyg|sj5BoHB~>KV#l5^ABHUt>B!R4<>h({OV5CEQBnBK7I~A zOk_FlWNSLMr&fbmd_0vXQLc0l^Djp(2mvwj)|JRCK;%Bp#dGu~J4My=fche-AJ|Pf zzyrH9rrc5cA87x79I@#uhCmi!Vpblo=8%}F;RxU7=p~eq$KyP<2mdY}H-CzhPqx2p zJSHqaEP0QeU4`iJc|gzQJfcseGk7ILK-&r6hhpnuYdEBioo`cnZC7xND_cv-V)YF-WSxs-tb<*0f>hK4g>%gc+Jn2m4+_ght zw%VhpH}iPNdEH#t;J|!gaY739*T6j8A)7k4NT=5}tLkPtB75)MgprX}`*INuV|E9{ zBFD)nSBh3Wh)ILbJ=plo{Q}E3Y5~$eCyXoRKKC1?2=PJk=(C;B6sOspw zb%^27T`FuLj`CEed3`T1QhH;3%n$R+G|~ggb{lU-yh9sv8=1e3uyQvBYJMGxU0IAul%4}3xVRof8(i6UwcG1mB)O9z1-WuIy?KfGkL<_ zJ`OVRNvLLXH~7+u=APPjBA{@ zA}fU{fjL{vn77N9$1*xklafWPo3WXeqi%^v`&C}e33WW#U^Q`o1V|dU;0c1;d4o*; zfKv<_xYW*xFw$T(W?WS$xQ*s~g8fN&E+&K6?eEbUt?3q1jJ7;mQgB0=L~GLoK2Niy zgZ*v5zE*L$ZAFALImRPpS)R6A>T;I+3LlfQYvQ~(`s!MmoI)gOEE?qKM~MNnFb}Jx zk69F33+*<36ozxM8R5i_Z8h8B4S6~^p`fPF(u;LHQ6s6=p0DJHoG9W*sr56vM?B-H zgRx-&^i%&A=DulQTa5khXAsE`H|77z{hv@T%J6Y1k0qCnW52vq1pq!l-5N?Tj1WU2 zFhWntpgdaE=KaF!Ql5d zV#jMq!Nl!cW|xKyQk@LSQJ0m>;$;-ZFNk!{)NKR|Onn;Hk^$XdZXdfNDUQ4ka+wos z;*07j+n(Wv*n|sAfnL-t7P*w0Jr@OR-Nf z^o#-Kfi_n+7YBuf^9U)t59d^@vz`T=ibhZ8^AW z(O%5;TB!P{G=Lt=tIj4jP;LNtS7f)EIZYYKSA2O4_*^R^pUznp>*j_2ZooEn@t%5+ ziLv%Pykc^QY2+6ZCy4n2t|s^11|~%bx;A3Za49frc$3=tkm+gFjPoeSt5^(_KQ&Lm z?%ECQg11y~QLCh6o6dHkU#0BdQhK1xG{sE%_ z;t4Sn^ZWvrr69H?DMMRYFv-n-&d#;9Oiw%%H!*xc<&0%(s~_{?s@Am=2Ax*lt*qtP zVO+Wr*FC?(Ry9AeGkZ4Gv+GjXV6RnVo*K@u5GhBSK>_%IYN z?Gb*-tC0bXMMby|{i?0Ui=5hdK_`;0qkQ1AbIIFV+8zSs?q=(;1>8jrFN4w#mibiS znY4g;6uPEQ_bk38#2M9!jX6~83Wh{<#KLh#v5>7WNrks^GhQB;TDLTsJq9!urStXDeBFzh zz(xpsrY(9o9_70YGmS?DvuW{K$p(ERE+mXv)&+=gtI>+bWsRi+vT>b=$<(l0^|f-i zqevIcuitqUYj=nKra}*_{0Zc1$>@o0i1NCxe|LUs?|A#iXDFDhKeyV}4a%_%jtmk` z?8h7oKaXD}1P&IXMmvT4t4o@#i@qv-tjb85A{kCIut&_8k9V<2;F4jP zVqEMDHqhDd?-6-;?{&&G>4}4N3*1%g?uRq_rEr>Eu(qHPs@`Vc=xu2>>{;q?%1$0wd!_&0udIn zVbvH>8Z0Ue>Kqesm7Mipw+}JZ-8e6X+@(ulgJZKXxyNYjK{e`De170tCmW`%V?{#1 zR_AOXo3E;f?plDPobsZ4xL0rj++g0JGv2mm(xM&e-fl}1zZ=A2U4B>zxvhgVhh4^O~ z@sfCmsI{>I>ye2K^EY^5Gepbuw38T`MzWryW3ynd3Y+KR( z5;(S}UZp!2m&IUiR^D!gEY?5#K*;=n8xO!^Y^evQ^@(c(g&kq{Z=Z~*LF#{JT}~GK zSY+5fXnLh9d+-j-_3=X3!Oay4uUgLt9K zQJw(V-Kp~^?!0ekUs<8005SCB;W=1+q+iIDyG*J=jiR@}Uv78n`rXK9StM&wy4VLs zu)DspFv+&zVG;+vsj68`oID8kE?QlHT!GR1Ca^H!;x!&)p!eR+QWomvze{F3R1F3Kf57mE`w z-3!tLQg*Cb^$5fTVlwR<^J-zm!dM02K3NvIDXY_<^LKxR4`(vCN^e+AO%t6*vG$cF zKO$8#yY{>@?KS5PMDj*6XP(DKbsXY5#A-A`jKV5uO>&ULkwOp1s|hA8MG}}ZomoCs z^a=NFP)<0S^6F=7mq`S7rDu6f3iGu-mFHq_8Ap>ToO?twMiqsze87etA#;k^csr z62vS4Ys>eqYnpfZWA_)-T|NCFrvxLSZz0~q`THv$-!BYXLEV`NHt%PRU@ThPt=g72 zZQ#2sQ$Vm`uZ(`hn0!oo0*t^ynbpK+X?>)cBtD2NkXA~II0IpRFDzHbO8cn3H@Vm6b> zo*um{&1v?X)H*avW;qhg)$x^QN3*cW6EFvOeU700oJ?X9pF-!bY|QA1!q7gDei_F9 zdW3sWR5oXAkzB;8L6uWzv_uL=KU!?zXcGh9KpqbtHPNcSPYtKM>dpg#tAvn3s)Lb5 zdc|E2jgGmZI=H&)7qp|G0gT^F-gD1n+Z^(S6w(INkalack8WfDG`%JvU{spUm?{^^ z`d!_r+zs7M=o{!!@DuzliuPS4(5lEMImtHJf7J+i|3Ej%BU$x+uw_rqI zQT12PX(gqT`ieRxv8>$D@6Orhd_vj!CG)oaT1aFh;7aSdmH+O=7Z(w>zI?*Nge9WG z3fOj2Q45=H&7v1GM~naG?-Q6jvi6S|NuXw3#R}WsA!FG>aLJ}$4OPi6GWF4jecJ_T ziU=|)vfhP2Obm+kK%x--+FR{R#8#~begB&eH|2}oRl|0!CR~?TFbmEleaPUKE@2bu z(A#JjWM+-MFot!~wYEwdE=vUcr={11Oi-ITK52QshFB|+7x6`h!-xS?u6^-xRpMW z-!e&2YyULt8sHIRd_Ra?u_A7&B}- z)Vl+~z}#3S3aLE>r^-eYN2-8=g!RFIfycva6C(A4COjybis^s z2<2wQ5SLj8hJj+GZW#I2&Sahb#OWrbmVB{-QFxaHB~8nXO&-?5k^k{UTm_YCID>wD z>_7x-%8q0C)Gi5P*+8dw=yYm(W2d&&$EnJcSHrPkIH5+!GFA^$HVrNiB=FDn?+4mw zFAjEew>ed+^rY>%np5)S11=sVYZ;snS9W=V$B6qvOu#N6=1fsSRNW03E5;)?|7N$1 zO}J9C3|&Ce+2~perbm9UxuPVn5e;9LY%kXVzF?CQCh z7G|hNAc~9W|6}Sc!`kYiZtV~(5Zs}-6$$R{?pnOKLvfd2p}145xI-ykife)5QnXOq z9SRiv^1R>mo^$>t|Ms5O+H;LL$2}^8OWQkioNU|1XxDcxRp$cDJFARzi2PtI>^-1( zKvJ8)LWhp2ZB@B!TGgCFRjHg$9J-J~zBA-$dwNwH=n#b0GVG9;Nqm%6vX<$ABvWtk zZ+Oqx%jJKy0Jx#dj{QG>m_*dmW>h(sQCJ$KZkSH~XK*S4yL{vB-!cvVS&Rx!6TZ(o ze?eWj1Z&~}G@fZ}=^7KF+782I?*oSS!k4~v-Kzh0htD7*k7Iha5Z+(K7kZkzv#;8( zi0x!b{b7vN@e3K|(Cfn$m9~NHXa5ITMe_o`ma{Ja+fVnk5P^DvyO(MNLt1l+FPv$i zN0DzDKZZ{Vcrx%9LwoWUDh*jBW44+yIdI0vq~(5#AS<(HQ@<{sUtD^4boNrdEqJ;> zCh+Nc;$(h#vY)O;t&NIk#ScTc-Cb~R?sLWMB#ukk+A-?Vq z==d$)Y40>b?@Z|-qcxkQFd1o%z5~DeL6d{yfye+ZldwsD8G{7-H-?XDQi?<6r(^`D z*>=R0)!QcdRs37|=A^R`=JFISJ>q)RebRir!q@*@?82`3)mzNbNlM>?A#}yk?AXvAWdjvQ%XX>Px z12b|w8YcuKJlRV zO;17Gf5E&J-%u2;W))x2duoHx!!1Hr*mUnf>r!%#zdWlh^jec+J;{6Wk`?0%L3nL| zs|z=r_)-uwMl<~`4X`PGgnI;KDnG|AN~WHUmR9}zcS5@z{^J2m*IwiBGo8al6Ar?R zT5z#?#gX-v%YZT7TV=rF27OLYwV~WZva5X{>ME=V!Cr>IdPjK1d>YP@JpvlgWXe#D zkg%Xu3lYSWZyNwK8X#~pGU>lzP1R~$xn(Qcu%~!6&-aUrnZHUa8FI4!29m_SBl~;P zc9H4ddU`U&C}WdJ2?nK721|nTDPU0=6~TT+|$YWyMmx z$skvgptkqq6(X6?7wXpAzEpIQZ<+Wq>ZL{?bgthi=+tkFTjq%UKz`Gw*@SI-X3+FT zw1J*lGzR%lci<$EfE?~e*1#PM*B>4lHWh&UX$4Ok{sWvoC)H;;YT}s!YfRp+O#66y@p)d5Y zDDho?G}Rl9kI%6E_XT>cN&>|Hod%U|Pn39`JG1CaF$P|$be>J=CgNKW>Yb zQ}P{V;Bxf~{cc_~ER|-C_f}Yh$7a^GPJf3C&NgcOqVkUN4Q4>O6|`GUR1a&S5pzzW z5UEt|o8AOvob{YB8)~bU%wig9IQ`KCLu~mThpbp^*^tK?qFk`$hj)1Q3CdrjbVkSx zbB-P+?d^s6oAX#na8*)u?Y@5}_D2EFWT6S@A)8E2H?vp8Lh+9=pugO9IE8%4tqYCT zsxZy&)xv5$`o{P~%%op|C8hZ-U{rJRfhyRxy{WYvySEyvYQEIM%$aOK%e|wqy<|gG z@i5H2L1Kf#QE3ms9xu{3G1!6Ik<&TB7Aso=E0+}rra+DDl5htUHwyiZBtwdNk!WsilmA{6>ZlV<8P@Yw?%W$aEtDee?>0_o4YXKsZ#5T9;t=9>Y_fw_&C`U`Z?OBf6H_QBG z2Z`VU0mzFr#rBtn#!ScocdQqG7#Xb0a#$q=FFt#9w-h0&T7^K*f4rfK-#AxIghhue zY$#jG<;tQva$J9AO1ZZHt^k~pIPse)E4;R~yO40_kzdp?!r=jZ7=mi7-WdcSv&+j;MU%wo?LQrpTw08jNJjT=3qZ%pnr}=7Y zVzrA#Fmo8C!W_(L^#apfDh<}Mj|J7|ng+AEatwP1I^E`4gR^89(2Ci)0ed5=L{d`# zET8hv`S4Yit$?xw`5%&dwr*?sf&libU01s3IX$e z1&r-Y5}v5lbXxXl!;XLhcT<4p&0F+gP4AQe%>(qk;$`ZA?^Ytu*$By4F#0#N%-r*N z1LCBUae;rC8qBw1LII-u=AdiuRtl=Xq2L}k9>Mz1z$>bCn`(G~)}Rj)>nyB5GoW7F zU6pMr#;P*T-+0>HK`jAEmQ{2sogjzxm4sh#FT?OZ81Q`>NCBZ$jWhpQeJZkIzfZJ@ zcwOUsay~Ut1Azq>fD=Y0S8RqLhtTsTZ<}d4KSVnuk?}WZI%yLTJM|*M9Es+(X?o3- z%TLP^lOf|qs6;!0PUW93QGorpg;#T4bj6i4&3qZP{{kD#Sz8k0sb5^)3HZLqB|I6j z%Iz}O;&QR+YK)@7MW|ox=3!c?SQ|MZ;6``=MM9^3VJ3kFkU$T+g*Qh4j~7@yeiy?N zuwZg8-@pj1YcS7NMt7xtI!jTCT$y8H4PWx zA?rsZ`s!)47!lK>G5;2d&gXcl<9% z;GP!|k#9eOp%y@-9gwrII6s%FN`P6pXQGB-4#h8V})S!|q}erM^YUu05>KaPb{_ z6UHxNPFX+M!lu)E5?O#4)Do!JFV1psL2tRKZURTzaT-RAN&E*MR)BYx75|d}LN%A9 zP|ohAfjc0uLwfLD_Tvwo-5(Ec6cAX7RI21+gX#ezfZGoRpjp9TzBC$&;@&e(lgJX44KojlKak z7(UUTZQ(k>$eKsZ*3Kjle;H?pw9soUqNw5B&SU3D>rLcR&qT77maR`HG}W(IJQfBh z<+`|kz%BZLM7i9KnBV&~`&RwESe8Aep%D>RK20yE6_c$w+A<0x*IPkVMyrrJk;sD0 zZ20*@1mam%Wu#N(9moM4qs?}I6JF-l&B@CDgT2?7{R@b@U%{P~5CUF+S*H7$PJM}V z)~$d1Ij&9D7vXM+KdivGVPYRK6#JwM`NCM&m zHF|%v*u@M)i$cdzc|*qsDiLmH7Rw7M0Ox?E=npsZ7xB4x=3#OTk-p)3p4dUE8KZEa zHNH19*Qqe~?N1z04uBm1LkXy%?jh8Yt;Hg-WHd5Oplt)0K$W1i3>NT{)*gi zLo(qQ$2MtI7*Ho3npW--Px=N`1y~(6G8fl50rq~!(P-dSO&DM*zGc_Ak@^z^ zsF1C&48C3pAqn@ucSpxhFp-UYwC`-1zeW84T>&=SmtG%CfE$cJm0z+e?rURdDU!1) zi&rR)Q%G`0 z(MV1s@muL>l&SuDv37e|;74#T`1~d1;t901tZio%M>3*w*WKzw2g+BhF@m2Pe8-0M z4xB)>8r^yVN>O%zUAm?me9GZv67Um99$v@g>Xw)wgrY~#!XppP8h0O0h?v^r-Ci9)yFB3`fdad%R zPT7~)9+aYzPV*wS9yn0V^lC$>4f*Gu2(B^kkC}ZrYoh}IClSbJd?rN4pWPb7N)cLGZTsm zE@3{d5ZM$o7WKaCY&1jZ5}k7 z>eu7yA~+fJ9ubzg{#QRYLWLEOUiYTt(OiG9<3C3vGpI%2}}yb>%a#$7Ik@qQn8>H3MpUt$6@0+5)) ztcQ4Vo*1_pW;j8{Y>3_-6c5ejInfm{(Bedl`tg!s2IaY|_cyi`$c#X#jZgVEO}CDt zD)+oBr06ciI>~$teL7gnKsdnMKwGIQ02@f%s}o7rV9-40&U*KFX=bovMEJa>Y?8Z_hD4Vp|xb49AH2RL0@XzjKQR zs*1|!QH{rUy$~qOWRPLMaLXGKkI9gOZJS?oQ58|ciU{+o-RN;eQ@$s^C#zNrwx%*W zZ}7{d0{>M~Zz@?rQAobC-}Z7p#oa|wf&v$8wg{5Ksv>9T7wmxxeHghqKhRD**@RDCISf! z!3OSIDv4fkHTx-W0oC<-adT~0I}3I*h0!aV8S{AKPyPxA2=5Qd>(g6o(NKzlE>i&`iUsRGwLl>10u zj;0S#o_aUjyq12nl^>(g0c+@T1u3jK79YIJ&7U{~+C1khqRKTq@-3rW4#SS{w)%+L zT^z!eCQxIfXj#z-@Ho#>cAH>~Wf+=9V`mV(O#PLdI-Fcns?S-` zcfBea>L#IxVa$oEtL13?Kk7CgJUx6a3NVg9By29mcX{ThXZu5yYra8TC-@h}MVS;H zfm|}ZJm3>8lh_wfXn?RsW5xY$-0tk`8$=x`#O6`fPI=uJ1X-s7F$n_&`g7wZS zM69CwRUzb;_XBw=;JRz_B!vMfiH;3s_NKy65b*0_E@YSx9$5zvKAdc=F-fCs8~1P$ zrbK|2EMRb?$YBSDkKpDv9tu9ThitHVHIueV<3(h9aOMiPMzB9YZuNw$lW^}yS~xz6 zagM7^3#Xb`kODcbDtwVU zQ$YkGHvrwtedivEO%&2UBP05D80J_=h^qmm<1^eU7iLN9v;<1N3Fq&4153#ws?>F4 zqZn9$yV<4_VK&k5@wv&lmNlQ6=ITDxSonUi(;H@mL^eO#G8Bcwko-0T^)M&}@Vph5 zyp0_eaSo0w>@(Rn%~$3G>9gm9L2$`Aog)aeZGgfd-2#5CRCFHg*Xg)8M`w017M&R7 zJpHGozJ5bRt@bV7dUSa6l%#1wBE-v6%Hhx74` z7K+@<4{R1nFcjln0-47b>bQ!_O+Vs}@Xm7IftoUeBr8(=O2qKu1HPdBLOK5XAeM2? zPuz!q0{fBH3h!{gZ?iz+7H7n^)@?3~3-GxtlN1mArZFc2X`XoM=ePmCj~7_J7%c92 zVcgz&86Ku)1i6+8{amASSqZF)yKK}4a@`%YSNHl8c-?Fv>ao)wRhEQE7um6g3zG+F0iR4zscr@CN3UibX!F zdQ-rGc<&{`lXh*i(hY1Uuh9*e;bXjUq41M~ht}$MOdb(M4j3XPv?WW~o40o6QfDAu z{mT!!f3IO*ZXxdh_M;v0k&GXEH=+dYKQ{M)=R9svn<7#yS6yrRTbxAIws>TMH#X3I z&1#?}@O8V&$CAK8rIiaXw@(0LOL^*K5aYW#R%ymqp)7l*O?6Ety$$PFrN2s8f~?N( zF0au8AipM<7aPUs=&Xi%d)Fa})i4I`<`Fz@u&{UEWliLpw%csm1YJ+w>$>AoaGOnprplzB`Vl#b1Ld{9R{jfF5TT3VCLlXDOwS<}z_rl?45+GJ zIpkxh3tk_?K93zhnBIQwO~bFplZ-VBn5o#(p?Sjm@DGE#0FK`4Mq)lZRA7L&Ab9s= zw}}M?u(MYw$|)a|sK9+?QNaP@b<|Lde>-({i_fW;f99D0;+;GXh4S@BKOH5>b2Z=h z(T~6vl^vz)sKS@j4+K=L)=^2vr7kVUc}&nBB0+Wfn~kWxJaN52e9J>wpV3>W@l3H=WBe@6`E1};6-3O_4xg3gVo-TRA zi67-Xt#G%epmSdTF4g~CNqC)`$F{(4OHxL%6>J)ji#JTKCQ_(4t_$sxzDHKsEZZB} z&o{@Rfni&E!}<*Xs)HOtQ|C!tqDES?-bJs^3wRq$%qk4Mm;MUfgcwuhu+!CVa>_Gm$sY=HZ{y4q(4JG7j?ydq4K9blN~ z11_RmHs)Kp`Y>7*!oq2R^0ql|tPDSuq`xz|hux((j)IJ-Q~RhZtGXI{%&TOTQsk zF#d=Y9F>@2ftRVY#2-@>6?aicQlI((O*&(H?@Iso5&SXto*wOG*3B`sPjb@Y9(5+a z>{bEbOJm?EO;)uB7$-;(7qJjypsH0OOO3CIkz0k(%)E)n7|4d9MrzdEXCy-r&cbJt zEGmSQ&HTfy{1`R_w~UwC-tI^q>X7(1wo6;-BGBXRQoQ+*$Zfjkmwm;EaDju+SdZo> zov@mV8ACfW(3^wYY@mN_q`1-3P#p1-nY<>p_B22c`GEA72VjtflU`#}R84j`Khe5E zp0BpS5z{VzRzK>k%_O2L_NGf+E&KEd)4{5Ya=r$5uI)New#!cy)D!P+lr>eWaEkD#l) z_5FAD`8SndOO0CP|020q5E7>-5d8Wt5Wug4(T5Sl`Q92l=)4eoI8Y!S5SUMY_Py;K z`$h4BiZTEwi1Hig{c}f3KWP<%yt&I}S9*Fze zs53WNl6`C{Qnp2w+^)<&jMYH*L^dnugYsiPn5dgHJt!FjrNBc-uDXdE{0ni7hXuc7 zXJ_HDH?_4$8CCoX@>$b37AORJ3oBMw78^x`DSlIewU{pA8J7J4#V`-4}@?9CazPUwPztO1?H zAAC#)4GDAjTEllrX&C{Ha70*d(`4Mb)*FtZRSKu1yGK1(R~a*65E}z_m;kE^v%jEj zu7g=9%3*mmJpZvU4}D6xGrAMn(x)pxxCW%eLp4XG(L|cU%jZ|u4r)kQfs1SlvJEJ) z2q8)kt<6eFfxwWjvS;o=+JKKiSk7+rQ)L%1>HLDOi~{|Pc)t;zZeB(}O(4AF z^<%XAu1^GepI<;BK&Bqu+O~CGjaQ&wqW3=#n1b*V%T?9?Y5^81&vD1H2!Kt)j{vHI zZlD}lt|Vd?8s}Yjfw<`9Kkjv&u|NRRAO{YK>_{Ot=UMNx>`!)B-1PkKL52*t21mSc z!C~M{@mj97=t~i5wcJxj==W4f&3_@{oZ4KHDegmSvXUF!yEJnOpK?PcN%On<*A(;*q_~2`UCJa#7#o;)8sWe^@z+Qoy%U9Ha?1ZjgmP zoXD;^6O&q3ZbEX4(B>y!hwO;!-$+}Av3jGrM0TX8hte0-Z8ZdE@?8iqHd;s7DFTIW zxnJ9GAT_X4j2|ni*90Bqlc16l6xLehQ~y6BQd}FjXUubYW(3UKb*FF~qd@i-@T|v> zh;TRrQgr`)Tw+$6vpiXMfOmjoDn7efMN|hNS>Ed|-f@YC+A&9H&ZQq!MDTqR-N2@3 z9mW`G72|>3nio>e27-S721eLhC1QI=NjWOZ|~;jMt}deUx_$r z@<0;`V2Bh9$7Z^h6!mK`U!MZ#fcl?tI9PzxomEUf&-O8Y#!#bi1Qxr5rQZlu_}_9Q zE56e5rA*vC-g5LiDVRSJm%R+lpy_`C)v6D^6_ivIZ@o{uhJ6QUjzF=v!T|#~T)LYT z8bg^MWt146!LvF<8-DBO!NcK8@5COBd&kfQ+y=P%K7p~sbxd9(249P%Oy_$H2C>~G zxiJcfvwS1h-iMVGp{}XgM@_LKFjP{i}8Nl-y=W!~O36&p`*v&aP zS5&Y^V>$->>v=PS4WRvX$wvIbiJf`A{Yz5Uceu zEeC8yl~F6VI8qG7KD^W;JN7hTyR|BpQL-yf92%VR4Yu??45T4I5{bdS1;<#J&kYf- zQ@oM|x{AuZTn8mQv&)y9%t3mYhAdjHv|^7rOk>J@d^KQb{Ls8s2Dn5#YO?~#jJ|3E z8ngTUdo_y;oIX#hq>1S%I76^z$t=C+kY6@ka;s{ehP>ev5hJV}f97Rg7?4r%!R1TD zEjyqdGW?yJG>xR29b`aX6>B55PKtxIP?%k<$V0&OjuLMjJyC1?Tc5jP2jI6zzC%g2 zJief$Ft>sq@0`9D)HkcQ#bt5s1dxTS!i^LZ^C93#p5k=rY)}S%u}9nr( zilvPCwmm5QpY@NawGVekEC(LHGqHb2$~)q#ym$=+S*%!w+KkS{dTz9@J?RQ`iZC88%$ks9-gb}>Zv1`SoDhI^=S7dFk zYOg+0CmcNozmQd?p|ezXQAoiXlg}n1H|PW5N)OY!?)*MdUC|KH#Q*FN7c8NDV#reK z+m$XI`6*f-`o2cUl^(9`6fescN=MjUBl`$YuO*deFd zxP_)*7qTXn8l>8y#a=s8Y<&-54PlRF2lA;M{}nFZeUH8^D13l0tVh1;ML_`&1NB=W zC2bKTUfJJYsi%QCJLElMY?kPLBARr#7VH^@sOR+?sRrR z%j7S??o-q+qj8g7?Lw4@_EHTL+4Ri1?4Z{6`#&Y>mJ&D3Rzgm&rNMlRKib%JDQdac;KIbhj&OYyGuo* z#7kLiuTn$S6d8cYB(IaGj@oL5kTRYDq_a>UMPtmzww>n}#*iDv*d8+w!fB5O;Q=xF z#tO2sC5p_sKz;r8chpdO$pNgFY9SlQoM)mFi67mjo|L6Yti2g3iLqh^v>KQEF!|pG zxtA%>H+?&36)kRsnMhpyB@^ZCAI6%NoIv>7@Z75-jly8c5zh9$S3>L=JfPPZNSoRa zR2iE83?6Jc(b*zKCfFtjGelnlA%HHDliyQsh;!C0r`R;z$}Y+9VQXkYWN5Y+y9 z=dPJScUt2Y6DS025zcHn)qjHtv%T8*Y;)XosIF$f=uY;XUr1CrM~34{R!dIcmQc^v zgs|)(M><6{V%tcX;_s(nu3=uOd?TX_14JN0=uT$&3fE9OLyANN#{aGw% zhm59z`CZMG+EQ^uGr^?!)p#v~p*hA3w8s&21muR*bQBFC*8bajypPr?d{ zkD&G^j(nS-nsf|eDQV2Hl@cdI7_sQ2N2j#@_~;Y#xP^fEP`vvS?WIZ23U3Y!9*PPT zA9;YC0Y|3UgQgZ|$ZM?x5zvE99~5bD1tWbgm?G59ge4L1qKK!F{IGd3zgh4kJ7$9a zHc@kZM6&;bwzns+eGTChNn!A$=0A$cA^B#Jb^6w4**LSMM=W`D^5$ zII#y63d&e0X>!0M^M=oI(R#>SRfBe{SgeqH*yHm0%z>Of z9n2Not#DrAcQWCBy1P;)C@3wLesuHU{b>F>zZ=DVBlbjQD}Q#ZwXLI%XI{)$Smp22 zwuRjs%Zm_O`xxb>w5HS6JG_{=yt}l%VkRYWKbISiwuWp>3iuGu z}~-4~3k9#NJ`gmB;L!dKp}>-9ZPq{k%HPU*c zNW;Vp#dsG4gd5{bRFWM~u6U(v$y&M`-+;&i)~8*jD73hdwTe5wVP?|p$;wu%NeY`& zbr)nr*7iqJ4>hu@`?+j9Ch^Yz}dDo!1E*EVZ;$eOD!i^ zkD{BlsWpa1Kf{~s4cqfjn{)V1K0IBGl!ff!FglXQa$5kCJ4oGJ@Q#Mm5nH=Y8_Mcb zUqz^k{`c}(9Rfen7bj@Kp~!^7srO=;!DBl%G?v{sIGU?Il(;DrHjY6v45oX8k(;y* zK2mLLm40Sbf7ATJeA%imLbUk@&}Q@r;l4HD3g3DPE~}GjZaeQ3mbcTzA<~!G(_$1c-~t=U5N{p z2{FU(Oqa`uffAt3!OK)gi6VpO+sklzj(t8!MZh)@i~Ffupa+D@1GR46il{u;L6@tH=69nAe^Sph@;UIaU4i1Txf z>tT7^R?G-g2V@fd-t*ATTI;Ju%U)2DewFAOkY-NGzfKlq>4J?aP6mN8y7pPV<=WoJ zdHeEnF{2OGvK9u(2yPCJ>g;rI6DOUd(%p5-i3ktcR;0PCy=tG5Gm>7tV7m9PQ66xo zUUQN7SonA3ZYMX=65_XFt_FudwlNnn*D+bJDl*+mqCEmZgx%x#@Amxni>95_ort!< zO3!)RZfUyO{+7xZ+9WA@a;mdR7Vw!oA*gjpB?3(AK>%cS@RypMzp_lGcaJUIMIOz1 z^rC5(#WUo7$AIpPVXXPNoQT=^e<}c$>fwd~rPr^%z*z>HTRId**4ncckBz6?NMG{B2h3q9i`d+y7_TN>5uRED`um9}^w6K9EOdFH+hNJ^eW5akTQ7tld$O}m{ z-)UWGN@MWes@Xcl1+sVw(&7o%oe2_lX?;^2;_(;(4z?r+-=sm%>Hcv~HJ;j8OL}Ew zgr%!*4ZqErg`%+U5_*Az(MMS+?-1lhutnJnFp=ko48K> zTob3PzlYa#v>p%m@m7Egdl#f@BJ1TYdJdO#a`Xv?a1Cj8K{SoEaxw+u*4&V!=I3%` z76mN-Znx1U#y|^y(v@B}+CD~VOxnEgxM_5sR})dyRnyADI83#T?;h$1^;RDySjncd z%WJYJOV#Ge+^FBwiZ^g$`2e!(B-u#FFQ@f5yI^MklZ-HR&HMO4;5rTXP*6N$IEG%0 zg^9fNdkv@5ENQRNmH7EqZ47!Q%O`wiV%`2dpf;W-{Y$p;Cwd2t)I4G?+#eyzv-Q9T zf`e0bbX7;U|6ac+7X9vqA`9j7{Cq|jmMm6&*^hPRS5|#NYy#Bbbz{e5i1>rK3T6QF zyU#X>;+4PMAc&)%KfwN13$VQ~t#CMK(VyVPkV>~!+CwVB=RE3`X8j$y$ajh)3(S;{ zq~M%#Z8p-)6{Dw@Pw*265E2x=OQdiSOr#>E+(j-51>AxgKw zB4?2`hlt$f{2v2TH`~?PM#2g4}tF(lfl*n`c`DC$B~Ud*7hbrus>ENnk)VPaG!SC7=v9)-;ts82EW> z%0w=L5R_Aq^Q0wX&JEbW=lUg17EIHONNs)gQ?Xg8LHFnK&EiqJRX)z^N{c|ZQTi}Fq$jSY7iU_uZS{&1j!a!>S^dt{>yyVk^E>^q43=i=Llu>#}Hw3PAzGDZ9^#(JNw; zI$A4y`Ux5H_HUjP6_{VBWOrchp9fnhMCc!fkvG-d*IJ2GeU^*38NA0y2oGvL&W@ty zt3&xt)8hOvE(@SfpfuUCL5q&|;$Sl|NwhUYRr&5UHrFVS9C$Y#C&Q zz(1NI008+&n%v@fc23cJt)sEwpRwysz=MQ`t&&N~`XkLsFtf5(2p{F!q(3WL%iM$m|TC~s&k8gGmsKQm-v~fUB!h(;)GF2nGkD@!rZP!esFvr3H zbSpH5YtGav+5$nDZG$mQXTcKm=f4IY5s2$C_^Pet(^V(9seT=iPb7{g6AiN;lH){n zsDx`Ol~4nie+spxXF!IX92ZQ~6c$jclQaC#u#NFu;`l3;e|>Mr%UWK`TGc9GAB`H_ zN`7~do3lDSzEBKy8Do)dNXGZi9IB%=hRM!d`;h6!;S1PY8!|)`V#en1+@K!+Rnjv} z8?7sMnDel!`GMG^&ipo>fC}*q3_?qUyO==es8%w|>oc*4aL8n9W8mk?!OK)>^3$gz ztefhfHQE7aqKRC?7M)Bsi$SpxV18oN2tmxFapP6B5x~)@`Ubiu&EJKMQ5Q+3LX>PU zf}kiPO}rV(EQs_mQY7jl-K7fCGTejA4>E66aGnz_{+((VU0t`{`5R*NaC4ft$fZEw=chMfG-)~=0$HZqoyi8Ij!)~AVcl; z6_mLR*zp0tN3b>V2fgc8VCUdV+M4niQ+e=vt&ol59NR2;NfRTHui=q>SlQb)iEpeA zWt0UosmLfZ2g?{|Kef?@QSlz>Ew-u*&|y%_`tWK(%>H1BhS@S?lHx^)F4knujqFDh zr;qdvMx0mKeW6^JpF?$;2cH572HbIdVRgSyqNo@#BPsL0zB7g`bWlOPy%rr-h;EvG zqFH_K*R1PhAkjnpJ*v`4m3rsc96cG>7-OhN@rNRFz7cZ%t83*K%7knkYmP$`Mv1bC zJdxz5A8YGY|Awwaj_1^-GGuM8N6O==5uGi*n@kisqQvUdD4Gbp?ZYcU)EjI6)^0#h zrsjWuuX}*pcN-8qIsc6))`q}?1OdTQ&#KP0eX6()slcyRIZ z@gGDH4i=AlPM3NjPI;EoM(J96{IuOmyOu}%9V3TFF@XcCY|ua^o_kOcsnO}9?E>wK>r@82h_^iDf1CP+N~tB5VG*DZjoS$(Ehyo;q?>YqP0 zLIfn{<&0GuX4-x_`BguN*_mlWmbli)w(2b$*kXk`p2~(QMPui^<|)R4urU4nlqq$Y zA|z!Y6t(YQ`7@O>Q401Z3U6(64Cma#P@U+{9r4~Cz0yxY^scVh1d$-9C=tXM4Ae_j z;3*U3$n=mwmePEHkK%1zie3(Orf0|l0la2V9>5rUtJa%s#7nn6?RE+N7y%7sVFSN#JYg|A{Jj6MSsGhi!_`MX@Y zN{$`95i)wStx)?R8M{Y3Q#vemxt8{_liD3%EgMfl9hl>Ztxt&@92jijA!EVqYVgHI zkE}k+4Vu^g$wQlqwYZX1s$OByhnH-`kuH}3bIT6Cn}AX``!P-;!^f>wM^W|0 z5qxGgjVfM^f&r@29RfTEO7vkc1B{M=ww%Gg)aN^;;QhWyR$Ah3G!9BqGevJf8Bmr~ zMnYX>b9XmuoL6K5eq;U?Vn4Y84@ujOEDjIS8w9n>I7BAX3)y(JUJVZ^#VBzml!gfE zS&>rZ>u8&o{_`?`0?XP}q_-B@M{l4~g^&8{;(oVKi|16d_+8j#Ov>v^(z(gw<1und z=!CIZ@E-UD<43u~_j|ifF9(bD%i#C_p5Ar7FhGVaBk4GKuN8=2cdk@IUXObGmxaCt z^^MPuBNudB6a`YTXM#fm*WV=h&n{GnH4z6{Zmf9twS&=B5jyEq_lF~WRCz!`Qo+v<&D5sVaMZ@Kd%q4K-WLw{6b!@Vo9Qpc@_PXUmv$A zjuUg32%6mAovjNUx3Ayt;2i3wqTJhKOSIXox`R_8>)ww(@qC33yG8w;W)}p1?n3U4 z-?)Ci?5+@f7Th|+jT8taUJ7T3|dF!3_U zpk3l1oQ@HpX*TR*R^ahhVpe3?vGCDva+zr09pg2v=%Rvz3{Uwe@IZGvG8Y^T6A}GM zM0hS8BE{rh!uki2w}lCqr1jIdEwH(VSpYt6qEq$M12O}6;>f@EZfPP8GL`d09Hh2D zUgo*_Ese<>nbwAhfrMUG`S>wOXj5@Ojv-0drm&vQSEGk?2hrb-L=0U_EZiIfazfoV z)w&x7A&XC9_`4IdUo`{i60N?IOiB)OAGMoRJjj0Q^OX~Lk0Cy_^PGI(8%4Z`mB7|| z#P=oU*XYH=G!qjGLqq(avW*cxx!pUPvy`8|{fb0WM|Y71Lvq@vDlg>EBC$$B)Ycj2 zXYZ;<8f$p`r|$OEw!4S^b%HpfA?_xPr(VDu+D`;ny_<{;dGss?vGq*T@#B}EA?PY{ zVXVdT2n8 zCJ)t;VYGuhR0y3kzue&{Sw)`6+>j?{5u;;;mny$nxbBnACV5#N%OxrTF`(AMu&u9I z3?Od8;WiCS;^`Cv9&iy8w~GS>sY{GQx`4-{E;!vm$(yLR`d6X_ot(JJTXcdXT^b}g zQRMjbOVcQ1z#%B#oS;2U?4zvCpEhUPnAWa4hMJNRIXSHmoSb@W56x2otT0)5AE^)G zt*O*_#n^4wHbrk@6!&IeecF6FLh0NiFTgraou(@G<_-bOOqTQA9;hyX5Z4gLtMv!gTT3d0A^tp<-;cdhad+rpT z>E6*FQ{Q9EZ=nyYR87v0V+AiO?r$j(r;evWF2?SHpG^N*-abv4`JGa^iXJ0}%6I3^ z1@1|Xt~GljI)g5TLknJ?NA~)k8;GXTK09dIl!-!SJV% z5~<@l)x3sjEev^4f5=fT8$Ke(-JyxiO&h~3WZVzcgyWR<>r|n>VK0vLG`xJ=FpMBSG47D(s7V)O zH_ud!SR8x)Bgh%s8?K8N(p7HrQAzG`EVW7ejQW zBaRVqjTBJw6lMemJ`shd0I2*=FLcxk;Aj*%(0~5}?U&w~L`Hdno@rvQNFY3dpBlk= zkbp;1x|L+}Ud!xHDvl4vid|7WAWZx`0t383ewBARh|w+^sUUtGeYd7i;#?yAQICj+ zbGQAgK(w=co#&g4s-0U&i7)!QgiS!bs0;{~TqlW++zakTK`R$mi&63D%X#ClQ}=64 zj7r|c0~>;G{ss0l+KVRwltvVz4;D-PK^n1n{$5PJT7{YlpOv#2keGzC$+GKGyIJ<% zx$Z?!5!{8J)qG3b#{mFZY|1y<%czXXW%YD0+Wr*+B&*BjnmcDDNIwG&Sm3DtG%i1y`NGr;as z7Qk`C@42h)E`!#-u>3sp>@a8Dn++!peU$5QA}_4N!OwAVO&LN)rS1REFc*c9YceC( zKyY71s-n^?t7U1yctyXqnRuQ0MyDWkdRm<^ZD>@HZ$HS#eZ%Pliq-qE@gp9*&zjZd zq@L)!>%sB71&*4ky}Lty`>Z6S7(D z_RlYpQ?coid@SBkuva)}^N#Zcw)W3IMT8^1IeyL$0@jyDQ_#Z%LiM0-HgFN=!z5(* zlE|TFS|bZm98#&Fzf(#WeqXheyu=x~w zVvw_5zE`D5(DcWX{R&^xOyc#Y00{uL*o5$=nrsL>n7=Ttlu_2!_?vAPE)IU;qi%wO z5*J&xNxTc=Otz;v0;jRJGo2+_%r#Itp?TO7Nq7GAwyIvUVdB1;g(8k`b@`0Tt;|b$ z1`0D}zvH!Pg88nBNlmQEz1k9VFV?Xq(!qeEz%IUY2(165l|r=HBll@N=ied2U^N3W zT9x)!VGA<&@*o;gx2m-U_vu!5d7g%qSE_sr-~zrzw8ykVz)wUv@jZOAv03h(pzVi& zM8ue{?J+1W^zyFMbo{f7C$~IvLwD@VO2uG;>cR*I8>)(p3 z3Pm2b`Jk+5rt)NPlpWXSfn)aR+trpox%l+$vqD4z30w^=05+IabHLITMGwdnw>tsu zfHasqaT|8JXoun*J71C)27)=D0;O%d<=FFpDkVuEAG_B}6eyX;u&F2$DExCX7liUO zV7sguV!oc$#o4H%A^HW5;W)d-HkIyTd2utj2%&}n#Z z`_i($nrD=jbUE`lI4vK6=k`Y^MM$?n2K@wO{Hdh)hd>>OvmxyB&O2XfwY zxSs~OS^he0tLv#061bl@&(y!q!lTAEVp!w&sDQXb<9WU9_;?!~3kct~HZXMEHnTo0 zC-`rF6MjVLpF4Qn>1YVEdqEU_tf1ZSJ!5tVKq(UNdy~uSLJ5ot^!{ka=eppWzul4jPz|@fFXxf9a)`87B*qOjb;yv$B5}c)lsp?^Y!XZ;yVbW`SR{ zoDyVD$!|K1RJHp4^_cm=l8``xc`v4++|`e1hv1hd5ktjZQ`+v`D+JE9Xxw{!X)1_= zwodPhcxoxzIKQD`jzNywwp=_N7k|9yv)Xey0?4dGM9Mzqoy&KHjSQNzFnphAICVJEX*k$m z+3(Tg{*8QG#=PxRz*_@7WQv}Rfxw>jcw@lrXo((+MB%gsA-nhCtm`1A_+dAutW;kU!dt5gj^xTGV#ND-0QRZ`Ni3Ik6M>it% z(}AdCaS!hQy2BoyzdO*&iJ96&-Rj}p7G%a-dolOVl3f8>RK?$nCEqDOaVCw&(sOJC zB=>Z1|BH|+lSuynBzH@=uMo%QDaA(eQ4`}M%H(CXt{L*j;UgKLIg{tqVx?4MBMPOS z$xm$o6eRGapqcz|*ccQC1esm+sA;<3=$|^zzAbegQ5WPMn5Sxgl@o*VM<%J5$fszG zVdpKCLS;h^032dNHi8ilBs$COM{xk`;5MXdWD>e9eMTuNt}gb2V+)QsYf@mQ7)NSP z>73Vhr@ciarRfV0F#S^=+qls!lU95u8A=I{FDay1{uv#oiQ1t0U=QvDK;+)6NS z!}kj`kq-hOUUI(44py1q7gafbB9g= z5Gx#HPuAC~S{?@hn-iz(K7xCzfq0Rl87mRxwCSAp1kLxirwhLiE$z!~+w$vn_-uU= z+Ut!^z*WDY!CMStD{+T5wghPXeBSJ6_>x~tm3ry8>gpC=UoC%_s**W zL#p%pRqdaj@8@s{KG!X~F9933mkzusk=OTsI=Yk{KJR6Ihuw|}b-~OhP&hbs-o8#0qv8)WtCh_A2HFxx2k%uJnvq9~WXULf4BzYRp^KhJtq6@_Vnn^WwI z%c*&J9cis#o76a&R58p0xg`<%S5$>g^G7~6P(^}fI+C&pJAGK zHvN}z0Exi#3{=&MF97R6gjK2zN@9oC%ni=l2i>|peQGvctVBt64g7AO^h*Y^NL2VM zs%#k&7AB!QHs8G2p?g!Uw6R!;fIQAAFQdY-QWF|o?f>^m@s?QmN#uhVMLsExFZD;7eB?103C~sqXm(%I_74oL6ZI1V4%-wJHhK( zx}Pb9R;$S?gWC=dvvSA}t*}|qdYWZHlrCV4Kd)nZ-HSWmhR<%^e$x%C^_r^|f6iJO_g@P6+XVhUJ=Rp+SWm||K1O+C4j!^AQ2W>r91wVEAU~T3ok=zl;=DU19%g6sc~<&L zL@Hf**;83{le#=Q!zgVU$US6 z%@Hh$NhyYz~$e$zUuw&#}A>l|IkC_tmUu6*!QQt!SJt<$PZ?QW`%jUB0RS?-?cJT!YUc?AT@SlIUN0#L2!AF>GCUi4jo+TC z9P+ZYJwK4)#D$D}gO#7w_VsGgeM_$Ss}89fm)`}B7nfWNZ<~H*nF}nxU9~9aE`O;e z4bKNC>OE!?O?f>MboLm_z1KZ&9U#5E5Rke<2bc-uoc0grd19|J=2|%(EQiGN@wSk( zZU;TPKjkIxa-`>FCa4NqW&SAp-C(DRo0gMBz!eKbE0m8)LsL#eHP467@1dH;MkWa&DUMq(X!nZelmld+vy4#?%y1& zmxhAg1<8iT?5xU@7GeUMOG3}=G6Ztme)Vhd9bL8V9z`gKj4+jvH@7Y2aG| zI=w2>qfnHlM$MgbEIxmIFa7!QpEVU0Qufm@FwPndLUx*v5H-G!Pv}g9SSRIb{_+LVzv*+jyOSoK5yBcH);GRzxduRR)U`?D(u@v*73=lD*Na4MJKKX7I|F4Y&b9`0 zE;}EO;?*WRfb>|Um=|9RF9+|asaU?E8I%3Cyh1S@O4I&NA2ae(UkJrtu>oEXedy>5 zhPHOfc<&i|=_gD5A5^1Q4Ow`lo>i|+CYLV-h3m~_X;`TrLd+wJA7z`3Zm!PjE63gc z3N4*00pm8l?rxjfb~^WyY8Ss%^}kIk;4XGD2%5Y4>MYmfXXh#{x~&q+(XvwJs(WfJ zsi^(1)+D@}B0yn_SNSqg0mnENwfDeVfDp`Phlk-?v_-=^hEN?$ng}`A?vti&0GmmQ zqY|m&r|@xsrprjNDoW;<5fX!s_u3+FWLjcM=kM-492x$4 zSSLRQ_o<$nd}x9c`Fmo%gd+{3YK+)pXrrqp$jGix!y{wpsw83sxRQ7*Z0OC!dj2L<*(5Q&+>VGvpO^3QS`X&LGP6}&*eBmyDtvtxXYtm^ioWK9w zMVYU;>Ilngrw5T}ytjwJ;l9!-t0Bm;CaNsi-!k-y{o)^s)g>}F6I{Hhz5qdu_rDiQ zFr-^WAu+T}z7hPcQ_Ce{i7Kj|OB@>i6*YMzxC9<^ypO5Dh&RynVWbT(C~Ab&@!d?D z1y72PIGIy=L(w%rc=6l^RJPt6U0=m9U#%V^Ycbwle2=mT5Etur3^!gNcUZUZ-Ke8R zaLFpybjsfm)^01wY_@Qz%rR8BQp1q)2iA$XoR*okrT-eQrR|M(4{+b8a-!O8`2@Gg z$&XroH{`mIQ1G{9da$1}l;wJ+1%srz=O(jKqm@lJ`Xqu=?X&0+y09qMH02bLn$q`h zm&fawGAHtma8o?yLu}jDvs9~=i5o0g_<1@}X*?ODNUHSu)`t3=`(PtUhqJGrJTfO2 zGdD`Iw(qjZh?|}$Xvo4|aI4tVt2XN`5B{Nj_8yLJo9s8OlBMn;dE&PX?0KPODwgmX zuY7S;=y0=f@=oBU0&{BwvT@UeRoWYH3U#r3(@h(_jb}&F2IBrft3leu$ zbatd2%i)J2DoyeW2{?BMZ{&Vacy7Gr?lzai$6 z_uJtu?799=5gpas@bkD z^ttfd%Cr<(tk0jl&IhmLG0Vcx5SAEsDhm)lu-LKL#1cCezeqjpw{m>#YVP)H2IT?(L1@CNhQEVpqd0OvA&I0r@Bdc!F+cy8Jtvy zec>kTYQ%w0v*eFe8vx=^ffl~B&#pEp3q`q_5|Rpb4lEZFgdq4_PK4ZV-FmgmLO08F z4q0^q#hgRCvQho4E%kD@s7Z=KVl&q;W7GmM54^$o4}Q3T`jerG3kaX-kK0NHob777;{?!95aq}W1uB+GGWN)N&AhV_yAZOwG;-CYC@ix{ zk&EbI?;w0woTz+3$iP-uh#VW0$Q0<&uAdKLu)8LntQAw{g&i6s8H&yY6@C1Z*Fr}} z%%Op6(&R6u@|X%!?N(rQPKL}~!oYmhm<>6WI~W9R+RrKcvz$ey&e5N&qNFj9TQ3?! zqfn`>#WlS8z`}GWYNZl&LY8sXy_P5 z`Yv}9Ck3s$oPuDI%7v>l_&SELL?pZ3_(0?glp#7;C?3p-%_}AuPQIWm!V&x(NNlt@ zMy5mRO<^mZl}9^5VuWf1kYz%cQmpzK*K`I5pb?rHbx zePHBnYY*X+C|kJ)Q;FWXXI_qpPPKes3OdfWn^ zK9~YMSfqtj_r6&NpZ9D$3%u(vCU(q76n2A$u><|fRix?HY&4wluwOzKaSar|E^(%R zZMooe-^Y<E!y4(Ljlz;!1^Zilm9To0roaYxJ8`8>XmBD** zZNQPqu=}*v-c3B8ah3hrO(Rm9FE?M|G}4P<*DGuH)1yQ8>wA~*x9QHaE(c-)=Isle z2plmhp&3>|2EKn<-!1X?Ck}-7CJyp(ZMSQEZumy0g69<0m+XJHuxL}6ME90Ml}}35 z22r2uiR>D@tsR64)7ki%95x5IalfoJxG^(bsTT-%qV!qteNg!TLz~B-?~yk2x{00$ zSGEK4w610fvu_Qp)48%bj;^;d*H1f})uAC!WKum$_@E*kcx?I(EqyENPnnZrk2$fK z9OZBBWUiiXg$hz8%&r(J55}YEa{a3>O7nBal1S+TGF0mX-(P?5fw&$m7Hp6P`|9Xq zcc)whJzDB{bq&q5TguJkGJPe{1(%mx&9b(6%Pbbw%Q%HBlVYt>#H|j`<4?cRhAF|O zsT^hwN=2{Agm2qThxzI7mej^$~-Uzk#0&0 zM&uOore8z-gnNigQ^r8IqZ+e=H>+a`=Y*YFNLfP4cvJ0@C+N({wI!e%k|o+L3h@kQ zH-TceKPk-ACy>z=;9xl<2f=zq1bNEXFpo=S z#K=)jz^GGJ0G^1Zdkci!9AwP*OlS}NQ_`{3cgI~n?Gg-NE6Dy07#V_XN_Ci9k@tla!&7g->&v?NY5fX^H z|2_W{i3=J3F}Q)vy#4*xhZGjxMiC6(W2l$>-&POi{6yv4kv4@gXRk&t)T~l;Z#P@s z-=5=HyvY$NzoUdK99f+iVc&3gWIW&JKcR?rfhF4kb0lw4%{w_V7dWxV5mDY)LkHQg*ocI&jxq3dXkEixs` zVRb5B636PNpR;1sC&B5D+wucqYTKE)1Sff!D>(4zPWLzo-C=Y zA3JmDNWJ3^(>M|c;_yv%k1by$H*gCr4Xa@!B}|6Uqq<;n8wTCcOao;3;XgPw15krz z#-`fn`&-KQpxeLFX=X4bILZ&hlZH*PHxcMpWl4&phEthqDO246pt{3P&X=+P?juY* zH5NlSZtwb0thu8dh$%I++GpA+eY#9oa-$aZe=2&TLH(SUmmkZ&z zcbyp~7j>sx#eUVQGz$gT)3nmmf|OK7!p(5Q_Xt{Qb!(2Gc`v;D3nC+968o^32A>Ib-J+8 zi2I>Reabq;RLO`0gH#QZT6%N?ml}VcAhHS{*m?R6Za5;M0*YJ;zbELO1&Hf9K8JXQ zId)0a|VQ1!yKT7F^PZbmS1i639XCaC9)`!KBCrOyn~XNX=f*_CMX9bArL!aE&kO(s!_dNX7kF@Co>y ziZCc*RW<;3F8N`D;E?|N*TF&Uz)#n0$)>h5qQi?q%kJ!aRx8tyCZIi%=?HB{>B2p> z7G-mZeQMaYIIt1u5{3)np$DtY@^dA+_ZvDAA3ue&egVPmIk5k)wAc>2Y2-+_cr9_v z!PU>Zz?FYFvM!4B0zk3Du6A9>yFDK_NMOqhWLQ9ufj8|aDx=YU4wsArow*|}Gb$EU zbQi%1J1Sb-VrvZRO)tHs3x|+>TE4@VPQr*9hcn(K04!}WAw(+s>~Kgti99;S*27Tb zY9tl&X*_F5x3N7BPa=?S3;opJM+VS+>1aP)^MstUr&Z>wW{uK=IzzzRUja2&$QLN< zh>RjFWq`wpNbAlZh`(RX=kKWYS(r-3A6;vup$Yyk;G z2;wk+p^Kj`5~PD4zFUkO12x$&@i{R~aH<4J<4|w!9(QOTErdIP95y)_adenOTV~4* zN{bd14|w~n35#RK-_8tUz!Q2@8iOmd2nSBQ{gHL6!6%kMhPaF%nsiv%B9AG=Elib) z?%&W}!%-E~B_z_+BvLck7)Gy$sf|@7zKDl^RM6!i zj!Pu{5!f}MZqUlkH^^{CXEuMoQwmw%@Pnz}Z48U5Zw9d{F{TiLNq%@QT50H@G?2}+ z`z_C&!WIz3tu+BC@zTXgzLRG%pFOe-SlSUc!Q89Bs~CC15C)-Rx7_wfFtFk*d@aZ{<-boUe3Obmew#U6PX`9Cbc zqsb0`&yhGq{UH_^sQ`!g7C2!r-5d+Y5EpKY$176`%=oPXs3-^LQ8nR99k5pLEQoUKt^y|al9x+Tw`09%VN{; zAwg)+?BVnhDZXl7c19Gw>35k%g?v6~T3i68Q5QtyWxX}H!P^gDi3~u0cbIdfknO)m zxk8L$^jMVNGm^&q704yMW_WvT_~D577Gpy69c+iE#9rK>_OZ6$k3k z;|&}$K_k753o8OfCVXLy&c#_e`)5?T#$6uWlwFB#gGLV|7w);1!T9P9)g+f_af*KWxTnQ#D zO&&7<`nM5uUtoU1nNS2Wi(?K(pRY)14jvR0!2>r-ta3;RNnD6lT?Z5P$i6XY%klC1 z0~8s1Lg*uyaC0!0%89|X2uj~bgq0=HVC(~qfW8iG-6}{=&Lg)BPF873= zjV>+4`U-iJta>^;Wf|v|ao~*_DQ>~DVU0f+^xG5nC7?@$JI6}e`|A^HDKcw%6Slp5 zO~?L{B+5ffg&FbLgQJ15RDaq8WXP#RhqXMbn*rUlV=x#I`nW07*dae{4h`(chh{50 z+2OMKLj=DV$OW-pK3gQ$FJ%j=jh6kQVJ>p2C9uV!KQ~yhL!e!Kkvv#Uf%8PlgB!?c zl;5^NSN$z5xUbta-|+9l9nSE*g`1zwvg`7obVM@V-PI#V$VN_2wzKElL}Y;4~uG-*zWo)~UQ zkZx#A7=C_ShBl2(jFd;Jy_+mHM8#(O&q?u+MP`QUPP*ae!JCw#6DIg;NFE8tNZ82L znuB}UM>{tKj}q2UTmmZDquM|;SBc@v67z!5W5;qXTL%A8VwuVSkiERPBQQkksSi4Y z0c$w!;ipgrOyg;uDqpY}`lE!_gVv29_!$Ww58)Oo<&naA8QoM~zsjTslqOya4R^pi zd~qx@a-+AN$ba5LRe+91BNEY#qw*1iI-FTTOe_}yV}GPE#6N8M|Ev>6viZs`!sGG& z!)LU&&WYj&g_uyTUt%pP>637Fu6Y#;5Y>V=AW9g<%>@*mMR+Avgg?S(tqv6?=L(z+ zM)y+nG^W@XQQ3@XyjY}VzWYQ5@zSqZTJncS@ie zmX$6aBgLCuF|p%FmZ7d7(R50Nx`A>9CWjiIc-!Gf8yxkaJj`Sa#?TaEYfP{PQn+bG z0*jlFu?NLCi4t3hQ*?q#(F!CM$LtD~XiiJo&0Fk>&5z>`2K?qUBPj+#1&T$I23v?m zQ?JpN`E=Ad2udH6K8ICorWqcYV3?%MA5Gydc_o}FYIH$fk5Rrty z18})5%LK>31}34FNown&%*v`@kyqcJEqO$QttHU@@FQ2&OemJvWV(!W3A!jzEc3cQJ+IK2Y$`95x45}nQPP-{t`7E7 zc_Lm0&H&NTTPs!r!!y!t+wus0y8Y4MweVvXNKGRu6DqcjNmoZ7YygkhNk^_*t(Kh; zq%SYnFQXhNiwMAEgdAvV8}Y@bhoZ7c?`p3PRhJ%WeFj8EkBnf7N}5IC_@t`q1+SeM z=>f4%3$m#&g+2pV!17eaKg8aWI?p^u$A5?A&5VFX&f53@KewNtynKEr&zl4&T zrQa4j@0Rw&_e+0gI!2upSW6cnNCUUpWr+VGn!VR4GOBpPq+e_zEQUipHH|wyMWh2< z3r_5^%PcaUiZnjii(#6ntC=aQo8vgWQ^isiQSy&|9+o=dt=SO!LhhDFU({tsmPdn& z?i4i9j6>eW`4o<=kRhjcKfzasky|yPwOg$zX|neIB&pj=3JAd`A^j%a7Dm~)#>>mt zFupSW8p;!fR%x`z6TY7NmmDU>eP^hTVa9bn*_v)F1 z{(l=nF*it)I_R!pCnx;dO3u;z+N8=Fr&J)viQtcizjEUQ6Dw$fooaj)C#8{zx&36~ zc*F+=oS+Ot5X;m%KRaU&LF5{*?H4lhYB{K+7zPFpw>J*ijaxsGeqzFl*dzaYAF6-= zYD{2-4HtnS^+skx>KTLFYb{Jj%maO^N@T093Gk=f(R^xPmDv@(q)?D zAo)x=%k|mj`v`3X`r1P5XjS%rY`Z+b+c;INUy(YkE1Ak!#D9+Wtfdp2?7K<2_OcW8 zPI0cw0HROs#H?RMN^8mk7eHlBMSanTEP!iZrcbDk!p@NX2%jPq^9lwL=L_8kg;X=w zh4o>|8b*BFr|{zFun`g1TJ^Om3jq$VNhvJ|Tw5TYC&yo#nL?Ig@q9u+^2%iuBc>>ra?UzBIm26FOQA+;_E&o$9$Q^`_>G2Wo`y@d{3( zINI%po^**HN?Hgz}R=+`e#o6qA^^ z&|L8E7P!hf3&C*>Ngm9C91mAg47Pl_HoxoYhbEn&l1X<_A|_^v zV~pEat{al5q=Bae_j3*X&Ku&eVW;-1OPyc)v^7y0!BGq$@;a{l?8LRdL9rkh`#mk# zI;ffHn@WJUz|xiVE@Mz1t&4gw`;Tdz8mMJIeQP@k&WRa$I~9?pCn~L(duU6-p?DjY z_CiYnaxtV>#iP9STjI&qa5E=27RsyGz(owPXD4OhlY^83ynpK~>h;rd1Oa;K@ z8Mp{TENt;;@P?$7KUv_hwjFEes;wTn&-^e^ke{-FRiBGQL4r3@g{k0!?jA)|3+?*< z)1Ff8f+E29gwL-EhYIH&?Vo8?um8#IKbL~~St~F+N;oL;v??*D>%`X;j}#zPfA(2aTNpEa`)RMk2OI|^V03^Op92Q6BW#5JcF|ZJ4#Q99yB7LKnda*F|*uV zyk>K1kkcr3P-b4ux24FQO~i_Nfiod8aMe|5F4Au_OCn|d7!3X}juha_OUwd|Au@r2 zd4dd9Hw&0iN#Y_PbqH2C?B|h$ry@u|;?RYg*VXiHqpXjh9s&__n8QAa{=8-RB=e7! zC5_V92^oqMRcIL#&ISmz9X0VXkNuw}!KN+bbHKt4lb8$zBQP-*?vM%%B~*c{U(Adw z97zjdfyx3*F)fYxWf1%N;|wq_@mLeq#@s&xkES_3lt@9pOOQ1cHI{5{W6(-u$5HTC zu-rsbsU`iz{!bN&B}Li_7#4onu9B;MjWNxWIxBT0u&wrFw2f*O`V04pvHZvLZ*8 zL6)U=&8PepmwwcYyzKrOI{AZN#A25RLIQ5`%*KLhCV5;>)Z&Z8uy6I~H>#h!E{v*)%% zfr{^DD8`j=YOfH|vsKsC2uis|zG$P;t3kVg%y}UaLnD?R$-YU{ZlO6kGky z!4LWoS4iCAT!~SLP>DG~R~Q-VR78C_wEGY6Cy9IDdbN)!-v+(yh<5;J7&)1y~ff*rje zex1?L7z7N>mH%BjD%vXlEuthA1hbMK1oy#AlEMJ$s7go}6?ytz%Rzp>;J$32O~Fmb zS97h)ie|fE;3q(s?Vdyumbi!==VwS@18<4gi)w-RhD3e^}Wa@!&!Iv z@$w~H#K&Z&3NE3U?qVbe0?)aNYif&paagRA{Ith6es7QU8P@m^ZTGx`4?sqTCdXF5 zHIiX$Pu`zScWbq4>zeCqNzd(h;6HOGexYfg2c%X*zSxFf9kH8D$*snBE^R-$A93@Xbx?dPB-U?hGpCl#~}q^p}239|3n_{kx&kr`!8 z4Sj%#(afs{PteRO$c~-Z?jJe@_Ke!fnVO4xZ*?Dn8MU?jS33@23Iw0wZNl-Unu{f_ z`F}KO=Az1gfslM3F6MD0)8uNEPJ$3TZZ5QnF-^GdKx@zGDX8JP5QQ;X_BJCcd-F;bFc| z$=f=Ao4b~c%&Bf0#@<0+ILi*$zcfzQMjAemT%ulbG82# zT=2P5rj21KqJn$s6N=Z>o@5Qxf3?;@%q#pbAv~@#&h|>KN$;SYdNCEgkiX`1#KWVV z1003?*u@OtrbD$@DpuYaFX8M$0lN`C zlp9S3O_CZCGF$uv9r!87)I{ekLnD-ix1~kC%;}p0UTi$0b;n9M4=max2!I zaeW~>)#A8Lu$?#M8|McuwLsj@REr`jYEj+fb-y8mC8i5)P>6~~ex*UPz{I4s-rb*J z-z-1i0MhwY#TL9|x02qgTzx`LC;K)wshvgI7YQqYV?SL5uIu-#)7Zo3N9#$MW@j;7FDQTZQXiq;I5yUf#C8T% z1B{IMP>nb2@Bw}%0vPK_Y%xRpUz{=vEVMg(8@E@eWeCU3hQ`A%ny1~gd2|{C50Z}0 zE0+4=m(KZYjZK{vBXx@I42E!Ea5vq63qOs&qFxd{JfcJgw!)gcyxc<+fj}Q& zj))m?A{r5J31Y$HA%G??8Qq4tfF?x}Nf|+4U+Ci=H%Vc>EYk#OoIO6vJYXU;04q^@ zo5tZ`d>PQ=H0j23`?aC3Yp-$D@a;B2(G0$r$BYK&WC9}s6h^=Z%1OQ#_>DOIxc(NT zj1)XvEx6xVAc`W~^o!SQWN>VS5nfYzWnJGsoIm57I5(w|t#qODZxlnGu-AurUJ=(cS2{ z#hN$#NUPl*zXc(suCjoxNJS&YRu&7B73D8S>~=_S6RVNzTux{Y#mX^sS3(OakfT^O^Y0nB^jTo^V5Uw*O#O_ zM#)ou*;8(lHTRqZ63ObwZHfrNFlhXFc;}(AOrc5dtu>C}ezkzl#pQyAiBD3>PC~XV z{3p+0^(L97_a|ZWb*GWgScjrhs+L(pv0tBZ%%QmlJz3l@XB`!W$$g0d z74U^O@Xg-k5M$Y?ZeAoBp=Mm>n{ADq8l6(AXh1cjlFHX!JYCq^>UHg9fU;R={zsU= z0om9>T60@{{RDdRJ*eln%$GF1-Coi9soBLvJ1<`;Ee9;$KfSt2%o;m#ol!Z0i3p8U zDemmD>--lMx(%RTTEUl&1xCXY|14@MhNjWu8OqT3$b{wzy(@yg8^nFp2cHW4a2dSY zg_a=Tni^`d#8IaR_{>B`V<$BI&+qg%%nB~DQ@xjDSn3J(GxzA4uuuMoy zxAWUF>&wBkUwu{GIP^~ch0pZ*pO>MuQ|2~Z=}`@FZxl$fb3b#d{!2gENx0LR3~l#S zb8Yuye24!-qa1+I>-|rcelMwRv-i%k@arl{>+iSy_xrVZMLq;s*Z!B*+8klN&v#|Z zU9dI(O256IUkmH~tH1Alev2UO-uin1fdP;u{Au~eTpM6t`$-lvqyUo*I*ltBUyqq- zm?tTuKP!9|az_#;Z34TE^yc`HBu@`}DMGBaYl1EepJrCu6Hl(j>I2hPw6j#ylC(lc zz3pg;uVAh%BZ^kG9u8wVP>7T*4Z?yKmlpJeMK}zD(Pk$Ow0s17-~P3QUW!P_M>XvK zoE*W|1T_czj*Ry|kKo7tiU?b&F$HmLX#p(3O8wk+%eY?3k})|c4V0_o>S`uXaUsky zH;BoGZHrN7Iso^;DHH9oy^twuQx{|+Z0C%KC1Pgc&)$c+d!F%OK-6nc=`3WpPQJh4 zM`$Um0nr197M%weZw!GWhXnRGLxTZAVItD-{p3^ylUzjNCD?TVD{T4nc+M~zb1iAm zGWGAkmcq#2y#otDv2ET#P$pqP^98HbtxZFYUa?Z2ksf{`Fki0UsYfiO!1}ejIDBZEKW8e{b^etVdNj2i_+aMg!#BB-1x4aL+{7LG77sPr z@ujeuU$6E`!wn;*^bgBV{@L+1<#P+==fyO}jkgxaeUMOEUdK>jW3~cc3tpl0(koJg z5B#RkZzykepHO7wCd#s9&6sMM4SgGR^bN-Yn2d`rW2gvUT2!Sydb`nS60;iDq<3K) z-e+0xa9LK)*&N0Pudw^6n=~>t=dB~9h09<)&u(J zWiXktuLH@SVpcv`NHqe%E9lOP7~{#}@(f#p4fdY>YcCJ|%|b3Zd*_c4t(qRSQ*mD` zr0&kBQ}Cd*;>!>n2dwpf)#`+plISw@79Jq)1bLHy6EL(1Rk6v9DMBN;x6X>(^+=`@tLC{0-(dap*Z!(oiD$x@}@k;3eKXH-W`e8>V7b}(0% zk>53p;F}Y!^U!>EhlM*rcUhl~HDNRL0k9$;a#ld$(No9o`(BSUrlfBuV@0wg1Av zX>k(mY^B>`aZR>VE6WhNDq!>gN;2 znqb>@m)1|MTk)s~zYe`>?|kp^zP%o<3qMWf=f3%3no>w&pvr#sE+rN5ijBBy5Op11 z;|0?}3>~t}pwmNzkQ(YD?OEV`VEkn$s}Kplm*j?qP=2cArJzFK`ADoGijAx$HIa*$ zdLqq4GiLRMl0y13So6Y7@Z|-pn-?jTdjF*9Cw=!q=c7^;PAFNj8o~ds3FUvZcvmA}OgMJBf&Ni2wtw8hd_Rrt}z<`DWuprmILGHZ~g0o0I4S ztoK7?*d#yTM_nQm()G7OrBIk`?7sC5>xB;PLbw3;zpbAMWJQI!{z;12X2x&BkdmV} z`|jXCs z=9fQwjp1zzm7v|x&Z z@?H?Wwz>moZkDZi1Q<>jn5`<8qpXRNw-;lBOHPtJx2y-xGBfcPD!3rsrK-X&8NUw_ zDA9KcA~FxX!^5vEFueq2!P5s4hV;aw$@S0NF-;t$TkrT(!$=dCYj*!>vc~`ue+X=7 zpx{ij((t6;kq@FxOB+7mnrWDAR`{5!tZ-Fp?N5`|O?K*kv7<;vEL|UZ2XK)w^$op^N zBoqUC-rzy-AAx}a25~s3lFr8w^iYHZd?hMRn%_`@o$!%SlM{*Bf+XNw_`ALWJRB%G zc+%zuc=SSlHwnL}M*meLF)|7hRY-}7_QQ;D=W`BT=c%pXJE*5uKil`%G(X^2H4ouO z``wf9+c3qIW5)ks0n4AC(^&P?7?6|f85hIQ{7yG7{HCRN$ePodi1&x87Q+(!u7y}V z&&Ru+uD$^>&ezt3eGgrR$pWqqeqEx~`Y#gk*z*$J-CP*H?QXo>cD&v7zrVDhbv@^j zZ8lw5F&uJkFWW5!_>S`AKUaT?OQ`vMbqFOkIIGv~c>&eB>HPeu*7J%;f<1JWdHm^$ z8t?O?%y)-PU(nZte>?ex<=H<}jJ48Jg*XMaO}dY#|1|kLVKi;$|H3GEud4Y~t&@KPdjW% zhAg84u^v#lD3ODI8Xcbd&+?y!(B;wvPSDgjrz-@)%foFXKFrVwe%sak#$O*oiB0o? zAq=N{FmDmfJ$l7wLE#}2xJpCK#!iA#t+PGKeeML9v}3_)YS+9!qk05!MR{AFnB`TwYT zr|?MIa9g)x+cr8@$F^^=9D4}Cy?4u3@ zk^OUM!0#gkCEY!sK=e96MJAUlz#B_L%Y~d0XU%HSE>*=(qDal5nRU3aj?pJSf;ti9 z{|9;LkL(4L;sG(jHbw_!@c?_WUfh97S9`41^4GXZ{}+RtrnRVVqmThHnKiDE?pilO z`(raPFW5;ycw)k#~>ZPYu9aI@v#k$ISo==T3pdP2({)V6(zQ1pzWX0Z&2$c zSH3G9Q%4YLlmSLhK}_TK=p0|i#Gah$BlWsEn;O1o=p*WWl^>G3^;`G04|MPJ6P0g5 zgSC?Qvd66P>}PimSHVfSbcp?%Vi_!FSwTgB`s(xfI2j#8WlM>>GbNKfMfojS1t?VL zumiVckosc#^*>p1^Y@Lx049mFW0&BJU5zNAzKa2sf(DMBRwcD<}!5#_&f_yT#Yx)0jJif$^UFeKhF$kz25T z%F?2q7Ogv8tV+qU^{0}n~0-ju^yvJOoy?>-ESHk7L4hZ<(TnngCr%4e^+|~8o zR@V7{HvP_hi!so9icar+cr5t{cK8@ssu>CRP&w|toIK8TA7>rqXM9@<$h(a>&iVXE z@7Z~+=crWI`}l{&|J2|6Z3?ovyMloN;as%$yuSUtInr};sL=hITL-wI#Bp8p-Emj0ao!D<8CX zv4Kx)NO?96Oc>#)lK5R#js{U7QV7;qP)IOphBBBkvvm`E+%P&)zpAvrVyI>MkR}XO z(#iHwuppeBX|{zu$Y97E?#D?25V3lZ4SZs5!JPOo*+3&hHfD%d09y@)i3P<2rPzej z#0zEX=^+6)pj4v;e;S~A25Z0#Ajh&vB#jcUWkL)zEtiHH3=fP!7v@ZSu#&`)3xCig zmU5>U;eL-m6oLv`Qd@FYO3V}Jw6>M5OM}7t>X=v623?txeS#b@OW}Q#EP}~V&9#RV z&%8trZr~de(=kseqqii`4}e$i7c&#=$gu~DCD=vmccfX61o(>@tjX}kt`QenvIGTo zy(rZ~1$#qt^3o_YO`2moltwnFG4*2`F&5U5rJktLoSZ0-776ae;HO-Jg<9!nrY$}O|;v0cCq#vx-RA&+YEsR}zney{X~-dRJYSywT)a5`{Hu9u*g z56ve~W zf?#KYK!QwwKcRuv0}6t|Ou#g6B#S{jCB%1Jcy|bdF?}McO~YwMsmz3c+|Nl%|g2iWGaN`^w#O=gqXM+|bm?wC#c z`!)R?-;E)BW+a)k3{b_=wis(*aO|O*CFy@*fuVvZFvQ&R4NV3iBNH9Z?g>kSp@T+& zPMN?VhUC3FA=tYvFfISAGND*CC4~ zYdEq&wA)0BmWmjz0x7Epm%#w+7WZ)0uZUB=-~|yEx#rAu$V_gEyZUiXobkNSPFRYs}jCH zIdK7z(5T2Fj3>lo+V-kE!({(iRR-nqW&q(L1+deXqO`so<79A_svroi1fm#0s=9z5 zf-Ohbm}b~HM(x2lV02*329a1A#&Je&^`6?yu=b*@K>iel5#)I;CFl>!LG}|6rNX^y zjqQGykY*^O4N3bzgwa)CH|Rw%sRBH@i>xf#|XtK_c*nTYTU z3W*mEIos|rCz2z$+376fHYSaguUea7f%0P$x~CnQ9cT~0QsdLoCb&m=;^Gs-gH%0{ zG7<@Ln!p6{xKuNNM;qzD)!+saq@9bxli5wgov@$w#LdRIaDq1KA(iH7EI&wKVHN)I zRHrs=3{ptO(?V#N7l4Bu4=YbPq*nh zgH9_4hAB315@+7zXy(Pc4?ZX}d1KS5liR@N#0*9(p%0@O5XNrdT6xkhh6L>Hx)HUF zYsd#R1Swo0768GrTyvjy0{mXtw6?CLZLno;yasgr(usot?L*OAQaQ1=<&vLl1^HF3 z9V3SXQN77lMgOO7V)xwE0*^I?uZj1taB%_WEerpfeTT2d zZy$*U%{YU3W~{+71c~pF-hgc0Wk$bQ8^*V%fV}tG`0u?rqW?}f!B1nSh-!l7wu1Ne z%TIxanNOmZ6CDA^D*=Ll4XN*!>Fdvt0RHEFqAw4rq!aQ_g=UOtIN)lsH@2O;nR&VR zxSGU^FJ1GIz7WvD^@Ee=ePXlR&C4XX#qIm4|8k)*nEiFP{e2PVQ|ou6l8+Z4WNZTs zJMu`pn`0z$poz(YPcief(hw{h2#TSDa*MwyBw_t-$A*0!4nRG?qGh|RREJZMc+SDL+3ukgMhQTk%ggh#5 z=sHp(@C?`ONpS%v*rcr)#5bZ*a{r}A;;Fd0(BowYUj|Wa@*CbniL7)jIZyWsOXG14 zk@4_bpIUU$Q8C5=*?p`ombW*-a0@MsRsrAH(@-Y5kd)_MdvI&#tRO<&sSZiBc zQ#Qb88;NTfVh84!*e<%2U3eM2q7&|$jgD}^aBilZmGnJ?Pe$T$93T)Ed{JT#xF-ZdzO1 zQncjvI6>VF7fb>i0BL1#MVgWqP&dJ8CLFdt5>;9pN;9Rh;O^A;ZOv5B)uCpoQMO|E z+jXS98HEzrso_;k@>T8*HD%80%g5my>6CCq(wF&yCQIh5^#JiEL+u%j`!a}J_Tath znVGNL8cf#{CiZh`Xi(Ob>R+OvF?YLvB9Rr0tp}ghG3)GlA<*!`mY4b=KWIQT5&w0?$OM@57CN*Ad3i#CzO$ zuRQvp`=~&2p#qATT5QqftjWd%C^?#{MovvkYw&?zTGHY{&d3I+zH&yXiHcMEGi#CtJ!s;h&S-%3i*b>#d-%q=|N7STdnfGf{p=zfU}Rk(Xfh=1Gjsq+>oH zRS!;rY^jCsCeTa%XBcfYu?yh{)S!Dhht@oDK4^yYUL5aW#aP zqhYSKuyuFOGIsMI%Ryn8vgA5?;7T!_bpQ?CajRI~1wIQqUvoTc^3DvRHfUvVu0C0G zAPht9$OKp9v+!!X+dT`j$;biDb_)UB511z$8~1Ihz-tx!2MFxduy1 z|EmRvj)D{Fug?7pWQUiD$Ns?`zxB#-*N=!+>4!N~kWH$N7idPTMk1(=r<(CwjY4HS z%`=a)hWvz)`>iRNh}=tR@Elbyk@_%F0d~-ZU9Vy?-gLY}Hb_|Zk!3o%G6gJ9MD31W z_Ue^M$s{{3G@OUMK)ciAEKX?{D#M3wu8qPMjG z6Eo}aRlKFP&2_@nZ`+w~-A!sf!2mK!Zg8}S_?~XsF&Next|r2_+RBX&Cd}?4gTtLc z)`Ft6{3t9s+Z>Y!pP@Q^Sj4Eju^M@Ax-;yBA2-m$dpME?nts+)Mg>m96q=C@5fnTj}{@r-2Gm z71ayKQ`FlfqDA2tnS@zq$PYK0>qNk$B4M{bm*M>tafkbvZJtOK*9Qk8(-+6EnOa7= z1y=c;&0YNyyVCOd2ec^4V$r`8S!E5eMdzM5~!*#MDj8 z5=5|!m4qzeKG4O`rzLl^;q5kDzUhkx57qYV&{MBL(3K-dQYlK}y~Kh=S;sUB!4#L{ z-Hhv$58e`+^G=#80V||d3jfzr1Pn+2kVuLi4;!dNvFH8p0>TE*LbA;Kn2U}G#PLLn|i+m{{B@;_s0zr^3biI=+|1<_m z_cQ6&^^_h(3O4sF)hFH0a>qU*?6g@H9r|K1V?4v&2X~_RG5*Lk_P}4iqU_lAc=_cm z|MU}A#p;r1ptkd~fxEuXCANw+)yxjVC0#A&YD<3T?39`}5xzXM%2A~|lYvqu7N}EF zl88Im4Yn9IIEJNYOhR&@5AdUYGLqG$0s4tn-oSoa9`zE_6ICxeD{-ok-Bptaz>H9F zVWB3HlbMaL79DrEiMa62JMoF33-?tIlJcxM9ILvev|bkhB*?8YxEIExtxevhTF4|U zQd!(AA#VN7Aai&kDc5HZWDUm6%uWQo9~DnC7HQqEZxbwnNNzXJeN) z1#&qMErXjDhdaDmawg-^qmlxz&~QYs#gwxCHP;pFc9fk5gChNCeRSMcax=XOYTdMO zK}s|eQzuMXqpRWO$1fmso5-6(J`1`6&l{8_8XYQLo&lS(l2p#;?|7|1lbCG9^x!x? zdORxP=b6t^E9n}ogr!0~N5W`@fDbk{lAd+N!5F^VzK1WfLvi`;+oSuEf=V1@N;@iC0 zwGcOwfnej$oHmAw!-u1oXPy6kxXur4n_5##uJgUUPp-wU;O(bye(q}x=Uc!?_?^B} zqsb!2H0$c320%qoY#5Qq4hPjQ*rb-CM)ip4bck|e*X?%H{@5k`9PDFRY z^K+@@i7J2&Wi;7#9ihzCenUMcT{$K_q4eCft%Ei8A7$Fn&Pw{eJCR?e9ol46=Uih= z*w#!;+Ia_CtT5yZb6F64u99?O^YKv9a`W@sQyLRnvQp!)ZQ`Ii6xdbx)H#cw6;(H^ zAf&0yaVWf#(v$wpEl)WIU zFoM5A(JVlEN1>(pV5LcKM`=Wd=&(az(UrO2E7wL8K&~kID37uiE0+Y>z&4jlMbw?Y z6S~=TcqHzUt0dyaf8dx49KAxp+_Gg>aZuZ4ffPXQumzeOpl9a%5aiC7~pbWG>Kt!O_@WUWCg=T zV_?$Sf#|g4H~UQ|?H;g#m_AZAwD2D=w%btPzo}s<5?^+BgPJ4$AK#PzN0ZFgtBb)! z%}rE#m*>3_o*{;5&r4nYm3FjI90zvU>+W;+@uh?RzVy@6X?(x|f`i|P8^=boXcYr+ zu$Sj@gaf37U9=5ZLZp(f4LQUxJi!*fhw`4BH_LME)(|fU-29bUQ&&XM6FY+hdilth z{XG=juih5=)1l65D3aF zygs$`_Ua?QF83TRTJ-F|&&>P#-hS)96&nnOG5Q|f8{CGaJ44%yh~{BKJEF8V;Ee)lfLOp?L(hljx1()U2j>*+N2rQEe|F1$*2duW)^*G*Br z?o;%3?~#N4(}v5`2gp?K6Y%H1Ci(9ZpD!C5bRZ#R;+9gP0k?7#Ux`f3HfuFNMIZsmd_n*>LJu8(QF-y*FJV7;x z#})Men&#%snZG&QN>i9onY!{@9&cgDQN-doQ# zaMk5p1c4Gmal&qsGY2;K^Pq7tzlxS)7Xy|}C(%kch3dXnAXgY{sNc~k+YJhtHBxXi z1wFqe3{w9y$UCtuI(Szg#F`%KWf=sI2X5;+6I~!SKn^e}Qlb@kD3+z}1)^U@|EHyV znP3~FTKOO|Ck02z#p{QROY_J})_LFMIa3dY=jh+4eb^+$1PI&n{^*OIf8FP`%k`I) zcFT5u4%_ja#fM5{KtK&)gA=eqyZS`JEao~sf!N9m3M=uT3N}4k@gV(Z=xjklhDu~Z z`)I$y+7l}2i>rQ?2+L$dJ>iH+v7|OqF{pu}#kMs355& zpHiC;DcKNphIf}i+6^JLzI07<1H*xCI**Ui&hv*^5xehfplKEgd55#Hs62#lguMGY z?meF0UZrX^SmLmA+u-~EV&mgE{s$X>Nk3v&LBI6%l3gY6!gzca?D=KEpxNaAsFLqS z6Y9lK<}s}d@3OFja5LfdneYE@QH)l6{dTin+jVhvZSb=H?7x@0{k4Yl*KzDoWAkOx z;lp#V%x%>-?cb-t=emu3$JbN9+qeYC)XSYfz-2pHYrnkz)2Gb#^KI`0MiY=I%kk}c z_-N6+GcDZvYm=32!WM|Azf(~nT(JF|4)5{D(-vpCS9S)G?v%uY6iRcS*u*5A@YJjt_AZ0D^dkTC}G)kvM1a;B6L-w z#e|$hs3a#AHr55SZCgn^-pm@Dd+AVbtGPOF79V5uoQUP&{1*3>au75sRfrX{v=_a2p3(@^xX1)xGMcqCG|N zGYgdiJ&l1rhC~>|y7zO1dErQGuI1in!RI~Qj z_GbL>z1h0VZne{GGKw|I7*;m2xAu3pb~m0J3M=Lq$hP^9-R>WREiw50n7wSj(sdO) ztp|wE`$+`8Cca@^N)q?kW0qSbgYnlF;m5$VW0&_uDJ`n>YS)<_j zVMf!-w)!EaDNmOMD{Lg1`J=)W=>A8?IEqOqeq6H7oEVm+I3;=hAzWB&lr?O z>KG;OXXd>@FtBNv0!8&+mm&E#H@{~yxnu$s(>7HoHK6bkwPc{D(ak&WkHwMFvI|G; z=D@wrF(J{qK}HA!SQ}ab+`rIW>^QkmTGK8aboR7;K-1_T1^5l<`Avht7;5k-muRqJ zj0I2M6!K}`6ywh(DHgS2qaCKfnLPGws90Iv9i*cd;E1sq^?&W7p+@G4*VLvK6lqu6yR8h?^T`W!_e*Wsi5eBya z2Uw)UCnD9q#u$Or23`CFL{OU#xfPFsnue|mbELR!RyOu2GYvP69Wvefb6 z=BlY9=q4I$#djJ>8Cj}FfrU3ooa|6-WWBQMxaP6=2bGD4@}LMZ#i(V=LhSfP2qzj) za4?t`d&^ErV?U#wXWZzy**Bf%z|z5W*`0!b%>+mRH1I3b4BYchJ2 zTi&p>eB1cpSj;+}hv z065~|{N5+A@25mY-M8dzK!oEK)mG}THfCb7JkM^Kz~)^mu&C!C|2e4%NP&fTx?Qly zbKcSsfcziG`uvnH4LjOtY%MCebI|dtz}M8Y&7wGe{-a;M*=ZcER8#E<8G0)Zw^f*# zg5R4{@7t={vc8v&74>(FMSid${Py>t8OOpo{Xx-P4l@l7A;feoRIVP3Rc%3BT)O?s ze6CJw4a8)76%O3JT1jyw3%W3mn~Y6XmXS4~a7NJQ=@jBKM%&@)UKC)_=D4hj z!`f9i!-Qw8){%3qxrz2#JQlw_CMPi)SDjlE)YQ?Hm)&O^TMK!}!5qUbU)Y~$`_JFo z{~iDacC-R%>MXT42i!nxv1-9&++#|oa%cC zsiGTQHN&7{HP5~dl`SupCjMKNZ2!(Ky&-n6)Iw;h>SF-)prAaOnAfnSWQ}y?F?|J+ zn{n6sX`axJ_0?7c!;An?$kwDAO4Kb;;e!flMiyCHDDZ47u|n(?s42pu1U&XWeEUHs zbJt&@MF`t`)XMNWs0p7DG>*_Og6ia!ZNQfp?^2SgZZeGx79K>&Exgw;C80Yc7c#?} zkOJZF0;KTqv%n1Eh5d#4A~=;37OTiRf+<9)KVce2>eIYw z%duDQ$E^eVf1vbR9aKt3bPPPH9f8V9-=nJhuD9o9ziT{!kDcGs-Csx?F>&#}FRa(y z2jRV4A9J+v{Qhv%^9OK^=ZShqo8LDQ{P$bhrC+~*FS@2_f6DS8Ab|O=N7uL9u<{q} z_ggH~mEXw=TAR|?360T&NGepeO#X(>nGY2g_7pr9p%A2(~WkDvkdq`&`ya)#RJASv*{ z6aQPe5gok8OXb3k91LqEp#${6@$Mx!Vy^}6U;*@RpobF_A%EdQ;qCpu^Rs_w_vn!$E1&Zrl75vezBC#bMtE ze=2VBnB9ojRRo>5WdiaVqsRv+G|2OWS|M_Vj!k#_o(Tm3(Fj#@%|^0CLQPAt3VD)ag(yDBV`zlI%KU5XV?^oFKy`{hxNdIRsTGBzMaOqv?{HHLV!3-p&ypoVp;iC5m`JLQw(krw0= z;2BIv&>57m9NINd2MFlV+YX1IS+*MrfyE0}58T6Pss_Lf65F7Mg~6kP8iQuSw8Y{I z`4NcuK0xPM&%0yV`YZ){;KJg>?H9el7m1p&;{U!mX(wHyA|ts+OOf*8Q!a#*%^q>! z-HePS_p7WPPWL+!>A!!YRi1HshmL zWKG-6pn6<-O3I%=#y~RgFgqKbSZIRk8u6aY6iEJ*Oo|9Rg@BQ1<^KTBD;XeP>EogQ zfze$NP;h)tlaEcn5KQZCs`9_g-~HC7-ygP{;L&iPz*S3v!3%c*ZX09k;(x;xI1gV0 z^xYq?a#fx;Ui&hq1OA>2ooF%g?w=d9YuZ?W7O{#FmHAwE1`HlO>cnlrtE~2RKOi;D z!;MO)rYdm0YEl&Ay9}feAYF1^4b>1#`6Ecw7=q8n zo&-&b7Z)ggeOrT$HAUKm)@{DDr~8#rdryE>+|~} z=brj~M#_z~ZH9$M6)`2~tQ|$LOha3*P;QaOP^o2VL0-Pgc;hnJlrE$J^{%Q? z$jfmtK>W?I_2R4dqD&SP)z0`zB?Kx|xZI-Mv{P)waGBM$s5=HeueJ5GokH}=3n+06 zwb-yRJeoSf0gx)!QbIs_opM05R~0KgJlV6__2GxUrv;Kzi&4|75U3-8#Sg4yrA;>*E}vi%DBp@irF=QDciD}~Mu`ZPX6EzIJL^db*<>@K^U z(n_mHl)58^Hb_el@!-N|gM+4oR7rq==^D7P_xk4+!@@RxgKb))|)nl(q7W0o0unH-(c^f%m(}HG>Bv{Y?o)NdL2TB%1O2@$pqt2EHc({D=QPIy#=! z&59lhzh|3%!1{EL%h(^_y{a&ggoYHU?;9+uUVO+MUe!`d$Uh<9RW*|Gh&b_9qLHqW zFip(IdflF!QfY1bQi9O;K_0O9)xcj3@78Yf&l zYegm6b+sQ^@;3%U7l2E!!l15mZn#G-L2zw%R=k_RDwjX4)7A(&W1~iJne`fbO;}td zJy8@2j~FV!~zuw z9rNP%OmQM6oMc-eE4qr%^~m)VVv=q__eJ(6sb>#mYUd;2RHrF1Oe8XReu^2}=y`1t zw5$kv+bx{iGw`BG4r+oh$C@Rf!95HSwi9jS>XxsyeU3evc~t`c;6h{A;9EkV*QK9) zCKilVTbPO?l$9ni7U)dNF=PSp|0u~PS0u%YN8$2roWTfKOvYi{vS$G&9(G%)D|3%Do|Od-*aUs2iaO@lXm~U!@zkYk~yg1|lqi zt&IV3XCI>1fh}~)oMi0v)n(NGK77BMR3s;OX^eAM13iP!5S??ga-$YAqsuEMASEqW#aFj)0wvS(`o8X30KXE+C4)S4TEk5vF7JhCyb*B5mMpfquEfp`@J8pUvJj7G)uGz&_sNE zYz#bqodc64E`JZ!ZnaBkpbMN_u>5azBnY~{xB~pu|MinZ?Y$K*Z8**I{pSBXSg-9R zGZ?SY=4-Iu2eQxwMu+}a3kYy~{5yGG*R%H~+)zM0zS*|<-gK?^)_T9?xiE_t@Yvh? z=ehP>8^O=t-pSM!nytgU+iP9U12Gl|P#XE1=Dh!rX6Cmqv%S`CHhBO2@y~R9U)QO; z&*>s|dE=kc?+yQXKAre=@;xN4gmMY0w&Hb2T4pGy5hrVL?~^=&)ttK%G8GA;HlZYN ztweX;cDS&c`=&*NZ1qjw%}u1u=aYMb4_D3&;Jt35@ujbuC%QC;*jdUQFerR0iDFe= z0THY*k5?YRJKpkfmIH|_%$3hrMKOnJ3LQ^%<`s7AO~=@I=PFUY+)4l|MZlQj0h3U`1oBK;JFKY2;^FIa+sKG3*8urNokpZJKi6F!l`?Rj=Vl?nHfsvw)sPqHf2(TPpNQ zOXbm&@5bZ>m+wxQY>>6DyU86?2L?MUnINOjeeS)@)T>lu!>(IgHUF*Vl&7T*;I;rV zYZ1`INsYv>GalX0T)N5~y+<5QAl~A^lByB}AF~W@6%P0+S%BG-0nCJW~tDsRN^9pMWWZTuA!c z$VFXf1;R}2qV2dTi#LpCkf`{byQdMxH)HU3<+yedZ~Vg& zLV|YMwP1WMOU2wLl*>20IGDs>1dk(P2%kf9N>$U2nf^_~FnTR7)2IV2Do%m{fAyC` zAIkn~WG!x2P(Ioc&jRHQlK+|nW>`1`0)WGx{M(1$-N#@=tG)}6)F2rq^M7Mmn_LtG zJ}btuwm+6UNceUu0?acge{=xJ0RIio$X|cwc;5|Uef(Y<^K<|IXG%{Qzm3i9za|WN zE$xkrE-S}8dQR)YCJu#ua(%eXAlz>QbE*d~E7|(bxY+Lc-mljT--BvIKG%P)15S3~ z7`_ly17`inHo zFBUEs1McuN3kF)z;{4y=w;P#y6Bv(B)e$T;fWxv?EZ--*r8ytksKKhlx>KoB1~+q%4+FTs6Z3?9SMeLrQeeoc7* zTcQItlG|3p_yl@0Xb*(L%Igp95aW!QzrVL0D(?jXc99srR&N!yo-VNRggnAVrHe>* ze^4r5{bnkCU0{{(x;WPOe)yAKr^Vs)z#a;D{5Gz9>^GdI zV@KnU4pidTyZmKL(dU@yTDqS!5!@lv5`aRTYgapE#XdOyuQEp^ruvnm;0RLc!Plhf zBRf-+f_``Kk_2IUd3a4|7|wkFSEMRlH0!;}VCk%yiA{xS8hU$m(<5Z;z$&hr9#u1$ zmzKT?!?Ajev?_cr2!e=??NXI?@j*-Y1$!rl<%ruwU&CUO{XcE{Ul!szfnhI*p?aB2 z=Mpaozl^Ct3`5Nq66I!e;U=9eDBS1_2x;M^V6HJPqKp~Y0fI0I{?>7dJw<;Y{E>9^ZRp-5?RydcSI_o*?xZD!RiiGyEKv-vm7f*>Ws;_109m&8Z) z%8kKXgAoLwZG*mw3|`*2EuZZLji|7=>o*hfGV!0E6XD2e|E_|Rq2*w zBFYq*W>Ita)jcz$A{$&9HicvJpZq?j^gfi!$Ce+B_IU^J#-nF}DL zBlF!Pr9t~I5{?Emu>A~UdGSi&@k`lzmpcPdDJNVCGv#Jt5#s_uAdJ^D+UCNlp2G z>?hCa^dBy>9eVHIbnJ7n@%WzY9KQO$^_^F*zh62vx|$s(b*|da7pU@)uaC>tuRM=V z6~@e1dO!CUZ`=GH4~Evi&b~YH-VL_jwip9^hG`9a5mU!WP&$?Cl%a&nj*r{yHbgJ; zbN<(7@%h|cjO~2`k0NGGS1MezEXe-j42B$x4_FX_)>*&y zn@ zD^mv&g3OD%7B-e1@C9CdkgVW=>>FYEr~=T~J=N`#Q;Ud_QKm@FR$ zLlPKhya?a=jC&{Ye&Oi-9(@14x{RXxJW2Y_&dT(A)=^f-EIr7(M2f4!&eYca??y_H z%1uPp>B3Kbv;$r7ZP~b9&`r+=aE*wI_yV_6kK@#al~b{sgymqXurva0_M&^v!IaRp zFDjS`B%OzApjg(MptRU=82L)q>&Vi`O@#Wrmh4GYh5`l5XRS)JXJsZ@t&s#G+y!Vu zus8_#5SSpyY|gk6{a8j%bh^AmC}ceU1kxDR2P<^_nj=>LjX}U(-@CF(r{l=+E4-LoCZaSu3>=1Lxy<) z8i13mD)1`yL_myW=qDr$uR2*MDxI8OcHQzBE~wvL1dSialDk6aUqd$A^#wO`d-nV> z^rnuS#u%hHlvT~)UBj_?DdZ^Rz#C&MBu3l~SD#?lNmZFym3-B2^0a7uK*}MMXm_)& zgQmLcg^hUG9VZs=wh$x5B5~>5I2eMdZ(k4HNXul^Ub+9lZs~g) z1^2*q?PlpkF|5{WV6f}b=84Aqy#--td*91X)ZUV?kr3KL#Kli2dr#BvJ(jl~zRO{q zZr{K1x$3z7y4HVbA?F3wq4(irmC4CXC*%u!tx_m(J(|L@x>o0S3_f;6_dE}Fgbu6Z z`wkd<57WA={sV6Bz}R8rGyhG&K4nso54ME`s?<@1P$pSMA;D&V0DyQx<8Mk zBJ~^qEkBOK!r%t?`r}{MG%#)Mo1$36=od>my>CWngoQhT)t*#O+*M zL{uVHk^#IKxl~FDB3S2>SC!WTn6#`Gu<(Aiuju{ht17&(AIn6`>Py=%u2~ znvrX6C7yzT!IU@Z5DkFp+!wXL)y5A2(Iqn!j@mL8!Y0F9%#sE7rSKEGi8jqarxE6Z zP8AGMDQFHR9i4Nu#08Pvtu;i-Iv=R!!KV%f1DNzENca1wYfTLtL#!a1vg8DUU~Rh& z)8%ig9zBEtozs*5h!I68G)te6f}hQ+G`jA zm^<|kZ+GnHz3ac^H1&KuMgvMl%g+=mILnV}JhuGCBNd`F5Rg(0fEQg0^W&xJtQa^V zFW2Susdr>kb-5UUYb^`K3Va%_E@`2O^YloX{A47%Az|ag%s72?}QHb?r z!hdXn0F(&+GVJQIVX%~lW((yix3Z;-T98HjuNFWwUgdShj5@eLl)F_pI)3D)!}WCA zXI!rlydhiPEA@-XG6WKrNk_i!2hwGH(BCcCk;cIeQo5dNjTZA#wYpQeGz{QqFZKv= zwvD`DV>dirWhNpUa&e9?LrcTV+&Lot_lnp@2r6<3J>szUKTmT_Oi`f&dZcWm9YC9> zIP@gkPuZq3T*_c^P{jrWvXT=r4}W!`5d(kbFl0wUi|C2l5Dzwl>fuW-)iEW?L@hye2~gS1l*KT}<5-!G zNd+kZ)IeDw=n= z`iA@bk$0c5v-jc=1{_`Sb>yQ~v<*l%{h zsOLWCd2Bg7^OgA4(Q%qe0kff0c5C(iz`JUk-XHzfJ(r$`Q-zZ-uVugI&!gu6-6C_; z9e~#pYd+%X=Q>fG3^Wu}&UNVaYyV+D``ICOvD6{*=x*tS-b0asVg((Q{|;ErtY`$} zz)!l7Gf=l+Q3e^;mFYR3z%~u}u~cUYK@QC$=4>rDU5n|9 z;xxM&90MvD1?Ved0E_H02=OmiE}@^1Sa*$dcOPdWa29kV@PjE$UYa}RwdXa~aE6Gr zvm2#eKImSc?=gkzqxD^3N9zo!iJ7yclPK!nOc~0{pP9rzN~|(24Qvm7%)U@J^}J2&3a3))dP^IkVLwfbh2hbZ0nvi$G@`G5Pc{( zSu2V&^WZJ3@I?@>W@T-&=BjK+dBaq^zlu&)L-D{u5Y~txOo`Euad13|Ina{DQi&SC z7R;4Z9Z7(s3y~{!kxvj^`xZMy%uROKf5;xP!gYis(8^zoVva!~c4W>;F7NC$Q_vqdfoX!gUA{8Q=vP z!otOWyKMi$KkDWHmIIsWhWUt4I!~+jJM15qhyXgd>-mDIRM?O1H7P2bSOP$GQf(c( zHk|SD1(}LaRJ3*Sotif!iwiq);;q-q97?3>vTK*sAj5g^g-f;`UEwzD*s@PM^MPTvHW{Y zD-D*AUo$f+97LsAXgx0aTeb4Xm=10hZ3T}Gn0D;`t_VI0 zp6AA%j{n6H>kP6y9+Lal?|S<0 z=H~rwK$X#uSdga9nVmkzzUIOMa^(N-@eWR4e@?QSF{7F&ldVA)T9R*=~Dfs@HuBI3>d~6cDt?g_f zTD#JzT{Nrj`yShOp%&*v$SMu(8I}dw`hyQ@ik*nlWuF~?Zpy>|sS;JSj~54uvSeTK ztAS4sS0}8s9a@^zN+tA9(Wb8zr7=$3?~1v~kh#`oZ}zcDo~j;5Ar^^Ag)&&ev2L5?LeD{W&%h*nPIj{~)m7$5 z7qG4_6>~V)IIs#+P3nYV^q~kUoY}u1gM2eIgit${Lr7Quk(4YrfSpn(rR(?L%8(tA zG;eG?Un67@i3JjmEN&O97J!uxWONUA`x?~^A_RYi2Euj+N6Q2^&vJyU2HrQp1o8_e zg;J3dx2*1zB@3?F!W+nV;ZP_f0Vq+q+0IK*E6B==fO$6P5k;GVWw3DVB#}L`WA_;o zQe6x|h~HR>A+dnUB-NCS9)2G`y^LD|wgE9rr4`Ug%)&$u@oXTzBW{o!m;jBiV)QvS zL_suz$(oiCeA^k-G<3D+bHF_^&HX#PHShoP_VewiL^)Sog`@b3JbcCz;QNGUN)795 zdhy#M{jYM@cb{OxNt-& zcy$?!v@Q@7Ehg%@n4jnV&sFpMA(#)i4wUD6g}BFl?G5t^yfYTy<6;NQ>+XUzi=Xyg z)8kD;@v~=azt!=p5`I7R5B=Q&xM&#t_a7_O5YhnT5L4=O(?LHFBkVF!l^|9+9$-2n zVi`PTjpS$4id+S?qArmgk6x*iXUu4Hx3#vTJ$>Io-)AKB>SCQ44B4z=GP)miE-(|V z_qy}EJA};^3)sM;$e`9cwr{&$1!S&ap|HY+qlRvHjs-8i*X`E;CHswE@Jfwe`+n#1 z3KO%M1X%Qr&meVmoV2wO#_kEV`fHqav$irsMBy5V%rhz^P7slIkmF9O zEruhO%RQ+oGG*HUNA~8;?DN4D_!yxIBw3} zS0)(-e%|j+op$jVks@KDatAFinGW4Ut!ib=wJ4JvyqW||@v z6ZO-(b8CXrMPdyHQ$-=d$03rBx9*^zQttY-u9-dYSG0VqUNPpkb}+b~WRO7E2iR{e z#6vYH?-Qpty*dMaX(BlJwcUSxh{+-$EJy<(7cF!8AP+%9?ce`!jZlS{13s^R-E@59 zZ{2oW{`8)xH^4N++Sd02;NUU;yH`FnP5;+gW5R`iy}}Df&SIw0E3V}H>#{W}_}S=y z#f0IvZ1_Do^B15N1}y#^0)hLt^H$c6!;k^FGIH-cwC=Z&2^3V&GC_#8uq_{p!)(l#jzIE** z`HEk0#)~*FJANUWsG{bZh+O(c%96moen&uxnKp*yw)T6B+-->iRhJ8)xbAY?l@rT6 zDlz=VGE#?`BWa2_(Xy65Yty&$Yp$CZT#TSk_@4!9&g3WHPj?+(&o$5^fL!ej-Z*K&JN%6AwGGukN#A zuTHBeJyK&&R2Sz0e6fV4*(kT{>K>`V<%Xs`ldh$}K%$Bqeo8-214XiE zY*LMs+8&o)G{1J)27ijskdY8gxd7dAXZ?zH4=UNa4+-}a3;v1(hYL(@3=&@iDmXD| zQb=l}STfg4m!jERMnaQZ!^{Rvj_R2ZQm%afT|o+H&?BR1C6njhT7%sNwKF4hfC}Qz zv-@#oOWdIR;SBN-k^~MK0-(NOKTEKK5|#2P$mxEuLatz$t<~`>2E1pHG0HA=?*b&| zYUInmSPxiaU_BitUAROk>MM>vdw~K^(Tc)v;)Y)`OC6ZNRHuD}&)iK1SpNVl)AEe( z3vx?A&+Y6L!``zk&fS31f9-#Hm^plIwst;4e|o_z1`J+eGM;O_r|~`W-jAMV*5%u` z?`M_^lBdlWeh$?Gg4kTgJt-;2c0b?yo%mmJcHb7s``>0|eKWV-BPy+)L$V!cb zX(A22U(0R3_d`#Ci{T3>LGFhYUugzC?__`8S{VaxSSP1w-IS$|ovGb^8~jEHlbfG+ z-0Fz-F@dcxW@3gKX2iuvzQ@BoCuZ`Fh1)x4h>rzJfM5p{Z>;w9*P9r;=aPh7H^S;H zik|5n_@%z~B1V4}TlYR&-nM_a|KfqIg_N;Vm;E9{8Q@=@OtVxJ=*++(B2xhe0fe8@Q!sWK85Hxutjtiu>j@BZDAv($Z>*0RgNS8f+22hDtiPFrY~uM!c;! zVpeb-qD{6ElgX}Y^Q2Vl#pl8!Ydh&xJbXv%qy9~w~tM1uK#E^N&K+S zApl_q)!TSqz4c%RAnaK3m8z-wG6n@LL}5Yv2yf#bH@@NbNbR2nZoe;+Ki{oV_UFp% zxvY#{SPH(4K7Q}>2Mr01{+|{w>axf*12|Hq>))$20bTs-h70t1e`|7`k3Ijb`nSV> zw{Hu)QeW=4tDn1yf!nR8ri$y&jq`p|W2mYPKa8K#fd==NwA~kQ32^>5wm)>ID@V0X z%j}$nfh%#huLHWoKaYfkZ;gUKzcBypFw90gPZNHhWLXN@yZKqIk*aR^ognu2yl1Ag zI|!Uqbl-N|25%AiJWtQ>fq{tuQqv!PIu9!61?|mhdMwA?igM@CSdv?QFUjFuS?*8Oz=0Ue#(QEFmYT4!ACtE5-5(*@iS<5VrtQP8ry=96J z|CKYtr!Fs1U({u*N%x~cJZ-lEC`idu0@M6kgm{McWK&DYI!;%4189bPAQTheZ_*F? zX@`h9pOvst^biD<5s4C>cgarn-3n%d!sKn&!-L4;=~8yG2)O>zhx`l5aUBXDduk-O zb!lFW6&S#46SUkHOsH$1R;D zY9Nbq)}~}tH6UIxJEc&17QJnEB|Q|h?2+1Rin1f2D=c!mFJ&}w@!4EH7K!V2txWt9 ziw&;B6?#b%?Mg1XA>D}ubNv!f!~M>kB=)?$AA3QpMMN*#q#n?M<*_WE%C}|*4&xv9 zW?}3aYaOSjhz*jpViUGPyn6dKJJ3EEb+wQS!58%TfMZ<)?3*GL-XGSVf6s`0ip5oG4rnuO1g!mfOG()xRnPa^o_kbN3X0{&9sKU*uIn!O&#A}%dTxbYgMy{PG9Ad(vgw??x`h); zcQupID^7o;PV0^97T@MjvUwB^!yk{plD#EMI|HVS{^N3qsRWUtv2c)ws$q3?-Z9?Y zbFD-x!=ZwkU1xp7xs@=9nV)VlJp<#Hy#{tGba2!tJPU~v?mIO|MQ%yZ$XYfJ7c2t5 zgol!Dib6s{%A1R|M&&BOG&yO3VO%F8Z7$dhhcDXW#`FFyjEmwef#BEXbc6k4w3Q6b zOj-1b?+wK6GUWWAb8$~j5dpZtFe_Q9M5Y2^0C{hF=>6h|6~b6A%Iye1S0OSt+n;CP z&@sJ`T5iDULf^3gA+PG0Xa@MR(^}mYD%#7&rgXL2`2Ezxpwrclm8TmoyH*!;)F7rR|DF^QxT*!O}Cd+fhY@Cdq=RP+s)A z*uX*%4cQI@fsWp?x;gd$J~=Hl3SMVIoLn*~(U`DL2xeG#=;sgW8`Bu@6TeD6>TSy~ zef^!vD+FS)5X!k|wq?>X%n`p9F3?bL9c&**uwtTB1rE`%fYgC=XlXS(8oMC>Pu*I? zlU*@Y&spo~h&u`)0!$*T7Lg$VgF0r;Y2e8vpwyZQe~!0?0l1U;k7^A4UVfx#`(C3N z$88Vo_mK$SuRa`mF^UKbfBtexb5{aY$NN7pOWJQC`5Se8zz7sqbJpv$n_sJE7&Lz* zWtl2&c^uEz_uZ~SifPXneQ$OIG@aC4t6sL%#Lsi8PT;vttxB|N<57=so*&p9L;l>G zPM}4?ZYlWK%(E9m>UFn#O3`F+QNQ_(av%tAJqH^MIf~qbY82M0KK(av1L%U%M`8{* zU(Wc;*63#x6l##LWe0^jlS%8RzMBO@lji!|>4){84q;n;*Yc0S@sx>l6M^>h!GBZM zGKDNekXWtB%%P}Ww|+efkpotnypz+&mRkWs+PbJ^-ZMc(pKl?m5{#Ou6-E7#%!Z0G zy;GzumUs|HS>wu>l(XAqm#MT`)VK!F9234-o-i?u61-|K%1tca({1+B-QgGyX&60F zvlCJY*k2y?t8inZew3`!MJH5otbO9}R&eEK{VH=`@@yJ}=;IzRAAM0y`ZZgu)t*(7 zZuZ!N6VT90lLH58?C+8G0j~wLa9;W0-aOE(YGC)fPUf&j52g#;@ zZN-`!-KF3kpELpxOjHIi^;Xy6AA4BDJni6pwfs;^D>V%w#s(@3y5F{S=1Va&Kr@Ym zdTm&9L}l0l!5m2ULi$lQcAR)sd3A0Q5pj*J=}9`E)ovnBqCXuLgqv z!me#jdVR-p<2z(&B%l)|GVL@nX*B54b?z!&PXe&*( zmu`LqR3>@KsT`?p9Mm0AVUpeYTwy23gUF&pM`g}=5QE7l-%3xJSMO*dG#V@d!td7% zfm}v(`Q^|0z%Pkng>K@+aR^Mu8qF#od$j3|)BY>(pU2q(A?YTC?#T`~T_?Q2OLtE( z3_Po?BkI04|3J{=b_35XdCgt98g7QK0@;$U1^w$Vmw3xHI|EieWrjF3OiRpy&sbE0 zw^htxe8FDVi~JlyskWl(lg-)cEkgPjp7#-XrqN zzs-Bl&BPN#GlPpJPoZ3d>u#Qw>LKu6A`!-E#g3FecmLa+ zxvux)ZLXgiq|(28b<^X~lQaLp|8m-7A6(sl$aYwENv^GQ^2m&D0Y5k)xaQ40maQOk zTL9SoGVRM!T<2u3ifrjuc4+JZJ0g$dNU0H;TsX>)TwI=++(e{fE<0I&skU0UcW`yt zf0=^XBhd}J*+~&A_9zIAk|)U*Rtb!^j zl31A;6RGt4xo;*kN}sZ6R<>o|gPd-{)}EANS^Y7$7|8XrOEvb*KYxRtjtB)w1aw%; z@|@+oca@oNoNGu*OZF)jKt1N8MVOS+6 zl7m1Oq+;kggV(kQNS`c=d{ymcnT_-#Yb8H1E+^{4_>!UOxX-wzOGnblF8<#627me_ z@5cMjlD5YK@74pOV3UUX3ZIiA-gLY_2=-p0-iCesb-m;_&U;;2ine$5IZ(|9YZ$Fv z+wC)6-W2#43H;D;a`Qv*U5aL}F7voP=W<}Gfd7-0p_fN%k^eb^YP4BYE|6v=xT37! zo__dq_pR9!Lv)uDzx6uN%WG5>0v#9Yv*{Fe+K4D#(A~1OEMp^CRu}?SF3KYRaHzzO zfTIS(`Jd4P;P*Y6Mm{b^*#bnkn4Al=9!y3AJYz!3LUuvIK%-Fe1IeA+i6*X#n!LmP z#62&t8p^CbGg*z;D_$9o;^FzXk6L%TFWS+I7BNu;S(%l>l}2*AgNLu{UT1}$M`#c- z#M|ix{w)gT5L$^00R9BogA21Yq7yvs^&Rca)*{<>n}aT5z#H8Pr>4+sZA7;Tpo7d z^R&|o@c0Azy8J!v`;wL{e5A8=bvm>6Z+#8G8Z6HkEt$5NWT&RTT#)nhb zNveYw@8GuX>!bi-8#}0zmV#L?K#JDvm$ekYX!~_UO0bkr>53Zx3oUs(5v*kCvoL&g z!wZPC4Rca48baQKKwtHaI1I&EB7B4;cJ9J0)PU`zS zy`4Lp9-Cj#adOK_^1LPFtPBk$izT#1HK6+lZibWq+OQ7$X*pS(#A7Pu~x4jT`DQuu3hPEMwe;j^DnEgt|^V$)u~ZUu`RQ(?K-o;ojq;v zZhwTv2f7L2`*Vofx{cdy5TLiX&D&~o%rmo$o0CyjM-5le$R=NB1+fkkZvcX@wlh*f z*6|Y`7UF^GiIC;az*=(H-s1U}QUcB=YDCqIwCCk@+P0V6x0&3R0U)+$`@~wI--yNS zbavgE!3xmk)b>ms)5zim7)hr+bTI_Sqw_WA5vRJ%*>1S`4F?=Tw@IO<5x+dPM&|ay z@3VCBX9twM02yFV%dB!TTU>`eQLiDU3zlfjSe; zqhem8Txlp@iZ3EC{47y_pJ3%y8Dg|0uRk$MNNJ&3_!(11Z0POkk zG<7`IezwgWUXh-cngZ{HoZD`+J6q=!I?ngTZ^RXF-W3pUDP!$LDLmPohluTU>cS|E zf&ZrkNE9vSvv}83RYd0(YWDU#0sNsqJGum1ZzG342Q#jA>EyWjneKR#w1pYfbu zD`yi6syps{(@G&kLbHy3myk-2Eh!40)u(;2!x+X+-3E*Xfirhw%WDN-g10Y(eWD$Q z*42s~yFRZMZ?=qYw}wO8tsW~!x(09A`z~34PL>+LcI2FUTw>0B6GLLN(I$EwSL4(^ zeLK$0^udi4vWel(0%$3%lG}VAPa6sW;x+;%knIMA0~Ul`{8QV|zlk(nLwC-roDl74 zW81*R%x)8(bQCuwm85B-zxMZ}w2Ys&0z*PW<8@b^$K1?vkzeHWK-E%nlc!~}dUDgi z-|pJ~NX1y^EW@g1Z{X0z)nn_*szMgti#7n;(-m6kaSAdOAcGHH;cAI@>=I5n&5oaBe6 zTYD!@SfDSQrsdK_^W~@>^|CK(MVqZC2Wys}+{~PCg4O(uV1>hX(+{$aL0MAfJdve* zaS1$0TnxMPcJEbR%ZAqv?TPbEmeA>v&8HZ5Z72d=-72Ak>!w_om?`3~zU>e$+@cDB zu$oUtmEtRJIMYt`k~mJ%LC}K0lUnQC5HGDgMFam6pq-8`OcRx*#jL>+IYNrxy*==U zldYnNxCw==cqpzxKeA`g4v?Zq`RhG+-7PV{$XZLh5NXX-G-{B13^^F9H7oK1zI*fz z4(11%ig?~NnF@w4LsQLbPAi*WzQvS#T(R|-7lJ4ua;JAAqI+~*0D(3FBJc(^K_)Jw*?E6{0 zWS95-=)B$S@?PGYROkHOf9S}jnW*=g{M8QtU*+c%M8a@0t0p$x6L3Y4lV=z@AA1wN zMw&F2cC*kKenCns-mR=dH zjEHe-UTt1v%Io&MRw}jx%Knl3`Mym?FO9`o`y474*lFz~kuC80>Aat($K~`pF(nL{ zIWNxzgG~ce3V0Svn%y_*+aEMPKtU@0FB^)Fh9YqZ{kFa5J0S>_czm5NgOU{h+k%yg znXc1Q9t*7HSB2A64_T;0m^0a$$5v1n!j;+*3YaUV1O<-pS`uj0Y~kWy$>MYpb5y7) zxdxfP7T*F#GSTr79P?`8E9ue>dk9C%eNps3RNRW*45SGs=0xO_ARKzU7!+z#uzoFF z9DcrYK~hw>k-yLYSpLjaQUV9hIG{Lh!ifMA1Bj#80U#RV;YTwph&^^cu^L(?Ja3#5lqZ;pJD50viP-aZ zgtF^9D(#~z)e7a#3NU52TNfd@y zvnbTRloRK}d-S|_7dpdj`ctBd0(;veO?*MTBsajotfL`j-r%0H6N}3?6$-S7E-_f& zg+NcixDmiwBknqNz+X(=TK9Yj;80dCav)jFb!eE z(D%&ZBnXgMSvir@Ptyh8cdw?2z~NO?g5S^Lr-5HXbvEi>GD)opldFHvAroq+z8;Ah`U&)2Nul@2WYYtGsa z;5_??=np*IRrybhG^NqE3B+VeRJ-NX*mqPdu;=YF3_kRc<`tf9Go3b9b0IsbbXpG} zYkj-VE(hGljbQXEH7h}hmmeRuI2?+f6%}6J4e1)6ALj))-&`9yUxhN_7_@B=|HKTU z*?@l_zOOSg_Fl_u3c(mLFpyRTSqWvQuteHFrKCk!w3K0%1Mg*GWm6reb8NNw?nY=*ViAboi zKzndtHbe~bqA=q@@jRN6M9RxdmtE2@{DMySn~!I)Gm7cW)e+CMHW3@Z{75KZRTkJl zmTXAxLbExuUDm8}L@ah1NOWsc(ImJX6AqKPp$Wfph5Non)`em4okm{0i5a->!2)n^}sl#wN$Tt!Z zW}(VvWL}8ybr?Lo1FW`iJz1gCQ*e{;#x_0>fA^l2d>=XR933O5;YRrxc_X6_*f7d$ zsF0+_$B+?}Pmn)?Ra7)C5Y{<~MFgsicN5lqJ2qGv`kW+%NZVV<1JyldT73h~ziZT{ zV))i9-ec)VNpbP>de_4NBRciS!B_9ZgOzANRs5XB<(NP*%Og!;WvWF3hc~e zx|%6!{yp*W=3Keqf0OVFqzVL2OmW+yMBrA&ZLLxdN;iXn5K4%1CDaAaUiqrv+yh?l zC#6ung;d1VFx()X&l|tN<0tR!hzruxsSl@GHDo#eb;TnQ3b9Qn=?=6&@!eR)8+&1h z=PHY13u9$ofHZr#^@C;zF#OdlvmX|Dr{VD4=VplDBVv3A0SfFO#p?ZUei}hk8~T00 z95U%I*(7x$o#YlmERVm@^m%B{PYWNtAlEVAa>;Zob+i`+G5acsXA~BrO@o5CwBzIi zW}HX0IvIn-_FNE3`WG~99k4KJA;1kV$kdh4gdvnbRW6*#S~c9quS%E<^{3#ObG4dl zH#)Z|JVq+8Cp>`4N|=QqU`AmCT~Q7`z``YYj_Sx8kHNzSVMFC|NKIsMd4-K!V~K(w zM7KbO##zzkhi7;}Ej5;7ah9hlV#m9E z>3kB<#a6-2j4#=e3d!ZBup$YF{7?^(m%)~{t;1>&R$Fd!1V* zhpq>tRhvCy5%A%m;93<;h$#@z+FOlz;ir?i>T1j=e*LZ)2=&=zd7_}}iuiZOkke2| z8@IQF#Ma7()(l|`mM=OXU^nj$f|&I|LWuwrgoUiy3t|8y6+F-Y77>mBpaecs#~+JD zMACcZq<{(UlMVbslTHrn9b-YN77xlca}E*)fE%oj4l z+%w>=H_PTe+`xN^)&0Etg6MehGGLO@t*iE0MDtww~DB!qxhgOs=nGN6}+^tC7Ft+&pv!s)ns4C z?!eqBFsFou4~ZV7TeHE#69H(KAyh3i4|71DBs0Fm_?5Q0eY7liPxK-TS_tk~Ob-_fgpvpil;YD{2_N0A%IWAWhwL6Ux7@j5WdRJ-2Z$n<+AcC= zI29`0{=#RNNjF?>fBi7uK*{CLU=mat(G0>wPl%p`oR_g`(JXlOvW8dbQsljA$pk4H z2%{P|DPIJD$t5VB7)2XA#ZUV!O=F4?QOYlV*0bkT7&6?jM#F3M-l|-Qv(X7O2zqZRkg3(OU%&9{{0p051wwS}TDP*N- zgg#RP=x7NCRtjdw%;i(k0D8QsS*c;^iUVxKf<@7({OX&>1uHa&Vy?w`P%Re$UH)me zK%4<5&0aB|p^6K)czBYSf|^)sCMqJF22_Qx!t8)Z08V=N9Ri$3W_q3{@QU+P<&8Bq^WEE|}Rq(nB!~+4wuh-6}C#G={#|$X2eJlubBz&mP;qXdeDVoS; zxEPE^J2RM}bD;+}#OC3`JVA(b1pZ_{U%-4@!3kmg8=#Q)asiW6zW2N3{Q1}_@VgAO zpXRo?jA-w-&D@Aj`^6=Dco}D-jUl@1P7n zJ~=7YV*Ah17z;H92Jg3I>o(sO9Gb2dtj@183aDd-{?uhv2l^gvF!GY-%madgrVI2M znRJQW6#_R?<^#U93;k$9z+4Y^zb5Cuy{`Yo(Dm=H)N}otq)g;tVt;ou zg>Ttgnhx}QBdmL0_ucjX5k)j~y7#1-8FcDfT?96oM5cl#dfy+9DGk9G){NK%D)ARok&vgXp$kkd_KH+d-+|D z-gSW&2fGI5^&t6MBq-t*pdv^pc49K(7NIk;V6sF)6e2Pq5!l}Fo$mA5_4To_Z2`mn zEtY>75~^(GFVC^~JxBfq{mV9N$tQ6Vyzfs>f3ytOw89z8ed;lv;L!|Gk}C( zjHHQRWTaFgp$bK%q>!d~Jy9t_<2U6bu^{8ChZFvrL&4kvZ0a8=Y3M4~zipLOm2><* zc@u56XQUqRM=A72_eNXoA5F!iHx-l!3=YQ-tq7#J%NJ!y>i76Z*8kq6GOvtCU`gho zSvCg9i66~o7&bKH6xZIL+WHs{dPT;@pF&DEzj@7@3QdQ#*^myA#jPudjhCC6I`udT z#&HJnur|!bIx{EoOiJh(OuCU&UN=30B_bQx>-`PAYz3RkfUXxd5*1B5jo(l#9DuwOKZOuf) zTkYYZx(iq~Ho_)g<1nE1P+@RXO31h{-TB0-_$BucVifrz)k1U zo(b3Tq`PVVzA(wmpcAgEQ=+rglG&GylIYK_x8H7RG;)$8*(}j2&+2|3L16pv63pP} z%>64|Os*SSV{a=fs(Z_MLRQseEv{~NAAImko2lqYQ<4{@@U54k&w84;D4o?d)BWJl z{g}ub@~kC|^u~^Fd)E0KV?(f;M4UDD;O`L=qLecC=hXw=yD6%~i1C=}h`WE-snoP} zP>Qc@O^#)6P|{vNIG+3FFHdWA?u&C2{>y@SJW@->C3#_c4$7}Uyv63 z{{DE)C+;fUve~Q&f1!K4s}Xrq_}q&58)x40&Y7_cptnuEEaTJ zB-z5j3I$09{j*17HX$;RD3ZaPbe!QIxW-uN*4b5Mu6n6j#-*;ncuk)v+e{Cy2)@d( zU%#~k<|_LpZ*Xt@)I=J$9Gl6jz#3S8E-8%#p&%7l+cTN|+p?mc?FsA#;un6+% zk#M*yJ_l!JERD+syaIlwC9)U{y~mq?d6FU3%bbfq-)};XZOiiQ=dCvYhX2aylJC8R zw7c6E)@FaWU9jur7LjNuVW#`23$|;s+wt{Uo;IV_0bAhp$?(hTkJbU`!#1a&*K7Vy z1^B;ARfJvBe*J4q_3`qE30RnXRCF@%1Rgs_KfZ(8&X>i(xY=^T0JwZQ{ZYiJIH(wh5(zR?Q`L^MgQ(YZfJ%j&(ElMzE;|;3 z%#%}wk40MjcM7!m<0NXoPG>ReZqAwrsneV(EmzLy0Q!6-cuiC3wIE0}Bk^Q*>_#y^-O^S}I(iG`_g7e8Yt6;cWN2IyPb0@CPJpIi#@=_j7v*m`s(6 zYT`FncM)AE+?i!78`W(uN6wcO^$IO)WhJbiuWcq6q?TuG!4e$jUJFv2-;$-+Q%q0t z!_9xJrvFuX_0S;P=sz0sXltffPuX0=dr1N)wINQ$nz zDs4wh*CpPK1Wr#6I1uK_8*igdeXK@OL<8!jXrklSD~~NFnes@%MT_aMd8P$N!Tgq) zB!cHihb;^J5!P4{7cW8vVPR>gr!rjaAor585*h>azKq9Q6gPbZ&Ghv(|D+l`F$Lj? z*@rv)aLcT>iOv3rF?aGC{ji_}EJn#eX5Skb?5dq8)(}zzQ&_*aF&L1YoLU3;_(UVA zPnYk{SNjLz$Ks%BnPY@tr(R!MpT+D{YY$ONosIs}=mGvq?$=83?`F^KIp6fQ%*MB1 z$pFverL^(<05=liU6&90L&`Yb(}!ll&d0{U-RFh3j6C{#uR7h%^V>kbL$qwyOt9GkuiX@6qUEgr1 zI@Y-bQaTrobD`x^tkC!xdw-$d&0-;RPfifZ-s6$s{eOmjQ`&jvq(U`Be&vd4Ib}yc zGWX{7Uaw4EC=XMrmD?nT9N91LrCo;G`$BToRC~(<8d%wnG$lyBF_yafn=(jbS-7cC z41bA$g^Rp(Mh;4*xXFigv_3UEqyIrLFP~kEX>R9DyB|Ny-9_6S(!AJ~4T`M9y6eBy z0Wy=5BUveMGv@}l>#l}NgTet@A5|@xIWO3;&c5(|b{TuZ9>~_0SJSdNbLmXYmzlrt z+`qNbOk^M|mBnP@#GjuwZs)iJ!XCgGFk+qpJAp#e7V(=xnl+QqUR!Q#>&D-0w5ua} zL@8r(s#h8PHF?oMh_q@o03Ts~*Uf5%fKZOjGcrAipS(;E`Z;=wTb4$9U;L~Fe zvR$oCOu!e7Iv=K&zO4ZTGOzhtMSZ5Ki|>9{c|cAwxC5R%ox;pIL7Zk>?hS0{s5Pq1 zT|y$}fqmeNtgzavD{4hrOE6yEUWtTrLc4L=riV}88oV^n{r7%pI~~;j?N|1Fc`*Nt zt42YAuUhWgbgAZT4pxW$bBGJSq_n&|-M+lAI(#P@Z?Ll8qlGmho4Ske<&GfRS&1e93i?gZC zt&S6B!X)#^>Jd58ltJX-%gd?x2G080%Ngs46{X*B4i)O~_{+M}-A$RB1F;bDtYrFe zx6A9BV?Wubaau|wC8WEepm}fk1nT-3!?pTT)|qp%@G|AuOAk+jruU1RV(NQGo5r1f zmb&9ZWSk6H72-eW6%ng>78Ti7R;sj7)l9fQrNLGO?cwlghd11_Qv>q0(w=uB#aWy7phBUz* zR#20b!Qi<-c$rqCw^ z=#1pwpZUNB=1e`U1}o*L&;h;)VoAc=d!iS?&$9($QHK6AKRMB(tF_X=&*ORDn>Jah z#{|I~-@ByolaO0wO@l|uPh-=&&gHhukj@13YK_MGUG6hT1FkG7pj~AFn&>^P^~T(u z^Q@>t|ISC|Zu_>&lb4^}FGIi1*KW#y_5itMU&g-nvS$AahUNZGx5Z}1o@CBe^@@_# zTF&ZI&8L>W_KQbzep}sU{CfHys;v!MsMXV6LwEWmGlP~0>D$&h!>zSB_n3Od539+l zdM0Nk$L-`B8hKX#YSSzwpzjnJjG#T@_rw{^0tWOP6n_0)$6hALK&R3UJ9!JM>)6n? zQRwDeofVa4fS12$19>NN^v~=|!4HvkK^?wke~%@4Cz+Wwc+;$zZ=LH=>3&>=_ghTs z>*dl-TJ1(#_E`4y^EO03UH=bY;Ifa~a`QRoPzCS-#}KO*XbL*rmxgAaYfDO}pB#c; zCcBhmdDciW@L5)KexQ*y<|P_lsxBR9z|ia%+rbUFu8c4{+eyllTh!sz<@Mo#D6eX_ zBGApN8e=@p>7yQ@fc4y$Zu`Z+=Nt%s7syvyBTa#(TqFH^ih0>cSfk_#eY5M)Yh-j9 zqCm*-q-%?}M_xDOm9?yl_)XppTlDSMvmR&b@;M!n1Zg>Xg}Q=-%&9xDt4CMb3{~sl zMO77Ar_4=%e&!k$i`C|)d%@`g{=e3e#fS(=%O|6AG32QaFMoOMAj|#>)RcN8q;^b)?S1RT@J4EJ)gu_H#Hrz0K2JfG2@M1cvjf zuaZTO3pfYu`KALG_j;f-MQ)BS))5eX-DOvBbR^ZiFp6{TRWg2YuT1!jzR4qzh_xc& zYYo{q8AvV8TIQxFnpzwL6m)SFg~RNec*oLmG^4&P>~k&6Yt!*LSt+3;WzEw{(9o@| zG0AYhp@z`AJ1wDGAFZ3Q2VaO+ROJ6w{hwFhgQD?#u1Cz%?=Qx++t#hReKRwIO&2{}J7gi@+gOLS(9*2a1 z{d*;ziPLU-^{HTktzCCZw1nNab0-wz)tj5EtJ+(0JqHJ{RvH}u_vC1&Ai!+Jf*tqv ztM79-j`I{Y-uojVf!}6iA^p zwtPqLZgPk;;30I;RFc5?9r32?+kwF`7LWgPG_XJM^5SC$8nT7n@#|_<5fahf#-TsrW>bRQHPQU>9cT297lsYC$9Lk1NlZ8|n zF)^1clgLA7q@fkwpN8#t-FaQh*68YT#Y{H)E3W8u3a5F#ZxMa}ZG@CIua7vy@pwXJ zyOD;QnN4?YhsUx-0|LUH59hYtTS!TKCW|wvTb9SSq49?gQybkj9FfhZ0}-FP*A0Z> zGJ2(q8tJ-C&nW~iFJ7tI{Kp;0W(dV3vUA)cWTyJXo$Z~StsC~R&vqfm8vk6aZ1$O*ElRIB}8iO8N;)1 zkR%()zAcXVeH&Eli(NChYo&Zt_7vK)v8o+`e9XudDi%hzGKd=B;EV`1#p^4BE|*!z z*|?nOq4%>ykY((uI(N)>wJlI9&mznhGHh&AY!_K~)*GG!z}tY?wx(EFH^r>I1b;vg zs^wkLwhPm0gk{kH=>oZGKzBMug4V*mCxSeYk&h3_Ds~!Eo8Yc+XZFOjPwF5Ho=sCa=Vmd*-@-P)qBus<%k%zP&L6KM>{ z$|0yg9M^Jn!o%$Fkc3Db!HMK*ipp1xr4em3p!Y)wOO}tX`@2z_9K^o$UxiN$x9_Np z1&{Pvqq*zFnkLuxKBfyw!Zjr(uf7sU(38;wT>}nDK~dMeU(W_F@V<%bXmVomx!!0< z_xYgM-wQ$*Hw(Xv%GmSp|8ez>|8Ym%`f$_6wj0|v8fW4(wrx9UY@@NQiEZ0X8rwFW zxzF$1=fyLh?|-n@?7h~dwdVik1Jymfy%8h$AcK1aLDjTo(2QX6m)ZBew8GCP+aisz z^K%K$X%mOv@YyF;V3WmtX0;^Sd0He^;A59|Yt?AkPw;ld|Lv09^}aOYs^zX=`fw_n zyPx-?;(%7QQrBtQ?J@kYLx0wABFdWGC$zl!=m)UmUo%`-Lb=~{GMCzz zUFUF?hm27j!!!oC98t*bZ`|>z#-EmEUA4t|CM(-WdOm&&BL>ra&l~9&6_j=YFqHjv z>yLd1aI3}Jd=jpfQS6OUszu$JE!M}WDG)h~Qp)7AoBN`Q%_9`?&o}H`1ywWc){CHj zm8yJBat5c}?98kPX0`fbj#o|^i;tm?(?7WB&aQ(>`s+%Uw?27vK3Y3ov_Yq4kE)tF zD;vkjzb&ckKdo+vjslbKRDo6(Q%_yDFYPVD!0ua96`R8kl{8+GSE^2yDhLqbby9dp=Dx@9% zwf<2Q-*kNhJgUn=OI7`5Crd1qeHLI*?$`c1Sv6@{o@Z(dlZdN@WFfAH*SJWUAa!xt zn6tDLHBvY>HdDZQ%{r$wvQrX!&S98gYMjJoyMmS!Z(acQMTJ^|F+#Y6HYP&9fBrz% zDl7mj?**Wkjo^y})Ewp-6sO!fs-oc3f;s3(MZk||rO&+Jyk(d$C$cxOotrS)y5twu zIt2~Crx5+Nu-iJdC+z6VsX#*xQYKNP5Ahou8N>bgH-DX08~RL$-&+BaEQza>aC{zy zw(1Xi=v6qW`OiIb!F<9mhFTs27Zu#zdLnp({~0nqIf9^qVy31BrBkv!#sJfu&yH$p zZnCoM6j(9bCkwrS>4I6jc4zb@9}jI-q3{IGOF)LyyUjOu&(f;Sy#zR4mkE?l)L4~@ z<;>4Jr^Al7&k>YIel5FDa$Jpr-j?q?|B$7mU4_w8#2T8Z76 z*jzBpxLT!lbG6NSn%4Y?2qGWRY5k8@Q`}N$VHLxVKcfD65vP_`hxF>tyH*|lZM4*sxxvkCF%rY017&{ug z4`{RruS7MqMRfk1+nDm*?T)v46DMnbo%BchM>w+JHgsh3+3Y^W@NE}ceWqMYBL3vQ zPjZrziRYK7L@^2hN>k3Mq@fgqmavq~?n$g&Wqe}$M&c;tcJz_h0Q@ z;;_NQq}J};9})VV?C@q|b9f#v*c5NKj$HlhWb~Er`-+x_ZS7lU?1%(W=yF?W{I>PX zDLM&CMD2wcq+)Ijt^)3FM$cAzxvy2G@pNQ+_-xXpidjd?jcMldFnD-W^AOSfx_58GUo9Ubk<*L8#qz^gGPLIOZ1>!e z!n5nbdkomx+H23pc7*(<3@Mrt>ttN{YG*v@`0{v{D?#MIfS6cy=Py@o6ng(Gq zI5mQ|f-9+5t_3Npw|pbUur;gBnZ5Tc$=;Cdt=Bu_xk!h&txBe}g%f5~W|2O_hU!y5 zlqA6tEO<|Qc;aL%k?`GR-v9^_Z=)-Kt3Tvkh_3_$Mq(3#PvZ5xfcGYpIEYqcL`AzM zIAym&_>joV&sjr>K*Y3(BQmx*U}m&HL3Cc11tKNpPXOq0&t} z?Ks(tiBL{JU9LeB8*aNNO3p3skg4~RQFHz}!yY(ZS`;~c`_t1pZb=tn{PgPjzr9-M z^H?My5vFe|_O#1+<6CvC;KPL4_+R-dVhSW5pVdy+t&8Hb&+B?8#*Vixs40OvwsdSX zu$<|y-B`|dm*p(iLgtnkJlihzM7i#V-FYN|+vh>G&&TX_+p>xW%Bi=;ZK8(3clmsY zBfr}1SF7qSkiGs!ZQ5p-_sWNhkM>19nZNn5Q2Gi0LgYFH)do zWGV%Wk#LQO>_`P|sXcM&bH3joB}zbj9GeZ#0uxK@9+%&~tXCzHg1kSkrt-?fqi|gR zW%=dGYsvadE;eiL2zczjC;EMozEZ{D3f{&x>+K1oV3K}7sr)YVL0a#p&UQ)zyp2~w zod=P}lvY>0emcCZhgzTpQL|-Q4~278$Fm zNenJYjPu=CmE)K=Sm;QE=2nycNG0l~0MkIdF|#*79SEHaj3cFk=|fqjVWEcuhmZMe8>$(I8a`os+3-?7qI&>*WV`jro6nZlr(*-daI@@4Vd2eReJZiXYN%`FK8iyphkJiH9x2-;Yk&9+zJHL2YHg&UQCwq1CA z{Gb(4adfnwGAN4uwZld@^s5h6nh}qd>|$zVTDBg64LO1l0b;Xe!_y&5Gr+#-4XKjk zR&0CJwo|eJ$27(^O@{MH%#|>t49UA#HeS6Dm20WS0=d#)ogVr#HDuJIiBK-|q81?M zqMoRujA~72%PbZAe*@6=v;X$LCqZm(@0HZq0`VB^&l}2|Spz>=*@sKst1zR-6_*ka zbPCk>%3ZM>FH_>kSlC!_|EFjBX?eop$&(G9-mKq?gv4vCE3J7pOR)X3%MI3fn=YtGSwJrW8CpqW&z|kEGsy4yk9+48{p{p~d;fUPVb-qu9^SDv zq2AY}_X_ydeR@jM;2$SNG5vOebBD>$@e;%9=Xo3ZxbF1ypW)~Z*cD@uHT24(GOz3P zmc{S3X)sn8?$>>$D}ybY&E=o{JX_*)qcu}_W29ECfj7yKCW+th)dgxV4;Mx=JisL+ z%$8TXyUMMi}EYe=~z#98+`1e2s2_-?x#e`mqy~O(5hJQDQj~!QIwHW~~NrH9iH;;gp zh}+q!`%ghBTt){YTU8zc5c=z;+Ejg!#q*KU{0GZrwK_3QmHoD3R@AY2n9(XOO_@#P zGXAZme>uD9b|~Z@(Nxa(o3JbiZFzw$tr^cd4*RRijSCuXOZrZJs}|zePB(rTn-RjWl@;1w@s`nA)nXCo)Z^!sL6Nv@7p0#()jTR z8bkl)u&4`G>WIsuFS(IrIJ4HpHrV}Cb}c00$oHK1B80l{Mdx#kON7Fx50R!gssE5PZ!Hag}gnkgf5?j{t)0wJ!7#^ z5F6C?U;i2yPJs#O+Mx@bsihJU`I-J0YS*i2^h&VkC#VPts$eRJii~kT9=lCe#;&=4fmUmr zR)(7k>AoM!K1hbXL6ewDc+c}oI~iw6g!t;4cQXaC z{2%9|!|w|E9VIrfr8VRlYGWa6wxSdwPR~F0eG?qDe<5o;q zp_A_1P`#xBleNFbM`yZO2h(PddNElv18Ve>Bqe6@GC-e}q-L+8{F$Dw;i-Lh`$SGQI!in3Z*3F@+YPB@a3~st7Y=Bq$|n?` z1{-Z1_Rgw775fv8is1AMLWT7{v-s&ig`<-WHiVo))StA8n5v2jlZB_=rX^|0dP2sr zj~%Z!NuqbAeUXpA<-y$YZ+gGAu(;I12uye!?kI{&Ao{9&)JR9?>{8a%CGCQ7(rjP_ zdF_S|&xh4brU|w&_b;=&l75bvTvwb%DU9m8&K^-+!PutMSBvojhpCFvTJZ#IE9+|v zDzS*-D9Ab+wz@hh_Cn|%Obyj0ySWY*S$gG~T1pROLeH)|!^!79GUWl?Vb3^>D|j`A zfGp<(SuHmHnu3Ts>orCap%XVk6mUYWuNTKxsByz=+2Yh1`1=d%l~LlR>6_lToG!ZA z=K3J9nmzjptvb7s^zejPW=)vKq0hx+$O^!JtF-&)&TTD-U8T(N`Rp49{`NEk-Ii@G z&(Y} zw4oHOXVu7wJG^7Tb#K^R@vBwoI*rT@Z#{=@85A4!wJ_(c`SLv7fyRvC7y^t=WFYid z0(iB_~(1`IwU72foIQWQ{?M! zuFo)$SiWa3uA1kHq9?xhm8Yk5tOuxRsNqXqTfZlf*hkZPb``t{bd$i`03Z7n7KVrh z>#3YVV;1{*p*%OmYDtT(hHwbZ9}+{d{3HYE%%Xvr7(TtGA@j4Z&tg2Pc=uj193Kdh z*sA@L@iA=3+5awRjlJsmLoD=l3-a1v1c@D9VFoa=giMs2P%01@yfu_5E1hY_4$(Rk z(8r($jnBojDqUo1!C;1uL*XPr3uShN^a%-2(~Aw#J72zgb)y54z=_GjsWs%NnO$-G zi~Bw9k!VuIfvQyZE>CHio1mw?FzmOuvT+PBA^FfbS}C9!w{1<82pR~Op+k>dZknd^av78w2ji7M{2n}Mvhdj4 zQ;4r%6fK}ai*4$Yu-~yb#JNP|%Lc1aDZVSwuj}$Vr*en~=l49DE+XsJL!*)7OUz;w z;o@SH964tze>Ddx2*XLF;_~v(iR_SiMl`(ir{rgP$}4vch7%4;raJVO7=%^|If=@) z{Bn5~p~N?9#XMQ>oZ?!je_`JdW{KFI$3Df^>1(L$;>W*msWiF2Fd=S2YR(tbM@G8& ze_t}HAo7G(jlP1@-pALggbKyKrA>#qG(oMJ72?q2#U%LBYEsQmYMkDV;LD4eom*^jlL$=lrP*ZO+9IWP@@H`5P{q)%Sag^zBT7$`V zkvf!CX?4{D3_DT&f;+0U1rbj*-ZoS1Fk%3j?Z7>&UPC(EIN51#ZK4RNTWqmOI^-k# z$gFsyaMS_ZA6zLAG53U;W^=Q&)5-BHSqUOevC1TzNNRO2HP?~Oy6J%&KeIXVS(+kJ zEDjc|?YcNKuJ*X|Xfzhp*OQVGb+bOwI%2!Z_?n==-e8!r%VHYsnM^ zm54-gONG5Z=7!{dDqZ*CNO=ler7p*yYc5juj^+|!ExaSno1yx zE?MnEjYjPE)!<}nsr-{vFvWrtSzEk^oH|2(jR`cX7YX$Y_OlUmS~E4 zdV(Hv1M&iI)}gEQb0-U|)7{shf?F*QDf2O0_xg+e9bO6@L^w5db3jvGtqkK`VTJbq1GJZ;)x4}E%FFdIx9 z8;C$MK0A&Et9|&|JI!kd3ZTqm3i3VofaXb%v7@tXzS4#>hb{i-1+X{#+tMia`1G>% zeC^CWw=C~-c$k2EJY!=MG5I{O-&ZDoUyLfosnF@qXjH-66bl`S*LR6|4dU>CH1Sh3 z!GEK9E$Uwf8I9f0aS)eU4WxmpkiEM)CK?XX^w-Emj9bfUBbW>L#jJCqG9oGkRAFHJ ztc`b(CVf+WrX-*X47fH^^olDUmEE8F1n1z(71NK@birwrj|s1hKr7}kTPFz{WM-YS05(+NU{7Mq6Plr|s< zHPL-UHyVH~gsaEOR}Qt$$=$u8?pG~$B8_6(;f45P`tHA!Y3 zrS2~a1VKxgkd}O`<`!96s;isb0?T zP|XwXc9y}rkkepr5U;+`W4Kh0UhHyEJ7X+Py`2En$-~>#F7Ktf31yNjK(Ufk`e;d5 z(-@G@%28FAvbIu;3MRt^hsWSddn(!7m^>_=+!=DrQgi9CZDL6SbJP<}#!P>b%!FDg z$K<3G7&ua-UsmSdJRgPA0h0KOb#1V115VTc$y@Jy zYb2t)6dB*^4amZ00sxsN=CBhty?lq*u{we=hP+65HeCfkwYGgz!7K4LJOP=FzPZW9 zmS<603$z_^39i`0FguWi=ux1Ota9A|cNBxN0BYe2U7o*&FY-y};PLM9Of$_#jqlR; zxC~Vy_W4r)`Wxu?#|}m6>srV6@}yKyKW2Mi-tV;;uiB{f4``MKtFvK7&i&5pHXA@J zD{C&Yt+gE(=yBpK5tMl_b-ub+(qbKl5q~K}F~F@+pk9G6RfPXtDHa-H0{i_QA69I5 z4l`cOF?4vlqvno(Oq%Pjtp`iS^kJj69z#W%yMSPtY63k1eI3~w;}*W7k4#P705b8T zkDzy}(8s;i&pr6evJh@nC~bFz$*9+U7euT}Rn7iDd!1ot$l@Q)a1RH!#ExLGp(cD> zSR=ZW7N z+{upO<|mWI?>Wu4k~8oOIol>M;ViM^s1+k~m=4+((8`x_QyDi+CQv7k1!*n2-!~T@M_9S&uO( z&AlP+A#bOMO=0@W`?a5Fj?7O+6&FRAyZG#AH(T~KEAnD}4`ulX+_R>q{=_skAcW92 z$jdY-mEnOdshV&+vdsW)mzdyxzOLVU|Is?z`6D3?e8L2eGDY&q#@w?y<}mR#V!2K` z$<^>#utH|v6Dmhac@m(Rj=?7pzRQIMVmeMc6}gf7x_t1_n|{MtRUBly(eIj38##pK z=A%mz<0db`EyuHt&C4tiW!%g4^|nGB|C{&96ilotI1)jcO&8;2myTtM8hi;;kQnBx zPzi5=u7sV6drWK2$2_U<1{-|*ZPcH^7CFm$cPvW2B&y2^ zTf7**T=U3+szwhD6MU2^)48E=@_4=luScy+8Dg@}t}^^v4bD?{A4FGI#?J@NJ@gI_ z32Pt2gj*pDU;%oKz-*w%O+IrSLqbw2Js9Hg$wm=+A4R%aIY`OQWA*`!=BWY_up(j4 z7Vl0Xq373Mkf9{k9Yo_&e&g&8YKN$VAwMZLpb(JD&@5K;Zidf>`C6)`{76#&qaVJr zuJdUp?JQ6&%rOh+Ya*mwYA%@b@xrn9BEuDz!T!IKHr(qbD3(j(J1R00iPvuj%Pln~ z#J~4hM+>JJP4iJOIc_Qf(Yc8LD$(dGrzV7BIS0Sm7c&LhQrZwFOYBtd*8H z{8;seVXd^PlH#=1icg^-F^qU;lxC$qFMMVGI5Qa}((1ebKKp$!0Q&U^UlrA+!O+?u z0Ju6X;~5?**Jn~15)-KaK4!ArONnKbj-qSX3&AE@6d^IubQGo=jf?}KG%xe-F|2I6 zq8H?EmDz2Wlrj<$W1m9??4z+$m0i#B_B5F>RANi~^QY*iNgoZ-<)960P7^hUJk(|~ zGd_T4rM|A~iLRCtx06s9YWVwy9cmqxTaFTTdZ)BnJN9Br6cZwkL9r+d!GONK&4fIH zBlpjFGygotcG;2zY`(S%x!lBoYWYiy^Mg6!Q{n^!hBHE|jrbz_7x(0#>TtwJ-EXQo z{L?vMQrQjcoBPR8ZEa6+NAj?RajNc&h2OsQ+hwbA5B`bG?3^BSr1!_*wq{zUauC zEB~XNwble5e(Z0ib7+XMe!`CZ-4Fd3iIKrJ_1?p;$pouvzr>$jTq;Ucg26{J#5e|& zRalEEHVOSXH(#e0XmfIr7N9o+7woM{TZ+p(-(ztJiZj0g;a)H7tP{)%Kif>guQw1H6hebKlPge~sKMD{>BgBD%n^~FQ0alM! z?HduWXyb3KE&T3-36G$s2$VY)XoK_NGRyphvfmKbgQY=Ec7y)dlD-pDZO=QZ#qC`e z{u>}b>=e-B@xsGnP*jk!l4eY6=_azCP(U3i6)82q#(o9j?B!wc(%gyCTr4?Tjr9ih-}JD^a7dT-nhnQ)b_QOWr&BO679<)YGK-M zi7$&QeJ4oSvZeUp-qnYgR#qw>1_GCXCch)jbmgcoLL2Ya8MU!%bX~v@JAX{0b?=O< zG-u8yy(&%rtN)k`nIY!Ss#wi{q1A8W2?h1uCR_`4M?bouU#pmDbo(^4)m$1pb`st~f84H}k*IP6h?Z9?>14b0XwJO1ShImxT7$wb9tj_SIKqHZNS>k}&cOKw zi*n8gbkbjBa*Y%vlGP<}LMiIsnhdAl3y&WbR}p=A0cB??i#j6|){JC0@hx8i7`O?Q z6sEWx$h@v@K1t7kzmnsyyoDI=Ex5-CswOvOKfsm?O1N^0}T9+1^5RJuf6XcWkkA`5pm zHb^Ho z!+KqvuJB8v_mme4rE?YR44YRop@Q7Pu*ptL?6?LfN<)v2;qV2mT+y66F3( z-zdK?Gs^cY-kx*zeDvuNv##?+K*nafmW=>em7FE|6`MdnGhrL@4)lva+FAiwXd7+jHw~I8F6&9MPaGklKOH&nBZcLE$|$E zGC*`^$Lh{-K(%FVx#tVK-wgHJD$QN176WEBjdwmM%tC6RNpjrLT8Y5EXp4fGxdn9d^L01KqecKQAUj3Z-I{X#8V;gEFoA@-gZD zBAb1{;Bn|8s*~2S2iQl8{I6@An`}5$66J=f0n5SV`oY@d2N$bg6ASee46P28Le2jJ z(=d>czFD(<>#YU!)X1#=A`Lx(e;=)QX-JTwJvlWtm9%jhdMs9?9y!A`Ww=dGZ>B%J z0PZKwd#m>08Qx?nXUHs5gzJdA1Xz9 zK`zpiLu-fcHDSgMf{M;|LPxJ*&;8L5V0yr8lCK2_23DYq{zezf$xZeb3?;x0afrER z5s!Z*`b)Uo!ITK5;cuufAj#RLthC?SFtR+-K>}-wYo{CiiDxWyvq=iLJKmB=K ziLN0PfT>Ydro3CnImuQhD+w}sZf)aQ{1=z!6vqbphKKgc-uuUh42BU2c;eMlq>fPzp)H!Q&h ztaq_^ggqn-p4W-i%v{g4x>wJsEoGQ3NH&J-;(}5VF(8wSTiwVq!(n1+?3m<%ZX{ol zUZSSYBDemRE5^l$i&0t!s|jP|WwS zVpOdRr*=Ce$|zZ1>+R^iz0TR?g)Y@-WB5MuKK#y)RtVZlEiiCkHbjA$ z-cZpsG-~%ZS~8u<0c=F>hTyw|9mH{?UsqiRTa955{zph*Qq8rHtPQ)3lcwkm$=kbj ze7ga`!u{}&HQ z#)JIELGWjLC5(w44e8I#3=i<&M!gvrH&|e+qK2UekP2@|sFYJhsJ0j)wE?UsyN1DE zWAPj?T9X9!2YN)$fZt@HdbAE>8Lr}k7tvFd<*gKoGx^clnfo-EuHEuyK?p}W?}u}X z|1P8p(JqO@KSez$R1Ssl7abTUS|Y1jFW&@hI4!~A5{}&dB><3N;>yH`Q50SMj2K!# z9ISJ_CS$Xw%Ew1gqm)uq3^8zh#Ath4aK>F^qg}KRv(K_tkP0Igg^db^L-1mYkVu*d zX7yk+v9IGJ%W^`f&&|*&Cx-Es+Ag=>BQ+)M9gJ7C|AU2%Lb}fc`3b$iHla%|?Ok>X z5s&3yG!)-|77{n#p<%m^SeTV)*uxza&I&P2V2@lSsu!`>NrKGfA_ zUV^RlG-##g%jjJ$cJE929;em!C$xmH+l810i@dq>; zL8=hz+pwwKZEYP00*x!}|5NcqL_&Szpa31*HzLuHNy8QGU&Im}!stwm{(EQ%3CI|H z1agw$DQiORRFdL>UoP%l(*KG`RCNnPL&T8`HhXmjdNJ@6$iiVlMAQ}Zh`BP8EdJOd zvsGjYam)^Ai{xZqvBIX>j;x1Zw`lX(OL4oRISR*7Wihw8BB!`S%|=M58#j7OaIEi$ z@5-1Hl^m4e*4m;4eG+*r(WDWliBmc$3T@%r3vOl&c8C)LaoKT9%$3A3gB5TGi>y1o zNx`pJ50eXYFwv}N*_ngL(2Pk7aWybBe&H&TC<|q1Zo{uWg-7suvY4#zbwvjYe5$*7 zdA6s|uB9Azz#mZR+P1yT~A=Erpvn8vuXw4!3w;EgbCtq3<~)aB7@4A!Ijxir!eZDFi&Ltm zs^1i8v5O~{QhDrbHA=2SHy?$mdh<(o+t)1HGS{(XvVr*s|DRFBo$p)C>^E=;jhgdO zC%zD84zMCHI)}nMRFWUD4KR`Zt?)(M@v7%QyhVn7hxHS=+av2h=+|`J8g7Vm3Se37 za$p~81Qj){`q#)L%zv?fHV!P77&Wpq2KZV8Oi8mO&W1{zIRBBRunS8&flv!LV;~9j zj2I!Hj+`dNm>$Nlk}0W>h?`ph6+987atL_F*ZEhE8H%NJ_+1IFg(9eb7AAQX`+P|JdpLzCsHP^XBMj$0Drcj8SzsMZ>!0_;}G z?C68S(#;Y+N{~G4u$UyWSCR0whW-U(CW`lUKo~kWxe~wP{8~Lf9O|f0{suB9;f{=M z4U6WE{v(Q*y`l>9qGQn=Aq2c_z9tN|M{W!5FvHI}!<7R49V+7!G)1$8i9k%VU|aXn zDO*#p2MOCstKQxbbEO(=UPQM~Ds7ha1S1As&+h!>dM6KFl(7~Y+{7#7Gu0c1}LIox!)MWF;o2l}66cCbI?vhYbcYEX2{pA|D z*Vp<+%l~X-S@Gv!*$N;6{GFU8nK={>^VzO}!t!!wC$z?JxD?;Ym82-Bzm}t}*!r!f z59-pFloY576mw*xzQ-=XH8eh9)}yQu<@qysFMGCc>_rBI$h%TF`xyy^+-6*%v%;*)MdN~ z{)qqoz}e?y71t6Ql8+9uq3#Ijgb~->`=@dK5kUUTmBPkU-g!iFsA1#9mne*BG1!*o zgieFLq!QX1@=8N?;__b~_1)wBA!Z63x%8Ay8gP_wJqbV%ARvsO?wp>+0sjMA*>Lwe zlBgsfAO>yQIW-m8W25gMlaba8>YHw!o7vtYQk z(}!lEkO1dO53e0aU;nAKe!=f0-Sl53snV#4u%Se`bB=wO1Ti#Cz0h`c6L}fM%YKQV zkZ_?3RyZ3=MiM#BpF{qne8Hw(mr1a;h%M5?%fj`tPTrlrMSQf>_i^8N>OC|Ml9F4_){KFQ-U4Gvm!&jhMMEd$S&i+;Msm8^SH6 z$YV2`D>$>9_4H4`^$FG{JgkHN$>}0v#-_$zD19k@E@ZG#Fk`P`43+7d_qr**@yALM zmA`O}zyMj~?~E8{b@Y!;s41*{-*EWhJq@s}bfW9q0dCXpVU7^~%q+sfH2mKym~ym8 zpi>cX$B46Q!NN&3j&pf>=2~20oFOhvm?@pWlwgniR@(gGM*q0L!(tp9_IJ$Xk=Q@< zqaRW{g+WHvDo}~j+GiWvB{#@fZVe`Um^@7N!!U=aA~fH4}bJ=lHL%k=tu zIeK?&Ph%Y~qx_Gl&u;8yww4D+nf0U~@NPxXjZK3N4w)C^{owod?U`q#!82|?r>$*Z zHqwoj7BP#hL^YM?q_B%#VGvitT76%ovjR9XuclyJOHl=1E`Rrh zVffj5=yHWC7j?6XZ9&xk=>6rq;m4yz7r1<24SQ;w;l~Dv#d~BGDSJxCBAYLdk6XK_+Y(PO}MLE*!n(l=lzfs_&W!%0}m0%KU zfF9wMRt-6%XD?4PZ|NGUSV@IOo#KVpu&0jV^_l`d=7tK|h>Yn0-GQyBEJ0YxQp z|2F91e%5^X{?&C^Oqnm1#pX;oYyw%FkEzkQ?!Mm6WCeL1k6+t7IgU8DvYl=Y)Ml=6 z1mCz*xF*%cQv{#-BDwfnA}6n2jxI(;`)(I6q$|Q+i9k$5*Ot3R!b(iU&&N=zKghB~ ztZ>Rk&~UZp0w4?G^S996bQu+_&+_mmPmdb+LiQ`tXm47A^i)F$_Fng%{<0r0sB84ErBjXoM0 z$d+hQPAYAB)3{=F`Gp~yX{25U#RuTFVp~LIwai4Uhhze33EG6!LBa@hJqD|2?5QE} zp(;NGvt2@%>ws=$Ce;avA`rwllBQ2I5Grt3{hCnrAFtc?g{)+;nojP4)=l3I!NrIA zbmoM;IHt#lMj-9MaF`OW$L}kZSBeOGqqsoJV0}`#7|ss^_$9lQ#^F@+&5ITJB~TsW z>lCkdeQ4qLZ-#ouR_l_G5cjncn?G@qMa?_e4pFLGZ((t}p8P?JK0b2(YPnxv|xF4kE`#t4h+0MeB0>p3Tuk6_ zeO+BVW${0)_<-zNKY#vI({;MYZohhLUcYR)?}KapXDVLn^3UnW@8+3x+Fj$Kc{w}P z&+oP9FH^IC>;A~c;|5x6`(ejdFP_t3YB9IV*#1AawbASxqNCkZGd<6jy=g)Dk+IG8 z%K#i4TwwVcKN3GEFRA;ApnY$^uJi5Ei_p(|Aup6puQnnjxP-(0u%#M6UMsXz1oH0J z8ce{s+x^M!oanv0ZTaT*r(gF9wUAPM4(u2bRDvrtrG?oIi<|O+QD_~ja<`Tv>#o>* zzNCFXjy$E2_oi|08fnS6H^cI@kiV%et6}Gjcq6WgC{u}lVFwz)?<#`1(q$Z;F!Njz zJyuQ8WYVp%8v|=H^Zp(M^@+??eVbw)v~EhU-}6s?zADJY>Ev!K0qQ5@)oskhDHc93 zr(+}I8zIQ{gUMKKr%pmuO{cTTm^mA_JLucUXV8r$Enxp+a_;OLdIu7xF!zq!i=;#j$%6Pk%KdjXUye%vrq|3gl{qa+F)B7r)**aP)6K6-N20Ad(!QdV6e2Jj$vqV2 z2}ZG&{XZBXcD1`{kt@!TS`f+|rZupwF@%DLnsr9YQ^FvIufCkK)Gl{Ie+Ja^ zoZZiVKE|%g^L#$Ht+g4t-1Q~Ufp#ptPpwa1US4|awjPmbc-|zdnN4TTvKU{ZO$)S} zkM7Fwd~Aji`nctEk^?+%SC1s3wOM@cu{|$4AmCEyv^@8Pw)EP(4`}T=!{vL!JKww2 z8_Z7+m41iszvXxfyTnXeT3SC}ZhB=D-wf1GcYbVo@lI#!Dx`s;Am0e?lZxneU z>5ohc)4hFL_yMXEWmuZB?k2VL+^B@ZS1odaNK0~4JUOwr781levdz`!en?*2?fu=o zetQO)O#UKev0pMk_b2*E^gDeDivE*Wd!kZNDL_~$}cm^6Mlmo6jA{Sq9>^P z>Ogd#O%>U_-N>*}8s{$Att8LOEVjG@8f&h)uHo9hJJ=P`Bm!ItTs)t+q@7A+aJUf_ zcv`Iw*S$L$ksEJ4Kbkjvp#+@IF1`i`8Oa-)a!&|--orbeHtMT7js9M^r8Zu0q+Yq- zBrjLLPl}Zp-)_DU_Jo&FB5H;n>AJ@^uIcyl+I0Ic=(T{lpX2;gG&ydBan4O&uT#tn zGmr!CA8Z{~x%T6k9%Uj7FdJhuuRV|ldjK8)1chY#S zUn_(h^)~mg7-W>2xqsepxwx2&mhIQnv>(1bIm$6}S}m6u>gpD)3J4 zq)9|`&*M=l8o6CjEVvGqcsSHy9PkUgiJ+^G4K~_S$PBUXiqL-pmC3h1j*5V8D1_0| z)aCJnZ7KNiG(DY|F3&kK2Ep9*NF_tP^!kvgWCG;JCr4|9d#Q82dMf$py|L>jMb#Mp z^dyOxnpv^?{&EhMIx}OkFaI+$kyD&y$z^(#M&-$Y`pbwuYSiIKDm%y4%)x_}y4w>y z!LB>8{@uFA-0G5C>HIikF0p-+YzfHIMMb;njta36rm9NulpK9a5md6eWgyXber1Jt z$y&6M%j08GqP&AO7ynzhA*5IQqtfq3rSS*Kw+OxEp6XQ6O{WCuCGXO+RZ+`SB9#ZA z8SN63MD0-p{>QT-9&n2&Fy%I^<6*{tt8s9{s|jaiCoU9y^(Nl?_q^3=D#R~slEP%i(DaC7% z-H+=E%WPiK4D+9`ZkFu4_Whz-e@GJ>$I|qQV^>U)!2z_x-l z1@XKqAvg=S1w-Hs14pXHH2Wqw9aaF=nAk2!AXrSRVX?a!Yqi{mHP_*i12K-9T4h|6 zDwhJGn`R2Wk?l9E_=!?lrqZE8$ZVaVju6|_@5R{03~A7Bm&SNvg#towC=9v80~^*f z2xvI_^cy2Mg)bD=g!S}`;lDj&8qD}inPfy3RVMoiLn6#1mb-^{rKAXT1ZbQ+!)X>lM3k{x7R8?0f?NrV%|A&jI$Gv}u1+#Ej8=UFqN1;-3r`WQ5k5QD7w=e@a_mvoD=I) z7uk(Af3c!_)5n0cT`2TK_kLrh2@s`cZgWmuGP0~qw9yX5i2H)pb5`g>T{*-V)jG;| z-N|_38{?WG2-LM4>b5f24P0c+DDzv1NEU;d!#5&F2Qg~*IqdS3ptIh@R+jPD@$FCP zh?7x^UT&4`j1#b#H9g0 zp13XPr)9xzwaVLidnNRY0KzLxef@-abD3hG4wGY05JvPAQagjet7-XF5@wE1O<*rC?(dfE$8N?bR zRg&0L({6Lwvq9*7JP$+`+>3j^2(TkvW2mSo=Q+Zrl+WazX1W7$2`@i*3HyMTU61mk zIj%`nqHaNZe5abWt2^2nO+8P!D-GRidxfEwO|$34ks4ipb62_nuIp~EXX_QIIquD^ zo%YvtLSBSzk#xKt#Me`w8;m`?pNYYIvvRrYwvo7rmfMvYH9nW|sji!VY9+Wn%=?+?y~@}MfBN~0VH z1fSe!eiYf*)HdyhOMTA8sK!{0Vf-8CKMJHKZNbWPb<|dqtEO(Hsf-*XhB9=Fi~C&8UwYPQG$A#SD)@%F&nencA4p8dSZY7fR

a-W7@6%~1twycD;V*CpqOjhF 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 literal 0 HcmV?d00001 diff --git a/docs/images/host-light.png b/docs/images/host-light.png new file mode 100644 index 0000000000000000000000000000000000000000..a78b00ab8e0d32a4b882de2c55ce028a5aa02129 GIT binary patch literal 113373 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%0AuD`vF{2mKejBJV*%d_gz69Gq!3)$#UZyG&P^|l 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 +8izih7#!P7G8qB4qGbOjQ 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%0DsEx=(Zh+>r6p1f@Oz@#_tD_+Qr5I6%&kDISw;^Q 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

U=baDT=!M!q8k_z2}*Ho(+ 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 bP)R^Crh + + + + + + ROS-DPI + + + +

+ + + diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 0000000..32230ea --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,1847 @@ +{ + "name": "ros-dpi-frontend", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "ros-dpi-frontend", + "version": "0.1.0", + "dependencies": { + "@fontsource/barlow": "^5.3.0", + "@fontsource/barlow-semi-condensed": "^5.3.0", + "axios": "^1.7.9", + "echarts": "^5.6.0", + "vue": "^3.5.13", + "vue-i18n": "^10.0.5", + "vue-router": "^4.5.0" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^5.2.1", + "vite": "^6.0.7" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.9.tgz", + "integrity": "sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.8" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz", + "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@fontsource/barlow": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@fontsource/barlow/-/barlow-5.3.0.tgz", + "integrity": "sha512-tGR0y6QObRtKv71MOth44222+mdNFM/ZWFWDV1VLzNbG4oK9PNRlyJzmkck4vHAi9ibHBXgt4SlY51amFP55CA==", + "license": "OFL-1.1", + "funding": { + "url": "https://github.com/sponsors/ayuhito" + } + }, + "node_modules/@fontsource/barlow-semi-condensed": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@fontsource/barlow-semi-condensed/-/barlow-semi-condensed-5.3.0.tgz", + "integrity": "sha512-EdpQ1GlLMofGqDsQhEw+g6DonNKmzt21p8y/oNbTl4BFzEkqYkFyE2fj25YGxmZBL/LZZGAxe74FlvEWcgc31w==", + "license": "OFL-1.1", + "funding": { + "url": "https://github.com/sponsors/ayuhito" + } + }, + "node_modules/@intlify/core-base": { + "version": "10.0.7", + "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-10.0.7.tgz", + "integrity": "sha512-mE71aUH5baH0me8duB4FY5qevUJizypHsYw3eCvmOx07QvmKppgOONx3dYINxuA89Z2qkAGb/K6Nrpi7aAMwew==", + "license": "MIT", + "dependencies": { + "@intlify/message-compiler": "10.0.7", + "@intlify/shared": "10.0.7" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/message-compiler": { + "version": "10.0.7", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-10.0.7.tgz", + "integrity": "sha512-nrC4cDL/UHZSUqd8sRbVz+DPukzZ8NnG5OK+EB/nlxsH35deyzyVkXP/QuR8mFZrISJ+4hCd6VtCQCcT+RO+5g==", + "license": "MIT", + "dependencies": { + "@intlify/shared": "10.0.7", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/shared": { + "version": "10.0.7", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-10.0.7.tgz", + "integrity": "sha512-oeoq0L5+5P4ShXa6jBQcx+BT+USe3MjX0xJexZO1y7rfDJdwZ9+QP3jO4tcS1nxhBYYdjvFTqe4bmnLijV0GxQ==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz", + "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==", + "license": "MIT" + }, + "node_modules/@napi-rs/lzma-linux-x64-gnu": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.5.1.tgz", + "integrity": "sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^22.20 || ^24.12 || >=25" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.64.12.tgz", + "integrity": "sha512-Z8lz+5UOiCJLonjeqwJlhUtHA/Sr6R1AidkccQxdWF0nigNzP81aLoU+udgOaGfL5s1uzFXzcux/pCwGAMu0lw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.64.12.tgz", + "integrity": "sha512-+tKxNa2psFmiTb0KfXlXs4Yj7vkEhzAvZ0DrQ5+0gWHQJM10jSleQ3l1FIVm5uvD53YM8lHfM4mgCLDDN9f1Gg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.64.12.tgz", + "integrity": "sha512-iiripdfvyRBugV55/Dk7GplNXQtN/PG85OcKeveU1z2UkTg0MofbBF1qk//qgPWiqJbVvQcXAVCfE56oDGO4EQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.64.12.tgz", + "integrity": "sha512-BmATib8swSMAagWNIfDZMnb+k34RXR4bbGOUfZgK8lLlniuMyVoSDDXCOGkdhtUmBXL4aygDh7bhjQ+TmhTvIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.64.12.tgz", + "integrity": "sha512-GzrO0CiUq8vcAI/hYJuIcp6wNm3T3YhOpumYtf9Z3Fz+cfN1VESCVfy7EPcM3/m2K8l+Gn2U+4XtNZjwhUXctQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.64.12.tgz", + "integrity": "sha512-Dpta6gigm4o6SYioXtTkZBlGLA/Sl6OpzgLqY+51uafJE2blPejAtR1w82CVLPN+F9cvo1+/em92x/zcOgY0uQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.64.12.tgz", + "integrity": "sha512-YpeDwQ5uFaogRvytNC8RK0keDO65kI5wNEhGSs+4GiJc3KHhxj4j5cnQh2nCu9ybJj6RP0/ycB6bkN0yFJ9I+w==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.64.12.tgz", + "integrity": "sha512-LQrB3/sImIr1ycrlEyaApOLH1rAy8JV4/dH4eoK817aWATdcs4fESXz53/w72NwDnwPM5zEUpoL7socH4ZDnwA==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.64.12.tgz", + "integrity": "sha512-iAF2iYu9S4SBfNsb4k0ewNBjO83WxHEltIuKQBGMzEKFgrYfmJn+gatBDXR2t/0zJN0UW0kzR4rfvQ1UHzkZ1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.64.12.tgz", + "integrity": "sha512-0MQdRtdbirJCXPIVeW/hd/LXLR8Qz96pc+2EBptuuV5q/zSGOzND7SZt8gBTE58NC9cUG/8UxcUXQiKRZ2WzzA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.64.12.tgz", + "integrity": "sha512-yGDEwn0AGnrY/KCz2oY8R9KKNiQnTcwNuCWXeSXF0VLxXzlqoCgaS5QHsf1lbQvKWwPuN2Czkjk1wXRCBONTOQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.64.12.tgz", + "integrity": "sha512-AjlbD0efZEhHaJ3bsNjxSFDoguNq6VZvC+FKGJGBCA+ZN7BrZq2TuuSWFa6AI8IpOeuvhp2LoYcP7jiZwmtU0Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.64.12.tgz", + "integrity": "sha512-sDW0CiPoUCEEUV25uBG5sJ2gKe75DJqLpj91m1eK1vKffywyY7v4i6q1450ZuR6QW4NArXg7JpbMGgKU8di3HQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.64.12.tgz", + "integrity": "sha512-VTQYUhMjl8kv999VuYqScgv7P9cR9KuxI/6bkUsEa3bsswqG0+otFjuLZmJ1U+ffEP4IAz0jxOeV0DX6NRBhjg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.64.12.tgz", + "integrity": "sha512-ppsKwpSjNrzJ8hge3Z3uiCcoRgAAQk2tU7auy3MFF348ffWRldFPnWIT/a/enK7huijlTfnwn4DYpDoapEb45A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.64.12.tgz", + "integrity": "sha512-Gc3cVRC1trFH+GFWWTsJz6YuD4u75fzr/q99jqQGimonN/zvN6Wecck5WGzllOHj+XYXHcq0Ibor0tanGjfI6A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.64.12.tgz", + "integrity": "sha512-pjmDTFStvwFE3shTeUDvSDiSp8/qAf5bQXejcEUDDavWz4jEhTIpCdpS06G0PEwSCSNK0Lngjz2v9l4hk3Z74A==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.64.12.tgz", + "integrity": "sha512-mkbjxPqpR91u1JD7xY4aLZhr/Mqka4/RqGcG4WNGgN/lC1o7TzyCyqJoSJXp9qVVxMwpJGFlEF1VlERb+Ghw1Q==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.64.12.tgz", + "integrity": "sha512-vIeut2LkuVc3gcsawLJPahNAzvzBcFRhu2O+yVb//BuQKz7PIItMF0piXRbN/lIDO3d68TSDd368Vg6YwgTybw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.64.12.tgz", + "integrity": "sha512-3Sx+D3r9oPkTdNUcPrIRM2Am+vzEV6VGWoImHG4ZVK2jJeOW+eDjLeTm6nvu/z/m0fiX2YmGLXIypblc336MXg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.64.12.tgz", + "integrity": "sha512-Nn2xh0teFnl71EiiUrKvECWcdGXtWF8q0uGclYwXGVw6QClGAcME0/bJSGdK+xIvd6MLEKYmjkTUvCBV+7m5Kw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.64.12.tgz", + "integrity": "sha512-n1/0H9TS+kBa4xp6n9aV7yiynBNfmerjkj2nAMIfY0ZHv1zShWRXnsAuAPAH0sfEK4ZSMK+z24q2RjAPFLCN1w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.64.12.tgz", + "integrity": "sha512-AdlDbQpsLfGlsHr1NfLZFtdnvxCKNp9TwlYVYExs8JJLWjLafUQEKJk0r9zUbmU57mw9nglMEvzqPHuLWYmaKw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.64.12.tgz", + "integrity": "sha512-u5SSUJBHod51UamjkigSr+JPre6xMy5vaWTTV2K0SnFG4RuKyYpf66dTSLFKX2cwaldpwyBurXPUCxq8riQMEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.64.12.tgz", + "integrity": "sha512-j5rXD4R/4DM5+V991AA9xOnG2Rwu2g3p5TPgu1Eu7apju0NUrLl+Bn/KpWc6wYJtlXqzwz1r+LNV1JeBU4VGvw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz", + "integrity": "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.44.tgz", + "integrity": "sha512-k34nCytbK8PQ1gR2mGROYOw6Pnv/mumqIdrZ3x2tbyXZDWm7ViKGLTfdB+DRrWqEQsLgGJvn0WN9jBif5zCTLQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.9", + "@vue/shared": "3.5.44", + "entities": "^7.0.1", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.2" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.44.tgz", + "integrity": "sha512-W5AoBFWdw1lQAKiHowkfgFKFab82oSRT6sGsPfw/q1GRjsy/ZJFLHGhJyBRIFN9APLTUduDH9U2JAiPOIyKuYg==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.44", + "@vue/shared": "3.5.44" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.44.tgz", + "integrity": "sha512-dzHmQ4jXTpdr5FjIQUeykVakN/uzqFbUo9/C5ikBFg3a3PeM6uRxeczx1ZbXBML0/zJstEh3ygYipzR5Z7b2Pw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.9", + "@vue/compiler-core": "3.5.44", + "@vue/compiler-dom": "3.5.44", + "@vue/compiler-ssr": "3.5.44", + "@vue/shared": "3.5.44", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.29", + "source-map-js": "^1.2.2" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.44.tgz", + "integrity": "sha512-xr5gb1JVHlfXJwSlRz1FeP6uxoazdzHuMTVLE7up+4Vrqxk219CvxLPxD9NXBt47yvZW7+p4DXfyp4O1fkByIA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.44", + "@vue/shared": "3.5.44" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, + "node_modules/@vue/reactivity": { + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.44.tgz", + "integrity": "sha512-u+QJdKeBBEADkPdevsL+6E12QlYVfBD8Zcw5qjDQKtamI6l14KyqazJMobhCKelhWN5zpyKUiEDoTyHE93cqWw==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.44" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.44.tgz", + "integrity": "sha512-uEa/ndwjhrrhnOfb2p+sZy6zeoamJOISqaLSJGk/8R6nABT1ZldpzcJoPzKj+zHVomVBPcmQYyC2r4LtvDV6CQ==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.44", + "@vue/shared": "3.5.44" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.44.tgz", + "integrity": "sha512-3fc4ARcXVhVBaJ3ujWiNZJARD6pkyRcwG+ZYhMzjKtKUp7MAY0HLwr7r3Smep3Li6ZaWT6ewdmx8XqdaD5oNZg==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.44", + "@vue/runtime-core": "3.5.44", + "@vue/shared": "3.5.44", + "csstype": "^3.2.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.44.tgz", + "integrity": "sha512-R4S1UoH4h5Frrauv8Z5XE5TxV9oBiUSgWIC4TyVK1FK+RocRnOLwFA5Xcmo2011RlgJp+AbZCnw6afrhlgRuUQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.44", + "@vue/runtime-dom": "3.5.44", + "@vue/shared": "3.5.44" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.44.tgz", + "integrity": "sha512-H82XLH0DjmSOdbEwO15x3QTo1f5PWEtv237eLpYKc0mqLu+B8hnq16lFWmuBmNurkeiG3wr+oM1FhOll/YVFRg==", + "license": "MIT" + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.20.0.tgz", + "integrity": "sha512-r8aOh8j9cGKpgQAqpzrUHnSIc6a59Y3Xf/cv8sy1DrHCkZHzQGEuoq1tARk6qSyDdtQGSDgpb9kFlruzPvrgwg==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.16.0", + "form-data": "^4.0.6", + "https-proxy-agent": "^5.0.1", + "proxy-from-env": "^2.1.0" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/echarts": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.6.0.tgz", + "integrity": "sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "2.3.0", + "zrender": "5.6.1" + } + }, + "node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/follow-redirects": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.1.tgz", + "integrity": "sha512-FNvFGzoMLWmE6Yj9spb/zjd7yiNCHiAW9/Tg9CXrQ8wuu32HtlJOwWO11OJafl5FfY3DxTdQ0vj42zU1kvv5jg==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.20", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.20.tgz", + "integrity": "sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.31.tgz", + "integrity": "sha512-YUbWYCgErwnMAVkjUnYa+KlMBzGpHwiIt/DE7f0G33AuX2LH9UcTk6KgWxd3zRU+pN3u/C+Xl3EnMLM4Hea7Sg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.20", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/proxy-from-env": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/rollup": { + "version": "4.64.12", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.64.12.tgz", + "integrity": "sha512-GhAu8ZglZ61VWSX/ZW3K/qkazgURBIQL0/Yy51QsS8DPyebR5Cf/Z2PANJFpTU0aVZ9byJcyqR6xvBbkXhdGYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.9" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@napi-rs/lzma-linux-x64-gnu": "1.5.1", + "@rollup/rollup-android-arm-eabi": "4.64.12", + "@rollup/rollup-android-arm64": "4.64.12", + "@rollup/rollup-darwin-arm64": "4.64.12", + "@rollup/rollup-darwin-x64": "4.64.12", + "@rollup/rollup-freebsd-arm64": "4.64.12", + "@rollup/rollup-freebsd-x64": "4.64.12", + "@rollup/rollup-linux-arm-gnueabihf": "4.64.12", + "@rollup/rollup-linux-arm-musleabihf": "4.64.12", + "@rollup/rollup-linux-arm64-gnu": "4.64.12", + "@rollup/rollup-linux-arm64-musl": "4.64.12", + "@rollup/rollup-linux-loong64-gnu": "4.64.12", + "@rollup/rollup-linux-loong64-musl": "4.64.12", + "@rollup/rollup-linux-ppc64-gnu": "4.64.12", + "@rollup/rollup-linux-ppc64-musl": "4.64.12", + "@rollup/rollup-linux-riscv64-gnu": "4.64.12", + "@rollup/rollup-linux-riscv64-musl": "4.64.12", + "@rollup/rollup-linux-s390x-gnu": "4.64.12", + "@rollup/rollup-linux-x64-gnu": "4.64.12", + "@rollup/rollup-linux-x64-musl": "4.64.12", + "@rollup/rollup-openbsd-x64": "4.64.12", + "@rollup/rollup-openharmony-arm64": "4.64.12", + "@rollup/rollup-win32-arm64-msvc": "4.64.12", + "@rollup/rollup-win32-ia32-msvc": "4.64.12", + "@rollup/rollup-win32-x64-gnu": "4.64.12", + "@rollup/rollup-win32-x64-msvc": "4.64.12", + "fsevents": "~2.3.2" + } + }, + "node_modules/source-map-js": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.2.tgz", + "integrity": "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", + "license": "0BSD" + }, + "node_modules/vite": { + "version": "6.4.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.5.tgz", + "integrity": "sha512-4enwjFfi4IwtEh0w+jPzpLVOFQiPHmmzPxcHXQOyEur47o6u0jE573DmGpjA+7irXoMLYRZD5ZaFUEneS3abPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.44.tgz", + "integrity": "sha512-dvvmaOCG7lAMkJTPqPwWeGMsPS6DIsFsfZDUgBp9V6mHf9b3+/wyVwYR4Es+WV6uJC0FKRxp81Obcq0ZwUcGFQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.44", + "@vue/compiler-sfc": "3.5.44", + "@vue/runtime-dom": "3.5.44", + "@vue/server-renderer": "3.5.44", + "@vue/shared": "3.5.44" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-i18n": { + "version": "10.0.7", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-10.0.7.tgz", + "integrity": "sha512-bKsk0PYwP9gdYF4nqSAT0kDpnLu1gZzlxFl885VH4mHVhEnqP16+/mAU05r1U6NIrc0fGDWP89tZ8GzeJZpe+w==", + "license": "MIT", + "dependencies": { + "@intlify/core-base": "10.0.7", + "@intlify/shared": "10.0.7", + "@vue/devtools-api": "^6.5.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-router": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.6.4.tgz", + "integrity": "sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/zrender": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.6.1.tgz", + "integrity": "sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==", + "license": "BSD-3-Clause", + "dependencies": { + "tslib": "2.3.0" + } + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..d7bf90a --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,26 @@ +{ + "name": "ros-dpi-frontend", + "version": "0.1.0", + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "i18n:check": "node scripts/check-i18n.mjs", + "prebuild": "node scripts/check-i18n.mjs", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "@fontsource/barlow": "^5.3.0", + "@fontsource/barlow-semi-condensed": "^5.3.0", + "axios": "^1.7.9", + "echarts": "^5.6.0", + "vue": "^3.5.13", + "vue-i18n": "^10.0.5", + "vue-router": "^4.5.0" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^5.2.1", + "vite": "^6.0.7" + } +} diff --git a/frontend/public/favicon.svg b/frontend/public/favicon.svg new file mode 100644 index 0000000..6e3d530 --- /dev/null +++ b/frontend/public/favicon.svg @@ -0,0 +1 @@ + diff --git a/frontend/scripts/check-i18n.mjs b/frontend/scripts/check-i18n.mjs new file mode 100644 index 0000000..332f9b9 --- /dev/null +++ b/frontend/scripts/check-i18n.mjs @@ -0,0 +1,14 @@ +// 构建前检查中英文案 key 是否一致 +import zh from '../src/i18n/zh.js' +import en from '../src/i18n/en.js' + +const flat = (o, p = '') => Object.entries(o).flatMap(([k, v]) => + v && typeof v === 'object' ? flat(v, p + k + '.') : [p + k]) +const a = new Set(flat(zh)), b = new Set(flat(en)) +const onlyZh = [...a].filter(k => !b.has(k)), onlyEn = [...b].filter(k => !a.has(k)) +if (onlyZh.length || onlyEn.length) { + if (onlyZh.length) console.error('en 缺少:', onlyZh.join(', ')) + if (onlyEn.length) console.error('zh 缺少:', onlyEn.join(', ')) + process.exit(1) +} +console.log(`i18n ok (${a.size} keys)`) diff --git a/frontend/src/App.vue b/frontend/src/App.vue new file mode 100644 index 0000000..f44b997 --- /dev/null +++ b/frontend/src/App.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/frontend/src/api.js b/frontend/src/api.js new file mode 100644 index 0000000..3a3809b --- /dev/null +++ b/frontend/src/api.js @@ -0,0 +1,37 @@ +import axios from 'axios' +import { reactive } from 'vue' +import router from './router.js' + +export const auth = reactive({ token: read('rosdpi.token'), username: read('rosdpi.user') }) + +function read(k) { + try { return localStorage.getItem(k) || '' } catch (e) { return '' } +} + +export function setAuth(token, username) { + auth.token = token || '' + auth.username = username || '' + try { + if (token) { localStorage.setItem('rosdpi.token', token); localStorage.setItem('rosdpi.user', username) } + else { localStorage.removeItem('rosdpi.token'); localStorage.removeItem('rosdpi.user') } + } catch (e) { /* ignore */ } +} + +const http = axios.create({ baseURL: '/api', timeout: 20000 }) + +http.interceptors.request.use(cfg => { + if (auth.token) cfg.headers.Authorization = `Bearer ${auth.token}` + return cfg +}) + +http.interceptors.response.use(r => r.data, err => { + if (err.response?.status === 401 && !err.config.url.startsWith('/auth/')) { + setAuth('') + router.push({ name: 'login', query: { next: router.currentRoute.value.fullPath } }) + } + err.message = err.response?.data?.detail || err.message + return Promise.reject(err) +}) + +export const enc = s => encodeURIComponent(s) +export default http diff --git a/frontend/src/charts.js b/frontend/src/charts.js new file mode 100644 index 0000000..2a8dde4 --- /dev/null +++ b/frontend/src/charts.js @@ -0,0 +1,97 @@ +// ECharts 配置生成。颜色从 CSS 变量读取,切换主题/语言后重新生成即可。 +import { appName, bytes, catColor, rate } from './format.js' +import { i18n } from './i18n/index.js' + +const css = v => getComputedStyle(document.documentElement).getPropertyValue(v).trim() +const t = (k, p) => i18n.global.t(k, p) +const FONT = '"Barlow Semi Condensed", "Barlow", "PingFang SC", "Microsoft YaHei", sans-serif' + +function tooltip(extra = {}) { + return { + backgroundColor: css('--panel'), borderColor: css('--line-strong'), borderWidth: 1, padding: [8, 12], + textStyle: { color: css('--ink'), fontSize: 13, fontFamily: FONT }, extraCssText: 'box-shadow:none;border-radius:6px', ...extra, + } +} + +function fmtTime(ts, gran) { + const d = new Date(ts * 1000) + const p = n => String(n).padStart(2, '0') + if (gran === 'day') return `${d.getMonth() + 1}/${d.getDate()}` + return `${p(d.getHours())}:${p(d.getMinutes())}` +} + +/** 上下行趋势:下行(蓝)在上、上行(橙)以负值画在零线下方,像一对双绞线。 */ +export function trendOption(points, gran = 'hour', asRate = false) { + const step = { minute: 60, hour: 3600, day: 86400 }[gran] + const val = v => (asRate ? v / step : v) + const fmt = v => (asRate ? rate(Math.abs(v)) : bytes(Math.abs(v))) + const down = css('--down'), up = css('--up') + const series = (name, key, color, sign) => ({ + name, type: gran === 'day' ? 'bar' : 'line', barMaxWidth: 14, barGap: '-100%', + smooth: 0.25, symbol: 'none', lineStyle: { width: 1.5, color }, + areaStyle: gran === 'day' ? undefined : { color, opacity: 0.22 }, + itemStyle: { color, borderRadius: sign > 0 ? [2, 2, 0, 0] : [0, 0, 2, 2] }, + data: points.map(p => sign * val(p[key])), + }) + return { + textStyle: { fontFamily: FONT }, + grid: { left: 4, right: 8, top: 30, bottom: 2, containLabel: true }, + legend: { top: 0, left: 0, icon: 'rect', itemWidth: 12, itemHeight: 3, textStyle: { color: css('--muted'), fontFamily: FONT, fontSize: 13 } }, + tooltip: tooltip({ trigger: 'axis', axisPointer: { type: 'line', lineStyle: { color: css('--line-strong') } }, valueFormatter: fmt }), + xAxis: { + type: 'category', boundaryGap: gran === 'day', data: points.map(p => fmtTime(p.ts, gran)), + axisLine: { show: false }, axisTick: { show: false }, + axisLabel: { color: css('--faint'), hideOverlap: true, fontFamily: FONT, fontSize: 12 }, + }, + yAxis: { + type: 'value', splitNumber: 4, + splitLine: { lineStyle: { color: css('--line') } }, + axisLabel: { color: css('--faint'), fontFamily: FONT, fontSize: 12, formatter: v => (v === 0 ? '0' : fmt(v).replace('.0 ', ' ')) }, + }, + series: [series(t('common.down'), 'down', down, 1), series(t('common.up'), 'up', up, -1)], + } +} + +/** 流向桑基图:终端 → 分类 → 应用 */ +export function sankeyOption(graph) { + const zh = i18n.global.locale.value === 'zh' + const ink = css('--ink'), muted = css('--muted') + const label = n => { + if (n.kind === 'host') return n.key ? n.name : t('flow.otherHosts') + if (n.kind === 'category') return zh ? n.name : n.name_en + if (!n.app) { + const cat = graph.nodes.find(x => x.id === `c:${n.category}`) + return t('flow.otherApps', { cat: cat ? (zh ? cat.name : cat.name_en) : '' }) + } + return appName(n) + } + const minLabel = (graph.total || 0) * 0.012 + const idx = new Map(graph.nodes.map((n, i) => [n.id, i])) + const color = n => (n.kind === 'host' ? (n.online ? css('--pair-green') : css('--line-strong')) : catColor(n.category)) + return { + textStyle: { fontFamily: FONT }, + tooltip: tooltip({ + trigger: 'item', + formatter: p => (p.dataType === 'edge' + ? `${label(p.data.s)} → ${label(p.data.tg)}
${bytes(p.data.value)} ↓${bytes(p.data.down)} ↑${bytes(p.data.up)}` + : `${p.name}
${bytes(p.value)}`), + }), + series: [{ + type: 'sankey', left: 4, right: 150, top: 8, bottom: 8, nodeWidth: 10, nodeGap: 9, draggable: false, + layoutIterations: 48, emphasis: { focus: 'adjacency' }, + // 占比太小的节点挤在一起时标签会重叠,只在悬停时通过提示框查看 + label: { + color: ink, fontFamily: FONT, fontSize: 13, rich: { v: { color: muted, fontSize: 12 } }, + formatter: p => (p.value < minLabel ? '' : `${p.name} {v|${bytes(p.value)}}`), + }, + lineStyle: { color: 'gradient', opacity: 0.32, curveness: 0.5 }, + itemStyle: { borderWidth: 0 }, + data: graph.nodes.map(n => ({ name: label(n), id: n.id, raw: n, itemStyle: { color: color(n) } })), + // 用下标连线:终端备注名可能和应用/分类重名 + links: graph.links.map(l => { + const si = idx.get(l.source), ti = idx.get(l.target) + return { source: si, target: ti, value: l.value, up: l.up, down: l.down, s: graph.nodes[si], tg: graph.nodes[ti] } + }), + }], + } +} diff --git a/frontend/src/components/BarList.vue b/frontend/src/components/BarList.vue new file mode 100644 index 0000000..216f9ec --- /dev/null +++ b/frontend/src/components/BarList.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/frontend/src/components/Chart.vue b/frontend/src/components/Chart.vue new file mode 100644 index 0000000..face2ea --- /dev/null +++ b/frontend/src/components/Chart.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/frontend/src/components/Mark.vue b/frontend/src/components/Mark.vue new file mode 100644 index 0000000..73f9b61 --- /dev/null +++ b/frontend/src/components/Mark.vue @@ -0,0 +1,13 @@ + + + diff --git a/frontend/src/components/RangeTabs.vue b/frontend/src/components/RangeTabs.vue new file mode 100644 index 0000000..a54a026 --- /dev/null +++ b/frontend/src/components/RangeTabs.vue @@ -0,0 +1,13 @@ + + + diff --git a/frontend/src/components/Spectrum.vue b/frontend/src/components/Spectrum.vue new file mode 100644 index 0000000..d0a13ae --- /dev/null +++ b/frontend/src/components/Spectrum.vue @@ -0,0 +1,50 @@ + + + + + diff --git a/frontend/src/components/Stat.vue b/frontend/src/components/Stat.vue new file mode 100644 index 0000000..7895527 --- /dev/null +++ b/frontend/src/components/Stat.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/frontend/src/format.js b/frontend/src/format.js new file mode 100644 index 0000000..2271f95 --- /dev/null +++ b/frontend/src/format.js @@ -0,0 +1,59 @@ +import { i18n } from './i18n/index.js' + +const UNITS = ['B', 'KB', 'MB', 'GB', 'TB', 'PB'] + +export function bytes(n, digits = 1) { + n = Number(n) || 0 + let i = 0 + while (Math.abs(n) >= 1024 && i < UNITS.length - 1) { n /= 1024; i++ } + return `${n.toFixed(i === 0 ? 0 : digits)} ${UNITS[i]}` +} + +// 速率按网络习惯用 bit/s +export function rate(bytesPerSec) { + let n = (Number(bytesPerSec) || 0) * 8 + const u = ['bps', 'Kbps', 'Mbps', 'Gbps'] + let i = 0 + while (n >= 1000 && i < u.length - 1) { n /= 1000; i++ } + return `${n.toFixed(i === 0 ? 0 : 1)} ${u[i]}` +} + +export function pct(x, digits = 1) { + return `${((Number(x) || 0) * 100).toFixed(digits)}%` +} + +export function ago(ts) { + if (!ts) return i18n.global.t('common.never') + const s = Math.max(0, Date.now() / 1000 - ts) + const zh = i18n.global.locale.value === 'zh' + if (s < 60) return zh ? '刚刚' : 'just now' + if (s < 3600) return zh ? `${Math.floor(s / 60)} 分钟前` : `${Math.floor(s / 60)} min ago` + if (s < 86400) return zh ? `${Math.floor(s / 3600)} 小时前` : `${Math.floor(s / 3600)} h ago` + return zh ? `${Math.floor(s / 86400)} 天前` : `${Math.floor(s / 86400)} d ago` +} + +export function datetime(ts) { + if (!ts) return '-' + return new Date(ts * 1000).toLocaleString(i18n.global.locale.value === 'zh' ? 'zh-CN' : 'en', { hour12: false }) +} + +export function appName(a) { + if (!a) return '-' + return i18n.global.locale.value === 'zh' ? a.name : (a.name_en || a.name) +} + +export function catName(a) { + if (!a) return '-' + if ('category_name' in a) return i18n.global.locale.value === 'zh' ? a.category_name : a.category_name_en + return i18n.global.locale.value === 'zh' ? a.name : (a.name_en || a.name) +} + +// 分类固定配色,所有图表保持一致 +export const CAT_COLORS = { + video: '#d9485f', short_video: '#e2638f', live: '#b65fc8', music: '#8a63d2', social: '#6d7be0', + im: '#2f9a57', game: '#e07a2e', shopping: '#d4a72c', news: '#7fa83a', search: '#2a9d8f', cloud: '#3c8fd0', + download: '#c0533a', update: '#7b8794', ai: '#1fa7b8', work: '#2c6bc9', finance: '#3aa57a', life: '#c98a3c', + ads: '#8b5e3c', iot: '#4bb3a0', network: '#a3aeb0', web: '#5f78b8', unknown: '#b5bec0', +} + +export const catColor = c => CAT_COLORS[c] || '#64748b' diff --git a/frontend/src/i18n/en.js b/frontend/src/i18n/en.js new file mode 100644 index 0000000..951aed9 --- /dev/null +++ b/frontend/src/i18n/en.js @@ -0,0 +1,58 @@ +export default { + app: { title: 'ROS-DPI', subtitle: 'RouterOS traffic insight' }, + nav: { overview: 'Overview', hosts: 'Hosts', apps: 'Applications', flow: 'Flows', rules: 'Rules', settings: 'Settings', logout: 'Sign out' }, + range: { today: 'Today', yesterday: 'Yesterday', week: 'This week', month: 'This month', last7: 'Last 7 days', last30: 'Last 30 days' }, + common: { + up: 'Upload', down: 'Download', total: 'Total', flows: 'Flows', rate: 'Live rate', hosts: 'Hosts', apps: 'Apps', + loading: 'Loading…', empty: 'No data', save: 'Save', saved: 'Saved', cancel: 'Cancel', delete: 'Delete', + edit: 'Edit', add: 'Add', search: 'Search', refresh: 'Refresh', back: 'Back', online: 'Online', offline: 'Offline', + name: 'Name', category: 'Category', share: 'Share', never: 'Never', confirmDelete: 'Delete this?', unknown: 'Unknown', + theme: 'Toggle light/dark', lang: '中文', allApps: 'All applications', allHosts: 'All hosts', + }, + login: { + title: 'Sign in', setupTitle: 'First run: create admin', username: 'Username', password: 'Password', + password2: 'Confirm password', submit: 'Sign in', setup: 'Create admin', mismatch: 'Passwords do not match', + tooShort: 'At least 6 characters', + }, + overview: { + today: 'Today', week: 'This week', month: 'This month', wanRate: 'WAN rate', flowRate: 'Collected rate', + online: 'Online hosts', identified: 'Identified', categories: 'Categories', topApps: 'Top applications', topHosts: 'Top hosts', + trend: 'Traffic trend', realtime: 'Last hour', router: 'Router', cpu: 'CPU', memory: 'Memory', uptime: 'Uptime', + noData: 'No traffic yet. Once RouterOS sends Traffic Flow to this host, numbers appear here.', + openGuide: 'Open setup guide', + heroToday: 'Through the router today', heroRange: 'Traffic, {range}', live: 'Right now', mix: 'Traffic mix', + weekShort: 'Week', monthShort: 'Month', viaWan: 'from WAN port {name}', viaFlow: 'from collected flows', + }, + hosts: { + title: 'Hosts', count: '{n} hosts, {m} online', search: 'Search name / IP / MAC', topApp: 'Top app today', + lastSeen: 'Last seen', ip: 'IP address', mac: 'MAC address', hostname: 'Hostname', alias: 'Alias', + aliasPlaceholder: 'Give this device a name', onlineOnly: 'Online only', firstSeen: 'First seen', domains: 'Domains', + domain: 'Domain', dhcp: 'DHCP', notFound: 'Host not found', + }, + apps: { title: 'Applications', showAll: 'Show all categories', usedBy: 'Used by', app: 'Application', byCategory: 'By category', byApp: 'By application' }, + flow: { + title: 'Flows', lead: 'From hosts, through app categories, to individual apps. Thicker lines carry more traffic.', + hosts: 'Hosts shown', apps: 'Apps shown', otherHosts: 'Other hosts', otherApps: 'Other {cat}', + hint: 'Click a host or app to open it', direction: 'Direction', both: 'Up + down', + }, + rules: { + title: 'Rules', intro: 'The built-in library covers common apps. Custom rules take priority and let you add or correct matches.', + custom: 'Custom rules', unknown: 'Top unidentified domains', unknownHint: 'Traffic to these domains is only identified as generic HTTPS/QUIC. Click "Classify" to create a rule.', + kind: 'Type', pattern: 'Match', target: 'Application', kinds: { domain: 'Domain suffix', cidr: 'IP range', port: 'Port' }, + patternHint: { domain: 'e.g. example.com (includes subdomains)', cidr: 'e.g. 1.2.3.0/24', port: 'e.g. tcp/8080 or udp/3000-3010' }, + existingApp: 'Existing app', newApp: 'New app', appId: 'App ID (lowercase, digits, underscore)', appName: 'App name', + classify: 'Classify', test: 'Test a domain', testResult: 'Matches: {app}', testNone: 'No domain rule matches', bytes: 'Traffic', + }, + settings: { + title: 'Settings', network: 'Network', lan: 'LAN ranges', lanHint: 'One per line. Addresses in these ranges are treated as LAN hosts. Ranges on non-WAN router interfaces are added automatically (grey).', + lanAuto: 'Auto-detected', wan: 'WAN interface', wanHint: 'Used for the WAN rate. Leave empty to detect from the default route.', + wanDetected: 'Detected: {name}', status: 'Status', collector: 'Flow collector (IPFIX)', dns: 'DNS sniffer (TZSP)', + ros: 'RouterOS API', ok: 'OK', waiting: 'Waiting for data', disabled: 'Not configured', error: 'Error', test: 'Test', + flows: 'Flows processed', dropped: 'Dropped (LAN-to-LAN / router)', exporters: 'Exporters', dnsAnswers: 'DNS answers', + dnsEntries: 'IP→domain entries', last: 'Last', guide: 'Setup guide', guideIntro: 'Run these on the RouterOS terminal (replace {ip} with the IP of the host running this container):', + guideNote: 'Byte counts come from Traffic Flow; app identification relies on DNS sniffing. Clients using DoH/DoT reduce accuracy.', + copy: 'Copy', copied: 'Copied', password: 'Change password', oldPw: 'Current password', newPw: 'New password', retention: 'Retention', + retentionText: 'Minute detail {minute} d, hourly {hour} d, daily {day} d, domains {domain} d (set via environment variables)', + version: 'Version', wanAuto: 'Detect automatically', rosHint: 'Not configured. Set ROS_URL, ROS_USER and ROS_PASSWORD to show hostnames and WAN rate.', + }, +} diff --git a/frontend/src/i18n/index.js b/frontend/src/i18n/index.js new file mode 100644 index 0000000..468b6d3 --- /dev/null +++ b/frontend/src/i18n/index.js @@ -0,0 +1,19 @@ +import { createI18n } from 'vue-i18n' +import zh from './zh.js' +import en from './en.js' + +function initial() { + try { + const saved = localStorage.getItem('rosdpi.lang') + if (saved) return saved + } catch (e) { /* 隐私模式 */ } + return (navigator.language || 'zh').toLowerCase().startsWith('zh') ? 'zh' : 'en' +} + +export const i18n = createI18n({ legacy: false, locale: initial(), fallbackLocale: 'zh', messages: { zh, en } }) + +export function setLang(l) { + i18n.global.locale.value = l + document.documentElement.lang = l === 'zh' ? 'zh-CN' : 'en' + try { localStorage.setItem('rosdpi.lang', l) } catch (e) { /* ignore */ } +} diff --git a/frontend/src/i18n/zh.js b/frontend/src/i18n/zh.js new file mode 100644 index 0000000..ea7aa44 --- /dev/null +++ b/frontend/src/i18n/zh.js @@ -0,0 +1,58 @@ +export default { + app: { title: 'ROS-DPI', subtitle: 'RouterOS 流量审计' }, + nav: { overview: '全网概览', hosts: '主机监控', apps: '应用统计', flow: '流量流向', rules: '识别规则', settings: '系统设置', logout: '退出登录' }, + range: { today: '今日', yesterday: '昨日', week: '本周', month: '本月', last7: '近 7 天', last30: '近 30 天' }, + common: { + up: '上行', down: '下行', total: '总流量', flows: '连接数', rate: '实时速率', hosts: '终端', apps: '应用', + loading: '加载中…', empty: '暂无数据', save: '保存', saved: '已保存', cancel: '取消', delete: '删除', + edit: '编辑', add: '添加', search: '搜索', refresh: '刷新', back: '返回', online: '在线', offline: '离线', + name: '名称', category: '分类', share: '占比', never: '从未', confirmDelete: '确定删除?', unknown: '未知', + theme: '切换深浅色', lang: 'English', allApps: '全部应用', allHosts: '全部终端', + }, + login: { + title: '登录', setupTitle: '首次使用:设置管理员', username: '用户名', password: '密码', + password2: '确认密码', submit: '登录', setup: '创建管理员', mismatch: '两次输入的密码不一致', + tooShort: '密码至少 6 位', + }, + overview: { + today: '今日流量', week: '本周流量', month: '本月流量', wanRate: 'WAN 实时速率', flowRate: '采集速率', + online: '在线终端', identified: '应用识别率', categories: '应用分类', topApps: 'Top 应用', topHosts: 'Top 终端', + trend: '流量趋势', realtime: '最近 1 小时', router: '路由器', cpu: 'CPU', memory: '内存', uptime: '运行时间', + noData: '还没有收到流量数据。在 RouterOS 上开启 Traffic Flow 并发送到本机后,这里会开始显示。', + openGuide: '打开接入向导', + heroToday: '今天经过路由器的流量', heroRange: '{range}流量', live: '此刻', mix: '流量构成', + weekShort: '本周', monthShort: '本月', viaWan: '取自 WAN 口 {name}', viaFlow: '取自流量采集', + }, + hosts: { + title: '主机监控', count: '共 {n} 台终端,在线 {m} 台', search: '搜索名称 / IP / MAC', topApp: '今日主要应用', + lastSeen: '最后活跃', ip: 'IP 地址', mac: 'MAC 地址', hostname: '主机名', alias: '备注名', + aliasPlaceholder: '给这台设备起个名字', onlineOnly: '只看在线', firstSeen: '首次出现', domains: '访问域名', + domain: '域名', dhcp: 'DHCP', notFound: '找不到该终端', + }, + apps: { title: '应用统计', showAll: '显示全部分类', usedBy: '使用终端', app: '应用', byCategory: '按分类', byApp: '按应用' }, + flow: { + title: '流量流向', lead: '从终端,经过应用分类,流到具体应用。线越粗流量越大。', + hosts: '显示终端数', apps: '显示应用数', otherHosts: '其余终端', otherApps: '其余{cat}', + hint: '点击终端或应用可查看详情', direction: '方向', both: '上下行合计', + }, + rules: { + title: '识别规则', intro: '内置规则库覆盖常见国内外应用。自定义规则优先级最高,用于补充或纠正识别结果。', + custom: '自定义规则', unknown: '未识别域名 Top', unknownHint: '这些域名的流量目前只能识别为 HTTPS/QUIC 等通用协议,点「归类」快速建规则。', + kind: '类型', pattern: '匹配内容', target: '归类到', kinds: { domain: '域名后缀', cidr: 'IP 段', port: '端口' }, + patternHint: { domain: '如 example.com(含子域名)', cidr: '如 1.2.3.0/24', port: '如 tcp/8080 或 udp/3000-3010' }, + existingApp: '已有应用', newApp: '新建应用', appId: '应用 ID(小写字母/数字/下划线)', appName: '应用名称', + classify: '归类', test: '测试域名', testResult: '识别为:{app}', testNone: '未命中任何域名规则', bytes: '流量', + }, + settings: { + title: '系统设置', network: '网络', lan: 'LAN 网段', lanHint: '每行一个,属于这些网段的地址被视为内网终端。路由器上非 WAN 接口的地址段会自动补充(下方灰色)。', + lanAuto: '自动发现', wan: 'WAN 接口', wanHint: '用于显示 WAN 实时速率,留空则按默认路由自动识别。', + wanDetected: '当前识别为:{name}', status: '运行状态', collector: '流量采集 (IPFIX)', dns: 'DNS 嗅探 (TZSP)', + ros: 'RouterOS API', ok: '正常', waiting: '等待数据', disabled: '未配置', error: '异常', test: '测试连接', + flows: '已处理流', dropped: '丢弃(内网/路由器自身)', exporters: '发送端', dnsAnswers: 'DNS 应答', + dnsEntries: 'IP→域名 映射', last: '最近', guide: '接入向导', guideIntro: '在 RouterOS 终端执行以下命令(把 {ip} 换成运行本容器的主机 IP):', + guideNote: '流量统计依赖 Traffic Flow;应用识别依赖 DNS 嗅探。终端使用 DoH/DoT 加密 DNS 时识别率会下降。', + copy: '复制', copied: '已复制', password: '修改密码', oldPw: '原密码', newPw: '新密码', retention: '数据保留', + retentionText: '分钟明细 {minute} 天,小时 {hour} 天,每日 {day} 天,域名 {domain} 天(通过环境变量修改)', + version: '版本', wanAuto: '自动识别', rosHint: '未配置。设置环境变量 ROS_URL、ROS_USER、ROS_PASSWORD 后,可显示主机名和 WAN 口速率。', + }, +} diff --git a/frontend/src/main.js b/frontend/src/main.js new file mode 100644 index 0000000..e0089b8 --- /dev/null +++ b/frontend/src/main.js @@ -0,0 +1,13 @@ +import { createApp } from 'vue' +import '@fontsource/barlow/latin-400.css' +import '@fontsource/barlow/latin-500.css' +import '@fontsource/barlow/latin-600.css' +import '@fontsource/barlow-semi-condensed/latin-500.css' +import '@fontsource/barlow-semi-condensed/latin-600.css' +import '@fontsource/barlow-semi-condensed/latin-700.css' +import App from './App.vue' +import router from './router.js' +import { i18n } from './i18n/index.js' +import './style.css' + +createApp(App).use(router).use(i18n).mount('#app') diff --git a/frontend/src/poll.js b/frontend/src/poll.js new file mode 100644 index 0000000..d328dff --- /dev/null +++ b/frontend/src/poll.js @@ -0,0 +1,37 @@ +import { onMounted, onUnmounted, ref, watch } from 'vue' + +/** 加载数据并定时刷新(页面不可见时暂停)。deps 变化时立即重新加载。 */ +export function usePoll(fn, ms = 30000, deps = null) { + const loading = ref(true) + const error = ref('') + let timer = null + let seq = 0 + + async function run() { + const my = ++seq + try { + await fn() + if (my === seq) error.value = '' + } catch (e) { + if (my === seq) error.value = e.message + } finally { + if (my === seq) loading.value = false + } + } + + function tick() { + if (!document.hidden) run() + } + + onMounted(() => { + run() + if (ms) timer = setInterval(tick, ms) + document.addEventListener('visibilitychange', tick) + }) + onUnmounted(() => { + clearInterval(timer) + document.removeEventListener('visibilitychange', tick) + }) + if (deps) watch(deps, () => { loading.value = true; run() }) + return { loading, error, reload: run } +} diff --git a/frontend/src/router.js b/frontend/src/router.js new file mode 100644 index 0000000..1521e28 --- /dev/null +++ b/frontend/src/router.js @@ -0,0 +1,23 @@ +import { createRouter, createWebHistory } from 'vue-router' +import { auth } from './api.js' + +const routes = [ + { path: '/login', name: 'login', component: () => import('./views/Login.vue'), meta: { public: true } }, + { path: '/', name: 'overview', component: () => import('./views/Overview.vue') }, + { path: '/hosts', name: 'hosts', component: () => import('./views/Hosts.vue') }, + { path: '/hosts/:hostKey', name: 'host', component: () => import('./views/HostDetail.vue'), props: true }, + { path: '/apps', name: 'apps', component: () => import('./views/Apps.vue') }, + { path: '/apps/:id', name: 'app', component: () => import('./views/AppDetail.vue'), props: true }, + { path: '/flow', name: 'flow', component: () => import('./views/Flow.vue') }, + { path: '/rules', name: 'rules', component: () => import('./views/Rules.vue') }, + { path: '/settings', name: 'settings', component: () => import('./views/Settings.vue') }, + { path: '/:pathMatch(.*)*', redirect: '/' }, +] + +const router = createRouter({ history: createWebHistory(), routes }) + +router.beforeEach(to => { + if (!to.meta.public && !auth.token) return { name: 'login', query: { next: to.fullPath } } +}) + +export default router diff --git a/frontend/src/state.js b/frontend/src/state.js new file mode 100644 index 0000000..2fa8aca --- /dev/null +++ b/frontend/src/state.js @@ -0,0 +1,28 @@ +import { reactive, watch } from 'vue' + +function read(k, d) { + try { return localStorage.getItem(k) || d } catch (e) { return d } +} + +const media = window.matchMedia ? window.matchMedia('(prefers-color-scheme: dark)') : null +const systemTheme = () => (media && media.matches ? 'dark' : 'light') + +// 全局时间范围,各页面共用;主题默认跟随系统 +export const ui = reactive({ + range: read('rosdpi.range', 'today'), + theme: document.documentElement.dataset.theme || systemTheme(), +}) + +media && media.addEventListener && media.addEventListener('change', () => { + if (!document.documentElement.dataset.theme) ui.theme = systemTheme() +}) + +watch(() => ui.range, v => { try { localStorage.setItem('rosdpi.range', v) } catch (e) { /* ignore */ } }) + +export function toggleTheme() { + ui.theme = ui.theme === 'dark' ? 'light' : 'dark' + document.documentElement.dataset.theme = ui.theme + try { localStorage.setItem('rosdpi.theme', ui.theme) } catch (e) { /* ignore */ } +} + +export const RANGES = ['today', 'yesterday', 'week', 'month', 'last7', 'last30'] diff --git a/frontend/src/style.css b/frontend/src/style.css new file mode 100644 index 0000000..d5a72c0 --- /dev/null +++ b/frontend/src/style.css @@ -0,0 +1,188 @@ +/* + * 设计语言:取自网线 T568B 线序。 + * 橙对 = 上行,蓝对 = 下行,绿对 = 在线/正常,棕对 = 辅助。 + * 数字与标题用 Barlow Semi Condensed(等宽数字),正文 Barlow,中文回落系统字体。 + */ +:root { + --paper: #eef1ef; + --panel: #ffffff; + --sunk: #e4e9e7; + --ink: #1b262c; + --muted: #5e6b70; + --faint: #8c989b; + --line: #d5dcda; + --line-strong: #b9c3c1; + + --pair-orange: #e07a2e; + --pair-blue: #2c6bc9; + --pair-green: #2f9a57; + --pair-brown: #8b5e3c; + --alert: #d1443b; + + --up: var(--pair-orange); + --down: var(--pair-blue); + --ok: var(--pair-green); + --warn: #d49a1e; + --bad: var(--alert); + --accent: var(--pair-blue); + --focus: #2c6bc9; + + --r-sm: 5px; + --r: 8px; + + --sans: "Barlow", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif; + --cond: "Barlow Semi Condensed", "Barlow", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif; + color-scheme: light; +} + +@media (prefers-color-scheme: dark) { + :root:not([data-theme="light"]) { + --paper: #151a1c; + --panel: #1c2326; + --sunk: #12171a; + --ink: #e4eae8; + --muted: #93a1a3; + --faint: #67777a; + --line: #2a3437; + --line-strong: #3a4649; + --pair-orange: #f0954a; + --pair-blue: #5a92e8; + --pair-green: #4cc27a; + --pair-brown: #b88660; + --alert: #ef6158; + --focus: #7aaaf0; + color-scheme: dark; + } +} + +:root[data-theme="dark"] { + --paper: #151a1c; + --panel: #1c2326; + --sunk: #12171a; + --ink: #e4eae8; + --muted: #93a1a3; + --faint: #67777a; + --line: #2a3437; + --line-strong: #3a4649; + --pair-orange: #f0954a; + --pair-blue: #5a92e8; + --pair-green: #4cc27a; + --pair-brown: #b88660; + --alert: #ef6158; + --focus: #7aaaf0; + color-scheme: dark; +} + +* { box-sizing: border-box; } +html, body { margin: 0; min-height: 100%; } +body { + background: var(--paper); + color: var(--ink); + font: 15px/1.55 var(--sans); + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; +} +a { color: inherit; text-decoration: none; } +button, input, select, textarea { font: inherit; color: inherit; } +:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; border-radius: 3px; } +@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } } + +/* ---------- 文字 ---------- */ +.num { font-family: var(--cond); font-variant-numeric: tabular-nums; letter-spacing: .01em; } +.addr { font-family: var(--cond); font-variant-numeric: tabular-nums; letter-spacing: .02em; } +.muted { color: var(--muted); } +.faint { color: var(--faint); } +.up { color: var(--up); } +.down { color: var(--down); } +.small { font-size: 13px; } + +/* ---------- 版面 ---------- */ +.page { max-width: 1440px; margin: 0 auto; } +.page-h { display: flex; align-items: flex-end; gap: 16px; margin: 6px 0 22px; flex-wrap: wrap; } +.page-h h1 { font: 600 30px/1.1 var(--cond); margin: 0; letter-spacing: -.01em; } +.page-h .sp { flex: 1; } +.page-h .lead { color: var(--muted); font-size: 14px; padding-bottom: 3px; } + +.panel { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r); min-width: 0; } +.panel-h { display: flex; align-items: center; gap: 12px; padding: 14px 18px 0; font: 600 17px/1.3 var(--cond); letter-spacing: .01em; flex-wrap: wrap; } +.panel-h > :not(h2) { font: 400 13.5px/1.4 var(--sans); letter-spacing: 0; } +.panel-h h2 { font: 600 17px/1.3 var(--cond); margin: 0; letter-spacing: .01em; } +.panel-h .sp { flex: 1; } +.panel-b { padding: 12px 18px 18px; } + +.grid { display: grid; gap: 16px; } +.g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } +.g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } +.g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } +.g-2-1 { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); } +.mt { margin-top: 16px; } +@media (max-width: 1100px) { .g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .g-2-1, .g3 { grid-template-columns: 1fr; } } +@media (max-width: 640px) { .g4, .g2 { grid-template-columns: 1fr; } } + +/* ---------- 控件 ---------- */ +.btn { + display: inline-flex; align-items: center; justify-content: center; gap: 6px; + height: 34px; padding: 0 14px; + border: 1px solid var(--line-strong); border-radius: var(--r-sm); + background: var(--panel); cursor: pointer; white-space: nowrap; font-weight: 500; +} +.btn:hover { border-color: var(--ink); } +.btn.primary { background: var(--ink); border-color: var(--ink); color: var(--paper); } +.btn.primary:hover { background: var(--pair-blue); border-color: var(--pair-blue); color: #fff; } +.btn.danger:hover { border-color: var(--bad); color: var(--bad); } +.btn.ghost { border-color: transparent; background: none; color: var(--muted); } +.btn.ghost:hover { color: var(--ink); border-color: var(--line); } +.btn.sm { height: 28px; padding: 0 10px; font-size: 13px; } +.btn:disabled { opacity: .45; cursor: not-allowed; } + +.input { + height: 36px; padding: 0 11px; width: 100%; + border: 1px solid var(--line-strong); border-radius: var(--r-sm); + background: var(--panel); outline: none; +} +textarea.input { height: auto; padding: 9px 11px; font-family: var(--cond); font-size: 15px; line-height: 1.6; } +.input:focus { border-color: var(--focus); box-shadow: 0 0 0 3px color-mix(in srgb, var(--focus) 18%, transparent); } + +/* 分段选择器:选中项下方是一段"线色"下划线 */ +.seg { display: inline-flex; gap: 2px; flex-wrap: wrap; border-bottom: 1px solid var(--line); } +.seg button { + border: 0; background: none; cursor: pointer; color: var(--muted); + padding: 6px 10px 7px; font-weight: 500; position: relative; +} +.seg button:hover { color: var(--ink); } +.seg button.on { color: var(--ink); } +.seg button.on::after { content: ""; position: absolute; left: 8px; right: 8px; bottom: -1px; height: 2px; background: var(--ink); } + +/* ---------- 表格 ---------- */ +table.tbl { width: 100%; border-collapse: collapse; } +.tbl th, .tbl td { padding: 10px 12px; text-align: left; border-bottom: 1px solid var(--line); white-space: nowrap; } +.tbl th { color: var(--muted); font-weight: 500; font-size: 13px; position: sticky; top: 0; background: var(--panel); z-index: 1; } +.tbl th.sort { cursor: pointer; user-select: none; } +.tbl th.sort:hover, .tbl th.sorted { color: var(--ink); } +.tbl td.r, .tbl th.r { text-align: right; } +.tbl tbody tr:last-child td { border-bottom: 0; } +.tbl tbody tr:hover { background: color-mix(in srgb, var(--sunk) 60%, transparent); } +.tbl tr.link { cursor: pointer; } +.tbl-wrap { overflow-x: auto; } +.tbl td .num, .tbl td.num { font-size: 15px; } + +/* ---------- 小部件 ---------- */ +.dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--line-strong); flex: none; } +.dot.on { background: var(--ok); } +.dot.warn { background: var(--warn); } +.dot.bad { background: var(--bad); } + +/* 应用/分类标记:左侧一小段色条,像线缆上的色标 */ +.tag { display: inline-flex; align-items: center; gap: 7px; font-size: 13.5px; } +.chip { width: 4px; height: 14px; border-radius: 2px; display: inline-block; flex: none; } + +.empty { padding: 36px 18px; text-align: center; color: var(--muted); } +.err { color: var(--bad); font-size: 14px; } +code, pre { font-family: ui-monospace, "Cascadia Mono", Menlo, Consolas, monospace; font-size: 13px; } +pre.code { background: var(--sunk); border-radius: var(--r-sm); padding: 14px 16px; overflow-x: auto; margin: 0; line-height: 1.7; } + +/* 上下行比例条:橙 / 蓝 两股 */ +.pair { display: flex; height: 4px; border-radius: 2px; overflow: hidden; background: var(--line); } +.pair > i { display: block; height: 100%; } +.pair > .d { background: var(--down); } +.pair > .u { background: var(--up); } diff --git a/frontend/src/views/AppDetail.vue b/frontend/src/views/AppDetail.vue new file mode 100644 index 0000000..6be39db --- /dev/null +++ b/frontend/src/views/AppDetail.vue @@ -0,0 +1,70 @@ + + + + + diff --git a/frontend/src/views/Apps.vue b/frontend/src/views/Apps.vue new file mode 100644 index 0000000..8942b77 --- /dev/null +++ b/frontend/src/views/Apps.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/frontend/src/views/Flow.vue b/frontend/src/views/Flow.vue new file mode 100644 index 0000000..5daade8 --- /dev/null +++ b/frontend/src/views/Flow.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/frontend/src/views/HostDetail.vue b/frontend/src/views/HostDetail.vue new file mode 100644 index 0000000..cbfb62e --- /dev/null +++ b/frontend/src/views/HostDetail.vue @@ -0,0 +1,134 @@ + + + + + diff --git a/frontend/src/views/Hosts.vue b/frontend/src/views/Hosts.vue new file mode 100644 index 0000000..cdbdb29 --- /dev/null +++ b/frontend/src/views/Hosts.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/frontend/src/views/Login.vue b/frontend/src/views/Login.vue new file mode 100644 index 0000000..f7e58ca --- /dev/null +++ b/frontend/src/views/Login.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/frontend/src/views/Overview.vue b/frontend/src/views/Overview.vue new file mode 100644 index 0000000..aa5c579 --- /dev/null +++ b/frontend/src/views/Overview.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/frontend/src/views/Rules.vue b/frontend/src/views/Rules.vue new file mode 100644 index 0000000..37d0537 --- /dev/null +++ b/frontend/src/views/Rules.vue @@ -0,0 +1,155 @@ + + + + + diff --git a/frontend/src/views/Settings.vue b/frontend/src/views/Settings.vue new file mode 100644 index 0000000..434d987 --- /dev/null +++ b/frontend/src/views/Settings.vue @@ -0,0 +1,170 @@ +