From 7e8f95e73e5552d6c585a825ac1ceac97c90cc72 Mon Sep 17 00:00:00 2001
From: sangge <2251250136@qq.com>
Date: Sat, 7 Jun 2025 22:58:23 +0800
Subject: [PATCH] Add multi-theme system with random theme selection on app
startup
---
.gitignore | 42 +
CLAUDE.md | 48 +
README.md | 7 +
build_android.sh | 1 +
build_desktop.sh | 1 +
index.html | 14 +
package.json | 27 +
pnpm-lock.yaml | 1239 ++++++
src-tauri/.gitignore | 7 +
src-tauri/Cargo.lock | 5101 +++++++++++++++++++++++++
src-tauri/Cargo.toml | 26 +
src-tauri/build.rs | 3 +
src-tauri/capabilities/default.json | 10 +
src-tauri/icons/128x128.png | Bin 0 -> 1820 bytes
src-tauri/icons/128x128@2x.png | Bin 0 -> 4204 bytes
src-tauri/icons/32x32.png | Bin 0 -> 482 bytes
src-tauri/icons/4096x4096.png | Bin 0 -> 120919 bytes
src-tauri/icons/Square107x107Logo.png | Bin 0 -> 2863 bytes
src-tauri/icons/Square142x142Logo.png | Bin 0 -> 3858 bytes
src-tauri/icons/Square150x150Logo.png | Bin 0 -> 3966 bytes
src-tauri/icons/Square284x284Logo.png | Bin 0 -> 7737 bytes
src-tauri/icons/Square30x30Logo.png | Bin 0 -> 447 bytes
src-tauri/icons/Square310x310Logo.png | Bin 0 -> 8591 bytes
src-tauri/icons/Square44x44Logo.png | Bin 0 -> 509 bytes
src-tauri/icons/Square71x71Logo.png | Bin 0 -> 755 bytes
src-tauri/icons/Square89x89Logo.png | Bin 0 -> 2468 bytes
src-tauri/icons/StoreLogo.png | Bin 0 -> 1523 bytes
src-tauri/icons/icon.icns | Bin 0 -> 98451 bytes
src-tauri/icons/icon.ico | Bin 0 -> 105021 bytes
src-tauri/icons/icon.png | Bin 0 -> 7596 bytes
src-tauri/src/lib.rs | 174 +
src-tauri/src/main.rs | 6 +
src-tauri/tauri.conf.json | 36 +
src/AddPage.css | 222 ++
src/AddPage.tsx | 59 +
src/App.css | 1 +
src/App.tsx | 36 +
src/DetailPage.css | 79 +
src/DetailPage.tsx | 66 +
src/HomePage.css | 181 +
src/HomePage.tsx | 61 +
src/main.tsx | 9 +
src/themes.css | 153 +
src/vite-env.d.ts | 1 +
tsconfig.json | 25 +
tsconfig.node.json | 10 +
vite.config.ts | 32 +
47 files changed, 7677 insertions(+)
create mode 100644 .gitignore
create mode 100644 CLAUDE.md
create mode 100644 README.md
create mode 100755 build_android.sh
create mode 100755 build_desktop.sh
create mode 100644 index.html
create mode 100644 package.json
create mode 100644 pnpm-lock.yaml
create mode 100644 src-tauri/.gitignore
create mode 100644 src-tauri/Cargo.lock
create mode 100644 src-tauri/Cargo.toml
create mode 100644 src-tauri/build.rs
create mode 100644 src-tauri/capabilities/default.json
create mode 100644 src-tauri/icons/128x128.png
create mode 100644 src-tauri/icons/128x128@2x.png
create mode 100644 src-tauri/icons/32x32.png
create mode 100644 src-tauri/icons/4096x4096.png
create mode 100644 src-tauri/icons/Square107x107Logo.png
create mode 100644 src-tauri/icons/Square142x142Logo.png
create mode 100644 src-tauri/icons/Square150x150Logo.png
create mode 100644 src-tauri/icons/Square284x284Logo.png
create mode 100644 src-tauri/icons/Square30x30Logo.png
create mode 100644 src-tauri/icons/Square310x310Logo.png
create mode 100644 src-tauri/icons/Square44x44Logo.png
create mode 100644 src-tauri/icons/Square71x71Logo.png
create mode 100644 src-tauri/icons/Square89x89Logo.png
create mode 100644 src-tauri/icons/StoreLogo.png
create mode 100644 src-tauri/icons/icon.icns
create mode 100644 src-tauri/icons/icon.ico
create mode 100644 src-tauri/icons/icon.png
create mode 100644 src-tauri/src/lib.rs
create mode 100644 src-tauri/src/main.rs
create mode 100644 src-tauri/tauri.conf.json
create mode 100644 src/AddPage.css
create mode 100644 src/AddPage.tsx
create mode 100644 src/App.css
create mode 100644 src/App.tsx
create mode 100644 src/DetailPage.css
create mode 100644 src/DetailPage.tsx
create mode 100644 src/HomePage.css
create mode 100644 src/HomePage.tsx
create mode 100644 src/main.tsx
create mode 100644 src/themes.css
create mode 100644 src/vite-env.d.ts
create mode 100644 tsconfig.json
create mode 100644 tsconfig.node.json
create mode 100644 vite.config.ts
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..7f56fac
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,42 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+
+# private key and sensitive files
+keystore.properties
+upload-keystore.properties
+upload-keystore.jks
+*.jks
+*.pem
+*.p12
+*.pfx
+.env*
+*.key
+
+# Tauri build artifacts and generated files
+src-tauri/gen/
+src-tauri/target/
+src-tauri/.gradle/
+*.apk
+*.aab
diff --git a/CLAUDE.md b/CLAUDE.md
new file mode 100644
index 0000000..be5e8d9
--- /dev/null
+++ b/CLAUDE.md
@@ -0,0 +1,48 @@
+# CLAUDE.md
+
+This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
+
+## Development Commands
+
+### Frontend Development
+- `pnpm dev` - Start the frontend development server (runs Vite on localhost:1420)
+- `pnpm build` - Build the frontend for production (TypeScript compilation + Vite build)
+- `pnpm preview` - Preview the production build
+
+### Tauri Development
+- `pnpm tauri dev` - Start Tauri development mode (builds Rust backend + starts frontend)
+- `pnpm tauri build` - Build the complete Tauri application for production
+
+### Build Scripts
+- `./build_desktop.sh` - Build desktop application
+- `./build_android.sh` - Build Android application
+
+## Architecture Overview
+
+This is a **Tauri application** combining a Rust backend with a React/TypeScript frontend for building cross-platform desktop and mobile apps.
+
+### Backend (Rust)
+- **Database**: SQLite with rusqlite for storing anniversary records
+- **Location**: Database stored in app data directory (`anniversaries.db`)
+- **Schema**: `anniversaries` table with id, title, start_date, created_at
+- **Core Commands**: All database operations exposed as Tauri commands in `src-tauri/src/lib.rs`
+ - `get_anniversaries` - Fetch all anniversaries with calculated days
+ - `get_anniversary_by_id` - Fetch single anniversary by ID
+ - `add_anniversary` - Add new anniversary
+ - `delete_anniversary` - Delete anniversary by ID
+
+### Frontend (React + TypeScript)
+- **Router**: React Router DOM with three main routes:
+ - `/` - HomePage (list all anniversaries)
+ - `/detail/:id` - DetailPage (view/delete specific anniversary)
+ - `/add` - AddPage (create new anniversary)
+- **Data Flow**: Frontend calls Tauri commands to interact with Rust backend
+- **Styling**: Component-specific CSS files for each page
+
+### Key Dependencies
+- **Frontend**: React 18, React Router DOM, Tauri API
+- **Backend**: rusqlite (SQLite), chrono (date handling), serde (serialization)
+- **Build**: Vite, TypeScript, Tauri CLI
+
+### Package Manager
+This project uses **pnpm** as specified in `tauri.conf.json` build commands.
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..102e366
--- /dev/null
+++ b/README.md
@@ -0,0 +1,7 @@
+# Tauri + React + Typescript
+
+This template should help get you started developing with Tauri, React and Typescript in Vite.
+
+## Recommended IDE Setup
+
+- [VS Code](https://code.visualstudio.com/) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer)
diff --git a/build_android.sh b/build_android.sh
new file mode 100755
index 0000000..3f20118
--- /dev/null
+++ b/build_android.sh
@@ -0,0 +1 @@
+pnpm tauri android build --apk -t aarch64
diff --git a/build_desktop.sh b/build_desktop.sh
new file mode 100755
index 0000000..6a0c577
--- /dev/null
+++ b/build_desktop.sh
@@ -0,0 +1 @@
+pnpm tauri build --no-bundle
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..ff93803
--- /dev/null
+++ b/index.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+ Tauri + React + Typescript
+
+
+
+
+
+
+
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..2e414cc
--- /dev/null
+++ b/package.json
@@ -0,0 +1,27 @@
+{
+ "name": "countdown",
+ "private": true,
+ "version": "0.1.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "tsc && vite build",
+ "preview": "vite preview",
+ "tauri": "cargo tauri"
+ },
+ "dependencies": {
+ "@tauri-apps/api": "^2.5.0",
+ "@tauri-apps/plugin-opener": "^2.2.7",
+ "react": "^18.3.1",
+ "react-dom": "^18.3.1",
+ "react-router-dom": "^7.1.3"
+ },
+ "devDependencies": {
+ "@tauri-apps/cli": "^2",
+ "@types/react": "^18.3.1",
+ "@types/react-dom": "^18.3.1",
+ "@vitejs/plugin-react": "^4.3.4",
+ "typescript": "~5.6.2",
+ "vite": "^6.0.3"
+ }
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
new file mode 100644
index 0000000..8027fcb
--- /dev/null
+++ b/pnpm-lock.yaml
@@ -0,0 +1,1239 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ dependencies:
+ '@tauri-apps/api':
+ specifier: ^2.5.0
+ version: 2.5.0
+ '@tauri-apps/plugin-opener':
+ specifier: ^2.2.7
+ version: 2.2.7
+ react:
+ specifier: ^18.3.1
+ version: 18.3.1
+ react-dom:
+ specifier: ^18.3.1
+ version: 18.3.1(react@18.3.1)
+ react-router-dom:
+ specifier: ^7.1.3
+ version: 7.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ devDependencies:
+ '@tauri-apps/cli':
+ specifier: ^2
+ version: 2.2.7
+ '@types/react':
+ specifier: ^18.3.1
+ version: 18.3.18
+ '@types/react-dom':
+ specifier: ^18.3.1
+ version: 18.3.5(@types/react@18.3.18)
+ '@vitejs/plugin-react':
+ specifier: ^4.3.4
+ version: 4.3.4(vite@6.0.11)
+ typescript:
+ specifier: ~5.6.2
+ version: 5.6.3
+ vite:
+ specifier: ^6.0.3
+ version: 6.0.11
+
+packages:
+
+ '@ampproject/remapping@2.3.0':
+ resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
+ engines: {node: '>=6.0.0'}
+
+ '@babel/code-frame@7.26.2':
+ resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/compat-data@7.26.5':
+ resolution: {integrity: sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/core@7.26.7':
+ resolution: {integrity: sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/generator@7.26.5':
+ resolution: {integrity: sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-compilation-targets@7.26.5':
+ resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-module-imports@7.25.9':
+ resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-module-transforms@7.26.0':
+ resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-plugin-utils@7.26.5':
+ resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-string-parser@7.25.9':
+ resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-validator-identifier@7.25.9':
+ resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-validator-option@7.25.9':
+ resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helpers@7.26.7':
+ resolution: {integrity: sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/parser@7.26.7':
+ resolution: {integrity: sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
+ '@babel/plugin-transform-react-jsx-self@7.25.9':
+ resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-react-jsx-source@7.25.9':
+ resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/template@7.25.9':
+ resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/traverse@7.26.7':
+ resolution: {integrity: sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/types@7.26.7':
+ resolution: {integrity: sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==}
+ engines: {node: '>=6.9.0'}
+
+ '@esbuild/aix-ppc64@0.24.2':
+ resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [aix]
+
+ '@esbuild/android-arm64@0.24.2':
+ resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [android]
+
+ '@esbuild/android-arm@0.24.2':
+ resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [android]
+
+ '@esbuild/android-x64@0.24.2':
+ resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [android]
+
+ '@esbuild/darwin-arm64@0.24.2':
+ resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@esbuild/darwin-x64@0.24.2':
+ resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@esbuild/freebsd-arm64@0.24.2':
+ resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-x64@0.24.2':
+ resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@esbuild/linux-arm64@0.24.2':
+ resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@esbuild/linux-arm@0.24.2':
+ resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [linux]
+
+ '@esbuild/linux-ia32@0.24.2':
+ resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [linux]
+
+ '@esbuild/linux-loong64@0.24.2':
+ resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==}
+ engines: {node: '>=18'}
+ cpu: [loong64]
+ os: [linux]
+
+ '@esbuild/linux-mips64el@0.24.2':
+ resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==}
+ engines: {node: '>=18'}
+ cpu: [mips64el]
+ os: [linux]
+
+ '@esbuild/linux-ppc64@0.24.2':
+ resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@esbuild/linux-riscv64@0.24.2':
+ resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==}
+ engines: {node: '>=18'}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@esbuild/linux-s390x@0.24.2':
+ resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==}
+ engines: {node: '>=18'}
+ cpu: [s390x]
+ os: [linux]
+
+ '@esbuild/linux-x64@0.24.2':
+ resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [linux]
+
+ '@esbuild/netbsd-arm64@0.24.2':
+ resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [netbsd]
+
+ '@esbuild/netbsd-x64@0.24.2':
+ resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [netbsd]
+
+ '@esbuild/openbsd-arm64@0.24.2':
+ resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openbsd]
+
+ '@esbuild/openbsd-x64@0.24.2':
+ resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [openbsd]
+
+ '@esbuild/sunos-x64@0.24.2':
+ resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [sunos]
+
+ '@esbuild/win32-arm64@0.24.2':
+ resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@esbuild/win32-ia32@0.24.2':
+ resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@esbuild/win32-x64@0.24.2':
+ resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [win32]
+
+ '@jridgewell/gen-mapping@0.3.8':
+ resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
+ engines: {node: '>=6.0.0'}
+
+ '@jridgewell/resolve-uri@3.1.2':
+ resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
+ engines: {node: '>=6.0.0'}
+
+ '@jridgewell/set-array@1.2.1':
+ resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
+ engines: {node: '>=6.0.0'}
+
+ '@jridgewell/sourcemap-codec@1.5.0':
+ resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
+
+ '@jridgewell/trace-mapping@0.3.25':
+ resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
+
+ '@rollup/rollup-android-arm-eabi@4.32.1':
+ resolution: {integrity: sha512-/pqA4DmqyCm8u5YIDzIdlLcEmuvxb0v8fZdFhVMszSpDTgbQKdw3/mB3eMUHIbubtJ6F9j+LtmyCnHTEqIHyzA==}
+ cpu: [arm]
+ os: [android]
+
+ '@rollup/rollup-android-arm64@4.32.1':
+ resolution: {integrity: sha512-If3PDskT77q7zgqVqYuj7WG3WC08G1kwXGVFi9Jr8nY6eHucREHkfpX79c0ACAjLj3QIWKPJR7w4i+f5EdLH5Q==}
+ cpu: [arm64]
+ os: [android]
+
+ '@rollup/rollup-darwin-arm64@4.32.1':
+ resolution: {integrity: sha512-zCpKHioQ9KgZToFp5Wvz6zaWbMzYQ2LJHQ+QixDKq52KKrF65ueu6Af4hLlLWHjX1Wf/0G5kSJM9PySW9IrvHA==}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@rollup/rollup-darwin-x64@4.32.1':
+ resolution: {integrity: sha512-sFvF+t2+TyUo/ZQqUcifrJIgznx58oFZbdHS9TvHq3xhPVL9nOp+yZ6LKrO9GWTP+6DbFtoyLDbjTpR62Mbr3Q==}
+ cpu: [x64]
+ os: [darwin]
+
+ '@rollup/rollup-freebsd-arm64@4.32.1':
+ resolution: {integrity: sha512-NbOa+7InvMWRcY9RG+B6kKIMD/FsnQPH0MWUvDlQB1iXnF/UcKSudCXZtv4lW+C276g3w5AxPbfry5rSYvyeYA==}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@rollup/rollup-freebsd-x64@4.32.1':
+ resolution: {integrity: sha512-JRBRmwvHPXR881j2xjry8HZ86wIPK2CcDw0EXchE1UgU0ubWp9nvlT7cZYKc6bkypBt745b4bglf3+xJ7hXWWw==}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.32.1':
+ resolution: {integrity: sha512-PKvszb+9o/vVdUzCCjL0sKHukEQV39tD3fepXxYrHE3sTKrRdCydI7uldRLbjLmDA3TFDmh418XH19NOsDRH8g==}
+ cpu: [arm]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-arm-musleabihf@4.32.1':
+ resolution: {integrity: sha512-9WHEMV6Y89eL606ReYowXuGF1Yb2vwfKWKdD1A5h+OYnPZSJvxbEjxTRKPgi7tkP2DSnW0YLab1ooy+i/FQp/Q==}
+ cpu: [arm]
+ os: [linux]
+ libc: [musl]
+
+ '@rollup/rollup-linux-arm64-gnu@4.32.1':
+ resolution: {integrity: sha512-tZWc9iEt5fGJ1CL2LRPw8OttkCBDs+D8D3oEM8mH8S1ICZCtFJhD7DZ3XMGM8kpqHvhGUTvNUYVDnmkj4BDXnw==}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-arm64-musl@4.32.1':
+ resolution: {integrity: sha512-FTYc2YoTWUsBz5GTTgGkRYYJ5NGJIi/rCY4oK/I8aKowx1ToXeoVVbIE4LGAjsauvlhjfl0MYacxClLld1VrOw==}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@rollup/rollup-linux-loongarch64-gnu@4.32.1':
+ resolution: {integrity: sha512-F51qLdOtpS6P1zJVRzYM0v6MrBNypyPEN1GfMiz0gPu9jN8ScGaEFIZQwteSsGKg799oR5EaP7+B2jHgL+d+Kw==}
+ cpu: [loong64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-powerpc64le-gnu@4.32.1':
+ resolution: {integrity: sha512-wO0WkfSppfX4YFm5KhdCCpnpGbtgQNj/tgvYzrVYFKDpven8w2N6Gg5nB6w+wAMO3AIfSTWeTjfVe+uZ23zAlg==}
+ cpu: [ppc64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-riscv64-gnu@4.32.1':
+ resolution: {integrity: sha512-iWswS9cIXfJO1MFYtI/4jjlrGb/V58oMu4dYJIKnR5UIwbkzR0PJ09O0PDZT0oJ3LYWXBSWahNf/Mjo6i1E5/g==}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-s390x-gnu@4.32.1':
+ resolution: {integrity: sha512-RKt8NI9tebzmEthMnfVgG3i/XeECkMPS+ibVZjZ6mNekpbbUmkNWuIN2yHsb/mBPyZke4nlI4YqIdFPgKuoyQQ==}
+ cpu: [s390x]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-x64-gnu@4.32.1':
+ resolution: {integrity: sha512-WQFLZ9c42ECqEjwg/GHHsouij3pzLXkFdz0UxHa/0OM12LzvX7DzedlY0SIEly2v18YZLRhCRoHZDxbBSWoGYg==}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-x64-musl@4.32.1':
+ resolution: {integrity: sha512-BLoiyHDOWoS3uccNSADMza6V6vCNiphi94tQlVIL5de+r6r/CCQuNnerf+1g2mnk2b6edp5dk0nhdZ7aEjOBsA==}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@rollup/rollup-win32-arm64-msvc@4.32.1':
+ resolution: {integrity: sha512-w2l3UnlgYTNNU+Z6wOR8YdaioqfEnwPjIsJ66KxKAf0p+AuL2FHeTX6qvM+p/Ue3XPBVNyVSfCrfZiQh7vZHLQ==}
+ cpu: [arm64]
+ os: [win32]
+
+ '@rollup/rollup-win32-ia32-msvc@4.32.1':
+ resolution: {integrity: sha512-Am9H+TGLomPGkBnaPWie4F3x+yQ2rr4Bk2jpwy+iV+Gel9jLAu/KqT8k3X4jxFPW6Zf8OMnehyutsd+eHoq1WQ==}
+ cpu: [ia32]
+ os: [win32]
+
+ '@rollup/rollup-win32-x64-msvc@4.32.1':
+ resolution: {integrity: sha512-ar80GhdZb4DgmW3myIS9nRFYcpJRSME8iqWgzH2i44u+IdrzmiXVxeFnExQ5v4JYUSpg94bWjevMG8JHf1Da5Q==}
+ cpu: [x64]
+ os: [win32]
+
+ '@tauri-apps/api@2.5.0':
+ resolution: {integrity: sha512-Ldux4ip+HGAcPUmuLT8EIkk6yafl5vK0P0c0byzAKzxJh7vxelVtdPONjfgTm96PbN24yjZNESY8CKo8qniluA==}
+
+ '@tauri-apps/cli-darwin-arm64@2.2.7':
+ resolution: {integrity: sha512-54kcpxZ3X1Rq+pPTzk3iIcjEVY4yv493uRx/80rLoAA95vAC0c//31Whz75UVddDjJfZvXlXZ3uSZ+bnCOnt0A==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@tauri-apps/cli-darwin-x64@2.2.7':
+ resolution: {integrity: sha512-Vgu2XtBWemLnarB+6LqQeLanDlRj7CeFN//H8bVVdjbNzxcSxsvbLYMBP8+3boa7eBnjDrqMImRySSgL6IrwTw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@tauri-apps/cli-linux-arm-gnueabihf@2.2.7':
+ resolution: {integrity: sha512-+Clha2iQAiK9zoY/KKW0KLHkR0k36O78YLx5Sl98tWkwI3OBZFg5H5WT1plH/4sbZIS2aLFN6dw58/JlY9Bu/g==}
+ engines: {node: '>= 10'}
+ cpu: [arm]
+ os: [linux]
+
+ '@tauri-apps/cli-linux-arm64-gnu@2.2.7':
+ resolution: {integrity: sha512-Z/Lp4SQe6BUEOays9BQAEum2pvZF4w9igyXijP+WbkOejZx4cDvarFJ5qXrqSLmBh7vxrdZcLwoLk9U//+yQrg==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@tauri-apps/cli-linux-arm64-musl@2.2.7':
+ resolution: {integrity: sha512-+8HZ+txff/Y3YjAh80XcLXcX8kpGXVdr1P8AfjLHxHdS6QD4Md+acSxGTTNbplmHuBaSHJvuTvZf9tU1eDCTDg==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@tauri-apps/cli-linux-x64-gnu@2.2.7':
+ resolution: {integrity: sha512-ahlSnuCnUntblp9dG7/w5ZWZOdzRFi3zl0oScgt7GF4KNAOEa7duADsxPA4/FT2hLRa0SvpqtD4IYFvCxoVv3Q==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@tauri-apps/cli-linux-x64-musl@2.2.7':
+ resolution: {integrity: sha512-+qKAWnJRSX+pjjRbKAQgTdFY8ecdcu8UdJ69i7wn3ZcRn2nMMzOO2LOMOTQV42B7/Q64D1pIpmZj9yblTMvadA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@tauri-apps/cli-win32-arm64-msvc@2.2.7':
+ resolution: {integrity: sha512-aa86nRnrwT04u9D9fhf5JVssuAZlUCCc8AjqQjqODQjMd4BMA2+d4K9qBMpEG/1kVh95vZaNsLogjEaqSTTw4A==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@tauri-apps/cli-win32-ia32-msvc@2.2.7':
+ resolution: {integrity: sha512-EiJ5/25tLSQOSGvv+t6o3ZBfOTKB5S3vb+hHQuKbfmKdRF0XQu2YPdIi1CQw1DU97ZAE0Dq4frvnyYEKWgMzVQ==}
+ engines: {node: '>= 10'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@tauri-apps/cli-win32-x64-msvc@2.2.7':
+ resolution: {integrity: sha512-ZB8Kw90j8Ld+9tCWyD2fWCYfIrzbQohJ4DJSidNwbnehlZzP7wAz6Z3xjsvUdKtQ3ibtfoeTqVInzCCEpI+pWg==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@tauri-apps/cli@2.2.7':
+ resolution: {integrity: sha512-ZnsS2B4BplwXP37celanNANiIy8TCYhvg5RT09n72uR/o+navFZtGpFSqljV8fy1Y4ixIPds8FrGSXJCN2BerA==}
+ engines: {node: '>= 10'}
+ hasBin: true
+
+ '@tauri-apps/plugin-opener@2.2.7':
+ resolution: {integrity: sha512-uduEyvOdjpPOEeDRrhwlCspG/f9EQalHumWBtLBnp3fRp++fKGLqDOyUhSIn7PzX45b/rKep//ZQSAQoIxobLA==}
+
+ '@types/babel__core@7.20.5':
+ resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
+
+ '@types/babel__generator@7.6.8':
+ resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
+
+ '@types/babel__template@7.4.4':
+ resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
+
+ '@types/babel__traverse@7.20.6':
+ resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==}
+
+ '@types/cookie@0.6.0':
+ resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}
+
+ '@types/estree@1.0.6':
+ resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
+
+ '@types/prop-types@15.7.14':
+ resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==}
+
+ '@types/react-dom@18.3.5':
+ resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==}
+ peerDependencies:
+ '@types/react': ^18.0.0
+
+ '@types/react@18.3.18':
+ resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==}
+
+ '@vitejs/plugin-react@4.3.4':
+ resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ vite: ^4.2.0 || ^5.0.0 || ^6.0.0
+
+ browserslist@4.24.4:
+ resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+
+ caniuse-lite@1.0.30001696:
+ resolution: {integrity: sha512-pDCPkvzfa39ehJtJ+OwGT/2yvT2SbjfHhiIW2LWOAcMQ7BzwxT/XuyUp4OTOd0XFWA6BKw0JalnBHgSi5DGJBQ==}
+
+ convert-source-map@2.0.0:
+ resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
+
+ cookie@1.0.2:
+ resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==}
+ engines: {node: '>=18'}
+
+ csstype@3.1.3:
+ resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
+
+ debug@4.4.0:
+ resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ electron-to-chromium@1.5.90:
+ resolution: {integrity: sha512-C3PN4aydfW91Natdyd449Kw+BzhLmof6tzy5W1pFC5SpQxVXT+oyiyOG9AgYYSN9OdA/ik3YkCrpwqI8ug5Tug==}
+
+ esbuild@0.24.2:
+ resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ escalade@3.2.0:
+ resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+ engines: {node: '>=6'}
+
+ fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
+ gensync@1.0.0-beta.2:
+ resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
+ engines: {node: '>=6.9.0'}
+
+ globals@11.12.0:
+ resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
+ engines: {node: '>=4'}
+
+ js-tokens@4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+
+ jsesc@3.1.0:
+ resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ json5@2.2.3:
+ resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ loose-envify@1.4.0:
+ resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
+ hasBin: true
+
+ lru-cache@5.1.1:
+ resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+
+ ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+
+ nanoid@3.3.8:
+ resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
+ node-releases@2.0.19:
+ resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
+
+ picocolors@1.1.1:
+ resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
+
+ postcss@8.5.1:
+ resolution: {integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==}
+ engines: {node: ^10 || ^12 || >=14}
+
+ react-dom@18.3.1:
+ resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
+ peerDependencies:
+ react: ^18.3.1
+
+ react-refresh@0.14.2:
+ resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
+ engines: {node: '>=0.10.0'}
+
+ react-router-dom@7.1.3:
+ resolution: {integrity: sha512-qQGTE+77hleBzv9SIUIkGRvuFBQGagW+TQKy53UTZAO/3+YFNBYvRsNIZ1GT17yHbc63FylMOdS+m3oUriF1GA==}
+ engines: {node: '>=20.0.0'}
+ peerDependencies:
+ react: '>=18'
+ react-dom: '>=18'
+
+ react-router@7.1.3:
+ resolution: {integrity: sha512-EezYymLY6Guk/zLQ2vRA8WvdUhWFEj5fcE3RfWihhxXBW7+cd1LsIiA3lmx+KCmneAGQuyBv820o44L2+TtkSA==}
+ engines: {node: '>=20.0.0'}
+ peerDependencies:
+ react: '>=18'
+ react-dom: '>=18'
+ peerDependenciesMeta:
+ react-dom:
+ optional: true
+
+ react@18.3.1:
+ resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
+ engines: {node: '>=0.10.0'}
+
+ rollup@4.32.1:
+ resolution: {integrity: sha512-z+aeEsOeEa3mEbS1Tjl6sAZ8NE3+AalQz1RJGj81M+fizusbdDMoEJwdJNHfaB40Scr4qNu+welOfes7maKonA==}
+ engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+ hasBin: true
+
+ scheduler@0.23.2:
+ resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
+
+ semver@6.3.1:
+ resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+ hasBin: true
+
+ set-cookie-parser@2.7.1:
+ resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==}
+
+ source-map-js@1.2.1:
+ resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
+ engines: {node: '>=0.10.0'}
+
+ turbo-stream@2.4.0:
+ resolution: {integrity: sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==}
+
+ typescript@5.6.3:
+ resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
+ update-browserslist-db@1.1.2:
+ resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+
+ vite@6.0.11:
+ resolution: {integrity: sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==}
+ engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
+ hasBin: true
+ 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
+
+ yallist@3.1.1:
+ resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+
+snapshots:
+
+ '@ampproject/remapping@2.3.0':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.8
+ '@jridgewell/trace-mapping': 0.3.25
+
+ '@babel/code-frame@7.26.2':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.25.9
+ js-tokens: 4.0.0
+ picocolors: 1.1.1
+
+ '@babel/compat-data@7.26.5': {}
+
+ '@babel/core@7.26.7':
+ dependencies:
+ '@ampproject/remapping': 2.3.0
+ '@babel/code-frame': 7.26.2
+ '@babel/generator': 7.26.5
+ '@babel/helper-compilation-targets': 7.26.5
+ '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.7)
+ '@babel/helpers': 7.26.7
+ '@babel/parser': 7.26.7
+ '@babel/template': 7.25.9
+ '@babel/traverse': 7.26.7
+ '@babel/types': 7.26.7
+ convert-source-map: 2.0.0
+ debug: 4.4.0
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/generator@7.26.5':
+ dependencies:
+ '@babel/parser': 7.26.7
+ '@babel/types': 7.26.7
+ '@jridgewell/gen-mapping': 0.3.8
+ '@jridgewell/trace-mapping': 0.3.25
+ jsesc: 3.1.0
+
+ '@babel/helper-compilation-targets@7.26.5':
+ dependencies:
+ '@babel/compat-data': 7.26.5
+ '@babel/helper-validator-option': 7.25.9
+ browserslist: 4.24.4
+ lru-cache: 5.1.1
+ semver: 6.3.1
+
+ '@babel/helper-module-imports@7.25.9':
+ dependencies:
+ '@babel/traverse': 7.26.7
+ '@babel/types': 7.26.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.7)':
+ dependencies:
+ '@babel/core': 7.26.7
+ '@babel/helper-module-imports': 7.25.9
+ '@babel/helper-validator-identifier': 7.25.9
+ '@babel/traverse': 7.26.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-plugin-utils@7.26.5': {}
+
+ '@babel/helper-string-parser@7.25.9': {}
+
+ '@babel/helper-validator-identifier@7.25.9': {}
+
+ '@babel/helper-validator-option@7.25.9': {}
+
+ '@babel/helpers@7.26.7':
+ dependencies:
+ '@babel/template': 7.25.9
+ '@babel/types': 7.26.7
+
+ '@babel/parser@7.26.7':
+ dependencies:
+ '@babel/types': 7.26.7
+
+ '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.7)':
+ dependencies:
+ '@babel/core': 7.26.7
+ '@babel/helper-plugin-utils': 7.26.5
+
+ '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.7)':
+ dependencies:
+ '@babel/core': 7.26.7
+ '@babel/helper-plugin-utils': 7.26.5
+
+ '@babel/template@7.25.9':
+ dependencies:
+ '@babel/code-frame': 7.26.2
+ '@babel/parser': 7.26.7
+ '@babel/types': 7.26.7
+
+ '@babel/traverse@7.26.7':
+ dependencies:
+ '@babel/code-frame': 7.26.2
+ '@babel/generator': 7.26.5
+ '@babel/parser': 7.26.7
+ '@babel/template': 7.25.9
+ '@babel/types': 7.26.7
+ debug: 4.4.0
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/types@7.26.7':
+ dependencies:
+ '@babel/helper-string-parser': 7.25.9
+ '@babel/helper-validator-identifier': 7.25.9
+
+ '@esbuild/aix-ppc64@0.24.2':
+ optional: true
+
+ '@esbuild/android-arm64@0.24.2':
+ optional: true
+
+ '@esbuild/android-arm@0.24.2':
+ optional: true
+
+ '@esbuild/android-x64@0.24.2':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.24.2':
+ optional: true
+
+ '@esbuild/darwin-x64@0.24.2':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.24.2':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.24.2':
+ optional: true
+
+ '@esbuild/linux-arm64@0.24.2':
+ optional: true
+
+ '@esbuild/linux-arm@0.24.2':
+ optional: true
+
+ '@esbuild/linux-ia32@0.24.2':
+ optional: true
+
+ '@esbuild/linux-loong64@0.24.2':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.24.2':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.24.2':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.24.2':
+ optional: true
+
+ '@esbuild/linux-s390x@0.24.2':
+ optional: true
+
+ '@esbuild/linux-x64@0.24.2':
+ optional: true
+
+ '@esbuild/netbsd-arm64@0.24.2':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.24.2':
+ optional: true
+
+ '@esbuild/openbsd-arm64@0.24.2':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.24.2':
+ optional: true
+
+ '@esbuild/sunos-x64@0.24.2':
+ optional: true
+
+ '@esbuild/win32-arm64@0.24.2':
+ optional: true
+
+ '@esbuild/win32-ia32@0.24.2':
+ optional: true
+
+ '@esbuild/win32-x64@0.24.2':
+ optional: true
+
+ '@jridgewell/gen-mapping@0.3.8':
+ dependencies:
+ '@jridgewell/set-array': 1.2.1
+ '@jridgewell/sourcemap-codec': 1.5.0
+ '@jridgewell/trace-mapping': 0.3.25
+
+ '@jridgewell/resolve-uri@3.1.2': {}
+
+ '@jridgewell/set-array@1.2.1': {}
+
+ '@jridgewell/sourcemap-codec@1.5.0': {}
+
+ '@jridgewell/trace-mapping@0.3.25':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.5.0
+
+ '@rollup/rollup-android-arm-eabi@4.32.1':
+ optional: true
+
+ '@rollup/rollup-android-arm64@4.32.1':
+ optional: true
+
+ '@rollup/rollup-darwin-arm64@4.32.1':
+ optional: true
+
+ '@rollup/rollup-darwin-x64@4.32.1':
+ optional: true
+
+ '@rollup/rollup-freebsd-arm64@4.32.1':
+ optional: true
+
+ '@rollup/rollup-freebsd-x64@4.32.1':
+ optional: true
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.32.1':
+ optional: true
+
+ '@rollup/rollup-linux-arm-musleabihf@4.32.1':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-gnu@4.32.1':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-musl@4.32.1':
+ optional: true
+
+ '@rollup/rollup-linux-loongarch64-gnu@4.32.1':
+ optional: true
+
+ '@rollup/rollup-linux-powerpc64le-gnu@4.32.1':
+ optional: true
+
+ '@rollup/rollup-linux-riscv64-gnu@4.32.1':
+ optional: true
+
+ '@rollup/rollup-linux-s390x-gnu@4.32.1':
+ optional: true
+
+ '@rollup/rollup-linux-x64-gnu@4.32.1':
+ optional: true
+
+ '@rollup/rollup-linux-x64-musl@4.32.1':
+ optional: true
+
+ '@rollup/rollup-win32-arm64-msvc@4.32.1':
+ optional: true
+
+ '@rollup/rollup-win32-ia32-msvc@4.32.1':
+ optional: true
+
+ '@rollup/rollup-win32-x64-msvc@4.32.1':
+ optional: true
+
+ '@tauri-apps/api@2.5.0': {}
+
+ '@tauri-apps/cli-darwin-arm64@2.2.7':
+ optional: true
+
+ '@tauri-apps/cli-darwin-x64@2.2.7':
+ optional: true
+
+ '@tauri-apps/cli-linux-arm-gnueabihf@2.2.7':
+ optional: true
+
+ '@tauri-apps/cli-linux-arm64-gnu@2.2.7':
+ optional: true
+
+ '@tauri-apps/cli-linux-arm64-musl@2.2.7':
+ optional: true
+
+ '@tauri-apps/cli-linux-x64-gnu@2.2.7':
+ optional: true
+
+ '@tauri-apps/cli-linux-x64-musl@2.2.7':
+ optional: true
+
+ '@tauri-apps/cli-win32-arm64-msvc@2.2.7':
+ optional: true
+
+ '@tauri-apps/cli-win32-ia32-msvc@2.2.7':
+ optional: true
+
+ '@tauri-apps/cli-win32-x64-msvc@2.2.7':
+ optional: true
+
+ '@tauri-apps/cli@2.2.7':
+ optionalDependencies:
+ '@tauri-apps/cli-darwin-arm64': 2.2.7
+ '@tauri-apps/cli-darwin-x64': 2.2.7
+ '@tauri-apps/cli-linux-arm-gnueabihf': 2.2.7
+ '@tauri-apps/cli-linux-arm64-gnu': 2.2.7
+ '@tauri-apps/cli-linux-arm64-musl': 2.2.7
+ '@tauri-apps/cli-linux-x64-gnu': 2.2.7
+ '@tauri-apps/cli-linux-x64-musl': 2.2.7
+ '@tauri-apps/cli-win32-arm64-msvc': 2.2.7
+ '@tauri-apps/cli-win32-ia32-msvc': 2.2.7
+ '@tauri-apps/cli-win32-x64-msvc': 2.2.7
+
+ '@tauri-apps/plugin-opener@2.2.7':
+ dependencies:
+ '@tauri-apps/api': 2.5.0
+
+ '@types/babel__core@7.20.5':
+ dependencies:
+ '@babel/parser': 7.26.7
+ '@babel/types': 7.26.7
+ '@types/babel__generator': 7.6.8
+ '@types/babel__template': 7.4.4
+ '@types/babel__traverse': 7.20.6
+
+ '@types/babel__generator@7.6.8':
+ dependencies:
+ '@babel/types': 7.26.7
+
+ '@types/babel__template@7.4.4':
+ dependencies:
+ '@babel/parser': 7.26.7
+ '@babel/types': 7.26.7
+
+ '@types/babel__traverse@7.20.6':
+ dependencies:
+ '@babel/types': 7.26.7
+
+ '@types/cookie@0.6.0': {}
+
+ '@types/estree@1.0.6': {}
+
+ '@types/prop-types@15.7.14': {}
+
+ '@types/react-dom@18.3.5(@types/react@18.3.18)':
+ dependencies:
+ '@types/react': 18.3.18
+
+ '@types/react@18.3.18':
+ dependencies:
+ '@types/prop-types': 15.7.14
+ csstype: 3.1.3
+
+ '@vitejs/plugin-react@4.3.4(vite@6.0.11)':
+ dependencies:
+ '@babel/core': 7.26.7
+ '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.7)
+ '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.7)
+ '@types/babel__core': 7.20.5
+ react-refresh: 0.14.2
+ vite: 6.0.11
+ transitivePeerDependencies:
+ - supports-color
+
+ browserslist@4.24.4:
+ dependencies:
+ caniuse-lite: 1.0.30001696
+ electron-to-chromium: 1.5.90
+ node-releases: 2.0.19
+ update-browserslist-db: 1.1.2(browserslist@4.24.4)
+
+ caniuse-lite@1.0.30001696: {}
+
+ convert-source-map@2.0.0: {}
+
+ cookie@1.0.2: {}
+
+ csstype@3.1.3: {}
+
+ debug@4.4.0:
+ dependencies:
+ ms: 2.1.3
+
+ electron-to-chromium@1.5.90: {}
+
+ esbuild@0.24.2:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.24.2
+ '@esbuild/android-arm': 0.24.2
+ '@esbuild/android-arm64': 0.24.2
+ '@esbuild/android-x64': 0.24.2
+ '@esbuild/darwin-arm64': 0.24.2
+ '@esbuild/darwin-x64': 0.24.2
+ '@esbuild/freebsd-arm64': 0.24.2
+ '@esbuild/freebsd-x64': 0.24.2
+ '@esbuild/linux-arm': 0.24.2
+ '@esbuild/linux-arm64': 0.24.2
+ '@esbuild/linux-ia32': 0.24.2
+ '@esbuild/linux-loong64': 0.24.2
+ '@esbuild/linux-mips64el': 0.24.2
+ '@esbuild/linux-ppc64': 0.24.2
+ '@esbuild/linux-riscv64': 0.24.2
+ '@esbuild/linux-s390x': 0.24.2
+ '@esbuild/linux-x64': 0.24.2
+ '@esbuild/netbsd-arm64': 0.24.2
+ '@esbuild/netbsd-x64': 0.24.2
+ '@esbuild/openbsd-arm64': 0.24.2
+ '@esbuild/openbsd-x64': 0.24.2
+ '@esbuild/sunos-x64': 0.24.2
+ '@esbuild/win32-arm64': 0.24.2
+ '@esbuild/win32-ia32': 0.24.2
+ '@esbuild/win32-x64': 0.24.2
+
+ escalade@3.2.0: {}
+
+ fsevents@2.3.3:
+ optional: true
+
+ gensync@1.0.0-beta.2: {}
+
+ globals@11.12.0: {}
+
+ js-tokens@4.0.0: {}
+
+ jsesc@3.1.0: {}
+
+ json5@2.2.3: {}
+
+ loose-envify@1.4.0:
+ dependencies:
+ js-tokens: 4.0.0
+
+ lru-cache@5.1.1:
+ dependencies:
+ yallist: 3.1.1
+
+ ms@2.1.3: {}
+
+ nanoid@3.3.8: {}
+
+ node-releases@2.0.19: {}
+
+ picocolors@1.1.1: {}
+
+ postcss@8.5.1:
+ dependencies:
+ nanoid: 3.3.8
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
+ react-dom@18.3.1(react@18.3.1):
+ dependencies:
+ loose-envify: 1.4.0
+ react: 18.3.1
+ scheduler: 0.23.2
+
+ react-refresh@0.14.2: {}
+
+ react-router-dom@7.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-router: 7.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+
+ react-router@7.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@types/cookie': 0.6.0
+ cookie: 1.0.2
+ react: 18.3.1
+ set-cookie-parser: 2.7.1
+ turbo-stream: 2.4.0
+ optionalDependencies:
+ react-dom: 18.3.1(react@18.3.1)
+
+ react@18.3.1:
+ dependencies:
+ loose-envify: 1.4.0
+
+ rollup@4.32.1:
+ dependencies:
+ '@types/estree': 1.0.6
+ optionalDependencies:
+ '@rollup/rollup-android-arm-eabi': 4.32.1
+ '@rollup/rollup-android-arm64': 4.32.1
+ '@rollup/rollup-darwin-arm64': 4.32.1
+ '@rollup/rollup-darwin-x64': 4.32.1
+ '@rollup/rollup-freebsd-arm64': 4.32.1
+ '@rollup/rollup-freebsd-x64': 4.32.1
+ '@rollup/rollup-linux-arm-gnueabihf': 4.32.1
+ '@rollup/rollup-linux-arm-musleabihf': 4.32.1
+ '@rollup/rollup-linux-arm64-gnu': 4.32.1
+ '@rollup/rollup-linux-arm64-musl': 4.32.1
+ '@rollup/rollup-linux-loongarch64-gnu': 4.32.1
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.32.1
+ '@rollup/rollup-linux-riscv64-gnu': 4.32.1
+ '@rollup/rollup-linux-s390x-gnu': 4.32.1
+ '@rollup/rollup-linux-x64-gnu': 4.32.1
+ '@rollup/rollup-linux-x64-musl': 4.32.1
+ '@rollup/rollup-win32-arm64-msvc': 4.32.1
+ '@rollup/rollup-win32-ia32-msvc': 4.32.1
+ '@rollup/rollup-win32-x64-msvc': 4.32.1
+ fsevents: 2.3.3
+
+ scheduler@0.23.2:
+ dependencies:
+ loose-envify: 1.4.0
+
+ semver@6.3.1: {}
+
+ set-cookie-parser@2.7.1: {}
+
+ source-map-js@1.2.1: {}
+
+ turbo-stream@2.4.0: {}
+
+ typescript@5.6.3: {}
+
+ update-browserslist-db@1.1.2(browserslist@4.24.4):
+ dependencies:
+ browserslist: 4.24.4
+ escalade: 3.2.0
+ picocolors: 1.1.1
+
+ vite@6.0.11:
+ dependencies:
+ esbuild: 0.24.2
+ postcss: 8.5.1
+ rollup: 4.32.1
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ yallist@3.1.1: {}
diff --git a/src-tauri/.gitignore b/src-tauri/.gitignore
new file mode 100644
index 0000000..b21bd68
--- /dev/null
+++ b/src-tauri/.gitignore
@@ -0,0 +1,7 @@
+# Generated by Cargo
+# will have compiled files and executables
+/target/
+
+# Generated by Tauri
+# will have schema files for capabilities auto-completion
+/gen/schemas
diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock
new file mode 100644
index 0000000..985f00d
--- /dev/null
+++ b/src-tauri/Cargo.lock
@@ -0,0 +1,5101 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 4
+
+[[package]]
+name = "addr2line"
+version = "0.24.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler2"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+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.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
+dependencies = [
+ "alloc-no-stdlib",
+]
+
+[[package]]
+name = "android-tzdata"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+
+[[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.98"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487"
+
+[[package]]
+name = "async-broadcast"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532"
+dependencies = [
+ "event-listener",
+ "event-listener-strategy",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-channel"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a"
+dependencies = [
+ "concurrent-queue",
+ "event-listener-strategy",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-executor"
+version = "1.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb812ffb58524bdd10860d7d974e2f01cc0950c2438a74ee5ec2e2280c6c4ffa"
+dependencies = [
+ "async-task",
+ "concurrent-queue",
+ "fastrand",
+ "futures-lite",
+ "pin-project-lite",
+ "slab",
+]
+
+[[package]]
+name = "async-io"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1237c0ae75a0f3765f58910ff9cdd0a12eeb39ab2f4c7de23262f337f0aacbb3"
+dependencies = [
+ "async-lock",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-io",
+ "futures-lite",
+ "parking",
+ "polling",
+ "rustix",
+ "slab",
+ "tracing",
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "async-lock"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18"
+dependencies = [
+ "event-listener",
+ "event-listener-strategy",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-process"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cde3f4e40e6021d7acffc90095cbd6dc54cb593903d1de5832f435eb274b85dc"
+dependencies = [
+ "async-channel",
+ "async-io",
+ "async-lock",
+ "async-signal",
+ "async-task",
+ "blocking",
+ "cfg-if",
+ "event-listener",
+ "futures-lite",
+ "rustix",
+ "tracing",
+]
+
+[[package]]
+name = "async-recursion"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+]
+
+[[package]]
+name = "async-signal"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7605a4e50d4b06df3898d5a70bf5fde51ed9059b0434b73105193bc27acce0d"
+dependencies = [
+ "async-io",
+ "async-lock",
+ "atomic-waker",
+ "cfg-if",
+ "futures-core",
+ "futures-io",
+ "rustix",
+ "signal-hook-registry",
+ "slab",
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "async-task"
+version = "4.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
+
+[[package]]
+name = "async-trait"
+version = "0.1.88"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+]
+
+[[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.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
+
+[[package]]
+name = "backtrace"
+version = "0.3.75"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002"
+dependencies = [
+ "addr2line",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+ "windows-targets 0.52.6",
+]
+
+[[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 = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967"
+dependencies = [
+ "serde",
+]
+
+[[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.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f"
+dependencies = [
+ "objc2 0.5.2",
+]
+
+[[package]]
+name = "block2"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "340d2f0bdb2a43c1d3cd40513185b2bd7def0aa1052f956455114bc98f82dcf2"
+dependencies = [
+ "objc2 0.6.1",
+]
+
+[[package]]
+name = "blocking"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea"
+dependencies = [
+ "async-channel",
+ "async-task",
+ "futures-io",
+ "futures-lite",
+ "piper",
+]
+
+[[package]]
+name = "brotli"
+version = "7.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd"
+dependencies = [
+ "alloc-no-stdlib",
+ "alloc-stdlib",
+ "brotli-decompressor",
+]
+
+[[package]]
+name = "brotli-decompressor"
+version = "4.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a334ef7c9e23abf0ce748e8cd309037da93e606ad52eb372e4ce327a0dcfbdfd"
+dependencies = [
+ "alloc-no-stdlib",
+ "alloc-stdlib",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793db76d6187cd04dff33004d8e6c9cc4e05cd330500379d2394209271b4aeee"
+
+[[package]]
+name = "bytemuck"
+version = "1.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9134a6ef01ce4b366b50689c94f82c14bc72bc5d0386829828a2e2752ef7958c"
+
+[[package]]
+name = "byteorder"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+
+[[package]]
+name = "bytes"
+version = "1.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a"
+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.9.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.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab"
+dependencies = [
+ "serde",
+]
+
+[[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.12",
+]
+
+[[package]]
+name = "cargo_toml"
+version = "0.22.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02260d489095346e5cafd04dea8e8cb54d1d74fcd759022a9b72986ebe9a1257"
+dependencies = [
+ "serde",
+ "toml",
+]
+
+[[package]]
+name = "cc"
+version = "1.2.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "956a5e21988b87f372569b66183b78babf23ebc2e744b733e4350a752c4dafac"
+dependencies = [
+ "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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "cfg_aliases"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
+
+[[package]]
+name = "chrono"
+version = "0.4.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d"
+dependencies = [
+ "android-tzdata",
+ "iana-time-zone",
+ "js-sys",
+ "num-traits",
+ "serde",
+ "wasm-bindgen",
+ "windows-link",
+]
+
+[[package]]
+name = "combine"
+version = "4.6.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd"
+dependencies = [
+ "bytes",
+ "memchr",
+]
+
+[[package]]
+name = "concurrent-queue"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "convert_case"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
+
+[[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.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1"
+dependencies = [
+ "bitflags 2.9.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.9.1",
+ "core-foundation",
+ "libc",
+]
+
+[[package]]
+name = "countdown"
+version = "0.1.0"
+dependencies = [
+ "chrono",
+ "rusqlite",
+ "serde",
+ "serde_json",
+ "tauri",
+ "tauri-build",
+ "tauri-plugin-opener",
+]
+
+[[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.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
+
+[[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+dependencies = [
+ "generic-array",
+ "typenum",
+]
+
+[[package]]
+name = "cssparser"
+version = "0.27.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a"
+dependencies = [
+ "cssparser-macros",
+ "dtoa-short",
+ "itoa 0.4.8",
+ "matches",
+ "phf 0.8.0",
+ "proc-macro2",
+ "quote",
+ "smallvec",
+ "syn 1.0.109",
+]
+
+[[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.101",
+]
+
+[[package]]
+name = "ctor"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501"
+dependencies = [
+ "quote",
+ "syn 2.0.101",
+]
+
+[[package]]
+name = "darling"
+version = "0.20.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.20.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim",
+ "syn 2.0.101",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.20.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn 2.0.101",
+]
+
+[[package]]
+name = "deranged"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e"
+dependencies = [
+ "powerfmt",
+ "serde",
+]
+
+[[package]]
+name = "derive_more"
+version = "0.99.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f"
+dependencies = [
+ "convert_case",
+ "proc-macro2",
+ "quote",
+ "rustc_version",
+ "syn 2.0.101",
+]
+
+[[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.59.0",
+]
+
+[[package]]
+name = "dispatch"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
+
+[[package]]
+name = "dispatch2"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec"
+dependencies = [
+ "bitflags 2.9.1",
+ "objc2 0.6.1",
+]
+
+[[package]]
+name = "displaydoc"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+]
+
+[[package]]
+name = "dlopen2"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e1297103d2bbaea85724fcee6294c2d50b1081f9ad47d0f6f6f61eda65315a6"
+dependencies = [
+ "dlopen2_derive",
+ "libc",
+ "once_cell",
+ "winapi",
+]
+
+[[package]]
+name = "dlopen2_derive"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "788160fb30de9cdd857af31c6a2675904b16ece8fc2737b2c7127ba368c9d0f4"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+]
+
+[[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.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04"
+
+[[package]]
+name = "dtoa-short"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87"
+dependencies = [
+ "dtoa",
+]
+
+[[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.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005"
+
+[[package]]
+name = "embed-resource"
+version = "3.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8fe7d068ca6b3a5782ca5ec9afc244acd99dd441e4686a83b1c3973aba1d489"
+dependencies = [
+ "cc",
+ "memchr",
+ "rustc_version",
+ "toml",
+ "vswhom",
+ "winreg",
+]
+
+[[package]]
+name = "embed_plist"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7"
+
+[[package]]
+name = "endi"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf"
+
+[[package]]
+name = "enumflags2"
+version = "0.7.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba2f4b465f5318854c6f8dd686ede6c0a9dc67d4b1ac241cf0eb51521a309147"
+dependencies = [
+ "enumflags2_derive",
+ "serde",
+]
+
+[[package]]
+name = "enumflags2_derive"
+version = "0.7.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc4caf64a58d7a6d65ab00639b046ff54399a39f5f2554728895ace4b297cd79"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+]
+
+[[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.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7"
+dependencies = [
+ "serde",
+ "typeid",
+]
+
+[[package]]
+name = "errno"
+version = "0.3.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18"
+dependencies = [
+ "libc",
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "event-listener"
+version = "5.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93"
+dependencies = [
+ "event-listener",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "fallible-iterator"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
+
+[[package]]
+name = "fallible-streaming-iterator"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
+
+[[package]]
+name = "fastrand"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
+
+[[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 = "flate2"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d"
+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.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
+
+[[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.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+]
+
+[[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.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "futf"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843"
+dependencies = [
+ "mac",
+ "new_debug_unreachable",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10"
+dependencies = [
+ "futures-core",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6"
+
+[[package]]
+name = "futures-lite"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532"
+dependencies = [
+ "fastrand",
+ "futures-core",
+ "futures-io",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "futures-macro"
+version = "0.3.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7"
+
+[[package]]
+name = "futures-task"
+version = "0.3.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988"
+
+[[package]]
+name = "futures-util"
+version = "0.3.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
+dependencies = [
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "fxhash"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
+dependencies = [
+ "byteorder",
+]
+
+[[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.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi 0.9.0+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "r-efi",
+ "wasi 0.14.2+wasi-0.2.4",
+]
+
+[[package]]
+name = "gimli"
+version = "0.31.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f"
+
+[[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.9.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.0",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+]
+
+[[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.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2"
+
+[[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.101",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "hashbrown"
+version = "0.15.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5"
+dependencies = [
+ "foldhash",
+]
+
+[[package]]
+name = "hashlink"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1"
+dependencies = [
+ "hashbrown 0.15.4",
+]
+
+[[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 = "hermit-abi"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f154ce46856750ed433c8649605bf7ed2de3bc35fd9d2a9f30cddd873c80cb08"
+
+[[package]]
+name = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+[[package]]
+name = "html5ever"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7"
+dependencies = [
+ "log",
+ "mac",
+ "markup5ever",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "http"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa 1.0.15",
+]
+
+[[package]]
+name = "http-body"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184"
+dependencies = [
+ "bytes",
+ "http",
+]
+
+[[package]]
+name = "http-body-util"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a"
+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.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "http",
+ "http-body",
+ "httparse",
+ "itoa 1.0.15",
+ "pin-project-lite",
+ "smallvec",
+ "tokio",
+ "want",
+]
+
+[[package]]
+name = "hyper-util"
+version = "0.1.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc2fdfdbff08affe55bb779f33b053aa1fe5dd5b54c257343c17edfa55711bdb"
+dependencies = [
+ "base64 0.22.1",
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "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.63"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "log",
+ "wasm-bindgen",
+ "windows-core",
+]
+
+[[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.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc50b891e4acf8fe0e71ef88ec43ad82ee07b3810ad09de10f1d01f072ed4b98"
+dependencies = [
+ "byteorder",
+ "png",
+]
+
+[[package]]
+name = "icu_collections"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47"
+dependencies = [
+ "displaydoc",
+ "potential_utf",
+ "yoke",
+ "zerofrom",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_locale_core"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a"
+dependencies = [
+ "displaydoc",
+ "litemap",
+ "tinystr",
+ "writeable",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_normalizer"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979"
+dependencies = [
+ "displaydoc",
+ "icu_collections",
+ "icu_normalizer_data",
+ "icu_properties",
+ "icu_provider",
+ "smallvec",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_normalizer_data"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3"
+
+[[package]]
+name = "icu_properties"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b"
+dependencies = [
+ "displaydoc",
+ "icu_collections",
+ "icu_locale_core",
+ "icu_properties_data",
+ "icu_provider",
+ "potential_utf",
+ "zerotrie",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_properties_data"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632"
+
+[[package]]
+name = "icu_provider"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af"
+dependencies = [
+ "displaydoc",
+ "icu_locale_core",
+ "stable_deref_trait",
+ "tinystr",
+ "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.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e"
+dependencies = [
+ "idna_adapter",
+ "smallvec",
+ "utf8_iter",
+]
+
+[[package]]
+name = "idna_adapter"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344"
+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.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.15.4",
+ "serde",
+]
+
+[[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.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130"
+
+[[package]]
+name = "iri-string"
+version = "0.7.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2"
+dependencies = [
+ "memchr",
+ "serde",
+]
+
+[[package]]
+name = "is-docker"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "is-wsl"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5"
+dependencies = [
+ "is-docker",
+ "once_cell",
+]
+
+[[package]]
+name = "itoa"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
+
+[[package]]
+name = "itoa"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
+
+[[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",
+ "log",
+ "thiserror 1.0.69",
+ "walkdir",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "jni-sys"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
+
+[[package]]
+name = "js-sys"
+version = "0.3.77"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f"
+dependencies = [
+ "once_cell",
+ "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.9.1",
+ "serde",
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "kuchikiki"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f29e4755b7b995046f510a7520c42b2fed58b77bd94d5a87a8eb43d2fd126da8"
+dependencies = [
+ "cssparser",
+ "html5ever",
+ "indexmap 1.9.3",
+ "matches",
+ "selectors",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
+
+[[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.172"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa"
+
+[[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.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
+dependencies = [
+ "bitflags 2.9.1",
+ "libc",
+]
+
+[[package]]
+name = "libsqlite3-sys"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad8935b44e7c13394a179a438e0cebba0fe08fe01b54f152e29a93b5cf993fd4"
+dependencies = [
+ "cc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12"
+
+[[package]]
+name = "litemap"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956"
+
+[[package]]
+name = "lock_api"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"
+
+[[package]]
+name = "mac"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
+
+[[package]]
+name = "markup5ever"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016"
+dependencies = [
+ "log",
+ "phf 0.10.1",
+ "phf_codegen 0.10.0",
+ "string_cache",
+ "string_cache_codegen",
+ "tendril",
+]
+
+[[package]]
+name = "matches"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
+
+[[package]]
+name = "memchr"
+version = "2.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
+
+[[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.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a"
+dependencies = [
+ "adler2",
+ "simd-adler32",
+]
+
+[[package]]
+name = "mio"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c"
+dependencies = [
+ "libc",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "muda"
+version = "0.16.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4de14a9b5d569ca68d7c891d613b390cf5ab4f851c77aaa2f9e435555d3d9492"
+dependencies = [
+ "crossbeam-channel",
+ "dpi",
+ "gtk",
+ "keyboard-types",
+ "objc2 0.6.1",
+ "objc2-app-kit",
+ "objc2-core-foundation",
+ "objc2-foundation 0.3.1",
+ "once_cell",
+ "png",
+ "serde",
+ "thiserror 2.0.12",
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "ndk"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4"
+dependencies = [
+ "bitflags 2.9.1",
+ "jni-sys",
+ "log",
+ "ndk-sys",
+ "num_enum",
+ "raw-window-handle",
+ "thiserror 1.0.69",
+]
+
+[[package]]
+name = "ndk-context"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
+
+[[package]]
+name = "ndk-sys"
+version = "0.6.0+11769913"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873"
+dependencies = [
+ "jni-sys",
+]
+
+[[package]]
+name = "new_debug_unreachable"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
+
+[[package]]
+name = "nix"
+version = "0.30.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6"
+dependencies = [
+ "bitflags 2.9.1",
+ "cfg-if",
+ "cfg_aliases",
+ "libc",
+ "memoffset",
+]
+
+[[package]]
+name = "nodrop"
+version = "0.1.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
+
+[[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[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.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179"
+dependencies = [
+ "num_enum_derive",
+]
+
+[[package]]
+name = "num_enum_derive"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56"
+dependencies = [
+ "proc-macro-crate 3.3.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+]
+
+[[package]]
+name = "objc-sys"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310"
+
+[[package]]
+name = "objc2"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804"
+dependencies = [
+ "objc-sys",
+ "objc2-encode",
+]
+
+[[package]]
+name = "objc2"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88c6597e14493ab2e44ce58f2fdecf095a51f12ca57bec060a11c57332520551"
+dependencies = [
+ "objc2-encode",
+ "objc2-exception-helper",
+]
+
+[[package]]
+name = "objc2-app-kit"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6f29f568bec459b0ddff777cec4fe3fd8666d82d5a40ebd0ff7e66134f89bcc"
+dependencies = [
+ "bitflags 2.9.1",
+ "block2 0.6.1",
+ "libc",
+ "objc2 0.6.1",
+ "objc2-cloud-kit",
+ "objc2-core-data",
+ "objc2-core-foundation",
+ "objc2-core-graphics",
+ "objc2-core-image",
+ "objc2-foundation 0.3.1",
+ "objc2-quartz-core 0.3.1",
+]
+
+[[package]]
+name = "objc2-cloud-kit"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17614fdcd9b411e6ff1117dfb1d0150f908ba83a7df81b1f118005fe0a8ea15d"
+dependencies = [
+ "bitflags 2.9.1",
+ "objc2 0.6.1",
+ "objc2-foundation 0.3.1",
+]
+
+[[package]]
+name = "objc2-core-data"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "291fbbf7d29287518e8686417cf7239c74700fd4b607623140a7d4a3c834329d"
+dependencies = [
+ "bitflags 2.9.1",
+ "objc2 0.6.1",
+ "objc2-foundation 0.3.1",
+]
+
+[[package]]
+name = "objc2-core-foundation"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166"
+dependencies = [
+ "bitflags 2.9.1",
+ "dispatch2",
+ "objc2 0.6.1",
+]
+
+[[package]]
+name = "objc2-core-graphics"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "989c6c68c13021b5c2d6b71456ebb0f9dc78d752e86a98da7c716f4f9470f5a4"
+dependencies = [
+ "bitflags 2.9.1",
+ "dispatch2",
+ "objc2 0.6.1",
+ "objc2-core-foundation",
+ "objc2-io-surface",
+]
+
+[[package]]
+name = "objc2-core-image"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79b3dc0cc4386b6ccf21c157591b34a7f44c8e75b064f85502901ab2188c007e"
+dependencies = [
+ "objc2 0.6.1",
+ "objc2-foundation 0.3.1",
+]
+
+[[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.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8"
+dependencies = [
+ "bitflags 2.9.1",
+ "block2 0.5.1",
+ "libc",
+ "objc2 0.5.2",
+]
+
+[[package]]
+name = "objc2-foundation"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "900831247d2fe1a09a683278e5384cfb8c80c79fe6b166f9d14bfdde0ea1b03c"
+dependencies = [
+ "bitflags 2.9.1",
+ "block2 0.6.1",
+ "libc",
+ "objc2 0.6.1",
+ "objc2-core-foundation",
+]
+
+[[package]]
+name = "objc2-io-surface"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7282e9ac92529fa3457ce90ebb15f4ecbc383e8338060960760fa2cf75420c3c"
+dependencies = [
+ "bitflags 2.9.1",
+ "objc2 0.6.1",
+ "objc2-core-foundation",
+]
+
+[[package]]
+name = "objc2-metal"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6"
+dependencies = [
+ "bitflags 2.9.1",
+ "block2 0.5.1",
+ "objc2 0.5.2",
+ "objc2-foundation 0.2.2",
+]
+
+[[package]]
+name = "objc2-quartz-core"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a"
+dependencies = [
+ "bitflags 2.9.1",
+ "block2 0.5.1",
+ "objc2 0.5.2",
+ "objc2-foundation 0.2.2",
+ "objc2-metal",
+]
+
+[[package]]
+name = "objc2-quartz-core"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90ffb6a0cd5f182dc964334388560b12a57f7b74b3e2dec5e2722aa2dfb2ccd5"
+dependencies = [
+ "bitflags 2.9.1",
+ "objc2 0.6.1",
+ "objc2-foundation 0.3.1",
+]
+
+[[package]]
+name = "objc2-ui-kit"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25b1312ad7bc8a0e92adae17aa10f90aae1fb618832f9b993b022b591027daed"
+dependencies = [
+ "bitflags 2.9.1",
+ "objc2 0.6.1",
+ "objc2-core-foundation",
+ "objc2-foundation 0.3.1",
+]
+
+[[package]]
+name = "objc2-web-kit"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91672909de8b1ce1c2252e95bbee8c1649c9ad9d14b9248b3d7b4c47903c47ad"
+dependencies = [
+ "bitflags 2.9.1",
+ "block2 0.6.1",
+ "objc2 0.6.1",
+ "objc2-app-kit",
+ "objc2-core-foundation",
+ "objc2-foundation 0.3.1",
+]
+
+[[package]]
+name = "object"
+version = "0.36.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.21.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
+
+[[package]]
+name = "open"
+version = "5.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2483562e62ea94312f3576a7aca397306df7990b8d89033e18766744377ef95"
+dependencies = [
+ "dunce",
+ "is-wsl",
+ "libc",
+ "pathdiff",
+]
+
+[[package]]
+name = "option-ext"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
+
+[[package]]
+name = "ordered-stream"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50"
+dependencies = [
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[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"
+version = "2.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba"
+
+[[package]]
+name = "parking_lot"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "pathdiff"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3"
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+
+[[package]]
+name = "phf"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
+dependencies = [
+ "phf_macros 0.8.0",
+ "phf_shared 0.8.0",
+ "proc-macro-hack",
+]
+
+[[package]]
+name = "phf"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
+dependencies = [
+ "phf_shared 0.10.0",
+]
+
+[[package]]
+name = "phf"
+version = "0.11.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078"
+dependencies = [
+ "phf_macros 0.11.3",
+ "phf_shared 0.11.3",
+]
+
+[[package]]
+name = "phf_codegen"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
+dependencies = [
+ "phf_generator 0.8.0",
+ "phf_shared 0.8.0",
+]
+
+[[package]]
+name = "phf_codegen"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd"
+dependencies = [
+ "phf_generator 0.10.0",
+ "phf_shared 0.10.0",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526"
+dependencies = [
+ "phf_shared 0.8.0",
+ "rand 0.7.3",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
+dependencies = [
+ "phf_shared 0.10.0",
+ "rand 0.8.5",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.11.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d"
+dependencies = [
+ "phf_shared 0.11.3",
+ "rand 0.8.5",
+]
+
+[[package]]
+name = "phf_macros"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c"
+dependencies = [
+ "phf_generator 0.8.0",
+ "phf_shared 0.8.0",
+ "proc-macro-hack",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "phf_macros"
+version = "0.11.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216"
+dependencies = [
+ "phf_generator 0.11.3",
+ "phf_shared 0.11.3",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
+dependencies = [
+ "siphasher 0.3.11",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
+dependencies = [
+ "siphasher 0.3.11",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.11.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5"
+dependencies = [
+ "siphasher 1.0.1",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "piper"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066"
+dependencies = [
+ "atomic-waker",
+ "fastrand",
+ "futures-io",
+]
+
+[[package]]
+name = "pkg-config"
+version = "0.3.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
+
+[[package]]
+name = "plist"
+version = "1.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eac26e981c03a6e53e0aee43c113e3202f5581d5360dae7bd2c70e800dd0451d"
+dependencies = [
+ "base64 0.22.1",
+ "indexmap 2.9.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 = "polling"
+version = "3.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b53a684391ad002dd6a596ceb6c74fd004fdce75f4be2e3f615068abbea5fd50"
+dependencies = [
+ "cfg-if",
+ "concurrent-queue",
+ "hermit-abi",
+ "pin-project-lite",
+ "rustix",
+ "tracing",
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "potential_utf"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585"
+dependencies = [
+ "zerovec",
+]
+
+[[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
+dependencies = [
+ "zerocopy",
+]
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8"
+dependencies = [
+ "toml_edit 0.20.7",
+]
+
+[[package]]
+name = "proc-macro-crate"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35"
+dependencies = [
+ "toml_edit 0.22.27",
+]
+
+[[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-macro-hack"
+version = "0.5.20+deprecated"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.95"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quick-xml"
+version = "0.32.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "r-efi"
+version = "5.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5"
+
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom 0.1.16",
+ "libc",
+ "rand_chacha 0.2.2",
+ "rand_core 0.5.1",
+ "rand_hc",
+ "rand_pcg",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha 0.3.1",
+ "rand_core 0.6.4",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+dependencies = [
+ "ppv-lite86",
+ "rand_core 0.5.1",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core 0.6.4",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+dependencies = [
+ "getrandom 0.1.16",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom 0.2.16",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+dependencies = [
+ "rand_core 0.5.1",
+]
+
+[[package]]
+name = "rand_pcg"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
+dependencies = [
+ "rand_core 0.5.1",
+]
+
+[[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.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af"
+dependencies = [
+ "bitflags 2.9.1",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b"
+dependencies = [
+ "getrandom 0.2.16",
+ "libredox",
+ "thiserror 2.0.12",
+]
+
+[[package]]
+name = "regex"
+version = "1.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
+
+[[package]]
+name = "reqwest"
+version = "0.12.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2f8e5513d63f2e5b386eb5106dc67eaf3f84e95258e210489136b8b92ad6119"
+dependencies = [
+ "base64 0.22.1",
+ "bytes",
+ "futures-core",
+ "futures-util",
+ "http",
+ "http-body",
+ "http-body-util",
+ "hyper",
+ "hyper-util",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "sync_wrapper",
+ "tokio",
+ "tokio-util",
+ "tower",
+ "tower-http",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-streams",
+ "web-sys",
+]
+
+[[package]]
+name = "rusqlite"
+version = "0.33.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c6d5e5acb6f6129fe3f7ba0a7fc77bca1942cb568535e18e7bc40262baf3110"
+dependencies = [
+ "bitflags 2.9.1",
+ "fallible-iterator",
+ "fallible-streaming-iterator",
+ "hashlink",
+ "libsqlite3-sys",
+ "smallvec",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
+
+[[package]]
+name = "rustc_version"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "rustix"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266"
+dependencies = [
+ "bitflags 2.9.1",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d"
+
+[[package]]
+name = "ryu"
+version = "1.0.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
+
+[[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_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.101",
+]
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "selectors"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe"
+dependencies = [
+ "bitflags 1.3.2",
+ "cssparser",
+ "derive_more",
+ "fxhash",
+ "log",
+ "matches",
+ "phf 0.8.0",
+ "phf_codegen 0.8.0",
+ "precomputed-hash",
+ "servo_arc",
+ "smallvec",
+ "thin-slice",
+]
+
+[[package]]
+name = "semver"
+version = "1.0.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.219"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde-untagged"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "299d9c19d7d466db4ab10addd5703e4c615dec2a5a16dbbafe191045e87ee66e"
+dependencies = [
+ "erased-serde",
+ "serde",
+ "typeid",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.219"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+]
+
+[[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.101",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.140"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373"
+dependencies = [
+ "itoa 1.0.15",
+ "memchr",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_repr"
+version = "0.1.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+]
+
+[[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_urlencoded"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+dependencies = [
+ "form_urlencoded",
+ "itoa 1.0.15",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_with"
+version = "3.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa"
+dependencies = [
+ "base64 0.22.1",
+ "chrono",
+ "hex",
+ "indexmap 1.9.3",
+ "indexmap 2.9.0",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "serde_with_macros",
+ "time",
+]
+
+[[package]]
+name = "serde_with_macros"
+version = "3.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e"
+dependencies = [
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+]
+
+[[package]]
+name = "serialize-to-javascript"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb"
+dependencies = [
+ "serde",
+ "serde_json",
+ "serialize-to-javascript-impl",
+]
+
+[[package]]
+name = "serialize-to-javascript-impl"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "servo_arc"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432"
+dependencies = [
+ "nodrop",
+ "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 = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "simd-adler32"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
+
+[[package]]
+name = "siphasher"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+
+[[package]]
+name = "siphasher"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d"
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
+
+[[package]]
+name = "socket2"
+version = "0.5.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "softbuffer"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18051cdd562e792cad055119e0cdb2cfc137e44e3987532e0f9659a77931bb08"
+dependencies = [
+ "bytemuck",
+ "cfg_aliases",
+ "core-graphics",
+ "foreign-types",
+ "js-sys",
+ "log",
+ "objc2 0.5.2",
+ "objc2-foundation 0.2.2",
+ "objc2-quartz-core 0.2.2",
+ "raw-window-handle",
+ "redox_syscall",
+ "wasm-bindgen",
+ "web-sys",
+ "windows-sys 0.59.0",
+]
+
+[[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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "string_cache"
+version = "0.8.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f"
+dependencies = [
+ "new_debug_unreachable",
+ "parking_lot",
+ "phf_shared 0.11.3",
+ "precomputed-hash",
+ "serde",
+]
+
+[[package]]
+name = "string_cache_codegen"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0"
+dependencies = [
+ "phf_generator 0.11.3",
+ "phf_shared 0.11.3",
+ "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",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.101"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf"
+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.101",
+]
+
+[[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",
+ "version-compare",
+]
+
+[[package]]
+name = "tao"
+version = "0.33.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e59c1f38e657351a2e822eadf40d6a2ad4627b9c25557bc1180ec1b3295ef82"
+dependencies = [
+ "bitflags 2.9.1",
+ "core-foundation",
+ "core-graphics",
+ "crossbeam-channel",
+ "dispatch",
+ "dlopen2",
+ "dpi",
+ "gdkwayland-sys",
+ "gdkx11-sys",
+ "gtk",
+ "jni",
+ "lazy_static",
+ "libc",
+ "log",
+ "ndk",
+ "ndk-context",
+ "ndk-sys",
+ "objc2 0.6.1",
+ "objc2-app-kit",
+ "objc2-foundation 0.3.1",
+ "once_cell",
+ "parking_lot",
+ "raw-window-handle",
+ "scopeguard",
+ "tao-macros",
+ "unicode-segmentation",
+ "url",
+ "windows",
+ "windows-core",
+ "windows-version",
+ "x11-dl",
+]
+
+[[package]]
+name = "tao-macros"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+]
+
+[[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.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7b0bc1aec81bda6bc455ea98fcaed26b3c98c1648c627ad6ff1c704e8bf8cbc"
+dependencies = [
+ "anyhow",
+ "bytes",
+ "dirs",
+ "dunce",
+ "embed_plist",
+ "futures-util",
+ "getrandom 0.2.16",
+ "glob",
+ "gtk",
+ "heck 0.5.0",
+ "http",
+ "jni",
+ "libc",
+ "log",
+ "mime",
+ "muda",
+ "objc2 0.6.1",
+ "objc2-app-kit",
+ "objc2-foundation 0.3.1",
+ "objc2-ui-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.12",
+ "tokio",
+ "tray-icon",
+ "url",
+ "urlpattern",
+ "webkit2gtk",
+ "webview2-com",
+ "window-vibrancy",
+ "windows",
+]
+
+[[package]]
+name = "tauri-build"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7a0350f0df1db385ca5c02888a83e0e66655c245b7443db8b78a70da7d7f8fc"
+dependencies = [
+ "anyhow",
+ "cargo_toml",
+ "dirs",
+ "glob",
+ "heck 0.5.0",
+ "json-patch",
+ "schemars",
+ "semver",
+ "serde",
+ "serde_json",
+ "tauri-utils",
+ "tauri-winres",
+ "toml",
+ "walkdir",
+]
+
+[[package]]
+name = "tauri-codegen"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f93f035551bf7b11b3f51ad9bc231ebbe5e085565527991c16cf326aa38cdf47"
+dependencies = [
+ "base64 0.22.1",
+ "brotli",
+ "ico",
+ "json-patch",
+ "plist",
+ "png",
+ "proc-macro2",
+ "quote",
+ "semver",
+ "serde",
+ "serde_json",
+ "sha2",
+ "syn 2.0.101",
+ "tauri-utils",
+ "thiserror 2.0.12",
+ "time",
+ "url",
+ "uuid",
+ "walkdir",
+]
+
+[[package]]
+name = "tauri-macros"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8db4df25e2d9d45de0c4c910da61cd5500190da14ae4830749fee3466dddd112"
+dependencies = [
+ "heck 0.5.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+ "tauri-codegen",
+ "tauri-utils",
+]
+
+[[package]]
+name = "tauri-plugin"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37a5ebe6a610d1b78a94650896e6f7c9796323f408800cef436e0fa0539de601"
+dependencies = [
+ "anyhow",
+ "glob",
+ "plist",
+ "schemars",
+ "serde",
+ "serde_json",
+ "tauri-utils",
+ "toml",
+ "walkdir",
+]
+
+[[package]]
+name = "tauri-plugin-opener"
+version = "2.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "66644b71a31ec1a8a52c4a16575edd28cf763c87cf4a7da24c884122b5c77097"
+dependencies = [
+ "dunce",
+ "glob",
+ "objc2-app-kit",
+ "objc2-foundation 0.3.1",
+ "open",
+ "schemars",
+ "serde",
+ "serde_json",
+ "tauri",
+ "tauri-plugin",
+ "thiserror 2.0.12",
+ "url",
+ "windows",
+ "zbus",
+]
+
+[[package]]
+name = "tauri-runtime"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00f004905d549854069e6774533d742b03cacfd6f03deb08940a8677586cbe39"
+dependencies = [
+ "cookie",
+ "dpi",
+ "gtk",
+ "http",
+ "jni",
+ "objc2 0.6.1",
+ "objc2-ui-kit",
+ "raw-window-handle",
+ "serde",
+ "serde_json",
+ "tauri-utils",
+ "thiserror 2.0.12",
+ "url",
+ "windows",
+]
+
+[[package]]
+name = "tauri-runtime-wry"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f85d056f4d4b014fe874814034f3416d57114b617a493a4fe552580851a3f3a2"
+dependencies = [
+ "gtk",
+ "http",
+ "jni",
+ "log",
+ "objc2 0.6.1",
+ "objc2-app-kit",
+ "objc2-foundation 0.3.1",
+ "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.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2900399c239a471bcff7f15c4399eb1a8c4fe511ba2853e07c996d771a5e0a4"
+dependencies = [
+ "anyhow",
+ "brotli",
+ "cargo_metadata",
+ "ctor",
+ "dunce",
+ "glob",
+ "html5ever",
+ "http",
+ "infer",
+ "json-patch",
+ "kuchikiki",
+ "log",
+ "memchr",
+ "phf 0.11.3",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "schemars",
+ "semver",
+ "serde",
+ "serde-untagged",
+ "serde_json",
+ "serde_with",
+ "swift-rs",
+ "thiserror 2.0.12",
+ "toml",
+ "url",
+ "urlpattern",
+ "uuid",
+ "walkdir",
+]
+
+[[package]]
+name = "tauri-winres"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8d321dbc6f998d825ab3f0d62673e810c861aac2d0de2cc2c395328f1d113b4"
+dependencies = [
+ "embed-resource",
+ "indexmap 2.9.0",
+ "toml",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1"
+dependencies = [
+ "fastrand",
+ "getrandom 0.3.3",
+ "once_cell",
+ "rustix",
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "tendril"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0"
+dependencies = [
+ "futf",
+ "mac",
+ "utf-8",
+]
+
+[[package]]
+name = "thin-slice"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c"
+
+[[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.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708"
+dependencies = [
+ "thiserror-impl 2.0.12",
+]
+
+[[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.101",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "2.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+]
+
+[[package]]
+name = "time"
+version = "0.3.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40"
+dependencies = [
+ "deranged",
+ "itoa 1.0.15",
+ "num-conv",
+ "powerfmt",
+ "serde",
+ "time-core",
+ "time-macros",
+]
+
+[[package]]
+name = "time-core"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c"
+
+[[package]]
+name = "time-macros"
+version = "0.2.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49"
+dependencies = [
+ "num-conv",
+ "time-core",
+]
+
+[[package]]
+name = "tinystr"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b"
+dependencies = [
+ "displaydoc",
+ "zerovec",
+]
+
+[[package]]
+name = "tokio"
+version = "1.45.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779"
+dependencies = [
+ "backtrace",
+ "bytes",
+ "libc",
+ "mio",
+ "pin-project-lite",
+ "socket2",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "tokio-util"
+version = "0.7.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-sink",
+ "pin-project-lite",
+ "tokio",
+]
+
+[[package]]
+name = "toml"
+version = "0.8.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit 0.22.27",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.19.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
+dependencies = [
+ "indexmap 2.9.0",
+ "toml_datetime",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.20.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81"
+dependencies = [
+ "indexmap 2.9.0",
+ "toml_datetime",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a"
+dependencies = [
+ "indexmap 2.9.0",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_write",
+ "winnow 0.7.10",
+]
+
+[[package]]
+name = "toml_write"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801"
+
+[[package]]
+name = "tower"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9"
+dependencies = [
+ "futures-core",
+ "futures-util",
+ "pin-project-lite",
+ "sync_wrapper",
+ "tokio",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "tower-http"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2"
+dependencies = [
+ "bitflags 2.9.1",
+ "bytes",
+ "futures-util",
+ "http",
+ "http-body",
+ "iri-string",
+ "pin-project-lite",
+ "tower",
+ "tower-layer",
+ "tower-service",
+]
+
+[[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.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0"
+dependencies = [
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b1ffbcf9c6f6b99d386e7444eb608ba646ae452a36b39737deb9663b610f662"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "tray-icon"
+version = "0.20.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f7eee98ec5c90daf179d55c20a49d8c0d043054ce7c26336c09a24d31f14fa0"
+dependencies = [
+ "crossbeam-channel",
+ "dirs",
+ "libappindicator",
+ "muda",
+ "objc2 0.6.1",
+ "objc2-app-kit",
+ "objc2-core-foundation",
+ "objc2-core-graphics",
+ "objc2-foundation 0.3.1",
+ "once_cell",
+ "png",
+ "serde",
+ "thiserror 2.0.12",
+ "windows-sys 0.59.0",
+]
+
+[[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.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f"
+
+[[package]]
+name = "uds_windows"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
+dependencies = [
+ "memoffset",
+ "tempfile",
+ "winapi",
+]
+
+[[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.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512"
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
+
+[[package]]
+name = "url"
+version = "2.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+ "serde",
+]
+
+[[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 = "utf-8"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
+
+[[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.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d"
+dependencies = [
+ "getrandom 0.3.3",
+ "js-sys",
+ "serde",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "version-compare"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
+
+[[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.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasi"
+version = "0.14.2+wasi-0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3"
+dependencies = [
+ "wit-bindgen-rt",
+]
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.100"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+ "rustversion",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.100"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6"
+dependencies = [
+ "bumpalo",
+ "log",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.50"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "once_cell",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.100"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.100"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.100"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "wasm-streams"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65"
+dependencies = [
+ "futures-util",
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "web-sys"
+version = "0.3.77"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "webkit2gtk"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76b1bc1e54c581da1e9f179d0b38512ba358fb1af2d634a1affe42e37172361a"
+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.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62daa38afc514d1f8f12b8693d30d5993ff77ced33ce30cd04deebc267a6d57c"
+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.37.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b542b5cfbd9618c46c2784e4d41ba218c336ac70d44c55e47b251033e7d85601"
+dependencies = [
+ "webview2-com-macros",
+ "webview2-com-sys",
+ "windows",
+ "windows-core",
+ "windows-implement",
+ "windows-interface",
+]
+
+[[package]]
+name = "webview2-com-macros"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+]
+
+[[package]]
+name = "webview2-com-sys"
+version = "0.37.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ae2d11c4a686e4409659d7891791254cf9286d3cfe0eef54df1523533d22295"
+dependencies = [
+ "thiserror 2.0.12",
+ "windows",
+ "windows-core",
+]
+
+[[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.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
+dependencies = [
+ "windows-sys 0.59.0",
+]
+
+[[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 0.6.1",
+ "objc2-app-kit",
+ "objc2-core-foundation",
+ "objc2-foundation 0.3.1",
+ "raw-window-handle",
+ "windows-sys 0.59.0",
+ "windows-version",
+]
+
+[[package]]
+name = "windows"
+version = "0.61.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5ee8f3d025738cb02bad7868bbb5f8a6327501e870bf51f1b455b0a2454a419"
+dependencies = [
+ "windows-collections",
+ "windows-core",
+ "windows-future",
+ "windows-link",
+ "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",
+]
+
+[[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",
+ "windows-result",
+ "windows-strings",
+]
+
+[[package]]
+name = "windows-future"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e"
+dependencies = [
+ "windows-core",
+ "windows-link",
+ "windows-threading",
+]
+
+[[package]]
+name = "windows-implement"
+version = "0.60.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+]
+
+[[package]]
+name = "windows-interface"
+version = "0.59.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+]
+
+[[package]]
+name = "windows-link"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38"
+
+[[package]]
+name = "windows-numerics"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1"
+dependencies = [
+ "windows-core",
+ "windows-link",
+]
+
+[[package]]
+name = "windows-result"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6"
+dependencies = [
+ "windows-link",
+]
+
+[[package]]
+name = "windows-strings"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57"
+dependencies = [
+ "windows-link",
+]
+
+[[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.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.6",
+]
+
+[[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-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",
+]
+
+[[package]]
+name = "windows-version"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e04a5c6627e310a23ad2358483286c7df260c964eb2d003d8efd6d0f4e79265c"
+dependencies = [
+ "windows-link",
+]
+
+[[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.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec"
+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-rt"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
+dependencies = [
+ "bitflags 2.9.1",
+]
+
+[[package]]
+name = "writeable"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb"
+
+[[package]]
+name = "wry"
+version = "0.51.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c886a0a9d2a94fd90cfa1d929629b79cfefb1546e2c7430c63a47f0664c0e4e2"
+dependencies = [
+ "base64 0.22.1",
+ "block2 0.6.1",
+ "cookie",
+ "crossbeam-channel",
+ "dpi",
+ "dunce",
+ "gdkx11",
+ "gtk",
+ "html5ever",
+ "http",
+ "javascriptcore-rs",
+ "jni",
+ "kuchikiki",
+ "libc",
+ "ndk",
+ "objc2 0.6.1",
+ "objc2-app-kit",
+ "objc2-core-foundation",
+ "objc2-foundation 0.3.1",
+ "objc2-ui-kit",
+ "objc2-web-kit",
+ "once_cell",
+ "percent-encoding",
+ "raw-window-handle",
+ "sha2",
+ "soup3",
+ "tao-macros",
+ "thiserror 2.0.12",
+ "url",
+ "webkit2gtk",
+ "webkit2gtk-sys",
+ "webview2-com",
+ "windows",
+ "windows-core",
+ "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.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc"
+dependencies = [
+ "serde",
+ "stable_deref_trait",
+ "yoke-derive",
+ "zerofrom",
+]
+
+[[package]]
+name = "yoke-derive"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+ "synstructure",
+]
+
+[[package]]
+name = "zbus"
+version = "5.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3a7c7cee313d044fca3f48fa782cb750c79e4ca76ba7bc7718cd4024cdf6f68"
+dependencies = [
+ "async-broadcast",
+ "async-executor",
+ "async-io",
+ "async-lock",
+ "async-process",
+ "async-recursion",
+ "async-task",
+ "async-trait",
+ "blocking",
+ "enumflags2",
+ "event-listener",
+ "futures-core",
+ "futures-lite",
+ "hex",
+ "nix",
+ "ordered-stream",
+ "serde",
+ "serde_repr",
+ "tracing",
+ "uds_windows",
+ "windows-sys 0.59.0",
+ "winnow 0.7.10",
+ "zbus_macros",
+ "zbus_names",
+ "zvariant",
+]
+
+[[package]]
+name = "zbus_macros"
+version = "5.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a17e7e5eec1550f747e71a058df81a9a83813ba0f6a95f39c4e218bdc7ba366a"
+dependencies = [
+ "proc-macro-crate 3.3.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+ "zbus_names",
+ "zvariant",
+ "zvariant_utils",
+]
+
+[[package]]
+name = "zbus_names"
+version = "4.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7be68e64bf6ce8db94f63e72f0c7eb9a60d733f7e0499e628dfab0f84d6bcb97"
+dependencies = [
+ "serde",
+ "static_assertions",
+ "winnow 0.7.10",
+ "zvariant",
+]
+
+[[package]]
+name = "zerocopy"
+version = "0.8.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.8.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+]
+
+[[package]]
+name = "zerofrom"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5"
+dependencies = [
+ "zerofrom-derive",
+]
+
+[[package]]
+name = "zerofrom-derive"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+ "synstructure",
+]
+
+[[package]]
+name = "zerotrie"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595"
+dependencies = [
+ "displaydoc",
+ "yoke",
+ "zerofrom",
+]
+
+[[package]]
+name = "zerovec"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428"
+dependencies = [
+ "yoke",
+ "zerofrom",
+ "zerovec-derive",
+]
+
+[[package]]
+name = "zerovec-derive"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+]
+
+[[package]]
+name = "zvariant"
+version = "5.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d30786f75e393ee63a21de4f9074d4c038d52c5b1bb4471f955db249f9dffb1"
+dependencies = [
+ "endi",
+ "enumflags2",
+ "serde",
+ "winnow 0.7.10",
+ "zvariant_derive",
+ "zvariant_utils",
+]
+
+[[package]]
+name = "zvariant_derive"
+version = "5.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75fda702cd42d735ccd48117b1630432219c0e9616bf6cb0f8350844ee4d9580"
+dependencies = [
+ "proc-macro-crate 3.3.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.101",
+ "zvariant_utils",
+]
+
+[[package]]
+name = "zvariant_utils"
+version = "3.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e16edfee43e5d7b553b77872d99bc36afdda75c223ca7ad5e3fbecd82ca5fc34"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "serde",
+ "static_assertions",
+ "syn 2.0.101",
+ "winnow 0.7.10",
+]
diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml
new file mode 100644
index 0000000..348582a
--- /dev/null
+++ b/src-tauri/Cargo.toml
@@ -0,0 +1,26 @@
+[package]
+name = "countdown"
+version = "0.1.0"
+description = "A Countdown app"
+authors = ["sangge"]
+edition = "2021"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[lib]
+# The `_lib` suffix may seem redundant but it is necessary
+# to make the lib name unique and wouldn't conflict with the bin name.
+# This seems to be only an issue on Windows, see https://github.com/rust-lang/cargo/issues/8519
+name = "countdown_lib"
+crate-type = ["staticlib", "cdylib", "rlib"]
+
+[build-dependencies]
+tauri-build = { version = "2", features = [] }
+
+[dependencies]
+rusqlite = { version = "0.33.0", features = ["bundled"] }
+tauri = { version = "2", features = [] }
+tauri-plugin-opener = "2"
+serde = { version = "1", features = ["derive"] }
+serde_json = "1"
+chrono = "0.4.39"
diff --git a/src-tauri/build.rs b/src-tauri/build.rs
new file mode 100644
index 0000000..d860e1e
--- /dev/null
+++ b/src-tauri/build.rs
@@ -0,0 +1,3 @@
+fn main() {
+ tauri_build::build()
+}
diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json
new file mode 100644
index 0000000..4cdbf49
--- /dev/null
+++ b/src-tauri/capabilities/default.json
@@ -0,0 +1,10 @@
+{
+ "$schema": "../gen/schemas/desktop-schema.json",
+ "identifier": "default",
+ "description": "Capability for the main window",
+ "windows": ["main"],
+ "permissions": [
+ "core:default",
+ "opener:default"
+ ]
+}
diff --git a/src-tauri/icons/128x128.png b/src-tauri/icons/128x128.png
new file mode 100644
index 0000000000000000000000000000000000000000..d9a619c641ed52494a21235f3021070db9b1ee02
GIT binary patch
literal 1820
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
Y01eq7eV4X%qyPW_07*qoM6N<$f>(;nbN~PV
literal 0
HcmV?d00001
diff --git a/src-tauri/icons/4096x4096.png b/src-tauri/icons/4096x4096.png
new file mode 100644
index 0000000000000000000000000000000000000000..ee2f093537f845cc9ff1174aa348c89c847f76a5
GIT binary patch
literal 120919
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