From 32a425034b92338bd4a58f43bbe5ccd45a197c04 Mon Sep 17 00:00:00 2001 From: kyugao Date: Mon, 3 Aug 2026 10:26:27 +0800 Subject: [PATCH] feat: initialize LineUp Tauri reference host --- .gitignore | 7 + DESIGN.md | 317 ++ README.md | 25 + TECHNOLOGY_SELECTION.md | 158 + tauri/.gitignore | 3 + tauri/README.md | 82 + tauri/index.html | 13 + tauri/package-lock.json | 1455 ++++++ tauri/package.json | 24 + tauri/scripts/tauri.sh | 24 + tauri/src-tauri/Cargo.lock | 4392 +++++++++++++++++ tauri/src-tauri/Cargo.toml | 16 + tauri/src-tauri/Info.plist | 17 + tauri/src-tauri/build.rs | 3 + tauri/src-tauri/capabilities/default.json | 7 + .../src-tauri/gen/schemas/acl-manifests.json | 1 + tauri/src-tauri/gen/schemas/capabilities.json | 1 + .../src-tauri/gen/schemas/desktop-schema.json | 2292 +++++++++ tauri/src-tauri/gen/schemas/linux-schema.json | 2292 +++++++++ tauri/src-tauri/icons/128x128.png | Bin 0 -> 5123 bytes tauri/src-tauri/icons/128x128@2x.png | Bin 0 -> 10269 bytes tauri/src-tauri/icons/32x32.png | Bin 0 -> 1156 bytes tauri/src-tauri/icons/64x64.png | Bin 0 -> 2518 bytes tauri/src-tauri/icons/Square107x107Logo.png | Bin 0 -> 4304 bytes tauri/src-tauri/icons/Square142x142Logo.png | Bin 0 -> 5948 bytes tauri/src-tauri/icons/Square150x150Logo.png | Bin 0 -> 5975 bytes tauri/src-tauri/icons/Square284x284Logo.png | Bin 0 -> 11949 bytes tauri/src-tauri/icons/Square30x30Logo.png | Bin 0 -> 1069 bytes tauri/src-tauri/icons/Square310x310Logo.png | Bin 0 -> 13030 bytes tauri/src-tauri/icons/Square44x44Logo.png | Bin 0 -> 1513 bytes tauri/src-tauri/icons/Square71x71Logo.png | Bin 0 -> 2760 bytes tauri/src-tauri/icons/Square89x89Logo.png | Bin 0 -> 3443 bytes tauri/src-tauri/icons/StoreLogo.png | Bin 0 -> 1904 bytes .../android/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../icons/android/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2580 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 6484 bytes .../android/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 2406 bytes .../icons/android/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2463 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 4189 bytes .../android/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2319 bytes .../android/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 5753 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 8864 bytes .../mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 5309 bytes .../android/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 9302 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 13417 bytes .../mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 8539 bytes .../android/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 13185 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 18695 bytes .../mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 11774 bytes .../android/values/ic_launcher_background.xml | 4 + tauri/src-tauri/icons/icon.icns | Bin 0 -> 141423 bytes tauri/src-tauri/icons/icon.ico | Bin 0 -> 23003 bytes tauri/src-tauri/icons/icon.png | Bin 0 -> 22312 bytes tauri/src-tauri/icons/icon.svg | 18 + .../src-tauri/icons/ios/AppIcon-20x20@1x.png | Bin 0 -> 744 bytes .../icons/ios/AppIcon-20x20@2x-1.png | Bin 0 -> 1542 bytes .../src-tauri/icons/ios/AppIcon-20x20@2x.png | Bin 0 -> 1542 bytes .../src-tauri/icons/ios/AppIcon-20x20@3x.png | Bin 0 -> 2411 bytes .../src-tauri/icons/ios/AppIcon-29x29@1x.png | Bin 0 -> 1001 bytes .../icons/ios/AppIcon-29x29@2x-1.png | Bin 0 -> 2226 bytes .../src-tauri/icons/ios/AppIcon-29x29@2x.png | Bin 0 -> 2226 bytes .../src-tauri/icons/ios/AppIcon-29x29@3x.png | Bin 0 -> 3366 bytes .../src-tauri/icons/ios/AppIcon-40x40@1x.png | Bin 0 -> 1542 bytes .../icons/ios/AppIcon-40x40@2x-1.png | Bin 0 -> 3159 bytes .../src-tauri/icons/ios/AppIcon-40x40@2x.png | Bin 0 -> 3159 bytes .../src-tauri/icons/ios/AppIcon-40x40@3x.png | Bin 0 -> 4921 bytes tauri/src-tauri/icons/ios/AppIcon-512@2x.png | Bin 0 -> 62974 bytes .../src-tauri/icons/ios/AppIcon-60x60@2x.png | Bin 0 -> 4921 bytes .../src-tauri/icons/ios/AppIcon-60x60@3x.png | Bin 0 -> 7374 bytes .../src-tauri/icons/ios/AppIcon-76x76@1x.png | Bin 0 -> 3092 bytes .../src-tauri/icons/ios/AppIcon-76x76@2x.png | Bin 0 -> 6297 bytes .../icons/ios/AppIcon-83.5x83.5@2x.png | Bin 0 -> 6850 bytes tauri/src-tauri/src/lib.rs | 6 + tauri/src-tauri/src/main.rs | 3 + tauri/src-tauri/tauri.conf.json | 23 + tauri/src/main.ts | 195 + tauri/src/protocol.ts | 60 + tauri/src/style.css | 1 + tauri/tsconfig.json | 16 + 79 files changed, 11460 insertions(+) create mode 100644 .gitignore create mode 100644 DESIGN.md create mode 100644 README.md create mode 100644 TECHNOLOGY_SELECTION.md create mode 100644 tauri/.gitignore create mode 100644 tauri/README.md create mode 100644 tauri/index.html create mode 100644 tauri/package-lock.json create mode 100644 tauri/package.json create mode 100755 tauri/scripts/tauri.sh create mode 100644 tauri/src-tauri/Cargo.lock create mode 100644 tauri/src-tauri/Cargo.toml create mode 100644 tauri/src-tauri/Info.plist create mode 100644 tauri/src-tauri/build.rs create mode 100644 tauri/src-tauri/capabilities/default.json create mode 100644 tauri/src-tauri/gen/schemas/acl-manifests.json create mode 100644 tauri/src-tauri/gen/schemas/capabilities.json create mode 100644 tauri/src-tauri/gen/schemas/desktop-schema.json create mode 100644 tauri/src-tauri/gen/schemas/linux-schema.json create mode 100644 tauri/src-tauri/icons/128x128.png create mode 100644 tauri/src-tauri/icons/128x128@2x.png create mode 100644 tauri/src-tauri/icons/32x32.png create mode 100644 tauri/src-tauri/icons/64x64.png create mode 100644 tauri/src-tauri/icons/Square107x107Logo.png create mode 100644 tauri/src-tauri/icons/Square142x142Logo.png create mode 100644 tauri/src-tauri/icons/Square150x150Logo.png create mode 100644 tauri/src-tauri/icons/Square284x284Logo.png create mode 100644 tauri/src-tauri/icons/Square30x30Logo.png create mode 100644 tauri/src-tauri/icons/Square310x310Logo.png create mode 100644 tauri/src-tauri/icons/Square44x44Logo.png create mode 100644 tauri/src-tauri/icons/Square71x71Logo.png create mode 100644 tauri/src-tauri/icons/Square89x89Logo.png create mode 100644 tauri/src-tauri/icons/StoreLogo.png create mode 100644 tauri/src-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 tauri/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png create mode 100644 tauri/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 tauri/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png create mode 100644 tauri/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png create mode 100644 tauri/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 tauri/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png create mode 100644 tauri/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png create mode 100644 tauri/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 tauri/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png create mode 100644 tauri/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png create mode 100644 tauri/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 tauri/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 tauri/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png create mode 100644 tauri/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 tauri/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 tauri/src-tauri/icons/android/values/ic_launcher_background.xml create mode 100644 tauri/src-tauri/icons/icon.icns create mode 100644 tauri/src-tauri/icons/icon.ico create mode 100644 tauri/src-tauri/icons/icon.png create mode 100644 tauri/src-tauri/icons/icon.svg create mode 100644 tauri/src-tauri/icons/ios/AppIcon-20x20@1x.png create mode 100644 tauri/src-tauri/icons/ios/AppIcon-20x20@2x-1.png create mode 100644 tauri/src-tauri/icons/ios/AppIcon-20x20@2x.png create mode 100644 tauri/src-tauri/icons/ios/AppIcon-20x20@3x.png create mode 100644 tauri/src-tauri/icons/ios/AppIcon-29x29@1x.png create mode 100644 tauri/src-tauri/icons/ios/AppIcon-29x29@2x-1.png create mode 100644 tauri/src-tauri/icons/ios/AppIcon-29x29@2x.png create mode 100644 tauri/src-tauri/icons/ios/AppIcon-29x29@3x.png create mode 100644 tauri/src-tauri/icons/ios/AppIcon-40x40@1x.png create mode 100644 tauri/src-tauri/icons/ios/AppIcon-40x40@2x-1.png create mode 100644 tauri/src-tauri/icons/ios/AppIcon-40x40@2x.png create mode 100644 tauri/src-tauri/icons/ios/AppIcon-40x40@3x.png create mode 100644 tauri/src-tauri/icons/ios/AppIcon-512@2x.png create mode 100644 tauri/src-tauri/icons/ios/AppIcon-60x60@2x.png create mode 100644 tauri/src-tauri/icons/ios/AppIcon-60x60@3x.png create mode 100644 tauri/src-tauri/icons/ios/AppIcon-76x76@1x.png create mode 100644 tauri/src-tauri/icons/ios/AppIcon-76x76@2x.png create mode 100644 tauri/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png create mode 100644 tauri/src-tauri/src/lib.rs create mode 100644 tauri/src-tauri/src/main.rs create mode 100644 tauri/src-tauri/tauri.conf.json create mode 100644 tauri/src/main.ts create mode 100644 tauri/src/protocol.ts create mode 100644 tauri/src/style.css create mode 100644 tauri/tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9c81ba3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +# macOS Finder metadata +.DS_Store + +# Local-only environment overrides. Commit an explicit .env.example instead +# when the client later needs documented non-secret defaults. +.env +.env.local diff --git a/DESIGN.md b/DESIGN.md new file mode 100644 index 0000000..e6ca931 --- /dev/null +++ b/DESIGN.md @@ -0,0 +1,317 @@ +# LineUp App — 移动端设计文档 + +> 版本:0.1(提案) +> 日期:2026-07-30 +> 依赖:LineUp App Server + WuKongIM 3.0 +> 基础:唐僧叨叨 Android 客户端(wkbase / wklogin / SDK 封装) + +--- + +## 1. 定位 + +LineUp App 是一个**单通道 Agent 对话客户端**。用户打开 App 后只有一个对话——和他的 AI Agent。 + +不是社交 IM(没有好友列表、没有群聊、没有朋友圈)。 +当前版本只做一件事:**连上 WuKongIM,进入唯一频道,与 Agent 收发消息。** + +``` +┌──────────────────────────────────────────┐ +│ LineUp App │ +│ │ +│ ┌───────────────────────────────┐ │ +│ │ Agent 对话频道 │ │ +│ │ │ │ +│ │ [用户] 帮我查一下今天天气 │ │ +│ │ [Agent] 北京今天晴, 22°C │ │ +│ │ [Agent] ┌─ choice ─┐ │ │ +│ │ │ 需要更多? │ │ │ +│ │ │ [是] [否] │ │ │ +│ │ └───────────┘ │ │ +│ └───────────────────────────────┘ │ +│ │ +│ ┌───────────────────────────────┐ │ +│ │ 输入框 │ │ +│ └───────────────────────────────┘ │ +└──────────────────────────────────────────┘ +``` + +--- + +## 2. 架构分层 + +``` +┌──────────────────────────────────────┐ +│ LineUp App (Android) │ +│ │ +│ UI 层: 聊天界面 + Agent 消息渲染 │ +│ ├─ ChatView (文本/图片/语音) │ +│ └─ AgentWidgets (choice/form/canvas) │ +│ │ +│ 业务层: 频道管理 + 消息路由 │ +│ ├─ ChannelManager (只有一个频道) │ +│ └─ MessageRouter (分发到UI) │ +│ │ +│ 通讯层: WuKongIM SDK 封装 │ +│ ├─ WKClient (长连接/心跳/重连) │ +│ ├─ WKSend / WKRecv │ +│ └─ TokenManager (认证) │ +│ │ +│ 本地存储: SQLite / SharedPreferences │ +│ ├─ Token 缓存 │ +│ └─ 消息历史 (最近N条) │ +└──────────────────────────────────────┘ +``` + +### 2.1 复用唐僧叨叨的模块 + +| 唐僧叨叨模块 | 用途 | LineUp 是否复用 | +|---|---|---| +| `wklogin` | 登录 / 注册 / Token 获取 | ✅ 复用 | +| `wkbase` | 基础 UI / WebSocket 连接 / 消息模型 | ✅ 复用核心 | +| `wkpush` | 厂商推送 | ❌ 暂不需要 | +| `wkscan` | 扫码 | ❌ 不需要 | +| 群聊/通讯录/朋友圈 | — | ❌ 隐藏/移除 | + +**核心思路:保留通信管道,砍掉社交外壳。** + +--- + +## 3. 连接流程 + +### 3.1 首次启动 + +``` +Step 1: 用户打开 App + → 输入手机号 → 点"获取验证码" → 输入 123456 + → App 调 LineUp App Server: POST /login + → Server 调 WuKongIM /user/token 生成 Token + → 返回 {uid, token, im_host, im_port} + +Step 2: App 用 Token 连接 WuKongIM WebSocket + → ws://100.121.118.116:15200?token=xxx + → WuKongIM 返回 Connack → 连接建立 + +Step 3: App 进入唯一频道 + → 频道 ID: "agent_default" (硬编码) + → App 调 WuKongIM Sub 帧订阅该频道 + → 收到 Suback → 可以收发消息 + +Step 4: 显示对话界面 + → 同步最近 N 条消息 (channel/messagesync) + → 等待用户输入 +``` + +### 3.2 后续启动(Token 未过期) + +``` +Step 1: 读取本地缓存的 Token +Step 2: 直接连 WuKongIM WebSocket +Step 3: 跳过登录页,直接进入对话 +``` + +### 3.3 Agent 也在同一个频道 + +``` +用户的 WuKongIM 用户: uid="user_" +Agent 的 WuKongIM 用户: uid="agent_default" + +频道 ID: "agent_default_channel" +频道类型: 个人频道 (channel_type=1) + +用户 → Send(频道) → WuKongIM → Recv → Agent +Agent → Send(频道) → WuKongIM → Recv → App +``` + +--- + +## 4. 消息类型 + +### 4.1 普通文本消息 + +用户发什么就送什么,Agent 回文本也直接显示。 + +### 4.2 LineUp 结构化消息(信封格式) + +沿用设计文档定义的信封协议: + +```json +{ + "v": 1, + "id": "msg_xxx", + "type": "lineup.v1.tool.call", + "sender": {"kind": "agent", "id": "agent_default"}, + "target": {"kind": "device", "id": "device_phone_01"}, + "payload": {} +} +``` + +### 4.3 第一批支持的 Agent 工具消息 + +| 类型 | 触发条件 | UI 渲染 | +|---|---|---| +| `lineup.v1.tool.choice` | Agent 需要用户做选择 | 渲染为可点击的选项按钮 | +| `lineup.v1.tool.confirm` | Agent 需要用户确认操作 | 渲染确认/取消按钮 | +| `lineup.v1.tool.input` | Agent 需要用户输入值 | 渲染输入框 | +| `lineup.v1.tool.progress` | Agent 报告进度 | 渲染进度条 | +| `lineup.v1.event.error` | Agent 报错 | 渲染错误提示 | + +**这些 payload 通过 WuKongIM 的 SendPacket.Payload 字段传递,App 收到后解析 type 字段决定渲染方式。** + +### 4.4 通用 UI Surface 与上层 App 能力 + +除内置文本、Markdown、choice、confirm、progress 等稳定组件外,LineUp Client 还支持受控的 UI Surface:Agent 可发送 `lineup.v1.ui.open`,以 HTML/CSS/JS 描述一个交互界面;后续以 `ui.patch` 推送状态,以 `ui.event` 接收用户动作,以 `ui.close` 关闭实例。 + +这不是把 Agent 脚本放进 App 主进程执行。Android 端必须在隔离 WebView 中承载 Surface,禁用任意网络访问、文件访问、同源权限和未注册的 JavaScript interface。Surface 只能通过受限 bridge 上报用户事件。 + +Agent 若要调用 App 的上层能力(例如打开链接、选文件、写剪贴板、相机、定位或业务模块),必须走独立的 `lineup.v1.app.list` → `app.call` → `app.result` 协议:Client 先声明 capability,再按风险等级弹出用户确认或系统授权,绝不允许 Surface 直接越权调用。本协议详见 [LineUp UI Surface 与 App Capability 协议](../设计/02.正式方案/lineup-ui-surface-protocol.md)。 + +--- + +## 5. UI 设计 + +### 5.1 消息渲染规则 + +``` +if payload 为空: + → 普通文本消息,照常显示 + +if payload.type == "lineup.v1.tool.choice": + → 渲染为选项卡片 + → 用户点击某个选项后: + → App 组装 tool.result Payload + → Send 回 Agent + +if payload.type == "lineup.v1.tool.progress": + → 渲染为进度条卡片 + → 被动显示,无需用户操作 +``` + +### 5.2 登录页 + +``` +┌──────────────────────┐ +│ │ +│ LineUp │ +│ 你的 AI 搭档 │ +│ │ +│ ┌──────────────────┐│ +│ │ +86 手机号 ││ +│ └──────────────────┘│ +│ ┌────────┐ ┌──────┐ │ +│ │ 验证码 │ │ 获取 │ │ +│ └────────┘ └──────┘ │ +│ │ +│ [ 登 录 ] │ +│ │ +└──────────────────────┘ +``` + +### 5.3 主界面 + +``` +┌──────────────────────────────┐ +│ Agent (在线) ··· │ ← 顶部栏:Agent名称+在线状态 +├──────────────────────────────┤ +│ │ +│ [Agent] 你好,我是你的 AI │ +│ 助手,有什么可以帮 │ +│ 助你的? │ +│ │ +│ [用户] 帮我查天气 │ +│ │ +│ [Agent] ┌─ 选择城市 ────┐ │ +│ │ ○ 北京 │ │ +│ │ ○ 上海 │ │ +│ │ ● 深圳 │ │ +│ │ [确认] │ │ +│ └────────────────┘ │ +│ │ +├──────────────────────────────┤ +│ ┌────────────────────┐ 📎 │ ← 输入栏 +│ │ 输入消息... │ 📷 │ +│ └────────────────────┘ 🎤 │ +└──────────────────────────────┘ +``` + +--- + +## 6. 服务端交互协议 + +### 6.1 App → LineUp App Server + +| API | 方法 | 用途 | +|---|---|---| +| `/login` | POST | 手机号+验证码 → {uid, token, im_addr} | +| `/ws` | WebSocket | App 维持与 Server 的长连接(接收 Server 推送) | + +### 6.2 App → WuKongIM (直连) + +| 操作 | 方向 | 协议 | +|---|---|---| +| 连接 | App → WK | WKProto Connect (带 Token) | +| 发消息 | App → WK | WKProto Send (频道+Payload) | +| 收消息 | WK → App | WKProto Recv | +| 同步消息 | App → WK | channel/messagesync | +| 心跳 | 双向 | WKProto Ping/Pong | + +--- + +## 7. 与唐僧叨叨 App 的差异 + +| 功能 | 唐僧叨叨 | LineUp App | +|---|---|---| +| 登录 | 手机号+验证码 / 第三方 | 手机号+验证码(简化版) | +| 主界面 | 会话列表(多聊天) | **直接进入唯一 Agent 对话** | +| 通讯录 | 好友+群组+工作台 | 无 | +| 发现页 | 朋友圈+附近 | 无 | +| 消息类型 | 文本/图片/语音/文件/位置 | 文本 + Agent 工具卡片 | +| 设置 | 隐私/通知/通用 | 极简(仅退出/重置) | +| WuKongIM 连接 | `wkbase` SDK 封装 | 复用 `wkbase` 核心 | +| 服务端 | 唐僧叨叨业务层 | LineUp App Server | + +--- + +## 8. 实施计划 + +### Phase 1: 最小通信通路(1-2天) +``` +目标: 能登录、连 WuKongIM、收发文本消息 + + □ 基于唐僧叨叨 wklogin + wkbase 创建简化版 App 壳 + □ 移除所有非必要模块(群聊/通讯录/朋友圈) + □ 登录后直连 WuKongIM WebSocket + □ 硬编码频道 ID,进入固定对话 + □ 能发送和接收文本消息 +``` + +### Phase 2: Agent 工具消息渲染(2-3天) +``` +目标: 能解析 LineUp 信封,渲染 choice/confirm/progress + + □ 实现 Payload 解析器 + □ choice 卡片 → 选项按钮列表 + □ confirm 卡片 → 确认/取消按钮 + □ progress 卡片 → 进度条 + □ 用户操作后组装 tool.result 回传给 Agent +``` + +### Phase 3: UI 美化 + 体验优化(2-3天) +``` +目标: 不再是粗制原型,而是可用产品 + + □ 对话气泡 UI 优化 + □ Agent 在线状态指示 + □ 消息发送状态(发送中/已送达) + □ 启动动画 / 过渡效果 + □ 错误处理(断网/超时) +``` + +--- + +## 9. 参考资料 + +- 唐僧叨叨 Android 源码: `upstream/tangsengdaodao-android/` +- LineUp App Server 设计: `lineup-app-server/DESIGN.md` +- WuKongIM JS SDK: `@wukongim/sdk-js` (Agent 端用) +- LineUp App 层架构: `设计/02.正式方案/lineup-app-layer-architecture.md` +- 消息信封与 UI Surface 定义: `设计/02.正式方案/lineup-ui-surface-protocol.md` diff --git a/README.md b/README.md new file mode 100644 index 0000000..e01cab9 --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +# LineUp App + +这里是 LineUp 多端客户端的工作区。 + +当前 Kotlin Android 客户端是 IM、协议、设备接入与交互闭环的快速实验基线;长期目标是在系统 WebView / WebKit 之上构建 LineUp Mini Runtime,为内置 Renderer 与受限第三方小程序 Surface 提供统一的运行环境。 + +## 文档入口 + +- [DESIGN.md](DESIGN.md):Android 实验阶段的产品、连接与交互设计; +- [TECHNOLOGY_SELECTION.md](TECHNOLOGY_SELECTION.md):已确认的客户端与 Mini Runtime 技术路线;Tauri 2 是第一优先的 Reference Host Spike,Wails v3 在同一基线后续评估; +- [tauri/README.md](tauri/README.md):Tauri 2 Reference Host 的实现、构建状态和下一阶段范围; +- [LineUp App 层架构设计方案](../设计/02.正式方案/lineup-app-layer-architecture.md):跨端 App Shell、Interaction Kernel、Renderer、Surface 与 Capability 的正式架构; +- [LineUp UI Surface 与 App Capability 协议](../设计/02.正式方案/lineup-ui-surface-protocol.md):小程序 Surface 和 Agent 调 App 能力的协议定义。 + +## 当前目录边界 + +```text +lineup-app/ +├── DESIGN.md # Android 快速实验设计 +├── TECHNOLOGY_SELECTION.md # 已确认的客户端 / Mini Runtime 技术路线 +├── tauri/ # Tauri 2 Reference Host(第一优先 Spike) +└── README.md # 本目录说明与文档入口 +``` + +实际的唐僧叨叨 Android 上游实验代码保留在 `../upstream/tangsengdaodao-android/`,不与未来的 LineUp 多端客户端工程混放。 diff --git a/TECHNOLOGY_SELECTION.md b/TECHNOLOGY_SELECTION.md new file mode 100644 index 0000000..d9a46e5 --- /dev/null +++ b/TECHNOLOGY_SELECTION.md @@ -0,0 +1,158 @@ +# LineUp Client 与 Mini Runtime 技术选型:原生 Android、Tauri 2 与 Wails v3 + +**版本:** 0.1(评审稿) + +**状态:** 已确认第一阶段技术路线 + +**日期:** 2026-08-02 +**关联设计:** [LineUp App 层架构设计方案](../设计/02.正式方案/lineup-app-layer-architecture.md)、[LineUp UI Surface 与 App Capability 协议](../设计/02.正式方案/lineup-ui-surface-protocol.md) + +--- + +## 1. 决策问题 + +LineUp 已有可运行的 Kotlin Android 客户端,并完成 App Server、WuKongIM、Hermes Adapter 的连通。它的定位是快速验证 IM、协议、设备接入和交互闭环,不是长期多端客户端的唯一实现。 + +长期目标是在 App 层建立 LineUp 自定义的“小程序运行环境”:利用系统 WebView / WebKit 执行 HTML、CSS、JavaScript,但由 LineUp 定义小程序包、生命周期、受限桥接、事件协议、权限与审计模型。这里不实现浏览器或 JavaScript 内核;实现的是运行在系统 Web 内核之上的 **LineUp Mini Runtime**。 + +本次只讨论客户端实现载体;LineUp Envelope、Interaction Kernel、Surface 安全模型与 Capability Registry 的协议边界不因载体而改变。 + +## 2. 已确认的技术路线 + +| 选项 | 决策 | 定位 | +|---|---|---| +| 现有 Kotlin Android | **保留** | 稳定基线、原生能力参考实现和持续交付通道 | +| Tauri 2 | **第一优先开展独立 Spike** | LineUp Mini Runtime 的 Reference Host、安全与能力基线 | +| Wails v3 | **第二阶段按同一基线评估** | 利用 Go 主技术栈的长期 Host 候选 | + +不直接重写或删除当前 Kotlin App。先通过 Tauri Spike 验证跨端 Host、小程序隔离、系统能力桥接和移动端恢复;再以完全相同的 Mini Runtime 协议与验收标准验证 Wails v3。这样可将技术选择从框架偏好转为可实证的交付能力比较。 + +### 2.1 为什么先验证 Tauri + +Tauri 的团队、社区、桌面生态和移动端路径相对成熟,适合作为高标准的参考宿主。它先回答的不是“能否把现有 Android 聊天页换成 Web”,而是“可信 LineUp 主应用与不可信小程序 Surface 能否在多端稳定且安全地共存”。 + +Wails v3 与 Go 主技术栈更匹配,仍是重要的长期候选;但它应接受已验证的 Runtime 基线,而不是由它当前的 Beta 状态来定义平台边界。 + +## 3. 当前资产与迁移匹配度 + +Web Reference Host 已存在下列可复用资产: + +```text +lineup-app-server/assets/chat/ +├── interaction-kernel.js # ConversationItemFactory + RendererRegistry +└── index.html # GFM Markdown、安全净化、Surface Host、App Call UI +``` + +可复用的核心能力包括: + +- `marked + DOMPurify` 的 GFM Markdown; +- `ConversationItem` 与 Renderer Registry; +- `lineup.v1.text`、`agent.status`、`agent.progress`、`error` renderer; +- `lineup.v1.ui.open / patch / close / event` 的 sandbox iframe Surface Host; +- `lineup.v1.app.call / result` 的用户确认交互; +- WebSocket 接入形态(服务端 WSS 尚待提供;当前 Android 是 HTTP 轮询)。 + +目前 Android 使用 OkHttp、RecyclerView、Clipboard、外链 Intent、Activity 生命周期和轮询,不依赖相机、蓝牙、音视频等重量级原生 SDK。故迁移“表现层与会话 UI”的阻力较低,但系统能力、推送和后台恢复仍必须有原生实现。 + +## 4. 方案对比 + +| 维度 | 当前 Kotlin Android | Tauri 2 | Wails v3 | +|---|---|---|---| +| Android UI | 原生 View / RecyclerView | Web 前端 + Android WebView | Web 前端 + 容器;移动端路径需进一步证实 | +| Markdown | 临时 regex + HtmlCompat,不完整 | 直接复用 GFM + sanitizer | 可复用 Web 实现 | +| LineUp Surface | 当前仅原生 Task Dashboard | 可复用 iframe sandbox Host | 需要专项验证 | +| 内置 Renderer / 标准组件 | 需逐个原生实现 | 可复用现有 Web Renderer | 可复用现有 Web Renderer | +| 系统能力 | Kotlin 直接调用 | Tauri Plugin / Kotlin bridge | Go bridge / 原生层,需专项验证 | +| Push、通知、后台、Deep Link | 路径最直接 | 仍需要原生 Plugin | 仍需要原生 bridge | +| Android 成熟度 | 已在项目真机运行 | 官方 Mobile 路径,作为首个真机 Spike | 官方 README 标为 v3 Beta,需以 Tauri 结果作对照 | +| 现有 Web 实现复用 | 低 | 高 | 高 | +| 推荐角色 | 稳定基线 | **Reference Host / 第一优先 Spike** | **Go 主栈长期候选 / 第二阶段对照实现** | + +### 4.1 Tauri 2:Reference Host + +Tauri 2 是当前最适合优先验证的跨端候选。官方 v2 文档覆盖 Android、iOS 与 Mobile;它能够复用已有 Web 表现层资产,同时仍允许通过原生插件承接 Android 系统能力。Tauri 在本项目中承担的是可信 LineUp 主应用与 Mini Runtime 的第一版参考实现,而不是第三方小程序本身。 + +它替换的是会话 UI、Markdown、Renderer、标准组件和 Surface Host,并非把 Android 原生层完全移除。Kotlin/Gradle 仍承担推送、通知、Deep Link、运行时权限、文件选择、分享、后台恢复,以及必要原生 Plugin。 + +### 4.2 Wails v3:Go Host 候选 + +Wails 的 Go 技术栈与 LineUp 的服务端、协议校验、同步、Outbox、Capability Policy 和审计逻辑高度匹配,长期上有明显的维护优势。官方 GitHub README 当前将 Wails v3 标记为 `Beta`;本次核验也没有取得足够的官方 Android 生产支持证据。因此不把它作为第一轮 Runtime 安全边界的验证载体,但在 Tauri 基线明确后,应以同一协议和验收范围做正式对照实现。 + +重点评估 Wails v3 是否能以 Go Host 达到 Tauri Reference Host 的小程序隔离、资源加载、桥接、生命周期、移动端系统能力与恢复标准;若能达到,Go 主栈优势将使其成为长期主方案的强候选。 + +## 5. LineUp Mini Runtime 与 Tauri Reference Host + +```text +LineUp Tauri Reference Host +├── Web Frontend +│ ├── Chat UI / 虚拟列表 +│ ├── CommonMark / GFM Markdown +│ ├── ConversationItem + Renderer Registry +│ ├── 标准组件库 +│ ├── Surface Host +│ └── WebSocket + HTTP 补偿 +├── Rust / Tauri Core +│ ├── 安全 capability policy +│ ├── 会话 / token 安全存储 +│ └── 原生 bridge 管理 +└── Android Kotlin 壳 + ├── Push / 通知 / Deep Link + ├── 文件、权限、系统分享 + └── 必要的原生 Plugin +``` + +Tauri 的 Web Frontend 与第三方 Surface 必须是两个不同的安全域。LineUp 自有前端可以调用受控原生能力;Agent 或第三方 Surface 只能通过经过校验的事件协议请求能力,绝不能获得 Tauri `invoke`、登录 token 或宿主 DOM 的直接访问权。 + +### 5.1 Mini Runtime 的框架无关边界 + +Mini Runtime 是可被 Tauri、Wails 或原生 Shell 实现的协议层,最小由以下模块组成: + +```text +Package Manager app_id / version / manifest / integrity / allowlist +Instance Manager instance_id / open / ready / patch / close / restore +Secure Loader 不可变 bundle / 专用 origin / CSP / 网络与跳转限制 +Event Bridge postMessage schema、大小、频率、来源与实例校验 +Mini API ui.onPatch / ui.emit / app.call / app.result +Capability Gateway policy / 用户确认 / 平台 handler / audit +``` + +第三方小程序只能获得 Mini API,不能直接获得 Tauri 或 Wails 的原生调用对象。内置 Renderer 与标准组件可运行于可信主应用前端;小程序 Surface 则必须运行于隔离执行域。 + +## 6. 不可退让的安全约束 + +1. Agent bundle 与第三方 Surface 一律视为不可信输入。 +2. Surface iframe 不得访问 Tauri invoke API、宿主登录态或宿主 DOM。 +3. 仅允许完成实例、命名空间、事件名和消息大小校验的 `postMessage` bridge。 +4. CSP 默认禁止未授权网络、远程脚本和危险跳转。 +5. `ui.patch` 只能更新 JSON state,不能替换已验证 bundle。 +6. 所有系统能力只允许走 `app.call → Capability Registry → 用户确认 → app.result`。 +7. Android 的推送、通知、后台恢复与权限结果必须可审计、可恢复,不能依赖一个不受控网页生命周期。 + +## 7. Tauri Reference Host Spike 范围与验收 + +Spike 单独建立目录或模块,接入同一 App Server、WuKongIM、Hermes 与测试会话;不得改写当前 Kotlin Android 的可运行路径。先以桌面验证主应用与小程序双安全域,再进入 Android 真机验证。 + +- [ ] 真机登录现有 App Server; +- [ ] 兼容 HTTP `/messages/sync`,为服务端 WSS 留出接入点; +- [ ] 完整 GFM Markdown 与 DOMPurify 安全净化; +- [ ] 兼容 `text / status / progress / tool.call / tool.result`; +- [ ] 实现 `ui.open / patch / close / event` sandbox Surface; +- [ ] 实现 `app.open_url` 与 `clipboard.write` 的 Capability bridge; +- [ ] PJD110 真机安装、滚动性能、断线恢复与安全隔离通过; +- [ ] 与既有 Kotlin 客户端对照确认消息顺序、去重、用户操作回传一致。 + +Wails v3 的第二阶段 Spike 使用以上相同清单。其目标不是重定义协议,而是证明 Go Host 能够以相同小程序包和安全边界完成等价交付。 + +## 8. 本机构建级验证前置条件 + +| 条件 | 当前状态 | +|---|---:| +| Android SDK / Gradle / 项目内 JDK 17 | 已有 | +| Kotlin APK 构建与真机安装 | 已验证 | +| Rust / Cargo | 已安装;本机 Rustup proxy 有清单异常,直接工具链 bin 可用 | +| Tauri CLI | 已作为 `lineup-app/tauri/` 的 npm 开发依赖安装 | +| Wails CLI | 未安装 | +| Android NDK | 未安装 | +| Tauri / Wails 现有工程 | Tauri Reference Host 已建立于 `lineup-app/tauri/`;Wails 尚未建立 | + +Tauri Spike 已进入实现阶段:前端生产构建、Linux debug 二进制和 Debian 包均已生成;Android 真机 Spike 仍需 Android NDK 与 Rust Android targets。当前 Kotlin Android 实验工程保持不变。 diff --git a/tauri/.gitignore b/tauri/.gitignore new file mode 100644 index 0000000..d444e2a --- /dev/null +++ b/tauri/.gitignore @@ -0,0 +1,3 @@ +/dist/ +/node_modules/ +/src-tauri/target/ diff --git a/tauri/README.md b/tauri/README.md new file mode 100644 index 0000000..f95fceb --- /dev/null +++ b/tauri/README.md @@ -0,0 +1,82 @@ +# LineUp Tauri Reference Host + +这是 LineUp Mini Runtime 的第一版 Tauri 2 Reference Host。它独立于当前 `upstream/tangsengdaodao-android/` 快速实验工程,不替换或修改现有 Android 验证路径。 + +## 已实现的最小闭环 + +- 可信 Host 前端:AppServer 地址、手机号/验证码登录、退出; +- AppServer 交互:`/login`、`/messages/send`、`/messages/sync`; +- 用户消息本地即时回显与送达状态; +- HTTP 同步游标:首次 `0`、后续最后序号 `+ 1`; +- `lineup.v1.text`、`agent.status`、`agent.progress`、`error` 的基础 Renderer; +- `marked + DOMPurify` 的 GFM Markdown 安全渲染; +- Tauri 2 Rust Host、capability 文件与桌面窗口配置。 + +AppServer 已配置只允许 `tauri://localhost`、`https://tauri.localhost`、`http://tauri.localhost` 三个 Tauri Host origin 跨源调用。若产品使用新的 Tauri origin 或独立 Web 客户端,应先在 `lineup-app-server/configs/lineup.yaml` 的 `client.allowedOrigins` 显式加入,不能放开任意 Origin。 + +macOS 的 `src-tauri/Info.plist` 为当前 Tailscale / 私网 HTTP AppServer 配置了 `NSAllowsArbitraryLoadsInWebContent`。该例外仅作用于 Host 的 WKWebView 内容请求,使其能访问类似 `http://100.x.y.z:8090` 的地址,不放宽 Rust 原生网络层;待所有 AppServer 都迁移到 HTTPS 后应移除。 + +`ui.open / patch / close` 和 `app.call` 已被协议层识别,但目前安全降级为可见提示;它们是下一阶段 Mini Runtime Surface Host 与 Capability Registry 的实现范围,不能在当前 Host 页面中直接执行 Agent JavaScript 或直接授予设备能力。 + +## 本地命令 + +```bash +cd lineup-app/tauri +npm install + +# 日常开发:启动 Vite 热更新 + 未打包的 Tauri 桌面壳 +npm run desktop:dev + +# 仅检查并构建前端静态文件 +npm run build + +# Linux:仅构建 Debian 包,避免为不需要的 AppImage 下载额外运行器 +npm run tauri -- build --debug --bundles deb + +# macOS(Apple Silicon / Intel):生成 .app 与 .dmg +npm run tauri build -- --debug +``` + +`npm run desktop:dev` 不生成 `.app`、`.dmg` 或安装包。前端 TypeScript / CSS / HTML 保存后会由 Vite 自动热更新;改动 `src-tauri/` 中的 Rust Host 代码时,Tauri 会重新编译并重启开发窗口。只有需要交付可安装文件时才执行 `tauri build`。 + +本项目的 `tauri` 与 `check:rust` npm 脚本会自动识别 Linux x86_64、macOS Apple Silicon、macOS Intel 的 Rust stable toolchain,并加入 `PATH`。因此不要直接执行裸 `tauri build`;统一使用 `npm run tauri build -- --debug`。如 Rust toolchain 安装在其他位置,可临时覆盖: + +```bash +RUST_TOOLCHAIN_BIN=/path/to/rust/bin npm run tauri build -- --debug +``` + +## 本机构建状态(2026-08-03) + +- `npm run build`:已通过; +- Cargo/Tauri Rust crates:已下载并开始编译; +- Tauri Linux desktop build:已通过;debug 可执行文件和 Debian 包已生成; +- Android Spike:尚未开始。仍需要 Android NDK、Rust Android targets 与 Tauri Android 初始化。 + +Linux 桌面构建依赖以下系统开发库;本机已具备。新环境缺少时可安装: + +```bash +sudo apt-get update +sudo apt-get install -y pkg-config libdbus-1-dev libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev +``` + +本机已生成的产物: + +```text +src-tauri/target/debug/lineup-tauri +src-tauri/target/debug/bundle/deb/LineUp_0.1.0_amd64.deb +``` + +Tauri 构建产物位于 `src-tauri/target/`,已被 Git 忽略。图标源文件是 `src-tauri/icons/icon.svg`,其余 PNG/ICO/ICNS 与 Android/iOS 图标由 `npm run tauri icon src-tauri/icons/icon.svg` 生成。 + +## 目录边界 + +```text +tauri/ +├── src/ # 可信 LineUp Host 前端 +│ ├── main.ts # 会话 UI、AppServer transport、Renderer 调度 +│ └── protocol.ts # 平台无关的 LineUp v1 → ConversationItem 解码 +├── src-tauri/ # Tauri Rust Host 与 capability 配置 +└── package.json # Vite、Tauri CLI 与前端依赖 +``` + +第三方 Agent Surface 未来必须运行于独立隔离执行域,只能经 LineUp Mini Runtime 事件桥与 Capability Gateway 通信;不得访问 Tauri `invoke`、Host DOM、登录态或本机特权。 diff --git a/tauri/index.html b/tauri/index.html new file mode 100644 index 0000000..8c4f00a --- /dev/null +++ b/tauri/index.html @@ -0,0 +1,13 @@ + + + + + + + LineUp + + +
+ + + diff --git a/tauri/package-lock.json b/tauri/package-lock.json new file mode 100644 index 0000000..b7e25ae --- /dev/null +++ b/tauri/package-lock.json @@ -0,0 +1,1455 @@ +{ + "name": "lineup-tauri-client", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "lineup-tauri-client", + "version": "0.1.0", + "dependencies": { + "@tauri-apps/api": "^2.0.0", + "dompurify": "^3.2.6", + "marked": "^15.0.12" + }, + "devDependencies": { + "@tauri-apps/cli": "^2.0.0", + "typescript": "^5.7.3", + "vite": "^6.1.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/@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.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.62.4.tgz", + "integrity": "sha512-RrPokAb7dmbxFoeO3TloqHyOjgye8RkBhSqmp4aJMIex4c9r46ZstPnleDQOq1t46VOVjwIuwNogIqbodV1Vvg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.62.4.tgz", + "integrity": "sha512-JKuJc+pnpks2pjy7L/N3v/cAkZxYlnmuZoD840ldbMI5KDbC4iO9NKwPKYdjYFCMAIIlBzYSFHxIJVYzRo2/8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.62.4.tgz", + "integrity": "sha512-krw5uS2STmvJ02x0uTXHbqQNuz+9eZ1iw+qXk9dmW2gvV4jV7O2hEoOnuhFrpOPiel1mBFtqbxYZZtC46hXLOw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.62.4.tgz", + "integrity": "sha512-wsTxtgApb4PrOsNJIm0FZ1h3WvCC+k9uxLJ4ad75hgoS4NiRes2SoJFlDAyMwiUY8IssDqGcHbXuN0sx1tfF1A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.62.4.tgz", + "integrity": "sha512-GUOnQlyZe3yAXhWOtOMsn5Qkrv5E5mZXa0thbARWi5Ei2szlVXJFQhddZ4HbAzh8q92w5twp+CQvs/eFanz9YQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.62.4.tgz", + "integrity": "sha512-/Y7f3QuxjzPKsjA/rfEDa3+0vXqyjmJ50Ln8dPpCmWkKTrUoWHG1cWhTqaAMLob2m2nESWuC7yGrREz019Ztqg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.62.4.tgz", + "integrity": "sha512-81wiiX3v7aqy+T+bT61TJ78yJjRquqFFTTbAPt08imfQQzkPIW8t6aJbkTagtCCrXMNc9D66+geqlK7ydLPNqA==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.62.4.tgz", + "integrity": "sha512-9kmDIvNZqdoHOBZgNtpTBeLWYO/LVipM3H/j62P8848/l/VPEQL6N3uxU9pvP1oZAsXyC2MEnFP3ovRjo7WYNQ==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.62.4.tgz", + "integrity": "sha512-CcnXHWnXg69g+DX5VWL3FHts3qMRN2uVEHX+BZvGLdd07/gXkn3ePjYtO1LDJvxkGKVHMclKBRa1QUTH+6toYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.62.4.tgz", + "integrity": "sha512-iFOibiHnTRuhrWLlRsOQFdZJJIa7S8OwkneJr4ocALP16u5yk6lWLINFwhHaEqBFMsKDUZofLkGos7+CPzGB3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.62.4.tgz", + "integrity": "sha512-XnWYMI7euHlb5a871xPja+Gm7DRCFU+FGRrtS2sMq9N8FvqtpagUy6gD4YOemC5MRk9xbh8+jYMEJbigFQwsgA==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.62.4.tgz", + "integrity": "sha512-qGDAlO0U8xedCcsdRm9oaoQY8DAx/QT7uIxJWhCdx0ceIWX783UC9QSYkdpzAe29wNiVfp24+bZdQmn49o45SQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.62.4.tgz", + "integrity": "sha512-ru4H6ezD7ysA5EiEK6qkkaEb4modH8CTej6kUy/gQi20u3kB3G7Zn8snXXkeJSCOFKG/rbPPtM/+9Wgas1961w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.62.4.tgz", + "integrity": "sha512-2W4MO5WQVJnbJaZdvDb9rhBDuFU1nKIepPFpJUBsTh2k1YY2g+ODViaWuyOAjQ5cOP7NvrvLzt3wvHOoiAvc7w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.62.4.tgz", + "integrity": "sha512-+fxjfuoAmVMCYV5QyjoIpu0cp5DOiOTeqYFk1AVaxGr+/ravWLX89XfQmptsoWcaVy/TGf2hexzbUOrCQIL1CQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.62.4.tgz", + "integrity": "sha512-jTn8JfHGL4djjFxPuM06LmNUJDsst2jeVlsd9OmIH6zc5sC9K6rIuO4YajXatLUpBmBKl6b35ro1QZocLi+tcA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.62.4.tgz", + "integrity": "sha512-oCJCJL4pXsoDcP2QZ+JVlPTIRc6266zsIaeJJsWImmF7HO0W8nb6HuSgZlMWxJwaPf8ehbSw8yo0EUw925hKsA==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.62.4.tgz", + "integrity": "sha512-W69hukhZ3KKNRCaMIEzKvcFye42hh0FE1+YoYaf5+Ikacuftoco6yO/xouz0hc5d5W/s3yBro5jRiuEE/Q5vUw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.62.4.tgz", + "integrity": "sha512-qiXbGG2jkjXhzXpsFZSR2Xpb8DN/UaxYsbb/STbuR/6fpaDgRmmaq1B/LmtF2wQFOFOSsK2jdE0RZ3a0zHn4QA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.62.4.tgz", + "integrity": "sha512-nWeM//hxv8mIo6jD7Hu4o48DVmV9pbV6gsKaWU+4NFyqHoPKwrkRiZGLKUhOBk8qNmDmpwFtPKg80Bo/Tn4xiQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.62.4.tgz", + "integrity": "sha512-s62SQ/vgsRSvMwDkOEfTqfgASF0f26ZNaQuTA6Aok5lrikf89yI2W0gFHvZb2Jpgc6N8JnOKZgCK2iciO3CsxQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.62.4.tgz", + "integrity": "sha512-J6wGf8TVGbXJq+HH+ttTvrcfNKPbuZecV6KT1B8I18BC5IURUh5kl4Yl5OEP5eFIUoI5BWxCsyYMhFsDx8kekw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.62.4.tgz", + "integrity": "sha512-zmfrQd/0wu6oJs8Vq8KwY/YtsKSsLtKe/HwAP4Wqy8LhWjeT55fHRAkOhYQ12wI3ayS4Tt12d5CDRD7N96SAYQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.62.4.tgz", + "integrity": "sha512-qPzHqdj9rfUD+w79dtE07zi/kFwKyCJqplp5K5ygeLTp7jLpAoc16OAH39HSmRC9UpozaecsleI8uAdEj6v2yw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.62.4.tgz", + "integrity": "sha512-zD6NdeWEByGE9QF9vCrlJ5YQB4oq9q91kPZS37Jwj5hOkvR1lTBSpsKhKDw4IJtbQ35LsTS1HD9DZYGKIshU1Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@tauri-apps/api": { + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.11.1.tgz", + "integrity": "sha512-M2FPuYND2m+wh5hfW9ZpSdxMPdEJovPBWwoHJmwUpysTYNHaOkVFN419m/K0LIgjb/7KU2vBgsUepJWugQCvAA==", + "license": "Apache-2.0 OR MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/tauri" + } + }, + "node_modules/@tauri-apps/cli": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.11.4.tgz", + "integrity": "sha512-R8xGtMpwyetawSqm9kYOuMmEqkhUbvcUy8n0aNXIxollKBLESUu5f4Fx+64hgASYm1H+jSWq6jCW6zqTnH6hqQ==", + "dev": true, + "license": "Apache-2.0 OR MIT", + "bin": { + "tauri": "tauri.js" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/tauri" + }, + "optionalDependencies": { + "@tauri-apps/cli-darwin-arm64": "2.11.4", + "@tauri-apps/cli-darwin-x64": "2.11.4", + "@tauri-apps/cli-linux-arm-gnueabihf": "2.11.4", + "@tauri-apps/cli-linux-arm64-gnu": "2.11.4", + "@tauri-apps/cli-linux-arm64-musl": "2.11.4", + "@tauri-apps/cli-linux-riscv64-gnu": "2.11.4", + "@tauri-apps/cli-linux-x64-gnu": "2.11.4", + "@tauri-apps/cli-linux-x64-musl": "2.11.4", + "@tauri-apps/cli-win32-arm64-msvc": "2.11.4", + "@tauri-apps/cli-win32-ia32-msvc": "2.11.4", + "@tauri-apps/cli-win32-x64-msvc": "2.11.4" + } + }, + "node_modules/@tauri-apps/cli-darwin-arm64": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-2.11.4.tgz", + "integrity": "sha512-1ryOF3ZhpZ/nemHV5zVwBQBz9jDGKmKPvWPADOhc83ig0P4bMc2iER4NbC6r9sjeIZ6RVQ4g3RZIYvezhcl4TQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-darwin-x64": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-2.11.4.tgz", + "integrity": "sha512-uFsGQAAfuyz1k/yGLmkWfkBlgKAqZfxqlHmLWx81QU27RJWfmbNHCIq8T8w1e+VClleIuZUjpHWfoE4E3DLo3A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm-gnueabihf": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-2.11.4.tgz", + "integrity": "sha512-IaHZn5CdBL21oUmjiVOS1ctw6Ip1O0pjp70FwOWmYz1myWe0SY96ZIj2FYf7pT0m8bI2h/hrs5ZbEXXh44/MkQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm64-gnu": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-2.11.4.tgz", + "integrity": "sha512-N41/ukTRVe6XSuUTESuFdGeOW2i7k62tK+6gHK5Kd5/q5RPvvi19GaWAVPPb9u95HSGmTChSolBfzynUsssFaA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm64-musl": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.11.4.tgz", + "integrity": "sha512-v277UnT/fB64xAfSroL5N3Km3tLmvATWqJJw/wRI+g6o+HkeD0slyE7gOhNs1MbjE41R7bQOTxMVoL3aomUJmw==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-riscv64-gnu": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-riscv64-gnu/-/cli-linux-riscv64-gnu-2.11.4.tgz", + "integrity": "sha512-qqgNkQ2u1yZHxjhxsZaxUtRDW8dIqIYm33rx/mzwQv0SfY9x1B+iraj8vWeFiXjjSVVhEMepXSOts1TqPzvXNQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-x64-gnu": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-2.11.4.tgz", + "integrity": "sha512-2VRNWl84FOH0m2giiDkO2h0QXlcMJeX+zJDpI5kDIQAx6s+geF3v48F4DXfJez4GS/FdoDGnPnw1C2iYGbQ7bQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-x64-musl": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-2.11.4.tgz", + "integrity": "sha512-o9GyhYor/nc7xarmwDE3ka2szuW3uuZzXjHWh64Q8YX5AtSgxdQkFWzrY4O8KiGtVNvFBI14H3Q49Qj5TOIP/A==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-win32-arm64-msvc": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-2.11.4.tgz", + "integrity": "sha512-ld5Ehb598m0VkYyylRPNeCFsBe/km0jxis6KgMpl3IGY6I/i1RwQXO05I1AsXUXO2WC6AvB/Lw4qTf/asiuEiQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-win32-ia32-msvc": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-2.11.4.tgz", + "integrity": "sha512-12Hxi0XX/H5VFxO/bGgHkFWhml9VMgEOu9CidjeCeTNQ1l6fpUlbiGgSP7CLI3PFtW9/FfbeHieZ+kyWK5H7CA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-win32-x64-msvc": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.11.4.tgz", + "integrity": "sha512-+vDiqBIU5dMISg/wNvX3sF+ZHfgJGJ5T0AcO+EHNXV9GGAG+P5fzodlDXD3QdKCRgZxMoCm5PPvj3BqLNjBthw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "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/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true + }, + "node_modules/dompurify": { + "version": "3.4.12", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.12.tgz", + "integrity": "sha512-zQvGet8Z2sWbQhCmfFz/T5QWH2oBmjnqK3qvOjaqaNLrLEF912WamU+ohnTp0TCep/MFVHpdJuCZEdFOdTnEFg==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "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/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/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/marked": { + "version": "15.0.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.12.tgz", + "integrity": "sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/nanoid": { + "version": "3.3.16", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", + "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", + "dev": true, + "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==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.25", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.25.tgz", + "integrity": "sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.16", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/rollup": { + "version": "4.62.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.62.4.tgz", + "integrity": "sha512-RXOqwaPsBGjMNMa4sQjDjHieHEZDFoj/Rdr46l2MU5DfEs16wHJPC2RPTPHWhNl+M3aI472LLqFkFKut4SblOg==", + "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.62.4", + "@rollup/rollup-android-arm64": "4.62.4", + "@rollup/rollup-darwin-arm64": "4.62.4", + "@rollup/rollup-darwin-x64": "4.62.4", + "@rollup/rollup-freebsd-arm64": "4.62.4", + "@rollup/rollup-freebsd-x64": "4.62.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.62.4", + "@rollup/rollup-linux-arm-musleabihf": "4.62.4", + "@rollup/rollup-linux-arm64-gnu": "4.62.4", + "@rollup/rollup-linux-arm64-musl": "4.62.4", + "@rollup/rollup-linux-loong64-gnu": "4.62.4", + "@rollup/rollup-linux-loong64-musl": "4.62.4", + "@rollup/rollup-linux-ppc64-gnu": "4.62.4", + "@rollup/rollup-linux-ppc64-musl": "4.62.4", + "@rollup/rollup-linux-riscv64-gnu": "4.62.4", + "@rollup/rollup-linux-riscv64-musl": "4.62.4", + "@rollup/rollup-linux-s390x-gnu": "4.62.4", + "@rollup/rollup-linux-x64-gnu": "4.62.4", + "@rollup/rollup-linux-x64-musl": "4.62.4", + "@rollup/rollup-openbsd-x64": "4.62.4", + "@rollup/rollup-openharmony-arm64": "4.62.4", + "@rollup/rollup-win32-arm64-msvc": "4.62.4", + "@rollup/rollup-win32-ia32-msvc": "4.62.4", + "@rollup/rollup-win32-x64-gnu": "4.62.4", + "@rollup/rollup-win32-x64-msvc": "4.62.4", + "fsevents": "~2.3.2" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "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/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/vite": { + "version": "6.4.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.3.tgz", + "integrity": "sha512-NTKlcQjlAK7MlQoyb6LgaqHc8sso/pVyUJYWMws3jg21uTJw/LddqIFPcPqP6PzpgbIcZyKI85sFE4HBrQDA8A==", + "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 + } + } + } + } +} diff --git a/tauri/package.json b/tauri/package.json new file mode 100644 index 0000000..ed7010d --- /dev/null +++ b/tauri/package.json @@ -0,0 +1,24 @@ +{ + "name": "lineup-tauri-client", + "private": true, + "version": "0.1.0", + "type": "module", + "scripts": { + "dev": "vite --host 127.0.0.1 --port 1420", + "desktop:dev": "./scripts/tauri.sh dev", + "build": "tsc --noEmit && vite build", + "preview": "vite preview --host 127.0.0.1", + "tauri": "./scripts/tauri.sh", + "check:rust": "./scripts/tauri.sh cargo-metadata" + }, + "dependencies": { + "@tauri-apps/api": "^2.0.0", + "dompurify": "^3.2.6", + "marked": "^15.0.12" + }, + "devDependencies": { + "@tauri-apps/cli": "^2.0.0", + "typescript": "^5.7.3", + "vite": "^6.1.0" + } +} diff --git a/tauri/scripts/tauri.sh b/tauri/scripts/tauri.sh new file mode 100755 index 0000000..7add4b5 --- /dev/null +++ b/tauri/scripts/tauri.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env sh +set -eu + +# Tauri CLI launches Cargo itself. Choose a direct Rust toolchain bin first so +# the project works even if a shell has not sourced ~/.cargo/env. The override +# is useful for custom or CI toolchain locations. +if [ -z "${RUST_TOOLCHAIN_BIN:-}" ]; then + case "$(uname -s)-$(uname -m)" in + Linux-x86_64) RUST_TOOLCHAIN_BIN="$HOME/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin" ;; + Darwin-arm64) RUST_TOOLCHAIN_BIN="$HOME/.rustup/toolchains/stable-aarch64-apple-darwin/bin" ;; + Darwin-x86_64) RUST_TOOLCHAIN_BIN="$HOME/.rustup/toolchains/stable-x86_64-apple-darwin/bin" ;; + *) RUST_TOOLCHAIN_BIN="" ;; + esac +fi + +if [ -n "$RUST_TOOLCHAIN_BIN" ] && [ -d "$RUST_TOOLCHAIN_BIN" ]; then + export PATH="$RUST_TOOLCHAIN_BIN:$PATH" +fi + +if [ "${1:-}" = "cargo-metadata" ]; then + exec cargo metadata --manifest-path src-tauri/Cargo.toml --no-deps --format-version 1 +fi + +exec ./node_modules/.bin/tauri "$@" diff --git a/tauri/src-tauri/Cargo.lock b/tauri/src-tauri/Cargo.lock new file mode 100644 index 0000000..d4b3770 --- /dev/null +++ b/tauri/src-tauri/Cargo.lock @@ -0,0 +1,4392 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "aho-corasick" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e76a019e91224d279006ff972f1e984179a6e9feb050adba6ce8274aef23195" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" + +[[package]] +name = "atk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" +dependencies = [ + "atk-sys", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bit-set" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da" +dependencies = [ + "serde_core", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" +dependencies = [ + "objc2", +] + +[[package]] +name = "brotli" +version = "8.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc91aac060a7a1e25823bdccbfb6af1875b88f17c6daac97894eed8207166b3" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "5.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a32acac15fe1967bc3986b2a6347dffc965602354ea6f450ad07e8bfd253583" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + +[[package]] +name = "bytemuck" +version = "1.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" +dependencies = [ + "serde", +] + +[[package]] +name = "cairo-rs" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" +dependencies = [ + "bitflags 2.13.1", + "cairo-sys-rs", + "glib", + "libc", + "once_cell", + "thiserror 1.0.69", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "camino" +version = "1.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb1307f12aa967b5a58416e87b3653360e0fd614a016b6e970db08fecbb1b80d" +dependencies = [ + "serde_core", +] + +[[package]] +name = "cargo-platform" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror 2.0.19", +] + +[[package]] +name = "cargo_toml" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" +dependencies = [ + "serde", + "toml 0.9.12+spec-1.1.0", +] + +[[package]] +name = "cc" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5add81bb678e6cb321aff7fa0dc7689ad82b112dbc032cea19f91d6b8e3582b9" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfb" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" +dependencies = [ + "byteorder", + "fnv", + "uuid", +] + +[[package]] +name = "cfg-expr" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +dependencies = [ + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "chrono" +version = "0.4.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" +dependencies = [ + "iana-time-zone", + "num-traits", + "serde", + "windows-link 0.2.1", +] + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "cookie" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" +dependencies = [ + "time", + "version_check", +] + +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "core-graphics" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "064badf302c3194842cf2c5d61f56cc88e54a759313879cdf03abdd27d0c3b97" +dependencies = [ + "bitflags 2.13.1", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" +dependencies = [ + "bitflags 2.13.1", + "core-foundation", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d85363c37faeca707aef026efa9f3b34d077bce547e48f770770625c6013679e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17" + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "cssparser" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dae61cf9c0abb83bd659dab65b7e4e38d8236824c85f0f804f173567bda257d2" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa", + "phf", + "smallvec", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" +dependencies = [ + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ctor" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "352d39c2f7bef1d6ad73db6f5160efcaed66d94ef8c6c573a8410c00bf909a98" +dependencies = [ + "ctor-proc-macro", + "dtor", +] + +[[package]] +name = "ctor-proc-macro" +version = "0.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52560adf09603e58c9a7ee1fe1dcb95a16927b17c127f0ac02d6e768a0e25bc1" + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.119", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "dbus" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ab69f03cc8c4340c9c8e315114e1658e6775a9b16a04357973aa21cec22b32e" +dependencies = [ + "libc", + "libdbus-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "deranged" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" +dependencies = [ + "serde_core", +] + +[[package]] +name = "derive_more" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" +dependencies = [ + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.119", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.61.2", +] + +[[package]] +name = "dispatch2" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" +dependencies = [ + "bitflags 2.13.1", + "block2", + "libc", + "objc2", +] + +[[package]] +name = "displaydoc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6232dd377dcc64799954cbd3a9bb882e9cdc1308ccd87b1c098f1fb2eaf82a8" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "dlopen2" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2c5bd4158e66d1e215c49b837e11d62f3267b30c92f1d171c4d3105e3dc4d4" +dependencies = [ + "dlopen2_derive", + "libc", + "once_cell", + "winapi", +] + +[[package]] +name = "dlopen2_derive" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fbbb781877580993a8707ec48672673ec7b81eeba04cfd2310bd28c08e47c8f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "dom_query" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521e380c0c8afb8d9a1e83a1822ee03556fc3e3e7dbc1fd30be14e37f9cb3f89" +dependencies = [ + "bit-set", + "cssparser", + "foldhash", + "html5ever", + "precomputed-hash", + "selectors", + "tendril", +] + +[[package]] +name = "dpi" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" +dependencies = [ + "serde", +] + +[[package]] +name = "dtoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c3cf4824e2d5f025c7b531afcb2325364084a16806f6d47fbc1f5fbd9960590" + +[[package]] +name = "dtoa-short" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" +dependencies = [ + "dtoa", +] + +[[package]] +name = "dtor" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1057d6c64987086ff8ed0fd3fbf377a6b7d205cc7715868cd401705f715cbe4" +dependencies = [ + "dtor-proc-macro", +] + +[[package]] +name = "dtor-proc-macro" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5" + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + +[[package]] +name = "embed-resource" +version = "3.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbfdaacccebec3b28e4866b8973543c7647797db5ada1bdab552e48fe665fbbd" +dependencies = [ + "cc", + "memchr", + "rustc_version", + "toml 1.1.4+spec-1.1.0", + "vswhom", + "winreg", +] + +[[package]] +name = "embed_plist" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "erased-serde" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec" +dependencies = [ + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "fastrand" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" + +[[package]] +name = "fdeflate" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "field-offset" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" +dependencies = [ + "memoffset", + "rustc_version", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + +[[package]] +name = "flate2" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea5190182e6915eb873ddbc16e23b711b6eb1f9c00a0d0a3a91b5f6228475225" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures-channel" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "262590f4fe6afeb0bc83be1daa64e52657fe185690a958af7f3ad0e92085c5ae" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cd50c473c80f6d7c3670a752354b8e569b1a7cbfdc0419ec88e5edad85e0dc7" + +[[package]] +name = "futures-executor" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6754879cc9f2c66f88c6e5c35344bb0bdb0708b0352b1201815667c7eabc7458" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4577ecaa3c4f96589d473f679a71b596316f6641bc350038b962a5daf0085d7a" + +[[package]] +name = "futures-macro" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d6d3cde68c518367be28956066ddfef33813991b77a55005a69dae04bf3b10b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "futures-sink" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e34418ac499d6305c2fb5ad0ed2f6ac998c5f8ca209b4510f7f94242c647e307" + +[[package]] +name = "futures-task" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b231ed28831efb4a61a08580c4bc233ec56bc009f4cd8f52da2c3cb97df0c109" + +[[package]] +name = "futures-util" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a77a90a256fce34da66415271e30f94ee91c57b04b8a2c042d9cf3220179deaa" +dependencies = [ + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "slab", +] + +[[package]] +name = "gdk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691" +dependencies = [ + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" +dependencies = [ + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", + "once_cell", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gdk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkwayland-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "140071d506d223f7572b9f09b5e155afbd77428cd5cc7af8f2694c41d98dfe69" +dependencies = [ + "gdk-sys", + "glib-sys", + "gobject-sys", + "libc", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkx11" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3caa00e14351bebbc8183b3c36690327eb77c49abc2268dd4bd36b856db3fbfe" +dependencies = [ + "gdk", + "gdkx11-sys", + "gio", + "glib", + "libc", + "x11", +] + +[[package]] +name = "gdkx11-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e7445fe01ac26f11601db260dd8608fe172514eb63b3b5e261ea6b0f4428d" +dependencies = [ + "gdk-sys", + "glib-sys", + "libc", + "system-deps", + "x11", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "libc", + "r-efi 5.3.0", + "wasip2", +] + +[[package]] +name = "getrandom" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" +dependencies = [ + "cfg-if", + "libc", + "r-efi 6.0.0", +] + +[[package]] +name = "gio" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "gio-sys", + "glib", + "libc", + "once_cell", + "pin-project-lite", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "gio-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", + "winapi", +] + +[[package]] +name = "glib" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" +dependencies = [ + "bitflags 2.13.1", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "memchr", + "once_cell", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "glib-macros" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" +dependencies = [ + "heck 0.4.1", + "proc-macro-crate 2.0.2", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "glib-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" +dependencies = [ + "libc", + "system-deps", +] + +[[package]] +name = "glob" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b" + +[[package]] +name = "gobject-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gtk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a" +dependencies = [ + "atk", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "gtk3-macros" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "html5ever" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1054432bae2f14e0061e33d23402fbaa67a921d319d56adc6bcf887ddad1cbc2" +dependencies = [ + "log", + "markup5ever", +] + +[[package]] +name = "http" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca2a8f2913ee65f60facd6a5905613afaa448497a0230cc41ce022d93290bc2c" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9f41fd6a08e4d4ec69df65976da761afd5ad5e58a9d4acb46bd1c953a9e3ff2" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hyper" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d22053281f852e11534f5198498373cbb59295120a20771d90f7ed1897490a72" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "http", + "http-body", + "httparse", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-util" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core 0.62.2", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ico" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e795dff5605e0f04bff85ca41b51a96b83e80b281e96231bcaaf1ac35103371" +dependencies = [ + "byteorder", + "png 0.17.16", +] + +[[package]] +name = "icu_collections" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" +dependencies = [ + "displaydoc", + "potential_utf", + "utf8_iter", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" +dependencies = [ + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" + +[[package]] +name = "icu_properties" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" +dependencies = [ + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" + +[[package]] +name = "icu_provider" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" +dependencies = [ + "displaydoc", + "icu_locale_core", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", + "serde", + "serde_core", +] + +[[package]] +name = "infer" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7" +dependencies = [ + "cfb", +] + +[[package]] +name = "ipnet" +version = "2.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a756c3fac73139e83f14c2d742155dd2b78d3ee56597b419a0579b7bdd6dd78" + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "javascriptcore-rs" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" +dependencies = [ + "bitflags 1.3.2", + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys 0.3.1", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" +dependencies = [ + "jni-sys 0.4.1", +] + +[[package]] +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" +dependencies = [ + "jni-sys-macros", +] + +[[package]] +name = "jni-sys-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" +dependencies = [ + "quote", + "syn 2.0.119", +] + +[[package]] +name = "js-sys" +version = "0.3.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102" +dependencies = [ + "cfg-if", + "futures-util", + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" +dependencies = [ + "jsonptr", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "jsonptr" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "keyboard-types" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" +dependencies = [ + "bitflags 2.13.1", + "serde", + "unicode-segmentation", +] + +[[package]] +name = "libappindicator" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" +dependencies = [ + "glib", + "gtk", + "gtk-sys", + "libappindicator-sys", + "log", +] + +[[package]] +name = "libappindicator-sys" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" +dependencies = [ + "gtk-sys", + "libloading", + "once_cell", +] + +[[package]] +name = "libc" +version = "0.2.189" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" + +[[package]] +name = "libdbus-sys" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "328c4789d42200f1eeec05bd86c9c13c7f091d2ba9a6ea35acdf51f31bc0f043" +dependencies = [ + "pkg-config", +] + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "libredox" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2026a5056764a10b2bf5d56488cba40da507f5493a6a429340e2004d9ed085fa" +dependencies = [ + "libc", +] + +[[package]] +name = "lineup-tauri" +version = "0.1.0" +dependencies = [ + "tauri", + "tauri-build", +] + +[[package]] +name = "litemap" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" + +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" + +[[package]] +name = "markup5ever" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8983d30f2915feeaaab2d6babdd6bc7e9ed1a00b66b5e6d74df19aa9c0e91862" +dependencies = [ + "log", + "tendril", + "web_atoms", +] + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30d65c71f1ce40ab09135ce117d742b9f8a19ff91a41a8b57ed50bc2de59c427" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.61.2", +] + +[[package]] +name = "muda" +version = "0.19.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd04e60bc0b07438a6771710ee1698f98f6ebbc7f89b61264af1563b8aeb878" +dependencies = [ + "crossbeam-channel", + "dpi", + "gtk", + "keyboard-types", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "once_cell", + "png 0.18.1", + "serde", + "thiserror 2.0.19", + "windows-sys 0.61.2", +] + +[[package]] +name = "ndk" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" +dependencies = [ + "bitflags 2.13.1", + "jni-sys 0.3.1", + "log", + "ndk-sys", + "num_enum", + "raw-window-handle", + "thiserror 1.0.69", +] + +[[package]] +name = "ndk-sys" +version = "0.6.0+11769913" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" +dependencies = [ + "jni-sys 0.3.1", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "num-conv" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_enum" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "objc2" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" +dependencies = [ + "objc2-encode", + "objc2-exception-helper", +] + +[[package]] +name = "objc2-app-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" +dependencies = [ + "bitflags 2.13.1", + "block2", + "objc2", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "objc2-cloud-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" +dependencies = [ + "bitflags 2.13.1", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-data" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" +dependencies = [ + "bitflags 2.13.1", + "dispatch2", + "objc2", +] + +[[package]] +name = "objc2-core-graphics" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" +dependencies = [ + "bitflags 2.13.1", + "dispatch2", + "objc2", + "objc2-core-foundation", + "objc2-io-surface", +] + +[[package]] +name = "objc2-core-image" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-location" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca347214e24bc973fc025fd0d36ebb179ff30536ed1f80252706db19ee452009" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-text" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" +dependencies = [ + "bitflags 2.13.1", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", +] + +[[package]] +name = "objc2-encode" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" + +[[package]] +name = "objc2-exception-helper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7a1c5fbb72d7735b076bb47b578523aedc40f3c439bea6dfd595c089d79d98a" +dependencies = [ + "cc", +] + +[[package]] +name = "objc2-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" +dependencies = [ + "bitflags 2.13.1", + "block2", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-io-surface" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" +dependencies = [ + "bitflags 2.13.1", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" +dependencies = [ + "bitflags 2.13.1", + "objc2", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" +dependencies = [ + "bitflags 2.13.1", + "block2", + "objc2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-core-image", + "objc2-core-location", + "objc2-core-text", + "objc2-foundation", + "objc2-quartz-core", + "objc2-user-notifications", +] + +[[package]] +name = "objc2-user-notifications" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9df9128cbbfef73cda168416ccf7f837b62737d748333bfe9ab71c245d76613e" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-web-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f" +dependencies = [ + "bitflags 2.13.1", + "block2", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "pango" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" +dependencies = [ + "gio", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "parking_lot" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-link 0.2.1", +] + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "phf" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" +dependencies = [ + "phf_macros", + "phf_shared", + "serde", +] + +[[package]] +name = "phf_codegen" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1" +dependencies = [ + "phf_generator", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" +dependencies = [ + "fastrand", + "phf_shared", +] + +[[package]] +name = "phf_macros" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "phf_shared" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "pkg-config" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" + +[[package]] +name = "plist" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da1d65da6dd5d1e44199ac0f58712d241c0f439f80adea8924d832384087f85" +dependencies = [ + "base64 0.22.1", + "indexmap 2.14.0", + "quick-xml", + "serde", + "time", +] + +[[package]] +name = "png" +version = "0.17.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "png" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" +dependencies = [ + "bitflags 2.13.1", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "potential_utf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" +dependencies = [ + "zerovec", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" +dependencies = [ + "toml_datetime 0.6.3", + "toml_edit 0.20.2", +] + +[[package]] +name = "proc-macro-crate" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit 0.25.13+spec-1.1.0", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quick-xml" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e660451e55124f798a69a5af3f49ccfbefbd41910eefd25caf2393e1f3473ec1" +dependencies = [ + "memchr", +] + +[[package]] +name = "quote" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "raw-window-handle" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags 2.13.1", +] + +[[package]] +name = "redox_users" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +dependencies = [ + "getrandom 0.2.17", + "libredox", + "thiserror 2.0.19", +] + +[[package]] +name = "ref-cast" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "216e8f773d7923bcba9ceb86a86c93cabb3903a11872fc3f138c49630e50b96d" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9283685feec7d69af75fb0e858d5e7378f33fe4fc699383b2916ab9273e03c" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "regex" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fcfdb36bda0c880c5931cdc7a2bcdc8ba4556847b9d912bca70bc94708711ad" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + +[[package]] +name = "reqwest" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "js-sys", + "log", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "sync_wrapper", + "tokio", + "tokio-util", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", +] + +[[package]] +name = "rustc-hash" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustversion" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schemars" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +dependencies = [ + "dyn-clone", + "indexmap 1.9.3", + "schemars_derive", + "serde", + "serde_json", + "url", + "uuid", +] + +[[package]] +name = "schemars" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "687274d293b6cdc6e73e0fee520bf2049650090d7164f87672d212a3c530cf4a" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.119", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "selectors" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5d9c0c92a92d33f08817311cf3f2c29a3538a8240e94a6a3c622ce652d7e00c" +dependencies = [ + "bitflags 2.13.1", + "cssparser", + "derive_more", + "log", + "new_debug_unreachable", + "phf", + "phf_codegen", + "precomputed-hash", + "rustc-hash", + "servo_arc", + "smallvec", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" +dependencies = [ + "serde", + "serde_core", +] + +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-untagged" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" +dependencies = [ + "erased-serde", + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "serde_core" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "serde_json" +version = "1.0.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_repr" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d3b1629de253c70a0508c3899572da79ca359fdab27c7920ff00406df418906" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_spanned" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" +dependencies = [ + "serde_core", +] + +[[package]] +name = "serde_with" +version = "3.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a5c54c7310e7b8b9577c286d7e399ddd876c3e12b3ed917a8aabc4b96e9e8c" +dependencies = [ + "base64 0.22.1", + "bs58", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.14.0", + "schemars 0.9.0", + "schemars 1.2.2", + "serde_core", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d57bc0c8b9a17920c178daa6bb924850d54a9c97ab45194bb8c17ad66bb660" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "serialize-to-javascript" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04f3666a07a197cdb77cdf306c32be9b7f598d7060d50cfd4d5aa04bfd92f6c5" +dependencies = [ + "serde", + "serde_json", + "serialize-to-javascript-impl", +] + +[[package]] +name = "serialize-to-javascript-impl" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "servo_arc" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "170fb83ab34de17dc69aa7c67482b22218ddb85da56546f9bd6b929e32a05930" +dependencies = [ + "stable_deref_trait", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "simd-adler32" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" + +[[package]] +name = "siphasher" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" + +[[package]] +name = "socket2" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "softbuffer" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac18da81ebbf05109ab275b157c22a653bb3c12cf884450179942f81bcbf6c3" +dependencies = [ + "bytemuck", + "js-sys", + "ndk", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation", + "objc2-quartz-core", + "raw-window-handle", + "redox_syscall", + "tracing", + "wasm-bindgen", + "web-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "soup3" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" +dependencies = [ + "futures-channel", + "gio", + "glib", + "libc", + "soup3-sys", +] + +[[package]] +name = "soup3-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + +[[package]] +name = "string_cache" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901" +dependencies = [ + "new_debug_unreachable", + "parking_lot", + "phf_shared", + "precomputed-hash", +] + +[[package]] +name = "string_cache_codegen" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "swift-rs" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7" +dependencies = [ + "base64 0.21.7", + "serde", + "serde_json", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "system-deps" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +dependencies = [ + "cfg-expr", + "heck 0.5.0", + "pkg-config", + "toml 0.8.2", + "version-compare", +] + +[[package]] +name = "tao" +version = "0.35.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1c93047acf68669466a34690ac58cca7010bd1b201e1ec86f1fd0a75d3dd4a9" +dependencies = [ + "bitflags 2.13.1", + "block2", + "core-foundation", + "core-graphics", + "crossbeam-channel", + "dbus", + "dispatch2", + "dlopen2", + "dpi", + "gdkwayland-sys", + "gdkx11-sys", + "gtk", + "jni", + "libc", + "log", + "ndk", + "ndk-sys", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "once_cell", + "parking_lot", + "percent-encoding", + "raw-window-handle", + "tao-macros", + "unicode-segmentation", + "url", + "windows", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "tao-macros" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f7eeb6d99155545da6150a1795945f16ac9c178deb2a5f2e74d776107bd5849" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + +[[package]] +name = "tauri" +version = "2.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "667b20e2726d572dea2de7370da16e188eb06008faf9a92fab7cdc46791190b5" +dependencies = [ + "anyhow", + "bytes", + "cookie", + "dirs", + "dunce", + "embed_plist", + "getrandom 0.3.4", + "glob", + "gtk", + "heck 0.5.0", + "http", + "jni", + "libc", + "log", + "mime", + "muda", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "objc2-web-kit", + "percent-encoding", + "plist", + "raw-window-handle", + "reqwest", + "serde", + "serde_json", + "serde_repr", + "serialize-to-javascript", + "swift-rs", + "tauri-build", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils", + "thiserror 2.0.19", + "tokio", + "tray-icon", + "url", + "webkit2gtk", + "webview2-com", + "window-vibrancy", + "windows", +] + +[[package]] +name = "tauri-build" +version = "2.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc9ce40b16101cb6ea63d3e221567affd1c3a9205f95d7bc574941a10636b632" +dependencies = [ + "anyhow", + "cargo_toml", + "dirs", + "glob", + "heck 0.5.0", + "json-patch", + "schemars 0.8.22", + "semver", + "serde", + "serde_json", + "tauri-utils", + "tauri-winres", + "walkdir", +] + +[[package]] +name = "tauri-codegen" +version = "2.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08279169ff42f8fc45a1dbc9dcae888893ba95288142e5880c59b93a26d2cfc5" +dependencies = [ + "base64 0.22.1", + "brotli", + "ico", + "json-patch", + "plist", + "png 0.17.16", + "proc-macro2", + "quote", + "semver", + "serde", + "serde_json", + "sha2", + "syn 2.0.119", + "tauri-utils", + "thiserror 2.0.19", + "time", + "url", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-macros" +version = "2.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8b394794f399a421811d06966343e7933fcae92d59f5180b9388d1174497a45" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", + "tauri-codegen", + "tauri-utils", +] + +[[package]] +name = "tauri-runtime" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0b4bc95aed361b0019067d189a1174a603d460d0f6c72606512d59fc9c12ec8" +dependencies = [ + "cookie", + "dpi", + "gtk", + "http", + "jni", + "objc2", + "objc2-ui-kit", + "objc2-web-kit", + "raw-window-handle", + "serde", + "serde_json", + "tauri-utils", + "thiserror 2.0.19", + "url", + "webkit2gtk", + "webview2-com", + "windows", +] + +[[package]] +name = "tauri-runtime-wry" +version = "2.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e6fac707727b7a2f48e4ded90976324267371073edbb415ffb73bb0458d203f" +dependencies = [ + "gtk", + "http", + "jni", + "log", + "objc2", + "objc2-app-kit", + "once_cell", + "percent-encoding", + "raw-window-handle", + "softbuffer", + "tao", + "tauri-runtime", + "tauri-utils", + "url", + "webkit2gtk", + "webview2-com", + "windows", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "2.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e176a18e67764923c4f1ce66f25ae4abe5f688384d5eb1a0fa6c77f3d90f887" +dependencies = [ + "anyhow", + "brotli", + "cargo_metadata", + "ctor", + "dom_query", + "dunce", + "glob", + "http", + "infer", + "json-patch", + "log", + "memchr", + "phf", + "plist", + "proc-macro2", + "quote", + "regex", + "schemars 0.8.22", + "semver", + "serde", + "serde-untagged", + "serde_json", + "serde_with", + "swift-rs", + "thiserror 2.0.19", + "toml 1.1.4+spec-1.1.0", + "url", + "urlpattern", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-winres" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc65d45c68858bfe420dd29e834b5d15dbecf8a07a8a16cf4d532c7b1f69d4b6" +dependencies = [ + "dunce", + "embed-resource", + "toml 1.1.4+spec-1.1.0", +] + +[[package]] +name = "tendril" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fed54709c5b3a53d09bb1c113ea4f5ceafd1e772ddcb0030a82e1d56c087b08" +dependencies = [ + "new_debug_unreachable", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09a43598840e33d5b0331f38c5e30d13bb11c11210a4b58f0d9b18a5a5eefcd9" +dependencies = [ + "thiserror-impl 2.0.19", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43cbfe0cf76104d42a574802844187e84a305e531ed54455f11fbde0f10541cd" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "time" +version = "0.3.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb87b95ec50ddfa440816d227a17b2ccbdda963a316a727fda0fc4334f7d134" +dependencies = [ + "deranged", + "num-conv", + "powerfmt", + "serde_core", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109" + +[[package]] +name = "time-macros" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e689342a48d2ea927c87ea50cabf8594854bf940e9310208848d680d668ed85" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tinystr" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb4ebadaa0af04fab11ae01eb5f9fdb5f9c5b875506e210e71c07873528baa7f" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "202caea871b69668250d242070849eb495be178ed697a3e98aebce5bc81a0bed" +dependencies = [ + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2", + "windows-sys 0.61.2", +] + +[[package]] +name = "tokio-util" +version = "0.7.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "494815d09bf52b5548659851081238f0ca39ff638363907596da739561c62c52" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +dependencies = [ + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "toml_edit 0.20.2", +] + +[[package]] +name = "toml" +version = "0.9.12+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" +dependencies = [ + "indexmap 2.14.0", + "serde_core", + "serde_spanned 1.1.1", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 0.7.15", +] + +[[package]] +name = "toml" +version = "1.1.4+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3aace63f4bbcdfc2c965b059de67119c89c4017a70d633be6c104910f67056f5" +dependencies = [ + "indexmap 2.14.0", + "serde_core", + "serde_spanned 1.1.1", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 1.0.4", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_datetime" +version = "0.7.5+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_datetime" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.14.0", + "toml_datetime 0.6.3", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap 2.14.0", + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.25.13+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6975367e4d2ef766d86af01ffad14b622fecc8d4357a998fbc4deb6e9bacaf9b" +dependencies = [ + "indexmap 2.14.0", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "winnow 1.0.4", +] + +[[package]] +name = "toml_parser" +version = "1.1.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" +dependencies = [ + "winnow 1.0.4", +] + +[[package]] +name = "toml_writer" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2" + +[[package]] +name = "tower" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" +dependencies = [ + "bitflags 2.13.1", + "bytes", + "futures-util", + "http", + "http-body", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", + "url", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", +] + +[[package]] +name = "tray-icon" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "045979e3f037cd18ad1cb2a419dfda133c5c29c9f3453370079f2255d46c257e" +dependencies = [ + "crossbeam-channel", + "dirs", + "libappindicator", + "muda", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation", + "once_cell", + "png 0.18.1", + "serde", + "thiserror 2.0.19", + "windows-sys 0.61.2", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + +[[package]] +name = "typenum" +version = "1.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" + +[[package]] +name = "unic-char-property" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" +dependencies = [ + "unic-char-range", +] + +[[package]] +name = "unic-char-range" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" + +[[package]] +name = "unic-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" + +[[package]] +name = "unic-ucd-ident" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" +dependencies = [ + "unic-char-property", + "unic-char-range", + "unic-ucd-version", +] + +[[package]] +name = "unic-ucd-version" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" +dependencies = [ + "unic-common", +] + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-segmentation" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" + +[[package]] +name = "url" +version = "2.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", + "serde_derive", +] + +[[package]] +name = "urlpattern" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d" +dependencies = [ + "regex", + "serde", + "unic-ucd-ident", + "url", +] + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "uuid" +version = "1.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf3923a6f5c4c6382e0b653c4117f48d631ea17f38ed86e2a828e6f7412f5239" +dependencies = [ + "getrandom 0.4.3", + "js-sys", + "serde_core", + "wasm-bindgen", +] + +[[package]] +name = "version-compare" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "vswhom" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" +dependencies = [ + "libc", + "vswhom-sys", +] + +[[package]] +name = "vswhom-sys" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb067e4cbd1ff067d1df46c9194b5de0e98efd2810bbc95c5d5e5f25a3231150" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasip2" +version = "1.0.4+wasi-0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c62df1340f32221cb9c54d6a27b030e3dba64361d4a95bed55f9aacb44da291d" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 2.0.119", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-streams" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8622dcb61c0bcc9fffa6938bed81210af2da9a7e4a1a834b2e37a59b6dfb6141" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web_atoms" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "075474b12bcb3d2e3d4546580e9de478eeeead668a1761e2a8860c836b7ef297" +dependencies = [ + "phf", + "phf_codegen", + "string_cache", + "string_cache_codegen", +] + +[[package]] +name = "webkit2gtk" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1027150013530fb2eaf806408df88461ae4815a45c541c8975e61d6f2fc4793" +dependencies = [ + "bitflags 1.3.2", + "cairo-rs", + "gdk", + "gdk-sys", + "gio", + "gio-sys", + "glib", + "glib-sys", + "gobject-sys", + "gtk", + "gtk-sys", + "javascriptcore-rs", + "libc", + "once_cell", + "soup3", + "webkit2gtk-sys", +] + +[[package]] +name = "webkit2gtk-sys" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "916a5f65c2ef0dfe12fff695960a2ec3d4565359fdbb2e9943c974e06c734ea5" +dependencies = [ + "bitflags 1.3.2", + "cairo-sys-rs", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pkg-config", + "soup3-sys", + "system-deps", +] + +[[package]] +name = "webview2-com" +version = "0.38.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7130243a7a5b33c54a444e54842e6a9e133de08b5ad7b5861cd8ed9a6a5bc96a" +dependencies = [ + "webview2-com-macros", + "webview2-com-sys", + "windows", + "windows-core 0.61.2", + "windows-implement", + "windows-interface", +] + +[[package]] +name = "webview2-com-macros" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a921c1b6914c367b2b823cd4cde6f96beec77d30a939c8199bb377cf9b9b54" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "webview2-com-sys" +version = "0.38.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "381336cfffd772377d291702245447a5251a2ffa5bad679c99e61bc48bacbf9c" +dependencies = [ + "thiserror 2.0.19", + "windows", + "windows-core 0.61.2", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "window-vibrancy" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" +dependencies = [ + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "raw-window-handle", + "windows-sys 0.59.0", + "windows-version", +] + +[[package]] +name = "windows" +version = "0.61.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" +dependencies = [ + "windows-collections", + "windows-core 0.61.2", + "windows-future", + "windows-link 0.1.3", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" +dependencies = [ + "windows-core 0.61.2", +] + +[[package]] +name = "windows-core" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", +] + +[[package]] +name = "windows-future" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", + "windows-threading", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "windows-link" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-numerics" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-strings" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-threading" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-version" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4060a1da109b9d0326b7262c8e12c84df67cc0dbc9e33cf49e01ccc2eb63631" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" + +[[package]] +name = "winnow" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.55.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97" +dependencies = [ + "cfg-if", + "windows-sys 0.59.0", +] + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[package]] +name = "writeable" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" + +[[package]] +name = "wry" +version = "0.55.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "186f9871daa55fd9c016578b810d149de58367113db7fb72b462d2323ce19514" +dependencies = [ + "base64 0.22.1", + "block2", + "cookie", + "crossbeam-channel", + "dirs", + "dom_query", + "dpi", + "dunce", + "gdkx11", + "gtk", + "http", + "javascriptcore-rs", + "jni", + "libc", + "ndk", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "objc2-ui-kit", + "objc2-web-kit", + "once_cell", + "percent-encoding", + "raw-window-handle", + "sha2", + "soup3", + "tao-macros", + "thiserror 2.0.19", + "url", + "webkit2gtk", + "webkit2gtk-sys", + "webview2-com", + "windows", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "x11" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "yoke" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5" +dependencies = [ + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", + "synstructure", +] + +[[package]] +name = "zerofrom" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", + "synstructure", +] + +[[package]] +name = "zerotrie" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" diff --git a/tauri/src-tauri/Cargo.toml b/tauri/src-tauri/Cargo.toml new file mode 100644 index 0000000..11d043d --- /dev/null +++ b/tauri/src-tauri/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "lineup-tauri" +version = "0.1.0" +description = "LineUp Tauri Reference Host" +authors = ["LineUp"] +edition = "2021" + +[lib] +name = "lineup_tauri_lib" +crate-type = ["lib", "cdylib", "staticlib"] + +[build-dependencies] +tauri-build = { version = "2", features = [] } + +[dependencies] +tauri = { version = "2", features = [] } diff --git a/tauri/src-tauri/Info.plist b/tauri/src-tauri/Info.plist new file mode 100644 index 0000000..d6df916 --- /dev/null +++ b/tauri/src-tauri/Info.plist @@ -0,0 +1,17 @@ + + + + + + NSAppTransportSecurity + + NSAllowsArbitraryLoadsInWebContent + + + + diff --git a/tauri/src-tauri/build.rs b/tauri/src-tauri/build.rs new file mode 100644 index 0000000..d860e1e --- /dev/null +++ b/tauri/src-tauri/build.rs @@ -0,0 +1,3 @@ +fn main() { + tauri_build::build() +} diff --git a/tauri/src-tauri/capabilities/default.json b/tauri/src-tauri/capabilities/default.json new file mode 100644 index 0000000..f0f224f --- /dev/null +++ b/tauri/src-tauri/capabilities/default.json @@ -0,0 +1,7 @@ +{ + "$schema": "../gen/schemas/desktop-schema.json", + "identifier": "default", + "description": "Capabilities for the trusted LineUp host frontend.", + "windows": ["main"], + "permissions": ["core:default"] +} diff --git a/tauri/src-tauri/gen/schemas/acl-manifests.json b/tauri/src-tauri/gen/schemas/acl-manifests.json new file mode 100644 index 0000000..0eebfc4 --- /dev/null +++ b/tauri/src-tauri/gen/schemas/acl-manifests.json @@ -0,0 +1 @@ +{"core":{"default_permission":{"identifier":"default","description":"Default core plugins set.","permissions":["core:path:default","core:event:default","core:window:default","core:webview:default","core:app:default","core:image:default","core:resources:default","core:menu:default","core:tray:default"]},"permissions":{},"permission_sets":{},"global_scope_schema":null},"core:app":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-version","allow-name","allow-tauri-version","allow-identifier","allow-bundle-type","allow-register-listener","allow-remove-listener","allow-supports-multiple-windows"]},"permissions":{"allow-app-hide":{"identifier":"allow-app-hide","description":"Enables the app_hide command without any pre-configured scope.","commands":{"allow":["app_hide"],"deny":[]}},"allow-app-show":{"identifier":"allow-app-show","description":"Enables the app_show command without any pre-configured scope.","commands":{"allow":["app_show"],"deny":[]}},"allow-bundle-type":{"identifier":"allow-bundle-type","description":"Enables the bundle_type command without any pre-configured scope.","commands":{"allow":["bundle_type"],"deny":[]}},"allow-default-window-icon":{"identifier":"allow-default-window-icon","description":"Enables the default_window_icon command without any pre-configured scope.","commands":{"allow":["default_window_icon"],"deny":[]}},"allow-fetch-data-store-identifiers":{"identifier":"allow-fetch-data-store-identifiers","description":"Enables the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":["fetch_data_store_identifiers"],"deny":[]}},"allow-identifier":{"identifier":"allow-identifier","description":"Enables the identifier command without any pre-configured scope.","commands":{"allow":["identifier"],"deny":[]}},"allow-name":{"identifier":"allow-name","description":"Enables the name command without any pre-configured scope.","commands":{"allow":["name"],"deny":[]}},"allow-register-listener":{"identifier":"allow-register-listener","description":"Enables the register_listener command without any pre-configured scope.","commands":{"allow":["register_listener"],"deny":[]}},"allow-remove-data-store":{"identifier":"allow-remove-data-store","description":"Enables the remove_data_store command without any pre-configured scope.","commands":{"allow":["remove_data_store"],"deny":[]}},"allow-remove-listener":{"identifier":"allow-remove-listener","description":"Enables the remove_listener command without any pre-configured scope.","commands":{"allow":["remove_listener"],"deny":[]}},"allow-set-app-theme":{"identifier":"allow-set-app-theme","description":"Enables the set_app_theme command without any pre-configured scope.","commands":{"allow":["set_app_theme"],"deny":[]}},"allow-set-dock-visibility":{"identifier":"allow-set-dock-visibility","description":"Enables the set_dock_visibility command without any pre-configured scope.","commands":{"allow":["set_dock_visibility"],"deny":[]}},"allow-supports-multiple-windows":{"identifier":"allow-supports-multiple-windows","description":"Enables the supports_multiple_windows command without any pre-configured scope.","commands":{"allow":["supports_multiple_windows"],"deny":[]}},"allow-tauri-version":{"identifier":"allow-tauri-version","description":"Enables the tauri_version command without any pre-configured scope.","commands":{"allow":["tauri_version"],"deny":[]}},"allow-version":{"identifier":"allow-version","description":"Enables the version command without any pre-configured scope.","commands":{"allow":["version"],"deny":[]}},"deny-app-hide":{"identifier":"deny-app-hide","description":"Denies the app_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["app_hide"]}},"deny-app-show":{"identifier":"deny-app-show","description":"Denies the app_show command without any pre-configured scope.","commands":{"allow":[],"deny":["app_show"]}},"deny-bundle-type":{"identifier":"deny-bundle-type","description":"Denies the bundle_type command without any pre-configured scope.","commands":{"allow":[],"deny":["bundle_type"]}},"deny-default-window-icon":{"identifier":"deny-default-window-icon","description":"Denies the default_window_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["default_window_icon"]}},"deny-fetch-data-store-identifiers":{"identifier":"deny-fetch-data-store-identifiers","description":"Denies the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_data_store_identifiers"]}},"deny-identifier":{"identifier":"deny-identifier","description":"Denies the identifier command without any pre-configured scope.","commands":{"allow":[],"deny":["identifier"]}},"deny-name":{"identifier":"deny-name","description":"Denies the name command without any pre-configured scope.","commands":{"allow":[],"deny":["name"]}},"deny-register-listener":{"identifier":"deny-register-listener","description":"Denies the register_listener command without any pre-configured scope.","commands":{"allow":[],"deny":["register_listener"]}},"deny-remove-data-store":{"identifier":"deny-remove-data-store","description":"Denies the remove_data_store command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_data_store"]}},"deny-remove-listener":{"identifier":"deny-remove-listener","description":"Denies the remove_listener command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_listener"]}},"deny-set-app-theme":{"identifier":"deny-set-app-theme","description":"Denies the set_app_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_app_theme"]}},"deny-set-dock-visibility":{"identifier":"deny-set-dock-visibility","description":"Denies the set_dock_visibility command without any pre-configured scope.","commands":{"allow":[],"deny":["set_dock_visibility"]}},"deny-supports-multiple-windows":{"identifier":"deny-supports-multiple-windows","description":"Denies the supports_multiple_windows command without any pre-configured scope.","commands":{"allow":[],"deny":["supports_multiple_windows"]}},"deny-tauri-version":{"identifier":"deny-tauri-version","description":"Denies the tauri_version command without any pre-configured scope.","commands":{"allow":[],"deny":["tauri_version"]}},"deny-version":{"identifier":"deny-version","description":"Denies the version command without any pre-configured scope.","commands":{"allow":[],"deny":["version"]}}},"permission_sets":{},"global_scope_schema":null},"core:event":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-listen","allow-unlisten","allow-emit","allow-emit-to"]},"permissions":{"allow-emit":{"identifier":"allow-emit","description":"Enables the emit command without any pre-configured scope.","commands":{"allow":["emit"],"deny":[]}},"allow-emit-to":{"identifier":"allow-emit-to","description":"Enables the emit_to command without any pre-configured scope.","commands":{"allow":["emit_to"],"deny":[]}},"allow-listen":{"identifier":"allow-listen","description":"Enables the listen command without any pre-configured scope.","commands":{"allow":["listen"],"deny":[]}},"allow-unlisten":{"identifier":"allow-unlisten","description":"Enables the unlisten command without any pre-configured scope.","commands":{"allow":["unlisten"],"deny":[]}},"deny-emit":{"identifier":"deny-emit","description":"Denies the emit command without any pre-configured scope.","commands":{"allow":[],"deny":["emit"]}},"deny-emit-to":{"identifier":"deny-emit-to","description":"Denies the emit_to command without any pre-configured scope.","commands":{"allow":[],"deny":["emit_to"]}},"deny-listen":{"identifier":"deny-listen","description":"Denies the listen command without any pre-configured scope.","commands":{"allow":[],"deny":["listen"]}},"deny-unlisten":{"identifier":"deny-unlisten","description":"Denies the unlisten command without any pre-configured scope.","commands":{"allow":[],"deny":["unlisten"]}}},"permission_sets":{},"global_scope_schema":null},"core:image":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-from-bytes","allow-from-path","allow-rgba","allow-size"]},"permissions":{"allow-from-bytes":{"identifier":"allow-from-bytes","description":"Enables the from_bytes command without any pre-configured scope.","commands":{"allow":["from_bytes"],"deny":[]}},"allow-from-path":{"identifier":"allow-from-path","description":"Enables the from_path command without any pre-configured scope.","commands":{"allow":["from_path"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-rgba":{"identifier":"allow-rgba","description":"Enables the rgba command without any pre-configured scope.","commands":{"allow":["rgba"],"deny":[]}},"allow-size":{"identifier":"allow-size","description":"Enables the size command without any pre-configured scope.","commands":{"allow":["size"],"deny":[]}},"deny-from-bytes":{"identifier":"deny-from-bytes","description":"Denies the from_bytes command without any pre-configured scope.","commands":{"allow":[],"deny":["from_bytes"]}},"deny-from-path":{"identifier":"deny-from-path","description":"Denies the from_path command without any pre-configured scope.","commands":{"allow":[],"deny":["from_path"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-rgba":{"identifier":"deny-rgba","description":"Denies the rgba command without any pre-configured scope.","commands":{"allow":[],"deny":["rgba"]}},"deny-size":{"identifier":"deny-size","description":"Denies the size command without any pre-configured scope.","commands":{"allow":[],"deny":["size"]}}},"permission_sets":{},"global_scope_schema":null},"core:menu":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-append","allow-prepend","allow-insert","allow-remove","allow-remove-at","allow-items","allow-get","allow-popup","allow-create-default","allow-set-as-app-menu","allow-set-as-window-menu","allow-text","allow-set-text","allow-is-enabled","allow-set-enabled","allow-set-accelerator","allow-set-as-windows-menu-for-nsapp","allow-set-as-help-menu-for-nsapp","allow-is-checked","allow-set-checked","allow-set-icon"]},"permissions":{"allow-append":{"identifier":"allow-append","description":"Enables the append command without any pre-configured scope.","commands":{"allow":["append"],"deny":[]}},"allow-create-default":{"identifier":"allow-create-default","description":"Enables the create_default command without any pre-configured scope.","commands":{"allow":["create_default"],"deny":[]}},"allow-get":{"identifier":"allow-get","description":"Enables the get command without any pre-configured scope.","commands":{"allow":["get"],"deny":[]}},"allow-insert":{"identifier":"allow-insert","description":"Enables the insert command without any pre-configured scope.","commands":{"allow":["insert"],"deny":[]}},"allow-is-checked":{"identifier":"allow-is-checked","description":"Enables the is_checked command without any pre-configured scope.","commands":{"allow":["is_checked"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-items":{"identifier":"allow-items","description":"Enables the items command without any pre-configured scope.","commands":{"allow":["items"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-popup":{"identifier":"allow-popup","description":"Enables the popup command without any pre-configured scope.","commands":{"allow":["popup"],"deny":[]}},"allow-prepend":{"identifier":"allow-prepend","description":"Enables the prepend command without any pre-configured scope.","commands":{"allow":["prepend"],"deny":[]}},"allow-remove":{"identifier":"allow-remove","description":"Enables the remove command without any pre-configured scope.","commands":{"allow":["remove"],"deny":[]}},"allow-remove-at":{"identifier":"allow-remove-at","description":"Enables the remove_at command without any pre-configured scope.","commands":{"allow":["remove_at"],"deny":[]}},"allow-set-accelerator":{"identifier":"allow-set-accelerator","description":"Enables the set_accelerator command without any pre-configured scope.","commands":{"allow":["set_accelerator"],"deny":[]}},"allow-set-as-app-menu":{"identifier":"allow-set-as-app-menu","description":"Enables the set_as_app_menu command without any pre-configured scope.","commands":{"allow":["set_as_app_menu"],"deny":[]}},"allow-set-as-help-menu-for-nsapp":{"identifier":"allow-set-as-help-menu-for-nsapp","description":"Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_help_menu_for_nsapp"],"deny":[]}},"allow-set-as-window-menu":{"identifier":"allow-set-as-window-menu","description":"Enables the set_as_window_menu command without any pre-configured scope.","commands":{"allow":["set_as_window_menu"],"deny":[]}},"allow-set-as-windows-menu-for-nsapp":{"identifier":"allow-set-as-windows-menu-for-nsapp","description":"Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_windows_menu_for_nsapp"],"deny":[]}},"allow-set-checked":{"identifier":"allow-set-checked","description":"Enables the set_checked command without any pre-configured scope.","commands":{"allow":["set_checked"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-text":{"identifier":"allow-set-text","description":"Enables the set_text command without any pre-configured scope.","commands":{"allow":["set_text"],"deny":[]}},"allow-text":{"identifier":"allow-text","description":"Enables the text command without any pre-configured scope.","commands":{"allow":["text"],"deny":[]}},"deny-append":{"identifier":"deny-append","description":"Denies the append command without any pre-configured scope.","commands":{"allow":[],"deny":["append"]}},"deny-create-default":{"identifier":"deny-create-default","description":"Denies the create_default command without any pre-configured scope.","commands":{"allow":[],"deny":["create_default"]}},"deny-get":{"identifier":"deny-get","description":"Denies the get command without any pre-configured scope.","commands":{"allow":[],"deny":["get"]}},"deny-insert":{"identifier":"deny-insert","description":"Denies the insert command without any pre-configured scope.","commands":{"allow":[],"deny":["insert"]}},"deny-is-checked":{"identifier":"deny-is-checked","description":"Denies the is_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["is_checked"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-items":{"identifier":"deny-items","description":"Denies the items command without any pre-configured scope.","commands":{"allow":[],"deny":["items"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-popup":{"identifier":"deny-popup","description":"Denies the popup command without any pre-configured scope.","commands":{"allow":[],"deny":["popup"]}},"deny-prepend":{"identifier":"deny-prepend","description":"Denies the prepend command without any pre-configured scope.","commands":{"allow":[],"deny":["prepend"]}},"deny-remove":{"identifier":"deny-remove","description":"Denies the remove command without any pre-configured scope.","commands":{"allow":[],"deny":["remove"]}},"deny-remove-at":{"identifier":"deny-remove-at","description":"Denies the remove_at command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_at"]}},"deny-set-accelerator":{"identifier":"deny-set-accelerator","description":"Denies the set_accelerator command without any pre-configured scope.","commands":{"allow":[],"deny":["set_accelerator"]}},"deny-set-as-app-menu":{"identifier":"deny-set-as-app-menu","description":"Denies the set_as_app_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_app_menu"]}},"deny-set-as-help-menu-for-nsapp":{"identifier":"deny-set-as-help-menu-for-nsapp","description":"Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_help_menu_for_nsapp"]}},"deny-set-as-window-menu":{"identifier":"deny-set-as-window-menu","description":"Denies the set_as_window_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_window_menu"]}},"deny-set-as-windows-menu-for-nsapp":{"identifier":"deny-set-as-windows-menu-for-nsapp","description":"Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_windows_menu_for_nsapp"]}},"deny-set-checked":{"identifier":"deny-set-checked","description":"Denies the set_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["set_checked"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-text":{"identifier":"deny-set-text","description":"Denies the set_text command without any pre-configured scope.","commands":{"allow":[],"deny":["set_text"]}},"deny-text":{"identifier":"deny-text","description":"Denies the text command without any pre-configured scope.","commands":{"allow":[],"deny":["text"]}}},"permission_sets":{},"global_scope_schema":null},"core:path":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-resolve-directory","allow-resolve","allow-normalize","allow-join","allow-dirname","allow-extname","allow-basename","allow-is-absolute"]},"permissions":{"allow-basename":{"identifier":"allow-basename","description":"Enables the basename command without any pre-configured scope.","commands":{"allow":["basename"],"deny":[]}},"allow-dirname":{"identifier":"allow-dirname","description":"Enables the dirname command without any pre-configured scope.","commands":{"allow":["dirname"],"deny":[]}},"allow-extname":{"identifier":"allow-extname","description":"Enables the extname command without any pre-configured scope.","commands":{"allow":["extname"],"deny":[]}},"allow-is-absolute":{"identifier":"allow-is-absolute","description":"Enables the is_absolute command without any pre-configured scope.","commands":{"allow":["is_absolute"],"deny":[]}},"allow-join":{"identifier":"allow-join","description":"Enables the join command without any pre-configured scope.","commands":{"allow":["join"],"deny":[]}},"allow-normalize":{"identifier":"allow-normalize","description":"Enables the normalize command without any pre-configured scope.","commands":{"allow":["normalize"],"deny":[]}},"allow-resolve":{"identifier":"allow-resolve","description":"Enables the resolve command without any pre-configured scope.","commands":{"allow":["resolve"],"deny":[]}},"allow-resolve-directory":{"identifier":"allow-resolve-directory","description":"Enables the resolve_directory command without any pre-configured scope.","commands":{"allow":["resolve_directory"],"deny":[]}},"deny-basename":{"identifier":"deny-basename","description":"Denies the basename command without any pre-configured scope.","commands":{"allow":[],"deny":["basename"]}},"deny-dirname":{"identifier":"deny-dirname","description":"Denies the dirname command without any pre-configured scope.","commands":{"allow":[],"deny":["dirname"]}},"deny-extname":{"identifier":"deny-extname","description":"Denies the extname command without any pre-configured scope.","commands":{"allow":[],"deny":["extname"]}},"deny-is-absolute":{"identifier":"deny-is-absolute","description":"Denies the is_absolute command without any pre-configured scope.","commands":{"allow":[],"deny":["is_absolute"]}},"deny-join":{"identifier":"deny-join","description":"Denies the join command without any pre-configured scope.","commands":{"allow":[],"deny":["join"]}},"deny-normalize":{"identifier":"deny-normalize","description":"Denies the normalize command without any pre-configured scope.","commands":{"allow":[],"deny":["normalize"]}},"deny-resolve":{"identifier":"deny-resolve","description":"Denies the resolve command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve"]}},"deny-resolve-directory":{"identifier":"deny-resolve-directory","description":"Denies the resolve_directory command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve_directory"]}}},"permission_sets":{},"global_scope_schema":null},"core:resources":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-close"]},"permissions":{"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}}},"permission_sets":{},"global_scope_schema":null},"core:tray":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-get-by-id","allow-remove-by-id","allow-set-icon","allow-set-menu","allow-set-tooltip","allow-set-title","allow-set-visible","allow-set-temp-dir-path","allow-set-icon-as-template","allow-set-icon-with-as-template","allow-set-show-menu-on-left-click"]},"permissions":{"allow-get-by-id":{"identifier":"allow-get-by-id","description":"Enables the get_by_id command without any pre-configured scope.","commands":{"allow":["get_by_id"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-remove-by-id":{"identifier":"allow-remove-by-id","description":"Enables the remove_by_id command without any pre-configured scope.","commands":{"allow":["remove_by_id"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-icon-as-template":{"identifier":"allow-set-icon-as-template","description":"Enables the set_icon_as_template command without any pre-configured scope.","commands":{"allow":["set_icon_as_template"],"deny":[]}},"allow-set-icon-with-as-template":{"identifier":"allow-set-icon-with-as-template","description":"Enables the set_icon_with_as_template command without any pre-configured scope.","commands":{"allow":["set_icon_with_as_template"],"deny":[]}},"allow-set-menu":{"identifier":"allow-set-menu","description":"Enables the set_menu command without any pre-configured scope.","commands":{"allow":["set_menu"],"deny":[]}},"allow-set-show-menu-on-left-click":{"identifier":"allow-set-show-menu-on-left-click","description":"Enables the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":["set_show_menu_on_left_click"],"deny":[]}},"allow-set-temp-dir-path":{"identifier":"allow-set-temp-dir-path","description":"Enables the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":["set_temp_dir_path"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-tooltip":{"identifier":"allow-set-tooltip","description":"Enables the set_tooltip command without any pre-configured scope.","commands":{"allow":["set_tooltip"],"deny":[]}},"allow-set-visible":{"identifier":"allow-set-visible","description":"Enables the set_visible command without any pre-configured scope.","commands":{"allow":["set_visible"],"deny":[]}},"deny-get-by-id":{"identifier":"deny-get-by-id","description":"Denies the get_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["get_by_id"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-remove-by-id":{"identifier":"deny-remove-by-id","description":"Denies the remove_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_by_id"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-icon-as-template":{"identifier":"deny-set-icon-as-template","description":"Denies the set_icon_as_template command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon_as_template"]}},"deny-set-icon-with-as-template":{"identifier":"deny-set-icon-with-as-template","description":"Denies the set_icon_with_as_template command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon_with_as_template"]}},"deny-set-menu":{"identifier":"deny-set-menu","description":"Denies the set_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_menu"]}},"deny-set-show-menu-on-left-click":{"identifier":"deny-set-show-menu-on-left-click","description":"Denies the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":[],"deny":["set_show_menu_on_left_click"]}},"deny-set-temp-dir-path":{"identifier":"deny-set-temp-dir-path","description":"Denies the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":[],"deny":["set_temp_dir_path"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-tooltip":{"identifier":"deny-set-tooltip","description":"Denies the set_tooltip command without any pre-configured scope.","commands":{"allow":[],"deny":["set_tooltip"]}},"deny-set-visible":{"identifier":"deny-set-visible","description":"Denies the set_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible"]}}},"permission_sets":{},"global_scope_schema":null},"core:webview":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-webviews","allow-webview-position","allow-webview-size","allow-internal-toggle-devtools"]},"permissions":{"allow-clear-all-browsing-data":{"identifier":"allow-clear-all-browsing-data","description":"Enables the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":["clear_all_browsing_data"],"deny":[]}},"allow-create-webview":{"identifier":"allow-create-webview","description":"Enables the create_webview command without any pre-configured scope.","commands":{"allow":["create_webview"],"deny":[]}},"allow-create-webview-window":{"identifier":"allow-create-webview-window","description":"Enables the create_webview_window command without any pre-configured scope.","commands":{"allow":["create_webview_window"],"deny":[]}},"allow-get-all-webviews":{"identifier":"allow-get-all-webviews","description":"Enables the get_all_webviews command without any pre-configured scope.","commands":{"allow":["get_all_webviews"],"deny":[]}},"allow-internal-toggle-devtools":{"identifier":"allow-internal-toggle-devtools","description":"Enables the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":["internal_toggle_devtools"],"deny":[]}},"allow-print":{"identifier":"allow-print","description":"Enables the print command without any pre-configured scope.","commands":{"allow":["print"],"deny":[]}},"allow-reparent":{"identifier":"allow-reparent","description":"Enables the reparent command without any pre-configured scope.","commands":{"allow":["reparent"],"deny":[]}},"allow-set-webview-auto-resize":{"identifier":"allow-set-webview-auto-resize","description":"Enables the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":["set_webview_auto_resize"],"deny":[]}},"allow-set-webview-background-color":{"identifier":"allow-set-webview-background-color","description":"Enables the set_webview_background_color command without any pre-configured scope.","commands":{"allow":["set_webview_background_color"],"deny":[]}},"allow-set-webview-focus":{"identifier":"allow-set-webview-focus","description":"Enables the set_webview_focus command without any pre-configured scope.","commands":{"allow":["set_webview_focus"],"deny":[]}},"allow-set-webview-position":{"identifier":"allow-set-webview-position","description":"Enables the set_webview_position command without any pre-configured scope.","commands":{"allow":["set_webview_position"],"deny":[]}},"allow-set-webview-size":{"identifier":"allow-set-webview-size","description":"Enables the set_webview_size command without any pre-configured scope.","commands":{"allow":["set_webview_size"],"deny":[]}},"allow-set-webview-zoom":{"identifier":"allow-set-webview-zoom","description":"Enables the set_webview_zoom command without any pre-configured scope.","commands":{"allow":["set_webview_zoom"],"deny":[]}},"allow-webview-close":{"identifier":"allow-webview-close","description":"Enables the webview_close command without any pre-configured scope.","commands":{"allow":["webview_close"],"deny":[]}},"allow-webview-hide":{"identifier":"allow-webview-hide","description":"Enables the webview_hide command without any pre-configured scope.","commands":{"allow":["webview_hide"],"deny":[]}},"allow-webview-position":{"identifier":"allow-webview-position","description":"Enables the webview_position command without any pre-configured scope.","commands":{"allow":["webview_position"],"deny":[]}},"allow-webview-show":{"identifier":"allow-webview-show","description":"Enables the webview_show command without any pre-configured scope.","commands":{"allow":["webview_show"],"deny":[]}},"allow-webview-size":{"identifier":"allow-webview-size","description":"Enables the webview_size command without any pre-configured scope.","commands":{"allow":["webview_size"],"deny":[]}},"deny-clear-all-browsing-data":{"identifier":"deny-clear-all-browsing-data","description":"Denies the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":[],"deny":["clear_all_browsing_data"]}},"deny-create-webview":{"identifier":"deny-create-webview","description":"Denies the create_webview command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview"]}},"deny-create-webview-window":{"identifier":"deny-create-webview-window","description":"Denies the create_webview_window command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview_window"]}},"deny-get-all-webviews":{"identifier":"deny-get-all-webviews","description":"Denies the get_all_webviews command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_webviews"]}},"deny-internal-toggle-devtools":{"identifier":"deny-internal-toggle-devtools","description":"Denies the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_devtools"]}},"deny-print":{"identifier":"deny-print","description":"Denies the print command without any pre-configured scope.","commands":{"allow":[],"deny":["print"]}},"deny-reparent":{"identifier":"deny-reparent","description":"Denies the reparent command without any pre-configured scope.","commands":{"allow":[],"deny":["reparent"]}},"deny-set-webview-auto-resize":{"identifier":"deny-set-webview-auto-resize","description":"Denies the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_auto_resize"]}},"deny-set-webview-background-color":{"identifier":"deny-set-webview-background-color","description":"Denies the set_webview_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_background_color"]}},"deny-set-webview-focus":{"identifier":"deny-set-webview-focus","description":"Denies the set_webview_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_focus"]}},"deny-set-webview-position":{"identifier":"deny-set-webview-position","description":"Denies the set_webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_position"]}},"deny-set-webview-size":{"identifier":"deny-set-webview-size","description":"Denies the set_webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_size"]}},"deny-set-webview-zoom":{"identifier":"deny-set-webview-zoom","description":"Denies the set_webview_zoom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_zoom"]}},"deny-webview-close":{"identifier":"deny-webview-close","description":"Denies the webview_close command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_close"]}},"deny-webview-hide":{"identifier":"deny-webview-hide","description":"Denies the webview_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_hide"]}},"deny-webview-position":{"identifier":"deny-webview-position","description":"Denies the webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_position"]}},"deny-webview-show":{"identifier":"deny-webview-show","description":"Denies the webview_show command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_show"]}},"deny-webview-size":{"identifier":"deny-webview-size","description":"Denies the webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_size"]}}},"permission_sets":{},"global_scope_schema":null},"core:window":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-windows","allow-scale-factor","allow-inner-position","allow-outer-position","allow-inner-size","allow-outer-size","allow-is-fullscreen","allow-is-minimized","allow-is-maximized","allow-is-focused","allow-is-decorated","allow-is-resizable","allow-is-maximizable","allow-is-minimizable","allow-is-closable","allow-is-visible","allow-is-enabled","allow-title","allow-current-monitor","allow-primary-monitor","allow-monitor-from-point","allow-available-monitors","allow-cursor-position","allow-theme","allow-is-always-on-top","allow-activity-name","allow-scene-identifier","allow-internal-toggle-maximize"]},"permissions":{"allow-activity-name":{"identifier":"allow-activity-name","description":"Enables the activity_name command without any pre-configured scope.","commands":{"allow":["activity_name"],"deny":[]}},"allow-available-monitors":{"identifier":"allow-available-monitors","description":"Enables the available_monitors command without any pre-configured scope.","commands":{"allow":["available_monitors"],"deny":[]}},"allow-center":{"identifier":"allow-center","description":"Enables the center command without any pre-configured scope.","commands":{"allow":["center"],"deny":[]}},"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"allow-create":{"identifier":"allow-create","description":"Enables the create command without any pre-configured scope.","commands":{"allow":["create"],"deny":[]}},"allow-current-monitor":{"identifier":"allow-current-monitor","description":"Enables the current_monitor command without any pre-configured scope.","commands":{"allow":["current_monitor"],"deny":[]}},"allow-cursor-position":{"identifier":"allow-cursor-position","description":"Enables the cursor_position command without any pre-configured scope.","commands":{"allow":["cursor_position"],"deny":[]}},"allow-destroy":{"identifier":"allow-destroy","description":"Enables the destroy command without any pre-configured scope.","commands":{"allow":["destroy"],"deny":[]}},"allow-get-all-windows":{"identifier":"allow-get-all-windows","description":"Enables the get_all_windows command without any pre-configured scope.","commands":{"allow":["get_all_windows"],"deny":[]}},"allow-hide":{"identifier":"allow-hide","description":"Enables the hide command without any pre-configured scope.","commands":{"allow":["hide"],"deny":[]}},"allow-inner-position":{"identifier":"allow-inner-position","description":"Enables the inner_position command without any pre-configured scope.","commands":{"allow":["inner_position"],"deny":[]}},"allow-inner-size":{"identifier":"allow-inner-size","description":"Enables the inner_size command without any pre-configured scope.","commands":{"allow":["inner_size"],"deny":[]}},"allow-internal-toggle-maximize":{"identifier":"allow-internal-toggle-maximize","description":"Enables the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":["internal_toggle_maximize"],"deny":[]}},"allow-is-always-on-top":{"identifier":"allow-is-always-on-top","description":"Enables the is_always_on_top command without any pre-configured scope.","commands":{"allow":["is_always_on_top"],"deny":[]}},"allow-is-closable":{"identifier":"allow-is-closable","description":"Enables the is_closable command without any pre-configured scope.","commands":{"allow":["is_closable"],"deny":[]}},"allow-is-decorated":{"identifier":"allow-is-decorated","description":"Enables the is_decorated command without any pre-configured scope.","commands":{"allow":["is_decorated"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-is-focused":{"identifier":"allow-is-focused","description":"Enables the is_focused command without any pre-configured scope.","commands":{"allow":["is_focused"],"deny":[]}},"allow-is-fullscreen":{"identifier":"allow-is-fullscreen","description":"Enables the is_fullscreen command without any pre-configured scope.","commands":{"allow":["is_fullscreen"],"deny":[]}},"allow-is-maximizable":{"identifier":"allow-is-maximizable","description":"Enables the is_maximizable command without any pre-configured scope.","commands":{"allow":["is_maximizable"],"deny":[]}},"allow-is-maximized":{"identifier":"allow-is-maximized","description":"Enables the is_maximized command without any pre-configured scope.","commands":{"allow":["is_maximized"],"deny":[]}},"allow-is-minimizable":{"identifier":"allow-is-minimizable","description":"Enables the is_minimizable command without any pre-configured scope.","commands":{"allow":["is_minimizable"],"deny":[]}},"allow-is-minimized":{"identifier":"allow-is-minimized","description":"Enables the is_minimized command without any pre-configured scope.","commands":{"allow":["is_minimized"],"deny":[]}},"allow-is-resizable":{"identifier":"allow-is-resizable","description":"Enables the is_resizable command without any pre-configured scope.","commands":{"allow":["is_resizable"],"deny":[]}},"allow-is-visible":{"identifier":"allow-is-visible","description":"Enables the is_visible command without any pre-configured scope.","commands":{"allow":["is_visible"],"deny":[]}},"allow-maximize":{"identifier":"allow-maximize","description":"Enables the maximize command without any pre-configured scope.","commands":{"allow":["maximize"],"deny":[]}},"allow-minimize":{"identifier":"allow-minimize","description":"Enables the minimize command without any pre-configured scope.","commands":{"allow":["minimize"],"deny":[]}},"allow-monitor-from-point":{"identifier":"allow-monitor-from-point","description":"Enables the monitor_from_point command without any pre-configured scope.","commands":{"allow":["monitor_from_point"],"deny":[]}},"allow-outer-position":{"identifier":"allow-outer-position","description":"Enables the outer_position command without any pre-configured scope.","commands":{"allow":["outer_position"],"deny":[]}},"allow-outer-size":{"identifier":"allow-outer-size","description":"Enables the outer_size command without any pre-configured scope.","commands":{"allow":["outer_size"],"deny":[]}},"allow-primary-monitor":{"identifier":"allow-primary-monitor","description":"Enables the primary_monitor command without any pre-configured scope.","commands":{"allow":["primary_monitor"],"deny":[]}},"allow-request-user-attention":{"identifier":"allow-request-user-attention","description":"Enables the request_user_attention command without any pre-configured scope.","commands":{"allow":["request_user_attention"],"deny":[]}},"allow-scale-factor":{"identifier":"allow-scale-factor","description":"Enables the scale_factor command without any pre-configured scope.","commands":{"allow":["scale_factor"],"deny":[]}},"allow-scene-identifier":{"identifier":"allow-scene-identifier","description":"Enables the scene_identifier command without any pre-configured scope.","commands":{"allow":["scene_identifier"],"deny":[]}},"allow-set-always-on-bottom":{"identifier":"allow-set-always-on-bottom","description":"Enables the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":["set_always_on_bottom"],"deny":[]}},"allow-set-always-on-top":{"identifier":"allow-set-always-on-top","description":"Enables the set_always_on_top command without any pre-configured scope.","commands":{"allow":["set_always_on_top"],"deny":[]}},"allow-set-background-color":{"identifier":"allow-set-background-color","description":"Enables the set_background_color command without any pre-configured scope.","commands":{"allow":["set_background_color"],"deny":[]}},"allow-set-badge-count":{"identifier":"allow-set-badge-count","description":"Enables the set_badge_count command without any pre-configured scope.","commands":{"allow":["set_badge_count"],"deny":[]}},"allow-set-badge-label":{"identifier":"allow-set-badge-label","description":"Enables the set_badge_label command without any pre-configured scope.","commands":{"allow":["set_badge_label"],"deny":[]}},"allow-set-closable":{"identifier":"allow-set-closable","description":"Enables the set_closable command without any pre-configured scope.","commands":{"allow":["set_closable"],"deny":[]}},"allow-set-content-protected":{"identifier":"allow-set-content-protected","description":"Enables the set_content_protected command without any pre-configured scope.","commands":{"allow":["set_content_protected"],"deny":[]}},"allow-set-cursor-grab":{"identifier":"allow-set-cursor-grab","description":"Enables the set_cursor_grab command without any pre-configured scope.","commands":{"allow":["set_cursor_grab"],"deny":[]}},"allow-set-cursor-icon":{"identifier":"allow-set-cursor-icon","description":"Enables the set_cursor_icon command without any pre-configured scope.","commands":{"allow":["set_cursor_icon"],"deny":[]}},"allow-set-cursor-position":{"identifier":"allow-set-cursor-position","description":"Enables the set_cursor_position command without any pre-configured scope.","commands":{"allow":["set_cursor_position"],"deny":[]}},"allow-set-cursor-visible":{"identifier":"allow-set-cursor-visible","description":"Enables the set_cursor_visible command without any pre-configured scope.","commands":{"allow":["set_cursor_visible"],"deny":[]}},"allow-set-decorations":{"identifier":"allow-set-decorations","description":"Enables the set_decorations command without any pre-configured scope.","commands":{"allow":["set_decorations"],"deny":[]}},"allow-set-effects":{"identifier":"allow-set-effects","description":"Enables the set_effects command without any pre-configured scope.","commands":{"allow":["set_effects"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-focus":{"identifier":"allow-set-focus","description":"Enables the set_focus command without any pre-configured scope.","commands":{"allow":["set_focus"],"deny":[]}},"allow-set-focusable":{"identifier":"allow-set-focusable","description":"Enables the set_focusable command without any pre-configured scope.","commands":{"allow":["set_focusable"],"deny":[]}},"allow-set-fullscreen":{"identifier":"allow-set-fullscreen","description":"Enables the set_fullscreen command without any pre-configured scope.","commands":{"allow":["set_fullscreen"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-ignore-cursor-events":{"identifier":"allow-set-ignore-cursor-events","description":"Enables the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":["set_ignore_cursor_events"],"deny":[]}},"allow-set-max-size":{"identifier":"allow-set-max-size","description":"Enables the set_max_size command without any pre-configured scope.","commands":{"allow":["set_max_size"],"deny":[]}},"allow-set-maximizable":{"identifier":"allow-set-maximizable","description":"Enables the set_maximizable command without any pre-configured scope.","commands":{"allow":["set_maximizable"],"deny":[]}},"allow-set-min-size":{"identifier":"allow-set-min-size","description":"Enables the set_min_size command without any pre-configured scope.","commands":{"allow":["set_min_size"],"deny":[]}},"allow-set-minimizable":{"identifier":"allow-set-minimizable","description":"Enables the set_minimizable command without any pre-configured scope.","commands":{"allow":["set_minimizable"],"deny":[]}},"allow-set-overlay-icon":{"identifier":"allow-set-overlay-icon","description":"Enables the set_overlay_icon command without any pre-configured scope.","commands":{"allow":["set_overlay_icon"],"deny":[]}},"allow-set-position":{"identifier":"allow-set-position","description":"Enables the set_position command without any pre-configured scope.","commands":{"allow":["set_position"],"deny":[]}},"allow-set-progress-bar":{"identifier":"allow-set-progress-bar","description":"Enables the set_progress_bar command without any pre-configured scope.","commands":{"allow":["set_progress_bar"],"deny":[]}},"allow-set-resizable":{"identifier":"allow-set-resizable","description":"Enables the set_resizable command without any pre-configured scope.","commands":{"allow":["set_resizable"],"deny":[]}},"allow-set-shadow":{"identifier":"allow-set-shadow","description":"Enables the set_shadow command without any pre-configured scope.","commands":{"allow":["set_shadow"],"deny":[]}},"allow-set-simple-fullscreen":{"identifier":"allow-set-simple-fullscreen","description":"Enables the set_simple_fullscreen command without any pre-configured scope.","commands":{"allow":["set_simple_fullscreen"],"deny":[]}},"allow-set-size":{"identifier":"allow-set-size","description":"Enables the set_size command without any pre-configured scope.","commands":{"allow":["set_size"],"deny":[]}},"allow-set-size-constraints":{"identifier":"allow-set-size-constraints","description":"Enables the set_size_constraints command without any pre-configured scope.","commands":{"allow":["set_size_constraints"],"deny":[]}},"allow-set-skip-taskbar":{"identifier":"allow-set-skip-taskbar","description":"Enables the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":["set_skip_taskbar"],"deny":[]}},"allow-set-theme":{"identifier":"allow-set-theme","description":"Enables the set_theme command without any pre-configured scope.","commands":{"allow":["set_theme"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-title-bar-style":{"identifier":"allow-set-title-bar-style","description":"Enables the set_title_bar_style command without any pre-configured scope.","commands":{"allow":["set_title_bar_style"],"deny":[]}},"allow-set-visible-on-all-workspaces":{"identifier":"allow-set-visible-on-all-workspaces","description":"Enables the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":["set_visible_on_all_workspaces"],"deny":[]}},"allow-show":{"identifier":"allow-show","description":"Enables the show command without any pre-configured scope.","commands":{"allow":["show"],"deny":[]}},"allow-start-dragging":{"identifier":"allow-start-dragging","description":"Enables the start_dragging command without any pre-configured scope.","commands":{"allow":["start_dragging"],"deny":[]}},"allow-start-resize-dragging":{"identifier":"allow-start-resize-dragging","description":"Enables the start_resize_dragging command without any pre-configured scope.","commands":{"allow":["start_resize_dragging"],"deny":[]}},"allow-theme":{"identifier":"allow-theme","description":"Enables the theme command without any pre-configured scope.","commands":{"allow":["theme"],"deny":[]}},"allow-title":{"identifier":"allow-title","description":"Enables the title command without any pre-configured scope.","commands":{"allow":["title"],"deny":[]}},"allow-toggle-maximize":{"identifier":"allow-toggle-maximize","description":"Enables the toggle_maximize command without any pre-configured scope.","commands":{"allow":["toggle_maximize"],"deny":[]}},"allow-unmaximize":{"identifier":"allow-unmaximize","description":"Enables the unmaximize command without any pre-configured scope.","commands":{"allow":["unmaximize"],"deny":[]}},"allow-unminimize":{"identifier":"allow-unminimize","description":"Enables the unminimize command without any pre-configured scope.","commands":{"allow":["unminimize"],"deny":[]}},"deny-activity-name":{"identifier":"deny-activity-name","description":"Denies the activity_name command without any pre-configured scope.","commands":{"allow":[],"deny":["activity_name"]}},"deny-available-monitors":{"identifier":"deny-available-monitors","description":"Denies the available_monitors command without any pre-configured scope.","commands":{"allow":[],"deny":["available_monitors"]}},"deny-center":{"identifier":"deny-center","description":"Denies the center command without any pre-configured scope.","commands":{"allow":[],"deny":["center"]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}},"deny-create":{"identifier":"deny-create","description":"Denies the create command without any pre-configured scope.","commands":{"allow":[],"deny":["create"]}},"deny-current-monitor":{"identifier":"deny-current-monitor","description":"Denies the current_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["current_monitor"]}},"deny-cursor-position":{"identifier":"deny-cursor-position","description":"Denies the cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["cursor_position"]}},"deny-destroy":{"identifier":"deny-destroy","description":"Denies the destroy command without any pre-configured scope.","commands":{"allow":[],"deny":["destroy"]}},"deny-get-all-windows":{"identifier":"deny-get-all-windows","description":"Denies the get_all_windows command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_windows"]}},"deny-hide":{"identifier":"deny-hide","description":"Denies the hide command without any pre-configured scope.","commands":{"allow":[],"deny":["hide"]}},"deny-inner-position":{"identifier":"deny-inner-position","description":"Denies the inner_position command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_position"]}},"deny-inner-size":{"identifier":"deny-inner-size","description":"Denies the inner_size command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_size"]}},"deny-internal-toggle-maximize":{"identifier":"deny-internal-toggle-maximize","description":"Denies the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_maximize"]}},"deny-is-always-on-top":{"identifier":"deny-is-always-on-top","description":"Denies the is_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["is_always_on_top"]}},"deny-is-closable":{"identifier":"deny-is-closable","description":"Denies the is_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_closable"]}},"deny-is-decorated":{"identifier":"deny-is-decorated","description":"Denies the is_decorated command without any pre-configured scope.","commands":{"allow":[],"deny":["is_decorated"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-is-focused":{"identifier":"deny-is-focused","description":"Denies the is_focused command without any pre-configured scope.","commands":{"allow":[],"deny":["is_focused"]}},"deny-is-fullscreen":{"identifier":"deny-is-fullscreen","description":"Denies the is_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["is_fullscreen"]}},"deny-is-maximizable":{"identifier":"deny-is-maximizable","description":"Denies the is_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximizable"]}},"deny-is-maximized":{"identifier":"deny-is-maximized","description":"Denies the is_maximized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximized"]}},"deny-is-minimizable":{"identifier":"deny-is-minimizable","description":"Denies the is_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimizable"]}},"deny-is-minimized":{"identifier":"deny-is-minimized","description":"Denies the is_minimized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimized"]}},"deny-is-resizable":{"identifier":"deny-is-resizable","description":"Denies the is_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_resizable"]}},"deny-is-visible":{"identifier":"deny-is-visible","description":"Denies the is_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["is_visible"]}},"deny-maximize":{"identifier":"deny-maximize","description":"Denies the maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["maximize"]}},"deny-minimize":{"identifier":"deny-minimize","description":"Denies the minimize command without any pre-configured scope.","commands":{"allow":[],"deny":["minimize"]}},"deny-monitor-from-point":{"identifier":"deny-monitor-from-point","description":"Denies the monitor_from_point command without any pre-configured scope.","commands":{"allow":[],"deny":["monitor_from_point"]}},"deny-outer-position":{"identifier":"deny-outer-position","description":"Denies the outer_position command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_position"]}},"deny-outer-size":{"identifier":"deny-outer-size","description":"Denies the outer_size command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_size"]}},"deny-primary-monitor":{"identifier":"deny-primary-monitor","description":"Denies the primary_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["primary_monitor"]}},"deny-request-user-attention":{"identifier":"deny-request-user-attention","description":"Denies the request_user_attention command without any pre-configured scope.","commands":{"allow":[],"deny":["request_user_attention"]}},"deny-scale-factor":{"identifier":"deny-scale-factor","description":"Denies the scale_factor command without any pre-configured scope.","commands":{"allow":[],"deny":["scale_factor"]}},"deny-scene-identifier":{"identifier":"deny-scene-identifier","description":"Denies the scene_identifier command without any pre-configured scope.","commands":{"allow":[],"deny":["scene_identifier"]}},"deny-set-always-on-bottom":{"identifier":"deny-set-always-on-bottom","description":"Denies the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_bottom"]}},"deny-set-always-on-top":{"identifier":"deny-set-always-on-top","description":"Denies the set_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_top"]}},"deny-set-background-color":{"identifier":"deny-set-background-color","description":"Denies the set_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_background_color"]}},"deny-set-badge-count":{"identifier":"deny-set-badge-count","description":"Denies the set_badge_count command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_count"]}},"deny-set-badge-label":{"identifier":"deny-set-badge-label","description":"Denies the set_badge_label command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_label"]}},"deny-set-closable":{"identifier":"deny-set-closable","description":"Denies the set_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_closable"]}},"deny-set-content-protected":{"identifier":"deny-set-content-protected","description":"Denies the set_content_protected command without any pre-configured scope.","commands":{"allow":[],"deny":["set_content_protected"]}},"deny-set-cursor-grab":{"identifier":"deny-set-cursor-grab","description":"Denies the set_cursor_grab command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_grab"]}},"deny-set-cursor-icon":{"identifier":"deny-set-cursor-icon","description":"Denies the set_cursor_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_icon"]}},"deny-set-cursor-position":{"identifier":"deny-set-cursor-position","description":"Denies the set_cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_position"]}},"deny-set-cursor-visible":{"identifier":"deny-set-cursor-visible","description":"Denies the set_cursor_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_visible"]}},"deny-set-decorations":{"identifier":"deny-set-decorations","description":"Denies the set_decorations command without any pre-configured scope.","commands":{"allow":[],"deny":["set_decorations"]}},"deny-set-effects":{"identifier":"deny-set-effects","description":"Denies the set_effects command without any pre-configured scope.","commands":{"allow":[],"deny":["set_effects"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-focus":{"identifier":"deny-set-focus","description":"Denies the set_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focus"]}},"deny-set-focusable":{"identifier":"deny-set-focusable","description":"Denies the set_focusable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focusable"]}},"deny-set-fullscreen":{"identifier":"deny-set-fullscreen","description":"Denies the set_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_fullscreen"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-ignore-cursor-events":{"identifier":"deny-set-ignore-cursor-events","description":"Denies the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":[],"deny":["set_ignore_cursor_events"]}},"deny-set-max-size":{"identifier":"deny-set-max-size","description":"Denies the set_max_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_max_size"]}},"deny-set-maximizable":{"identifier":"deny-set-maximizable","description":"Denies the set_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_maximizable"]}},"deny-set-min-size":{"identifier":"deny-set-min-size","description":"Denies the set_min_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_min_size"]}},"deny-set-minimizable":{"identifier":"deny-set-minimizable","description":"Denies the set_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_minimizable"]}},"deny-set-overlay-icon":{"identifier":"deny-set-overlay-icon","description":"Denies the set_overlay_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_overlay_icon"]}},"deny-set-position":{"identifier":"deny-set-position","description":"Denies the set_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_position"]}},"deny-set-progress-bar":{"identifier":"deny-set-progress-bar","description":"Denies the set_progress_bar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_progress_bar"]}},"deny-set-resizable":{"identifier":"deny-set-resizable","description":"Denies the set_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_resizable"]}},"deny-set-shadow":{"identifier":"deny-set-shadow","description":"Denies the set_shadow command without any pre-configured scope.","commands":{"allow":[],"deny":["set_shadow"]}},"deny-set-simple-fullscreen":{"identifier":"deny-set-simple-fullscreen","description":"Denies the set_simple_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_simple_fullscreen"]}},"deny-set-size":{"identifier":"deny-set-size","description":"Denies the set_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size"]}},"deny-set-size-constraints":{"identifier":"deny-set-size-constraints","description":"Denies the set_size_constraints command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size_constraints"]}},"deny-set-skip-taskbar":{"identifier":"deny-set-skip-taskbar","description":"Denies the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_skip_taskbar"]}},"deny-set-theme":{"identifier":"deny-set-theme","description":"Denies the set_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_theme"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-title-bar-style":{"identifier":"deny-set-title-bar-style","description":"Denies the set_title_bar_style command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title_bar_style"]}},"deny-set-visible-on-all-workspaces":{"identifier":"deny-set-visible-on-all-workspaces","description":"Denies the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible_on_all_workspaces"]}},"deny-show":{"identifier":"deny-show","description":"Denies the show command without any pre-configured scope.","commands":{"allow":[],"deny":["show"]}},"deny-start-dragging":{"identifier":"deny-start-dragging","description":"Denies the start_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_dragging"]}},"deny-start-resize-dragging":{"identifier":"deny-start-resize-dragging","description":"Denies the start_resize_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_resize_dragging"]}},"deny-theme":{"identifier":"deny-theme","description":"Denies the theme command without any pre-configured scope.","commands":{"allow":[],"deny":["theme"]}},"deny-title":{"identifier":"deny-title","description":"Denies the title command without any pre-configured scope.","commands":{"allow":[],"deny":["title"]}},"deny-toggle-maximize":{"identifier":"deny-toggle-maximize","description":"Denies the toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["toggle_maximize"]}},"deny-unmaximize":{"identifier":"deny-unmaximize","description":"Denies the unmaximize command without any pre-configured scope.","commands":{"allow":[],"deny":["unmaximize"]}},"deny-unminimize":{"identifier":"deny-unminimize","description":"Denies the unminimize command without any pre-configured scope.","commands":{"allow":[],"deny":["unminimize"]}}},"permission_sets":{},"global_scope_schema":null}} \ No newline at end of file diff --git a/tauri/src-tauri/gen/schemas/capabilities.json b/tauri/src-tauri/gen/schemas/capabilities.json new file mode 100644 index 0000000..fbeaa16 --- /dev/null +++ b/tauri/src-tauri/gen/schemas/capabilities.json @@ -0,0 +1 @@ +{"default":{"identifier":"default","description":"Capabilities for the trusted LineUp host frontend.","local":true,"windows":["main"],"permissions":["core:default"]}} \ No newline at end of file diff --git a/tauri/src-tauri/gen/schemas/desktop-schema.json b/tauri/src-tauri/gen/schemas/desktop-schema.json new file mode 100644 index 0000000..3286645 --- /dev/null +++ b/tauri/src-tauri/gen/schemas/desktop-schema.json @@ -0,0 +1,2292 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "CapabilityFile", + "description": "Capability formats accepted in a capability file.", + "anyOf": [ + { + "description": "A single capability.", + "allOf": [ + { + "$ref": "#/definitions/Capability" + } + ] + }, + { + "description": "A list of capabilities.", + "type": "array", + "items": { + "$ref": "#/definitions/Capability" + } + }, + { + "description": "A list of capabilities.", + "type": "object", + "required": [ + "capabilities" + ], + "properties": { + "capabilities": { + "description": "The list of capabilities.", + "type": "array", + "items": { + "$ref": "#/definitions/Capability" + } + } + } + } + ], + "definitions": { + "Capability": { + "description": "A grouping and boundary mechanism developers can use to isolate access to the IPC layer.\n\nIt controls application windows' and webviews' fine grained access to the Tauri core, application, or plugin commands. If a webview or its window is not matching any capability then it has no access to the IPC layer at all.\n\nThis can be done to create groups of windows, based on their required system access, which can reduce impact of frontend vulnerabilities in less privileged windows. Windows can be added to a capability by exact name (e.g. `main-window`) or glob patterns like `*` or `admin-*`. A Window can have none, one, or multiple associated capabilities.\n\n## Example\n\n```json { \"identifier\": \"main-user-files-write\", \"description\": \"This capability allows the `main` window on macOS and Windows access to `filesystem` write related commands and `dialog` commands to enable programmatic access to files selected by the user.\", \"windows\": [ \"main\" ], \"permissions\": [ \"core:default\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] }, ], \"platforms\": [\"macOS\",\"windows\"] } ```", + "type": "object", + "required": [ + "identifier", + "permissions" + ], + "properties": { + "identifier": { + "description": "Identifier of the capability.\n\n## Example\n\n`main-user-files-write`", + "type": "string" + }, + "description": { + "description": "Description of what the capability is intended to allow on associated windows.\n\nIt should contain a description of what the grouped permissions should allow.\n\n## Example\n\nThis capability allows the `main` window access to `filesystem` write related commands and `dialog` commands to enable programmatic access to files selected by the user.", + "default": "", + "type": "string" + }, + "remote": { + "description": "Configure remote URLs that can use the capability permissions.\n\nThis setting is optional and defaults to not being set, as our default use case is that the content is served from our local application.\n\n:::caution Make sure you understand the security implications of providing remote sources with local system access. :::\n\n## Example\n\n```json { \"urls\": [\"https://*.mydomain.dev\"] } ```", + "anyOf": [ + { + "$ref": "#/definitions/CapabilityRemote" + }, + { + "type": "null" + } + ] + }, + "local": { + "description": "Whether this capability is enabled for local app URLs or not. Defaults to `true`.", + "default": true, + "type": "boolean" + }, + "windows": { + "description": "List of windows that are affected by this capability. Can be a glob pattern.\n\nIf a window label matches any of the patterns in this list, the capability will be enabled on all the webviews of that window, regardless of the value of [`Self::webviews`].\n\nOn multiwebview windows, prefer specifying [`Self::webviews`] and omitting [`Self::windows`] for a fine grained access control.\n\n## Example\n\n`[\"main\"]`", + "type": "array", + "items": { + "type": "string" + } + }, + "webviews": { + "description": "List of webviews that are affected by this capability. Can be a glob pattern.\n\nThe capability will be enabled on all the webviews whose label matches any of the patterns in this list, regardless of whether the webview's window label matches a pattern in [`Self::windows`].\n\n## Example\n\n`[\"sub-webview-one\", \"sub-webview-two\"]`", + "type": "array", + "items": { + "type": "string" + } + }, + "permissions": { + "description": "List of permissions attached to this capability.\n\nMust include the plugin name as prefix in the form of `${plugin-name}:${permission-name}`. For commands directly implemented in the application itself only `${permission-name}` is required.\n\n## Example\n\n```json [ \"core:default\", \"shell:allow-open\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] } ] ```", + "type": "array", + "items": { + "$ref": "#/definitions/PermissionEntry" + }, + "uniqueItems": true + }, + "platforms": { + "description": "Limit which target platforms this capability applies to.\n\nBy default all platforms are targeted.\n\n## Example\n\n`[\"macOS\",\"windows\"]`", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Target" + } + } + } + }, + "CapabilityRemote": { + "description": "Configuration for remote URLs that are associated with the capability.", + "type": "object", + "required": [ + "urls" + ], + "properties": { + "urls": { + "description": "Remote domains this capability refers to using the [URLPattern standard](https://urlpattern.spec.whatwg.org/).\n\n## Examples\n\n- \"https://*.mydomain.dev\": allows subdomains of mydomain.dev - \"https://mydomain.dev/api/*\": allows any subpath of mydomain.dev/api", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "PermissionEntry": { + "description": "An entry for a permission value in a [`Capability`] can be either a raw permission [`Identifier`] or an object that references a permission and extends its scope.", + "anyOf": [ + { + "description": "Reference a permission or permission set by identifier.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + }, + { + "description": "Reference a permission or permission set by identifier and extends its scope.", + "type": "object", + "allOf": [ + { + "properties": { + "identifier": { + "description": "Identifier of the permission or permission set.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + }, + "allow": { + "description": "Data that defines what is allowed by the scope.", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Value" + } + }, + "deny": { + "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Value" + } + } + } + } + ], + "required": [ + "identifier" + ] + } + ] + }, + "Identifier": { + "description": "Permission identifier", + "oneOf": [ + { + "description": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`", + "type": "string", + "const": "core:default", + "markdownDescription": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`" + }, + { + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`\n- `allow-supports-multiple-windows`", + "type": "string", + "const": "core:app:default", + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`\n- `allow-supports-multiple-windows`" + }, + { + "description": "Enables the app_hide command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-app-hide", + "markdownDescription": "Enables the app_hide command without any pre-configured scope." + }, + { + "description": "Enables the app_show command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-app-show", + "markdownDescription": "Enables the app_show command without any pre-configured scope." + }, + { + "description": "Enables the bundle_type command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-bundle-type", + "markdownDescription": "Enables the bundle_type command without any pre-configured scope." + }, + { + "description": "Enables the default_window_icon command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-default-window-icon", + "markdownDescription": "Enables the default_window_icon command without any pre-configured scope." + }, + { + "description": "Enables the fetch_data_store_identifiers command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-fetch-data-store-identifiers", + "markdownDescription": "Enables the fetch_data_store_identifiers command without any pre-configured scope." + }, + { + "description": "Enables the identifier command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-identifier", + "markdownDescription": "Enables the identifier command without any pre-configured scope." + }, + { + "description": "Enables the name command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-name", + "markdownDescription": "Enables the name command without any pre-configured scope." + }, + { + "description": "Enables the register_listener command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-register-listener", + "markdownDescription": "Enables the register_listener command without any pre-configured scope." + }, + { + "description": "Enables the remove_data_store command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-remove-data-store", + "markdownDescription": "Enables the remove_data_store command without any pre-configured scope." + }, + { + "description": "Enables the remove_listener command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-remove-listener", + "markdownDescription": "Enables the remove_listener command without any pre-configured scope." + }, + { + "description": "Enables the set_app_theme command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-set-app-theme", + "markdownDescription": "Enables the set_app_theme command without any pre-configured scope." + }, + { + "description": "Enables the set_dock_visibility command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-set-dock-visibility", + "markdownDescription": "Enables the set_dock_visibility command without any pre-configured scope." + }, + { + "description": "Enables the supports_multiple_windows command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-supports-multiple-windows", + "markdownDescription": "Enables the supports_multiple_windows command without any pre-configured scope." + }, + { + "description": "Enables the tauri_version command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-tauri-version", + "markdownDescription": "Enables the tauri_version command without any pre-configured scope." + }, + { + "description": "Enables the version command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-version", + "markdownDescription": "Enables the version command without any pre-configured scope." + }, + { + "description": "Denies the app_hide command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-app-hide", + "markdownDescription": "Denies the app_hide command without any pre-configured scope." + }, + { + "description": "Denies the app_show command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-app-show", + "markdownDescription": "Denies the app_show command without any pre-configured scope." + }, + { + "description": "Denies the bundle_type command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-bundle-type", + "markdownDescription": "Denies the bundle_type command without any pre-configured scope." + }, + { + "description": "Denies the default_window_icon command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-default-window-icon", + "markdownDescription": "Denies the default_window_icon command without any pre-configured scope." + }, + { + "description": "Denies the fetch_data_store_identifiers command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-fetch-data-store-identifiers", + "markdownDescription": "Denies the fetch_data_store_identifiers command without any pre-configured scope." + }, + { + "description": "Denies the identifier command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-identifier", + "markdownDescription": "Denies the identifier command without any pre-configured scope." + }, + { + "description": "Denies the name command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-name", + "markdownDescription": "Denies the name command without any pre-configured scope." + }, + { + "description": "Denies the register_listener command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-register-listener", + "markdownDescription": "Denies the register_listener command without any pre-configured scope." + }, + { + "description": "Denies the remove_data_store command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-remove-data-store", + "markdownDescription": "Denies the remove_data_store command without any pre-configured scope." + }, + { + "description": "Denies the remove_listener command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-remove-listener", + "markdownDescription": "Denies the remove_listener command without any pre-configured scope." + }, + { + "description": "Denies the set_app_theme command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-set-app-theme", + "markdownDescription": "Denies the set_app_theme command without any pre-configured scope." + }, + { + "description": "Denies the set_dock_visibility command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-set-dock-visibility", + "markdownDescription": "Denies the set_dock_visibility command without any pre-configured scope." + }, + { + "description": "Denies the supports_multiple_windows command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-supports-multiple-windows", + "markdownDescription": "Denies the supports_multiple_windows command without any pre-configured scope." + }, + { + "description": "Denies the tauri_version command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-tauri-version", + "markdownDescription": "Denies the tauri_version command without any pre-configured scope." + }, + { + "description": "Denies the version command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-version", + "markdownDescription": "Denies the version command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`", + "type": "string", + "const": "core:event:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`" + }, + { + "description": "Enables the emit command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-emit", + "markdownDescription": "Enables the emit command without any pre-configured scope." + }, + { + "description": "Enables the emit_to command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-emit-to", + "markdownDescription": "Enables the emit_to command without any pre-configured scope." + }, + { + "description": "Enables the listen command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-listen", + "markdownDescription": "Enables the listen command without any pre-configured scope." + }, + { + "description": "Enables the unlisten command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-unlisten", + "markdownDescription": "Enables the unlisten command without any pre-configured scope." + }, + { + "description": "Denies the emit command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-emit", + "markdownDescription": "Denies the emit command without any pre-configured scope." + }, + { + "description": "Denies the emit_to command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-emit-to", + "markdownDescription": "Denies the emit_to command without any pre-configured scope." + }, + { + "description": "Denies the listen command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-listen", + "markdownDescription": "Denies the listen command without any pre-configured scope." + }, + { + "description": "Denies the unlisten command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-unlisten", + "markdownDescription": "Denies the unlisten command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`", + "type": "string", + "const": "core:image:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`" + }, + { + "description": "Enables the from_bytes command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-from-bytes", + "markdownDescription": "Enables the from_bytes command without any pre-configured scope." + }, + { + "description": "Enables the from_path command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-from-path", + "markdownDescription": "Enables the from_path command without any pre-configured scope." + }, + { + "description": "Enables the new command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-new", + "markdownDescription": "Enables the new command without any pre-configured scope." + }, + { + "description": "Enables the rgba command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-rgba", + "markdownDescription": "Enables the rgba command without any pre-configured scope." + }, + { + "description": "Enables the size command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-size", + "markdownDescription": "Enables the size command without any pre-configured scope." + }, + { + "description": "Denies the from_bytes command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-from-bytes", + "markdownDescription": "Denies the from_bytes command without any pre-configured scope." + }, + { + "description": "Denies the from_path command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-from-path", + "markdownDescription": "Denies the from_path command without any pre-configured scope." + }, + { + "description": "Denies the new command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-new", + "markdownDescription": "Denies the new command without any pre-configured scope." + }, + { + "description": "Denies the rgba command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-rgba", + "markdownDescription": "Denies the rgba command without any pre-configured scope." + }, + { + "description": "Denies the size command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-size", + "markdownDescription": "Denies the size command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`", + "type": "string", + "const": "core:menu:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`" + }, + { + "description": "Enables the append command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-append", + "markdownDescription": "Enables the append command without any pre-configured scope." + }, + { + "description": "Enables the create_default command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-create-default", + "markdownDescription": "Enables the create_default command without any pre-configured scope." + }, + { + "description": "Enables the get command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-get", + "markdownDescription": "Enables the get command without any pre-configured scope." + }, + { + "description": "Enables the insert command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-insert", + "markdownDescription": "Enables the insert command without any pre-configured scope." + }, + { + "description": "Enables the is_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-is-checked", + "markdownDescription": "Enables the is_checked command without any pre-configured scope." + }, + { + "description": "Enables the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-is-enabled", + "markdownDescription": "Enables the is_enabled command without any pre-configured scope." + }, + { + "description": "Enables the items command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-items", + "markdownDescription": "Enables the items command without any pre-configured scope." + }, + { + "description": "Enables the new command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-new", + "markdownDescription": "Enables the new command without any pre-configured scope." + }, + { + "description": "Enables the popup command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-popup", + "markdownDescription": "Enables the popup command without any pre-configured scope." + }, + { + "description": "Enables the prepend command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-prepend", + "markdownDescription": "Enables the prepend command without any pre-configured scope." + }, + { + "description": "Enables the remove command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-remove", + "markdownDescription": "Enables the remove command without any pre-configured scope." + }, + { + "description": "Enables the remove_at command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-remove-at", + "markdownDescription": "Enables the remove_at command without any pre-configured scope." + }, + { + "description": "Enables the set_accelerator command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-accelerator", + "markdownDescription": "Enables the set_accelerator command without any pre-configured scope." + }, + { + "description": "Enables the set_as_app_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-app-menu", + "markdownDescription": "Enables the set_as_app_menu command without any pre-configured scope." + }, + { + "description": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-help-menu-for-nsapp", + "markdownDescription": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope." + }, + { + "description": "Enables the set_as_window_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-window-menu", + "markdownDescription": "Enables the set_as_window_menu command without any pre-configured scope." + }, + { + "description": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-windows-menu-for-nsapp", + "markdownDescription": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope." + }, + { + "description": "Enables the set_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-checked", + "markdownDescription": "Enables the set_checked command without any pre-configured scope." + }, + { + "description": "Enables the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-enabled", + "markdownDescription": "Enables the set_enabled command without any pre-configured scope." + }, + { + "description": "Enables the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-icon", + "markdownDescription": "Enables the set_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-text", + "markdownDescription": "Enables the set_text command without any pre-configured scope." + }, + { + "description": "Enables the text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-text", + "markdownDescription": "Enables the text command without any pre-configured scope." + }, + { + "description": "Denies the append command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-append", + "markdownDescription": "Denies the append command without any pre-configured scope." + }, + { + "description": "Denies the create_default command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-create-default", + "markdownDescription": "Denies the create_default command without any pre-configured scope." + }, + { + "description": "Denies the get command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-get", + "markdownDescription": "Denies the get command without any pre-configured scope." + }, + { + "description": "Denies the insert command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-insert", + "markdownDescription": "Denies the insert command without any pre-configured scope." + }, + { + "description": "Denies the is_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-is-checked", + "markdownDescription": "Denies the is_checked command without any pre-configured scope." + }, + { + "description": "Denies the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-is-enabled", + "markdownDescription": "Denies the is_enabled command without any pre-configured scope." + }, + { + "description": "Denies the items command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-items", + "markdownDescription": "Denies the items command without any pre-configured scope." + }, + { + "description": "Denies the new command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-new", + "markdownDescription": "Denies the new command without any pre-configured scope." + }, + { + "description": "Denies the popup command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-popup", + "markdownDescription": "Denies the popup command without any pre-configured scope." + }, + { + "description": "Denies the prepend command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-prepend", + "markdownDescription": "Denies the prepend command without any pre-configured scope." + }, + { + "description": "Denies the remove command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-remove", + "markdownDescription": "Denies the remove command without any pre-configured scope." + }, + { + "description": "Denies the remove_at command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-remove-at", + "markdownDescription": "Denies the remove_at command without any pre-configured scope." + }, + { + "description": "Denies the set_accelerator command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-accelerator", + "markdownDescription": "Denies the set_accelerator command without any pre-configured scope." + }, + { + "description": "Denies the set_as_app_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-app-menu", + "markdownDescription": "Denies the set_as_app_menu command without any pre-configured scope." + }, + { + "description": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-help-menu-for-nsapp", + "markdownDescription": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope." + }, + { + "description": "Denies the set_as_window_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-window-menu", + "markdownDescription": "Denies the set_as_window_menu command without any pre-configured scope." + }, + { + "description": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-windows-menu-for-nsapp", + "markdownDescription": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope." + }, + { + "description": "Denies the set_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-checked", + "markdownDescription": "Denies the set_checked command without any pre-configured scope." + }, + { + "description": "Denies the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-enabled", + "markdownDescription": "Denies the set_enabled command without any pre-configured scope." + }, + { + "description": "Denies the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-icon", + "markdownDescription": "Denies the set_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-text", + "markdownDescription": "Denies the set_text command without any pre-configured scope." + }, + { + "description": "Denies the text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-text", + "markdownDescription": "Denies the text command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`", + "type": "string", + "const": "core:path:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`" + }, + { + "description": "Enables the basename command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-basename", + "markdownDescription": "Enables the basename command without any pre-configured scope." + }, + { + "description": "Enables the dirname command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-dirname", + "markdownDescription": "Enables the dirname command without any pre-configured scope." + }, + { + "description": "Enables the extname command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-extname", + "markdownDescription": "Enables the extname command without any pre-configured scope." + }, + { + "description": "Enables the is_absolute command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-is-absolute", + "markdownDescription": "Enables the is_absolute command without any pre-configured scope." + }, + { + "description": "Enables the join command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-join", + "markdownDescription": "Enables the join command without any pre-configured scope." + }, + { + "description": "Enables the normalize command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-normalize", + "markdownDescription": "Enables the normalize command without any pre-configured scope." + }, + { + "description": "Enables the resolve command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-resolve", + "markdownDescription": "Enables the resolve command without any pre-configured scope." + }, + { + "description": "Enables the resolve_directory command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-resolve-directory", + "markdownDescription": "Enables the resolve_directory command without any pre-configured scope." + }, + { + "description": "Denies the basename command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-basename", + "markdownDescription": "Denies the basename command without any pre-configured scope." + }, + { + "description": "Denies the dirname command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-dirname", + "markdownDescription": "Denies the dirname command without any pre-configured scope." + }, + { + "description": "Denies the extname command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-extname", + "markdownDescription": "Denies the extname command without any pre-configured scope." + }, + { + "description": "Denies the is_absolute command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-is-absolute", + "markdownDescription": "Denies the is_absolute command without any pre-configured scope." + }, + { + "description": "Denies the join command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-join", + "markdownDescription": "Denies the join command without any pre-configured scope." + }, + { + "description": "Denies the normalize command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-normalize", + "markdownDescription": "Denies the normalize command without any pre-configured scope." + }, + { + "description": "Denies the resolve command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-resolve", + "markdownDescription": "Denies the resolve command without any pre-configured scope." + }, + { + "description": "Denies the resolve_directory command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-resolve-directory", + "markdownDescription": "Denies the resolve_directory command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`", + "type": "string", + "const": "core:resources:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`" + }, + { + "description": "Enables the close command without any pre-configured scope.", + "type": "string", + "const": "core:resources:allow-close", + "markdownDescription": "Enables the close command without any pre-configured scope." + }, + { + "description": "Denies the close command without any pre-configured scope.", + "type": "string", + "const": "core:resources:deny-close", + "markdownDescription": "Denies the close command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-icon-with-as-template`\n- `allow-set-show-menu-on-left-click`", + "type": "string", + "const": "core:tray:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-icon-with-as-template`\n- `allow-set-show-menu-on-left-click`" + }, + { + "description": "Enables the get_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-get-by-id", + "markdownDescription": "Enables the get_by_id command without any pre-configured scope." + }, + { + "description": "Enables the new command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-new", + "markdownDescription": "Enables the new command without any pre-configured scope." + }, + { + "description": "Enables the remove_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-remove-by-id", + "markdownDescription": "Enables the remove_by_id command without any pre-configured scope." + }, + { + "description": "Enables the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-icon", + "markdownDescription": "Enables the set_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_icon_as_template command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-icon-as-template", + "markdownDescription": "Enables the set_icon_as_template command without any pre-configured scope." + }, + { + "description": "Enables the set_icon_with_as_template command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-icon-with-as-template", + "markdownDescription": "Enables the set_icon_with_as_template command without any pre-configured scope." + }, + { + "description": "Enables the set_menu command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-menu", + "markdownDescription": "Enables the set_menu command without any pre-configured scope." + }, + { + "description": "Enables the set_show_menu_on_left_click command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-show-menu-on-left-click", + "markdownDescription": "Enables the set_show_menu_on_left_click command without any pre-configured scope." + }, + { + "description": "Enables the set_temp_dir_path command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-temp-dir-path", + "markdownDescription": "Enables the set_temp_dir_path command without any pre-configured scope." + }, + { + "description": "Enables the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-title", + "markdownDescription": "Enables the set_title command without any pre-configured scope." + }, + { + "description": "Enables the set_tooltip command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-tooltip", + "markdownDescription": "Enables the set_tooltip command without any pre-configured scope." + }, + { + "description": "Enables the set_visible command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-visible", + "markdownDescription": "Enables the set_visible command without any pre-configured scope." + }, + { + "description": "Denies the get_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-get-by-id", + "markdownDescription": "Denies the get_by_id command without any pre-configured scope." + }, + { + "description": "Denies the new command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-new", + "markdownDescription": "Denies the new command without any pre-configured scope." + }, + { + "description": "Denies the remove_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-remove-by-id", + "markdownDescription": "Denies the remove_by_id command without any pre-configured scope." + }, + { + "description": "Denies the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-icon", + "markdownDescription": "Denies the set_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_icon_as_template command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-icon-as-template", + "markdownDescription": "Denies the set_icon_as_template command without any pre-configured scope." + }, + { + "description": "Denies the set_icon_with_as_template command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-icon-with-as-template", + "markdownDescription": "Denies the set_icon_with_as_template command without any pre-configured scope." + }, + { + "description": "Denies the set_menu command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-menu", + "markdownDescription": "Denies the set_menu command without any pre-configured scope." + }, + { + "description": "Denies the set_show_menu_on_left_click command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-show-menu-on-left-click", + "markdownDescription": "Denies the set_show_menu_on_left_click command without any pre-configured scope." + }, + { + "description": "Denies the set_temp_dir_path command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-temp-dir-path", + "markdownDescription": "Denies the set_temp_dir_path command without any pre-configured scope." + }, + { + "description": "Denies the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-title", + "markdownDescription": "Denies the set_title command without any pre-configured scope." + }, + { + "description": "Denies the set_tooltip command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-tooltip", + "markdownDescription": "Denies the set_tooltip command without any pre-configured scope." + }, + { + "description": "Denies the set_visible command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-visible", + "markdownDescription": "Denies the set_visible command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`", + "type": "string", + "const": "core:webview:default", + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`" + }, + { + "description": "Enables the clear_all_browsing_data command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-clear-all-browsing-data", + "markdownDescription": "Enables the clear_all_browsing_data command without any pre-configured scope." + }, + { + "description": "Enables the create_webview command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-create-webview", + "markdownDescription": "Enables the create_webview command without any pre-configured scope." + }, + { + "description": "Enables the create_webview_window command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-create-webview-window", + "markdownDescription": "Enables the create_webview_window command without any pre-configured scope." + }, + { + "description": "Enables the get_all_webviews command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-get-all-webviews", + "markdownDescription": "Enables the get_all_webviews command without any pre-configured scope." + }, + { + "description": "Enables the internal_toggle_devtools command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-internal-toggle-devtools", + "markdownDescription": "Enables the internal_toggle_devtools command without any pre-configured scope." + }, + { + "description": "Enables the print command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-print", + "markdownDescription": "Enables the print command without any pre-configured scope." + }, + { + "description": "Enables the reparent command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-reparent", + "markdownDescription": "Enables the reparent command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_auto_resize command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-auto-resize", + "markdownDescription": "Enables the set_webview_auto_resize command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-background-color", + "markdownDescription": "Enables the set_webview_background_color command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_focus command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-focus", + "markdownDescription": "Enables the set_webview_focus command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-position", + "markdownDescription": "Enables the set_webview_position command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-size", + "markdownDescription": "Enables the set_webview_size command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_zoom command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-zoom", + "markdownDescription": "Enables the set_webview_zoom command without any pre-configured scope." + }, + { + "description": "Enables the webview_close command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-close", + "markdownDescription": "Enables the webview_close command without any pre-configured scope." + }, + { + "description": "Enables the webview_hide command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-hide", + "markdownDescription": "Enables the webview_hide command without any pre-configured scope." + }, + { + "description": "Enables the webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-position", + "markdownDescription": "Enables the webview_position command without any pre-configured scope." + }, + { + "description": "Enables the webview_show command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-show", + "markdownDescription": "Enables the webview_show command without any pre-configured scope." + }, + { + "description": "Enables the webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-size", + "markdownDescription": "Enables the webview_size command without any pre-configured scope." + }, + { + "description": "Denies the clear_all_browsing_data command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-clear-all-browsing-data", + "markdownDescription": "Denies the clear_all_browsing_data command without any pre-configured scope." + }, + { + "description": "Denies the create_webview command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-create-webview", + "markdownDescription": "Denies the create_webview command without any pre-configured scope." + }, + { + "description": "Denies the create_webview_window command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-create-webview-window", + "markdownDescription": "Denies the create_webview_window command without any pre-configured scope." + }, + { + "description": "Denies the get_all_webviews command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-get-all-webviews", + "markdownDescription": "Denies the get_all_webviews command without any pre-configured scope." + }, + { + "description": "Denies the internal_toggle_devtools command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-internal-toggle-devtools", + "markdownDescription": "Denies the internal_toggle_devtools command without any pre-configured scope." + }, + { + "description": "Denies the print command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-print", + "markdownDescription": "Denies the print command without any pre-configured scope." + }, + { + "description": "Denies the reparent command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-reparent", + "markdownDescription": "Denies the reparent command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_auto_resize command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-auto-resize", + "markdownDescription": "Denies the set_webview_auto_resize command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-background-color", + "markdownDescription": "Denies the set_webview_background_color command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_focus command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-focus", + "markdownDescription": "Denies the set_webview_focus command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-position", + "markdownDescription": "Denies the set_webview_position command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-size", + "markdownDescription": "Denies the set_webview_size command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_zoom command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-zoom", + "markdownDescription": "Denies the set_webview_zoom command without any pre-configured scope." + }, + { + "description": "Denies the webview_close command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-close", + "markdownDescription": "Denies the webview_close command without any pre-configured scope." + }, + { + "description": "Denies the webview_hide command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-hide", + "markdownDescription": "Denies the webview_hide command without any pre-configured scope." + }, + { + "description": "Denies the webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-position", + "markdownDescription": "Denies the webview_position command without any pre-configured scope." + }, + { + "description": "Denies the webview_show command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-show", + "markdownDescription": "Denies the webview_show command without any pre-configured scope." + }, + { + "description": "Denies the webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-size", + "markdownDescription": "Denies the webview_size command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-activity-name`\n- `allow-scene-identifier`\n- `allow-internal-toggle-maximize`", + "type": "string", + "const": "core:window:default", + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-activity-name`\n- `allow-scene-identifier`\n- `allow-internal-toggle-maximize`" + }, + { + "description": "Enables the activity_name command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-activity-name", + "markdownDescription": "Enables the activity_name command without any pre-configured scope." + }, + { + "description": "Enables the available_monitors command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-available-monitors", + "markdownDescription": "Enables the available_monitors command without any pre-configured scope." + }, + { + "description": "Enables the center command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-center", + "markdownDescription": "Enables the center command without any pre-configured scope." + }, + { + "description": "Enables the close command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-close", + "markdownDescription": "Enables the close command without any pre-configured scope." + }, + { + "description": "Enables the create command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-create", + "markdownDescription": "Enables the create command without any pre-configured scope." + }, + { + "description": "Enables the current_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-current-monitor", + "markdownDescription": "Enables the current_monitor command without any pre-configured scope." + }, + { + "description": "Enables the cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-cursor-position", + "markdownDescription": "Enables the cursor_position command without any pre-configured scope." + }, + { + "description": "Enables the destroy command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-destroy", + "markdownDescription": "Enables the destroy command without any pre-configured scope." + }, + { + "description": "Enables the get_all_windows command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-get-all-windows", + "markdownDescription": "Enables the get_all_windows command without any pre-configured scope." + }, + { + "description": "Enables the hide command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-hide", + "markdownDescription": "Enables the hide command without any pre-configured scope." + }, + { + "description": "Enables the inner_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-inner-position", + "markdownDescription": "Enables the inner_position command without any pre-configured scope." + }, + { + "description": "Enables the inner_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-inner-size", + "markdownDescription": "Enables the inner_size command without any pre-configured scope." + }, + { + "description": "Enables the internal_toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-internal-toggle-maximize", + "markdownDescription": "Enables the internal_toggle_maximize command without any pre-configured scope." + }, + { + "description": "Enables the is_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-always-on-top", + "markdownDescription": "Enables the is_always_on_top command without any pre-configured scope." + }, + { + "description": "Enables the is_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-closable", + "markdownDescription": "Enables the is_closable command without any pre-configured scope." + }, + { + "description": "Enables the is_decorated command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-decorated", + "markdownDescription": "Enables the is_decorated command without any pre-configured scope." + }, + { + "description": "Enables the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-enabled", + "markdownDescription": "Enables the is_enabled command without any pre-configured scope." + }, + { + "description": "Enables the is_focused command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-focused", + "markdownDescription": "Enables the is_focused command without any pre-configured scope." + }, + { + "description": "Enables the is_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-fullscreen", + "markdownDescription": "Enables the is_fullscreen command without any pre-configured scope." + }, + { + "description": "Enables the is_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-maximizable", + "markdownDescription": "Enables the is_maximizable command without any pre-configured scope." + }, + { + "description": "Enables the is_maximized command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-maximized", + "markdownDescription": "Enables the is_maximized command without any pre-configured scope." + }, + { + "description": "Enables the is_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-minimizable", + "markdownDescription": "Enables the is_minimizable command without any pre-configured scope." + }, + { + "description": "Enables the is_minimized command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-minimized", + "markdownDescription": "Enables the is_minimized command without any pre-configured scope." + }, + { + "description": "Enables the is_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-resizable", + "markdownDescription": "Enables the is_resizable command without any pre-configured scope." + }, + { + "description": "Enables the is_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-visible", + "markdownDescription": "Enables the is_visible command without any pre-configured scope." + }, + { + "description": "Enables the maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-maximize", + "markdownDescription": "Enables the maximize command without any pre-configured scope." + }, + { + "description": "Enables the minimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-minimize", + "markdownDescription": "Enables the minimize command without any pre-configured scope." + }, + { + "description": "Enables the monitor_from_point command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-monitor-from-point", + "markdownDescription": "Enables the monitor_from_point command without any pre-configured scope." + }, + { + "description": "Enables the outer_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-outer-position", + "markdownDescription": "Enables the outer_position command without any pre-configured scope." + }, + { + "description": "Enables the outer_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-outer-size", + "markdownDescription": "Enables the outer_size command without any pre-configured scope." + }, + { + "description": "Enables the primary_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-primary-monitor", + "markdownDescription": "Enables the primary_monitor command without any pre-configured scope." + }, + { + "description": "Enables the request_user_attention command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-request-user-attention", + "markdownDescription": "Enables the request_user_attention command without any pre-configured scope." + }, + { + "description": "Enables the scale_factor command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-scale-factor", + "markdownDescription": "Enables the scale_factor command without any pre-configured scope." + }, + { + "description": "Enables the scene_identifier command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-scene-identifier", + "markdownDescription": "Enables the scene_identifier command without any pre-configured scope." + }, + { + "description": "Enables the set_always_on_bottom command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-always-on-bottom", + "markdownDescription": "Enables the set_always_on_bottom command without any pre-configured scope." + }, + { + "description": "Enables the set_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-always-on-top", + "markdownDescription": "Enables the set_always_on_top command without any pre-configured scope." + }, + { + "description": "Enables the set_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-background-color", + "markdownDescription": "Enables the set_background_color command without any pre-configured scope." + }, + { + "description": "Enables the set_badge_count command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-badge-count", + "markdownDescription": "Enables the set_badge_count command without any pre-configured scope." + }, + { + "description": "Enables the set_badge_label command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-badge-label", + "markdownDescription": "Enables the set_badge_label command without any pre-configured scope." + }, + { + "description": "Enables the set_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-closable", + "markdownDescription": "Enables the set_closable command without any pre-configured scope." + }, + { + "description": "Enables the set_content_protected command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-content-protected", + "markdownDescription": "Enables the set_content_protected command without any pre-configured scope." + }, + { + "description": "Enables the set_cursor_grab command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-grab", + "markdownDescription": "Enables the set_cursor_grab command without any pre-configured scope." + }, + { + "description": "Enables the set_cursor_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-icon", + "markdownDescription": "Enables the set_cursor_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-position", + "markdownDescription": "Enables the set_cursor_position command without any pre-configured scope." + }, + { + "description": "Enables the set_cursor_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-visible", + "markdownDescription": "Enables the set_cursor_visible command without any pre-configured scope." + }, + { + "description": "Enables the set_decorations command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-decorations", + "markdownDescription": "Enables the set_decorations command without any pre-configured scope." + }, + { + "description": "Enables the set_effects command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-effects", + "markdownDescription": "Enables the set_effects command without any pre-configured scope." + }, + { + "description": "Enables the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-enabled", + "markdownDescription": "Enables the set_enabled command without any pre-configured scope." + }, + { + "description": "Enables the set_focus command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-focus", + "markdownDescription": "Enables the set_focus command without any pre-configured scope." + }, + { + "description": "Enables the set_focusable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-focusable", + "markdownDescription": "Enables the set_focusable command without any pre-configured scope." + }, + { + "description": "Enables the set_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-fullscreen", + "markdownDescription": "Enables the set_fullscreen command without any pre-configured scope." + }, + { + "description": "Enables the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-icon", + "markdownDescription": "Enables the set_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_ignore_cursor_events command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-ignore-cursor-events", + "markdownDescription": "Enables the set_ignore_cursor_events command without any pre-configured scope." + }, + { + "description": "Enables the set_max_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-max-size", + "markdownDescription": "Enables the set_max_size command without any pre-configured scope." + }, + { + "description": "Enables the set_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-maximizable", + "markdownDescription": "Enables the set_maximizable command without any pre-configured scope." + }, + { + "description": "Enables the set_min_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-min-size", + "markdownDescription": "Enables the set_min_size command without any pre-configured scope." + }, + { + "description": "Enables the set_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-minimizable", + "markdownDescription": "Enables the set_minimizable command without any pre-configured scope." + }, + { + "description": "Enables the set_overlay_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-overlay-icon", + "markdownDescription": "Enables the set_overlay_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-position", + "markdownDescription": "Enables the set_position command without any pre-configured scope." + }, + { + "description": "Enables the set_progress_bar command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-progress-bar", + "markdownDescription": "Enables the set_progress_bar command without any pre-configured scope." + }, + { + "description": "Enables the set_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-resizable", + "markdownDescription": "Enables the set_resizable command without any pre-configured scope." + }, + { + "description": "Enables the set_shadow command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-shadow", + "markdownDescription": "Enables the set_shadow command without any pre-configured scope." + }, + { + "description": "Enables the set_simple_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-simple-fullscreen", + "markdownDescription": "Enables the set_simple_fullscreen command without any pre-configured scope." + }, + { + "description": "Enables the set_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-size", + "markdownDescription": "Enables the set_size command without any pre-configured scope." + }, + { + "description": "Enables the set_size_constraints command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-size-constraints", + "markdownDescription": "Enables the set_size_constraints command without any pre-configured scope." + }, + { + "description": "Enables the set_skip_taskbar command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-skip-taskbar", + "markdownDescription": "Enables the set_skip_taskbar command without any pre-configured scope." + }, + { + "description": "Enables the set_theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-theme", + "markdownDescription": "Enables the set_theme command without any pre-configured scope." + }, + { + "description": "Enables the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-title", + "markdownDescription": "Enables the set_title command without any pre-configured scope." + }, + { + "description": "Enables the set_title_bar_style command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-title-bar-style", + "markdownDescription": "Enables the set_title_bar_style command without any pre-configured scope." + }, + { + "description": "Enables the set_visible_on_all_workspaces command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-visible-on-all-workspaces", + "markdownDescription": "Enables the set_visible_on_all_workspaces command without any pre-configured scope." + }, + { + "description": "Enables the show command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-show", + "markdownDescription": "Enables the show command without any pre-configured scope." + }, + { + "description": "Enables the start_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-start-dragging", + "markdownDescription": "Enables the start_dragging command without any pre-configured scope." + }, + { + "description": "Enables the start_resize_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-start-resize-dragging", + "markdownDescription": "Enables the start_resize_dragging command without any pre-configured scope." + }, + { + "description": "Enables the theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-theme", + "markdownDescription": "Enables the theme command without any pre-configured scope." + }, + { + "description": "Enables the title command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-title", + "markdownDescription": "Enables the title command without any pre-configured scope." + }, + { + "description": "Enables the toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-toggle-maximize", + "markdownDescription": "Enables the toggle_maximize command without any pre-configured scope." + }, + { + "description": "Enables the unmaximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-unmaximize", + "markdownDescription": "Enables the unmaximize command without any pre-configured scope." + }, + { + "description": "Enables the unminimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-unminimize", + "markdownDescription": "Enables the unminimize command without any pre-configured scope." + }, + { + "description": "Denies the activity_name command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-activity-name", + "markdownDescription": "Denies the activity_name command without any pre-configured scope." + }, + { + "description": "Denies the available_monitors command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-available-monitors", + "markdownDescription": "Denies the available_monitors command without any pre-configured scope." + }, + { + "description": "Denies the center command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-center", + "markdownDescription": "Denies the center command without any pre-configured scope." + }, + { + "description": "Denies the close command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-close", + "markdownDescription": "Denies the close command without any pre-configured scope." + }, + { + "description": "Denies the create command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-create", + "markdownDescription": "Denies the create command without any pre-configured scope." + }, + { + "description": "Denies the current_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-current-monitor", + "markdownDescription": "Denies the current_monitor command without any pre-configured scope." + }, + { + "description": "Denies the cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-cursor-position", + "markdownDescription": "Denies the cursor_position command without any pre-configured scope." + }, + { + "description": "Denies the destroy command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-destroy", + "markdownDescription": "Denies the destroy command without any pre-configured scope." + }, + { + "description": "Denies the get_all_windows command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-get-all-windows", + "markdownDescription": "Denies the get_all_windows command without any pre-configured scope." + }, + { + "description": "Denies the hide command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-hide", + "markdownDescription": "Denies the hide command without any pre-configured scope." + }, + { + "description": "Denies the inner_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-inner-position", + "markdownDescription": "Denies the inner_position command without any pre-configured scope." + }, + { + "description": "Denies the inner_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-inner-size", + "markdownDescription": "Denies the inner_size command without any pre-configured scope." + }, + { + "description": "Denies the internal_toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-internal-toggle-maximize", + "markdownDescription": "Denies the internal_toggle_maximize command without any pre-configured scope." + }, + { + "description": "Denies the is_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-always-on-top", + "markdownDescription": "Denies the is_always_on_top command without any pre-configured scope." + }, + { + "description": "Denies the is_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-closable", + "markdownDescription": "Denies the is_closable command without any pre-configured scope." + }, + { + "description": "Denies the is_decorated command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-decorated", + "markdownDescription": "Denies the is_decorated command without any pre-configured scope." + }, + { + "description": "Denies the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-enabled", + "markdownDescription": "Denies the is_enabled command without any pre-configured scope." + }, + { + "description": "Denies the is_focused command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-focused", + "markdownDescription": "Denies the is_focused command without any pre-configured scope." + }, + { + "description": "Denies the is_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-fullscreen", + "markdownDescription": "Denies the is_fullscreen command without any pre-configured scope." + }, + { + "description": "Denies the is_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-maximizable", + "markdownDescription": "Denies the is_maximizable command without any pre-configured scope." + }, + { + "description": "Denies the is_maximized command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-maximized", + "markdownDescription": "Denies the is_maximized command without any pre-configured scope." + }, + { + "description": "Denies the is_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-minimizable", + "markdownDescription": "Denies the is_minimizable command without any pre-configured scope." + }, + { + "description": "Denies the is_minimized command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-minimized", + "markdownDescription": "Denies the is_minimized command without any pre-configured scope." + }, + { + "description": "Denies the is_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-resizable", + "markdownDescription": "Denies the is_resizable command without any pre-configured scope." + }, + { + "description": "Denies the is_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-visible", + "markdownDescription": "Denies the is_visible command without any pre-configured scope." + }, + { + "description": "Denies the maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-maximize", + "markdownDescription": "Denies the maximize command without any pre-configured scope." + }, + { + "description": "Denies the minimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-minimize", + "markdownDescription": "Denies the minimize command without any pre-configured scope." + }, + { + "description": "Denies the monitor_from_point command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-monitor-from-point", + "markdownDescription": "Denies the monitor_from_point command without any pre-configured scope." + }, + { + "description": "Denies the outer_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-outer-position", + "markdownDescription": "Denies the outer_position command without any pre-configured scope." + }, + { + "description": "Denies the outer_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-outer-size", + "markdownDescription": "Denies the outer_size command without any pre-configured scope." + }, + { + "description": "Denies the primary_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-primary-monitor", + "markdownDescription": "Denies the primary_monitor command without any pre-configured scope." + }, + { + "description": "Denies the request_user_attention command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-request-user-attention", + "markdownDescription": "Denies the request_user_attention command without any pre-configured scope." + }, + { + "description": "Denies the scale_factor command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-scale-factor", + "markdownDescription": "Denies the scale_factor command without any pre-configured scope." + }, + { + "description": "Denies the scene_identifier command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-scene-identifier", + "markdownDescription": "Denies the scene_identifier command without any pre-configured scope." + }, + { + "description": "Denies the set_always_on_bottom command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-always-on-bottom", + "markdownDescription": "Denies the set_always_on_bottom command without any pre-configured scope." + }, + { + "description": "Denies the set_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-always-on-top", + "markdownDescription": "Denies the set_always_on_top command without any pre-configured scope." + }, + { + "description": "Denies the set_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-background-color", + "markdownDescription": "Denies the set_background_color command without any pre-configured scope." + }, + { + "description": "Denies the set_badge_count command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-badge-count", + "markdownDescription": "Denies the set_badge_count command without any pre-configured scope." + }, + { + "description": "Denies the set_badge_label command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-badge-label", + "markdownDescription": "Denies the set_badge_label command without any pre-configured scope." + }, + { + "description": "Denies the set_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-closable", + "markdownDescription": "Denies the set_closable command without any pre-configured scope." + }, + { + "description": "Denies the set_content_protected command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-content-protected", + "markdownDescription": "Denies the set_content_protected command without any pre-configured scope." + }, + { + "description": "Denies the set_cursor_grab command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-grab", + "markdownDescription": "Denies the set_cursor_grab command without any pre-configured scope." + }, + { + "description": "Denies the set_cursor_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-icon", + "markdownDescription": "Denies the set_cursor_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-position", + "markdownDescription": "Denies the set_cursor_position command without any pre-configured scope." + }, + { + "description": "Denies the set_cursor_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-visible", + "markdownDescription": "Denies the set_cursor_visible command without any pre-configured scope." + }, + { + "description": "Denies the set_decorations command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-decorations", + "markdownDescription": "Denies the set_decorations command without any pre-configured scope." + }, + { + "description": "Denies the set_effects command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-effects", + "markdownDescription": "Denies the set_effects command without any pre-configured scope." + }, + { + "description": "Denies the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-enabled", + "markdownDescription": "Denies the set_enabled command without any pre-configured scope." + }, + { + "description": "Denies the set_focus command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-focus", + "markdownDescription": "Denies the set_focus command without any pre-configured scope." + }, + { + "description": "Denies the set_focusable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-focusable", + "markdownDescription": "Denies the set_focusable command without any pre-configured scope." + }, + { + "description": "Denies the set_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-fullscreen", + "markdownDescription": "Denies the set_fullscreen command without any pre-configured scope." + }, + { + "description": "Denies the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-icon", + "markdownDescription": "Denies the set_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_ignore_cursor_events command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-ignore-cursor-events", + "markdownDescription": "Denies the set_ignore_cursor_events command without any pre-configured scope." + }, + { + "description": "Denies the set_max_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-max-size", + "markdownDescription": "Denies the set_max_size command without any pre-configured scope." + }, + { + "description": "Denies the set_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-maximizable", + "markdownDescription": "Denies the set_maximizable command without any pre-configured scope." + }, + { + "description": "Denies the set_min_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-min-size", + "markdownDescription": "Denies the set_min_size command without any pre-configured scope." + }, + { + "description": "Denies the set_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-minimizable", + "markdownDescription": "Denies the set_minimizable command without any pre-configured scope." + }, + { + "description": "Denies the set_overlay_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-overlay-icon", + "markdownDescription": "Denies the set_overlay_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-position", + "markdownDescription": "Denies the set_position command without any pre-configured scope." + }, + { + "description": "Denies the set_progress_bar command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-progress-bar", + "markdownDescription": "Denies the set_progress_bar command without any pre-configured scope." + }, + { + "description": "Denies the set_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-resizable", + "markdownDescription": "Denies the set_resizable command without any pre-configured scope." + }, + { + "description": "Denies the set_shadow command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-shadow", + "markdownDescription": "Denies the set_shadow command without any pre-configured scope." + }, + { + "description": "Denies the set_simple_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-simple-fullscreen", + "markdownDescription": "Denies the set_simple_fullscreen command without any pre-configured scope." + }, + { + "description": "Denies the set_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-size", + "markdownDescription": "Denies the set_size command without any pre-configured scope." + }, + { + "description": "Denies the set_size_constraints command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-size-constraints", + "markdownDescription": "Denies the set_size_constraints command without any pre-configured scope." + }, + { + "description": "Denies the set_skip_taskbar command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-skip-taskbar", + "markdownDescription": "Denies the set_skip_taskbar command without any pre-configured scope." + }, + { + "description": "Denies the set_theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-theme", + "markdownDescription": "Denies the set_theme command without any pre-configured scope." + }, + { + "description": "Denies the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-title", + "markdownDescription": "Denies the set_title command without any pre-configured scope." + }, + { + "description": "Denies the set_title_bar_style command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-title-bar-style", + "markdownDescription": "Denies the set_title_bar_style command without any pre-configured scope." + }, + { + "description": "Denies the set_visible_on_all_workspaces command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-visible-on-all-workspaces", + "markdownDescription": "Denies the set_visible_on_all_workspaces command without any pre-configured scope." + }, + { + "description": "Denies the show command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-show", + "markdownDescription": "Denies the show command without any pre-configured scope." + }, + { + "description": "Denies the start_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-start-dragging", + "markdownDescription": "Denies the start_dragging command without any pre-configured scope." + }, + { + "description": "Denies the start_resize_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-start-resize-dragging", + "markdownDescription": "Denies the start_resize_dragging command without any pre-configured scope." + }, + { + "description": "Denies the theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-theme", + "markdownDescription": "Denies the theme command without any pre-configured scope." + }, + { + "description": "Denies the title command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-title", + "markdownDescription": "Denies the title command without any pre-configured scope." + }, + { + "description": "Denies the toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-toggle-maximize", + "markdownDescription": "Denies the toggle_maximize command without any pre-configured scope." + }, + { + "description": "Denies the unmaximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-unmaximize", + "markdownDescription": "Denies the unmaximize command without any pre-configured scope." + }, + { + "description": "Denies the unminimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-unminimize", + "markdownDescription": "Denies the unminimize command without any pre-configured scope." + } + ] + }, + "Value": { + "description": "All supported ACL values.", + "anyOf": [ + { + "description": "Represents a null JSON value.", + "type": "null" + }, + { + "description": "Represents a [`bool`].", + "type": "boolean" + }, + { + "description": "Represents a valid ACL [`Number`].", + "allOf": [ + { + "$ref": "#/definitions/Number" + } + ] + }, + { + "description": "Represents a [`String`].", + "type": "string" + }, + { + "description": "Represents a list of other [`Value`]s.", + "type": "array", + "items": { + "$ref": "#/definitions/Value" + } + }, + { + "description": "Represents a map of [`String`] keys to [`Value`]s.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Value" + } + } + ] + }, + "Number": { + "description": "A valid ACL number.", + "anyOf": [ + { + "description": "Represents an [`i64`].", + "type": "integer", + "format": "int64" + }, + { + "description": "Represents a [`f64`].", + "type": "number", + "format": "double" + } + ] + }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + } + } +} \ No newline at end of file diff --git a/tauri/src-tauri/gen/schemas/linux-schema.json b/tauri/src-tauri/gen/schemas/linux-schema.json new file mode 100644 index 0000000..3286645 --- /dev/null +++ b/tauri/src-tauri/gen/schemas/linux-schema.json @@ -0,0 +1,2292 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "CapabilityFile", + "description": "Capability formats accepted in a capability file.", + "anyOf": [ + { + "description": "A single capability.", + "allOf": [ + { + "$ref": "#/definitions/Capability" + } + ] + }, + { + "description": "A list of capabilities.", + "type": "array", + "items": { + "$ref": "#/definitions/Capability" + } + }, + { + "description": "A list of capabilities.", + "type": "object", + "required": [ + "capabilities" + ], + "properties": { + "capabilities": { + "description": "The list of capabilities.", + "type": "array", + "items": { + "$ref": "#/definitions/Capability" + } + } + } + } + ], + "definitions": { + "Capability": { + "description": "A grouping and boundary mechanism developers can use to isolate access to the IPC layer.\n\nIt controls application windows' and webviews' fine grained access to the Tauri core, application, or plugin commands. If a webview or its window is not matching any capability then it has no access to the IPC layer at all.\n\nThis can be done to create groups of windows, based on their required system access, which can reduce impact of frontend vulnerabilities in less privileged windows. Windows can be added to a capability by exact name (e.g. `main-window`) or glob patterns like `*` or `admin-*`. A Window can have none, one, or multiple associated capabilities.\n\n## Example\n\n```json { \"identifier\": \"main-user-files-write\", \"description\": \"This capability allows the `main` window on macOS and Windows access to `filesystem` write related commands and `dialog` commands to enable programmatic access to files selected by the user.\", \"windows\": [ \"main\" ], \"permissions\": [ \"core:default\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] }, ], \"platforms\": [\"macOS\",\"windows\"] } ```", + "type": "object", + "required": [ + "identifier", + "permissions" + ], + "properties": { + "identifier": { + "description": "Identifier of the capability.\n\n## Example\n\n`main-user-files-write`", + "type": "string" + }, + "description": { + "description": "Description of what the capability is intended to allow on associated windows.\n\nIt should contain a description of what the grouped permissions should allow.\n\n## Example\n\nThis capability allows the `main` window access to `filesystem` write related commands and `dialog` commands to enable programmatic access to files selected by the user.", + "default": "", + "type": "string" + }, + "remote": { + "description": "Configure remote URLs that can use the capability permissions.\n\nThis setting is optional and defaults to not being set, as our default use case is that the content is served from our local application.\n\n:::caution Make sure you understand the security implications of providing remote sources with local system access. :::\n\n## Example\n\n```json { \"urls\": [\"https://*.mydomain.dev\"] } ```", + "anyOf": [ + { + "$ref": "#/definitions/CapabilityRemote" + }, + { + "type": "null" + } + ] + }, + "local": { + "description": "Whether this capability is enabled for local app URLs or not. Defaults to `true`.", + "default": true, + "type": "boolean" + }, + "windows": { + "description": "List of windows that are affected by this capability. Can be a glob pattern.\n\nIf a window label matches any of the patterns in this list, the capability will be enabled on all the webviews of that window, regardless of the value of [`Self::webviews`].\n\nOn multiwebview windows, prefer specifying [`Self::webviews`] and omitting [`Self::windows`] for a fine grained access control.\n\n## Example\n\n`[\"main\"]`", + "type": "array", + "items": { + "type": "string" + } + }, + "webviews": { + "description": "List of webviews that are affected by this capability. Can be a glob pattern.\n\nThe capability will be enabled on all the webviews whose label matches any of the patterns in this list, regardless of whether the webview's window label matches a pattern in [`Self::windows`].\n\n## Example\n\n`[\"sub-webview-one\", \"sub-webview-two\"]`", + "type": "array", + "items": { + "type": "string" + } + }, + "permissions": { + "description": "List of permissions attached to this capability.\n\nMust include the plugin name as prefix in the form of `${plugin-name}:${permission-name}`. For commands directly implemented in the application itself only `${permission-name}` is required.\n\n## Example\n\n```json [ \"core:default\", \"shell:allow-open\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] } ] ```", + "type": "array", + "items": { + "$ref": "#/definitions/PermissionEntry" + }, + "uniqueItems": true + }, + "platforms": { + "description": "Limit which target platforms this capability applies to.\n\nBy default all platforms are targeted.\n\n## Example\n\n`[\"macOS\",\"windows\"]`", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Target" + } + } + } + }, + "CapabilityRemote": { + "description": "Configuration for remote URLs that are associated with the capability.", + "type": "object", + "required": [ + "urls" + ], + "properties": { + "urls": { + "description": "Remote domains this capability refers to using the [URLPattern standard](https://urlpattern.spec.whatwg.org/).\n\n## Examples\n\n- \"https://*.mydomain.dev\": allows subdomains of mydomain.dev - \"https://mydomain.dev/api/*\": allows any subpath of mydomain.dev/api", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "PermissionEntry": { + "description": "An entry for a permission value in a [`Capability`] can be either a raw permission [`Identifier`] or an object that references a permission and extends its scope.", + "anyOf": [ + { + "description": "Reference a permission or permission set by identifier.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + }, + { + "description": "Reference a permission or permission set by identifier and extends its scope.", + "type": "object", + "allOf": [ + { + "properties": { + "identifier": { + "description": "Identifier of the permission or permission set.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + }, + "allow": { + "description": "Data that defines what is allowed by the scope.", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Value" + } + }, + "deny": { + "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Value" + } + } + } + } + ], + "required": [ + "identifier" + ] + } + ] + }, + "Identifier": { + "description": "Permission identifier", + "oneOf": [ + { + "description": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`", + "type": "string", + "const": "core:default", + "markdownDescription": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`" + }, + { + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`\n- `allow-supports-multiple-windows`", + "type": "string", + "const": "core:app:default", + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`\n- `allow-supports-multiple-windows`" + }, + { + "description": "Enables the app_hide command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-app-hide", + "markdownDescription": "Enables the app_hide command without any pre-configured scope." + }, + { + "description": "Enables the app_show command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-app-show", + "markdownDescription": "Enables the app_show command without any pre-configured scope." + }, + { + "description": "Enables the bundle_type command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-bundle-type", + "markdownDescription": "Enables the bundle_type command without any pre-configured scope." + }, + { + "description": "Enables the default_window_icon command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-default-window-icon", + "markdownDescription": "Enables the default_window_icon command without any pre-configured scope." + }, + { + "description": "Enables the fetch_data_store_identifiers command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-fetch-data-store-identifiers", + "markdownDescription": "Enables the fetch_data_store_identifiers command without any pre-configured scope." + }, + { + "description": "Enables the identifier command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-identifier", + "markdownDescription": "Enables the identifier command without any pre-configured scope." + }, + { + "description": "Enables the name command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-name", + "markdownDescription": "Enables the name command without any pre-configured scope." + }, + { + "description": "Enables the register_listener command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-register-listener", + "markdownDescription": "Enables the register_listener command without any pre-configured scope." + }, + { + "description": "Enables the remove_data_store command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-remove-data-store", + "markdownDescription": "Enables the remove_data_store command without any pre-configured scope." + }, + { + "description": "Enables the remove_listener command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-remove-listener", + "markdownDescription": "Enables the remove_listener command without any pre-configured scope." + }, + { + "description": "Enables the set_app_theme command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-set-app-theme", + "markdownDescription": "Enables the set_app_theme command without any pre-configured scope." + }, + { + "description": "Enables the set_dock_visibility command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-set-dock-visibility", + "markdownDescription": "Enables the set_dock_visibility command without any pre-configured scope." + }, + { + "description": "Enables the supports_multiple_windows command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-supports-multiple-windows", + "markdownDescription": "Enables the supports_multiple_windows command without any pre-configured scope." + }, + { + "description": "Enables the tauri_version command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-tauri-version", + "markdownDescription": "Enables the tauri_version command without any pre-configured scope." + }, + { + "description": "Enables the version command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-version", + "markdownDescription": "Enables the version command without any pre-configured scope." + }, + { + "description": "Denies the app_hide command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-app-hide", + "markdownDescription": "Denies the app_hide command without any pre-configured scope." + }, + { + "description": "Denies the app_show command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-app-show", + "markdownDescription": "Denies the app_show command without any pre-configured scope." + }, + { + "description": "Denies the bundle_type command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-bundle-type", + "markdownDescription": "Denies the bundle_type command without any pre-configured scope." + }, + { + "description": "Denies the default_window_icon command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-default-window-icon", + "markdownDescription": "Denies the default_window_icon command without any pre-configured scope." + }, + { + "description": "Denies the fetch_data_store_identifiers command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-fetch-data-store-identifiers", + "markdownDescription": "Denies the fetch_data_store_identifiers command without any pre-configured scope." + }, + { + "description": "Denies the identifier command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-identifier", + "markdownDescription": "Denies the identifier command without any pre-configured scope." + }, + { + "description": "Denies the name command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-name", + "markdownDescription": "Denies the name command without any pre-configured scope." + }, + { + "description": "Denies the register_listener command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-register-listener", + "markdownDescription": "Denies the register_listener command without any pre-configured scope." + }, + { + "description": "Denies the remove_data_store command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-remove-data-store", + "markdownDescription": "Denies the remove_data_store command without any pre-configured scope." + }, + { + "description": "Denies the remove_listener command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-remove-listener", + "markdownDescription": "Denies the remove_listener command without any pre-configured scope." + }, + { + "description": "Denies the set_app_theme command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-set-app-theme", + "markdownDescription": "Denies the set_app_theme command without any pre-configured scope." + }, + { + "description": "Denies the set_dock_visibility command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-set-dock-visibility", + "markdownDescription": "Denies the set_dock_visibility command without any pre-configured scope." + }, + { + "description": "Denies the supports_multiple_windows command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-supports-multiple-windows", + "markdownDescription": "Denies the supports_multiple_windows command without any pre-configured scope." + }, + { + "description": "Denies the tauri_version command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-tauri-version", + "markdownDescription": "Denies the tauri_version command without any pre-configured scope." + }, + { + "description": "Denies the version command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-version", + "markdownDescription": "Denies the version command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`", + "type": "string", + "const": "core:event:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`" + }, + { + "description": "Enables the emit command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-emit", + "markdownDescription": "Enables the emit command without any pre-configured scope." + }, + { + "description": "Enables the emit_to command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-emit-to", + "markdownDescription": "Enables the emit_to command without any pre-configured scope." + }, + { + "description": "Enables the listen command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-listen", + "markdownDescription": "Enables the listen command without any pre-configured scope." + }, + { + "description": "Enables the unlisten command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-unlisten", + "markdownDescription": "Enables the unlisten command without any pre-configured scope." + }, + { + "description": "Denies the emit command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-emit", + "markdownDescription": "Denies the emit command without any pre-configured scope." + }, + { + "description": "Denies the emit_to command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-emit-to", + "markdownDescription": "Denies the emit_to command without any pre-configured scope." + }, + { + "description": "Denies the listen command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-listen", + "markdownDescription": "Denies the listen command without any pre-configured scope." + }, + { + "description": "Denies the unlisten command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-unlisten", + "markdownDescription": "Denies the unlisten command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`", + "type": "string", + "const": "core:image:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`" + }, + { + "description": "Enables the from_bytes command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-from-bytes", + "markdownDescription": "Enables the from_bytes command without any pre-configured scope." + }, + { + "description": "Enables the from_path command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-from-path", + "markdownDescription": "Enables the from_path command without any pre-configured scope." + }, + { + "description": "Enables the new command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-new", + "markdownDescription": "Enables the new command without any pre-configured scope." + }, + { + "description": "Enables the rgba command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-rgba", + "markdownDescription": "Enables the rgba command without any pre-configured scope." + }, + { + "description": "Enables the size command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-size", + "markdownDescription": "Enables the size command without any pre-configured scope." + }, + { + "description": "Denies the from_bytes command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-from-bytes", + "markdownDescription": "Denies the from_bytes command without any pre-configured scope." + }, + { + "description": "Denies the from_path command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-from-path", + "markdownDescription": "Denies the from_path command without any pre-configured scope." + }, + { + "description": "Denies the new command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-new", + "markdownDescription": "Denies the new command without any pre-configured scope." + }, + { + "description": "Denies the rgba command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-rgba", + "markdownDescription": "Denies the rgba command without any pre-configured scope." + }, + { + "description": "Denies the size command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-size", + "markdownDescription": "Denies the size command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`", + "type": "string", + "const": "core:menu:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`" + }, + { + "description": "Enables the append command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-append", + "markdownDescription": "Enables the append command without any pre-configured scope." + }, + { + "description": "Enables the create_default command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-create-default", + "markdownDescription": "Enables the create_default command without any pre-configured scope." + }, + { + "description": "Enables the get command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-get", + "markdownDescription": "Enables the get command without any pre-configured scope." + }, + { + "description": "Enables the insert command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-insert", + "markdownDescription": "Enables the insert command without any pre-configured scope." + }, + { + "description": "Enables the is_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-is-checked", + "markdownDescription": "Enables the is_checked command without any pre-configured scope." + }, + { + "description": "Enables the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-is-enabled", + "markdownDescription": "Enables the is_enabled command without any pre-configured scope." + }, + { + "description": "Enables the items command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-items", + "markdownDescription": "Enables the items command without any pre-configured scope." + }, + { + "description": "Enables the new command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-new", + "markdownDescription": "Enables the new command without any pre-configured scope." + }, + { + "description": "Enables the popup command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-popup", + "markdownDescription": "Enables the popup command without any pre-configured scope." + }, + { + "description": "Enables the prepend command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-prepend", + "markdownDescription": "Enables the prepend command without any pre-configured scope." + }, + { + "description": "Enables the remove command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-remove", + "markdownDescription": "Enables the remove command without any pre-configured scope." + }, + { + "description": "Enables the remove_at command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-remove-at", + "markdownDescription": "Enables the remove_at command without any pre-configured scope." + }, + { + "description": "Enables the set_accelerator command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-accelerator", + "markdownDescription": "Enables the set_accelerator command without any pre-configured scope." + }, + { + "description": "Enables the set_as_app_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-app-menu", + "markdownDescription": "Enables the set_as_app_menu command without any pre-configured scope." + }, + { + "description": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-help-menu-for-nsapp", + "markdownDescription": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope." + }, + { + "description": "Enables the set_as_window_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-window-menu", + "markdownDescription": "Enables the set_as_window_menu command without any pre-configured scope." + }, + { + "description": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-windows-menu-for-nsapp", + "markdownDescription": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope." + }, + { + "description": "Enables the set_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-checked", + "markdownDescription": "Enables the set_checked command without any pre-configured scope." + }, + { + "description": "Enables the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-enabled", + "markdownDescription": "Enables the set_enabled command without any pre-configured scope." + }, + { + "description": "Enables the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-icon", + "markdownDescription": "Enables the set_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-text", + "markdownDescription": "Enables the set_text command without any pre-configured scope." + }, + { + "description": "Enables the text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-text", + "markdownDescription": "Enables the text command without any pre-configured scope." + }, + { + "description": "Denies the append command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-append", + "markdownDescription": "Denies the append command without any pre-configured scope." + }, + { + "description": "Denies the create_default command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-create-default", + "markdownDescription": "Denies the create_default command without any pre-configured scope." + }, + { + "description": "Denies the get command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-get", + "markdownDescription": "Denies the get command without any pre-configured scope." + }, + { + "description": "Denies the insert command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-insert", + "markdownDescription": "Denies the insert command without any pre-configured scope." + }, + { + "description": "Denies the is_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-is-checked", + "markdownDescription": "Denies the is_checked command without any pre-configured scope." + }, + { + "description": "Denies the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-is-enabled", + "markdownDescription": "Denies the is_enabled command without any pre-configured scope." + }, + { + "description": "Denies the items command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-items", + "markdownDescription": "Denies the items command without any pre-configured scope." + }, + { + "description": "Denies the new command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-new", + "markdownDescription": "Denies the new command without any pre-configured scope." + }, + { + "description": "Denies the popup command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-popup", + "markdownDescription": "Denies the popup command without any pre-configured scope." + }, + { + "description": "Denies the prepend command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-prepend", + "markdownDescription": "Denies the prepend command without any pre-configured scope." + }, + { + "description": "Denies the remove command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-remove", + "markdownDescription": "Denies the remove command without any pre-configured scope." + }, + { + "description": "Denies the remove_at command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-remove-at", + "markdownDescription": "Denies the remove_at command without any pre-configured scope." + }, + { + "description": "Denies the set_accelerator command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-accelerator", + "markdownDescription": "Denies the set_accelerator command without any pre-configured scope." + }, + { + "description": "Denies the set_as_app_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-app-menu", + "markdownDescription": "Denies the set_as_app_menu command without any pre-configured scope." + }, + { + "description": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-help-menu-for-nsapp", + "markdownDescription": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope." + }, + { + "description": "Denies the set_as_window_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-window-menu", + "markdownDescription": "Denies the set_as_window_menu command without any pre-configured scope." + }, + { + "description": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-windows-menu-for-nsapp", + "markdownDescription": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope." + }, + { + "description": "Denies the set_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-checked", + "markdownDescription": "Denies the set_checked command without any pre-configured scope." + }, + { + "description": "Denies the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-enabled", + "markdownDescription": "Denies the set_enabled command without any pre-configured scope." + }, + { + "description": "Denies the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-icon", + "markdownDescription": "Denies the set_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-text", + "markdownDescription": "Denies the set_text command without any pre-configured scope." + }, + { + "description": "Denies the text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-text", + "markdownDescription": "Denies the text command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`", + "type": "string", + "const": "core:path:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`" + }, + { + "description": "Enables the basename command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-basename", + "markdownDescription": "Enables the basename command without any pre-configured scope." + }, + { + "description": "Enables the dirname command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-dirname", + "markdownDescription": "Enables the dirname command without any pre-configured scope." + }, + { + "description": "Enables the extname command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-extname", + "markdownDescription": "Enables the extname command without any pre-configured scope." + }, + { + "description": "Enables the is_absolute command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-is-absolute", + "markdownDescription": "Enables the is_absolute command without any pre-configured scope." + }, + { + "description": "Enables the join command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-join", + "markdownDescription": "Enables the join command without any pre-configured scope." + }, + { + "description": "Enables the normalize command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-normalize", + "markdownDescription": "Enables the normalize command without any pre-configured scope." + }, + { + "description": "Enables the resolve command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-resolve", + "markdownDescription": "Enables the resolve command without any pre-configured scope." + }, + { + "description": "Enables the resolve_directory command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-resolve-directory", + "markdownDescription": "Enables the resolve_directory command without any pre-configured scope." + }, + { + "description": "Denies the basename command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-basename", + "markdownDescription": "Denies the basename command without any pre-configured scope." + }, + { + "description": "Denies the dirname command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-dirname", + "markdownDescription": "Denies the dirname command without any pre-configured scope." + }, + { + "description": "Denies the extname command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-extname", + "markdownDescription": "Denies the extname command without any pre-configured scope." + }, + { + "description": "Denies the is_absolute command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-is-absolute", + "markdownDescription": "Denies the is_absolute command without any pre-configured scope." + }, + { + "description": "Denies the join command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-join", + "markdownDescription": "Denies the join command without any pre-configured scope." + }, + { + "description": "Denies the normalize command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-normalize", + "markdownDescription": "Denies the normalize command without any pre-configured scope." + }, + { + "description": "Denies the resolve command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-resolve", + "markdownDescription": "Denies the resolve command without any pre-configured scope." + }, + { + "description": "Denies the resolve_directory command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-resolve-directory", + "markdownDescription": "Denies the resolve_directory command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`", + "type": "string", + "const": "core:resources:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`" + }, + { + "description": "Enables the close command without any pre-configured scope.", + "type": "string", + "const": "core:resources:allow-close", + "markdownDescription": "Enables the close command without any pre-configured scope." + }, + { + "description": "Denies the close command without any pre-configured scope.", + "type": "string", + "const": "core:resources:deny-close", + "markdownDescription": "Denies the close command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-icon-with-as-template`\n- `allow-set-show-menu-on-left-click`", + "type": "string", + "const": "core:tray:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-icon-with-as-template`\n- `allow-set-show-menu-on-left-click`" + }, + { + "description": "Enables the get_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-get-by-id", + "markdownDescription": "Enables the get_by_id command without any pre-configured scope." + }, + { + "description": "Enables the new command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-new", + "markdownDescription": "Enables the new command without any pre-configured scope." + }, + { + "description": "Enables the remove_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-remove-by-id", + "markdownDescription": "Enables the remove_by_id command without any pre-configured scope." + }, + { + "description": "Enables the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-icon", + "markdownDescription": "Enables the set_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_icon_as_template command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-icon-as-template", + "markdownDescription": "Enables the set_icon_as_template command without any pre-configured scope." + }, + { + "description": "Enables the set_icon_with_as_template command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-icon-with-as-template", + "markdownDescription": "Enables the set_icon_with_as_template command without any pre-configured scope." + }, + { + "description": "Enables the set_menu command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-menu", + "markdownDescription": "Enables the set_menu command without any pre-configured scope." + }, + { + "description": "Enables the set_show_menu_on_left_click command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-show-menu-on-left-click", + "markdownDescription": "Enables the set_show_menu_on_left_click command without any pre-configured scope." + }, + { + "description": "Enables the set_temp_dir_path command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-temp-dir-path", + "markdownDescription": "Enables the set_temp_dir_path command without any pre-configured scope." + }, + { + "description": "Enables the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-title", + "markdownDescription": "Enables the set_title command without any pre-configured scope." + }, + { + "description": "Enables the set_tooltip command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-tooltip", + "markdownDescription": "Enables the set_tooltip command without any pre-configured scope." + }, + { + "description": "Enables the set_visible command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-visible", + "markdownDescription": "Enables the set_visible command without any pre-configured scope." + }, + { + "description": "Denies the get_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-get-by-id", + "markdownDescription": "Denies the get_by_id command without any pre-configured scope." + }, + { + "description": "Denies the new command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-new", + "markdownDescription": "Denies the new command without any pre-configured scope." + }, + { + "description": "Denies the remove_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-remove-by-id", + "markdownDescription": "Denies the remove_by_id command without any pre-configured scope." + }, + { + "description": "Denies the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-icon", + "markdownDescription": "Denies the set_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_icon_as_template command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-icon-as-template", + "markdownDescription": "Denies the set_icon_as_template command without any pre-configured scope." + }, + { + "description": "Denies the set_icon_with_as_template command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-icon-with-as-template", + "markdownDescription": "Denies the set_icon_with_as_template command without any pre-configured scope." + }, + { + "description": "Denies the set_menu command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-menu", + "markdownDescription": "Denies the set_menu command without any pre-configured scope." + }, + { + "description": "Denies the set_show_menu_on_left_click command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-show-menu-on-left-click", + "markdownDescription": "Denies the set_show_menu_on_left_click command without any pre-configured scope." + }, + { + "description": "Denies the set_temp_dir_path command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-temp-dir-path", + "markdownDescription": "Denies the set_temp_dir_path command without any pre-configured scope." + }, + { + "description": "Denies the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-title", + "markdownDescription": "Denies the set_title command without any pre-configured scope." + }, + { + "description": "Denies the set_tooltip command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-tooltip", + "markdownDescription": "Denies the set_tooltip command without any pre-configured scope." + }, + { + "description": "Denies the set_visible command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-visible", + "markdownDescription": "Denies the set_visible command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`", + "type": "string", + "const": "core:webview:default", + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`" + }, + { + "description": "Enables the clear_all_browsing_data command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-clear-all-browsing-data", + "markdownDescription": "Enables the clear_all_browsing_data command without any pre-configured scope." + }, + { + "description": "Enables the create_webview command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-create-webview", + "markdownDescription": "Enables the create_webview command without any pre-configured scope." + }, + { + "description": "Enables the create_webview_window command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-create-webview-window", + "markdownDescription": "Enables the create_webview_window command without any pre-configured scope." + }, + { + "description": "Enables the get_all_webviews command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-get-all-webviews", + "markdownDescription": "Enables the get_all_webviews command without any pre-configured scope." + }, + { + "description": "Enables the internal_toggle_devtools command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-internal-toggle-devtools", + "markdownDescription": "Enables the internal_toggle_devtools command without any pre-configured scope." + }, + { + "description": "Enables the print command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-print", + "markdownDescription": "Enables the print command without any pre-configured scope." + }, + { + "description": "Enables the reparent command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-reparent", + "markdownDescription": "Enables the reparent command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_auto_resize command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-auto-resize", + "markdownDescription": "Enables the set_webview_auto_resize command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-background-color", + "markdownDescription": "Enables the set_webview_background_color command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_focus command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-focus", + "markdownDescription": "Enables the set_webview_focus command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-position", + "markdownDescription": "Enables the set_webview_position command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-size", + "markdownDescription": "Enables the set_webview_size command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_zoom command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-zoom", + "markdownDescription": "Enables the set_webview_zoom command without any pre-configured scope." + }, + { + "description": "Enables the webview_close command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-close", + "markdownDescription": "Enables the webview_close command without any pre-configured scope." + }, + { + "description": "Enables the webview_hide command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-hide", + "markdownDescription": "Enables the webview_hide command without any pre-configured scope." + }, + { + "description": "Enables the webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-position", + "markdownDescription": "Enables the webview_position command without any pre-configured scope." + }, + { + "description": "Enables the webview_show command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-show", + "markdownDescription": "Enables the webview_show command without any pre-configured scope." + }, + { + "description": "Enables the webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-size", + "markdownDescription": "Enables the webview_size command without any pre-configured scope." + }, + { + "description": "Denies the clear_all_browsing_data command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-clear-all-browsing-data", + "markdownDescription": "Denies the clear_all_browsing_data command without any pre-configured scope." + }, + { + "description": "Denies the create_webview command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-create-webview", + "markdownDescription": "Denies the create_webview command without any pre-configured scope." + }, + { + "description": "Denies the create_webview_window command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-create-webview-window", + "markdownDescription": "Denies the create_webview_window command without any pre-configured scope." + }, + { + "description": "Denies the get_all_webviews command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-get-all-webviews", + "markdownDescription": "Denies the get_all_webviews command without any pre-configured scope." + }, + { + "description": "Denies the internal_toggle_devtools command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-internal-toggle-devtools", + "markdownDescription": "Denies the internal_toggle_devtools command without any pre-configured scope." + }, + { + "description": "Denies the print command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-print", + "markdownDescription": "Denies the print command without any pre-configured scope." + }, + { + "description": "Denies the reparent command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-reparent", + "markdownDescription": "Denies the reparent command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_auto_resize command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-auto-resize", + "markdownDescription": "Denies the set_webview_auto_resize command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-background-color", + "markdownDescription": "Denies the set_webview_background_color command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_focus command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-focus", + "markdownDescription": "Denies the set_webview_focus command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-position", + "markdownDescription": "Denies the set_webview_position command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-size", + "markdownDescription": "Denies the set_webview_size command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_zoom command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-zoom", + "markdownDescription": "Denies the set_webview_zoom command without any pre-configured scope." + }, + { + "description": "Denies the webview_close command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-close", + "markdownDescription": "Denies the webview_close command without any pre-configured scope." + }, + { + "description": "Denies the webview_hide command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-hide", + "markdownDescription": "Denies the webview_hide command without any pre-configured scope." + }, + { + "description": "Denies the webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-position", + "markdownDescription": "Denies the webview_position command without any pre-configured scope." + }, + { + "description": "Denies the webview_show command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-show", + "markdownDescription": "Denies the webview_show command without any pre-configured scope." + }, + { + "description": "Denies the webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-size", + "markdownDescription": "Denies the webview_size command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-activity-name`\n- `allow-scene-identifier`\n- `allow-internal-toggle-maximize`", + "type": "string", + "const": "core:window:default", + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-activity-name`\n- `allow-scene-identifier`\n- `allow-internal-toggle-maximize`" + }, + { + "description": "Enables the activity_name command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-activity-name", + "markdownDescription": "Enables the activity_name command without any pre-configured scope." + }, + { + "description": "Enables the available_monitors command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-available-monitors", + "markdownDescription": "Enables the available_monitors command without any pre-configured scope." + }, + { + "description": "Enables the center command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-center", + "markdownDescription": "Enables the center command without any pre-configured scope." + }, + { + "description": "Enables the close command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-close", + "markdownDescription": "Enables the close command without any pre-configured scope." + }, + { + "description": "Enables the create command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-create", + "markdownDescription": "Enables the create command without any pre-configured scope." + }, + { + "description": "Enables the current_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-current-monitor", + "markdownDescription": "Enables the current_monitor command without any pre-configured scope." + }, + { + "description": "Enables the cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-cursor-position", + "markdownDescription": "Enables the cursor_position command without any pre-configured scope." + }, + { + "description": "Enables the destroy command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-destroy", + "markdownDescription": "Enables the destroy command without any pre-configured scope." + }, + { + "description": "Enables the get_all_windows command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-get-all-windows", + "markdownDescription": "Enables the get_all_windows command without any pre-configured scope." + }, + { + "description": "Enables the hide command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-hide", + "markdownDescription": "Enables the hide command without any pre-configured scope." + }, + { + "description": "Enables the inner_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-inner-position", + "markdownDescription": "Enables the inner_position command without any pre-configured scope." + }, + { + "description": "Enables the inner_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-inner-size", + "markdownDescription": "Enables the inner_size command without any pre-configured scope." + }, + { + "description": "Enables the internal_toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-internal-toggle-maximize", + "markdownDescription": "Enables the internal_toggle_maximize command without any pre-configured scope." + }, + { + "description": "Enables the is_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-always-on-top", + "markdownDescription": "Enables the is_always_on_top command without any pre-configured scope." + }, + { + "description": "Enables the is_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-closable", + "markdownDescription": "Enables the is_closable command without any pre-configured scope." + }, + { + "description": "Enables the is_decorated command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-decorated", + "markdownDescription": "Enables the is_decorated command without any pre-configured scope." + }, + { + "description": "Enables the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-enabled", + "markdownDescription": "Enables the is_enabled command without any pre-configured scope." + }, + { + "description": "Enables the is_focused command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-focused", + "markdownDescription": "Enables the is_focused command without any pre-configured scope." + }, + { + "description": "Enables the is_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-fullscreen", + "markdownDescription": "Enables the is_fullscreen command without any pre-configured scope." + }, + { + "description": "Enables the is_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-maximizable", + "markdownDescription": "Enables the is_maximizable command without any pre-configured scope." + }, + { + "description": "Enables the is_maximized command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-maximized", + "markdownDescription": "Enables the is_maximized command without any pre-configured scope." + }, + { + "description": "Enables the is_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-minimizable", + "markdownDescription": "Enables the is_minimizable command without any pre-configured scope." + }, + { + "description": "Enables the is_minimized command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-minimized", + "markdownDescription": "Enables the is_minimized command without any pre-configured scope." + }, + { + "description": "Enables the is_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-resizable", + "markdownDescription": "Enables the is_resizable command without any pre-configured scope." + }, + { + "description": "Enables the is_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-visible", + "markdownDescription": "Enables the is_visible command without any pre-configured scope." + }, + { + "description": "Enables the maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-maximize", + "markdownDescription": "Enables the maximize command without any pre-configured scope." + }, + { + "description": "Enables the minimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-minimize", + "markdownDescription": "Enables the minimize command without any pre-configured scope." + }, + { + "description": "Enables the monitor_from_point command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-monitor-from-point", + "markdownDescription": "Enables the monitor_from_point command without any pre-configured scope." + }, + { + "description": "Enables the outer_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-outer-position", + "markdownDescription": "Enables the outer_position command without any pre-configured scope." + }, + { + "description": "Enables the outer_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-outer-size", + "markdownDescription": "Enables the outer_size command without any pre-configured scope." + }, + { + "description": "Enables the primary_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-primary-monitor", + "markdownDescription": "Enables the primary_monitor command without any pre-configured scope." + }, + { + "description": "Enables the request_user_attention command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-request-user-attention", + "markdownDescription": "Enables the request_user_attention command without any pre-configured scope." + }, + { + "description": "Enables the scale_factor command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-scale-factor", + "markdownDescription": "Enables the scale_factor command without any pre-configured scope." + }, + { + "description": "Enables the scene_identifier command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-scene-identifier", + "markdownDescription": "Enables the scene_identifier command without any pre-configured scope." + }, + { + "description": "Enables the set_always_on_bottom command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-always-on-bottom", + "markdownDescription": "Enables the set_always_on_bottom command without any pre-configured scope." + }, + { + "description": "Enables the set_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-always-on-top", + "markdownDescription": "Enables the set_always_on_top command without any pre-configured scope." + }, + { + "description": "Enables the set_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-background-color", + "markdownDescription": "Enables the set_background_color command without any pre-configured scope." + }, + { + "description": "Enables the set_badge_count command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-badge-count", + "markdownDescription": "Enables the set_badge_count command without any pre-configured scope." + }, + { + "description": "Enables the set_badge_label command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-badge-label", + "markdownDescription": "Enables the set_badge_label command without any pre-configured scope." + }, + { + "description": "Enables the set_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-closable", + "markdownDescription": "Enables the set_closable command without any pre-configured scope." + }, + { + "description": "Enables the set_content_protected command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-content-protected", + "markdownDescription": "Enables the set_content_protected command without any pre-configured scope." + }, + { + "description": "Enables the set_cursor_grab command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-grab", + "markdownDescription": "Enables the set_cursor_grab command without any pre-configured scope." + }, + { + "description": "Enables the set_cursor_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-icon", + "markdownDescription": "Enables the set_cursor_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-position", + "markdownDescription": "Enables the set_cursor_position command without any pre-configured scope." + }, + { + "description": "Enables the set_cursor_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-visible", + "markdownDescription": "Enables the set_cursor_visible command without any pre-configured scope." + }, + { + "description": "Enables the set_decorations command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-decorations", + "markdownDescription": "Enables the set_decorations command without any pre-configured scope." + }, + { + "description": "Enables the set_effects command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-effects", + "markdownDescription": "Enables the set_effects command without any pre-configured scope." + }, + { + "description": "Enables the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-enabled", + "markdownDescription": "Enables the set_enabled command without any pre-configured scope." + }, + { + "description": "Enables the set_focus command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-focus", + "markdownDescription": "Enables the set_focus command without any pre-configured scope." + }, + { + "description": "Enables the set_focusable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-focusable", + "markdownDescription": "Enables the set_focusable command without any pre-configured scope." + }, + { + "description": "Enables the set_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-fullscreen", + "markdownDescription": "Enables the set_fullscreen command without any pre-configured scope." + }, + { + "description": "Enables the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-icon", + "markdownDescription": "Enables the set_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_ignore_cursor_events command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-ignore-cursor-events", + "markdownDescription": "Enables the set_ignore_cursor_events command without any pre-configured scope." + }, + { + "description": "Enables the set_max_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-max-size", + "markdownDescription": "Enables the set_max_size command without any pre-configured scope." + }, + { + "description": "Enables the set_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-maximizable", + "markdownDescription": "Enables the set_maximizable command without any pre-configured scope." + }, + { + "description": "Enables the set_min_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-min-size", + "markdownDescription": "Enables the set_min_size command without any pre-configured scope." + }, + { + "description": "Enables the set_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-minimizable", + "markdownDescription": "Enables the set_minimizable command without any pre-configured scope." + }, + { + "description": "Enables the set_overlay_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-overlay-icon", + "markdownDescription": "Enables the set_overlay_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-position", + "markdownDescription": "Enables the set_position command without any pre-configured scope." + }, + { + "description": "Enables the set_progress_bar command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-progress-bar", + "markdownDescription": "Enables the set_progress_bar command without any pre-configured scope." + }, + { + "description": "Enables the set_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-resizable", + "markdownDescription": "Enables the set_resizable command without any pre-configured scope." + }, + { + "description": "Enables the set_shadow command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-shadow", + "markdownDescription": "Enables the set_shadow command without any pre-configured scope." + }, + { + "description": "Enables the set_simple_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-simple-fullscreen", + "markdownDescription": "Enables the set_simple_fullscreen command without any pre-configured scope." + }, + { + "description": "Enables the set_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-size", + "markdownDescription": "Enables the set_size command without any pre-configured scope." + }, + { + "description": "Enables the set_size_constraints command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-size-constraints", + "markdownDescription": "Enables the set_size_constraints command without any pre-configured scope." + }, + { + "description": "Enables the set_skip_taskbar command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-skip-taskbar", + "markdownDescription": "Enables the set_skip_taskbar command without any pre-configured scope." + }, + { + "description": "Enables the set_theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-theme", + "markdownDescription": "Enables the set_theme command without any pre-configured scope." + }, + { + "description": "Enables the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-title", + "markdownDescription": "Enables the set_title command without any pre-configured scope." + }, + { + "description": "Enables the set_title_bar_style command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-title-bar-style", + "markdownDescription": "Enables the set_title_bar_style command without any pre-configured scope." + }, + { + "description": "Enables the set_visible_on_all_workspaces command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-visible-on-all-workspaces", + "markdownDescription": "Enables the set_visible_on_all_workspaces command without any pre-configured scope." + }, + { + "description": "Enables the show command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-show", + "markdownDescription": "Enables the show command without any pre-configured scope." + }, + { + "description": "Enables the start_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-start-dragging", + "markdownDescription": "Enables the start_dragging command without any pre-configured scope." + }, + { + "description": "Enables the start_resize_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-start-resize-dragging", + "markdownDescription": "Enables the start_resize_dragging command without any pre-configured scope." + }, + { + "description": "Enables the theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-theme", + "markdownDescription": "Enables the theme command without any pre-configured scope." + }, + { + "description": "Enables the title command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-title", + "markdownDescription": "Enables the title command without any pre-configured scope." + }, + { + "description": "Enables the toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-toggle-maximize", + "markdownDescription": "Enables the toggle_maximize command without any pre-configured scope." + }, + { + "description": "Enables the unmaximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-unmaximize", + "markdownDescription": "Enables the unmaximize command without any pre-configured scope." + }, + { + "description": "Enables the unminimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-unminimize", + "markdownDescription": "Enables the unminimize command without any pre-configured scope." + }, + { + "description": "Denies the activity_name command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-activity-name", + "markdownDescription": "Denies the activity_name command without any pre-configured scope." + }, + { + "description": "Denies the available_monitors command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-available-monitors", + "markdownDescription": "Denies the available_monitors command without any pre-configured scope." + }, + { + "description": "Denies the center command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-center", + "markdownDescription": "Denies the center command without any pre-configured scope." + }, + { + "description": "Denies the close command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-close", + "markdownDescription": "Denies the close command without any pre-configured scope." + }, + { + "description": "Denies the create command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-create", + "markdownDescription": "Denies the create command without any pre-configured scope." + }, + { + "description": "Denies the current_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-current-monitor", + "markdownDescription": "Denies the current_monitor command without any pre-configured scope." + }, + { + "description": "Denies the cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-cursor-position", + "markdownDescription": "Denies the cursor_position command without any pre-configured scope." + }, + { + "description": "Denies the destroy command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-destroy", + "markdownDescription": "Denies the destroy command without any pre-configured scope." + }, + { + "description": "Denies the get_all_windows command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-get-all-windows", + "markdownDescription": "Denies the get_all_windows command without any pre-configured scope." + }, + { + "description": "Denies the hide command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-hide", + "markdownDescription": "Denies the hide command without any pre-configured scope." + }, + { + "description": "Denies the inner_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-inner-position", + "markdownDescription": "Denies the inner_position command without any pre-configured scope." + }, + { + "description": "Denies the inner_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-inner-size", + "markdownDescription": "Denies the inner_size command without any pre-configured scope." + }, + { + "description": "Denies the internal_toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-internal-toggle-maximize", + "markdownDescription": "Denies the internal_toggle_maximize command without any pre-configured scope." + }, + { + "description": "Denies the is_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-always-on-top", + "markdownDescription": "Denies the is_always_on_top command without any pre-configured scope." + }, + { + "description": "Denies the is_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-closable", + "markdownDescription": "Denies the is_closable command without any pre-configured scope." + }, + { + "description": "Denies the is_decorated command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-decorated", + "markdownDescription": "Denies the is_decorated command without any pre-configured scope." + }, + { + "description": "Denies the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-enabled", + "markdownDescription": "Denies the is_enabled command without any pre-configured scope." + }, + { + "description": "Denies the is_focused command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-focused", + "markdownDescription": "Denies the is_focused command without any pre-configured scope." + }, + { + "description": "Denies the is_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-fullscreen", + "markdownDescription": "Denies the is_fullscreen command without any pre-configured scope." + }, + { + "description": "Denies the is_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-maximizable", + "markdownDescription": "Denies the is_maximizable command without any pre-configured scope." + }, + { + "description": "Denies the is_maximized command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-maximized", + "markdownDescription": "Denies the is_maximized command without any pre-configured scope." + }, + { + "description": "Denies the is_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-minimizable", + "markdownDescription": "Denies the is_minimizable command without any pre-configured scope." + }, + { + "description": "Denies the is_minimized command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-minimized", + "markdownDescription": "Denies the is_minimized command without any pre-configured scope." + }, + { + "description": "Denies the is_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-resizable", + "markdownDescription": "Denies the is_resizable command without any pre-configured scope." + }, + { + "description": "Denies the is_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-visible", + "markdownDescription": "Denies the is_visible command without any pre-configured scope." + }, + { + "description": "Denies the maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-maximize", + "markdownDescription": "Denies the maximize command without any pre-configured scope." + }, + { + "description": "Denies the minimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-minimize", + "markdownDescription": "Denies the minimize command without any pre-configured scope." + }, + { + "description": "Denies the monitor_from_point command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-monitor-from-point", + "markdownDescription": "Denies the monitor_from_point command without any pre-configured scope." + }, + { + "description": "Denies the outer_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-outer-position", + "markdownDescription": "Denies the outer_position command without any pre-configured scope." + }, + { + "description": "Denies the outer_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-outer-size", + "markdownDescription": "Denies the outer_size command without any pre-configured scope." + }, + { + "description": "Denies the primary_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-primary-monitor", + "markdownDescription": "Denies the primary_monitor command without any pre-configured scope." + }, + { + "description": "Denies the request_user_attention command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-request-user-attention", + "markdownDescription": "Denies the request_user_attention command without any pre-configured scope." + }, + { + "description": "Denies the scale_factor command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-scale-factor", + "markdownDescription": "Denies the scale_factor command without any pre-configured scope." + }, + { + "description": "Denies the scene_identifier command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-scene-identifier", + "markdownDescription": "Denies the scene_identifier command without any pre-configured scope." + }, + { + "description": "Denies the set_always_on_bottom command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-always-on-bottom", + "markdownDescription": "Denies the set_always_on_bottom command without any pre-configured scope." + }, + { + "description": "Denies the set_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-always-on-top", + "markdownDescription": "Denies the set_always_on_top command without any pre-configured scope." + }, + { + "description": "Denies the set_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-background-color", + "markdownDescription": "Denies the set_background_color command without any pre-configured scope." + }, + { + "description": "Denies the set_badge_count command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-badge-count", + "markdownDescription": "Denies the set_badge_count command without any pre-configured scope." + }, + { + "description": "Denies the set_badge_label command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-badge-label", + "markdownDescription": "Denies the set_badge_label command without any pre-configured scope." + }, + { + "description": "Denies the set_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-closable", + "markdownDescription": "Denies the set_closable command without any pre-configured scope." + }, + { + "description": "Denies the set_content_protected command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-content-protected", + "markdownDescription": "Denies the set_content_protected command without any pre-configured scope." + }, + { + "description": "Denies the set_cursor_grab command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-grab", + "markdownDescription": "Denies the set_cursor_grab command without any pre-configured scope." + }, + { + "description": "Denies the set_cursor_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-icon", + "markdownDescription": "Denies the set_cursor_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-position", + "markdownDescription": "Denies the set_cursor_position command without any pre-configured scope." + }, + { + "description": "Denies the set_cursor_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-visible", + "markdownDescription": "Denies the set_cursor_visible command without any pre-configured scope." + }, + { + "description": "Denies the set_decorations command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-decorations", + "markdownDescription": "Denies the set_decorations command without any pre-configured scope." + }, + { + "description": "Denies the set_effects command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-effects", + "markdownDescription": "Denies the set_effects command without any pre-configured scope." + }, + { + "description": "Denies the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-enabled", + "markdownDescription": "Denies the set_enabled command without any pre-configured scope." + }, + { + "description": "Denies the set_focus command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-focus", + "markdownDescription": "Denies the set_focus command without any pre-configured scope." + }, + { + "description": "Denies the set_focusable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-focusable", + "markdownDescription": "Denies the set_focusable command without any pre-configured scope." + }, + { + "description": "Denies the set_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-fullscreen", + "markdownDescription": "Denies the set_fullscreen command without any pre-configured scope." + }, + { + "description": "Denies the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-icon", + "markdownDescription": "Denies the set_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_ignore_cursor_events command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-ignore-cursor-events", + "markdownDescription": "Denies the set_ignore_cursor_events command without any pre-configured scope." + }, + { + "description": "Denies the set_max_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-max-size", + "markdownDescription": "Denies the set_max_size command without any pre-configured scope." + }, + { + "description": "Denies the set_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-maximizable", + "markdownDescription": "Denies the set_maximizable command without any pre-configured scope." + }, + { + "description": "Denies the set_min_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-min-size", + "markdownDescription": "Denies the set_min_size command without any pre-configured scope." + }, + { + "description": "Denies the set_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-minimizable", + "markdownDescription": "Denies the set_minimizable command without any pre-configured scope." + }, + { + "description": "Denies the set_overlay_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-overlay-icon", + "markdownDescription": "Denies the set_overlay_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-position", + "markdownDescription": "Denies the set_position command without any pre-configured scope." + }, + { + "description": "Denies the set_progress_bar command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-progress-bar", + "markdownDescription": "Denies the set_progress_bar command without any pre-configured scope." + }, + { + "description": "Denies the set_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-resizable", + "markdownDescription": "Denies the set_resizable command without any pre-configured scope." + }, + { + "description": "Denies the set_shadow command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-shadow", + "markdownDescription": "Denies the set_shadow command without any pre-configured scope." + }, + { + "description": "Denies the set_simple_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-simple-fullscreen", + "markdownDescription": "Denies the set_simple_fullscreen command without any pre-configured scope." + }, + { + "description": "Denies the set_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-size", + "markdownDescription": "Denies the set_size command without any pre-configured scope." + }, + { + "description": "Denies the set_size_constraints command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-size-constraints", + "markdownDescription": "Denies the set_size_constraints command without any pre-configured scope." + }, + { + "description": "Denies the set_skip_taskbar command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-skip-taskbar", + "markdownDescription": "Denies the set_skip_taskbar command without any pre-configured scope." + }, + { + "description": "Denies the set_theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-theme", + "markdownDescription": "Denies the set_theme command without any pre-configured scope." + }, + { + "description": "Denies the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-title", + "markdownDescription": "Denies the set_title command without any pre-configured scope." + }, + { + "description": "Denies the set_title_bar_style command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-title-bar-style", + "markdownDescription": "Denies the set_title_bar_style command without any pre-configured scope." + }, + { + "description": "Denies the set_visible_on_all_workspaces command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-visible-on-all-workspaces", + "markdownDescription": "Denies the set_visible_on_all_workspaces command without any pre-configured scope." + }, + { + "description": "Denies the show command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-show", + "markdownDescription": "Denies the show command without any pre-configured scope." + }, + { + "description": "Denies the start_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-start-dragging", + "markdownDescription": "Denies the start_dragging command without any pre-configured scope." + }, + { + "description": "Denies the start_resize_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-start-resize-dragging", + "markdownDescription": "Denies the start_resize_dragging command without any pre-configured scope." + }, + { + "description": "Denies the theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-theme", + "markdownDescription": "Denies the theme command without any pre-configured scope." + }, + { + "description": "Denies the title command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-title", + "markdownDescription": "Denies the title command without any pre-configured scope." + }, + { + "description": "Denies the toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-toggle-maximize", + "markdownDescription": "Denies the toggle_maximize command without any pre-configured scope." + }, + { + "description": "Denies the unmaximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-unmaximize", + "markdownDescription": "Denies the unmaximize command without any pre-configured scope." + }, + { + "description": "Denies the unminimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-unminimize", + "markdownDescription": "Denies the unminimize command without any pre-configured scope." + } + ] + }, + "Value": { + "description": "All supported ACL values.", + "anyOf": [ + { + "description": "Represents a null JSON value.", + "type": "null" + }, + { + "description": "Represents a [`bool`].", + "type": "boolean" + }, + { + "description": "Represents a valid ACL [`Number`].", + "allOf": [ + { + "$ref": "#/definitions/Number" + } + ] + }, + { + "description": "Represents a [`String`].", + "type": "string" + }, + { + "description": "Represents a list of other [`Value`]s.", + "type": "array", + "items": { + "$ref": "#/definitions/Value" + } + }, + { + "description": "Represents a map of [`String`] keys to [`Value`]s.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Value" + } + } + ] + }, + "Number": { + "description": "A valid ACL number.", + "anyOf": [ + { + "description": "Represents an [`i64`].", + "type": "integer", + "format": "int64" + }, + { + "description": "Represents a [`f64`].", + "type": "number", + "format": "double" + } + ] + }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + } + } +} \ No newline at end of file diff --git a/tauri/src-tauri/icons/128x128.png b/tauri/src-tauri/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..9331faa9575815180298344db707124d33e43de6 GIT binary patch literal 5123 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 literal 0 HcmV?d00001 diff --git a/tauri/src-tauri/icons/128x128@2x.png b/tauri/src-tauri/icons/128x128@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4d738d4aaf7bf435fb72918aca027ac2d268a43d GIT binary patch literal 10269 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 literal 0 HcmV?d00001 diff --git a/tauri/src-tauri/icons/Square107x107Logo.png b/tauri/src-tauri/icons/Square107x107Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1b6ee8f37ad3b6755df2df0b9fb33fcea6918e9a GIT binary patch literal 4304 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 Dy(p(q literal 0 HcmV?d00001 diff --git a/tauri/src-tauri/icons/Square30x30Logo.png b/tauri/src-tauri/icons/Square30x30Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ad2e2ba56aee499690bc637b72e76d02fbcd639a GIT binary patch literal 1069 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

=vdk3r{UhSQ^!ehnuwov7 zq&QPU`6toYjIH^$jmWhol`xh##;olMWSCUR>LZ$I`=&1K+j~B+Aq1;{pLnBYWTK>< zOrM4qfstmG;CS`5z`7F8(!F46Qb`j1mg?@MV8#UZ9`=#|muxskJO!mfod}v!@g@AY zS*O8TW3=S``&Z-Vh_$2cL6@mz!%;<>Jl(9r2bkrD8$+2cB`@9|a)0XWC%@ja>tr?R zdH;xl)B-dOJ-!fQphjw15{z4VPfev&I;75h!)S=(;x_=4gbSI^?e&SIMc`Gi_4sc9 zN0=dR_Z}VIVwfOJc=s`%MNA!UDG%YEB|hI;(EtEOj+2OkN`_zMOTpcCM28{60j|HI z$5MxMDKGwQ%5tsGAf3j&BO<_?PHJzNFY$U4$m-R3r)TC?x)Z{=NfEyo?w+N`0j1cA zCe(H+{C|CG?|F6E$kk%TqSJ9|z5iGTO0|Xiys-0*v4ksRE=e3tvHo6@08m4RoO3t^ zaR-{P35(Ci$*s$M*L1Ox;eID-NM5sI_?i*ua^-3foc9e6?soR3EfS1zml&yuh9pvEo5kVmOaYn2M1-Pz?yn)7`B&C=a1*pXV5uKq#8JwfNUalvV{j^`~n)Q`vp_S$HvQ1nb zm#iPs=s0n4Vp@VqGck0WD2n8;5VCh7MKKC6`%POY<#PwzSm*X{a}+=Ok5r#W=<#D@ zGVFqS^S>R$@GfCc4r77@Yl8F>1#;d&UetvTChFNIRVzATyJ_^=HC0Irp zHCKw=6tLf(3PGH*b-lkGDdk0`=?&HRqrRa61739zbkTS5b;*isQx=4C%X`P?L~m}e z{(gqLKt;c}NV`af0ZQKnh~9~|d}WM~M}iDu@-CvlJUUvxT(68A65{$Q)Ga@I38p+F z3uCjS3pqzLtaaM&%_`q1dU!2OSyEi%UyBpGT%G#}5g^Ve>IVE2`iW-!4FrS>E7qWx zX3GnO1IPkI0t~)4lXOq?v((U<)JP>ymF&loe^I2S8Ma2nlq0VOJH;JzndQ=f^@1Nx zi{y-NZ*D&r1xnY+ka&hfTmd%OxM)Dm=*82%+R+#=3xsgXIvm3+Qo6&cW`aL2{ACDW zZ#1lH#8}BKa|n3gEb^S_F!sNHMzS*OP*cKjI|#~ZKY>1*es;7ipzep)e%+hzz3#hC zCSG`DEg+c@<9~T>wR?Don{tO*d!0%R0 zhigY-m+kQ+Zgm81Lnk{9%~o>ZIcdP5N@8d(nP%cF@x(`inu7HCUPn0*V%|LFQ6~hv zu(-Iq?1OzjdC3@AiQ^cBjunOQTuSt~OeC^8>sTLA~)4dOJ0qWuE1pPxXy{^8nau;+$L0 znz1Sh{WIK&eU&_JQR?Gej3r%*r7R>+#}L|KUHkMnWZswWT)we-K3wl&0W#-09N~Bo z@vUcUrAs*PU%YVJNLO=p<;QFefup|Cc$5BEa2yLg+wp6Q2V5@fJR#xbeac8199MdH z!vxlekdk>B$u4fZm%n!N#RqXF_Jrd7`}bak?SXBG$+bHLh`zOTq4uGe-+A&jli8z; zpAi)k!807^uOMJyVS8oIT-6plhS&p!{|M{G@lXkQphOAOE&EXQdH?f-7iR*$1Up2* zs;N^`SHVW5}YX1(MoppZT4M1+ zH$A0DeTj%0zpn*~$?}&EYye&41BF(#FY-xie!)%y!QsW#1;hO*i$>i&3SCUD5ZP-j zUJiY|sqw2LxW241MYur3L&HwwV&Gg(Q@1jT<##5lcXQ?0w5QDUU*@w#oCX}&lwKz>DYROkShCZSSXX2F*XPaI zwYHVKS@R0*f!suQ>O}Ek=SJkk&`;8<@IDbPrzUF9$Fhce1NQd}gU2tQzQAiGgVN}8 zc|QREjF{IjjcOrD!_eZ>_3qyt&x6eI2i!$^)|S*_EHk4=3aD0oEU!$$1vfP1D4%grHan+ij$n(sY%j#gvg? z5UAQe*z_KSrm4AKeZ#uxE+`>?oZ(ei+{0COsz?B>32wx?eR%c4tVEJnW;GaRVU{13 zK<&6sshR|6@31SD0IBV|rTXxriq`10xJ#_&@i4#X9AAUv3*%%YYMw=xAC2td=G41n z(87RacD)|BOJbb6oU%@{`ZXPPGiM6&h9}qFir{^53y{u(>g{`o){O&HY zcz@Qb#NNAecAGxhui7?MfSb9f31~dF(9O0aVM<(8CTt$u{Xke>ic}Z_# zp`x&@8G@J6Fh8IJ4mu7+lpTkIb$=l+f3P?B!`MSjUS_leCP3klC$|1ru!$v2>d>e< zoun1n8@jVTlRp0!sdsyPeR5k2 zY7wb4bMt;4eV%Y>Khnj<`2*hki$Y)~c-@yJ8X`p9*37Hn2kXHF|Yc zrQK>Tf@iIYHULWjJHuH%hOx{ap1eF>nm(YSnpbm-_{9cVtg-~cj!Uzy{fTZj!)Vz_ z3kbgr6F1sg3nl1oID(9sBY0oZM2=5-$5j6_|GAM#yA(nCHd^C2e7KR)4mfVrXaZR3I-b=go0%_4-Uix=N^C+n-NA%ZK-%r!8?`ts^L$Udu_~T5g52!`|OEG9X z!blBJn5jzDoDM~cnraYWt~A?I=4e#LeL`pjDC-Ou2X;wAUTRXJK&T?Uvz_%~+mVDD zA;AFm3S8eM-$zc%Cnc&w->IIQ?UUFy(YSt}KHpOgV=_EgJ-&!J(DC^FKx6Xa>?->{ zB_@Q5=T9>cV#+#fa+j~mh!N%VKc<3T)A~3j21JMb>vSqS)<90$6jO+WZwO^X<$#b~ zIC4^u1cKv!qx;+YD5ZJEWM;>4%5z5i`;s(!!7impu;Lf-+-Y|_bS=qvE6dVnYcYxs zTpCwCYjNMxUi}x8%dfq0r*|-5X20Rzd`~ajB!Gy9>4zX@dH^S z19JpUg`#q#xrb^y3`!i4425tbN25X-ZNui{l!jY*{<5pZK%Y$AhD^+!3T5>-z?Ve` z`Yz9Le1m1{)JSW1@9p7W20w4FscUe0B6SH9DIkJpk%Lq)X>O`;+08zE7Ao@v(QK~q z!f|Y^gO{*?>`I(9gymX%Alrh)X7DE$Gp<30n9s-fHB5iA>Rln<1m@Rm#g#gDxhSi0 zRNAr9>Khjy!T;Lyyvt}X1poLno|R3+)be)6tmV;|rL7xoe-GIdCF{>;?Sh^Zo&?VU zUGr9lrtUyvC!t$LSb)b=hY7;SP;6XXA&7ndS6UN0gIHm(Ox3taU0rb6_ za<6mhf9+VjEk}=ed|cbmO7Qx0d$bJy8~3Sz$FstM!ESW{kmU%4@o9=14bSssBmR-X zsk*{a&N4Hhvo-YMXv@tBSvc8a^xlUlPRjbzn_BRl=rQ123DUgEUgBVcVky5HU&8Tn zz8w3Qz*Z1jzx{^%-b6hyzw}5?&LSz3GQ**>HX0_AR6-N%c9@;6YWDB(hx!oI4u=}( zh%*Q5AY1oNL7Ldl)N#^G?4H1D{zQIk)COK9%N#s_;ZER#iX@l>@BnRo`-chM zj|0y2zS2e_S=2usG=(B9_y?TD@qGpHrb68<^X*8(tWM;67zp z{~%_~4FdPY>4c)kQtUYQk^CRhNi1(IWMx{ocO7+%om8oHYHnXA$jMIFQPWPjIO4@g z-&I0Fn9aEWFQSm-^tLK|LR>Y*LW|!WMSi8tH6z`AGtuI`ZW+!R zAhf(S31#S7>gvo3Me2T&nw`CG5|o<>qS$(?R(Snn1f*w>r=+&#b{zjDEFFO;#S#;A`Mhp6 z+P)l1JSifBI^xuM-(a*oBg}#$o49%K4Ag1R+{lYqAj}%|`J=Oh@PHWVD=25FvUHGC zP$s_7rk&Iv?>+0vqrw3JV!YXBq1`$e@6=gY_Ddsz)+Es9cPdkU`_$Rv`%?#2U){-~ zyIGSwM;%uy@NE+%-!U&J1vA`A85)GhCspxx8!GcsD-wPBN-&ku6;{dd%0cd5b~lBC zP(KOAmf#BQ2huFZ#R@1P*2mGQtQZfp|7+TD4lj@-2aVS6mGYCC)q?~rc~U1f4@^z! zCr3XmqF~*c71hH$jY1_BCEc}uuo&e+T;Dg7RGk5vv>bVnhJAkQ-go}!_Rb30#}Z@K z(KYmM=_;9Id>ln1rUL9|Po@7Qho@TQ8GMCRY5HxJZmH1+-x8Evx$y@$E%n)-zj)tm9#l;sm`0*~+tiqadDc=1X^N_TDQdYR|zsy}XI00HkG653$dciR($OY5|a zR)v2{1}p}7$yxN&S$(BDFd@popyy-qpz0MFW_5^M ztiaO)cS)gfnhYnRs$`K1|9<(bsQONX3P2wnXu!pcwAk3$a7zn6DQfP&VM~`NQy{G; z1mXDFy603I`jso=;Iw*QsmaGN!&uJnHV0}pHY6M853gok3)}M*X8tzl(^loZRVLAB z;bCN2V0ub7J9ec7B`WY}Gcz_#Yl@jKX)|@}s-m7`_!-$_{CNHnIrs5m91r#%pYh!E zmn>ntzG7XYGPi8g<06PTVd(RH-OCQ6I_^mX^(k#|ps}?3&Zy1={DT~n+-|4&b$(8y zey=o9coe)js00}+G|m0XtiT5EDaEgZ;aOT`s$Wt<%0xd!EBMB2S4|9;8}zf1uUE3O z3%f5CfS4|;%GsDTYYw;*>dcbo73c|Knn6;-W$xy5GV7VJe|2XWTghU2#JOky#LG4H z8MBIpAnOU5DVoand4@5_p|kf^_&@LK?hIgF|MfC~-ngo#hnX7}nyg%Q7X*7TDv7hJ z_{Q+DrxjlV5Y{0}KThdEpsxg&yL~MCL>-Gjne5 z^tBOI=1xBvXzLkSr>+T`o@j<6zoqGyk6f=&MG}E_X9}#Sr9Pq$z0Qxs=`nqipi1%x zK5InU+P&l)&hKN2k@>9cryWjH8jmgBWiE*z!D|49g^^gDzEs^ z#{&YWji(Qja_8PXMCfPF2LX4iB`Cs{2=1l!5Dj+p1`gU!2(bUyqltzb{jyT6ksDA$ ztlpTY@6q4jDV{yelnysy#6c0On>G5vo71P6CgDc%|8tZG4=b+gtxaC;j|Z>$)KaHC zK!zrB3SgEAdk_g*(!~EK(}ztlWXoO&G-jcuI)4xXQ^!{SQD;DlaJMs2U^PMCxdF_v zk5=IkwJSKi+yKX>LH+vJi>j~2NDB77Z!4=C;os8$`8<@V@B3aMg8|2cs?ROdG^!u; yvK`F|4#9YEtBGjFLdp$cR|O#Q|6{CRSg;g5_q0g@oz8=<8=$9UsM)0M5dD8bp{PFq literal 0 HcmV?d00001 diff --git a/tauri/src-tauri/icons/android/values/ic_launcher_background.xml b/tauri/src-tauri/icons/android/values/ic_launcher_background.xml new file mode 100644 index 0000000..ea9c223 --- /dev/null +++ b/tauri/src-tauri/icons/android/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #fff + \ No newline at end of file diff --git a/tauri/src-tauri/icons/icon.icns b/tauri/src-tauri/icons/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..6048b37ccde9a9dacb3e1cfbb2627ec1fd56be0b GIT binary patch literal 141423 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%0D8qV`%CTo=*@rX+zHRKlqaU~w{%~PzQyAS^J1JeD zgz8^ph`@peU>x}iMGRPM=99P4jI{_C#nAEq&E31hZ_ow4}k2${Q& zTvVCgTFE%1K6f9~0TZkXtk)El7E;J;q1>6{G+^2Cl!=9uPmm6dZPR>bQa#QPhouyvq%Mdnh_(Gs z$uobK!uo`oq!L0oBN#iim(5Y<$y2x%m@-P4CBDIl5sI1B!ZYXaqA*rKVMAjDEDT1= z5{Me0AOvjJc*MK z(K%=B%nVSw0k{K9hS7+~L3jgY1`O^%q{Fxoqp(&A@MAI(j9)!?_eZN8u`{VNw{&=m zpthj)r-Kwj*$l|q+X4~Q@^ApoM++fFheCj`4R21V9dVdi(!YE15Q-oPE&nw~=l=dy)7ayP|$lAW`I$UvXml5wCkV&3h zN-ld%=^fOgwRTj~c!{XCX&g@U2~{-#PmYCq-%}m#TI=s7=JueP zzy9lzl_U6pVfG}MBVaSvqB%Z6!I`3^2P7T{mfwc~@$uIXMKAv$*b5vHg-jtvvI1ch zqBHeHr$n7MsMyuzop-kqL9=%>%5kT_Du#Vr3oP|+VI2I&aUYo5Wlx)SrV&f%5W$AQ`q(^2<^ z1teYD>Wi5)54$=frOyE29Q=mqQpdfQ9k?q8!O0EAm0H_1cZejVEhzE z=`Pq5CRThUbSK1TIMMDnti>d0gV|l?mTTRceM(#$`Sk!$3m8-&9)Fi02!DWnz!C&< z3NR8rosbmm)@d#nuE8#?y~5PWZ^AlK9`bbn(QMlUT+8>xzd-@o6bKjPb40}m-o@#= zbN0#_elPxRF37H?IZ*k`6@9`2c_cs$pSVZ?Nj@b43h2V#7XgI!sU{L`K89t1FOad4NN*Hdl^Jwc`us}LJV9@L};L1VF z3>9muz6%lbe}ajRYM>SYM4LYx2nsaNhyvP5go=^G=>q0uU*FG}%k7C`lnEf5dLr7m2`R$b0N@T$galfb z2y+a2LXnC9Py1-qy=}_5j-UO3VGoizv0;A8`Q66HUZ=AJ1GoSn=AQ+9o50yYGLhVn z|GWSs-H61kQQ3>F-e6AuLE{ddNy2a;23s23hkDo3@0726Q;mzCt*(lYa z>H_-K2LqCbe^?0Yh$vN5_pz2Mw8ce`MGi7F)jK1O?wnytdvCLhG^5Ug^Rp~`9ifty zsz*e#9KbxkMo5%O{R|h> zPM`)f3^V`+gXfg&i-UOx2!H?;%fsHbgOv?b=c%1xh;dTOM4-++T_oPThY6&Tn@CsNt*JWE#zP&zdNk zfWcZ(apD#HLjg$#phgJjh)tuR@pNm?1IC+M(5&J{zlwPb-G_>S%nSfQ zT!a)gWPM)|h(_2?2uQ-F&$j6wseI$S^UH`0)I+#jGEYsHZzG5vz`X!UkQUQBXqyLJ zJBdM*X@VD9HnANb2%0W_dsauK2zqOzV3dLYPwG(Lv$6Ovzf zf&WTUuw5CDWI{pEU;ncpsxUfI2q}Wb1k)P6Z$aMZKCT2c51LRK-xOkUwOYygOh6b^ z@3GV0a9lNyZV*L4Sp<+7=LT#IUs(X!0mJBjhaBb;GH=VOHE#ACDSH(_zd%_B$AI2J zfo&d?YR|z~kwngdmO!%fzgrBw7p%VM;}dNgz-jzs=*+xKo_^x$>MjV#KL`$8R4o9` zXn1V;?b=u+I1Kr1JCHc=W^j0PaD>is6eT?-et3L2=M!?}+=Cgwff+wMZo@K>fm?&( zr4qm3#LYWck*XN79A<$4-yQtS29ORg990~IJUU_+^bHVmjW%?4)btp8=TWv14DA8) zLNNm(955wR0!ED?0NM;7&TL%DzPWThcZmPtCkRimO7`Oo*rXg@$F#$ndymBy?9>*+ z_qE_}Qf3k{BB0o9f(keSEQC`rT~HTLWT`!`%O5+KM#GE-xC!S~AUlzH3_$XGTnbl^ zCl`4X*Zh)0hT46Tz=Jn>u(iGK6UQ_gLC;@9yYRhR3E&GC6*L62K)<0B4l-dC1A^it zMG>>ENo>XGiy%+`0Vs4&s5~=L#DnKGS{9-<=lR1@i_13R5-IFROwT*er80d=0O4+E zAD_fEHwMWgXg`GI)~GvO^%Dl*2#x@UjG|NoR1nmLU>bpLhoS;-!G9EBQQa~dQqLL8 zq=m5;M@em36V!6TT$J}%p-(>O6nvievR+R2E!W}hsiEO?Xxv-a(gB8y3Kd!pCN->1 zsQV%H^8Ykg@T{6&X85E808Z_BkamvtT^Xi5horlEX?>HI&T>2G_z)6rO1+cTrD{G9 zl>kJ~A4BMI8Lt}S>1^C}R)=>Eo#&9aFVs6|gK!F^ zHuJYm>5o_4a1NtDm{B3ji~hI%h@-`SfG~<00+L}feb*ZU^NcQD{m@fJ>C2mmN;fs_ zqEosp1^kA6@jft4_!R+EE)bHi)T$tYR6gNCixS$~!%>>f%oB2XhKu#M7-o8KgLD)t zYWzJVUIKZavo5Cro znh{5D05>MJ40uWaE&y8+fIGG4;F+o}02=U;k6CqWTbG;9sSi#Z==P&9p0G4ey+(ZRss_hm@lA4gK~(P{wM-t>EE16h1k%! zmfuhTt=JgDw1mp7dx_8W*%(`MtALRupXY3O{_0I$#q zYl)c+MU@DrBs?W|zw+uTBO||Ani&W>(76dj0453Ir0*np+NVGHbgD{Ui7yBg>I#5Xkk3{AA)~Qvv(q-`GIERV6pULj z)t$ks%7T&C>03^N=|<2BfJ|VD0x1jN7D9^9n=sR1p`O>m6{W{OpCncqVIkGRo_&aI z>7SJoXa=WdebYS2N{$80BTz{pl!DSp6$MitSL7vRIQ-gxCLLOjJjdF7kc1C?OL&Lu zhaO>{GzQRfI+D`bYSg(sWI+g>`bv-hfw>nH76Amj;?q3XbpgKt4vg}O-%~BjEuOfM zY0t%W?n+vGL+1k$Ykaf=b{S5aP|_&`XKH{0gI?n$WRLT}1<55pMT@{73Q6Mn+Vs!{ zd%-ve$D9tbglFrq4b+5F6Iiza<~YvNA$|{mNFM!%Q2);NKD@Mlh9$7AcOw|$2HTHZ z#Xf=oLtyw&D&Tat7@XX|gNq+6hXc5is@gMmZP6$=aL!KI(h|U^5Fv0> z2%kK7Uu(U_l6(*#le1j&of(|*!6LE5VI(J@)+C9WW7AV?=EToSU`;py0J#Q}6H*M= z*lfV0bmhzY$$%jlp9sLd8S+4M-ih3)mg3GDac|PNPf6Wf1#|$VqPhyBCS~B;L}Ty4 zOz%H|51xmQSpPC*#asC+TC6NcykT7bgFe%({$e@Yl4#bjI@?6MJwOdq5?ED!dTh)Jv3ETiY&HWb$ z@h3U+WE83ol?G3Gj$HGgFmnVJ)L!{jGl!pJMK+oW`#Gbh6q+xr|Bd$iBOM)LfG+$G zUP9(DG}>IiEVSuca9!+X^+<{v7d|osLXK(kp!hk8I~ zuD`aFdnw)#DFv+Xzj3mEuoun-&|7rTxfp@FF;k+aDVM{TB=Y7;Y z6ty4cBjD$MpOgxKs{#l*DLw7|68tTPW)C_k{W+W{@$hIvTp7jo*jv}I-6DsUpJ_WZ zmFl&9=~KI+h=rF_8aK#!Ju}(j^K4aIoX`F>`se!|$0bB3Bv({aL@YF3Blo$g>7`zc zaQcDbiz^Je1eN>GWybGv7JeH1?xWA>>%T@$wdai%ateJZuXown7QFj7Ilw8LYa7M$ z=2A68-OgG0tgN^==pAYx_^l3E)i(W{8=&pR3jZ`@d(J3DPU=}v~oYikRdhtk*g`ztJzW}`Xn)*gAA27k7s z)ZAT~wa6&jAkBtUv-z7B7SdaH65fB+ zZ`na%o|4<&8%8U=u~v&6>YH9}LZ4b^&rtc=a6oE@R^s*Si$C1X+!EbJEx^Q8n>`kz z=+?;{*>858)Z{fC7)BDmzEqgKQ|7%!hvqWr6_;4I3hGblo)W1|mfzELze*JMLgLAW z4$_y4yjw}HcbPWE`FSp1zYw$h9Cmj?r%|9PuhWR=ZnAAWZSVwHN%%!s;Q`VCgV`cjW77ACN6CpGVt`*0~4jqi>)RA7cO7X`RsH_sO{?V!7(yD&NQo$5y`S zoYt?yav}q=s^}QDnl>{xjMi+TX*jFBh*GkLqQi(U75lkasxYaUaoo<;lsLAKewg8d zN%6H@!3JB@nq6CU=a!V}Rr}%lL1J8^IyItN&tSD#t?HyK-cI41Yp24=?x?NoPgIpX z&)ui=_dI5JeD`pF8eCW%qfJ@CkPF4=vi3@L=mc6su4>FPF$?mxdj0~b>J@unw{LV& zI`cxQ68`1__DWY$xE#JbbcMCS``r3l4g_iC?uQkNCDbxz|+RHb*O0=8;M zJTqJxb6*_4LYBRA1?$#MhTN?V&AXjC33a7I8AmELB90+uKRwp;ZHGdRRSf!yV4A`y zvqUfV<6_H{h_@E@X{T~N=t!~-)!gxJH!iku-Ec^`y7ZN-;_gVQR$&=(B1~N-DA(oy zOJe;jA|JH-c42zQsCuw}>G7F6>96x0^_`A1`$qT2=*>?1GgDO4<%O#j z20UAc>72T?M;IepD8mUS8DA%{1Swu$H!Ne_GGNqiC}KQidVAmGO7`cx+@C|=l2Y%QA_e;uR5^#fh2J(mIx(X)Feb#U!yb0p7Id*B zJ7S|W@khVib)dF5cxL0YF+e${X&m`$H}7R}l(+pu=DrPdDM7rJj>cJ&S(OdU<=}MS z`~fE99EQ(|0~4L~nvn%a?dbUxbX?;_V_BWtQJV z7-E|AM@sk~{x;5cHl`saQtsnNzRPW43umzfT`pW+JKOVhTuhL_&1gMvS}56t*>r~v3r$S8f>o+_1^qL_nEVj1g?Fy>09jUeRHdyFP-(A zh%97dB(=AQI=er>-0VZGka1#lwgy|AGVa~3Sb{Yc%R1Tb{OXBdkN3<2`+YHeyG_Vx zjFbc;W7aJx)?6=#(>r%~b-2M(c&NkBX=hnQYuGo$o_sMyV%Qcs6<7Mb?Kf0MGUVw-j+HRIiOo9Ix!95nW}UvWRdND)M^OHkd-JFD`~RW5xY zaI5%vax?qmk)z+zKE{w7oZSmkWY4fB69qLIPb&*u+5z+7P>oj3vsx_{lbo{oks`8% zXSs`%0JH=;J-ZJyT3A*8;()8OdsWgvTLeSs^30Fv1MBZ+`*af|at8 zE`Ojy<9d*d@!bhW=aF)knffK%D;8##XI8%G&-9l&#EKKV*C%jq%R}a0>*%V_Z3M)V zW3by!nlI!&@hwZ2kMTxe!Yv@4K%?Bro+~&Fgmw)2*^A z!Hf0mgRRmU*BWr!SL`CSdbi82wDkOYJl()|$@pv=Rr=BPZD5C$^hD#UhYP1<&K?Qg zD^N@(#$dJ`ic(=!N+Mry4G);s$zK&ne`(oC+`J!yDfPA=b5N)4TLq-QNXYrXw!Gq~ zE8Cmzb%WMLT~bU2pS?40^L;m{Tz7cw>^Uh)Esk?7cV+Jpgw&HS8&3MP1Ro=48rZ`q zTzJ`7N_3IhCgUq6I>n>%?49EHYnscWVn}<03Hz;l6s*Vm40&W$w8V|FbJ!>G!q_KU z{aBwJizO~B2@>wj|E#`2;O4`Nq2GA3UC7JcsEC9{J@)FT=RmKd1m8e`sk((htv$EE zmFLfDP1rbT#L7qO*pv9`$>s&ye%-LXa`xcIEsKb$xsFnl3}u<#{0!~tpqZ*)7f9I# zA9V}&sSrNCQqM-V4{f%kIg@QG>eJ zst=N#zNZt7PB9dqi;lglsf^)XnWiOQmR+ZWH0hE0+?L$-w$Dk;6(W+v6rKw!nbibO~xG(Gj!+_fLs3~DIPWKzQ35;B(I7Jze}Kn zdbi&!$F)&w)%GVR7;za!-@XyP-rIhR$@!9e_M4I7PJKc8Lw^C`PR&(#hKj2=z}~TS z7q9%qwp8@XH?nG$deA^id)jgVY5&53{PrLUwnXp5#O5(lwbrm?(q1FJmN~zV_gw#00>lEGvb1UBQ zEhajk91@Kfwwi)Z6B@ft-8p{MKBhUXw)enk{NamOt;`9Ds=^nq?wRyc5@LZJWmsBi z(h?7uyRB+m=sVc0vFy*AaJ>IqJ=o_1NHOZ*KR z|9}p^(RId2W)hlzr%kl%on0pMCU&CEZt3DDqRIvLZ|~b?QTy(O&+deU!-Krg+vc5v zjf6u{a;&GWM-GBAt}~z)@L+Ec`MDC|F}o81{DPB_|OWV~C&r&@AFW`gaaLs6$0q}W247gYtzUKnBpoE9mI zpUsYvRt@ttdS5cAle2v~SQ=ES6a(KTMywJ-I}#uuALQPluIrb)h%+%5f3}~IxxMs9 zLxzH3;lz4Z=N855Anu&a6{b}!y__pIZ+(Lk521qEpq1V3K5CyTn=lDs+M-L&-9(PeFl2K$vQJRHv`r8XvU zHb=_7Kc=J}idhCk^@;*2`Sg~5U#tIHM_*DfxAe*6*Nm%q<{#&pmDfZyL>8sm)?WW9 zOE-S9^bLzkn7|1E=A%uEH++3!s`T24x#G)ZEAv}QUr1(p zBuLA>yY$}eL(@YC=D?&l;U;5R1pz3ven9pH=`CI7IU|#Fjf$PDy2B_PxLPMXCtAlU z8d9Mb4c%b6DP5o1tm4oc#XF*HqVrOS(2i75u4}N1v}Ruz90+$Q49wKk-E@8Q#&U-v z!A`tk8guW?MLqdM#?~;BBO-&RbYk~}1U=hsCd&P(aD4kwWqo0$Ipv=6b=-B*n6c?( zVk+mg@ZBQ;j%(;5gia$pWYaNvBYS;)?B4)D=%1 z&XQ!Ca*fjS@r2%d4GH$A6|ygD5t(??82clcwWwE=!f^yh6Pe>Vwmqt@xxBv zAFGum#T(EMH)YJI8vo$v6_4t(XQZ|(YoET(s1)F>`542il2!{zX|vRDk5tN@ezjaN zpkkHT;5{ed7ltIQBU?6>X}^W(ZMFh`yaX51HrJ3+nR=HI z5-w02pw4}9;jfGsAwR;Iyh0lF$7KA$8m*5ic?Tq}wj-ZTRjMZ>#15BMPSvVoaL*R; ze(4+Zn|djB`d$)#a7s{Avo^H5>~4vjN;^^2!#zaRpn4{SBX+1}P=Gyiv;$W!@da0O z$e!o<@z_+Fv&683BM$+r&3DEoA;yoe z1L=-~hC!Fd4mB>n(3|hxQ5%4W2oV`f%6`L-`b~q%1J1pPw`Ms-7NW75_m{Rm82+5o zeMzBs^uDa(o*WIU!xj#!BF@^jN(?Ly{F)K396J0p7yNbf+9AyIu$N^bfKx3sJ)D|r z@wVpmFJ8#*300q`=cPGyvVSpIXG5{ciOH3C*Uu^SJE-3+rngibO4%pb(MXZs$ZK1I zfB4<};I?mc?-qmMXAjna;yqje{!rjx`rTTi}713P8c&E=Q!y@Y!_~$F}`1iI)Y6eB|=PrY=^*o&7(YiXi zGls%jaAM=6*>w4)=W2gFx-o6e&N;o3!5#D{_E57si{$^jZLZm9qW4bfW@>KRlK%Yh zDVJQcq2%~08tl@@VMj)tT&;IhuHWpE@;JPQIOPnhIZ^oXOhGWIcba*=V8g54T+5i1 zzYLjUO zVv`&8)F5xcJ1XKcn3I*hcXM^4&Plv8ux zzUOR6zgp~|aN3ofeOviJ`_bf?8j&w9Gi}9y&3rokO<|k!$j{Ca@b$Rp+(U#boW#vb zbxzK8t$(MW>(;&@nE1GhA%~~Qt)*XmrycJzc$NK)H|BKzyh7x#pX&!(ho|ys0_!Vr z8#{AY-Jzr2?T?FVZ~HO&xUP!^r`0&g+qN;J4TuX8Byr;%#Xp8RkCZh?ZSTQbc)QGDD$z+F!3-Ix|d|I`=p7^hYj~0Q0rQ!I@Fyzxs>In z7>nc0gs2s14tm5feU-M!OTI@@7i#Mt2wvuNgnOXaxXB5Y8w=FwQ@as1l$r}-Nx*9vc>5M&~KlbT10 z|Ej=k_q!i*(_Q@8-GrP8i<2$Rf)?SVNG9*A6gA-Vt@O*@_Ij?>bBTvf)@T)~p5rDz zr6*ONe6c0?is)DWyKx@xHvNr%=Xxg_YERTRgPv6!ffhzE-Z21m;*$r{K% zTZ}E#(k-sNLCO*Q8j?atw@2uKB%1E2btYsL)4|p^ksW87vT#*^ORcib5Xl9r=;Y8&2k3+vSf7K3NO+Vp?X&$Z3 zdiRx-Q{P1UyD@;FB0W)r6=t>YSQ|OHU2~xgmNriSc{gIjyNWL+n0PGdAX!<~dj!$# zS{<91L&o2x`fb$L3DGXCaw-dLwxo1M#V0gMv3v6bwLn`Wh|!TKk6K0yFJ#{P>V>sq zZ+_bCPGMftW~c7ncIErj$Ec3&+S@)}j-mo3+o;$_;?J)q*iPN282^3yV;3FkS@=~v zpiQdr=WW^0Z7!ELgUZ3$nKFhArCP!uidBaahqn{am#;Eo`IkEX2&Q9 z$AYPar!yvc&@}Z)LZd9(yIIWjI(BKXM^K_>*TKX_4^~JYulCBxn!#=!n@jqPwdpv4 zneD%$bZ=*+&8kqEgT+0dP-2Pt8wr-`84Jv{p~qh{&Lp0h9XmeU8~dq|Wow$b;-UF< z%e_0+S3t$@i^&k6AAJkl%&%|WuRJ(&gIz%2CVlma;`Sdp`|`%_YyJ^0GZ-JEo<;f= zZuK1z^#GJ0E1_}knVrQ4MDAuJpN?5;#+ z6t_oUr(I=jH1p@%J13gc9$vm(xR#0?$o9aesB#C|^Ck^imRp4NyBk?$290N2$gX!i zd3)rUPTN~DGc%ufN4xN)bYS1|rnoh%hO%vMgl>^umPxP=z7XBXO1)00O-)72HuPU^ z3H~85w0-J+?a4pRV5Tj1wRPCllYcH; z*1CcmwJdT^Q@)$R_b5Z&-6=rZ7G8bycvyT17Mi5_$eTV=w5&vYPPJ!!l=;e_J$rYN zjy2>%aKkj#Ky?*kvyXQBNq6o?RS0 zbN9WF?jq!@C~|Vp&nNycyl&C(j=Jxr|Iqnsk1$_9k0EcgtzFe3xCzEqVZ&eEynI%> zj=dUCW`$RG{2p`*d|!kSlbFms6*@zia$3IIG+`2>|RFi(=Ye%CQ z@oqt%8g=IcLQU(()N%;EoQtnsGp~bzq!U9fMQVHT4N|!%rQ(OcX=$SU^T$hvg5ra^ z1J6!_Z=>b^UF>16v{sn4-H=seN=qOuj<84kma+4CF6&KW!RS(jbwEpKIh(Ce?s@rp zqs@*3#55lsPCvJnGRsu>9!&CENXQk_c%5L|Gbbs-4O~VITun4Obyle5Bk$xwx)+@r zKCONm#B{#RNGJI($sW*y?^!;er)9805R;cTJh`#;&b1Xz6$|41>^y5#TOWU!rQ6;( z@+3a=ZSS-w_wO&;)|caOoNO?p&(}ZJ!Ht-?Obyj~vAm$ee7u(V;^VcE;KU8n>heK% zJB`}qjlobyXD^^ofLYfhj-Lj5sW>z zStkVyTXH*VRglj;`PP+BZHqB?Gk?_f{iS|oX#2;aEe(z9`^$dn6wW#NG-AC#M|!(_ zouHolBuku6Dl5+gSB8KyO@!wjO1TWHs%3W^Ija{HG!(D##$(ivxAw$^XSsBRQ)*=$gs#y-k7X0g z^;xzL>RQj1)OJ{{TTK_4X4uv8zH!7t_V9!SypC!x%J$a`igO>})4DY1H;_(s-J2L5 zEmvNM`1#s8`JHW^wZl79Qdh7?cA8mt=vWCKKJ?8=0Y7yrf0FP*%6Pw#)a2r1(9!mj z=KuqfNnKrNr~cuN)~{WxB7F#CbBlvz@LtaAbddgradjb5b==9^j5?Ev0Vn&1KV_Co zGvwk1E%v@AiLhn39i2vt1lPalm&=sl_ztX@G2$5sQr=H>yp`6jJ2Q}_^Cs-7&bu(V zgmbB9iI}-kT=u{UT}GoB&+h0%?$L=`%g?jVtqa92!}s0IjBjKT)L6UIGh}0mvYjWl zG`+tVbgA;LYpu{V$9?8oBi&w%-x=kG9-n9nV}y%Sf(5p*aJDKQGqn|LQuTd$TgEoO zcc-1jn|_=ey7u_?h4$tTCNhp+x7BV}V>|B$t3T3?pj;=Iu!EqHHCmXQNvTS1eA5bXe=`6Z?A z*CRn~%okk9b;@}QnNaNcmz~wTt-^gg`w)+dl1*>N&8{7Pu4yZ}A^h8`>h$7?Fr32i z6{=e!ok~`JuSvQ65F=q0rO`fVf+U#?zP*J`%Z(MuHklh+y8#{!a*oaq$$n2|)8rVx-qQQMN(z@q3B;2c4=Lc4-zIFW zE6M#BUHUicN}GAXFQ32-)v8LYTcUXEWobc+C%i={`Cel6?Y~ z-tevaiJv*F7O1Mh6a18n(NPUw9c`dpaoF z&L-hC^NTk9DtPu28xfOak{Zdadwx5HW^FRjRay06?DB^xt(-WuvOeCmO&z!222J`e z;N6+6ODs3h6bvGhHXSz-u2MORsgExEaJ}G;V9k%A=F$Y!EfX#KXO}pns)5#R3q45M znQ>|#C>E-$qH`Se1(g@yQ59}rJNDHrZ#!JrW8^7*OxG}C{aoej?PG|jpR>1hV@;c9 zSHD+L{Y{ZAB@dWe!qjJN1)7#5OLQ7J-8bU-N)?7P;?1sJ7nO@UyOz`cXm|05i6yJ| z9%u-#EAQ<+WTa6)9kJrJ`BsKqHE-9cuy>2!YoD=~!XpgZpc%CUpRVy8J9lAOj6vy3 zRmeTz>a*3$*=vH7jT~=lFrUV+P>J=5tQG6x8&M?IfYI`X~x@&2QSCYpmuS*x`OeH&Te8Ly52`;BUQeQN4> z%(j+YRS$xfgkj(7tz&3Kk(1**hwtiqIza`GDi1Pehp9GCX(Fq=I}H8vtVDK^&ahfu zl@^W-#J%XqT%{J1NblPbu@yWnlv;%UHnzV~pQb7H&JfWHBQ<@H!QzHYf>tMA(d<~k z8opww29L**#nU?I=Z{|A>7u15__4+;Mel${i!6>M!kkS!eKXQvwD5z4ju6fI#d|YW zA_wC8c-u352HzMcgGZU|FN>w0 zWDhb%-WlY@uf=6oA30>Rzf~I)bnu&|JbN{hw?JsyPty?fu7#AAg@@LGCuAz2 z&uZpg9Q}txu(W+?pfBG|E0v{dnn1XKvtx)mS*OC+k$dkTNDLo$AtdsF93P4d-3{8N&rCT`0wnyk;&PS!_P47LfB4hWNqCynjvn1#Md&a5nD@VNQ z`+4nw6SS{FYfnqRby%6D&?#;GjlPa8+-Vf`wM-Uo_%nLFH02Aj>ize+59?-ko;euD ze_#(L?x(a@01t$rcZ9;3}YF&85 z^j`pwG?y9FT5h4ek+O0AqRpZ=CwHcZSqg$1z|*f)Y~h2IHtaBHTfN5dyfD&>DNV5r zeOFgk1Uxu(H|c3g`1DuX{G|tL7J_G;8!7vrsa29S1f;Ky{%kBAyt}5D+W$+g<=1PQ zUAxrR&mR1yAj=AN{nZ|j{B1yP&CdTXiUW203_voWEk^heeuO_V@H4a*3$ZP75Va(k z+6zYvqjzVhuILL*&I^jeAJ6K%uCx1$;nyDN-n(CDKYO7mK-p9vN2aPQ=LLixOLKcw zo!3+N`_B26?tRv-zpW`i|5Tu+h3biqC@behEx!bEUZS*|*Ww#I0yT*iJ51X$04z5k zkw`33R?&xAek{!`fvAU=T`w9e;;s2RjscX#1NI%*Ru&IHId3?k9)w>>MISNix5noE z2bS99*|q`D{frL|zCw*aJ-yqAiau2IA^ai35AYNnnD2AKvIZ{N=*uRy5t3^{_z`~P z;SWO8V?6S&q!IrXrwk|D7=YxE8v4fC7L@aX+Hzjh@`nRIz!pdiT;zsfR|bIXB%C_y zjAm0KfO1}x^P-&BKlp0~HFuZn@EiCPpxDyQjkUc;PqoqBO$|-Xi;6xh%^j7}+>*fW z+5@Qc1T;DyK{+qVc~zG41~KRN3VzQ#fYLVl((%jb_kNesa$W$G^8%LUcA8OX5$#{( zC9g@Z4Zz2phgv^%!SJd)0hIHioEPQ1u15YxoG$eR>H(B^0xk3+UQYWz6cv4_=tD)H z14SPxZ0f->{PrAZ^@CI23;=8C8ROEur=XR7j;RPg!jJIVgkKN#C0gvJ_ex^`ifz;- zFaR_z@XF9p=e|Zi*fjd-MxvY-<-7>LDg0YN zOMG5b&mRd7ptN0h$@s+@$t@|y1_BlJ04n;zFU^gLKErR2&GmEIlJ0%`mj=mW;0B;C zap=eiwp@4*Li*>MSJz;_`l>sO>1Y|KiQ7ng`4&g`m;{(68i~idRv_!WI z;7e%$O55nhF)cY}2G$c**ldJPb|1{_YmYiS{|_LG*rsSA_)Gu*002ovPDHLkV1nEY B8zTS! literal 0 HcmV?d00001 diff --git a/tauri/src-tauri/icons/icon.png b/tauri/src-tauri/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4d87b609b3a3eb3c8b1169ba5b7f6c006d996bf4 GIT binary patch literal 22312 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 literal 0 HcmV?d00001 diff --git a/tauri/src-tauri/icons/icon.svg b/tauri/src-tauri/icons/icon.svg new file mode 100644 index 0000000..bf82c39 --- /dev/null +++ b/tauri/src-tauri/icons/icon.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/tauri/src-tauri/icons/ios/AppIcon-20x20@1x.png b/tauri/src-tauri/icons/ios/AppIcon-20x20@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..a1f0f20ae91e5b51ec9564424f77e14c547ad557 GIT binary patch literal 744 zcmVP)c?!^3j4L$^lWLE1)$4d z{%A-J6CoUp7~99`Cj+nvwi0?$JwmG<6nk3sp~kxw zZyvuua%x7avC7(Nw4XkT(8v$;zx%|MKq!XkdS+KKbU*Au;?ERlE~j0IXbf+kbc2+O zD}Kx*fuL)s7jb1xHRdvNn48VOJd*JQh)sZ_Vl~Wislka_shASttaK`o#Wld?E0+)) z3Tn33>&4wW_b?TWD?SxSPbV#Uiq=dqEY2^$SzV<;Zd|`*Lqy|IXKFx2x`#K zun_+pLzSxrf*@G7TycZch=n2;e&4qe4LAiZ zN^TF6BQh~AWD+U-8vcgyp;3KXrj`ay!;tDFCiq+1EaJw(lN=c3!i*;@;6I#iu)ZT5 zZ0!3Ou|{KPQ=GGF^gH15v1grKgcN=Ow;w%V&wE}$mStk;c_sRzYD<#D0{%m|aPB-& a%itgUBb8zp#Q=x^0000T3FT^&s!%~H5)fJn1XP|1;f_aaWjeFF-0khoJ`UT-?(N*n-puFb z@txoAXD2j4mD;*GaJJ?W>TfmTcITe}VVC$pZ!sr6wdHb|TqoAbb<$6id_HS%Qp*M-WCEvXkI27anV7{(aN_83IFphCfcFOb@n*>`3g=qdCclhAUOH7Jj--thm41B07|#DBj}1pm;Mmo3_bv{V9T7`xHFZ}|-~79F`bcmi z))xLu8~Sj7;?IKfuKYZ6;hfOg-iA3*v5O9N-t7^B*A{=r>B1>?u;E4uf>SRU?Vk+` z3nO#94jck_a8?$+KAdvOG;kIrC_F3-_Swh*Px}nvto~UA9Bb`b!*#(PiW~&s_|un? zmLgWQG&MgSoMOanfgSgFaIE~<_&9pUhAiGh2aaWJn&~rvBbpN=(AbJpCsw36LxWTI zty(5_Ga)rzTY-)jEL?!qu5?V(?<_wwFvx}DLFmB+rr0VR;lWAo{7V*?ZOk`Polf61ASe+;(LqZmmw~BIUY_;q4L8M=*6W(#d0a2=l&GN|6%jfmsaUxoV4U@#^#b%n6uu_Lu=hlbT+rcYP#XMh6e+~aOJ+nh2yG+ zTxJW^TuMw|sk`Qk($xz!h)YeBS@dmA^+vLXVlIV8IOsjs($uQc$iRKXtxVK0i1j7N zW@M45&s!!d{attbokm7R;>_7fytl7J{Qk-3$Hki^R>ta-Ymue-3!hOPk;eLHw`R)) z-kF@3@OSFmN0IeGH%L2HY)$ zeEErTjoeI)PtvI#f_a|-OQ+H9moiq8x0<%@B8{yJRO?f4hkXw9Y}r zoGk%1a^3Ve{A|xbjPws%hf_(A5W7B&@EsxTk6tOthAZb)@hcPTUrt>_S92Q{(P>Y1 zt%hTs1Czc9^!?RC?_LTvr0Z;%8?Lerx>l_rwT(9fn82|t0};V0DA=tw|A;df21U#~ zLCaRPRQA%^^~9c>kc`^K26I1wew;r11y_QM&v7eo{IE-!(+S)5E!zZLkIjO3>zhl~ z;Rr7#M4!cl#e$86UGq2R5*Yd;#2ik?T+;X0I3YR(T#>twq&ici049qKzFwS1di(AP zMsYs<_@Q-o(l{_6eUDkXjQm>d5uS>Ql8!nS$^5$PQ(=55{4LvvM)8TUR++n#*5HcVZaQ*53v6n+QU00KLL-}%=c`D|?G_pW stG6UUdghYZE@x80b}QQuO0b#qF93oumb((xssI2007*qoM6N<$f*7RrwEzGB literal 0 HcmV?d00001 diff --git a/tauri/src-tauri/icons/ios/AppIcon-20x20@2x.png b/tauri/src-tauri/icons/ios/AppIcon-20x20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6e067448f2ad3cca89ee5b10a54a2c29e0a0b5 GIT binary patch literal 1542 zcmV+h2Ko7kP)T3FT^&s!%~H5)fJn1XP|1;f_aaWjeFF-0khoJ`UT-?(N*n-puFb z@txoAXD2j4mD;*GaJJ?W>TfmTcITe}VVC$pZ!sr6wdHb|TqoAbb<$6id_HS%Qp*M-WCEvXkI27anV7{(aN_83IFphCfcFOb@n*>`3g=qdCclhAUOH7Jj--thm41B07|#DBj}1pm;Mmo3_bv{V9T7`xHFZ}|-~79F`bcmi z))xLu8~Sj7;?IKfuKYZ6;hfOg-iA3*v5O9N-t7^B*A{=r>B1>?u;E4uf>SRU?Vk+` z3nO#94jck_a8?$+KAdvOG;kIrC_F3-_Swh*Px}nvto~UA9Bb`b!*#(PiW~&s_|un? zmLgWQG&MgSoMOanfgSgFaIE~<_&9pUhAiGh2aaWJn&~rvBbpN=(AbJpCsw36LxWTI zty(5_Ga)rzTY-)jEL?!qu5?V(?<_wwFvx}DLFmB+rr0VR;lWAo{7V*?ZOk`Polf61ASe+;(LqZmmw~BIUY_;q4L8M=*6W(#d0a2=l&GN|6%jfmsaUxoV4U@#^#b%n6uu_Lu=hlbT+rcYP#XMh6e+~aOJ+nh2yG+ zTxJW^TuMw|sk`Qk($xz!h)YeBS@dmA^+vLXVlIV8IOsjs($uQc$iRKXtxVK0i1j7N zW@M45&s!!d{attbokm7R;>_7fytl7J{Qk-3$Hki^R>ta-Ymue-3!hOPk;eLHw`R)) z-kF@3@OSFmN0IeGH%L2HY)$ zeEErTjoeI)PtvI#f_a|-OQ+H9moiq8x0<%@B8{yJRO?f4hkXw9Y}r zoGk%1a^3Ve{A|xbjPws%hf_(A5W7B&@EsxTk6tOthAZb)@hcPTUrt>_S92Q{(P>Y1 zt%hTs1Czc9^!?RC?_LTvr0Z;%8?Lerx>l_rwT(9fn82|t0};V0DA=tw|A;df21U#~ zLCaRPRQA%^^~9c>kc`^K26I1wew;r11y_QM&v7eo{IE-!(+S)5E!zZLkIjO3>zhl~ z;Rr7#M4!cl#e$86UGq2R5*Yd;#2ik?T+;X0I3YR(T#>twq&ici049qKzFwS1di(AP zMsYs<_@Q-o(l{_6eUDkXjQm>d5uS>Ql8!nS$^5$PQ(=55{4LvvM)8TUR++n#*5HcVZaQ*53v6n+QU00KLL-}%=c`D|?G_pW stG6UUdghYZE@x80b}QQuO0b#qF93oumb((xssI2007*qoM6N<$f*7RrwEzGB literal 0 HcmV?d00001 diff --git a/tauri/src-tauri/icons/ios/AppIcon-20x20@3x.png b/tauri/src-tauri/icons/ios/AppIcon-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..4bc935c51b265549af8a7248a50088bb8a044466 GIT binary patch literal 2411 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 AI{*Lx literal 0 HcmV?d00001 diff --git a/tauri/src-tauri/icons/ios/AppIcon-29x29@2x.png b/tauri/src-tauri/icons/ios/AppIcon-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3abd480de3ba505fe26e913fb433bcf9cc0b0a55 GIT binary patch literal 2226 zcmV;j2u=5iP)?!soEO+DRTVU&(sjI2c5|Y#dAJGoO|ir$ag$9&7_2} zVALBRebRIEFa{fZVE`ip+Hk88zTCMT3QLQnLr9HR3CZ{3vNLAGnzvUA0`r3IENaXsq^ar|CH6QT`AU)&xAdw4pA13&Nz7ukK<*|JyhA z17e1)HQ%_#NXoF_82I=?Iv>uSI$Oi|cIo^8 zDcJk^fRGyR@qF^fVzmO>+|n!#DL7uqug-eCp2pj(HrZ(^fuwD;zK+pJhD7o*gt`V` zw=~0tghO~_g!YigJI~HrEX~cJlMD%-ekqdVw|b@-9Ty8DN5#l~apLjFHEek@5n~^< z%nFMPgNI&eg5(z`8ZY3cvX4?`1qBB|!uW9*6lwC}1mk(~tnT0uNlM^W@ z6q55}X4upuBwI_0$gF7#=R#t}WU$=63nlq`q3TeD&#A~UX(^DkWC3&!3ZSqxWt9pc zIeGHPGX_mWTFERu9w%R1^#=4EJ{V5p%-AbS-`1uIk{Ic*N_Q5)lL6f! zdDaw#A{=>mNRDw-c={hn(x-jH2S8Z#P$(}dmE0zMS^3^lS~HTfra%C0_q-4?rJGJz zOG?+Lqb4QNTdNLLf>u^lRzV>nVuz`aZe4lS$-0P# zIbJy=N1y6^`Iw@Rj?_ujC60iW*5F952X-tJi*RuBb*0NJUR8s-IuTDZZ8X906UQJU za|XQ*4Go22yi!LF5++9C$UWp>8_ zvk|IKS9^WGU&KIYB5l=&FD^;Ha_5Xxt!9yGiCs5OJ9^|8J-C*)HP7w((#1=#86SKu zAvyT`RwW{xRWFGUG+q6RlPPU1G}8X!%(eBB1cz8Yb>eCOi7qbPyLAVb=s-iPyRtQW=!&EO(2O*9W!M-+-tf64VSNp3JxhXQm4g2&xI4U zG#C*Zr3q-}YxC)gEBkJbELG*J*|A!zX0^50Tpfs7BefzLAEa%b{`I&rRmGD}R*TiF z@YvxreC2GtD#-r0=gwZXh*sJBbz7vnp(62)5>>xs7an7Gysw!5L4Ch!$ zO7XzgJE5Ym#K$C;63DK6veMN6zvmI=XrDcv>IJK}nkXQdvivQ7AMQ{tIHcBS=!c;q z;-Xv|o7!>dR+p4R9i9d~Uw+#6i&eQ>&0q{hZ1U&?^m}y`qjaGs+#!r3F@y{7OugF! z2@Dzd56hBSpa~@TBz8nBo8xGyYo5QY*8Rq-ii3P;F%uLqKV7PfB&oig&ex zL}Ggc{SQfk8`iF;kZ${R=V#4x>@B4GTyfiF9u=gR%#xBOX_KV7a!XS5 z-$6(RwPvFU{Z#Zbqj+DfLYbu`P13t=$o<&WCMAQqfbq`AgNI9@_)rP5;vLOr>+8s8 zjM9yWN@W%ol9U{A>q0^d*cr%RGN#V}AwZ}72ev%96FEE8UjP6A07*qoM6N<$g2;F* AI{*Lx literal 0 HcmV?d00001 diff --git a/tauri/src-tauri/icons/ios/AppIcon-29x29@3x.png b/tauri/src-tauri/icons/ios/AppIcon-29x29@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..8a208031cd1415fa5c3af1ea1bc15a1df6e37d38 GIT binary patch literal 3366 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 literal 0 HcmV?d00001 diff --git a/tauri/src-tauri/icons/ios/AppIcon-40x40@1x.png b/tauri/src-tauri/icons/ios/AppIcon-40x40@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6e067448f2ad3cca89ee5b10a54a2c29e0a0b5 GIT binary patch literal 1542 zcmV+h2Ko7kP)T3FT^&s!%~H5)fJn1XP|1;f_aaWjeFF-0khoJ`UT-?(N*n-puFb z@txoAXD2j4mD;*GaJJ?W>TfmTcITe}VVC$pZ!sr6wdHb|TqoAbb<$6id_HS%Qp*M-WCEvXkI27anV7{(aN_83IFphCfcFOb@n*>`3g=qdCclhAUOH7Jj--thm41B07|#DBj}1pm;Mmo3_bv{V9T7`xHFZ}|-~79F`bcmi z))xLu8~Sj7;?IKfuKYZ6;hfOg-iA3*v5O9N-t7^B*A{=r>B1>?u;E4uf>SRU?Vk+` z3nO#94jck_a8?$+KAdvOG;kIrC_F3-_Swh*Px}nvto~UA9Bb`b!*#(PiW~&s_|un? zmLgWQG&MgSoMOanfgSgFaIE~<_&9pUhAiGh2aaWJn&~rvBbpN=(AbJpCsw36LxWTI zty(5_Ga)rzTY-)jEL?!qu5?V(?<_wwFvx}DLFmB+rr0VR;lWAo{7V*?ZOk`Polf61ASe+;(LqZmmw~BIUY_;q4L8M=*6W(#d0a2=l&GN|6%jfmsaUxoV4U@#^#b%n6uu_Lu=hlbT+rcYP#XMh6e+~aOJ+nh2yG+ zTxJW^TuMw|sk`Qk($xz!h)YeBS@dmA^+vLXVlIV8IOsjs($uQc$iRKXtxVK0i1j7N zW@M45&s!!d{attbokm7R;>_7fytl7J{Qk-3$Hki^R>ta-Ymue-3!hOPk;eLHw`R)) z-kF@3@OSFmN0IeGH%L2HY)$ zeEErTjoeI)PtvI#f_a|-OQ+H9moiq8x0<%@B8{yJRO?f4hkXw9Y}r zoGk%1a^3Ve{A|xbjPws%hf_(A5W7B&@EsxTk6tOthAZb)@hcPTUrt>_S92Q{(P>Y1 zt%hTs1Czc9^!?RC?_LTvr0Z;%8?Lerx>l_rwT(9fn82|t0};V0DA=tw|A;df21U#~ zLCaRPRQA%^^~9c>kc`^K26I1wew;r11y_QM&v7eo{IE-!(+S)5E!zZLkIjO3>zhl~ z;Rr7#M4!cl#e$86UGq2R5*Yd;#2ik?T+;X0I3YR(T#>twq&ici049qKzFwS1di(AP zMsYs<_@Q-o(l{_6eUDkXjQm>d5uS>Ql8!nS$^5$PQ(=55{4LvvM)8TUR++n#*5HcVZaQ*53v6n+QU00KLL-}%=c`D|?G_pW stG6UUdghYZE@x80b}QQuO0b#qF93oumb((xssI2007*qoM6N<$f*7RrwEzGB literal 0 HcmV?d00001 diff --git a/tauri/src-tauri/icons/ios/AppIcon-40x40@2x-1.png b/tauri/src-tauri/icons/ios/AppIcon-40x40@2x-1.png new file mode 100644 index 0000000000000000000000000000000000000000..0ba6ba354bd968ad4d8ef57c95dcd1e15a4cb0d4 GIT binary patch literal 3159 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 literal 0 HcmV?d00001 diff --git a/tauri/src-tauri/icons/ios/AppIcon-40x40@2x.png b/tauri/src-tauri/icons/ios/AppIcon-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0ba6ba354bd968ad4d8ef57c95dcd1e15a4cb0d4 GIT binary patch literal 3159 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 literal 0 HcmV?d00001 diff --git a/tauri/src-tauri/icons/ios/AppIcon-40x40@3x.png b/tauri/src-tauri/icons/ios/AppIcon-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..4169c3da41480f33d7bbda018301b811ac3ffe5b GIT binary patch literal 4921 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

RzzRe-e-x}qjoamjVwXg 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 literal 0 HcmV?d00001 diff --git a/tauri/src-tauri/icons/ios/AppIcon-60x60@2x.png b/tauri/src-tauri/icons/ios/AppIcon-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4169c3da41480f33d7bbda018301b811ac3ffe5b GIT binary patch literal 4921 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 rk4flynM8r;?HzB{^E@ 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 literal 0 HcmV?d00001 diff --git a/tauri/src-tauri/icons/ios/AppIcon-76x76@1x.png b/tauri/src-tauri/icons/ios/AppIcon-76x76@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..ee5f39ca721cc463ae658619b9397cdac476221d GIT binary patch literal 3092 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 P00000NkvXXu0mjfjki39 literal 0 HcmV?d00001 diff --git a/tauri/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png b/tauri/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4e50a319c80e2aa12eda0eb00d7685a0b3abf3ea GIT binary patch literal 6850 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"#app"); +if (!app) throw new Error("LineUp host root is missing"); + +app.innerHTML = ` +

+ + +
`; + +const $ = (selector: string): T => { + const found = document.querySelector(selector); + if (!found) throw new Error(`Missing element: ${selector}`); + return found; +}; +const messages = $("#messages"); +const loginView = $("#login-view"); +const chatView = $("#chat-view"); +const presence = $("#presence"); +$("#api").value = session.api; + +function api(path: string): string { return `${session.api.replace(/\/$/, "")}${path}`; } +function scrollLatest(): void { messages.scrollTop = messages.scrollHeight; } +function setPresence(value: string): void { presence.textContent = value; } +function addSystem(message: string): void { const item = document.createElement("p"); item.className = "system"; item.textContent = message; messages.append(item); scrollLatest(); } + +function normalizeAPIAddress(value: string): string { + const candidate = value.trim(); + if (!candidate) throw new Error("请输入 AppServer 地址。"); + const withProtocol = /^https?:\/\//i.test(candidate) ? candidate : `http://${candidate}`; + let parsed: URL; + try { parsed = new URL(withProtocol); } catch { throw new Error("AppServer 地址格式不正确,例如 http://100.121.118.116:8090。"); } + if (parsed.protocol !== "http:" && parsed.protocol !== "https:") throw new Error("AppServer 地址仅支持 http:// 或 https://。"); + if (!parsed.hostname) throw new Error("AppServer 地址缺少主机名或 IP 地址。"); + return parsed.toString().replace(/\/$/, ""); +} + +function loginFailureMessage(reason: unknown): string { + if (reason instanceof DOMException && reason.name === "AbortError") return "连接 AppServer 超时(10 秒)。请确认 Tailscale 已连接,且服务地址和端口可访问。"; + const message = reason instanceof Error ? reason.message : ""; + if (message === "Load failed" || message === "Failed to fetch") return "无法连接 AppServer。请确认 Tailscale 已连接,并检查地址是否为 http://100.121.118.116:8090。"; + return message || "登录失败,请稍后重试。"; +} + +function appendBubble(role: "human" | "agent", content: string, markdown = false): HTMLElement { + const row = document.createElement("article"); row.className = `message-row ${role}`; + if (role === "agent") { const avatar = document.createElement("span"); avatar.className = "message-avatar"; avatar.textContent = "✦"; row.append(avatar); } + const bubble = document.createElement("div"); bubble.className = "bubble"; + if (markdown) { + bubble.classList.add("markdown"); + bubble.innerHTML = DOMPurify.sanitize(marked.parse(content, { gfm: true, breaks: true }) as string, { FORBID_TAGS: ["style", "form", "input", "button"] }); + bubble.querySelectorAll("a").forEach(link => { link.target = "_blank"; link.rel = "noopener noreferrer"; }); + } else bubble.textContent = content; + const meta = document.createElement("small"); meta.className = "meta"; meta.textContent = new Date().toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" }); + bubble.append(meta); row.append(bubble); messages.append(row); scrollLatest(); return row; +} + +function showThinking(detail = "正在思考…"): void { + thinking?.remove(); + thinking = appendBubble("agent", detail); + thinking.classList.add("thinking"); + setPresence("正在思考"); +} +function hideThinking(): void { thinking?.remove(); thinking = undefined; } + +function render(item: ConversationItem): void { + switch (item.kind) { + case "markdown": hideThinking(); appendBubble("agent", item.markdown, true); break; + case "agent-status": item.status === "thinking" ? showThinking(item.detail || "正在思考…") : (hideThinking(), setPresence(item.detail || item.status || "在线")); break; + case "progress": { const percent = Math.max(0, Math.min(100, item.percent)); addSystem(`${item.title || "Agent 任务"}:${percent}%${item.status ? ` · ${item.status}` : ""}`); break; } + case "error": hideThinking(); addSystem(`Agent 错误:${item.message}`); break; + case "surface": addSystem(`收到扩展界面请求(${item.envelope.type});Mini Runtime Surface Host 将在下一步接入。`); break; + case "app-call": addSystem("收到 App 能力调用请求;Capability 授权 UI 将在下一步接入。"); break; + case "fallback": addSystem(item.reason === "unsupported_type" ? `暂不支持的 Agent 内容:${item.envelope?.type ?? "unknown"}` : "收到无法安全展示的消息。"); break; + } +} + +function decodeBase64(value: string): string { + try { return decodeURIComponent([...atob(value)].map(c => `%${c.charCodeAt(0).toString(16).padStart(2, "0")}`).join("")); } catch { return value; } +} + +async function sendPayload(payload: string): Promise { + const response = await fetch(api("/messages/send"), { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ from_uid: session.uid, channel_id: session.channelID, channel_type: session.channelType, payload }) }); + const body = await response.json().catch(() => ({})) as { error?: string; message_seq?: number }; + if (!response.ok) throw new Error(body.error || "消息发送失败"); + return body.message_seq; +} + +async function syncLoop(): Promise { + if (polling) return; + polling = true; + while (session.active) { + try { + const response = await fetch(api("/messages/sync"), { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ channel_id: session.channelID, channel_type: session.channelType, login_uid: session.uid, start_message_seq: session.lastSeq === 0 ? 0 : session.lastSeq + 1, limit: 50 }) }); + const body = await response.json().catch(() => ({})) as { error?: string; messages?: SyncedMessage[] }; + if (!response.ok) throw new Error(body.error || "同步失败"); + for (const message of body.messages ?? []) { + session.lastSeq = Math.max(session.lastSeq, message.message_seq); + if (message.from_uid !== session.uid) render(decodeConversationItem(decodeBase64(message.payload))); + } + } catch { + if (session.active) setPresence("同步中断,正在重试…"); + } + await new Promise(resolve => window.setTimeout(resolve, 1500)); + } + polling = false; +} + +$("#login-form").addEventListener("submit", async event => { + event.preventDefault(); + const apiInput = $("#api"); + const phone = $("#phone").value.trim(); + const code = $("#code").value.trim(); + const error = $("#login-error"); + const submit = $("#login-submit"); + let endpoint: string; + try { endpoint = normalizeAPIAddress(apiInput.value); } + catch (reason) { error.textContent = loginFailureMessage(reason); apiInput.focus(); return; } + if (!phone) { error.textContent = "请输入手机号。"; $("#phone").focus(); return; } + if (!code) { error.textContent = "请输入验证码。"; $("#code").focus(); return; } + + session.api = endpoint; + localStorage.setItem("lineup.api", session.api); + error.textContent = "正在连接 AppServer…"; + submit.disabled = true; + submit.textContent = "正在进入…"; + const controller = new AbortController(); + const timeout = window.setTimeout(() => controller.abort(), 10_000); + try { + const response = await fetch(api("/login"), { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ phone, code }), signal: controller.signal }); + const body = await response.json().catch(() => ({})) as LoginResponse & { error?: string }; + if (!response.ok) throw new Error(body.error || "登录失败"); + session = { ...session, uid: body.uid, agentUID: body.agent_uid || session.agentUID, channelID: body.channel_id || session.channelID, channelType: body.channel_type || session.channelType, lastSeq: 0, active: true }; + loginView.hidden = true; chatView.hidden = false; addSystem("已进入与 AI Agent 的对话"); setPresence("正在同步消息…"); void syncLoop(); + } catch (reason) { error.textContent = loginFailureMessage(reason); } + finally { window.clearTimeout(timeout); submit.disabled = false; submit.textContent = "进入 LineUp"; } +}); + +$("#message-form").addEventListener("submit", async event => { + event.preventDefault(); + const input = $("#message-input"); const send = $("#send"); const text = input.value.trim(); + if (!text || !session.uid) return; + input.value = ""; send.disabled = true; + const row = appendBubble("human", text); const meta = row.querySelector(".meta"); + try { const sequence = await sendPayload(text); if (sequence) session.lastSeq = Math.max(session.lastSeq, sequence); if (meta) meta.textContent += " · 已发送"; } + catch (reason) { if (meta) meta.textContent += " · 发送失败"; addSystem(reason instanceof Error ? reason.message : "发送失败"); } + finally { send.disabled = false; input.focus(); } +}); + +$("#logout").addEventListener("click", () => { session.active = false; messages.replaceChildren(); chatView.hidden = true; loginView.hidden = false; }); + +export function makeProtocolEvent(type: string, payload: Record, conversationID: string): Envelope { + return { v: 1, id: `msg_${crypto.randomUUID()}`, type, conversation_id: conversationID, payload }; +} diff --git a/tauri/src/protocol.ts b/tauri/src/protocol.ts new file mode 100644 index 0000000..72a7ccd --- /dev/null +++ b/tauri/src/protocol.ts @@ -0,0 +1,60 @@ +export const LINEUP_PROTOCOL_VERSION = 1; + +export type Envelope = { + v: number; + id?: string; + type: string; + conversation_id?: string; + payload?: unknown; +}; + +export type ConversationItem = + | { kind: "markdown"; markdown: string; envelope?: Envelope } + | { kind: "agent-status"; status: string; detail: string; envelope?: Envelope } + | { kind: "progress"; title: string; percent: number; status: string; envelope?: Envelope } + | { kind: "error"; message: string; envelope?: Envelope } + | { kind: "surface"; envelope: Envelope } + | { kind: "app-call"; envelope: Envelope } + | { kind: "fallback"; reason: string; envelope?: Envelope }; + +function object(value: unknown): Record | null { + return value !== null && typeof value === "object" && !Array.isArray(value) + ? (value as Record) + : null; +} + +function text(value: unknown): string { + return typeof value === "string" ? value : ""; +} + +export function decodeConversationItem(raw: string): ConversationItem { + let parsed: unknown; + try { + parsed = JSON.parse(raw); + } catch { + return { kind: "markdown", markdown: raw }; + } + const envelope = object(parsed) as Envelope | null; + if (!envelope || envelope.v !== LINEUP_PROTOCOL_VERSION || !envelope.type?.startsWith("lineup.v1.")) { + return { kind: "fallback", reason: "invalid_envelope" }; + } + const payload = object(envelope.payload) ?? {}; + switch (envelope.type) { + case "lineup.v1.text": + return { kind: "markdown", markdown: text(payload.markdown) || text(payload.text), envelope }; + case "lineup.v1.agent.status": + return { kind: "agent-status", status: text(payload.status), detail: text(payload.detail), envelope }; + case "lineup.v1.agent.progress": + return { kind: "progress", title: text(payload.title), percent: Number(payload.percent) || 0, status: text(payload.status), envelope }; + case "lineup.v1.error": + return { kind: "error", message: text(payload.message) || "Agent 执行失败", envelope }; + case "lineup.v1.ui.open": + case "lineup.v1.ui.patch": + case "lineup.v1.ui.close": + return { kind: "surface", envelope }; + case "lineup.v1.app.call": + return { kind: "app-call", envelope }; + default: + return { kind: "fallback", reason: "unsupported_type", envelope }; + } +} diff --git a/tauri/src/style.css b/tauri/src/style.css new file mode 100644 index 0000000..b65aaed --- /dev/null +++ b/tauri/src/style.css @@ -0,0 +1 @@ +:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#e9f0ec;background:#101815;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}.shell{min-height:100vh;background:radial-gradient(circle at 5% 0,#29473d 0,transparent 32rem),#101815}.login-view{display:grid;place-items:center;gap:2.5rem;min-height:100vh;padding:2rem}.brand{display:flex;align-items:center;gap:1rem}.brand>span,.avatar{display:grid;place-items:center;border-radius:50%;background:#b8e4cf;color:#11251d;font-weight:800}.brand>span{width:3.2rem;height:3.2rem;font-size:1.4rem}.brand p{margin:0;color:#a5c9b8;font-size:.75rem;letter-spacing:.16em}.brand h1{margin:.25rem 0 0;font-size:1.5rem}.login-card{display:grid;width:min(100%,26rem);gap:1rem;padding:1.5rem;border:1px solid #365245;border-radius:1rem;background:#18251f;box-shadow:0 1rem 4rem #0006}.login-card label{display:grid;gap:.45rem;color:#b8c9c0;font-size:.85rem}.login-card input,.composer textarea{border:1px solid #456253;border-radius:.65rem;background:#0e1713;color:#eff7f2;padding:.75rem;font:inherit}.login-card button,.composer button{border:0;border-radius:.65rem;padding:.8rem 1rem;background:#a9dfc4;color:#102018;font-weight:750;cursor:pointer}.error{min-height:1.2rem;margin:0;color:#ffaaa4;font-size:.85rem}.chat-view{display:grid;grid-template-rows:auto 1fr auto;height:100vh;max-width:62rem;margin:auto;border-inline:1px solid #2d4438;background:#142019}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #2c4437}.agent{display:flex;align-items:center;gap:.75rem}.avatar{width:2.4rem;height:2.4rem}.agent strong,.agent small{display:block}.agent small{margin-top:.12rem;color:#9bb5a7;font-size:.8rem}.quiet{border:0;background:transparent;color:#b7cabe;cursor:pointer}.messages{overflow:auto;padding:1.25rem;display:grid;align-content:start;gap:.75rem}.message-row{display:flex;gap:.6rem;max-width:min(85%,45rem)}.message-row.human{justify-self:end}.message-row.human .bubble{background:#a9dfc4;color:#122119}.message-avatar{display:grid;place-items:center;width:1.75rem;height:1.75rem;border-radius:50%;background:#315d4a;color:#d8f5e5;font-size:.8rem}.bubble{padding:.75rem .9rem;border-radius:.9rem;background:#23342b;color:#e7f0eb;line-height:1.55;overflow-wrap:anywhere}.meta{display:block;margin-top:.45rem;opacity:.6;font-size:.68rem}.markdown :first-child{margin-top:0}.markdown :last-child{margin-bottom:0}.markdown pre{overflow:auto;padding:.7rem;border-radius:.5rem;background:#0b110e}.markdown code{font-family:"SFMono-Regular",Consolas,monospace}.system{justify-self:center;margin:.35rem 0;color:#98afa2;font-size:.78rem}.thinking .bubble{color:#c7e3d5}.composer{display:flex;gap:.75rem;padding:1rem;border-top:1px solid #2c4437;background:#16241d}.composer textarea{flex:1;max-height:8rem;resize:vertical}.composer button:disabled{opacity:.5}@media(max-width:560px){.chat-view{border:0}.message-row{max-width:94%}.login-view{gap:1.4rem;padding:1rem}} diff --git a/tauri/tsconfig.json b/tauri/tsconfig.json new file mode 100644 index 0000000..6e3f156 --- /dev/null +++ b/tauri/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "target": "ES2022", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2022", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": false, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "strict": true + }, + "include": ["src"] +}

7fRMLDIZ~U5=cL(eOy=wqBf~Y>q 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 P00000NkvXXu0mjf>1pdO literal 0 HcmV?d00001 diff --git a/tauri/src-tauri/icons/Square71x71Logo.png b/tauri/src-tauri/icons/Square71x71Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6dbe7feb42ce83c1fcab90b219c03f19e00e2782 GIT binary patch literal 2760 zcmV;(3ODtMP)o&M4OQ<`a< zwv(Bpk7+xZ8gy)9(qUQ1w<23t4o$WE|A9efz({Fo>L)SP3fq|%@NriH7{mw+vI_?3*do2Yl0h)iJv~{=3SWr8 z!TYu%B`}~)H zBB4x>`$uNMD5x$tGrI}D+jTpV14c?>g8(Ab*nX2XRooUB&EB;Y zhc?t}<~U-I8K}6;x*z_lqNmD;4axmt0Skaj1eRylJ7!^4iL8_wCV!U4jPtGD;FiHTCLg&tsqbif* zAC_3m@~RcMZ9oz2iS5lI!wzI(A13M&nf1p6$3hM!J?ny!B3h`$C54tfYb`LEJ%5$H z8~-qb9OhIaN@mDG!6-ic z?XC2Ba?K&zr?x+1DdeCD28@G=hDnnZa)<--#Md`K-trQ-K7I#=#y^7__;>T(2>lgQ zEQQDMaZ4cwqX6St&iE?F<*!?bk{xm=t*L-jU-rRl_X6Dk#es``@WGyUA#l3e+(;)f zBNtb;kQ|q{t`a3HaY>5a${ zI3KjU0|Pz%hCORLVCaxmUR@>9>JVv;beaHDT3rG4-}xrZ4-ejewzm#I$A?EWwPr?o z8WgScLfz(iaAnMfd!u*ZA8)(^orjLH1EbiYg{qYV$Jvm>SHJfR6s=xH^Q}Ao0*Bvg zGc$jILR!6{7HTmhlHPy)ZTRG1ySQOw0HJ+#9py-4u7zxiofH9tZkNd&Nbmq9!@_9-YD~249O}B$*5pswJn7^V#dUzYn zwvlu;1g8LZ6tx`4#F&jSe@tLK%VC~7i*9?cE8ujx{GTqmC5GP!7$Yu`T(fw)A&2NrjNX8rMtb?B9pFFVhwcj(@h@8V#w|p1yx{MM8gYMz9~!?!G%Xhnw!W`= z&2j9lTLPnFiv-pqodZ2rbpa_AlxRz^HBmbVKsiKtnw2p}y65FS^#U6no=KDwSkH18 zA04IHMWLXTlPRY}y2q_ghnRzrhGra?{&D;I&6qdqR0>B5&mHk=#Dy(@3E3h(e()Tb z85>ve#{!`~PWa6_kqG!OoWQ9ro$#mDxRtsbZ^Xq%MrS#M@?D>tig~k6q`GfNQ9=Jd z55w4JqsksQGCH8AEGO7rSfSvs(UAfN;Vi(x_hoCVX#UWi{hFS&RWS0YwoK!&cSlCC zVIFe?42dUi`O$YJFn`)F8Dj^)5IMo_iW4QjWF8J7Ovi-?G6;*tgW3MGAHXaerZ{)h zAJrPOL&Z8Ho#A5wtA!Qv2Pvpr8X1RT4Q4*}qXsTtfxo@7(~%)yxtzcn42`cW$q#wv zT?&1Z#V|c>MkL%|B(1Kmr3RR2BLTDXhrhs8cg)%lFd)Moyx_$80e5j;LOh2+seS56 zx|KR^H=yIt5jck-DUC`Hqg#j#dimN_v>Jt5rh|Xj8v&yiagA2 zI5p{Kx#EPy^p6JuMkXhu2xW9#xqD@C08buwCvBm-nO?XfV35vYIgoV5qt@L;RxqJJ$v~U0E56$TD-K2X=6wyJH~-Gb5cLx!uG4pEj$0=p(zl z2s=b*DT{>_Ou*Rmtkqk-1TZIuuMT=uzhyz4t(nt&nAu5d3oF=7|423%NKNyB(T@u) zEHBt4im=tr!U{0eyJjD9FzA8r#u~Fti9w1QoIAmxeXa#_dhrFyfPTus9vCaL9N2@A zzhtf#JC}{a{ewRTJKyZe_7*hb#Twi2P2KEO+_{j0G8nFx^katmg0BIK51NHjmUjs@ zSd%{dVY3F2o{VtI29FpG9wjy8AbHleu>(mXZp2qg;raIKfvbi?kpBhy1I3>khrcNR O0000#(+BqK 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 VL^TNty1W1Y002ovPDHLkV1k|1j{g7v literal 0 HcmV?d00001 diff --git a/tauri/src-tauri/icons/StoreLogo.png b/tauri/src-tauri/icons/StoreLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..f5df7c598293a3221e00cbaa6e7726841a3b08b8 GIT binary patch literal 1904 zcmV-$2aouPP)jLBu_S4Iw`}Hct=^-Mw_}T_%XP&S(F3D)bG$ua5bEs9}jfXc%e)LN14uhYfGI z`|I^x5&M%OCz(b0U*h~7@rG(aunn7i2>IHZ=E%-?9DLXmZIR*{A8v(E7ZFD) zBo4u@45!Nlqhq7m5DYn@0*t9#Ryj5!5GWP`8HXUh<+}@^c*QcgoY{dO*P;;!D+>0x z(lzwRG}H(L>lus*$2OY~<&~Qt<>?eiPECQbDj%~&r^_)3A&(iGCIm79fmDV??%iBl zjn`U4x2kQ`#w#Nc2)P`aCWH|g&haI-)V%iNig`%nwG*dFX?4>PG zx^)xwdj#mc)dO9DP6&42qs2K~`QTo@1o9R+sp0Ks&OyufKdM)96A;wbDyl3&R%Li{ zYBKEnU^gr*Duh2S`QhZ@2ACKdXZqGDsdHfaJN2-v#0!76{|+Y(d~MSGRjzG9QN>zh zRJ6rI6u4cmbVV^d`+OOML;+45Ittf2{9q()*j5RfU#o@C_!DSvJO{S}H=ys%U4=WX z?~_cQ+xVJB8)8msD$LK$f`Vm>AZczg9Q*VO!w@80#9iymSH~eGGY#@R&p-w)i%ioz z2&Co11D$?33Kp@PrRfKZjgC_Nl;+NXi)Wjm>sluynl3lDL3iLL%+1b(K-*=Q7#-(A zfXcB_O}}Pjc=)EOH(tcE&p0$6KMQ8l4|qJ;7i7V@+6rw5r1lPDTghg{mnbM+1eedZ zaR;`MG&C?sXE*2a#VQw9Jzm&r8yzDG+5~+GJMI#Z>D5XiW#r)LnQ5p22t*}{f}S^C z)DVSukdxHc)vGXSV|f|fj9y1T>juo$!5On@>m5M(r zsd8rx_9Ev%TjS4M2&C&+MZ1={Kyp8xHm!gVeO0lehC&SWKV*7`-0-bpWygcvN;KS_ zJ&$T7Gl|Ig*Z00f$Hw_@PjMuAT+mP>Pvpm7^+WoFo+2ty5>1{`FKmCip1##M`rZM{ z5YyAIi9oV_{yf?uU2=(Ts*8zTTNR2&8N!gI`$SzkSgU z28MeFdhEH`8Tho+R5aYs`wh@luAT1FCp#qU%n$q*KS_MhK zt%E-#& + + + + \ No newline at end of file diff --git a/tauri/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png b/tauri/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..41949b9e5cf9ff70cadcf398dbf28b4b2a5d3411 GIT binary patch literal 2580 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 literal 0 HcmV?d00001 diff --git a/tauri/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png b/tauri/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..66327d2b1d19c7e01aaa29eaeae1ffb672878272 GIT binary patch literal 2406 zcmV-s37PhZP)R=mJwBUkRl(bRWrj@!#ZPi~ARq9_*b@`=Ls-%i4 zwW|6<)h+1{O{q$j76Jx=LjweG;t+yuY!BGreeCf%%ey`Idgjer?wc921gXlitvB!9 znR(~C=R4;bF|SO6G+(a&&Cukwk3Xd>g|hBKIqOc#LRGl^?HHFDwo zb=l>3oB)^v06*7sw6I6!2|*tTfH*Vs)G!++XvQEJ*IhH?xc_3G^3Xsu9r-NNR**3p zBOw8x|IGRT=*MqgzOFnFotlnx#sIMO1Bk7XEdZtmz@z~9QT0SKd!Ra@Q9wo$EyLJ* zAWDCV{=3Wobbw{wt1%0)W{7pmSAg6I(ZkcnwGm z07d|&TCullpBw;V1|wOL0x3R5g|u>)9Ec-103A(ODge-Kt~X}i!7f9kmIE;G%{r$h z#w&I0OLM59qF{n7ydNrg`ZqVdokrWGfa zN(ae;lLA>$5DtZ~|L_51W_hsha2H*N;h=HxK2=g*>;Oo-=4+{EDLs)M07$9fa5xYp zFXR^#ptZ9NF1HJ9 z5Dd(rw7LTOzj_o0zWx-PMP4jBB2c_;l-F;BE6a_*)GTK2O~UPVi{N2V%~Dk)Da{Wx722=monSi;VI?Kt|qXAz=!=d?zZl*I`i!>ojnuMq$G-79$at+T>-o>oPcA}>VAcz)*BnH1n|PbSVC zJAw26Jc-i!8VvT`fd8XGD6y<%0l?${m~D1S1^{|Fs)#tq@VHUi*@B)oPT^|zf8j02 z(+Zv0<@{QWssem&VV(fed;Ss{h=P19%DtpW0N7P{-S=xC>bu%lasbRQ9t}rO(^QMX z@)ErL>TwEim&Q#Vu&{frrQ%ic#tAgF?|^S}6)nnYB6Fq!V5$|4gcBq|teR78Y@Sxs z>2ji+Za#f?0%N!QL=(3ta?8uhSmg%AJhHU7B+mTc<9wdei&O6Q%^@r;En`D*fi9ug z(8dHnN~gi@%ZjDg*klTB6iz9O4T?e{w>e$=j%&%X1`9(3$-xrCj3Bvj5Srk{6i$zhR6189fz$_xr zY0gfzn#LqOcsAjbilQGswx?AUN)FxpCWn8!!C) z1qA08D0m&{KGluhYrUABniiD$N_8E+WgDO_?PuKytyy1z;8hEx+daXqf_=8_fC6y~QPYPEL-H>P3{< zGPAQVL&+gZ^x`!pIRF#A<#i$n05y?09F8>#Oy0RC1X=ZsAAs~$pA2G5#%@I z)M290$%x%B`Cgpx5(RLC3MJQ00rEf(RqnMogJJK<3V<1RQ<8Uf=KL%H5W7K1wU1Ud z1ET}OqJ!gAoO7ES%3_off9l$qd%#06@ZBH(5G|dpIQgezm?x#{qC&}3X4(3;)GAfp zXIlb$_?`EajeA;{VdKoiQ_gYj{>|H)Ff%?0KULn+s&X_w(Sqi-9q2uG2}9IR#6c*E zLln22d)x5j_rE4Ozu*4gXSnn65ImF&)QD=kRU-p1Jv^qQwF79|W$_rNAkNOE^jKXE zKN+%P?`}Nv+_z9zR*c#4DQs=ui6zQh3v)pPXXlVdvZAuCMu^5MCwg%553gZ$aaq(E zZHv?nfXp-LZYbAuY-e^mauG_8yihJLt#Qzz6~)HAE0w(q?)9W=vj4>Iwh5eM)uPHYU3Xr$=5%u?W!NzJ8p4 z?ceZU9}uE0iwam^Vg{F9KO>4Dj}Kn>cz4I!RQ?_z$ssSK>jjY3)_(Qwt;}4>xe?j9 zUeZoQ7`S?!g4H9cEvK2rT~Q9!_Qch=B4$kMr7c2^N$Nuy0MgtQx2_UTmAr=z&IUx^ z9Pi+aQXV4x8q*`z0YI);@B1N3RqGaJi46k6^E2-uz~s*?QtF^o0Ak}aBX^aD_PDEZ zS0hWdp|vgmHk%NMcpwUmj46-g>8aS2P6dEj+u5`L=ytzTt^NZ)0`|2uu=@vK?i3RM z;+|L!fCqjU@7rF-WQx=BXxK)`8J^jt$UvXSzeSWaZ)WQTK(F*_^s)bM$EW`)^nl0z Y0BNBf?reSQssI2007*qoM6N<$f;l6C!2kdN literal 0 HcmV?d00001 diff --git a/tauri/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png b/tauri/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..98c4cde91685bb80fcc5460faa08c6e438c6e5c7 GIT binary patch literal 2463 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 literal 0 HcmV?d00001 diff --git a/tauri/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png b/tauri/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..19e2f8dad5d6398f718c9f649649c20cdb8a2faf GIT binary patch literal 2319 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 literal 0 HcmV?d00001 diff --git a/tauri/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png b/tauri/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..0392c66c603b8fa0fbce436670b60a45b18205f1 GIT binary patch literal 8864 zcmX9^2RPLKAGi0+I6EZDI3t`b<0PA$GtQoobI2ikoLO0MB*{o+Z>O`)C?Sze?7sAyt$Ij?i%7^yX;akLK0!E6geT=e_!( zEc%N!%jj^3uR!b0=Q~+mU9xwo&COh2(M*p%{pIPnnW2!|CP`5pBA;qmMPv#> z#bYnu_FZt~Z?)H+h>j7e?lU8k{ zMI0{6D$ihm&-Uw+&5ix5HKMbm#$IqEcWiy2{9QT=SI)ZU5hjASFxm|070(1^k_KCe z)*p25`m9o^UWqbT<`JIpxX|a2xJR0VFaU%89)R9mK9eSmfPFabD2B`a7NQkY<3BSZ=GDTNCaBMQBm3o!+^UW#M zbZ^)2s* z)i1l;?P>t`OXZ%U>~GF900yX07B=(h+grb zCw?q|T)P_uS^Z+Y*6qin6gIs#oObM&DIPakE{Jr8re_JdE9`->V)vKv+Rxe4BoRVl zn$7rf$%Mv-$-Tx+?^T|>#(h%w+QA=SBk__??(cSCF5@4<94 z+}p(fGa7APAGAXk#Nwfm&x`={-PKxT|NBsK=x<0sNRS%+GYcF_v_?V&Rz1#5+Oty3 zu)|s1J(guO$sN}VYf0~e;hIh|IXf4%Z!dP!;7~;sT6>aW^V=&M9b`n^@tESzgrr}bplcUSzm**> z^4bvK`>chkJ!Iy+skG3Ux;`OA(8ar|Dh2AHZ_4Oc2{I%b^P)CyVFg~bw+{K?+ZTDk zzOl4q2P|OPm>uTOJz;;+wVL_tgUUD3 zK`CK7!$NQ2S#TtlHbrzcdtwkJ*M%Y+d~wAXIDqn$9|xe`L3D*@?e!cE@?*N*vhQUa z2h`yM{&Xm#B#vj#_&-e+D4Z6o_qZ?(Uz=U+qhdv)W-Lqftcdk^ze!QqyR+K!9b zlxPHECDLtEF43g2HXFCkJKk1K5FLOEm(2G{V+LM}Pz4_UeHbPIr5fD1w9I^JW`Z$u z`EPN++_G-Qe{bO**^52q1!;0-AF(Kkzm16e~M_ zXm@S~<8D^W>pEa$L=dA&K^8uW+`>y+G2%<^DEga!0*W3HUu!M&K^^9G@@|y;JMT+N zay|Qjr4}Y_caS-f?LDe`1PBu?^pUgC6oM4s>hnDQJ1#^J-S5uk6@5LxZuloTb940; zxUD{4w-;`~i}`q6^_^s#xglMv+=s<-;=m*^W;lorX1}L*eAAsS~xTNJsIv#;a z-IS1(mCX7eGcNo^j8V$p@tr9lN$J81Vc0JxU)YWc=bGC}*!MJ&kjD6>GtYv8OtX38<%j(8 zZfj0T0VheZh9Q`g(>5UfCagOdspW!A#)W}$8Ca>Av+uIjEQ;sF-3F`myMVZrpIB~( zWY709gTs%=vW+os#t|PDug$@=>G>kgj$%3@&NuRma5ptz^GJ@o#gzB+y3&Z{>#C6h zxtMCx*_)fS*XV%C1koGc_#tYSrI9u> z#=42Ak%qUh$$Tj%ds&|WJF@WaA?_gB0Mb0R>TTgfZ+;PZ7+e1<`qU_3&et!M1W~%` z#l>QPOF1_AWZw9b>Fe~Ltu5!uN1K+xY;}v>8@~*Ra5+I{tur3={iOc}W6UKQl@jps zm8mQxdV1dY?9Zm1q_!zYBC5A3$PlzC7%4qP+2HY;nOCAzh340x zWSK4X1Uv9C6WaWM+6P1O=+;s}&rP3Twwh;|0GLvVH?Bd3H(#TI=pNpTfZZ#UO7tQ9R|HFQ+wXkF6=Q)tY`#H1FLp(}z| z5*mZd{yl_H(^K9mu+h`I?OjY=6-T52qcHt*W+=RfXyAAPJRtOd!<~N6`fcyd>rzL( z?Fxcu(}P}Bl;JlgBA<8!XBl$J^Dxm4)+_!7I;urA*XPsF0C=k7Xls%ZM}k3l#&iJX z2kuAdEQ6En0ch%sbI#vBqh`G~g1I&HF>5Wk#7S}pW_#Jr!ll#gqKKO!D+L_P+0yXxkNKO$VMQ!mfEk$oVL|A^-?0hm<1h zgLqpvROvjjGo z8p#GiKs;;vXN})@AlWL|;s;*AFV6kYIEaEsWo$(w4fHaSBhsh!z)s}G9|)2S{qF|Z z;B1SkxW6%}pQM5#RiV@Uo>gpl57LD^=SPQVFOX+pIe27J7N?*3Qfpc*w2k`I?}OGi zYdGjoONW}Zzk`(dV(q69vmVYps(OGPz<#`JhRk|-d+DnHrgY_rQfH)GcmP3=Z%c(# ztlr*9bzd-t3PotNX6CZfq^#~(R|$dlu^F&lCxOW~%F^?g1%dXMs~sZ3aLY4yoUF#w z)>&b-mI(pF9pYC^OX%b1Ym(A2&r&eD2@fKEao?P6^U~Z~wB%a9u(B zDxxc0YuV?`>(RC)iZ)KvxwZ4@5~!hZZ(SaD^z>*AZR)SC+&8Jm|9UonQBk(nBOK+4LB8G*cos6SA>mZO(kdmS za^B(m5z@5oJW|}3%B%^gq)6c@5i4Le^z(^Pu|UbA2-gqN!9(yRs_JW9-6cthJQ7O} zCyQqWB_}gOb7*?BRC_+zMeW;M2E^HD8*OauPb_NITXU zP`B=^cCct*ef8Hi{q{$bf>>kePAX3pN)7sY-ERUi?%PHoS6{0Tn1fV(qUpN9CA>23 zAlaE49RfL#=Xy#l&Y2H|T>H`l#;5At7*#42;v`=u>0G!s;D=Z}$vs&AL^Yb?-1lbP zl9b4^=S%;lWR#XHTh|B8Vv>IyUBd1qWxE|`d@~x{Nt-`lAt-QZeBl~fwWl%cZ+pt& zFGUrx^lp7;YLd|pN4@h%Z1c$+{#OB3#}gzQ>8pWRlb#Jd@NjyuB|3f-HvC>>JycC# zn7d$n>--~|(v{Hl8wsE1?`c%YsdL5-sk!8LQuD;EqQ=jPCj)0KAS3Cnx8EPgcqg?r#jTvzYyj<;XECFj(` z(rUs!d0H7YF_m9t5371aZPCftt)|eyCDL$cib!Sga7T@iJ7vHHa{+Q41 z+MK)+pHuH{tNTZIjqgApXEl|5Q}VnH^`9V@YPfl6%$Md)JlM+yqp(B^GT+s{Uz456`SGf!jTt|NCVo(VM& z=VUO%?<@%kDuNDM%O^&-fFCWmD_Xj_*Nwkzcs#;4XY7U=bnE9yEk+Nn8K@ld1mZ+I z{#=_!3L9|dtN7(KOlmnnS*2NEqSSm@4cO!s#3;t?i}vr>`T>W(HkCLpb6X2(06lOy zK6Qpd{e=TCOS2qWxL}k9XgaGP^cD7bf&F1R10I`#?B56bVh4v8iezO8qPRvT@xNR> z)5Equ4Rz%F&@?uWBq=3D{so$#V=p~o9RtJ{qlZ0*+81CgLf_p(Yk&B;J(G31^Dc=V za7GQiPjz6+Djm7`rrYO1-zTn5kqKLFI%XUmHUxE#I@ceSFIG1gI@@7t?jaHi7Lo>4 zapHKg2Z`ygdnPhSnugsp6QzH)vJn_nR_-MnMygP zLKBCos7&Ef!Hit1{;|6Y`?ZwtGAdM#d9y04H+DZjYY{Q3-@h>5>upRXl~CC=-DgD^ zHR2IN??CBNX4I{f4=KP zuJ0KaXmEHa4n+s~Oya&|iP>MYAKZVSS)$LT3|YPWhHA)&%VKt z?{fX0E~y5GQztNAhtqy4E(43UNPpjP1bpcx ztP=b{Rm;>{rLtiFK`*sv{bb8xaH{?zGrw()huI{{I2}^@bF$owad}wxo2rO=F3z?2 zN-?PuqyB}|ymJhyfm~A;WhVLF%6?0Ec6ohh<<~vKvT@0~Qvi&NK8CQ9o6S-cllTo=us@xwulsspHI5ck(^ZVUgi!EB7zHr*_KPZx*+Vo?GKg z90w)I7Y=@f*NjQ3gP|s z&kc+JKF~kf()tWX=8x)7zq#-H-@D zS|T~X7r!UU6h>CB?Fw4oJp0oUtnUY^qXuyKs)_3bvvuN&p?q%E^Y={E9L;;UA9oB` z_&0X8tM6`$ZgcDn6VHl;6X9%)Sdp7{^e+3IG_+eQ)VCY6#bU|I+|04pjPEwM*T8FE zREpqe_Kf2xR~9Cne)<9&qa%-{J)we*Rxfb@890HBl+Y$jmd5KQ&QG>;=A`aqj+2@t zUu!CvQU3tn^&{Uw97{WU_D0-MwS6lBa{n+SL?4iQ9Dz|KcD{a*30;Tvk5Q-(Ax5X0 zjv^py2(Gc;Jjbq=2fX>H+WZhYz;t4&dD*IJD9W-oP~S~_r+dJu#FC0!B9z^S%U(t8 zMK_$RDQ2+rG%g;=MvaK+;Ce#ABv+nnAlLUibV|{NiMhv#I5U8fQysIElUZC}j@0jJ z<2y**mx?>u;LNXtqYY_jsxyd{1W2yX{)SkaAZ+;OfS+VCAhA|670InPrtI88ZW(O8 zd4m_9gBa*xlL5rBcC7pMgfVidm@%?RxTt*Ds3bJuTcPpZ{L9R+{`kR=L6T&GD6w0~ z@^<^AXU;pfKf9gtPQw&$g#&HDd@m2M79J}=0~4fzp{DmY^jy1u1#jQSZu^pYS%Ff5 z+_r-VBN-zz#y`5;U7$qZ)ft$O{p%RPW7w#ujLNOd%9)~R-ONK5f>QIcdl>{|7u#>Ywk?kC8nOf0I> z`HyBF9M!kYjOO{l}$%BiRMK0|X$!^kCBjrW-5gE6CVS7Cq zrNz3#36y!5B+z#XsN$?gZb%JbC)Jy6HHZkL2iPiTrP0A2Urr187?*9wY34#2Dqj87xf-CP&Zw-JCb}WqIq3cl>!IHKw3RH+AD`S9;>0nq`h?WXKkE zsvzw5K@ERK%;sd&W%as)h^5J&igN+k7>Tx&5C_c2V!Y`|aZ=)}1Tpn?SG<}%9S+Md z^9rAED@c_N1k(bS&mXW14jyVf2CFUQL!97uosH6Fu*#8Hrrb3cAIXh6kD1M84j zQjf1#n!aY9kgCzaxpGRXLzQ6wdr)Uxn`J3HrEyw(`5+!INa>@JXm}U5!UWVipbq8O z`+>*~=WzhaKw~L6m=?)(Pw(cRx3|K{DIk%ZYXhNWJzBSJ_l+q7Zh_UHvT>A=!UKr) zgPP>+Rma2lcEq0ASW`)COyHL-sk7vcOO!&XLF?P!J!Z4HT35n>QUbMicMMMHLpEDF zp@`P_3No1}JL+T-fJE5da3`J9o(IZeT330g0p-{Q+WjpcyQejWzKTr&`$d54 z>t!5jN7?D*QO_(2LZ-ZEU(a4JPH<-igZ8vpci5}j>~FqA9$z()9Bj)N^8U5aG&0)3%abIo zu6)1pnbB=)BOIKDV^6Eg{Y_aK70hEMm1*!fzw!oCOn98R+uCHv z#nN4^lFxru8T~S*l4v9BF~EXVABzaD;{nB z!{`<9mr`kDFLYwl0up&{uX=d-&GkO1%a2O-r@p(MKl|jrSTzzZfirg;9LG}3g0qO? z2qSV-nX6#*TZTRBH+m>u-9T>HyzzA5I1*WNr?y`OJ#((-r;J>?^~j+iCcG+ffnAY| z`zySszs)E2UZAusW2w&FS?A1da1k9im@S>Ox_%F)!b*irw#TgfO%0MWZK-2+;kM@7 z;pO4uRo@G&^}Xd_OwZRd%&*lf%~k3s>s=oTA-bb0#ryfvGYs$Z>nb@ua|7YNQM@v` ze82 zXsTuDrhGyhmUi2^Dy?(cej?-$wy?Lp})*pMqu4*(~^vO?Ut@OZc z{1~st1!`~OEI;-eMn#?C-{D)Stu}o072*cn_-XlH33haIm}8UiWO6@O&!RqeD(&lb z7}YdoN>tOS!cdOuXB-8NZ}okI>7aA7jC?aXI1Vs2SqGyJnl{k{uw+2XBl6T8oZuCsm=YRtYz6mi-RMInfy z-iTHP-trVC=xN>OUwbR_eZ84nGcvNq3;7vx)5hLRfZcA&CEQzLLDiM5<2@Cl-imjI zqB)L6?JNL zxfh=I7*RBnFQf#!B?|kI62d+RcNrX9xd}V8G%`eB%i^S94SYPRu=?Y?5YPYkN z=JlMvn?xXJy6pPz8=+I*Coxk1KNs7Rw!zA3_@%JPo`@BTar*+S2Hd^9(POWn6NfaHX(2(J@*gjnRmH`k z49D~*5K(uSL9z~AOBYX?S$Kkph^o(z{|1j0{p^t4iqt9&rk4i&h<m=H|T;7-1%;iKY_z?IZ#MmQRuX6PdXk z^=HI>S?3{9#PZ(~W#PfnQqV&sk!&$O*=$yP?zP{I%A7s2HDH!0ArteuNO0R|EsM)n z6FIb4G{>r2UiT{_+}n@&@iai{K;UPHu2tz3rbl)StX-iyq7pa&dok$M*+6cW+c$@jQj_Lr~0a z7kI_=`i|rFP3G6+R=Mbcje$xLz&oOVQ=cEw9t|VMG~Z1VkaBRZdP#1T)S$08CWEcS z+^Qn#HbA11%5#ks+dQ;cxx(x8MA64+B8XqDIrCK%l-OStde9r!i)2%o5;k#Dtrrs_ zmFS)MQ1@(^8B0FMeoC|`K~$sXExshWE*n1C98Xc1J8I#Y^)7nbHoM*Yp9n6YaVM9_w(xw}aQ zSNQ%DzPB*{IrL-jcOs-&+o3bkk^rJ?RZnac0U(1gi~wJRb^0jaM+l1q^4VEwNdUpX z2Lovcd=VHRdchZBzD@g)bJ7DTfT}09g(9;E;D;zQeA{vKy!3?^K-HdY;iy>(z7Q%l zg03Jy75re~bsW1Oec=Saz$@H*B={l{zj%QkJW_(s=R1Gr@r%+ILI8^jz7Sze^?~o- z;w^-@p1c}?SG;*M;Ol8`G5EpP?>x~W-B*E_D)>SLOmXjmPdiGR>co9B0z$zLy%C>A z2K4~TYVgC)Wej`~Hgda8UXt!v0aWjOSZLk+{SLl=AN}b*eObDv1Q0v;D%3(8!51Rp zg1W%>Z&nCFS_tqXZ~h(wKg`n#j|(C_t@#h#pI?y{RR9YQet5tZ?wYDxUnoSwrofMk zu455`bl-s=?u)2^uLhXa;QP;a`%J5};0YPkn~854*+)l{DOSQFU*shSp~i@4?cZfxv5&jpNi1M>zD^W8lx%UKd;vV zYuD94b!{zpP!$EVkWdhol8sUWAIyVq#va(>!{vju;EPB)ne_ka$~90?wVH(y3BHc# zI_P}DLhx5^tP++Bz>-9Y@aym3ecHobRaofxWg2Cpe%E-_Om?0S|$wjHVgzRibO5lJYb#3~WY9Mzp{WQu1*FpY#tI+|pI0u(oa; z3xi%&=ndr;p)DY92n>QROoFeNZw?wMzK@0VYeeiLARzE);DZ71g<(e1ZnweM-BH;6 z?30kTEDdJoX8A?$AAe>KjN?AL-Ju*2izo)#1o$EX{BUz2EU*E(5*a4I7aELag#PBv z4<5G%^78Yce)9%MOilt18e@;g14${#(C~001l1#9cq!6UnOLSkZqOvKq_B981rLSiCp-?am( z>ub0z9TQNT2Ei9vq@LlPukD)J^i?M70bdvfU+4gz{!kBJwk#c<|Kt6TTT%$UqeF0a zb`tuhMxlRt6h`N!VPI?+@=6QfxtI1sdipXv#-*Rp40ofAf-k~cWd-mH)>Q~YY$yxB z5ctL!O|3FP?%^0!C7`aaey9$1Jhul5*OY-9dpljtCfNc4XKqM%`L7+nzjLz_KKsw# zz}3?iVP6Tkw2Pd`OqFDCE{D@tMSD_?~*4Ydr|)c7O}_YFe(%LJDOn6H}=7bf*e#I)6j#x`1psP!l{oBvx}LKC z+e3a1yPtTCS=THir>8>WuI(dS{cs5N z`0x6I4lO{_hCW z8Hq_rsFo6Z1fM4c@YOq?2s=Jp0Cpt-WS6h}D`9|9G|FgFZyg_(JfX10!M@CMLnz{97^B|3&9t<6Ed2-jtTI?no$+QiNnWWYHR}b zEq@tyY^(q=H47j9>pKicQfjiSlP%f^+!V9{=MSA^m-eYwUVu3q9XGFBhmZc{9mp!o zWus1`MR#;-27FZN({8J zi}IkY1trzxuzGzB_rBx5J_!AtJ>b9~NeBV)+-%5{l9$zT^mDW` zX;8MV5`(r}j6r7Q;w~$}55`WVv@${fYrfnlv@0FVfFE=&^a1E*bC6UkSzE!;ZO4@x z$o){lJ-$mKynv$_Uckl!YgUCG^g>yI}I3O?zzR&<)N4-$Q9p5~7S~3E@FaW;9 z;Lky3UJgg7w1XnuQFIf@*M~Uw{(#?&{|yf~p||}utgKoExur!x9+yf)Ec8s`&<0=V zwgCpf*Y7jS8{H_mh54&i^6}(yj-WqIMo=lbWdrGui8i%;;Y=sBRoh3`NZ?U`+|s3M zNctu5C`ipn^Lbv9u0)P0@D)0kBU&y}L?hL7gU=)~^Do5Bq_4<;@!?Shf}&iIA_1mY z!RZ`gK-1IHF%gr}1 za$)};yZ|mV+Goz3h3>9yNJff5-j@gap8pEBKXUje3=R%5&@N2Gl$4gh=FJU|jJe|G zPn%(2U@#yAdXbQ3QAkr0lYA}8IfPQx3j@BY0CX{$s+A5JWs10YDJViJU`2j5GLyGB zQk^$`J~f5krKP38xBueX@Z!@if(P92vv>aue(;Y!Wbi57_^t1J3toEWMQ;Dg58r~< zzV{k~LnGzoSH1zSyznx{8V-1C!&`9RZ(oP0si^>iN+VzjbH^k7P7c1PLvRXH2wjY( ze()pnrWz4M!<-$-k+V54SS#33pboMU~tw6bx7Dz&z_#1 zhMe3S_|l`>p?9X2U-X{7qkYtd+R`y}ES-bSMdu9I0~(D4JdO&cDv&iz!rTFogaRa8 zq?#i5A{zL5DsJ!IwU;hU< zee!cwA16+DgTfCZwRETF4!r%=+kv@YelLhrM{jR0y!+0(0h^J8$rZnWr{ms#?|nJzq&?XI3dpk19bL|PINV?7 zT(2*6NPh|Z;A|KH?yn7{_rd$9ZSb+-ff$VdqPsJ5v-$WDbcLtxj>&9j9KmSxQ>IG$*vKOlLSERa+BIwk z`r5kX7$8BermzBhp|eIbDjglYv{1P~RV^+c7m#eg1R6eyJd3abA~QFO)rit4hzlo# z9f7V%)f1GYcXs!&N+LC675JdDM%1QfM$G&KhuFZUvJ)HX<5A}b^DyN7l&xKjy)j3w z?~gP7-22h~tjNoTO*^-;&#ztfOfNd{70Sk7ZXe5&BRC_1x%WwNrr1 zC?!Y8CdAVY5bs3b*KFCq!B^{v^DxxYhp~twNSz4PM7%!mBd2o>we?6bP0)x6zR&G|UrU~PN)%dr1DuVVR09_9fi;hn$x2@Ig;lT76=ZjWXnUXfZ5D#B7YW~jYK zig}{8p)$p2D~(`pqv{08!!E~a=60-zpvpD+P6Vepab(D9N#>7;C^I4qKYj7+pMDK? zeDz7LvKw;_!+#w3DYRd>DjR)DLrS2LY>&q4M5z}7i)PBx>ak^8>xJ0@)!@k0Gv{IY zH@|EpgWidO&~X1C8)h=X1RSZ2T2vW3_U+}U_1FiW!p#e+<6)V-sYb#+Vs)~&}n>Z+$UXM~7I*9B6sGCcqcQ7Ar9bzNsb4 zO1IPr#Z}9rfX_8SX!NN1;Ms4!1ejTV}~O{2vd1Ni!T{=C~g z98UqrLRcq4?15&z5crmvkyx!1RhGf4uYVVTOX8XwsuAtDbOSCQJp<=IIgZqD7f&%F z04Y&I%q3ISG*f=o!#0HG1(TYg7uS6HcznvP+3_W3zsQRc5$iWt2EM{#A4b79y=-OI zsmoGH<2s=i{NQ<9q&f=FGahV|0n(>!IU8`Tl@SgIGI9_w~{f>y`!)s>=OpO}#3 zn^_jLB7r~E=#|}9uC$1O*U_4|XC?SCFWg%4P_59t0-+>xF{FZ;a5|FRVPh_)v*iY^ z{Ry0-_2QHw>hVHl?djO&ZW#q%Pjnj__?8Mldv&S#8IjaGy}kmdIh>=FipH1?w2ukZ zHv`e=+^zV6PyY>fE`k7PE8biqv=TXy)zOlVR}vgFd41DM&4aH}EVW?Z3k1JcTGZ9k z144)fen?Ojs=psZ@GX6QKygEj&<0;&)ew{5YnBP>_FNVpe9NDpQQWXr+}Ggic1^7T zKW@*E;pKZxgRlOu1l{24pcZt`{SB*hFzf9s_+zYAZmbq&z!xf{mZocZpMoFv=ZJ-@ z9&7UEqgJZj$KWs6lk|$#R|&(3j0FT=Xgn4rUcfK-vm^^?71>1r-zcfJaNsY>(^PpO zQ&sSFRwu`qR2y0V;1~UQ!nBm*y$1eJ`yJ_le4;k5D5$$G-#~P$1AIMs+Xv>E^7%Ct zB9_&t^ti2l@E05Sdr|-q0$ICCSOvaXaqN-+9`Mbv1i_L3mISc0E#CJ3&mqa3CZh&N&I> zkO1N2gaE<9;D!s>mMknwvMh{jS-tnNMcTeQyHnnmd+&R1woQ3`M$WvW(aye|`R2`h zzq#M-pC7VE_ONmIvmZhB$O4o-vH)d|EI`>K3sCmR9$A30M;4&$kp(DwWC6+^*&_>3 z_Q(R1J+c6)ha~wy2nFxa4FU!EMR`T}<&A4wTZV^6)&lsN0mN(&QX~GX!khZMaX&=t z_t8U4e5iIu#Cez)_j}SY;=NYFG2&fo;_DT0#)S#vYVVhRNcfqY!vEXw{#j7OabKRi z{qo-9$0EUzuJCYZKzo+Vj|GT$Hl<#?h)?$Ul&Ip<-&lTmN$d0_Ez1h0PPs2S99kDu zlqtq0B;JIII8POmFTx{uL;|oa!V~{mwYTW=`FebQ`OTr8ffu?@UD!R`KX^cUP(boY zQK9gc^_mCBr%Rj}tu1#}&8fRL9915Pj)cmUNQ9&k-JnSnq<%GC~x+CIOQ0T?s|ucU-q>acgm9 z*o|JmbHSee)0)u~ z$z*^So<;YrTMvH!laWw(`WP0ZaTD@^f=9$(B)o@boVul*ljMN^vLcB`&hFT^!)Zw* zI}OkLd)9qYNYXE&p>PE*R|=o^3Z99RkxB5xnPef7jbRHO-4LOh5)DU7d>}nAWoG4p z-U}T^wRsmAA%QfVN7CWJUw;xs>k5~wC|~Hr2}$yy*@q|I2bpBaNd-?limnZKCO$2S zb0o`T?aI=9XWu^XvQx{Mk|v{#yi1 zdcW+KyCLAa*Qw>qXV+9`Ypb$+F8Bk_Y4Aid8y=C-@CbL{p?`i{9iq6Lm7(1ERbFXP zg9eY3J{<_Jl1%lw)veD&!{HW9=aDB(d@6Vnn9uIO1NO&o5gtehPl{zaK0GmjL35-; zqa}sY%I1d#hM$Uzgp_mv#ERIQ+gJSq>O7BX@4#mip2TsjOn}GC#Ahlz@vl|WSJBRq z8uN+^!~N}7w~@yhgf*qwXECbLhf0Ji;@9|ksoWo@^tNc}SXMZv@5X?d8LoX~j z0S{P)$DyF8m+*jnc!YI$bcH$`84gb^omus$)qty|b#G)axI7Y$K7bK*TFd;Clelca zBiw>V*oQ~NGqckN468RddGcHp{HUb zh(DQz2ONe+7>KA(vR>Q>irR%oB!>q~!=p=~kP?klO`Tb@!V?`Rry#$gXj<7uC87{I zvZc6|LF>g4c)%m?+B|FjYDm)2O zFEaq1q)V*C(6r2-%lZ%2wyFHM1dkJ;2?yY@lu_ohsQ_7sYuSZII0BDI01xRu;cyu0 z8|$H+s+ww+M)Z4CO%*iG zX@PJgOc_{dg-2L|N4NryWgW=6ciBOBghTMeywAWAX9hYBmn>g~@PuO74k3hS$qh^S zZzCv?q=asT#90JR!2_1yiN}(Cc&t@rcmR(`mBb|+@JUTD^~u5-364M`T3?HnErtP9 znrXShZeO@`4Z;FcsvBAwAv8QP-kdj3;OJN`Pm+ljM&U^+C54Bz@n+!>#^EvcIwtaP z3CY>~|ARiuj{A1W;P_ROzXc9;P%^xGF<-iX<{!s|z zZthxPWR;KB>p27o$BI)e6I0UgLpI)+Q|SSj|??)n3M_Bzj9 zFc&`Z@khX?ed^eu8$wD1h9bidjE49=og=9uBUBH6>QR`D@v)(SA&~w4`R}9AAkFM&~foHE`NDi!*t*1`!w=pu>y~k(1a1?-l92g zI{%|(!%E>TJZ8-F#AA?2PVI)tF~|YZ`He7dMJwNm%S+kULwXM>&-AhQ$b{F-b((lR zt(EeG=x+gk0Q# z7h_^k)uHGk$>ih59oqFCYbaS3=8m3*oKjH^aM|cfwVCehxxO63cq3 zt5b0;WAF$sy0kWLSRt%f9_fQ;1QxAb4tMlBQ@%37o^R zUi#rCIQGW_s4o?atLm^Hns6STv17C!KJD@ncH0W!I6T6cblF&alcX*iv>e^?=smFJ z!P`+95czjvu7?RT7Ykod#v+>f!$Uz{ zzGgJeg2f2vZ6CXb#~8*CNPcl4^mcZ^OaJ*x*z@XkD8S!U|DfV*T+3m2=t{5OK)truU1H=lnEy4pH%f%wx=Q@!>Z}*h zqeq5py=U-u%@oDA{CQI{CHe{V2kIP&8F&!X!La z05aVducD#$o0$R+O(Hwobp_zH?_npqDpXZd2b?9LrNfeyUw+L-EN#c-XI{eN)=o_XP&wT%I(&-^Fk*FKO+YX#qMs{XA-*Gub>p_%NTfsr%Cm0z+i1G(z5 z=6o)X1$ey82Qt|O)kd*jBBxs(`f|!D%DKnzf;HDc$+U7%(Bh(rdg;G@1@FDFTlK?u z2+vq0n-t}3&%VMSsZK=&W-Vxjis_ZCJ5UIPYR`;088Z(a=kkGs$qm}91V!W4|4VFT zRoB;|v+#O0r|H}L-tTw8)~8-(DKIf6L7WXBa#V_0Bn2aRq*+J8r$gsNMFkG3iILIkyCK! z5AUlr_jrwq*5AP9Jy~HsS+)d^h?_2J6dsY-$>?=Xbo`ubJMai&@c7g)g(`iPtIk4H zR*&vE0H+TgE7A?oe4@dUwhxT(9 zN0)^RIS6Lb%_xjQ;SB=4reP*bMP)h~36IG;vJX$9ts>lj$8u$=C-5XOTj}Gb%7`3X z8tN9caL|;@;lsQ4#d2^m?Vu%>oQGE~wyE`Ic$?llJ7%2;a0njo4jy}jh4Gp|x&cq3 z5)`~u&7Q#~G3h#_51l)DiofmS`}kxCKw2>O=(`6v>_O1iEu6!Vd(z($*M@lqkMK;1 zPPOfTlkmjJ<<(8(x`oXQ4oRQ$7^>*QxR}r9Gc=h-Aan9@df%aAsN~c2(segrR%8LX z8o2k6#fcY*>h!F@Bf!i4KuPwja1kC|F{LG-a%K&Sf0~e!81owHA7rqSneGHw6fGZ$ z-jB=knV9=S6OI$hMT7|e(a+IXQ7u7?pIo z(S15M79x5MJ(tFyv1m*hJ1Iok*qn@psT{alAWX;XM$Ro#grjk-$zuq|;Q_lj(WX0W zSlk0O?ii?)Qi3~u@H82e0T@9Ghr$@~{68Gf35h@Ch#KDH6Q{AIci(h3bVs{k_0rX_aM42e!e4w5&YV62x#-9o z3z6RKjC?>>F&lC^rosx`uCEk3pQ*Xm&V(jx!6QUE`U4qg&*B6;aday#t3jX7Ku;e> zw%Pv^=X&&|>-y!_K@H{(bq;lMnR4fF2edA0g~p~PuE5|Ld6XW@u3L)VEE)O+`uIlo z>0F*BrRcHr9C|K|!DHc=G&a3PvZaha8%5nNiz;2GRB8Z;YY!fq{egt#>Pt)T#OoF# zG^e7Xkl`B`_n_vGH9Q(v^sIRX>g?AtP`l(;DsZJ7veimV|;MOf$vAJdt9(d?Me*SY$ zKMQZ|*u{T~XnGd?{K5Bs0G%D3u%vY{oJPIp$)7*TuaU#;U&O?k5e9|Ii>6`>jLV>N z100cO=_y+aiaH99@B$z!@FWdQ7=&lS81&~5mKRevL)C|Tkj$4y*GLoF)zt;x`TOs% z?}ilJqM{;(OMeff_~zl5Z|&R#uf4jN&(UM(oURn>KvD_{J8}KCFG21RYHv2?70Z#(UBbAd;YxdOLewBlg^ldJ$p2`lzWC>*Y z#8*^Q#6k+NtW=Mg zXCt8r=iw3FCzN>y&t#>5Kq6SfsFo6%MZ8kWd&9woNRgw-4dmS z7#(Y@_k3nc9qVg!pFGkNn|8Vik8lU8@H4XKP9CflY zFP6&hjlvf5Zdk&N9msk+d+;~}G5n&ZpBN2_T80Nwz~faynQ3^0bMWYQ2$U-q+W5n# zZ~ru`3*+8}%GfQ*Gm0Nppc^m(PazDd(Led_K^Vl&AhGzJm7r)E;j!ii5_Wp~7=uTo zfJfbuQo+UuZCaF@60~Y@8Jm(ZnTQi(7<65gwKY&WwTzX0Ql2lJIIFe{)_hQ=<62hW zNq3`hTkr@lSodwf=Yg|8g?U#mb+BSgl4$0fdfsg(or&~`EH8?At^de}*!SZ{W&h%_ z)6j!PfIly1a_lZ8Jn@>h8iWT@v$m>=H*s3u8Gy%fXu?FlY47|%>4Rr%UmBW(QOiqc z`NdM&m1ec&uOIID>_(V1w-M{VMtJ#pW7Er=elosCk?<0pK9a|lSM?Yvu zD8+^fRGmQy>r^Xt6l=q{tT|135LsDdanZF<%ez)AW2Oe26t>v?;#PR)w{LLU7q+|- zHq1-{kFW=iFwipCWj|16z(Yq^2dHj_s$bx_QwNTzrhJ+#E>h-6x~zTRc5b{$dywT~ zTdiEUOzg$B z1`j8Rl@>$&qB&|8dek?lu>uDzlPI?2FXE&w^u;*Qd_gY(8tfh59PJ1G{4rRx=6cT2 zCRoVh{PaKn7%ro-KM@|w6K^s!A(C{0v+Im@ARovLc;a_#6|qDzRnH(RtQNh`w0u#V z=@`bANO>LIL1(lglpY^J&}y6OIgh9v`$GrNi6{Ad;|c>)Nv5%n;}i}}XYdS0?> z>eYQ!sXGYydw%)tAHZ33c5=6n41~vSRNiJjkoWMwn7zKru=9Kw<^c_(uZ4U+)JT(b z41Yicf_B`YWrcK;>e;n$^CNdbGdddyrbD~mhwab5%8f4Rck%|)&V;@(KHZ15Y^VNi-HMThzO7M61x4zhViS+C7+@)`81fCw9*urI*H_ZuSHul~7Z% z8kOKsG`$}C9MUowp`Jtt8aXia_}0$nUW0wukDBteY1x_tkEPIrNAP%)6YUHkHV@bJ9Q9|Em%H#tm`jOrDYFo-=-i=`@E-2a zv+FloU;vwplU2wa@D<^HT+3N_gzErVhsT_cC(#&c?YhF9IY`%_S zmAEufYhB9vqa}@&AM(Y}US98Q*$HR%9pkaz$4%m9V0vluvIWq*d=Ym{B|ykZ(@T$a zD@|9lDf^M`6Ku3e%W>R|hi;VDLm?G9Ux1e3Xt}ZnLD7_<3FDFnN03|x2tUFOe4)y8 zz@x`7A~?~F7@Q1SsK+2TY8qCzG{`Sh`$5z4 zM9b2Vx8KKIa()Z#2o9b1qoPZX)4PF@cbKZ^>G|~dE=){2^7cMe%E%J8;2o{A7i@y7 zyBlf^5hS&&nzwQS)lCq0J;*3{5^mY9&ZQzQd!a<1#n)TqwB#`akDk6-KbpQuK+vS; zT8wTC0~JD+_G4)5B_-84DeR4rj9>ncZ%#hFM!S0ZuqP1L1~LKc2m zd#o6rLMu$hwK4;qF~tgS&V3z7f#aIoQK>bs2dWeBs2yD-wz?|ormL;t@IEaaBt`bT z@+R!v`ZgTgv4_V~Tj(m|+zpAgI1;0BM%#C6;)P5oyNTz)78Zh{w#E<%9lI9b;Wvr@ z9d{idU%r34G8`VG@H-4o5+@@$1_M|QeCoZ!y#Lm`m94PnwH@#--cI5<-YpQb{`B3I z&Ft=HXu}hyCf@J{x+dX?7uPZ%d34*lNY2~d?e?Cj`DMkks^`}4L;pwVxUZ*;xRx0Y zHH8gmQ@NtDQjUf7bl{FRJ^kFRjC2y!0um-RD@ijvCig&f10Gf^vCqR$NAF?`!<=(9 zog*?7>hk#m+qB77yo5)89@T$QQvwPXP@`^=I(mG}>`pfyBzS~*c(ffjG11>AZwp7l zU9RT?;YMx)Lw)@(a1R{xt)-rL=iq@cO*To|0mY zB#nPd!Yz2fzSB*l8y?6Mcw(E52%r4Bp{|~tG^g6!f~(tp>y-y|eUaht@x0Qajd-d+ zb0tXDTi-bWPvQ<}Mk*091D=!p|5EA(H#suO1N5 z$oKTjJy+lnZong)fk&8+s5=LbNNpe_8AEk@h=0Z1qYvPHnPWIs6k-7D35j$ak>Sv; z!tyCA5tc^HFC-a?YZ-+H+<*t1fd`z-<*^^vGB^fV%@h^dJao19OK7?)le;sz=!uT= ze1XeYL)E;7ozYOZ8l@4Y4GYEjNba;d#@Q7;(o(RJuNj>Pxe?)^vwp$(V z#NLo}0fF9g?Pp47Rvz;y;-iXsq2#6Z*`D~gx{7^x%x%!-U{KTuJSO5=CM1uak{N_A z=c7I6E^GlckRG)=`A%&vN^7Xxd!ge{>FnzL7@50MM3j8e)AVK1eR#}lR^lZ*X2J@t zz@x+@j|$IA+Pp`>nf6DH9(-Z5Rxe%yVdd9KBvL(w3&|EdDHKr4@FcZ>91KmQj!Bsa zO&Eel(-ee6Iu9*dJ?GAEcM={q00PY+70xRyY?#(O`$zaLHmJ$zBC5Tf&vt0SGCV0J zLtVX3YknTd zj<3h-C2V5YLq^XvlV3ioW_4+G)y9YjJ%oL9s>J9P-DD+5V-#))yn@GO<8D{eF+`jZ z#-$+%@*t}n*<`t$qUysvy_*o6omwLZSqKqzxrZot(ellwITzVK6e!GJSXNuJBCojM z-e@$u9!q9Q&6w%wg-4jrwRRz{r3D^)F|lsj2quFKV?K|TlA-FM>_!oa2Tf?f%a*r( z?epMo1*U@(`Ezp1tD76KBQT=fY;!I>PJ5(58yGfn{iwd+x4KR_8Cyo zpSVn=H&i`QDCcg!a=HCz2-8rK3sCmR0+cxfk5~74iiaL}aNQ-n0ASp;n ziJ~GsB0bda&gZ+{_Yc;rHFwrM=j^lN+0TARFf-9-pyQz*5uszL?>DQQXjW!qx1A=c=F4JKHKw(K-hAI;vTo$k9^8c-MWco*;WHreYvg zS7$X*Q_s0pp?=V|wpMYv@Nw~Y?VSHckag=j>&m;W4iO*UEm`=T<54SNaR+}=e&EAt-uI9~BJ3`OD>Her3`r<#^k`?_{A?~&Dk7_lH zS3N#{#{2h3sLQhvmgnDIy$I`g<8x-}*15p#FBtsq)0i`l$2+GxV_xdbUN30%-t(>0 z?blltE7yKSNxu-z_!aVD#^FK|38KTy7idzcB>(R0A#Wq@GNe4duBJ}ftwNGg4y(MJ zc_gLqRL-l3VzSX6~-4FyLMHQz0IZUOoIB50K#am=vw)=cO z{n->1W;m`q1rN&PAOj<@8*!Zj&Z#X=JQ&W=3~@hqNb+xFqa2p+e`DYJF8;oaPbjN^ zo*Hh+1rAN#A%|f=w5p1{-LS$Z@!%0Y1|&5?V|94`6Kw6fLxZ!D76mPWQ)@A;7JnH9 zm;!3*m8o4-D>e)`o;q9Op+_36SOo?lD*CQp;uuVXw^D-c6?bwP&JJBRRoFGASBDS2 z7?2iS6{?HI{(LMLi&{}s3Z})$``H>>9x&u}xUY;!yJ9d0+as-rD|gHV!J(sZFLrRq zg;P4PeCXO`QbhmGJ2rq}Pe1WkAV0vunFL{s0{+(V6ruX;NqUY#T|TRSybz711%{jS zEw|hh(>E_{tcR62>d^p1L*U`g0@NhGze-+==Pet?1~ZkYkhYk7P*!wVojh=n&sI8d z@(L#C(ous$zcXdu(N3R*)Opb&BtJ{i;Swv~lfrCgyu@`|H!A35xaY=O4?6Um<6RsH zWA*hK7i!<3CIEO6Ge~FsngmqCRRLOgpf*#X@;xNIkeY`8IT(o+g2SrWnc(GMe%vtn z(RZ;W*E*J?6@On>j&_)Nq%evGprS=A|FEQl;m(W?`FiVaS%)~KN6Q4?+UJn}X5AOT z$9om#WjOX7uUk-GsLcitJj!W#L78Hs#>eQ0iNK5TZ9Q8h1kR@tIel&qk6#sdT6mBk zqN=Ij<#GV$RiU-Qr#}+ZyL_(m{!mUm{w7f>PYNSNM72GMlI|I&0m=QAp6M0%7?c>h zD<}docP6kfSavVm8QK}34`hT_AI%xKJ{<9R1rO1q?kQ!u)d9!3bDaB^oao|c2r?_p zsPY88F=h=|S?d)qL8b7GibcHo*V1dujRk%j=SkLT&3+^Zzzg#Es_)PC3ENKV$(!nj zzO!W2f*}80R7qJIJv;{b+ocD|nd+vJeQyfPg{*{bMgkHrEM8=#`3*i%06c@eQaK6B zWi@L-EgdR1j~|DfEL)MmV+u(LG96}Yz;c@@fA({?9@!9y*TQ5Ve5#ui91SU@#kB}p zXe+*6hn8oCmKjWKlX?g&E5DZgZuUr5RmkMd!#&&y<{QUnJ{%1i_{E1Hp63g4>^n2j z0bg>xFX&bNC#f2z_JTBDX(VMOcMX@qBFaEC4ll5rzaT5YgU$F!3PuViDMe!2;e10| zu%C&$zTY;J%7aYfc@A^>Mu<;Q09Z&0FX!ZT91)u{-_v0s{ZcdamAe8{X0%TW-gE-w zpQ8H|LE-VQE`34K!cr$B{4EDJL9yd!5jBbVD~Jt2oks3n9>D7jKB{d{6KKkn>7jCX z6mWV7I(^#b|E7iB6SiA_ZMMiu^e86=R0%VTS_GX_L0~ghJ_V;7&4}LvH!NRQ6S}AgGc_XD4 zSUlua1evJn-r&6iH-MA1Vrx9?3=y7Sq0gP~ZIP|&sd$)=CxemVP>_kR`|vuE9cD_o zfvdr*lTxvT)ysQG0W{!@ltr1jh7WLkAx`U6JKo#Dh5+1Oa5DHBP46`fFB?FH4|3t zd7lQjzDSATign1`-~$uan#tnO;i7A6_x@bWVf`Iib}8A_{T+Uc)rcr!?Kau=!HnbPS(gUK{cqv{xCfF0vaObm=Y zD(9U)n>Aaq+0p{?e;^;K7#tN?+Cul`gIL^=`@m{*R&Os)adly*cJGM23Bw?}>Rq;@ zc7W<~<->(e8w7lcLefKGB7{YoXri6Jasw}|>l^NYDwx&V-Y3S>#9SIgsQ8YSxE9jo z0y$9$8|=NoMT_WyVb^c>H;Mk8iFG7YM15mz-9_?rj3(Bmdq|Nwf?t;WL>c_JyIgDr zWf0~AE(SRbFe8&vQ@ChZcqnsxLd&KFe5%8SJQFg78sK#jg^rMx>0=h(Ir}eZ431_O zu)>olVegf!dk+pS*l8(drP48gN&kf+H7z6vP6D-n_wcwG+iuzd6pfVft%C*n+TybBo}4)wuc=3cpnkB7h^d)n~uXh^3G+q^+dH+41%WHpIB zq;aS%wvU-yvWFZhll?n6k!|$7ITB(F7H&6rzj_V~c|cLR$iWSh{8)Tr7mEEVPIMNp zPX8ieU!w!wmPQqfmZ+D<;_1dA%W#rZ7pdaCzAYv{uw{kER9|ET5+hhgLs)i^EUV4M z%ePB@y_%dDgF*I8?MSJ?#0#%C*OeRH5BVZdgcsSf2aPWqi;d){IbBLpDlyu}%49dr zP6Ww%kicB@)1sq<#{m$h|4f4a_VO`j!RHHl&xmIjMN5Rsq06hA$!r+7y|TuY+W22j z&wD*tmY4dv_x+EHQW4RP&H$rpd?e)Z8ZVam!(UniTHLc)eXHcst7skEKO}sZ$5l=O z`h&u@nE3x}Bnnl8{dvlra;d}@Gmi#_O8+y18qDaJ*+~rA(Ct_>E{lriS~1pn`%Z>3 zS9OgdCp@XP@NwhXPR3w$c6W6Sd}_s~{0lv}^lBq0H{eeg9Fe6K$ODzDrxD|xqRErQ z5TIiNbz-ZeG!`524?MU9iRg$PamlUumfa$Ulwq_ULFOM5s47(RE^j62BGc}L>tiH_ z2o-pFny{V=w-7XQBa}x&-p*#uK0utklSDN!jLni59M#+0O zsakWgkvM#}XdFD|8*sEu>|K@$+V-IN$KeF&iQ3e@w7PSsB zwCFg&#%1|he?(2o!R52lg8h*$8*-Z22XvTx9I&XEDS+uYCs#7sKqU!j|FQ?Y;u2vdV!V}QL zKC@g3W~&I7u3K=I@jww#5Mn@3u3}6_CKP!k^0V&rhfbTHhGQL`24fvp^Q_qj6%Bxw zge4~P`4hb%$(A%_jBVr8^_c_v!1Kqo3BANDb@b{<*jdS`!e|I7__!;Djw^diYq3YM!f0yJrLU#atUKRpt}v&M^7XYr z?~K+z@4UF0%ZyyvS7O%RpxkK#gJXrq*}(F5^AMO@X};7}f1-PVz!+#mR+TvX(CX@B z?XP2nq;@?G8(|MW%^x`)CB(|fapM40{g+b+D@waKSfv$IAE zukYzq2K?&~_i3Gr2^Rxqq|zfk2#vQNoqDK+J{l=xG zYd1Db1)umwe45^(f|95M${?U9EODhd>mi}S&Yydr2HDms4fiHXD*cA;5S{g8WT7TX z#@n#V#^R?8q7q&wxe(nZ^^73Xj+V$7I0!$LwKpwQ&0Q_9XmwjrY)^RoB)6|;M7HAs z@4c%htJCcn{6nNLFT2Ixl%PmbLd4gB>*G)@DDXxG6g?F;P&L{*WlAAh*aeor83W%R(tsDvLPy575mK2Ow zv1j}gcyunl&GIL=ogns*Ab3ujM%5$Apw{8X98Ux)KfmM3d>c|KY^&3YWj%_Ro&_J# zX^DRsto_W!*CD<#L?UFNY_BVR{CTuY^HJ(UlUEcluTh(yoZ!sGo#6K{2x)BI^;?NY zD{c>PPkE2cXBQ&wg*uUYpYP4pohti6Ne4S5q$SLp{pkr+Z_c41Pfqa}>9GCP%xJ%2 zN?rbfSzCTBdkpLN#Q2mWW&uiQ8Cq<&KqWkz9uJ`_)9(IdF+wUR&y*7RyStSoFQp3FX zKueDJ8&hIzNlF?xzncM9kq1S*@7u1^Rh!}^+HXIh=aJ2S7)~#BrR|Wa^=M=8ku!mP zE$u~#5u+fu6!%Yy0_MbokkgVs0DG*g0G*9r+|zA&&6hhizH1)5RB<`ox+vrGN(<4r zRpvs_VI26vDV=*Xq8&+Cv_8$M_ns#MJY_um$PwG7lFaDxgw|?3=jg$$ww~$bYLf5I z-p^e=+!7!KK(iDExWy}p!xe_ zrm)AT&f@QrG^t1CoRGI1R^UZqQ7Rr=FuMWtii_i3@$~fgNT}-km*_adx6H$9UcPsi zOARmAbpH_yyW!J8*~{aN&Z1oUu)~ciX(+@lee#I-BE1xS@h+7~5G8gI#ZE3Waxv_wrON5q-S^ti{}FoN#G_1NijZ%%zuy;R||IX2B=lQVrXc# zFR=_|9+7EOg?2#^ij45s)QAmJt(ch1Q~Zl z+Jl*S<1m-{L1S)h|CH>tGwIgdQ@28+sU;w8f8!78gy~zmO6uokR64!H)p|<(G~EG5#~>oG1Ynw z03A*Ec4ga*Kgkv1;^g9s$AagmQ^8wbV>lP67vi3&yt~h0b~SYOpbn2qCP8ozfrr72 zhw=`9DtX;zBz>-mUyH5#>#FhT?@P4+`O3fg$>n6HeRn1N|D2!Eua?h!|Ck&S^o8)c z&E$@iMuY;WmC{nU5vhYVc4fNt#~L)FOc(d!8P&Zzq%O@Nf5DbRBC)A zxIt}v`J#?s+m8Bd6B_E!zgKC%C+ru0-(z_>rd|Vu;)@t;AK9O}&qe)@N=GCgB@BbT zy^k+9neZ1mxtWrJiQ3iAocwJT8u=2V-~OYaUW&utt0g&-$wa@@@TW_oqC{s6GiMGt z!KX?{am9ma6BF|~#+MDfT7MP~=1^-kwrpx@1V%CL^IZ_XEuMeE$im3p6HtO13LIEA zSX#uWYt)cP68K^-n4d5LdQ3Q0Au{j>w-?2R%x2u{!_Z43B(^iMoeo$h}Keq+~Xc6Hidlv&}{HjhO8ADhVe)L5r!5>Zkd94*l`w9vDmVUI-jO$2i% zwiR!@uabKFTaD}AhU(JPCob2;uz&FduJWiA)A*ZPrM}_%506c4WL*xA27=jcM+*<` zX(gV+1lQ8CdkGaZX!pEWO$kqVsOiodG;>b0>h1H*$NTMOfl=Ohu>3b8@T@G{wI@3)@V3AI zDsEiK9>eM^eLBFkVlkLu;H}y=z?kr;u-X$XL2H5RrEKN0M;!O+N@&n-FB#cwduqf|JV?`~pmO>dr^f&HUn*l;deo@vv#IaSrL^peVNlm`x@?mL#ASsQg-nBkS_b#sX#1r=*(%9GB)S96UhUq) z5MW&Q7Q15}+*N(_A{#{|EKNk~s zE{xyfwD5=MSXNL}wS)|lsR?)ftkDA1d!yFak9WJZ5(k6>!zo~uHZ>#!ncFCvwxG(O zzoHU=ye*K{3lBQ9zU}%AyHarde#!m#oeLI!?ByGl8f8=+iBF|-g+0B?(Z7n@=1Z$D zN&qG~>K5-V>E3VSy?!cv>*kmMVE?$fSNl914wt5YuyEUYvoqA^=Bk8%mI<$bew`9Q zN2aLs%yq!x&B`8F2l!DEWX^Yycc(kAK;7nB z_DUX@OYUGU9D16f>M-NFv%)hPa!Z0BBMXI2%RpQfPvC_;T z_b`IaUsRkwJIEM8Z=?g{dFL4H!B^{PE}8Ejnz>Wb$}Z!3v^&eCMZy zD9b1;MR)8Fwr%@*sVmp@#g$of#97+7IK;DXz&4EzNN{h^?n;?&kutZNlY};pSvIHa zS!&|Cj-Ug?GT`Wn!k|x51WN&r%x+O*?5L1Ydf&fw>cZ;LkVb#*hq37Fv1=>MEi27^ zKTZr_CCmgCBPuHrgr;j_!((i`&Ubj>?3WPL+*z@YzrT>{Ydz=bXO4Rcm_UcW00AqU zH1iAil-c7pBYmf*yug5Sykmk<%$dKPOAO$tl8jAEj3x~S_v?I zs%U*;LIPqts%W6<8v~KpP7nG849lC7;*G!u14xj@$=Dq}L@t5?F2dg5Lmk3h{s_Jb z`4$>9Icfc+!QbiqVzQv7b~~Y`vZSnRaQZZfSNWNFtp)k<>e{SnUalJXOtQ+WozJ|g zRf7IkKP3w?wF>&%@5H>DgZ&)$HF>Q<3FwjF!lA0jb_G_;z4Rafwr#m0)bi&{vtUH} z^k%=)0cP_qp(nS!@RPv9A%!Z6H(Q4{^k+`v9~>2BdQ2WzAJ@DN6KII5xZ6^)6fO{U zIEQ^)tzRSP|7ULQLZ+fwLfaEZCPbR#0y%7R4{3s4ano;c@IUGvT%Gyzs+2~Og-qJ? z>R!W#_nD{h(`d2?~Z_neG9@uY)C#JIyWD-n2Ny2tsp~%1w3<%O_UX8HmpMQ{Y zf9UjW^ZRz+DLIrWjpsQhEL}@DSXS(IW7f+6WME#V#D>eo=-|6Nj2e`8jDtIVSt_&F zJV>0eR{1(2!i4v~WpLbh>EDi=%?J!=`U1t0Fh}MV#L_*IeB~)Or7O6Ano_oUIG1{A zad$rE`JY$H0nVbYV|}&m@iAaBO@sSQ&^B;6UO0>ed|1QAV#me}Pa*@!wJePmb*tmB zH?Gd((G`o^Y~qCicRy;rW^~X({bm%rj(b)r5w!utr7$=y-xG`Tq!K{2f zb?O=3{)_EH^w%rzP9GdeKRPD=@bf|kTm&#bN|^EEreZ)yv8fd4<<*o>`IDy(w{&ks zA87j35siH8Z(c3(?RoC$$;MmFomS`3orW3Frm|_!m(IjOHdaxRZ^|&h``h*fGmo(?YT|d(V}nued%&Vw2)O%J5%%yaj)uJSFj4 zK4@RpQ9uD#6`2(sPlEWcT>RkXy`6tXnimdEgK~=wF4PC}E?pbg`15S;teYbUSLs9r ziw1>XeDy( z!g}wOeP{X9Xk5~LkG*wkpd>(turg$(2S7R;694bXb}?@{r4vvUKNr5?Xg^3X=S^i# z%tMR_fBpO`yGWfr7|Shilgzw+M!2BEXj{V0>8T(=<{+;3-TNkL!|0E+(3bg`kFj>FHFh{%&Pn9T;$pzdSA;C6S}Q1Iu3icZK1p(smT~feIS%AcDedFz@`36KXeAO|JLIH3AA&=N~Y-Pd==u9L(xaW5$zOSiA%7DhvKNpblH zuO!~$MWERP8%#_vrJs477tVF-VB>F;9G9w>{5ln43;-?1;vfLQ4rl)o*rkDB=VH5L zwfl6&h;u+W^N0K{3pjM!`X#qJQr@E+FA_(PiGvTd){BK!4a(cWweL)4smZ!D596nN z!M4E=ph+rM$?KEL%0MVD0HdxUrxm(VASgFA{Cn~J9A9gjku@NHj&h&zfymGsV;zNd z8}i(agNip>6TAX#0iS0ADljN|iDlOrB8wu?X7HgYMf?l-qBlv&b>o=fHrL0S_j4UE zWrPkl2woJ|wMnS~H`2FCzso1d!b%;Ef`nS9xiIY4^Ri}h(g+u<=Ix2>BUupl?8n5@ z$LL_8HHdsB0ToA+4>c}XIdU4cRSo$E&O9#^b_5=dg;akRx3|77{9KC2B1r>@e>P_c zq!-;kNi6?uLu7ZR?~Sz5WeV$3Bi^;F3G5im?l)t= ztA*QZ{^{>@0k4N;7|o@LBa-~J>ZMnVrJGZgp&SGm4wS)f0y8Pj04?EoT)CJ*CNgk1 z@zfNvWmnpUkegh#thmQUka0oTm^F##9gu--IJ55hr*|4omlbn{3-K*DF=g2ov-^7y z;iQC$QB+?cI&0dwLJ5<(Tlmflr9#r<;9HG(p~}j?AOF{>pDVL}Sp8S<;FKlrN;BD) zkQv6;Ut2<;1$-~`heKp;Z{|0lY}#4(E6)Rz24CCN$2jX{IGk;bLp&=~e8><1=1p9M z(A==_agm|iY`KF)XiqD@`CP@%3xoOxf?%7`Ent9Dj>3sy+-C9jpV_9yHXX&>J9-S0Z_kuofnM}mewPkWjitp{GqY7JR4UIM5gtw`d9jW^D3%$wyyzwLJ5&v`Bnk~# z%i9L&p`ev7gg^rsqSwJ*F_-0`;*0a=&K9=PTJ5Wg5tJC~_%tf(sr7$lTcqGE=mfux zYBzEnSO+sjqMoXsPro+GG;cdu5S*fcWyc|&2!KW0`8U!)o)~O=Va%j!oX%}}kp|{y ziJApYG7u>kUKrc<#FG!yE!$#AQW6kj@M$wBU+Kv$M#_+OZ@w|tsos@xsJeHh#`t$| zs2(ri)dh`@jT=}av1)L>fn1bR?j~3I>^7skPNKoOn0mZOcf00cuTvye4?aXD*JpmU z!;A-vXAy_nzrq~`?9;ItQgI7N|G}Z#-nS4Jv0Qu); zn?rwV9nM;I_Z{1Qgsop81#fhw82-3SYKW+s6t97c_MhSMRy1M!pou)`O$6Cai}?5?bVEB)0f}KuQc|7;uJN(Y%WJ$8Jz01nUtR_<6pE zFFWA9zNovki)5#RNM;&C#00bgDaWoL$YvB8flX;ui~ez*zzC)&9+DyE#-K#U2e1;D z3||Da%n7vI@ib09In4BZ)J*v0)nP^tSY3u74=x&w`Kdd_a2m&6I{vqw`rOi!HuB`K zU-PQA`p0|G)fcJY?B}BC?~RI4PnF(vjC#tL=1QdUw{a@)YyYIIZ!(P0F{-9vl}@ixsPHWIcZB_WGKiG> zEz017vY~{E5CAVsIc93@5Ee|rdvDbF6#jkGH8U;!Ms-?xx8*D;%gW;RITLV+8nL`& zQ%1r9htY#hNAn-CSMmssmmMlk;~d{O_YWHt^%Tpa*iWH%tXR@Lv-tB?nubt)v&=>e z@6a#;e@QzHu`MM3VQ?rJvQla;^qMkf40a84RzHzVxtr5%skit7 zDTZf9m1GlxQEJXd$b*It)Fv=RQ(*b|cJzBT*zp&p| za{)!EOk$eKJb%+BDGl&?&3C~oA)CW^LD89rhH>pcTaxSXH*sXbGrQIqgR?qUW_mg; z7ztc=I(V)Asi9-~XdEKeLdOtCOaK)r&U}sm1wj4WG1I~3{AJ3n*p`!_VI8MLR7U|2 zfYwgFlq5vYEO5Kj|D!2Zu3%zp&?{PqT~63swE5&%TR!oqk_Bklt_I>D=T5 z?qteh`!#O5BwW&&jwZp{TsT@e!wJYklldhWLVhI+5&`|vlwpL>c0N9U5pi5zcKkgx z>I@;*ZbC!*l0bMDWkxc+{KWZj>LU1z&qv#zu6>nEpH#bgWgN-}$D=Q!+N7r7LuYf@ zTF8LEr?EZw1;ap9IJ4S`NP=o;t^?9-0krjdscXS$k7ei6z1Xm`>0S4f+$_?p#ckPW zkyVtT$&lye83!sLfVu;c$}C6dyF{u49l{BN=Lg0PS`Dv9C?EX}8{xdt$sLHnt5lLMM5lfn_NP zLJCpNrgii0#X#uiim=*fy39EG>yXf>Tn>{7amaunLY-~(L*7FFRQ9LC(*hxnzch$k zQ>1ItQ(vJVI>hVajO(%3WQ-9cg+q*?=n+<9j~__qnS}h=b#O$v$e{o}Sik(d{q?(R zPb2nE-F|BU+)(u+)rOWxq5)@))pnMJc|5{L96R7DKoixEb=B=Imc?Qe@i-))E^U72 zCv&PucRw}xCVoN%3YxjKJk#paf0n$ZxwQUBk@%Y0wn0c7l$w<(%(HCgh=ETvlo;I) zDEEpuOnXo5PZA??VYj*f=>e#n@|LkehP`!b?E9h3`cTt{nfWTs!;Txu=QMhxU}pzB zB*e3y%(ET8|8I$saY(UJ*;ON1&1!L?eTNR3Myhq0!Akf}SF|wb%e9>kGHmRt$pC1I zKmR>G(n0Eg=b3k74EbNoY`s6d!}pa7*3;@J8lnhG0F`yRXm{y_I&flAe-)OAP6_V6 zgiHD78SL=mLa&Rd1f)KIz*PED|7T{nP9~a`Iq)<-MX}-VS<||^>>(?`en{{Vj9j7z zQc0zOaFj&;XFiJj)N`$Xv!SgaElp@xpbl&0@sh}Ia$adB!BwI9#&Jk}&DqyOr=H82 z8FKCnL>O6LMTS7*APD~teY8>lZnTF`LPT>UcD?Br z4WwnEhuQ8qebB6n-$On_uY4zCVg;p@JML9TmVcK@EIv{gFl~Qa*cnLmSssz&=X;r$4+GDrk6+6;~Cpf;#dW19)gV7_m>Jq0bi&Psd+3Cm^_20RTG ziy$4BBs9AbyJ72=9+q8vG~Q!3TuT$&PaysV@DlP!0fmz<>mTqL%(%wSNG2?Mc8t2# z31|GLA+@20OFO^hXHM8lZXp3*6;G~Eeu-0Ff_h##nAqD4Nw4xRL=j)6@D3YzQvh6g zt!8JN8umh8)Eii>g9CZozg6DOJ4AUGf^UiV1n26 zGkQPH8fIPX56~ih0}+N$C%`in5(@>>#wcg}6jg#SQ=Fs+4IL=${{Kaq0GPBJ%q_2E z4?dIm(bN>@9qRT``ytZJ4Wj6(i%&9Bj_zG4JwStR^yMJ5l@h)dfC?FzJ zm~utl(tJ#7pCFUS0ppOHQfZ7aepnSY{q2Li?~Gr-H}Rp|i&MU@C=JPpO05nXHmKoR zcKMpIb&cAh#&<3#z<4^l_mrqEfM(GpQEf(^=2ngdaTj`3XR@AOL28B%QJ#FVf-bb; z!Adg?e8O^3x4w0__rii;@ca7#jX8|6zViB_RyyaRMgd3~1?k*6%p`%dZLNc?3MHSf%a;&CJuy;m6Z2%Kp_}P|OAr-oCMb7c zBm}QIx|QK^F*Lp@^-qvr{#F!Gh4G)v#(43zssj5dq%6)_mP8cVM~M79O-NB>7G;1$ zS4m1gj2mP$tTIo*HkWvjvG&l9&)=4YkU;ue$S!DSxZ<#SOV{Y$n;ZTo;fvVMw|?^K zjyLlEC(RS-fZqeQzO~OXWgL-p^RbTzPWOp>*IF&CrS-q41}DZsSXRr3`q(roakw)j zXRiLC(7@tRkKAIUyLR>Zs8oTBkNdJ_F@%h)ph-9+|6@W_h;4ie`zxc#y)4CCYj(Az zmoqUEZOr2}F&)B!D&c~upDbtMwb=cCKoi9pQ$p{HSP>|3W$FA|=&Ae9%^E&j-Vbwl#NE&dwC|3teen{;lCQAlBryX7Y-FSML9>J~Pr zgbgk;vVvr@P7I<9v(sX6i#pHh`t2)duQ{hr#)Rwm8j}B)rUiN`l6Ai5SV3-+Y*g`b zzL$_?@Z1fOT0&xI8wL1$*ENv;R9Jn3C! zO8(2Z713uQ{NMb3{GwePe);3W=*_Mia-w0Ofv;8OiKrOpu-F=gx0^gHum`gQ``HD9 zuo`#Y;e3)IE!uxZN`@CSvfQO1& z`2B_n-n8s9&*exPy51p3!b(*3NHQXxYL$pF(|7hgKq{_(pYD<-iqavjoEtOEc{i*j z=Vra0II|~1_X#j^%$@L1o$x~i8k2S~_wvx$j-fW>(Y+6I zI7&|a(%U&o0d+p)02L*IQ9F8y$GJkaCTuaM0WNB#CH-8rz8dDG0GqOs3#0fi7di`E z?e+Cyz}eq%%kg6JcttzK$81Czs!ClrqsQHQK9Y9QXF--mR0onf8TapIIdvzQydo_= zlFjp{LJgCp4lsT$Tnj4|?;#M5O@ qc@#VwyWrvOrk1x=aa-afVz#6oHjng-g8qew#8B5nr{X#)>i+e#iWEf^OO{n^*&bVw6IqES@^~_nOzfG&&Sat) zd&Z8Pj1$R@C0Vgtl*pnYxu{sZk&@U6iX<8df&@u`4ZYl#_kVkPH~?36_jd0V^sNo* zaM;@`-|t?3?@OoDkvify(o-Kn>PP{UI#K|ojub$tBLz_ENFCM=U+N=>e$2amjY@qA zkq_-p@l986TRR#GrT;qS&arm{P91Zn8hxYT^^dd^Kv&UGbHh4bausI5orh=qL-k)8 z-~3oh0W^`I*}g8wOk{XQR$7Gt$|-op9#+E09NQ2Ubx z$Z>e$mOKfBN5uj^Iy}aaOo%iusH_PAPq^!Zdrp_(Q4y|xVpnn?(vl-}HmLAf@bKTZ zn5l_yYaAi3WfmS43qs5AM1TG9z!Un*iCu@Zs~VsbJSM^nVeT{okMXuo?oJ#;nkV3i z^5HlKkBO9m14+?j!($wYf=Kf!JZ8kcDR@+vShZK-QIR6m(erXDf<1Wh!^7HD0no&O z$C-?}7vKp>B9|f3yyvE;B#%?@BmyEW1&?cJN4UbVx+4@nvHlYBDD?n)0)inc8 z%)FL|;0Y(e9Dv6-+)sIRJ7l~h?(#W4BDOE8y{qT%5o3-G8Y@F=QSQL8)yP)%5P zD1LZU{P2)vcz_QA=YA@yDC3`UhDimqy^0Kv@)|r85gy}hR4k7lBIn(B&t=rD!6WCg z(F_$LGD_4biJf;4p_DVh*?yc7qD*zD(JcubU&KmyIHt(O1#{lk3Eq~yR8vADnq zcodZ{uTgD#k7`L#VX@#*j+bLN1CNRV58^(2Ol zcvRBhF&FSzpsx2iay7aqGsU% zIF7qW&=Y2N&5 z@xX?~h4)h$-^P9T+c5vG=T=QhV5i_w;o%{t;0av6Y{@*8I4{gLJdv-ZqPV$slcEvf z3Hb$*rRPdFZM=Rn=fBFRpH-Q0^bZWs^zu@=X6t5_P+b9I+ImtnE_ldgcx=ibUp#{> z&7>x*z~e?n-3&aTKG>>tYiLT*6t;y1^}n*T8RFZM3#ZV^wW~-|V`>;|!Q((uGzL5> z4tT6cA)jlK$Mk|b1&^`~Pns`{y03Im-KO=ds%ogezhBgpGEUY=B+}dk)wFukIypCu zV?@d}JmgSDJu*BLkK|Eqs<0%$qfEg=w%|c@84KrQh_2ms9hJ^3r#_DPNIuMXeS8~n zppqFCbPb;abtm~Tjbg*2;(-@Hm-KcLbi%HWgs#Vu`Y0%O+Z} zZZ&&aT@wFMY9tYZf8oBv{#mhZ6|KE)BXwQ6%#zDzAz128M%__(LT;2Uo~xXdKrzck zBfvvmgNH`J19eqWRzllvzlkQZ?K2p#ea3w&S=!)llcyHa=9{)s(e!C-Ck^OseKOz~ zZ}G&0N124jiV*Ud=f`5rvD@${`|v<*!G?hv@^hT$MurClGQ2QfnorJz3qQzi{g4`# z+j!0RTlZzQm9AY++wZtVjBAvAAZMnlGZjYYhL;v@Bt>Jv6HYCLt>ab>*F;y}uvR$( zkJZ#fWOyP+GlglGtk%1k>!5c#_)XkYY&i0(3{n#dgFyxIAcGFGIO$6_3<@^{7K2En}>%iH36JC)Sx++3$qK4t-O}A z@Bjixi=N9@C~ryumCUN3xr=LQ^KILyL-o*=D?Q`fb1lqQO|%*Rlb@4I+wZ%RG79sk z@xT!})6~k>?xCFgTwMYIzC>iy$t`%4!xAW=@I+3!Mt+~+;XyeDR7_u25Bbv5Xwin1 zv|!zGno&KAA(}xw-Q6@iI22H8K3yHbwdd%w7II~rg9FkF=?xV)Cnq;o;AuX1ln%Z7 zF&*ZgG=83p%#46EQVC3oT8Br)aE8ttZq(ueC>lJj<+Uuq6WPOn&4PSZFWWXXs}|Gh z9oJIrnx&LqSU`O}z0}{+C+a67D~q!8bLeu%Me4qEMHaf_%vr7r3aBs!VruDhfiZV- zJ{3%z!q@B(*M5k>%F527th^k$aONBXw1?i^`7)h4+9KD~q4S%rXt1BxiWI4~4^L2y zMS)1Ow!7a%f`_F}cMla;lv3Tz*Rj-DM#VGB1e!t4s>5c<%E_TC7cSA!j}OwZJ%{L2 z<4Fc?NV+g!EF0YzaO-mm^5nm1Tq9I5XC_szSVT1|7mGUVWYsZ7q`L-L$%JV6KE z`jFmw=J)(u{UWKxK{Ns2F>bay1CX`6Rzl$klh=ZgTrsbTc6{Y-nzK|dNyUBX8G4!O z{=>M_^*%-r;fMKAD{Ux)qk*0QW6Fb$iCyT5$(AEOj^K}f$9QqkS_TQ zQthfGbo&GMQXZ?v!Tv$<$R_dgH6J`izxmfEsI7rj8cRIAU3%icBN8Y+fa;XhjJoB# zRvhq*EN(zb@Z(lozkzn#e-~wBXNu&3Q45>p<)?Sj?w8-DURG^*>?lLoV%w$+UC{In zR=|Yc^QPp}mV0iYji1^k_7`9QoSmo7(zD-xf{uTDNT5R9kusjs?TmVy@Wcg>z~gpO z)CN3QEc_2~8}W+#Iye~_nY3ctdivCZpASZq0nf#=o%Gbd{D_(k9TjLKdaRLiJyMc+ zReI+J-(0$J4c+yk4yU`A0Feh z_9NjTN{jZnOr2fvt;E6;JGzW-HEfw43_Re~!T^N)$put3dludJ`A^fvdv?g*HMU_U z@wfl@-gBj4GE~9P*9u+b6*M0utx2;Q{t#!)DjCx#oE$J5ZQ#N}#C0yK< z%L`FHvqCBbtGNWDggv8%&Nk_&kcH%*J#V~EJOAV7>}g$QS3NUef4F~0jtxdU8`$@J z{eG%kFqekdF2bjs!>>O-D~C=1vLnao#3zl^exgm%DCgVSsh>Mx#TJXw5NTyHniKGd zA$_D-vkcI@t#!&1@C4Kr)KV!|3vSr5kyg~Lq-iD7Igpn_iWlr;_j&49L-K|)St@<> z>O1uGcODby;Cd$to}g%FwS`c?4E6-S^v#E;Z1zkk$|vb@^-)%O1{drPQ_rO?>NtCj z>UZy>y|2Gd=NKZi6OE5nCl4O6gKPujp^Q4D(9qDJUfj;NXH?Cknnep}+kJPCFJCv9 zA!*=gJ@HRJqz*P-Gcq%SE_k93cy>LPyJ^w-74-SPeL#YcLjyx%_p}{uq}PA-BDFQQ zQhQ6Q0G`dkNMBldn0o6NUYpDC;NP$2fQ;xqw9C=qt~AK9fRx_$pjal zGSaC2!+jk6z98`=gd5DmqoTv3oP{Tvv*ELxOigk|T?M=y7^ZprjlS;An<$gP(Kwrq z2=lZ5{uCYMsB+$v$x?2S>L%gQ0<(J%v|D;z zo!C60F1R}I<)@z)wdGHu+6pU$*uKH*Y~vgm)R|=S`Mzm0OKIa>JE;5Om0$|RE2E1S#T_nFIdm)tpoNCAbRB& z&vTq=Ko5rUPxb1>RJCZHs9!A*kaP?lo1Ly?q6xsH5uGS_OuDD?0rNs|2?m06Fi>F& z;TsO=qpJq*!DGBJzwKQ^m`{qChR2XOC=L$EfERQUdwgJ73XLFhe>(vlmzE63C~y0uQ+a zPgH=8zqVUTC_EH9wt;Ub>Ul~z>O6T`k$71M5*~VgPoRH`Jb&Olw4XR7B_2lhzp%8J zrj{4$RgZc{?f!=oNKd$_hNnZdXRs zeZA~w)Xg{EsgUt2dMst~v_h_Fo-FncYHjLw@7L>beCC8{TA+su5-VDMOp5UX*Ti|z zjB}hP3$Msj+60$sFF6hUB6h>arWZjSs1;{o$Dt3&=0eDPEAQJ-)5&(~3K_k9{ z=yNtoB=|N0isxES2kLNQiy)*yPzG|D+mg{$nwFLp5i)?##jVWv!R=`0;##;Su8rp~ zQ$7UAbB;YS#DAnPKQ}9&mWL+{Jm&kt63}LBc9vi0Vif%8jvR4EE&qmN~xAd{o?q9&pUnk4CMq%Qb*tcVDtIBdGqE{d;3}1 z_5LoIv1lfoAoV{1cRrVEnjl$wE*agi${l!Oc)H5sK=O1);E6c6+bMXIY(Ic+CknK( zxfcs%saWiD?7l-9g)M;yfdb$1Z~VjG)0XSE$jrk_4Ab+^?xe>a{V^336bM8{ul&+w zOX+K0f0$;^nJtfRYHXq(eE)}Z=-?sFyXkdBfamh%%k;ok|AKD&% zUPOKUeY)MllB{@oF_m-CS}*?((g;7ejr;I7Dbh#J89xS(#Wip(Toc#EbKtq~oMy{s zkrzwnjD1E{MzCJmRd|#$@R*DPspP>Eeh69c&uOTi32nuR=p|{~``#rBnikUc1u1~p zKqziEq!?5P?&qS|V7>~sabGY}92iK2#~SL)xF*iOBG=Snn+9rR=mWs<8}OLeBP=d> z$QnE18&gb47xn2*0JNh3%NvsduoKax-(~2e)w_{)TgKE*^u&;u^RXu8C{oIq+O~ zPGh=9qb%4|ab*-+kn})Ow;-pa6uB z05Fo_Nx>z@ZiSr}JL$=vK1q-NcSMMP}FDv0eJ?ar-m}MEAV%u6!{xV~^H|fn?=CblE&S=Z~M%92)PE1b9YG z+6V;o{QfA0X80s#2DdYRa^xsIaQ|0jkzhli!(*(sBneN3<7ZDiML&M@CvqR40z9EW z=uLy^)ZE-c4?pxZv5gSZ$>D;2JXb6?Uesv-dYMr@G#nDoN&q}Dx<1TK{!Moj9t(Lb zvIvjpTV5a(U-fX8DQ*KKeEZQB6KlZ?FyL+*Z8MP~%(xG5<#M>dfF+Vkj%&gLi*?O$ z1L;@_p~xQ9h={0nvoyQJ4Um(I3xlI%%$0W7$ZMGyNM$minw|`Jlnr=vTOm!_U@+@v z5_>FIEaZ_e*N0T>Mr{=`B!Ns+5t?ZQvU1JP_XgF47*ID4yu#z5o{i01yaSIDURcuL z8I!>E8`I>w12JQNYznMeWjw#agHmm6;6VMx&M4atLEIGahpj|v+$^Bql5!COc%E)OJ~C*J@8jC zr%Jxjq$Z98%H`dEDr@HkTYfH|zd$XAjs@GVT~CTeQhyeQjN5AKi8Z)89(bZR%jpv6 z5`Wk*HuY(%ek!Rd=cc^E3BwNz{~6U)GH}XhPdZV5JYa8WHsDdtz+-dE15*Gsi5jyW zAPl>!lMQ%Ar^GbrI_+X_Ou9VzmCfd^1}#?Pm%LHV3P)hamp&u!1GzkSUnjYuG9x<> zV=@~cRM9JMoPg(iW2@%UUKu9giIj)12#=8xgMo>B(V3=`Vhh0lg$FZt$^3CGF`k15 zWB0hCa?K4JWzd3jX)sLZPMoGAJS|Ps*H~{ZW~ZpKm=twR^4PY4?88I0;R)T#9i9rJ zw(wjqb4RfnLv$KOwYRmHlGncBwypX&J(ifgJiX&R?$8L|*6cJqM5YEbsMvMTwg75+ zd#`2-9%U6C714GwwiUS2d5KOPYYFteYqBBkVxE8@Q&l~v$)IX6L~7m5o2i&*8|kgg zK59MMOnYB_Pw%D;jX9Zt$3{k7nJVqj3->!3PiZb}_hbVevI-AHHN4@vqlS3jYwuG> z+c|NA0a4wJ*XkK_j}auLAKZ#mSu=+=eR?~?!m5fT=>QLsdhtg;AKyu979P7v(U|Zg zV$)=3KpI*?;%wQh0*GwRIS*VxBjOjc6>Wfs$lkpKe#LS{YZ+|4y z?GcU$0^|jFl#4b{^E>;rq{0*M!l1gQSC)$;lF1yb+KzB{hR;L2J;vS~Fz#=@?=GHI zT`OvAQeY7Ii~soxQC-2vbJPI`3517_j;2#u0yf=M=HXEe!4pV#Vbonk&1|lZ&JXs+ zH}kwfO~&UcPe>ksjg-rEcilv5Z@N~`v}0Rw4ubyXdyjMQu+yY_9itjCPIy$b9e>;a zsQKM}n$;~26gdNri26W(SlQf49t}Bj z4-rxmQt5Y({*sREJ{Ta7$isoPa*>kk}#n<(m zmlQWCoAB7nYsG>mAreTJLi@Eu!(-Gd)C?gvlO>rcNRUjU4tQDfktc;Hb^NgjKm$TmPN z@9o#B)-6%C@>(|F(fir`vbR@pWtrrT`gy z^#L?&@ASuC|5nBU8&!llOf(`P!l*obD*_e#U9XB%v~bNby7ht2(KPPsLX=tN76lCH z-#_*%diAO2^gS}Pk=>xZ22V#*o0d?3thwn?_8K!ejt$KEJdNtKq;W zx+>#uw~R{(l!L;hpSx@!-E#lkyzNtENV#G6fu|T3}~F14cv2m9r7Q6xZ3XLUwQ-DQQ(=AY=2n7dTM(@k{T>BsJxy81Ted zMHnNm6;<-YVF$$pP|N!Vf>Ov$ctQsfApV0gR@_E16&t8v!68Kkdj>f+l*^@}<+SDQ zTNsp8`l6y4kk9qWmX8I0XLAiR@zEkv6Q zY%UncMcmPW{`D%}x}c1QT;aM#k-v{2OG}@`r6wJ8;Ei1@b#_Xf4`Nl=2g9+vmJ9H7 zG`DF<0my);a_tgj3m!5*2vRy1Sh`G`Q7Yr@P*{c@`KAL$B{N?*eX2xyui>qhR`U2? zJjf^+&0?s!cxS=}-gpHAy-Q}#U^`{9NHP52836@G&DCw+G}2I*ru!Ji#0z!BoaON@wX2uVHMef1)!R0*aqN?xF(fcC@dEWWfb65+ze&5;g+}yu?WeX-P2Ey% zOq?p=0Kfz|5mN$CMq<YRyC4y;2?~Imy`+XGq*lvy3t6gV=jRDjsLg>| z%HqCv*hKKC5dDTq!W+Woyk{Ct%5<~_4q&!(fg6luoDbVcq)t-dQBhiRMy?;P^l=m* zfv9e=vI>uivY88o^n+n@T+D{P_nUvI2Ng+ATVPrTfItAx=(DQlxX|Hu_He@TL%PIn zJI>Lh1a?^7vBq`{-Z)eoHiCncnOZ(wB-T`xNSQgAvSl|$$zXsv4D&%w++H}-A#bXq z?JRF%*CE%$&Omy5wSQz|T_=;G;l}591Rlq|FgM_#KphY|FVKO33H7Lp7IgyK_tes5%kK=i4jL9ASxz2l2!bFg%%{8e z!A?^CFMxsC6G0>6dWYiAYdHyzGB@4Ba{!&#bx5nMTcn(X2OS^3}gm%5~8XaSBQ0@w;fQ@jCS6)B_~f{O@D2B+d{V|Kp@i3bfu ztRl3T6s7p!iJqDm{k%>|9~UH$4$;gtiTPz%%Bvb{Za+0a~b>+-68N zrR7(fm8W|;7_guZCP*LIW7JI7hnL}r*mY_nqprqB-8v@{KmyU~h02jVszPFMm`qQB zEwjm|jUHKM2_B0c(gcOaxa9^st^;I1WC|W-u6SRWoaN^#JTcphlLb$hgaH53+0v%D zIC$UvW5%ilDqeWZ?xXHJJXU+u|8(F<7(k;SQZdRpoQ6k*jktId9)~jOiGnAg00~4Z z7pR!<*eGX68a#2OCMG^S2?t1rXufh9p6GUpwWMxh;BhA@nrL{E0uYXh74wy|@I-gh zQ}A460F8iDtHQz)BeWkMJQgOGCN(K)4Ia1LbWZ~$5G}7&Zoy+lS|nQXTutzJ0-#Wc zT!+Vz*~@;~ z;qfFuL6DYKE7#z$o7YMPJR$GdOW=4Opiqde4tT8Y1Mhu!JP(j@lr5R3lA2LBz2MgJ zT4vz!DmW7gpiv+tI-{O&c%13iN&yrNq{VYpLXx6MfX8l+dI}&LN9m%u%C&ve$1&tg zQZy1gc1EkD0CEzhg>#f+(d7ieGf|TN&u7V@K{TV8t|B%znlWdD=;mXt&$Co znLQ^`08OA{dhIObR$eRC{#q%3Qb+0_7dul^M+%_SkvdWUrH&LpsUrnY>bTmE{|AZD VN#2#3N16Zt002ovPDHLkV1gSxUupmV literal 0 HcmV?d00001 diff --git a/tauri/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png b/tauri/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..83032de395f671bedc97b45dfcc30e2de4470ab2 GIT binary patch literal 13185 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