From 661100dfdcd34e7ff05f1b4c29d6a83361f5ec75 Mon Sep 17 00:00:00 2001 From: PJ Date: Wed, 12 Aug 2026 17:09:21 +0530 Subject: [PATCH] Margin Calendar: a Google Calendar client for desktop and phone Tauri 2, React 19 and zustand on the front, Rust behind. Rust owns auth, all HTTP to Google, the SQLite store, the sync loop, recurrence expansion and timezone maths. TypeScript owns rendering and never talks to Google, which keeps the content security policy locked to ipc:. Week, day and agenda views, and no month view: it would be a second layout engine, and the fit and fold logic that makes a day fit the window without scrolling is the whole point of the app. Runs on macOS, Linux, Android and iOS. Desktop catches Google's OAuth redirect on a loopback port. A phone cannot, and Google rejects loopback for mobile client types anyway, so it redirects to a custom URI scheme and needs its own public OAuth clients, which docs/mobile.md covers. Refresh tokens are sealed with XChaCha20-Poly1305 in the app data directory on every platform, with no OS credential store in the picture. On a phone the chrome becomes a top bar and a bottom tab bar, overlays become sheets, hover affordances become taps, and dragging out an event waits for a long press. Navigation moves one day at a time everywhere, a swipe included. --- .gitignore | 44 + README.md | 13 + docs/architecture.md | 133 + docs/conventions.md | 89 + docs/design.md | 135 + docs/mobile.md | 198 + docs/setup.md | 55 + google-credentials.example.json | 19 + index.html | 47 + package.json | 35 + playwright.config.ts | 53 + pnpm-lock.yaml | 1685 +++++ public/fonts/HankenGrotesk-Italic-VF.ttf | Bin 0 -> 134740 bytes public/fonts/HankenGrotesk-VF.ttf | Bin 0 -> 132248 bytes public/fonts/Literata-Italic-VF.ttf | Bin 0 -> 902728 bytes public/fonts/Literata-VF.ttf | Bin 0 -> 955132 bytes public/margincal-mark.png | Bin 0 -> 1243 bytes src-tauri/.gitignore | 1 + src-tauri/Cargo.lock | 6025 +++++++++++++++++ src-tauri/Cargo.toml | 60 + src-tauri/build.rs | 29 + src-tauri/capabilities/default.json | 7 + src-tauri/capabilities/desktop.json | 14 + src-tauri/gen/android/.editorconfig | 12 + src-tauri/gen/android/.gitignore | 20 + src-tauri/gen/android/app/.gitignore | 6 + src-tauri/gen/android/app/build.gradle.kts | 71 + src-tauri/gen/android/app/proguard-rules.pro | 21 + .../android/app/src/main/AndroidManifest.xml | 56 + .../studio/margin/calendar/MainActivity.kt | 60 + .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../app/src/main/res/layout/activity_main.xml | 18 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3524 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 14102 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 3524 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 3377 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 9081 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 3377 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 7971 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 18900 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 7971 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 12392 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 29506 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 12392 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 16751 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 40510 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 16751 bytes .../app/src/main/res/values-night/themes.xml | 6 + .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 4 + .../app/src/main/res/values/themes.xml | 6 + .../app/src/main/res/xml/file_paths.xml | 5 + src-tauri/gen/android/build.gradle.kts | 22 + .../gen/android/buildSrc/build.gradle.kts | 23 + .../margin/calendar/kotlin/BuildTask.kt | 68 + .../margin/calendar/kotlin/RustPlugin.kt | 85 + src-tauri/gen/android/gradle.properties | 24 + .../android/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + src-tauri/gen/android/gradlew | 185 + src-tauri/gen/android/gradlew.bat | 89 + src-tauri/gen/android/settings.gradle | 3 + src-tauri/gen/apple/.gitignore | 3 + .../AppIcon.appiconset/AppIcon-20x20@1x.png | Bin 0 -> 1036 bytes .../AppIcon.appiconset/AppIcon-20x20@2x-1.png | Bin 0 -> 2216 bytes .../AppIcon.appiconset/AppIcon-20x20@2x.png | Bin 0 -> 2216 bytes .../AppIcon.appiconset/AppIcon-20x20@3x.png | Bin 0 -> 3512 bytes .../AppIcon.appiconset/AppIcon-29x29@1x.png | Bin 0 -> 1568 bytes .../AppIcon.appiconset/AppIcon-29x29@2x-1.png | Bin 0 -> 3394 bytes .../AppIcon.appiconset/AppIcon-29x29@2x.png | Bin 0 -> 3394 bytes .../AppIcon.appiconset/AppIcon-29x29@3x.png | Bin 0 -> 5228 bytes .../AppIcon.appiconset/AppIcon-40x40@1x.png | Bin 0 -> 2216 bytes .../AppIcon.appiconset/AppIcon-40x40@2x-1.png | Bin 0 -> 4794 bytes .../AppIcon.appiconset/AppIcon-40x40@2x.png | Bin 0 -> 4794 bytes .../AppIcon.appiconset/AppIcon-40x40@3x.png | Bin 0 -> 7288 bytes .../AppIcon.appiconset/AppIcon-512@2x.png | Bin 0 -> 121323 bytes .../AppIcon.appiconset/AppIcon-60x60@2x.png | Bin 0 -> 7288 bytes .../AppIcon.appiconset/AppIcon-60x60@3x.png | Bin 0 -> 11091 bytes .../AppIcon.appiconset/AppIcon-76x76@1x.png | Bin 0 -> 4515 bytes .../AppIcon.appiconset/AppIcon-76x76@2x.png | Bin 0 -> 9257 bytes .../AppIcon-83.5x83.5@2x.png | Bin 0 -> 10219 bytes .../AppIcon.appiconset/Contents.json | 116 + .../gen/apple/Assets.xcassets/Contents.json | 6 + src-tauri/gen/apple/ExportOptions.plist | 8 + src-tauri/gen/apple/LaunchScreen.storyboard | 30 + src-tauri/gen/apple/Podfile | 21 + .../margin-calendar/bindings/bindings.h | 8 + .../gen/apple/Sources/margin-calendar/main.mm | 6 + .../margin-calendar.xcodeproj/project.pbxproj | 518 ++ .../contents.xcworkspacedata | 7 + .../xcshareddata/WorkspaceSettings.xcsettings | 10 + .../xcschemes/margin-calendar_iOS.xcscheme | 131 + .../gen/apple/margin-calendar_iOS/Info.plist | 55 + .../margin-calendar_iOS.entitlements | 5 + src-tauri/gen/apple/project.yml | 88 + src-tauri/icons/128x128.png | Bin 0 -> 4175 bytes src-tauri/icons/128x128@2x.png | Bin 0 -> 7753 bytes src-tauri/icons/32x32.png | Bin 0 -> 1243 bytes src-tauri/icons/64x64.png | Bin 0 -> 2161 bytes src-tauri/icons/Square107x107Logo.png | Bin 0 -> 3806 bytes src-tauri/icons/Square142x142Logo.png | Bin 0 -> 5068 bytes src-tauri/icons/Square150x150Logo.png | Bin 0 -> 5061 bytes src-tauri/icons/Square284x284Logo.png | Bin 0 -> 9138 bytes src-tauri/icons/Square30x30Logo.png | Bin 0 -> 1191 bytes src-tauri/icons/Square310x310Logo.png | Bin 0 -> 10173 bytes src-tauri/icons/Square44x44Logo.png | Bin 0 -> 1637 bytes src-tauri/icons/Square71x71Logo.png | Bin 0 -> 2489 bytes src-tauri/icons/Square89x89Logo.png | Bin 0 -> 3001 bytes src-tauri/icons/StoreLogo.png | Bin 0 -> 1816 bytes src-tauri/icons/icon.icns | Bin 0 -> 83574 bytes src-tauri/icons/icon.ico | Bin 0 -> 17160 bytes src-tauri/icons/icon.png | Bin 0 -> 16289 bytes src-tauri/src/dto.rs | 177 + src-tauri/src/google/api.rs | 476 ++ src-tauri/src/google/auth.rs | 851 +++ src-tauri/src/google/mod.rs | 34 + src-tauri/src/google/secrets.rs | 275 + src-tauri/src/lib.rs | 279 + src-tauri/src/library.rs | 9 + src-tauri/src/main.rs | 6 + src-tauri/src/recur.rs | 1898 ++++++ src-tauri/src/store/mod.rs | 443 ++ src-tauri/src/store/read.rs | 252 + src-tauri/src/store/schema.rs | 136 + src-tauri/src/store/write.rs | 520 ++ src-tauri/src/sync.rs | 404 ++ src-tauri/src/sync/model.rs | 277 + src-tauri/src/sync/pull.rs | 297 + src-tauri/src/sync/push.rs | 499 ++ src-tauri/src/sync/tests.rs | 802 +++ src-tauri/src/sync/transport.rs | 154 + src-tauri/tauri.conf.json | 57 + src-tauri/tauri.release.conf.json | 6 + src/App.tsx | 133 + src/api/accounts.ts | 9 + src/api/calendars.ts | 6 + src/api/events.ts | 9 + src/api/instances.ts | 5 + src/api/sync.ts | 8 + src/components/Accounts.tsx | 159 + src/components/AgendaList.tsx | 95 + src/components/AgendaModel.test.ts | 265 + src/components/AgendaModel.tsx | 304 + src/components/AgendaRow.tsx | 71 + src/components/AgendaSearch.tsx | 75 + src/components/AgendaView.tsx | 46 + src/components/CalendarList.tsx | 110 + src/components/ColorPicker.tsx | 94 + src/components/EventDetails.tsx | 403 ++ src/components/EventDetailsHtml.test.ts | 290 + src/components/EventDetailsHtml.ts | 449 ++ src/components/EventDetailsModel.test.ts | 169 + src/components/EventDetailsModel.ts | 144 + src/components/EventEditor.tsx | 602 ++ src/components/GridAllDay.tsx | 106 + src/components/GridDay.tsx | 61 + src/components/GridDraft.tsx | 145 + src/components/GridEvent.tsx | 162 + src/components/GridGaps.tsx | 142 + src/components/GridGhost.tsx | 33 + src/components/GridModel.tsx | Bin 0 -> 14284 bytes src/components/GridNowLine.tsx | 48 + src/components/GridStore.tsx | 141 + src/components/GridStrip.tsx | 40 + src/components/GridView.tsx | 784 +++ src/components/Header.tsx | 171 + src/components/Icon.tsx | 24 + src/components/MiniMonth.tsx | 186 + src/components/PhoneBar.tsx | 189 + src/components/QuickCreateCard.tsx | 361 + src/components/QuickCreateModel.test.ts | 153 + src/components/QuickCreateModel.ts | 173 + src/components/RichText.tsx | 84 + src/components/SearchOverlay.tsx | 42 + src/components/Settings.tsx | 111 + src/components/Toast.tsx | 24 + src/components/overlayModel.test.ts | 138 + src/components/overlayModel.ts | 137 + src/components/overlayShell.tsx | 137 + src/components/useAgendaSearch.ts | 19 + src/components/useDetails.ts | 40 + src/components/useEditor.ts | 45 + src/dev/fixture.ts | 222 + src/dev/mockIpc.ts | 120 + src/escape.ts | 36 + src/grid/fit.test.ts | 365 + src/grid/fit.ts | 322 + src/grid/folds.test.ts | 72 + src/grid/folds.ts | 82 + src/grid/packing.test.ts | 213 + src/grid/packing.ts | 116 + src/ipc.ts | 187 + src/keys/Shortcuts.tsx | 49 + src/keys/bindings.test.ts | 51 + src/keys/bindings.ts | 128 + src/keys/commands.ts | 222 + src/keys/keymap.ts | 157 + src/keys/menu.ts | 30 + src/keys/updates.ts | 29 + src/main.tsx | 16 + src/palette/CommandPalette.tsx | 190 + src/palette/create.ts | 19 + src/palette/parse.test.ts | 219 + src/palette/parse.ts | 249 + src/palette/usePalette.ts | 28 + src/safeArea.ts | 37 + src/store/useAccounts.ts | 113 + src/store/useCalendarView.ts | 116 + src/store/useOverlays.ts | 64 + src/store/useSearch.ts | 47 + src/store/useSync.ts | 47 + src/store/useTheme.ts | 16 + src/store/useToast.ts | 15 + src/styles/agenda.css | 336 + src/styles/app.css | 469 ++ src/styles/create.css | 458 ++ src/styles/details.css | 280 + src/styles/folds.css | 153 + src/styles/fonts.css | 31 + src/styles/grid.css | 901 +++ src/styles/overlays.css | 715 ++ src/styles/palette.css | 176 + src/styles/rich.css | 58 + src/styles/tokens.css | 168 + src/theme.ts | 16 + src/time.ts | 136 + src/useMedia.ts | 63 + src/vite-env.d.ts | 1 + tests/app.ts | 342 + tests/compact.spec.ts | 90 + tests/grid.spec.ts | 196 + tests/interaction.spec.ts | 194 + tests/keyboard.spec.ts | 183 + tests/legibility.spec.ts | 139 + tests/overlays.spec.ts | 136 + tests/phone.spec.ts | 200 + tests/touch.spec.ts | 350 + tests/tsconfig.json | 14 + tests/views.spec.ts | 104 + tsconfig.json | 25 + tsconfig.node.json | 10 + vite.config.ts | 31 + 243 files changed, 35200 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 docs/architecture.md create mode 100644 docs/conventions.md create mode 100644 docs/design.md create mode 100644 docs/mobile.md create mode 100644 docs/setup.md create mode 100644 google-credentials.example.json create mode 100644 index.html create mode 100644 package.json create mode 100644 playwright.config.ts create mode 100644 pnpm-lock.yaml create mode 100644 public/fonts/HankenGrotesk-Italic-VF.ttf create mode 100644 public/fonts/HankenGrotesk-VF.ttf create mode 100644 public/fonts/Literata-Italic-VF.ttf create mode 100644 public/fonts/Literata-VF.ttf create mode 100644 public/margincal-mark.png 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/capabilities/desktop.json create mode 100644 src-tauri/gen/android/.editorconfig create mode 100644 src-tauri/gen/android/.gitignore create mode 100644 src-tauri/gen/android/app/.gitignore create mode 100644 src-tauri/gen/android/app/build.gradle.kts create mode 100644 src-tauri/gen/android/app/proguard-rules.pro create mode 100644 src-tauri/gen/android/app/src/main/AndroidManifest.xml create mode 100644 src-tauri/gen/android/app/src/main/java/studio/margin/calendar/MainActivity.kt create mode 100644 src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 src-tauri/gen/android/app/src/main/res/layout/activity_main.xml create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 src-tauri/gen/android/app/src/main/res/values-night/themes.xml create mode 100644 src-tauri/gen/android/app/src/main/res/values/colors.xml create mode 100644 src-tauri/gen/android/app/src/main/res/values/strings.xml create mode 100644 src-tauri/gen/android/app/src/main/res/values/themes.xml create mode 100644 src-tauri/gen/android/app/src/main/res/xml/file_paths.xml create mode 100644 src-tauri/gen/android/build.gradle.kts create mode 100644 src-tauri/gen/android/buildSrc/build.gradle.kts create mode 100644 src-tauri/gen/android/buildSrc/src/main/java/studio/margin/calendar/kotlin/BuildTask.kt create mode 100644 src-tauri/gen/android/buildSrc/src/main/java/studio/margin/calendar/kotlin/RustPlugin.kt create mode 100644 src-tauri/gen/android/gradle.properties create mode 100644 src-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar create mode 100644 src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties create mode 100755 src-tauri/gen/android/gradlew create mode 100644 src-tauri/gen/android/gradlew.bat create mode 100644 src-tauri/gen/android/settings.gradle create mode 100644 src-tauri/gen/apple/.gitignore create mode 100644 src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@1x.png create mode 100644 src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x-1.png create mode 100644 src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x.png create mode 100644 src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@3x.png create mode 100644 src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@1x.png create mode 100644 src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x-1.png create mode 100644 src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x.png create mode 100644 src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@3x.png create mode 100644 src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@1x.png create mode 100644 src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@2x-1.png create mode 100644 src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@2x.png create mode 100644 src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@3x.png create mode 100644 src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png create mode 100644 src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-60x60@2x.png create mode 100644 src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-60x60@3x.png create mode 100644 src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-76x76@1x.png create mode 100644 src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-76x76@2x.png create mode 100644 src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-83.5x83.5@2x.png create mode 100644 src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 src-tauri/gen/apple/Assets.xcassets/Contents.json create mode 100644 src-tauri/gen/apple/ExportOptions.plist create mode 100644 src-tauri/gen/apple/LaunchScreen.storyboard create mode 100644 src-tauri/gen/apple/Podfile create mode 100644 src-tauri/gen/apple/Sources/margin-calendar/bindings/bindings.h create mode 100644 src-tauri/gen/apple/Sources/margin-calendar/main.mm create mode 100644 src-tauri/gen/apple/margin-calendar.xcodeproj/project.pbxproj create mode 100644 src-tauri/gen/apple/margin-calendar.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 src-tauri/gen/apple/margin-calendar.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 src-tauri/gen/apple/margin-calendar.xcodeproj/xcshareddata/xcschemes/margin-calendar_iOS.xcscheme create mode 100644 src-tauri/gen/apple/margin-calendar_iOS/Info.plist create mode 100644 src-tauri/gen/apple/margin-calendar_iOS/margin-calendar_iOS.entitlements create mode 100644 src-tauri/gen/apple/project.yml 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/64x64.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/dto.rs create mode 100644 src-tauri/src/google/api.rs create mode 100644 src-tauri/src/google/auth.rs create mode 100644 src-tauri/src/google/mod.rs create mode 100644 src-tauri/src/google/secrets.rs create mode 100644 src-tauri/src/lib.rs create mode 100644 src-tauri/src/library.rs create mode 100644 src-tauri/src/main.rs create mode 100644 src-tauri/src/recur.rs create mode 100644 src-tauri/src/store/mod.rs create mode 100644 src-tauri/src/store/read.rs create mode 100644 src-tauri/src/store/schema.rs create mode 100644 src-tauri/src/store/write.rs create mode 100644 src-tauri/src/sync.rs create mode 100644 src-tauri/src/sync/model.rs create mode 100644 src-tauri/src/sync/pull.rs create mode 100644 src-tauri/src/sync/push.rs create mode 100644 src-tauri/src/sync/tests.rs create mode 100644 src-tauri/src/sync/transport.rs create mode 100644 src-tauri/tauri.conf.json create mode 100644 src-tauri/tauri.release.conf.json create mode 100644 src/App.tsx create mode 100644 src/api/accounts.ts create mode 100644 src/api/calendars.ts create mode 100644 src/api/events.ts create mode 100644 src/api/instances.ts create mode 100644 src/api/sync.ts create mode 100644 src/components/Accounts.tsx create mode 100644 src/components/AgendaList.tsx create mode 100644 src/components/AgendaModel.test.ts create mode 100644 src/components/AgendaModel.tsx create mode 100644 src/components/AgendaRow.tsx create mode 100644 src/components/AgendaSearch.tsx create mode 100644 src/components/AgendaView.tsx create mode 100644 src/components/CalendarList.tsx create mode 100644 src/components/ColorPicker.tsx create mode 100644 src/components/EventDetails.tsx create mode 100644 src/components/EventDetailsHtml.test.ts create mode 100644 src/components/EventDetailsHtml.ts create mode 100644 src/components/EventDetailsModel.test.ts create mode 100644 src/components/EventDetailsModel.ts create mode 100644 src/components/EventEditor.tsx create mode 100644 src/components/GridAllDay.tsx create mode 100644 src/components/GridDay.tsx create mode 100644 src/components/GridDraft.tsx create mode 100644 src/components/GridEvent.tsx create mode 100644 src/components/GridGaps.tsx create mode 100644 src/components/GridGhost.tsx create mode 100644 src/components/GridModel.tsx create mode 100644 src/components/GridNowLine.tsx create mode 100644 src/components/GridStore.tsx create mode 100644 src/components/GridStrip.tsx create mode 100644 src/components/GridView.tsx create mode 100644 src/components/Header.tsx create mode 100644 src/components/Icon.tsx create mode 100644 src/components/MiniMonth.tsx create mode 100644 src/components/PhoneBar.tsx create mode 100644 src/components/QuickCreateCard.tsx create mode 100644 src/components/QuickCreateModel.test.ts create mode 100644 src/components/QuickCreateModel.ts create mode 100644 src/components/RichText.tsx create mode 100644 src/components/SearchOverlay.tsx create mode 100644 src/components/Settings.tsx create mode 100644 src/components/Toast.tsx create mode 100644 src/components/overlayModel.test.ts create mode 100644 src/components/overlayModel.ts create mode 100644 src/components/overlayShell.tsx create mode 100644 src/components/useAgendaSearch.ts create mode 100644 src/components/useDetails.ts create mode 100644 src/components/useEditor.ts create mode 100644 src/dev/fixture.ts create mode 100644 src/dev/mockIpc.ts create mode 100644 src/escape.ts create mode 100644 src/grid/fit.test.ts create mode 100644 src/grid/fit.ts create mode 100644 src/grid/folds.test.ts create mode 100644 src/grid/folds.ts create mode 100644 src/grid/packing.test.ts create mode 100644 src/grid/packing.ts create mode 100644 src/ipc.ts create mode 100644 src/keys/Shortcuts.tsx create mode 100644 src/keys/bindings.test.ts create mode 100644 src/keys/bindings.ts create mode 100644 src/keys/commands.ts create mode 100644 src/keys/keymap.ts create mode 100644 src/keys/menu.ts create mode 100644 src/keys/updates.ts create mode 100644 src/main.tsx create mode 100644 src/palette/CommandPalette.tsx create mode 100644 src/palette/create.ts create mode 100644 src/palette/parse.test.ts create mode 100644 src/palette/parse.ts create mode 100644 src/palette/usePalette.ts create mode 100644 src/safeArea.ts create mode 100644 src/store/useAccounts.ts create mode 100644 src/store/useCalendarView.ts create mode 100644 src/store/useOverlays.ts create mode 100644 src/store/useSearch.ts create mode 100644 src/store/useSync.ts create mode 100644 src/store/useTheme.ts create mode 100644 src/store/useToast.ts create mode 100644 src/styles/agenda.css create mode 100644 src/styles/app.css create mode 100644 src/styles/create.css create mode 100644 src/styles/details.css create mode 100644 src/styles/folds.css create mode 100644 src/styles/fonts.css create mode 100644 src/styles/grid.css create mode 100644 src/styles/overlays.css create mode 100644 src/styles/palette.css create mode 100644 src/styles/rich.css create mode 100644 src/styles/tokens.css create mode 100644 src/theme.ts create mode 100644 src/time.ts create mode 100644 src/useMedia.ts create mode 100644 src/vite-env.d.ts create mode 100644 tests/app.ts create mode 100644 tests/compact.spec.ts create mode 100644 tests/grid.spec.ts create mode 100644 tests/interaction.spec.ts create mode 100644 tests/keyboard.spec.ts create mode 100644 tests/legibility.spec.ts create mode 100644 tests/overlays.spec.ts create mode 100644 tests/phone.spec.ts create mode 100644 tests/touch.spec.ts create mode 100644 tests/tsconfig.json create mode 100644 tests/views.spec.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..1f86787 --- /dev/null +++ b/.gitignore @@ -0,0 +1,44 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +# Tauri build output +src-tauri/target/ +src-tauri/gen/schemas/ + +# Xcode build output. The project under src-tauri/gen/apple is generated but committed, the +# products of building it are not: Externals holds the static Rust library per architecture and +# runs to several hundred MB. +src-tauri/gen/apple/build/ +src-tauri/gen/apple/Externals/ +src-tauri/gen/apple/Pods/ +src-tauri/gen/apple/Podfile.lock +xcuserdata/ + +# Google OAuth desktop client (real values, never commit) +/google-credentials.json +/client_secret_*.json + +# Screenshots & Playwright MCP artifacts +.playwright-mcp/ +/*.png diff --git a/README.md b/README.md new file mode 100644 index 0000000..115a696 --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# Margin Calendar + +A calendar for Google Calendar on macOS, Linux, Android and iOS. The grid owns the window, the day +fits without scrolling, and on a desktop the whole thing is drivable from the keyboard. + +It is a sibling to [margin](https://github.com/priyanshujain/margin) and shares its stack and its +visual language. + +Setup and the Google OAuth client it needs are in [docs/setup.md](docs/setup.md), and the extra +clients a phone build needs are in [docs/mobile.md](docs/mobile.md). The product decisions are in +[docs/design.md](docs/design.md), how it is built is in +[docs/architecture.md](docs/architecture.md), and the conventions it follows are in +[docs/conventions.md](docs/conventions.md). diff --git a/docs/architecture.md b/docs/architecture.md new file mode 100644 index 0000000..0b7ae69 --- /dev/null +++ b/docs/architecture.md @@ -0,0 +1,133 @@ +# Architecture + +Tauri 2, React 19, Vite, TypeScript and zustand on the front, Rust behind. Same stack as +margin, which means the OAuth flow, the token handling and the build and bundle setup carry +over rather than being invented again. + +The split is strict. Rust owns authentication, all HTTP to Google, the local store, the sync +loop, recurrence expansion and timezone arithmetic. TypeScript owns rendering and interaction +and nothing else. The frontend never talks to Google, which keeps the content security policy +locked to `ipc:` exactly as margin has it. + +## Authentication + +Lifted from `margin/src-tauri/src/gdrive.rs`, then split in two when mobile arrived. Both halves +build the same consent URL with PKCE S256 and a CSRF state parameter and open it in the system +browser through the opener plugin, never an in-app webview: Google blocks the embedded-webview +flow, and it deserves to be blocked, because a webview the app controls can read the password +typed into it. They differ only in how the answer comes back. + +Desktop binds a listener on `127.0.0.1:0` and catches the redirect on the loopback socket. The +verifier lives on that listener's stack for the two minutes it is alive. + +Mobile cannot do that. iOS will not keep a background listener alive dependably, and Google +rejects loopback redirects for Android and iOS client types outright, so the redirect is a custom +URI scheme the OS routes back to the app through `tauri-plugin-deep-link`. There is no listener to +hold the verifier, the browser is a separate app and this process may be backgrounded while the +user consents, so the verifier waits in `AuthState.pending` and `handle_redirect` picks it up +whenever the link lands. It is taken rather than read, so a replayed link cannot start a second +exchange. + +That split forces one more difference. A desktop client is confidential and has a secret; an +Android or iOS client is public and has none, so `google-credentials.json` carries up to three +clients and the build embeds the one for the platform it is compiling for. Details and the +console steps are in [mobile.md](mobile.md). + +The scope is `https://www.googleapis.com/auth/calendar` plus `openid email`. Calendar is a +sensitive scope, so an unverified client shows the unverified-app interstitial and caps at 100 +users. Irrelevant for personal use, relevant the moment this ships the way margin ships. + +Refresh tokens never go to disk in plaintext and never into SQLite. They are sealed with +XChaCha20-Poly1305 in the app data directory, the same way on all five platforms. + +There is no `keyring` here, and its absence is deliberate rather than an omission. It has no +Android backend at all; on macOS it ties an item to the code signature, so an ad-hoc signed build +gets a new identity on every compile and macOS re-asks for authorization every time; and on Linux +it is missing on exactly the minimal window managers that run no Secret Service daemon. That left +one real implementation behind four ways of reaching it. `src-tauri/src/google/secrets.rs` states +plainly what the file is worth on each platform, which is more on the mobile sandboxes than on a +desktop home directory. + +## Store + +SQLite through `rusqlite` with the bundled feature, so there is no system SQLite dependency on +either platform. + +Accounts hold an email and a reference naming the sealed token, never the token itself. The +column is still called `keychain_ref` from when there was a keychain; renaming it would cost a +migration and buy nothing. Calendars hold their account, summary, +colour, selection state, access role, default timezone and their own sync token. Events hold +the raw Google shape flattened: identity and etag, summary, description, location, start and +end with their separate timezones, an all-day flag, the recurrence rule set, the pointer back +to a master plus original start for exception instances, status, and attendees and conference +data as JSON blobs. An outbox table holds pending writes. + +Events are stored as Google returns them with `singleEvents=false`, meaning recurring series +are one row carrying an RRULE rather than thousands of rows. Expansion happens on read. + +## Sync + +Incremental sync through `events.list` with a stored `syncToken`, one cursor per calendar, +`singleEvents=false`, `showDeleted=true`, `maxResults=2500`. The parameter set has to be +byte-identical across every call in a chain, including the initial one. + +The constraint that shapes everything: `timeMin` and `timeMax` cannot be used with +`syncToken`, along with `q`, `orderBy`, `updatedMin`, `iCalUID` and the extended property +filters. There is no way to sync a window. The initial full sync pulls the entire calendar +history, which for an old personal calendar is a few thousand rows and a one-time cost of +seconds, and is only tolerable because recurring series collapse to single rows. + +`nextSyncToken` appears only on the final page, so pages must be walked to exhaustion with +`pageToken` before anything is persisted. A 410 means the token is dead: drop that calendar's +rows and its cursor and full-resync it alone, without touching the others. `calendarList.list` +carries its own sync token for the set of calendars itself. + +Polling, not webhooks. Push notifications need a publicly verified HTTPS callback and channels +that expire every few days, neither of which a desktop app has. Sixty seconds while the window +is focused, five minutes when it is not. An incremental poll with no changes is a single small +request against a million-a-day quota. + +## Writes + +Optimistic. A write lands in SQLite, is marked dirty, is enqueued in the outbox and renders +immediately; the push to Google happens behind it. Requests carry `If-Match` with the stored +etag, and a 412 means someone else changed it first, so refetch and surface the conflict +rather than clobbering. Offline writes queue and drain on reconnect. The outbox is the reason +the app works on a plane and the reason it never spins. + +## Recurrence + +The `rrule` crate, which is built on `chrono-tz`. Expansion takes a window and a set of +masters, generates occurrences, drops any occurrence whose original start matches a cancelled +or overridden instance, then merges the override events back in at their moved times. The +frontend asks for a range and receives a flat array of instances; it has no concept of a +recurrence rule. + +Editing a series is three distinct operations. Editing one instance resolves the real instance +through `events.instances` and patches that, rather than constructing the instance id by hand. +Editing this and all following truncates the master's rule with an UNTIL and creates a new +master from the split point. Editing the whole series patches the master. All three are worth +tests before they are worth UI. + +## Time + +Every event keeps its own timezone; the grid renders in the local zone. All-day events are +date-only and must never be shifted into a zone, which is the single most common bug in this +category of app and deserves a test that runs in a non-UTC zone. DST transitions mean a day is +sometimes 23 or 25 hours long, which the vertical fit calculation has to accept rather than +assume away. + +## Platforms + +macOS uses the overlay title bar with the header row padded for the traffic lights, as margin +does. Linux has no traffic lights, so that padding is conditional. Linux builds need +`libwebkit2gtk-4.1-dev` and ship as AppImage and deb. + +## Order of work + +The sync engine and the grid are the two hard things and neither is proven by the other, so +the first milestone is authentication, sync and a read-only grid with correct vertical fit. +Recurrence and timezone correctness come second, with tests, because everything after depends +on the instance stream being right. Create, edit and delete with the outbox come third. +Multiple accounts, the command palette and natural language parsing come last, since they are +the parts that are pleasant rather than load-bearing. diff --git a/docs/conventions.md b/docs/conventions.md new file mode 100644 index 0000000..097e529 --- /dev/null +++ b/docs/conventions.md @@ -0,0 +1,89 @@ +# Conventions + +This project is a sibling to `../margin` and follows its conventions deliberately rather than +inventing new ones. When something here is unclear, the answer is almost always "do what margin +does", and the file to look at is named below. + +## Rust + +`Result` everywhere. No `anyhow`, no custom error enum except `google::api::ApiError`, +which exists only because the sync engine has to distinguish a 410 and a 412 from everything else. + +DTOs crossing the IPC boundary live in `src-tauri/src/dto.rs` and are marked +`#[serde(rename_all = "camelCase")]`. That file is the contract and is frozen: implementation +modules add bodies, not fields. Its mirror is `src/ipc.ts`. + +Read Google's responses through `google::auth::read_json`, which takes the body to a `String` +first so the error payload survives into the message. Ported from `margin/src-tauri/src/gdrive.rs:286`. + +Heavy synchronous work goes behind `#[tauri::command(async)]` on a synchronous fn, which is +margin's `pdf.rs:90` trick for getting off the main thread without hand-writing `spawn_blocking`. + +Comments are rare and explain why, never what. Match the density in `lib.rs`. + +## TypeScript + +One zustand store per domain in `src/store/`. No middleware. One selector call per field +(`useThing((s) => s.field)`, never a destructured object), actions as inline arrow properties, and +`set((s) => ...)` returning `{}` to no-op. See `margin/src/store/useBackup.ts`. + +Async actions use a string phase union (`"idle" | "syncing" | "error"`), never boolean loading +flags. Errors stringify with `String(e)` and surface as a toast. + +Side effects that touch disk, the DOM or Tauri live in a sibling module, never inside the store. + +The OAuth connect flow reuses the promise-holding-its-own-resolver pattern from +`margin/src/store/useBackup.ts:70`: `connect()` returns a promise whose `resolve` is stashed in +state for a later Tauri event to settle. + +Typed IPC wrappers live in `src/api/`, one module per domain, one thin function per command. They +are already written; add bodies to Rust, not new wrappers. + +## CSS + +Flat kebab-case class names, not BEM. State is a `data-*` attribute, never an `is-` class. + +Every colour, radius and size goes through a token in `src/styles/tokens.css`. If a value is not +in there, add a token rather than a literal. + +Dark mode is `data-theme` on ``, with both palettes defining an identical variable set. +Never a media query for theme. + +Transitions name explicit properties and use `var(--ease)`. Never `transition: all`. + +Responsiveness is JS-driven through `useCompact()`, which writes `data-compact` on the root. +Style against that attribute rather than adding media queries. + +`usePhone()` and `useTouch()` write `data-phone` and `data-touch` the same way, and they answer +different questions. `data-phone` is a window too narrow for the desktop chrome and it governs +layout; `data-touch` is a coarse pointer and it governs interaction. A tablet is touch and not a +phone, a narrow desktop window is a phone and not touch, and treating either as a proxy for the +other is how a hover-only control ends up unreachable. Both are also set by the boot script in +`index.html`, so the first paint is already the right shape. + +A rule that reads "you cannot hover here" belongs on `data-touch`. A rule that reads "there is no +room for this" belongs on `data-phone` or `data-compact`. + +The one exception is the event block, which uses a container query on its own inline size. That is +deliberate: `data-compact` describes the window, but what decides how many lines of a title fit is +the block's own width, and in a three-deep overlap cluster that is a quarter of a column. Nothing +else may reach for a container query without the same kind of reason. + +Overlays follow margin's `.overlay` and `.panel` idiom, already in `app.css`, and every one of +them registers with `useEscapeLayer` from `src/escape.ts` so Escape unwinds the layers in order. + +## Icons + +Inline Feather-style 24x24 stroke `d` strings passed to ``. There is no icon set +and no registry, and there will not be one. An icon-only button always carries a `title` with its +shortcut written in real glyphs. + +## Storage keys + +Anything in `localStorage` is prefixed `margincal-`, following margin's convention in `theme.ts` +and `panes.ts`. Keys read before first paint are restored by the blocking IIFE in `index.html`. + +## Never + +No CSS framework, no component library, no router, no zustand middleware, no directory trees in +any document, and no em dashes anywhere including code comments. diff --git a/docs/design.md b/docs/design.md new file mode 100644 index 0000000..c9c8877 --- /dev/null +++ b/docs/design.md @@ -0,0 +1,135 @@ +# Design + +A desktop calendar for Google Calendar, macOS and Linux. It exists because Google Calendar +wastes vertical space you cannot reclaim and surrounds the grid with chrome you never asked +for. Everything below follows from those two complaints. + +## The grid owns the window + +There is no permanent sidebar. The mini-month, the calendar list, search and settings are all +overlays: summoned by a key or a hover, dismissed with Escape, never resident. The only +persistent chrome is a single header row carrying the date range, the view switcher and the +current time range. On macOS the traffic lights float over that row, so it costs no extra +height. + +This is the whole point. A 1440p monitor should show a week of your life, not a week of your +life inside a browser inside a Google header. + +## Vertical fit + +The grid never scrolls. Row height is derived from the window, so whatever range is visible +always fits exactly. + +The visible range is computed from the events in the span you are looking at: floor to the +hour before your earliest event, ceil to the hour after your latest, clamped to a minimum of +eight hours so a quiet week does not render four enormous rows. Empty bands at the top and +bottom fold into thin strips labelled with their range and a count of anything hiding inside. +Click or press `z` to unfold one. + +The range expands immediately when it needs to, but only contracts when it would shrink by two +hours or more. Without that hysteresis the axis flickers as you page through weeks, and a +flickering axis destroys the positional memory that makes a keyboard-driven calendar fast. + +Interior gaps stay at full scale. A three-hour hole on a Wednesday afternoon is the most +useful thing on the screen, because it is where work goes, and folding it automatically would +make a packed day look identical to an open one. But you can fold one deliberately with `z`, +and it stays folded across navigation until you unfold it. The fold is per range, remembered +in local state, not derived from the data. + +One consequence worth stating plainly: within the unfolded region the scale is strictly +linear, so a block twice as tall is an event twice as long, always. That property is why the +grid is worth having at all, and it is the thing automatic gap-folding would have cost. + +## Events on the grid + +Overlapping events use the standard constraint model. Sort by start, partition into collision +clusters, assign each event the leftmost free column within its cluster, then let every event +expand rightward into columns that stay free for its whole duration. Colliding events end up +the same width, nothing visually overlaps, and an event that only collides briefly still gets +most of the day's width. + +An event block is a washed neutral surface with a two-pixel coloured edge on the left +identifying its calendar. Colour never fills the block. This keeps the grid quiet enough to +read as a shape while still letting you tell work from personal at a glance, and it means the +app looks like a sibling of margin rather than a different product. + +All-day events sit in a fixed band under the day headers, one row tall, with anything that does +not fit behind a count that expands over the grid. The band's height has to be constant: the axis +below is solved from whatever height is left, so a band that grew with its contents would change +the row height as you paged and slide every hour on the grid, which is the same positional memory +the contraction hysteresis exists to protect. A taller fixed reserve would be the other sin, an +empty band eating space you cannot reclaim. + +## Keyboard + +Keyboard-first, mouse fully supported. Drag on empty grid to create, drag a block to move it, +drag its edge to resize. None of that is second class. + +Navigation is `h` and `l` for previous and next day, `H` and `L` for week, `t` for today. +`j` and `k` move the selection through the events of the focused day. `d`, `w` and `a` switch +view, and `m` summons the mini-month, since there is no month view for it to switch to. `z` +folds or unfolds the band under the cursor. + +Actions are `c` to create, `Enter` to open the selection, `e` to edit, `x` to delete, `/` to +search, `Escape` to dismiss whatever is open. `Cmd-K` opens the command palette, which is also +where creation happens. + +Every binding is listed in an overlay behind `?`. Nothing is modal and nothing is chorded. +Vimcal's ceiling is higher and its users find it confusing, which is a trade worth refusing. + +## On a phone + +Keyboard-first stops being a design when there is no keyboard, so a phone gets a different set of +affordances for the same commands rather than a shrunken copy of the desktop ones. The build steps +are in [mobile.md](mobile.md); the decisions are here. + +The chrome inverts. The desktop header holds three groups across a single row and there is no +arrangement of that which fits 390 points, so the date and the day arrows go to a top bar, the +views go to a bottom tab bar where a thumb can reach them, and the rest goes into an overflow +sheet. Overlays become bottom sheets for the same reason: a centred panel puts its buttons where +the hand is not. + +Interaction changes on touch, not on width. Anything that only appeared on hover is always visible +instead, because a finger cannot hover and an affordance nobody can reach is not an affordance. +Dragging out a new event waits for a long press, because the alternative is that every tap on an +empty afternoon starts creating something. A tablet gets these and keeps the week grid; a narrow +desktop window gets the layout and keeps its mouse behaviour. + +Navigation still moves one day at a time. A swipe is one day, never a week. + +The week view survives on a phone rather than being hidden, because an overview has value even at +fifty points a column, but it is an overview: no times on the blocks, one letter for the day name, +and tapping a day header drops into that day. The day view is what a phone opens on. + +What does not change is the premise. The day still fits without scrolling, the grid still owns +what is left after the two bars, and there is still no month view. + +## Creating an event + +Press `c` or `Cmd-K` and type. `lunch with sam tue 1pm 45m` creates a 45-minute event on +Tuesday. The parse is shown live underneath the input as you type, as a plain sentence with +the resolved date, time, duration and target calendar, so you can see what will be created +before you commit. If the parse is ambiguous the preview says so rather than guessing +silently. + +`#work` targets a calendar, `at ` sets the location, a bare time range like `9-10am` +sets both ends. Anything the parser does not recognise stays in the title. + +Dragging on the grid also creates: drag the range, type the title in place, Enter. Same event, +different mood. + +## Meetings + +Attendees and conference links are shown read-only on an event that has them, including who +has accepted. There is no RSVP flow, no availability finder and no scheduling links. That is +a deliberate cut, not an oversight, and it can be revisited once the calendar itself is good. + +## Visual language + +The token layer is lifted from margin unchanged: warm paper surfaces, ink and two softer ink +tones, hairline borders, a four-step type scale, three radii, one easing curve, light and dark +driven by `data-theme` on the root. The additions are grid-specific: hour and half-hour rule +colours, the now-line, the folded-band surface, and a set of eight muted calendar hues chosen +to sit on warm paper without shouting. + +No CSS framework and no component library, same as margin. Hand-written CSS on top of tokens. diff --git a/docs/mobile.md b/docs/mobile.md new file mode 100644 index 0000000..2d63440 --- /dev/null +++ b/docs/mobile.md @@ -0,0 +1,198 @@ +# Android and iOS + +The same Rust core and the same React app, with a different shape of chrome and a different way of +getting a token back from Google. Nothing is forked: the layout switches on a `data-phone` +attribute and the OAuth flow switches on `cfg(mobile)`. + +## Google will not let you reuse the desktop client + +This is the part that cannot be automated away, so do it first or nothing will sign in. + +Google issues OAuth clients per platform and refuses one in another's place. The desktop client +redirects to a loopback port; Google rejects loopback redirects for Android and iOS client types +outright, and iOS will not dependably keep a listener alive to catch one anyway. So a phone build +redirects to a custom URI scheme instead, and needs its own client to do it. + +Both mobile clients are **public**: no client secret exists, and PKCE is the only thing between an +intercepted authorization code and a token. That is why the verifier is not optional anywhere in +`auth.rs`. + +In the Google Cloud console, on the same project that already has the Calendar API enabled: + +1. Create an OAuth client of type **Android**. It wants the package name, which is + `studio.margin.calendar`, and the SHA-1 fingerprint of the certificate that signs the build. + For a debug build that is the shared debug keystore: + + ``` + keytool -list -v -keystore ~/.android/debug.keystore \ + -alias androiddebugkey -storepass android -keypass android + ``` + + A release build is signed with a different key and needs its fingerprint added too. An APK + signed by a key Google has not been told about fails at consent, not at build. + +2. Create an OAuth client of type **iOS**. It wants the bundle identifier, which is also + `studio.margin.calendar`. + +3. Put both client ids in `google-credentials.json` alongside the desktop one, matching + `google-credentials.example.json`: + + ```json + { + "installed": { "client_id": "...", "client_secret": "...", "...": "..." }, + "android": { "client_id": "YOUR_ANDROID_CLIENT_ID.apps.googleusercontent.com" }, + "ios": { "client_id": "YOUR_IOS_CLIENT_ID.apps.googleusercontent.com" } + } + ``` + + The file is gitignored and embedded at build time. A build with no `android` or `ios` block + compiles and then says so at runtime rather than failing to compile, which is the same bargain + the desktop client already had. + +## The redirect schemes + +Android redirects to `studio.margin.calendar:/oauth2redirect`. That is the package name, which is +Google's documented form for an Android client, and being known at build time means it can sit in +`AndroidManifest.xml` permanently rather than being pasted in per install. + +iOS gets no such choice. Google requires the reversed client id, so the scheme is only knowable +once your client id is: take the client id, drop the `.apps.googleusercontent.com` suffix, and +prefix `com.googleusercontent.apps.`. + +Register it in `src-tauri/tauri.conf.json`, as a second entry in the deep link plugin's scheme +list: + +```json +"deep-link": { + "desktop": { "schemes": ["studio.margin.calendar"] }, + "mobile": [{ "scheme": ["studio.margin.calendar", "com.googleusercontent.apps.YOUR_ID"] }] +} +``` + +Not in `Info.plist`. Editing that by hand looks like it works and then silently stops working: the +plugin's build script rewrites `CFBundleURLTypes` wholesale from this config on every build, and +when the `mobile` array is empty it deletes the key outright. That one empty array is why the +callback was dead on both platforms at first, so if a deep link ever stops arriving, look here +before anywhere else. + +If the console shows you something different from either default, put it in the client's block in +`google-credentials.json` as `redirect_uri` and it wins over both. Whatever you put there still +has to have its scheme registered above, or the OS has no reason to hand the link to this app. + +## Toolchain + +iOS needs Xcode and the iOS Rust targets: + +``` +rustup target add aarch64-apple-ios aarch64-apple-ios-sim x86_64-apple-ios +``` + +Android needs the SDK, an NDK of r25 or newer, a JDK that the generated Gradle build accepts (21 +works, 25 does not), and the four Android Rust targets: + +``` +rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android +export ANDROID_HOME=/opt/homebrew/share/android-commandlinetools +export NDK_HOME=$ANDROID_HOME/ndk/27.2.12479018 +export JAVA_HOME=/opt/homebrew/opt/openjdk@21 +``` + +## Building + +``` +pnpm tauri ios init # once, generates the Xcode project +pnpm tauri ios dev # simulator, with the Vite dev server +pnpm tauri ios build + +pnpm tauri android init # once, generates the Gradle project +pnpm tauri android dev # emulator or attached device +pnpm tauri android build +``` + +The generated projects are committed. Re-running `init` overwrites them, so check afterwards that +`MainActivity.kt` still publishes the window insets, since nothing else on Android does. + +Both `dev` commands start Vite themselves and fail outright if port 1430 is already taken, which +it will be if a browser dev server is still up. Kill it, or pass a different port through +`--config`. + +Three failures that look like bugs and are not. Xcode refusing to build with "Entitlements file +was modified during the build" is a stale mtime in DerivedData, fixed once by deleting +`~/Library/Developer/Xcode/DerivedData/margin-calendar-*`. An Android run panicking with "failed +to build WebSocket client, Connection refused" is a stale +`$TMPDIR/studio.margin.calendar-server-addr` pointing at a dead port; delete it. And an emulator +that will not boot by name usually means `avdmanager` and `emulator` disagree about where AVDs +live, which `ANDROID_AVD_HOME` settles. + +Finally, an empty calendar on a device is correct. The browser fixture is gated on not being +inside Tauri, so on a phone the real backend answers and there is nothing to show until an account +is connected. Events without signing in only ever happen in a browser. + +## What is different on a phone + +The desktop header carries three groups of controls across one row, which does not fit in 390 +points. Under `data-phone` it becomes a top bar with the date and the day arrows and a bottom tab +bar with the views, and everything the trailing icon row used to hold moves into an overflow +sheet. Overlays become bottom sheets. Both bars pad themselves out of the way of the notch and the +home indicator with `env(safe-area-inset-*)`. + +Under `data-touch`, which a tablet gets and a narrow desktop window does not, interaction changes +rather than layout. Anything that only appeared on hover is always visible instead, because a +finger cannot hover. Dragging out a new event waits for a long press, because on a touchscreen the +alternative is that every tap on an empty afternoon starts creating something. + +Navigation still moves one day at a time. A swipe is one day, not one week. + +Both attributes are also set by the boot script in `index.html` before first paint, so a phone +does not render the desktop layout for a frame and then jump. + +## Keeping out from under the system bars + +`--safe-top` and `--safe-bottom` are `env(safe-area-inset-*)` by default, which is correct on iOS +and wrong on Android in a way that is easy to miss. Android's WebView derives those values from the +display cutout alone and never from the system bars, so it reports 0 at the bottom while the +navigation bar really occupies 24dp of gesture pill or 48dp of buttons, and the tab bar renders +underneath it. `targetSdk` is 36, so edge-to-edge is mandatory and there is nothing to opt out of. +The top only looked right on a test device by luck, because that device had a cutout; a phone +without one would have tucked the top bar under the status bar for the same reason. + +So Android measures the bars natively. `MainActivity.kt` reads `systemBars() or displayCutout()` +from `WindowInsetsCompat`, exposes them over a JavaScript bridge, and re-fires on every inset +change, which covers rotation, the keyboard, and switching between gesture and button navigation +live. `src/safeArea.ts` converts device pixels to CSS pixels and writes the two variables onto the +root, where they beat the `env()` defaults. Off Android the bridge is simply absent and the +defaults stand, so iOS and desktop are untouched. + +Two consequences worth knowing. `tauri android init` regenerates `MainActivity.kt`, and nothing +else on Android supplies these values, so check the bridge is still there after re-running it. +And installing the inset listener makes `env(safe-area-inset-*)` read 0 inside that WebView, which +does not matter only because those two token lines are the sole consumers and the bridge overrides +both with better numbers. Anything new that reaches for `env()` directly on Android will get zero. + +iOS needed one line of native code for the same class of problem, in the opposite direction. + +UIKit hands a scroll view the safe areas as content insets unless told otherwise, and wry never +tells it otherwise: it touches the scroll view only to switch `bounces` off. WebKit then lays the +page out in what is left. On an iPhone 17 Pro that meant a layout viewport 778pt tall against an +874pt screen, still anchored at y 0, so the bottom 96pt of the display was outside the page +altogether and showed as a dead band of shell colour under the tab bar. `body` is +`position: fixed`, so nothing could paint down there whatever the stylesheet said. + +`stop_uikit_shrinking_the_viewport` in `lib.rs` sets `contentInsetAdjustmentBehavior` to `never` +through `with_webview`, which gives the page the whole screen back. The insets are not lost, they +arrive as `env(safe-area-inset-*)` instead, which is where both bars already read them from. + +Worth knowing before anyone tries to solve that in CSS, because it looks like a CSS problem and +the obvious fix is worse than the bug. While the viewport was short, `100dvh` was the only unit +reporting the real box; `vh`, `svh` and `lvh` all reported the full screen. Sizing the root +`100svh` therefore did not reclaim the bottom of the screen, it laid the tab bar out past the clip +where it was invisible and, less obviously, untappable. The root is `height: 100%`, which inherits +whatever the box is and cannot drift if the native line ever regresses. + +## Limits worth knowing + +There is no auto-updater and no process restart on mobile: the store is the update channel, and +both plugins are compiled out rather than merely hidden. + +The initial sync pulls the whole calendar history, because Google forbids `timeMin` alongside a +`syncToken`. That is already the desktop behaviour and it is slower on a phone radio. diff --git a/docs/setup.md b/docs/setup.md new file mode 100644 index 0000000..e476afe --- /dev/null +++ b/docs/setup.md @@ -0,0 +1,55 @@ +# Setup + +## The Google OAuth client + +The app talks to Google with its own OAuth desktop client, which is not in this repo and cannot +be. You need to make one before the app can connect to anything. + +1. In the Google Cloud console, enable the Google Calendar API on a project. +2. On the OAuth consent screen, add the `https://www.googleapis.com/auth/calendar` scope. It is a + sensitive scope, so an unverified client shows an interstitial and caps at 100 users. That is + fine for personal use and matters the day this ships more widely. +3. Create an OAuth client ID of type **Desktop app**. That type permits the loopback redirect, and + Google allows installed clients any loopback port, so there is nothing to register. This client + is for macOS, Linux and Windows only; phones need their own, see [mobile.md](mobile.md). +4. Save the downloaded JSON as `google-credentials.json` in the repo root. It should match the + shape of `google-credentials.example.json`: an `installed` object with `client_id`, + `client_secret`, `auth_uri` and `token_uri`. + +The real file is gitignored. The build embeds it when it is present and embeds the example when it +is not, so a fresh clone builds and then tells you at runtime that Google Calendar is not set up +yet, rather than failing to compile. + +Building for a phone needs a second and third OAuth client, because Google will not accept a +desktop client from Android or iOS. That, and the toolchain, is in [mobile.md](mobile.md). + +Refresh tokens never go to disk in plaintext and never into the SQLite database. They are sealed +with XChaCha20-Poly1305 in the app data directory, identically on all five platforms, by +`src-tauri/src/google/secrets.rs`. That file states what the encryption is worth where: on iOS and +Android the app sandbox is the real boundary and this is defence behind it, while on a desktop +anyone who can read your home directory can read the token. There is no OS credential store in the +picture and nothing will ever prompt you for keychain access. + +## Building + +``` +pnpm install +pnpm tauri dev +``` + +`pnpm test` runs the frontend suites, `cargo test` inside `src-tauri` runs the Rust ones. Both +should be green before anything is considered done. + +## Linux + +Building needs `libwebkit2gtk-4.1-dev`, `libgtk-3-dev`, `librsvg2-dev`, +`libayatana-appindicator3-dev` and `libxdo-dev`. Build on the oldest baseline you intend to +support, which is Ubuntu 22.04 or Debian 12, because the resulting binary will not run on anything +older than the glibc it was linked against. + +## Where the data lives + +`~/Library/Application Support/studio.margin.calendar/` on macOS and +`~/.local/share/studio.margin.calendar/` on Linux. The bundle identifier is deliberately distinct +from margin's, so the two apps never share a directory. Deleting that directory resets the app; +the accounts reconnect and sync pulls everything back. diff --git a/google-credentials.example.json b/google-credentials.example.json new file mode 100644 index 0000000..04a81ea --- /dev/null +++ b/google-credentials.example.json @@ -0,0 +1,19 @@ +{ + "installed": { + "client_id": "YOUR_CLIENT_ID.apps.googleusercontent.com", + "project_id": "your-project-id", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_secret": "YOUR_CLIENT_SECRET", + "redirect_uris": ["http://127.0.0.1"] + }, + + "android": { + "client_id": "YOUR_ANDROID_CLIENT_ID.apps.googleusercontent.com" + }, + + "ios": { + "client_id": "YOUR_IOS_CLIENT_ID.apps.googleusercontent.com" + } +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..c6a6e07 --- /dev/null +++ b/index.html @@ -0,0 +1,47 @@ + + + + + + + + Margin Calendar + + +
+ + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..db3c8ee --- /dev/null +++ b/package.json @@ -0,0 +1,35 @@ +{ + "name": "margin-calendar", + "private": true, + "version": "0.1.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview", + "tauri": "tauri", + "test": "vitest run", + "test:watch": "vitest", + "test:ui": "playwright test" + }, + "dependencies": { + "@tauri-apps/api": "^2", + "@tauri-apps/plugin-opener": "^2", + "@tauri-apps/plugin-process": "^2", + "@tauri-apps/plugin-updater": "^2", + "chrono-node": "^2.7.7", + "react": "^19.1.0", + "react-dom": "^19.1.0", + "zustand": "^5.0.14" + }, + "devDependencies": { + "@playwright/test": "^1.62.1", + "@tauri-apps/cli": "^2", + "@types/react": "^19.1.8", + "@types/react-dom": "^19.1.6", + "@vitejs/plugin-react": "^4.6.0", + "typescript": "~5.8.3", + "vite": "^7.0.4", + "vitest": "^3.2.4" + } +} diff --git a/playwright.config.ts b/playwright.config.ts new file mode 100644 index 0000000..6387697 --- /dev/null +++ b/playwright.config.ts @@ -0,0 +1,53 @@ +// The end-to-end suite drives the real UI in a browser, where `src/ipc.ts` routes every command to +// the dev fixture. One command starts everything: `pnpm test:ui` brings up Vite itself and reuses a +// dev server that is already running. +// +// The viewport is fixed, because half of what these tests assert is geometry: block heights, the +// solved row height, whether the axis moved. A test that measured a window of unknown size would +// be asserting nothing. + +import { defineConfig } from "@playwright/test"; + +const PORT = 1430; +const BASE_URL = `http://localhost:${PORT}`; + +export default defineConfig({ + testDir: "./tests", + fullyParallel: true, + // No retries on purpose. A test that only passes on the second go is a test that is lying about + // something, and this suite exists because things that looked fine were not. + retries: 0, + reporter: [["list"]], + // Traces and failure screenshots go somewhere already ignored, so a run cannot leave anything + // behind for the next `git add` to pick up. The paths are printed with the failure that made + // them. + outputDir: "node_modules/.cache/playwright", + timeout: 30_000, + expect: { timeout: 5_000 }, + + use: { + baseURL: BASE_URL, + viewport: { width: 1440, height: 900 }, + deviceScaleFactor: 1, + // The fixture is anchored to the browser's local day, so pinning the zone keeps a run on one + // machine comparable with a run on another. Nothing in the suite depends on the zone itself. + timezoneId: "Asia/Kolkata", + locale: "en-GB", + trace: "retain-on-failure", + screenshot: "only-on-failure", + }, + + // Deliberately not `devices["Desktop Chrome"]`: that device pins a Windows user agent, and the + // keymap reads the platform off the user agent to decide whether the primary modifier is Command + // or Control. A faked platform would test the wrong half of every shortcut. + projects: [{ name: "chromium", use: { browserName: "chromium" } }], + + webServer: { + command: "pnpm dev", + url: BASE_URL, + reuseExistingServer: true, + timeout: 60_000, + stdout: "ignore", + stderr: "pipe", + }, +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..f0e387b --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,1685 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@tauri-apps/api': + specifier: ^2 + version: 2.11.1 + '@tauri-apps/plugin-opener': + specifier: ^2 + version: 2.5.4 + '@tauri-apps/plugin-process': + specifier: ^2 + version: 2.3.1 + '@tauri-apps/plugin-updater': + specifier: ^2 + version: 2.10.1 + chrono-node: + specifier: ^2.7.7 + version: 2.10.1 + react: + specifier: ^19.1.0 + version: 19.2.8 + react-dom: + specifier: ^19.1.0 + version: 19.2.8(react@19.2.8) + zustand: + specifier: ^5.0.14 + version: 5.0.14(@types/react@19.2.18)(react@19.2.8) + devDependencies: + '@playwright/test': + specifier: ^1.62.1 + version: 1.62.1 + '@tauri-apps/cli': + specifier: ^2 + version: 2.11.4 + '@types/react': + specifier: ^19.1.8 + version: 19.2.18 + '@types/react-dom': + specifier: ^19.1.6 + version: 19.2.4(@types/react@19.2.18) + '@vitejs/plugin-react': + specifier: ^4.6.0 + version: 4.7.0(vite@7.3.6) + typescript: + specifier: ~5.8.3 + version: 5.8.3 + vite: + specifier: ^7.0.4 + version: 7.3.6 + vitest: + specifier: ^3.2.4 + version: 3.2.7 + +packages: + + '@babel/code-frame@7.29.7': + resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.29.7': + resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.29.7': + resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.29.8': + resolution: {integrity: sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.29.7': + resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-globals@7.29.7': + resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.29.7': + resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.29.7': + resolution: {integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-plugin-utils@7.29.7': + resolution: {integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.29.7': + resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.29.7': + resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.29.7': + resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.29.7': + resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.29.8': + resolution: {integrity: sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-transform-react-jsx-self@7.29.7': + resolution: {integrity: sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-source@7.29.7': + resolution: {integrity: sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/template@7.29.7': + resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.29.8': + resolution: {integrity: sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.29.8': + resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==} + engines: {node: '>=6.9.0'} + + '@esbuild/aix-ppc64@0.28.2': + resolution: {integrity: sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.28.2': + resolution: {integrity: sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.28.2': + resolution: {integrity: sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.28.2': + resolution: {integrity: sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.28.2': + resolution: {integrity: sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.28.2': + resolution: {integrity: sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.28.2': + resolution: {integrity: sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.28.2': + resolution: {integrity: sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.28.2': + resolution: {integrity: sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.28.2': + resolution: {integrity: sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.28.2': + resolution: {integrity: sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.28.2': + resolution: {integrity: sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.28.2': + resolution: {integrity: sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.28.2': + resolution: {integrity: sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.28.2': + resolution: {integrity: sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.28.2': + resolution: {integrity: sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.28.2': + resolution: {integrity: sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.28.2': + resolution: {integrity: sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.28.2': + resolution: {integrity: sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.28.2': + resolution: {integrity: sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.28.2': + resolution: {integrity: sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.28.2': + resolution: {integrity: sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.28.2': + resolution: {integrity: sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.28.2': + resolution: {integrity: sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.28.2': + resolution: {integrity: sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.28.2': + resolution: {integrity: sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@napi-rs/lzma-linux-x64-gnu@1.5.1': + resolution: {integrity: sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==} + engines: {node: ^22.20 || ^24.12 || >=25} + cpu: [x64] + os: [linux] + + '@playwright/test@1.62.1': + resolution: {integrity: sha512-DTcUc8qii+cpHvtOwggMtBRMjKZHXYWdw8syRYu2vtzuq4Wxphqq4NfCs5Zt44L6mA8rfDfj+PHnxFc/FeK6mQ==} + engines: {node: '>=20'} + hasBin: true + + '@rolldown/pluginutils@1.0.0-beta.27': + resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==} + + '@rollup/rollup-android-arm-eabi@4.62.4': + resolution: {integrity: sha512-RrPokAb7dmbxFoeO3TloqHyOjgye8RkBhSqmp4aJMIex4c9r46ZstPnleDQOq1t46VOVjwIuwNogIqbodV1Vvg==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.62.4': + resolution: {integrity: sha512-JKuJc+pnpks2pjy7L/N3v/cAkZxYlnmuZoD840ldbMI5KDbC4iO9NKwPKYdjYFCMAIIlBzYSFHxIJVYzRo2/8A==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.62.4': + resolution: {integrity: sha512-krw5uS2STmvJ02x0uTXHbqQNuz+9eZ1iw+qXk9dmW2gvV4jV7O2hEoOnuhFrpOPiel1mBFtqbxYZZtC46hXLOw==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.62.4': + resolution: {integrity: sha512-wsTxtgApb4PrOsNJIm0FZ1h3WvCC+k9uxLJ4ad75hgoS4NiRes2SoJFlDAyMwiUY8IssDqGcHbXuN0sx1tfF1A==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.62.4': + resolution: {integrity: sha512-GUOnQlyZe3yAXhWOtOMsn5Qkrv5E5mZXa0thbARWi5Ei2szlVXJFQhddZ4HbAzh8q92w5twp+CQvs/eFanz9YQ==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.62.4': + resolution: {integrity: sha512-/Y7f3QuxjzPKsjA/rfEDa3+0vXqyjmJ50Ln8dPpCmWkKTrUoWHG1cWhTqaAMLob2m2nESWuC7yGrREz019Ztqg==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.62.4': + resolution: {integrity: sha512-81wiiX3v7aqy+T+bT61TJ78yJjRquqFFTTbAPt08imfQQzkPIW8t6aJbkTagtCCrXMNc9D66+geqlK7ydLPNqA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.62.4': + resolution: {integrity: sha512-9kmDIvNZqdoHOBZgNtpTBeLWYO/LVipM3H/j62P8848/l/VPEQL6N3uxU9pvP1oZAsXyC2MEnFP3ovRjo7WYNQ==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.62.4': + resolution: {integrity: sha512-CcnXHWnXg69g+DX5VWL3FHts3qMRN2uVEHX+BZvGLdd07/gXkn3ePjYtO1LDJvxkGKVHMclKBRa1QUTH+6toYQ==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.62.4': + resolution: {integrity: sha512-iFOibiHnTRuhrWLlRsOQFdZJJIa7S8OwkneJr4ocALP16u5yk6lWLINFwhHaEqBFMsKDUZofLkGos7+CPzGB3g==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loong64-gnu@4.62.4': + resolution: {integrity: sha512-XnWYMI7euHlb5a871xPja+Gm7DRCFU+FGRrtS2sMq9N8FvqtpagUy6gD4YOemC5MRk9xbh8+jYMEJbigFQwsgA==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-loong64-musl@4.62.4': + resolution: {integrity: sha512-qGDAlO0U8xedCcsdRm9oaoQY8DAx/QT7uIxJWhCdx0ceIWX783UC9QSYkdpzAe29wNiVfp24+bZdQmn49o45SQ==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-ppc64-gnu@4.62.4': + resolution: {integrity: sha512-ru4H6ezD7ysA5EiEK6qkkaEb4modH8CTej6kUy/gQi20u3kB3G7Zn8snXXkeJSCOFKG/rbPPtM/+9Wgas1961w==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-ppc64-musl@4.62.4': + resolution: {integrity: sha512-2W4MO5WQVJnbJaZdvDb9rhBDuFU1nKIepPFpJUBsTh2k1YY2g+ODViaWuyOAjQ5cOP7NvrvLzt3wvHOoiAvc7w==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.62.4': + resolution: {integrity: sha512-+fxjfuoAmVMCYV5QyjoIpu0cp5DOiOTeqYFk1AVaxGr+/ravWLX89XfQmptsoWcaVy/TGf2hexzbUOrCQIL1CQ==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-musl@4.62.4': + resolution: {integrity: sha512-jTn8JfHGL4djjFxPuM06LmNUJDsst2jeVlsd9OmIH6zc5sC9K6rIuO4YajXatLUpBmBKl6b35ro1QZocLi+tcA==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.62.4': + resolution: {integrity: sha512-oCJCJL4pXsoDcP2QZ+JVlPTIRc6266zsIaeJJsWImmF7HO0W8nb6HuSgZlMWxJwaPf8ehbSw8yo0EUw925hKsA==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.62.4': + resolution: {integrity: sha512-W69hukhZ3KKNRCaMIEzKvcFye42hh0FE1+YoYaf5+Ikacuftoco6yO/xouz0hc5d5W/s3yBro5jRiuEE/Q5vUw==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.62.4': + resolution: {integrity: sha512-qiXbGG2jkjXhzXpsFZSR2Xpb8DN/UaxYsbb/STbuR/6fpaDgRmmaq1B/LmtF2wQFOFOSsK2jdE0RZ3a0zHn4QA==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-openbsd-x64@4.62.4': + resolution: {integrity: sha512-nWeM//hxv8mIo6jD7Hu4o48DVmV9pbV6gsKaWU+4NFyqHoPKwrkRiZGLKUhOBk8qNmDmpwFtPKg80Bo/Tn4xiQ==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.62.4': + resolution: {integrity: sha512-s62SQ/vgsRSvMwDkOEfTqfgASF0f26ZNaQuTA6Aok5lrikf89yI2W0gFHvZb2Jpgc6N8JnOKZgCK2iciO3CsxQ==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.62.4': + resolution: {integrity: sha512-J6wGf8TVGbXJq+HH+ttTvrcfNKPbuZecV6KT1B8I18BC5IURUh5kl4Yl5OEP5eFIUoI5BWxCsyYMhFsDx8kekw==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.62.4': + resolution: {integrity: sha512-zmfrQd/0wu6oJs8Vq8KwY/YtsKSsLtKe/HwAP4Wqy8LhWjeT55fHRAkOhYQ12wI3ayS4Tt12d5CDRD7N96SAYQ==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.62.4': + resolution: {integrity: sha512-qPzHqdj9rfUD+w79dtE07zi/kFwKyCJqplp5K5ygeLTp7jLpAoc16OAH39HSmRC9UpozaecsleI8uAdEj6v2yw==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.62.4': + resolution: {integrity: sha512-zD6NdeWEByGE9QF9vCrlJ5YQB4oq9q91kPZS37Jwj5hOkvR1lTBSpsKhKDw4IJtbQ35LsTS1HD9DZYGKIshU1Q==} + cpu: [x64] + os: [win32] + + '@tauri-apps/api@2.11.1': + resolution: {integrity: sha512-M2FPuYND2m+wh5hfW9ZpSdxMPdEJovPBWwoHJmwUpysTYNHaOkVFN419m/K0LIgjb/7KU2vBgsUepJWugQCvAA==} + + '@tauri-apps/cli-darwin-arm64@2.11.4': + resolution: {integrity: sha512-1ryOF3ZhpZ/nemHV5zVwBQBz9jDGKmKPvWPADOhc83ig0P4bMc2iER4NbC6r9sjeIZ6RVQ4g3RZIYvezhcl4TQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@tauri-apps/cli-darwin-x64@2.11.4': + resolution: {integrity: sha512-uFsGQAAfuyz1k/yGLmkWfkBlgKAqZfxqlHmLWx81QU27RJWfmbNHCIq8T8w1e+VClleIuZUjpHWfoE4E3DLo3A==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@tauri-apps/cli-linux-arm-gnueabihf@2.11.4': + resolution: {integrity: sha512-IaHZn5CdBL21oUmjiVOS1ctw6Ip1O0pjp70FwOWmYz1myWe0SY96ZIj2FYf7pT0m8bI2h/hrs5ZbEXXh44/MkQ==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@tauri-apps/cli-linux-arm64-gnu@2.11.4': + resolution: {integrity: sha512-N41/ukTRVe6XSuUTESuFdGeOW2i7k62tK+6gHK5Kd5/q5RPvvi19GaWAVPPb9u95HSGmTChSolBfzynUsssFaA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tauri-apps/cli-linux-arm64-musl@2.11.4': + resolution: {integrity: sha512-v277UnT/fB64xAfSroL5N3Km3tLmvATWqJJw/wRI+g6o+HkeD0slyE7gOhNs1MbjE41R7bQOTxMVoL3aomUJmw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tauri-apps/cli-linux-riscv64-gnu@2.11.4': + resolution: {integrity: sha512-qqgNkQ2u1yZHxjhxsZaxUtRDW8dIqIYm33rx/mzwQv0SfY9x1B+iraj8vWeFiXjjSVVhEMepXSOts1TqPzvXNQ==} + engines: {node: '>= 10'} + cpu: [riscv64] + os: [linux] + + '@tauri-apps/cli-linux-x64-gnu@2.11.4': + resolution: {integrity: sha512-2VRNWl84FOH0m2giiDkO2h0QXlcMJeX+zJDpI5kDIQAx6s+geF3v48F4DXfJez4GS/FdoDGnPnw1C2iYGbQ7bQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tauri-apps/cli-linux-x64-musl@2.11.4': + resolution: {integrity: sha512-o9GyhYor/nc7xarmwDE3ka2szuW3uuZzXjHWh64Q8YX5AtSgxdQkFWzrY4O8KiGtVNvFBI14H3Q49Qj5TOIP/A==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tauri-apps/cli-win32-arm64-msvc@2.11.4': + resolution: {integrity: sha512-ld5Ehb598m0VkYyylRPNeCFsBe/km0jxis6KgMpl3IGY6I/i1RwQXO05I1AsXUXO2WC6AvB/Lw4qTf/asiuEiQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@tauri-apps/cli-win32-ia32-msvc@2.11.4': + resolution: {integrity: sha512-12Hxi0XX/H5VFxO/bGgHkFWhml9VMgEOu9CidjeCeTNQ1l6fpUlbiGgSP7CLI3PFtW9/FfbeHieZ+kyWK5H7CA==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@tauri-apps/cli-win32-x64-msvc@2.11.4': + resolution: {integrity: sha512-+vDiqBIU5dMISg/wNvX3sF+ZHfgJGJ5T0AcO+EHNXV9GGAG+P5fzodlDXD3QdKCRgZxMoCm5PPvj3BqLNjBthw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@tauri-apps/cli@2.11.4': + resolution: {integrity: sha512-R8xGtMpwyetawSqm9kYOuMmEqkhUbvcUy8n0aNXIxollKBLESUu5f4Fx+64hgASYm1H+jSWq6jCW6zqTnH6hqQ==} + engines: {node: '>= 10'} + hasBin: true + + '@tauri-apps/plugin-opener@2.5.4': + resolution: {integrity: sha512-1HnPkb+AmgO29HBazm4uPLKB+r7zzcTBW1d0fyYp1uP+jwtpoiNDGKMMzz58SFp49nOIrxdE3aUJtT57lfO9CQ==} + + '@tauri-apps/plugin-process@2.3.1': + resolution: {integrity: sha512-nCa4fGVaDL/B9ai03VyPOjfAHRHSBz5v6F/ObsB73r/dA3MHHhZtldaDMIc0V/pnUw9ehzr2iEG+XkSEyC0JJA==} + + '@tauri-apps/plugin-updater@2.10.1': + resolution: {integrity: sha512-NFYMg+tWOZPJdzE/PpFj2qfqwAWwNS3kXrb1tm1gnBJ9mYzZ4WDRrwy8udzWoAnfGCHLuePNLY1WVCNHnh3eRA==} + + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.27.0': + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + + '@types/babel__traverse@7.28.0': + resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} + + '@types/chai@5.2.3': + resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} + + '@types/deep-eql@4.0.2': + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + + '@types/estree@1.0.9': + resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} + + '@types/react-dom@19.2.4': + resolution: {integrity: sha512-Bsc+QHgp+P/F02XDzNCY9jnZNCUuLki36KT7VKrTXXLdHf+vHMNZnW1rVu5DNW/rCK+fya3DATySbLM4yhtKUw==} + peerDependencies: + '@types/react': ^19.2.0 + + '@types/react@19.2.18': + resolution: {integrity: sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==} + + '@vitejs/plugin-react@4.7.0': + resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 + + '@vitest/expect@3.2.7': + resolution: {integrity: sha512-E8eBXaKibuvH2pSZErOjdVb5vF4PbKYcrnluBTYxEk1l/VhhwZg1kZQsdtjq+CsF5CFydf2Rdkz7jDHKSisi3w==} + + '@vitest/mocker@3.2.7': + resolution: {integrity: sha512-Trr0hYO9CM3Wj6ksWHRhK9IZpIY6wTMO5u/MqXurMxT57sWBaOPEtP3Oq60ihZuh5JsiagKfz95OcxdEP6dBrA==} + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/pretty-format@3.2.7': + resolution: {integrity: sha512-KUHlwqVu0sRlhCdyPdQ/wBoTfRahjUky1MubOmYw9fWfIZy1gNoHpuaaQBPAaMaVYdQYHJLurzj8ECCj5OwTqA==} + + '@vitest/runner@3.2.7': + resolution: {integrity: sha512-sB9y4ovltoQP+WaUPwmSxO9WIg9Ig694Di5PalVPsYHklAdE027mehpWF2SQSVq+k6sFgaivbTjTJwZLSHbedA==} + + '@vitest/snapshot@3.2.7': + resolution: {integrity: sha512-7C+MwShwtBSI5Buwoyg3s/iY1eHL9PKAf+O1wVh/TdnjXUtkoL/9YQtre90i4MtNXM6edP1wJ2zOBpfCyhIS7g==} + + '@vitest/spy@3.2.7': + resolution: {integrity: sha512-Q2eQGI6d2L/hBtZ0qNuKcAGid68XK6cv1xsoaIma6PaJhHPoqcEJhYpXZ/5myCMqkNgtP6UKuBhbc0nHKnrkuQ==} + + '@vitest/utils@3.2.7': + resolution: {integrity: sha512-x6BDOd7dyo3PFLY3I9/HJ25X/6OurhGXk2/B9gOZNPF7XDVjeBK4k01lQE5uvDpbuheErh91qYuE1E2OEjK3Rw==} + + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + + baseline-browser-mapping@2.11.13: + resolution: {integrity: sha512-k9HNuUVMlqVjQ9UHzfPjIqiDbWw7WqT1AoT7GL8VwvF3r0ZfArtgiSPAlmupyNquNgOJHTuH4CKYf8ttMTWBTQ==} + engines: {node: '>=6.0.0'} + hasBin: true + + browserslist@4.28.8: + resolution: {integrity: sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + + caniuse-lite@1.0.30001809: + resolution: {integrity: sha512-xxWVywk6a6Arlk+hymeycyn/VgqEfLDxupvhH/xiY5SJ/18kmi9o6MiO320DCUzypORHLtvh0I4i04tUhCNHNQ==} + + chai@5.3.3: + resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} + engines: {node: '>=18'} + + check-error@2.1.3: + resolution: {integrity: sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==} + engines: {node: '>= 16'} + + chrono-node@2.10.1: + resolution: {integrity: sha512-tPOsBzYVAK5zth+CiHCgp5NGeqRc4mMD8FPthQ5IxkgjPWWxIFdM5odnmfw//IRAzl6C++Xy8olQW7wn5qBR1g==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + engines: {node: '>=6'} + + electron-to-chromium@1.5.403: + resolution: {integrity: sha512-MQsYmdaLzvaCX5j+ZZBr5Fm6uCCnPQcRtlvmvRlWqrXy+BH2O4ffXIAScF+JQznQWB9brWp4lSD9Z4yNmaf2BA==} + + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + + esbuild@0.28.2: + resolution: {integrity: sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + expect-type@1.4.0: + resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==} + engines: {node: '>=12.0.0'} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + 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'} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-tokens@9.0.1: + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + + 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 + + loupe@3.2.1: + resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nanoid@3.3.18: + resolution: {integrity: sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + node-releases@2.0.53: + resolution: {integrity: sha512-D9UOmYG3UH1V+ENW56t5QXBwJw1YEY18ruVeus89Rw+SyIgjPkCO84bRzO3uNIYosJbNwiabWVn48o3uJLjxFQ==} + engines: {node: '>=18'} + + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + pathval@2.0.1: + resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} + engines: {node: '>= 14.16'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@4.0.5: + resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} + engines: {node: '>=12'} + + playwright-core@1.62.1: + resolution: {integrity: sha512-wPYSwEBJY9GHraISXqyqtx0na0LpO3XEX7jNDhntbex7tzUS7kLnZsOlFruFJB4Hi/rhDMjXGqHewDZ68nYZVw==} + engines: {node: '>=20'} + hasBin: true + + playwright@1.62.1: + resolution: {integrity: sha512-0M+L3LAD8/nm554LOla9Ayx0j0tmFZ0FBcoQ7F1VuVHpM/XpiC8RcDzBQB8W5+hA8L22THxELzeF+2WcUzvcLg==} + engines: {node: '>=20'} + hasBin: true + + postcss@8.5.26: + resolution: {integrity: sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==} + engines: {node: ^10 || ^12 || >=14} + + react-dom@19.2.8: + resolution: {integrity: sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==} + peerDependencies: + react: ^19.2.8 + + react-refresh@0.17.0: + resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} + engines: {node: '>=0.10.0'} + + react@19.2.8: + resolution: {integrity: sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==} + engines: {node: '>=0.10.0'} + + rollup@4.62.4: + resolution: {integrity: sha512-RXOqwaPsBGjMNMa4sQjDjHieHEZDFoj/Rdr46l2MU5DfEs16wHJPC2RPTPHWhNl+M3aI472LLqFkFKut4SblOg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + scheduler@0.27.0: + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + + std-env@3.10.0: + resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} + + strip-literal@3.1.0: + resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} + + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + + tinyglobby@0.2.17: + resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} + engines: {node: '>=12.0.0'} + + tinypool@1.1.1: + resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@2.0.0: + resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} + engines: {node: '>=14.0.0'} + + tinyspy@4.0.4: + resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} + engines: {node: '>=14.0.0'} + + typescript@5.8.3: + resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} + engines: {node: '>=14.17'} + hasBin: true + + update-browserslist-db@1.3.0: + resolution: {integrity: sha512-x/M6q3w4Ybp91CNaS4S69UnliqR3BzRpOT6LWbksjth0S/+jhfaPJsWjt/TewpT8j9eLIojUf5jr29WextHroA==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + vite-node@3.2.4: + resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + + vite@7.3.6: + resolution: {integrity: sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + 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 + + vitest@3.2.7: + resolution: {integrity: sha512-KrxIJ62Fd89gfysR4WotlgZABiz2dqFPgqGzX7s+CwsqLFomRH7777ZcrOD6+WVAh7khPQP41A+BKbpcJFrdEg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/debug': ^4.1.12 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + '@vitest/browser': 3.2.7 + '@vitest/ui': 3.2.7 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/debug': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + zustand@5.0.14: + resolution: {integrity: sha512-/8tAspM5LMPr28b3fwLYrtdj77ECpfZviaP75CMTnwO8ISyaE4GDIG/9rDDYq/cH9D2Xw2A2RXglLInmVBQB/g==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=18.0.0' + immer: '>=9.0.6' + react: '>=18.0.0' + use-sync-external-store: '>=1.2.0' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + use-sync-external-store: + optional: true + +snapshots: + + '@babel/code-frame@7.29.7': + dependencies: + '@babel/helper-validator-identifier': 7.29.7 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.29.7': {} + + '@babel/core@7.29.7': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.8 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helpers': 7.29.7 + '@babel/parser': 7.29.8 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.8 + '@babel/types': 7.29.8 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.29.8': + dependencies: + '@babel/parser': 7.29.8 + '@babel/types': 7.29.8 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/helper-compilation-targets@7.29.7': + dependencies: + '@babel/compat-data': 7.29.7 + '@babel/helper-validator-option': 7.29.7 + browserslist: 4.28.8 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-globals@7.29.7': {} + + '@babel/helper-module-imports@7.29.7': + dependencies: + '@babel/traverse': 7.29.8 + '@babel/types': 7.29.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-plugin-utils@7.29.7': {} + + '@babel/helper-string-parser@7.29.7': {} + + '@babel/helper-validator-identifier@7.29.7': {} + + '@babel/helper-validator-option@7.29.7': {} + + '@babel/helpers@7.29.7': + dependencies: + '@babel/template': 7.29.7 + '@babel/types': 7.29.8 + + '@babel/parser@7.29.8': + dependencies: + '@babel/types': 7.29.8 + + '@babel/plugin-transform-react-jsx-self@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-react-jsx-source@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/template@7.29.7': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/parser': 7.29.8 + '@babel/types': 7.29.8 + + '@babel/traverse@7.29.8': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.8 + '@babel/helper-globals': 7.29.7 + '@babel/parser': 7.29.8 + '@babel/template': 7.29.7 + '@babel/types': 7.29.8 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.29.8': + dependencies: + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + + '@esbuild/aix-ppc64@0.28.2': + optional: true + + '@esbuild/android-arm64@0.28.2': + optional: true + + '@esbuild/android-arm@0.28.2': + optional: true + + '@esbuild/android-x64@0.28.2': + optional: true + + '@esbuild/darwin-arm64@0.28.2': + optional: true + + '@esbuild/darwin-x64@0.28.2': + optional: true + + '@esbuild/freebsd-arm64@0.28.2': + optional: true + + '@esbuild/freebsd-x64@0.28.2': + optional: true + + '@esbuild/linux-arm64@0.28.2': + optional: true + + '@esbuild/linux-arm@0.28.2': + optional: true + + '@esbuild/linux-ia32@0.28.2': + optional: true + + '@esbuild/linux-loong64@0.28.2': + optional: true + + '@esbuild/linux-mips64el@0.28.2': + optional: true + + '@esbuild/linux-ppc64@0.28.2': + optional: true + + '@esbuild/linux-riscv64@0.28.2': + optional: true + + '@esbuild/linux-s390x@0.28.2': + optional: true + + '@esbuild/linux-x64@0.28.2': + optional: true + + '@esbuild/netbsd-arm64@0.28.2': + optional: true + + '@esbuild/netbsd-x64@0.28.2': + optional: true + + '@esbuild/openbsd-arm64@0.28.2': + optional: true + + '@esbuild/openbsd-x64@0.28.2': + optional: true + + '@esbuild/openharmony-arm64@0.28.2': + optional: true + + '@esbuild/sunos-x64@0.28.2': + optional: true + + '@esbuild/win32-arm64@0.28.2': + optional: true + + '@esbuild/win32-ia32@0.28.2': + optional: true + + '@esbuild/win32-x64@0.28.2': + optional: true + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@napi-rs/lzma-linux-x64-gnu@1.5.1': + optional: true + + '@playwright/test@1.62.1': + dependencies: + playwright: 1.62.1 + + '@rolldown/pluginutils@1.0.0-beta.27': {} + + '@rollup/rollup-android-arm-eabi@4.62.4': + optional: true + + '@rollup/rollup-android-arm64@4.62.4': + optional: true + + '@rollup/rollup-darwin-arm64@4.62.4': + optional: true + + '@rollup/rollup-darwin-x64@4.62.4': + optional: true + + '@rollup/rollup-freebsd-arm64@4.62.4': + optional: true + + '@rollup/rollup-freebsd-x64@4.62.4': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.62.4': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.62.4': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.62.4': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.62.4': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.62.4': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.62.4': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.62.4': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.62.4': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.62.4': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.62.4': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.62.4': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.62.4': + optional: true + + '@rollup/rollup-linux-x64-musl@4.62.4': + optional: true + + '@rollup/rollup-openbsd-x64@4.62.4': + optional: true + + '@rollup/rollup-openharmony-arm64@4.62.4': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.62.4': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.62.4': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.62.4': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.62.4': + optional: true + + '@tauri-apps/api@2.11.1': {} + + '@tauri-apps/cli-darwin-arm64@2.11.4': + optional: true + + '@tauri-apps/cli-darwin-x64@2.11.4': + optional: true + + '@tauri-apps/cli-linux-arm-gnueabihf@2.11.4': + optional: true + + '@tauri-apps/cli-linux-arm64-gnu@2.11.4': + optional: true + + '@tauri-apps/cli-linux-arm64-musl@2.11.4': + optional: true + + '@tauri-apps/cli-linux-riscv64-gnu@2.11.4': + optional: true + + '@tauri-apps/cli-linux-x64-gnu@2.11.4': + optional: true + + '@tauri-apps/cli-linux-x64-musl@2.11.4': + optional: true + + '@tauri-apps/cli-win32-arm64-msvc@2.11.4': + optional: true + + '@tauri-apps/cli-win32-ia32-msvc@2.11.4': + optional: true + + '@tauri-apps/cli-win32-x64-msvc@2.11.4': + optional: true + + '@tauri-apps/cli@2.11.4': + optionalDependencies: + '@tauri-apps/cli-darwin-arm64': 2.11.4 + '@tauri-apps/cli-darwin-x64': 2.11.4 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.11.4 + '@tauri-apps/cli-linux-arm64-gnu': 2.11.4 + '@tauri-apps/cli-linux-arm64-musl': 2.11.4 + '@tauri-apps/cli-linux-riscv64-gnu': 2.11.4 + '@tauri-apps/cli-linux-x64-gnu': 2.11.4 + '@tauri-apps/cli-linux-x64-musl': 2.11.4 + '@tauri-apps/cli-win32-arm64-msvc': 2.11.4 + '@tauri-apps/cli-win32-ia32-msvc': 2.11.4 + '@tauri-apps/cli-win32-x64-msvc': 2.11.4 + + '@tauri-apps/plugin-opener@2.5.4': + dependencies: + '@tauri-apps/api': 2.11.1 + + '@tauri-apps/plugin-process@2.3.1': + dependencies: + '@tauri-apps/api': 2.11.1 + + '@tauri-apps/plugin-updater@2.10.1': + dependencies: + '@tauri-apps/api': 2.11.1 + + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.29.8 + '@babel/types': 7.29.8 + '@types/babel__generator': 7.27.0 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.28.0 + + '@types/babel__generator@7.27.0': + dependencies: + '@babel/types': 7.29.8 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.29.8 + '@babel/types': 7.29.8 + + '@types/babel__traverse@7.28.0': + dependencies: + '@babel/types': 7.29.8 + + '@types/chai@5.2.3': + dependencies: + '@types/deep-eql': 4.0.2 + assertion-error: 2.0.1 + + '@types/deep-eql@4.0.2': {} + + '@types/estree@1.0.9': {} + + '@types/react-dom@19.2.4(@types/react@19.2.18)': + dependencies: + '@types/react': 19.2.18 + + '@types/react@19.2.18': + dependencies: + csstype: 3.2.3 + + '@vitejs/plugin-react@4.7.0(vite@7.3.6)': + dependencies: + '@babel/core': 7.29.7 + '@babel/plugin-transform-react-jsx-self': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-react-jsx-source': 7.29.7(@babel/core@7.29.7) + '@rolldown/pluginutils': 1.0.0-beta.27 + '@types/babel__core': 7.20.5 + react-refresh: 0.17.0 + vite: 7.3.6 + transitivePeerDependencies: + - supports-color + + '@vitest/expect@3.2.7': + dependencies: + '@types/chai': 5.2.3 + '@vitest/spy': 3.2.7 + '@vitest/utils': 3.2.7 + chai: 5.3.3 + tinyrainbow: 2.0.0 + + '@vitest/mocker@3.2.7(vite@7.3.6)': + dependencies: + '@vitest/spy': 3.2.7 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 7.3.6 + + '@vitest/pretty-format@3.2.7': + dependencies: + tinyrainbow: 2.0.0 + + '@vitest/runner@3.2.7': + dependencies: + '@vitest/utils': 3.2.7 + pathe: 2.0.3 + strip-literal: 3.1.0 + + '@vitest/snapshot@3.2.7': + dependencies: + '@vitest/pretty-format': 3.2.7 + magic-string: 0.30.21 + pathe: 2.0.3 + + '@vitest/spy@3.2.7': + dependencies: + tinyspy: 4.0.4 + + '@vitest/utils@3.2.7': + dependencies: + '@vitest/pretty-format': 3.2.7 + loupe: 3.2.1 + tinyrainbow: 2.0.0 + + assertion-error@2.0.1: {} + + baseline-browser-mapping@2.11.13: {} + + browserslist@4.28.8: + dependencies: + baseline-browser-mapping: 2.11.13 + caniuse-lite: 1.0.30001809 + electron-to-chromium: 1.5.403 + node-releases: 2.0.53 + update-browserslist-db: 1.3.0(browserslist@4.28.8) + + cac@6.7.14: {} + + caniuse-lite@1.0.30001809: {} + + chai@5.3.3: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.3 + deep-eql: 5.0.2 + loupe: 3.2.1 + pathval: 2.0.1 + + check-error@2.1.3: {} + + chrono-node@2.10.1: {} + + convert-source-map@2.0.0: {} + + csstype@3.2.3: {} + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + deep-eql@5.0.2: {} + + electron-to-chromium@1.5.403: {} + + es-module-lexer@1.7.0: {} + + esbuild@0.28.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.28.2 + '@esbuild/android-arm': 0.28.2 + '@esbuild/android-arm64': 0.28.2 + '@esbuild/android-x64': 0.28.2 + '@esbuild/darwin-arm64': 0.28.2 + '@esbuild/darwin-x64': 0.28.2 + '@esbuild/freebsd-arm64': 0.28.2 + '@esbuild/freebsd-x64': 0.28.2 + '@esbuild/linux-arm': 0.28.2 + '@esbuild/linux-arm64': 0.28.2 + '@esbuild/linux-ia32': 0.28.2 + '@esbuild/linux-loong64': 0.28.2 + '@esbuild/linux-mips64el': 0.28.2 + '@esbuild/linux-ppc64': 0.28.2 + '@esbuild/linux-riscv64': 0.28.2 + '@esbuild/linux-s390x': 0.28.2 + '@esbuild/linux-x64': 0.28.2 + '@esbuild/netbsd-arm64': 0.28.2 + '@esbuild/netbsd-x64': 0.28.2 + '@esbuild/openbsd-arm64': 0.28.2 + '@esbuild/openbsd-x64': 0.28.2 + '@esbuild/openharmony-arm64': 0.28.2 + '@esbuild/sunos-x64': 0.28.2 + '@esbuild/win32-arm64': 0.28.2 + '@esbuild/win32-ia32': 0.28.2 + '@esbuild/win32-x64': 0.28.2 + + escalade@3.2.0: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.9 + + expect-type@1.4.0: {} + + fdir@6.5.0(picomatch@4.0.5): + optionalDependencies: + picomatch: 4.0.5 + + fsevents@2.3.2: + optional: true + + fsevents@2.3.3: + optional: true + + gensync@1.0.0-beta.2: {} + + js-tokens@4.0.0: {} + + js-tokens@9.0.1: {} + + jsesc@3.1.0: {} + + json5@2.2.3: {} + + loupe@3.2.1: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + ms@2.1.3: {} + + nanoid@3.3.18: {} + + node-releases@2.0.53: {} + + pathe@2.0.3: {} + + pathval@2.0.1: {} + + picocolors@1.1.1: {} + + picomatch@4.0.5: {} + + playwright-core@1.62.1: {} + + playwright@1.62.1: + dependencies: + playwright-core: 1.62.1 + optionalDependencies: + fsevents: 2.3.2 + + postcss@8.5.26: + dependencies: + nanoid: 3.3.18 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + react-dom@19.2.8(react@19.2.8): + dependencies: + react: 19.2.8 + scheduler: 0.27.0 + + react-refresh@0.17.0: {} + + react@19.2.8: {} + + rollup@4.62.4: + dependencies: + '@types/estree': 1.0.9 + optionalDependencies: + '@napi-rs/lzma-linux-x64-gnu': 1.5.1 + '@rollup/rollup-android-arm-eabi': 4.62.4 + '@rollup/rollup-android-arm64': 4.62.4 + '@rollup/rollup-darwin-arm64': 4.62.4 + '@rollup/rollup-darwin-x64': 4.62.4 + '@rollup/rollup-freebsd-arm64': 4.62.4 + '@rollup/rollup-freebsd-x64': 4.62.4 + '@rollup/rollup-linux-arm-gnueabihf': 4.62.4 + '@rollup/rollup-linux-arm-musleabihf': 4.62.4 + '@rollup/rollup-linux-arm64-gnu': 4.62.4 + '@rollup/rollup-linux-arm64-musl': 4.62.4 + '@rollup/rollup-linux-loong64-gnu': 4.62.4 + '@rollup/rollup-linux-loong64-musl': 4.62.4 + '@rollup/rollup-linux-ppc64-gnu': 4.62.4 + '@rollup/rollup-linux-ppc64-musl': 4.62.4 + '@rollup/rollup-linux-riscv64-gnu': 4.62.4 + '@rollup/rollup-linux-riscv64-musl': 4.62.4 + '@rollup/rollup-linux-s390x-gnu': 4.62.4 + '@rollup/rollup-linux-x64-gnu': 4.62.4 + '@rollup/rollup-linux-x64-musl': 4.62.4 + '@rollup/rollup-openbsd-x64': 4.62.4 + '@rollup/rollup-openharmony-arm64': 4.62.4 + '@rollup/rollup-win32-arm64-msvc': 4.62.4 + '@rollup/rollup-win32-ia32-msvc': 4.62.4 + '@rollup/rollup-win32-x64-gnu': 4.62.4 + '@rollup/rollup-win32-x64-msvc': 4.62.4 + fsevents: 2.3.3 + + scheduler@0.27.0: {} + + semver@6.3.1: {} + + siginfo@2.0.0: {} + + source-map-js@1.2.1: {} + + stackback@0.0.2: {} + + std-env@3.10.0: {} + + strip-literal@3.1.0: + dependencies: + js-tokens: 9.0.1 + + tinybench@2.9.0: {} + + tinyexec@0.3.2: {} + + tinyglobby@0.2.17: + dependencies: + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 + + tinypool@1.1.1: {} + + tinyrainbow@2.0.0: {} + + tinyspy@4.0.4: {} + + typescript@5.8.3: {} + + update-browserslist-db@1.3.0(browserslist@4.28.8): + dependencies: + browserslist: 4.28.8 + escalade: 3.2.0 + picocolors: 1.1.1 + + vite-node@3.2.4: + dependencies: + cac: 6.7.14 + debug: 4.4.3 + es-module-lexer: 1.7.0 + pathe: 2.0.3 + vite: 7.3.6 + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vite@7.3.6: + dependencies: + esbuild: 0.28.2 + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 + postcss: 8.5.26 + rollup: 4.62.4 + tinyglobby: 0.2.17 + optionalDependencies: + fsevents: 2.3.3 + + vitest@3.2.7: + dependencies: + '@types/chai': 5.2.3 + '@vitest/expect': 3.2.7 + '@vitest/mocker': 3.2.7(vite@7.3.6) + '@vitest/pretty-format': 3.2.7 + '@vitest/runner': 3.2.7 + '@vitest/snapshot': 3.2.7 + '@vitest/spy': 3.2.7 + '@vitest/utils': 3.2.7 + chai: 5.3.3 + debug: 4.4.3 + expect-type: 1.4.0 + magic-string: 0.30.21 + pathe: 2.0.3 + picomatch: 4.0.5 + std-env: 3.10.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.17 + tinypool: 1.1.1 + tinyrainbow: 2.0.0 + vite: 7.3.6 + vite-node: 3.2.4 + why-is-node-running: 2.3.0 + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + + yallist@3.1.1: {} + + zustand@5.0.14(@types/react@19.2.18)(react@19.2.8): + optionalDependencies: + '@types/react': 19.2.18 + react: 19.2.8 diff --git a/public/fonts/HankenGrotesk-Italic-VF.ttf b/public/fonts/HankenGrotesk-Italic-VF.ttf new file mode 100644 index 0000000000000000000000000000000000000000..eb28513b0980b0990d838166dd63e26363455331 GIT binary patch literal 134740 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�jt>~M*e~7`8(QYrcOSmBBL6F~ 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 NGn^xQih2gm{|`V%a;*RW literal 0 HcmV?d00001 diff --git a/public/fonts/HankenGrotesk-VF.ttf b/public/fonts/HankenGrotesk-VF.ttf new file mode 100644 index 0000000000000000000000000000000000000000..65a8f7bdb1e788d5ce71c6385fe68ff6c5a8ff01 GIT binary patch literal 132248 zcmce<31C~r@jt%%WJ|tnS(YVBwodDoEZdSSS(fEPK4T}29Xrl_IwuK9NCM$bfB+#t z0tqdIPzXo33rPzlP$+jPgaU=q7ASXta+LdM!SesJ`y^QohPMCj_xp3QI_AyJ&d$!v z&d%<8B9suKz)J?H?rdxCcsTU_?S$NOl#nc6=k&fAS6ePRM94!x+Cn;K47I*{^Tut2 z*5iB5OIzm=NJ?Wh3azf}mKv*jutXRBpJ>H9e`Y7JBR;)RB`8OAC$sk1i z9U-AVwmdb9HJeG|S{u3Wom%PEFa9w9^k z{oJB8>y|FwSTyiFI*fKQFIc;H%X;BY{3?DL~PRqNMn+?2b0 z#}kAc7$HQpaQz9()~}RaxE=LZ0$)a$>?D$(d^t1dTv!fWfn=^z*i{|7!-e~CwVXa9C(P0^^Z=)bzV=r$X6F-h`_{xBX>{Gd(AzaXD-QuBXVBuhyRD;S3^L5lauN)O=2k!Il|j`zRH5A7p4 zfmW8T$))6Lut)w-VQIee4;04$?;%?%3b)nToKnck!Mq zFAF80%L?ezY|=r#B^`5;>kLP@pJefOk)JNXGWG@kKA)@*S|FGI2SsuN zmw%VAk*vgc)zF`Ucd^*;-b`O4`pF7>Nf(_%a_D-Zq<7$bidevZ>;G!WhW>sCKXz=% zB3gl6`!|LDnOM>b86){z#=YqG50xC~&JUGiZHMW0It+RT{b+z*yePi2&s<;LrPE-u zY^>AAHC<_QHT&yWU5kQlkl+eo!gO#&!u zQM@P`lp>T$6gf&ciWS8o^pSSDojBo#!oo^YFC0%i!eSB;21ut61I`lCgwJ(!gxF|4 zDW&s?k)A*dh;GX0T4JKhpck_N-#{wyS;z5={~nKQ80!~4CZ)oYq*S7XKa${m5bu4& zBvGJ#A#u`cNtj+m>gkolLo*N=u(B9)+b1Lor7&ZFsPW!`l6=n+_Ve!y)*)mN7aaso z)5uy@k6sKJ-bVuT+OZeugCs^bqWqfU$AHi1<_POajJ!;OKm~ z_??JtSlLh18786@4iN{v4DrgVqzr|Uj}gV9PyxIPB$FCQEj^oL(_cbXcY}tEm{Dx> zkBD!cCwcJS5|jeElT0V?k?9zdVH(EuI$}ouEP|ByQR*bCNu%&{5)>LSJ}snH(tt5K zfrQ{Y%#c$n+FH!ZHhjN`I5XyBPN*glln%`8EqG_+U5_F~QJ@r{l%mw47*HgL<#c#= zpv*<-Mq%{^P=-)!C~6dTU4_Ex#8BE$DiB}jgy+E*(}9;Th8ZL(T!cDNw7ZN{3G<+P zOvg`vUVcD)89Bt486!T_ZDHfc``SdDkYvq|7R(a_g+7Av&cDI^ceMT=UZ-b**T=zg zC5jW}C6wKXaw*=cP_9SWfZ{^Yqg;+U&tMKk%m+Q}gj`tkEvZH7aJ zUmET)+;1#3nv7QC0^@Gur6$27H5HnQO-hr-q%*lpU8Y5*WtJzu6~@NEp@CGBFu5kd z*){YI`ZRrqzEA%psD;`DXO9bi7QU1ai8RHTRT7YF0%zx>ac0o9>9&HiYYYm5+E8vV z7%YZrLp|s0R&e%Y-Rk(`1z=JMm!id$K`RX0NLLgpAhn9iTD|xI^QI3{Njy^-?;gW zgSd9>8&|$j|Ay_2?$@t*{e#!vdwnAzuP;IAe0}!oeXqw}H@uGVedVz9af~fn4gQj^ zDe*!0O!$J2nN*U6F~dqy{KMyRiB4ioeowwjOvz7B7Y)O~JFp}#N?ww@DtUYSDqt_A ze-l4To&+3a{7>?r_*sw$1wwZX!36pOZVtJ%U$&cM*;g zoWfn?&*U@mIr%3UrA1Uu)l^HJw2IcyAPvzLI*%@(3+Yn2ny#Z~({tz!dI8-dc!VCI zN?0Xi2!%pFG=4ysEA$E-!Y_nQ`a5XaYQZWX<`Sj|D+D4?;cj7*&@L1U5706Cq!6P2 zq~Aa*60~r7~JcE2x1Q$-ih5ol0A2JDo#&ghg}~J&~@b z8|fyxlg@_^FCibm%3mT%@*$}pU%-OCCPwlN(UC7nC1Oeo`3`eg98B3(5gX~GIx-#W^B!7`x!+0#sfWy@URq6N(ONQx z`pInSBXenh%)>0S5HsIm=;0#TfO%;dZ6>GEnPer6kyGdp*-Gb zOpegK+ ziY%dxYw79aYI+L%!Y=X) zL^F3`2Kg1eR0s%lLJj=8AD(ooFilXvrIfQ@U-w3;cvpH!l)!$qLdgVZplK)M#&wL`y{`W zJTG}o@`2>*jDieJhBc!$BbqTKV<=;B#@dXNGqz{!&e)%EQ^qedev|QJ#s?W+XG$^+ zneNPn%+AainF}&kXKv2ilX+|AuQDIWd?xc{X{NMD8kMe>o+dqCx>tIQ^fu|QrB6s- zkiIVcQ2LE5Lsld!m$_vTS+8uKY>jM->>Sx{*_Egg6y*F%4~1;rtIz6yR-La-<17}>=&|M&;B6$>l{f=VU9M(mgCE5%IV8ln6obD z%$$pJ_T?PRIh^xA&hK(w&G|N0maE9s=elw`a_8l)%-xuKX70}1pXOeddq?iQxzFdm zmis~O*Lgx-L0(0kJ1>;imNz|bVcv0hC*_@;w=3_;yn}g%^B&0iecnrX@8o@zFXR{G z>++rXb@{FN)AHx!Uz2}Z{;%>M&VMfdmHc<}Kg%C2$SP12mGaZtrRz%1DBV%IxAdCQTTAaPeXR63Ri3I#b&l#5)m^FwRZpo4)Ec!#U9E0V zcc>4jA5(v<{nY<$KGoF8_J?{pC-Tzfk^q`N!q|s*qL`S5#EkD|{6# z6@3+RDwbEAP_eDz!ixPBH&*#xVY0Eo?i__K@uv+iSLuZDaOAyWZ}#H`xd6 z+w70nU*rGYwSR2?+CJvUai|?mN7OOsSm8L;al7Mn$A^w@oTbio=b&?m^LXc(&dZ$l zIsf7+aJgLFuI;XeT~E2*b?3R&ZiCz74!b+uGu)fpd)>ct$32A}y~pEe_000D^_=S2 z;knLppXVvhOP-HB|EjW8d8&k?=9cA{tCa#-{kM{kN8jX@ABX5|F!>F|K9@{0bO84 z;G)1)fkSnqZm90`x_j!Lu6rv;gNk4%cz*C7p;PN?>lf5-sozt7NB!^XKMGfbXNK2? z&k5fWemVSJ_>+dLhCoAS!;FSS4Qm^=HeA$jRm1HKk2QQ6DUFyT&5;?AMUl;sZIO#3 zcSl~1ychYhkv0}K>Kp4Cr#7C^c(Cz-#=kax7Y#(0Mt4Q;jy@87F8Y_~Sd+5J)#Phx zYU*v8-L$6Zw5AK2u5Ws_>8oZ*b4_!7^TOuM%{!X+!xIb0;}QB4)&mmEE5s)^$}L8@ zv6fyDKbOvp-#}lATMcv{@UW+WsOSi0pd8>)A2mxP!Jtnir#T%oXVKB8ecJCTgd?M! zLc{1|*Z1`iM7O+-WIN(7wpx%07h={tnu4!Lz@@^$6UVV%PeE@Ip<@HWagrpiO}GNH z9(EFbpw5kHl-@{Dx+M+z#}xGDH0U^wyU9suJYJH*K5)`Fk1wX6*NIThV-h#XqfFQ} zf!27fYtv}Gnxb{Xq|ocrpyOQbz?{h?$y&y!BqhwHlalZ_{!X$ctykx!@Gm1Tq``Yr z@V(^R1bx47b{hTtEZdNxKP!cQE8^!(DfpoT+$L~18+oieze!y`E^%Ed+_r}4AoN7i zk5&p1`#`sh%G5u(nJJkPN+#6BFQLux2kE+aDD;}E{2k#)-`msQ?Gx6F?!CUhU!*PR z=h{{#Y8$eGN1@k!Xu=BW1&E~eOvin-rOFbitdzZ)ZNA!o-)c4oe6@A_L*HvlH&i(r zn>HVJ^%c8X8g9F+wz0M0JmJW^0spiT`JDCzEBd$8H}y66YC|v`Qj2Wq6~bePkx8b> zY7O}7>Ofy5vs%q2sZ?1~S_;BJl~hVMExM$?|B^+k_L&AWYo>OtuCHI+IdzR@z_c%K z&UI_nTsvpwJbhbF+o?lCr?vIQbaPjuPnYuXSx2EoSo~ts5qVUY`aX z=W+)*F^$V{_yuU0`GP*i5tq5xE6&j*z1>Ncq|rGy!HZ0|j69hJXTCtBvzMHfpzjwN z)9CNV8fjcU%%;UY-L?b+$2IF-;c@7jAz>N55@rg_#!OO~jhhLxKq(CvmGs1sOZsM= zwtmB@r=2iut+wBC+1h27_Vry7-!8Q0&AM*=_De6_zWw6%DTak3!w1%{zjhY2wY4R5 zL=B#@({x1MM}HUJ#e4xP^27v#~d+ETK`uT=zxzF0wO8o!kg~jkA;jmg4;~sm}Sf@0Qq@}OQ~>08Ef?=VBeUAy>sklj@=6Q-zCg?#8xlE zEXH{M0Blh&Rn^B#Vk9|R32W~OfR$GwI zApyBDV3ad^A&XCw4QEb?cDBSnq-z2rc_*&O?(JGIiyq$>kM?hhqA#2R=XwBqGJp6N z&V>kPvJ&CDm@i1okt@(5ivrA17(t^XNcYmYCyu^9i_ZS2l@`Cco*st~55r1N zYK-^tvGpU9#dKtdx3mxWG}Z_B2KpM{nW8QjmC&&eD*l8=hWsk$Z#cmpA9-HuZB9*u zUrddnri}SHH7l}rOe6MnG3x>qxI(&B`&gvWU3yi)MnMpQY`v~&FlhC;U znGwv-W8Yx^O5_Kz4s0#Oku1QcXn(-RTr2onA_sq07vEvD7R@qG1)GlujbO8B^r1T% z%B&^1`Po`~85n@G9D0{;lK>WG0~ECf-d^4Hgq3i;0-gSysxOTM99@<*SIn> z(cUcHvOac4W=1$8qgtOYm$5bz?ML0cRf##`2x6x~7MG>@Wj-y~lCef2j7r8&OD^pn zxO8#%s&IH!HxHun=3KjG?X`2}T)P%A)L`3bgNUDEr_CHXEyjAqJn9iX63fMrKqShn zU4%2wEW!`M(@uuJo7|p;&n!p8KLGeRKAY!7_;o4x0NPFBBR)V*l#T2U)w?!TkMYYQ z1d-kiKLEde0-QwyBK{6?cY&gFtC z)$c#2fPSHvALn{2-lY*vtZ)MO4eP?6Hyt>#1=ZWb%);ULE zTLphI&>eko;fkSCnp;jkbns>|=Is|$p_3La z+#F!B7V|3bTUeR1^;0rhH_P!Uv8H);!%17#pS-@Szi-NV;mFA1#Vg`3&{GpyS##?z1Ayt%u7plh>mWa)}|3syfxOPZq1&6qW6 z$NnHZ4=J$~oca5!1Qj%G#q#X*<+URV3!Np?Y1LhG9*nPDSJh^-wR_eHN4&EdhnHp3_;WOz z8^4d9uJ*g!K2^dehWR+3BYF?)h%zl=5>JQkCbL91{5a#tik&4sPi7Ok{*dc(uj{sqz2<@yd)tIHJ7Rkl?( z&Z-G7&pm#wvZGrUG+U}Gi%b38fxv(_(%^EqG*vo-$5gDU>j^f@3xI3R2k#B`4w=4^ z-*K*wh3`gmzAVRav3vMGdY7(Ef2t+dbP{$e5=k;;jz z^)Adp2%DIFqW=Me4`O1Vj(?QW&eP7GWtc7( z+T#>BAA1vH_ciB3gtK{!!4WH;$@+3E_HH8Pi$pjZJCVu(z$e4sL3Sjl4{*Md_*W1_ z+mq1WiCr8f6_GxhMMV0SVZSN~f1FE8gkLToE==G*p6V6z@_=*AO!jU-7_T>eJ)Muq z>ZkMbIG;sWyW{mI@WnlK`gO!Uo0HsirMQ#fM9I~u-gNRgMC{F8XpGoP{{(66$8J`V zPN!s3N-DRKLu7YKT5O(Rba<=K6_zzUQ`A%=^|3gWQd|7}#c!9ru{i!ABB;Z{v{3}Q z6uXc_auAq^cYP9{Lc#tcp7lxIIy&#b)w8a?X5P`^TMKSQm7_wz=x2f-fuD2qMYPOo z@}6PA!Q_qoJk|pd&h$fsAHW_Z>%p=3JE$QIpUtu&{!W^Qd6u$yL|6;XSiG#@tVt9| z7%M;iaMgpqS@q#3s~&v>yXSM`Z_$eQ4e@KKF3wJ;<)PLz)XKu_C>LwVsqodveZLv` zg67lP;cK|<3+IO_p}ON9f=C&S)B)^YyxkTYQ|ir6w_ah~G+ zJ(l`TGFQZB9CCdUTfK~kt2+^&t@=dx-h@4fa5lmsH@D4Y<7NOAOF}vUs=~TXNo_`@ zfgZ?=h~^iIdZFCY(d{;|%Ourf-l zqkdrZAs_3Skb6Ij6A|3Uh?#SKl}VZcY7>%I52R(RFG^gM33rl>oC8jiOPtk`iM24E zV&;S4iy6v8*v)1d*@srr^K6I7?>P_Yxj9zL%BkH+R*AJBVU1)Qeh9Tv)OhP6KBqRJ zbunLZ2&WlsyLlCk^b17oKDAB7x@LJ!{Acku##z6AF#jV&|!|P!RZQ?nFbuI zKE{o>x;unZ8H}4+^eugja2UJzOePc82&|qMN8Sl5OVvxoq>v%2m!LOU%$>Y0dS^yY z^jmi(GJ9R%gUwD!_+gwJVe}Y$GVhzbE_wwf-#uaE&A8FiZXY zOaD+GHQM~uo{@R+r?PAvRgU^1d46+NevYohR%MMjD+2?3CBS*%JTlv0G1Ws{b`#-J z;gW79Q4W;^AsNw)9I{A|;f`}SUgxE>I%lOQy(FnjQ93&fs!u`B8Hc8ExMPOM zAzH;ai>)&647ntwn1;QxX&icQ3i~p0V;c6>REv9Oi`afTnnrs+&isy3c{_!D>8VNR zhmw{A)G7eV$NF<}eu|&_Q+4(cLhW;8A z72-Ea+FRYtY4fXc-RFP>8%CD|5J6grQO4wS_ic@7=26QRj z1^9|@`0hg~uJBxrEr<}?C$~iftR^SV=!CsJzWnmRL3M8J6mN8SB($vG)6SM;o;Its zEz8pC%HD&N^nn6fvo(6cw60CDX`bnR|8$S|ig}0G(_bNDoj?1h^gzieH#9LXwFU zA~qFS+A#np_PyMgJhm(pSswLH@#Uxo2g~#QQ;b}O9xl(U*ru*&Cqykxwj#Q4v~y3k ztJN}5k`mI4@tY;QfZ5lBbH9mf9FwL_P}Q*&n@*xE5nB!>RFSRM6gG>BRtT`a*}DH2)_!a z9HWWZ;RB381$GnAkEB){Yh((xl_}bk%t+PY;rfd5;9#hJMnD5Qx=J!F=4vi)&_-f2 z1u8fC%&w?OLcN#@=K6f|yPUSRK~F|SZrAj3y}!azOpCILveeZ!mA%!T(3%f8Z=(sV zc`(T{9f!li^E@`w;&kZll-K@%`&>ptD(o7Ea$hS#wqqLGl}3sA zXOYs`X;9{$Md&%>&{ThC=C{Gk_oN~fc1Fjc%x{a> zmyv^M*vxN>oa~(?V*4l1-cNR?VKW~rV(*D2BZZVMQ0{1%d*xY|ppoy<%iy6TEJV;j z+2L@FG$UOX1WK1mrnb47DjLcg+J>nhH~LNPMw0}|qA$~xA+sVUsSNQ?Wb&jkuy`LQ zX6OvzA)Myrxd+Su>4yZAN`xu$^~+aOHrcdJMR~5Kz@Xo_k>1+c9BR?# zdPJ8N+si`6O!IooQY5^ zXbY-n;p)?uQQcveU;UNEtTt!ub)-p8xHtq`l|=)YlC5L zbtL>u<4V^br?qDm$!3=fXGkS>o8DYfR*;h^)6_c5VTC!%s8Xo&Gi5~;HMX{Hy3ReV z*5BuLPp|X!I@=rF-f)A*(|Fi1ljWzx-oc`=i^=1k1~%fyLU%{Tq0smQ?yfZGgDL1w z<x|(q(#jfa{D%85)+Lu@}=cay58)1G%-$n$U-R*Er)1zd%lQ$N-duP`{<72t5JPH$!W zAzUEWG3&yaXx8rw5YAJ6$HkTOBSaFMkIq5*QCtCRw)8Jc!@ke}8n|bW(CjqmB{wlB zb}wmG8g%!~<4`6$vAta!`W9<64R^=kAK;B~jJ?uvj;)+y?3flX>d&ALSEkX~`7=f* z2W}OllX9PuV!(UPnT{5!g71{O-Mn)uq@`ec+h7 zQepqItOj_Xasl2TQDYC|VeH*8H@TkIz|6qpjF69VD3de3AV#wV61%NP(MkPsdr6U6 zrY;){y&#iL$;{B2gu2mRHii<^C_irjei^k3jSTuSdX&vPaRR#Q79Jg;p;5HVcUO%z zSs>_>DcJ5iz5M#cZ>>G_RJ>;>zH;sRcgHc)@jde{tkhWzEAGu<)b}k)()kX&exJ@y z6Lfl$beOhaKs(01A)kVd*gG-v2rm&-N~O1YLWAm(?9x2BH7nF8^o~ASp~=YTlF85y zR*$M##(^Rl;IXcrugMsEg!3iBFHYDJ+uvsGi1^@_?Qe4`b5l^6P)si1mZwN?mBhaK zO{r*k!oM(YxVgqF&4`u}I;unqEEP>qJXV#oMyXQXH6+j0J8QI_Hg{HaVO4u|;}p}N z(qpakX@~r^mHu-2(V1qSvB=aOkoY<+!MQcSv7xLRPGs<*> z3%Twm`pE2y^-(J9sb}(AG3FMK0m1ztEPhP3Cg)KW;{fY{6k{b)x?gT8L6geT>@s(y z11t;;$x9eZ!55@5-W=VgblX&>V2j~1##E$k_F#NAI1r;ep$KjLXM4xS_O;Q*wH+PD zMWbulz3oey8h(a9`_M3oo-2t{Y`EWS2OD?JGh12v1r6YQJ*Z+P#3K?O#356FrI}oD%-(9(pf=w(#hY9d*5;~r zr!B0p1-(b%YBa<)c2C_HHASqd_yH=Pu(B4&O0-&o9wb{$U&#MJt1E}(`JrA%%Uo|@ zZiBNom{V}6x5=Py^44@zTH23Fw#TnkxFhU1hPLugh(f2142`q&O=U*xdbedGSEg{cXsPzJH1}spy=^?L#B|iyuPY@;ndK4O$dL^x(FgNW_tJX?822)U1raT?73F&glHlj82<^9Rcz4Pu>yoVvJ6%$H#8mGn)2czwX#%Kq_TS4@_2wgRW;n{ zG__P!R+TFhT9r~=SfJ4R?Y6KLVLtBC#8`!pvoFGZZG5x>@*uW%6G4^)n>!zx>kTtC zrkwI3h3yMkm8Fe%>F3p>pF2F68LcuY{Y7glqI@Oj#1eF{YGC6&fszfBEGS=3q!$0f z_bI*=4nNzDOGJCc-hF^8DDb(B18fM-j^OiP3;Qr9qj$6`?!0e{UUQ`QwigP&TvOIca-4 z!{e0M%qDVoS>hxSTErc}XQbel({*EyiJSnQY?IABfO9KJ_6pA~NYxv^p2o!_^)a(0 zxxv*WH{-P@a>eEl#%=OC=8{zH{1k7P*+#~D$ktJ!l=cpaP(NjBie$g{Cw7xWNh1@U zz`m64`ianFySzQ<2y}yf3K~*)PjTb+jVI^tzGU9-unO5qxAK(;)^5VHz`^cN`fj!4 z=aq!k7x>BrUqPEsg{7IwY?EmZ9a_2V?B$0K_@4N5I zZ|=XJ^>i%2dn$u91bJ8K$qOE2eT~2U)LZnAth=K;tH&`p-&pf-z4#^PLxeNF85|ni z$a*so8?hPpo+?-*ldFge4W>d5mDjUGa&Tf-l2rp)t&y{{n_6P)+ov2KZ42ja ziyNkoc&N+WQ(e>R@$}YI_qbUvYOn&5a9Lcz$M%xNlRp3?7PyV~)GZX;TZAG76aL^<;rL+tf9RGcwHD3h~@E6x}ql*ySv znViq#@|;M6$@!KvIFqwTMf9CDV_g$=ZV$8jJ7Ckv-ClMTEhlzOlULJrO%d%R_iFFt z7SAcNc#zj&=OaLoYZlurV%VQ^eh-lw67a4Gng7E$Tg1IeTHc=360_oWa*Gx7_DQHr zIF#xm%Ps@X^PvoW6>p;f6mQ~i_*V4pP!2f4lcfmFOM~8d1LJd2T+)E^65|xCi~{H! zW^@vHJk~0sp1daJ@mR+0X5NOFV>^_~YOoyCB0lOFb`?a?#A0 z{@DRTq`V|(P}!B`1*%+|`QnR*?!8YcQ@GT@2JCA%1HFy{xx64dw^=3?_crLQ@ge$A zcVSs}ZcfOX;Ndy&P>E-r{1^{Lv@ibqJ{P7Ay{6R^m};`C8_oUzEgZUc@ZNiKvJ@Uo zijQJti9)T46qon|R)idk4bF;9<;}^<11pRd?Bv_Pi~)41%Fxf5&CUT z4%ouhkH{AnTyaTBaaq~ur~2~jZmA4=P#SAdZhp8{lo@>he5zS&G-2FiX$-SX4UCd+ zsMbHtWG{=D{dLbjf7c+!#TK4wg)9_`K-j<<6*I`_J)Y+A5SzIt>HB!UVwp zTp6MePsscHej8^$anm63h&DDS;ebz2JRI?2pnYonTAJZ@SgPf=idJ`QiicLW82xfd z23>7;IqAG`O`uj%Ahp`{Wm<=6O3U++nAe~$&=ly)H3l}u^XOuF2rct`BK`gh$d7BY z0~l<F(x(eGl;wSm~bV;+R&U>cp?m4Owj+v@$-29_;Ll zf9@%c<1~5lJS!UNZ?|Nlxo8Ler;}!);B#I>ho9R z( zOFCoP`t|XHGMbljFh-w^NBR!_Nk^Bl=Q3CF{v1Izk!c7rNIaL4)MA-UfwTBQiMUO` zJ3~twSHyB>$Z%Y!w!>nM)wsJfGg|2S_#K`awQblHTM@2oos;FC*HCC}s`U1{ob3*~ zRYh0zRmMNdtg38U-Bdff9nIl>erVKJ;9JR~{qaUpv3XD-NmvpFo%2Lj9nMkJmbI*E zY+V~`UDv9VKbPU`bm70N)9LKMF6&$Qg+tac?GRK>d~o}?z6uj^|WJ)fP-vO+dF+{?HKA_XQNaRN(BbC5^k@c{e` zR$}P6 z+qrE1Q*Yo1_xn=bz?bF?8UxPYf8`CF@CLX8i?71dyuoYQXSYmn29({=jHkT)TVD{a zoX31Y6MTU%psR;3SSb1eCEfCGd_g^A;QasT3u^z5d;wgh5dA@4aPp7(f(ZI!M&1A1 z7gRMaZ~Ncz1)XTyjkf?7nJ;MKvSAU&|IioI{9pQlI`l>h zjr=cs!6W~3Utk;imNw#<(fpo1)r6CD-#>%+3s0ybC#O8*aR)1Mb1UlHdQ(B6NpCRa z=bJO_Exl$$U3ObjZ>6QD*%oqkxvILH?k<<3+YQf+9d~j+o+OJ{z?WwIXBD5(t|)1s zeLAnaq$0imn1}#qgdXJg`vsziRrrB`fW*MPoGqc^g+6It%W^v|e^H&nA$SR+W0u*rcR zCcLL@u)*(iRkzftof@mbY^CAeaImYgLTyve$ea?9SlkYiUFXd$SC<>D6_P+KT4QkK zNVWEgFqWzUo;yJ3Z1kGX@4kRJfLqep{BE=P0;-oEej*TyJth5#42dRr{F}Ow?aIg5 z?;x1K=@ite6!YvPx3m-Oaotm-Q%+>sfMqc5Uo}5Kd@F> zY;WmFm}}1@=E}wg_l4aL?+SZWOk%GpX0b)egvC-7jbOLC0=WOR#Znb)Hri=3Iy5d# z=CL-59#2D$6Kh2=WdAR07H1U`Hfz%`o2A9vXzeD)M58r1bEFz>w6Iz9W;S}xZC3Gv zHcM4YtC-aWmnN+iyiP$qSS{AI$sJu5z5S@wR#~~#s+@%ht1Ye7!fI_XTC5LM=IE=K z+14smg)cF))hMmaR(qR+SuNUQ_w@X4S*>v7Kd@TJCWba)wTfe{R+VnI;B6|#jji&r z-eU6jk@#B_(T|&LshXRu#Xr$%X>obTS(#?GWv={!P^B|e9<*B~wOaI`1DuIc`=47a zRZU{IHVwR7(r)QkKRks2Qj-uoJl%)QmrEPt$0tq!!Wjy`$2BYc2WChc{hDI_!`ZRF z(Mx#-k6piGlI!o{DY-0fU|?<%{jt(d67^5u_1}eOV%JN@z7_bBQjVejL4rPJMM?D} z^*^9*@%osHBre|mX9@aP)q}qe=&LFEAM@*9B(C#}Ev{dS?-Wnje~&zX`zeueO!yI& z0@z)+Ic9Ow_h_HmVl>8=Fw8K%u9WQjF)w2CDZ}RJT~&5_xvhj&=_9UCr!_jIGWT=( zo};v`rQ2clXsh%Ywia7UgMCVKoszmhxt_jB7fN=pvld(vQ*LCExt}@i#OyCU>WJAq z4Q@xo9@6MM>MBE}mwI~qm_!r?g~m~4kI^@EVMm6`>vEV(xyFJDwb^PnOX{MU8l%dr zl4X`VD{MiyMfTj@x9M?Q4p`|Q>s3B~{Lx@6_Dts0GWzyNH7$sLUNdrT;UC!Z!&~vp zV?CaBEEN=7-dSVI$)mVSPAXuR71s;#{V94B-^(-EcQq-^@Ce=behQa=2VQR>o0#tT za4N84WYZ={M2%X{lRXTo!X3rx`3uh4M?LZ98K=AkTHw!%RG^N8*Bcq3OEzzg{|xm7 zlH`KpFbWJWYr%rEN=Ek4^7z~IyUm-KVuF@1leaFOX9boKg>gbhXODg|>zvt}_+PSJ zXcDK1jaLb__LQ@7hH_?%JV`%}%b(;eci}24`b0j(Oksxla|jHN2QUR4UGE3h3OatCZFmt|cOxoN%{zTIhO_lx4=IbRVtlMr84rGemrd*zXzA-AM$z(nc$nKJtn`O%GmYSV`_Zf#=&Z zeTI&*oq?oA!{4Mn(=Zo|!SLtAdrHkygHQ1rGey*ZCp;$niv1f})YJrClW-}1|A*P0 z8hGa<@r+6}UBeI)S2A+au1G#hUUASO;r#I{4q;*P3K{zid%`ShRf+8kdRa?L3!_yA zzy4QfB4#-iKLA-5^obi1s$CUsU7zG()pu}E9*o@)1N3w7?J&b23>5}JD8^2YkTHw*+% zJ$WtaXN+Z&4}`Z_R+f1RUO#|s0VY+rK1>}fFQCL2u`L*%^5=n2p%%vl3qyfMleyfa z*PF`Crmtg-V;ZAEh)Rl$Wn)wr?g;|MZN(_0dEMdVo21`s2&NSHxN z(H2g9Dj@+h+LA`U5v`UN7nc`?z6NPZ+%3r=R|{Stl3>+5$Lw#9s5xJoD|$ty|xY%w4{0?t>5USG12d$h#b$U=9ZD zcNuAsDwBHwu78%e&gm3@jz|L>PKQX?vxmee2iv*qM(fYJKIlpl6=hiD@C1RFD{>Snp59{PD!K<%`c83)bl4Zs4h^+O&5f$6LQ|ok^2{^W{Ix~f9H2*< zn`1Los$gMZl{4HNZ(hYuIwj>Q73z5WX~x*UMosW+h#lgq(6$8;Xc!SFB7O^{s!Tlh z#2CyJba5H|XL`sobH&JKz_X3++UfBoE@d)Cdl zfX>*5KVa1X>kla`9Od(&JhXG}x;;DRtWRMzj$J0H63)Z#PYf|1$<9TwppU2Y#JKF( zQ)D*e)Wpy&c`FOQS(Ggg$M;7QJHvNR+p(gde#MUI?2cw#6T1OPuEc$l1JyX=Uelw< z&Ti4@Y-aD^#o@vmYqL+VCRbZ`eo<$MdtXl zZjHVy=&KnHH_WQ3sgh0q+HB}-ZrdMfD(N@s`D z<@JP1jYTnqT~jkyJAF=gw%6WO)!lgf1!X=hZK7ZeCtrySCcfXg^e)oIStQ`yCmv$b)-uiUj%d~W8;;cLl zra-q@Clkso_MPwDiVp#oD)=rM?wYl+QN$hZ*y1m5T4m~1wKS(CcmC16j z&DXlp*sW~!82lBUc8j^A!Caxq$_~x%);Kz=iXHai{Ctfkq%UuNB8aU$yT(&dS!F25 zH+WjB9UYnin=;(*4mEgeE{#WLuF@Ce8$GRFd#AR@QW~1!ri~R&TTP`rt4LW`U@g|U z3}tz_8s;ysQXj)gTtRA}xyR@&vhhigP3$EfOsrV>1~$9dU7R%O&$_oQ4h9!*>+asl z-nVu&&#H0{w?^lyTMHWOu6nJu-sK4AHkZt8YS}PUQ!})orTGN*enMtit!_qTTXb0@ zyrQM4L1XcHr#Kv49*;#GZW#t{b9!BzN(_r&)!r>*6$kK3lY4LEa*R1QsmN9i{&1S9ZH?5m` zdN#F+ulCTArsgG~(30k+C82I=bXyHJ=~<_revMM2Q8Fzw(^G}>poMwtBtM>ii=)7B ztunKXoiIWmh~0#Nt{F2rJqs%qjV^d^K0TF2-+C+lFwOt`>-fi1>2Sn9V02pP^*EoF zI7`BF3aLW_-}e~LAsvzWuePdGID%tSsciIm4z*hO&?yBHMl0eX!IWZxWfuiFpphH7jT;c1vUX-<&7?0 zbNcDcXPmK2C~11?six5nSzAtEE(IowzL4=0PZo*TsG+>^bo@1+hQDP`HPdWXFaCA& zQ|ugSA6{A#cCBYm>w!I|o>hwz4azjVom2zTp0Jxk&$u^&hcC>HMCSSZ^CB+xJP(&M zTv351E{;Eax25H39OVr!3gdsn;&7w0!{KOS|M6oYkQU^{_aoWwSYQq8!$Z^XU@{vH zkFa|y!aC`NJRT1&mY;aVS}(>&6;@b4?Twjql#ZI6YPQ;XYz1N8!>~JGR69xJ2tG~ z`Rag$Dm=Mh!xqPcqXEZz8rArDn?`RWGR@qfi+CH=DwVpis!`WbY35mGq}oRgjJp>vjXYLIw6Pv5H8XIyrV;O6p9& zD1$=E=*)R%wzO}X)3C%+Ro?Awo$YZCx71E8_u59{8|d{yd?9>I*23#oExT%NxxQVc z={j}lz}D`H@(!bsQc-Oo0|lPLsla(MCH5RElBeb|D+YsN*fQQKHv=3CVhbFE32EDX zGOBM|70%CFRjS0cUDJ$$0reU2D+LmVb{?&?>U;)wtgOSZti5rbU#rLs%#UcC#TiPE z)*8|^2Tjvv($ZjXdnjZm@fa$qv<{am(%>Bk7^>uKlwgbeS32@=>WT5lJVj!~i)Xnq zBU2^aKeM{2_w_HYsaw%A@{`r>ktv;B-6OPix^SdsPNZQ@4Q}v$p}BcxI2>-+)7;E_ zVrhbUDce70JFUDVW*0o?mbo$ZtXr|$=5@32cl7wv@xa?_uicDIOh=n-^X{&>J+xu< zf`tp`cI~ETl=@sQp9jEe$3`*2s`7 zzh-W9%4$Vxez(UKG396f{-G>|##LKZM0ZTf^MrJ2zq(7+P*Fd>ZhCuJt=|-}mp7Dl zmDW~R>#a&jb{G0*01rjNJ@86cvoQb6jsjA=euxCi(fBL$6Z%Y7SG-2p(Amj6I`e{F z_+`i?B@OYu9VQ7@{&D;5x1ay`!n^NT_~`aqZnFlRtPvbx1V=j4-{*jh3 z8bNS7m!9%sjQwt7H}aH!qmS|WJWH8KQTngg=fC1g{}osGuXL~v`}PI)UE#k1^;@vx z^)Y=0pSTPdwWN1$p+Ap*Ju)%^(!V5rwrSu9H1A)H`0q} zBhu~QL&8=F*c}kp9Za%VN3t9G81CFB98Y)?_&6w=tiy6QGC@t>1s~{>1@@Gww9$v+ zP4rV)=iQpSx{h|Uo~wbCEn-p?TP(zlik)+Ky7Gw+=l^*1kuIs+86ZQVu z)&^z3`G+^5K{;Xso<3%*=2tJi*!JR!SXqCv<)*fS2itD?2`ULBhW(q5@LRYVw);*^ zRT7>-XDKHg4v^LbSfX1tIhd|9I?Gk%r5asZTgc?DP-#juhBke@b#gE*QdeRf;bWiN#DcSzMm(z{zMVc$_}f_gD>i~U@-oin@!ifKk0N{$ z-9xJ%nsam6O)t||<0g7nyoY77YVkYD*9d!%HMcR(8{|_r-)3O9nu-1Z={cJ$NSVv! zi!haV;?zbuPVY&RloF0WI2iu46KM{xPO zU7Bc}(Clurm6QbYbKSPlhdLG_5T&>?is0#%kFitFh<#NP^8hj|`Hg|pG{`!vQg$6I zZXR}dhfeD1I%(KjH5@IzF+MtbIJlyF%F5vUp&5d4-o{wRi8H;`GqFC|G{-2+m|e4b ze((BdbVKjbi`}zfGl&}TYnaSyN=3hkGvGF=ETtuJCtZi9U5<8k(bpJ%R$!`tndZ^i zZ?(*urGOZ3Dq9CjYhB);YH+Z0TCJff?`GjA@mFk(X5Vn|{kUSP!(CSP zJo+ENI<^*BiAv@(#284-zVN5aiHBj52mLWovXCtOd2_TVwxrJ4vovI`vukA(x3%O9 zwpD~Y1x@O;y_-(6bgyl0oZ-zB3QZwf%j_y^Yi9CsbCznYT&^fNZb7l#sEl^rcHOk| zR)o9jXH`{1e1^#4kT+HdhKLVQ+C7NUB>WtW4?d31ZfVilr0bM_cgMgc`cM>}eXXnA z>1cPkuqJ7DXrh!Gjrz5nKR3sJ9lnqSYpT89=AIj z{nKC@&f8476Lj@w>`4*dKg|U?!l#EP#>O(8RM4ZWds=Bv{Cbq8^~>+kwP%;EP(nsm zc~8$$`1F7tdX&H?y=z7nc*3WnFZ)oOp5)_>gRezFGv1+J)66t{OZnSM`+H>n-ze`J zOv#h^|E%)lJzA+Kgv9aN~mX-*o=<$roTFpRn$=HVyeY8(_iN$dB4OmUNX@qWXS{Y2>Z_I!;h)_urd;#v>$rb)3FqK&`P2-MuXp|3urd_urrS z{`&>N%a#Q%!@EllcKo4ZRR%s1-mBv?L=jo4ha8RleuHRNcY4Naegq98BTOp$d|Xx0 zC%0#>>^@bsMTPgO9>pb@={>p|f`5#cH|JuoaVG)y`( zb&82{C3a2nMhzAbedsOyKG0&;^UoLGefRH6iyu&lFT5~h$b(V9ms=QnBu42y=|{cF}nRHQA_t7mFVLg$!}un2scI!!Zw37UusQArulL`b+w z!ZIc7dyAQ%wXjFrH${*JZo8{W_4ws4@qE_uv8$g68hvJ|V!6adGhcjPL{l0x)0c{w zqpWei9rtp2W`Qc6jw8hXlOPU1SpJp6b6u4P=UG=1JnF4f>AeaLo6nH3CRDGPQ1^n- z0jri;XVyxwq}{*uGaSf3D>53#b$m5W3!w8=EPi9=3%*(GW#;#iNkfNU52`}RN~5&4?MvB-QZ7c0#?${T=C}T2M-%ISao}G_;9m~FUbiAO!RmJ;+x&+OLxe8iMTXID*emy${o2Qg~2?0r`6p(^dU=eYcu z#0Sta`hW=B74Uiu)Ktu*#N8pA^7C?BJu`~2Ko~M&&&uBz?-LK2qs$uj#-vG_o+}O- zA2Xfm(%mB-+xnZ|SU%188U@{PpgdCh=&d2?As_Su7LDz*5N(sHBs$IGWXZ|t9nWDm$hXN)okvUd ztDEXT@!fZ+^IQk0^iIkrYDV-WsEa6CL}!EE7Ln8+1-k!E9Ut-w4$9tRZ0(cE2^bm#wnm~+|=e<>nv_G z`hW9tIAc;eg@oKuj8>mnRyw>pSv_I`Y?-um6utd~Z>;gRXLnD_?q8*j7T)1k=Ew7$A(tjvGFe8-QN;>&-d-UNt&Qo z>Z3v<(R)MFPOHD_=}zN$Xge}YLffI#dncpMB5jkrhmj&?4sUJ|Q*UiE+`^Cb@0Ogy zy=`o!JAv_CY!RKJJ0-i4qvFDu_y1Pgc|uONJwo$I-#ou1JH=pw<4z&mct*uVM@EHk z>v=AFYG7(|r)()x{&4@v`*a;t^epa19lUs3 zM+lA4sYl1!Cu*Ot2Pk@U(&I2W0rxJv#tZivXh-xQ?xrq2@I%|s^ zCYCcVE)k2|+F(sb>6N z@7LAWd+)+~?)g`}H@piydhfh%?Y*tKoOe@Q{@=1d-Fu@CVhc?9dhe|*uv65{-FIkA zOsMScba&uX3g6m)cNn4_C51PrQ8RCJbSbGRPTkdEMFcH zKi8!q{ZmrA^y)B@x^@bQ>>Ab8A>~8;rBePq6XJSxG3}RnJ?zc=|DOFqjyv%Uw!Qof zB~(W2n8sfl#(W%qjTp1>i}3V-zFt$pdneI57tjXwqgmvjH!rL`sTWDqQ5=c#Rn%7L zg?ClGgzf4-w&B9VU+5th_@_JWTj|4>0j?k>Xuy;t?Xy+e#}E zVP<3gZmO6jo)C5TGSmby5v#!+mAm14ATdfFdxGwndiQ@R+fc|f0bFXBa}LtV#CR?jtD#EqEMzd&Ul8Wzesj)x z!uCDmdxreF7H$qZ95E^PlaLG2nLBMyF5f4;LU1I06PO>BTLxy1YVhr=I{1vkwF6%~ zur#PkWi;rM5QfUtQ~#bC)%w3R#AAY72Fj<})c;su8A!VtoO+=w>yVb_PF6ArvN`a^ z3gwn;=pJC>fj!0&kqzk(H8>NeT7)O59VnezoJm^_gxB_V51w#V;`&acqixR3x$-6s zJrL?vU1vc~`fL0BrgSZ7MvGaHk2EwIIjuoj4oIwR(*YXgh-QTep8?x-d`**7dq~3Z zX3lTUUk0dkD6w0$``u!FyQSQRG_CrowO{)$?br%aBpydTsN_hCTCQ(Tr6*R>eLehl zi|Gzk1zE{XW}<%otF%1B-Gew&5T^k8t3m9474O!t-zAO}#+^Tl@~=|*dgubSoUv#H z|5ZG9s4{4OG~!Sl7>c}6i&u-@QQ?on_&M6jZ#b}eLg0ze$5Kg~^pf7vE`89Sd?fv( zzYLIpGDwV(!Qyq?zlO>%F;<3Sug}FY0yB@avz;Nv$w=7=efcR#Zzj7$HNF)WD>h>h zaTnQDc9U^p3*M7+;9a-`>6D2wNhagDUz%u>DKb^MWOtb+(&@<<`sSWuD^1{vPsKLT zE;Ge;+!ANw#yA&m>GhU*B185Oy=1=ZEBndY@TCg0xY&{4b~!-aAqR@_auE8K9kM_U z#(P%1Lsv zd;~9GOp&#CmfKHGmDA*-7*pJa)#Rt;bn(8NA!o{2@-g|ixLrOWj?39t!Z=6%NY0f% zmhru=12|QYp8_>=@CjTinikb35tls}fZk8X5D!E0{+mA!!r*fOP6D#z0 z$j{_X@fCXXyX7vq8*5MY%6)P_-nRK1_WA_&*!n{JP#(lL#pR@UW|NLpk3CfeR{dmRU-xX4qjFVmJooLR^06kjAHHSWU)_!!X6{e} z)gZARUoreW?hFgmV2mq&hi9RYSUVPlIm8&;3wOp-oUZuxRbv1 z32LI6q$UfSdPLRW%dxd;D&|B&F!K|K{V%<+Q?C=dG5=Hi9J2>@eC_)VHBCLL>eO^K zL(NpP)MM&#^@N(OeyHY%Q1v6R8eiv}i`F#&Yk5bBhw-d`px7ur6mR28RPSIv;6LH5 z*LC6_m|OA}FXL;w^VCn&eDzbjPv?iPS}zd4z^=55@I~i`#7QwM86C`ZM(l@f_|Vg2j1!3vUhj&S$Z@EFRwlSc-RN|A>}vl^CRcDVB&A)idf@ z?8WTh^v{jPdXy|31)zpHiX zA8Nh&Ky6U}R2$WYSmp4M+N?fSTf{TsAV!716o;_8=wa~%zM1>EIDos92K9;BiZ69< zvkw|mS3RrRXJ+lBtfE0h`dpA_o-@sJwt3E_b7t1yLVZ1muMuysd2PlUly6=SGS4QT zLD@cori>n2H?`Jh(9{W2YpWmeA5=G~cEaefGiOx$3@YMtz~Hfy>c-BTGQOtzasR>N zrp_2Wc5HR+413|&(TIps-PF-D>_sfLy@-iAl>$@x!KM_0%~S`Q(htt{FS^0bjA9B} zFvzFK6s$-KX8Lo+GPClF?IoO2K#5y83X++Xo$X(83)k#SuhKE2>jFyMVO3eVz3hgj zp}}IEz+h8DgY$jLOaaQY0QRyOlWN9Q2T&rJxq~uuGP458-3)c&IeGRfQWK>>G8uNggk zqRzok^W>3{-g)+Wm>O`;ElSDGG6n8i?%+4BQzt=O*Ia=x>GjBzC z-uJrmQe-kLHZ@XY<;~1fQBlynH|6DCGcWh*qV&F(jNE=N7pVO{E%tqGvHk8FH>tX= zditd4_WLH(jh3s#(Ke}KKrOV)j6c8;mt;(YrEX6rxVhAoD$CUXihYNn2@ zsTx$OuXB4_*MacQDk{j!m_9u-M_&vY%oo9fEO|WrGWjCJT_Zg_2Wu|DMK?tZaaT8w zum$;=k-OILb#U2DakW5$2eF?YnX?Cr++2@~Ld`Gu&TopZGo+anW$T3Q{f2-=o*avH zR)cR8i;nleH^eK}@j~2c=diY64^6a>zF}Z!Ag_(Yn*szBUt z8pz;c@2Tz^ zZ_!qER$s3f)auUg2%g7cpw%s~&-Bcz)!LeQD(d4s)18MRGv~#oCW@>)nRzKH4w`vW z9%fp3Fk9W3-0IHMt?px5+{fJF`aNdVXZvHi)qTS4scopZxBUsvR+n{-R@c;OabNpv zX6rxuhPj%p?qI8xHCx?0>)Jkn8i=fb39JVbXH_vC>QNb(Kus6b2)+n$SBo2-Sw-1d ze4#mKdvFGRgLC$+oU=VSXWzn^JuS}WML{1*#_A~w`676@DKt*eB`aCfyV(_(qlYOrSttm^Ga*?34NAM|IRADEdNojtcwoMex*{ zk}!J?R)0?L%y07ZWKyiN9(=>JG|wl#AzrbL7veS@4jXw(5q}d=_hYv44~_T6|Dj0? zYq+t>>8l5JIl80B%qbY`GrPKOYDUd?JI32|n(-K2`OcV#CJl(s_^C7N_&jMA`%jJ(q%$O!Qy#9wnI)Q|aUj5u>R;?3bScSbdT z4#+7m#%a{foKnYWFhXe%Vx~c;PD5jq28W|GIGj#{QJn?{isN zN65~~;_Gav(`($++6i7oGwY@jYfxCRICD3EGdKS@^PoICJFB;E^^|Edo|s-egCk^R zYgXBrI*Cj@w93xR$qE=ZY1X81)hxIF=(@V8kJXWF`!QNmJ$?p{19CF+_-2b5UX5pZ z(EEDeIVKL?Xwh|e!maRxTj2@M@t!fYcItG0h8bf=Pp=NL8U`kX-*n|xZ%!uX6&(8b zad$L!>Xb2l-188o%`CIPlwfei=o(f9!fPYV$<(*8$c-6xkRSJo9r7d|e+hvsne9 z9(uc#kaa5|=T<^rCYTKKJbkGUGjAo_#E?SV#E=L#F&xD4gKy}{Be9%5o)`Ii!F@fJ zc3FMBDVDxJF)wuY7v`x(F6bMUz*oWW*V7)_3d+j4w0$N`<}S?fCh2g!+mlkql}#I9wVg~A*pz7Bxd zz=42wD(sPunZ3IK?@{*v{zyHE*}A9jeHt5Pq5cBOdWE={C-lYqdp>5Ihu}HD9L%D< z2&%8x2d?JKEI1DY%}dziHO%JWnfW}*L08BXgKL{g0K|u6LB*;8$Zx}ZKT*bkVp9&r zu?*4V5yIDx-?;YU>+BoXQ|MY9zHxmC*Lb_jycUp{o;?W6+6&C&VmcPN`X!QnRy~jT zLF|EJ&dj}uyeeE#&IO0@~}9N|Bn?f{o#*)dhPW$-h6BIU*1{s?tAaA zUH6X-|J?ZDrjIs%yycUvpKjZ}5wokCHy# z_VM5fl#eOmu% z^tMm8?b^0`+ZWqHwqOb@SEa0<{&$4&!+PQD%{+(a!tlxQYr}s|(on3Zj?%K8M{4V=0-(7*b zf_Fvi%G{N;+k1D!?u;k{S)`t1$aw|n2-ef#$9-*;tSz`pQ($@?<* zf3d%Lf5`sO{So`4_Ph3He7^T{@6YX@Cw<=Qz~=|N57-Zceo_C$)i092=y!1U!J`Mg z584lg9_(^3@yjp2y!>U$mu+AAeChvXblbbi^lzP-MqUe$Zm`_=o`JL?kV8f1fNur+u$_%;MIL^VV=bZdxja2(!!xb1Mq zVdF5qAAi{Au;1bE!`%+YA31rX`AEx=wj=nC{1J7;`-uIB-;r)d;=eleRohorzPkQZ z$5-+z@2`Bm3ivAItI)3!zH%OIIeO*jwWA$Jjid6Y&r!dlVMim5b~)PZXxvf9(S)PU zW6j4}j$J!;{aD8_jDDa=h#Dxa09B+D}|NAy0Un@Hr81BIHEqiO3VNCpw=zf3oG| z)swc9ktd^1_C9s_)Rj}$PZ_78PPtC?KGmo3a$`$lYvZ*>??!v0e`7#nU}I2YL}RDM zsK(gF?9*pXx14T0-ErD}+W&OS>Dbd<&a|JodZyEv*fXhTFP?2Vd*!VCtl!zdv%zOW z&qkb$JlpAP%-M`{9p~gZbcyLh2RSz7eX(DT?oGraiP#QpY9ZlFuc-OM#byE(Ko-xfFUSy!mSLwdRgyquIOJx7oirusNtXq&c)X ztU0PVrrCKJ_4V?V%U3U7zieFgx@^DfbJ_Q@-(~;H0ha?W2VG8Ux!Q8Q1>ew(v?qj!hVAv;uut;4Is zyTjh$XIwR|86Eh%7@mw7Hp9#CHhc_UBMOh#TI3ba2WL{=^tjkxMo5QhQ&-hBbsbyf z=tpXPcu>~I)@p0BU9nxYU9(-cb=VA>v?-g-=Izzu)#i28>zdbfuMRKe<@CPneZ~8# z_ciYhZ^K)9+q}KKL+!2hEB1E#HT!jYhuyGCywQBor^Tn$r_HC`=cA-#Nb)zgE9?KX1QY{+In*{9FBf{QUzi1Y8bi2?z)X2|OQo zDX=;4G79H>P*YGqa8vMw;EO263n7<6vO*ikc*CxTg@iYTpO0vaIExLHkH;Lv8t2oo zXF4D6Y;^A2#pvqa?Qplyg!+Wz31QBI&M%$ak`5%v)P3E%rWqL>nH||)x5<0Qp%X)= zMy_4ikmA6~XiVn$a_A1=gB9Qe9Uo z@~4chdqk|B^2n4&&}jwX`PwY(-!lNubBADc$|&?=wPGHgnJpEKNT?ov>OiOuq?K{> zR(T-zg%Z!7s85ul!8{)|&nM0E8Hh{%P3F1TJhy=#eXZ!4tVI7EiVz+6GlpbnoB$fu zve^)u!r8#j8&n@$`EgvEXtHH`(^?DvK_iN==4;k@SO2N_S&4a18`gK z0#HU}Vg#1GwrCwFTeBVpJdm3NxWCt1@D1&SQA4ley;cG5+-osl22rvX^;!rzJ#j}` zz3TCQrPnKf4ZYq$82?OvgqfJR4V1@w%>!J}s}}S~)@MMkGvDNd%G*Kw`V$JP*3=nwbvE1zg`_H#r zpLPA~Z*_gAY1hBArGtK6Ru201&~hL?;`N=@`?)?&xR%~W+%9)3Ii{1}zjS#U^OktJ z-p`TC^JUkR$F7evub+0khr3{8#(n&S^+E+02kRcdf*lD7=hBM-|@7s?10II|6)~rlHD-+>?YG z?d8ovRID`p_iF#rxuCs=cx&}_1?napbgkoQzMATW6;Bdw?5W|irc=70U8*{#YOy!}>%E|$Vl z8rDJArD$s?A6A|ykL9EAM_NSBHg#iNQ(P-ePd;WI>kB7aRQH+WA^C3n^PsP%jpjn| zu0Z7b&%{-h9oP+q4cW8k*{&J5PXZtf^Mhqh^&hQ^zf3kWlI+y*(bkw?l4@t}inE*Ho|2hs)~?Vo)U zAM!P>jCz&NSBsa>88Um}kMM;{VT<#Prb09CRbEC*5%iw1H6;cFJvxKOypxKg;EBmkm^z{!k3%2fV9B} z^bQX4HNbITAEYDFJ%yusMQsrs<&ei}b1WT^tya7TJ6?x=8TDD$U*l@UR<{nU^fedF zSC_4^r*NauHrdp7;THHUGFpmP;cVF{oeS~bZ8Q`?uF@ARF8b_gBNk44=pb7qn=5+J zxLi73)2QC)!#G^nj4;R}+X3>(?a&TmTX`j9KWVfVB5b9@*j>2SI8F9UZD^l)#-Wmd zMA!ALa<|rTMH+E6j!i;1I+!nbgLb~~pz*~7q)&C6{&ZM6)mKJ+;Spnd;YsN69Q+3A zI##tp`!X*F=%J>}gqwV*yve`heto7G)Mn5Dn?Bxmu9lC=fNdT&LE)*bAlqOa_0#-V z=kSA_Tqy^Q{T;eosciLOT&j-I7{aw<#Lh>*0^^Hp$Uw)9z6LxzkBTRatK|cA-uleb ze5oy=HjL!s^zz*@6Q8~fpo0nZGufjoTQ*v&V2f2G_c-JsAJ@-Ne%)y!im2R75b+R( z@>}|z#!)7ht^QSq03Vb;9mON{S@*e`ua%#QoknxbT-5n?9mawz2g!ne#WnmN2afio z2m#0@Np?D{av|KapX2KWv(DkH58Y-{-buFdQAT_53px#VSs;x-qqzv>QPHSl6@}~c zk;f}UFLr1;LGFKHubO7;uWBZ$=BxV-DjQ?Z1l0Lk50batduU{7RH{LCQJyxDE4i-V@_9d^ zHbLVc!ntnmHg>TebVKLtX^{VM<5UIWbANzvWP?-MNb-+ir7!n5#~_QR^nw`DO;}F52}lO8?=8FcyW8tq2+{3;G_LW1`0Q2Scc0y_LCEFF~xXiTp2NBY(E3}IHd z^J(?T907p%>iY#_PZ9cso68ODutFH5Y5j|{5&m)Gaxu~=4n|sQElvot*8_)Ko(HuN zRNlprsK@?ppYpDtAurZJ@_Qb1Z$)7$5swb)7b^0MGlUae9~h6NSh%jE)|J&~nBn$M zD%Du!2BV?4&^THQd!U1OS%1nS?D}YNKGGY2w0G;gk?ySeKq2%&eBAmWn#cI9rMR3Z z#?Ioq=uBl|94;OXz9SK?*!ZY;jIpSABKSJc_wNU-pYc?2t+A|lhOw)7Ht42&2)nI# z9&ylzRkn0R_g-|Z`&?sF@d6#D;+nCsD#Q4&c#-kPN|r;@AX4HDBcWxZbO&`V^1;kj(&E}*nZ4k^K}@nN;h-)2HD+n{%Du!q|hzI@4U?Z@Z z^ChTXbl+k1;}qJGjc}5g4$TL$!>$OYzRjwSC83%pl{48C)p_nK{5dLv%FV{rk|=kc zs&c^t;piyoN_A7?1c?vjrNl{BMtxN~oi$%ew(_pVeygq5z8YHjV_iYF6>n&IiR8HZ^cMrA_%54D3NQ`Icvld?rPha#WITh(4;M@c`U zQQvRjdf_+UTag}-$73aCow4|Wc5c*0eQ!neljNa;(sLii!OAhlrzMqooJ03kq&sU& z&b%BXpO%^X29po&?UH3o_!_Y84cy}(<3z~{N)PUKN_v2X;wJnWXUg&G?4(7z`D~RPjVr5G=yr$d0@Wv7zd3F2f$Y!S99Lgq z-enf$3I0!N3irYNEO|7oYz$)H}svCOHr=5@VD+?Sx5Od>!d6a*U%%iqm-x8 zaPafe+;!WpaZgy<wR$EW?S0Bdd z+w4YrX^qiT8mB3xBaHKiD z_)vP5t#aDnLv})K4jooo#yHwDZg0s(z>CMF4LFCAuYMLlV>zn(R(?w70*{1VVBf@7 z+kkOtc&!x={v8zGeV|RcQVO}ibN3ii4$Q9}A7VF-l`b|eO+KmRAX(^7{Uh$j_LV*d z-My&Oq4tjZSz==zdhAMkG=bvML4BL&xK>lY8!TP<-NOBUDHP2OSqIerEj48=j(fo(zjs;um#xNg|fF0 z?>)k;!+>Rhww|D|oyN-9+caOR?MB`H)brUDg`|Vzu>NFgrKbK%w`#g|zwKEMs2*7d z$xMA2w^<%-Jo!^SrLh9FU0lCVZ>)Po%DdI(>iHbx5B)E-ZDjA{Z}lHEp0(OPi)N+o zX&0V0Vf6zPkL0la6rcXYlja$yz3JPaxoQ1s+)B^lLvbh^#j)yY=}~=cwbf<8&_xs4 z)fP7o(kHcDXd{l5Ddgh-+5}&nu2nWP?zZ{{ifN5!38%Qkm--(%tnmTKXO#`s-e z)L+34&X=KVs=9)X{F81eJeAX}2hk~?R^Q?FH%?T&OjpMCF{Zthw?iI>ahAqnm^a#3 zmZC$WAGuK01AO}FYs{(bE<4~ZLxkO4maYB3uhp{;BbkV=j%yq)%fAusU`3p9yljB+ zK0Rao`e9rxD})@d72;uyd8iyox0Zg9Hu&f~eglsqW#!twNRQNB(;OS=!?Qj@=EkzS z5H4Sji!>kO<+9eCT#z{@!GluBKhO&vs-+ay2Drd~EepEKY9nZq3T&=%F z`=+zjpV310PcmDFHI^oQl+ClK$j>y5la9%zX#7tyQGDEEv{#Hb_R>8DkH=t-^jxHD zfpL=VMaq`o+JUm1tYs^E0q5N&KYzqofj`c4;J$|EN|EnVWvejfHiu~!$~HhxuNuud zlm(5$<(0;nvbT&@nnx@{-bqgD9*N42bV2ovWQI)OqvLXYhJV>+qpfTk(Tu~o?=)H_ ztubE5eDmJ&P{ipl8XjJ5e1ZP?a2d;N94I?r94%{rpM&Dj0lvqL{bgtL75eK7WfzUl z%i6%d1AM$-OKHXj<(x;&7dG`(c@))0RJ-1>(AN<_Py7oMiopJe@ z^_p<2?Y}h~@_b~hsZW%{o8@zirgBS1k6Udup1oBXC(DbCHnLf&|1@6GeSvYde5i4z z{C;=&a=$XlSYHmC2mcQqT)}7NYqjrH{>CTciTp1P$aALLtViXublYalS5p5#<%{Pj zkolIhk$>uA%NM$tBfYCtD0h;XY@FhkKco8r%1`-HV?+5eDsSX}1%)v-m%nV()AMEO zi%D*>8;VP3ijTZqE??tLgD|3-wvG&x~Fk{`9}P=kQ`bT#Q%)O{3y#aRb<G*mC1& zrLMPY%g-6dXgW}F zPpPd(x-GhFjFbOvUe4-U(Ptg2$Rr-fPo7>I0lv(K@&}&#D*D5(!1$`7l&_D`d>H6E z#t)}6{N@^0E0uAkVi?)H@nOXXO^3Wq6%SiwK{Vrw3K(4F2JMf0?5n8JIQ*LFxt4Ws zTQ?WH(cZ!DR0ZmfK8!<{Up-r~*jP9ImU6d3keyKfPWIQgK~t&zkzLT44x|k};19d| zri1!b8e5Tl^Ru>vT5hY&uXqu0S8Cg(bm-tU4{sQa6>lRB?1y675n+OLT ze5kG0woBJ|#?(SS#;!5+Y;P;#?KBRd?LJtsAAQMCQx1}a{+r=nZ|tG_u!^II58Jh5 z@@${M^Ip*e+u-y-yQcjJ{%_uQ=r+oo*8ddtZF35q{AsL9Wls7aoDS-X z^q2(eHx#aYwVjY2soW}q@sBi4Rd&|;)qR-JSeatAx0;Uyt$9T%AC%+1%53d}anr%d z;YNMs0OR1pZ)iEVAAmfSh2VX}I7!b4D(`~dNnEec@jRiHnfPcb<%8-t<-uw@Do2vv z|Nc5FPr1I1f7?2%uZJWG**~>8)KAfYHiy?)>8tM#D;ItLIR7q22; z>%VvdRQ{db0F~?L4N&->2lFJJ&*cIb)x_Y?sTm!rJ zbCtV>xkkBGxhA^mx@WrPxE8n;yO!bl4c8ji2G>^CURQ&w(beqg=Ur88s}rb$v?_hMFVz0d_x??4v24y z6P(@|(y_RRR6F6#(qyDM2)nm=an5`=)gbIS_iOBXxdu7w!8yx9dfV|X&tAAZ#JvbP zDVO=2%f8qbv$MF3^Ev<$j1+~~RT4YoA;-1I@vo8N@tosFAi;as$MFM{%T#(l)`i~X zraxJv`A^-5EwWL|Q|s|Z&yb25n0n3h4>jWvj|}|t;kOQF)Hqiq{ttWn(QD9k>T_TJ zyC%bL2L5yLUnr)z?4}EKk?ZW?l3d^4y@7aOJxS*j2j7&Gm2#UH=_7 z-1V?)hHEnZUVQiUMvYo3M)0up*;2bxnZgQ z-VIEh^Do_~)c=l~nEKtEl^-pqTN0h7=24f5wpDeVhd23DJwXvqQ2H=sFjMLPg~(!< z!I0_d2f(EW#7?da*qOCiwqjRQYj@LWY6Cb%3DLQZde_c%*h?VHxSE`YeN=_l0iq>i zFMIUA^~o73(r8Z3C7OuDKL>ohl)q8mc_)STE+#(74vv!o34M_w-seNA4Si@-ms&a1Xicgm zE;5qkp24AJtNzed5Bvu}V?JU(q{^R7MhG9| z=TuA+^3xd8BA+x)=kA9j`;v0O{bY`yuzgl>*nZ5nHGMebX-z5w-^(#Ols|YCP$&%^jml!Lo3WWSpD24pArlyNz2zWg-|<|64bZWH1)*keex zMAmrBD7=UItnpIfGh(T6Eb(RWit%RR8u2G%P2y|fP2=Un)##%|;!<$klei4J*p;{f zW3-`0YvLlY(72G;fP9=tTmt{yi7z14?TN=x9%mDmBkabsIY{+z;wq$iHAZl}=1d3T zHN}J?y{lOnhy=j;<$-MXyBIU3p%dvvI7K$#}naC_)uddWq%8<>th@kiXA*rXYXyiL;Tv z4LJi4??~csNO-3EEQ%dHnPZRS*eyBp$ZDf|K+Y?PNsyyCI-5!(Iv>(pOvI;gVRfaD zwka_aoSG8z6zZt=tB4J)Ix+e(jyWmSH=SchtIpx1Rp&_3s&fGN?Qs^8R-NUDy(4-q zrQIzFBjBON1?MK#a5gxdc5Vfy^NBsc=_}_>a5~+i2An{OBt`Br(nnM!Qa$IK0r^ijXR~$ILm$VS^GJ@Up~%tp?yrJtt8)S34}o1` zG;X{Z6^wkXcaF#CP-In#H;glmMPiL{##w{f+2pK4Z8+(C9JS$W&-u#V_@GwcNVKaqowBo z=2XeKqnuSivS3Jd*y&4o%ye9wNn8}oNz?T>KG4M+vAIo!tR76NTI&_Iizqp z@*+~$p6~)v*aiy8+L<}cAz2fagWvfCu8Rq;vaG?(H5mKzJZl{9H6NS~$FBmXlL;e8 zqqt9b)7T3fvi5q5tR?~DaUmR0khMK)6J%{m7*8pPb>Mv}awYW8+H)fFu3_GF=;a=P zj;c@ z98Jj2BH*y#tR|$q%hAHNI|iw3>%N5Qa>O;H_L1Wn^0O&YaUQ5;9f1^txDSwWvLWodmDCQd2OQMWe(9jv z_LgG-cyD(s0`G0^~ zhM$D=Ys1eWohAo*Rb#EA6nS_*X);nf=Ey^8=N&_k+Q*JzNbP8NGgAA?F#@S=k2`>L z_BkHrbjH(tsPTHwaY$jW!yhReO?(F_>`kW>4!dR}g$oXRD*<_kLJIrCUqA|H9bJ*a z1&0$UG&o#H;jkkEDQtJ-B8AT#{g9sz!j~hRnfL*J6u;)JZbHHBv=^`Ba?e`E7*mJ+92*SSm86p^a@AncR7@Ot@ zKkUArEBvtoe{bME{H^gt!E^ds4(b;|F#>{XvaW!$X z;t!CEo5%3!ICk+z-7aqFx8Td;UWsqhE^alQ6qv_1VV0l65g!;I74L{oi_c{@Abu#jQoxb%;}gBe z#ZQZ$?Z|bz_@^!0joqLubqujw{Bpr6_o9CG4csikpoMS1&XSgb7tJ^96R{B-K6F_**T6n4mgfF3&!KN;faLz~GhdOJJhZ>~2 z0B$k(uL9>a;IY-Y*V*7~bhgV6lNQG>Osb1tg8z&0FUP+V-<&ijeiQzC;~U}|akV(U z!x8L=Nm}f1I(j(r90MKYj$w{k$0)~qz{dffgInZyE@_Qph2vGn!K77=xA9-+*zDNp zIEd>tj^mCdM|;wm1h0hPgqVc91ZTp)gdR8#Oejwn1~)3{V8XVT|!IxYfif}6fo4;*_o8=<$M+Su1jii=Hp+=C0z$9 za!-C5bG{8dtVs6a&~H1}IX64^JC7s^=NV^9qDah03{C6|n1p|RdVP9*VkyDon8ay` zLleg*j!Ya6e0JiKMA2B{>cnRfUjV)m*xJNRi8~SxBpyvXm)MrvAI)Z9QWVaPq|Bs& zN##kyl13#>ggco2T2fuooTLRwi<6cmtx9?WZcWmLq@A3%<4H|P?IdGzaB>WsD>*y4 ze{yl!`sBOPRwj?2fAYBG+O(BvuO-jLe_`?q$t!WSK6!QW+T=|*??`S)ZcJ`Y?nntv zai+wiXBu!HBwJ9w5n2J_@GO@PXaSiK4OYb=`+` z9|e43_qz1D?sK{?=)So7vhJ(8zk#bY-8XdKiu2y?$Gf+riL}tP&S^N(!_#up2BeLI zD@_{;I6iG!+B0yo)1Cx;fl49mowW67Thex?)x(`j>#$t9FLK{CJtaL8d4L>nqtYj) z*QL)%UzGk_`fKU$q_2-$9{Eb->hvw?yV09JPU8^CqY)X(_*8{Nn9DGS;U5^14wcwLP|}Q!Qj|v}jxZ&O@nVK|0b;g+aJhvc z$CW(^7YPi<1LC`)3|SJn1GrM#nZml2S_4T$mwNW^_k;`1i}2@=iAt76vy3+}u4fuGm`_mYTr6PUI~e|jAxF!q za7p%nc`$|n40XQx0ax-TOwsj%N?)m;5fr-^zQ~YEO7>uUGs9moEFmbp7}quNCB}7` zvLz_4JMuOTsQ@waNVq6v_;-S88$%mY$R>pt2dJdh_E_LHAptRw#E|$Xq4f~L6b)Ic zf?Ekivf%*~!xTUz)-z64s^qJT$20vbQdt}mD(z}?hDee5L&C+HV#sFQA<#L28f$TKs-4GRAL{)V21MvO3Iy5 z2~1hda2>;cFr-{#QiSn)7|vvqL_OoljQ@i19}-lo4VA_C-GEr` zMYs%OJeqJtc8L9t8D0XELhENKQRHl2vAgDfMN*Uo| z6XV1alkp6-osh2(4nU=P5fl>%%Bz5wjv`!r&UiP%1?3&nlZTW zP;#$?^%;y)?Uo{dp<+ljj8zy6we=PP$8sr#tUd7w<9!(FFnPe0_=qXgYT}IgLtPiN zHU@#B6zN9_E*Hf%ps19k*+SmKVMyl+-|*8jMMc;|W+3LcM_>g5%@>vPd{G6@7d?Ra zp|xT(&lLTRXNvw)?37)^D?B@NQTCB<;>(YJ!)#9-&-Oft8I(NvGoJH#ik__TF6Tc$ zN-=29>Fb1E_&#A5e9Nz^NWd&Mt(@p2XuXCPRzc(g?+ceC`az-q$W?@AOGCvlz2(-Un7Mxue10!hVg~sS zSaafoS+G~|Nc&IXbwS@OeFI+|r8PMInCpEXUsI$NDPg>3#3nYt1@g)fFU*;J1lefT z%#PI~JHc%iTsW`X@#nQ2(U?oyhg>#^3wUlw>parLCDA5A@Wi7X`+Q%8OUJsFYrtvM z37$P-W*IZUG8)gWXcb5otV6+f9HHe*;lPTJToH;DAtPW9G#}@UFOH7Hw@x3F4}wB# zM7m;zZj6YNW938 zV|gu2C}#BjLrA#-^LoCR*ZVIK!fRfAOleA2An2jH*) zU-^_+i}X)~+=wrIITv6V!_N`3(RL43hi!9M1}=6-_x_7&TN zjcr1)O$74VoM2uTWM?}_WjhFAJ8*f}K{(q%3fqAf+kuVk0BsGN4eN+L0e@Q8V-q`I z4R*GM5D#kzXKM(?jJstG5#ka`U2>^o9vGz_fKrb^sl=k}Be?7{QT7=kTlSK@K*@w1 z_`(i)iy+jwzQFs*ej*1ezy<=Rby1RS!k29#f^9;wP581+gt1LzuuVj=P57`)B(hET zu}$Q|CZ5JD?JsUvMklt6Abd#{-^Jt^U&*VXyxBe^TSfq{ND4w5@Hd1ZE0Js^KCqJY zurRWZPOy)EB9HX#0&M|aJlh+^v%RtShH8L_;W^(tp7V|3Ip3}-MByu=Jo6jJGr#dX z^V^+ge*5suZyL}1M)AyVEPZDcd}#hRmgj%F;)|>C;NVaW5vOPtIG$&Lqww|BWYL+v zzY0h*!nr&n+?!{F(|Ja?hoTwbo;)L*z%#;5o)J#q8DS^S2s?O2xC`5H7S9NG5i0Ov z>`0+(%VHlEDz-Rw9PHu~3=Ss>8qq!>&w@hOY+w%qQ@niGCdL{=V<*Pe!sq7(W}nGN zb)QEee{JN(_Q$nNEHDznm&E1+n`o5A=EfES8w=iSZDNFthRVmc8)ELdJkMy$QiMbv6wx_+<$6pRBTsZ8|C2GnAkXkE0qtzk0kim z)(3fdnXwVE{bLsc+hWU&ogF&^*k)U3>+Q z4*M=q@5c6EY$<4)8QZM>8apC(2=N20g=rtFnK5t0_5*E~`g_clCJl?tOJHk^sl-YF%I}Gor(;HNxaOGr0Fr8}dNd$2#szGb z?T0aGF;9~(WYJpthk6&S7wK=S`XDAeie#CfJ`nX$SdoHnGoQuvW_dPd7KixFovdRa8eK)wU)xoFbkN;N$C zo#=A%HGUaA2eQK#*yGW2LE9;2M$g8;$c7%hHF{1|4`B1A?6in~Scs@Z{%M^{@$CS-Xd4`~hVSEU~cL_=@)n6E&M^L@S_*#NI zrdN`sRgW_L9flt>T*GiFL8W00<3C|Ij^S89Avj<1BcjN41l4eci<$BY!_!Q8h@fa? z3d{x}QyKpO(-$%Me!?nL=_Z#dP_5 z#vf+5jG*{ALxU--B{7w7Sk8J=g# zOvW1-FJ+wWNtEEylwUAiTP9ntWUY$daL6`>lA&Pu3x*>Z{+;15hARm2oR^Y&2v@NT zpJez1!&wZcFzifF3}QT(VKKw|0i}pzoPG5yk9vVAAq=^66w9CM)$e6HUz&^m*jQxUWNx*h9Hp0k_ z=*n1y5Mi4c>un5;xESU{xTy%YnrS_Ny}?+eksEe|v3oEvH;ynd2QfBIAxB&&+J9LF z$+dO{0o%**GK`_&jiJFvb33>yrlmj=9gN+9aBnj<&?pUS3ONHVlR(os>|Yn2B)NjLkAiv2ehs=eo zhR>txL*TWDeKLUcW2~1^8vb|)#v3vji&xe#EgZR-7BUbtNF5%-H28+=ltPW%kb_K1 z0WFQO7{nM5g8WOAja)`F0T|X*`vPMw;!%X_8jNp?h!fC`Kl_Hj*Us2-U>g`)3|ZP3 zOE888Z4O5HV|9lJdzEOS4sjQ_5deEcxaW*qog)EXJ?fD^o<}|> z5pNcUS#SA>Hul*pej568D2+T}lcB6F@mKKS^u&w6o}_p(!WbGhDi|YK=?z{FGtCQ_ z*3n9Yt0fvn-d4(w&ZBGOI}{~^c;N`GH4tHx`nrPlf)`{b7?wO`S-(&0-fRu_556vUK(6*_G^?aRx6eoga zlTNahpu52R0rrUiw>j(+X_SU63(7+n=uGEJt~8E>Eb>1H+8>OxkcA=7Al0+rHHu@z z7(GJf`K*R-fRPmx7(gR3)alRx?3)Wq)oFGHEt6;p+R$=|U(O?Gh8YUBP8cjN7?uWX zzU^nBzKq>rYYZ6^lmXfuUR^@&H)+iwL%>7H?ei$~K-&rA2ig*id|hVSi|YdTPv+}F z+uo4%LD>lTpshY+ZD1S6IU4$QU^DTx{ftzFTy@xfW@>B}$9urGAY`c@#`y?S8GJB+ zLeEskLKblCTVwlk$ovo*Mc!fiVeq=ZdSD-@cZ0c9l^3|`7AXldjlE{^R{_lb|FHHQ zfN>Sq+B5fV@4H&9dhfETEz7-Nnkg~GrX?f~Fd>ja3k1@&k}*jLq~|3hA%yUN03m@u z5(jMDFs`yJ7s={v)wPmVyVCakznQ!83Twk3-v9erv$Jz%=AJoo=FFKhXJ+pML>i^{ ziFQN1?gi9vpZJ8~afS`OMtnlIQHlw>bhSM8xcG$ndLCOYZa3TvID7j!qfWOCvDJvF zbkK0=R_+^ImeN2iQDx**FFxcz9riAKhQqMV^8SoSP8P`0>xxVz&HoKSF5h)d9Kyp zuDOfHzNx=adk5ZBiuF+@D@VVA78dhZsc0t}?Pl=$b*u)uUf8AO+(zC<9%)p*h;l3@ z(1&@RpNLOLa|7Lim?UAhpcP?W;}-Fo`a3jJsOwSmfk}h*(C;#i(=_2NuksqcA)eFx zK(iN+pNU<7>;$BcL%t>s;5$1B@hSfOQM}}dxA=Q^%VG7qOTJ5KhI0tCGOPyR>9i%G}3+*t>s$!1I%?I{kDkx8@yeh zC+ZkBo5gR^2i4#MdKG$Bk{;cNJ;TZgxu`+Hqg%9VzoFiUeBI&`T4_8!2Q2-({!4^i znpqxu2qmg`tO6y7n$2_-$j6~%V!l6wygKRaJBdcV7ufXk?-k;;n&Zmjyv#Q>`&CB~ zD-d?6ujV!0i#NCN80e#}<*^Ooc1^ts{Eu;L*F3HQ|0DLa=6+>1ivcgGm+wQ`9ZG2& z+cmeVz6R)Wq}`}s(rh{MZRYhoB0fztiUIJ~mO5aFQT4Q@MsbG4kf)UA*@Cp^6njzb zQM7T3s+7l`)?TJ~oy9=C)jZ#3)MbU91}e|@uaL=V1r49plqtT0ScUksx=q1)rULD3 z;^hj&r&YHq?m*g2!Y*boq0Aj9vyMT?DPfoLGG3-k_?Ke8tcJZos8c_yfK`iLCOnGV zS0i^Bujfhe63yL8SXz*0xB6?cY{cHC6KY9n%w1^ZjlAxM(IO@nM0y=)x0J_pbV5EV z#e{d{JqjlObiywAIi7YN?d{^RZS!@}opsR`$v96^lW0-}d7gCfR`k^~;GX?FkA<~O zu>;sHmC6XaWS?d^Nt3V(mT^|k65(I!R&fhrW}!~DR(=PI(FvJ^omto|D;C)dAdA{i z2>BeVi@ZFKk8m%q8*rI{*C-R-k;xQ=tcYnhrID|S zcGc(PZp0p<6DrQfyNg51Sf9z- z&__yME?3M_ZILyx+?WNW*7o2n8+q!_X6F=zvl>b!Wr?mD1G+@ z$f+n~x9~4o2MFwJir@0u3J{az;Y!4$b`&D^V-BUDSQCrk1i>yzo|8QnX!2)X>k{PQ zGM@|!yA+?}xrc>!6x(Fze=>}^uI6b6qUErY!pf0Fnw zCymIjVT=un;0O9Oj4^3sLDnfz1Zm)5`RhCe`2;!0(&Q-d9{PyIcFCo-9*okKkh|(w zo-E;CuyEry^@y2&mkV|B?+G?uX1Dx1fC$313_>R81k;280WWijB+xSw1S3+KSs)RF z9-gNZG0wBlMBWivg=Um1#ku!J;qN@QOW@p#v^w-Hqm3T*SMjo-D=ieBXKBJ-nl9|% zv0ZHKz+-h(MVXYfKqlvzw}tz8+CJH<*d+uMqxyLc)d~CPCj1g3lN0a22mT5k z+lMwBM(dWJ?U_m$1IbL5-O> z1<7Ljz-eqQ%9-ah;S0QOJ!&W>w*!JU%I14>pDdMZMw%Q@8(Gg{fa-t&Xw9)H1$JNL zHI(9gKgUiUqX@$j`aOLR5J4#AaA;&AmkaFOa#Vqw&`89iEG9s^k-2!YwG zeMAPG#3{ZW9{aj*v#f(+))1~nK31PVYwOrs>RCvi;PE$j_}@I`_dL7?Ate@`ew2s1 zc=#R*>FYdvgs1$0hiyD$+L0jqkcWGC*vvu_;PG$p@PAlHujg?!3(22&{2&h><6#yL zrSzv+obKS^9V{gOWTEg29yajsB^J_e@sRb8AXr&QhIsr%9^c49+Q?H>JTA4D<4?PJ z`rmmdQGn^w0=b>1{E~;+JY|@Lw1ubWcz6sUehZw%=}%ZFoJL3`PbYd6;`k*`gaRGp z;kzsp&ha>}lfJ;?m+|zSJZ$GFMLguaL$6?Q!uu=g5z)kRw(@kg;u3_Pv5-pGzQW^r z4&BDXY94-;rx)_@*DMsi%EMe1l5g|$8lJ+jBAg~-jDQI9)FUB!Vw<+k%ff6myB^}Cl3#@P}q%7 zBqBomK08aHjPioOEP?{Pk%c78Q+~w5zwz|DdH6k^!g+~G6gbOL$agrjor0m%Ath6i*ha{oCC?# zERP^j@*y5S#KV0&{2dS9;^Bup15bI1ho9yt zpJO5697x7_{8fa6+`;1XF&>6^Xk?+VoX0txse#8o&q5O9acPV^%;ExXyYLQAPvK!Q z5AS6mk?Q5^h!g<n6NUV3>`Q=B1{Oxys_4D-L_U&JJP*{KWm+$)mJ$m>34}66--ShCB+l3k=+)2-U z`GM_UrX4)&_L1H$XCBwRV^qGE){eLmkE}yKKkHS zh2%#VG?O-?agBuk+OPN?`?X&&pZ(ge_#XSUU-3QmYro>v?ALz9U$S5O6(3~3_ACC9 z{o1ei9{aUl@jXr*Dq~tFDiim>0|=j(-xTaqxFh=cMf3nmAC&Ubdg)WJMn8+Ce6%TA zp80UF{AZ&1agPB1etqIu{(EI`Tf!Q=JQuX)61k!VH9u`^3_H^ zACJN<(NCOHWc7#^)QdQu0pZz&m=5U-M*$uc=U5(+!NW`*Ch#zehZ-L0dB{q^(~gHm z9$I*q#=~qL=I}6=hh`q8BjohspUIflnPjrUQ_F@J`}t}Sp^~U^>r@0DPV5~lP5Omr z9lWpD*;*4ksVoHNBE?4JrRbJfK{-$OVI z47XC05V1az$;1~>vmlcJ=cln}eJ}i`1k@^{N9a-Zhi?kB@jbE|{xH81{({y~tih;k zJ#Q`R3znk8Us*Io#Zs`^qvGCZN(xd~Z(e~vFYtyU!}H+RqQ$k*JV`v|Riu<&NMTep z@ozDzs>sE3jh9RPALU}d{{7KDidUEBKgy+CluHn;I92(I@Url#@F(Gq!VALx2rmjd zg+B-{39kvS3+#q1igi?is1q$>vY096i)+PFu}Z8JFB2aTzk^=M4^OOv=TYr=#$+IZjT%Gw&pPu};A^;57HcItQ<%SLmPU ztMFTTo&Fh8@GrQ@=}r0;{Tr+Z??5L01D;E}=)d5(^d8*}3Hd(V3(qBZEeT5a7QwFw zUPYPkCd!5vQLc~&FQTst-xK~SyeYheb;3U2^#k%aJ@Ric+Y0VEN_LZD;HG&D!D|;` zd1Miu^Em!DaQqdpJQ~FlJh~WHdXhHLQ?wZ?&olHaBzy~PrTuh(I_MxBf_K6QZbBKO zsyIEMP7Wb9Z&iNjDOZW@xHQs8BK6oi2#2So>kgFn-VU&E1hit^Q;SX|GydQrL z;*a(AKQa0!Fg*>fX0h|MFB)T>a7?P1P%8_ok$WTlup@wcCuyrR4&Zx%)do@~=&Y0? z{7Co--YLM-@G$!%x3IGKyb(ENqDnM~RuR61qD@Q}bH!r7L~4Q;*xf`f-YY&R-VFY_ z3#l^l6!|IU&adz|g%4pXy##UG8-q{|@6$VJ4P7fd%irHm$2sP}1wMWRzKzH633&t# z--(9&fpItg{(a$TeE*T~-&|tKgl`K^@b5pu3FDs#KO-99_rmiShXTCpo=5mB{R6_^ z&=(N?mi`gp@92vNe~;CtKy&F|5th++(2D2i|4>LI(4wE7$EOSZ+=b5>^maEs-RSck ze0tFHz4)A^UMxZ+k&^FwEL+B(pq#ZFzr@$#4h_RE|L+qS3a`Il`K8Z?N3VNz| zPvERJMxq=ep2_wcQbwvsHCakFz<>B!cwyc}zKomI9>N;)*Vt$LJ$aqHMg9iA+78lB zhR87SQjsdLHnySW9JDBp7Nhp%bRE5tUPEu7kHA0Z8}v!~bX0fwA3*`1K`p!l_3#cf z!Yj}$ScC-l|J@-xDSTh}f$(eLZ^GNait*sT!;5)2e}>!%?C!aMAA0;E99tJ*Igeot zFkA~9FNtCaPFaj8IJ%9t(+=7R9jlx6&|cby{&9lNQ=qF0ed9)d%>J7e*?612Eqq7# zF6<3ITM14Vek%M7t$mj93~w`djwTD&p?5D4)My`eli?|fP*5S)B^-`_1OxZ2QgQ&uxF4$b4}u?D`=RZ_f+ML%Wk>Ul zu06I6zaPK+_{I~;6Z#W1C)S>uGA9MlF=LqbRq2}dH4G}1;Q!mYA^EG&1+-WDfs&4D<{FLe<4p3?A<{HTl7xepdTT!6Q;Vg|QxJ8r z2kyrFc?*;H|LyrHrub(+@;pe{a~GWH@A@~-pP(-MiC%{17tzOx&$}?#=bvxz7#!t4 z@pA}M`3v-W^oi*6a~gXJF~QG2&%+u2qYvEvFFY~GGxY8Y&o(Fq7e6;r>G=gPo~QhC z7pV3ur+^%=`IfMnZ%2)+o*UsZ{`*h(;1~dulRqwa_F$p14r)_h{G$ymBDUO)YI$k=BhxbCkx|e<#O5Z1cK0uq;;`yHF^J`4i z^N$^z^g0&bH{g-5{lAC5#BzN8c?`?*i=Q{4pt7d{HNN|i=MK8?neUxHMrq3y{jo=Z z(o$O`j9%jJc@y>Bfx`m^YNX{f71Qj`FwK`C?-nf2*rVW~N($*JngpZ5P4rfJJza?- z0~K@=eVks7;{r1J6C56>hmvw9!gy&{VUpM2U;~9g*@Wr-5||`@Oux!%rb~F3fVZjG z8|jZ|HlEvH4o}AchcD32W8x^l(TG>Eyu<^wy_lBZK*M&Z4sX!E@zPb8UcLnp1JwkM z>YJfFT!VuTSu`JN#b@cKvArb1C~_q(s9B2X;aYkNO`sWgZlXmnovg)j;5Se{{=l!* zeSm(QZe)v3`Xx+48a!J5Cr7Bmlp3XnM3v|_iC#+Rhg%P7pMRK_>O}km%o_C*M2HtRB5K|T>4`@+4Cuxa?dNACPGWjE?tNj9{*m9YPBBX>Y+dYtUw z0v%Ms&BUw@7QkQpLR?PSI+(3@p$pR=F{vzjC-xOMc50$wI5S+>yLf&8fE~^hBTWEqgkc9#%Mk)MSkIIQksHhj%LT&; zObXiw!-(oAbPR?M8z87L8!?>Ik?Q6A|`~?IyvYcFs(@6hC?uS?4 z53oD-5_ub|)KjDzo>u{|U=rAQ8HT`hV9f_H5Z=UH&1&IB;SS+`;akvQe4{4eEim9Hu%RAs8ws?DmKRd=f%R@qfQQvFW#nrfHoL)BST zpK3}KQ5)15>N52j^;POy)Sp*>Rb8+CvHB!N%nD7t=CJ0RW&oh|c4>)Ld~x>>zUpP%@M*)nhDQwzhMyRIZ}_v}T|>8F!Voa3jY-A=V~z1r;|<3D zGJeJQE#nW2zcRjLeA~F+*ktTBP8fqGjVakwWLj>z)O4fi4%1gm-!y&S^h>j7Hk-4| z<>s~KtIfBX?=e4Ot~dYK{Co4C&F`9zm|M&a^NfXBjFt>s0J6?@iEk#ppLim%J#i#)&L+1d z*m7(;Z3mMcNcwitQ%S#0dO7KxqytI5WMy(z}+^7a$0eNk2_buEjF3CHMuwE-ktk!Ze8v( zxo_p3$ZgLZ$(_qn^0w zTClR~>}Yvzd42hdaSJa>YJ;-S>3#J$C$?EYmxTGmptyynw2Z!Xs?FI@h+<+HVl+Qi!Y+NHIZ)LvKnx!SMPK3#iu#rhT7 z`SZYv2UdJz#m*J~z2dbM`&V?Xm|K~!vT|j^%9fSGD}Af-S3R_9=c-??dTrI-RUNC< ztE*Q(vif(cKUh<`=9x9WUGv(St~KL$LTe3cv({Fx-M;phYbV!jUiZ0mkF5Ltx|h}+ zSl6@8vtF})>H1sOKeYb)>wmxguj~CA6dMvY)Na_i;lYii8(-VF_mT%L8QgTork`#) zv#Ed6?4_nlYcBoWr3WrcyX=|Eh0E`~eD4)CS3Gvbp(`t{y!Of+SN{CUx31iKWj|(5 z>*k8hS8u*&^Y=HuzWK;i>#zFuRnJ`Y+SS=tKYw-CHS4aq>6!V?0i8>(_d7ii!)+WJ9|1+2hb*fmMqL&riStr_9$({diwZ<_0 zIBYs4OpD`T+VP2C3tGVnvR1HK7q#M()f#I>6w{)3m{JK-T|Agqg4yE1qUD5mFo#qw zD;}&xf>p$WwJw4w(7y`k85A1IFfK|YG<6-Fl6p7Fx#;`h0TisG3C4yxF*Or4*U_n& zMO@b<)xLlV*xi8EhHF#7&nN%<=fj8p{O6M=r>4#x={eTdM~>U;m221b_h)4tJZM*} zUQNm-C(9ZVr&YDJx81gW{cX3^)>^GqYYJB9<&ovcd*DENdQZ=~b#}#p1Ekq(Ud;ES zs1tmjj_gsszZ4i;3Jh{A7Uxh`SJ&yIC)?ZGdwUy)GBY!^{>H|DJ|`zf;cO&MdxMIK z!C4;(dFJe<{rmS%E3>k)`uqEXhJy9$*Ei&hkDF6+b92jTtMc>nGc&7`P@hXyT`kUZ zbaeR4)x?Y{!XZ(uh{$wmyJ^FQ4Mty2PftchhJ3nx-@biOifsZ;n}AammFp}Pi%w3x zqr=4o7CPPD*x1-UO)Uk*!=rP=YtK+9WRygLe!pMT<(IBry}HayCeIu?bm(lyOhD0) zMT0X=r*kGqwMi*0oi1uBTDELik%_uGTT+tXfNIb1`-9krk|`95fUBeF;K74uCW*Oh z?b@}K`FfduQ6K8@R#0#jMHfkqhy;_xgLx&GCLS#OG38Pvm@8JU5Y#DQJY%s4VV}mqcRW##Dx&TGxH33D&vqM?3NG7mYSE%< zoNZLe>%_HPso?2xPqnJrbFP51JM9yeEM%?r7ib)jQM#W%(crdvH^TmT< z$CH)&4`DI6n9T}8E)KDhi{#=bt2Ne&D5lp@At)F`)T zh8U1wDe+)K5-cemZ17`XS_u}2S5A;%@=pqj);S%o+@w^eAs(z(f@Q>mMcbYh4>l~7 zv&CTZnvpduGZ>B?9|`$@>IQz-mX!`+7uA9l#ruC z7g?fjjq;#OWHLy!G!9MIk%M+|ygCWqZqO^)ifJLQO-sCHoG%}P`3Q%}NgS9?f|bW$ zYPCj$S){D9Z?e+Afmm278x9!l6k5~E~j?&WM4Afx*;P%@a=!-8dqOAv|KwB;H zEb7rA36>HM)-S=*;=u$7ri{UAfp0DF)dF8-a`M@;Nj)b|+Vx5UrUZ-Sgq_uJ2lS!RaaLRC*T$J^z)x@(ERqd z#Fdd@(+Z)GU8L0STBMT>OIRhxuv!bOn7>kn+vA+^_+%&`nHfT&%Znh}f*85)gVr%`xk$45p+#)g65JhG*Q>{UjW%Q>Ey z0_9y3_6Eprf7<|b?V?#9p2x5dSggn<7Bhu)pFQAdIkp&J>or5O*FiV;giOo0THhWq zD`erIKS*VYL(bK!mzXEd5;JzRF$_?Il@;ZJAT!aR(;1|4y+tpdK4Dt6EMoHeBNXbp zJRI<^B?q1Gm%C_`C`p8ILV$f-44ai;+ITRZ1XIU@c|Q>>rbk*?LFkcQR_h`?@{`rN zaIEtds^VdqAz?ZZ4`!8M{IwTTCR(olqvhBNpiaP=i>(3T&@)e}k$*@v#@e38Is$Fa zV?7aV`vNFKhCw-n7L{e_Fet-kVcBfpBjz!Lc7jnvniq*`0SjvON6Rw$ETVao265># zg96|jBm20RKAhNf!dyI9x>Rm328&^n9;L$I0xHCMlA($>F6hY>7)7huSk@RJQH+|J z8oxg`*YB^X5!S6!dDxQp{1mCSKbf$0ZC6)n>cN9#|9&j}N;Dx?%l?LpIlcm(JAPcH z>h4yljvo&nIN;S4VjWy;fAj&|zBF2&oI;O$s# zPB;bz28Jde(>(g(;$ofWBvk$#1|>s_w6wH%R7}HWD^7DtT3TAN8FEbHI(P1zTT@N+ z_6B3bI}PbZaMiVTuJ6Es1JWC+@P;b9A<1k$ecCYyVKe1EefqRpUsP12cb_JHd%YzP z2!x4TtJRXTXU|Rw){2UXhNRx!tSp00tyarIutS6fjvYJZ2xT#8Yr%q7MgwlQo0ONA zo5JHwO-)g$S%J4*noVqpOc-&Q1nCl!ONkfck}TcRF)y1Y5*0Ec$tF|i%*X}#lxUSi z6PHiC9xkJ-AvZHQa2XXE)E9C&m0;ryG6HJ&R6ALh<0->`<>`5dZA@aW}y-DUoOB2)Hqx!gD1d-lkYBQ4`TZF+8QW};3b55wR?)FtK1moG0#R0k(VhR0^+ zX8ly&P^k`2O)g!Ustu2TG817kGc`Lq8<1(t=~=_$0abG4nl)?6vU7`zu2m40Lw%O`rf4YKqA0*^_wj+0i*gVscWV5tv4Ti>MR^mY|XhRV|Vc ztObCv*DQjKNU-F1u*r`pH!i`fv2x6l^K+nXg~jsr+l`HfPImP7KmX!C4xSnHcszsW zPIvZVy{M}m`QX`SpMCjnZ~pm>x88bd7cR@R*O#naOXTvfXS%1AQFy|yNz2JjvnWaG zit4hZ$z*nPXk^0W_Ats;jE`S)O?CC^gd(l`*@7Q&;YBbaxH90(9`h6V1nm!L=z#W{p~>B=b~d zzo(1+-RNF`tVl!qwZdAm)-G%Ji8%q`067q6jc3y`OVvbR-cl8lreUIG^jDI=V*1ZX zFnv6jUxKM)u=({!Vo(K}!if_nI$c3!dRbW+&UNtvzhB3@|pq|PV4T*wh zVq#+H(xtgN!P^5FWV7LS#o#Om?yXm;lFG3pDNB^sQ{UqCh=4kQc?j7TaSnSQU~oiT z40B5`Z9Le_$H4Gwhpf)Yc;#>-Duemr!J_3H@nAuz9NY^Q2W&YSqNbnlV1ui4V2jd}u@{?(Bh8zMj7R z`cAdSwLX=!7w3~yB;0&+lxoZyl$|;;sw~GHrjvoh#@0m7*io#u>*1#${-S|y+qT2# zn_8JMy-Yc=ylh;Typj|E_?2MrD-HD3R~N0SW~G(79=R6rWz>R^77wPA%0)f~=83`P z@z$Http~@G4(&ObI5CHg_X)Qvr>8P+fM9W>8sn=HS5{dY{iR?e&(GUAeZRf)oK*)5a_) zN6Xi(TSO%nN`p!!)S!p^N-FY8&cq#x-{rjgo+5g%D#_h*Xh_hq9mcwf z;y`LmO-)&TFdPbnA^{?b5w8bJvdQV`>Fn(6RGV3tb)Znd7gPAo~A2U5+V$W9pI zRdTh~l3+9#4A`RSADfD3(y=tmRn8qcJP=x>Ps^oo6k^+q7xS1~g6aP=SgcPitROhW z$4V~ZluuS`tXDs-9NV2n-@!9=aVus&5o|##SV7hbR_mfxe6m_&t%za@ufWBarb(Di z#)DZTm@ghITFwy<7TqNm;=!h+I?eH5K?$aa2g4nejN0KCEV`0_z6d7t+U-!Z>PXm* z40fVg#B&#R=P%FzCs^6ty<~%+!?>c(!5M8qL4hSSIpRpr_&uUB?9-+uC78g}2E)jZ zE~}_|oyn4%nVq1}Tholbh%vjMKrzwSsBat`z4EF{m*=Khg5xC9o+66A*^!=}0W2H> zDHxAS@`C}4$F99y^%bG8!emNHO`X8T#<8<(go4puZBJv7Z0uhOW# z5fr`=6s{`@P7Mt;HJMCJO#_2dLBj04G#t{UF59$e)3Q`u*a7>6BTOuIxhQH9Gm;w8 zN4v+pct4B)Fbf|(-0C96q7^Gv6d8%D^>9P6wV<-RysFCStg0$6EzYqTL}XT&XB@}g zefQmCju|1fq@*NOfSE!b3Qf5ULk;OkGfFMmDwh)o$5pF}4aC)gZRc~-#8|Q_$}d*{ z<12u1PDpNGJIiK+JmeW4%}JMqCfiS)I@LZIlBMU2PIzIn$^zR3Lqx{pUr11AR-nUx z-t>7`shWFdBVt32;CEqv*XeZm1x>#aE#8iyVTau*`7E4bZ-VHkcn|YtZgm^l^q*M+++&bSsF$ocpU~$W(NU*6`x%qxA zPOw=yl@gNk$|^Q(5`;~gmMqCnRwgoARXMCZ-B=QL`-s)97e!c^ut^^Z&5d-9HdvD~ z5;Y6^6}@pD{o2yz0KJC0T8Q!cgIkT1MS3RnN z#Sjc5YUI;N4b~xpdkXzpf-X3Rer<6PL-BmSei8lpMaGFsmCR$nXt3A{mM(_@q%hLi z>Tr4SFGR(F!d6(ZY!5k78IJSQ(F)eM{?GJ~1 za;*vjx3PV6#!w1_?6Snb{87nrLM*9a0T7@W62Hf7z^5x5l zl8ml1@bNi5A~O{&AD8)hqnsPlD4G~|ghDq;k9tP>M;#711`ec>%Nt^*-^loRW}yisCN7fn7>^PKF0996 zd_E(=;@VYa=l6i)l=FNd*n;_-6_n<4Vex$a$!d+YB8uq(t3eEwDq$MehGCXqajiU- zkAX$&jB5c3OXcEPfTkqaMK%*@ZKsl8ftY?CYr~ubThP7>d>ZyljA4giY}^x$$hDZa zjmEOdgot~zS7%VurY5)roavk->Wn2z9H<4H1STceTL2@;BA$_%vB5z-=8>8uaybnt zWHMQJob9i4g~3U6WsuTVt2GglIpTLS7p19FjU97gmumu(QB@^2C6?qFBc7h-=2XU~ zP_KiK3#bYIB3j6_w6p-`#^!djK_v$KfgrUqcf>q43ZxOo_IlWn9}0IJ_AYHC;C7CY zkZ)!XqoBVZOLV8bj#gLO4OS(umQ-ULEiJIxk+_47joEE*k?>Ht){I~CR_jx-|B;?v zUXDds9X)ZvZW#9oY}C+343HCTV|FA)SMo37-7hjJxIqS+yhc6QgQ@D+v0h@v?nAmZ z;PuHN17!54gCSTJccO8F#qcSb{MTUKsfUUst8EEAF}I(2Y*d~|eta>f%7Q&Vk5t%6OQ1g=#{ zsY640uR0Z?Jyq=+vd&H=HEamYVjbdg>5SOyNK2E2TzFfLD;y4aXJ%#sf;KrNB_+wC zPk`AzF%dqSlcS@f(}A#{$5*p5;xqz>iHI50F(&l8ZNy;T0B5i;PDq6ZXT5=-8FJSq z&JFimql`}}Nxp=S%31*DJD$)Cu==~&<3EEp{ zYfIaCXf)_qIz0rQC4KgKRsZM=(^TiC>`T=%R`Y9525}V;sagL9e*JQVPk|pv3eWrR4?R zt%QWrrvZIZ?sURGBzv*%mQO0Hjg^hbmZ&F1T0Gd8R4yeRZ1iJbMhO;*S8j1TVzYyS z0Wmu$St}Q<_M)}U#H)2idZQ@@o2O2lOffhPAMhvZWXkM9vT-qW98%e=SlI;_jYKhG z^jU<_xKuJZRx(D{Xgd`#SRweW5d3DI_Fx{DDK*9f)^n!^Q46?6AV&^kEAVuOU6}HV z4MKte_aZ|CvAt|e^$a}?geqCN2D)TLfn6}G7VE;%p4PV#nS2CU_6#z6%tbw`tdlz$V8%lw5^N=UXofqm( zgrG9NzyC0=yLCa`W5%kgsZASJ@w!VduKNPDW+NDqkaev+{X?UpV;(YU#|ZOJ+0}h# zux31Rln7#jSrvhb27kHYoa~guM5Bfz+OYysnC$AzGWf`^S`i5?rj{2|3$Rwl{2>{& zm_KBla2oG)h3$$F)s5OQjXO=efhvk)uQP3@>)B+kmnEh#U}%BxzYQl%B7W){FH0n^u* zPi@J?rXJ?dpfRbCNwO5w9d4hbY$>7D1kZXDhzKf+T}5ZwAk~_>2JK3JFJh;<2BlRm zyVZu>osrC1(cRJB)^<*krDS@d^MWuPaWP>UnzAc395qW|M>0dLs$ywnOq$v_5?q`H zRZ(%Od zZ#lYX?PZta=2DR~o`CXkeoz|!#iOI;<(av;xdm8ipy1$)#+*@v+1sMQS+RiMh3OsN z(%9~oVot7NT~u%NOn0DLPM+@{0zZ&t%c0p7r%9sXqPb>#Q7gBgC0o#v!U>o={Q)A= zf!`7|;Te}_yaPOEHa9hOwd1}JaAI>m>9;51o%2X*GOExLH084O4H~t77R`&0DWBL- zs8iE$7+$IqaJh3#_+?5_mj+r44V9Fn;lND}d|rx}Hj>CnL^1aCHK7?t_U+oWuR${> zSK>w31-u~dE(50UXdyYGLJ#FcufXC9E)Ra(Nmqgvmzc%bZm?hXESBid{e*fMGyjI` z%~U*k^!zk_6aropMFyBAjy5od7Vc_CWpIkQ@ZSm*XT}%NXq+vF54SkAdDYcYg8#sIm!YusV%eZ(h5_a!1q0p1Fzy1*cIV^30#Z3{48FLW{}aJt^Oubk z#Ed$_YF#vceX?3(BP5EcEM6PW_pIx)<;qmJ}O^|1wc7*f$Z46(R*7;@1(48gd07?ROE4AHoG zg0Vb|c(FV&+D2&tUzYbV9hBmh1D~Tm9suC zWmsh9O$d$vn{|AGZG@~|4QrUI6>1i&VaC$c(G|-DjJb&G>W4Sf9M0SX1GCP7uJ)!T zjpVmtQ%8m|ArD1hQU}K8dtqe`;Tl8*lTW&IV0`RY`%FZe&!menGTC~pp_q%g)Fd55 z3+^fk2C2rHmQhmT>^Zu7_wJ*8lU_5t!puxsxnJi?o17K*M`TOlg{x8m&Y?X)O`}iagQ{$ zcK6uRdxkw>90iELBeCoBiIZKE84}BOhV-SqZV)PO2MBiG~177hsdpl9B=#rPAyoj#TH_&A`r>)i0}I zMmAUzBB2v@aw7V+mFS(7=$+JnV8hlR%=yE^%#J3l^nlHzBANgH$dUubfT=B}eq;mL4 z?0JeW)I7%eXg;CI8MxB(BF$rrHNKAIL-W8v(F{b}7HMZ=45?@yhFIJ@47q3?hG5)0 z49RF7hG^V8Y*84^!;U1z^2GWiN~5^+8$fYL$V?Pnq@4{*u(*9WE5Wq!%0<_y3r-%Re=!{-WS4njTRt_)}F%%Pzaevl6LTFYS7`l?~eI+70{ zwUc5y3+H)=-4MoZ0#_HLT_98)8L@*_>h6&X#G;WTJGs?PBGSo>SWkzg^McBlM}G`9 zDZvus!K@O@_feSSO(thBF1a*G^Ct~swMI)$ezc@C{=8DHx_Gcr36>TQHZ8%dG1xqP z()J!S@c$%?ZNgtK@JG0I;z0&>_3nlCx^n zBEC?gH2A`ge2e%VRs;r9#e>--*lax547a{vrIWb0&c*hb`_b3;qpz213`VoH4?o_R zUJFNx)oV-B(ri!>EJGx=r}jP&;nv?-IGySXivZ)ozR92vx4PcEJV6%x!J4<`Q@m`Q?7#w(X2!G>cnHXqAD^?C-WkEOqa z^p}vn!R_*j*jH042@bS24!FhK+}w0sz@}Dc6D$^mzXOY@mNRX`(^I23|1;wBM6i<` za!)(^;e^*cJZU1>=n|&7p%Qg>Y6ESgn{BHpv^WhD3TpH9N++!6qhUodPW0sGW+WP9 zK6i#iE7G}1{F|79%L(6CJ_QO%t{ zf4*yy4!V8Q!^0y!A*Z0YsIVwIL90u^4x81W2+qyTg_K%jDw>mN)tLe~xZ~GlL6gkL znG*7#%3x#7KkM;^1ev?d?dQk1#lQ$InQ8Cn8K3iOb-kmrA*z9vVX>Mug0!>di|wo> z8f9J^unP#0Ai(cb`A5cb|coIhaM`f`?j+`?(2($(%Sai{zg(&Wsk)$XM{ksQ&@p z7{~uWFYU9(^`F&9Fi*Vwd8M?sI1}4jjA0s)_K3vT`Y{HJo~@?wV2jJeS^=8_-zUS* z!(G^wS^$miS&4D?tfKV_AARS=-p;F?i@lvAlAaQY=_#>y8l!ebcU(K8MY11F#OziJ z>~BT@qjodKEOi%bbc{|+zA%*onpJ)5y)g=gC7c#m|6?_eF`ZXI|1hh_)J)J z3bseY-JdbdSF=@}NU2!d1 z_1I&zwF}y%HB0UK@<-Z5Ld@xkh8o!l`uto2b1C8N@{M<$ZCco_@1R}ZLAw&)+;#l; z@nidVLw4_$nt}dbMu#Ua)^EznHg) zwdca0P3p{uz?74Stot;!KiTf5U9CtgDrH2-vNR-KzZr_f^7Xuhm!b1mzoBajqFq~1 zT(S1jTfX$zV~;&}@Al7r_Ll2epPDoVsqLR-d(3iE`#IiN*3b)oHmRRs%w_!?%qhpV z>I!s#UF{n_ca~Z3dMBb<${J8&O|*wok$bkk{m9#|9X{6F(hN2|d-lKqr}K?B$Olqy z8Wd{gtQzgdLLF=G_ZT;(0%di2!Ky8{tg5XnsRa9#Em^V5S?oEFRI51yZD2SZ>_>P?#>5qkpcKZe5U%Ri07pts#} z!Rn(nuhX6zc4B!O#fx zLhc>yY$zQX?1fFVx4F6Lg(Ni>Hmob6F_u~5cMsTT|4Y=FXWOk&l!HPv2Q-$ZxspHlR zY#SsD^|Lb+u!QzCA8PKK2&#hPC*fgchp`-&AY>)a4fpg6tCR7|QryBYe`2ssIr84i z&nr)pm+cM0{{8nhsLs1GYuBAtVVZ6bHf;ELlv|m#g3U962#(yr4%6-6^~j^?c1$Bk z&ag*UKFnss?mtn?GP~;Dy$y!eR_2WB=*@uywBJlqTZ`QX58 z2sR_H2iwEUPuuBCO2YnamKN^kNk$oF1=xXSM~)n^Q~YU<9HCiYlC|q&9?$c)Z&GdVd8bxP-{Q}9OACPr-;SEBrtpn8tM zV9P13!aQaZXZy~)n;CQ9oL`RHJ=uT$6y~ZiqRy@;hpBfaKt<+3nOd@}x_Gq_7h7f(=OpQ6vrcwf z;DOV_&ao*!tj{6O6gHL(wzLZ;0v`l!Z2eicT#n8DQ>TVQnry5ka&$qTFJyodZ&jWy z;%q*RiyZ}cJ7aOu+qienzNTJ`Bp18>q6S9l+3ATktaO?jE@DnePlv0EOEjmm9x6;Q zva4`#QIjS(H8~r=GAT4Ohy8(?h##)Wm6bL+(*gP0H6_4_bFv+cYM+iImY3t^r~p;y zAy1NvS8rNhnF)ztkT=wX!*J_MD1skRRhl8l~lI*Py6&9yG{MfABc;G-+ zT7EWi=^zu~%NlJt+a~;Aar@JuTVcQRKAJl-yH|@j)6gJ#H!LIDYbp<3bzoFpTo36cdNmgDlTypYL6OD3A zDG?e;%wCRZrZy*0J%bVMRyEY+=U3*!ozrU4$(a<5$aUEIA?@v>RF_l%Uav^f($V%P zzRUu~esfQmwXQ?}|Fl40XW*bKDcK?PA84_IS;~>ri{q{2Y*e;=4Q0N@IC+J}hQn{m zHZH^VWU7t^#<0k3+}DT+VHC{IR@`Y?;&F6zbPW5b0j{G48l33s>zip<36bNU#bsGR zl~vCscA_$=;4u)H^+&`*hfelR`E|I-L+79BJ$YzyQl3}Cnu+7Q;jr3_=Yi&4|s?+9oucmim(ePxgxRz+=QZQSjniNiOdn1XWSKn zNQ%r(dSzrTq5-AWu3egCRR3=~{~=FosjT2adH5`7Ias?#c}-s!}yZE9h*L z6F+n38FP*kT@Ivmj-I%Cz$QIz-n;qbdB}y)Dd!p)EdB-y>F5|GS{rjZE3;|ISVu#_ zk-bNnM`vA5R5TqR3bt>QWVJ~(b-Rf^m&*$DZpSIcE#p&eNFvN_e#oc^Qcz%vxJQ`c z)C_L16-4p94L$W~^ptGG9T91Lo*;&&9W6%>ABCyq*pcJyBU1u6Sa3QzPafE_XV1Zt zJy;Wb%yiJSa60J5bg)G3bB>N+S7UV48Bp5tiwn>h1%gJP72p4AQ^lYNS>W9w&-eDpAqat-`_toJbbzxEP)*&lYP;ga2059 z6=;wb42nh^M9a>WO%0qp@B!0L-Oh0b7~~w(z9awW?IrE@|6o?g^LkxFooBIeJ1Oem z@-sO(Jr|KH4cK1ID66em0_78Xm7i!{co6v2vVF_&o;|o$MGupf!8bBEI2tg5txdl1 z_V@QjBEHFyfo=?@#&`ex+8etYnf+@BDE}|#h1&nsyujw6|CgB|dPATVm*~#V41y*n zVC@;`Id~)|sY4T+8;Itpt5v7bWfUAe8_>jNho}a3Gy3&r(5+-*27CMaJ~%t*^qRnZ zmXK%S>@gZ_Ya7`A-q|xfqYg&1u0FQs_n*%Yb;aI^(TR#;8_qv;U`MZg$`?w^8=JCP z)nzrQsU|_iu6Kfn#TftJ%n@wWQS_%5Uj6G~=E!;ccyoL2AiI%gcE;0tcJJG7zrFWt z?*zpeO8iP6mg)cD98pxWu4YMsQfmTkIspb`ObJ6HLm^cLCXGyWXu2I5KnFXN_Q__6 zM9?}B7^^K+=^oG2)KM5FF3c0^^Se&qW}rYG791DN6py3a<0!Yff5L~^%9dxtiOJC9 zKo`>?-hA;*%x)*n_m2i}>1^29-+K7{_uoI(F)$6eHa*bYglYU7`OyCVFjuVBQV*2q zmLun|ddB%`a}Jy?H+*UXPHyB_wXzuq`$@>*BCP51Eb0*CYDi5Jrk=X{VQ+WL z5>49t%*H&&*{-Es<_QGUV!e3o94P%1p!KD&%OdKO?*4u> zNuiIf6)r&ym!O8MNCZFNf}W6hoqg>cGF*^0>xRxf(00D(%;Y3HSd``%a|c9C3Y<`L zlMPx}SXgUiVc*PTd;5;809?R^K%+Skhj%h(XMJb}D3zF*lU4**A8ebYr6g!&!P!By zqRlalEf40OGRM?zOHol&t70oRCeKPeK1y3!hCKwn8cLUIRtbVp&(!(zg5Yycf@p2W zPIlvi9h@nqG&tvGI?vc##FF50d5Fde%4h1-G9W1^LOyg)1m`pxiX(oHCnLikfDZkz zQ;tU~u0z@_RsoGedGETX6*}42Fa5*RNl{_r343pf)9I*4YWgvYv7s7uDh#ciw04pKce@+g_Uozuqzj^DX) zXD*UTP;ra=r*4!6bx4b;5LQYkRcwj~Fp3StD`!XJ;VtTsflZ8|WJs&ts1%9IW$4uM zQQSndP$veLJic#wU(l@8QNW2_MeTFEDkTmacY%OQ$2Bv!R0fKoG{*aaZZvN;>NRk% zvYc9PFq-*Ps?6)HL$ErAP${6?_qsilP=^DV`CEWT@>T<8_4==yFijM z%cd3=B@$I;=WpY={5GD;Nl=rb+ZMM4lAM$?+mv(r?uR#_?5)Ss`8FhZCB2EeUf<4E zvD_+|Bo2s!9Rv>wT!FyWwbU?+FgXbr`=mjEtv3l|#(KKK!UhF|YkjFy;tVb-KTKRn zJ_%GRqd|>j>B#pBf)NB>TUrTL;3~}ky$T`e+)LKYGn!sy5_Dr0g@{VrX(GY+Zhr0WYz8e;vZA1W`}o@dDzCbVB*`DsYp?!|b|ahv+mTVUJe?B8B`3(X>x z-b+#BZgizLo}5Z=`DE$cf%MiW(wp5ay;rZ_q6XYv>7A%5(p%@Cf~PONNgX@~k4tX^ z8@kfF*q7caNbkWt(pyiZw?jk?0E0nCiZrhLP0OFGCcQH>JqkjhS*;f$JJQ>#NbhVSg%CQVccasl-X$u%RekB*GW4Xk)n&07deU1f z^rSb6BNztgAex0Dr1vJ3-mpY1E(Zn)(i;!{(G~u8klqPJdV^cJC%s$M5|!ShUicZ( zyZl7yJv-_eutQ|%wHm$y%>{f3YJ&kXBhP3|0ZiF|NyFs(S+hT{^rpVYu8o;4HXllF zMv>mP`_jAg$-?_sccn$q0w{~QAx%^Oem*o?E*&W*@yZ7~FH~D1I z4I2}p8(d86j_9s}3PTayE-eGe4f?vkm{$8xa%&%buAd;e+fR_(PDOI7=*>~d&1rO0 zazjP?WXau4EHdqq+`6A8xod?2mE5G7qw;WLx8&~Up$eAF2Qlce$U`0Z{0#YgKM!>$ zhCcrt@@Eoqb%ZaIU+L%S?D_Va%C}$I{cRT?#wFh+uS?&M*w2&C;ULPGzvs;Vpq%+@ zPdxK~^v?Y1V`rw{C;yY4$$gRh>h3d@>R&g>|DoSjet~?s|7}0(Q(r755hcRZn46=< zj|!SD#DDo4`t|kr*46{)so1k&RH`b81U41zqndlO$?GXAPp6cPuB~-CSc`yTC$~cP zK3V|GcngYmA`6EvZ-zs~Yt^cuv$xxf08Ka(4~H)fW-^;=E2ylJs@7rKfbpwTrFJTB z@C4D5uIleFYJh3XLXt!hr3%a&s&5jNXmyPcc-42BkB?g`1K`oSTV`;aG z+iRhAyId;eV2fhcz8}VCzKlXHGjv(ikU$cNNwo7fj9+>hH4sEqGHmgmf+h`d&$qd?nK5L;(YFH>z z8jZSB$YE&Hm97R#+6^Ap0x=0s+I`9RM19`UFm0!|msTyhO)UdF4@2T>Q`1DdlwV~C z(`l}*=d|rX;%yU`cPpmo^E5uDg5D_6uo>F{>ZTVrlB ziu^DKA2R8VE}^wq#v22Go3_nG1|kEqY*cC0j-zSaR<#bT&dfw2G7leJ%_|YFtZv;K z91n*F24r4j7%>W6S-HkzwOPb#qnpl!G#?}QC#l%yqvM5R6TFw;pQ6unC3_GamU8DO zA9CCee@K2T(MmrV5{q3_VH6P!V})E|D!tE+$~}*t_u*UZ@(+Iq#Q^77P;P*DJUi!& zOeOZE?Pw2>px$`V$oDVd&ca*n~?LR(HbpQo3-1|G0fwQwWa$A1g3fG#AF6(4k}(lL)A8? z2U>X~;`0ITGHl6L7=(>T4LH(|R^Wu85pTW&-8P?1B~upS^(r&sVLxAg{q?{6&j0>j zfBxrxe(BCqp?K-idmr7sJx@J*p>Px``M1BF&y#PV=>pOxwHl_r2_N@^Sgg<`F(I`o zoF!Ox-EkR%tJdKj7=*V_ENtGosnG!4SIj{Bjz!j2VanKS%gf{saMMN+E{$qO?L!{M zsMl+uvHm6_ih2y0-IgJnn@T?wN!p#Ev&{Fu&ldEAT~ps<4FzQ->^Gt5l1NqoZh3RjCmAh0-&+W{tStS-y7d z4!I`b9tbN7(WK7~rwKgG09^NGs~$&oSNFTw>QxYQW2wF(oYC<#NdqZ!3WBeX>XO*k zvC*+ZZ)IhP{Q~(ViCuZ#thA&Y(`VA|u78%UNG(S5F{ds0^-FYF+^h-u5Qw|s5vZ@ z0$c=b7{R90ZG!?C(3F8eSd1AQR6Yzh*C6IoYf8htQJ_)P;UJ=_kOov(AzCQf&g2t= zhk~lIC{oFE*jg$D`bRJfkGN~`x-$Tl9AdSKR8G-`Q)}Ix4xqiy1&IN9hv+3@Ndo=U zYrNT2-0h~`UkI~$+FRW9Lbums>?`LHvpWBkumA4v{_d}n0uUp4Vt_}&uzwIcU10y| z^XJc>22_5eg`Q91(1`&fmW**=;t9X^upxB3#_4z|cg6FX2K(-HP`$tZJ|vcq;ldw= zL5RWD&K&U?Q1L+T?PhzDV^q-Tk&A>YAv!yWEA6y6_OL~IXW03!y_+WU@4r8*Hk-+5 zQ)`0gw0HtEtV9P=TR-}gSKn-UPoF+ME2hZ@AB1yUcD^_6&!C523z7g(@yd&yNYCtk z;0e-eaDKp;4Q8vuSPtuD^ZHS`;|L;i;nv@1ZV{Dk<_T5Q(tq#`r$ z1{8Ct1f&pgj-Gi6coVbR>4l5}&TblhYnuu_RKXU+=|K>cP5&$*+G?2wCV>p-4ovS( z{xR-^@<_1dV*SE6%d1878P4dtA0r%i^(s=|T<%b4Gn;F{?bOOqa-}F-H=u0dA4*WO zdAEdJiN$hl4#a@I?sN8mJdOo({e|&Pvj&Z)1pm{_p<^e3dmh%cVw=IB&uk>{$r7Uv zq0#|*AG;-LI{k>mHE}IO0m4~~Z#F#tfwGDz8i(qaUFzM7;I}MG9w-aek&zLrGS!Wk z>P8|+uI{8$#&-AbO8@$3%~!e6a(PsKm3yGmJy5>ey$`Ut`&ZfWC_3)-vbqPmcZwhZ z*$ddAa=8t5v`ok+wlRxTL)r$*`3Lv50p@gNKZ?a>nL~tm`X8Jl|8bVNrCetkqe!c) z!UNZqjm=v9-4Cu~)BNb#2k(;iA;lR%BamXIDyiWp1fGQHTtpxnc|B%!ZiKkV^JqX8ThUZM&{1zrpS8Y?TX5P{si zd-u*9{cQz37C8<*T1z_&yyR&V64oK~7roY5;wjt%?!@NGl+fd&cDvU^XTD0Kp^=J? z$!oVC1)2Ma6K9|Q)Tf?5OMg4s>oIyXY)`SBPTt$D;>tfnv)S4{mY$+eN>iRua z_F!e_oaI(-tSs>D@kN&Kro+!4et~BfCfmx)+IuWt*VPvmcy@8TO?W$NKk)+Jo?Kv+ zV|TQGskQsSHgj|zlZE0HhaY7oIJ##kD~IlXPRv(vS$*ldgdTlKQq!ZmXNX6HFaATr z`hgSVOOl$N^`tYy+wc8nMicrTd0T=hLUkNcmqn}g=+}zdj%O)LzN)LU5Y?mCToZrt z{nq&M9M!LD5>o?LeoYpgiIeB5H#|dR>ajEX_a(66`uE8yy&kS56cYAxNMyrx9$w?& zk?o0nFMso!=Q{sZ^G!s(=Kp3MnR+@OiA<1%-cOnP z`kAkP{T%s*=IfK~$;p=|$-j|wk&bV^Guiv8+#SvHqU{+91zVwT<;^!2-+c2m@|vXe zEs%)_>HfUPy!P6;&Og(>_Sz4wUHjIxYb8=ZTa%r6U#Is|Y0HYXtY}NEbZK4^l+LJW zAI?t#3oh)rx>-3xLYe_f!*_h|f@-_HV7H$InY^&)3XjaH+utPDzX?wWaGAXC3+4SU zfdQJ-cFWL*^6%QUSw_IFH#0H|ii_S(@M&EAIrKM(WauayvS|vvi7ef@b~(1Wbno)_ zzW2SGH}T^d`R|gteEIVATel7#lngAMe67WSU*f<4w_4&49-QAQ%K=#1)OtPSKoZ|)mL68-&x_4)~tqo>t3t*<{k2;1S}2Y5t9vA>+cCQcVN=6M_j)(JmZkSfa9`;za~5m~0ycE27e=#QFjdIP;-+DxO+c z+RC*k#LL#sMQ#CRdkf)4>1-F5*Q|hr5U)rK^|SEGrQ#W`(v7Co>XfWG6J2XIuV2N6 zw35hnbP(|-O{Y7@tS4`ykS92Epg{PdG>6*NNvdsV3~rRVl6}< zm^Wbc#_K_!QHsKJyG{A}XtxVrx~k^UyQO)B1gk`R`-QpMrB8Lyr33P0j+lTwPcJ`uOUt zdB{w7$lIl28XkZ(D6dy8UAi=vsOh=ucS7;Z)_32*o_!jS+fKb!E+VR5SD6Qa?{cb{ zN@A_b8$rSvSMUy)WpF zfa(Jg%}TwEJ-^w?u z7!##4TZG;Zv$)P!qc2ag$HWz1cnYAEHy>n#52%Xo;`l}zzofOnVFix z%p3Jknuh{wwv3%T@u?SHc;W1^iD7*ewe!xREN9L>h>>x0^07rKvhFTC2t{KF%FYel zxly@y14`B1c$u>}U2c!lYSgd{97UqWW7DP-0I~Pd#58>bys5r=q#lUJ0eG|k zzTt38oO?UI<+1D-rK8b(#6D+^zz$3 zjAQu%-G@7!TaKmjE!ar3l3pI{MSpr2&tFe!X-w2)V&U@lzyJN~Nn$_t(n~L$nsB(? z0|PEIz@V8ecvrWwkPT+nKu=2lE8OkB##}np1bGoeU8~uEF9xx#CTl>P(13Vp5;7`T z=J`qyvS~X~wKlOG)de8Hg!(p|DnXF2!x2qcin<)q9O`RfMi_DDM(Qq#cP>~tp0I!g zi(&_N*XFg5q4KFhp_^-gAaWT2H7we0ne2^J0X*C~olx7}u7R4TA?PYAMJ(*{HUPSb zG7nGT39Ot3n1Jz|1<(Q4TR=u5jV6cN&mkUebW^q>q>TX&!c-~@)+Fu&@aEn)y-xs1^~+2(gm^!k_@vsATd54eP476!bv}S?3lwbZXX@Z z<;rEP7Lb5_IMge1;Y=nZF_8#;D_*w=T;oiT*sKf>9}2uJm^?kBoMEkP0s&WRxkpCa zt^E4@{Cd7-1#AW8!D1N6-{a#0S`uDF8CGg$!B>JAM@@Q`XLt+dFw62PfoEgO%Q1F( zS_MA?HS=-)gkM|QxKH|Zsi-|i*&rqE_HA+-1gnJtNK%}L;m`;Rl{cuJP9)~`ZRLnR z7U>bnQGeV$>M@Tos!l9Nm!teRG@5Zqm8z!vR=<{C&=Adn;=xsFI8h|!!=f)4yMYig6-RwkijcCX!!UL4+CSvZyY$xj}v!o9P;zWQJuj4^la z%s&WMY5Gt2!R;S`LFY%e$sMU*eOMX>+hn<1s?=K)o{}WjN`093}aa(EYb7<>JXlt_3xO$bo z*J4>LE(nj<+QQ8nphaH0{o^;@c;m;n*EZYSjav`MUrMhI!VUk^iyVwEFPqKu-KkJS z*Y6E>p;KI2vYAoJft+G|z34uyn+nE|r@s z{JG9T8mE_11&7Iih;OBwHoL5dpqpL5C?UWV0ERMP;Oem@`IsfMmBoWgZ)GhyZM%`r zCiFJFTCK*jqO$q09$T^QWw1XcP*fKd~0i9fWAA$&FI90nJLm#kZ`da z-=yjnQk$)g)eX>m(OMP5PIthMv9)PrzJBs#{XOZxdw<7rn%$@QPjH`K#eE*Id*OKs z47lu8ujj~-dVS&uvW|v^@_F#GV&x25MbZ_^n#rtJUybWa=HI4yr;Eyre?AyuHwMuUZU( zITkasz;Y&%HH~8mB!GvI4+T}AEohtRgnSgX4dzp1^#D!P9W^nDyK@dB(jMS;#e02) zs?(X44)s)$)h17q4yI1aM-kOg>A6O&*-~j8)6g6Tw5f74y9AAtO()IhFgQ-ffzPi)2An6Y*;byjWN;o2%6YRRA77ziPo^xq!zZdpM0K(u7fh zi8ln_a84XVzAgQa?AzL+tgYCB+x3~5Y*we6sjY#%aHBSpPQN01C~&P?<#^R-T*Ztv zRn`FZrvK?_3p7iEX6}uEbq+jvW z;1IM%SVoCNFi5Dox+U6Y&?$KcMn<;xh8i|7U`I{#Q>S24m@5>%9IBa*B7ZOxays+* znVAcYdKtX=d8acJqP39+xXSizbWj2oC&o{lQ1mA1d2t32$Wn9% z)wDs_G6)v-yyH9)QVCGl-Cb5#Y4F1hUU(z%24SxD^abjJIvgZs6FsD>r(=cDm+9Gw zXD7Zox;*rC|GKyBZ9m7W=Neb8NHDRuD~&m|WHLT-igB&BR(q%Y68RDTtT-x;@|79k z%ozzb7=K2Xsr0Vb$HvU^jT?7*9PPrfgNXjT+WY>od+~^#ST)9|+_6f`t=YL3{Lw3V zg-wsfv#GRA;|M?}bhXCOWhUlkmd6;+W>@z1JuAArXVR1BY{{jhjgxgQlo^WOkDE!> zH7>*VdOu-hGVV!thLLq~6vT2(xH616zM#yU$9iYVk1vidGOC!H^KT$qvp>=~)6&?| znBduLg$B9aooUfKXqgH!!I(GZxp{SUipv>uMsB*Ind|mb(H*;p$?k(t|N5`L_~O@| z|Jw6%_i**oPk;8awnMf<^3FNb-($yo7F{lub-7koftXMar^}*sCE}CSxtvOs%hhVK zddaRUr$!ImQSRp9d5MvcM55D4bkFleR;*$O>i0*ZsKH4; z(29K}WM?xgXv8b)Yyyn#R;&AgR@M#&w_BDGG}4#rik}iuitelh4XUT(i7~Mbqvr3% z?(*3!uR6xYFoW5)x-sLKX_(y6?nu)e;hzWLK0GF9bs|TKv6#oBBaKqA+$4IB2h18Z z08l>ZD_I)tAr-k=EepkZZHZP4S&qfhH4+RCk554+jCeez3%Yi_1P!wRt<@crN0DSf zEt9TsLVv@mQ*0Gw`O&|O)Jw$*(fc5ERA5sgn;uX9FU5y{@pJ$RDi%@lD;OLZpPCu< z*g`80=HZ3OT~KjqE!4R}_fAjYPAP{Y2uOR$xk-n_jP8_Vf=0I-h1A_8PIlXw53m zc~68a$Yxm2R+(LGTY;F+^;X7?zjFJ}zH#-&4=<5#NMHfu9S*-A6=^i~-}u8*$KiGS zLkSQlK9PV$tF%p@A`kiMx)gkbO@TLCr2y>HBFmNH4V1G z2?$=lHCy6AdViFsBDn?6SsnQ8dR?t1Knrp(oHbhhfz1miq}L*Jax2g?Q`L@PaCAGm zCLfvM(23N=)W#wv#YW1aqjf`%Hqa_8 zQURN`s8gwMMbP z-2ogM&6WA(6#WDw4IU-IHa6`=5vn+2r-`XLrUK@OJL?rjN0Zu-c6CQ)HB9@$@eZTu zRDrDt-Cql1(uddXhqf}{(XzHT7h;UncL2bE1HN0AzYCI@?_RzYX`9I=kSM2dk4+>N z;WaQlVxgY^E!Xka^zyy620V_PDD`d@JK7=mABVKCm+=4Xj^&VY|FmWhox_s5TY^jr zj2lMI?^2T#492-g1<@sU`R%tqxN)=9sN;Fm8>18GyM^3ZOqOLYTpqOUShLLun7{FK zM}X#i~QN zjL5CE2M=SU4i7mDo%F?Nt#-2vP#}WWR$pLf>L|WCefFiV96f3klT@5_{~7Mgr}(P` z{}itSwb5zhNg}+YjYi-2)?a+3TOBx%yCx1im<|JEg0?YCmg zeMcbux}2_K4x@qkPAR8rEK@Vjz)9hkFhMldp~Hx>KK1Eekk#Q744CLg{k)QYfvf&Y zT$RmMS{Dwt;m@`PM}t0JV0d)KRgOQnbB6#cO0BtMu8=6H?EazAfU%vMN6O@l6(E(Q zqwRVPPZCqF7P|c7zy85{KgwY181*<*)c4-0GAbUl=pQ}U%IYaF=CHk%TDU5+CXu~x zm{K;RH&#Q@FeLxIwAMX-;2`02dXop~G$w;X1D=%SrS$@9nnHBp*f5;#$B{<{zIFI? zDiy(Z;?vLl;xE6Xf_k}(vLMvuPBa}PnVmd&XxMEog4FQcn@N>z@?>u%{CnK(ALDNK z>0HSWBtHfVdU>v!4w%h0&5%WwW;T42p0)u9(gh#GLEO=0#c^g@3~!%>uTbB?Mg{ep zWeP>1bpn%X^dX4g(~#;WlH{oKrTcwHvasy^`{5Gle(%+gO7y<0i{6KS zkGeDwN|8=>lk!=%v&g5tQirQ0g+i! zLa{CCiRHTfs4iJLOlobX9EPzHtq_e5%uOOT;{j|_0H+A6c-oME#5^>XIk~GMfvQ_ ztiKUY&}_W$c05&tF3iNZNzb#N#tI-Cu+4q zsSTJ2CKQq?8nw|;Qyb47%;xnrYX@p#VE5_t$@EW$@#~)G$u)*Y1O?VX_sNw17Ek8v z&--LzQJSfkin?Qw6?AeX5-VU`fobQ#Eu@CuS^`_p|NE1B>Zd+A%nNm^xO-lt9zNLG z-^YVJ`!gS`R!99HC?;gI(?FY1+lKy?Z-XlZ9>ZZ5s)_$SJou-6>Vw~zR=hH;ENmmu zn^uBLnHRvIVBhFr$l!>kJ`YyZBn5YJS#Z~u#awWNk6ES(3`J@qQ^g&ziQb2)U_$zB zfe8kc50i0qIo0rb8>zdIyv34_?6E!d;p*scE;l?{4S%~E)#rVqK$Nwe+j^NZR<7Ta zR5!0zjOV*i{bu9=U}j9h-sjNkTV4Ne*Z?ILfEb#j`B&fhtGWBz_vhXv-;rM7L6|W( zc+tQS?h9Z3!px*&a^@_OJYM19i3x>vMQA3lhAcW%N=+ncI^X{N&?#-fOjc%fU_a-p za7tGsltNGB^9k8P^YvXWbqNlPX0x7LwOVAhP^e1029rXRgi^r;E-Xd!pz)t4w7ze= z$o_3wf3T=+|CH7#Lgdrv`{3TbV|rqbnDD{%X44|*Wi;)%mQB5Rtw_C$E&`GQ&z22zY^XJhk>PH>h+bj5e zGy?dKigp(mi3DD4um^@2u!-#+Wsj)CJfzkNX%m{$vJrx84R1vYj6Althm}gXg3Mfv zVS6(JBc)Z%Cqm1FukY!nr&K^Rvk9%d1)n>_w?7E~`+&zQc9h=sXOCzRnM2~bJ&?@G zDiI)#BVrRQYO?0Vd zBN!Z+PX#Ik zZc}#ly4bdwgk~Pw78XBf9~*u4r*pXCIb6}-yIWWXD(pbzoE5B$*r-&L6QI-NWqVT_DR z2(QqJtNeC2&Q_GZP+9aTiZ#cc3ZY1)CSLmYLYbcsOKk4VtN-m!{;Qt0HmOZHCtE2e zg1Yq3uGfR6=Jcef^_fBIr*XZGVS4&2r%rw5E5GwQzhe zT!ELVcT_rmdSK5{eH%qx&i%zzi{T!QG)iE2k%$rSFyog_rSto7MowaKIf>+yaocIz z{&8AHO>knDxpeX{7^$`~(8^KN%Voy$%2S{fJspndhfUk^yOFzdHu*}&*{bXcBG>-GH?~h4iZ^w4b$3!zyO`!hyO%~b zSs?i}rffwI*afy1R1R)vbe7(e?^|{*BNBBC;HW|XOhh&W;f=1LA+T=BD2C(?LL3A@ zGKR(*lt2@(PMt+|!AFyYCT+E*)74J1O&a<5$_nUKWgCzos}Kn5pa_GZB~a*wT4IWQ zZiPKFNzbUJm~@G$^}MuW7|VSaOS949g}O`$8!TOQM=xu{at#zNQ1mbGa1a`FvN@Ng z3ENu$nPr-Yqmq(ru4qAymIP*r;zvO0S?XC2JG092(bWfuzy6CovnqY;)VS-Hzw}dP zl|FGx#=W7ID3>ld56fIrrRt*sz38(Seb!nmUIhQBPXh5wet9_pn$A)Qa!i{})2w)^ z)>mb|fxxaw;&g~BD$jh+h+JWc1ZxYaF5PvfWa1FcGLy*4vw&+~YuN0P4GsoL8RvkDQg4UJYcpu!zu^VmVg}Afx#}U@_aWT3vqdXATb#bcMkt2) zQGr?60I7&9*>Dd7lOED zN&9Q5n9CMwtk#&?%J14=o3g*xZ)JZ?rjr!;^4R{`pPjCre$iyqh!Z#(Q+Z(4!KxP3va7FQP_C3vhN>7S{6y$do6%@l2mGZVsAW6>M&fe-IAkS=&7M^D`E;ew&707qW#k)ySJ#A20N9JZ^(5tv z294IJevZf_TH7~VfCjy*Mfe&Mh-acZ58sL#M-$CX-Rr)v2#%8+J%4 z4+QXzCfvJ6uqT6ufEA6&Sgr~Jm}GoweTDGNJw5X@VLf-rh6?2pgZ`L}Q2#AP6H`=1 z`Z-7yiZ>7F_Vm_hAAmJ6*f%CbanHcO-IxzYv!GUVIt8+@f-OO5 zV!Nh9a(hq5tj(6u?=uT^+#V*MN(0M4=@He*{(tSrr*JLmjW=OOhEuA)C4=!?t?KW| z4i@!;2Vg)TqC~g+Mt%!oy@=V&${s}Lv)R(lw%h@Ip|USKkhGkRU~5G1i2@jSlLuiK zJ!W}dzuhG(Ef$$PCy{e9mx8R8X*$PS%6O>JM>YD$S;9YvA!#ce_>4zZqRiChpYGcH za17AIF-8y@hD`W&m{^!O@iemE#!uttI5gazu1dpnETgv;3cU5uA?U2$>1q83^AV1V z%+rsEl3hrnyokjk%8NEvl>-l>kZkG4%%`y(crbn%_%(jv(@z9o_ znlQ~~>1w$G)rH|#->nTlJd$d|yQ~iA!_+p|Wp&Uo?dJ3JHDdA>l;OTkjI{KgPD~%y zBU&*`gI=x)B<}$+N_nvrjaLo1dZ#h~>V~~KZ-0-2&KuFp(9F??YOlX?N5b(`^Bq+* z-(j>rOlK=yt2;6lsLtI|i%MA&U5h(X7U9O-@@hxUQcLP&5NW@Av|rA!NBylD_UOOF zVt!NsX3dXkz#8*oDsWG-_g9=3E6xP=*~Vi^Fh;-*^=4oMdhp<5dazenaq7nuVT_bL zm5PU#@84h8_yk>e?~Ky>S=AI~R4L5X=9C$A4kL07V;lg1iX~fM3{=M)33vd9j>poQ z+ciilwVv1{GmLfcYs1=3V0lyjz9hmw4@7*v+~(x~;LT}^v60`T*>)RSK(f2ML8n8c z^0EL&{Q!*>=p4ad(5VBO41ex)>^2)hzs8;FmOCq>L01NlqP8=T0(exrrN#~_ irWA@HXAF!nqTh?!jEcP4`M$Qf)Y!izW=`gU6@n= literal 0 HcmV?d00001 diff --git a/public/fonts/Literata-Italic-VF.ttf b/public/fonts/Literata-Italic-VF.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8690209cd1bb4d9be1c1a0e976ee2f740c94093b GIT binary patch literal 902728 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�`Z-4c7lazeTA;2_kS#k@T_m2wm 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⪌VIZesOGn8J>C7h$KxZPr)sU>2 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%0Aqn&#FZAnTH@Rb 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

e2l>B0 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 z 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�b(3 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

-LzpfPfRStP327;jv|#1#+nLIoVfX=avLuNTJ5TX;4bp`^m<20Iqs0R zwwljS-3Z#ew6w0hQ(`dc2F;-m$u$lL+jxvFCzF(|)K^ws0y>Zk1zM?^7?3@JFcP2# z1ca2sC?%Vr;_!Guog38%z=?y=yto(-Cp6j&gG`BJDZC_|C9iua&}y}jF{`R@rz0~9 zS#L3CG^d3Sz+uw_$FE#l&>L~mlhg&8Y0aPvwKQ+j2)jlw6i?wJ-2Bqq0xzxj?K`nH zZ)g4p_vpjSpNE-0qP+4BvD5$;SB#8mZG>TuzE>FJ061A()N5&gMcuW;TjnKeC!i}1 z+4j{ZO8ae$d4#`%s~s=2lP*h($>I`|$*Nn7WbnXnuXHG_=aF>MA$yvXW^DB}z4}_9 z{Wezrxg#(9{9ph1pMU<$AtuHzfAno8)Ia>38P&R_tCONxeQjl#lTTDsUbAM~maeY$ zrq{k0XrH@u_Vn4&$;+HzD3oMMnGJlKs(7dx5o_QtyXKWNq&-Iduegw`t^+!MWQTNTCG-f%b8iNBJRy# zQ`wdRq&n`rWGND3eDjNe_S@_|^wk=ujoMUJFrCH4ywGHrU9I#pNw*w_Ab*yV%d<0~ zsAR=n^J1XNSlQUwTBg%b&clJ^l2h5Z-Cazlmn9PJvkAQ_3!WVeG+3EM) z#>imbi*9E=e77+lpw^3SH4J59D+0dT7zUitqFa}|Y6Swm+bnrpf}-0kX5VcVGmW}M zw=Pq4WE$l7FKuB=UjmT#;` zi$+HBHtQqcyUkJ{8&Y(eSs(Zn&Q;NE=5oMyn`ui|MbT}hXkjEx%*I>mn6IKRrAceE ze?Q^4GUDG46pDPoe%*Vl%AZf{>6rTBc#MExzgkDSaYh64Tk3Z=*MoH#H#PkI zy4exXcKiEimEW(M*{XbqFF3sszSy%$h%b$BSg)KJi0*VUX)I>M@1FRyfjRj3TH zc1J~BMV$oxRxkjPEKo9vK0v+}O+8yE5(>})#nXfx&LAzaR(+;?A~`!SO)|h{aN6{m zYPfd(P88rs66%v#Tfot9w6iKjk}Tu5RiI|7Ph|9?R6tht z9=XyAu2gbHa-}slU#Z9DvUp$u$9&h&+HZqREJHhh;0m(=N8Ic1MAZx(WHeg8-W<-_ zqR3VDJ0R~>mKG5OoehSe@37HNYe>RANv+H!oo^$t(#CFb2AjH-YA!cwur~CxdzHn( zO94kPtXmGw%(80^4Rc#;`K$@XUVvlycs$^+!ZqTM{%sDfXrGl=go_XtOCNBYS&n1} zj}GH>o_UV3vQ-(4*$I6np||SNE7x1W^$N$t&N_{|7+-Z%u?FQ#4~vg&3Y{bDE7-WQ`erTB%<1Z9u7|`GWDtyPL@}Zr$9t zW8E4GAzSYMz~?^qx!?cHqsqtq)u%5{XkFy?O0B6xWd8JPzD4)%jYXMY4K1s zCIK16B8gfD%|00uv^sSCz(bnzSC1S$dSPUeQHrNR#}ALZ=G&EfQLNk>t!d?^RI7JmUs3`xc8R=N6-=p7}O*kr^LYF^#X*{RJT*Xqg+x0YRb| z_|$4bLsV+v^DE$GDkWDDl?S-<1UZwrIn#1u7kK@7y5v^?+sLVA3#Y1VrPP)_sXO7ZYBdAO*4E=cI)bMZw!SH~OuTrkbO{#*_b5K_-2pR4Xye=gZAUqxb-lEdHNWC z{SOq4@>T5LNBAtCV>Ug;Y}&S}4V*;-EY|EmEsZT5tGc^ab*^b|UxO0)+MW$tcHVjC zop;}J-(7dzwQcA2ts8oJ$ffl5uA^k!t=#YT+u=)<-e)3kr&0f>b`_q%#sPdFll?Pt zubIA$(TIf7;hDLp6oR0)P&YIlOj3NbJE4d7H~~or=$Kc{>ifhBTd3UER(J)c=(2k> zP^ctn-`=xFDh=vESh0%4PS5I|uI)S3xP_Ms?~`dy=leE>gV)%p#z#k{gJI#-NOBYy=PTe5uw!x1`sA`#(e0C<=) z0_*Q92VqUoq_V{A1X~aI6N2p=IowQeslVnAKC~Aumt7Bk@b`cJ_aA%g4}Ry9AA0bv z-i=%C+OciNp0|GRx9(B;ly543r~dnv@+9m16QB6RM?U)T-}&_YEbXr=f3JLB`CrOE zDu1hdPx%-AeOq~A-%d2V{1xuDb=$ca8@oEzz*5oN+}2Qf?3lq2TAXAOp9$Lw@`R6+8=rnn>(R0^v>bj25;I8u*f)?cksU&fag!5Nd>$WUZd z(;>^tk%bw&HNPFU7ttzbdqW@hiwb=IM5+{gCFy3@>%IV5zJD7CO=5MYvq*wUhrq>78!6YZx|unHd-Ko#(4Y7aCfxiZSXU)W{coy&BiF6k5%6f zL{uXX6KWl_+;b~Zxwu~+jRFGc-}a+_`{kiShfbfpLgMPkGtWKsZ$Ewh<+G!g&s@25 z>B?k=j1BwYLWp+S1scw^HbY{5YB-2M!|pZtsw{P{Cy zHg3%47Z<|Gz6xt`StTh`kIUQE)y^_$Ypu*?H*UN>H8r+ke|qW^@Wch2${(_}?p|42 ztY?L$QGh8FVx=;xgK&XrE7z{mm(ZL*a7yNvzIX;wdb+tr{ac|EZdoL_G&w-fcE8SBQEcriyLpYUgtgHHStE0!3;kOS z3-gDR1 z-n;L)tA${oB%gP+_H4tq-O$;-x}}BdskS5z9fEi%8Wy4EYbRe6LjCiX&VYxwe0d}Y zgX*C}IV-IuTdPXRNBE>*Er+)lzHb0pZZ}060MEW6Is~X`Q^tW?xr_oVgH~N#LP58Z zWcHU7&0i_`Kidj*1Efa=ok@z?I-|3M@|a1l2qmpfYZUl5dO4!W0;U*XJ7zk-%Me#j23vfU{aawS4}3r0Vfvir*5c;IeA6BQDAiKxNrPSWMzaT)t7A9&jb zKmHq!zW@Cn`_M-|`k}YI^X(5k_}<_A?LYX`$A0@0pZM%un3X4$FI0Z^|M=a{e(F;n z`S?eE;{%`iRlnh8q{*j-%3>T^4b%DY8xy{*A5Gu~lF9;4u!h<7j1Oa;411v6fl%W0eEf0aWY z(gViTSF9NPmI!J9;?Sm30oyX9CmIDf`4Tq8Vx}32cMP_ofGv&WyxBzPk$|&Q6qN*r zZLrw`Hd_Q5?vip;a;PO)PF-JuQOA-`&IfGsv4!B=)Wqn>HM|u|sfXM<{gyf^BGv?C zzVsOpFY$MBCN#EH!ufzLu8#uc(>lQya5f_iV*Jk3(BvDrE_i|k?;crNlG&jClQ&?~CRurC7r5MVT{9uIC65ATz_zF*aL9_?kiVl%Mlb~;Vi4G8jetxuEYC)k zHEE1Fg^>*&p+qqwF=YGAN`_<>=&k@)OWLk}KQLP90X(hhp z4Vs_w`2(#cvTbmW3A2tUY)}jp#2uX5B-|;&S}5o8++qr}iXXs+2vZ(JcL<^a3~UCa!0~UG^o<$j?oZ^`42@9;WCg$&Iej) zQ5?H^L7)~_CTGSbgsXk{*iZkNQhjlrBlF- z5(cwNXxiGV(0ejc70&UKIeu2g$fSc(Mdc0*(`Uw0=AvErqTDLzCeW%&a}SL=NW|Gd zg;3BS8y_5ys-#US4O1HGVH!qBBJix>tK^{o`zye+RNirEN~2AI4KC0M2bGO$lL6*{ zTvf&Hc$|f@Jwo?zV$EFQ;Yysf2 zWz(AW26?B78U^pI-@LJ_5qsZ48(Di>OCwuyW25q*pJAqK$@VHUQ1b+0N{Z%7Y%G2V z`gjSPhM*rHpO+n&JiCtHpx@q)77fFP+2uC_z5Ik61k;5luRca85rI#TMkzV;CZBvs zh4aOYjg4g_jpr{@?y5R-X(pq$dE`AX88xL&4}ZIGGPY-mlv>T7v2?zO74VmlS)Q3$ zNNC)(avA8hX4Mqc$Yh`G`e?kO(y_2s!fSWOyZ-oI;*bBS{6cv_{r5BFJM3Bg#lQKk_kH}s zAOGm1Z@>S(9X$e%yW`%sKk~VI!213``H}KJl&|qyUsew2{`m8s|NNb_Vff4c&)<6Y zebOFEdk~#gwN1v4Jo?a{osT~HJDHqAp)aPd#-(8i7co_Rr9}>!VIWMI8;@GNRJHB;>$5{< zbM)+gs2($N5#cmlRwag1G|u%K9To@`MRSUtQVe8CNop5(dH`|Ke&!G`aK+|;jrdfrcg} zgl7zWhQv}-iNyNYjr^UNI6tE^Vv{5$69h99KI|G3qO78`RAX1_W8qyPh7Zo z;qt``r%#-QO;)D&7{2hp(bU57Vj92`lQ1@Zb!y-U-eJ{X*5_%s^UYh^*368JO^pwY zU%Gzz3Jjvb;2hMmEz~YuRV{VS43i_8h|DZW(N1eEuc6S9j0GE!!jv+_{5xFH)6YO*iy(b>6Xe`>y+U zuV35I*52M$-B9VPZfdEiK$`_$thBmLI6Z1=DD@JP?DF@USiDRGz4mdqg_toK&3=rS zIvKErur5j)sY#O-o;4}>ViOI(tzjMQBhnX2Pn|eietOi50l!7~s9|z+IgJQJ$k7Mo z1|lt1{p01Sl~6NlaCqzLifI4NWs$v$Co=vDo!gs6H;b4j?W<@3n^El)BLiU{B?wqg zBVjtXzo;V=%RRBqQB_-80;%FW6Ln@R2WxCJiu44Q>GI|2pfR^JA6}ZcJU_n}SBz{C zKA+1N5A@pTkR^RkTvb;ijR!@(l9FoN+A?jlyu7YWT0onc8k^czb**08R9=GePeo13 z+M4R7_U?@vwrn7>sPe?DZQb=nArLe}vr$I}DATTLg?TbL4Z3bW(hzd726_Vz7~}IZ z7e^zRzAfO~q@~=2GEq7>GI$Ye|L~bB6Con-r4-0J1+fi@4G7)B3sbYpStWxnrC@!R z0==_ArsUYrz~IE-6drxy2$Xs7@M{`5R`rdmt z@7lSh!mV4HTMSlDO}gV}Ue>xh$YpP8+Sn+9CqVtl;q-2%mmWxeLRp4rcRq=tWnT5k zGLd*HZ@jnN?PRyjEKZ#xs=hcgclCU%rM-jlZ+G1?4UvnB^W#^?qe}UX9p&lc$FHP{ z>(}q7t1G9x!e$n=yGpAAUbJn*vk^>@Xh6v~+P+?-c+ln|S)@9GBm;Pc=c8l4EHY=U z#vD=rl-X@);n_*4Fo~FgGz%F-8iA^v(2UXzOFx*PMVYFZ+~X!FEA-4y)W=jV3vn;S zrIOqPx&aw!ZAVH*uZ12Ght&WJ9u6F|wm=mu7QdE!e4rOR2d8HHgfLx5e8;tXn17g`q=o`w4l;wrYA=(OiqtXEzZEnxUf*YoX94orlJsV3L+pfb_o-C z^_rymlTt+UGeg(_bS!kP2^FkWD9Pxo;3@Sg$Sbds|A4&J@;S9)^RniATBLy3J2d`s zmkX#EnHEjn3o8+p26s7XsfWL%=tu`(^zSKudZ%&H*~F8)(IoO$gN0oK}*dYoNHA(SzUiGh)^S% zhF+U49f>7ndvjIPb#~R~WAp`+ipkSIK^Z@#$yqAvYusXDHC+{m?h*+L%(MK+k&EN& z*RO6YF_5f#Zy*YRV5%}0g~(VewhL3^j92qxGS~tp9Xtouro^dwlV3KNr&t;>2%GVcNWry zO2sqJ{P?HPs(loYG zR0P=`e2{&l>b_C1VlBS(Q`53>yuBWGaz2AP~)XB3a!R05H(;9wX7pNd= zlGQ-Ehk2k*7haKrBI`aq%sr`;pRQj9=_?f;51cKuu))ZU9YNrdN5T-$x;B2+>vA$T z^b1SjWVnw?8Xxmu#n6zN=nDoX#=-w+G*+y?O>dl@mWrAF#LLG|p7HC~ZM+=0XFMd!H#7iBN1ER*ysgfna&L}_K^HL$lGU@-!Xe}-lovA0ah(l3ya_ol=kHp&nQI3An zoSq#Tx=I#x;Yl4cDE$?)p`@v)nT^8ygg#&7br}NMXeQTh0N&)VX!mQf$v|T|r^>=v ztP=4F%?#x1BG(t2N#+nKl|z5P1n`^QspV8(4+6I~lM-dIM)M27X;^&6CnsizEf-_+ zQC3fmHI68Ak`(mp{QT_5EKDl?X7Q(FoxXNm3D@uw>%B|UWh^pyADA40lrpTFH zp3dl{tX)=9Q)G@_22c3R(}#chqo3huy?B9i>DiH(zH}`qxSc)KzP=uWSEP z-+jk@550+8{9S5eQ(Kt}8Og;F7_f1p^z1Fw%`G)P7g?0v+1bUM&E_N3=7CH#XOxXv z7apIF#}|`YB|0-X0gD09941kb9{pSPL|CUa6mi-4^`-6>bYP9CjM-OGO`N^F6r62s z&@a!=g%(4zql4GeR!><)WmS1ypcm^as|>Iek1&T2Y9m>I28o4DNHP-4HQA}eoXFFa zZzVKW{h2o5FIN*Kyd!>-j*X1*#?Gjz5IH$+k%pR5zf0uUS;#pc?Q-OpqVfj?f=>*p zdE8mZi*Ob>mBGN&ra^(q9YUorG zO$Z=RI%D^f3!qbpPofZ2;6g8xmy!c!^o2Nl?YUg6Dx4sl%#iJ%e!Knd(rFObOC>{R_wLk=WGN;Xh}5au(dkhoLeToMWLA=4x>x!cqbn#qJp z!;eN2izcD6qpeJ*i6)_&BOoRokvoD%(BIp+X)8TCckbw3MLngV1)ES+)l3Mubw~G> z&7E~nZfp=2t;TCpq≷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

4ygJ0ZI>fwcqc)!ZRIyW{-R$k`^z=j+ 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 literal 0 HcmV?d00001 diff --git a/public/margincal-mark.png b/public/margincal-mark.png new file mode 100644 index 0000000000000000000000000000000000000000..69b0d107f7c0b8dd30a9330ce1c3a160659c5157 GIT binary patch literal 1243 zcmV<11SI>3P)dZnm8W04R`@l=O?oG5;M#Crr5I`Qg(cN|NG6&&0lsB z9$RPxocnq8?2n9)X_{itjg-r{rNW-TW50U6-hX^P-zS9;G?d_i2s`iDKHqy4J5Qu1 zkB^UXpO~2Vg2Zd%Hk&@yRJqy?(^LdV?YUQZ9tO^1L8qsu#M>ku7Zemwety0X(-As3IT29Uz<6F> z9_{Vz2{_g%5{AMk0wz*az*u})JmFt9o(a(~sDb?~D=VX=r6npYEfq3ZSy=*jb#*1g z>lY#enT(7Kxxc%+ldGqvhsMXpsj{+CB4T}se;5JR3WvEc`t_WCIavRUIMK_E`Y5;5BoQ66RuoW6q3rZIjyTI(lM&D!YYa%rD=~W#dLx#Z~YRCTRQjBL@ z@K#4hdx`(_xGvdPi)YNS69E=5!w#kP0||RzvOuV{wUw5am+9!}NHW4+YGJgzyj-65 z_xCA2K0cHs=powT;$muVZ>QDORS_(2i{pVr&gwWigTR-q4VWk}Scp_=YHEu442bdd z^>ulp!j{qten8-(mO#`)DN+j{S_iQf1mtfB1*VPxWc`Q+%A->w_6N`5QmagHE6Op8-=W3S-wm42S>#002ovPDHLk FV1h4mOXvUq literal 0 HcmV?d00001 diff --git a/src-tauri/.gitignore b/src-tauri/.gitignore new file mode 100644 index 0000000..b83d222 --- /dev/null +++ b/src-tauri/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock new file mode 100644 index 0000000..2ff7ad2 --- /dev/null +++ b/src-tauri/Cargo.lock @@ -0,0 +1,6025 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array", +] + +[[package]] +name = "aho-corasick" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e76a019e91224d279006ff972f1e984179a6e9feb050adba6ce8274aef23195" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "android_system_properties" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae221649c9976a6f6c56ae1facf410f3ddb33cc661c4b7b61020a912d4237fbc" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" + +[[package]] +name = "arbitrary" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" +dependencies = [ + "derive_arbitrary", +] + +[[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.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" +dependencies = [ + "concurrent-queue", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-executor" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand", + "futures-lite", + "pin-project-lite", + "slab", +] + +[[package]] +name = "async-io" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" +dependencies = [ + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite", + "parking", + "polling", + "rustix", + "slab", + "windows-sys 0.61.2", +] + +[[package]] +name = "async-lock" +version = "3.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" +dependencies = [ + "event-listener", + "event-listener-strategy", + "pin-project-lite", +] + +[[package]] +name = "async-process" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" +dependencies = [ + "async-channel", + "async-io", + "async-lock", + "async-signal", + "async-task", + "blocking", + "cfg-if", + "event-listener", + "futures-lite", + "rustix", +] + +[[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.119", +] + +[[package]] +name = "async-signal" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52b5aaafa020cf5053a01f2a60e8ff5dccf550f0f77ec54a4e47285ac2bab485" +dependencies = [ + "async-io", + "async-lock", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix", + "signal-hook-registry", + "slab", + "windows-sys 0.61.2", +] + +[[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.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "atk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" +dependencies = [ + "atk-sys", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bit-set" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da" +dependencies = [ + "serde_core", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" +dependencies = [ + "objc2", +] + +[[package]] +name = "blocking" +version = "1.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" +dependencies = [ + "async-channel", + "async-task", + "futures-io", + "futures-lite", + "piper", +] + +[[package]] +name = "brotli" +version = "8.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc91aac060a7a1e25823bdccbfb6af1875b88f17c6daac97894eed8207166b3" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "5.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a32acac15fe1967bc3986b2a6347dffc965602354ea6f450ad07e8bfd253583" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + +[[package]] +name = "bytemuck" +version = "1.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" +dependencies = [ + "serde", +] + +[[package]] +name = "cairo-rs" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" +dependencies = [ + "bitflags 2.13.1", + "cairo-sys-rs", + "glib", + "libc", + "once_cell", + "thiserror 1.0.69", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "camino" +version = "1.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb1307f12aa967b5a58416e87b3653360e0fd614a016b6e970db08fecbb1b80d" +dependencies = [ + "serde_core", +] + +[[package]] +name = "cargo-platform" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror 2.0.20", +] + +[[package]] +name = "cargo_toml" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" +dependencies = [ + "serde", + "toml 0.9.12+spec-1.1.0", +] + +[[package]] +name = "cc" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d262e149917187838d5b42777c8253bcb64500067342904e7d429499a6f277e" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfb" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" +dependencies = [ + "byteorder", + "fnv", + "uuid", +] + +[[package]] +name = "cfg-expr" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +dependencies = [ + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "cfg_aliases" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" + +[[package]] +name = "chacha20" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures 0.2.17", +] + +[[package]] +name = "chacha20" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d524456ba66e72eb8b115ff89e01e497f8e6d11d78b70b1aa13c0fbd97540a81" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "rand_core 0.10.1", +] + +[[package]] +name = "chacha20poly1305" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" +dependencies = [ + "aead", + "chacha20 0.9.1", + "cipher", + "poly1305", + "zeroize", +] + +[[package]] +name = "chrono" +version = "0.4.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" +dependencies = [ + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-link 0.2.1", +] + +[[package]] +name = "chrono-tz" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6139a8597ed92cf816dfb33f5dd6cf0bb93a6adc938f11039f371bc5bcd26c3" +dependencies = [ + "chrono", + "phf 0.12.1", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", + "zeroize", +] + +[[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 = "const-random" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" +dependencies = [ + "const-random-macro", +] + +[[package]] +name = "const-random-macro" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" +dependencies = [ + "getrandom 0.2.17", + "once_cell", + "tiny-keccak", +] + +[[package]] +name = "cookie" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a373e3602691c3cdea496d2f0ee5935151e6168fe87739483c463db1b2f2f87" +dependencies = [ + "time", + "version_check", +] + +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "core-graphics" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "064badf302c3194842cf2c5d61f56cc88e54a759313879cdf03abdd27d0c3b97" +dependencies = [ + "bitflags 2.13.1", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" +dependencies = [ + "bitflags 2.13.1", + "core-foundation", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d85363c37faeca707aef026efa9f3b34d077bce547e48f770770625c6013679e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17" + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "cssparser" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dae61cf9c0abb83bd659dab65b7e4e38d8236824c85f0f804f173567bda257d2" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa", + "phf 0.13.1", + "smallvec", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" +dependencies = [ + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ctor" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "352d39c2f7bef1d6ad73db6f5160efcaed66d94ef8c6c573a8410c00bf909a98" +dependencies = [ + "ctor-proc-macro", + "dtor", +] + +[[package]] +name = "ctor-proc-macro" +version = "0.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52560adf09603e58c9a7ee1fe1dcb95a16927b17c127f0ac02d6e768a0e25bc1" + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.119", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "dbus" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ab69f03cc8c4340c9c8e315114e1658e6775a9b16a04357973aa21cec22b32e" +dependencies = [ + "libc", + "libdbus-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "defmt" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2953bfe4f93bbd20cc71198842756f77d161884c99ebbabc41d80231ded88d1" +dependencies = [ + "bitflags 1.3.2", + "defmt-macros", +] + +[[package]] +name = "defmt-macros" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bad9c72e7ca2137e0dc3813245a0d282fd6daad32fd800af018306a9169b5fe8" +dependencies = [ + "defmt-parser", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "defmt-parser" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e" +dependencies = [ + "thiserror 2.0.20", +] + +[[package]] +name = "deranged" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" +dependencies = [ + "serde_core", +] + +[[package]] +name = "derive_arbitrary" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "derive_more" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" +dependencies = [ + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.119", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.61.2", +] + +[[package]] +name = "dispatch2" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" +dependencies = [ + "bitflags 2.13.1", + "block2", + "libc", + "objc2", +] + +[[package]] +name = "displaydoc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6232dd377dcc64799954cbd3a9bb882e9cdc1308ccd87b1c098f1fb2eaf82a8" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "dlopen2" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2c5bd4158e66d1e215c49b837e11d62f3267b30c92f1d171c4d3105e3dc4d4" +dependencies = [ + "dlopen2_derive", + "libc", + "once_cell", + "winapi", +] + +[[package]] +name = "dlopen2_derive" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fbbb781877580993a8707ec48672673ec7b81eeba04cfd2310bd28c08e47c8f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "dlv-list" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f" +dependencies = [ + "const-random", +] + +[[package]] +name = "dom_query" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521e380c0c8afb8d9a1e83a1822ee03556fc3e3e7dbc1fd30be14e37f9cb3f89" +dependencies = [ + "bit-set", + "cssparser", + "foldhash 0.2.0", + "html5ever", + "precomputed-hash", + "selectors", + "tendril", +] + +[[package]] +name = "dpi" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" +dependencies = [ + "serde", +] + +[[package]] +name = "dtoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c3cf4824e2d5f025c7b531afcb2325364084a16806f6d47fbc1f5fbd9960590" + +[[package]] +name = "dtoa-short" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" +dependencies = [ + "dtoa", +] + +[[package]] +name = "dtor" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1057d6c64987086ff8ed0fd3fbf377a6b7d205cc7715868cd401705f715cbe4" +dependencies = [ + "dtor-proc-macro", +] + +[[package]] +name = "dtor-proc-macro" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5" + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + +[[package]] +name = "embed-resource" +version = "3.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbfdaacccebec3b28e4866b8973543c7647797db5ada1bdab552e48fe665fbbd" +dependencies = [ + "cc", + "memchr", + "rustc_version", + "toml 1.1.4+spec-1.1.0", + "vswhom", + "winreg", +] + +[[package]] +name = "embed_plist" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" + +[[package]] +name = "endi" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099" + +[[package]] +name = "enumflags2" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" +dependencies = [ + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "erased-serde" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec" +dependencies = [ + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "event-listener" +version = "5.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a23add41df1562121a9393cb065eab5146a1242410f23a644851e90cfd669d2" +dependencies = [ + "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.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" + +[[package]] +name = "fdeflate" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "field-offset" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" +dependencies = [ + "memoffset", + "rustc_version", +] + +[[package]] +name = "filetime" +version = "0.2.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c287a33c7f0a620c38e641e7f60827713987b3c0f26e8ddc9462cc69cf75759" +dependencies = [ + "cfg-if", + "libc", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b73573e6edcd2af0cdf47bd6cb58f0b3839491263c314eaad1ccf24430e1de" + +[[package]] +name = "flate2" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea5190182e6915eb873ddbc16e23b711b6eb1f9c00a0d0a3a91b5f6228475225" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures-channel" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "262590f4fe6afeb0bc83be1daa64e52657fe185690a958af7f3ad0e92085c5ae" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cd50c473c80f6d7c3670a752354b8e569b1a7cbfdc0419ec88e5edad85e0dc7" + +[[package]] +name = "futures-executor" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6754879cc9f2c66f88c6e5c35344bb0bdb0708b0352b1201815667c7eabc7458" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4577ecaa3c4f96589d473f679a71b596316f6641bc350038b962a5daf0085d7a" + +[[package]] +name = "futures-lite" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + +[[package]] +name = "futures-macro" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d6d3cde68c518367be28956066ddfef33813991b77a55005a69dae04bf3b10b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "futures-sink" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e34418ac499d6305c2fb5ad0ed2f6ac998c5f8ca209b4510f7f94242c647e307" + +[[package]] +name = "futures-task" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b231ed28831efb4a61a08580c4bc233ec56bc009f4cd8f52da2c3cb97df0c109" + +[[package]] +name = "futures-util" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a77a90a256fce34da66415271e30f94ee91c57b04b8a2c042d9cf3220179deaa" +dependencies = [ + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "slab", +] + +[[package]] +name = "gdk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691" +dependencies = [ + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" +dependencies = [ + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", + "once_cell", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gdk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkwayland-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "140071d506d223f7572b9f09b5e155afbd77428cd5cc7af8f2694c41d98dfe69" +dependencies = [ + "gdk-sys", + "glib-sys", + "gobject-sys", + "libc", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkx11" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3caa00e14351bebbc8183b3c36690327eb77c49abc2268dd4bd36b856db3fbfe" +dependencies = [ + "gdk", + "gdkx11-sys", + "gio", + "glib", + "libc", + "x11", +] + +[[package]] +name = "gdkx11-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e7445fe01ac26f11601db260dd8608fe172514eb63b3b5e261ea6b0f4428d" +dependencies = [ + "gdk-sys", + "glib-sys", + "libc", + "system-deps", + "x11", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "libc", + "r-efi 5.3.0", + "wasip2", +] + +[[package]] +name = "getrandom" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "r-efi 6.0.0", + "rand_core 0.10.1", + "wasm-bindgen", +] + +[[package]] +name = "gio" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "gio-sys", + "glib", + "libc", + "once_cell", + "pin-project-lite", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "gio-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", + "winapi", +] + +[[package]] +name = "glib" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" +dependencies = [ + "bitflags 2.13.1", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "memchr", + "once_cell", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "glib-macros" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" +dependencies = [ + "heck 0.4.1", + "proc-macro-crate 2.0.2", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "glib-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" +dependencies = [ + "libc", + "system-deps", +] + +[[package]] +name = "glob" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b" + +[[package]] +name = "gobject-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gtk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a" +dependencies = [ + "atk", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "gtk3-macros" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash 0.1.5", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "hashlink" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" +dependencies = [ + "hashbrown 0.15.5", +] + +[[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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "html5ever" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1054432bae2f14e0061e33d23402fbaa67a921d319d56adc6bcf887ddad1cbc2" +dependencies = [ + "log", + "markup5ever", +] + +[[package]] +name = "http" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca2a8f2913ee65f60facd6a5905613afaa448497a0230cc41ce022d93290bc2c" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9f41fd6a08e4d4ec69df65976da761afd5ad5e58a9d4acb46bd1c953a9e3ff2" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hyper" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d22053281f852e11534f5198498373cbb59295120a20771d90f7ed1897490a72" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "http", + "http-body", + "httparse", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" +dependencies = [ + "http", + "hyper", + "hyper-util", + "rustls", + "tokio", + "tokio-rustls", + "tower-service", + "webpki-roots", +] + +[[package]] +name = "hyper-util" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core 0.62.2", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ico" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e795dff5605e0f04bff85ca41b51a96b83e80b281e96231bcaaf1ac35103371" +dependencies = [ + "byteorder", + "png 0.17.16", +] + +[[package]] +name = "icu_collections" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" +dependencies = [ + "displaydoc", + "potential_utf", + "utf8_iter", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" +dependencies = [ + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" + +[[package]] +name = "icu_properties" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" +dependencies = [ + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" + +[[package]] +name = "icu_provider" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" +dependencies = [ + "displaydoc", + "icu_locale_core", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", + "serde", + "serde_core", +] + +[[package]] +name = "infer" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7" +dependencies = [ + "cfb", +] + +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "generic-array", +] + +[[package]] +name = "ipnet" +version = "2.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a756c3fac73139e83f14c2d742155dd2b78d3ee56597b419a0579b7bdd6dd78" + +[[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 = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "javascriptcore-rs" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" +dependencies = [ + "bitflags 1.3.2", + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "jiff" +version = "0.2.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "668b7183bd07af9a4885f5c35b0cc5c83c4607a913c16b7e17291832910d2dcc" +dependencies = [ + "defmt", + "jiff-core", + "jiff-static", + "jiff-tzdb-platform", + "log", + "portable-atomic", + "portable-atomic-util", + "serde_core", + "windows-link 0.2.1", +] + +[[package]] +name = "jiff-core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7feca88439efe53da3754500c1851dedf3cb36c524dd5cf8225cc0794de95d09" +dependencies = [ + "defmt", +] + +[[package]] +name = "jiff-static" +version = "0.2.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a69dcb3a21cfb32ce1cd056169337ca284af0766dd766e7878819b251a49204" +dependencies = [ + "jiff-core", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "jiff-tzdb" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "142bd39932ad231f10513df9ab62661fead8719872150b7ad02a2df79f4e141e" + +[[package]] +name = "jiff-tzdb-platform" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8" +dependencies = [ + "jiff-tzdb", +] + +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys 0.3.1", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" +dependencies = [ + "cfg-if", + "combine", + "jni-macros", + "jni-sys 0.4.1", + "log", + "simd_cesu8", + "thiserror 2.0.20", + "walkdir", + "windows-link 0.2.1", +] + +[[package]] +name = "jni-macros" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3" +dependencies = [ + "proc-macro2", + "quote", + "rustc_version", + "simd_cesu8", + "syn 2.0.119", +] + +[[package]] +name = "jni-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" +dependencies = [ + "jni-sys 0.4.1", +] + +[[package]] +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" +dependencies = [ + "jni-sys-macros", +] + +[[package]] +name = "jni-sys-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" +dependencies = [ + "quote", + "syn 2.0.119", +] + +[[package]] +name = "js-sys" +version = "0.3.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e0c1080212aad755ea003d18543e8768dd432c48819efd73a7bf1e39b7a5a3a" +dependencies = [ + "cfg-if", + "futures-util", + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" +dependencies = [ + "jsonptr", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "jsonptr" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "keyboard-types" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" +dependencies = [ + "bitflags 2.13.1", + "serde", + "unicode-segmentation", +] + +[[package]] +name = "libappindicator" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" +dependencies = [ + "glib", + "gtk", + "gtk-sys", + "libappindicator-sys", + "log", +] + +[[package]] +name = "libappindicator-sys" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" +dependencies = [ + "gtk-sys", + "libloading", + "once_cell", +] + +[[package]] +name = "libc" +version = "0.2.189" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" + +[[package]] +name = "libdbus-sys" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "328c4789d42200f1eeec05bd86c9c13c7f091d2ba9a6ea35acdf51f31bc0f043" +dependencies = [ + "pkg-config", +] + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "libredox" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2026a5056764a10b2bf5d56488cba40da507f5493a6a429340e2004d9ed085fa" +dependencies = [ + "libc", +] + +[[package]] +name = "libsqlite3-sys" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "133c182a6a2c87864fe97778797e46c7e999672690dc9fa3ee8e241aa4a9c13f" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[package]] +name = "litemap" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" + +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" + +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + +[[package]] +name = "margin-calendar" +version = "0.1.0" +dependencies = [ + "base64 0.22.1", + "chacha20poly1305", + "chrono", + "chrono-tz", + "objc2", + "objc2-ui-kit", + "rand 0.8.7", + "reqwest 0.12.28", + "rrule", + "rusqlite", + "serde", + "serde_json", + "sha2", + "tauri", + "tauri-build", + "tauri-plugin-deep-link", + "tauri-plugin-opener", + "tauri-plugin-process", + "tauri-plugin-updater", + "tempfile", + "tokio", + "url", +] + +[[package]] +name = "markup5ever" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8983d30f2915feeaaab2d6babdd6bc7e9ed1a00b66b5e6d74df19aa9c0e91862" +dependencies = [ + "log", + "tendril", + "web_atoms", +] + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "minisign-verify" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22f9645cb765ea72b8111f36c522475d2daa0d22c957a9826437e97534bc4e9e" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30d65c71f1ce40ab09135ce117d742b9f8a19ff91a41a8b57ed50bc2de59c427" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.61.2", +] + +[[package]] +name = "muda" +version = "0.19.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd04e60bc0b07438a6771710ee1698f98f6ebbc7f89b61264af1563b8aeb878" +dependencies = [ + "crossbeam-channel", + "dpi", + "gtk", + "keyboard-types", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "once_cell", + "png 0.18.1", + "serde", + "thiserror 2.0.20", + "windows-sys 0.61.2", +] + +[[package]] +name = "ndk" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" +dependencies = [ + "bitflags 2.13.1", + "jni-sys 0.3.1", + "log", + "ndk-sys", + "num_enum", + "raw-window-handle", + "thiserror 1.0.69", +] + +[[package]] +name = "ndk-sys" +version = "0.6.0+11769913" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" +dependencies = [ + "jni-sys 0.3.1", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "num-conv" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_enum" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "objc2" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" +dependencies = [ + "objc2-encode", + "objc2-exception-helper", +] + +[[package]] +name = "objc2-app-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" +dependencies = [ + "bitflags 2.13.1", + "block2", + "objc2", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "objc2-cloud-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" +dependencies = [ + "bitflags 2.13.1", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-data" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" +dependencies = [ + "bitflags 2.13.1", + "dispatch2", + "objc2", +] + +[[package]] +name = "objc2-core-graphics" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" +dependencies = [ + "bitflags 2.13.1", + "dispatch2", + "objc2", + "objc2-core-foundation", + "objc2-io-surface", +] + +[[package]] +name = "objc2-core-image" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-location" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca347214e24bc973fc025fd0d36ebb179ff30536ed1f80252706db19ee452009" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-text" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" +dependencies = [ + "bitflags 2.13.1", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", +] + +[[package]] +name = "objc2-encode" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" + +[[package]] +name = "objc2-exception-helper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7a1c5fbb72d7735b076bb47b578523aedc40f3c439bea6dfd595c089d79d98a" +dependencies = [ + "cc", +] + +[[package]] +name = "objc2-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" +dependencies = [ + "bitflags 2.13.1", + "block2", + "libc", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-io-surface" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" +dependencies = [ + "bitflags 2.13.1", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-osa-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f112d1746737b0da274ef79a23aac283376f335f4095a083a267a082f21db0c0" +dependencies = [ + "bitflags 2.13.1", + "objc2", + "objc2-app-kit", + "objc2-foundation", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" +dependencies = [ + "bitflags 2.13.1", + "objc2", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" +dependencies = [ + "bitflags 2.13.1", + "block2", + "objc2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-core-image", + "objc2-core-location", + "objc2-core-text", + "objc2-foundation", + "objc2-quartz-core", + "objc2-user-notifications", +] + +[[package]] +name = "objc2-user-notifications" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9df9128cbbfef73cda168416ccf7f837b62737d748333bfe9ab71c245d76613e" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-web-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f" +dependencies = [ + "bitflags 2.13.1", + "block2", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "open" +version = "5.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9cfef937e9c486488c7e3d949ae31c0f1d06bdacd75b99c086cb35356e30408" +dependencies = [ + "dunce", + "is-wsl", + "libc", +] + +[[package]] +name = "openssl-probe" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "ordered-multimap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79" +dependencies = [ + "dlv-list", + "hashbrown 0.14.5", +] + +[[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 = "osakit" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "732c71caeaa72c065bb69d7ea08717bd3f4863a4f451402fc9513e29dbd5261b" +dependencies = [ + "objc2", + "objc2-foundation", + "objc2-osa-kit", + "serde", + "serde_json", + "thiserror 2.0.20", +] + +[[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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-link 0.2.1", +] + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "phf" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "913273894cec178f401a31ec4b656318d95473527be05c0752cc41cdc32be8b7" +dependencies = [ + "phf_shared 0.12.1", +] + +[[package]] +name = "phf" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" +dependencies = [ + "phf_macros", + "phf_shared 0.13.1", + "serde", +] + +[[package]] +name = "phf_codegen" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1" +dependencies = [ + "phf_generator", + "phf_shared 0.13.1", +] + +[[package]] +name = "phf_generator" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" +dependencies = [ + "fastrand", + "phf_shared 0.13.1", +] + +[[package]] +name = "phf_macros" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" +dependencies = [ + "phf_generator", + "phf_shared 0.13.1", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "phf_shared" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06005508882fb681fd97892ecff4b7fd0fee13ef1aa569f8695dae7ab9099981" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "piper" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c835479a4443ded371d6c535cbfd8d31ad92c5d23ae9770a61bc155e4992a3c1" +dependencies = [ + "atomic-waker", + "fastrand", + "futures-io", +] + +[[package]] +name = "pkg-config" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" + +[[package]] +name = "plist" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da1d65da6dd5d1e44199ac0f58712d241c0f439f80adea8924d832384087f85" +dependencies = [ + "base64 0.22.1", + "indexmap 2.14.0", + "quick-xml", + "serde", + "time", +] + +[[package]] +name = "png" +version = "0.17.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "png" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" +dependencies = [ + "bitflags 2.13.1", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "polling" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi", + "pin-project-lite", + "rustix", + "windows-sys 0.61.2", +] + +[[package]] +name = "poly1305" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" +dependencies = [ + "cpufeatures 0.2.17", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "portable-atomic" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85" + +[[package]] +name = "portable-atomic-util" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" +dependencies = [ + "portable-atomic", +] + +[[package]] +name = "potential_utf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" +dependencies = [ + "zerovec", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" +dependencies = [ + "toml_datetime 0.6.3", + "toml_edit 0.20.2", +] + +[[package]] +name = "proc-macro-crate" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit 0.25.13+spec-1.1.0", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quick-xml" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e660451e55124f798a69a5af3f49ccfbefbd41910eefd25caf2393e1f3473ec1" +dependencies = [ + "memchr", +] + +[[package]] +name = "quinn" +version = "0.11.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c1a41e437b6bbd489372cd4971de128e85c855f56c57f283d20ff016cf7c0a8" +dependencies = [ + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2", + "thiserror 2.0.20", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-proto" +version = "0.11.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f4bfc015262b9df63c8845072ce59068853ff5872180c2ce2f13038b970e560" +dependencies = [ + "bytes", + "getrandom 0.4.3", + "lru-slab", + "rand 0.10.2", + "rand_pcg", + "ring", + "rustc-hash", + "rustls", + "rustls-pki-types", + "slab", + "thiserror 2.0.20", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35a133f956daabe89a61a685c2649f13d82d5aa4bd5d12d1277e1072a21c0694" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.61.2", +] + +[[package]] +name = "quote" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "rand" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22f6172bdec972074665ed81ed53b71da00bfc44b65a753cfde883ec4c702a1a" +dependencies = [ + "libc", + "rand_chacha", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80" +dependencies = [ + "chacha20 0.10.1", + "getrandom 0.4.3", + "rand_core 0.10.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.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.17", +] + +[[package]] +name = "rand_core" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + +[[package]] +name = "rand_pcg" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "caa0f4137e1c0a72f4c651489402276c8e8e1cf081f3b0ba156d2cbeef09e86a" +dependencies = [ + "rand_core 0.10.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.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags 2.13.1", +] + +[[package]] +name = "redox_users" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +dependencies = [ + "getrandom 0.2.17", + "libredox", + "thiserror 2.0.20", +] + +[[package]] +name = "ref-cast" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "216e8f773d7923bcba9ceb86a86c93cabb3903a11872fc3f138c49630e50b96d" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9283685feec7d69af75fb0e858d5e7378f33fe4fc699383b2916ab9273e03c" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "regex" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + +[[package]] +name = "reqwest" +version = "0.12.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-core", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-util", + "js-sys", + "log", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tokio-rustls", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots", +] + +[[package]] +name = "reqwest" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-util", + "js-sys", + "log", + "percent-encoding", + "pin-project-lite", + "rustls", + "rustls-pki-types", + "rustls-platform-verifier", + "serde", + "serde_json", + "sync_wrapper", + "tokio", + "tokio-rustls", + "tokio-util", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", +] + +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.17", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "rrule" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "720acfb4980b9d8a6a430f6d7a11933e701ebbeba5eee39cc9d8c5f932aaff74" +dependencies = [ + "chrono", + "chrono-tz", + "log", + "regex", + "thiserror 2.0.20", +] + +[[package]] +name = "rusqlite" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "165ca6e57b20e1351573e3729b958bc62f0e48025386970b6e4d29e7a7e71f3f" +dependencies = [ + "bitflags 2.13.1", + "fallible-iterator", + "fallible-streaming-iterator", + "hashlink", + "libsqlite3-sys", + "smallvec", +] + +[[package]] +name = "rust-ini" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "796e8d2b6696392a43bea58116b667fb4c29727dc5abd27d6acf338bb4f688c7" +dependencies = [ + "cfg-if", + "ordered-multimap", +] + +[[package]] +name = "rustc-hash" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +dependencies = [ + "bitflags 2.13.1", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls" +version = "0.23.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0283386ce02abc0151e1761d08802dfe86c173b0b494af5cbc086574e453da06" +dependencies = [ + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-native-certs" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dab5152771c58876a2146916e53e35057e1a4dfa2b9df0f0305b07f611fdea4d" +dependencies = [ + "openssl-probe", + "rustls-pki-types", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pki-types" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f4925028c7eb5d1fcdaf196971378ed9d2c1c4efc7dc5d011256f76c99c0a96" +dependencies = [ + "web-time", + "zeroize", +] + +[[package]] +name = "rustls-platform-verifier" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d1e2536ce4f35f4846aa13bff16bd0ff40157cdb14cc056c7b14ba41233ba0" +dependencies = [ + "core-foundation", + "core-foundation-sys", + "jni 0.22.4", + "log", + "once_cell", + "rustls", + "rustls-native-certs", + "rustls-platform-verifier-android", + "rustls-webpki", + "security-framework", + "security-framework-sys", + "webpki-root-certs", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls-platform-verifier-android" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" + +[[package]] +name = "rustls-webpki" +version = "0.103.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + +[[package]] +name = "ryu" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" + +[[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 = "schannel" +version = "0.1.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "schemars" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +dependencies = [ + "dyn-clone", + "indexmap 1.9.3", + "schemars_derive", + "serde", + "serde_json", + "url", + "uuid", +] + +[[package]] +name = "schemars" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "687274d293b6cdc6e73e0fee520bf2049650090d7164f87672d212a3c530cf4a" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.119", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "security-framework" +version = "3.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" +dependencies = [ + "bitflags 2.13.1", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "selectors" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5d9c0c92a92d33f08817311cf3f2c29a3538a8240e94a6a3c622ce652d7e00c" +dependencies = [ + "bitflags 2.13.1", + "cssparser", + "derive_more", + "log", + "new_debug_unreachable", + "phf 0.13.1", + "phf_codegen", + "precomputed-hash", + "rustc-hash", + "servo_arc", + "smallvec", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" +dependencies = [ + "serde", + "serde_core", +] + +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-untagged" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" +dependencies = [ + "erased-serde", + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "serde_core" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "serde_json" +version = "1.0.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_repr" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d3b1629de253c70a0508c3899572da79ca359fdab27c7920ff00406df418906" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_spanned" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" +dependencies = [ + "serde_core", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "3.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee78f1fbe43ac4a0e47aadb3dbd357b69eb0d3793e948624cd03dd2750ab1c0a" +dependencies = [ + "base64 0.22.1", + "bs58", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.14.0", + "jiff", + "schemars 0.9.0", + "schemars 1.2.2", + "serde_core", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8705578779c2b6bd90d84d66eb2e206b708b1a4d7b9f17641b293545bf1c7e46" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "serialize-to-javascript" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04f3666a07a197cdb77cdf306c32be9b7f598d7060d50cfd4d5aa04bfd92f6c5" +dependencies = [ + "serde", + "serde_json", + "serialize-to-javascript-impl", +] + +[[package]] +name = "serialize-to-javascript-impl" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "servo_arc" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "170fb83ab34de17dc69aa7c67482b22218ddb85da56546f9bd6b929e32a05930" +dependencies = [ + "stable_deref_trait", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "digest", +] + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "signal-hook-registry" +version = "1.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" +dependencies = [ + "errno", + "libc", +] + +[[package]] +name = "simd-adler32" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" + +[[package]] +name = "simd_cesu8" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11031e251abf8611c80f460e19dbdeb54a66db918e49c65a7065b46ac7aec520" +dependencies = [ + "rustc_version", + "simdutf8", +] + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "siphasher" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" + +[[package]] +name = "socket2" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "softbuffer" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac18da81ebbf05109ab275b157c22a653bb3c12cf884450179942f81bcbf6c3" +dependencies = [ + "bytemuck", + "js-sys", + "ndk", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation", + "objc2-quartz-core", + "raw-window-handle", + "redox_syscall", + "tracing", + "wasm-bindgen", + "web-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "soup3" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" +dependencies = [ + "futures-channel", + "gio", + "glib", + "libc", + "soup3-sys", +] + +[[package]] +name = "soup3-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + +[[package]] +name = "string_cache" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901" +dependencies = [ + "new_debug_unreachable", + "parking_lot", + "phf_shared 0.13.1", + "precomputed-hash", +] + +[[package]] +name = "string_cache_codegen" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69" +dependencies = [ + "phf_generator", + "phf_shared 0.13.1", + "proc-macro2", + "quote", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "swift-rs" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7" +dependencies = [ + "base64 0.21.7", + "serde", + "serde_json", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "system-deps" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +dependencies = [ + "cfg-expr", + "heck 0.5.0", + "pkg-config", + "toml 0.8.2", + "version-compare", +] + +[[package]] +name = "tao" +version = "0.35.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1c93047acf68669466a34690ac58cca7010bd1b201e1ec86f1fd0a75d3dd4a9" +dependencies = [ + "bitflags 2.13.1", + "block2", + "core-foundation", + "core-graphics", + "crossbeam-channel", + "dbus", + "dispatch2", + "dlopen2", + "dpi", + "gdkwayland-sys", + "gdkx11-sys", + "gtk", + "jni 0.21.1", + "libc", + "log", + "ndk", + "ndk-sys", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "once_cell", + "parking_lot", + "percent-encoding", + "raw-window-handle", + "tao-macros", + "unicode-segmentation", + "url", + "windows", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "tao-macros" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f7eeb6d99155545da6150a1795945f16ac9c178deb2a5f2e74d776107bd5849" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "tar" +version = "0.4.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f6221d9a6003c78398e3b239969f352578258df48c8eb051caadae0015bc840" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + +[[package]] +name = "tauri" +version = "2.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "667b20e2726d572dea2de7370da16e188eb06008faf9a92fab7cdc46791190b5" +dependencies = [ + "anyhow", + "bytes", + "cookie", + "dirs", + "dunce", + "embed_plist", + "getrandom 0.3.4", + "glob", + "gtk", + "heck 0.5.0", + "http", + "jni 0.21.1", + "libc", + "log", + "mime", + "muda", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "objc2-web-kit", + "percent-encoding", + "plist", + "raw-window-handle", + "reqwest 0.13.4", + "serde", + "serde_json", + "serde_repr", + "serialize-to-javascript", + "swift-rs", + "tauri-build", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils", + "thiserror 2.0.20", + "tokio", + "tray-icon", + "url", + "webkit2gtk", + "webview2-com", + "window-vibrancy", + "windows", +] + +[[package]] +name = "tauri-build" +version = "2.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc9ce40b16101cb6ea63d3e221567affd1c3a9205f95d7bc574941a10636b632" +dependencies = [ + "anyhow", + "cargo_toml", + "dirs", + "glob", + "heck 0.5.0", + "json-patch", + "schemars 0.8.22", + "semver", + "serde", + "serde_json", + "tauri-utils", + "tauri-winres", + "walkdir", +] + +[[package]] +name = "tauri-codegen" +version = "2.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08279169ff42f8fc45a1dbc9dcae888893ba95288142e5880c59b93a26d2cfc5" +dependencies = [ + "base64 0.22.1", + "brotli", + "ico", + "json-patch", + "plist", + "png 0.17.16", + "proc-macro2", + "quote", + "semver", + "serde", + "serde_json", + "sha2", + "syn 2.0.119", + "tauri-utils", + "thiserror 2.0.20", + "time", + "url", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-macros" +version = "2.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8b394794f399a421811d06966343e7933fcae92d59f5180b9388d1174497a45" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", + "tauri-codegen", + "tauri-utils", +] + +[[package]] +name = "tauri-plugin" +version = "2.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74be5dd4bed9afbd145e5716b5fa2ec28cbc29c34ffa61c258c9273d896c8020" +dependencies = [ + "anyhow", + "glob", + "plist", + "schemars 0.8.22", + "serde", + "serde_json", + "tauri-utils", + "walkdir", +] + +[[package]] +name = "tauri-plugin-deep-link" +version = "2.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ee75bc5627f77bfdf40c913255ebc258117b10ebe2b2239a1a1cf40b0b58aa" +dependencies = [ + "dunce", + "plist", + "rust-ini", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "tauri-utils", + "thiserror 2.0.20", + "tracing", + "url", + "windows-registry", + "windows-result 0.3.4", +] + +[[package]] +name = "tauri-plugin-opener" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17e1bea14edce6b793a04e2417e3fd924b9bc4faae83cdee7d714156cceeed29" +dependencies = [ + "dunce", + "glob", + "objc2-app-kit", + "objc2-foundation", + "open", + "schemars 0.8.22", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "thiserror 2.0.20", + "url", + "windows", + "zbus", +] + +[[package]] +name = "tauri-plugin-process" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d55511a7bf6cd70c8767b02c97bf8134fa434daf3926cfc1be0a0f94132d165a" +dependencies = [ + "tauri", + "tauri-plugin", +] + +[[package]] +name = "tauri-plugin-updater" +version = "2.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "806d9dac662c2e4594ff03c647a552f2c9bd544e7d0f683ec58f872f952ce4af" +dependencies = [ + "base64 0.22.1", + "dirs", + "flate2", + "futures-util", + "http", + "infer", + "log", + "minisign-verify", + "osakit", + "percent-encoding", + "reqwest 0.13.4", + "rustls", + "semver", + "serde", + "serde_json", + "tar", + "tauri", + "tauri-plugin", + "tempfile", + "thiserror 2.0.20", + "time", + "tokio", + "url", + "windows-sys 0.60.2", + "zip", +] + +[[package]] +name = "tauri-runtime" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0b4bc95aed361b0019067d189a1174a603d460d0f6c72606512d59fc9c12ec8" +dependencies = [ + "cookie", + "dpi", + "gtk", + "http", + "jni 0.21.1", + "objc2", + "objc2-ui-kit", + "objc2-web-kit", + "raw-window-handle", + "serde", + "serde_json", + "tauri-utils", + "thiserror 2.0.20", + "url", + "webkit2gtk", + "webview2-com", + "windows", +] + +[[package]] +name = "tauri-runtime-wry" +version = "2.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e6fac707727b7a2f48e4ded90976324267371073edbb415ffb73bb0458d203f" +dependencies = [ + "gtk", + "http", + "jni 0.21.1", + "log", + "objc2", + "objc2-app-kit", + "once_cell", + "percent-encoding", + "raw-window-handle", + "softbuffer", + "tao", + "tauri-runtime", + "tauri-utils", + "url", + "webkit2gtk", + "webview2-com", + "windows", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "2.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e176a18e67764923c4f1ce66f25ae4abe5f688384d5eb1a0fa6c77f3d90f887" +dependencies = [ + "anyhow", + "brotli", + "cargo_metadata", + "ctor", + "dom_query", + "dunce", + "glob", + "http", + "infer", + "json-patch", + "log", + "memchr", + "phf 0.13.1", + "plist", + "proc-macro2", + "quote", + "regex", + "schemars 0.8.22", + "semver", + "serde", + "serde-untagged", + "serde_json", + "serde_with", + "swift-rs", + "thiserror 2.0.20", + "toml 1.1.4+spec-1.1.0", + "url", + "urlpattern", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-winres" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc65d45c68858bfe420dd29e834b5d15dbecf8a07a8a16cf4d532c7b1f69d4b6" +dependencies = [ + "dunce", + "embed-resource", + "toml 1.1.4+spec-1.1.0", +] + +[[package]] +name = "tempfile" +version = "3.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" +dependencies = [ + "fastrand", + "getrandom 0.4.3", + "once_cell", + "rustix", + "windows-sys 0.61.2", +] + +[[package]] +name = "tendril" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fed54709c5b3a53d09bb1c113ea4f5ceafd1e772ddcb0030a82e1d56c087b08" +dependencies = [ + "new_debug_unreachable", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" +dependencies = [ + "thiserror-impl 2.0.20", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "time" +version = "0.3.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb87b95ec50ddfa440816d227a17b2ccbdda963a316a727fda0fc4334f7d134" +dependencies = [ + "deranged", + "num-conv", + "powerfmt", + "serde_core", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109" + +[[package]] +name = "time-macros" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e689342a48d2ea927c87ea50cabf8594854bf940e9310208848d680d668ed85" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinystr" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb4ebadaa0af04fab11ae01eb5f9fdb5f9c5b875506e210e71c07873528baa7f" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "202caea871b69668250d242070849eb495be178ed697a3e98aebce5bc81a0bed" +dependencies = [ + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2", + "windows-sys 0.61.2", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" +dependencies = [ + "rustls", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "494815d09bf52b5548659851081238f0ca39ff638363907596da739561c62c52" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +dependencies = [ + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "toml_edit 0.20.2", +] + +[[package]] +name = "toml" +version = "0.9.12+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" +dependencies = [ + "indexmap 2.14.0", + "serde_core", + "serde_spanned 1.1.1", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 0.7.15", +] + +[[package]] +name = "toml" +version = "1.1.4+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3aace63f4bbcdfc2c965b059de67119c89c4017a70d633be6c104910f67056f5" +dependencies = [ + "indexmap 2.14.0", + "serde_core", + "serde_spanned 1.1.1", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 1.0.4", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_datetime" +version = "0.7.5+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_datetime" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.14.0", + "toml_datetime 0.6.3", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap 2.14.0", + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.25.13+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6975367e4d2ef766d86af01ffad14b622fecc8d4357a998fbc4deb6e9bacaf9b" +dependencies = [ + "indexmap 2.14.0", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "winnow 1.0.4", +] + +[[package]] +name = "toml_parser" +version = "1.1.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" +dependencies = [ + "winnow 1.0.4", +] + +[[package]] +name = "toml_writer" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2" + +[[package]] +name = "tower" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" +dependencies = [ + "bitflags 2.13.1", + "bytes", + "futures-util", + "http", + "http-body", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", + "url", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", +] + +[[package]] +name = "tray-icon" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "045979e3f037cd18ad1cb2a419dfda133c5c29c9f3453370079f2255d46c257e" +dependencies = [ + "crossbeam-channel", + "dirs", + "libappindicator", + "muda", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation", + "once_cell", + "png 0.18.1", + "serde", + "thiserror 2.0.20", + "windows-sys 0.61.2", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + +[[package]] +name = "typenum" +version = "1.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" + +[[package]] +name = "uds_windows" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f6fb2847f6742cd76af783a2a2c49e9375d0a111c7bef6f71cd9e738c72d6e" +dependencies = [ + "memoffset", + "tempfile", + "windows-sys 0.61.2", +] + +[[package]] +name = "unic-char-property" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" +dependencies = [ + "unic-char-range", +] + +[[package]] +name = "unic-char-range" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" + +[[package]] +name = "unic-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" + +[[package]] +name = "unic-ucd-ident" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" +dependencies = [ + "unic-char-property", + "unic-char-range", + "unic-ucd-version", +] + +[[package]] +name = "unic-ucd-version" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" +dependencies = [ + "unic-common", +] + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-segmentation" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common", + "subtle", +] + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", + "serde_derive", +] + +[[package]] +name = "urlpattern" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d" +dependencies = [ + "regex", + "serde", + "unic-ucd-ident", + "url", +] + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "uuid" +version = "1.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf3923a6f5c4c6382e0b653c4117f48d631ea17f38ed86e2a828e6f7412f5239" +dependencies = [ + "getrandom 0.4.3", + "js-sys", + "serde_core", + "wasm-bindgen", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version-compare" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "vswhom" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" +dependencies = [ + "libc", + "vswhom-sys", +] + +[[package]] +name = "vswhom-sys" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb067e4cbd1ff067d1df46c9194b5de0e98efd2810bbc95c5d5e5f25a3231150" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasip2" +version = "1.0.4+wasi-0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.127" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b70935747edd64d89de3efa29d73789b806c15798f8e7dca4d8ac356b50ce70" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b7777d5cc23d0e91404e53ce2d5e8ec7acae3026b16233dba62cd3246457950" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.127" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77775f8f3f7217702089053b94958f8f54061a3f663417df76e19cbdcca29bc1" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.127" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e11d33f857dc2fb11b8bc75aee111aa9cbeb12cd9f25efd3d4c2a3dd4e235284" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 2.0.119", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.127" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef64dbcc55df09c7e5a46182d181c2cfa3e925f3da937ea764728b4bbb9dcbf" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-streams" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c435338968042f4f59a557f690a253676d47ce13ceb55d70100e7facf6620a30" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web_atoms" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba8b815c1b593dc0baf78dd0f4fc8fdb2de53198fb1163738093e9a311c33fb3" +dependencies = [ + "phf 0.13.1", + "phf_codegen", + "string_cache", + "string_cache_codegen", +] + +[[package]] +name = "webkit2gtk" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1027150013530fb2eaf806408df88461ae4815a45c541c8975e61d6f2fc4793" +dependencies = [ + "bitflags 1.3.2", + "cairo-rs", + "gdk", + "gdk-sys", + "gio", + "gio-sys", + "glib", + "glib-sys", + "gobject-sys", + "gtk", + "gtk-sys", + "javascriptcore-rs", + "libc", + "once_cell", + "soup3", + "webkit2gtk-sys", +] + +[[package]] +name = "webkit2gtk-sys" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "916a5f65c2ef0dfe12fff695960a2ec3d4565359fdbb2e9943c974e06c734ea5" +dependencies = [ + "bitflags 1.3.2", + "cairo-sys-rs", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pkg-config", + "soup3-sys", + "system-deps", +] + +[[package]] +name = "webpki-root-certs" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b96554aa2acc8ccdb7e1c9a58a7a68dd5d13bccc69cd124cb09406db612a1c9b" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "webpki-roots" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dcd9d09a39985f5344844e66b0c530a33843579125f23e21e9f0f220850f22a" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "webview2-com" +version = "0.38.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7130243a7a5b33c54a444e54842e6a9e133de08b5ad7b5861cd8ed9a6a5bc96a" +dependencies = [ + "webview2-com-macros", + "webview2-com-sys", + "windows", + "windows-core 0.61.2", + "windows-implement", + "windows-interface", +] + +[[package]] +name = "webview2-com-macros" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a921c1b6914c367b2b823cd4cde6f96beec77d30a939c8199bb377cf9b9b54" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "webview2-com-sys" +version = "0.38.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "381336cfffd772377d291702245447a5251a2ffa5bad679c99e61bc48bacbf9c" +dependencies = [ + "thiserror 2.0.20", + "windows", + "windows-core 0.61.2", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "window-vibrancy" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" +dependencies = [ + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "raw-window-handle", + "windows-sys 0.59.0", + "windows-version", +] + +[[package]] +name = "windows" +version = "0.61.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" +dependencies = [ + "windows-collections", + "windows-core 0.61.2", + "windows-future", + "windows-link 0.1.3", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" +dependencies = [ + "windows-core 0.61.2", +] + +[[package]] +name = "windows-core" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", +] + +[[package]] +name = "windows-future" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", + "windows-threading", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "windows-link" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-numerics" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-registry" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" +dependencies = [ + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-strings" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.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-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.5", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "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-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link 0.2.1", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", +] + +[[package]] +name = "windows-threading" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-version" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4060a1da109b9d0326b7262c8e12c84df67cc0dbc9e33cf49e01ccc2eb63631" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + +[[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_aarch64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + +[[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_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + +[[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_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + +[[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_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + +[[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_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + +[[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_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + +[[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 = "windows_x86_64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" + +[[package]] +name = "winnow" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.55.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97" +dependencies = [ + "cfg-if", + "windows-sys 0.59.0", +] + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[package]] +name = "writeable" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" + +[[package]] +name = "wry" +version = "0.55.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "186f9871daa55fd9c016578b810d149de58367113db7fb72b462d2323ce19514" +dependencies = [ + "base64 0.22.1", + "block2", + "cookie", + "crossbeam-channel", + "dirs", + "dom_query", + "dpi", + "dunce", + "gdkx11", + "gtk", + "http", + "javascriptcore-rs", + "jni 0.21.1", + "libc", + "ndk", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "objc2-ui-kit", + "objc2-web-kit", + "once_cell", + "percent-encoding", + "raw-window-handle", + "sha2", + "soup3", + "tao-macros", + "thiserror 2.0.20", + "url", + "webkit2gtk", + "webkit2gtk-sys", + "webview2-com", + "windows", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "x11" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "xattr" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" +dependencies = [ + "libc", + "rustix", +] + +[[package]] +name = "yoke" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5" +dependencies = [ + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", + "synstructure", +] + +[[package]] +name = "zbus" +version = "5.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5db4be7c075cb421e4b7ee645541604239bd243ba7c357511f4ff3a74b555907" +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", + "libc", + "ordered-stream", + "rustix", + "serde", + "serde_repr", + "tracing", + "uds_windows", + "uuid", + "windows-sys 0.61.2", + "winnow 1.0.4", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "5.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2990635d09ade6df1868f72f8cac69a876a90981e8bd3c40b1be413f8dc88f40" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 3.0.3", + "zbus_names", + "zvariant", + "zvariant_utils", +] + +[[package]] +name = "zbus_names" +version = "4.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8bf88b4a3ff53e883001e0e0115b297a9d53c31b9c1edd2bfdd853e3428624e" +dependencies = [ + "serde", + "winnow 1.0.4", + "zvariant", +] + +[[package]] +name = "zcheapstr" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "769381976ea05c1f0abde0ca527b02e415bccbdbad148534a2b0c1901c9ab934" +dependencies = [ + "serde", +] + +[[package]] +name = "zerocopy" +version = "0.8.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "556764e583adb45a9f8d413c2a147fa7e8d821e48e12b14fd560b607998b75eb" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2ab42fc20575779bd240faa45f94a74256f755c0fa9e89f0ede20d91d0cdfc1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zerofrom" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" + +[[package]] +name = "zerotrie" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zip" +version = "4.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "caa8cd6af31c3b31c6631b8f483848b91589021b28fffe50adada48d4f4d2ed1" +dependencies = [ + "arbitrary", + "crc32fast", + "indexmap 2.14.0", + "memchr", +] + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" + +[[package]] +name = "zvariant" +version = "5.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e28c25bd8bb8da5a1f3e7065d0c156b9ee9a7973adf78b0e35eaefdf3b1b5c" +dependencies = [ + "endi", + "enumflags2", + "serde", + "winnow 1.0.4", + "zcheapstr", + "zvariant_derive", + "zvariant_utils", +] + +[[package]] +name = "zvariant_derive" +version = "5.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d496a145685283b67e232bd9e47377f6b60ad9d51e3601b23867f77c42477f96" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 3.0.3", + "zvariant_utils", +] + +[[package]] +name = "zvariant_utils" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "629d80ece222cad20fe0e8741be493c4ab166acf3b85341bdc2cdbcfd8f3c2d6" +dependencies = [ + "proc-macro2", + "quote", + "serde", + "syn 3.0.3", + "winnow 1.0.4", +] diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml new file mode 100644 index 0000000..9140e39 --- /dev/null +++ b/src-tauri/Cargo.toml @@ -0,0 +1,60 @@ +[package] +name = "margin-calendar" +version = "0.1.0" +description = "A calendar for Google Calendar" +authors = ["Margin"] +edition = "2021" + +[lib] +name = "margin_calendar_lib" +crate-type = ["staticlib", "cdylib", "rlib"] + +[build-dependencies] +tauri-build = { version = "2", features = [] } + +[dependencies] +tauri = { version = "2", features = [] } +tauri-plugin-opener = "2" +# Mobile has no loopback listener to catch Google's redirect, so the OAuth answer comes back as a +# custom URI scheme the OS routes to this app. Registered on desktop too, so both flows are one +# code path with one difference in it rather than two. +tauri-plugin-deep-link = "2" +serde = { version = "1", features = ["derive"] } +serde_json = "1" +base64 = "0.22" +sha2 = "0.10" +rand = "0.8" +url = "2" +reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "json"] } +rusqlite = { version = "0.37", features = ["bundled"] } +rrule = "0.14" +chrono = { version = "0.4", features = ["serde"] } +chrono-tz = "0.10" +tokio = { version = "1", features = ["sync", "time"] } + +# Refresh tokens are sealed with XChaCha20-Poly1305 and kept in the app data directory. There is no +# `keyring` here on purpose: it has no Android backend at all, and on macOS it ties the item to the +# code signature, so every rebuild re-prompts for authorization. src/google/secrets.rs states what +# the file is and is not worth on each platform. +chacha20poly1305 = "0.10" + +# There is no auto-updater and no process to restart on a phone: the store is the update channel. +# Gated here as well as behind cfg(desktop) in lib.rs so a mobile build does not compile them at all. +[target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies] +tauri-plugin-process = "2" +tauri-plugin-updater = "2" + +# One UIKit property that wry does not set for us; stop_uikit_shrinking_the_viewport in lib.rs says +# which one and why. These versions are the ones wry already resolves for its own iOS backend, so +# matching them keeps a single copy of objc2 in the build rather than a second incompatible one. +[target.'cfg(target_os = "ios")'.dependencies] +objc2 = "0.6" +objc2-ui-kit = { version = "0.3", default-features = false, features = [ + "std", + "UIResponder", + "UIView", + "UIScrollView", +] } + +[dev-dependencies] +tempfile = "3" diff --git a/src-tauri/build.rs b/src-tauri/build.rs new file mode 100644 index 0000000..187e9d5 --- /dev/null +++ b/src-tauri/build.rs @@ -0,0 +1,29 @@ +use std::path::{Path, PathBuf}; + +fn main() { + embed_credentials(); + tauri_build::build() +} + +// The OAuth desktop client is baked into the binary, but a clone of this repo has no +// google-credentials.json. Embedding the example file instead of failing the build turns a +// confusing compile error into the runtime "not set up yet" message from load_credentials. +fn embed_credentials() { + let root: PathBuf = Path::new(env!("CARGO_MANIFEST_DIR")) + .parent() + .expect("manifest dir has a parent") + .to_path_buf(); + let real = root.join("google-credentials.json"); + let example = root.join("google-credentials.example.json"); + + println!("cargo:rerun-if-changed={}", real.display()); + println!("cargo:rerun-if-changed={}", example.display()); + + let source = if real.exists() { &real } else { &example }; + let contents = std::fs::read(source) + .unwrap_or_else(|e| panic!("could not read {}: {e}", source.display())); + + let out = Path::new(&std::env::var("OUT_DIR").expect("OUT_DIR is set")) + .join("google-credentials.json"); + std::fs::write(&out, contents).expect("could not write embedded credentials"); +} diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json new file mode 100644 index 0000000..85d4009 --- /dev/null +++ b/src-tauri/capabilities/default.json @@ -0,0 +1,7 @@ +{ + "$schema": "../gen/schemas/desktop-schema.json", + "identifier": "default", + "description": "Capability for the main window, on every platform", + "windows": ["main"], + "permissions": ["core:default", "opener:default", "deep-link:default"] +} diff --git a/src-tauri/capabilities/desktop.json b/src-tauri/capabilities/desktop.json new file mode 100644 index 0000000..b0aa0b6 --- /dev/null +++ b/src-tauri/capabilities/desktop.json @@ -0,0 +1,14 @@ +{ + "$schema": "../gen/schemas/desktop-schema.json", + "identifier": "desktop", + "description": "Window control, the updater and process restart, none of which a phone has", + "platforms": ["macOS", "windows", "linux"], + "windows": ["main"], + "permissions": [ + "core:window:allow-destroy", + "core:window:allow-start-dragging", + "core:window:allow-toggle-maximize", + "updater:default", + "process:allow-restart" + ] +} diff --git a/src-tauri/gen/android/.editorconfig b/src-tauri/gen/android/.editorconfig new file mode 100644 index 0000000..ebe51d3 --- /dev/null +++ b/src-tauri/gen/android/.editorconfig @@ -0,0 +1,12 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = false +insert_final_newline = false \ No newline at end of file diff --git a/src-tauri/gen/android/.gitignore b/src-tauri/gen/android/.gitignore new file mode 100644 index 0000000..1c636c3 --- /dev/null +++ b/src-tauri/gen/android/.gitignore @@ -0,0 +1,20 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +build +/captures +.externalNativeBuild +.cxx +local.properties +key.properties +keystore.properties + +/.tauri +/tauri.settings.gradle \ No newline at end of file diff --git a/src-tauri/gen/android/app/.gitignore b/src-tauri/gen/android/app/.gitignore new file mode 100644 index 0000000..6c4d56b --- /dev/null +++ b/src-tauri/gen/android/app/.gitignore @@ -0,0 +1,6 @@ +/src/main/**/generated +/src/main/jniLibs/**/*.so +/src/main/assets/tauri.conf.json +/tauri.build.gradle.kts +/proguard-tauri.pro +/tauri.properties \ No newline at end of file diff --git a/src-tauri/gen/android/app/build.gradle.kts b/src-tauri/gen/android/app/build.gradle.kts new file mode 100644 index 0000000..132aabe --- /dev/null +++ b/src-tauri/gen/android/app/build.gradle.kts @@ -0,0 +1,71 @@ +import java.util.Properties + +plugins { + id("com.android.application") + id("org.jetbrains.kotlin.android") + id("rust") +} + +val tauriProperties = Properties().apply { + val propFile = file("tauri.properties") + if (propFile.exists()) { + propFile.inputStream().use { load(it) } + } +} + +android { + compileSdk = 36 + namespace = "studio.margin.calendar" + defaultConfig { + manifestPlaceholders["usesCleartextTraffic"] = "false" + applicationId = "studio.margin.calendar" + minSdk = 24 + targetSdk = 36 + versionCode = tauriProperties.getProperty("tauri.android.versionCode", "1").toInt() + versionName = tauriProperties.getProperty("tauri.android.versionName", "1.0") + } + buildTypes { + getByName("debug") { + manifestPlaceholders["usesCleartextTraffic"] = "true" + isDebuggable = true + isJniDebuggable = true + isMinifyEnabled = false + packaging { jniLibs.keepDebugSymbols.add("*/arm64-v8a/*.so") + jniLibs.keepDebugSymbols.add("*/armeabi-v7a/*.so") + jniLibs.keepDebugSymbols.add("*/x86/*.so") + jniLibs.keepDebugSymbols.add("*/x86_64/*.so") + } + } + getByName("release") { + isMinifyEnabled = true + proguardFiles( + *fileTree(".") { include("**/*.pro") } + .plus(getDefaultProguardFile("proguard-android-optimize.txt")) + .toList().toTypedArray() + ) + } + } + kotlinOptions { + jvmTarget = "1.8" + } + buildFeatures { + buildConfig = true + } +} + +rust { + rootDirRel = "../../../" +} + +dependencies { + implementation("androidx.webkit:webkit:1.14.0") + implementation("androidx.appcompat:appcompat:1.7.1") + implementation("androidx.activity:activity-ktx:1.10.1") + implementation("com.google.android.material:material:1.12.0") + implementation("androidx.lifecycle:lifecycle-process:2.10.0") + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test.ext:junit:1.1.4") + androidTestImplementation("androidx.test.espresso:espresso-core:3.5.0") +} + +apply(from = "tauri.build.gradle.kts") \ No newline at end of file diff --git a/src-tauri/gen/android/app/proguard-rules.pro b/src-tauri/gen/android/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/src-tauri/gen/android/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/AndroidManifest.xml b/src-tauri/gen/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..d4225f6 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src-tauri/gen/android/app/src/main/java/studio/margin/calendar/MainActivity.kt b/src-tauri/gen/android/app/src/main/java/studio/margin/calendar/MainActivity.kt new file mode 100644 index 0000000..9a1a506 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/java/studio/margin/calendar/MainActivity.kt @@ -0,0 +1,60 @@ +package studio.margin.calendar + +import android.os.Bundle +import android.webkit.JavascriptInterface +import android.webkit.WebView +import androidx.activity.enableEdgeToEdge +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat + +/** + * Android's WebView works out env(safe-area-inset-*) from the display cutout and from nothing else, + * so the status and navigation bars overlap the page while env() still reads 0 underneath them. A + * targetSdk of 36 makes edge to edge mandatory, so there is no overlap to opt out of: the only way + * out is to measure the bars and tell the page. That is what this does, and the page turns the + * numbers into --safe-top and --safe-bottom (src/safeArea.ts). + */ +class MainActivity : TauriActivity() { + // Device pixels. Written on the UI thread by the insets listener and read on the WebView's + // JavaScript bridge thread, which is a different one. + @Volatile private var topPx = 0 + @Volatile private var bottomPx = 0 + + inner class SafeArea { + @JavascriptInterface fun top(): Int = topPx + + @JavascriptInterface fun bottom(): Int = bottomPx + } + + override fun onCreate(savedInstanceState: Bundle?) { + enableEdgeToEdge() + super.onCreate(savedInstanceState) + } + + override fun onWebViewCreate(webView: WebView) { + // wry calls this between constructing the WebView and loading the URL, which is the only point + // at which an interface can be added and still be there for the first document. + webView.addJavascriptInterface(SafeArea(), "__androidSafeArea") + + ViewCompat.setOnApplyWindowInsetsListener(webView) { view, insets -> + // The cutout is folded in rather than trusted on its own: a landscape cutout down one side + // is not a system bar, and a hidden system bar is not a cutout, and the page has to clear + // whichever of the two is deeper. + val bars = + insets.getInsets( + WindowInsetsCompat.Type.systemBars() or WindowInsetsCompat.Type.displayCutout() + ) + topPx = bars.top + bottomPx = bars.bottom + // The page reads the bridge itself as it boots. This is for everything after that: a + // rotation, or a switch between gesture and three button navigation, moves both numbers. + webView.evaluateJavascript("window.dispatchEvent(new Event('androidsafearea'))", null) + // Handed on rather than returned, because a listener stands in for the view's own handler + // instead of running alongside it, and the WebView would otherwise see no insets at all. + // It does not bring env(safe-area-inset-*) back on its own: that reads 0 here whatever we + // do, which is the whole reason the page takes its numbers from the bridge above. + ViewCompat.onApplyWindowInsets(view, insets) + } + ViewCompat.requestApplyInsets(webView) + } +} diff --git a/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml b/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml b/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..4fc2444 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..28f1aa119119336781390c2531c381499576ed59 GIT binary patch literal 3524 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 literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..28f1aa119119336781390c2531c381499576ed59 GIT binary patch literal 3524 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 Hu0mjfi}+A- literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..13dd21476b5c7f69cdfb82969bce7150244c127f GIT binary patch literal 9081 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 literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..73e48dbfb7dc31ed1e951b77820af88b93fcc418 GIT binary patch literal 3377 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 Hu0mjfi}+A- literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..1d98044f13bdd3afc7cb426644ae118688c03c14 GIT binary patch literal 7971 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 Z{{b+Ide7&7`HKJm002ovPDHLkV1iT#V`TsU literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..a888b336b5bc84b42c0c266ce9b8ec5d9eafed0b GIT binary patch literal 18900 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 I*#%+#2dtK;n*aa+ literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..1d98044f13bdd3afc7cb426644ae118688c03c14 GIT binary patch literal 7971 zcmV+;AKc)HP)JESGv*^#e%LPSO8r`RL~zQt7})VuvTQj3Mw60iuB$~ zAP^Er@5%JJ?LX(ccQ7QAWG1BfZ0?hJQf6*DM_CLAN zfAx!}Y51aP2EV)iE-Q-mKE8S7;|ly8Hj2Dj6j0X-hAUyYprkJuC*@CpkpFB#p?Yyj%Kq81V?U( zP-=I|*~c$9E}qYHrlw{&Gs>-!Tu~Vy1x1z=Noi3)?SePz8ERCYz&^uoG>yKgr|IUz zSbbNXX==+ z$GH$bn6gWhIVo3NUHty|xkN^yO;{j-}c$V^KiQ3McwQZUAdG^aI{wUpnAB6X~ zig5QoqW~UmT+nWO!Nbwh=HA!p4LXnwqbw37ii(I<3=(JR>2!*uLJq_Fu?)r0)YhG4 zKRo$S=2Iuq>^a~`tQxBuE>Jfc1<hJvJKp#a2ecyS;EaoVk6!~Q)t;b#b{fr42Q z5GH6JEWR?w*W!WK_lX7o=j5qij@q!X__ML|(jF5;1tE!ThydN>3eW_^g5acgACH;- z^wj9Zl$F4ZDu~)F7xt6Y%nP$ImSNooC4ZujT*CXvfn@X`rc%;YjS^+dG5BDPOHHwD z9XRvc==>7V0r1EQ^{fQCsf7<;97so8^pDutGaib5M=BC9wS@qSJf(UWp*6ziI93lw zFlY`UD3oB4%m5cQE#T^m{;Ub!=Sip*Wu&5%C_pU1_|4RK4hk&a#RqY^j5Pbv8>gQg zP*5t`>e~~VQ~`+VAT05tCt@F;H8uKUp-7N9mY63~li-n|Pyrx2uX({ zW!;B~R(h_hz$qwp29qm=;$y=3pf;^^@i%nxyKX>t|DnA)`3*LN^I?<|v~H6mmQbnc zA&w{^kSO6$??=w|%`X+j`iu!prT{nFnK2=J+@kqye-%pv1%j|ro$wKA099Bf5Cm_R zOTXJ#{KXe*icy_wTUd^UkM$b?}J0)mb9)aZb;0nCq%l{}exWNi4jHy>&JW^lBwvs5O^Bsf%a4K9dDx=@~9 z`g8sp_b0s`1rNg({5t;YI9z+tX1-*xQv=hKG2 zu`F*HzG)L;+g(z49W77kObIRWIU>Z{am}%nocOH*8#mNP7?B+j8KOHwO?HRmI ztPi=ZwLUkrUQE7p9Ie}Q(0q90ob!Vr)`(b!P&^10$%9fZQTL1reR@!jfc9t*XjskO z1MnizQbzX;On!b^^g_uZDH!yS&LKFXfN291EaAn4@!ZKH=8gRxJ9jrK2&rO2S0|xE zAfXb@U3O+#%+je5H;3FM*=2=c=*r%S*CI0hEEgBT`7Pa8yc!cgrH)?EXbNy&9Nlx&vT@6fvK6yF%zVDoA~{H9w2?}~s02_pzw4y+ zRL^)ra8ft_exh9_1;DHB1#U)hDRlc-ebO)6%a-I83#AY-^+7c^G+y3Wi8zkmFX*m=s~Udj(Iw|Vcj0YSY?#wyT>aKqu} znL1QHwI&XBwm9v@*5x=D?D6{(w@2KG*DGvE7L`AGDivSyww{u*>v|=7Ww+zlrE{OZ zS$cqW9_8`z;Ul4BaN z0ZgH~K+6&t7{PQ();{dDVW5SBR7rq`hCDU+x`6J`D;}7f=+_gP^|8SeursVqxw z;MKKFj4}4=*T=ej^ENRjvzREM7Ef^FHU2zja^$3^?u?ul4c4kQ=qWO=B9w{6zw9Vo z_RJ?)FJ8_U%Du&E_pv+0=_Ai9O-hAJ4n*ZuY=063_%ZB}6PAtFKYVs1*0B_-87lzT zJOf~Zf+d32cjyvl8a?3-zX3zX!Oufvn8}ggeK34@$aH6(OOOQxXrx-4!xvIm6o#u#0Eot}!EyI_9oH!IJ867B#iS7Zy|1>`ees~nI;9zI98E~KWYcU`mflhj$I ziO=9%5a>>+4Niet>LjzM^hyqx1ZD6fgqGU8z-{p-FWS>7o8)5Ex>eld5 ztT&hfK(M?bilQN@M?%6+oA!m=Km8TOYGq`rS;XoW!~@PvPvK`;wpyHGZdR@au1Za; z2dzJ$l`a&zTm!J7Qe7##iaBF1Ku1$!`UMTwtd*(7{>gPfZK?z+q-A9Au3EUFLhBS3 z8-j0wM8NVzA#nWUVR1`WpXTG+^cIT>1^Bz73H~an5EFJftWtTYr8Wg<%@rys!4Sur z*bs0W%G<##T4P3l*PYy_t`&b^%PA7s{k~SO zz5lx+3Vw>sCITGsHM%EFJ86a$y*LFqhM$4akw&{xr{Xm4%ZH&Gra=2tp{VLTfXwJM zwE{qZJPJSbvDptsz4Z1{xx9=bT%TpR8gN0PBoQfUApEAQ?Hq1gPS0`WLo3s%RV%$x zf}*)WnMKNW+lx0_co4^jnm8R*gSWwDIhs@f1oHuQf^NTeeE4ItzmoEE5L%$ZP#r!a zGZIBwujkm1a7uC5F2k+W%FW$n-&5)KjI1123JsX=WW?oltlyHd7U(H&6uOf@t{Bv=(1&I#FN$|LLiwA`Nq40Dysh+i{9A2x8~6H} z_()xA%D@CjvPZUs*Nbr?*BhnQzXGtH1D4E&gc(}B{^75R(@qlsS0j96Mzqn$!G89_ zg>TNvxZ{={rOUrsE)^Cyudt$8Hf(F+_xWGtew3H)IHohPI_Q=;YhpjJ4`jqFHUG<; z**2$4a*5h9RyRvZYGde1@eJ|Vs;ms|Q&gzbOy?!-T#c*%t)Lh6;v0*&)^Y7*hXdIT zSDoPVlA_;r2r)@D0)uvC1(;VOXHWQ1H8$>&no8 zweb{y2|rr9X~ei;rcvXkN~J}T#&$dlKQxT9?%eYIrO6}uI8PtXpgE{NV95vG^OenL z6LRd1DVP$VeAW*cao8Rc$|J*;JPRTz3Vi)-N*t0d(-)56+e? z79!NDrVr&?y@3;Qv(vI?PrF?cK1;e@^|(n|-xwP%v^upwhT_zg4^5V%`XYR{C6DYK z*mYo^pgSdt=w2Fo75-xt3p}H6%VEn7%_Ds7U)L!H(2Oc<)0m0lb!`$m$qu{Zk@bLw z0?(%k-h6S2R8;5$%;)M`_*W@H3&M!;h|jp-1Aq5*at#znEc=y*qF>h{u~?aY;<8qx zz#I3Q*IdYUmSNkoE)#NfQh=g0vI56UoC-A@kJyjU!vqG?<_*7nYT3MgH&{N8oP=uT z8`MV$~2Urt(Wc{)6to7GTXhM4{nAlC|GrDOEp9I9b10L>Knw1cx_g+M|)$` zv9CLyfj@;{r@C_0l(Zs^414yxZFka?GXvlXu_`6kMFT#20Iiw3|G=AvF(#7%V?h-~ zf`AxPAZ6aP`fC)v+70tw_~i4rk`#}P?uIQ!oGb^gBElz&Q<-|LW0B=YApD46j#~3( zyVcMEgG#F+dMa6y5CbKUH~*9OFImmZ>AH@q`W%GGggtDA>w6CaCgXX40jdljJgV%6 zC10rfc-g4d=J-+2d`x_Z>DJrtGA7?R1gLH+P=wQ!k#^d$W&JPExZgqMM(Qb`1MF}v zP51{EciI@2V7L*W$K#?62>2rB$8ssBtXsd?P`nC_Sh|KKOTIyn)+lEJOl-o6%_&@1 zM4}=HSJ!+1Gibe$aa~M3bm`9Fy+ABDl!Zkh+?T zBaUuAv}b+(8!tTMJbOC#T9lwY1_9}*&^nAa?*63Xx`cMdp+dP>-N-zyE2h~%jv6!L zT+em;%8y>_nlZ*_1)#;WX`jG_M5aD}&jw^ykymwDV z-_}2<=jo+gPA0T53>D2{P3sk)=EYOXel1vl!e`ao;+i~=@lpOn*nD(sBCR*@8m@b+ z4myq=-2EqE@CNf0DdgUV?+ktPsh7mOY=ZlwtbuhU2*&ur&!Ix4vJxlF^R1%)x$rl} z-=EUrg16pG7F3`xq0Vpk>iPIrR(;sva8MA}PO=f$;j5vz0w2Kg>E~?wroDCfMKu^- z`)Wxa1DU3P*!XxFM|`L%iHAa%i^DEBFPv2y?6uW+NKyyca$qnY`tYo`q>>`6F;P?v z9VW;p^xzpTUAqp~g-&~7rpl1K@&W>J2~oPBe@<`xWcm+XQy-iZIbXI&lseMld7&P% z9u~dAA(u{kF>RvVD$#mDSbt^^tq3={=h$gjTOrvqi4w4 zF^}iO0RSA(!ez0OUb;ByNUA+sTd7koRM;m4xD~F8ZySv4(8CCfLSuonysQ*p!s-hV zFy7E-AXWQx$yIz9V-Oe7stX_0I+k3X7k$|P13;Rd4t5q}8%L2frbAa_`64QYhCafK zSJQ_>BWEu{RDG`0sT-G;WnHy`LK!lQlT1K(5d++A46qVKsHHCq4kQE=)yT)S39EpR zHEv`Ty-W$X)TpK*Dh$pH56Uqz^5d_j5BucT!cCm^FcGRAx4ISMSXQo4u1F`nFYl{D zU>KM0SV(#alw>J)U4g*bi3C%V;o)$th^sSAEH9X)oUu=*joz@I(9L=mew{r40-&w> z;s;sq6@X3ps{~wQSO<&C%Slm3+`LpA#uk>qUA}NRJ=2?bqcInp-(fvmo1zJr;lp|U z*a_>}E>q4VHKg!;R)E`Mp^;ullgE-MRT&LfBsAN@*zky8Z(zYa&TZYbbv>o#Q{HiU z8A{y-Bjq@KY#UTs&4jAfGEI%&K3 zsB)HSeS`)PejPkOy+5$JOf5UDngak~X8invAXkW^ywL!3Zjtra_G~{1O`D(Dpb%7I zZE%F_mch)p^v5Odc!~ey1MOqARmAf~EhWQo@4D1Fx+$rUiSHee>l&3o;+8IbK3Fn)eIC|$ce z25{&>WBG%Rj$uldfBBkq+ol7=`fDjixSgYKlHU!;E%pAa9v9gOf>Qk3hT=torl)in zHRr;k$1d3OIW<7bjj=k@HxJMjJ_wl^7i6os6kAZ0g+yzC(b%*1-zw}<8=T0P;kwdN z^RuSkHBdH}XKQ^B5MmM+UUn|5s@rd{@eKr=FO+n%v-7@&d_M_QK6jQ z@EZe%D`v@d;Fx9g|Gj_t!H)NyP8|P2+N_-?tY$DG8Y{K^&ck4QK z>8IFj60yLmgCnijta%xC+>$63=3Bg3ZbS~O71p@OR{r5n&V9*$$guk%LyjUvIOMBN zhvYnWW^c*2i(fOZ`(-2Lo}H>K+0$07v<~M(pv`#0mc!;l>A9|wE2K`%fFZNdrq6xp zTQs%;upWb@gQ)p${VQnl-=CFAibcB8>?dZW5Qy2lSD&3+`rX$*kaYs0=pB|~VNHV* zE~=HkzC%)XHY79(imXl{<3g(A=swRkf*5N>P&Ubn)s(1 zH;xa~MFGT0O~Y>;8vWiETcxs6xk^JGgO#$Ce)K~}?H4b1DI0fsyZ6gZ~j zNofqOFQ`iinkEnCV8{doHnE6|E1bix@1P#~PF>rSEct9zV=2MsJV4Rh)3$HtF5vDL z8J&))0`$O9WxG{2B=r~=c-tML(7gd&y-)hE4T*xGiJhvez0fn%x{>U&@bQ_s=($jM z5=Dru61LRABjFruNSMwvdcw%o3zsa9U$*8L5Qs?a78+#@FfhW+utHAusfS{b$sR{1F&^m?JH-b-@aQZqBs_s{+rA43Jdp_qFkmeS4MQp}aDpf3 ztvk1Ti^6vsSYupc-P{Z<1A?HKompV)*0Zy|L+5Ua!y#5~l#?k2n@xdA=U{-VeU4Md z&OswZcV&Tgg9=}bRnR`A;=Ww54H(r#zIAL@ND?C{=)1@^U~f(b3F0_11G_kZG~5qm z^fGUlRg=Yl3KmW-u=tyg|EYl)R}BOxP&=X`=f3_6xO;aSiRDTp#}TD#bJ`oty5#|e(6@qjK?LQu@7%k~FOxO)_?s3Gp}VW78ecY-6jWcp6vBBT8izT5CSz|Lf;v`DP(9GG20 zqDK`k`RrLC>rx@E^trMKx!HSw7LD=dpap4{%S+D(jv7B1++3zT4Nal-sm*hpY2>(j z+0byEZU3$<8YIx<=4r||>r;t6OInz+I>2SR_4c8y-}_>-E-t>OWG)lQaXkxPU;~4A z`|*S8^XAT)tr}zF{`ZV)R{(B^mjFf1)5lNi;u1oQJ#XxX4Rep~h#CW3PUL z14oX#3tE?%uGEwiavT&sO{-6OP@keoUx6|5fMJGF{|^S{1T>@VgG!V2Nj=)MdgZw&(OEgSavR4Qqf3UFgEq?o{`jd5SE*sE*Tu?Ij?jY=Ti z0GJEqXO__$DS(VJ$H}AH?T7YmcU?Sx92!3vVs3URd`KMsVyT3g%Ph!Gf& z`tJw5d$VX*5OaT_#R}YcPW^I*{n$U)NUG0*UxphV+pV0Sf~L(5Kk*w{QlErKmF%7 zHAXcL*l9ckREi7ubHGg_28BH~d%nI)w_7Nr@>UDSOA)N~r&!oBIHNf5h0U|5z?O zA`Bb(zM^6Cl=(}o2%6~ zjRM>!RH-U?d?^0T$HayB^&fJxU*Ewa4PCnTW5XlcL#!~++CLY&GOt_VJGOSAgh4@( zEnB#J@u+?O?#^W26JXqKZ_}08L(jm%*O&1*L>k}My8OLo#skApC%O**ed!N(p?C^&0g@$$OIU* z5Le9;R=iQAxFT2|!6EHm_q1#+Tg%q6wQMb0%hs~BY=5!s Z{{b+Ide7&7`HKJm002ovPDHLkV1iT#V`TsU literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..081832466b4a17180fe9255fa0d3fcba2010592c GIT binary patch literal 12392 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 K@hVZnfd2y&>ZwQo literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..a2a838e7b550ac82b12e73d71427c6ffea06a944 GIT binary patch literal 29506 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 K@hVZnfd2y&>ZwQo literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..b18bceb64d257ed31d50e65d7f2b98abcfb21158 GIT binary patch literal 16751 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 XrJNsHnTG=pQeg0O^>bP0l+XkK^)z{o literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..3f8a57f38e0273699c8cdd1012042bffdc38abce GIT binary patch literal 40510 zcmdp7V{>KS(~WK0){X5Xcp4d*F{Qe)~IaRk#)p>DiclYkz zy;iRsr6@0n2!{s;0s?|4_49`^2nZJCImuC?5Ykq~7~u(Hm2-9UY?1QPhL6t@xL~OV)Yihw0M{$^;p-pMm$2*Np~ww5+o=v5MV*V|1Vz8@Y&&k!lV2!bqH@7ER>kBxIr*6!Xyj;w7)%TA=yr} z3%`@St6jA~21gUGv5JMrguqa7f)XmT5Zp6Tjp;A_;D4C$!S%SO{ZREX>eFp=boooY z*y8%W?v4oKNbY^n zF7%Ku0IrA#pQZYfzFgkghnvJdiLVY@2dyEQqeyVGeWF!^GHhqrGBy5}z$ui!z|n(1QnF)^A;BL)d2)ndT+zeT6hrrKY5 ze>EtNEC0;S5$20^EN1(#4(j29zO?1!@{;i@6bM*QDdmt9B||#EhF(6e54ytkQ9+TCY0jjMB z_3+k`^-LDb3qy*tHtIoJn&Y<5U9Im6IpwKg%%0K%uXj&MeDrcRL5?J-I!jpBxnM)3!V2~FfG%Ha#16DVIX?I{Uk^>d0-sw z4IVO%R=2aTfw7X36=xfpd-%0@MD0(cn1z}xY+$3-5a;b84CRfcm57;m@BOuZi54l2 z{_ea@eI86W%~VkOR?idvKBKF?`s$6ge8n(>@<)%TY}masJu1`E*b@9YZY?fJ#k5Se zC)(KLY#G!3J?bXuy`B-;GZHxk^TQCLU#LrIUIg2!|An~ieTN)HEF|c5uxsKA-O51q7_`SLkzKh-u%4zhy4Y(G;y}rUn6>Zc`GRb%Tmlc|zMa8gG z1Zl7+^PI1B6*34=pLzWbm-tF4*mImsy6&d>KdPpJwF84-=T1L3B)}mW_rrLAL;7o> zVcMC|vPJ1}nJJ}e;T!-*h}_jvD-XeVi9wV7or~w^{7UngDn_nkm16(`++1);U`U`V zt!kbygapYuVtz9OSUP;)gQqf644!U)DYx&d|6w7LV5_gqY!y;ar47S7<@Jr{)xq}F z1OsKI87W69RiUbWMlKQDA|J;iYr@9aNRH55v=w}kP>UN+6tRW(vIGK{$XAw)5(vzH z>8{C{9}d|~G}$DoLcC!%;LF));ApBA)jj2PjI^4>vC*;0!gT=2aUHfU$&|cQpMYm= zdBS&4mVPSkjXbeH#r{6ack_=L&%oEr_;_+HRv#r2WPu@_vTGNajP<{CxsJdGne@$f zV!=os^1|!5I{%#0id|+hd8FIm;bv|`J#&f}(qX`wWvQLGGl6}y>4h{}+oe?6h+~~K z#{sz`twsF2T?%bh5PYM2#N!^+=f8M_%++AH@Ss2=M+riOiT(pP&tXLSeKXGy0$vCe zE>GBQegMM^k7RZs&zze;^V5!<{%`G^zm~nQv8V|tv`RG*(;~|k!?5?(n9vuR&vkjr zMsC+p)bO(SA%=B#Ze=V@?6>bnrTzx12#ks#vV$N1uSM6d-ZZ|HB+qr7b8+X~!?qNY z&fNtJa3l~*LYUd{+A!g;Lxg*6%Y63rO@Eed*+;2RBqh|fX5pXPS436m&lfw{z2g(j=WJI z#hg2#D=^xPAY~S&>XY?f3Fe8y_TUXTT0vxVcW@~U!D}qAnIt76pQWNSjbXiCCCu1w3S`1vkFuMWmYuUlwdEeavGwf39s5ny+z ztv%C2+cDR3dY+EP!Z#bkCy7j6fmI_+h4RK~4uc${`2zwdJp8r3dUF}dZ~y8cz4qBYx5=Lg z7Di3>v8rp{gupMat?%*sTnfO~_@6X2xB1D4EVTaNXZ=20`ksDffx59{rXHM~FLudH z00>oF@S?{WG=)Qfo#+x%CJs#6S8HOXbZQ6s*O7)58pCbV_8b2etyaF61-6%=x~Ck4 zPn=|utP;O->6#j74W2zb7ja0??3ehsDmQ>+v32P+nM$tM8N{Om3pYJ#O(vFHcOpX% zVDA34MD2j*Hdy53g3l<+%hjiA8?u&e$si+wWGgB`hSz^0O4*{tM;E_cY+9K$L*$rq z?g~(?p*y4<>Cr4oXCme6!?s#HrRv!7FCa6?^W&t$F|)LNt@5@J;j=U`v|sG)l%+_G zg%1o5OpvAtee?ZQ&?2u67qoD=yzlO z#<(LFyXD>=d&j#_ANMon+p=fqNO&4p`MIC6&Wb5f#d(~k8b;g7nzmK=XReyuG|WgEYR}8w+1gU6BxZkw^$ckmzi$P{2g~{GlLC4a+ zBgFpi>y|E-O|urEy;&8<4a&l1z8xmIf2e{e9l09%2SLpE%Ff45NtS%KnSUBpYmH5e zw6YoKD73^iqvBaV&|^c1$zAw!uOJa$-)T9p4z&2uV_#Wv9W6LHFB*7oNZyGACL4s0 zfHj(WW~U4kDJSjrd1$Ed)?g)KZaqqJ_|G&=)B{K=F~Se+2wR=W%g>cSHgyB8E7-~* zA`oiJQ_S_X65E28zh~jGOFac8QJgLR54H&w`Pyx^PUs-O4c3*b6LqMgV zUCq;wVVVJ9Je)qETgse<6hXvFST2MuyOEq<#1}cqtFjil-rY>v4WT_qRr93D0yUMC zhrE1t={*nA_*lLR%cqlXX7a(M9U|zgQs%QLD88gxvpYkx)CHRzGv_17TipkXmIeMf z=pJILSxvAja-G&DTU!afO!#Y-0o9U z5h=-gGP7Hpks*%N35Zv<;8Ey5zNCj`bH^NSS5$Q<<*pHks)oqVPo`2?frF+Q-m~3y zY++NLL1TX?E5pzL1WhG^NSU8wn|#wJJ%{Q0Ho4HZ+8lB-OS>U0 zjO)CH*9P8yogX);bV6z|Uxs}7z1Sf_1Hex0+y71aO{~`7V-o-$j>1|ta^y3N9Pw3I zE6PMPPeIUJdSj~3ID#~t?f(Kf;&R`2Xz!B1khI53+8@6wA6O=&8{;7jaf1eJ$H#n- z28fZKVH1yKeIHq;Ddx9rKp*t^$b&N{T#tBsuhk;zQpTU&Hp@=5ts&o){p_IF$P6*Q zlZn{1VdGzR&CY7nY3 z3JFMP%6#YGg$6?Vl2!AFp&FvKkLWcihWj%X==ATYTpXv-nGyM{JXt8Y0!jucitoBQ zN*OpK6F5^D-$?{|%Zt#+!itOLiwH!bVT38I3ib9~+)Iwj;suCM9FZrCg#%f~=sn-e zLWty&)5H$MulagKd(YE6ukTIW%FyXaX+ z6cWXy-@Tz$WOpp$L2<~;87VtHTwhM(QOenwyw@PO=v)wsGbLN1Y*D2qiWD3lY{&Kt zUmy@|5@V|lQtGXvysku1m_10R1l+#|RKM#wSN+*$o%mfS;6C9oAW$=4d zYk}PqW&qXCUn230fA7W*IcaF;gVPRaHa&PPwI^+Sh?jJa%Al~YT-r;ij|5)KH-dvB z(?JIx;X6x<8x`|DPO|I-X1X@&bnOpHl5I5QGL#ZrRdF{*Q54^xLdILh3*J&RKvUFN zHI`UoH5#yVD3WO9jVZyh>EWlMlI7ER0jS6&?cvE(|Lq*dTVr8; zhMZ%!$_3-R)cu1)RBVFHu%ut)Zl{z`nPAj)WFHY8!!5qhgY4DJbVm_l#eAa-jsv>^0!6S~q*r=}*9P+0ynr@l&8Q*}R2)*a zu``XSvw9J(4!cL(V3)LG^GSsw#C#7*)ml{761R%Ff+cnLAUrhpPcw42b|KmX;646{b@cGb?6(TvEI#NIs zd?-4W0LApChye!b$DYPh{Ob7ZDrq?BGIW5ppmH_-({J9z>DP)1)2Ge>Q1G9!AW_9dv}q&2i{sOd<<%vI>BF24M&Y-;6Coq zGJB4L1cxQ_(|ta-_;7{Dz;E}R%I9mYQd}K!!BV7izz9^&u+`t-kN4v^E(!gLk|;c! z4&`A`VSM)cj+6@;o=$L7>UXPsy#e;ullK^GRA$@X`-^adKLx`zcs>2W(Cl6c@F;4OEA2?uyn z5h4a%)nvBkUNuLA8QqpHO}gO5)UXDfNymqYs_vraoOLS@@XC#W!fRQHBn3mp92^e{ zHh#CV>95_xF`TV=r(Vyb1(lih23@d~fiwevJmO%)!NRKK91;5R9FR1SjT7?wP>HoW zeX^u!BwVbi-z<(VLYRy(XIq@#>@ORh7HaLZj+cXf!fUhYTdvyJf*!crJFY3Y5e(3I zWWjj_=|fBWS*GQq$L|u&C3ux7N%>#>$`H}-V;Rx#OSc8C44D50W;NV2#%7``z|&K` zX2tv6TW^@O2<*I1%b@e&x?e&Dne}H8j6gOhBk_s^muOUJLC-g<^U_8{HF3qbm~qF?&;@GBr`x?ET+Ds7cC7hgFObTJCwm|7@>32w z^F;~iP2s-Lj4m{%KE5&`%w>n!UieCm&@S2Xo-Mq;C>3LvDV3Ic*k5`;C(#)N)X)H5 zHvhv3SI@tr)9HPT;A9_3lHA9H8abGyJcO0L>J9NBRp2vO%oW<^^|Dts+$NC7oFCWh&bPh~HN%kYNm>d0 zLfGtshWpk#W5Oc4$ap_oqU3iAQw*t)^QX!3XX}0~9=q#EPBgJx^J=l-@l5J6 z4bqX*5SlW)TBcC#Q(y@!Bs<8(iRtrV$YO*Q4aNWtO)6 z^~f&8qM+ecr}omRdVV~r4PwKjkfw_!{d{cOFjGg0{j#>h$J2s=H(%nQ<<>W<{v9&xdoWpEQ~J<8v$ju%|#J_?*L?|Hb1?;^uM z*@UN|(0JdWW;-Gb{ms<+cuTE!n^Wr}nDyy$<$@pg>qmdsD{ma+xHKIq?*a!F!qjg= zZNQpaX_82n-E;$bz`r2~CkcvX0_cqJK%go-r5-A*T%^H{(CsZpI3z$RiN{f3!4EtA z=lP*!9qWDwmw{c^Zc@ZQAxI(YOzElou?tsmxPE7-)Jf4hQeUfh0+fRueqLv;+)}+! zV`p##LFli-aaY{1mqcw%bT;$h8C>sK09QKi%3l5tQodv>TU$+M@nc$WCmUjXT zv#RjM0zTsQuzTaD&74lH-h(Y%i^!lH92rTpue_VBN>%K0z9|$CF55RK z#*JLT#LaE&ZRZ7ecfAG3e;y&u7ZM(rglkV_a$TQhtnniQy7`l z^mCkj`MZt!_Inwk#>HFj683eHAF;zRa|PUJ?&5x&1wW7f;+Ai?W$Jx7XxYq-w z8`byzPUQmI&FbaPHF2k{UN_6Th4wy6O6dz69aRAu=SnHEN#6ss;(ZRv2B>56_yM%N zSN)6=Es%RISeEL8P>BX|QFqwX?(z&AgDdzBTCIo)nnvv+)+N;rX$~IgWkVFMxf^-max8yC?x=-FLd3fg$e?mh!=Ifw^5XpDheP;7rR&Go%aOE!aMOg8bb7U$Z7o}fn?NW9; zC-a5ZMrZ_=knp@?i%|XOPujJsBX_4^^4`tti(iv-Z?ZDow89>fIl%!EU|5`c-Y!;B z`K~e6@p8NOQ6GCjjlH`*pf|#GzG|iERNXm|_NhJO@0yS4mzxA2VVhGa4g(YgN8>iN>z59CO*E=_xQLlFs?Um!& zH{Ld4iB#?4bepPEtF&*IJ^(eW=T9}tOp{K;HZgL7u+&Ee^RhB5Nfg#+@54n}R0gIX zTh6YdJ2VG0&F#)^CfZ1N$h)^gCFl%W8jCt|E${#8>?;7hQ9tf+@L$`)Weqd$aP1`n zBY)rGD9G)yo!#0a^YerC|AR380_GvK&^mqGkihL6fnF;3cBHYT&8rz=&M6akWFTuR zL3tF_vfcxZmc?cqdoryaAAO<4S{z5FUhSb8uhTu8pm@Je>}`;tpLWkK%Sy>KKr)Yl z@@n``H{>o4{-DWCDx)pr{DJqxJVv*HpqNEvG5%#{6MPD>2N(IExKNn4!I})l2h`0llfl9z;P;){D~Q#i!%O@P_no8lVDvTMpsi^HO1Rr! zySFaq>G)&$6}yH+zcaOr9tGcbj>s>43(Ux1SiwhEim8Iv=Wnla&F0#kC`wAIKItmvN_X zpc%kK=5KI|o>xb7e4rtC>I+|U8a{0&)pS%(#QgND!9dEk|9k0>bTOV}v@Bj^=7gMS6uDXGSJJOVX z5f@9?|0#~s-lP`v$LQ=hFQM`GvF;bu6B4z28{}xTNj*o{_%YM$4lZ0# z>ZOl?he7|Jb(PgB4D=PYz0W$tVBC2o&%b}PgD_2dlZ2CBsYwtSMuMog*?T6v%~J$a z<9$jJD?Colip-cjq^B@=;eV~T^Lzcn71o!!_JYmQhB)GX{RN`%Uao=Z@_0+7gHdyM z-%2h5f9DgIUg{K;pl;5p9ma@qK`6d5vaT^dpZkFY zc9a^d_>Q~_x9!OfgRjmGLUsV+Xf!8pANcac;Lq+A!7FDO#G5$@9gNFjW#7(!2fUu2e=~{J22%&r^dnEPbeQh4%M&p* zTtX-O2e*=VCE{ZJk<=+-4N{u61!aq`{@)B>jc-Z!nrG}ujpJa{t3W#zIB#oZMPLiw z&P)4Sbh!J-EQA~M*VfG+(os1}yr)SeLe&1+Qpd4P+u5~}|+@<2(NeCLK)rM;5puD=c@RzC;+Bi)$Q zcTO2YP${oJ^=)7hS7Tch>IQ`7RNl)xcFhum7Kbo%L4}N&_IJ4~ky8sjE&axE4|k_g zj=t`QmMU)Ndm5x9cA2Z{h+*9)(gg78J~a%-EtwE3pV_a^pI)xF=vi?FNXE^f91zLo zm@FasZ8AOd ze}f5v+DT?9S#Y?ifGqW)W1Z%V}ncr_J|o=F`ULaA z_fAH&pf3#s1(h7cfn7*>U~o)em(C4%jkv2+uZs{(XAP-G<2_!G;!_g#Mn<*s-_+J8nCR(1oeIwaysq=Iib< zgRVkrSF+ni*L$mE>2f-qZ>I*E@amOPmC>9hZ17lvYT04G4_p1MX~s>HYSD5ixInU8 zKA>uH6kI+t3T@-2_}(uoNXyCfGC<2Um8Ffbq}X8X`a9F>_>NIVJ1f)5u~rE8Q!ba4 zW1fiWozl>lIdj@W7ogDTd9m9v8Mq1;IoYBV)q2@Bo&3bV!~a~Ab-Yx1m7FSss%a0V zkR?p_Y8?_XoyCRlp&=gS1a2GAqrxd&%!QXE`;WbnvAzg_Gq&yAMcug5=Z)~&t?v>W zo&S^z%WIb6g0xKQbin`2zx?%Qc~2hyQ?D3$2*Zr;d_KPQd24NhotkA(*=j0S^MNEO z%+x#Qg12*$wPE!b+3SpFDA9+;;T+9T$Z;jq^6xB4>t;!qTnu`(9^%gPAlUpTth-kc zHaS91jSH+`<@P1ho68o8NpYc|!P_(KU580MHOB7pxpy?<-_Yf{N+xyOpE}|gYI7u2 zvN08i^;bkVPT*Bb0YO@Xg=inR$RN=D(@Yln58FbBk<^qKC{ex6p7m|VA|Z3NrTmaICk zQ|nr+2B{ZM293kVQlosr1{Q-L8OYkR^D2Li!B_exWG53u>2+iv7uI*(DjSjZd~{ok zd^0DvSec7P4ydukB1(~MV)~XxE_KdBA74bip$n#L`!nbiT_6ZCfzAY)^umEb%7t5z zmO{;P|33Z|YiMs*FwF1lT=Z*2iHof-91LNzOp!RXVLZxTLn=Q&Hnqj7FU+9x0dNJl z*|FdgU+SbIEYv-Im(g;KRPoY0FDo>l;ZgC)@Pa(XB9lfOY3q6TKIGrUmA#9v(LF=s zFW-rQI$0rQ%YZ8(x&Q@3?7lvmS|)uo7M^_^{O2w@@8mpoh?iY+OiZMtrk-IkK-i6_ zMUvM7Dn)P3#mGktELm=zaQ`}@;05k))mP;m z?e^e3HqCpqU2(Fq*q->0H}?)dfgQNHT1Eh$yJSXC=#l}x;>wI_9b~KtCB+l) z?|yXxe0*x;sm*lxxYlpEsVqe=BDoymEI*{^@VSkEE(rKr*u?{;3I=EE>9A;Z%BC7` z4RsQEh<5sVW{;@Sh_bIAm4S1G5iq+PCS%Z-yWG2-amSYk!+=etWdg=dwZc4T)T@iP z3b&=He7YyPHTP%TW5<8~<#I&mVcU7V`tA(-Lm-ir()gstBrz%>Aq?c!dC##V$8n*v z_Hn!Zx?o=V&K5UW_j!Vo(h#|$YNQ%h4S$`Wio}4Dffo2fz2?kNb&_j?8pr+51zp`? zrjpzJH04U*U1hin)1*-WY+mQi_fZOHiCcS`UvudB^wL0f=g_}DKQ+TdcR;NtNM8?{ z;J5vi*P_Yj&25_zxpRps`)=R4v9!G2KAOo!`S`bGVPA^wTINEvp2*R8K|DT}Yj_k0!^PDy4m}i@k6U`r@8LW$NgprL&S?X+rCY(Ehu} z^U&NqkQFwbIA$y!)mn(lD4ig9n$r^waDPXgArP37nv)#1nN24&gwB+Szh>{e97L(8 zX5{|HBVL1Y8%mIllO-@fnA!F)!fW8aU6JmD;G&}E`cV=arLBwZOXyX)4GvSw``OBe z6d$(Z{ucmu%FbVR?90ntv&WUtvX|@4%0KiV`umv>D@qobk9&HK*xU=du+tYm)Q!jM zY>Tr#CQHNZ-ah6Qj;WJ>)+-;`2N|%En)C3dVF5KWJ42x?IAermwSVYC^pm|ocz|28 zF9(m+`8293S@);~tgySnxOQyRaImW$Zh6FM9DFx!5mcGabbNuI(zWcG*4o&9jAZfH z{==N?bU7`OGP}rzMen`VZx6Sk=(+eGs*?LWk>F80^+e$ws`O-C&jPKn@U*7U3HhFD3#M-Du?hCp64=@P zuz38)_mH3Hoi_`UKi&thb#~yfPgf_V156-24qSP3isBh~x|(Q_zvtn3zPICE#d4kc zs%2SdHQOm8fGWfk?9)O94MZq4TaeB|0{=qOM1z(+6KLN{cLJU^27|o!)hxS(OTRV_ zJ%7s^c~G29D$E=w$I!YiMM8uHwyVbY9p8>WCfQ6LZgM966{=UXgpO!yrF>Miw?~=( zO{z;CT?@j9 zvIX^wZff^skGIa^?>f-?6&&w=7ylyT)Ir3=Ru7!Z97bG3M|+Ci677UjHZXJ+egMc_yKtFd`huiLfaiYgys}6+PT@Vraywz`gkd=E=@6 zgG@pZ@Wa48d1K>rGU_+Z%=WwEM~H^d9CuIC!p$vRFx86P2t8YBgAALYBjIGtw9E?9 zx=G8{crFmHx-9S4``^X8Ktslqm#)xx7k*L z@bU%a@m^khnihM(CzpUHOd4iLOVL%^#WmxpGXDoBH6MP*vul?LH-GBL$?9G+HLALi z%>6D5MzP`$#%4DjNAsIi*rrPYBmq^N6itg7^MT8!;iqy;=1RW3pj^!WqS)WhLE zg4n1E(q60X;R_eZx7iy{ptry-OB{*lm5d-IdkHhct z@8RP(*_Z(hP1}K=>!Q6Zii+XT*YORQ#ko_qE4y~_XRa4pIE00p$%|}Hp6~hB+Q3M_ zVpI?h&suc+H;d*=S>G~%VXgeH<)}A!K*4-(uCjWsk;4H;*DThJeB+W;`N8!OJ#n;m zJAS9f=rV{eH-yD`6^m^n0xpa+`&Nl!eBqIazWd=e2s==dS8zFD5;}HLUJ|Z`ftW*r z-dkXI@-wL9Ap2mzhLG=N{(FFuP7|GJH0?DEoF;h%w-D?aPYnqV+i~sC6T4HGAgS2MPu%p2g zYb%WGKY|TU-CD4*Y}*!y>N{Kly6ShVW!u7pUBk~$jpa@Bq@iH;ZiP`|qD3|8wy)0O z);;{KEzAYHjEK@Y2E4s&-{r(+f}J|`AKLL!!QqNz!@pGLt5(eLC&OzNF0Sj9Opo+ws06Qs(vHz|zXjU0X$M zfGY2@ys&M!b1%si_pf5nBh7X2ZR#SgywKh7Y2Fc`4^rMxU(#L;l;D!G1ns#AwCBw;|pLIIZlG;&70(nN9}xv zSKT|D%Q04BDJDi%Ad_dJU$M=(Xf)DeR`~v1hZ;ZXfTHJ z^VDDOn%vzsZ+OW%cE!5SiOzBKsP~?CN%wr>VJW3v4mq zPqgD|XLc@6EbO$Jtm^&L&rjzS2Fa*<5hV4^6tW2ivOo)* zjlH1Al|e^`x+eduot3e>4?c}d=2Qsjg+mo-6l!GL!e?URzI-M~!@v7TFd~<#W&^JH zE~l02J1t!zn1jQAyy?5FQs*J0+&C!X|6Elc0(;X>6{_c%4|WY|;;7Bk-}F=~22;~F zEXVw&vu_^mS`ba#D|0HW|At(QJN3|Df!*E1IEa;Ry1*tP$Mm*Z{ZZNixmEs?Kg;rp zeDGoL={OZM)ALrAsBs^{;yP#r)Pv%!mJ`-!hwo-~e6Shb(G)`a1gOx{JJ|8Rgi1}n zLt2)YuBl3lCo_>KNyE8%^!t&=nXz~kLpX)Jh|8MoO5tAO+OYBJ?V?vA>T_H~DRrb_ zo;*`%T_EpUwajl)*?{t&Vx;f_U;16)e$XXPaq``qRDh0LX!ip#V-!YHzKc3qpns(> zirAhT2{K>%T&l#28kYmt!JX9;gmgu>`q<#!xU?l5>XY@Kkobu=#>Xc)Oj^{-_T&_D zd@TJ5*0qS4#;??{!rg3N+$3D?ZME<#p12^w{HVH2rNj-Qj`p97mNDL(^`(e#d(C3b)*XNgT3L?Mxk_pnA7ocA8Nn{BdcK0&Y-pL&7fQMZ zit2}9srrD1+gfwlC&D+(!?3wg#njwPNiF{4b9tq{^?D7J^7WKg3Wvn=nz8zu_zA3f z;xH&MM<1Ww)Q@HaRa=VICg7x|ye@ucKqfP3ZC?tMEso3nm{{A5;>^iIfs1b}vnzaQ zhVVK-?Fsq(?E;)UPRmDg6!La{ffiIN%r)lMcm_w{2%Nq+Tao|Su`MSIaKSZEpfHpe)InlUicR#{i7WfP_?IEt-|K8kf?RDI;^c>p?fk z@QJ-lM0)D816Zbsz&^?ZtgLJC6;~`YMnle_kG)ciU^1Myeq9W^ABJnwdgZ$?dTnuN zbNrYDUEWe((8GE}1l;%Ns7M#b?2`b~@IB`(VR2BdqhDAp<7``ekNl`eGuJhyDm2Z~ z8HZdrggklTgNC#pDnbrkLKYM>wl@0CTRwoAEt8*3Q6dnVl8_E*_(ifA2egPLpU1UnogUs#@!uwD5=f$PU(RF?N8XhxXsh0)6F0pq5+JCrv zhfd7W!N6VNX-zz`0OUHz*D+uf*>v~L))IeNwoap~RXGB`~*av8l z%1kaWAv%r6ogEiq9ksKRNpiVV-FduL2RC@L%~scSZrNC7#d*w?O>@^)@+&k z^q;Bh%tibJU>w{OEmle+G(YfqK?9jQV45#X*S6TP&Zv0n7xebyCZI1>wW`>L>lL?1tgn-;v1NrFHX;P$x8IX#2btKdMi*^X zB8S6#Y3Eqq+E-2}4u;dY8-}9w9QbeW%rKVZRuGvEhKdC9IS|9`b9?cKr4B-k-UH!G zQ!7hrav^WUzeoFq_NIpxgvx45r7{<0bwgTN)8SK^#Kz<+)Oa~;u_lLziW>X)knu`= ztm_rjgXSK<-@Xh!t|}W|+@Xux#s1e`?U&DW<~Ag8)3$-W z<2<84^zA+Fq?+N{wQtVnb;zFHNhb~xT2Qx48`wDb1QaY8dqI&T1YBcH=er+r8vy~U zNmctA)F|3%ldx7@V%UVJk>|*kVMsI=!jqObWi* zhRO(9^C{k(-(JTIHdfzMi9qUO2v3b|h=P-+_`9>s>CB;Hgr~w7fiyTdBEvpcYRRdv zzVekprL;V^&D&pPjopJk(< z#ZAzT(Q94O+Qn=-cHK3kjR3{su{ojNVfN|WZoi_Qwz_pXeqr`X-f*ocIE2L)5EZXSx8RYYjC{CIb2^COgygt0_NdCaX?Wj0qL^XGc2?lP4d8ip9ei zAV)qAzy9^)#z-M-kJfd!T2U^l^(`}5R5v!xsMG#}u1!bgS|Ni-<(r82HO!!->O_Ol z<&>Z68#yDr#Mm(*cQhttcg&^g%=gKcg^gv#LXQI|Z=0@Q&)W1%&(c}c(i zfV4Eqw07bA2~Bjg*{A4Lj;l*E)DrA)g;pNAZfhOCp8}4a?IXy1NL=!h7~|RDo6#a+ zneSx{>rlqzV5g{^UB^FJY7y{uGCd>Ag^Unmv@~&VKdISK=qi`U0Bz_}_-8TkKA1dy z07cx^syIfNzf9Yq+dKsI0?s5HR@c|ONWAqoP5(8|w&fToi!i>aV1IW@#7SZWfKB1@|;8c-` zO5a%Uc@imCl8lTOI6fJ1m17H6+G2Z%X(f1819{%{#79u5I8$<`F&r!#>7NE?9!O7L zo{{pAor%4(H984s-?%u}B-ew2+ewOwK%w@b8jbE#$=l?q0y8Iz?5c7p|2^|ptWS}T zR(cgqXEPv2KTFF*;yg=(q^5PItPNmBetf`VW$3@n4E1;}&01K|!{&It;e%&>tyWs> zg_!zpq3L!)n2|cLtI%#QO)GessD)}J&F0kvM&10>c%>ei?n9CBH03PfSO)W6jx@b^ zUmhaWXG+)OOeT>{#k!HFC;SD|tl{l-#yYT~x^ zUMJ3g*vQOf?}YL{BPjrK=;KaB`dWQ!+}7_p6PBrzoSY3^p`o(iXW>?4_qPoeg;I{)lSmMzEE*Z?0z&*u}3Dg%GrSXg@tS}!k! zY7D@1bHuOk#$f`3DZe56eLA&k&Nmo_ob+l6dTHXW_iJBIWWRc{+?4OQ9O+o{qqx5H zJYVL|_U_eoFfx*RQT!?gex7VKk%@~uM%pQ8+B(iJa#Cr*KgAoqS>VX-cabIoMkPen zSN11o+m0Hj(NF89OV*Qr7gwJdPD>DNQ|sL}ZhlNvgj^GR>>mW12YsTCM`aBF_eDZtN7 z4Y^4|JSrrl;r6Q2#3?NS2pE`%Yuh^{0|Apgc8aM_cWfzcDR{wDEh&_xNB=V2i_ypw zOs)d9A1>75x&C@GPmIxd{Zs1%LBy{nCnXlhklxDb=LFms0KRdo`XCcCFzo02T;&@i zG(X>-R9C$@VutLvE60m%gmgfpd9vz&f+Jp9=b$G*Z-?VpmgoBx6RYGxCtjqmr53e# z7ZGK?T59hxjDhW|pOX*HM}|uZcVw^n5t>X&gmY{KUe|XY^7O0oU0|z5K1!h5*%W3z z&R;D>4|&j2rgUJs$Nut(><^_dK8vP(hKusDXe=ch`75;5Sgu`vW9O}>s@V0=tN2r*hfQ|@1WCxC6EaZ^W}Vpi3yJVIKo54G2;1d zsb?mPyu}gmuQxk1A}#MNanICvg!Nk!31axvrDPV!Uhtm3&S$CcXP5|F;2ybMoNQS? zNmHn+yk=1@D&{gRPq?djOsD(YfA!yi3%2J&vI+agu1@?3JHJqo+i$uq2Rhiih4;4h z|9Ca68B-?%V#?{aPye<%GglMhaNP8Pw%)sjEWcIMUbZCZX(+cnT-BvS<6QyU#NoXj zc}6za-e9|_meVHg_L_;~yBw@bWah;E0-iken@0#u#x(db<<~Hm`*vO9{qP)t% zQ|otL|GcR=+%{alBWpLeXz=-%(uSC%e~~eGLC;$C3w5?T3#V|aQ|!{fnTrkJG*t-f z=30DDK>Lw-Z-|D&O6omR+VZtvsfr8IG=|0fw~xE>zDJ->Z9c@7Jzvx5wpY>@%yKHs zoNM=+L|ST?xI)0P$8r^i3tQG)_{3smFu6LL%yms zu7rnHO<`#4TH;CQQy}RQL-9&Uf-~iDRH~f)Wpdxg6 zj#||CI6Q;8biNSss0{AX2a!YjzxNLB?X2rC4j1h_*s0yV{K6zDe0?pR9ZLxW$k2t& zy~wAYvzM!*4a__{kM^@Zsjk{BAI|I-lZ0HAFpMN0z=HABSxzSXO0 zgYh1%+0U5Ykn(^G=XsKvHpP-Mm6BauHej=<$!FrOh4EP@G z{>*YLAaP_N^9m=>YvsFD`3)czJF>A&-cOd-3_E7gA?!fRhAM6@S&r*O4f$sDt&x5n zH8UkA{nLxA?bez!4d6jlIr@cH!;F^Wtx+D+Em7j5)1iKRm8ul+&D>L$3D-!)Z8%+*AksObbv1(bjvwH5kczdLSPYXQ6Fm&me!7C*g>ibj$B_0M*kXhDO zB8)91cqDvsikWM~7ME-GU=BiZaHxmo1QhNO4Sl)G7RK#95cL0KalvJSBcn(7X5i=v+kyYsix;a;b^7d)5n|Ij_VirHOC!W(ZZyzk~SzGsBKg-69(2L=>nr|vnSU;)Q z*O;dVsTWWXIL(u=`hCT@MmqlIGBa;0uXwAXMOVW<^0zE;1DR$r+5IswjhdtlTky)h zUHdnouj&%evm;hK`lCKi#fv*>2|S2{Ny3^3Y`!;@*vrU7TEFqhsN(jY4pWOxri9PI zkYB^<*Iz89a*JI_6GQxp7L7WlVl0sICs9lmnn zm9uZX=c>Uw+pYE{hUV3)%ji9aCMwMkyrapQu=a6NE}2ztp~h+3*;TlA(I@sk#4TCO zI-NDr0UUlg_$%o}4`~gdkZ5PWwpGa)kOsC~*o(tTa?zw9!<%ezf#mFHw55c>XsgId|%3(WqzcwDpi}OGLgEOpb3x{8x!Ud*Z-1~BC@2Qu~KE)_E>k^hk z^2%gQOga({{Si?&zsWuW$SVn^LxCD+R&Q?RnGs8v!B=uL0{%v@#|#*R;b5MpZ?tYJ&U<#fu&V?QHeYQNsKecvXw9j z^yHi=u|3y2amr*QXz+Vw^&;pCsvK4msAdkUgbi)`L~i1p>8Q`ww^-Bg0{UKa&4Nz^ z_ILNSZh)Y7?eLl#h{_ADz0zrGDdmQNPTtInI^@{b%F^_*3QJU%-qCpZ*;{lx_0Tt% z*XD^aDKQb599>HR%!@L0F29}{)3!Qp%Cm5SKNXjY<9MORwpWvbMrxPv1CXE4RZzlJL!;)VmSII!%MmPmwJ(v?MI!3J1TJ zw`lVAKH$`3(}G|`V{EWeZy;|bbg(o%Y`*dwnKM;zS28o*nus+!lJzxGrG8+9Wm!V0vN<*Xxqooc!N*=LW4$n z1>{xT?}PS-?%clNl7Efs9{Zf;RoJj?BCfvy&{kN`6!QJ=fW%IidN&L3Q$&gY{9blR z!qjVlBHfuiJ$4e1*S+8i;-FRXT=2E@J>etg4Z!|&>-$V*DzD&)DcXx7+6?BUtC0pq zSX%J30xtxMZnw)Lc4J)xtE=}#wq_8}m&LgN=T=qK*p>%w+pY21i+_OU(t*5y)GQ*e z>(nMud#0@cK&k8EuIBY%b|H80{i{RgJ3W7wUQwCodH0Qz7o2p+!+k#iG3HQ0@`?f03QPwFh=*Ql`w2K<$NR1t zbX7p`qZ3VbKoiVK2MVn0ARy1n3IDSmtO+Dz^Afj=K4S7kvl}e0G?v#HD2GC{({sdD z9TW^iLt@i~9W8yrUY_|`<2}`7#+RuJx##~P0{crV8+LLs!OcNKnN~aS3b(7H1nh5_ zRc!;wE0Hkts+!)Ow_iPS!O4d{=iPs*3=~z#(6i5 zYo6KA=ICHDly;6K#`Xc`MR!~#_u8W9!rFd;HJIgT&c4{=I3pZX_F3~1-yd@2oV!3{ z*N|*;QXZ2SS%$&VbfH{F23A=;ujaN#$BRg08-{)ho-u7wT;?lxeCv%M-DnE@=utLY^bvwGitZRZ7J4xN%FF9)8B=Jy{&x{ja?CPmSkkm9pn zdgttL_Ke3$^0jea+&z5Fa8T?R3W!5Qo<0z(qoA>uxs2N}_fIQrqOZgw$cRW83&F?M z(_+tx=4;Q6f3M^9gD#)_b#0}YoI1~IG^)dUCEPM)@N9+5(}Lgd<8X>vR*}PU`&*{??b_hK+Tp3xpMsmmilIsA4X5L`}_JT02uuzTJ*5H2HdM z07?sW_SB^V^V>R{{+h;0;8Gs@wHi4ds@j2zTJj>=j4yubO#$(kseaS#5W}{n`l&PCj%zOSk&Z)o#g|47BXYl#1k0 z4z51*%c#_szqb~>_rveHNva0+r_eMmq@$cw28H@#8{uyJMaOC5Js=L|}hTUb-QaW6O$*uiJo|=I%gVECa|(VTBDXzd-f8^V(TJUXLMp zaa~u+p=iTw08$xN_Q+-7wOsc(PX*JI73l1Vi)y!!vl43pdHGKJ!UTAx@gK&%-{IAd zLVC?*PXLvY`g2j?1!)9VUGqF13w{62>v zL98+;SXeqJbcRd?v-mAQD-~lC5pPwN=*_9Up4$f)BCtPN(ZQe&LfutQX z+tJ2S9g6*Y(;SQ-u3&l5SGqs>;3V%7XkOIAi$M5&^!WnczirsItixVc*SyF>U&%+z z~C(m^gJ-sQq}Fg2WBF$ zrCrp9feYA;Y_$0X(d~EL*6nOhl{EG5F2sIbn$fR+Q`#}_Pi8b5vkk};cQ}WwEReEO4koMi6Dsv{@pUQFbAraW`jtXdBR#KXShOwe!Pus(q zHLY9(g0_#xODW5eT4_0Jz5ljro3FX(BW(A=a zQ{Fid*pgQ?2!1&3L|DIDAKk;6KYKVgP1L^pS~3cgk~Jpy&rO&7>%88#UIp`~DNrM$ z$s`bdAEAK2MxyRzM^*+m-lFilWQ!ftHNHs6Wd8t5ipjds4zE831Bv0a=CCA?)~`P2Jb$JyaV4TqwX@jw4tw$butBAH%&a%f3D6*h)$v zyStvLJ7l+4QVkZUwHtx3lu)Y=39+)O;011{lcx!P25#Ve3XNkQ_4n65aVoY!ViY=0 z1h!=ULhTC*EnG2_>r&tbf$-<##S@m4yKhq1KNu8ufo9`p!-ewvUxH2B=l^EC z?Fl1J9rTI7mH-ai1zHV@ZnPzfZoSi zbAoHFUmF;{%9<(`^QTYAbv3P|6t%CXIv&2O6^PdW;wAPX5dHv|1e~;$w#$b3^2OVR zoyB_HJ)NZVbC9tFlc8ah8uh1LGW)+%=Os}b333t;f&DHqq=-!H=Js}t0zyOW%WrmZ z&)y*&>(j)vNw=cL2=_^*LjvIskUocEc)YX8>d{SENL&;L^73oNjWkmGy4!v5;~#q_ zdy+|TI;awXEn$Ic8V4Veoww7TdfC4&+0t1s&DIz?L+ zoyiDPmQ^Cz|Q zBLe#!21`XH0Wqwmq`OV}Q07DJ3;cBP-cLGTcxJqJ!FB0GMj$K&A)I$mIlKO%+AEz_ zYjq$4Bro43EHAuS#bhX?v3cM2y!pw`y&vPfQtlTK*zb@R=6=~sM4M)m2yDsd zJJ{%Yh11r&ZL0FT^4pj=xU$`3?C#j7A2xa9l`1eyAP{~l&;)8;9GgA5_n$LhhH~YA&l1a@R zI{cTphwip>?|T#Ga7`2B{~{2UOkTKu;k@VEe|G=;V~?o%z-qGAG&Js{8&~=kKvasG zoF`-QgW$H`ZK-KoxGwn#{tUjJ)RnPrupNmjo!vij>`_%uChM&=1BUPY zUJLIZOr7qt@3vin-%Ij)5rHiYWOtVaB5Z3PmX4C3eHrG+(Jd{vU-yzVa~k7;pioIl zT>d@MVrV_WvC{33wi`hsBoeQD7I{y;A5j4!11TY(N&un;he+|g%Ss<@n0w%{= z8@~2?rQyJe(?ywn?-AF`{SYspMn(#F0+X)Pii$<| zEB}4Bd%{Z-8P+_slH}0+b^aE1&-T9e_zFlLK1cW1kL7Q-Te)g$9jFYw28=V6@V0#T zxtV^y3%}n0zuXFPVm@bLe*FcfG^r((%KI%(nbgJ_@w}okt?lnls}a zx48+mF9zBdtynY-N{NRLxsbeI-l`veq0BHNd&_vwy5KWhSFflkVOBB(Ud|A_BglRe zfd;>5!)zzvt2q3DxG`wh0+oz?qnB5H*mBD?@4%sX{8QgS-%q<1$mz`5n)_*FF`Huq zEG+cf?I|w66c+29DSNxT#ATN273T%`wRBAf^B|6c62UMpIR4a%(qm8G-fgTuSSzpC z9DE=lFSjoqXHLTc4AEhKU_~@iFCNAB1V*kh0G7l?U`jlt{IVNb$}YU-GZl+HIsce_ z-f}zJTV-z#{vn;4rh5;LBkNyJl6Z!2Vb<@bagZK z`%<=@vjoOY0gy%s6dC2O+p{AzM+2J*6ERCQyS zWJ69qv|$QmTXMkTudE(gZ=(;L)}{guhkG9p7!&ygjy3(4eP-{u^-EyB60q8H(k3oK zVGT$_21l%_LhEd>cFE}%9;+9Z9Bwz(N3abJlGO?lTB!&{*AYxNnK5YajJA7jz9;tO zC(m`i{M>9$jv9u-(g`F+RxZHA=9vwFyn@FaRrN6Vybc7Pms}+3)c@=SD~oGfYiYN? z*yX$#8-6hZq{ga19VaR0;aa@w1>ls(-hkcX3=GqHk%R!SIp zk%`iA8|q3!>u$7t{;vD(U{qGO^Zb$@l0Sb3+E_p^sFeqO^3o#Ei+Pky$L|zgk&q7b~9_JQS90 zdz;IoJE~xxLmtiF^PoMro4lawrExPo5=ECP)lFET#D$;JRX*{kEU09PMLYpT#Dp{5rF-keEqoamfKA8rO-cMvVY>Rp_G7oGC<>U zou+zS^>*%Ge(seo44nA&=D`g%@S+o!;CCbZ-Sxm1nhZViy6>C;TONBv)mL_ty@jD? zMw0Rp_=~fsHfMI7b?NK|i|K-s9hwMiskemJec6Z>3=w9qI-UFDAM+s)meP2`+@tpW zX5kLbm6xPLtqtIs4Z501B({7B3?mKYkZM!ic6$Fqz~?pIYO)4lWqF>NE)a!5DBpb1b?JI1 zPHn+Qw8;WZ1hy>eC-q4U2Xj!V&nj?8?@ny@Z6>tXLQ=~W^0IB0noYaRs>TYEzZ+CAri07;g=3DCM&C?E`sG(2m+ zGB*AFwXQn#pzrCr-6Xk=OC8V#%ZcQzJ>2zX;H-&|K)X5;^zaiorKtGVrD3+~h?vE)@`4=Hz)T z4mW8jBiuhQ=Y?_2*LU=I(ei>yMiGH6Jv7a$W)WC#LzZ{o;ltgQW<23LJ`s{=meNE) z0c*PCoL{i|221B9W%mjcUWE(vdDTAq=2hm1RZetTn_bXiREGHffW(Akw#|gqdsp>C z<4+2%1texA!PH1Tv1J-a?iE_$4jkeR+NQ|);I?50{QH!ew^XaM8wP8ntIcQPm@3;* zTA)yu*sKJ44&|`F4RW2>ngR|#s#6Lt{r^U=9?8h=_KV~+_NkdtdWri0@W9vnx{Sa_E+7W z=`dspDJf{42y7XbQfdPv;{8-SR+DZZoq1-%%p$KoDFtL@I4aT0bhF^v(CBs7U|3Z_%G_=m`zJ7T&ao0ZXkBvk z!9nG|yXGb@T{q-iW~qy;Hd_N?Lw}c%u@XlyynkUl1zj`EcVT(zu0y2@oc8CEVhq}a0HXd-KxuP85v$}-Tz=Z zgRiQg{55fB!dDRBvihJ+5LH8!})bavmQpysRlMqDaF z+6ORZ8!AUB>`0vHG78BHKG`?iIsc?{@2+b>O*3gz!ZH!q-ykrqiBh13QXdf*_`e)o zD=k-TxBYvnvtS(i=yfoOx^8>>CKZ?8 ze0pk^krK8jQ0s!1(G!mk=~NtoC)PIKiM4||;%(&YTkLphmx-b4+$M>HCjb7p&Uc^ z`lDpW8sN;0C8cgwo1GWkFz+NFuQ}k$LyersiwJBvP=(_}WFp=#RZ+?xrV6+xp;c6{ zj(hH|>wWzV>^H^XTJ{ZoDk4vY*4c1?3J1re?Mm4y)H&C{7uMQpMz`7iq{5RZ z$1iy+D=i!XF79$J`1I%AiOA(h;8f;$#US^p(Q_68O`tTb;P@hdgLx5$%4WJTBYh=X zm%G$U%2>^R?maNs+Snfiyp!c?5X3V~ZAX0b@R}PP*j4=GGqSDI0BWG zj>~k*i?CDnnnOcu!_krT?>@8N0j$(K&S|ppbgeH4c%khhtH>O+P2CU}^ncA(Cr-Wl z{qK4-&_dlLmFgt|TQ1b)kp&OI=aNOP`2{_2drgawT2{hoZPu;!=3{s&GB4Y+d^y)O z+wEvI3ijOpfS$KseXeWVGd9;W)UdN+j&T|tS0Q=f^VrxSxv||n?2v5>cN(-|{x!-E z1vApuvTxPnnH#(zRsX(gTW*-cm7QccQEDH3J6OW3Grp;8YFitwe39;mknyeK(RXD# zil2XQh1zS=f)NQv9kcmXMO(pYUJFcUT5MXJg#)6mibgie8muR;@qqXU$mKOcN21q~*U7haZF-_L9J9!MXFW*GK{!Q@>=!wfb z*5L$_-L3@T?WTh>jI5V0Kwg%m^gvWg*iF{)Kg@{F!Tk#+)r{A!iNO2@H`O&RwCzqI zg^9C5_=6-|mx;n6*8ARs*3L)oW84gA7;2tfgP*Exs7byp=OVJG@XHZsp!qY|-Lpk# zo2_cRD^g~|^LwUl(8Q*|6WT)a! z3>?|p6D_~wx{;!=&>M~{dcK~tMI%>$F*qVkUI&gme9|kk8!R0o4jt;QOa!)~79IK? zWJ6=M*WyC?=9HMK&!|+_uis^n1JO4tXu=GHw+_h=vbRM zGTR8O8=lU}m6`N90EIMWbvsA*kyp?Z4u#7TfvsQ>0?LkI2K||X!#fw=XI8B+ug0Mh zS#OgG3&@7B@65N%JBCTbT>7$cK03!127}H$ow+))*JsV9>k@7Z>Ka zNMNkoZEwrA=kHFFST?R-kGw2PX+}h2$!_QHVL)DU8!dsAMQoSC<%z&n8bBS8D(oX6 z+PC=O^vbi<1k*Rp{os|C>l==9k)MCy5k={5vW3WS?PhBbhqP^_nNc9GF6Z!(hk2Tp zhN%J$krxrzKOj#1XzIv@=6!zxh2)j(rKA322$UCdUUJSQ`B}HCvUJ9V9!H;7(B!V=5PA6lxmZfdkDDzQHUlMhre|8#*Ok&h_7iDQaCV*O<@?^=7Nb*$aGL9(fr$ zmq{WoA}|6GSS~}kPA-I;XXMm4j&il2rge3@lYaTWXP4EFp8N)q7gpG?$!zF51pJg>EO0>sKSOnL3v>Q zxuqR>j{|3u zw4#!1i^#;N%0Py#U#w{;x#s2KwZpgjZ+(1S>hgLx$6=s(v7YCiVu`Om`&{JZqwyy9f`@>}c`(e{ zpL}4V+ufNGrP)ATDMVr2`oF?Hke6jCBT#0{e)OrvBaS(L#t9F++-e0(&K*}#tOgO7 zU!|zGG`Z8<#2Wr{dApWh;B`Xw3w<%LTc~6*Q z=^_-4x88m86ov;Vp=A$&aaInmpr6MdKY(e_Fsse?ZoIc{*CVf+``AOTw~2tkdD5c% zE+R0$LrV#at_iPn@IVMXxc(3z*lNDBgGIL7t}OqMqmam4t{d6b*3u&|Y3iRbF53Fs zK{>R~T<>vp{dK*fvayfTGJaOms}#RK-j`b} zllGvjofjl!+h)9|_~smIYAIDBVH!h*x3*k)!6){Nso;w>81t7Oc9~%qp5Ms5=+Fwb z_daD+$yS?zR^x~LgiTIVZ%pb&vEDg-X6&M|W1F_v=i*u4rzXQ|V&i7`@Dp;CzyL8= zz%6}z<`4SvKIOsIs$Be9R>2$Vj+dVKSy|T9w3eCuCtxY1h(=lL^N(IlO!@f>oLeQ` z%om@jPTN=?FdrzRg!^ON+6hZ(a6S@|;h{Ib`=)2dVFypT=71|^JK$RGySMB~A1CA# zf%Prh1nj*QAKqRO2=#&Kud|Q9(t$K>|Gun)mzQ0a)Y>snEX-8KH{@z%7- z49ur`I<+7x0JKm7v{m4P)rAcvjo`q*tQqr@hmSdH`tIAGHT^UAnI1F+s9Z!_*@&Dg zCB>CWa4FlCRW+VJ=AEj`Zm4(K+pD;yA(Lh6K?+kO zxK#3eQC9wz_x#e$7ShH!ldx0=!(;VZWPVrP*aAS8g(c*bf>JtXm+x}eq(`RBPtJyy zC*L%UI|+;Ih1rT+Ga+)O>oFb*&rWLqzBrYEPei#*4Xp5l(*{Jg--Rg)BN6rNBQYU7 zvPw*Re=fJI8`5)-tyK?D`x07Fu^s#Htp{6gxU!cEO<=!{tk_6AMON{o#3be-#a3zr zBAPC_SAaK9Q?8>X$b{Tv{o|)x_S$D%NM5LQp|8tvsfs)iShffhd|uhr!JOICnz?EE z$r{dK7cxDsu)mg9P>>et*+*bNSQx-yEttpZEQ8~FQBbepDEXwS? zH!BF7dTPyT@n)MD`U(v##mGWCmXMmBr)j|&^QU*;X&-axgZ1n6+wbQ$AAhTT;eNrM zUKC-NJIE~`So%yR^71;ctpzN3gE3zuUkdNubbYwn-io30lfm4UoqjOa#e;-nP5Mb& zaL6tXR^R^Ujz&fGzCdEB0Ou@uN+y-YqM_?rZo2Yoe6DOU9kSGh@qC%K%gR|?4$%Z- zD`*cP6-mocx~X$5JSzOd>(4Yj{{FY!k6-_E6DEXXB@G5Y#}EzDw}`;9pTfKkQZ|54 zse>>3`-H&239Z|1OS4gQ+Id40Q-5a8g89tT%CfL}J8B{#98uP+=`1m8+S$QTtFC9) zEvN-z^IIi{zXAs%4~_E5&+9Ha^~Tf#XP0b+RmsuD-P!AwGK~*aYPk|vpXm>eGXlOA zW{vsDq%XUlKKFtd<3Ig5wxG4sVL)77vq?%uCIZVj0^=?am~?@_cpriJKq?3(k# z$XBemyl2xre)?p7v)$g%=2dhtf~EjJ7&V(Dj{tTFcVXBD>2iDdo!cHa=&+ZC|qH&bkPTEPH-Q&NENobMC5SLN{vqvzEKA|5wM@ z$A1KkQqRa|`E$61QH>SX1~){@XkSF)UjX{6Y%l?04=znBgy9N^wyD!&Zzj5&&2~9^ z#%{swzJK+rDKR83VHzCMk!>I^@^TS8^|z9tfuF75?A}JbSv} zSXd{t;ri9q%qexgshGdwCWNIb@h8}veYU=)_W5`6%-SL6yKOC)@QV?9nR39A%yBdx z3^BXA%EVD?7jK4Tj$p=`d^|qSfMX0J7Qo6%Ts9P)YD=B0gzVWvyWNVlMl_%O3Sfd zm0u#@IMX$WmFdf`y?HgQtSq(Jvs?-D`ebREP>BSayYF@vShJ_!suhi6<-(Iai5;rR&g%yn-LV zfYr*d6pml~Uvnbs zuIqmGiFuVaFxW=i zn@hl1Md*2&qer!ORD<>6NoP#|>a$;Zzx-}m9DlB98pkea4n`G{XeJPWEfEVVX3t`p zXoKC=M__&slH7|?*2Rv>vaq#E2lG?a{1qt`ZQBK{#Ursf`)+q$?elLt=77N$x?LR{ z#9E&w>K7tQ=>!6-TSl-~Mb*g*j@a+9#OI#~Zkj5K$;$%}4C`%kwv2=|mNxVDtxwGI z6Bu`->A>q6=Y28vpt^mem6^|8a^2hyU!2%EA4sqr6OT~_g#v=RQaQG*vfXG-AOic_ zvIjSt<|KM&NylmeJH;>`5d<1e6qwbD`ad#$<2n0o^IEp~Q2v<2EG(e~=ES(1v-dU^ z4SeqHZvw+c+~M~0R!Z=b!OzgAr2WIU=>Xa4s4HltWs@4tJLQ5pDeU)8emgcG|S2iXtOE zx5-*4d*E*%V>$68DO`lVDll{Lp$*djVQJUg{>XjNt#>-k?QB;*YVoeXoW|jv9-6uJ zTE}>vfL!wc;9N*oY0*5^@AgMl5mo(fFsl3Qnp;u$QE(_-YVMR481=h@xvVP*{ zT_5+aFh4uzuDX}UzSrLK8}k8v3ocKt5EM&D_`AqK4b0<+)Yft3=dh2CLZh9Z_|-F{ z80L=Q4K|C$KL4o4GoR%Whe_8n8M?7vG3Tg#elZ6Q*`@Ze7sdpK3_T+`cg|oO3m|zU zGJ~!7Ll{OwI-nJrT3I<0!O*vzFFtc~@7M1?-Zk!NJPdI-3}r=)!$0TnlsUVy)Yy$x z7*oT{oHOs+?pd#X*7-$gq5gS8i}TZ|x6NPpevBTJza}Mn8xJdHP=Q^-a$A!*`Otuvb1)6!JHH6H~FNSBF%BFCCOW%t>8Z2r1uR&$)3Jg^}R(ibuTPYQcXev5!ecQYOh2S z4-8*L)!g~S46UeWuqTN8k~oavT6y`rcjEg`FF5g_gSlzy;9JS|=8wNWT{<{R92T7R5z-nthQMpc;r=c$H{$KX=gLK19kGF)D$_)ewtXEcj-}}K^ceLF0 z?+=obf0`zHK_NCx1Ab-$x#iwmq)BWM`C)_uLON2V>K0P27J&$CB|JFh9)bJ0_W5_7 zGzSkq7)(TdNoe*c3!_1>G>(x$51l@35EpmAx+@*@0PJ->+MA9qZ@ zl4DNaTsC$bC5j5Rgg5Ca?!vNMG3F7>@05v9zu5#l97%rxhnqyK3)aRfD&G6dykqvC z=(e}Ext$mg%5-i9B-}$z>lTLY#TR<(6wVFG&7KC+1R}6Z5r|-+2TfBMS)%*xmyfMG^{6L7fa{<&IyvPFThfBnG|X(p51z_}<~ZhJ5*Ugg6 zK@;0b+0I6Rp(Dyciw(f{LFM_%_#&MLyg_uZtRGzIRhmjzlYX8lYOZ5QxAs^2t-teU+ErG&FCQy{CbR%5Qh*sHCOqgZjPH zblrt}wBL2720~PNZASJiV0`nuZp`T9s0nXT~q{E>7GA0sChQg>G&{Tisv3qvD z^z5f#z5-uZGG~2Ze+bWSg^Az_6Q9v%wk$cZNL1L%SE*ET6A>1HkO|v9=LaA!-vz1n zM*3SnNiD%O-ErGn$_tM;VF$BzFaz>Zm@P_J0??v}@!3+MmWm0{9HULKL{<8w|K`irEOugnB$%h_H#lt2Ww=#ocAzZ*1PPg9q_oby5mjCu=iwE3~dz#${y zii_$6E!#f_7ShF32`o{SemTE+^uuDFN?uO~w)xG+giR5d9t|HKT7TUFmZ}Uv3`WT9t&7A3Mq*5> z&?+jO;A(3b{l>nz!|FQcb&?c@7{uzEFq_f3rvMP-~}@&W*ByKm%UZRwRh}1@XfCt3q%XwNKX4@{jS%> zO@_DXo==lN1eV1FhE*OICaE^vee=&+Vc|?4HMm@C-(nXS-sxUac)|&(_7!ACB;*cl zrObs`QVmRnDw%YOk2$rt>e@T@@AvTY<07lB^O8N~=L30O#IMr| zkgLUf7bP*TVjB-sR8A6_mXWv3Ysh?K~#5-o^)Wp$)Tt{xQIV0R_HdsU*CwAn!GATT{j0 zoB&0%DX;dOk(@ROd`m1Zy2W;T$=)8!2}`f}$b3JbGX3z4tjbPoz^O zA$z2e1|~vXFzI?(>V55LjKRaS{^Q?WwQ%QsZ_nF)mzx5^M(*ymwU*0xOb7Bx)eD0I zo$T!VbpD~c-GG5v6vUAmAPo$;LD!_RT;@8~=R7ZOI%{ee%CLE&-w57oBNA9AGUdhj4iR7|cWulR35*ymoVMnge)l}HnK5wid9e0ZX9Xpg z3(1_;W;7?Jx)3N&hIx)_UJ!Z6ZEc}3B?8MWDAx-=G~+*iKP5SH>L+?IJk*Ow^p~HB z!wJ=O+gh~fHoKf&bnF?=x8L)h1~8onl}wN+k&scq+LBDygi0hdB`xgjCc|57%UCj5 z9o>BUbxTjZUvi{y7HAUxcdi<_nfJ}%U zgGt7NL2gfTt_m;QTpJaZqd=F6aEHxT}MK+yM z8jt3=wa>nBl~FU`A{F;lizr?uhK}Oa*Z0hRsr@L9vvw z$yJu68MOnyp1t$NyCr`9z8?K)o_0sb36KWX2QMc~m#U|mS<|MB0|Gk}u7-Vjw+2{Y zT&<{dznZ7t96M{1;m~8@pxkwDrP^clU%!b$=|b9D)O2wCaKJ zgM&5IJIi?Qwjz?ZhKNKWMooVvJKMnar|@q{@Z+j9X&K9SH!l3XX4TJsS?PK`-knO9 z(;?&rNCW$y5lQts9Q@{2FKERjdtgympN^Blepoyhn!n)0gEoqNK5@QRsa_J15tav0 z>EN&OG%KE3|4LxNT$S(wh8CKuMPU&OuDTXui9{ZdRCQprb*d|_xpQ6B(Y!JIjV+m- zEW~Jdul=6ubqw$VF}xS+``dpB67EF=MvR(Y_pjsk?0D*-ueo7r%C?BWh`@4v^J;A9 z_Y3xAvDi2`N#cg}YsC_5ufn+*d}_hz#~c#-;0-t)bLtvQ_{-ve>#+DWO{ip2u_e?6 z4X(dA3yvI_&n&yl?Q91(9}|^-=rIKqXI=WfN+#9>Qt&T{!HHHB z6tUQMUmr66(4C*+!JrN&Qwr!HEaR%@izWYtx8IrNZ?U5(JKBdb-6&=nA0@lH2j=Z@ zQ2)U2VFOq!QNj$pR(5ve0g-u!K98_Cx3N5%r?D-)FKbz$lmq`wMRly@j(;E2dh4|> z(YhxBBmBCNg$PIF;P2-i&KjE@g^g;#<}`hJ$I|PA#MI1|o3GlYW9;Lz!I7Tx5zXT@cRhK6+tIdNaE*1#%mD)nffNcriweOTib2ECWLpc9i9}k%Qb=6DB)Uqi z!G!@BD}2o>+ZLj{{DY3CAKIb$vU9C;pa^MSIR?rDTN1!52hM3_O`Q}gJmi?Y-L}>u z4ttmRlkihfUqUO%-)ZkkyMEsI#LwSLuet$6B@&j7z=ViI)qtnp*f+G=nva@;hK}M& z)w=Di6*3+#kg?tfyoBuScF`Jv!A`Ir6i)?o=xI5!qO`3g&=>so;CoB_@YUV*V~+d~ ziIq|0VQz|Q8iFOlGlp2xrcASDOnVyq0(jc=uSNp`2yFkZ-Q09w#cg+=Ypya98(*?? z#R3B1_m@sEq+#CFfP2S{4h|c6htmogR%eIARwUdoQ)C4iR_bM-kF_s1OZ&&<2WX5y zsPkjreR+rXt>8pnISSIimPlU;8|LY5OOsTISaadQ$L!%W))l}8_OBM^<*P{yu3t;G zcYGcDV&Y6Dxacd0N+A5tqA>$r88UOg;9&kiM?MAzwbi}#f?@KU_eBUU`trlx#LDyB zO~fv)J9@u~7#Yc^@;nh3;eR#?`j&Lr+f!!_8aB}ASGzvL_9dw8_*5Qop}8^(%L2hBP^M~(7eJy3sZq%qvl68-D+>QvpvtpzA%K~Sn#)_y)?4bjw6&2`fvP` zcO9>AD&>a}`p64hM%cL3>_5mI`1G5{@=)+f+0%^`GyIzK*awG6rKxD-{Q8p)ok%lD zAOict?c!kNYa{mQ2le3%Hy>*DAGoep8JqjMS}2g1kg~gLWOSQtYNSZM82{uGY{M?d z)I#t~%~EQ5Nx3_C{6~ASfcX&klXPyHm_O)ec_5K=_40}-btfNofjxUhPudznYdVKP zK^%Wh2UzWzB`5uKgGweld`?~qrIdG*vBXi~RW`zsSlEW0f;tFTE)4@P+`!1utFYpN zN8MO=AOpw?;oz#a>gL^G zH`p~WWcZKWZ@f6kOE^u{p(ErHc?ANRvXU;4S9!k&#yurtJ)5y~u_xc(yp&3W!y@+O z#9KO_ee8AF*^c{(;!OoC12`4TeSUFBaC?boLpByKtdDFs4pSE;Z=a6=1fddk*Ep*b!cx2HKjbFl`(8+Uph5SBS!z_WJZ)f4uW;GY%2o&GfltD% z>}_))+j7U`P*!cV*)J((EI#tL;x|h@FK26?eW6TEb{V}jz3bLVc1~T4^*9+__G;ya zAha4WyMKqoeuQwMvf&d&NP2aNHLR_fm?nsuF!KEg=d`dIAhTu~H!f_3S_5^q#0fw9 zOQbw0OCqe{Gi5pe{~&QYyERy`K@$<#W&`1aD((-_nyy34pOiKz%+sn=6Oxa^SG8Z6xqv1 zTl`lwe8{QI;se4j$48;xuTf$2RnLGbtdEd{U|M+f@dTZ86+S;)bV&wPR?YqhNyCjf zlNwjo$mm`Apj|nBj(70&OPVeT3c6?r)tnaN;G$1uM5$B24d~=in|;Y03Xx$$EkiMQ ztw!}tL3HMsxNytsh=+H(Pjm$}5Eh zgMx&VcX8iF;Gxq18F_hzPGsL_d+75>HEU>2^~fX`WDlnNi|I6*<8j|NnA4%^OOiOf z7zaeOab8ug4ibM1{=xTmnw{z}O=MUnpK2-jnq>mht^haHyjb1DRjCXAse=D+KU`v( z7X72nAN{``EndfA77`L93f~f%qyOyi`|nv=d~+5(CfzXC51B3gh_=om>xRlgrcpwUCk zA(qfv_2(;#=mM5p;}X)qV1i)chO+e2;>6!z1KnHQm!Oue?YIyo`~*O-u2jDIO| z_eC-G%a>4Hu718#l%xWl@Jqtxsg*0s<~fvb8UnkTSYP=qVsaXyHlU``uerudZ%3> zd+#p&Zu)wHIvMmmT?v!a-l`!VrbK+^abrTSX3|q7_D-)_9W!}kpr~VV5p4f9xG)na z$Je_!`l8Qo$me1y=Oj3g%t4x&%LPcBNim3jn$Uz*y7vEgsOK9HTo5=1L%3NS@ zVtSYLQlE8iP%5&oyq01Ak3W%Llb%)#UODlH?=Cv6pri zwA5cDTi&!gBjRW8^7f|vg@-B=ad7!zK{$!+GvA*C-Q-dEhG#CfL-_vquKeZq67I@~ zC73LAm@Rj=bh&svCjDj)sh^4^FH(_|M*5skweH<`{lUuguWI4mShL`qq^y9wmzEw! znA<_YqH`BkDP0CCZ>Wk1tRE0{3C_f%zDJ$$=@kg~pI4$zpU&PHphsh}a*=)N^k+(a zlP(RcJteo|r%PEcNhGN?QsXGQQn=0H9`U*UlEro-yFFXqO78jG&8TJo1LaTwALt!5 z{hcu9$n$T+_k9s#ASvy}iPa5U2ZD550$SaLr?Zq_+n?Ju%=Hy{%c!S!d0AQfW(k3X z6u-R;rtq_L%xThl_AGWTM-4ivfEJ81!Y-AVelT>}Z$zPI8i?d)+Vp}HkKfv#i9$B}2I@g5?~Kihq>y;K}1&Tx#Kj z9eyJO9ZQdrU_i%c>Rs>@(S@Q4ydPJXC@U#7M`JV&Z(PWhZ(MNs_M7b2lD42Q<3@jr z>Lg~K?(DJp598PFA>9Y41GhM)ndT*$) zxjlSt5(O7;SIq{(1`|V^#;!bD{rlqaF-&oR5#f}*IJH$SS`msnihr9hZ*<8JscLO- zWs_G70#sW^*Y@pBKDhs;7A=`=5MPdKU@ovza-J{9dQzAS8WhPMzx<5ulmoaRPA&B- z&@pPj-=mSF=3rATN##0N2S3&ycUC(cvWyP6y`=s*nlbv~qq7)e`~eQhsF|<)=+|sv z)6CsJf5g6Iid-Z%7*)DIS#cMjneZi!zpthe%OY!>L#L9BsI7^vqF^UAwKSmNZJP#I*mMZ!;sfVRYQGo!emam}p*sl#QqR2DojnKI6lA`QNrB z!cYXVv}kn}qKr!mp7Hn%&>kL_L@7B1FDTEmRb2d{Tv;+^>*4OH@vKc7 zuHt{it1u6piSJmwkhz@Tiag!oq&F(~aTS04KDzE6Wr`Plinp}wy0{zSGm0wq-_jx- zpFh2&D66BDD4n%E!LQB;`QJmw1vM%nxt|a6^UuqZ{T%0h9QBtv(1{ZqKSxjo<8WzX z(G1|Z8OJ=<=X)L+d0j}Yc~c+AcV!*Dn8l`iFoOvF8PYj>_vS~{pDX`D_lJ4&hb82G z{E`=gHT%(QnN9Sp;eSg6yWmt2O|Ju8h?jAiM4bd9pr4a!=1e3O@#@0@*C&uI7HEEo zKK8IhU%Kzf1kqe(VnKNeunLmKgrPZAwEcaTiv$}}Y_b1w9mC|PY_d{452GJH^74RXcKm$bqx0lso z|1D^Th>!?-#SujsD%s{{1zYyig}~Tk@;n`}5Xu@k0_B%+2MB5>E`+@P z({X?QoZ)G5o`x#feM{o|ig&{*X;^M{M2tD+26&u)ZF!)6%$b(mdDe*%!DBqpEaT8r=>x}*C6c>6jxoc;*plBfAv|=ohu4OVc z;d>p64M-=&H9Hyn9al~HH<_xjKAmE9kAX|UHiCN5f{)C(wnLmpSaarTh-p+4X+Ehm z#*0nvRdK?45*{pwh?Q6&05CfZkLz!F5&4qI3$J)G=mU{YbA_dj&Sk@j+mzPY1x-XO zcpdxomM;l#c@H!JCSFRVvZv0F1*=u6;n2Jz3#UqSnskL1S39taz>deHw&Y~<>FzO^ z`<0GdpBpo8AFzUjhZXQ|(PO70-;CLFu!au-i)am;lt308buAqoi-N%WHrC3Aqb{^C za?iKoP8+Agw2jIkbvkw*t_~3r!y7mdJof=^@9MyOizbRiz(sd@7^c|CUW<+CN$jr) zR%WV%|BEX_DhDM%kp*qof)w2i*5tWlbnV(BCO|(Y?IwRp``%Jk^Frlw%Fac%F&ZB& zQ2o2Q%S>*|eG7ERy=ra*+ALAyelx1vAZ~V7LH(FDM(?C|sRy=(7MIhrevWUewmuFc z04z4Kx-u#)VAM_e37$wK1vZ`v7kAQd{nfF^fX$X}Bo7MlKnvHGjFY-y9~_Prb{8mb zJ8y6Bb6Ub199Hetmjj0-J)7*jf6I$+$4+D!nhigaq9BskboUIG;|Tk!_%@apy7gK~ z4djJUOJ6WEEw<_keC7IO?vR`HaPwg(w0G-uZl4v;+#i6f77pQ z+HWw@<*T+Rc`I6ojsulv(WNPAF|Bbs+$i*DyWb2r)0D6%uK5sU`|ow(1o9~t!(nsf zNJ6Kk4>kzw96zNi_mhtfZ#$yArM#{&PMwZ{idqS@8JBY~^y6g_V=c zKjhE>nyucsPb#Br;5(EpS}J^YX{AYdQXeQBzwK1`&$vZ2!dHz%Pe3d&kEKrOYvg1; zpsWx8zx&7^_b_o63H9a zO?DG6#Ca9cW)IRj@KvT()wo@cI@Sb>*6bZlwX}QmHN!S9m~U*FCyCA1zT41TRi3Lw zg<~`D*6c@Ryl$kWz0#NI$$<=(@innc{V-Md6i6_`?Fz`=x2jJuK`8I}aCKc`E25k#F@* z2H-jrxW>R3++TSHA%3U?{MG;;R#!IOQ~Az41E2{C-S@RQR4i#dn7ViHVqi6Ee`wEf zTVeNBnqs>ra#1FF)cw`74xXRz-EQl-YN|RYR?LthE_Hq?ZL-o-gMi+#X<9@&c%O+x9d6Py`_qexXt>SQ2(ah(%*3a4ww$Xbo)pt9E$43~wyr?J z0jJ#TwX(Ocw}l)??X(9OF%4kpsQ$#?7*~i+9VT8P}G%}rtOn$XJihT z`Gc1eqz^Rk%A3B<6J8*yx785VT`t(|>!U@A`o^*$ET%wt6_Wt1&3Y~P1D*tCWzTMg z_BE$u9kZ329QJ<{gQnvRR8-#am&cC;;q$ZVGTY$r57a&CuCl^!uJ)SmPW;;s_ijBZ z@$&|Zl?K=nSR^9`V`vK)fNgZ+#_C6(!t$-f`y!lmxp@b4ZZHR>^dFYpZ-NKJh{`FG~< zZt@}~-nE4F;(Y+oGP{V?tn}$dZee|1ze0G(gREik9KkU?cTh%WfFW#ts(gzns8jg5j*9SSXoT@r{y#x4dqttZ5@|qN_wJf^+z7q>V4J zQk)N*Pk^Ujmasf4N!gI|H!1j?0w|T{;rjz`B}WtD?CJ5+@+9I!@XbZrnhZMpID}E{ zOFyufux$Q$^(hM@q35J(8YRblcqN|HrU{5-JtpSVLx z%L5Enh*}*m@sTI+g_#q^`RNT&oL|xQ1A8-OoXvySVR%(||5a$kygu;*3qnVSOX4z>8Zu}@t zIuJeg7iqXaVF&774QCG$@pl)Je;=J3jY~URnvpXlM$OcWijdOSW7K(u@Y?=p zntP6`sy}_v_OHAk(?GP2m}5&8{i(!+m0YcK>w!^Xnu4wCbEq%lqzmLRg;14%9Vj= zw$+r$POio)Rv1GEgH0$Hq)$ScRoPMUKBAiRrdZS;ldrJSD%=RMUPDcn!5Z zEP`PLO99p>WW_Eq>0~m0FoV{x%S$rJ8T|j#K5A!4a@U(ueHD?C?fHmf(^tASDhsvH z6OD~6_)N8NtY#Z)tc<)z+sN#_!d;}Iy zF~mZ5cE(}?|L&FjVrR(AC#QJo6cC!R%|gyR95%_H$fNKU3UJvoDgP^#aj2{2+?U

C z(CX6fIh8mroxe4Fy?l{bj%8R307X*fDQ#(v@y+x%4>XY?ax zC^p*eaCfrcq#aa-hT`A*7=V1wKdlx2BoX`y?{jb4s1j@)b7-etD6E@cKXx@8e&Vf zWehdcr8jm&_uNAX*$0NY%B&gn)>)@jQLcO5F3UZEr zds`B64=#T7qE6myk{5rNg+99@E{Zf&GEI$b?&PagH-fv#5k*V6EEmp!A*tE}RWk_SsM5#wN>{l7X5DBVl)bv~bNp*#NXY*I)h$Ng literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..b18bceb64d257ed31d50e65d7f2b98abcfb21158 GIT binary patch literal 16751 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 XrJNsHnTG=pQeg0O^>bP0l+XkK^)z{o literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/values-night/themes.xml b/src-tauri/gen/android/app/src/main/res/values-night/themes.xml new file mode 100644 index 0000000..bdd6fa8 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/values-night/themes.xml @@ -0,0 +1,6 @@ + + + + diff --git a/src-tauri/gen/android/app/src/main/res/values/colors.xml b/src-tauri/gen/android/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..f8c6127 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/res/values/strings.xml b/src-tauri/gen/android/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..c5bc682 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/values/strings.xml @@ -0,0 +1,4 @@ + + "Margin Calendar" + "Margin Calendar" + \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/res/values/themes.xml b/src-tauri/gen/android/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..bdd6fa8 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/values/themes.xml @@ -0,0 +1,6 @@ + + + + diff --git a/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml b/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml new file mode 100644 index 0000000..782d63b --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src-tauri/gen/android/build.gradle.kts b/src-tauri/gen/android/build.gradle.kts new file mode 100644 index 0000000..607240b --- /dev/null +++ b/src-tauri/gen/android/build.gradle.kts @@ -0,0 +1,22 @@ +buildscript { + repositories { + google() + mavenCentral() + } + dependencies { + classpath("com.android.tools.build:gradle:8.11.0") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.25") + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +tasks.register("clean").configure { + delete("build") +} + diff --git a/src-tauri/gen/android/buildSrc/build.gradle.kts b/src-tauri/gen/android/buildSrc/build.gradle.kts new file mode 100644 index 0000000..5c55bba --- /dev/null +++ b/src-tauri/gen/android/buildSrc/build.gradle.kts @@ -0,0 +1,23 @@ +plugins { + `kotlin-dsl` +} + +gradlePlugin { + plugins { + create("pluginsForCoolKids") { + id = "rust" + implementationClass = "RustPlugin" + } + } +} + +repositories { + google() + mavenCentral() +} + +dependencies { + compileOnly(gradleApi()) + implementation("com.android.tools.build:gradle:8.11.0") +} + diff --git a/src-tauri/gen/android/buildSrc/src/main/java/studio/margin/calendar/kotlin/BuildTask.kt b/src-tauri/gen/android/buildSrc/src/main/java/studio/margin/calendar/kotlin/BuildTask.kt new file mode 100644 index 0000000..f764e2a --- /dev/null +++ b/src-tauri/gen/android/buildSrc/src/main/java/studio/margin/calendar/kotlin/BuildTask.kt @@ -0,0 +1,68 @@ +import java.io.File +import org.apache.tools.ant.taskdefs.condition.Os +import org.gradle.api.DefaultTask +import org.gradle.api.GradleException +import org.gradle.api.logging.LogLevel +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.TaskAction + +open class BuildTask : DefaultTask() { + @Input + var rootDirRel: String? = null + @Input + var target: String? = null + @Input + var release: Boolean? = null + + @TaskAction + fun assemble() { + val executable = """pnpm"""; + try { + runTauriCli(executable) + } catch (e: Exception) { + if (Os.isFamily(Os.FAMILY_WINDOWS)) { + // Try different Windows-specific extensions + val fallbacks = listOf( + "$executable.exe", + "$executable.cmd", + "$executable.bat", + ) + + var lastException: Exception = e + for (fallback in fallbacks) { + try { + runTauriCli(fallback) + return + } catch (fallbackException: Exception) { + lastException = fallbackException + } + } + throw lastException + } else { + throw e; + } + } + } + + fun runTauriCli(executable: String) { + val rootDirRel = rootDirRel ?: throw GradleException("rootDirRel cannot be null") + val target = target ?: throw GradleException("target cannot be null") + val release = release ?: throw GradleException("release cannot be null") + val args = listOf("tauri", "android", "android-studio-script"); + + project.exec { + workingDir(File(project.projectDir, rootDirRel)) + executable(executable) + args(args) + if (project.logger.isEnabled(LogLevel.DEBUG)) { + args("-vv") + } else if (project.logger.isEnabled(LogLevel.INFO)) { + args("-v") + } + if (release) { + args("--release") + } + args(listOf("--target", target)) + }.assertNormalExitValue() + } +} \ No newline at end of file diff --git a/src-tauri/gen/android/buildSrc/src/main/java/studio/margin/calendar/kotlin/RustPlugin.kt b/src-tauri/gen/android/buildSrc/src/main/java/studio/margin/calendar/kotlin/RustPlugin.kt new file mode 100644 index 0000000..4aa7fca --- /dev/null +++ b/src-tauri/gen/android/buildSrc/src/main/java/studio/margin/calendar/kotlin/RustPlugin.kt @@ -0,0 +1,85 @@ +import com.android.build.api.dsl.ApplicationExtension +import org.gradle.api.DefaultTask +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.kotlin.dsl.configure +import org.gradle.kotlin.dsl.get + +const val TASK_GROUP = "rust" + +open class Config { + lateinit var rootDirRel: String +} + +open class RustPlugin : Plugin { + private lateinit var config: Config + + override fun apply(project: Project) = with(project) { + config = extensions.create("rust", Config::class.java) + + val defaultAbiList = listOf("arm64-v8a", "armeabi-v7a", "x86", "x86_64"); + val abiList = (findProperty("abiList") as? String)?.split(',') ?: defaultAbiList + + val defaultArchList = listOf("arm64", "arm", "x86", "x86_64"); + val archList = (findProperty("archList") as? String)?.split(',') ?: defaultArchList + + val targetsList = (findProperty("targetList") as? String)?.split(',') ?: listOf("aarch64", "armv7", "i686", "x86_64") + + extensions.configure { + @Suppress("UnstableApiUsage") + flavorDimensions.add("abi") + productFlavors { + create("universal") { + dimension = "abi" + ndk { + abiFilters += abiList + } + } + defaultArchList.forEachIndexed { index, arch -> + create(arch) { + dimension = "abi" + ndk { + abiFilters.add(defaultAbiList[index]) + } + } + } + } + } + + afterEvaluate { + for (profile in listOf("debug", "release")) { + val profileCapitalized = profile.replaceFirstChar { it.uppercase() } + val buildTask = tasks.maybeCreate( + "rustBuildUniversal$profileCapitalized", + DefaultTask::class.java + ).apply { + group = TASK_GROUP + description = "Build dynamic library in $profile mode for all targets" + } + + tasks["mergeUniversal${profileCapitalized}JniLibFolders"].dependsOn(buildTask) + + for (targetPair in targetsList.withIndex()) { + val targetName = targetPair.value + val targetArch = archList[targetPair.index] + val targetArchCapitalized = targetArch.replaceFirstChar { it.uppercase() } + val targetBuildTask = project.tasks.maybeCreate( + "rustBuild$targetArchCapitalized$profileCapitalized", + BuildTask::class.java + ).apply { + group = TASK_GROUP + description = "Build dynamic library in $profile mode for $targetArch" + rootDirRel = config.rootDirRel + target = targetName + release = profile == "release" + } + + buildTask.dependsOn(targetBuildTask) + tasks["merge$targetArchCapitalized${profileCapitalized}JniLibFolders"].dependsOn( + targetBuildTask + ) + } + } + } + } +} \ No newline at end of file diff --git a/src-tauri/gen/android/gradle.properties b/src-tauri/gen/android/gradle.properties new file mode 100644 index 0000000..2a7ec69 --- /dev/null +++ b/src-tauri/gen/android/gradle.properties @@ -0,0 +1,24 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app"s APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official +# Enables namespacing of each library's R class so that its R class includes only the +# resources declared in the library itself and none from the library's dependencies, +# thereby reducing the size of the R class for that library +android.nonTransitiveRClass=true +android.nonFinalResIds=false \ No newline at end of file diff --git a/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar b/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f GIT binary patch literal 59203 zcma&O1CT9Y(k9%tZQHhO+qUh#ZQHhO+qmuS+qP|E@9xZO?0h@l{(r>DQ>P;GjjD{w zH}lENr;dU&FbEU?00aa80D$0M0RRB{U*7-#kbjS|qAG&4l5%47zyJ#WrfA#1$1Ctx zf&Z_d{GW=lf^w2#qRJ|CvSJUi(^E3iv~=^Z(zH}F)3Z%V3`@+rNB7gTVU{Bb~90p|f+0(v;nz01EG7yDMX9@S~__vVgv%rS$+?IH+oZ03D5zYrv|^ zC1J)SruYHmCki$jLBlTaE5&dFG9-kq3!^i>^UQL`%gn6)jz54$WDmeYdsBE9;PqZ_ zoGd=P4+|(-u4U1dbAVQrFWoNgNd;0nrghPFbQrJctO>nwDdI`Q^i0XJDUYm|T|RWc zZ3^Qgo_Qk$%Fvjj-G}1NB#ZJqIkh;kX%V{THPqOyiq)d)0+(r9o(qKlSp*hmK#iIY zA^)Vr$-Hz<#SF=0@tL@;dCQsm`V9s1vYNq}K1B)!XSK?=I1)tX+bUV52$YQu*0%fnWEukW>mxkz+%3-S!oguE8u#MGzST8_Dy^#U?fA@S#K$S@9msUiX!gd_ow>08w5)nX{-KxqMOo7d?k2&?Vf z&diGDtZr(0cwPe9z9FAUSD9KC)7(n^lMWuayCfxzy8EZsns%OEblHFSzP=cL6}?J| z0U$H!4S_TVjj<`6dy^2j`V`)mC;cB%* z8{>_%E1^FH!*{>4a7*C1v>~1*@TMcLK{7nEQ!_igZC}ikJ$*<$yHy>7)oy79A~#xE zWavoJOIOC$5b6*q*F_qN1>2#MY)AXVyr$6x4b=$x^*aqF*L?vmj>Mgv+|ITnw_BoW zO?jwHvNy^prH{9$rrik1#fhyU^MpFqF2fYEt(;4`Q&XWOGDH8k6M=%@fics4ajI;st# zCU^r1CK&|jzUhRMv;+W~6N;u<;#DI6cCw-otsc@IsN3MoSD^O`eNflIoR~l4*&-%RBYk@gb^|-JXs&~KuSEmMxB}xSb z@K76cXD=Y|=I&SNC2E+>Zg?R6E%DGCH5J1nU!A|@eX9oS(WPaMm==k2s_ueCqdZw| z&hqHp)47`c{BgwgvY2{xz%OIkY1xDwkw!<0veB#yF4ZKJyabhyyVS`gZepcFIk%e2 zTcrmt2@-8`7i-@5Nz>oQWFuMC_KlroCl(PLSodswHqJ3fn<;gxg9=}~3x_L3P`9Sn zChIf}8vCHvTriz~T2~FamRi?rh?>3bX1j}%bLH+uFX+p&+^aXbOK7clZxdU~6Uxgy z8R=obwO4dL%pmVo*Ktf=lH6hnlz_5k3cG;m8lgaPp~?eD!Yn2kf)tU6PF{kLyn|oI@eQ`F z3IF7~Blqg8-uwUuWZScRKn%c2_}dXB6Dx_&xR*n9M9LXasJhtZdr$vBY!rP{c@=)& z#!?L$2UrkvClwQO>U*fSMs67oSj2mxiJ$t;E|>q%Kh_GzzWWO&3;ufU%2z%ucBU8H z3WIwr$n)cfCXR&>tyB7BcSInK>=ByZA%;cVEJhcg<#6N{aZC4>K41XF>ZgjG`z_u& zGY?;Ad?-sgiOnI`oppF1o1Gurqbi*;#x2>+SSV6|1^G@ooVy@fg?wyf@0Y!UZ4!}nGuLeC^l)6pwkh|oRY`s1Pm$>zZ3u-83T|9 zGaKJIV3_x+u1>cRibsaJpJqhcm%?0-L;2 zitBrdRxNmb0OO2J%Y&Ym(6*`_P3&&5Bw157{o7LFguvxC$4&zTy#U=W*l&(Q2MNO} zfaUwYm{XtILD$3864IA_nn34oVa_g^FRuHL5wdUd)+W-p-iWCKe8m_cMHk+=? zeKX)M?Dt(|{r5t7IenkAXo%&EXIb-i^w+0CX0D=xApC=|Xy(`xy+QG^UyFe z+#J6h_&T5i#sV)hj3D4WN%z;2+jJcZxcI3*CHXGmOF3^)JD5j&wfX)e?-|V0GPuA+ zQFot%aEqGNJJHn$!_}#PaAvQ^{3-Ye7b}rWwrUmX53(|~i0v{}G_sI9uDch_brX&6 zWl5Ndj-AYg(W9CGfQf<6!YmY>Ey)+uYd_JNXH=>|`OH-CDCmcH(0%iD_aLlNHKH z7bcW-^5+QV$jK?R*)wZ>r9t}loM@XN&M-Pw=F#xn(;u3!(3SXXY^@=aoj70;_=QE9 zGghsG3ekq#N||u{4We_25U=y#T*S{4I{++Ku)> zQ!DZW;pVcn>b;&g2;YE#+V`v*Bl&Y-i@X6D*OpNA{G@JAXho&aOk(_j^weW{#3X5Y z%$q_wpb07EYPdmyH(1^09i$ca{O<}7) zRWncXdSPgBE%BM#by!E>tdnc$8RwUJg1*x($6$}ae$e9Knj8gvVZe#bLi!<+&BkFj zg@nOpDneyc+hU9P-;jmOSMN|*H#>^Ez#?;%C3hg_65leSUm;iz)UkW)jX#p)e&S&M z1|a?wDzV5NVnlhRBCd_;F87wp>6c<&nkgvC+!@KGiIqWY4l}=&1w7|r6{oBN8xyzh zG$b#2=RJp_iq6)#t5%yLkKx(0@D=C3w+oiXtSuaQ%I1WIb-eiE$d~!)b@|4XLy!CZ z9p=t=%3ad@Ep+<9003D2KZ5VyP~_n$=;~r&YUg5UZ0KVD&tR1DHy9x)qWtKJp#Kq# zP*8p#W(8JJ_*h_3W}FlvRam?<4Z+-H77^$Lvi+#vmhL9J zJ<1SV45xi;SrO2f=-OB(7#iNA5)x1uNC-yNxUw|!00vcW2PufRm>e~toH;M0Q85MQLWd?3O{i8H+5VkR@l9Dg-ma ze2fZ%>G(u5(k9EHj2L6!;(KZ8%8|*-1V|B#EagbF(rc+5iL_5;Eu)L4Z-V;0HfK4d z*{utLse_rvHZeQ>V5H=f78M3Ntg1BPxFCVD{HbNA6?9*^YIq;B-DJd{Ca2L#)qWP? zvX^NhFmX?CTWw&Ns}lgs;r3i+Bq@y}Ul+U%pzOS0Fcv9~aB(0!>GT0)NO?p=25LjN z2bh>6RhgqD7bQj#k-KOm@JLgMa6>%-ok1WpOe)FS^XOU{c?d5shG(lIn3GiVBxmg`u%-j=)^v&pX1JecJics3&jvPI)mDut52? z3jEA)DM%}BYbxxKrizVYwq?(P&19EXlwD9^-6J+4!}9{ywR9Gk42jjAURAF&EO|~N z)?s>$Da@ikI4|^z0e{r`J8zIs>SpM~Vn^{3fArRu;?+43>lD+^XtUcY1HidJwnR6+ z!;oG2=B6Z_=M%*{z-RaHc(n|1RTKQdNjjV!Pn9lFt^4w|AeN06*j}ZyhqZ^!-=cyGP_ShV1rGxkx8t zB;8`h!S{LD%ot``700d0@Grql(DTt4Awgmi+Yr0@#jbe=2#UkK%rv=OLqF)9D7D1j z!~McAwMYkeaL$~kI~90)5vBhBzWYc3Cj1WI0RS`z000R8-@ET0dA~*r(gSiCJmQMN&4%1D zyVNf0?}sBH8zNbBLn>~(W{d3%@kL_eQ6jEcR{l>C|JK z(R-fA!z|TTRG40|zv}7E@PqCAXP3n`;%|SCQ|ZS%ym$I{`}t3KPL&^l5`3>yah4*6 zifO#{VNz3)?ZL$be;NEaAk9b#{tV?V7 zP|wf5YA*1;s<)9A4~l3BHzG&HH`1xNr#%){4xZ!jq%o=7nN*wMuXlFV{HaiQLJ`5G zBhDi#D(m`Q1pLh@Tq+L;OwuC52RdW7b8}~60WCOK5iYMUad9}7aWBuILb({5=z~YF zt?*Jr5NG+WadM{mDL>GyiByCuR)hd zA=HM?J6l1Xv0Dl+LW@w$OTcEoOda^nFCw*Sy^I@$sSuneMl{4ys)|RY#9&NxW4S)9 zq|%83IpslTLoz~&vTo!Ga@?rj_kw{|k{nv+w&Ku?fyk4Ki4I?);M|5Axm)t+BaE)D zm(`AQ#k^DWrjbuXoJf2{Aj^KT zFb1zMSqxq|vceV+Mf-)$oPflsO$@*A0n0Z!R{&(xh8s}=;t(lIy zv$S8x>m;vQNHuRzoaOo?eiWFe{0;$s`Bc+Osz~}Van${u;g(su`3lJ^TEfo~nERfP z)?aFzpDgnLYiERsKPu|0tq4l2wT)Atr6Qb%m-AUn6HnCue*yWICp7TjW$@sO zm5rm4aTcPQ(rfi7a`xP7cKCFrJD}*&_~xgLyr^-bmsL}y;A5P|al8J3WUoBSjqu%v zxC;mK!g(7r6RRJ852Z~feoC&sD3(6}^5-uLK8o)9{8L_%%rItZK9C){UxB|;G>JbP zsRRtS4-3B*5c+K2kvmgZK8472%l>3cntWUOVHxB|{Ay~aOg5RN;{PJgeVD*H%ac+y!h#wi%o2bF2Ca8IyMyH{>4#{E_8u^@+l-+n=V}Sq?$O z{091@v%Bd*3pk0^2UtiF9Z+(a@wy6 zUdw8J*ze$K#=$48IBi1U%;hmhO>lu!uU;+RS}p&6@rQila7WftH->*A4=5W|Fmtze z)7E}jh@cbmr9iup^i%*(uF%LG&!+Fyl@LFA-}Ca#bxRfDJAiR2dt6644TaYw1Ma79 zt8&DYj31j^5WPNf5P&{)J?WlCe@<3u^78wnd(Ja4^a>{^Tw}W>|Cjt^If|7l^l)^Q zbz|7~CF(k_9~n|h;ysZ+jHzkXf(*O*@5m zLzUmbHp=x!Q|!9NVXyipZ3)^GuIG$k;D)EK!a5=8MFLI_lpf`HPKl=-Ww%z8H_0$j ztJ||IfFG1lE9nmQ0+jPQy zCBdKkjArH@K7jVcMNz);Q(Q^R{d5G?-kk;Uu_IXSyWB)~KGIizZL(^&qF;|1PI7!E zTP`%l)gpX|OFn&)M%txpQ2F!hdA~hX1Cm5)IrdljqzRg!f{mN%G~H1&oqe`5eJCIF zHdD7O;AX-{XEV(a`gBFJ9ews#CVS2y!&>Cm_dm3C8*n3MA*e67(WC?uP@8TXuMroq z{#w$%z@CBIkRM7?}Xib+>hRjy?%G!fiw8! z8(gB+8J~KOU}yO7UGm&1g_MDJ$IXS!`+*b*QW2x)9>K~Y*E&bYMnjl6h!{17_8d!%&9D`a7r&LKZjC<&XOvTRaKJ1 zUY@hl5^R&kZl3lU3njk`3dPzxj$2foOL26r(9zsVF3n_F#v)s5vv3@dgs|lP#eylq62{<-vczqP!RpVBTgI>@O6&sU>W|do17+#OzQ7o5A$ICH z?GqwqnK^n2%LR;$^oZM;)+>$X3s2n}2jZ7CdWIW0lnGK-b#EG01)P@aU`pg}th&J-TrU`tIpb5t((0eu|!u zQz+3ZiOQ^?RxxK4;zs=l8q!-n7X{@jSwK(iqNFiRColuEOg}!7cyZi`iBX4g1pNBj zAPzL?P^Ljhn;1$r8?bc=#n|Ed7wB&oHcw()&*k#SS#h}jO?ZB246EGItsz*;^&tzp zu^YJ0=lwsi`eP_pU8}6JA7MS;9pfD;DsSsLo~ogzMNP70@@;Fm8f0^;>$Z>~}GWRw!W5J3tNX*^2+1f3hz{~rIzJo z6W%J(H!g-eI_J1>0juX$X4Cl6i+3wbc~k146UIX&G22}WE>0ga#WLsn9tY(&29zBvH1$`iWtTe zG2jYl@P!P)eb<5DsR72BdI7-zP&cZNI{7q3e@?N8IKc4DE#UVr->|-ryuJXk^u^>4 z$3wE~=q390;XuOQP~TNoDR?#|NSPJ%sTMInA6*rJ%go|=YjGe!B>z6u$IhgQSwoV* zjy3F2#I>uK{42{&IqP59)Y(1*Z>>#W8rCf4_eVsH)`v!P#^;BgzKDR`ARGEZzkNX+ zJUQu=*-ol=Xqqt5=`=pA@BIn@6a9G8C{c&`i^(i+BxQO9?YZ3iu%$$da&Kb?2kCCo zo7t$UpSFWqmydXf@l3bVJ=%K?SSw)|?srhJ-1ZdFu*5QhL$~-IQS!K1s@XzAtv6*Y zl8@(5BlWYLt1yAWy?rMD&bwze8bC3-GfNH=p zynNFCdxyX?K&G(ZZ)afguQ2|r;XoV^=^(;Cku#qYn4Lus`UeKt6rAlFo_rU`|Rq z&G?~iWMBio<78of-2X(ZYHx~=U0Vz4btyXkctMKdc9UM!vYr~B-(>)(Hc|D zMzkN4!PBg%tZoh+=Gba!0++d193gbMk2&krfDgcbx0jI92cq?FFESVg0D$>F+bil} zY~$)|>1HZsX=5sAZ2WgPB5P=8X#TI+NQ(M~GqyVB53c6IdX=k>Wu@A0Svf5#?uHaF zsYn|koIi3$(%GZ2+G+7Fv^lHTb#5b8sAHSTnL^qWZLM<(1|9|QFw9pnRU{svj}_Al zL)b9>fN{QiA($8peNEJyy`(a{&uh-T4_kdZFIVsKKVM(?05}76EEz?#W za^fiZOAd14IJ4zLX-n7Lq0qlQ^lW8Cvz4UKkV9~P}>sq0?xD3vg+$4vLm~C(+ zM{-3Z#qnZ09bJ>}j?6ry^h+@PfaD7*jZxBEY4)UG&daWb??6)TP+|3#Z&?GL?1i+280CFsE|vIXQbm| zM}Pk!U`U5NsNbyKzkrul-DzwB{X?n3E6?TUHr{M&+R*2%yOiXdW-_2Yd6?38M9Vy^ z*lE%gA{wwoSR~vN0=no}tP2Ul5Gk5M(Xq`$nw#ndFk`tcpd5A=Idue`XZ!FS>Q zG^0w#>P4pPG+*NC9gLP4x2m=cKP}YuS!l^?sHSFftZy{4CoQrb_ z^20(NnG`wAhMI=eq)SsIE~&Gp9Ne0nD4%Xiu|0Fj1UFk?6avDqjdXz{O1nKao*46y zT8~iA%Exu=G#{x=KD;_C&M+Zx4+n`sHT>^>=-1YM;H<72k>$py1?F3#T1*ef9mLZw z5naLQr?n7K;2l+{_uIw*_1nsTn~I|kkCgrn;|G~##hM;9l7Jy$yJfmk+&}W@JeKcF zx@@Woiz8qdi|D%aH3XTx5*wDlbs?dC1_nrFpm^QbG@wM=i2?Zg;$VK!c^Dp8<}BTI zyRhAq@#%2pGV49*Y5_mV4+OICP|%I(dQ7x=6Ob}>EjnB_-_18*xrY?b%-yEDT(wrO z9RY2QT0`_OpGfMObKHV;QLVnrK%mc?$WAdIT`kJQT^n%GuzE7|9@k3ci5fYOh(287 zuIbg!GB3xLg$YN=n)^pHGB0jH+_iIiC=nUcD;G6LuJsjn2VI1cyZx=a?ShCsF==QK z;q~*m&}L<-cb+mDDXzvvrRsybcgQ;Vg21P(uLv5I+eGc7o7tc6`;OA9{soHFOz zT~2?>Ts}gprIX$wRBb4yE>ot<8+*Bv`qbSDv*VtRi|cyWS>)Fjs>fkNOH-+PX&4(~ z&)T8Zam2L6puQl?;5zg9h<}k4#|yH9czHw;1jw-pwBM*O2hUR6yvHATrI%^mvs9q_ z&ccT0>f#eDG<^WG^q@oVqlJrhxH)dcq2cty@l3~|5#UDdExyXUmLQ}f4#;6fI{f^t zDCsgIJ~0`af%YR%Ma5VQq-p21k`vaBu6WE?66+5=XUd%Ay%D$irN>5LhluRWt7 zov-=f>QbMk*G##&DTQyou$s7UqjjW@k6=!I@!k+S{pP8R(2=e@io;N8E`EOB;OGoI zw6Q+{X1_I{OO0HPpBz!X!@`5YQ2)t{+!?M_iH25X(d~-Zx~cXnS9z>u?+If|iNJbx zyFU2d1!ITX64D|lE0Z{dLRqL1Ajj=CCMfC4lD3&mYR_R_VZ>_7_~|<^o*%_&jevU+ zQ4|qzci=0}Jydw|LXLCrOl1_P6Xf@c0$ieK2^7@A9UbF{@V_0p%lqW|L?5k>bVM8|p5v&2g;~r>B8uo<4N+`B zH{J)h;SYiIVx@#jI&p-v3dwL5QNV1oxPr8J%ooezTnLW>i*3Isb49%5i!&ac_dEXv zvXmVUck^QHmyrF8>CGXijC_R-y(Qr{3Zt~EmW)-nC!tiH`wlw5D*W7Pip;T?&j%kX z6DkZX4&}iw>hE(boLyjOoupf6JpvBG8}jIh!!VhnD0>}KSMMo{1#uU6kiFcA04~|7 zVO8eI&x1`g4CZ<2cYUI(n#wz2MtVFHx47yE5eL~8bot~>EHbevSt}LLMQX?odD{Ux zJMnam{d)W4da{l7&y-JrgiU~qY3$~}_F#G7|MxT)e;G{U`In&?`j<5D->}cb{}{T(4DF0BOk-=1195KB-E*o@c?`>y#4=dMtYtSY=&L{!TAjFVcq0y@AH`vH! z$41+u!Ld&}F^COPgL(EE{0X7LY&%D7-(?!kjFF7=qw<;`V{nwWBq<)1QiGJgUc^Vz ztMUlq1bZqKn17|6x6iAHbWc~l1HcmAxr%$Puv!znW)!JiukwIrqQ00|H$Z)OmGG@= zv%A8*4cq}(?qn4rN6o`$Y))(MyXr8R<2S^J+v(wmFmtac!%VOfN?&(8Nr!T@kV`N; z*Q33V3t`^rN&aBiHet)18wy{*wi1=W!B%B-Q6}SCrUl$~Hl{@!95ydml@FK8P=u4s z4e*7gV2s=YxEvskw2Ju!2%{8h01rx-3`NCPc(O zH&J0VH5etNB2KY6k4R@2Wvl^Ck$MoR3=)|SEclT2ccJ!RI9Nuter7u9@;sWf-%um;GfI!=eEIQ2l2p_YWUd{|6EG ze{yO6;lMc>;2tPrsNdi@&1K6(1;|$xe8vLgiouj%QD%gYk`4p{Ktv9|j+!OF-P?@p z;}SV|oIK)iwlBs+`ROXkhd&NK zzo__r!B>tOXpBJMDcv!Mq54P+n4(@dijL^EpO1wdg~q+!DT3lB<>9AANSe!T1XgC=J^)IP0XEZ()_vpu!!3HQyJhwh?r`Ae%Yr~b% zO*NY9t9#qWa@GCPYOF9aron7thfWT`eujS4`t2uG6)~JRTI;f(ZuoRQwjZjp5Pg34 z)rp$)Kr?R+KdJ;IO;pM{$6|2y=k_siqvp%)2||cHTe|b5Ht8&A{wazGNca zX$Ol?H)E_R@SDi~4{d-|8nGFhZPW;Cts1;08TwUvLLv&_2$O6Vt=M)X;g%HUr$&06 zISZb(6)Q3%?;3r~*3~USIg=HcJhFtHhIV(siOwV&QkQe#J%H9&E21!C*d@ln3E@J* zVqRO^<)V^ky-R|%{(9`l-(JXq9J)1r$`uQ8a}$vr9E^nNiI*thK8=&UZ0dsFN_eSl z(q~lnD?EymWLsNa3|1{CRPW60>DSkY9YQ;$4o3W7Ms&@&lv9eH!tk~N&dhqX&>K@} zi1g~GqglxkZ5pEFkllJ)Ta1I^c&Bt6#r(QLQ02yHTaJB~- zCcE=5tmi`UA>@P=1LBfBiqk)HB4t8D?02;9eXj~kVPwv?m{5&!&TFYhu>3=_ zsGmYZ^mo*-j69-42y&Jj0cBLLEulNRZ9vXE)8~mt9C#;tZs;=#M=1*hebkS;7(aGf zcs7zH(I8Eui9UU4L--))yy`&d&$In&VA2?DAEss4LAPCLd>-$i?lpXvn!gu^JJ$(DoUlc6wE98VLZ*z`QGQov5l4Fm_h?V-;mHLYDVOwKz7>e4+%AzeO>P6v}ndPW| zM>m#6Tnp7K?0mbK=>gV}=@k*0Mr_PVAgGMu$j+pWxzq4MAa&jpCDU&-5eH27Iz>m^ zax1?*HhG%pJ((tkR(V(O(L%7v7L%!_X->IjS3H5kuXQT2!ow(;%FDE>16&3r){!ex zhf==oJ!}YU89C9@mfDq!P3S4yx$aGB?rbtVH?sHpg?J5C->!_FHM%Hl3#D4eplxzQ zRA+<@LD%LKSkTk2NyWCg7u=$%F#;SIL44~S_OGR}JqX}X+=bc@swpiClB`Zbz|f!4 z7Ysah7OkR8liXfI`}IIwtEoL}(URrGe;IM8%{>b1SsqXh)~w}P>yiFRaE>}rEnNkT z!HXZUtxUp1NmFm)Dm@-{FI^aRQqpSkz}ZSyKR%Y}YHNzBk)ZIp} zMtS=aMvkgWKm9&oTcU0?S|L~CDqA+sHpOxwnswF-fEG)cXCzUR?ps@tZa$=O)=L+5 zf%m58cq8g_o}3?Bhh+c!w4(7AjxwQ3>WnVi<{{38g7yFboo>q|+7qs<$8CPXUFAN< zG&}BHbbyQ5n|qqSr?U~GY{@GJ{(Jny{bMaOG{|IkUj7tj^9pa9|FB_<+KHLxSxR;@ zHpS$4V)PP+tx}22fWx(Ku9y+}Ap;VZqD0AZW4gCDTPCG=zgJmF{|x;(rvdM|2|9a}cex6xrMkERnkE;}jvU-kmzd%_J50$M`lIPCKf+^*zL=@LW`1SaEc%=m zQ+lT06Gw+wVwvQ9fZ~#qd430v2HndFsBa9WjD0P}K(rZYdAt^5WQIvb%D^Q|pkVE^ zte$&#~zmULFACGfS#g=2OLOnIf2Of-k!(BIHjs77nr!5Q1*I9 z1%?=~#Oss!rV~?-6Gm~BWJiA4mJ5TY&iPm_$)H1_rTltuU1F3I(qTQ^U$S>%$l z)Wx1}R?ij0idp@8w-p!Oz{&*W;v*IA;JFHA9%nUvVDy7Q8woheC#|8QuDZb-L_5@R zOqHwrh|mVL9b=+$nJxM`3eE{O$sCt$UK^2@L$R(r^-_+z?lOo+me-VW=Zw z-Bn>$4ovfWd%SPY`ab-u9{INc*k2h+yH%toDHIyqQ zO68=u`N}RIIs7lsn1D){)~%>ByF<>i@qFb<-axvu(Z+6t7v<^z&gm9McRB~BIaDn$ z#xSGT!rzgad8o>~kyj#h1?7g96tOcCJniQ+*#=b7wPio>|6a1Z?_(TS{)KrPe}(8j z!#&A=k(&Pj^F;r)CI=Z{LVu>uj!_W1q4b`N1}E(i%;BWjbEcnD=mv$FL$l?zS6bW!{$7j1GR5ocn94P2u{ z70tAAcpqtQo<@cXw~@i-@6B23;317|l~S>CB?hR5qJ%J3EFgyBdJd^fHZu7AzHF(BQ!tyAz^L0`X z23S4Fe{2X$W0$zu9gm%rg~A>ijaE#GlYlrF9$ds^QtaszE#4M(OLVP2O-;XdT(XIC zatwzF*)1c+t~c{L=fMG8Z=k5lv>U0;C{caN1NItnuSMp)6G3mbahu>E#sj&oy94KC zpH}8oEw{G@N3pvHhp{^-YaZeH;K+T_1AUv;IKD<=mv^&Ueegrb!yf`4VlRl$M?wsl zZyFol(2|_QM`e_2lYSABpKR{{NlxlDSYQNkS;J66aT#MSiTx~;tUmvs-b*CrR4w=f z8+0;*th6kfZ3|5!Icx3RV11sp=?`0Jy3Fs0N4GZQMN=8HmT6%x9@{Dza)k}UwL6JT zHRDh;%!XwXr6yuuy`4;Xsn0zlR$k%r%9abS1;_v?`HX_hI|+EibVnlyE@3aL5vhQq zlIG?tN^w@0(v9M*&L+{_+RQZw=o|&BRPGB>e5=ys7H`nc8nx)|-g;s7mRc7hg{GJC zAe^vCIJhajmm7C6g! zL&!WAQ~5d_5)00?w_*|*H>3$loHrvFbitw#WvLB!JASO?#5Ig5$Ys10n>e4|3d;tS zELJ0|R4n3Az(Fl3-r^QiV_C;)lQ1_CW{5bKS15U|E9?ZgLec@%kXr84>5jV2a5v=w z?pB1GPdxD$IQL4)G||B_lI+A=08MUFFR4MxfGOu07vfIm+j=z9tp~5i_6jb`tR>qV z$#`=BQ*jpCjm$F0+F)L%xRlnS%#&gro6PiRfu^l!EVan|r3y}AHJQOORGx4~ z&<)3=K-tx518DZyp%|!EqpU!+X3Et7n2AaC5(AtrkW>_57i}$eqs$rupubg0a1+WO zGHZKLN2L0D;ab%{_S1Plm|hx8R?O14*w*f&2&bB050n!R2by zw!@XOQx$SqZ5I<(Qu$V6g>o#A!JVwErWv#(Pjx=KeS0@hxr4?13zj#oWwPS(7Ro|v z>Mp@Kmxo79q|}!5qtX2-O@U&&@6s~!I&)1WQIl?lTnh6UdKT_1R640S4~f=_xoN3- zI+O)$R@RjV$F=>Ti7BlnG1-cFKCC(t|Qjm{SalS~V-tX#+2ekRhwmN zZr`8{QF6y~Z!D|{=1*2D-JUa<(1Z=;!Ei!KiRNH?o{p5o3crFF=_pX9O-YyJchr$~ zRC`+G+8kx~fD2k*ZIiiIGR<8r&M@3H?%JVOfE>)})7ScOd&?OjgAGT@WVNSCZ8N(p zuQG~76GE3%(%h1*vUXg$vH{ua0b`sQ4f0*y=u~lgyb^!#CcPJa2mkSEHGLsnO^kb$ zru5_l#nu=Y{rSMWiYx?nO{8I!gH+?wEj~UM?IrG}E|bRIBUM>UlY<`T1EHpRr36vv zBi&dG8oxS|J$!zoaq{+JpJy+O^W(nt*|#g32bd&K^w-t>!Vu9N!k9eA8r!Xc{utY> zg9aZ(D2E0gL#W0MdjwES-7~Wa8iubPrd?8-$C4BP?*wok&O8+ykOx{P=Izx+G~hM8 z*9?BYz!T8~dzcZr#ux8kS7u7r@A#DogBH8km8Ry4slyie^n|GrTbO|cLhpqgMdsjX zJ_LdmM#I&4LqqsOUIXK8gW;V0B(7^$y#h3h>J0k^WJfAMeYek%Y-Dcb_+0zPJez!GM zAmJ1u;*rK=FNM0Nf}Y!!P9c4)HIkMnq^b;JFd!S3?_Qi2G#LIQ)TF|iHl~WKK6JmK zbv7rPE6VkYr_%_BT}CK8h=?%pk@3cz(UrZ{@h40%XgThP*-Oeo`T0eq9 zA8BnWZKzCy5e&&_GEsU4*;_k}(8l_&al5K-V*BFM=O~;MgRkYsOs%9eOY6s6AtE*<7GQAR2ulC3RAJrG_P1iQK5Z~&B z&f8X<>yJV6)oDGIlS$Y*D^Rj(cszTy5c81a5IwBr`BtnC6_e`ArI8CaTX_%rx7;cn zR-0?J_LFg*?(#n~G8cXut(1nVF0Oka$A$1FGcERU<^ggx;p@CZc?3UB41RY+wLS`LWFNSs~YP zuw1@DNN3lTd|jDL7gjBsd9}wIw}4xT2+8dBQzI00m<@?c2L%>}QLfK5%r!a-iII`p zX@`VEUH)uj^$;7jVUYdADQ2k*!1O3WdfgF?OMtUXNpQ1}QINamBTKDuv19^{$`8A1 zeq%q*O0mi@(%sZU>Xdb0Ru96CFqk9-L3pzLVsMQ`Xpa~N6CR{9Rm2)A|CI21L(%GW zh&)Y$BNHa=FD+=mBw3{qTgw)j0b!Eahs!rZnpu)z!!E$*eXE~##yaXz`KE5(nQM`s zD!$vW9XH)iMxu9R>r$VlLk9oIR%HxpUiW=BK@4U)|1WNQ=mz9a z^!KkO=>GaJ!GBXm{KJj^;kh-MkUlEQ%lza`-G&}C5y1>La1sR6hT=d*NeCnuK%_LV zOXt$}iP6(YJKc9j-Fxq~*ItVUqljQ8?oaysB-EYtFQp9oxZ|5m0^Hq(qV!S+hq#g( z?|i*H2MIr^Kxgz+3vIljQ*Feejy6S4v~jKEPTF~Qhq!(ms5>NGtRgO5vfPPc4Z^AM zTj!`5xEreIN)vaNxa|q6qWdg>+T`Ol0Uz)ckXBXEGvPNEL3R8hB3=C5`@=SYgAju1 z!)UBr{2~=~xa{b8>x2@C7weRAEuatC)3pkRhT#pMPTpSbA|tan%U7NGMvzmF?c!V8 z=pEWxbdXbTAGtWTyI?Fml%lEr-^AE}w#l(<7OIw;ctw}imYax&vR4UYNJZK6P7ZOd zP87XfhnUHxCUHhM@b*NbTi#(-8|wcv%3BGNs#zRCVV(W?1Qj6^PPQa<{yaBwZ`+<`w|;rqUY_C z&AeyKwwf*q#OW-F()lir=T^<^wjK65Lif$puuU5+tk$;e_EJ;Lu+pH>=-8=PDhkBg z8cWt%@$Sc#C6F$Vd+0507;{OOyT7Hs%nKS88q-W!$f~9*WGBpHGgNp}=C*7!RiZ5s zn1L_DbKF@B8kwhDiLKRB@lsXVVLK|ph=w%_`#owlf@s@V(pa`GY$8h%;-#h@TsO|Y8V=n@*!Rog7<7Cid%apR|x zOjhHCyfbIt%+*PCveTEcuiDi%Wx;O;+K=W?OFUV%)%~6;gl?<0%)?snDDqIvkHF{ zyI02)+lI9ov42^hL>ZRrh*HhjF9B$A@=H94iaBESBF=eC_KT$8A@uB^6$~o?3Wm5t1OIaqF^~><2?4e3c&)@wKn9bD? zoeCs;H>b8DL^F&>Xw-xjZEUFFTv>JD^O#1E#)CMBaG4DX9bD(Wtc8Rzq}9soQ8`jf zeSnHOL}<+WVSKp4kkq&?SbETjq6yr@4%SAqOG=9E(3YeLG9dtV+8vmzq+6PFPk{L; z(&d++iu=^F%b+ea$i2UeTC{R*0Isk;vFK!no<;L+(`y`3&H-~VTdKROkdyowo1iqR zbVW(3`+(PQ2>TKY>N!jGmGo7oeoB8O|P_!Ic@ zZ^;3dnuXo;WJ?S+)%P>{Hcg!Jz#2SI(s&dY4QAy_vRlmOh)QHvs_7c&zkJCmJGVvV zX;Mtb>QE+xp`KyciG$Cn*0?AK%-a|=o!+7x&&yzHQOS>8=B*R=niSnta^Pxp1`=md z#;$pS$4WCT?mbiCYU?FcHGZ#)kHVJTTBt^%XE(Q};aaO=Zik0UgLcc0I(tUpt(>|& zcxB_|fxCF7>&~5eJ=Dpn&5Aj{A^cV^^}(7w#p;HG&Q)EaN~~EqrE1qKrMAc&WXIE;>@<&)5;gD2?={Xf@Mvn@OJKw=8Mgn z!JUFMwD+s==JpjhroT&d{$kQAy%+d`a*XxDEVxy3`NHzmITrE`o!;5ClXNPb4t*8P zzAivdr{j_v!=9!^?T3y?gzmqDWX6mkzhIzJ-3S{T5bcCFMr&RPDryMcdwbBuZbsgN zGrp@^i?rcfN7v0NKGzDPGE#4yszxu=I_`MI%Z|10nFjU-UjQXXA?k8Pk|OE<(?ae) zE%vG#eZAlj*E7_3dx#Zz4kMLj>H^;}33UAankJiDy5ZvEhrjr`!9eMD8COp}U*hP+ zF}KIYx@pkccIgyxFm#LNw~G&`;o&5)2`5aogs`1~7cMZQ7zj!%L4E`2yzlQN6REX20&O<9 zKV6fyr)TScJPPzNTC2gL+0x#=u>(({{D7j)c-%tvqls3#Y?Z1m zV5WUE)zdJ{$p>yX;^P!UcXP?UD~YM;IRa#Rs5~l+*$&nO(;Ers`G=0D!twR(0GF@c zHl9E5DQI}Oz74n zfKP>&$q0($T4y$6w(p=ERAFh+>n%iaeRA%!T%<^+pg?M)@ucY<&59$x9M#n+V&>}=nO9wCV{O~lg&v#+jcUj(tQ z`0u1YH)-`U$15a{pBkGyPL0THv1P|4e@pf@3IBZS4dVJPo#H>pWq%Lr0YS-SeWash z8R7=jb28KPMI|_lo#GEO|5B?N_e``H*23{~a!AmUJ+fb4HX-%QI@lSEUxKlGV7z7Q zSKw@-TR>@1RL%w{x}dW#k1NgW+q4yt2Xf1J62Bx*O^WG8OJ|FqI4&@d3_o8Id@*)4 zYrk=>@!wv~mh7YWv*bZhxqSmFh2Xq)o=m;%n$I?GSz49l1$xRpPu_^N(vZ>*>Z<04 z2+rP70oM=NDysd!@fQdM2OcyT?3T^Eb@lIC-UG=Bw{BjQ&P`KCv$AcJ;?`vdZ4){d z&gkoUK{$!$$K`3*O-jyM1~p-7T*qb)Ys>Myt^;#1&a%O@x8A+E>! zY8=eD`ZG)LVagDLBeHg>=atOG?Kr%h4B%E6m@J^C+U|y)XX@f z8oyJDW|9g=<#f<{JRr{y#~euMnv)`7j=%cHWLc}ngjq~7k**6%4u>Px&W%4D94(r* z+akunK}O0DC2A%Xo9jyF;DobX?!1I(7%}@7F>i%&nk*LMO)bMGg2N+1iqtg+r(70q zF5{Msgsm5GS7DT`kBsjMvOrkx&|EU!{{~gL4d2MWrAT=KBQ-^zQCUq{5PD1orxlIL zq;CvlWx#f1NWvh`hg011I%?T_s!e38l*lWVt|~z-PO4~~1g)SrJ|>*tXh=QfXT)%( z+ex+inPvD&O4Ur;JGz>$sUOnWdpSLcm1X%aQDw4{dB!cnj`^muI$CJ2%p&-kULVCE z>$eMR36kN$wCPR+OFDM3-U(VOrp9k3)lI&YVFqd;Kpz~K)@Fa&FRw}L(SoD z9B4a+hQzZT-BnVltst&=kq6Y(f^S4hIGNKYBgMxGJ^;2yrO}P3;r)(-I-CZ)26Y6? z&rzHI_1GCvGkgy-t1E;r^3Le30|%$ebDRu2+gdLG)r=A~Qz`}~&L@aGJ{}vVs_GE* zVUjFnzHiXfKQbpv&bR&}l2bzIjAooB)=-XNcYmrGmBh(&iu@o!^hn0^#}m2yZZUK8 zufVm7Gq0y`Mj;9b>`c?&PZkU0j4>IL=UL&-Lp3j&47B5pAW4JceG{!XCA)kT<%2nqCxj<)uy6XR_uws~>_MEKPOpAQ!H zkn>FKh)<9DwwS*|Y(q?$^N!6(51O0 z^JM~Ax{AI1Oj$fs-S5d4T7Z_i1?{%0SsIuQ&r8#(JA=2iLcTN+?>wOL532%&dMYkT z*T5xepC+V6zxhS@vNbMoi|i)=rpli@R9~P!39tWbSSb904ekv7D#quKbgFEMTb48P zuq(VJ+&L8aWU(_FCD$3^uD!YM%O^K(dvy~Wm2hUuh6bD|#(I39Xt>N1Y{ZqXL`Fg6 zKQ?T2htHN!(Bx;tV2bfTtIj7e)liN-29s1kew>v(D^@)#v;}C4-G=7x#;-dM4yRWm zyY`cS21ulzMK{PoaQ6xChEZ}o_#}X-o}<&0)$1#3we?+QeLt;aVCjeA)hn!}UaKt< zat1fHEx13y-rXNMvpUUmCVzocPmN~-Y4(YJvQ#db)4|%B!rBsgAe+*yor~}FrNH08 z3V!97S}D7d$zbSD{$z;@IYMxM6aHdypIuS*pr_U6;#Y!_?0i|&yU*@16l z*dcMqDQgfNBf}?quiu4e>H)yTVfsp#f+Du0@=Kc41QockXkCkvu>FBd6Q+@FL!(Yx z2`YuX#eMEiLEDhp+9uFqME_E^faV&~9qjBHJkIp~%$x^bN=N)K@kvSVEMdDuzA0sn z88CBG?`RX1@#hQNd`o^V{37)!w|nA)QfiYBE^m=yQKv-fQF+UCMcuEe1d4BH7$?>b zJl-r9@0^Ie=)guO1vOd=i$_4sz>y3x^R7n4ED!5oXL3@5**h(xr%Hv)_gILarO46q+MaDOF%ChaymKoI6JU5Pg;7#2n9-18|S1;AK+ zgsn6;k6-%!QD>D?cFy}8F;r@z8H9xN1jsOBw2vQONVqBVEbkiNUqgw~*!^##ht>w0 zUOykwH=$LwX2j&nLy=@{hr)2O&-wm-NyjW7n~Zs9UlH;P7iP3 zI}S(r0YFVYacnKH(+{*)Tbw)@;6>%=&Th=+Z6NHo_tR|JCI8TJiXv2N7ei7M^Q+RM z?9o`meH$5Yi;@9XaNR#jIK^&{N|DYNNbtdb)XW1Lv2k{E>;?F`#Pq|&_;gm~&~Zc9 zf+6ZE%{x4|{YdtE?a^gKyzr}dA>OxQv+pq|@IXL%WS0CiX!V zm$fCePA%lU{%pTKD7|5NJHeXg=I0jL@$tOF@K*MI$)f?om)D63K*M|r`gb9edD1~Y zc|w7N)Y%do7=0{RC|AziW7#am$)9jciRJ?IWl9PE{G3U+$%FcyKs_0Cgq`=K3@ttV z9g;M!3z~f_?P%y3-ph%vBMeS@p7P&Ea8M@97+%XEj*(1E6vHj==d zjsoviB>j^$_^OI_DEPvFkVo(BGRo%cJeD){6Uckei=~1}>sp299|IRjhXe)%?uP0I zF5+>?0#Ye}T^Y$u_rc4=lPcq4K^D(TZG-w30-YiEM=dcK+4#o*>lJ8&JLi+3UcpZk z!^?95S^C0ja^jwP`|{<+3cBVog$(mRdQmadS+Vh~z zS@|P}=|z3P6uS+&@QsMp0no9Od&27O&14zHXGAOEy zh~OKpymK5C%;LLb467@KgIiVwYbYd6wFxI{0-~MOGfTq$nBTB!{SrWmL9Hs}C&l&l#m?s*{tA?BHS4mVKHAVMqm63H<|c5n0~k)-kbg zXidai&9ZUy0~WFYYKT;oe~rytRk?)r8bptITsWj(@HLI;@=v5|XUnSls7$uaxFRL+ zRVMGuL3w}NbV1`^=Pw*0?>bm8+xfeY(1PikW*PB>>Tq(FR`91N0c2&>lL2sZo5=VD zQY{>7dh_TX98L2)n{2OV=T10~*YzX27i2Q7W86M4$?gZIXZaBq#sA*{PH8){|GUi;oM>e?ua7eF4WFuFYZSG| zze?srg|5Ti8Og{O zeFxuw9!U+zhyk?@w zjsA6(oKD=Ka;A>Ca)oPORxK+kxH#O@zhC!!XS4@=swnuMk>t+JmLmFiE^1aX3f<)D@`%K0FGK^gg1a1j>zi z2KhV>sjU7AX3F$SEqrXSC}fRx64GDoc%!u2Yag68Lw@w9v;xOONf@o)Lc|Uh3<21ctTYu-mFZuHk*+R{GjXHIGq3p)tFtQp%TYqD=j1&y)>@zxoxUJ!G@ zgI0XKmP6MNzw>nRxK$-Gbzs}dyfFzt>#5;f6oR27ql!%+{tr+(`(>%51|k`ML} zY4eE)Lxq|JMas(;JibNQds1bUB&r}ydMQXBY4x(^&fY_&LlQC)3hylc$~8&~|06-D z#T+%66rYbHX%^KuqJED_wuGB+=h`nWA!>1n0)3wZrBG3%`b^Ozv6__dNa@%V14|!D zQ?o$z5u0^8`giv%qE!BzZ!3j;BlDlJDk)h@9{nSQeEk!z9RGW) z${RSF3phEM*ce*>Xdp}585vj$|40=&S{S-GTiE?Op*vY&Lvr9}BO$XWy80IF+6@%n z5*2ueT_g@ofP#u5pxb7n*fv^Xtt7&?SRc{*2Ka-*!BuOpf}neHGCiHy$@Ka1^Dint z;DkmIL$-e)rj4o2WQV%Gy;Xg(_Bh#qeOsTM2f@KEe~4kJ8kNLQ+;(!j^bgJMcNhvklP5Z6I+9Fq@c&D~8Fb-4rmDT!MB5QC{Dsb;BharP*O;SF4& zc$wj-7Oep7#$WZN!1nznc@Vb<_Dn%ga-O#J(l=OGB`dy=Sy&$(5-n3zzu%d7E#^8`T@}V+5B;PP8J14#4cCPw-SQTdGa2gWL0*zKM z#DfSXs_iWOMt)0*+Y>Lkd=LlyoHjublNLefhKBv@JoC>P7N1_#> zv=mLWe96%EY;!ZGSQDbZWb#;tzqAGgx~uk+-$+2_8U`!ypbwXl z^2E-FkM1?lY@yt8=J3%QK+xaZ6ok=-y%=KXCD^0r!5vUneW>95PzCkOPO*t}p$;-> ze5j-BLT_;)cZQzR2CEsm@rU7GZfFtdp*a|g4wDr%8?2QkIGasRfDWT-Dvy*U{?IHT z*}wGnzdlSptl#ZF^sf)KT|BJs&kLG91^A6ls{CzFprZ6-Y!V0Xysh%9p%iMd7HLsS zN+^Un$tDV)T@i!v?3o0Fsx2qI(AX_$dDkBzQ@fRM%n zRXk6hb9Py#JXUs+7)w@eo;g%QQ95Yq!K_d=z{0dGS+pToEI6=Bo8+{k$7&Z zo4>PH(`ce8E-Ps&uv`NQ;U$%t;w~|@E3WVOCi~R4oj5wP?%<*1C%}Jq%a^q~T7u>K zML5AKfQDv6>PuT`{SrKHRAF+^&edg6+5R_#H?Lz3iGoWo#PCEd0DS;)2U({{X#zU^ zw_xv{4x7|t!S)>44J;KfA|DC?;uQ($l+5Vp7oeqf7{GBF9356nx|&B~gs+@N^gSdd zvb*>&W)|u#F{Z_b`f#GVtQ`pYv3#||N{xj1NgB<#=Odt6{eB%#9RLt5v zIi|0u70`#ai}9fJjKv7dE!9ZrOIX!3{$z_K5FBd-Kp-&e4(J$LD-)NMTp^_pB`RT; zftVVlK2g@+1Ahv2$D){@Y#cL#dUj9*&%#6 zd2m9{1NYp>)6=oAvqdCn5#cx{AJ%S8skUgMglu2*IAtd+z1>B&`MuEAS(D(<6X#Lj z?f4CFx$)M&$=7*>9v1ER4b6!SIz-m0e{o0BfkySREchp?WdVPpQCh!q$t>?rL!&Jg zd#heM;&~A}VEm8Dvy&P|J*eAV&w!&Nx6HFV&B8jJFVTmgLaswn!cx$&%JbTsloz!3 zMEz1d`k==`Ueub_JAy_&`!ogbwx27^ZXgFNAbx=g_I~5nO^r)}&myw~+yY*cJl4$I znNJ32M&K=0(2Dj_>@39`3=FX!v3nZHno_@q^!y}%(yw0PqOo=);6Y@&ylVe>nMOZ~ zd>j#QQSBn3oaWd;qy$&5(5H$Ayi)0haAYO6TH>FR?rhqHmNOO+(})NB zLI@B@v0)eq!ug`>G<@htRlp3n!EpU|n+G+AvXFrWSUsLMBfL*ZB`CRsIVHNTR&b?K zxBgsN0BjfB>UVcJ|x%=-zb%OV7lmZc& zxiupadZVF7)6QuhoY;;FK2b*qL0J-Rn-8!X4ZY$-ZSUXV5DFd7`T41c(#lAeLMoeT z4%g655v@7AqT!i@)Edt5JMbN(=Q-6{=L4iG8RA%}w;&pKmtWvI4?G9pVRp|RTw`g0 zD5c12B&A2&P6Ng~8WM2eIW=wxd?r7A*N+&!Be7PX3s|7~z=APxm=A?5 zt>xB4WG|*Td@VX{Rs)PV0|yK`oI3^xn(4c_j&vgxk_Y3o(-`_5o`V zRTghg6%l@(qodXN;dB#+OKJEEvhfcnc#BeO2|E(5df-!fKDZ!%9!^BJ_4)9P+9Dq5 zK1=(v?KmIp34r?z{NEWnLB3Px{XYwy-akun4F7xTRr2^zeYW{gcK9)>aJDdU5;w5@ zak=<+-PLH-|04pelTb%ULpuuuJC7DgyT@D|p{!V!0v3KpDnRjANN12q6SUR3mb9<- z>2r~IApQGhstZ!3*?5V z8#)hJ0TdZg0M-BK#nGFP>$i=qk82DO z7h;Ft!D5E15OgW)&%lej*?^1~2=*Z5$2VX>V{x8SC+{i10BbtUk9@I#Vi&hX)q

Q!LwySI{Bnv%Sm)yh{^sSVJ8&h_D-BJ_YZe5eCaAWU9b$O2c z$T|{vWVRtOL!xC0DTc(Qbe`ItNtt5hr<)VijD0{U;T#bUEp381_y`%ZIav?kuYG{iyYdEBPW=*xNSc;Rlt6~F4M`5G+VtOjc z*0qGzCb@gME5udTjJA-9O<&TWd~}ysBd(eVT1-H82-doyH9RST)|+Pb{o*;$j9Tjs zhU!IlsPsj8=(x3bAKJTopW3^6AKROHR^7wZ185wJGVhA~hEc|LP;k7NEz-@4p5o}F z`AD6naG3(n=NF9HTH81=F+Q|JOz$7wm9I<+#BSmB@o_cLt2GkW9|?7mM;r!JZp89l zbo!Hp8=n!XH1{GwaDU+k)pGp`C|cXkCU5%vcH)+v@0eK>%7gWxmuMu9YLlChA|_D@ zi#5zovN_!a-0?~pUV-Rj*1P)KwdU-LguR>YM&*Nen+ln8Q$?WFCJg%DY%K}2!!1FE zDv-A%Cbwo^p(lzac&_TZ-l#9kq`mhLcY3h9ZTUVCM(Ad&=EriQY5{jJv<5K&g|*Lk zgV%ILnf1%8V2B0E&;Sp4sYbYOvvMebLwYwzkRQ#F8GpTQq#uv=J`uaSJ34OWITeSGo6+-8Xw znCk*n{kdDEi)Hi&u^)~cs@iyCkFWB2SWZU|Uc%^43ZIZQ-vWNExCCtDWjqHs;;tWf$v{}0{p0Rvxkq``)*>+Akq%|Na zA`@~-Vfe|+(AIlqru+7Ceh4nsVmO9p9jc8}HX^W&ViBDXT+uXbT#R#idPn&L>+#b6 zflC-4C5-X;kUnR~L>PSLh*gvL68}RBsu#2l`s_9KjUWRhiqF`j)`y`2`YU(>3bdBj z?>iyjEhe-~$^I5!nn%B6Wh+I`FvLNvauve~eX<+Ipl&04 zT}};W&1a3%W?dJ2=N#0t?e+aK+%t}5q%jSLvp3jZ%?&F}nOOWr>+{GFIa%wO_2`et z=JzoRR~}iKuuR+azPI8;Gf9)z3kyA4EIOSl!sRR$DlW}0>&?GbgPojmjmnln;cTqCt=ADbE zZ8GAnoM+S1(5$i8^O4t`ue;vO4i}z0wz-QEIVe5_u03;}-!G1NyY8;h^}y;tzY}i5 zqQr#Ur3Fy8sSa$Q0ys+f`!`+>9WbvU_I`Sj;$4{S>O3?#inLHCrtLy~!s#WXV=oVP zeE93*Nc`PBi4q@%Ao$x4lw9vLHM!6mn3-b_cebF|n-2vt-zYVF_&sDE--J-P;2WHo z+@n2areE0o$LjvjlV2X7ZU@j+`{*8zq`JR3gKF#EW|#+{nMyo-a>nFFTg&vhyT=b} zDa8+v0(Dgx0yRL@ZXOYIlVSZ0|MFizy0VPW8;AfA5|pe!#j zX}Py^8fl5SyS4g1WSKKtnyP+_PoOwMMwu`(i@Z)diJp~U54*-miOchy7Z35eL>^M z4p<-aIxH4VUZgS783@H%M7P9hX>t{|RU7$n4T(brCG#h9e9p! z+o`i;EGGq3&pF;~5V~eBD}lC)>if$w%Vf}AFxGqO88|ApfHf&Bvu+xdG)@vuF}Yvk z)o;~k-%+0K0g+L`Wala!$=ZV|z$e%>f0%XoLib%)!R^RoS+{!#X?h-6uu zF&&KxORdZU&EwQFITIRLo(7TA3W}y6X{?Y%y2j0It!ekU#<)$qghZtpcS>L3uh`Uj z7GY;6f$9qKynP#oS3$$a{p^{D+0oJQ71`1?OAn_m8)UGZmj3l*ZI)`V-a>MKGGFG< z&^jg#Ok%(hhm>hSrZ5;Qga4u(?^i>GiW_j9%_7M>j(^|Om$#{k+^*ULnEgzW_1gCICtAD^WpC`A z{9&DXkG#01Xo)U$OC(L5Y$DQ|Q4C6CjUKk1UkPj$nXH##J{c8e#K|&{mA*;b$r0E4 zUNo0jthwA(c&N1l=PEe8Rw_8cEl|-eya9z&H3#n`B$t#+aJ03RFMzrV@gowbe8v(c zIFM60^0&lCFO10NU4w@|61xiZ4CVXeaKjd;d?sv52XM*lS8XiVjgWpRB;&U_C0g+`6B5V&w|O6B*_q zsATxL!M}+$He)1eOWECce#eS@2n^xhlB4<_Nn?yCVEQWDs(r`|@2GqLe<#(|&P0U? z$7V5IgpWf09uIf_RazRwC?qEqRaHyL?iiS05UiGesJy%^>-C{{ypTBI&B0-iUYhk> zIk<5xpsuV@g|z(AZD+C-;A!fTG=df1=<%nxy(a(IS+U{ME4ZbDEBtcD_3V=icT6*_ z)>|J?>&6%nvHhZERBtjK+s4xnut*@>GAmA5m*OTp$!^CHTr}vM4n(X1Q*;{e-Rd2BCF-u@1ZGm z!S8hJ6L=Gl4T_SDa7Xx|-{4mxveJg=ctf`BJ*fy!yF6Dz&?w(Q_6B}WQVtNI!BVBC zKfX<>7vd6C96}XAQmF-Jd?1Q4eTfRB3q7hCh0f!(JkdWT5<{iAE#dKy*Jxq&3a1@~ z8C||Dn2mFNyrUV|<-)C^_y7@8c2Fz+2jrae9deBDu;U}tJ{^xAdxCD248(k;dCJ%o z`y3sADe>U%suxwwv~8A1+R$VB=Q?%U?4joI$um;aH+eCrBqpn- z%79D_7rb;R-;-9RTrwi9dPlg8&@tfWhhZ(Vx&1PQ+6(huX`;M9x~LrW~~#3{j0Bh2kDU$}@!fFQej4VGkJv?M4rU^x!RU zEwhu$!CA_iDjFjrJa`aocySDX16?~;+wgav;}Zut6Mg%C4>}8FL?8)Kgwc(Qlj{@#2Pt0?G`$h7P#M+qoXtlV@d}%c&OzO+QYKK`kyXaK{U(O^2DyIXCZlNQjt0^8~8JzNGrIxhj}}M z&~QZlbx%t;MJ(Vux;2tgNKGlAqphLq%pd}JG9uoVHUo?|hN{pLQ6Em%r*+7t^<);X zm~6=qChlNAVXNN*Sow->*4;}T;l;D1I-5T{Bif@4_}=>l`tK;qqDdt5zvisCKhMAH z#r}`)7VW?LZqfdmXQ%zo5bJ00{Xb9^YKrk0Nf|oIW*K@(=`o2Vndz}ZDyk{!u}PVx zzd--+_WC*U{~DH3{?GI64IB+@On&@9X>EUAo&L+G{L^dozaI4C3G#2wr~hseW@K&g zKWs{uHu-9Je!3;4pE>eBltKUXb^*hG8I&413)$J&{D4N%7PcloU6bn%jPxJyQL?g* z9g+YFFEDiE`8rW^laCNzQmi7CTnPfwyg3VDHRAl>h=In6jeaVOP@!-CP60j3+#vpL zEYmh_oP0{-gTe7Or`L6x)6w?77QVi~jD8lWN@3RHcm80iV%M1A!+Y6iHM)05iC64tb$X2lV_%Txk@0l^hZqi^%Z?#- zE;LE0uFx)R08_S-#(wC=dS&}vj6P4>5ZWjhthP=*Hht&TdLtKDR;rXEX4*z0h74FA zMCINqrh3Vq;s%3MC1YL`{WjIAPkVL#3rj^9Pj9Ss7>7duy!9H0vYF%>1jh)EPqvlr6h%R%CxDsk| z!BACz7E%j?bm=pH6Eaw{+suniuY7C9Ut~1cWfOX9KW9=H><&kQlinPV3h9R>3nJvK z4L9(DRM=x;R&d#a@oFY7mB|m8h4692U5eYfcw|QKwqRsshN(q^v$4$)HgPpAJDJ`I zkqjq(8Cd!K!+wCd=d@w%~e$=gdUgD&wj$LQ1r>-E=O@c ze+Z$x{>6(JA-fNVr)X;*)40Eym1TtUZI1Pwwx1hUi+G1Jlk~vCYeXMNYtr)1?qwyg zsX_e*$h?380O00ou?0R@7-Fc59o$UvyVs4cUbujHUA>sH!}L54>`e` zHUx#Q+Hn&Og#YVOuo*niy*GU3rH;%f``nk#NN5-xrZ34NeH$l`4@t);4(+0|Z#I>Y z)~Kzs#exIAaf--65L0UHT_SvV8O2WYeD>Mq^Y6L!Xu8%vnpofG@w!}R7M28?i1*T&zp3X4^OMCY6(Dg<-! zXmcGQrRgHXGYre7GfTJ)rhl|rs%abKT_Nt24_Q``XH{88NVPW+`x4ZdrMuO0iZ0g` z%p}y};~T5gbb9SeL8BSc`SO#ixC$@QhXxZ=B}L`tP}&k?1oSPS=4%{UOHe0<_XWln zwbl5cn(j-qK`)vGHY5B5C|QZd5)W7c@{bNVXqJ!!n$^ufc?N9C-BF2QK1(kv++h!>$QbAjq)_b$$PcJdV+F7hz0Hu@ zqj+}m0qn{t^tD3DfBb~0B36|Q`bs*xs|$i^G4uNUEBl4g;op-;Wl~iThgga?+dL7s zUP(8lMO?g{GcYpDS{NM!UA8Hco?#}eNEioRBHy4`mq!Pd-9@-97|k$hpEX>xoX+dY zDr$wfm^P&}Wu{!%?)U_(%Mn79$(ywvu*kJ9r4u|MyYLI_67U7%6Gd_vb##Nerf@>& z8W11z$$~xEZt$dPG}+*IZky+os5Ju2eRi;1=rUEeIn>t-AzC_IGM-IXWK3^6QNU+2pe=MBn4I*R@A%-iLDCOHTE-O^wo$sL_h{dcPl=^muAQb`_BRm};=cy{qSkui;`WSsj9%c^+bIDQ z0`_?KX0<-=o!t{u(Ln)v>%VGL z0pC=GB7*AQ?N7N{ut*a%MH-tdtNmNC+Yf$|KS)BW(gQJ*z$d{+{j?(e&hgTy^2|AR9vx1Xre2fagGv0YXWqtNkg*v%40v?BJBt|f9wX5 z{QTlCM}b-0{mV?IG>TW_BdviUKhtosrBqdfq&Frdz>cF~yK{P@(w{Vr7z2qKFwLhc zQuogKO@~YwyS9%+d-zD7mJG~@?EFJLSn!a&mhE5$_4xBl&6QHMzL?CdzEnC~C3$X@ zvY!{_GR06ep5;<#cKCSJ%srxX=+pn?ywDwtJ2{TV;0DKBO2t++B(tIO4)Wh`rD13P z4fE$#%zkd=UzOB74gi=-*CuID&Z3zI^-`4U^S?dHxK8fP*;fE|a(KYMgMUo`THIS1f!*6dOI2 zFjC3O=-AL`6=9pp;`CYPTdVX z8(*?V&%QoipuH0>WKlL8A*zTKckD!paN@~hh zmXzm~qZhMGVdQGd=AG8&20HW0RGV8X{$9LldFZYm zE?}`Q3i?xJRz43S?VFMmqRyvWaS#(~Lempg9nTM$EFDP(Gzx#$r)W&lpFKqcAoJh-AxEw$-bjW>`_+gEi z2w`99#UbFZGiQjS8kj~@PGqpsPX`T{YOj`CaEqTFag;$jY z8_{Wzz>HXx&G*Dx<5skhpETxIdhKH?DtY@b9l8$l?UkM#J-Snmts7bd7xayKTFJ(u zyAT&@6cAYcs{PBfpqZa%sxhJ5nSZBPji?Zlf&}#L?t)vC4X5VLp%~fz2Sx<*oN<7` z?ge=k<=X7r<~F7Tvp9#HB{!mA!QWBOf%EiSJ6KIF8QZNjg&x~-%e*tflL(ji_S^sO ztmib1rp09uon}RcsFi#k)oLs@$?vs(i>5k3YN%$T(5Or(TZ5JW9mA6mIMD08=749$ z!d+l*iu{Il7^Yu}H;lgw=En1sJpCKPSqTCHy4(f&NPelr31^*l%KHq^QE>z>Ks_bH zjbD?({~8Din7IvZeJ>8Ey=e;I?thpzD=zE5UHeO|neioJwG;IyLk?xOz(yO&0DTU~ z^#)xcs|s>Flgmp;SmYJ4g(|HMu3v7#;c*Aa8iF#UZo7CvDq4>8#qLJ|YdZ!AsH%^_7N1IQjCro

K7UpUK$>l@ zw`1S}(D?mUXu_C{wupRS-jiX~w=Uqqhf|Vb3Cm9L=T+w91Cu^ z*&Ty%sN?x*h~mJc4g~k{xD4ZmF%FXZNC;oVDwLZ_WvrnzY|{v8hc1nmx4^}Z;yriXsAf+Lp+OFLbR!&Ox?xABwl zu8w&|5pCxmu#$?Cv2_-Vghl2LZ6m7}VLEfR5o2Ou$x02uA-%QB2$c(c1rH3R9hesc zfpn#oqpbKuVsdfV#cv@5pV4^f_!WS+F>SV6N0JQ9E!T90EX((_{bSSFv9ld%I0&}9 zH&Jd4MEX1e0iqDtq~h?DBrxQX1iI0lIs<|kB$Yrh&cpeK0-^K%=FBsCBT46@h#yi!AyDq1V(#V}^;{{V*@T4WJ&U-NTq43w=|K>z8%pr_nC>%C(Wa_l78Ufib$r8Od)IIN=u>417 z`Hl{9A$mI5A(;+-Q&$F&h-@;NR>Z<2U;Y21>>Z;s@0V@SbkMQQj%_;~+qTuQ?c|AV zcWm3XZQHhP&R%QWarS%mJ!9R^&!_)*s(v+VR@I#QrAT}`17Y+l<`b-nvmDNW`De%y zrwTZ9EJrj1AFA>B`1jYDow}~*dfPs}IZMO3=a{Fy#IOILc8F0;JS4x(k-NSpbN@qM z`@aE_e}5{!$v3+qVs7u?sOV(y@1Os*Fgu`fCW9=G@F_#VQ%xf$hj0~wnnP0$hFI+@ zkQj~v#V>xn)u??YutKsX>pxKCl^p!C-o?+9;!Nug^ z{rP!|+KsP5%uF;ZCa5F;O^9TGac=M|=V z_H(PfkV1rz4jl?gJ(ArXMyWT4y(86d3`$iI4^l9`vLdZkzpznSd5Ikfrs8qcSy&>z zTIZgWZGXw0n9ibQxYWE@gI0(3#KA-dAdPcsL_|hg2@~C!VZDM}5;v_Nykfq!*@*Zf zE_wVgx82GMDryKO{U{D>vSzSc%B~|cjDQrt5BN=Ugpsf8H8f1lR4SGo#hCuXPL;QQ z#~b?C4MoepT3X`qdW2dNn& zo8)K}%Lpu>0tQei+{>*VGErz|qjbK#9 zvtd8rcHplw%YyQCKR{kyo6fgg!)6tHUYT(L>B7er5)41iG`j$qe*kSh$fY!PehLcD zWeKZHn<492B34*JUQh=CY1R~jT9Jt=k=jCU2=SL&&y5QI2uAG2?L8qd2U(^AW#{(x zThSy=C#>k+QMo^7caQcpU?Qn}j-`s?1vXuzG#j8(A+RUAY})F@=r&F(8nI&HspAy4 z4>(M>hI9c7?DCW8rw6|23?qQMSq?*Vx?v30U%luBo)B-k2mkL)Ljk5xUha3pK>EEj z@(;tH|M@xkuN?gsz;*bygizwYR!6=(Xgcg^>WlGtRYCozY<rFX2E>kaZo)O<^J7a`MX8Pf`gBd4vrtD|qKn&B)C&wp0O-x*@-|m*0egT=-t@%dD zgP2D+#WPptnc;_ugD6%zN}Z+X4=c61XNLb7L1gWd8;NHrBXwJ7s0ce#lWnnFUMTR& z1_R9Fin4!d17d4jpKcfh?MKRxxQk$@)*hradH2$3)nyXep5Z;B z?yX+-Bd=TqO2!11?MDtG0n(*T^!CIiF@ZQymqq1wPM_X$Iu9-P=^}v7npvvPBu!d$ z7K?@CsA8H38+zjA@{;{kG)#AHME>Ix<711_iQ@WWMObXyVO)a&^qE1GqpP47Q|_AG zP`(AD&r!V^MXQ^e+*n5~Lp9!B+#y3#f8J^5!iC@3Y@P`;FoUH{G*pj*q7MVV)29+j z>BC`a|1@U_v%%o9VH_HsSnM`jZ-&CDvbiqDg)tQEnV>b%Ptm)T|1?TrpIl)Y$LnG_ zzKi5j2Fx^K^PG1=*?GhK;$(UCF-tM~^=Z*+Wp{FSuy7iHt9#4n(sUuHK??@v+6*|10Csdnyg9hAsC5_OrSL;jVkLlf zHXIPukLqbhs~-*oa^gqgvtpgTk_7GypwH><53riYYL*M=Q@F-yEPLqQ&1Sc zZB%w}T~RO|#jFjMWcKMZccxm-SL)s_ig?OC?y_~gLFj{n8D$J_Kw%{r0oB8?@dWzn zB528d-wUBQzrrSSLq?fR!K%59Zv9J4yCQhhDGwhptpA5O5U?Hjqt>8nOD zi{)0CI|&Gu%zunGI*XFZh(ix)q${jT8wnnzbBMPYVJc4HX*9d^mz|21$=R$J$(y7V zo0dxdbX3N#=F$zjstTf*t8vL)2*{XH!+<2IJ1VVFa67|{?LP&P41h$2i2;?N~RA30LV`BsUcj zfO9#Pg1$t}7zpv#&)8`mis3~o+P(DxOMgz-V*(?wWaxi?R=NhtW}<#^Z?(BhSwyar zG|A#Q7wh4OfK<|DAcl9THc-W4*>J4nTevsD%dkj`U~wSUCh15?_N@uMdF^Kw+{agk zJ`im^wDqj`Ev)W3k3stasP`88-M0ZBs7;B6{-tSm3>I@_e-QfT?7|n0D~0RRqDb^G zyHb=is;IwuQ&ITzL4KsP@Z`b$d%B0Wuhioo1CWttW8yhsER1ZUZzA{F*K=wmi-sb#Ju+j z-l@In^IKnb{bQG}Ps>+Vu_W#grNKNGto+yjA)?>0?~X`4I3T@5G1)RqGUZuP^NJCq&^HykuYtMDD8qq+l8RcZNJsvN(10{ zQ1$XcGt}QH-U^WU!-wRR1d--{B$%vY{JLWIV%P4-KQuxxDeJaF#{eu&&r!3Qu{w}0f--8^H|KwE>)ORrcR+2Qf zb})DRcH>k0zWK8@{RX}NYvTF;E~phK{+F;MkIP$)T$93Ba2R2TvKc>`D??#mv9wg$ zd~|-`Qx5LwwsZ2hb*Rt4S9dsF%Cny5<1fscy~)d;0m2r$f=83<->c~!GNyb!U)PA; zq^!`@@)UaG)Ew(9V?5ZBq#c%dCWZrplmuM`o~TyHjAIMh0*#1{B>K4po-dx$Tk-Cq z=WZDkP5x2W&Os`N8KiYHRH#UY*n|nvd(U>yO=MFI-2BEp?x@=N<~CbLJBf6P)}vLS?xJXYJ2^<3KJUdrwKnJnTp{ zjIi|R=L7rn9b*D#Xxr4*R<3T5AuOS+#U8hNlfo&^9JO{VbH!v9^JbK=TCGR-5EWR@ zN8T-_I|&@A}(hKeL4_*eb!1G8p~&_Im8|wc>Cdir+gg90n1dw?QaXcx6Op_W1r=axRw>4;rM*UOpT#Eb9xU1IiWo@h?|5uP zka>-XW0Ikp@dIe;MN8B01a7+5V@h3WN{J=HJ*pe0uwQ3S&MyWFni47X32Q7SyCTNQ z+sR!_9IZa5!>f&V$`q!%H8ci!a|RMx5}5MA_kr+bhtQy{-^)(hCVa@I!^TV4RBi zAFa!Nsi3y37I5EK;0cqu|9MRj<^r&h1lF}u0KpKQD^5Y+LvFEwM zLU@@v4_Na#Axy6tn3P%sD^5P#<7F;sd$f4a7LBMk zGU^RZHBcxSA%kCx*eH&wgA?Qwazm8>9SCSz_!;MqY-QX<1@p$*T8lc?@`ikEqJ>#w zcG``^CoFMAhdEXT9qt47g0IZkaU)4R7wkGs^Ax}usqJ5HfDYAV$!=6?>J6+Ha1I<5 z|6=9soU4>E))tW$<#>F ziZ$6>KJf0bPfbx_)7-}tMINlc=}|H+$uX)mhC6-Hz+XZxsKd^b?RFB6et}O#+>Wmw9Ec9) z{q}XFWp{3@qmyK*Jvzpyqv57LIR;hPXKsrh{G?&dRjF%Zt5&m20Ll?OyfUYC3WRn{cgQ?^V~UAv+5 z&_m#&nIwffgX1*Z2#5^Kl4DbE#NrD&Hi4|7SPqZ}(>_+JMz=s|k77aEL}<=0Zfb)a z%F(*L3zCA<=xO)2U3B|pcTqDbBoFp>QyAEU(jMu8(jLA61-H!ucI804+B!$E^cQQa z)_ERrW3g!B9iLb3nn3dlkvD7KsY?sRvls3QC0qPi>o<)GHx%4Xb$5a3GBTJ(k@`e@ z$RUa^%S15^1oLEmA=sayrP5;9qtf!Z1*?e$ORVPsXpL{jL<6E)0sj&swP3}NPmR%FM?O>SQgN5XfHE< zo(4#Cv11(%Nnw_{_Ro}r6=gKd{k?NebJ~<~Kv0r(r0qe4n3LFx$5%x(BKvrz$m?LG zjLIc;hbj0FMdb9aH9Lpsof#yG$(0sG2%RL;d(n>;#jb!R_+dad+K;Ccw!|RY?uS(a zj~?=&M!4C(5LnlH6k%aYvz@7?xRa^2gml%vn&eKl$R_lJ+e|xsNfXzr#xuh(>`}9g zLHSyiFwK^-p!;p$yt7$F|3*IfO3Mlu9e>Dpx8O`37?fA`cj`C0B-m9uRhJjs^mRp# zWB;Aj6|G^1V6`jg7#7V9UFvnB4((nIwG?k%c7h`?0tS8J3Bn0t#pb#SA}N-|45$-j z$R>%7cc2ebAClXc(&0UtHX<>pd)akR3Kx_cK+n<}FhzmTx!8e9^u2e4%x{>T6pQ`6 zO182bh$-W5A3^wos0SV_TgPmF4WUP-+D25KjbC{y_6W_9I2_vNKwU(^qSdn&>^=*t z&uvp*@c8#2*paD!ZMCi3;K{Na;I4Q35zw$YrW5U@Kk~)&rw;G?d7Q&c9|x<Hg|CNMsxovmfth*|E*GHezPTWa^Hd^F4!B3sF;)? z(NaPyAhocu1jUe(!5Cy|dh|W2=!@fNmuNOzxi^tE_jAtzNJ0JR-avc_H|ve#KO}#S z#a(8secu|^Tx553d4r@3#6^MHbH)vmiBpn0X^29xEv!Vuh1n(Sr5I0V&`jA2;WS|Y zbf0e}X|)wA-Pf5gBZ>r4YX3Mav1kKY(ulAJ0Q*jB)YhviHK)w!TJsi3^dMa$L@^{` z_De`fF4;M87vM3Ph9SzCoCi$#Fsd38u!^0#*sPful^p5oI(xGU?yeYjn;Hq1!wzFk zG&2w}W3`AX4bxoVm03y>ts{KaDf!}b&7$(P4KAMP=vK5?1In^-YYNtx1f#}+2QK@h zeSeAI@E6Z8a?)>sZ`fbq9_snl6LCu6g>o)rO;ijp3|$vig+4t} zylEo7$SEW<_U+qgVcaVhk+4k+C9THI5V10qV*dOV6pPtAI$)QN{!JRBKh-D zk2^{j@bZ}yqW?<#VVuI_27*cI-V~sJiqQv&m07+10XF+#ZnIJdr8t`9s_EE;T2V;B z4UnQUH9EdX%zwh-5&wflY#ve!IWt0UE-My3?L#^Bh%kcgP1q{&26eXLn zTkjJ*w+(|_>Pq0v8{%nX$QZbf)tbJaLY$03;MO=Ic-uqYUmUCuXD>J>o6BCRF=xa% z3R4SK9#t1!K4I_d>tZgE>&+kZ?Q}1qo4&h%U$GfY058s%*=!kac{0Z+4Hwm!)pFLR zJ+5*OpgWUrm0FPI2ib4NPJ+Sk07j(`diti^i#kh&f}i>P4~|d?RFb#!JN)~D@)beox}bw?4VCf^y*`2{4`-@%SFTry2h z>9VBc9#JxEs1+0i2^LR@B1J`B9Ac=#FW=(?2;5;#U$0E0UNag_!jY$&2diQk_n)bT zl5Me_SUvqUjwCqmVcyb`igygB_4YUB*m$h5oeKv3uIF0sk}~es!{D>4r%PC*F~FN3owq5e0|YeUTSG#Vq%&Gk7uwW z0lDo#_wvflqHeRm*}l?}o;EILszBt|EW*zNPmq#?4A+&i0xx^?9obLyY4xx=Y9&^G;xYXYPxG)DOpPg!i_Ccl#3L}6xAAZzNhPK1XaC_~ z!A|mlo?Be*8Nn=a+FhgpOj@G7yYs(Qk(8&|h@_>w8Y^r&5nCqe0V60rRz?b5%J;GYeBqSAjo|K692GxD4` zRZyM2FdI+-jK2}WAZTZ()w_)V{n5tEb@>+JYluDozCb$fA4H)$bzg(Ux{*hXurjO^ zwAxc+UXu=&JV*E59}h3kzQPG4M)X8E*}#_&}w*KEgtX)cU{vm9b$atHa;s>| z+L6&cn8xUL*OSjx4YGjf6{Eq+Q3{!ZyhrL&^6Vz@jGbI%cAM9GkmFlamTbcQGvOlL zmJ?(FI)c86=JEs|*;?h~o)88>12nXlpMR4@yh%qdwFNpct;vMlc=;{FSo*apJ;p}! zAX~t;3tb~VuP|ZW;z$=IHf->F@Ml)&-&Bnb{iQyE#;GZ@C$PzEf6~q}4D>9jic@mTO5x76ulDz@+XAcm35!VSu zT*Gs>;f0b2TNpjU_BjHZ&S6Sqk6V1370+!eppV2H+FY!q*n=GHQ!9Rn6MjY!Jc77A zG7Y!lFp8?TIHN!LXO?gCnsYM-gQxsm=Ek**VmZu7vnuufD7K~GIxfxbsQ@qv2T zPa`tvHB$fFCyZl>3oYg?_wW)C>^_iDOc^B7klnTOoytQH18WkOk)L2BSD0r%xgRSW zQS9elF^?O=_@|58zKLK;(f77l-Zzu}4{fXed2saq!5k#UZAoDBqYQS{sn@j@Vtp|$ zG%gnZ$U|9@u#w1@11Sjl8ze^Co=)7yS(}=;68a3~g;NDe_X^}yJj;~s8xq9ahQ5_r zxAlTMnep*)w1e(TG%tWsjo3RR;yVGPEO4V{Zp?=a_0R#=V^ioQu4YL=BO4r0$$XTX zZfnw#_$V}sDAIDrezGQ+h?q24St0QNug_?{s-pI(^jg`#JRxM1YBV;a@@JQvH8*>> zIJvku74E0NlXkYe_624>znU0J@L<-c=G#F3k4A_)*;ky!C(^uZfj%WB3-*{*B$?9+ zDm$WFp=0(xnt6`vDQV3Jl5f&R(Mp};;q8d3I%Kn>Kx=^;uSVCw0L=gw53%Bp==8Sw zxtx=cs!^-_+i{2OK`Q;913+AXc_&Z5$@z3<)So0CU3;JAv=H?@Zpi~riQ{z-zLtVL z!oF<}@IgJp)Iyz1zVJ42!SPHSkjYNS4%ulVVIXdRuiZ@5Mx8LJS}J#qD^Zi_xQ@>DKDr-_e#>5h3dtje*NcwH_h;i{Sx7}dkdpuW z(yUCjckQsagv*QGMSi9u1`Z|V^}Wjf7B@q%j2DQXyd0nOyqg%m{CK_lAoKlJ7#8M} z%IvR?Vh$6aDWK2W!=i?*<77q&B8O&3?zP(Cs@kapc)&p7En?J;t-TX9abGT#H?TW? ztO5(lPKRuC7fs}zwcUKbRh=7E8wzTsa#Z{a`WR}?UZ%!HohN}d&xJ=JQhpO1PI#>X zHkb>pW04pU%Bj_mf~U}1F1=wxdBZu1790>3Dm44bQ#F=T4V3&HlOLsGH)+AK$cHk6 zia$=$kog?)07HCL*PI6}DRhpM^*%I*kHM<#1Se+AQ!!xyhcy6j7`iDX7Z-2i73_n# zas*?7LkxS-XSqv;YBa zW_n*32D(HTYQ0$feV_Fru1ZxW0g&iwqixPX3=9t4o)o|kOo79V$?$uh?#8Q8e>4e)V6;_(x&ViUVxma+i25qea;d-oK7ouuDsB^ab{ zu1qjQ%`n56VtxBE#0qAzb7lph`Eb-}TYpXB!H-}3Ykqyp`otprp7{VEuW*^IR2n$Fb99*nAtqT&oOFIf z@w*6>YvOGw@Ja?Pp1=whZqydzx@9X4n^2!n83C5{C?G@|E?&$?p*g68)kNvUTJ)I6 z1Q|(#UuP6pj78GUxq11m-GSszc+)X{C2eo-?8ud9sB=3(D47v?`JAa{V(IF zPZQ_0AY*9M97>Jf<o%#O_%Wq}8>YM=q0|tGY+hlXcpE=Z4Od z`NT7Hu2hnvRoqOw@g1f=bv`+nba{GwA$Ak0INlqI1k<9!x_!sL()h?hEWoWrdU3w` zZ%%)VR+Bc@_v!C#koM1p-3v_^L6)_Ktj4HE>aUh%2XZE@JFMOn)J~c`_7VWNb9c-N z2b|SZMR4Z@E7j&q&9(6H3yjEu6HV7{2!1t0lgizD;mZ9$r(r7W5G$ky@w(T_dFnOD z*p#+z$@pKE+>o@%eT(2-p_C}wbQ5s(%Sn_{$HDN@MB+Ev?t@3dPy`%TZ!z}AThZSu zN<1i$siJhXFdjV zP*y|V<`V8t=h#XTRUR~5`c`Z9^-`*BZf?WAehGdg)E2Je)hqFa!k{V(u+(hTf^Yq& zoruUh2(^3pe)2{bvt4&4Y9CY3js)PUHtd4rVG57}uFJL)D(JfSIo^{P=7liFXG zq5yqgof0V8paQcP!gy+;^pp-DA5pj=gbMN0eW=-eY+N8~y+G>t+x}oa!5r>tW$xhI zPQSv=pi;~653Gvf6~*JcQ%t1xOrH2l3Zy@8AoJ+wz@daW@m7?%LXkr!bw9GY@ns3e zSfuWF_gkWnesv?s3I`@}NgE2xwgs&rj?kH-FEy82=O8`+szN ziHch`vvS`zNfap14!&#i9H@wF7}yIPm=UB%(o(}F{wsZ(wA0nJ2aD^@B41>>o-_U6 zUqD~vdo48S8~FTb^+%#zcbQiiYoDKYcj&$#^;Smmb+Ljp(L=1Kt_J!;0s%1|JK}Wi z;={~oL!foo5n8=}rs6MmUW~R&;SIJO3TL4Ky?kh+b2rT9B1Jl4>#Uh-Bec z`Hsp<==#UEW6pGPhNk8H!!DUQR~#F9jEMI6T*OWfN^Ze&X(4nV$wa8QUJ>oTkruH# zm~O<`J7Wxseo@FqaZMl#Y(mrFW9AHM9Kb|XBMqaZ2a)DvJgYipkDD_VUF_PKd~dT7 z#02}bBfPn9a!X!O#83=lbJSK#E}K&yx-HI#T6ua)6o0{|={*HFusCkHzs|Fn&|C3H zBck1cmfcWVUN&i>X$YU^Sn6k2H;r3zuXbJFz)r5~3$d$tUj(l1?o={MM){kjgqXRO zc5R*#{;V7AQh|G|)jLM@wGAK&rm2~@{Pewv#06pHbKn#wL0P6F1!^qw9g&cW3Z=9} zj)POhOlwsh@eF=>z?#sIs*C-Nl(yU!#DaiaxhEs#iJqQ8w%(?+6lU02MYSeDkr!B- zPjMv+on6OLXgGnAtl(ao>|X2Y8*Hb}GRW5}-IzXnoo-d0!m4Vy$GS!XOLy>3_+UGs z2D|YcQx@M#M|}TDOetGi{9lGo9m-=0-^+nKE^*?$^uHkxZh}I{#UTQd;X!L+W@jm( zDg@N4+lUqI92o_rNk{3P>1gxAL=&O;x)ZT=q1mk0kLlE$WeWuY_$0`0jY-Kkt zP*|m3AF}Ubd=`<>(Xg0har*_@x2YH}bn0Wk*OZz3*e5;Zc;2uBdnl8?&XjupbkOeNZsNh6pvsq_ydmJI+*z**{I{0K)-;p1~k8cpJXL$^t!-`E}=*4G^-E8>H!LjTPxSx zcF+cS`ommfKMhNSbas^@YbTpH1*RFrBuATUR zt{oFWSk^$xU&kbFQ;MCX22RAN5F6eq9UfR$ut`Jw--p2YX)A*J69m^!oYfj2y7NYcH6&r+0~_sH^c^nzeN1AU4Ga7=FlR{S|Mm~MpzY0$Z+p2W(a={b-pR9EO1Rs zB%KY|@wLcAA@)KXi!d2_BxrkhDn`DT1=Dec}V!okd{$+wK z4E{n8R*xKyci1(CnNdhf$Dp2(Jpof0-0%-38X=Dd9PQgT+w%Lshx9+loPS~MOm%ZT zt%2B2iL_KU_ita%N>xjB!#71_3=3c}o zgeW~^U_ZTJQ2!PqXulQd=3b=XOQhwATK$y(9$#1jOQ4}4?~l#&nek)H(04f(Sr=s| zWv7Lu1=%WGk4FSw^;;!8&YPM)pQDCY9DhU`hMty1@sq1=Tj7bFsOOBZOFlpR`W>-J$-(kezWJj;`?x-v>ev{*8V z8p|KXJPV$HyQr1A(9LVrM47u-XpcrIyO`yWvx1pVYc&?154aneRpLqgx)EMvRaa#|9?Wwqs2+W8n5~79G z(}iCiLk;?enn}ew`HzhG+tu+Ru@T+K5juvZN)wY;x6HjvqD!&!)$$;1VAh~7fg0K| zEha#aN=Yv|3^~YFH}cc38ovVb%L|g@9W6fo(JtT6$fa?zf@Ct88e}m?i)b*Jgc{fl zExfdvw-BYDmH6>(4QMt#p0;FUIQqkhD}aH?a7)_%JtA~soqj{ppP_82yi9kaxuK>~ ze_)Zt>1?q=ZH*kF{1iq9sr*tVuy=u>Zev}!gEZx@O6-fjyu9X00gpIl-fS_pzjpqJ z1yqBmf9NF!jaF<+YxgH6oXBdK)sH(>VZ)1siyA$P<#KDt;8NT*l_0{xit~5j1P)FN zI8hhYKhQ)i z37^aP13B~u65?sg+_@2Kr^iWHN=U;EDSZ@2W2!5ALhGNWXnFBY%7W?1 z=HI9JzQ-pLKZDYTv<0-lt|6c-RwhxZ)mU2Os{bsX_i^@*fKUj8*aDO5pks=qn3Dv6 zwggpKLuyRCTVPwmw1r}B#AS}?X7b837UlXwp~E2|PJw2SGVueL7){Y&z!jL!XN=0i zU^Eig`S2`{+gU$68aRdWx?BZ{sU_f=8sn~>s~M?GU~`fH5kCc; z8ICp+INM3(3{#k32RZdv6b9MQYdZXNuk7ed8;G?S2nT+NZBG=Tar^KFl2SvhW$bGW#kdWL-I)s_IqVnCDDM9fm8g;P;8 z7t4yZn3^*NQfx7SwmkzP$=fwdC}bafQSEF@pd&P8@H#`swGy_rz;Z?Ty5mkS%>m#% zp_!m9e<()sfKiY(nF<1zBz&&`ZlJf6QLvLhl`_``%RW&{+O>Xhp;lwSsyRqGf=RWd zpftiR`={2(siiPAS|p}@q=NhVc0ELprt%=fMXO3B)4ryC2LT(o=sLM7hJC!}T1@)E zA3^J$3&1*M6Xq>03FX`R&w*NkrZE?FwU+Muut;>qNhj@bX17ZJxnOlPSZ=Zeiz~T_ zOu#yc3t6ONHB;?|r4w+pI)~KGN;HOGC)txxiUN8#mexj+W(cz%9a4sx|IRG=}ia zuEBuba3AHsV2feqw-3MvuL`I+2|`Ud4~7ZkN=JZ;L20|Oxna5vx1qbIh#k2O4$RQF zo`tL()zxaqibg^GbB+BS5#U{@K;WWQj~GcB1zb}zJkPwH|5hZ9iH2308!>_;%msji zJHSL~s)YHBR=Koa1mLEOHos*`gp=s8KA-C zu0aE+W!#iJ*0xqKm3A`fUGy#O+X+5W36myS>Uh2!R*s$aCU^`K&KKLCCDkejX2p=5 z%o7-fl03x`gaSNyr?3_JLv?2RLS3F*8ub>Jd@^Cc17)v8vYEK4aqo?OS@W9mt%ITJ z9=S2%R8M){CugT@k~~0x`}Vl!svYqX=E)c_oU6o}#Hb^%G1l3BudxA{F*tbjG;W_>=xV73pKY53v%>I)@D36I_@&p$h|Aw zonQS`07z_F#@T-%@-Tb|)7;;anoD_WH>9ewFy(ZcEOM$#Y)8>qi7rCnsH9GO-_7zF zu*C87{Df1P4TEOsnzZ@H%&lvV(3V@;Q!%+OYRp`g05PjY^gL$^$-t0Y>H*CDDs?FZly*oZ&dxvsxaUWF!{em4{A>n@vpXg$dwvt@_rgmHF z-MER`ABa8R-t_H*kv>}CzOpz;!>p^^9ztHMsHL|SRnS<-y5Z*r(_}c4=fXF`l^-i}>e7v!qs_jv zqvWhX^F=2sDNWA9c@P0?lUlr6ecrTKM%pNQ^?*Lq?p-0~?_j50xV%^(+H>sMul#Tw zeciF*1=?a7cI(}352%>LO96pD+?9!fNyl^9v3^v&Y4L)mNGK0FN43&Xf8jUlxW1Bw zyiu2;qW-aGNhs=zbuoxnxiwZ3{PFZM#Kw)9H@(hgX23h(`Wm~m4&TvoZoYp{plb^> z_#?vXcxd>r7K+1HKJvhed>gtK`TAbJUazUWQY6T~t2af%#<+Veyr%7-#*A#@&*;@g58{i|E%6yC_InGXCOd{L0;$)z#?n7M`re zh!kO{6=>7I?*}czyF7_frt#)s1CFJ_XE&VrDA?Dp3XbvF{qsEJgb&OLSNz_5g?HpK z9)8rsr4JN!Af3G9!#Qn(6zaUDqLN(g2g8*M)Djap?WMK9NKlkC)E2|-g|#-rp%!Gz zAHd%`iq|81efi93m3yTBw3g0j#;Yb2X{mhRAI?&KDmbGqou(2xiRNb^sV}%%Wu0?< z?($L>(#BO*)^)rSgyNRni$i`R4v;GhlCZ8$@e^ROX(p=2_v6Y!%^As zu022)fHdv_-~Yu_H6WVPLpHQx!W%^6j)cBhS`O3QBW#x(eX54d&I22op(N59b*&$v zFiSRY6rOc^(dgSV1>a7-5C;(5S5MvKcM2Jm-LD9TGqDpP097%52V+0>Xqq!! zq4e3vj53SE6i8J`XcQB|MZPP8j;PAOnpGnllH6#Ku~vS42xP*Nz@~y%db7Xi8s09P z1)e%8ys6&M8D=Dt6&t`iKG_4X=!kgRQoh%Z`dc&mlOUqXk-k`jKv9@(a^2-Upw>?< zt5*^DV~6Zedbec4NVl($2T{&b)zA@b#dUyd>`2JC0=xa_fIm8{5um zr-!ApXZhC8@=vC2WyxO|!@0Km)h8ep*`^he92$@YwP>VcdoS5OC^s38e#7RPsg4j+ zbVGG}WRSET&ZfrcR(x~k8n1rTP%CnfUNKUonD$P?FtNFF#cn!wEIab-;jU=B1dHK@ z(;(yAQJ`O$sMn>h;pf^8{JISW%d+@v6@CnXh9n5TXGC}?FI9i-D0OMaIg&mAg=0Kn zNJ7oz5*ReJukD55fUsMuaP+H4tDN&V9zfqF@ zr=#ecUk9wu{0;!+gl;3Bw=Vn^)z$ahVhhw)io!na&9}LmWurLb0zubxK=UEnU*{5P z+SP}&*(iBKSO4{alBHaY^)5Q=mZ+2OwIooJ7*Q5XJ+2|q`9#f?6myq!&oz?klihLq z4C)$XP!BNS0G_Z1&TM>?Jk{S~{F3n83ioli=IO6f%wkvCl(RFFw~j0tb{GvXTx>*sB0McY0s&SNvj4+^h`9nJ_wM>F!Uc>X}9PifQekn0sKI2SAJP!a4h z5cyGTuCj3ZBM^&{dRelIlT^9zcfaAuL5Y~bl!ppSf`wZbK$z#6U~rdclk``e+!qhe z6Qspo*%<)eu6?C;Bp<^VuW6JI|Ncvyn+LlSl;Mp22Bl7ARQ0Xc24%29(ZrdsIPw&-=yHQ7_Vle|5h>AST0 zUGX2Zk34vp?U~IHT|;$U86T+UUHl_NE4m|}>E~6q``7hccCaT^#y+?wD##Q%HwPd8 zV3x4L4|qqu`B$4(LXqDJngNy-{&@aFBvVsywt@X^}iH7P%>bR?ciC$I^U-4Foa`YKI^qDyGK7k%E%c_P=yzAi`YnxGA%DeNd++j3*h^ z=rn>oBd0|~lZ<6YvmkKY*ZJlJ;Im0tqgWu&E92eqt;+NYdxx`eS(4Hw_Jb5|yVvBg z*tbdY^!AN;luEyN4VRhS@-_DC{({ziH{&Z}iGElSV~qvT>L-8G%+yEL zX#MFOhj{InyKG=mvW-<1B@c-}x$vA(nU?>S>0*eN#!SLzQ)Ex7fvQ)S4D<8|I#N$3 zT5Ei`Z?cxBODHX8(Xp73v`IsAYC@9b;t}z0wxVuQSY1J^GRwDPN@qbM-ZF48T$GZ< z8WU+;Pqo?{ghI-KZ-i*ydXu`Ep0Xw^McH_KE9J0S7G;x8Fe`DVG?j3Pv=0YzJ}yZR z%2=oqHiUjvuk0~Ca>Kol4CFi0_xQT~;_F?=u+!kIDl-9g`#ZNZ9HCy17Ga1v^Jv9# z{T4Kb1-AzUxq*MutfOWWZgD*HnFfyYg0&e9f(5tZ>krPF6{VikNeHoc{linPPt#Si z&*g>(c54V8rT_AX!J&bNm-!umPvOR}vDai#`CX___J#=zeB*{4<&2WpaDncZsOkp* zsg<%@@rbrMkR_ux9?LsQxzoBa1s%$BBn6vk#{&&zUwcfzeCBJUwFYSF$08qDsB;gWQN*g!p8pxjofWbqNSZOEKOaTx@+* zwdt5*Q47@EOZ~EZL9s?1o?A%9TJT=Ob_13yyugvPg*e&ZU(r6^k4=2+D-@n=Hv5vu zSXG|hM(>h9^zn=eQ=$6`JO&70&2|%V5Lsx>)(%#;pcOfu>*nk_3HB_BNaH$`jM<^S zcSftDU1?nL;jy)+sfonQN}(}gUW?d_ikr*3=^{G)=tjBtEPe>TO|0ddVB zTklrSHiW+!#26frPXQQ(YN8DG$PZo?(po(QUCCf_OJC`pw*uey00%gmH!`WJkrKXj2!#6?`T25mTu9OJp2L8z3! z=arrL$ZqxuE{%yV)14Kd>k}j7pxZ6#$Dz8$@WV5p8kTqN<-7W)Q7Gt2{KoOPK_tZ| zf2WG~O5@{qPI+W<4f_;reuFVdO^5`ADC1!JQE|N`s3cq@(0WB!n0uh@*c{=LAd;~} zyGK@hbF-Oo+!nN)@i*O(`@FA#u?o=~e{`4O#5}z&=UkU*50fOrzi11D^&FOqe>wii z?*k+2|EcUs;Gx{!@KBT~>PAwLrIDT7Th=Utu?~?np@t^gFs?zgX=D${RwOY^WGh-+ z+#4$066ISh8eYW#FXWp~S`<*%O^ZuItL1Tyqt8#tZ zY120E;^VG`!lZn&3sPd$RkdHpU#|w+bYV)pJC|SH9g%|5IkxVTQcBA4CL0}$&}ef@ zW^Vtj%M;;_1xxP9x#ex17&4N*{ksO*_4O}xYu(p*JkL#yr}@7b)t5X?%CY<+s5_MJ zuiqt+N_;A(_)%lumoyRFixWa-M7qK_9s6<1X?JDa9fP!+_6u~~M$5L=ipB=7(j#f< zZ34J%=bs549%~_mA(|={uZNs_0?o7;-LBP(ZRnkd{-^|2|=4vUTmtByHL8 zEph`(LSEzQj68a+`d$V<45J7cyv^#|^|%fD#si1Nx!4NW*`l*{->HEWNh6-|g>-=r zXmQ|-i}Ku$ndUeHQ^&ieT!Lf}vf6GaqW9$DJ2NWrqwPY%%4nip$@vK$nRp*_C-v<| zuKz~ZyN&<%!NS26&x?jhy+@awJipMQ-8(X4#Ae5??U<1QMt1l9R=w9fAnEF}NYu$2 z>6}Vkc zIb*A?G*z8^IvibmBKn_u^5&T_1oey0gZS2~obf(#xk=erZGTEdQnt3DMGM+0oPwss zj5zXD;(oWhB_T@~Ig#9@v)AKtXu3>Inmgf@A|-lD-1U>cNyl3h?ADD9)GG4}zUGPk zZzaXe!~Kf?<~@$G?Uql3t8jy9{2!doq4=J}j9ktTxss{p6!9UdjyDERlA*xZ!=Q)KDs5O)phz>Vq3BNGoM(H|=1*Q4$^2fTZw z(%nq1P|5Rt81}SYJpEEzMPl5VJsV5&4e)ZWKDyoZ>1EwpkHx-AQVQc8%JMz;{H~p{=FXV>jIxvm4X*qv52e?Y-f%DJ zxEA165GikEASQ^fH6K#d!Tpu2HP{sFs%E=e$gYd$aj$+xue6N+Wc(rAz~wUsk2`(b z8Kvmyz%bKQxpP}~baG-rwYcYCvkHOi zlkR<=>ZBTU*8RF_d#Bl@zZsRIhx<%~Z@Z=ik z>adw3!DK(8R|q$vy{FTxw%#xliD~6qXmY^7_9kthVPTF~Xy1CfBqbU~?1QmxmU=+k z(ggxvEuA;0e&+ci-zQR{-f7aO{O(Pz_OsEjLh_K>MbvoZ4nxtk5u{g@nPv)cgW_R} z9}EA4K4@z0?7ue}Z(o~R(X&FjejUI2g~08PH1E4w>9o{)S(?1>Z0XMvTb|;&EuyOE zGvWNpYX)Nv<8|a^;1>bh#&znEcl-r!T#pn= z4$?Yudha6F%4b>*8@=BdtXXY4N+`U4Dmx$}>HeVJk-QdTG@t!tVT#0(LeV0gvqyyw z2sEp^9eY0N`u10Tm4n8No&A=)IeEC|gnmEXoNSzu!1<4R<%-9kY_8~5Ej?zRegMn78wuMs#;i&eUA0Zk_RXQ3b&TT} z;SCI=7-FUB@*&;8|n>(_g^HGf3@QODE3LpmX~ELnymQm{Sx9xrKS zK29p~?v@R$0=v6Dr5aW>-!{+h@?Q58|Kz8{{W`%J+lDAdb&M5VHrX_mDY;1-JLnf)ezmPau$)1;=`-FU=-r-83tX=C`S#}GZufju zQ>sXNT0Ny=k@nc%cFnvA_i4SC)?_ORXHq8B4D%el1uPX`c~uG#S1M7C+*MMqLw78E zhY2dI8@+N^qrMI1+;TUda(vGqGSRyU{Fnm`aqrr7bz42c5xsOO-~oZpkzorD1g}Y<6rk&3>PsSGy}W?MtqFky@A(X# zIuNZK0cK?^=;PUAu>j0#HtjbHCV*6?jzA&OoE$*Jlga*}LF`SF?WLhv1O|zqC<>*> zYB;#lsYKx0&kH@BFpW8n*yDcc6?;_zaJs<-jPSkCsSX-!aV=P5kUgF@Nu<{a%#K*F z134Q{9|YX7X(v$62_cY3^G%t~rD>Q0z@)1|zs)vjJ6Jq9;7#Ki`w+eS**En?7;n&7 zu==V3T&eFboN3ZiMx3D8qYc;VjFUk_H-WWCau(VFXSQf~viH0L$gwD$UfFHqNcgN`x}M+YQ6RnN<+@t>JUp#)9YOkqst-Ga?{FsDpEeX0(5v{0J~SEbWiL zXC2}M4?UH@u&|;%0y`eb33ldo4~z-x8zY!oVmV=c+f$m?RfDC35mdQ2E>Pze7KWP- z>!Bh<&57I+O_^s}9Tg^k)h7{xx@0a0IA~GAOt2yy!X%Q$1rt~LbTB6@Du!_0%HV>N zlf)QI1&gvERKwso23mJ!Ou6ZS#zCS5W`gxE5T>C#E|{i<1D35C222I33?Njaz`On7 zi<+VWFP6D{e-{yiN#M|Jgk<44u1TiMI78S5W`Sdb5f+{zu34s{CfWN7a3Cf^@L%!& zN$?|!!9j2c)j$~+R6n#891w-z8(!oBpL2K=+%a$r2|~8-(vQj5_XT`<0Ksf;oP+tz z9CObS!0m)Tgg`K#xBM8B(|Z)Wb&DYL{WTYv`;A=q6~Nnx2+!lTIXtj8J7dZE!P_{z z#f8w6F}^!?^KE#+ZDv+xd5O&3EmomZzsv?>E-~ygGum45fk!SBN&|eo1rKw^?aZJ4 E2O(~oYXATM literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties b/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..c5f9a53 --- /dev/null +++ b/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Tue May 10 19:22:52 CST 2022 +distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip +distributionPath=wrapper/dists +zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME diff --git a/src-tauri/gen/android/gradlew b/src-tauri/gen/android/gradlew new file mode 100755 index 0000000..4f906e0 --- /dev/null +++ b/src-tauri/gen/android/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/src-tauri/gen/android/gradlew.bat b/src-tauri/gen/android/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/src-tauri/gen/android/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/src-tauri/gen/android/settings.gradle b/src-tauri/gen/android/settings.gradle new file mode 100644 index 0000000..3939116 --- /dev/null +++ b/src-tauri/gen/android/settings.gradle @@ -0,0 +1,3 @@ +include ':app' + +apply from: 'tauri.settings.gradle' diff --git a/src-tauri/gen/apple/.gitignore b/src-tauri/gen/apple/.gitignore new file mode 100644 index 0000000..6726e2f --- /dev/null +++ b/src-tauri/gen/apple/.gitignore @@ -0,0 +1,3 @@ +xcuserdata/ +build/ +Externals/ diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@1x.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6ac2a8ccf0aff8558f948fbc2c9befd5aa34361 GIT binary patch literal 1036 zcmZ{jdrVt(6vux^=qiX3s2gLFAdJBT+`Ui-HZI6Ug^odBfSZdL7%)L)4%X?Ib07hA zS>`ZBnHwl(Atsws7r|Mcqr4pBu@3Bm(Lu|r&5C7>4eS1K87N#!3gJRqnirZfRZ3AHJyk7{dUZAP~mklTt{3QZIC&moJ2BpI4 z)7T&diw1YU1Vb4vUHR;=0r6vgtwj2|TL9ZCk}tdQOj`ZqCG5=P*OVy-a+E z0NS`jJA(%&MRKhJpwnzwu+yNuilxtk^3%T6$4~btYG;k7ru5!2{I_ zixcC7vFV_}$r&4c+iWkLwkRLle>bdq_9*w=pLuAd?F>_{SwdaoZ~v|RN@sjVrrb85 zKBk(#pf!|h^fAL4_dAO0iCLNfsfpSz*KY1p`}8Vf?rARRj10iYy44Awro;N#GrJv4 zNlHXtdITo3#U`;RRk%sd@%MhpEpPC&iXDfD5)-og$Az`ohuleC^}9c&>t8++S=6pS zTBB3w%&cmHqs-6Z`huHOE!FsH?8z`UUg^26Oi6q$m&+fTp{lAHK^p;oE=WZVs2eNxl-5Q%8oxqy*O0HcGt6UDF)iYE4;Xps+u*IXq%9 zqH^f^dmsJKG@$+Y=Dto*5em5a!EnnpY4bPDEpJUG2n6j#TdU09zti+3`-tlv81*OI19yi`MyisoB?7scSXN{UY5$gE3tm}TY*YfMv zf0Ja!Cbl}%bbqMFCEN0qC`qVp!DHU6AAfG*btdI9 zw6tTtZ%Nz$oQM-luiB38gB1^n0uf)EhInd}DZ ze}Iw?3yP1G|3Bcx-M*g%!k=sq7nc;C6z7$kc)~>Uv&a|$5iKCdf0q=`nkbe*B4JwM JFMD&V{sG_UJ5T@s literal 0 HcmV?d00001 diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x-1.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x-1.png new file mode 100644 index 0000000000000000000000000000000000000000..2869541f735d2f3f890a5b400fcced58698cbac4 GIT binary patch literal 2216 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 R+5rQcJL_y$amF|Ce*nJiS(X3* literal 0 HcmV?d00001 diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a4e68c8d6d5c4a564be190fdd200d7214eda2db2 GIT binary patch literal 3394 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 R+5rQcJL_y$amF|Ce*nJiS(X3* literal 0 HcmV?d00001 diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@3x.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..e4adcbcedc3780375b853ef315244b28a735f047 GIT binary patch literal 5228 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 W{J%q-7Pk)mF@QP-t6ZsQ9q~WT1(vM< literal 0 HcmV?d00001 diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@1x.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..2869541f735d2f3f890a5b400fcced58698cbac4 GIT binary patch literal 2216 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 literal 0 HcmV?d00001 diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..704c929133f23779ee37099bf32d400b01599be1 GIT binary patch literal 121323 zcmeEug{m5g6SiNOwy&0@C$HTBK8?Bt|o8>^J=U z0l$CXd%<;WY%g9r&pGG5&pG$=K$Q9$C43xe8~^}-ucEA=2>^gmPr(2z5bEJ1@cS>+ z1EYnqrWye7ksSblh5`V$sF$F70Dz|e0I+Wg06b3z04Q9t+chLnZ(x|eR#E^UAHVWD z%aT!70#p=awS1Ni5%XzQ^PcP<1Kewx;ZmZ8&%c3{gV%ydRiZ3a3OQE|v|Bxt;B>2q zUr6KbE6P=im1%8Fm6U?AJ$yj$iIma8pQ|?9BjX0s(lGL<-%_XJdDN_uHqtdXo*NAa__0JDls!X0|&__N>fAEq;v;vayHQ zy3R`IWN|)oXSn@MmvfddOkByCe@9{n?+Klk_E|Yh@+sfQmWcX?Q+R<#Eek6){SeTN zl!yoUHojzC2WdbA+zJ=_ElP)2zwt?+JMiV97mt?y7LDO!WXSSUn_~(=)h-QD80ZJ= zu8eE~QEO;}pTz4#OW*V{0k-!J`Hrte+z{PfNMWd9Zd-?U9c<5^(g50|O5EVEbTdOJ zGnMlj8%rTL+6&X;Gc$7`vu^H!)eWx4u3ws~=w9kgfbV)gviB+Y0 zg2zvh{%Svd9KSg#>Tl}%A7-!B!<_&P!TpHkHNLYLBN}V0a(H&)46SfbqUzT-ZGx{? zopawUx5PN8Y~7MSWFbZ6s8xvK>Z9v%3IH;rg$10qf~m|P4eSz|NT3E0X?rx->2Cs~ zBo{m6FyM9F9bV$-f{a4w$6wQ1&7j>C|DH#(lQ?oxHLm@9+0dTEJ(_(Zl!S<952%xv zBC%fmx&Wq9wO({%RtweOc~vR!b4>G9^Y$E%-uyF5ktMV`ASvrlP+J&VVm?!=4MklO zp5R)i2QTR96eF-+PJ@YbwI~>a)ISsivI!EfEN=ius~5fc1<@|D0miWlzKfINVlA(D z1qHtfEw|f~;>IbL0sp4UqoOzdu!lo63VpSvL2%mB^UPbv7dO#;BFD~f=PC`kw-&x# z;5A#%KfG+Yc1i>#x1r`)GHew&mpj*ToDg>0S1~%?T_I&k*fdwWdOgb(!+do)nAU@`{f^!9w**eY&n=5l&QDkxn1X7YkYp-T|> zeSf9Zz-HFuiiIdD-zd$sjQ8!9rp#>}q`~T`kQ{T9LV3P_D6k)kXPVqJNL*oBep+dd zC6;K2Q;C=xJB$obY8Y}A35c}GC#7Ozs|e5MqSnfqvpSh_+G_WR(>1xx)1@Kun2?)KV$Dx~fA5o(HfgqQt>NIh z6z9AB$av)CRA$X<7R>tDY=kF+O$e8_k6F!(RfU8)u_H6Y%iDvn|MP)0lpYtbHm|L( zM+dLP1rQ`GRr(ZW-LL>IPR?aCqKPwKs->vgNZJAAfC@=MHotV)=y~Y!-hVOHGX19anYdY3v^B*zxT>UF zKK=C?;d?ZUX{&eNu@nk$uwn&(%=ye9d>KRfZz@wZ0$eY3+V1{54Z;e5e$6)mxExl% z&Sqr1)Wn2ek_!?M&Gzpw@o?NXnev&AR`#wsZo}k2*o`%BaS9?SvF86{5|G(rA|RT} z{{WerqG_OQSTGfAa9bG44Fi_2w%f_GQNNT|51sW4E{a$ak@jR!`Rk35?cSQKgKAM= zLFU$#zW0aW(;mA9`J)%>={vPSzHv9^)|a_W^O~Kl<#1*Wdo$-A$6q?E$LKjho)hk) zD(PSJ7K2Bs$oS50O{LnixqoPT-%T5t7upN!i}ca*?is~VeE#EX_(G<4I$*=VtN(tQ z#u=Z-B4oS2y+CBwhPMY_?cHkGulG-7I`XtbGRt}SF)^o=qx5jXDTT{P>wv`(0uIqn z8#j~mMV~5S9sHDLs2Fdcy!ugL(%C3g*DhICg;(_+!o!Ug@S*1!y!T&t-qd+}UGWpH zR;<>;PeRj!EbAP`;_BYB*8yqlIm+QyU2z{Vk3=*5e|0ord+2^Os;o-nx3x6N;|`6S1{0%{|1rcnJ`Fr#u4E4 zOkFwhfQzj%5a*?`9>ImA;fFcIJ3=w^ccvObzZl2Q2nX>-Ofm4O{sWRXT(CMRf1+#v zQnA!nxXS*(Pq9cX`n7CH8~HxGuPHc%nhReR{bQAo3uU%p;0IF?w_mOJ;=4|9|KelG z?6CN@TT;avb4mLx(lf*sFP%;GL(I)#CU4D<$Fm(r6$vsp#y4`u;Y_+wcjedCqj9>? zszE9XKZKh3Az^zBG`lX(r`!m-s`%FEU$=By@Xty7yoT@MPMP7Gd**hH1oP8pZTmLS z|6a(8fl{d{>!nKlVzuUNAfHm^ed))g(VS1P?9(+{U6obsAUuekx;y%CV;oqtKlrK^ zsb9l|W~p<~>qaH`%bQqY*D2|LHj9f^BROe04^5=!#FBw5Zl&88Em$^a_B&J*66uZ> zUR0MN!f6>^td6)>MTd$RJ=OpskT74?H7@|C8qmCwW8v8b#3QBdbz)4w(pmK9Ii8`H zk}`xt*8>@lFK$)&8MqVd(8c^tBD}vu$^5rJ7wqvHk`|&w1bWFSBSTQtOC^)ewCFYs ze3cx>N;8GO$G+*CvOCoceIWNU_)57WkbhO~Z}&t$9I|gxEt@16Karxs*uE^HBsFd6!Dtt@R=@N4xE}IE5u7-D}r8geNXsW`aHR?pM?} znFk=8=<;Uz=~`2A@+Ad?t2S2dHMBckHd>7WaQ? zziP-%dHFKzVU{Y&ApjDiWva86fEXpw|f9%1l&8JdaSVQ%3199>1I#;0db{Q z(Y6st2o1YfSzv(YB>|bdiEv~Jmi>FFrM(RFmQ0tmTZWi^rQ49FA-NYd63aBEb^T0o zkLK|H3oNWNYwHd@(dE;X8it$VM3gVN9(P&W+U}N+by`UP&G>TFI%$XDhJK=63I?-G zDCra+)pW94kuAUSPbrkyt11L(1Mb|7I)={f-q6|l$VEA^CRJ^Mqcy|0Nxz5^TpG?9d6Ck?+63ZqiXau#Zue5;eURr zr5iujyM$Lp;y~izDPtrA*2#lg#2;$kA653>+gYV0weY?*d#B6mOH>^<=Yi(%KI7rf zatT3%K7C2v`YzPpJA!r@;pxFF{XJmXkx8H+hziP-K2TK>_SqHE#~3PTRXx}E)Za%V z;MZ*eJUoFQ!oL6PdOxBl6S_{~0u%n%Y^>5$-jCX$&0Qi8RLa(8oy1vK1?ioXx~yT%pD zrz9YYMHJRUsv@HFH3<7Bn=lpmh;fM8zI>JO=fOWV^z!aZ_!G8*KZO3%v@74NV9!?) z0e&_@48yU-z4d(_VF&|0Js|&%Q@%uZP;+pc$9{Nh;>cc08k6RCbM&JI+`<0$bBX^} zSTXyKo+(RR&1?j5yyzkQRVM%R%st2A@5q88k&)q4LduLVDprL?(kEKa2(-9oft%J` z40#k3yMrWcpPKfhC8?caQNfrRt2$6U^9N1j5dXth$8VpOmojAPeP(E0Vv`(Y1CqE^ zv!#ZH{cEqqeWGI068WQyxGniN0OpCr`m)RpGSM2?M(lTHmAMZG99Q2+4qXPOG%l?@ zKge_-&_ETMDYCrE_;05967dhWPni3QI2qFRHK?S9c0Mgj*Scmmzx`{gfuW5bQ5FOf zeI_=aBX(7Ox@iI|pcb=;`?T4f-Vh@GCIS4n$I%+0HamlY=^ zIzPO>iG5&FHAJD*KP^CS@-f?1n582aTD}f(f%X0&L-qI_?+7~Xtwd%qD=qXfc=~@T zoU5J>?7w(S3bl;R=pB&-`!EOjQZd!D5iHC3#dWpgzn>9+_)C|Lnc!dxAR`c~BNLDU z(ct1y#u193%eS3QtRkM&U@*J+#zUWWg}|JC1y$^tJse^?BA!SgP$Q{un2 z7BAjNG=xX#(OxUJu9we39L@vS2VMdS2MTXR$q z+;5Hqc)zP0AD?%0W0Vn~n*(c>^IWiL$blbs=C+Z<4X;RP_*9-A3S{xiduAN zQ|!S7O}t?I4nhe$t>dS?Qpc({t-J%)Ovg{v+P;O494rJ5JqebyJawRBkmi)0xsamANJxnIFzk;#N@$gzw2BYZzVwxy$kFV!_sy>J)*+DP(M zjZSnojODf^t@HS?nvu0iNuS)9b^DKBx3ojSaf$TiK<=ks2FwDx`!;R@ylJYOqC9ja zpA;wd=7WevD!wMRY=EB>jMN#k@E3j}>C~}24HZdfI%0Y6WJxFIXQlP!zzHjHXBM#g zhW6iNfZ4k8^%aTcOIDjSUBQj~Udx7M+V8(i?#)KU5E4j!b8oO<|E(1N5Rr35d9&Si&1UZ?>wgect&O(!Qv#cWq%HkdE(l zyLw!v%)e#Acj;(8g;WtB)G&B#*CvnXcXeD&*st=2H=m79V)LbyzmA$B*3`HarerLJ zu3`ngz3AvDq+#$__`yG<96Gy^PuqmQpp?r(RlUA%kHudE$N4!-lIL*yfwxM-uV9%e zf7Sm_{{he#-vtIfc?52!w6(Q0=v`2`Txz2~aotl}iaY+{5$C({#?JeOB`>Ed;qhom z?H0fj*(uK(leFLPPu(36SkLCHt%G6VG8iO5RoZjWgOI`0FBBBNSsFJ|R`pEXQ-6cP2GVryU(Ob+H*?ZjrhezKR4-xg5((|wR$#1OG zmTd@y`I#v|prD^QF`=V>_akN&b2=F4xUp!Bl>`NnGp1;NXvJ#zX^3U|xYi;|1~+iG z_eQ2&91Uysu^h(7I3XGuvnRa_aqcjJ6N$$*!d(pSavs7+B!iL3{&gHjqUZkep=8YJ z2gir(9i6+6RJ~C8rnfZKTugEmTUKe^?(oi{tX@EVxH9Jx5bkHKrC^MhCr_+8(eS`uih4LxB&Zhr`Zv_lIvv0-`r(~I?sAv2dfqo`Z zJS1*&!F$11)H!hV=V(vxy#e_=)5}<+eAQsqPU?-77r#-(X2n*i?)5!)IaeZpGu{d@ ze_#SXk7?^1XfkQJ>(&47Y!z!z!%z78^m>j^-|Y8%tC1Mq1>(zmWvtDG$w<&tx_6;l9${!*c83T)iJS#9^w9!@t_`zqjRS;E+DLa5sd(l2&YO<7r^v*c!{ znoxJ|_3g5lTwKrjY>~g|KAFrQOJ~AOkI?)S(U49$_MN1vf9h;u*=%))#qZm#z5uN z^9s@p8no<=@ke0!nG%81W)MYSWno6Nxw)fF{oJnT&a$@i^C`&}iLI=bHtPaHBtPGi z1W2Ns9?@EbVc0E}|JN+~N+>fe#JJB~c6s#d35{e*U#YF$z(S6OjUps*J22awA@kAO zgzS9tx7O&|WQEX{o?afc)<6b!X`{-(C1;bCTRhSVpUPe4=r^T zU=J)BYF}#l#x^+k@@Dbx#(^v1-G{k|m++WW8njP}iSDicGz7v-ZR3709!liRf79e; zk~RAAgt#S;B{?tcMoji97!NY%M$abKJ8Kwt%Vn|)gC1OAP_mTN%FVucmheaa zt@g`rs1o;+-0iLg9+Oq1QJW9za9#yjg*1FXBuqGQfCV{ETKxFWv(_ObY; zsi)WQF+3S8K$#lh5BF}{rFe%j1v{tbZ>DGMLX@2W&YeMi>e-;)^rSODkitm&kAbEPc(#guo zXe7(%c^6`Eq;fd8e^_<>%j-C+{j}Nr14DJH7*=MsO1a&M0m?6cN7Hj0BC`Co84DCz zRm*ecV{#<@(K@;}C*bDi9&f#gn43OOQoT&qZeT<^sX|pO>XHs07Q6RUe$4Mxa63X5 zv(WkeI#~Pu4Cf~=ig{8+VnqZ2=Q|U4!9pH;3mBNiHr2LtDem?OV9YMd5J7eoAY>CT zYi}ag$=jwam;}JdAAX*Iz@BQmi}v7^-P;E`^eV`b%xn5G!KE|^bM3-SDis-)X~|Y| z2}a{I6oN6j$u?H19|sPY!v6CIl?n{(Y3TEQH#xuRRb-LTovY-vE59^}C(Z@cTwIW) z47W1KXKuaiju<@@q-DX%g%vW!efa+J%EL8k=C!WF?nOz4|95F|2J?afO=zl_;;9j; zN)i7fVtP<&M|_|iCs3uQ8S$|m9bF6L?jKs41hfV-#7;Bin{QIUgyza3ti#1lH~HvZlI z4*w2&(BzQjJBxXdBlp@ZrAj?rAjYz%>`ubl{69M~F`}m*K?-V#M#2)EJNph&qrTSd zdGk`afAn7IDJal(kZp8;vhQXd(J!IWPKD$uy6ujQIyhwAs|2kfv2oM;pmVGIAf+E?# z;78bV0Ax>YsgP7nJmYN3zC$$+oNtgt{F7wQBk;=YG0?x-_)jFbbL4r#y&@9@85K&t z*2$a`AG{V?PqofHzv2n>5D=#^Z~IQxqd=^lN3gZ>PpS3>Sw0oQfAsv1)Kj}{8>((-CZ%$P%J@t?=myMMMz?T0o z}aFlo5J4^by7(r3!t!pGO% zups#$AY*Vn^KFG*JwqnN?d6vnhs>EV59!)KNs8Skos=3-#>Hx?bAg^Vvd2t-nXooy z2%xhyVdje(wp~OtorlB?CMX^;$amsvDsT=8{o!9-l|^xTEJOx~MN=mzOEb(V+T8w) zGQhw6%G>qG!r%obpfshyMjf9XO?>|JF?$1ku{{74wB=_ZuLi!a!(KSg2hhR;#Q*D# zejXGbdyqkD{gPM&lKW_GYbFsXp1*}jNwsCr72BNik54+9Z*C?Dhu&WJ(Y%bUj|A9c zkVd9~vLE#k*u%^bTx5q*ixtwYQ7kN`aO8&LvyF$&R1p-ddX|cbf1oH_p*2h z$m?A&R!hFjm)S+cSz||MH(pj?z{C9?Z80n!{#cy9uYmB|APMickD`<}0~3&1b{4`) zY$HS-)9G;%e2B=tTTd8oWbl-q)yrVKh!5O-!-j+Ra}|d(GM9_YPZQ~?ZX%)k zDokwu_2eB%L zsql2P7B{6IcIUPP8XN}HiXn5CmZu6vN|~VKtT(ZNyDL9_FPMn@rNYo4XS<5A_ICbQ z?eu{-{q&3Pr8<@sUL?TQnmvH6C+F28J+Asy+DbnwN9C3^zW3U#>l$M18)8wslQzp= z7l4xt0_mxtc}%o%H=E*!G?)IGCCu~HQe`R2#|7gpY z84F~pC76OA6gy=+zT7=I|M22XfKaORP-6a{(0YN|)Vq(v-R`irf<%c-jlubN7)}-+ zOUk|F?MJLhK7A6FB$1D;XH^*`CDRUk<60K+2vPXwjO}c5h{i}{hsaWA8ioW?S1rKu zsPZ#BMwn1tnYEA~j;hE)f5QVnkU7)fSFk+Pyxn2qU%7C7?!KEBivxHz9>qvKYXR`K zd(^bNofBEr6k>Gc67kMIW)c{u95MXY9LTdIZIb~}e3oD^1636H=Skk8NT8ioKOmS9 zv%uf+7i@gDQFM}{p58e?GE`_l3ZNexRJew}^#<)9j)I(iN@rN`0LFWoJ8hQ`i#BIS znu!N_avd{uV6&mq9TBQH?n+VqodaW$u%bEQAZ)+;Od&stpNr8@bS;|H5bIf<^8#T_ z|4K^@GvH~TT;%FI^{knT4b2XOM?JE(|E4?qp54;Y>?zg2r|w#Jn7mMs%z!$zMT*{l z<${!$bCyGO*qmrr;wWz+1zJiMD#|$jqO84$mkKVe$IKTr>_Q5&A@PeoZX=o3Ml}lvT^WI4e3j1By>MpzMphGV#y*St+uj$g*R;hfCK)4kWWt( zkxcx9FKbfRLn!GWXJ={hY&MXmOqyo!H8IF);T2i2wn{$7Lyo(5B(^fxLN-=7(~aSh z0n@i$+2-6MFOP~~VgM3D*})5hTzWCWq5n8-f;q$eeE|k&o5w=1v(Fx>d-!1g%&+A? zKb(;Fb+F4XYZoXV;$kt8LacCEmF>5e0xnB(rUUszyL}(VSV{mgZ!YbG6Ndq?-hX2j z-LLHj3-#!haM2QB|CinYp+|u{qIt#fP2vs`D#Ib%pfT(U$U5l`J%s*|$w@yyD=P<)f&AQy5oN<2$o1*1h^qB) zEBPnnqdHs_a-eF@wcgSX%1<7&__`y185MzouVAb zD_seBJYKMJq*QnCCxIzbS!j$r*$YYNde<@gAZ>rnT&%PzMDiKPoA?5bS~rENOe7^& zzrc^Gy3Xd?R>$S0_mlDxOZQa+xkFMw{nvmK$6naLIZ8-qTb|_k@cLzB;uIw9iv4J9 zQj7z+dwapr{tZN;EL$zZXX5XV8opt<%%spM#^R=DDY!38bWDC$ALG$Kcxk@}B<^Ma ziRDk8LnRjfRmPmu{)d+qRed(89kxSUmof4<{R;&pAwd`wAMR$bbT}@FS3&Xg*tKjII8aCXvuFvGod& zO!xQJMV6MgngKO4Qa~ggeqE?t+lOgKY(_u>doec6_(r4exx`0U;8C2YAHX5$s{+=( zAXMV(KkHs77iHK%q5zr`Go5M6M+|A0$o9Dh)pI`aFmNgl>6X&c~rKXb6h>UPE)qq zl+&*$qvePW?%?fysQ8=Rv5v(FiunnUi!q&+H=65iwm(PxjuT?u{Qg=%&dgfX^nwfs z1D~M|&B4tUh2RVwE8R&ms~?u_k@~dvcYw)?xdBEqh)5LcF{(PP!a0>!TTD$M!RT40 zw=}xRL{E|J^nq18T-aE1AjMj=Z^=W)DBGk+S!}V#n63bnu17zdmnxA$lGpQQ=fMp` z7c%Htp^xa0VEWchm`_Sp8N^yK=jTy>b+nj)WU29Ys}3!!k5!F&Y@p8zX8}c_N+!=GZ+o|@! zy&jGLn&5&gq>G||V(I5St}z4LV`uFua3pJ9XRqJAFlpQCYA@RR0RthcrErQ$TEWM( z@LO;13N)*91u$k9bzCH0?MugTtTVLKas&T*^Fwp*yjyopvbLOZv*QCl+(wOeaxkT6 z$+G+ejP%VtY-IV-AY0uIDtG69FlG$RRbhppNJZ-30DdP=o&GXL8z%j>HE`A#QD%OO z$>PUSK6Q(&Js_7T2|r%@V(N>hvq4v|IW0Ef$>FKjsp3RzU<@B0${HdQyL&kw$VsTT zs+IwTYH-bH)Hynu(5ao_{ZX{y{}doesr2$Us$$%;cFJ7h*jg}1)zdbHPegP#NyxkUZluk|&uve3D*>P|MlVup zL-;5V3JT(re)t_o7zn$TKRveO04QKtCYl1PUM_b|-Os=tEF+FQ5Zr{$v4xzrj#tm2 z9ksqF13I*aR7VThngFKb0ZR{IMmJ?XCo=_|R9cY%=2Yr_FeGX6Hg@Llo8!IswbiKH z20UOpnq->4d4wzwm{`|e^o^E&{3v|=AiN22`fc;%_kW%Vc2qC_JG*;F$nblASv#H{ z=zBesbsxVO7CiGRG0a+1GhFscKET59s$Z`nGaKHQHa|q8(WH(-z+EOvjcqe9XB`j4 z)}%JQ1o9)`n@iHpV|m)kBwSVCfA)BMvz_mPy!vl?vFlC;THMoa*x})PFjP4O1&^!C zfSL1yQebs~KCj~d3pqa$0uEqt;&UV(tNlcgG9H&Z{od-4Jb^8KiR=RCAXc8^Pnt56 zp<4fOnF7(bgbec|eH*8q%=yQ#*U3Q}PBeB08SCBn-k=`Wbbf^^x4a3MjkaPFNnUFdMfRf4_)<9|O9lJ6rfw{N5^ zJgY?C$$^1|zf3jRLsfy=3JSrYjD^h1kZ59bHm?spdP4xC3S$C;kEs#9HP53gXJuFc zs_E!d0#h~_tfq=AjZ+|Z(s$H6$r$NEAzFVcC~>AO)@Miedw+-Q1=M|{jfj({r;%J} z?;#2gK17ENUCa&Lb3Bc=>kYX7aclF!hpuOJ`0;dLCnk$6m1;0C;Ec!Q7PI3lVQ>@9 z#jE$Tum{wz`|vhoR@H;e!*g$&Yt$(iPox|OewxU17{37kyo`4wSj3stl;@|gcQ=yW zSdvttL=zzmQNNJi3xkA!?K1ip?FlupwMMK=x+5#RUV>$`!1)=j+RS_Oz`@XJeUd5- z(I)ohm~8u<(s9Qu3XM$HDy8R@hXC6-gqF-Zo1%g+Y6WQBz4JUNE09z-AG;*RdF$jI zQv;XDM!0DY(pXZty|%QvZ)UsDINHnEXBhgW`hg0D|{m#K2yrCsb?rE6whMejDq2J6d(8`t8hNoE&*Df2Xdz|(9?Mle5j7*59K%vb3gm?YZ}472 zXGBU-0DTCZF)5>rECxvx&_EZ>eu^*AUN__yGcO}=GB!ha*|V2DSW7}LauFxniTNTmDm%r=}OshBE*pw-{e0g41^s`5)_x8 z>rBSSXwv}%!3n?>|Gvjqk0)7MS7@-Bw;jNB{_aZ;buuV9$lo<#MKhuZEQm3p?Gm!w4o!WbsIe!5v^1PZf}B4yz-G50d&p{{uK$uZ7TM zFHj7&C%4%tFZ)TayaZ(LA@yayByd=Enf;bG zBWZvuY#Cx0BQm|z^FAF+&IlQt<^_2e$%%X6Tv+)MLiw=GH6bBAtLf`Y>4@@{OAMhH z6Iy&sW-L^%QGu#K0UM}IFc`aXCRIAYTci#@!lUgV&6#tsn7_F2as`RqdViL*3dnuD{F|AZ79Bo}`$_iIv8v89>*IwkZs?_leb)+x45NzQ*bzo(HnOsN4 zYDI3TAM^b`+ra6uee0!`clIsr?s4a%C5Chdvr^t6bdfv|>PRRsQbvbiYIZHeiIk`V z@;Y>$P{fU6!j3O7rLNg@equQ=?>`Uf7>vM{XEJ!gjjD>5s1gK!WTVx{t%_r$033PX zG=H4vtiYtp77l%%2)JY!#b#Yqf2a{N0uUKYjL2f(D>7Tgl$L}g*}jz{-}-=#BnsX_~HC-w@s;9>9JAIU3iv%$g05E`AIpl%>A!q zEJiBBZih*deoUT!dD(*8wp>rMNPA&-b_0btyv?5&O|nZ+LD)Yvf(5C zZcJZgoo07X=X&%z*5&*5kK-ZvbZg}KhRBl@Y*%rL@(#i}l5-mSbA~1f0~I+sX^ILQ zoN@doGAEFpRf999$yC&iN>u8&W+WMO?91aZGIz<{UHmh$~$~nG-!(8qHlZKE&p~eT0Mza^uU)N|#Lc((^aSYm$L z8+Iq`%G8b`>?S@QKPmn@)sjd(cJnBJ*95#-JAKk#AlzeRyJ>T&D|X&kNf{YkZmP$O zg(~pK6P7(lgMik&`f+|I*WZdJX91Hp-z$7MS|y&1n|YdY>2mJ|WiSV0VMCa!aK9dKMj5g1jFAq4-$J-{uMDa*Q8`e>%a@)OS2wfG4}$ z&WM)IEB=F+0 zXZ=-SB0m({pu9`gfr1@E>w(P~-MmL%x{Qo=m;DXV2mm1p`5;_<0TN9Gh0x&8B0U3R z5^)p?!DhTR`E~pCAOA=kEh0PO^A453e0WK}AWnas+TB}o9>pNKObrEd9w4RQs=uHk z(ytzgDELmDq99#xwt|du`EL8r{t#d-Ao#jLD1vKPjhCw$9G;zGIb9-o-&MNww{?a;c{0wk^5g?pbc4~`{Xly-pwdyA<&*AMI4==e=zpeQ z9G_vFLfHAba*tVcF7 z2|sY+32w^}S-)?gN_BR$%<)ozm3|bf(&JGDQG(b46BLiotrlI*UnQ(1`KijF} z64~gxrkO;F>75@h#WU%O4V~2YrYP{%)7sl)Mv6(l_UJYHko#HDiH<*T#fynt0Ck

h)acj=@NW!I^jjMrzM=7LGMzUp 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.ico b/src-tauri/icons/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..508787d1aae495dbe0c713d054acbbcaabbe3422 GIT binary patch literal 17160 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 Y%;s>S#a@$*`+j-4R}HlaFWW}^A7%wT, + pub color_hex: String, + pub selected: bool, + pub access_role: String, + pub time_zone: String, + pub primary: bool, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Attendee { + pub email: String, + pub display_name: Option, + /// needsAction | declined | tentative | accepted + pub response_status: String, + pub organizer: bool, + #[serde(rename = "self")] + pub is_self: bool, + pub optional: bool, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Conference { + /// hangoutsMeet, addOn, and so on + pub kind: String, + pub uri: Option, + pub label: Option, +} + +/// Identifies one occurrence of a series, stable across syncs. `original_start` is None for a +/// single event and the unmoved start of the occurrence for anything recurring. +#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct InstanceKey { + pub event_id: String, + pub original_start: Option, +} + +/// One event occurrence, already expanded and already converted to the local zone. `start` and +/// `end` are RFC3339 with an offset, except when `all_day`, where they are date-only `YYYY-MM-DD` +/// and must never be shifted into a zone. `start_ms` and `end_ms` are epoch milliseconds, with +/// all-day events pinned to local midnight, and `end_ms` is exclusive. +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Instance { + pub event_id: String, + pub calendar_id: String, + pub account_id: String, + pub original_start: Option, + pub start: String, + pub end: String, + pub start_ms: i64, + pub end_ms: i64, + pub all_day: bool, + pub summary: String, + pub description: Option, + pub location: Option, + /// confirmed | tentative | cancelled + pub status: String, + pub recurring: bool, + /// Resolved for rendering: the event's own colour when it has one, else its calendar's. + pub color_hex: String, + /// Google's per-event colour id, 1 to 11. None means the event follows its calendar. + pub color_id: Option, + pub etag: Option, + pub organizer: Option, + pub attendees: Vec, + pub conference: Option, + pub read_only: bool, + /// Written locally and still sitting in the outbox. + pub pending: bool, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct EventDraft { + pub calendar_id: String, + pub summary: String, + pub description: Option, + pub location: Option, + pub start: String, + pub end: String, + pub all_day: bool, + /// Raw RFC5545 lines (RRULE/RDATE/EXDATE), empty for a one-off. + #[serde(default)] + pub recurrence: Vec, + /// Google's per-event colour id, 1 to 11. Absent means follow the calendar. + #[serde(default)] + pub color_id: Option, +} + +/// An absent field means unchanged. An empty string on `description` or `location` clears it. +#[derive(Debug, Clone, Default, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct EventPatch { + #[serde(default)] + pub summary: Option, + #[serde(default)] + pub description: Option, + #[serde(default)] + pub location: Option, + #[serde(default)] + pub start: Option, + #[serde(default)] + pub end: Option, + #[serde(default)] + pub all_day: Option, + #[serde(default)] + pub calendar_id: Option, + #[serde(default)] + pub recurrence: Option>, + /// An empty string clears it back to the calendar's colour. + #[serde(default)] + pub color_id: Option, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub enum Scope { + This, + Following, + All, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SyncStatus { + /// idle | syncing | error + pub phase: String, + /// Epoch milliseconds of the last successful sync. + pub last_sync: Option, + pub error: Option, + pub pending_writes: u32, + pub message: Option, +} + +impl Default for SyncStatus { + fn default() -> Self { + SyncStatus { + phase: "idle".to_string(), + last_sync: None, + error: None, + pending_writes: 0, + message: None, + } + } +} + +/// Payload of the `auth` event, the same shape as margin's `gdrive-auth`. +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct AuthEvent { + pub ok: bool, + pub error: Option, + pub account_id: Option, + pub email: Option, +} diff --git a/src-tauri/src/google/api.rs b/src-tauri/src/google/api.rs new file mode 100644 index 0000000..6a27e8a --- /dev/null +++ b/src-tauri/src/google/api.rs @@ -0,0 +1,476 @@ +// Typed wrapper over the Google Calendar REST API. +// +// Everything the sync engine and the write path need: +// calendar_list(access, sync_token, page_token) -> CalendarListPage +// events_list(access, calendar_id, sync_token, page) -> EventsPage (one page; caller pages) +// events_insert / events_patch / events_delete, all carrying If-Match where an etag is known +// events_instances(access, calendar_id, event_id, original_start) -> Vec +// +// The sync chain constraint: `singleEvents=false`, `showDeleted=true`, `maxResults=2500`, and the +// parameter set byte-identical on every call in a chain including the first. `timeMin`/`timeMax` +// are rejected alongside `syncToken`. + +use serde::de::DeserializeOwned; +use serde::{Deserialize, Serialize}; + +use crate::google::auth::HTTP; + +const BASE: &str = "https://www.googleapis.com/calendar/v3"; + +/// One page of events. Google caps this at 2500 and the value is part of the sync chain, so it is +/// a constant rather than an argument. +pub const MAX_RESULTS: &str = "2500"; + +/// A Google event exactly as returned, before flattening into the store. +#[derive(Debug, Clone, Default, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct RawEvent { + pub id: String, + #[serde(default)] + pub etag: Option, + #[serde(default)] + pub status: Option, + #[serde(default)] + pub summary: Option, + #[serde(default)] + pub description: Option, + #[serde(default)] + pub location: Option, + #[serde(default)] + pub start: Option, + #[serde(default)] + pub end: Option, + #[serde(default)] + pub recurrence: Option>, + #[serde(default)] + pub recurring_event_id: Option, + #[serde(default)] + pub original_start_time: Option, + #[serde(default)] + pub organizer: Option, + #[serde(default)] + pub attendees: Option, + #[serde(default)] + pub conference_data: Option, + #[serde(default)] + pub updated: Option, + #[serde(default)] + pub transparency: Option, + #[serde(default)] + pub color_id: Option, +} + +#[derive(Debug, Clone, Default, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct EventDateTime { + /// Date-only, for an all-day event. Never shift this into a zone. + #[serde(default)] + pub date: Option, + /// RFC3339 with an offset. + #[serde(default)] + pub date_time: Option, + #[serde(default)] + pub time_zone: Option, +} + +/// One page of `events.list`. `next_sync_token` is present only on the final page. +#[derive(Debug, Clone, Default, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct EventsPage { + #[serde(default)] + pub items: Vec, + #[serde(default)] + pub next_page_token: Option, + #[serde(default)] + pub next_sync_token: Option, +} + +#[derive(Debug, Clone, Default, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct RawCalendar { + pub id: String, + #[serde(default)] + pub summary: Option, + #[serde(default)] + pub description: Option, + #[serde(default)] + pub background_color: Option, + #[serde(default)] + pub access_role: Option, + #[serde(default)] + pub time_zone: Option, + #[serde(default)] + pub primary: Option, + #[serde(default)] + pub selected: Option, + #[serde(default)] + pub deleted: Option, +} + +#[derive(Debug, Clone, Default, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct CalendarListPage { + #[serde(default)] + pub items: Vec, + #[serde(default)] + pub next_page_token: Option, + #[serde(default)] + pub next_sync_token: Option, +} + +/// One page of `events.instances`. +#[derive(Debug, Clone, Default, Deserialize)] +#[serde(rename_all = "camelCase")] +struct InstancesPage { + #[serde(default)] + items: Vec, +} + +/// A sync token that Google has expired. The caller drops that one calendar's rows and cursor and +/// full-resyncs it alone. +#[derive(Debug, Clone)] +pub enum ApiError { + /// HTTP 410, the sync token is dead. + SyncTokenExpired, + /// HTTP 412, the etag did not match, so someone else won. + PreconditionFailed, + /// Network reachability, as opposed to a rejection from Google. + Offline(String), + Other(String), +} + +impl std::fmt::Display for ApiError { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + ApiError::SyncTokenExpired => write!(f, "sync token expired"), + ApiError::PreconditionFailed => write!(f, "the event changed elsewhere"), + ApiError::Offline(e) => write!(f, "offline: {e}"), + ApiError::Other(e) => write!(f, "{e}"), + } + } +} + +impl From for String { + fn from(e: ApiError) -> String { + e.to_string() + } +} + +/// A failure to reach Google at all is Offline. Anything reqwest raises after a response has +/// arrived is a real error and keeps its text. +impl From for ApiError { + fn from(e: reqwest::Error) -> ApiError { + if e.is_connect() || e.is_timeout() || e.is_request() || e.is_body() { + ApiError::Offline(e.to_string()) + } else { + ApiError::Other(e.to_string()) + } + } +} + +/// Google's error body is a wall of JSON carrying the same sentence three times over. The one +/// useful line is `error.message`, so pull it out and keep the rest out of the user's face. A body +/// that will not parse is truncated rather than pasted whole. +fn explain(body: &str) -> String { + if let Ok(value) = serde_json::from_str::(body) { + if let Some(message) = value + .get("error") + .and_then(|e| e.get("message")) + .and_then(|m| m.as_str()) + { + return message.to_string(); + } + } + let trimmed = body.trim(); + match trimmed.char_indices().nth(200) { + Some((end, _)) => format!("{}…", &trimmed[..end]), + None => trimmed.to_string(), + } +} + +fn error_for(status: u16, context: &str, body: &str) -> ApiError { + match status { + 410 => ApiError::SyncTokenExpired, + 412 => ApiError::PreconditionFailed, + _ => ApiError::Other(format!("{context} failed ({status}): {}", explain(body))), + } +} + +/// The same body-to-String-first shape as `auth::read_json`, so Google's error payload survives +/// into the message, but keeping the status so the sync engine can tell a 410 from a 412. +async fn read(resp: reqwest::Response, context: &str) -> Result { + let status = resp.status().as_u16(); + let text = resp.text().await?; + if !(200..300).contains(&status) { + return Err(error_for(status, context, &text)); + } + serde_json::from_str(&text) + .map_err(|e| ApiError::Other(format!("{context}: could not parse response: {e}"))) +} + +/// Calendar ids are email shaped and can carry a '#', so they are percent-encoded into the path. +/// Not `form_urlencoded`, which would turn a space into a '+'. +fn path_segment(value: &str) -> String { + let mut out = String::with_capacity(value.len()); + for byte in value.as_bytes() { + match byte { + b'A'..=b'Z' | b'a'..=b'z' | b'0'..=b'9' | b'-' | b'_' | b'.' | b'~' => { + out.push(*byte as char) + } + _ => out.push_str(&format!("%{byte:02X}")), + } + } + out +} + +/// The one definition of the sync chain's parameter set. Every call in a chain, including the +/// first, sends exactly this, which is what makes the chain valid. +fn events_params() -> Vec<(&'static str, &'static str)> { + vec![ + ("singleEvents", "false"), + ("showDeleted", "true"), + ("maxResults", MAX_RESULTS), + ] +} + +fn calendar_params() -> Vec<(&'static str, &'static str)> { + vec![ + ("showDeleted", "true"), + ("showHidden", "true"), + ("maxResults", "250"), + ] +} + +pub async fn calendar_list( + access_token: &str, + sync_token: Option<&str>, + page_token: Option<&str>, +) -> Result { + let mut query = calendar_params(); + if let Some(token) = sync_token { + query.push(("syncToken", token)); + } + if let Some(token) = page_token { + query.push(("pageToken", token)); + } + let resp = HTTP + .get(format!("{BASE}/users/me/calendarList")) + .bearer_auth(access_token) + .query(&query) + .send() + .await?; + read(resp, "Google calendar list").await +} + +/// One page. The caller walks `next_page_token` to exhaustion, because `next_sync_token` only +/// appears on the final page and nothing may be committed before it does. Both tokens are passed +/// through when both are given, which is what the official clients do with `list_next`. +pub async fn events_list( + access_token: &str, + calendar_id: &str, + sync_token: Option<&str>, + page_token: Option<&str>, +) -> Result { + let mut query = events_params(); + if let Some(token) = sync_token { + query.push(("syncToken", token)); + } + if let Some(token) = page_token { + query.push(("pageToken", token)); + } + let resp = HTTP + .get(format!( + "{BASE}/calendars/{}/events", + path_segment(calendar_id) + )) + .bearer_auth(access_token) + .query(&query) + .send() + .await?; + read(resp, "Google events list").await +} + +pub async fn events_insert( + access_token: &str, + calendar_id: &str, + body: &serde_json::Value, +) -> Result { + let resp = HTTP + .post(format!( + "{BASE}/calendars/{}/events", + path_segment(calendar_id) + )) + .bearer_auth(access_token) + .json(body) + .send() + .await?; + read(resp, "Google event create").await +} + +/// `etag` becomes an If-Match, so a 412 tells the caller someone else changed the event first +/// rather than the write silently clobbering them. +pub async fn events_patch( + access_token: &str, + calendar_id: &str, + event_id: &str, + body: &serde_json::Value, + etag: Option<&str>, +) -> Result { + let mut request = HTTP + .patch(format!( + "{BASE}/calendars/{}/events/{}", + path_segment(calendar_id), + path_segment(event_id) + )) + .bearer_auth(access_token) + .json(body); + if let Some(etag) = etag { + request = request.header(reqwest::header::IF_MATCH, etag); + } + let resp = request.send().await?; + read(resp, "Google event update").await +} + +/// Idempotent by design: Google answers 410 for an event that is already gone, and a delete of +/// something already deleted is the outcome the caller wanted. That is the one place where a 410 +/// is not a dead sync token. +pub async fn events_delete( + access_token: &str, + calendar_id: &str, + event_id: &str, + etag: Option<&str>, +) -> Result<(), ApiError> { + let mut request = HTTP + .delete(format!( + "{BASE}/calendars/{}/events/{}", + path_segment(calendar_id), + path_segment(event_id) + )) + .bearer_auth(access_token); + if let Some(etag) = etag { + request = request.header(reqwest::header::IF_MATCH, etag); + } + let resp = request.send().await?; + let status = resp.status().as_u16(); + if (200..300).contains(&status) || status == 404 || status == 410 { + return Ok(()); + } + let text = resp.text().await.unwrap_or_default(); + Err(error_for(status, "Google event delete", &text)) +} + +/// Resolves the concrete instance of a series at `original_start`, which is how a "this occurrence" +/// edit finds its event rather than constructing the instance id by hand. The filter narrows the +/// result to that one occurrence, so there is nothing to paginate. +pub async fn events_instances( + access_token: &str, + calendar_id: &str, + event_id: &str, + original_start: &str, +) -> Result, ApiError> { + let resp = HTTP + .get(format!( + "{BASE}/calendars/{}/events/{}/instances", + path_segment(calendar_id), + path_segment(event_id) + )) + .bearer_auth(access_token) + .query(&[ + ("originalStart", original_start), + ("showDeleted", "true"), + ("maxResults", "250"), + ]) + .send() + .await?; + let page: InstancesPage = read(resp, "Google event instances").await?; + Ok(page.items) +} + +#[cfg(test)] +mod tests { + use super::*; + + /// The real 403 body that reached the UI as a wall of JSON: the same sentence repeated in + /// `errors`, `details` and a localised copy. Only the first sentence is worth showing. + #[test] + fn a_google_error_body_is_reduced_to_its_message() { + let body = r#"{"error":{"code":403, + "message":"Google Calendar API has not been used in project 205537985128 before or it is disabled.", + "errors":[{"message":"Google Calendar API has not been used in project 205537985128 before or it is disabled.","domain":"usageLimits","reason":"accessNotConfigured"}], + "status":"PERMISSION_DENIED", + "details":[{"@type":"type.googleapis.com/google.rpc.ErrorInfo","reason":"SERVICE_DISABLED"}]}}"#; + let ApiError::Other(message) = error_for(403, "Google calendar list", body) else { + panic!("a 403 is an Other"); + }; + assert_eq!( + message, + "Google calendar list failed (403): Google Calendar API has not been used in project 205537985128 before or it is disabled." + ); + assert!(!message.contains("PERMISSION_DENIED")); + } + + #[test] + fn an_unparseable_body_is_truncated_rather_than_pasted_whole() { + let body = "x".repeat(5000); + let ApiError::Other(message) = error_for(500, "Google events list", &body) else { + panic!("a 500 is an Other"); + }; + assert!(message.chars().count() < 260, "was {}", message.chars().count()); + assert!(message.ends_with('…')); + } + + #[test] + fn a_410_is_a_dead_sync_token() { + assert!(matches!( + error_for(410, "Google events list", "{}"), + ApiError::SyncTokenExpired + )); + } + + #[test] + fn a_412_is_a_lost_race() { + assert!(matches!( + error_for(412, "Google event update", "{}"), + ApiError::PreconditionFailed + )); + } + + #[test] + fn anything_else_carries_googles_own_body() { + let error = error_for(403, "Google events list", "rateLimitExceeded"); + match error { + ApiError::Other(message) => { + assert!(message.contains("403"), "{message}"); + assert!(message.contains("rateLimitExceeded"), "{message}"); + } + other => panic!("expected Other, got {other:?}"), + } + } + + #[test] + fn the_sync_chain_parameters_are_fixed_and_carry_no_window() { + let params = events_params(); + assert_eq!( + params, + vec![ + ("singleEvents", "false"), + ("showDeleted", "true"), + ("maxResults", "2500"), + ] + ); + assert!(params.iter().all(|(key, _)| *key != "timeMin" && *key != "timeMax")); + } + + #[test] + fn calendar_ids_are_percent_encoded_into_the_path() { + assert_eq!( + path_segment("a.person@example.com"), + "a.person%40example.com" + ); + assert_eq!( + path_segment("en.uk#holiday@group.v.calendar.google.com"), + "en.uk%23holiday%40group.v.calendar.google.com" + ); + assert_eq!(path_segment("primary"), "primary"); + } +} diff --git a/src-tauri/src/google/auth.rs b/src-tauri/src/google/auth.rs new file mode 100644 index 0000000..c12a441 --- /dev/null +++ b/src-tauri/src/google/auth.rs @@ -0,0 +1,851 @@ +// The OAuth desktop flow, ported from margin/src-tauri/src/gdrive.rs with three fixes: +// +// 1. HTTP gets real timeouts. margin's `LazyLock::new(reqwest::Client::new)` has none, which a +// polling client cannot afford. +// 2. valid_access_token is single-flight. N concurrent calendar syncs must not all refresh. +// 3. Disconnect wipes the whole store for that account, not just the token, so reconnecting as +// a different account cannot write against stale remote ids. + +use std::collections::HashMap; +#[cfg(desktop)] +use std::io::{Read, Write}; +#[cfg(desktop)] +use std::net::{TcpListener, TcpStream}; +use std::sync::LazyLock; +#[cfg(desktop)] +use std::time::Instant; +use std::time::{Duration, SystemTime, UNIX_EPOCH}; + +use base64::Engine; +use base64::engine::general_purpose::URL_SAFE_NO_PAD; +use rand::RngCore; +use serde::Deserialize; +use serde::de::DeserializeOwned; +use sha2::{Digest, Sha256}; +use tauri::{Emitter, Manager}; +use tokio::sync::Mutex; + +use crate::dto::{Account, AuthEvent}; +use crate::google::secrets; + +pub const SCOPES: &str = "openid email https://www.googleapis.com/auth/calendar"; +#[cfg(desktop)] +pub const AUTH_TIMEOUT_SECS: u64 = 120; + +/// How long a mobile consent round trip may take. Far longer than the desktop listener's two +/// minutes, because on a phone the browser is a separate app: signing in, a password manager and +/// a 2FA prompt in a third app can all happen between leaving and coming back, and this process +/// is doing nothing but holding a verifier in the meantime. +#[cfg(mobile)] +pub const PENDING_TIMEOUT_SECS: u64 = 900; + +/// Refresh this many seconds before Google would expire the token, so a request in flight when the +/// clock rolls over does not come back 401. +const EXPIRY_SKEW_SECS: u64 = 60; + +const CREDENTIALS_JSON: &str = include_str!(concat!(env!("OUT_DIR"), "/google-credentials.json")); + +pub static HTTP: LazyLock = LazyLock::new(|| { + reqwest::Client::builder() + .connect_timeout(Duration::from_secs(10)) + .timeout(Duration::from_secs(30)) + .build() + .expect("could not build the HTTP client") +}); + +/// Google issues a different OAuth client per platform and will not accept one in another's place. +/// A desktop client is confidential and redirects to loopback; an Android or iOS client is public, +/// has no secret at all, and redirects to a custom URI scheme. So the credentials file carries up +/// to three clients and the build picks the one for the platform it is being compiled for. +#[derive(Deserialize)] +struct CredentialsFile { + installed: Credentials, + #[serde(default)] + android: Option, + #[serde(default)] + ios: Option, +} + +#[derive(Deserialize)] +pub struct Credentials { + pub client_id: String, + /// Absent for Android and iOS clients. A public client has nothing to keep secret, so PKCE is + /// the only thing standing between an intercepted code and a token, which is why the verifier + /// is not optional anywhere in this file. + #[serde(default)] + pub client_secret: Option, + #[serde(default = "default_auth_uri")] + pub auth_uri: String, + #[serde(default = "default_token_uri")] + pub token_uri: String, + /// Mobile only, and only when Google's console shows something other than the default below. + #[serde(default)] + pub redirect_uri: Option, +} + +fn default_auth_uri() -> String { + "https://accounts.google.com/o/oauth2/auth".to_string() +} + +fn default_token_uri() -> String { + "https://oauth2.googleapis.com/token".to_string() +} + +/// The custom URI scheme an Android build redirects to. It is the package name, which is Google's +/// documented form for an Android client and, unlike the reversed client id, is known at build +/// time, so it can sit in AndroidManifest.xml rather than being pasted in per install. +#[cfg(target_os = "android")] +pub const ANDROID_REDIRECT: &str = "studio.margin.calendar:/oauth2redirect"; + +/// iOS gets no such choice: Google requires the reversed client id, so the scheme is only knowable +/// once the client id is. `docs/mobile.md` says which line of Info.plist to put it on. +#[cfg(target_os = "ios")] +fn reversed_client_id(client_id: &str) -> String { + let base = client_id + .strip_suffix(".apps.googleusercontent.com") + .unwrap_or(client_id); + format!("com.googleusercontent.apps.{base}:/oauth2redirect") +} + +const NOT_SET_UP: &str = "Google Calendar is not set up yet. Add a real OAuth client to google-credentials.json and rebuild."; + +pub fn load_credentials() -> Result { + let parsed: CredentialsFile = serde_json::from_str(CREDENTIALS_JSON) + .map_err(|e| format!("invalid google-credentials.json: {e}"))?; + + #[cfg(target_os = "android")] + let creds = parsed.android.ok_or( + "google-credentials.json has no \"android\" client. Create an OAuth client of type Android in the Google Cloud console and add it. See docs/mobile.md.", + )?; + #[cfg(target_os = "ios")] + let creds = parsed.ios.ok_or( + "google-credentials.json has no \"ios\" client. Create an OAuth client of type iOS in the Google Cloud console and add it. See docs/mobile.md.", + )?; + #[cfg(not(any(target_os = "android", target_os = "ios")))] + let creds = parsed.installed; + + if creds.client_id.starts_with("YOUR_CLIENT_ID") + || creds + .client_secret + .as_deref() + .is_some_and(|secret| secret.starts_with("YOUR_CLIENT_SECRET")) + { + return Err(NOT_SET_UP.to_string()); + } + Ok(creds) +} + +/// Where Google sends the browser back to. Desktop binds a loopback port per attempt, so it is +/// decided in `connect` rather than here and this is mobile only. +#[cfg(mobile)] +pub fn redirect_uri(creds: &Credentials) -> String { + if let Some(explicit) = &creds.redirect_uri { + return explicit.clone(); + } + #[cfg(target_os = "android")] + { + ANDROID_REDIRECT.to_string() + } + #[cfg(not(target_os = "android"))] + { + reversed_client_id(&creds.client_id) + } +} + +/// Reads the body to a String first so Google's error payload survives into the message. +/// Ported from gdrive.rs:286. +pub async fn read_json( + resp: reqwest::Response, + context: &str, +) -> Result { + let status = resp.status(); + let text = resp.text().await.map_err(|e| e.to_string())?; + if !status.is_success() { + return Err(format!("{context} failed ({status}): {text}")); + } + serde_json::from_str(&text).map_err(|e| format!("{context}: could not parse response: {e}")) +} + +#[derive(Default)] +pub struct Session { + pub access_token: Option, + pub access_expiry: u64, + pub email: Option, +} + +/// A consent round trip that has left for the browser and not come back. +/// +/// Desktop does not need this: the loopback listener holds the verifier on its own stack for the +/// two minutes it is alive. Mobile has no listener. The browser is a separate app, this process +/// may be backgrounded while the user consents, and the answer arrives later as a deep link with +/// nothing but a code and a state parameter, so the verifier has to be waiting for it here. +#[cfg(mobile)] +pub struct Pending { + pub state: String, + pub verifier: String, + pub redirect: String, + pub expires: u64, +} + +/// One entry per connected account. The outer Mutex is tokio's, not std's, because +/// `valid_access_token` holds it across the refresh await to keep refresh single-flight. +#[derive(Default)] +pub struct AuthState { + pub sessions: Mutex>, + #[cfg(mobile)] + pub pending: Mutex>, +} + +fn now() -> u64 { + SystemTime::now() + .duration_since(UNIX_EPOCH) + .unwrap_or_default() + .as_secs() +} + +fn random_b64(bytes: usize) -> String { + let mut buf = vec![0u8; bytes]; + rand::thread_rng().fill_bytes(&mut buf); + URL_SAFE_NO_PAD.encode(buf) +} + +fn pkce_challenge(verifier: &str) -> String { + let mut hasher = Sha256::new(); + hasher.update(verifier.as_bytes()); + URL_SAFE_NO_PAD.encode(hasher.finalize()) +} + +fn urlencode(s: &str) -> String { + url::form_urlencoded::byte_serialize(s.as_bytes()).collect() +} + +#[cfg(desktop)] +fn write_http_message(stream: &mut TcpStream, message: &str) { + let body = format!( + "Margin Calendar\ + \ +

{message}

" + ); + let response = format!( + "HTTP/1.1 200 OK\r\nContent-Type: text/html; charset=utf-8\r\nContent-Length: {}\r\nConnection: close\r\n\r\n{}", + body.len(), + body + ); + let _ = stream.write_all(response.as_bytes()); + let _ = stream.flush(); +} + +#[cfg(desktop)] +#[derive(Debug, PartialEq, Eq)] +enum Redirect { + Code(String), + Denied(String), + Mismatch, + /// Anything else the browser asked for on the way, including the favicon. + Waiting, +} + +#[cfg(desktop)] +fn request_path(request: &str) -> &str { + request + .lines() + .next() + .and_then(|line| line.split_whitespace().nth(1)) + .unwrap_or("") +} + +#[cfg(desktop)] +fn parse_redirect(path: &str, expected_state: &str) -> Redirect { + if path == "/favicon.ico" { + return Redirect::Waiting; + } + let parsed = match url::Url::parse(&format!("http://127.0.0.1{path}")) { + Ok(parsed) => parsed, + Err(_) => return Redirect::Waiting, + }; + let mut code = None; + let mut state = None; + let mut error = None; + for (key, value) in parsed.query_pairs() { + match key.as_ref() { + "code" => code = Some(value.into_owned()), + "state" => state = Some(value.into_owned()), + "error" => error = Some(value.into_owned()), + _ => {} + } + } + if let Some(error) = error { + return Redirect::Denied(error); + } + match (code, state) { + (Some(code), Some(state)) if state == expected_state => Redirect::Code(code), + (Some(_), _) => Redirect::Mismatch, + _ => Redirect::Waiting, + } +} + +#[cfg(desktop)] +fn await_code( + listener: TcpListener, + expected_state: &str, + deadline: Instant, +) -> Result { + listener.set_nonblocking(true).map_err(|e| e.to_string())?; + loop { + if Instant::now() > deadline { + return Err("Timed out waiting for Google authorization.".to_string()); + } + match listener.accept() { + Ok((mut stream, _)) => { + stream.set_nonblocking(false).ok(); + stream.set_read_timeout(Some(Duration::from_secs(5))).ok(); + let mut buf = [0u8; 8192]; + let n = stream.read(&mut buf).unwrap_or(0); + let request = String::from_utf8_lossy(&buf[..n]); + match parse_redirect(request_path(&request), expected_state) { + Redirect::Code(code) => { + write_http_message( + &mut stream, + "Connected to Margin Calendar. You can close this tab.", + ); + return Ok(code); + } + Redirect::Denied(error) => { + write_http_message( + &mut stream, + "Authorization was cancelled. You can close this tab.", + ); + return Err(format!("Google authorization failed: {error}")); + } + Redirect::Mismatch => { + write_http_message( + &mut stream, + "Could not verify the request. You can close this tab.", + ); + return Err("State mismatch during Google authorization.".to_string()); + } + Redirect::Waiting => write_http_message(&mut stream, "Waiting for Google…"), + } + } + Err(ref e) if e.kind() == std::io::ErrorKind::WouldBlock => { + std::thread::sleep(Duration::from_millis(150)); + } + Err(e) => return Err(e.to_string()), + } + } +} + +#[derive(Deserialize)] +struct TokenResponse { + access_token: String, + #[serde(default)] + refresh_token: Option, + #[serde(default)] + expires_in: u64, + #[serde(default)] + id_token: Option, +} + +#[derive(Deserialize)] +struct UserInfo { + #[serde(default)] + email: Option, +} + +#[derive(Debug, Default, Deserialize)] +struct IdClaims { + /// Google's stable user id. It survives an email change, which the email does not. + #[serde(default)] + sub: Option, + #[serde(default)] + email: Option, +} + +/// The id_token arrived over TLS straight from Google's token endpoint, so verifying its signature +/// would only re-prove what the transport already proved. Only the payload is read. +fn id_token_claims(id_token: &str) -> Option { + let payload = id_token.split('.').nth(1)?; + let bytes = URL_SAFE_NO_PAD.decode(payload.trim_end_matches('=')).ok()?; + serde_json::from_slice(&bytes).ok() +} + +/// Google rejects an empty `client_secret` rather than ignoring it, so a public mobile client has +/// to omit the field entirely rather than send a blank one. +fn with_secret<'a>( + creds: &'a Credentials, + mut form: Vec<(&'a str, &'a str)>, +) -> Vec<(&'a str, &'a str)> { + if let Some(secret) = creds.client_secret.as_deref() { + form.push(("client_secret", secret)); + } + form +} + +async fn exchange_code( + creds: &Credentials, + code: &str, + redirect: &str, + verifier: &str, +) -> Result { + let form = with_secret( + creds, + vec![ + ("client_id", creds.client_id.as_str()), + ("code", code), + ("code_verifier", verifier), + ("grant_type", "authorization_code"), + ("redirect_uri", redirect), + ], + ); + let resp = HTTP + .post(&creds.token_uri) + .form(&form) + .send() + .await + .map_err(|e| e.to_string())?; + read_json(resp, "Google token exchange").await +} + +async fn refresh_access_token( + creds: &Credentials, + refresh_token: &str, +) -> Result { + let form = with_secret( + creds, + vec![ + ("client_id", creds.client_id.as_str()), + ("refresh_token", refresh_token), + ("grant_type", "refresh_token"), + ], + ); + let resp = HTTP + .post(&creds.token_uri) + .form(&form) + .send() + .await + .map_err(|e| e.to_string())?; + read_json(resp, "Google token refresh").await +} + +async fn fetch_email(access_token: &str) -> Result { + let resp = HTTP + .get("https://www.googleapis.com/oauth2/v2/userinfo") + .bearer_auth(access_token) + .send() + .await + .map_err(|e| e.to_string())?; + let info: UserInfo = read_json(resp, "Google account lookup").await?; + Ok(info.email.unwrap_or_default()) +} + +async fn revoke(token: &str) { + let _ = HTTP + .post("https://oauth2.googleapis.com/revoke") + .form(&[("token", token)]) + .send() + .await; +} + +/// Takes the store's connection for one synchronous unit of work. Nothing here may await: the +/// guard is a std one, so holding it across a suspension point would make the future non-Send. +fn with_conn( + app: &tauri::AppHandle, + f: impl FnOnce(&rusqlite::Connection) -> Result, +) -> Result { + let store = app + .try_state::() + .ok_or("the local store is not open")?; + let conn = store.conn.lock().map_err(|e| e.to_string())?; + f(&conn) +} + +/// Reads the row's `keychain_ref` and stops there. It deliberately does NOT open the token store +/// to confirm the secret is still present. +/// +/// This runs on every `store-changed`, which sync emits on every pass, so a probe here is a file +/// read and a key derivation once a minute for an answer nothing acts on. If the secret really has +/// gone, the next `valid_access_token` says so and the failure surfaces as a sync error, which is +/// the honest place to learn it. +pub async fn list_accounts( + app: &tauri::AppHandle, + _state: &tauri::State<'_, AuthState>, +) -> Result, String> { + with_conn(app, crate::store::read::accounts) +} + +/// The consent URL. Identical on every platform apart from the redirect it asks Google to come +/// back to, which is the whole of the difference between the desktop and mobile flows. +/// +/// select_account on top of margin's consent prompt, because adding a second account is the whole +/// point of the accounts list and Google would otherwise silently reuse the signed-in one. +fn auth_url(creds: &Credentials, redirect: &str, challenge: &str, csrf: &str) -> String { + format!( + "{}?client_id={}&redirect_uri={}&response_type=code&scope={}&code_challenge={}&code_challenge_method=S256&state={}&access_type=offline&prompt={}", + creds.auth_uri, + urlencode(&creds.client_id), + urlencode(redirect), + urlencode(SCOPES), + challenge, + urlencode(csrf), + urlencode("select_account consent"), + ) +} + +/// The system browser, never an in-app webview. Google blocks the embedded-webview flow outright, +/// and it deserves to be blocked: a webview the app controls can read what the user types into it. +fn open_in_browser(app: &tauri::AppHandle, url: &str) { + use tauri_plugin_opener::OpenerExt; + let _ = app.opener().open_url(url.to_string(), None::<&str>); +} + +fn emit_auth(app: &tauri::AppHandle, outcome: Result<(String, String), String>) { + let event = match outcome { + Ok((account_id, email)) => { + crate::emit_store_changed(app, "account-connected"); + AuthEvent { + ok: true, + error: None, + account_id: Some(account_id), + email: Some(email), + } + } + Err(error) => AuthEvent { + ok: false, + error: Some(error), + account_id: None, + email: None, + }, + }; + let _ = app.emit("auth", event); +} + +#[cfg(desktop)] +pub async fn connect(app: tauri::AppHandle) -> Result { + let creds = load_credentials()?; + let verifier = random_b64(64); + let challenge = pkce_challenge(&verifier); + let csrf = random_b64(24); + + let listener = TcpListener::bind("127.0.0.1:0").map_err(|e| e.to_string())?; + let port = listener.local_addr().map_err(|e| e.to_string())?.port(); + let redirect = format!("http://127.0.0.1:{port}"); + let url = auth_url(&creds, &redirect, &challenge, &csrf); + + open_in_browser(&app, &url); + + let app_bg = app.clone(); + tauri::async_runtime::spawn(async move { + let outcome = complete_auth(&app_bg, listener, csrf, verifier, redirect, creds).await; + emit_auth(&app_bg, outcome); + }); + + Ok(url) +} + +/// Mobile has no loopback listener to wait on, so `connect` ends the moment the browser opens and +/// the flow resumes in `handle_redirect` whenever the deep link arrives. What is stashed here is +/// the PKCE verifier and the CSRF state, which is the only thing tying the code that comes back to +/// the request that went out. +#[cfg(mobile)] +pub async fn connect(app: tauri::AppHandle) -> Result { + let creds = load_credentials()?; + let verifier = random_b64(64); + let challenge = pkce_challenge(&verifier); + let csrf = random_b64(24); + let redirect = redirect_uri(&creds); + let url = auth_url(&creds, &redirect, &challenge, &csrf); + + { + let state = app.state::(); + let mut pending = state.pending.lock().await; + *pending = Some(Pending { + state: csrf, + verifier, + redirect, + expires: now() + PENDING_TIMEOUT_SECS, + }); + } + + open_in_browser(&app, &url); + Ok(url) +} + +/// Every URL the OS hands the app on a registered scheme, including ones that have nothing to do +/// with consent. A link that carries no `state` we are waiting for is ignored in silence rather +/// than reported, because another feature may want that scheme later and a stray link is not an +/// authorization failure worth putting on screen. +#[cfg(mobile)] +pub async fn handle_redirect(app: tauri::AppHandle, incoming: &url::Url) { + let mut code = None; + let mut state = None; + let mut error = None; + for (key, value) in incoming.query_pairs() { + match key.as_ref() { + "code" => code = Some(value.into_owned()), + "state" => state = Some(value.into_owned()), + "error" => error = Some(value.into_owned()), + _ => {} + } + } + let state = match state { + Some(state) => state, + None => return, + }; + + // Taken, not read: a code is good once, so leaving the verifier in place would let a replayed + // link start a second exchange. + let auth = app.state::(); + let pending = { + let mut slot = auth.pending.lock().await; + match slot.as_ref() { + Some(p) if p.state == state => slot.take(), + // A link whose state matches nothing is either stale or forged. Either way it is not + // this app's pending request, so it is not this app's business. + _ => return, + } + }; + let pending = match pending { + Some(pending) => pending, + None => return, + }; + + if let Some(error) = error { + emit_auth(&app, Err(format!("Google authorization failed: {error}"))); + return; + } + if now() > pending.expires { + emit_auth( + &app, + Err("The sign-in took too long. Try connecting again.".to_string()), + ); + return; + } + let code = match code { + Some(code) => code, + None => { + emit_auth(&app, Err("Google returned no authorization code.".to_string())); + return; + } + }; + + let outcome = match load_credentials() { + Ok(creds) => finish(&app, &creds, &code, &pending.redirect, &pending.verifier).await, + Err(e) => Err(e), + }; + emit_auth(&app, outcome); +} + +#[cfg(desktop)] +async fn complete_auth( + app: &tauri::AppHandle, + listener: TcpListener, + csrf: String, + verifier: String, + redirect: String, + creds: Credentials, +) -> Result<(String, String), String> { + let code = tauri::async_runtime::spawn_blocking(move || { + let deadline = Instant::now() + Duration::from_secs(AUTH_TIMEOUT_SECS); + await_code(listener, &csrf, deadline) + }) + .await + .map_err(|e| e.to_string())??; + + finish(app, &creds, &code, &redirect, &verifier).await +} + +/// Code to stored account. Everything past the point where the two flows stop differing. +async fn finish( + app: &tauri::AppHandle, + creds: &Credentials, + code: &str, + redirect: &str, + verifier: &str, +) -> Result<(String, String), String> { + let tokens = exchange_code(creds, code, redirect, verifier).await?; + let refresh = tokens + .refresh_token + .clone() + .ok_or("Google did not return a refresh token. Remove Margin Calendar from your Google account permissions and connect again.")?; + + let claims = tokens + .id_token + .as_deref() + .and_then(id_token_claims) + .unwrap_or_default(); + let email = match claims.email { + Some(email) if !email.is_empty() => email, + _ => fetch_email(&tokens.access_token).await?, + }; + // The Google user id keys everything. It falls back to the email only when the id_token is + // missing, which should not happen while `openid` is in the scope set. + let account_id = claims.sub.unwrap_or_else(|| email.clone()); + if account_id.is_empty() { + return Err("Google returned neither a user id nor an email address.".to_string()); + } + + secrets::store(&account_id, &refresh)?; + let reference = secrets::reference(&account_id); + with_conn(app, |conn| { + crate::store::write::upsert_account(conn, &account_id, &email, Some(&reference)) + })?; + + let state = app.state::(); + let mut sessions = state.sessions.lock().await; + sessions.insert( + account_id.clone(), + Session { + access_token: Some(tokens.access_token), + access_expiry: now() + tokens.expires_in.saturating_sub(EXPIRY_SKEW_SECS), + email: Some(email.clone()), + }, + ); + + Ok((account_id, email)) +} + +pub async fn disconnect( + app: &tauri::AppHandle, + state: &tauri::State<'_, AuthState>, + account_id: &str, +) -> Result<(), String> { + if let Ok(Some(refresh)) = secrets::load(account_id) { + revoke(&refresh).await; + } + { + let mut sessions = state.sessions.lock().await; + sessions.remove(account_id); + } + // Every row the account owns, not just its token. margin's disconnect cleared the token and + // left the remote ids behind, so connecting a different account afterwards wrote against them. + let removed = secrets::delete(account_id); + with_conn(app, |conn| { + crate::store::write::wipe_account(conn, account_id) + })?; + crate::emit_store_changed(app, "disconnect"); + removed +} + +/// Single-flight: the map lock is held across the refresh await, so concurrent callers queue on +/// one token request rather than each firing their own. That serializes refreshes across accounts +/// as well, which is the right trade for something that happens once an hour per account. +pub async fn valid_access_token( + _app: &tauri::AppHandle, + state: &AuthState, + account_id: &str, +) -> Result { + let mut sessions = state.sessions.lock().await; + if let Some(session) = sessions.get(account_id) { + if let Some(token) = &session.access_token { + if now() < session.access_expiry { + return Ok(token.clone()); + } + } + } + + let refresh = secrets::load(account_id)? + .ok_or_else(|| format!("Account {account_id} is not connected to Google."))?; + let creds = load_credentials()?; + let tokens = refresh_access_token(&creds, &refresh).await?; + if let Some(rotated) = &tokens.refresh_token { + if rotated != &refresh { + secrets::store(account_id, rotated)?; + } + } + + let session = sessions.entry(account_id.to_string()).or_default(); + session.access_token = Some(tokens.access_token.clone()); + session.access_expiry = now() + tokens.expires_in.saturating_sub(EXPIRY_SKEW_SECS); + Ok(tokens.access_token) +} + +/// The token store needs a directory and the sessions map wants the stored emails, both of which +/// are only knowable once the app is up. +pub fn init_sessions(app: &tauri::AppHandle) { + if let Ok(dir) = crate::library::app_data_dir(app) { + secrets::init(dir); + } + let app = app.clone(); + tauri::async_runtime::spawn(async move { + let accounts = match with_conn(&app, crate::store::read::accounts) { + Ok(accounts) => accounts, + Err(_) => return, + }; + let state = app.state::(); + let mut sessions = state.sessions.lock().await; + for account in accounts { + sessions.entry(account.id).or_default().email = Some(account.email); + } + }); +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn pkce_challenge_matches_the_rfc7636_vector() { + assert_eq!( + pkce_challenge("dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk"), + "E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM" + ); + } + + #[test] + fn a_verifier_is_url_safe_and_unpadded() { + let verifier = random_b64(64); + assert!(verifier + .chars() + .all(|c| c.is_ascii_alphanumeric() || c == '-' || c == '_')); + } + + #[test] + fn request_path_reads_the_target_of_the_request_line() { + let request = "GET /?code=abc HTTP/1.1\r\nHost: 127.0.0.1\r\n\r\n"; + assert_eq!(request_path(request), "/?code=abc"); + assert_eq!(request_path(""), ""); + } + + #[test] + fn a_matching_state_yields_the_code() { + assert_eq!( + parse_redirect("/?code=4%2F0Ab&state=xyz&scope=openid", "xyz"), + Redirect::Code("4/0Ab".to_string()) + ); + } + + #[test] + fn a_foreign_state_is_rejected_rather_than_exchanged() { + assert_eq!(parse_redirect("/?code=4/0Ab&state=other", "xyz"), Redirect::Mismatch); + assert_eq!(parse_redirect("/?code=4/0Ab", "xyz"), Redirect::Mismatch); + } + + #[test] + fn a_denial_carries_googles_reason() { + assert_eq!( + parse_redirect("/?error=access_denied&state=xyz", "xyz"), + Redirect::Denied("access_denied".to_string()) + ); + } + + #[test] + fn incidental_requests_keep_the_listener_waiting() { + assert_eq!(parse_redirect("/favicon.ico", "xyz"), Redirect::Waiting); + assert_eq!(parse_redirect("/", "xyz"), Redirect::Waiting); + assert_eq!(parse_redirect("", "xyz"), Redirect::Waiting); + } + + #[test] + fn id_token_claims_reads_the_subject_and_email() { + let payload = URL_SAFE_NO_PAD.encode(br#"{"sub":"11829","email":"a@b.test","aud":"x"}"#); + let claims = id_token_claims(&format!("header.{payload}.signature")).expect("claims"); + assert_eq!(claims.sub.as_deref(), Some("11829")); + assert_eq!(claims.email.as_deref(), Some("a@b.test")); + } + + #[test] + fn a_malformed_id_token_is_none_rather_than_a_panic() { + assert!(id_token_claims("not-a-jwt").is_none()); + assert!(id_token_claims("header..signature").is_none()); + } +} diff --git a/src-tauri/src/google/mod.rs b/src-tauri/src/google/mod.rs new file mode 100644 index 0000000..ae19ad8 --- /dev/null +++ b/src-tauri/src/google/mod.rs @@ -0,0 +1,34 @@ +// auth.rs OAuth, token refresh. Loopback on desktop, a deep link on mobile. +// api.rs typed Google Calendar REST wrapper +// secrets.rs refresh tokens, encrypted on disk, same on every platform + +pub mod api; +pub mod auth; +pub mod secrets; + +use crate::dto::Account; + +pub use auth::AuthState; + +#[tauri::command] +pub async fn accounts_list( + app: tauri::AppHandle, + state: tauri::State<'_, AuthState>, +) -> Result, String> { + auth::list_accounts(&app, &state).await +} + +/// Returns the consent URL. Completion arrives on the frontend as the `auth` event. +#[tauri::command] +pub async fn account_connect(app: tauri::AppHandle) -> Result { + auth::connect(app).await +} + +#[tauri::command] +pub async fn account_disconnect( + app: tauri::AppHandle, + state: tauri::State<'_, AuthState>, + account_id: String, +) -> Result<(), String> { + auth::disconnect(&app, &state, &account_id).await +} diff --git a/src-tauri/src/google/secrets.rs b/src-tauri/src/google/secrets.rs new file mode 100644 index 0000000..6de1724 --- /dev/null +++ b/src-tauri/src/google/secrets.rs @@ -0,0 +1,275 @@ +// Where refresh tokens live: an encrypted file in the app's data directory, on every platform. +// Never plaintext on disk, never in the SQLite store, one entry per account id. +// +// This used to be the OS credential store with this file as a fallback, and that is gone. The +// credential stores did not survive contact with five platforms: +// +// macOS Keychain ties an item's ACL to the code signature, so an ad-hoc signed build gets a +// new identity on every compile and macOS correctly re-asks for authorization every +// single time. An authorization dialog a minute is not something to ask anyone to live +// with, so macOS was already excluded before mobile came up at all. +// Android The keyring crate has no Android backend. There is nothing to fall back from. +// Linux A minimal window manager often runs no Secret Service daemon, so the fallback ran +// anyway on exactly the machines that most wanted the daemon. +// +// That left one real implementation and four ways of reaching it, so the branching went and the +// file stayed. Be clear about what it is worth, because it is not the same everywhere: +// +// iOS, Android The app sandbox is the boundary. Another app cannot read this file, so the +// encryption is defence in depth over a boundary the OS already enforces. +// Desktop Anyone who can read the user's home directory can read the token. The key is +// derived from a salt sitting next to the ciphertext, mixed with a machine +// identifier, so a copied home directory does not decrypt elsewhere, and that is +// the whole of the protection. Better than plaintext, worse than the Secret +// Service, and chosen knowing that. +// +// The token is a Google refresh token scoped to one calendar account, revocable from the user's +// Google account page, and revoked here on disconnect. + +use std::collections::BTreeMap; +use std::io::Write; +use std::path::{Path, PathBuf}; +use std::sync::OnceLock; + +use base64::Engine; +use base64::engine::general_purpose::STANDARD as BASE64; +use chacha20poly1305::aead::Aead; +use chacha20poly1305::{Key, KeyInit, XChaCha20Poly1305, XNonce}; +use rand::RngCore; +use sha2::{Digest, Sha256}; + +pub const SERVICE: &str = "studio.margin.calendar"; + +const BLOB_NAME: &str = "tokens.enc"; +const SALT_NAME: &str = "tokens.salt"; +const KEY_CONTEXT: &str = "margin-calendar token store v1"; +const NONCE_LEN: usize = 24; + +/// The names the encrypted store used while it was still the fallback behind a credential store. +/// Read once and migrated, so an existing install does not silently lose its accounts and ask the +/// user to reconnect for no reason they can see. +const LEGACY_BLOB_NAME: &str = "keychain-fallback.enc"; +const LEGACY_SALT_NAME: &str = "keychain-fallback.salt"; + +static DATA_DIR: OnceLock = OnceLock::new(); + +/// Called from `auth::init_sessions` during setup, before any command can run, because this needs +/// a directory and the signatures below deliberately do not carry an AppHandle. +pub fn init(dir: PathBuf) { + let _ = DATA_DIR.set(dir); +} + +/// The reference stored in the `accounts` row. It names the entry, never the secret. +/// +/// The column is still called `keychain_ref` because renaming it would cost a migration and buy +/// nothing: it has only ever held this string. +pub fn reference(account_id: &str) -> String { + format!("{SERVICE}/{account_id}") +} + +pub fn store(account_id: &str, refresh_token: &str) -> Result<(), String> { + let sealed = seal(&key()?, refresh_token.as_bytes())?; + let mut entries = read_blob()?; + entries.insert(account_id.to_string(), sealed); + write_blob(&entries) +} + +pub fn load(account_id: &str) -> Result, String> { + let entries = read_blob()?; + let sealed = match entries.get(account_id) { + Some(sealed) => sealed, + None => return Ok(None), + }; + let plain = open(&key()?, sealed)?; + String::from_utf8(plain) + .map(Some) + .map_err(|_| "the stored token is not valid UTF-8".to_string()) +} + +pub fn delete(account_id: &str) -> Result<(), String> { + let mut entries = read_blob()?; + if entries.remove(account_id).is_none() { + return Ok(()); + } + write_blob(&entries) +} + +fn data_dir() -> Result { + if let Some(dir) = DATA_DIR.get() { + return Ok(dir.clone()); + } + // Only reachable before setup has run, which on mobile is never: there is no XDG layout to + // guess at there, so the honest answer is the error rather than a path that does not exist. + let base = std::env::var_os("XDG_DATA_HOME") + .map(PathBuf::from) + .or_else(|| std::env::var_os("HOME").map(|home| PathBuf::from(home).join(".local/share"))) + .ok_or("no app data directory is known")?; + let dir = base.join(SERVICE); + std::fs::create_dir_all(&dir).map_err(|e| e.to_string())?; + Ok(dir) +} + +/// The salt is per install and random. Losing it means losing every stored token, which costs a +/// reconnect and nothing else, so it is written once and never rotated. +fn key() -> Result<[u8; 32], String> { + let dir = data_dir()?; + let path = dir.join(SALT_NAME); + let legacy = dir.join(LEGACY_SALT_NAME); + let salt = match std::fs::read(&path) { + Ok(bytes) if bytes.len() == 32 => bytes, + _ => match std::fs::read(&legacy) { + // Same salt, new name. Rewritten rather than renamed so an interrupted migration + // leaves both files readable rather than neither. + Ok(bytes) if bytes.len() == 32 => { + write_private(&path, &bytes)?; + bytes + } + _ => { + let mut bytes = vec![0u8; 32]; + rand::thread_rng().fill_bytes(&mut bytes); + write_private(&path, &bytes)?; + bytes + } + }, + }; + let mut hasher = Sha256::new(); + hasher.update(KEY_CONTEXT.as_bytes()); + hasher.update(&salt); + hasher.update(machine_id().as_bytes()); + Ok(hasher.finalize().into()) +} + +/// Mixed into the key so a copied home directory does not decrypt on another machine. Empty on +/// macOS, iOS and Android, where no such file exists and the sandbox or the file mode is doing the +/// work instead. An empty contribution is not a weakness here: the salt is already random and +/// per install, and this only ever adds entropy. +fn machine_id() -> String { + for path in ["/etc/machine-id", "/var/lib/dbus/machine-id"] { + if let Ok(id) = std::fs::read_to_string(path) { + let id = id.trim(); + if !id.is_empty() { + return id.to_string(); + } + } + } + String::new() +} + +fn read_blob() -> Result, String> { + let dir = data_dir()?; + let path = dir.join(BLOB_NAME); + let text = match std::fs::read_to_string(&path) { + Ok(text) => text, + Err(e) if e.kind() == std::io::ErrorKind::NotFound => { + match std::fs::read_to_string(dir.join(LEGACY_BLOB_NAME)) { + Ok(text) => text, + Err(e) if e.kind() == std::io::ErrorKind::NotFound => return Ok(BTreeMap::new()), + Err(e) => return Err(e.to_string()), + } + } + Err(e) => return Err(e.to_string()), + }; + serde_json::from_str(&text).map_err(|e| e.to_string()) +} + +fn write_blob(entries: &BTreeMap) -> Result<(), String> { + let path = data_dir()?.join(BLOB_NAME); + let text = serde_json::to_string(entries).map_err(|e| e.to_string())?; + write_private(&path, text.as_bytes()) +} + +fn seal(key_bytes: &[u8; 32], plain: &[u8]) -> Result { + let cipher = XChaCha20Poly1305::new(Key::from_slice(key_bytes)); + let mut nonce = [0u8; NONCE_LEN]; + rand::thread_rng().fill_bytes(&mut nonce); + let mut sealed = cipher + .encrypt(XNonce::from_slice(&nonce), plain) + .map_err(|_| "could not encrypt the token".to_string())?; + let mut out = nonce.to_vec(); + out.append(&mut sealed); + Ok(BASE64.encode(out)) +} + +fn open(key_bytes: &[u8; 32], sealed: &str) -> Result, String> { + let raw = BASE64 + .decode(sealed) + .map_err(|e| format!("the stored token is malformed: {e}"))?; + if raw.len() <= NONCE_LEN { + return Err("the stored token is truncated".to_string()); + } + let (nonce, body) = raw.split_at(NONCE_LEN); + let cipher = XChaCha20Poly1305::new(Key::from_slice(key_bytes)); + cipher + .decrypt(XNonce::from_slice(nonce), body) + .map_err(|_| "the stored token could not be decrypted on this machine".to_string()) +} + +/// Written 0600 from creation rather than chmodded after the fact, so the ciphertext is never +/// briefly world readable. The mode is a no-op on the mobile sandboxes and costs nothing there. +fn write_private(path: &Path, bytes: &[u8]) -> Result<(), String> { + if let Some(parent) = path.parent() { + std::fs::create_dir_all(parent).map_err(|e| e.to_string())?; + } + let tmp = PathBuf::from(format!("{}.tmp", path.display())); + { + let mut options = std::fs::OpenOptions::new(); + options.write(true).create(true).truncate(true); + #[cfg(unix)] + { + use std::os::unix::fs::OpenOptionsExt; + options.mode(0o600); + } + let mut file = options.open(&tmp).map_err(|e| e.to_string())?; + file.write_all(bytes).map_err(|e| e.to_string())?; + file.sync_all().map_err(|e| e.to_string())?; + } + std::fs::rename(&tmp, path).map_err(|e| e.to_string()) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn sealed_tokens_round_trip() { + let key = [7u8; 32]; + let sealed = seal(&key, b"1//refresh-token").expect("seal"); + assert_eq!(open(&key, &sealed).expect("open"), b"1//refresh-token"); + } + + #[test] + fn a_different_key_does_not_open_the_token() { + let sealed = seal(&[7u8; 32], b"1//refresh-token").expect("seal"); + assert!(open(&[8u8; 32], &sealed).is_err()); + } + + #[test] + fn each_seal_uses_a_fresh_nonce() { + let key = [7u8; 32]; + assert_ne!( + seal(&key, b"same").expect("seal"), + seal(&key, b"same").expect("seal") + ); + } + + #[test] + fn a_truncated_blob_is_rejected_rather_than_panicking() { + assert!(open(&[7u8; 32], &BASE64.encode([0u8; 8])).is_err()); + } + + #[test] + fn a_tampered_blob_is_rejected_rather_than_returning_plaintext() { + let key = [7u8; 32]; + let sealed = seal(&key, b"1//refresh-token").expect("seal"); + let mut raw = BASE64.decode(&sealed).expect("decode"); + // Past the nonce, so it is the ciphertext that changed and the tag that catches it. + let last = raw.len() - 1; + raw[last] ^= 0x01; + assert!(open(&key, &BASE64.encode(raw)).is_err()); + } + + #[test] + fn a_reference_names_the_entry_and_never_the_secret() { + assert_eq!(reference("1234"), "studio.margin.calendar/1234"); + } +} diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs new file mode 100644 index 0000000..76922a6 --- /dev/null +++ b/src-tauri/src/lib.rs @@ -0,0 +1,279 @@ +mod dto; +mod google; +mod library; +mod recur; +mod store; +mod sync; + +#[cfg(desktop)] +use tauri::menu::{Menu, MenuItemBuilder, MenuItemKind, PredefinedMenuItem, SubmenuBuilder}; +use tauri::{Emitter, Manager}; +#[cfg(desktop)] +use tauri::Runtime; + +/// The frontend treats this purely as an invalidation signal and re-requests the visible range. +pub fn emit_store_changed(app: &tauri::AppHandle, reason: &str) { + let _ = app.emit("store-changed", reason); +} + +#[cfg(desktop)] +fn build_menu(handle: &tauri::AppHandle) -> tauri::Result> { + let menu = Menu::default(handle)?; + + let new_event = MenuItemBuilder::with_id("new-event", "New Event") + .accelerator("CmdOrCtrl+N") + .build(handle)?; + let command_palette = MenuItemBuilder::with_id("command-palette", "Command Palette…") + .accelerator("CmdOrCtrl+K") + .build(handle)?; + let sync_now = MenuItemBuilder::with_id("sync-now", "Sync Now") + .accelerator("CmdOrCtrl+R") + .build(handle)?; + let accounts = MenuItemBuilder::with_id("accounts", "Accounts…").build(handle)?; + let check_updates = + MenuItemBuilder::with_id("check-updates", "Check for Updates…").build(handle)?; + let settings = MenuItemBuilder::with_id("settings", "Settings…") + .accelerator("CmdOrCtrl+,") + .build(handle)?; + let search = MenuItemBuilder::with_id("search", "Search…") + .accelerator("CmdOrCtrl+F") + .build(handle)?; + let today = MenuItemBuilder::with_id("today", "Today") + .accelerator("CmdOrCtrl+T") + .build(handle)?; + let shortcuts = MenuItemBuilder::with_id("shortcuts", "Keyboard Shortcuts") + .accelerator("CmdOrCtrl+/") + .build(handle)?; + let report_issue = + MenuItemBuilder::with_id("report-issue", "Report an Issue…").build(handle)?; + + let submenus: Vec<_> = menu + .items()? + .into_iter() + .filter_map(|item| match item { + MenuItemKind::Submenu(submenu) => Some(submenu), + _ => None, + }) + .collect(); + + let find_submenu = |name: &str| { + submenus + .iter() + .find(|submenu| submenu.text().map(|t| t == name).unwrap_or(false)) + .cloned() + }; + + match find_submenu("File") { + Some(submenu) => { + submenu.prepend_items(&[ + &new_event, + &command_palette, + &PredefinedMenuItem::separator(handle)?, + &sync_now, + &accounts, + &PredefinedMenuItem::separator(handle)?, + ])?; + } + None => { + let submenu = SubmenuBuilder::new(handle, "File") + .item(&new_event) + .item(&command_palette) + .item(&PredefinedMenuItem::separator(handle)?) + .item(&sync_now) + .item(&accounts) + .build()?; + menu.insert(&submenu, 1)?; + } + } + + if let Some(edit) = find_submenu("Edit") { + edit.append_items(&[&PredefinedMenuItem::separator(handle)?, &search])?; + } + + if let Some(help) = find_submenu("Help") { + help.append_items(&[&shortcuts, &report_issue])?; + } + + #[cfg(target_os = "macos")] + { + if let Some(app_submenu) = submenus.first() { + app_submenu.insert(&check_updates, 1)?; + app_submenu.insert(&settings, 3)?; + app_submenu.insert(&PredefinedMenuItem::separator(handle)?, 4)?; + } + if let Some(view) = find_submenu("View") { + let view_week = MenuItemBuilder::with_id("view-week", "Week") + .accelerator("CmdOrCtrl+2") + .build(handle)?; + let view_day = MenuItemBuilder::with_id("view-day", "Day") + .accelerator("CmdOrCtrl+1") + .build(handle)?; + let view_agenda = MenuItemBuilder::with_id("view-agenda", "Agenda") + .accelerator("CmdOrCtrl+3") + .build(handle)?; + view.prepend_items(&[ + &view_day, + &view_week, + &view_agenda, + &PredefinedMenuItem::separator(handle)?, + &today, + &PredefinedMenuItem::separator(handle)?, + ])?; + } + } + + #[cfg(not(target_os = "macos"))] + { + if let Some(file) = find_submenu("File") { + file.append_items(&[&PredefinedMenuItem::separator(handle)?, &check_updates])?; + } + if let Some(edit) = find_submenu("Edit") { + edit.append_items(&[&settings])?; + } + let _ = &today; + } + + Ok(menu) +} + +/// Google's answer to a consent request comes back as a link into this app rather than to a +/// loopback port, because a phone has no loopback port to give it. +/// +/// Both arrival routes are covered. `on_open_url` catches the link when the app was already +/// running, which is the usual case since it is what opened the browser a moment ago; +/// `get_current` catches the one that launched a process the OS had killed in the meantime. +/// Handling it twice is harmless: `handle_redirect` takes the pending verifier rather than reading +/// it, so the second call finds nothing waiting and returns. +#[cfg(mobile)] +fn listen_for_redirects(handle: &tauri::AppHandle) { + use tauri_plugin_deep_link::DeepLinkExt; + + let dispatch = |handle: &tauri::AppHandle, url: url::Url| { + let handle = handle.clone(); + tauri::async_runtime::spawn(async move { + google::auth::handle_redirect(handle, &url).await; + }); + }; + + if let Ok(Some(urls)) = handle.deep_link().get_current() { + for url in urls { + dispatch(handle, url); + } + } + + let handle = handle.clone(); + handle.clone().deep_link().on_open_url(move |event| { + for url in event.urls() { + dispatch(&handle, url); + } + }); +} + +/// UIKit hands a scroll view the safe areas as content insets unless it is told not to, and wry +/// never tells it not to: wry 0.55.1's src/wkwebview/mod.rs:528 reaches for the scroll view only to +/// switch `bounces` off. WebKit then lays the page out in what is left over. On an iPhone 17 Pro +/// that is a layout viewport 778pt tall against an 874pt screen, still anchored at y 0, so the +/// bottom 96pt of the display is outside the page altogether. `body` is `position: fixed`, which +/// clips to that box, so nothing can paint down there whatever the CSS says: the tab bar sits in +/// the middle of the glass with a dead band of shell colour beneath it. +/// +/// `never` gives the page the whole screen back. The insets are not lost, they arrive as +/// `env(safe-area-inset-*)` instead, which is where the two bars in app.css already read them from, +/// and all four viewport units finally agree on 874. +#[cfg(target_os = "ios")] +fn stop_uikit_shrinking_the_viewport(window: &tauri::WebviewWindow) { + use objc2::rc::Retained; + use objc2::runtime::AnyObject; + use objc2_ui_kit::{UIScrollView, UIScrollViewContentInsetAdjustmentBehavior}; + + let _ = window.with_webview(|webview| { + // `inner()` is the WKWebView, and `with_webview` runs the closure inline when the caller is + // already on the main thread, which setup is. So this is a plain main-thread UIKit call. + let scroll_view: Retained = + unsafe { objc2::msg_send![webview.inner().cast::(), scrollView] }; + scroll_view + .setContentInsetAdjustmentBehavior(UIScrollViewContentInsetAdjustmentBehavior::Never); + }); +} + +#[cfg_attr(mobile, tauri::mobile_entry_point)] +pub fn run() { + // generate_context! first, so the updater plugin registers only when the merged config + // actually has an `updater` key. Ported from margin's lib.rs:146. + let context = tauri::generate_context!(); + + #[cfg_attr(mobile, allow(unused_mut))] + let mut builder = tauri::Builder::default() + .plugin(tauri_plugin_opener::init()) + .plugin(tauri_plugin_deep_link::init()); + + #[cfg(desktop)] + { + builder = builder.plugin(tauri_plugin_process::init()); + if context.config().plugins.0.contains_key("updater") { + builder = builder.plugin(tauri_plugin_updater::Builder::new().build()); + } + } + + builder = builder + .manage(google::AuthState::default()) + .manage(sync::SyncState::default()) + .setup(|app| { + let handle = app.handle(); + let store = store::Store::open(handle)?; + app.manage(store); + google::auth::init_sessions(handle); + sync::start_loop(handle.clone()); + #[cfg(mobile)] + listen_for_redirects(handle); + #[cfg(target_os = "ios")] + if let Some(window) = handle.get_webview_window("main") { + stop_uikit_shrinking_the_viewport(&window); + } + Ok(()) + }); + + #[cfg(desktop)] + { + builder = builder + .menu(|handle| build_menu(handle)) + .on_menu_event(|app, event| { + if matches!( + event.id().0.as_str(), + "new-event" + | "command-palette" + | "sync-now" + | "accounts" + | "check-updates" + | "settings" + | "search" + | "today" + | "shortcuts" + | "view-day" + | "view-week" + | "view-agenda" + | "report-issue" + ) { + app.emit("menu-action", event.id().0.as_str()).ok(); + } + }); + } + + builder + .invoke_handler(tauri::generate_handler![ + google::accounts_list, + google::account_connect, + google::account_disconnect, + store::calendars_list, + store::calendar_set_selected, + recur::instances_range, + sync::event_create, + sync::event_update, + sync::event_delete, + sync::sync_now, + sync::sync_status, + sync::sync_flush + ]) + .run(context) + .expect("error while running Margin Calendar"); +} diff --git a/src-tauri/src/library.rs b/src-tauri/src/library.rs new file mode 100644 index 0000000..4a41745 --- /dev/null +++ b/src-tauri/src/library.rs @@ -0,0 +1,9 @@ +use std::fs; +use std::path::PathBuf; +use tauri::Manager; + +pub fn app_data_dir(app: &tauri::AppHandle) -> Result { + let dir = app.path().app_data_dir().map_err(|e| e.to_string())?; + fs::create_dir_all(&dir).map_err(|e| e.to_string())?; + Ok(dir) +} diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs new file mode 100644 index 0000000..64ac5a0 --- /dev/null +++ b/src-tauri/src/main.rs @@ -0,0 +1,6 @@ +// Prevents additional console window on Windows in release, DO NOT REMOVE!! +#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] + +fn main() { + margin_calendar_lib::run() +} diff --git a/src-tauri/src/recur.rs b/src-tauri/src/recur.rs new file mode 100644 index 0000000..2e7f8aa --- /dev/null +++ b/src-tauri/src/recur.rs @@ -0,0 +1,1898 @@ +// Owns expansion, exception merging and the three edit scopes. +// +// Expansion takes a window and the masters overlapping it, runs `rrule` to generate occurrences, +// drops any occurrence whose original start matches an exception, then merges the exception +// events back in at their moved times. +// +// A cancelled instance is only guaranteed to carry id, recurringEventId, originalStartTime and +// status, so expansion must key on (recurring_event_id, original_start) and must never depend on +// another field being populated. +// +// All-day events are date-only and must never be shifted into a timezone. DST makes a local day +// 23 or 25 hours; the grid is a wall-clock axis, so positions come from local wall-clock time and +// an event spanning a transition renders at a height that does not match its true duration. That +// is correct for this kind of grid. + +use std::collections::{HashMap, HashSet}; + +use chrono::{DateTime, Duration, LocalResult, NaiveDate, NaiveDateTime, NaiveTime, SecondsFormat, + TimeZone}; +use rrule::{RRuleSet, Tz}; + +use crate::dto::{Attendee, Conference, EventDraft, EventPatch, Instance, InstanceKey, Scope}; +use crate::store::write::{epoch_ms, EventRow}; + +/// Per series, per window. The widest view is a month, so this only bites a rule no human wrote. +const MAX_OCCURRENCES: u16 = 10_000; + +/// The seam between recurrence and the write path. The recurrence agent decides what a scoped +/// edit costs in API calls; the sync agent performs them and enqueues them in the outbox. +#[derive(Debug, Clone)] +pub enum EditPlan { + /// `This`. The concrete instance is resolved through `events.instances` with `originalStart` + /// rather than by constructing the instance id by hand. + PatchInstance { + calendar_id: String, + event_id: String, + original_start: Option, + patch: EventPatch, + }, + /// `All`. + PatchMaster { + calendar_id: String, + event_id: String, + patch: EventPatch, + }, + /// `Following`. The API has no native split, so truncate the master's RRULE with an UNTIL at + /// the split point and create a new master from there. + /// + /// Two calls, in this order: patch `event_id` with `truncate_recurrence(master.recurrence, + /// until)`, then insert `draft`. `EventDraft` carries an offset but no zone, so the insert has + /// to send the master's own `start_tz`/`end_tz` as `start.timeZone`/`end.timeZone`. Without + /// them Google files the new series under the calendar's zone and the tail drifts an hour away + /// from the head at the next DST transition. + Split { + calendar_id: String, + event_id: String, + until: String, + draft: EventDraft, + }, + CancelInstance { + calendar_id: String, + event_id: String, + original_start: Option, + }, + TruncateMaster { + calendar_id: String, + event_id: String, + until: String, + }, + DeleteMaster { + calendar_id: String, + event_id: String, + }, +} + +/// What a calendar contributes to every instance on it. None of it lives on `EventRow` and all of +/// it is on `Instance`, so `instances_range` joins the calendars in and hands this down. +#[derive(Debug, Clone, Default)] +pub struct CalendarFacts { + pub color_hex: String, + pub time_zone: String, + pub read_only: bool, +} + +impl CalendarFacts { + pub fn from_calendar(calendar: &crate::dto::Calendar) -> CalendarFacts { + CalendarFacts { + color_hex: calendar.color_hex.clone(), + time_zone: calendar.time_zone.clone(), + read_only: !matches!(calendar.access_role.as_str(), "writer" | "owner"), + } + } +} + +/// Google's per-event palette, by `colorId`. These are Google's own hex values, so a colour set +/// here shows the same in both apps; the eight-hue mapping in the UI is what keeps the grid calm. +const EVENT_COLORS: [(&str, &str); 11] = [ + ("1", "#7986cb"), + ("2", "#33b679"), + ("3", "#8e24aa"), + ("4", "#e67c73"), + ("5", "#f6bf26"), + ("6", "#f4511e"), + ("7", "#039be5"), + ("8", "#616161"), + ("9", "#3f51b5"), + ("10", "#0b8043"), + ("11", "#d50000"), +]; + +pub fn event_color(color_id: Option<&str>) -> Option<&'static str> { + let id = color_id?.trim(); + EVENT_COLORS + .iter() + .find(|(key, _)| *key == id) + .map(|(_, hex)| *hex) +} + +/// Expand `rows` into concrete occurrences overlapping `[from_ms, to_ms)`, in the local zone. +/// +/// `instances_range` goes through `expand_in` instead, so it can pass the calendar facts and a +/// pinned zone down. This stays as the plain entry point, which is what the tests drive. +#[allow(dead_code)] +pub fn expand(rows: &[EventRow], from_ms: i64, to_ms: i64) -> Result, String> { + expand_in(rows, from_ms, to_ms, Tz::LOCAL, &HashMap::new()) +} + +/// The body of `expand` with the machine's own zone made an argument. A test that cannot pin the +/// local zone cannot prove an all-day event does not drift, and `TZ` is process-global while tests +/// are not. +fn expand_in( + rows: &[EventRow], + from_ms: i64, + to_ms: i64, + local: Tz, + calendars: &HashMap, +) -> Result, String> { + // Keyed on the instant, never on the string: two spellings of one moment have to collide, and a + // cancelled row carries nothing else to key on. + let mut overridden: HashSet<(&str, &str, i64)> = HashSet::new(); + for row in rows { + if let (Some(master), Some(original)) = (&row.recurring_event_id, &row.original_start) { + if let Some(at) = epoch_ms(original, false) { + overridden.insert((row.calendar_id.as_str(), master.as_str(), at)); + } + } + } + + let mut out: Vec = Vec::new(); + for row in rows { + if row.status == "cancelled" { + continue; + } + let facts = calendars.get(&row.calendar_id).cloned().unwrap_or_default(); + + // An exception, at whatever time it was dragged to. Its own row carries the times, so this + // path never touches the series' zone. + if row.recurring_event_id.is_some() { + if let Some(spot) = placement(row) { + push(&mut out, row, &row.id, &facts, true, row.original_start.clone(), spot, + local, from_ms, to_ms); + } + continue; + } + + if row.recurrence.is_empty() { + if let Some(spot) = placement(row) { + push(&mut out, row, &row.id, &facts, false, None, spot, local, from_ms, to_ms); + } + continue; + } + + let zone = series_zone(row, &facts, local); + // A rule the crate will not read costs one series. Returning an error here would cost the + // whole window, and a blank month is a worse answer than a missing series. + let Ok(series) = build_series(row, zone) else { continue }; + for at in occurrences(&series, from_ms, to_ms) { + let (spot, original, key) = spot_of(&series, at); + if overridden.contains(&(row.calendar_id.as_str(), row.id.as_str(), key)) { + continue; + } + push(&mut out, row, &row.id, &facts, true, Some(original), spot, local, from_ms, to_ms); + } + } + + out.sort_by(|a, b| { + a.start_ms + .cmp(&b.start_ms) + .then_with(|| a.event_id.cmp(&b.event_id)) + .then_with(|| a.original_start.cmp(&b.original_start)) + }); + Ok(out) +} + +#[allow(clippy::too_many_arguments)] +fn push( + out: &mut Vec, + row: &EventRow, + event_id: &str, + facts: &CalendarFacts, + recurring: bool, + original_start: Option, + spot: Spot, + local: Tz, + from_ms: i64, + to_ms: i64, +) { + let (start_ms, end_ms) = spot.millis(local); + if !overlaps(start_ms, end_ms, from_ms, to_ms) { + return; + } + let (start, end) = spot.strings(local); + out.push(Instance { + event_id: event_id.to_string(), + calendar_id: row.calendar_id.clone(), + account_id: row.account_id.clone(), + original_start, + start, + end, + start_ms, + end_ms, + all_day: matches!(spot, Spot::Day { .. }), + summary: row.summary.clone(), + description: row.description.clone(), + location: row.location.clone(), + status: row.status.clone(), + recurring, + // The event's own colour wins over its calendar's, which is what Google does. + color_hex: event_color(row.color_id.as_deref()) + .unwrap_or(&facts.color_hex) + .to_string(), + color_id: row.color_id.clone(), + etag: row.etag.clone(), + organizer: organizer(row.attendees.as_deref()), + attendees: attendees(row.attendees.as_deref()), + conference: conference(row.conference.as_deref()), + read_only: facts.read_only, + pending: row.dirty, + }); +} + +/// Half-open at both ends, with a zero-length event kept when it sits on the opening bound. +fn overlaps(start_ms: i64, end_ms: i64, from_ms: i64, to_ms: i64) -> bool { + start_ms < to_ms && (end_ms > from_ms || (end_ms <= start_ms && start_ms >= from_ms)) +} + +// -- placement --------------------------------------------------------------------------------- + +/// Where something sits on the axis. `Day` is date-only and never carries a zone; its `end` is +/// exclusive, exactly as Google sends it. +#[derive(Debug, Clone, Copy)] +enum Spot { + Day { start: NaiveDate, end: NaiveDate }, + Timed { start: DateTime, end: DateTime }, +} + +impl Spot { + /// All-day events pin to local midnight, which is the one place a date is allowed to meet a + /// zone, and only so the grid has a number to lay it out against. + fn millis(&self, local: Tz) -> (i64, i64) { + match self { + Spot::Day { start, end } => ( + resolve(local, start.and_time(NaiveTime::MIN)).timestamp_millis(), + resolve(local, end.and_time(NaiveTime::MIN)).timestamp_millis(), + ), + Spot::Timed { start, end } => (start.timestamp_millis(), end.timestamp_millis()), + } + } + + fn strings(&self, local: Tz) -> (String, String) { + match self { + Spot::Day { start, end } => ( + start.format("%Y-%m-%d").to_string(), + end.format("%Y-%m-%d").to_string(), + ), + Spot::Timed { start, end } => (rfc3339(*start, local), rfc3339(*end, local)), + } + } +} + +fn rfc3339(at: DateTime, zone: Tz) -> String { + at.with_timezone(&zone) + .to_rfc3339_opts(SecondsFormat::Secs, false) +} + +/// A row's own times, whatever produced the row. A moved exception and a one-off are both read +/// straight off the row, so neither needs a recurrence rule or a series zone to be placed. +fn placement(row: &EventRow) -> Option { + let start_at = row.start_at.trim(); + if start_at.is_empty() { + return None; + } + if row.all_day || (start_at.len() == 10 && !start_at.contains('T')) { + let start = NaiveDate::parse_from_str(start_at, "%Y-%m-%d").ok()?; + let end = NaiveDate::parse_from_str(row.end_at.trim(), "%Y-%m-%d") + .unwrap_or(start + Duration::days(1)); + let end = if end <= start { start + Duration::days(1) } else { end }; + return Some(Spot::Day { start, end }); + } + let start = instant(start_at)?; + let end = instant(row.end_at.trim()).unwrap_or(start); + Some(Spot::Timed { + start, + end: if end < start { start } else { end }, + }) +} + +fn instant(value: &str) -> Option> { + DateTime::parse_from_rfc3339(value.trim()) + .ok() + .map(|at| at.with_timezone(&Tz::UTC)) +} + +/// A wall clock into an instant. The repeated hour takes the earlier reading; the skipped hour +/// lands on the transition itself, because a series must not lose an occurrence to a clock change. +fn resolve(zone: Tz, naive: NaiveDateTime) -> DateTime { + match zone.from_local_datetime(&naive) { + LocalResult::Single(at) => at, + LocalResult::Ambiguous(first, _) => first, + LocalResult::None => match zone.from_local_datetime(&(naive + Duration::hours(1))) { + LocalResult::Single(at) | LocalResult::Ambiguous(at, _) => at - Duration::hours(1), + LocalResult::None => Tz::UTC.from_utc_datetime(&naive).with_timezone(&zone), + }, + } +} + +fn zone_named(name: Option<&str>, fallback: Tz) -> Tz { + match name.map(str::trim) { + Some(name) if !name.is_empty() => name + .parse::() + .map(Tz::Tz) + .unwrap_or(fallback), + _ => fallback, + } +} + +/// The series' own zone, then the calendar's, then the machine's. An all-day series has no zone at +/// all: expanding it in UTC keeps every occurrence on the date the rule names and keeps DST out of +/// an arithmetic that has no business seeing it. +fn series_zone(row: &EventRow, facts: &CalendarFacts, local: Tz) -> Tz { + if row.all_day || (row.start_at.trim().len() == 10 && !row.start_at.contains('T')) { + return Tz::UTC; + } + zone_named( + row.start_tz.as_deref(), + zone_named(Some(facts.time_zone.as_str()), local), + ) +} + +/// The zone a plan is made in, where there is no calendar to fall back through. +fn row_zone(row: &EventRow) -> Tz { + series_zone(row, &CalendarFacts::default(), Tz::LOCAL) +} + +// -- expansion --------------------------------------------------------------------------------- + +struct Series { + zone: Tz, + all_day: bool, + /// Start to end as wall clock, applied to every occurrence's start in wall-clock terms. + span: Duration, + set: RRuleSet, +} + +fn build_series(row: &EventRow, zone: Tz) -> Result { + let spot = placement(row).ok_or_else(|| format!("{}: no usable start", row.id))?; + let (start, span, all_day) = match spot { + Spot::Day { start, end } => ( + Tz::UTC.from_utc_datetime(&start.and_time(NaiveTime::MIN)), + Duration::days((end - start).num_days().max(1)), + true, + ), + Spot::Timed { start, end } => { + let start = start.with_timezone(&zone); + let end = end.with_timezone(&zone); + let span = end.naive_local().signed_duration_since(start.naive_local()); + (start, span, false) + } + }; + // DTSTART is built, not parsed: a series that starts inside a DST gap or a repeated hour is a + // parse error to the crate, and we already know the exact instant it starts at. + let set = RRuleSet::new(start) + .set_from_string(&normalise(&row.recurrence, zone, all_day)?) + .map_err(|e| format!("{}: {e}", row.id))?; + Ok(Series { + zone, + all_day, + span, + set, + }) +} + +/// Bounds are padded by the event's own span at the front, so an occurrence that starts before the +/// window but runs into it survives, and by a day either side because an all-day occurrence sits at +/// UTC midnight here and at local midnight by the time it is measured. +fn occurrences(series: &Series, from_ms: i64, to_ms: i64) -> Vec> { + let slack = Duration::days(1) + series.span.max(Duration::zero()); + let (Some(lower), Some(upper)) = ( + Tz::UTC.timestamp_millis_opt(from_ms).single(), + Tz::UTC.timestamp_millis_opt(to_ms).single(), + ) else { + return Vec::new(); + }; + series + .set + .clone() + .after(lower - slack) + .before(upper + Duration::days(1)) + .all(MAX_OCCURRENCES) + .dates +} + +/// An occurrence's placement, the string form of its unmoved start, and the instant that start is +/// keyed by when it is matched against an exception. +fn spot_of(series: &Series, at: DateTime) -> (Spot, String, i64) { + if series.all_day { + let start = at.with_timezone(&Tz::UTC).date_naive(); + let end = start + Duration::days(series.span.num_days().max(1)); + let key = Tz::UTC + .from_utc_datetime(&start.and_time(NaiveTime::MIN)) + .timestamp_millis(); + ( + Spot::Day { start, end }, + start.format("%Y-%m-%d").to_string(), + key, + ) + } else { + let start = at.with_timezone(&series.zone); + let end = resolve(series.zone, start.naive_local() + series.span); + ( + Spot::Timed { start, end }, + rfc3339(start, series.zone), + start.timestamp_millis(), + ) + } +} + +// -- rule text --------------------------------------------------------------------------------- + +/// Splits a content line into its property name, its parameters and its value. A line with no +/// colon is an RRULE body, which is what the crate assumes too. +fn split_line(line: &str) -> (String, Option<&str>, &str) { + let Some(colon) = line.find(':') else { + return ("RRULE".to_string(), None, line); + }; + let (head, value) = (&line[..colon], &line[colon + 1..]); + match head.find(';') { + Some(semi) => ( + head[..semi].to_uppercase(), + Some(&head[semi + 1..]), + value, + ), + None => (head.to_uppercase(), None, value), + } +} + +fn param<'a>(params: Option<&'a str>, key: &str) -> Option<&'a str> { + params?.split(';').find_map(|part| { + let (name, value) = part.split_once('=')?; + name.trim().eq_ignore_ascii_case(key).then(|| value.trim()) + }) +} + +/// Rewrites a master's rule lines into the form the crate reads the way RFC5545 means it. +/// +/// Two of its defaults are wrong for this data. A floating UNTIL or EXDATE is read in the machine's +/// zone rather than the series', and once DTSTART carries a named zone an UNTIL in anything but UTC +/// is rejected outright, which is exactly what an all-day series from Google looks like +/// (`UNTIL=20260301`). Everything datelike therefore leaves here as a UTC instant. +fn normalise(lines: &[String], zone: Tz, all_day: bool) -> Result { + let mut out: Vec = Vec::new(); + for raw in lines { + let line = raw.trim(); + if line.is_empty() { + continue; + } + let (name, params, value) = split_line(line); + match name.as_str() { + // Ours wins: it came from the row, where the offset is unambiguous. + "DTSTART" => continue, + "RRULE" | "EXRULE" => out.push(format!("{name}:{}", rewrite_until(value, zone)?)), + "EXDATE" | "RDATE" => { + let value_zone = value_zone(params, zone, all_day); + let mut dates = Vec::new(); + for part in value.split(',') { + if part.trim().is_empty() { + continue; + } + dates.push(ical_utc(part, value_zone)?); + } + if !dates.is_empty() { + out.push(format!("{name}:{}", dates.join(","))); + } + } + _ => out.push(line.to_string()), + } + } + Ok(out.join("\n")) +} + +/// A date-only value on an all-day series is that date whatever TZID rides along with it, and an +/// all-day series expands in UTC, so the parameter is deliberately ignored there. +fn value_zone(params: Option<&str>, zone: Tz, all_day: bool) -> Tz { + if all_day { + zone + } else { + zone_named(param(params, "TZID"), zone) + } +} + +fn rewrite_until(value: &str, zone: Tz) -> Result { + let mut parts: Vec = Vec::new(); + for part in value.split(';') { + let part = part.trim(); + if part.is_empty() { + continue; + } + match part.split_once('=') { + Some((key, raw)) if key.trim().eq_ignore_ascii_case("UNTIL") => { + parts.push(format!("UNTIL={}", ical_utc(raw, zone)?)); + } + _ => parts.push(part.to_string()), + } + } + Ok(parts.join(";")) +} + +fn ical_instant(raw: &str, zone: Tz) -> Result, String> { + let raw = raw.trim(); + let (body, zulu) = match raw.strip_suffix('Z').or_else(|| raw.strip_suffix('z')) { + Some(body) => (body, true), + None => (raw, false), + }; + let naive = if body.len() == 8 { + NaiveDate::parse_from_str(body, "%Y%m%d") + .map_err(|_| format!("not a date: {raw}"))? + .and_time(NaiveTime::MIN) + } else { + NaiveDateTime::parse_from_str(body, "%Y%m%dT%H%M%S") + .map_err(|_| format!("not a date-time: {raw}"))? + }; + Ok(if zulu { + Tz::UTC.from_utc_datetime(&naive) + } else { + resolve(zone, naive) + }) +} + +fn ical_utc(raw: &str, zone: Tz) -> Result { + Ok(ical_instant(raw, zone)? + .with_timezone(&Tz::UTC) + .format("%Y%m%dT%H%M%SZ") + .to_string()) +} + +/// The head of a split: the master's lines with an UNTIL that stops the series before the split. +/// The `until` on `EditPlan::Split` and `EditPlan::TruncateMaster` is a value, not a rule, and this +/// is how it becomes one. +/// +/// COUNT goes, because RFC5545 forbids it alongside UNTIL. An RDATE past the cut goes too, because +/// UNTIL bounds a rule and not a date list, so one left behind would put an occurrence back after +/// the split. An EXDATE past the cut stays: it excludes nothing either way, and leaving it alone is +/// one fewer thing to get wrong. +pub fn truncate_recurrence(recurrence: &[String], until: &str) -> Vec { + let cut = ical_instant(until, Tz::UTC) + .map(|at| at.timestamp_millis()) + .ok(); + let mut out: Vec = Vec::new(); + for raw in recurrence { + let line = raw.trim(); + if line.is_empty() { + continue; + } + let (name, params, value) = split_line(line); + match name.as_str() { + "DTSTART" => continue, + "RRULE" | "EXRULE" => { + let mut parts: Vec = value + .split(';') + .map(str::trim) + .filter(|part| !part.is_empty()) + .filter(|part| !starts_with_key(part, "UNTIL") && !starts_with_key(part, "COUNT")) + .map(str::to_string) + .collect(); + parts.push(format!("UNTIL={until}")); + out.push(format!("{name}:{}", parts.join(";"))); + } + "RDATE" => { + let kept = filter_dates(value, params, Tz::UTC, |at| { + cut.is_none_or(|cut| at <= cut) + }); + if !kept.is_empty() { + out.push(rebuild(&name, params, &kept)); + } + } + _ => out.push(line.to_string()), + } + } + out +} + +fn starts_with_key(part: &str, key: &str) -> bool { + part.split_once('=') + .is_some_and(|(name, _)| name.trim().eq_ignore_ascii_case(key)) +} + +fn filter_dates( + value: &str, + params: Option<&str>, + zone: Tz, + keep: impl Fn(i64) -> bool, +) -> String { + let value_zone = zone_named(param(params, "TZID"), zone); + value + .split(',') + .map(str::trim) + .filter(|part| !part.is_empty()) + .filter(|part| { + ical_instant(part, value_zone) + .map(|at| keep(at.timestamp_millis())) + .unwrap_or(true) + }) + .collect::>() + .join(",") +} + +fn rebuild(name: &str, params: Option<&str>, value: &str) -> String { + match params { + Some(params) => format!("{name};{params}:{value}"), + None => format!("{name}:{value}"), + } +} + +/// The tail of a split: the same rule from the split point on. UNTIL stays, because the tail keeps +/// the original end; COUNT comes down by whatever the head consumed; anything dated before the +/// split goes, because it belongs to the head. +fn tail_recurrence(row: &EventRow, zone: Tz, split_ms: i64) -> Vec { + let counted = row + .recurrence + .iter() + .any(|line| line.to_uppercase().contains("COUNT=")); + let consumed = if counted { count_before(row, zone, split_ms) } else { 0 }; + + let mut out: Vec = Vec::new(); + for raw in &row.recurrence { + let line = raw.trim(); + if line.is_empty() { + continue; + } + let (name, params, value) = split_line(line); + match name.as_str() { + "DTSTART" => continue, + "RRULE" | "EXRULE" => { + let parts: Vec = value + .split(';') + .map(str::trim) + .filter(|part| !part.is_empty()) + .map(|part| match part.split_once('=') { + Some((key, total)) if key.trim().eq_ignore_ascii_case("COUNT") => { + let total: usize = total.trim().parse().unwrap_or(0); + format!("COUNT={}", total.saturating_sub(consumed).max(1)) + } + _ => part.to_string(), + }) + .collect(); + out.push(format!("{name}:{}", parts.join(";"))); + } + "RDATE" => { + let kept = filter_dates(value, params, zone, |at| at >= split_ms); + if !kept.is_empty() { + out.push(rebuild(&name, params, &kept)); + } + } + _ => out.push(line.to_string()), + } + } + out +} + +fn count_before(row: &EventRow, zone: Tz, split_ms: i64) -> usize { + let Ok(series) = build_series(row, zone) else { return 0 }; + let Some(upper) = Tz::UTC.timestamp_millis_opt(split_ms - 1).single() else { return 0 }; + series.set.before(upper).all(MAX_OCCURRENCES).dates.len() +} + +// -- scoped edits ------------------------------------------------------------------------------ + +/// The row a plan is made against, which is always the master, plus the occurrence it applies to. +struct Target<'a> { + row: &'a EventRow, + original_start: Option, +} + +fn target<'a>(rows: &'a [EventRow], key: &InstanceKey) -> Result, String> { + let row = rows + .iter() + .find(|row| row.id == key.event_id) + .ok_or_else(|| format!("no such event: {}", key.event_id))?; + let Some(master_id) = row.recurring_event_id.as_deref() else { + return Ok(Target { + row, + original_start: key.original_start.clone(), + }); + }; + // Expansion emits the master's id for every occurrence of a series, so landing here means the + // caller held a concrete instance id. Either way the plan is made against the master. + match rows + .iter() + .find(|other| other.id == master_id && other.calendar_id == row.calendar_id) + { + Some(master) => Ok(Target { + row: master, + original_start: key + .original_start + .clone() + .or_else(|| row.original_start.clone()), + }), + // An exception whose master is not in the window is still a real event; patch it by id. + None => Ok(Target { + row, + original_start: None, + }), + } +} + +/// Where a series is cut and what the tail starts as. +struct Split { + /// UTC `YYYYMMDDTHHMMSSZ`, or `YYYYMMDD` for an all-day series. Exclusive of the occurrence. + until: String, + spot: Spot, + span: Duration, + at_ms: i64, + /// The cut lands on or before the series' own start, so there is no head to keep. + whole_series: bool, +} + +fn split_at(row: &EventRow, original_start: Option<&str>, zone: Tz) -> Result { + let original = original_start + .ok_or_else(|| "splitting a series needs the occurrence to split at".to_string())?; + let spot = placement(row).ok_or_else(|| format!("{}: no usable start", row.id))?; + match spot { + Spot::Day { start: first, end } => { + let at = NaiveDate::parse_from_str(original.trim(), "%Y-%m-%d") + .or_else(|_| { + DateTime::parse_from_rfc3339(original.trim()).map(|at| at.date_naive()) + }) + .map_err(|_| format!("cannot read an original start: {original}"))?; + let span = Duration::days((end - first).num_days().max(1)); + Ok(Split { + until: (at - Duration::days(1)).format("%Y%m%d").to_string(), + spot: Spot::Day { + start: at, + end: at + span, + }, + span, + at_ms: Tz::UTC + .from_utc_datetime(&at.and_time(NaiveTime::MIN)) + .timestamp_millis(), + whole_series: at <= first, + }) + } + Spot::Timed { start: first, end } => { + let at = instant(original) + .ok_or_else(|| format!("cannot read an original start: {original}"))? + .with_timezone(&zone); + let first = first.with_timezone(&zone); + let span = end + .with_timezone(&zone) + .naive_local() + .signed_duration_since(first.naive_local()); + Ok(Split { + until: (at - Duration::seconds(1)) + .with_timezone(&Tz::UTC) + .format("%Y%m%dT%H%M%SZ") + .to_string(), + spot: Spot::Timed { + start: at, + end: resolve(zone, at.naive_local() + span), + }, + span, + at_ms: at.timestamp_millis(), + whole_series: at <= first, + }) + } + } +} + +/// The tail master. Everything the patch does not name is inherited, and a patched start with no +/// patched end keeps the original span rather than collapsing the event. +fn tail_draft(row: &EventRow, split: &Split, patch: &EventPatch, zone: Tz) -> EventDraft { + let all_day = matches!(split.spot, Spot::Day { .. }); + let (inherited_start, inherited_end) = split.spot.strings(zone); + let start = patch.start.clone().unwrap_or(inherited_start); + let end = match (&patch.end, &patch.start) { + (Some(end), _) => end.clone(), + (None, Some(_)) => shifted(&start, split.span, all_day, zone).unwrap_or(inherited_end), + (None, None) => inherited_end, + }; + EventDraft { + color_id: patch.color_id.clone().or_else(|| row.color_id.clone()), + calendar_id: patch + .calendar_id + .clone() + .unwrap_or_else(|| row.calendar_id.clone()), + summary: patch.summary.clone().unwrap_or_else(|| row.summary.clone()), + description: patch + .description + .clone() + .or_else(|| row.description.clone()), + location: patch.location.clone().or_else(|| row.location.clone()), + start, + end, + all_day: patch.all_day.unwrap_or(all_day), + recurrence: patch + .recurrence + .clone() + .unwrap_or_else(|| tail_recurrence(row, zone, split.at_ms)), + } +} + +fn shifted(start: &str, span: Duration, all_day: bool, zone: Tz) -> Option { + if all_day { + let start = NaiveDate::parse_from_str(start.trim(), "%Y-%m-%d").ok()?; + return Some( + (start + Duration::days(span.num_days().max(1))) + .format("%Y-%m-%d") + .to_string(), + ); + } + let at = instant(start)?.with_timezone(&zone); + Some(rfc3339(resolve(zone, at.naive_local() + span), zone)) +} + +pub fn plan_edit( + rows: &[EventRow], + key: &InstanceKey, + patch: &EventPatch, + scope: Scope, +) -> Result, String> { + let target = target(rows, key)?; + let row = target.row; + let calendar_id = row.calendar_id.clone(); + let patch_master = || EditPlan::PatchMaster { + calendar_id: calendar_id.clone(), + event_id: row.id.clone(), + patch: patch.clone(), + }; + + // A one-off has no scopes to choose between. + if row.recurrence.is_empty() { + return Ok(vec![patch_master()]); + } + + match scope { + Scope::All => Ok(vec![patch_master()]), + Scope::This => { + let original_start = target.original_start.ok_or_else(|| { + "editing one occurrence needs the occurrence it applies to".to_string() + })?; + Ok(vec![EditPlan::PatchInstance { + calendar_id, + event_id: row.id.clone(), + original_start: Some(original_start), + patch: patch.clone(), + }]) + } + Scope::Following => { + let zone = row_zone(row); + let split = split_at(row, target.original_start.as_deref(), zone)?; + // Splitting at the first occurrence leaves no head, which is an edit to the whole + // series however the user got there. + if split.whole_series { + return Ok(vec![patch_master()]); + } + Ok(vec![EditPlan::Split { + calendar_id, + event_id: row.id.clone(), + until: split.until.clone(), + draft: tail_draft(row, &split, patch, zone), + }]) + } + } +} + +pub fn plan_delete( + rows: &[EventRow], + key: &InstanceKey, + scope: Scope, +) -> Result, String> { + let target = target(rows, key)?; + let row = target.row; + let calendar_id = row.calendar_id.clone(); + let delete_master = || EditPlan::DeleteMaster { + calendar_id: calendar_id.clone(), + event_id: row.id.clone(), + }; + + if row.recurrence.is_empty() { + return Ok(vec![delete_master()]); + } + + match scope { + Scope::All => Ok(vec![delete_master()]), + Scope::This => { + let original_start = target.original_start.ok_or_else(|| { + "deleting one occurrence needs the occurrence it applies to".to_string() + })?; + Ok(vec![EditPlan::CancelInstance { + calendar_id, + event_id: row.id.clone(), + original_start: Some(original_start), + }]) + } + Scope::Following => { + let zone = row_zone(row); + let split = split_at(row, target.original_start.as_deref(), zone)?; + if split.whole_series { + return Ok(vec![delete_master()]); + } + Ok(vec![EditPlan::TruncateMaster { + calendar_id, + event_id: row.id.clone(), + until: split.until, + }]) + } + } +} + +// -- blobs ------------------------------------------------------------------------------------- + +/// Google's attendee array, read field by field. Deriving it would demand every optional key be +/// present, and Google sends whichever ones apply. +fn attendees(json: Option<&str>) -> Vec { + let Some(items) = json + .and_then(|json| serde_json::from_str::(json).ok()) + .and_then(|value| value.as_array().cloned()) + else { + return Vec::new(); + }; + items + .iter() + .filter_map(|item| { + Some(Attendee { + email: item.get("email")?.as_str()?.to_string(), + display_name: item + .get("displayName") + .and_then(serde_json::Value::as_str) + .map(str::to_string), + response_status: item + .get("responseStatus") + .and_then(serde_json::Value::as_str) + .unwrap_or("needsAction") + .to_string(), + organizer: item + .get("organizer") + .and_then(serde_json::Value::as_bool) + .unwrap_or(false), + is_self: item + .get("self") + .and_then(serde_json::Value::as_bool) + .unwrap_or(false), + optional: item + .get("optional") + .and_then(serde_json::Value::as_bool) + .unwrap_or(false), + }) + }) + .collect() +} + +/// The store keeps no organizer column, so the attendee flagged as one is the only source there is. +fn organizer(json: Option<&str>) -> Option { + attendees(json) + .into_iter() + .find(|attendee| attendee.organizer) + .map(|attendee| attendee.email) +} + +fn conference(json: Option<&str>) -> Option { + let value: serde_json::Value = serde_json::from_str(json?).ok()?; + let kind = value + .pointer("/conferenceSolution/key/type") + .and_then(serde_json::Value::as_str) + .unwrap_or_default() + .to_string(); + let entry = value + .get("entryPoints") + .and_then(serde_json::Value::as_array) + .and_then(|items| { + items + .iter() + .find(|item| { + item.get("entryPointType").and_then(serde_json::Value::as_str) + == Some("video") + }) + .or_else(|| items.first()) + }); + let uri = entry + .and_then(|entry| entry.get("uri")) + .and_then(serde_json::Value::as_str) + .map(str::to_string); + if kind.is_empty() && uri.is_none() { + return None; + } + let label = entry + .and_then(|entry| entry.get("label")) + .and_then(serde_json::Value::as_str) + .map(str::to_string) + .or_else(|| { + value + .pointer("/conferenceSolution/name") + .and_then(serde_json::Value::as_str) + .map(str::to_string) + }); + Some(Conference { kind, uri, label }) +} + +/// Synchronous body behind an async command, which is margin's pdf.rs:90 trick for getting heavy +/// work off the main thread without hand-writing spawn_blocking. +#[tauri::command(async)] +pub fn instances_range( + store: tauri::State<'_, crate::store::Store>, + from_utc: i64, + to_utc: i64, +) -> Result, String> { + let conn = store.conn.lock().map_err(|e| e.to_string())?; + let rows = crate::store::read::masters_overlapping(&conn, from_utc, to_utc)?; + let calendars = crate::store::read::calendars(&conn)?; + drop(conn); + let facts: HashMap = calendars + .iter() + .map(|calendar| (calendar.id.clone(), CalendarFacts::from_calendar(calendar))) + .collect(); + expand_in(&rows, from_utc, to_utc, Tz::LOCAL, &facts) +} + +#[cfg(test)] +mod tests { + use super::*; + + const LONDON: Tz = Tz::Europe__London; + const NEW_YORK: Tz = Tz::America__New_York; + + fn ms(rfc3339: &str) -> i64 { + DateTime::parse_from_rfc3339(rfc3339) + .expect("a timestamp") + .timestamp_millis() + } + + fn master(id: &str, start: &str, end: &str, zone: &str, rule: &[&str]) -> EventRow { + EventRow { + id: id.to_string(), + calendar_id: "cal".to_string(), + account_id: "acct".to_string(), + status: "confirmed".to_string(), + summary: id.to_string(), + start_at: start.to_string(), + start_tz: Some(zone.to_string()), + end_at: end.to_string(), + end_tz: Some(zone.to_string()), + recurrence: rule.iter().map(|line| line.to_string()).collect(), + ..Default::default() + } + } + + fn all_day_master(id: &str, start: &str, end: &str, rule: &[&str]) -> EventRow { + EventRow { + all_day: true, + ..master(id, start, end, "America/New_York", rule) + } + } + + /// A moved occurrence, which carries its own times. + fn moved(id: &str, of: &str, original_start: &str, start: &str, end: &str) -> EventRow { + EventRow { + recurring_event_id: Some(of.to_string()), + original_start: Some(original_start.to_string()), + ..master(id, start, end, "Europe/London", &[]) + } + } + + /// Everything Google guarantees on a cancelled instance and not one field more. Any code that + /// reads a summary or a start off one of these will fail here rather than in November. + fn cancelled(id: &str, of: &str, original_start: &str) -> EventRow { + EventRow { + id: id.to_string(), + calendar_id: "cal".to_string(), + recurring_event_id: Some(of.to_string()), + original_start: Some(original_start.to_string()), + status: "cancelled".to_string(), + ..Default::default() + } + } + + fn starts(instances: &[Instance]) -> Vec<&str> { + instances.iter().map(|i| i.start.as_str()).collect() + } + + fn expand_at(rows: &[EventRow], from: &str, to: &str, local: Tz) -> Vec { + expand_in(rows, ms(from), ms(to), local, &HashMap::new()).expect("expand") + } + + #[test] + fn a_weekly_series_drops_only_the_excluded_occurrence() { + let rows = [master( + "weekly", + "2026-06-01T09:00:00+01:00", + "2026-06-01T10:00:00+01:00", + "Europe/London", + &[ + "RRULE:FREQ=WEEKLY;BYDAY=MO", + "EXDATE;TZID=Europe/London:20260615T090000", + ], + )]; + + let found = expand_at(&rows, "2026-06-01T00:00:00+01:00", "2026-07-01T00:00:00+01:00", LONDON); + + assert_eq!( + starts(&found), + vec![ + "2026-06-01T09:00:00+01:00", + "2026-06-08T09:00:00+01:00", + "2026-06-22T09:00:00+01:00", + "2026-06-29T09:00:00+01:00", + ], + "the 15th is excluded and its neighbours are not" + ); + assert!(found.iter().all(|i| i.recurring)); + assert_eq!( + found[1].original_start.as_deref(), + Some("2026-06-08T09:00:00+01:00") + ); + } + + #[test] + fn an_exdate_without_a_zone_still_matches_its_occurrence() { + // A floating EXDATE means the series' own zone, not the machine's, and the machine here is + // eleven hours away from the series. + let rows = [master( + "weekly", + "2026-06-01T09:00:00+01:00", + "2026-06-01T10:00:00+01:00", + "Europe/London", + &["RRULE:FREQ=WEEKLY;BYDAY=MO", "EXDATE:20260615T090000"], + )]; + + let found = expand_at( + &rows, + "2026-06-01T00:00:00+01:00", + "2026-07-01T00:00:00+01:00", + Tz::Pacific__Auckland, + ); + assert_eq!(found.len(), 4, "{:?}", starts(&found)); + assert!(!found + .iter() + .any(|i| i.original_start.as_deref() == Some("2026-06-15T09:00:00+01:00"))); + } + + #[test] + fn a_monthly_by_day_series_lands_on_the_right_dates() { + let rows = [master( + "standup", + "2026-01-20T09:00:00Z", + "2026-01-20T09:30:00Z", + "Europe/London", + &["RRULE:FREQ=MONTHLY;BYDAY=3TU"], + )]; + + let found = expand_at(&rows, "2026-01-01T00:00:00Z", "2026-06-01T00:00:00Z", LONDON); + + let dates: Vec = found.iter().map(|i| i.start[..10].to_string()).collect(); + assert_eq!( + dates, + vec!["2026-01-20", "2026-02-17", "2026-03-17", "2026-04-21", "2026-05-19"], + ); + // The third Tuesday of April is in BST and the one in March is not, and both are 09:00. + assert_eq!(found[2].start, "2026-03-17T09:00:00+00:00"); + assert_eq!(found[3].start, "2026-04-21T09:00:00+01:00"); + } + + #[test] + fn a_weekly_series_stays_at_nine_across_a_spring_forward() { + // New York moves to EDT at 02:00 on 8 March 2026. + let rows = [master( + "review", + "2026-02-27T09:00:00-05:00", + "2026-02-27T10:00:00-05:00", + "America/New_York", + &["RRULE:FREQ=WEEKLY;BYDAY=FR"], + )]; + + let found = expand_at( + &rows, + "2026-02-27T00:00:00-05:00", + "2026-03-21T00:00:00-04:00", + NEW_YORK, + ); + + assert_eq!( + starts(&found), + vec![ + "2026-02-27T09:00:00-05:00", + "2026-03-06T09:00:00-05:00", + "2026-03-13T09:00:00-04:00", + "2026-03-20T09:00:00-04:00", + ], + "nine local on both sides of the transition" + ); + // The week that swallows an hour is a real hour shorter, which is the point. + assert_eq!( + found[2].start_ms - found[1].start_ms, + 7 * 86_400_000 - 3_600_000 + ); + // Every occurrence keeps its hour, which is what an RRULE means. + for instance in &found { + assert_eq!(instance.end_ms - instance.start_ms, 3_600_000); + } + } + + #[test] + fn a_spring_forward_series_holds_its_wall_clock_from_a_distant_machine() { + let rows = [master( + "review", + "2026-02-27T09:00:00-05:00", + "2026-02-27T10:00:00-05:00", + "America/New_York", + &["RRULE:FREQ=WEEKLY;BYDAY=FR"], + )]; + + let found = expand_at( + &rows, + "2026-02-27T00:00:00-05:00", + "2026-03-21T00:00:00-04:00", + Tz::Asia__Tokyo, + ); + + // 09:00 EST is 14:00 UTC and 09:00 EDT is 13:00 UTC, whatever the machine thinks. + let utc: Vec = found + .iter() + .map(|i| { + Tz::UTC + .timestamp_millis_opt(i.start_ms) + .single() + .expect("an instant") + .format("%Y-%m-%dT%H:%M") + .to_string() + }) + .collect(); + assert_eq!( + utc, + vec![ + "2026-02-27T14:00", + "2026-03-06T14:00", + "2026-03-13T13:00", + "2026-03-20T13:00", + ] + ); + } + + #[test] + fn a_weekly_series_stays_at_nine_across_a_fall_back() { + // New York goes back to EST at 02:00 on 1 November 2026. This is the November hour. + let rows = [master( + "review", + "2026-10-30T09:00:00-04:00", + "2026-10-30T10:00:00-04:00", + "America/New_York", + &["RRULE:FREQ=WEEKLY;BYDAY=FR"], + )]; + + let found = expand_at( + &rows, + "2026-10-30T00:00:00-04:00", + "2026-11-14T00:00:00-05:00", + NEW_YORK, + ); + + assert_eq!( + starts(&found), + vec![ + "2026-10-30T09:00:00-04:00", + "2026-11-06T09:00:00-05:00", + "2026-11-13T09:00:00-05:00", + ] + ); + // The week that gains an hour is a real hour longer. + assert_eq!( + found[1].start_ms - found[0].start_ms, + 7 * 86_400_000 + 3_600_000 + ); + } + + #[test] + fn an_occurrence_inside_the_repeated_hour_is_not_lost() { + let rows = [master( + "nightly", + "2026-10-25T01:30:00-04:00", + "2026-10-25T02:00:00-04:00", + "America/New_York", + &["RRULE:FREQ=WEEKLY;BYDAY=SU"], + )]; + + let found = expand_at( + &rows, + "2026-10-25T00:00:00-04:00", + "2026-11-09T00:00:00-05:00", + NEW_YORK, + ); + + // 1 November has two 01:30s. The occurrence takes the first and stays on the calendar. + assert_eq!( + starts(&found), + vec![ + "2026-10-25T01:30:00-04:00", + "2026-11-01T01:30:00-04:00", + "2026-11-08T01:30:00-05:00", + ] + ); + } + + #[test] + fn an_occurrence_spanning_a_transition_keeps_its_wall_clock_and_its_true_length() { + let rows = [master( + "vigil", + "2026-10-25T00:30:00-04:00", + "2026-10-25T02:00:00-04:00", + "America/New_York", + &["RRULE:FREQ=WEEKLY;BYDAY=SU;COUNT=2"], + )]; + + let found = expand_at( + &rows, + "2026-10-25T00:00:00-04:00", + "2026-11-02T00:00:00-05:00", + NEW_YORK, + ); + + assert_eq!(found.len(), 2); + // Both read 00:30 to 02:00 on the wall, which is what the grid lays out against. + for instance in &found { + assert!(instance.start.contains("T00:30:00"), "{}", instance.start); + assert!(instance.end.contains("T02:00:00"), "{}", instance.end); + } + // The one that swallows the repeated hour really is an hour longer, and the grid is + // expected to render it at the height its wall clock says rather than compensate. + assert_eq!(found[0].end_ms - found[0].start_ms, 90 * 60_000); + assert_eq!(found[1].end_ms - found[1].start_ms, 150 * 60_000); + } + + #[test] + fn an_all_day_series_does_not_shift_a_day_from_any_machine() { + let rows = [all_day_master( + "holiday", + "2026-03-05", + "2026-03-06", + &["RRULE:FREQ=DAILY;COUNT=5"], + )]; + + for local in [Tz::Pacific__Kiritimati, Tz::Pacific__Midway, Tz::UTC, NEW_YORK] { + let found = expand_in( + &rows, + resolve(local, NaiveDate::from_ymd_opt(2026, 3, 1).unwrap().and_time(NaiveTime::MIN)) + .timestamp_millis(), + resolve(local, NaiveDate::from_ymd_opt(2026, 3, 15).unwrap().and_time(NaiveTime::MIN)) + .timestamp_millis(), + local, + &HashMap::new(), + ) + .expect("expand"); + + assert_eq!( + starts(&found), + vec!["2026-03-05", "2026-03-06", "2026-03-07", "2026-03-08", "2026-03-09"], + "dates must not move in {local}" + ); + assert!(found.iter().all(|i| i.all_day)); + assert_eq!(found[0].end, "2026-03-06", "the end date stays exclusive"); + + // Pinned to local midnight, and exclusive at the end. + for instance in &found { + let start = resolve( + local, + NaiveDate::parse_from_str(&instance.start, "%Y-%m-%d") + .unwrap() + .and_time(NaiveTime::MIN), + ); + assert_eq!(instance.start_ms, start.timestamp_millis(), "in {local}"); + assert!(instance.end_ms > instance.start_ms); + } + } + } + + #[test] + fn an_all_day_series_with_a_date_valued_until_still_expands() { + // Google writes UNTIL without a zone for an all-day series, which the crate reads in the + // machine's zone and then rejects against a zoned DTSTART unless it is normalised first. + let rows = [all_day_master( + "sprint", + "2026-03-02", + "2026-03-03", + &["RRULE:FREQ=WEEKLY;BYDAY=MO;UNTIL=20260316"], + )]; + + let found = expand_at(&rows, "2026-03-01T00:00:00Z", "2026-04-01T00:00:00Z", Tz::Asia__Kolkata); + assert_eq!(starts(&found), vec!["2026-03-02", "2026-03-09", "2026-03-16"]); + } + + #[test] + fn an_overridden_instance_appears_once_and_a_cancelled_one_never() { + let rows = [ + master( + "weekly", + "2026-06-01T09:00:00+01:00", + "2026-06-01T10:00:00+01:00", + "Europe/London", + &["RRULE:FREQ=WEEKLY;BYDAY=MO"], + ), + moved( + "weekly_20260608T080000Z", + "weekly", + "2026-06-08T09:00:00+01:00", + "2026-06-09T14:00:00+01:00", + "2026-06-09T15:00:00+01:00", + ), + cancelled( + "weekly_20260615T080000Z", + "weekly", + "2026-06-15T09:00:00+01:00", + ), + ]; + + let found = expand_at(&rows, "2026-06-01T00:00:00+01:00", "2026-07-01T00:00:00+01:00", LONDON); + + assert_eq!( + starts(&found), + vec![ + "2026-06-01T09:00:00+01:00", + "2026-06-09T14:00:00+01:00", + "2026-06-22T09:00:00+01:00", + "2026-06-29T09:00:00+01:00", + ], + "the moved one shows at its new time, at neither the old one nor the cancelled one" + ); + let overridden = &found[1]; + assert!(overridden.recurring); + assert_eq!( + overridden.original_start.as_deref(), + Some("2026-06-08T09:00:00+01:00") + ); + } + + #[test] + fn an_override_dragged_into_the_window_from_outside_it_still_shows() { + let rows = [ + master( + "weekly", + "2026-05-04T09:00:00+01:00", + "2026-05-04T10:00:00+01:00", + "Europe/London", + &["RRULE:FREQ=WEEKLY;BYDAY=MO;COUNT=4"], + ), + moved( + "weekly_20260504T080000Z", + "weekly", + "2026-05-04T09:00:00+01:00", + "2026-06-10T09:00:00+01:00", + "2026-06-10T10:00:00+01:00", + ), + ]; + + let found = expand_at(&rows, "2026-06-01T00:00:00+01:00", "2026-07-01T00:00:00+01:00", LONDON); + assert_eq!(starts(&found), vec!["2026-06-10T09:00:00+01:00"]); + } + + #[test] + fn a_following_split_leaves_no_gap_and_no_duplicate() { + let rows = [master( + "weekly", + "2026-06-01T09:00:00+01:00", + "2026-06-01T10:00:00+01:00", + "Europe/London", + &["RRULE:FREQ=WEEKLY;BYDAY=MO;COUNT=5"], + )]; + let key = InstanceKey { + event_id: "weekly".to_string(), + original_start: Some("2026-06-15T09:00:00+01:00".to_string()), + }; + + let plans = plan_edit(&rows, &key, &EventPatch::default(), Scope::Following).expect("plan"); + let (until, draft) = match &plans[..] { + [EditPlan::Split { until, draft, .. }] => (until.clone(), draft.clone()), + other => panic!("expected one split, got {other:?}"), + }; + + // 09:00 London on 15 June is 08:00 UTC, and the UNTIL is a second short of it. + assert_eq!(until, "20260615T075959Z"); + assert_eq!(draft.start, "2026-06-15T09:00:00+01:00"); + assert_eq!(draft.end, "2026-06-15T10:00:00+01:00"); + assert_eq!(draft.recurrence, vec!["RRULE:FREQ=WEEKLY;BYDAY=MO;COUNT=3"]); + + // The two halves as the sync agent will write them back. + let mut head = rows[0].clone(); + head.recurrence = truncate_recurrence(&head.recurrence, &until); + assert_eq!( + head.recurrence, + vec!["RRULE:FREQ=WEEKLY;BYDAY=MO;UNTIL=20260615T075959Z"] + ); + let mut tail = master( + "weekly-2", + &draft.start, + &draft.end, + "Europe/London", + &draft.recurrence.iter().map(String::as_str).collect::>(), + ); + tail.id = "weekly-2".to_string(); + + let found = expand_at( + &[head, tail], + "2026-06-01T00:00:00+01:00", + "2026-07-06T00:00:00+01:00", + LONDON, + ); + assert_eq!( + starts(&found), + vec![ + "2026-06-01T09:00:00+01:00", + "2026-06-08T09:00:00+01:00", + "2026-06-15T09:00:00+01:00", + "2026-06-22T09:00:00+01:00", + "2026-06-29T09:00:00+01:00", + ], + "every occurrence exactly once across the boundary" + ); + } + + #[test] + fn a_following_split_of_an_all_day_series_is_date_valued() { + let rows = [all_day_master( + "sprint", + "2026-03-02", + "2026-03-03", + &["RRULE:FREQ=WEEKLY;BYDAY=MO"], + )]; + let key = InstanceKey { + event_id: "sprint".to_string(), + original_start: Some("2026-03-16".to_string()), + }; + + let plans = plan_edit(&rows, &key, &EventPatch::default(), Scope::Following).expect("plan"); + match &plans[..] { + [EditPlan::Split { until, draft, .. }] => { + assert_eq!(until, "20260315"); + assert!(draft.all_day); + assert_eq!(draft.start, "2026-03-16"); + assert_eq!(draft.end, "2026-03-17"); + } + other => panic!("expected one split, got {other:?}"), + } + } + + #[test] + fn a_following_split_at_the_first_occurrence_is_the_whole_series() { + let rows = [master( + "weekly", + "2026-06-01T09:00:00+01:00", + "2026-06-01T10:00:00+01:00", + "Europe/London", + &["RRULE:FREQ=WEEKLY;BYDAY=MO"], + )]; + let key = InstanceKey { + event_id: "weekly".to_string(), + original_start: Some("2026-06-01T09:00:00+01:00".to_string()), + }; + + let plans = plan_edit(&rows, &key, &EventPatch::default(), Scope::Following).expect("plan"); + assert!(matches!(plans[..], [EditPlan::PatchMaster { .. }])); + let plans = plan_delete(&rows, &key, Scope::Following).expect("plan"); + assert!(matches!(plans[..], [EditPlan::DeleteMaster { .. }])); + } + + #[test] + fn the_three_scopes_are_three_different_calls() { + let rows = [master( + "weekly", + "2026-06-01T09:00:00+01:00", + "2026-06-01T10:00:00+01:00", + "Europe/London", + &["RRULE:FREQ=WEEKLY;BYDAY=MO"], + )]; + let key = InstanceKey { + event_id: "weekly".to_string(), + original_start: Some("2026-06-15T09:00:00+01:00".to_string()), + }; + let patch = EventPatch { + summary: Some("moved".to_string()), + ..Default::default() + }; + + match &plan_edit(&rows, &key, &patch, Scope::This).expect("plan")[..] { + [EditPlan::PatchInstance { + event_id, + original_start, + .. + }] => { + assert_eq!(event_id, "weekly", "the master, resolved through events.instances"); + assert_eq!(original_start.as_deref(), Some("2026-06-15T09:00:00+01:00")); + } + other => panic!("expected a patched instance, got {other:?}"), + } + assert!(matches!( + plan_edit(&rows, &key, &patch, Scope::All).expect("plan")[..], + [EditPlan::PatchMaster { .. }] + )); + assert!(matches!( + plan_delete(&rows, &key, Scope::This).expect("plan")[..], + [EditPlan::CancelInstance { .. }] + )); + assert!(matches!( + plan_delete(&rows, &key, Scope::Following).expect("plan")[..], + [EditPlan::TruncateMaster { .. }] + )); + } + + #[test] + fn an_edit_reached_through_an_exception_is_planned_against_the_master() { + let rows = [ + master( + "weekly", + "2026-06-01T09:00:00+01:00", + "2026-06-01T10:00:00+01:00", + "Europe/London", + &["RRULE:FREQ=WEEKLY;BYDAY=MO"], + ), + moved( + "weekly_20260608T080000Z", + "weekly", + "2026-06-08T09:00:00+01:00", + "2026-06-09T14:00:00+01:00", + "2026-06-09T15:00:00+01:00", + ), + ]; + let key = InstanceKey { + event_id: "weekly_20260608T080000Z".to_string(), + original_start: None, + }; + + match &plan_edit(&rows, &key, &EventPatch::default(), Scope::This).expect("plan")[..] { + [EditPlan::PatchInstance { + event_id, + original_start, + .. + }] => { + assert_eq!(event_id, "weekly"); + assert_eq!(original_start.as_deref(), Some("2026-06-08T09:00:00+01:00")); + } + other => panic!("expected a patched instance, got {other:?}"), + } + } + + #[test] + fn a_one_off_ignores_the_scope_it_was_given() { + let rows = [master( + "lunch", + "2026-06-01T12:00:00+01:00", + "2026-06-01T13:00:00+01:00", + "Europe/London", + &[], + )]; + let key = InstanceKey { + event_id: "lunch".to_string(), + original_start: None, + }; + + for scope in [Scope::This, Scope::Following, Scope::All] { + assert!(matches!( + plan_edit(&rows, &key, &EventPatch::default(), scope).expect("plan")[..], + [EditPlan::PatchMaster { .. }] + )); + assert!(matches!( + plan_delete(&rows, &key, scope).expect("plan")[..], + [EditPlan::DeleteMaster { .. }] + )); + } + } + + #[test] + fn a_scoped_edit_without_an_occurrence_is_refused() { + let rows = [master( + "weekly", + "2026-06-01T09:00:00+01:00", + "2026-06-01T10:00:00+01:00", + "Europe/London", + &["RRULE:FREQ=WEEKLY;BYDAY=MO"], + )]; + let key = InstanceKey { + event_id: "weekly".to_string(), + original_start: None, + }; + assert!(plan_edit(&rows, &key, &EventPatch::default(), Scope::This).is_err()); + assert!(plan_delete(&rows, &key, Scope::Following).is_err()); + assert!(plan_edit( + &[], + &key, + &EventPatch::default(), + Scope::All + ) + .is_err()); + } + + #[test] + fn truncating_drops_a_count_and_an_rdate_past_the_cut() { + let lines = vec![ + "RRULE:FREQ=WEEKLY;BYDAY=MO;COUNT=10".to_string(), + "RDATE:20260610T080000Z,20260710T080000Z".to_string(), + "EXDATE;TZID=Europe/London:20260817T090000".to_string(), + ]; + assert_eq!( + truncate_recurrence(&lines, "20260615T075959Z"), + vec![ + "RRULE:FREQ=WEEKLY;BYDAY=MO;UNTIL=20260615T075959Z", + // The RDATE UNTIL cannot reach is gone; the EXDATE past the cut is harmless. + "RDATE:20260610T080000Z", + "EXDATE;TZID=Europe/London:20260817T090000", + ] + ); + } + + #[test] + fn a_single_event_and_its_window_edges() { + let rows = [master( + "lunch", + "2026-06-01T12:00:00+01:00", + "2026-06-01T13:00:00+01:00", + "Europe/London", + &[], + )]; + + let inside = expand_at(&rows, "2026-06-01T00:00:00+01:00", "2026-06-02T00:00:00+01:00", LONDON); + assert_eq!(inside.len(), 1); + assert!(!inside[0].recurring); + assert_eq!(inside[0].original_start, None); + + // The window opens exactly when the event ends, so it is over. + let after = expand_at(&rows, "2026-06-01T13:00:00+01:00", "2026-06-02T00:00:00+01:00", LONDON); + assert!(after.is_empty()); + + // The window closes exactly when the event starts, so it has not begun. + let before = expand_at(&rows, "2026-06-01T00:00:00+01:00", "2026-06-01T12:00:00+01:00", LONDON); + assert!(before.is_empty()); + } + + #[test] + fn an_event_running_into_the_window_from_before_it_is_kept() { + let rows = [master( + "overnight", + "2026-06-01T22:00:00+01:00", + "2026-06-02T07:00:00+01:00", + "Europe/London", + &["RRULE:FREQ=DAILY"], + )]; + + let found = expand_at(&rows, "2026-06-03T00:00:00+01:00", "2026-06-04T00:00:00+01:00", LONDON); + assert_eq!( + starts(&found), + vec!["2026-06-02T22:00:00+01:00", "2026-06-03T22:00:00+01:00"] + ); + } + + #[test] + fn a_calendar_lends_its_colour_its_zone_and_its_access_role() { + let mut row = master( + "weekly", + "2026-06-01T09:00:00+01:00", + "2026-06-01T10:00:00+01:00", + "Europe/London", + &["RRULE:FREQ=WEEKLY;BYDAY=MO;COUNT=1"], + ); + row.start_tz = None; + row.end_tz = None; + let calendars = HashMap::from([( + "cal".to_string(), + CalendarFacts { + color_hex: "#4285f4".to_string(), + time_zone: "Europe/London".to_string(), + read_only: true, + }, + )]); + + let found = expand_in( + &[row], + ms("2026-06-01T00:00:00+01:00"), + ms("2026-07-01T00:00:00+01:00"), + Tz::Asia__Tokyo, + &calendars, + ) + .expect("expand"); + + assert_eq!(found.len(), 1); + assert_eq!(found[0].color_hex, "#4285f4"); + assert!(found[0].read_only); + // The calendar's zone stands in for the missing one, so this is still 09:00 in London. + assert_eq!(found[0].start_ms, ms("2026-06-01T09:00:00+01:00")); + } + + #[test] + fn attendees_survive_google_leaving_most_of_the_keys_out() { + let json = r#"[ + {"email":"a@example.com","displayName":"A","responseStatus":"accepted","organizer":true}, + {"email":"b@example.com","responseStatus":"needsAction","self":true,"optional":true}, + {"displayName":"no address"} + ]"#; + let parsed = attendees(Some(json)); + assert_eq!(parsed.len(), 2, "an attendee with no address is not one"); + assert!(parsed[0].organizer && !parsed[0].optional); + assert!(parsed[1].is_self && parsed[1].optional); + assert_eq!(organizer(Some(json)).as_deref(), Some("a@example.com")); + assert!(attendees(None).is_empty()); + assert!(attendees(Some("not json")).is_empty()); + } + + #[test] + fn a_conference_is_read_down_to_its_video_entry_point() { + let json = r#"{ + "conferenceSolution":{"key":{"type":"hangoutsMeet"},"name":"Google Meet"}, + "entryPoints":[ + {"entryPointType":"more","uri":"https://tel.meet/x"}, + {"entryPointType":"video","uri":"https://meet.google.com/abc","label":"meet.google.com/abc"} + ] + }"#; + let parsed = conference(Some(json)).expect("a conference"); + assert_eq!(parsed.kind, "hangoutsMeet"); + assert_eq!(parsed.uri.as_deref(), Some("https://meet.google.com/abc")); + assert_eq!(parsed.label.as_deref(), Some("meet.google.com/abc")); + assert!(conference(Some("{}")).is_none()); + assert!(conference(None).is_none()); + } + + /// The public entry point, on whatever zone the machine running this happens to be in. Only + /// facts that hold in every zone are asserted, which is the point: an instant is an instant and + /// a date is a date. + #[test] + fn the_public_entry_point_agrees_wherever_it_runs() { + let rows = [ + master( + "review", + "2026-03-06T09:00:00-05:00", + "2026-03-06T10:00:00-05:00", + "America/New_York", + &["RRULE:FREQ=WEEKLY;BYDAY=FR;COUNT=2"], + ), + all_day_master("holiday", "2026-03-09", "2026-03-10", &["RRULE:FREQ=DAILY;COUNT=2"]), + ]; + + let found = expand(&rows, ms("2026-03-01T00:00:00Z"), ms("2026-03-20T00:00:00Z")) + .expect("expand"); + + let timed: Vec = found + .iter() + .filter(|i| !i.all_day) + .map(|i| i.start_ms) + .collect(); + assert_eq!( + timed, + vec![ms("2026-03-06T09:00:00-05:00"), ms("2026-03-13T09:00:00-04:00")], + "nine in New York on both sides of the transition, read from anywhere" + ); + + let dates: Vec<&str> = found + .iter() + .filter(|i| i.all_day) + .map(|i| i.start.as_str()) + .collect(); + assert_eq!(dates, vec!["2026-03-09", "2026-03-10"]); + } + + #[test] + fn a_rule_the_crate_cannot_read_costs_its_own_series_and_nothing_else() { + let rows = [ + master( + "broken", + "2026-06-01T09:00:00+01:00", + "2026-06-01T10:00:00+01:00", + "Europe/London", + &["RRULE:FREQ=NEVER"], + ), + master( + "fine", + "2026-06-01T11:00:00+01:00", + "2026-06-01T12:00:00+01:00", + "Europe/London", + &["RRULE:FREQ=WEEKLY;BYDAY=MO;COUNT=1"], + ), + ]; + + let found = expand_at(&rows, "2026-06-01T00:00:00+01:00", "2026-06-08T00:00:00+01:00", LONDON); + assert_eq!(starts(&found), vec!["2026-06-01T11:00:00+01:00"]); + } +} diff --git a/src-tauri/src/store/mod.rs b/src-tauri/src/store/mod.rs new file mode 100644 index 0000000..1e2eae4 --- /dev/null +++ b/src-tauri/src/store/mod.rs @@ -0,0 +1,443 @@ +// schema.rs table definitions and migrations +// read.rs row-level reads: accounts, calendars, masters overlapping a window, outbox depth +// write.rs row-level writes: upserts from sync, optimistic local writes, outbox enqueue/drain + +pub mod read; +pub mod schema; +pub mod write; + +use std::sync::Mutex; + +use rusqlite::Connection; + +use crate::dto::Calendar; + +/// One connection behind a Mutex. Every caller is either a Tauri command or the sync loop, and +/// neither is hot enough to want a pool. +pub struct Store { + pub conn: Mutex, +} + +impl Store { + pub fn open(app: &tauri::AppHandle) -> Result { + let path = crate::library::app_data_dir(app)?.join("calendar.sqlite3"); + let conn = Connection::open(&path).map_err(|e| e.to_string())?; + conn.pragma_update(None, "journal_mode", "WAL") + .map_err(|e| e.to_string())?; + conn.pragma_update(None, "foreign_keys", "ON") + .map_err(|e| e.to_string())?; + conn.pragma_update(None, "synchronous", "NORMAL") + .map_err(|e| e.to_string())?; + schema::migrate(&conn)?; + Ok(Store { conn: Mutex::new(conn) }) + } +} + +#[tauri::command] +pub fn calendars_list(store: tauri::State<'_, Store>) -> Result, String> { + let conn = store.conn.lock().map_err(|e| e.to_string())?; + read::calendars(&conn) +} + +#[tauri::command] +pub fn calendar_set_selected( + app: tauri::AppHandle, + store: tauri::State<'_, Store>, + calendar_id: String, + selected: bool, +) -> Result<(), String> { + { + let conn = store.conn.lock().map_err(|e| e.to_string())?; + write::set_calendar_selected(&conn, &calendar_id, selected)?; + } + crate::emit_store_changed(&app, "calendar-selection"); + Ok(()) +} + +#[cfg(test)] +mod tests { + use rusqlite::Connection; + + use super::write::{CalendarRow, EventRow, OutboxRow}; + use super::{read, schema, write}; + + fn db() -> Connection { + let conn = Connection::open_in_memory().expect("in-memory database"); + schema::migrate(&conn).expect("migrate"); + conn + } + + fn ms(rfc3339: &str) -> i64 { + chrono::DateTime::parse_from_rfc3339(rfc3339) + .expect("a timestamp") + .timestamp_millis() + } + + fn calendar(conn: &Connection, id: &str, account_id: &str) { + write::upsert_calendar( + conn, + &CalendarRow { + id: id.to_string(), + account_id: account_id.to_string(), + summary: id.to_string(), + color_hex: "#4285f4".to_string(), + access_role: "owner".to_string(), + time_zone: "Europe/London".to_string(), + selected: true, + ..Default::default() + }, + ) + .expect("upsert calendar"); + } + + fn event(id: &str, calendar_id: &str, start: &str, end: &str) -> EventRow { + EventRow { + id: id.to_string(), + calendar_id: calendar_id.to_string(), + account_id: "acct".to_string(), + status: "confirmed".to_string(), + summary: id.to_string(), + start_at: start.to_string(), + end_at: end.to_string(), + ..Default::default() + } + } + + fn ids(rows: &[EventRow]) -> Vec<&str> { + rows.iter().map(|r| r.id.as_str()).collect() + } + + /// A calendar shared with two connected accounts is listed by both. If the second claimed the + /// row, the owner would flip on every pass, and since a sync token is issued per user, each + /// flip would invalidate it and force a full resync of that calendar for ever. + #[test] + fn a_shared_calendar_keeps_the_account_that_saw_it_first() { + let conn = db(); + calendar(&conn, "shared", "first"); + write::set_calendar_sync_token(&conn, "shared", Some("cursor")).expect("set token"); + + calendar(&conn, "shared", "second"); + + let rows = read::calendars(&conn).expect("calendars"); + let row = rows.iter().find(|c| c.id == "shared").expect("the shared calendar"); + assert_eq!(row.account_id, "first"); + assert_eq!( + write::calendar_sync_token(&conn, "shared").expect("token"), + Some("cursor".to_string()) + ); + } + + #[test] + fn migrate_runs_twice_without_complaint() { + let conn = db(); + schema::migrate(&conn).expect("second migrate"); + + let version: String = conn + .query_row("SELECT value FROM meta WHERE key = 'schema_version'", [], |r| r.get(0)) + .expect("a recorded version"); + assert_eq!(version, schema::VERSION.to_string()); + + let tables: i64 = conn + .query_row( + "SELECT COUNT(*) FROM sqlite_master WHERE type = 'table' + AND name IN ('meta', 'accounts', 'calendars', 'events', 'outbox')", + [], + |r| r.get(0), + ) + .expect("count"); + assert_eq!(tables, 5); + } + + #[test] + fn migrate_refuses_a_database_from_a_newer_build() { + let conn = db(); + write::meta_set(&conn, "schema_version", "99").expect("bump"); + assert!(schema::migrate(&conn).is_err()); + } + + #[test] + fn wiping_an_account_takes_its_calendars_events_and_queued_writes() { + let conn = db(); + write::upsert_account(&conn, "acct", "a@example.com", Some("ref")).expect("account"); + write::upsert_account(&conn, "other", "b@example.com", Some("ref")).expect("account"); + calendar(&conn, "cal-a", "acct"); + calendar(&conn, "cal-b", "other"); + write::meta_set( + &conn, + &write::account_meta_key("acct", "calendar-list-token"), + "tok", + ) + .expect("meta"); + + write::upsert_event( + &conn, + &event("one", "cal-a", "2026-08-10T09:00:00Z", "2026-08-10T10:00:00Z"), + ) + .expect("event"); + let mut kept = event("two", "cal-b", "2026-08-10T09:00:00Z", "2026-08-10T10:00:00Z"); + kept.account_id = "other".to_string(); + write::upsert_event(&conn, &kept).expect("event"); + + for calendar_id in ["cal-a", "cal-b"] { + write::enqueue( + &conn, + &OutboxRow { + op: "patch".to_string(), + calendar_id: calendar_id.to_string(), + event_id: Some("one".to_string()), + ..Default::default() + }, + ) + .expect("enqueue"); + } + + write::wipe_account(&conn, "acct").expect("wipe"); + + assert_eq!(read::accounts(&conn).expect("accounts").len(), 1); + assert_eq!(read::calendars(&conn).expect("calendars").len(), 1); + assert_eq!(read::pending_writes(&conn).expect("outbox"), 1); + assert!(read::event(&conn, "cal-a", "one").expect("read").is_none()); + assert!(read::event(&conn, "cal-b", "two").expect("read").is_some()); + let meta = write::meta_get(&conn, &write::account_meta_key("acct", "calendar-list-token")); + assert_eq!(meta.expect("meta"), None); + } + + #[test] + fn clearing_one_calendar_leaves_the_others_alone() { + let conn = db(); + calendar(&conn, "cal-a", "acct"); + calendar(&conn, "cal-b", "acct"); + write::set_calendar_sync_token(&conn, "cal-a", Some("token-a")).expect("token"); + write::set_calendar_sync_token(&conn, "cal-b", Some("token-b")).expect("token"); + write::upsert_event( + &conn, + &event("one", "cal-a", "2026-08-10T09:00:00Z", "2026-08-10T10:00:00Z"), + ) + .expect("event"); + write::upsert_event( + &conn, + &event("two", "cal-b", "2026-08-10T09:00:00Z", "2026-08-10T10:00:00Z"), + ) + .expect("event"); + + write::clear_calendar(&conn, "cal-a").expect("clear"); + + assert!(read::event(&conn, "cal-a", "one").expect("read").is_none()); + assert!(read::event(&conn, "cal-b", "two").expect("read").is_some()); + assert_eq!(write::calendar_sync_token(&conn, "cal-a").expect("token"), None); + assert_eq!( + write::calendar_sync_token(&conn, "cal-b").expect("token"), + Some("token-b".to_string()) + ); + assert_eq!(read::calendars(&conn).expect("calendars").len(), 2); + } + + #[test] + fn a_calendar_refresh_does_not_re_tick_an_unticked_calendar() { + let conn = db(); + calendar(&conn, "cal-a", "acct"); + write::set_calendar_selected(&conn, "cal-a", false).expect("unselect"); + write::set_calendar_sync_token(&conn, "cal-a", Some("token-a")).expect("token"); + calendar(&conn, "cal-a", "acct"); + + let calendars = read::calendars(&conn).expect("calendars"); + assert!(!calendars[0].selected); + assert_eq!( + write::calendar_sync_token(&conn, "cal-a").expect("token"), + Some("token-a".to_string()) + ); + } + + #[test] + fn the_window_read_keeps_an_exception_whose_own_times_fall_outside_it() { + let conn = db(); + calendar(&conn, "cal-a", "acct"); + + let mut master = event( + "series", + "cal-a", + "2026-08-03T09:00:00Z", + "2026-08-03T10:00:00Z", + ); + master.recurrence = vec!["RRULE:FREQ=WEEKLY;BYDAY=MO".to_string()]; + write::upsert_event(&conn, &master).expect("master"); + + // Dragged out of the window entirely. + let mut moved = event( + "series_20260810T090000Z", + "cal-a", + "2026-09-20T09:00:00Z", + "2026-09-20T10:00:00Z", + ); + moved.recurring_event_id = Some("series".to_string()); + moved.original_start = Some("2026-08-10T09:00:00Z".to_string()); + write::upsert_event(&conn, &moved).expect("moved"); + + // Cancelled, so it carries no times at all. + let mut cancelled = event("series_20260817T090000Z", "cal-a", "", ""); + cancelled.status = "cancelled".to_string(); + cancelled.recurring_event_id = Some("series".to_string()); + cancelled.original_start = Some("2026-08-17T09:00:00Z".to_string()); + write::upsert_event(&conn, &cancelled).expect("cancelled"); + + // Nothing to do with the window. + write::upsert_event( + &conn, + &event("elsewhere", "cal-a", "2027-01-01T09:00:00Z", "2027-01-01T10:00:00Z"), + ) + .expect("single"); + + let rows = read::masters_overlapping( + &conn, + ms("2026-08-10T00:00:00Z"), + ms("2026-08-17T00:00:00Z"), + ) + .expect("window"); + + let found = ids(&rows); + assert!(found.contains(&"series"), "the master: {found:?}"); + assert!(found.contains(&"series_20260810T090000Z"), "the moved instance: {found:?}"); + assert!(found.contains(&"series_20260817T090000Z"), "the cancelled instance: {found:?}"); + assert!(!found.contains(&"elsewhere"), "an unrelated single: {found:?}"); + } + + #[test] + fn the_window_read_drops_a_series_that_has_already_ended() { + let conn = db(); + calendar(&conn, "cal-a", "acct"); + + let mut ended = event("ended", "cal-a", "2025-01-06T09:00:00Z", "2025-01-06T10:00:00Z"); + ended.recurrence = vec!["RRULE:FREQ=WEEKLY;UNTIL=20250201T000000Z".to_string()]; + write::upsert_event(&conn, &ended).expect("ended"); + + let mut endless = event("endless", "cal-a", "2025-01-06T09:00:00Z", "2025-01-06T10:00:00Z"); + endless.recurrence = vec!["RRULE:FREQ=WEEKLY;COUNT=500".to_string()]; + write::upsert_event(&conn, &endless).expect("endless"); + + let rows = read::masters_overlapping( + &conn, + ms("2026-08-10T00:00:00Z"), + ms("2026-08-17T00:00:00Z"), + ) + .expect("window"); + + let found = ids(&rows); + assert!(!found.contains(&"ended"), "{found:?}"); + assert!(found.contains(&"endless"), "COUNT cannot be resolved in SQL: {found:?}"); + } + + #[test] + fn the_window_read_ignores_unselected_calendars() { + let conn = db(); + calendar(&conn, "cal-a", "acct"); + calendar(&conn, "cal-b", "acct"); + write::set_calendar_selected(&conn, "cal-b", false).expect("unselect"); + write::upsert_event( + &conn, + &event("one", "cal-a", "2026-08-11T09:00:00Z", "2026-08-11T10:00:00Z"), + ) + .expect("event"); + write::upsert_event( + &conn, + &event("two", "cal-b", "2026-08-11T09:00:00Z", "2026-08-11T10:00:00Z"), + ) + .expect("event"); + + let rows = read::masters_overlapping( + &conn, + ms("2026-08-10T00:00:00Z"), + ms("2026-08-17T00:00:00Z"), + ) + .expect("window"); + assert_eq!(ids(&rows), vec!["one"]); + } + + #[test] + fn an_all_day_event_survives_the_window_bounds() { + let conn = db(); + calendar(&conn, "cal-a", "acct"); + let mut all_day = event("holiday", "cal-a", "2026-08-11", "2026-08-12"); + all_day.all_day = true; + write::upsert_event(&conn, &all_day).expect("event"); + + let rows = read::masters_overlapping( + &conn, + ms("2026-08-10T00:00:00Z"), + ms("2026-08-17T00:00:00Z"), + ) + .expect("window"); + assert_eq!(ids(&rows), vec!["holiday"]); + } + + #[test] + fn the_outbox_drains_in_the_order_it_was_filled() { + let conn = db(); + calendar(&conn, "cal-a", "acct"); + let first = write::enqueue( + &conn, + &OutboxRow { + op: "create".to_string(), + calendar_id: "cal-a".to_string(), + created_at: 10, + ..Default::default() + }, + ) + .expect("enqueue"); + let second = write::enqueue( + &conn, + &OutboxRow { + op: "patch".to_string(), + calendar_id: "cal-a".to_string(), + created_at: 20, + ..Default::default() + }, + ) + .expect("enqueue"); + + let queued = write::peek_outbox(&conn, 10).expect("peek"); + assert_eq!( + queued.iter().map(|r| r.id).collect::>(), + vec![first, second] + ); + assert_eq!(read::pending_writes(&conn).expect("depth"), 2); + + write::mark_attempt_failed(&conn, first, "offline").expect("failed"); + let queued = write::peek_outbox(&conn, 10).expect("peek"); + assert_eq!(queued[0].attempts, 1); + assert_eq!(queued[0].last_error.as_deref(), Some("offline")); + + write::dequeue(&conn, first).expect("dequeue"); + assert_eq!(read::pending_writes(&conn).expect("depth"), 1); + } + + #[test] + fn a_local_write_is_dirty_until_it_lands() { + let conn = db(); + calendar(&conn, "cal-a", "acct"); + let row = event("one", "cal-a", "2026-08-11T09:00:00Z", "2026-08-11T10:00:00Z"); + write::upsert_event_dirty(&conn, &row).expect("write"); + assert!(read::event(&conn, "cal-a", "one").expect("read").expect("row").dirty); + + write::clear_dirty(&conn, "cal-a", "one").expect("clear"); + assert!(!read::event(&conn, "cal-a", "one").expect("read").expect("row").dirty); + } + + #[test] + fn the_same_event_id_can_live_in_two_calendars() { + let conn = db(); + calendar(&conn, "cal-a", "acct"); + calendar(&conn, "cal-b", "acct"); + write::upsert_events( + &conn, + &[ + event("shared", "cal-a", "2026-08-11T09:00:00Z", "2026-08-11T10:00:00Z"), + event("shared", "cal-b", "2026-08-11T09:00:00Z", "2026-08-11T10:00:00Z"), + ], + ) + .expect("write"); + + write::delete_event(&conn, "cal-a", "shared").expect("delete"); + assert!(read::event(&conn, "cal-a", "shared").expect("read").is_none()); + assert!(read::event(&conn, "cal-b", "shared").expect("read").is_some()); + } +} diff --git a/src-tauri/src/store/read.rs b/src-tauri/src/store/read.rs new file mode 100644 index 0000000..4204cc2 --- /dev/null +++ b/src-tauri/src/store/read.rs @@ -0,0 +1,252 @@ +// Row-level reads. Nothing here interprets a timestamp: `masters_overlapping` narrows the rows +// with a deliberately loose window and `recur` does the exact work. + +use std::collections::HashSet; + +use rusqlite::{params, Connection, OptionalExtension, Row}; + +use crate::dto::{Account, Calendar}; +use crate::store::write::EventRow; + +/// The window is padded by a day at each end before it touches SQL. All-day rows carry a `start_ms` +/// pinned to UTC midnight while the caller's bounds are local, so up to a zone offset of slack is +/// needed either side; over-returning costs the expander a comparison, under-returning loses an +/// event. +const DAY_MS: i64 = 86_400_000; + +const EVENT_COLS: &str = "e.id, e.calendar_id, e.account_id, e.etag, e.status, e.summary, \ + e.description, e.location, e.start_at, e.start_tz, e.end_at, e.end_tz, e.all_day, \ + e.recurrence, e.recurring_event_id, e.original_start, e.attendees, e.conference, \ + e.updated_at, e.dirty, e.color_id"; + +const LIVE: &str = "JOIN calendars c ON c.id = e.calendar_id WHERE c.selected = 1 AND c.deleted = 0"; + +const IS_MASTER: &str = "(e.recurrence IS NOT NULL AND e.recurrence <> '' AND e.recurrence <> '[]')"; + +pub fn accounts(conn: &Connection) -> Result, String> { + let mut stmt = conn + .prepare("SELECT id, email, keychain_ref FROM accounts ORDER BY created_at, email") + .map_err(|e| e.to_string())?; + let rows = stmt + .query_map([], |r| { + let keychain_ref: Option = r.get(2)?; + Ok(Account { + id: r.get(0)?, + email: r.get(1)?, + // The store's view of connected is "there is a credential to go and fetch". Whether + // that credential still refreshes is the auth agent's answer, not this one. + connected: keychain_ref.is_some_and(|v| !v.is_empty()), + }) + }) + .map_err(|e| e.to_string())?; + rows.collect::, _>>().map_err(|e| e.to_string()) +} + +pub fn calendars(conn: &Connection) -> Result, String> { + let mut stmt = conn + .prepare( + "SELECT id, account_id, summary, description, color_hex, selected, access_role, + time_zone, primary_cal + FROM calendars WHERE deleted = 0 + ORDER BY primary_cal DESC, summary COLLATE NOCASE, id", + ) + .map_err(|e| e.to_string())?; + let rows = stmt + .query_map([], |r| { + Ok(Calendar { + id: r.get(0)?, + account_id: r.get(1)?, + summary: r.get(2)?, + description: r.get(3)?, + color_hex: r.get(4)?, + selected: r.get::<_, i64>(5)? != 0, + access_role: r.get(6)?, + time_zone: r.get(7)?, + primary: r.get::<_, i64>(8)? != 0, + }) + }) + .map_err(|e| e.to_string())?; + rows.collect::, _>>().map_err(|e| e.to_string()) +} + +/// One calendar the sync loop has to visit, with the cursor that belongs to it. Deleted rows are +/// left out; unselected ones are not, because selection is a display choice and a calendar that +/// stops syncing while it is unticked comes back stale. +#[derive(Debug, Clone)] +pub struct SyncTarget { + pub calendar_id: String, + pub account_id: String, + pub sync_token: Option, +} + +pub fn sync_targets(conn: &Connection) -> Result, String> { + let mut stmt = conn + .prepare( + "SELECT id, account_id, sync_token FROM calendars WHERE deleted = 0 + ORDER BY account_id, primary_cal DESC, id", + ) + .map_err(|e| e.to_string())?; + let rows = stmt + .query_map([], |r| { + Ok(SyncTarget { + calendar_id: r.get(0)?, + account_id: r.get(1)?, + sync_token: r.get(2)?, + }) + }) + .map_err(|e| e.to_string())?; + rows.collect::, _>>().map_err(|e| e.to_string()) +} + +/// A single row by its full key, for the outbox drain, which needs the stored etag to send an +/// If-Match. Ignores selection, unlike the window read. +pub fn event( + conn: &Connection, + calendar_id: &str, + event_id: &str, +) -> Result, String> { + let sql = format!( + "SELECT {EVENT_COLS} FROM events e WHERE e.id = ?1 AND e.calendar_id = ?2" + ); + conn.query_row(&sql, params![event_id, calendar_id], map_event) + .optional() + .map_err(|e| e.to_string()) +} + +pub fn pending_writes(conn: &Connection) -> Result { + let count: i64 = conn + .query_row("SELECT COUNT(*) FROM outbox", [], |r| r.get(0)) + .map_err(|e| e.to_string())?; + Ok(count.max(0) as u32) +} + +/// Every event row that could contribute an occurrence to [from_ms, to_ms): singles overlapping +/// the window, every master with a recurrence rule that has not already ended, and every +/// exception instance pointing at one of those masters. +/// +/// An RRULE cannot be evaluated in SQL, so the master test is loose on purpose: a series is +/// returned unless it starts after the window or its UNTIL has already passed. Everything else is +/// the expander's problem. +pub fn masters_overlapping( + conn: &Connection, + from_ms: i64, + to_ms: i64, +) -> Result, String> { + let from = from_ms.saturating_sub(DAY_MS); + let to = to_ms.saturating_add(DAY_MS); + + let mut out: Vec = Vec::new(); + let mut seen: HashSet<(String, String)> = HashSet::new(); + + let sql = format!( + "SELECT {EVENT_COLS} FROM events e {LIVE} + AND e.start_ms IS NOT NULL AND e.start_ms < ?2 + AND ( + (e.recurring_event_id IS NOT NULL AND (e.end_ms IS NULL OR e.end_ms >= ?1)) + OR (e.status <> 'cancelled' AND {IS_MASTER} + AND (e.series_until_ms IS NULL OR e.series_until_ms >= ?1)) + OR (e.status <> 'cancelled' AND e.recurring_event_id IS NULL AND NOT {IS_MASTER} + AND (e.end_ms IS NULL OR e.end_ms >= ?1)) + ) + ORDER BY e.start_ms, e.id" + ); + let mut stmt = conn.prepare(&sql).map_err(|e| e.to_string())?; + let rows = stmt + .query_map(params![from, to], map_event) + .map_err(|e| e.to_string())?; + for row in rows { + let row = row.map_err(|e| e.to_string())?; + if seen.insert(key(&row)) { + out.push(row); + } + } + drop(stmt); + + // Every series the matched rows imply, whether the master matched on its own or only an + // exception of it did. + let mut series: Vec<(String, String)> = Vec::new(); + let mut wanted: HashSet<(String, String)> = HashSet::new(); + for row in &out { + let series_key = match (&row.recurring_event_id, row.recurrence.is_empty()) { + (Some(master), _) => (master.clone(), row.calendar_id.clone()), + (None, false) => (row.id.clone(), row.calendar_id.clone()), + (None, true) => continue, + }; + if wanted.insert(series_key.clone()) { + series.push(series_key); + } + } + + let master_sql = format!( + "SELECT {EVENT_COLS} FROM events e {LIVE} AND e.id = ?1 AND e.calendar_id = ?2" + ); + let mut stmt = conn.prepare(&master_sql).map_err(|e| e.to_string())?; + for (event_id, calendar_id) in &series { + if seen.contains(&(event_id.clone(), calendar_id.clone())) { + continue; + } + let row = stmt + .query_row(params![event_id, calendar_id], map_event) + .optional() + .map_err(|e| e.to_string())?; + if let Some(row) = row { + if seen.insert(key(&row)) { + out.push(row); + } + } + } + drop(stmt); + + // Exceptions come back whatever their own times say. A moved instance can be dragged into the + // window from outside it, and a cancelled one is only guaranteed to carry its id, its master, + // its original start and its status, so it has no times to filter on at all. + let exception_sql = format!( + "SELECT {EVENT_COLS} FROM events e {LIVE} + AND e.recurring_event_id = ?1 AND e.calendar_id = ?2" + ); + let mut stmt = conn.prepare(&exception_sql).map_err(|e| e.to_string())?; + for (event_id, calendar_id) in &series { + let rows = stmt + .query_map(params![event_id, calendar_id], map_event) + .map_err(|e| e.to_string())?; + for row in rows { + let row = row.map_err(|e| e.to_string())?; + if seen.insert(key(&row)) { + out.push(row); + } + } + } + + Ok(out) +} + +fn key(row: &EventRow) -> (String, String) { + (row.id.clone(), row.calendar_id.clone()) +} + +fn map_event(r: &Row<'_>) -> rusqlite::Result { + let recurrence: String = r.get(13)?; + Ok(EventRow { + id: r.get(0)?, + calendar_id: r.get(1)?, + account_id: r.get(2)?, + etag: r.get(3)?, + status: r.get(4)?, + summary: r.get(5)?, + description: r.get(6)?, + location: r.get(7)?, + start_at: r.get::<_, Option>(8)?.unwrap_or_default(), + start_tz: r.get(9)?, + end_at: r.get::<_, Option>(10)?.unwrap_or_default(), + end_tz: r.get(11)?, + all_day: r.get::<_, i64>(12)? != 0, + recurrence: serde_json::from_str(&recurrence).unwrap_or_default(), + recurring_event_id: r.get(14)?, + original_start: r.get(15)?, + attendees: r.get(16)?, + conference: r.get(17)?, + updated_at: r.get(18)?, + dirty: r.get::<_, i64>(19)? != 0, + color_id: r.get(20)?, + }) +} diff --git a/src-tauri/src/store/schema.rs b/src-tauri/src/store/schema.rs new file mode 100644 index 0000000..829c784 --- /dev/null +++ b/src-tauri/src/store/schema.rs @@ -0,0 +1,136 @@ +// Tables and migrations. `migrate` is idempotent and forward-only: it runs the steps between the +// version recorded in `meta` and VERSION, and refuses to open a database written by a newer build +// rather than silently misreading it. +// +// No table declares a FOREIGN KEY. The auth agent writes `accounts` with INSERT OR REPLACE, and a +// REPLACE deletes the conflicting row first, which under `foreign_keys=ON` would either cascade +// away every calendar and event for that account or be rejected outright. Referential integrity is +// enforced by `write::wipe_account` and `write::clear_calendar` instead, which is the only place it +// actually matters. + +use rusqlite::{Connection, OptionalExtension}; + +use crate::store::write::Tx; + +pub const VERSION: i32 = 2; + +/// The key `meta` carries the schema version under. Every other key belongs to a caller; account +/// scoped ones go through `write::account_meta_key` so `wipe_account` can find them again. +const VERSION_KEY: &str = "schema_version"; + +// `start_ms`, `end_ms` and `series_until_ms` are not in Google's shape. `start_at` is RFC3339 with +// an offset, or a bare YYYY-MM-DD when all-day, and neither form sorts or compares against an +// epoch-millisecond window in SQL. They are derived on every write from the columns beside them, +// so they are a cache, never a source of truth, and `read::masters_overlapping` is the only reader. +const V1: &str = " +CREATE TABLE IF NOT EXISTS accounts ( + id TEXT PRIMARY KEY, + email TEXT NOT NULL, + keychain_ref TEXT, + created_at INTEGER +); + +CREATE TABLE IF NOT EXISTS calendars ( + id TEXT PRIMARY KEY, + account_id TEXT NOT NULL, + summary TEXT NOT NULL DEFAULT '', + description TEXT, + color_hex TEXT NOT NULL DEFAULT '', + selected INTEGER NOT NULL DEFAULT 1, + access_role TEXT NOT NULL DEFAULT 'reader', + time_zone TEXT NOT NULL DEFAULT '', + primary_cal INTEGER NOT NULL DEFAULT 0, + sync_token TEXT, + deleted INTEGER NOT NULL DEFAULT 0 +); + +CREATE TABLE IF NOT EXISTS events ( + id TEXT NOT NULL, + calendar_id TEXT NOT NULL, + account_id TEXT NOT NULL, + etag TEXT, + status TEXT NOT NULL DEFAULT 'confirmed', + summary TEXT NOT NULL DEFAULT '', + description TEXT, + location TEXT, + start_at TEXT, + start_tz TEXT, + end_at TEXT, + end_tz TEXT, + all_day INTEGER NOT NULL DEFAULT 0, + recurrence TEXT NOT NULL DEFAULT '[]', + recurring_event_id TEXT, + original_start TEXT, + attendees TEXT, + conference TEXT, + updated_at TEXT, + dirty INTEGER NOT NULL DEFAULT 0, + start_ms INTEGER, + end_ms INTEGER, + series_until_ms INTEGER, + color_id TEXT, + PRIMARY KEY (id, calendar_id) +); + +CREATE TABLE IF NOT EXISTS outbox ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + op TEXT NOT NULL, + calendar_id TEXT NOT NULL, + event_id TEXT, + original_start TEXT, + scope TEXT, + payload TEXT, + etag TEXT, + attempts INTEGER NOT NULL DEFAULT 0, + created_at INTEGER NOT NULL DEFAULT 0, + last_error TEXT +); + +CREATE INDEX IF NOT EXISTS idx_events_calendar_start ON events (calendar_id, start_ms); +CREATE INDEX IF NOT EXISTS idx_events_series ON events (recurring_event_id, original_start); +CREATE INDEX IF NOT EXISTS idx_events_account ON events (account_id); +CREATE INDEX IF NOT EXISTS idx_calendars_account ON calendars (account_id); +CREATE INDEX IF NOT EXISTS idx_outbox_created ON outbox (created_at, id); +"; + +// Google's per-event colour, which overrides the calendar's. Stored as the id rather than a hex so +// it round-trips to `colorId` on the wire unchanged. +const V2: &str = "ALTER TABLE events ADD COLUMN color_id TEXT;"; + +pub fn migrate(conn: &Connection) -> Result<(), String> { + conn.execute_batch("CREATE TABLE IF NOT EXISTS meta (key TEXT PRIMARY KEY, value TEXT NOT NULL);") + .map_err(|e| e.to_string())?; + + let found = version(conn)?; + if found > VERSION { + return Err(format!( + "this calendar database is at schema {found}, which is newer than this build understands ({VERSION})" + )); + } + if found == VERSION { + return Ok(()); + } + + let tx = Tx::begin(conn)?; + if found < 1 { + conn.execute_batch(V1).map_err(|e| e.to_string())?; + } else if found < 2 { + // Only for a database that predates the column; V1 already declares it. + conn.execute_batch(V2).map_err(|e| e.to_string())?; + } + conn.execute( + "INSERT INTO meta (key, value) VALUES (?1, ?2) + ON CONFLICT(key) DO UPDATE SET value = excluded.value", + rusqlite::params![VERSION_KEY, VERSION.to_string()], + ) + .map_err(|e| e.to_string())?; + tx.commit() +} + +fn version(conn: &Connection) -> Result { + let raw: Option = conn + .query_row("SELECT value FROM meta WHERE key = ?1", [VERSION_KEY], |r| r.get(0)) + .optional() + .map_err(|e| e.to_string())?; + Ok(raw.and_then(|v| v.parse::().ok()).unwrap_or(0)) +} diff --git a/src-tauri/src/store/write.rs b/src-tauri/src/store/write.rs new file mode 100644 index 0000000..cf92822 --- /dev/null +++ b/src-tauri/src/store/write.rs @@ -0,0 +1,520 @@ +// Row-level writes: upserts from sync, optimistic local writes, the outbox, and the two destructive +// paths that have to be surgical (a 410 drops one calendar, a disconnect drops one account). +// +// Every function takes `&Connection` rather than `&mut Connection` so callers can work straight off +// the `MutexGuard` in `Store`. Multi-row work runs under `Tx`, which rolls back on drop. + +use chrono::{NaiveDate, NaiveDateTime, TimeZone, Utc}; +use rusqlite::{params, Connection, OptionalExtension}; + +/// The flattened Google event shape as stored. `recurrence` keeps the raw RFC5545 lines so the +/// expander can hand them to the rrule crate untouched. +#[derive(Debug, Clone, Default)] +pub struct EventRow { + pub id: String, + pub calendar_id: String, + pub account_id: String, + pub etag: Option, + pub status: String, + pub summary: String, + pub description: Option, + pub location: Option, + /// RFC3339 with offset, or YYYY-MM-DD when all_day. Empty when the row is a cancelled + /// instance, which Google returns carrying nothing but its id, master and original start. + pub start_at: String, + pub start_tz: Option, + pub end_at: String, + pub end_tz: Option, + pub all_day: bool, + pub recurrence: Vec, + pub recurring_event_id: Option, + pub original_start: Option, + pub attendees: Option, + pub conference: Option, + pub updated_at: Option, + /// Google's per-event colour id, 1 to 11, overriding the calendar's colour when set. + pub color_id: Option, + pub dirty: bool, +} + +/// One pending write. `payload` is JSON the sync agent defines; the store never reads it. +#[derive(Debug, Clone, Default)] +pub struct OutboxRow { + pub id: i64, + /// create | patch | delete + pub op: String, + pub calendar_id: String, + pub event_id: Option, + pub original_start: Option, + /// this | following | all + pub scope: Option, + pub payload: Option, + pub etag: Option, + pub attempts: i64, + pub created_at: i64, + /// Recorded for diagnosis, never branched on. The drain decides from the live ApiError. + #[allow(dead_code)] + pub last_error: Option, +} + +/// A transaction that does not need `&mut Connection`. Rolls back unless committed, so an early +/// `?` cannot leave a half-applied sync page behind. +pub struct Tx<'a> { + conn: &'a Connection, + done: bool, +} + +impl<'a> Tx<'a> { + pub fn begin(conn: &'a Connection) -> Result, String> { + conn.execute_batch("BEGIN IMMEDIATE;").map_err(|e| e.to_string())?; + Ok(Tx { conn, done: false }) + } + + pub fn commit(mut self) -> Result<(), String> { + self.done = true; + self.conn.execute_batch("COMMIT;").map_err(|e| e.to_string()) + } +} + +impl Drop for Tx<'_> { + fn drop(&mut self) { + if !self.done { + let _ = self.conn.execute_batch("ROLLBACK;"); + } + } +} + +pub fn now_ms() -> i64 { + Utc::now().timestamp_millis() +} + +/// Epoch milliseconds for a stored timestamp. An all-day date is pinned to UTC midnight, which is +/// wrong by up to a zone offset on purpose: these columns only ever coarsen a window query, and +/// `read::masters_overlapping` pads the window by a day to cover it. The exact local placement +/// happens in `recur`, which is the only code allowed to interpret an all-day date. +pub fn epoch_ms(value: &str, all_day: bool) -> Option { + let value = value.trim(); + if value.is_empty() { + return None; + } + if all_day || value.len() == 10 { + return NaiveDate::parse_from_str(value, "%Y-%m-%d") + .ok() + .and_then(|d| d.and_hms_opt(0, 0, 0)) + .map(|dt| Utc.from_utc_datetime(&dt).timestamp_millis()); + } + chrono::DateTime::parse_from_rfc3339(value) + .ok() + .map(|dt| dt.timestamp_millis()) +} + +/// The last instant a series can produce, when the rule says so without being evaluated. None +/// means "assume it runs forever": COUNT needs the rule expanded to resolve, and an RDATE can put +/// an occurrence past any UNTIL, so both fall back to None and the expander does the real work. +fn series_until_ms(recurrence: &[String]) -> Option { + if recurrence.is_empty() { + return None; + } + let mut latest: Option = None; + for line in recurrence { + let upper = line.trim().to_uppercase(); + if upper.starts_with("RDATE") { + return None; + } + if !upper.starts_with("RRULE") { + continue; + } + let body = upper.strip_prefix("RRULE:").unwrap_or(&upper); + let until = body + .split(';') + .find_map(|part| part.trim().strip_prefix("UNTIL="))?; + let ms = parse_until(until)?; + latest = Some(latest.map_or(ms, |current: i64| current.max(ms))); + } + latest +} + +fn parse_until(value: &str) -> Option { + let value = value.trim(); + for format in ["%Y%m%dT%H%M%SZ", "%Y%m%dT%H%M%S"] { + if let Ok(dt) = NaiveDateTime::parse_from_str(value, format) { + return Some(Utc.from_utc_datetime(&dt).timestamp_millis()); + } + } + NaiveDate::parse_from_str(value, "%Y%m%d") + .ok() + .and_then(|d| d.and_hms_opt(23, 59, 59)) + .map(|dt| Utc.from_utc_datetime(&dt).timestamp_millis()) +} + +fn blank_to_none(value: &str) -> Option<&str> { + let value = value.trim(); + if value.is_empty() { + None + } else { + Some(value) + } +} + +// -- accounts ---------------------------------------------------------------------------------- + +/// Namespaced so `wipe_account` can delete every trace of an account by prefix. The calendarList +/// cursor belongs here rather than on `accounts`, whose columns the auth agent overwrites wholesale +/// with INSERT OR REPLACE. +pub fn account_meta_key(account_id: &str, name: &str) -> String { + format!("account:{account_id}:{name}") +} + +pub fn upsert_account( + conn: &Connection, + id: &str, + email: &str, + keychain_ref: Option<&str>, +) -> Result<(), String> { + conn.execute( + "INSERT INTO accounts (id, email, keychain_ref, created_at) VALUES (?1, ?2, ?3, ?4) + ON CONFLICT(id) DO UPDATE SET email = excluded.email, keychain_ref = excluded.keychain_ref", + params![id, email, keychain_ref, now_ms()], + ) + .map_err(|e| e.to_string())?; + Ok(()) +} + +/// Everything that belongs to an account: its calendars, their events, their queued writes, its +/// meta keys and the account row itself. Disconnect calls this rather than clearing a token, +/// because a store still holding another account's remote ids is a store that will happily write +/// against them after a reconnect. +pub fn wipe_account(conn: &Connection, account_id: &str) -> Result<(), String> { + let tx = Tx::begin(conn)?; + conn.execute( + "DELETE FROM outbox WHERE calendar_id IN (SELECT id FROM calendars WHERE account_id = ?1)", + [account_id], + ) + .map_err(|e| e.to_string())?; + conn.execute( + "DELETE FROM events WHERE account_id = ?1 + OR calendar_id IN (SELECT id FROM calendars WHERE account_id = ?1)", + [account_id], + ) + .map_err(|e| e.to_string())?; + conn.execute("DELETE FROM calendars WHERE account_id = ?1", [account_id]) + .map_err(|e| e.to_string())?; + conn.execute( + "DELETE FROM meta WHERE key LIKE 'account:' || ?1 || ':%'", + [account_id], + ) + .map_err(|e| e.to_string())?; + conn.execute("DELETE FROM accounts WHERE id = ?1", [account_id]) + .map_err(|e| e.to_string())?; + tx.commit() +} + +// -- meta -------------------------------------------------------------------------------------- + +pub fn meta_get(conn: &Connection, key: &str) -> Result, String> { + conn.query_row("SELECT value FROM meta WHERE key = ?1", [key], |r| r.get(0)) + .optional() + .map_err(|e| e.to_string()) +} + +pub fn meta_set(conn: &Connection, key: &str, value: &str) -> Result<(), String> { + conn.execute( + "INSERT INTO meta (key, value) VALUES (?1, ?2) + ON CONFLICT(key) DO UPDATE SET value = excluded.value", + params![key, value], + ) + .map_err(|e| e.to_string())?; + Ok(()) +} + +// -- calendars --------------------------------------------------------------------------------- + +/// A calendarList entry flattened. `selected` and `sync_token` are deliberately absent: selection +/// is the user's, held locally, and the cursor is the sync engine's. +#[derive(Debug, Clone, Default)] +pub struct CalendarRow { + pub id: String, + pub account_id: String, + pub summary: String, + pub description: Option, + pub color_hex: String, + pub access_role: String, + pub time_zone: String, + pub primary: bool, + pub deleted: bool, + /// Google's own tick for this calendar. Seeds the local selection on insert only. + pub selected: bool, +} + +/// Deliberately leaves `selected` and `sync_token` alone on an existing row, so a calendarList +/// refresh cannot re-tick a calendar the user unticked or discard a live cursor. On insert, +/// `selected` is seeded from Google's own setting, so a calendar hidden there starts hidden here. +/// +/// `account_id` is left alone for the same reason. A calendar shared with two connected accounts +/// comes back in both calendarList responses, and letting the second one claim the row would flip +/// the owner on every pass. The sync token is issued per user, so each flip invalidates it and +/// forces a full resync of that calendar, for ever. First account to see it keeps it. +pub fn upsert_calendar(conn: &Connection, row: &CalendarRow) -> Result<(), String> { + conn.execute( + "INSERT INTO calendars + (id, account_id, summary, description, color_hex, selected, access_role, time_zone, + primary_cal, sync_token, deleted) + VALUES (?1, ?2, ?3, ?4, ?5, ?10, ?6, ?7, ?8, NULL, ?9) + ON CONFLICT(id) DO UPDATE SET + summary = excluded.summary, + description = excluded.description, + color_hex = excluded.color_hex, + access_role = excluded.access_role, + time_zone = excluded.time_zone, + primary_cal = excluded.primary_cal, + deleted = excluded.deleted", + params![ + row.id, + row.account_id, + row.summary, + row.description, + row.color_hex, + row.access_role, + row.time_zone, + row.primary as i32, + row.deleted as i32, + row.selected as i32, + ], + ) + .map_err(|e| e.to_string())?; + Ok(()) +} + +pub fn upsert_calendars(conn: &Connection, rows: &[CalendarRow]) -> Result<(), String> { + let tx = Tx::begin(conn)?; + for row in rows { + upsert_calendar(conn, row)?; + } + tx.commit() +} + +pub fn set_calendar_selected( + conn: &Connection, + calendar_id: &str, + selected: bool, +) -> Result<(), String> { + let changed = conn + .execute( + "UPDATE calendars SET selected = ?2 WHERE id = ?1", + params![calendar_id, selected as i32], + ) + .map_err(|e| e.to_string())?; + if changed == 0 { + return Err(format!("no such calendar: {calendar_id}")); + } + Ok(()) +} + +/// Removes a calendar and everything hanging off it, for a calendarList entry Google reports as +/// deleted. +pub fn delete_calendar(conn: &Connection, calendar_id: &str) -> Result<(), String> { + let tx = Tx::begin(conn)?; + conn.execute("DELETE FROM outbox WHERE calendar_id = ?1", [calendar_id]) + .map_err(|e| e.to_string())?; + conn.execute("DELETE FROM events WHERE calendar_id = ?1", [calendar_id]) + .map_err(|e| e.to_string())?; + conn.execute("DELETE FROM calendars WHERE id = ?1", [calendar_id]) + .map_err(|e| e.to_string())?; + tx.commit() +} + +/// Store surface kept for symmetry with the setter. The pull reads cursors through +/// `read::sync_targets`, which fetches them for every calendar in one statement. +#[allow(dead_code)] +pub fn calendar_sync_token(conn: &Connection, calendar_id: &str) -> Result, String> { + let token: Option> = conn + .query_row( + "SELECT sync_token FROM calendars WHERE id = ?1", + [calendar_id], + |r| r.get(0), + ) + .optional() + .map_err(|e| e.to_string())?; + Ok(token.flatten()) +} + +pub fn set_calendar_sync_token( + conn: &Connection, + calendar_id: &str, + token: Option<&str>, +) -> Result<(), String> { + conn.execute( + "UPDATE calendars SET sync_token = ?2 WHERE id = ?1", + params![calendar_id, token], + ) + .map_err(|e| e.to_string())?; + Ok(()) +} + +// -- events ------------------------------------------------------------------------------------ + +fn write_event(conn: &Connection, row: &EventRow, dirty: bool) -> Result<(), String> { + let recurrence = serde_json::to_string(&row.recurrence).map_err(|e| e.to_string())?; + conn.execute( + "INSERT OR REPLACE INTO events + (id, calendar_id, account_id, etag, status, summary, description, location, + start_at, start_tz, end_at, end_tz, all_day, recurrence, recurring_event_id, + original_start, attendees, conference, updated_at, dirty, + start_ms, end_ms, series_until_ms, color_id) + VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14, ?15, ?16, ?17, ?18, + ?19, ?20, ?21, ?22, ?23, ?24)", + params![ + row.id, + row.calendar_id, + row.account_id, + row.etag, + row.status, + row.summary, + row.description, + row.location, + blank_to_none(&row.start_at), + row.start_tz, + blank_to_none(&row.end_at), + row.end_tz, + row.all_day as i32, + recurrence, + row.recurring_event_id, + row.original_start, + row.attendees, + row.conference, + row.updated_at, + dirty as i32, + epoch_ms(&row.start_at, row.all_day), + epoch_ms(&row.end_at, row.all_day), + series_until_ms(&row.recurrence), + row.color_id, + ], + ) + .map_err(|e| e.to_string())?; + Ok(()) +} + +pub fn upsert_event(conn: &Connection, row: &EventRow) -> Result<(), String> { + write_event(conn, row, row.dirty) +} + +/// One transaction for a whole sync page, so a failure part way through leaves the cursor and the +/// rows consistent with each other. +/// Store surface kept for symmetry with `upsert_calendars`. The pull batches inside its own +/// transaction so the cursor commits with the rows. +#[allow(dead_code)] +pub fn upsert_events(conn: &Connection, rows: &[EventRow]) -> Result<(), String> { + let tx = Tx::begin(conn)?; + for row in rows { + write_event(conn, row, row.dirty)?; + } + tx.commit() +} + +/// The optimistic local write: the row lands marked dirty and renders before Google has seen it. +pub fn upsert_event_dirty(conn: &Connection, row: &EventRow) -> Result<(), String> { + write_event(conn, row, true) +} + +/// Called once a queued write has actually landed at Google. +pub fn clear_dirty(conn: &Connection, calendar_id: &str, event_id: &str) -> Result<(), String> { + conn.execute( + "UPDATE events SET dirty = 0 WHERE id = ?1 AND calendar_id = ?2", + params![event_id, calendar_id], + ) + .map_err(|e| e.to_string())?; + Ok(()) +} + +pub fn delete_event(conn: &Connection, calendar_id: &str, event_id: &str) -> Result<(), String> { + conn.execute( + "DELETE FROM events WHERE id = ?1 AND calendar_id = ?2", + params![event_id, calendar_id], + ) + .map_err(|e| e.to_string())?; + Ok(()) +} + +/// 410 recovery. Drops one calendar's rows and its cursor and nothing else, so the full resync that +/// follows is scoped to the calendar whose token died. +pub fn clear_calendar(conn: &Connection, calendar_id: &str) -> Result<(), String> { + let tx = Tx::begin(conn)?; + conn.execute("DELETE FROM events WHERE calendar_id = ?1", [calendar_id]) + .map_err(|e| e.to_string())?; + conn.execute( + "UPDATE calendars SET sync_token = NULL WHERE id = ?1", + [calendar_id], + ) + .map_err(|e| e.to_string())?; + tx.commit() +} + +// -- outbox ------------------------------------------------------------------------------------ + +/// Returns the new row id. `created_at` is filled in here unless the caller has already set it, so +/// the drain order is the enqueue order. +pub fn enqueue(conn: &Connection, row: &OutboxRow) -> Result { + let created_at = if row.created_at > 0 { row.created_at } else { now_ms() }; + conn.execute( + "INSERT INTO outbox + (op, calendar_id, event_id, original_start, scope, payload, etag, attempts, + created_at, last_error) + VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, 0, ?8, NULL)", + params![ + row.op, + row.calendar_id, + row.event_id, + row.original_start, + row.scope, + row.payload, + row.etag, + created_at, + ], + ) + .map_err(|e| e.to_string())?; + Ok(conn.last_insert_rowid()) +} + +/// Oldest first. The drain takes a batch, pushes each in turn and dequeues what lands. +pub fn peek_outbox(conn: &Connection, limit: u32) -> Result, String> { + let mut stmt = conn + .prepare( + "SELECT id, op, calendar_id, event_id, original_start, scope, payload, etag, + attempts, created_at, last_error + FROM outbox ORDER BY created_at, id LIMIT ?1", + ) + .map_err(|e| e.to_string())?; + let rows = stmt + .query_map([limit], |r| { + Ok(OutboxRow { + id: r.get(0)?, + op: r.get(1)?, + calendar_id: r.get(2)?, + event_id: r.get(3)?, + original_start: r.get(4)?, + scope: r.get(5)?, + payload: r.get(6)?, + etag: r.get(7)?, + attempts: r.get(8)?, + created_at: r.get(9)?, + last_error: r.get(10)?, + }) + }) + .map_err(|e| e.to_string())?; + rows.collect::, _>>().map_err(|e| e.to_string()) +} + +pub fn mark_attempt_failed(conn: &Connection, id: i64, error: &str) -> Result<(), String> { + conn.execute( + "UPDATE outbox SET attempts = attempts + 1, last_error = ?2 WHERE id = ?1", + params![id, error], + ) + .map_err(|e| e.to_string())?; + Ok(()) +} + +pub fn dequeue(conn: &Connection, id: i64) -> Result<(), String> { + conn.execute("DELETE FROM outbox WHERE id = ?1", [id]) + .map_err(|e| e.to_string())?; + Ok(()) +} diff --git a/src-tauri/src/sync.rs b/src-tauri/src/sync.rs new file mode 100644 index 0000000..b1d597f --- /dev/null +++ b/src-tauri/src/sync.rs @@ -0,0 +1,404 @@ +// The sync engine: the poll loop, the pull, the outbox and the quit flush. +// +// events.list with a stored syncToken, singleEvents=false, showDeleted=true, maxResults=2500, and +// the parameter set byte-identical on every call in a chain including the first, which `api` owns +// so it cannot drift. timeMin/timeMax are rejected alongside syncToken, so there is no windowed +// incremental sync and the initial pull is the whole calendar history. That is only tolerable +// because singleEvents=false collapses a series to one row, and the mitigation for a slow first +// pull is `sync-progress`, not a window. +// +// Polling, not webhooks: watch channels need a publicly verified HTTPS callback and expire every +// few days. Sixty seconds focused, five minutes unfocused. +// +// Everything the engine does to Google goes through `transport::Transport`. That seam is what makes +// pagination, 410 recovery and the outbox drain testable against a stub and an in-memory database. + +mod model; +mod pull; +mod push; +mod transport; + +#[cfg(test)] +mod tests; + +use std::sync::{Arc, Mutex}; +use std::time::{Duration, Instant}; + +use rusqlite::Connection; +use tauri::{Emitter, Listener, Manager}; + +use crate::dto::{EventDraft, EventPatch, Instance, InstanceKey, Scope, SyncStatus}; +use crate::store::write::EventRow; +use crate::store::{read, write, Store}; + +pub const POLL_FOCUSED_SECS: u64 = 60; +pub const POLL_UNFOCUSED_SECS: u64 = 300; + +/// The first pass runs a couple of seconds after launch rather than a poll interval later, so a +/// cold start shows fresh data. +const FIRST_PASS_SECS: u64 = 2; +/// How long a pass gives the outbox before it moves on to the pull. A deeper queue drains further +/// on the next tick rather than holding the pull up. +const PUSH_BUDGET_SECS: u64 = 20; +/// Quit is racing a timeout on the frontend, so the flush takes what it can get and returns. +const FLUSH_BUDGET_SECS: u64 = 4; +/// Widened by a day either side, this is the window that finds a series' stored exceptions. The +/// store has no read for "the rows of one series", and this is the read that comes closest. +const DAY_MS: i64 = 86_400_000; + +const LAST_SYNC_KEY: &str = "last-sync"; + +#[derive(Default)] +pub struct SyncState { + pub status: Mutex, + /// Held for the duration of a sync pass so the poll tick and a manual sync_now cannot overlap. + pub running: tokio::sync::Mutex<()>, + /// Wakes the poll loop early. A new account or a local write should not wait out the interval. + wake: Arc, +} + +/// What one half of a pass did. `offline` is deliberately not an error: it is the expected state on +/// a plane, and surfacing it as a failure would train the user to ignore the failure indicator. +#[derive(Debug, Default)] +pub struct Outcome { + pub changed: bool, + pub error: Option, + pub offline: bool, +} + +/// Where progress goes. The engine is written against this rather than against `AppHandle` so the +/// tests can run a whole pass with nothing but a recorder. +pub trait Sink: Sync { + /// Merged into the stored status and emitted as `sync-progress`. + fn message(&self, text: &str); + fn status(&self, status: &SyncStatus); + /// Purely an invalidation signal: the frontend re-requests its visible range and nothing here + /// tries to describe what moved. + fn changed(&self, reason: &str); +} + +struct AppSink { + app: tauri::AppHandle, +} + +impl Sink for AppSink { + fn message(&self, text: &str) { + let status = match self.app.try_state::() { + Some(state) => { + let Ok(mut current) = state.status.lock() else { + return; + }; + current.phase = "syncing".to_string(); + current.message = Some(text.to_string()); + current.clone() + } + None => return, + }; + let _ = self.app.emit("sync-progress", status); + } + + fn status(&self, status: &SyncStatus) { + if let Some(state) = self.app.try_state::() { + if let Ok(mut current) = state.status.lock() { + *current = status.clone(); + } + } + let _ = self.app.emit("sync-progress", status.clone()); + } + + fn changed(&self, reason: &str) { + crate::emit_store_changed(&self.app, reason); + } +} + +/// Takes the store's connection for one synchronous unit of work. Nothing inside may await: the +/// guard is a std one, so holding it across a suspension point would make the future non-Send. +fn with_conn( + store: &Store, + f: impl FnOnce(&Connection) -> Result, +) -> Result { + let conn = store.conn.lock().map_err(|e| e.to_string())?; + f(&conn) +} + +fn pending_writes(store: &Store) -> u32 { + with_conn(store, read::pending_writes).unwrap_or(0) +} + +fn last_sync(store: &Store) -> Option { + with_conn(store, |conn| write::meta_get(conn, LAST_SYNC_KEY)) + .ok() + .flatten() + .and_then(|value| value.parse().ok()) +} + +/// Push first, then pull, so a write that has just landed comes back as the server's own row in the +/// same pass rather than a tick later. +async fn run_pass( + store: &Store, + transport: &impl transport::Transport, + sink: &impl Sink, +) -> SyncStatus { + let mut status = SyncStatus { + phase: "syncing".to_string(), + last_sync: last_sync(store), + error: None, + pending_writes: pending_writes(store), + message: None, + }; + sink.status(&status); + + let deadline = Instant::now() + Duration::from_secs(PUSH_BUDGET_SECS); + let pushed = push::drain(store, transport, deadline).await; + if pushed.changed { + sink.changed("outbox"); + } + + let pulled = if pushed.offline { + Outcome::default() + } else { + pull::sync_all(store, transport, sink).await + }; + + status.pending_writes = pending_writes(store); + status.message = None; + match pushed.error.or(pulled.error) { + Some(error) => { + status.phase = "error".to_string(); + status.error = Some(error); + } + None => { + status.phase = "idle".to_string(); + status.error = None; + if pushed.offline || pulled.offline { + status.message = Some("Offline".to_string()); + } else { + let now = write::now_ms(); + let _ = with_conn(store, |conn| { + write::meta_set(conn, LAST_SYNC_KEY, &now.to_string()) + }); + status.last_sync = Some(now); + } + } + } + sink.status(&status); + status +} + +/// Spawned from `setup`. Ticks on the focused interval while the window has focus and the +/// unfocused one otherwise, and wakes early when something has just been queued or connected. +pub fn start_loop(app: tauri::AppHandle) { + let wake = match app.try_state::() { + Some(state) => state.wake.clone(), + None => return, + }; + + // A freshly connected account should not sit unsynced for a poll interval. `store-changed` is + // the only signal the connect flow emits, and its reason distinguishes this from our own. + let listener = wake.clone(); + app.listen("store-changed", move |event| { + if event.payload().contains("account-connected") { + listener.notify_one(); + } + }); + + tauri::async_runtime::spawn(async move { + let mut delay = Duration::from_secs(FIRST_PASS_SECS); + loop { + let _ = tokio::time::timeout(delay, wake.notified()).await; + tick(&app).await; + delay = Duration::from_secs(if focused(&app) { + POLL_FOCUSED_SECS + } else { + POLL_UNFOCUSED_SECS + }); + } + }); +} + +fn focused(app: &tauri::AppHandle) -> bool { + app.webview_windows() + .values() + .any(|window| window.is_focused().unwrap_or(false)) +} + +async fn tick(app: &tauri::AppHandle) { + let Some(store) = app.try_state::() else { + return; + }; + let state = app.state::(); + // A manual sync is already in flight, and this tick has nothing to add to it. + let Ok(_guard) = state.running.try_lock() else { + return; + }; + let transport = transport::Google { app: app.clone() }; + let sink = AppSink { app: app.clone() }; + run_pass(&store, &transport, &sink).await; +} + +fn kick(app: &tauri::AppHandle) { + if let Some(state) = app.try_state::() { + state.wake.notify_one(); + } +} + +/// The queue depth is half of the optimistic story: a write that has not left yet should say so +/// before the next pass gets round to saying it. +fn note_pending(app: &tauri::AppHandle, store: &Store) { + let Some(state) = app.try_state::() else { + return; + }; + let count = pending_writes(store); + let status = { + let Ok(mut current) = state.status.lock() else { + return; + }; + current.pending_writes = count; + current.clone() + }; + let _ = app.emit("sync-progress", status); +} + +/// Drains the outbox on quit. The frontend races this against a timeout before destroying the +/// window, the same shape as margin's App.tsx:45 close-request hook, so it returns on a budget +/// however deep the queue is. +#[tauri::command] +pub async fn sync_flush(app: tauri::AppHandle) -> Result<(), String> { + let Some(store) = app.try_state::() else { + return Ok(()); + }; + let state = app.state::(); + // Wait briefly for a pass in flight, then go anyway: the caller is on its way out. + let _guard = tokio::time::timeout(Duration::from_secs(1), state.running.lock()) + .await + .ok(); + + let transport = transport::Google { app: app.clone() }; + let deadline = Instant::now() + Duration::from_secs(FLUSH_BUDGET_SECS); + let outcome = push::drain(&store, &transport, deadline).await; + if outcome.changed { + crate::emit_store_changed(&app, "outbox"); + } + Ok(()) +} + +#[tauri::command] +pub async fn sync_now( + app: tauri::AppHandle, + state: tauri::State<'_, SyncState>, +) -> Result { + let _guard = state.running.lock().await; + let store = app + .try_state::() + .ok_or("the local store is not open")?; + let transport = transport::Google { app: app.clone() }; + let sink = AppSink { app: app.clone() }; + Ok(run_pass(&store, &transport, &sink).await) +} + +#[tauri::command] +pub async fn sync_status(state: tauri::State<'_, SyncState>) -> Result { + let status = state.status.lock().map_err(|e| e.to_string())?.clone(); + Ok(status) +} + +#[tauri::command] +pub async fn event_create(app: tauri::AppHandle, draft: EventDraft) -> Result { + let store = app + .try_state::() + .ok_or("the local store is not open")?; + let instance = with_conn(&store, |conn| push::create(conn, &draft))?; + note_pending(&app, &store); + crate::emit_store_changed(&app, "event-created"); + kick(&app); + Ok(instance) +} + +#[tauri::command] +pub async fn event_update( + app: tauri::AppHandle, + key: InstanceKey, + patch: EventPatch, + scope: Scope, +) -> Result<(), String> { + let store = app + .try_state::() + .ok_or("the local store is not open")?; + let rows = with_conn(&store, |conn| series_rows(conn, &key))?; + let plans = crate::recur::plan_edit(&rows, &key, &patch, scope)?; + with_conn(&store, |conn| push::apply_plans(conn, &rows, &plans))?; + note_pending(&app, &store); + crate::emit_store_changed(&app, "event-updated"); + kick(&app); + Ok(()) +} + +#[tauri::command] +pub async fn event_delete( + app: tauri::AppHandle, + key: InstanceKey, + scope: Scope, +) -> Result<(), String> { + let store = app + .try_state::() + .ok_or("the local store is not open")?; + let rows = with_conn(&store, |conn| series_rows(conn, &key))?; + let plans = crate::recur::plan_delete(&rows, &key, scope)?; + with_conn(&store, |conn| push::apply_plans(conn, &rows, &plans))?; + note_pending(&app, &store); + crate::emit_store_changed(&app, "event-deleted"); + kick(&app); + Ok(()) +} + +/// The rows `recur` needs to plan an edit: the event the key names, its master if the key named an +/// exception, and every stored exception of that series. `InstanceKey` carries no calendar, and the +/// store has no read that fetches a series by id, so the event comes from a point lookup per +/// calendar and the exceptions come from the window read around the occurrence. +fn series_rows(conn: &Connection, key: &InstanceKey) -> Result, String> { + let mut rows: Vec = Vec::new(); + let calendars = read::calendars(conn)?; + for calendar in &calendars { + if let Some(row) = read::event(conn, &calendar.id, &key.event_id)? { + rows.push(row); + } + } + + let masters: Vec<(String, String)> = rows + .iter() + .filter_map(|row| { + row.recurring_event_id + .clone() + .map(|master| (row.calendar_id.clone(), master)) + }) + .collect(); + for (calendar_id, master) in masters { + if let Some(row) = read::event(conn, &calendar_id, &master)? { + rows.push(row); + } + } + + let anchor = key + .original_start + .clone() + .or_else(|| rows.first().map(|row| row.start_at.clone())); + if let Some(anchor) = anchor { + let all_day = anchor.len() == 10; + if let Some(ms) = write::epoch_ms(&anchor, all_day) { + for row in read::masters_overlapping(conn, ms - DAY_MS, ms + DAY_MS)? { + let known = rows + .iter() + .any(|seen| seen.id == row.id && seen.calendar_id == row.calendar_id); + let of_this_series = row + .recurring_event_id + .as_deref() + .is_some_and(|master| master == key.event_id); + if of_this_series && !known { + rows.push(row); + } + } + } + } + + Ok(rows) +} diff --git a/src-tauri/src/sync/model.rs b/src-tauri/src/sync/model.rs new file mode 100644 index 0000000..2715559 --- /dev/null +++ b/src-tauri/src/sync/model.rs @@ -0,0 +1,277 @@ +// Conversions between Google's shape, the store's rows and the IPC DTOs. Nothing here reaches the +// network or the database, so every one of these is a pure function the tests can lean on. + +use chrono::{Local, NaiveDate, TimeZone}; +use serde_json::{json, Map, Value}; + +use crate::dto::{EventDraft, EventPatch, Instance}; +use crate::google::api::{EventDateTime, RawCalendar, RawEvent}; +use crate::store::write::{self, CalendarRow, EventRow}; + +/// A timestamp as stored: the RFC3339 form when there is one, the bare date when the event is +/// all-day. Never converted, because an all-day date shifted into a zone is the bug this whole +/// codebase is arranged to avoid. +fn stamp(value: &EventDateTime) -> Option { + value.date_time.clone().or_else(|| value.date.clone()) +} + +fn split(value: Option<&EventDateTime>) -> (String, Option) { + match value { + Some(value) => (stamp(value).unwrap_or_default(), value.time_zone.clone()), + None => (String::new(), None), + } +} + +pub fn is_cancelled(raw: &RawEvent) -> bool { + raw.status.as_deref() == Some("cancelled") +} + +pub fn event_row(raw: &RawEvent, calendar_id: &str, account_id: &str) -> EventRow { + let all_day = raw + .start + .as_ref() + .map(|start| start.date.is_some()) + .unwrap_or(false); + let (start_at, start_tz) = split(raw.start.as_ref()); + let (end_at, end_tz) = split(raw.end.as_ref()); + EventRow { + id: raw.id.clone(), + calendar_id: calendar_id.to_string(), + account_id: account_id.to_string(), + etag: raw.etag.clone(), + status: raw + .status + .clone() + .unwrap_or_else(|| "confirmed".to_string()), + summary: raw.summary.clone().unwrap_or_default(), + description: raw.description.clone(), + location: raw.location.clone(), + start_at, + start_tz, + end_at, + end_tz, + all_day, + recurrence: raw.recurrence.clone().unwrap_or_default(), + recurring_event_id: raw.recurring_event_id.clone(), + original_start: raw.original_start_time.as_ref().and_then(stamp), + attendees: raw.attendees.as_ref().map(|v| v.to_string()), + conference: raw.conference_data.as_ref().map(|v| v.to_string()), + updated_at: raw.updated.clone(), + color_id: raw.color_id.clone(), + dirty: false, + } +} + +pub fn calendar_row(raw: &RawCalendar, account_id: &str) -> CalendarRow { + CalendarRow { + id: raw.id.clone(), + account_id: account_id.to_string(), + summary: raw.summary.clone().unwrap_or_else(|| raw.id.clone()), + description: raw.description.clone(), + color_hex: raw.background_color.clone().unwrap_or_default(), + access_role: raw + .access_role + .clone() + .unwrap_or_else(|| "reader".to_string()), + time_zone: raw.time_zone.clone().unwrap_or_default(), + primary: raw.primary.unwrap_or(false), + deleted: raw.deleted.unwrap_or(false), + // Google's own tick, so a calendar the user has hidden there starts hidden here rather + // than dumping twenty calendars onto the grid on first sync. Insert only: once the row + // exists, the local selection is the user's and a refresh must not overwrite it. + selected: raw.selected.unwrap_or(true), + } +} + +pub fn writable(access_role: &str) -> bool { + matches!(access_role, "owner" | "writer") +} + +/// `{"date": ...}` for an all-day event, `{"dateTime": ...}` otherwise. A date-only string is +/// treated as all-day whatever the flag says, since sending one under `dateTime` is a 400. +/// +/// The zone rides along on a timed event because the offset alone only pins the instant. A series +/// filed under the wrong zone drifts an hour away from itself at the next DST transition, and an +/// all-day date has no zone to be wrong about. +fn when(value: &str, all_day: bool, zone: Option<&str>) -> Value { + if all_day || value.len() == 10 { + return json!({ "date": value }); + } + match zone.filter(|zone| !zone.is_empty()) { + Some(zone) => json!({ "dateTime": value, "timeZone": zone }), + None => json!({ "dateTime": value }), + } +} + +pub fn draft_body( + draft: &EventDraft, + id: &str, + start_tz: Option<&str>, + end_tz: Option<&str>, +) -> Value { + let mut body = Map::new(); + body.insert("id".to_string(), json!(id)); + body.insert("summary".to_string(), json!(draft.summary)); + if let Some(value) = &draft.description { + body.insert("description".to_string(), json!(value)); + } + if let Some(value) = &draft.location { + body.insert("location".to_string(), json!(value)); + } + body.insert( + "start".to_string(), + when(&draft.start, draft.all_day, start_tz), + ); + body.insert("end".to_string(), when(&draft.end, draft.all_day, end_tz)); + if !draft.recurrence.is_empty() { + body.insert("recurrence".to_string(), json!(draft.recurrence)); + } + if let Some(color) = draft.color_id.as_deref().filter(|c| !c.is_empty()) { + body.insert("colorId".to_string(), json!(color)); + } + Value::Object(body) +} + +/// An absent field stays absent, which is what makes this a patch. `all_day` and the zones come +/// from the row rather than the patch, because a patch that moves an event without restating its +/// all-day flag still has to send the right half of the union, and one that moves a series without +/// restating its zone must not let Google refile it under the calendar's. +pub fn patch_body(patch: &EventPatch, all_day: bool, start_tz: Option<&str>, end_tz: Option<&str>) -> Value { + let mut body = Map::new(); + if let Some(value) = &patch.summary { + body.insert("summary".to_string(), json!(value)); + } + if let Some(value) = &patch.description { + body.insert("description".to_string(), json!(value)); + } + if let Some(value) = &patch.location { + body.insert("location".to_string(), json!(value)); + } + let all_day = patch.all_day.unwrap_or(all_day); + if let Some(value) = &patch.start { + body.insert("start".to_string(), when(value, all_day, start_tz)); + } + if let Some(value) = &patch.end { + body.insert("end".to_string(), when(value, all_day, end_tz)); + } + if let Some(value) = &patch.recurrence { + body.insert("recurrence".to_string(), json!(value)); + } + // An empty string means "back to the calendar's colour", which Google spells as a null colorId. + if let Some(value) = &patch.color_id { + body.insert( + "colorId".to_string(), + if value.is_empty() { Value::Null } else { json!(value) }, + ); + } + Value::Object(body) +} + +pub fn recurrence_body(recurrence: &[String]) -> Value { + json!({ "recurrence": recurrence }) +} + +pub fn draft_row(draft: &EventDraft, id: &str, account_id: &str) -> EventRow { + EventRow { + id: id.to_string(), + calendar_id: draft.calendar_id.clone(), + account_id: account_id.to_string(), + status: "confirmed".to_string(), + summary: draft.summary.clone(), + description: draft.description.clone(), + location: draft.location.clone(), + start_at: draft.start.clone(), + end_at: draft.end.clone(), + all_day: draft.all_day, + recurrence: draft.recurrence.clone(), + color_id: draft.color_id.clone().filter(|c| !c.is_empty()), + dirty: true, + ..Default::default() + } +} + +pub fn apply_patch(row: &mut EventRow, patch: &EventPatch) { + if let Some(value) = &patch.summary { + row.summary = value.clone(); + } + if let Some(value) = &patch.description { + row.description = (!value.is_empty()).then(|| value.clone()); + } + if let Some(value) = &patch.location { + row.location = (!value.is_empty()).then(|| value.clone()); + } + if let Some(value) = &patch.color_id { + row.color_id = (!value.is_empty()).then(|| value.clone()); + } + if let Some(value) = patch.all_day { + row.all_day = value; + } + if let Some(value) = &patch.start { + row.start_at = value.clone(); + } + if let Some(value) = &patch.end { + row.end_at = value.clone(); + } + if let Some(value) = &patch.recurrence { + row.recurrence = value.clone(); + } +} + +/// Epoch milliseconds for the optimistic echo only. `recur` owns the real arithmetic; this exists +/// because an all-day event has to sit at local midnight rather than the UTC midnight the store's +/// window columns use, and the echo renders before the next read replaces it. +fn local_ms(value: &str, all_day: bool) -> i64 { + if all_day || value.len() == 10 { + return NaiveDate::parse_from_str(value, "%Y-%m-%d") + .ok() + .and_then(|date| date.and_hms_opt(0, 0, 0)) + .and_then(|naive| Local.from_local_datetime(&naive).earliest()) + .map(|dt| dt.timestamp_millis()) + .unwrap_or(0); + } + write::epoch_ms(value, false).unwrap_or(0) +} + +/// The row a local write just made, as the frontend will render it until the next read. Attendees +/// and conferencing are Google's to fill in, so they are empty rather than guessed at. +pub fn pending_instance(row: &EventRow, color_hex: &str, read_only: bool) -> Instance { + let color_hex = crate::recur::event_color(row.color_id.as_deref()).unwrap_or(color_hex); + Instance { + event_id: row.id.clone(), + calendar_id: row.calendar_id.clone(), + account_id: row.account_id.clone(), + original_start: row.original_start.clone(), + start: row.start_at.clone(), + end: row.end_at.clone(), + start_ms: local_ms(&row.start_at, row.all_day), + end_ms: local_ms(&row.end_at, row.all_day), + all_day: row.all_day, + summary: row.summary.clone(), + description: row.description.clone(), + location: row.location.clone(), + status: row.status.clone(), + recurring: !row.recurrence.is_empty(), + color_hex: color_hex.to_string(), + color_id: row.color_id.clone(), + etag: row.etag.clone(), + organizer: None, + attendees: Vec::new(), + conference: None, + read_only, + pending: true, + } +} + +/// Google accepts a client-chosen event id in base32hex, which is what makes an optimistic create +/// idempotent: the row keeps the id it rendered with, and a retry of a request whose response was +/// lost collides with itself rather than creating a second event. +pub fn new_event_id() -> String { + use rand::RngCore; + const ALPHABET: &[u8] = b"0123456789abcdefghijklmnopqrstuv"; + let mut bytes = [0u8; 26]; + rand::thread_rng().fill_bytes(&mut bytes); + bytes + .iter() + .map(|byte| ALPHABET[(byte & 0x1f) as usize] as char) + .collect() +} diff --git a/src-tauri/src/sync/pull.rs b/src-tauri/src/sync/pull.rs new file mode 100644 index 0000000..9293925 --- /dev/null +++ b/src-tauri/src/sync/pull.rs @@ -0,0 +1,297 @@ +// The read half of a pass: the calendarList for every connected account, then `events.list` for +// every calendar, incremental where there is a cursor and full where there is not. +// +// The one rule that everything else hangs off: `nextSyncToken` appears only on the final page, so +// pages are walked to exhaustion and nothing at all is written until the walk is over. Committing a +// token from the middle of a chain corrupts the cursor silently, and the next incremental sync +// returns changes since the middle of a page rather than since the last pass. + +use std::collections::HashSet; + +use rusqlite::Connection; + +use crate::google::api::{ApiError, RawCalendar, RawEvent}; +use crate::store::read::{self, SyncTarget}; +use crate::store::write::{self, Tx}; +use crate::store::Store; + +use super::model; +use super::transport::Transport; +use super::{with_conn, Outcome, Sink}; + +/// A calendar with more pages than this is a runaway, not a calendar. 2500 events a page puts the +/// ceiling well past any real history and stops a repeated `pageToken` looping forever. +const MAX_PAGES: usize = 2_000; + +const CALENDAR_LIST_TOKEN: &str = "calendar-list-token"; + +pub async fn sync_all( + store: &Store, + transport: &impl Transport, + sink: &impl Sink, +) -> Outcome { + let mut outcome = Outcome::default(); + + let accounts = match with_conn(store, read::accounts) { + Ok(accounts) => accounts, + Err(error) => { + outcome.error = Some(error); + return outcome; + } + }; + let connected: HashSet = accounts + .iter() + .filter(|account| account.connected) + .map(|account| account.id.clone()) + .collect(); + + for account_id in &connected { + match sync_calendar_list(store, transport, account_id).await { + Ok(changed) => outcome.changed |= changed, + Err(ApiError::Offline(_)) => { + outcome.offline = true; + return outcome; + } + Err(error) => { + outcome.error.get_or_insert(error.to_string()); + } + } + } + if outcome.changed { + sink.changed("calendars"); + } + + let targets = match with_conn(store, read::sync_targets) { + Ok(targets) => targets, + Err(error) => { + outcome.error = Some(error); + return outcome; + } + }; + let targets: Vec = targets + .into_iter() + .filter(|target| connected.contains(&target.account_id)) + .collect(); + + let total = targets.len(); + for (index, target) in targets.iter().enumerate() { + sink.message(&format!("Syncing calendar {} of {total}", index + 1)); + match sync_calendar(store, transport, target).await { + Ok(changed) => { + if changed { + outcome.changed = true; + // Emitted per calendar rather than once at the end, so a long initial pull + // renders as it lands instead of after it. + sink.changed("sync"); + } + } + Err(ApiError::Offline(_)) => { + outcome.offline = true; + return outcome; + } + // One calendar failing is not the pass failing: a shared calendar the user lost access + // to would otherwise stop every other calendar from ever syncing again. + Err(error) => { + outcome + .error + .get_or_insert(format!("{}: {error}", target.calendar_id)); + } + } + } + + outcome +} + +/// Returns whether anything landed. A 410 clears this one calendar and resyncs it alone; every +/// other calendar keeps its rows and its cursor. +async fn sync_calendar( + store: &Store, + transport: &impl Transport, + target: &SyncTarget, +) -> Result { + let mut token = target.sync_token.clone(); + let mut recovered = false; + + loop { + match collect_events(transport, target, token.as_deref()).await { + Ok((items, next)) => { + return with_conn(store, |conn| apply_events(conn, target, &items, &next)) + .map_err(ApiError::Other); + } + Err(ApiError::SyncTokenExpired) if !recovered && token.is_some() => { + recovered = true; + token = None; + with_conn(store, |conn| { + write::clear_calendar(conn, &target.calendar_id) + }) + .map_err(ApiError::Other)?; + } + Err(error) => return Err(error), + } + } +} + +/// Walks to exhaustion and hands back everything at once, because the token that makes the pages +/// worth keeping only arrives with the last of them. +async fn collect_events( + transport: &impl Transport, + target: &SyncTarget, + sync_token: Option<&str>, +) -> Result<(Vec, String), ApiError> { + let mut items: Vec = Vec::new(); + let mut page_token: Option = None; + + for _ in 0..MAX_PAGES { + let page = transport + .events_list( + &target.account_id, + &target.calendar_id, + sync_token, + page_token.as_deref(), + ) + .await?; + items.extend(page.items); + match page.next_page_token { + Some(next) => page_token = Some(next), + None => { + let token = page.next_sync_token.ok_or_else(|| { + ApiError::Other(format!( + "{}: the last page of events carried no sync token", + target.calendar_id + )) + })?; + return Ok((items, token)); + } + } + } + Err(ApiError::Other(format!( + "{}: the event list did not end after {MAX_PAGES} pages", + target.calendar_id + ))) +} + +/// One transaction for the whole chain, so the rows and the cursor can never disagree. +fn apply_events( + conn: &Connection, + target: &SyncTarget, + items: &[RawEvent], + token: &str, +) -> Result { + let tx = Tx::begin(conn)?; + for raw in items { + let row = model::event_row(raw, &target.calendar_id, &target.account_id); + // A cancelled instance of a series is kept: it is how the expander knows to drop that + // occurrence, and it carries nothing but its id, its master and its original start. A + // cancelled anything else is simply gone. + if model::is_cancelled(raw) && row.recurring_event_id.is_none() { + write::delete_event(conn, &target.calendar_id, &row.id)?; + } else { + write::upsert_event(conn, &row)?; + } + } + write::set_calendar_sync_token(conn, &target.calendar_id, Some(token))?; + tx.commit()?; + Ok(!items.is_empty()) +} + +/// The calendarList carries its own sync token, kept in `meta` because `calendars` has no row to +/// hang an account-wide cursor off. +async fn sync_calendar_list( + store: &Store, + transport: &impl Transport, + account_id: &str, +) -> Result { + let key = write::account_meta_key(account_id, CALENDAR_LIST_TOKEN); + let mut token = with_conn(store, |conn| write::meta_get(conn, &key)).map_err(ApiError::Other)?; + let mut recovered = false; + + loop { + match collect_calendars(transport, account_id, token.as_deref()).await { + Ok((items, next)) => { + let full = token.is_none(); + return with_conn(store, |conn| { + apply_calendars(conn, account_id, &items, &next, full) + }) + .map_err(ApiError::Other); + } + Err(ApiError::SyncTokenExpired) if !recovered && token.is_some() => { + recovered = true; + token = None; + } + Err(error) => return Err(error), + } + } +} + +async fn collect_calendars( + transport: &impl Transport, + account_id: &str, + sync_token: Option<&str>, +) -> Result<(Vec, String), ApiError> { + let mut items: Vec = Vec::new(); + let mut page_token: Option = None; + + for _ in 0..MAX_PAGES { + let page = transport + .calendar_list(account_id, sync_token, page_token.as_deref()) + .await?; + items.extend(page.items); + match page.next_page_token { + Some(next) => page_token = Some(next), + None => { + let token = page.next_sync_token.ok_or_else(|| { + ApiError::Other( + "the last page of the calendar list carried no sync token".to_string(), + ) + })?; + return Ok((items, token)); + } + } + } + Err(ApiError::Other( + "the calendar list did not end".to_string(), + )) +} + +fn apply_calendars( + conn: &Connection, + account_id: &str, + items: &[RawCalendar], + token: &str, + full: bool, +) -> Result { + let mut changed = false; + let rows: Vec<_> = items + .iter() + .map(|raw| model::calendar_row(raw, account_id)) + .collect(); + + let live: Vec<_> = rows.iter().filter(|row| !row.deleted).cloned().collect(); + if !live.is_empty() { + write::upsert_calendars(conn, &live)?; + changed = true; + } + for row in rows.iter().filter(|row| row.deleted) { + write::delete_calendar(conn, &row.id)?; + changed = true; + } + + // A full list is the whole truth, so anything local that is missing from it is a calendar the + // account no longer has. An incremental page says nothing about what it did not mention. + if full { + let returned: HashSet<&str> = rows.iter().map(|row| row.id.as_str()).collect(); + for calendar in read::calendars(conn)? { + if calendar.account_id == account_id && !returned.contains(calendar.id.as_str()) { + write::delete_calendar(conn, &calendar.id)?; + changed = true; + } + } + } + + write::meta_set( + conn, + &write::account_meta_key(account_id, CALENDAR_LIST_TOKEN), + token, + )?; + Ok(changed) +} diff --git a/src-tauri/src/sync/push.rs b/src-tauri/src/sync/push.rs new file mode 100644 index 0000000..6153064 --- /dev/null +++ b/src-tauri/src/sync/push.rs @@ -0,0 +1,499 @@ +// The write half: local writes land in SQLite dirty and queued, and the push to Google happens +// behind them. +// +// The queue is drained oldest first. Offline is not a failure, so the entry keeps its attempt count +// and waits for the network. A 412 is a lost race, so the entry is kept and surfaced but never +// retried with the etag dropped, because dropping it is exactly the clobber the check exists to +// prevent. Anything else counts an attempt, and past MAX_ATTEMPTS the entry stops being retried so +// one poisoned write cannot spin the queue forever. + +use std::collections::{HashMap, HashSet}; +use std::time::Instant; + +use rusqlite::Connection; +use serde_json::Value; + +use crate::dto::{EventDraft, Instance, Scope}; +use crate::google::api::ApiError; +use crate::recur::EditPlan; +use crate::store::read; +use crate::store::write::{self, EventRow, OutboxRow, Tx}; +use crate::store::Store; + +use super::model; +use super::transport::Transport; +use super::{with_conn, Outcome}; + +/// Enough attempts to ride out a transient rejection, few enough that a write Google will never +/// accept stops being sent. +pub const MAX_ATTEMPTS: i64 = 5; +const BATCH: u32 = 20; + +// -- local writes ------------------------------------------------------------------------------ + +pub fn create(conn: &Connection, draft: &EventDraft) -> Result { + let calendar = read::calendars(conn)? + .into_iter() + .find(|calendar| calendar.id == draft.calendar_id) + .ok_or_else(|| format!("no such calendar: {}", draft.calendar_id))?; + + let zone = (!calendar.time_zone.is_empty()).then(|| calendar.time_zone.clone()); + let id = model::new_event_id(); + let mut row = model::draft_row(draft, &id, &calendar.account_id); + row.start_tz = zone.clone(); + row.end_tz = zone.clone(); + + let tx = Tx::begin(conn)?; + write::upsert_event_dirty(conn, &row)?; + queue( + conn, + "create", + &draft.calendar_id, + Some(&id), + None, + None, + Some(model::draft_body(draft, &id, zone.as_deref(), zone.as_deref())), + None, + )?; + tx.commit()?; + + Ok(model::pending_instance( + &row, + &calendar.color_hex, + !model::writable(&calendar.access_role), + )) +} + +/// Performs the plans `recur` handed back: the optimistic local write, then the queued request. +pub fn apply_plans(conn: &Connection, rows: &[EventRow], plans: &[EditPlan]) -> Result<(), String> { + let tx = Tx::begin(conn)?; + for plan in plans { + match plan { + EditPlan::PatchInstance { + calendar_id, + event_id, + original_start, + patch, + } => { + // Only an occurrence that is already an exception has a row to write to. The rest + // exist solely as a rule until Google materialises them, which it does at push + // time, so the local half of the write waits for the next sync. + let existing = exception(rows, calendar_id, event_id, original_start.as_deref()); + if let Some(row) = existing { + let mut updated = row.clone(); + model::apply_patch(&mut updated, patch); + write::upsert_event_dirty(conn, &updated)?; + } + let master = read::event(conn, calendar_id, event_id)?; + let shape = existing.or(master.as_ref()); + queue( + conn, + "patch", + calendar_id, + Some(event_id), + original_start.as_deref(), + Some(Scope::This), + Some(body_for(patch, shape)), + existing.and_then(|row| row.etag.as_deref()), + )?; + } + EditPlan::PatchMaster { + calendar_id, + event_id, + patch, + } => { + let existing = read::event(conn, calendar_id, event_id)?; + if let Some(row) = &existing { + let mut updated = row.clone(); + model::apply_patch(&mut updated, patch); + write::upsert_event_dirty(conn, &updated)?; + } + queue( + conn, + "patch", + calendar_id, + Some(event_id), + None, + Some(Scope::All), + Some(body_for(patch, existing.as_ref())), + existing.as_ref().and_then(|row| row.etag.as_deref()), + )?; + } + EditPlan::Split { + calendar_id, + event_id, + until, + draft, + } => { + let master = truncate(conn, calendar_id, event_id, until, Scope::Following)?; + let calendar = calendar_of(conn, &draft.calendar_id); + let zone = calendar + .as_ref() + .map(|calendar| calendar.time_zone.clone()) + .filter(|zone| !zone.is_empty()); + + let id = model::new_event_id(); + let account_id = master + .as_ref() + .map(|row| row.account_id.clone()) + .or_else(|| calendar.map(|calendar| calendar.account_id)) + .unwrap_or_default(); + let mut row = model::draft_row(draft, &id, &account_id); + // The tail inherits the head's zones. `EventDraft` carries an offset and no zone, + // and an offset alone lets Google file the new series under the calendar's zone, + // which puts the two halves an hour apart at the next DST transition. + row.start_tz = master + .as_ref() + .and_then(|master| master.start_tz.clone()) + .or_else(|| zone.clone()); + row.end_tz = master + .as_ref() + .and_then(|master| master.end_tz.clone()) + .or(zone); + write::upsert_event_dirty(conn, &row)?; + queue( + conn, + "create", + &draft.calendar_id, + Some(&id), + None, + Some(Scope::Following), + Some(model::draft_body( + draft, + &id, + row.start_tz.as_deref(), + row.end_tz.as_deref(), + )), + None, + )?; + } + EditPlan::CancelInstance { + calendar_id, + event_id, + original_start, + } => { + let existing = exception(rows, calendar_id, event_id, original_start.as_deref()); + if let Some(row) = existing { + let mut updated = row.clone(); + updated.status = "cancelled".to_string(); + write::upsert_event_dirty(conn, &updated)?; + } + queue( + conn, + "delete", + calendar_id, + Some(event_id), + original_start.as_deref(), + Some(Scope::This), + None, + existing.and_then(|row| row.etag.as_deref()), + )?; + } + EditPlan::TruncateMaster { + calendar_id, + event_id, + until, + } => { + truncate(conn, calendar_id, event_id, until, Scope::Following)?; + } + EditPlan::DeleteMaster { + calendar_id, + event_id, + } => { + let existing = read::event(conn, calendar_id, event_id)?; + write::delete_event(conn, calendar_id, event_id)?; + queue( + conn, + "delete", + calendar_id, + Some(event_id), + None, + Some(Scope::All), + None, + existing.as_ref().and_then(|row| row.etag.as_deref()), + )?; + } + } + } + tx.commit() +} + +/// Rewrites the master's rule to stop at `until` and queues that patch. Returns the row it found, +/// which is where a split gets the account for the new master. +fn truncate( + conn: &Connection, + calendar_id: &str, + event_id: &str, + until: &str, + scope: Scope, +) -> Result, String> { + let existing = read::event(conn, calendar_id, event_id)?; + let recurrence = existing + .as_ref() + .map(|row| crate::recur::truncate_recurrence(&row.recurrence, until)) + .unwrap_or_default(); + if let Some(row) = &existing { + let mut updated = row.clone(); + updated.recurrence = recurrence.clone(); + write::upsert_event_dirty(conn, &updated)?; + } + queue( + conn, + "patch", + calendar_id, + Some(event_id), + None, + Some(scope), + Some(model::recurrence_body(&recurrence)), + existing.as_ref().and_then(|row| row.etag.as_deref()), + )?; + Ok(existing) +} + +fn exception<'a>( + rows: &'a [EventRow], + calendar_id: &str, + event_id: &str, + original_start: Option<&str>, +) -> Option<&'a EventRow> { + rows.iter().find(|row| { + row.calendar_id == calendar_id + && row.recurring_event_id.as_deref() == Some(event_id) + && row.original_start.as_deref() == original_start + }) +} + +fn calendar_of(conn: &Connection, calendar_id: &str) -> Option { + read::calendars(conn) + .ok()? + .into_iter() + .find(|calendar| calendar.id == calendar_id) +} + +/// A patch keeps the shape of the row it is patching: its all-day flag and its zones, neither of +/// which the patch itself is obliged to restate. +fn body_for(patch: &crate::dto::EventPatch, row: Option<&EventRow>) -> Value { + model::patch_body( + patch, + row.map(|row| row.all_day).unwrap_or(false), + row.and_then(|row| row.start_tz.as_deref()), + row.and_then(|row| row.end_tz.as_deref()), + ) +} + +fn scope_name(scope: Scope) -> &'static str { + match scope { + Scope::This => "this", + Scope::Following => "following", + Scope::All => "all", + } +} + +#[allow(clippy::too_many_arguments)] +fn queue( + conn: &Connection, + op: &str, + calendar_id: &str, + event_id: Option<&str>, + original_start: Option<&str>, + scope: Option, + payload: Option, + etag: Option<&str>, +) -> Result<(), String> { + write::enqueue( + conn, + &OutboxRow { + op: op.to_string(), + calendar_id: calendar_id.to_string(), + event_id: event_id.map(str::to_string), + original_start: original_start.map(str::to_string), + scope: scope.map(|scope| scope_name(scope).to_string()), + payload: payload.map(|value| value.to_string()), + etag: etag.map(str::to_string), + ..Default::default() + }, + )?; + Ok(()) +} + +// -- the drain --------------------------------------------------------------------------------- + +pub async fn drain(store: &Store, transport: &impl Transport, deadline: Instant) -> Outcome { + let mut outcome = Outcome::default(); + let accounts = match with_conn(store, calendar_accounts) { + Ok(accounts) => accounts, + Err(error) => { + outcome.error = Some(error); + return outcome; + } + }; + + // One attempt per entry per drain. Without this a queue that is making progress would burn a + // failing entry's whole attempt budget in a single pass. + let mut attempted: HashSet = HashSet::new(); + + while Instant::now() < deadline { + let queued = match with_conn(store, |conn| write::peek_outbox(conn, BATCH)) { + Ok(queued) => queued, + Err(error) => { + outcome.error = Some(error); + return outcome; + } + }; + let pending: Vec = queued + .into_iter() + .filter(|row| row.attempts < MAX_ATTEMPTS && !attempted.contains(&row.id)) + .collect(); + if pending.is_empty() { + break; + } + + for row in pending { + if Instant::now() >= deadline { + return outcome; + } + attempted.insert(row.id); + + let Some(account_id) = accounts.get(&row.calendar_id) else { + // The calendar is gone, so the write has nowhere to land and nothing to retry + // against. + let _ = with_conn(store, |conn| write::dequeue(conn, row.id)); + continue; + }; + + match push_one(store, transport, account_id, &row).await { + Ok(()) => { + let _ = with_conn(store, |conn| write::dequeue(conn, row.id)); + outcome.changed = true; + } + Err(ApiError::Offline(_)) => { + // Not a failure, so no attempt is counted and nothing is surfaced. The queue is + // the reason this app works on a plane. + outcome.offline = true; + return outcome; + } + Err(error) => { + let message = error.to_string(); + let _ = + with_conn(store, |conn| write::mark_attempt_failed(conn, row.id, &message)); + outcome.error.get_or_insert(message); + } + } + } + } + + outcome +} + +async fn push_one( + store: &Store, + transport: &impl Transport, + account_id: &str, + row: &OutboxRow, +) -> Result<(), ApiError> { + match row.op.as_str() { + "create" => { + let body = payload(row)?; + match transport + .events_insert(account_id, &row.calendar_id, &body) + .await + { + Ok(raw) => land(store, &row.calendar_id, account_id, &raw), + // The id was chosen locally, so a retry of a create whose response never arrived + // collides with itself. The event is there, which is what was wanted. + Err(ApiError::Other(message)) if message.contains("(409)") => clear(store, row), + Err(error) => Err(error), + } + } + "patch" => { + let body = payload(row)?; + let (event_id, etag) = resolve(transport, account_id, row).await?; + let raw = transport + .events_patch( + account_id, + &row.calendar_id, + &event_id, + &body, + etag.as_deref(), + ) + .await?; + land(store, &row.calendar_id, account_id, &raw)?; + clear(store, row) + } + "delete" => { + let (event_id, etag) = resolve(transport, account_id, row).await?; + transport + .events_delete(account_id, &row.calendar_id, &event_id, etag.as_deref()) + .await?; + with_conn(store, |conn| { + write::delete_event(conn, &row.calendar_id, &event_id) + }) + .map_err(ApiError::Other)?; + clear(store, row) + } + other => Err(ApiError::Other(format!("unknown queued write: {other}"))), + } +} + +/// `EditPlan::PatchInstance` carries the original start rather than an instance id because the id +/// is Google's to give. This is where it is asked for, at push time, rather than assembled by hand. +async fn resolve( + transport: &impl Transport, + account_id: &str, + row: &OutboxRow, +) -> Result<(String, Option), ApiError> { + let event_id = row + .event_id + .clone() + .ok_or_else(|| ApiError::Other("a queued write with no event".to_string()))?; + let Some(original_start) = row.original_start.as_deref() else { + return Ok((event_id, row.etag.clone())); + }; + let instances = transport + .events_instances(account_id, &row.calendar_id, &event_id, original_start) + .await?; + let instance = instances.into_iter().next().ok_or_else(|| { + ApiError::Other(format!( + "that occurrence of {event_id} is no longer in the series" + )) + })?; + let etag = row.etag.clone().or_else(|| instance.etag.clone()); + Ok((instance.id, etag)) +} + +fn payload(row: &OutboxRow) -> Result { + let raw = row + .payload + .as_deref() + .ok_or_else(|| ApiError::Other(format!("the queued {} carries no body", row.op)))?; + serde_json::from_str(raw).map_err(|e| ApiError::Other(e.to_string())) +} + +/// The response is the truth, so it replaces the optimistic row rather than merely clearing its +/// dirty flag: Google fills in the etag, the id normalisation and anything it rewrote. +fn land( + store: &Store, + calendar_id: &str, + account_id: &str, + raw: &crate::google::api::RawEvent, +) -> Result<(), ApiError> { + let row = model::event_row(raw, calendar_id, account_id); + with_conn(store, |conn| write::upsert_event(conn, &row)).map_err(ApiError::Other) +} + +fn clear(store: &Store, row: &OutboxRow) -> Result<(), ApiError> { + let Some(event_id) = row.event_id.as_deref() else { + return Ok(()); + }; + with_conn(store, |conn| { + write::clear_dirty(conn, &row.calendar_id, event_id) + }) + .map_err(ApiError::Other) +} + +fn calendar_accounts(conn: &Connection) -> Result, String> { + Ok(read::calendars(conn)? + .into_iter() + .map(|calendar| (calendar.id, calendar.account_id)) + .collect()) +} diff --git a/src-tauri/src/sync/tests.rs b/src-tauri/src/sync/tests.rs new file mode 100644 index 0000000..96287b7 --- /dev/null +++ b/src-tauri/src/sync/tests.rs @@ -0,0 +1,802 @@ +// The state machine against a stubbed transport and an in-memory database. Nothing here touches +// Google, and nothing here can: the engine only ever speaks through `Transport`. + +use std::collections::{HashMap, VecDeque}; +use std::sync::Mutex; +use std::time::{Duration, Instant}; + +use rusqlite::Connection; +use tauri::async_runtime::block_on; + +use crate::dto::SyncStatus; +use crate::google::api::{ApiError, CalendarListPage, EventDateTime, EventsPage, RawEvent}; +use crate::store::write::{self, CalendarRow, OutboxRow}; +use crate::store::{read, schema, Store}; + +use super::transport::Transport; +use super::{pull, push, with_conn, Sink}; + +// -- the stub ---------------------------------------------------------------------------------- + +#[derive(Default)] +struct Stub { + events: Mutex>>>, + calendars: Mutex>>, + writes: Mutex>>, + deletes: Mutex>>, + instances: Mutex, ApiError>>>, + calls: Mutex>, +} + +impl Stub { + fn record(&self, call: String) { + self.calls.lock().expect("calls").push(call); + } + + fn calls(&self) -> Vec { + self.calls.lock().expect("calls").clone() + } + + fn script_events(&self, calendar_id: &str, replies: Vec>) { + self.events + .lock() + .expect("events") + .insert(calendar_id.to_string(), replies.into()); + } + + fn script_calendars(&self, replies: Vec>) { + *self.calendars.lock().expect("calendars") = replies.into(); + } + + fn script_writes(&self, replies: Vec>) { + *self.writes.lock().expect("writes") = replies.into(); + } +} + +fn shown(value: Option<&str>) -> &str { + value.unwrap_or("-") +} + +impl Transport for Stub { + fn calendar_list( + &self, + account_id: &str, + sync_token: Option<&str>, + page_token: Option<&str>, + ) -> impl std::future::Future> + Send { + async move { + self.record(format!( + "calendar_list {account_id} sync={} page={}", + shown(sync_token), + shown(page_token) + )); + self.calendars + .lock() + .expect("calendars") + .pop_front() + .unwrap_or_else(|| Err(ApiError::Other("unscripted calendar_list".to_string()))) + } + } + + fn events_list( + &self, + _account_id: &str, + calendar_id: &str, + sync_token: Option<&str>, + page_token: Option<&str>, + ) -> impl std::future::Future> + Send { + async move { + self.record(format!( + "events_list {calendar_id} sync={} page={}", + shown(sync_token), + shown(page_token) + )); + self.events + .lock() + .expect("events") + .get_mut(calendar_id) + .and_then(|replies| replies.pop_front()) + .unwrap_or_else(|| Err(ApiError::Other("unscripted events_list".to_string()))) + } + } + + fn events_insert( + &self, + _account_id: &str, + calendar_id: &str, + body: &serde_json::Value, + ) -> impl std::future::Future> + Send { + async move { + let id = body.get("id").and_then(|v| v.as_str()).unwrap_or("-"); + self.record(format!("events_insert {calendar_id} {id}")); + self.writes + .lock() + .expect("writes") + .pop_front() + .unwrap_or_else(|| Err(ApiError::Other("unscripted events_insert".to_string()))) + } + } + + fn events_patch( + &self, + _account_id: &str, + calendar_id: &str, + event_id: &str, + _body: &serde_json::Value, + etag: Option<&str>, + ) -> impl std::future::Future> + Send { + async move { + self.record(format!( + "events_patch {calendar_id} {event_id} etag={}", + shown(etag) + )); + self.writes + .lock() + .expect("writes") + .pop_front() + .unwrap_or_else(|| Err(ApiError::Other("unscripted events_patch".to_string()))) + } + } + + fn events_delete( + &self, + _account_id: &str, + calendar_id: &str, + event_id: &str, + etag: Option<&str>, + ) -> impl std::future::Future> + Send { + async move { + self.record(format!( + "events_delete {calendar_id} {event_id} etag={}", + shown(etag) + )); + self.deletes + .lock() + .expect("deletes") + .pop_front() + .unwrap_or(Ok(())) + } + } + + fn events_instances( + &self, + _account_id: &str, + calendar_id: &str, + event_id: &str, + original_start: &str, + ) -> impl std::future::Future, ApiError>> + Send { + async move { + self.record(format!( + "events_instances {calendar_id} {event_id} at={original_start}" + )); + self.instances + .lock() + .expect("instances") + .pop_front() + .unwrap_or_else(|| Ok(Vec::new())) + } + } +} + +#[derive(Default)] +struct Recorder { + messages: Mutex>, + reasons: Mutex>, + statuses: Mutex>, +} + +impl Sink for Recorder { + fn message(&self, text: &str) { + self.messages.lock().expect("messages").push(text.to_string()); + } + + fn status(&self, status: &SyncStatus) { + self.statuses.lock().expect("statuses").push(status.clone()); + } + + fn changed(&self, reason: &str) { + self.reasons.lock().expect("reasons").push(reason.to_string()); + } +} + +// -- fixtures ---------------------------------------------------------------------------------- + +fn db() -> Store { + let conn = Connection::open_in_memory().expect("in-memory database"); + schema::migrate(&conn).expect("migrate"); + Store { + conn: Mutex::new(conn), + } +} + +/// The calendarList cursor is seeded so a pull runs incremental. A full list is the whole truth and +/// would prune calendars a test set up by hand. +fn account(store: &Store, id: &str) { + with_conn(store, |conn| { + write::upsert_account(conn, id, &format!("{id}@example.test"), Some("keychain"))?; + write::meta_set( + conn, + &write::account_meta_key(id, "calendar-list-token"), + "cl-0", + ) + }) + .expect("account"); +} + +fn calendar(store: &Store, id: &str, account_id: &str, sync_token: Option<&str>) { + with_conn(store, |conn| { + write::upsert_calendar( + conn, + &CalendarRow { + id: id.to_string(), + account_id: account_id.to_string(), + summary: id.to_string(), + color_hex: "#4285f4".to_string(), + access_role: "owner".to_string(), + time_zone: "Europe/London".to_string(), + selected: true, + ..Default::default() + }, + )?; + write::set_calendar_sync_token(conn, id, sync_token) + }) + .expect("calendar"); +} + +fn stored_event(store: &Store, id: &str, calendar_id: &str) { + with_conn(store, |conn| { + write::upsert_event( + conn, + &crate::store::write::EventRow { + id: id.to_string(), + calendar_id: calendar_id.to_string(), + account_id: "acct".to_string(), + status: "confirmed".to_string(), + summary: id.to_string(), + start_at: "2026-08-10T09:00:00Z".to_string(), + end_at: "2026-08-10T10:00:00Z".to_string(), + etag: Some(format!("etag-{id}")), + ..Default::default() + }, + ) + }) + .expect("event"); +} + +fn when(value: &str) -> EventDateTime { + EventDateTime { + date_time: Some(value.to_string()), + ..Default::default() + } +} + +fn raw(id: &str) -> RawEvent { + RawEvent { + id: id.to_string(), + etag: Some(format!("etag-{id}")), + status: Some("confirmed".to_string()), + summary: Some(id.to_string()), + start: Some(when("2026-08-10T09:00:00Z")), + end: Some(when("2026-08-10T10:00:00Z")), + ..Default::default() + } +} + +fn page(items: Vec, next_page: Option<&str>, next_sync: Option<&str>) -> EventsPage { + EventsPage { + items, + next_page_token: next_page.map(str::to_string), + next_sync_token: next_sync.map(str::to_string), + } +} + +fn calendar_page(next_sync: &str) -> CalendarListPage { + CalendarListPage { + items: Vec::new(), + next_page_token: None, + next_sync_token: Some(next_sync.to_string()), + } +} + +fn token_of(store: &Store, calendar_id: &str) -> Option { + with_conn(store, |conn| write::calendar_sync_token(conn, calendar_id)).expect("token") +} + +fn has_event(store: &Store, calendar_id: &str, event_id: &str) -> bool { + with_conn(store, |conn| read::event(conn, calendar_id, event_id)) + .expect("read") + .is_some() +} + +fn queued(store: &Store) -> Vec { + with_conn(store, |conn| write::peek_outbox(conn, 50)).expect("peek") +} + +fn enqueue(store: &Store, op: &str, event_id: &str, payload: Option<&str>, etag: Option<&str>) { + with_conn(store, |conn| { + write::enqueue( + conn, + &OutboxRow { + op: op.to_string(), + calendar_id: "cal-a".to_string(), + event_id: Some(event_id.to_string()), + payload: payload.map(str::to_string), + etag: etag.map(str::to_string), + ..Default::default() + }, + ) + }) + .expect("enqueue"); +} + +fn drain(store: &Store, stub: &Stub) -> super::Outcome { + block_on(push::drain( + store, + stub, + Instant::now() + Duration::from_secs(30), + )) +} + +// -- the pull ---------------------------------------------------------------------------------- + +#[test] +fn pagination_walks_to_exhaustion_and_commits_the_token_from_the_final_page() { + let store = db(); + account(&store, "acct"); + calendar(&store, "cal-a", "acct", Some("start")); + + let stub = Stub::default(); + stub.script_calendars(vec![Ok(calendar_page("cl-1"))]); + stub.script_events( + "cal-a", + vec![ + Ok(page(vec![raw("one")], Some("page-2"), None)), + Ok(page(vec![raw("two")], Some("page-3"), None)), + Ok(page(vec![raw("three")], None, Some("final"))), + ], + ); + + let outcome = block_on(pull::sync_all(&store, &stub, &Recorder::default())); + + assert!(outcome.error.is_none(), "{:?}", outcome.error); + assert!(has_event(&store, "cal-a", "one")); + assert!(has_event(&store, "cal-a", "three")); + assert_eq!(token_of(&store, "cal-a"), Some("final".to_string())); + assert_eq!( + stub.calls(), + vec![ + "calendar_list acct sync=cl-0 page=-", + "events_list cal-a sync=start page=-", + "events_list cal-a sync=start page=page-2", + "events_list cal-a sync=start page=page-3", + ] + ); +} + +#[test] +fn a_token_from_the_middle_of_a_chain_is_never_stored() { + let store = db(); + account(&store, "acct"); + calendar(&store, "cal-a", "acct", Some("start")); + + let stub = Stub::default(); + stub.script_calendars(vec![Ok(calendar_page("cl-1"))]); + stub.script_events( + "cal-a", + vec![ + // A token on a page that is not the last one is not the end of the chain, whatever it + // says, and committing it would leave the cursor pointing at the middle of a page. + Ok(page(vec![raw("one")], Some("page-2"), Some("middle"))), + Err(ApiError::Other("Google events list failed (503)".to_string())), + ], + ); + + let outcome = block_on(pull::sync_all(&store, &stub, &Recorder::default())); + + assert!(outcome.error.is_some()); + assert_eq!(token_of(&store, "cal-a"), Some("start".to_string())); + assert!(!has_event(&store, "cal-a", "one"), "a partial chain is not a commit"); +} + +#[test] +fn a_dead_token_clears_that_calendar_alone() { + let store = db(); + account(&store, "acct"); + calendar(&store, "cal-a", "acct", Some("dead")); + calendar(&store, "cal-b", "acct", Some("live")); + stored_event(&store, "stale-a", "cal-a"); + stored_event(&store, "kept-b", "cal-b"); + + let stub = Stub::default(); + stub.script_calendars(vec![Ok(calendar_page("cl-1"))]); + stub.script_events( + "cal-a", + vec![ + Err(ApiError::SyncTokenExpired), + Ok(page(vec![raw("fresh-a")], None, Some("a-2"))), + ], + ); + stub.script_events("cal-b", vec![Ok(page(Vec::new(), None, Some("b-2")))]); + + let outcome = block_on(pull::sync_all(&store, &stub, &Recorder::default())); + + assert!(outcome.error.is_none(), "{:?}", outcome.error); + assert!(!has_event(&store, "cal-a", "stale-a"), "the dead calendar is dropped"); + assert!(has_event(&store, "cal-a", "fresh-a")); + assert_eq!(token_of(&store, "cal-a"), Some("a-2".to_string())); + + assert!(has_event(&store, "cal-b", "kept-b"), "the healthy calendar is untouched"); + assert_eq!(token_of(&store, "cal-b"), Some("b-2".to_string())); + + assert_eq!( + stub.calls() + .into_iter() + .filter(|call| call.starts_with("events_list")) + .collect::>(), + vec![ + "events_list cal-a sync=dead page=-", + "events_list cal-a sync=- page=-", + "events_list cal-b sync=live page=-", + ] + ); +} + +#[test] +fn a_cancelled_single_is_dropped_while_a_cancelled_occurrence_is_kept() { + let store = db(); + account(&store, "acct"); + calendar(&store, "cal-a", "acct", Some("start")); + stored_event(&store, "single", "cal-a"); + + let mut cancelled = raw("single"); + cancelled.status = Some("cancelled".to_string()); + + // Everything a cancelled occurrence is guaranteed to carry, and nothing else. + let occurrence = RawEvent { + id: "series_20260817T090000Z".to_string(), + status: Some("cancelled".to_string()), + recurring_event_id: Some("series".to_string()), + original_start_time: Some(when("2026-08-17T09:00:00Z")), + ..Default::default() + }; + + let stub = Stub::default(); + stub.script_calendars(vec![Ok(calendar_page("cl-1"))]); + stub.script_events( + "cal-a", + vec![Ok(page(vec![cancelled, occurrence], None, Some("next")))], + ); + + block_on(pull::sync_all(&store, &stub, &Recorder::default())); + + assert!(!has_event(&store, "cal-a", "single")); + assert!(has_event(&store, "cal-a", "series_20260817T090000Z")); +} + +// -- the outbox -------------------------------------------------------------------------------- + +#[test] +fn the_outbox_drains_in_the_order_it_was_filled() { + let store = db(); + account(&store, "acct"); + calendar(&store, "cal-a", "acct", Some("start")); + stored_event(&store, "two", "cal-a"); + stored_event(&store, "three", "cal-a"); + + enqueue(&store, "create", "one", Some(r#"{"id":"one"}"#), None); + enqueue(&store, "patch", "two", Some(r#"{"summary":"moved"}"#), Some("etag-two")); + enqueue(&store, "delete", "three", None, Some("etag-three")); + + let stub = Stub::default(); + stub.script_writes(vec![Ok(raw("one")), Ok(raw("two"))]); + + let outcome = drain(&store, &stub); + + assert!(outcome.error.is_none(), "{:?}", outcome.error); + assert!(outcome.changed); + assert_eq!( + stub.calls(), + vec![ + "events_insert cal-a one", + "events_patch cal-a two etag=etag-two", + "events_delete cal-a three etag=etag-three", + ] + ); + assert!(queued(&store).is_empty(), "everything landed"); + assert!(has_event(&store, "cal-a", "one"), "the server's row replaces the local one"); + assert!(!has_event(&store, "cal-a", "three"), "a delete that landed is gone locally"); + let row = with_conn(&store, |conn| read::event(conn, "cal-a", "one")) + .expect("read") + .expect("row"); + assert!(!row.dirty, "a landed write is no longer pending"); +} + +#[test] +fn a_lost_race_keeps_the_entry_and_surfaces_rather_than_clobbering() { + let store = db(); + account(&store, "acct"); + calendar(&store, "cal-a", "acct", Some("start")); + stored_event(&store, "two", "cal-a"); + enqueue(&store, "patch", "two", Some(r#"{"summary":"mine"}"#), Some("etag-two")); + + let stub = Stub::default(); + stub.script_writes(vec![Err(ApiError::PreconditionFailed)]); + + let outcome = drain(&store, &stub); + + assert!(outcome.error.is_some(), "a 412 is surfaced"); + let entries = queued(&store); + assert_eq!(entries.len(), 1, "the entry is kept"); + assert_eq!(entries[0].attempts, 1); + assert_eq!(entries[0].etag.as_deref(), Some("etag-two")); + assert!(entries[0] + .last_error + .as_deref() + .expect("an error") + .contains("changed elsewhere")); + // One attempt, and never a second one with the etag quietly dropped. + assert_eq!(stub.calls(), vec!["events_patch cal-a two etag=etag-two"]); +} + +#[test] +fn offline_keeps_the_entry_queued_without_recording_a_failure() { + let store = db(); + account(&store, "acct"); + calendar(&store, "cal-a", "acct", Some("start")); + stored_event(&store, "two", "cal-a"); + enqueue(&store, "patch", "two", Some(r#"{"summary":"mine"}"#), Some("etag-two")); + + let stub = Stub::default(); + stub.script_writes(vec![Err(ApiError::Offline("no route to host".to_string()))]); + + let outcome = drain(&store, &stub); + + assert!(outcome.offline); + assert!(outcome.error.is_none(), "being on a plane is not a failure"); + let entries = queued(&store); + assert_eq!(entries.len(), 1); + assert_eq!(entries[0].attempts, 0, "no attempt is spent on being offline"); + assert_eq!(entries[0].last_error, None); +} + +#[test] +fn a_write_google_keeps_rejecting_eventually_stops_being_retried() { + let store = db(); + account(&store, "acct"); + calendar(&store, "cal-a", "acct", Some("start")); + stored_event(&store, "two", "cal-a"); + enqueue(&store, "patch", "two", Some(r#"{"summary":"mine"}"#), Some("etag-two")); + + let stub = Stub::default(); + stub.script_writes( + (0..20) + .map(|_| Err(ApiError::Other("Google event update failed (400)".to_string()))) + .collect(), + ); + + for _ in 0..10 { + drain(&store, &stub); + } + + assert_eq!( + stub.calls().len() as i64, + push::MAX_ATTEMPTS, + "the queue stops rather than spinning" + ); + let entries = queued(&store); + assert_eq!(entries.len(), 1); + assert_eq!(entries[0].attempts, push::MAX_ATTEMPTS); +} + +#[test] +fn one_entry_is_attempted_at_most_once_per_drain() { + let store = db(); + account(&store, "acct"); + calendar(&store, "cal-a", "acct", Some("start")); + stored_event(&store, "two", "cal-a"); + stored_event(&store, "three", "cal-a"); + enqueue(&store, "patch", "two", Some(r#"{"summary":"mine"}"#), Some("etag-two")); + enqueue(&store, "delete", "three", None, Some("etag-three")); + + let stub = Stub::default(); + stub.script_writes(vec![Err(ApiError::Other("Google event update failed (400)".to_string()))]); + + drain(&store, &stub); + + assert_eq!( + stub.calls(), + vec![ + "events_patch cal-a two etag=etag-two", + "events_delete cal-a three etag=etag-three", + ], + "a failure does not block the entries behind it, and is not retried in the same pass" + ); + assert_eq!(queued(&store).len(), 1); +} + +#[test] +fn a_scoped_edit_resolves_the_occurrence_at_push_time() { + let store = db(); + account(&store, "acct"); + calendar(&store, "cal-a", "acct", Some("start")); + + with_conn(&store, |conn| { + write::enqueue( + conn, + &OutboxRow { + op: "patch".to_string(), + calendar_id: "cal-a".to_string(), + event_id: Some("series".to_string()), + original_start: Some("2026-08-17T09:00:00Z".to_string()), + scope: Some("this".to_string()), + payload: Some(r#"{"summary":"just this one"}"#.to_string()), + ..Default::default() + }, + ) + }) + .expect("enqueue"); + + let stub = Stub::default(); + *stub.instances.lock().expect("instances") = + vec![Ok(vec![raw("series_20260817T090000Z")])].into(); + stub.script_writes(vec![Ok(raw("series_20260817T090000Z"))]); + + let outcome = drain(&store, &stub); + + assert!(outcome.error.is_none(), "{:?}", outcome.error); + assert_eq!( + stub.calls(), + vec![ + "events_instances cal-a series at=2026-08-17T09:00:00Z", + // The instance id came from Google rather than being assembled from the original start. + "events_patch cal-a series_20260817T090000Z etag=etag-series_20260817T090000Z", + ] + ); + assert!(queued(&store).is_empty()); +} + +// -- the local write --------------------------------------------------------------------------- + +#[test] +fn a_local_create_renders_before_google_has_seen_it() { + let store = db(); + account(&store, "acct"); + calendar(&store, "cal-a", "acct", Some("start")); + + let draft = crate::dto::EventDraft { + color_id: None, + calendar_id: "cal-a".to_string(), + summary: "Lunch".to_string(), + description: None, + location: None, + start: "2026-08-11T12:00:00Z".to_string(), + end: "2026-08-11T13:00:00Z".to_string(), + all_day: false, + recurrence: Vec::new(), + }; + let instance = with_conn(&store, |conn| push::create(conn, &draft)).expect("create"); + + assert!(instance.pending); + assert_eq!(instance.color_hex, "#4285f4"); + let row = with_conn(&store, |conn| read::event(conn, "cal-a", &instance.event_id)) + .expect("read") + .expect("row"); + assert!(row.dirty); + + let entries = queued(&store); + assert_eq!(entries.len(), 1); + assert_eq!(entries[0].op, "create"); + let body: serde_json::Value = + serde_json::from_str(entries[0].payload.as_deref().expect("a body")).expect("json"); + assert_eq!(body["id"], instance.event_id); + assert_eq!(body["start"]["dateTime"], "2026-08-11T12:00:00Z"); +} + +/// The whole write path for a scoped edit: the rows the command gathers, the plan `recur` makes of +/// them, the queue entry, and the request that entry becomes. +#[test] +fn a_this_occurrence_edit_goes_from_plan_to_queue_to_request() { + let store = db(); + account(&store, "acct"); + calendar(&store, "cal-a", "acct", Some("start")); + with_conn(&store, |conn| { + write::upsert_event( + conn, + &crate::store::write::EventRow { + id: "series".to_string(), + calendar_id: "cal-a".to_string(), + account_id: "acct".to_string(), + status: "confirmed".to_string(), + summary: "Standup".to_string(), + start_at: "2026-08-03T09:00:00+01:00".to_string(), + start_tz: Some("Europe/London".to_string()), + end_at: "2026-08-03T09:15:00+01:00".to_string(), + end_tz: Some("Europe/London".to_string()), + recurrence: vec!["RRULE:FREQ=WEEKLY;BYDAY=MO".to_string()], + etag: Some("etag-series".to_string()), + ..Default::default() + }, + ) + }) + .expect("master"); + + let key = crate::dto::InstanceKey { + event_id: "series".to_string(), + original_start: Some("2026-08-17T09:00:00+01:00".to_string()), + }; + let patch = crate::dto::EventPatch { + summary: Some("Standup, moved".to_string()), + ..Default::default() + }; + + let rows = with_conn(&store, |conn| super::series_rows(conn, &key)).expect("rows"); + let plans = crate::recur::plan_edit(&rows, &key, &patch, crate::dto::Scope::This).expect("plan"); + with_conn(&store, |conn| push::apply_plans(conn, &rows, &plans)).expect("apply"); + + let entries = queued(&store); + assert_eq!(entries.len(), 1); + assert_eq!(entries[0].op, "patch"); + assert_eq!(entries[0].scope.as_deref(), Some("this")); + assert_eq!( + entries[0].original_start.as_deref(), + Some("2026-08-17T09:00:00+01:00"), + "the occurrence is named by its original start, not by a hand-built instance id" + ); + + let stub = Stub::default(); + *stub.instances.lock().expect("instances") = vec![Ok(vec![raw("series_20260817T080000Z")])].into(); + stub.script_writes(vec![Ok(raw("series_20260817T080000Z"))]); + let outcome = drain(&store, &stub); + + assert!(outcome.error.is_none(), "{:?}", outcome.error); + assert_eq!( + stub.calls(), + vec![ + "events_instances cal-a series at=2026-08-17T09:00:00+01:00", + "events_patch cal-a series_20260817T080000Z etag=etag-series_20260817T080000Z", + ] + ); + assert!(queued(&store).is_empty()); +} + +#[test] +fn an_all_day_draft_never_becomes_a_timestamp() { + let draft = crate::dto::EventDraft { + color_id: None, + calendar_id: "cal-a".to_string(), + summary: "Holiday".to_string(), + description: None, + location: None, + start: "2026-08-11".to_string(), + end: "2026-08-12".to_string(), + all_day: true, + recurrence: Vec::new(), + }; + let body = super::model::draft_body(&draft, "abcde", Some("Europe/London"), Some("Europe/London")); + assert_eq!(body["start"]["date"], "2026-08-11"); + assert!(body["start"].get("dateTime").is_none()); + assert!( + body["start"].get("timeZone").is_none(), + "an all-day date has no zone to be wrong about" + ); +} + +#[test] +fn a_timed_write_carries_the_zone_as_well_as_the_offset() { + let draft = crate::dto::EventDraft { + color_id: None, + calendar_id: "cal-a".to_string(), + summary: "Standup".to_string(), + description: None, + location: None, + start: "2026-08-11T09:00:00+01:00".to_string(), + end: "2026-08-11T09:15:00+01:00".to_string(), + all_day: false, + recurrence: vec!["RRULE:FREQ=DAILY".to_string()], + }; + // An offset pins the instant but not the zone, and a series filed under the calendar's zone + // rather than its own drifts an hour at the next transition. + let body = super::model::draft_body(&draft, "abcde", Some("Europe/London"), Some("Europe/London")); + assert_eq!(body["start"]["dateTime"], "2026-08-11T09:00:00+01:00"); + assert_eq!(body["start"]["timeZone"], "Europe/London"); +} diff --git a/src-tauri/src/sync/transport.rs b/src-tauri/src/sync/transport.rs new file mode 100644 index 0000000..9729070 --- /dev/null +++ b/src-tauri/src/sync/transport.rs @@ -0,0 +1,154 @@ +// The seam between the sync state machine and Google. The engine never calls `api::*` directly, so +// pagination, 410 recovery and the outbox drain can be driven by a stub over an in-memory database +// in `cargo test`, which is the only way any of this is testable without credentials. +// +// Account resolution lives behind the trait as well: the engine names an account, the transport +// turns that into a bearer token. `auth::valid_access_token` is single-flight, so it is called per +// request rather than cached here. + +use std::future::Future; + +use tauri::Manager; + +use crate::google::api::{self, ApiError, CalendarListPage, EventsPage, RawEvent}; + +pub trait Transport: Sync { + fn calendar_list( + &self, + account_id: &str, + sync_token: Option<&str>, + page_token: Option<&str>, + ) -> impl Future> + Send; + + fn events_list( + &self, + account_id: &str, + calendar_id: &str, + sync_token: Option<&str>, + page_token: Option<&str>, + ) -> impl Future> + Send; + + fn events_insert( + &self, + account_id: &str, + calendar_id: &str, + body: &serde_json::Value, + ) -> impl Future> + Send; + + fn events_patch( + &self, + account_id: &str, + calendar_id: &str, + event_id: &str, + body: &serde_json::Value, + etag: Option<&str>, + ) -> impl Future> + Send; + + fn events_delete( + &self, + account_id: &str, + calendar_id: &str, + event_id: &str, + etag: Option<&str>, + ) -> impl Future> + Send; + + fn events_instances( + &self, + account_id: &str, + calendar_id: &str, + event_id: &str, + original_start: &str, + ) -> impl Future, ApiError>> + Send; +} + +pub struct Google { + pub app: tauri::AppHandle, +} + +impl Google { + async fn token(&self, account_id: &str) -> Result { + let state = self.app.state::(); + crate::google::auth::valid_access_token(&self.app, &state, account_id) + .await + .map_err(ApiError::Other) + } +} + +impl Transport for Google { + fn calendar_list( + &self, + account_id: &str, + sync_token: Option<&str>, + page_token: Option<&str>, + ) -> impl Future> + Send { + async move { + let access = self.token(account_id).await?; + api::calendar_list(&access, sync_token, page_token).await + } + } + + fn events_list( + &self, + account_id: &str, + calendar_id: &str, + sync_token: Option<&str>, + page_token: Option<&str>, + ) -> impl Future> + Send { + async move { + let access = self.token(account_id).await?; + api::events_list(&access, calendar_id, sync_token, page_token).await + } + } + + fn events_insert( + &self, + account_id: &str, + calendar_id: &str, + body: &serde_json::Value, + ) -> impl Future> + Send { + async move { + let access = self.token(account_id).await?; + api::events_insert(&access, calendar_id, body).await + } + } + + fn events_patch( + &self, + account_id: &str, + calendar_id: &str, + event_id: &str, + body: &serde_json::Value, + etag: Option<&str>, + ) -> impl Future> + Send { + async move { + let access = self.token(account_id).await?; + api::events_patch(&access, calendar_id, event_id, body, etag).await + } + } + + fn events_delete( + &self, + account_id: &str, + calendar_id: &str, + event_id: &str, + etag: Option<&str>, + ) -> impl Future> + Send { + async move { + let access = self.token(account_id).await?; + api::events_delete(&access, calendar_id, event_id, etag).await + } + } + + fn events_instances( + &self, + account_id: &str, + calendar_id: &str, + event_id: &str, + original_start: &str, + ) -> impl Future, ApiError>> + Send { + async move { + let access = self.token(account_id).await?; + api::events_instances(&access, calendar_id, event_id, original_start).await + } + } +} diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json new file mode 100644 index 0000000..b0d8847 --- /dev/null +++ b/src-tauri/tauri.conf.json @@ -0,0 +1,57 @@ +{ + "$schema": "https://schema.tauri.app/config/2", + "productName": "Margin Calendar", + "version": "0.1.0", + "identifier": "studio.margin.calendar", + "build": { + "beforeDevCommand": "pnpm dev", + "devUrl": "http://localhost:1430", + "beforeBuildCommand": "pnpm build", + "frontendDist": "../dist" + }, + "app": { + "windows": [ + { + "title": "", + "width": 1360, + "height": 900, + "minWidth": 880, + "minHeight": 560, + "titleBarStyle": "Overlay" + } + ], + "security": { + "csp": "default-src 'self'; img-src 'self' data: blob:; font-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self'; connect-src 'self' ipc: http://ipc.localhost" + } + }, + "plugins": { + "deep-link": { + "desktop": { + "schemes": ["studio.margin.calendar"] + }, + "mobile": [{ "scheme": ["studio.margin.calendar"] }] + } + }, + "bundle": { + "active": true, + "targets": ["app", "dmg", "appimage", "deb"], + "category": "Productivity", + "shortDescription": "A calendar for Google Calendar", + "longDescription": "A calendar where the grid owns the window and the day always fits without scrolling.", + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.icns", + "icons/icon.ico" + ], + "linux": { + "deb": { + "depends": ["libwebkit2gtk-4.1-0", "libgtk-3-0"] + } + }, + "macOS": { + "minimumSystemVersion": "10.15" + } + } +} diff --git a/src-tauri/tauri.release.conf.json b/src-tauri/tauri.release.conf.json new file mode 100644 index 0000000..d50663d --- /dev/null +++ b/src-tauri/tauri.release.conf.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://schema.tauri.app/config/2", + "bundle": { + "createUpdaterArtifacts": true + } +} diff --git a/src/App.tsx b/src/App.tsx new file mode 100644 index 0000000..88959ac --- /dev/null +++ b/src/App.tsx @@ -0,0 +1,133 @@ +import { useEffect } from "react"; +import { listen } from "@tauri-apps/api/event"; +import { getCurrentWindow } from "@tauri-apps/api/window"; + +import { Header } from "./components/Header"; +import { PhoneMenu, PhoneTabBar, PhoneTopBar } from "./components/PhoneBar"; +import { GridView } from "./components/GridView"; +import { AgendaView } from "./components/AgendaView"; +import { MiniMonthOverlay } from "./components/MiniMonth"; +import { CalendarList } from "./components/CalendarList"; +import { EventEditor } from "./components/EventEditor"; +import { EventDetails } from "./components/EventDetails"; +import { Settings } from "./components/Settings"; +import { Accounts } from "./components/Accounts"; +import { CommandPalette } from "./palette/CommandPalette"; +import { ShortcutsSheet } from "./keys/Shortcuts"; +import { Toast } from "./components/Toast"; +import { SearchOverlay } from "./components/SearchOverlay"; + +import { useKeymap } from "./keys/keymap"; +import { handleMenuAction } from "./keys/menu"; +import { useAccounts } from "./store/useAccounts"; +import { useCalendarView } from "./store/useCalendarView"; +import { useSearch } from "./store/useSearch"; +import { useSync } from "./store/useSync"; +import { notify } from "./store/useToast"; +import { useCompact, usePhone, useTouch } from "./useMedia"; +import { syncFlush } from "./api/sync"; +import { isDesktop, isTauri, live, type AuthEvent, type SyncStatus } from "./ipc"; + +/** Long enough for sync_flush's own 1s lock wait plus its 4s drain budget. */ +const FLUSH_TIMEOUT_MS = 5500; + +function App() { + useCompact(); + const phone = usePhone(); + useTouch(); + useKeymap(); + + useEffect(() => { + if (!live()) return; + void useAccounts.getState().refresh(); + void useCalendarView.getState().load(); + void useSync.getState().refresh(); + }, []); + + // `isTauri`, not `isDesktop`. A phone emits every one of these and needs `auth` most of all: the + // mobile consent flow ends with a deep link into Rust, and this listener is the only thing that + // ever learns it worked. Gating on `isDesktop` here left sign-in hanging on the spinner forever. + useEffect(() => { + if (!isTauri) return; + const menu = listen("menu-action", (event) => handleMenuAction(event.payload)); + const auth = listen("auth", (event) => { + void useAccounts.getState().handleAuthEvent(event.payload.ok, event.payload.error); + }); + // A pass that fails in the background used to set the error and say nothing, so a calendar + // that never arrived looked like a calendar you do not have. Surface it once per distinct + // message rather than every sixty seconds. + let lastError: string | null = null; + const progress = listen("sync-progress", (event) => { + useSync.getState().apply(event.payload); + const error = event.payload.error; + if (error && error !== lastError) notify(`Sync failed: ${error}`); + if (error !== lastError) lastError = error; + }); + // Purely an invalidation signal: re-request the visible range rather than trying to read the + // reason. The account list is only worth refetching when the accounts themselves moved. + const changed = listen("store-changed", (event) => { + void useCalendarView.getState().load(); + void useSync.getState().refresh(); + useSearch.getState().invalidate(); + const reason = event.payload ?? ""; + if (reason.includes("account") || reason.includes("calendar")) { + void useAccounts.getState().refresh(); + } + }); + return () => { + void menu.then((stop) => stop()); + void auth.then((stop) => stop()); + void progress.then((stop) => stop()); + void changed.then((stop) => stop()); + }; + }, []); + + // Drain the outbox before quitting, racing a timeout so a deep queue or a dead network cannot + // hold the window open. Same shape as margin's close-request hook. + // + // `isDesktop` genuinely means desktop here: there is no close to intercept on a phone, and the + // window commands live in a capability that platform does not get, so this would be a rejected + // IPC call rather than a no-op. The outbox still drains on the next launch either way. + useEffect(() => { + if (!isDesktop) return; + const win = getCurrentWindow(); + const unlisten = win.onCloseRequested(async (event) => { + if (useSync.getState().pendingWrites === 0) return; + event.preventDefault(); + await Promise.race([ + syncFlush().catch(() => {}), + new Promise((resolve) => setTimeout(resolve, FLUSH_TIMEOUT_MS)), + ]); + void win.destroy(); + }); + return () => { + void unlisten.then((stop) => stop()); + }; + }, []); + + return ( +
+ {/* One row of chrome or two, never both: the phone's bars replace the header rather than + hiding it, so nothing off screen is still holding a drag region or the keyboard. */} + {phone ? :
} +
+ + +
+ {phone ? : null} + + + + + + + + + + + +
+ ); +} + +export default App; diff --git a/src/api/accounts.ts b/src/api/accounts.ts new file mode 100644 index 0000000..a5d4034 --- /dev/null +++ b/src/api/accounts.ts @@ -0,0 +1,9 @@ +import { call, type Account } from "../ipc"; + +export const accountsList = () => call("accounts_list"); + +/** Returns the consent URL. Completion arrives as the `auth` event. */ +export const accountConnect = () => call("account_connect"); + +export const accountDisconnect = (accountId: string) => + call("account_disconnect", { accountId }); diff --git a/src/api/calendars.ts b/src/api/calendars.ts new file mode 100644 index 0000000..7eb2322 --- /dev/null +++ b/src/api/calendars.ts @@ -0,0 +1,6 @@ +import { call, type Calendar } from "../ipc"; + +export const calendarsList = () => call("calendars_list"); + +export const calendarSetSelected = (calendarId: string, selected: boolean) => + call("calendar_set_selected", { calendarId, selected }); diff --git a/src/api/events.ts b/src/api/events.ts new file mode 100644 index 0000000..dbab331 --- /dev/null +++ b/src/api/events.ts @@ -0,0 +1,9 @@ +import { call, type EventDraft, type EventPatch, type Instance, type InstanceKey, type Scope } from "../ipc"; + +export const eventCreate = (draft: EventDraft) => call("event_create", { draft }); + +export const eventUpdate = (key: InstanceKey, patch: EventPatch, scope: Scope) => + call("event_update", { key, patch, scope }); + +export const eventDelete = (key: InstanceKey, scope: Scope) => + call("event_delete", { key, scope }); diff --git a/src/api/instances.ts b/src/api/instances.ts new file mode 100644 index 0000000..6439c34 --- /dev/null +++ b/src/api/instances.ts @@ -0,0 +1,5 @@ +import { call, type Instance } from "../ipc"; + +/** Both bounds are epoch milliseconds; `toUtc` is exclusive. */ +export const instancesRange = (fromUtc: number, toUtc: number) => + call("instances_range", { fromUtc, toUtc }); diff --git a/src/api/sync.ts b/src/api/sync.ts new file mode 100644 index 0000000..72046a3 --- /dev/null +++ b/src/api/sync.ts @@ -0,0 +1,8 @@ +import { call, type SyncStatus } from "../ipc"; + +export const syncNow = () => call("sync_now"); + +export const syncStatus = () => call("sync_status"); + +/** Drains the outbox. The close-request hook races this against a timeout. */ +export const syncFlush = () => call("sync_flush"); diff --git a/src/components/Accounts.tsx b/src/components/Accounts.tsx new file mode 100644 index 0000000..3931990 --- /dev/null +++ b/src/components/Accounts.tsx @@ -0,0 +1,159 @@ +// Connecting and disconnecting Google accounts. The connect flow lives entirely in `useAccounts`: +// this panel calls it and then shows what is happening, including the two escape hatches for when +// the system browser did not open by itself. +// +// Disconnecting is the destructive one. It revokes the token and wipes every row belonging to the +// account, so it asks first and says what goes. + +import { useEffect, useState } from "react"; +import { useEscapeLayer } from "../escape"; +import type { Account } from "../ipc"; +import { useAccounts } from "../store/useAccounts"; +import { useCalendarView } from "../store/useCalendarView"; +import { useOverlays } from "../store/useOverlays"; +import { Icon } from "./Icon"; +import { Confirm, Sheet } from "./overlayShell"; + +const COPY = "M9 9h10v11H9zM5 15H4V4h11v1"; +const OPEN = "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6M15 3h6v6M10 14 21 3"; + +export function Accounts() { + const open = useOverlays((s) => s.open); + const close = useOverlays((s) => s.close); + const accounts = useAccounts((s) => s.accounts); + const calendars = useAccounts((s) => s.calendars); + const phase = useAccounts((s) => s.phase); + const error = useAccounts((s) => s.error); + const authUrl = useAccounts((s) => s.authUrl); + const connect = useAccounts((s) => s.connect); + const cancelConnect = useAccounts((s) => s.cancelConnect); + const openAuthUrl = useAccounts((s) => s.openAuthUrl); + const copyAuthUrl = useAccounts((s) => s.copyAuthUrl); + const disconnect = useAccounts((s) => s.disconnect); + const refresh = useAccounts((s) => s.refresh); + + const [confirming, setConfirming] = useState(null); + const showing = open === "accounts"; + const connecting = phase === "connecting"; + + // While the browser has the flow, Escape belongs to the flow rather than to the panel. + useEscapeLayer(showing && connecting, cancelConnect); + useEscapeLayer(showing && confirming !== null, () => setConfirming(null)); + + useEffect(() => { + if (showing) void refresh(); + }, [showing, refresh]); + + const remove = async (account: Account) => { + setConfirming(null); + await disconnect(account.id); + void useCalendarView.getState().load(); + }; + + const countFor = (accountId: string) => calendars.filter((c) => c.accountId === accountId).length; + + return ( + void connect()} + > + Connect an account + + ) + } + > + {confirming ? ( + + The token is revoked and every calendar, event and pending write stored on this + computer for that account is deleted. Nothing changes in Google Calendar itself, and + you can connect the account again afterwards. +

+ } + confirmLabel="Disconnect" + busy={phase === "working"} + onConfirm={() => void remove(confirming)} + onCancel={() => setConfirming(null)} + /> + ) : ( + <> + {connecting && ( +
+ Waiting for Google in your browser. + + {authUrl + ? "If nothing opened, use the link. Finish there and this comes back on its own." + : "Building the consent link."} + +
+ + + +
+
+ )} + + {phase === "error" && error &&

{error}

} + + {accounts.length === 0 && !connecting ? ( +

+ No account is connected, so there is nothing to show on the grid yet. +

+ ) : ( + accounts.map((account) => ( +
+ + {account.email} + + {account.connected ? `${countFor(account.id)} calendar${countFor(account.id) === 1 ? "" : "s"}` : "Needs reconnecting"} + + + +
+ )) + )} + + )} +
+ ); +} + +export default Accounts; diff --git a/src/components/AgendaList.tsx b/src/components/AgendaList.tsx new file mode 100644 index 0000000..61a4221 --- /dev/null +++ b/src/components/AgendaList.tsx @@ -0,0 +1,95 @@ +// The list itself, shared by the agenda view and by search results, which are the same thing shown +// for a different set of instances. +// +// No virtualisation and no measurement: thirty days is a few hundred rows and the DOM is fine with +// that. The only thing this component does beyond render is keep the selection on screen, because +// the selection moves from the keyboard and the list is the one part of the app that scrolls. + +import { useEffect, useRef } from "react"; +import type { InstanceKey } from "../ipc"; +import { addDays, dayName, monthName, today } from "../time"; +import { keyId, keyOf, sameKey } from "./GridModel"; +import { AgendaRow } from "./AgendaRow"; +import { gapDates, gapLabel, type AgendaSection } from "./AgendaModel"; + +const NO_TERMS: readonly string[] = []; + +interface AgendaListProps { + sections: readonly AgendaSection[]; + selected: InstanceKey | null; + onSelect: (key: InstanceKey) => void; + onOpen?: (key: InstanceKey) => void; + /** Lowercased search terms to mark in each summary. */ + terms?: readonly string[]; + /** A quiet line above the list: loading, an error, or why there is nothing to show. */ + note?: string | null; +} + +export function AgendaList({ + sections, + selected, + onSelect, + onOpen, + terms = NO_TERMS, + note, +}: AgendaListProps) { + const scrollRef = useRef(null); + const selectedId = selected ? keyId(selected) : null; + const todayMs = today(); + + useEffect(() => { + if (!selectedId) return; + const row = scrollRef.current?.querySelector(`[data-id="${CSS.escape(selectedId)}"]`); + row?.scrollIntoView({ block: "nearest" }); + }, [selectedId]); + + return ( +
+
+ {note &&

{note}

} + {sections.map((section) => + section.kind === "gap" ? ( +
+ {gapDates(section)} + + {gapLabel(section)} +
+ ) : ( +
+

+ {dayName(section.dayStart)} + {new Date(section.dayStart).getDate()} + {section.showMonth && ( + {monthName(section.dayStart)} + )} + + {section.items.length} +

+
+ {section.items.map((item) => ( + + ))} +
+
+ ), + )} +
+
+ ); +} diff --git a/src/components/AgendaModel.test.ts b/src/components/AgendaModel.test.ts new file mode 100644 index 0000000..164bead --- /dev/null +++ b/src/components/AgendaModel.test.ts @@ -0,0 +1,265 @@ +import { describe, expect, it } from "vitest"; +import type { Instance } from "../ipc"; +import { addDays, startOfDay, toDateOnly, toOffsetIso } from "../time"; +import { + buildAgenda, + buildSearch, + countItems, + gapDates, + gapLabel, + instanceRange, + matchesQuery, + queryTerms, + splitMatch, + timeLabel, + type AgendaDay, + type AgendaGap, +} from "./AgendaModel"; + +const at = (y: number, m: number, d: number, h = 0, min = 0) => new Date(y, m - 1, d, h, min).getTime(); + +function timed(id: string, startMs: number, endMs: number, over: Partial = {}): Instance { + return { + colorId: null, + eventId: id, + calendarId: "cal", + accountId: "acc", + originalStart: null, + start: toOffsetIso(startMs), + end: toOffsetIso(endMs), + startMs, + endMs, + allDay: false, + summary: id, + description: null, + location: null, + status: "confirmed", + recurring: false, + colorHex: "#7986cb", + etag: null, + organizer: null, + attendees: [], + conference: null, + readOnly: false, + pending: false, + ...over, + }; +} + +function whole(id: string, from: number, days = 1, over: Partial = {}): Instance { + const startMs = startOfDay(from); + const endMs = addDays(startMs, days); + return timed(id, startMs, endMs, { + allDay: true, + start: toDateOnly(startMs), + end: toDateOnly(endMs), + ...over, + }); +} + +const days = (sections: readonly { kind: string }[]) => sections.filter((s) => s.kind === "day") as AgendaDay[]; +const gaps = (sections: readonly { kind: string }[]) => sections.filter((s) => s.kind === "gap") as AgendaGap[]; + +describe("buildAgenda", () => { + const monday = at(2026, 8, 10); + + it("gives every day of the span a section, in order", () => { + const sections = buildAgenda([timed("a", at(2026, 8, 10, 9), at(2026, 8, 10, 10))], monday, addDays(monday, 3)); + expect(sections.map((s) => s.kind)).toEqual(["day", "gap", "gap"]); + expect(gaps(sections).map((g) => g.days)).toEqual([1, 1]); + }); + + it("collapses a run of three or more empty days into one row", () => { + const sections = buildAgenda( + [ + timed("a", at(2026, 8, 10, 9), at(2026, 8, 10, 10)), + timed("b", at(2026, 8, 16, 9), at(2026, 8, 16, 10)), + ], + monday, + addDays(monday, 7), + ); + expect(sections.map((s) => s.kind)).toEqual(["day", "gap", "day"]); + const [gap] = gaps(sections); + expect(gap.days).toBe(5); + expect(gap.from).toBe(addDays(monday, 1)); + expect(gap.to).toBe(addDays(monday, 6)); + expect(gap.next).toBe(addDays(monday, 6)); + expect(gapLabel(gap)).toBe("nothing until Sunday"); + }); + + it("leaves a run that reaches the end of the span with nowhere to point at", () => { + const sections = buildAgenda([timed("a", at(2026, 8, 10, 9), at(2026, 8, 10, 10))], monday, addDays(monday, 5)); + const [gap] = gaps(sections); + expect(gap.next).toBeNull(); + expect(gap.days).toBe(4); + expect(gapLabel(gap)).toBe("nothing for 4 days"); + }); + + it("sorts all-day before timed, then by start, then longest first", () => { + const sections = buildAgenda( + [ + timed("noon", at(2026, 8, 10, 12), at(2026, 8, 10, 13)), + timed("morning", at(2026, 8, 10, 9), at(2026, 8, 10, 10)), + timed("long", at(2026, 8, 10, 9), at(2026, 8, 10, 17)), + whole("holiday", monday), + ], + monday, + addDays(monday, 1), + ); + expect(days(sections)[0].items.map((i) => i.instance.eventId)).toEqual([ + "holiday", + "long", + "morning", + "noon", + ]); + }); + + it("repeats a multi-day event under each day it covers, clipped", () => { + const sections = buildAgenda([whole("trip", monday, 3)], monday, addDays(monday, 5)); + expect(sections.map((s) => s.kind)).toEqual(["day", "day", "day", "gap", "gap"]); + const middle = days(sections)[1].items[0]; + expect(middle.continued).toBe(true); + expect(middle.continues).toBe(true); + expect(middle.startMs).toBe(addDays(monday, 1)); + expect(timeLabel(middle)).toBe("all day"); + }); + + it("puts an event that crosses midnight on both days", () => { + const sections = buildAgenda( + [timed("late", at(2026, 8, 10, 22), at(2026, 8, 11, 1))], + monday, + addDays(monday, 2), + ); + const [first, second] = days(sections); + expect(timeLabel(first.items[0])).toBe("from 10pm"); + expect(timeLabel(second.items[0])).toBe("until 1am"); + }); + + it("drops cancelled instances, so a day holding only one reads as empty", () => { + const sections = buildAgenda( + [timed("gone", at(2026, 8, 10, 9), at(2026, 8, 10, 10), { status: "cancelled" })], + monday, + addDays(monday, 1), + ); + expect(sections.map((s) => s.kind)).toEqual(["gap"]); + }); + + it("names the month on the first section and again when it changes", () => { + const start = at(2026, 8, 30); + const sections = buildAgenda( + [ + timed("a", at(2026, 8, 30, 9), at(2026, 8, 30, 10)), + timed("b", at(2026, 9, 1, 9), at(2026, 9, 1, 10)), + ], + start, + addDays(start, 3), + ); + expect(sections.map((s) => s.showMonth)).toEqual([true, false, true]); + }); + + it("survives an empty span", () => { + expect(buildAgenda([], monday, monday)).toEqual([]); + }); +}); + +describe("labels", () => { + const monday = at(2026, 8, 10); + + it("says when without an axis", () => { + const sections = buildAgenda( + [ + timed("a", at(2026, 8, 10, 9), at(2026, 8, 10, 10, 30)), + timed("point", at(2026, 8, 10, 14), at(2026, 8, 10, 14)), + ], + monday, + addDays(monday, 1), + ); + const items = days(sections)[0].items; + expect(timeLabel(items[0])).toBe("9am to 10:30am"); + expect(timeLabel(items[1])).toBe("2pm"); + }); + + it("writes a gap's dates the way a heading would", () => { + const start = at(2026, 8, 30); + const sections = buildAgenda([timed("a", at(2026, 9, 3, 9), at(2026, 9, 3, 10))], start, addDays(start, 5)); + const [gap] = gaps(sections); + expect(gapDates(gap)).toBe("Sun 30 August to Wed 2 September"); + }); + + it("drops the month from a single quiet day already under its heading", () => { + const sections = buildAgenda( + [timed("a", at(2026, 8, 10, 9), at(2026, 8, 10, 10))], + monday, + addDays(monday, 2), + ); + const [gap] = gaps(sections); + expect(gap.showMonth).toBe(false); + expect(gapDates(gap)).toBe("Tue 11"); + expect(gapLabel(gap)).toBe("nothing"); + }); +}); + +describe("instanceRange", () => { + it("reads an all-day boundary out of the date-only strings", () => { + const instance = whole("holiday", at(2026, 8, 10), 2); + expect(instanceRange(instance)).toEqual({ startMs: at(2026, 8, 10), endMs: at(2026, 8, 12) }); + }); + + it("falls back to the epoch fields when the date-only strings are not there", () => { + const instance = timed("a", at(2026, 8, 10, 9), at(2026, 8, 10, 10), { allDay: true, start: "", end: "" }); + expect(instanceRange(instance)).toEqual({ startMs: at(2026, 8, 10, 9), endMs: at(2026, 8, 10, 10) }); + }); +}); + +describe("search", () => { + const monday = at(2026, 8, 10); + const set = [ + timed("a", at(2026, 8, 10, 9), at(2026, 8, 10, 10), { summary: "Lunch with Sam" }), + timed("b", at(2026, 8, 12, 9), at(2026, 8, 12, 10), { summary: "Standup", location: "Sam's desk" }), + timed("c", at(2026, 8, 12, 11), at(2026, 8, 12, 12), { summary: "Retro", description: "with sam" }), + timed("d", at(2026, 8, 13, 9), at(2026, 8, 13, 10), { summary: "Dentist" }), + timed("e", at(2026, 8, 14, 9), at(2026, 8, 14, 10), { summary: "Sam", status: "cancelled" }), + ]; + + it("matches summary, location and description, and groups by day", () => { + const sections = buildSearch(set, "sam"); + expect(sections.map((s) => (s as AgendaDay).dayStart)).toEqual([monday, at(2026, 8, 12)]); + expect(countItems(sections)).toBe(3); + }); + + it("narrows with a second term rather than widening", () => { + expect(countItems(buildSearch(set, "sam lunch"))).toBe(1); + expect(countItems(buildSearch(set, "sam dentist"))).toBe(0); + }); + + it("has nothing to show for an empty query", () => { + expect(buildSearch(set, " ")).toEqual([]); + expect(matchesQuery(set[0], queryTerms(""))).toBe(false); + }); + + it("shows a multi-day hit once, on the day it starts", () => { + const sections = buildSearch([whole("trip", monday, 4, { summary: "Trip to Rome" })], "rome"); + expect(sections).toHaveLength(1); + expect(countItems(sections)).toBe(1); + }); +}); + +describe("splitMatch", () => { + it("cuts around every occurrence, keeping the original case", () => { + expect(splitMatch("Sam and sam", ["sam"])).toEqual([ + { text: "Sam", hit: true }, + { text: " and ", hit: false }, + { text: "sam", hit: true }, + ]); + }); + + it("prefers the longest term at a position", () => { + expect(splitMatch("standup", ["stand", "standup"])).toEqual([{ text: "standup", hit: true }]); + }); + + it("leaves text alone when nothing matches", () => { + expect(splitMatch("Dentist", ["sam"])).toEqual([{ text: "Dentist", hit: false }]); + expect(splitMatch("Dentist", [])).toEqual([{ text: "Dentist", hit: false }]); + expect(splitMatch("", ["sam"])).toEqual([{ text: "", hit: false }]); + }); +}); diff --git a/src/components/AgendaModel.tsx b/src/components/AgendaModel.tsx new file mode 100644 index 0000000..a078f96 --- /dev/null +++ b/src/components/AgendaModel.tsx @@ -0,0 +1,304 @@ +// Pure model for the agenda: cutting a span into day sections, collapsing runs of empty days into +// one line, and the substring matching that search results are marked with. +// +// Nothing here holds state or touches the DOM. It is a `.tsx` file only because the agenda owns +// `Agenda*.tsx` and nothing else, which is the same reason `GridModel.tsx` is one. + +import type { Instance } from "../ipc"; +import { addDays, dayName, formatTime, monthName, parseDateOnly, startOfDay } from "../time"; +import { keyId, keyOf } from "./GridModel"; + +/** + * A run of empty days this long or longer collapses into a single line. One and two day runs stay + * as a row each, because a quiet weekend is a shape you want to keep seeing; a fortnight of + * nothing is one fact and deserves one row. + */ +export const COLLAPSE_DAYS = 3; + +/** One instance as it appears on one day, clipped to that day. */ +export interface AgendaItem { + instance: Instance; + id: string; + /** Clipped to the day this row sits under. */ + startMs: number; + endMs: number; + /** It started before this day. */ + continued: boolean; + /** It runs past the end of this day. */ + continues: boolean; +} + +export interface AgendaDay { + kind: "day"; + key: string; + dayStart: number; + items: AgendaItem[]; + /** The month changed here, so the heading says which one. */ + showMonth: boolean; +} + +/** A run of days with nothing in them. A run is information, so it gets a row rather than a skip. */ +export interface AgendaGap { + kind: "gap"; + key: string; + from: number; + /** Exclusive, at local midnight. */ + to: number; + days: number; + /** The next day in the span that has something, or null when the span simply ends. */ + next: number | null; + showMonth: boolean; +} + +export type AgendaSection = AgendaDay | AgendaGap; + +const DATE_ONLY = /^\d{4}-\d{2}-\d{2}$/; + +/** + * The half-open span an instance covers, in epoch milliseconds. All-day boundaries are read back + * out of the date-only strings, which are the authoritative ones and must never be shifted into a + * zone; anything that is not date-only falls back to the epoch fields. + */ +export function instanceRange(i: Instance): { startMs: number; endMs: number } { + if (i.allDay && DATE_ONLY.test(i.start)) { + const startMs = parseDateOnly(i.start); + const endMs = DATE_ONLY.test(i.end) ? parseDateOnly(i.end) : startMs; + return { startMs, endMs: endMs > startMs ? endMs : addDays(startMs, 1) }; + } + return { startMs: i.startMs, endMs: i.endMs }; +} + +/** All-day first, then anything covering the whole day, then by start, longest first. */ +function rank(item: AgendaItem): number { + return item.instance.allDay || (item.continued && item.continues) ? 0 : 1; +} + +function compareItems(a: AgendaItem, b: AgendaItem): number { + return ( + rank(a) - rank(b) || + a.startMs - b.startMs || + b.endMs - b.startMs - (a.endMs - a.startMs) || + a.instance.summary.localeCompare(b.instance.summary) || + (a.id < b.id ? -1 : a.id > b.id ? 1 : 0) + ); +} + +const monthKey = (ms: number): string => { + const d = new Date(ms); + return `${d.getFullYear()}-${d.getMonth()}`; +}; + +/** A heading names its month only when it is not the month the line above was already in. */ +function withMonths(sections: AgendaSection[]): AgendaSection[] { + let last = ""; + for (const section of sections) { + const first = section.kind === "day" ? section.dayStart : section.from; + const end = section.kind === "day" ? section.dayStart : addDays(section.to, -1); + section.showMonth = monthKey(first) !== last; + last = monthKey(end); + } + return sections; +} + +function itemFor(instance: Instance, dayStart: number, dayEnd: number): AgendaItem { + const range = instanceRange(instance); + return { + instance, + id: keyId(keyOf(instance)), + startMs: Math.max(range.startMs, dayStart), + endMs: Math.min(range.endMs, dayEnd), + continued: range.startMs < dayStart, + continues: range.endMs > dayEnd, + }; +} + +/** + * Every day of `[from, to)` in order, days with something in them carrying their events and runs + * of empty days collapsed. An event covering several days appears under each of them, clipped, + * because a week-long holiday does not make the days it covers empty. + */ +export function buildAgenda( + instances: readonly Instance[], + from: number, + to: number, +): AgendaSection[] { + const days: number[] = []; + for (let d = startOfDay(from); d < to; d = addDays(d, 1)) days.push(d); + if (days.length === 0) return []; + + const ends = days.map((d) => addDays(d, 1)); + const buckets: AgendaItem[][] = days.map(() => []); + for (const instance of instances) { + if (instance.status === "cancelled") continue; + const range = instanceRange(instance); + // A zero length event still happens somewhere, so it counts as covering its own instant. + const covered = Math.max(range.endMs, range.startMs + 1); + for (let i = 0; i < days.length; i++) { + if (range.startMs >= ends[i]) continue; + if (covered <= days[i]) break; + buckets[i].push(itemFor(instance, days[i], ends[i])); + } + } + for (const bucket of buckets) bucket.sort(compareItems); + + const sections: AgendaSection[] = []; + let i = 0; + while (i < days.length) { + if (buckets[i].length > 0) { + sections.push({ + kind: "day", + key: `d${days[i]}`, + dayStart: days[i], + items: buckets[i], + showMonth: false, + }); + i++; + continue; + } + let j = i; + while (j < days.length && buckets[j].length === 0) j++; + const next = j < days.length ? days[j] : null; + if (j - i >= COLLAPSE_DAYS) { + sections.push({ + kind: "gap", + key: `g${days[i]}`, + from: days[i], + to: ends[j - 1], + days: j - i, + next, + showMonth: false, + }); + } else { + for (let k = i; k < j; k++) { + sections.push({ + kind: "gap", + key: `g${days[k]}`, + from: days[k], + to: ends[k], + days: 1, + next, + showMonth: false, + }); + } + } + i = j; + } + return withMonths(sections); +} + +/** The matches, grouped by the day they start on. No gap rows: a gap between hits says nothing. */ +export function buildSearch(instances: readonly Instance[], query: string): AgendaSection[] { + const terms = queryTerms(query); + if (terms.length === 0) return []; + + const buckets = new Map(); + for (const instance of instances) { + if (instance.status === "cancelled") continue; + if (!matchesQuery(instance, terms)) continue; + // A hit appears once, on the day it starts, so a long event does not fill the results. + const dayStart = startOfDay(instanceRange(instance).startMs); + const item = itemFor(instance, dayStart, addDays(dayStart, 1)); + const bucket = buckets.get(dayStart); + if (bucket) bucket.push(item); + else buckets.set(dayStart, [item]); + } + + const sections: AgendaSection[] = [...buckets.keys()] + .sort((a, b) => a - b) + .map((dayStart) => ({ + kind: "day" as const, + key: `d${dayStart}`, + dayStart, + items: (buckets.get(dayStart) as AgendaItem[]).sort(compareItems), + showMonth: false, + })); + return withMonths(sections); +} + +export const countItems = (sections: readonly AgendaSection[]): number => + sections.reduce((n, section) => n + (section.kind === "day" ? section.items.length : 0), 0); + +/* Labels + ----------------------------------------------------------------------------------------- */ + +const weekdays = [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", +]; + +/** The agenda has no time axis, so this line is the only thing saying when. */ +export function timeLabel(item: AgendaItem): string { + const { instance } = item; + if (instance.allDay || (item.continued && item.continues)) return "all day"; + if (item.continued) return `until ${formatTime(item.endMs)}`; + if (item.continues) return `from ${formatTime(item.startMs)}`; + if (item.endMs <= item.startMs) return formatTime(item.startMs); + return `${formatTime(item.startMs)} to ${formatTime(item.endMs)}`; +} + +/** The date or dates a gap covers, in the same shape a day heading uses. */ +export function gapDates(gap: AgendaGap): string { + const head = `${dayName(gap.from)} ${new Date(gap.from).getDate()}`; + if (gap.days === 1) return gap.showMonth ? `${head} ${monthName(gap.from)}` : head; + const last = addDays(gap.to, -1); + const tail = `${dayName(last)} ${new Date(last).getDate()} ${monthName(last)}`; + return monthKey(gap.from) === monthKey(last) ? `${head} to ${tail}` : `${head} ${monthName(gap.from)} to ${tail}`; +} + +export function gapLabel(gap: AgendaGap): string { + if (gap.days === 1) return "nothing"; + if (gap.next !== null) return `nothing until ${weekdays[new Date(gap.next).getDay()]}`; + return `nothing for ${gap.days} days`; +} + +/* Search matching + ----------------------------------------------------------------------------------------- */ + +export const queryTerms = (query: string): string[] => + query + .toLowerCase() + .split(/\s+/) + .filter((term) => term.length > 0); + +/** Every term has to land somewhere, so a second word narrows rather than widens. */ +export function matchesQuery(instance: Instance, terms: readonly string[]): boolean { + if (terms.length === 0) return false; + const hay = `${instance.summary}\n${instance.location ?? ""}\n${instance.description ?? ""}`.toLowerCase(); + return terms.every((term) => hay.includes(term)); +} + +export interface MatchPart { + text: string; + hit: boolean; +} + +/** `text` cut around every occurrence of any term, longest term winning at a given position. */ +export function splitMatch(text: string, terms: readonly string[]): MatchPart[] { + const clean = terms.filter((term) => term.length > 0); + if (clean.length === 0 || text.length === 0) return [{ text, hit: false }]; + const hay = text.toLowerCase(); + const parts: MatchPart[] = []; + let plain = 0; + let at = 0; + while (at < text.length) { + let width = 0; + for (const term of clean) { + if (term.length > width && hay.startsWith(term, at)) width = term.length; + } + if (width === 0) { + at++; + continue; + } + if (at > plain) parts.push({ text: text.slice(plain, at), hit: false }); + parts.push({ text: text.slice(at, at + width), hit: true }); + at += width; + plain = at; + } + if (plain < text.length) parts.push({ text: text.slice(plain), hit: false }); + return parts; +} diff --git a/src/components/AgendaRow.tsx b/src/components/AgendaRow.tsx new file mode 100644 index 0000000..1cd489c --- /dev/null +++ b/src/components/AgendaRow.tsx @@ -0,0 +1,71 @@ +// One line of the agenda: when, what, where, on a surface tinted with its calendar's colour. Same +// rule as a block on the grid, and the same tokens, drawn a shade weaker: a row is several times +// the area of a block, and a fortnight of them at the grid's strength is a stack of highlighter. + +import { memo } from "react"; +import type { InstanceKey } from "../ipc"; +import { calVars, keyOf, vars, eventTitle } from "./GridModel"; +import { splitMatch, timeLabel, type AgendaItem } from "./AgendaModel"; + +interface AgendaRowProps { + item: AgendaItem; + selected: boolean; + /** Lowercased search terms to mark in the summary. Empty in the agenda proper. */ + terms: readonly string[]; + onSelect: (key: InstanceKey) => void; + onOpen?: (key: InstanceKey) => void; +} + +export const AgendaRow = memo(function AgendaRow({ + item, + selected, + terms, + onSelect, + onOpen, +}: AgendaRowProps) { + const { instance } = item; + const summary = eventTitle(instance); + + let hint = summary; + if (instance.location) hint += ` · ${instance.location}`; + if (instance.status === "tentative") hint += " · tentative"; + if (instance.pending) hint += " · not pushed yet"; + + const parts = terms.length > 0 ? splitMatch(summary, terms) : null; + + return ( + + ); +}); diff --git a/src/components/AgendaSearch.tsx b/src/components/AgendaSearch.tsx new file mode 100644 index 0000000..7615790 --- /dev/null +++ b/src/components/AgendaSearch.tsx @@ -0,0 +1,75 @@ +// Search. Results are an agenda list, which is the whole reason the agenda owns them: a search hit +// is a day, a time and a summary, and that is a row. +// +// It filters the instances the view has already loaded rather than asking the backend, because +// there is no search command in the IPC contract. See the note in `useAgendaSearch`. +// +// This renders its own surface but not the backdrop: drop it inside a `.overlay` and let that +// layer own Escape. + +import { useMemo } from "react"; +import type { Instance, InstanceKey } from "../ipc"; +import { useCalendarView } from "../store/useCalendarView"; +import { buildSearch, countItems, queryTerms } from "./AgendaModel"; +import { AgendaList } from "./AgendaList"; +import { useAgendaSearch } from "./useAgendaSearch"; +import "../styles/agenda.css"; + +interface AgendaSearchProps { + /** Defaults to whatever the calendar view has loaded. */ + instances?: readonly Instance[]; + onOpen?: (key: InstanceKey) => void; +} + +export function AgendaSearch({ instances, onOpen }: AgendaSearchProps) { + const loaded = useCalendarView((s) => s.instances); + const selected = useCalendarView((s) => s.selected); + const select = useCalendarView((s) => s.select); + const query = useAgendaSearch((s) => s.query); + const setQuery = useAgendaSearch((s) => s.setQuery); + + const source = instances ?? loaded; + const terms = useMemo(() => queryTerms(query), [query]); + const sections = useMemo(() => buildSearch(source, query), [source, query]); + const hits = countItems(sections); + + const note = + terms.length === 0 + ? "Type to search the days already loaded." + : hits === 0 + ? `Nothing matches "${query.trim()}".` + : null; + + return ( +
+
+ e.currentTarget.select()} + onChange={(e) => setQuery(e.target.value)} + /> + {hits > 0 && ( + + {hits} {hits === 1 ? "match" : "matches"} + + )} +
+ +
+ ); +} + +export default AgendaSearch; diff --git a/src/components/AgendaView.tsx b/src/components/AgendaView.tsx new file mode 100644 index 0000000..c47f351 --- /dev/null +++ b/src/components/AgendaView.tsx @@ -0,0 +1,46 @@ +// The agenda: thirty days as a flat chronological list, grouped by day, with no time axis at all. +// Nothing here is measured, solved or packed, which is what makes it cheap and what makes it a +// genuinely different view rather than a squashed grid. + +import { useMemo } from "react"; +import { spanFor, useCalendarView } from "../store/useCalendarView"; +import { buildAgenda } from "./AgendaModel"; +import { AgendaList } from "./AgendaList"; +import { keyId } from "./GridModel"; +import { openDetailsFor } from "./useDetails"; +import "../styles/agenda.css"; + +export function AgendaView() { + const view = useCalendarView((s) => s.view); + const anchor = useCalendarView((s) => s.anchor); + const instances = useCalendarView((s) => s.instances); + const phase = useCalendarView((s) => s.phase); + const error = useCalendarView((s) => s.error); + const selected = useCalendarView((s) => s.selected); + const select = useCalendarView((s) => s.select); + + // The store loads a day of padding either side, so the span is cut back to what it claims. + const sections = useMemo(() => { + const { from, to } = spanFor("agenda", anchor); + return buildAgenda(instances, from, to); + }, [instances, anchor]); + + if (view !== "agenda") return null; + + const note = + phase === "error" ? error : phase === "loading" && instances.length === 0 ? "Loading…" : null; + + return ( +
+ openDetailsFor(key, document.querySelector(`[data-id="${keyId(key)}"]`))} + note={note} + /> +
+ ); +} + +export default AgendaView; diff --git a/src/components/CalendarList.tsx b/src/components/CalendarList.tsx new file mode 100644 index 0000000..e9a3382 --- /dev/null +++ b/src/components/CalendarList.tsx @@ -0,0 +1,110 @@ +// Which calendars the grid draws, grouped by the account they came from. The checkbox writes +// straight through `useAccounts.setSelected`, which is already optimistic and reverts itself on a +// failure, so there is nothing to hold here. +// +// A calendar you do not own behaves differently once you try to edit it, so its role is on the +// row rather than hidden behind the event that will refuse to save. + +import { useEffect, useMemo } from "react"; +import type { Calendar } from "../ipc"; +import { useAccounts } from "../store/useAccounts"; +import { useCalendarView } from "../store/useCalendarView"; +import { useOverlays } from "../store/useOverlays"; +import { calSlot } from "./GridModel"; +import { roleLabel } from "./overlayModel"; +import { Sheet } from "./overlayShell"; + +interface Group { + accountId: string; + email: string; + calendars: Calendar[]; +} + +function group(calendars: readonly Calendar[], emails: ReadonlyMap): Group[] { + const groups = new Map(); + for (const calendar of calendars) { + let g = groups.get(calendar.accountId); + if (!g) { + g = { + accountId: calendar.accountId, + email: emails.get(calendar.accountId) ?? "Disconnected account", + calendars: [], + }; + groups.set(calendar.accountId, g); + } + g.calendars.push(calendar); + } + for (const g of groups.values()) { + g.calendars.sort( + (a, b) => Number(b.primary) - Number(a.primary) || a.summary.localeCompare(b.summary), + ); + } + return [...groups.values()].sort((a, b) => a.email.localeCompare(b.email)); +} + +export function CalendarList() { + const open = useOverlays((s) => s.open); + const close = useOverlays((s) => s.close); + const show = useOverlays((s) => s.show); + const accounts = useAccounts((s) => s.accounts); + const calendars = useAccounts((s) => s.calendars); + const setSelected = useAccounts((s) => s.setSelected); + const refresh = useAccounts((s) => s.refresh); + + const showing = open === "calendars"; + + useEffect(() => { + if (showing) void refresh(); + }, [showing, refresh]); + + const groups = useMemo( + () => group(calendars, new Map(accounts.map((a) => [a.id, a.email]))), + [calendars, accounts], + ); + + const toggle = (calendar: Calendar) => { + void setSelected(calendar.id, !calendar.selected); + // The instance stream is filtered on the Rust side, so the span has to be asked for again. + void useCalendarView.getState().load(); + }; + + return ( + + {groups.length === 0 ? ( +
+

No calendars here yet.

+ +
+ ) : ( + groups.map((g) => ( +
+ {g.email} + {g.calendars.map((calendar) => { + const role = roleLabel(calendar.accessRole); + return ( + + ); + })} +
+ )) + )} +
+ ); +} + +export default CalendarList; diff --git a/src/components/ColorPicker.tsx b/src/components/ColorPicker.tsx new file mode 100644 index 0000000..0e35c96 --- /dev/null +++ b/src/components/ColorPicker.tsx @@ -0,0 +1,94 @@ +// The eleven colours Google keeps against an event, plus the one that is not a colour: follow the +// calendar. Shared by the quick create card and the full editor so the choice reads the same in +// both, which is the whole point of it being a component rather than two rows of buttons. +// +// The swatches are painted in Google's own hex, because that is what `colorId` means to every +// other client this account is signed into. The grid mutes those hues onto its own eight when it +// paints the block (`calSlot` and `calHue` in GridModel), so a block is the nearest warm cousin of +// the swatch rather than the swatch itself. Showing the muted eight here instead would put three +// pairs of identical dots in the row and paint Graphite, which is grey, some arbitrary colour. +// +// One radio group, one tab stop: the arrow keys move between swatches. Twelve tab stops in a card +// this small would bury the buttons under them. + +import { useRef, type KeyboardEvent } from "react"; +import { EVENT_COLORS } from "../ipc"; +import { vars } from "./GridModel"; + +/** `null` is "same as calendar", and is always one of the options. */ +export type ColorChoice = string | null; + +export interface ColorPickerProps { + value: ColorChoice; + onChange: (colorId: ColorChoice) => void; + /** + * A CSS colour for the "same as calendar" swatch, so it previews what following the calendar + * would look like. The callers pass the same expression their calendar dot uses. + */ + calendarColor?: string; + disabled?: boolean; + /** Names the group for a screen reader. The visible label is the caller's business. */ + label?: string; +} + +const OPTIONS: ColorChoice[] = [null, ...EVENT_COLORS.map((c) => c.id)]; + +const nameOf = (id: ColorChoice): string => + id === null ? "Same as calendar" : (EVENT_COLORS.find((c) => c.id === id)?.name ?? "Colour"); + +export function ColorPicker({ + value, + onChange, + calendarColor = "var(--line-strong)", + disabled, + label = "Colour", +}: ColorPickerProps) { + const row = useRef(null); + + const at = OPTIONS.indexOf(OPTIONS.includes(value) ? value : null); + + function move(delta: number) { + const next = OPTIONS[(at + delta + OPTIONS.length) % OPTIONS.length]; + onChange(next); + // Focus follows the selection, which is what a radio group does and what makes holding an + // arrow key feel like scrubbing through the palette rather than tabbing through it. + const buttons = row.current?.querySelectorAll(".swatch"); + buttons?.[OPTIONS.indexOf(next)]?.focus(); + } + + function onKeyDown(e: KeyboardEvent) { + if (e.key === "ArrowRight" || e.key === "ArrowDown") move(1); + else if (e.key === "ArrowLeft" || e.key === "ArrowUp") move(-1); + else return; + e.preventDefault(); + } + + return ( +
+ {OPTIONS.map((id) => { + const on = id === OPTIONS[at]; + return ( +
+ ); +} + +export default ColorPicker; diff --git a/src/components/EventDetails.tsx b/src/components/EventDetails.tsx new file mode 100644 index 0000000..1773a25 --- /dev/null +++ b/src/components/EventDetails.tsx @@ -0,0 +1,403 @@ +// What clicking an event gets you: a card pinned to the block you clicked, not a modal in the +// middle of the window. Clicking an event is a local gesture and the answer should arrive in the +// same place your eye already is. +// +// Everything here is read-only except the three buttons at the bottom. Attendees and the +// conference link are shown and never touched: there is no RSVP flow, no availability finder and +// no scheduling links in v1, which is a deliberate cut in docs/design.md rather than an oversight. +// +// The card is not an `.overlay`. It has no backdrop, because a backdrop would swallow the click +// that opens the next event and make switching between two blocks take two clicks instead of one. +// A click outside closes it through one capture-phase pointer listener, and the keyboard is left +// to the keymap: pushing the `overlay` frame shadows the view's keys for as long as the card is up. + +import "../styles/details.css"; + +import { useEffect, useLayoutEffect, useMemo, useRef, useState } from "react"; +import { eventDelete } from "../api/events"; +import { useEscapeLayer } from "../escape"; +import type { Attendee, Calendar, Instance, InstanceKey, Scope } from "../ipc"; +import { useKeyContext } from "../keys/keymap"; +import { useAccounts } from "../store/useAccounts"; +import { useCalendarView } from "../store/useCalendarView"; +import { notify } from "../store/useToast"; +import { parseDescription } from "./EventDetailsHtml"; +import { RichText, openLink } from "./RichText"; +import { + badgesOf, + conferenceLabel, + orderGuests, + place, + type Bounds, + type Placement, +} from "./EventDetailsModel"; +// The title is the grid's, so a free/busy block reads "Busy" in both places or in neither. +import { calSlot, eventTitle, keyId } from "./GridModel"; +import { Icon } from "./Icon"; + +const CLOSE = "M18 6L6 18M6 6l12 12"; +import { attendeeTally, responseLabel, whenText } from "./overlayModel"; +import { Confirm } from "./overlayShell"; +import { useDetails, type AnchorRect } from "./useDetails"; +import { useEditor } from "./useEditor"; + +const CLOCK = "M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0M12 7v5l3 2"; +const PIN = "M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0M15 10a3 3 0 1 1-6 0 3 3 0 0 1 6 0"; +const LINK = "M10 13a5 5 0 0 0 7 0l3-3a5 5 0 0 0-7-7l-2 2M14 11a5 5 0 0 0-7 0l-3 3a5 5 0 0 0 7 7l2-2"; +const TEXT = "M4 6h16M4 12h12M4 18h9"; +const USERS = + "M17 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2M12.5 7.5a3.5 3.5 0 1 1-7 0 3.5 3.5 0 0 1 7 0M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"; + +/** Clear of the window edges, and clear of the one row of chrome that is always resident. */ +const EDGE = 8; + +function viewBounds(): Bounds { + const bar = Number.parseFloat( + getComputedStyle(document.documentElement).getPropertyValue("--titlebar-h"), + ); + return { + top: (Number.isFinite(bar) ? bar : 0) + EDGE, + left: EDGE, + right: window.innerWidth - EDGE, + bottom: window.innerHeight - EDGE, + }; +} + +/** + * Mounted unconditionally and renders nothing until something is open. The inner card is keyed on + * the instance, so opening a second event mounts a fresh one rather than carrying the first one's + * half-finished delete over to it. + */ +export function EventDetails() { + const key = useDetails((s) => s.key); + const anchor = useDetails((s) => s.anchor); + if (!key) return null; + return ; +} + +interface DetailsCardProps { + target: InstanceKey; + anchor: AnchorRect | null; +} + +function DetailsCard({ target, anchor }: DetailsCardProps) { + const close = useDetails((s) => s.close); + const instances = useCalendarView((s) => s.instances); + const calendars = useAccounts((s) => s.calendars); + + const card = useRef(null); + const [spot, setSpot] = useState(null); + const [asking, setAsking] = useState(false); + const [busy, setBusy] = useState(false); + + const instance = useMemo( + () => + instances.find((i) => i.eventId === target.eventId && i.originalStart === target.originalStart) ?? + null, + [instances, target], + ); + + const recurring = instance?.recurring ?? false; + const readOnly = instance?.readOnly ?? true; + + useEscapeLayer(true, close); + // The scope step is not a `Confirm`, so it brings its own layer. Pushed after the card's, which + // is what makes Escape unwind the question first and the card second. + useEscapeLayer(asking && recurring, () => setAsking(false)); + useKeyContext("overlay"); + + // Measured, then placed, before the browser paints. The card also grows and shrinks as the + // delete question replaces its body, so the observer keeps it against its block either way. + useLayoutEffect(() => { + const el = card.current; + if (!el) return; + const measure = () => { + const box = el.getBoundingClientRect(); + setSpot(place(anchor, { width: box.width, height: box.height }, viewBounds())); + }; + measure(); + const watch = new ResizeObserver(measure); + watch.observe(el); + return () => watch.disconnect(); + }, [anchor]); + + // Focus has to leave the grid or the first keystroke goes to whatever the click left focused. + // Only once it has been placed: React flushes this before the placement commit, and the frame + // before that the card is still invisible at the origin. + const placed = spot !== null; + useEffect(() => { + if (placed) card.current?.focus({ preventScroll: true }); + }, [placed]); + + // A pointer anywhere else closes it, including on the header, which the card does not cover. + // Capture phase, so the block you clicked instead can open its own card in the same gesture. + useEffect(() => { + const onDown = (e: PointerEvent) => { + const el = card.current; + if (el && e.target instanceof Node && el.contains(e.target)) return; + close(); + }; + document.addEventListener("pointerdown", onDown, true); + return () => document.removeEventListener("pointerdown", onDown, true); + }, [close]); + + // The row heights are derived from the window, so after a resize the anchor describes somewhere + // the block no longer is. Repositioning against a stale rectangle is worse than getting out of + // the way. Scrolling is the agenda's list, and means the same thing. + useEffect(() => { + window.addEventListener("resize", close); + window.addEventListener("scroll", close, true); + return () => { + window.removeEventListener("resize", close); + window.removeEventListener("scroll", close, true); + }; + }, [close]); + + const edit = () => { + close(); + useEditor.getState().edit(target); + }; + + async function remove(scope: Scope) { + setBusy(true); + try { + await eventDelete(target, scope); + notify("Event deleted"); + void useCalendarView.getState().load(); + close(); + } catch (e) { + notify(`Could not delete the event: ${e}`); + setAsking(false); + } finally { + setBusy(false); + } + } + + return ( +
+ + {!instance ? ( + + ) : asking ? ( + recurring ? ( + void remove(s)} onBack={() => setAsking(false)} /> + ) : ( +
+ It goes from this calendar for everyone it was shared with.

} + confirmLabel="Delete" + busy={busy} + onConfirm={() => void remove("this")} + onCancel={() => setAsking(false)} + /> +
+ ) + ) : ( + <> + +
+ {!readOnly && ( + <> + + + + )} + +
+ + )} +
+ ); +} + +function Missing({ onClose }: { onClose: () => void }) { + return ( + <> +
+

That event is no longer in the range you are looking at.

+
+
+ +
+ + ); +} + +const SCOPES: [Scope, string, string][] = [ + ["this", "This event", "Only the occurrence you opened."], + ["following", "This and following", "This one and every later occurrence."], + ["all", "All events", "The whole series, including the ones already past."], +]; + +/** Deleting an occurrence of a series means three different things, so the card stops and asks. */ +function Scopes({ + instance, + busy, + onPick, + onBack, +}: { + instance: Instance; + busy: boolean; + onPick: (scope: Scope) => void; + onBack: () => void; +}) { + return ( + <> +
+

{eventTitle(instance)} repeats. Delete which of it?

+
+ {SCOPES.map(([scope, name, note]) => ( + + ))} +
+
+
+ +
+ + ); +} + +function Body({ instance, calendars }: { instance: Instance; calendars: readonly Calendar[] }) { + const badges = badgesOf(instance); + // Parsed, never interpolated. `EventDetailsHtml` explains why at length; the short version is + // that this string is written by whoever put the event on the calendar. + const description = useMemo(() => parseDescription(instance.description), [instance.description]); + const calendar = calendars.find((c) => c.id === instance.calendarId) ?? null; + const name = calendar?.summary || "Unknown calendar"; + const uri = instance.conference?.uri ?? null; + const tally = attendeeTally(instance.attendees); + const organizer = instance.organizer; + + return ( +
+
+

{eventTitle(instance)}

+ {badges.length > 0 && ( +
+ {badges.map((badge) => ( + + {badge} + + ))} +
+ )} +
+ +
+ + {whenText(instance)} +
+ +
+ + {name} +
+ + {instance.location && ( +
+ + {instance.location} +
+ )} + + {uri && ( +
+ + +
+ )} + + {description.nodes.length > 0 && ( +
+ +
+ +
+
+ )} + + {(tally || organizer) && ( +
+ +
+ + {tally ?? `Organised by ${organizer}`} + + {instance.attendees.length > 0 && ( +
    + {orderGuests(instance.attendees).map((a) => ( +
  • + + {nameOf(a)} + {a.organizer && organiser} + {a.self && you} + {a.optional && optional} + {responseLabel(a.responseStatus)} +
  • + ))} +
+ )} +
+
+ )} +
+ ); +} + +const nameOf = (a: Attendee): string => a.displayName || a.email; + +/** The parser's vocabulary, and the only elements a description can put on screen. */ + +export default EventDetails; diff --git a/src/components/EventDetailsHtml.test.ts b/src/components/EventDetailsHtml.test.ts new file mode 100644 index 0000000..8477421 --- /dev/null +++ b/src/components/EventDetailsHtml.test.ts @@ -0,0 +1,290 @@ +// Two halves. The first is "does a real description come out looking like what it says", using the +// shapes Google actually sends. The second is the one that matters: hostile input, because this +// string comes off the wire from whoever put the event on the calendar, and the only reason it is +// safe to render is that this module refuses to carry anything but a known list of elements and one +// vetted attribute. + +import { describe, expect, it } from "vitest"; +import { + decodeEntities, + hasMarkup, + parseDescription, + safeHref, + type DescElement, + type DescNode, +} from "./EventDetailsHtml"; + +/** The visible words, which is what "never renders" is asserted against. */ +function textOf(nodes: readonly DescNode[]): string { + return nodes + .map((node) => + node.kind === "text" ? node.text : node.kind === "break" ? "\n" : textOf(node.children), + ) + .join(""); +} + +/** Every element in the tree, flattened, so a whitelist can be asserted over the whole thing. */ +function elementsOf(nodes: readonly DescNode[]): DescElement[] { + const out: DescElement[] = []; + for (const node of nodes) { + if (node.kind !== "element") continue; + out.push(node); + out.push(...elementsOf(node.children)); + } + return out; +} + +const parse = (raw: string): DescNode[] => parseDescription(raw).nodes; +const links = (raw: string): DescElement[] => elementsOf(parse(raw)).filter((e) => e.tag === "a"); + +describe("plain text", () => { + it("keeps its newlines as breaks", () => { + const nodes = parse("Bring the deck.\nRoom 3.\n\nAsk Sam first."); + expect(nodes.map((n) => (n.kind === "text" ? n.text : "
"))).toEqual([ + "Bring the deck.", + "
", + "Room 3.", + "
", + "
", + "Ask Sam first.", + ]); + }); + + it("takes carriage returns and the Windows pair as one break each", () => { + expect(textOf(parse("one\r\ntwo\rthree"))).toBe("one\ntwo\nthree"); + }); + + it("is marked plain, so the card can keep its own spacing", () => { + expect(parseDescription(" indented\n more").plain).toBe(true); + expect(parseDescription("a
b").plain).toBe(false); + }); + + it("keeps an angle bracket that is arithmetic rather than markup", () => { + expect(hasMarkup("if a < b then 2 > 1")).toBe(false); + expect(textOf(parse("if a < b then 2 > 1"))).toBe("if a < b then 2 > 1"); + }); + + it("is nothing at all when it is empty or only whitespace", () => { + expect(parse("")).toEqual([]); + expect(parse(" \n ")).toEqual([]); + expect(parseDescription(null).nodes).toEqual([]); + expect(parseDescription(undefined).nodes).toEqual([]); + }); +}); + +describe("html", () => { + it("turns a br into a break", () => { + expect(parse("Job List:
tomorrow")).toEqual([ + { kind: "text", text: "Job List:" }, + { kind: "break" }, + { kind: "text", text: "tomorrow" }, + ]); + expect(parse("a
b")).toEqual([ + { kind: "text", text: "a" }, + { kind: "break" }, + { kind: "text", text: "b" }, + ]); + }); + + it("renders the description from the bug report as text and one link", () => { + const url = + "https://docs.google.com/spreadsheets/d/15rc9TXa46HwY3KsppvMR93T8L_7BTWacDnvisxPpzkE/edit?gid=71264683#gid=71264683"; + const nodes = parse( + `Job List:
${url}`, + ); + expect(textOf(nodes)).toBe(`Job List:\n${url}`); + const [link] = links(`Job List:
${url}`); + expect(link.href).toBe(url); + // The class attribute is gone, and nothing else came with it. + expect(Object.keys(link)).toEqual(["kind", "tag", "href", "children"]); + }); + + it("keeps the href of an anchor and the words inside it", () => { + const [link] = links('the sheet'); + expect(link.href).toBe("https://example.com/a?b=1&c=2"); + expect(textOf(link.children)).toBe("the sheet"); + }); + + it("takes a mailto link", () => { + expect(links('Sam')[0].href).toBe("mailto:sam@example.com"); + }); + + it("keeps emphasis, and normalises the tags that mean the same thing", () => { + const tags = elementsOf(parse("abcde")).map( + (e) => e.tag, + ); + expect(tags).toEqual(["b", "i", "i", "u", "s"]); + }); + + it("keeps lists as lists", () => { + const nodes = parse("
  • first
  • second
"); + expect(nodes).toHaveLength(1); + const list = nodes[0] as DescElement; + expect(list.tag).toBe("ul"); + expect(list.children.map((c) => (c as DescElement).tag)).toEqual(["li", "li"]); + expect(textOf(list.children)).toBe("firstsecond"); + expect((parse("
  1. one
")[0] as DescElement).tag).toBe("ol"); + }); + + it("closes an item that the sender left open", () => { + const list = parse("
  • first
  • second
")[0] as DescElement; + expect(list.children).toHaveLength(2); + expect(textOf(list.children[0].kind === "element" ? list.children[0].children : [])).toBe("first"); + }); + + it("gathers loose content in a list into an item, so a ul only ever holds li", () => { + const list = parse("
    stray
  • first
")[0] as DescElement; + expect(list.children.every((c) => c.kind === "element" && c.tag === "li")).toBe(true); + expect(textOf([list])).toBe("strayfirst"); + }); + + it("degrades an unknown tag to the text it wrapped", () => { + expect(textOf(parse('red and big'))).toBe( + "red and big", + ); + expect(elementsOf(parse("
cell
"))).toEqual([]); + expect(textOf(parse("
cell
"))).toBe("cell"); + }); + + it("collapses whitespace the way html does, and keeps a hard space", () => { + expect(textOf(parse("
a \n b
"))).toBe("a b"); + expect(textOf(parse("
a  b
"))).toBe("a\u00a0\u00a0b"); + }); + + it("decodes entities, named, decimal and hex", () => { + expect(textOf(parse("

Tom & Jerry <b> € 😀 "hi"

"))).toBe( + 'Tom & Jerry \u20ac \u{1F600} "hi"', + ); + }); + + it("leaves an entity it does not know exactly as it found it", () => { + expect(decodeEntities("&zzz; &")).toBe("&zzz; &"); + // Not a lookup on Object.prototype, whatever the name looks like. + expect(decodeEntities("&constructor; &toString;")).toBe("&constructor; &toString;"); + }); + + it("drops the padding a mail client leaves behind", () => { + expect(parse("

Only this.


")).toEqual([ + { kind: "text", text: "Only this." }, + ]); + }); + + it("keeps a blank line in the middle, but not a run of six", () => { + expect(parse("a



b").filter((n) => n.kind === "break")).toHaveLength(2); + }); + + it("survives tags that were never closed", () => { + expect(textOf(parse("
bold both"))).toBe("bold both"); + expect(textOf(parse("stray close
"))).toBe("stray close"); + }); + + it("survives a bare angle bracket next to real markup", () => { + expect(textOf(parse("5 < 6 really"))).toBe("5 < 6 really"); + }); + + it("drops comments and doctypes without dropping the text around them", () => { + expect(textOf(parse("beforeafter"))).toBe("beforeafter"); + expect(textOf(parse("before", lt + 4); + i = end < 0 ? html.length : end + 3; + continue; + } + if (html.startsWith("", lt); + i = end < 0 ? html.length : end + 1; + continue; + } + + MARKUP.lastIndex = lt; + const tag = MARKUP.exec(html); + if (!tag) { + // Something tag-shaped that never finished parsing: a browser drops it, and so do we, rather + // than spilling half an attribute list into the card as words. A bare `<` in prose, which is + // the far more common case, is text and stays text. + if (/^<\/?[a-zA-Z]/.test(html.slice(lt, lt + 3))) { + const end = html.indexOf(">", lt); + i = end < 0 ? html.length : end + 1; + } else { + addText("<"); + i = lt + 1; + } + continue; + } + i = MARKUP.lastIndex; + + const name = tag[2].toLowerCase(); + const attrs = tag[3] ?? ""; + + if (tag[1] === "/") { + for (let at = stack.length - 1; at > 0; at -= 1) { + if (stack[at].name !== name) continue; + while (stack.length > at) closeTop(); + break; + } + continue; + } + + if (RAW_TEXT.has(name)) { + // Everything up to the matching close is the element's raw text, and none of it is ours. + // An unterminated one swallows the rest of the description, which is what a browser does. + const close = new RegExp(`]*)?>`, "i"); + const found = close.exec(html.slice(i)); + i = found ? i + found.index + found[0].length : html.length; + continue; + } + + if (name === "br") { + top().children.push({ kind: "break" }); + continue; + } + if (VOID.has(name)) continue; + + // `
  • a
  • b` is two items, not one nested inside the other. + if (name === "li" && top().name === "li") closeTop(); + + let mapped = stack.length > MAX_DEPTH ? null : TAGS.get(name) ?? null; + let href: string | undefined; + if (mapped === "a") { + href = safeHref(attribute(attrs, "href")) ?? undefined; + // A link we will not follow is not a link. Its text still belongs to the reader. + if (!href) mapped = null; + } + + stack.push({ name, tag: mapped, href, children: [] }); + if (/\/\s*$/.test(attrs)) closeTop(); + } + + while (stack.length > 1) closeTop(); + return root.children; +} + +/** One attribute out of a tag's attribute text. Every other attribute is discarded unread. */ +function attribute(attrs: string, want: string): string | null { + ATTRIBUTE.lastIndex = 0; + let match: RegExpExecArray | null; + while ((match = ATTRIBUTE.exec(attrs)) !== null) { + if (match[1].toLowerCase() !== want) continue; + const value = match[2]; + if (value === undefined) return null; + const quoted = value.startsWith('"') || value.startsWith("'"); + return quoted ? value.slice(1, -1) : value; + } + return null; +} + +const isBreak = (node: DescNode): boolean => node.kind === "break"; + +const isBlank = (node: DescNode): boolean => + isBreak(node) || (node.kind === "text" && node.text.trim() === ""); + +/** + * The cosmetic pass. Descriptions arrive padded with the editor's leftovers: empty paragraphs, a + * run of six `
    ` at the end, list markup with loose text in it. None of that should turn into + * white space the reader has to scroll past. + */ +function tidy(nodes: readonly DescNode[], parent: DescTag | null): DescNode[] { + const out: DescNode[] = []; + + for (const node of nodes) { + if (node.kind === "text") { + out.push(node); + continue; + } + if (node.kind === "break") { + // Two is a blank line. Beyond that it is someone leaning on the return key. + const run = out.length >= 2 && isBreak(out[out.length - 1]) && isBreak(out[out.length - 2]); + if (!run) out.push(node); + continue; + } + + // An `
  • ` that lost its list reads as a paragraph rather than as a stray bullet. + const tag = node.tag === "li" && parent !== "ul" && parent !== "ol" ? "block" : node.tag; + let children = tidy(node.children, tag); + if (tag === "ul" || tag === "ol") children = intoItems(children); + if (children.length === 0) continue; + out.push( + node.href + ? { kind: "element", tag, href: node.href, children } + : { kind: "element", tag, children }, + ); + } + + return trimEdges(out); +} + +/** Loose content directly inside a list is gathered into items, so `ul` only ever holds `li`. */ +function intoItems(children: readonly DescNode[]): DescNode[] { + const items: DescNode[] = []; + let loose: DescNode[] = []; + const flush = (): void => { + const trimmed = trimEdges(loose); + if (trimmed.length > 0) items.push({ kind: "element", tag: "li", children: trimmed }); + loose = []; + }; + for (const child of children) { + if (child.kind === "element" && child.tag === "li") { + flush(); + items.push(child); + } else loose.push(child); + } + flush(); + return items; +} + +/** Blank leading and trailing nodes go, and the text at either end loses its outer whitespace. */ +function trimEdges(nodes: readonly DescNode[]): DescNode[] { + let from = 0; + let to = nodes.length; + while (from < to && isBlank(nodes[from])) from += 1; + while (to > from && isBlank(nodes[to - 1])) to -= 1; + const out = nodes.slice(from, to); + if (out.length === 0) return []; + + const first = out[0]; + if (first.kind === "text") out[0] = { kind: "text", text: first.text.replace(/^[ \t]+/, "") }; + const last = out[out.length - 1]; + if (last.kind === "text") out[out.length - 1] = { kind: "text", text: last.text.replace(/[ \t]+$/, "") }; + return out.filter((node) => node.kind !== "text" || node.text !== ""); +} diff --git a/src/components/EventDetailsModel.test.ts b/src/components/EventDetailsModel.test.ts new file mode 100644 index 0000000..5e66b28 --- /dev/null +++ b/src/components/EventDetailsModel.test.ts @@ -0,0 +1,169 @@ +import { describe, expect, it } from "vitest"; +import { + badgesOf, + conferenceLabel, + isStrandedAnchor, + orderGuests, + place, + type Bounds, +} from "./EventDetailsModel"; +import type { Attendee, Instance } from "../ipc"; + +const bounds: Bounds = { top: 54, left: 8, right: 1192, bottom: 792 }; +const card = { width: 336, height: 300 }; + +describe("place", () => { + it("prefers the right of the block, aligned to its top", () => { + const at = place({ top: 200, left: 300, width: 120, height: 40 }, card, bounds); + expect(at).toEqual({ top: 200, left: 430, side: "right" }); + }); + + it("flips to the left when the right would not fit", () => { + const at = place({ top: 200, left: 1000, width: 150, height: 40 }, card, bounds); + expect(at).toEqual({ top: 200, left: 654, side: "left" }); + }); + + it("goes below when neither side fits, centred across the block", () => { + const narrow: Bounds = { top: 54, left: 8, right: 420, bottom: 792 }; + const at = place({ top: 100, left: 120, width: 160, height: 40 }, card, narrow); + expect(at.side).toBe("below"); + expect(at.top).toBe(150); + expect(at.left).toBe(32); + }); + + it("goes above when there is no room below", () => { + const shallow: Bounds = { top: 54, left: 8, right: 420, bottom: 600 }; + const at = place({ top: 500, left: 120, width: 160, height: 40 }, card, shallow); + expect(at).toEqual({ top: 190, left: 32, side: "above" }); + }); + + it("never lets the card hang off the top or the bottom", () => { + const high = place({ top: 30, left: 300, width: 120, height: 60 }, { width: 336, height: 700 }, bounds); + expect(high.top).toBe(54); + const low = place({ top: 700, left: 300, width: 120, height: 20 }, card, bounds); + expect(low.top).toBe(492); + expect(low.top + card.height).toBeLessThanOrEqual(bounds.bottom); + }); + + it("takes the middle of the window when the anchor has no size", () => { + const at = place({ top: 400, left: 600, width: 0, height: 0 }, card, bounds); + expect(at.side).toBe("centre"); + expect(at.left).toBe(432); + expect(at.top).toBe(273); + }); + + it("takes the middle of the window when there is no anchor at all", () => { + expect(place(null, card, bounds).side).toBe("centre"); + }); + + it("stays inside bounds smaller than the card itself", () => { + const tiny: Bounds = { top: 54, left: 8, right: 200, bottom: 200 }; + const at = place({ top: 100, left: 20, width: 40, height: 10 }, card, tiny); + expect(at.top).toBe(54); + expect(at.left).toBe(8); + }); +}); + +describe("isStrandedAnchor", () => { + it("catches a rectangle scrolled off the top", () => { + expect(isStrandedAnchor({ top: -80, left: 300, width: 100, height: 40 }, bounds)).toBe(true); + }); + + it("catches a rectangle past the right edge", () => { + expect(isStrandedAnchor({ top: 200, left: 1400, width: 100, height: 40 }, bounds)).toBe(true); + }); + + it("accepts a rectangle only partly on screen", () => { + expect(isStrandedAnchor({ top: 20, left: 300, width: 100, height: 80 }, bounds)).toBe(false); + }); +}); + +const instance = (over: Partial = {}): Instance => ({ + colorId: null, + eventId: "ev-1", + calendarId: "cal-1", + accountId: "acct-1", + originalStart: null, + start: "2026-08-11T09:00:00+05:30", + end: "2026-08-11T09:30:00+05:30", + startMs: 0, + endMs: 0, + allDay: false, + summary: "Stand-up", + description: null, + location: null, + status: "confirmed", + recurring: false, + colorHex: "#6f6194", + etag: null, + organizer: null, + attendees: [], + conference: null, + readOnly: false, + pending: false, + ...over, +}); + +describe("badgesOf", () => { + it("says nothing about an ordinary event", () => { + expect(badgesOf(instance())).toEqual([]); + }); + + it("names everything unusual about the occurrence", () => { + expect(badgesOf(instance({ status: "tentative", recurring: true, pending: true, readOnly: true }))).toEqual([ + "tentative", + "repeats", + "not synced yet", + "read only", + ]); + }); +}); + +describe("conferenceLabel", () => { + it("prefers the label Google sent", () => { + const c = { kind: "hangoutsMeet", uri: "https://meet.google.com/a", label: "meet.google.com/a" }; + expect(conferenceLabel(instance({ conference: c }))).toBe("meet.google.com/a"); + }); + + it("names Meet when there is no label", () => { + const c = { kind: "hangoutsMeet", uri: "https://meet.google.com/a", label: null }; + expect(conferenceLabel(instance({ conference: c }))).toBe("Google Meet"); + }); + + it("is empty when there is no conference", () => { + expect(conferenceLabel(instance())).toBe(""); + }); +}); + +const guest = (over: Partial): Attendee => ({ + email: "a@example.com", + displayName: null, + responseStatus: "needsAction", + organizer: false, + self: false, + optional: false, + ...over, +}); + +describe("orderGuests", () => { + it("puts the organiser first and the declines last", () => { + const list = [ + guest({ email: "no@example.com", responseStatus: "declined" }), + guest({ email: "yes@example.com", responseStatus: "accepted" }), + guest({ email: "boss@example.com", responseStatus: "needsAction", organizer: true }), + guest({ email: "maybe@example.com", responseStatus: "tentative" }), + ]; + expect(orderGuests(list).map((a) => a.email)).toEqual([ + "boss@example.com", + "yes@example.com", + "maybe@example.com", + "no@example.com", + ]); + }); + + it("does not mutate what it was handed", () => { + const list = [guest({ email: "b@example.com", responseStatus: "declined" }), guest({ email: "a@example.com" })]; + orderGuests(list); + expect(list[0].email).toBe("b@example.com"); + }); +}); diff --git a/src/components/EventDetailsModel.ts b/src/components/EventDetailsModel.ts new file mode 100644 index 0000000..08169ff --- /dev/null +++ b/src/components/EventDetailsModel.ts @@ -0,0 +1,144 @@ +// Pure helpers for the details card: where it goes, and the small amount of vocabulary its +// content needs. Nothing here holds state or touches the DOM, which is what makes it testable in +// a node run. +// +// The placement is the only genuinely fiddly part. The card is anchored to the block that was +// clicked rather than centred, so it has to find a side that fits and then stay inside the window +// whatever happens, including when the anchor is offscreen, has no size at all, or the card is +// taller than the space it was given. + +import type { Attendee, Instance } from "../ipc"; + +/** Viewport coordinates, the same shape `useDetails` stores and a DOMRect satisfies. */ +export interface Rect { + top: number; + left: number; + width: number; + height: number; +} + +export interface Size { + width: number; + height: number; +} + +/** The region the card is allowed to occupy, in viewport coordinates. */ +export interface Bounds { + top: number; + left: number; + right: number; + bottom: number; +} + +/** Which side of the anchor the card ended up on. `centre` means it gave up and took the window. */ +export type Side = "right" | "left" | "below" | "above" | "centre"; + +export interface Placement { + top: number; + left: number; + side: Side; +} + +/** The breathing room between the block and the card. */ +export const ANCHOR_GAP = 10; + +function clamp(value: number, low: number, high: number): number { + if (high < low) return low; + return value < low ? low : value > high ? high : value; +} + +/** + * True when the rectangle is not worth aiming at: absent, sizeless, or entirely outside the + * region the card may occupy. `openDetailsFor` hands over a zero-size rect at the middle of the + * window when it had no element to measure, and that is exactly the case this catches. + */ +export function isStrandedAnchor(anchor: Rect | null, bounds: Bounds): boolean { + if (!anchor) return true; + if (anchor.width <= 0 && anchor.height <= 0) return true; + return ( + anchor.left + anchor.width <= bounds.left || + anchor.left >= bounds.right || + anchor.top + anchor.height <= bounds.top || + anchor.top >= bounds.bottom + ); +} + +/** + * Right of the block, then left, then below, then above, then the middle of the window. The first + * side the card fits on wins, and the cross axis is clamped rather than allowed to hang off an + * edge, so the card is always whole and always on screen. + */ +export function place(anchor: Rect | null, card: Size, bounds: Bounds, gap = ANCHOR_GAP): Placement { + const middle = (): Placement => ({ + top: clamp(Math.round((bounds.top + bounds.bottom - card.height) / 2), bounds.top, bounds.bottom - card.height), + left: clamp(Math.round((bounds.left + bounds.right - card.width) / 2), bounds.left, bounds.right - card.width), + side: "centre", + }); + + if (isStrandedAnchor(anchor, bounds)) return middle(); + const a = anchor as Rect; + + const beside = (left: number, side: Side): Placement => ({ + top: clamp(Math.round(a.top), bounds.top, bounds.bottom - card.height), + left: Math.round(left), + side, + }); + + const right = a.left + a.width + gap; + if (right + card.width <= bounds.right) return beside(right, "right"); + + const left = a.left - gap - card.width; + if (left >= bounds.left) return beside(left, "left"); + + const across = clamp( + Math.round(a.left + a.width / 2 - card.width / 2), + bounds.left, + bounds.right - card.width, + ); + + const below = a.top + a.height + gap; + if (below + card.height <= bounds.bottom) return { top: Math.round(below), left: across, side: "below" }; + + const above = a.top - gap - card.height; + if (above >= bounds.top) return { top: Math.round(above), left: across, side: "above" }; + + return middle(); +} + +const RESPONSE_ORDER: Record = { + accepted: 0, + tentative: 1, + needsAction: 2, + declined: 3, +}; + +/** The organiser first, then who is coming, then who is not. Read-only: v1 has no RSVP flow. */ +export function orderGuests(attendees: readonly Attendee[]): Attendee[] { + return attendees + .slice() + .sort( + (a, b) => + Number(b.organizer) - Number(a.organizer) || + RESPONSE_ORDER[a.responseStatus] - RESPONSE_ORDER[b.responseStatus] || + (a.displayName ?? a.email).localeCompare(b.displayName ?? b.email), + ); +} + +/** What to call the conference link, falling back through label, kind, then something honest. */ +export function conferenceLabel(instance: Instance): string { + const conference = instance.conference; + if (!conference) return ""; + if (conference.label) return conference.label; + if (conference.kind === "hangoutsMeet") return "Google Meet"; + return conference.kind || "Join"; +} + +/** The badges under the title: everything unusual about this occurrence, and nothing else. */ +export function badgesOf(instance: Instance): string[] { + const out: string[] = []; + if (instance.status === "tentative") out.push("tentative"); + if (instance.recurring) out.push("repeats"); + if (instance.pending) out.push("not synced yet"); + if (instance.readOnly) out.push("read only"); + return out; +} diff --git a/src/components/EventEditor.tsx b/src/components/EventEditor.tsx new file mode 100644 index 0000000..6f01cb9 --- /dev/null +++ b/src/components/EventEditor.tsx @@ -0,0 +1,602 @@ +// One event, created or edited. Summary, calendar, when, where and the description are writable; +// attendees and the conference link are not, deliberately, because v1 has no RSVP flow and no +// scheduling anything. +// +// The one genuinely subtle thing here is scope. Saving or deleting an occurrence of a recurring +// series does something different to the server depending on whether you meant this one, this one +// and everything after it, or the whole series, so the panel stops and asks. There is no default, +// because a default is exactly what gets missed. + +import { useMemo, useState, type FormEvent } from "react"; +import { openUrl } from "@tauri-apps/plugin-opener"; +import { eventCreate, eventDelete, eventUpdate } from "../api/events"; +import { useEscapeLayer } from "../escape"; +import type { Calendar, EventDraft, EventPatch, Instance, InstanceKey, Scope } from "../ipc"; +import { useAccounts } from "../store/useAccounts"; +import { useCalendarView } from "../store/useCalendarView"; +import { useOverlays } from "../store/useOverlays"; +import { notify } from "../store/useToast"; +import { parseDateOnly, toDateOnly, toOffsetIso } from "../time"; +import "../styles/create.css"; +import { ColorPicker } from "./ColorPicker"; +import { parseDescription } from "./EventDetailsHtml"; +import { Icon } from "./Icon"; +import { RichText } from "./RichText"; +import { + allDayEndInput, + allDayEndWire, + attendeeTally, + canWrite, + defaultRange, + fromDateTime, + responseLabel, + toTimeOnly, + whenText, +} from "./overlayModel"; +import { Confirm, Sheet } from "./overlayShell"; +import { calSlot, eventTitle } from "./GridModel"; +import { useEditor, type EditorSeed, type EditorTarget } from "./useEditor"; + +const FORM_ID = "event-editor-form"; + +const LINK = "M10 13a5 5 0 0 0 7 0l3-3a5 5 0 0 0-7-7l-2 2M14 11a5 5 0 0 0-7 0l-3 3a5 5 0 0 0 7 7l2-2"; +const REPEAT = "M17 2l4 4-4 4M3 11V9a4 4 0 0 1 4-4h14M7 22l-4-4 4-4M21 13v2a4 4 0 0 1-4 4H3"; +const LOCK = "M5 11h14v10H5zM8 11V7a4 4 0 0 1 8 0v4"; + +interface Form { + summary: string; + calendarId: string; + allDay: boolean; + startDate: string; + startTime: string; + endDate: string; + endTime: string; + location: string; + description: string; + /** Google's per-event colour id. Empty means the event takes its calendar's colour. */ + colorId: string; +} + +interface Times { + startMs: number; + endMs: number; + start: string; + end: string; + valid: boolean; +} + +function formFor(instance: Instance | null, seed: EditorSeed, anchor: number, fallback: string): Form { + if (instance) { + return { + summary: instance.summary, + calendarId: instance.calendarId, + allDay: instance.allDay, + startDate: toDateOnly(instance.startMs), + startTime: toTimeOnly(instance.startMs), + endDate: instance.allDay ? allDayEndInput(instance.endMs) : toDateOnly(instance.endMs), + endTime: toTimeOnly(instance.endMs), + location: instance.location ?? "", + description: instance.description ?? "", + colorId: instance.colorId ?? "", + }; + } + const range = defaultRange(anchor); + const startMs = seed.startMs ?? range.startMs; + const endMs = seed.endMs ?? startMs + (range.endMs - range.startMs); + const allDay = seed.allDay ?? false; + return { + summary: seed.summary ?? "", + calendarId: seed.calendarId ?? fallback, + allDay, + startDate: toDateOnly(startMs), + startTime: toTimeOnly(startMs), + endDate: allDay ? allDayEndInput(endMs) : toDateOnly(endMs), + endTime: toTimeOnly(endMs), + location: seed.location ?? "", + description: seed.description ?? "", + colorId: seed.colorId ?? "", + }; +} + +/** What the form means in wire terms, and whether it means anything at all. */ +function timesOf(form: Form): Times { + if (form.allDay) { + const startMs = parseDateOnly(form.startDate); + const endMs = parseDateOnly(form.endDate); + const valid = Number.isFinite(startMs) && Number.isFinite(endMs) && endMs >= startMs; + return { startMs, endMs, start: form.startDate, end: valid ? allDayEndWire(form.endDate) : "", valid }; + } + const startMs = fromDateTime(form.startDate, form.startTime); + const endMs = fromDateTime(form.endDate, form.endTime); + const valid = Number.isFinite(startMs) && Number.isFinite(endMs) && endMs > startMs; + return { + startMs, + endMs, + start: valid ? toOffsetIso(startMs) : "", + end: valid ? toOffsetIso(endMs) : "", + valid, + }; +} + +/** Only what moved. An absent field means unchanged; an empty string clears the two that allow it. */ +function patchOf(form: Form, times: Times, instance: Instance): EventPatch { + const patch: EventPatch = {}; + if (form.summary !== instance.summary) patch.summary = form.summary; + if (form.location !== (instance.location ?? "")) patch.location = form.location; + if (form.description !== (instance.description ?? "")) patch.description = form.description; + if (form.calendarId !== instance.calendarId) patch.calendarId = form.calendarId; + // The empty string is meaningful here: it is how the event is put back on its calendar's colour. + if (form.colorId !== (instance.colorId ?? "")) patch.colorId = form.colorId; + + // The panel holds the inclusive last day of an all-day event, so compare like with like. + const wasEnd = instance.allDay ? parseDateOnly(allDayEndInput(instance.endMs)) : instance.endMs; + if (form.allDay !== instance.allDay || times.startMs !== instance.startMs || times.endMs !== wasEnd) { + patch.allDay = form.allDay; + patch.start = times.start; + patch.end = times.end; + } + return patch; +} + +const targetId = (target: EditorTarget): string => + target.mode === "create" ? "create" : `edit ${target.key.eventId} ${target.key.originalStart ?? ""}`; + +export interface EventEditorProps { + /** Where a new event lands when nothing seeded a calendar. */ + defaultCalendarId?: string; +} + +/** + * Nothing is resident: the panel below only exists while the overlay is open, which is what keeps + * its form state from surviving into the next event you open. + */ +export function EventEditor({ defaultCalendarId }: EventEditorProps) { + const open = useOverlays((s) => s.open); + const target = useEditor((s) => s.target); + if (open !== "editor") return null; + const resolved: EditorTarget = target ?? { mode: "create", seed: {} }; + return ( + + ); +} + +interface EditorPanelProps { + target: EditorTarget; + defaultCalendarId?: string; +} + +function EditorPanel({ target, defaultCalendarId }: EditorPanelProps) { + const dismiss = useEditor((s) => s.close); + const calendars = useAccounts((s) => s.calendars); + const instances = useCalendarView((s) => s.instances); + const anchor = useCalendarView((s) => s.anchor); + + const key: InstanceKey | null = target.mode === "edit" ? target.key : null; + + const instance = useMemo( + () => + key + ? (instances.find((i) => i.eventId === key.eventId && i.originalStart === key.originalStart) ?? null) + : null, + [instances, key], + ); + + const writable = useMemo( + () => calendars.filter((c) => canWrite(c.accessRole) || c.id === instance?.calendarId), + [calendars, instance], + ); + + const fallback = defaultCalendarId ?? writable.find((c) => c.primary)?.id ?? writable[0]?.id ?? ""; + + const [form, setForm] = useState
    (() => + formFor(instance, target.mode === "create" ? target.seed : {}, anchor, fallback), + ); + const [ask, setAsk] = useState<{ action: "save" | "delete" } | null>(null); + const [busy, setBusy] = useState(false); + + // The swatch for "same as calendar" previews the calendar it would follow, drawn in the slot + // that calendar's dot is drawn in everywhere else rather than in the hex Google stores. + const chosen = calendars.find((c) => c.id === form.calendarId) ?? null; + const calendarColor = chosen + ? `var(--cal-${calSlot(chosen.colorHex, chosen.id)})` + : "var(--line-strong)"; + + const recurring = instance?.recurring ?? false; + const readOnly = instance?.readOnly ?? false; + const times = timesOf(form); + const scopeStep = ask !== null && recurring; + + useEscapeLayer(scopeStep, () => setAsk(null)); + + const set = (field: K, value: Form[K]) => + setForm((prev) => ({ ...prev, [field]: value })); + + const close = () => { + setAsk(null); + dismiss(); + }; + + async function run(action: "save" | "delete", scope: Scope) { + setBusy(true); + try { + if (action === "delete") { + if (!key) { + close(); + return; + } + await eventDelete(key, scope); + notify("Event deleted"); + } else if (key && instance) { + const patch = patchOf(form, times, instance); + if (Object.keys(patch).length > 0) await eventUpdate(key, patch, scope); + } else { + const draft: EventDraft = { + calendarId: form.calendarId, + summary: form.summary.trim() || "Untitled", + description: form.description || null, + location: form.location || null, + start: times.start, + end: times.end, + allDay: form.allDay, + // Absent rather than empty when it follows the calendar, which is what the wire reads + // as no override. + ...(form.colorId ? { colorId: form.colorId } : {}), + }; + await eventCreate(draft); + } + void useCalendarView.getState().load(); + close(); + } catch (e) { + notify(action === "delete" ? `Could not delete the event: ${e}` : `Could not save the event: ${e}`); + setAsk(null); + } finally { + setBusy(false); + } + } + + const onSubmit = (e: FormEvent) => { + e.preventDefault(); + if (!times.valid || !form.calendarId || busy) return; + if (recurring) setAsk({ action: "save" }); + else void run("save", "this"); + }; + + if (scopeStep && ask) { + const action = ask.action; + return ( + setAsk(null)}> + Back + + } + > +

    + {instance?.summary || "This event"} repeats. Choose what this{" "} + {action === "delete" ? "deletion" : "change"} applies to. +

    +
    + {SCOPES.map(([scope, name, note]) => ( + + ))} +
    +
    + ); + } + + if (ask) { + return ( + + It goes from this calendar for everyone it was shared with.

    } + confirmLabel="Delete" + busy={busy} + onConfirm={() => void run("delete", "this")} + onCancel={() => setAsk(null)} + /> +
    + ); + } + + if (target.mode === "edit" && !instance) { + return ( + + Close + + } + > +

    That event is no longer in the range you are looking at.

    +
    + ); + } + + if (readOnly && instance) { + return ( + + Close + + } + > + + + ); + } + + return ( + + {target.mode === "edit" && ( + + )} + + + + } + > + e.stopPropagation()}> + + + + +
    + Colour + set("colorId", colorId ?? "")} + calendarColor={calendarColor} + /> +
    + +
    + When +
    + set("startDate", e.target.value)} + /> + {!form.allDay && ( + set("startTime", e.target.value)} + /> + )} + to + set("endDate", e.target.value)} + /> + {!form.allDay && ( + set("endTime", e.target.value)} + /> + )} +
    + + {!times.valid && ( + + That ends before it starts. + + )} + {recurring && ( + + + Repeats, so saving will ask what the change applies to. + + )} +
    + + + +
  • >qIa)CJDQwHr3JKGv}<_ybIUd;~Q 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 literal 0 HcmV?d00001 diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-60x60@3x.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..2a9fbc26ef1ef34cd7b0e4413f40d7912e3a777b GIT binary patch literal 11091 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 literal 0 HcmV?d00001 diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-76x76@1x.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-76x76@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..2cdf18485f69316a5ae921f83997baa4c0042e50 GIT binary patch literal 4515 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 literal 0 HcmV?d00001 diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-76x76@2x.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-76x76@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4723e4b45ea6377219fcf9475c2c75ae075fed5e GIT binary patch literal 9257 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 SjxJs>07Y3fXqB{C=zjqou7cM9 literal 0 HcmV?d00001 diff --git a/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-83.5x83.5@2x.png b/src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-83.5x83.5@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f26fee45c06c140414d4de5ef4a6911edb665b3e GIT binary patch literal 10219 zcma)?bxa&Ux9FF}-M#qYP~4s3vbcNkqD2ZU?og~)p+Irh#jSX8hq6T%C@fGYP~746 zyEpG9?~j+fOlD3pGrw~($(+o|nG>%KR>sAm!U6yQxT-1&y8mRwe>w*6-}vCO*8NY= z+p6el0ss&e03a+10J#4*6?Oms`0@e(ht>dqcs2k)?wQx6Bl&Lu?X9}90^sF8t+1ye z9ROf~t18Ip`>!4c2l!hU`JQ?l_soj<{opcbvzKT~7j1ikMpVe`Ja|KoQzn=po0CDH zHc4_X4sc^=LAX$xVig_RzK-HW@JY&t&*@s~TC!udsH(_2j5h9=q;Z>cEi8SV5eq!M zdKSG=^Lnd%1NUaOP<{@+Cvxf7|I-}m*wAxL760Wu7AMZzPIOPK$uPaz28F!0!OXu% zjyMS`jIH8Dhws(Cv%`!S!HvB{?>}B;#{Hiy^4vFoRV>NVm*x{ppv}qVEM~18jB?8R zPg*uprYA6h(v|N)S%LL;pe*Oi{s@^h!Sspy{Dlje$(y#f8Y>4M`D`xD*lDVWbjz|O z$#e-lahAxY0O8>B9pzI92j}~J{UG`K zlEEnq7(lk^8XRY<=+{DM3`M1eA}yyiH4Q;(+#sBOmTX=5Jd3%danb^Qqll1e;$LD@ z5WxqcFeIN4a;?W~meaIh*3x_y;8?V$Y?Bf`UCnnI$NIhF8ysOMgQ&GbiMZyW#z`kh z50B1Qv+DD7%{8x=JiDF=5o8KRa4H4!Ti3)8^R67Y_tE;uzlp(9g zVff^5j!4J&v+(Y-*mp>h$MOEufZ6W0*;i{4e#}&3g{Fe|I196Ib{9Y1S3!}+Hx9E$ zIW*f|TEu_NZF)EsS{3~dTn@L$U%k-VQ4Q8rpG*RPn9Bs^1T3)MMeWr^n_eib~!e2^Y7P|LOpax-nkylE*nX4qEo0(S(9!e9PC-feG*m14Z5_4u?^~b zAvhK7q`Fc~UCQO+dd)4$`7MVe;R;J?_$C4)d<16U^wFOD2VHTq&$avIpVMyBV}0A` zZG46$ABFu6-9T{UEO( zxJdL=J=rTO<~BXT7mclD4&N#(@6k_GN>hjSj7FY3N#)@3!QW9eeBa@K@SuH645`p{Tnyq51P{JFI6G+|sS6uYAP43m^zR?B6n1iikn zNJRX1YwH+0G1GM&nYS`g80z3cCCzh}_pO=QexZ23lko=A_;zXEZ)CW0pL#;=N~_3` ztL#EShndu4w=PRDozS@_QJZVs8TxB-YB<6UhRr3Pr^hXv5MJonfAY{G@*Ks6VGNE3V{T4+E zcRL1QS>6v7>lZfdE!1EmTL~#lV;P_O1DYgDO$mTLq5wa~;1eT_o(0^C*sHR3rk#S@)0R z8&UJB&c`DNjweO6d+(Nnd$AuMo|hZ@_KIo$pNG;N{5Sr-datcHd&gpCyZ`$PxN-Ig z;1tGM6V``NMVV6;Ze3_*7y1xE{!YrW6kU7&+uP)|lz%Qmxkvk9v=@8Hq2#K8t$Nn*^}J-g@_YMDUds?BreS}2~^cpBXq%jjFwy7Nv3hDo*cRFDd5 z2z*blOo8G0qR`|L*sX0zlLI_bxak~d({dg=>};&Z#~PQu4ut`@jpWx7ecQq?Qs6tg zClM3UM@lNP)1*oZIbNRkR$@}*ZRCihR1PTks<%Jy>?bVauz@gDoSZ*soXmQL1Vb(wBGEm&|${F_v(7`mRo2LOW~Z*_pomxRu6_zdRH|F zpvI7ukW(Xg6)Y}k_Nj80)`u37PI9v7owyQ#Y)t2xqyjx$fSan-^1;Qyc+9X~Fjgx{ zNP=hz`lq(Jz77^XZyCGtUWEDx+O}9b2r}bRG+$n4h-L;T+5Bvd#N2Q08=gz#YOS!~ z|0Zw6p?P2X19cf#&z(ngd**C?CW9$$K}{ui#Oe^eL3f_ec3=k+bDT8z)^N=`-^pUj z;{iHDPx(1{Z2To^3W#GCbJaSPGj-RtZ&Z1t$lt9fR%N?+Z91n;T}sA*!8OT6{-ML4xJ7zsa_mJAWowLHVk?lkcQ+*dBdhW(V zWb@K+*6)&+Z{<~1+u8q53oG^XtUnm~KEuf51rL5_S!_r1HaGrN&Mkh=Hq}ybaF1q- z7+R&Ss5O4D1)c@M4lDsf?fs6Pv;z3(6qC>Vqc|XnEa)ZE{Y)oLpC;d5So{8N^PHdB zta!0?d^`!@|GRa(8GdRHCgwG8(XT5UBVwplB8=8Ztqf7zY;rCOPfTL6HnJKPu06U1 zs~xcC-#TAPkMxD+Lh%3!X~pvN{=!X^P@ExdP5T-pB@7lyCz{VOlby;RiShNzX>rwu zitsw`pIh0Oa!>$#e?RheQnu;F(%Ue~>G_$pjDUX%KR`%X*V~wy;_3IK{9OcBb8Pjs z)+cw`7cY?+MgOcY3J|A~Iv?TQuUzo{D30nU1wcy1#EXzcuYlFF;(!dv>bJI+wqW0@)115@v@u|&RKW#akeU}p zCX#Ne?6L_JC@Mlj6`J?Vb1~QR9JA>s-1}yv+fO0)aM@kgacqH@U>wy)oM;e@O>!id zr+7KnOrpu1GBM60V{l7`1^b2HUg24>(8c;wFo+Xz`(J3 z;W)fiSx|py1FTP=E=Y$dxl?!TW;UG9M~d2k_K!cHa>?|-epWV zdh$LT;W=C&ebp6bvia*WXJS7i#w<#0TLoVT7u8J22i2F_ju2pg-SMZX9WzMX40^?7r zU8+sEUIKbJ%IfYGiq4EAy$%+Y9Rw@QFfk8yXeNYgGnsy}ND2CVu%8U0ylXRq_dxM{ z<&EP?_26zwy)+ihRS5*vWnQ)Ic(q6VZYb}W*;0nH|Exy;vMP3-dgqq1i`{p2FmQ7` zt4Vpu!Qd&+goDIzVX9mj<)k~3D)QFA3ByUtA7|~RMs}_emuXG3Cf`8Yfyyi| zcBcw}L&H*PSn-NMV+;*dpF!gY3Y%G?Z837;I0C{WyN-1;yP)b{&wL+zHh0^dFa9n* z4cMjXOsYQCx@-WR&OzTF8R9-GfTb|M4gP$tMN82a68f4c8c3CTsP%@+JA40wV1R}U z+#9u60FGMdTIRkejy)fNQC(&$Rs8q{-POJ{rVN}V!VJP40amtazP>cviG=8 zG)@a^N&t!94Czw%?bf@ZH{-+2$&>CbBkh z$WsWt>ZUN}!kkS-ad=SfPI-mnswSw^335`hT;qfg$w&rH)45ap0sE&m8jjEjHluis z6i|L~qpt`e1NGamHT#Sduz%Ds2%`iT;f-74=qnSDx|DP!9wws^Is(ZOt`79C<0E(c zG#)I}1bto`MSa`Di=X`pzxmx96Qf%d=b^|g{w^Ir&C@L=dNDK-lO#5#8j%F+T{*Ym z>F$J$mWlBKazpjA2M3YqfiBmEoIKPrrd~S64J+o@FQRFux`TpVqMsGgS9?W|o~<8N zf8tzHd_us^q(tJ0T)z!Wa+p2Cjgj?$Rng^XvRLJ%b@OI2dv#r0AD~<&VdW=vvtSkI zDvJoAsdjVeRjsnHQQKbRLrM&eNjnnb>X`THwfI@@)%t9?nz4 zw3(Xu6oDIsQd~A07QXbk6zmF(G#c~uxX$<)@#(e_WOE|j?nS`S%zNZotHIPA40jbu zA!~L=Ql#L{l93Ys>a5U4%+PR*{`1Pby?z$v>RCs#hUv~#;`65UHw|P%C^PC?==QrVyS}&CAq;|P-5d&6ETGJ^=hW+FC z_WJhR^^dyms>ON2r*wy1?iQQ;mr{(Fyp6tjEdsav61V)5^fi>GvSRX>gXV4apue`W z#PmMzjS(ji8rRy^ZK!?W`YZnk*+s=c9x@PSpDXpTaEa z4UKe$sd<;NWIu)Jw~kjK+FD~y57IuXt`2Qp4W5Z(+X!G^n!oa;iw}J$$pkI~+s6AFKGd>OygC+B1zFivL9rptRx!g)jXm{Ev2EP+ItFrEMH1C-iH zoc(GS7^yI}#VWmp5_`lQ3I=vnK3F13VQrp8CCs(T9>-c0AH{~MlfyCPS5{rnn`r85 zj_@$+(RJW8HVQq4T<>{3ttD7xTq+RO7oexZrTCN4>fv|YM->-}I zIw!zVz1dNnv#%>PsTlV*S>W1lzs2J*f@CbG~VyOO1|0 zERk-$e3={3IG5an2rJg7t!>>;h0(*^^dw0=)gl{ND&H%`cw=+sX|21PwR?H2AjQQg zDB^-6sa|sijum;>&EuM1^hrwFT4Lyvr#y!vH#LrXQuW*1S)J{^m~g}TT3aO`QOmUg zanKTDN?bR!IMjl1exfL=)5${8W~)GtKgTwQJ3uNTs-W7gD}{1-Q&%$@tEQ5uRebw|x06Rq4u_zv>}dC9gGHcUJW9gDOewH%dJ z4Pd{=t?DbMOx0+iOc*d!c77E&8X|a1tfQu1ldZ38cr;l_DU)}8nl0@W;P)Jpge;Zs zNVdlI9StN@=odUC;X^z=^=-uz17z(GkxX9c>tUG~oqSuXoO^GpXa#HZiQl4rMraJC zzE_(72u+-hBQ`q&T?KbvGb4qV+9Y%WFJvni(Kf_QLZJQ!d)zg%6QyKHx9=qS=(8Io z>a{c;twb%naV?Lsb)ZY00T)+lT!v;%#-}&J_f^%j}}%{ z&TC|<@#_MO-4|}76L;P%2pNNSJ5f70qu#_ow42FxCp$`&x3IM#W&L%Ghbjpz=u0K4 znxLR4kb3gF*$Z5~-t^Dw67IM%vA2bkQPG0_{rny(kV;fjp>UOeZ-}v$BuWBswr~ex z>{3~r|NXc7fhk&nkXWh*qlU{;0&pv)_t3Z?3L`PulYmT~dD@;GUjrDx0(8T?a!pNx z&eTOS3xUl_CGoO2Zb%|B%$FH2xuA&|g%TBdn_sW89wwF~&D>9CDd0Rh+n43~~Hma|3rr zF(*}K2Dx1`xWT*=KOmJ^PR!YJ*%gH;d@QDOV$S!3^0X?m)B-E;J$6)lV;k5d76h_4 zM_({*ZgtH^av+L*g5GHntAKJ6-!US!3Fl#g1GU~RcE3wyQ{QEDLOoiq{s6)b2Na&= z7|ecx;BM{pPKB!JcRLk%L1S<(R_J;N|RWC+;?$R zk917{Gq!w3Jzyx0utf-g# zCH>#Fz7whlBxeT{xDw2Ry)0Qe;h9Vf-F$c+KsFO;iK@18VyBV)NdP8Z<_wY-QgkwC znLh8Yp4s%?5%Ci_rhX)AE=`E}_l(at*8Qo#N+v+^7f&b=P_qk$$(vYvWC{DiWkNlw z!->(0FuEy?(l1|GmZH&!_x!b@;FED%Um>IyuyGoX?XG!c1!A;4))gt0MB|1|U#aQ> zuSkLn6#_Ytpipbk?I#RCNTBb}c9xF}KNlzNZzJoCYrPRmHC=OgH#}Gj)rs=^4EZL| zPsNdxKJYXwh?Qc+lV$PF)MtCSQKcYGTo_0yr80k+J=RHUSbq>I)>gbtH8SFJXi+0k z-s1e)R*8r-DR@@fv0-1RdyW#2m7jL)taw!X%?Mk{&27u?CFO5`)rXn8j-T&Y46<&| z^^&t)q;f8nlK&V8)}Q?`)I~EN^t8S<7;Jvk{(FRZe&O-S_vvQlwq48UJ_CnZY(PT6 zwy3jQ=4oW9=M|I6PoU(5)A1ru!5Z5v0=H$c=7DD@r)DGnLh-VF-N&~{QBD$u1dys1 zIH*qL^&!Wq{S?JM)R)a(kf|wB7pGW;g&H5a+O&5#8he_5R)TebZK(~2aN-hdH~~Kn z?HM#CkAdp!#V*+F{wM!VsG2Ulc4^6C*fXJtKfTj^+!Z@&z=TU5y`H9hLndE6q>Vf` zdyc62>6vHf1B52F=)O3vt;(zm-EWM0DSeEp6iy2mp`~6DD^5dvgn3Yo1=(G2Fy!2v zDGxNTymSb7%cS%2JM-^*{Y;qmZafs9t#UwZVc#TtOGisVpO<^x3u$TDI&4fVEeyn# zo5AnuVR_0WL>b^uQwt6`T1`-9kr5E@sd#HHhbfn~H?uia8~)LL`dUM)*U$FF#mE<# zgfk5Yu$~zDuyu9NqhQxQ{=?bpvz2g|lUXm*_v0CA&CQa#FOzh1q`rAdARD!{(A6I| zs{{GBI@Qf1Q$ZB#5WD->&R@w*Gt@O-O2WlJT_890>YtYmAtilGh>p6ZQ2t2g{FcfQ z9q!PI76?Jsl~d2X_~Vi?-pO@c`zM3~(Rqv&d^i*!<%dxDHI z97!=(H(m%+M7P{D??pSQ$T;lJN;1ZAs$y-UNdge8BJD^|E9G1LQ`-_d4|Wxz8TSYyuB)^C@_M?2w1FPEU%gw`x6SBN z6lDSrO}_lmdb576IX1=KN`n*JF|=DS&OD**vzyrVgO#ZNZslqF-vHZUQq-h>?ouVt z15cNu(MkL~&+xl#{Jj24u`4vlUuu>q-l6Zi*C)*-vcV6^y`DpQOyn~DTh~=yp@T_g z7wx`I;mGtv=QQCYe649{Pvexj7K=29==tISCOI&d7C9(;>(umeu-K zF%h9VZPkkJgAM^e3ZJ3yaXO#!GW}zwCva3w2(N?&UJ_*$iiG+za`Z&7z%y~?-%1A{ zGqW!{;qPO;)!s&)MMRf+hO`Bp>E16P9QNJJ;4cNIvt`aUKig6H(`ebE=~iT(!!>J4 z)E3}>m{pF!=%d8He7D-8HGqMqtNHn(T-{p^ue zZq}Fn(7T~nCEp$fe3Xp3r*leVp5vnhb#1C|CQdPoL3XFx)Ug$>7`W(Vlj&otX|Qi8 zN46>p;Vxao1)Jh63N|OcCH9e3(USfiRAU($|Ixxmbh_ewDO*)r8J}OLjx=41u_?oU z7e61=aOA^2U#Cz}43dKxUJImWat|?o^Mw-oB2c;6P4BRjRwslaEpjDws(1*ef%*MW zRpn%y#WAbVTu6+Vm)5<1M;};-ba|Vl+ZLAIGhhnD@El!QE`M!3E*({LVm_MpI`!=F z!}&l`SEt7@gxUxv%?lN7w(F$LkDB)yN@4I#$`QZE2NMkEdLjH^YrvE z*{(KuIV6~*eD2OTy!Vwd*Fv$!&6zJbn32DY8C5P13Jtiq9h=xA*pRWfon}=UP11~q zOny<23!pZ?gZuV4$*j;8T~(KXD7MnzGc}M!y;WE!ZGz$BEcUhw9W|U!PhVlWEPg~m zzuc0j*W3SBHLH?$%u&UwFnSKNhu)%k+F2Jj#1vVvJ!|`29QgfW_{)ScUQ$$EA=;Q; zRK#{hf2{E3HybE=A+yB%`#L#Nvx}l&+X5-c^bC2SU+mgZd3%%H#04&Wi>pCgSV!5M z%>2RA>B?#Hf<7sgOdjLQoDaHm>vNk&0mi!vVa-9v{vfN{{@#**G1Li~gbH@Q<0a?) z_R5=J%!WIRy5Z5cjmcD6A}11$^V>mI8%Z10L)C42t#9gsPFL$|jC|$BOhf`Wk(u_+ zzT!t{(d2Xl)NTnhrBO{}C&%auU%NQgb(J1VVJD11xS7^^5og<>xg0l@BXQ{Tn7xYQ zt5y>oq0sW9GAWa|cPcnYB$3YtsKurj`g|C@V!~I^OafYW<$74ExLIww3dBWslUEj} zrXq8OEH^uE2~CvUoM%u5T<9cPn&0v_Z4ZXb7xPe{-43>RPs@&SLYho|CWW|YYql1f z@?XXGx1IsK?T~{i^*fK9o~d`DSvgsl6^qYw9RMWr^K*}eR);%gFk$MwzEWdz7?MKM ziEP#5>ZlS+qNZ>${;WKJo&?urFDXAr(de9Xjbq9JHNCTEBAL=r0{R8dFhgVGAfW zXO}vRF=t^fBJrWl?G1aGDG^!+iZK>U=fdRa=k8^zRq?Ev#eY0Zgr|wRs_~RAsG-vm> z+_qZH$_|6sEL!!6e?-dNvspgHT>wL^0AFJ;JpfySI?&DP-nIf?DM?9-Y(P4p%z;J- z@p^8%;1A`)h=1c7%%$5qf0IHCW^Cxwh3|$3^`Y{y6J)`L(s(p4AhS<0=+XlZoJm2W z+j3Eyl8i6rrggJBDtz_gbFA;w+*_F23+6FDBFaT_Zc1R@nC!L6?S zK1X~lo2dUtc^1hx9WWG*2wUOR;C`zY&Ya3RM*4$$xUjgWG_bs4MkBy%5ni~jG$2-q z>Lj^;m+VOdmBy}j4mx+15iYmpBfSl<#g2JXT)bVWAgh!%w9d|6qThZ5LZMGq-4VKY zhgbV5Pos7=V*eO%VJ|C1mxt?Z>8vq3sycozptH2saa|xLUjk%nv9{j$IOrX9rRRj< zMqL?-mGHmyU;iH^V!vLHyEmjuk8 + + + + method + debugging + + diff --git a/src-tauri/gen/apple/LaunchScreen.storyboard b/src-tauri/gen/apple/LaunchScreen.storyboard new file mode 100644 index 0000000..81b5f90 --- /dev/null +++ b/src-tauri/gen/apple/LaunchScreen.storyboard @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src-tauri/gen/apple/Podfile b/src-tauri/gen/apple/Podfile new file mode 100644 index 0000000..f7f066d --- /dev/null +++ b/src-tauri/gen/apple/Podfile @@ -0,0 +1,21 @@ +# Uncomment the next line to define a global platform for your project + +target 'margin-calendar_iOS' do +platform :ios, '14.0' + # Pods for margin-calendar_iOS +end + +target 'margin-calendar_macOS' do +platform :osx, '11.0' + # Pods for margin-calendar_macOS +end + +# Delete the deployment target for iOS and macOS, causing it to be inherited from the Podfile +post_install do |installer| + installer.pods_project.targets.each do |target| + target.build_configurations.each do |config| + config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET' + config.build_settings.delete 'MACOSX_DEPLOYMENT_TARGET' + end + end +end diff --git a/src-tauri/gen/apple/Sources/margin-calendar/bindings/bindings.h b/src-tauri/gen/apple/Sources/margin-calendar/bindings/bindings.h new file mode 100644 index 0000000..5152200 --- /dev/null +++ b/src-tauri/gen/apple/Sources/margin-calendar/bindings/bindings.h @@ -0,0 +1,8 @@ +#pragma once + +namespace ffi { + extern "C" { + void start_app(); + } +} + diff --git a/src-tauri/gen/apple/Sources/margin-calendar/main.mm b/src-tauri/gen/apple/Sources/margin-calendar/main.mm new file mode 100644 index 0000000..7793a9d --- /dev/null +++ b/src-tauri/gen/apple/Sources/margin-calendar/main.mm @@ -0,0 +1,6 @@ +#include "bindings/bindings.h" + +int main(int argc, char * argv[]) { + ffi::start_app(); + return 0; +} diff --git a/src-tauri/gen/apple/margin-calendar.xcodeproj/project.pbxproj b/src-tauri/gen/apple/margin-calendar.xcodeproj/project.pbxproj new file mode 100644 index 0000000..9bc76d1 --- /dev/null +++ b/src-tauri/gen/apple/margin-calendar.xcodeproj/project.pbxproj @@ -0,0 +1,518 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 77; + objects = { + +/* Begin PBXBuildFile section */ + 027A8ABDBEF8BBD53B7567E0 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DE35A9DF9BD78C3583E7FC5A /* CoreGraphics.framework */; }; + 301C79BAC9680139BDA2B1B9 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0481146F91F640D48193D38B /* Metal.framework */; }; + 6EBA510B4387F78D53CD3E07 /* libapp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AE625022A492F5C76B797AC2 /* libapp.a */; }; + 742DD5E8169EE4583B151E73 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DA270EEE52796CFD8EC281A /* Security.framework */; }; + 7E481312148309B8AA94B95C /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 65E80ECEB0844651FB03158B /* main.mm */; }; + 89071E2C472ACC0F43105CEA /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9E2CB1CFED1CED2BECCBB94 /* QuartzCore.framework */; }; + 9191DAC879BEE67BC864E01D /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C57E62E8D422566DF7D919FD /* WebKit.framework */; }; + 92277B81E1BC594DEDA75316 /* MetalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 245C8245C8B384E2FF25C48B /* MetalKit.framework */; }; + CC28802C3A0B94C1DDA4C5C4 /* assets in Resources */ = {isa = PBXBuildFile; fileRef = 8879346700D62B7DDE676FB9 /* assets */; }; + D3611CD2631DCF0504874997 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 42AC5D9341EC41579150A559 /* LaunchScreen.storyboard */; }; + ECFE37538824122085E847BB /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 463516468F6D0DFDE911E397 /* Assets.xcassets */; }; + F93C0964D01061FFB2C16E2B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4B92AAC82F707F343DF3F9F /* UIKit.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 00DFE6DD99BE0C3AEAB97944 /* recur.rs */ = {isa = PBXFileReference; path = recur.rs; sourceTree = ""; }; + 0481146F91F640D48193D38B /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; }; + 04B2978EA3C716D6EB74712D /* transport.rs */ = {isa = PBXFileReference; path = transport.rs; sourceTree = ""; }; + 06C647F836A02A8532C617DA /* read.rs */ = {isa = PBXFileReference; path = read.rs; sourceTree = ""; }; + 11EB0C96B4964DD8EB696D63 /* api.rs */ = {isa = PBXFileReference; path = api.rs; sourceTree = ""; }; + 1578DA0D4DFD83FCFC7CD967 /* bindings.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bindings.h; sourceTree = ""; }; + 19E9713B598286F9A58F6524 /* auth.rs */ = {isa = PBXFileReference; path = auth.rs; sourceTree = ""; }; + 245C8245C8B384E2FF25C48B /* MetalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MetalKit.framework; path = System/Library/Frameworks/MetalKit.framework; sourceTree = SDKROOT; }; + 42975F72473A262C8DC12B2D /* model.rs */ = {isa = PBXFileReference; path = model.rs; sourceTree = ""; }; + 42AC5D9341EC41579150A559 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = ""; }; + 463516468F6D0DFDE911E397 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 482B1BACC9A878BD6000F332 /* tests.rs */ = {isa = PBXFileReference; path = tests.rs; sourceTree = ""; }; + 5F2BD57CDF2418F2114AC00F /* mod.rs */ = {isa = PBXFileReference; path = mod.rs; sourceTree = ""; }; + 601DA7E7CE0314ED76601AB8 /* library.rs */ = {isa = PBXFileReference; path = library.rs; sourceTree = ""; }; + 63440E6A8AA7263282FF0880 /* schema.rs */ = {isa = PBXFileReference; path = schema.rs; sourceTree = ""; }; + 65E80ECEB0844651FB03158B /* main.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = ""; }; + 6DA270EEE52796CFD8EC281A /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; + 75B8603218CF087545CA23FE /* margin-calendar_iOS.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = "margin-calendar_iOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7C24690CAAB5FC9E1015052A /* main.rs */ = {isa = PBXFileReference; path = main.rs; sourceTree = ""; }; + 7DF7225718DEED80CC685D70 /* secrets.rs */ = {isa = PBXFileReference; path = secrets.rs; sourceTree = ""; }; + 83A2962170C125E12A298599 /* mod.rs */ = {isa = PBXFileReference; path = mod.rs; sourceTree = ""; }; + 8879346700D62B7DDE676FB9 /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; path = assets; sourceTree = SOURCE_ROOT; }; + 9FDB21551CF4959451A03485 /* pull.rs */ = {isa = PBXFileReference; path = pull.rs; sourceTree = ""; }; + A19747E3FB043C2FC441866B /* margin-calendar_iOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "margin-calendar_iOS.entitlements"; sourceTree = ""; }; + A2B433E2EAB81F688739BD72 /* push.rs */ = {isa = PBXFileReference; path = push.rs; sourceTree = ""; }; + A4B92AAC82F707F343DF3F9F /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + AE625022A492F5C76B797AC2 /* libapp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libapp.a; sourceTree = ""; }; + AF43A8B9F86EC0EE625D5AC0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + BB370CF51946E1086F725448 /* dto.rs */ = {isa = PBXFileReference; path = dto.rs; sourceTree = ""; }; + C2072E3C608C4C15356BFD25 /* sync.rs */ = {isa = PBXFileReference; path = sync.rs; sourceTree = ""; }; + C57E62E8D422566DF7D919FD /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; + C9E2CB1CFED1CED2BECCBB94 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + D903EBABA83CD7E1EFE1DAF5 /* write.rs */ = {isa = PBXFileReference; path = write.rs; sourceTree = ""; }; + DE35A9DF9BD78C3583E7FC5A /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + E8E713A134B354F21DEF913B /* lib.rs */ = {isa = PBXFileReference; path = lib.rs; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 763B09C9EE617B71EF7F11D4 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 6EBA510B4387F78D53CD3E07 /* libapp.a in Frameworks */, + 027A8ABDBEF8BBD53B7567E0 /* CoreGraphics.framework in Frameworks */, + 301C79BAC9680139BDA2B1B9 /* Metal.framework in Frameworks */, + 92277B81E1BC594DEDA75316 /* MetalKit.framework in Frameworks */, + 89071E2C472ACC0F43105CEA /* QuartzCore.framework in Frameworks */, + 742DD5E8169EE4583B151E73 /* Security.framework in Frameworks */, + F93C0964D01061FFB2C16E2B /* UIKit.framework in Frameworks */, + 9191DAC879BEE67BC864E01D /* WebKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 08BDFB2F8332AB5AE4C89430 /* store */ = { + isa = PBXGroup; + children = ( + 83A2962170C125E12A298599 /* mod.rs */, + 06C647F836A02A8532C617DA /* read.rs */, + 63440E6A8AA7263282FF0880 /* schema.rs */, + D903EBABA83CD7E1EFE1DAF5 /* write.rs */, + ); + path = store; + sourceTree = ""; + }; + 1DFBF6D830071E5D1FE33720 /* margin-calendar_iOS */ = { + isa = PBXGroup; + children = ( + AF43A8B9F86EC0EE625D5AC0 /* Info.plist */, + A19747E3FB043C2FC441866B /* margin-calendar_iOS.entitlements */, + ); + path = "margin-calendar_iOS"; + sourceTree = ""; + }; + 2717CB47409E376228915D92 = { + isa = PBXGroup; + children = ( + 8879346700D62B7DDE676FB9 /* assets */, + 463516468F6D0DFDE911E397 /* Assets.xcassets */, + 42AC5D9341EC41579150A559 /* LaunchScreen.storyboard */, + 701F7017030A43C5B1F02E43 /* Externals */, + 1DFBF6D830071E5D1FE33720 /* margin-calendar_iOS */, + F2D7B8DA6405BBC1A306E0F5 /* Sources */, + C66369FCC7BD73AD6D6B329D /* src */, + 7B0CEBED082C2704D1AE2349 /* Frameworks */, + FD095DBA118C3E02B31F8572 /* Products */, + ); + sourceTree = ""; + }; + 31E412A61C3C36BBEA22CAB4 /* sync */ = { + isa = PBXGroup; + children = ( + 42975F72473A262C8DC12B2D /* model.rs */, + 9FDB21551CF4959451A03485 /* pull.rs */, + A2B433E2EAB81F688739BD72 /* push.rs */, + 482B1BACC9A878BD6000F332 /* tests.rs */, + 04B2978EA3C716D6EB74712D /* transport.rs */, + ); + path = sync; + sourceTree = ""; + }; + 701F7017030A43C5B1F02E43 /* Externals */ = { + isa = PBXGroup; + children = ( + ); + path = Externals; + sourceTree = ""; + }; + 7B0CEBED082C2704D1AE2349 /* Frameworks */ = { + isa = PBXGroup; + children = ( + DE35A9DF9BD78C3583E7FC5A /* CoreGraphics.framework */, + AE625022A492F5C76B797AC2 /* libapp.a */, + 0481146F91F640D48193D38B /* Metal.framework */, + 245C8245C8B384E2FF25C48B /* MetalKit.framework */, + C9E2CB1CFED1CED2BECCBB94 /* QuartzCore.framework */, + 6DA270EEE52796CFD8EC281A /* Security.framework */, + A4B92AAC82F707F343DF3F9F /* UIKit.framework */, + C57E62E8D422566DF7D919FD /* WebKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 819B89450E4EF4F878332BE3 /* bindings */ = { + isa = PBXGroup; + children = ( + 1578DA0D4DFD83FCFC7CD967 /* bindings.h */, + ); + path = bindings; + sourceTree = ""; + }; + 8465EC9E3B20D359B37ED5CC /* google */ = { + isa = PBXGroup; + children = ( + 11EB0C96B4964DD8EB696D63 /* api.rs */, + 19E9713B598286F9A58F6524 /* auth.rs */, + 5F2BD57CDF2418F2114AC00F /* mod.rs */, + 7DF7225718DEED80CC685D70 /* secrets.rs */, + ); + path = google; + sourceTree = ""; + }; + C66369FCC7BD73AD6D6B329D /* src */ = { + isa = PBXGroup; + children = ( + BB370CF51946E1086F725448 /* dto.rs */, + E8E713A134B354F21DEF913B /* lib.rs */, + 601DA7E7CE0314ED76601AB8 /* library.rs */, + 7C24690CAAB5FC9E1015052A /* main.rs */, + 00DFE6DD99BE0C3AEAB97944 /* recur.rs */, + C2072E3C608C4C15356BFD25 /* sync.rs */, + 8465EC9E3B20D359B37ED5CC /* google */, + 08BDFB2F8332AB5AE4C89430 /* store */, + 31E412A61C3C36BBEA22CAB4 /* sync */, + ); + name = src; + path = ../../src; + sourceTree = ""; + }; + C7CA186F2513338D60A6B00E /* margin-calendar */ = { + isa = PBXGroup; + children = ( + 65E80ECEB0844651FB03158B /* main.mm */, + 819B89450E4EF4F878332BE3 /* bindings */, + ); + path = "margin-calendar"; + sourceTree = ""; + }; + F2D7B8DA6405BBC1A306E0F5 /* Sources */ = { + isa = PBXGroup; + children = ( + C7CA186F2513338D60A6B00E /* margin-calendar */, + ); + path = Sources; + sourceTree = ""; + }; + FD095DBA118C3E02B31F8572 /* Products */ = { + isa = PBXGroup; + children = ( + 75B8603218CF087545CA23FE /* margin-calendar_iOS.app */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 44343353A6DEDC69656FAA54 /* margin-calendar_iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = E8ACAA0021FD841CDD504F34 /* Build configuration list for PBXNativeTarget "margin-calendar_iOS" */; + buildPhases = ( + D2BB0B9B44B3A2E1C386BFAD /* Build Rust Code */, + DEF597EC6F9C166B9E68C45C /* Sources */, + 066AEAE8FD82D64732953ED0 /* Resources */, + 763B09C9EE617B71EF7F11D4 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "margin-calendar_iOS"; + packageProductDependencies = ( + ); + productName = "margin-calendar_iOS"; + productReference = 75B8603218CF087545CA23FE /* margin-calendar_iOS.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + FBBBFD542B155C58C96B76B5 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1430; + TargetAttributes = { + }; + }; + buildConfigurationList = 94C3379210AAB44F71F32C5E /* Build configuration list for PBXProject "margin-calendar" */; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + Base, + en, + ); + mainGroup = 2717CB47409E376228915D92; + minimizedProjectReferenceProxies = 1; + preferredProjectObjectVersion = 77; + productRefGroup = FD095DBA118C3E02B31F8572 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 44343353A6DEDC69656FAA54 /* margin-calendar_iOS */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 066AEAE8FD82D64732953ED0 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ECFE37538824122085E847BB /* Assets.xcassets in Resources */, + D3611CD2631DCF0504874997 /* LaunchScreen.storyboard in Resources */, + CC28802C3A0B94C1DDA4C5C4 /* assets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + D2BB0B9B44B3A2E1C386BFAD /* Build Rust Code */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Build Rust Code"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(SRCROOT)/Externals/x86_64/${CONFIGURATION}/libapp.a", + "$(SRCROOT)/Externals/arm64/${CONFIGURATION}/libapp.a", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "pnpm tauri ios xcode-script -v --platform ${PLATFORM_DISPLAY_NAME:?} --sdk-root ${SDKROOT:?} --framework-search-paths \"${FRAMEWORK_SEARCH_PATHS:?}\" --header-search-paths \"${HEADER_SEARCH_PATHS:?}\" --gcc-preprocessor-definitions \"${GCC_PREPROCESSOR_DEFINITIONS:-}\" --configuration ${CONFIGURATION:?} ${FORCE_COLOR} ${ARCHS:?}"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + DEF597EC6F9C166B9E68C45C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E481312148309B8AA94B95C /* main.mm in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 68D6BB2FB85DAC1C8BAB279F /* debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "DEBUG=1", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = debug; + }; + 7E114EA455562314CA5392E8 /* release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + }; + name = release; + }; + C7BFE7ABB61BEFEA5FB5615D /* debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ARCHS = ( + arm64, + ); + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = "margin-calendar_iOS/margin-calendar_iOS.entitlements"; + CODE_SIGN_IDENTITY = "iPhone Developer"; + ENABLE_BITCODE = NO; + "EXCLUDED_ARCHS[sdk=iphoneos*]" = x86_64; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\".\"", + ); + INFOPLIST_FILE = "margin-calendar_iOS/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + "LIBRARY_SEARCH_PATHS[arch=arm64]" = "$(inherited) $(PROJECT_DIR)/Externals/arm64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(DEVELOPER_DIR)/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/$(PLATFORM_NAME) $(DEVELOPER_DIR)/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift-5.0/$(PLATFORM_NAME)"; + "LIBRARY_SEARCH_PATHS[arch=x86_64]" = "$(inherited) $(PROJECT_DIR)/Externals/x86_64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(DEVELOPER_DIR)/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/$(PLATFORM_NAME) $(DEVELOPER_DIR)/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift-5.0/$(PLATFORM_NAME)"; + PRODUCT_BUNDLE_IDENTIFIER = studio.margin.calendar; + PRODUCT_NAME = "Margin Calendar"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = arm64; + }; + name = debug; + }; + ED0652ADBD2F428F7C930D66 /* release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ARCHS = ( + arm64, + ); + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = "margin-calendar_iOS/margin-calendar_iOS.entitlements"; + CODE_SIGN_IDENTITY = "iPhone Developer"; + ENABLE_BITCODE = NO; + "EXCLUDED_ARCHS[sdk=iphoneos*]" = x86_64; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\".\"", + ); + INFOPLIST_FILE = "margin-calendar_iOS/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + "LIBRARY_SEARCH_PATHS[arch=arm64]" = "$(inherited) $(PROJECT_DIR)/Externals/arm64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(DEVELOPER_DIR)/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/$(PLATFORM_NAME) $(DEVELOPER_DIR)/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift-5.0/$(PLATFORM_NAME)"; + "LIBRARY_SEARCH_PATHS[arch=x86_64]" = "$(inherited) $(PROJECT_DIR)/Externals/x86_64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(DEVELOPER_DIR)/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/$(PLATFORM_NAME) $(DEVELOPER_DIR)/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift-5.0/$(PLATFORM_NAME)"; + PRODUCT_BUNDLE_IDENTIFIER = studio.margin.calendar; + PRODUCT_NAME = "Margin Calendar"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = arm64; + }; + name = release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 94C3379210AAB44F71F32C5E /* Build configuration list for PBXProject "margin-calendar" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 68D6BB2FB85DAC1C8BAB279F /* debug */, + 7E114EA455562314CA5392E8 /* release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = debug; + }; + E8ACAA0021FD841CDD504F34 /* Build configuration list for PBXNativeTarget "margin-calendar_iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C7BFE7ABB61BEFEA5FB5615D /* debug */, + ED0652ADBD2F428F7C930D66 /* release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = FBBBFD542B155C58C96B76B5 /* Project object */; +} diff --git a/src-tauri/gen/apple/margin-calendar.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/src-tauri/gen/apple/margin-calendar.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/src-tauri/gen/apple/margin-calendar.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/src-tauri/gen/apple/margin-calendar.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/src-tauri/gen/apple/margin-calendar.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..ac90d5a --- /dev/null +++ b/src-tauri/gen/apple/margin-calendar.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,10 @@ + + + + + BuildSystemType + Original + DisableBuildSystemDeprecationDiagnostic + + + diff --git a/src-tauri/gen/apple/margin-calendar.xcodeproj/xcshareddata/xcschemes/margin-calendar_iOS.xcscheme b/src-tauri/gen/apple/margin-calendar.xcodeproj/xcshareddata/xcschemes/margin-calendar_iOS.xcscheme new file mode 100644 index 0000000..c027c60 --- /dev/null +++ b/src-tauri/gen/apple/margin-calendar.xcodeproj/xcshareddata/xcschemes/margin-calendar_iOS.xcscheme @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src-tauri/gen/apple/margin-calendar_iOS/Info.plist b/src-tauri/gen/apple/margin-calendar_iOS/Info.plist new file mode 100644 index 0000000..67848fa --- /dev/null +++ b/src-tauri/gen/apple/margin-calendar_iOS/Info.plist @@ -0,0 +1,55 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 0.1.0 + CFBundleVersion + 0.1.0 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + arm64 + metal + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + CFBundleURLTypes + + + CFBundleURLSchemes + + studio.margin.calendar + + CFBundleURLName + studio.margin.calendar + + + + \ No newline at end of file diff --git a/src-tauri/gen/apple/margin-calendar_iOS/margin-calendar_iOS.entitlements b/src-tauri/gen/apple/margin-calendar_iOS/margin-calendar_iOS.entitlements new file mode 100644 index 0000000..21e2f8d --- /dev/null +++ b/src-tauri/gen/apple/margin-calendar_iOS/margin-calendar_iOS.entitlements @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src-tauri/gen/apple/project.yml b/src-tauri/gen/apple/project.yml new file mode 100644 index 0000000..764b1d5 --- /dev/null +++ b/src-tauri/gen/apple/project.yml @@ -0,0 +1,88 @@ +name: margin-calendar +options: + bundleIdPrefix: studio.margin.calendar + deploymentTarget: + iOS: 14.0 +fileGroups: [../../src] +configs: + debug: debug + release: release +settingGroups: + app: + base: + PRODUCT_NAME: Margin Calendar + PRODUCT_BUNDLE_IDENTIFIER: studio.margin.calendar +targetTemplates: + app: + type: application + sources: + - path: Sources + scheme: + environmentVariables: + RUST_BACKTRACE: full + RUST_LOG: info + settings: + groups: [app] +targets: + margin-calendar_iOS: + type: application + platform: iOS + sources: + - path: Sources + - path: Assets.xcassets + - path: Externals + - path: margin-calendar_iOS + - path: assets + buildPhase: resources + type: folder + - path: LaunchScreen.storyboard + info: + path: margin-calendar_iOS/Info.plist + properties: + LSRequiresIPhoneOS: true + UILaunchStoryboardName: LaunchScreen + UIRequiredDeviceCapabilities: [arm64, metal] + UISupportedInterfaceOrientations: + - UIInterfaceOrientationPortrait + - UIInterfaceOrientationLandscapeLeft + - UIInterfaceOrientationLandscapeRight + UISupportedInterfaceOrientations~ipad: + - UIInterfaceOrientationPortrait + - UIInterfaceOrientationPortraitUpsideDown + - UIInterfaceOrientationLandscapeLeft + - UIInterfaceOrientationLandscapeRight + CFBundleShortVersionString: 0.1.0 + CFBundleVersion: "0.1.0" + entitlements: + path: margin-calendar_iOS/margin-calendar_iOS.entitlements + scheme: + environmentVariables: + RUST_BACKTRACE: full + RUST_LOG: info + settings: + base: + ENABLE_BITCODE: false + ARCHS: [arm64] + VALID_ARCHS: arm64 + LIBRARY_SEARCH_PATHS[arch=x86_64]: $(inherited) $(PROJECT_DIR)/Externals/x86_64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(DEVELOPER_DIR)/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/$(PLATFORM_NAME) $(DEVELOPER_DIR)/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift-5.0/$(PLATFORM_NAME) + LIBRARY_SEARCH_PATHS[arch=arm64]: $(inherited) $(PROJECT_DIR)/Externals/arm64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(DEVELOPER_DIR)/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/$(PLATFORM_NAME) $(DEVELOPER_DIR)/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift-5.0/$(PLATFORM_NAME) + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES: true + EXCLUDED_ARCHS[sdk=iphoneos*]: x86_64 + groups: [app] + dependencies: + - framework: libapp.a + embed: false + - sdk: CoreGraphics.framework + - sdk: Metal.framework + - sdk: MetalKit.framework + - sdk: QuartzCore.framework + - sdk: Security.framework + - sdk: UIKit.framework + - sdk: WebKit.framework + preBuildScripts: + - script: pnpm tauri ios xcode-script -v --platform ${PLATFORM_DISPLAY_NAME:?} --sdk-root ${SDKROOT:?} --framework-search-paths "${FRAMEWORK_SEARCH_PATHS:?}" --header-search-paths "${HEADER_SEARCH_PATHS:?}" --gcc-preprocessor-definitions "${GCC_PREPROCESSOR_DEFINITIONS:-}" --configuration ${CONFIGURATION:?} ${FORCE_COLOR} ${ARCHS:?} + name: Build Rust Code + basedOnDependencyAnalysis: false + outputFiles: + - $(SRCROOT)/Externals/x86_64/${CONFIGURATION}/libapp.a + - $(SRCROOT)/Externals/arm64/${CONFIGURATION}/libapp.a \ No newline at end of file diff --git a/src-tauri/icons/128x128.png b/src-tauri/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..524fcb62aa33f6df57ffb867b6d6ae050365dfcd GIT binary patch literal 4175 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 Z<$ph}+@5G|^{W5?002ovPDHLkV1mlu|Lgz& literal 0 HcmV?d00001 diff --git a/src-tauri/icons/128x128@2x.png b/src-tauri/icons/128x128@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d2add17b92af98ee94a0567e4e68ac442b9c938a GIT binary patch literal 7753 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/32x32.png b/src-tauri/icons/32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..69b0d107f7c0b8dd30a9330ce1c3a160659c5157 GIT binary patch literal 1243 zcmV<11SI>3P)dZnm8W04R`@l=O?oG5;M#Crr5I`Qg(cN|NG6&&0lsB z9$RPxocnq8?2n9)X_{itjg-r{rNW-TW50U6-hX^P-zS9;G?d_i2s`iDKHqy4J5Qu1 zkB^UXpO~2Vg2Zd%Hk&@yRJqy?(^LdV?YUQZ9tO^1L8qsu#M>ku7Zemwety0X(-As3IT29Uz<6F> z9_{Vz2{_g%5{AMk0wz*az*u})JmFt9o(a(~sDb?~D=VX=r6npYEfq3ZSy=*jb#*1g z>lY#enT(7Kxxc%+ldGqvhsMXpsj{+CB4T}se;5JR3WvEc`t_WCIavRUIMK_E`Y5;5BoQ66RuoW6q3rZIjyTI(lM&D!YYa%rD=~W#dLx#Z~YRCTRQjBL@ z@K#4hdx`(_xGvdPi)YNS69E=5!w#kP0||RzvOuV{wUw5am+9!}NHW4+YGJgzyj-65 z_xCA2K0cHs=powT;$muVZ>QDORS_(2i{pVr&gwWigTR-q4VWk}Scp_=YHEu442bdd z^>ulp!j{qten8-(mO#`)DN+j{S_iQf1mtfB1*VPxWc`Q+%A->w_6N`5QmagHE6Op8-=W3S-wm42S>#002ovPDHLk FV1h4mOXvUq literal 0 HcmV?d00001 diff --git a/src-tauri/icons/64x64.png b/src-tauri/icons/64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..3090309b05bd6242384efcc3d899e84114f07446 GIT binary patch literal 2161 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 i07poGBPn-lMvx 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 bc}V{UGSTM@RYAwY00000NkvXXu0mjfOiF$A literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square284x284Logo.png b/src-tauri/icons/Square284x284Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1a0d3d137a90b5bbf763a98f61d9a3b467529159 GIT binary patch literal 9138 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square44x44Logo.png b/src-tauri/icons/Square44x44Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..cbaf50a9cbf6abd4e19128af28afcf11f93a1532 GIT binary patch literal 1637 zcmV-r2AcVaP)LLTqsCDviU(#kOY(j6v2&%8&_h2N}?bb^1-dR z5Wx{Q5)#3M8wm;0_ClOzTYJhqm8wqp`gQl~Z@2tkP`v5Zy{B%Sduw<$X1-XcYAiV= zNHt(aP&4t}O4TovCbO8b6%DX#%u8x&YLU%mD-Hw#sfk2su~;6xUa#BZ@f=06Z3eK7 zs*kE8Gc)tMU@-Vz)3i!@cG5MmTnKV!dg!`OxrL^=nP2w5fPdr3Ce;c%QkKR^F2FO)&R7MDMSg>pwsCrM(PrDFw_Rmpi(~O9xE>|XSKDp{EBD1 zmoo9lMglBoQHeP~1g6C%xnZ~4@zNYZps4J3Bk9 zoxlJrPE1&Ib>m$qs4#<}x558htm!#ODTcMRwXv?QE|!~{%ZOJjFE5XOpO~0nXJ=>V zw9MCG{ME}6H#z9JxjDA9w8SzpGQ!#dFcLIni&Qo5Mh{u)1U%c@+sh^=Cpl2J+s!=( zBPfN1h5TN0I1DfuWE9XLS=_^;)z#IkrKN@S_4To-sVSC|lfz|AEjTFuHj=@0G8m8? zhB2Sd$I{Z$*wN7u+uz@3O-)Vg>FJ3FPJMkn+uYn_4Gj%!YikSZ4MR#iK0b!YQp~WF zloYnMw#F(eD_L=IF?)D;;M`U^9Uu%A>cp3nVK#u(VkULLD=@IIu)wabuXzXH(Y?Jr z?j>B|HBbUWtya9lH&qsGp#!?06S`powqoV!xMneUL{0zz15d!~@T?Jk)sCyOXe%cX z=!~bt1^DLXh8sRTJ$>;W^e|iWve21uz%t3Vx3{yRq9Q(=25IR3#efK$Xfqmgg0nR> zH7{%=3@`xJ)z$Hu=mOmd1&mAqg(D*)JdYxXFqAStKofk=%F5zi+t}FP?;9H%d4L&> z2C@OD)!*OG^}i?LdF0D-etyp1M*@6zcgJhef=&+G^71k( zEiDcEK0ZFq1_lOr#z1FeHi-l{7SCS|SW-asqFOM0E88h9FKZ-S@$M1h0*u6t(%jt4 zDk>^Mo|BZ=-Q9g52QPz0(L9W)KH-3+7YYgrI290FE|)7T=rF}1=rD7kU@1vczTt!d zDqLJ#@OX&F)20AJIdbdZ;2^JN%fZ2cxlJ7DHp^w3**pn_i;IhFWo0F_+Aa!`$io;Ba31u+vNhU7^ihCO*4NkB%*;$o`R?v+ex074jwy?bl5oJX$n|f2 ze!gL%hli0@Wk4aNMOc`JCJw1HDOo}q23RA&7-sc7?!nJ!-ix%t`)I&oBgpTuaF;=7 z1OkB7HG%$FAINH2lS@$3fN_c_8fYq5aO~vdgad4CZROh}?8%G_$VHNxhcU_MJ15%$ zG`2|i4jTq*YE7ifM-^~TBzreC@Tfay2xEbLe08@fH6+zflD<42)Qsk)`60QiG?^92F%E2l!Cg?DFXC+q3y z32n2L<8^7&d##=`T5XfqxPM2S;@|yq_0|H)O4qo-;>afq%iEL3P9xU zAli0FT_i;dHtA&)%$x@Lyd-0%_dig+{z+ogbcYrW^2%Q%_|E7sP;TSnjqGTkc0#+#6fnV~f69E8 jzr8-oAB&&luiJkCQo-tJ!3vjr00000NkvXXu0mjfkJ0_A literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square71x71Logo.png b/src-tauri/icons/Square71x71Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e52c529dd48addf17517a4d9b02a71a3a30da238 GIT binary patch literal 2489 zcmV;q2}bsbP)F&%uHFbNQZFldoZ>wbhMXuOjfMd!RjUGL^hy|$N+ckVGnjPEP+ns6;K?6VxJH69!7LSge;tFJ~?KRm(jfVTWySOl-`U zF}2JqO?;olwNJkn@<8ZA$wMM%ALEnFgIki7l@)rV=zp0~7Qqh{H_QikUc}+z{MKof>2#Q1^jx`9+<2}5OcF>+rC5pDSL;DpTp#&|8XmVPk zN5+#5^VFobZ{O0kZQJP1ojY{&=utKDZot8NcpvScJ+zDVy-qLP&ovgu&`1Riu@_v7 zkU*Wv# z9d+u{Xchf}gi$c+C?7w5j1#jZ{IJy~D&DuYhqkN)t-}O2Q_DoZ`Tnkzcg!RK+jKW0 z!af7BQ>6qK0r5BW?a_a!3)2Drck&&H&r5sn-n~;?Bp`zDh1XmJs?+TxyKJ?3xFo9;zo~?uw>ptp-Gb_sn4)7OP4Nn4G!K%L3{J&&7<7h+&EAelt+&q(aV=F zY3$gswl#C0ejABiF^3C{tg4mVa3tNd5DRDG4yyR(;wF5AwO`Asb_4PD= z{(RcFaiddf*6&*m8Ny&HRaI5Rfw_PGJ~cHpsi`Dn368-t%a<>wr%#{K-o1O3Gv|bm z@f_MZaNqzk5JAWz`n3)%cp zd3m||+}74cD_5?h=g*&iVXYweiWMsqIM1FvqtmBPyVe?j3~=t=y-SxaU5d9a<^1{c zbnDhFnl)>dlI!^KS( z+1c3&RBNZ~#AO^D((c{6Y3;zo&_*Y-G8)$4&JzNgRWh>rmPm{W4>rd?nMrf%}WgCn^{Q} zEkihT1R5j!;C3+JCF6SlR;o_>6t(*cj#!XHuQi@P(V%!0UdTMrVoAGxu7vmoj=1)) zPF_gRi}ke15eRT(q-M;RK?@cvP^QxwE(}?Mn0*?!7Lda)4Kn=@3T4->U8)A9_>j&B zR$kaGSqF9ticFz1XU@=t3m0hIxN&jPOlN&W{lOFa_U)tM;$muTZB_TMZcfZF2>H#M zH?(fuI@+{plP^=-^dr_mxqbUKwY0RvbHq;li|yODD{#8Hx|H|pG^!SF8Jq)f{Kzr; zX071dp-h}OkzT)kt*HB5F@vL|9+)4;0?I? z){6fF9IPT#R#vJd8$T?|U=-i2m384Q)x4L{4Js(UgCjs7@T;q2&t&S-N`lsv_saWf)0ZJ%0RHg&H7U5VAajD>Mq#iI*!{7|6gA z+<^iY9-7eJ-mYpoK#>r~^AeBYiX0HKiB7GRRgOT#R&(dhrB$m|(fIM><9QsrP9QoY zD-^h{UcEZL9&XoPf#$$cLXN=2R$I4jRn;qRA$YxVooVA@55{m#ae9!$umeui$tFf2Ul6DytL$0|iQuhql*CpbSZkgqU6Ev&$RV;h z(4?pxaC+>JC@cz6nopiQQOhwKHf*3HM~bRIZ4v#I!ppSf_^^D3A;CIanv} zNed1Ra@lpd5KW&tbxLjZm^pK%TE{+i>{xsYirpcN_G1u{4;Dm`d34wr9^C z#X&ZJmNO9Tyo0?q@$7?w1GR?r%&iP-lR?6 z=FqF{naHwcF)+=nHD%IoTj#CxVb`|Id8@BqH1PtzyhUq*r<45wEB*Ss1GH?51}5oA zz3>3YnmFReb2y44f0mbxVXiR%Cd?Z1BlFC$fsRp!)2SW~iCO?MET@BqTY=mr0}}!; z%ro_R=0x2dohAVYhei4Rdj=^x;h?<{a7~Ho!}np$F=bj~Lg}dDfAxz53{16!VbNOG800000NkvXXu0mjf Dtb@K# literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square89x89Logo.png b/src-tauri/icons/Square89x89Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c62d23706b4c640055b173083d67aa55a2393485 GIT binary patch literal 3001 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

    KnaoR}wjHavj!bAnd7cAn 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 mJ2WlI1Ut$X*P5-dl`Vb&n_a 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 literal 0 HcmV?d00001 diff --git a/public/fonts/Literata-VF.ttf b/public/fonts/Literata-VF.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0a81b4984a4a4eb101e0ddc28babc85bb137efef GIT binary patch literal 955132 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%0A2b;ELnF~x@bUhr8nwoi5Fd<3C-E_K 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