From c2626f3bbf2f44313c66dba27ffcf0542d26c0e5 Mon Sep 17 00:00:00 2001 From: Fernando Date: Thu, 16 Jul 2026 14:28:21 -0400 Subject: [PATCH 1/2] Port ground station into avionics monorepo --- .dockerignore | 15 + .github/workflows/ground-station.yml | 102 + .gitignore | 17 +- .vscode/extensions.json | 8 +- .vscode/settings.json | 5 +- Cargo.lock | 2197 ++++++++++++++++- Cargo.toml | 27 +- README.md | 16 +- apps/README.md | 12 +- apps/antenna-tracker/.python-version | 1 + apps/antenna-tracker/ARCHITECTURE.md | 183 ++ apps/antenna-tracker/Cargo.toml | 20 + apps/antenna-tracker/README.md | 95 + apps/antenna-tracker/antenna_service.py | 415 ++++ apps/antenna-tracker/example_pipeline.py | 401 +++ apps/antenna-tracker/fake_gps_ingest.py | 58 + apps/antenna-tracker/main.py | 431 ++++ apps/antenna-tracker/predictor_service.py | 388 +++ apps/antenna-tracker/pyproject.toml | 15 + apps/antenna-tracker/remote.py | 169 ++ apps/antenna-tracker/rocket_gps.jsonl | 1610 ++++++++++++ apps/antenna-tracker/src/main.rs | 179 ++ apps/antenna-tracker/tests/conftest.py | 7 + .../tests/test_continuous_unwrap.py | 71 + .../tests/test_pointing_math.py | 81 + apps/antenna-tracker/uv.lock | 698 ++++++ apps/command-dispatcher/Cargo.toml | 21 + apps/command-dispatcher/README.md | 66 + apps/command-dispatcher/src/cli.rs | 24 + apps/command-dispatcher/src/commands.rs | 211 ++ apps/command-dispatcher/src/dispatcher.rs | 124 + apps/command-dispatcher/src/health.rs | 49 + apps/command-dispatcher/src/keepalive.rs | 127 + apps/command-dispatcher/src/main.rs | 67 + apps/ground-station-web/.dockerignore | 21 + apps/ground-station-web/.eslintignore | 14 + apps/ground-station-web/.eslintrc.cjs | 30 + apps/ground-station-web/.gitignore | 16 + apps/ground-station-web/.prettierignore | 15 + apps/ground-station-web/.prettierrc | 8 + apps/ground-station-web/Dockerfile | 43 + apps/ground-station-web/README.md | 16 + apps/ground-station-web/bun.lock | 1457 +++++++++++ apps/ground-station-web/package.json | 87 + apps/ground-station-web/src/app.css | 393 +++ apps/ground-station-web/src/app.d.ts | 14 + apps/ground-station-web/src/app.html | 19 + apps/ground-station-web/src/hooks.server.ts | 113 + .../src/lib/assets/hydra_provider_logo.svg | 1 + .../src/lib/common/LRUCache.ts | 33 + .../src/lib/common/persistentStorage.ts | 54 + .../src/lib/common/settings.ts | 149 ++ .../src/lib/common/stringCmp.ts | 75 + .../src/lib/common/theme.ts | 36 + .../src/lib/common/utils.ts | 103 + .../lib/components/Common/ConfirmModal.svelte | 109 + .../Common/Timeline/Timeline.svelte | 173 ++ .../components/Common/ToastContainer.svelte | 32 + .../HeadingCompass/HeadingCompass.svelte | 178 ++ .../src/lib/components/Navball/NavBall.svelte | 37 + .../components/Navball/NavBallScene.svelte | 67 + .../Navball/NavBallShader/fragment.glsl | 20 + .../Navball/NavBallShader/vertex.glsl | 11 + .../src/lib/realtime/flightDirector.ts | 9 + .../src/lib/realtime/metrics.ts | 38 + .../src/lib/realtime/sse.test.ts | 16 + .../src/lib/realtime/sse.ts | 96 + .../src/lib/realtime/types.ts | 49 + apps/ground-station-web/src/lib/server/db.ts | 27 + .../src/lib/server/services.ts | 57 + apps/ground-station-web/src/lib/stores.ts | 29 + .../src/lib/stores/toastStore.ts | 33 + .../src/lib/stores/uiStore.ts | 3 + .../src/routes/+layout.svelte | 407 +++ apps/ground-station-web/src/routes/+layout.ts | 3 + .../src/routes/+page.svelte | 481 ++++ .../src/routes/altitude/+page.svelte | 248 ++ .../src/routes/altitude/api/+server.ts | 187 ++ .../src/routes/commands/+page.server.ts | 151 ++ .../src/routes/commands/+page.svelte | 310 +++ .../src/routes/debug/+layout.svelte | 9 + .../src/routes/debug/coord-mock/+page.svelte | 174 ++ .../routes/debug/coord-mock/api/+server.ts | 119 + .../src/routes/imu/+page.svelte | 255 ++ .../src/routes/imu/api/+server.ts | 187 ++ .../src/routes/map-downloader/+page.svelte | 481 ++++ .../src/routes/mock/+page.svelte | 356 +++ .../src/routes/mock/api/+server.ts | 76 + .../src/routes/mock/types.ts | 40 + .../src/routes/navball/+page.svelte | 103 + .../src/routes/navball/api/+server.ts | 129 + .../src/routes/overview/api/+server.ts | 219 ++ .../src/routes/radio/+page.svelte | 390 +++ .../src/routes/radio/api/+server.ts | 139 ++ .../src/routes/sbg/+page.server.ts | 58 + .../src/routes/sbg/+page.svelte | 306 +++ .../src/routes/sbg/api/+server.ts | 220 ++ .../src/routes/services/+page.svelte | 500 ++++ .../src/routes/services/api/+server.ts | 32 + .../src/routes/services/logs/+page.svelte | 343 +++ .../src/routes/services/logs/api/+server.ts | 93 + .../routes/services/logs/stream/+server.ts | 235 ++ .../src/routes/settings/+page.svelte | 103 + .../settings/components/BooleanSetting.svelte | 17 + .../settings/components/EnumSetting.svelte | 25 + .../settings/components/NumberSetting.svelte | 26 + .../settings/components/StringSetting.svelte | 23 + .../components/UnsupportedSetting.svelte | 14 + .../src/routes/state/+page.svelte | 276 +++ .../src/routes/state/api/+server.ts | 160 ++ .../src/routes/trajectory/+page.svelte | 374 +++ .../src/routes/trajectory/api/+server.ts | 140 ++ .../appspecific/com.chrome.devtools.json | 1 + .../static/android-chrome-192x192.png | Bin 0 -> 17697 bytes .../static/android-chrome-512x512.png | Bin 0 -> 70537 bytes .../static/apple-touch-icon.png | Bin 0 -> 15781 bytes .../static/favicon-16x16.png | Bin 0 -> 744 bytes .../static/favicon-32x32.png | Bin 0 -> 1806 bytes apps/ground-station-web/static/favicon.ico | Bin 0 -> 15406 bytes apps/ground-station-web/static/icon_bg.png | Bin 0 -> 9701 bytes .../static/models/rocket.glb | Bin 0 -> 36752 bytes .../static/site.webmanifest | 11 + .../static/textures/cubemap/road.hdr | Bin 0 -> 1482793 bytes .../static/textures/navball.png | Bin 0 -> 92315 bytes apps/ground-station-web/svelte.config.js | 15 + apps/ground-station-web/tsconfig.json | 12 + apps/ground-station-web/vite.config.ts | 43 + apps/sergw/Cargo.toml | 2 +- apps/telemetry-ingestor/Cargo.toml | 21 + apps/telemetry-ingestor/README.md | 50 + .../src/connection_manager.rs | 34 + apps/telemetry-ingestor/src/heartbeat.rs | 41 + apps/telemetry-ingestor/src/main.rs | 62 + .../telemetry-ingestor/src/message_handler.rs | 108 + apps/telemetry-ingestor/src/savers/argus.rs | 41 + .../src/savers/barometer.rs | 15 + apps/telemetry-ingestor/src/savers/command.rs | 107 + apps/telemetry-ingestor/src/savers/event.rs | 28 + apps/telemetry-ingestor/src/savers/imu.rs | 44 + apps/telemetry-ingestor/src/savers/log.rs | 17 + .../telemetry-ingestor/src/savers/madgwick.rs | 24 + apps/telemetry-ingestor/src/savers/message.rs | 142 ++ apps/telemetry-ingestor/src/savers/mod.rs | 11 + apps/telemetry-ingestor/src/savers/radio.rs | 15 + apps/telemetry-ingestor/src/savers/sbg.rs | 182 ++ apps/telemetry-ingestor/src/savers/state.rs | 28 + apps/tile-provider/.dockerignore | 11 + apps/tile-provider/.gitignore | 6 + apps/tile-provider/Dockerfile | 23 + apps/tile-provider/README.md | 17 + apps/tile-provider/bun.lockb | Bin 0 -> 5078 bytes apps/tile-provider/client/index.ts | 931 +++++++ apps/tile-provider/index.ts | 208 ++ apps/tile-provider/lib/config.test.ts | 13 + apps/tile-provider/lib/config.ts | 36 + apps/tile-provider/lib/database.test.ts | 51 + apps/tile-provider/lib/database.ts | 158 ++ apps/tile-provider/lib/downloadQueue.test.ts | 34 + apps/tile-provider/lib/downloadQueue.ts | 273 ++ apps/tile-provider/package.json | 21 + apps/tile-provider/public/index.html | 27 + apps/tile-provider/tsconfig.json | 22 + common/drivers/src/lib.rs | 2 +- deployments/ground-station/README.md | 29 + deployments/ground-station/compose.yaml | 167 ++ deployments/ground-station/db/.gitignore | 174 ++ deployments/ground-station/db/README.md | 15 + deployments/ground-station/db/bun.lockb | Bin 0 -> 15272 bytes deployments/ground-station/db/index.test.ts | 19 + deployments/ground-station/db/index.ts | 60 + deployments/ground-station/db/package.json | 15 + deployments/ground-station/db/seed.sql | 366 +++ deployments/ground-station/db/sql.ts | 64 + deployments/ground-station/db/tsconfig.json | 27 + .../docker/Dockerfile.rust-service | 32 + docs/ground-station/architecture.md | 29 + .../hands-on/modifying-the-database.md | 16 + docs/ground-station/index.md | 12 + docs/ground-station/next-steps.md | 3 + docs/ground-station/requirements/bun.md | 25 + .../requirements/development-environment.md | 12 + docs/ground-station/requirements/docker.md | 20 + docs/ground-station/requirements/index.md | 10 + docs/ground-station/requirements/rust.md | 8 + docs/ground-station/web/index.md | 13 + tools/ground-station/README.md | 11 + .../manual-command-dispatcher/Cargo.toml | 19 + .../manual-command-dispatcher/src/args.rs | 19 + .../manual-command-dispatcher/src/commands.rs | 109 + .../manual-command-dispatcher/src/main.rs | 196 ++ .../src/messages/display.rs | 173 ++ .../src/transport.rs | 100 + .../manual-command-dispatcher/src/ui/mod.rs | 141 ++ tools/ground-station/remote-test/README.md | 37 + tools/ground-station/remote-test/remote.py | 172 ++ tools/ground-station/sbg-test/.gitignore | 4 + tools/ground-station/sbg-test/.python-version | 1 + tools/ground-station/sbg-test/README.md | 49 + .../sbg-test/build_sbg_utils.py | 175 ++ tools/ground-station/sbg-test/fix_perms.py | 87 + tools/ground-station/sbg-test/foo.py | 83 + .../sbg-test/gps_orientation.py | 225 ++ .../sbg-test/latest_measurement.py | 328 +++ tools/ground-station/sbg-test/main.py | 305 +++ tools/ground-station/sbg-test/pyproject.toml | 9 + tools/ground-station/sbg-test/sbg_reader.py | 485 ++++ tools/ground-station/sbg-test/uv.lock | 132 + .../scripts/port_prog_finder.sh | 9 + tools/ground-station/scripts/postcreate.sh | 19 + .../scripts/requirements/0_dev_deps.sh | 14 + tools/ground-station/ssh-setup/README.md | 130 + tools/ground-station/ssh-setup/bootstrap.py | 293 +++ tools/ground-station/ssh-setup/server.py | 161 ++ tools/ground-station/tenna-manual/README.md | 0 tools/ground-station/tenna-manual/manual.py | 466 ++++ .../tenna-manual/pyproject.toml | 9 + tools/ground-station/tenna-manual/remote.py | 169 ++ tools/ground-station/tenna-setup/README.md | 3 + tools/ground-station/tenna-setup/bluetooth.sh | 26 + tools/ground-station/tenna-setup/setup.sh | 36 + .../ground-station/virtual-serial/Cargo.toml | 15 + .../ground-station/virtual-serial/src/main.rs | 49 + 222 files changed, 27167 insertions(+), 95 deletions(-) create mode 100644 .dockerignore create mode 100644 .github/workflows/ground-station.yml create mode 100755 apps/antenna-tracker/.python-version create mode 100755 apps/antenna-tracker/ARCHITECTURE.md create mode 100755 apps/antenna-tracker/Cargo.toml create mode 100755 apps/antenna-tracker/README.md create mode 100755 apps/antenna-tracker/antenna_service.py create mode 100755 apps/antenna-tracker/example_pipeline.py create mode 100644 apps/antenna-tracker/fake_gps_ingest.py create mode 100755 apps/antenna-tracker/main.py create mode 100755 apps/antenna-tracker/predictor_service.py create mode 100755 apps/antenna-tracker/pyproject.toml create mode 100755 apps/antenna-tracker/remote.py create mode 100644 apps/antenna-tracker/rocket_gps.jsonl create mode 100755 apps/antenna-tracker/src/main.rs create mode 100644 apps/antenna-tracker/tests/conftest.py create mode 100644 apps/antenna-tracker/tests/test_continuous_unwrap.py create mode 100644 apps/antenna-tracker/tests/test_pointing_math.py create mode 100755 apps/antenna-tracker/uv.lock create mode 100755 apps/command-dispatcher/Cargo.toml create mode 100755 apps/command-dispatcher/README.md create mode 100755 apps/command-dispatcher/src/cli.rs create mode 100755 apps/command-dispatcher/src/commands.rs create mode 100755 apps/command-dispatcher/src/dispatcher.rs create mode 100755 apps/command-dispatcher/src/health.rs create mode 100644 apps/command-dispatcher/src/keepalive.rs create mode 100755 apps/command-dispatcher/src/main.rs create mode 100755 apps/ground-station-web/.dockerignore create mode 100755 apps/ground-station-web/.eslintignore create mode 100755 apps/ground-station-web/.eslintrc.cjs create mode 100755 apps/ground-station-web/.gitignore create mode 100755 apps/ground-station-web/.prettierignore create mode 100755 apps/ground-station-web/.prettierrc create mode 100755 apps/ground-station-web/Dockerfile create mode 100755 apps/ground-station-web/README.md create mode 100644 apps/ground-station-web/bun.lock create mode 100755 apps/ground-station-web/package.json create mode 100644 apps/ground-station-web/src/app.css create mode 100755 apps/ground-station-web/src/app.d.ts create mode 100755 apps/ground-station-web/src/app.html create mode 100755 apps/ground-station-web/src/hooks.server.ts create mode 100755 apps/ground-station-web/src/lib/assets/hydra_provider_logo.svg create mode 100755 apps/ground-station-web/src/lib/common/LRUCache.ts create mode 100755 apps/ground-station-web/src/lib/common/persistentStorage.ts create mode 100755 apps/ground-station-web/src/lib/common/settings.ts create mode 100755 apps/ground-station-web/src/lib/common/stringCmp.ts create mode 100755 apps/ground-station-web/src/lib/common/theme.ts create mode 100755 apps/ground-station-web/src/lib/common/utils.ts create mode 100644 apps/ground-station-web/src/lib/components/Common/ConfirmModal.svelte create mode 100755 apps/ground-station-web/src/lib/components/Common/Timeline/Timeline.svelte create mode 100755 apps/ground-station-web/src/lib/components/Common/ToastContainer.svelte create mode 100755 apps/ground-station-web/src/lib/components/HeadingCompass/HeadingCompass.svelte create mode 100755 apps/ground-station-web/src/lib/components/Navball/NavBall.svelte create mode 100755 apps/ground-station-web/src/lib/components/Navball/NavBallScene.svelte create mode 100755 apps/ground-station-web/src/lib/components/Navball/NavBallShader/fragment.glsl create mode 100755 apps/ground-station-web/src/lib/components/Navball/NavBallShader/vertex.glsl create mode 100755 apps/ground-station-web/src/lib/realtime/flightDirector.ts create mode 100755 apps/ground-station-web/src/lib/realtime/metrics.ts create mode 100644 apps/ground-station-web/src/lib/realtime/sse.test.ts create mode 100644 apps/ground-station-web/src/lib/realtime/sse.ts create mode 100644 apps/ground-station-web/src/lib/realtime/types.ts create mode 100755 apps/ground-station-web/src/lib/server/db.ts create mode 100644 apps/ground-station-web/src/lib/server/services.ts create mode 100755 apps/ground-station-web/src/lib/stores.ts create mode 100755 apps/ground-station-web/src/lib/stores/toastStore.ts create mode 100755 apps/ground-station-web/src/lib/stores/uiStore.ts create mode 100644 apps/ground-station-web/src/routes/+layout.svelte create mode 100755 apps/ground-station-web/src/routes/+layout.ts create mode 100644 apps/ground-station-web/src/routes/+page.svelte create mode 100755 apps/ground-station-web/src/routes/altitude/+page.svelte create mode 100755 apps/ground-station-web/src/routes/altitude/api/+server.ts create mode 100755 apps/ground-station-web/src/routes/commands/+page.server.ts create mode 100755 apps/ground-station-web/src/routes/commands/+page.svelte create mode 100755 apps/ground-station-web/src/routes/debug/+layout.svelte create mode 100755 apps/ground-station-web/src/routes/debug/coord-mock/+page.svelte create mode 100755 apps/ground-station-web/src/routes/debug/coord-mock/api/+server.ts create mode 100755 apps/ground-station-web/src/routes/imu/+page.svelte create mode 100755 apps/ground-station-web/src/routes/imu/api/+server.ts create mode 100755 apps/ground-station-web/src/routes/map-downloader/+page.svelte create mode 100755 apps/ground-station-web/src/routes/mock/+page.svelte create mode 100755 apps/ground-station-web/src/routes/mock/api/+server.ts create mode 100755 apps/ground-station-web/src/routes/mock/types.ts create mode 100755 apps/ground-station-web/src/routes/navball/+page.svelte create mode 100755 apps/ground-station-web/src/routes/navball/api/+server.ts create mode 100644 apps/ground-station-web/src/routes/overview/api/+server.ts create mode 100755 apps/ground-station-web/src/routes/radio/+page.svelte create mode 100755 apps/ground-station-web/src/routes/radio/api/+server.ts create mode 100755 apps/ground-station-web/src/routes/sbg/+page.server.ts create mode 100755 apps/ground-station-web/src/routes/sbg/+page.svelte create mode 100755 apps/ground-station-web/src/routes/sbg/api/+server.ts create mode 100755 apps/ground-station-web/src/routes/services/+page.svelte create mode 100755 apps/ground-station-web/src/routes/services/api/+server.ts create mode 100755 apps/ground-station-web/src/routes/services/logs/+page.svelte create mode 100755 apps/ground-station-web/src/routes/services/logs/api/+server.ts create mode 100755 apps/ground-station-web/src/routes/services/logs/stream/+server.ts create mode 100644 apps/ground-station-web/src/routes/settings/+page.svelte create mode 100755 apps/ground-station-web/src/routes/settings/components/BooleanSetting.svelte create mode 100755 apps/ground-station-web/src/routes/settings/components/EnumSetting.svelte create mode 100755 apps/ground-station-web/src/routes/settings/components/NumberSetting.svelte create mode 100755 apps/ground-station-web/src/routes/settings/components/StringSetting.svelte create mode 100755 apps/ground-station-web/src/routes/settings/components/UnsupportedSetting.svelte create mode 100755 apps/ground-station-web/src/routes/state/+page.svelte create mode 100755 apps/ground-station-web/src/routes/state/api/+server.ts create mode 100755 apps/ground-station-web/src/routes/trajectory/+page.svelte create mode 100755 apps/ground-station-web/src/routes/trajectory/api/+server.ts create mode 100755 apps/ground-station-web/static/.well-known/appspecific/com.chrome.devtools.json create mode 100755 apps/ground-station-web/static/android-chrome-192x192.png create mode 100755 apps/ground-station-web/static/android-chrome-512x512.png create mode 100755 apps/ground-station-web/static/apple-touch-icon.png create mode 100755 apps/ground-station-web/static/favicon-16x16.png create mode 100755 apps/ground-station-web/static/favicon-32x32.png create mode 100755 apps/ground-station-web/static/favicon.ico create mode 100755 apps/ground-station-web/static/icon_bg.png create mode 100755 apps/ground-station-web/static/models/rocket.glb create mode 100755 apps/ground-station-web/static/site.webmanifest create mode 100755 apps/ground-station-web/static/textures/cubemap/road.hdr create mode 100755 apps/ground-station-web/static/textures/navball.png create mode 100755 apps/ground-station-web/svelte.config.js create mode 100755 apps/ground-station-web/tsconfig.json create mode 100755 apps/ground-station-web/vite.config.ts create mode 100755 apps/telemetry-ingestor/Cargo.toml create mode 100755 apps/telemetry-ingestor/README.md create mode 100755 apps/telemetry-ingestor/src/connection_manager.rs create mode 100755 apps/telemetry-ingestor/src/heartbeat.rs create mode 100755 apps/telemetry-ingestor/src/main.rs create mode 100755 apps/telemetry-ingestor/src/message_handler.rs create mode 100755 apps/telemetry-ingestor/src/savers/argus.rs create mode 100755 apps/telemetry-ingestor/src/savers/barometer.rs create mode 100755 apps/telemetry-ingestor/src/savers/command.rs create mode 100755 apps/telemetry-ingestor/src/savers/event.rs create mode 100755 apps/telemetry-ingestor/src/savers/imu.rs create mode 100755 apps/telemetry-ingestor/src/savers/log.rs create mode 100755 apps/telemetry-ingestor/src/savers/madgwick.rs create mode 100755 apps/telemetry-ingestor/src/savers/message.rs create mode 100755 apps/telemetry-ingestor/src/savers/mod.rs create mode 100755 apps/telemetry-ingestor/src/savers/radio.rs create mode 100755 apps/telemetry-ingestor/src/savers/sbg.rs create mode 100755 apps/telemetry-ingestor/src/savers/state.rs create mode 100755 apps/tile-provider/.dockerignore create mode 100755 apps/tile-provider/.gitignore create mode 100755 apps/tile-provider/Dockerfile create mode 100755 apps/tile-provider/README.md create mode 100755 apps/tile-provider/bun.lockb create mode 100755 apps/tile-provider/client/index.ts create mode 100755 apps/tile-provider/index.ts create mode 100755 apps/tile-provider/lib/config.test.ts create mode 100755 apps/tile-provider/lib/config.ts create mode 100755 apps/tile-provider/lib/database.test.ts create mode 100755 apps/tile-provider/lib/database.ts create mode 100755 apps/tile-provider/lib/downloadQueue.test.ts create mode 100755 apps/tile-provider/lib/downloadQueue.ts create mode 100755 apps/tile-provider/package.json create mode 100755 apps/tile-provider/public/index.html create mode 100755 apps/tile-provider/tsconfig.json create mode 100644 deployments/ground-station/README.md create mode 100644 deployments/ground-station/compose.yaml create mode 100755 deployments/ground-station/db/.gitignore create mode 100755 deployments/ground-station/db/README.md create mode 100755 deployments/ground-station/db/bun.lockb create mode 100755 deployments/ground-station/db/index.test.ts create mode 100755 deployments/ground-station/db/index.ts create mode 100755 deployments/ground-station/db/package.json create mode 100755 deployments/ground-station/db/seed.sql create mode 100755 deployments/ground-station/db/sql.ts create mode 100755 deployments/ground-station/db/tsconfig.json create mode 100644 deployments/ground-station/docker/Dockerfile.rust-service create mode 100644 docs/ground-station/architecture.md create mode 100755 docs/ground-station/hands-on/modifying-the-database.md create mode 100644 docs/ground-station/index.md create mode 100755 docs/ground-station/next-steps.md create mode 100755 docs/ground-station/requirements/bun.md create mode 100644 docs/ground-station/requirements/development-environment.md create mode 100755 docs/ground-station/requirements/docker.md create mode 100644 docs/ground-station/requirements/index.md create mode 100755 docs/ground-station/requirements/rust.md create mode 100755 docs/ground-station/web/index.md create mode 100644 tools/ground-station/README.md create mode 100755 tools/ground-station/manual-command-dispatcher/Cargo.toml create mode 100755 tools/ground-station/manual-command-dispatcher/src/args.rs create mode 100755 tools/ground-station/manual-command-dispatcher/src/commands.rs create mode 100755 tools/ground-station/manual-command-dispatcher/src/main.rs create mode 100755 tools/ground-station/manual-command-dispatcher/src/messages/display.rs create mode 100755 tools/ground-station/manual-command-dispatcher/src/transport.rs create mode 100755 tools/ground-station/manual-command-dispatcher/src/ui/mod.rs create mode 100755 tools/ground-station/remote-test/README.md create mode 100755 tools/ground-station/remote-test/remote.py create mode 100755 tools/ground-station/sbg-test/.gitignore create mode 100755 tools/ground-station/sbg-test/.python-version create mode 100755 tools/ground-station/sbg-test/README.md create mode 100755 tools/ground-station/sbg-test/build_sbg_utils.py create mode 100755 tools/ground-station/sbg-test/fix_perms.py create mode 100644 tools/ground-station/sbg-test/foo.py create mode 100755 tools/ground-station/sbg-test/gps_orientation.py create mode 100755 tools/ground-station/sbg-test/latest_measurement.py create mode 100755 tools/ground-station/sbg-test/main.py create mode 100755 tools/ground-station/sbg-test/pyproject.toml create mode 100755 tools/ground-station/sbg-test/sbg_reader.py create mode 100755 tools/ground-station/sbg-test/uv.lock create mode 100755 tools/ground-station/scripts/port_prog_finder.sh create mode 100755 tools/ground-station/scripts/postcreate.sh create mode 100755 tools/ground-station/scripts/requirements/0_dev_deps.sh create mode 100755 tools/ground-station/ssh-setup/README.md create mode 100755 tools/ground-station/ssh-setup/bootstrap.py create mode 100755 tools/ground-station/ssh-setup/server.py create mode 100755 tools/ground-station/tenna-manual/README.md create mode 100755 tools/ground-station/tenna-manual/manual.py create mode 100755 tools/ground-station/tenna-manual/pyproject.toml create mode 100755 tools/ground-station/tenna-manual/remote.py create mode 100755 tools/ground-station/tenna-setup/README.md create mode 100755 tools/ground-station/tenna-setup/bluetooth.sh create mode 100755 tools/ground-station/tenna-setup/setup.sh create mode 100755 tools/ground-station/virtual-serial/Cargo.toml create mode 100755 tools/ground-station/virtual-serial/src/main.rs diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..a0dc26f --- /dev/null +++ b/.dockerignore @@ -0,0 +1,15 @@ +.git +.github +.idea +.vscode +target +**/node_modules +**/.svelte-kit +**/.venv +**/.pytest_cache +**/__pycache__ +**/*.db +**/*.db-shm +**/*.db-wal +deployments/ground-station/db/data +apps/tile-provider/tiles_data diff --git a/.github/workflows/ground-station.yml b/.github/workflows/ground-station.yml new file mode 100644 index 0000000..b23703b --- /dev/null +++ b/.github/workflows/ground-station.yml @@ -0,0 +1,102 @@ +name: Ground Station + +on: + push: + branches: [main] + paths: + - "apps/antenna-tracker/**" + - "apps/command-dispatcher/**" + - "apps/ground-station-web/**" + - "apps/sergw/**" + - "apps/telemetry-ingestor/**" + - "apps/tile-provider/**" + - "deployments/ground-station/**" + - "tools/ground-station/**" + - "Cargo.toml" + - "Cargo.lock" + - ".github/workflows/ground-station.yml" + pull_request: + paths: + - "apps/antenna-tracker/**" + - "apps/command-dispatcher/**" + - "apps/ground-station-web/**" + - "apps/sergw/**" + - "apps/telemetry-ingestor/**" + - "apps/tile-provider/**" + - "deployments/ground-station/**" + - "tools/ground-station/**" + - "Cargo.toml" + - "Cargo.lock" + - ".github/workflows/ground-station.yml" + +jobs: + rust-host: + name: Rust host applications + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@nightly + with: + components: clippy, rustfmt + - name: Install native dependencies + run: sudo apt-get update && sudo apt-get install -y libudev-dev pkg-config + - name: Check formatting + run: cargo fmt --all -- --check + - name: Lint ground-station crates + run: cargo clippy --locked -p sergw -p command-dispatcher -p telemetry-ingestor -p gps-ingest -p manual-command-dispatcher -p virtual-serial --all-targets -- -D warnings + - name: Test ground-station crates + run: cargo test --locked -p sergw -p command-dispatcher -p telemetry-ingestor -p gps-ingest -p manual-command-dispatcher -p virtual-serial + + web: + name: Ground-station web + runs-on: ubuntu-latest + defaults: + run: + working-directory: apps/ground-station-web + steps: + - uses: actions/checkout@v4 + - uses: oven-sh/setup-bun@v2 + with: + bun-version: "1.3.14" + - run: bun install --frozen-lockfile + - run: bun run check + - run: bun run test + - run: bun run build + + bun-services: + name: Bun tests (${{ matrix.app }}) + runs-on: ubuntu-latest + strategy: + matrix: + app: + - apps/tile-provider + - deployments/ground-station/db + defaults: + run: + working-directory: ${{ matrix.app }} + steps: + - uses: actions/checkout@v4 + - uses: oven-sh/setup-bun@v2 + with: + bun-version: "1.3.14" + - run: bun install --frozen-lockfile + - run: bun test + + antenna-python: + name: Antenna Python + runs-on: ubuntu-latest + defaults: + run: + working-directory: apps/antenna-tracker + steps: + - uses: actions/checkout@v4 + - uses: astral-sh/setup-uv@v6 + - run: uv run --frozen pytest -q + + compose: + name: Compose configuration + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - run: docker compose -f deployments/ground-station/compose.yaml config --quiet + - run: docker compose -f deployments/ground-station/compose.yaml --profile radio config --quiet diff --git a/.gitignore b/.gitignore index 1c113fc..713f93d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,18 @@ /target .DS_Store -.uv-cache \ No newline at end of file +.uv-cache + +# Host application dependencies and build output +node_modules/ +.svelte-kit/ +.venv/ +.pytest_cache/ +__pycache__/ +*.py[cod] + +# Runtime data +*.db +*.db-shm +*.db-wal +deployments/ground-station/db/data/ +apps/tile-provider/tiles_data/ diff --git a/.vscode/extensions.json b/.vscode/extensions.json index bc7a0b2..dd83308 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -2,6 +2,10 @@ "recommendations": [ "dustypomerleau.rust-syntax", "1yib.rust-bundle", - "polymeilex.rust-targets" + "polymeilex.rust-targets", + "svelte.svelte-vscode", + "oven.bun-vscode", + "ms-python.python", + "charliermarsh.ruff" ] -} \ No newline at end of file +} diff --git a/.vscode/settings.json b/.vscode/settings.json index b059cc1..c303074 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -30,9 +30,12 @@ "chrono", "defmt", "heapless", + "libsql", "mavlink", + "ratatui", "serde", "sergw", + "SvelteKit", "uorocketry" ] -} \ No newline at end of file +} diff --git a/Cargo.lock b/Cargo.lock index 1873abb..9879c36 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,17 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + [[package]] name = "ahash" version = "0.8.12" @@ -11,7 +22,7 @@ dependencies = [ "cfg-if", "once_cell", "version_check", - "zerocopy", + "zerocopy 0.8.27", ] [[package]] @@ -32,6 +43,27 @@ dependencies = [ "as-slice", ] +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + [[package]] name = "anstream" version = "0.6.21" @@ -143,12 +175,12 @@ dependencies = [ "num-traits", "panic-probe", "pid", - "prost", + "prost 0.14.1", "serde", "smlang", "static_cell", "stm32-fmc", - "strum", + "strum 0.27.2", "uor-high-level", "uor-peripherals", "uor-utils", @@ -163,6 +195,39 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "async-stream" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "async-trait" +version = "0.1.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "atoi" version = "2.0.0" @@ -187,6 +252,51 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +[[package]] +name = "axum" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +dependencies = [ + "async-trait", + "axum-core", + "bitflags 1.3.2", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + [[package]] name = "bare-metal" version = "0.2.5" @@ -202,6 +312,44 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bindgen" +version = "0.66.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7" +dependencies = [ + "bitflags 2.10.0", + "cexpr", + "clang-sys", + "lazy_static", + "lazycell", + "log", + "peeking_take_while", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex 1.3.0", + "syn 2.0.106", + "which", +] + [[package]] name = "bit_field" version = "0.10.2" @@ -244,6 +392,21 @@ dependencies = [ "aligned", ] +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bumpalo" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + [[package]] name = "byteorder" version = "1.5.0" @@ -255,6 +418,52 @@ name = "bytes" version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" +dependencies = [ + "serde", +] + +[[package]] +name = "cassowary" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" + +[[package]] +name = "castaway" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a" +dependencies = [ + "rustversion", +] + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + +[[package]] +name = "cc" +version = "1.2.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17dd265a7d0f31ef544e1b20e03add05d3b45b491b633b10d67145d2acc1a38" +dependencies = [ + "find-msvc-tools", + "shlex 2.0.1", +] + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] [[package]] name = "cfg-if" @@ -262,6 +471,12 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "cfg_aliases" version = "0.2.1" @@ -273,7 +488,11 @@ name = "chrono" version = "0.4.38" source = "git+https://github.com/uorocketry/chrono#02c0d2a797d91b724e9f3df19e5493f850934584" dependencies = [ + "android-tzdata", + "iana-time-zone", "num-traits", + "serde", + "windows-targets 0.52.6", ] [[package]] @@ -282,7 +501,33 @@ version = "0.4.41" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", "num-traits", + "wasm-bindgen", + "windows-link 0.1.3", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "clang-sys" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading", ] [[package]] @@ -325,12 +570,52 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" +[[package]] +name = "cmake" +version = "0.1.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" +dependencies = [ + "cc", +] + [[package]] name = "colorchoice" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" +[[package]] +name = "command-dispatcher" +version = "1.0.1" +dependencies = [ + "chrono 0.4.38", + "clap", + "hostname", + "libsql", + "mavlink", + "messages-prost", + "prost 0.14.1", + "serde", + "serde_json", + "tokio", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "compact_str" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f86b9c4c00838774a6d902ef931eff7470720c51d90c2e32cfe15dc304737b3f" +dependencies = [ + "castaway", + "cfg-if", + "itoa", + "ryu", + "static_assertions", +] + [[package]] name = "const-default" version = "1.0.0" @@ -346,6 +631,16 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation" version = "0.10.0" @@ -395,18 +690,71 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + [[package]] name = "crc-any" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a62ec9ff5f7965e4d7280bd5482acd20aadb50d632cf6c1d74493856b011fa73" +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + [[package]] name = "critical-section" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" +[[package]] +name = "crossterm" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df" +dependencies = [ + "bitflags 2.10.0", + "crossterm_winapi", + "libc", + "mio 0.8.11", + "parking_lot", + "signal-hook", + "signal-hook-mio", + "winapi", +] + +[[package]] +name = "crossterm_winapi" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" +dependencies = [ + "winapi", +] + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "typenum", +] + [[package]] name = "csv-core" version = "0.1.12" @@ -1064,12 +1412,36 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "fallible-iterator" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" + +[[package]] +name = "fallible-streaming-iterator" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" + [[package]] name = "fastrand" version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + [[package]] name = "fixedbitset" version = "0.5.7" @@ -1083,45 +1455,142 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] -name = "futures-core" +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "futures" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] [[package]] -name = "futures-sink" +name = "futures-channel" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", + "futures-sink", +] [[package]] -name = "futures-task" +name = "futures-core" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] -name = "futures-util" +name = "futures-executor" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", - "pin-project-lite", - "pin-utils", + "futures-util", ] [[package]] -name = "getrandom" -version = "0.3.3" +name = "futures-io" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" -dependencies = [ - "cfg-if", - "libc", - "r-efi", - "wasi", +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" + +[[package]] +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +dependencies = [ + "cfg-if", + "libc", + "r-efi 5.3.0", + "wasi 0.14.2+wasi-0.2.4", +] + +[[package]] +name = "getrandom" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" +dependencies = [ + "cfg-if", + "libc", + "r-efi 6.0.0", ] [[package]] @@ -1130,6 +1599,23 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" +[[package]] +name = "gps-ingest" +version = "1.0.1" +dependencies = [ + "anyhow", + "chrono 0.4.38", + "clap", + "mavlink", + "messages-prost", + "prost 0.14.1", + "serde", + "serde_json", + "tokio", + "tracing", + "tracing-subscriber", +] + [[package]] name = "grounded" version = "0.2.0" @@ -1139,6 +1625,25 @@ dependencies = [ "portable-atomic", ] +[[package]] +name = "h2" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 2.13.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "hash32" version = "0.2.1" @@ -1157,6 +1662,12 @@ dependencies = [ "byteorder", ] +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + [[package]] name = "hashbrown" version = "0.13.2" @@ -1166,12 +1677,42 @@ dependencies = [ "ahash", ] +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + [[package]] name = "hashbrown" version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +[[package]] +name = "hashlink" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" +dependencies = [ + "hashbrown 0.14.5", +] + [[package]] name = "heapless" version = "0.7.17" @@ -1213,12 +1754,160 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" +[[package]] +name = "home" +version = "0.5.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "hostname" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "617aaa3557aef3810a6369d0a99fac8a080891b68bd9f9812a1eeda0c0730cbd" +dependencies = [ + "cfg-if", + "libc", + "windows-link 0.2.1", +] + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "http-range-header" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "0.14.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.5.10", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "399c78f9338483cb7e630c8474b07268983c6bd5acee012e4211f9f7bb21b070" +dependencies = [ + "futures-util", + "http", + "hyper", + "log", + "rustls", + "rustls-native-certs", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "webpki-roots 0.26.11", +] + +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] + +[[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", +] + +[[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 = "ident_case" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" +[[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", +] + [[package]] name = "indexmap" version = "2.13.0" @@ -1229,6 +1918,16 @@ dependencies = [ "hashbrown 0.16.1", ] +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "block-padding", + "generic-array", +] + [[package]] name = "io-kit-sys" version = "0.4.1" @@ -1254,6 +1953,24 @@ version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.14.0" @@ -1272,12 +1989,29 @@ dependencies = [ "no-panic", ] +[[package]] +name = "js-sys" +version = "0.3.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102" +dependencies = [ + "cfg-if", + "futures-util", + "wasm-bindgen", +] + [[package]] name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + [[package]] name = "lexical-parse-float" version = "0.8.5" @@ -1314,12 +2048,158 @@ version = "0.2.180" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" +[[package]] +name = "libloading" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" +dependencies = [ + "cfg-if", + "windows-link 0.2.1", +] + [[package]] name = "libm" version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" +[[package]] +name = "libsql" +version = "0.9.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30fe980ac5693ed1f3db490559fb578885e913a018df64af8a1a46e1959a78df" +dependencies = [ + "anyhow", + "async-stream", + "async-trait", + "base64 0.21.7", + "bincode", + "bitflags 2.10.0", + "bytes", + "chrono 0.4.41", + "crc32fast", + "fallible-iterator 0.3.0", + "futures", + "http", + "hyper", + "hyper-rustls", + "libsql-hrana", + "libsql-sqlite3-parser", + "libsql-sys", + "libsql_replication", + "parking_lot", + "serde", + "serde_json", + "thiserror 1.0.69", + "tokio", + "tokio-stream", + "tokio-util", + "tonic", + "tonic-web", + "tower", + "tower-http", + "tracing", + "uuid", + "zerocopy 0.7.35", +] + +[[package]] +name = "libsql-ffi" +version = "0.9.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0be1da6f123ceb2cd23f469883415cab9ee963286a85d61e22afb8b12e15e681" +dependencies = [ + "bindgen", + "cc", + "cmake", + "glob", +] + +[[package]] +name = "libsql-hrana" +version = "0.9.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3358538b52cfcf9af4fe7aeb57d6843aafed2e8af80807bd636fd1448e94ea7" +dependencies = [ + "base64 0.21.7", + "bytes", + "prost 0.12.6", + "serde", +] + +[[package]] +name = "libsql-rusqlite" +version = "0.9.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b646f94fc1d266e481c38a2d44d6d9d1be3ad04b56b90457acfb310dc450030e" +dependencies = [ + "bitflags 2.10.0", + "fallible-iterator 0.2.0", + "fallible-streaming-iterator", + "hashlink", + "libsql-ffi", + "smallvec", +] + +[[package]] +name = "libsql-sqlite3-parser" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15a90128c708356af8f7d767c9ac2946692c9112b4f74f07b99a01a60680e413" +dependencies = [ + "bitflags 2.10.0", + "cc", + "fallible-iterator 0.3.0", + "indexmap 2.13.0", + "log", + "memchr", + "phf", + "phf_codegen", + "phf_shared", + "uncased", +] + +[[package]] +name = "libsql-sys" +version = "0.9.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90725458cc4461bc82f8f7983e80b002ea4f64b5184e1462f252d0dd74b122f5" +dependencies = [ + "bytes", + "libsql-ffi", + "libsql-rusqlite", + "once_cell", + "tracing", + "zerocopy 0.7.35", +] + +[[package]] +name = "libsql_replication" +version = "0.9.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bba5c9b3a26aca06d70f6a3646ba341cf574a548355353fe135af524b1b77cc" +dependencies = [ + "aes", + "async-stream", + "async-trait", + "bytes", + "cbc", + "libsql-rusqlite", + "libsql-sys", + "parking_lot", + "prost 0.12.6", + "serde", + "thiserror 1.0.69", + "tokio", + "tokio-stream", + "tokio-util", + "tonic", + "tracing", + "uuid", + "zerocopy 0.7.35", +] + [[package]] name = "libudev" version = "0.3.0" @@ -1344,7 +2224,13 @@ dependencies = [ name = "linked_list_allocator" version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afa463f5405ee81cdb9cc2baf37e08ec7e4c8209442b5d72c04cfb2cd6e6286" +checksum = "9afa463f5405ee81cdb9cc2baf37e08ec7e4c8209442b5d72c04cfb2cd6e6286" + +[[package]] +name = "linux-raw-sys" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" @@ -1373,6 +2259,15 @@ version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +[[package]] +name = "lru" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" +dependencies = [ + "hashbrown 0.15.5", +] + [[package]] name = "mach2" version = "0.4.3" @@ -1388,6 +2283,28 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ca88d725a0a943b096803bd34e73a4437208b6077654cc4ecb2947a5f91618d" +[[package]] +name = "manual-command-dispatcher" +version = "1.0.1" +dependencies = [ + "clap", + "crossterm", + "futures", + "mavlink", + "messages-prost", + "prost 0.14.1", + "ratatui", + "tokio", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + [[package]] name = "mavlink" version = "0.13.1" @@ -1447,12 +2364,62 @@ version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" +[[package]] +name = "messages-prost" +version = "0.1.0" +source = "git+https://github.com/uorocketry/messages-prost#c16c21cee30d57b993b0a3a61ed91dd11df8a9f6" +dependencies = [ + "bitflags 2.10.0", + "defmt 0.3.100", + "heapless 0.8.0", + "mavlink", + "prost 0.14.1", + "prost-build", + "serde", + "ublox 0.4.5", +] + [[package]] name = "micromath" version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3c8dda44ff03a2f238717214da50f65d5a53b45cd213a7370424ffdb6fae815" +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "mio" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +dependencies = [ + "libc", + "log", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.48.0", +] + +[[package]] +name = "mio" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +dependencies = [ + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.61.2", +] + [[package]] name = "multimap" version = "0.10.1" @@ -1500,6 +2467,18 @@ dependencies = [ "libc", ] +[[package]] +name = "nix" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" +dependencies = [ + "bitflags 2.10.0", + "cfg-if", + "cfg_aliases 0.1.1", + "libc", +] + [[package]] name = "nix" version = "0.30.1" @@ -1508,7 +2487,7 @@ checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ "bitflags 2.10.0", "cfg-if", - "cfg_aliases", + "cfg_aliases 0.2.1", "libc", ] @@ -1523,6 +2502,25 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nu-ansi-term" +version = "0.50.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" +dependencies = [ + "windows-sys 0.61.2", +] + [[package]] name = "num-complex" version = "0.4.6" @@ -1595,6 +2593,12 @@ version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" +[[package]] +name = "openssl-probe" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" + [[package]] name = "panic-probe" version = "0.3.2" @@ -1605,12 +2609,47 @@ dependencies = [ "defmt 0.3.100", ] +[[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 = "paste" version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + [[package]] name = "petgraph" version = "0.7.1" @@ -1618,7 +2657,46 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" dependencies = [ "fixedbitset", - "indexmap", + "indexmap 2.13.0", +] + +[[package]] +name = "phf" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +dependencies = [ + "phf_shared", +] + +[[package]] +name = "phf_codegen" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" +dependencies = [ + "phf_generator", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +dependencies = [ + "phf_shared", + "rand 0.8.7", +] + +[[package]] +name = "phf_shared" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +dependencies = [ + "siphasher", + "uncased", ] [[package]] @@ -1651,6 +2729,26 @@ dependencies = [ "num-traits", ] +[[package]] +name = "pin-project" +version = "1.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2466b2336ed02bcdca6b294417127b90ec92038d1d5c4fbeac971a922e0e0924" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "pin-project-lite" version = "0.2.16" @@ -1681,7 +2779,7 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "zerocopy", + "zerocopy 0.8.27", ] [[package]] @@ -1725,6 +2823,16 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "prost" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +dependencies = [ + "bytes", + "prost-derive 0.12.6", +] + [[package]] name = "prost" version = "0.14.1" @@ -1732,7 +2840,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7231bd9b3d3d33c86b58adbac74b5ec0ad9f496b19d22801d773636feaa95f3d" dependencies = [ "bytes", - "prost-derive", + "prost-derive 0.14.1", ] [[package]] @@ -1742,19 +2850,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac6c3320f9abac597dcbc668774ef006702672474aad53c6d596b62e487b40b1" dependencies = [ "heck", - "itertools", + "itertools 0.14.0", "log", "multimap", "once_cell", "petgraph", "prettyplease", - "prost", + "prost 0.14.1", "prost-types", "regex", "syn 2.0.106", "tempfile", ] +[[package]] +name = "prost-derive" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +dependencies = [ + "anyhow", + "itertools 0.12.1", + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "prost-derive" version = "0.14.1" @@ -1762,7 +2883,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425" dependencies = [ "anyhow", - "itertools", + "itertools 0.14.0", "proc-macro2", "quote", "syn 2.0.106", @@ -1774,7 +2895,7 @@ version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9b4db3d6da204ed77bb26ba83b6122a73aeb2e87e25fbf7ad2e84c4ccbf8f72" dependencies = [ - "prost", + "prost 0.14.1", ] [[package]] @@ -1865,16 +2986,43 @@ 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 0.3.1", + "rand_core 0.6.4", +] + [[package]] name = "rand" version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ - "rand_chacha", + "rand_chacha 0.9.0", "rand_core 0.9.3", ] +[[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_chacha" version = "0.9.0" @@ -1890,6 +3038,9 @@ 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" @@ -1897,7 +3048,36 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom", + "getrandom 0.3.3", +] + +[[package]] +name = "ratatui" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f44c9e68fd46eda15c646fbb85e1040b657a58cdc8c98db1d97a55930d991eef" +dependencies = [ + "bitflags 2.10.0", + "cassowary", + "compact_str", + "crossterm", + "itertools 0.12.1", + "lru", + "paste", + "stability", + "strum 0.26.3", + "unicode-segmentation", + "unicode-truncate", + "unicode-width", +] + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags 2.10.0", ] [[package]] @@ -1929,6 +3109,20 @@ version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" +[[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 = "rlsf" version = "0.2.1" @@ -1941,6 +3135,12 @@ dependencies = [ "svgbobdoc", ] +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + [[package]] name = "rustc_version" version = "0.2.3" @@ -1959,6 +3159,19 @@ dependencies = [ "semver 1.0.26", ] +[[package]] +name = "rustix" +version = "0.38.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +dependencies = [ + "bitflags 2.10.0", + "errno", + "libc", + "linux-raw-sys 0.4.15", + "windows-sys 0.52.0", +] + [[package]] name = "rustix" version = "1.1.3" @@ -1968,16 +3181,87 @@ dependencies = [ "bitflags 2.10.0", "errno", "libc", - "linux-raw-sys", + "linux-raw-sys 0.11.0", "windows-sys 0.61.2", ] +[[package]] +name = "rustls" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" +dependencies = [ + "log", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-native-certs" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" +dependencies = [ + "openssl-probe", + "rustls-pemfile", + "rustls-pki-types", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "764899a24af3980067ee14bc143654f297b22eaebfe3c7b6b211920a5a59b046" +dependencies = [ + "zeroize", +] + +[[package]] +name = "rustls-webpki" +version = "0.102.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +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.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +[[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 = "scopeguard" version = "1.2.0" @@ -1990,6 +3274,29 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f93c025f9cfe4c388c328ece47d11a54a823da3b5ad0370b22d95ad47137f85a" +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.10.0", + "core-foundation 0.9.4", + "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 = "semihosting" version = "0.1.20" @@ -2091,6 +3398,19 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "serde_json" +version = "1.0.150" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + [[package]] name = "sergw" version = "1.0.1" @@ -2150,7 +3470,7 @@ checksum = "21f60a586160667241d7702c420fc223939fb3c0bb8d3fac84f78768e8970dee" dependencies = [ "bitflags 2.10.0", "cfg-if", - "core-foundation", + "core-foundation 0.10.0", "core-foundation-sys", "io-kit-sys", "libudev", @@ -2162,6 +3482,58 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "signal-hook" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-mio" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b75a19a7a740b25bc7944bdee6172368f988763b744e3d4dfe753f6b4ece40cc" +dependencies = [ + "libc", + "mio 0.8.11", + "signal-hook", +] + +[[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 = "simba" version = "0.9.1" @@ -2174,6 +3546,24 @@ dependencies = [ "paste", ] +[[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 = "smlang" version = "0.8.0" @@ -2209,6 +3599,26 @@ dependencies = [ "managed", ] +[[package]] +name = "socket2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "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 = "spin" version = "0.9.8" @@ -2228,6 +3638,16 @@ dependencies = [ "serde", ] +[[package]] +name = "stability" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d904e7009df136af5297832a3ace3370cd14ff1546a232f4f185036c2736fcac" +dependencies = [ + "quote", + "syn 2.0.106", +] + [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -2280,13 +3700,35 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" +[[package]] +name = "strum" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros 0.26.4", +] + [[package]] name = "strum" version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" dependencies = [ - "strum_macros", + "strum_macros 0.27.2", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.106", ] [[package]] @@ -2301,13 +3743,19 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + [[package]] name = "svgbobdoc" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2c04b93fc15d79b39c63218f15e3fdffaa4c227830686e3b7c5f41244eb3e50" dependencies = [ - "base64", + "base64 0.13.1", "proc-macro2", "quote", "syn 1.0.109", @@ -2337,76 +3785,345 @@ dependencies = [ ] [[package]] -name = "tempfile" -version = "3.24.0" +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "telemetry-ingestor" +version = "1.0.1" +dependencies = [ + "chrono 0.4.38", + "clap", + "hostname", + "libsql", + "mavlink", + "messages-prost", + "prost 0.14.1", + "serde", + "serde_json", + "tokio", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "tempfile" +version = "3.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c" +dependencies = [ + "fastrand", + "getrandom 0.3.3", + "once_cell", + "rustix 1.1.3", + "windows-sys 0.61.2", +] + +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "termios" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5d9cf598a6d7ce700a4e6a9199da127e6819a61e64b68609683cc9a01b5683a" +dependencies = [ + "libc", +] + +[[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.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d76d3f064b981389ecb4b6b7f45a0bf9fdac1d5b9204c7bd6714fecc302850" +dependencies = [ + "thiserror-impl 2.0.15", +] + +[[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.106", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d29feb33e986b6ea906bd9c3559a856983f92371b3eaa5e83782a351623de0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "thread_local" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad99c4c6d32803332c548b1af0540b357b3f5fc0be8f6c6bfe8b2e6ae784070" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "tokio" +version = "1.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d" +dependencies = [ + "bytes", + "libc", + "mio 1.1.1", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.6.5", + "tokio-macros", + "windows-sys 0.61.2", +] + +[[package]] +name = "tokio-io-timeout" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bd86198d9ee903fedd2f9a2e72014287c0d9167e4ae43b5853007205dda1b76" +dependencies = [ + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-macros" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "tokio-rustls" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +dependencies = [ + "rustls", + "rustls-pki-types", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tonic" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64 0.21.7", + "bytes", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost 0.12.6", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tonic-web" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc3b0e1cedbf19fdfb78ef3d672cb9928e0a91a9cb4629cc0c916e8cff8aaaa1" +dependencies = [ + "base64 0.21.7", + "bytes", + "http", + "http-body", + "hyper", + "pin-project", + "tokio-stream", + "tonic", + "tower-http", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand 0.8.7", + "slab", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" +dependencies = [ + "bitflags 2.10.0", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-range-header", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c" -dependencies = [ - "fastrand", - "getrandom", - "once_cell", - "rustix", - "windows-sys 0.61.2", -] +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] -name = "termcolor" -version = "1.4.1" +name = "tower-service" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", -] +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] -name = "termios" -version = "0.2.2" +name = "tracing" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5d9cf598a6d7ce700a4e6a9199da127e6819a61e64b68609683cc9a01b5683a" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ - "libc", + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", ] [[package]] -name = "thiserror" -version = "1.0.69" +name = "tracing-attributes" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ - "thiserror-impl 1.0.69", + "proc-macro2", + "quote", + "syn 2.0.106", ] [[package]] -name = "thiserror" -version = "2.0.15" +name = "tracing-core" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d76d3f064b981389ecb4b6b7f45a0bf9fdac1d5b9204c7bd6714fecc302850" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" dependencies = [ - "thiserror-impl 2.0.15", + "once_cell", + "valuable", ] [[package]] -name = "thiserror-impl" -version = "1.0.69" +name = "tracing-log" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", + "log", + "once_cell", + "tracing-core", ] [[package]] -name = "thiserror-impl" -version = "2.0.15" +name = "tracing-subscriber" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d29feb33e986b6ea906bd9c3559a856983f92371b3eaa5e83782a351623de0" +checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", + "nu-ansi-term", + "sharded-slab", + "smallvec", + "thread_local", + "tracing-core", + "tracing-log", ] +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + [[package]] name = "ts-rs" version = "11.1.0" @@ -2482,6 +4199,15 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "uncased" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1b88fcfe09e89d3866a5c11019378088af2d24c3fbd4f0543f96b479ec90697" +dependencies = [ + "version_check", +] + [[package]] name = "unescaper" version = "0.1.6" @@ -2503,6 +4229,17 @@ version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +[[package]] +name = "unicode-truncate" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3644627a5af5fa321c95b9b235a72fd24cd29c648c2c379431e6628655627bf" +dependencies = [ + "itertools 0.13.0", + "unicode-segmentation", + "unicode-width", +] + [[package]] name = "unicode-width" version = "0.1.14" @@ -2515,6 +4252,12 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "uor-drivers" version = "1.0.1" @@ -2547,7 +4290,7 @@ dependencies = [ "mavlink-core 0.16.2", "num-derive 0.4.2", "num-traits", - "rand", + "rand 0.9.2", "serde", "serde_arrays 0.2.0", "ts-rs", @@ -2568,7 +4311,7 @@ dependencies = [ "embedded-io", "embedded-io-async", "heapless 0.9.2", - "prost", + "prost 0.14.1", "uor-utils", ] @@ -2595,7 +4338,7 @@ dependencies = [ "glob", "heapless 0.9.2", "mavlink", - "prost", + "prost 0.14.1", "prost-build", "protoc-bin-vendored", "serde", @@ -2656,6 +4399,24 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" +[[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 = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + [[package]] name = "vcell" version = "0.1.3" @@ -2668,6 +4429,18 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "virtual-serial" +version = "1.0.1" +dependencies = [ + "anyhow", + "clap", + "libc", + "nix 0.28.0", + "tracing", + "tracing-subscriber", +] + [[package]] name = "void" version = "1.0.2" @@ -2683,6 +4456,21 @@ dependencies = [ "vcell", ] +[[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 = "wasi" version = "0.14.2+wasi-0.2.4" @@ -2692,6 +4480,97 @@ dependencies = [ "wit-bindgen-rt", ] +[[package]] +name = "wasm-bindgen" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 2.0.106", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "webpki-roots" +version = "0.26.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" +dependencies = [ + "webpki-roots 1.0.8", +] + +[[package]] +name = "webpki-roots" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf85cb06032201fa7c6f829d7db5a7e5aa45bcc0655327713065f6f0576731bf" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix 0.38.44", +] + +[[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" @@ -2701,6 +4580,47 @@ 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 = "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", + "windows-strings", +] + +[[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.106", +] + +[[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.106", +] + [[package]] name = "windows-link" version = "0.1.3" @@ -2713,6 +4633,33 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" +[[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.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.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + [[package]] name = "windows-sys" version = "0.52.0" @@ -2740,6 +4687,21 @@ dependencies = [ "windows-link 0.2.1", ] +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + [[package]] name = "windows-targets" version = "0.52.6" @@ -2773,6 +4735,12 @@ dependencies = [ "windows_x86_64_msvc 0.53.0", ] +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" @@ -2785,6 +4753,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + [[package]] name = "windows_aarch64_msvc" version = "0.52.6" @@ -2797,6 +4771,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -2821,6 +4801,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + [[package]] name = "windows_i686_msvc" version = "0.52.6" @@ -2833,6 +4819,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + [[package]] name = "windows_x86_64_gnu" version = "0.52.6" @@ -2845,6 +4837,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" @@ -2857,6 +4855,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -2878,13 +4882,34 @@ dependencies = [ "bitflags 2.10.0", ] +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "byteorder", + "zerocopy-derive 0.7.35", +] + [[package]] name = "zerocopy" version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" dependencies = [ - "zerocopy-derive", + "zerocopy-derive 0.8.27", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", ] [[package]] @@ -2897,3 +4922,15 @@ dependencies = [ "quote", "syn 2.0.106", ] + +[[package]] +name = "zeroize" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" diff --git a/Cargo.toml b/Cargo.toml index 5c09e27..e1fa4bf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,16 @@ [workspace] resolver = "2" -members = ["apps/sergw", "boards/*", "common/*"] +members = [ + "apps/antenna-tracker", + "apps/command-dispatcher", + "apps/sergw", + "apps/telemetry-ingestor", + "boards/*", + "common/*", + "tools/ground-station/manual-command-dispatcher", + "tools/ground-station/virtual-serial", +] # Specify which members to build by default. Some libraries, such as messages, contain dev-dependencies that will give # compile errors if built directly. @@ -20,6 +29,7 @@ license-file = "LICENSE" [workspace.dependencies] bitflags = { version = "2.10.0", default-features = false } chrono = { git = "https://github.com/uorocketry/chrono", default-features = false } +clap = { version = "4.5.16", features = ["derive"] } cortex-m = { version = "0.7.6", features = ["critical-section-single-core"] } cortex-m-rt = "0.7.1" critical-section = "1.1" @@ -41,15 +51,30 @@ embedded-io = { version = "0.6.1" } embedded-io-async = { version = "0.6.1" } enum_dispatch = "0.3.11" heapless = "0.9.1" +hostname = "0.4.0" +libsql = "0.9.20" libm = "0.2.11" +mavlink = { git = "https://github.com/uorocketry/rust-mavlink.git", features = [ + "uorocketry", + "std", + "tcp", + "udp", + "direct-serial", + "serde", +], default-features = false } +messages-prost = { git = "https://github.com/uorocketry/messages-prost", features = ["std"], default-features = false } nb = "1.1.0" num-traits = { version = "0.2.19", default-features = false } panic-probe = { version = "0.3", features = ["print-defmt"] } prost = { version = "0.14.1", default-features = false, features = ["derive"] } serde = { version = "1.0.150", features = ["derive"], default-features = false } serde-csv-core = { version = "0.3.2", features = ["defmt"] } +serde_json = "1" smlang = "0.8.0" static_cell = "2" +tokio = { version = "1", features = ["full"] } +tracing = "0.1.40" +tracing-subscriber = "0.3.18" uor-drivers = { path = "./common/drivers" } uor-high-level = { path = "./common/high-level" } uor-peripherals = { path = "./common/peripherals" } diff --git a/README.md b/README.md index c926dd3..c68d877 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,23 @@ # uORocketry Avionics Software Monorepo -Welcome to the uORocketry's avionics software monorepo. This is where we house all of our packages and crates from various boards and our ground station software. We're currently in the process of migrating our other repos to this monorepo so bear with us. +Firmware, shared avionics libraries, host applications, and ground-station deployment configuration live in this repository. ## Monorepo Structure -This monorepo is houses three main types of packages. ### Boards -Embedded software developed for each of our boards can be found at `boards/*`. +Embedded software developed for each board lives in `boards/*`. See [boards/](./boards/) for more details. ### Common Logic -Common logic shared between boards and possibly ground station can be found at `common/*`. +Reusable drivers, peripherals, high-level logic, and utilities live in `common/*`. See [common/](./common/). - + +The complete ground-station stack is defined in [`deployments/ground-station/`](./deployments/ground-station/). Development and field utilities live in [`tools/ground-station/`](./tools/ground-station/), with architecture notes in [`docs/ground-station/`](./docs/ground-station/). diff --git a/apps/README.md b/apps/README.md index d4f2c9b..2f0f0bb 100644 --- a/apps/README.md +++ b/apps/README.md @@ -1,3 +1,13 @@ # Apps -This directory houses applications that can run on your machine. It can be anything from ground station code to specific testing apps for interfacing with boards etc. \ No newline at end of file +Host-side applications that can be built, tested, and run independently: + +- `sergw`: serial-to-TCP radio gateway +- `telemetry-ingestor`: MAVLink telemetry persistence +- `command-dispatcher`: database-backed outbound command delivery +- `ground-station-web`: operator interface and backend-for-frontend +- `tile-provider`: offline map tile storage and downloads +- `antenna-tracker`: optional GPS prediction and antenna control pipeline +- `argus`, `phil-cart`, `persistence`, and `grafana`: board and test infrastructure + +Deployment composition belongs under `deployments/`; app directories should not contain copies of other applications. diff --git a/apps/antenna-tracker/.python-version b/apps/antenna-tracker/.python-version new file mode 100755 index 0000000..e4fba21 --- /dev/null +++ b/apps/antenna-tracker/.python-version @@ -0,0 +1 @@ +3.12 diff --git a/apps/antenna-tracker/ARCHITECTURE.md b/apps/antenna-tracker/ARCHITECTURE.md new file mode 100755 index 0000000..13020a3 --- /dev/null +++ b/apps/antenna-tracker/ARCHITECTURE.md @@ -0,0 +1,183 @@ +# GPS Ingest Architecture + +## Overview + +The optional antenna-tracker toolset is a focused data-processing pipeline rather than a deployed RGS microservice. Its `gps-ingest` binary streams GPS coordinates and altitude data from MAVLink POSTCARD messages as JSON lines for the Python predictor and antenna-control tools. + +## System Architecture + +This program is designed to fit into the antenna tracker architecture shown in the system diagram: + +``` +MAVLink Source → gps-ingest → JSON Lines → Predictor (Python) → Antenna Tracker API + ↓ ↓ ↓ ↓ ↓ + SerGW/Radio (Rust) stdout pipe example_pipeline.py (External System) +``` + +### Component Roles + +1. **GPS Stream (gps-ingest)** + - **Language**: Rust + - **Input**: MAVLink POSTCARD messages (via TCP/UDP connection) + - **Output**: JSON lines to stdout + - **Purpose**: Extract and format GPS/altitude data from MAVLink telemetry + +2. **Predictor (example_pipeline.py)** + - **Language**: Python + - **Input**: JSON lines from gps-ingest (via pipe) + - **Output**: Prediction commands + - **Purpose**: Process GPS data and predict future positions + +3. **Antenna Tracker API** + - **Language**: Python library + - **Input**: Commands from predictor + - **Output**: Hardware control signals + - **Purpose**: Control antenna positioning hardware + +## Data Flow + +``` +MAVLink POSTCARD → RadioFrame (protobuf) → SbgGpsPos/SbgAir → JSON Lines → Python Script → Predictions → API Commands +``` + +### MAVLink Message Processing + +The program processes the following MAVLink messages: + +- **POSTCARD_MESSAGE**: Contains a protobuf-encoded `RadioFrame` with telemetry data + - Extracts `SbgGpsPos` data for GPS coordinates (latitude, longitude) + - Extracts `SbgAir` data for barometric altitude +- **RADIO_STATUS**: Logged for monitoring but not used for GPS output + +### Data Validation + +Before outputting a sample, the program validates: +- GPS coordinates are not near (0, 0) - invalid GPS fix +- GPS coordinates are within Canada bounds (lat: 41.68 to 83.11, lon: -141.00 to -52.62) +- All required fields are present (lat, lon, altitude_m) + +### JSON Output Format + +The program outputs one JSON line per complete sample: + +```json +{"lat":45.123456,"lon":-75.654321,"altitude_m":100.5,"ts":"2024-01-01T12:00:00Z","source":"gps-ingest"} +``` + +Each line contains: +- `lat`: Latitude in degrees (f64) +- `lon`: Longitude in degrees (f64) +- `altitude_m`: Altitude in meters (f64) - from barometric pressure, not GPS +- `ts`: ISO 8601 timestamp (RFC3339 format) +- `source`: Always "gps-ingest" + +The program only outputs when it has received both GPS position and altitude data, ensuring complete samples. + +## Usage Patterns + +### Basic Usage +```bash +# Stream GPS data (default: tcpout:127.0.0.1:5656) +cargo run -p gps-ingest + +# Use different MAVLink connection +cargo run -p gps-ingest -- --connection udpin:0.0.0.0:14550 + +# Pretty JSON output +cargo run -p gps-ingest -- --pretty +``` + +### Piping to Other Programs +```bash +# Extract just latitude +cargo run -p gps-ingest | jq -r '.lat' + +# Format coordinates +cargo run -p gps-ingest | jq -r '"\(.lat),\(.lon),\(.altitude_m)"' + +# Filter recent samples +cargo run -p gps-ingest | jq -r 'select(.ts | fromdateiso8601 > (now - 3600))' +``` + +### Integration with Python +```python +import subprocess +import json + +# Run gps-ingest and capture output line by line +proc = subprocess.Popen( + ["cargo", "run", "-p", "gps-ingest"], + stdout=subprocess.PIPE, + text=True +) + +for line in proc.stdout: + line = line.strip() + if not line: + continue + try: + data = json.loads(line) + print(f"Position: {data['lat']}, {data['lon']}, Altitude: {data['altitude_m']}m") + except json.JSONDecodeError: + continue +``` + +## Design Principles + +1. **Single Responsibility**: Only extracts GPS data from MAVLink, doesn't process it +2. **Unix Philosophy**: Does one thing well, outputs to stdout +3. **JSON Lines**: One complete sample per line for easy streaming and parsing +4. **Configurable**: MAVLink connection string can be specified +5. **Error Handling**: Automatic reconnection on connection loss +6. **Data Validation**: Filters invalid coordinates before output +7. **Real-time**: Streams data as it arrives, not batch processing + +## Connection Management + +- Automatically connects to the specified MAVLink endpoint +- Handles connection failures gracefully with automatic reconnection +- Reconnection delay: 1 second after connection loss +- Logs connection status and errors using structured logging (tracing) + +## Future Enhancements + +- **Connection Retry Backoff**: Exponential backoff for reconnection attempts +- **Data Filtering**: Time range and quality filters +- **Multiple Formats**: CSV, XML, or binary output options +- **WebSocket Output**: Real-time streaming over network +- **Data Validation**: Additional quality checks and outlier detection +- **Rate Limiting**: Configurable output rate limiting + +## Dependencies + +- **mavlink**: MAVLink protocol support for uORocketry message set +- **messages-prost**: Protobuf message definitions for RadioFrame and SBG data +- **serde**: JSON serialization/deserialization +- **tokio**: Async runtime for MAVLink I/O operations +- **clap**: Command-line argument parsing +- **chrono**: Timestamp handling and formatting +- **tracing**: Structured logging +- **prost**: Protobuf decoding +- **anyhow**: Error handling + +## Building and Testing + +```bash +# Build the project +cargo build --release + +# Check compilation +cargo check + +# Run with verbose logging +RUST_LOG=debug cargo run +``` + +## Integration Notes + +- The program is designed to be lightweight and fast +- JSON lines output is optimized for parsing by other tools +- Error conditions are handled gracefully with automatic reconnection +- The program can be easily integrated into CI/CD pipelines +- MAVLink connections are properly managed and automatically recovered +- Designed to work with SerGW (Serial Gateway) which bridges serial devices to TCP diff --git a/apps/antenna-tracker/Cargo.toml b/apps/antenna-tracker/Cargo.toml new file mode 100755 index 0000000..92bdd2c --- /dev/null +++ b/apps/antenna-tracker/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "gps-ingest" +version.workspace = true +authors.workspace = true +publish.workspace = true +license.workspace = true +edition = "2021" + +[dependencies] +tokio = { workspace = true } +serde = { workspace = true, features = ["derive", "std"] } +serde_json = { workspace = true } +chrono = { workspace = true, features = ["clock", "serde", "std"] } +clap = { workspace = true } +tracing = { workspace = true } +tracing-subscriber = { workspace = true } +mavlink = { workspace = true } +messages-prost = { workspace = true } +anyhow = "1.0" +prost = { workspace = true } diff --git a/apps/antenna-tracker/README.md b/apps/antenna-tracker/README.md new file mode 100755 index 0000000..d4cd41c --- /dev/null +++ b/apps/antenna-tracker/README.md @@ -0,0 +1,95 @@ +# Antenna Tracker Tools + +Optional antenna-tracking tools, including the Rust `gps-ingest` stream extractor and Python prediction/control pipeline. This directory is a development and field utility, not a default RGS runtime service. + +## Features + +- Connects to MAVLink and listens for POSTCARD messages +- Extracts GPS position data from `SbgGpsPos` messages +- Extracts altitude data from `SbgAir` messages +- Validates coordinates (filters invalid coordinates near 0,0 and outside Canada bounds) +- Outputs JSON lines to stdout (one complete sample per line) +- Automatic reconnection on connection loss +- Designed to be piped to other programs + +## Usage + +### Basic usage (default MAVLink connection) +```bash +cargo run -p gps-ingest +``` + +### Specify MAVLink connection string +```bash +cargo run -p gps-ingest -- --connection tcpout:127.0.0.1:5656 +``` + +### Use UDP input instead +```bash +cargo run -- --connection udpin:0.0.0.0:14550 +``` + +### Pretty JSON output (multi-line) +```bash +cargo run -p gps-ingest -- --pretty +``` + +### Pipe output to another program +```bash +cargo run | jq '.lat' +``` + +## Command Line Options + +- `--connection`: MAVLink connection string (default: `tcpout:127.0.0.1:5656`) + - Examples: `tcpout:127.0.0.1:5656`, `udpin:0.0.0.0:14550`, `udpout:192.168.1.100:14550` +- `--pretty`: Print pretty JSON (multi-line) instead of compact single-line JSON (default: false) +- `-h, --help`: Show help information + +## Output Format + +The program outputs JSON lines (one per complete sample) with the following structure: + +```json +{"lat":45.123456,"lon":-75.654321,"altitude_m":100.5,"ts":"2024-01-01T12:00:00Z","source":"gps-ingest"} +``` + +Each line contains: +- `lat`: Latitude in degrees (f64) +- `lon`: Longitude in degrees (f64) +- `altitude_m`: Altitude in meters (f64) +- `ts`: ISO 8601 timestamp (RFC3339 format) +- `source`: Always "gps-ingest" + +The program only outputs a line when it has received both GPS position (from `SbgGpsPos`) and altitude (from `SbgAir`) data, ensuring complete samples. + +## How It Works + +1. Connects to the specified MAVLink endpoint +2. Listens for `POSTCARD_MESSAGE` MAVLink messages +3. Decodes the protobuf `RadioFrame` from each POSTCARD message +4. Extracts GPS coordinates from `SbgGpsPos` data +5. Extracts altitude from `SbgAir` data +6. Validates coordinates (must be within Canada bounds and not near 0,0) +7. Outputs a JSON line when all required fields are available +8. Automatically reconnects if the connection is lost + +## Building + +```bash +cargo build --release +``` + +The binary will be available at `target/release/gps-ingest`. + +## Dependencies + +- `mavlink`: MAVLink protocol support +- `messages-prost`: Protobuf message definitions for radio frames +- `serde` + `serde_json`: JSON serialization +- `chrono`: Timestamp handling +- `tokio`: Async runtime +- `clap`: Command line argument parsing +- `tracing`: Structured logging +- `anyhow`: Error handling +- `prost`: Protobuf decoding diff --git a/apps/antenna-tracker/antenna_service.py b/apps/antenna-tracker/antenna_service.py new file mode 100755 index 0000000..15e423b --- /dev/null +++ b/apps/antenna-tracker/antenna_service.py @@ -0,0 +1,415 @@ +#!/usr/bin/env python3 +""" +Antenna service abstraction used by gps-ingest REPL. + +Provides a uniform API over either a real ODrive-backed antenna or a mock +software implementation when hardware is not available. +""" + +from __future__ import annotations + +import time +from dataclasses import dataclass +from typing import Dict, Tuple, Optional + + +@dataclass +class AntennaConfig: + # Motion limits (degrees) + limits_yaw_deg: Tuple[float, float] = (-370.0, 370.0) # Multi-turn support to match manual.py + limits_pitch_deg: Tuple[float, float] = (-1.0, 90.0) + # Gear ratios for converting degrees <-> motor turns (optional if using real controller differently) + gear_ratio_yaw: float = 30.0 + gear_ratio_pitch: float = 36.0 + # Hardware toggles + use_real_hardware: bool = False + # Optional debug prints + debug: bool = False + # ODrive motor/controller settings + pole_pairs: int = 7 + torque_constant: float = 8.27 / 150.0 + current_limit: float = 30.0 + regen_current_limit: float = 4.0 + dc_max_negative_current: float = -6.0 + dc_max_positive_current: float = 60.0 + calibration_current: float = 8.0 + calibration_timeout: float = 30.0 + # Controller gains + pos_gain: float = 2.0 + vel_gain: float = 0.10 + vel_integrator_gain: float = 3.0 + # Trap trajectory defaults (in degrees per second) + trap_vel_limit_degps: float = 120.0 + trap_accel_limit_degps2: float = 90.0 + trap_decel_limit_degps2: float = 90.0 + # Direction (+1 normal, -1 if mechanics/wiring are reversed) + dir_yaw: float = +1.0 + dir_pitch: float = +1.0 + # Velocity control (controller mode) + vel_ramp_rate_degps2_yaw: float = 180.0 + vel_ramp_rate_degps2_pitch: float = 180.0 + max_vel_degps_yaw: float = 120.0 + max_vel_degps_pitch: float = 120.0 + + +class AntennaService: + """Facade for antenna control. Falls back to a mock implementation if hardware is not enabled.""" + + def __init__(self, config: AntennaConfig): + self.config = config + self._connected = False + self._configured = False + self._calibrated = False + self._engaged = False + # Internal state (degrees) + self._yaw_deg = 0.0 + self._pitch_deg = 0.0 + # Hardware handles (if any) + self._device = None # ODrive device + self._axes: Dict[str, object] = {} # {'yaw': axis0, 'pitch': axis1} + self._offset_turns: Dict[str, float] = {"yaw": 0.0, "pitch": 0.0} + # Lazily imported enums (only when hardware is enabled) + self._AxisState = None + self._ControlMode = None + self._InputMode = None + + # ---- Lifecycle ---- + def connect(self) -> bool: + if not self.config.use_real_hardware: + self._connected = True + return True + try: + import odrive # type: ignore + from odrive.enums import AxisState, ControlMode, InputMode # type: ignore + self._AxisState = AxisState + self._ControlMode = ControlMode + self._InputMode = InputMode + print("AntennaService: Searching for ODrive...") + self._device = odrive.find_any() + if not self._device: + print("AntennaService: no ODrive found") + self._connected = False + return False + self._axes = {"yaw": self._device.axis0, "pitch": self._device.axis1} + self._device.clear_errors() + self._connected = True + if self.config.debug: + print(f"AntennaService: connected to ODrive serial {self._device.serial_number}") + return True + except Exception as e: # pragma: no cover + print("AntennaService: hardware connect failed:", e) + self._connected = False + return False + + def configure(self) -> bool: + if not self._connected: + return False + if not self.config.use_real_hardware: + self._configured = True + return True + try: + dev = self._device + assert dev is not None + # Global device configuration + dev.config.enable_brake_resistor = True + dev.config.brake_resistance = 2.0 + dev.config.dc_max_negative_current = self.config.dc_max_negative_current + dev.config.dc_max_positive_current = self.config.dc_max_positive_current + dev.config.max_regen_current = self.config.regen_current_limit + # Per-axis configuration + for name, axis in self._axes.items(): + # Mirror manual.py behavior + axis.controller.config.vel_limit = float('inf') + mcfg = axis.motor.config + ccfg = axis.controller.config + tcfg = axis.trap_traj.config + # Motor settings + mcfg.pole_pairs = self.config.pole_pairs + mcfg.torque_constant = self.config.torque_constant + mcfg.current_lim = self.config.current_limit + mcfg.calibration_current = self.config.calibration_current + # Controller settings + ccfg.input_mode = self._InputMode.TRAP_TRAJ + ccfg.control_mode = self._ControlMode.POSITION_CONTROL + ccfg.pos_gain = self.config.pos_gain + ccfg.vel_gain = self.config.vel_gain + ccfg.vel_integrator_gain = self.config.vel_integrator_gain + # Trap trajectory limits (in motor turns per second) + if name == 'yaw': + gear_ratio = self.config.gear_ratio_yaw + else: # pitch + gear_ratio = self.config.gear_ratio_pitch + + tcfg.vel_limit = (self.config.trap_vel_limit_degps / 360.0) * gear_ratio + tcfg.accel_limit = (self.config.trap_accel_limit_degps2 / 360.0) * gear_ratio + tcfg.decel_limit = (self.config.trap_decel_limit_degps2 / 360.0) * gear_ratio + # Keep controller vel_limit in sync with trap traj + ccfg.vel_limit = tcfg.vel_limit + # Ensure non-circular setpoints for both axes + ccfg.circular_setpoints = False + self._configured = True + if self.config.debug: + print("AntennaService: configured motors and controller") + return True + except Exception as e: + print("AntennaService: configure failed:", e) + return False + + def calibrate(self) -> bool: + if not self._configured: + return False + if not self.config.use_real_hardware: + self._calibrated = True + return True + try: + dev = self._device + assert dev is not None + dev.clear_errors() + timeout_s = self.config.calibration_timeout + # Start calibration on both axes simultaneously + for name, ax in self._axes.items(): + if self.config.debug: + print(f"AntennaService: requesting calibration for {name} axis...") + ax.requested_state = self._AxisState.FULL_CALIBRATION_SEQUENCE + + # Wait until both axes are idle or timeout + start = time.time() + while True: + all_idle = all(ax.current_state == self._AxisState.IDLE for ax in self._axes.values()) + if all_idle: + break + if time.time() - start > timeout_s: + print("AntennaService: calibration timed out for one or more axes") + return False + time.sleep(0.2) + + # Set both axes to closed loop control + for name, ax in self._axes.items(): + ax.requested_state = self._AxisState.CLOSED_LOOP_CONTROL + time.sleep(0.5) + + # Check for errors on both axes + for name, ax in self._axes.items(): + if ax.error != 0: + try: + from odrive.utils import dump_errors # type: ignore + dump_errors(dev) + except Exception: + pass + print(f"AntennaService: {name} axis error after calibration") + return False + if self.config.debug: + print(f"AntennaService: {name} axis calibration complete") + self._calibrated = True + self._engaged = True + if self.config.debug: + print("AntennaService: calibration successful") + return True + except Exception as e: + print("AntennaService: calibrate failed:", e) + return False + + def engage(self) -> bool: + if not self._calibrated: + return False + if not self.config.use_real_hardware: + self._engaged = True + return True + try: + for ax in self._axes.values(): + ax.requested_state = self._AxisState.CLOSED_LOOP_CONTROL + time.sleep(0.2) + self._engaged = True + return not self._has_errors() + except Exception: + return False + + def disengage(self) -> bool: + if not self.config.use_real_hardware: + self._engaged = False + return True + try: + for ax in self._axes.values(): + ax.requested_state = self._AxisState.IDLE + time.sleep(0.2) + self._engaged = False + return not self._has_errors() + except Exception: + return False + + def stop(self) -> bool: + if not self.config.use_real_hardware: + return True + try: + for ax in self._axes.values(): + ax.controller.input_vel = 0 + return not self._has_errors() + except Exception: + return False + + # ---- Velocity control (controller mode) ---- + def enter_velocity_mode(self) -> bool: + if not self._connected: + return False + if not self.config.use_real_hardware: + # No-op in mock mode + return True + try: + for name, ax in self._axes.items(): + ccfg = ax.controller.config + ccfg.control_mode = self._ControlMode.VELOCITY_CONTROL + ccfg.input_mode = self._InputMode.VEL_RAMP + # Configure ramp rates per axis + if name == 'yaw': + ramp_deg_s2 = self.config.vel_ramp_rate_degps2_yaw + max_deg_s = self.config.max_vel_degps_yaw + gear = self.config.gear_ratio_yaw + else: + ramp_deg_s2 = self.config.vel_ramp_rate_degps2_pitch + max_deg_s = self.config.max_vel_degps_pitch + gear = self.config.gear_ratio_pitch + ccfg.vel_ramp_rate = (ramp_deg_s2 / 360.0) * gear + ccfg.vel_limit = max(1.0, (max_deg_s / 360.0) * gear * 1.5) + return True + except Exception: + return False + + def set_velocity(self, *, pitch_dps: Optional[float] = None, yaw_dps: Optional[float] = None) -> bool: + if pitch_dps is None and yaw_dps is None: + return True + if not self.config.use_real_hardware: + # In mock mode, just accept + return True + try: + if pitch_dps is not None: + turns_per_s = (self.config.dir_pitch * pitch_dps / 360.0) * self.config.gear_ratio_pitch + self._axes['pitch'].controller.input_vel = turns_per_s + if yaw_dps is not None: + turns_per_s = (self.config.dir_yaw * yaw_dps / 360.0) * self.config.gear_ratio_yaw + self._axes['yaw'].controller.input_vel = turns_per_s + return not self._has_errors() + except Exception: + return False + + def calculate_max_permissible_velocity(self, axis_name: str, requested_velocity_degps: float) -> float: + """Limit velocity so motion can stop before hitting position limits.""" + if requested_velocity_degps == 0.0: + return 0.0 + pos = self.get_position() + current_pos = pos[axis_name] + lo, hi = (self.config.limits_pitch_deg if axis_name == 'pitch' else self.config.limits_yaw_deg) + max_accel = self.config.vel_ramp_rate_degps2_pitch if axis_name == 'pitch' else self.config.vel_ramp_rate_degps2_yaw + if requested_velocity_degps > 0: + available = hi - current_pos + direction = 1.0 + else: + available = current_pos - lo + direction = -1.0 + if available <= 0: + return 0.0 + max_stop_vel = (2.0 * max_accel * max(available, 0.0)) ** 0.5 + limited = max_stop_vel if abs(requested_velocity_degps) > max_stop_vel else abs(requested_velocity_degps) + return direction * limited + + def zero(self) -> None: + if not self.config.use_real_hardware: + self._yaw_deg = 0.0 + self._pitch_deg = 0.0 + return + for name, ax in self._axes.items(): + self._offset_turns[name] = float(ax.encoder.pos_estimate) + + # ---- Status ---- + def get_position(self) -> Dict[str, float]: + if not self.config.use_real_hardware: + return {"yaw": self._yaw_deg, "pitch": self._pitch_deg} + pos: Dict[str, float] = {} + for name, ax in self._axes.items(): + turns = float(ax.encoder.pos_estimate) - self._offset_turns[name] + if name == 'yaw': + deg = (turns / self.config.gear_ratio_yaw) * 360.0 + pos[name] = self.config.dir_yaw * deg + else: + deg = (turns / self.config.gear_ratio_pitch) * 360.0 + pos[name] = self.config.dir_pitch * deg + return pos + + def status(self) -> Dict[str, bool]: + return { + "connected": self._connected, + "configured": self._configured, + "calibrated": self._calibrated, + "engaged": self._engaged, + } + + # ---- Command ---- + def set_position(self, *, pitch: Optional[float] = None, yaw: Optional[float] = None, bypass_limits: bool = False) -> bool: + # Always print when called, with arguments + if self.config.debug: + print(f"AntennaService: set_position called with pitch={pitch} yaw={yaw} bypass_limits={bypass_limits}") + + if pitch is None and yaw is None: + return True + + # Clamp in logical space (positive-up convention) with optional debug warnings + orig_pitch, orig_yaw = pitch, yaw + if pitch is not None and not bypass_limits: + lo, hi = self.config.limits_pitch_deg + new_pitch = max(lo, min(hi, pitch)) + if new_pitch != pitch and self.config.debug: + print(f"WARNING: Pitch clamped {pitch:.2f}° -> {new_pitch:.2f}°") + pitch = new_pitch + if yaw is not None and not bypass_limits: + lo, hi = self.config.limits_yaw_deg + new_yaw = max(lo, min(hi, yaw)) + if new_yaw != yaw and self.config.debug: + print(f"WARNING: Yaw clamped {yaw:.2f}° -> {new_yaw:.2f}°") + yaw = new_yaw + + if not self.config.use_real_hardware: + if self.config.debug: + print(f"AntennaService: (TEST) set_position to pitch={pitch} yaw={yaw}") + if pitch is not None: + self._pitch_deg = pitch + if yaw is not None: + self._yaw_deg = yaw + if self.config.debug: + print(f"AntennaService: (TEST) internal state now pitch={self._pitch_deg:.2f} yaw={self._yaw_deg:.2f}") + return True + + try: + # Map to hardware direction and send + if self.config.debug: + print(f"AntennaService: (HW) set_position to pitch={pitch} yaw={yaw}") + if pitch is not None: + pitch_hw = self.config.dir_pitch * pitch + turns = (pitch_hw / 360.0) * self.config.gear_ratio_pitch + self._offset_turns["pitch"] + if self.config.debug: + print(f"AntennaService: (HW) pitch command: pitch_hw={pitch_hw:.2f}, turns={turns:.4f}") + self._axes["pitch"].controller.input_pos = turns + if yaw is not None: + yaw_hw = self.config.dir_yaw * yaw + turns = (yaw_hw / 360.0) * self.config.gear_ratio_yaw + self._offset_turns["yaw"] + if self.config.debug: + print(f"AntennaService: (HW) yaw command: yaw_hw={yaw_hw:.2f}, turns={turns:.4f}") + self._axes["yaw"].controller.input_pos = turns + return not self._has_errors() + except Exception as e: + print("AntennaService: set_position failed:", e) + return False + + # ---- Internal ---- + def _has_errors(self) -> bool: + if not self.config.use_real_hardware: + return False + try: + if any(getattr(ax, 'error', 0) for ax in self._axes.values()): + try: + from odrive.utils import dump_errors # type: ignore + dump_errors(self._device) + except Exception: + pass + return True + return False + except Exception: + return True diff --git a/apps/antenna-tracker/example_pipeline.py b/apps/antenna-tracker/example_pipeline.py new file mode 100755 index 0000000..c872e9c --- /dev/null +++ b/apps/antenna-tracker/example_pipeline.py @@ -0,0 +1,401 @@ +#!/usr/bin/env python3 +""" +Example Python script that demonstrates how gps-ingest can be used in a pipeline. +This simulates the "predictor" component from the antenna tracker architecture. +""" + +import json +import subprocess +import sys +import time +import shlex +import select +from typing import Dict, List, Optional +from dataclasses import dataclass +from datetime import datetime, timezone +import math +import numpy as np + +# Antenna tracker location (observer) +ANTENNA_LAT_DEG = 48.48058344683317 +ANTENNA_LON_DEG = -81.33124126482966 +ANTENNA_ALT_M = 300.0 + +# Toggle between real gps-ingest and test mode (easily tweakable) +USE_REAL_GPS_INGEST = False +# Test coordinates for the target (rocket) when not using real gps-ingest +TEST_TARGET_LAT_DEG = 48.48158344683317 +TEST_TARGET_LON_DEG = -81.33124126482966 +TEST_TARGET_ALT_M = 301.0 + +# Antenna yaw-zero reference and normalization (easily tweakable) +# Yaw-zero is the mechanical zero direction; with South as zero we set 180° from North +ANTENNA_YAW_ZERO_DEG = 180.0 # due South +ROTATION_NORMALIZATION = "pm180" # "pm180" for [-180,180], or "0to360" for [0,360) + +# History configuration +HISTORY_MAX_SAMPLES = 200 +STREAM_TIMEOUT_S = 15.0 +TARGET_STREAM_SAMPLES = 10 # try to collect up to this many per run if available + +# WGS84 ellipsoid constants +_WGS84_A = 6378137.0 # semi-major axis [m] +_WGS84_F = 1.0 / 298.257223563 # flattening +_WGS84_E2 = _WGS84_F * (2.0 - _WGS84_F) # eccentricity squared + +@dataclass +class GpsPoint: + latitude: float + longitude: float + altitude: float + timestamp: str + source: str + +@dataclass +class Prediction: + target_lat: float + target_lon: float + target_alt: float + confidence: float + prediction_time: str + +class GpsPredictor: + """Simple GPS predictor that demonstrates pipeline usage""" + + def __init__(self, gps_ingest_path: str = "cargo run -p gps-ingest"): + self.gps_ingest_path = gps_ingest_path + self.last_position: Optional[GpsPoint] = None + # Each entry: (t_epoch_s, lat, lon, alt) + self.history: List[tuple[float, float, float, float]] = [] + + def _add_sample(self, pos: GpsPoint) -> None: + t = time.time() + self.history.append((t, pos.latitude, pos.longitude, pos.altitude)) + if len(self.history) > HISTORY_MAX_SAMPLES: + self.history = self.history[-HISTORY_MAX_SAMPLES:] + self.last_position = pos + + def _add_sample_from_dict(self, d: Dict) -> None: + pos = GpsPoint( + latitude=d['lat'], + longitude=d['lon'], + altitude=d['altitude_m'], + timestamp=d['ts'], + source=d.get('source', 'gps-ingest') + ) + self._add_sample(pos) + + def get_latest_gps_data(self) -> Optional[Dict]: + """Get GPS data by streaming stdout; accumulate multiple samples for regression when possible. + If USE_REAL_GPS_INGEST is False, return test coordinates and add them to history. + """ + try: + if not USE_REAL_GPS_INGEST: + # Test mode: return synthetic sample and add to history + now = datetime.now(timezone.utc).isoformat() + print( + f"[TEST MODE] Using fixed coordinates lat={TEST_TARGET_LAT_DEG}, lon={TEST_TARGET_LON_DEG}, alt={TEST_TARGET_ALT_M}m" + ) + d = { + "lat": TEST_TARGET_LAT_DEG, + "lon": TEST_TARGET_LON_DEG, + "altitude_m": TEST_TARGET_ALT_M, + "ts": now, + "source": "test" + } + self._add_sample_from_dict(d) + return d + + cmd = shlex.split(self.gps_ingest_path) + proc = subprocess.Popen( + cmd, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + text=True, + bufsize=1, # line-buffered + cwd=".." + ) + + start = time.monotonic() + timeout_s = STREAM_TIMEOUT_S + samples_collected = 0 + last_valid: Optional[Dict] = None + + assert proc.stdout is not None + while True: + # Break if timed out + if time.monotonic() - start > timeout_s: + break + + rlist, _, _ = select.select([proc.stdout], [], [], 0.5) + if not rlist: + # Also break if process has exited and there's nothing to read + if proc.poll() is not None: + break + continue + + line = proc.stdout.readline() + if not line: + # EOF + if proc.poll() is not None: + break + continue + + line = line.strip() + if not line: + continue + + # Expect JSON lines from gps-ingest; skip logs + if not (line.startswith("{") and line.endswith("}")): + continue + + try: + candidate = json.loads(line) + except json.JSONDecodeError: + continue + + if ( + candidate.get("lat") is not None + and candidate.get("lon") is not None + and candidate.get("altitude_m") is not None + and candidate.get("ts") is not None + ): + # Accept both gps-ingest and test sources for accumulation + self._add_sample_from_dict(candidate) + last_valid = candidate + samples_collected += 1 + if samples_collected >= TARGET_STREAM_SAMPLES: + break + + # Ensure process is stopped + if proc.poll() is None: + try: + proc.terminate() + try: + proc.wait(timeout=2) + except subprocess.TimeoutExpired: + proc.kill() + except Exception: + pass + + return last_valid + + except FileNotFoundError as e: + print(f"gps-ingest not found: {e}", file=sys.stderr) + return None + except Exception as e: + print(f"Error getting GPS data: {e}", file=sys.stderr) + return None + + def predict_next_position(self, current_pos: GpsPoint) -> Prediction: + """Predict next position (+1s) using linear regression over accumulated history.""" + # Ensure the current point is included + self._add_sample(current_pos) + + if len(self.history) < 2: + # Not enough data; return current as predicted + t_iso = datetime.now(timezone.utc).isoformat() + return Prediction( + target_lat=current_pos.latitude, + target_lon=current_pos.longitude, + target_alt=current_pos.altitude, + confidence=0.5, + prediction_time=t_iso, + ) + + # Prepare data for regression + times = np.array([t for (t, _, _, _) in self.history], dtype=float) + lats = np.array([lat for (_, lat, _, _) in self.history], dtype=float) + lons = np.array([lon for (_, _, lon, _) in self.history], dtype=float) + alts = np.array([alt for (_, _, _, alt) in self.history], dtype=float) + + # Normalize time to improve conditioning + t0 = times[0] + t_rel = times - t0 + t_future = (times[-1] + 1.0) - t0 # predict 1 second ahead + + try: + lat_slope, lat_intercept = np.polyfit(t_rel, lats, 1) + lon_slope, lon_intercept = np.polyfit(t_rel, lons, 1) + alt_slope, alt_intercept = np.polyfit(t_rel, alts, 1) + + pred_lat = lat_slope * t_future + lat_intercept + pred_lon = lon_slope * t_future + lon_intercept + pred_alt = alt_slope * t_future + alt_intercept + confidence = 0.9 if len(self.history) >= 5 else 0.7 + except Exception: + # Fallback if polyfit fails (e.g., numerical issues) + pred_lat = current_pos.latitude + pred_lon = current_pos.longitude + pred_alt = current_pos.altitude + confidence = 0.5 + + return Prediction( + target_lat=pred_lat, + target_lon=pred_lon, + target_alt=pred_alt, + confidence=confidence, + prediction_time=datetime.now(timezone.utc).isoformat() + ) + + @staticmethod + def _geodetic_to_ecef(lat_deg: float, lon_deg: float, h_m: float) -> tuple[float, float, float]: + lat = math.radians(lat_deg) + lon = math.radians(lon_deg) + sin_lat = math.sin(lat) + cos_lat = math.cos(lat) + sin_lon = math.sin(lon) + cos_lon = math.cos(lon) + # Prime vertical radius of curvature + N = _WGS84_A / math.sqrt(1.0 - _WGS84_E2 * sin_lat * sin_lat) + x = (N + h_m) * cos_lat * cos_lon + y = (N + h_m) * cos_lat * sin_lon + z = (N * (1.0 - _WGS84_E2) + h_m) * sin_lat + return x, y, z + + @staticmethod + def _ecef_to_enu(dx: tuple[float, float, float], lat0_deg: float, lon0_deg: float) -> tuple[float, float, float]: + lat0 = math.radians(lat0_deg) + lon0 = math.radians(lon0_deg) + sin_lat = math.sin(lat0) + cos_lat = math.cos(lat0) + sin_lon = math.sin(lon0) + cos_lon = math.cos(lon0) + dx_x, dx_y, dx_z = dx + # Rotation from ECEF delta to ENU at observer + e = -sin_lon * dx_x + cos_lon * dx_y + n = -sin_lat * cos_lon * dx_x - sin_lat * sin_lon * dx_y + cos_lat * dx_z + u = cos_lat * cos_lon * dx_x + cos_lat * sin_lon * dx_y + sin_lat * dx_z + return e, n, u + + @staticmethod + def normalize_angle_0_360(deg: float) -> float: + return (deg % 360.0 + 360.0) % 360.0 + + @staticmethod + def normalize_angle_pm180(deg: float) -> float: + d = GpsPredictor.normalize_angle_0_360(deg) + return d - 360.0 if d > 180.0 else d + + @staticmethod + def initial_bearing_deg(lat1_deg: float, lon1_deg: float, lat2_deg: float, lon2_deg: float) -> float: + """Great-circle initial bearing from point 1 to point 2, degrees cw from North.""" + lat1 = math.radians(lat1_deg) + lat2 = math.radians(lat2_deg) + dlon = math.radians(lon2_deg - lon1_deg) + x = math.sin(dlon) * math.cos(lat2) + y = math.cos(lat1) * math.sin(lat2) - math.sin(lat1) * math.cos(lat2) * math.cos(dlon) + brng = math.degrees(math.atan2(x, y)) + return GpsPredictor.normalize_angle_0_360(brng) + + def compute_az_el(self, obs_lat: float, obs_lon: float, obs_alt: float, + tgt_lat: float, tgt_lon: float, tgt_alt: float) -> tuple[float, float]: + """Compute azimuth (yaw, degrees cw from North) and elevation (pitch, degrees) from observer to target.""" + x_o, y_o, z_o = self._geodetic_to_ecef(obs_lat, obs_lon, obs_alt) + x_t, y_t, z_t = self._geodetic_to_ecef(tgt_lat, tgt_lon, tgt_alt) + dx = (x_t - x_o, y_t - y_o, z_t - z_o) + e, n, u = self._ecef_to_enu(dx, obs_lat, obs_lon) + az_rad = math.atan2(e, n) # 0 at North, +East + el_rad = math.atan2(u, math.hypot(e, n)) + az_deg = math.degrees(az_rad) + if az_deg < 0: + az_deg += 360.0 + el_deg = math.degrees(el_rad) + return az_deg, el_deg + + def rotation_from_yaw_zero(self, bearing_deg: float, yaw_zero_deg: float, mode: str = "pm180") -> float: + raw = bearing_deg - yaw_zero_deg + if mode == "0to360": + return GpsPredictor.normalize_angle_0_360(raw) + return GpsPredictor.normalize_angle_pm180(raw) + + def run_prediction_cycle(self): + """Main prediction cycle - simulates continuous operation""" + print("=== GPS Predictor Starting ===") + print("Getting latest GPS data...") + + data = self.get_latest_gps_data() + + if not data: + print("No valid GPS data available") + return + + # Create GPS point from the new/last data + current_pos = GpsPoint( + latitude=data['lat'], + longitude=data['lon'], + altitude=data['altitude_m'], + timestamp=data['ts'], + source=data.get('source', 'gps-ingest') + ) + + print(f"Current Position: {current_pos.latitude:.6f}, {current_pos.longitude:.6f}") + print(f"Altitude: {current_pos.altitude:.1f}m") + print(f"Source: {current_pos.source}") + print(f"Timestamp: {current_pos.timestamp}") + + # Compute az/el for current position + az_deg, el_deg = self.compute_az_el( + ANTENNA_LAT_DEG, ANTENNA_LON_DEG, ANTENNA_ALT_M, + current_pos.latitude, current_pos.longitude, current_pos.altitude + ) + # Compute great-circle initial bearing (from North, cw) and rotation from yaw-zero=South + bearing_deg = self.initial_bearing_deg( + ANTENNA_LAT_DEG, ANTENNA_LON_DEG, + current_pos.latitude, current_pos.longitude + ) + rotation_deg = self.rotation_from_yaw_zero( + bearing_deg, ANTENNA_YAW_ZERO_DEG, ROTATION_NORMALIZATION + ) + print(f"\nPointing (current):") + print(f" Yaw (azimuth): {az_deg:.2f}° | Pitch (elevation): {el_deg:.2f}°") + print(f" Great-circle bearing: {bearing_deg:.2f}° from North") + print(f" Antenna rotation (yaw-zero=South): {rotation_deg:.2f}° [{ROTATION_NORMALIZATION}]") + + # Predict next position (+1s) using regression over accumulated history + prediction = self.predict_next_position(current_pos) + + print(f"\nPrediction (1 second ahead) [linear regression]:") + print(f" Target: {prediction.target_lat:.6f}, {prediction.target_lon:.6f}") + print(f" Altitude: {prediction.target_alt:.1f}m") + print(f" Confidence: {prediction.confidence:.2f}") + + # Compute az/el, bearing and rotation for predicted position + az_pred_deg, el_pred_deg = self.compute_az_el( + ANTENNA_LAT_DEG, ANTENNA_LON_DEG, ANTENNA_ALT_M, + prediction.target_lat, prediction.target_lon, prediction.target_alt + ) + bearing_pred_deg = self.initial_bearing_deg( + ANTENNA_LAT_DEG, ANTENNA_LON_DEG, + prediction.target_lat, prediction.target_lon + ) + rotation_pred_deg = self.rotation_from_yaw_zero( + bearing_pred_deg, ANTENNA_YAW_ZERO_DEG, ROTATION_NORMALIZATION + ) + print(f"\nPointing (predicted +1s):") + print(f" Yaw (azimuth): {az_pred_deg:.2f}° | Pitch (elevation): {el_pred_deg:.2f}°") + print(f" Great-circle bearing: {bearing_pred_deg:.2f}° from North") + print(f" Antenna rotation (yaw-zero=South): {rotation_pred_deg:.2f}° [{ROTATION_NORMALIZATION}]") + + # In a real system, this would be sent to the antenna tracker API + print(f"\nSending to antenna tracker API...") + print( + f" COMMAND: TRACK yaw={az_pred_deg:.2f} pitch={el_pred_deg:.2f} rotation={rotation_pred_deg:.2f} (at +1s)" + ) + + self.last_position = current_pos + +def main(): + """Main function demonstrating the pipeline""" + predictor = GpsPredictor() + + try: + predictor.run_prediction_cycle() + except KeyboardInterrupt: + print("\nPrediction cycle interrupted") + except Exception as e: + print(f"Error in prediction cycle: {e}", file=sys.stderr) + sys.exit(1) + +if __name__ == "__main__": + main() diff --git a/apps/antenna-tracker/fake_gps_ingest.py b/apps/antenna-tracker/fake_gps_ingest.py new file mode 100644 index 0000000..62ffbc9 --- /dev/null +++ b/apps/antenna-tracker/fake_gps_ingest.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python3 +import sys +import time +import json +import argparse +from datetime import datetime + + +def parse_args(): + p = argparse.ArgumentParser(description="Replay JSONL GPS as timed stdout") + p.add_argument("jsonl", help="Input JSONL with fields: ts, lat, lon, altitude_m, source") + p.add_argument("--speed", type=float, default=1.0, help="Time scale (2.0 = 2x faster)") + p.add_argument("--loop", action="store_true", help="Loop forever") + p.add_argument("--delay", type=float, default=0.0, help="Seconds to wait before first sample") + return p.parse_args() + + +def iso_to_epoch(s: str) -> float: + if s.endswith('Z'): + s = s[:-1] + "+00:00" + return datetime.fromisoformat(s).timestamp() + + +def replay(path: str, speed: float, loop: bool, delay: float) -> None: + while True: + prev_t = None + first = True + with open(path, "r") as f: + for line in f: + line = line.strip() + if not line: + continue + try: + obj = json.loads(line) + except Exception: + continue + t = iso_to_epoch(str(obj.get("ts"))) + if first: + if delay > 0: + time.sleep(delay) + first = False + if prev_t is not None: + dt = max(0.0, (t - prev_t) / max(1e-6, speed)) + time.sleep(dt) + sys.stdout.write(json.dumps(obj) + "\n") + sys.stdout.flush() + prev_t = t + if not loop: + break + + +def main() -> None: + a = parse_args() + replay(a.jsonl, a.speed, a.loop, a.delay) + + +if __name__ == "__main__": + main() diff --git a/apps/antenna-tracker/main.py b/apps/antenna-tracker/main.py new file mode 100755 index 0000000..7d7c9d5 --- /dev/null +++ b/apps/antenna-tracker/main.py @@ -0,0 +1,431 @@ +#!/usr/bin/env python3 +""" +gps-ingest CLI REPL for antenna integration. + +Commands: + - gps: stream-print latest GPS samples; Ctrl-C to stop + - prediction: print current prediction, pointing angles and antenna rotation + - rotate: print the command that would rotate antenna to predicted angles + - yolo: continuously (auto) print predicted rotation; Ctrl-C to stop + +This CLI uses PredictorService as the API layer managing background ingestion +and prediction. +""" + +from __future__ import annotations + +import sys +import time +from dataclasses import asdict +import os +import json + +from predictor_service import PredictorConfig, PredictorService +from antenna_service import AntennaConfig, AntennaService +from remote import XboxController + + +def _print_gps(sample) -> None: + print( + f"[{sample.ts_iso}] lat={sample.lat:.8f} lon={sample.lon:.8f} alt={sample.alt_m:.1f}m src={sample.source}" + ) + + +def cmd_gps(svc: PredictorService) -> None: + print("Streaming GPS (Ctrl-C to stop)...") + try: + # Print existing history first + hist = svc.get_history() + last_ts = None + for s in hist: + _print_gps(s) + last_ts = s.ts_iso + while True: + s = svc.get_latest() + if s and s.ts_iso != last_ts: + _print_gps(s) + last_ts = s.ts_iso + time.sleep(0.1) + except KeyboardInterrupt: + print("\nStopped GPS stream.") + + +def cmd_prediction(svc: PredictorService) -> None: + latest = svc.get_latest() + pred = svc.get_prediction() + if not latest: + print("No GPS yet.") + return + print("Antenna:") + print( + f" lat={svc.config.antenna_lat_deg:.8f} lon={svc.config.antenna_lon_deg:.8f} alt={svc.config.antenna_alt_m:.1f}m" + ) + print("Latest GPS:") + _print_gps(latest) + if not pred: + print("No prediction yet.") + return + az, el = svc.compute_az_el(pred.lat, pred.lon, pred.alt_m) + bearing = svc.initial_bearing_deg( + svc.config.antenna_lat_deg, svc.config.antenna_lon_deg, pred.lat, pred.lon + ) + + # Preview the rotation we would send (without updating the accumulator) + if svc.config.yaw_normalization == "continuous" and svc._last_yaw_cmd is not None: + rotation_preview = svc.rotation_from_yaw_zero_continuous(az, svc._last_yaw_cmd) + else: + rotation_preview = svc._rotation_from_yaw_zero_basic(az) + + print("Prediction (+1s):") + print( + f" lat={pred.lat:.8f} lon={pred.lon:.8f} alt={pred.alt_m:.1f}m conf={pred.confidence:.2f} ts={pred.ts_iso}" + ) + print(f" yaw(az from North)={az:.2f}° pitch(el)={el:.2f}°") + print(f" bearing={bearing:.2f}° from North; rotation(yaw-zero={svc.config.antenna_yaw_zero_deg:.1f}, mode={svc.config.yaw_normalization})={rotation_preview:.2f}°") + + # Show what would be sent to the antenna + yaw_cmd, pit_cmd = svc.yaw_pitch_from_target(pred.lat, pred.lon, pred.alt_m) + print(f"ROTATE pitch={pit_cmd:.2f}° yaw={yaw_cmd:.2f}°") + + +def cmd_rotate(svc: PredictorService, ant: AntennaService) -> None: + pred = svc.get_prediction() + if not pred: + print("No prediction available.") + return + + yaw_cmd, pit_cmd = svc.yaw_pitch_from_target(pred.lat, pred.lon, pred.alt_m) + ok = ant.set_position(pitch=pit_cmd, yaw=yaw_cmd, bypass_limits=False) + if ok: + print(f"ROTATE pitch={pit_cmd:.2f}° yaw={yaw_cmd:.2f}° (sent)") + else: + print("Failed to send rotation command") + + +# def cmd_yolo(svc: PredictorService, ant: AntennaService) -> None: +def cmd_yolo(svc: PredictorService, ant: AntennaService | None = None, *, do_move: bool = False) -> None: + print("Auto-tracking predictions (Ctrl-C to stop)...") + try: + while True: + pred = svc.get_prediction() + if pred: + yaw_cmd, pit_cmd = svc.yaw_pitch_from_target(pred.lat, pred.lon, pred.alt_m) + if do_move and ant is not None: + ant.set_position(pitch=pit_cmd, yaw=yaw_cmd, bypass_limits=False) + print(f"\rpitch={pit_cmd:+06.2f}° yaw={yaw_cmd:+07.2f}°", end="") + time.sleep(0.3) + except KeyboardInterrupt: + print("\nStopped auto-tracking.") + + +def cmd_demo(svc: PredictorService, ant: AntennaService, jsonl_path: str, *, speed: float = 10.0, delay: float = 5.0, do_move: bool = False) -> None: + """Preview first 5 lines of the JSONL, then stream using the replay script with delay.""" + abs_jsonl = os.path.abspath(jsonl_path) + if not os.path.exists(abs_jsonl): + print(f"JSONL not found: {abs_jsonl}") + return + print(f"Demo preview (first 5 lines) from {abs_jsonl}:") + try: + with open(abs_jsonl, 'r') as f: + shown = 0 + for line in f: + line = line.strip() + if not line: + continue + try: + obj = json.loads(line) + except Exception: + continue + ts = obj.get('ts') + lat = obj.get('lat') + lon = obj.get('lon') + alt = obj.get('altitude_m') + src = obj.get('source', 'jsonl') + print(f" [{ts}] lat={lat:.8f} lon={lon:.8f} alt={alt:.1f}m src={src}") + shown += 1 + if shown >= 5: + break + except Exception as e: + print("Failed to preview JSONL:", e) + return + + # Reconfigure predictor to use external feed via replay script + svc.stop() + script_path = os.path.abspath(os.path.join(os.path.dirname(__file__), 'fake_gps_ingest.py')) + svc.config.use_real_gps_ingest = True + svc.config.num_samples = 8 + svc.config.gps_ingest_cmd = f"python3 {script_path} {abs_jsonl} --speed {speed} --delay {delay}" + print(f"Starting demo stream with delay={delay}s, speed={speed}x...{' (MOVING)' if do_move else ''}") + svc.start() + # Run like yolo (auto-tracking printout); Ctrl-C to stop + cmd_yolo(svc, ant if do_move else None, do_move=do_move) +def cmd_calibrate(ant: AntennaService) -> None: + """Calibrate the antenna motors using the same logic as manual.py""" + print("Clearing errors and calibrating axes...") + if not ant._connected: + print("ERROR: Antenna not connected. Run connect first.") + return + + # Clear any existing errors before calibration + if hasattr(ant, '_device') and ant._device: + ant._device.clear_errors() + + print(f"Calibrating both axes simultaneously (timeout: {ant.config.calibration_timeout}s)...") + + # Start calibration on both axes + for name, ax in ant._axes.items(): + print(f"Requesting calibration for {name} axis...") + ax.requested_state = ant._AxisState.FULL_CALIBRATION_SEQUENCE + + start = time.time() + # Wait for both axes to finish calibration or timeout + while True: + all_idle = all(ax.current_state == ant._AxisState.IDLE for ax in ant._axes.values()) + if all_idle: + break + if time.time() - start > ant.config.calibration_timeout: + print("ERROR: Calibration timed out for one or more axes") + return + time.sleep(0.2) + + # Set both axes to closed loop control + for name, ax in ant._axes.items(): + ax.requested_state = ant._AxisState.CLOSED_LOOP_CONTROL + time.sleep(0.5) + + # Check for errors on both axes + for name, ax in ant._axes.items(): + if ax.error != 0: + print(f"ERROR: {name} axis has error after calibration") + # Use the existing _has_errors method which will dump errors + ant._has_errors() + return + print(f"{name.capitalize()} axis calibration complete.") + + print("All axes calibrated successfully.") + ant._calibrated = True + ant._engaged = True + + +def cmd_engage(ant: AntennaService) -> None: + """Engage the antenna motors for closed loop control""" + if not ant._connected: + print("ERROR: Antenna not connected. Run connect first.") + return + if not ant._calibrated: + print("ERROR: Antenna not calibrated. Run calibrate first.") + return + if ant._engaged: + print("Antenna is already engaged.") + return + + print("Engaging antenna motors...") + if ant.engage(): + print("Antenna motors engaged successfully.") + else: + print("ERROR: Failed to engage antenna motors.") + + +def cmd_disengage(ant: AntennaService) -> None: + """Disengage the antenna motors and set to idle""" + if not ant._connected: + print("ERROR: Antenna not connected. Run connect first.") + return + if not ant._engaged: + print("Antenna is already disengaged.") + return + + print("Disengaging antenna motors...") + if ant.disengage(): + print("Antenna motors disengaged successfully.") + else: + print("ERROR: Failed to disengage antenna motors.") + + +def cmd_help() -> None: + print("Available commands:") + print(" gps - Stream GPS history and live updates (Ctrl-C to stop)") + print(" prediction - Show current prediction, pointing angles and antenna rotation") + print(" rotate - Rotate antenna to current prediction (respects limits)") + print(" yolo - Auto-track predictions continuously (no motion)") + print(" yolo-move - Auto-track and MOVE antenna continuously (Ctrl-C to stop)") + print(" demo [path] - Replay JSONL with 5s delay (like yolo; no motion); default is apps/antenna-tracker/rocket_gps.jsonl") + print(" demo-move [path] - Replay JSONL with 5s delay and MOVE antenna continuously") + print(" pos [bypass] - Set absolute position in degrees; add 'bypass' to ignore limits") + print(" zero - Set current encoder offsets as zero for both axes") + print(" set-yaw-zero - Set predictor yaw-zero at runtime (no restart)") + print(" controller - Enter controller mode (Xbox): LX=yaw, RY=pitch; X=zero, Y=go to zero, B=idle") + print(" calibrate - Calibrate antenna motors (clears errors, runs full calibration)") + print(" engage - Engage antenna motors for closed loop control") + print(" disengage - Disengage antenna motors and set to idle") + print(" help - Show this help message") + print(" quit/exit - Exit the program") + + +def _run_controller_mode(ant: AntennaService) -> None: + """Controller mode similar to manual.py: LX=yaw, RY=pitch; X=zero, Y=go to zero, B=idle.""" + ctl = XboxController(deadzone=0.1) + if not ctl.start(): + print("ERROR: failed to start controller") + return + print("\nController mode (VELOCITY). Ctrl-C to exit.") + print("X=set zero here, Y=go to zero, B=idle") + try: + # Switch to velocity mode + if not ant.enter_velocity_mode(): + print("ERROR: couldn't enter velocity mode") + return + last_x = last_y = last_b = False + while True: + if not ctl.is_connected(): + print("Controller disconnected.") + break + xb = ctl.get_button('X') + yb = ctl.get_button('Y') + bb = ctl.get_button('B') + + if xb and not last_x: + ant.zero() + print("Zero position set at current location") + + if yb and not last_y: + # Temporarily move to zero using position control + ant.set_position(pitch=0.0, yaw=0.0, bypass_limits=False) + time.sleep(0.5) + + if bb and not last_b: + print("EMERGENCY STOP: setting IDLE") + ant.disengage() + break + + last_x, last_y, last_b = xb, yb, bb + + yaw_in = ctl.get_axis('LX') + pitch_in = -ctl.get_axis('RY') + yaw_dps = yaw_in * ant.config.max_vel_degps_yaw + pitch_dps = pitch_in * ant.config.max_vel_degps_pitch + # Apply kinematic limits based on remaining travel + yaw_dps_limited = ant.calculate_max_permissible_velocity('yaw', yaw_dps) + pitch_dps_limited = ant.calculate_max_permissible_velocity('pitch', pitch_dps) + ant.set_velocity(pitch_dps=pitch_dps_limited, yaw_dps=yaw_dps_limited) + + # Optional: show position when moving + if abs(yaw_in) > 0.05 or abs(pitch_in) > 0.05: + pos_deg = ant.get_position() + print(f"\rpitch={pos_deg['pitch']:+06.2f}° yaw={pos_deg['yaw']:+07.2f}°", end="") + time.sleep(0.02) + except KeyboardInterrupt: + print("\nExiting controller mode...") + finally: + ctl.stop() + + +def cmd_pos(ant: AntennaService, args: str) -> None: + """Set absolute pitch/yaw in degrees, like manual.py set_pos. + + Usage: pos [bypass] + """ + parts = args.split() + if len(parts) < 2: + print("Usage: pos [bypass]") + return + try: + pitch = float(parts[0]) + yaw = float(parts[1]) + except ValueError: + print("Usage: pos [bypass]") + return + bypass = False + if len(parts) >= 3 and parts[2].lower() in ("bypass", "true", "yes", "on"): + bypass = True + if bypass: + # Mirror manual.py: announce limits bypass explicitly + print(f"LIMITS BYPASSED: Pitch set to {pitch:.2f}°; Yaw set to {yaw:.2f}°") + ok = ant.set_position(pitch=pitch, yaw=yaw, bypass_limits=bypass) + # If not bypassing, AntennaService will WARN on clamps when debug=True + if ok: + print(f"Pitch Degrees: {pitch:.2f}, Yaw Degrees: {yaw:.2f}") + else: + print("ERROR: Failed to send position command") + + +def main() -> None: + cfg = PredictorConfig() + svc = PredictorService(cfg) + ant = AntennaService(AntennaConfig()) + ant.connect(); ant.configure(); ant.calibrate(); ant.engage() + svc.start() + print("gps-ingest REPL. Type 'help' for commands.") + try: + while True: + try: + cmd = input("> ").strip().lower() + except EOFError: + break + if cmd in ("quit", "exit"): + break + if cmd == "help": + cmd_help() + elif cmd == "gps": + cmd_gps(svc) + elif cmd == "prediction": + cmd_prediction(svc) + elif cmd == "rotate": + cmd_rotate(svc, ant) + elif cmd == "yolo": + cmd_yolo(svc, None, do_move=False) + elif cmd == "yolo-move": + cmd_yolo(svc, ant, do_move=True) + elif cmd.startswith("demo"): + parts = cmd.split(maxsplit=1) + if len(parts) == 2 and parts[1]: + path = parts[1].strip() + else: + path = os.path.abspath(os.path.join(os.path.dirname(__file__), 'rocket_gps.jsonl')) + if cmd.startswith("demo-move"): + cmd_demo(svc, ant, path, do_move=True) + else: + cmd_demo(svc, ant, path, do_move=False) + elif cmd.startswith("pos"): + # usage: pos [bypass] + args = cmd[len("pos"):].strip() + cmd_pos(ant, args) + elif cmd == "zero": + ant.zero() + print("Zero position set from encoder.") + elif cmd.startswith("set-yaw-zero"): + parts = cmd.split() + if len(parts) != 2: + print("Usage: set-yaw-zero ") + else: + try: + new_zero = float(parts[1]) + svc.config.antenna_yaw_zero_deg = new_zero + svc.reset_yaw_continuity() + print(f"Set yaw-zero to {new_zero:.2f}° and reset continuity.") + except ValueError: + print("Invalid number. Usage: set-yaw-zero ") + elif cmd == "controller": + _run_controller_mode(ant) + elif cmd == "calibrate": + cmd_calibrate(ant) + elif cmd == "engage": + cmd_engage(ant) + elif cmd == "disengage": + cmd_disengage(ant) + elif cmd == "": + continue + else: + print("Unknown command. Type 'help' for available commands.") + finally: + print("Shutting down...") + svc.stop() + # Ensure antenna is disengaged and set to idle before exit + if ant._engaged: + print("Disengaging antenna motors...") + ant.disengage() + print("Cleanup complete.") + + +if __name__ == "__main__": + main() diff --git a/apps/antenna-tracker/predictor_service.py b/apps/antenna-tracker/predictor_service.py new file mode 100755 index 0000000..7905d72 --- /dev/null +++ b/apps/antenna-tracker/predictor_service.py @@ -0,0 +1,388 @@ +#!/usr/bin/env python3 +""" +Prediction service for gps-ingest. + +Self-managed background process that ingests GPS samples (from the Rust gps-ingest +binary or from test coordinates), maintains a short history, and exposes the +latest GPS and a next-position prediction. Also provides geodesy helpers for +antenna pointing. +""" + +from __future__ import annotations + +import json +import math +import select +import shlex +import subprocess +import threading +import time +from dataclasses import dataclass, field +from datetime import datetime, timezone +from typing import List, Optional, Tuple + +try: + import numpy as np +except Exception: # pragma: no cover - optional dependency + np = None # type: ignore + + +# ----------------------- +# Timestamp helper +# ----------------------- +def _parse_iso_to_epoch(ts_iso: str) -> float: + """Parse ISO-8601 string to UNIX epoch seconds. Handles 'Z' and '+00:00'.""" + return datetime.fromisoformat(ts_iso.replace('Z', '+00:00')).timestamp() + + +# ----------------------- +# Configuration and Models +# ----------------------- + +@dataclass +class PredictorConfig: + # Antenna site + antenna_lat_deg: float = 48.480495 + antenna_lon_deg: float = -81.331258 + antenna_alt_m: float = 294.04 + antenna_yaw_zero_deg: float = 270.0 # yaw-zero = West + yaw_normalization: str = "continuous" # options: "continuous", "pm180", "0to360" + # Debug flag to silence prints in tests unless enabled + debug: bool = False + + # Data source + use_real_gps_ingest: bool = False + gps_ingest_cmd: str = "cargo run -p gps-ingest" + test_target_lat_deg: float = 48.480345 + test_target_lon_deg: float = -81.331308 + test_target_alt_m: float = 299 + + # Prediction/history + num_samples: int = 1 # how many samples to keep (and fit). 1 means latest only + + +@dataclass +class GpsSample: + lat: float + lon: float + alt_m: float + ts_iso: str + source: str + t_epoch: float + + +@dataclass +class Prediction: + lat: float + lon: float + alt_m: float + confidence: float + ts_iso: str + + +# ----------------------- +# Prediction Service +# ----------------------- + +class PredictorService: + def __init__(self, config: PredictorConfig): + self.config = config + self._history: List[GpsSample] = [] + self._history_lock = threading.Lock() + self._stop = threading.Event() + self._thread: Optional[threading.Thread] = None + self._last_prediction: Optional[Prediction] = None + self._last_yaw_cmd: Optional[float] = None + + # ---- Public API ---- + def start(self) -> None: + if self._thread and self._thread.is_alive(): + return + self._stop.clear() + self._thread = threading.Thread(target=self._run_loop, name="PredictorService", daemon=True) + self._thread.start() + + def stop(self) -> None: + self._stop.set() + if self._thread: + self._thread.join(timeout=2) + + def get_history(self) -> List[GpsSample]: + with self._history_lock: + return list(self._history) + + def get_latest(self) -> Optional[GpsSample]: + with self._history_lock: + return self._history[-1] if self._history else None + + def get_prediction(self) -> Optional[Prediction]: + return self._last_prediction + + # ---- Yaw normalization helpers ---- + @staticmethod + def _normalize_0_360(deg: float) -> float: + return (deg % 360.0 + 360.0) % 360.0 + + @staticmethod + def _normalize_pm180(deg: float) -> float: + d = PredictorService._normalize_0_360(deg) + return d - 360.0 if d > 180.0 else d + + def _rotation_from_yaw_zero_basic(self, bearing_deg: float) -> float: + """Yaw relative to yaw-zero (single-turn), honoring config.yaw_normalization (0to360 or pm180).""" + raw = bearing_deg - self.config.antenna_yaw_zero_deg + if self.config.yaw_normalization == "0to360": + return PredictorService._normalize_0_360(raw) + # default for 'pm180' or anything else non-continuous + return PredictorService._normalize_pm180(raw) + + def rotation_from_yaw_zero_continuous(self, bearing_deg: float, ref_yaw_deg: float) -> float: + """ + Map desired yaw (bearing - yaw_zero) to nearest 360°-equivalent near ref_yaw_deg. + Enables multi-turn continuity (no wrap jumps). + """ + desired_mod = PredictorService._normalize_0_360(bearing_deg - self.config.antenna_yaw_zero_deg) + ref_mod = PredictorService._normalize_0_360(ref_yaw_deg) + delta = PredictorService._normalize_pm180(desired_mod - ref_mod) # shortest delta in [-180, 180] + return ref_yaw_deg + delta + + # ---- Internal loop ---- + def _run_loop(self) -> None: + if self.config.use_real_gps_ingest: + self._loop_real() + else: + self._loop_test() + + def _loop_test(self) -> None: + # Emit the same test coordinate repeatedly, no timeout + while not self._stop.is_set(): + now = datetime.now(timezone.utc).isoformat() + sample = GpsSample( + lat=self.config.test_target_lat_deg, + lon=self.config.test_target_lon_deg, + alt_m=self.config.test_target_alt_m, + ts_iso=now, + source="test", + t_epoch=time.time(), + ) + self._push_sample(sample) + self._compute_prediction() + self._stop.wait(0.5) + + def _loop_real(self) -> None: + # Spawn gps-ingest and stream lines indefinitely + while not self._stop.is_set(): + try: + cmd = shlex.split(self.config.gps_ingest_cmd) + proc = subprocess.Popen( + cmd, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + text=True, + ) + except Exception: + # Backoff if launching fails + self._stop.wait(1.0) + continue + + try: + assert proc.stdout is not None + while not self._stop.is_set(): + rlist, _, _ = select.select([proc.stdout], [], [], 0.5) + if not rlist: + if proc.poll() is not None: + break + continue + line = proc.stdout.readline() + if not line: + if proc.poll() is not None: + break + continue + line = line.strip() + if not (line.startswith("{") and line.endswith("}")): + continue + try: + data = json.loads(line) + except Exception: + continue + if ( + data.get("lat") is None + or data.get("lon") is None + or data.get("altitude_m") is None + or data.get("ts") is None + ): + continue + # Prefer GPS-provided timestamp to improve model robustness + try: + t_epoch_parsed = _parse_iso_to_epoch(str(data["ts"])) + except Exception: + t_epoch_parsed = time.time() + sample = GpsSample( + lat=float(data["lat"]), + lon=float(data["lon"]), + alt_m=float(data["altitude_m"]), + ts_iso=str(data["ts"]), + source=str(data.get("source", "gps-ingest")), + t_epoch=t_epoch_parsed, + ) + self._push_sample(sample) + self._compute_prediction() + finally: + try: + if proc.poll() is None: + proc.terminate() + try: + proc.wait(timeout=1) + except subprocess.TimeoutExpired: + proc.kill() + except Exception: + pass + + def _push_sample(self, sample: GpsSample) -> None: + with self._history_lock: + self._history.append(sample) + if self.config.num_samples > 0 and len(self._history) > self.config.num_samples: + self._history = self._history[-self.config.num_samples :] + + # ----------------------- + # Prediction and Geodesy + # ----------------------- + def _compute_prediction(self) -> None: + hist = self.get_history() + if not hist: + self._last_prediction = None + return + if len(hist) == 1 or np is None: + s = hist[-1] + self._last_prediction = Prediction( + lat=s.lat, + lon=s.lon, + alt_m=s.alt_m, + confidence=0.5, + ts_iso=datetime.now(timezone.utc).isoformat(), + ) + return + # Fit linear model per component + times = [s.t_epoch for s in hist] + lats = [s.lat for s in hist] + lons = [s.lon for s in hist] + alts = [s.alt_m for s in hist] + t0 = times[0] + t_rel = [t - t0 for t in times] + t_future = (times[-1] + 1.0) - t0 + try: + lat_slope, lat_intercept = np.polyfit(t_rel, lats, 1) # type: ignore[attr-defined] + lon_slope, lon_intercept = np.polyfit(t_rel, lons, 1) # type: ignore[attr-defined] + alt_slope, alt_intercept = np.polyfit(t_rel, alts, 1) # type: ignore[attr-defined] + pred_lat = float(lat_slope * t_future + lat_intercept) + pred_lon = float(lon_slope * t_future + lon_intercept) + pred_alt = float(alt_slope * t_future + alt_intercept) + confidence = 0.9 if len(hist) >= 5 else 0.7 + except Exception: + s = hist[-1] + pred_lat, pred_lon, pred_alt, confidence = s.lat, s.lon, s.alt_m, 0.5 + self._last_prediction = Prediction( + lat=pred_lat, + lon=pred_lon, + alt_m=pred_alt, + confidence=confidence, + ts_iso=datetime.now(timezone.utc).isoformat(), + ) + + # WGS84 constants + _WGS84_A = 6378137.0 + _WGS84_F = 1.0 / 298.257223563 + _WGS84_E2 = _WGS84_F * (2.0 - _WGS84_F) + + # Geodesy helpers + @staticmethod + def _geodetic_to_ecef(lat_deg: float, lon_deg: float, h_m: float) -> Tuple[float, float, float]: + lat = math.radians(lat_deg) + lon = math.radians(lon_deg) + sin_lat = math.sin(lat) + cos_lat = math.cos(lat) + sin_lon = math.sin(lon) + cos_lon = math.cos(lon) + N = PredictorService._WGS84_A / math.sqrt(1.0 - PredictorService._WGS84_E2 * sin_lat * sin_lat) + x = (N + h_m) * cos_lat * cos_lon + y = (N + h_m) * cos_lat * sin_lon + z = (N * (1.0 - PredictorService._WGS84_E2) + h_m) * sin_lat + # Verbose print only when debug enabled + # Note: staticmethod, cannot access self.config; keep quiet by default + # If needed, enable prints in callers + # print("_geodetic_to_ecef", "in:", lat_deg, lon_deg, h_m, "\n", "out:", x, y, z) + return x, y, z + + + @staticmethod + def _ecef_to_enu(dx: Tuple[float, float, float], lat0_deg: float, lon0_deg: float) -> Tuple[float, float, float]: + lat0 = math.radians(lat0_deg) + lon0 = math.radians(lon0_deg) + sin_lat = math.sin(lat0) + cos_lat = math.cos(lat0) + sin_lon = math.sin(lon0) + cos_lon = math.cos(lon0) + dx_x, dx_y, dx_z = dx + e = -sin_lon * dx_x + cos_lon * dx_y + n = -sin_lat * cos_lon * dx_x - sin_lat * sin_lon * dx_y + cos_lat * dx_z + u = cos_lat * cos_lon * dx_x + cos_lat * sin_lon * dx_y + sin_lat * dx_z + return e, n, u + + @staticmethod + def initial_bearing_deg(lat1_deg: float, lon1_deg: float, lat2_deg: float, lon2_deg: float) -> float: + lat1 = math.radians(lat1_deg) + lat2 = math.radians(lat2_deg) + dlon = math.radians(lon2_deg - lon1_deg) + x = math.sin(dlon) * math.cos(lat2) + y = math.cos(lat1) * math.sin(lat2) - math.sin(lat1) * math.cos(lat2) * math.cos(dlon) + brng = math.degrees(math.atan2(x, y)) + return PredictorService._normalize_0_360(brng) + + + + def compute_az_el(self, tgt_lat: float, tgt_lon: float, tgt_alt: float) -> Tuple[float, float]: + if self.config.debug: + print("Calculating antenna ecef") + x_o, y_o, z_o = self._geodetic_to_ecef( + self.config.antenna_lat_deg, self.config.antenna_lon_deg, self.config.antenna_alt_m + ) + if self.config.debug: + print("Calculating target ecef") + x_t, y_t, z_t = self._geodetic_to_ecef(tgt_lat, tgt_lon, tgt_alt) + e, n, u = self._ecef_to_enu((x_t - x_o, y_t - y_o, z_t - z_o), self.config.antenna_lat_deg, self.config.antenna_lon_deg) + az = math.degrees(math.atan2(e, n)) + if az < 0: + az += 360.0 + el = math.degrees(math.atan2(u, math.hypot(e, n))) + if self.config.debug: + print("Calculated AZ:", az) + print("Calculated EL:", el) + return az, el + + def yaw_pitch_from_target(self, tgt_lat: float, tgt_lon: float, tgt_alt: float) -> Tuple[float, float]: + """ + Compute yaw (relative to yaw-zero) and pitch. + Modes: + - continuous: unwrap around last commanded yaw + - pm180 / 0to360: single-turn normalized output + Updates self._last_yaw_cmd for continuity. + """ + if self.config.debug: + print("Calculating Yaw pitch from target") + az, el = self.compute_az_el(tgt_lat, tgt_lon, tgt_alt) # az from North + + if self.config.yaw_normalization == "continuous" and self._last_yaw_cmd is not None: + yaw_rel = self.rotation_from_yaw_zero_continuous(az, self._last_yaw_cmd) + elif self.config.yaw_normalization == "continuous": + # first command in continuous mode: seed using pm180 for a near value + yaw_rel = self._rotation_from_yaw_zero_basic(az) + else: + yaw_rel = self._rotation_from_yaw_zero_basic(az) + + # Remember last commanded yaw for continuity + self._last_yaw_cmd = yaw_rel + return yaw_rel, el + + def reset_yaw_continuity(self) -> None: + """Reset the last yaw command to seed continuous unwrapping fresh.""" + self._last_yaw_cmd = None diff --git a/apps/antenna-tracker/pyproject.toml b/apps/antenna-tracker/pyproject.toml new file mode 100755 index 0000000..5531232 --- /dev/null +++ b/apps/antenna-tracker/pyproject.toml @@ -0,0 +1,15 @@ +[project] +name = "gps-ingest" +version = "0.1.0" +description = "Add your description here" +readme = "README.md" +requires-python = ">=3.12" +dependencies = [ + "numpy>=2.3.2", + "odrive>=0.6.10.post0", +] + +[dependency-groups] +dev = [ + "pytest>=8.0.0", +] diff --git a/apps/antenna-tracker/remote.py b/apps/antenna-tracker/remote.py new file mode 100755 index 0000000..3887537 --- /dev/null +++ b/apps/antenna-tracker/remote.py @@ -0,0 +1,169 @@ +#!/usr/bin/env python3 +import errno +import fcntl +import os +import struct +import threading +import time +from typing import Dict, Optional + + +EVENT_FMT = 'IhBB' +EVENT_SIZE = struct.calcsize(EVENT_FMT) + +JS_EVENT_BUTTON = 0x01 +JS_EVENT_AXIS = 0x02 +JS_EVENT_INIT = 0x80 + + +BUTTON_INDEX_TO_NAME: Dict[int, str] = { + 0: 'A', 1: 'B', 2: 'X', 3: 'Y', + 4: 'LB', 5: 'RB', 6: 'Back', 7: 'Start', + 8: 'Guide', 9: 'LThumb', 10: 'RThumb', +} + +AXIS_INDEX_TO_NAME: Dict[int, str] = { + 0: 'LX', 1: 'LY', 2: 'LT', + 3: 'RX', 4: 'RY', 5: 'RT', +} + +BUTTON_NAME_TO_INDEX: Dict[str, int] = {v: k for k, v in BUTTON_INDEX_TO_NAME.items()} +AXIS_NAME_TO_INDEX: Dict[str, int] = {v: k for k, v in AXIS_INDEX_TO_NAME.items()} + + +def _normalize_axis(value: int) -> float: + if value <= -32767: + return -1.0 + if value >= 32767: + return 1.0 + return value / 32767.0 + + +class XboxController: + """Simple Linux joystick reader for Xbox controllers using /dev/input/js*. + + Exposes a minimal API expected by manual.py: + - start() -> bool + - stop() -> None + - is_connected() -> bool + - get_button(name: str) -> bool + - get_axis(name: str) -> float in [-1.0, 1.0] + """ + + def __init__(self, deadzone: float = 0.1, device_path: str = '/dev/input/js0') -> None: + self.device_path: str = device_path + self.deadzone: float = max(0.0, min(0.9, deadzone)) + self._thread: Optional[threading.Thread] = None + self._stop_event = threading.Event() + self._connected: bool = False + self._fd: Optional[int] = None + self._lock = threading.Lock() + self._buttons: Dict[str, bool] = {name: False for name in BUTTON_NAME_TO_INDEX.keys()} + self._axes: Dict[str, float] = {name: 0.0 for name in AXIS_NAME_TO_INDEX.keys()} + + def start(self) -> bool: + if self._thread and self._thread.is_alive(): + return True + self._stop_event.clear() + self._thread = threading.Thread(target=self._reader_loop, name='XboxControllerReader', daemon=True) + self._thread.start() + # Give the thread a short time to attempt initial open + time.sleep(0.1) + return True + + def stop(self) -> None: + self._stop_event.set() + if self._thread and self._thread.is_alive(): + self._thread.join(timeout=1.5) + self._close_device() + + def is_connected(self) -> bool: + return self._connected + + def get_button(self, name: str) -> bool: + with self._lock: + return bool(self._buttons.get(name, False)) + + def get_axis(self, name: str) -> float: + with self._lock: + value = float(self._axes.get(name, 0.0)) + if abs(value) < self.deadzone: + return 0.0 + return value + + # Internal + def _open_device(self) -> None: + try: + fd = os.open(self.device_path, os.O_RDONLY | os.O_NONBLOCK) + # Ensure non-blocking + fl = fcntl.fcntl(fd, fcntl.F_GETFL) + fcntl.fcntl(fd, fcntl.F_SETFL, fl | os.O_NONBLOCK) + self._fd = fd + self._connected = True + except FileNotFoundError: + self._connected = False + except PermissionError: + self._connected = False + + def _close_device(self) -> None: + if self._fd is not None: + try: + os.close(self._fd) + except OSError: + pass + finally: + self._fd = None + self._connected = False + + def _reader_loop(self) -> None: + last_attempt = 0.0 + while not self._stop_event.is_set(): + # Ensure device is open + if self._fd is None: + now = time.time() + if now - last_attempt < 0.5: + time.sleep(0.05) + continue + last_attempt = now + self._open_device() + if self._fd is None: + time.sleep(0.3) + continue + + # Read any available events + try: + data = os.read(self._fd, EVENT_SIZE) + if not data: + time.sleep(0.01) + continue + if len(data) < EVENT_SIZE: + continue + timestamp, value, ev_type, number = struct.unpack(EVENT_FMT, data) + if ev_type & JS_EVENT_INIT: + continue + if ev_type & JS_EVENT_BUTTON: + name = BUTTON_INDEX_TO_NAME.get(number) + if name is not None: + with self._lock: + self._buttons[name] = (value != 0) + elif ev_type & JS_EVENT_AXIS: + name = AXIS_INDEX_TO_NAME.get(number) + if name is not None: + norm = _normalize_axis(value) + with self._lock: + self._axes[name] = norm + # Gentle yield + time.sleep(0.001) + except BlockingIOError: + time.sleep(0.01) + continue + except OSError as e: + if e.errno == errno.ENODEV: + # Device disconnected + self._close_device() + time.sleep(0.3) + continue + # Other I/O error: reset and retry + self._close_device() + time.sleep(0.2) + continue diff --git a/apps/antenna-tracker/rocket_gps.jsonl b/apps/antenna-tracker/rocket_gps.jsonl new file mode 100644 index 0000000..973fe37 --- /dev/null +++ b/apps/antenna-tracker/rocket_gps.jsonl @@ -0,0 +1,1610 @@ +{"ts": "2025-08-20T02:28:49.973597+00:00", "lat": 48.4807521, "lon": -81.3332565, "altitude_m": 295.04, "source": "sim"} +{"ts": "2025-08-20T02:28:50.123597+00:00", "lat": 48.4807175, "lon": -81.3332573, "altitude_m": 298.27, "source": "sim"} +{"ts": "2025-08-20T02:28:50.273597+00:00", "lat": 48.4807133, "lon": -81.3332919, "altitude_m": 299.12, "source": "sim"} +{"ts": "2025-08-20T02:28:50.373597+00:00", "lat": 48.4807306, "lon": -81.3332501, "altitude_m": 294.56, "source": "sim"} +{"ts": "2025-08-20T02:28:50.473597+00:00", "lat": 48.4807256, "lon": -81.33327, "altitude_m": 289.83, "source": "sim"} +{"ts": "2025-08-20T02:28:50.573597+00:00", "lat": 48.4807186, "lon": -81.3332964, "altitude_m": 299.77, "source": "sim"} +{"ts": "2025-08-20T02:28:50.723597+00:00", "lat": 48.4807281, "lon": -81.3332797, "altitude_m": 297.05, "source": "sim"} +{"ts": "2025-08-20T02:28:50.873597+00:00", "lat": 48.4807118, "lon": -81.3332413, "altitude_m": 300.55, "source": "sim"} +{"ts": "2025-08-20T02:28:51.023597+00:00", "lat": 48.4807359, "lon": -81.3333085, "altitude_m": 301.05, "source": "sim"} +{"ts": "2025-08-20T02:28:51.173597+00:00", "lat": 48.4807435, "lon": -81.3333064, "altitude_m": 302.9, "source": "sim"} +{"ts": "2025-08-20T02:28:51.273597+00:00", "lat": 48.480733, "lon": -81.3332965, "altitude_m": 302.4, "source": "sim"} +{"ts": "2025-08-20T02:28:51.373597+00:00", "lat": 48.4807054, "lon": -81.3332757, "altitude_m": 307.75, "source": "sim"} +{"ts": "2025-08-20T02:28:51.473597+00:00", "lat": 48.4807059, "lon": -81.3332653, "altitude_m": 301.56, "source": "sim"} +{"ts": "2025-08-20T02:28:51.623597+00:00", "lat": 48.4807294, "lon": -81.3332908, "altitude_m": 311.3, "source": "sim"} +{"ts": "2025-08-20T02:28:51.773597+00:00", "lat": 48.4807231, "lon": -81.3333047, "altitude_m": 315.64, "source": "sim"} +{"ts": "2025-08-20T02:28:51.923597+00:00", "lat": 48.4807212, "lon": -81.3333072, "altitude_m": 325.85, "source": "sim"} +{"ts": "2025-08-20T02:28:52.073597+00:00", "lat": 48.4807285, "lon": -81.3333269, "altitude_m": 326.55, "source": "sim"} +{"ts": "2025-08-20T02:28:52.173597+00:00", "lat": 48.4807347, "lon": -81.3333125, "altitude_m": 322.25, "source": "sim"} +{"ts": "2025-08-20T02:28:52.323597+00:00", "lat": 48.480735, "lon": -81.3333306, "altitude_m": 330.55, "source": "sim"} +{"ts": "2025-08-20T02:28:52.473597+00:00", "lat": 48.4807478, "lon": -81.3333123, "altitude_m": 334.76, "source": "sim"} +{"ts": "2025-08-20T02:28:52.623597+00:00", "lat": 48.480743, "lon": -81.3333075, "altitude_m": 334.79, "source": "sim"} +{"ts": "2025-08-20T02:28:52.723597+00:00", "lat": 48.4807322, "lon": -81.3332821, "altitude_m": 339.94, "source": "sim"} +{"ts": "2025-08-20T02:28:52.873597+00:00", "lat": 48.4807441, "lon": -81.3333675, "altitude_m": 339.1, "source": "sim"} +{"ts": "2025-08-20T02:28:53.023597+00:00", "lat": 48.4807623, "lon": -81.3333182, "altitude_m": 358.09, "source": "sim"} +{"ts": "2025-08-20T02:28:53.223597+00:00", "lat": 48.4807567, "lon": -81.3332952, "altitude_m": 361.54, "source": "sim"} +{"ts": "2025-08-20T02:28:53.373597+00:00", "lat": 48.4807333, "lon": -81.3333407, "altitude_m": 365.59, "source": "sim"} +{"ts": "2025-08-20T02:28:53.473597+00:00", "lat": 48.4807776, "lon": -81.3333462, "altitude_m": 370.52, "source": "sim"} +{"ts": "2025-08-20T02:28:53.623597+00:00", "lat": 48.4807574, "lon": -81.333375, "altitude_m": 376.29, "source": "sim"} +{"ts": "2025-08-20T02:28:53.723597+00:00", "lat": 48.4807623, "lon": -81.3333418, "altitude_m": 379.34, "source": "sim"} +{"ts": "2025-08-20T02:28:53.823597+00:00", "lat": 48.4807518, "lon": -81.3333803, "altitude_m": 386.43, "source": "sim"} +{"ts": "2025-08-20T02:28:53.923597+00:00", "lat": 48.4807686, "lon": -81.3333696, "altitude_m": 392.26, "source": "sim"} +{"ts": "2025-08-20T02:28:54.073597+00:00", "lat": 48.4807228, "lon": -81.3334056, "altitude_m": 403.46, "source": "sim"} +{"ts": "2025-08-20T02:28:54.173597+00:00", "lat": 48.4807539, "lon": -81.333349, "altitude_m": 400.86, "source": "sim"} +{"ts": "2025-08-20T02:28:54.323597+00:00", "lat": 48.4807442, "lon": -81.3333668, "altitude_m": 412.54, "source": "sim"} +{"ts": "2025-08-20T02:28:54.473597+00:00", "lat": 48.4807409, "lon": -81.3333655, "altitude_m": 425.79, "source": "sim"} +{"ts": "2025-08-20T02:28:54.623597+00:00", "lat": 48.4807542, "lon": -81.3334099, "altitude_m": 423.41, "source": "sim"} +{"ts": "2025-08-20T02:28:54.773597+00:00", "lat": 48.4807451, "lon": -81.3334024, "altitude_m": 436.46, "source": "sim"} +{"ts": "2025-08-20T02:28:54.873597+00:00", "lat": 48.4807428, "lon": -81.3333786, "altitude_m": 445.78, "source": "sim"} +{"ts": "2025-08-20T02:28:54.973597+00:00", "lat": 48.4807499, "lon": -81.3333767, "altitude_m": 446.11, "source": "sim"} +{"ts": "2025-08-20T02:28:55.123597+00:00", "lat": 48.4807591, "lon": -81.3334038, "altitude_m": 454.16, "source": "sim"} +{"ts": "2025-08-20T02:28:55.223597+00:00", "lat": 48.4807534, "lon": -81.3334022, "altitude_m": 462.4, "source": "sim"} +{"ts": "2025-08-20T02:28:55.323597+00:00", "lat": 48.4807533, "lon": -81.3334015, "altitude_m": 466.02, "source": "sim"} +{"ts": "2025-08-20T02:28:55.473597+00:00", "lat": 48.4807618, "lon": -81.3333839, "altitude_m": 475.17, "source": "sim"} +{"ts": "2025-08-20T02:28:55.573597+00:00", "lat": 48.4807649, "lon": -81.3334339, "altitude_m": 486.53, "source": "sim"} +{"ts": "2025-08-20T02:28:55.673597+00:00", "lat": 48.4807623, "lon": -81.3334445, "altitude_m": 494.74, "source": "sim"} +{"ts": "2025-08-20T02:28:55.823597+00:00", "lat": 48.4807722, "lon": -81.3334305, "altitude_m": 509.43, "source": "sim"} +{"ts": "2025-08-20T02:28:55.923597+00:00", "lat": 48.4807598, "lon": -81.3334025, "altitude_m": 510.22, "source": "sim"} +{"ts": "2025-08-20T02:28:56.023597+00:00", "lat": 48.4807636, "lon": -81.3334335, "altitude_m": 516.3, "source": "sim"} +{"ts": "2025-08-20T02:28:56.173597+00:00", "lat": 48.4807659, "lon": -81.3334138, "altitude_m": 526.95, "source": "sim"} +{"ts": "2025-08-20T02:28:56.273597+00:00", "lat": 48.480744, "lon": -81.3333719, "altitude_m": 536.12, "source": "sim"} +{"ts": "2025-08-20T02:28:56.373597+00:00", "lat": 48.4807402, "lon": -81.3334158, "altitude_m": 550.27, "source": "sim"} +{"ts": "2025-08-20T02:28:56.473597+00:00", "lat": 48.4807748, "lon": -81.3334393, "altitude_m": 557.64, "source": "sim"} +{"ts": "2025-08-20T02:28:56.573597+00:00", "lat": 48.4807498, "lon": -81.3334359, "altitude_m": 563.04, "source": "sim"} +{"ts": "2025-08-20T02:28:56.773597+00:00", "lat": 48.4807635, "lon": -81.3334563, "altitude_m": 575.66, "source": "sim"} +{"ts": "2025-08-20T02:28:56.873597+00:00", "lat": 48.4807584, "lon": -81.3334415, "altitude_m": 587.1, "source": "sim"} +{"ts": "2025-08-20T02:28:56.973597+00:00", "lat": 48.4807806, "lon": -81.3334339, "altitude_m": 596.49, "source": "sim"} +{"ts": "2025-08-20T02:28:57.073597+00:00", "lat": 48.4807556, "lon": -81.3334475, "altitude_m": 597.86, "source": "sim"} +{"ts": "2025-08-20T02:28:57.223597+00:00", "lat": 48.4807735, "lon": -81.3334422, "altitude_m": 621.18, "source": "sim"} +{"ts": "2025-08-20T02:28:57.323597+00:00", "lat": 48.4807559, "lon": -81.3334814, "altitude_m": 626.79, "source": "sim"} +{"ts": "2025-08-20T02:28:57.473597+00:00", "lat": 48.4807613, "lon": -81.333469, "altitude_m": 642.88, "source": "sim"} +{"ts": "2025-08-20T02:28:57.623597+00:00", "lat": 48.4807489, "lon": -81.3334693, "altitude_m": 655.26, "source": "sim"} +{"ts": "2025-08-20T02:28:57.773597+00:00", "lat": 48.4807712, "lon": -81.3334577, "altitude_m": 668.26, "source": "sim"} +{"ts": "2025-08-20T02:28:57.923597+00:00", "lat": 48.4807519, "lon": -81.3334532, "altitude_m": 681.4, "source": "sim"} +{"ts": "2025-08-20T02:28:58.023597+00:00", "lat": 48.4807622, "lon": -81.3334605, "altitude_m": 689.23, "source": "sim"} +{"ts": "2025-08-20T02:28:58.123597+00:00", "lat": 48.4807513, "lon": -81.3334976, "altitude_m": 700.88, "source": "sim"} +{"ts": "2025-08-20T02:28:58.273597+00:00", "lat": 48.4807685, "lon": -81.3334692, "altitude_m": 717.55, "source": "sim"} +{"ts": "2025-08-20T02:28:58.373597+00:00", "lat": 48.4807847, "lon": -81.333489, "altitude_m": 722.68, "source": "sim"} +{"ts": "2025-08-20T02:28:58.473597+00:00", "lat": 48.4807884, "lon": -81.3335044, "altitude_m": 740.65, "source": "sim"} +{"ts": "2025-08-20T02:28:58.623597+00:00", "lat": 48.4807719, "lon": -81.3334849, "altitude_m": 756.42, "source": "sim"} +{"ts": "2025-08-20T02:28:58.723597+00:00", "lat": 48.4807355, "lon": -81.3334878, "altitude_m": 764.45, "source": "sim"} +{"ts": "2025-08-20T02:28:58.873597+00:00", "lat": 48.4807928, "lon": -81.3334936, "altitude_m": 784.61, "source": "sim"} +{"ts": "2025-08-20T02:28:59.073597+00:00", "lat": 48.4807501, "lon": -81.3335056, "altitude_m": 806.7, "source": "sim"} +{"ts": "2025-08-20T02:28:59.173597+00:00", "lat": 48.4807714, "lon": -81.3335317, "altitude_m": 810.81, "source": "sim"} +{"ts": "2025-08-20T02:28:59.273597+00:00", "lat": 48.4807645, "lon": -81.3335124, "altitude_m": 827.75, "source": "sim"} +{"ts": "2025-08-20T02:28:59.423597+00:00", "lat": 48.4807484, "lon": -81.3334945, "altitude_m": 842.49, "source": "sim"} +{"ts": "2025-08-20T02:28:59.523597+00:00", "lat": 48.4807815, "lon": -81.3335111, "altitude_m": 854.37, "source": "sim"} +{"ts": "2025-08-20T02:28:59.623597+00:00", "lat": 48.480793, "lon": -81.3335151, "altitude_m": 866.52, "source": "sim"} +{"ts": "2025-08-20T02:28:59.723597+00:00", "lat": 48.4807787, "lon": -81.3335224, "altitude_m": 877.55, "source": "sim"} +{"ts": "2025-08-20T02:28:59.823597+00:00", "lat": 48.4807762, "lon": -81.3335081, "altitude_m": 891.7, "source": "sim"} +{"ts": "2025-08-20T02:28:59.923597+00:00", "lat": 48.4807855, "lon": -81.3335131, "altitude_m": 900.99, "source": "sim"} +{"ts": "2025-08-20T02:29:00.023597+00:00", "lat": 48.4807959, "lon": -81.3335439, "altitude_m": 915.71, "source": "sim"} +{"ts": "2025-08-20T02:29:00.173597+00:00", "lat": 48.4807767, "lon": -81.3335358, "altitude_m": 931.05, "source": "sim"} +{"ts": "2025-08-20T02:29:00.323597+00:00", "lat": 48.4807565, "lon": -81.3335522, "altitude_m": 952.83, "source": "sim"} +{"ts": "2025-08-20T02:29:00.473597+00:00", "lat": 48.4807682, "lon": -81.3335421, "altitude_m": 971.8, "source": "sim"} +{"ts": "2025-08-20T02:29:00.573597+00:00", "lat": 48.480776, "lon": -81.3335451, "altitude_m": 984.7, "source": "sim"} +{"ts": "2025-08-20T02:29:00.723597+00:00", "lat": 48.4807568, "lon": -81.3335741, "altitude_m": 1010.67, "source": "sim"} +{"ts": "2025-08-20T02:29:00.823597+00:00", "lat": 48.4807865, "lon": -81.333542, "altitude_m": 1012.09, "source": "sim"} +{"ts": "2025-08-20T02:29:00.973597+00:00", "lat": 48.4807783, "lon": -81.3335646, "altitude_m": 1036.56, "source": "sim"} +{"ts": "2025-08-20T02:29:01.123597+00:00", "lat": 48.4807734, "lon": -81.3335821, "altitude_m": 1060.76, "source": "sim"} +{"ts": "2025-08-20T02:29:01.273597+00:00", "lat": 48.4807699, "lon": -81.3335495, "altitude_m": 1078.54, "source": "sim"} +{"ts": "2025-08-20T02:29:01.373597+00:00", "lat": 48.4807904, "lon": -81.3335724, "altitude_m": 1096.25, "source": "sim"} +{"ts": "2025-08-20T02:29:01.473597+00:00", "lat": 48.4808003, "lon": -81.3335551, "altitude_m": 1109.21, "source": "sim"} +{"ts": "2025-08-20T02:29:01.573597+00:00", "lat": 48.4807673, "lon": -81.3335851, "altitude_m": 1120.95, "source": "sim"} +{"ts": "2025-08-20T02:29:01.673597+00:00", "lat": 48.4808071, "lon": -81.3335649, "altitude_m": 1138.5, "source": "sim"} +{"ts": "2025-08-20T02:29:01.823597+00:00", "lat": 48.480753, "lon": -81.3335787, "altitude_m": 1160.04, "source": "sim"} +{"ts": "2025-08-20T02:29:01.973597+00:00", "lat": 48.4807827, "lon": -81.3335537, "altitude_m": 1174.7, "source": "sim"} +{"ts": "2025-08-20T02:29:02.173597+00:00", "lat": 48.4807571, "lon": -81.3336072, "altitude_m": 1211.85, "source": "sim"} +{"ts": "2025-08-20T02:29:02.323597+00:00", "lat": 48.4808041, "lon": -81.3336092, "altitude_m": 1234.78, "source": "sim"} +{"ts": "2025-08-20T02:29:02.423597+00:00", "lat": 48.4807728, "lon": -81.3336347, "altitude_m": 1248.48, "source": "sim"} +{"ts": "2025-08-20T02:29:02.573597+00:00", "lat": 48.4807821, "lon": -81.3335706, "altitude_m": 1273.78, "source": "sim"} +{"ts": "2025-08-20T02:29:03.023597+00:00", "lat": 48.4808, "lon": -81.3336008, "altitude_m": 1337.56, "source": "sim"} +{"ts": "2025-08-20T02:29:03.623597+00:00", "lat": 48.4807875, "lon": -81.3336253, "altitude_m": 1437.84, "source": "sim"} +{"ts": "2025-08-20T02:29:04.073597+00:00", "lat": 48.4808085, "lon": -81.3336667, "altitude_m": 1521.62, "source": "sim"} +{"ts": "2025-08-20T02:29:04.623597+00:00", "lat": 48.4807731, "lon": -81.3336648, "altitude_m": 1612.3, "source": "sim"} +{"ts": "2025-08-20T02:29:05.123597+00:00", "lat": 48.4807664, "lon": -81.3336927, "altitude_m": 1708.83, "source": "sim"} +{"ts": "2025-08-20T02:29:05.623597+00:00", "lat": 48.4808035, "lon": -81.3336744, "altitude_m": 1802.26, "source": "sim"} +{"ts": "2025-08-20T02:29:06.173597+00:00", "lat": 48.4808028, "lon": -81.3336911, "altitude_m": 1910.13, "source": "sim"} +{"ts": "2025-08-20T02:29:06.723597+00:00", "lat": 48.480781, "lon": -81.3337092, "altitude_m": 2023.6, "source": "sim"} +{"ts": "2025-08-20T02:29:07.173597+00:00", "lat": 48.4808049, "lon": -81.3337111, "altitude_m": 2112.46, "source": "sim"} +{"ts": "2025-08-20T02:29:07.673597+00:00", "lat": 48.4808343, "lon": -81.3337098, "altitude_m": 2222.23, "source": "sim"} +{"ts": "2025-08-20T02:29:08.123597+00:00", "lat": 48.4808201, "lon": -81.3337606, "altitude_m": 2320.94, "source": "sim"} +{"ts": "2025-08-20T02:29:08.523597+00:00", "lat": 48.4808205, "lon": -81.3337746, "altitude_m": 2413.39, "source": "sim"} +{"ts": "2025-08-20T02:29:08.923597+00:00", "lat": 48.4808283, "lon": -81.333752, "altitude_m": 2514.58, "source": "sim"} +{"ts": "2025-08-20T02:29:09.323597+00:00", "lat": 48.4808233, "lon": -81.3338084, "altitude_m": 2598.79, "source": "sim"} +{"ts": "2025-08-20T02:29:23.473597+00:00", "lat": 48.4808396, "lon": -81.3342147, "altitude_m": 7207.34, "source": "sim"} +{"ts": "2025-08-20T02:29:24.323597+00:00", "lat": 48.4808961, "lon": -81.3342511, "altitude_m": 7558.72, "source": "sim"} +{"ts": "2025-08-20T02:29:25.323597+00:00", "lat": 48.4809117, "lon": -81.3341711, "altitude_m": 7979.43, "source": "sim"} +{"ts": "2025-08-20T02:29:26.273597+00:00", "lat": 48.4808862, "lon": -81.3342181, "altitude_m": 8404.58, "source": "sim"} +{"ts": "2025-08-20T02:29:27.073597+00:00", "lat": 48.4809003, "lon": -81.3342149, "altitude_m": 8777.02, "source": "sim"} +{"ts": "2025-08-20T02:29:27.973597+00:00", "lat": 48.4809053, "lon": -81.3342628, "altitude_m": 9191.16, "source": "sim"} +{"ts": "2025-08-20T02:29:28.823597+00:00", "lat": 48.4809086, "lon": -81.3343144, "altitude_m": 9583.03, "source": "sim"} +{"ts": "2025-08-20T02:29:29.723597+00:00", "lat": 48.4809098, "lon": -81.3343142, "altitude_m": 10024.75, "source": "sim"} +{"ts": "2025-08-20T02:29:30.773597+00:00", "lat": 48.4808903, "lon": -81.3343151, "altitude_m": 10555.61, "source": "sim"} +{"ts": "2025-08-20T02:29:31.973597+00:00", "lat": 48.4809077, "lon": -81.3344127, "altitude_m": 11148.0, "source": "sim"} +{"ts": "2025-08-20T02:29:33.073597+00:00", "lat": 48.4809433, "lon": -81.3344128, "altitude_m": 11726.09, "source": "sim"} +{"ts": "2025-08-20T02:29:34.073597+00:00", "lat": 48.4809435, "lon": -81.3345427, "altitude_m": 12278.39, "source": "sim"} +{"ts": "2025-08-20T02:29:35.123597+00:00", "lat": 48.4808456, "lon": -81.3344256, "altitude_m": 12854.59, "source": "sim"} +{"ts": "2025-08-20T02:29:36.223597+00:00", "lat": 48.4809602, "lon": -81.334492, "altitude_m": 13460.1, "source": "sim"} +{"ts": "2025-08-20T02:29:37.073597+00:00", "lat": 48.4808911, "lon": -81.3345532, "altitude_m": 13952.67, "source": "sim"} +{"ts": "2025-08-20T02:29:38.073597+00:00", "lat": 48.4809426, "lon": -81.3346303, "altitude_m": 14543.81, "source": "sim"} +{"ts": "2025-08-20T02:29:38.923597+00:00", "lat": 48.4809915, "lon": -81.334638, "altitude_m": 15043.03, "source": "sim"} +{"ts": "2025-08-20T02:29:39.723597+00:00", "lat": 48.480994, "lon": -81.3346146, "altitude_m": 15529.14, "source": "sim"} +{"ts": "2025-08-20T02:29:40.573597+00:00", "lat": 48.4809496, "lon": -81.3346658, "altitude_m": 16056.15, "source": "sim"} +{"ts": "2025-08-20T02:29:41.623597+00:00", "lat": 48.4809339, "lon": -81.334692, "altitude_m": 16718.49, "source": "sim"} +{"ts": "2025-08-20T02:29:42.623597+00:00", "lat": 48.4809601, "lon": -81.334595, "altitude_m": 17370.36, "source": "sim"} +{"ts": "2025-08-20T02:29:43.773597+00:00", "lat": 48.4810107, "lon": -81.3346498, "altitude_m": 18110.85, "source": "sim"} +{"ts": "2025-08-20T02:29:44.573597+00:00", "lat": 48.4810235, "lon": -81.3348455, "altitude_m": 18656.7, "source": "sim"} +{"ts": "2025-08-20T02:30:03.573597+00:00", "lat": 48.4811341, "lon": -81.3352175, "altitude_m": 31623.38, "source": "sim"} +{"ts": "2025-08-20T02:30:05.273597+00:00", "lat": 48.4810234, "lon": -81.3353448, "altitude_m": 32604.66, "source": "sim"} +{"ts": "2025-08-20T02:30:06.773597+00:00", "lat": 48.4811115, "lon": -81.3353628, "altitude_m": 33486.24, "source": "sim"} +{"ts": "2025-08-20T02:30:08.423597+00:00", "lat": 48.4810073, "lon": -81.3351791, "altitude_m": 34432.93, "source": "sim"} +{"ts": "2025-08-20T02:30:10.173597+00:00", "lat": 48.4810293, "lon": -81.3353665, "altitude_m": 35374.08, "source": "sim"} +{"ts": "2025-08-20T02:30:11.823597+00:00", "lat": 48.4810389, "lon": -81.3354057, "altitude_m": 36287.43, "source": "sim"} +{"ts": "2025-08-20T02:30:13.423597+00:00", "lat": 48.4811301, "lon": -81.3355352, "altitude_m": 37083.22, "source": "sim"} +{"ts": "2025-08-20T02:30:15.523597+00:00", "lat": 48.4810073, "lon": -81.3354908, "altitude_m": 38156.02, "source": "sim"} +{"ts": "2025-08-20T02:30:17.323597+00:00", "lat": 48.4810457, "lon": -81.3356258, "altitude_m": 39001.99, "source": "sim"} +{"ts": "2025-08-20T02:30:19.173597+00:00", "lat": 48.4812058, "lon": -81.3356726, "altitude_m": 39877.05, "source": "sim"} +{"ts": "2025-08-20T02:30:21.073597+00:00", "lat": 48.4810958, "lon": -81.3357738, "altitude_m": 40679.46, "source": "sim"} +{"ts": "2025-08-20T02:30:22.523597+00:00", "lat": 48.4811491, "lon": -81.3358417, "altitude_m": 41325.13, "source": "sim"} +{"ts": "2025-08-20T02:30:24.223597+00:00", "lat": 48.4812229, "lon": -81.3358834, "altitude_m": 42011.81, "source": "sim"} +{"ts": "2025-08-20T02:30:25.773597+00:00", "lat": 48.4811198, "lon": -81.3358197, "altitude_m": 42622.73, "source": "sim"} +{"ts": "2025-08-20T02:30:27.273597+00:00", "lat": 48.481167, "lon": -81.3358095, "altitude_m": 43195.01, "source": "sim"} +{"ts": "2025-08-20T02:30:29.273597+00:00", "lat": 48.481121, "lon": -81.3360102, "altitude_m": 43942.25, "source": "sim"} +{"ts": "2025-08-20T02:30:30.923597+00:00", "lat": 48.481184, "lon": -81.3361667, "altitude_m": 44498.01, "source": "sim"} +{"ts": "2025-08-20T02:30:32.523597+00:00", "lat": 48.4811153, "lon": -81.3359987, "altitude_m": 45030.57, "source": "sim"} +{"ts": "2025-08-20T02:30:34.373597+00:00", "lat": 48.4813449, "lon": -81.3360455, "altitude_m": 45617.54, "source": "sim"} +{"ts": "2025-08-20T02:30:36.023597+00:00", "lat": 48.4812744, "lon": -81.3361198, "altitude_m": 46097.85, "source": "sim"} +{"ts": "2025-08-20T02:30:37.723597+00:00", "lat": 48.4813156, "lon": -81.3362842, "altitude_m": 46578.72, "source": "sim"} +{"ts": "2025-08-20T02:30:39.523597+00:00", "lat": 48.4812243, "lon": -81.3361943, "altitude_m": 47041.61, "source": "sim"} +{"ts": "2025-08-20T02:30:41.173597+00:00", "lat": 48.4812335, "lon": -81.3362188, "altitude_m": 47433.46, "source": "sim"} +{"ts": "2025-08-20T02:30:42.873597+00:00", "lat": 48.4814065, "lon": -81.3363159, "altitude_m": 47815.12, "source": "sim"} +{"ts": "2025-08-20T02:30:44.723597+00:00", "lat": 48.481157, "lon": -81.3363141, "altitude_m": 48230.14, "source": "sim"} +{"ts": "2025-08-20T02:30:46.573597+00:00", "lat": 48.4813194, "lon": -81.3364428, "altitude_m": 48577.92, "source": "sim"} +{"ts": "2025-08-20T02:30:48.123597+00:00", "lat": 48.4811927, "lon": -81.3363444, "altitude_m": 48837.97, "source": "sim"} +{"ts": "2025-08-20T02:30:49.623597+00:00", "lat": 48.4812536, "lon": -81.3365163, "altitude_m": 49084.9, "source": "sim"} +{"ts": "2025-08-20T02:30:51.373597+00:00", "lat": 48.4812676, "lon": -81.3365389, "altitude_m": 49346.08, "source": "sim"} +{"ts": "2025-08-20T02:30:52.873597+00:00", "lat": 48.4811474, "lon": -81.3366457, "altitude_m": 49522.88, "source": "sim"} +{"ts": "2025-08-20T02:30:54.723597+00:00", "lat": 48.4813791, "lon": -81.3365419, "altitude_m": 49758.47, "source": "sim"} +{"ts": "2025-08-20T02:30:56.423597+00:00", "lat": 48.4812522, "lon": -81.3367497, "altitude_m": 49924.59, "source": "sim"} +{"ts": "2025-08-20T02:30:58.123597+00:00", "lat": 48.4813253, "lon": -81.3367453, "altitude_m": 50042.14, "source": "sim"} +{"ts": "2025-08-20T02:30:59.923597+00:00", "lat": 48.4813258, "lon": -81.3370056, "altitude_m": 50133.73, "source": "sim"} +{"ts": "2025-08-20T02:31:01.423597+00:00", "lat": 48.4814203, "lon": -81.3367909, "altitude_m": 50232.31, "source": "sim"} +{"ts": "2025-08-20T02:31:03.073597+00:00", "lat": 48.4811689, "lon": -81.3369093, "altitude_m": 50245.79, "source": "sim"} +{"ts": "2025-08-20T02:31:04.723597+00:00", "lat": 48.4813463, "lon": -81.3368509, "altitude_m": 50335.48, "source": "sim"} +{"ts": "2025-08-20T02:31:06.473597+00:00", "lat": 48.4813563, "lon": -81.3368578, "altitude_m": 50292.29, "source": "sim"} +{"ts": "2025-08-20T02:31:14.473597+00:00", "lat": 48.4813943, "lon": -81.3373733, "altitude_m": 49896.26, "source": "sim"} +{"ts": "2025-08-20T02:31:16.273597+00:00", "lat": 48.4813895, "lon": -81.3371579, "altitude_m": 49720.24, "source": "sim"} +{"ts": "2025-08-20T02:31:17.973597+00:00", "lat": 48.4814655, "lon": -81.3374013, "altitude_m": 49499.89, "source": "sim"} +{"ts": "2025-08-20T02:31:19.823597+00:00", "lat": 48.481402, "lon": -81.3374286, "altitude_m": 49254.66, "source": "sim"} +{"ts": "2025-08-20T02:31:21.373597+00:00", "lat": 48.4815014, "lon": -81.3374512, "altitude_m": 49017.08, "source": "sim"} +{"ts": "2025-08-20T02:31:23.223597+00:00", "lat": 48.4814464, "lon": -81.3372685, "altitude_m": 48712.87, "source": "sim"} +{"ts": "2025-08-20T02:31:24.923597+00:00", "lat": 48.4814735, "lon": -81.3375635, "altitude_m": 48398.24, "source": "sim"} +{"ts": "2025-08-20T02:31:26.623597+00:00", "lat": 48.4814826, "lon": -81.3374489, "altitude_m": 48060.37, "source": "sim"} +{"ts": "2025-08-20T02:31:28.173597+00:00", "lat": 48.4815146, "lon": -81.3374923, "altitude_m": 47750.42, "source": "sim"} +{"ts": "2025-08-20T02:31:30.123597+00:00", "lat": 48.4815243, "lon": -81.3375513, "altitude_m": 47296.23, "source": "sim"} +{"ts": "2025-08-20T02:31:31.623597+00:00", "lat": 48.4815077, "lon": -81.3376229, "altitude_m": 46866.38, "source": "sim"} +{"ts": "2025-08-20T02:31:33.273597+00:00", "lat": 48.4814435, "lon": -81.3376696, "altitude_m": 46461.08, "source": "sim"} +{"ts": "2025-08-20T02:31:35.123597+00:00", "lat": 48.4814191, "lon": -81.3376403, "altitude_m": 45906.73, "source": "sim"} +{"ts": "2025-08-20T02:31:36.823597+00:00", "lat": 48.4815507, "lon": -81.3377555, "altitude_m": 45410.53, "source": "sim"} +{"ts": "2025-08-20T02:31:38.473597+00:00", "lat": 48.4815158, "lon": -81.3380217, "altitude_m": 44900.66, "source": "sim"} +{"ts": "2025-08-20T02:31:40.173597+00:00", "lat": 48.4813375, "lon": -81.3378748, "altitude_m": 44315.33, "source": "sim"} +{"ts": "2025-08-20T02:31:41.773597+00:00", "lat": 48.481435, "lon": -81.3379437, "altitude_m": 43784.32, "source": "sim"} +{"ts": "2025-08-20T02:31:43.423597+00:00", "lat": 48.4815191, "lon": -81.3378326, "altitude_m": 43158.6, "source": "sim"} +{"ts": "2025-08-20T02:31:45.023597+00:00", "lat": 48.4815723, "lon": -81.3381177, "altitude_m": 42563.4, "source": "sim"} +{"ts": "2025-08-20T02:31:46.773597+00:00", "lat": 48.4816022, "lon": -81.3380606, "altitude_m": 41853.0, "source": "sim"} +{"ts": "2025-08-20T02:31:48.223597+00:00", "lat": 48.4815187, "lon": -81.3380624, "altitude_m": 41288.12, "source": "sim"} +{"ts": "2025-08-20T02:31:49.823597+00:00", "lat": 48.4815858, "lon": -81.3381793, "altitude_m": 40594.78, "source": "sim"} +{"ts": "2025-08-20T02:31:51.623597+00:00", "lat": 48.4815675, "lon": -81.3382651, "altitude_m": 39764.12, "source": "sim"} +{"ts": "2025-08-20T02:31:53.223597+00:00", "lat": 48.4816182, "lon": -81.3381532, "altitude_m": 39022.1, "source": "sim"} +{"ts": "2025-08-20T02:31:54.973597+00:00", "lat": 48.4816169, "lon": -81.3383421, "altitude_m": 38190.93, "source": "sim"} +{"ts": "2025-08-20T02:31:56.673597+00:00", "lat": 48.4815898, "lon": -81.3383095, "altitude_m": 37350.5, "source": "sim"} +{"ts": "2025-08-20T02:31:58.523597+00:00", "lat": 48.481516, "lon": -81.3384089, "altitude_m": 36407.21, "source": "sim"} +{"ts": "2025-08-20T02:32:00.373597+00:00", "lat": 48.481616, "lon": -81.3384018, "altitude_m": 35428.66, "source": "sim"} +{"ts": "2025-08-20T02:32:02.073597+00:00", "lat": 48.4816118, "lon": -81.3383601, "altitude_m": 34484.39, "source": "sim"} +{"ts": "2025-08-20T02:32:03.773597+00:00", "lat": 48.4815758, "lon": -81.3384898, "altitude_m": 33515.79, "source": "sim"} +{"ts": "2025-08-20T02:32:05.673597+00:00", "lat": 48.4817142, "lon": -81.3386384, "altitude_m": 32416.76, "source": "sim"} +{"ts": "2025-08-20T02:32:07.473597+00:00", "lat": 48.4817023, "lon": -81.3384892, "altitude_m": 31345.6, "source": "sim"} +{"ts": "2025-08-20T02:32:09.123597+00:00", "lat": 48.4816454, "lon": -81.3387446, "altitude_m": 30324.58, "source": "sim"} +{"ts": "2025-08-20T02:32:10.923597+00:00", "lat": 48.4816357, "lon": -81.3387245, "altitude_m": 29160.24, "source": "sim"} +{"ts": "2025-08-20T02:32:12.523597+00:00", "lat": 48.4815597, "lon": -81.3386721, "altitude_m": 28123.88, "source": "sim"} +{"ts": "2025-08-20T02:32:14.273597+00:00", "lat": 48.4816663, "lon": -81.3387617, "altitude_m": 26940.65, "source": "sim"} +{"ts": "2025-08-20T02:32:16.173597+00:00", "lat": 48.4817035, "lon": -81.3388424, "altitude_m": 25660.51, "source": "sim"} +{"ts": "2025-08-20T02:32:17.873597+00:00", "lat": 48.4816598, "lon": -81.3387995, "altitude_m": 24460.13, "source": "sim"} +{"ts": "2025-08-20T02:32:19.573597+00:00", "lat": 48.4816921, "lon": -81.3388249, "altitude_m": 23228.56, "source": "sim"} +{"ts": "2025-08-20T02:32:21.223597+00:00", "lat": 48.4817091, "lon": -81.338964, "altitude_m": 22027.93, "source": "sim"} +{"ts": "2025-08-20T02:32:22.973597+00:00", "lat": 48.4817317, "lon": -81.3389965, "altitude_m": 20691.37, "source": "sim"} +{"ts": "2025-08-20T02:32:23.873597+00:00", "lat": 48.4817005, "lon": -81.3389619, "altitude_m": 20018.59, "source": "sim"} +{"ts": "2025-08-20T02:32:24.823597+00:00", "lat": 48.4816391, "lon": -81.3390909, "altitude_m": 19265.5, "source": "sim"} +{"ts": "2025-08-20T02:32:25.823597+00:00", "lat": 48.4816816, "lon": -81.3390957, "altitude_m": 18480.11, "source": "sim"} +{"ts": "2025-08-20T02:32:26.773597+00:00", "lat": 48.4817415, "lon": -81.3391807, "altitude_m": 17728.35, "source": "sim"} +{"ts": "2025-08-20T02:32:27.673597+00:00", "lat": 48.4816888, "lon": -81.3391445, "altitude_m": 17007.02, "source": "sim"} +{"ts": "2025-08-20T02:32:28.573597+00:00", "lat": 48.4817171, "lon": -81.3391931, "altitude_m": 16273.26, "source": "sim"} +{"ts": "2025-08-20T02:32:29.523597+00:00", "lat": 48.4817187, "lon": -81.3391784, "altitude_m": 15512.05, "source": "sim"} +{"ts": "2025-08-20T02:32:30.323597+00:00", "lat": 48.4817467, "lon": -81.339168, "altitude_m": 14843.22, "source": "sim"} +{"ts": "2025-08-20T02:32:31.223597+00:00", "lat": 48.4817457, "lon": -81.3392719, "altitude_m": 14070.04, "source": "sim"} +{"ts": "2025-08-20T02:32:32.223597+00:00", "lat": 48.4817497, "lon": -81.3392513, "altitude_m": 13230.81, "source": "sim"} +{"ts": "2025-08-20T02:32:33.173597+00:00", "lat": 48.4817274, "lon": -81.3393304, "altitude_m": 12413.73, "source": "sim"} +{"ts": "2025-08-20T02:32:33.973597+00:00", "lat": 48.48171, "lon": -81.339224, "altitude_m": 11725.7, "source": "sim"} +{"ts": "2025-08-20T02:32:34.723597+00:00", "lat": 48.4817109, "lon": -81.3392949, "altitude_m": 11066.66, "source": "sim"} +{"ts": "2025-08-20T02:32:35.673597+00:00", "lat": 48.4817149, "lon": -81.3394426, "altitude_m": 10228.26, "source": "sim"} +{"ts": "2025-08-20T02:32:36.573597+00:00", "lat": 48.4817359, "lon": -81.3394229, "altitude_m": 9436.32, "source": "sim"} +{"ts": "2025-08-20T02:32:37.373597+00:00", "lat": 48.4817363, "lon": -81.3393859, "altitude_m": 8716.86, "source": "sim"} +{"ts": "2025-08-20T02:32:38.223597+00:00", "lat": 48.481743, "lon": -81.3394484, "altitude_m": 7940.06, "source": "sim"} +{"ts": "2025-08-20T02:32:39.223597+00:00", "lat": 48.4817538, "lon": -81.3394325, "altitude_m": 7029.39, "source": "sim"} +{"ts": "2025-08-20T02:32:40.223597+00:00", "lat": 48.4818053, "lon": -81.3395106, "altitude_m": 6102.46, "source": "sim"} +{"ts": "2025-08-20T02:32:41.123597+00:00", "lat": 48.481759, "lon": -81.3395301, "altitude_m": 5258.59, "source": "sim"} +{"ts": "2025-08-20T02:32:41.523597+00:00", "lat": 48.4817501, "lon": -81.3395045, "altitude_m": 4876.14, "source": "sim"} +{"ts": "2025-08-20T02:32:42.023597+00:00", "lat": 48.4817487, "lon": -81.3395223, "altitude_m": 4408.37, "source": "sim"} +{"ts": "2025-08-20T02:32:42.573597+00:00", "lat": 48.481738, "lon": -81.3395421, "altitude_m": 3886.57, "source": "sim"} +{"ts": "2025-08-20T02:32:43.173597+00:00", "lat": 48.4817705, "lon": -81.339531, "altitude_m": 3313.47, "source": "sim"} +{"ts": "2025-08-20T02:32:43.573597+00:00", "lat": 48.4817901, "lon": -81.3395829, "altitude_m": 3288.07, "source": "sim"} +{"ts": "2025-08-20T02:32:44.023597+00:00", "lat": 48.4817598, "lon": -81.3395174, "altitude_m": 3286.22, "source": "sim"} +{"ts": "2025-08-20T02:32:44.623597+00:00", "lat": 48.4817282, "lon": -81.3395625, "altitude_m": 3280.92, "source": "sim"} +{"ts": "2025-08-20T02:32:45.023597+00:00", "lat": 48.4817664, "lon": -81.3395644, "altitude_m": 3272.55, "source": "sim"} +{"ts": "2025-08-20T02:32:45.723597+00:00", "lat": 48.4817734, "lon": -81.3395305, "altitude_m": 3270.96, "source": "sim"} +{"ts": "2025-08-20T02:32:46.323597+00:00", "lat": 48.4817311, "lon": -81.3395406, "altitude_m": 3269.25, "source": "sim"} +{"ts": "2025-08-20T02:32:46.873597+00:00", "lat": 48.48173, "lon": -81.3395657, "altitude_m": 3267.64, "source": "sim"} +{"ts": "2025-08-20T02:32:47.323597+00:00", "lat": 48.4817333, "lon": -81.3395055, "altitude_m": 3270.67, "source": "sim"} +{"ts": "2025-08-20T02:32:47.773597+00:00", "lat": 48.4816841, "lon": -81.3395014, "altitude_m": 3259.77, "source": "sim"} +{"ts": "2025-08-20T02:32:48.323597+00:00", "lat": 48.4817591, "lon": -81.3395252, "altitude_m": 3249.52, "source": "sim"} +{"ts": "2025-08-20T02:32:48.773597+00:00", "lat": 48.4817332, "lon": -81.3395974, "altitude_m": 3246.76, "source": "sim"} +{"ts": "2025-08-20T02:32:49.273597+00:00", "lat": 48.4817029, "lon": -81.3395285, "altitude_m": 3244.34, "source": "sim"} +{"ts": "2025-08-20T02:32:49.873597+00:00", "lat": 48.4817126, "lon": -81.3394879, "altitude_m": 3245.53, "source": "sim"} +{"ts": "2025-08-20T02:32:50.473597+00:00", "lat": 48.4816839, "lon": -81.3395129, "altitude_m": 3236.3, "source": "sim"} +{"ts": "2025-08-20T02:32:50.873597+00:00", "lat": 48.4817036, "lon": -81.339494, "altitude_m": 3228.25, "source": "sim"} +{"ts": "2025-08-20T02:32:51.273597+00:00", "lat": 48.4817231, "lon": -81.3394676, "altitude_m": 3231.78, "source": "sim"} +{"ts": "2025-08-20T02:32:51.673597+00:00", "lat": 48.4817089, "lon": -81.3395052, "altitude_m": 3225.4, "source": "sim"} +{"ts": "2025-08-20T02:32:52.173597+00:00", "lat": 48.4817056, "lon": -81.3394514, "altitude_m": 3219.61, "source": "sim"} +{"ts": "2025-08-20T02:32:52.673597+00:00", "lat": 48.4817115, "lon": -81.3394769, "altitude_m": 3217.68, "source": "sim"} +{"ts": "2025-08-20T02:32:53.073597+00:00", "lat": 48.4816605, "lon": -81.3394903, "altitude_m": 3219.39, "source": "sim"} +{"ts": "2025-08-20T02:32:53.623597+00:00", "lat": 48.4816848, "lon": -81.3394892, "altitude_m": 3211.19, "source": "sim"} +{"ts": "2025-08-20T02:32:54.173597+00:00", "lat": 48.4816492, "lon": -81.3394452, "altitude_m": 3204.9, "source": "sim"} +{"ts": "2025-08-20T02:32:54.673597+00:00", "lat": 48.4816454, "lon": -81.3395228, "altitude_m": 3204.89, "source": "sim"} +{"ts": "2025-08-20T02:32:55.123597+00:00", "lat": 48.4816463, "lon": -81.3394466, "altitude_m": 3200.95, "source": "sim"} +{"ts": "2025-08-20T02:32:55.623597+00:00", "lat": 48.4816161, "lon": -81.3394528, "altitude_m": 3196.05, "source": "sim"} +{"ts": "2025-08-20T02:32:56.073597+00:00", "lat": 48.4816482, "lon": -81.3394319, "altitude_m": 3190.5, "source": "sim"} +{"ts": "2025-08-20T02:32:56.573597+00:00", "lat": 48.4815888, "lon": -81.3394661, "altitude_m": 3186.43, "source": "sim"} +{"ts": "2025-08-20T02:32:57.073597+00:00", "lat": 48.4816575, "lon": -81.3394288, "altitude_m": 3187.01, "source": "sim"} +{"ts": "2025-08-20T02:32:57.473597+00:00", "lat": 48.4816447, "lon": -81.3394497, "altitude_m": 3180.91, "source": "sim"} +{"ts": "2025-08-20T02:32:58.023597+00:00", "lat": 48.4816219, "lon": -81.3394371, "altitude_m": 3177.09, "source": "sim"} +{"ts": "2025-08-20T02:32:58.523597+00:00", "lat": 48.4816296, "lon": -81.3394452, "altitude_m": 3166.96, "source": "sim"} +{"ts": "2025-08-20T02:32:58.973597+00:00", "lat": 48.4816014, "lon": -81.3394598, "altitude_m": 3169.43, "source": "sim"} +{"ts": "2025-08-20T02:32:59.423597+00:00", "lat": 48.4816097, "lon": -81.3394313, "altitude_m": 3163.22, "source": "sim"} +{"ts": "2025-08-20T02:32:59.973597+00:00", "lat": 48.4815986, "lon": -81.3394623, "altitude_m": 3156.12, "source": "sim"} +{"ts": "2025-08-20T02:33:00.423597+00:00", "lat": 48.481584, "lon": -81.3394507, "altitude_m": 3153.31, "source": "sim"} +{"ts": "2025-08-20T02:33:00.973597+00:00", "lat": 48.4816036, "lon": -81.339433, "altitude_m": 3148.85, "source": "sim"} +{"ts": "2025-08-20T02:33:01.423597+00:00", "lat": 48.4815643, "lon": -81.3394167, "altitude_m": 3146.25, "source": "sim"} +{"ts": "2025-08-20T02:33:01.823597+00:00", "lat": 48.4815559, "lon": -81.3393944, "altitude_m": 3140.26, "source": "sim"} +{"ts": "2025-08-20T02:33:02.323597+00:00", "lat": 48.4815646, "lon": -81.3394367, "altitude_m": 3139.51, "source": "sim"} +{"ts": "2025-08-20T02:33:02.773597+00:00", "lat": 48.4815648, "lon": -81.3394469, "altitude_m": 3133.94, "source": "sim"} +{"ts": "2025-08-20T02:33:03.323597+00:00", "lat": 48.4815529, "lon": -81.3394056, "altitude_m": 3131.48, "source": "sim"} +{"ts": "2025-08-20T02:33:03.923597+00:00", "lat": 48.4815579, "lon": -81.3393812, "altitude_m": 3131.22, "source": "sim"} +{"ts": "2025-08-20T02:33:04.373597+00:00", "lat": 48.4815757, "lon": -81.3393975, "altitude_m": 3123.75, "source": "sim"} +{"ts": "2025-08-20T02:33:04.823597+00:00", "lat": 48.4815598, "lon": -81.339397, "altitude_m": 3119.86, "source": "sim"} +{"ts": "2025-08-20T02:33:05.423597+00:00", "lat": 48.4815243, "lon": -81.3394025, "altitude_m": 3117.29, "source": "sim"} +{"ts": "2025-08-20T02:33:05.973597+00:00", "lat": 48.4815267, "lon": -81.3394131, "altitude_m": 3114.74, "source": "sim"} +{"ts": "2025-08-20T02:33:06.373597+00:00", "lat": 48.4815333, "lon": -81.3394267, "altitude_m": 3109.9, "source": "sim"} +{"ts": "2025-08-20T02:33:06.823597+00:00", "lat": 48.4815266, "lon": -81.3393886, "altitude_m": 3107.61, "source": "sim"} +{"ts": "2025-08-20T02:33:07.273597+00:00", "lat": 48.481565, "lon": -81.3394371, "altitude_m": 3099.13, "source": "sim"} +{"ts": "2025-08-20T02:33:07.673597+00:00", "lat": 48.4815326, "lon": -81.339374, "altitude_m": 3093.93, "source": "sim"} +{"ts": "2025-08-20T02:33:08.123597+00:00", "lat": 48.4814953, "lon": -81.3394101, "altitude_m": 3100.37, "source": "sim"} +{"ts": "2025-08-20T02:33:08.723597+00:00", "lat": 48.481488, "lon": -81.339426, "altitude_m": 3094.44, "source": "sim"} +{"ts": "2025-08-20T02:33:09.173597+00:00", "lat": 48.4815221, "lon": -81.3393169, "altitude_m": 3090.91, "source": "sim"} +{"ts": "2025-08-20T02:33:09.623597+00:00", "lat": 48.4815038, "lon": -81.3393396, "altitude_m": 3083.02, "source": "sim"} +{"ts": "2025-08-20T02:33:10.073597+00:00", "lat": 48.4814848, "lon": -81.3393322, "altitude_m": 3077.0, "source": "sim"} +{"ts": "2025-08-20T02:33:10.623597+00:00", "lat": 48.48148, "lon": -81.3393051, "altitude_m": 3082.62, "source": "sim"} +{"ts": "2025-08-20T02:33:11.123597+00:00", "lat": 48.4814957, "lon": -81.3393466, "altitude_m": 3067.9, "source": "sim"} +{"ts": "2025-08-20T02:33:11.723597+00:00", "lat": 48.4814796, "lon": -81.3393472, "altitude_m": 3066.42, "source": "sim"} +{"ts": "2025-08-20T02:33:12.273597+00:00", "lat": 48.4814448, "lon": -81.3393655, "altitude_m": 3069.76, "source": "sim"} +{"ts": "2025-08-20T02:33:12.823597+00:00", "lat": 48.4814728, "lon": -81.3393535, "altitude_m": 3061.1, "source": "sim"} +{"ts": "2025-08-20T02:33:13.373597+00:00", "lat": 48.4814447, "lon": -81.339282, "altitude_m": 3053.13, "source": "sim"} +{"ts": "2025-08-20T02:33:13.923597+00:00", "lat": 48.4814605, "lon": -81.3392821, "altitude_m": 3053.62, "source": "sim"} +{"ts": "2025-08-20T02:33:14.423597+00:00", "lat": 48.4814495, "lon": -81.3393133, "altitude_m": 3045.1, "source": "sim"} +{"ts": "2025-08-20T02:33:14.823597+00:00", "lat": 48.4814553, "lon": -81.3393353, "altitude_m": 3043.84, "source": "sim"} +{"ts": "2025-08-20T02:33:15.273597+00:00", "lat": 48.4814105, "lon": -81.3393146, "altitude_m": 3042.25, "source": "sim"} +{"ts": "2025-08-20T02:33:15.673597+00:00", "lat": 48.4814331, "lon": -81.3392664, "altitude_m": 3034.64, "source": "sim"} +{"ts": "2025-08-20T02:33:16.173597+00:00", "lat": 48.4814052, "lon": -81.339284, "altitude_m": 3029.41, "source": "sim"} +{"ts": "2025-08-20T02:33:16.623597+00:00", "lat": 48.4814172, "lon": -81.3393074, "altitude_m": 3026.52, "source": "sim"} +{"ts": "2025-08-20T02:33:17.073597+00:00", "lat": 48.4814221, "lon": -81.3392982, "altitude_m": 3024.05, "source": "sim"} +{"ts": "2025-08-20T02:33:17.573597+00:00", "lat": 48.4814334, "lon": -81.3392885, "altitude_m": 3013.64, "source": "sim"} +{"ts": "2025-08-20T02:33:18.023597+00:00", "lat": 48.481402, "lon": -81.3393144, "altitude_m": 3015.42, "source": "sim"} +{"ts": "2025-08-20T02:33:18.623597+00:00", "lat": 48.4814115, "lon": -81.3392759, "altitude_m": 3012.32, "source": "sim"} +{"ts": "2025-08-20T02:33:19.123597+00:00", "lat": 48.4813748, "lon": -81.3393145, "altitude_m": 3009.81, "source": "sim"} +{"ts": "2025-08-20T02:33:19.573597+00:00", "lat": 48.4814102, "lon": -81.3392741, "altitude_m": 3002.97, "source": "sim"} +{"ts": "2025-08-20T02:33:20.073597+00:00", "lat": 48.4813623, "lon": -81.3392689, "altitude_m": 2995.34, "source": "sim"} +{"ts": "2025-08-20T02:33:20.473597+00:00", "lat": 48.4813653, "lon": -81.339258, "altitude_m": 2998.3, "source": "sim"} +{"ts": "2025-08-20T02:33:21.023597+00:00", "lat": 48.4813668, "lon": -81.3392144, "altitude_m": 2988.32, "source": "sim"} +{"ts": "2025-08-20T02:33:21.473597+00:00", "lat": 48.481366, "lon": -81.3392422, "altitude_m": 2981.78, "source": "sim"} +{"ts": "2025-08-20T02:33:22.073597+00:00", "lat": 48.4813447, "lon": -81.3392645, "altitude_m": 2979.33, "source": "sim"} +{"ts": "2025-08-20T02:33:22.573597+00:00", "lat": 48.4813296, "lon": -81.3392447, "altitude_m": 2978.97, "source": "sim"} +{"ts": "2025-08-20T02:33:23.073597+00:00", "lat": 48.4813763, "lon": -81.339248, "altitude_m": 2972.88, "source": "sim"} +{"ts": "2025-08-20T02:33:23.523597+00:00", "lat": 48.4813361, "lon": -81.339238, "altitude_m": 2969.06, "source": "sim"} +{"ts": "2025-08-20T02:33:24.123597+00:00", "lat": 48.4813547, "lon": -81.3392663, "altitude_m": 2965.6, "source": "sim"} +{"ts": "2025-08-20T02:33:24.573597+00:00", "lat": 48.4813563, "lon": -81.3392302, "altitude_m": 2963.35, "source": "sim"} +{"ts": "2025-08-20T02:33:25.023597+00:00", "lat": 48.4813266, "lon": -81.3392512, "altitude_m": 2963.64, "source": "sim"} +{"ts": "2025-08-20T02:33:25.523597+00:00", "lat": 48.4813283, "lon": -81.3392714, "altitude_m": 2950.07, "source": "sim"} +{"ts": "2025-08-20T02:33:25.923597+00:00", "lat": 48.481336, "lon": -81.3392411, "altitude_m": 2954.76, "source": "sim"} +{"ts": "2025-08-20T02:33:26.523597+00:00", "lat": 48.4813, "lon": -81.3392286, "altitude_m": 2948.93, "source": "sim"} +{"ts": "2025-08-20T02:33:26.973597+00:00", "lat": 48.481317, "lon": -81.3392544, "altitude_m": 2946.77, "source": "sim"} +{"ts": "2025-08-20T02:33:27.473597+00:00", "lat": 48.4813031, "lon": -81.339242, "altitude_m": 2940.35, "source": "sim"} +{"ts": "2025-08-20T02:33:27.923597+00:00", "lat": 48.4812915, "lon": -81.3391691, "altitude_m": 2938.86, "source": "sim"} +{"ts": "2025-08-20T02:33:28.373597+00:00", "lat": 48.4813158, "lon": -81.339226, "altitude_m": 2933.89, "source": "sim"} +{"ts": "2025-08-20T02:33:28.823597+00:00", "lat": 48.4813093, "lon": -81.3392403, "altitude_m": 2924.45, "source": "sim"} +{"ts": "2025-08-20T02:33:29.423597+00:00", "lat": 48.4812749, "lon": -81.3391943, "altitude_m": 2927.61, "source": "sim"} +{"ts": "2025-08-20T02:33:29.873597+00:00", "lat": 48.4812879, "lon": -81.3392623, "altitude_m": 2923.38, "source": "sim"} +{"ts": "2025-08-20T02:33:30.323597+00:00", "lat": 48.481271, "lon": -81.3392221, "altitude_m": 2918.87, "source": "sim"} +{"ts": "2025-08-20T02:33:30.823597+00:00", "lat": 48.4812675, "lon": -81.339184, "altitude_m": 2915.0, "source": "sim"} +{"ts": "2025-08-20T02:33:31.373597+00:00", "lat": 48.4812632, "lon": -81.3391937, "altitude_m": 2905.75, "source": "sim"} +{"ts": "2025-08-20T02:33:31.923597+00:00", "lat": 48.4812623, "lon": -81.3391714, "altitude_m": 2903.36, "source": "sim"} +{"ts": "2025-08-20T02:33:32.473597+00:00", "lat": 48.4812303, "lon": -81.3391852, "altitude_m": 2903.47, "source": "sim"} +{"ts": "2025-08-20T02:33:32.973597+00:00", "lat": 48.4812551, "lon": -81.3392144, "altitude_m": 2895.5, "source": "sim"} +{"ts": "2025-08-20T02:33:33.423597+00:00", "lat": 48.4812361, "lon": -81.3391693, "altitude_m": 2891.96, "source": "sim"} +{"ts": "2025-08-20T02:33:33.923597+00:00", "lat": 48.4812465, "lon": -81.3392, "altitude_m": 2888.24, "source": "sim"} +{"ts": "2025-08-20T02:33:34.423597+00:00", "lat": 48.4812389, "lon": -81.3391762, "altitude_m": 2878.38, "source": "sim"} +{"ts": "2025-08-20T02:33:34.823597+00:00", "lat": 48.4812272, "lon": -81.3391749, "altitude_m": 2889.24, "source": "sim"} +{"ts": "2025-08-20T02:33:35.373597+00:00", "lat": 48.4812064, "lon": -81.3391736, "altitude_m": 2880.27, "source": "sim"} +{"ts": "2025-08-20T02:33:35.823597+00:00", "lat": 48.4812289, "lon": -81.3391958, "altitude_m": 2872.74, "source": "sim"} +{"ts": "2025-08-20T02:33:36.323597+00:00", "lat": 48.4812201, "lon": -81.339141, "altitude_m": 2868.14, "source": "sim"} +{"ts": "2025-08-20T02:33:36.873597+00:00", "lat": 48.481219, "lon": -81.3391691, "altitude_m": 2867.54, "source": "sim"} +{"ts": "2025-08-20T02:33:37.473597+00:00", "lat": 48.481212, "lon": -81.3391404, "altitude_m": 2859.07, "source": "sim"} +{"ts": "2025-08-20T02:33:38.023597+00:00", "lat": 48.4811885, "lon": -81.3391651, "altitude_m": 2856.31, "source": "sim"} +{"ts": "2025-08-20T02:33:38.423597+00:00", "lat": 48.4811794, "lon": -81.3391512, "altitude_m": 2851.34, "source": "sim"} +{"ts": "2025-08-20T02:33:38.923597+00:00", "lat": 48.4811859, "lon": -81.339134, "altitude_m": 2854.72, "source": "sim"} +{"ts": "2025-08-20T02:33:39.423597+00:00", "lat": 48.4811791, "lon": -81.3391109, "altitude_m": 2848.3, "source": "sim"} +{"ts": "2025-08-20T02:33:39.973597+00:00", "lat": 48.4811826, "lon": -81.339101, "altitude_m": 2847.95, "source": "sim"} +{"ts": "2025-08-20T02:33:40.473597+00:00", "lat": 48.481163, "lon": -81.3391294, "altitude_m": 2835.82, "source": "sim"} +{"ts": "2025-08-20T02:33:40.873597+00:00", "lat": 48.4811744, "lon": -81.3391712, "altitude_m": 2825.05, "source": "sim"} +{"ts": "2025-08-20T02:33:41.323597+00:00", "lat": 48.4811851, "lon": -81.3391626, "altitude_m": 2821.66, "source": "sim"} +{"ts": "2025-08-20T02:33:41.773597+00:00", "lat": 48.4811771, "lon": -81.3391143, "altitude_m": 2830.46, "source": "sim"} +{"ts": "2025-08-20T02:33:42.173597+00:00", "lat": 48.4811399, "lon": -81.3391388, "altitude_m": 2826.84, "source": "sim"} +{"ts": "2025-08-20T02:33:42.723597+00:00", "lat": 48.4811418, "lon": -81.3391417, "altitude_m": 2820.23, "source": "sim"} +{"ts": "2025-08-20T02:33:43.223597+00:00", "lat": 48.4811283, "lon": -81.33913, "altitude_m": 2807.78, "source": "sim"} +{"ts": "2025-08-20T02:33:43.673597+00:00", "lat": 48.4811236, "lon": -81.3390947, "altitude_m": 2811.69, "source": "sim"} +{"ts": "2025-08-20T02:33:44.223597+00:00", "lat": 48.4811245, "lon": -81.3391181, "altitude_m": 2814.26, "source": "sim"} +{"ts": "2025-08-20T02:33:44.723597+00:00", "lat": 48.4811667, "lon": -81.3391107, "altitude_m": 2802.93, "source": "sim"} +{"ts": "2025-08-20T02:33:45.223597+00:00", "lat": 48.4810945, "lon": -81.3390865, "altitude_m": 2794.21, "source": "sim"} +{"ts": "2025-08-20T02:33:45.773597+00:00", "lat": 48.4811442, "lon": -81.339084, "altitude_m": 2786.79, "source": "sim"} +{"ts": "2025-08-20T02:33:46.273597+00:00", "lat": 48.4811162, "lon": -81.3390941, "altitude_m": 2798.23, "source": "sim"} +{"ts": "2025-08-20T02:33:46.823597+00:00", "lat": 48.4811045, "lon": -81.3390876, "altitude_m": 2788.63, "source": "sim"} +{"ts": "2025-08-20T02:33:47.273597+00:00", "lat": 48.4810799, "lon": -81.3390522, "altitude_m": 2785.87, "source": "sim"} +{"ts": "2025-08-20T02:33:47.723597+00:00", "lat": 48.4811, "lon": -81.3390861, "altitude_m": 2779.63, "source": "sim"} +{"ts": "2025-08-20T02:33:48.123597+00:00", "lat": 48.481051, "lon": -81.3390564, "altitude_m": 2775.53, "source": "sim"} +{"ts": "2025-08-20T02:33:48.673597+00:00", "lat": 48.4810885, "lon": -81.3390397, "altitude_m": 2773.12, "source": "sim"} +{"ts": "2025-08-20T02:33:49.173597+00:00", "lat": 48.4810812, "lon": -81.3390725, "altitude_m": 2764.24, "source": "sim"} +{"ts": "2025-08-20T02:33:49.573597+00:00", "lat": 48.4810739, "lon": -81.3390585, "altitude_m": 2764.63, "source": "sim"} +{"ts": "2025-08-20T02:33:50.123597+00:00", "lat": 48.4810704, "lon": -81.3390529, "altitude_m": 2765.94, "source": "sim"} +{"ts": "2025-08-20T02:33:50.573597+00:00", "lat": 48.4810647, "lon": -81.339107, "altitude_m": 2751.83, "source": "sim"} +{"ts": "2025-08-20T02:33:51.073597+00:00", "lat": 48.4810651, "lon": -81.3390541, "altitude_m": 2748.55, "source": "sim"} +{"ts": "2025-08-20T02:33:51.523597+00:00", "lat": 48.4810462, "lon": -81.3390488, "altitude_m": 2749.09, "source": "sim"} +{"ts": "2025-08-20T02:33:52.023597+00:00", "lat": 48.4810423, "lon": -81.339015, "altitude_m": 2744.4, "source": "sim"} +{"ts": "2025-08-20T02:33:52.473597+00:00", "lat": 48.4810568, "lon": -81.3389917, "altitude_m": 2744.24, "source": "sim"} +{"ts": "2025-08-20T02:33:52.973597+00:00", "lat": 48.4810299, "lon": -81.3390245, "altitude_m": 2735.83, "source": "sim"} +{"ts": "2025-08-20T02:33:53.373597+00:00", "lat": 48.4810273, "lon": -81.338979, "altitude_m": 2725.88, "source": "sim"} +{"ts": "2025-08-20T02:33:53.923597+00:00", "lat": 48.4810373, "lon": -81.3390802, "altitude_m": 2728.19, "source": "sim"} +{"ts": "2025-08-20T02:33:54.373597+00:00", "lat": 48.4810572, "lon": -81.338968, "altitude_m": 2720.89, "source": "sim"} +{"ts": "2025-08-20T02:33:54.873597+00:00", "lat": 48.4810241, "lon": -81.3389836, "altitude_m": 2717.56, "source": "sim"} +{"ts": "2025-08-20T02:33:55.373597+00:00", "lat": 48.4810095, "lon": -81.339014, "altitude_m": 2719.07, "source": "sim"} +{"ts": "2025-08-20T02:33:55.773597+00:00", "lat": 48.4810284, "lon": -81.3390183, "altitude_m": 2714.51, "source": "sim"} +{"ts": "2025-08-20T02:33:56.223597+00:00", "lat": 48.4810009, "lon": -81.3389671, "altitude_m": 2710.78, "source": "sim"} +{"ts": "2025-08-20T02:33:56.673597+00:00", "lat": 48.4810057, "lon": -81.3390121, "altitude_m": 2709.29, "source": "sim"} +{"ts": "2025-08-20T02:33:57.173597+00:00", "lat": 48.4809922, "lon": -81.338982, "altitude_m": 2698.02, "source": "sim"} +{"ts": "2025-08-20T02:33:57.723597+00:00", "lat": 48.4809561, "lon": -81.3390083, "altitude_m": 2696.65, "source": "sim"} +{"ts": "2025-08-20T02:33:58.223597+00:00", "lat": 48.4809872, "lon": -81.3389875, "altitude_m": 2691.57, "source": "sim"} +{"ts": "2025-08-20T02:33:58.673597+00:00", "lat": 48.4809608, "lon": -81.338994, "altitude_m": 2685.79, "source": "sim"} +{"ts": "2025-08-20T02:33:59.223597+00:00", "lat": 48.4809834, "lon": -81.3389502, "altitude_m": 2685.41, "source": "sim"} +{"ts": "2025-08-20T02:33:59.673597+00:00", "lat": 48.4809804, "lon": -81.3389802, "altitude_m": 2677.9, "source": "sim"} +{"ts": "2025-08-20T02:34:00.223597+00:00", "lat": 48.4809321, "lon": -81.3389854, "altitude_m": 2675.05, "source": "sim"} +{"ts": "2025-08-20T02:34:00.623597+00:00", "lat": 48.4809489, "lon": -81.3389443, "altitude_m": 2679.96, "source": "sim"} +{"ts": "2025-08-20T02:34:01.123597+00:00", "lat": 48.4809678, "lon": -81.3389995, "altitude_m": 2671.52, "source": "sim"} +{"ts": "2025-08-20T02:34:01.623597+00:00", "lat": 48.48094, "lon": -81.3388886, "altitude_m": 2669.53, "source": "sim"} +{"ts": "2025-08-20T02:34:02.073597+00:00", "lat": 48.4809497, "lon": -81.3389551, "altitude_m": 2663.77, "source": "sim"} +{"ts": "2025-08-20T02:34:02.523597+00:00", "lat": 48.4809287, "lon": -81.3389441, "altitude_m": 2658.42, "source": "sim"} +{"ts": "2025-08-20T02:34:03.073597+00:00", "lat": 48.480941, "lon": -81.3389272, "altitude_m": 2655.78, "source": "sim"} +{"ts": "2025-08-20T02:34:03.623597+00:00", "lat": 48.4809272, "lon": -81.3389362, "altitude_m": 2645.14, "source": "sim"} +{"ts": "2025-08-20T02:34:04.123597+00:00", "lat": 48.4809063, "lon": -81.3389744, "altitude_m": 2644.87, "source": "sim"} +{"ts": "2025-08-20T02:34:04.573597+00:00", "lat": 48.4808899, "lon": -81.3389316, "altitude_m": 2636.22, "source": "sim"} +{"ts": "2025-08-20T02:34:05.173597+00:00", "lat": 48.4809006, "lon": -81.3389628, "altitude_m": 2640.42, "source": "sim"} +{"ts": "2025-08-20T02:34:05.723597+00:00", "lat": 48.4808975, "lon": -81.3389341, "altitude_m": 2633.91, "source": "sim"} +{"ts": "2025-08-20T02:34:06.223597+00:00", "lat": 48.4809053, "lon": -81.338915, "altitude_m": 2630.58, "source": "sim"} +{"ts": "2025-08-20T02:34:06.673597+00:00", "lat": 48.4808991, "lon": -81.3389178, "altitude_m": 2623.98, "source": "sim"} +{"ts": "2025-08-20T02:34:07.223597+00:00", "lat": 48.4809034, "lon": -81.3389049, "altitude_m": 2619.8, "source": "sim"} +{"ts": "2025-08-20T02:34:07.673597+00:00", "lat": 48.4808774, "lon": -81.3389333, "altitude_m": 2615.1, "source": "sim"} +{"ts": "2025-08-20T02:34:08.223597+00:00", "lat": 48.4808859, "lon": -81.3388937, "altitude_m": 2617.42, "source": "sim"} +{"ts": "2025-08-20T02:34:08.773597+00:00", "lat": 48.480855, "lon": -81.3389094, "altitude_m": 2616.65, "source": "sim"} +{"ts": "2025-08-20T02:34:09.273597+00:00", "lat": 48.4808538, "lon": -81.3389349, "altitude_m": 2611.59, "source": "sim"} +{"ts": "2025-08-20T02:34:09.823597+00:00", "lat": 48.4808744, "lon": -81.338894, "altitude_m": 2599.91, "source": "sim"} +{"ts": "2025-08-20T02:34:10.223597+00:00", "lat": 48.480858, "lon": -81.3389657, "altitude_m": 2602.18, "source": "sim"} +{"ts": "2025-08-20T02:34:10.723597+00:00", "lat": 48.48085, "lon": -81.3388483, "altitude_m": 2598.6, "source": "sim"} +{"ts": "2025-08-20T02:34:11.173597+00:00", "lat": 48.4808344, "lon": -81.3388342, "altitude_m": 2589.48, "source": "sim"} +{"ts": "2025-08-20T02:34:11.623597+00:00", "lat": 48.4808421, "lon": -81.3389071, "altitude_m": 2581.56, "source": "sim"} +{"ts": "2025-08-20T02:34:12.123597+00:00", "lat": 48.4808055, "lon": -81.3388888, "altitude_m": 2582.37, "source": "sim"} +{"ts": "2025-08-20T02:34:12.623597+00:00", "lat": 48.4807984, "lon": -81.3388731, "altitude_m": 2579.27, "source": "sim"} +{"ts": "2025-08-20T02:34:13.073597+00:00", "lat": 48.4808236, "lon": -81.3388877, "altitude_m": 2572.37, "source": "sim"} +{"ts": "2025-08-20T02:34:13.573597+00:00", "lat": 48.4808168, "lon": -81.3388359, "altitude_m": 2566.75, "source": "sim"} +{"ts": "2025-08-20T02:34:14.073597+00:00", "lat": 48.4808065, "lon": -81.3389135, "altitude_m": 2571.86, "source": "sim"} +{"ts": "2025-08-20T02:34:14.623597+00:00", "lat": 48.4807941, "lon": -81.3388603, "altitude_m": 2560.09, "source": "sim"} +{"ts": "2025-08-20T02:34:15.173597+00:00", "lat": 48.4807924, "lon": -81.3388131, "altitude_m": 2552.71, "source": "sim"} +{"ts": "2025-08-20T02:34:15.573597+00:00", "lat": 48.4807779, "lon": -81.3388407, "altitude_m": 2553.66, "source": "sim"} +{"ts": "2025-08-20T02:34:15.973597+00:00", "lat": 48.480788, "lon": -81.3388482, "altitude_m": 2549.95, "source": "sim"} +{"ts": "2025-08-20T02:34:16.573597+00:00", "lat": 48.4807665, "lon": -81.3388222, "altitude_m": 2542.44, "source": "sim"} +{"ts": "2025-08-20T02:34:17.023597+00:00", "lat": 48.4807871, "lon": -81.3388898, "altitude_m": 2550.47, "source": "sim"} +{"ts": "2025-08-20T02:34:17.523597+00:00", "lat": 48.4807674, "lon": -81.3388598, "altitude_m": 2537.73, "source": "sim"} +{"ts": "2025-08-20T02:34:17.973597+00:00", "lat": 48.4807916, "lon": -81.338846, "altitude_m": 2532.9, "source": "sim"} +{"ts": "2025-08-20T02:34:18.473597+00:00", "lat": 48.4807638, "lon": -81.3388227, "altitude_m": 2530.94, "source": "sim"} +{"ts": "2025-08-20T02:34:18.873597+00:00", "lat": 48.4807969, "lon": -81.3388193, "altitude_m": 2528.48, "source": "sim"} +{"ts": "2025-08-20T02:34:19.373597+00:00", "lat": 48.4807523, "lon": -81.3388031, "altitude_m": 2524.36, "source": "sim"} +{"ts": "2025-08-20T02:34:19.873597+00:00", "lat": 48.4807463, "lon": -81.338793, "altitude_m": 2517.55, "source": "sim"} +{"ts": "2025-08-20T02:34:20.323597+00:00", "lat": 48.4807749, "lon": -81.3387993, "altitude_m": 2515.31, "source": "sim"} +{"ts": "2025-08-20T02:34:20.873597+00:00", "lat": 48.4807703, "lon": -81.3388173, "altitude_m": 2509.03, "source": "sim"} +{"ts": "2025-08-20T02:34:21.323597+00:00", "lat": 48.4806962, "lon": -81.3388144, "altitude_m": 2508.86, "source": "sim"} +{"ts": "2025-08-20T02:34:21.873597+00:00", "lat": 48.4807081, "lon": -81.3387933, "altitude_m": 2502.89, "source": "sim"} +{"ts": "2025-08-20T02:34:22.323597+00:00", "lat": 48.4807715, "lon": -81.3387686, "altitude_m": 2504.32, "source": "sim"} +{"ts": "2025-08-20T02:34:22.773597+00:00", "lat": 48.4807439, "lon": -81.3387878, "altitude_m": 2496.94, "source": "sim"} +{"ts": "2025-08-20T02:34:23.173597+00:00", "lat": 48.4807211, "lon": -81.3387812, "altitude_m": 2504.78, "source": "sim"} +{"ts": "2025-08-20T02:34:23.573597+00:00", "lat": 48.4807069, "lon": -81.3388099, "altitude_m": 2488.68, "source": "sim"} +{"ts": "2025-08-20T02:34:23.973597+00:00", "lat": 48.4807054, "lon": -81.3387912, "altitude_m": 2486.43, "source": "sim"} +{"ts": "2025-08-20T02:34:24.473597+00:00", "lat": 48.4806716, "lon": -81.3388183, "altitude_m": 2485.61, "source": "sim"} +{"ts": "2025-08-20T02:34:24.973597+00:00", "lat": 48.4806973, "lon": -81.3387773, "altitude_m": 2477.02, "source": "sim"} +{"ts": "2025-08-20T02:34:25.623597+00:00", "lat": 48.4806704, "lon": -81.3387938, "altitude_m": 2467.92, "source": "sim"} +{"ts": "2025-08-20T02:34:26.173597+00:00", "lat": 48.4806874, "lon": -81.338743, "altitude_m": 2472.19, "source": "sim"} +{"ts": "2025-08-20T02:34:26.723597+00:00", "lat": 48.4807003, "lon": -81.3387195, "altitude_m": 2464.14, "source": "sim"} +{"ts": "2025-08-20T02:34:27.223597+00:00", "lat": 48.4806677, "lon": -81.3387334, "altitude_m": 2461.35, "source": "sim"} +{"ts": "2025-08-20T02:34:27.773597+00:00", "lat": 48.4806641, "lon": -81.3387084, "altitude_m": 2457.53, "source": "sim"} +{"ts": "2025-08-20T02:34:28.273597+00:00", "lat": 48.4806642, "lon": -81.3387551, "altitude_m": 2459.48, "source": "sim"} +{"ts": "2025-08-20T02:34:28.873597+00:00", "lat": 48.4806188, "lon": -81.3387328, "altitude_m": 2450.25, "source": "sim"} +{"ts": "2025-08-20T02:34:29.473597+00:00", "lat": 48.4806418, "lon": -81.3387468, "altitude_m": 2444.3, "source": "sim"} +{"ts": "2025-08-20T02:34:29.973597+00:00", "lat": 48.4806165, "lon": -81.3387361, "altitude_m": 2438.0, "source": "sim"} +{"ts": "2025-08-20T02:34:30.473597+00:00", "lat": 48.4806326, "lon": -81.3387338, "altitude_m": 2433.27, "source": "sim"} +{"ts": "2025-08-20T02:34:30.973597+00:00", "lat": 48.4806479, "lon": -81.3386957, "altitude_m": 2429.64, "source": "sim"} +{"ts": "2025-08-20T02:34:31.473597+00:00", "lat": 48.4806428, "lon": -81.3387097, "altitude_m": 2435.64, "source": "sim"} +{"ts": "2025-08-20T02:34:31.923597+00:00", "lat": 48.4805887, "lon": -81.3387335, "altitude_m": 2417.38, "source": "sim"} +{"ts": "2025-08-20T02:34:32.373597+00:00", "lat": 48.480624, "lon": -81.3387656, "altitude_m": 2409.64, "source": "sim"} +{"ts": "2025-08-20T02:34:32.973597+00:00", "lat": 48.480625, "lon": -81.3387056, "altitude_m": 2410.41, "source": "sim"} +{"ts": "2025-08-20T02:34:33.473597+00:00", "lat": 48.4806241, "lon": -81.3387184, "altitude_m": 2421.93, "source": "sim"} +{"ts": "2025-08-20T02:34:33.923597+00:00", "lat": 48.4805875, "lon": -81.3387088, "altitude_m": 2406.28, "source": "sim"} +{"ts": "2025-08-20T02:34:34.523597+00:00", "lat": 48.4805963, "lon": -81.338685, "altitude_m": 2401.71, "source": "sim"} +{"ts": "2025-08-20T02:34:34.973597+00:00", "lat": 48.480589, "lon": -81.3387457, "altitude_m": 2400.29, "source": "sim"} +{"ts": "2025-08-20T02:34:35.473597+00:00", "lat": 48.480568, "lon": -81.3386826, "altitude_m": 2391.14, "source": "sim"} +{"ts": "2025-08-20T02:34:35.973597+00:00", "lat": 48.4805747, "lon": -81.3386941, "altitude_m": 2394.28, "source": "sim"} +{"ts": "2025-08-20T02:34:36.473597+00:00", "lat": 48.4805558, "lon": -81.3386909, "altitude_m": 2381.27, "source": "sim"} +{"ts": "2025-08-20T02:34:36.873597+00:00", "lat": 48.480572, "lon": -81.3387284, "altitude_m": 2380.72, "source": "sim"} +{"ts": "2025-08-20T02:34:37.323597+00:00", "lat": 48.4805678, "lon": -81.3386611, "altitude_m": 2381.93, "source": "sim"} +{"ts": "2025-08-20T02:34:37.823597+00:00", "lat": 48.4805614, "lon": -81.3386817, "altitude_m": 2370.54, "source": "sim"} +{"ts": "2025-08-20T02:34:38.373597+00:00", "lat": 48.4805763, "lon": -81.3386192, "altitude_m": 2370.5, "source": "sim"} +{"ts": "2025-08-20T02:34:38.873597+00:00", "lat": 48.4805653, "lon": -81.3387112, "altitude_m": 2375.42, "source": "sim"} +{"ts": "2025-08-20T02:34:39.323597+00:00", "lat": 48.4805715, "lon": -81.3386772, "altitude_m": 2368.41, "source": "sim"} +{"ts": "2025-08-20T02:34:39.773597+00:00", "lat": 48.4805288, "lon": -81.3386902, "altitude_m": 2362.77, "source": "sim"} +{"ts": "2025-08-20T02:34:40.273597+00:00", "lat": 48.4804817, "lon": -81.3386521, "altitude_m": 2357.77, "source": "sim"} +{"ts": "2025-08-20T02:34:40.773597+00:00", "lat": 48.4805152, "lon": -81.3386602, "altitude_m": 2352.72, "source": "sim"} +{"ts": "2025-08-20T02:34:41.373597+00:00", "lat": 48.4805304, "lon": -81.3386567, "altitude_m": 2345.92, "source": "sim"} +{"ts": "2025-08-20T02:34:41.873597+00:00", "lat": 48.4805454, "lon": -81.3386654, "altitude_m": 2342.68, "source": "sim"} +{"ts": "2025-08-20T02:34:42.323597+00:00", "lat": 48.4805259, "lon": -81.3385992, "altitude_m": 2341.96, "source": "sim"} +{"ts": "2025-08-20T02:34:42.823597+00:00", "lat": 48.480506, "lon": -81.3386284, "altitude_m": 2336.78, "source": "sim"} +{"ts": "2025-08-20T02:34:43.323597+00:00", "lat": 48.4805109, "lon": -81.3386138, "altitude_m": 2335.58, "source": "sim"} +{"ts": "2025-08-20T02:34:43.773597+00:00", "lat": 48.4805011, "lon": -81.3386418, "altitude_m": 2328.0, "source": "sim"} +{"ts": "2025-08-20T02:34:44.223597+00:00", "lat": 48.4804882, "lon": -81.3386321, "altitude_m": 2328.52, "source": "sim"} +{"ts": "2025-08-20T02:34:44.623597+00:00", "lat": 48.4804952, "lon": -81.3385602, "altitude_m": 2319.96, "source": "sim"} +{"ts": "2025-08-20T02:34:45.123597+00:00", "lat": 48.4805087, "lon": -81.3385899, "altitude_m": 2312.63, "source": "sim"} +{"ts": "2025-08-20T02:34:45.573597+00:00", "lat": 48.48046, "lon": -81.3386572, "altitude_m": 2313.94, "source": "sim"} +{"ts": "2025-08-20T02:34:45.973597+00:00", "lat": 48.4804732, "lon": -81.3386086, "altitude_m": 2314.9, "source": "sim"} +{"ts": "2025-08-20T02:34:46.423597+00:00", "lat": 48.4804632, "lon": -81.3386017, "altitude_m": 2309.63, "source": "sim"} +{"ts": "2025-08-20T02:34:46.873597+00:00", "lat": 48.4804664, "lon": -81.338568, "altitude_m": 2307.35, "source": "sim"} +{"ts": "2025-08-20T02:34:47.373597+00:00", "lat": 48.4804427, "lon": -81.3385895, "altitude_m": 2293.86, "source": "sim"} +{"ts": "2025-08-20T02:34:47.873597+00:00", "lat": 48.4804619, "lon": -81.3386143, "altitude_m": 2292.47, "source": "sim"} +{"ts": "2025-08-20T02:34:48.373597+00:00", "lat": 48.4804376, "lon": -81.3386306, "altitude_m": 2291.26, "source": "sim"} +{"ts": "2025-08-20T02:34:48.873597+00:00", "lat": 48.4804337, "lon": -81.3385654, "altitude_m": 2295.65, "source": "sim"} +{"ts": "2025-08-20T02:34:49.273597+00:00", "lat": 48.4804349, "lon": -81.3385912, "altitude_m": 2288.54, "source": "sim"} +{"ts": "2025-08-20T02:34:49.723597+00:00", "lat": 48.4804278, "lon": -81.3386, "altitude_m": 2279.44, "source": "sim"} +{"ts": "2025-08-20T02:34:50.273597+00:00", "lat": 48.4804308, "lon": -81.338575, "altitude_m": 2281.77, "source": "sim"} +{"ts": "2025-08-20T02:34:50.723597+00:00", "lat": 48.4804382, "lon": -81.3385901, "altitude_m": 2276.23, "source": "sim"} +{"ts": "2025-08-20T02:34:51.273597+00:00", "lat": 48.4804211, "lon": -81.338598, "altitude_m": 2266.72, "source": "sim"} +{"ts": "2025-08-20T02:34:51.673597+00:00", "lat": 48.4803968, "lon": -81.3385776, "altitude_m": 2263.74, "source": "sim"} +{"ts": "2025-08-20T02:34:52.273597+00:00", "lat": 48.4804013, "lon": -81.3385654, "altitude_m": 2263.83, "source": "sim"} +{"ts": "2025-08-20T02:34:52.823597+00:00", "lat": 48.4803728, "lon": -81.3385338, "altitude_m": 2254.01, "source": "sim"} +{"ts": "2025-08-20T02:34:53.223597+00:00", "lat": 48.4803954, "lon": -81.3385638, "altitude_m": 2254.84, "source": "sim"} +{"ts": "2025-08-20T02:34:53.723597+00:00", "lat": 48.4804115, "lon": -81.3385202, "altitude_m": 2257.41, "source": "sim"} +{"ts": "2025-08-20T02:34:54.123597+00:00", "lat": 48.4803737, "lon": -81.3385351, "altitude_m": 2246.91, "source": "sim"} +{"ts": "2025-08-20T02:34:54.623597+00:00", "lat": 48.4803701, "lon": -81.3385501, "altitude_m": 2242.16, "source": "sim"} +{"ts": "2025-08-20T02:34:55.073597+00:00", "lat": 48.4803515, "lon": -81.338535, "altitude_m": 2240.63, "source": "sim"} +{"ts": "2025-08-20T02:34:55.573597+00:00", "lat": 48.4803827, "lon": -81.3385149, "altitude_m": 2235.83, "source": "sim"} +{"ts": "2025-08-20T02:34:56.073597+00:00", "lat": 48.4803583, "lon": -81.3385465, "altitude_m": 2227.81, "source": "sim"} +{"ts": "2025-08-20T02:34:56.673597+00:00", "lat": 48.4803434, "lon": -81.3385379, "altitude_m": 2228.78, "source": "sim"} +{"ts": "2025-08-20T02:34:57.223597+00:00", "lat": 48.4803481, "lon": -81.3385133, "altitude_m": 2221.8, "source": "sim"} +{"ts": "2025-08-20T02:34:57.673597+00:00", "lat": 48.480362, "lon": -81.3384795, "altitude_m": 2220.72, "source": "sim"} +{"ts": "2025-08-20T02:34:58.073597+00:00", "lat": 48.4803311, "lon": -81.3385399, "altitude_m": 2218.47, "source": "sim"} +{"ts": "2025-08-20T02:34:58.473597+00:00", "lat": 48.4803461, "lon": -81.3385236, "altitude_m": 2214.23, "source": "sim"} +{"ts": "2025-08-20T02:34:58.873597+00:00", "lat": 48.4803448, "lon": -81.3385066, "altitude_m": 2207.44, "source": "sim"} +{"ts": "2025-08-20T02:34:59.373597+00:00", "lat": 48.4803282, "lon": -81.3385226, "altitude_m": 2202.93, "source": "sim"} +{"ts": "2025-08-20T02:34:59.973597+00:00", "lat": 48.4803399, "lon": -81.338427, "altitude_m": 2199.58, "source": "sim"} +{"ts": "2025-08-20T02:35:00.523597+00:00", "lat": 48.4803166, "lon": -81.3385429, "altitude_m": 2193.66, "source": "sim"} +{"ts": "2025-08-20T02:35:00.923597+00:00", "lat": 48.480355, "lon": -81.3384893, "altitude_m": 2187.65, "source": "sim"} +{"ts": "2025-08-20T02:35:01.373597+00:00", "lat": 48.4803049, "lon": -81.3385134, "altitude_m": 2182.16, "source": "sim"} +{"ts": "2025-08-20T02:35:01.923597+00:00", "lat": 48.4803058, "lon": -81.3384823, "altitude_m": 2184.68, "source": "sim"} +{"ts": "2025-08-20T02:35:02.423597+00:00", "lat": 48.4802954, "lon": -81.3384769, "altitude_m": 2174.14, "source": "sim"} +{"ts": "2025-08-20T02:35:03.023597+00:00", "lat": 48.4802832, "lon": -81.3384708, "altitude_m": 2171.04, "source": "sim"} +{"ts": "2025-08-20T02:35:03.473597+00:00", "lat": 48.4802815, "lon": -81.3384631, "altitude_m": 2168.36, "source": "sim"} +{"ts": "2025-08-20T02:35:03.973597+00:00", "lat": 48.4803048, "lon": -81.3384676, "altitude_m": 2168.62, "source": "sim"} +{"ts": "2025-08-20T02:35:04.473597+00:00", "lat": 48.4802994, "lon": -81.3384525, "altitude_m": 2158.76, "source": "sim"} +{"ts": "2025-08-20T02:35:05.023597+00:00", "lat": 48.4802567, "lon": -81.338484, "altitude_m": 2162.89, "source": "sim"} +{"ts": "2025-08-20T02:35:05.573597+00:00", "lat": 48.4802662, "lon": -81.3384733, "altitude_m": 2158.65, "source": "sim"} +{"ts": "2025-08-20T02:35:06.073597+00:00", "lat": 48.4802842, "lon": -81.3384391, "altitude_m": 2153.84, "source": "sim"} +{"ts": "2025-08-20T02:35:06.523597+00:00", "lat": 48.4802458, "lon": -81.338492, "altitude_m": 2147.0, "source": "sim"} +{"ts": "2025-08-20T02:35:06.973597+00:00", "lat": 48.4802598, "lon": -81.3384396, "altitude_m": 2143.31, "source": "sim"} +{"ts": "2025-08-20T02:35:07.423597+00:00", "lat": 48.4802489, "lon": -81.3384366, "altitude_m": 2136.27, "source": "sim"} +{"ts": "2025-08-20T02:35:07.973597+00:00", "lat": 48.4802352, "lon": -81.3384461, "altitude_m": 2132.93, "source": "sim"} +{"ts": "2025-08-20T02:35:08.473597+00:00", "lat": 48.4802373, "lon": -81.3384373, "altitude_m": 2134.04, "source": "sim"} +{"ts": "2025-08-20T02:35:08.923597+00:00", "lat": 48.4802081, "lon": -81.3384098, "altitude_m": 2130.83, "source": "sim"} +{"ts": "2025-08-20T02:35:09.373597+00:00", "lat": 48.4802093, "lon": -81.3384403, "altitude_m": 2125.01, "source": "sim"} +{"ts": "2025-08-20T02:35:09.873597+00:00", "lat": 48.4802411, "lon": -81.3384046, "altitude_m": 2118.47, "source": "sim"} +{"ts": "2025-08-20T02:35:10.373597+00:00", "lat": 48.4802353, "lon": -81.3384467, "altitude_m": 2116.19, "source": "sim"} +{"ts": "2025-08-20T02:35:10.873597+00:00", "lat": 48.4802033, "lon": -81.3384327, "altitude_m": 2112.19, "source": "sim"} +{"ts": "2025-08-20T02:35:11.323597+00:00", "lat": 48.4802052, "lon": -81.3383984, "altitude_m": 2110.53, "source": "sim"} +{"ts": "2025-08-20T02:35:11.773597+00:00", "lat": 48.4801862, "lon": -81.3383991, "altitude_m": 2104.06, "source": "sim"} +{"ts": "2025-08-20T02:35:12.273597+00:00", "lat": 48.4802316, "lon": -81.3383913, "altitude_m": 2104.7, "source": "sim"} +{"ts": "2025-08-20T02:35:12.673597+00:00", "lat": 48.480212, "lon": -81.338371, "altitude_m": 2098.12, "source": "sim"} +{"ts": "2025-08-20T02:35:13.173597+00:00", "lat": 48.4802208, "lon": -81.338389, "altitude_m": 2092.06, "source": "sim"} +{"ts": "2025-08-20T02:35:13.823597+00:00", "lat": 48.4801627, "lon": -81.3383826, "altitude_m": 2095.88, "source": "sim"} +{"ts": "2025-08-20T02:35:14.273597+00:00", "lat": 48.480144, "lon": -81.3384225, "altitude_m": 2078.54, "source": "sim"} +{"ts": "2025-08-20T02:35:14.873597+00:00", "lat": 48.4801685, "lon": -81.3383341, "altitude_m": 2078.09, "source": "sim"} +{"ts": "2025-08-20T02:35:15.373597+00:00", "lat": 48.4801432, "lon": -81.3383578, "altitude_m": 2075.07, "source": "sim"} +{"ts": "2025-08-20T02:35:15.773597+00:00", "lat": 48.4801582, "lon": -81.3383711, "altitude_m": 2075.64, "source": "sim"} +{"ts": "2025-08-20T02:35:16.273597+00:00", "lat": 48.4801539, "lon": -81.33837, "altitude_m": 2066.75, "source": "sim"} +{"ts": "2025-08-20T02:35:16.773597+00:00", "lat": 48.4801279, "lon": -81.3383683, "altitude_m": 2061.82, "source": "sim"} +{"ts": "2025-08-20T02:35:17.323597+00:00", "lat": 48.4801613, "lon": -81.3384, "altitude_m": 2059.87, "source": "sim"} +{"ts": "2025-08-20T02:35:17.923597+00:00", "lat": 48.4801473, "lon": -81.3383843, "altitude_m": 2051.03, "source": "sim"} +{"ts": "2025-08-20T02:35:18.423597+00:00", "lat": 48.480116, "lon": -81.338401, "altitude_m": 2058.22, "source": "sim"} +{"ts": "2025-08-20T02:35:18.973597+00:00", "lat": 48.4801448, "lon": -81.3383865, "altitude_m": 2043.83, "source": "sim"} +{"ts": "2025-08-20T02:35:19.473597+00:00", "lat": 48.4801006, "lon": -81.3383635, "altitude_m": 2045.62, "source": "sim"} +{"ts": "2025-08-20T02:35:19.973597+00:00", "lat": 48.4801068, "lon": -81.3383582, "altitude_m": 2041.74, "source": "sim"} +{"ts": "2025-08-20T02:35:20.523597+00:00", "lat": 48.4801148, "lon": -81.3383602, "altitude_m": 2033.63, "source": "sim"} +{"ts": "2025-08-20T02:35:20.923597+00:00", "lat": 48.4801306, "lon": -81.3384132, "altitude_m": 2036.82, "source": "sim"} +{"ts": "2025-08-20T02:35:21.423597+00:00", "lat": 48.4801148, "lon": -81.3383273, "altitude_m": 2027.6, "source": "sim"} +{"ts": "2025-08-20T02:35:21.973597+00:00", "lat": 48.4801116, "lon": -81.3383134, "altitude_m": 2024.06, "source": "sim"} +{"ts": "2025-08-20T02:35:22.423597+00:00", "lat": 48.4800861, "lon": -81.3383248, "altitude_m": 2027.83, "source": "sim"} +{"ts": "2025-08-20T02:35:22.973597+00:00", "lat": 48.4801077, "lon": -81.3383918, "altitude_m": 2011.27, "source": "sim"} +{"ts": "2025-08-20T02:35:23.523597+00:00", "lat": 48.4800813, "lon": -81.3383652, "altitude_m": 2010.41, "source": "sim"} +{"ts": "2025-08-20T02:35:23.973597+00:00", "lat": 48.4800612, "lon": -81.3382946, "altitude_m": 2009.92, "source": "sim"} +{"ts": "2025-08-20T02:35:24.373597+00:00", "lat": 48.4800458, "lon": -81.3383103, "altitude_m": 2001.27, "source": "sim"} +{"ts": "2025-08-20T02:35:24.873597+00:00", "lat": 48.4800572, "lon": -81.3383002, "altitude_m": 1997.83, "source": "sim"} +{"ts": "2025-08-20T02:35:25.323597+00:00", "lat": 48.4800698, "lon": -81.33831, "altitude_m": 2001.96, "source": "sim"} +{"ts": "2025-08-20T02:35:25.723597+00:00", "lat": 48.4800173, "lon": -81.3383169, "altitude_m": 1983.09, "source": "sim"} +{"ts": "2025-08-20T02:35:26.173597+00:00", "lat": 48.480057, "lon": -81.3383015, "altitude_m": 1983.29, "source": "sim"} +{"ts": "2025-08-20T02:35:26.623597+00:00", "lat": 48.4800538, "lon": -81.3382804, "altitude_m": 1987.14, "source": "sim"} +{"ts": "2025-08-20T02:35:27.123597+00:00", "lat": 48.4800617, "lon": -81.3382685, "altitude_m": 1982.56, "source": "sim"} +{"ts": "2025-08-20T02:35:27.573597+00:00", "lat": 48.4800225, "lon": -81.3382595, "altitude_m": 1977.03, "source": "sim"} +{"ts": "2025-08-20T02:35:28.023597+00:00", "lat": 48.4800251, "lon": -81.3382968, "altitude_m": 1965.76, "source": "sim"} +{"ts": "2025-08-20T02:35:28.423597+00:00", "lat": 48.4800138, "lon": -81.3383201, "altitude_m": 1974.4, "source": "sim"} +{"ts": "2025-08-20T02:35:29.023597+00:00", "lat": 48.480018, "lon": -81.3382436, "altitude_m": 1968.39, "source": "sim"} +{"ts": "2025-08-20T02:35:44.823597+00:00", "lat": 48.4798758, "lon": -81.3381436, "altitude_m": 1841.87, "source": "sim"} +{"ts": "2025-08-20T02:35:45.323597+00:00", "lat": 48.47986, "lon": -81.33814, "altitude_m": 1838.35, "source": "sim"} +{"ts": "2025-08-20T02:35:45.773597+00:00", "lat": 48.479837, "lon": -81.3381591, "altitude_m": 1832.53, "source": "sim"} +{"ts": "2025-08-20T02:35:46.373597+00:00", "lat": 48.479816, "lon": -81.3381869, "altitude_m": 1832.79, "source": "sim"} +{"ts": "2025-08-20T02:35:46.923597+00:00", "lat": 48.4797984, "lon": -81.3381429, "altitude_m": 1819.45, "source": "sim"} +{"ts": "2025-08-20T02:35:47.323597+00:00", "lat": 48.4798278, "lon": -81.3381282, "altitude_m": 1819.23, "source": "sim"} +{"ts": "2025-08-20T02:35:47.823597+00:00", "lat": 48.4798244, "lon": -81.3381492, "altitude_m": 1819.01, "source": "sim"} +{"ts": "2025-08-20T02:35:48.323597+00:00", "lat": 48.4798215, "lon": -81.338132, "altitude_m": 1810.01, "source": "sim"} +{"ts": "2025-08-20T02:35:48.873597+00:00", "lat": 48.4798113, "lon": -81.3381192, "altitude_m": 1811.7, "source": "sim"} +{"ts": "2025-08-20T02:35:49.273597+00:00", "lat": 48.4797807, "lon": -81.3381172, "altitude_m": 1807.45, "source": "sim"} +{"ts": "2025-08-20T02:35:49.773597+00:00", "lat": 48.4798182, "lon": -81.3381056, "altitude_m": 1799.77, "source": "sim"} +{"ts": "2025-08-20T02:35:50.273597+00:00", "lat": 48.4797595, "lon": -81.3381667, "altitude_m": 1795.96, "source": "sim"} +{"ts": "2025-08-20T02:35:50.723597+00:00", "lat": 48.4797658, "lon": -81.3381661, "altitude_m": 1791.16, "source": "sim"} +{"ts": "2025-08-20T02:35:51.173597+00:00", "lat": 48.4797548, "lon": -81.3381237, "altitude_m": 1792.0, "source": "sim"} +{"ts": "2025-08-20T02:35:51.723597+00:00", "lat": 48.4797639, "lon": -81.338137, "altitude_m": 1786.55, "source": "sim"} +{"ts": "2025-08-20T02:35:52.273597+00:00", "lat": 48.4797844, "lon": -81.33808, "altitude_m": 1787.03, "source": "sim"} +{"ts": "2025-08-20T02:35:52.773597+00:00", "lat": 48.4797699, "lon": -81.3381197, "altitude_m": 1771.3, "source": "sim"} +{"ts": "2025-08-20T02:35:53.223597+00:00", "lat": 48.4797693, "lon": -81.3381299, "altitude_m": 1767.63, "source": "sim"} +{"ts": "2025-08-20T02:35:53.773597+00:00", "lat": 48.4797669, "lon": -81.3380867, "altitude_m": 1769.89, "source": "sim"} +{"ts": "2025-08-20T02:35:54.223597+00:00", "lat": 48.479767, "lon": -81.3381151, "altitude_m": 1768.17, "source": "sim"} +{"ts": "2025-08-20T02:35:54.823597+00:00", "lat": 48.479736, "lon": -81.3380815, "altitude_m": 1766.16, "source": "sim"} +{"ts": "2025-08-20T02:35:55.273597+00:00", "lat": 48.4797093, "lon": -81.338069, "altitude_m": 1755.96, "source": "sim"} +{"ts": "2025-08-20T02:35:55.773597+00:00", "lat": 48.4797279, "lon": -81.338099, "altitude_m": 1750.22, "source": "sim"} +{"ts": "2025-08-20T02:35:56.323597+00:00", "lat": 48.4797297, "lon": -81.3381027, "altitude_m": 1747.94, "source": "sim"} +{"ts": "2025-08-20T02:35:56.723597+00:00", "lat": 48.4797517, "lon": -81.3380502, "altitude_m": 1746.51, "source": "sim"} +{"ts": "2025-08-20T02:35:57.173597+00:00", "lat": 48.4797474, "lon": -81.338083, "altitude_m": 1744.24, "source": "sim"} +{"ts": "2025-08-20T02:35:57.673597+00:00", "lat": 48.4797117, "lon": -81.3380716, "altitude_m": 1736.79, "source": "sim"} +{"ts": "2025-08-20T02:35:58.173597+00:00", "lat": 48.4797014, "lon": -81.3380614, "altitude_m": 1733.92, "source": "sim"} +{"ts": "2025-08-20T02:35:58.573597+00:00", "lat": 48.479723, "lon": -81.338058, "altitude_m": 1731.43, "source": "sim"} +{"ts": "2025-08-20T02:35:59.173597+00:00", "lat": 48.4796684, "lon": -81.3380574, "altitude_m": 1726.54, "source": "sim"} +{"ts": "2025-08-20T02:35:59.723597+00:00", "lat": 48.4797123, "lon": -81.3380212, "altitude_m": 1721.3, "source": "sim"} +{"ts": "2025-08-20T02:36:00.173597+00:00", "lat": 48.4796967, "lon": -81.338053, "altitude_m": 1721.07, "source": "sim"} +{"ts": "2025-08-20T02:36:00.623597+00:00", "lat": 48.4796922, "lon": -81.3380688, "altitude_m": 1719.53, "source": "sim"} +{"ts": "2025-08-20T02:36:01.223597+00:00", "lat": 48.4796533, "lon": -81.3380168, "altitude_m": 1710.99, "source": "sim"} +{"ts": "2025-08-20T02:36:01.823597+00:00", "lat": 48.4796687, "lon": -81.3380101, "altitude_m": 1705.46, "source": "sim"} +{"ts": "2025-08-20T02:36:02.423597+00:00", "lat": 48.4796851, "lon": -81.3380255, "altitude_m": 1701.0, "source": "sim"} +{"ts": "2025-08-20T02:36:03.023597+00:00", "lat": 48.4796608, "lon": -81.3379803, "altitude_m": 1698.27, "source": "sim"} +{"ts": "2025-08-20T02:36:03.473597+00:00", "lat": 48.4796531, "lon": -81.3380143, "altitude_m": 1685.66, "source": "sim"} +{"ts": "2025-08-20T02:36:03.973597+00:00", "lat": 48.4796432, "lon": -81.3380224, "altitude_m": 1690.79, "source": "sim"} +{"ts": "2025-08-20T02:36:04.573597+00:00", "lat": 48.4796618, "lon": -81.3379569, "altitude_m": 1686.35, "source": "sim"} +{"ts": "2025-08-20T02:36:05.073597+00:00", "lat": 48.4796312, "lon": -81.3380272, "altitude_m": 1680.26, "source": "sim"} +{"ts": "2025-08-20T02:36:05.573597+00:00", "lat": 48.4796103, "lon": -81.3380389, "altitude_m": 1671.68, "source": "sim"} +{"ts": "2025-08-20T02:36:06.073597+00:00", "lat": 48.4796232, "lon": -81.3379783, "altitude_m": 1668.15, "source": "sim"} +{"ts": "2025-08-20T02:36:06.473597+00:00", "lat": 48.4796074, "lon": -81.3380309, "altitude_m": 1667.69, "source": "sim"} +{"ts": "2025-08-20T02:36:06.873597+00:00", "lat": 48.4796243, "lon": -81.3379954, "altitude_m": 1662.74, "source": "sim"} +{"ts": "2025-08-20T02:36:07.373597+00:00", "lat": 48.4796011, "lon": -81.3379917, "altitude_m": 1656.92, "source": "sim"} +{"ts": "2025-08-20T02:36:07.973597+00:00", "lat": 48.479622, "lon": -81.3379898, "altitude_m": 1655.97, "source": "sim"} +{"ts": "2025-08-20T02:36:08.473597+00:00", "lat": 48.4796044, "lon": -81.3379925, "altitude_m": 1649.29, "source": "sim"} +{"ts": "2025-08-20T02:36:08.873597+00:00", "lat": 48.4795914, "lon": -81.3379813, "altitude_m": 1647.86, "source": "sim"} +{"ts": "2025-08-20T02:36:09.473597+00:00", "lat": 48.4795849, "lon": -81.3379673, "altitude_m": 1644.06, "source": "sim"} +{"ts": "2025-08-20T02:36:09.873597+00:00", "lat": 48.4795832, "lon": -81.3379701, "altitude_m": 1640.38, "source": "sim"} +{"ts": "2025-08-20T02:36:10.273597+00:00", "lat": 48.4795718, "lon": -81.3379485, "altitude_m": 1639.88, "source": "sim"} +{"ts": "2025-08-20T02:36:10.923597+00:00", "lat": 48.4795867, "lon": -81.3379783, "altitude_m": 1628.81, "source": "sim"} +{"ts": "2025-08-20T02:36:11.473597+00:00", "lat": 48.4795566, "lon": -81.3379607, "altitude_m": 1626.81, "source": "sim"} +{"ts": "2025-08-20T02:36:12.023597+00:00", "lat": 48.4795707, "lon": -81.3379414, "altitude_m": 1623.76, "source": "sim"} +{"ts": "2025-08-20T02:36:12.573597+00:00", "lat": 48.4795475, "lon": -81.3379279, "altitude_m": 1616.25, "source": "sim"} +{"ts": "2025-08-20T02:36:12.973597+00:00", "lat": 48.479527, "lon": -81.3379274, "altitude_m": 1615.06, "source": "sim"} +{"ts": "2025-08-20T02:36:13.623597+00:00", "lat": 48.4795393, "lon": -81.337935, "altitude_m": 1606.0, "source": "sim"} +{"ts": "2025-08-20T02:36:14.223597+00:00", "lat": 48.4795411, "lon": -81.3379204, "altitude_m": 1600.2, "source": "sim"} +{"ts": "2025-08-20T02:36:14.773597+00:00", "lat": 48.4795122, "lon": -81.3379069, "altitude_m": 1599.7, "source": "sim"} +{"ts": "2025-08-20T02:36:15.223597+00:00", "lat": 48.4795243, "lon": -81.3379264, "altitude_m": 1594.39, "source": "sim"} +{"ts": "2025-08-20T02:36:15.623597+00:00", "lat": 48.4795547, "lon": -81.3379471, "altitude_m": 1591.7, "source": "sim"} +{"ts": "2025-08-20T02:36:16.073597+00:00", "lat": 48.4795231, "lon": -81.3379175, "altitude_m": 1590.84, "source": "sim"} +{"ts": "2025-08-20T02:36:16.473597+00:00", "lat": 48.4795246, "lon": -81.3379107, "altitude_m": 1590.07, "source": "sim"} +{"ts": "2025-08-20T02:36:16.973597+00:00", "lat": 48.4795018, "lon": -81.3379079, "altitude_m": 1579.91, "source": "sim"} +{"ts": "2025-08-20T02:36:17.473597+00:00", "lat": 48.4795243, "lon": -81.3379196, "altitude_m": 1579.9, "source": "sim"} +{"ts": "2025-08-20T02:36:18.023597+00:00", "lat": 48.4795271, "lon": -81.3379082, "altitude_m": 1578.93, "source": "sim"} +{"ts": "2025-08-20T02:36:18.473597+00:00", "lat": 48.4794577, "lon": -81.3378526, "altitude_m": 1571.83, "source": "sim"} +{"ts": "2025-08-20T02:36:18.923597+00:00", "lat": 48.4794863, "lon": -81.3379208, "altitude_m": 1568.51, "source": "sim"} +{"ts": "2025-08-20T02:36:19.473597+00:00", "lat": 48.4794929, "lon": -81.3379222, "altitude_m": 1564.79, "source": "sim"} +{"ts": "2025-08-20T02:36:20.023597+00:00", "lat": 48.4794807, "lon": -81.3378856, "altitude_m": 1557.84, "source": "sim"} +{"ts": "2025-08-20T02:36:20.473597+00:00", "lat": 48.4794687, "lon": -81.3379166, "altitude_m": 1557.71, "source": "sim"} +{"ts": "2025-08-20T02:36:20.923597+00:00", "lat": 48.4794568, "lon": -81.3379137, "altitude_m": 1551.74, "source": "sim"} +{"ts": "2025-08-20T02:36:21.323597+00:00", "lat": 48.4794684, "lon": -81.3379033, "altitude_m": 1551.04, "source": "sim"} +{"ts": "2025-08-20T02:36:21.773597+00:00", "lat": 48.4794691, "lon": -81.3379083, "altitude_m": 1541.74, "source": "sim"} +{"ts": "2025-08-20T02:36:22.323597+00:00", "lat": 48.4794414, "lon": -81.3378457, "altitude_m": 1540.55, "source": "sim"} +{"ts": "2025-08-20T02:36:22.773597+00:00", "lat": 48.4794712, "lon": -81.3378834, "altitude_m": 1543.23, "source": "sim"} +{"ts": "2025-08-20T02:36:23.173597+00:00", "lat": 48.4794481, "lon": -81.3378432, "altitude_m": 1531.68, "source": "sim"} +{"ts": "2025-08-20T02:36:23.773597+00:00", "lat": 48.4794346, "lon": -81.337839, "altitude_m": 1525.98, "source": "sim"} +{"ts": "2025-08-20T02:36:24.223597+00:00", "lat": 48.479433, "lon": -81.337828, "altitude_m": 1519.11, "source": "sim"} +{"ts": "2025-08-20T02:36:24.673597+00:00", "lat": 48.4794308, "lon": -81.3378322, "altitude_m": 1522.81, "source": "sim"} +{"ts": "2025-08-20T02:36:25.123597+00:00", "lat": 48.4794098, "lon": -81.3378172, "altitude_m": 1522.8, "source": "sim"} +{"ts": "2025-08-20T02:36:25.573597+00:00", "lat": 48.4794538, "lon": -81.337863, "altitude_m": 1515.57, "source": "sim"} +{"ts": "2025-08-20T02:36:26.173597+00:00", "lat": 48.4794234, "lon": -81.3378454, "altitude_m": 1511.79, "source": "sim"} +{"ts": "2025-08-20T02:36:26.623597+00:00", "lat": 48.4794125, "lon": -81.3378548, "altitude_m": 1505.46, "source": "sim"} +{"ts": "2025-08-20T02:36:27.073597+00:00", "lat": 48.4794083, "lon": -81.3378072, "altitude_m": 1499.35, "source": "sim"} +{"ts": "2025-08-20T02:36:27.473597+00:00", "lat": 48.4793843, "lon": -81.3377989, "altitude_m": 1499.37, "source": "sim"} +{"ts": "2025-08-20T02:36:27.873597+00:00", "lat": 48.4793762, "lon": -81.3378511, "altitude_m": 1495.21, "source": "sim"} +{"ts": "2025-08-20T02:36:28.323597+00:00", "lat": 48.4794264, "lon": -81.3377983, "altitude_m": 1488.6, "source": "sim"} +{"ts": "2025-08-20T02:36:28.873597+00:00", "lat": 48.4793545, "lon": -81.3377692, "altitude_m": 1489.89, "source": "sim"} +{"ts": "2025-08-20T02:36:29.323597+00:00", "lat": 48.479386, "lon": -81.3377865, "altitude_m": 1489.86, "source": "sim"} +{"ts": "2025-08-20T02:36:29.773597+00:00", "lat": 48.4794001, "lon": -81.3378069, "altitude_m": 1483.65, "source": "sim"} +{"ts": "2025-08-20T02:36:30.173597+00:00", "lat": 48.4794017, "lon": -81.3378083, "altitude_m": 1479.59, "source": "sim"} +{"ts": "2025-08-20T02:36:30.623597+00:00", "lat": 48.4793463, "lon": -81.3377713, "altitude_m": 1479.46, "source": "sim"} +{"ts": "2025-08-20T02:36:31.023597+00:00", "lat": 48.4793724, "lon": -81.3378063, "altitude_m": 1470.51, "source": "sim"} +{"ts": "2025-08-20T02:36:31.423597+00:00", "lat": 48.4793565, "lon": -81.3378241, "altitude_m": 1469.95, "source": "sim"} +{"ts": "2025-08-20T02:36:31.873597+00:00", "lat": 48.4793543, "lon": -81.3377907, "altitude_m": 1461.29, "source": "sim"} +{"ts": "2025-08-20T02:36:32.423597+00:00", "lat": 48.4793397, "lon": -81.3378107, "altitude_m": 1454.44, "source": "sim"} +{"ts": "2025-08-20T02:36:33.023597+00:00", "lat": 48.4793325, "lon": -81.3378194, "altitude_m": 1456.76, "source": "sim"} +{"ts": "2025-08-20T02:36:33.623597+00:00", "lat": 48.479325, "lon": -81.3377566, "altitude_m": 1448.95, "source": "sim"} +{"ts": "2025-08-20T02:36:34.123597+00:00", "lat": 48.4793413, "lon": -81.3377766, "altitude_m": 1445.51, "source": "sim"} +{"ts": "2025-08-20T02:36:34.523597+00:00", "lat": 48.4793439, "lon": -81.3377638, "altitude_m": 1438.99, "source": "sim"} +{"ts": "2025-08-20T02:36:35.023597+00:00", "lat": 48.47928, "lon": -81.3377838, "altitude_m": 1443.31, "source": "sim"} +{"ts": "2025-08-20T02:36:35.523597+00:00", "lat": 48.4792864, "lon": -81.3377858, "altitude_m": 1435.19, "source": "sim"} +{"ts": "2025-08-20T02:36:36.123597+00:00", "lat": 48.4793183, "lon": -81.3377764, "altitude_m": 1426.78, "source": "sim"} +{"ts": "2025-08-20T02:36:36.573597+00:00", "lat": 48.4792846, "lon": -81.3377561, "altitude_m": 1429.26, "source": "sim"} +{"ts": "2025-08-20T02:36:37.073597+00:00", "lat": 48.4792714, "lon": -81.3377275, "altitude_m": 1425.06, "source": "sim"} +{"ts": "2025-08-20T02:36:37.473597+00:00", "lat": 48.4793128, "lon": -81.3377545, "altitude_m": 1409.52, "source": "sim"} +{"ts": "2025-08-20T02:36:37.873597+00:00", "lat": 48.4792879, "lon": -81.3377419, "altitude_m": 1416.84, "source": "sim"} +{"ts": "2025-08-20T02:36:38.273597+00:00", "lat": 48.4792963, "lon": -81.3377601, "altitude_m": 1416.55, "source": "sim"} +{"ts": "2025-08-20T02:36:38.723597+00:00", "lat": 48.4792725, "lon": -81.3377309, "altitude_m": 1407.09, "source": "sim"} +{"ts": "2025-08-20T02:36:39.323597+00:00", "lat": 48.4792678, "lon": -81.3377235, "altitude_m": 1402.49, "source": "sim"} +{"ts": "2025-08-20T02:36:39.823597+00:00", "lat": 48.4793064, "lon": -81.3377504, "altitude_m": 1404.82, "source": "sim"} +{"ts": "2025-08-20T02:36:40.373597+00:00", "lat": 48.4792591, "lon": -81.3377085, "altitude_m": 1396.69, "source": "sim"} +{"ts": "2025-08-20T02:36:40.823597+00:00", "lat": 48.4792482, "lon": -81.3377409, "altitude_m": 1389.02, "source": "sim"} +{"ts": "2025-08-20T02:36:41.423597+00:00", "lat": 48.4792524, "lon": -81.3376957, "altitude_m": 1389.0, "source": "sim"} +{"ts": "2025-08-20T02:36:42.023597+00:00", "lat": 48.4792479, "lon": -81.3377236, "altitude_m": 1386.23, "source": "sim"} +{"ts": "2025-08-20T02:36:42.473597+00:00", "lat": 48.4792395, "lon": -81.3376977, "altitude_m": 1377.08, "source": "sim"} +{"ts": "2025-08-20T02:36:42.923597+00:00", "lat": 48.4792304, "lon": -81.3377289, "altitude_m": 1373.17, "source": "sim"} +{"ts": "2025-08-20T02:36:43.323597+00:00", "lat": 48.4792392, "lon": -81.3376949, "altitude_m": 1369.24, "source": "sim"} +{"ts": "2025-08-20T02:36:43.823597+00:00", "lat": 48.4792083, "lon": -81.3377055, "altitude_m": 1371.47, "source": "sim"} +{"ts": "2025-08-20T02:36:44.373597+00:00", "lat": 48.4792366, "lon": -81.3376707, "altitude_m": 1362.95, "source": "sim"} +{"ts": "2025-08-20T02:36:44.873597+00:00", "lat": 48.4792121, "lon": -81.3377071, "altitude_m": 1357.73, "source": "sim"} +{"ts": "2025-08-20T02:36:45.323597+00:00", "lat": 48.4792018, "lon": -81.3376888, "altitude_m": 1357.67, "source": "sim"} +{"ts": "2025-08-20T02:36:45.723597+00:00", "lat": 48.479194, "lon": -81.3376602, "altitude_m": 1355.46, "source": "sim"} +{"ts": "2025-08-20T02:36:46.223597+00:00", "lat": 48.4791829, "lon": -81.3377025, "altitude_m": 1349.34, "source": "sim"} +{"ts": "2025-08-20T02:36:46.823597+00:00", "lat": 48.4791637, "lon": -81.337684, "altitude_m": 1341.07, "source": "sim"} +{"ts": "2025-08-20T02:36:47.323597+00:00", "lat": 48.4791773, "lon": -81.3377077, "altitude_m": 1344.21, "source": "sim"} +{"ts": "2025-08-20T02:36:47.923597+00:00", "lat": 48.4791896, "lon": -81.3376937, "altitude_m": 1336.41, "source": "sim"} +{"ts": "2025-08-20T02:36:48.423597+00:00", "lat": 48.4791721, "lon": -81.3376776, "altitude_m": 1330.63, "source": "sim"} +{"ts": "2025-08-20T02:36:48.923597+00:00", "lat": 48.479188, "lon": -81.3376402, "altitude_m": 1329.11, "source": "sim"} +{"ts": "2025-08-20T02:36:49.373597+00:00", "lat": 48.4791804, "lon": -81.3376628, "altitude_m": 1333.89, "source": "sim"} +{"ts": "2025-08-20T02:36:49.873597+00:00", "lat": 48.479158, "lon": -81.3376746, "altitude_m": 1315.3, "source": "sim"} +{"ts": "2025-08-20T02:36:50.373597+00:00", "lat": 48.4791794, "lon": -81.3376265, "altitude_m": 1320.05, "source": "sim"} +{"ts": "2025-08-20T02:36:50.873597+00:00", "lat": 48.4791501, "lon": -81.3376393, "altitude_m": 1309.79, "source": "sim"} +{"ts": "2025-08-20T02:36:51.373597+00:00", "lat": 48.4791431, "lon": -81.3376427, "altitude_m": 1307.06, "source": "sim"} +{"ts": "2025-08-20T02:36:51.873597+00:00", "lat": 48.4791473, "lon": -81.3376372, "altitude_m": 1307.01, "source": "sim"} +{"ts": "2025-08-20T02:36:52.423597+00:00", "lat": 48.4791394, "lon": -81.3376525, "altitude_m": 1296.6, "source": "sim"} +{"ts": "2025-08-20T02:36:52.823597+00:00", "lat": 48.4791455, "lon": -81.3376251, "altitude_m": 1290.64, "source": "sim"} +{"ts": "2025-08-20T02:36:53.223597+00:00", "lat": 48.4791068, "lon": -81.3376299, "altitude_m": 1295.67, "source": "sim"} +{"ts": "2025-08-20T02:36:53.673597+00:00", "lat": 48.479107, "lon": -81.337605, "altitude_m": 1296.29, "source": "sim"} +{"ts": "2025-08-20T02:36:54.123597+00:00", "lat": 48.4791046, "lon": -81.3376311, "altitude_m": 1294.68, "source": "sim"} +{"ts": "2025-08-20T02:36:54.523597+00:00", "lat": 48.4791183, "lon": -81.3376097, "altitude_m": 1277.89, "source": "sim"} +{"ts": "2025-08-20T02:36:55.023597+00:00", "lat": 48.4791302, "lon": -81.3376332, "altitude_m": 1278.83, "source": "sim"} +{"ts": "2025-08-20T02:36:55.623597+00:00", "lat": 48.4791073, "lon": -81.3376243, "altitude_m": 1279.25, "source": "sim"} +{"ts": "2025-08-20T02:36:56.173597+00:00", "lat": 48.4790908, "lon": -81.3376483, "altitude_m": 1266.17, "source": "sim"} +{"ts": "2025-08-20T02:36:56.673597+00:00", "lat": 48.4790927, "lon": -81.33762, "altitude_m": 1263.4, "source": "sim"} +{"ts": "2025-08-20T02:36:57.123597+00:00", "lat": 48.4790872, "lon": -81.3376279, "altitude_m": 1263.62, "source": "sim"} +{"ts": "2025-08-20T02:36:57.623597+00:00", "lat": 48.4790934, "lon": -81.3376232, "altitude_m": 1264.58, "source": "sim"} +{"ts": "2025-08-20T02:36:58.073597+00:00", "lat": 48.4790256, "lon": -81.3375917, "altitude_m": 1254.48, "source": "sim"} +{"ts": "2025-08-20T02:36:58.573597+00:00", "lat": 48.4790643, "lon": -81.3375996, "altitude_m": 1249.91, "source": "sim"} +{"ts": "2025-08-20T02:36:59.023597+00:00", "lat": 48.4790835, "lon": -81.3375609, "altitude_m": 1245.31, "source": "sim"} +{"ts": "2025-08-20T02:36:59.473597+00:00", "lat": 48.4790606, "lon": -81.3376018, "altitude_m": 1244.92, "source": "sim"} +{"ts": "2025-08-20T02:36:59.923597+00:00", "lat": 48.4790369, "lon": -81.3376031, "altitude_m": 1237.71, "source": "sim"} +{"ts": "2025-08-20T02:37:00.573597+00:00", "lat": 48.4790402, "lon": -81.3375554, "altitude_m": 1230.76, "source": "sim"} +{"ts": "2025-08-20T02:37:01.023597+00:00", "lat": 48.4790556, "lon": -81.3376019, "altitude_m": 1227.88, "source": "sim"} +{"ts": "2025-08-20T02:37:01.473597+00:00", "lat": 48.4790176, "lon": -81.3375548, "altitude_m": 1228.08, "source": "sim"} +{"ts": "2025-08-20T02:37:01.923597+00:00", "lat": 48.4790201, "lon": -81.3376032, "altitude_m": 1219.24, "source": "sim"} +{"ts": "2025-08-20T02:37:02.323597+00:00", "lat": 48.479022, "lon": -81.3375577, "altitude_m": 1219.15, "source": "sim"} +{"ts": "2025-08-20T02:37:02.773597+00:00", "lat": 48.4790264, "lon": -81.3375618, "altitude_m": 1213.17, "source": "sim"} +{"ts": "2025-08-20T02:37:03.273597+00:00", "lat": 48.4790025, "lon": -81.3375749, "altitude_m": 1215.89, "source": "sim"} +{"ts": "2025-08-20T02:37:03.773597+00:00", "lat": 48.4790047, "lon": -81.3375296, "altitude_m": 1214.73, "source": "sim"} +{"ts": "2025-08-20T02:37:04.273597+00:00", "lat": 48.478994, "lon": -81.3375267, "altitude_m": 1207.04, "source": "sim"} +{"ts": "2025-08-20T02:37:04.773597+00:00", "lat": 48.4790307, "lon": -81.3375867, "altitude_m": 1199.38, "source": "sim"} +{"ts": "2025-08-20T02:37:05.173597+00:00", "lat": 48.4790145, "lon": -81.3375087, "altitude_m": 1198.97, "source": "sim"} +{"ts": "2025-08-20T02:37:05.673597+00:00", "lat": 48.4789964, "lon": -81.3375524, "altitude_m": 1188.64, "source": "sim"} +{"ts": "2025-08-20T02:37:06.123597+00:00", "lat": 48.4789948, "lon": -81.3375599, "altitude_m": 1191.61, "source": "sim"} +{"ts": "2025-08-20T02:37:06.573597+00:00", "lat": 48.4789797, "lon": -81.3375325, "altitude_m": 1186.47, "source": "sim"} +{"ts": "2025-08-20T02:37:06.973597+00:00", "lat": 48.4789747, "lon": -81.3375396, "altitude_m": 1181.47, "source": "sim"} +{"ts": "2025-08-20T02:37:07.473597+00:00", "lat": 48.4789455, "lon": -81.3375426, "altitude_m": 1183.14, "source": "sim"} +{"ts": "2025-08-20T02:37:08.073597+00:00", "lat": 48.478959, "lon": -81.3375277, "altitude_m": 1175.84, "source": "sim"} +{"ts": "2025-08-20T02:37:08.523597+00:00", "lat": 48.4789718, "lon": -81.337488, "altitude_m": 1171.28, "source": "sim"} +{"ts": "2025-08-20T02:37:09.123597+00:00", "lat": 48.4789468, "lon": -81.3375263, "altitude_m": 1162.86, "source": "sim"} +{"ts": "2025-08-20T02:37:09.473597+00:00", "lat": 48.4789328, "lon": -81.3375494, "altitude_m": 1158.14, "source": "sim"} +{"ts": "2025-08-20T02:37:09.623597+00:00", "lat": 48.4789469, "lon": -81.3375391, "altitude_m": 1161.99, "source": "sim"} +{"ts": "2025-08-20T02:37:09.823597+00:00", "lat": 48.4789525, "lon": -81.3375072, "altitude_m": 1158.55, "source": "sim"} +{"ts": "2025-08-20T02:37:09.973597+00:00", "lat": 48.4789461, "lon": -81.3374842, "altitude_m": 1155.76, "source": "sim"} +{"ts": "2025-08-20T02:37:10.073597+00:00", "lat": 48.4789762, "lon": -81.3374858, "altitude_m": 1158.15, "source": "sim"} +{"ts": "2025-08-20T02:37:10.173597+00:00", "lat": 48.4789374, "lon": -81.3375244, "altitude_m": 1163.91, "source": "sim"} +{"ts": "2025-08-20T02:37:10.273597+00:00", "lat": 48.4789459, "lon": -81.3374947, "altitude_m": 1154.13, "source": "sim"} +{"ts": "2025-08-20T02:37:10.423597+00:00", "lat": 48.4789228, "lon": -81.3374987, "altitude_m": 1159.04, "source": "sim"} +{"ts": "2025-08-20T02:37:10.523597+00:00", "lat": 48.4789555, "lon": -81.3374744, "altitude_m": 1157.63, "source": "sim"} +{"ts": "2025-08-20T02:37:10.673597+00:00", "lat": 48.4789325, "lon": -81.3375172, "altitude_m": 1149.14, "source": "sim"} +{"ts": "2025-08-20T02:37:10.823597+00:00", "lat": 48.4789408, "lon": -81.3375344, "altitude_m": 1157.02, "source": "sim"} +{"ts": "2025-08-20T02:37:10.923597+00:00", "lat": 48.4789296, "lon": -81.3374935, "altitude_m": 1155.41, "source": "sim"} +{"ts": "2025-08-20T02:37:11.073597+00:00", "lat": 48.4789369, "lon": -81.3375358, "altitude_m": 1145.11, "source": "sim"} +{"ts": "2025-08-20T02:37:11.173597+00:00", "lat": 48.4789454, "lon": -81.337503, "altitude_m": 1151.61, "source": "sim"} +{"ts": "2025-08-20T02:37:11.273597+00:00", "lat": 48.4789461, "lon": -81.3374995, "altitude_m": 1144.68, "source": "sim"} +{"ts": "2025-08-20T02:37:11.373597+00:00", "lat": 48.478936, "lon": -81.3375037, "altitude_m": 1143.8, "source": "sim"} +{"ts": "2025-08-20T02:37:11.473597+00:00", "lat": 48.4789368, "lon": -81.3375127, "altitude_m": 1145.67, "source": "sim"} +{"ts": "2025-08-20T02:37:11.573597+00:00", "lat": 48.4789118, "lon": -81.3374573, "altitude_m": 1147.92, "source": "sim"} +{"ts": "2025-08-20T02:37:11.723597+00:00", "lat": 48.4789273, "lon": -81.3375024, "altitude_m": 1145.61, "source": "sim"} +{"ts": "2025-08-20T02:37:11.823597+00:00", "lat": 48.478911, "lon": -81.3375032, "altitude_m": 1139.26, "source": "sim"} +{"ts": "2025-08-20T02:37:11.923597+00:00", "lat": 48.4788848, "lon": -81.3375177, "altitude_m": 1151.61, "source": "sim"} +{"ts": "2025-08-20T02:37:12.023597+00:00", "lat": 48.4789515, "lon": -81.337443, "altitude_m": 1141.71, "source": "sim"} +{"ts": "2025-08-20T02:37:12.123597+00:00", "lat": 48.4789314, "lon": -81.3374782, "altitude_m": 1143.59, "source": "sim"} +{"ts": "2025-08-20T02:37:12.273597+00:00", "lat": 48.4789038, "lon": -81.337518, "altitude_m": 1141.68, "source": "sim"} +{"ts": "2025-08-20T02:37:12.373597+00:00", "lat": 48.4789338, "lon": -81.3374904, "altitude_m": 1139.5, "source": "sim"} +{"ts": "2025-08-20T02:37:12.473597+00:00", "lat": 48.4789266, "lon": -81.3374553, "altitude_m": 1143.75, "source": "sim"} +{"ts": "2025-08-20T02:37:12.573597+00:00", "lat": 48.4789397, "lon": -81.3374694, "altitude_m": 1141.3, "source": "sim"} +{"ts": "2025-08-20T02:37:12.673597+00:00", "lat": 48.4789222, "lon": -81.3374624, "altitude_m": 1140.17, "source": "sim"} +{"ts": "2025-08-20T02:37:12.823597+00:00", "lat": 48.4789221, "lon": -81.3374546, "altitude_m": 1140.99, "source": "sim"} +{"ts": "2025-08-20T02:37:12.973597+00:00", "lat": 48.4789193, "lon": -81.3375025, "altitude_m": 1139.0, "source": "sim"} +{"ts": "2025-08-20T02:37:13.073597+00:00", "lat": 48.4789151, "lon": -81.3374525, "altitude_m": 1137.53, "source": "sim"} +{"ts": "2025-08-20T02:37:13.173597+00:00", "lat": 48.4789137, "lon": -81.3374541, "altitude_m": 1131.7, "source": "sim"} +{"ts": "2025-08-20T02:37:13.323597+00:00", "lat": 48.4789224, "lon": -81.3374723, "altitude_m": 1137.32, "source": "sim"} +{"ts": "2025-08-20T02:37:13.473597+00:00", "lat": 48.4789112, "lon": -81.3374889, "altitude_m": 1126.47, "source": "sim"} +{"ts": "2025-08-20T02:37:13.623597+00:00", "lat": 48.4788978, "lon": -81.3374512, "altitude_m": 1126.72, "source": "sim"} +{"ts": "2025-08-20T02:37:13.723597+00:00", "lat": 48.4789215, "lon": -81.3374912, "altitude_m": 1135.25, "source": "sim"} +{"ts": "2025-08-20T02:37:13.823597+00:00", "lat": 48.4789007, "lon": -81.3374503, "altitude_m": 1122.99, "source": "sim"} +{"ts": "2025-08-20T02:37:13.923597+00:00", "lat": 48.4788885, "lon": -81.3374299, "altitude_m": 1132.3, "source": "sim"} +{"ts": "2025-08-20T02:37:14.023597+00:00", "lat": 48.4789078, "lon": -81.3374764, "altitude_m": 1126.86, "source": "sim"} +{"ts": "2025-08-20T02:37:14.123597+00:00", "lat": 48.4788987, "lon": -81.3374716, "altitude_m": 1131.02, "source": "sim"} +{"ts": "2025-08-20T02:37:14.273597+00:00", "lat": 48.4788971, "lon": -81.337484, "altitude_m": 1133.9, "source": "sim"} +{"ts": "2025-08-20T02:37:14.423597+00:00", "lat": 48.4789139, "lon": -81.3374624, "altitude_m": 1125.62, "source": "sim"} +{"ts": "2025-08-20T02:37:14.523597+00:00", "lat": 48.4789101, "lon": -81.3374631, "altitude_m": 1122.09, "source": "sim"} +{"ts": "2025-08-20T02:37:14.673597+00:00", "lat": 48.4788918, "lon": -81.3374547, "altitude_m": 1124.98, "source": "sim"} +{"ts": "2025-08-20T02:37:14.823597+00:00", "lat": 48.4788616, "lon": -81.3374782, "altitude_m": 1122.47, "source": "sim"} +{"ts": "2025-08-20T02:37:14.973597+00:00", "lat": 48.478895, "lon": -81.3374803, "altitude_m": 1126.81, "source": "sim"} +{"ts": "2025-08-20T02:37:15.123597+00:00", "lat": 48.4788886, "lon": -81.3374658, "altitude_m": 1117.38, "source": "sim"} +{"ts": "2025-08-20T02:37:15.223597+00:00", "lat": 48.4789024, "lon": -81.3374528, "altitude_m": 1118.41, "source": "sim"} +{"ts": "2025-08-20T02:37:15.323597+00:00", "lat": 48.4789076, "lon": -81.3374405, "altitude_m": 1108.93, "source": "sim"} +{"ts": "2025-08-20T02:37:15.473597+00:00", "lat": 48.4789024, "lon": -81.3374721, "altitude_m": 1107.28, "source": "sim"} +{"ts": "2025-08-20T02:37:15.623597+00:00", "lat": 48.4788791, "lon": -81.337478, "altitude_m": 1116.03, "source": "sim"} +{"ts": "2025-08-20T02:37:15.773597+00:00", "lat": 48.4788943, "lon": -81.3375034, "altitude_m": 1110.7, "source": "sim"} +{"ts": "2025-08-20T02:37:15.873597+00:00", "lat": 48.4788636, "lon": -81.3374641, "altitude_m": 1109.7, "source": "sim"} +{"ts": "2025-08-20T02:37:15.973597+00:00", "lat": 48.4788989, "lon": -81.337444, "altitude_m": 1117.92, "source": "sim"} +{"ts": "2025-08-20T02:37:16.123597+00:00", "lat": 48.4788794, "lon": -81.337444, "altitude_m": 1111.48, "source": "sim"} +{"ts": "2025-08-20T02:37:16.223597+00:00", "lat": 48.4788654, "lon": -81.3374466, "altitude_m": 1109.53, "source": "sim"} +{"ts": "2025-08-20T02:37:16.323597+00:00", "lat": 48.4788574, "lon": -81.3374483, "altitude_m": 1110.42, "source": "sim"} +{"ts": "2025-08-20T02:37:16.423597+00:00", "lat": 48.4788646, "lon": -81.3374437, "altitude_m": 1100.93, "source": "sim"} +{"ts": "2025-08-20T02:37:16.573597+00:00", "lat": 48.4788957, "lon": -81.3374642, "altitude_m": 1103.98, "source": "sim"} +{"ts": "2025-08-20T02:37:16.673597+00:00", "lat": 48.4788748, "lon": -81.337479, "altitude_m": 1107.26, "source": "sim"} +{"ts": "2025-08-20T02:37:16.773597+00:00", "lat": 48.4788842, "lon": -81.3374563, "altitude_m": 1101.37, "source": "sim"} +{"ts": "2025-08-20T02:37:16.873597+00:00", "lat": 48.4788512, "lon": -81.3374176, "altitude_m": 1099.43, "source": "sim"} +{"ts": "2025-08-20T02:37:16.973597+00:00", "lat": 48.4788792, "lon": -81.3374722, "altitude_m": 1105.02, "source": "sim"} +{"ts": "2025-08-20T02:37:17.073597+00:00", "lat": 48.4788657, "lon": -81.3375084, "altitude_m": 1104.87, "source": "sim"} +{"ts": "2025-08-20T02:37:17.223597+00:00", "lat": 48.4788673, "lon": -81.3374241, "altitude_m": 1098.02, "source": "sim"} +{"ts": "2025-08-20T02:37:17.323597+00:00", "lat": 48.4788481, "lon": -81.3374512, "altitude_m": 1101.3, "source": "sim"} +{"ts": "2025-08-20T02:37:17.423597+00:00", "lat": 48.4788805, "lon": -81.3374239, "altitude_m": 1094.32, "source": "sim"} +{"ts": "2025-08-20T02:37:17.523597+00:00", "lat": 48.4788584, "lon": -81.3374897, "altitude_m": 1100.52, "source": "sim"} +{"ts": "2025-08-20T02:37:17.673597+00:00", "lat": 48.4788588, "lon": -81.3374562, "altitude_m": 1095.59, "source": "sim"} +{"ts": "2025-08-20T02:37:17.773597+00:00", "lat": 48.478865, "lon": -81.3374286, "altitude_m": 1097.37, "source": "sim"} +{"ts": "2025-08-20T02:37:17.923597+00:00", "lat": 48.4788868, "lon": -81.3374987, "altitude_m": 1096.97, "source": "sim"} +{"ts": "2025-08-20T02:37:18.023597+00:00", "lat": 48.4788481, "lon": -81.337472, "altitude_m": 1090.96, "source": "sim"} +{"ts": "2025-08-20T02:37:18.123597+00:00", "lat": 48.4788754, "lon": -81.3374271, "altitude_m": 1094.43, "source": "sim"} +{"ts": "2025-08-20T02:37:18.223597+00:00", "lat": 48.4788442, "lon": -81.3374476, "altitude_m": 1095.95, "source": "sim"} +{"ts": "2025-08-20T02:37:18.373597+00:00", "lat": 48.4788357, "lon": -81.3374457, "altitude_m": 1095.71, "source": "sim"} +{"ts": "2025-08-20T02:37:18.473597+00:00", "lat": 48.4788762, "lon": -81.3374152, "altitude_m": 1091.61, "source": "sim"} +{"ts": "2025-08-20T02:37:18.573597+00:00", "lat": 48.4788487, "lon": -81.3374369, "altitude_m": 1090.61, "source": "sim"} +{"ts": "2025-08-20T02:37:18.723597+00:00", "lat": 48.4788452, "lon": -81.3374294, "altitude_m": 1087.78, "source": "sim"} +{"ts": "2025-08-20T02:37:18.873597+00:00", "lat": 48.4788759, "lon": -81.3374499, "altitude_m": 1097.01, "source": "sim"} +{"ts": "2025-08-20T02:37:19.023597+00:00", "lat": 48.4788305, "lon": -81.3374485, "altitude_m": 1090.26, "source": "sim"} +{"ts": "2025-08-20T02:37:19.123597+00:00", "lat": 48.4788829, "lon": -81.3374319, "altitude_m": 1086.03, "source": "sim"} +{"ts": "2025-08-20T02:37:19.273597+00:00", "lat": 48.4788335, "lon": -81.3374413, "altitude_m": 1086.09, "source": "sim"} +{"ts": "2025-08-20T02:37:19.423597+00:00", "lat": 48.4788256, "lon": -81.3374245, "altitude_m": 1077.99, "source": "sim"} +{"ts": "2025-08-20T02:37:19.573597+00:00", "lat": 48.4788523, "lon": -81.3374047, "altitude_m": 1081.44, "source": "sim"} +{"ts": "2025-08-20T02:37:19.723597+00:00", "lat": 48.4788235, "lon": -81.3374096, "altitude_m": 1082.92, "source": "sim"} +{"ts": "2025-08-20T02:37:19.873597+00:00", "lat": 48.4788456, "lon": -81.3373996, "altitude_m": 1080.92, "source": "sim"} +{"ts": "2025-08-20T02:37:19.973597+00:00", "lat": 48.4788217, "lon": -81.3374444, "altitude_m": 1081.64, "source": "sim"} +{"ts": "2025-08-20T02:37:20.073597+00:00", "lat": 48.4788564, "lon": -81.3374331, "altitude_m": 1080.84, "source": "sim"} +{"ts": "2025-08-20T02:37:20.173597+00:00", "lat": 48.4788407, "lon": -81.3374243, "altitude_m": 1077.6, "source": "sim"} +{"ts": "2025-08-20T02:37:20.273597+00:00", "lat": 48.4788399, "lon": -81.3374277, "altitude_m": 1073.24, "source": "sim"} +{"ts": "2025-08-20T02:37:20.423597+00:00", "lat": 48.4788254, "lon": -81.3374455, "altitude_m": 1072.72, "source": "sim"} +{"ts": "2025-08-20T02:37:20.573597+00:00", "lat": 48.4788303, "lon": -81.3373933, "altitude_m": 1073.58, "source": "sim"} +{"ts": "2025-08-20T02:37:20.723597+00:00", "lat": 48.4788298, "lon": -81.3374457, "altitude_m": 1075.4, "source": "sim"} +{"ts": "2025-08-20T02:37:20.873597+00:00", "lat": 48.4788213, "lon": -81.3374055, "altitude_m": 1072.2, "source": "sim"} +{"ts": "2025-08-20T02:37:20.973597+00:00", "lat": 48.4788147, "lon": -81.3374456, "altitude_m": 1068.38, "source": "sim"} +{"ts": "2025-08-20T02:37:21.073597+00:00", "lat": 48.4788437, "lon": -81.3374237, "altitude_m": 1067.54, "source": "sim"} +{"ts": "2025-08-20T02:37:21.223597+00:00", "lat": 48.4788383, "lon": -81.3374244, "altitude_m": 1063.14, "source": "sim"} +{"ts": "2025-08-20T02:37:21.373597+00:00", "lat": 48.4788101, "lon": -81.3374244, "altitude_m": 1067.3, "source": "sim"} +{"ts": "2025-08-20T02:37:21.523597+00:00", "lat": 48.4788349, "lon": -81.3374045, "altitude_m": 1065.36, "source": "sim"} +{"ts": "2025-08-20T02:37:21.673597+00:00", "lat": 48.4788278, "lon": -81.3374252, "altitude_m": 1066.72, "source": "sim"} +{"ts": "2025-08-20T02:37:21.823597+00:00", "lat": 48.4788399, "lon": -81.3374447, "altitude_m": 1065.69, "source": "sim"} +{"ts": "2025-08-20T02:37:21.923597+00:00", "lat": 48.4788441, "lon": -81.3374181, "altitude_m": 1065.29, "source": "sim"} +{"ts": "2025-08-20T02:37:22.073597+00:00", "lat": 48.4787902, "lon": -81.3374128, "altitude_m": 1056.72, "source": "sim"} +{"ts": "2025-08-20T02:37:22.173597+00:00", "lat": 48.4788169, "lon": -81.3374372, "altitude_m": 1060.78, "source": "sim"} +{"ts": "2025-08-20T02:37:22.273597+00:00", "lat": 48.4787922, "lon": -81.3374011, "altitude_m": 1056.34, "source": "sim"} +{"ts": "2025-08-20T02:37:22.473597+00:00", "lat": 48.4788123, "lon": -81.3374427, "altitude_m": 1063.22, "source": "sim"} +{"ts": "2025-08-20T02:37:22.573597+00:00", "lat": 48.478804, "lon": -81.337373, "altitude_m": 1062.77, "source": "sim"} +{"ts": "2025-08-20T02:37:22.673597+00:00", "lat": 48.478812, "lon": -81.3374427, "altitude_m": 1059.16, "source": "sim"} +{"ts": "2025-08-20T02:37:22.773597+00:00", "lat": 48.4788098, "lon": -81.3374317, "altitude_m": 1057.25, "source": "sim"} +{"ts": "2025-08-20T02:37:22.873597+00:00", "lat": 48.4787916, "lon": -81.3374253, "altitude_m": 1057.37, "source": "sim"} +{"ts": "2025-08-20T02:37:22.973597+00:00", "lat": 48.4787978, "lon": -81.3374243, "altitude_m": 1049.48, "source": "sim"} +{"ts": "2025-08-20T02:37:23.123597+00:00", "lat": 48.4787812, "lon": -81.3374256, "altitude_m": 1054.67, "source": "sim"} +{"ts": "2025-08-20T02:37:23.273597+00:00", "lat": 48.4788029, "lon": -81.3374235, "altitude_m": 1050.5, "source": "sim"} +{"ts": "2025-08-20T02:37:23.423597+00:00", "lat": 48.4788042, "lon": -81.3374064, "altitude_m": 1051.25, "source": "sim"} +{"ts": "2025-08-20T02:37:23.573597+00:00", "lat": 48.4788088, "lon": -81.3374111, "altitude_m": 1049.78, "source": "sim"} +{"ts": "2025-08-20T02:37:23.723597+00:00", "lat": 48.4787715, "lon": -81.3373992, "altitude_m": 1049.52, "source": "sim"} +{"ts": "2025-08-20T02:37:23.873597+00:00", "lat": 48.4787823, "lon": -81.3373833, "altitude_m": 1048.03, "source": "sim"} +{"ts": "2025-08-20T02:37:23.973597+00:00", "lat": 48.4788022, "lon": -81.3374058, "altitude_m": 1049.8, "source": "sim"} +{"ts": "2025-08-20T02:37:24.123597+00:00", "lat": 48.4788, "lon": -81.3374218, "altitude_m": 1048.78, "source": "sim"} +{"ts": "2025-08-20T02:37:24.223597+00:00", "lat": 48.478788, "lon": -81.3373627, "altitude_m": 1045.34, "source": "sim"} +{"ts": "2025-08-20T02:37:24.323597+00:00", "lat": 48.4788003, "lon": -81.3374359, "altitude_m": 1039.09, "source": "sim"} +{"ts": "2025-08-20T02:37:24.423597+00:00", "lat": 48.4788265, "lon": -81.3373838, "altitude_m": 1037.52, "source": "sim"} +{"ts": "2025-08-20T02:37:24.523597+00:00", "lat": 48.4787853, "lon": -81.3374055, "altitude_m": 1042.7, "source": "sim"} +{"ts": "2025-08-20T02:37:24.623597+00:00", "lat": 48.4787967, "lon": -81.3374053, "altitude_m": 1039.69, "source": "sim"} +{"ts": "2025-08-20T02:37:24.723597+00:00", "lat": 48.4787988, "lon": -81.3374351, "altitude_m": 1046.77, "source": "sim"} +{"ts": "2025-08-20T02:37:24.873597+00:00", "lat": 48.4787545, "lon": -81.3373981, "altitude_m": 1043.95, "source": "sim"} +{"ts": "2025-08-20T02:37:25.023597+00:00", "lat": 48.4787568, "lon": -81.3373408, "altitude_m": 1044.79, "source": "sim"} +{"ts": "2025-08-20T02:37:25.173597+00:00", "lat": 48.4788155, "lon": -81.3373621, "altitude_m": 1039.03, "source": "sim"} +{"ts": "2025-08-20T02:37:25.273597+00:00", "lat": 48.4787725, "lon": -81.3373531, "altitude_m": 1041.02, "source": "sim"} +{"ts": "2025-08-20T02:37:25.423597+00:00", "lat": 48.4787757, "lon": -81.337389, "altitude_m": 1041.03, "source": "sim"} +{"ts": "2025-08-20T02:37:25.573597+00:00", "lat": 48.4787982, "lon": -81.3374237, "altitude_m": 1038.09, "source": "sim"} +{"ts": "2025-08-20T02:37:25.673597+00:00", "lat": 48.4787816, "lon": -81.3373866, "altitude_m": 1031.79, "source": "sim"} +{"ts": "2025-08-20T02:37:25.823597+00:00", "lat": 48.4788118, "lon": -81.337403, "altitude_m": 1030.82, "source": "sim"} +{"ts": "2025-08-20T02:37:25.973597+00:00", "lat": 48.4787751, "lon": -81.3373845, "altitude_m": 1030.16, "source": "sim"} +{"ts": "2025-08-20T02:37:26.123597+00:00", "lat": 48.4787629, "lon": -81.3373569, "altitude_m": 1025.13, "source": "sim"} +{"ts": "2025-08-20T02:37:26.223597+00:00", "lat": 48.4787828, "lon": -81.3373766, "altitude_m": 1028.63, "source": "sim"} +{"ts": "2025-08-20T02:37:26.323597+00:00", "lat": 48.4787645, "lon": -81.3373861, "altitude_m": 1025.52, "source": "sim"} +{"ts": "2025-08-20T02:37:26.473597+00:00", "lat": 48.4787553, "lon": -81.3374212, "altitude_m": 1030.54, "source": "sim"} +{"ts": "2025-08-20T02:37:26.573597+00:00", "lat": 48.4787652, "lon": -81.3373599, "altitude_m": 1027.05, "source": "sim"} +{"ts": "2025-08-20T02:37:26.673597+00:00", "lat": 48.4787655, "lon": -81.3374092, "altitude_m": 1023.94, "source": "sim"} +{"ts": "2025-08-20T02:37:26.823597+00:00", "lat": 48.478794, "lon": -81.3373828, "altitude_m": 1026.4, "source": "sim"} +{"ts": "2025-08-20T02:37:26.923597+00:00", "lat": 48.478778, "lon": -81.3373689, "altitude_m": 1022.55, "source": "sim"} +{"ts": "2025-08-20T02:37:27.073597+00:00", "lat": 48.4787584, "lon": -81.337351, "altitude_m": 1025.49, "source": "sim"} +{"ts": "2025-08-20T02:37:27.223597+00:00", "lat": 48.4787774, "lon": -81.3373436, "altitude_m": 1017.3, "source": "sim"} +{"ts": "2025-08-20T02:37:27.373597+00:00", "lat": 48.478768, "lon": -81.3373361, "altitude_m": 1017.23, "source": "sim"} +{"ts": "2025-08-20T02:37:27.473597+00:00", "lat": 48.4787455, "lon": -81.3373542, "altitude_m": 1020.01, "source": "sim"} +{"ts": "2025-08-20T02:37:27.623597+00:00", "lat": 48.4787612, "lon": -81.3373452, "altitude_m": 1017.77, "source": "sim"} +{"ts": "2025-08-20T02:37:27.723597+00:00", "lat": 48.4787546, "lon": -81.3373507, "altitude_m": 1020.59, "source": "sim"} +{"ts": "2025-08-20T02:37:27.823597+00:00", "lat": 48.4787521, "lon": -81.3373943, "altitude_m": 1015.75, "source": "sim"} +{"ts": "2025-08-20T02:37:27.923597+00:00", "lat": 48.4787474, "lon": -81.3373289, "altitude_m": 1019.08, "source": "sim"} +{"ts": "2025-08-20T02:37:28.023597+00:00", "lat": 48.4787349, "lon": -81.3373605, "altitude_m": 1016.55, "source": "sim"} +{"ts": "2025-08-20T02:37:28.173597+00:00", "lat": 48.4787503, "lon": -81.3373533, "altitude_m": 1011.11, "source": "sim"} +{"ts": "2025-08-20T02:37:28.323597+00:00", "lat": 48.478773, "lon": -81.3373762, "altitude_m": 1014.88, "source": "sim"} +{"ts": "2025-08-20T02:37:28.423597+00:00", "lat": 48.4787622, "lon": -81.3373451, "altitude_m": 1011.93, "source": "sim"} +{"ts": "2025-08-20T02:37:28.523597+00:00", "lat": 48.4787589, "lon": -81.3373498, "altitude_m": 1008.11, "source": "sim"} +{"ts": "2025-08-20T02:37:28.673597+00:00", "lat": 48.4787368, "lon": -81.3373475, "altitude_m": 1011.06, "source": "sim"} +{"ts": "2025-08-20T02:37:28.823597+00:00", "lat": 48.4787329, "lon": -81.3373487, "altitude_m": 1014.06, "source": "sim"} +{"ts": "2025-08-20T02:37:28.973597+00:00", "lat": 48.4787299, "lon": -81.3373493, "altitude_m": 1010.41, "source": "sim"} +{"ts": "2025-08-20T02:37:29.123597+00:00", "lat": 48.4787451, "lon": -81.3373496, "altitude_m": 1002.78, "source": "sim"} +{"ts": "2025-08-20T02:37:29.223597+00:00", "lat": 48.4787262, "lon": -81.3373495, "altitude_m": 1003.23, "source": "sim"} +{"ts": "2025-08-20T02:37:29.373597+00:00", "lat": 48.4787483, "lon": -81.3373481, "altitude_m": 1007.8, "source": "sim"} +{"ts": "2025-08-20T02:37:29.473597+00:00", "lat": 48.4787501, "lon": -81.3373642, "altitude_m": 1003.48, "source": "sim"} +{"ts": "2025-08-20T02:37:29.623597+00:00", "lat": 48.4787245, "lon": -81.337385, "altitude_m": 1001.81, "source": "sim"} +{"ts": "2025-08-20T02:37:29.773597+00:00", "lat": 48.478716, "lon": -81.3373994, "altitude_m": 1002.17, "source": "sim"} +{"ts": "2025-08-20T02:37:29.873597+00:00", "lat": 48.47873, "lon": -81.337369, "altitude_m": 996.26, "source": "sim"} +{"ts": "2025-08-20T02:37:29.973597+00:00", "lat": 48.4787404, "lon": -81.3373449, "altitude_m": 1006.56, "source": "sim"} +{"ts": "2025-08-20T02:37:30.123597+00:00", "lat": 48.4787579, "lon": -81.3373613, "altitude_m": 997.37, "source": "sim"} +{"ts": "2025-08-20T02:37:30.223597+00:00", "lat": 48.4787366, "lon": -81.3373656, "altitude_m": 1001.86, "source": "sim"} +{"ts": "2025-08-20T02:37:30.373597+00:00", "lat": 48.4787325, "lon": -81.3373148, "altitude_m": 995.92, "source": "sim"} +{"ts": "2025-08-20T02:37:30.523597+00:00", "lat": 48.4787145, "lon": -81.337339, "altitude_m": 995.95, "source": "sim"} +{"ts": "2025-08-20T02:37:30.623597+00:00", "lat": 48.4787308, "lon": -81.3373137, "altitude_m": 1002.59, "source": "sim"} +{"ts": "2025-08-20T02:37:30.723597+00:00", "lat": 48.4787474, "lon": -81.3373138, "altitude_m": 998.21, "source": "sim"} +{"ts": "2025-08-20T02:37:30.823597+00:00", "lat": 48.4787334, "lon": -81.3373708, "altitude_m": 986.81, "source": "sim"} +{"ts": "2025-08-20T02:37:30.923597+00:00", "lat": 48.4787241, "lon": -81.3373405, "altitude_m": 991.71, "source": "sim"} +{"ts": "2025-08-20T02:37:31.023597+00:00", "lat": 48.4787283, "lon": -81.337337, "altitude_m": 995.71, "source": "sim"} +{"ts": "2025-08-20T02:37:31.173597+00:00", "lat": 48.4787177, "lon": -81.3373537, "altitude_m": 992.36, "source": "sim"} +{"ts": "2025-08-20T02:37:31.323597+00:00", "lat": 48.4787297, "lon": -81.3373286, "altitude_m": 985.81, "source": "sim"} +{"ts": "2025-08-20T02:37:31.473597+00:00", "lat": 48.4787305, "lon": -81.3373598, "altitude_m": 991.48, "source": "sim"} +{"ts": "2025-08-20T02:37:31.573597+00:00", "lat": 48.4786884, "lon": -81.3373384, "altitude_m": 986.97, "source": "sim"} +{"ts": "2025-08-20T02:37:31.723597+00:00", "lat": 48.4787144, "lon": -81.337321, "altitude_m": 981.43, "source": "sim"} +{"ts": "2025-08-20T02:37:31.873597+00:00", "lat": 48.4786804, "lon": -81.3373255, "altitude_m": 987.39, "source": "sim"} +{"ts": "2025-08-20T02:37:32.023597+00:00", "lat": 48.4787054, "lon": -81.3373418, "altitude_m": 986.41, "source": "sim"} +{"ts": "2025-08-20T02:37:32.223597+00:00", "lat": 48.4786861, "lon": -81.3373317, "altitude_m": 981.25, "source": "sim"} +{"ts": "2025-08-20T02:37:32.323597+00:00", "lat": 48.4787207, "lon": -81.3373215, "altitude_m": 983.01, "source": "sim"} +{"ts": "2025-08-20T02:37:32.473597+00:00", "lat": 48.4786812, "lon": -81.3372775, "altitude_m": 978.82, "source": "sim"} +{"ts": "2025-08-20T02:37:32.573597+00:00", "lat": 48.478722, "lon": -81.3373172, "altitude_m": 981.08, "source": "sim"} +{"ts": "2025-08-20T02:37:32.723597+00:00", "lat": 48.4787063, "lon": -81.3373612, "altitude_m": 978.83, "source": "sim"} +{"ts": "2025-08-20T02:37:32.823597+00:00", "lat": 48.478711, "lon": -81.3373242, "altitude_m": 977.16, "source": "sim"} +{"ts": "2025-08-20T02:37:32.923597+00:00", "lat": 48.4787001, "lon": -81.3373293, "altitude_m": 977.48, "source": "sim"} +{"ts": "2025-08-20T02:37:33.073597+00:00", "lat": 48.4787019, "lon": -81.337328, "altitude_m": 976.98, "source": "sim"} +{"ts": "2025-08-20T02:37:33.223597+00:00", "lat": 48.4786984, "lon": -81.3373161, "altitude_m": 975.64, "source": "sim"} +{"ts": "2025-08-20T02:37:33.323597+00:00", "lat": 48.4786822, "lon": -81.337329, "altitude_m": 974.86, "source": "sim"} +{"ts": "2025-08-20T02:37:33.423597+00:00", "lat": 48.4786797, "lon": -81.3373213, "altitude_m": 972.84, "source": "sim"} +{"ts": "2025-08-20T02:37:33.573597+00:00", "lat": 48.4787037, "lon": -81.3373016, "altitude_m": 972.53, "source": "sim"} +{"ts": "2025-08-20T02:37:33.723597+00:00", "lat": 48.4786811, "lon": -81.3373664, "altitude_m": 970.11, "source": "sim"} +{"ts": "2025-08-20T02:37:33.823597+00:00", "lat": 48.478679, "lon": -81.3373206, "altitude_m": 966.4, "source": "sim"} +{"ts": "2025-08-20T02:37:33.973597+00:00", "lat": 48.4786702, "lon": -81.337337, "altitude_m": 972.15, "source": "sim"} +{"ts": "2025-08-20T02:37:34.123597+00:00", "lat": 48.478685, "lon": -81.3372999, "altitude_m": 963.74, "source": "sim"} +{"ts": "2025-08-20T02:37:34.223597+00:00", "lat": 48.4786919, "lon": -81.3373348, "altitude_m": 961.05, "source": "sim"} +{"ts": "2025-08-20T02:37:34.323597+00:00", "lat": 48.4786963, "lon": -81.337361, "altitude_m": 960.07, "source": "sim"} +{"ts": "2025-08-20T02:37:34.473597+00:00", "lat": 48.4786716, "lon": -81.3373269, "altitude_m": 966.28, "source": "sim"} +{"ts": "2025-08-20T02:37:34.573597+00:00", "lat": 48.4786989, "lon": -81.3373047, "altitude_m": 965.56, "source": "sim"} +{"ts": "2025-08-20T02:37:34.723597+00:00", "lat": 48.4787035, "lon": -81.3372964, "altitude_m": 963.65, "source": "sim"} +{"ts": "2025-08-20T02:37:34.823597+00:00", "lat": 48.4787062, "lon": -81.3373003, "altitude_m": 959.96, "source": "sim"} +{"ts": "2025-08-20T02:37:34.973597+00:00", "lat": 48.4786594, "lon": -81.3373605, "altitude_m": 952.85, "source": "sim"} +{"ts": "2025-08-20T02:37:35.123597+00:00", "lat": 48.47867, "lon": -81.3372624, "altitude_m": 957.65, "source": "sim"} +{"ts": "2025-08-20T02:37:35.223597+00:00", "lat": 48.4786613, "lon": -81.3372975, "altitude_m": 955.84, "source": "sim"} +{"ts": "2025-08-20T02:37:35.373597+00:00", "lat": 48.4786606, "lon": -81.3373351, "altitude_m": 962.42, "source": "sim"} +{"ts": "2025-08-20T02:37:35.523597+00:00", "lat": 48.4786719, "lon": -81.3373438, "altitude_m": 949.66, "source": "sim"} +{"ts": "2025-08-20T02:37:35.623597+00:00", "lat": 48.4786576, "lon": -81.3373222, "altitude_m": 953.06, "source": "sim"} +{"ts": "2025-08-20T02:37:35.773597+00:00", "lat": 48.4786619, "lon": -81.3373175, "altitude_m": 952.62, "source": "sim"} +{"ts": "2025-08-20T02:37:35.923597+00:00", "lat": 48.4786886, "lon": -81.3372882, "altitude_m": 951.45, "source": "sim"} +{"ts": "2025-08-20T02:37:36.023597+00:00", "lat": 48.4786423, "lon": -81.3373188, "altitude_m": 948.18, "source": "sim"} +{"ts": "2025-08-20T02:37:36.173597+00:00", "lat": 48.4786854, "lon": -81.337294, "altitude_m": 948.97, "source": "sim"} +{"ts": "2025-08-20T02:37:36.323597+00:00", "lat": 48.4786454, "lon": -81.3372798, "altitude_m": 949.27, "source": "sim"} +{"ts": "2025-08-20T02:37:36.473597+00:00", "lat": 48.4786348, "lon": -81.3373034, "altitude_m": 948.89, "source": "sim"} +{"ts": "2025-08-20T02:37:36.573597+00:00", "lat": 48.478655, "lon": -81.3372602, "altitude_m": 954.34, "source": "sim"} +{"ts": "2025-08-20T02:37:36.673597+00:00", "lat": 48.4786576, "lon": -81.3373134, "altitude_m": 946.01, "source": "sim"} +{"ts": "2025-08-20T02:37:36.773597+00:00", "lat": 48.4786645, "lon": -81.3372578, "altitude_m": 941.02, "source": "sim"} +{"ts": "2025-08-20T02:37:36.923597+00:00", "lat": 48.4786508, "lon": -81.3372984, "altitude_m": 938.52, "source": "sim"} +{"ts": "2025-08-20T02:37:37.023597+00:00", "lat": 48.4786687, "lon": -81.3372822, "altitude_m": 940.72, "source": "sim"} +{"ts": "2025-08-20T02:37:37.123597+00:00", "lat": 48.4786659, "lon": -81.3372895, "altitude_m": 943.53, "source": "sim"} +{"ts": "2025-08-20T02:37:37.223597+00:00", "lat": 48.4786573, "lon": -81.3372908, "altitude_m": 948.63, "source": "sim"} +{"ts": "2025-08-20T02:37:37.323597+00:00", "lat": 48.478659, "lon": -81.3373192, "altitude_m": 939.4, "source": "sim"} +{"ts": "2025-08-20T02:37:37.473597+00:00", "lat": 48.4786233, "lon": -81.3372919, "altitude_m": 940.17, "source": "sim"} +{"ts": "2025-08-20T02:37:37.573597+00:00", "lat": 48.4786697, "lon": -81.3373045, "altitude_m": 932.33, "source": "sim"} +{"ts": "2025-08-20T02:37:37.723597+00:00", "lat": 48.4786517, "lon": -81.3373074, "altitude_m": 939.57, "source": "sim"} +{"ts": "2025-08-20T02:37:37.873597+00:00", "lat": 48.4786274, "lon": -81.3372751, "altitude_m": 941.17, "source": "sim"} +{"ts": "2025-08-20T02:37:37.973597+00:00", "lat": 48.4786283, "lon": -81.3372658, "altitude_m": 939.16, "source": "sim"} +{"ts": "2025-08-20T02:37:38.123597+00:00", "lat": 48.4786333, "lon": -81.3372692, "altitude_m": 937.63, "source": "sim"} +{"ts": "2025-08-20T02:37:38.223597+00:00", "lat": 48.4786442, "lon": -81.3372464, "altitude_m": 937.8, "source": "sim"} +{"ts": "2025-08-20T02:37:38.323597+00:00", "lat": 48.4786237, "lon": -81.3373258, "altitude_m": 935.85, "source": "sim"} +{"ts": "2025-08-20T02:37:38.473597+00:00", "lat": 48.4786246, "lon": -81.3373017, "altitude_m": 931.6, "source": "sim"} +{"ts": "2025-08-20T02:37:38.573597+00:00", "lat": 48.4786503, "lon": -81.3372922, "altitude_m": 930.64, "source": "sim"} +{"ts": "2025-08-20T02:37:38.673597+00:00", "lat": 48.4786292, "lon": -81.3373166, "altitude_m": 932.92, "source": "sim"} +{"ts": "2025-08-20T02:37:38.823597+00:00", "lat": 48.4786585, "lon": -81.3372693, "altitude_m": 928.06, "source": "sim"} +{"ts": "2025-08-20T02:37:38.973597+00:00", "lat": 48.4786506, "lon": -81.3372757, "altitude_m": 923.23, "source": "sim"} +{"ts": "2025-08-20T02:37:39.123597+00:00", "lat": 48.4786361, "lon": -81.3372422, "altitude_m": 927.32, "source": "sim"} +{"ts": "2025-08-20T02:37:39.273597+00:00", "lat": 48.4786244, "lon": -81.3372614, "altitude_m": 932.19, "source": "sim"} +{"ts": "2025-08-20T02:37:39.423597+00:00", "lat": 48.4786123, "lon": -81.3373013, "altitude_m": 926.72, "source": "sim"} +{"ts": "2025-08-20T02:37:39.573597+00:00", "lat": 48.4786358, "lon": -81.3372982, "altitude_m": 923.71, "source": "sim"} +{"ts": "2025-08-20T02:37:39.723597+00:00", "lat": 48.4786227, "lon": -81.337268, "altitude_m": 923.04, "source": "sim"} +{"ts": "2025-08-20T02:37:39.823597+00:00", "lat": 48.4786523, "lon": -81.33724, "altitude_m": 917.14, "source": "sim"} +{"ts": "2025-08-20T02:37:39.923597+00:00", "lat": 48.4786291, "lon": -81.3372609, "altitude_m": 915.25, "source": "sim"} +{"ts": "2025-08-20T02:37:40.073597+00:00", "lat": 48.4786239, "lon": -81.3372895, "altitude_m": 914.75, "source": "sim"} +{"ts": "2025-08-20T02:37:40.223597+00:00", "lat": 48.4786274, "lon": -81.3372735, "altitude_m": 916.57, "source": "sim"} +{"ts": "2025-08-20T02:37:40.323597+00:00", "lat": 48.4786103, "lon": -81.3372466, "altitude_m": 912.68, "source": "sim"} +{"ts": "2025-08-20T02:37:40.473597+00:00", "lat": 48.4786407, "lon": -81.3372584, "altitude_m": 915.86, "source": "sim"} +{"ts": "2025-08-20T02:37:40.623597+00:00", "lat": 48.4786065, "lon": -81.3372657, "altitude_m": 916.37, "source": "sim"} +{"ts": "2025-08-20T02:37:40.773597+00:00", "lat": 48.4786377, "lon": -81.3372594, "altitude_m": 920.32, "source": "sim"} +{"ts": "2025-08-20T02:37:40.873597+00:00", "lat": 48.4786206, "lon": -81.3372345, "altitude_m": 913.35, "source": "sim"} +{"ts": "2025-08-20T02:37:40.973597+00:00", "lat": 48.4786235, "lon": -81.3372577, "altitude_m": 912.18, "source": "sim"} +{"ts": "2025-08-20T02:37:41.123597+00:00", "lat": 48.4786066, "lon": -81.3372533, "altitude_m": 905.99, "source": "sim"} +{"ts": "2025-08-20T02:37:41.273597+00:00", "lat": 48.4786176, "lon": -81.3372862, "altitude_m": 908.79, "source": "sim"} +{"ts": "2025-08-20T02:37:41.423597+00:00", "lat": 48.4785933, "lon": -81.3372676, "altitude_m": 904.9, "source": "sim"} +{"ts": "2025-08-20T02:37:41.523597+00:00", "lat": 48.4786147, "lon": -81.3372518, "altitude_m": 905.98, "source": "sim"} +{"ts": "2025-08-20T02:37:41.623597+00:00", "lat": 48.478613, "lon": -81.3372534, "altitude_m": 908.02, "source": "sim"} +{"ts": "2025-08-20T02:37:41.723597+00:00", "lat": 48.4785934, "lon": -81.3372634, "altitude_m": 904.96, "source": "sim"} +{"ts": "2025-08-20T02:37:41.873597+00:00", "lat": 48.478629, "lon": -81.3372895, "altitude_m": 902.13, "source": "sim"} +{"ts": "2025-08-20T02:37:42.023597+00:00", "lat": 48.4786017, "lon": -81.3372438, "altitude_m": 899.66, "source": "sim"} +{"ts": "2025-08-20T02:37:42.123597+00:00", "lat": 48.4786228, "lon": -81.3372806, "altitude_m": 903.51, "source": "sim"} +{"ts": "2025-08-20T02:37:42.273597+00:00", "lat": 48.4786085, "lon": -81.3372728, "altitude_m": 896.79, "source": "sim"} +{"ts": "2025-08-20T02:37:42.373597+00:00", "lat": 48.4785736, "lon": -81.3372613, "altitude_m": 902.36, "source": "sim"} +{"ts": "2025-08-20T02:37:42.473597+00:00", "lat": 48.4785778, "lon": -81.3372393, "altitude_m": 904.07, "source": "sim"} +{"ts": "2025-08-20T02:37:42.573597+00:00", "lat": 48.4785985, "lon": -81.3372303, "altitude_m": 900.39, "source": "sim"} +{"ts": "2025-08-20T02:37:42.673597+00:00", "lat": 48.4786236, "lon": -81.3372601, "altitude_m": 896.33, "source": "sim"} +{"ts": "2025-08-20T02:37:42.823597+00:00", "lat": 48.4786054, "lon": -81.3372784, "altitude_m": 899.19, "source": "sim"} +{"ts": "2025-08-20T02:37:42.923597+00:00", "lat": 48.4785973, "lon": -81.3372179, "altitude_m": 897.96, "source": "sim"} +{"ts": "2025-08-20T02:37:43.073597+00:00", "lat": 48.4785928, "lon": -81.3372502, "altitude_m": 896.59, "source": "sim"} +{"ts": "2025-08-20T02:37:43.223597+00:00", "lat": 48.4785767, "lon": -81.3372321, "altitude_m": 892.83, "source": "sim"} +{"ts": "2025-08-20T02:37:43.373597+00:00", "lat": 48.4786139, "lon": -81.3372662, "altitude_m": 891.53, "source": "sim"} +{"ts": "2025-08-20T02:37:43.473597+00:00", "lat": 48.4785858, "lon": -81.3372414, "altitude_m": 891.53, "source": "sim"} +{"ts": "2025-08-20T02:37:43.623597+00:00", "lat": 48.4785921, "lon": -81.3372761, "altitude_m": 888.47, "source": "sim"} +{"ts": "2025-08-20T02:37:43.723597+00:00", "lat": 48.4785708, "lon": -81.3372583, "altitude_m": 893.15, "source": "sim"} +{"ts": "2025-08-20T02:37:43.823597+00:00", "lat": 48.4785839, "lon": -81.3372189, "altitude_m": 888.97, "source": "sim"} +{"ts": "2025-08-20T02:37:43.973597+00:00", "lat": 48.4786067, "lon": -81.3371951, "altitude_m": 889.63, "source": "sim"} +{"ts": "2025-08-20T02:37:44.073597+00:00", "lat": 48.4785718, "lon": -81.3372293, "altitude_m": 888.34, "source": "sim"} +{"ts": "2025-08-20T02:37:44.223597+00:00", "lat": 48.4785945, "lon": -81.3372495, "altitude_m": 883.22, "source": "sim"} +{"ts": "2025-08-20T02:37:44.323597+00:00", "lat": 48.478582, "lon": -81.3371931, "altitude_m": 885.68, "source": "sim"} +{"ts": "2025-08-20T02:37:44.473597+00:00", "lat": 48.4785688, "lon": -81.3371957, "altitude_m": 883.89, "source": "sim"} +{"ts": "2025-08-20T02:37:44.623597+00:00", "lat": 48.4786112, "lon": -81.3372416, "altitude_m": 882.1, "source": "sim"} +{"ts": "2025-08-20T02:37:44.773597+00:00", "lat": 48.4785828, "lon": -81.3372538, "altitude_m": 882.57, "source": "sim"} +{"ts": "2025-08-20T02:37:44.923597+00:00", "lat": 48.4785698, "lon": -81.3372211, "altitude_m": 880.19, "source": "sim"} +{"ts": "2025-08-20T02:37:45.023597+00:00", "lat": 48.4785708, "lon": -81.33724, "altitude_m": 877.76, "source": "sim"} +{"ts": "2025-08-20T02:37:45.123597+00:00", "lat": 48.4785468, "lon": -81.3372876, "altitude_m": 881.21, "source": "sim"} +{"ts": "2025-08-20T02:37:45.223597+00:00", "lat": 48.4785731, "lon": -81.3372167, "altitude_m": 879.57, "source": "sim"} +{"ts": "2025-08-20T02:37:45.373597+00:00", "lat": 48.4785519, "lon": -81.3372184, "altitude_m": 871.01, "source": "sim"} +{"ts": "2025-08-20T02:37:45.473597+00:00", "lat": 48.4785784, "lon": -81.3372395, "altitude_m": 879.68, "source": "sim"} +{"ts": "2025-08-20T02:37:45.573597+00:00", "lat": 48.4785597, "lon": -81.33726, "altitude_m": 870.78, "source": "sim"} +{"ts": "2025-08-20T02:37:45.673597+00:00", "lat": 48.4785892, "lon": -81.3372227, "altitude_m": 873.62, "source": "sim"} +{"ts": "2025-08-20T02:37:45.823597+00:00", "lat": 48.4785794, "lon": -81.3372115, "altitude_m": 876.06, "source": "sim"} +{"ts": "2025-08-20T02:37:45.973597+00:00", "lat": 48.4785557, "lon": -81.3372079, "altitude_m": 864.71, "source": "sim"} +{"ts": "2025-08-20T02:37:46.123597+00:00", "lat": 48.4785533, "lon": -81.3372241, "altitude_m": 868.21, "source": "sim"} +{"ts": "2025-08-20T02:37:46.273597+00:00", "lat": 48.4785529, "lon": -81.3372095, "altitude_m": 872.52, "source": "sim"} +{"ts": "2025-08-20T02:37:46.373597+00:00", "lat": 48.478537, "lon": -81.337214, "altitude_m": 858.48, "source": "sim"} +{"ts": "2025-08-20T02:37:46.473597+00:00", "lat": 48.4785693, "lon": -81.3372383, "altitude_m": 868.88, "source": "sim"} +{"ts": "2025-08-20T02:37:46.623597+00:00", "lat": 48.4785501, "lon": -81.337207, "altitude_m": 866.75, "source": "sim"} +{"ts": "2025-08-20T02:37:46.773597+00:00", "lat": 48.4785459, "lon": -81.3372117, "altitude_m": 863.95, "source": "sim"} +{"ts": "2025-08-20T02:37:46.873597+00:00", "lat": 48.478531, "lon": -81.3372152, "altitude_m": 862.71, "source": "sim"} +{"ts": "2025-08-20T02:37:47.023597+00:00", "lat": 48.4785361, "lon": -81.3372107, "altitude_m": 864.07, "source": "sim"} +{"ts": "2025-08-20T02:37:47.173597+00:00", "lat": 48.4785726, "lon": -81.3372159, "altitude_m": 859.18, "source": "sim"} +{"ts": "2025-08-20T02:37:47.323597+00:00", "lat": 48.4785472, "lon": -81.3372253, "altitude_m": 856.62, "source": "sim"} +{"ts": "2025-08-20T02:37:47.473597+00:00", "lat": 48.478555, "lon": -81.337193, "altitude_m": 860.77, "source": "sim"} +{"ts": "2025-08-20T02:37:47.573597+00:00", "lat": 48.4785449, "lon": -81.337241, "altitude_m": 853.17, "source": "sim"} +{"ts": "2025-08-20T02:37:47.723597+00:00", "lat": 48.4785376, "lon": -81.337217, "altitude_m": 854.72, "source": "sim"} +{"ts": "2025-08-20T02:37:47.873597+00:00", "lat": 48.4785464, "lon": -81.3372085, "altitude_m": 854.93, "source": "sim"} +{"ts": "2025-08-20T02:37:48.023597+00:00", "lat": 48.4785374, "lon": -81.3372679, "altitude_m": 851.95, "source": "sim"} +{"ts": "2025-08-20T02:37:48.123597+00:00", "lat": 48.4785449, "lon": -81.3372076, "altitude_m": 852.27, "source": "sim"} +{"ts": "2025-08-20T02:37:48.223597+00:00", "lat": 48.4785298, "lon": -81.3372042, "altitude_m": 854.3, "source": "sim"} +{"ts": "2025-08-20T02:37:48.373597+00:00", "lat": 48.4785404, "lon": -81.3372019, "altitude_m": 854.62, "source": "sim"} +{"ts": "2025-08-20T02:37:48.473597+00:00", "lat": 48.4785259, "lon": -81.3372219, "altitude_m": 851.27, "source": "sim"} +{"ts": "2025-08-20T02:37:48.623597+00:00", "lat": 48.4785601, "lon": -81.3372179, "altitude_m": 852.81, "source": "sim"} +{"ts": "2025-08-20T02:37:48.773597+00:00", "lat": 48.4785523, "lon": -81.3371747, "altitude_m": 849.99, "source": "sim"} +{"ts": "2025-08-20T02:37:48.873597+00:00", "lat": 48.478549, "lon": -81.3371929, "altitude_m": 845.62, "source": "sim"} +{"ts": "2025-08-20T02:37:49.023597+00:00", "lat": 48.4785178, "lon": -81.3372064, "altitude_m": 848.87, "source": "sim"} +{"ts": "2025-08-20T02:37:49.123597+00:00", "lat": 48.4785338, "lon": -81.3372022, "altitude_m": 846.8, "source": "sim"} +{"ts": "2025-08-20T02:37:49.223597+00:00", "lat": 48.478536, "lon": -81.3371997, "altitude_m": 850.25, "source": "sim"} +{"ts": "2025-08-20T02:37:49.323597+00:00", "lat": 48.4785213, "lon": -81.3371905, "altitude_m": 840.12, "source": "sim"} +{"ts": "2025-08-20T02:37:49.423597+00:00", "lat": 48.4785406, "lon": -81.3371766, "altitude_m": 842.5, "source": "sim"} +{"ts": "2025-08-20T02:37:49.523597+00:00", "lat": 48.4785414, "lon": -81.3371996, "altitude_m": 838.71, "source": "sim"} +{"ts": "2025-08-20T02:37:49.673597+00:00", "lat": 48.4785412, "lon": -81.3371729, "altitude_m": 844.16, "source": "sim"} +{"ts": "2025-08-20T02:37:49.823597+00:00", "lat": 48.4785187, "lon": -81.3372368, "altitude_m": 839.83, "source": "sim"} +{"ts": "2025-08-20T02:37:49.973597+00:00", "lat": 48.4785605, "lon": -81.3372187, "altitude_m": 841.53, "source": "sim"} +{"ts": "2025-08-20T02:37:50.073597+00:00", "lat": 48.4785289, "lon": -81.3372133, "altitude_m": 837.9, "source": "sim"} +{"ts": "2025-08-20T02:37:50.223597+00:00", "lat": 48.4784982, "lon": -81.3371756, "altitude_m": 834.92, "source": "sim"} +{"ts": "2025-08-20T02:37:50.323597+00:00", "lat": 48.4785131, "lon": -81.3371908, "altitude_m": 832.96, "source": "sim"} +{"ts": "2025-08-20T02:37:50.473597+00:00", "lat": 48.4785237, "lon": -81.3372085, "altitude_m": 837.46, "source": "sim"} +{"ts": "2025-08-20T02:37:50.573597+00:00", "lat": 48.4785175, "lon": -81.3371596, "altitude_m": 831.54, "source": "sim"} +{"ts": "2025-08-20T02:37:50.723597+00:00", "lat": 48.4785183, "lon": -81.3372035, "altitude_m": 833.33, "source": "sim"} +{"ts": "2025-08-20T02:37:50.823597+00:00", "lat": 48.4784887, "lon": -81.3371968, "altitude_m": 835.77, "source": "sim"} +{"ts": "2025-08-20T02:37:50.973597+00:00", "lat": 48.4785105, "lon": -81.3372115, "altitude_m": 832.0, "source": "sim"} +{"ts": "2025-08-20T02:37:51.073597+00:00", "lat": 48.4785592, "lon": -81.3371866, "altitude_m": 836.05, "source": "sim"} +{"ts": "2025-08-20T02:37:51.223597+00:00", "lat": 48.478527, "lon": -81.3371706, "altitude_m": 830.9, "source": "sim"} +{"ts": "2025-08-20T02:37:51.373597+00:00", "lat": 48.4785061, "lon": -81.3372238, "altitude_m": 826.79, "source": "sim"} +{"ts": "2025-08-20T02:37:51.473597+00:00", "lat": 48.4785197, "lon": -81.3371451, "altitude_m": 821.18, "source": "sim"} +{"ts": "2025-08-20T02:37:51.573597+00:00", "lat": 48.4785163, "lon": -81.3372064, "altitude_m": 831.48, "source": "sim"} +{"ts": "2025-08-20T02:37:51.673597+00:00", "lat": 48.4784975, "lon": -81.3371843, "altitude_m": 824.46, "source": "sim"} +{"ts": "2025-08-20T02:37:51.773597+00:00", "lat": 48.4784904, "lon": -81.3372092, "altitude_m": 826.57, "source": "sim"} +{"ts": "2025-08-20T02:37:51.873597+00:00", "lat": 48.4784899, "lon": -81.3372003, "altitude_m": 823.64, "source": "sim"} +{"ts": "2025-08-20T02:37:52.023597+00:00", "lat": 48.478507, "lon": -81.3371976, "altitude_m": 825.15, "source": "sim"} +{"ts": "2025-08-20T02:37:52.123597+00:00", "lat": 48.4784974, "lon": -81.33717, "altitude_m": 823.54, "source": "sim"} +{"ts": "2025-08-20T02:37:52.273597+00:00", "lat": 48.4784983, "lon": -81.3371945, "altitude_m": 821.56, "source": "sim"} +{"ts": "2025-08-20T02:37:52.423597+00:00", "lat": 48.4784913, "lon": -81.3371633, "altitude_m": 821.97, "source": "sim"} +{"ts": "2025-08-20T02:37:52.573597+00:00", "lat": 48.4784564, "lon": -81.33718, "altitude_m": 816.89, "source": "sim"} +{"ts": "2025-08-20T02:37:52.723597+00:00", "lat": 48.4784647, "lon": -81.3371996, "altitude_m": 814.28, "source": "sim"} +{"ts": "2025-08-20T02:37:52.823597+00:00", "lat": 48.4784906, "lon": -81.33715, "altitude_m": 821.94, "source": "sim"} +{"ts": "2025-08-20T02:37:52.923597+00:00", "lat": 48.4784972, "lon": -81.3371696, "altitude_m": 815.15, "source": "sim"} +{"ts": "2025-08-20T02:37:53.023597+00:00", "lat": 48.4785068, "lon": -81.3372301, "altitude_m": 814.97, "source": "sim"} +{"ts": "2025-08-20T02:37:53.173597+00:00", "lat": 48.4784704, "lon": -81.337175, "altitude_m": 814.94, "source": "sim"} +{"ts": "2025-08-20T02:37:53.273597+00:00", "lat": 48.4784701, "lon": -81.3371586, "altitude_m": 814.0, "source": "sim"} +{"ts": "2025-08-20T02:37:53.373597+00:00", "lat": 48.4784931, "lon": -81.337161, "altitude_m": 813.19, "source": "sim"} +{"ts": "2025-08-20T02:37:53.473597+00:00", "lat": 48.4784812, "lon": -81.337171, "altitude_m": 813.22, "source": "sim"} +{"ts": "2025-08-20T02:37:53.623597+00:00", "lat": 48.4785099, "lon": -81.3371959, "altitude_m": 814.68, "source": "sim"} +{"ts": "2025-08-20T02:37:53.723597+00:00", "lat": 48.4784681, "lon": -81.3371189, "altitude_m": 810.46, "source": "sim"} +{"ts": "2025-08-20T02:37:53.823597+00:00", "lat": 48.4784708, "lon": -81.3371808, "altitude_m": 804.11, "source": "sim"} +{"ts": "2025-08-20T02:37:53.973597+00:00", "lat": 48.4784704, "lon": -81.3371907, "altitude_m": 811.89, "source": "sim"} +{"ts": "2025-08-20T02:37:54.123597+00:00", "lat": 48.4784696, "lon": -81.3371882, "altitude_m": 807.12, "source": "sim"} +{"ts": "2025-08-20T02:37:54.223597+00:00", "lat": 48.4785014, "lon": -81.3371178, "altitude_m": 810.75, "source": "sim"} +{"ts": "2025-08-20T02:37:54.423597+00:00", "lat": 48.4784545, "lon": -81.3371692, "altitude_m": 803.12, "source": "sim"} +{"ts": "2025-08-20T02:37:54.573597+00:00", "lat": 48.4784652, "lon": -81.3371118, "altitude_m": 797.14, "source": "sim"} +{"ts": "2025-08-20T02:37:54.723597+00:00", "lat": 48.4784934, "lon": -81.3371608, "altitude_m": 794.99, "source": "sim"} +{"ts": "2025-08-20T02:37:54.823597+00:00", "lat": 48.4784565, "lon": -81.3371169, "altitude_m": 800.38, "source": "sim"} +{"ts": "2025-08-20T02:37:54.923597+00:00", "lat": 48.4784695, "lon": -81.3371462, "altitude_m": 796.69, "source": "sim"} +{"ts": "2025-08-20T02:37:55.023597+00:00", "lat": 48.4784585, "lon": -81.3371417, "altitude_m": 792.13, "source": "sim"} +{"ts": "2025-08-20T02:37:55.123597+00:00", "lat": 48.4784527, "lon": -81.3371597, "altitude_m": 797.08, "source": "sim"} +{"ts": "2025-08-20T02:37:55.273597+00:00", "lat": 48.4784643, "lon": -81.3371776, "altitude_m": 799.3, "source": "sim"} +{"ts": "2025-08-20T02:37:55.373597+00:00", "lat": 48.4784681, "lon": -81.3371528, "altitude_m": 794.28, "source": "sim"} +{"ts": "2025-08-20T02:37:55.523597+00:00", "lat": 48.4784671, "lon": -81.3371292, "altitude_m": 793.97, "source": "sim"} +{"ts": "2025-08-20T02:37:55.673597+00:00", "lat": 48.4784759, "lon": -81.3371498, "altitude_m": 789.07, "source": "sim"} +{"ts": "2025-08-20T02:37:55.773597+00:00", "lat": 48.4784638, "lon": -81.3371573, "altitude_m": 792.21, "source": "sim"} +{"ts": "2025-08-20T02:37:55.923597+00:00", "lat": 48.4784545, "lon": -81.3371548, "altitude_m": 791.09, "source": "sim"} +{"ts": "2025-08-20T02:37:56.023597+00:00", "lat": 48.4784823, "lon": -81.3371239, "altitude_m": 789.42, "source": "sim"} +{"ts": "2025-08-20T02:37:56.173597+00:00", "lat": 48.4784604, "lon": -81.3371731, "altitude_m": 786.01, "source": "sim"} +{"ts": "2025-08-20T02:37:56.273597+00:00", "lat": 48.4784687, "lon": -81.3371881, "altitude_m": 792.34, "source": "sim"} +{"ts": "2025-08-20T02:37:56.423597+00:00", "lat": 48.4784261, "lon": -81.3371176, "altitude_m": 792.91, "source": "sim"} +{"ts": "2025-08-20T02:37:56.523597+00:00", "lat": 48.4784274, "lon": -81.3371649, "altitude_m": 786.84, "source": "sim"} +{"ts": "2025-08-20T02:37:56.623597+00:00", "lat": 48.4784636, "lon": -81.33715, "altitude_m": 787.35, "source": "sim"} +{"ts": "2025-08-20T02:37:56.723597+00:00", "lat": 48.4784388, "lon": -81.3371471, "altitude_m": 787.16, "source": "sim"} +{"ts": "2025-08-20T02:37:56.923597+00:00", "lat": 48.4784356, "lon": -81.3371786, "altitude_m": 785.53, "source": "sim"} +{"ts": "2025-08-20T02:37:57.073597+00:00", "lat": 48.4784543, "lon": -81.3370963, "altitude_m": 781.72, "source": "sim"} +{"ts": "2025-08-20T02:37:57.173597+00:00", "lat": 48.4784384, "lon": -81.3371503, "altitude_m": 788.71, "source": "sim"} +{"ts": "2025-08-20T02:37:57.273597+00:00", "lat": 48.4784267, "lon": -81.337149, "altitude_m": 779.82, "source": "sim"} +{"ts": "2025-08-20T02:37:57.373597+00:00", "lat": 48.4784686, "lon": -81.3371202, "altitude_m": 785.12, "source": "sim"} +{"ts": "2025-08-20T02:37:57.523597+00:00", "lat": 48.4784273, "lon": -81.3371743, "altitude_m": 776.89, "source": "sim"} +{"ts": "2025-08-20T02:37:57.623597+00:00", "lat": 48.4784486, "lon": -81.3371622, "altitude_m": 782.67, "source": "sim"} +{"ts": "2025-08-20T02:37:57.773597+00:00", "lat": 48.4784168, "lon": -81.3370984, "altitude_m": 776.59, "source": "sim"} +{"ts": "2025-08-20T02:37:57.873597+00:00", "lat": 48.4784266, "lon": -81.3371512, "altitude_m": 774.57, "source": "sim"} +{"ts": "2025-08-20T02:37:58.023597+00:00", "lat": 48.478447, "lon": -81.3371331, "altitude_m": 774.81, "source": "sim"} +{"ts": "2025-08-20T02:37:58.173597+00:00", "lat": 48.4784224, "lon": -81.3371353, "altitude_m": 774.95, "source": "sim"} +{"ts": "2025-08-20T02:37:58.323597+00:00", "lat": 48.4784335, "lon": -81.3371279, "altitude_m": 771.59, "source": "sim"} +{"ts": "2025-08-20T02:37:58.423597+00:00", "lat": 48.4784568, "lon": -81.3371339, "altitude_m": 779.11, "source": "sim"} +{"ts": "2025-08-20T02:37:58.523597+00:00", "lat": 48.4784495, "lon": -81.3371518, "altitude_m": 772.83, "source": "sim"} +{"ts": "2025-08-20T02:37:58.673597+00:00", "lat": 48.4784218, "lon": -81.3371478, "altitude_m": 769.72, "source": "sim"} +{"ts": "2025-08-20T02:37:58.773597+00:00", "lat": 48.4784276, "lon": -81.3371556, "altitude_m": 769.9, "source": "sim"} +{"ts": "2025-08-20T02:37:58.873597+00:00", "lat": 48.4784096, "lon": -81.3371415, "altitude_m": 767.71, "source": "sim"} +{"ts": "2025-08-20T02:37:58.973597+00:00", "lat": 48.4784255, "lon": -81.3371556, "altitude_m": 769.01, "source": "sim"} +{"ts": "2025-08-20T02:37:59.073597+00:00", "lat": 48.4784238, "lon": -81.3371332, "altitude_m": 770.57, "source": "sim"} +{"ts": "2025-08-20T02:37:59.173597+00:00", "lat": 48.4784222, "lon": -81.3370885, "altitude_m": 762.26, "source": "sim"} +{"ts": "2025-08-20T02:37:59.323597+00:00", "lat": 48.4784042, "lon": -81.3371137, "altitude_m": 766.96, "source": "sim"} +{"ts": "2025-08-20T02:37:59.473597+00:00", "lat": 48.4784251, "lon": -81.3371054, "altitude_m": 765.07, "source": "sim"} +{"ts": "2025-08-20T02:37:59.623597+00:00", "lat": 48.4783983, "lon": -81.3370815, "altitude_m": 759.81, "source": "sim"} +{"ts": "2025-08-20T02:37:59.723597+00:00", "lat": 48.4784045, "lon": -81.3371233, "altitude_m": 761.9, "source": "sim"} +{"ts": "2025-08-20T02:37:59.873597+00:00", "lat": 48.4784367, "lon": -81.337148, "altitude_m": 750.04, "source": "sim"} +{"ts": "2025-08-20T02:38:00.023597+00:00", "lat": 48.4783984, "lon": -81.3370941, "altitude_m": 761.06, "source": "sim"} +{"ts": "2025-08-20T02:38:00.123597+00:00", "lat": 48.4784078, "lon": -81.3371077, "altitude_m": 751.97, "source": "sim"} +{"ts": "2025-08-20T02:38:00.223597+00:00", "lat": 48.4784462, "lon": -81.3371492, "altitude_m": 760.09, "source": "sim"} +{"ts": "2025-08-20T02:38:00.373597+00:00", "lat": 48.4784049, "lon": -81.3371107, "altitude_m": 756.07, "source": "sim"} +{"ts": "2025-08-20T02:38:00.473597+00:00", "lat": 48.4784332, "lon": -81.3371344, "altitude_m": 757.64, "source": "sim"} +{"ts": "2025-08-20T02:38:00.623597+00:00", "lat": 48.4784178, "lon": -81.3371114, "altitude_m": 753.14, "source": "sim"} +{"ts": "2025-08-20T02:38:00.723597+00:00", "lat": 48.4784147, "lon": -81.3371163, "altitude_m": 754.77, "source": "sim"} +{"ts": "2025-08-20T02:38:00.873597+00:00", "lat": 48.4784041, "lon": -81.3371044, "altitude_m": 753.29, "source": "sim"} +{"ts": "2025-08-20T02:38:01.023597+00:00", "lat": 48.478415, "lon": -81.3371039, "altitude_m": 755.38, "source": "sim"} +{"ts": "2025-08-20T02:38:01.123597+00:00", "lat": 48.4783987, "lon": -81.3371044, "altitude_m": 751.22, "source": "sim"} +{"ts": "2025-08-20T02:38:01.223597+00:00", "lat": 48.4783854, "lon": -81.3371077, "altitude_m": 754.21, "source": "sim"} +{"ts": "2025-08-20T02:38:01.373597+00:00", "lat": 48.4784013, "lon": -81.3371262, "altitude_m": 746.93, "source": "sim"} +{"ts": "2025-08-20T02:38:01.473597+00:00", "lat": 48.4784169, "lon": -81.3371081, "altitude_m": 747.84, "source": "sim"} +{"ts": "2025-08-20T02:38:01.623597+00:00", "lat": 48.4783634, "lon": -81.3371358, "altitude_m": 744.27, "source": "sim"} +{"ts": "2025-08-20T02:38:01.723597+00:00", "lat": 48.4783681, "lon": -81.3371102, "altitude_m": 741.87, "source": "sim"} +{"ts": "2025-08-20T02:38:01.823597+00:00", "lat": 48.4784002, "lon": -81.3370975, "altitude_m": 745.69, "source": "sim"} +{"ts": "2025-08-20T02:38:01.923597+00:00", "lat": 48.4784115, "lon": -81.3371065, "altitude_m": 749.71, "source": "sim"} +{"ts": "2025-08-20T02:38:02.023597+00:00", "lat": 48.478404, "lon": -81.3371035, "altitude_m": 739.63, "source": "sim"} +{"ts": "2025-08-20T02:38:02.123597+00:00", "lat": 48.4783825, "lon": -81.3370753, "altitude_m": 746.31, "source": "sim"} +{"ts": "2025-08-20T02:38:02.273597+00:00", "lat": 48.4783775, "lon": -81.3371092, "altitude_m": 738.73, "source": "sim"} +{"ts": "2025-08-20T02:38:02.423597+00:00", "lat": 48.4783789, "lon": -81.3370938, "altitude_m": 743.29, "source": "sim"} +{"ts": "2025-08-20T02:38:02.573597+00:00", "lat": 48.4783762, "lon": -81.3371015, "altitude_m": 736.65, "source": "sim"} +{"ts": "2025-08-20T02:38:02.673597+00:00", "lat": 48.4783805, "lon": -81.3370783, "altitude_m": 735.61, "source": "sim"} +{"ts": "2025-08-20T02:38:02.823597+00:00", "lat": 48.4783958, "lon": -81.3370543, "altitude_m": 738.5, "source": "sim"} +{"ts": "2025-08-20T02:38:02.973597+00:00", "lat": 48.4783956, "lon": -81.3370964, "altitude_m": 734.94, "source": "sim"} +{"ts": "2025-08-20T02:38:03.073597+00:00", "lat": 48.478365, "lon": -81.337103, "altitude_m": 731.64, "source": "sim"} +{"ts": "2025-08-20T02:38:03.223597+00:00", "lat": 48.4783761, "lon": -81.3370963, "altitude_m": 732.38, "source": "sim"} +{"ts": "2025-08-20T02:38:03.373597+00:00", "lat": 48.4783648, "lon": -81.3371145, "altitude_m": 736.29, "source": "sim"} +{"ts": "2025-08-20T02:38:03.473597+00:00", "lat": 48.4783928, "lon": -81.3371155, "altitude_m": 731.04, "source": "sim"} +{"ts": "2025-08-20T02:38:03.573597+00:00", "lat": 48.4783959, "lon": -81.3370838, "altitude_m": 733.22, "source": "sim"} +{"ts": "2025-08-20T02:38:03.723597+00:00", "lat": 48.4783855, "lon": -81.3370517, "altitude_m": 724.48, "source": "sim"} +{"ts": "2025-08-20T02:38:03.823597+00:00", "lat": 48.4783777, "lon": -81.3370972, "altitude_m": 726.94, "source": "sim"} +{"ts": "2025-08-20T02:38:03.923597+00:00", "lat": 48.4783867, "lon": -81.3370964, "altitude_m": 727.74, "source": "sim"} +{"ts": "2025-08-20T02:38:04.073597+00:00", "lat": 48.4783606, "lon": -81.3370973, "altitude_m": 726.73, "source": "sim"} +{"ts": "2025-08-20T02:38:04.173597+00:00", "lat": 48.478374, "lon": -81.3370908, "altitude_m": 725.16, "source": "sim"} +{"ts": "2025-08-20T02:38:04.323597+00:00", "lat": 48.4783518, "lon": -81.337084, "altitude_m": 722.4, "source": "sim"} +{"ts": "2025-08-20T02:38:04.423597+00:00", "lat": 48.4783752, "lon": -81.3370875, "altitude_m": 720.07, "source": "sim"} +{"ts": "2025-08-20T02:38:04.523597+00:00", "lat": 48.4783719, "lon": -81.3370884, "altitude_m": 725.73, "source": "sim"} +{"ts": "2025-08-20T02:38:04.673597+00:00", "lat": 48.4783749, "lon": -81.3370967, "altitude_m": 725.82, "source": "sim"} +{"ts": "2025-08-20T02:38:04.773597+00:00", "lat": 48.4783631, "lon": -81.3371093, "altitude_m": 717.34, "source": "sim"} +{"ts": "2025-08-20T02:38:04.873597+00:00", "lat": 48.4783697, "lon": -81.3371034, "altitude_m": 725.85, "source": "sim"} +{"ts": "2025-08-20T02:38:05.023597+00:00", "lat": 48.4783613, "lon": -81.3370675, "altitude_m": 719.89, "source": "sim"} +{"ts": "2025-08-20T02:38:05.173597+00:00", "lat": 48.478348, "lon": -81.3370734, "altitude_m": 715.49, "source": "sim"} +{"ts": "2025-08-20T02:38:05.273597+00:00", "lat": 48.4783594, "lon": -81.3370679, "altitude_m": 714.48, "source": "sim"} +{"ts": "2025-08-20T02:38:05.373597+00:00", "lat": 48.4783462, "lon": -81.3370547, "altitude_m": 717.11, "source": "sim"} +{"ts": "2025-08-20T02:38:05.473597+00:00", "lat": 48.4783525, "lon": -81.3370938, "altitude_m": 717.78, "source": "sim"} +{"ts": "2025-08-20T02:38:05.623597+00:00", "lat": 48.4783299, "lon": -81.337067, "altitude_m": 716.2, "source": "sim"} +{"ts": "2025-08-20T02:38:05.773597+00:00", "lat": 48.4783621, "lon": -81.3370714, "altitude_m": 710.99, "source": "sim"} +{"ts": "2025-08-20T02:38:05.923597+00:00", "lat": 48.4783242, "lon": -81.337059, "altitude_m": 713.44, "source": "sim"} +{"ts": "2025-08-20T02:38:06.023597+00:00", "lat": 48.4783568, "lon": -81.3371126, "altitude_m": 714.37, "source": "sim"} +{"ts": "2025-08-20T02:38:06.173597+00:00", "lat": 48.4783448, "lon": -81.3370725, "altitude_m": 707.89, "source": "sim"} +{"ts": "2025-08-20T02:38:06.273597+00:00", "lat": 48.4783403, "lon": -81.3370579, "altitude_m": 707.93, "source": "sim"} +{"ts": "2025-08-20T02:38:06.373597+00:00", "lat": 48.4783544, "lon": -81.3370376, "altitude_m": 707.71, "source": "sim"} +{"ts": "2025-08-20T02:38:06.523597+00:00", "lat": 48.478349, "lon": -81.3370789, "altitude_m": 709.16, "source": "sim"} +{"ts": "2025-08-20T02:38:06.623597+00:00", "lat": 48.4783797, "lon": -81.3370819, "altitude_m": 707.55, "source": "sim"} +{"ts": "2025-08-20T02:38:06.773597+00:00", "lat": 48.478359, "lon": -81.3370873, "altitude_m": 702.06, "source": "sim"} +{"ts": "2025-08-20T02:38:06.923597+00:00", "lat": 48.4783437, "lon": -81.3370859, "altitude_m": 704.53, "source": "sim"} +{"ts": "2025-08-20T02:38:07.023597+00:00", "lat": 48.4783351, "lon": -81.3370932, "altitude_m": 704.3, "source": "sim"} +{"ts": "2025-08-20T02:38:07.123597+00:00", "lat": 48.4783593, "lon": -81.3370481, "altitude_m": 705.02, "source": "sim"} +{"ts": "2025-08-20T02:38:07.223597+00:00", "lat": 48.4783547, "lon": -81.3370501, "altitude_m": 701.11, "source": "sim"} +{"ts": "2025-08-20T02:38:07.323597+00:00", "lat": 48.4783323, "lon": -81.337036, "altitude_m": 697.85, "source": "sim"} +{"ts": "2025-08-20T02:38:07.423597+00:00", "lat": 48.4783584, "lon": -81.3370629, "altitude_m": 702.12, "source": "sim"} +{"ts": "2025-08-20T02:38:07.523597+00:00", "lat": 48.4783346, "lon": -81.3370562, "altitude_m": 695.6, "source": "sim"} +{"ts": "2025-08-20T02:38:07.623597+00:00", "lat": 48.4783161, "lon": -81.337055, "altitude_m": 701.57, "source": "sim"} +{"ts": "2025-08-20T02:38:07.773597+00:00", "lat": 48.4783319, "lon": -81.3370468, "altitude_m": 698.73, "source": "sim"} +{"ts": "2025-08-20T02:38:07.873597+00:00", "lat": 48.4783032, "lon": -81.3370665, "altitude_m": 692.31, "source": "sim"} +{"ts": "2025-08-20T02:38:07.973597+00:00", "lat": 48.4783388, "lon": -81.3370917, "altitude_m": 701.41, "source": "sim"} +{"ts": "2025-08-20T02:38:08.073597+00:00", "lat": 48.478286, "lon": -81.3370524, "altitude_m": 698.32, "source": "sim"} +{"ts": "2025-08-20T02:38:08.173597+00:00", "lat": 48.4783341, "lon": -81.3370689, "altitude_m": 697.12, "source": "sim"} +{"ts": "2025-08-20T02:38:08.323597+00:00", "lat": 48.4783469, "lon": -81.3370202, "altitude_m": 695.31, "source": "sim"} +{"ts": "2025-08-20T02:38:08.473597+00:00", "lat": 48.4783226, "lon": -81.3370464, "altitude_m": 689.52, "source": "sim"} +{"ts": "2025-08-20T02:38:08.623597+00:00", "lat": 48.4783243, "lon": -81.3370542, "altitude_m": 686.97, "source": "sim"} +{"ts": "2025-08-20T02:38:08.773597+00:00", "lat": 48.4783347, "lon": -81.3370475, "altitude_m": 686.72, "source": "sim"} +{"ts": "2025-08-20T02:38:08.873597+00:00", "lat": 48.4783207, "lon": -81.3370607, "altitude_m": 687.57, "source": "sim"} +{"ts": "2025-08-20T02:38:08.973597+00:00", "lat": 48.4783068, "lon": -81.3371031, "altitude_m": 685.77, "source": "sim"} +{"ts": "2025-08-20T02:38:09.073597+00:00", "lat": 48.4783169, "lon": -81.3370634, "altitude_m": 690.73, "source": "sim"} +{"ts": "2025-08-20T02:38:09.173597+00:00", "lat": 48.4783242, "lon": -81.3370512, "altitude_m": 681.24, "source": "sim"} +{"ts": "2025-08-20T02:38:09.323597+00:00", "lat": 48.4782867, "lon": -81.3370586, "altitude_m": 684.82, "source": "sim"} +{"ts": "2025-08-20T02:38:09.423597+00:00", "lat": 48.4783329, "lon": -81.3370684, "altitude_m": 685.09, "source": "sim"} +{"ts": "2025-08-20T02:38:09.573597+00:00", "lat": 48.4783064, "lon": -81.3370461, "altitude_m": 679.98, "source": "sim"} +{"ts": "2025-08-20T02:38:09.723597+00:00", "lat": 48.4783244, "lon": -81.3370499, "altitude_m": 680.11, "source": "sim"} +{"ts": "2025-08-20T02:38:09.873597+00:00", "lat": 48.4783158, "lon": -81.3370576, "altitude_m": 682.21, "source": "sim"} +{"ts": "2025-08-20T02:38:09.973597+00:00", "lat": 48.4783042, "lon": -81.3370334, "altitude_m": 681.47, "source": "sim"} +{"ts": "2025-08-20T02:38:10.073597+00:00", "lat": 48.4783043, "lon": -81.3370444, "altitude_m": 675.62, "source": "sim"} +{"ts": "2025-08-20T02:38:10.273597+00:00", "lat": 48.4782863, "lon": -81.337035, "altitude_m": 676.62, "source": "sim"} +{"ts": "2025-08-20T02:38:10.373597+00:00", "lat": 48.4782965, "lon": -81.3370965, "altitude_m": 672.56, "source": "sim"} +{"ts": "2025-08-20T02:38:10.523597+00:00", "lat": 48.4782976, "lon": -81.3370331, "altitude_m": 670.33, "source": "sim"} +{"ts": "2025-08-20T02:38:10.623597+00:00", "lat": 48.478303, "lon": -81.337022, "altitude_m": 672.22, "source": "sim"} +{"ts": "2025-08-20T02:38:10.723597+00:00", "lat": 48.4783206, "lon": -81.3370434, "altitude_m": 673.58, "source": "sim"} +{"ts": "2025-08-20T02:38:10.823597+00:00", "lat": 48.478328, "lon": -81.3370592, "altitude_m": 674.17, "source": "sim"} +{"ts": "2025-08-20T02:38:10.923597+00:00", "lat": 48.4782942, "lon": -81.3370533, "altitude_m": 672.75, "source": "sim"} +{"ts": "2025-08-20T02:38:11.073597+00:00", "lat": 48.4782751, "lon": -81.3370252, "altitude_m": 671.74, "source": "sim"} +{"ts": "2025-08-20T02:38:11.173597+00:00", "lat": 48.4782921, "lon": -81.337036, "altitude_m": 672.61, "source": "sim"} +{"ts": "2025-08-20T02:38:11.273597+00:00", "lat": 48.478287, "lon": -81.3370549, "altitude_m": 670.9, "source": "sim"} +{"ts": "2025-08-20T02:38:11.423597+00:00", "lat": 48.4782969, "lon": -81.3370113, "altitude_m": 667.62, "source": "sim"} +{"ts": "2025-08-20T02:38:11.573597+00:00", "lat": 48.4782724, "lon": -81.3370328, "altitude_m": 663.43, "source": "sim"} +{"ts": "2025-08-20T02:38:11.723597+00:00", "lat": 48.4783128, "lon": -81.3370231, "altitude_m": 664.0, "source": "sim"} +{"ts": "2025-08-20T02:38:11.823597+00:00", "lat": 48.478282, "lon": -81.3370269, "altitude_m": 663.36, "source": "sim"} +{"ts": "2025-08-20T02:38:11.973597+00:00", "lat": 48.4782638, "lon": -81.3370001, "altitude_m": 669.96, "source": "sim"} +{"ts": "2025-08-20T02:38:12.123597+00:00", "lat": 48.4783025, "lon": -81.3370212, "altitude_m": 658.36, "source": "sim"} +{"ts": "2025-08-20T02:38:12.223597+00:00", "lat": 48.478268, "lon": -81.3370252, "altitude_m": 661.07, "source": "sim"} +{"ts": "2025-08-20T02:38:12.323597+00:00", "lat": 48.4782725, "lon": -81.3370438, "altitude_m": 661.37, "source": "sim"} +{"ts": "2025-08-20T02:38:12.473597+00:00", "lat": 48.4782671, "lon": -81.3369877, "altitude_m": 658.67, "source": "sim"} +{"ts": "2025-08-20T02:38:12.573597+00:00", "lat": 48.4782805, "lon": -81.33701, "altitude_m": 665.97, "source": "sim"} +{"ts": "2025-08-20T02:38:12.673597+00:00", "lat": 48.4782772, "lon": -81.3370041, "altitude_m": 652.87, "source": "sim"} +{"ts": "2025-08-20T02:38:12.773597+00:00", "lat": 48.4782836, "lon": -81.3370018, "altitude_m": 661.13, "source": "sim"} +{"ts": "2025-08-20T02:38:12.873597+00:00", "lat": 48.4782822, "lon": -81.3370237, "altitude_m": 654.8, "source": "sim"} +{"ts": "2025-08-20T02:38:12.973597+00:00", "lat": 48.478272, "lon": -81.3370268, "altitude_m": 651.93, "source": "sim"} +{"ts": "2025-08-20T02:38:13.123597+00:00", "lat": 48.4782776, "lon": -81.3369843, "altitude_m": 654.76, "source": "sim"} +{"ts": "2025-08-20T02:38:13.273597+00:00", "lat": 48.4782688, "lon": -81.3370538, "altitude_m": 651.31, "source": "sim"} +{"ts": "2025-08-20T02:38:13.423597+00:00", "lat": 48.4782678, "lon": -81.3370243, "altitude_m": 648.58, "source": "sim"} +{"ts": "2025-08-20T02:38:13.573597+00:00", "lat": 48.4782554, "lon": -81.3370064, "altitude_m": 645.53, "source": "sim"} +{"ts": "2025-08-20T02:38:13.723597+00:00", "lat": 48.4782436, "lon": -81.3370156, "altitude_m": 646.74, "source": "sim"} +{"ts": "2025-08-20T02:38:13.873597+00:00", "lat": 48.4782529, "lon": -81.3370202, "altitude_m": 646.6, "source": "sim"} +{"ts": "2025-08-20T02:38:13.973597+00:00", "lat": 48.478291, "lon": -81.336985, "altitude_m": 647.35, "source": "sim"} +{"ts": "2025-08-20T02:38:14.073597+00:00", "lat": 48.4782778, "lon": -81.3370164, "altitude_m": 646.84, "source": "sim"} +{"ts": "2025-08-20T02:38:14.273597+00:00", "lat": 48.4782597, "lon": -81.3370178, "altitude_m": 642.86, "source": "sim"} +{"ts": "2025-08-20T02:38:14.423597+00:00", "lat": 48.4782544, "lon": -81.3370044, "altitude_m": 644.69, "source": "sim"} +{"ts": "2025-08-20T02:38:14.573597+00:00", "lat": 48.4782628, "lon": -81.3370096, "altitude_m": 647.25, "source": "sim"} +{"ts": "2025-08-20T02:38:14.723597+00:00", "lat": 48.4782393, "lon": -81.3369859, "altitude_m": 638.74, "source": "sim"} +{"ts": "2025-08-20T02:38:14.823597+00:00", "lat": 48.4782648, "lon": -81.3370155, "altitude_m": 640.2, "source": "sim"} +{"ts": "2025-08-20T02:38:14.923597+00:00", "lat": 48.4782665, "lon": -81.3369568, "altitude_m": 636.19, "source": "sim"} +{"ts": "2025-08-20T02:38:15.023597+00:00", "lat": 48.4782507, "lon": -81.3370126, "altitude_m": 639.73, "source": "sim"} +{"ts": "2025-08-20T02:38:15.173597+00:00", "lat": 48.4782846, "lon": -81.3369733, "altitude_m": 643.34, "source": "sim"} +{"ts": "2025-08-20T02:38:15.323597+00:00", "lat": 48.4782502, "lon": -81.3369684, "altitude_m": 633.82, "source": "sim"} +{"ts": "2025-08-20T02:38:15.423597+00:00", "lat": 48.478265, "lon": -81.3369989, "altitude_m": 629.27, "source": "sim"} +{"ts": "2025-08-20T02:38:15.523597+00:00", "lat": 48.4782335, "lon": -81.3370539, "altitude_m": 631.6, "source": "sim"} +{"ts": "2025-08-20T02:38:15.623597+00:00", "lat": 48.4782667, "lon": -81.3370001, "altitude_m": 635.82, "source": "sim"} +{"ts": "2025-08-20T02:38:15.723597+00:00", "lat": 48.478244, "lon": -81.3369851, "altitude_m": 637.95, "source": "sim"} +{"ts": "2025-08-20T02:38:15.823597+00:00", "lat": 48.4782571, "lon": -81.3369687, "altitude_m": 633.17, "source": "sim"} +{"ts": "2025-08-20T02:38:15.923597+00:00", "lat": 48.4782441, "lon": -81.3369921, "altitude_m": 631.04, "source": "sim"} +{"ts": "2025-08-20T02:38:16.073597+00:00", "lat": 48.4782378, "lon": -81.3370135, "altitude_m": 631.58, "source": "sim"} +{"ts": "2025-08-20T02:38:16.173597+00:00", "lat": 48.4782341, "lon": -81.3369716, "altitude_m": 626.98, "source": "sim"} +{"ts": "2025-08-20T02:38:16.273597+00:00", "lat": 48.4782182, "lon": -81.3370157, "altitude_m": 627.34, "source": "sim"} +{"ts": "2025-08-20T02:38:16.373597+00:00", "lat": 48.4782427, "lon": -81.3370125, "altitude_m": 629.87, "source": "sim"} +{"ts": "2025-08-20T02:38:16.473597+00:00", "lat": 48.4782361, "lon": -81.3369901, "altitude_m": 630.67, "source": "sim"} +{"ts": "2025-08-20T02:38:16.573597+00:00", "lat": 48.4782277, "lon": -81.3369849, "altitude_m": 628.95, "source": "sim"} +{"ts": "2025-08-20T02:38:16.723597+00:00", "lat": 48.4782065, "lon": -81.3369966, "altitude_m": 623.39, "source": "sim"} +{"ts": "2025-08-20T02:38:16.823597+00:00", "lat": 48.4782198, "lon": -81.337006, "altitude_m": 628.19, "source": "sim"} +{"ts": "2025-08-20T02:38:16.923597+00:00", "lat": 48.4782507, "lon": -81.3369743, "altitude_m": 625.21, "source": "sim"} +{"ts": "2025-08-20T02:38:17.073597+00:00", "lat": 48.4782448, "lon": -81.3370174, "altitude_m": 625.74, "source": "sim"} +{"ts": "2025-08-20T02:38:17.173597+00:00", "lat": 48.4782367, "lon": -81.3370094, "altitude_m": 624.7, "source": "sim"} +{"ts": "2025-08-20T02:38:17.323597+00:00", "lat": 48.4782169, "lon": -81.3369652, "altitude_m": 623.69, "source": "sim"} +{"ts": "2025-08-20T02:38:17.473597+00:00", "lat": 48.4782386, "lon": -81.3370158, "altitude_m": 620.21, "source": "sim"} +{"ts": "2025-08-20T02:38:17.623597+00:00", "lat": 48.4782252, "lon": -81.3369813, "altitude_m": 620.19, "source": "sim"} +{"ts": "2025-08-20T02:38:17.723597+00:00", "lat": 48.4782323, "lon": -81.3369998, "altitude_m": 620.51, "source": "sim"} +{"ts": "2025-08-20T02:38:17.873597+00:00", "lat": 48.478194, "lon": -81.3369595, "altitude_m": 620.56, "source": "sim"} +{"ts": "2025-08-20T02:38:17.973597+00:00", "lat": 48.4782189, "lon": -81.3369875, "altitude_m": 616.23, "source": "sim"} +{"ts": "2025-08-20T02:38:18.123597+00:00", "lat": 48.4782251, "lon": -81.3369457, "altitude_m": 606.81, "source": "sim"} +{"ts": "2025-08-20T02:38:18.223597+00:00", "lat": 48.4782141, "lon": -81.3369549, "altitude_m": 610.89, "source": "sim"} +{"ts": "2025-08-20T02:38:18.373597+00:00", "lat": 48.478221, "lon": -81.3369732, "altitude_m": 608.35, "source": "sim"} +{"ts": "2025-08-20T02:38:18.473597+00:00", "lat": 48.4782169, "lon": -81.3370132, "altitude_m": 613.03, "source": "sim"} +{"ts": "2025-08-20T02:38:18.573597+00:00", "lat": 48.4782323, "lon": -81.3369401, "altitude_m": 613.2, "source": "sim"} +{"ts": "2025-08-20T02:38:18.673597+00:00", "lat": 48.4782114, "lon": -81.3369744, "altitude_m": 615.74, "source": "sim"} +{"ts": "2025-08-20T02:38:18.773597+00:00", "lat": 48.4782139, "lon": -81.3369825, "altitude_m": 604.0, "source": "sim"} +{"ts": "2025-08-20T02:38:18.923597+00:00", "lat": 48.4781935, "lon": -81.3370035, "altitude_m": 605.22, "source": "sim"} +{"ts": "2025-08-20T02:38:19.023597+00:00", "lat": 48.4782162, "lon": -81.3369965, "altitude_m": 612.74, "source": "sim"} +{"ts": "2025-08-20T02:38:19.123597+00:00", "lat": 48.4782128, "lon": -81.3369668, "altitude_m": 603.23, "source": "sim"} +{"ts": "2025-08-20T02:38:19.273597+00:00", "lat": 48.4782067, "lon": -81.3369861, "altitude_m": 607.82, "source": "sim"} +{"ts": "2025-08-20T02:38:19.373597+00:00", "lat": 48.4781912, "lon": -81.336948, "altitude_m": 602.76, "source": "sim"} +{"ts": "2025-08-20T02:38:19.473597+00:00", "lat": 48.4782244, "lon": -81.3369519, "altitude_m": 604.59, "source": "sim"} +{"ts": "2025-08-20T02:38:19.573597+00:00", "lat": 48.4781895, "lon": -81.3369923, "altitude_m": 601.96, "source": "sim"} +{"ts": "2025-08-20T02:38:19.673597+00:00", "lat": 48.4782035, "lon": -81.3369961, "altitude_m": 604.99, "source": "sim"} +{"ts": "2025-08-20T02:38:19.773597+00:00", "lat": 48.4781965, "lon": -81.3369476, "altitude_m": 597.27, "source": "sim"} +{"ts": "2025-08-20T02:38:19.873597+00:00", "lat": 48.4781985, "lon": -81.3369629, "altitude_m": 606.11, "source": "sim"} +{"ts": "2025-08-20T02:38:19.973597+00:00", "lat": 48.4781907, "lon": -81.3369564, "altitude_m": 601.05, "source": "sim"} +{"ts": "2025-08-20T02:38:20.073597+00:00", "lat": 48.4781865, "lon": -81.3369476, "altitude_m": 599.5, "source": "sim"} +{"ts": "2025-08-20T02:38:20.173597+00:00", "lat": 48.4781946, "lon": -81.336965, "altitude_m": 597.24, "source": "sim"} +{"ts": "2025-08-20T02:38:20.323597+00:00", "lat": 48.4781965, "lon": -81.3369504, "altitude_m": 600.87, "source": "sim"} +{"ts": "2025-08-20T02:38:20.423597+00:00", "lat": 48.4781807, "lon": -81.3369848, "altitude_m": 600.9, "source": "sim"} +{"ts": "2025-08-20T02:38:20.523597+00:00", "lat": 48.4781833, "lon": -81.3369785, "altitude_m": 596.34, "source": "sim"} +{"ts": "2025-08-20T02:38:20.673597+00:00", "lat": 48.4782343, "lon": -81.3369703, "altitude_m": 594.95, "source": "sim"} +{"ts": "2025-08-20T02:38:20.773597+00:00", "lat": 48.4781938, "lon": -81.3369597, "altitude_m": 599.64, "source": "sim"} +{"ts": "2025-08-20T02:38:20.873597+00:00", "lat": 48.478188, "lon": -81.3369725, "altitude_m": 593.82, "source": "sim"} +{"ts": "2025-08-20T02:38:21.023597+00:00", "lat": 48.4781986, "lon": -81.3369344, "altitude_m": 589.96, "source": "sim"} +{"ts": "2025-08-20T02:38:21.173597+00:00", "lat": 48.4782052, "lon": -81.3369386, "altitude_m": 589.23, "source": "sim"} +{"ts": "2025-08-20T02:38:21.323597+00:00", "lat": 48.4781944, "lon": -81.3369854, "altitude_m": 588.14, "source": "sim"} +{"ts": "2025-08-20T02:38:21.423597+00:00", "lat": 48.4781818, "lon": -81.3369627, "altitude_m": 592.23, "source": "sim"} +{"ts": "2025-08-20T02:38:21.523597+00:00", "lat": 48.4781801, "lon": -81.3369497, "altitude_m": 584.59, "source": "sim"} +{"ts": "2025-08-20T02:38:21.673597+00:00", "lat": 48.4781739, "lon": -81.3369864, "altitude_m": 585.35, "source": "sim"} +{"ts": "2025-08-20T02:38:21.823597+00:00", "lat": 48.4781712, "lon": -81.3369716, "altitude_m": 588.08, "source": "sim"} +{"ts": "2025-08-20T02:38:21.923597+00:00", "lat": 48.4781856, "lon": -81.3369571, "altitude_m": 585.71, "source": "sim"} +{"ts": "2025-08-20T02:38:22.073597+00:00", "lat": 48.478176, "lon": -81.3369295, "altitude_m": 580.04, "source": "sim"} +{"ts": "2025-08-20T02:38:22.173597+00:00", "lat": 48.4781904, "lon": -81.3369589, "altitude_m": 576.15, "source": "sim"} +{"ts": "2025-08-20T02:38:22.273597+00:00", "lat": 48.4781726, "lon": -81.3369317, "altitude_m": 581.07, "source": "sim"} +{"ts": "2025-08-20T02:38:22.373597+00:00", "lat": 48.4781951, "lon": -81.3369618, "altitude_m": 584.86, "source": "sim"} +{"ts": "2025-08-20T02:38:22.473597+00:00", "lat": 48.478186, "lon": -81.3369545, "altitude_m": 573.82, "source": "sim"} +{"ts": "2025-08-20T02:38:22.623597+00:00", "lat": 48.4781643, "lon": -81.3369397, "altitude_m": 583.51, "source": "sim"} +{"ts": "2025-08-20T02:38:22.773597+00:00", "lat": 48.4781926, "lon": -81.3369133, "altitude_m": 581.17, "source": "sim"} +{"ts": "2025-08-20T02:38:22.973597+00:00", "lat": 48.4781531, "lon": -81.3369087, "altitude_m": 580.14, "source": "sim"} +{"ts": "2025-08-20T02:38:23.123597+00:00", "lat": 48.4781667, "lon": -81.3369404, "altitude_m": 574.44, "source": "sim"} +{"ts": "2025-08-20T02:38:23.273597+00:00", "lat": 48.4781418, "lon": -81.3369459, "altitude_m": 577.58, "source": "sim"} +{"ts": "2025-08-20T02:38:23.373597+00:00", "lat": 48.4781581, "lon": -81.3369199, "altitude_m": 575.87, "source": "sim"} +{"ts": "2025-08-20T02:38:23.523597+00:00", "lat": 48.478167, "lon": -81.3369435, "altitude_m": 573.0, "source": "sim"} +{"ts": "2025-08-20T02:38:23.673597+00:00", "lat": 48.4781505, "lon": -81.3369213, "altitude_m": 570.98, "source": "sim"} +{"ts": "2025-08-20T02:38:23.823597+00:00", "lat": 48.4781502, "lon": -81.3369226, "altitude_m": 567.93, "source": "sim"} +{"ts": "2025-08-20T02:38:23.923597+00:00", "lat": 48.4781364, "lon": -81.33694, "altitude_m": 569.51, "source": "sim"} +{"ts": "2025-08-20T02:38:24.023597+00:00", "lat": 48.478126, "lon": -81.3369322, "altitude_m": 566.4, "source": "sim"} +{"ts": "2025-08-20T02:38:24.173597+00:00", "lat": 48.47815, "lon": -81.3369258, "altitude_m": 564.29, "source": "sim"} +{"ts": "2025-08-20T02:38:24.323597+00:00", "lat": 48.4781571, "lon": -81.3369615, "altitude_m": 566.65, "source": "sim"} +{"ts": "2025-08-20T02:38:24.473597+00:00", "lat": 48.4781618, "lon": -81.3369475, "altitude_m": 570.27, "source": "sim"} +{"ts": "2025-08-20T02:38:24.623597+00:00", "lat": 48.4781572, "lon": -81.3369473, "altitude_m": 559.65, "source": "sim"} +{"ts": "2025-08-20T02:38:24.723597+00:00", "lat": 48.478153, "lon": -81.3369344, "altitude_m": 559.36, "source": "sim"} +{"ts": "2025-08-20T02:38:24.873597+00:00", "lat": 48.4781397, "lon": -81.3369039, "altitude_m": 553.32, "source": "sim"} +{"ts": "2025-08-20T02:38:24.973597+00:00", "lat": 48.4781598, "lon": -81.3369018, "altitude_m": 564.01, "source": "sim"} +{"ts": "2025-08-20T02:38:25.123597+00:00", "lat": 48.4781645, "lon": -81.3369286, "altitude_m": 553.13, "source": "sim"} +{"ts": "2025-08-20T02:38:25.273597+00:00", "lat": 48.478163, "lon": -81.3368925, "altitude_m": 559.08, "source": "sim"} +{"ts": "2025-08-20T02:38:25.423597+00:00", "lat": 48.4781704, "lon": -81.3369146, "altitude_m": 559.3, "source": "sim"} +{"ts": "2025-08-20T02:38:25.523597+00:00", "lat": 48.4781337, "lon": -81.3369214, "altitude_m": 557.63, "source": "sim"} +{"ts": "2025-08-20T02:38:25.673597+00:00", "lat": 48.4781596, "lon": -81.3369542, "altitude_m": 555.49, "source": "sim"} +{"ts": "2025-08-20T02:38:25.823597+00:00", "lat": 48.4781442, "lon": -81.3369168, "altitude_m": 555.96, "source": "sim"} +{"ts": "2025-08-20T02:38:25.973597+00:00", "lat": 48.4781382, "lon": -81.3369077, "altitude_m": 552.25, "source": "sim"} +{"ts": "2025-08-20T02:38:26.073597+00:00", "lat": 48.4781351, "lon": -81.3369008, "altitude_m": 548.11, "source": "sim"} +{"ts": "2025-08-20T02:38:26.223597+00:00", "lat": 48.4781508, "lon": -81.3369757, "altitude_m": 551.68, "source": "sim"} +{"ts": "2025-08-20T02:38:26.323597+00:00", "lat": 48.4781177, "lon": -81.3369087, "altitude_m": 547.74, "source": "sim"} +{"ts": "2025-08-20T02:38:26.423597+00:00", "lat": 48.4781372, "lon": -81.3368982, "altitude_m": 546.55, "source": "sim"} +{"ts": "2025-08-20T02:38:26.523597+00:00", "lat": 48.4781267, "lon": -81.3369349, "altitude_m": 543.95, "source": "sim"} +{"ts": "2025-08-20T02:38:26.623597+00:00", "lat": 48.4781419, "lon": -81.3369277, "altitude_m": 544.14, "source": "sim"} +{"ts": "2025-08-20T02:38:26.773597+00:00", "lat": 48.4781386, "lon": -81.3369001, "altitude_m": 550.5, "source": "sim"} +{"ts": "2025-08-20T02:38:26.923597+00:00", "lat": 48.4781094, "lon": -81.3369198, "altitude_m": 546.79, "source": "sim"} +{"ts": "2025-08-20T02:38:27.073597+00:00", "lat": 48.4781211, "lon": -81.3368724, "altitude_m": 541.23, "source": "sim"} +{"ts": "2025-08-20T02:38:27.223597+00:00", "lat": 48.4781006, "lon": -81.3369088, "altitude_m": 542.67, "source": "sim"} +{"ts": "2025-08-20T02:38:27.323597+00:00", "lat": 48.4781193, "lon": -81.3369037, "altitude_m": 545.06, "source": "sim"} +{"ts": "2025-08-20T02:38:27.523597+00:00", "lat": 48.4781325, "lon": -81.3369252, "altitude_m": 540.4, "source": "sim"} +{"ts": "2025-08-20T02:38:27.673597+00:00", "lat": 48.4781248, "lon": -81.3368853, "altitude_m": 534.17, "source": "sim"} +{"ts": "2025-08-20T02:38:27.823597+00:00", "lat": 48.4781211, "lon": -81.3369141, "altitude_m": 538.92, "source": "sim"} +{"ts": "2025-08-20T02:38:27.923597+00:00", "lat": 48.4781208, "lon": -81.3369198, "altitude_m": 541.54, "source": "sim"} +{"ts": "2025-08-20T02:38:28.073597+00:00", "lat": 48.4781148, "lon": -81.3369079, "altitude_m": 531.63, "source": "sim"} +{"ts": "2025-08-20T02:38:28.223597+00:00", "lat": 48.4781108, "lon": -81.3369434, "altitude_m": 534.08, "source": "sim"} +{"ts": "2025-08-20T02:38:28.323597+00:00", "lat": 48.4781243, "lon": -81.3368562, "altitude_m": 536.09, "source": "sim"} +{"ts": "2025-08-20T02:38:28.423597+00:00", "lat": 48.4781194, "lon": -81.3369125, "altitude_m": 531.31, "source": "sim"} +{"ts": "2025-08-20T02:38:28.573597+00:00", "lat": 48.4781031, "lon": -81.336899, "altitude_m": 531.84, "source": "sim"} +{"ts": "2025-08-20T02:38:28.723597+00:00", "lat": 48.4780972, "lon": -81.3369576, "altitude_m": 536.35, "source": "sim"} +{"ts": "2025-08-20T02:38:28.873597+00:00", "lat": 48.4781235, "lon": -81.336896, "altitude_m": 527.0, "source": "sim"} +{"ts": "2025-08-20T02:38:28.973597+00:00", "lat": 48.4780965, "lon": -81.3369475, "altitude_m": 526.82, "source": "sim"} +{"ts": "2025-08-20T02:38:29.073597+00:00", "lat": 48.4781284, "lon": -81.3368795, "altitude_m": 524.29, "source": "sim"} +{"ts": "2025-08-20T02:38:29.173597+00:00", "lat": 48.478085, "lon": -81.3369209, "altitude_m": 524.74, "source": "sim"} +{"ts": "2025-08-20T02:38:29.323597+00:00", "lat": 48.4781157, "lon": -81.3368851, "altitude_m": 525.79, "source": "sim"} +{"ts": "2025-08-20T02:38:29.473597+00:00", "lat": 48.4781071, "lon": -81.336912, "altitude_m": 523.59, "source": "sim"} +{"ts": "2025-08-20T02:38:29.573597+00:00", "lat": 48.4780884, "lon": -81.3368829, "altitude_m": 526.31, "source": "sim"} +{"ts": "2025-08-20T02:38:29.723597+00:00", "lat": 48.4781101, "lon": -81.3369006, "altitude_m": 520.06, "source": "sim"} +{"ts": "2025-08-20T02:38:29.873597+00:00", "lat": 48.4781085, "lon": -81.3368786, "altitude_m": 525.88, "source": "sim"} +{"ts": "2025-08-20T02:38:30.023597+00:00", "lat": 48.4780863, "lon": -81.3369081, "altitude_m": 516.69, "source": "sim"} +{"ts": "2025-08-20T02:38:30.123597+00:00", "lat": 48.4781079, "lon": -81.336854, "altitude_m": 520.83, "source": "sim"} +{"ts": "2025-08-20T02:38:30.223597+00:00", "lat": 48.4780723, "lon": -81.3368952, "altitude_m": 515.62, "source": "sim"} +{"ts": "2025-08-20T02:38:30.323597+00:00", "lat": 48.4780979, "lon": -81.3369086, "altitude_m": 516.04, "source": "sim"} +{"ts": "2025-08-20T02:38:30.473597+00:00", "lat": 48.4780946, "lon": -81.3368742, "altitude_m": 517.1, "source": "sim"} +{"ts": "2025-08-20T02:38:30.623597+00:00", "lat": 48.478124, "lon": -81.3369312, "altitude_m": 519.7, "source": "sim"} +{"ts": "2025-08-20T02:38:30.773597+00:00", "lat": 48.4780897, "lon": -81.3368615, "altitude_m": 511.27, "source": "sim"} +{"ts": "2025-08-20T02:38:30.923597+00:00", "lat": 48.4780846, "lon": -81.3368304, "altitude_m": 511.21, "source": "sim"} +{"ts": "2025-08-20T02:38:31.073597+00:00", "lat": 48.4780768, "lon": -81.3368818, "altitude_m": 515.87, "source": "sim"} +{"ts": "2025-08-20T02:38:31.223597+00:00", "lat": 48.4780763, "lon": -81.3368718, "altitude_m": 511.41, "source": "sim"} +{"ts": "2025-08-20T02:38:31.373597+00:00", "lat": 48.4780519, "lon": -81.3368554, "altitude_m": 508.14, "source": "sim"} +{"ts": "2025-08-20T02:38:31.473597+00:00", "lat": 48.478081, "lon": -81.3368833, "altitude_m": 507.86, "source": "sim"} +{"ts": "2025-08-20T02:38:31.573597+00:00", "lat": 48.4780834, "lon": -81.3368642, "altitude_m": 504.45, "source": "sim"} +{"ts": "2025-08-20T02:38:31.723597+00:00", "lat": 48.478083, "lon": -81.3368659, "altitude_m": 501.87, "source": "sim"} +{"ts": "2025-08-20T02:38:31.873597+00:00", "lat": 48.4780729, "lon": -81.3368667, "altitude_m": 506.34, "source": "sim"} +{"ts": "2025-08-20T02:38:32.023597+00:00", "lat": 48.478087, "lon": -81.3368522, "altitude_m": 496.87, "source": "sim"} +{"ts": "2025-08-20T02:38:32.173597+00:00", "lat": 48.4780766, "lon": -81.3368604, "altitude_m": 503.26, "source": "sim"} +{"ts": "2025-08-20T02:38:32.273597+00:00", "lat": 48.4780841, "lon": -81.3368357, "altitude_m": 507.22, "source": "sim"} +{"ts": "2025-08-20T02:38:32.423597+00:00", "lat": 48.4780664, "lon": -81.3368373, "altitude_m": 499.21, "source": "sim"} +{"ts": "2025-08-20T02:38:32.573597+00:00", "lat": 48.478056, "lon": -81.3368816, "altitude_m": 495.73, "source": "sim"} +{"ts": "2025-08-20T02:38:32.723597+00:00", "lat": 48.4780698, "lon": -81.3368483, "altitude_m": 501.26, "source": "sim"} +{"ts": "2025-08-20T02:38:32.823597+00:00", "lat": 48.4780685, "lon": -81.3368712, "altitude_m": 492.1, "source": "sim"} +{"ts": "2025-08-20T02:38:32.973597+00:00", "lat": 48.4780518, "lon": -81.3368501, "altitude_m": 488.89, "source": "sim"} +{"ts": "2025-08-20T02:38:33.123597+00:00", "lat": 48.4780583, "lon": -81.3368775, "altitude_m": 490.52, "source": "sim"} +{"ts": "2025-08-20T02:38:33.273597+00:00", "lat": 48.4780641, "lon": -81.3368644, "altitude_m": 493.99, "source": "sim"} +{"ts": "2025-08-20T02:38:33.373597+00:00", "lat": 48.4780624, "lon": -81.3368251, "altitude_m": 492.73, "source": "sim"} +{"ts": "2025-08-20T02:38:33.523597+00:00", "lat": 48.4780811, "lon": -81.3369007, "altitude_m": 485.4, "source": "sim"} +{"ts": "2025-08-20T02:38:33.673597+00:00", "lat": 48.4780577, "lon": -81.3368969, "altitude_m": 489.67, "source": "sim"} +{"ts": "2025-08-20T02:38:33.823597+00:00", "lat": 48.4780385, "lon": -81.336867, "altitude_m": 491.85, "source": "sim"} +{"ts": "2025-08-20T02:38:33.973597+00:00", "lat": 48.478081, "lon": -81.3368552, "altitude_m": 485.31, "source": "sim"} +{"ts": "2025-08-20T02:38:34.073597+00:00", "lat": 48.4780604, "lon": -81.3368775, "altitude_m": 485.28, "source": "sim"} +{"ts": "2025-08-20T02:38:34.223597+00:00", "lat": 48.4780678, "lon": -81.3368877, "altitude_m": 487.3, "source": "sim"} +{"ts": "2025-08-20T02:38:34.373597+00:00", "lat": 48.4780278, "lon": -81.336885, "altitude_m": 493.73, "source": "sim"} +{"ts": "2025-08-20T02:38:34.523597+00:00", "lat": 48.4780382, "lon": -81.3368692, "altitude_m": 487.05, "source": "sim"} +{"ts": "2025-08-20T02:38:34.723597+00:00", "lat": 48.4780238, "lon": -81.3368079, "altitude_m": 478.41, "source": "sim"} +{"ts": "2025-08-20T02:38:34.873597+00:00", "lat": 48.4780452, "lon": -81.3368209, "altitude_m": 483.58, "source": "sim"} +{"ts": "2025-08-20T02:38:35.023597+00:00", "lat": 48.4780398, "lon": -81.3368584, "altitude_m": 478.59, "source": "sim"} +{"ts": "2025-08-20T02:38:35.123597+00:00", "lat": 48.4780758, "lon": -81.3368405, "altitude_m": 481.49, "source": "sim"} +{"ts": "2025-08-20T02:38:35.223597+00:00", "lat": 48.4780331, "lon": -81.3368712, "altitude_m": 475.81, "source": "sim"} +{"ts": "2025-08-20T02:38:35.323597+00:00", "lat": 48.4780117, "lon": -81.336862, "altitude_m": 479.97, "source": "sim"} +{"ts": "2025-08-20T02:38:35.423597+00:00", "lat": 48.4780344, "lon": -81.3368411, "altitude_m": 471.4, "source": "sim"} +{"ts": "2025-08-20T02:38:35.623597+00:00", "lat": 48.4780325, "lon": -81.3368526, "altitude_m": 474.69, "source": "sim"} +{"ts": "2025-08-20T02:38:35.773597+00:00", "lat": 48.4780252, "lon": -81.336847, "altitude_m": 470.91, "source": "sim"} +{"ts": "2025-08-20T02:38:35.923597+00:00", "lat": 48.478024, "lon": -81.3368383, "altitude_m": 467.66, "source": "sim"} +{"ts": "2025-08-20T02:38:36.023597+00:00", "lat": 48.4780268, "lon": -81.3368097, "altitude_m": 469.02, "source": "sim"} +{"ts": "2025-08-20T02:38:36.123597+00:00", "lat": 48.4779997, "lon": -81.3368465, "altitude_m": 466.64, "source": "sim"} +{"ts": "2025-08-20T02:38:36.273597+00:00", "lat": 48.4780369, "lon": -81.3368485, "altitude_m": 472.99, "source": "sim"} +{"ts": "2025-08-20T02:38:36.373597+00:00", "lat": 48.4780091, "lon": -81.3368366, "altitude_m": 472.79, "source": "sim"} +{"ts": "2025-08-20T02:38:36.523597+00:00", "lat": 48.4780376, "lon": -81.3368255, "altitude_m": 468.24, "source": "sim"} +{"ts": "2025-08-20T02:38:36.673597+00:00", "lat": 48.4780281, "lon": -81.3368053, "altitude_m": 465.08, "source": "sim"} +{"ts": "2025-08-20T02:38:36.823597+00:00", "lat": 48.4780373, "lon": -81.3368287, "altitude_m": 464.74, "source": "sim"} +{"ts": "2025-08-20T02:38:36.923597+00:00", "lat": 48.4780256, "lon": -81.3367874, "altitude_m": 465.51, "source": "sim"} +{"ts": "2025-08-20T02:38:37.023597+00:00", "lat": 48.4780197, "lon": -81.3368452, "altitude_m": 465.22, "source": "sim"} +{"ts": "2025-08-20T02:38:37.123597+00:00", "lat": 48.4780415, "lon": -81.3368261, "altitude_m": 460.97, "source": "sim"} +{"ts": "2025-08-20T02:38:37.273597+00:00", "lat": 48.4780392, "lon": -81.336808, "altitude_m": 459.17, "source": "sim"} +{"ts": "2025-08-20T02:38:37.423597+00:00", "lat": 48.4780384, "lon": -81.3367899, "altitude_m": 462.32, "source": "sim"} +{"ts": "2025-08-20T02:38:37.573597+00:00", "lat": 48.4780168, "lon": -81.3368219, "altitude_m": 461.54, "source": "sim"} +{"ts": "2025-08-20T02:38:37.723597+00:00", "lat": 48.4780085, "lon": -81.3368402, "altitude_m": 455.13, "source": "sim"} +{"ts": "2025-08-20T02:38:37.873597+00:00", "lat": 48.4780136, "lon": -81.3367894, "altitude_m": 449.87, "source": "sim"} +{"ts": "2025-08-20T02:38:37.973597+00:00", "lat": 48.4780012, "lon": -81.3368366, "altitude_m": 455.6, "source": "sim"} +{"ts": "2025-08-20T02:38:38.123597+00:00", "lat": 48.4780349, "lon": -81.336797, "altitude_m": 457.21, "source": "sim"} +{"ts": "2025-08-20T02:38:38.273597+00:00", "lat": 48.47801, "lon": -81.3368112, "altitude_m": 455.02, "source": "sim"} +{"ts": "2025-08-20T02:38:38.373597+00:00", "lat": 48.4780024, "lon": -81.3368061, "altitude_m": 449.14, "source": "sim"} +{"ts": "2025-08-20T02:38:38.473597+00:00", "lat": 48.4780202, "lon": -81.3368688, "altitude_m": 450.16, "source": "sim"} +{"ts": "2025-08-20T02:38:38.573597+00:00", "lat": 48.4779585, "lon": -81.3368182, "altitude_m": 442.65, "source": "sim"} +{"ts": "2025-08-20T02:38:38.723597+00:00", "lat": 48.4779773, "lon": -81.3368398, "altitude_m": 451.62, "source": "sim"} +{"ts": "2025-08-20T02:38:38.823597+00:00", "lat": 48.4779981, "lon": -81.3368123, "altitude_m": 445.46, "source": "sim"} +{"ts": "2025-08-20T02:38:38.923597+00:00", "lat": 48.4779941, "lon": -81.3368331, "altitude_m": 449.03, "source": "sim"} +{"ts": "2025-08-20T02:38:39.073597+00:00", "lat": 48.4780101, "lon": -81.3367659, "altitude_m": 447.24, "source": "sim"} +{"ts": "2025-08-20T02:38:39.173597+00:00", "lat": 48.4780176, "lon": -81.3367839, "altitude_m": 442.39, "source": "sim"} +{"ts": "2025-08-20T02:38:39.323597+00:00", "lat": 48.4779922, "lon": -81.3368055, "altitude_m": 442.36, "source": "sim"} +{"ts": "2025-08-20T02:38:39.423597+00:00", "lat": 48.4780102, "lon": -81.3367948, "altitude_m": 445.79, "source": "sim"} +{"ts": "2025-08-20T02:38:39.523597+00:00", "lat": 48.477996, "lon": -81.3368173, "altitude_m": 443.24, "source": "sim"} +{"ts": "2025-08-20T02:38:39.673597+00:00", "lat": 48.4779879, "lon": -81.3368121, "altitude_m": 442.62, "source": "sim"} +{"ts": "2025-08-20T02:38:39.773597+00:00", "lat": 48.4779996, "lon": -81.3368178, "altitude_m": 440.46, "source": "sim"} +{"ts": "2025-08-20T02:38:39.923597+00:00", "lat": 48.4779973, "lon": -81.3368357, "altitude_m": 443.17, "source": "sim"} +{"ts": "2025-08-20T02:38:40.023597+00:00", "lat": 48.4779883, "lon": -81.3367995, "altitude_m": 440.77, "source": "sim"} +{"ts": "2025-08-20T02:38:40.173597+00:00", "lat": 48.4779946, "lon": -81.3368404, "altitude_m": 440.72, "source": "sim"} +{"ts": "2025-08-20T02:38:40.323597+00:00", "lat": 48.4779736, "lon": -81.3367751, "altitude_m": 430.17, "source": "sim"} +{"ts": "2025-08-20T02:38:40.423597+00:00", "lat": 48.4779821, "lon": -81.3368122, "altitude_m": 431.47, "source": "sim"} +{"ts": "2025-08-20T02:38:40.523597+00:00", "lat": 48.4779786, "lon": -81.3368257, "altitude_m": 435.88, "source": "sim"} +{"ts": "2025-08-20T02:38:40.673597+00:00", "lat": 48.4779863, "lon": -81.3368286, "altitude_m": 437.08, "source": "sim"} +{"ts": "2025-08-20T02:38:40.773597+00:00", "lat": 48.4779802, "lon": -81.3368114, "altitude_m": 431.06, "source": "sim"} +{"ts": "2025-08-20T02:38:40.923597+00:00", "lat": 48.4779804, "lon": -81.3368116, "altitude_m": 427.37, "source": "sim"} +{"ts": "2025-08-20T02:38:41.073597+00:00", "lat": 48.4779829, "lon": -81.3368332, "altitude_m": 434.26, "source": "sim"} +{"ts": "2025-08-20T02:38:41.173597+00:00", "lat": 48.4779821, "lon": -81.3367849, "altitude_m": 430.43, "source": "sim"} +{"ts": "2025-08-20T02:38:41.323597+00:00", "lat": 48.4779756, "lon": -81.3367795, "altitude_m": 429.29, "source": "sim"} +{"ts": "2025-08-20T02:38:41.473597+00:00", "lat": 48.4779814, "lon": -81.3367715, "altitude_m": 423.79, "source": "sim"} +{"ts": "2025-08-20T02:38:41.623597+00:00", "lat": 48.4779903, "lon": -81.3367908, "altitude_m": 421.26, "source": "sim"} +{"ts": "2025-08-20T02:38:41.773597+00:00", "lat": 48.4779528, "lon": -81.3367596, "altitude_m": 425.14, "source": "sim"} +{"ts": "2025-08-20T02:38:41.923597+00:00", "lat": 48.4779548, "lon": -81.3367634, "altitude_m": 422.85, "source": "sim"} +{"ts": "2025-08-20T02:38:42.073597+00:00", "lat": 48.4779665, "lon": -81.3367397, "altitude_m": 423.92, "source": "sim"} +{"ts": "2025-08-20T02:38:42.173597+00:00", "lat": 48.4779767, "lon": -81.3367713, "altitude_m": 424.73, "source": "sim"} +{"ts": "2025-08-20T02:38:42.323597+00:00", "lat": 48.477968, "lon": -81.3367602, "altitude_m": 421.84, "source": "sim"} +{"ts": "2025-08-20T02:38:42.423597+00:00", "lat": 48.4779583, "lon": -81.3368181, "altitude_m": 415.9, "source": "sim"} +{"ts": "2025-08-20T02:38:42.623597+00:00", "lat": 48.4779677, "lon": -81.3367955, "altitude_m": 416.65, "source": "sim"} +{"ts": "2025-08-20T02:38:42.773597+00:00", "lat": 48.4779538, "lon": -81.336794, "altitude_m": 417.33, "source": "sim"} +{"ts": "2025-08-20T02:38:42.923597+00:00", "lat": 48.4779478, "lon": -81.3367694, "altitude_m": 416.36, "source": "sim"} +{"ts": "2025-08-20T02:38:43.073597+00:00", "lat": 48.4779649, "lon": -81.3367826, "altitude_m": 414.94, "source": "sim"} +{"ts": "2025-08-20T02:38:43.223597+00:00", "lat": 48.4779674, "lon": -81.33681, "altitude_m": 415.83, "source": "sim"} +{"ts": "2025-08-20T02:38:43.373597+00:00", "lat": 48.4779506, "lon": -81.3367638, "altitude_m": 410.91, "source": "sim"} +{"ts": "2025-08-20T02:38:43.523597+00:00", "lat": 48.4779601, "lon": -81.3367902, "altitude_m": 411.46, "source": "sim"} +{"ts": "2025-08-20T02:38:43.673597+00:00", "lat": 48.4779496, "lon": -81.3367831, "altitude_m": 412.23, "source": "sim"} +{"ts": "2025-08-20T02:38:43.773597+00:00", "lat": 48.4779816, "lon": -81.3367766, "altitude_m": 411.66, "source": "sim"} +{"ts": "2025-08-20T02:38:43.923597+00:00", "lat": 48.4779392, "lon": -81.3367837, "altitude_m": 411.52, "source": "sim"} +{"ts": "2025-08-20T02:38:44.023597+00:00", "lat": 48.4779201, "lon": -81.3367532, "altitude_m": 407.43, "source": "sim"} +{"ts": "2025-08-20T02:38:44.223597+00:00", "lat": 48.477966, "lon": -81.3367462, "altitude_m": 405.95, "source": "sim"} +{"ts": "2025-08-20T02:38:44.323597+00:00", "lat": 48.4779679, "lon": -81.336742, "altitude_m": 406.35, "source": "sim"} +{"ts": "2025-08-20T02:38:44.473597+00:00", "lat": 48.4779473, "lon": -81.3367681, "altitude_m": 403.26, "source": "sim"} +{"ts": "2025-08-20T02:38:44.623597+00:00", "lat": 48.4779409, "lon": -81.3367677, "altitude_m": 404.62, "source": "sim"} +{"ts": "2025-08-20T02:38:44.773597+00:00", "lat": 48.4779156, "lon": -81.3367885, "altitude_m": 398.26, "source": "sim"} +{"ts": "2025-08-20T02:38:44.873597+00:00", "lat": 48.4779417, "lon": -81.3367402, "altitude_m": 406.37, "source": "sim"} +{"ts": "2025-08-20T02:38:45.023597+00:00", "lat": 48.4779404, "lon": -81.3367894, "altitude_m": 400.51, "source": "sim"} +{"ts": "2025-08-20T02:38:45.123597+00:00", "lat": 48.4779285, "lon": -81.3367749, "altitude_m": 398.17, "source": "sim"} +{"ts": "2025-08-20T02:38:45.273597+00:00", "lat": 48.4779355, "lon": -81.3367642, "altitude_m": 399.57, "source": "sim"} +{"ts": "2025-08-20T02:38:45.423597+00:00", "lat": 48.4779074, "lon": -81.3367428, "altitude_m": 399.43, "source": "sim"} +{"ts": "2025-08-20T02:38:45.573597+00:00", "lat": 48.4779097, "lon": -81.3367797, "altitude_m": 391.97, "source": "sim"} +{"ts": "2025-08-20T02:38:45.673597+00:00", "lat": 48.4779082, "lon": -81.3367613, "altitude_m": 390.26, "source": "sim"} +{"ts": "2025-08-20T02:38:45.823597+00:00", "lat": 48.4779481, "lon": -81.336745, "altitude_m": 391.41, "source": "sim"} +{"ts": "2025-08-20T02:38:45.973597+00:00", "lat": 48.4779292, "lon": -81.336765, "altitude_m": 389.37, "source": "sim"} +{"ts": "2025-08-20T02:38:46.123597+00:00", "lat": 48.4779058, "lon": -81.3367427, "altitude_m": 391.06, "source": "sim"} +{"ts": "2025-08-20T02:38:46.273597+00:00", "lat": 48.4779173, "lon": -81.3367677, "altitude_m": 390.57, "source": "sim"} +{"ts": "2025-08-20T02:38:46.373597+00:00", "lat": 48.4779121, "lon": -81.3367945, "altitude_m": 389.01, "source": "sim"} +{"ts": "2025-08-20T02:38:46.473597+00:00", "lat": 48.477905, "lon": -81.3367489, "altitude_m": 388.06, "source": "sim"} +{"ts": "2025-08-20T02:38:46.623597+00:00", "lat": 48.4779332, "lon": -81.336776, "altitude_m": 382.5, "source": "sim"} +{"ts": "2025-08-20T02:38:46.723597+00:00", "lat": 48.4779355, "lon": -81.3367272, "altitude_m": 380.04, "source": "sim"} +{"ts": "2025-08-20T02:38:46.873597+00:00", "lat": 48.477923, "lon": -81.3367903, "altitude_m": 386.93, "source": "sim"} +{"ts": "2025-08-20T02:38:47.023597+00:00", "lat": 48.4779057, "lon": -81.336768, "altitude_m": 376.51, "source": "sim"} +{"ts": "2025-08-20T02:38:47.123597+00:00", "lat": 48.4779231, "lon": -81.3367321, "altitude_m": 380.23, "source": "sim"} +{"ts": "2025-08-20T02:38:47.273597+00:00", "lat": 48.4779092, "lon": -81.3367404, "altitude_m": 383.78, "source": "sim"} +{"ts": "2025-08-20T02:38:47.373597+00:00", "lat": 48.4779012, "lon": -81.3367507, "altitude_m": 378.68, "source": "sim"} +{"ts": "2025-08-20T02:38:47.523597+00:00", "lat": 48.4778746, "lon": -81.3367699, "altitude_m": 382.99, "source": "sim"} +{"ts": "2025-08-20T02:38:47.673597+00:00", "lat": 48.4778912, "lon": -81.3367612, "altitude_m": 378.99, "source": "sim"} +{"ts": "2025-08-20T02:38:47.773597+00:00", "lat": 48.4779061, "lon": -81.336735, "altitude_m": 377.56, "source": "sim"} +{"ts": "2025-08-20T02:38:47.873597+00:00", "lat": 48.4778957, "lon": -81.3367606, "altitude_m": 374.98, "source": "sim"} +{"ts": "2025-08-20T02:38:48.023597+00:00", "lat": 48.4779087, "lon": -81.3367439, "altitude_m": 376.82, "source": "sim"} +{"ts": "2025-08-20T02:38:48.173597+00:00", "lat": 48.4778987, "lon": -81.3367381, "altitude_m": 373.66, "source": "sim"} +{"ts": "2025-08-20T02:38:48.323597+00:00", "lat": 48.4779049, "lon": -81.3367333, "altitude_m": 376.1, "source": "sim"} +{"ts": "2025-08-20T02:38:48.473597+00:00", "lat": 48.4779204, "lon": -81.3367177, "altitude_m": 369.23, "source": "sim"} +{"ts": "2025-08-20T02:38:48.673597+00:00", "lat": 48.4778944, "lon": -81.3367163, "altitude_m": 367.84, "source": "sim"} +{"ts": "2025-08-20T02:38:48.823597+00:00", "lat": 48.4779138, "lon": -81.3367223, "altitude_m": 371.57, "source": "sim"} +{"ts": "2025-08-20T02:38:48.973597+00:00", "lat": 48.4779117, "lon": -81.3367641, "altitude_m": 366.68, "source": "sim"} +{"ts": "2025-08-20T02:38:49.073597+00:00", "lat": 48.4778957, "lon": -81.3368009, "altitude_m": 371.08, "source": "sim"} +{"ts": "2025-08-20T02:38:49.173597+00:00", "lat": 48.4778908, "lon": -81.3367472, "altitude_m": 358.97, "source": "sim"} +{"ts": "2025-08-20T02:38:49.273597+00:00", "lat": 48.4779001, "lon": -81.336728, "altitude_m": 363.19, "source": "sim"} +{"ts": "2025-08-20T02:38:49.373597+00:00", "lat": 48.4779072, "lon": -81.3367002, "altitude_m": 366.7, "source": "sim"} +{"ts": "2025-08-20T02:38:49.473597+00:00", "lat": 48.4778796, "lon": -81.3367427, "altitude_m": 364.62, "source": "sim"} +{"ts": "2025-08-20T02:38:49.573597+00:00", "lat": 48.4778891, "lon": -81.3367167, "altitude_m": 364.63, "source": "sim"} +{"ts": "2025-08-20T02:38:49.673597+00:00", "lat": 48.4778785, "lon": -81.336672, "altitude_m": 370.13, "source": "sim"} +{"ts": "2025-08-20T02:38:49.773597+00:00", "lat": 48.4778917, "lon": -81.3367522, "altitude_m": 364.1, "source": "sim"} +{"ts": "2025-08-20T02:38:49.923597+00:00", "lat": 48.477891, "lon": -81.336708, "altitude_m": 360.54, "source": "sim"} +{"ts": "2025-08-20T02:38:50.073597+00:00", "lat": 48.4778909, "lon": -81.336715, "altitude_m": 364.44, "source": "sim"} +{"ts": "2025-08-20T02:38:50.173597+00:00", "lat": 48.4778725, "lon": -81.3367248, "altitude_m": 363.37, "source": "sim"} +{"ts": "2025-08-20T02:38:50.323597+00:00", "lat": 48.4778906, "lon": -81.3367102, "altitude_m": 353.84, "source": "sim"} +{"ts": "2025-08-20T02:38:50.473597+00:00", "lat": 48.4778866, "lon": -81.3367451, "altitude_m": 355.17, "source": "sim"} +{"ts": "2025-08-20T02:38:50.573597+00:00", "lat": 48.4778558, "lon": -81.3367473, "altitude_m": 356.0, "source": "sim"} +{"ts": "2025-08-20T02:38:50.673597+00:00", "lat": 48.4778678, "lon": -81.336703, "altitude_m": 353.83, "source": "sim"} +{"ts": "2025-08-20T02:38:50.773597+00:00", "lat": 48.4778579, "lon": -81.336707, "altitude_m": 354.55, "source": "sim"} +{"ts": "2025-08-20T02:38:50.923597+00:00", "lat": 48.4778588, "lon": -81.3366948, "altitude_m": 351.54, "source": "sim"} +{"ts": "2025-08-20T02:38:51.073597+00:00", "lat": 48.477889, "lon": -81.3366873, "altitude_m": 348.38, "source": "sim"} +{"ts": "2025-08-20T02:38:51.223597+00:00", "lat": 48.4778667, "lon": -81.3367034, "altitude_m": 349.95, "source": "sim"} +{"ts": "2025-08-20T02:38:51.373597+00:00", "lat": 48.4778421, "lon": -81.3367008, "altitude_m": 349.63, "source": "sim"} +{"ts": "2025-08-20T02:38:51.523597+00:00", "lat": 48.4778882, "lon": -81.3367584, "altitude_m": 344.3, "source": "sim"} +{"ts": "2025-08-20T02:38:51.673597+00:00", "lat": 48.4778713, "lon": -81.3367329, "altitude_m": 345.89, "source": "sim"} +{"ts": "2025-08-20T02:38:51.823597+00:00", "lat": 48.4778757, "lon": -81.3367133, "altitude_m": 347.47, "source": "sim"} +{"ts": "2025-08-20T02:38:51.973597+00:00", "lat": 48.4778512, "lon": -81.3367073, "altitude_m": 346.57, "source": "sim"} +{"ts": "2025-08-20T02:38:52.123597+00:00", "lat": 48.4778515, "lon": -81.3366922, "altitude_m": 349.1, "source": "sim"} +{"ts": "2025-08-20T02:38:52.223597+00:00", "lat": 48.4778709, "lon": -81.3367371, "altitude_m": 340.43, "source": "sim"} +{"ts": "2025-08-20T02:38:52.323597+00:00", "lat": 48.4778661, "lon": -81.3366973, "altitude_m": 341.23, "source": "sim"} +{"ts": "2025-08-20T02:38:52.473597+00:00", "lat": 48.477843, "lon": -81.3367411, "altitude_m": 346.39, "source": "sim"} +{"ts": "2025-08-20T02:38:52.623597+00:00", "lat": 48.4778497, "lon": -81.3367305, "altitude_m": 339.66, "source": "sim"} +{"ts": "2025-08-20T02:38:52.773597+00:00", "lat": 48.4778609, "lon": -81.3367215, "altitude_m": 335.52, "source": "sim"} +{"ts": "2025-08-20T02:38:52.873597+00:00", "lat": 48.477865, "lon": -81.3367666, "altitude_m": 338.51, "source": "sim"} +{"ts": "2025-08-20T02:38:52.973597+00:00", "lat": 48.477844, "lon": -81.3366935, "altitude_m": 326.73, "source": "sim"} +{"ts": "2025-08-20T02:38:53.123597+00:00", "lat": 48.4778647, "lon": -81.3367097, "altitude_m": 336.89, "source": "sim"} +{"ts": "2025-08-20T02:38:53.273597+00:00", "lat": 48.4778842, "lon": -81.3367136, "altitude_m": 333.24, "source": "sim"} +{"ts": "2025-08-20T02:38:53.423597+00:00", "lat": 48.4778326, "lon": -81.3367217, "altitude_m": 332.25, "source": "sim"} +{"ts": "2025-08-20T02:38:53.523597+00:00", "lat": 48.4778708, "lon": -81.3366594, "altitude_m": 329.27, "source": "sim"} +{"ts": "2025-08-20T02:38:53.673597+00:00", "lat": 48.4778567, "lon": -81.3367092, "altitude_m": 328.36, "source": "sim"} +{"ts": "2025-08-20T02:38:53.773597+00:00", "lat": 48.4778611, "lon": -81.3366712, "altitude_m": 330.74, "source": "sim"} +{"ts": "2025-08-20T02:38:53.873597+00:00", "lat": 48.4778667, "lon": -81.3366951, "altitude_m": 329.75, "source": "sim"} +{"ts": "2025-08-20T02:38:53.973597+00:00", "lat": 48.4778408, "lon": -81.3366478, "altitude_m": 327.22, "source": "sim"} +{"ts": "2025-08-20T02:38:54.073597+00:00", "lat": 48.4778363, "lon": -81.3367318, "altitude_m": 332.29, "source": "sim"} +{"ts": "2025-08-20T02:38:54.173597+00:00", "lat": 48.4778536, "lon": -81.3366647, "altitude_m": 319.85, "source": "sim"} +{"ts": "2025-08-20T02:38:54.273597+00:00", "lat": 48.4778443, "lon": -81.3366921, "altitude_m": 322.69, "source": "sim"} +{"ts": "2025-08-20T02:38:54.373597+00:00", "lat": 48.477865, "lon": -81.3366783, "altitude_m": 328.53, "source": "sim"} +{"ts": "2025-08-20T02:38:54.473597+00:00", "lat": 48.4778446, "lon": -81.3366996, "altitude_m": 318.39, "source": "sim"} +{"ts": "2025-08-20T02:38:54.623597+00:00", "lat": 48.4778295, "lon": -81.3366536, "altitude_m": 329.09, "source": "sim"} +{"ts": "2025-08-20T02:38:54.773597+00:00", "lat": 48.4778459, "lon": -81.3367369, "altitude_m": 322.07, "source": "sim"} +{"ts": "2025-08-20T02:38:54.873597+00:00", "lat": 48.4778437, "lon": -81.3367098, "altitude_m": 316.8, "source": "sim"} +{"ts": "2025-08-20T02:38:54.973597+00:00", "lat": 48.4778273, "lon": -81.3366963, "altitude_m": 315.28, "source": "sim"} +{"ts": "2025-08-20T02:38:55.073597+00:00", "lat": 48.4778407, "lon": -81.3366921, "altitude_m": 322.82, "source": "sim"} +{"ts": "2025-08-20T02:38:55.223597+00:00", "lat": 48.4778257, "lon": -81.3366895, "altitude_m": 312.28, "source": "sim"} +{"ts": "2025-08-20T02:38:55.373597+00:00", "lat": 48.4778455, "lon": -81.3366971, "altitude_m": 312.48, "source": "sim"} +{"ts": "2025-08-20T02:38:55.523597+00:00", "lat": 48.4778405, "lon": -81.3366852, "altitude_m": 311.44, "source": "sim"} +{"ts": "2025-08-20T02:38:55.623597+00:00", "lat": 48.4778143, "lon": -81.3366803, "altitude_m": 316.17, "source": "sim"} +{"ts": "2025-08-20T02:38:55.773597+00:00", "lat": 48.4778374, "lon": -81.3366782, "altitude_m": 318.6, "source": "sim"} +{"ts": "2025-08-20T02:38:55.873597+00:00", "lat": 48.4778191, "lon": -81.3366564, "altitude_m": 311.79, "source": "sim"} +{"ts": "2025-08-20T02:38:56.023597+00:00", "lat": 48.4777984, "lon": -81.3366825, "altitude_m": 313.64, "source": "sim"} +{"ts": "2025-08-20T02:38:56.173597+00:00", "lat": 48.4778232, "lon": -81.3367197, "altitude_m": 309.69, "source": "sim"} +{"ts": "2025-08-20T02:38:56.323597+00:00", "lat": 48.477811, "lon": -81.3366647, "altitude_m": 306.25, "source": "sim"} +{"ts": "2025-08-20T02:38:56.473597+00:00", "lat": 48.4778184, "lon": -81.3367068, "altitude_m": 307.96, "source": "sim"} +{"ts": "2025-08-20T02:38:56.573597+00:00", "lat": 48.4778369, "lon": -81.3366569, "altitude_m": 307.67, "source": "sim"} +{"ts": "2025-08-20T02:38:56.723597+00:00", "lat": 48.4778082, "lon": -81.3366699, "altitude_m": 308.31, "source": "sim"} +{"ts": "2025-08-20T02:38:56.823597+00:00", "lat": 48.4777827, "lon": -81.3367057, "altitude_m": 305.48, "source": "sim"} +{"ts": "2025-08-20T02:38:56.973597+00:00", "lat": 48.4777984, "lon": -81.3366746, "altitude_m": 311.51, "source": "sim"} +{"ts": "2025-08-20T02:38:57.123597+00:00", "lat": 48.4778017, "lon": -81.3366806, "altitude_m": 307.17, "source": "sim"} +{"ts": "2025-08-20T02:38:57.273597+00:00", "lat": 48.4777874, "lon": -81.3366932, "altitude_m": 300.56, "source": "sim"} +{"ts": "2025-08-20T02:38:57.373597+00:00", "lat": 48.477829, "lon": -81.3366174, "altitude_m": 302.3, "source": "sim"} +{"ts": "2025-08-20T02:38:57.523597+00:00", "lat": 48.4778105, "lon": -81.3366813, "altitude_m": 303.48, "source": "sim"} +{"ts": "2025-08-20T02:38:57.623597+00:00", "lat": 48.4778097, "lon": -81.3366802, "altitude_m": 298.87, "source": "sim"} +{"ts": "2025-08-20T02:38:57.773597+00:00", "lat": 48.4777981, "lon": -81.3366847, "altitude_m": 293.2, "source": "sim"} +{"ts": "2025-08-20T02:38:57.923597+00:00", "lat": 48.4778208, "lon": -81.3366573, "altitude_m": 299.53, "source": "sim"} +{"ts": "2025-08-20T02:38:58.073597+00:00", "lat": 48.4777859, "lon": -81.3366986, "altitude_m": 299.09, "source": "sim"} diff --git a/apps/antenna-tracker/src/main.rs b/apps/antenna-tracker/src/main.rs new file mode 100755 index 0000000..3d0bf2f --- /dev/null +++ b/apps/antenna-tracker/src/main.rs @@ -0,0 +1,179 @@ +use anyhow::Result; +use chrono::Utc; +use clap::Parser; +use mavlink::uorocketry::MavMessage; +use messages_prost::{radio, sbg::sbg_data}; +use prost::Message as _; +use serde::Serialize; +use tracing::{error, info, warn}; + +#[derive(Parser, Debug, Clone)] +#[command( + version, + about = "Stream latest GPS coordinates and altitude from MAVLink POSTCARD messages as JSON lines" +)] +struct Args { + /// MAVLink connection string (e.g., tcpout:127.0.0.1:5656, udpin:0.0.0.0:14550) + #[arg(long, default_value = "tcpout:127.0.0.1:5656")] + connection: String, + + /// Print pretty JSON (multi-line) instead of compact single-line JSON + #[arg(long, default_value_t = false)] + pretty: bool, +} + +#[derive(Default, Debug, Clone, Serialize)] +struct LatestSample { + lat: Option, + lon: Option, + altitude_m: Option, + ts: String, + source: &'static str, +} + +#[tokio::main] +async fn main() -> Result<()> { + tracing_subscriber::fmt().with_max_level(tracing::Level::INFO).init(); + + let args = Args::parse(); + + let mut latest = LatestSample { + ts: Utc::now().to_rfc3339(), + source: "gps-ingest", + ..Default::default() + }; + + loop { + info!("Connecting to MAVLink at {}", args.connection); + let conn = match mavlink::connect::(&args.connection) { + Ok(c) => c, + Err(e) => { + error!("Failed to connect to MAVLink: {}", e); + tokio::time::sleep(std::time::Duration::from_secs(1)).await; + continue; + } + }; + info!("Connected!"); + + // Receive loop; on any error, break to reconnect after 1s + loop { + match conn.recv() { + Ok((_header, msg)) => match msg { + MavMessage::POSTCARD_MESSAGE(card) => { + // Each POSTCARD message wraps a length-delimited RadioFrame (protobuf) + match messages_prost::radio::RadioFrame::decode_length_delimited(&card.message[..]) { + Ok(frame) => handle_radio_frame(frame, &mut latest, args.pretty), + Err(_) => warn!("Failed to decode RadioFrame from POSTCARD message"), + } + } + MavMessage::RADIO_STATUS(status) => { + info!("Radio status: rssi={}, remrssi={}", status.rssi, status.remrssi); + } + _other => { + // Not relevant for GPS/altitude output + } + }, + Err(err) => match err { + mavlink::error::MessageReadError::Io(io_err) => match io_err.kind() { + std::io::ErrorKind::WouldBlock => { + // No data available; yield briefly + tokio::task::yield_now().await; + } + _ => { + error!("MAVLink IO error: {:?}. Will reconnect.", io_err); + break; + } + }, + other => { + error!("MAVLink recv error: {:?}. Will reconnect.", other); + break; + } + }, + } + } + + // Reconnect delay + tokio::time::sleep(std::time::Duration::from_secs(1)).await; + } +} + +fn handle_radio_frame( + frame: radio::RadioFrame, + latest: &mut LatestSample, + pretty: bool, +) { + use radio::radio_frame::Payload; + + match frame.payload { + Some(Payload::Sbg(sbg)) => match sbg.data { + Some(sbg_data::Data::GpsPos(gps_pos)) => { + if let Some(d) = gps_pos.data { + let lat = d.latitude; + let lon = d.longitude; + + // Skip if lat or lon is very close to 0 (invalid GPS coordinates) + if lat.abs() < 0.001 || lon.abs() < 0.001 { + warn!("Invalid GPS coordinates (near 0,0): lat={}, lon={}", lat, lon); + return; + } + + // Check if coordinates are within Canada's bounds + // Bounds: [minLat, minLon, maxLat, maxLon] = [41.68, -141.00, 83.11, -52.62] + if !(41.68..=83.11).contains(&lat) || !(-141.00..=-52.62).contains(&lon) { + warn!("GPS coordinates outside Canada bounds: lat={}, lon={}", lat, lon); + return; + } + + latest.lat = Some(lat); + latest.lon = Some(lon); + // Do not use GPS altitude; we prefer barometric altitude from SbgAir + latest.ts = Utc::now().to_rfc3339(); + // Only output if we have all required fields + if latest.lat.is_some() && latest.lon.is_some() && latest.altitude_m.is_some() { + output(latest, pretty); + } + } + } + Some(sbg_data::Data::Air(air)) => { + if let Some(d) = air.data { + latest.altitude_m = Some(d.altitude as f64); + latest.ts = Utc::now().to_rfc3339(); + // Only output if we have all required fields + if latest.lat.is_some() && latest.lon.is_some() && latest.altitude_m.is_some() { + output(latest, pretty); + } + } + } + // Other SBG data not needed for this tool + _ => { + // println!("other sbg"); + } + }, + // We intentionally ignore other payloads (IMU, logs, etc.) + _payload => { + // println!("other payload: {:?}", _payload); + // print payload json + // if let Ok(s) = serde_json::to_string_pretty(&payload) { + // println!("{}", s); + // } + } + } +} + +fn output( + sample: &LatestSample, + pretty: bool, +) { + // Additional validation to ensure we never output invalid data + if sample.lat.is_none() || sample.lon.is_none() || sample.altitude_m.is_none() { + return; + } + + if pretty { + if let Ok(s) = serde_json::to_string_pretty(sample) { + println!("{}", s); + } + } else if let Ok(s) = serde_json::to_string(sample) { + println!("{}", s); + } +} diff --git a/apps/antenna-tracker/tests/conftest.py b/apps/antenna-tracker/tests/conftest.py new file mode 100644 index 0000000..764c57b --- /dev/null +++ b/apps/antenna-tracker/tests/conftest.py @@ -0,0 +1,7 @@ +import os +import sys + +# Ensure project root (directory containing predictor_service.py) is on sys.path +PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir)) +if PROJECT_ROOT not in sys.path: + sys.path.insert(0, PROJECT_ROOT) diff --git a/apps/antenna-tracker/tests/test_continuous_unwrap.py b/apps/antenna-tracker/tests/test_continuous_unwrap.py new file mode 100644 index 0000000..778d76d --- /dev/null +++ b/apps/antenna-tracker/tests/test_continuous_unwrap.py @@ -0,0 +1,71 @@ +import pytest + +from predictor_service import PredictorConfig, PredictorService + + +def normalize_0_360(deg: float) -> float: + return (deg % 360.0 + 360.0) % 360.0 + + +def normalize_pm180(deg: float) -> float: + d = normalize_0_360(deg) + return d - 360.0 if d > 180.0 else d + + +def step_ok(a, b, tol=1e-9): + return abs(a - b) <= tol + + +def unwrap_seq_check(bearing_seq, yaw_zero=194.0, seed_mode="pm180"): + pcfg = PredictorConfig( + antenna_yaw_zero_deg=yaw_zero, + yaw_normalization="continuous", + use_real_gps_ingest=False, + ) + svc = PredictorService(pcfg) + svc.reset_yaw_continuity() + + def rot_basic(b): + raw = b - yaw_zero + return normalize_pm180(raw) if seed_mode != "0to360" else normalize_0_360(raw) + + def rot_cont(b, ref): + desired_mod = normalize_0_360(b - yaw_zero) + ref_mod = normalize_0_360(ref) + delta = normalize_pm180(desired_mod - ref_mod) + return ref + delta + + cont_vals = [] + for i, b in enumerate(bearing_seq): + if i == 0: + y = rot_basic(b) + else: + y = rot_cont(b, cont_vals[-1]) + cont_vals.append(y) + + for i in range(1, len(bearing_seq)): + bearing_step = bearing_seq[i] - bearing_seq[i - 1] + expected = normalize_pm180(bearing_step) + got = cont_vals[i] - cont_vals[i - 1] + assert step_ok(got, expected, tol=1e-7), f"step {i} expected {expected}, got {got}" + + return cont_vals + + +@pytest.mark.parametrize( + "seq", + [ + list(range(350, 371, 5)) + [0, 5, 10, 15, 20, 25, 30], + [30, 25, 20, 15, 10, 5, 0, 355, 350, 345, 340], + list(range(0, 1081, 15)), + [350, 355, 0, 5, 10, 5, 0, 355, 350, 355, 0, 5], + ], +) +def test_continuous_unwrap(seq): + _ = unwrap_seq_check(seq) + + +def test_clamping_interplay_with_accumulator(): + seq = list(range(0, 721, 10)) + vals = unwrap_seq_check(seq) + assert vals[-1] > 350.0 diff --git a/apps/antenna-tracker/tests/test_pointing_math.py b/apps/antenna-tracker/tests/test_pointing_math.py new file mode 100644 index 0000000..91c3fff --- /dev/null +++ b/apps/antenna-tracker/tests/test_pointing_math.py @@ -0,0 +1,81 @@ +import math +import pytest + +from predictor_service import PredictorConfig, PredictorService +from antenna_service import AntennaConfig, AntennaService + + +def normalize_0_360(deg: float) -> float: + return (deg % 360.0 + 360.0) % 360.0 + + +def normalize_pm180(deg: float) -> float: + d = normalize_0_360(deg) + return d - 360.0 if d > 180.0 else d + + +def destination_point(lat_deg, lon_deg, bearing_deg, distance_m, radius_m=6371000.0): + lat1 = math.radians(lat_deg) + lon1 = math.radians(lon_deg) + brng = math.radians(bearing_deg) + dr = distance_m / radius_m + sin_lat1 = math.sin(lat1) + cos_lat1 = math.cos(lat1) + sin_dr = math.sin(dr) + cos_dr = math.cos(dr) + sin_lat2 = sin_lat1 * cos_dr + cos_lat1 * sin_dr * math.cos(brng) + lat2 = math.asin(sin_lat2) + y = math.sin(brng) * sin_dr * cos_lat1 + x = cos_dr - sin_lat1 * sin_lat2 + lon2 = lon1 + math.atan2(y, x) + return math.degrees(lat2), (math.degrees(lon2) + 540) % 360 - 180 + + +def expected_el(distance_m: float, alt_delta_m: float) -> float: + return math.degrees(math.atan2(alt_delta_m, max(distance_m, 1e-9))) + + +bearings = [0, 45, 90, 135, 180, 225, 270, 315] +distances = [1.0, 100.0, 1000.0] +alt_deltas = [0.0, +5.0, -5.0, +100.0, -100.0] + + +@pytest.mark.parametrize("d", distances) +@pytest.mark.parametrize("dh", alt_deltas) +@pytest.mark.parametrize("b", bearings) +def test_az_el_yaw_and_commands(b, d, dh): + pcfg = PredictorConfig(yaw_normalization="pm180", use_real_gps_ingest=False) + svc = PredictorService(pcfg) + acfg = AntennaConfig(use_real_hardware=False) + + tgt_lat, tgt_lon = destination_point(pcfg.antenna_lat_deg, pcfg.antenna_lon_deg, b, d) + tgt_alt = pcfg.antenna_alt_m + dh + + az, el = svc.compute_az_el(tgt_lat, tgt_lon, tgt_alt) + + az_exp = b % 360.0 + el_exp = expected_el(d, dh) + + tol_az = 0.5 + tol_el = 0.5 + assert abs((az - az_exp + 540) % 360 - 180) <= tol_az + assert abs(el - el_exp) <= tol_el + + yaw = normalize_pm180(az - pcfg.antenna_yaw_zero_deg) + yaw_exp = normalize_pm180(az_exp - pcfg.antenna_yaw_zero_deg) + assert abs(yaw - yaw_exp) <= tol_az + + yaw_lo, yaw_hi = acfg.limits_yaw_deg + pit_lo, pit_hi = acfg.limits_pitch_deg + yaw_cmd = max(yaw_lo, min(yaw_hi, yaw)) + pit_cmd = max(pit_lo, min(pit_hi, el)) + + yaw_turns = (acfg.dir_yaw * yaw_cmd / 360.0) * acfg.gear_ratio_yaw + pit_turns = (acfg.dir_pitch * pit_cmd / 360.0) * acfg.gear_ratio_pitch + + ant = AntennaService(acfg) + ok = ant.set_position(pitch=el, yaw=yaw) + assert ok + pos = ant.get_position() + assert math.isclose(pos["yaw"], yaw_cmd, abs_tol=1e-6) + assert math.isclose(pos["pitch"], pit_cmd, abs_tol=1e-6) diff --git a/apps/antenna-tracker/uv.lock b/apps/antenna-tracker/uv.lock new file mode 100755 index 0000000..965ca7d --- /dev/null +++ b/apps/antenna-tracker/uv.lock @@ -0,0 +1,698 @@ +version = 1 +revision = 3 +requires-python = ">=3.12" + +[[package]] +name = "aiohappyeyeballs" +version = "2.6.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/26/30/f84a107a9c4331c14b2b586036f40965c128aa4fee4dda5d3d51cb14ad54/aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558", size = 22760, upload-time = "2025-03-12T01:42:48.764Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0f/15/5bf3b99495fb160b63f95972b81750f18f7f4e02ad051373b669d17d44f2/aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8", size = 15265, upload-time = "2025-03-12T01:42:47.083Z" }, +] + +[[package]] +name = "aiohttp" +version = "3.12.15" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohappyeyeballs" }, + { name = "aiosignal" }, + { name = "attrs" }, + { name = "frozenlist" }, + { name = "multidict" }, + { name = "propcache" }, + { name = "yarl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9b/e7/d92a237d8802ca88483906c388f7c201bbe96cd80a165ffd0ac2f6a8d59f/aiohttp-3.12.15.tar.gz", hash = "sha256:4fc61385e9c98d72fcdf47e6dd81833f47b2f77c114c29cd64a361be57a763a2", size = 7823716, upload-time = "2025-07-29T05:52:32.215Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/63/97/77cb2450d9b35f517d6cf506256bf4f5bda3f93a66b4ad64ba7fc917899c/aiohttp-3.12.15-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:802d3868f5776e28f7bf69d349c26fc0efadb81676d0afa88ed00d98a26340b7", size = 702333, upload-time = "2025-07-29T05:50:46.507Z" }, + { url = "https://files.pythonhosted.org/packages/83/6d/0544e6b08b748682c30b9f65640d006e51f90763b41d7c546693bc22900d/aiohttp-3.12.15-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f2800614cd560287be05e33a679638e586a2d7401f4ddf99e304d98878c29444", size = 476948, upload-time = "2025-07-29T05:50:48.067Z" }, + { url = "https://files.pythonhosted.org/packages/3a/1d/c8c40e611e5094330284b1aea8a4b02ca0858f8458614fa35754cab42b9c/aiohttp-3.12.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8466151554b593909d30a0a125d638b4e5f3836e5aecde85b66b80ded1cb5b0d", size = 469787, upload-time = "2025-07-29T05:50:49.669Z" }, + { url = "https://files.pythonhosted.org/packages/38/7d/b76438e70319796bfff717f325d97ce2e9310f752a267bfdf5192ac6082b/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e5a495cb1be69dae4b08f35a6c4579c539e9b5706f606632102c0f855bcba7c", size = 1716590, upload-time = "2025-07-29T05:50:51.368Z" }, + { url = "https://files.pythonhosted.org/packages/79/b1/60370d70cdf8b269ee1444b390cbd72ce514f0d1cd1a715821c784d272c9/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6404dfc8cdde35c69aaa489bb3542fb86ef215fc70277c892be8af540e5e21c0", size = 1699241, upload-time = "2025-07-29T05:50:53.628Z" }, + { url = "https://files.pythonhosted.org/packages/a3/2b/4968a7b8792437ebc12186db31523f541943e99bda8f30335c482bea6879/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3ead1c00f8521a5c9070fcb88f02967b1d8a0544e6d85c253f6968b785e1a2ab", size = 1754335, upload-time = "2025-07-29T05:50:55.394Z" }, + { url = "https://files.pythonhosted.org/packages/fb/c1/49524ed553f9a0bec1a11fac09e790f49ff669bcd14164f9fab608831c4d/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6990ef617f14450bc6b34941dba4f12d5613cbf4e33805932f853fbd1cf18bfb", size = 1800491, upload-time = "2025-07-29T05:50:57.202Z" }, + { url = "https://files.pythonhosted.org/packages/de/5e/3bf5acea47a96a28c121b167f5ef659cf71208b19e52a88cdfa5c37f1fcc/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd736ed420f4db2b8148b52b46b88ed038d0354255f9a73196b7bbce3ea97545", size = 1719929, upload-time = "2025-07-29T05:50:59.192Z" }, + { url = "https://files.pythonhosted.org/packages/39/94/8ae30b806835bcd1cba799ba35347dee6961a11bd507db634516210e91d8/aiohttp-3.12.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c5092ce14361a73086b90c6efb3948ffa5be2f5b6fbcf52e8d8c8b8848bb97c", size = 1635733, upload-time = "2025-07-29T05:51:01.394Z" }, + { url = "https://files.pythonhosted.org/packages/7a/46/06cdef71dd03acd9da7f51ab3a9107318aee12ad38d273f654e4f981583a/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:aaa2234bb60c4dbf82893e934d8ee8dea30446f0647e024074237a56a08c01bd", size = 1696790, upload-time = "2025-07-29T05:51:03.657Z" }, + { url = "https://files.pythonhosted.org/packages/02/90/6b4cfaaf92ed98d0ec4d173e78b99b4b1a7551250be8937d9d67ecb356b4/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:6d86a2fbdd14192e2f234a92d3b494dd4457e683ba07e5905a0b3ee25389ac9f", size = 1718245, upload-time = "2025-07-29T05:51:05.911Z" }, + { url = "https://files.pythonhosted.org/packages/2e/e6/2593751670fa06f080a846f37f112cbe6f873ba510d070136a6ed46117c6/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a041e7e2612041a6ddf1c6a33b883be6a421247c7afd47e885969ee4cc58bd8d", size = 1658899, upload-time = "2025-07-29T05:51:07.753Z" }, + { url = "https://files.pythonhosted.org/packages/8f/28/c15bacbdb8b8eb5bf39b10680d129ea7410b859e379b03190f02fa104ffd/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5015082477abeafad7203757ae44299a610e89ee82a1503e3d4184e6bafdd519", size = 1738459, upload-time = "2025-07-29T05:51:09.56Z" }, + { url = "https://files.pythonhosted.org/packages/00/de/c269cbc4faa01fb10f143b1670633a8ddd5b2e1ffd0548f7aa49cb5c70e2/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:56822ff5ddfd1b745534e658faba944012346184fbfe732e0d6134b744516eea", size = 1766434, upload-time = "2025-07-29T05:51:11.423Z" }, + { url = "https://files.pythonhosted.org/packages/52/b0/4ff3abd81aa7d929b27d2e1403722a65fc87b763e3a97b3a2a494bfc63bc/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b2acbbfff69019d9014508c4ba0401822e8bae5a5fdc3b6814285b71231b60f3", size = 1726045, upload-time = "2025-07-29T05:51:13.689Z" }, + { url = "https://files.pythonhosted.org/packages/71/16/949225a6a2dd6efcbd855fbd90cf476052e648fb011aa538e3b15b89a57a/aiohttp-3.12.15-cp312-cp312-win32.whl", hash = "sha256:d849b0901b50f2185874b9a232f38e26b9b3d4810095a7572eacea939132d4e1", size = 423591, upload-time = "2025-07-29T05:51:15.452Z" }, + { url = "https://files.pythonhosted.org/packages/2b/d8/fa65d2a349fe938b76d309db1a56a75c4fb8cc7b17a398b698488a939903/aiohttp-3.12.15-cp312-cp312-win_amd64.whl", hash = "sha256:b390ef5f62bb508a9d67cb3bba9b8356e23b3996da7062f1a57ce1a79d2b3d34", size = 450266, upload-time = "2025-07-29T05:51:17.239Z" }, + { url = "https://files.pythonhosted.org/packages/f2/33/918091abcf102e39d15aba2476ad9e7bd35ddb190dcdd43a854000d3da0d/aiohttp-3.12.15-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:9f922ffd05034d439dde1c77a20461cf4a1b0831e6caa26151fe7aa8aaebc315", size = 696741, upload-time = "2025-07-29T05:51:19.021Z" }, + { url = "https://files.pythonhosted.org/packages/b5/2a/7495a81e39a998e400f3ecdd44a62107254803d1681d9189be5c2e4530cd/aiohttp-3.12.15-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2ee8a8ac39ce45f3e55663891d4b1d15598c157b4d494a4613e704c8b43112cd", size = 474407, upload-time = "2025-07-29T05:51:21.165Z" }, + { url = "https://files.pythonhosted.org/packages/49/fc/a9576ab4be2dcbd0f73ee8675d16c707cfc12d5ee80ccf4015ba543480c9/aiohttp-3.12.15-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3eae49032c29d356b94eee45a3f39fdf4b0814b397638c2f718e96cfadf4c4e4", size = 466703, upload-time = "2025-07-29T05:51:22.948Z" }, + { url = "https://files.pythonhosted.org/packages/09/2f/d4bcc8448cf536b2b54eed48f19682031ad182faa3a3fee54ebe5b156387/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b97752ff12cc12f46a9b20327104448042fce5c33a624f88c18f66f9368091c7", size = 1705532, upload-time = "2025-07-29T05:51:25.211Z" }, + { url = "https://files.pythonhosted.org/packages/f1/f3/59406396083f8b489261e3c011aa8aee9df360a96ac8fa5c2e7e1b8f0466/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:894261472691d6fe76ebb7fcf2e5870a2ac284c7406ddc95823c8598a1390f0d", size = 1686794, upload-time = "2025-07-29T05:51:27.145Z" }, + { url = "https://files.pythonhosted.org/packages/dc/71/164d194993a8d114ee5656c3b7ae9c12ceee7040d076bf7b32fb98a8c5c6/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5fa5d9eb82ce98959fc1031c28198b431b4d9396894f385cb63f1e2f3f20ca6b", size = 1738865, upload-time = "2025-07-29T05:51:29.366Z" }, + { url = "https://files.pythonhosted.org/packages/1c/00/d198461b699188a93ead39cb458554d9f0f69879b95078dce416d3209b54/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0fa751efb11a541f57db59c1dd821bec09031e01452b2b6217319b3a1f34f3d", size = 1788238, upload-time = "2025-07-29T05:51:31.285Z" }, + { url = "https://files.pythonhosted.org/packages/85/b8/9e7175e1fa0ac8e56baa83bf3c214823ce250d0028955dfb23f43d5e61fd/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5346b93e62ab51ee2a9d68e8f73c7cf96ffb73568a23e683f931e52450e4148d", size = 1710566, upload-time = "2025-07-29T05:51:33.219Z" }, + { url = "https://files.pythonhosted.org/packages/59/e4/16a8eac9df39b48ae102ec030fa9f726d3570732e46ba0c592aeeb507b93/aiohttp-3.12.15-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:049ec0360f939cd164ecbfd2873eaa432613d5e77d6b04535e3d1fbae5a9e645", size = 1624270, upload-time = "2025-07-29T05:51:35.195Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f8/cd84dee7b6ace0740908fd0af170f9fab50c2a41ccbc3806aabcb1050141/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b52dcf013b57464b6d1e51b627adfd69a8053e84b7103a7cd49c030f9ca44461", size = 1677294, upload-time = "2025-07-29T05:51:37.215Z" }, + { url = "https://files.pythonhosted.org/packages/ce/42/d0f1f85e50d401eccd12bf85c46ba84f947a84839c8a1c2c5f6e8ab1eb50/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:9b2af240143dd2765e0fb661fd0361a1b469cab235039ea57663cda087250ea9", size = 1708958, upload-time = "2025-07-29T05:51:39.328Z" }, + { url = "https://files.pythonhosted.org/packages/d5/6b/f6fa6c5790fb602538483aa5a1b86fcbad66244997e5230d88f9412ef24c/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ac77f709a2cde2cc71257ab2d8c74dd157c67a0558a0d2799d5d571b4c63d44d", size = 1651553, upload-time = "2025-07-29T05:51:41.356Z" }, + { url = "https://files.pythonhosted.org/packages/04/36/a6d36ad545fa12e61d11d1932eef273928b0495e6a576eb2af04297fdd3c/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:47f6b962246f0a774fbd3b6b7be25d59b06fdb2f164cf2513097998fc6a29693", size = 1727688, upload-time = "2025-07-29T05:51:43.452Z" }, + { url = "https://files.pythonhosted.org/packages/aa/c8/f195e5e06608a97a4e52c5d41c7927301bf757a8e8bb5bbf8cef6c314961/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:760fb7db442f284996e39cf9915a94492e1896baac44f06ae551974907922b64", size = 1761157, upload-time = "2025-07-29T05:51:45.643Z" }, + { url = "https://files.pythonhosted.org/packages/05/6a/ea199e61b67f25ba688d3ce93f63b49b0a4e3b3d380f03971b4646412fc6/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ad702e57dc385cae679c39d318def49aef754455f237499d5b99bea4ef582e51", size = 1710050, upload-time = "2025-07-29T05:51:48.203Z" }, + { url = "https://files.pythonhosted.org/packages/b4/2e/ffeb7f6256b33635c29dbed29a22a723ff2dd7401fff42ea60cf2060abfb/aiohttp-3.12.15-cp313-cp313-win32.whl", hash = "sha256:f813c3e9032331024de2eb2e32a88d86afb69291fbc37a3a3ae81cc9917fb3d0", size = 422647, upload-time = "2025-07-29T05:51:50.718Z" }, + { url = "https://files.pythonhosted.org/packages/1b/8e/78ee35774201f38d5e1ba079c9958f7629b1fd079459aea9467441dbfbf5/aiohttp-3.12.15-cp313-cp313-win_amd64.whl", hash = "sha256:1a649001580bdb37c6fdb1bebbd7e3bc688e8ec2b5c6f52edbb664662b17dc84", size = 449067, upload-time = "2025-07-29T05:51:52.549Z" }, +] + +[[package]] +name = "aiosignal" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "frozenlist" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7", size = 25007, upload-time = "2025-07-03T22:54:43.528Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e", size = 7490, upload-time = "2025-07-03T22:54:42.156Z" }, +] + +[[package]] +name = "appdirs" +version = "1.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/d8/05696357e0311f5b5c316d7b95f46c669dd9c15aaeecbb48c7d0aeb88c40/appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41", size = 13470, upload-time = "2020-05-11T07:59:51.037Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/00/2344469e2084fb287c2e0b57b72910309874c3245463acd6cf5e3db69324/appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128", size = 9566, upload-time = "2020-05-11T07:59:49.499Z" }, +] + +[[package]] +name = "asttokens" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4a/e7/82da0a03e7ba5141f05cce0d302e6eed121ae055e0456ca228bf693984bc/asttokens-3.0.0.tar.gz", hash = "sha256:0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7", size = 61978, upload-time = "2024-11-30T04:30:14.439Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/25/8a/c46dcc25341b5bce5472c718902eb3d38600a903b14fa6aeecef3f21a46f/asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2", size = 26918, upload-time = "2024-11-30T04:30:10.946Z" }, +] + +[[package]] +name = "attrs" +version = "25.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5a/b0/1367933a8532ee6ff8d63537de4f1177af4bff9f3e829baf7331f595bb24/attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b", size = 812032, upload-time = "2025-03-13T11:10:22.779Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/06/bb80f5f86020c4551da315d78b3ab75e8228f89f0162f2c3a819e407941a/attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3", size = 63815, upload-time = "2025-03-13T11:10:21.14Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "decorator" +version = "5.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/fa/6d96a0978d19e17b68d634497769987b16c8f4cd0a7a05048bec693caa6b/decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360", size = 56711, upload-time = "2025-02-24T04:41:34.073Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a", size = 9190, upload-time = "2025-02-24T04:41:32.565Z" }, +] + +[[package]] +name = "executing" +version = "2.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/91/50/a9d80c47ff289c611ff12e63f7c5d13942c65d68125160cefd768c73e6e4/executing-2.2.0.tar.gz", hash = "sha256:5d108c028108fe2551d1a7b2e8b713341e2cb4fc0aa7dcf966fa4327a5226755", size = 978693, upload-time = "2025-01-22T15:41:29.403Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/8f/c4d9bafc34ad7ad5d8dc16dd1347ee0e507a52c3adb6bfa8887e1c6a26ba/executing-2.2.0-py2.py3-none-any.whl", hash = "sha256:11387150cad388d62750327a53d3339fad4888b39a6fe233c3afbb54ecffd3aa", size = 26702, upload-time = "2025-01-22T15:41:25.929Z" }, +] + +[[package]] +name = "frozenlist" +version = "1.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/79/b1/b64018016eeb087db503b038296fd782586432b9c077fc5c7839e9cb6ef6/frozenlist-1.7.0.tar.gz", hash = "sha256:2e310d81923c2437ea8670467121cc3e9b0f76d3043cc1d2331d56c7fb7a3a8f", size = 45078, upload-time = "2025-06-09T23:02:35.538Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/a2/c8131383f1e66adad5f6ecfcce383d584ca94055a34d683bbb24ac5f2f1c/frozenlist-1.7.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3dbf9952c4bb0e90e98aec1bd992b3318685005702656bc6f67c1a32b76787f2", size = 81424, upload-time = "2025-06-09T23:00:42.24Z" }, + { url = "https://files.pythonhosted.org/packages/4c/9d/02754159955088cb52567337d1113f945b9e444c4960771ea90eb73de8db/frozenlist-1.7.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:1f5906d3359300b8a9bb194239491122e6cf1444c2efb88865426f170c262cdb", size = 47952, upload-time = "2025-06-09T23:00:43.481Z" }, + { url = "https://files.pythonhosted.org/packages/01/7a/0046ef1bd6699b40acd2067ed6d6670b4db2f425c56980fa21c982c2a9db/frozenlist-1.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3dabd5a8f84573c8d10d8859a50ea2dec01eea372031929871368c09fa103478", size = 46688, upload-time = "2025-06-09T23:00:44.793Z" }, + { url = "https://files.pythonhosted.org/packages/d6/a2/a910bafe29c86997363fb4c02069df4ff0b5bc39d33c5198b4e9dd42d8f8/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa57daa5917f1738064f302bf2626281a1cb01920c32f711fbc7bc36111058a8", size = 243084, upload-time = "2025-06-09T23:00:46.125Z" }, + { url = "https://files.pythonhosted.org/packages/64/3e/5036af9d5031374c64c387469bfcc3af537fc0f5b1187d83a1cf6fab1639/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c193dda2b6d49f4c4398962810fa7d7c78f032bf45572b3e04dd5249dff27e08", size = 233524, upload-time = "2025-06-09T23:00:47.73Z" }, + { url = "https://files.pythonhosted.org/packages/06/39/6a17b7c107a2887e781a48ecf20ad20f1c39d94b2a548c83615b5b879f28/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfe2b675cf0aaa6d61bf8fbffd3c274b3c9b7b1623beb3809df8a81399a4a9c4", size = 248493, upload-time = "2025-06-09T23:00:49.742Z" }, + { url = "https://files.pythonhosted.org/packages/be/00/711d1337c7327d88c44d91dd0f556a1c47fb99afc060ae0ef66b4d24793d/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8fc5d5cda37f62b262405cf9652cf0856839c4be8ee41be0afe8858f17f4c94b", size = 244116, upload-time = "2025-06-09T23:00:51.352Z" }, + { url = "https://files.pythonhosted.org/packages/24/fe/74e6ec0639c115df13d5850e75722750adabdc7de24e37e05a40527ca539/frozenlist-1.7.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0d5ce521d1dd7d620198829b87ea002956e4319002ef0bc8d3e6d045cb4646e", size = 224557, upload-time = "2025-06-09T23:00:52.855Z" }, + { url = "https://files.pythonhosted.org/packages/8d/db/48421f62a6f77c553575201e89048e97198046b793f4a089c79a6e3268bd/frozenlist-1.7.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:488d0a7d6a0008ca0db273c542098a0fa9e7dfaa7e57f70acef43f32b3f69dca", size = 241820, upload-time = "2025-06-09T23:00:54.43Z" }, + { url = "https://files.pythonhosted.org/packages/1d/fa/cb4a76bea23047c8462976ea7b7a2bf53997a0ca171302deae9d6dd12096/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:15a7eaba63983d22c54d255b854e8108e7e5f3e89f647fc854bd77a237e767df", size = 236542, upload-time = "2025-06-09T23:00:56.409Z" }, + { url = "https://files.pythonhosted.org/packages/5d/32/476a4b5cfaa0ec94d3f808f193301debff2ea42288a099afe60757ef6282/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1eaa7e9c6d15df825bf255649e05bd8a74b04a4d2baa1ae46d9c2d00b2ca2cb5", size = 249350, upload-time = "2025-06-09T23:00:58.468Z" }, + { url = "https://files.pythonhosted.org/packages/8d/ba/9a28042f84a6bf8ea5dbc81cfff8eaef18d78b2a1ad9d51c7bc5b029ad16/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e4389e06714cfa9d47ab87f784a7c5be91d3934cd6e9a7b85beef808297cc025", size = 225093, upload-time = "2025-06-09T23:01:00.015Z" }, + { url = "https://files.pythonhosted.org/packages/bc/29/3a32959e68f9cf000b04e79ba574527c17e8842e38c91d68214a37455786/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:73bd45e1488c40b63fe5a7df892baf9e2a4d4bb6409a2b3b78ac1c6236178e01", size = 245482, upload-time = "2025-06-09T23:01:01.474Z" }, + { url = "https://files.pythonhosted.org/packages/80/e8/edf2f9e00da553f07f5fa165325cfc302dead715cab6ac8336a5f3d0adc2/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:99886d98e1643269760e5fe0df31e5ae7050788dd288947f7f007209b8c33f08", size = 249590, upload-time = "2025-06-09T23:01:02.961Z" }, + { url = "https://files.pythonhosted.org/packages/1c/80/9a0eb48b944050f94cc51ee1c413eb14a39543cc4f760ed12657a5a3c45a/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:290a172aae5a4c278c6da8a96222e6337744cd9c77313efe33d5670b9f65fc43", size = 237785, upload-time = "2025-06-09T23:01:05.095Z" }, + { url = "https://files.pythonhosted.org/packages/f3/74/87601e0fb0369b7a2baf404ea921769c53b7ae00dee7dcfe5162c8c6dbf0/frozenlist-1.7.0-cp312-cp312-win32.whl", hash = "sha256:426c7bc70e07cfebc178bc4c2bf2d861d720c4fff172181eeb4a4c41d4ca2ad3", size = 39487, upload-time = "2025-06-09T23:01:06.54Z" }, + { url = "https://files.pythonhosted.org/packages/0b/15/c026e9a9fc17585a9d461f65d8593d281fedf55fbf7eb53f16c6df2392f9/frozenlist-1.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:563b72efe5da92e02eb68c59cb37205457c977aa7a449ed1b37e6939e5c47c6a", size = 43874, upload-time = "2025-06-09T23:01:07.752Z" }, + { url = "https://files.pythonhosted.org/packages/24/90/6b2cebdabdbd50367273c20ff6b57a3dfa89bd0762de02c3a1eb42cb6462/frozenlist-1.7.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ee80eeda5e2a4e660651370ebffd1286542b67e268aa1ac8d6dbe973120ef7ee", size = 79791, upload-time = "2025-06-09T23:01:09.368Z" }, + { url = "https://files.pythonhosted.org/packages/83/2e/5b70b6a3325363293fe5fc3ae74cdcbc3e996c2a11dde2fd9f1fb0776d19/frozenlist-1.7.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d1a81c85417b914139e3a9b995d4a1c84559afc839a93cf2cb7f15e6e5f6ed2d", size = 47165, upload-time = "2025-06-09T23:01:10.653Z" }, + { url = "https://files.pythonhosted.org/packages/f4/25/a0895c99270ca6966110f4ad98e87e5662eab416a17e7fd53c364bf8b954/frozenlist-1.7.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cbb65198a9132ebc334f237d7b0df163e4de83fb4f2bdfe46c1e654bdb0c5d43", size = 45881, upload-time = "2025-06-09T23:01:12.296Z" }, + { url = "https://files.pythonhosted.org/packages/19/7c/71bb0bbe0832793c601fff68cd0cf6143753d0c667f9aec93d3c323f4b55/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dab46c723eeb2c255a64f9dc05b8dd601fde66d6b19cdb82b2e09cc6ff8d8b5d", size = 232409, upload-time = "2025-06-09T23:01:13.641Z" }, + { url = "https://files.pythonhosted.org/packages/c0/45/ed2798718910fe6eb3ba574082aaceff4528e6323f9a8570be0f7028d8e9/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6aeac207a759d0dedd2e40745575ae32ab30926ff4fa49b1635def65806fddee", size = 225132, upload-time = "2025-06-09T23:01:15.264Z" }, + { url = "https://files.pythonhosted.org/packages/ba/e2/8417ae0f8eacb1d071d4950f32f229aa6bf68ab69aab797b72a07ea68d4f/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bd8c4e58ad14b4fa7802b8be49d47993182fdd4023393899632c88fd8cd994eb", size = 237638, upload-time = "2025-06-09T23:01:16.752Z" }, + { url = "https://files.pythonhosted.org/packages/f8/b7/2ace5450ce85f2af05a871b8c8719b341294775a0a6c5585d5e6170f2ce7/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04fb24d104f425da3540ed83cbfc31388a586a7696142004c577fa61c6298c3f", size = 233539, upload-time = "2025-06-09T23:01:18.202Z" }, + { url = "https://files.pythonhosted.org/packages/46/b9/6989292c5539553dba63f3c83dc4598186ab2888f67c0dc1d917e6887db6/frozenlist-1.7.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6a5c505156368e4ea6b53b5ac23c92d7edc864537ff911d2fb24c140bb175e60", size = 215646, upload-time = "2025-06-09T23:01:19.649Z" }, + { url = "https://files.pythonhosted.org/packages/72/31/bc8c5c99c7818293458fe745dab4fd5730ff49697ccc82b554eb69f16a24/frozenlist-1.7.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8bd7eb96a675f18aa5c553eb7ddc24a43c8c18f22e1f9925528128c052cdbe00", size = 232233, upload-time = "2025-06-09T23:01:21.175Z" }, + { url = "https://files.pythonhosted.org/packages/59/52/460db4d7ba0811b9ccb85af996019f5d70831f2f5f255f7cc61f86199795/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:05579bf020096fe05a764f1f84cd104a12f78eaab68842d036772dc6d4870b4b", size = 227996, upload-time = "2025-06-09T23:01:23.098Z" }, + { url = "https://files.pythonhosted.org/packages/ba/c9/f4b39e904c03927b7ecf891804fd3b4df3db29b9e487c6418e37988d6e9d/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:376b6222d114e97eeec13d46c486facd41d4f43bab626b7c3f6a8b4e81a5192c", size = 242280, upload-time = "2025-06-09T23:01:24.808Z" }, + { url = "https://files.pythonhosted.org/packages/b8/33/3f8d6ced42f162d743e3517781566b8481322be321b486d9d262adf70bfb/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0aa7e176ebe115379b5b1c95b4096fb1c17cce0847402e227e712c27bdb5a949", size = 217717, upload-time = "2025-06-09T23:01:26.28Z" }, + { url = "https://files.pythonhosted.org/packages/3e/e8/ad683e75da6ccef50d0ab0c2b2324b32f84fc88ceee778ed79b8e2d2fe2e/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3fbba20e662b9c2130dc771e332a99eff5da078b2b2648153a40669a6d0e36ca", size = 236644, upload-time = "2025-06-09T23:01:27.887Z" }, + { url = "https://files.pythonhosted.org/packages/b2/14/8d19ccdd3799310722195a72ac94ddc677541fb4bef4091d8e7775752360/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:f3f4410a0a601d349dd406b5713fec59b4cee7e71678d5b17edda7f4655a940b", size = 238879, upload-time = "2025-06-09T23:01:29.524Z" }, + { url = "https://files.pythonhosted.org/packages/ce/13/c12bf657494c2fd1079a48b2db49fa4196325909249a52d8f09bc9123fd7/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e2cdfaaec6a2f9327bf43c933c0319a7c429058e8537c508964a133dffee412e", size = 232502, upload-time = "2025-06-09T23:01:31.287Z" }, + { url = "https://files.pythonhosted.org/packages/d7/8b/e7f9dfde869825489382bc0d512c15e96d3964180c9499efcec72e85db7e/frozenlist-1.7.0-cp313-cp313-win32.whl", hash = "sha256:5fc4df05a6591c7768459caba1b342d9ec23fa16195e744939ba5914596ae3e1", size = 39169, upload-time = "2025-06-09T23:01:35.503Z" }, + { url = "https://files.pythonhosted.org/packages/35/89/a487a98d94205d85745080a37860ff5744b9820a2c9acbcdd9440bfddf98/frozenlist-1.7.0-cp313-cp313-win_amd64.whl", hash = "sha256:52109052b9791a3e6b5d1b65f4b909703984b770694d3eb64fad124c835d7cba", size = 43219, upload-time = "2025-06-09T23:01:36.784Z" }, + { url = "https://files.pythonhosted.org/packages/56/d5/5c4cf2319a49eddd9dd7145e66c4866bdc6f3dbc67ca3d59685149c11e0d/frozenlist-1.7.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a6f86e4193bb0e235ef6ce3dde5cbabed887e0b11f516ce8a0f4d3b33078ec2d", size = 84345, upload-time = "2025-06-09T23:01:38.295Z" }, + { url = "https://files.pythonhosted.org/packages/a4/7d/ec2c1e1dc16b85bc9d526009961953df9cec8481b6886debb36ec9107799/frozenlist-1.7.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:82d664628865abeb32d90ae497fb93df398a69bb3434463d172b80fc25b0dd7d", size = 48880, upload-time = "2025-06-09T23:01:39.887Z" }, + { url = "https://files.pythonhosted.org/packages/69/86/f9596807b03de126e11e7d42ac91e3d0b19a6599c714a1989a4e85eeefc4/frozenlist-1.7.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:912a7e8375a1c9a68325a902f3953191b7b292aa3c3fb0d71a216221deca460b", size = 48498, upload-time = "2025-06-09T23:01:41.318Z" }, + { url = "https://files.pythonhosted.org/packages/5e/cb/df6de220f5036001005f2d726b789b2c0b65f2363b104bbc16f5be8084f8/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9537c2777167488d539bc5de2ad262efc44388230e5118868e172dd4a552b146", size = 292296, upload-time = "2025-06-09T23:01:42.685Z" }, + { url = "https://files.pythonhosted.org/packages/83/1f/de84c642f17c8f851a2905cee2dae401e5e0daca9b5ef121e120e19aa825/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:f34560fb1b4c3e30ba35fa9a13894ba39e5acfc5f60f57d8accde65f46cc5e74", size = 273103, upload-time = "2025-06-09T23:01:44.166Z" }, + { url = "https://files.pythonhosted.org/packages/88/3c/c840bfa474ba3fa13c772b93070893c6e9d5c0350885760376cbe3b6c1b3/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:acd03d224b0175f5a850edc104ac19040d35419eddad04e7cf2d5986d98427f1", size = 292869, upload-time = "2025-06-09T23:01:45.681Z" }, + { url = "https://files.pythonhosted.org/packages/a6/1c/3efa6e7d5a39a1d5ef0abeb51c48fb657765794a46cf124e5aca2c7a592c/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2038310bc582f3d6a09b3816ab01737d60bf7b1ec70f5356b09e84fb7408ab1", size = 291467, upload-time = "2025-06-09T23:01:47.234Z" }, + { url = "https://files.pythonhosted.org/packages/4f/00/d5c5e09d4922c395e2f2f6b79b9a20dab4b67daaf78ab92e7729341f61f6/frozenlist-1.7.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8c05e4c8e5f36e5e088caa1bf78a687528f83c043706640a92cb76cd6999384", size = 266028, upload-time = "2025-06-09T23:01:48.819Z" }, + { url = "https://files.pythonhosted.org/packages/4e/27/72765be905619dfde25a7f33813ac0341eb6b076abede17a2e3fbfade0cb/frozenlist-1.7.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:765bb588c86e47d0b68f23c1bee323d4b703218037765dcf3f25c838c6fecceb", size = 284294, upload-time = "2025-06-09T23:01:50.394Z" }, + { url = "https://files.pythonhosted.org/packages/88/67/c94103a23001b17808eb7dd1200c156bb69fb68e63fcf0693dde4cd6228c/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:32dc2e08c67d86d0969714dd484fd60ff08ff81d1a1e40a77dd34a387e6ebc0c", size = 281898, upload-time = "2025-06-09T23:01:52.234Z" }, + { url = "https://files.pythonhosted.org/packages/42/34/a3e2c00c00f9e2a9db5653bca3fec306349e71aff14ae45ecc6d0951dd24/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:c0303e597eb5a5321b4de9c68e9845ac8f290d2ab3f3e2c864437d3c5a30cd65", size = 290465, upload-time = "2025-06-09T23:01:53.788Z" }, + { url = "https://files.pythonhosted.org/packages/bb/73/f89b7fbce8b0b0c095d82b008afd0590f71ccb3dee6eee41791cf8cd25fd/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:a47f2abb4e29b3a8d0b530f7c3598badc6b134562b1a5caee867f7c62fee51e3", size = 266385, upload-time = "2025-06-09T23:01:55.769Z" }, + { url = "https://files.pythonhosted.org/packages/cd/45/e365fdb554159462ca12df54bc59bfa7a9a273ecc21e99e72e597564d1ae/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:3d688126c242a6fabbd92e02633414d40f50bb6002fa4cf995a1d18051525657", size = 288771, upload-time = "2025-06-09T23:01:57.4Z" }, + { url = "https://files.pythonhosted.org/packages/00/11/47b6117002a0e904f004d70ec5194fe9144f117c33c851e3d51c765962d0/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:4e7e9652b3d367c7bd449a727dc79d5043f48b88d0cbfd4f9f1060cf2b414104", size = 288206, upload-time = "2025-06-09T23:01:58.936Z" }, + { url = "https://files.pythonhosted.org/packages/40/37/5f9f3c3fd7f7746082ec67bcdc204db72dad081f4f83a503d33220a92973/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:1a85e345b4c43db8b842cab1feb41be5cc0b10a1830e6295b69d7310f99becaf", size = 282620, upload-time = "2025-06-09T23:02:00.493Z" }, + { url = "https://files.pythonhosted.org/packages/0b/31/8fbc5af2d183bff20f21aa743b4088eac4445d2bb1cdece449ae80e4e2d1/frozenlist-1.7.0-cp313-cp313t-win32.whl", hash = "sha256:3a14027124ddb70dfcee5148979998066897e79f89f64b13328595c4bdf77c81", size = 43059, upload-time = "2025-06-09T23:02:02.072Z" }, + { url = "https://files.pythonhosted.org/packages/bb/ed/41956f52105b8dbc26e457c5705340c67c8cc2b79f394b79bffc09d0e938/frozenlist-1.7.0-cp313-cp313t-win_amd64.whl", hash = "sha256:3bf8010d71d4507775f658e9823210b7427be36625b387221642725b515dcf3e", size = 47516, upload-time = "2025-06-09T23:02:03.779Z" }, + { url = "https://files.pythonhosted.org/packages/ee/45/b82e3c16be2182bff01179db177fe144d58b5dc787a7d4492c6ed8b9317f/frozenlist-1.7.0-py3-none-any.whl", hash = "sha256:9a5af342e34f7e97caf8c995864c7a396418ae2859cc6fdf1b1073020d516a7e", size = 13106, upload-time = "2025-06-09T23:02:34.204Z" }, +] + +[[package]] +name = "gps-ingest" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "numpy" }, + { name = "odrive" }, +] + +[package.dev-dependencies] +dev = [ + { name = "pytest" }, +] + +[package.metadata] +requires-dist = [ + { name = "numpy", specifier = ">=2.3.2" }, + { name = "odrive", specifier = ">=0.6.10.post0" }, +] + +[package.metadata.requires-dev] +dev = [{ name = "pytest", specifier = ">=8.0.0" }] + +[[package]] +name = "idna" +version = "3.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490, upload-time = "2024-09-15T18:07:39.745Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload-time = "2024-09-15T18:07:37.964Z" }, +] + +[[package]] +name = "iniconfig" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f2/97/ebf4da567aa6827c909642694d71c9fcf53e5b504f2d96afea02718862f3/iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7", size = 4793, upload-time = "2025-03-19T20:09:59.721Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760", size = 6050, upload-time = "2025-03-19T20:10:01.071Z" }, +] + +[[package]] +name = "ipython" +version = "9.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "decorator" }, + { name = "ipython-pygments-lexers" }, + { name = "jedi" }, + { name = "matplotlib-inline" }, + { name = "pexpect", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, + { name = "prompt-toolkit" }, + { name = "pygments" }, + { name = "stack-data" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/54/80/406f9e3bde1c1fd9bf5a0be9d090f8ae623e401b7670d8f6fdf2ab679891/ipython-9.4.0.tar.gz", hash = "sha256:c033c6d4e7914c3d9768aabe76bbe87ba1dc66a92a05db6bfa1125d81f2ee270", size = 4385338, upload-time = "2025-07-01T11:11:30.606Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/63/f8/0031ee2b906a15a33d6bfc12dd09c3dfa966b3cb5b284ecfb7549e6ac3c4/ipython-9.4.0-py3-none-any.whl", hash = "sha256:25850f025a446d9b359e8d296ba175a36aedd32e83ca9b5060430fe16801f066", size = 611021, upload-time = "2025-07-01T11:11:27.85Z" }, +] + +[[package]] +name = "ipython-pygments-lexers" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ef/4c/5dd1d8af08107f88c7f741ead7a40854b8ac24ddf9ae850afbcf698aa552/ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81", size = 8393, upload-time = "2025-01-17T11:24:34.505Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/33/1f075bf72b0b747cb3288d011319aaf64083cf2efef8354174e3ed4540e2/ipython_pygments_lexers-1.1.1-py3-none-any.whl", hash = "sha256:a9462224a505ade19a605f71f8fa63c2048833ce50abc86768a0d81d876dc81c", size = 8074, upload-time = "2025-01-17T11:24:33.271Z" }, +] + +[[package]] +name = "jedi" +version = "0.19.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "parso" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/72/3a/79a912fbd4d8dd6fbb02bf69afd3bb72cf0c729bb3063c6f4498603db17a/jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0", size = 1231287, upload-time = "2024-11-11T01:41:42.873Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278, upload-time = "2024-11-11T01:41:40.175Z" }, +] + +[[package]] +name = "matplotlib-inline" +version = "0.1.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/99/5b/a36a337438a14116b16480db471ad061c36c3694df7c2084a0da7ba538b7/matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90", size = 8159, upload-time = "2024-04-15T13:44:44.803Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8f/8e/9ad090d3553c280a8060fbf6e24dc1c0c29704ee7d1c372f0c174aa59285/matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca", size = 9899, upload-time = "2024-04-15T13:44:43.265Z" }, +] + +[[package]] +name = "multidict" +version = "6.6.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/69/7f/0652e6ed47ab288e3756ea9c0df8b14950781184d4bd7883f4d87dd41245/multidict-6.6.4.tar.gz", hash = "sha256:d2d4e4787672911b48350df02ed3fa3fffdc2f2e8ca06dd6afdf34189b76a9dd", size = 101843, upload-time = "2025-08-11T12:08:48.217Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/05/f6/512ffd8fd8b37fb2680e5ac35d788f1d71bbaf37789d21a820bdc441e565/multidict-6.6.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0ffb87be160942d56d7b87b0fdf098e81ed565add09eaa1294268c7f3caac4c8", size = 76516, upload-time = "2025-08-11T12:06:53.393Z" }, + { url = "https://files.pythonhosted.org/packages/99/58/45c3e75deb8855c36bd66cc1658007589662ba584dbf423d01df478dd1c5/multidict-6.6.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d191de6cbab2aff5de6c5723101705fd044b3e4c7cfd587a1929b5028b9714b3", size = 45394, upload-time = "2025-08-11T12:06:54.555Z" }, + { url = "https://files.pythonhosted.org/packages/fd/ca/e8c4472a93a26e4507c0b8e1f0762c0d8a32de1328ef72fd704ef9cc5447/multidict-6.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:38a0956dd92d918ad5feff3db8fcb4a5eb7dba114da917e1a88475619781b57b", size = 43591, upload-time = "2025-08-11T12:06:55.672Z" }, + { url = "https://files.pythonhosted.org/packages/05/51/edf414f4df058574a7265034d04c935aa84a89e79ce90fcf4df211f47b16/multidict-6.6.4-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:6865f6d3b7900ae020b495d599fcf3765653bc927951c1abb959017f81ae8287", size = 237215, upload-time = "2025-08-11T12:06:57.213Z" }, + { url = "https://files.pythonhosted.org/packages/c8/45/8b3d6dbad8cf3252553cc41abea09ad527b33ce47a5e199072620b296902/multidict-6.6.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a2088c126b6f72db6c9212ad827d0ba088c01d951cee25e758c450da732c138", size = 258299, upload-time = "2025-08-11T12:06:58.946Z" }, + { url = "https://files.pythonhosted.org/packages/3c/e8/8ca2e9a9f5a435fc6db40438a55730a4bf4956b554e487fa1b9ae920f825/multidict-6.6.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0f37bed7319b848097085d7d48116f545985db988e2256b2e6f00563a3416ee6", size = 242357, upload-time = "2025-08-11T12:07:00.301Z" }, + { url = "https://files.pythonhosted.org/packages/0f/84/80c77c99df05a75c28490b2af8f7cba2a12621186e0a8b0865d8e745c104/multidict-6.6.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:01368e3c94032ba6ca0b78e7ccb099643466cf24f8dc8eefcfdc0571d56e58f9", size = 268369, upload-time = "2025-08-11T12:07:01.638Z" }, + { url = "https://files.pythonhosted.org/packages/0d/e9/920bfa46c27b05fb3e1ad85121fd49f441492dca2449c5bcfe42e4565d8a/multidict-6.6.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8fe323540c255db0bffee79ad7f048c909f2ab0edb87a597e1c17da6a54e493c", size = 269341, upload-time = "2025-08-11T12:07:02.943Z" }, + { url = "https://files.pythonhosted.org/packages/af/65/753a2d8b05daf496f4a9c367fe844e90a1b2cac78e2be2c844200d10cc4c/multidict-6.6.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8eb3025f17b0a4c3cd08cda49acf312a19ad6e8a4edd9dbd591e6506d999402", size = 256100, upload-time = "2025-08-11T12:07:04.564Z" }, + { url = "https://files.pythonhosted.org/packages/09/54/655be13ae324212bf0bc15d665a4e34844f34c206f78801be42f7a0a8aaa/multidict-6.6.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bbc14f0365534d35a06970d6a83478b249752e922d662dc24d489af1aa0d1be7", size = 253584, upload-time = "2025-08-11T12:07:05.914Z" }, + { url = "https://files.pythonhosted.org/packages/5c/74/ab2039ecc05264b5cec73eb018ce417af3ebb384ae9c0e9ed42cb33f8151/multidict-6.6.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:75aa52fba2d96bf972e85451b99d8e19cc37ce26fd016f6d4aa60da9ab2b005f", size = 251018, upload-time = "2025-08-11T12:07:08.301Z" }, + { url = "https://files.pythonhosted.org/packages/af/0a/ccbb244ac848e56c6427f2392741c06302bbfba49c0042f1eb3c5b606497/multidict-6.6.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4fefd4a815e362d4f011919d97d7b4a1e566f1dde83dc4ad8cfb5b41de1df68d", size = 251477, upload-time = "2025-08-11T12:07:10.248Z" }, + { url = "https://files.pythonhosted.org/packages/0e/b0/0ed49bba775b135937f52fe13922bc64a7eaf0a3ead84a36e8e4e446e096/multidict-6.6.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:db9801fe021f59a5b375ab778973127ca0ac52429a26e2fd86aa9508f4d26eb7", size = 263575, upload-time = "2025-08-11T12:07:11.928Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d9/7fb85a85e14de2e44dfb6a24f03c41e2af8697a6df83daddb0e9b7569f73/multidict-6.6.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a650629970fa21ac1fb06ba25dabfc5b8a2054fcbf6ae97c758aa956b8dba802", size = 259649, upload-time = "2025-08-11T12:07:13.244Z" }, + { url = "https://files.pythonhosted.org/packages/03/9e/b3a459bcf9b6e74fa461a5222a10ff9b544cb1cd52fd482fb1b75ecda2a2/multidict-6.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:452ff5da78d4720d7516a3a2abd804957532dd69296cb77319c193e3ffb87e24", size = 251505, upload-time = "2025-08-11T12:07:14.57Z" }, + { url = "https://files.pythonhosted.org/packages/86/a2/8022f78f041dfe6d71e364001a5cf987c30edfc83c8a5fb7a3f0974cff39/multidict-6.6.4-cp312-cp312-win32.whl", hash = "sha256:8c2fcb12136530ed19572bbba61b407f655e3953ba669b96a35036a11a485793", size = 41888, upload-time = "2025-08-11T12:07:15.904Z" }, + { url = "https://files.pythonhosted.org/packages/c7/eb/d88b1780d43a56db2cba24289fa744a9d216c1a8546a0dc3956563fd53ea/multidict-6.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:047d9425860a8c9544fed1b9584f0c8bcd31bcde9568b047c5e567a1025ecd6e", size = 46072, upload-time = "2025-08-11T12:07:17.045Z" }, + { url = "https://files.pythonhosted.org/packages/9f/16/b929320bf5750e2d9d4931835a4c638a19d2494a5b519caaaa7492ebe105/multidict-6.6.4-cp312-cp312-win_arm64.whl", hash = "sha256:14754eb72feaa1e8ae528468f24250dd997b8e2188c3d2f593f9eba259e4b364", size = 43222, upload-time = "2025-08-11T12:07:18.328Z" }, + { url = "https://files.pythonhosted.org/packages/3a/5d/e1db626f64f60008320aab00fbe4f23fc3300d75892a3381275b3d284580/multidict-6.6.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f46a6e8597f9bd71b31cc708195d42b634c8527fecbcf93febf1052cacc1f16e", size = 75848, upload-time = "2025-08-11T12:07:19.912Z" }, + { url = "https://files.pythonhosted.org/packages/4c/aa/8b6f548d839b6c13887253af4e29c939af22a18591bfb5d0ee6f1931dae8/multidict-6.6.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:22e38b2bc176c5eb9c0a0e379f9d188ae4cd8b28c0f53b52bce7ab0a9e534657", size = 45060, upload-time = "2025-08-11T12:07:21.163Z" }, + { url = "https://files.pythonhosted.org/packages/eb/c6/f5e97e5d99a729bc2aa58eb3ebfa9f1e56a9b517cc38c60537c81834a73f/multidict-6.6.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5df8afd26f162da59e218ac0eefaa01b01b2e6cd606cffa46608f699539246da", size = 43269, upload-time = "2025-08-11T12:07:22.392Z" }, + { url = "https://files.pythonhosted.org/packages/dc/31/d54eb0c62516776f36fe67f84a732f97e0b0e12f98d5685bebcc6d396910/multidict-6.6.4-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:49517449b58d043023720aa58e62b2f74ce9b28f740a0b5d33971149553d72aa", size = 237158, upload-time = "2025-08-11T12:07:23.636Z" }, + { url = "https://files.pythonhosted.org/packages/c4/1c/8a10c1c25b23156e63b12165a929d8eb49a6ed769fdbefb06e6f07c1e50d/multidict-6.6.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ae9408439537c5afdca05edd128a63f56a62680f4b3c234301055d7a2000220f", size = 257076, upload-time = "2025-08-11T12:07:25.049Z" }, + { url = "https://files.pythonhosted.org/packages/ad/86/90e20b5771d6805a119e483fd3d1e8393e745a11511aebca41f0da38c3e2/multidict-6.6.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:87a32d20759dc52a9e850fe1061b6e41ab28e2998d44168a8a341b99ded1dba0", size = 240694, upload-time = "2025-08-11T12:07:26.458Z" }, + { url = "https://files.pythonhosted.org/packages/e7/49/484d3e6b535bc0555b52a0a26ba86e4d8d03fd5587d4936dc59ba7583221/multidict-6.6.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:52e3c8d43cdfff587ceedce9deb25e6ae77daba560b626e97a56ddcad3756879", size = 266350, upload-time = "2025-08-11T12:07:27.94Z" }, + { url = "https://files.pythonhosted.org/packages/bf/b4/aa4c5c379b11895083d50021e229e90c408d7d875471cb3abf721e4670d6/multidict-6.6.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ad8850921d3a8d8ff6fbef790e773cecfc260bbfa0566998980d3fa8f520bc4a", size = 267250, upload-time = "2025-08-11T12:07:29.303Z" }, + { url = "https://files.pythonhosted.org/packages/80/e5/5e22c5bf96a64bdd43518b1834c6d95a4922cc2066b7d8e467dae9b6cee6/multidict-6.6.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:497a2954adc25c08daff36f795077f63ad33e13f19bfff7736e72c785391534f", size = 254900, upload-time = "2025-08-11T12:07:30.764Z" }, + { url = "https://files.pythonhosted.org/packages/17/38/58b27fed927c07035abc02befacab42491e7388ca105e087e6e0215ead64/multidict-6.6.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:024ce601f92d780ca1617ad4be5ac15b501cc2414970ffa2bb2bbc2bd5a68fa5", size = 252355, upload-time = "2025-08-11T12:07:32.205Z" }, + { url = "https://files.pythonhosted.org/packages/d0/a1/dad75d23a90c29c02b5d6f3d7c10ab36c3197613be5d07ec49c7791e186c/multidict-6.6.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:a693fc5ed9bdd1c9e898013e0da4dcc640de7963a371c0bd458e50e046bf6438", size = 250061, upload-time = "2025-08-11T12:07:33.623Z" }, + { url = "https://files.pythonhosted.org/packages/b8/1a/ac2216b61c7f116edab6dc3378cca6c70dc019c9a457ff0d754067c58b20/multidict-6.6.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:190766dac95aab54cae5b152a56520fd99298f32a1266d66d27fdd1b5ac00f4e", size = 249675, upload-time = "2025-08-11T12:07:34.958Z" }, + { url = "https://files.pythonhosted.org/packages/d4/79/1916af833b800d13883e452e8e0977c065c4ee3ab7a26941fbfdebc11895/multidict-6.6.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:34d8f2a5ffdceab9dcd97c7a016deb2308531d5f0fced2bb0c9e1df45b3363d7", size = 261247, upload-time = "2025-08-11T12:07:36.588Z" }, + { url = "https://files.pythonhosted.org/packages/c5/65/d1f84fe08ac44a5fc7391cbc20a7cedc433ea616b266284413fd86062f8c/multidict-6.6.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:59e8d40ab1f5a8597abcef00d04845155a5693b5da00d2c93dbe88f2050f2812", size = 257960, upload-time = "2025-08-11T12:07:39.735Z" }, + { url = "https://files.pythonhosted.org/packages/13/b5/29ec78057d377b195ac2c5248c773703a6b602e132a763e20ec0457e7440/multidict-6.6.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:467fe64138cfac771f0e949b938c2e1ada2b5af22f39692aa9258715e9ea613a", size = 250078, upload-time = "2025-08-11T12:07:41.525Z" }, + { url = "https://files.pythonhosted.org/packages/c4/0e/7e79d38f70a872cae32e29b0d77024bef7834b0afb406ddae6558d9e2414/multidict-6.6.4-cp313-cp313-win32.whl", hash = "sha256:14616a30fe6d0a48d0a48d1a633ab3b8bec4cf293aac65f32ed116f620adfd69", size = 41708, upload-time = "2025-08-11T12:07:43.405Z" }, + { url = "https://files.pythonhosted.org/packages/9d/34/746696dffff742e97cd6a23da953e55d0ea51fa601fa2ff387b3edcfaa2c/multidict-6.6.4-cp313-cp313-win_amd64.whl", hash = "sha256:40cd05eaeb39e2bc8939451f033e57feaa2ac99e07dbca8afe2be450a4a3b6cf", size = 45912, upload-time = "2025-08-11T12:07:45.082Z" }, + { url = "https://files.pythonhosted.org/packages/c7/87/3bac136181e271e29170d8d71929cdeddeb77f3e8b6a0c08da3a8e9da114/multidict-6.6.4-cp313-cp313-win_arm64.whl", hash = "sha256:f6eb37d511bfae9e13e82cb4d1af36b91150466f24d9b2b8a9785816deb16605", size = 43076, upload-time = "2025-08-11T12:07:46.746Z" }, + { url = "https://files.pythonhosted.org/packages/64/94/0a8e63e36c049b571c9ae41ee301ada29c3fee9643d9c2548d7d558a1d99/multidict-6.6.4-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6c84378acd4f37d1b507dfa0d459b449e2321b3ba5f2338f9b085cf7a7ba95eb", size = 82812, upload-time = "2025-08-11T12:07:48.402Z" }, + { url = "https://files.pythonhosted.org/packages/25/1a/be8e369dfcd260d2070a67e65dd3990dd635cbd735b98da31e00ea84cd4e/multidict-6.6.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0e0558693063c75f3d952abf645c78f3c5dfdd825a41d8c4d8156fc0b0da6e7e", size = 48313, upload-time = "2025-08-11T12:07:49.679Z" }, + { url = "https://files.pythonhosted.org/packages/26/5a/dd4ade298674b2f9a7b06a32c94ffbc0497354df8285f27317c66433ce3b/multidict-6.6.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3f8e2384cb83ebd23fd07e9eada8ba64afc4c759cd94817433ab8c81ee4b403f", size = 46777, upload-time = "2025-08-11T12:07:51.318Z" }, + { url = "https://files.pythonhosted.org/packages/89/db/98aa28bc7e071bfba611ac2ae803c24e96dd3a452b4118c587d3d872c64c/multidict-6.6.4-cp313-cp313t-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:f996b87b420995a9174b2a7c1a8daf7db4750be6848b03eb5e639674f7963773", size = 229321, upload-time = "2025-08-11T12:07:52.965Z" }, + { url = "https://files.pythonhosted.org/packages/c7/bc/01ddda2a73dd9d167bd85d0e8ef4293836a8f82b786c63fb1a429bc3e678/multidict-6.6.4-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cc356250cffd6e78416cf5b40dc6a74f1edf3be8e834cf8862d9ed5265cf9b0e", size = 249954, upload-time = "2025-08-11T12:07:54.423Z" }, + { url = "https://files.pythonhosted.org/packages/06/78/6b7c0f020f9aa0acf66d0ab4eb9f08375bac9a50ff5e3edb1c4ccd59eafc/multidict-6.6.4-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:dadf95aa862714ea468a49ad1e09fe00fcc9ec67d122f6596a8d40caf6cec7d0", size = 228612, upload-time = "2025-08-11T12:07:55.914Z" }, + { url = "https://files.pythonhosted.org/packages/00/44/3faa416f89b2d5d76e9d447296a81521e1c832ad6e40b92f990697b43192/multidict-6.6.4-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7dd57515bebffd8ebd714d101d4c434063322e4fe24042e90ced41f18b6d3395", size = 257528, upload-time = "2025-08-11T12:07:57.371Z" }, + { url = "https://files.pythonhosted.org/packages/05/5f/77c03b89af0fcb16f018f668207768191fb9dcfb5e3361a5e706a11db2c9/multidict-6.6.4-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:967af5f238ebc2eb1da4e77af5492219fbd9b4b812347da39a7b5f5c72c0fa45", size = 256329, upload-time = "2025-08-11T12:07:58.844Z" }, + { url = "https://files.pythonhosted.org/packages/cf/e9/ed750a2a9afb4f8dc6f13dc5b67b514832101b95714f1211cd42e0aafc26/multidict-6.6.4-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2a4c6875c37aae9794308ec43e3530e4aa0d36579ce38d89979bbf89582002bb", size = 247928, upload-time = "2025-08-11T12:08:01.037Z" }, + { url = "https://files.pythonhosted.org/packages/1f/b5/e0571bc13cda277db7e6e8a532791d4403dacc9850006cb66d2556e649c0/multidict-6.6.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:7f683a551e92bdb7fac545b9c6f9fa2aebdeefa61d607510b3533286fcab67f5", size = 245228, upload-time = "2025-08-11T12:08:02.96Z" }, + { url = "https://files.pythonhosted.org/packages/f3/a3/69a84b0eccb9824491f06368f5b86e72e4af54c3067c37c39099b6687109/multidict-6.6.4-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:3ba5aaf600edaf2a868a391779f7a85d93bed147854925f34edd24cc70a3e141", size = 235869, upload-time = "2025-08-11T12:08:04.746Z" }, + { url = "https://files.pythonhosted.org/packages/a9/9d/28802e8f9121a6a0804fa009debf4e753d0a59969ea9f70be5f5fdfcb18f/multidict-6.6.4-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:580b643b7fd2c295d83cad90d78419081f53fd532d1f1eb67ceb7060f61cff0d", size = 243446, upload-time = "2025-08-11T12:08:06.332Z" }, + { url = "https://files.pythonhosted.org/packages/38/ea/6c98add069b4878c1d66428a5f5149ddb6d32b1f9836a826ac764b9940be/multidict-6.6.4-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:37b7187197da6af3ee0b044dbc9625afd0c885f2800815b228a0e70f9a7f473d", size = 252299, upload-time = "2025-08-11T12:08:07.931Z" }, + { url = "https://files.pythonhosted.org/packages/3a/09/8fe02d204473e14c0af3affd50af9078839dfca1742f025cca765435d6b4/multidict-6.6.4-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e1b93790ed0bc26feb72e2f08299691ceb6da5e9e14a0d13cc74f1869af327a0", size = 246926, upload-time = "2025-08-11T12:08:09.467Z" }, + { url = "https://files.pythonhosted.org/packages/37/3d/7b1e10d774a6df5175ecd3c92bff069e77bed9ec2a927fdd4ff5fe182f67/multidict-6.6.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a506a77ddee1efcca81ecbeae27ade3e09cdf21a8ae854d766c2bb4f14053f92", size = 243383, upload-time = "2025-08-11T12:08:10.981Z" }, + { url = "https://files.pythonhosted.org/packages/50/b0/a6fae46071b645ae98786ab738447de1ef53742eaad949f27e960864bb49/multidict-6.6.4-cp313-cp313t-win32.whl", hash = "sha256:f93b2b2279883d1d0a9e1bd01f312d6fc315c5e4c1f09e112e4736e2f650bc4e", size = 47775, upload-time = "2025-08-11T12:08:12.439Z" }, + { url = "https://files.pythonhosted.org/packages/b2/0a/2436550b1520091af0600dff547913cb2d66fbac27a8c33bc1b1bccd8d98/multidict-6.6.4-cp313-cp313t-win_amd64.whl", hash = "sha256:6d46a180acdf6e87cc41dc15d8f5c2986e1e8739dc25dbb7dac826731ef381a4", size = 53100, upload-time = "2025-08-11T12:08:13.823Z" }, + { url = "https://files.pythonhosted.org/packages/97/ea/43ac51faff934086db9c072a94d327d71b7d8b40cd5dcb47311330929ef0/multidict-6.6.4-cp313-cp313t-win_arm64.whl", hash = "sha256:756989334015e3335d087a27331659820d53ba432befdef6a718398b0a8493ad", size = 45501, upload-time = "2025-08-11T12:08:15.173Z" }, + { url = "https://files.pythonhosted.org/packages/fd/69/b547032297c7e63ba2af494edba695d781af8a0c6e89e4d06cf848b21d80/multidict-6.6.4-py3-none-any.whl", hash = "sha256:27d8f8e125c07cb954e54d75d04905a9bba8a439c1d84aca94949d4d03d8601c", size = 12313, upload-time = "2025-08-11T12:08:46.891Z" }, +] + +[[package]] +name = "numpy" +version = "2.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/37/7d/3fec4199c5ffb892bed55cff901e4f39a58c81df9c44c280499e92cad264/numpy-2.3.2.tar.gz", hash = "sha256:e0486a11ec30cdecb53f184d496d1c6a20786c81e55e41640270130056f8ee48", size = 20489306, upload-time = "2025-07-24T21:32:07.553Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/6d/745dd1c1c5c284d17725e5c802ca4d45cfc6803519d777f087b71c9f4069/numpy-2.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bc3186bea41fae9d8e90c2b4fb5f0a1f5a690682da79b92574d63f56b529080b", size = 20956420, upload-time = "2025-07-24T20:28:18.002Z" }, + { url = "https://files.pythonhosted.org/packages/bc/96/e7b533ea5740641dd62b07a790af5d9d8fec36000b8e2d0472bd7574105f/numpy-2.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2f4f0215edb189048a3c03bd5b19345bdfa7b45a7a6f72ae5945d2a28272727f", size = 14184660, upload-time = "2025-07-24T20:28:39.522Z" }, + { url = "https://files.pythonhosted.org/packages/2b/53/102c6122db45a62aa20d1b18c9986f67e6b97e0d6fbc1ae13e3e4c84430c/numpy-2.3.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:8b1224a734cd509f70816455c3cffe13a4f599b1bf7130f913ba0e2c0b2006c0", size = 5113382, upload-time = "2025-07-24T20:28:48.544Z" }, + { url = "https://files.pythonhosted.org/packages/2b/21/376257efcbf63e624250717e82b4fae93d60178f09eb03ed766dbb48ec9c/numpy-2.3.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:3dcf02866b977a38ba3ec10215220609ab9667378a9e2150615673f3ffd6c73b", size = 6647258, upload-time = "2025-07-24T20:28:59.104Z" }, + { url = "https://files.pythonhosted.org/packages/91/ba/f4ebf257f08affa464fe6036e13f2bf9d4642a40228781dc1235da81be9f/numpy-2.3.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:572d5512df5470f50ada8d1972c5f1082d9a0b7aa5944db8084077570cf98370", size = 14281409, upload-time = "2025-07-24T20:40:30.298Z" }, + { url = "https://files.pythonhosted.org/packages/59/ef/f96536f1df42c668cbacb727a8c6da7afc9c05ece6d558927fb1722693e1/numpy-2.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8145dd6d10df13c559d1e4314df29695613575183fa2e2d11fac4c208c8a1f73", size = 16641317, upload-time = "2025-07-24T20:40:56.625Z" }, + { url = "https://files.pythonhosted.org/packages/f6/a7/af813a7b4f9a42f498dde8a4c6fcbff8100eed00182cc91dbaf095645f38/numpy-2.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:103ea7063fa624af04a791c39f97070bf93b96d7af7eb23530cd087dc8dbe9dc", size = 16056262, upload-time = "2025-07-24T20:41:20.797Z" }, + { url = "https://files.pythonhosted.org/packages/8b/5d/41c4ef8404caaa7f05ed1cfb06afe16a25895260eacbd29b4d84dff2920b/numpy-2.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fc927d7f289d14f5e037be917539620603294454130b6de200091e23d27dc9be", size = 18579342, upload-time = "2025-07-24T20:41:50.753Z" }, + { url = "https://files.pythonhosted.org/packages/a1/4f/9950e44c5a11636f4a3af6e825ec23003475cc9a466edb7a759ed3ea63bd/numpy-2.3.2-cp312-cp312-win32.whl", hash = "sha256:d95f59afe7f808c103be692175008bab926b59309ade3e6d25009e9a171f7036", size = 6320610, upload-time = "2025-07-24T20:42:01.551Z" }, + { url = "https://files.pythonhosted.org/packages/7c/2f/244643a5ce54a94f0a9a2ab578189c061e4a87c002e037b0829dd77293b6/numpy-2.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:9e196ade2400c0c737d93465327d1ae7c06c7cb8a1756121ebf54b06ca183c7f", size = 12786292, upload-time = "2025-07-24T20:42:20.738Z" }, + { url = "https://files.pythonhosted.org/packages/54/cd/7b5f49d5d78db7badab22d8323c1b6ae458fbf86c4fdfa194ab3cd4eb39b/numpy-2.3.2-cp312-cp312-win_arm64.whl", hash = "sha256:ee807923782faaf60d0d7331f5e86da7d5e3079e28b291973c545476c2b00d07", size = 10194071, upload-time = "2025-07-24T20:42:36.657Z" }, + { url = "https://files.pythonhosted.org/packages/1c/c0/c6bb172c916b00700ed3bf71cb56175fd1f7dbecebf8353545d0b5519f6c/numpy-2.3.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c8d9727f5316a256425892b043736d63e89ed15bbfe6556c5ff4d9d4448ff3b3", size = 20949074, upload-time = "2025-07-24T20:43:07.813Z" }, + { url = "https://files.pythonhosted.org/packages/20/4e/c116466d22acaf4573e58421c956c6076dc526e24a6be0903219775d862e/numpy-2.3.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:efc81393f25f14d11c9d161e46e6ee348637c0a1e8a54bf9dedc472a3fae993b", size = 14177311, upload-time = "2025-07-24T20:43:29.335Z" }, + { url = "https://files.pythonhosted.org/packages/78/45/d4698c182895af189c463fc91d70805d455a227261d950e4e0f1310c2550/numpy-2.3.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:dd937f088a2df683cbb79dda9a772b62a3e5a8a7e76690612c2737f38c6ef1b6", size = 5106022, upload-time = "2025-07-24T20:43:37.999Z" }, + { url = "https://files.pythonhosted.org/packages/9f/76/3e6880fef4420179309dba72a8c11f6166c431cf6dee54c577af8906f914/numpy-2.3.2-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:11e58218c0c46c80509186e460d79fbdc9ca1eb8d8aee39d8f2dc768eb781089", size = 6640135, upload-time = "2025-07-24T20:43:49.28Z" }, + { url = "https://files.pythonhosted.org/packages/34/fa/87ff7f25b3c4ce9085a62554460b7db686fef1e0207e8977795c7b7d7ba1/numpy-2.3.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5ad4ebcb683a1f99f4f392cc522ee20a18b2bb12a2c1c42c3d48d5a1adc9d3d2", size = 14278147, upload-time = "2025-07-24T20:44:10.328Z" }, + { url = "https://files.pythonhosted.org/packages/1d/0f/571b2c7a3833ae419fe69ff7b479a78d313581785203cc70a8db90121b9a/numpy-2.3.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:938065908d1d869c7d75d8ec45f735a034771c6ea07088867f713d1cd3bbbe4f", size = 16635989, upload-time = "2025-07-24T20:44:34.88Z" }, + { url = "https://files.pythonhosted.org/packages/24/5a/84ae8dca9c9a4c592fe11340b36a86ffa9fd3e40513198daf8a97839345c/numpy-2.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:66459dccc65d8ec98cc7df61307b64bf9e08101f9598755d42d8ae65d9a7a6ee", size = 16053052, upload-time = "2025-07-24T20:44:58.872Z" }, + { url = "https://files.pythonhosted.org/packages/57/7c/e5725d99a9133b9813fcf148d3f858df98511686e853169dbaf63aec6097/numpy-2.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a7af9ed2aa9ec5950daf05bb11abc4076a108bd3c7db9aa7251d5f107079b6a6", size = 18577955, upload-time = "2025-07-24T20:45:26.714Z" }, + { url = "https://files.pythonhosted.org/packages/ae/11/7c546fcf42145f29b71e4d6f429e96d8d68e5a7ba1830b2e68d7418f0bbd/numpy-2.3.2-cp313-cp313-win32.whl", hash = "sha256:906a30249315f9c8e17b085cc5f87d3f369b35fedd0051d4a84686967bdbbd0b", size = 6311843, upload-time = "2025-07-24T20:49:24.444Z" }, + { url = "https://files.pythonhosted.org/packages/aa/6f/a428fd1cb7ed39b4280d057720fed5121b0d7754fd2a9768640160f5517b/numpy-2.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:c63d95dc9d67b676e9108fe0d2182987ccb0f11933c1e8959f42fa0da8d4fa56", size = 12782876, upload-time = "2025-07-24T20:49:43.227Z" }, + { url = "https://files.pythonhosted.org/packages/65/85/4ea455c9040a12595fb6c43f2c217257c7b52dd0ba332c6a6c1d28b289fe/numpy-2.3.2-cp313-cp313-win_arm64.whl", hash = "sha256:b05a89f2fb84d21235f93de47129dd4f11c16f64c87c33f5e284e6a3a54e43f2", size = 10192786, upload-time = "2025-07-24T20:49:59.443Z" }, + { url = "https://files.pythonhosted.org/packages/80/23/8278f40282d10c3f258ec3ff1b103d4994bcad78b0cba9208317f6bb73da/numpy-2.3.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4e6ecfeddfa83b02318f4d84acf15fbdbf9ded18e46989a15a8b6995dfbf85ab", size = 21047395, upload-time = "2025-07-24T20:45:58.821Z" }, + { url = "https://files.pythonhosted.org/packages/1f/2d/624f2ce4a5df52628b4ccd16a4f9437b37c35f4f8a50d00e962aae6efd7a/numpy-2.3.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:508b0eada3eded10a3b55725b40806a4b855961040180028f52580c4729916a2", size = 14300374, upload-time = "2025-07-24T20:46:20.207Z" }, + { url = "https://files.pythonhosted.org/packages/f6/62/ff1e512cdbb829b80a6bd08318a58698867bca0ca2499d101b4af063ee97/numpy-2.3.2-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:754d6755d9a7588bdc6ac47dc4ee97867271b17cee39cb87aef079574366db0a", size = 5228864, upload-time = "2025-07-24T20:46:30.58Z" }, + { url = "https://files.pythonhosted.org/packages/7d/8e/74bc18078fff03192d4032cfa99d5a5ca937807136d6f5790ce07ca53515/numpy-2.3.2-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:a9f66e7d2b2d7712410d3bc5684149040ef5f19856f20277cd17ea83e5006286", size = 6737533, upload-time = "2025-07-24T20:46:46.111Z" }, + { url = "https://files.pythonhosted.org/packages/19/ea/0731efe2c9073ccca5698ef6a8c3667c4cf4eea53fcdcd0b50140aba03bc/numpy-2.3.2-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:de6ea4e5a65d5a90c7d286ddff2b87f3f4ad61faa3db8dabe936b34c2275b6f8", size = 14352007, upload-time = "2025-07-24T20:47:07.1Z" }, + { url = "https://files.pythonhosted.org/packages/cf/90/36be0865f16dfed20f4bc7f75235b963d5939707d4b591f086777412ff7b/numpy-2.3.2-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a3ef07ec8cbc8fc9e369c8dcd52019510c12da4de81367d8b20bc692aa07573a", size = 16701914, upload-time = "2025-07-24T20:47:32.459Z" }, + { url = "https://files.pythonhosted.org/packages/94/30/06cd055e24cb6c38e5989a9e747042b4e723535758e6153f11afea88c01b/numpy-2.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:27c9f90e7481275c7800dc9c24b7cc40ace3fdb970ae4d21eaff983a32f70c91", size = 16132708, upload-time = "2025-07-24T20:47:58.129Z" }, + { url = "https://files.pythonhosted.org/packages/9a/14/ecede608ea73e58267fd7cb78f42341b3b37ba576e778a1a06baffbe585c/numpy-2.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:07b62978075b67eee4065b166d000d457c82a1efe726cce608b9db9dd66a73a5", size = 18651678, upload-time = "2025-07-24T20:48:25.402Z" }, + { url = "https://files.pythonhosted.org/packages/40/f3/2fe6066b8d07c3685509bc24d56386534c008b462a488b7f503ba82b8923/numpy-2.3.2-cp313-cp313t-win32.whl", hash = "sha256:c771cfac34a4f2c0de8e8c97312d07d64fd8f8ed45bc9f5726a7e947270152b5", size = 6441832, upload-time = "2025-07-24T20:48:37.181Z" }, + { url = "https://files.pythonhosted.org/packages/0b/ba/0937d66d05204d8f28630c9c60bc3eda68824abde4cf756c4d6aad03b0c6/numpy-2.3.2-cp313-cp313t-win_amd64.whl", hash = "sha256:72dbebb2dcc8305c431b2836bcc66af967df91be793d63a24e3d9b741374c450", size = 12927049, upload-time = "2025-07-24T20:48:56.24Z" }, + { url = "https://files.pythonhosted.org/packages/e9/ed/13542dd59c104d5e654dfa2ac282c199ba64846a74c2c4bcdbc3a0f75df1/numpy-2.3.2-cp313-cp313t-win_arm64.whl", hash = "sha256:72c6df2267e926a6d5286b0a6d556ebe49eae261062059317837fda12ddf0c1a", size = 10262935, upload-time = "2025-07-24T20:49:13.136Z" }, + { url = "https://files.pythonhosted.org/packages/c9/7c/7659048aaf498f7611b783e000c7268fcc4dcf0ce21cd10aad7b2e8f9591/numpy-2.3.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:448a66d052d0cf14ce9865d159bfc403282c9bc7bb2a31b03cc18b651eca8b1a", size = 20950906, upload-time = "2025-07-24T20:50:30.346Z" }, + { url = "https://files.pythonhosted.org/packages/80/db/984bea9d4ddf7112a04cfdfb22b1050af5757864cfffe8e09e44b7f11a10/numpy-2.3.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:546aaf78e81b4081b2eba1d105c3b34064783027a06b3ab20b6eba21fb64132b", size = 14185607, upload-time = "2025-07-24T20:50:51.923Z" }, + { url = "https://files.pythonhosted.org/packages/e4/76/b3d6f414f4eca568f469ac112a3b510938d892bc5a6c190cb883af080b77/numpy-2.3.2-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:87c930d52f45df092f7578889711a0768094debf73cfcde105e2d66954358125", size = 5114110, upload-time = "2025-07-24T20:51:01.041Z" }, + { url = "https://files.pythonhosted.org/packages/9e/d2/6f5e6826abd6bca52392ed88fe44a4b52aacb60567ac3bc86c67834c3a56/numpy-2.3.2-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:8dc082ea901a62edb8f59713c6a7e28a85daddcb67454c839de57656478f5b19", size = 6642050, upload-time = "2025-07-24T20:51:11.64Z" }, + { url = "https://files.pythonhosted.org/packages/c4/43/f12b2ade99199e39c73ad182f103f9d9791f48d885c600c8e05927865baf/numpy-2.3.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:af58de8745f7fa9ca1c0c7c943616c6fe28e75d0c81f5c295810e3c83b5be92f", size = 14296292, upload-time = "2025-07-24T20:51:33.488Z" }, + { url = "https://files.pythonhosted.org/packages/5d/f9/77c07d94bf110a916b17210fac38680ed8734c236bfed9982fd8524a7b47/numpy-2.3.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed5527c4cf10f16c6d0b6bee1f89958bccb0ad2522c8cadc2efd318bcd545f5", size = 16638913, upload-time = "2025-07-24T20:51:58.517Z" }, + { url = "https://files.pythonhosted.org/packages/9b/d1/9d9f2c8ea399cc05cfff8a7437453bd4e7d894373a93cdc46361bbb49a7d/numpy-2.3.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:095737ed986e00393ec18ec0b21b47c22889ae4b0cd2d5e88342e08b01141f58", size = 16071180, upload-time = "2025-07-24T20:52:22.827Z" }, + { url = "https://files.pythonhosted.org/packages/4c/41/82e2c68aff2a0c9bf315e47d61951099fed65d8cb2c8d9dc388cb87e947e/numpy-2.3.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b5e40e80299607f597e1a8a247ff8d71d79c5b52baa11cc1cce30aa92d2da6e0", size = 18576809, upload-time = "2025-07-24T20:52:51.015Z" }, + { url = "https://files.pythonhosted.org/packages/14/14/4b4fd3efb0837ed252d0f583c5c35a75121038a8c4e065f2c259be06d2d8/numpy-2.3.2-cp314-cp314-win32.whl", hash = "sha256:7d6e390423cc1f76e1b8108c9b6889d20a7a1f59d9a60cac4a050fa734d6c1e2", size = 6366410, upload-time = "2025-07-24T20:56:44.949Z" }, + { url = "https://files.pythonhosted.org/packages/11/9e/b4c24a6b8467b61aced5c8dc7dcfce23621baa2e17f661edb2444a418040/numpy-2.3.2-cp314-cp314-win_amd64.whl", hash = "sha256:b9d0878b21e3918d76d2209c924ebb272340da1fb51abc00f986c258cd5e957b", size = 12918821, upload-time = "2025-07-24T20:57:06.479Z" }, + { url = "https://files.pythonhosted.org/packages/0e/0f/0dc44007c70b1007c1cef86b06986a3812dd7106d8f946c09cfa75782556/numpy-2.3.2-cp314-cp314-win_arm64.whl", hash = "sha256:2738534837c6a1d0c39340a190177d7d66fdf432894f469728da901f8f6dc910", size = 10477303, upload-time = "2025-07-24T20:57:22.879Z" }, + { url = "https://files.pythonhosted.org/packages/8b/3e/075752b79140b78ddfc9c0a1634d234cfdbc6f9bbbfa6b7504e445ad7d19/numpy-2.3.2-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:4d002ecf7c9b53240be3bb69d80f86ddbd34078bae04d87be81c1f58466f264e", size = 21047524, upload-time = "2025-07-24T20:53:22.086Z" }, + { url = "https://files.pythonhosted.org/packages/fe/6d/60e8247564a72426570d0e0ea1151b95ce5bd2f1597bb878a18d32aec855/numpy-2.3.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:293b2192c6bcce487dbc6326de5853787f870aeb6c43f8f9c6496db5b1781e45", size = 14300519, upload-time = "2025-07-24T20:53:44.053Z" }, + { url = "https://files.pythonhosted.org/packages/4d/73/d8326c442cd428d47a067070c3ac6cc3b651a6e53613a1668342a12d4479/numpy-2.3.2-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:0a4f2021a6da53a0d580d6ef5db29947025ae8b35b3250141805ea9a32bbe86b", size = 5228972, upload-time = "2025-07-24T20:53:53.81Z" }, + { url = "https://files.pythonhosted.org/packages/34/2e/e71b2d6dad075271e7079db776196829019b90ce3ece5c69639e4f6fdc44/numpy-2.3.2-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:9c144440db4bf3bb6372d2c3e49834cc0ff7bb4c24975ab33e01199e645416f2", size = 6737439, upload-time = "2025-07-24T20:54:04.742Z" }, + { url = "https://files.pythonhosted.org/packages/15/b0/d004bcd56c2c5e0500ffc65385eb6d569ffd3363cb5e593ae742749b2daa/numpy-2.3.2-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f92d6c2a8535dc4fe4419562294ff957f83a16ebdec66df0805e473ffaad8bd0", size = 14352479, upload-time = "2025-07-24T20:54:25.819Z" }, + { url = "https://files.pythonhosted.org/packages/11/e3/285142fcff8721e0c99b51686426165059874c150ea9ab898e12a492e291/numpy-2.3.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cefc2219baa48e468e3db7e706305fcd0c095534a192a08f31e98d83a7d45fb0", size = 16702805, upload-time = "2025-07-24T20:54:50.814Z" }, + { url = "https://files.pythonhosted.org/packages/33/c3/33b56b0e47e604af2c7cd065edca892d180f5899599b76830652875249a3/numpy-2.3.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:76c3e9501ceb50b2ff3824c3589d5d1ab4ac857b0ee3f8f49629d0de55ecf7c2", size = 16133830, upload-time = "2025-07-24T20:55:17.306Z" }, + { url = "https://files.pythonhosted.org/packages/6e/ae/7b1476a1f4d6a48bc669b8deb09939c56dd2a439db1ab03017844374fb67/numpy-2.3.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:122bf5ed9a0221b3419672493878ba4967121514b1d7d4656a7580cd11dddcbf", size = 18652665, upload-time = "2025-07-24T20:55:46.665Z" }, + { url = "https://files.pythonhosted.org/packages/14/ba/5b5c9978c4bb161034148ade2de9db44ec316fab89ce8c400db0e0c81f86/numpy-2.3.2-cp314-cp314t-win32.whl", hash = "sha256:6f1ae3dcb840edccc45af496f312528c15b1f79ac318169d094e85e4bb35fdf1", size = 6514777, upload-time = "2025-07-24T20:55:57.66Z" }, + { url = "https://files.pythonhosted.org/packages/eb/46/3dbaf0ae7c17cdc46b9f662c56da2054887b8d9e737c1476f335c83d33db/numpy-2.3.2-cp314-cp314t-win_amd64.whl", hash = "sha256:087ffc25890d89a43536f75c5fe8770922008758e8eeeef61733957041ed2f9b", size = 13111856, upload-time = "2025-07-24T20:56:17.318Z" }, + { url = "https://files.pythonhosted.org/packages/c1/9e/1652778bce745a67b5fe05adde60ed362d38eb17d919a540e813d30f6874/numpy-2.3.2-cp314-cp314t-win_arm64.whl", hash = "sha256:092aeb3449833ea9c0bf0089d70c29ae480685dd2377ec9cdbbb620257f84631", size = 10544226, upload-time = "2025-07-24T20:56:34.509Z" }, +] + +[[package]] +name = "odrive" +version = "0.6.10.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "appdirs" }, + { name = "ipython" }, + { name = "setuptools" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/df/1351f79f7fac91d0fc4465c5a074d16a5ec928cb02896c8e56efa512806f/odrive-0.6.10.post0-py37-none-macosx_12_0_arm64.whl", hash = "sha256:28909c265183fc846e5da0706a9fdd481ba95099aeea66b49f88836455aa50f9", size = 272583, upload-time = "2025-04-15T06:08:07.423Z" }, + { url = "https://files.pythonhosted.org/packages/2c/88/c8bb662c6464304748532c5869cfbfa7d03af447d5b9af2f6c97c9bdf654/odrive-0.6.10.post0-py37-none-macosx_12_0_x86_64.whl", hash = "sha256:9066d93b7c03f74921d3544f9a706b485fa819d4063fdf39b689f2d90f3b69b1", size = 279275, upload-time = "2025-04-15T06:08:08.905Z" }, + { url = "https://files.pythonhosted.org/packages/0c/6d/b45ee16ce3a5264de76ff17974894008a941475774becb3f0f0e2580ac82/odrive-0.6.10.post0-py37-none-manylinux_2_28_aarch64.whl", hash = "sha256:4104c61a33eaa9bb3e5befbb29de717e0fcab6028d77c40e2a55c076ee3e0de8", size = 724037, upload-time = "2025-04-15T06:08:10.239Z" }, + { url = "https://files.pythonhosted.org/packages/c1/d8/3ca69192838807f220ae389325dcd2487ebc7c8833cffe3602bbb01f6211/odrive-0.6.10.post0-py37-none-manylinux_2_28_x86_64.whl", hash = "sha256:a20f0aa7fd96745a867717ff5eeaffd224b899a7bcb5e3a7a3815d1bfd05853f", size = 729407, upload-time = "2025-04-15T06:08:11.584Z" }, + { url = "https://files.pythonhosted.org/packages/bc/d2/54b4aa0d70cb0680f3187e1da89b860ed448a494f675d91b7950722c8139/odrive-0.6.10.post0-py37-none-win_amd64.whl", hash = "sha256:75e9d363b7ae4150376531c20967b73f0d7d7696db04142aa0d7401d1c3aa619", size = 913400, upload-time = "2025-04-15T06:08:12.938Z" }, +] + +[[package]] +name = "packaging" +version = "25.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload-time = "2025-04-19T11:48:59.673Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, +] + +[[package]] +name = "parso" +version = "0.8.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/66/94/68e2e17afaa9169cf6412ab0f28623903be73d1b32e208d9e8e541bb086d/parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d", size = 400609, upload-time = "2024-04-05T09:43:55.897Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c6/ac/dac4a63f978e4dcb3c6d3a78c4d8e0192a113d288502a1216950c41b1027/parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18", size = 103650, upload-time = "2024-04-05T09:43:53.299Z" }, +] + +[[package]] +name = "pexpect" +version = "4.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ptyprocess" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450, upload-time = "2023-11-25T09:07:26.339Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772, upload-time = "2023-11-25T06:56:14.81Z" }, +] + +[[package]] +name = "pluggy" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, +] + +[[package]] +name = "prompt-toolkit" +version = "3.0.51" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wcwidth" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bb/6e/9d084c929dfe9e3bfe0c6a47e31f78a25c54627d64a66e884a8bf5474f1c/prompt_toolkit-3.0.51.tar.gz", hash = "sha256:931a162e3b27fc90c86f1b48bb1fb2c528c2761475e57c9c06de13311c7b54ed", size = 428940, upload-time = "2025-04-15T09:18:47.731Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ce/4f/5249960887b1fbe561d9ff265496d170b55a735b76724f10ef19f9e40716/prompt_toolkit-3.0.51-py3-none-any.whl", hash = "sha256:52742911fde84e2d423e2f9a4cf1de7d7ac4e51958f648d9540e0fb8db077b07", size = 387810, upload-time = "2025-04-15T09:18:44.753Z" }, +] + +[[package]] +name = "propcache" +version = "0.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a6/16/43264e4a779dd8588c21a70f0709665ee8f611211bdd2c87d952cfa7c776/propcache-0.3.2.tar.gz", hash = "sha256:20d7d62e4e7ef05f221e0db2856b979540686342e7dd9973b815599c7057e168", size = 44139, upload-time = "2025-06-09T22:56:06.081Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/42/9ca01b0a6f48e81615dca4765a8f1dd2c057e0540f6116a27dc5ee01dfb6/propcache-0.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8de106b6c84506b31c27168582cd3cb3000a6412c16df14a8628e5871ff83c10", size = 73674, upload-time = "2025-06-09T22:54:30.551Z" }, + { url = "https://files.pythonhosted.org/packages/af/6e/21293133beb550f9c901bbece755d582bfaf2176bee4774000bd4dd41884/propcache-0.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:28710b0d3975117239c76600ea351934ac7b5ff56e60953474342608dbbb6154", size = 43570, upload-time = "2025-06-09T22:54:32.296Z" }, + { url = "https://files.pythonhosted.org/packages/0c/c8/0393a0a3a2b8760eb3bde3c147f62b20044f0ddac81e9d6ed7318ec0d852/propcache-0.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce26862344bdf836650ed2487c3d724b00fbfec4233a1013f597b78c1cb73615", size = 43094, upload-time = "2025-06-09T22:54:33.929Z" }, + { url = "https://files.pythonhosted.org/packages/37/2c/489afe311a690399d04a3e03b069225670c1d489eb7b044a566511c1c498/propcache-0.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bca54bd347a253af2cf4544bbec232ab982f4868de0dd684246b67a51bc6b1db", size = 226958, upload-time = "2025-06-09T22:54:35.186Z" }, + { url = "https://files.pythonhosted.org/packages/9d/ca/63b520d2f3d418c968bf596839ae26cf7f87bead026b6192d4da6a08c467/propcache-0.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:55780d5e9a2ddc59711d727226bb1ba83a22dd32f64ee15594b9392b1f544eb1", size = 234894, upload-time = "2025-06-09T22:54:36.708Z" }, + { url = "https://files.pythonhosted.org/packages/11/60/1d0ed6fff455a028d678df30cc28dcee7af77fa2b0e6962ce1df95c9a2a9/propcache-0.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:035e631be25d6975ed87ab23153db6a73426a48db688070d925aa27e996fe93c", size = 233672, upload-time = "2025-06-09T22:54:38.062Z" }, + { url = "https://files.pythonhosted.org/packages/37/7c/54fd5301ef38505ab235d98827207176a5c9b2aa61939b10a460ca53e123/propcache-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee6f22b6eaa39297c751d0e80c0d3a454f112f5c6481214fcf4c092074cecd67", size = 224395, upload-time = "2025-06-09T22:54:39.634Z" }, + { url = "https://files.pythonhosted.org/packages/ee/1a/89a40e0846f5de05fdc6779883bf46ba980e6df4d2ff8fb02643de126592/propcache-0.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ca3aee1aa955438c4dba34fc20a9f390e4c79967257d830f137bd5a8a32ed3b", size = 212510, upload-time = "2025-06-09T22:54:41.565Z" }, + { url = "https://files.pythonhosted.org/packages/5e/33/ca98368586c9566a6b8d5ef66e30484f8da84c0aac3f2d9aec6d31a11bd5/propcache-0.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7a4f30862869fa2b68380d677cc1c5fcf1e0f2b9ea0cf665812895c75d0ca3b8", size = 222949, upload-time = "2025-06-09T22:54:43.038Z" }, + { url = "https://files.pythonhosted.org/packages/ba/11/ace870d0aafe443b33b2f0b7efdb872b7c3abd505bfb4890716ad7865e9d/propcache-0.3.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b77ec3c257d7816d9f3700013639db7491a434644c906a2578a11daf13176251", size = 217258, upload-time = "2025-06-09T22:54:44.376Z" }, + { url = "https://files.pythonhosted.org/packages/5b/d2/86fd6f7adffcfc74b42c10a6b7db721d1d9ca1055c45d39a1a8f2a740a21/propcache-0.3.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:cab90ac9d3f14b2d5050928483d3d3b8fb6b4018893fc75710e6aa361ecb2474", size = 213036, upload-time = "2025-06-09T22:54:46.243Z" }, + { url = "https://files.pythonhosted.org/packages/07/94/2d7d1e328f45ff34a0a284cf5a2847013701e24c2a53117e7c280a4316b3/propcache-0.3.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:0b504d29f3c47cf6b9e936c1852246c83d450e8e063d50562115a6be6d3a2535", size = 227684, upload-time = "2025-06-09T22:54:47.63Z" }, + { url = "https://files.pythonhosted.org/packages/b7/05/37ae63a0087677e90b1d14710e532ff104d44bc1efa3b3970fff99b891dc/propcache-0.3.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:ce2ac2675a6aa41ddb2a0c9cbff53780a617ac3d43e620f8fd77ba1c84dcfc06", size = 234562, upload-time = "2025-06-09T22:54:48.982Z" }, + { url = "https://files.pythonhosted.org/packages/a4/7c/3f539fcae630408d0bd8bf3208b9a647ccad10976eda62402a80adf8fc34/propcache-0.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:62b4239611205294cc433845b914131b2a1f03500ff3c1ed093ed216b82621e1", size = 222142, upload-time = "2025-06-09T22:54:50.424Z" }, + { url = "https://files.pythonhosted.org/packages/7c/d2/34b9eac8c35f79f8a962546b3e97e9d4b990c420ee66ac8255d5d9611648/propcache-0.3.2-cp312-cp312-win32.whl", hash = "sha256:df4a81b9b53449ebc90cc4deefb052c1dd934ba85012aa912c7ea7b7e38b60c1", size = 37711, upload-time = "2025-06-09T22:54:52.072Z" }, + { url = "https://files.pythonhosted.org/packages/19/61/d582be5d226cf79071681d1b46b848d6cb03d7b70af7063e33a2787eaa03/propcache-0.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:7046e79b989d7fe457bb755844019e10f693752d169076138abf17f31380800c", size = 41479, upload-time = "2025-06-09T22:54:53.234Z" }, + { url = "https://files.pythonhosted.org/packages/dc/d1/8c747fafa558c603c4ca19d8e20b288aa0c7cda74e9402f50f31eb65267e/propcache-0.3.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ca592ed634a73ca002967458187109265e980422116c0a107cf93d81f95af945", size = 71286, upload-time = "2025-06-09T22:54:54.369Z" }, + { url = "https://files.pythonhosted.org/packages/61/99/d606cb7986b60d89c36de8a85d58764323b3a5ff07770a99d8e993b3fa73/propcache-0.3.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9ecb0aad4020e275652ba3975740f241bd12a61f1a784df044cf7477a02bc252", size = 42425, upload-time = "2025-06-09T22:54:55.642Z" }, + { url = "https://files.pythonhosted.org/packages/8c/96/ef98f91bbb42b79e9bb82bdd348b255eb9d65f14dbbe3b1594644c4073f7/propcache-0.3.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7f08f1cc28bd2eade7a8a3d2954ccc673bb02062e3e7da09bc75d843386b342f", size = 41846, upload-time = "2025-06-09T22:54:57.246Z" }, + { url = "https://files.pythonhosted.org/packages/5b/ad/3f0f9a705fb630d175146cd7b1d2bf5555c9beaed54e94132b21aac098a6/propcache-0.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1a342c834734edb4be5ecb1e9fb48cb64b1e2320fccbd8c54bf8da8f2a84c33", size = 208871, upload-time = "2025-06-09T22:54:58.975Z" }, + { url = "https://files.pythonhosted.org/packages/3a/38/2085cda93d2c8b6ec3e92af2c89489a36a5886b712a34ab25de9fbca7992/propcache-0.3.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a544caaae1ac73f1fecfae70ded3e93728831affebd017d53449e3ac052ac1e", size = 215720, upload-time = "2025-06-09T22:55:00.471Z" }, + { url = "https://files.pythonhosted.org/packages/61/c1/d72ea2dc83ac7f2c8e182786ab0fc2c7bd123a1ff9b7975bee671866fe5f/propcache-0.3.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:310d11aa44635298397db47a3ebce7db99a4cc4b9bbdfcf6c98a60c8d5261cf1", size = 215203, upload-time = "2025-06-09T22:55:01.834Z" }, + { url = "https://files.pythonhosted.org/packages/af/81/b324c44ae60c56ef12007105f1460d5c304b0626ab0cc6b07c8f2a9aa0b8/propcache-0.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c1396592321ac83157ac03a2023aa6cc4a3cc3cfdecb71090054c09e5a7cce3", size = 206365, upload-time = "2025-06-09T22:55:03.199Z" }, + { url = "https://files.pythonhosted.org/packages/09/73/88549128bb89e66d2aff242488f62869014ae092db63ccea53c1cc75a81d/propcache-0.3.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cabf5b5902272565e78197edb682017d21cf3b550ba0460ee473753f28d23c1", size = 196016, upload-time = "2025-06-09T22:55:04.518Z" }, + { url = "https://files.pythonhosted.org/packages/b9/3f/3bdd14e737d145114a5eb83cb172903afba7242f67c5877f9909a20d948d/propcache-0.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0a2f2235ac46a7aa25bdeb03a9e7060f6ecbd213b1f9101c43b3090ffb971ef6", size = 205596, upload-time = "2025-06-09T22:55:05.942Z" }, + { url = "https://files.pythonhosted.org/packages/0f/ca/2f4aa819c357d3107c3763d7ef42c03980f9ed5c48c82e01e25945d437c1/propcache-0.3.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:92b69e12e34869a6970fd2f3da91669899994b47c98f5d430b781c26f1d9f387", size = 200977, upload-time = "2025-06-09T22:55:07.792Z" }, + { url = "https://files.pythonhosted.org/packages/cd/4a/e65276c7477533c59085251ae88505caf6831c0e85ff8b2e31ebcbb949b1/propcache-0.3.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:54e02207c79968ebbdffc169591009f4474dde3b4679e16634d34c9363ff56b4", size = 197220, upload-time = "2025-06-09T22:55:09.173Z" }, + { url = "https://files.pythonhosted.org/packages/7c/54/fc7152e517cf5578278b242396ce4d4b36795423988ef39bb8cd5bf274c8/propcache-0.3.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4adfb44cb588001f68c5466579d3f1157ca07f7504fc91ec87862e2b8e556b88", size = 210642, upload-time = "2025-06-09T22:55:10.62Z" }, + { url = "https://files.pythonhosted.org/packages/b9/80/abeb4a896d2767bf5f1ea7b92eb7be6a5330645bd7fb844049c0e4045d9d/propcache-0.3.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fd3e6019dc1261cd0291ee8919dd91fbab7b169bb76aeef6c716833a3f65d206", size = 212789, upload-time = "2025-06-09T22:55:12.029Z" }, + { url = "https://files.pythonhosted.org/packages/b3/db/ea12a49aa7b2b6d68a5da8293dcf50068d48d088100ac016ad92a6a780e6/propcache-0.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4c181cad81158d71c41a2bce88edce078458e2dd5ffee7eddd6b05da85079f43", size = 205880, upload-time = "2025-06-09T22:55:13.45Z" }, + { url = "https://files.pythonhosted.org/packages/d1/e5/9076a0bbbfb65d1198007059c65639dfd56266cf8e477a9707e4b1999ff4/propcache-0.3.2-cp313-cp313-win32.whl", hash = "sha256:8a08154613f2249519e549de2330cf8e2071c2887309a7b07fb56098f5170a02", size = 37220, upload-time = "2025-06-09T22:55:15.284Z" }, + { url = "https://files.pythonhosted.org/packages/d3/f5/b369e026b09a26cd77aa88d8fffd69141d2ae00a2abaaf5380d2603f4b7f/propcache-0.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:e41671f1594fc4ab0a6dec1351864713cb3a279910ae8b58f884a88a0a632c05", size = 40678, upload-time = "2025-06-09T22:55:16.445Z" }, + { url = "https://files.pythonhosted.org/packages/a4/3a/6ece377b55544941a08d03581c7bc400a3c8cd3c2865900a68d5de79e21f/propcache-0.3.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:9a3cf035bbaf035f109987d9d55dc90e4b0e36e04bbbb95af3055ef17194057b", size = 76560, upload-time = "2025-06-09T22:55:17.598Z" }, + { url = "https://files.pythonhosted.org/packages/0c/da/64a2bb16418740fa634b0e9c3d29edff1db07f56d3546ca2d86ddf0305e1/propcache-0.3.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:156c03d07dc1323d8dacaa221fbe028c5c70d16709cdd63502778e6c3ccca1b0", size = 44676, upload-time = "2025-06-09T22:55:18.922Z" }, + { url = "https://files.pythonhosted.org/packages/36/7b/f025e06ea51cb72c52fb87e9b395cced02786610b60a3ed51da8af017170/propcache-0.3.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74413c0ba02ba86f55cf60d18daab219f7e531620c15f1e23d95563f505efe7e", size = 44701, upload-time = "2025-06-09T22:55:20.106Z" }, + { url = "https://files.pythonhosted.org/packages/a4/00/faa1b1b7c3b74fc277f8642f32a4c72ba1d7b2de36d7cdfb676db7f4303e/propcache-0.3.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f066b437bb3fa39c58ff97ab2ca351db465157d68ed0440abecb21715eb24b28", size = 276934, upload-time = "2025-06-09T22:55:21.5Z" }, + { url = "https://files.pythonhosted.org/packages/74/ab/935beb6f1756e0476a4d5938ff44bf0d13a055fed880caf93859b4f1baf4/propcache-0.3.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1304b085c83067914721e7e9d9917d41ad87696bf70f0bc7dee450e9c71ad0a", size = 278316, upload-time = "2025-06-09T22:55:22.918Z" }, + { url = "https://files.pythonhosted.org/packages/f8/9d/994a5c1ce4389610838d1caec74bdf0e98b306c70314d46dbe4fcf21a3e2/propcache-0.3.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ab50cef01b372763a13333b4e54021bdcb291fc9a8e2ccb9c2df98be51bcde6c", size = 282619, upload-time = "2025-06-09T22:55:24.651Z" }, + { url = "https://files.pythonhosted.org/packages/2b/00/a10afce3d1ed0287cef2e09506d3be9822513f2c1e96457ee369adb9a6cd/propcache-0.3.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fad3b2a085ec259ad2c2842666b2a0a49dea8463579c606426128925af1ed725", size = 265896, upload-time = "2025-06-09T22:55:26.049Z" }, + { url = "https://files.pythonhosted.org/packages/2e/a8/2aa6716ffa566ca57c749edb909ad27884680887d68517e4be41b02299f3/propcache-0.3.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:261fa020c1c14deafd54c76b014956e2f86991af198c51139faf41c4d5e83892", size = 252111, upload-time = "2025-06-09T22:55:27.381Z" }, + { url = "https://files.pythonhosted.org/packages/36/4f/345ca9183b85ac29c8694b0941f7484bf419c7f0fea2d1e386b4f7893eed/propcache-0.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:46d7f8aa79c927e5f987ee3a80205c987717d3659f035c85cf0c3680526bdb44", size = 268334, upload-time = "2025-06-09T22:55:28.747Z" }, + { url = "https://files.pythonhosted.org/packages/3e/ca/fcd54f78b59e3f97b3b9715501e3147f5340167733d27db423aa321e7148/propcache-0.3.2-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:6d8f3f0eebf73e3c0ff0e7853f68be638b4043c65a70517bb575eff54edd8dbe", size = 255026, upload-time = "2025-06-09T22:55:30.184Z" }, + { url = "https://files.pythonhosted.org/packages/8b/95/8e6a6bbbd78ac89c30c225210a5c687790e532ba4088afb8c0445b77ef37/propcache-0.3.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:03c89c1b14a5452cf15403e291c0ccd7751d5b9736ecb2c5bab977ad6c5bcd81", size = 250724, upload-time = "2025-06-09T22:55:31.646Z" }, + { url = "https://files.pythonhosted.org/packages/ee/b0/0dd03616142baba28e8b2d14ce5df6631b4673850a3d4f9c0f9dd714a404/propcache-0.3.2-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:0cc17efde71e12bbaad086d679ce575268d70bc123a5a71ea7ad76f70ba30bba", size = 268868, upload-time = "2025-06-09T22:55:33.209Z" }, + { url = "https://files.pythonhosted.org/packages/c5/98/2c12407a7e4fbacd94ddd32f3b1e3d5231e77c30ef7162b12a60e2dd5ce3/propcache-0.3.2-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:acdf05d00696bc0447e278bb53cb04ca72354e562cf88ea6f9107df8e7fd9770", size = 271322, upload-time = "2025-06-09T22:55:35.065Z" }, + { url = "https://files.pythonhosted.org/packages/35/91/9cb56efbb428b006bb85db28591e40b7736847b8331d43fe335acf95f6c8/propcache-0.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4445542398bd0b5d32df908031cb1b30d43ac848e20470a878b770ec2dcc6330", size = 265778, upload-time = "2025-06-09T22:55:36.45Z" }, + { url = "https://files.pythonhosted.org/packages/9a/4c/b0fe775a2bdd01e176b14b574be679d84fc83958335790f7c9a686c1f468/propcache-0.3.2-cp313-cp313t-win32.whl", hash = "sha256:f86e5d7cd03afb3a1db8e9f9f6eff15794e79e791350ac48a8c924e6f439f394", size = 41175, upload-time = "2025-06-09T22:55:38.436Z" }, + { url = "https://files.pythonhosted.org/packages/a4/ff/47f08595e3d9b5e149c150f88d9714574f1a7cbd89fe2817158a952674bf/propcache-0.3.2-cp313-cp313t-win_amd64.whl", hash = "sha256:9704bedf6e7cbe3c65eca4379a9b53ee6a83749f047808cbb5044d40d7d72198", size = 44857, upload-time = "2025-06-09T22:55:39.687Z" }, + { url = "https://files.pythonhosted.org/packages/cc/35/cc0aaecf278bb4575b8555f2b137de5ab821595ddae9da9d3cd1da4072c7/propcache-0.3.2-py3-none-any.whl", hash = "sha256:98f1ec44fb675f5052cccc8e609c46ed23a35a1cfd18545ad4e29002d858a43f", size = 12663, upload-time = "2025-06-09T22:56:04.484Z" }, +] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220", size = 70762, upload-time = "2020-12-28T15:15:30.155Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", size = 13993, upload-time = "2020-12-28T15:15:28.35Z" }, +] + +[[package]] +name = "pure-eval" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/05/0a34433a064256a578f1783a10da6df098ceaa4a57bbeaa96a6c0352786b/pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42", size = 19752, upload-time = "2024-07-21T12:58:21.801Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", size = 11842, upload-time = "2024-07-21T12:58:20.04Z" }, +] + +[[package]] +name = "pygments" +version = "2.19.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, +] + +[[package]] +name = "pytest" +version = "8.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "iniconfig" }, + { name = "packaging" }, + { name = "pluggy" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/08/ba/45911d754e8eba3d5a841a5ce61a65a685ff1798421ac054f85aa8747dfb/pytest-8.4.1.tar.gz", hash = "sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c", size = 1517714, upload-time = "2025-06-18T05:48:06.109Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/29/16/c8a903f4c4dffe7a12843191437d7cd8e32751d5de349d45d3fe69544e87/pytest-8.4.1-py3-none-any.whl", hash = "sha256:539c70ba6fcead8e78eebbf1115e8b589e7565830d7d006a8723f19ac8a0afb7", size = 365474, upload-time = "2025-06-18T05:48:03.955Z" }, +] + +[[package]] +name = "setuptools" +version = "80.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/18/5d/3bf57dcd21979b887f014ea83c24ae194cfcd12b9e0fda66b957c69d1fca/setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c", size = 1319958, upload-time = "2025-05-27T00:56:51.443Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922", size = 1201486, upload-time = "2025-05-27T00:56:49.664Z" }, +] + +[[package]] +name = "stack-data" +version = "0.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asttokens" }, + { name = "executing" }, + { name = "pure-eval" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/28/e3/55dcc2cfbc3ca9c29519eb6884dd1415ecb53b0e934862d3559ddcb7e20b/stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", size = 44707, upload-time = "2023-09-30T13:58:05.479Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521, upload-time = "2023-09-30T13:58:03.53Z" }, +] + +[[package]] +name = "traitlets" +version = "5.14.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/eb/79/72064e6a701c2183016abbbfedaba506d81e30e232a68c9f0d6f6fcd1574/traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7", size = 161621, upload-time = "2024-04-19T11:11:49.746Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f", size = 85359, upload-time = "2024-04-19T11:11:46.763Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.14.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/98/5a/da40306b885cc8c09109dc2e1abd358d5684b1425678151cdaed4731c822/typing_extensions-4.14.1.tar.gz", hash = "sha256:38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36", size = 107673, upload-time = "2025-07-04T13:28:34.16Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b5/00/d631e67a838026495268c2f6884f3711a15a9a2a96cd244fdaea53b823fb/typing_extensions-4.14.1-py3-none-any.whl", hash = "sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76", size = 43906, upload-time = "2025-07-04T13:28:32.743Z" }, +] + +[[package]] +name = "wcwidth" +version = "0.2.13" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6c/63/53559446a878410fc5a5974feb13d31d78d752eb18aeba59c7fef1af7598/wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5", size = 101301, upload-time = "2024-01-06T02:10:57.829Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859", size = 34166, upload-time = "2024-01-06T02:10:55.763Z" }, +] + +[[package]] +name = "yarl" +version = "1.20.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "multidict" }, + { name = "propcache" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3c/fb/efaa23fa4e45537b827620f04cf8f3cd658b76642205162e072703a5b963/yarl-1.20.1.tar.gz", hash = "sha256:d017a4997ee50c91fd5466cef416231bb82177b93b029906cefc542ce14c35ac", size = 186428, upload-time = "2025-06-10T00:46:09.923Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5f/9a/cb7fad7d73c69f296eda6815e4a2c7ed53fc70c2f136479a91c8e5fbdb6d/yarl-1.20.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdcc4cd244e58593a4379fe60fdee5ac0331f8eb70320a24d591a3be197b94a9", size = 133667, upload-time = "2025-06-10T00:43:44.369Z" }, + { url = "https://files.pythonhosted.org/packages/67/38/688577a1cb1e656e3971fb66a3492501c5a5df56d99722e57c98249e5b8a/yarl-1.20.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b29a2c385a5f5b9c7d9347e5812b6f7ab267193c62d282a540b4fc528c8a9d2a", size = 91025, upload-time = "2025-06-10T00:43:46.295Z" }, + { url = "https://files.pythonhosted.org/packages/50/ec/72991ae51febeb11a42813fc259f0d4c8e0507f2b74b5514618d8b640365/yarl-1.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1112ae8154186dfe2de4732197f59c05a83dc814849a5ced892b708033f40dc2", size = 89709, upload-time = "2025-06-10T00:43:48.22Z" }, + { url = "https://files.pythonhosted.org/packages/99/da/4d798025490e89426e9f976702e5f9482005c548c579bdae792a4c37769e/yarl-1.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90bbd29c4fe234233f7fa2b9b121fb63c321830e5d05b45153a2ca68f7d310ee", size = 352287, upload-time = "2025-06-10T00:43:49.924Z" }, + { url = "https://files.pythonhosted.org/packages/1a/26/54a15c6a567aac1c61b18aa0f4b8aa2e285a52d547d1be8bf48abe2b3991/yarl-1.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:680e19c7ce3710ac4cd964e90dad99bf9b5029372ba0c7cbfcd55e54d90ea819", size = 345429, upload-time = "2025-06-10T00:43:51.7Z" }, + { url = "https://files.pythonhosted.org/packages/d6/95/9dcf2386cb875b234353b93ec43e40219e14900e046bf6ac118f94b1e353/yarl-1.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a979218c1fdb4246a05efc2cc23859d47c89af463a90b99b7c56094daf25a16", size = 365429, upload-time = "2025-06-10T00:43:53.494Z" }, + { url = "https://files.pythonhosted.org/packages/91/b2/33a8750f6a4bc224242a635f5f2cff6d6ad5ba651f6edcccf721992c21a0/yarl-1.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:255b468adf57b4a7b65d8aad5b5138dce6a0752c139965711bdcb81bc370e1b6", size = 363862, upload-time = "2025-06-10T00:43:55.766Z" }, + { url = "https://files.pythonhosted.org/packages/98/28/3ab7acc5b51f4434b181b0cee8f1f4b77a65919700a355fb3617f9488874/yarl-1.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a97d67108e79cfe22e2b430d80d7571ae57d19f17cda8bb967057ca8a7bf5bfd", size = 355616, upload-time = "2025-06-10T00:43:58.056Z" }, + { url = "https://files.pythonhosted.org/packages/36/a3/f666894aa947a371724ec7cd2e5daa78ee8a777b21509b4252dd7bd15e29/yarl-1.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8570d998db4ddbfb9a590b185a0a33dbf8aafb831d07a5257b4ec9948df9cb0a", size = 339954, upload-time = "2025-06-10T00:43:59.773Z" }, + { url = "https://files.pythonhosted.org/packages/f1/81/5f466427e09773c04219d3450d7a1256138a010b6c9f0af2d48565e9ad13/yarl-1.20.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:97c75596019baae7c71ccf1d8cc4738bc08134060d0adfcbe5642f778d1dca38", size = 365575, upload-time = "2025-06-10T00:44:02.051Z" }, + { url = "https://files.pythonhosted.org/packages/2e/e3/e4b0ad8403e97e6c9972dd587388940a032f030ebec196ab81a3b8e94d31/yarl-1.20.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1c48912653e63aef91ff988c5432832692ac5a1d8f0fb8a33091520b5bbe19ef", size = 365061, upload-time = "2025-06-10T00:44:04.196Z" }, + { url = "https://files.pythonhosted.org/packages/ac/99/b8a142e79eb86c926f9f06452eb13ecb1bb5713bd01dc0038faf5452e544/yarl-1.20.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4c3ae28f3ae1563c50f3d37f064ddb1511ecc1d5584e88c6b7c63cf7702a6d5f", size = 364142, upload-time = "2025-06-10T00:44:06.527Z" }, + { url = "https://files.pythonhosted.org/packages/34/f2/08ed34a4a506d82a1a3e5bab99ccd930a040f9b6449e9fd050320e45845c/yarl-1.20.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c5e9642f27036283550f5f57dc6156c51084b458570b9d0d96100c8bebb186a8", size = 381894, upload-time = "2025-06-10T00:44:08.379Z" }, + { url = "https://files.pythonhosted.org/packages/92/f8/9a3fbf0968eac704f681726eff595dce9b49c8a25cd92bf83df209668285/yarl-1.20.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2c26b0c49220d5799f7b22c6838409ee9bc58ee5c95361a4d7831f03cc225b5a", size = 383378, upload-time = "2025-06-10T00:44:10.51Z" }, + { url = "https://files.pythonhosted.org/packages/af/85/9363f77bdfa1e4d690957cd39d192c4cacd1c58965df0470a4905253b54f/yarl-1.20.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:564ab3d517e3d01c408c67f2e5247aad4019dcf1969982aba3974b4093279004", size = 374069, upload-time = "2025-06-10T00:44:12.834Z" }, + { url = "https://files.pythonhosted.org/packages/35/99/9918c8739ba271dcd935400cff8b32e3cd319eaf02fcd023d5dcd487a7c8/yarl-1.20.1-cp312-cp312-win32.whl", hash = "sha256:daea0d313868da1cf2fac6b2d3a25c6e3a9e879483244be38c8e6a41f1d876a5", size = 81249, upload-time = "2025-06-10T00:44:14.731Z" }, + { url = "https://files.pythonhosted.org/packages/eb/83/5d9092950565481b413b31a23e75dd3418ff0a277d6e0abf3729d4d1ce25/yarl-1.20.1-cp312-cp312-win_amd64.whl", hash = "sha256:48ea7d7f9be0487339828a4de0360d7ce0efc06524a48e1810f945c45b813698", size = 86710, upload-time = "2025-06-10T00:44:16.716Z" }, + { url = "https://files.pythonhosted.org/packages/8a/e1/2411b6d7f769a07687acee88a062af5833cf1966b7266f3d8dfb3d3dc7d3/yarl-1.20.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0b5ff0fbb7c9f1b1b5ab53330acbfc5247893069e7716840c8e7d5bb7355038a", size = 131811, upload-time = "2025-06-10T00:44:18.933Z" }, + { url = "https://files.pythonhosted.org/packages/b2/27/584394e1cb76fb771371770eccad35de400e7b434ce3142c2dd27392c968/yarl-1.20.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:14f326acd845c2b2e2eb38fb1346c94f7f3b01a4f5c788f8144f9b630bfff9a3", size = 90078, upload-time = "2025-06-10T00:44:20.635Z" }, + { url = "https://files.pythonhosted.org/packages/bf/9a/3246ae92d4049099f52d9b0fe3486e3b500e29b7ea872d0f152966fc209d/yarl-1.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f60e4ad5db23f0b96e49c018596707c3ae89f5d0bd97f0ad3684bcbad899f1e7", size = 88748, upload-time = "2025-06-10T00:44:22.34Z" }, + { url = "https://files.pythonhosted.org/packages/a3/25/35afe384e31115a1a801fbcf84012d7a066d89035befae7c5d4284df1e03/yarl-1.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:49bdd1b8e00ce57e68ba51916e4bb04461746e794e7c4d4bbc42ba2f18297691", size = 349595, upload-time = "2025-06-10T00:44:24.314Z" }, + { url = "https://files.pythonhosted.org/packages/28/2d/8aca6cb2cabc8f12efcb82749b9cefecbccfc7b0384e56cd71058ccee433/yarl-1.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:66252d780b45189975abfed839616e8fd2dbacbdc262105ad7742c6ae58f3e31", size = 342616, upload-time = "2025-06-10T00:44:26.167Z" }, + { url = "https://files.pythonhosted.org/packages/0b/e9/1312633d16b31acf0098d30440ca855e3492d66623dafb8e25b03d00c3da/yarl-1.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59174e7332f5d153d8f7452a102b103e2e74035ad085f404df2e40e663a22b28", size = 361324, upload-time = "2025-06-10T00:44:27.915Z" }, + { url = "https://files.pythonhosted.org/packages/bc/a0/688cc99463f12f7669eec7c8acc71ef56a1521b99eab7cd3abb75af887b0/yarl-1.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e3968ec7d92a0c0f9ac34d5ecfd03869ec0cab0697c91a45db3fbbd95fe1b653", size = 359676, upload-time = "2025-06-10T00:44:30.041Z" }, + { url = "https://files.pythonhosted.org/packages/af/44/46407d7f7a56e9a85a4c207724c9f2c545c060380718eea9088f222ba697/yarl-1.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1a4fbb50e14396ba3d375f68bfe02215d8e7bc3ec49da8341fe3157f59d2ff5", size = 352614, upload-time = "2025-06-10T00:44:32.171Z" }, + { url = "https://files.pythonhosted.org/packages/b1/91/31163295e82b8d5485d31d9cf7754d973d41915cadce070491778d9c9825/yarl-1.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11a62c839c3a8eac2410e951301309426f368388ff2f33799052787035793b02", size = 336766, upload-time = "2025-06-10T00:44:34.494Z" }, + { url = "https://files.pythonhosted.org/packages/b4/8e/c41a5bc482121f51c083c4c2bcd16b9e01e1cf8729e380273a952513a21f/yarl-1.20.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:041eaa14f73ff5a8986b4388ac6bb43a77f2ea09bf1913df7a35d4646db69e53", size = 364615, upload-time = "2025-06-10T00:44:36.856Z" }, + { url = "https://files.pythonhosted.org/packages/e3/5b/61a3b054238d33d70ea06ebba7e58597891b71c699e247df35cc984ab393/yarl-1.20.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:377fae2fef158e8fd9d60b4c8751387b8d1fb121d3d0b8e9b0be07d1b41e83dc", size = 360982, upload-time = "2025-06-10T00:44:39.141Z" }, + { url = "https://files.pythonhosted.org/packages/df/a3/6a72fb83f8d478cb201d14927bc8040af901811a88e0ff2da7842dd0ed19/yarl-1.20.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1c92f4390e407513f619d49319023664643d3339bd5e5a56a3bebe01bc67ec04", size = 369792, upload-time = "2025-06-10T00:44:40.934Z" }, + { url = "https://files.pythonhosted.org/packages/7c/af/4cc3c36dfc7c077f8dedb561eb21f69e1e9f2456b91b593882b0b18c19dc/yarl-1.20.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:d25ddcf954df1754ab0f86bb696af765c5bfaba39b74095f27eececa049ef9a4", size = 382049, upload-time = "2025-06-10T00:44:42.854Z" }, + { url = "https://files.pythonhosted.org/packages/19/3a/e54e2c4752160115183a66dc9ee75a153f81f3ab2ba4bf79c3c53b33de34/yarl-1.20.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:909313577e9619dcff8c31a0ea2aa0a2a828341d92673015456b3ae492e7317b", size = 384774, upload-time = "2025-06-10T00:44:45.275Z" }, + { url = "https://files.pythonhosted.org/packages/9c/20/200ae86dabfca89060ec6447649f219b4cbd94531e425e50d57e5f5ac330/yarl-1.20.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:793fd0580cb9664548c6b83c63b43c477212c0260891ddf86809e1c06c8b08f1", size = 374252, upload-time = "2025-06-10T00:44:47.31Z" }, + { url = "https://files.pythonhosted.org/packages/83/75/11ee332f2f516b3d094e89448da73d557687f7d137d5a0f48c40ff211487/yarl-1.20.1-cp313-cp313-win32.whl", hash = "sha256:468f6e40285de5a5b3c44981ca3a319a4b208ccc07d526b20b12aeedcfa654b7", size = 81198, upload-time = "2025-06-10T00:44:49.164Z" }, + { url = "https://files.pythonhosted.org/packages/ba/ba/39b1ecbf51620b40ab402b0fc817f0ff750f6d92712b44689c2c215be89d/yarl-1.20.1-cp313-cp313-win_amd64.whl", hash = "sha256:495b4ef2fea40596bfc0affe3837411d6aa3371abcf31aac0ccc4bdd64d4ef5c", size = 86346, upload-time = "2025-06-10T00:44:51.182Z" }, + { url = "https://files.pythonhosted.org/packages/43/c7/669c52519dca4c95153c8ad96dd123c79f354a376346b198f438e56ffeb4/yarl-1.20.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f60233b98423aab21d249a30eb27c389c14929f47be8430efa7dbd91493a729d", size = 138826, upload-time = "2025-06-10T00:44:52.883Z" }, + { url = "https://files.pythonhosted.org/packages/6a/42/fc0053719b44f6ad04a75d7f05e0e9674d45ef62f2d9ad2c1163e5c05827/yarl-1.20.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:6f3eff4cc3f03d650d8755c6eefc844edde99d641d0dcf4da3ab27141a5f8ddf", size = 93217, upload-time = "2025-06-10T00:44:54.658Z" }, + { url = "https://files.pythonhosted.org/packages/4f/7f/fa59c4c27e2a076bba0d959386e26eba77eb52ea4a0aac48e3515c186b4c/yarl-1.20.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:69ff8439d8ba832d6bed88af2c2b3445977eba9a4588b787b32945871c2444e3", size = 92700, upload-time = "2025-06-10T00:44:56.784Z" }, + { url = "https://files.pythonhosted.org/packages/2f/d4/062b2f48e7c93481e88eff97a6312dca15ea200e959f23e96d8ab898c5b8/yarl-1.20.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cf34efa60eb81dd2645a2e13e00bb98b76c35ab5061a3989c7a70f78c85006d", size = 347644, upload-time = "2025-06-10T00:44:59.071Z" }, + { url = "https://files.pythonhosted.org/packages/89/47/78b7f40d13c8f62b499cc702fdf69e090455518ae544c00a3bf4afc9fc77/yarl-1.20.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8e0fe9364ad0fddab2688ce72cb7a8e61ea42eff3c7caeeb83874a5d479c896c", size = 323452, upload-time = "2025-06-10T00:45:01.605Z" }, + { url = "https://files.pythonhosted.org/packages/eb/2b/490d3b2dc66f52987d4ee0d3090a147ea67732ce6b4d61e362c1846d0d32/yarl-1.20.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f64fbf81878ba914562c672024089e3401974a39767747691c65080a67b18c1", size = 346378, upload-time = "2025-06-10T00:45:03.946Z" }, + { url = "https://files.pythonhosted.org/packages/66/ad/775da9c8a94ce925d1537f939a4f17d782efef1f973039d821cbe4bcc211/yarl-1.20.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6342d643bf9a1de97e512e45e4b9560a043347e779a173250824f8b254bd5ce", size = 353261, upload-time = "2025-06-10T00:45:05.992Z" }, + { url = "https://files.pythonhosted.org/packages/4b/23/0ed0922b47a4f5c6eb9065d5ff1e459747226ddce5c6a4c111e728c9f701/yarl-1.20.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56dac5f452ed25eef0f6e3c6a066c6ab68971d96a9fb441791cad0efba6140d3", size = 335987, upload-time = "2025-06-10T00:45:08.227Z" }, + { url = "https://files.pythonhosted.org/packages/3e/49/bc728a7fe7d0e9336e2b78f0958a2d6b288ba89f25a1762407a222bf53c3/yarl-1.20.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7d7f497126d65e2cad8dc5f97d34c27b19199b6414a40cb36b52f41b79014be", size = 329361, upload-time = "2025-06-10T00:45:10.11Z" }, + { url = "https://files.pythonhosted.org/packages/93/8f/b811b9d1f617c83c907e7082a76e2b92b655400e61730cd61a1f67178393/yarl-1.20.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:67e708dfb8e78d8a19169818eeb5c7a80717562de9051bf2413aca8e3696bf16", size = 346460, upload-time = "2025-06-10T00:45:12.055Z" }, + { url = "https://files.pythonhosted.org/packages/70/fd/af94f04f275f95da2c3b8b5e1d49e3e79f1ed8b6ceb0f1664cbd902773ff/yarl-1.20.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:595c07bc79af2494365cc96ddeb772f76272364ef7c80fb892ef9d0649586513", size = 334486, upload-time = "2025-06-10T00:45:13.995Z" }, + { url = "https://files.pythonhosted.org/packages/84/65/04c62e82704e7dd0a9b3f61dbaa8447f8507655fd16c51da0637b39b2910/yarl-1.20.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7bdd2f80f4a7df852ab9ab49484a4dee8030023aa536df41f2d922fd57bf023f", size = 342219, upload-time = "2025-06-10T00:45:16.479Z" }, + { url = "https://files.pythonhosted.org/packages/91/95/459ca62eb958381b342d94ab9a4b6aec1ddec1f7057c487e926f03c06d30/yarl-1.20.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:c03bfebc4ae8d862f853a9757199677ab74ec25424d0ebd68a0027e9c639a390", size = 350693, upload-time = "2025-06-10T00:45:18.399Z" }, + { url = "https://files.pythonhosted.org/packages/a6/00/d393e82dd955ad20617abc546a8f1aee40534d599ff555ea053d0ec9bf03/yarl-1.20.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:344d1103e9c1523f32a5ed704d576172d2cabed3122ea90b1d4e11fe17c66458", size = 355803, upload-time = "2025-06-10T00:45:20.677Z" }, + { url = "https://files.pythonhosted.org/packages/9e/ed/c5fb04869b99b717985e244fd93029c7a8e8febdfcffa06093e32d7d44e7/yarl-1.20.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:88cab98aa4e13e1ade8c141daeedd300a4603b7132819c484841bb7af3edce9e", size = 341709, upload-time = "2025-06-10T00:45:23.221Z" }, + { url = "https://files.pythonhosted.org/packages/24/fd/725b8e73ac2a50e78a4534ac43c6addf5c1c2d65380dd48a9169cc6739a9/yarl-1.20.1-cp313-cp313t-win32.whl", hash = "sha256:b121ff6a7cbd4abc28985b6028235491941b9fe8fe226e6fdc539c977ea1739d", size = 86591, upload-time = "2025-06-10T00:45:25.793Z" }, + { url = "https://files.pythonhosted.org/packages/94/c3/b2e9f38bc3e11191981d57ea08cab2166e74ea770024a646617c9cddd9f6/yarl-1.20.1-cp313-cp313t-win_amd64.whl", hash = "sha256:541d050a355bbbc27e55d906bc91cb6fe42f96c01413dd0f4ed5a5240513874f", size = 93003, upload-time = "2025-06-10T00:45:27.752Z" }, + { url = "https://files.pythonhosted.org/packages/b4/2d/2345fce04cfd4bee161bf1e7d9cdc702e3e16109021035dbb24db654a622/yarl-1.20.1-py3-none-any.whl", hash = "sha256:83b8eb083fe4683c6115795d9fc1cfaf2cbbefb19b3a1cb68f6527460f483a77", size = 46542, upload-time = "2025-06-10T00:46:07.521Z" }, +] diff --git a/apps/command-dispatcher/Cargo.toml b/apps/command-dispatcher/Cargo.toml new file mode 100755 index 0000000..2e499c2 --- /dev/null +++ b/apps/command-dispatcher/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "command-dispatcher" +version.workspace = true +authors.workspace = true +publish.workspace = true +license.workspace = true +edition = "2021" + +[dependencies] +messages-prost = { workspace = true } +mavlink = { workspace = true } +serde = { workspace = true, features = ["derive", "std"] } +clap = { workspace = true } +tracing = { workspace = true } +tracing-subscriber = { workspace = true } +chrono = { workspace = true, features = ["clock", "serde", "std"] } +tokio = { workspace = true } +libsql = { workspace = true } +serde_json = { workspace = true } +hostname = { workspace = true } +prost = { workspace = true } diff --git a/apps/command-dispatcher/README.md b/apps/command-dispatcher/README.md new file mode 100755 index 0000000..5f8db0a --- /dev/null +++ b/apps/command-dispatcher/README.md @@ -0,0 +1,66 @@ +# RGS Command Dispatcher + +A service that monitors the `OutgoingCommand` table in the RGS database for pending commands and sends them to the designated gateway via a TCP MAVLink connection. It also reports its own health status. + +## Features + +- Polls the `OutgoingCommand` table for commands with status 'Pending'. +- Parses command types and parameters from the database. +- Constructs appropriate `messages::RadioMessage` payloads. +- Serializes messages using `postcard`. +- Sends MAVLink `POSTCARD_MESSAGE` packets to a TCP gateway. +- Updates command status (`Sending`, `Sent`, `Failed`) in the database. +- Manages connection to the TCP gateway, attempting reconnection on failure. +- Reports its operational status to the `ServiceStatus` table. +- Queues a periodic Ping keepalive, replacing the former standalone heartbeat service. + +## Prerequisites + +- RGS LibSQL database (with `OutgoingCommand` and `ServiceStatus` tables) accessible. +- RGS Gateway service running and accepting TCP MAVLink connections. + +## Usage + +### Running the Dispatcher + +```sh +# From the rgs workspace root +cargo run -p command-dispatcher -- [options] +# Or directly if built: +# ./target/debug/command-dispatcher [options] +``` + +### Parameters + +| Parameter | Description | Default | +|-----------------------------|--------------------------------------------------------------------------|----------------------------| +| `--libsql-url` | LibSQL database URL | http://localhost:8080 | +| `--libsql-auth-token` | Auth token for remote LibSQL DB | *empty* | +| `--gateway-connection-string` | MAVLink gateway connection string (e.g., `tcpout:localhost:5656`) | `tcpout:127.0.0.1:5656` | +| `--poll-interval-secs` | DB polling interval (seconds) | 5 | +| `--keepalive-interval-secs` | Automatic Ping interval; set to `0` to disable | 30 | + +## Operational Details + +- Checks the database for pending commands every `--poll-interval-secs` seconds. +- Attempts to maintain a persistent connection to the gateway, reconnecting if the connection drops. +- Processes commands sequentially in the order they are fetched (ordered by `created_at`). +- Updates its status in the `ServiceStatus` table every 15 seconds. +- Keeps at most one dispatcher-generated Ping pending or sending, preventing backlog growth while the gateway is unavailable. +- Handles command types: `Ping`, `DeployDrogue`, `DeployMain`, `PowerDown`, `RadioRateChange`. + +## Troubleshooting + +1. **Database Issues** + - Verify LibSQL server is running and accessible. + - Check `--libsql-url` and `--libsql-auth-token` parameters. + - Ensure the `OutgoingCommand` and `ServiceStatus` tables exist. +2. **Gateway Connection Issues** + - Verify the Gateway service is running and accessible. + - Check `--gateway-connection-string` parameter. + - Ensure network connectivity between the dispatcher and the gateway. + - Check dispatcher logs for connection attempt errors. +3. **Commands Stuck in 'Pending' or 'Sending'** + - Check dispatcher logs for errors during command processing (parsing, serialization, sending). + - Verify the gateway is correctly receiving and acknowledging messages (if applicable). + - Check the command `attempts` count and `error_message` in the `OutgoingCommand` table. diff --git a/apps/command-dispatcher/src/cli.rs b/apps/command-dispatcher/src/cli.rs new file mode 100755 index 0000000..ce4357f --- /dev/null +++ b/apps/command-dispatcher/src/cli.rs @@ -0,0 +1,24 @@ +use clap::Parser; + +#[derive(Parser, Debug, Clone)] +#[command(version, about, long_about = None)] +pub struct Args { + #[arg(long, default_value = "http://localhost:8080")] + pub libsql_url: String, + + #[arg(long, default_value = "")] + pub libsql_auth_token: String, + + #[arg( + long, + default_value = "tcpout:127.0.0.1:5656", + help = "Gateway MAVLink connection string (e.g., tcpout:localhost:5656, udpin:0.0.0.0:14550)" + )] + pub gateway_connection_string: String, + + #[arg(long, default_value_t = 5)] + pub poll_interval_secs: u64, + + #[arg(long, default_value_t = 30, help = "Seconds between automatic Ping keepalives; set to 0 to disable")] + pub keepalive_interval_secs: u64, +} diff --git a/apps/command-dispatcher/src/commands.rs b/apps/command-dispatcher/src/commands.rs new file mode 100755 index 0000000..145b06a --- /dev/null +++ b/apps/command-dispatcher/src/commands.rs @@ -0,0 +1,211 @@ +use std::time::Instant; + +use chrono::Utc; +use libsql::{params as libsql_params, Connection}; +use mavlink::{uorocketry::MavMessage, MavConnection, MavHeader}; +use messages_prost::command as cmd; +use messages_prost::common::Node; +use messages_prost::radio::radio_frame::Payload; +use messages_prost::radio::RadioFrame; +use prost::Message as _; +use serde::Deserialize; +use tracing::{error, info}; + +// Struct to represent a row from the OutgoingCommand table +#[derive(Debug)] +pub struct OutgoingCommandRow { + pub id: i64, + pub command_type: String, + pub parameters: Option, + pub source_service: String, +} + +// Parameter structs for deserialization +#[derive(Deserialize, Debug)] +struct DeployDrogueParams { + val: bool, +} +#[derive(Deserialize, Debug)] +struct DeployMainParams { + val: bool, +} +#[derive(Deserialize, Debug)] +struct PowerDownParams { + board: String, +} +#[derive(Deserialize, Debug)] +struct RadioRateChangeParams { + rate: String, +} +#[derive(Deserialize, Debug)] +struct PingParams { + id: u32, +} + +fn parse_board(s: &str) -> Node { + match s { + "PressureBoard" => Node::PressureBoard, + "StrainBoard" => Node::StrainBoard, + "TemperatureBoard" => Node::TemperatureBoard, + "GroundStation" => Node::GroundStation, + "Phoenix" => Node::Phoenix, + _ => Node::Unspecified, + } +} + +fn parse_radio_rate(s: &str) -> i32 { + match s.to_lowercase().as_str() { + "low" | "slow" | "0" => cmd::RadioRate::RateLow as i32, + "medium" | "1" => cmd::RadioRate::RateMedium as i32, + "high" | "fast" | "2" => cmd::RadioRate::RateHigh as i32, + _ => cmd::RadioRate::RateLow as i32, + } +} + +pub async fn process_single_command( + db_conn: &Connection, + gateway_conn: &mut Box + Sync + Send>, + command_row: OutgoingCommandRow, + start_instant: Instant, +) -> Result<(), (i64, Box)> { + let cmd_id = command_row.id; + info!( + "[Cmd ID: {}] Processing command of type '{}' from '{}'. Params: {:?}", + cmd_id, command_row.command_type, command_row.source_service, command_row.parameters + ); + + let queued_at_ts = Utc::now().timestamp(); + db_conn + .execute( + "UPDATE OutgoingCommand SET status = 'Sending', queued_at = ?, attempts = attempts + 1 WHERE id = ?", + libsql_params![queued_at_ts, cmd_id], + ) + .await + .map_err(|e| (cmd_id, e.into()))?; + info!("[Cmd ID: {}] Marked as 'Sending'.", cmd_id); + + let default_target = Node::PressureBoard as i32; + + let command_payload: cmd::Command = match command_row.command_type.as_str() { + "DeployDrogue" => { + let params: DeployDrogueParams = serde_json::from_str(command_row.parameters.as_deref().unwrap_or("{}")) + .map_err(|e| (cmd_id, Box::new(e) as Box))?; + cmd::Command { + node: default_target, + data: Some(cmd::command::Data::DeployDrogue(cmd::DeployDrogue { val: params.val })), + } + } + "DeployMain" => { + let params: DeployMainParams = serde_json::from_str(command_row.parameters.as_deref().unwrap_or("{}")) + .map_err(|e| (cmd_id, Box::new(e) as Box))?; + cmd::Command { + node: default_target, + data: Some(cmd::command::Data::DeployMain(cmd::DeployMain { val: params.val })), + } + } + "PowerDown" => { + let params_str = command_row.parameters.as_deref().ok_or_else(|| { + ( + cmd_id, + Box::new(std::io::Error::new(std::io::ErrorKind::InvalidInput, "Missing parameters for PowerDown")) as Box, + ) + })?; + let params: PowerDownParams = serde_json::from_str(params_str).map_err(|e| (cmd_id, Box::new(e) as Box))?; + let board = parse_board(¶ms.board) as i32; + cmd::Command { + node: board, + data: Some(cmd::command::Data::PowerDown(cmd::PowerDown { board })), + } + } + "PowerUpCamera" => cmd::Command { + node: default_target, + data: Some(cmd::command::Data::PowerUpCamera(cmd::PowerUpCamera {})), + }, + "PowerDownCamera" => cmd::Command { + node: default_target, + data: Some(cmd::command::Data::PowerDownCamera(cmd::PowerDownCamera {})), + }, + "RadioRateChange" => { + let params_str = command_row.parameters.as_deref().ok_or_else(|| { + ( + cmd_id, + Box::new(std::io::Error::new( + std::io::ErrorKind::InvalidInput, + "Missing parameters for RadioRateChange", + )) as Box, + ) + })?; + let params: RadioRateChangeParams = serde_json::from_str(params_str).map_err(|e| (cmd_id, Box::new(e) as Box))?; + cmd::Command { + node: default_target, + data: Some(cmd::command::Data::RadioRateChange(cmd::RadioRateChange { + rate: parse_radio_rate(¶ms.rate), + })), + } + } + "Ping" => { + let id = command_row + .parameters + .as_deref() + .and_then(|s| serde_json::from_str::(s).ok()) + .map(|p| p.id) + .unwrap_or(0); + cmd::Command { + node: default_target, + data: Some(cmd::command::Data::Ping(cmd::Ping { id })), + } + } + _ => { + let err_msg = format!("Unknown command type: {}", command_row.command_type); + error!("[Cmd ID: {}] {}", cmd_id, err_msg); + db_conn + .execute( + "UPDATE OutgoingCommand SET status = 'Failed', sent_at = ?, error_message = ? WHERE id = ?", + libsql_params![Utc::now().timestamp(), err_msg.clone(), cmd_id], + ) + .await + .map_err(|e| (cmd_id, e.into()))?; + return Err((cmd_id, err_msg.into())); + } + }; + + let millis_since_start = start_instant.elapsed().as_millis() as u64; + let frame = RadioFrame { + node: Node::GroundStation as i32, + payload: Some(Payload::Command(command_payload)), + millis_since_start, + }; + let bytes = RadioFrame::encode_length_delimited_to_vec(&frame); + + let mut fixed_payload = [0u8; 255]; + let len = bytes.len().min(255); + fixed_payload[..len].copy_from_slice(&bytes[..len]); + let send_msg = MavMessage::POSTCARD_MESSAGE(mavlink::uorocketry::POSTCARD_MESSAGE_DATA { message: fixed_payload }); + + info!("[Cmd ID: {}] Sending MAVLink message...", cmd_id); + match gateway_conn.send(&MavHeader::default(), &send_msg) { + Ok(_) => { + info!("[Cmd ID: {}] Successfully sent. Updating status to 'Sent'.", cmd_id); + db_conn + .execute( + "UPDATE OutgoingCommand SET status = 'Sent', sent_at = ? WHERE id = ?", + libsql_params![Utc::now().timestamp(), cmd_id], + ) + .await + .map_err(|e| (cmd_id, e.into()))?; + Ok(()) + } + Err(mav_err) => { + let err_msg = format!("Failed to send MAVLink message: {}", mav_err); + error!("[Cmd ID: {}] {}", cmd_id, err_msg); + db_conn + .execute( + "UPDATE OutgoingCommand SET status = 'Failed', sent_at = ?, error_message = ? WHERE id = ?", + libsql_params![Utc::now().timestamp(), err_msg.clone(), cmd_id], + ) + .await + .map_err(|e_db| (cmd_id, e_db.into()))?; + Err((cmd_id, mav_err.into())) + } + } +} diff --git a/apps/command-dispatcher/src/dispatcher.rs b/apps/command-dispatcher/src/dispatcher.rs new file mode 100755 index 0000000..d5cb022 --- /dev/null +++ b/apps/command-dispatcher/src/dispatcher.rs @@ -0,0 +1,124 @@ +use std::time::{Duration, Instant}; + +use libsql::{params as libsql_params, Connection}; +use mavlink::{connect, uorocketry::MavMessage, MavConnection}; +use tracing::{error, info, warn}; + +use crate::cli::Args; +use crate::commands::{process_single_command, OutgoingCommandRow}; + +pub async fn run_dispatcher( + db_conn: Connection, + args: Args, + start_instant: Instant, +) -> Result<(), Box> { + info!( + "Dispatcher loop starting. Poll Interval: {}s. Gateway: {}", + args.poll_interval_secs, args.gateway_connection_string + ); + + let mut gateway_conn_opt: Option + Sync + Send>> = None; + let gateway_connection_string = args.gateway_connection_string.clone(); + // let host_string = hostname::get() + // .unwrap_or_default() + // .to_string_lossy() + // .to_string(); + // let instance_id_string = format!( + // "{}@{}-{}", + // crate::SERVICE_ID, + // host_string, + // std::process::id() + // ); + + loop { + if gateway_conn_opt.is_none() { + info!("Attempting to connect to gateway: {}", gateway_connection_string); + match connect::(&gateway_connection_string) { + Ok(conn) => { + info!("Successfully connected to gateway."); + gateway_conn_opt = Some(conn); + // TODO: Consider logic to reset status of commands stuck in 'Sending' from a previous session/connection drop. + } + Err(error) => { + error!("Failed to connect to gateway: {}. Retrying in 5 seconds...", error); + gateway_conn_opt = None; + tokio::time::sleep(Duration::from_secs(5)).await; + continue; + } + } + } + + if let Some(ref mut current_gateway_conn) = gateway_conn_opt { + info!("Fetching pending commands..."); + let stmt = match db_conn.prepare( + "SELECT id, command_type, parameters, source_service FROM OutgoingCommand WHERE status = 'Pending' ORDER BY created_at ASC LIMIT 10" + ).await { + Ok(s) => s, + Err(e) => { + error!("Failed to prepare DB statement: {:?}. Retrying poll cycle.", e); + tokio::time::sleep(Duration::from_secs(args.poll_interval_secs)).await; + continue; + } + }; + + let rows_result = stmt.query(libsql_params![]).await; + let mut commands: Vec = Vec::new(); + + match rows_result { + Ok(mut rows) => loop { + match rows.next().await { + Ok(Some(row)) => { + commands.push(OutgoingCommandRow { + id: row.get(0)?, + command_type: row.get(1)?, + parameters: row.get(2)?, + source_service: row.get(3)?, + }); + } + Ok(None) => { + break; + } + Err(e) => { + error!("Error fetching a row from database: {:?}. Processing partial batch if any.", e); + break; + } + } + }, + Err(e) => { + error!("Failed to execute query for pending commands: {:?}. Retrying poll cycle.", e); + tokio::time::sleep(Duration::from_secs(args.poll_interval_secs)).await; + continue; + } + } + + if commands.is_empty() { + // info!("No pending commands found."); // Keep commented out info for potential debugging + } else { + info!("Fetched {} pending command(s). Processing...", commands.len()); + for command_row in commands { + let process_result = process_single_command(&db_conn, current_gateway_conn, command_row, start_instant).await; + + if let Err(e) = process_result { + let (cmd_id, err_details) = e; + error!("Error processing command (ID: {}): {:?}", cmd_id, err_details); + let error_string = err_details.to_string().to_lowercase(); + if error_string.contains("connection") + || error_string.contains("broken pipe") + || error_string.contains("os error 104") + || error_string.contains("os error 32") + || error_string.contains("failed to send") + { + warn!("Gateway connection likely lost (error: {}). Resetting connection.", err_details); + break; + } + } + } + } + } + + // Always sleep a bit so we don't busy loop even when not connected + tokio::time::sleep(Duration::from_secs(args.poll_interval_secs)).await; + } + // Unreachable code + // Ok(()) +} diff --git a/apps/command-dispatcher/src/health.rs b/apps/command-dispatcher/src/health.rs new file mode 100755 index 0000000..83065ad --- /dev/null +++ b/apps/command-dispatcher/src/health.rs @@ -0,0 +1,49 @@ +use std::time::Duration; + +use chrono::Utc; +use libsql::{params as libsql_params, Connection}; +use tracing::{info, warn}; + +use crate::SERVICE_ID; + +pub async fn run_service_status_task(db_conn: Connection) -> Result<(), Box> { + let hostname_str = hostname::get() + .map(|s| s.into_string().unwrap_or_else(|_| "invalid_hostname".to_string())) + .unwrap_or_else(|_| "unknown_hostname".to_string()); + + let service_instance_id = format!("{}@{}-{}", SERVICE_ID, hostname_str, std::process::id()); + let start_time_ts = Utc::now().timestamp(); + + info!("Service status task started for instance: {}. Update interval: 15s", service_instance_id); + + loop { + let current_timestamp = Utc::now().timestamp(); + let status_message = "Running and polling DB for commands".to_string(); + let current_status = "Running"; + + let instance_id_clone = service_instance_id.clone(); + let hostname_clone = hostname_str.clone(); + + let result = db_conn.execute( + "INSERT INTO ServiceStatus (service_instance_id, service_name, hostname, status, status_message, last_heartbeat_at, start_time) VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7) \ + ON CONFLICT(service_instance_id) DO UPDATE SET service_name=excluded.service_name, hostname=excluded.hostname, status=excluded.status, status_message=excluded.status_message, last_heartbeat_at=excluded.last_heartbeat_at", + libsql_params![ + instance_id_clone, + SERVICE_ID, + hostname_clone, + current_status, + status_message, + current_timestamp, + start_time_ts, + ], + ).await; + + if let Err(e) = result { + warn!("Failed to update ServiceStatus for {}: DB Error: {}", service_instance_id, e); + } + + tokio::time::sleep(Duration::from_secs(15)).await; + } + // Unreachable code + // Ok(()) +} diff --git a/apps/command-dispatcher/src/keepalive.rs b/apps/command-dispatcher/src/keepalive.rs new file mode 100644 index 0000000..422103e --- /dev/null +++ b/apps/command-dispatcher/src/keepalive.rs @@ -0,0 +1,127 @@ +use std::time::Duration; + +use chrono::Utc; +use libsql::{params as libsql_params, Connection}; +use serde::Serialize; +use tracing::{info, warn}; + +const KEEPALIVE_SOURCE: &str = "command-dispatcher-keepalive"; + +#[derive(Debug, Serialize)] +struct PingParameters { + id: u32, +} + +fn ping_parameters(id: u32) -> Result { + serde_json::to_string(&PingParameters { id }) +} + +async fn enqueue_keepalive( + db_conn: &Connection, + ping_id: u32, +) -> Result> { + let parameters = ping_parameters(ping_id)?; + let result = db_conn + .execute( + "INSERT INTO OutgoingCommand (command_type, parameters, status, created_at, source_service) \ + SELECT 'Ping', ?1, 'Pending', ?2, ?3 \ + WHERE NOT EXISTS ( \ + SELECT 1 FROM OutgoingCommand \ + WHERE command_type = 'Ping' AND source_service = ?3 \ + AND status IN ('Pending', 'Sending') \ + )", + libsql_params![parameters, Utc::now().timestamp(), KEEPALIVE_SOURCE], + ) + .await?; + Ok(result > 0) +} + +pub async fn run_keepalive_task( + db_conn: Connection, + interval_secs: u64, +) -> Result<(), Box> { + if interval_secs == 0 { + info!("Automatic command keepalives are disabled"); + return Ok(()); + } + + info!("Command keepalive task started. Interval: {}s", interval_secs); + let mut interval = tokio::time::interval(Duration::from_secs(interval_secs)); + interval.tick().await; + let mut next_ping_id = 1_u32; + + loop { + interval.tick().await; + match enqueue_keepalive(&db_conn, next_ping_id).await { + Ok(true) => { + info!("Queued automatic Ping keepalive {}", next_ping_id); + next_ping_id = next_ping_id.wrapping_add(1); + } + Ok(false) => { + info!("Keepalive already pending; skipping this interval"); + } + Err(error) => { + warn!("Failed to queue automatic Ping keepalive: {}", error); + } + } + } +} + +#[cfg(test)] +mod tests { + use libsql::Builder; + + use super::*; + + #[test] + fn serializes_ping_parameters_for_the_dispatcher() { + assert_eq!(ping_parameters(42).unwrap(), r#"{"id":42}"#); + } + + #[test] + fn keepalive_source_is_distinct_from_user_commands() { + assert_eq!(KEEPALIVE_SOURCE, "command-dispatcher-keepalive"); + } + + #[tokio::test] + async fn keeps_only_one_active_keepalive_in_the_queue() { + let db = Builder::new_local(":memory:").build().await.unwrap(); + let connection = db.connect().unwrap(); + connection + .execute( + "CREATE TABLE OutgoingCommand ( \ + id INTEGER PRIMARY KEY AUTOINCREMENT, \ + command_type TEXT NOT NULL, \ + parameters TEXT, \ + status TEXT NOT NULL, \ + created_at INTEGER NOT NULL, \ + source_service TEXT NOT NULL \ + )", + (), + ) + .await + .unwrap(); + + assert!(enqueue_keepalive(&connection, 1).await.unwrap()); + assert!(!enqueue_keepalive(&connection, 2).await.unwrap()); + + connection + .execute("UPDATE OutgoingCommand SET status = 'Sent' WHERE id = 1", ()) + .await + .unwrap(); + assert!(enqueue_keepalive(&connection, 2).await.unwrap()); + + let mut rows = connection + .query("SELECT parameters, source_service FROM OutgoingCommand ORDER BY id", ()) + .await + .unwrap(); + let first = rows.next().await.unwrap().unwrap(); + let first_parameters = first.get::(0).unwrap(); + let second = rows.next().await.unwrap().unwrap(); + let second_parameters = second.get::(0).unwrap(); + let second_source = second.get::(1).unwrap(); + assert_eq!(first_parameters, r#"{"id":1}"#); + assert_eq!(second_parameters, r#"{"id":2}"#); + assert_eq!(second_source, KEEPALIVE_SOURCE); + } +} diff --git a/apps/command-dispatcher/src/main.rs b/apps/command-dispatcher/src/main.rs new file mode 100755 index 0000000..66c42d7 --- /dev/null +++ b/apps/command-dispatcher/src/main.rs @@ -0,0 +1,67 @@ +mod cli; +use cli::Args; +mod health; +use health::run_service_status_task; +mod keepalive; +use keepalive::run_keepalive_task; +mod dispatcher; +use dispatcher::run_dispatcher; +mod commands; + +use clap::Parser; // For Args::parse() +use libsql::Builder; +use tracing::{error, info}; // Only error and info are used in main + // Tokio is brought in by #[tokio::main] + +pub const SERVICE_ID: &str = "command-dispatcher"; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let args = Args::parse(); + let start_instant = std::time::Instant::now(); + tracing_subscriber::fmt().with_max_level(tracing::Level::INFO).init(); + + info!("{} starting...", SERVICE_ID); + + info!("Attempting to connect to database: {}", args.libsql_url); + let db = Builder::new_remote(args.libsql_url.clone(), args.libsql_auth_token.clone()) + .build() + .await?; + let db_connection = match db.connect() { + Ok(connection) => { + info!("Database connection established successfully"); + connection + } + Err(e) => { + error!("Failed to get database connection: {:?}", e); + return Err(e.into()); + } + }; + info!("Obtained database connection handle."); + + let db_conn_for_health = db_connection.clone(); + let service_status_handle = tokio::spawn(async move { + if let Err(e) = run_service_status_task(db_conn_for_health).await { + error!("Service status task exited with error: {:?}", e); + } + }); + + let db_conn_for_keepalive = db_connection.clone(); + let keepalive_interval_secs = args.keepalive_interval_secs; + let keepalive_handle = tokio::spawn(async move { + if let Err(e) = run_keepalive_task(db_conn_for_keepalive, keepalive_interval_secs).await { + error!("Command keepalive task exited with error: {:?}", e); + } + }); + + info!("Command dispatcher initialized. Starting dispatch loop..."); + + if let Err(e) = run_dispatcher(db_connection, args, start_instant).await { + error!("Dispatcher loop exited with critical error: {:?}", e); + service_status_handle.abort(); + keepalive_handle.abort(); + return Err(e); + } + + Ok(()) +} diff --git a/apps/ground-station-web/.dockerignore b/apps/ground-station-web/.dockerignore new file mode 100755 index 0000000..16db3bc --- /dev/null +++ b/apps/ground-station-web/.dockerignore @@ -0,0 +1,21 @@ +Dockerfile* +docker-compose* +.dockerignore +.git +.gitignore +README.md +LICENSE +.vscode +Makefile +helm-charts +.env +.editorconfig +.idea +coverage* +node_modules +.svelte-kit +build +dist +*.log +.DS_Store +Thumbs.db diff --git a/apps/ground-station-web/.eslintignore b/apps/ground-station-web/.eslintignore new file mode 100755 index 0000000..de8342d --- /dev/null +++ b/apps/ground-station-web/.eslintignore @@ -0,0 +1,14 @@ +.DS_Store +node_modules +/build +/.svelte-kit +svelte.config.js +/package +.env +.env.* +!.env.example + +target/ +tailwind.config.ts +playwright.config.ts +proto/ diff --git a/apps/ground-station-web/.eslintrc.cjs b/apps/ground-station-web/.eslintrc.cjs new file mode 100755 index 0000000..d246c7f --- /dev/null +++ b/apps/ground-station-web/.eslintrc.cjs @@ -0,0 +1,30 @@ +module.exports = { + root: true, + parser: '@typescript-eslint/parser', + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'prettier', + 'plugin:svelte/recommended' + ], + plugins: ['@typescript-eslint'], + ignorePatterns: ['*.cjs', 'e2e/'], + overrides: [ + { + files: ['*.svelte'], + parser: 'svelte-eslint-parser', + parserOptions: { + parser: '@typescript-eslint/parser' + } + } + ], + parserOptions: { + project: './tsconfig.json', + extraFileExtensions: ['.svelte'] // This is a required setting in `@typescript-eslint/parser` v4.24.0. + }, + env: { + browser: true, + es2017: true, + node: true + } +}; diff --git a/apps/ground-station-web/.gitignore b/apps/ground-station-web/.gitignore new file mode 100755 index 0000000..e62c128 --- /dev/null +++ b/apps/ground-station-web/.gitignore @@ -0,0 +1,16 @@ +.DS_Store +node_modules +/build +.svelte-kit +/package +.env +!.env.example +.vercel +.output +vite.config.ts.*.mjs +/test-results/ +/playwright-report/ +/playwright/.cache/ +/test-results/ +/playwright-report/ +/playwright/.cache/ diff --git a/apps/ground-station-web/.prettierignore b/apps/ground-station-web/.prettierignore new file mode 100755 index 0000000..8b8963b --- /dev/null +++ b/apps/ground-station-web/.prettierignore @@ -0,0 +1,15 @@ +.DS_Store +node_modules +/build +/.svelte-kit +/package +.env +.env.* +!.env.example + +# Ignore lock files for package managers +package-lock.json +yarn.lock +bun.lockb +data +proto diff --git a/apps/ground-station-web/.prettierrc b/apps/ground-station-web/.prettierrc new file mode 100755 index 0000000..9573023 --- /dev/null +++ b/apps/ground-station-web/.prettierrc @@ -0,0 +1,8 @@ +{ + "useTabs": true, + "singleQuote": true, + "trailingComma": "none", + "printWidth": 100, + "plugins": ["prettier-plugin-svelte"], + "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] +} diff --git a/apps/ground-station-web/Dockerfile b/apps/ground-station-web/Dockerfile new file mode 100755 index 0000000..e2db007 --- /dev/null +++ b/apps/ground-station-web/Dockerfile @@ -0,0 +1,43 @@ +# Use the official Bun image +FROM oven/bun:1 AS base +WORKDIR /usr/src/app + +# Install dependencies into temp directory +# This will cache them and speed up future builds +FROM base AS install +RUN mkdir -p /temp/dev +COPY package.json bun.lock /temp/dev/ +RUN cd /temp/dev && bun install --frozen-lockfile + +# Install with --production (exclude devDependencies) +RUN mkdir -p /temp/prod +COPY package.json bun.lock /temp/prod/ +RUN cd /temp/prod && bun install --frozen-lockfile --production --ignore-scripts + +# Copy node_modules from temp directory +# Then copy all (non-ignored) project files into the image +FROM base AS prerelease +COPY --from=install /temp/dev/node_modules node_modules +COPY . . + +# Build the application +ENV NODE_ENV=production +RUN bun run postinstall && bun run build + +# Copy production dependencies and built application into final image +FROM base AS release +COPY --from=install /temp/prod/node_modules node_modules +COPY --from=prerelease /usr/src/app/build build +COPY --from=prerelease /usr/src/app/package.json . + +USER bun + +# Expose the port the app runs on +EXPOSE 3000/tcp + +# Set environment variables for production +ENV NODE_ENV=production +ENV PORT=3000 + +# Start the application +CMD ["bun", "build/index.js"] diff --git a/apps/ground-station-web/README.md b/apps/ground-station-web/README.md new file mode 100755 index 0000000..b61230a --- /dev/null +++ b/apps/ground-station-web/README.md @@ -0,0 +1,16 @@ +# RGS Web + +The web frontend for the uORocketry Ground Station. + +## Getting Started + +Install [Bun](https://bun.sh/), then run these commands from `apps/ground-station-web`: + +Then, run the following + +```bash +bun install --frozen-lockfile +bun run dev +``` + +The Vite development server prints its local URL when it starts. Use `deployments/ground-station/compose.yaml` when the complete backend is required. diff --git a/apps/ground-station-web/bun.lock b/apps/ground-station-web/bun.lock new file mode 100644 index 0000000..f7ee2c0 --- /dev/null +++ b/apps/ground-station-web/bun.lock @@ -0,0 +1,1457 @@ +{ + "lockfileVersion": 1, + "configVersion": 0, + "workspaces": { + "": { + "name": "@rgs/web", + "dependencies": { + "@carbon/charts": "^1.27.16", + "@carbon/charts-svelte": "^1.22.18", + "@fontsource/ibm-plex-mono": "^5.2.7", + "@jupyterlab/theme-light-extension": "^4.6.1", + "@libsql/client": "^0.15.15", + "@lumino/default-theme": "^2.1.16", + "@lumino/messaging": "^2.0.5", + "@lumino/widgets": "^2.9.0", + "@sveltejs/kit": "^2.57.1", + "@tailwindcss/vite": "^4.3.3", + "@types/cesium": "^1.70.4", + "@types/leaflet": "^1.9.21", + "carbon-components-svelte": "^0.89.11", + "carbon-icons-svelte": "^12.26.0", + "d3": "^7.9.0", + "gsap": "^3.15.0", + "leaflet": "^1.9.4", + "svelte-adapter-bun": "^0.5.2", + }, + "devDependencies": { + "@floating-ui/dom": "^1.8.0", + "@fortawesome/fontawesome-free": "6.7.2", + "@sveltejs/adapter-auto": "^6.1.1", + "@sveltejs/vite-plugin-svelte": "^5.1.1", + "@threlte/core": "^8.5.16", + "@threlte/extras": "^9.21.0", + "@types/node": "^22.20.1", + "@types/three": "^0.176.0", + "@types/w3c-generic-sensor": "^1.0.10", + "@typescript-eslint/eslint-plugin": "^8.64.0", + "@typescript-eslint/parser": "^8.64.0", + "@vitejs/plugin-basic-ssl": "^2.3.0", + "carbon-preprocess-svelte": "^0.11.37", + "cesium": "^1.143.0", + "eslint": "^9.39.5", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-svelte": "^3.20.0", + "prettier": "^3.9.5", + "prettier-plugin-svelte": "^3.5.2", + "svelte": "^5.56.5", + "svelte-check": "^4.7.3", + "svelte-preprocess": "^6.0.5", + "tailwindcss": "^4.3.3", + "three": "^0.176.0", + "tslib": "^2.8.1", + "typescript": "^5.9.3", + "vite": "^6.4.3", + "vite-plugin-cesium": "^1.2.23", + "vite-plugin-mkcert": "^1.17.12", + "vite-plugin-static-copy": "^2.3.2", + "vitest": "^3.2.7", + }, + }, + }, + "overrides": { + "ajv": "^8.18.0", + "axios": "^1.7.9", + "cookie": "^0.7.0", + "devalue": "^5.3.2", + "dompurify": "^3.2.7", + "flatted": "^3.4.0", + "follow-redirects": "^1.15.12", + "minimatch": "^9.0.5", + "picomatch": "^2.3.2", + "postcss": "^8.5.10", + "protobufjs": "^7.5.7", + "rollup": "^4.59.0", + "ws": "^8.20.1", + "yaml": "^2.7.0", + }, + "packages": { + "@carbon/charts": ["@carbon/charts@1.27.16", "", { "dependencies": { "@carbon/colors": "^11.37.0", "@carbon/utils-position": "^1.3.0", "@ibm/telemetry-js": "^1.9.1", "@types/d3": "^7.4.3", "@types/topojson": "^3.2.6", "d3": "^7.9.0", "d3-cloud": "^1.2.7", "d3-sankey": "^0.12.3", "date-fns": "^4.1.0", "dompurify": "^3.4.0", "html-to-image": "1.11.11", "lodash-es": "^4.18.0", "topojson-client": "^3.1.0", "tslib": "^2.8.1" } }, "sha512-r/Q2ujNWJzJ/nQBh35kO8gGbb+WJppkoBXY3+rFvDua8YjrQ32erWis26NJ9BUzUW0iZUhW1K1k/xuL1JzPXGw=="], + + "@carbon/charts-svelte": ["@carbon/charts-svelte@1.22.18", "", { "dependencies": { "@carbon/charts": "1.22.18", "@ibm/telemetry-js": "^1.9.1" }, "peerDependencies": { "svelte": "^3.31.0 || ^4.0.0 || ^5.20.0" } }, "sha512-nm5eixRK5TrKsFIII922lqHxGFWYcQHFIB/RsbF4YGMkZ3xOKTRQoVnPDgaYpam/jn1rwiFWLC9mmglnfcOfCA=="], + + "@carbon/colors": ["@carbon/colors@11.38.0", "", { "dependencies": { "@ibm/telemetry-js": "^1.5.0" } }, "sha512-5cTvIZalgauRalk4g15rDvYmNufuZWsGh6WTBCLlvynyLRnXbS6wpNrhYj9D+HTJb0jzon+6nYcMJ5H8kfUNqw=="], + + "@carbon/utils-position": ["@carbon/utils-position@1.3.0", "", { "dependencies": { "@ibm/telemetry-js": "^1.5.1" } }, "sha512-bfar2dV+fQ15syIrH3n9ujY4PXd1Q+AF2VcTLJIC04IDe2f80zOnJlLNPc/RktHcWTZ7WSQm80cQo3abGcsfTA=="], + + "@cesium/engine": ["@cesium/engine@26.1.0", "", { "dependencies": { "@cesium/wasm-splats": "^0.1.0-alpha.2", "@spz-loader/core": "0.3.1", "@tweenjs/tween.js": "^25.0.0", "@zip.js/zip.js": "^2.8.1", "autolinker": "^4.0.0", "bitmap-sdf": "^1.0.3", "dompurify": "^3.3.0", "draco3d": "^1.5.1", "earcut": "3.0.2", "grapheme-splitter": "^1.0.4", "jsep": "^1.3.8", "kdbush": "^4.0.1", "ktx-parse": "^1.0.0", "lerc": "^2.0.0", "mersenne-twister": "^1.1.0", "meshoptimizer": "^1.0.1", "pako": "^3.0.0", "protobufjs": "^8.6.5", "rbush": "^4.0.1", "topojson-client": "^3.1.0", "urijs": "^1.19.7" } }, "sha512-WzeJEcmGD7/htBJ8JEZt95OgZjErPwUHqyAlJY/mCzmDm7hfwpuucLBSUhiynWW3khqBT1C7dhibjb7tdic7oA=="], + + "@cesium/wasm-splats": ["@cesium/wasm-splats@0.1.0-alpha.2", "", {}, "sha512-t9pMkknv31hhIbLpMa8yPvmqfpvs5UkUjgqlQv9SeO8VerCXOYnyP8/486BDaFrztM0A7FMbRjsXtNeKvqQghA=="], + + "@cesium/widgets": ["@cesium/widgets@16.1.0", "", { "dependencies": { "@cesium/engine": "^26.1.0", "nosleep.js": "^0.12.0" } }, "sha512-c+jt8F3YIZs2x6+X+HS4q0S9nd2jVcbPVShUmlrDK1s+C7IlEvXceDGrkjivHRElAVCzfaWEEwY1g7Lg5HCGmA=="], + + "@codemirror/state": ["@codemirror/state@6.7.1", "", { "dependencies": { "@marijn/find-cluster-break": "^1.0.0" } }, "sha512-9QzNDgE4EYDnAHfrTlR2lwiPciiOymLtwKK+8yHQzCc7GXhAP9xdEbEJFy2IWB1j9UGUl9BsgMmTo/ImA02T7A=="], + + "@dimforge/rapier3d-compat": ["@dimforge/rapier3d-compat@0.12.0", "", {}, "sha512-uekIGetywIgopfD97oDL5PfeezkFpNhwlzlaEYNOA0N6ghdsOvh/HYjSMek5Q2O1PYvRSDFcqFVJl4r4ZBwOow=="], + + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.4", "", { "os": "aix", "cpu": "ppc64" }, "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q=="], + + "@esbuild/android-arm": ["@esbuild/android-arm@0.25.4", "", { "os": "android", "cpu": "arm" }, "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ=="], + + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.4", "", { "os": "android", "cpu": "arm64" }, "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A=="], + + "@esbuild/android-x64": ["@esbuild/android-x64@0.25.4", "", { "os": "android", "cpu": "x64" }, "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ=="], + + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g=="], + + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A=="], + + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.4", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ=="], + + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.4", "", { "os": "freebsd", "cpu": "x64" }, "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ=="], + + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.4", "", { "os": "linux", "cpu": "arm" }, "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ=="], + + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ=="], + + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.4", "", { "os": "linux", "cpu": "ia32" }, "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ=="], + + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.4", "", { "os": "linux", "cpu": "none" }, "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA=="], + + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.4", "", { "os": "linux", "cpu": "none" }, "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg=="], + + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag=="], + + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.4", "", { "os": "linux", "cpu": "none" }, "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA=="], + + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.4", "", { "os": "linux", "cpu": "s390x" }, "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g=="], + + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.4", "", { "os": "linux", "cpu": "x64" }, "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA=="], + + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.4", "", { "os": "none", "cpu": "arm64" }, "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ=="], + + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.4", "", { "os": "none", "cpu": "x64" }, "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw=="], + + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.4", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A=="], + + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.4", "", { "os": "openbsd", "cpu": "x64" }, "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw=="], + + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.4", "", { "os": "sunos", "cpu": "x64" }, "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q=="], + + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ=="], + + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.4", "", { "os": "win32", "cpu": "ia32" }, "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg=="], + + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.4", "", { "os": "win32", "cpu": "x64" }, "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ=="], + + "@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.9.1", "", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ=="], + + "@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.2", "", {}, "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew=="], + + "@eslint/config-array": ["@eslint/config-array@0.21.2", "", { "dependencies": { "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", "minimatch": "^3.1.5" } }, "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw=="], + + "@eslint/config-helpers": ["@eslint/config-helpers@0.4.2", "", { "dependencies": { "@eslint/core": "^0.17.0" } }, "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw=="], + + "@eslint/core": ["@eslint/core@0.17.0", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ=="], + + "@eslint/eslintrc": ["@eslint/eslintrc@3.3.6", "", { "dependencies": { "ajv": "^6.14.0", "debug": "^4.3.2", "espree": "^10.0.1", "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.3.0", "minimatch": "^3.1.5", "strip-json-comments": "^3.1.1" } }, "sha512-l2Ul9PrHsPCKcEY/ac7VgFj9D80C7S68sOKc618SyHDPK36s1XcFebXY0iTzUVn4Yq+YbwvSnDmCz9yxjX+QrA=="], + + "@eslint/js": ["@eslint/js@9.39.5", "", {}, "sha512-QywQuszQh77pIXCsq998c8hbhSTI/azTty1Z6N53dmAudKHhy573j3yvRLsX2BSp8YpLtoCEG8E9DJe+8zUh4A=="], + + "@eslint/object-schema": ["@eslint/object-schema@2.1.7", "", {}, "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA=="], + + "@eslint/plugin-kit": ["@eslint/plugin-kit@0.4.1", "", { "dependencies": { "@eslint/core": "^0.17.0", "levn": "^0.4.1" } }, "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA=="], + + "@floating-ui/core": ["@floating-ui/core@1.8.0", "", { "dependencies": { "@floating-ui/utils": "^0.2.12" } }, "sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ=="], + + "@floating-ui/dom": ["@floating-ui/dom@1.8.0", "", { "dependencies": { "@floating-ui/core": "^1.8.0", "@floating-ui/utils": "^0.2.12" } }, "sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg=="], + + "@floating-ui/utils": ["@floating-ui/utils@0.2.12", "", {}, "sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww=="], + + "@fontsource/ibm-plex-mono": ["@fontsource/ibm-plex-mono@5.2.7", "", {}, "sha512-MKAb8qV+CaiMQn2B0dIi1OV3565NYzp3WN5b4oT6LTkk+F0jR6j0ZN+5BKJiIhffDC3rtBULsYZE65+0018z9w=="], + + "@fortawesome/fontawesome-free": ["@fortawesome/fontawesome-free@6.7.2", "", {}, "sha512-JUOtgFW6k9u4Y+xeIaEiLr3+cjoUPiAuLXoyKOJSia6Duzb7pq+A76P9ZdPDoAoxHdHzq6gE9/jKBGXlZT8FbA=="], + + "@humanfs/core": ["@humanfs/core@0.19.1", "", {}, "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA=="], + + "@humanfs/node": ["@humanfs/node@0.16.6", "", { "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.3.0" } }, "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw=="], + + "@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="], + + "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.2", "", {}, "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ=="], + + "@ibm/telemetry-js": ["@ibm/telemetry-js@1.9.1", "", { "bin": { "ibmtelemetry": "dist/collect.js" } }, "sha512-qq8RPafUJHUQieXVCte1kbJEx6JctWzbA/YkXzopbfzIDRT2+hbR9QmgH+KH7bDDNRcDbdHWvHfwJKzThlMtPg=="], + + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.8", "", { "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA=="], + + "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], + + "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], + + "@jridgewell/set-array": ["@jridgewell/set-array@1.2.1", "", {}, "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A=="], + + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.0", "", {}, "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="], + + "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.25", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ=="], + + "@jupyter/react-components": ["@jupyter/react-components@0.16.7", "", { "dependencies": { "@jupyter/web-components": "^0.16.7", "react": ">=17.0.0 <19.0.0" } }, "sha512-BKIPkJ9V011uhtdq1xBOu2M3up59CqsRbDS4aq8XhnHR4pwqfRV6k6irE5YBOETCoIwWZZ5RZO+cJcZ3DcsT5A=="], + + "@jupyter/web-components": ["@jupyter/web-components@0.16.7", "", { "dependencies": { "@microsoft/fast-colors": "^5.3.1", "@microsoft/fast-element": "^1.12.0", "@microsoft/fast-foundation": "^2.49.4", "@microsoft/fast-web-utilities": "^5.4.1" } }, "sha512-1a8awgvvP9J9pCV5vBRuQxdBk29764qiMJsJYEndrWH3cB/FlaO+sZIBm4OTf56Eqdgl8R3/ZSLM1+3mgXOkPg=="], + + "@jupyter/ydoc": ["@jupyter/ydoc@4.1.1", "", { "dependencies": { "@jupyterlab/nbformat": "^3.0.0 || ^4.0.0-alpha.21 || ^4.0.0", "@lumino/coreutils": "^1.11.0 || ^2.0.0", "@lumino/disposable": "^1.10.0 || ^2.0.0", "@lumino/signaling": "^1.10.0 || ^2.0.0", "y-protocols": "^1.0.5", "yjs": "^13.5.40" } }, "sha512-fO6WMy2j+Hu+/SjfLycCQZq2OIPBPJtdgrY02mgaHUAsGJ+THQ9JmVgm/Lbai4x1+npXT663FJwVm7z0zJd3Pw=="], + + "@jupyterlab/application": ["@jupyterlab/application@4.6.1", "", { "dependencies": { "@fortawesome/fontawesome-free": "^5.12.0", "@jupyterlab/apputils": "^4.7.1", "@jupyterlab/coreutils": "^6.6.1", "@jupyterlab/docregistry": "^4.6.1", "@jupyterlab/rendermime": "^4.6.1", "@jupyterlab/rendermime-interfaces": "^3.14.1", "@jupyterlab/services": "^7.6.1", "@jupyterlab/statedb": "^4.6.1", "@jupyterlab/translation": "^4.6.1", "@jupyterlab/ui-components": "^4.6.1", "@lumino/algorithm": "^2.0.4", "@lumino/application": "^2.4.9", "@lumino/commands": "^2.3.3", "@lumino/coreutils": "^2.2.2", "@lumino/disposable": "^2.1.5", "@lumino/messaging": "^2.0.4", "@lumino/polling": "^2.1.5", "@lumino/properties": "^2.0.4", "@lumino/signaling": "^2.1.5", "@lumino/widgets": "^2.8.0" } }, "sha512-n188POIQZmymoMNX/KSz5SfH2rEXO3307kokDa7NmdCjXR6JFtjSjJINvfRQwbpoj7dMbVSD9mn0Qz4F8bFsrw=="], + + "@jupyterlab/apputils": ["@jupyterlab/apputils@4.7.1", "", { "dependencies": { "@jupyterlab/coreutils": "^6.6.1", "@jupyterlab/observables": "^5.6.1", "@jupyterlab/rendermime-interfaces": "^3.14.1", "@jupyterlab/services": "^7.6.1", "@jupyterlab/settingregistry": "^4.6.1", "@jupyterlab/statedb": "^4.6.1", "@jupyterlab/statusbar": "^4.6.1", "@jupyterlab/translation": "^4.6.1", "@jupyterlab/ui-components": "^4.6.1", "@lumino/algorithm": "^2.0.4", "@lumino/commands": "^2.3.3", "@lumino/coreutils": "^2.2.2", "@lumino/disposable": "^2.1.5", "@lumino/domutils": "^2.0.4", "@lumino/messaging": "^2.0.4", "@lumino/signaling": "^2.1.5", "@lumino/virtualdom": "^2.0.4", "@lumino/widgets": "^2.8.0", "@types/react": "^18.0.26", "react": "^18.2.0", "sanitize-html": "~2.12.1" } }, "sha512-pJU0RaYzPF8pmoCqMIoM5764lEcQ8gE/3I85nGSeDk15xkVCyWNtMg7wnt6x0U4+II9UUp6dGu8ZRPHr0l+uww=="], + + "@jupyterlab/codeeditor": ["@jupyterlab/codeeditor@4.6.1", "", { "dependencies": { "@codemirror/state": "^6.5.4", "@jupyter/ydoc": "^4.0.0", "@jupyterlab/apputils": "^4.7.1", "@jupyterlab/coreutils": "^6.6.1", "@jupyterlab/nbformat": "^4.6.1", "@jupyterlab/observables": "^5.6.1", "@jupyterlab/statusbar": "^4.6.1", "@jupyterlab/translation": "^4.6.1", "@jupyterlab/ui-components": "^4.6.1", "@lumino/coreutils": "^2.2.2", "@lumino/disposable": "^2.1.5", "@lumino/dragdrop": "^2.1.8", "@lumino/messaging": "^2.0.4", "@lumino/signaling": "^2.1.5", "@lumino/widgets": "^2.8.0", "react": "^18.2.0" } }, "sha512-PBzm8/WGRZONf5b3kwmgnvwkzFwMGZGSL4XtdggZcTphxkT6y0eM4RlrL//7kU5uqhtrOOcraJwXn6gMxpaC/Q=="], + + "@jupyterlab/coreutils": ["@jupyterlab/coreutils@6.6.1", "", { "dependencies": { "@lumino/coreutils": "^2.2.2", "@lumino/disposable": "^2.1.5", "@lumino/signaling": "^2.1.5", "minimist": "~1.2.0", "path-browserify": "^1.0.0", "url-parse": "~1.5.4" } }, "sha512-1DjMEoiHi3CwycFVM0RWfn53+0zGhJ064SKqVeYKxxFFJdN3u7ezClduRiIGEQXAiums8w+9QLlljBx/M+kaUw=="], + + "@jupyterlab/docregistry": ["@jupyterlab/docregistry@4.6.1", "", { "dependencies": { "@jupyter/ydoc": "^4.0.0", "@jupyterlab/apputils": "^4.7.1", "@jupyterlab/codeeditor": "^4.6.1", "@jupyterlab/coreutils": "^6.6.1", "@jupyterlab/observables": "^5.6.1", "@jupyterlab/rendermime": "^4.6.1", "@jupyterlab/rendermime-interfaces": "^3.14.1", "@jupyterlab/services": "^7.6.1", "@jupyterlab/translation": "^4.6.1", "@jupyterlab/ui-components": "^4.6.1", "@lumino/algorithm": "^2.0.4", "@lumino/coreutils": "^2.2.2", "@lumino/disposable": "^2.1.5", "@lumino/messaging": "^2.0.4", "@lumino/properties": "^2.0.4", "@lumino/signaling": "^2.1.5", "@lumino/widgets": "^2.8.0", "react": "^18.2.0" } }, "sha512-vdKj/3Ta1k2zuq2xy7bg/pKlXLYxLCbiXWnlJCcaRSgmsauzVSQoHWWXT3piSklurO2fwL4UJO7L8IK121xbEg=="], + + "@jupyterlab/nbformat": ["@jupyterlab/nbformat@4.6.1", "", { "dependencies": { "@lumino/coreutils": "^2.2.2" } }, "sha512-+dB/edJjn7JDFiyN4nGw+quxBwUFGktgbR8udQeJweDne5mPMArpwCez/HBFkIW/816UX6+gSji01wTP4y10Lw=="], + + "@jupyterlab/observables": ["@jupyterlab/observables@5.6.1", "", { "dependencies": { "@lumino/algorithm": "^2.0.4", "@lumino/coreutils": "^2.2.2", "@lumino/disposable": "^2.1.5", "@lumino/messaging": "^2.0.4", "@lumino/signaling": "^2.1.5" } }, "sha512-WB9N5WEZxwPLh5ttTBTp5QSFiKh+jv1wo/AgH9fAP/HtLLkcZne7j5eKF7XOjOhSjlAyrIiOhJ0o/vzEYvA+6Q=="], + + "@jupyterlab/rendermime": ["@jupyterlab/rendermime@4.6.1", "", { "dependencies": { "@jupyterlab/apputils": "^4.7.1", "@jupyterlab/coreutils": "^6.6.1", "@jupyterlab/nbformat": "^4.6.1", "@jupyterlab/observables": "^5.6.1", "@jupyterlab/rendermime-interfaces": "^3.14.1", "@jupyterlab/services": "^7.6.1", "@jupyterlab/translation": "^4.6.1", "@lumino/coreutils": "^2.2.2", "@lumino/messaging": "^2.0.4", "@lumino/signaling": "^2.1.5", "@lumino/widgets": "^2.8.0", "lodash.escape": "^4.0.1" } }, "sha512-9Zlj+eqyRbvZv0+7neU0A6kXyQqxxlEIgLYs1ESVE8DIBcy81/74RMO7haft+eFwZ79PEpS1JFNc6M/RvphOLg=="], + + "@jupyterlab/rendermime-interfaces": ["@jupyterlab/rendermime-interfaces@3.14.1", "", { "dependencies": { "@lumino/coreutils": "^1.11.0 || ^2.2.2", "@lumino/widgets": "^1.37.2 || ^2.8.0" } }, "sha512-h2NK52OUqLyUHABCZbLXS1C5mXyJG60ptxn4D4hAAw5rNvYEkp7Bt6xVaEJZY6GMf073lvVX11sVIQcdBAi3zA=="], + + "@jupyterlab/services": ["@jupyterlab/services@7.6.1", "", { "dependencies": { "@jupyter/ydoc": "^4.0.0", "@jupyterlab/coreutils": "^6.6.1", "@jupyterlab/nbformat": "^4.6.1", "@jupyterlab/settingregistry": "^4.6.1", "@jupyterlab/statedb": "^4.6.1", "@lumino/coreutils": "^2.2.2", "@lumino/disposable": "^2.1.5", "@lumino/polling": "^2.1.5", "@lumino/properties": "^2.0.4", "@lumino/signaling": "^2.1.5", "ws": "^8.11.0" } }, "sha512-pZ3B+m6bPZs3oUO0hgNd61hI9LlDKN3q931XWe4gWr8S/BwY9RHxoIe/mDgP38G+dS5P1ONKpaFXGICJkvUoQg=="], + + "@jupyterlab/settingregistry": ["@jupyterlab/settingregistry@4.6.1", "", { "dependencies": { "@jupyterlab/nbformat": "^4.6.1", "@jupyterlab/statedb": "^4.6.1", "@lumino/commands": "^2.3.3", "@lumino/coreutils": "^2.2.2", "@lumino/disposable": "^2.1.5", "@lumino/signaling": "^2.1.5", "@rjsf/utils": "^5.13.4", "ajv": "^8.12.0", "json5": "^2.2.3" }, "peerDependencies": { "react": ">=16" } }, "sha512-iQlzSchm7TsnXZUKSXJApGHO3KB1WQE3svenGkPBuqP+kO6DiXY7w5v4c+SCRmAXSrvSZ03QfGLWzCeAi8DsRQ=="], + + "@jupyterlab/statedb": ["@jupyterlab/statedb@4.6.1", "", { "dependencies": { "@lumino/commands": "^2.3.3", "@lumino/coreutils": "^2.2.2", "@lumino/disposable": "^2.1.5", "@lumino/properties": "^2.0.4", "@lumino/signaling": "^2.1.5" } }, "sha512-rF+3oTMCCyiw4OV0caIB0E/lUHncxR73S2uxFEzMxTnIPyA1usO3X5Ln92XqrLLj0acUqexZELCY2PYZSX0wZA=="], + + "@jupyterlab/statusbar": ["@jupyterlab/statusbar@4.6.1", "", { "dependencies": { "@jupyterlab/ui-components": "^4.6.1", "@lumino/algorithm": "^2.0.4", "@lumino/coreutils": "^2.2.2", "@lumino/disposable": "^2.1.5", "@lumino/messaging": "^2.0.4", "@lumino/signaling": "^2.1.5", "@lumino/widgets": "^2.8.0", "react": "^18.2.0" } }, "sha512-FbBExIpHFvm+OpoQ+h898VqBus4ffsdfbhfEagZvHwJtn+P2H7JxglrIzM9HXm4UhDpe6F9Ax8iVJ9aob9CViw=="], + + "@jupyterlab/theme-light-extension": ["@jupyterlab/theme-light-extension@4.6.1", "", { "dependencies": { "@jupyterlab/application": "^4.6.1", "@jupyterlab/apputils": "^4.7.1", "@jupyterlab/translation": "^4.6.1" } }, "sha512-yTf3oXpdEq0tA6mvTe2T1B8F3Yc+eqZzReza0MiOm0Id0otuAesYEBaZL3d04SUo8WnrcLUrWWeGEOr1qVgt0Q=="], + + "@jupyterlab/translation": ["@jupyterlab/translation@4.6.1", "", { "dependencies": { "@jupyterlab/coreutils": "^6.6.1", "@jupyterlab/rendermime-interfaces": "^3.14.1", "@jupyterlab/services": "^7.6.1", "@jupyterlab/statedb": "^4.6.1", "@lumino/coreutils": "^2.2.2" } }, "sha512-8XF6sCWb2xxjF8TDTI9D9UW5mdCFGFx0sKqW4j/rRihXgdNYbR/d1p2V1zcCwBQpu0X0lmS0CEOFlLaKjZmHJA=="], + + "@jupyterlab/ui-components": ["@jupyterlab/ui-components@4.6.1", "", { "dependencies": { "@jupyter/react-components": "^0.16.6", "@jupyter/web-components": "^0.16.6", "@jupyterlab/coreutils": "^6.6.1", "@jupyterlab/observables": "^5.6.1", "@jupyterlab/rendermime-interfaces": "^3.14.1", "@jupyterlab/translation": "^4.6.1", "@lumino/algorithm": "^2.0.4", "@lumino/commands": "^2.3.3", "@lumino/coreutils": "^2.2.2", "@lumino/disposable": "^2.1.5", "@lumino/messaging": "^2.0.4", "@lumino/polling": "^2.1.5", "@lumino/properties": "^2.0.4", "@lumino/signaling": "^2.1.5", "@lumino/virtualdom": "^2.0.4", "@lumino/widgets": "^2.8.0", "@rjsf/core": "^5.13.4", "@rjsf/utils": "^5.13.4", "react": "^18.2.0", "react-dom": "^18.2.0", "typestyle": "^2.0.4" } }, "sha512-U5Qp/UzeYkGA/MjzMG9bpqqLl3QJ3XFJE/nJ/ayJaaWuzArFHUvCDmn9aT2RlQxvKT1eQnzjVeMDuaV0wdcc4A=="], + + "@libsql/client": ["@libsql/client@0.15.15", "", { "dependencies": { "@libsql/core": "^0.15.14", "@libsql/hrana-client": "^0.7.0", "js-base64": "^3.7.5", "libsql": "^0.5.22", "promise-limit": "^2.7.0" } }, "sha512-twC0hQxPNHPKfeOv3sNT6u2pturQjLcI+CnpTM0SjRpocEGgfiZ7DWKXLNnsothjyJmDqEsBQJ5ztq9Wlu470w=="], + + "@libsql/core": ["@libsql/core@0.15.15", "", { "dependencies": { "js-base64": "^3.7.5" } }, "sha512-C88Z6UKl+OyuKKPwz224riz02ih/zHYI3Ho/LAcVOgjsunIRZoBw7fjRfaH9oPMmSNeQfhGklSG2il1URoOIsA=="], + + "@libsql/darwin-arm64": ["@libsql/darwin-arm64@0.5.29", "", { "os": "darwin", "cpu": "arm64" }, "sha512-K+2RIB1OGFPYQbfay48GakLhqf3ArcbHqPFu7EZiaUcRgFcdw8RoltsMyvbj5ix2fY0HV3Q3Ioa/ByvQdaSM0A=="], + + "@libsql/darwin-x64": ["@libsql/darwin-x64@0.5.29", "", { "os": "darwin", "cpu": "x64" }, "sha512-OtT+KFHsKFy1R5FVadr8FJ2Bb1mghtXTyJkxv0trocq7NuHntSki1eUbxpO5ezJesDvBlqFjnWaYYY516QNLhQ=="], + + "@libsql/hrana-client": ["@libsql/hrana-client@0.7.0", "", { "dependencies": { "@libsql/isomorphic-fetch": "^0.3.1", "@libsql/isomorphic-ws": "^0.1.5", "js-base64": "^3.7.5", "node-fetch": "^3.3.2" } }, "sha512-OF8fFQSkbL7vJY9rfuegK1R7sPgQ6kFMkDamiEccNUvieQ+3urzfDFI616oPl8V7T9zRmnTkSjMOImYCAVRVuw=="], + + "@libsql/isomorphic-fetch": ["@libsql/isomorphic-fetch@0.3.1", "", {}, "sha512-6kK3SUK5Uu56zPq/Las620n5aS9xJq+jMBcNSOmjhNf/MUvdyji4vrMTqD7ptY7/4/CAVEAYDeotUz60LNQHtw=="], + + "@libsql/isomorphic-ws": ["@libsql/isomorphic-ws@0.1.5", "", { "dependencies": { "@types/ws": "^8.5.4", "ws": "^8.13.0" } }, "sha512-DtLWIH29onUYR00i0GlQ3UdcTRC6EP4u9w/h9LxpUZJWRMARk6dQwZ6Jkd+QdwVpuAOrdxt18v0K2uIYR3fwFg=="], + + "@libsql/linux-arm-gnueabihf": ["@libsql/linux-arm-gnueabihf@0.5.29", "", { "os": "linux", "cpu": "arm" }, "sha512-CD4n4zj7SJTHso4nf5cuMoWoMSS7asn5hHygsDuhRl8jjjCTT3yE+xdUvI4J7zsyb53VO5ISh4cwwOtf6k2UhQ=="], + + "@libsql/linux-arm-musleabihf": ["@libsql/linux-arm-musleabihf@0.5.29", "", { "os": "linux", "cpu": "arm" }, "sha512-2Z9qBVpEJV7OeflzIR3+l5yAd4uTOLxklScYTwpZnkm2vDSGlC1PRlueLaufc4EFITkLKXK2MWBpexuNJfMVcg=="], + + "@libsql/linux-arm64-gnu": ["@libsql/linux-arm64-gnu@0.5.29", "", { "os": "linux", "cpu": "arm64" }, "sha512-gURBqaiXIGGwFNEaUj8Ldk7Hps4STtG+31aEidCk5evMMdtsdfL3HPCpvys+ZF/tkOs2MWlRWoSq7SOuCE9k3w=="], + + "@libsql/linux-arm64-musl": ["@libsql/linux-arm64-musl@0.5.29", "", { "os": "linux", "cpu": "arm64" }, "sha512-fwgYZ0H8mUkyVqXZHF3mT/92iIh1N94Owi/f66cPVNsk9BdGKq5gVpoKO+7UxaNzuEH1roJp2QEwsCZMvBLpqg=="], + + "@libsql/linux-x64-gnu": ["@libsql/linux-x64-gnu@0.5.29", "", { "os": "linux", "cpu": "x64" }, "sha512-y14V0vY0nmMC6G0pHeJcEarcnGU2H6cm21ZceRkacWHvQAEhAG0latQkCtoS2njFOXiYIg+JYPfAoWKbi82rkg=="], + + "@libsql/linux-x64-musl": ["@libsql/linux-x64-musl@0.5.29", "", { "os": "linux", "cpu": "x64" }, "sha512-gquqwA/39tH4pFl+J9n3SOMSymjX+6kZ3kWgY3b94nXFTwac9bnFNMffIomgvlFaC4ArVqMnOZD3nuJ3H3VO1w=="], + + "@libsql/win32-x64-msvc": ["@libsql/win32-x64-msvc@0.5.29", "", { "os": "win32", "cpu": "x64" }, "sha512-4/0CvEdhi6+KjMxMaVbFM2n2Z44escBRoEYpR+gZg64DdetzGnYm8mcNLcoySaDJZNaBd6wz5DNdgRmcI4hXcg=="], + + "@lumino/algorithm": ["@lumino/algorithm@2.0.5", "", {}, "sha512-yW5k0IRrNlNDL9/hLOPr0XaMYf7YSZ5a/uJ++a92ziBe7v7a3xzBJ1+Awhb6fMyanE0Mz97UOQIsHa3vWB0UQA=="], + + "@lumino/application": ["@lumino/application@2.4.10", "", { "dependencies": { "@lumino/commands": "^2.3.4", "@lumino/coreutils": "^2.2.3", "@lumino/widgets": "^2.9.0" } }, "sha512-NlOMzs9G7e9hIKybJ9JY0DoFOt151NTBcxCc4Z+RllYxU6ZaS1UWd1M4rk+VBJnfo95RNreT94/yKFLT0zynBA=="], + + "@lumino/collections": ["@lumino/collections@2.0.5", "", { "dependencies": { "@lumino/algorithm": "^2.0.5" } }, "sha512-iRthCb6cMoq1rcd4OC8dNFU7v/YbJOw647kzqrMxLPlQmMeeY5wHxF/W9qCb01VUI3zyxvh0/ND4DHB4mruJfA=="], + + "@lumino/commands": ["@lumino/commands@2.3.4", "", { "dependencies": { "@lumino/algorithm": "^2.0.5", "@lumino/coreutils": "^2.2.3", "@lumino/disposable": "^2.1.6", "@lumino/domutils": "^2.0.5", "@lumino/keyboard": "^2.0.5", "@lumino/signaling": "^2.1.6", "@lumino/virtualdom": "^2.0.5" } }, "sha512-bmCdM7jxX25s9ydKZcWmF7xL051MsG5fJ9IyCHoOPcKm3keuwX3wY1PpVERuooUvU6zZfI7+LFaolWX0eCs2Hw=="], + + "@lumino/coreutils": ["@lumino/coreutils@2.2.3", "", { "dependencies": { "@lumino/algorithm": "^2.0.5" } }, "sha512-YxmayMeq8VJCPqo1okpsA3oOoz0eZeG5qedOLmopm+N/GwQT7S34QPPts49omVUwTJ0Xo8fGzOsxnS/LwnVl1Q=="], + + "@lumino/default-theme": ["@lumino/default-theme@2.1.16", "", { "dependencies": { "@lumino/dragdrop": "^2.1.9", "@lumino/widgets": "^2.9.0" } }, "sha512-TRFmlAhqq6wDTUXRPGJBBW/CCmWWnofR2XPGHwui5DK0UB9TOsq7pZTzGKsHIADMWPgTH5wNGVYQf+IFFBrTPw=="], + + "@lumino/disposable": ["@lumino/disposable@2.1.6", "", { "dependencies": { "@lumino/signaling": "^2.1.6" } }, "sha512-mTDBsftt+dWkP3MeeLuYjJ7mtOcrMld6Pq4h7EY6HzhPSdPXzvQELZ29vpc1lq6EWz/fzCfpoE+W8AzNUCHTLg=="], + + "@lumino/domutils": ["@lumino/domutils@2.0.5", "", {}, "sha512-4zsSqWqAHvOFJTtvyAZsQu7qL5ZZRu37mTzppZNAI3a91jlIben3NbAMGZiyZeAnv3b9Z7S5sPOVWZKkJyhegg=="], + + "@lumino/dragdrop": ["@lumino/dragdrop@2.1.9", "", { "dependencies": { "@lumino/coreutils": "^2.2.3", "@lumino/disposable": "^2.1.6" } }, "sha512-gwkdJNLrRE8GVh4Z70Yj5fhpasQNDkt8Z/aOneQbL4T1bpsMTwzdn3t/2pIZaWngrEqCGnj0ofUUuQAYZuQMyw=="], + + "@lumino/keyboard": ["@lumino/keyboard@2.0.5", "", {}, "sha512-YB7kmE0+ZeZ6oN/Qps6Ln8MXe4rZQh+27ex4GTJuxTMvvbqFhDW6mc/zN6av22HYxDlOF55YlzNhjk2LpD8k7A=="], + + "@lumino/messaging": ["@lumino/messaging@2.0.5", "", { "dependencies": { "@lumino/algorithm": "^2.0.5", "@lumino/collections": "^2.0.5" } }, "sha512-LNvV9xW6pkVuW8n4vFYxboJFOtt2WRJZMrg3Ta6C6LcfazVQy+ubiC8GRqBMq2ufZ1zclOWQII5QFC1wxFm6dg=="], + + "@lumino/polling": ["@lumino/polling@2.1.6", "", { "dependencies": { "@lumino/coreutils": "^2.2.3", "@lumino/disposable": "^2.1.6", "@lumino/signaling": "^2.1.6" } }, "sha512-q1+Ii2AH8rdLoeJvvjpNnmQU0PcDSXLVm0+XO447eJwYFRg56zjvZ/ZrbFUwPA0jz0xf2hbeHkdyAkmcVI4Qcw=="], + + "@lumino/properties": ["@lumino/properties@2.0.5", "", {}, "sha512-+Yoo9lb/hzNKFXpkRaEC4r7aMe8prbEhscAbA/vyzqmY4NYjZsiqhxHUgyKgtGHosrrpY59Qv4ha+5csU08zsw=="], + + "@lumino/signaling": ["@lumino/signaling@2.1.6", "", { "dependencies": { "@lumino/algorithm": "^2.0.5", "@lumino/coreutils": "^2.2.3" } }, "sha512-PEB2nuNyippF/vj28oiDm7Zy8vAeVq07NE59L79GhaTe9i37TCjtA3+67DJnVGn1+fQPfexs6HdrY/90JFFwiw=="], + + "@lumino/virtualdom": ["@lumino/virtualdom@2.0.5", "", { "dependencies": { "@lumino/algorithm": "^2.0.5" } }, "sha512-Qgvtv9Iruny+p2y/jPWo9tOcUqS+Nlcwg14+m+xJEclFyVTpY8gGJKTDY8Y1wVO5PpQjRPNdbF8lxzrGR/89IA=="], + + "@lumino/widgets": ["@lumino/widgets@2.9.0", "", { "dependencies": { "@lumino/algorithm": "^2.0.5", "@lumino/commands": "^2.3.4", "@lumino/coreutils": "^2.2.3", "@lumino/disposable": "^2.1.6", "@lumino/domutils": "^2.0.5", "@lumino/dragdrop": "^2.1.9", "@lumino/keyboard": "^2.0.5", "@lumino/messaging": "^2.0.5", "@lumino/properties": "^2.0.5", "@lumino/signaling": "^2.1.6", "@lumino/virtualdom": "^2.0.5" } }, "sha512-cLiHV/QJxP54Bg+Ixa24VDzj48YkgtW7drBI4gRAZqM1e3zcDF4HoDT0BsobRq4A7oaFmqNhzD/PMTtw9w9zJg=="], + + "@marijn/find-cluster-break": ["@marijn/find-cluster-break@1.0.2", "", {}, "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g=="], + + "@microsoft/fast-colors": ["@microsoft/fast-colors@5.3.1", "", {}, "sha512-72RZXVfCbwQzvo5sXXkuLXLT7rMeYaSf5r/6ewQiv/trBtqpWRm4DEH2EilHw/iWTBKOXs1qZNQndgUMa5n4LA=="], + + "@microsoft/fast-element": ["@microsoft/fast-element@1.14.0", "", {}, "sha512-zXvuSOzvsu8zDTy9eby8ix8VqLop2rwKRgp++ZN2kTCsoB3+QJVoaGD2T/Cyso2ViZQFXNpiNCVKfnmxBvmWkQ=="], + + "@microsoft/fast-foundation": ["@microsoft/fast-foundation@2.50.0", "", { "dependencies": { "@microsoft/fast-element": "^1.14.0", "@microsoft/fast-web-utilities": "^5.4.1", "tabbable": "^5.2.0", "tslib": "^1.13.0" } }, "sha512-8mFYG88Xea1jZf2TI9Lm/jzZ6RWR8x29r24mGuLojNYqIR2Bl8+hnswoV6laApKdCbGMPKnsAL/O68Q0sRxeVg=="], + + "@microsoft/fast-web-utilities": ["@microsoft/fast-web-utilities@5.4.1", "", { "dependencies": { "exenv-es6": "^1.1.1" } }, "sha512-ReWYncndjV3c8D8iq9tp7NcFNc1vbVHvcBFPME2nNFKNbS1XCesYZGlIlf3ot5EmuOXPlrzUHOWzQ2vFpIkqDg=="], + + "@neon-rs/load": ["@neon-rs/load@0.0.4", "", {}, "sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw=="], + + "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], + + "@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="], + + "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="], + + "@polka/url": ["@polka/url@1.0.0-next.29", "", {}, "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww=="], + + "@protobufjs/aspromise": ["@protobufjs/aspromise@1.1.2", "", {}, "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ=="], + + "@protobufjs/base64": ["@protobufjs/base64@1.1.2", "", {}, "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg=="], + + "@protobufjs/codegen": ["@protobufjs/codegen@2.0.5", "", {}, "sha512-zgXFLzW3Ap33e6d0Wlj4MGIm6Ce8O89n/apUaGNB/jx+hw+ruWEp7EwGUshdLKVRCxZW12fp9r40E1mQrf/34g=="], + + "@protobufjs/eventemitter": ["@protobufjs/eventemitter@1.1.1", "", {}, "sha512-vW1GmwMZNnL+gMRaovlh9yZX74kc+TTU3FObkkurpMaRtBfLP3ldjS9KQWlwZgraRE0+dheEEoAxdzcJQ8eXZg=="], + + "@protobufjs/fetch": ["@protobufjs/fetch@1.1.1", "", { "dependencies": { "@protobufjs/aspromise": "^1.1.1" } }, "sha512-GpptLrs57adMSuHi3VNj0mAF8dwh36LMaYF6XyJ6JMWlVsc+t42tm1HSEDmOs3A8fC9yyeisgLhsTVQokOZ0zw=="], + + "@protobufjs/float": ["@protobufjs/float@1.0.2", "", {}, "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ=="], + + "@protobufjs/path": ["@protobufjs/path@1.1.2", "", {}, "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA=="], + + "@protobufjs/pool": ["@protobufjs/pool@1.1.0", "", {}, "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw=="], + + "@protobufjs/utf8": ["@protobufjs/utf8@1.1.2", "", {}, "sha512-b1UQwcEZ4yCnMCD8DAL1VlbvBJE9/IX4FTIp7BG1xYpf29SLazLSrqUkj4w7Y5y7cCVP6E5tcqqcI0xemPkHug=="], + + "@rjsf/core": ["@rjsf/core@5.24.10", "", { "dependencies": { "lodash": "^4.17.21", "lodash-es": "^4.17.21", "markdown-to-jsx": "^7.4.1", "nanoid": "^3.3.7", "prop-types": "^15.8.1" }, "peerDependencies": { "@rjsf/utils": "^5.24.x", "react": "^16.14.0 || >=17" } }, "sha512-DJe2OECdDoBHacQKCPOAiuoEydM7ZJUUFqgcO4VswRs13QglRaEAEk4ylWR6f2gQx7wBg0u302n3VvRoHRxegQ=="], + + "@rjsf/utils": ["@rjsf/utils@5.24.10", "", { "dependencies": { "json-schema-merge-allof": "^0.8.1", "jsonpointer": "^5.0.1", "lodash": "^4.17.21", "lodash-es": "^4.17.21", "react-is": "^18.2.0" }, "peerDependencies": { "react": "^16.14.0 || >=17" } }, "sha512-afsi+oKNV12p6OnBydJ0R4M87h7SaArqAhqJPqVXbMldnbPnW632THCtod5GG+IYtkqUkx0iQq2xpHw1OBf+3A=="], + + "@rollup/pluginutils": ["@rollup/pluginutils@4.2.1", "", { "dependencies": { "estree-walker": "^2.0.1", "picomatch": "^2.2.2" } }, "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ=="], + + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.62.2", "", { "os": "android", "cpu": "arm" }, "sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg=="], + + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.62.2", "", { "os": "android", "cpu": "arm64" }, "sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw=="], + + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.62.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A=="], + + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.62.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA=="], + + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.62.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw=="], + + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.62.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg=="], + + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.62.2", "", { "os": "linux", "cpu": "arm" }, "sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg=="], + + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.62.2", "", { "os": "linux", "cpu": "arm" }, "sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA=="], + + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.62.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA=="], + + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.62.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ=="], + + "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.62.2", "", { "os": "linux", "cpu": "none" }, "sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg=="], + + "@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.62.2", "", { "os": "linux", "cpu": "none" }, "sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ=="], + + "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.62.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A=="], + + "@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.62.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w=="], + + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.62.2", "", { "os": "linux", "cpu": "none" }, "sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg=="], + + "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.62.2", "", { "os": "linux", "cpu": "none" }, "sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q=="], + + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.62.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg=="], + + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.62.2", "", { "os": "linux", "cpu": "x64" }, "sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A=="], + + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.62.2", "", { "os": "linux", "cpu": "x64" }, "sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg=="], + + "@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.62.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg=="], + + "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.62.2", "", { "os": "none", "cpu": "arm64" }, "sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA=="], + + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.62.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg=="], + + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.62.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q=="], + + "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.62.2", "", { "os": "win32", "cpu": "x64" }, "sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg=="], + + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.62.2", "", { "os": "win32", "cpu": "x64" }, "sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA=="], + + "@spz-loader/core": ["@spz-loader/core@0.3.1", "", {}, "sha512-8qJ1WIBXaJu8HjnJAjYniE0kYcr0kCe5Hp7kDzYiGVvvd7zyrOBwbF5imoW5mvwx1Qba0hxGEK5R9jEoaHKJFA=="], + + "@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], + + "@sveltejs/acorn-typescript": ["@sveltejs/acorn-typescript@1.0.11", "", { "peerDependencies": { "acorn": "^8.9.0" } }, "sha512-LFuZUkjJ9iF7JZye/aG5XM0SFcQ5VyL0oVX4WJ9dc0Va3R3s0OauX1BESVCb+YN/ol8TAfqGDDAQsTG627Y5kw=="], + + "@sveltejs/adapter-auto": ["@sveltejs/adapter-auto@6.1.1", "", { "peerDependencies": { "@sveltejs/kit": "^2.0.0" } }, "sha512-cBNt4jgH4KuaNO5gRSB2CZKkGtz+OCZ8lPjRQGjhvVUD4akotnj2weUia6imLl2v07K3IgsQRyM36909miSwoQ=="], + + "@sveltejs/kit": ["@sveltejs/kit@2.69.3", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "@sveltejs/acorn-typescript": "^1.0.9", "@types/cookie": "^0.6.0", "acorn": "^8.16.0", "cookie": "^0.6.0", "devalue": "^5.8.1", "esm-env": "^1.2.2", "kleur": "^4.1.5", "magic-string": "^0.30.5", "mrmime": "^2.0.0", "set-cookie-parser": "^3.0.0", "sirv": "^3.0.0" }, "peerDependencies": { "@opentelemetry/api": "^1.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0 || ^7.0.0", "svelte": "^4.0.0 || ^5.0.0-next.0", "typescript": "^5.3.3 || ^6.0.0", "vite": "^5.0.3 || ^6.0.0 || ^7.0.0-beta.0 || ^8.0.0" }, "optionalPeers": ["@opentelemetry/api", "typescript"], "bin": { "svelte-kit": "svelte-kit.js" } }, "sha512-cphwqMRcE19/9VkrIPr5qZhQ0SptSSDfDzRUpYHu9OJDFGuYBFyJzK+KQA27wB4YG32O/yF2QjBkDmTyo0vtCw=="], + + "@sveltejs/load-config": ["@sveltejs/load-config@0.2.0", "", {}, "sha512-1LgZ/qUqSoq+QorD83lk2hka79Px0wXNW2q5V1nZlxGhQgw1jrsIbVz5YiCeucVLo4XvFLjXukUaQjIiqowkcg=="], + + "@sveltejs/vite-plugin-svelte": ["@sveltejs/vite-plugin-svelte@5.1.1", "", { "dependencies": { "@sveltejs/vite-plugin-svelte-inspector": "^4.0.1", "debug": "^4.4.1", "deepmerge": "^4.3.1", "kleur": "^4.1.5", "magic-string": "^0.30.17", "vitefu": "^1.0.6" }, "peerDependencies": { "svelte": "^5.0.0", "vite": "^6.0.0" } }, "sha512-Y1Cs7hhTc+a5E9Va/xwKlAJoariQyHY+5zBgCZg4PFWNYQ1nMN9sjK1zhw1gK69DuqVP++sht/1GZg1aRwmAXQ=="], + + "@sveltejs/vite-plugin-svelte-inspector": ["@sveltejs/vite-plugin-svelte-inspector@4.0.1", "", { "dependencies": { "debug": "^4.3.7" }, "peerDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.0", "svelte": "^5.0.0", "vite": "^6.0.0" } }, "sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw=="], + + "@tailwindcss/node": ["@tailwindcss/node@4.3.3", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "enhanced-resolve": "^5.24.1", "jiti": "^2.7.0", "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.3.3" } }, "sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg=="], + + "@tailwindcss/oxide": ["@tailwindcss/oxide@4.3.3", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.3.3", "@tailwindcss/oxide-darwin-arm64": "4.3.3", "@tailwindcss/oxide-darwin-x64": "4.3.3", "@tailwindcss/oxide-freebsd-x64": "4.3.3", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.3", "@tailwindcss/oxide-linux-arm64-gnu": "4.3.3", "@tailwindcss/oxide-linux-arm64-musl": "4.3.3", "@tailwindcss/oxide-linux-x64-gnu": "4.3.3", "@tailwindcss/oxide-linux-x64-musl": "4.3.3", "@tailwindcss/oxide-wasm32-wasi": "4.3.3", "@tailwindcss/oxide-win32-arm64-msvc": "4.3.3", "@tailwindcss/oxide-win32-x64-msvc": "4.3.3" } }, "sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA=="], + + "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.3.3", "", { "os": "android", "cpu": "arm64" }, "sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw=="], + + "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.3.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw=="], + + "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.3.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw=="], + + "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.3.3", "", { "os": "freebsd", "cpu": "x64" }, "sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw=="], + + "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.3.3", "", { "os": "linux", "cpu": "arm" }, "sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ=="], + + "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.3.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w=="], + + "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.3.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA=="], + + "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.3.3", "", { "os": "linux", "cpu": "x64" }, "sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w=="], + + "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.3.3", "", { "os": "linux", "cpu": "x64" }, "sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img=="], + + "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.3.3", "", { "dependencies": { "@emnapi/core": "^1.11.1", "@emnapi/runtime": "^1.11.1", "@emnapi/wasi-threads": "^1.2.2", "@napi-rs/wasm-runtime": "^1.1.4", "@tybys/wasm-util": "^0.10.2", "tslib": "^2.8.1" }, "cpu": "none" }, "sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ=="], + + "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.3.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ=="], + + "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.3.3", "", { "os": "win32", "cpu": "x64" }, "sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw=="], + + "@tailwindcss/vite": ["@tailwindcss/vite@4.3.3", "", { "dependencies": { "@tailwindcss/node": "4.3.3", "@tailwindcss/oxide": "4.3.3", "tailwindcss": "4.3.3" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7 || ^8" } }, "sha512-yYU8cogLeSh/ms2jh8Fj7jaba/EWa7Ja6GoUqYZaraEuCI5YS6ms6ObZgjjedm+jm6XZjdNRWBpPP6Z86oOxcw=="], + + "@threejs-kit/instanced-sprite-mesh": ["@threejs-kit/instanced-sprite-mesh@2.5.1", "", { "dependencies": { "diet-sprite": "^0.0.1", "earcut": "^2.2.4", "maath": "^0.10.7", "three-instanced-uniforms-mesh": "^0.52.4", "troika-three-utils": "^0.52.4" }, "peerDependencies": { "three": ">=0.170.0" } }, "sha512-pmt1ALRhbHhCJQTj2FuthH6PeLIeaM4hOuS2JO3kWSwlnvx/9xuUkjFR3JOi/myMqsH7pSsLIROSaBxDfttjeA=="], + + "@threlte/core": ["@threlte/core@8.5.16", "", { "peerDependencies": { "svelte": ">=5", "three": ">=0.160" } }, "sha512-+aa9Zgz0/Qat82H0hTm1pTEtS2BIP1Nfu7pKaei+3+TvDqER0YnZ4hdgI9fYU9Z5r1lrzY3JxMyrdISp4B0kfw=="], + + "@threlte/extras": ["@threlte/extras@9.21.0", "", { "dependencies": { "@threejs-kit/instanced-sprite-mesh": "^2.5.1", "camera-controls": "^3.1.2", "three-mesh-bvh": "^0.9.1", "three-perf": "^1.0.11", "three-viewport-gizmo": "^2.2.0", "troika-three-text": "^0.52.4" }, "peerDependencies": { "svelte": ">=5", "three": ">=0.160" } }, "sha512-ZkBx4IH+7vcxVM09Rex9XJNMKKbQt4JZ5J/3TnBd/Fge8IzSgl0ydgn70riDf/8tDLMDID6VdZPPrlr5vCHHJA=="], + + "@tweenjs/tween.js": ["@tweenjs/tween.js@23.1.3", "", {}, "sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA=="], + + "@types/cesium": ["@types/cesium@1.70.4", "", { "dependencies": { "cesium": "*" } }, "sha512-dSBhF5qftTCyB8xYRpumjzeEdEiV0wjDfmLtXF+1cNYUHvn2xs2HcvxCKFCqH6hEcATPWDP0WW6aaCCqrUo9dQ=="], + + "@types/chai": ["@types/chai@5.2.2", "", { "dependencies": { "@types/deep-eql": "*" } }, "sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg=="], + + "@types/cookie": ["@types/cookie@0.6.0", "", {}, "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA=="], + + "@types/d3": ["@types/d3@7.4.3", "", { "dependencies": { "@types/d3-array": "*", "@types/d3-axis": "*", "@types/d3-brush": "*", "@types/d3-chord": "*", "@types/d3-color": "*", "@types/d3-contour": "*", "@types/d3-delaunay": "*", "@types/d3-dispatch": "*", "@types/d3-drag": "*", "@types/d3-dsv": "*", "@types/d3-ease": "*", "@types/d3-fetch": "*", "@types/d3-force": "*", "@types/d3-format": "*", "@types/d3-geo": "*", "@types/d3-hierarchy": "*", "@types/d3-interpolate": "*", "@types/d3-path": "*", "@types/d3-polygon": "*", "@types/d3-quadtree": "*", "@types/d3-random": "*", "@types/d3-scale": "*", "@types/d3-scale-chromatic": "*", "@types/d3-selection": "*", "@types/d3-shape": "*", "@types/d3-time": "*", "@types/d3-time-format": "*", "@types/d3-timer": "*", "@types/d3-transition": "*", "@types/d3-zoom": "*" } }, "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww=="], + + "@types/d3-array": ["@types/d3-array@3.2.1", "", {}, "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg=="], + + "@types/d3-axis": ["@types/d3-axis@3.0.6", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw=="], + + "@types/d3-brush": ["@types/d3-brush@3.0.6", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A=="], + + "@types/d3-chord": ["@types/d3-chord@3.0.6", "", {}, "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg=="], + + "@types/d3-color": ["@types/d3-color@3.1.3", "", {}, "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A=="], + + "@types/d3-contour": ["@types/d3-contour@3.0.6", "", { "dependencies": { "@types/d3-array": "*", "@types/geojson": "*" } }, "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg=="], + + "@types/d3-delaunay": ["@types/d3-delaunay@6.0.4", "", {}, "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw=="], + + "@types/d3-dispatch": ["@types/d3-dispatch@3.0.7", "", {}, "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA=="], + + "@types/d3-drag": ["@types/d3-drag@3.0.7", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ=="], + + "@types/d3-dsv": ["@types/d3-dsv@3.0.7", "", {}, "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g=="], + + "@types/d3-ease": ["@types/d3-ease@3.0.2", "", {}, "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA=="], + + "@types/d3-fetch": ["@types/d3-fetch@3.0.7", "", { "dependencies": { "@types/d3-dsv": "*" } }, "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA=="], + + "@types/d3-force": ["@types/d3-force@3.0.10", "", {}, "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw=="], + + "@types/d3-format": ["@types/d3-format@3.0.4", "", {}, "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g=="], + + "@types/d3-geo": ["@types/d3-geo@3.1.0", "", { "dependencies": { "@types/geojson": "*" } }, "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ=="], + + "@types/d3-hierarchy": ["@types/d3-hierarchy@3.1.7", "", {}, "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg=="], + + "@types/d3-interpolate": ["@types/d3-interpolate@3.0.4", "", { "dependencies": { "@types/d3-color": "*" } }, "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA=="], + + "@types/d3-path": ["@types/d3-path@3.1.1", "", {}, "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg=="], + + "@types/d3-polygon": ["@types/d3-polygon@3.0.2", "", {}, "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA=="], + + "@types/d3-quadtree": ["@types/d3-quadtree@3.0.6", "", {}, "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg=="], + + "@types/d3-random": ["@types/d3-random@3.0.3", "", {}, "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ=="], + + "@types/d3-scale": ["@types/d3-scale@4.0.9", "", { "dependencies": { "@types/d3-time": "*" } }, "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw=="], + + "@types/d3-scale-chromatic": ["@types/d3-scale-chromatic@3.1.0", "", {}, "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ=="], + + "@types/d3-selection": ["@types/d3-selection@3.0.11", "", {}, "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w=="], + + "@types/d3-shape": ["@types/d3-shape@3.1.7", "", { "dependencies": { "@types/d3-path": "*" } }, "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg=="], + + "@types/d3-time": ["@types/d3-time@3.0.4", "", {}, "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g=="], + + "@types/d3-time-format": ["@types/d3-time-format@4.0.3", "", {}, "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg=="], + + "@types/d3-timer": ["@types/d3-timer@3.0.2", "", {}, "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw=="], + + "@types/d3-transition": ["@types/d3-transition@3.0.9", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg=="], + + "@types/d3-zoom": ["@types/d3-zoom@3.0.8", "", { "dependencies": { "@types/d3-interpolate": "*", "@types/d3-selection": "*" } }, "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw=="], + + "@types/deep-eql": ["@types/deep-eql@4.0.2", "", {}, "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw=="], + + "@types/estree": ["@types/estree@1.0.7", "", {}, "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ=="], + + "@types/geojson": ["@types/geojson@7946.0.16", "", {}, "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg=="], + + "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], + + "@types/leaflet": ["@types/leaflet@1.9.21", "", { "dependencies": { "@types/geojson": "*" } }, "sha512-TbAd9DaPGSnzp6QvtYngntMZgcRk+igFELwR2N99XZn7RXUdKgsXMR+28bUO0rPsWp8MIu/f47luLIQuSLYv/w=="], + + "@types/node": ["@types/node@22.20.1", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-EANqOCF9QFyra+4pfxUcX9STKJpCLjMbObVzljIJomAWSnuSIEAvyzEU53GaajbXJEgdh0iEcPL+DGvpUd4k1Q=="], + + "@types/prop-types": ["@types/prop-types@15.7.14", "", {}, "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ=="], + + "@types/react": ["@types/react@18.3.21", "", { "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" } }, "sha512-gXLBtmlcRJeT09/sI4PxVwyrku6SaNUj/6cMubjE6T6XdY1fDmBL7r0nX0jbSZPU/Xr0KuwLLZh6aOYY5d91Xw=="], + + "@types/stats.js": ["@types/stats.js@0.17.4", "", {}, "sha512-jIBvWWShCvlBqBNIZt0KAshWpvSjhkwkEu4ZUcASoAvhmrgAUI2t1dXrjSL4xXVLB4FznPrIsX3nKXFl/Dt4vA=="], + + "@types/three": ["@types/three@0.176.0", "", { "dependencies": { "@dimforge/rapier3d-compat": "^0.12.0", "@tweenjs/tween.js": "~23.1.3", "@types/stats.js": "*", "@types/webxr": "*", "@webgpu/types": "*", "fflate": "~0.8.2", "meshoptimizer": "~0.18.1" } }, "sha512-FwfPXxCqOtP7EdYMagCFePNKoG1AGBDUEVKtluv2BTVRpSt7b+X27xNsirPCTCqY1pGYsPUzaM3jgWP7dXSxlw=="], + + "@types/topojson": ["@types/topojson@3.2.6", "", { "dependencies": { "@types/geojson": "*", "@types/topojson-client": "*", "@types/topojson-server": "*", "@types/topojson-simplify": "*", "@types/topojson-specification": "*" } }, "sha512-ppfdlxjxofWJ66XdLgIlER/85RvpGyfOf8jrWf+3kVIjEatFxEZYD/Ea83jO672Xu1HRzd/ghwlbcZIUNHTskw=="], + + "@types/topojson-client": ["@types/topojson-client@3.1.5", "", { "dependencies": { "@types/geojson": "*", "@types/topojson-specification": "*" } }, "sha512-C79rySTyPxnQNNguTZNI1Ct4D7IXgvyAs3p9HPecnl6mNrJ5+UhvGNYcZfpROYV2lMHI48kJPxwR+F9C6c7nmw=="], + + "@types/topojson-server": ["@types/topojson-server@3.0.4", "", { "dependencies": { "@types/geojson": "*", "@types/topojson-specification": "*" } }, "sha512-5+ieK8ePfP+K2VH6Vgs1VCt+fO1U8XZHj0UsF+NktaF0DavAo1q3IvCBXgokk/xmtvoPltSUs6vxuR/zMdOE1g=="], + + "@types/topojson-simplify": ["@types/topojson-simplify@3.0.3", "", { "dependencies": { "@types/geojson": "*", "@types/topojson-specification": "*" } }, "sha512-sBO5UZ0O2dB0bNwo0vut2yLHhj3neUGi9uL7/ROdm8Gs6dtt4jcB9OGDKr+M2isZwQM2RuzVmifnMZpxj4IGNw=="], + + "@types/topojson-specification": ["@types/topojson-specification@1.0.5", "", { "dependencies": { "@types/geojson": "*" } }, "sha512-C7KvcQh+C2nr6Y2Ub4YfgvWvWCgP2nOQMtfhlnwsRL4pYmmwzBS7HclGiS87eQfDOU/DLQpX6GEscviaz4yLIQ=="], + + "@types/trusted-types": ["@types/trusted-types@2.0.7", "", {}, "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="], + + "@types/w3c-generic-sensor": ["@types/w3c-generic-sensor@1.0.10", "", { "dependencies": { "typescript": "^2.2.2" } }, "sha512-C56c4FhueauZcGyez3WHMzQ4LgRkJ6TNYimmYTWF0u1ncaipghmjfB+971/rU7UfrwajJg5OTcv+fp0VjjTzig=="], + + "@types/webxr": ["@types/webxr@0.5.22", "", {}, "sha512-Vr6Stjv5jPRqH690f5I5GLjVk8GSsoQSYJ2FVd/3jJF7KaqfwPi3ehfBS96mlQ2kPCwZaX6U0rG2+NGHBKkA/A=="], + + "@types/ws": ["@types/ws@8.18.1", "", { "dependencies": { "@types/node": "*" } }, "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg=="], + + "@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.64.0", "", { "dependencies": { "@eslint-community/regexpp": "^4.12.2", "@typescript-eslint/scope-manager": "8.64.0", "@typescript-eslint/type-utils": "8.64.0", "@typescript-eslint/utils": "8.64.0", "@typescript-eslint/visitor-keys": "8.64.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.64.0", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-CGvQPBxN3wZLu6Rz2kFUpZeoCm78xUic92ck39KPePkO1NPOwjCqdQnm5Q87tpWw9vcBvW8XLrDXjH9PWYtJ3Q=="], + + "@typescript-eslint/parser": ["@typescript-eslint/parser@8.64.0", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.64.0", "@typescript-eslint/types": "8.64.0", "@typescript-eslint/typescript-estree": "8.64.0", "@typescript-eslint/visitor-keys": "8.64.0", "debug": "^4.4.3" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-KA0OshtlcCCXmbfqyZkM5pV3/WNraJf7DkJRLpyrmwPtud57H5BDX7C3k0LPSPxpprfRL+cJDGabF10mvNCoCw=="], + + "@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.64.0", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.64.0", "@typescript-eslint/types": "^8.64.0", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-tk4WpOJ6IEbGrVHaNmM0YRrwAD3exZlIK3iadQNAxh4YKk6jvUQ4ecq18n+v7+meh+cJ3j+D8nbk8sRKhlwLQg=="], + + "@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.64.0", "", { "dependencies": { "@typescript-eslint/types": "8.64.0", "@typescript-eslint/visitor-keys": "8.64.0" } }, "sha512-CXEaFdYXjSTgKhisNkwCcJwTP8Pl+fmRrEQrri4nm3vU743bALrxzLmq7fHG/7e6a5xO0lDYeURpZmBuhHk54w=="], + + "@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.64.0", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-2yo8rRNKuzbVWQp5kslhANqZ2uDAeROQHBRZNPu8JDsHmeFNj/XJJhX/FhNUWmkHHvoNsKa6+tHJiig87EzsQw=="], + + "@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.64.0", "", { "dependencies": { "@typescript-eslint/types": "8.64.0", "@typescript-eslint/typescript-estree": "8.64.0", "@typescript-eslint/utils": "8.64.0", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-XWG4Fmmv/6SvyS9nH8jWrKs6terwJvE8cyRt1CzYYqzp9OrPhCT4cMc/f7C6RZCwG+qMmiffJS1/qJP8G1URtg=="], + + "@typescript-eslint/types": ["@typescript-eslint/types@8.64.0", "", {}, "sha512-qjhfuTfLXjA4IOzXvz0rTjT01BqEiIgPoUeMwiEjnaHKJMTNo8rH5pYW1a2L/0Dnux2fPC85AeyJoWaGa8WxTA=="], + + "@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.64.0", "", { "dependencies": { "@typescript-eslint/project-service": "8.64.0", "@typescript-eslint/tsconfig-utils": "8.64.0", "@typescript-eslint/types": "8.64.0", "@typescript-eslint/visitor-keys": "8.64.0", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-Pztpsn1aCE1oWDvDEfUk31nngvvF7vUB5SwHFEaZIFpvw7WJtqUHHL4plBZDA9HfWJJjL13BdG0YrJInTUvoVA=="], + + "@typescript-eslint/utils": ["@typescript-eslint/utils@8.64.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.64.0", "@typescript-eslint/types": "8.64.0", "@typescript-eslint/typescript-estree": "8.64.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-aJUGVB3+U0htrrCjoA8qukw8cm8fNCGAxK/tVoS70k8aeb7DETKeFozRiVFIwEeN9WJLsjaP3ph8I60tY2XZoQ=="], + + "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.64.0", "", { "dependencies": { "@typescript-eslint/types": "8.64.0", "eslint-visitor-keys": "^5.0.0" } }, "sha512-mrtuL8Nsn6gi2H4mo5KMTp823M+3Q19Ew/i+Zlikq20tIMm99C3Ez0dCmkWWnxut20esQvTg8aUSEhMcAOXhEw=="], + + "@vitejs/plugin-basic-ssl": ["@vitejs/plugin-basic-ssl@2.3.0", "", { "peerDependencies": { "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-bdyo8rB3NnQbikdMpHaML9Z1OZPBu6fFOBo+OtxsBlvMJtysWskmBcnbIDhUqgC8tcxNv/a+BcV5U+2nQMm1OQ=="], + + "@vitest/expect": ["@vitest/expect@3.2.7", "", { "dependencies": { "@types/chai": "^5.2.2", "@vitest/spy": "3.2.7", "@vitest/utils": "3.2.7", "chai": "^5.2.0", "tinyrainbow": "^2.0.0" } }, "sha512-E8eBXaKibuvH2pSZErOjdVb5vF4PbKYcrnluBTYxEk1l/VhhwZg1kZQsdtjq+CsF5CFydf2Rdkz7jDHKSisi3w=="], + + "@vitest/mocker": ["@vitest/mocker@3.2.7", "", { "dependencies": { "@vitest/spy": "3.2.7", "estree-walker": "^3.0.3", "magic-string": "^0.30.17" }, "peerDependencies": { "msw": "^2.4.9", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" }, "optionalPeers": ["msw", "vite"] }, "sha512-Trr0hYO9CM3Wj6ksWHRhK9IZpIY6wTMO5u/MqXurMxT57sWBaOPEtP3Oq60ihZuh5JsiagKfz95OcxdEP6dBrA=="], + + "@vitest/pretty-format": ["@vitest/pretty-format@3.2.7", "", { "dependencies": { "tinyrainbow": "^2.0.0" } }, "sha512-KUHlwqVu0sRlhCdyPdQ/wBoTfRahjUky1MubOmYw9fWfIZy1gNoHpuaaQBPAaMaVYdQYHJLurzj8ECCj5OwTqA=="], + + "@vitest/runner": ["@vitest/runner@3.2.7", "", { "dependencies": { "@vitest/utils": "3.2.7", "pathe": "^2.0.3", "strip-literal": "^3.0.0" } }, "sha512-sB9y4ovltoQP+WaUPwmSxO9WIg9Ig694Di5PalVPsYHklAdE027mehpWF2SQSVq+k6sFgaivbTjTJwZLSHbedA=="], + + "@vitest/snapshot": ["@vitest/snapshot@3.2.7", "", { "dependencies": { "@vitest/pretty-format": "3.2.7", "magic-string": "^0.30.17", "pathe": "^2.0.3" } }, "sha512-7C+MwShwtBSI5Buwoyg3s/iY1eHL9PKAf+O1wVh/TdnjXUtkoL/9YQtre90i4MtNXM6edP1wJ2zOBpfCyhIS7g=="], + + "@vitest/spy": ["@vitest/spy@3.2.7", "", { "dependencies": { "tinyspy": "^4.0.3" } }, "sha512-Q2eQGI6d2L/hBtZ0qNuKcAGid68XK6cv1xsoaIma6PaJhHPoqcEJhYpXZ/5myCMqkNgtP6UKuBhbc0nHKnrkuQ=="], + + "@vitest/utils": ["@vitest/utils@3.2.7", "", { "dependencies": { "@vitest/pretty-format": "3.2.7", "loupe": "^3.1.4", "tinyrainbow": "^2.0.0" } }, "sha512-x6BDOd7dyo3PFLY3I9/HJ25X/6OurhGXk2/B9gOZNPF7XDVjeBK4k01lQE5uvDpbuheErh91qYuE1E2OEjK3Rw=="], + + "@webgpu/types": ["@webgpu/types@0.1.60", "", {}, "sha512-8B/tdfRFKdrnejqmvq95ogp8tf52oZ51p3f4QD5m5Paey/qlX4Rhhy5Y8tgFMi7Ms70HzcMMw3EQjH/jdhTwlA=="], + + "@zip.js/zip.js": ["@zip.js/zip.js@2.8.31", "", {}, "sha512-2NLmow9ax/5IdBbJKxNQp3Ur9mNxmgLfN2Yp/FKNh1ZIGs3OYkiC3AIUfIZouTPSgeW5+F1bzTAZAyD2Y4ZfFA=="], + + "acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="], + + "acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], + + "ajv": ["ajv@8.20.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA=="], + + "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + + "anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="], + + "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + + "aria-query": ["aria-query@5.3.1", "", {}, "sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g=="], + + "assertion-error": ["assertion-error@2.0.1", "", {}, "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA=="], + + "at-least-node": ["at-least-node@1.0.0", "", {}, "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg=="], + + "autolinker": ["autolinker@4.1.5", "", { "dependencies": { "tslib": "^2.8.1" } }, "sha512-vEfYZPmvVOIuE567XBVCsx8SBgOYtjB2+S1iAaJ+HgH+DNjAcrHem2hmAeC9yaNGWayicv4yR+9UaJlkF3pvtw=="], + + "axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="], + + "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + + "bidi-js": ["bidi-js@1.0.3", "", { "dependencies": { "require-from-string": "^2.0.2" } }, "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw=="], + + "binary-extensions": ["binary-extensions@2.3.0", "", {}, "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="], + + "bitmap-sdf": ["bitmap-sdf@1.0.4", "", {}, "sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg=="], + + "brace-expansion": ["brace-expansion@2.1.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-w5JZcKgdhDOgOwm8H+KgbosopHMuGcl6qbulwjtz3SM7I7P3yW1eAjzMPLrIE+NQ9vjgANKHWeMHnrT0OXW1oA=="], + + "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], + + "cac": ["cac@6.7.14", "", {}, "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ=="], + + "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], + + "camera-controls": ["camera-controls@3.1.2", "", { "peerDependencies": { "three": ">=0.126.1" } }, "sha512-xkxfpG2ECZ6Ww5/9+kf4mfg1VEYAoe9aDSY+IwF0UEs7qEzwy0aVRfs2grImIECs/PoBtWFrh7RXsQkwG922JA=="], + + "carbon-components-svelte": ["carbon-components-svelte@0.89.11", "", { "dependencies": { "@ibm/telemetry-js": "^1.5.0", "flatpickr": "4.6.9" } }, "sha512-91R5/b0wqiN2d+ljadj9yA+mOQ+ZfRGIuN2j4cQUpXWNz+OYRD4qjRdZ4cxX/+PDEpuQ43WzToNpNFT8bjgBug=="], + + "carbon-icons-svelte": ["carbon-icons-svelte@12.26.0", "", {}, "sha512-UnYW6G5YTZj4EtzLP0IykFG41rWlzodtgOo1OsIP5VGrGN2L16h5MqRS9vhfseG4+ypkJ0OA2xqsstfQhdVyuQ=="], + + "carbon-preprocess-svelte": ["carbon-preprocess-svelte@0.11.37", "", {}, "sha512-koopn13dVfKwyOTX0xfhBnFADcgKo234VzT+8SHKz5hO4hIdt3GgzYWitOPi17CEgjfph9+Jm4zNpLTM3i9Zqw=="], + + "cesium": ["cesium@1.143.0", "", { "dependencies": { "@cesium/engine": "^26.1.0", "@cesium/widgets": "^16.1.0", "protobufjs": "^8.6.5" } }, "sha512-EHz61NBp/2UPYE4iWCZ+YK9Jcb0d2hzRfqkj4DRaUM3cJmA9hE2FTmcPPZ2iL7w+W0YUScI0gc9XeSTXlPIQtA=="], + + "chai": ["chai@5.2.0", "", { "dependencies": { "assertion-error": "^2.0.1", "check-error": "^2.1.1", "deep-eql": "^5.0.1", "loupe": "^3.1.0", "pathval": "^2.0.0" } }, "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw=="], + + "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + + "check-error": ["check-error@2.1.1", "", {}, "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw=="], + + "chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="], + + "clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="], + + "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], + + "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], + + "commander": ["commander@2.20.3", "", {}, "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="], + + "compute-gcd": ["compute-gcd@1.2.1", "", { "dependencies": { "validate.io-array": "^1.0.3", "validate.io-function": "^1.0.2", "validate.io-integer-array": "^1.0.0" } }, "sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg=="], + + "compute-lcm": ["compute-lcm@1.1.2", "", { "dependencies": { "compute-gcd": "^1.2.1", "validate.io-array": "^1.0.3", "validate.io-function": "^1.0.2", "validate.io-integer-array": "^1.0.0" } }, "sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ=="], + + "cookie": ["cookie@0.7.2", "", {}, "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w=="], + + "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], + + "cssesc": ["cssesc@3.0.0", "", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="], + + "csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="], + + "d3": ["d3@7.9.0", "", { "dependencies": { "d3-array": "3", "d3-axis": "3", "d3-brush": "3", "d3-chord": "3", "d3-color": "3", "d3-contour": "4", "d3-delaunay": "6", "d3-dispatch": "3", "d3-drag": "3", "d3-dsv": "3", "d3-ease": "3", "d3-fetch": "3", "d3-force": "3", "d3-format": "3", "d3-geo": "3", "d3-hierarchy": "3", "d3-interpolate": "3", "d3-path": "3", "d3-polygon": "3", "d3-quadtree": "3", "d3-random": "3", "d3-scale": "4", "d3-scale-chromatic": "3", "d3-selection": "3", "d3-shape": "3", "d3-time": "3", "d3-time-format": "4", "d3-timer": "3", "d3-transition": "3", "d3-zoom": "3" } }, "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA=="], + + "d3-array": ["d3-array@3.2.4", "", { "dependencies": { "internmap": "1 - 2" } }, "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg=="], + + "d3-axis": ["d3-axis@3.0.0", "", {}, "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw=="], + + "d3-brush": ["d3-brush@3.0.0", "", { "dependencies": { "d3-dispatch": "1 - 3", "d3-drag": "2 - 3", "d3-interpolate": "1 - 3", "d3-selection": "3", "d3-transition": "3" } }, "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ=="], + + "d3-chord": ["d3-chord@3.0.1", "", { "dependencies": { "d3-path": "1 - 3" } }, "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g=="], + + "d3-cloud": ["d3-cloud@1.2.7", "", { "dependencies": { "d3-dispatch": "^1.0.3" } }, "sha512-8TrgcgwRIpoZYQp7s3fGB7tATWfhckRb8KcVd1bOgqkNdkJRDGWfdSf4HkHHzZxSczwQJdSxvfPudwir5IAJ3w=="], + + "d3-color": ["d3-color@3.1.0", "", {}, "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA=="], + + "d3-contour": ["d3-contour@4.0.2", "", { "dependencies": { "d3-array": "^3.2.0" } }, "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA=="], + + "d3-delaunay": ["d3-delaunay@6.0.4", "", { "dependencies": { "delaunator": "5" } }, "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A=="], + + "d3-dispatch": ["d3-dispatch@3.0.1", "", {}, "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg=="], + + "d3-drag": ["d3-drag@3.0.0", "", { "dependencies": { "d3-dispatch": "1 - 3", "d3-selection": "3" } }, "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg=="], + + "d3-dsv": ["d3-dsv@3.0.1", "", { "dependencies": { "commander": "7", "iconv-lite": "0.6", "rw": "1" }, "bin": { "csv2json": "bin/dsv2json.js", "csv2tsv": "bin/dsv2dsv.js", "dsv2dsv": "bin/dsv2dsv.js", "dsv2json": "bin/dsv2json.js", "json2csv": "bin/json2dsv.js", "json2dsv": "bin/json2dsv.js", "json2tsv": "bin/json2dsv.js", "tsv2csv": "bin/dsv2dsv.js", "tsv2json": "bin/dsv2json.js" } }, "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q=="], + + "d3-ease": ["d3-ease@3.0.1", "", {}, "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w=="], + + "d3-fetch": ["d3-fetch@3.0.1", "", { "dependencies": { "d3-dsv": "1 - 3" } }, "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw=="], + + "d3-force": ["d3-force@3.0.0", "", { "dependencies": { "d3-dispatch": "1 - 3", "d3-quadtree": "1 - 3", "d3-timer": "1 - 3" } }, "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg=="], + + "d3-format": ["d3-format@3.1.0", "", {}, "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA=="], + + "d3-geo": ["d3-geo@3.1.1", "", { "dependencies": { "d3-array": "2.5.0 - 3" } }, "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q=="], + + "d3-hierarchy": ["d3-hierarchy@3.1.2", "", {}, "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA=="], + + "d3-interpolate": ["d3-interpolate@3.0.1", "", { "dependencies": { "d3-color": "1 - 3" } }, "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g=="], + + "d3-path": ["d3-path@3.1.0", "", {}, "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ=="], + + "d3-polygon": ["d3-polygon@3.0.1", "", {}, "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg=="], + + "d3-quadtree": ["d3-quadtree@3.0.1", "", {}, "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw=="], + + "d3-random": ["d3-random@3.0.1", "", {}, "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ=="], + + "d3-sankey": ["d3-sankey@0.12.3", "", { "dependencies": { "d3-array": "1 - 2", "d3-shape": "^1.2.0" } }, "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ=="], + + "d3-scale": ["d3-scale@4.0.2", "", { "dependencies": { "d3-array": "2.10.0 - 3", "d3-format": "1 - 3", "d3-interpolate": "1.2.0 - 3", "d3-time": "2.1.1 - 3", "d3-time-format": "2 - 4" } }, "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ=="], + + "d3-scale-chromatic": ["d3-scale-chromatic@3.1.0", "", { "dependencies": { "d3-color": "1 - 3", "d3-interpolate": "1 - 3" } }, "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ=="], + + "d3-selection": ["d3-selection@3.0.0", "", {}, "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ=="], + + "d3-shape": ["d3-shape@3.2.0", "", { "dependencies": { "d3-path": "^3.1.0" } }, "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA=="], + + "d3-time": ["d3-time@3.1.0", "", { "dependencies": { "d3-array": "2 - 3" } }, "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q=="], + + "d3-time-format": ["d3-time-format@4.1.0", "", { "dependencies": { "d3-time": "1 - 3" } }, "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg=="], + + "d3-timer": ["d3-timer@3.0.1", "", {}, "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA=="], + + "d3-transition": ["d3-transition@3.0.1", "", { "dependencies": { "d3-color": "1 - 3", "d3-dispatch": "1 - 3", "d3-ease": "1 - 3", "d3-interpolate": "1 - 3", "d3-timer": "1 - 3" }, "peerDependencies": { "d3-selection": "2 - 3" } }, "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w=="], + + "d3-zoom": ["d3-zoom@3.0.0", "", { "dependencies": { "d3-dispatch": "1 - 3", "d3-drag": "2 - 3", "d3-interpolate": "1 - 3", "d3-selection": "2 - 3", "d3-transition": "2 - 3" } }, "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw=="], + + "data-uri-to-buffer": ["data-uri-to-buffer@4.0.1", "", {}, "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A=="], + + "date-fns": ["date-fns@4.1.0", "", {}, "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg=="], + + "debug": ["debug@4.4.1", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ=="], + + "deep-eql": ["deep-eql@5.0.2", "", {}, "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q=="], + + "deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="], + + "deepmerge": ["deepmerge@4.3.1", "", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="], + + "delaunator": ["delaunator@5.0.1", "", { "dependencies": { "robust-predicates": "^3.0.2" } }, "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw=="], + + "depd": ["depd@2.0.0", "", {}, "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="], + + "destroy": ["destroy@1.2.0", "", {}, "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="], + + "detect-libc": ["detect-libc@2.0.4", "", {}, "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA=="], + + "devalue": ["devalue@5.8.1", "", {}, "sha512-4CXDYRBGqN+57wVJkuXBYmpAVUSg3L6JAQa/DFqm238G73E1wuyc/JhGQJzN7vUf/CMphYau2zXbfWzDR5aTEw=="], + + "diet-sprite": ["diet-sprite@0.0.1", "", {}, "sha512-zSHI2WDAn1wJqJYxcmjWfJv3Iw8oL9reQIbEyx2x2/EZ4/qmUTIo8/5qOCurnAcq61EwtJJaZ0XTy2NRYqpB5A=="], + + "dom-serializer": ["dom-serializer@2.0.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", "entities": "^4.2.0" } }, "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg=="], + + "domelementtype": ["domelementtype@2.3.0", "", {}, "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="], + + "domhandler": ["domhandler@5.0.3", "", { "dependencies": { "domelementtype": "^2.3.0" } }, "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w=="], + + "dompurify": ["dompurify@3.4.12", "", { "optionalDependencies": { "@types/trusted-types": "^2.0.7" } }, "sha512-zQvGet8Z2sWbQhCmfFz/T5QWH2oBmjnqK3qvOjaqaNLrLEF912WamU+ohnTp0TCep/MFVHpdJuCZEdFOdTnEFg=="], + + "domutils": ["domutils@3.2.2", "", { "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3" } }, "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw=="], + + "draco3d": ["draco3d@1.5.7", "", {}, "sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ=="], + + "earcut": ["earcut@2.2.4", "", {}, "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ=="], + + "ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="], + + "encodeurl": ["encodeurl@2.0.0", "", {}, "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="], + + "enhanced-resolve": ["enhanced-resolve@5.24.2", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.3" } }, "sha512-rpsZEGT1jFuve6QlpyRp9ckQ+kN61hvF9BzCPyMdaKTm8UJce96KBn3sorXOFXlzjPrs3Vc4T1NsSroZ3PxlFw=="], + + "entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], + + "es-module-lexer": ["es-module-lexer@1.7.0", "", {}, "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA=="], + + "esbuild": ["esbuild@0.25.4", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.4", "@esbuild/android-arm": "0.25.4", "@esbuild/android-arm64": "0.25.4", "@esbuild/android-x64": "0.25.4", "@esbuild/darwin-arm64": "0.25.4", "@esbuild/darwin-x64": "0.25.4", "@esbuild/freebsd-arm64": "0.25.4", "@esbuild/freebsd-x64": "0.25.4", "@esbuild/linux-arm": "0.25.4", "@esbuild/linux-arm64": "0.25.4", "@esbuild/linux-ia32": "0.25.4", "@esbuild/linux-loong64": "0.25.4", "@esbuild/linux-mips64el": "0.25.4", "@esbuild/linux-ppc64": "0.25.4", "@esbuild/linux-riscv64": "0.25.4", "@esbuild/linux-s390x": "0.25.4", "@esbuild/linux-x64": "0.25.4", "@esbuild/netbsd-arm64": "0.25.4", "@esbuild/netbsd-x64": "0.25.4", "@esbuild/openbsd-arm64": "0.25.4", "@esbuild/openbsd-x64": "0.25.4", "@esbuild/sunos-x64": "0.25.4", "@esbuild/win32-arm64": "0.25.4", "@esbuild/win32-ia32": "0.25.4", "@esbuild/win32-x64": "0.25.4" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q=="], + + "escape-html": ["escape-html@1.0.3", "", {}, "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="], + + "escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], + + "eslint": ["eslint@9.39.5", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.2", "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.6", "@eslint/js": "9.39.5", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "ajv": "^6.14.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.4.0", "eslint-visitor-keys": "^4.2.1", "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.5", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-DgZS62aPLXKlnxILS/AYCoRvHaZeXceIzlXPkkGGzJWSow1aEk0lbTlxUSlyjC8jcaKxAdOnTDz+o1JFSBsyjw=="], + + "eslint-config-prettier": ["eslint-config-prettier@10.1.8", "", { "peerDependencies": { "eslint": ">=7.0.0" }, "bin": { "eslint-config-prettier": "bin/cli.js" } }, "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w=="], + + "eslint-plugin-svelte": ["eslint-plugin-svelte@3.20.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.6.1", "@jridgewell/sourcemap-codec": "^1.5.0", "esutils": "^2.0.3", "globals": "^16.0.0", "known-css-properties": "^0.37.0", "postcss": "^8.4.49", "postcss-load-config": "^3.1.4", "postcss-safe-parser": "^7.0.0", "semver": "^7.6.3", "svelte-eslint-parser": "^1.7.0" }, "peerDependencies": { "eslint": "^8.57.1 || ^9.0.0 || ^10.0.0", "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" }, "optionalPeers": ["svelte"] }, "sha512-AElKLVt7Hjy4d7ljwhrhw9hux60DCxCNkmK8cY/aAXvjs8tpR7PvU4DlyI/SA1PaJww1gh0wPGo2pbyURuEwxQ=="], + + "eslint-scope": ["eslint-scope@8.4.0", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg=="], + + "eslint-visitor-keys": ["eslint-visitor-keys@4.2.1", "", {}, "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ=="], + + "esm-env": ["esm-env@1.2.2", "", {}, "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA=="], + + "espree": ["espree@10.4.0", "", { "dependencies": { "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^4.2.1" } }, "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ=="], + + "esquery": ["esquery@1.6.0", "", { "dependencies": { "estraverse": "^5.1.0" } }, "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg=="], + + "esrap": ["esrap@2.2.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" }, "peerDependencies": { "@typescript-eslint/types": "^8.2.0" }, "optionalPeers": ["@typescript-eslint/types"] }, "sha512-m8jH5hZgJE2RRUK/jjkGPcJEDAV+dYnZYFkosQaPTcE+Yw4xynXHOo6FUdwaWBtdR3b1MMa7wEDTSHeR2VWsGA=="], + + "esrecurse": ["esrecurse@4.3.0", "", { "dependencies": { "estraverse": "^5.2.0" } }, "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="], + + "estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="], + + "estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], + + "esutils": ["esutils@2.0.3", "", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="], + + "etag": ["etag@1.8.1", "", {}, "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="], + + "exenv-es6": ["exenv-es6@1.1.1", "", {}, "sha512-vlVu3N8d6yEMpMsEm+7sUBAI81aqYYuEvfK0jNqmdb/OPXzzH7QWDDnVjMvDSY47JdHEqx/dfC/q8WkfoTmpGQ=="], + + "expect-type": ["expect-type@1.2.1", "", {}, "sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw=="], + + "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], + + "fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="], + + "fast-levenshtein": ["fast-levenshtein@2.0.6", "", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="], + + "fast-uri": ["fast-uri@3.0.6", "", {}, "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw=="], + + "fastq": ["fastq@1.19.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ=="], + + "fdir": ["fdir@6.4.4", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg=="], + + "fetch-blob": ["fetch-blob@3.2.0", "", { "dependencies": { "node-domexception": "^1.0.0", "web-streams-polyfill": "^3.0.3" } }, "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ=="], + + "fflate": ["fflate@0.8.2", "", {}, "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A=="], + + "file-entry-cache": ["file-entry-cache@8.0.0", "", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="], + + "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], + + "find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], + + "flat-cache": ["flat-cache@4.0.1", "", { "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" } }, "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw=="], + + "flatpickr": ["flatpickr@4.6.9", "", {}, "sha512-F0azNNi8foVWKSF+8X+ZJzz8r9sE1G4hl06RyceIaLvyltKvDl6vqk9Lm/6AUUCi5HWaIjiUbk7UpeE/fOXOpw=="], + + "flatted": ["flatted@3.4.2", "", {}, "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA=="], + + "formdata-polyfill": ["formdata-polyfill@4.0.10", "", { "dependencies": { "fetch-blob": "^3.1.2" } }, "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g=="], + + "free-style": ["free-style@3.1.0", "", {}, "sha512-vJujYSIyT30iDoaoeigNAxX4yB1RUrh+N2ZMhIElMr3BvCuGXOw7XNJMEEJkDUeamK2Rnb/IKFGKRKlTWIGRWA=="], + + "fresh": ["fresh@0.5.2", "", {}, "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="], + + "fs-extra": ["fs-extra@9.1.0", "", { "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ=="], + + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + + "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], + + "globals": ["globals@16.3.0", "", {}, "sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ=="], + + "globalyzer": ["globalyzer@0.1.0", "", {}, "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q=="], + + "globrex": ["globrex@0.1.2", "", {}, "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg=="], + + "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], + + "grapheme-splitter": ["grapheme-splitter@1.0.4", "", {}, "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ=="], + + "gsap": ["gsap@3.15.0", "", {}, "sha512-dMW4CWBTUK1AEEDeZc1g4xpPGIrSf9fJF960qbTZmN/QwZIWY5wgliS6JWl9/25fpTGJrMRtSjGtOmPnfjZB+A=="], + + "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], + + "html-to-image": ["html-to-image@1.11.11", "", {}, "sha512-9gux8QhvjRO/erSnDPv28noDZcPZmYE7e1vFsBLKLlRlKDSqNJYebj6Qz1TGd5lsRV+X+xYyjCKjuZdABinWjA=="], + + "htmlparser2": ["htmlparser2@8.0.2", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.0.1", "entities": "^4.4.0" } }, "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA=="], + + "http-errors": ["http-errors@2.0.0", "", { "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", "statuses": "2.0.1", "toidentifier": "1.0.1" } }, "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ=="], + + "iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="], + + "ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], + + "import-fresh": ["import-fresh@3.3.1", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="], + + "imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], + + "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], + + "internmap": ["internmap@2.0.3", "", {}, "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg=="], + + "is-binary-path": ["is-binary-path@2.1.0", "", { "dependencies": { "binary-extensions": "^2.0.0" } }, "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="], + + "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], + + "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], + + "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], + + "is-plain-object": ["is-plain-object@5.0.0", "", {}, "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q=="], + + "is-reference": ["is-reference@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.6" } }, "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw=="], + + "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], + + "isomorphic.js": ["isomorphic.js@0.2.5", "", {}, "sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw=="], + + "jiti": ["jiti@2.7.0", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ=="], + + "js-base64": ["js-base64@3.7.7", "", {}, "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw=="], + + "js-tokens": ["js-tokens@9.0.1", "", {}, "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ=="], + + "js-yaml": ["js-yaml@4.3.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q=="], + + "jsep": ["jsep@1.4.0", "", {}, "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw=="], + + "json-buffer": ["json-buffer@3.0.1", "", {}, "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="], + + "json-schema-compare": ["json-schema-compare@0.2.2", "", { "dependencies": { "lodash": "^4.17.4" } }, "sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ=="], + + "json-schema-merge-allof": ["json-schema-merge-allof@0.8.1", "", { "dependencies": { "compute-lcm": "^1.1.2", "json-schema-compare": "^0.2.2", "lodash": "^4.17.20" } }, "sha512-CTUKmIlPJbsWfzRRnOXz+0MjIqvnleIXwFTzz+t9T86HnYX/Rozria6ZVGLktAU9e+NygNljveP+yxqtQp/Q4w=="], + + "json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], + + "json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="], + + "json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], + + "jsonfile": ["jsonfile@6.1.0", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ=="], + + "jsonpointer": ["jsonpointer@5.0.1", "", {}, "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ=="], + + "kdbush": ["kdbush@4.0.2", "", {}, "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA=="], + + "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], + + "kleur": ["kleur@4.1.5", "", {}, "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="], + + "known-css-properties": ["known-css-properties@0.37.0", "", {}, "sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ=="], + + "ktx-parse": ["ktx-parse@1.0.0", "", {}, "sha512-Z31kVizz4DF/6vo9YiSYVBhuXAfyQy9bGxlW3+mB5OELoZjfXVZQpRoctsx8IEDKxBd6SagXKo7qRvu38i8Jfg=="], + + "leaflet": ["leaflet@1.9.4", "", {}, "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA=="], + + "lerc": ["lerc@2.0.0", "", {}, "sha512-7qo1Mq8ZNmaR4USHHm615nEW2lPeeWJ3bTyoqFbd35DLx0LUH7C6ptt5FDCTAlbIzs3+WKrk5SkJvw8AFDE2hg=="], + + "levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], + + "lib0": ["lib0@0.2.107", "", { "dependencies": { "isomorphic.js": "^0.2.4" }, "bin": { "0gentesthtml": "bin/gentesthtml.js", "0serve": "bin/0serve.js", "0ecdsa-generate-keypair": "bin/0ecdsa-generate-keypair.js" } }, "sha512-2xih/AugT0dJSgeSfsW/bqIPILlsqzEtmw8hXzWEnMLrOz12DTK5z9rjNgUT21/HkBjHSznOQBr67bcZdc8Ltg=="], + + "libsql": ["libsql@0.5.29", "", { "dependencies": { "@neon-rs/load": "^0.0.4", "detect-libc": "2.0.2" }, "optionalDependencies": { "@libsql/darwin-arm64": "0.5.29", "@libsql/darwin-x64": "0.5.29", "@libsql/linux-arm-gnueabihf": "0.5.29", "@libsql/linux-arm-musleabihf": "0.5.29", "@libsql/linux-arm64-gnu": "0.5.29", "@libsql/linux-arm64-musl": "0.5.29", "@libsql/linux-x64-gnu": "0.5.29", "@libsql/linux-x64-musl": "0.5.29", "@libsql/win32-x64-msvc": "0.5.29" }, "os": [ "linux", "win32", "darwin", ], "cpu": [ "arm", "x64", "arm64", ] }, "sha512-8lMP8iMgiBzzoNbAPQ59qdVcj6UaE/Vnm+fiwX4doX4Narook0a4GPKWBEv+CR8a1OwbfkgL18uBfBjWdF0Fzg=="], + + "lightningcss": ["lightningcss@1.32.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.32.0", "lightningcss-darwin-arm64": "1.32.0", "lightningcss-darwin-x64": "1.32.0", "lightningcss-freebsd-x64": "1.32.0", "lightningcss-linux-arm-gnueabihf": "1.32.0", "lightningcss-linux-arm64-gnu": "1.32.0", "lightningcss-linux-arm64-musl": "1.32.0", "lightningcss-linux-x64-gnu": "1.32.0", "lightningcss-linux-x64-musl": "1.32.0", "lightningcss-win32-arm64-msvc": "1.32.0", "lightningcss-win32-x64-msvc": "1.32.0" } }, "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ=="], + + "lightningcss-android-arm64": ["lightningcss-android-arm64@1.32.0", "", { "os": "android", "cpu": "arm64" }, "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg=="], + + "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.32.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ=="], + + "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.32.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w=="], + + "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.32.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig=="], + + "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.32.0", "", { "os": "linux", "cpu": "arm" }, "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw=="], + + "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ=="], + + "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg=="], + + "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA=="], + + "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg=="], + + "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.32.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw=="], + + "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.32.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q=="], + + "lilconfig": ["lilconfig@2.1.0", "", {}, "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ=="], + + "locate-character": ["locate-character@3.0.0", "", {}, "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA=="], + + "locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], + + "lodash": ["lodash@4.17.21", "", {}, "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="], + + "lodash-es": ["lodash-es@4.18.1", "", {}, "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A=="], + + "lodash.escape": ["lodash.escape@4.0.1", "", {}, "sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw=="], + + "lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="], + + "long": ["long@5.3.2", "", {}, "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA=="], + + "loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="], + + "loupe": ["loupe@3.2.0", "", {}, "sha512-2NCfZcT5VGVNX9mSZIxLRkEAegDGBpuQZBy13desuHeVORmBDyAET4TkJr4SjqQy3A8JDofMN6LpkK8Xcm/dlw=="], + + "maath": ["maath@0.10.8", "", { "peerDependencies": { "@types/three": ">=0.134.0", "three": ">=0.134.0" } }, "sha512-tRvbDF0Pgqz+9XUa4jjfgAQ8/aPKmQdWXilFu2tMy4GWj4NOsx99HlULO4IeREfbO3a0sA145DZYyvXPkybm0g=="], + + "magic-string": ["magic-string@0.30.17", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA=="], + + "markdown-to-jsx": ["markdown-to-jsx@7.7.6", "", { "peerDependencies": { "react": ">= 0.14.0" } }, "sha512-/PWFFoKKMidk4Ut06F5hs5sluq1aJ0CGvUJWsnCK6hx/LPM8vlhvKAxtGHJ+U+V2Il2wmnfO6r81ICD3xZRVaw=="], + + "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="], + + "mersenne-twister": ["mersenne-twister@1.1.0", "", {}, "sha512-mUYWsMKNrm4lfygPkL3OfGzOPTR2DBlTkBNHM//F6hGp8cLThY897crAlk3/Jo17LEOOjQUrNAx6DvgO77QJkA=="], + + "meshoptimizer": ["meshoptimizer@0.18.1", "", {}, "sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw=="], + + "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], + + "mime": ["mime@1.6.0", "", { "bin": { "mime": "cli.js" } }, "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="], + + "minimatch": ["minimatch@9.0.9", "", { "dependencies": { "brace-expansion": "^2.0.2" } }, "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg=="], + + "minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="], + + "mri": ["mri@1.2.0", "", {}, "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA=="], + + "mrmime": ["mrmime@2.0.1", "", {}, "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ=="], + + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "nanoid": ["nanoid@3.3.16", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q=="], + + "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], + + "node-domexception": ["node-domexception@1.0.0", "", {}, "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ=="], + + "node-fetch": ["node-fetch@3.3.2", "", { "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", "formdata-polyfill": "^4.0.10" } }, "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA=="], + + "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], + + "nosleep.js": ["nosleep.js@0.12.0", "", {}, "sha512-9d1HbpKLh3sdWlhXMhU6MMH+wQzKkrgfRkYV0EBdvt99YJfj0ilCJrWRDYG2130Tm4GXbEoTCx5b34JSaP+HhA=="], + + "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], + + "on-finished": ["on-finished@2.4.1", "", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="], + + "optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="], + + "p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], + + "p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], + + "p-map": ["p-map@7.0.3", "", {}, "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA=="], + + "pako": ["pako@3.0.1", "", {}, "sha512-GupotUUI0mlhugKjUs4bjOwLt3nrehy9Ys2dxC0GtgVef5cnKggkDMmf2bq2poCCuVXopWPmqsc9VDT2iJUy+w=="], + + "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], + + "parse-srcset": ["parse-srcset@1.0.2", "", {}, "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q=="], + + "parseurl": ["parseurl@1.3.3", "", {}, "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="], + + "path-browserify": ["path-browserify@1.0.1", "", {}, "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g=="], + + "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], + + "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], + + "pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], + + "pathval": ["pathval@2.0.0", "", {}, "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA=="], + + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + + "picomatch": ["picomatch@2.3.2", "", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="], + + "postcss": ["postcss@8.5.19", "", { "dependencies": { "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-Mz8SaolMd8nB+G13WkORcxQKHZ/NE4xXevtkJHVuG+guo9/wYKlIMTKAqGdEmYOXR2ijPjTYNHssizdaVSUNdQ=="], + + "postcss-load-config": ["postcss-load-config@3.1.4", "", { "dependencies": { "lilconfig": "^2.0.5", "yaml": "^1.10.2" }, "peerDependencies": { "postcss": ">=8.0.9", "ts-node": ">=9.0.0" }, "optionalPeers": ["postcss", "ts-node"] }, "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg=="], + + "postcss-safe-parser": ["postcss-safe-parser@7.0.1", "", { "peerDependencies": { "postcss": "^8.4.31" } }, "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A=="], + + "postcss-scss": ["postcss-scss@4.0.9", "", { "peerDependencies": { "postcss": "^8.4.29" } }, "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A=="], + + "postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="], + + "prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="], + + "prettier": ["prettier@3.9.5", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-/FVl766LpUfB5vXgCYOYa0MeV/441Ia99AeICQIQFTY/Nw0roZwULcXpku5i1/m5kt/baz+s4Zogspd839HSMg=="], + + "prettier-plugin-svelte": ["prettier-plugin-svelte@3.5.2", "", { "peerDependencies": { "prettier": "^3.0.0", "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" } }, "sha512-ItFouLvzSFE3ulNl4DKoWM3BGcbDCNVpIyy/Y3F2gC3aNiGLxtFUdffVqO5Z5hhYG+DFT5KULWaxmeFFpdbvaQ=="], + + "promise-limit": ["promise-limit@2.7.0", "", {}, "sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw=="], + + "prop-types": ["prop-types@15.8.1", "", { "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="], + + "protobufjs": ["protobufjs@7.6.5", "", { "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", "@protobufjs/codegen": "^2.0.5", "@protobufjs/eventemitter": "^1.1.1", "@protobufjs/fetch": "^1.1.1", "@protobufjs/float": "^1.0.2", "@protobufjs/path": "^1.1.2", "@protobufjs/pool": "^1.1.0", "@protobufjs/utf8": "^1.1.1", "@types/node": ">=13.7.0", "long": "^5.3.2" } }, "sha512-/FPD0nUc9jH6rfFjji9IBqOz4pcSE3CsT1m7Ep6Mdb0LxSUMj8hgl6GomOvZzpNpAqqGaXA0P3VSrZLFzIhQrw=="], + + "querystringify": ["querystringify@2.2.0", "", {}, "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="], + + "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], + + "quickselect": ["quickselect@3.0.0", "", {}, "sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g=="], + + "range-parser": ["range-parser@1.2.1", "", {}, "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="], + + "rbush": ["rbush@4.0.1", "", { "dependencies": { "quickselect": "^3.0.0" } }, "sha512-IP0UpfeWQujYC8Jg162rMNc01Rf0gWMMAb2Uxus/Q0qOFw4lCcq6ZnQEZwUoJqWyUGJ9th7JjwI4yIWo+uvoAQ=="], + + "react": ["react@18.3.1", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ=="], + + "react-dom": ["react-dom@18.3.1", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" }, "peerDependencies": { "react": "^18.3.1" } }, "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw=="], + + "react-is": ["react-is@18.3.1", "", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], + + "readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="], + + "require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="], + + "requires-port": ["requires-port@1.0.0", "", {}, "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="], + + "resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], + + "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="], + + "robust-predicates": ["robust-predicates@3.0.2", "", {}, "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg=="], + + "rollup": ["rollup@4.62.2", "", { "dependencies": { "@types/estree": "1.0.9" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.62.2", "@rollup/rollup-android-arm64": "4.62.2", "@rollup/rollup-darwin-arm64": "4.62.2", "@rollup/rollup-darwin-x64": "4.62.2", "@rollup/rollup-freebsd-arm64": "4.62.2", "@rollup/rollup-freebsd-x64": "4.62.2", "@rollup/rollup-linux-arm-gnueabihf": "4.62.2", "@rollup/rollup-linux-arm-musleabihf": "4.62.2", "@rollup/rollup-linux-arm64-gnu": "4.62.2", "@rollup/rollup-linux-arm64-musl": "4.62.2", "@rollup/rollup-linux-loong64-gnu": "4.62.2", "@rollup/rollup-linux-loong64-musl": "4.62.2", "@rollup/rollup-linux-ppc64-gnu": "4.62.2", "@rollup/rollup-linux-ppc64-musl": "4.62.2", "@rollup/rollup-linux-riscv64-gnu": "4.62.2", "@rollup/rollup-linux-riscv64-musl": "4.62.2", "@rollup/rollup-linux-s390x-gnu": "4.62.2", "@rollup/rollup-linux-x64-gnu": "4.62.2", "@rollup/rollup-linux-x64-musl": "4.62.2", "@rollup/rollup-openbsd-x64": "4.62.2", "@rollup/rollup-openharmony-arm64": "4.62.2", "@rollup/rollup-win32-arm64-msvc": "4.62.2", "@rollup/rollup-win32-ia32-msvc": "4.62.2", "@rollup/rollup-win32-x64-gnu": "4.62.2", "@rollup/rollup-win32-x64-msvc": "4.62.2", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA=="], + + "rollup-plugin-external-globals": ["rollup-plugin-external-globals@0.6.1", "", { "dependencies": { "@rollup/pluginutils": "^4.0.0", "estree-walker": "^2.0.1", "is-reference": "^1.2.1", "magic-string": "^0.25.7" }, "peerDependencies": { "rollup": "^2.25.0" } }, "sha512-mlp3KNa5sE4Sp9UUR2rjBrxjG79OyZAh/QC18RHIjM+iYkbBwNXSo8DHRMZWtzJTrH8GxQ+SJvCTN3i14uMXIA=="], + + "run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="], + + "rw": ["rw@1.3.3", "", {}, "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ=="], + + "sade": ["sade@1.8.1", "", { "dependencies": { "mri": "^1.1.0" } }, "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A=="], + + "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], + + "sanitize-html": ["sanitize-html@2.12.1", "", { "dependencies": { "deepmerge": "^4.2.2", "escape-string-regexp": "^4.0.0", "htmlparser2": "^8.0.0", "is-plain-object": "^5.0.0", "parse-srcset": "^1.0.2", "postcss": "^8.3.11" } }, "sha512-Plh+JAn0UVDpBRP/xEjsk+xDCoOvMBwQUf/K+/cBAVuTbtX8bj2VB7S1sL1dssVpykqp0/KPSesHrqXtokVBpA=="], + + "scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], + + "semver": ["semver@7.7.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA=="], + + "send": ["send@0.19.0", "", { "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", "on-finished": "2.4.1", "range-parser": "~1.2.1", "statuses": "2.0.1" } }, "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw=="], + + "serve-static": ["serve-static@1.16.2", "", { "dependencies": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", "send": "0.19.0" } }, "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw=="], + + "set-cookie-parser": ["set-cookie-parser@3.1.2", "", {}, "sha512-5/r/lTwbJ3zQ+qwdUFZYeRNqda7P5HD8zQKqlSjdGt1/S0cjLAphHusj4Y58ahDtWn/g32xrIS58/ikOvwl0Lw=="], + + "setprototypeof": ["setprototypeof@1.2.0", "", {}, "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="], + + "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], + + "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], + + "siginfo": ["siginfo@2.0.0", "", {}, "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g=="], + + "sirv": ["sirv@3.0.1", "", { "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", "totalist": "^3.0.0" } }, "sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A=="], + + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], + + "sourcemap-codec": ["sourcemap-codec@1.4.8", "", {}, "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="], + + "stackback": ["stackback@0.0.2", "", {}, "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw=="], + + "statuses": ["statuses@2.0.1", "", {}, "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="], + + "std-env": ["std-env@3.9.0", "", {}, "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw=="], + + "strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], + + "strip-literal": ["strip-literal@3.0.0", "", { "dependencies": { "js-tokens": "^9.0.1" } }, "sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA=="], + + "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], + + "svelte": ["svelte@5.56.5", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "@jridgewell/sourcemap-codec": "^1.5.0", "@sveltejs/acorn-typescript": "^1.0.10", "@types/estree": "^1.0.5", "@types/trusted-types": "^2.0.7", "acorn": "^8.12.1", "aria-query": "5.3.1", "axobject-query": "^4.1.0", "clsx": "^2.1.1", "devalue": "^5.8.1", "esm-env": "^1.2.1", "esrap": "^2.2.12", "is-reference": "^3.0.3", "locate-character": "^3.0.0", "magic-string": "^0.30.11", "zimmerframe": "^1.1.2" } }, "sha512-P03YJmUy2JoOxYHb4Ka3oFat1hq2ko2it1MOItSjsJ4B6WgZPLc3+RyyU+57OGWhs3Ieq74EJpZtSnNXdAGgDw=="], + + "svelte-adapter-bun": ["svelte-adapter-bun@0.5.2", "", { "dependencies": { "tiny-glob": "^0.2.9" } }, "sha512-xEtFgaal6UgrCwwkSIcapO9kopoFNUYCYqyKCikdqxX9bz2TDYnrWQZ7qBnkunMxi1HOIERUCvTcebYGiarZLA=="], + + "svelte-check": ["svelte-check@4.7.3", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "@sveltejs/load-config": "^0.2.0", "chokidar": "^4.0.1", "fdir": "^6.2.0", "picocolors": "^1.0.0", "sade": "^1.7.4" }, "peerDependencies": { "svelte": "^4.0.0 || ^5.0.0-next.0", "typescript": ">=5.0.0" }, "bin": { "svelte-check": "bin/svelte-check" } }, "sha512-DHdTCGX62R0fCxBEaT+USdASAnoaRBaaNczkRJl0K7o3WyoCeVUbVxo6fKqpOll/B+WMWCsiFK0eFrJSNBKZIg=="], + + "svelte-eslint-parser": ["svelte-eslint-parser@1.8.0", "", { "dependencies": { "eslint-scope": "^8.2.0", "eslint-visitor-keys": "^4.0.0", "espree": "^10.0.0", "postcss": "^8.4.49", "postcss-scss": "^4.0.9", "postcss-selector-parser": "^7.0.0", "semver": "^7.7.2" }, "peerDependencies": { "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" }, "optionalPeers": ["svelte"] }, "sha512-mikR1qwIVy3t5WthUoAXkMwxkXvabZP9FJgdx35Ei7EbGWmctva1Pih16Koeor/bdNNq8NXHlwKGS6NkYTawLg=="], + + "svelte-preprocess": ["svelte-preprocess@6.0.5", "", { "peerDependencies": { "@babel/core": "^7.10.2", "coffeescript": "^2.5.1", "less": "^3.11.3 || ^4.0.0", "postcss": "^7 || ^8", "postcss-load-config": ">=3", "pug": "^3.0.0", "sass": "^1.26.8", "stylus": ">=0.55", "sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0", "svelte": "^4.0.0 || ^5.0.0-next.100 || ^5.0.0", "typescript": "^5.0.0 || ^6.0.0" }, "optionalPeers": ["@babel/core", "coffeescript", "less", "postcss", "postcss-load-config", "pug", "sass", "stylus", "sugarss", "typescript"] }, "sha512-sgwew5yV/2eMeQobIWgAxCNarKwiTUDIc3siAUbq3sp0G6ONtzk0W+wJihMdqjbYb3iGU3ubpGv0usnnuXT3qg=="], + + "tabbable": ["tabbable@5.3.3", "", {}, "sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA=="], + + "tailwindcss": ["tailwindcss@4.3.3", "", {}, "sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ=="], + + "tapable": ["tapable@2.3.3", "", {}, "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A=="], + + "three": ["three@0.176.0", "", {}, "sha512-PWRKYWQo23ojf9oZSlRGH8K09q7nRSWx6LY/HF/UUrMdYgN9i1e2OwJYHoQjwc6HF/4lvvYLC5YC1X8UJL2ZpA=="], + + "three-instanced-uniforms-mesh": ["three-instanced-uniforms-mesh@0.52.4", "", { "dependencies": { "troika-three-utils": "^0.52.4" }, "peerDependencies": { "three": ">=0.125.0" } }, "sha512-YwDBy05hfKZQtU+Rp0KyDf9yH4GxfhxMbVt9OYruxdgLfPwmDG5oAbGoW0DrKtKZSM3BfFcCiejiOHCjFBTeng=="], + + "three-mesh-bvh": ["three-mesh-bvh@0.9.11", "", { "peerDependencies": { "three": ">= 0.159.0" } }, "sha512-PtGT02vWRQiP6szrcorR1GEClhHSr/+O45pyH/cQ8sY+UOlicecuUVjAHmIsbIri3ZO/8WTWBq3h7227F/TVBw=="], + + "three-perf": ["three-perf@1.0.11", "", { "dependencies": { "troika-three-text": "^0.52.0", "tweakpane": "^3.1.10" }, "peerDependencies": { "three": ">=0.170" } }, "sha512-OgBpZjwL+csQKGKZjpkH/QHdbGFMxqngMbSEJeSnVNfXDYd6On7WHNv/GhUZH4YxIpNMwMahBWrNnsJvnbSJHQ=="], + + "three-viewport-gizmo": ["three-viewport-gizmo@2.2.0", "", { "peerDependencies": { "three": ">=0.162.0 <1.0.0" } }, "sha512-Jo9Liur1rUmdKk75FZumLU/+hbF+RtJHi1qsKZpntjKlCYScK6tjbYoqvJ9M+IJphrlQJF5oReFW7Sambh0N4Q=="], + + "tiny-glob": ["tiny-glob@0.2.9", "", { "dependencies": { "globalyzer": "0.1.0", "globrex": "^0.1.2" } }, "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg=="], + + "tinybench": ["tinybench@2.9.0", "", {}, "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg=="], + + "tinyexec": ["tinyexec@0.3.2", "", {}, "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA=="], + + "tinyglobby": ["tinyglobby@0.2.14", "", { "dependencies": { "fdir": "^6.4.4", "picomatch": "^4.0.2" } }, "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ=="], + + "tinypool": ["tinypool@1.1.1", "", {}, "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg=="], + + "tinyrainbow": ["tinyrainbow@2.0.0", "", {}, "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw=="], + + "tinyspy": ["tinyspy@4.0.3", "", {}, "sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A=="], + + "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], + + "toidentifier": ["toidentifier@1.0.1", "", {}, "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="], + + "topojson-client": ["topojson-client@3.1.0", "", { "dependencies": { "commander": "2" }, "bin": { "topo2geo": "bin/topo2geo", "topomerge": "bin/topomerge", "topoquantize": "bin/topoquantize" } }, "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw=="], + + "totalist": ["totalist@3.0.1", "", {}, "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ=="], + + "troika-three-text": ["troika-three-text@0.52.4", "", { "dependencies": { "bidi-js": "^1.0.2", "troika-three-utils": "^0.52.4", "troika-worker-utils": "^0.52.0", "webgl-sdf-generator": "1.1.1" }, "peerDependencies": { "three": ">=0.125.0" } }, "sha512-V50EwcYGruV5rUZ9F4aNsrytGdKcXKALjEtQXIOBfhVoZU9VAqZNIoGQ3TMiooVqFAbR1w15T+f+8gkzoFzawg=="], + + "troika-three-utils": ["troika-three-utils@0.52.4", "", { "peerDependencies": { "three": ">=0.125.0" } }, "sha512-NORAStSVa/BDiG52Mfudk4j1FG4jC4ILutB3foPnfGbOeIs9+G5vZLa0pnmnaftZUGm4UwSoqEpWdqvC7zms3A=="], + + "troika-worker-utils": ["troika-worker-utils@0.52.0", "", {}, "sha512-W1CpvTHykaPH5brv5VHLfQo9D1OYuo0cSBEUQFFT/nBUzM8iD6Lq2/tgG/f1OelbAS1WtaTPQzE5uM49egnngw=="], + + "ts-api-utils": ["ts-api-utils@2.5.0", "", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA=="], + + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "tweakpane": ["tweakpane@3.1.10", "", {}, "sha512-rqwnl/pUa7+inhI2E9ayGTqqP0EPOOn/wVvSWjZsRbZUItzNShny7pzwL3hVlaN4m9t/aZhsP0aFQ9U5VVR2VQ=="], + + "type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], + + "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + + "typestyle": ["typestyle@2.4.0", "", { "dependencies": { "csstype": "3.0.10", "free-style": "3.1.0" } }, "sha512-/d1BL6Qi+YlMLEydnUEB8KL/CAjAN8cyt3/UyGnOyBrWf7bLGcR/6yhmsaUstO2IcYwZfagjE7AIzuI2vUW9mg=="], + + "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], + + "universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="], + + "urijs": ["urijs@1.19.11", "", {}, "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ=="], + + "url-parse": ["url-parse@1.5.10", "", { "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" } }, "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ=="], + + "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], + + "validate.io-array": ["validate.io-array@1.0.6", "", {}, "sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg=="], + + "validate.io-function": ["validate.io-function@1.0.2", "", {}, "sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ=="], + + "validate.io-integer": ["validate.io-integer@1.0.5", "", { "dependencies": { "validate.io-number": "^1.0.3" } }, "sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ=="], + + "validate.io-integer-array": ["validate.io-integer-array@1.0.0", "", { "dependencies": { "validate.io-array": "^1.0.3", "validate.io-integer": "^1.0.4" } }, "sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA=="], + + "validate.io-number": ["validate.io-number@1.0.3", "", {}, "sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg=="], + + "vite": ["vite@6.4.3", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", "picomatch": "^4.0.2", "postcss": "^8.5.3", "rollup": "^4.34.9", "tinyglobby": "^0.2.13" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-NTKlcQjlAK7MlQoyb6LgaqHc8sso/pVyUJYWMws3jg21uTJw/LddqIFPcPqP6PzpgbIcZyKI85sFE4HBrQDA8A=="], + + "vite-node": ["vite-node@3.2.4", "", { "dependencies": { "cac": "^6.7.14", "debug": "^4.4.1", "es-module-lexer": "^1.7.0", "pathe": "^2.0.3", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" }, "bin": { "vite-node": "vite-node.mjs" } }, "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg=="], + + "vite-plugin-cesium": ["vite-plugin-cesium@1.2.23", "", { "dependencies": { "fs-extra": "^9.1.0", "rollup-plugin-external-globals": "^0.6.1", "serve-static": "^1.14.1" }, "peerDependencies": { "cesium": "^1.95.0", "vite": ">=2.7.1" } }, "sha512-x9A8ZCEoegceXg/E+LnxKr0XBsI9CR4cgYWQ2Dd3cUEYwKcTnHQ3kBfpol7BUcGtgQnQos/mtVrRmuVQBXFjHw=="], + + "vite-plugin-mkcert": ["vite-plugin-mkcert@1.17.12", "", { "dependencies": { "debug": "^4.4.3", "picocolors": "^1.1.1" }, "peerDependencies": { "vite": ">=3" } }, "sha512-HhLyUZnvkKLuk9o+HBaMlGIa6CqPTfLbVlLFBjrkN4mpZ4saYFRfFx5R12a46UxmzWT9dO8fijmblVvCYvCD3A=="], + + "vite-plugin-static-copy": ["vite-plugin-static-copy@2.3.2", "", { "dependencies": { "chokidar": "^3.5.3", "fast-glob": "^3.2.11", "fs-extra": "^11.1.0", "p-map": "^7.0.3", "picocolors": "^1.0.0" }, "peerDependencies": { "vite": "^5.0.0 || ^6.0.0" } }, "sha512-iwrrf+JupY4b9stBttRWzGHzZbeMjAHBhkrn67MNACXJVjEMRpCI10Q3AkxdBkl45IHaTfw/CNVevzQhP7yTwg=="], + + "vitefu": ["vitefu@1.0.6", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" }, "optionalPeers": ["vite"] }, "sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA=="], + + "vitest": ["vitest@3.2.7", "", { "dependencies": { "@types/chai": "^5.2.2", "@vitest/expect": "3.2.7", "@vitest/mocker": "3.2.7", "@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.2.0", "debug": "^4.4.1", "expect-type": "^1.2.1", "magic-string": "^0.30.17", "pathe": "^2.0.3", "picomatch": "^4.0.2", "std-env": "^3.9.0", "tinybench": "^2.9.0", "tinyexec": "^0.3.2", "tinyglobby": "^0.2.14", "tinypool": "^1.1.1", "tinyrainbow": "^2.0.0", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", "vite-node": "3.2.4", "why-is-node-running": "^2.3.0" }, "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": "*" }, "optionalPeers": ["@edge-runtime/vm", "@types/debug", "@types/node", "@vitest/browser", "@vitest/ui", "happy-dom", "jsdom"], "bin": { "vitest": "./vitest.mjs" } }, "sha512-KrxIJ62Fd89gfysR4WotlgZABiz2dqFPgqGzX7s+CwsqLFomRH7777ZcrOD6+WVAh7khPQP41A+BKbpcJFrdEg=="], + + "web-streams-polyfill": ["web-streams-polyfill@3.3.3", "", {}, "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw=="], + + "webgl-sdf-generator": ["webgl-sdf-generator@1.1.1", "", {}, "sha512-9Z0JcMTFxeE+b2x1LJTdnaT8rT8aEp7MVxkNwoycNmJWwPdzoXzMh0BjJSh/AEFP+KPYZUli814h8bJZFIZ2jA=="], + + "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], + + "why-is-node-running": ["why-is-node-running@2.3.0", "", { "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" }, "bin": { "why-is-node-running": "cli.js" } }, "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w=="], + + "word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="], + + "ws": ["ws@8.21.1", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-+0NTnW77fFN/DjQi6k/Sq/Yvk4Sgajw7urW8V+asjXnRgDs9gyGkdb7EzgfhA4goXsRIZKE28fzIXBHEzhuiWw=="], + + "y-protocols": ["y-protocols@1.0.6", "", { "dependencies": { "lib0": "^0.2.85" }, "peerDependencies": { "yjs": "^13.0.0" } }, "sha512-vHRF2L6iT3rwj1jub/K5tYcTT/mEYDUppgNPXwp8fmLpui9f7Yeq3OEtTLVF012j39QnV+KEQpNqoN7CWU7Y9Q=="], + + "yaml": ["yaml@2.9.0", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA=="], + + "yjs": ["yjs@13.6.26", "", { "dependencies": { "lib0": "^0.2.99" } }, "sha512-wiARO3wixu7mtoRP5f7LqpUtsURP9SmNgXUt3RlnZg4qDuF7dUjthwIvwxIDmK55dPw4Wl4QdW5A3ag0atwu7g=="], + + "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], + + "zimmerframe": ["zimmerframe@1.1.2", "", {}, "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w=="], + + "@carbon/charts-svelte/@carbon/charts": ["@carbon/charts@1.22.18", "", { "dependencies": { "@carbon/colors": "^11.29.0", "@carbon/utils-position": "^1.3.0", "@ibm/telemetry-js": "^1.9.1", "@types/d3": "^7.4.3", "@types/topojson": "^3.2.6", "d3": "^7.9.0", "d3-cloud": "^1.2.7", "d3-sankey": "^0.12.3", "date-fns": "^4.1.0", "dompurify": "^3.2.4", "html-to-image": "^1.11.13", "lodash-es": "^4.17.21", "topojson-client": "^3.1.0", "tslib": "^2.8.1" } }, "sha512-OjQTv3c8KGeoHCIJYpNnaa3FHEU3mdW15Yx1eG6i7CRiH5A+yr3GzFOXvpqhQNFd+vmhKHQEIwioS+HbrBhjZA=="], + + "@cesium/engine/@tweenjs/tween.js": ["@tweenjs/tween.js@25.0.0", "", {}, "sha512-XKLA6syeBUaPzx4j3qwMqzzq+V4uo72BnlbOjmuljLrRqdsd3qnzvZZoxvMHZ23ndsRS4aufU6JOZYpCbU6T1A=="], + + "@cesium/engine/earcut": ["earcut@3.0.2", "", {}, "sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ=="], + + "@cesium/engine/meshoptimizer": ["meshoptimizer@1.2.0", "", {}, "sha512-davRZeIJbxJrE24cwQle7ZDsxjdk/OphNOV83oX+efQinyoHY9Jcyz3MHbaoG0qySZajldGztNZ1RN/T19PZsg=="], + + "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], + + "@eslint/config-array/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" }, "peerDependencies": { "supports-color": "*" }, "optionalPeers": ["supports-color"] }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "@eslint/eslintrc/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" }, "peerDependencies": { "supports-color": "*" }, "optionalPeers": ["supports-color"] }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "@eslint/eslintrc/globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="], + + "@eslint/eslintrc/ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], + + "@humanfs/node/@humanwhocodes/retry": ["@humanwhocodes/retry@0.3.1", "", {}, "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA=="], + + "@jupyterlab/application/@fortawesome/fontawesome-free": ["@fortawesome/fontawesome-free@5.15.4", "", {}, "sha512-eYm8vijH/hpzr/6/1CJ/V/Eb1xQFW2nnUKArb3z+yUWv7HTwj6M7SP957oMjfZjAHU6qpoNc2wQvIxBLWYa/Jg=="], + + "@microsoft/fast-foundation/tslib": ["tslib@1.14.1", "", {}, "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="], + + "@rjsf/core/lodash-es": ["lodash-es@4.17.21", "", {}, "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="], + + "@rjsf/core/nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], + + "@rjsf/utils/lodash-es": ["lodash-es@4.17.21", "", {}, "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="], + + "@sveltejs/kit/acorn": ["acorn@8.17.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg=="], + + "@sveltejs/kit/magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], + + "@sveltejs/vite-plugin-svelte-inspector/debug": ["debug@4.4.0", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], + + "@tailwindcss/node/magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], + + "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.11.2", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.2", "tslib": "^2.4.0" }, "bundled": true }, "sha512-TC8MkTuZUtcTSiFeuC0ksCh9QIJ5+F21MvZ4Wn4ORfYaFJ/0dsiudv5tVkejgwZlwQ39jL9WWDe2lz8x0WglOA=="], + + "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.11.2", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA=="], + + "@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.2", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA=="], + + "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.6", "", { "dependencies": { "@tybys/wasm-util": "^0.10.3" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" }, "bundled": true }, "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg=="], + + "@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util": ["@tybys/wasm-util@0.10.3", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg=="], + + "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@types/cesium/cesium": ["cesium@1.129.0", "", { "dependencies": { "@cesium/engine": "^17.0.0", "@cesium/widgets": "^12.0.0" } }, "sha512-XDEJKLnr8s5/Q/1wcdZVEJCgx+xbgfDzkVKd9OxRZzYttazip6KffusMHexRdExVMPfDcTohuqcuHNxj9CUNFA=="], + + "@types/w3c-generic-sensor/typescript": ["typescript@2.9.2", "", { "bin": { "tsc": "./bin/tsc", "tsserver": "./bin/tsserver" } }, "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w=="], + + "@types/ws/@types/node": ["@types/node@22.15.14", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-BL1eyu/XWsFGTtDWOYULQEs4KR0qdtYfCxYAUYRoB7JP7h9ETYLgQTww6kH8Sj2C0pFGgrpM0XKv6/kbIzYJ1g=="], + + "@typescript-eslint/parser/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" }, "peerDependencies": { "supports-color": "*" }, "optionalPeers": ["supports-color"] }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "@typescript-eslint/project-service/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" }, "peerDependencies": { "supports-color": "*" }, "optionalPeers": ["supports-color"] }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "@typescript-eslint/type-utils/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" }, "peerDependencies": { "supports-color": "*" }, "optionalPeers": ["supports-color"] }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "@typescript-eslint/typescript-estree/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" }, "peerDependencies": { "supports-color": "*" }, "optionalPeers": ["supports-color"] }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "@typescript-eslint/typescript-estree/semver": ["semver@7.8.5", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA=="], + + "@typescript-eslint/typescript-estree/tinyglobby": ["tinyglobby@0.2.17", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g=="], + + "@typescript-eslint/visitor-keys/eslint-visitor-keys": ["eslint-visitor-keys@5.0.1", "", {}, "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA=="], + + "@vitest/mocker/estree-walker": ["estree-walker@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g=="], + + "@vitest/mocker/magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], + + "chai/loupe": ["loupe@3.1.3", "", {}, "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug=="], + + "d3-cloud/d3-dispatch": ["d3-dispatch@1.0.6", "", {}, "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA=="], + + "d3-dsv/commander": ["commander@7.2.0", "", {}, "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="], + + "d3-sankey/d3-array": ["d3-array@2.12.1", "", { "dependencies": { "internmap": "^1.0.0" } }, "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ=="], + + "d3-sankey/d3-shape": ["d3-shape@1.3.7", "", { "dependencies": { "d3-path": "1" } }, "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw=="], + + "eslint/@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.1", "", {}, "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ=="], + + "eslint/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" }, "peerDependencies": { "supports-color": "*" }, "optionalPeers": ["supports-color"] }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "eslint/ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], + + "eslint-plugin-svelte/@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.7.0", "", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw=="], + + "fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + + "libsql/detect-libc": ["detect-libc@2.0.2", "", {}, "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw=="], + + "loose-envify/js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], + + "prop-types/react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="], + + "rollup/@types/estree": ["@types/estree@1.0.9", "", {}, "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg=="], + + "rollup-plugin-external-globals/is-reference": ["is-reference@1.2.1", "", { "dependencies": { "@types/estree": "*" } }, "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ=="], + + "rollup-plugin-external-globals/magic-string": ["magic-string@0.25.9", "", { "dependencies": { "sourcemap-codec": "^1.4.8" } }, "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ=="], + + "send/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], + + "send/encodeurl": ["encodeurl@1.0.2", "", {}, "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="], + + "svelte-eslint-parser/semver": ["semver@7.8.5", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA=="], + + "typestyle/csstype": ["csstype@3.0.10", "", {}, "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA=="], + + "vite-node/vite": ["vite@6.3.5", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", "picomatch": "^4.0.2", "postcss": "^8.5.3", "rollup": "^4.34.9", "tinyglobby": "^0.2.13" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ=="], + + "vite-plugin-mkcert/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" }, "peerDependencies": { "supports-color": "*" }, "optionalPeers": ["supports-color"] }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "vite-plugin-static-copy/chokidar": ["chokidar@3.6.0", "", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="], + + "vite-plugin-static-copy/fs-extra": ["fs-extra@11.3.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew=="], + + "vitest/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" }, "peerDependencies": { "supports-color": "*" }, "optionalPeers": ["supports-color"] }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "@carbon/charts-svelte/@carbon/charts/html-to-image": ["html-to-image@1.11.13", "", {}, "sha512-cuOPoI7WApyhBElTTb9oqsawRvZ0rHhaHwghRLlTuffoD1B2aDemlCruLeZrUIIdvG7gs9xeELEPm6PhuASqrg=="], + + "@carbon/charts-svelte/@carbon/charts/lodash-es": ["lodash-es@4.17.21", "", {}, "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="], + + "@sveltejs/kit/magic-string/@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], + + "@tailwindcss/node/magic-string/@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], + + "@types/cesium/cesium/@cesium/engine": ["@cesium/engine@17.0.0", "", { "dependencies": { "@tweenjs/tween.js": "^25.0.0", "@zip.js/zip.js": "^2.7.34", "autolinker": "^4.0.0", "bitmap-sdf": "^1.0.3", "dompurify": "^3.0.2", "draco3d": "^1.5.1", "earcut": "^3.0.0", "grapheme-splitter": "^1.0.4", "jsep": "^1.3.8", "kdbush": "^4.0.1", "ktx-parse": "^1.0.0", "lerc": "^2.0.0", "mersenne-twister": "^1.1.0", "meshoptimizer": "^0.23.0", "pako": "^2.0.4", "protobufjs": "^7.1.0", "rbush": "3.0.1", "topojson-client": "^3.1.0", "urijs": "^1.19.7" } }, "sha512-bvLWmWVY4QX9rfcx/zfBzA8R1xR8KzmaCDOVL6pFkNZeYmRtt8JN//IICYR3P45lznlcb0Dklw1iCb37t4tvLA=="], + + "@types/cesium/cesium/@cesium/widgets": ["@cesium/widgets@12.0.0", "", { "dependencies": { "@cesium/engine": "^17.0.0", "nosleep.js": "^0.12.0" } }, "sha512-5Re06LU8lRPEZInHrpOCGBiLoj9VNJ0JJtPrzdnw1qhIDpf3v1W75OJf59k8CCFvUYkZzuTTi8qTVbpzmcbOuw=="], + + "@typescript-eslint/typescript-estree/tinyglobby/fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], + + "@vitest/mocker/magic-string/@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], + + "d3-sankey/d3-array/internmap": ["internmap@1.0.1", "", {}, "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw=="], + + "d3-sankey/d3-shape/d3-path": ["d3-path@1.0.9", "", {}, "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg=="], + + "eslint-plugin-svelte/@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], + + "send/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], + + "vite-node/vite/tinyglobby": ["tinyglobby@0.2.13", "", { "dependencies": { "fdir": "^6.4.4", "picomatch": "^4.0.2" } }, "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw=="], + + "vite-plugin-static-copy/chokidar/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + + "vite-plugin-static-copy/chokidar/readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="], + + "@types/cesium/cesium/@cesium/engine/@tweenjs/tween.js": ["@tweenjs/tween.js@25.0.0", "", {}, "sha512-XKLA6syeBUaPzx4j3qwMqzzq+V4uo72BnlbOjmuljLrRqdsd3qnzvZZoxvMHZ23ndsRS4aufU6JOZYpCbU6T1A=="], + + "@types/cesium/cesium/@cesium/engine/@zip.js/zip.js": ["@zip.js/zip.js@2.7.60", "", {}, "sha512-vA3rLyqdxBrVo1FWSsbyoecaqWTV+vgPRf0QKeM7kVDG0r+lHUqd7zQDv1TO9k4BcAoNzNDSNrrel24Mk6addA=="], + + "@types/cesium/cesium/@cesium/engine/earcut": ["earcut@3.0.1", "", {}, "sha512-0l1/0gOjESMeQyYaK5IDiPNvFeu93Z/cO0TjZh9eZ1vyCtZnA7KMZ8rQggpsJHIbGSdrqYq9OhuveadOVHCshw=="], + + "@types/cesium/cesium/@cesium/engine/meshoptimizer": ["meshoptimizer@0.23.0", "", {}, "sha512-zAZcfhHE3wBbwEN8MfCMI9PKRyOpz8491wcR2dxkv3IlNwDZrq2hEs5JZVtzfBrmjWhBZZtZZUO0OBSNFq5iUQ=="], + + "@types/cesium/cesium/@cesium/engine/pako": ["pako@2.1.0", "", {}, "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug=="], + + "@types/cesium/cesium/@cesium/engine/rbush": ["rbush@3.0.1", "", { "dependencies": { "quickselect": "^2.0.0" } }, "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w=="], + + "@types/cesium/cesium/@cesium/engine/rbush/quickselect": ["quickselect@2.0.0", "", {}, "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw=="], + } +} diff --git a/apps/ground-station-web/package.json b/apps/ground-station-web/package.json new file mode 100755 index 0000000..52be6d3 --- /dev/null +++ b/apps/ground-station-web/package.json @@ -0,0 +1,87 @@ +{ + "name": "@rgs/web", + "version": "0.0.1", + "type": "module", + "scripts": { + "postinstall": "svelte-kit sync", + "dev": "vite dev", + "build": "vite build", + "watch": "vite build --watch", + "preview": "vite preview", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", + "test": "vitest run", + "lint": "prettier --check . && eslint .", + "format": "prettier --write .", + "grpc-gen": "node scripts/generate-grpc.cjs" + }, + "devDependencies": { + "@floating-ui/dom": "^1.8.0", + "@fortawesome/fontawesome-free": "6.7.2", + "@sveltejs/adapter-auto": "^6.1.1", + "@sveltejs/vite-plugin-svelte": "^5.1.1", + "@threlte/core": "^8.5.16", + "@threlte/extras": "^9.21.0", + "@types/node": "^22.20.1", + "@types/three": "^0.176.0", + "@types/w3c-generic-sensor": "^1.0.10", + "@typescript-eslint/eslint-plugin": "^8.64.0", + "@typescript-eslint/parser": "^8.64.0", + "@vitejs/plugin-basic-ssl": "^2.3.0", + "carbon-preprocess-svelte": "^0.11.37", + "cesium": "^1.143.0", + "eslint": "^9.39.5", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-svelte": "^3.20.0", + "prettier": "^3.9.5", + "prettier-plugin-svelte": "^3.5.2", + "svelte": "^5.56.5", + "svelte-check": "^4.7.3", + "svelte-preprocess": "^6.0.5", + "tailwindcss": "^4.3.3", + "three": "^0.176.0", + "tslib": "^2.8.1", + "typescript": "^5.9.3", + "vite": "^6.4.3", + "vite-plugin-cesium": "^1.2.23", + "vite-plugin-mkcert": "^1.17.12", + "vite-plugin-static-copy": "^2.3.2", + "vitest": "^3.2.7" + }, + "dependencies": { + "@carbon/charts": "^1.27.16", + "@carbon/charts-svelte": "^1.22.18", + "@fontsource/ibm-plex-mono": "^5.2.7", + "@jupyterlab/theme-light-extension": "^4.6.1", + "@libsql/client": "^0.15.15", + "@sveltejs/kit": "^2.57.1", + "@lumino/default-theme": "^2.1.16", + "@lumino/messaging": "^2.0.5", + "@lumino/widgets": "^2.9.0", + "@tailwindcss/vite": "^4.3.3", + "@types/cesium": "^1.70.4", + "@types/leaflet": "^1.9.21", + "carbon-components-svelte": "^0.89.11", + "carbon-icons-svelte": "^12.26.0", + "d3": "^7.9.0", + "gsap": "^3.15.0", + "leaflet": "^1.9.4", + "svelte-adapter-bun": "^0.5.2" + }, + "overrides": { + "dompurify": "^3.2.7", + "protobufjs": "^7.5.7", + "follow-redirects": "^1.15.12", + "minimatch": "^9.0.5", + "axios": "^1.7.9", + "flatted": "^3.4.0", + "devalue": "^5.3.2", + "picomatch": "^2.3.2", + "postcss": "^8.5.10", + "ajv": "^8.18.0", + "cookie": "^0.7.0", + "rollup": "^4.59.0", + "ws": "^8.20.1", + "yaml": "^2.7.0" + } +} diff --git a/apps/ground-station-web/src/app.css b/apps/ground-station-web/src/app.css new file mode 100644 index 0000000..6445e45 --- /dev/null +++ b/apps/ground-station-web/src/app.css @@ -0,0 +1,393 @@ +@import '@fontsource/ibm-plex-mono/latin-400.css'; +@import '@fontsource/ibm-plex-mono/latin-500.css'; +@import '@fontsource/ibm-plex-mono/latin-600.css'; +@import 'tailwindcss'; +@import 'carbon-components-svelte/css/all.css'; +@import '@carbon/charts-svelte/styles.css'; +@import '@fortawesome/fontawesome-free/css/all.min.css'; + +:root { + font-family: 'IBM Plex Mono', ui-monospace, monospace; + font-size: 14px; + --rgs-header-h: 40px; + --rgs-rail-w: 184px; + --rgs-rail-collapsed-w: 48px; + --rgs-space-1: 4px; + --rgs-space-2: 8px; + --rgs-space-3: 12px; + --rgs-space-4: 16px; + --rgs-bg: #f4f6f8; + --rgs-surface: #ffffff; + --rgs-surface-alt: #e9edf1; + --rgs-surface-active: #dce8f2; + --rgs-text: #101418; + --rgs-text-muted: #36414a; + --rgs-border: #66717a; + --rgs-border-subtle: #c5ccd1; + --rgs-accent: #005ea8; + --rgs-good: #176b2c; + --rgs-warn: #7a4b00; + --rgs-danger: #b42318; + --rgs-focus: #005fcc; + --rgs-shadow: 0 1px 2px rgb(16 20 24 / 14%); +} + +[data-carbon-theme='g80'], +[data-carbon-theme='g90'], +[data-carbon-theme='g100'] { + --rgs-bg: #0b0f12; + --rgs-surface: #151b20; + --rgs-surface-alt: #20282e; + --rgs-surface-active: #17364b; + --rgs-text: #f5f7f8; + --rgs-text-muted: #c1c8cd; + --rgs-border: #7d8991; + --rgs-border-subtle: #3c474f; + --rgs-accent: #78b9ee; + --rgs-good: #6fdc8c; + --rgs-warn: #f1c21b; + --rgs-danger: #ff8389; + --rgs-focus: #78a9ff; + --rgs-shadow: none; +} + +html, +body { + min-width: 320px; + min-height: 100%; + margin: 0; + background: var(--rgs-bg); + color: var(--rgs-text); +} + +body, +button, +input, +select, +textarea { + font-family: inherit !important; +} + +button, +a, +input, +select, +textarea { + font-variant-numeric: tabular-nums; +} + +:focus-visible { + outline: 2px solid var(--rgs-focus) !important; + outline-offset: 2px; +} + +a { + color: var(--rgs-accent); +} + +h1, +h2, +h3, +p { + margin-block-start: 0; +} + +h1 { + font-size: 1.25rem; + line-height: 1.4; +} + +h2 { + font-size: 1rem; + line-height: 1.4; +} + +h3 { + font-size: 0.875rem; + line-height: 1.4; +} + +.rgs-page { + display: flex; + min-width: 0; + flex-direction: column; + gap: var(--rgs-space-2); + padding: var(--rgs-space-3); +} + +.rgs-page-header { + display: flex; + min-height: 32px; + align-items: center; + justify-content: space-between; + gap: var(--rgs-space-2); +} + +.rgs-page-title { + margin: 0; + font-size: 1.15rem; + font-weight: 600; + letter-spacing: 0.02em; + text-transform: uppercase; +} + +.rgs-page-actions { + display: flex; + align-items: center; + gap: var(--rgs-space-1); + flex-wrap: wrap; +} + +.rgs-grid { + display: grid; + grid-template-columns: repeat(12, minmax(0, 1fr)); + gap: var(--rgs-space-2); +} + +.rgs-panel { + min-width: 0; + border: 1px solid var(--rgs-border-subtle); + background: var(--rgs-surface); + box-shadow: var(--rgs-shadow); +} + +.rgs-panel-header { + display: flex; + min-height: 32px; + align-items: center; + justify-content: space-between; + gap: var(--rgs-space-2); + padding: var(--rgs-space-1) var(--rgs-space-3); + border-bottom: 1px solid var(--rgs-border-subtle); + background: var(--rgs-surface-alt); +} + +.rgs-panel-header h2, +.rgs-panel-header h3 { + margin: 0; + font-weight: 600; + letter-spacing: 0.04em; + text-transform: uppercase; +} + +.rgs-panel-body { + padding: var(--rgs-space-3); +} + +.rgs-muted { + color: var(--rgs-text-muted); +} + +.rgs-status { + display: inline-flex; + align-items: center; + gap: 6px; + font-size: 0.78rem; + font-weight: 600; + letter-spacing: 0.04em; + text-transform: uppercase; +} + +.rgs-status::before { + width: 8px; + height: 8px; + border: 1px solid currentColor; + border-radius: 50%; + background: currentColor; + content: ''; +} + +.rgs-status--good { + color: var(--rgs-good); +} +.rgs-status--warn { + color: var(--rgs-warn); +} +.rgs-status--danger { + color: var(--rgs-danger); +} +.rgs-status--neutral { + color: var(--rgs-text-muted); +} + +.rgs-empty { + display: grid; + min-height: 96px; + place-items: center; + padding: var(--rgs-space-4); + color: var(--rgs-text-muted); + text-align: center; +} + +.rgs-value { + font-size: clamp(1.4rem, 2.5vw, 2rem); + font-weight: 600; + line-height: 1.1; + font-variant-numeric: tabular-nums; +} + +.rgs-unit { + margin-left: 0.3em; + color: var(--rgs-text-muted); + font-size: 0.55em; + font-weight: 500; +} + +/* Carbon remains the control toolkit, but RGS owns density and composition. */ +.cds--content, +.bx--content { + padding: 0 !important; + background: transparent !important; +} + +.cds--grid, +.bx--grid { + max-width: none !important; + padding: var(--rgs-space-3) !important; +} + +.cds--row, +.bx--row { + margin-block-end: var(--rgs-space-2) !important; +} + +.cds--tile, +.bx--tile { + min-height: 0 !important; + padding: var(--rgs-space-3) !important; + border: 1px solid var(--rgs-border-subtle); + background: var(--rgs-surface) !important; +} + +.cds--btn, +.bx--btn { + min-height: 32px !important; + padding-block: 0 !important; +} + +.cds--data-table td, +.cds--data-table th, +.bx--data-table td, +.bx--data-table th { + height: 32px !important; + padding: 4px 8px !important; + font-family: inherit !important; +} + +.cds--data-table-container, +.bx--data-table-container, +.cds--structured-list, +.bx--structured-list { + max-width: 100%; + overflow-x: auto; +} + +.rgs-route-title { + display: flex; + align-items: center; + justify-content: space-between; + gap: var(--rgs-space-2); + margin-bottom: var(--rgs-space-2); +} + +.rgs-route-title h1, +.rgs-route-title h2 { + margin: 0; + font-size: 1.1rem; + font-weight: 600; + letter-spacing: 0.03em; + text-transform: uppercase; +} + +.rgs-route > :first-child > [class*='col'] > .cds--tile:first-child, +.rgs-route > :first-child > [class*='col'] > .bx--tile:first-child { + box-shadow: none; +} + +.rgs-route h1, +.rgs-route h2 { + letter-spacing: 0.02em; +} + +.telemetry-route > .cds--row > [class*='col'] > .cds--tile, +.telemetry-route > .bx--row > [class*='col'] > .bx--tile { + padding: 0 !important; + border: 0; + background: transparent !important; + box-shadow: none; +} + +.telemetry-route > .cds--row > [class*='col'] > .cds--tile > .cds--tile, +.telemetry-route > .bx--row > [class*='col'] > .bx--tile > .bx--tile { + margin-top: var(--rgs-space-2); +} + +@media (max-width: 767px) { + .rgs-route .cds--row, + .rgs-route .bx--row { + margin-inline: 0 !important; + } + + .rgs-route [class*='col'] { + max-width: 100% !important; + flex-basis: 100% !important; + } +} + +.cds--inline-notification, +.bx--inline-notification { + min-height: 36px !important; + margin: var(--rgs-space-2) 0 !important; +} + +::-webkit-scrollbar { + width: 10px; + height: 10px; +} +::-webkit-scrollbar-track { + background: transparent; +} +::-webkit-scrollbar-thumb { + border: 2px solid transparent; + border-radius: 8px; + background: color-mix(in srgb, var(--rgs-border) 70%, transparent); + background-clip: padding-box; +} + +@media (max-width: 767px) { + .rgs-page { + padding: var(--rgs-space-2); + } + .rgs-page-header { + align-items: flex-start; + flex-direction: column; + } + .rgs-page-actions { + width: 100%; + } + .rgs-grid { + grid-template-columns: 1fr; + } + .rgs-panel-body { + padding: var(--rgs-space-2); + } + .cds--grid, + .bx--grid { + padding: var(--rgs-space-2) !important; + } + .cds--btn, + .bx--btn { + min-height: 44px !important; + } +} + +@media (prefers-reduced-motion: reduce) { + *, + *::before, + *::after { + scroll-behavior: auto !important; + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + } +} diff --git a/apps/ground-station-web/src/app.d.ts b/apps/ground-station-web/src/app.d.ts new file mode 100755 index 0000000..fde5a49 --- /dev/null +++ b/apps/ground-station-web/src/app.d.ts @@ -0,0 +1,14 @@ +// See https://kit.svelte.dev/docs/types#app +// for information about these interfaces +declare global { + namespace App { + interface Locals { + clientIp?: string; + remoteAddress?: string; + } + // interface PageData {} + // interface Platform {} + } +} + +export { }; diff --git a/apps/ground-station-web/src/app.html b/apps/ground-station-web/src/app.html new file mode 100755 index 0000000..cbe80cf --- /dev/null +++ b/apps/ground-station-web/src/app.html @@ -0,0 +1,19 @@ + + + + + + + RGS Client + + + + + + + %sveltekit.head% + + +
%sveltekit.body%
+ + diff --git a/apps/ground-station-web/src/hooks.server.ts b/apps/ground-station-web/src/hooks.server.ts new file mode 100755 index 0000000..3444281 --- /dev/null +++ b/apps/ground-station-web/src/hooks.server.ts @@ -0,0 +1,113 @@ +import type { Handle } from '@sveltejs/kit'; + +function getClientIp(event: Parameters[0]['event']): string | null { + // X-Forwarded-For may include a list. Take the first non-empty token (original client). + const xff = event.request.headers.get('x-forwarded-for'); + if (xff) { + const parts = xff.split(',').map((s) => s.trim()).filter(Boolean); + const first = parts[0]; + if (first) return first; + } + const realIp = event.request.headers.get('x-real-ip'); + if (realIp) return realIp; + // Fall back to platform specific data + const remote = event.getClientAddress?.() || event.locals.remoteAddress; + if (typeof remote === 'string' && remote.length > 0) return remote; + return null; +} + +type Cidr = { base: bigint; maskBits: number }; + +function parseIpToBigInt(ip: string): bigint | null { + // Strip IPv6 zone or port if present + const cleaned = ip.replace(/^\[|\]$/g, '').replace(/%.*$/, ''); + if (cleaned.includes(':')) { + // IPv6 + const parts = cleaned.split('::'); + let hextets: string[] = []; + if (parts.length === 1) { + hextets = cleaned.split(':'); + } else if (parts.length === 2) { + const left = parts[0] ? parts[0].split(':') : []; + const right = parts[1] ? parts[1].split(':') : []; + const fill = new Array(8 - (left.length + right.length)).fill('0'); + hextets = [...left, ...fill, ...right]; + } else { + return null; + } + if (hextets.length !== 8) return null; + let value = 0n; + for (const h of hextets) { + const n = BigInt(parseInt(h || '0', 16)); + value = (value << 16n) + n; + } + return value; + } else { + // IPv4 possibly with port + const withoutPort = cleaned.split(':')[0]; + const segs = withoutPort.split('.'); + if (segs.length !== 4) return null; + let val = 0n; + for (const s of segs) { + const n = Number(s); + if (Number.isNaN(n) || n < 0 || n > 255) return null; + val = (val << 8n) + BigInt(n); + } + // map IPv4 into IPv6-mapped space for uniform compare: ::ffff:a.b.c.d + return (0xffffn << 32n) + val; + } +} + +function parseCidr(cidr: string): Cidr | null { + const [ip, bitsStr] = cidr.trim().split('/'); + if (!ip || !bitsStr) return null; + const bits = Number(bitsStr); + if (Number.isNaN(bits) || bits < 0 || bits > 128) return null; + const ipVal = parseIpToBigInt(ip); + if (ipVal === null) return null; + return { base: ipVal, maskBits: bits }; +} + +function ipInCidrs(ip: string, cidrs: string[]): boolean { + const ipVal = parseIpToBigInt(ip); + if (ipVal === null) return false; + for (const c of cidrs) { + const parsed = parseCidr(c); + if (!parsed) continue; + const { base, maskBits } = parsed; + const mask = maskBits === 0 ? 0n : (~0n) << BigInt(128 - maskBits); + if ((ipVal & mask) === (base & mask)) return true; + } + return false; +} + +function isProtectedPath(pathname: string, protectedPrefixes: string[]): boolean { + return protectedPrefixes.some((p) => p && pathname.startsWith(p)); +} + +export const handle: Handle = async ({ event, resolve }) => { + const ip = getClientIp(event) ?? 'unknown'; + + // Make IP available to endpoints via locals + event.locals.clientIp = ip; + + // Pull config from env + const subnetEnv = process.env['ALLOWED_SUBNETS'] ?? ''; + const protectedEnv = process.env['PROTECTED_PATH_PREFIXES'] ?? ''; + const allowedCidrs = subnetEnv.split(',').map((s) => s.trim()).filter(Boolean); + const protectedPrefixes = protectedEnv.split(',').map((s) => s.trim()).filter(Boolean); + + // Log all incoming requests with IP and path + console.log(`[req] ${event.request.method} ${event.url.pathname} ip=${ip}`); + + // Enforce subnet on protected paths + if (isProtectedPath(event.url.pathname, protectedPrefixes)) { + const ok = ip !== 'unknown' && ipInCidrs(ip, allowedCidrs); + if (!ok) { + console.log(`[req] ${event.request.method} ${event.url.pathname} ip=${ip} denied`); + return new Response('Forbidden! This page is for internal use only. Want to know more? Come visit our booth!', { status: 403 }); + } + } + + return resolve(event); +}; diff --git a/apps/ground-station-web/src/lib/assets/hydra_provider_logo.svg b/apps/ground-station-web/src/lib/assets/hydra_provider_logo.svg new file mode 100755 index 0000000..625a146 --- /dev/null +++ b/apps/ground-station-web/src/lib/assets/hydra_provider_logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/ground-station-web/src/lib/common/LRUCache.ts b/apps/ground-station-web/src/lib/common/LRUCache.ts new file mode 100755 index 0000000..68a2f52 --- /dev/null +++ b/apps/ground-station-web/src/lib/common/LRUCache.ts @@ -0,0 +1,33 @@ +/** + * Least Recently Used (LRU) cache implementation. + */ +export class LRUCache { + public cache = new Map(); + public capacity: number; + + constructor(capacity: number) { + this.capacity = capacity; + } + + get(key: K): V | undefined { + const value = this.cache.get(key); + if (value) { + this.cache.delete(key); + this.cache.set(key, value); // Move to the end + } + return value; + } + + put(key: K, value: V): void { + this.cache.delete(key); + this.cache.set(key, value); + if (this.cache.size > this.capacity) { + const oldest = this.cache.keys().next(); + if (!oldest.done) this.cache.delete(oldest.value); + } + } + + clear(): void { + this.cache.clear(); + } +} diff --git a/apps/ground-station-web/src/lib/common/persistentStorage.ts b/apps/ground-station-web/src/lib/common/persistentStorage.ts new file mode 100755 index 0000000..6ccd2bd --- /dev/null +++ b/apps/ground-station-web/src/lib/common/persistentStorage.ts @@ -0,0 +1,54 @@ +import { writable, type Writable } from "svelte/store"; + +// Custom replacement for Skeleton's localStorageStore +export function persistentStore(key: string, initialValue: T): Writable { + // Check for browser environment + if (typeof window === 'undefined' || !window.localStorage) { + console.warn(`localStorage not available for key "${key}", using non-persistent store.`); + return writable(initialValue); + } + + let storedValue: T | undefined = undefined; + try { + const storedItem = window.localStorage.getItem(key); + if (storedItem !== null) { + storedValue = JSON.parse(storedItem) as T; + } + } catch (e) { + console.error(`Error reading localStorage key “${key}”:`, e); + storedValue = undefined; // Use initial value if parsing fails + } + + const store = writable(storedValue !== undefined ? storedValue : initialValue); + + store.subscribe((value) => { + try { + window.localStorage.setItem(key, JSON.stringify(value)); + } catch (e) { + console.error(`Error setting localStorage key “${key}”:`, e); + } + }); + + // Sync store with changes from other tabs + const handleStorage = (event: StorageEvent) => { + if (event.key === key && event.newValue !== null) { + try { + store.set(JSON.parse(event.newValue) as T); + } catch (e) { + console.error(`Error parsing storage event for key “${key}”:`, e); + } + } else if (event.key === key && event.newValue === null) { + // Item was removed in another tab, reset to initial + store.set(initialValue); + } + }; + + window.addEventListener('storage', handleStorage); + + // Return a store that cleans up the event listener on unsubscribe + // (This requires modifying the return slightly if true cleanup is needed, + // but for settings, they usually live for the app lifetime) + // For simplicity now, we don't return the enhanced store with cleanup. + + return store; +} \ No newline at end of file diff --git a/apps/ground-station-web/src/lib/common/settings.ts b/apps/ground-station-web/src/lib/common/settings.ts new file mode 100755 index 0000000..e91c5dd --- /dev/null +++ b/apps/ground-station-web/src/lib/common/settings.ts @@ -0,0 +1,149 @@ +import { writable, type Writable } from 'svelte/store'; +import { persistentStore } from './persistentStorage'; + +// Settings type definitions + +type ValueT = + | { + valueDescription: 'string'; + value: Writable; + placeholder?: string; + } + | { + valueDescription: 'number'; + value: Writable; + min?: number; + max?: number; + step?: number; + } + | { + valueDescription: 'boolean'; + value: Writable; + } + | { + valueDescription: 'array'; + value: Writable; + } + | { + valueDescription: 'kv'; + value: Writable<{ [key: string]: string }>; + } + | { + valueDescription: 'enum'; + options: string[]; + value: Writable; + }; + +type Setting = { name: string; description?: string } & ValueT; + +type SettingsGroup = { + name: string; + settings: Setting[]; +}; + +// Settings + +const uiSettings = { + name: 'ui', + settings: [ + { + name: 'theme', + description: 'Select the application theme', + valueDescription: 'enum', + options: ['white', 'g100'], + value: persistentStore('ui.theme', 'white') + } + ] +} satisfies SettingsGroup; + +const notificationSettings = { + name: 'notifications', + settings: [ + { + name: 'consoleNotifications', + description: 'Enable on-screen console notifications', + valueDescription: 'boolean', + value: persistentStore('notifications.consoleNotifications', false) + } + ] +} satisfies SettingsGroup; + +const flightSettings = { + name: 'flight', + settings: [ + // Altitude page + { + name: 'altitudeMinutes', + valueDescription: 'number', + description: 'Minutes to look back for altitude', + value: persistentStore('flight.altitudeMinutes', 15), + min: 1, + max: 1440, + step: 1 + }, + { + name: 'altitudeQnhKpa', + valueDescription: 'number', + description: 'QNH (kPa) for barometric altitude', + value: persistentStore('flight.altitudeQnhKpa', 100), + min: 80, + max: 110, + step: 0.1 + }, + // IMU page + { + name: 'imuMinutes', + valueDescription: 'number', + description: 'Minutes to look back for IMU', + value: persistentStore('flight.imuMinutes', 10), + min: 1, + max: 1440, + step: 1 + }, + // Trajectory page + { + name: 'trajMinutes', + valueDescription: 'number', + description: 'Minutes to look back for trajectory', + value: persistentStore('flight.trajMinutes', 240), + min: 1, + max: 1440, + step: 1 + }, + { + name: 'trajMaxPoints', + valueDescription: 'number', + description: 'Max points on map path', + value: persistentStore('flight.trajMaxPoints', 3000), + min: 100, + max: 20000, + step: 100 + }, + { + name: 'trajRadiusKm', + valueDescription: 'number', + description: 'Radius around center (km)', + value: persistentStore('flight.trajRadiusKm', 50), + min: 1, + max: 500, + step: 1 + } + ] +} satisfies SettingsGroup; + +export const settings = [uiSettings, notificationSettings, flightSettings]; + +export const findSetting = (name: string): Setting | undefined => { + const groupName = name.split('.')[0]; + const group = settings.find((group) => group.name === groupName); + if (group) { + // Find setting in group + const settingName = name.split('.')[1]; + const setting = group.settings.find((setting) => setting.name === settingName); + if (setting) { + return setting; + } + } + + return undefined; +}; diff --git a/apps/ground-station-web/src/lib/common/stringCmp.ts b/apps/ground-station-web/src/lib/common/stringCmp.ts new file mode 100755 index 0000000..bec1b6e --- /dev/null +++ b/apps/ground-station-web/src/lib/common/stringCmp.ts @@ -0,0 +1,75 @@ +// https://github.com/aceakash/string-similarity + +/** + * Calculates the similarity between two strings. + * @param first string to compare + * @param second string to compare + * @returns a number between 0 and 1, where 1 is a perfect match + */ + +export function getStringDifference(first: string, second: string) { + first = first.replace(/\s+/g, ''); + second = second.replace(/\s+/g, ''); + + if (first === second) return 1; // identical or empty + if (first.length < 2 || second.length < 2) return 0; // if either is a 0-letter or 1-letter string + + const firstBigrams = new Map(); + for (let i = 0; i < first.length - 1; i++) { + const bigram = first.substring(i, i + 2); + const count = firstBigrams.has(bigram) ? firstBigrams.get(bigram) + 1 : 1; + + firstBigrams.set(bigram, count); + } + + let intersectionSize = 0; + for (let i = 0; i < second.length - 1; i++) { + const bigram = second.substring(i, i + 2); + const count = firstBigrams.has(bigram) ? firstBigrams.get(bigram) : 0; + + if (count > 0) { + firstBigrams.set(bigram, count - 1); + intersectionSize++; + } + } + + return (2.0 * intersectionSize) / (first.length + second.length - 2); +} + +/** + * Helper function that maps all strings to a score + * but uses shortcuts to avoid calling getStringDifference on all strings + * @param mainString + * @param targetStrings + * @returns an array with the score of each string in the array + */ +export function getStringScores(baseString: string, stringLst: string[]): number[] { + baseString = baseString.toLowerCase(); + // Calculate starts with score + const scores: number[] = stringLst.map((curStr) => { + curStr = curStr.toLocaleLowerCase().replace('-', ' '); + if (curStr === baseString) { + return 4; + } + // Starting or ending with gets priority over including + if (curStr.startsWith(baseString)) { + return 3; + } + + // Starting or ending with gets priority over including + if (curStr.endsWith(baseString)) { + return 2; + } + + if (curStr.includes(baseString)) { + return 1; + } + return getStringDifference(baseString, curStr); + }); + + return scores; +} + +export function sum(a: number, b: number) { + return a + b; +} diff --git a/apps/ground-station-web/src/lib/common/theme.ts b/apps/ground-station-web/src/lib/common/theme.ts new file mode 100755 index 0000000..2e04055 --- /dev/null +++ b/apps/ground-station-web/src/lib/common/theme.ts @@ -0,0 +1,36 @@ +import { browser } from '$app/environment'; +import { findSetting } from '$lib/common/settings'; +import { derived, writable, type Readable, type Writable } from 'svelte/store'; + +export type CarbonTheme = 'white' | 'g10' | 'g80' | 'g90' | 'g100'; + +const allowedThemes: CarbonTheme[] = ['white', 'g10', 'g80', 'g90', 'g100']; + +export function resolveCarbonTheme(value: string): CarbonTheme { + return (allowedThemes as readonly string[]).includes(value) ? (value as CarbonTheme) : 'g100'; +} + +// Source store from settings; fallback to writable if missing +const themeSetting = findSetting('ui.theme'); +const rawThemeStore: Writable = + themeSetting && themeSetting.valueDescription === 'enum' + ? (themeSetting.value as Writable) + : writable('white'); + +export const carbonTheme: Readable = derived(rawThemeStore, (v, set) => { + set(resolveCarbonTheme(v)); +}); + +// Apply to document root for Carbon styling +if (browser) { + carbonTheme.subscribe((t) => { + const html = document.documentElement; + html.setAttribute('theme', t); + html.setAttribute('data-carbon-theme', t); + }); +} + +// Optional setter for programmatic changes +export function setAppTheme(value: string) { + rawThemeStore.set(value); +} diff --git a/apps/ground-station-web/src/lib/common/utils.ts b/apps/ground-station-web/src/lib/common/utils.ts new file mode 100755 index 0000000..1b72aaa --- /dev/null +++ b/apps/ground-station-web/src/lib/common/utils.ts @@ -0,0 +1,103 @@ +import { onDestroy, onMount } from 'svelte'; +import { writable, type Writable } from 'svelte/store'; + +export const theme: Writable = writable(); + +export function onThemeChange(callback: () => void) { + const unsubscribe = theme.subscribe(callback); + onDestroy(() => { + unsubscribe(); + }); + return unsubscribe; +} + +export function onInterval(callback: () => void, milliseconds: number) { + onMount(() => { + const interval = setInterval(callback, milliseconds); + return () => { + clearInterval(interval); + }; + }); +} + +export function formatVariableName(name: string): string { + return name + .split('_') + .map((word) => word.charAt(0).toUpperCase() + word.slice(1)) + .join(' '); +} + +// ThisIsCamelCase -> This Is Camel Case +export function formatCamelCase(name: string): string { + return name.replace(/([A-Z])/g, ' $1').replace(/^./, (str) => str.toUpperCase()); +} + +export function getRandomHexColorFromString(str: string, contrastThreshold = 0.8): string { + // Convert the string to a unique number by summing the character codes + let num = 0; + for (let i = 0; i < str.length; i++) { + num += str.charCodeAt(i); + } + + // Use the string-based number as the seed for the random number generator + const random = Math.sin(num) * 10000; + const randomNumber = Math.floor((random - Math.floor(random)) * 16777216); + + // Convert the random number to a hex color string + const hexColor = '#' + randomNumber.toString(16).padStart(6, '0'); + + // Calculate the relative luminance of the color + const r = parseInt(hexColor.substring(1, 3), 16); + const g = parseInt(hexColor.substring(3, 5), 16); + const b = parseInt(hexColor.substring(5, 7), 16); + const relativeLuminance = (0.2126 * r + 0.7152 * g + 0.0722 * b) / 255; + + // Adjust the color if the contrast is too low + if (relativeLuminance > contrastThreshold) { + return getRandomHexColorFromString(str + 'a', contrastThreshold); + } + + return hexColor; +} + +export function max(a: number, b: number) { + return a > b ? a : b; +} + +type LatLngLiteral = { lat: number; lng: number }; + +export function haversineDistance(coord1: LatLngLiteral, coord2: LatLngLiteral): number { + const R = 6371; // Radius of the Earth in km + const dLat = toRad(coord2.lat - coord1.lat); + const dLon = toRad(coord2.lng - coord1.lng); + + const a = + Math.sin(dLat / 2) * Math.sin(dLat / 2) + + Math.cos(toRad(coord1.lat)) * + Math.cos(toRad(coord2.lat)) * + Math.sin(dLon / 2) * + Math.sin(dLon / 2); + + const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); + return R * c; +} + +function toRad(v: number) { + return (v * Math.PI) / 180; +} + +export function roundToDecimalPlaces(num: number, decimalPlaces: number) { + const factor = Math.pow(10, decimalPlaces); + return Math.round(num * factor) / factor; +} + +// 1.04, 3 -> 1.040 +// 1.5, 2 -> 1.50 +export function padFloatToDecimalPlaces(num: number, decimalPlaces: number) { + const factor = Math.pow(10, decimalPlaces); + return (Math.round(num * factor) / factor).toFixed(decimalPlaces); +} + +export function toPlainObject(instance: T) { + return Object.assign({}, instance); +} diff --git a/apps/ground-station-web/src/lib/components/Common/ConfirmModal.svelte b/apps/ground-station-web/src/lib/components/Common/ConfirmModal.svelte new file mode 100644 index 0000000..c8aebdf --- /dev/null +++ b/apps/ground-station-web/src/lib/components/Common/ConfirmModal.svelte @@ -0,0 +1,109 @@ + + + { + event.preventDefault(); + cancel(); + }} +> +
+ {title} +
+

{message}

+
+ + +
+
+ + diff --git a/apps/ground-station-web/src/lib/components/Common/Timeline/Timeline.svelte b/apps/ground-station-web/src/lib/components/Common/Timeline/Timeline.svelte new file mode 100755 index 0000000..9897b16 --- /dev/null +++ b/apps/ground-station-web/src/lib/components/Common/Timeline/Timeline.svelte @@ -0,0 +1,173 @@ + + +
+ {#each ticks as tick} +
+
+ {#if zoomLevel === 0} + {tickFormatterHour.format(tickPositionToTime(tick))} + {:else} + {tickFormatterShort.format(tickPositionToTime(tick))} + {/if} +
+
+ {/each} + +
+
+ {needleFormatter.format(needleTime)} +
+
+
+ + diff --git a/apps/ground-station-web/src/lib/components/Common/ToastContainer.svelte b/apps/ground-station-web/src/lib/components/Common/ToastContainer.svelte new file mode 100755 index 0000000..00ca62a --- /dev/null +++ b/apps/ground-station-web/src/lib/components/Common/ToastContainer.svelte @@ -0,0 +1,32 @@ + + +{#if $toasts.length > 0} +
+ {#each $toasts as toast (toast.id)} + toastStore.remove(toast.id)} + /> + {/each} +
+{/if} + + diff --git a/apps/ground-station-web/src/lib/components/HeadingCompass/HeadingCompass.svelte b/apps/ground-station-web/src/lib/components/HeadingCompass/HeadingCompass.svelte new file mode 100755 index 0000000..95aa4af --- /dev/null +++ b/apps/ground-station-web/src/lib/components/HeadingCompass/HeadingCompass.svelte @@ -0,0 +1,178 @@ + + +
+ + + + {#each lines as line} + + {/each} + + {#each texts as text} + + {text.text} + + {/each} + + + + + + + + + + {($headingTweened * RAD2DEG).toFixed(2)}° + + +
+ + diff --git a/apps/ground-station-web/src/lib/components/Navball/NavBall.svelte b/apps/ground-station-web/src/lib/components/Navball/NavBall.svelte new file mode 100755 index 0000000..f8b3b08 --- /dev/null +++ b/apps/ground-station-web/src/lib/components/Navball/NavBall.svelte @@ -0,0 +1,37 @@ + + +
+ +
+ + diff --git a/apps/ground-station-web/src/lib/components/Navball/NavBallScene.svelte b/apps/ground-station-web/src/lib/components/Navball/NavBallScene.svelte new file mode 100755 index 0000000..1b42ca4 --- /dev/null +++ b/apps/ground-station-web/src/lib/components/Navball/NavBallScene.svelte @@ -0,0 +1,67 @@ + + + + + + + + + + + + { + v.x *= 0.5; + v.y *= 0.5; + v.x -= 0.25; + v.y -= 0.25; + return v; + })} + /> + + + + +{#await map then tex} + + + + +{/await} diff --git a/apps/ground-station-web/src/lib/components/Navball/NavBallShader/fragment.glsl b/apps/ground-station-web/src/lib/components/Navball/NavBallShader/fragment.glsl new file mode 100755 index 0000000..4ed0a47 --- /dev/null +++ b/apps/ground-station-web/src/lib/components/Navball/NavBallShader/fragment.glsl @@ -0,0 +1,20 @@ +uniform sampler2D uTexture; + +varying vec2 vUv; +varying vec3 vNormal; +varying vec3 vViewPosition; + +void main() { + vec3 viewDirection = normalize(-vViewPosition); + + float fresnelEffect = pow(1.0 - dot(viewDirection, normalize(vNormal)), 2.0); + fresnelEffect = clamp(fresnelEffect, 0.0, 1.0); + + + vec4 textureColor = texture2D(uTexture, vUv) ; + vec4 edgeColor = vec4(0.0, 0.0, 0.0, 1.0); + + vec4 finalColor = mix(textureColor, edgeColor, fresnelEffect); + + gl_FragColor = finalColor; +} diff --git a/apps/ground-station-web/src/lib/components/Navball/NavBallShader/vertex.glsl b/apps/ground-station-web/src/lib/components/Navball/NavBallShader/vertex.glsl new file mode 100755 index 0000000..726fadf --- /dev/null +++ b/apps/ground-station-web/src/lib/components/Navball/NavBallShader/vertex.glsl @@ -0,0 +1,11 @@ +varying vec2 vUv; +varying vec3 vNormal; +varying vec3 vViewPosition; + +void main() { + vUv = uv; + vNormal = normalize(normalMatrix * normal); + vec4 pos = modelViewMatrix * vec4(position, 1.0); + vViewPosition = pos.xyz; + gl_Position = projectionMatrix * pos; +} diff --git a/apps/ground-station-web/src/lib/realtime/flightDirector.ts b/apps/ground-station-web/src/lib/realtime/flightDirector.ts new file mode 100755 index 0000000..0ac4680 --- /dev/null +++ b/apps/ground-station-web/src/lib/realtime/flightDirector.ts @@ -0,0 +1,9 @@ +export const defaultLaunchCoordinates = [45.4215, -75.6972]; +export const defaultLaunchCoords = { + lat: defaultLaunchCoordinates[0], + lng: defaultLaunchCoordinates[1] +}; +export const defaultTargetAltitude = 7000; +export const defaultRelativeAltitude = 360; + +// export const flightDirector = latestCollectionWritable(Collections.FlightDirector); diff --git a/apps/ground-station-web/src/lib/realtime/metrics.ts b/apps/ground-station-web/src/lib/realtime/metrics.ts new file mode 100755 index 0000000..247ad45 --- /dev/null +++ b/apps/ground-station-web/src/lib/realtime/metrics.ts @@ -0,0 +1,38 @@ +// ground_altitude = ($air?.altitude ?? 0) - $flightDirector.relativeAltitude; +// export const ground_altitude: Readable = derived( +// [flightDirector, air], +// ([$flightDirector, $air]) => { +// return ($air?.altitude ?? 0) - ($flightDirector?.relativeAltitude ?? 0); +// } +// ); + +// $: total_traveled_distance = haversineDistance($rocketPosition, $launchPoint); +// export const total_traveled_distance: Readable = derived( +// [rocketPos, flightDirector], +// ([$rocketPos, $flightDirector]) => { +// return haversineDistance( +// { lat: $rocketPos?.latitude ?? 0, lng: $rocketPos?.longitude ?? 0 }, +// { lat: $flightDirector?.latitude ?? 0, lng: $flightDirector?.longitude ?? 0 } +// ); +// } +// ); + +// For reference: +// function calcGForce(vf: number, t: number) { +// return vf / (t * 9.81); +// } + +// FIXME: The G-Force calculation is wrong since it's not given a proper time delta +// Should also be calculated on database view (?) + +// export const g_force: Readable = derived(nav, ($nav) => { +// if ($nav.velocity) { +// return calcGForce($nav.velocity[1], 0.1); +// } +// return 0; +// }); + +// const _g_force = 0; +// export const max_g_force: Readable = derived(g_force, ($g_force) => { +// return max($g_force, _g_force); +// }); diff --git a/apps/ground-station-web/src/lib/realtime/sse.test.ts b/apps/ground-station-web/src/lib/realtime/sse.test.ts new file mode 100644 index 0000000..ddc1fb6 --- /dev/null +++ b/apps/ground-station-web/src/lib/realtime/sse.test.ts @@ -0,0 +1,16 @@ +import { describe, expect, it } from 'vitest'; +import { getFreshnessStatus } from './sse'; + +describe('getFreshnessStatus', () => { + const now = 100_000; + + it('reports connecting before the first update', () => { + expect(getFreshnessStatus(null, now, 5_000, 60_000)).toBe('connecting'); + }); + + it('uses the configured live, stale, and offline boundaries', () => { + expect(getFreshnessStatus(now - 5_000, now, 5_000, 60_000)).toBe('live'); + expect(getFreshnessStatus(now - 5_001, now, 5_000, 60_000)).toBe('stale'); + expect(getFreshnessStatus(now - 60_001, now, 5_000, 60_000)).toBe('offline'); + }); +}); diff --git a/apps/ground-station-web/src/lib/realtime/sse.ts b/apps/ground-station-web/src/lib/realtime/sse.ts new file mode 100644 index 0000000..393b543 --- /dev/null +++ b/apps/ground-station-web/src/lib/realtime/sse.ts @@ -0,0 +1,96 @@ +import { browser } from '$app/environment'; +import { readable, type Readable } from 'svelte/store'; +import type { ConnectionStatus } from './types'; + +export type SseResource = { + data: T | null; + status: ConnectionStatus; + error: string | null; + lastUpdated: number | null; +}; + +type Options = { + event?: string; + staleAfterMs?: number; + offlineAfterMs?: number; +}; + +export function getFreshnessStatus( + lastUpdated: number | null, + now: number, + staleAfterMs: number, + offlineAfterMs: number +): ConnectionStatus { + if (lastUpdated === null) return 'connecting'; + const age = now - lastUpdated; + if (age > offlineAfterMs) return 'offline'; + if (age > staleAfterMs) return 'stale'; + return 'live'; +} + +export function createSseResource(url: string, options: Options = {}): Readable> { + const eventName = options.event ?? 'message'; + const staleAfterMs = options.staleAfterMs ?? 5_000; + const offlineAfterMs = options.offlineAfterMs ?? 60_000; + + return readable>( + { data: null, status: 'connecting', error: null, lastUpdated: null }, + (set) => { + if (!browser) return; + + let source: EventSource | null = null; + let data: T | null = null; + let lastUpdated: number | null = null; + let stopped = false; + let attempts = 0; + let reconnectTimer: ReturnType | null = null; + + const publish = (status: ConnectionStatus, error: string | null = null) => + set({ data, status, error, lastUpdated }); + + const connect = () => { + if (stopped) return; + publish(data ? 'stale' : 'connecting'); + source = new EventSource(url); + source.onopen = () => { + attempts = 0; + if (data) publish('live'); + }; + const handleMessage = (event: MessageEvent) => { + try { + data = JSON.parse(event.data) as T; + lastUpdated = Date.now(); + publish('live'); + } catch { + publish('error', 'Received malformed realtime data'); + } + }; + if (eventName === 'message') source.onmessage = handleMessage; + else source.addEventListener(eventName, handleMessage as EventListener); + source.onerror = () => { + source?.close(); + source = null; + attempts += 1; + publish(data ? 'stale' : 'offline', 'Realtime connection interrupted'); + const delay = Math.min(30_000, 500 * 2 ** Math.max(0, attempts - 1)); + reconnectTimer = setTimeout(connect, delay); + }; + }; + + const freshnessTimer = setInterval(() => { + if (!lastUpdated || !data) return; + const freshness = getFreshnessStatus(lastUpdated, Date.now(), staleAfterMs, offlineAfterMs); + if (freshness === 'offline') publish('offline', 'No recent data'); + else if (freshness === 'stale') publish('stale', 'Data is stale'); + }, 1_000); + + connect(); + return () => { + stopped = true; + source?.close(); + if (reconnectTimer) clearTimeout(reconnectTimer); + clearInterval(freshnessTimer); + }; + } + ); +} diff --git a/apps/ground-station-web/src/lib/realtime/types.ts b/apps/ground-station-web/src/lib/realtime/types.ts new file mode 100644 index 0000000..e8be546 --- /dev/null +++ b/apps/ground-station-web/src/lib/realtime/types.ts @@ -0,0 +1,49 @@ +export type ConnectionStatus = 'connecting' | 'live' | 'stale' | 'offline' | 'error'; + +export type TimedValue = { + value: T | null; + updatedAt: number | null; +}; + +export type FlightTransition = { + id: number; + kind: 'State' | 'Event'; + value: string; + timestamp: number | null; +}; + +export type TrajectoryPoint = { + timestamp: number; + lat: number; + lon: number; +}; + +export type OverviewSnapshot = { + generatedAt: number; + flight: { + state: FlightTransition | null; + event: FlightTransition | null; + altitudeM: TimedValue; + gnssAltitudeM: TimedValue; + verticalVelocityMps: TimedValue; + accelerationMps2: TimedValue; + position: TimedValue<{ lat: number; lon: number }>; + satellites: TimedValue; + }; + radio: { + updatedAt: number | null; + rssiDbm: number | null; + framesPerSecond: number; + packetLossPercent: number; + totalFrames: number; + }; + services: { + updatedAt: number; + running: number; + total: number; + degraded: string[]; + available: boolean; + }; + recentTransitions: FlightTransition[]; + trajectory: TrajectoryPoint[]; +}; diff --git a/apps/ground-station-web/src/lib/server/db.ts b/apps/ground-station-web/src/lib/server/db.ts new file mode 100755 index 0000000..ebac47b --- /dev/null +++ b/apps/ground-station-web/src/lib/server/db.ts @@ -0,0 +1,27 @@ +import { createClient, type Client } from "@libsql/client"; + +const LIBSQL_URL = process.env.DB_URL || "http://localhost:5001"; // Prefer Traefik DNS in deployment; override with DB_URL +let client: Client | null = null; + +/** + * Returns a singleton instance of the LibSQL database client. + * Initializes the client on the first call. + */ +export function getDbClient(): Client { + if (!client) { + client = createClient({ + url: LIBSQL_URL, + }); + console.log("LibSQL client initialized."); // More generic message now + } + return client; +} + +// Optional: Add a function to close the client if needed during app shutdown +export function closeDbClient(): void { + if (client) { + client.close(); + client = null; + console.log("LibSQL client closed."); + } +} \ No newline at end of file diff --git a/apps/ground-station-web/src/lib/server/services.ts b/apps/ground-station-web/src/lib/server/services.ts new file mode 100644 index 0000000..204d07e --- /dev/null +++ b/apps/ground-station-web/src/lib/server/services.ts @@ -0,0 +1,57 @@ +import http from 'node:http'; +import type { IncomingMessage } from 'node:http'; + +export type ServiceStatus = 'running' | 'exited' | 'restarting' | 'unknown'; +export type ServiceSummary = { name: string; status: ServiceStatus; composeService: string | null }; + +const DOCKER_SOCKET = '/var/run/docker.sock'; +const COMPOSE_PROJECT = process.env.COMPOSE_PROJECT_NAME ?? 'ground-station'; + +export function dockerRequest( + path: string, + method = 'GET', + body?: string +): Promise<{ status: number; text: () => Promise; json: () => Promise; ok: boolean }> { + return new Promise((resolve, reject) => { + const req = http.request( + { + socketPath: DOCKER_SOCKET, + path, + method, + headers: body + ? { 'Content-Type': 'application/json', 'Content-Length': Buffer.byteLength(body) } + : undefined + }, + (res: IncomingMessage) => { + const chunks: Buffer[] = []; + res.on('data', (chunk) => chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk))); + res.on('end', () => { + const buffer = Buffer.concat(chunks); + const status = res.statusCode ?? 500; + resolve({ + status, + ok: status >= 200 && status < 300, + text: async () => buffer.toString('utf8'), + json: async () => JSON.parse(buffer.toString('utf8') || 'null') + }); + }); + } + ); + req.on('error', reject); + if (body) req.write(body); + req.end(); + }); +} + +export async function listServices(): Promise { + const response = await dockerRequest('/containers/json?all=true'); + if (!response.ok) throw new Error(`Docker API error: ${response.status}`); + const containers: any[] = await response.json(); + return containers + .filter((container) => container.Labels?.['com.docker.compose.project'] === COMPOSE_PROJECT) + .map((container) => ({ + name: container.Names?.[0]?.replace(/^\//, '') ?? container.Id.substring(0, 12), + status: (container.State as ServiceStatus) ?? 'unknown', + composeService: container.Labels?.['com.docker.compose.service'] ?? null + })); +} diff --git a/apps/ground-station-web/src/lib/stores.ts b/apps/ground-station-web/src/lib/stores.ts new file mode 100755 index 0000000..8bd8175 --- /dev/null +++ b/apps/ground-station-web/src/lib/stores.ts @@ -0,0 +1,29 @@ +// import { cacheExchange, Client, fetchExchange, subscriptionExchange } from '@urql/svelte'; +import { writable, type Writable } from 'svelte/store'; +// import { createClient as createWSClient } from 'graphql-ws'; + +export const commandBoxToggle: Writable = writable(); + +// const graphQLWSEndpoint = window.location.origin.replace(/^http/, 'ws') + '/graphql'; +// const wsClient = createWSClient({ +// url: graphQLWSEndpoint +// }); + +// export const gqlClient = new Client({ +// url: '/graphql', +// exchanges: [ +// cacheExchange, +// fetchExchange, +// subscriptionExchange({ +// forwardSubscription(request) { +// const input = { ...request, query: request.query || '' }; +// return { +// subscribe(sink) { +// const unsubscribe = wsClient.subscribe(input, sink); +// return { unsubscribe }; +// } +// }; +// } +// }) +// ] +// }); diff --git a/apps/ground-station-web/src/lib/stores/toastStore.ts b/apps/ground-station-web/src/lib/stores/toastStore.ts new file mode 100755 index 0000000..fb944c0 --- /dev/null +++ b/apps/ground-station-web/src/lib/stores/toastStore.ts @@ -0,0 +1,33 @@ +import { writable } from 'svelte/store'; + +export type ToastType = 'info' | 'success' | 'warning' | 'error'; + +export interface Toast { + id: number; + message: string; + type: ToastType; + duration?: number; // Optional duration in ms; used by Carbon's ToastNotification +} + +const { subscribe, update } = writable([]); + +let nextId = 0; + +function addToast(message: string, type: ToastType = 'info', duration: number = 3000) { + const id = nextId++; + update((toasts) => [...toasts, { id, message, type, duration }]); +} + +function removeToast(id: number) { + update((toasts) => toasts.filter((toast) => toast.id !== id)); +} + +export const toastStore = { + subscribe, + add: addToast, + remove: removeToast, + info: (message: string, duration?: number) => addToast(message, 'info', duration), + success: (message: string, duration?: number) => addToast(message, 'success', duration), + warning: (message: string, duration?: number) => addToast(message, 'warning', duration), + error: (message: string, duration?: number) => addToast(message, 'error', duration) +}; \ No newline at end of file diff --git a/apps/ground-station-web/src/lib/stores/uiStore.ts b/apps/ground-station-web/src/lib/stores/uiStore.ts new file mode 100755 index 0000000..99865da --- /dev/null +++ b/apps/ground-station-web/src/lib/stores/uiStore.ts @@ -0,0 +1,3 @@ +import { writable } from 'svelte/store'; + +export const isImmersiveMode = writable(false); \ No newline at end of file diff --git a/apps/ground-station-web/src/routes/+layout.svelte b/apps/ground-station-web/src/routes/+layout.svelte new file mode 100644 index 0000000..1311d73 --- /dev/null +++ b/apps/ground-station-web/src/routes/+layout.svelte @@ -0,0 +1,407 @@ + + + + + {#if $isImmersiveMode} +
+ + {@render children?.()} +
+ {:else} +
+
+ + + RGSGROUND STATION + +
+ + {online ? 'CLIENT ONLINE' : 'CLIENT OFFLINE'} + + + +
+
+ + {#if mobileOpen} + + {/if} + + + +
{@render children?.()}
+
+ {/if} +
+ + diff --git a/apps/ground-station-web/src/routes/+layout.ts b/apps/ground-station-web/src/routes/+layout.ts new file mode 100755 index 0000000..d72160a --- /dev/null +++ b/apps/ground-station-web/src/routes/+layout.ts @@ -0,0 +1,3 @@ +export const ssr = false; +export const prerender = false; +export const csr = true; diff --git a/apps/ground-station-web/src/routes/+page.svelte b/apps/ground-station-web/src/routes/+page.svelte new file mode 100644 index 0000000..bd899f5 --- /dev/null +++ b/apps/ground-station-web/src/routes/+page.svelte @@ -0,0 +1,481 @@ + + + + Mission Overview | RGS + + + +
+
+
+

Mission Overview

+
REALTIME FLIGHT AND GROUND SYSTEM STATUS
+
+
{$overview.status}
+
+ + {#if !$overview.data} +
+ {#each Array(9) as _}
{/each} +
+ {:else} + {@const snapshot = $overview.data} +
+
CURRENT FLIGHT STATE
+
{snapshot.flight.state?.value ?? 'NO STATE'}
+
+ T+ {duration(snapshot.flight.state?.timestamp)} + EVENT {snapshot.flight.event?.value ?? '---'} + UPDATED {age(snapshot.flight.state?.timestamp)} +
+
+ +
+ + BARO ALTITUDE + {fixed(value(snapshot.flight.altitudeM))}M + {age(snapshot.flight.altitudeM.updatedAt)} + + + VERT VELOCITY + {fixed(value(snapshot.flight.verticalVelocityMps))}M/S + {age(snapshot.flight.verticalVelocityMps.updatedAt)} + + + ACCELERATION + {fixed(value(snapshot.flight.accelerationMps2), 2)}M/S² + {age(snapshot.flight.accelerationMps2.updatedAt)} + + + RADIO RSSI + {fixed(snapshot.radio.rssiDbm, 0)}DBM + {age(snapshot.radio.updatedAt)} + + + PACKET LOSS + {fixed(snapshot.radio.packetLossPercent, 2)}% + {snapshot.radio.framesPerSecond.toFixed(1)} FPS + + + GNSS SATELLITES + {fixed(value(snapshot.flight.satellites), 0)}SV + {age(snapshot.flight.satellites.updatedAt)} + +
+ +
+ +
+

Trajectory

+ OPEN MAP → +
+
+ {#if snapshot.trajectory.length > 1} + + + + + +
+ LAT {value(snapshot.flight.position)?.lat.toFixed(6)} + LON {value(snapshot.flight.position)?.lon.toFixed(6)} +
+ {:else} +
NO VALID POSITION TRACK
+ {/if} +
+
+ +
+

System Health

+ + {#if snapshot.services.degraded.length} +
+ ATTENTION{snapshot.services.degraded.join(', ')} +
+ {/if} +
+ +
+
+

Recent Transitions

+ VIEW HISTORY → +
+ {#if snapshot.recentTransitions.length} +
    + {#each snapshot.recentTransitions.slice(0, 8) as transition} +
  1. + {transition.kind}{transition.value} +
  2. + {/each} +
+ {:else}
NO FLIGHT TRANSITIONS RECORDED
{/if} +
+
+ {/if} +
+ + diff --git a/apps/ground-station-web/src/routes/altitude/+page.svelte b/apps/ground-station-web/src/routes/altitude/+page.svelte new file mode 100755 index 0000000..1543e63 --- /dev/null +++ b/apps/ground-station-web/src/routes/altitude/+page.svelte @@ -0,0 +1,248 @@ + + +
+
+
+

Altitude

+
BAROMETRIC AND GNSS ALTITUDE SOURCES
+
+
+ {connected ? 'LIVE' : error ? 'ERROR' : 'PAUSED'} + + +
+
+ {#if error}{/if} +
+
+ BAROMETER{latest?.barometer ? latest.barometer.altitude_m.toFixed(1) : '---'}M{latest?.barometer + ? `${mToFeet(latest.barometer.altitude_m).toFixed(1)} FT · ${latest.barometer.pressure_kpa.toFixed(3)} KPA` + : 'NO DATA'} +
+
+ SBG AIR{latest?.sbgAir ? latest.sbgAir.altitude_m.toFixed(1) : '---'}M{latest?.sbgAir + ? `${mToFeet(latest.sbgAir.altitude_m).toFixed(1)} FT · ${latest.sbgAir.pressure_kpa.toFixed(3)} KPA` + : 'NO DATA'} +
+
+ GNSS{latest?.gnss ? latest.gnss.altitude_m.toFixed(1) : '---'}M{latest?.gnss ? `${mToFeet(latest.gnss.altitude_m).toFixed(1)} FT · GPS` : 'NO DATA'} +
+
+
+
+

Altitude History

+ QNH {qnhKpa.toFixed(1)} KPA +
+
+
+
+ + diff --git a/apps/ground-station-web/src/routes/altitude/api/+server.ts b/apps/ground-station-web/src/routes/altitude/api/+server.ts new file mode 100755 index 0000000..a0a9665 --- /dev/null +++ b/apps/ground-station-web/src/routes/altitude/api/+server.ts @@ -0,0 +1,187 @@ +import { getDbClient } from '$lib/server/db'; +import { json, error } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; + +const DEFAULT_QNH_KPA = 102.5; // Estimated Timmin's ON average for August 2025 at CYTS + +function altitudeFromPressureKPa(pressureKpa: number, qnhKpa: number = DEFAULT_QNH_KPA): number { + if (!isFinite(pressureKpa) || pressureKpa <= 0) return NaN; + const ratio = pressureKpa / qnhKpa; + return 44330 * (1 - Math.pow(ratio, 0.190263)); +} + +function altitudeFromPressurePa(pressurePa: number, qnhKpa: number = DEFAULT_QNH_KPA): number { + return altitudeFromPressureKPa(pressurePa / 1000, qnhKpa); +} + +async function getLatestSnapshot(qnhKpa: number) { + const db = getDbClient(); + + const [baroLatest, airLatest, gnssLatest] = await Promise.all([ + // Barometer latest (RadioFrame timestamp) + db.execute({ + sql: + "SELECT rf.timestamp_epoch AS ts, b.id AS id, b.pressure_kpa AS pressure_kpa, b.temperature_celsius AS temperature_celsius FROM RadioFrame rf JOIN Barometer b ON rf.data_type = 'Barometer' AND rf.data_id = b.id ORDER BY rf.timestamp_epoch DESC LIMIT 1", + args: [] + }), + // SbgAir latest (RadioFrame timestamp) + db.execute({ + sql: + "SELECT rf.timestamp_epoch AS ts, a.id AS id, a.pressure_abs AS pressure_pa FROM RadioFrame rf JOIN SbgAir a ON rf.data_type = 'SbgAir' AND rf.data_id = a.id ORDER BY rf.timestamp_epoch DESC LIMIT 1", + args: [] + }), + // SbgGpsPos latest valid altitude > 0 (RadioFrame timestamp) + db.execute({ + sql: + "SELECT rf.timestamp_epoch AS ts, p.id AS id, p.altitude AS altitude_m FROM RadioFrame rf JOIN SbgGpsPos p ON rf.data_type = 'SbgGpsPos' AND rf.data_id = p.id WHERE p.altitude IS NOT NULL AND p.altitude > 0 ORDER BY rf.timestamp_epoch DESC LIMIT 1", + args: [] + }) + ]); + + const latestBaroRow: any = baroLatest.rows[0] ?? null; + const latestAirRow: any = airLatest.rows[0] ?? null; + const latestGnssRow: any = gnssLatest.rows[0] ?? null; + + const latest = { + barometer: latestBaroRow + ? { + ts: Number(latestBaroRow.ts), + pressure_kpa: Number(latestBaroRow.pressure_kpa), + temperature_celsius: latestBaroRow.temperature_celsius !== null ? Number(latestBaroRow.temperature_celsius) : null, + altitude_m: altitudeFromPressureKPa(Number(latestBaroRow.pressure_kpa), qnhKpa) + } + : null, + sbgAir: latestAirRow + ? { + ts: Number(latestAirRow.ts), + pressure_pa: Number(latestAirRow.pressure_pa), + pressure_kpa: Number(latestAirRow.pressure_pa) / 1000, + altitude_m: altitudeFromPressurePa(Number(latestAirRow.pressure_pa), qnhKpa) + } + : null, + gnss: latestGnssRow + ? { + ts: Number(latestGnssRow.ts), + altitude_m: Number(latestGnssRow.altitude_m) + } + : null + }; + + return latest; +} + +async function getSeries(minutes: number, qnhKpa: number, maxPoints: number) { + const db = getDbClient(); + const seconds = Number.isFinite(minutes) && minutes > 0 ? Math.floor(minutes * 60) : 900; + const targetPoints = Number.isFinite(maxPoints) && maxPoints > 0 ? Math.floor(maxPoints) : 1500; + const bucketSizeSec = Math.max(1, Math.ceil(seconds / targetPoints)); + + const [baroSeriesRes, airSeriesRes, gnssSeriesRes] = await Promise.all([ + // Barometer series joined with RadioFrame for timestamps, bucket-averaged + db.execute({ + sql: + "SELECT CAST(rf.timestamp_epoch / ? AS INTEGER) * ? AS bucket_ts, AVG(b.pressure_kpa) AS pressure_kpa FROM RadioFrame rf JOIN Barometer b ON rf.data_type = 'Barometer' AND rf.data_id = b.id WHERE rf.timestamp_epoch >= strftime('%s','now') - ? GROUP BY bucket_ts ORDER BY bucket_ts ASC", + args: [bucketSizeSec, bucketSizeSec, seconds] + }), + // SbgAir series bucket-averaged + db.execute({ + sql: + "SELECT CAST(rf.timestamp_epoch / ? AS INTEGER) * ? AS bucket_ts, AVG(a.pressure_abs) AS pressure_pa FROM RadioFrame rf JOIN SbgAir a ON rf.data_type = 'SbgAir' AND rf.data_id = a.id WHERE rf.timestamp_epoch >= strftime('%s','now') - ? GROUP BY bucket_ts ORDER BY bucket_ts ASC", + args: [bucketSizeSec, bucketSizeSec, seconds] + }), + // GNSS series (ignore <= 0), bucket-averaged + db.execute({ + sql: + "SELECT CAST(rf.timestamp_epoch / ? AS INTEGER) * ? AS bucket_ts, AVG(p.altitude) AS altitude_m FROM RadioFrame rf JOIN SbgGpsPos p ON rf.data_type = 'SbgGpsPos' AND rf.data_id = p.id WHERE rf.timestamp_epoch >= strftime('%s','now') - ? AND p.altitude IS NOT NULL AND p.altitude > 0 GROUP BY bucket_ts ORDER BY bucket_ts ASC", + args: [bucketSizeSec, bucketSizeSec, seconds] + }) + ]); + + // Convert to Carbon line chart format + const data: Array<{ group: string; date: Date; value: number }> = []; + + for (const row of baroSeriesRes.rows as any[]) { + const ts = Number((row as any).bucket_ts); + const pressureKpa = Number((row as any).pressure_kpa); + const alt = altitudeFromPressureKPa(pressureKpa, qnhKpa); + if (isFinite(alt)) data.push({ group: 'Altitude (Barometer)', date: new Date(ts * 1000), value: alt }); + } + for (const row of airSeriesRes.rows as any[]) { + const ts = Number((row as any).bucket_ts); + const pressurePa = Number((row as any).pressure_pa); + const alt = altitudeFromPressurePa(pressurePa, qnhKpa); + if (isFinite(alt)) data.push({ group: 'Altitude (SBG Air)', date: new Date(ts * 1000), value: alt }); + } + for (const row of gnssSeriesRes.rows as any[]) { + const ts = Number((row as any).bucket_ts); + const alt = Number((row as any).altitude_m); + if (isFinite(alt) && alt > 0) data.push({ group: 'Altitude (GNSS)', date: new Date(ts * 1000), value: alt }); + } + + return { data }; +} + +export const GET: RequestHandler = async ({ url, request }) => { + const minutes = Number(url.searchParams.get('minutes') || '999'); + const maxPoints = Number(url.searchParams.get('max_points') || '1500'); + // Ignore any client-provided qnh_kpa. Use DEFAULT_QNH_KPA. + const qnhKpa = DEFAULT_QNH_KPA; + const useSSE = url.searchParams.get('sse') === '1'; + + if (useSSE) { + const encoder = new TextEncoder(); + const activeControllers: Set = (globalThis as any).__altitudeControllers ?? new Set(); + (globalThis as any).__altitudeControllers = activeControllers; + let poller: NodeJS.Timeout | null = (globalThis as any).__altitudePoller ?? null; + const stream = new ReadableStream({ + start(controller) { + activeControllers.add(controller); + const poll = async () => { + try { + const [latest, series] = await Promise.all([getLatestSnapshot(qnhKpa), getSeries(minutes, qnhKpa, maxPoints)]); + const chunk = encoder.encode(`event: altitude\n` + `data: ${JSON.stringify({ latest, series, qnh_kpa: qnhKpa })}\n\n`); + for (const c of Array.from(activeControllers)) { + try { c.enqueue(chunk); } catch { try { c.close(); } catch { } activeControllers.delete(c); } + } + } catch (e) { + const err = encoder.encode(`event: error\n` + `data: {"message":"Failed to fetch altitude data"}\n\n`); + for (const c of Array.from(activeControllers)) { + try { c.enqueue(err); } catch { try { c.close(); } catch { } activeControllers.delete(c); } + } + console.error('Altitude central poll error:', e); + } + }; + if (!poller) { + poller = setInterval(poll, 1000); + (globalThis as any).__altitudePoller = poller; + poll(); + } + request.signal.addEventListener('abort', () => { + activeControllers.delete(controller); + try { controller.close(); } catch { } + if (activeControllers.size === 0 && poller) { + clearInterval(poller); + (globalThis as any).__altitudePoller = null; + } + }); + }, + cancel() { } + }); + + return new Response(stream, { + headers: { + 'Content-Type': 'text/event-stream', + 'Cache-Control': 'no-cache, no-transform', + Connection: 'keep-alive' + } + }); + } + + try { + const [latest, series] = await Promise.all([getLatestSnapshot(qnhKpa), getSeries(minutes, qnhKpa, maxPoints)]); + return json({ latest, series, qnh_kpa: qnhKpa }); + } catch (e: any) { + console.error('Altitude API GET error:', e); + throw error(500, `Failed to fetch altitude data: ${e.message}`); + } +}; diff --git a/apps/ground-station-web/src/routes/commands/+page.server.ts b/apps/ground-station-web/src/routes/commands/+page.server.ts new file mode 100755 index 0000000..9b5b622 --- /dev/null +++ b/apps/ground-station-web/src/routes/commands/+page.server.ts @@ -0,0 +1,151 @@ +// This file will handle loading existing commands and processing the dispatch form action. +import { getDbClient } from '$lib/server/db'; +import { fail } from '@sveltejs/kit'; +import type { Actions, PageServerLoad } from './$types'; + +// Load existing commands +export const load: PageServerLoad = async () => { + console.log('Loading commands for /commands page...'); + const db = getDbClient(); + try { + const result = await db.execute({ + sql: 'SELECT id, command_type, parameters, status, created_at, queued_at, sent_at, attempts, error_message, source_service FROM OutgoingCommand ORDER BY created_at DESC LIMIT 100', + args: [] + }); + console.log(`Loaded ${result.rows.length} commands.`); + // Convert row data if necessary (e.g., timestamps) + const commands = result.rows.map(row => ({ + ...row, + // Ensure numeric fields are numbers, text is string, etc. + id: Number(row.id), + created_at: Number(row.created_at), + queued_at: row.queued_at ? Number(row.queued_at) : null, + sent_at: row.sent_at ? Number(row.sent_at) : null, + attempts: Number(row.attempts), + // Keep text fields as is (assuming they come correctly typed from libsql client) + command_type: String(row.command_type), + parameters: row.parameters as string | null, // Type assertion might be needed depending on client + status: String(row.status), + error_message: row.error_message as string | null, + source_service: String(row.source_service) + })); + return { commands }; + } catch (e: any) { + console.error('Error loading commands:', e); + // Return empty array or an error state + return { commands: [], error: 'Failed to load commands.' }; + } +}; + +// Handle form submission for dispatching new commands and deleting existing ones +export const actions: Actions = { + dispatch: async ({ request }) => { + const formData = await request.formData(); + const command_type = formData.get('command_type') as string; + + let parameters: string | null = null; + const params: Record = {}; + + try { + switch (command_type) { + case 'DeployDrogue': + case 'DeployMain': + // These commands might not need user parameters, set defaults if needed + params.val = true; // Example default + break; + case 'PowerDown': + const board = formData.get('param_board') as string; + if (!board) throw new Error('Board parameter is required for PowerDown.'); + params.board = board; + break; + case 'PowerUpCamera': + // no parameters + break; + case 'PowerDownCamera': + // no parameters + break; + case 'RadioRateChange': + const rate = formData.get('param_rate') as string; + if (!rate) throw new Error('Rate parameter is required for RadioRateChange.'); + params.rate = rate; + break; + case 'Ping': + // No parameters needed + break; + default: + return fail(400, { error: `Unknown command type: ${command_type}` }); + } + + // Only serialize parameters if needed + if (Object.keys(params).length > 0) { + parameters = JSON.stringify(params); + } + + const db = getDbClient(); + const now = Math.floor(Date.now() / 1000); + const source_service = 'rgs-web-commands'; + + console.log(`Dispatching command: ${command_type} with params: ${parameters}`); + + await db.execute({ + sql: 'INSERT INTO OutgoingCommand (command_type, parameters, status, created_at, attempts, source_service) VALUES (?, ?, ?, ?, ?, ?)', + args: [command_type, parameters, 'Pending', now, 0, source_service] + }); + + console.log('Command inserted successfully.'); + return { success: true, message: `Command '${command_type}' dispatched.` }; + + } catch (e: any) { + console.error('Error dispatching command:', e); + return fail(500, { error: e.message || 'Failed to dispatch command.' }); + } + }, + + // Action to delete a single command + deleteSingle: async ({ request }) => { + const formData = await request.formData(); + const idValue = formData.get('id'); + + if (!idValue || typeof idValue !== 'string') { + return fail(400, { error: 'Invalid or missing command ID for deletion.' }); + } + const id = idValue as string; + + const db = getDbClient(); + try { + console.log(`Deleting command with ID: ${id}`); + const result = await db.execute({ + sql: 'DELETE FROM OutgoingCommand WHERE id = ?', + args: [id] + }); + + if (result.rowsAffected === 0) { + console.warn(`Command with ID ${id} not found for deletion.`); + return fail(404, { error: `Command with ID ${id} not found.` }); + } + + console.log(`Command ${id} deleted successfully.`); + return { success: true, message: `Command ${id} deleted.` }; + } catch (e: any) { + console.error(`Error deleting command ${id}:`, e); + return fail(500, { error: e.message || `Failed to delete command ${id}.` }); + } + }, + + // Action to delete all commands + deleteAll: async () => { + const db = getDbClient(); + try { + console.log('Deleting all commands...'); + const result = await db.execute({ + sql: 'DELETE FROM OutgoingCommand', + args: [] + }); + console.log(`${result.rowsAffected} commands deleted.`); + return { success: true, message: `All (${result.rowsAffected}) commands deleted.` }; + } catch (e: any) { + console.error('Error deleting all commands:', e); + return fail(500, { error: e.message || 'Failed to delete all commands.' }); + } + } +}; \ No newline at end of file diff --git a/apps/ground-station-web/src/routes/commands/+page.svelte b/apps/ground-station-web/src/routes/commands/+page.svelte new file mode 100755 index 0000000..665e155 --- /dev/null +++ b/apps/ground-station-web/src/routes/commands/+page.svelte @@ -0,0 +1,310 @@ + + + + + + +

Dispatch New Command

+
{ + dispatching = true; + return async ({ update }) => { + await update({ reset: false }); + }; + }} + > + ({ id: c, text: c }))} + selectedId={selectedCommand} + label="Command Type" + on:select={(e) => (selectedCommand = e.detail.selectedItem.id)} + size="sm" + /> + + {#if needsParams} +
+

Parameters

+ {#if currentParams.includes('board')} + ({ id: b, text: b }))} + selectedId={param_board} + label="Target Board" + on:select={(e) => (param_board = e.detail.selectedItem.id)} + size="sm" + /> + + {/if} + {#if currentParams.includes('rate')} + ({ id: r, text: r }))} + selectedId={param_rate} + label="Radio Rate" + on:select={(e) => (param_rate = e.detail.selectedItem.id)} + size="sm" + /> + + {/if} +
+ {/if} +
+ +
+ +
+
+
+ + + + +
+

Command History (Last 100)

+
+ +
{ + if ( + !requestDelete( + formElement, + 'Delete all command history? This action cannot be undone.', + cancel + ) + ) + return; + return async ({ update }) => { + await update(); + }; + }} + style="display:inline-block; margin-left: 0.5rem;" + > + +
+
+
+ {#if data.error} + + {/if} + + + + ID + Type + Params + Status + Attempts + Created + Queued + Sent + Source + Error + Actions + + + + {#each data.commands as command (command.id)} + + {command.id} + {command.command_type} + {command.parameters || '-'} + {command.status} + {command.attempts} + {formatTimestamp(command.created_at)} + {formatTimestamp(command.queued_at)} + {formatTimestamp(command.sent_at)} + {command.source_service} + {command.error_message || '-'} + +
{ + if ( + !requestDelete( + formElement, + `Delete command ${command.id}? This action cannot be undone.`, + cancel + ) + ) + return; + return async ({ update }) => { + await update(); + }; + }} + class="inline-block" + > + + + +
+
+ {:else} + + No commands found. + + {/each} +
+
+
+
+
+
+ + (pendingDeleteForm = null)} +/> diff --git a/apps/ground-station-web/src/routes/debug/+layout.svelte b/apps/ground-station-web/src/routes/debug/+layout.svelte new file mode 100755 index 0000000..250394e --- /dev/null +++ b/apps/ground-station-web/src/routes/debug/+layout.svelte @@ -0,0 +1,9 @@ + + + + {@render children?.()} + diff --git a/apps/ground-station-web/src/routes/debug/coord-mock/+page.svelte b/apps/ground-station-web/src/routes/debug/coord-mock/+page.svelte new file mode 100755 index 0000000..83fbf87 --- /dev/null +++ b/apps/ground-station-web/src/routes/debug/coord-mock/+page.svelte @@ -0,0 +1,174 @@ + + +
+
+ +
+ +

Coordinate Mock

+
+
Lat: {selectedLat != null ? selectedLat.toFixed(6) : '—'}
+
Lon: {selectedLon != null ? selectedLon.toFixed(6) : '—'}
+
+ + + +
+ +
+ + {#if notice} + + {/if} +
+
+
+ + diff --git a/apps/ground-station-web/src/routes/debug/coord-mock/api/+server.ts b/apps/ground-station-web/src/routes/debug/coord-mock/api/+server.ts new file mode 100755 index 0000000..c3ffba4 --- /dev/null +++ b/apps/ground-station-web/src/routes/debug/coord-mock/api/+server.ts @@ -0,0 +1,119 @@ +import { getDbClient } from '$lib/server/db'; +import { json, error } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; + +function nowEpoch(): number { + return Math.floor(Date.now() / 1000); +} + +function clampAltitudeMeters(v: unknown): number { + const n = Number(v); + if (!Number.isFinite(n)) return 0; + return Math.max(0, Math.min(5000, Math.round(n))); +} + +function pressureKpaFromAltitude(altitudeMeters: number, qnhKpa: number = 102.5): number { + // Invert standard atmosphere: p = p0 * (1 - h/44330)^(1/0.190263) + const ratio = 1 - Math.max(0, altitudeMeters) / 44330; + const p = qnhKpa * Math.pow(Math.max(1e-6, ratio), 1 / 0.190263); + return p; +} + +function normalizeLatLon(v: unknown, min: number, max: number): number { + const n = Number(v); + if (!Number.isFinite(n)) throw error(400, 'Invalid coordinate'); + if (n < min || n > max) throw error(400, 'Coordinate out of range'); + return n; +} + +export const POST: RequestHandler = async ({ request }) => { + const db = getDbClient(); + const body = await request.json().catch(() => null); + if (!body) throw error(400, 'Invalid JSON'); + + const latitude = normalizeLatLon(body.lat, -90, 90); + const longitude = normalizeLatLon(body.lon, -180, 180); + const altitude_m = clampAltitudeMeters(body.alt); + + const ts = nowEpoch(); + + const transaction = await db.transaction("write"); + try { + // Insert SbgGpsPos + const gpsRes = await transaction.execute({ + sql: `INSERT INTO SbgGpsPos (latitude, longitude, time_of_week, undulation, altitude, time_stamp, status, latitude_accuracy, longitude_accuracy, altitude_accuracy, num_sv_used, base_station_id, differential_age) + VALUES (?, ?, 0, 0.0, ?, ?, 'OK', 0.0, 0.0, 0.0, 0, 0, 0)`, + args: [latitude, longitude, altitude_m, ts] + }); + const gpsId = Number(gpsRes.lastInsertRowid ?? 0); + + // Insert SbgEkfNav + const ekfRes = await transaction.execute({ + sql: `INSERT INTO SbgEkfNav (status, velocity_north, velocity_east, velocity_down, velocity_std_dev_north, velocity_std_dev_east, velocity_std_dev_down, position_latitude, position_longitude, position_altitude, position_std_dev_latitude, position_std_dev_longitude, position_std_dev_altitude, time_stamp, undulation) + VALUES ('OK', 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ?, ?, ?, 0.0, 0.0, 0.0, ?, 0.0)`, + args: [latitude, longitude, altitude_m, ts] + }); + + // Insert SbgAir + const airRes = await transaction.execute({ + sql: `INSERT INTO SbgAir (time_stamp, status, pressure_abs, altitude, pressure_diff, true_airspeed, air_temperature) + VALUES (?, 'OK', ?, ?, NULL, NULL, NULL)`, + args: [ts, Math.round(pressureKpaFromAltitude(altitude_m) * 1000), altitude_m] + }); + const airId = Number(airRes.lastInsertRowid ?? 0); + + // Insert Barometer + const baroRes = await transaction.execute({ + sql: `INSERT INTO Barometer (pressure_kpa, temperature_celsius) + VALUES (?, NULL)`, + args: [pressureKpaFromAltitude(altitude_m)] + }); + const baroId = Number(baroRes.lastInsertRowid ?? 0); + + // Create RadioFrame rows for each insert so downstream queries can join on timestamps + const isoTs = new Date(ts * 1000).toISOString(); + await transaction.execute({ + sql: `INSERT INTO RadioFrame (timestamp, timestamp_epoch, node, data_type, data_id, millis_since_start) + VALUES (?, ?, 'Gps', 'SbgGpsPos', ?, NULL)`, + args: [isoTs, ts, gpsId] + }); + await transaction.execute({ + sql: `INSERT INTO RadioFrame (timestamp, timestamp_epoch, node, data_type, data_id, millis_since_start) + VALUES (?, ?, 'Sbg', 'SbgAir', ?, NULL)`, + args: [isoTs, ts, airId] + }); + await transaction.execute({ + sql: `INSERT INTO RadioFrame (timestamp, timestamp_epoch, node, data_type, data_id, millis_since_start) + VALUES (?, ?, 'Barometer', 'Barometer', ?, NULL)`, + args: [isoTs, ts, baroId] + }); + + // Commit the transaction + await transaction.commit(); + + return json({ + success: true, + inserted: { + gps: gpsRes.rowsAffected, + ekf: ekfRes.rowsAffected, + air: airRes.rowsAffected, + baro: baroRes.rowsAffected + }, + lat: latitude, + lon: longitude, + alt: altitude_m + }); + } catch (e: any) { + // Rollback on error + try { + await transaction.rollback(); + } catch (rollbackError) { + console.error('Rollback failed:', rollbackError); + } + console.error('Coord-mock insert failed', e); + throw error(500, e?.message ?? 'Insert failed'); + } finally { + // Always close the transaction + transaction.close(); + } +}; diff --git a/apps/ground-station-web/src/routes/imu/+page.svelte b/apps/ground-station-web/src/routes/imu/+page.svelte new file mode 100755 index 0000000..32a0015 --- /dev/null +++ b/apps/ground-station-web/src/routes/imu/+page.svelte @@ -0,0 +1,255 @@ + + + + + + +
+

IMU Metrics

+
+ + {#if connected} + + {:else} + + {/if} +
+
+ + {#if error} + + {/if} + + + + + +

Peak Accel

+
+ {stats ? stats.peak_accel_mps2.toFixed(2) : '—'} m/s² +
+ from sensor +
+
+ + +

Peak Accel (Δv/Δt)

+
+ {stats ? stats.peak_accel_from_dvdt_mps2.toFixed(2) : '—'} m/s² +
+ from integration +
+
+ + +

Peak |ω|

+
+ {stats ? stats.peak_gyro_rads.toFixed(2) : '—'} rad/s +
+ gyro +
+
+ + +

Peak Rate (Δθ/Δt)

+
+ {stats ? stats.peak_rate_from_dadt_rads.toFixed(2) : '—'} rad/s +
+ from integration +
+
+
+ + + + +

Cumulative Δv

+
+ {stats ? stats.cumulative_delta_v_mps.toFixed(2) : '—'} m/s +
+
+
+ + +

Rotation

+
+ {stats ? stats.cumulative_rotation_turns.toFixed(2) : '—'} turns +
+
+
+ + +

IMU Temperature

+
+ {stats && stats.latest_temperature_c != null + ? stats.latest_temperature_c.toFixed(1) + : '—'} °C +
+
+
+
+ + + + + + + +
+
+
+
diff --git a/apps/ground-station-web/src/routes/imu/api/+server.ts b/apps/ground-station-web/src/routes/imu/api/+server.ts new file mode 100755 index 0000000..e420b3c --- /dev/null +++ b/apps/ground-station-web/src/routes/imu/api/+server.ts @@ -0,0 +1,187 @@ +import { getDbClient } from '$lib/server/db'; +import { json, error } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; + +const encoder = new TextEncoder(); +const activeControllers = new Set(); +let pollIntervalId: NodeJS.Timeout | null = null; +let lastPayload: any = null; + +type ImuRow = { + ts: number; + accelerometer_x: number | null; + accelerometer_y: number | null; + accelerometer_z: number | null; + gyroscope_x: number | null; + gyroscope_y: number | null; + gyroscope_z: number | null; + delta_velocity_x: number | null; + delta_velocity_y: number | null; + delta_velocity_z: number | null; + delta_angle_x: number | null; + delta_angle_y: number | null; + delta_angle_z: number | null; + temperature: number | null; +}; + +function magnitude(x: number, y: number, z: number): number { + return Math.sqrt(x * x + y * y + z * z); +} + +async function fetchImuSeries(minutes: number): Promise { + const db = getDbClient(); + const seconds = Number.isFinite(minutes) && minutes > 0 ? Math.floor(minutes * 60) : 600; + const res = await db.execute({ + sql: `SELECT rf.timestamp_epoch AS ts, + i.accelerometer_x, i.accelerometer_y, i.accelerometer_z, + i.gyroscope_x, i.gyroscope_y, i.gyroscope_z, + i.delta_velocity_x, i.delta_velocity_y, i.delta_velocity_z, + i.delta_angle_x, i.delta_angle_y, i.delta_angle_z, + i.temperature AS temperature + FROM RadioFrame rf + JOIN SbgImu i ON rf.data_type = 'SbgImu' AND rf.data_id = i.id + WHERE rf.timestamp_epoch >= strftime('%s','now') - ? + ORDER BY rf.timestamp_epoch ASC`, + args: [seconds] + }); + return res.rows as unknown as ImuRow[]; +} + +function buildMetrics(rows: ImuRow[]) { + const accelChart: Array<{ group: string; date: Date; value: number }> = []; + const gyroChart: Array<{ group: string; date: Date; value: number }> = []; + + let prev: ImuRow | null = null; + let prevAccelDvdt = 0; + let cumDeltaV = 0; + let cumRotation = 0; + + let peakAccel = 0; // m/s^2 from accelerometer + let peakAccelDvdt = 0; // m/s^2 from delta_v/dt + let peakGyro = 0; // rad/s from gyro + let peakOmegaDadt = 0; // rad/s from delta_angle/dt + let latestTemp: number | null = null; + + for (const r of rows) { + const date = new Date(r.ts * 1000); + const ax = Number(r.accelerometer_x ?? 0); + const ay = Number(r.accelerometer_y ?? 0); + const az = Number(r.accelerometer_z ?? 0); + const gx = Number(r.gyroscope_x ?? 0); + const gy = Number(r.gyroscope_y ?? 0); + const gz = Number(r.gyroscope_z ?? 0); + const dvx = Number(r.delta_velocity_x ?? 0); + const dvy = Number(r.delta_velocity_y ?? 0); + const dvz = Number(r.delta_velocity_z ?? 0); + const dax = Number(r.delta_angle_x ?? 0); + const day = Number(r.delta_angle_y ?? 0); + const daz = Number(r.delta_angle_z ?? 0); + + latestTemp = r.temperature ?? latestTemp; + + const accelMag = magnitude(ax, ay, az); + peakAccel = Math.max(peakAccel, accelMag); + accelChart.push({ group: 'Accel |a| (sensor)', date, value: accelMag }); + + const gyroMag = magnitude(gx, gy, gz); + peakGyro = Math.max(peakGyro, gyroMag); + gyroChart.push({ group: 'Gyro |ω| (sensor)', date, value: gyroMag }); + + if (prev && r.ts > prev.ts) { + const dt = Math.max(1e-6, r.ts - prev.ts); + const dvMag = magnitude(dvx, dvy, dvz); + const daMag = magnitude(dax, day, daz); + + const accelDvdt = dvMag / dt; + const omegaDadt = daMag / dt; + + peakAccelDvdt = Math.max(peakAccelDvdt, accelDvdt); + peakOmegaDadt = Math.max(peakOmegaDadt, omegaDadt); + accelChart.push({ group: 'Accel |Δv/Δt|', date, value: accelDvdt }); + gyroChart.push({ group: 'Rate |Δθ/Δt|', date, value: omegaDadt }); + + cumDeltaV += dvMag; + cumRotation += daMag; + + // Jerk could be added later if needed using prevAccelDvdt + prevAccelDvdt = accelDvdt; + } + + prev = r; + } + + const stats = { + peak_accel_mps2: peakAccel, + peak_accel_from_dvdt_mps2: peakAccelDvdt, + peak_gyro_rads: peakGyro, + peak_rate_from_dadt_rads: peakOmegaDadt, + cumulative_delta_v_mps: cumDeltaV, + cumulative_rotation_turns: cumRotation / (2 * Math.PI), + latest_temperature_c: latestTemp + }; + + return { accelChart, gyroChart, stats }; +} + +async function getPayload(minutes: number) { + const series = await fetchImuSeries(minutes); + const { accelChart, gyroChart, stats } = buildMetrics(series); + return { series: { accel: accelChart, gyro: gyroChart }, stats }; +} + +export const GET: RequestHandler = async ({ url, request }) => { + const minutes = Number(url.searchParams.get('minutes') || '999'); + const useSSE = url.searchParams.get('sse') === '1'; + + if (useSSE) { + const stream = new ReadableStream({ + start(controller) { + activeControllers.add(controller); + if (!pollIntervalId) { + const poll = async () => { + try { + const payload = await getPayload(minutes); + lastPayload = payload; + const chunk = encoder.encode(`event: imu\n` + `data: ${JSON.stringify(payload)}\n\n`); + for (const c of Array.from(activeControllers)) { + try { c.enqueue(chunk); } catch { try { c.close(); } catch { } activeControllers.delete(c); } + } + } catch (e) { + const err = encoder.encode(`event: error\n` + `data: {"message":"Failed to compute IMU metrics"}\n\n`); + for (const c of Array.from(activeControllers)) { + try { c.enqueue(err); } catch { try { c.close(); } catch { } activeControllers.delete(c); } + } + console.error('IMU central poll error', e); + } + }; + pollIntervalId = setInterval(poll, 2000); + poll(); + } else if (lastPayload) { + controller.enqueue(encoder.encode(`event: imu\n` + `data: ${JSON.stringify(lastPayload)}\n\n`)); + } + request.signal.addEventListener('abort', () => { + activeControllers.delete(controller); + try { controller.close(); } catch { } + if (activeControllers.size === 0 && pollIntervalId) { clearInterval(pollIntervalId); pollIntervalId = null; } + }); + }, + cancel() { } + }); + + return new Response(stream, { + headers: { + 'Content-Type': 'text/event-stream', + 'Cache-Control': 'no-cache, no-transform', + Connection: 'keep-alive' + } + }); + } + + try { + const payload = await getPayload(minutes); + return json(payload); + } catch (e: any) { + console.error('IMU API error', e); + throw error(500, `Failed to fetch IMU metrics: ${e.message}`); + } +}; diff --git a/apps/ground-station-web/src/routes/map-downloader/+page.svelte b/apps/ground-station-web/src/routes/map-downloader/+page.svelte new file mode 100755 index 0000000..4a8a7ea --- /dev/null +++ b/apps/ground-station-web/src/routes/map-downloader/+page.svelte @@ -0,0 +1,481 @@ + + +
+
+ +
+ +

Download Settings

+ + +
+ + + + + + +
+ + {#if job?.status === 'processing'} + + {/if} +
+ + {#if job} +
+
+
0 ? (job.downloaded / job.total) * 100 : 0}%`} + >
+
+
{job.downloaded}/{job.total} tiles
+
+
Lat: {job.lat.toFixed(6)}
+
Lon: {job.lon.toFixed(6)}
+
Zoom: {job.minZoom}-{job.maxZoom}
+
Radius: {job.radius.toFixed(1)}km
+
+ {#if job.status === 'failed'} +
+ +
+ {/if} + {#if job.status !== 'processing'} +
+ +
+ {/if} +
+ {/if} + + {#if job?.status} + + {/if} +
+
+
+ + diff --git a/apps/ground-station-web/src/routes/mock/+page.svelte b/apps/ground-station-web/src/routes/mock/+page.svelte new file mode 100755 index 0000000..b246628 --- /dev/null +++ b/apps/ground-station-web/src/routes/mock/+page.svelte @@ -0,0 +1,356 @@ + + + + + +

Mock SBG IMU Data Inserter

+
+
+ + + + +

Device Sensors Control

+ {#if sensorError} + + {/if} + {#if !isListeningToSensors} + + {:else} + + {/if} +

+ Uses device orientation (alpha, beta, gamma) for gyroscope fields; may require + permissions. +

+
+
+
+ + + + +
{ + e.preventDefault(); + handleSubmit(); + }} + > + + + + + + +

+ Accelerometers (m/s²) +

+ + + + + + +

+ Gyroscopes (α, β, γ) +

+ + + + + + +

+ Delta Velocity (m/s) +

+ + + + + + +

+ Delta Angle (rad) +

+ + + + + + + + + + + + + + + +
+
+
+
+
diff --git a/apps/ground-station-web/src/routes/mock/api/+server.ts b/apps/ground-station-web/src/routes/mock/api/+server.ts new file mode 100755 index 0000000..802928f --- /dev/null +++ b/apps/ground-station-web/src/routes/mock/api/+server.ts @@ -0,0 +1,76 @@ +import { getDbClient } from '$lib/server/db'; // Assuming this path is correct +import { json, error as svelteKitError } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; + +// Define the expected payload structure from the client +interface MockSbgImuPayload { + time_stamp: number; + status: string; + accelerometer_x?: number | null; + accelerometer_y?: number | null; + accelerometer_z?: number | null; + gyroscope_x?: number | null; + gyroscope_y?: number | null; + gyroscope_z?: number | null; + delta_velocity_x?: number | null; + delta_velocity_y?: number | null; + delta_velocity_z?: number | null; + delta_angle_x?: number | null; + delta_angle_y?: number | null; + delta_angle_z?: number | null; + temperature?: number | null; +} + +export const POST: RequestHandler = async ({ request }) => { + try { + const payload = await request.json() as MockSbgImuPayload; + + // Basic validation (can be more extensive) + if (!payload.time_stamp || !payload.status) { + return svelteKitError(400, 'Missing required fields: time_stamp and status'); + } + + const db = getDbClient(); + + const result = await db.execute({ + sql: `INSERT INTO SbgImu ( + time_stamp, status, + accelerometer_x, accelerometer_y, accelerometer_z, + gyroscope_x, gyroscope_y, gyroscope_z, + delta_velocity_x, delta_velocity_y, delta_velocity_z, + delta_angle_x, delta_angle_y, delta_angle_z, + temperature + ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);`, + args: [ + payload.time_stamp, + payload.status, + payload.accelerometer_x ?? null, + payload.accelerometer_y ?? null, + payload.accelerometer_z ?? null, + payload.gyroscope_x ?? null, + payload.gyroscope_y ?? null, + payload.gyroscope_z ?? null, + payload.delta_velocity_x ?? null, + payload.delta_velocity_y ?? null, + payload.delta_velocity_z ?? null, + payload.delta_angle_x ?? null, + payload.delta_angle_y ?? null, + payload.delta_angle_z ?? null, + payload.temperature ?? null, + ], + }); + + return json({ + message: 'Mock IMU data inserted successfully', + rowId: result.lastInsertRowid ? String(result.lastInsertRowid) : null + }, { status: 201 }); + + } catch (e: any) { + console.error("Error inserting mock IMU data:", e); + // Check for specific error types if needed, e.g., JSON parsing errors + if (e instanceof SyntaxError) { + return svelteKitError(400, 'Invalid JSON payload'); + } + return svelteKitError(500, e.message || 'Failed to insert mock IMU data'); + } +}; \ No newline at end of file diff --git a/apps/ground-station-web/src/routes/mock/types.ts b/apps/ground-station-web/src/routes/mock/types.ts new file mode 100755 index 0000000..87dd798 --- /dev/null +++ b/apps/ground-station-web/src/routes/mock/types.ts @@ -0,0 +1,40 @@ +// import { graphql } from 'gql.tada'; + +// export const InsertQuaternionDocument = graphql(` +// mutation InsertQuaternionMutation( +// $time_stamp: Int = 10 +// $time_stamp1: Int = 10 +// $w: Float = 1.5 +// $x: Float = 1.5 +// $y: Float = 1.5 +// $z: Float = 1.5 +// ) { +// insert_rocket_message( +// objects: { +// rocket_sensor_message: { +// data: { +// rocket_sensor_quat: { +// data: { +// status: 10 +// quat_w: $w +// quat_x: $x +// quat_y: $y +// quat_z: $z +// euler_std_dev_x: 0 +// euler_std_dev_y: 0 +// euler_std_dev_z: 0 +// time_stamp: $time_stamp1 +// } +// } +// component_id: 0 +// } +// } +// time_stamp: $time_stamp +// sender: "phone" +// message_type: "sensor" +// } +// ) { +// affected_rows +// } +// } +// `); diff --git a/apps/ground-station-web/src/routes/navball/+page.svelte b/apps/ground-station-web/src/routes/navball/+page.svelte new file mode 100755 index 0000000..d9ecb07 --- /dev/null +++ b/apps/ground-station-web/src/routes/navball/+page.svelte @@ -0,0 +1,103 @@ + + + + + + +
+ {#if error} + + {/if} +
+ +
+
+ +
+
+
+
+ + +

IMU Readout

+

Roll: {roll.toFixed(2)}°

+

Pitch: {pitch.toFixed(2)}°

+

+ Pointing: + 0 ? 'green' : 'red'}>{pitch > 0 ? 'Up' : 'Down'} +

+ {#if imuData} +

Status: {imuData.status}

+ {/if} +
+
+
+
diff --git a/apps/ground-station-web/src/routes/navball/api/+server.ts b/apps/ground-station-web/src/routes/navball/api/+server.ts new file mode 100755 index 0000000..f220454 --- /dev/null +++ b/apps/ground-station-web/src/routes/navball/api/+server.ts @@ -0,0 +1,129 @@ +import type { RequestHandler } from './$types'; +import { getDbClient } from '$lib/server/db'; + +// Module-scope state +let latestQuatData: any = { + time_stamp: Math.floor(Date.now() / 1000), + status: 'INITIALIZING', + quaternion_w: 1, + quaternion_x: 0, + quaternion_y: 0, + quaternion_z: 0 +}; +const activeControllers = new Set(); +const encoder = new TextEncoder(); +let dbPollingIntervalId: NodeJS.Timeout | null = null; +const DB_POLL_INTERVAL_MS = 500; + +async function fetchAndUpdateQuatData() { + try { + const db = getDbClient(); + const result = await db.execute({ + sql: `SELECT time_stamp, quaternion_w, quaternion_x, quaternion_y, quaternion_z, status FROM SbgEkfQuat ORDER BY id DESC LIMIT 1` + }); + latestQuatData = result.rows[0] ?? { + time_stamp: Math.floor(Date.now() / 1000), + status: 'NO_DATA', + quaternion_w: 1, + quaternion_x: 0, + quaternion_y: 0, + quaternion_z: 0 + }; + } catch (e: any) { + console.error('Error fetching EKF quaternion in central poller:', e); + latestQuatData = { ...latestQuatData, status: 'DB_ERROR', errorDetails: e.message }; + } + + // Broadcast + prune closed sockets + const message = `data: ${JSON.stringify(latestQuatData)}\n\n`; + for (const controller of Array.from(activeControllers)) { + try { + controller.enqueue(encoder.encode(message)); + } catch { + try { + controller.close(); + } catch {} + activeControllers.delete(controller); + } + } +} + +function ensurePoller() { + if (dbPollingIntervalId) return; + void fetchAndUpdateQuatData(); + dbPollingIntervalId = setInterval(fetchAndUpdateQuatData, DB_POLL_INTERVAL_MS); +} + +function stopPollerWhenIdle() { + if (activeControllers.size === 0 && dbPollingIntervalId) { + clearInterval(dbPollingIntervalId); + dbPollingIntervalId = null; + } +} + +export const GET: RequestHandler = (event) => { + let controllerForThisClient: ReadableStreamDefaultController; + + const stream = new ReadableStream({ + start(controller) { + controllerForThisClient = controller; + activeControllers.add(controllerForThisClient); + ensurePoller(); + console.log('SSE client connected. Total clients:', activeControllers.size); + + // Initial event flush + controller.enqueue(encoder.encode(`data: ${JSON.stringify(latestQuatData)}\n\n`)); + + // Robust cleanup with Node adapter if available + const node = (event as any)?.platform?.node as { req?: any; res?: any } | undefined; + if (node) { + const cleanup = () => { + if (controllerForThisClient) { + activeControllers.delete(controllerForThisClient); + stopPollerWhenIdle(); + try { + controllerForThisClient.close(); + } catch {} + node.req.off?.('close', cleanup); + node.res.off?.('close', cleanup); + node.req.off?.('aborted', cleanup); + console.log( + 'SSE client disconnected (socket close). Total clients:', + activeControllers.size + ); + } + }; + node.req.on?.('close', cleanup); + node.res.on?.('close', cleanup); + node.req.on?.('aborted', cleanup); + } + + // Fallback: abort signal + event.request.signal.addEventListener('abort', () => { + if (controllerForThisClient) { + activeControllers.delete(controllerForThisClient); + stopPollerWhenIdle(); + try { + controllerForThisClient.close(); + } catch {} + console.log('SSE client disconnected (abort). Total clients:', activeControllers.size); + } + }); + }, + cancel() { + if (controllerForThisClient) { + activeControllers.delete(controllerForThisClient); + stopPollerWhenIdle(); + console.log('SSE client disconnected (cancel). Total clients:', activeControllers.size); + } + } + }); + + return new Response(stream, { + headers: { + 'Content-Type': 'text/event-stream', + 'Cache-Control': 'no-cache, no-transform', + Connection: 'keep-alive' + } + }); +}; diff --git a/apps/ground-station-web/src/routes/overview/api/+server.ts b/apps/ground-station-web/src/routes/overview/api/+server.ts new file mode 100644 index 0000000..80448f5 --- /dev/null +++ b/apps/ground-station-web/src/routes/overview/api/+server.ts @@ -0,0 +1,219 @@ +import { getDbClient } from '$lib/server/db'; +import { listServices } from '$lib/server/services'; +import type { FlightTransition, OverviewSnapshot } from '$lib/realtime/types'; +import { json } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; + +const QNH_KPA = 102.5; + +function altitudeFromPressure(pressureKpa: number): number { + return 44330 * (1 - Math.pow(pressureKpa / QNH_KPA, 0.190263)); +} + +function numberOrNull(value: unknown): number | null { + if (value === null || value === undefined) return null; + const number = Number(value); + return Number.isFinite(number) ? number : null; +} + +async function getSnapshot(): Promise { + const db = getDbClient(); + const [ + stateRows, + eventRows, + baroRows, + gpsRows, + velocityRows, + imuRows, + radioRows, + frameRows, + lossRows, + transitionRows, + pathRows, + serviceResult + ] = await Promise.all([ + db.execute({ + sql: `SELECT ps.id, ps.state AS value, rf.timestamp_epoch AS ts FROM PhoenixState ps JOIN RadioFrame rf ON rf.data_type = 'PhoenixState' AND rf.data_id = ps.id ORDER BY rf.timestamp_epoch DESC LIMIT 1`, + args: [] + }), + db.execute({ + sql: `SELECT pe.id, pe.event AS value, rf.timestamp_epoch AS ts FROM PhoenixEvent pe JOIN RadioFrame rf ON rf.data_type = 'PhoenixEvent' AND rf.data_id = pe.id ORDER BY rf.timestamp_epoch DESC LIMIT 1`, + args: [] + }), + db.execute({ + sql: `SELECT b.pressure_kpa, rf.timestamp_epoch AS ts FROM Barometer b JOIN RadioFrame rf ON rf.data_type = 'Barometer' AND rf.data_id = b.id ORDER BY rf.timestamp_epoch DESC LIMIT 1`, + args: [] + }), + db.execute({ + sql: `SELECT p.altitude, p.latitude, p.longitude, p.num_sv_used, rf.timestamp_epoch AS ts FROM SbgGpsPos p JOIN RadioFrame rf ON rf.data_type = 'SbgGpsPos' AND rf.data_id = p.id WHERE p.latitude IS NOT NULL AND p.longitude IS NOT NULL ORDER BY rf.timestamp_epoch DESC LIMIT 1`, + args: [] + }), + db.execute({ + sql: `SELECT v.velocity_down, rf.timestamp_epoch AS ts FROM SbgGpsVel v JOIN RadioFrame rf ON rf.data_type = 'SbgGpsVel' AND rf.data_id = v.id ORDER BY rf.timestamp_epoch DESC LIMIT 1`, + args: [] + }), + db.execute({ + sql: `SELECT i.accelerometer_x, i.accelerometer_y, i.accelerometer_z, rf.timestamp_epoch AS ts FROM SbgImu i JOIN RadioFrame rf ON rf.data_type = 'SbgImu' AND rf.data_id = i.id ORDER BY rf.timestamp_epoch DESC LIMIT 1`, + args: [] + }), + db.execute({ + sql: `SELECT timestamp, rssi FROM RadioMetrics ORDER BY timestamp DESC LIMIT 1`, + args: [] + }), + db.execute({ + sql: `SELECT COUNT(*) AS total, SUM(CASE WHEN timestamp_epoch >= strftime('%s','now') - 10 THEN 1 ELSE 0 END) AS recent FROM RadioFrame`, + args: [] + }), + db.execute({ + sql: `SELECT COALESCE(SUM(packets_lost), 0) AS lost FROM RadioMetrics`, + args: [] + }), + db.execute({ + sql: `SELECT id, kind, value, ts FROM (SELECT ps.id, 'State' AS kind, ps.state AS value, rf.timestamp_epoch AS ts FROM PhoenixState ps JOIN RadioFrame rf ON rf.data_type = 'PhoenixState' AND rf.data_id = ps.id UNION ALL SELECT pe.id, 'Event' AS kind, pe.event AS value, rf.timestamp_epoch AS ts FROM PhoenixEvent pe JOIN RadioFrame rf ON rf.data_type = 'PhoenixEvent' AND rf.data_id = pe.id) ORDER BY ts DESC LIMIT 12`, + args: [] + }), + db.execute({ + sql: `SELECT rf.timestamp_epoch AS ts, p.latitude AS lat, p.longitude AS lon FROM SbgGpsPos p JOIN RadioFrame rf ON rf.data_type = 'SbgGpsPos' AND rf.data_id = p.id WHERE p.latitude IS NOT NULL AND p.longitude IS NOT NULL AND p.latitude != 0 AND p.longitude != 0 ORDER BY rf.timestamp_epoch DESC LIMIT 120`, + args: [] + }), + listServices() + .then((services) => ({ services, available: true })) + .catch(() => ({ services: [], available: false })) + ]); + + const state: any = stateRows.rows[0]; + const event: any = eventRows.rows[0]; + const baro: any = baroRows.rows[0]; + const gps: any = gpsRows.rows[0]; + const velocity: any = velocityRows.rows[0]; + const imu: any = imuRows.rows[0]; + const radio: any = radioRows.rows[0]; + const frames: any = frameRows.rows[0] ?? {}; + const losses: any = lossRows.rows[0] ?? {}; + const totalFrames = Number(frames.total ?? 0); + const totalLost = Number(losses.lost ?? 0); + const gpsTimestamp = numberOrNull(gps?.ts); + const imuValues = [imu?.accelerometer_x, imu?.accelerometer_y, imu?.accelerometer_z].map( + numberOrNull + ); + const acceleration = imuValues.every((value) => value !== null) + ? Math.hypot(...(imuValues as number[])) + : null; + + const transition = (row: any): FlightTransition => ({ + id: Number(row.id), + kind: row.kind as 'State' | 'Event', + value: String(row.value), + timestamp: numberOrNull(row.ts) + }); + + return { + generatedAt: Date.now(), + flight: { + state: state + ? { + id: Number(state.id), + kind: 'State', + value: String(state.value), + timestamp: numberOrNull(state.ts) + } + : null, + event: event + ? { + id: Number(event.id), + kind: 'Event', + value: String(event.value), + timestamp: numberOrNull(event.ts) + } + : null, + altitudeM: { + value: baro ? altitudeFromPressure(Number(baro.pressure_kpa)) : null, + updatedAt: numberOrNull(baro?.ts) + }, + gnssAltitudeM: { value: numberOrNull(gps?.altitude), updatedAt: gpsTimestamp }, + verticalVelocityMps: { + value: velocity?.velocity_down == null ? null : -Number(velocity.velocity_down), + updatedAt: numberOrNull(velocity?.ts) + }, + accelerationMps2: { value: acceleration, updatedAt: numberOrNull(imu?.ts) }, + position: { + value: gps ? { lat: Number(gps.latitude), lon: Number(gps.longitude) } : null, + updatedAt: gpsTimestamp + }, + satellites: { value: numberOrNull(gps?.num_sv_used), updatedAt: gpsTimestamp } + }, + radio: { + updatedAt: numberOrNull(radio?.timestamp), + rssiDbm: numberOrNull(radio?.rssi), + framesPerSecond: Number(frames.recent ?? 0) / 10, + packetLossPercent: totalFrames > 0 ? (totalLost / totalFrames) * 100 : 0, + totalFrames + }, + services: { + updatedAt: Date.now(), + running: serviceResult.services.filter((service) => service.status === 'running').length, + total: serviceResult.services.length, + degraded: serviceResult.services + .filter((service) => service.status !== 'running') + .map((service) => service.name), + available: serviceResult.available + }, + recentTransitions: transitionRows.rows.map(transition), + trajectory: [...pathRows.rows] + .reverse() + .map((row: any) => ({ + timestamp: Number(row.ts), + lat: Number(row.lat), + lon: Number(row.lon) + })) + }; +} + +export const GET: RequestHandler = async ({ url, request }) => { + if (url.searchParams.get('sse') !== '1') return json(await getSnapshot()); + + let interval: ReturnType; + let closed = false; + const encoder = new TextEncoder(); + const stream = new ReadableStream({ + start(controller) { + const push = async () => { + if (closed) return; + try { + const snapshot = await getSnapshot(); + controller.enqueue( + encoder.encode(`event: overview\ndata: ${JSON.stringify(snapshot)}\n\n`) + ); + } catch (error) { + console.error('Overview update failed', error); + controller.enqueue( + encoder.encode(`event: error\ndata: {"message":"Overview unavailable"}\n\n`) + ); + } + }; + void push(); + interval = setInterval(push, 1_000); + request.signal.addEventListener('abort', () => { + closed = true; + clearInterval(interval); + try { + controller.close(); + } catch { + /* already closed */ + } + }); + }, + cancel() { + closed = true; + clearInterval(interval); + } + }); + + return new Response(stream, { + headers: { + 'Content-Type': 'text/event-stream', + 'Cache-Control': 'no-cache, no-transform', + Connection: 'keep-alive' + } + }); +}; diff --git a/apps/ground-station-web/src/routes/radio/+page.svelte b/apps/ground-station-web/src/routes/radio/+page.svelte new file mode 100755 index 0000000..2c3178b --- /dev/null +++ b/apps/ground-station-web/src/routes/radio/+page.svelte @@ -0,0 +1,390 @@ + + + + + + +
+

Radio Metrics

+
+ + {#if connected} + + {:else} + + {/if} +
+
+ + {#if error} + + {/if} + + {#if metrics.length === 0 && !loading} + + {/if} + + {#if metrics.length > 0} + + + + +

Latest RSSI

+ {#if metrics[0]?.rssi !== null} +
+ {metrics[0].rssi} dBm +
+ + {getRssiStatus(metrics[0].rssi).status} + + {:else} +
N/A
+ {/if} +
+
+ + +

Frames per second

+ {#if totals?.frames_per_second != null} +
+ {totals.frames_per_second.toFixed(2)} fps +
+ 10 + ? 'green' + : totals.frames_per_second > 3 + ? 'blue' + : 'red'} + size="sm" + > + {totals.frames_per_second > 10 + ? 'High' + : totals.frames_per_second > 3 + ? 'Moderate' + : 'Low'} + + {:else} +
N/A
+ {/if} +
+
+ + +

Total Packet Loss

+ {#if totals} +
+ {totals.total_packets_lost} +
+ + {totals.packet_loss_percentage.toFixed(2)}% + + + {:else} +
N/A
+ {/if} +
+
+ + +

Connection Status

+
+ {connected ? 'Live' : 'Static'} +
+ + {connected ? 'Real-time' : 'Manual Refresh'} + +
+
+
+ + + + + + Timestamp + RSSI + RSSI Status + Packets Lost + Packet Loss Status + + + + {#each metrics as metric (metric.timestamp)} + + {formatTimestamp(metric.timestamp)} + + {metric.rssi !== null ? `${metric.rssi} dBm` : 'N/A'} + + + + {getRssiStatus(metric.rssi).status} + + + {metric.packets_lost} + + + {getPacketLossStatus(metric.packets_lost).status} + + + + {/each} + +
+ {/if} +
+
+
+
diff --git a/apps/ground-station-web/src/routes/radio/api/+server.ts b/apps/ground-station-web/src/routes/radio/api/+server.ts new file mode 100755 index 0000000..fe3903c --- /dev/null +++ b/apps/ground-station-web/src/routes/radio/api/+server.ts @@ -0,0 +1,139 @@ +import { getDbClient } from '$lib/server/db'; +import { json } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; + +const encoder = new TextEncoder(); +const activeControllers = new Set(); +let pollIntervalId: NodeJS.Timeout | null = null; + +async function pollAndBroadcast() { + const db = getDbClient(); + try { + const metricsResult = await db.execute({ + sql: `SELECT timestamp, rssi, packets_lost FROM RadioMetrics ORDER BY timestamp DESC LIMIT 20`, + args: [] + }); + // Throughput: frames per second over last 10 seconds + const fpsRes = await db.execute({ + sql: `SELECT COUNT(*) AS cnt FROM RadioFrame WHERE timestamp_epoch >= strftime('%s','now') - 10`, + args: [] + }); + const framesIn10s = Number((fpsRes.rows[0] as any)?.cnt ?? 0); + const frames_per_second = framesIn10s / 10.0; + + let total_packets_lost = 0; + let total_radio_frames = 0; + try { + const summary = await db.execute({ + sql: `SELECT total_packets_lost, total_radio_frames FROM MetricsSummary LIMIT 1`, + args: [] + }); + if (summary.rows.length > 0) { + const row: any = summary.rows[0]; + total_packets_lost = Number(row.total_packets_lost ?? 0); + total_radio_frames = Number(row.total_radio_frames ?? 0); + } + } catch (_) { + const [lostAgg, frameAgg] = await Promise.all([ + db.execute({ sql: `SELECT COALESCE(SUM(packets_lost), 0) AS total FROM RadioMetrics`, args: [] }), + db.execute({ sql: `SELECT COUNT(*) AS total FROM RadioFrame`, args: [] }) + ]); + total_packets_lost = Number((lostAgg.rows[0] as any).total ?? 0); + total_radio_frames = Number((frameAgg.rows[0] as any).total ?? 0); + } + + const packet_loss_ratio = total_radio_frames > 0 ? total_packets_lost / total_radio_frames : 0; + const packet_loss_percentage = packet_loss_ratio * 100; + + const payload = { + metrics: metricsResult.rows, + totals: { total_packets_lost, total_radio_frames, packet_loss_ratio, packet_loss_percentage, frames_per_second } + }; + const chunk = encoder.encode(`event: metrics\n` + `data: ${JSON.stringify(payload)}\n\n`); + for (const c of Array.from(activeControllers)) { + try { c.enqueue(chunk); } catch { try { c.close(); } catch { } activeControllers.delete(c); } + } + } catch (e) { + const errChunk = encoder.encode(`event: error\n` + `data: {"message":"Failed to fetch radio metrics"}\n\n`); + for (const c of Array.from(activeControllers)) { + try { c.enqueue(errChunk); } catch { try { c.close(); } catch { } activeControllers.delete(c); } + } + console.error('Radio central poll error:', e); + } +} + +function ensurePoller() { + if (!pollIntervalId) { + pollIntervalId = setInterval(pollAndBroadcast, 5000); + // kick immediately + pollAndBroadcast(); + } +} + +export const GET: RequestHandler = async ({ url, request }) => { + const useSSE = url.searchParams.get('sse') === '1'; + + if (useSSE) { + const stream = new ReadableStream({ + start(controller) { + activeControllers.add(controller); + ensurePoller(); + request.signal.addEventListener('abort', () => { + activeControllers.delete(controller); + try { controller.close(); } catch { } + }); + }, + cancel() { } + }); + + return new Response(stream, { + headers: { + 'Content-Type': 'text/event-stream', + 'Cache-Control': 'no-cache, no-transform', + 'Connection': 'keep-alive' + } + }); + } + + // Regular GET request + const db = getDbClient(); + const metricsResult = await db.execute({ + sql: `SELECT timestamp, rssi, packets_lost FROM RadioMetrics ORDER BY timestamp DESC LIMIT 20`, + args: [] + }); + + // Summary (prefer summary table, fallback to aggregates) + let total_packets_lost = 0; + let total_radio_frames = 0; + try { + const summary = await db.execute({ + sql: `SELECT total_packets_lost, total_radio_frames FROM MetricsSummary LIMIT 1`, + args: [] + }); + if (summary.rows.length > 0) { + const row: any = summary.rows[0]; + total_packets_lost = Number(row.total_packets_lost ?? 0); + total_radio_frames = Number(row.total_radio_frames ?? 0); + } + } catch (_) { + const [lostAgg, frameAgg] = await Promise.all([ + db.execute({ sql: `SELECT COALESCE(SUM(packets_lost), 0) AS total FROM RadioMetrics`, args: [] }), + db.execute({ sql: `SELECT COUNT(*) AS total FROM RadioFrame`, args: [] }) + ]); + total_packets_lost = Number((lostAgg.rows[0] as any).total ?? 0); + total_radio_frames = Number((frameAgg.rows[0] as any).total ?? 0); + } + + const packet_loss_ratio = total_radio_frames > 0 ? total_packets_lost / total_radio_frames : 0; + const packet_loss_percentage = packet_loss_ratio * 100; + + return json({ + metrics: metricsResult.rows, + totals: { + total_packets_lost, + total_radio_frames, + packet_loss_ratio, + packet_loss_percentage + } + }); +}; diff --git a/apps/ground-station-web/src/routes/sbg/+page.server.ts b/apps/ground-station-web/src/routes/sbg/+page.server.ts new file mode 100755 index 0000000..d5a2495 --- /dev/null +++ b/apps/ground-station-web/src/routes/sbg/+page.server.ts @@ -0,0 +1,58 @@ +import { getDbClient } from '$lib/server/db'; +import type { Row } from '@libsql/client'; +import type { PageServerLoad } from './$types'; + +// Helper function to get the latest row from a table +async function getLatestRow(tableName: string): Promise { + const db = getDbClient(); + try { + const result = await db.execute({ + sql: `SELECT * FROM ${tableName} ORDER BY time_stamp DESC LIMIT 1`, + args: [] + }); + return result.rows.length > 0 ? result.rows[0] : null; + } catch (e: any) { + console.error(`Error fetching latest row from ${tableName}:`, e); + // Depending on requirements, you might want to throw, return null, or a specific error object + return null; // Return null on error for graceful handling + } +} + +export const load: PageServerLoad = async () => { + console.log("Loading initial SBG data for /sbg page..."); + + // Fetch latest data from relevant tables in parallel + const [ + latestUtcTime, + latestAir, + latestEkfQuat, + latestEkfNav, + latestImu, + latestGpsVel, + latestGpsPos + ] = await Promise.all([ + getLatestRow('SbgUtcTime'), + getLatestRow('SbgAir'), + getLatestRow('SbgEkfQuat'), + getLatestRow('SbgEkfNav'), + getLatestRow('SbgImu'), + getLatestRow('SbgGpsVel'), + getLatestRow('SbgGpsPos') + ]); + + console.log("Finished loading initial SBG data."); + + // Return the data in a structured way + // Handle potential nulls if a table is empty or an error occurred + return { + sbgData: { + utcTime: latestUtcTime ?? {}, + air: latestAir ?? {}, + ekfQuat: latestEkfQuat ?? {}, + ekfNav: latestEkfNav ?? {}, + imu: latestImu ?? {}, + gpsVel: latestGpsVel ?? {}, + gpsPos: latestGpsPos ?? {}, + } + }; +}; \ No newline at end of file diff --git a/apps/ground-station-web/src/routes/sbg/+page.svelte b/apps/ground-station-web/src/routes/sbg/+page.svelte new file mode 100755 index 0000000..4c85a87 --- /dev/null +++ b/apps/ground-station-web/src/routes/sbg/+page.svelte @@ -0,0 +1,306 @@ + + + + SBG Sensor Status + + + + + + + + + + Last updated: {lastUpdated.toLocaleString()} + {#if isLoading} + + {/if} + + +

+ EKF Navigation + {sbgData.ekfNav?.status ?? 'N/A'} +

+ + + + Field + Value + + + + + Timestamp + {formatTimestamp(sbgData.ekfNav?.time_stamp)} + + + Latitude + {formatNum(sbgData.ekfNav?.position_latitude, 7)}° (±{formatNum( + sbgData.ekfNav?.position_std_dev_latitude, + 2 + )}m) + + + Longitude + {formatNum(sbgData.ekfNav?.position_longitude, 7)}° (±{formatNum( + sbgData.ekfNav?.position_std_dev_longitude, + 2 + )}m) + + + Altitude + {formatNum(sbgData.ekfNav?.position_altitude, 2)} m (±{formatNum( + sbgData.ekfNav?.position_std_dev_altitude, + 2 + )}m) + + + Vel N/E/D + {formatNum(sbgData.ekfNav?.velocity_north)} / {formatNum( + sbgData.ekfNav?.velocity_east + )} / {formatNum(sbgData.ekfNav?.velocity_down)} m/s + + + + +

+ Air Data + {sbgData.air?.status ?? 'N/A'} +

+ + + + Field + Value + + + + + Timestamp + {formatTimestamp(sbgData.air?.time_stamp)} + + + Abs Pressure + {formatNum(sbgData.air?.pressure_abs, 2)} Pa + + + Altitude + {formatNum(sbgData.air?.altitude, 2)} m + + + Diff Pressure + {formatNum(sbgData.air?.pressure_diff, 2)} Pa + + + True Airspeed + {formatNum(sbgData.air?.true_airspeed, 2)} m/s + + + Temperature + {formatNum(sbgData.air?.air_temperature, 1)} °C + + + + +

+ IMU Data + {sbgData.imu?.status ?? 'N/A'} +

+ + + + Field + Value + + + + + Timestamp + {formatTimestamp(sbgData.imu?.time_stamp)} + + + Accel X/Y/Z + {formatNum(sbgData.imu?.accelerometer_x)} / {formatNum( + sbgData.imu?.accelerometer_y + )} / {formatNum(sbgData.imu?.accelerometer_z)} m/s² + + + Gyro X/Y/Z + {formatNum(sbgData.imu?.gyroscope_x)} / {formatNum(sbgData.imu?.gyroscope_y)} / {formatNum( + sbgData.imu?.gyroscope_z + )} rad/s + + + Temperature + {formatNum(sbgData.imu?.temperature, 1)} °C + + + +
+
+ + + + i?.text ?? ''} + on:select={(e) => { + selectedMetric = e.detail.selectedItem; + connectSSE(); + }} + size="sm" + label="Metric" + /> + + + +
+
diff --git a/apps/ground-station-web/src/routes/sbg/api/+server.ts b/apps/ground-station-web/src/routes/sbg/api/+server.ts new file mode 100755 index 0000000..bcabc02 --- /dev/null +++ b/apps/ground-station-web/src/routes/sbg/api/+server.ts @@ -0,0 +1,220 @@ +import { getDbClient } from '$lib/server/db'; +import { json, error } from '@sveltejs/kit'; +import type { Row } from '@libsql/client'; +import type { RequestHandler } from './$types'; + +// Re-use the helper function (could be moved to a shared lib if used elsewhere too) +async function getLatestRow(tableName: string): Promise { + const db = getDbClient(); + try { + const result = await db.execute({ + sql: `SELECT * FROM ${tableName} ORDER BY time_stamp DESC LIMIT 1`, + args: [] + }); + return result.rows.length > 0 ? result.rows[0] : null; + } catch (e: any) { + console.error(`Error fetching latest row from ${tableName} for API:`, e); + return null; + } +} + +// Map of supported metrics to their safe table/column definitions +// This prevents SQL injection since table/columns are not taken directly from user input +const METRICS: Record = { + air_altitude: { table: 'SbgAir', columns: [{ key: 'altitude', label: 'Altitude (m)' }] }, + air_pressure: { + table: 'SbgAir', + columns: [ + { key: 'pressure_abs', label: 'Abs Pressure (Pa)' }, + { key: 'pressure_diff', label: 'Diff Pressure (Pa)' } + ] + }, + air_true_airspeed: { table: 'SbgAir', columns: [{ key: 'true_airspeed', label: 'True Airspeed (m/s)' }] }, + ekf_altitude: { table: 'SbgEkfNav', columns: [{ key: 'position_altitude', label: 'Altitude (m)' }] }, + gpsvel_velocity: { + table: 'SbgGpsVel', + columns: [ + { key: 'velocity_north', label: 'Vel North (m/s)' }, + { key: 'velocity_east', label: 'Vel East (m/s)' }, + { key: 'velocity_down', label: 'Vel Down (m/s)' } + ] + }, + gpsvel_course: { table: 'SbgGpsVel', columns: [{ key: 'course', label: 'Course (deg)' }] }, + imu_temperature: { table: 'SbgImu', columns: [{ key: 'temperature', label: 'IMU Temp (°C)' }] }, + imu_accel: { + table: 'SbgImu', + columns: [ + { key: 'accelerometer_x', label: 'Accel X (m/s²)' }, + { key: 'accelerometer_y', label: 'Accel Y (m/s²)' }, + { key: 'accelerometer_z', label: 'Accel Z (m/s²)' } + ] + }, + imu_gyro: { + table: 'SbgImu', + columns: [ + { key: 'gyroscope_x', label: 'Gyro X (rad/s)' }, + { key: 'gyroscope_y', label: 'Gyro Y (rad/s)' }, + { key: 'gyroscope_z', label: 'Gyro Z (rad/s)' } + ] + } +}; + +async function getMetricSeries(metric: string, minutes: number) { + const def = METRICS[metric]; + if (!def) { + throw error(400, `Unsupported metric: ${metric}`); + } + const db = getDbClient(); + const seconds = Math.max(1, Math.floor(minutes * 60)); + + // Build a SELECT that returns ts and one column per requested series + const selectCols = ['time_stamp AS ts', ...def.columns.map((c) => `${c.key} AS ${c.key}`)].join(', '); + const sql = `SELECT ${selectCols} FROM ${def.table} WHERE time_stamp >= strftime('%s','now') - ? ORDER BY time_stamp ASC`; + + const result = await db.execute({ sql, args: [seconds] }); + + // Convert rows into Carbon Charts data format: { group, date, value } + const data: Array<{ group: string; date: Date; value: number }> = []; + for (const row of result.rows) { + const ts = Number(row.ts); + for (const col of def.columns) { + const val = row[col.key] as number | null | undefined; + if (typeof val === 'number') { + data.push({ group: col.label, date: new Date(ts * 1000), value: val }); + } + } + } + + return { + metric, + table: def.table, + seriesLabels: def.columns.map((c) => c.label), + data + }; +} + +const encoder = new TextEncoder(); +const activeControllers = new Set(); +let pollIntervalId: NodeJS.Timeout | null = null; +let lastMetricPayload: any = null; +let lastSnapshotPayload: any = null; + +async function centralPoll(metric: string | null, minutes: number) { + // If metric is provided, poll metric + snapshot; otherwise only snapshot + try { + const series = metric ? await getMetricSeries(metric, minutes) : null; + const snapshot = await Promise.all([ + getLatestRow('SbgUtcTime'), + getLatestRow('SbgAir'), + getLatestRow('SbgEkfQuat'), + getLatestRow('SbgEkfNav'), + getLatestRow('SbgImu'), + getLatestRow('SbgGpsVel'), + getLatestRow('SbgGpsPos') + ]).then(([utc, air, quat, nav, imu, vel, pos]) => ({ + utcTime: utc ?? {}, + air: air ?? {}, + ekfQuat: quat ?? {}, + ekfNav: nav ?? {}, + imu: imu ?? {}, + gpsVel: vel ?? {}, + gpsPos: pos ?? {} + })); + if (series) lastMetricPayload = series; + lastSnapshotPayload = snapshot; + const chunks: Uint8Array[] = []; + if (series) chunks.push(encoder.encode(`event: metric\n` + `data: ${JSON.stringify(series)}\n\n`)); + chunks.push(encoder.encode(`event: snapshot\n` + `data: ${JSON.stringify(snapshot)}\n\n`)); + for (const c of Array.from(activeControllers)) { + try { for (const ch of chunks) c.enqueue(ch); } catch { try { c.close(); } catch { } activeControllers.delete(c); } + } + } catch (e) { + const err = encoder.encode(`event: error\n` + `data: {"message":"Failed to fetch data"}\n\n`); + for (const c of Array.from(activeControllers)) { + try { c.enqueue(err); } catch { try { c.close(); } catch { } activeControllers.delete(c); } + } + console.error('SBG central poll error:', e); + } +} + +export const GET: RequestHandler = async ({ url, request }) => { + const metric = url.searchParams.get('metric'); + const minutes = Number(url.searchParams.get('minutes') || '10'); + const useSSE = url.searchParams.get('sse') === '1'; + + if (metric && useSSE) { + const stream = new ReadableStream({ + start(controller) { + activeControllers.add(controller); + if (!pollIntervalId) { + pollIntervalId = setInterval(() => centralPoll(metric, minutes), 5000); + centralPoll(metric, minutes); + } else { + if (lastMetricPayload) controller.enqueue(encoder.encode(`event: metric\n` + `data: ${JSON.stringify(lastMetricPayload)}\n\n`)); + if (lastSnapshotPayload) controller.enqueue(encoder.encode(`event: snapshot\n` + `data: ${JSON.stringify(lastSnapshotPayload)}\n\n`)); + } + request.signal.addEventListener('abort', () => { + activeControllers.delete(controller); + try { controller.close(); } catch { } + if (activeControllers.size === 0 && pollIntervalId) { clearInterval(pollIntervalId); pollIntervalId = null; } + }); + }, + cancel() { } + }); + + return new Response(stream, { + headers: { + 'Content-Type': 'text/event-stream', + 'Cache-Control': 'no-cache, no-transform', + Connection: 'keep-alive' + } + }); + } + + if (metric) { + try { + const series = await getMetricSeries(metric, minutes); + return json(series); + } catch (e: any) { + if (e?.status && e?.body) throw e; // forward handled errors + console.error('Error fetching metric series:', e); + throw error(500, `Failed to fetch metric series: ${e.message}`); + } + } + + // Fallback: latest snapshot, preserving existing behavior + try { + const [ + latestUtcTime, + latestAir, + latestEkfQuat, + latestEkfNav, + latestImu, + latestGpsVel, + latestGpsPos + ] = await Promise.all([ + getLatestRow('SbgUtcTime'), + getLatestRow('SbgAir'), + getLatestRow('SbgEkfQuat'), + getLatestRow('SbgEkfNav'), + getLatestRow('SbgImu'), + getLatestRow('SbgGpsVel'), + getLatestRow('SbgGpsPos') + ]); + + const responseData = { + utcTime: latestUtcTime ?? {}, + air: latestAir ?? {}, + ekfQuat: latestEkfQuat ?? {}, + ekfNav: latestEkfNav ?? {}, + imu: latestImu ?? {}, + gpsVel: latestGpsVel ?? {}, + gpsPos: latestGpsPos ?? {} + }; + + return json(responseData); + } catch (e: any) { + console.error('Error in SBG API GET handler:', e); + throw error(500, `Failed to fetch SBG data: ${e.message}`); + } +}; \ No newline at end of file diff --git a/apps/ground-station-web/src/routes/services/+page.svelte b/apps/ground-station-web/src/routes/services/+page.svelte new file mode 100755 index 0000000..0c4286b --- /dev/null +++ b/apps/ground-station-web/src/routes/services/+page.svelte @@ -0,0 +1,500 @@ + + + + + +
+

Service Manager

+ View Service Logs → +
+
+
+ + + + + + + + Service + Status + Actions + + + + {#if !loading && services.length === 0} + + No services found + + + + {:else} + {#each services as s} + + {s.name} + + {#if s.status === 'running'} + running + {:else if s.status === 'exited'} + stopped + {:else if s.status === 'restarting'} + restarting + {:else} + unknown + {/if} + + +
+ {#if s.status === 'running'} + + {:else} + + {/if} + + +
+
+
+ {/each} + {/if} +
+
+ +
+
+ + + + + + i?.text ?? ''} + on:select={(e) => { + selectedService = e.detail.selectedItem?.id ?? null; + }} + size="sm" + /> + + + + + + + + + + + + + + + + + + + + + +
+ {logText} +
+
+
+
+
+
+
+ + + + + + diff --git a/apps/ground-station-web/src/routes/services/api/+server.ts b/apps/ground-station-web/src/routes/services/api/+server.ts new file mode 100755 index 0000000..81845ac --- /dev/null +++ b/apps/ground-station-web/src/routes/services/api/+server.ts @@ -0,0 +1,32 @@ +import { error, json } from '@sveltejs/kit'; +import { dockerRequest, listServices } from '$lib/server/services'; + +async function containerAction(service: string, action: 'start' | 'stop' | 'restart') { + let p = `/containers/${encodeURIComponent(service)}/${action}`; + if (action === 'restart') p += '?t=5'; + const res = await dockerRequest(p, 'POST'); + if (!(res.status === 204 || res.status === 304)) { + throw new Error(`Docker ${action} failed with status ${res.status}`); + } +} + +export async function GET() { + try { + const services = await listServices(); + return json(services); + } catch (e: any) { + throw error(500, e.message ?? 'Failed to list services'); + } +} + +export async function POST({ url }) { + const action = (url.searchParams.get('action') as 'start' | 'stop' | 'restart') ?? 'start'; + const service = url.searchParams.get('service'); + if (!service) throw error(400, 'service is required'); + try { + await containerAction(service, action); + return new Response(null, { status: 204 }); + } catch (e: any) { + throw error(500, e.message ?? 'Operation failed'); + } +} diff --git a/apps/ground-station-web/src/routes/services/logs/+page.svelte b/apps/ground-station-web/src/routes/services/logs/+page.svelte new file mode 100755 index 0000000..275df85 --- /dev/null +++ b/apps/ground-station-web/src/routes/services/logs/+page.svelte @@ -0,0 +1,343 @@ + + + + + +

Service Logs

+

View and stream logs from Docker services

+
+
+ + {#if errorMsg} + + + + + + {/if} + + + + +

Configuration

+ + i?.text ?? ''} + on:select={(e) => onServiceChange(e.detail.selectedItem?.id ?? '')} + size="sm" + disabled={loading} + /> + + + + + +
+ + + +
+ +
+ + + +
+ + {#if selectedService} +
+ + Service: {selectedService} + + {#if streaming} + Streaming + {/if} +
+ {/if} +
+
+ + + +
+

Logs

+ {#if streaming} + + {/if} +
+ + {#if !selectedService} +
+ Select a service to view logs +
+ {:else if !logText && !streaming} +
+ Click "Get Logs" to fetch logs or "Start Stream" for real-time logs +
+ {:else} +
+ + {logText || 'Connecting to stream...'} + +
+ {/if} +
+
+
+
+ + + + diff --git a/apps/ground-station-web/src/routes/services/logs/api/+server.ts b/apps/ground-station-web/src/routes/services/logs/api/+server.ts new file mode 100755 index 0000000..421b0f7 --- /dev/null +++ b/apps/ground-station-web/src/routes/services/logs/api/+server.ts @@ -0,0 +1,93 @@ +import { error } from '@sveltejs/kit'; +import http from 'node:http'; + +const DOCKER_SOCKET = '/var/run/docker.sock'; + +function dockerRequest(path: string): Promise<{ status: number; text: () => Promise; ok: boolean; }> { + return new Promise((resolve, reject) => { + const req = http.request({ + socketPath: DOCKER_SOCKET, + path, + method: 'GET' + }, (res) => { + const chunks: Buffer[] = []; + res.on('data', (c) => chunks.push(Buffer.isBuffer(c) ? c : Buffer.from(c))); + res.on('end', () => { + const buf = Buffer.concat(chunks); + const status = res.statusCode ?? 500; + resolve({ + status, + ok: status >= 200 && status < 300, + text: async () => buf.toString('utf8') + }); + }); + }); + req.on('error', reject); + req.end(); + }); +} + +async function getContainerLogs(containerName: string, tail: string, grep?: string): Promise { + try { + // First, get container info to find the container ID + const containersRes = await dockerRequest('/containers/json?all=true'); + if (!containersRes.ok) { + throw new Error(`Failed to list containers: ${containersRes.status}`); + } + + const containers = JSON.parse(await containersRes.text()); + const container = containers.find((c: any) => + c.Names?.some((name: string) => name.includes(containerName)) || + c.Labels?.['com.docker.compose.service'] === containerName + ); + + if (!container) { + throw new Error(`Container not found: ${containerName}`); + } + + // Get logs from the container + const logsRes = await dockerRequest(`/containers/${container.Id}/logs?stdout=1&stderr=1&tail=${tail}×tamps=0`); + if (!logsRes.ok) { + throw new Error(`Failed to get logs: ${logsRes.status}`); + } + + let logs = await logsRes.text(); + + // Apply grep filter if specified + if (grep) { + try { + const grepRegex = new RegExp(grep, 'i'); + logs = logs.split('\n').filter(line => grepRegex.test(line)).join('\n'); + } catch (e) { + throw new Error('Invalid regex pattern'); + } + } + + return logs; + } catch (e: any) { + throw new Error(`Failed to get container logs: ${e.message}`); + } +} + +export async function GET({ url }) { + const service = url.searchParams.get('service'); + const tail = url.searchParams.get('tail') || '50'; + const grep = url.searchParams.get('grep'); + + if (!service) { + throw error(400, 'service parameter is required'); + } + + try { + const logs = await getContainerLogs(service, tail, grep || undefined); + + return new Response(logs, { + headers: { + 'Content-Type': 'text/plain; charset=utf-8' + } + }); + } catch (e: any) { + console.error('Error fetching logs:', e); + throw error(500, e.message || 'Failed to fetch logs'); + } +} diff --git a/apps/ground-station-web/src/routes/services/logs/stream/+server.ts b/apps/ground-station-web/src/routes/services/logs/stream/+server.ts new file mode 100755 index 0000000..a58b976 --- /dev/null +++ b/apps/ground-station-web/src/routes/services/logs/stream/+server.ts @@ -0,0 +1,235 @@ +// src/routes/logs/+server.ts +import { error } from '@sveltejs/kit'; +import http from 'node:http'; + +const DOCKER_SOCKET = '/var/run/docker.sock'; + +function dockerRequestStream(path: string): Promise<{ status: number; stream: NodeJS.ReadableStream; ok: boolean; }> { + return new Promise((resolve, reject) => { + const req = http.request({ + socketPath: DOCKER_SOCKET, + path, + method: 'GET' + }, (res) => { + const status = res.statusCode ?? 500; + resolve({ + status, + ok: status >= 200 && status < 300, + stream: res + }); + }); + req.on('error', reject); + req.end(); + }); +} + +async function findContainer(containerName: string): Promise { + // First, get container info to find the container ID + const containersRes = await new Promise<{ status: number; text: () => Promise; ok: boolean; }>((resolve, reject) => { + const req = http.request({ + socketPath: DOCKER_SOCKET, + path: '/containers/json?all=true', + method: 'GET' + }, (res) => { + const chunks: Buffer[] = []; + res.on('data', (c) => chunks.push(Buffer.isBuffer(c) ? c : Buffer.from(c))); + res.on('end', () => { + const buf = Buffer.concat(chunks); + const status = res.statusCode ?? 500; + resolve({ + status, + ok: status >= 200 && status < 300, + text: async () => buf.toString('utf8') + }); + }); + }); + req.on('error', reject); + req.end(); + }); + + if (!containersRes.ok) { + throw new Error(`Failed to list containers: ${containersRes.status}`); + } + + const containers = JSON.parse(await containersRes.text()); + const container = containers.find((c: any) => + c.Names?.some((name: string) => name.includes(containerName)) || + c.Labels?.['com.docker.compose.service'] === containerName + ); + + if (!container) { + throw new Error(`Container not found: ${containerName}`); + } + + return container.Id; +} + +export async function GET({ url }) { + const service = url.searchParams.get('service'); + const tail = url.searchParams.get('tail') || '50'; + const grep = url.searchParams.get('grep'); + + if (!service) { + throw error(400, 'service parameter is required'); + } + + // Set up Server-Sent Events with true real-time streaming + const stream = new ReadableStream({ + start(controller) { + let isControllerClosed = false; + let dockerStream: any = null; + + // Safe function to enqueue data + const safeEnqueue = (data: string) => { + if (!isControllerClosed && controller.desiredSize !== null) { + try { + controller.enqueue(new TextEncoder().encode(data)); + } catch (e) { + console.error('Error enqueueing data:', e); + isControllerClosed = true; + } + } + }; + + // Safe function to close controller + const safeClose = () => { + if (!isControllerClosed) { + try { + isControllerClosed = true; + controller.close(); + } catch (e) { + console.error('Error closing controller:', e); + } + } + }; + + // Set a timeout to prevent hanging streams + const timeoutId = setTimeout(() => { + if (!isControllerClosed) { + console.log('Log stream timeout reached, closing'); + safeEnqueue(`data: ${JSON.stringify({ type: 'error', line: 'Stream timeout reached' })}\n\n`); + safeClose(); + } + }, 300000); // 5 minutes timeout + + // Send heartbeat every 30 seconds to keep connection alive + const heartbeatId = setInterval(() => { + if (!isControllerClosed) { + safeEnqueue(`data: ${JSON.stringify({ type: 'heartbeat', timestamp: Date.now() })}\n\n`); + } + }, 30000); + + // Cleanup function + const cleanup = () => { + // Clear timeout + if (timeoutId) { + clearTimeout(timeoutId); + } + + // Clear heartbeat + if (heartbeatId) { + clearInterval(heartbeatId); + } + + // Close Docker stream if open + if (dockerStream && !dockerStream.destroyed) { + try { + dockerStream.destroy(); + } catch (e) { + console.error('Error destroying Docker stream:', e); + } + } + + safeClose(); + }; + + // Start streaming process + (async () => { + try { + // Send initial connection message + safeEnqueue(`data: ${JSON.stringify({ type: 'connected', message: 'Connected to log stream' })}\n\n`); + + // Find the container + const containerId = await findContainer(service); + safeEnqueue(`data: ${JSON.stringify({ type: 'info', line: `Found container: ${containerId}` })}\n\n`); + + // Get logs stream from the container with follow=1 for real-time streaming + const logsRes = await dockerRequestStream(`/containers/${containerId}/logs?stdout=1&stderr=1&tail=${tail}×tamps=0&follow=1`); + + if (!logsRes.ok) { + throw new Error(`Failed to get logs: ${logsRes.status}`); + } + + dockerStream = logsRes.stream; + + // Create regex filter if specified + let filter: RegExp | null = null; + if (grep) { + try { + filter = new RegExp(grep, 'i'); + } catch (e) { + safeEnqueue(`data: ${JSON.stringify({ type: 'error', line: 'Invalid regex pattern, using literal search' })}\n\n`); + // Fallback to literal search + const needle = grep.toLowerCase(); + filter = new RegExp(needle.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'i'); + } + } + + // Stream logs in real-time + dockerStream.on('data', (chunk: Buffer) => { + if (isControllerClosed) return; + + const lines = chunk.toString().split('\n').filter(line => line.trim()); + + for (const line of lines) { + if (isControllerClosed) break; + + // Apply filter if specified + if (filter && !filter.test(line)) continue; + + // Send the log line as an SSE event + safeEnqueue(`data: ${JSON.stringify({ type: 'log', line })}\n\n`); + } + }); + + // Handle stream end + dockerStream.on('end', () => { + if (!isControllerClosed) { + safeEnqueue(`data: ${JSON.stringify({ type: 'closed', code: 0 })}\n\n`); + cleanup(); + } + }); + + // Handle stream errors + dockerStream.on('error', (err: Error) => { + if (!isControllerClosed) { + console.error('Docker stream error:', err); + safeEnqueue(`data: ${JSON.stringify({ type: 'error', line: err.message })}\n\n`); + cleanup(); + } + }); + + } catch (e: any) { + if (!isControllerClosed) { + console.error('Error setting up log stream:', e); + safeEnqueue(`data: ${JSON.stringify({ type: 'error', line: e.message })}\n\n`); + cleanup(); + } + } + })(); + + // Handle client disconnect + url.searchParams.get('_disconnect') && cleanup(); + } + }); + + return new Response(stream, { + headers: { + 'Content-Type': 'text/event-stream', + 'Cache-Control': 'no-cache', + 'Connection': 'keep-alive', + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Allow-Headers': 'Cache-Control' + } + }); +} diff --git a/apps/ground-station-web/src/routes/settings/+page.svelte b/apps/ground-station-web/src/routes/settings/+page.svelte new file mode 100644 index 0000000..2ade3b3 --- /dev/null +++ b/apps/ground-station-web/src/routes/settings/+page.svelte @@ -0,0 +1,103 @@ + + +Settings | RGS + +
+
+
+

Settings

+
LOCAL OPERATOR PREFERENCES
+
+ +
+ + {#each settings as group} +
+

{format(group.name)}

+
+ {#each group.settings as setting} + {@const Component = componentFor(setting.valueDescription)} +
+
+ {format(setting.name)} +

{setting.description ?? 'No description available'}

+
+
+
+ {/each} +
+
+ {/each} +
+ + diff --git a/apps/ground-station-web/src/routes/settings/components/BooleanSetting.svelte b/apps/ground-station-web/src/routes/settings/components/BooleanSetting.svelte new file mode 100755 index 0000000..e182218 --- /dev/null +++ b/apps/ground-station-web/src/routes/settings/components/BooleanSetting.svelte @@ -0,0 +1,17 @@ + + + diff --git a/apps/ground-station-web/src/routes/settings/components/EnumSetting.svelte b/apps/ground-station-web/src/routes/settings/components/EnumSetting.svelte new file mode 100755 index 0000000..f4d6edd --- /dev/null +++ b/apps/ground-station-web/src/routes/settings/components/EnumSetting.svelte @@ -0,0 +1,25 @@ + + + diff --git a/apps/ground-station-web/src/routes/settings/components/NumberSetting.svelte b/apps/ground-station-web/src/routes/settings/components/NumberSetting.svelte new file mode 100755 index 0000000..b3a8216 --- /dev/null +++ b/apps/ground-station-web/src/routes/settings/components/NumberSetting.svelte @@ -0,0 +1,26 @@ + + + diff --git a/apps/ground-station-web/src/routes/settings/components/StringSetting.svelte b/apps/ground-station-web/src/routes/settings/components/StringSetting.svelte new file mode 100755 index 0000000..502b925 --- /dev/null +++ b/apps/ground-station-web/src/routes/settings/components/StringSetting.svelte @@ -0,0 +1,23 @@ + + + diff --git a/apps/ground-station-web/src/routes/settings/components/UnsupportedSetting.svelte b/apps/ground-station-web/src/routes/settings/components/UnsupportedSetting.svelte new file mode 100755 index 0000000..13332df --- /dev/null +++ b/apps/ground-station-web/src/routes/settings/components/UnsupportedSetting.svelte @@ -0,0 +1,14 @@ + + +
+ {setting.valueDescription.toUpperCase()} + {setting.description} (Not Implemented) +
diff --git a/apps/ground-station-web/src/routes/state/+page.svelte b/apps/ground-station-web/src/routes/state/+page.svelte new file mode 100755 index 0000000..9e50908 --- /dev/null +++ b/apps/ground-station-web/src/routes/state/+page.svelte @@ -0,0 +1,276 @@ + + + + Flight State + + +
+
+
+

Flight State

+
STATE MACHINE AND EVENT TRANSITIONS
+
+
+ {connected ? 'LIVE' : (error ?? 'CONNECTING')} +
+
+ +
+
+ CURRENT{items.find((item) => item.kind === 'State')?.value ?? 'NO STATE'} +
+
+ LATEST EVENT{items.find((item) => item.kind === 'Event')?.value ?? 'NO EVENT'} +
+
+ LAST UPDATE{items[0] ? formatTs(items[0].ts) : 'WAITING'} +
+
+ +
+
+

Transition Timeline

+
+ {#each ['All', 'State', 'Event'] as option} + + {/each} +
+
+ {#if visibleItems.length} +
    + {#each visibleItems as item, index (getUniqueKey(item, index))} +
  1. + + {item.kind} + {item.value} + + {formatDuration(item.duration_s)} +
  2. + {/each} +
+ {:else}
NO TRANSITIONS RECEIVED
{/if} +
+
+ + diff --git a/apps/ground-station-web/src/routes/state/api/+server.ts b/apps/ground-station-web/src/routes/state/api/+server.ts new file mode 100755 index 0000000..f08444a --- /dev/null +++ b/apps/ground-station-web/src/routes/state/api/+server.ts @@ -0,0 +1,160 @@ +import { getDbClient } from '$lib/server/db'; +import type { RequestHandler } from './$types'; + +type Row = { id: number; kind: 'State' | 'Event'; value: string; ts: number | null; duration_s: number | null }; + +// Central SSE state +const encoder = new TextEncoder(); +const activeControllers: Set = new Set(); +let pollIntervalId: NodeJS.Timeout | null = null; +let lastBroadcastStateId: number | null = null; +let lastBroadcastEventId: number | null = null; + +async function getLatest(kind: 'State' | 'Event'): Promise { + const db = getDbClient(); + // Use Phoenix* tables + const table = kind === 'State' ? 'PhoenixState' : 'PhoenixEvent'; + const column = kind === 'State' ? 'state' : 'event'; + const dataType = kind === 'State' ? 'PhoenixState' : 'PhoenixEvent'; + try { + const res = await db.execute({ + sql: `SELECT t.id AS id, t.${column} AS value, rf.timestamp_epoch AS ts + FROM ${table} t + JOIN RadioFrame rf ON rf.data_id = t.id AND rf.data_type = '${dataType}' + ORDER BY rf.timestamp_epoch DESC + LIMIT 1`, + args: [] + }); + if (res.rows.length) { + const r = res.rows[0]; + const tsNum = r.ts ? Number(r.ts) : null; + const now = Math.floor(Date.now() / 1000); + const duration = tsNum != null ? Math.max(0, now - tsNum) : null; + return { id: Number(r.id), kind, value: String(r.value), ts: tsNum, duration_s: duration }; + } + } catch (e) { + console.error(`${kind} API: join query failed, falling back`, e); + } + try { + const res2 = await db.execute({ + sql: `SELECT id, ${column} AS value FROM ${table} ORDER BY id DESC LIMIT 1`, + args: [] + }); + if (res2.rows.length) { + const r = res2.rows[0]; + return { id: Number(r.id), kind, value: String(r.value), ts: null, duration_s: null }; + } + } catch (e) { + console.error(`${kind} API: fallback latest query failed`, e); + } + return null; +} + +async function getSnapshot(limit = 50): Promise { + const db = getDbClient(); + try { + // Only transitions (changes) for state and event using window LAG over time + const stateRes = await db.execute({ + sql: `WITH ordered AS ( + SELECT ps.id AS id, + ps.state AS value, + rf.timestamp_epoch AS ts, + LAG(ps.state) OVER (ORDER BY rf.timestamp_epoch ASC) AS prev_value, + LEAD(rf.timestamp_epoch) OVER (ORDER BY rf.timestamp_epoch ASC) AS next_ts + FROM PhoenixState ps + JOIN RadioFrame rf ON rf.data_id = ps.id AND rf.data_type = 'PhoenixState' + ) + SELECT id, value, ts, + COALESCE(next_ts, strftime('%s','now')) - ts AS duration_s, + 'State' AS kind + FROM ordered + WHERE prev_value IS NULL OR value <> prev_value + ORDER BY ts DESC + LIMIT ?`, + args: [limit] + }); + const eventRes = await db.execute({ + sql: `WITH ordered AS ( + SELECT pe.id AS id, + pe.event AS value, + rf.timestamp_epoch AS ts, + LAG(pe.event) OVER (ORDER BY rf.timestamp_epoch ASC) AS prev_value, + LEAD(rf.timestamp_epoch) OVER (ORDER BY rf.timestamp_epoch ASC) AS next_ts + FROM PhoenixEvent pe + JOIN RadioFrame rf ON rf.data_id = pe.id AND rf.data_type = 'PhoenixEvent' + ) + SELECT id, value, ts, + COALESCE(next_ts, strftime('%s','now')) - ts AS duration_s, + 'Event' AS kind + FROM ordered + WHERE prev_value IS NULL OR value <> prev_value + ORDER BY ts DESC + LIMIT ?`, + args: [limit] + }); + const toRow = (r: any) => ({ id: Number(r.id), kind: r.kind as 'State' | 'Event', value: String(r.value), ts: r.ts ? Number(r.ts) : null, duration_s: r.duration_s != null ? Number(r.duration_s) : null }); + return [...stateRes.rows.map(toRow), ...eventRes.rows.map(toRow)] + .sort((a, b) => (b.ts ?? 0) - (a.ts ?? 0)) + .slice(0, limit); + } catch (e) { + console.error('State API snapshot failed', e); + return []; + } +} + +function ensurePoller() { + if (pollIntervalId) return; + pollIntervalId = setInterval(async () => { + try { + const [s, e] = await Promise.all([getLatest('State'), getLatest('Event')]); + const newRows: Row[] = []; + if (s && (lastBroadcastStateId === null || s.id !== lastBroadcastStateId)) { + lastBroadcastStateId = s.id; + newRows.push(s); + } + if (e && (lastBroadcastEventId === null || e.id !== lastBroadcastEventId)) { + lastBroadcastEventId = e.id; + newRows.push(e); + } + if (newRows.length) { + newRows.sort((a, b) => (b.ts ?? 0) - (a.ts ?? 0)); + const payload = JSON.stringify(newRows); + const chunk = encoder.encode(`event: append\n` + `data: ${payload}\n\n`); + for (const c of Array.from(activeControllers)) { + try { c.enqueue(chunk); } catch { try { c.close(); } catch { } activeControllers.delete(c); } + } + } + } catch (e) { + // ignore single tick failures + } + }, 1000); +} + +export const GET: RequestHandler = async ({ request }) => { + const stream = new ReadableStream({ + start(controller) { + activeControllers.add(controller); + ensurePoller(); + // Initial snapshot for quick render + getSnapshot(50) + .then((rows) => controller.enqueue(encoder.encode(`event: snapshot\n` + `data: ${JSON.stringify(rows)}\n\n`))) + .catch(() => { }); + request.signal.addEventListener('abort', () => { + activeControllers.delete(controller); + try { controller.close(); } catch { } + if (activeControllers.size === 0 && pollIntervalId) { clearInterval(pollIntervalId); pollIntervalId = null; } + }); + }, + cancel() { + // best-effort cleanup + } + }); + + return new Response(stream, { + headers: { + 'Content-Type': 'text/event-stream', + 'Cache-Control': 'no-cache, no-transform', + Connection: 'keep-alive' + } + }); +}; diff --git a/apps/ground-station-web/src/routes/trajectory/+page.svelte b/apps/ground-station-web/src/routes/trajectory/+page.svelte new file mode 100755 index 0000000..b347dad --- /dev/null +++ b/apps/ground-station-web/src/routes/trajectory/+page.svelte @@ -0,0 +1,374 @@ + + +
+ +
+
+

Trajectory

+
+ + + {#if latest} + Lat: {latest.lat.toFixed(6)} + Lon: {latest.lon.toFixed(6)} + {#if latest.lat_acc != null}Lat σ: {latest.lat_acc.toFixed(2)}°{/if} + {#if latest.lon_acc != null}Lon σ: {latest.lon_acc.toFixed(2)}°{/if} + {#if latest.num_sv_used != null} + SV used: {latest.num_sv_used} + {/if} + {/if} +
+
+
+ +
+
+ + {#if connected} + + {:else} + + {/if} +
+
+ {#if error} + + {/if} +
+ +
+
+ + diff --git a/apps/ground-station-web/src/routes/trajectory/api/+server.ts b/apps/ground-station-web/src/routes/trajectory/api/+server.ts new file mode 100755 index 0000000..055d31e --- /dev/null +++ b/apps/ground-station-web/src/routes/trajectory/api/+server.ts @@ -0,0 +1,140 @@ +import { getDbClient } from '$lib/server/db'; +import { json, error } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; + +const DEFAULT_CENTER = { lat: 47.986877, lon: -81.848765 }; +const DEFAULT_RADIUS_KM = 50; + +function computeBoundingBox(lat: number, lon: number, radiusKm: number) { + const latDelta = radiusKm / 111.32; // degrees + const cosLat = Math.cos((lat * Math.PI) / 180); + const lonDelta = radiusKm / (111.32 * Math.max(0.0001, cosLat)); + return { + minLat: lat - latDelta, + maxLat: lat + latDelta, + minLon: lon - lonDelta, + maxLon: lon + lonDelta + }; +} + +async function getLatest(lat: number, lon: number, radiusKm: number) { + const db = getDbClient(); + const { minLat, maxLat, minLon, maxLon } = computeBoundingBox(lat, lon, radiusKm); + const res = await db.execute({ + sql: + "SELECT rf.timestamp_epoch AS ts, p.latitude AS lat, p.longitude AS lon, p.latitude_accuracy AS lat_acc, p.longitude_accuracy AS lon_acc, p.num_sv_used AS num_sv_used FROM RadioFrame rf JOIN SbgGpsPos p ON rf.data_type = 'SbgGpsPos' AND rf.data_id = p.id WHERE p.latitude IS NOT NULL AND p.longitude IS NOT NULL AND p.latitude != 0 AND p.longitude != 0 AND p.latitude BETWEEN ? AND ? AND p.longitude BETWEEN ? AND ? ORDER BY rf.timestamp_epoch DESC LIMIT 1", + args: [minLat, maxLat, minLon, maxLon] + }); + const row: any = res.rows[0] ?? null; + if (!row) return null; + return { + ts: Number(row.ts), + lat: Number(row.lat), + lon: Number(row.lon), + lat_acc: row.lat_acc != null ? Number(row.lat_acc) : null, + lon_acc: row.lon_acc != null ? Number(row.lon_acc) : null, + num_sv_used: row.num_sv_used != null ? Number(row.num_sv_used) : null + }; +} + +async function getSeries(minutes: number, maxPoints: number, lat: number, lon: number, radiusKm: number) { + const db = getDbClient(); + const seconds = Math.max(1, Math.floor(minutes * 60)); + const targetPoints = Math.max(50, Math.floor(maxPoints)); + const bucketSizeSec = Math.max(1, Math.ceil(seconds / targetPoints)); + const { minLat, maxLat, minLon, maxLon } = computeBoundingBox(lat, lon, radiusKm); + + // Less distracting decimation: choose the last point within each time bucket + const res = await db.execute({ + sql: + "WITH cte AS (" + + " SELECT CAST(rf.timestamp_epoch / ? AS INTEGER) * ? AS bucket_ts, rf.timestamp_epoch AS ts, p.latitude AS lat, p.longitude AS lon" + + " FROM RadioFrame rf JOIN SbgGpsPos p ON rf.data_type = 'SbgGpsPos' AND rf.data_id = p.id" + + " WHERE rf.timestamp_epoch >= strftime('%s','now') - ?" + + " AND p.latitude IS NOT NULL AND p.longitude IS NOT NULL AND p.latitude != 0 AND p.longitude != 0" + + " AND p.latitude BETWEEN ? AND ? AND p.longitude BETWEEN ? AND ?" + + ") SELECT c1.bucket_ts AS bucket_ts, c1.lat AS lat, c1.lon AS lon" + + " FROM cte c1 JOIN (SELECT bucket_ts, MAX(ts) AS mts FROM cte GROUP BY bucket_ts) c2" + + " ON c1.bucket_ts = c2.bucket_ts AND c1.ts = c2.mts" + + " ORDER BY c1.bucket_ts ASC", + args: [bucketSizeSec, bucketSizeSec, seconds, minLat, maxLat, minLon, maxLon] + }); + + const points = (res.rows as any[]).map((r) => ({ + ts: Number((r as any).bucket_ts), + lat: Number((r as any).lat), + lon: Number((r as any).lon) + })); + return { points }; +} + +export const GET: RequestHandler = async ({ url, request }) => { + const minutes = Number(url.searchParams.get('minutes') || '240'); + const maxPoints = Number(url.searchParams.get('max_points') || '3000'); + const lat = Number(url.searchParams.get('lat') || String(DEFAULT_CENTER.lat)); + const lon = Number(url.searchParams.get('lon') || String(DEFAULT_CENTER.lon)); + const radiusKm = Number(url.searchParams.get('radius_km') || String(DEFAULT_RADIUS_KM)); + const useSSE = url.searchParams.get('sse') === '1'; + + if (!Number.isFinite(lat) || !Number.isFinite(lon) || !Number.isFinite(radiusKm)) { + throw error(400, 'Invalid lat/lon/radius'); + } + + if (useSSE) { + let cancelled = false; + let intervalId: any; + const stream = new ReadableStream({ + start(controller) { + const encoder = new TextEncoder(); + function sendEvent(event: string, payload: unknown) { + if (cancelled) return; + const data = typeof payload === 'string' ? payload : JSON.stringify(payload); + const chunk = `event: ${event}\n` + `data: ${data}\n\n`; + controller.enqueue(encoder.encode(chunk)); + } + const push = async () => { + if (cancelled) return; + try { + const [latest, series] = await Promise.all([ + getLatest(lat, lon, radiusKm), + getSeries(minutes, maxPoints, lat, lon, radiusKm) + ]); + sendEvent('trajectory', { latest, series, center: { lat, lon }, radius_km: radiusKm }); + } catch (e) { + console.error('Trajectory SSE push error:', e); + sendEvent('error', { message: 'Failed to fetch trajectory data' }); + } + }; + push(); + intervalId = setInterval(push, 5000); + request.signal.addEventListener('abort', () => { + cancelled = true; + clearInterval(intervalId); + }); + }, + cancel() { + cancelled = true; + if (intervalId) clearInterval(intervalId); + } + }); + + return new Response(stream, { + headers: { + 'Content-Type': 'text/event-stream', + 'Cache-Control': 'no-cache, no-transform', + Connection: 'keep-alive' + } + }); + } + + try { + const [latest, series] = await Promise.all([ + getLatest(lat, lon, radiusKm), + getSeries(minutes, maxPoints, lat, lon, radiusKm) + ]); + return json({ latest, series, center: { lat, lon }, radius_km: radiusKm }); + } catch (e: any) { + console.error('Trajectory API GET error:', e); + throw error(500, `Failed to fetch trajectory data: ${e.message}`); + } +}; diff --git a/apps/ground-station-web/static/.well-known/appspecific/com.chrome.devtools.json b/apps/ground-station-web/static/.well-known/appspecific/com.chrome.devtools.json new file mode 100755 index 0000000..9e26dfe --- /dev/null +++ b/apps/ground-station-web/static/.well-known/appspecific/com.chrome.devtools.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/apps/ground-station-web/static/android-chrome-192x192.png b/apps/ground-station-web/static/android-chrome-192x192.png new file mode 100755 index 0000000000000000000000000000000000000000..b819147d292985839d0c353d660b1bc7d6015df8 GIT binary patch literal 17697 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 literal 0 HcmV?d00001 diff --git a/apps/ground-station-web/static/android-chrome-512x512.png b/apps/ground-station-web/static/android-chrome-512x512.png new file mode 100755 index 0000000000000000000000000000000000000000..88e032ceff10f8f2ccf824e59be38893a969ac5b GIT binary patch literal 70537 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 Dxi*@R literal 0 HcmV?d00001 diff --git a/apps/ground-station-web/static/apple-touch-icon.png b/apps/ground-station-web/static/apple-touch-icon.png new file mode 100755 index 0000000000000000000000000000000000000000..167754d22ad7d53e58aedc511886ab40fb6ebee0 GIT binary patch literal 15781 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 literal 0 HcmV?d00001 diff --git a/apps/ground-station-web/static/favicon-16x16.png b/apps/ground-station-web/static/favicon-16x16.png new file mode 100755 index 0000000000000000000000000000000000000000..9c1f475e66a141402f2301f36d36607808b229a0 GIT binary patch literal 744 zcmVP)Px%qDe$SR5(v0jD6jp%QTx}#0-3zK&K}h(A6bg3V_B9=T4WxVm zHtz$TE3K;SvS6K|I8vw6UWkyS0%Q7WqSq&4W+seK`$c4UTyW`<%8!hHXr!!u)~DR6 z7#pFmY^gpM6B})_*XAK5HBn4zbQIXM5wA**p}uE$ED-eTyC0k#7wyRdXQ9PfzLt>r zZz?NyX-uY6p}^2*&~4cW*ldU{DZ!1-$GCFY+wAo;lnTB6Nl;m%(`ip!bsgo^;Cw6m z_FD8uMZqvQ2uX^B-ygv4J&rGKw_~X?esuADFN6)79VpDitSX54q5rTcuRU$QaDaFK%@v$b|$}g-on2(d;U#x=_C3LgzXSU=Is2*_r?GjO;w7hGJl)BH7@wQfjZW aHpO4%mjErWw&RQd0000Px*$Vo&&R9Hu?mwQlD*B!?{=UmujAq0F8J5FkvkSVcN8%TAKYB4-@5)1VKZN>4G z{t-(Aq(~X)P^U8r#v~<78RG5oi>f-kyX}GO5;RpN$aCcEz%mL2|mhemu2tm z++Fr@cQ5K6J%8PM?zz9;_k4ff-|zg6;QulNphZ{;pEX;h&jm(sfk2>{n7j+x2oJuA zP`lwk4FHVh1qjV-V+a9S$ zky1VlB0lmLZ7|L`a_nf=%c~VgJ`bFS>%)R2TQ&Y=V9)>JBP47Xm=I)U?o5oa#WV=y zc0hV1BL#^GaU>-rGC8So?b;AyV=mTS?q%DhE=GY)_;>TZtDbw`DG1h4E^1n=OZW{CFCn2Qt?!fJy2MQeV0 ze!^C8=IlYYd8P4*cG^0SnYlT}YMpyRO1Vrokeob^nwnzf&YfwX%%^+}v0($e^%l2M z7EqD0hU+egrm2V9+xKk=t44;z^8zqqAun(D^HM6i^zUC-_z-)3unC*ZI^{eJds7pX zm7zWQDC)_Re5_iiu6~`HH-|Nk$NkOD&gYMs$SeRPU?}#o9Q^`dzke^@u zBZPcTXQuSI0#@Ze5sa3e^xnWvLPG=8*W>hf7^E4t$YqY&=GnqYu^NF7E8y ze=NwgKl1)WG}QHaxhmgz2_chb&Wz{Kp-Q5o6{B3voPqK(=>9#ofz$WJ^VNS|#xi@h zVTb+w*V(b78C6wVJKFaanH?VyB3!ntBq<@`!D|}Gm6?mFs@mW)>JNKW75wa{;B+xC zG{hNT{`T#pzV@mYWT-k+)k8_ies0{j{qOeneV?69j0V)%+0~CnN6WMNmI(I2?tKWak%kLHjbVizBV+35@QQ^53rzVyzt^LvD?ow zKJJ?1a2)tF0zgm>zE7E%yHad6>jnLJ=gvZM^PULoO6%`O9DD?dRj7;QQdA!Qak*H2 z{9Ti}t`~bjLt`rr$GOqlx1Do(dtV&CD+7xbZH${Y@4-(%*ouo+vT0Lx@SoOJI8}sp z^gj5-uTe9;f?~CV*o>@g6&0^=;lh=^_V#^?{pn`jkW9@Ap^=wY{W~G#^2LiEX7Ao@ zUhQ}j<|jXfy*to$HzS_iVOmE+A-G&_ii&=S)9GsL=xEq&S_eW;J%1;doBQ2wD@ydi zC`Iym%P#Ms;~gz6P+biJ17Ncmvm-Q9rns!;^4Yjp!>Xa$%zC8C8mx+l87(R* zkfwu!H)&~Ur@Q+vH#E(&siULectp@cVGBb`HhpW7lT(%58NPqlcQrbmvo zl}|reC>#z=g?jZ)kuk07*qoM6N<$f@CFwHvj+t literal 0 HcmV?d00001 diff --git a/apps/ground-station-web/static/favicon.ico b/apps/ground-station-web/static/favicon.ico new file mode 100755 index 0000000000000000000000000000000000000000..a558da05e37d9286bd0de0deea6015e32143bafa GIT binary patch literal 15406 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 Y>T)XAR(ULJRVh$iJpV8M&t3xm0Q*g2Z~y=R literal 0 HcmV?d00001 diff --git a/apps/ground-station-web/static/icon_bg.png b/apps/ground-station-web/static/icon_bg.png new file mode 100755 index 0000000000000000000000000000000000000000..bdaf015ad09ddfd38f8e94fea44177fb8936a8b9 GIT binary patch literal 9701 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�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 b(EbsU7ccZzhMt(nv4faahM4$^v;Kbo>P?p+ literal 0 HcmV?d00001 diff --git a/apps/ground-station-web/static/site.webmanifest b/apps/ground-station-web/static/site.webmanifest new file mode 100755 index 0000000..52a2fe3 --- /dev/null +++ b/apps/ground-station-web/static/site.webmanifest @@ -0,0 +1,11 @@ +{ + "name": "", + "short_name": "", + "icons": [ + { "src": "/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" }, + { "src": "/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/apps/ground-station-web/static/textures/cubemap/road.hdr b/apps/ground-station-web/static/textures/cubemap/road.hdr new file mode 100755 index 0000000000000000000000000000000000000000..22f7127bfa286bcaa2111bbb47178a5690f81fba GIT binary patch literal 1482793 zcmZ_1SCCxScBVNeT@^s`I`urwOHa(>L`Mt>5GV_vs^C!`-kXB=;Jwnk!JM=AK0a;v zDipj2J$Wy$x)rUK)RMYmdSYhO6Wt?CL{E3L=n0Y_Ksb^$-`a_*rXnO(?mQo5|$bLzd z+oQHC?IUe*`)u32Hq$!RrU#P2WFQ@!9k@GS2E&2sU^MWjT&Z$CJ2*S22felaU~z42 z&|Mo2>b1qenY9yx(OP-V4C;X>2*cSR2>dYNtP*%($T0}2Jg#waD^$U3_^-ntO2RAA z`S5;J3n!w#483SJ^m*M3WA@D7{|e5?@8a__yY}Z-t)?wtMEp+wsa3aq(0a8kY>nGu zey0myowS z*LiC%u5%b>?FXDI&PUg|YyEZc+F;$^uJs1Z+P@fd2ExJD2d)L4|IY*Cd%;CN3S53^ z&;K$|q08UN4T_;3{7tAM6TTU_;lGW_u^UasCYp`YIEhrOqbR-=1@T1WgcqWazuTXL zCI~_&i22L<;oX1quc!F*b*pO2wYIjl-EMVSDy^zTx4zZV*xK6C(!$lCMYUdR`LkB1 z&F6KhHDu-}&NVaRdYjuCw0W)nqD{3M<_w=iyR+ye!W^}*84njg)7cF-=0tL_^Wj@Og?vQI;hrO8w>`#!J7mBr>~6T z8`J1>XMErPjfwpRIb~=+G`IY`%uWBzz~Qe|2xVpl33q=S{=4Yy*iEKlop`ZH#^N-| z#c`bI_`@X6F-d}0B`(8@1FkyBAI1)!g%_m^9S4!a=i-J*I3~ z@c;gdo;_2a(^G91_^W%ZrX_DbgQ*s$S+%&$K})W=xw%C(|5ZzY4~CED79ZH3wf=kl zv=wG}p{=dGy{&EBp0u^`S$K;swMR_ztBV|_x?UVE@)l1mau&yna*G!);)1&|h3`KO4z_ONYkyZobV z?Oaf8nhO^O^8NjU#4SGEfT8+xef@p?|EACBHw@jE?eFjVF+lKmHs~;h=_te z8l1a!?b^Y?LAh6J-NCo{{2O?%j`99F&8M&VtY_EHuJ<^*L_jeE*6MZduYH$qFWFC9 zGmqkd%YMfAH;t<+rl=iL(pjU8(*MrnWC~0XWJRCA@_hpBdXVMwz7ysn;)V~&1%Mnv zD--kih0(A1_=EVp#7Tq1PYX$!rb(hw!vmFEO1&gX85amxr3Wd<;GTBm_`zs+fvqto^}AE@R7 zb=v=Sk-OMuD285CV0J88%zP;xy%VW`s;^*V!z7-dB&VjeJ-QGyy)v=l6>6%?!XI! z0;^01?xzO}^@$O1vX%(~J~)H#uFbAnw{~(}9z0mL?!T;eHkkFf4FV1ug7q#BoDCu8 zYW+JKob}Ti8rQGiz_T0Hmo^kQ=Na0>`gQY1z5{;W0Yh{!8ipY8`RHH9*O>u2`M0T4 z98TvJi^Y_$Vw$R=N^|nCRCLm$=%%JvNS{CR5_3#mRUav@%-aW7(ma5ZreTs}5;7m1 z^crx)wQ8&)FpYV8Datd8BNBxZO^0s=dFFT!{Q4i6T-CO#tvQ(??=f9&F(O8_#cjRK z@l$Z$ZJ8vyCV)1dYg^;CY;Pr(?uS*YPI zYR?JiTw+GgwB=-GMFSK4jQ|ZZsK5WO`kdbXXu&4Oq+)J0+9!Cf*yr~b>}&c;{dr#7 z2SAy=Tm6$HawglQ=W`7R@&<3My+G=T)_uSnN!Gu}q_H=dWHFQHFE+RvlMM|UH*VOl zal=McKijZzV|l|1a*Z>&t~WRv|71g!si)Te)J{Qr$9rtxO>^t)wDVyMQ%q{Tw#=lv zHTcfJMN`mBEn_BiPHCkQ?I^?1=cqaUM@))?(_a#Un{gB+ahBs~bUBn%DiqIQ;*oWOn|@>zKVCtytxvZ7hjA{? zr`ZapfQPgRrE3X6EZv%Ab}A+#>95siOn_}uEd{b5H{HzSZD}?wzMM#69Ba}R{%X8z z%z|SUaMaCn0gpNPsXYMLfi+@23$yxnd?Dt6w5lvi;h`e$B4ZV1LQG-MfELSg@ zX!jroIfOy=t~TY5);18 z5*PnLxx|J`fMhsoPbqK2&3hcx1?>_na6x^Andm_K+(7wL6d{+RY#c|UF_Swkg04WS zPa?0S<)TY4cnni|fmo5Kkh{3#7T+s5<+PM7mrH)xDV6O|T&tG6a;fB&eV!|ohf4(s zv66k8z{XZ1Zy+&O;@wFEd4c<)CPNhYHxE=kw1k-<<($InA3-Qkq0y7XwVG51tWVJZU!wXAv z$6TgsM~B>&sE%++gFWw95_dQ}&Mo2cT~33Jm*izUviBXsOA7S|V@sTltMc!VCLG>y zYVj@N&rWB*eXb-0n-!=r@-{oD_Bqe5NXbzmb0u|Dx!C&WeL0!ps@LiJqh6;c>YePF z)7#V2)5}-SUvbsg8L#^ayoyMe?8}in`bPS13|t(ntgWq!*Eb0EgWt6cf4*^cQ*l${ z#!VYHGB!Rh6xuh*mO}!%5jeD5Lbkp zFrP<5GF1>pL6#hG(Z6A`q`8<7j&uVt%kN}ESgC(_PN&RX)#AZ^4MR7N!+-_6o11+Y zu;9FDc3OgFrzvQ5n|y|x$1>Yxy8lrV8Guo4;w_ro=9p3Cal%oNKV-N~DQ}_4A&Q`R zy_M`l!9^fY;$)d+2?_#aNGhXvQBgRtKr(oplliNd&c%*&N#0K2Vu#BWcS&R?xwGU_ zhtoOU@w3j3j!p)5_4~AAjy;hpsw3!hI&`Pzr8P#%xAMG%ii{4zj<>#H-&p=l9;l8o zF|rtf?(hQ@BpXq#EuLIdY`@#)Lc$G2d(9$%kUaiU7ViHq!a((!o*V(t`!9NO-Q7Li zNsrTgi7P~fvIl_Q=`p=|iIm>ao;Q0leZAGb3Q=LDj}frHxK6NpT>_^r$n4*^A=+5o zRM@zW@l5lS@AgG`sGdejhhIcbfdRPZOn7JaiiLl z<=W)Nf&|irjU|bqgwjuu5Y|!pJL@k9O)pE8KadyFHh5N)Ne&vP}$tDbTLjx%1C0Gm*+lM3>}uk^SX@yl@b0%!|+t^&SJRHfE0Nwk!Ud5imo zSsqnxS2MNhuWL?qlu=?7Yjdl$8n;@tT2u0DSj+OTT+K_&RL3f$2%;rRpiB^UJ|hJF zCy0#{5}y$&H44`AZxb8Ua5#uWov^_?@tgzd*iU6q7M$oCdCOTb0f~3$%gc#oA z1IBnqwB*I-gve%}m;&VdV(1tVP+3%MFSorYjFO+rjxy!UC8>E@NQjfnZ>KluaeM!i zDX-x;4#VsD>u#nxfe`i-y5*$DbZ0s8;_flN!SuXjlZMS2M9D~RiBcj<2@;}ejSW-= z)3p^QtGg~;A8trCMw?2T$G7CRZrQRW*y?Q2TZ>zqt!hiMHMec+wr$B)vn9KA%hrI4 zF~i@|D6eE}{mU&?V#T+y^7f|DjWN84fEcA_SicSdq=M9SabSij+VuMrJ5|yfc`NMI zUe0B11a5)3&x!9ko@V@^>zsSfb>g5 zNhL}pp`4H6Fs(D9*ss9pl)0iO$&H>G`A34nX$hJCW#)ew@K?71^mOP6+W*EO@$S>`V- zEL*yaD{7fp`VtW$&)HWjt#yS<8|vp>wWU9oXY4m}Np4GZSKdC>UCvU!D@$aVdbnxA zX`(aJ(K*@Sbzba`&a*_7+Oha{!T8_gkc*Qq6{x zpnI?PG?FoTBx`7b#h&V(hI-WW{7JX7#_!Iq>F(BRa@}jzbcbsQvo(couB_q2>5drc z`IuhwBCnCB?A`h9%ROmt(l^#$C8DSSh^p$k^7?2)abvtG-kjO8IowhrhPG|nI=Ri+ z?r&4uoo!>=%iAhj({0Yy>b4xwwJqA}Z1cC~w{6|Jbz8`JY3t|~MHZ@T&TrbhX)`&= z**vi+vvE^-W0qVKZ5aN$L=zCh6@pBP@?}Jln z`kdqbHDj6)G1NKZ&N=6vbBQC8IjcYTM}jYH{t5I;_*b(%Lcv@+-foH)dQB2f z6AK#%F2ZYJu%L0_0tvJQ3vVsRzPez6c{RU)!vgiHyI}0q+Jd}&S}n-&iUl(ZqoyqH z95l}$R}D+6A#P8RqNJ3D6%l1YMdcaxDpJ%4Bg;uC6QP4S zFfp}=8lAK>ZB?%5cX~SFJ2lD#gsj@yXvJD`C=882%L%Df&$Wt{QnT*O^z;t*WV(Aa ziRzELa}p;KQYqutYn;`iYt(AJX3pw0t5?fdGqHMV%}jT#C+to8YBa5+Y9AfUtQ{<` zjVNWp4dso+P0?n5OL=Q?TW0&Vc)P#D*{*hEw{PF^4gry3 zg&-Q)GP-$WQ)y#PNL~yrtM_B-+PrTo_A+fQwXR6aR0mMs`Ulefhzuo-fV@@bDt$M5 zmD_NRxL{Pzsk6Cr=gyur=NiwRJu7GD{Il*kebzZQ%5mhZI`?~AljrR7@&ZQfoOAZq z=K@k%%&5WfB3T+7_%{k~@F>Zv|AuvQ#KoS3JkszuOKsB%NdCYhh+<%0~F|Tb+;x{+e zEA-~(Yh3V{?ITS^Qqs)As|%c0&4N7f@#?F=f|*yH`R8BFa&8v5uZ}Lz3*7~^g;{b` zN>MY`GA+a`ksyiMGm9wZm7ShK&jKkWmMkfCgq>qu!O|=NP+ZoqeED*MWH~8lxmlK7 zzHGUc*jT#M)I+4S>;(xA8zRe=jxNi|tApjvvgzeNmG84R4t%L)?()*Itc{>7S*l2G zQj9A6&gmjCb(qenj=WU>hL;Q@W<}D0K*!=%ZXatKZT%V1@w+Gy5=TMfA!m54GmzUX zq;{-ly4ziIqq|{EJ#(g5)zrF)Sc<+F85^N zb4hR5SA@m&_g4log99V97!rac+7NCGHkHXW*{xf*L|ZkfCD>NnKE5NnbH~m*#LABC z@9%JS-rOP4vLoFdZOf8(Mz;=cDQ>Q8%2CKr+oT(4U2T|JU!p5aZy_2S9jNu+kQCB4 z-J7MVih6!REXV|ZKD*7iJIw#+Y+kMs3wf@ewb$O_dPrO-0>)u@XGd(h$&qNzmE9~c zkWl()RI8ZAm(fMSAf^#qv?^B;*OHKygDGXoL;!S;f+Zc+BbiY<^Mmoy#GT2^#AIbDq&Qq4zmS|lsv`}l3oBtc zlDtxazmZnrOcbY*+@dHAi$UxMQiq}9)pUTsq16SOPGG2#Q>rfD;JW2=|8RhW)ar_I zMuH=3a!#qH7fv>vJbCiO3Asy7I;X-WaPA=3ZoRiVV!6M`5Vg-jR*Yt9C#rX2P1lV%kmgs^k z!W(~=se}%yr8yyvHPRGCRI z1>G1SrlGg0Ie_5R8J_BPdxCCfTyf%0HZMCORZ z<&(H78_gzvbG#+9b&F3plC-vEw{P2)ZqM%6vE4{$?g)04cV&0(+!gHP+Rn-jz0=td z?sRwj=bagOSlnLPR<=Q!Y>NMz(qId$VdAt%kOBn##OW}NNt?H-eRa{qM=2b&VXJxy zHf+z0opol_+05)&f7bay&*pxZo#k-jteMT8ojqHdojKbuJImSG**`y z@`|cxgET_Xb*cKX5s<4Qa#f7sfYx8Vx10t9tbzB%qA;kMKkO5&{#Z1go0u3MHxrr3 ziD*(yIg|cWW_l`~cFxDs<2;<1a;8fRj+1&SGdZOvy{XbJ9Y1#LXz|!w4#ybB zj~&&=az~FIJ*JL&N6gXUk<8&E!C`&KIqV0yRT{0=3> z7Cf`7v@}|lE^k~R(aM*C)GNrTHk>t~Jxchd624p-Uy)zAf|o`sUR)_B-0{UX zI4i>yxs^OLE1eZ;Wl)cQy&?iEoaO1V%+h7UOGmmU;h!C7D-Jj#!a7mzb`+QRi;>oC zgQ(s`N@>(aG;j^-i0!w9#CnYwpKL8ier;_X6Dt9~V$z&E=bJ!$9tt!@L6Ie}&Dcv6 z7xGx{$Gg?|&$}r)#=5)Z8Yl3iB3w$3j*U2@dc+~YNODMrE450sAo_BpYAWu^pi*Ah zuxjN>ZY!&+vYKYgesI25Ka^*kv&s$^U@%;Z84;uS!%qN=S%$oxn+8Uz zjO(-R*sVil-6zxMtG<)ewA1TAoQpn^T(YD zHSS9;pPVq0=~Q((bAH;KcV_f?er>4?L8Vutp>E0g+hjY}R2sk0sw@8wYikXyF)^pSVKX9QL9}?oHrlK=S z7a_e_D#pkgbpvQie6CQZJmzfe%=@REGs+J4%T$CIa=Ikv^Apj)z5JZre zU%67Pm@7y7wIW=Zx8YwQ*d^c<2r#^&w$fcyTv=GPlGM2}UNy%aC3N(vpVlLY>)gPJ z(#m8-2-yaOmM)8yPKp8~47;mhOVpraVo77YUAJV(7!>7vd)k(Q0MhjKC`PkjTHQU= zLKiSa^s!PhIIJfEK>~tajpZcxQAQF9)@xjwRol43VOE3{ zIK5XagO6yB=O^LF-Fi0j!)##VT7B>Q5Ptu{58r=J{C_WB=7%ij8XRzVjsJb-yYJ0+ zz`}R=@4x%*`|rc=8aRH(DBA1#yPP~$-{<6-|9y`4;JZVViAtU&zhyRQZB8lgN|ljC0=1Bv6fHDzLZ^jcLk& zV7MrHu3zYB_m*v&}L5z>49xENq9fK_BBe}ze4<9jy3x^IJI(+DGcqnu5P&cSV)`UwO_NADHGzgU%*i3bR4ASE z5LD2eic%m8RoBbLC5EBQ8lmjk;Dg85#9PDkKClg4BO8 z>D{TuC?a%~D;lY#h()4SrYyBeAnJ#nOccJP4*UQ_}`W@F$}2aLkOV5uf_Phb81_hE}4oc`lK`3jhV|HrUt^>d+&M zlomDXSKiT(l?)S}`H}92Kem6?!W^6msUZ9PI3r|61l09Ia7A7`{$~KuI{PYSI*hxtdx+pF#~c zf+Nt&;o<38-k!y_-)@^0#%7jkxkx+xO-6+OWE{%i11SmBL)`1)^Qj;n1OowlApkuB zObH>nLAWK{>Tip-m*EJRT{}~u3E}Q|&&<%py<_|4*pHFVZ@=2-?2q^5_U_%cZ+dS5 zAOTGDP_if3o!LeC5bun3nC&rDLY8K2x}}8Pmtt>=txX}Z{se<(t+8&98^o^Q55)N2 zi@hT~qOJA#=x6bS5uJH-EGGdSJoBICo;-Q_R6lVU4kP>Y$&>V{dX{<0bIz0KY4*v} zC;DmO+0&=I&R$pc(X(ey!)Fd7`}FBE_0)M*=GnPVpFQP`WvHiFz9)E=`R-XHqyvD` z-#dU$^@nIS5m_PzIYI=u0L?JtV?oG5BMjgnM$#Bo@8gTZ6Kc)LKGlXsIuC5MLDGl+ z87hqs};)@ALp)RS*`jWovT#7Ewxpe8$Wp0-*g_kc}aju3} zvX?Jki7sa@UG^_2@I~O|l7G>?pe~vV{)_=xf+-`?V=#ej!?H_%IJU?V!ZM^o%+CnJ z2G(e($Zn;?5K2lw7o^L!03czVQ?=M1w{go15+PnD@rNx z_tjljvZg?{%aW{=HA_AgFZZW=@<`$1^96D-gugu2%ypjQ}d5 zE2DHg#no1Vn&4og;!va_w64(la;C93$2c^lHKZxK%7UoLs?6$D!RpK!N|9oBM4O;M z9YX83%+iH~QbZ$3vNmNyW+SSkzbTL9NjlR}ouBCK;f~Bsgo#){#_Ue__(Pe!LsNUl z_m%hONF4hW>`@&U+5e&>3_wTj_oe$w`+~jUP_zeJ+GTczJHqXGy4l;e8w?{czK{~C zrD1)8SY&DDt&QuINfpMVgrgX6F9B;!R7RlxflQ_>byT~RZ(NB7iCqAfX;=c zbW!kCd|}K7gHOvKv*<7*xFSvPF^U!KQOMBNH}qpPdd`dgt=Rkid;dEZ#uf;h19@jp zfAu3Y`A=tlV}Zm26P&~9xefsm%sC?Ehuo@h3KD(E=Oi1L`91G2=Y$@dkyK@p&O?`7EL!HvQ8_54J+3J!kC^Bx_L3} z?o#(0V8$X%cT6L}VQ4BPQAc8g)y%TxMLPN7naT1`r(IV&{f^8MN*nwwW^oB`OT=Qu z2yY8(J7Fa9n}~MH`YDk-ImabU_l9N?Oy$%mjkpOr(v>*juol-QLo^LY;4p?GF!R4j#B* zb4cZYv%h?x@p+YcAl;wYw?Et$?hS@C1Sa0)11g#ANFQNc=?v*tW;TH<5x5ep55bgh zuq04Y>A%pI;(9~lpvX~Rhz39M)PSRiJ7VlgLp*gPtJ>pY6T{mG+mAAS4n z-;L=6e&j!PpBRV_xKezQyc3>hbL9uYZIte{<#!ExHJ` zNDnnW$Ag3Zp@zeUg=ugx%SHcS15&4m8Jek5q6>2HfPZi<81npOO6nc??lP}L6D3<2 zq>u`i{**klI^(r8=)+{(KrK^XK{Vr!XeuF!s**Dz1!B zO*J;3WlNVWi)oqyVqw>CXB8aLteRzo0gxB59!;|}B5J+X;<8G&*xdNbUs}*OrG$Q% z6Pe@Gor(%F2h%&MjyQ0@=RhysdOrRLya*6NN|eHpg%i-EZ0q8j&}&^^9%xt|D66y3 zPiX&DG1!AO3KOv^{!9#+_QpZJB~IrgtP8X^jrAl*YsGj)3g!f>C)WgGYUPjNgE}$h zZJ)BpX9aCQS>z+C1e+s773_3d@i_S4O}sPM74J5CLXalim+a3n0Rm=7blD%-X#(rn9ngu@(3oUfuvKHf18eYAuwX*5 zuopLX3fvS2{QfNFx{@`r_8PlVBknB$Js=N-k|B%?O{5UUUl4nBrQ&~^dHAjWF!SJH z?Lqe8!w1!eg$JO_gNIih1P}9I&9~nMk3go!>QUok%WfXSXdKu~9#nZu^t|{8M)R02 zxs#eJd{VHW1KOBpnj-0^)Jme_)|)xAAWnFW^}C)?qq1^=rmbCciH@PfG49(B%v6#p zLWYHytd+#|@0zu0(x39FiW*Q^&!3+`OvMd!DRcQ!a5=uBuO`>B*RNljxITO%ck{-L z8_CV!hI2Ey;arbzWUk-P*S#Cj^~|;FybM4JuIel5a!9$P!5jpe>GP`2X*8Usjy!=_ za`mu=))@Y08A>N@%XG=+uyx5Cpb7P}e!40@wdO*!hy2CkiAva4as4hYXxb|&$FS20hVeLl%+uANwN z1yY==m*COf+|b^ky=ExC2Vsxo)ga2=o}oQjlAr=`g1rs$3NGs*XK(UKX5K5xvYCLc z4V{};eH*wNL;HkHFtS11T zoZbo}1coriQc2;LDA}4xquT`ZeO98usFgmxju59I{@qU1m2|RNipFksNk<3$q{VP9 zS>ESU2(dgIYcYZm3}#f;zp#?gw8YKklzPpa@({+=ap#0S_7ghd&#O|(Qk3pFuuBW| zbieXK9if$BS(Qelho__xVj^R@PBiRS$Fh_?NG_+k2tK975f+oGIFCIb!A~a=UWm8O z#k0W5IlkS4G_%Z92wzICN*cQ{4v-=sZEYPzRNjDHGYra%UZ2@O1*IW8W^;g}Bi^QI z=^BbAvpchgo{b*z_d;IwXAbO-4ut%m#e*nv2ctv7bn)WDZypK`I)_RJ{R4h|+5`|C zGvx2l5FJfpH`t!pwmsOUan~oPH2%f_*oo-iV#e~>!z3r`(nD;D;>a57jS+GUEmJT@ z0!VsT{%}xlX<(S8f-Hv*;%~C|?|)Oh?|+lO|IPjT_k(Yu``NF*zVCl+?mJ)W`!9X- zja>dlzP`DyzsWrKMm?xKG~Y&#Tu2g?*P{Ro5=;snI}oQA;W!|WAkkxRD0r%$x!*<7 zFJgGJAzm+^@+nqXt!M-*+Q2^GlgO?r&smOS228}la!l2)DOzsY)=!y<@o2)G45#$8 zIiI(%qo|-V7cWF04~oo{;A(iSaQ)hKkVjuPH^Q3@w{G3M3I3!v3%5AEb+dXaxLv-b zZo0Q7Z)R`Y0G0CBuY*tVbxnQcU4bgWd=x08U_Kz+WPv{*MW-H%Ky5SZ$@-WIg}9He zA3sCeenYo%E;*Z*ZaAf*U=bjUs`Z4TGcSLy$HAk_w~sWiUwH7~ z0e@%nVD|LGA5ow`JM-`A6zIT-(QDbK6SZxCc+B+@oYk!>7k65Zv6@T9;Zl#f@_ zu&Os$;-k3wUGdTwizOZ2m73fhQXs`(kc+VB%Zf!=(ax$}(x|3Op?D&~MwM8{zAWUL zBlHL|AbpFXUF*`_lfZ@qfkK=nRufttQ%*@KCChX=yU=~pdNCC&&Mcy1%rZFCUSw)8 zsKmN#78b=*4^|Be9Vq?A>MekueMO34>&)24@_>|{`7=ahsIv15uC z`Ygb5+0Z~9i)Xh6%2Y_LNis(^Uy(2Q4m3SkC+i>{1oSxFVg%F#tLBRAB zNA9?{t9Sg{g*&(Ja0_ndfuY;C%C|GOZpXKBH*em$72MP}e9%WzdqtOnOWJZEb>5@- zWDvc?fDqB1goFV-6z3>?ibk|hAJ2l0kCjbp6e%xsi&Rfq2dFbVXhvtF$M&0+mR`+L5Kl%~!{N~Jmw8)d&3w!__z{S4W-q9fk;SU5D zVrr<}F4IHTmB5I`f&d4TrbOZ7Go*+L?Z^!6EyH*K6R-mdL*AZ*e6I&Fr_5q#2)g@n z{E9!XfEbJ#9ARI>vNAfK#S&=2qYDDNRw;n($kM!!y#N%ZZ^HuYOlOA@!Nznc5GAAq zErLoBRPiZ{U?{MfxF@#O3*WY8(|*McJJCR%gel%g{db#a1Z?OdOcn}}4O7?+B zvc9wts1afW>4|$%yCR6Ur$=SrIWb5RF4bMN=Spy1jBBh*(u*5dE&{rG{bMrQd~G!;5@ zNk?}yc_CFL?5!41YI8v9gifg3v z6k#L}SkA3+kQ)m$hVn{7Y;da@iYvu33nblLkdyixsKbq+`pz6WXbu$*2SA3;XxO^Gba+9maz z;2_4*cM@Z(f!+A8xgFd|?wZ$~H-gu5Z@m8c>%raVb$wUe zsoiz%RPXwCGPm!fw^bck)JkFsSLdcw7@*1Fd7;v0T}?sZpvhxY}EC+@Y_j!mJMZ2v+ zi3PZ_wOqs~lT>R~K}cl6W6of>h(9c#io5+ad0`39`%)p*R>Lx+Ccf0N8l0!lNqf7q zvrJP;woQ8h91PzgCR9amOf9gFAonLB7D=R658c;MYd}S=vkI1$Q|as#=}(!-C#T{&~%_z;xmfu z>{KGdIzW{ZnuyKkqJnrp#pz|z>~e%4+rsm}SFkCnclwKKD%7eme9&O4G1Ofm{dh<} z9z|C~(WSR}to>4uAZ;tIgo-Ob?J+2a{^26t33DvMc8$wwf{L+X9WAvh?oi~a8QEsq61+x(&!p~8rf>phe2lUec|70 z_~MH%?%n(1UiyXl-1(yNx$~L+Jp0+_p9S{J=aKrtxo5t}0&c;V&R4;gFA!^A^CdU+ zwZm{3IZ8Pyyv#Qgd_Q^c4P^%;3L^0E!GrLj`Zjr#N9q`Zbhp= z`US?~o`zn9_l3_oU;1Aua*p?f5G~df{0RQ;p85YQ{ADdW$_Xe5K4rnX085zORlxhb zYZoU_@sgd{SzyfU&Ra0ky9;$tEAA-*k{H8x`}oH>2-pR33Aec6{ba`G1VlB#VXdP$ zN_V*oy1M@EjF2<_`90JQqChp&oAOqMnv|wm%{JzXG}apInxO?$dBNYIpX_tS)=*36 zgj3)povO=Qs(?PT!h>HlN^8!p?xQP<8<_i)CfIzo@Yem9jmgYEA5Naos#uSX%uSH~+#~ z2~U6|)_{c*>!>t2ff;C8L%q|007%EuR@)dL^iaX3r#)gAby$bo08E08Y?U$2=1)r8 zD$1Y3wfdJI6fBbBIP?9SV5(wwzL@XGgaLcw1u2|j+}c{i8p5=difTo6D7{8Ai0Gymh@5{oJmMeC z96K6_wd}+V9H{D~Zyl*d`UIsDY2Bf2junrl`~}pZIZ_!*jeICZ%_`Ra2BZmqGt2za zOi*MocwT~-rMCp^4H05F^4G`gF{`DP6!7#}macjlflTW~ly;p9OEHu{nuc~>mf}%H zLb8$+-mAm-^V}DofBw1t%=tX}%>7hp(wCWQ{Fht7lKVNQB~8cxVjJt~ORKm>TP z5HyIz5lm1NnFgrLxb*WBX!)Wb2#BdTpn8?bj3{4xk}0?;@|WzLs9}UO>}{FpVHxmn zA_WtTxEL*Ls`GT?E_gT<4P~afY7p43ftwA;U7~mie(GD{ZFMJxAS$rZdndJ!#4za@7@Jg^&NfN zxuxKf9+lF+aNhyAXdJN;c0 zr$R5)?gqh6&J{1OgK5m78nBZWft~Uaz?VYBVG`#Am=(`Byq>i=az?*N3zV8YjW9}B z<;z3GSKN8}mFc==GV|*E3TywPg_=#BGO{#2khRRRud@`ib^O$<^v`y&g;JMZ>Vct( zk`@n=#n2G*l2Avm&ZiV*!x!q*5_<+2$~E>KX2Ea7hM~yO>(-xVm!Z2OS+0NwqJt zmwu}rY7`DGSxX01stwsHa$K_=9#JEFBV_kQ=8n*f0{5I!O%X`3aqJ>_F$2GeA95k0L)FT=2tru^M}NjvEGY~)85(a=ToWqB63 zXvn;3w?|f#5?Ae~K_u=rn6N@T(?>!U>;=a)ieYl9{F-x0V+wU%8$RW}R;H6$dG6Qu zk5wtEPzdq@lDa1<85Unj`C8*ElI);rs{Ea?F2Fw(q^2@f; zc%u5sEVa&0_VkF6!J~dF2$LKp=+LNW%1Y4rX(l1=GBFjLU8<}wCi@l=0mR@Fhv9u( z`^0=|KFNLh$tN8APt|A9=LtkoePQmoUz&Rbf(vX+zx=sWZX&~>z)B zz(KmsJbXa^Qh-s32IoI+v<542Y<@S_T8gYo(YMl@p@?*JjLji}K+?D4LyK%86V+5I z0NJaMrQOm7P?kq}7`zoFaxmfHZ^+vPUm6-o$IvSO`sxeUt^tEc`RM)e%?6H~-Bd72 z?@kCJ#vq~w0o`}hyY4&Y-SEBmUGt9fZt5iY*pWuyQpq5aINK@VUQ_D!XCg04x-dU)>i547$ZBkv^vRtU-@GBSU zYF;=W^ean)pt>NlaDl&2N%^ek4#<}GvMn9f1c;ZxL}4&d<^MY@5r&g#|Fqwf>>?WM9bF7c1uqlt!I-Q z!^Sw871He8%y#aG*CSXBJpj`5csN8A#?N3SE)BbMEm%?DXIQa|lT44;PG8`;0VC1O!9i%pt>lh2o%s1q(e3VqZ$5+S%73QC9YH~aHc&|*QM^Ggj) zKL-c|14YCzy8~ag|Dc`Z>zoh=*;U{gQR9oW6l#YylQCJwC1#b;c_np`qy23K3x1XqdXU2W zko^hwX^LrS6u6lCM9FhNKyy?bOOJ=FP6|(DUIPIAU#7pB^UGiU@>jp&_N(}pKEruU z|1!eq8bBbOlL6L}@-f95WT~^G!$q2(-T_GlicH|6`GivLC<<&%fsNw0#kXh}P+)6I z69ozt%?3@MleQo#xkrl=k3GI99~{KiE&VyWnp2884?}fGB)We7(@#J7^wY{G=40oh z@MHg@+{Yh%^ilES^potzpL`m95`5bD8HDju?$qb*XO+)W>gs!tMHg6{BZav1BBY{* z8+s2a-#Bz52-k;(!nx7%K?E@M^e0&1zY_zgST5?dvveJ*@&SSh)^dS!;dy$}bUh8; zE>Q$M+w#=F9hK^2qosdBvt&&h3s}@8L82>HY_Fkk-GZLJ>4J1h^uGweQ+GWmU|tyA z8~&ToTk37|j{mOvUhsbM>r3zJ_nh}j??u30{C4A8Z$k(nfa;Ab1-B3WsXI#g6Y3V* z&)@K``+(oiuUx5vpCx^=uud8j3S*dPh~~M5sB13ZCx3WdlpSG{RGJhGNYJtgluvS2 zP(P!f#1zsVgZ)2bx#90hY4xli5+Z*+oV*IorysbWV2&oyeQk-Kz88Jrf1dg5^AL(Z zdwTY?_aoLfeCDe<>w}tsY0@-zF#)|m8kYix`)$GYoSdlb#T^YSwuS*R#p~sM{ zz;l=-6#=F~UtG_6=SzaC0(HE8C(9-5!pxdQNPm|H>7#r`5Q4YB5i&2oqFyeEePask zP|b@4^U_z#3$pk%d|02Tg|d4wXtBtn8LDxQ3&y=z$2jl>?}U&&%4Mq)njYE0SoPNi zbiZrYl4Yrf6@{@+&|*3WaaoR1L9yDCEh__dHR32cdna|&Q|vbBtq=HL4Gc?d#d#Q@YedrJP^>OGNvk)Eg#ft$uG^XO1~fcLH76m;14E# zKl7{KPl3VcwfK}d8B1^391mm#hN`!h4dk#v-jN~A5p}?`Xz1gg52PL;fvfGFt(aLU zZ0#SKPge6k8G*o3F2@uEPIo*}u=O$_31=FfV_l*mEwa~tDO)U}>&NNOWivLylP_A+ z(j)Srhfau~;O9R1(cBL|{P3gtO?~Knq&^Hj%6$A$>EqldAAkID z^hronUH;VhOnn-D)z;5q|#SXP}UTSLyWPtuCeHJ_PB9guwW6eC&Tp$9K1ei5)1VtTjG|>&>upi}|5o`!SG7+Eb4` zVAN1Lt8X-o-uNs3OHb(i=kaIJr`{(5p!!DuT0V2%0;msDoFMPA#iuM#4YoJ1KLrqq z!5}9GwPTJv6hz%#B11cfIqXcc{pYf}gC_uALS`3$8EpS2T;lfp4dlDH>fA0I$zU?i2+q*w{Vp`eta6N zB18sD+z#ED0IX_R-tsoO!f;2k24+X>i-6bri###r_Ldq=X?5$O`KQnM+x{9ixdmI|_(0I<7XvjR}aC1bC@&&3`jy)b7_g7^zh1Z**xvn^G@ zb3s}6hL;0onM{dCY4UvSx^Z8!;0xl)w@}px6laW9ldK#O;eyrOsjNTpQ7=N|S`G7rz*(Lyxa-kf7Ti^=6JX~)u=giF!d{?P4Y_;O zK6k&5HP;+sfx9eM^Q|PQPX5$tvE1Qb77ud?4yr-l`1j*KnEYSI{y_h}^9LdDoBUG0 z7Q#S%*k=kMkB+2==UAaqtUMY)Lg9SL3_(E^iMk*5n+l3bFtWBn+vAFeUc&|_O8$%=Wj_2U{?Pob^I^y^ zf17-m19U$e`N;WLeU$z9pj7kMG3 zAgu>cGG8kUHR`MI>)^fzy5^+GmbloQH%Q(4{@?iPLUnP6&{$MK~ANqBj9S$RbQHGxheQ|?V1K(kq&PaZr{fL za!227eEn{{ucO{H)Z*$L{jQ=OcOa+cJq5@Hzfm6qzs>yNZ%6+y`mOtc`EA1oAAIoJ z-+u7h;s=@EfV%3}+4tZ7bpYH#XWy}!=9@lMyAQ%DOIguDuX|9|yrr!AQbAUHU$~%Q ztO~}etWJrPfS%l7i-ju1f+~A(Rw>w-&Ck)5s)|{!;i{Uw9D~{4<1h82VqKcu0IYiC zTAu2CqwZ(EMxONOzUAbT(D(9uMxRr+=lPUA{mgvof0E-Pr0x*h{qe>y(V2%9cME_Z zaLA58R+ZP=-0h>=988~fW6Od?TqdMIt;^b9yI~lc_1R5g_10hDdl#hLxf8l7yN7IN zOAxbtj>TkoT-jc*Ff1)nyUSP#;!4FYNGqj29e{!;p?hesKi`EwzwBf3lc8)Y$e?AW z^VoF?drpKk#|MB7032XskzHf#|1D%mURG8Ezh8zr4o=mM*(Ud1_s>wlHW{EsHr87{(i`;Jj?%*-P;&D?nFA2%ec0w1qrCS5wm$ zI=j$aX$NJ01iYrr19+2WziF-jjRhMhTwa>SV6S-T#5q0(T~O8(?B8$piS-Fvx2b5{qwLkhC1j_PBYHqif1)_cIoRbAQMUv;Gp z3P|MfjGrg`X5Rb0_dWwN&nn1?)DioW_0t>-JDVCZp>)wo^f~gVk&T$+L)3Pu*|M+!hTt4;J%*0eo1m? zT*I8^LHh`Dx&}WXMFTLCJvHL%&;T4uk9p}YXrPFuR)bS|qU@|}RNtB9TW=*Rmk>GB zOxKMt-x5k(3hQ;Kp?YK6j;Xx2rf#%B0p_TwP_rxT(%sEn^_{zR?c%XyXPsYn?%cIA z+m-BeyKddxPC-^p-aW9VA3A)1Xz_=1CI;(sX)tSmKb3^ytLI72H%DJWBn!ym~Af8ytRUi6geibx=Nl$KeE2~-@{mlbt5 zrw+G7g7&!dg1sHcqW+Fg6?Hh$T!zx`yUz--3?lbX4M7yHOPwqPg7B|(nCcJVtnS~k zN6L>r^5~*R(ntMc0jgV}>OSF~OrL5#?Vd@W4$ovyCr|mO2cD`v{q$2$@hgAf$*20B z3{Ql|+a7z|Kjt1yDauvjzy1dl`0v+cBw-~51XYiq>K;lS%pkvFzW3gHZzw#ZyYS~B zzsX>A-bd5s`$SSuc@7IZBq`9Z^r5OIbS%IXAe!=?h()?Vk?urq(XJs|KT^@eo&OK_ zv7Ec0RM)R4(C!z3+FYhH@jtDpVfpco{YM@}Jp8DOm(pHcUSPjRRl08$SmAx~Fs<;`TTSn_i@2pn z@&$d3f2rcm`bQQRck(-Z@FV9RWr%Poi(Whi0a7dP%o6re7tQG5hsOc>oJo=FA1fNB z&-k>TJwCGQ{XYkcCKFk6Vm=wfqRIE_D@o)lRfC zme$Uh6*^mvWmRIlH7YIjb}^s!jcvP-0+Nrb=sOF{b^8m4k7IzG5?+vIsx^iRf2B$# zheL}>jq9|(p`wlT%c+<;W=ZTDHpuE_Ke}dz%^087c!TF`jI*iW@OE+o*{GCKmO`PK zJYg9-Pn)OSi+Yj3pBbYSg$^eN3c1`WPOmyP9OJR78tAgaCb3&pCKV5+W8HNX(m;fs z5*VTXS_+S5`U^rB%%GBjG2x1QLfaK^LU(yZ9m!&ZNq0$_E~Z4c%}2zl5eZ?nZU2IF z{?Y|Qk_D}m=}FR$wV5&g$X{s8XUp^abb(K_4|jf#o9}GrtxHOLt&|3rGK<|b8KeaH zAb!H$ioB7M8O-{mr)j&vA`_%<_~HN+JrD$wn-{%(lmOCD(lElca{#^RZ6GiK&9Lbsohbo=S~w8qo`%?_+Hz!O6k2^9Af@2?k0Lj;>}0b$Ra zMkF z)vvA0yCN%!A}mR`5QGVgYQKI+7duWtvUotR+A9@(&sqWW4Za!qVPqU2;9(y#%-vM1 zuR|Xu$w^`~A%;E-Awio+D6jX!zTJb#LrxhjdL?-zys9;}3N9K@a*;MLUEZV{7I1UO0aXj~SO6^Z5jBea8D}VN;)IU~L z;n0NOL_kyGxM&wqD=Pa%V;>B>5h&Yjn;`fl|X z!x=e)0`Cwway!jvETk)pUC8qdeE4!3Brz7JiPJI2>x=_>sPm4@RlEyFw~-z2|-(&a)Me3GDvz_eriSm*UHHgPhz0@ zgbWD;k4+~uD{^3G2KJRnw<@(!1c+`K6wv^Q}VTRhQ-uEGW;P&wW-}aNGPw56k^y zsc-Z!Vro>am5DAv*&7h^{@@kWqIbsnfUc-)H%?#jg#pX{E@TCZhPQLBy*eN^od9+j z_~((H0mW9;4%!0g=+7MH0@*;wcxO?yrBz%r6vbW4nVL<`0*etwo=y(f&*=IOv zcs4Dej@Pj6@bChHwbl;CQl1dyNXf*ecy){yP0YBC0bSqWon(bNEt1YKHW3u5(-KM| zNk^SFimv(Rls7q}eGqiHMZ*>@)cCh?JJcfwL8o~0UIzf>7sxR}nA+LgQQ5wI$Bx^# zckI})oge(1?WpNXJE-fmojZ5%(Yv#%(!R?<-k0)diqNZ$L-Nzzy?gfi5OSwtZlxT` z9)99}+V+#5`kw@%5B{g;`!ObX^1!$518@lqg-V8o5)D2bAVh3Ki-(yAH|DN*SBKeqs^IRvj{8-@ zA0*J=zBNK69R1{bh$k3&R9E+dDk}5C$R^n%wMS7z9)q(dD#TBe;qC6p%2Tj&2VeKk zq{|x5R-SwAxo5+3$#VBx`?JsLH_txXeD2m~d!MWF+h?EaeYR8OoofHoQ%_|GFYZbI zMAzewKmOQb{MR3Om7wXfzr35>F~UWSUgmHkO&%)TYq1*NJtROFuld! zo}#yO@_nkbn>6Ma29qD*7S&h-z$>5k>quaoN3M(*DRJ32yyiZE+-EGN3G>-IZqkeY z&!HM=($+9a{C_ZGP(pm^ut~6A;VQUaR&B<>p>Y%NGs(q&81|HT{j=Skd!n>Mb$-!4 zb-vW|v9Wrod?o62Meo4Ixb{MIU=30UeqtwIEgTQUr}SNfJH%$?ekxwZVOSu;Mby7> zpaRn|{zB9X)j)q?LX@a9u5n>HZsB-Hy}APk87)IaZGyXKh_v#k$Ve$~UV{FE2*bN6 zTs90HX3%$Zv#gOL#NpVi4MTwy;Nz+ec#wJ^{0u>87{0-#zoe{xTWfH$hg}^=?Ad{ z!bOW|Z@PqqR_mpT_n{&_LK%+fF$&^Gy1;oHIgY zj#{tC>E-bDga^_$d-Q?QOWNh->f$?04rdiUpWok;%)1#@UhRR(_uM*vsQuc*&pq>d zdTyGZ_uM>hVNc2eD9(MM9`S}x9B1)0)4E(re%r6EJ+R#xErz$hM?uw@);e$<3!({k zFMsiiYzXg12bUTXWiW3GxKg-#1OW~l6mxeF0Dp;yyTAMZE?0im>hnwr?ROZf|JIBv$ zn=`k`=X2)HT{0(~?PjGj!;G|hV0s<&m_BXVG&j{vX-xKp1K}G1%?l++Zl&dXwN6&D zSCiq05Hrq~bFH1}HVkB-ozwgQ2^x;@+!FAOb4V*1v#-T`ZwzmwtWOL}it{`d!Tw}; z)l?h=3a(KWC8p{35^e(84WCmXk_BOVvcqj}+qQk-w$j!cw{>mbzKtLD;kQ?JfDqdk z?V$8wjZJKgddkd zj7a}Uq1sd`N#Uw7eq1&!>i{c|g?~59u)^}d@-Q71W}5WJdqj>lNBsuvK=(1*O=O2# z#RC-L`nY`zoN6}A-PobU)B*~)zQ@T-2!gn~4iwdIaeYGypaQ9V*msQWe=lMMK+$eM zfsg4PNsxBhAAgLpj;NkJSp_2`@wlfNz(lqz00(Y)|BA4D>59tpE1rLT;fnNmx1#iX zzM^e8Uve~|pEFOtMa^Zq-X zf{KS8dI+cp4|KL9pnLA|Hf-+;ZQk~~Ig&gafQRu}i9q2v&^sl~rvn~PN>hgI z(B?Dyx0ts{9kZ$$a zt7S{vKQ}*@+8jpXD5of~;2^~Tbtlve3r82`D5WEr&wKp^84fJ#~vreit4W+ zS?1InW3t29Y!<~Efq*3Vx)FXXLC9%tMqXM}e@sv0cP<}K6sP%Oo@pftYsvT=Lcerg zjcFV{d{31qWzW1NJ$`=5qqnDRJ{-SH{a@JQ=J~nloaWrj7W@02j4h*%!jDXYR*3=` zv;ds9GOMo|9^%ivdRi~aI~ybwtNy|wM%Z$^PbT9b{)%d6c%LHv><*&08mXGE8_ZY& zz@*@jMt8LIT`Q`n{B$t3n+731rO8P!KkK$Ik`4&5Mx?(!ovg|9?rw)PQ-{rq(fgSW zzVBvLW<&Jz*&TD{%$_}4kG?ro%KyB1y>m-^Ykpp7ZkX5XxqV*7x9VsTvYF|Oyj%a7 zZg3z>%cf>ivdMOGfyY9v#dx>7wnond`i5)RX+o-z(UFPKI|6c3d=Jl^l0dASO?m{I z^bicBz<@df&zOg{JJ#*UjVJ(g=_Fd-{PF!C23Q%T)0nlcMf(atR&@rD#E^PUDop0r zw{5eM@3;A_)h%1LY~A9vCR+x!c5d6Ybt?~kUb4+^_uG26FWHf74?8-x3l-Eyxa}3N zVtaF&+wKvD+T{Z9fehq`22vl~hov9oA0_*dn^4 zD2uykXi@)fyNyv05TL`dEZD8YpOqiE_g*9)cYlK7^EZINw-Ncj6Z?f$!%(RFgjt~S zk9N^6L=aGq(0sb{nP;T%EJNbyd)7Y}me-$qZu#;R%a=C*fPoj>^Wla1^Dn&c!t*aY z?_X%X*!x1;i!bCaCNDT1+4IQ?w>*8$J?odH&-6ZBc?wkVPgK=9JVtEhks6>NgTb1I zl;**GZ~yOpx9A-TM0fzJ`2HHQ72k;?V4dE@R)sq|(S{hj^ zJJGnfCcqG6q{`uNdQ?B*njo<#j;d(>x$p4XK#ZLEy?!zE{X;7bxN;jFUwF6qks&AqQ(W}W9WEz_GtT# zUcpY06SY=`sA{s9Cxfojt9mabe|ag#`7wmMjNu$r3P)EIbYP7WXXKh?9Mf0^ zksM%xtJ@e|FBVZNv0YU=K?NzD9nK1bwr!>F8E1I%jGmjk?3ZG9W>0AXWDT}4Vrrp<441lD-kW66^H4$~vOv2$%MB@u9KC^Qr`*DIA zJz<{M^gK70Gomm>R5P%#z=LmZTtK*r$ci83U=oNepp|X8$5dk6nvwP>1X&V}I z8$7akBlv#6Pag5-dGi+W{Z?dg^!6;8?|VFm;^zcfj|?cPNoMM%FKL@Ly*Z8lgOcG4 z%s5_%A^0#6RnWDZHp&KE;glD{UDb9ap(ZyGQ`$N?brII#Z{5=1PmEkK!~{p zfXH8Ih{kM#LUl6HiIg~slllnvXo)oBh$jfmnY9PpRJ-nJ^i$!w+K(9 zcnY1SJrTfs_~HDA3EIk_Fl{1}Hu!^zQp+z_CHH@V>lnoYu^UBMZB^j*+476Bi$ zAtb|pB)c$Cd;;HM9Bze_4`-$MB5K5bLJ)pfrREdRBnCcZMl{eMdM~qGV6^pD^c{ZV z5oIEnOa3wZQ$UK6@u1Vf)1%!nwPTMx_BhS&xDy&DrZgTJU-YLP8sk6FUN#vDcNrDx zEQoO1In3S+w+V0h4|5>K@a<~~CB;Lrn9`+vKnE2U(S}x|Mk%A9Wf%9-91$1wHge>d ze4-KI(Znj(`Uj>wiA^WW(*?|#!i)hxDT?aOf|hssu_=$5TxkBUNLLB#^q4nC8Ec+h z!KI*%X#KcjN|NXzT}zqof+-|Zs(fq3hIYSu`jv28TBJ1H=SK`SDb}N))40K$d|i9P zP)z)lDM=UR9vS^drSg}LC~{aT*L=VH63ED^(qS*DH;|ze##Je~^Qfz3*t??)x6Pfi zXl`xZyt({vYEoeGDe#ia&F9s?Byfq7M0(~q+8w@z#?#cl=?8tXp2qz0f&~dXYmxyh zXr(#J0FS4bFfzz+3i&_$iyJuUh9$FxISK|q+|9d4Ml)VO3!{5aFPT)Us=*D{9=I7P zw4r&CYGr714Nh~oc4SMn0&1jMp;@_UZPTau=^chPf}2co)to+_WQp%Jpw8)g>*EPy zw=*k@F1!f!opZ{O1aB9fMylg;+CJX)6Pu31}zw^5%qO}+*mbpq^Y zvm`Mtnn;I+80^F(o~4}s^hz1k?uzvC>@xBfyk7!f6UL=bI`uG;vQnh1=x+E?UHc%7 zqW5m;enk(%iC`^`O1>73%5pd=4dwtwwdxF8pXa-tbZc`~FgFA=;X8+Xmx#P6R(KogRSakz zc@(|MJwCL+8Gwd9#Vy0Jz`+R1hpbrf{0bg)CC@+Kc%dC|c}WlxUdUc_FS(c7UU@lx zC4061mGo8jO3tJ7a`wvNSKVv%S6_Ygl~-PQx$#o+qNlsbR&*?nmdG+}?+)+`69j0> zo~WC)^;ltTA6QIE34{t10wmqHs*IXq(>&PuzytRe!j_sC4QnaaG*n#-G~`yL7YGUC z-E)PO0!GAX7qicMpcefvb+@j`c>-AfE*~L9fj1&(WO$_GJ~S}ZRUne^NCTq>Vont< zH#Rpdsa$SG*oaV$_XN5a$FTdcRS8D`PrpbRzt=yfzV?o(s>X8oWr;s@ z^hBP12mlip@q^kXZKaL`o6DhDR&>jOdDtqNb%bL#p6DVwl<1dd7T9 ze3zt5$0cOG(u)Jn#Ad!UvK^lkE1`j*?DFi21V5B%9dh<$7qiQl$)$0~E+2riYIk(X zx}XFR?G`#fm61RhaZEFIYFI!r+&R<}&GOh@6T~99BwzkA2bY*=mIFQI({U0`4X60R z9C!3J?)dCDe{6P4+tJ7HZ6C!^(Vy4$e@AuGkx&QH+Q=A}MS@~~HOPaHkO4gjn8UtE z4P#`S0y)GDIZc$1WA;ZE29D6W=Y@zDYwQ!MZhT{PV8>@&i%D1vDFcU zS{CsJkA&u?y#+VvlLW!Jf)fq%*5TxY zcX&glJq=nv{-pqyORws}# zBk;;JHupHt&ufrdZ=<&sI|-mBMDRwR$AOVJ>KfrgMI1GvXl~@Lw(Qjr5p^iY20Ao1 zuCLCBmxjF95Q(?Sq8VNRAGFel(-sAse4|o7=gmvEG&X0OY8y9g+PHD!Et@KvH*enL zHkUTtxw*D!Q~XVvwLe??xA?7Y%MBn^py#RJwIHnp^s`Q@Ef}sJei(k#puI^!piBt# zQw61Lb~eOKR5DE3V~eAK*-p|?CYpU>+fy8bq;S-1H;!(Y!01<8byKBg4gfvF1wDXI z)XS)9{#oR z>#x7I`1SBc`|Eu2+H0@A=3ec3C8E#EFTeDXe{sYMFQTh~W0Kp8O<5En4nnvS_i-ArR_dtprQ zDMgt-YYJV)Fs7A{9co2N$VB_Yp+fBPAgk&%@-G2RLk0Zn3xOm-6$nH-)J}O5t7d;& znR=Jw>wEd!Oid&NaY^80mt>Uon(8^TcXq$aL zL`&W?h1RJx?3&*?@x<&TMQy{$9jBaf%BjUFgOnj(bLENJsuf~73@UkUjW;-Nbbo$o zJDTu<)$ci4AtBEYiUXzqPv(jVl<#b!@J1UK7F`~$a1(kbvUG+*LPOyvl=;Q;MR!HQ z09^@i3KJ3nJMM~3#XzNJU2fdgj1l&n5Z_Unfd{7>bi}5TOBTtlHjrfJCJ6R5ZQeQ? z6)<6tqEkyzZ7V7YVTV2!TA2c;eF6yrD zG&e^w9My4H3#kNE6A^wo^_}T^qX`AEnwQu{Vn!6Lx#K15#a>9p0z-5B+-%Ok>__I@ z2oNQvviUj5?3-p$pQTvM$>z4r1E1)k@b=Z@BhFFgIh9e<$PJVr%w_r?J|(-8u%&tl zu+-q?@`gx(@wEg*l7*w`l}_`_xbL{RxO|S6Do#aCNiyTL{_6>$ zt$1daH_D6XvH>+xxg!x48rbDLbb39MWfkO$sPrFhGpb`h(LC<~J z$r3M|26$sl#F2+z=qmgL^bPMj^d%`Ad;kDS&btN4{Ltg(wbLg8W3y-9IIDf8sdR+L z2GPr1pArI#=h4$DWd>gk*S|7xqT+N3uM30pfLB15i@vC=PH*^?!gDk=C+K4MZ`6o0 z3uWK7d#NJ1r3rzsA#CD{-I5`fc4(XLZw*sQ!=y%4G&t{Ro7a=m&ZZlio0e{@ZUC@0 z+^})jCW9{htVh17%&&_!Ha1m3vdx>r7PmRs)a3V_oB4AP4X?;=U9_!?lJB=?3X$#H zwR?A$?ys_?y(Lt_9e;rXUKCcdzMCN`SRs%#SogL7ha%0dgtM=wwZ@&5F8`+z~-qL6BL{=35p zJ+HtqcYg;x;=T6@$K(ci&LOIr7o-`Vy%;7VXo*=t!v}8~wA^0BMG}y#wzr20yivk} z{Se?SN*2dN{y_h9Fspoji=xMekc{>zBANSHg%_Raz2qY#TIGa2IpMI2Jh|Ulla{-K z-pOyP7p=J8l0%e)Wp@ttQ9muPtnC8urwkC?H)a?E58#tPi3h3Asws9J1%(7C(Ob>I zX(EEOjJ_sCPk=UNOg6fr2@H3BLf25{Z@Dq;MuUMf{yG1tgtr=AjKQ4T`(87fbWUi3 z+E+&5LkNRfk~QdpW1^y|_oAPv!a8LSgu`xQ#5yxbOR z?Bw5K9aAmM<a57(ER{|oM$U1 zgQmqYX@PVC7ooU~p_bf~F&X|$UYzIZ`!y~5E`9r$2xr;$SodinP1_ttu$a|{hOLR} zW6Q9h@(j#qXn_lFDRA&+mT9zb(9xNBdSvKzChDGT>y=%VBCd&7lF#009+DcC)+mq!m*Dtr0&K2m-+}Pr{Cc z6(R4CSV=#Fa0$o(ZcWePB)-T12wi5AJ+F1(TpiCM_-t@h30dG?g*FcCcK~04hT6`B zH?m5_za8Le{#01m1$NioI195{C|bIw*omj~>LHl*|)#Xaav3 zWsEUFurHsR%&BkOU_X{@sIA|yVg35`ZbSR}^?bsIeHy>oyTNZ9*pRMY$gjz!u-R>L z8%rDf`miD2=r?)m;!4CN0wCx}$>qCByFGDfx5s^0Q}*p6nm7%aC#0hjW?brwxM+8< zFtD(w1~IS@4_&epsv->Jh5`c>gicx2L6&QP)c4{coC$FQNA4ABq2|d`dbO&}lDoU` za_%`;S|Li|1Io5ps6i^B)^k)*2{pASGwRbtn!(H{B*F-MLcSF%z&-b3*GmR`ufF=) z>mb-j(Ch8D_24JKj^FmZSpxF>Tcx+dJEeF1J0stI=bd-n=BIc0^?376vJZ_m+Lbh0R z_)M+aP=gqmDQb4yVdcXQJ1jfg9Wh`>O{DZ~>F1m+a&M4@NRR40T8H(HIPO?XtXA*F z{0V?pJ^5q+&+U_<>-Z8$PHRdQ! zrox|*FqY%MK7>=0$AeF%my7M(iS)N1;Bm(vcbpD7E^~;NKRV$|L3dPp)F7`%^K#$l zw6bXmq+iF)`6oQr0~ljCbH(K$0pMe>WX!=Z>#5{H4)T+p1|oK>3X zX7$bNniWS^z_*z<5pl~c=63VUGF3dxYMVJL%xugcZa^)cL6&Wn<6q34Ggms-+&P38 z`XUGhLfw7yQ}oF;M(!z4teO&X;005(%0M6C#M5pB`5*vvfT?Mco(8xET`-oTvrY$t zlP&y93R$v4eYUlMVd7`_o{Kgx0$`EdR^nok5*J}=g}n9DFzrxMd<6zt3n&B>1gc>z zAwRYQXj$Ii$@Pug`)&s+KCYRU^C&PGvb;o_%MLBR z)(*!MO6!-bOV@{WWq!MK{V<`V zFjIfJZk@Nkwtih>eRD&`Uvlg74Q}J`O&j?;8#ituHbL_cdB-M#++b^@LcK3JqV7$DO8kVH-m z{R2a^jWmwgV}Gs25%_%iX<2MV-zaB|rqQ7D75D0p*I$3*&9~kL4&Qz6y~fJ+_uk`^ zl`G%N!OPOyJl=KhwCm6K;>z&;qLu0U*~&7%>wT}Z(!V#Hzxo~@dgxQnUk6e9-tIII ze&Y=~QTJ-;75DP67M9XUKEGl`SY852M=oPLiExOzNwt%N3;m=2Q&{@277o}J>jox;ND@YKKFt>1M>y4%N4;-vwcbcz4 zGNqimgjw$SD5Ib3tBdMn7_ij+rc-;(kVWYx|BD$1m-+%_aK~p*u(1Aw#xtG#`J5m^Ub5{D%U(3;Al9%lTWq#gr75hV}GJQ z&+w>w*=^GxAGu@VIZg>(W!p(7x|6yLXHPYa)SaGS108HQ+nQVgXANlO&%qYR9;$sFOK7H; znz8VqT3TZB%1(cJ!UStNls>rT8YyqFXh&@h79Ya{8tlBTdJxJ zQ7S+-k)4P=|p5wcYIZ_N^i+AQOD$9>Try` zNf>*Ru8+ZYPe`t8jG+XeiUfoS=@tHR2nIOXhPaH#=Mz{k*&)di<22%j+g#C#W7Qte;k8>e%0XS2Np#uO~I*deMXvV<#) zcE~Ly4(BfIG?`kgW`cw693=juSMnNV7I`r>`UJFp+AJahaJ;%U8;MLP&gbr>g zedxB*_IdU(6|m{KqipA#jv9tzO0YPWyNQ#{qZK&R{GFB$s3T>DE}@K}r7l!631G69 z4PneRJE&z5HGxcP38Vlkf#T+Q4Baq0U!SiluU)t9mbIPh)~#K;&VIOc=~}<8q{sT+ zb)9RAudiE|t!-PkHec7acAZ~aS{L-Yu&yFRb?Xn|X9L-d8w9l*H=?(iEcyH)Ok zuqykY^nMP!Rs_7^-I4FntkTxf*8-@f&H7imtUrCp8dUdu9rscVs(W@=fvG^Mrntgm zOcD!G-NS!t`s@#APQOocDn$MEw_D>|4-}25zgHobVFjKReQCJ014bf6<0b_Cp*O@S z4!aN8uXZpuqSRR(xsoRol4x1VqQIC(N>)&UslSDKR~+>KtbUzsFD#LvFgG~w z;TjHBPYC-}^!J?Be0}Y!frGUq{DrT^mBHbfs`lM}wQ-HD4sMU8pO!T=DTlr_OzP}t zgrH|}sb&N+jLOthT%AK|i-VY5J1;rcom0V@BpX3~CLd)7R);g2L^snf`7d^wA9))2 znbR_0wx$;LL~@(S@!GDbqb$k@xcSllaMV%su0mOgb>s}bJHQIT#q{ZU zcRqbUOB5bEZY4-wU@!NZlJNKA`I*0EJB?a%Wo9h_Y0Q{^buOH0}AbQ89Jpr0g~$iWc?>?GE}W#0v`L> z=`61+*qs_0=TqF|VG)hv#DV4wxLb7}a_SK`V8#vDKA{kH9X0}J>@U$)e7FgtkmD=} zrI$u)=V-O=IoCHOXqfCRw{^%`m1>rArT15B>u#&4vvqeK7Qy(>W}azmg~r8k6-3(*S+B&a{3)dOBZHs)zW%hWJ=IhcF^wk>TgkW8B!`&^veM-o8!Giq~%$x$yZnp_M1++Rq= zLge9=`nmJYJMXyDKsnqtr102prpYCBTGw63ZCGsS?_+^>b3}_18Xk+$=GNc3`JcAf zkLkp}`yG>Wg-$FuR(I=uQISl{+LXd6trmT4l{-gHY1olql4hvH4%eY+t^;}u_oWc| zzClFZ(euf?lC`*Cky=+iEHWT>4v-b<-hrQZ9vG}Hwq|d*bMy0h5s%p7?9c53tq;^+ z)t{&z)_arx)cG8UbSUU{;YBh$$Fm>xl1s0+a^htdqcCf*OmlWLlF9{*9ox%g54vhYW5Fx%69i z(LvyHl(l0iwhn0`9a5+CMZlTP$X}OS@4nH&XVhbU8UTi~uhsY?3!sE=u`rpb^VYBWiv4g`2HC9>ConVR_fNNXda70J865*9Mw2et1r9-THP0ml#o9yoZ2|0?c|gEiS1ERW{l+6TAb4h zh{_|60+pvsR`(lse|-H~&$xG&S;aBXs;<0D{}gzJ^!}IW_=gcH*Jci=GjEk{>xkXh zxMZOZjIA@>Tw*X>+vwpblWJX_iFPoIy^qN8Qbl)9jjO0`O9djvh48i2ynV%9e z&z?P3pvJ-wsB9wVYre$h20^62?1BaXwcpdL80wG%L9#-PNt1v>umE*^m1a_d?Ms3zskD+m2H6MBNJRs!tcVEU~$ze8AU= ziHoUzT9*dK?b}h>sM9)T>z2s`p)wx`FjEm){c;3m?J!!@%cFC##aL8J8Us~Qn2R{k znB_iHmuyLPLy2^ItTMznHD;$iRJ+^;SFjE-+*1<@Vmsy_9NMky*gymAXQeY8Ye?L5 zEMdgv8jHOlWlmFqVrAUJP%_8dxlR@1NZRx&og_UJj%sE?(LXa7Yj8c}Lf+j5*SwuL z5W}{RSo`eH;vn8TPy;(}y~R?rc(Lw=;YF2fHPEh4gW9+OiqR$*YA)0S*?R7cq@77Y zUibO)Lr=h$Z6ZA9vl?p$)`Zo`n%jAJP^AobyET2Q(^c8(_BGbitzH#C^DDt>oRYF7{}*TVoi*MY&&4P^fOV5e!@Ne|2{^v=@GTgrbh3zb**#$vv{t%uXb+{YifDAHG^sHzXJ@XX`V4W zY{p&hBxh3eFm=v*8)uib8&GreHE5gNf`eMQCapkWIaU;*QK37mZH^)|3*zaT-B052 zMzqbE2hr-ogtaH!LW~xq zGN;BTvUA(cqf6F_t?HU}C_>-4B_fmloFP`wz&62KcCO%ELiOJn%-K6s{jokdUyZfl zyiid6X}DnM*s>Tt@HF^wfUEr#~!{HzYV~>zBit~WsrHAQrwZ;{rE%FO2tOXyuk_d8B(dQ z3|Aeb*4k9+2-}pp>p<^}g&Q5_5~?eerJAs*wcX+~{IR>frjBdUWH+e`8*#F=uKIg{ z6(K5?YzSoRAg5eb6he|i*FbV?2hdH%&eh;3SxXj7EQ!m-g0qZVbYcNc7XHFPKy-yz zIv^$>5-(%ptR}nE%fx<})F2{7q}gm@hfO@>W}f!HYr^uEUJFFbq6y zb|=%D-CBB82G_#$ipjQGq=|#2s91-B5aY@IxxE0-I*7<$+$H;2h#|te-7W5_^egV_uDwwz2wz?I z2tdhHJ>P04*C3Jgth1!N(s?M5?j?k{39CM{fII65)rs`~E50C%z^+~Ajtw3dv9 ztT15->$%3Fc@ZGJ10HW`ZsoMt4#)++AvHrr8Cr#auD*}Yvy z*qDtr5*It?f2Nb^e)$XQ$raD~&2K(#$>YBl*#GHI?vo+&KZ)84cLDTsA#J(yHC`LN zK4|3}Pu*1Xj06#=Lw0sEhmk*&gaj?R&}ybA9G$wB_Vuk{n|A)-E)d%dbfXQF;cQa{ZnY_FtnfOl_pq-TuMn?O zwrV(HyiDpAA@FY=@P;|mWS!NwzYHUI;rZv?ildDXJj+@%_{*QQ?IHw`4wyMj*FLDE ze@l$u!3W&~b?e*jMM&q65>4yq45&dmFwAb!f{`lVrNuz4gqQ12xJ}C#(=Klx)Q`An z|CY|fnCK_5aVOu^VgsbRtZ8T6O-)M+bZ~Nsww(bj&X$oK?RF<7p9doYp6i%z@*BIj z%DO}nI~;zG=)eP-C;y};{@6Uo2p9$*-3e?Lpq-!BJh#&rf%URC!3IbK1Nw{3$&HYI+-Nor^KXlxootM#gM@c?{y~Mi4Zx36PdAP?IAPO3x{TEy@f?tx z$TM3M@TE&U+JRU=RynYQ5uSd)KC|>!_(yFnaG<?-oQqCldzrK3ib-<&$t{w2FoKK+=c1;G?ZLuTi zpedZP88AIz1cvn5UY~!xE+l2|vA-tcc+muSFN5ykie3w)VkcZ|oqB^!c2r0f6It*} z>)Fb{x#yfJO`evSMao7s&Z;6|3fAjqoN>mNSg-HC;P9uzsmUqsWOtHQ%aQ%ck57U1 z<}v$4RJZ257^i0|m{bIJb%L$lF6BT}gCQggbCi6lwYJG+fVv->z>VqCD-937lsL=K$o~#q(^^Ms0kiM3_{|+?T8eE}>d3 z9RzT1<3QTz7Guy6z*%5FMk{#uzE~Pdcg~g?u$!A*N z{C0yo>bG0k&L8rpH}TaWgS*8jdLXbB|eTI(G@|wuIXMr;eA^xKRP-8M%GUcWHD@t@{v6)_p)+yOy~e z0b+*_VKC0?@5JE@#uIiloJb4b0`V4#M~yvp@Md}MMe&FK?U6^+#giSQgU9oJW|@2T zz`@w{OD~zcF1!0p_tt?D*kySa{rg&J=H%`scT%D~X zqZA1!@faa9LYGKjwVTB{I|p_!daT75EdAs9YF628L=52i1L=P4k%Dx!`0u~JQgCkW zxYUHVP~w$2vrQ0tg?O5LTKs39ebz1e|JC73g@3}fU<2n5$Eca5wuR?v?_<>LLBTl( z+mP6%y?6Iih39wch=bal$nbh+?GK#O+e?FA8oT?&XlQlmOVF%1q#bi+vat$nDWp|% z#ohe>DN|g{{qKKIbN?T|{g|-!peIhoOmIH9@4EN3@_LyOmPA`irS zn)vi+9k^Rls{8m8)WvszUxx7o$a6v&N0fb0CzP?B6y>$UG z1E+SLLMM+|j$5ALmgmQ%$L1V~=8hVMO)fQFPmm9V(bUG*qCp;L&@!HvMw}wvGsaw; z0hDXIAz^+fh$h|S6d)#z&SZG^b>A|*3iwUq#F-N3=e9?&efso1AUmulSu7JJ9;hVQ6YGDBqxIXF!-04>BedyJZg6lMxy! zotq_U7AVFhhg&zBr*@upn$n0|2dJR@a!qafGvfAc9n0*_Y2kiKE9@5~5eggn zN86kV?-uV5{tNtt?-U%>914B!EhWwqcQ==A@|?f$SGcPH|IIA{S3Mj}96t$3{cYa1 zu~MvH5G5Y$pr&q#2*iZ}ej%bTdnKAwEDpQK(vTSsP;1YevU>a0JTc5AaLR;O+#nNh z+}%cBxqGBfv7ZBJs>~b5T~p@`r1`(54%91dbT^@6kQT6X7+T;sUCTs1YxLciggXdh zkal7OWykLAJ6e>$-B?q_)u3pHQ36%mxJuSzzmtKd@$GV=Fo>xTKXv+nyQIuD4{SWi zm^Mh(}bw~oTo5(L64xh67NHpQL+ivr>&$l~8TK`>t=Ef^${$IuZ!G6DJ_u&a~ixbWM zK2krueyh`$5pNOml`FYqt5$J^%wDGj6;V(M-)}GDgm|XZvR$Q}frj-U=#vmG(kS7b z(FFHlLSCU}vr9k9J`8*6`Xl~cbH~V?{3k@na8aZluQt3;NJOb z^oN*IhcFCE05288&M{1P@UrL#*swExz$4cEGoJl}gU~%%Y$2xTU<(gC;O|fF^Y@nS zY25ucT*_~L^P8=AU#sokYXgWV98eGi?E2op0G$M?sz+2KIkLYI1$j^~g}AJcHRvM? zqR_GdxL4fIMqmSIs0-QXqnMs^wEihqvV;$iz!BUQR=>yxXh=_V(xV`Xz_sFF>N~OK4r^cCrp6$fSSv`SQ<)= z&zjKhF44hBmkAaROAl`z);K&nA|;8g^D`nZNRM*x0)K3Ru%Dlhp6E_WPiC>wsVQ+e zP9cH|_%pf+O9rsmUR0C)}VP7mER2mrItneBGMpbwbbes*cjLNe_G z1qov>RA zDAr#gVlzM0RM+1Dy_3YP@4%%UgXPloc(6X#oLhjZGzT~5r?mL7{dcSU2lW`v{-E)G zhd|yQOJYv@1CYO6UwWU9d}aEcd$;sX{w~8$@8<8-;vcy8D;DVfAi?sllj4R6tn#bd z){xgjc?RSVSi^>45CL_s(zbC1{Kjlki3#nRDcl(THMPYG?m2>chlmLPbu@ZV0lEDJ z6LA0jDa3z1_R9ZSQNp9j|G!(V?Boiad@7k5^&iB+}Fwxst>HfnK=cShb z{k9)}6n@O%t^&HuHh9!^PA{544$@U20Z0nWT)Y&M2+ql2!2J4_@#sDN5yzf?y zG2I|C0MiU22S7836W^v7NHTx{JT1lG$;Txa#5BMUe^`X}iXi>BBLgt`Ke^xC$AMWa zIdONFxsc(mPw~#w+md&su>h{S52~1U zb5!q{Fo820qZo=}9>|^B&m#!@W%rZc<3Lja1{@c`J}=D(VFN%08aV!x1ZJ$6vkqfz zOV)+pKZli2GXisI6c9xJip)WGdD~%!FJk!naD4s*ZNUAL!t;>>csM{3wE>9(;Mj@& zBzLki>EEATHBmsT2sGAqcY^pUM~ODNst*<~EbMTp*#2P^_rZ^sLaH$VnmN)P)( zdELh#Wt7fqayYQGCYV99JB#A~5@x?jpg%qUB!E-KZ|5|`=9H9cY-@#s&PI`D04qQj zps9AV3Dav=V~TE&vb9p{QD{~n2vP~?{pR3J;|9ciPAtm8CfzF%L~q~sE`%H4j2JhF zhJI?7Ok}ZG=7uT8_EX)kO41`}6Dsv)O0`>F58&H}8XUqa7`Z_)st7Z%z@D4hE=fR7 z-pv}xGZizy&uqR(K3mv#?B|NqW{gKq_HSz-1kg2~ad0WTqoprlwkWTK)#< z!{$t}M?S)g((16P?SoZ0*k1;iavN**AiFjBVPyqA08r#ay(={SD;?9#B}jmVqQg6N z$<92ocdI4~j;w5QKxf2%xdxnlgc=}^i|-!_K+qwp z%1W|ee!`K%e`$775eShQuvB*uVt}Xs=dqX^;BG%{FBiD`?kETp3(F7$V*2kpB=ohl z<L8UM2VB?T~O-ZBi_`&|-Gj0up5+_;~tehuSu0pLHocV~Mr zuWd9TwAy`e?I-@nWe#%5e%kgk4(%z?^$z3m(DoW9p!>~!a)7#D(E`)T1%c=)erFX3 z+>TOyFjQ-=JU~iAvlKv|TXixf5Y!;b1B&%quHWYEt0$R{@-99v{V6e51>i~C1C5_hZS89x2p^xP&5!5M%Th` z$~L+U9S9{5RPNb~3}t1t%_I_}T)ldgXu%_cwBSu>K^8p(!hsQ6X!$e7wAdoa_W!fa zUV2uUw{LFS_Rn4j&iFG+qZX^-lp@U!f$k{2-W5MlBTieY@Ic&{iE%)w)#epb3(hA> zsMwvBvG~!$1sdihj2kOCp%0B#4;|6T4(oi(g*7YGvQq)+z+e|r72 z7JJA}YMfZ-O6qF5<2#N!?l@x)*b4{P7Hj1M4JlfIf_BbxMnJz3ZNpD+S5%-jBpia4 zSaWU#PfOg!kAoDdX$)hbjr_`Gx0SG(?9AAPpj9`R4ZgcEJ)71)bzsWCR4w}wb;u?) zuCMUFsmal5&A64tA;cVHSI@4zu?Pm*)b-{w%DfbgfI%m}2b$;h%$w6cdw`6f zn^)-prh~Z+1PVM|S6PZP>TBA_IsZ#OE$>^7yoO0=FKmj+5KtK;l0{l9mBF3gRopug zyqE}wNZ^oPG6ICuUAs45AS=p!F!=rsDGcbrI*e>+3jpLABPX~*PQd3Z-N};1yKKpF@7>jVbS7DLkGoepH;SP1 zUA5TVxZBILH|{ofYmNVm#EP4AWB~9IH=s%F>`+ysr1f$t4_79 zDkD~C%uqmUu)YjOrPY-wpUo*`q8E{0v`4W-8@GIDkIy*DCFy)k*t1=nm_eCaL=2;E zMn!L7w<77L0@{W;1uqi8t{lHoxkJW&TQ+7 z{*b;oW%Ekg2iOw%sw&iCHR1xJf^ZAG_Vs~sonki(7sn8VgMjR-^A&$oNA~%Rar0|FG=RU^*oP;<+;Cu=ahev0}bZ9Ej zA_>lDM1Vu2bdw1#b80~Z2L^mf-<1di^ueByq7jAV;l>}T|G$kA6vjhq68jo@s;_li z+iD?m6bCnDh`Ht}{m_C2T=qnivlOvCtsT-#)l zxAB7#bRqkCV#5B_OcQkQKQ>S%#N`MbIF+Xq-oRo{pQ4O$$?hFr}aH zT6TRMtzIAQ`ifNh>^grvna#;vQ>G}vp`WJqlRZp$xbD6gjcz}qlWRE(jGa9TX`z<~ z8(in;fF>;-&lb=)r$cB&DV5j{;4iDDu=VNXOTBC{HGx62poaK@3zL00#eXna#)z*Q z-4#i0Au+IhXgoF#5<^TL6wJU)sKPG^*Oh=R7TNg8+zj60hRLS!P z+=Jz!?|I;U{)n#U?z^+Q+ST=_KxIUyhN!PMszCSYZVU(#L)F^L%(uSY^$u;}u8I5_ zDP%1|;uqM7i#BHP{~_)`)%f081b7Nwn#pL8gm1txkt5_$K$tRe2<~dftU>mbx~L|1 zkoGI`=7wpxOY0JOq>*hfqAq-hOQzWpVNnHjTK;y_s5|d;-@LlDhll${1i+#O-}+WDS14)W`~S)|SX_pd z#{mADuCRPL(}W@bCM=*Uv{Z!x{w;t30TBL!{chXe?4>@^1x!_G*(!+V0=Dq0Hy<~DTSj8%#P{D;6v^Z35&Imo@tw#qXbzgh3_r$!C^C5oECBCDT02+Tc);e( zMgn+U+?oSoU=iP_a2_NuxHpd5CwpM4W>?@mJSP&cmjy^$co+_#Edl=<5}=5p90vvt z+=IN~?!VvP7a-;C?gR!fOz$vazh*Yvg4p+WcAJ`RruSClwRWG10W>W1YiS<_M(j?7 ziT^{(Z_p}P8#NeACTi?3QUESM>uf~JZu;FE31TcjR{%ZBv=;5=5AcALffyS+bS-hA zi2)~RVfi25QX&L7$@Q36&qtL3kPQF2kI&A69o#S~IkWNQwlluWB2ykL@;)O6 z{oSZ4xT^SDfJkr-VK}E9djeHKvBo0Zm{4I;bOeRdm|}zwcM7p?Abv` z0If^c`mg^rr4Gk=61wta!z>^xYU2X!IoaiWO={DopL-sMKb@2E8WSKfdXSA8X~K}bf~X5(3at3?Uw}NFmO>NU$qt&} zh%4%>kqTEALE$f$JJf8X>}V_WT63Vp#8=Qc+(gbQj1F|H^OqZU@r2F17RQV8X=tLC z8(`6BqN-3A(k_ay$i>O0`Y8<#@|aALbIMJVEBYiO!Wky#lUQ#q%5eL2ZP#BHU<>Kw zfHRR}SS*tJ10F4!&Y(N$!BFdCWlsRT)P0?%WxfR0xp$63Oepm<=hu;|WnUAxN4%}k zWkMX3=5mci%_@4rsm2-H7ixGlkcOxxIH)kEws1#>xTaWlj?)4~eP`xNh%^{$lWTUi zG7D%@A`Mr?`=}5U3R-FRk8uWl4>R;4)*nCEwJ^5NQ9< zgj%EtHol8_>CJ#6j)y zszs|i(R$6aSj%)nq5*Mr&kdVgY_-rFva}#98vR-+3n=q=77z;P zVrMY}@x~jkyVs6?m5Iiem1Kyjf{6<7i8%D23?q`l;J|}TJnW4y{2#jB1kSFiOxORN zs&i^gWr8p_YHN4fqoU9X5{8VGN-A?8%#Z;{Qkg>-0wkQX*4}5Rstkk~kr_elw!8Iz zwcEbezLI$&1Ox;@kg=UE3d*4Pf8KAceX3AfQY3~z?Q_oBdp+xY-|zdl9n0!xpnK7M zseIR`4JSf$L8;@6CirBuuIn-xpPX<)wTn6ILj+OHCn^FH$H}Sqfc&Bv6~D=<986E3 zjc$9;RV1sBTWAC&+^Zw(WoIlE5*;?TP9!1GOQj8Jm)OV(EsSgah4*l9^tH1tvBUBc1DJQ}U<^1IJ7fOl}Gw%*@bpBc+_IqS2c6 zg!UJ7Xscv{*U?&RL47<)2mfhzg0p;MdQys6;oyoQRgDZL2{MCv4~1+)$*>}s*wSg? zhAwOWb~G0(tWf@vYeM=6SfQQaaL(=#E3AmksKQyY(V${!6Pqb#r(~H1xNBDsRv?zQ zX;ZK*!L}}qE7qvUJT>Sftn(Y##j0nvjTtjWo%n9J0fDs0d58T@C$-Q&m4`4@{7AZN zuf zVL8VI3r%?N>K|_pdb26w8?m}8M)~RP?fA!d)u$9 zYUHimi~v(x-b;=ox2$5?gJnrpRaPf!(kq&Ua%{%bK2klAz!YtK033SxB(6#bLN=_s zro678cX(ZI*4EdrPtBZgC61rK1P9TyRPN;&%P2G~3H4|KB$Rz*8i2h`gPIaKwW8Ky z0f*V|B1d2osdc5a2RErQrp%VG^^$PDDFF20hyE<%sAWC;|`3gB|9nnhVWgF@2;U$@r_uSsy!FhLHI} zXU8KFha?V4h8UbO?@i3NpeCE~iBx23t4_#7NQUsY6mRx7wQq$i?1&Ucwb&C)x<9R1 zcn>)qITVPGv8>hR;5u=|wX~KntdRRQz!fDdii|7#q7Jid@Bp=j2+AavwTPM*fTq6Q z6_{Z`QXj&UJ|$%|BeV!DV-(E{-l&__F?H$}jWLvopz8C;8>0g82M0TaBb%k0*ku<9 za{K{fwCK{cWaL@Ya1p&iN`!DpLmYIVhI_1$h=V^+++R81_vdgWM#-KypugB{_z`|i z_PYal{R6k(?`sD;tPqc;czt_|AV{(=-CqP&U>6~bla-Mwc&R8LEf!h?A&Tbt?^RTLEg0d@(Zn;DPPn^Oj2@0Q1mkn;aKl9krXu}CMNx_+BnS% zMA(M?yG>?in4aO#GdyP=&r09(4BKF0m_=?3LIyh;CTHAnM}QFJ zZ;e90kl<;ELM%A>u&qx74UKjSsYx?5{#|xPy*bigH3M3cm!W)wS~mM19AT9b%1H3) zO~p|_gkZ!dC09QgXw4f1bzbpT?ow#gG(y3I6?s?VUJzAc8EZ} zM>~a22R%bomlmNkHDgf!1mllTafxPVo<`PCiDFC7y=ud@L*WkuLgA8yC&eFb;$dd6EsC3xxah5xM1UO~~}RRbYT$r03ygz*sSJgg>4 z{#h|Hy|HQS^%NXJlaNp=Of7L4P#25rG8XAuzj=eYDclN=l+Ec#r&q8qS~Xo$ya9gH z5G{)QtcXO)SGl`k3erYxaB-5^=s zYWuvB2oi@&^of;l;LY$Dm7V@H&0I2uK}UEjYd3c@v}>Z=ILT9dj8*KX%;T6;?&7dc zWyM54p)h{@c;zbdTpkhzg3xKD(f-t8h(vHH;D)4XU4{eq!!xY#L+jiS{sL!_tP)(QPISst;aJlPHOjPmNOt2QaA3eVk0zlq-E)n#<1;3G(u zHS$x+r%)pw(QKy270^dzZNn9ShhJN}vPE)$l=kvf4ObJeOt0y~_h?Y2lKRW_l?^3q z51^m>&X;gKEPGb2aj+X|kJJehCh%SW9xB6ON&?*BrnYKvi=x5kBek04&;|Ag3Yc}* zlJ`*rij#{ww0`C*RwMRsmz{3rZLZ$~;1u$i?%Aj7bifrYe3=oDWhd}|#Ky0q4 z{T=5^che9~H%1=PE!f??}pMtG1TkB#?CH zmA}&Z$Ro(JdYZZWOZRyU+9B2p2LD6c;o*+t){*GqcAmOXwukNCzOP`VVA{Rg*t{ck zcy)l0n!$_Eq892I00s{)iWxHT=q?fhn4Y4HA{g!I)Zs3pfoQS1h?8&RK zWKDL_RAYpmP>%Lq2r(789uTb3OZ4u#f)9+-1&&Agz%Bc8`|f2LTO$&AZEw0KVUSw| zj;QQE!ngzNLxP5WNY!|p&ibv2?r|7?5>q6hp@WDbQ5^ z)(G?kOWaTF(%;)8UGYnZ8JHv7f6*FINU8OvPywyXPk~!dn&PmiWJHY)kuEQgaK$47 zM?@(DUj!{f$q4t$j|GbOMIE0cX2jPUqzw1t+)Mt&A!dmv9PvXnsj{9H%ygt}WlA^E zGKNS3K=^|~h`k`hJL?}bfVdHWs2D&L6tXm9y=t&fo2XdHppwY!; znmDLAq*``iji^&dyiDS`mIcjClRCj$f}T-cm7~{H!%DK2dA4DSL@Kx<8wp-kmfyWB zSzcYy$NyI;tafLDtvvtJwN(hC|H=wIok*_uYc|rj38F}@YvO>-&e3P5v__c1qZBg~ zq1?zu69$hq>yXC#pau>l6fZS!klr&$$gt6kT0>4FI`BlGQGZ^mmXUxIL8C>2hL)3? zKPf^*h*I!oML7egU?~NtFgZhOX&^)aQvelE1z3Tapx}G8?iK7`vdRc{9pM~fb^XFIR4UY>*NC73Ej}q3ba|bU9Hl1TG zYh2rI`dXMX}*3tjcDi2{jA# z7 zHbM!>i!4x@Ipl3pg$DxwL>85&lBZip%WHdOe{ItKsy|z*uu;b*kWM_T?~j6XcUU?+?#0>!V8UCu(e3y!tml7L@qLkg2aW{ zB;R`!n?&s!L*i0z&LQ<|R?dPRm$6Z!(89g^QLA6UACWkL7W3wtVhanD=#|O-u_y^B z!K=b6a7Au#?xG_RVpI&BK)#V8wK|FXxD8FgLU8Xly!USM&Zmqwbb|j?mP)KAGz~Z4 z4RFI?gD{3gGMW0Q`i7^8WDZ5R7=#*b-`{AolDa@Bj)`rec2VMte^=dSz3+oU82{}4 zY1G#YG>{gvX@tTIcP|NPI71DhT8%Tb${o_;$cWBJbs0Llz9u7QZpWq>nZJ-j3pD z3^VG6iA`s){N;d3BdW3>s$tb@uenznNnW@gtAyyq7n2{g8)C#HFop@G$Vh5v6%3m~ zcJuTw^@j?e^TEd}1{()}jhELyYOs;iVWXGMfhyDJ@7_G6S=$glzz!a>mc4M3^Ihyn zzAHDWMxL*cN&w&0#_zC8O=id1Jf+-yoH-Ec4<(U;Ekp+kzU+8W4iSyq^vaBaZGK)E zO-bcEHTa9a_s+3S(3-v5Z%PJ77M?Mw+VE_;uwaHsg__Vy=ADp`%S=yfJn1AxHu!%W z9>x-WULBtm&P2|DK=4gOAev36eP1P^CDd@&nd8#`R!RmhlLwS#G1S&7cqTlZwRa5S z4|mB(WDE|W(1-PaM8{x<<9WI2NIN^T$5|j>UJ3p=vwi#xEi8Dp=`mxHu}yMF#*X#l zn#Yevxxm~9hLQ(Vb(~=X2N0U&pM-fg{)!xj@*D+E<3w2A_x=-pN2?;0H<+g zekz~7n^KuPT*ab;`6C(ET*nWMT`G=FPW^KQIK>`<54)tGYluFAi?YC3T7>K-_KAkb zCKkFY5Y3&7g;EBJ(pfhGs0CXpep)Zdi>-hKn{l#YBd<0GSg@5KagaL zw3=u}`o7&Ba7PbF19c%IY~#Mluy{m)zu;-k5z2&E18W2f3&q3`vLd$17x@*#!xD~> zO%Tl6=%)12f^Y+r9;NrtN<5@t*zyIY-MJ&VKMgs|4@5)?ZSDTSR1E76ot2Sp6&J+^ zao`P;Tui~xJXjN56y0SJaMm^8aO+D{d6X=cLBG+f`l!m1iAnX)8n-$xSimSDn^E4s zXrcdbMs&Y11-UF81`C& z5Aw^m-g;Xa#(VGO-~a9J=!u~~l`kpSD4{b;p?LsO;)6h$8AM; zW5l44Mu30UH%dC4t?_^xc1NW%BM|Z8=nbtB-4x2ZV_vZm%@?2yN ze@-LYeHq!gSrP|rrz;m?mxKT)oefl&H(2Lzq%+*f$tkVud?s|j8SI9{Gu#-@Hs34th!!(cd()6-pgJUtDb0K(PBD0AdvQ1Rr zul`T80ST@IdwZ*%&L%VWPu&Pz422u@p_*qhVFGM6&W|mQaiNwJBg$c!xG(&Lp@qmo zmm$=tbB;EN1<(zmMnZQi^%YEQfIyBp6P~_UDSV^m*v$5vS)z|w!n$w)b62&n327(d zWmZ?Jqepc`k>Zfr%6=4#WZ9;rj>a6ho^)vqz^JSkg?|*>2DWTdu&)66(lt5yekAn# z$dQ(*7-v{Sqq;6H!=2YU=WR{lblsHK$bR zsI-kxI;y4~h8ymzjwl^S+0YO%RgacfG-qjr&IeJ0Q8I`&R2&kF64NxostJ`LxNW3> zwQw@tK+~wzf~c`|EB3c1gVz)^4R_~p60Ge(Z@lr~LtoZ8QmO_N;lPbbzzv30Cl?H7 zyGCXT=7a1s4O|?iUE9DD*5?uD9~vg;;2CGkaqm6%I&$qfq}zf$;@s^Gx6$zOI6F}( z`Jm_9#<~#^Hu36T>zU5GsZ*q3N09U6ngr~)@=B?BYt)dM%3=y42TjhktkrQn z53C~Qr3*{o>L=^W9Izu)KPf>RU%^>COSH5pT%Yl&Xr91GYQ&Wt00Vc}1)I*1J&{pl zVjHf4QHQ^wm2-b)oD{Eh1hQ#j&Fz@iU7jLwINGM>Rt>=sA&`+JF{=9-_U_vl_@i%M z6QF_I;U#ad=kSx;o!gV{F70AmA-_)exw5C3f3lZ9>A?|qpq=aiT^f<$4;}K4=MMVE ztB1-|o;uPQ?&($&JfwIeba|%06f31jGPFno$08?xCJnrrL+lv(hO7k<2nN8?r>X1 z-5BbW1R<6?HY>&5xxuWIj6v=tJ|x+V1sbiCuf|ZQF-X1H^`JDyj?m~@)uj*`d}eWs z03nztR!j4;OcZh$Ss_i3b%Y?l{`HaMJ|PecqIg4bN9pA_f0)Qh?hp%9i&VF~ue92$ z>otk4S^o$T#It-m__x4N0t{p*f0z8$y`LA7_;-fz4u--^_G$O#C#@*MRDqwE@$ecx z%gd+%7%djs$U0plPflhd=Hw5FV6m9Lg6d(ShmsoqX{rZV4RntW3m*g1E(TD<1qD(P zq`T`>3@nRn+rdEVUKu5LyB<-}of?h?w({-eN2$k^{#q!)vKM?oBC0zvTS+R9Vj6%f z{)%3rqwo~B&b@Xd0uRDRthzB4dEt3pu%o$3^Rvi3ltXFWXR{izz|uhV6Ag!`%Pv_z z7X(6Q81gt6^4$7^V90x5NUvcCO|GYQm!~##6U*qIQkqsyD+6&nmKcg3x&tojr?d-?4)_uRabca>>Jz3UR>mDQHrN;%6?xie z*YaPK&CL@#RsRLP%~hP^nH<>0!+Y&op51B_nL`Mm8@Ha^JviP4b70DswWt@NI!Z7* zQ$R3(-o+Oq_FE?j&bl0SiXbniHKKtq1Z)A}rjLodiF9YPTV)(wkG(}R<%G66&ts_y2$qu;fDsOhy#bh+qKK$ODMQ{SHXYFsEJ zp{t1upcMB~+2;!Pm0HTR7?yB>giGo*OKLb0>Oe;Z*JbwXhb8!O27Bm1hxd}dk29FN z=P*-6^taIEPmex#>nKZh*ptr)B>;-A$0{?3jwMSLu4Wi3s5DyC^E?jS)@aWjyrDG z!+Fp#G2~D5Y_4%m@60DXi3+0k^#*u&pHNq68q_k?VRHQNsO0Rp0j#`PW8;}1G&g#})ZSMeJE z-n7YBr(*0OyprS-BBG$j&oEsSWZ@+`dXhRskfHSo70Y#~)K&3N4I}ktwkV181hQTQ zmR41_CnPP|;}E>@%=)L{jbFhV{l*)9YPq{b_Jj6m`VmhiMmR;AHq8NIdyB(O3gLIy z%(b8E@62{+3WsLbRi2dVx|l~iS3_^dv@6YW z*0Cj--A`4DavqHwXi}q)^!yh=`+XxYpyc6E=nQ84ktbx!>w8p*7d0r`U?m39xA^x?=zA1yn|vT+!VQ1>bv;qdKO zGl0XdI!Xxyo|xHL79ueuS#JX1na%9m!Vx#Vg7Q)9?4Q&oh|>nIAy}S@kYxNY(iGz? z0)j=u9-rc6G_4yg1o7)i=Dg5maxG_kJ2kemy-Io7V(xMDxH}l z?ZFJw(WBuIP44&$oUYFgs3Nfr77F1yjDZY89HK~*K2{yT{keSFY!`VQVUfV*a6u(n zWKf+;zjjS=lU2u${^_Boijhc)JW^eeTfT{}jYLS@vObeVw)XTd&1sv0KWdc3QsA<3 z3m;KsO)s4~`E2-0tuqqlchHQ4Pw3ipWuhK3UQ&z~M|hOYCcy-@L!VAY6%I-jSFQ4( zVt4A_IFR;01jK-0Y#R$`x{nybQucF(h(e->Mpo%^EhMesu+JOa1`_!bAY#hMDg}qE z=H@CDz;dNFr$fR5XxKSFoib!rdF;pjlADA)G;^U8U+eR;_r z$=)WmP5`728z$XT-CHp`1}kP)VK>>r-F{bbXSyrd*~qW?d3WO;N+=CS3T#pPDWBb9 z9XAqW5clLz4w2U9oAV@wx_`#nCW0dBxJ7w@!XN78{h|~C%UQBHw?!0r;|)lp-82!| zGU~b26apYN;Da596R&%>_+I(_7Q+zjx;Ln)IsCq=eqH4g-T*ffvF^s z0VPT7QtVH24fhISV>Eags5W|YJqLpZ(z;@ATevk zWC4gIXaX?^Vnnhxb7i6$q7aDn`BdpFf=EzAvg%oY1Y4$6rvlCd4?f`TKQa)BtWq5a zxF1C%Dr3KVkP3+Rm>mjO?%{?MaBH<^xXovd49n*))yL{)0WMx&dAE@SYI1gYZYz%! zlPY+q+bmE40%NUd^I5rAB@&{9#GsTFEnPCE^i#T(gVl41e+QCdMGG!y}6pDJED~)M@1nkoeG-i|B#*F;0Uh z**?^YoZ48v{doC7nm^GRhm@&gmpIL2-qu#jdrBTjJFE1*Xc-TdDBqc!;ZN^7jmkZk z1VKc()D}A_vRfsqn|M@1ByMS;N2Z8F!giOVh>*E(myTSxaN&HEh-k~`eXE>5j4eny zgx*#i7=0*RC8^_Pw6X7p2ew>?sR>DtVt0Z?lc^%eA_|`tVG&0yP83Dl=qBthR1tT| zQQ{F5wk%%?BlQ4Ci^WCi%TZV$lg3?Ar0-G@U54_G^HM^mZMqKabp$rC<aot)6a838}8Qk*-}ezDlSe<)xc@8u>WflD?iMzAHaGa!9Hs9aV&r zMmDo55mdLPNNFtw%^HmqWw^KsT2fSz1Rzmslmv22IWO_J;j!z9fe_OYiqN{UHbi%= z;RrkuriUd_5~<^e0*~?nW?#b*JlpfLW%MU`WPzNTOc;r|5UY(6=bGjQL9w2UM@$%5 zA0MWwX(4`E4Z#q2Wa~}h5e*07>j=?EkVG;;gjmQ|{8_`Ne@1m*eJ+TE7n|; zyvT5lnJPiFs7T7 zwxj5#M3VR3doKY^eoGqOCbShL#nyf*D}e_k4y>+8@X zpvDTus^Q*qO}q`f8RZ+24ei;Etqx+pzWVLA-&Rcw{zXtpeu_O4am4Cr(MR~8@YTRc zjVP&`Ga)3hU4c~Lh(?(HpL#0QfW(5Sv<6duP&EgA1RTj=gh@H9y9|AaM{&8=;*DA@v-p z296+&5D8Ja3svFt-AC+Wb$f(Es>TgRoCKE}D>i5Z)T7KyZu3+6x0VtRPo>*2y zYDv`F*;ni$*uF(4f}ubs#|eezFIX6Zse+TNg@?wB_*KVhJ3%kepiR6RO`KT2VLe+o zjFFD%Kwp4QOt6vWKQwb})OLzGlqq}&bWUmFZR9t~ld7ahnoTW$aiw|g)cCFW^lClHExiF3ELpOI2&Ci_J<0hB&WUL!0ap;|ix-sjz6R|ihjv2h zAv;_0G11_amMkUu!WH@1@++ofkMr}8SlsWu@ZtL?vMZ`OVTV*Ipvg7l9P}6 zyeaJ90&UHxk+CWnU4mQCq8&x{jmDa}3z}?CIj@XplAz$IyC_?Vqq}SlWG&6`)2q`c z8-)bzL#`w4prp^`GCGS#a~RNm$+vKqRLwr3AwSf$MKhyj?0CY72VQ+kMH_D#YK zWYLtS_NWtn8cOAllnvLwh!7F-R4Vry$fHs;J$R74aj-DXn{ zX%ZnyD7&@#7`&UUs!nI9-6*IkDmgkA!MGt5nnjVwvUNuU%{OO_E73gt3YRKeq5 zUKSI~E0{7o!LJdYz~AoNqeWB3ye5_qA+aY9Vu_n}1iGy(B|AQ5R=WBg9INB8_8YWER;t$^QNW%tzsQPG_pe zi*zgXhx`*GGD5Klsn0z94C0CVf##tU36c00)GbnMk|Rd)5o@s(3Uc50Z?^4NrW&k` zH{W#X&i&S}-g0l}!IR&3M3bTKy>BU!-~G;pr#oZ!dh9dHdq&YjN+Kk>af3o6Q8W>l z*pf8wM(a^%65~w+lF8r*iOO+JGO;;mkjcMi9m+#FuGPzgf*FgDsG$dB!kIjv$*ZsC z6(8}h9}k)kmf_{S`Af^MGT)W5Tf2L>vt8+9b_lT>NTQFfKfDHmE4_yF#@tqaQvu6y z3#F_>kb^=+Ie)bFQ5XcSj&&h%Rx5zh860{$N3Paa5vsBP;vKu;+{-1K`{}k zXvOn^*pk=jK`+PkA03yxKqcxWB64m{cf;RWh&8qui^&nouo`*&Tv`w>>A%gPa<92p za@5OE0RCdurqungRZ5AmnA(dqe4mosyeP#TN{Ndk^w?`8YgOAPtweBgVEuc*$y30| z=8za+m*yOpOm66!TqpPkDOfQ|D;`w?4QY`B40FLVqaq8Y?#>DJF%}b4CgLS zYPJnl6*a2bP0Rt3767c|rqBJLHI*Fh)fV;NC;kr z10FlwNVvqX6oMH zaS|Chrkp?|C@1doM}^A>NKz*fWCAxImb~N=Pr%j5%h5KHQga!k96whFdp1ua6Ep~Q zT5U3#Ri=cR9#2OZ-mhtNU3Hj_)hU$~Wns#L%Nmw0>s6AZx2Kz~uc@u`Bul87pl3^&N3oAx$jVeN zW+TliwbnoSX0CD0(+&MMDZkO zC(#&$cq5t=K@*FW1oebiiR2T1Ywotn?W1fHkalwKeP-d+pgcb}FCkshrd{78iE~pJRs+x6oWo2#CY<=d13V1xi+vZ} zUB}yV&<Assdyp3<4D9Ujz~vR#5q z{0+qoetqtGf1R};6PGwA-UEo-2XlPUSOKlXJy~RcO6BRI z(T9KTBW%YUQB^SchZQv_BvKD@ulqNKi9xhQ|4hclFK});kVwqD;efAJpLwNO{d@G+ zGV3O6-f9ZsT*1^47kYw3afFXh1adTQnIQrU$tJ6*2I6`HF_1~|fM^(&G>#D^f+@gYd?0#xL zg%*-@4zXVtc63fEcW$1TqK%}T4U^a;Z;>n#+DSLtCOQR4B<$W*Dz zAXr3^gvRN!DWEx=4Ug?!J3fUgl0?{i5(|-NFs7q~ra@u|t;ZxzfB|9;qV&cdsfi)p ztQvQ6>6GLPrBmJLp=Q-EJB-aA?r>v=MDEc3kD~K;ydhrZ86A zU`CnNu%6bj5@mQSvY~ckk;up43Vj!EI@`VZB;&@VW6NXwnI+(ZUZcTiznX_0xd=^u zBkMN`h1*V#1NgB-F3w1Vk?a78YoY@#&0lJj%4aLNln{5j3M@!%hMR*llGp+l%o zt(!JXTx9SOd>c2hUB1nD-ch}-G0l=gnDXk-Lp~Yx5cxKrmm-2t5g169z^1lvAzKA| zg$A@C3n-+(F_zJ%;71tY>8)X<4**oAwuXNEU`8MQ;YJF#)aJA*%BU!)idCg1nN3g@ zAIL2|l_mX)C5ALC?WrtnQKnZIR--jsnx$DC9Y%^PYjj2}k!GbwJH@=5zEh|pu`*s~ zX_5qSS`CXh97vc>^YU)eDxH1UmjZS0AY&11x(Cw zbN~y1(eqQ}2Y*fpA5O*#bgP2 z3#U1$Z@lq_|L=dS(+Nhyn}e%u@Na%YT2p-T-g^>BekcDX01BC_5hXDS_epSYI9R(% zyEgkM9lDKwDMry|Z;TScPPb)o>r5mOqincuz+uE<42<$mUyr#Gxi^R;*%X&SEz5W# z_v{Jr)+bbFqoyj)J&zpp(vLGGNahU$X809F66$+HAgg|xrz3TrS7n4kDgmtg=EJyj zD_7o{A(pJsCJ78T-Bf0t03gGB!YyudOBg*=t0oLVc0|%7mBb}2zy@A^|AFy~@+Mgz z!|G&zp~{pGDJEo1kW93zKTYIZcTU3wZ<+Am<(F^K_Luk2?SP0m#CK5%MrSmIQV<9nAQC9QY`G6$t9MY86=m0 zF0W$jysSDK;N`^^lOMH;T+G;U&o)Q@$~~3H*5S4KL&cbPZLvnd5SvpuJkjrrV0J+; z9)@`ghPg3#JCnC?a3_-4b%!z}6BE8Ra)75^gl)ez;fRTBrToh5i1-saN-`xht1TOW_x8b(55g zHJAk*_&XL}G$F-7QaLiP!}TtjexvWsyOXj3k}#e^8@VRl87?BB(d;x2%e0tg!5^cs zi)e=Hh8~h}<*|NDJ1plX=pv<{$&qa3jm+mP1|1!~y)q=?Jxam#W`)1ITORQFFD zI#sCam4rOMc%D0_J;Dqd(rj-yGlEZvcPBpUySvfZx@a0FZ-+%8pb1Hoye>)Z4mspN zGbW{slAvQ^&LU98a0-}l3kr7b)d0C1-i~K`7O8&6QbAT!31pRb`8%_%)>~sPUvj8U;^RRX`i&fnfIxWuMYsCAW^Fhojx9 zE7e7AkF-)Gpi;uRroRw?!-tFp)|DEj{sG|3V*`zZBdVw)jzL9W91!o15T{-bcMirWmf=d8AB-%CDj)n6Oo5kqGec@6%DCJLiHB2G2~$-%49qR`NeJolRE(( zi7(;68YOb<{K3E@k(?_vUx<(m+Di-ThShUD?Mzfw?5?2;j%hC?P$yBEo&+sL@65$n zQABu==;C&lclGWp?%24qKpJ7&cDDlwW=F%$9kre19p&wf+qQ3W+ne|YP>@HA5%lB; z*!Jyi+e7k}LJvYP>Au2#l`1C;tm&o9CpoD8Q-{nODl)~+JvD>`1ThGr5LEZLXWIZD z+hQo^v=U?YQgeu{825Yu>MZd$ zjm5=uIN@dUinG)T-C5sw!Kwjd`N z@c5gD>p)=^>z(peZo8#=bHhzrE6iK8>KH*h%Q~$N=Rd@ME%OpZKIdRR4ZuPe;S#_n zh&EV7kk0`300$=8sOl%iSuly}ij9%7)f)eo|Lz7$vuNC{2Ghj0CsD8&6lNJjJ)s8? zah42v>bb4VA_{sp6c+SGKsw)nG9f-$2*-U0fQjH@|TP92EsCujJ$v|f(pi={M_S8Wq>1vpSJX7Q= z*VQ|z(%FnkBN!-mrj(-GG;!;M+Qc%FxWfnPB2}x5i>!Oix=po9TN;EE2GLylq|lKq z;s5jzJfMO^4~R08X%wQZU=CGgm+5Yjo=tOVJ^9je+9*6dm!}H{$OL($JTM&$TS1Oc z3dbbW^>{d@mHiV#fObeE@& z02uTxNV1kPqY!feD%9*W-!)Y9plFDRA>c#7e&NR!td*)iBe7PhO**_@&2Ub?cBF_V zJjz4ij|w7=)|LZP*vPQ?K}HWcdU9dyf>Gzot(ukN%LZ z%1>+!P&1C2C52X?n$zhR?*uiLS&=_p*ojzgQe ztA#UkZ0tI-YB@;N(HIric<+>@a`ZdNE%nPbazM{5-PBW7h0~J7{Y&~5x5!{2%eyF9 zoM#_f?3Yw~O8n6(VonoK0M=Ad?{hTBEuep>-F^wO@vHj@uq10!!nO&6iru=@N`L(N zl7Wm4p#?jHieu;-Mp1wxf~W45n}R>&vHK{^o?0ZkV(S}~Mh?*iX^($QFviLQ1S41o zP1m?+Q=Bq`2v}Aa%0!xL5dREd*wWc5@vgY8kXF)_P z(ZgTif+E2vT$|xkP-!5TOY@S_+`^K2vkPB>X_fTwjxM^qa@jB;>O#}n1U>VeCIG|= z8zeuHBNT6`Q7<1VtQy=t_5Yt`(#?JM`Fl^g$MhS8aqAu2ZAXA+IPap4a6UANUPgMx zGA?V^o?Q25;0zpNeda^FB?y#;^YHvSQ|Ef3LKtoW(cVWNb~?Ng2>YqWMFhG25S=+cn!mo&H`#wc7)LT_*%{R;;!@-Ugj*hwa}_t&n}Gp&NRA?y-c9aLK_E4OBGah9A^je81_b zSU8jeaq_BQ_CG8EI3!@&f zZ+}~|&VQ;^Yy=$MLf+VVD|$N0kWjYpOC4}{c?!M!^b{jEjj;LE+wX|e1UUF+;l8u8 zgMpdxjf5ym5gXdLn+vxfm)_!UJsdQ%TaoJ)9LScWPf$~^C;iss#x{vOw&=|}73!I6 znemSE*9v$7C`iCW=?M+dLLZV~Q@#2Bu&AuT%B!ygEyQFVi9A-@j9H_~=DoY4$U|e5 zL1TSsDJ$I3ARNP;e~D9lzxvg$xJNcTOn8^Wh$Ymd@mRyfyY7P7EDaM_KPWu)zDIJ| z>_8GopXaAugF&0gRr1=*nv&0EE!|>IH%r50ahM?Q_?MgPCH=@f-|zzELyho`dv4UT zNLY2=L83&=dXkdnf-#RjNT+0F(p5uLfb{pnK4s1gSw=?mvjzHj6#Cg}GS4uXBl=>a z)8BCZ>Are1n_gb0`Q8cTi78FtYkVaW8rh)B;U9R!`Z96Tw5xftB$FwGc!#j5n@OeZ z-P``oFOYjscA{cXA>GTwHCb3ZXewb)UplMCzR_?NQQqR&HT3iZr;3ddC}~og4$_{M z*Ikf&rt;asiG*WL^rU0_=UOpFPBtQP6gwxQkCIhoKvX9pFoMn7PiznJj_EtD`y+$p z9l2ClL`JC%v#E~0Fxm=s%(cU<2|P_`RqnJ#qpnD2d z8hRN4EtatBO6b4R$QEerS8m42$n!QVx!?NGEMA-}N*DJnp&AP(%P*@eO_z-{k_5;mxIIgt9oE^=4o`K*zGs)%?Fcgq7z3BXjkE+tdr=+@$jDmmbZ<$OB_ ze2)2Oyp>8q;R3N5m+YjsuWN5L*V^tp!14 ziA|0ToMg+H)Ck-CDQ*%r@c=h$(#e{0H5a6|_^3x_src(Zs;F&< zy?@y5vJacj-Y+|zwa}xR1$5@vPL zb#+|IME`J>%elo%50DpHjt+?Sa zvN$aVRXt1=B{`I18lZb3eUbrcMnyCY1&T(<@sj6-_+yUOATnxt#n8yV-X6h-+{(|~ z&xfmONtRb=>cSY_-wc!8h2JHfklO{=qGPZzy3+BwX$IUb$tMGVv5{a4vJc9L5k_Wq zMfqev_puJk3gisvK3}VsD*f9xzxlsnQ@QVar{381Q3Nt5bC;-y#`jMz=Z-OgQAlgVY04;;7UMz^(iQ*v`&-f?nUk@OG) zw7FXUrDov}bmVVq3WA|y&}9zSiz(V6uvO_l(jqQFGvP_X^Ta@cHM1d;O>l~gC6pDG z@%5G|KR^AcWrSbF8G1?mUSxPZ^NdJ{q>go%!|o!fgYE-WBm9unQFDFlE^9Mq6Nwen zQBp@ke7;6h2fIt%ZjFQl1dM#E6&Sx6XHYn&;DCoO&3i60OIRXf+a$?NlDpTuQ?5wcSmB#l2Kh+5h6R81e z>FS;~y&LDnO-QL$u23?pGV98uf}AoQ?M;FqZJ9Yrb5u`VLj4%RM#WZTcr>-fhVP~g zwZNxs0on%AtZ^6n?yS7_yUJ{9ouOxNI8gh!W$WXG>s7>?8Hn(-nlUhc{`>`M0#iIu z4e2};*P#h+Q_zcqM^xFIPHC{kc*c53EQUtM2~fCrQJi#{=zN*+#YK$Z3fPit6R?OS zsiD?zkY_vcmmX(LU^J#!Y6E+ywjs{%Mn>-H<2l3Y2!DF!xdokw?`*c0o754$wMda~ z&jjdc)#<%6I_%LJ_Q+{uWQS_2*B>!qhP-jHv&M%&Bj0gj1tIAecV>D<4mvt^^yqb? zN1vv{va}-j4Ba2|i|yRn(;Y6EMk>wV$9-bO&v~7Y{e?FA)t{FmMboSRm4S$z=ffeH z;BHHJ>g$76INT!}=7D2%^Bs5CAR;=A9I-SatG|X;B@!*o;LKzN43t*38?!~wh{D{T zCOe+<{hRd8%O7dhGJsPxT3MA%W!S7?DoZJ)DGirE4IT-oNp4xP^tPU@6y)X>mE+gO z#mzl@F3WqCq>DE%+0-*CBzgF-;D!+T=2LT+U-U1AdJKb#h(zr|3O-Ee=ZeajKIo^& zu)#Fz7eigJGto%p*))MD(k;~<<^@9_$wt1~QRC5AKjca|DogOQs;8mh<23{VIo<3H z2I3#qCNl`qA`eM5K~N?h1*d5c1L<1Bq=&3iOi+%pr*)>#3(9EQZww?s9t47b{+x6% z<5=#y@BaJm7XwK-ie4N7t$>WhKisZ_+l|X0X2gIgTGJvLB_L3Vc(&D*_4Kg90JLOr z!=lUmWkt&DOQ3H-pY$c^#U++mD|lxV{-LTP`XT2?NZojzh7lG}ryFHkL^^+mrbz*oFE5 z0xB2*X+&sh8RV3@D4S!I;DeQyHEYvG9_roEh^*naH|*H%cjULTo8P#-y6x8O!*}f1 zzEcSwYw6BD=eM`=TP7rdN+A^F2qqWzl+lU^673tJ-ZC7TIXLg9T*^I`KS|2f1fGon_qfxfeVfG%~c5A-P+Zh};{^$S6uCyPtQ6gEA1Jx7~=4`Vj^N z4*EbxhcHaYxxe~T45Wj@hkD6uy~*9YAw<${k5zi1T05(W5(0hs%VE&O*I=N``67`V z^F9)WY(yc>*N1c=Ub33|TPoSCFXep6N(s=-J4)gy!^QE!JuG%sopDKQ0yiX zC@AE841%B_Iyt}GLYn{}NJ(XyJU`zS2?#aFJ=2a^D*%!hx(W0$NKeh%+WK4`Gs1%uh zkaQk4Y4Q|kXv!ouKK^1m*YD>LTlyFwh=*oaAudWL%Ohj&c9XGu*y*=&1RkPa@z~(e zp(=0MtWNh+H_^m2o#C0L>}J+x`Puvof;6)8Im%BPXp1(tJv)%{M0S7>l7=2p?xK$P zTqXj#@H3z3Bg|Z~8Y+zfQ2a+>W`eb+e>Ov)Kq7)5yY>MLG72)y3SVeeIGc|a1_cf> z6TwcySq{QHvrvi4GhcD$cqZ3&BocC0jj+};s>2ltjlr<<<66f@jficLM#cg#S%$a`>5FlE)@)r_pp`4sqXrK`L;!?01VM|yb=gX19VBa)C!B0?NGM&DQ8*hmba3Z-hn0x4B&I-c)M z#V|W=dfsrkqd_9z62LJA{gMQ7B#}_h2sL~9^g$A#FK(;aift4kvyjQAGfz6jzZdd2jIsTe-T|+i| zKqcdXr+ko)N{I`Tnqenb%Ml%FmUgsxGufevna&z?M0sCbJYs={=#V?>Sl*rb8V&VO zCfNv_-29aWPRMYV11p2HqpT=PrG7-zkTR_cK`hEr%?w*pCLIOsX!918$Cz}ab~f1- zq+GNrvq(nkGR{rTI|{(josxx@g15{S(6(-I_&8FW$|8fViJ&9dp&>14SiC5`yoC$3 zjJsRVFrPWeo<*Ud1$7kBqM%K;@Z8OrYa(taDYr8!vXQbw^=!f|w{SoeE)6=FnrIYw zDa0xOrt6hGHm5BBlUw`u2EZ9HX%X1MHHnqQD~;9G?tF_4c`meB#Ka4C=bauTBVFSh zY;`JKc+#XLi(uvd_ zP%{=2lF^A}g}mzBcc$27IncMP*KjDB*7A$ZzP-~k5e1NEE%%GPr5@zBqa6a zqXCX}z=_^Xi!O)k&_gp*s?AQOb1^r2B!TDIRqpJ zMX^4kCKU`2Nw#xne;%==7rj^+<(WXkmI8YH_2+duFIPpKzyt1d&*37lJID7bMxi zBA14G=XA2idWv!{bfXOqz)jz*bCV+~M38ra(yvBC`l-@cLZK+)pEYTl zA3tFu2-V83CQXr<;=4vpoiUXybIMHG@TxG0UDI_Q#lNrrj*vv<)qs?d6bcoE>DVx7 zSI1<;8tt`{0WbnbO{8e}4abh>rwlhCh2IxgiLd;$R!k-x(56|;U?HXTBS^NmIf-PGmiiyU@Kh{v1aq) zq%&!r1l<8-geDU_Jd>B!!~`eG)*DVg&7b}m49BQ5Wo_aI4%aJ|Ez6W1ZDryc_6Rqx zfC6yw#bpquJxgMMH?+g2v%DXnGU@vOxl3&-K2sDt5fwu>i5^Tq#4XYWh0T*0%3_Ymh>*Zc~SG?p5^>DHqnq3 zt5z)QS-O1nN)XU5X37u04R?7wJKnVZo)nL+CZ{zB72pB<#Z1CgMbv=d(xukui@jMZ zz+chJfG58;55U0MWehsMt`YNx7{PVP^+g!#@Ego0(-5i_vV4L zHg}@udfFLqLlMEZMd7AzFqtZ2Eo9k0lBu#4Ysu(r&9Z0%ZSijCP+$e{;mSo@GLA#U zNix-dNLBagvR&ckn?EMpy8RB$(Dfw9{jk=<4-?Q1w@vwc#z*Q%LiKxlCQmI|w8$?$ zLT~R9B_%@B(ZnP^2;@m!`i z=tM9^s-)4)?1!?j#61zd2ur9OMvN2K3$`)CE<4Ky_+rSXv?^t`-MV2>s6w?h+19N- zUJ*pQPOeaQRMc*{r?i&c{NlXylJQ!~uwf8Rb!j14XVhhOlh zR0Qigh*K1_EBE>*GXnc*3~!rqWgec%KIlH?;l1yEo0o^@H_+6`9K64@8%p<+ncmz^ zH6-6iVBAiTz}!t61Yl^b!M+=C?*w4NuVCJxU0Da@LCV#)zV&U|`C#5D)AZdC+76lR zz+aE4nm#0&VrHAy_3CRNpB3Zi4cmU9s>uBBmHc*ZGUSe=`#4+gZ z7;^z55r>rR%fx)8oH2JY7=;L zYG-1qK#AX|jc*(`e%$8qpP0y|HMx80&!0O3tzgEq$*QIbf1WG}zjhNw8i92| zE7N8W5t;?7sehsCtWC;yO<}GSd7j$jW{C~_NW!S8Sk6YxzFHVkqfZFjTSm45b2RHo z#3`@>dlcpX{o*M zXid>R+J-y?Yj5m0VV9vOuis5Nyi24g>axuY>f$22zPoCBcv1#M%}(ldy`a8U?@${ZRN(5_bXTsjeJ zl;SYpODQO+TFM)#i?t+34|UdEPo|IMZ|$2yTUxS&$MxLF_RvZWxGThg(V-(R_k4|UCoWlO7ASgn%1L@R7sxWBV(iYSAd>>hzi_KA^^E3bWh|4Mpb^aba+kx8yh$V6SZmX1O`j zDm`&60hYupH?4iTP6Dh-)`q!&18@~==fNhR64*KrgerwWQdZVp$UI9HsOZY1EOpdW z2#Uu($8I@*JoHV-;>dlYoC=^+LRGE{Sp) z_lVxMWO;E#MQM8$B(Cam{J^DJl)U3hc<0-ItKj@D^prd<;Kii#huRudLOU)`cV0US zgB#NphCk~QTA&XZVe#k=p(yP=8DHI`N4D!ftPWV}gliN-(CAnloY${kFKH{J$ju8h zCD^U`2=|Vun|7T8fMrJ(0L#x$=5?@sbxz>GqDRy@rv|*@2@+H-yNS7dKa_(CHlXPc zY$I{=vp`6zwi5AG$)Rf%BVjr4&s|eMfeflvA@<^6SQ?Q$x56)1o#s+dtJvcVvkH$& z&q{Xq?fu)zk2Y+3)NLz1THBV}?sone=(Ky^V}}mzW4~aw5ol%N7f`ly=k^4|>Hxtk z{BwYR%$CwB6yvw}_3n1Sg0?n$IsfnXnq8q-d3nDlIpt`fSi%}?#wwHFQvH6j3_{bn z+JPps^tj^Vl*jP~hglQ67lW(gGyt6HxX`zVoYYT#_VfSu=C9rw|CU`oI#&i- zI%nA}7w)<~so9{Ga^qYjI4CtPz@V9!^4@C?6du%7x(C`3jkMrJEB>w#hFpVH-P+BE zN%OL$2Fu6rk?Sk=x>{?{kL*4;twdKY6tBAEWy2fZ{Kd~hYsJ?HkO!mCFl!()bwC0T zGe~wFYn1gpdOv?SF!jxEe&gTVzh0-V&z6^Z2% zf4nYr>Ar}BrK`2bxH*JYZ`!jzW`S^n?dL%_D-Pr zj$9@Lt%=ei04%oYM&N1d_;vt*e*|TX8&@5FOsDjz>CpUL)OBm73zY1f8?HD}Zw_uB|8r0PY zF{mMz%BiAJFnZ!fzXOkTbc!`@Daz@xAfyj0DF8Q zL1Ytk5xP&N4%J%`B{opc0h?+q(_*#s9N9h7Hce!5D1lAH}sM%qSHA!;6=l=y@5WenPRh^H_u6Z9%@^N z_7LDpC2)zgY=(H;tf4|L(<%8tW!_c0{xK9Lh|5`1241|+naq`SXyo&-4oRN_zLxbc z*utrn+b%$Eq6u9Y`CY(pk^m%fmRyxbMY_88n$~q_N$aj80p1;>VHUNO`$%*&E23Fpq8vfp$1535Rb*;f1}QzcCA^1MkjC4fJ}?` z`s>AG*)d${5fD+Kbn#d`gR?KlTC{GD>{wRMJ!ei^#4#=)y0K|GFKHiu^h^6du?{U&VYMGQUeJSS=GW__8Z9ajQ;WIzj31!~@XeHrrz29%GJYZ?6vVQnzw^{B58i_{A>6 zby*7n*`D$hOY8hKt;SzkSRTsP3{lz;)Ohns02mQ;)_p=99zgo3iIMe%|uv zN4BAG*^h18b|71UPx}u%{{5#8?ccjw!zGjLZBQ7(m=ucyjcmv6{Zwf2N1pxRQwQi3 z$=EN-{+L4QXkV?`rGmDmeP!gXbU!M9wT(;Ps>ur~O5`NyxkQjcgsUs#R5aKHNGTfh8;YWe@)AoPmt^@jy~1g|sr3c_(zx>&X- zT?1AlR1@$^Mq?&)MYzGbL+FCOBy@c_7>)Rh7SR%Y#oh$}K0sfFU!t$wyU*AIh#oi) zC!f=jDd5*jFTMOS5v|v0SRL>y8}6mTL+&s6qQ+iTU;B8t!RmLIU14M|6lEgx_dnns z^be(99!1wNF7Tm;f@v28ugcv+qTZ#h1-I31E#Bg89v0Xu;0&bi`iDs}sv&d<^tH^$ zh6-n3ugq;!rUOW%MPlF~XOX+~T-KRn9PRAfCl%9WGbbtB|_+qZTdu(4;TPTl!K^9sHt6 zCSfz+OX`+;zQ7^iIq<9T2hS4FYO{bASSf|JX!ylR;y{`48h&q!UL?m3iaQcxucr~V zz72bQ9rpU?LF|=IC}JU|<69;GU9zPTqBhKW7(cEuz98rtzln}Qe=P)q1txX#NSJZX zMHer)Z1LsdDu{`m$Ha{Imu1L7Ux#&e&zyVS{6!1Tojv!w3(lD{b7~igOPl@2A-l=l zj^Sc9E{r;>Mk>^*R_`aoNMVdTni6}Y_DKz;B9QFRygc>b^3(i`8)udPo@NP6e0lJr z;~cBM)+v&wtH-f8UqZ@44O?#8W*s2 z-SuR)VxI*Oo*$n~$jh3QuNYJ{KW!)vU}G&155i2&YKzJmoR^;6fzHMbBFPO9O$fL# z)FeEz*>P!HB;@gQCNIGmj?kUV#wICE8Z*Wm`O}7t#(RiQW{eS@%FSxbz;W31v}(`L zrg1s->*k3V_qa=%g6>40aoaqcMcQcxYLOXg^=A#q&h31RQ_42M#im?mnPW%Wb}$r~D_PRWN7TQV`aWDnrit-=7pIGIi))KEUH%vL?MeHlI5$fx(01(-4$0|d+jxAO%KzDza&xOYdLS~ zayncVRinOY<;E2yvR%Ea+oUiCka269gfnZg8{L%+S1|#kbafwgBkDyQRc2NrZLCuo zY_t7?UHsa!?TU1eo;0w!g~ufOh8%xd!*=<}6f|-(>7d}IZ7^&PdRWMIabTzmwZ>l; z)Ymb^c=6PrG`jRKTgoQiv5uqHST`H%_{D~1a+qxp0l)A->{x!w;n}hLuDkBGAt1^W zGw#%!#&bC@(I4!>0y@~dd2W7-=ns4TGIzOKJcMs9!I5+vGKOTj z!-EgXqDIXeK(asBcwz>PO_Ie>Q6J2t+Q!e?F1fG_$zU>fUCAUde|5=XUL`!oWOW}c zp_*ifs@ON>ZgAUG`In%86&Mcs=%dND6hI@LEnVGB68WqaJxA7?A(`FHsgV|M5RQ+$z(!OadXrgZQt9=;kdf z`{AdkleGAk`Hw#d2IO0B|3;bl-_gojLNxZH@|1R+uJ>;MGw!@7iA8R-a6eAJu*{A> zhK%l!0+6Hb+5VAsv+}qDP{`c9N8NLeqG6e*XOfd%FrQkNTiK094wOI zL&9m;k@`hIHMKJjoc01DSqVxj!e}ERqnSvC{dfpWYr=qhObtXD_LB&6G#F_Ltj18l z9i{CO$^>iwAF%cfVC|pku$CkCm5$GmoNokDY7-kfJ13-ITA9|<36OT00IhS-EfySPfLeEdtD|5Ne(JX5(*xrd6SS@na)(njJ$-Gep-k#%olxnGmL<^0p;MAj&|Aee3tJHKVt-Bb!e@bp1?{b8Gd}E`%G{yaWW$48 zZlFS9Ip8EOT?*Q@z7{xfO?p?=qrp)%s$^J8CQkV?{OQM-NEUkz;<0EyQQu7zGPm?d z_B-3|1WcDnCu6Tec}Ub6(JVr`vR^=Kn)g{68E^lfJ#UVm)t2oo4D6j!nfy^cV)2@! zDamApY{0Q}veQrJO5EtbJ5>{4>nhp6o@-Z-@gm<{-``zyEYLQOkJa`#i6Q3?T!T9c zDF_Lb&|KLZN=;LtovYAA{GxGy)bX&R@oEMk$_B1S6ypeEs^|Ivh zPw01eH+q(>T(f4?>Z>=DO6#v%chzdH&-9!BpRV_Sv#PxF|6emqqljXQ8r@BHv)SF> z{&xRKHZjqSi3~;Q488X<^xhffa_@7_z0>GOmnuyJdo-2^1BeY21Q9Fw6Q3hzMjEF6mn@3^lyfkA` z@+3!vsUqQ;M6w{0Cw_C4O)ZjCdsTep!97Tp8;Hctm0 zH{e=!t6WRlLH-7mf!}y^gotrFXx%_N)Y^C6}oD8G%Zl~_ek#p4bn>`h!g&Cs>BH2*@WQq|l9kYlQ%VycT5~8tyK{P4f@fj>q&Enjb=%y4L z1!=D02BI}Y5fK|9C`hqj2fHmalU|fc2 zxhYt!W`9Ag!CLx&J1FC_wt9b_;LX+M@D=X=zNECMKo9ZfrK?m|&}Und&k<&CL18%_KR=^2SKCs+Tw> zuh8d>S;gb7IBj2gnx@l6S^M=19#PYb+72HvYO_wCr+*md?5o~UT|Pfi3k$Nwz&2~* zC1_(8`s4xKq^tQq)ySk{{fB*gIUE%$1R|C+^?I-|ypq@&G z9ztujB`PR{%wq|zax1S`A&m-$P`hJExVVFMhXgf~)9n1hGlSAhPm2UKGRCaxk z?S61=h54G9)(cu)gKnmzDYDh|gJ{~a#qySwE&jcwWG3V_V;9&AL$gQkeuD<|?%tW4 zFlFwywu~|)i#BL#*S2ciru(4bBXJW34C>npqUzSQeFn?(AKG@5kJ-*6PvKOA@O;B^c%(wI{SKO;b3wx{H$Vzo<}oaT73Ntm#K!KmxCi1c*5qJP%xS#HL4mN*ul^pVoW66DCLN)qJ?e4>0f^g06} z$q)!wB4D#GgFa2gWq_k(J;I6Waz%9JN5SC@R6B+O12X`Km&XEPiKOA?-49TDvieMhBykCtnMR*j z>KkWIojPOMqQggz&ISh;mXeW_7pR@h9lYHp<7-7bx znJ&Z$iD;^g3~KVcf~L0Wj<)K4TwPW@gWy3`?_HYR9wn1y4R?=ZI#gIEhse70=L(o; zvTvy6QytB9pJ&FUZp(9`^t>v|ALjh7Kwt%C|Df)Nc$a2g>hQiJz6o{=NXUN447|lI z&b6hSL4$hy9tU;hU`mp9V@k8j0m=$#UIK|tq+{mzJXR@PC2~fEkl6p__#ltnXq`10 z9U(ZNNiAcA#%om6@nH*OIZn|3I+c9lZJwsu}j%tH(|pf9(j8 z*rDg$frbZ_Nv3G(4&2DUeE#r>H%}|r9zXgj|Mu`yQm3aY88T=S?P#DK9qp;Z5wA}^k za^%VSnoA?fvDIzjnI|1pq98kE)Av2^h{F7snHa- zw-|-TBs@)-@fapg6O^Qg8Oe!7Q7%#R_uMYB`l?Ky}LJ0I+R=2&?juIUd1@k|NAcjo!?s$zf$=9*j`Ca){8yL<2T_9Ahx6ja3+G~Qlgu*nHht#4d$Vah-HbB?A~4<888(e-<|VV>r2@S`Hp;;?d6%(h zCJK8B3frEgFxNV_RqITv+?K7U#C=P89FfyGKb!7=#}LbC{Xe8-C5XZg3? zMp32vFZI*B!(2~zDF+elsuo#D<23?Iu5Dv@$uk;x^d$qie8gzxc}8xL&i{%J0<^4* z=5;hQ2<6I1J((oCNE(De+T7UnEasZgQ>PuswMJ>eGy}uVfFoEvnV6al>jp5x@*fCi2{G&65p*8=GR zl*U@;)1W<-qmofk`U)e3&9&^N+sQUP6;4`@FW=dMA^;N6#!8?ab8p~fjApays4>!^aXnH*C+ zx&i!9IjRyYSW>!lWS*o&S9&cRDX5q@dD>*&*$F%v;cXN9Rd)z-xY5^-n>=IYoH=0F ztg^(s@;Ni6PvV~;thsUD8$St<^N$!9nm%iWIAqdvifzkgO`C>+I%oP+>k~G0>eT7z za#LuY8cta_HJ`tnZd#iS1PtggUp2ew97|7|i?F4UG_E{t0qCkM;>jk3@xqF$L{%mQ zCnQB~DEf;BngL zh9ErdM5!~88X*s9<*M&Qh-a!BgtuLXBHe=sPZtl_*;hro&EQgRg&W(*t}K~yYA`K1 zU4T-}S0j&8TFT+1t9^B**0Weo8mSwd;Y`vLt}@&k$|lw^ps`LRwxBh1GD$UNl1#?y z*j|cjn>R(3_Ezxd?)hhto~6D-qJmTfOUGAaaO8s#zu>5#tlT(Hg_yA=Drg5lO~o?K zv$Z`^pqG^bJ$w#ef7ubK4)f|HH*I;(d6GMPVD-L2RY(Z_fZ!O@L1M6LR z0GSPzd-3JNFTeE4%P+X+|Kp%a1-#0}&-!cq`Q=xS9F>d$x4nMi=#j$`;vm37!3$UO zzoiof!5q-zcgJ2sgSZ(}@c4;ixJSn%+tD!ti2^(6D2~~y73gjm2rocvb8j?6YeQ|r zQVUKcErCrkD3z5ow`j6Q@8CE(#cPtUqv}(hZLuunEm=}Wd0uM+rXq`U!v?o;`X(>6Z3psp?yRfOgz>!Aro1&TwC$_q zk@M}Pdn~sFFt#&i_8*;imdAoN%u-okkcL#f}-OcYGKyg#=QrWsnW^?!D+wsS3Xh`j& zI%?dzF0+1(B1FRn7Mg7LC zfYA@!F=v!I&3$`q#2{I0PyL!%J9Sl>Q4ZTqyJKOgFY{3rTOV)dW&uyT*mSo#-P}-= zo76tGjcjevklp@__UaSZXr@w6cf$}B;RPSw$a=bjFM5$WQxguerJ0x24rn5#1UL9D zsY42jS$vlw55T=t^rCMod(a&S_vdTF80DQpYom4`@hp^gAC$M!*ATR>^oS=zFld!* z8IoVVny;Wm(DDi-s8(nt;Kto*z>p_rD`@?_HeP5G=G{&B>!=UgzWoL%HFj9(h>`tz z^ytzCQDtNBlpb*D))l|B zrhP?+D}+$`lGa6!)+$hnmSiOhX^m|4*9}|6~Y>q?>9tg^gcZjV zm~Vlg&=m-R(43b#qEBy+b18JEqF50N)IZ)0%9T$Vs5_Z%$wOQtZXH2T=8mh^z23FE zid%r0JWooA(_o?ISfs%(za@S%9q#tnA~lM1V^G9AzbWV%Kq^0+OE)0oxd~+p1=SKd3pr;XZ$d#;{+m1v#btNnGH$*{A4gi-KRiHPLaWndjoZ*Vn ze10wk=ThYLg{Aqt%bL-91+h#{-00CX+#MT?{x09=TN7ts9L_0ABnjd3Ll>0Im^p2n z-~khL+z%&AnL4wKbhmlspiSV)rcahpI(^y{@y`rNIy3b9DN|7N6!mFr5KLLj;6pdP zk}A)TD$jh=Rf0K1z<~i=K)Gk!10cy~c3ucDIp)=-Q0E#~dj$b_L-|&UoBRJwag#`A zi%#ylPDxqY)J`p);H1$>Df38McVywFsfQa}r+g9Q?e@5~vNXyKGIxivmqlw2ipKRBgTl%+p zGM&daHny_th?o{KBe_B8)UKvUb)8Ad_=6%aPC{bJC9jfQn!P*Ll7<}yq_w4|CqcJ> zlS9R%U}9t2`0PM-emEwFF`Y;T`*UmeXKFM1g4zaz&l-MB?OP&wuC_KryaP5!Uz62C z+zAe7m=F%@clICT&o8P^+0oaJEA{$~Q*WMn{nghFQww?s^E7zjKN0m_Q%oau3pP1@ z;#C|{XoZM<_|;dBlG|kcLirZSK>UfJ!LO!Yb4RNv|5S!s>W$!J@TQ|pzI%&2qIW_H zJ{uaZy?_2Zl3dP3cc}^C70&tiV|kcSa*g&Uc3~IP!%CvLIDvU{#(EKjJG5p0E)?afzqFS|rH%WVZ1< zu{Yn0YCO;4_Fh0;q#1sUYgoD%qY3IFQgygirER8+JGROnOzdmhFWV8llma+uVuUUW#7IJ>@ zr7wd5378( zdR3n$uluUcDAU33lPIsiYlp^cCb4^Fi_Ttkj;^dyt2$7bguGHpRDSEtQb8Nb$;u9H zQZn1c3$a(K$wxK;8d=VrD!{u(mUD093ERTgzl8&gCdbm&F~vkj36JEnIhtw|y&(OO zGftokQnC=-0f}_Nw+F$uz2Ms>@NJdhTeW4hY3Q(YxgtOYF{B0XCVi-aUl{YU{M`kLyZS4RL%#q$BCQg|!a>TF^!~1on0zrihx1#E` z>r_(GeaMvZve`4nj~w2wOXm{8sq`7h0!r)1Q4)cK$%>u3bpx5u?Am48S2Da0j`Bb7 zPaE)$Dmu}yT~H-XA*&0tE8*9mYms6P4lSjTwBPE*ROv!;t`vdPTGk76c_KT3U0{Wv zYOJpuw;bfTpLnptQjDZB)g}B-vTKJ{7AthzgzM5VR_GLMq5{y%)j8w3*b=hQc&HU# zuCTfU+D6SqpYy$BU5lbvp9}B)M;=^TOZ(F$jX$gq!c>w-CUJef>tn2t4zPN^cP99L_I}Q$n6Hu6dGBTl%zWs=>Jx2`5W?_m2F5nJEeQ^p1M|f&|QnbnxrMI zasjyW1*51$OvIjaMI4BTrizS>z#a>Y!-kPfPF$2kHo#Zl8Qk@zP_&3Q$UOs>*Y_s(``nTlY?pC>(r2ZPEm1|OyXV{fZY(#BNXrdb ztc5^T!r&_Yo|S=2g8D$X6^Yh|Jsw*yi^n*lu~G)KBKa(EoHEjrawmd)j#7p^F<%YL zmvcac3u#fGtIgeqR+rox?#t}0+(&ZUzE$XUjikpNLX~?S#lh|Wp7P}Q6Fi8KyMMoG z90+emPn|h?=G2>j%yBw=q!0a!Fo*AmIeYZfg-<^D@Y310-#YOcvK(G4p^>OadYnmg zvLuf&CXt4qikNBUMuyZjsLgGt#viIaeIs*HQ5L4GV00voSZEDD3eA!|_kM6b=R$C? z5$R;gCxiZ^*3s$%LsN}Dgn#O#FZ}Zr4Y6A1YfYWjccj)umaOD30haJ;$8bG z6{k*Wh;{0thF0fKSxQVrCASjpx>5#pEc8X((LUsyW%Rduj}5F8joQ4SN3b}7DZ9Z( zAN@c4$*|DS3TsWVZEiM@>Sd{G2)@2qGrrZY1pO|{f;3A8 z1?Bi(Zyb1DARA@P840?#D2LW?fTGx+4URYDtOE%mORB{!HPvLw2>{&-McPedG1P_; z{GA5=C}&920)HE`@ONb^BCG@yzVst#xwu7caf?i`^@z~4X2>s~MQUz~;!KMxd@xp4 z*1U&V$Xej&4 zLQo~y{>XjluE}lzWo&3_z+Sp{V?KyQ7$UxOzpMJA=26;UBAe_|H#qoV_@n&){Ldf# zXXMQ$e=1F{eh-j5!JoU+^fhs>o(*gZ@zzgfQ#kau(iN4>v<89^SCy!zmYqX}xS`F7 zft<&EHjsrt+#-*C$TV4>ii%XjO(}W?o4TG|kmU56BlHvd#S;whgT1}V zVgDSOl;@kU7!`>kL=+L8c_z$S=#fKkY6`0gyo5VEPgl~c4!@us;TJjacYjNa4}Xy~ z$r8}L@ks6zgSlT^cZWKLAS>x(-@>H`(2f6lKJfVwRYWLY4v!)f$PEO#0gdD(c`?En z1oqI)bmKN?F3tMp{bOSVL;l6v1EnE&@lO`eSNk+?zV`zk5xur0D1C~%QY%aE}>LKcp z)i*16=;9{Wi)l|4tC2_mUt#Q6evySOGiQZVM1;ti#rhQP`Tjd_lz|j0ASy0uBc(B- zPrsXnnY345+0)_9^zsPzY;V`$US!J#%NyxtWHPC#1J%kb1%i~TNN2tyJ4|sjnI%0? zPaw*zDfP}ldYKu85#|L{s&j{Y1@sXNCZs*+1!I(kngsR&U-(dsH=DnA9|B)ypW7>; zFGT1|?yKa>)#mM^7n#!Xg4zPY)Pd*eIZ~jAb%5^{>_@XWNY{|2FTV83vD0VXev?WG z8j4gN`d&nQCumf5f#|Lh#?z-y9zzp6c1)fu%tueRX7Jt{Z@qPr=qLh2DNzDmC;q2G@;g0V==9q)t&v8PsLOEnsV`C@cShAw5fW$L4JOo z0lHrT@Y65=Tw0YxsFqbHEzUI%l}-r$Y-^iN z36iQk(2rx}WDZ;x%~~;MqcrI3+SUL zB5@GtTMzWDHpLGWPteDIty)#KT<9qe#!CzRg5n(e3X4~?C?M)ed;#$O9vMb|5)8HN z2%UB8*rj*B5#vS==-x?oVC7vm-hKDoZQHi*jQBTc+T^mNtDH~5`G|o%DY|S(Y98ti zcCG8ws7v3{v6Q}c?np@lz32J4reliY2-m4l2mq9b^-`S|Bdi5oQve>_ntJpKFluvq z_eu9oS%_l)X`WrRMl{Nz%BbRoF)k|>U5Pul71s*Z%dpDH6!LpD!TL7*AE%IkG zFdUVf)Jde+c?FU5k*m$!=wC6TU%OuF1Tv)!CvZnHA!bmf{HkRWmpIMVtc z30!y+AsRV`V{goHd`O#8XJ)LLy}9=EWzJ$8aIYuQH6b}XN@epLCya~N)Hg9MW+|_h zNiNf}_Q|87I55uKp{Q(56el0nv2y$>iG*;R05Y4!XGw;ha^+KpWqE=VH!q*3#dDj*Brb5z&AiTZD8H6H*74p^AkauM zlsHNY>qad2x)e7rO#21x`trHbd$i3D0#0FFbV_1-`McpL;YM}#nj%M}p~jh6(2ST)T77gkw!-bihKA=QJjF)>BwrEM zEx@mB3e}nRz)i`h4V&7HDO#Fo=E@s;v@@{teMmwK<$|fUXhWDTWHNc>_`>L+g=12q z3y~4z&AR=SwUzrCz;rcxQ?OiSU(?!JIF6t6-@bi|YxC_-Y5r+Yd$ayZX!j!7;xE4V z^3m5%z5CYjS6_Ysul7*zd~oOnXyql^lbm?x{H61seE!8Bev4G|&YQ23OLr4(Vu-v5Gf8xp>( zV#^l9E^Q0^&HX~<%}%3ncY!$6cCO|+b7(wa-aBB`1pSaF}+7BkdvlI4;6l6M(G2P()~M8 z@?t43v*ml<)iqd(YfJr1G+U-#_;ytZ$;`Gy{c*?^=ihv(1-;~aGdaPL0AI7KZ0M(k zS4AC44qt|Hq~Lj!dxAL$S?GLlPnP7QGlH5v1y5e?&$v15XLgZcW}G7^lCupY@jLWh zF16ta?hWmZ+KS*0zx@60O})F^$>m;=?>xq#-2tHIB9hCZ+-d1|nu|au9agS8o_swx z*3@V&YvZaViRL1NFStW_vT)PB*N^;L(cDgG?nP*BZIDFiPu)bZDh8L0xWVM;@>U7}ZbAnM>O^&7+DqQjgNLF0=+OY999=V!J2?dzDgbr}(D} ziY6`eMwcB#M)`m%yrx0onTiI2e&3dg*S~*X9*uqY16Rg4L?fEn=6T9#0N;h^qCvZ> zyk6%KPly$?Xu^ALI$5mMH8QQvq&hd{{}LD{nz*1aB;JawtvCXw#p&(D#o9>(L)3h!CDhn{M!Bqi+s~plWvuE4t;vplwcmj7*2$Vvr z%TqIJ!CqDA+L3vZU)_i#N?k^O7&)?XLE_OI({7kPw~T*IA?&;$Ou%+BXaS{Z0qJ!Mrc)|G zz;{@%nOSajC0`9d0kxC6xhyhb#dq^f8L)6-A2NIl((NiwjOQu~t0WO9S-OFBlndIV zNVn4in(4Ak8at)GLi%GI3zw1|TeP@V28o zoP8BYa{QrUU!F*=sx}Yc1LLlt^Y05Uyz~++OI|&G?1+kB52c^ap$hgVU>)x3D@WdV z`|SBkAB&|v`}E?u)2|;r`ud4us4cI)cH)iWM^!5D=G*U{I<5&o$BtGUyHX0AAGJU# zlfqyQ{YmmpqQ$vWm1uF{={yJy^Yx!hhl6*{f;?6gD<$p&$j1PV3vy9%@NzzLpWk9R zcq*8%xmG>}FRR2wWwCy{3E#3hTx`I`CZ`piS_0l`pMXbxTDB(E3voMll7A;PODJUi zt3lG!Pb>Y-WH_spc!ktMfHh{fQ6%5dNY3ZpUHVXk5^|0;MbymKM0B>|?l|Q|5}{N$ z5a03w&3mN^-EPOD+cwNse=iR`Vs|2Rd(!5$=5Rdqs@ zoDCxV)#u}78_bE`7(5CF`FU5qb;(hsW2$}{9Zu#e6%>8~gDG(;pm;Qr3`K7{Vi``i z6{&>l*7o+vf-$^V4ny6J5m`#n_P0hN9`N?(xSt$Lggm@D^Yv5J$3mKBzFxfOY&QG# zMsMDIjkEAzH}~dMc(1lGIty=k0AH67Er^>tYwF~g2}%Jc_vzZLN4FCG zrdz-My>Q;T_vq8V4;^f&nlSIJkvv$F;5skplv{$Pl+$%lNlurFk{YbmMjVO_+{A5p zs8GyX;saK0YtT1EdR-DZ&Pk5@!4HBTx*z5K=Z`etDv2Uj@Y9IhB+3O@QLY4*GMKVg zB+rw(kCNR8blzf>N@iE~AY~Y30-5OuL>c9gE6YeB#*P0w4{lNrVo7dJSy>j`;1dME zYwcQKBK*)U#x~dK+k{oFCVSPFzDCd{`^gQ+9XKc)eElF34ft^Pnjj&EwlFa3jY1}~ zV(f!npY=MsccUd;*K7G%2q%7no}_Yi?3n35i`YmblZ_s>YzVG4vcojc)PCT=AP5nJtmvYA6auwauAx}Y;*6_qs7xPpg1acxQD)sWw&*;~`TeFW zQuWqOXz7vFS$AfL(n;lgdKFsh-EsuJJe@31v*C@10Bi*-UdyDEG_2T+HE7%xp_^&C|R9ebDmo1eMIcnaKd*@7R#PT>M$xw;MCe`i1KSaP!PTQ`%{t9 zhvGatfX-J|D9vuE`L2;bS65L1&=CzHb8`+782YQ-O$>Ax^oDb74d-I&F%X4UROM@lX_zn}k=ZV55@d;%&bS#x1)x-;P{-)fV0+ttxOsRED z29Y1ET8aSj)x4}wUh6oT1T(WiGviqF`x~IKfop=dU|%8P98N1%Yq&SPFIii&FKvId zKcv*6wl*#NQ|_JB%qlC-9c;>IheIzNehooI&X{{X$;gJ5%Bv%N?&$G%&RzI`)Vhlw zeg65UzrFAVG)M8PG`Ul69Dkj>vNvf`cU7Gw|9a4xpeZ{HM2zDrT@?75y&g3K3ojvQ$ef$0QQR~Edlqf`E9mN*>`1H5#vjn~? zTAd#O>dRxPid1#1mB+@uYqTLvIQOc#j#MVqd8&$cf@L2_74t`%7_W4^*=|am5mw~7 zN*qhXu4^<s?*Y@>KBli@4Z+@s-2mxg1tD??qb1(3m1@u-TTRN?rc-*PzUW%ID$~; z-sDK4zI4rE)H9(@>7&7s{A{sBo=!m#?LB|+`SiiSN-f?-s@n?fy$bEE%F^DVmifS2 z3ra1Dip6_;Z6~eHwQ6W_U$MWcxDXB$;<*;riu24ogN!t{v}4D%bU<@=QG+4Rm3j)e zqDM&=`keF`IE+C>lc&r`&K=gJgtR&}Lh0VKSKr>^5Xm;kclwNy&)Lb_ok7VB(h>Bp z5L||h9y@8)oGGQFMh@@WwYp?^m&%CvtVz7X^6LU!6$R@C4xdA^vNU zh9@a{1~}R9-F91uR2Tj{Nu_KeOJHCIudB5uFt5{PEm(;fQt2d{5dq_jIv3%AWPLvmnEHKU*=7#1B zaf9>ifj>M1YEO+mC%E>r$3hxhySs8*(?&Zan~u?@ z3rA&2^RVMetH`IT9=QOrYX;cBvwTnSSJ$o?5su81CP$@5m(a|P_jPM z(f?%L{N(&(re@)?HS3mD*Hl-`S0J7}YZ0Iq&JCG{+EB)<4(Whit`3*{0P|d?&{G~m zAbk0RQtKRwUC{3OSh4f_O)HJ%ou#~}cn9EumxXyg$1PfCSq?lxZN!lPL>* zqS?im7g3&R1`_OizBXo$yeHb4cs<%v9xI(|+DebC;QD>@WXNiRnH?MD^BG(6F!J>* z<_F0JTv{CCQaSpXUzuo(TsGGywBaij>3=7TaZ~ejf^m~_5b$o%5ynn1##yMq>?k`* zDA_I;pd?KtiMrm`)f3Gu(N5|eeZ3OWCRPdcEJ!IH;Kf$?NT4@Ij;D1$0X>z-CaTi= zK24|>?X4_t%7?9Q3uk>{y9?70{UJ)L-Lu}m+qPz@cd)>;91)SwWC1fy36hg!R+4Zp z43pfIL%M5hx8*g(V0Mz_mzohwZwTpm4>pZ6o9+0?({E&sH^OM;A8R72d*iy3Cu!>T zE_qewKlt#|FTeWq;s=*5oC!}CV!A43rcW2(zCv^1nF3?EEX;}KF2!}TpCGvy%mu() z)_DE>@2Q^nlNC>pLuV|9ssypy660*;tCjp_lRAF6?TSXG9J*EB;S|eBr`|v&f~|a? zLFbh_8;`0CH3%vZ70&+VxqbWg<5eFrmQy!BNcRLSP7LMFkZu^G9Hy%poCxJqG0QD# z3s_2oN#@Z>%Z^&vqzK7&IIh}-Q7WI!34`OB2`MEYBGf(eo98exGtV{n&2OFy_BM`W zF?6wCyQi7}OHiDg*9RYTdvbO=>wVW~7Z$A5QfzZuZ@KTj&6_t$C6jo!RvagJTjCvy z(gxRSmq_6@flT|BZ8D!y+CTs4kH6OtFA5TVt1P-p7qBo5ycR5GC|4=IW<#<6A9^yFSRuAeXIxW_=wC(p5Q@m%AL;$^#(?cRF2 zokn*3K_K^~Zm}+V4&9ED30&8UkeoZ8eBYhB5xFtWpYyBIw-_ej^Tbu(L^*Xl$&+Xo zywp%2htz$D!Xo#42*-KdP9(Plk~rd3A*?TeoS~rgh5-RK3dLdqCawGknyjAw7HaAKa@OBv;a$>(FGv&ueAZnd?NRvg z^WY9jDSk;Q#SA?PV_I>TC@hlrBC}KsTA%uq@U6(CxMZWby~GC;pglxMLXkPE*fLYS z?TCdD^fl*7JYAU2wZ5(n`6BB~lAh8KeN$`3f$CveTix(94<^Ydl*4 zx5au1TBM3y^P6L#?GELo%T)qnm6h(f&y8s$fln6cuwlW_tBgVkk7B-l#K)lTjiy3y zX_;Fp=n&ako~57<`r?e>)FrqTg*$4QEac-csoP%M;SOz2^%Fn+>8%nJmHj4x?fT)v zvLV^jJ-cfEDlU3Oq<#22Dc4PtcwI@RbBZo8MbeK^_u5x7++NCF1K#X3x^#i23%3^Y zj$SY-r!*K9lr}K(3r3`|WOIh6M^uh1DjmfH`_ZFDE*X&;=}H?)Me%%-PB4pLtL z0T#}|rNpO{Z%VgT*1_ z4TC}7x7{4ZcSM?rO__Rh=gI9-Z7Fx^Wd;l zI@x4CB4ET|2wPVmQVPPg<~8{)2^Kb_3Ih=kWjh#ii`aj---0M_QkVTvhff7%e-4$h zEH9OhtZv)xGpRs*BnWzIR!h1Nih1P%DwIz}Djane!a|@h>RMvPsZpVAJ?PXn9$>0{ z;7SL4g9#%jjL@{c{OA2#&aRRE*P#Q=RIFyv--jiMo1V;w%ZCg1?W?pJ3x~1m_>OeIOl^99 zA^z>50|#owi~G?6_XC9CfkspcKsq!|LGNqFZ(e)_`S0bIU!gGy%~MXkb^7?R6K}ou z-lZ?jy?gfTTPKd6dJ8L8+TIBiyLV2#@#Z^c-hS)MyQkhDj|n)`PZ+o->7MeP({G>q z=(Ep0ym0a3FaGfLUz09fvmoRC_&)z0Hnb6%4c`K)WbwY6$!dP?{VQQall(sPg%;^g z3Nd(9VC%lPK5DRH6}ENlRh+gV{N)KzThP2+6WxsvO;qz9swKdwmOK*Z`{37eNPW*rOhfH6k?#?P z*I!AoEtDv!kG#I!=zR$gafex{wp+ZB%4UHOJtB$_K}4&yur(@?Ix@m!}d7nvvAy<<%eXI@+o%G?7988xtb(eRMxrLgZ8@^)XWVbd(Yx z>Xvkrif@UJ6~AfB+5P(Kul-C{eBCdKauSHO-(OM177Zo-IEv_pT z(A+INY)z7thL)pag?HTvN42A>Rv$WDdJP%cZ}8-9|EXheGgL9@ z8U}MFG&m+6AT<0Ss@Bkiu_WDB3Luc%Zlho$g*WW(m>y;I)tSQ)H^yS2Sgx*sLbnj* z^yzBi#;5{UVxehC=ta^pqWGnlsqi)1f~K(1p0;c8cZQ9oObSwc3ZY#Jn3F+wg-Mep z+W@JqZ?k^=g{YDNBhe-^A~`%5(FAT$5E)fEeAv)%SObVLz`?q@Uq4T5u%bD9y?TZ{ z$c6L*nky+X`-s|!pj~6ZTO`>*O%S8f>L5ldeYNl@UPQ@=qLxN$H5@%!elU?!)6YFG z5QfZl$$X7@)PSL!aKMq;jtt)#BZnN-R4saQn9($A z9NOXJX;Y_7nKFHj3(8ZA227hiv`@cT6^V&MY7{@xG@*BidEn&iviaenb&FDoDnx|M z8U$?LsmX?LO_+~JPl}`X!Cv)bzL=$BqaziF&I@0|#+|Ap=*$J|l z@u4vyQ*REW@rG;n*PtEdi4Ye7hPivG#myHwkp5Ru+eD?e2SGu8tzAkVtFdNJJ7Np2G80D%I)ly#3z!OCNpymD-Q|)m1E9v3~QW z6$>(d`{Qpfy{~ltx7}L}JtdL`SovN)gmvy*_wt6a0Hk!(;{8G zuzAj%HNYU>EKZTM)(8#9eB$QC70nwLLx&2`{OpPoE$?Px*8W(T`Rijw@72IXV9wwAIKGeVWw{qK`|ImAa!rB!C>5qugLNQK@4|$ zLn;S;{&Tfj4(=#INJK58`$zF8VA$KoajsyLMrAUh>4@IqsxKqfcei||pz)xb<48h@ zL_{h)bQycLj%S|7(*#MHnPSPqH0)H8pzGQc@Py;y@EG*Z6LyA!i-ss1<6^qf#@@{| z5hWOtKN>c}<-C5xaO`9AkNF=cZBXHgmUL?QANKr~$r^-=NYPWSAe|6Nm}_D-t_L)* z=wG-s4g?5$f;2xJ_KrJba~T?1u(Cku#xy`k46s)*+NA6GXvvi;``<{UvK)EdBTfN` zc`+8IJA8-yL}8(H#OSIz&_q}WIJ;k5DJn$nz5RACB)Xp#-3k_Z1x4=e2sgahFfM6W z7%MqED@i%7U#9O37Nspx+w0~AxC0I~0RuZalB;MFMA`$zJb<8WvQ72fxp#5;2~ahq zY-UDRASh~@LdD3HTr30*Rq)|Ti^Sie!T=_(#9=NRHFnH+S||sj6FLu=j_CbOoe1X4 z3ho_PI&;ysm(QMmZO_ifpWVA>Q)2e`F#`vza*6paS%yVio~l~7eC6tm_wC%VtKZ-O zz1FQ*kVLWJFXq8HWY~f_sUWObwRY|LZ9V%99XY&o{Is%J6UU7nIdI3?mG{&HDY>I_ z%NnSVwLA%7^9ls>98M3R4fO#v~7f`Y*(J3K_M1uwyM{Z zLtg`Ber^^Dr5vg~%R^Qbq8eJD@EMdtpey02kfcha!&hHZmY_(O#K(vU@y0*4iV&Mo z`^_Xl^OZ02yX%BQAt6Kv5^mcLmqtiv?zV0KBGeEM@n0d_flL1n9#I+$X zsyt>Db&(e0ZEvVBG68fyk*2B5<1v-ZY*_fWzeX)uyn?8@kjMr9t)|(=RCw`X01@V? ztk<2*dC#4>TKXYL4>1s;gF9=^LXFc==4q%OUvQWa%_bfOFQ#8e9SWZh4i@sDdEU_A zz4PuVzXvaA-Moe6XCXp5GAB+$gv+u-i2TvAWr)w5Y!Of*k||yZ5xVB-;v6`L-pojf zsp4vWpF~w`+M-3PHfpup8r4xFArexs+L7hfeM(jGGuK~kHjGmLIYSX3P;9*3{o(n4GOq$w$@R+f~y1J^+&7aw! zOPiUKrqAy)dQk6PL&r@RH)6=paWk19HDz4ClJ@P}-Zgm`pLIiq4jD?k88o7FXc7Of z_93T|-!vvEeVG-XGQA3=2l1t(LX!v`L>TmMXv!T-^n*0zBY|ZTx?7vX$%G70yFD<4 zu;DM_!e3WB1RfOi0=$u8=P}JBI~;B=4@M@Jse=kolIuii@))g0tl}XOQ4|hM9Yitl z)ag`*LqaBw@=fAul)1KTRqG3&SP-_$xbEK)4)U@T3>68ze>Y@EFtpGccvM0LrB_AQ z8>d)>zgy}Mw?+&bQaQMpuiXI1q+aMtL&S0z&yg=0#InDdI3b4@8Zt5i%-mi7j$+B{ z_cge5;sytsXDc{NLYYnnIg3#QDH{_TlwKVND2q=DPXp5ZZ;oY)I5^hBK~%zgyR2(_ z)BnK1NG7Dw&K*s}gE0;U!oe}75;`2;5dc~+tRX=W?gs{g0m=U9etFO@wVEmFz;B3M zJ&%DF74?eg>cYe{It2x2qoTkn5HLg^OE~h1QRBv&Y9#(a7)*Fcm?OZFIva}pw@g3-mM+l@29+71PVXP(Za93pGdOsfB2>kSz% zLfBAnNSKRr;v+v7B9l_bjZj;HuN=r;mq zKqNyhj%exWkW+IV9r7t-X&vn)zj);`qC<&>%Ac}((c&^X%vTvw5Snlp%x@N3%UMM= zm|lTyn5L|xNbD*)tRA02H>{*vbMioiZ{Vk-!({+sg#<$w(ADbK+Sr+#6@7HLF%ET~JvOy8r&< z%zy0dZiEzQXEM^u8%siJxkQh@U zo5=Q%Z6a-ELoyX_XcikCU_SX+1;lYZiSOihQguegh@dO=!;q^%qR91`r|0UPeg!1f z6_luPvu>n*J&8$~|D&8F-bCN#~GM3ZmJ|q(~fRZbyptMJams6&z76CGGq2&0DT`G5JEEf?-}##la+WxN2Ue zd|@IiUpTL#JU}Zj2Wj4_a-}0~fE3?>6qja6(X}dU2`jd0*=kWs^?<=zzB6c^duQ{C zJHzIMk_ushK)Hw^$XL&GlM6l?mJwTuB=*i@A}p2 zcR%v0#~#}A;I3`=-M4Ym>YB{Fw|0-8Q`);nkKTiZkDN>Sao?e(qp3X^Go*Cxs$ZQi zpP!!p($@Q*c;>*fTh?q@JRz~_!ChO{t+=PEY%-sK(_A`LMn~H*!w2{6QPO7q^r>_8 znK^BA>6|N?&mJ?hZ!bf}Ze%2e2#KzzdVnaBSuDeJrTt$9xjL($@ol=J3w*jPUFHO;z`m7GL+jj1*L`f;gnP#*D_mMBf6ocQD`wU@Zb zQm_!KCXAmjehk$wh*x7qj~qU9=ukJrF^&M7QVi)2ck(4Y(e=3z6y@RhoOSRq78*K2 zQHAFA-c8%aW=4+?bk^&2zqtC2D11%z*huVh+y(Pzedrp7upxj`*i85T2Su*>p^L!f zH9QZiV6y9QEx=mO)8=|DTefh;*Lqfk=d&4!Xum(BgX66Q3YViuM=YT7cep(5e2dp^ z5bc2m6#3VwJ~1ik(1Tvh$OqHXF>B?EUyjjqOCPLt<3a^Z-|;c5W92x?r0n3zVjZ3w@NrNi{-F=tm4cqRSnOXnno*f(4tzDWf16~p}3#-$~#JuT~#*G?2 zsMn@dE7#-1Y+SW);rgzH_b#q-^UE0+kwY;?iotE+{G4PuB~eJBD&X@peZ2`9gewCm zbCedMjB56+tFn z(g-ZY+m>?4n>mH>Og&kf=Zvx7)0C${k0EJ^jzX0rMalX4T%t5NIW9dmPoGS|m^?`w zRrH&2`&J_}I!cZk)Y}@JrG!Q68u*E%MPGwViXTad zW;e@k{v++5k?raiu0-Id<*04oi$gp&`hI~+v71$=rQ8b@u0U(+qOuhZR#NqpmFTh2 zltnqc8u#(UlL=GykQTkLXwS^&BpyFu$|6qud*{xdr(Mp6!bS?F5kS?US|uw$t(10d zijM|uPU}SN&2M?lba}$`-nfy&owc48H9oMLzSCS@*MIV;g=G`D*{?=;L$azOg! zzoTRvcBSW!YDJD%Mkxx|i_afG#(VBL_nYgUB~|em6|_VeBdqq=W5J_|x`s3o7`1V- zb^ZSAW#^tqVbl&XbhP7_$kE&Z$kB>eKC}9ji*%kjC+}7=oi9Z;aS_$i)J5b@&NAvf zqdQ8(`H9&|WW+^oL*(f1#MH$)aWV41Rd*JFqt0GzAAcxCTa3WbJm*+kBt0=ZvNujo z#B;uQ@j~u}3&Ht@(ii18zZaaj5xraKvYsE6Vr#`K6xatxuktORRg28D8$eQB1CuX# zip+hU`jrai^{&8HTAfIhSI%3EtgxfJng&}(z{h*R$1~vLk}N*vL4d7X%Ov!er&^Y( zV)7I3OgFE*Gf&RqLTXm-X|6=YL`xvEHC~|nWyxUeI}YyTo;ZA|JhOb=maUsNZQFVO zo<|>l_^~H`tsH~LAKJ5H>&8_}+{x90W(?^?03125V-JkxiPNS|p0(id&l2g(($$M= zmM!?hXY&@VTDN@u=Wic*y-uxB zIk|F&4s&M~w`@Lc=%68eeF20r5iJ|Bd%8#1GvAoe^}bRcj6@cxa*`U;IM3*eW>WpY zbVkpO!L5yA>-l!;Q4`!T3o6NG2V#2i(oJTR&ImU8B*c0$BML~*o(f{7{&5A)_M$n9 zUzR5|rk?30=>yLV158(u=?t2BDH9mKN-AT0I&~%Ag&B=bEmrC(Ud@!2=>ugr;->^k zOUP2fzOwem>$4e9<(NNy43|f995YHZ1;Y8C31Wi>r3dB@7{LFZqpt8IC0#1ev=BbM!Z1%|EG~1UDQ}(}6(9m;(MWTY z_e}rAPKhisn!+w=-`0PmImRScpBjBC?q$?CRTALLndAw2{m-oDzy~Hp%BW*alqFA0 z+O&z7r1Yn59n5+bHu{5_YNzd_#$M3cj>hizO`t8{6Ft~;w(GD<@ zZb2j8(O0RFZh7OSN{m;)slbfR=ObR9@mI<}ikitF_~ASPRJcU!J#--jZKb89>i2e#W@iA zik6@j@0rjXM9pmW?OVYFksLY`R`FFx%$D9*Z9cW^Xu68H7ZS)*FTHa3RC4=~GhZbu zm#ta9X~VsUUORT}zJK?F4?g_xgL`)E*uHtgx_cIfm!4es$r+64Gw**HR8}p#XB|kn z`Jq?;>@t;0S1wwxwB~PrPAyusW~uwjC+9x+{EH7x9y@vF)H4r1vG;{HFMW9AS5H2* z=l-p0m)BI&?|r^QXALScUw_>wk;K&g@FVmpcdkh6D9JIrScu{%&Cz|-_~VbgG0n&? zM@>tyO^w5s_C0K*I>w@-sgC|6XF|C4VilxT2aijn#IrUNcA$!Do~dWamXSp4cz@Os zj@a>=nTjNJTI(A1DTExU?=~-<%5bx!KU1xz{ZT zkRzMg$WbKg$^v9TdkK1b<_R@tIfJ7g<<$lQ>ei|#_f`SZT8B?sN{Dod0gZx(P= zWeasJc_K&mx&s`WsVgUJu1AafNVcMTIZeC5WK{H=gYvixY+MgEX6DtDS0s{X3p=eF zYkB$05j>s+9v1aPG9Le8}l<_ zr2f_*Q-v@Kn&%cbcOEa%qe)Q4D9(nZf zC!TuhnI|89VC#krTefUikvwuw`_cUe4IVmfUb`NHhL4#xW6r!y=aUPU-?M7-_B{{p zdEmhZcJ6-UiO26-xpd{a4Qo~`NzEqCELeH(y438-1&L4If9=7|&;I)UC)NzXowG{^_wD7Fu+hDHMUMsqxu7S5-FxRSY_6fmQd9{@Mot1M!~pC9{+@ac|qZ9=3hLo??6RU{$u zLWGqBQh%YK^g7%-T}nrNV@gz?Nt4}_rjrP9IOlvX zA%glEQ67KTpFD!TSL==G)vJdD!HDRB&R2Vg1uA2X1>kPvV!Q!>chNqnH&)ezmBKkfil)WiKH-PMc-@fuptA_qIoy2uCXLJokQCHG>mD| z#*-9AFFDgDeRuM%YCtj=lNlY1%3-c>l9o7CBi0Yk9Wi_}4CzV}S*AChpENZwdizPY zY~2Pj5qCehd#BCdd|=lDyVVBv!JS*zuU@n6-qnle9bVISL5g$!qV>Ipjh#51%ENW##1+OINNapP8L?gz!T$teH3zuJQ1BM`!{&f zIwek5?TZ1OHdw3!f^(69%sO;KTG#WC*<+q1b$r{d+UQL-SIgH$`vB-u_iL)72&e!k zq0h}5Qzm4aW8SrP8xZRm7Kr6E8FOq_gS0v?FMXN=5OJhVkDepz3ZkVzM!iVz{{ULI z_)0y9NRCAe<$2^#6kP~QvT%4LLF(^~C%p;@uj`>$%f_g7oZ^=}l2_Gt-5MmOCRQUu z;G;^!_RU*&?s;&}{cNrW9?<53A|Khab1MQpEku{4&ODyHz&zb^AAFgtT)b@6#!dHa z-TOtbaM|*e>o;$=&9!Cw1ABIFxM%5#HS1R0vm{8c9Tu!uyCzJK$ncjxUVP=iTPI$8 z{h6iV^%YD42S|d%pAyN`AAa}s{6Bs6(Iu?JLW4+h&n`6u$Dl|=$jG@aRB1G|HR8x< z{BQ)42$_)z8QIrPBx#~JtJB=;m?Uj+0+OC1BlBABwe`-CcWol1dgtskkYxCrj;SU> zWIq|E*h5-36RnsqigR)|MbN+K&(5QCx)aU^ReT{=_p==Vg|P<8L#lwBd;L(anQ&; zc);y%&Jn`HB=9E7m~=;<@c7uH926*m!NayZ$NSLl4d9F=$~Wn7-;vxH_4vWM#=CCBf{I$` z1a!U*-v7SWAEC%dfAkco;w@4fV+j%$J9sTmgdQ9&fFen9%)FE&$uT(8NVU<{b_xk{ zDc;m(STarJ%Z|kI@*+Mfl_6990w}o-9rALNERbWWiqFL@Q!T2&$AUY-#ygwW+?m^) z#K(qckNa+#6JI>a-c2R>Z#i24?K+q{>Zi!D>iJ~Mz5unnHvw!A2M+GkRiR> zB+I5um`%6s8FOb%A3t&sd3!m%f}RYo>&XOyAd)02>6vZV81yZaf=6%*2jpR-4hnvd zvb4vf+1MIlhpJ^m?7}-ncx0?o35AT_!uC?6ca|e$R6VqWNd5m4&eW=Uh>@J?H6z~+ zW|NWT4QyWvt!6#nkEyg(BzDF+r0JcJ+NmLVz2w^IDiN4UelcQ1dLclMZt4$_%9&RLGpAZ`98ZTO3;n0rD77(q-PHnG!^8ufMgsY+3}T$FzWI#Q=EQmvCCTeOHl)yVO`ZoiFEnBZqhTfOzxTYvHs zo&%|g1?Z7n)(y`C9*4Q1jdbLwir@1y%C}$8?yAf5+zL= zlRP{%J^Ar@%hqn*vFm|74`c8=&Pg`dGy9>3`Jn%QguMrNRA-v4du0&8IJCQ`yJyav zGjnF<+%x&~bTHHH4&aE51Gd3|Xk(HA1GdRgrK-KFlts=#8t@VBX>J^J-PnYvNC8v7Y+q2aLlGnP+`+fQi z_HvhOJRKc1C2!h{c`G+<*|=qA;jV2vckSA?Zq>3CtJiJVuwu@Xz|R^ zqo?HMu^}Jh?T_{PfbYHQ+jH|Kj-Qb?ZPL`d=~Kq$rh_4=fEz3s4M+JqJ|vaPi#|;C zaweJzn4i%wU`dyRYye5Ws70Wr7_Y^TM3Nd-plyx(0LwzccXqGVtce6o#+5>clg`a{ zx}>$l#OaO_8n??#m9!wFd3LhOkUOkS#YIV}l0obeZXGOz-bH}T$riXOZ){e!NubUN zunc5PZ49ob;J+^EG#~3lz%v{_0mpFCcpOBN2gQ`s0V+Enp^9W8VZ;yrmE;6_>Z+AF zFmZv(zI2BC1qXBnU}s2aYPr|xXA;YU#Syo(+0b}z{HwZUBw-C)HBFdJX=EJ^F1cAL0h4`*Fr@s()ze!!E6U}GA|(GC<+ zFT1{d4vr_Iu?DiVp-C?qX{0;LK8z7C_JfAl`aEct@tCwz2bT0{B#L|-HHp$^%(nkQ zq-R=Dq%gN2hW3~ZLdJIHqDA^{`l4KIp`--KxWg^7jK!JKi1NUpGvkj&C(f9=2!@26 z))P-#2}#i^vWfwKFy)*)!Vt5jjrw$b=!@$Z%%7!ZX0s!kyL|VNTNz`g&77V$e+6i; zaclneEsO}~0Q-o%Xa3&;M=n2F;juEfR@5 z8DjE|Wg?-k;GGC8jc}Q(&?nyp(Wk~hKGBWIB`;*gVRdImEYNM zc=1G}Qzsw0?WRYHEQOUVi*~MCp;Ebi^VS`Oy9>9k#kiX{dwle8X8Mrs@An>- z@oKBLJN3)nSU!B@_!;w;tzq#N>_2#zBQVdLJY98@4ya3K%T8Bby;gnU;>C+h*uQxB z>LpD*ID4j);j0J#W!r-DBfY4fGUVfqFZJ!#r{92KO-Bss(e0zo3K+fJzFj*@_fgc| zj+r7^S5!$54t!{6SSeA;6In7BgN$T^fMobLQO?nOw8rRu;`dMd-bBezLX!+cNy9%l zC-Ay|IB~~ml1`d2-^~h~gc$%csH8Qfn=`uIght80(mnO*ieZC(n#MIb%vWD`!l!C! z;yMPhs@a{akm@=T#k>z5L7RxT6u^^S-#-Qgbr7AI{gF@le$)pGu7}KTRh^#QMSuF; zeV?dgmo8ZQ(N2-~ypDB6muVe1C>yj@OwwyzS3YC(jbzA30<1@u zb@-L+m+QVHe8S=OAjk#^9*A)@xUmi$HeSypB3i6*)Y1!L;0*G1C`y zc&}^k5o0!#4$d4kY395oOINJfv}0G{o`XjZ?>~G}b3jfWEk1nW^y!nwc>bO~fBIC# z=`u|kD>=OH|J}cTU%}eEGUjz>r+LGBwVjwVe$te@*Qunr<1-^+9#?QsH1d!FLe&1C zaz*{LXd}yHQM^b;Ml%~ougl4SnxB941^xIADC6oRNLiy!CXg~gl(x+Z>}M?llg#aN zsl5=a+eHh(36z08Da7OAITqUw3e{x9TOs9~ImEx*44wdA6YH&G$CtQLuo41sSlI%$ zbokuCcq_6ch?DWUsA4V8&aP&4db9#xk|ig4le~#Po-}#t)G0tipe>-zrR6k|z7e=n zzBg1KBcG%7lf>}}u0x^h*VoK$Qz*5Yw z@&S09sQj?1pvfy~(2mDsOY{Fd;iTS}MI^o9^_)8C1~(=R@IlEsd@ixR^|Zd&u)G8#aG{kzW@66C!gP-vxZUP*RDmcM6P;Q9+XfCQ{KFJ z(>J7i#35zShW(ZIbtut>ZAh6Q${;DpjmlO=YcfHUnn0jkPeP>(qLM#QDVInn;q616cjS_(i*TemM7&HZa2fd1(cOl7iq5%QCfcu^N57Ifk=tl9nYiG#3aX$ z*L)zxe?heIt)D`YafxyrDS==V&#rhvvzWFXhKlQW9HwP@r|QuE9X0kM80a42G zmbj`}j;26F~ z?tT5u_o?9!y7RXoFY-H|FPZQ6Th`{cpIt6195c-GLW2*@NNx22vy`8D<%Om_yY}wc z5e8}9@xu>0ae7IcHvDc4^@L??!;nALzZ6cQ?Ku^reauOeQ9!c(uYUEbU;p|yh?G%g zH-6}d!vzW}QC{kWgT zZ&N$@MIw#jIdovZevB9AG&$*qz54JN$LQ|;0R@f{=VS|mNa~x}U^+ATXKmX`6K&I4 zvyf`0>G&^q3$l#T4$&)tNb{Y=k<&2ru=7Ztk zj1||%$SYsFam$Wfd-m+r+>)cErKc)y5|$V;_|~=Sw+0U#%tPkZ5O3%|VuBAxD!Xyz z+Kn64<%c$B4GD*a4?Hj@4Il3t(6xAf%(11Zm1C`KJ0Vy8K&`Y(Ij;b>K3T8BbQGYhn} zVy3#0WlD;>kgP>8RuJot{3nFC(ST(zEJ#iwV}_?#AL{g}D3(^3#*G=BKC013WDXN6 z`2?e$|0r6A*phyD!#r>BF9!{DD?#SB)&A`fzxA9Dk5VM#8(o7C zC4~^y@zd1S(5)|j>_tGB}V4HQvP2@!$;XaDLFOb(8R!@e!js&bX z5bhl?AcNj*P4@9QODEc=F7K1s;NjlsI2_U4G1SVj1(97*<~({ZWfBL8#MGp%^6fY> zo35O?`fu5cdraH)VF74lEgbtVhes~hdic_Ju`$ySD`oZ4q>LxJc<#*EGJuz@T(e=z z#uam>PMbU?BR5hQ{^aVVE7$KvM&-?3y#MomkO6>e@cUMI3pUmee1J3*O4f% z-2C!$I)SPE0)Xh%dQci%>CuGq-_e`y2rPr60BONd@3tdLFZ5HsUbh}uo))9jYV9EoTot^P5s&qKZRh>%dx_+EKN?w6Sna&-QKv_n7lW9ul zyz~Eh?mT3~Q9WmD)H;W_=qx@#(BXrqYqD$|+R;Gm?Rt#6!8&1dRJ6YGHQuUU*39Xy z)s2Hx$Qrg_vMnjr6t}TO7+J#rNI0zHmTAP1SZQc!J=}4$MB6H{25!5&od7MdQg%FO z3t1+H{Ge4XTPn5O@CL>x%VJ$@fdl@(wc*z?3by=0%Y<0TAc3HLn^~b~ zmA3?zxZoyMqJ%@1UiD)arB;e8C05D?_f98Oc;$`AQrf{t_~0B_e#|d<;3$%%nz=P5 zJlUu+wm-&{@CVr}i79cy?~TZ0JotRYDEa$@kWV@~!tboq+>l4)#!D#*luOa2luI`Z zGKt=TMrbe6$RGt8b391XhcKm7dQIx11_44%a+=nG9->dy1-j_?PHLLT?{r$dAy1>D z=Ucv)IdtoYkz>YAoIYnU5tfy!2^cJzJ9`GE-op8dSFByXZsX1!8S3fGp)@-0e2d0cpd5hZqfg!`^#Ud&%1%(^EZz_{&*VrnUuiK z=pWw?G)&`9M~6;e3_5Atyq-YGfeqcj61jBdU0WB8({Avh6)l54@AJr2_QapwlYbYd z&jfy=7`@~ya?V}Edi37-XUDg$h`USRt99z~K2^**i4!iM_hG${NFodv;0^qT!8{rV z4>Qv-We6b3gOXk;ndg0}g?%AWcWfq`v}EO8Vx z0QH`2A_5Kgvu0orhtUi`&k=!AcQvJm((8H%R065Ht^mH%!6R+ywSCBpI?z*B^jp@0 z?zyJd;-7U%dGw?^0X|)mJ2@d`Cg4+9OYgT)nsLqaO&YdwOushc z#!i3dqy8Vf`}U*^o^fg8-<&x*Ck>Z3`e@8YiefQZ_cPc@WoZ;=PjnPt=MqZYMBZ#v zOWyQe_Fwr+q78ozpzI{Pw?ltUpibSamA|wtT0(O)6I*RH2B5A>0PIb4@uzZr*yP@rClHHhftun3 z8X49)3U21CnH)mqro=Jg2_$n|rV?UVd?XSYT7DFZMdS6uaMT<2E4BkBbXp+N`3N;j zLTkbdbK^p=Q2Q}HK#KvZ4IIr|p1EpQLYDafjZ!xa`-H!uQQHS%DY%`W)_;x4S!*+B zi&3K=?5gp-7`s3%{d)1$z&_*UIwUZ?3I7(K9u)V>5!h;nFkOty6;Z3Ab$DA|=n>wQ z4OemktT(vcAPZqe@y(O$m`6P^_e=^$KRb+b;2VP-yQOp$4Rj6t95^zxxT)fFuPxTuo@5l!!-JFB}#Gcj3Ca4BHQThi9ifoa@6m)z-WiTh44Bq9WsB0XC-c+tN7oR6~a38PXu z=aM=x?seG<3_mv~xcZW`M#M(=ieG2Sb=stqIz&2#Xot*I7a4L7n3Wxnsi7hL;zTCQ zOpoiHNRB}|63tOy=sfI^%z7|1wKNP5O6@O0^oW1;h4PuVoRc2No~}pSV^ii>?%CJb7*n_1y+t#;h zy+w2_2{dgGznu5V-`|I(d>2w|)bs;|7-F1WuV_iL>bgrG96x zQzMXG^i5`s=A)lcgD55%B^fzwP<=)MV|NGxM-qQ_w&5ds zt*koBu;vOjd6z!{P*w58A$Me2k4Qz;WMl37kzu!P+`02l`iDaYRh=w3d~o;rDWT$d zUWb;gQ|1*{9^EpwXRC2p<2&>o(PB+<)oRu5?fy05;+*KCwu5uJrPhd9?`*7U zQkZ7_C8D6BFr+9;c0=3!lW@fAFQ$oQ+pax(@r92bKXIzOwB+#NV<%2koV%!9zeODS_q#0X3q3%H z%8qfwpv%=)uMT)Z@Y?_Eu|o%ocW=l`uP$1co*JFI`|?*;Pp%!C`q`~7GA7Q=`RbO0 zEg(-V&CZR--uA5bJfPFyq#W==qG=7DYA?yntGX&YRm77WR$Mog!ath5lMnL)7*I1Go-OaIvvR7DrrU8BgDz3 znOQkGN_Qs0okpj#*jBn|r&0ju*JJ>Uh&kSS7jU}&01Ye8N-z}CQuQzDiqf9icHIjZClpE~BTW)6UePQ1hw-?~LJjW(>SY2dlfmS_7{ zqnrkbZ7pl9Y1?iEboz}(7;$ipbLEYcFPyhNbkZ3X4+u-O7`nff1waXMF$Zo-2-!<8-R$yBA3|IQ2q5`JU0}v=50*oo;#;Hm!dfIAx#X z-TY@KoQh4|Cnh%K6HDl(t_K}Q-aD17PmnWn9yor?J077GJ$y9%NIik6n_ZN2z%TaT z(u}=HaA}T(JH?`2%JfiXYEozFgv+U;@Aef4L zp3OopO_sFvlt%-4Bfv;_s^XrFJc>cz^hw|}0-T1Z`cDVE^!y9259qh**pLD~^>` za2n>h3)NR|eevz5S1+8azIN@#?a#mAzD*5%_a(cI&%XHLn~)|t>xA5xQu=({MEKIu zvoq7Z(0AY5uGo|vI5g&z_Y!a!*Fw6!5QvoR&8!o+ubN}&=fBe%Q#iL%+K{ZZ&oJN5~lQE4H zp;5I^7>!bG0}I_Xpo>N!5FB)~A>%@+J6jn@n0h;}I&6at5LBROGqf$NbPRkOdrdyLwDY6q|n3 zCMx0wW}z#MiDK$?X#zk96ErI7x0YF}Or~9eX|BaUKq{}=`Ssjcrk8q8h5^!K zX!}n?{K0?68>;0}2IW`j08>g~L%%~EDzAi6m0guUYM|G$z7t9jEC0>$pvEiN)q-$< zXp}paPyjUQLZ9%c_uCAl(qHs6=#^;6&(x(0dKs1|KbQTjQ>~(JAps=QN40~IK%@vL z?;$vhYa+0Bzta5e5I*{R0OBE8ZWB44)$-+ZRD zQ@AwRbyk;5JHBb#<4j$gO?+|7YM-HF9aQQ~{nUkgE=gwWYc;%)x zB7<+sxS_6nGGsX74FlTwje9&C^=w3_F}*{nLkHcwUUhgy#)#89=T2U8IeYr7sS|Re zgO9Em9htaw%?Fu0cH@uUpx9-`9>9xEi_l}_DHLiIFL3Pn7z|3IulzjNsTq@!q~-gp zfl@_H{v1lX#@C8LsksWW(vhNu4&^o$lv-`OPkBj{wxC^ot{H-6T-er4y-eD=iAmWW zYIpdqB?Fvwq2P=bjN~p@olt`cs8rdET-O#sC}8pg`iNx8^A|*>Y11j-DxnJiL$M5h zoIi((PN$<7ak4ilng8LW@!q&cT(m5hVS;Sx$C4-?zh$Jo6iftDM~N~o;#4YaUyG3C z7YLW?^?^!R{(fsh4|Z!>(LyoRnLIN4CQN_}W#1bJYjURwm4yX#Ey177K0+*&ZQ)Wn zakVsv&ag&0+eIy>qe~hHyQN@aDJ#E@rDkHU{9K#Ecp@}FQd##=jQbyDqbx{PQqgow z>iP9}jzgrLMy=NtO4&VmgQJ7O1AU-0$wnZB-Plab`v;w-3psOSV*}b7bk5?Q=x)EL z4mg@s7)2*dheervghSTQt722rAD6z8ntlQ2UJu?O{7{VR!lU2|<|+J-xEO=_U%qtq;Hpuv zyA_37O1>L2Yfj#jvDx7(hgUDyTy|vKt?M_g-}G<%JjjGfBt;`tw$JQ)@9s}Io~PCj z%>YHcRJ!3=7J#VCau=sbkZ2GL6^KeFtwo|13>ApdRK+c>3N#!4^Rtu`$Q z#7e!Yd!1yad7T%#UAnATCWTh>{5v zhjQR1%zyasQ6$fjV`^rowW)H@hGPzR;dXPRboUv#fn)JvHYYM|{GZR;sBaq!balT%}% zXi8crEoDQ1qSu0Ks6$aZH86vgWUY!I5uNX>?#(?p|waP9r@+|WM}YX4P7hBWB&B8*o4^&SFT>MX5HGAi}FVMDT6k4 z8StLDOu`5d)Nd03KC{~T?b6!U?;zh!<1`ysIMmXi4>fK~_cMQ~!OsX%XoQex7r-#U zZUr2i4r)CYag9>ssk$2PV|N;lBTp4NN1jf5v1D2xy=a`KW_H@=%4hnFy?%l__3{Ru zs7aPUMFDl=WmHD3it_4+I=w$6`8gPy2pilrR16+Aj0c}oG3`XTD=qEkr)8#xq0n&3 zFzc=5|D&hlAP$A z&~Neg37bARZ``gIz^9{6@AnN%3gz5y|38z6T|^r;Xnv3&SHUU<3>*-x+GCghmFEN_DzH$Tn@?T_9(hI`k zv}Unhb&$SEx%JFK5cT;;J)qO)DDW;_Co{0UE8=Kfjh`AtZWIP}`sfF}hj&b$yL#L1 z11Ha29WsKijxQ@UHgcl$85$rqZ{NAi8U%Ll-@ARq)XUjJIu0$Jwe3JDPvo=ZhmM{) zQ(+#~nTyru&s5-LojrZ#d=(EF9yZmL7tSJ^UcP?&liPQPT4hA4kw!i&^?&>9O2Q~~ z15a<6oEsTB#2+(#&Y~p?F)bI)nashF12%s&C5w&{T9kR*iD{UYlv|rVv87EDWokVi zNd!Ukp+FF2?;t%iS?HMoWEikaE` z3@3=97;Dh$sHkI@6|3_9s4yv_{QP?h6hhKAHKn(O5>B zQt#G{1AK};$<3HeAVpN!Q3s!5PgCsUOVHLuRAxO(W8s28FtOtx-OzR}rhq_pd|nd8 z5rw3NJXwJOc`Bx(CZEKP6WVp)8LUNPU8lg>9!v|-c7ZH`2U@g9!=``K4N6iUt^j*< zbd*2xvA9Q1&cSh~7mFaQ*LT=SiD>BBkl6fq!;*C$vN5d#o<#>GksE!KO*0^8jaqy$ z{nGlzK2BDk0zovXkKfztR`#ITO(33NU`MV3Y zteE!sl4J#bf&pl$(?Tc1P?WWLh5)8(g5oZxKn zO3wGWqIp={R?w$TjvAiwD<(!LtKIL^*6Cw2y-3!?ytzx35)4?jcG%>+lBizwJEj=oqUQhTx$4}W6Yzq^8NpT%ihhkZ}Mf}GY zPRXDw8^cet=`F@t)0QOq4B1)Txb*PnegX<~n@g3%FE1y=sRJ>|k7{<3x%9zF;n1fF zHjByWpuu`|I%we0&%#)Rc~M^_zPe<<2H=0|wjKEeWCEl(A7h$N=!8J>B<{S9);v!Z zx7u)5ykLWZf)j4oW8hDPfoz_gm&%MaSK3{c(f`V z=0Ec6i9*B<);&<{Xw*Y+zBeL^)5B+ho@+uAQzsHC6@E@e3B3V+W+jwRkJgIknx$c( zHh2cfO24DegrClMN|t=mlQ~VpO){D$q5s)br6lmvdn)!Mky24p)2Q?7`M*8;Vz(FG z>d>WcC^lv7{<8BIuMZ}#mNs_!+$Ag4VH@r{pf8@Tw$k(0ube-1X#2#9g%=m@DX+eD z>Ⓢ7wJ&C{rR=(iv!~7e))ZB#7q71 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°LpzxMp^6R!dvm{xzXW?yLYb*4qs{L>8?pm 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

ZiF8LE7w^`brp^3$x?HgXp-W_78y578`d; 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

2vXnkc#Myz_~#`G_b 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 z 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 z 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%0AlF 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ⅈ(sSbxE zr&LvXMNzUd!@Si}Xb~q9ipwosRR~KTT$KE*lE$z+Sm>Ptbq}@M;z{HZ*6QsZGqvDv2h9U3CTnjpUY;{ zc3w$IVDk7BAtI8>GsRq}wiiIjR(4)7z`W9Ot){rJus{Q|cbdW+Wqx)}Hq7PAVM0)< zRH@~h@$}402CS?qDTkZE+rqL!O^K$Us7RH2Pq5gX*EIwD3a!1oXH=CZu54<`R5C*9 zV;NbBH02d>YLPT7!%JLVDM(t8j-}p1I-=h2bFzwZZ^mYnXC{-&f>XTHtMWP@OYFDw+DDLbCG=dePfSwgl|VmFkCUg496692bFr|8lz!qot%XBT%aRkx z7h-&pqR(GAcx2y&gS!r&_e+isIT0DNBmUTd!_**R5a|q6dHDjp@ciDZ;gJ;anMmZ& z@g#pPDdt?{zKC=CcI^&2bmrLZBgfp2?DRe19(*E&bL#Nb{q9jAr~NM%oy`bGb{|n* z4LK5ZCYBVJ9J4Q6aO%XFV8_1_X$sgMEU0iAy>T%BCZsd@Gmlbjs_J=m@x@H`x88Q@h75A_+}o;ypkQ{ z=f%qwM~awUG)e%uNh3!J=x1|cNs1t0hNkH9#lYxu$C;K5pTl$4sC z@_EmPm6yopal!TH-FMA)JWeiePxMT`pO!v&u1~qYUvq* z)|(HTTW8;BbMFybE3%bEHE+HzOPgLIx1P+5+-$089`0HysNgoT6|eZSg5ejm2aLkP zswcyXT7=x*{z=9s{`kVK?|MFTS0?Z5pUFmE*FJgh=o9DFAZ6_75_fQp&8?SB<$hIh z^H!$&7M4b{n?(=amRI!lHO^n_>U%>Xet0xaVRAp-YJOBSH?Gco*i`ToS^jv9IIpNF z>~34=zVWP~cD}iwAdg-Nsiwb;e4pBtGHNQq=MoCAPV4PDOYfZs>o*N<`sbZ7;-FL=At^%G7Zf47d#a&cbAOZ zP(dr_c-zEuX=Psb@Qs%1lZx9}Z6BWHbPMk*?zT#vAZ^!MS&Uoq57`UXGNu!V=``~9 z;x=SqsJ#6SuU;_zS=;|=>Bsx`l{q)5J#C|%+Apk!P1I&~POC@s8rTW_AHto}U11-~x!MX?2%5rfIuQQ99-;&$WP?-PhBlix2E_u^3E9_*q zd=ON<{87vt?0#7}#G7Pr=IYaJkAVSt(1~nESQl&3g@}m&$#8 zT_Mf>LA*EigqHW9wn1D=e)8+br&&r9WPGZNKh^L{7kRaPvSQIwk?MUJcZNkRf6J`S z`mW8QFp9Y|pZdoscYA0=_7{4dM*22qq=?ZWRnK+L@h3AB&z7z=j#UyngiG#^6hrpBxvZ{2CVJn5nBzD6`R7_)=v9X{a}&!yb?q^0F~+6@90XyS;UR_vTJntb4L1I% zk6EX;?oS-SdYz3G+)C0=;YW&K9Hg^?cC(8$ri*j!KdPYCk-r^&jtYxV#9=O1g= z{PRE7K()Fq@O<|6uKF$x1Pj+g?)rwtn;mU!_3;>e3xW{>!7w%k1{-bH7`m9ObFI{HQ!eLY*iQ8?T6>+}tcObvDPKwxTOVSyt!JG$Cf;te)#z^~E&;}7gw z5Mkf`m^Kyos@{ldhrdddx;UJLk1{I~+zALs*Z| z)B6+A(KR%K4GDHwUECT&{k3bbxIJet9uJ7XnOG1Y@dl%hH8I0Nm7tEkYN>B)kI^+Uv|Dcs z)+vzw8DR)mQ$0I3$etk>7+^Q(+aqiAoL#o#um(<+TU-q-Hxmq9Z46vC*zG)Iyu}!A z=3s>}b=zia1lm=+o}RUlt>w;r`?mT-vaW{LYP`U-|`9Ax#50~rW1Pk?))BO@>i1ggk^!J*+1G~fx4ALOy!xwi+>KA*k<^6$f!uit)t z|MvCM$B&=CdwaFC*aN6$%7!8vyW+p8?6eGI=)G>mk0gNTa2c z{%2WbZ8ca-G@24b~?JbZQZrk@x1q@BX$RaBd>7JUkw#TdtP)fu|Imignq>DlqhVE{Gz{a zNC5k=cfi@h`}UdaFh3S|?Bsdx1N%I;Y~Q!r*~)F(l}uZ&Lr(7Qh^vM9e#@O+VID4y zHddRqY}w`Jdwl05pF{gho%bHt;d0`r`@s{=yS8oHeG~$DERQ+afB@It+|1JB5W&mM z!RoYwqs1npEr;xImix@`cD7sG4x2e)^=%C-%m_LJj0+md;$UQDU|@#B7+`l88aNub zni%Nd*6Lc}@HT|gIK+}*g*CLn8g3x0GqJU{H2Pz`A(WBm+39Z7bHd`mfU4^V5x6+4 zy@8&Sv%ZyqtG%tBo~7kc@146$J=`rV9lflK4Kem6PF6S<6Z1U>UDuoG;5WN&vfAQm zwZrn*0dqT3OIHGfznJU(VT8l#8f;vT(cMU}GBJcnjXzBdaCWZPO-}nA{`HSP*ZuP! zSZMrPgZtCoz{+~9iIEx5^B@g1A<$4VZ56Ps${PW`trijd)7i^C1VHFDg#)I5dqyjV* zO0cp2>MU5rT&qK3{%(eV1(f6st3(*!98^LHxzq4;74D#{7a3Hls0Hso(IcP$Y;|iu zME?h+2T}0#o6-9l9O)nbjST_RL2_p*`Jbz=qnrOeOZ5Ez0?w2qu=2qcXgJKjp_c?DBGJ|1ia@X@ zdRgEhaHzkp!s>WekvNLsQD_M%JLo#-?;NfMeU%f1r|2RYtOBqczM~pb(2Az~_6b%t zWFh`+v1dfA@Wz}(R2ZJ-;Zt1NRic$eq{-`YD~X8}wO9P;q$KZz=)%N>X+;D&q5sYm}KHg_t4dbF+wP!Bq*>wRKl1p`^enRcvnB`9!FPMxt^e(xi&3rRNZ> zPuW#fVa@dTEn$A9Jd4PrghVpJsx#?|dR}~>myaa;@>#LgKS97}I|03wBhdi1CydDM}vN)e%7QIvOjFh4ClGCk(x*@U>*_@oGNPE5L}lBVVg_+bLMX!>fr zl3DKUn_Nyyn#_$GCin5q5XpXm3z9T;c3fFWUvyTos8~}9kPs&6N@0>ti_(X+4b9EX zkQd(52FVL`4UKh;ojvW1^)Of0(%u7|3(YN+T_E%X8li8vzq`8+qN8svUX4$vmn|kC zND7r%-jpEC3-70}xPTy`@<#wTl1Xjp8I+;Hq?yCniXx#bD>GA`R}4B(ai%;cCl_j) zr4V={hjJiAYEnyrn3t5139;)%g*gu;DVa(Dmhe|bF1uBZR6_y4P#2|qq2*dZeP+UR zWh$vEF}#4v_Llnt_1j7c>#vF~u1Tl1knTn0M`$>&+8gU=nRMBqb8LACl7*ZMiO%2- zRkSpw1$6~n;e=O(gpn&$i9{sv{Aq@tUkL5o!DMRC`2z>{d2o|Y7G#fvN1Q%J^~@xn z@$X$XZP;f zdudOM$Ei^Nke!Ev(k@eYA)JcBlQg9SiW+m_VyH}zln|$i@1m%~y#R!tuL<+ZiR+P&v$I4+p9?GG zp`O%SjJ^A?dR#T<0eC++bYjS48O0KlMu9{w`c~cCr z7?eAA>K<{ly&X@MTW-!j72f>7U#c&xVC8-7QHb+p&+nACGgWsNYqLhiKHM(p=jO`G zdY0#Ie&BI_yt?_2EO@{c@`X3wmV!pDptN8G`JU6PDU}br{K277@9(klN>gnsZ+m|1Fdjh5L6RMf6ociIm%&rOYE8@>r&mX_+9$M*Z<5Vm?Tv@4X9hn*% zZ(fgScmWXsT>|82Wi_xM?C! zRJt_(>g}5+3+$%Pr4PSnbIIZ_6#|6!VXpe?eTkNMGlxA}`+a7y`TL6+dEc$6wvybL z8wySP_xic!#tv!ySl0_>) zJ^lTCy?x!#<=Ng2x$vM9g{OUk!$bXjU7cte48(T!_W-;c8K0V&L8d3C`{!=oSp+xH z-4zIeUs%5X=*jC;BDuTh6_w4VW{8_!mX6-!&9l%u#SBn?qY45ZXMA~9AqTNo{&HVm zdtQ+mL}R5@aJ!hlN)r~SK*{}^mFQk3EE>`wslwZ>hGVZgwr@s9t%Xlo)u#!=;nmQ+10%%bMTi4~-v^yb9G07Ep~SevOG>?bM6KeIA9?5+Yu$M=dX zBIEl?Z+6|#{RUyh*o&Xiv5ATL4^6#_{1K9xuHaJCB67)6<~zyI!!G$q&(o5(lFmM5 zX7`VQFUL#P40u-dIpx|M-?#)ljdy1G)U@{j({kNEu~(9a|D|zL!6uyr(0> z@^3xawH3u}pZX>{Wk~lR0?~u(*XZHa8(BK7MH#xYHc(Xr`lYU<#lR?_jYJ zY)9+8L|dxoagX7>69TikbV)i-qoC8&v$E1)qf)&y^lY&SBuvf4nfv0A%+owcEZ zk-mkKk-mc=ie2?FX2t|V0>RoGuL~+pQzLy0&Ts?X!Dy?=@ojsY?G3RwL!Av93^7Za!(bsS5$?1Nbg_6n(8%gp8*kWXy;V;S zgEciYf)pLyV;GiC1AuYcAH!*3@zO^Srd#bY%tc2 zt`-g!HU=0YJwppqx82*fTR>i>XL?&&SX*S_6{kqQE!(hpv_@Vr093n)peV*=UKO14t}noVT|m+lj4xQXB>_9Y%}(CIJVc%U6PWT;N|b- z>#+0E)x(?i?zK5|>XNO?*4+oJ%#WEnyV-8Hu-S6i=jhqvdu=SYS=!j{-C?h8Q_`>q2=5VvgycLjMm+1micylvMWV>7}Ls9nH&INBWd zwlF7{x^1#^Ff!j_i8XiJcHDLQ_MP@t7{Ug9+#iq{gf%iVHZZZlxM6Je>~Pp(XKS=c z&&WV`y_G!y?__fUY9_6%9gQ7LY<2OrFan%0q_kMAF~C4;COA{LL-`&_q?7Y=E06yvsosql_9A*uGR~dVqtVdldrU zWUU?%o}v#{u?-bcF;N96x(;juhzQbFP;5j8W#?-9#47s;<3yF9tFRFTPOCTyeE=W} z@@dd$%vBZ;#fs?vsJ`?6tx}AunW1Sz>3;{d93ImEI|7(XP2-~_fbbMms;1|{QV!6L zEXbGn`|s1F{}sgfdtek`Re=RXjfbmTAY6qs$N)vh1A_(8D~iTYWh@$wik=7xFIlMR z5IuDiEz(i+3tuQ@xH@ong|V8XigJ!96#O@I8+!78p=c64zrW5Cei=Yfq7ak{DpM2_ zQj&nC1+<&Q`ftY}6?Gq?;!{ARt5@eYAVoP)l)Hr?puieU8>OLkO>_Y|N;(K+{}Gs#EK^BQBq(wGQx^=&vQDLNsUmKLRzrc_4I<1$*2frySmp(rJYl*J}%vjYa( zOTyxaiM=7!b(vWiMJ*C?zM_Lz+^jv9kV&Mn#OkT|x z$d6%U)$^#3_W-25I^(GG~ zH4yV4XH5%#SGxi)05ku!b*;@{_jVPd{#;XESs^SXIA$(<^lo*ni7#%6& zkXWtIO3-!Ta5OhrnqD0c7UoHo2Skv|hH`=ngS;*zB{EHQVq313}d-xxx1#&pihmLwWA3J^J zN>bp#1BX45E)tJLW*`@Rc4Bvfb zd)h_cL%Y&9pE-3X@JRTft$R>@(_?SK;e(O!m(M4qAGmPz>Vc~lBmK_ojXIREH;NWd zN(}M!DNw|v2Zo%WB}g-+r0m?`OjcQJ#8~g8Kv7p&S&ud&B09LXxjawPz{##{WpuWb zb>FH>POZ>}jnDlcCq2Bo@Q|3E&S$;gk&|-6TIfh--YA2y{PNC=DP-H8YYu-@8c|yF?5?jk}Gm#jBhj%n=TeXnABW@yi!=ht9XO_ zBKK6Z4T_P$`QFBRgS5{}Q#5(D;61Xq++Ejp{Xtu4XUC7yu{STsFyU3$Fge=snnWhj ze|*02`s-|y?DKV~qWdK6{ywZ|pMKmj{o=_|-_7@9x98t}c=qu7X9n@(r-qKc=Wk|f z8;5SLOfEmIQ;G*9_sV5+>USkFX&toK)zxNvswrB!KR9y#`L$0=U#nja5NFlH3*{yE z7YnqF9OkW$*RBn=ez~79S-OBw)pgVP0_2V&rxo7qc{kcRZ{Kcxm!){rR<`uuXZr&M zrQ`ug+M})M?8_6r%H>V-7{sw@{=_r7`k^>)Xu3dK*)R^B;DeLTh1ar56>~DAF|(o+ zxy^pnD}LJE_+h4xKa<0Inw_6JtX0>|y(Li~Lw%s5XQ`)P=2>qC`ME@rRh#{)zm9a5 z{d$P?{N?rX*(pY4_cO_YR4~~_e#yFB*3#YGu9mK3x3;22A0Q|JTedX!^t81!K-OPw zd3|%UwjygfzZsg}hli1&p(0U14>UAR%m8mO26(NkuDPPKtL9nlsCINtokkSMi<-I{ zeod`M_6jB=eS%z?L%;2zF!}{=BS&HR>fS~(lupPseCAZhF!lfDOD`gzv-tn_0ee2$Q4e91Qf3+a;mC_->% z1gJmQ>$>yQ#gn$1-F)|18=2#ArUX}KU^#FG#x~BjrVwVoe*GWT7#kfkGvLM`>=0{& zU$fS93sz6Zg+RAv#)4PS%y13HknqP^L&&nh|FLm{-hchmz!HlwBH)Y+ zPh*TB=o5p(8C&5Dow25Ps~yO0{5EqFXb;>7te>^TddJOy0K*5MgLyhsT=X zov{Qf(+#@Lh6Hm~Ps)zsJqRWy_xJ zz-bXM`yIiW<>KaS=4=n06PsPFEKF<-Tx_h2@$R_wYjuqDpkQO21vF>i@E8+Q6VUpZ zTAAvd_B?8@k1;e@yB@5R&{3$Xt53k{?IGCf=o#TQ5p>sLHtK^d(m>A;Et$|a(#64L zaj>wnJZS6Sum@a@&@1PR-(XF^IOB1K=9U|DpiU99PRH0}gD&h--^j+o*lfMQI!Fdt zkAOkZ2#;UmYKeEXHgR@zBv|52T!6-OaKsuqm_W{rsS(sEZZ|aE1B@hozljmn+5m$+ zWxiL>BY1nuht8|9SKI=RowqCyoZjMS8Me2!s(*ZRpqT$y)zb};pZx=Us8*r5sjH_O z3S&B&lrIxyaG{rXVVrI?DF zBlNJaW9e+MBsHrd?+wHdgHw@8CjI;}MULb=diVY(u^?U3P}4zWu{b=T_>+h%Zs@*E zp$Rj%?ALeRK1CibJ$Zh8?#Yur4!<*?nu%~`%$HX_Q64(r?=W3_wn^fyO@-DHpKCWlbh8pbL{S|ZoAH(z37vkdVxmV>~t*T zlGnC#n?3gKb+iVN=y9JD_MT>jSW_1l`<#Ziv#`+ue4Gi3jciFhQY_)}WBO9A-fK83Dwx|bjy`GKH zT63o@2h4R$Z3xgwV&Z@n5}L2y2xi_5Fb`wxU}a~r5v#M;#nBMK;$5w9mRLt?C=hhi zcg5;%b9UZ&aL3O5$8DV~_gd`Vx!2vD;9-5%>f|MlV|(nehTHbI?%cG+ehb0E)Xv)d zXsq|?6Sl_Q9vEGC`{H4gFzMsAee34k9yVJJ9JSiN({=x`{f;h&PrAefN86k2bKiax zqH-Lq4>>`4l%AaliWYzCGt<)KsMYR&w59+b&?FO-i$uMCD1cuE?{ARcf`--r zow$mm(g25{C=Z2EU@csQkXayT75!FB0_BFXlW5cpit(U`f(#|}f9YKR?_W44DUp%{ zdjK>9NDu{%Xl)+s5B7=f8c+@l^=}ZZiJA%lMxmRb(JugkP&O?E1`eq!t3yCXi^@m; z19cgqI2XR5J%OOGP5)b34&>Ibz_Tb$|92P+s$PXY!r$36OyutXEn$R|^#6^dqsK|7 z1H44w&lU~7{)VvA{~rKGv}O?f!A7g-QFKj3V|ri+=&;ZcP?G;Z&jgmBkam^Yg=bv2 z(!W>vs~!+Eq;Of-046EPWB`3As6>$+1o*59S3zV8ub`|W{P;g8xJ2-Wm=lnIv)71+W^e@C;@0c-y|y4&9< zo&y&JOqr|G1n6%KJ_Hd&MO4Nu43u+2$|utDd!kYz5@T8;Q&U5Fs2rKf&QO>E0dB9m^a)O8cn{VEwfCOI*&mR}n{$<9k_x0o8wXpuB0 zX35iu$!CK~8{YZk62+V*8p}rc;=)QIWM>6mfxCN>yn}B!O|Ep~NWBP$y9-7!3=GiH`N_3%s&aEz6E< zA@M1VLeOJQ*4^nGyr1;o1M$Ps=*x()q=})KmAfwnxxFh8-KF7c%ZodEntL)Dgka2M zq{K*SeQT};(GX=+PE<~@AU{hISEyheOHcI;fT{gLCXYmv1^85mgQGQVX^DuMfAyVj zAH9VyEzJ%HNskT|$HrVeM=rl8s4Kh@D#?~aB@$yJs&m56MkZIZmy^Q_Ig;?x-X14B z{gc>%mxH1s{m4v(S4?!Omv>r{$}{xpsq@E4=@9{l$BBZd2w|KoCC4Z5RN$GEB!$nh zgPsV{%Qt`m(=e&Y>X109AGf09Ldk+iCJj1u;Z!I`>=PcDt$8R)7Uyc;iOozqA#)KD> zSXc9!d|0szS#luhJjj|a(IcUmL7Ghoui>5duFXvf;%BC$3Y2N=u#C7Ee^$1tI<27L zN*FbT!{zhqI4oZokxC&&U>U11kOqC*nNJ9Z_UJC_#cdjdHuh)+AVA6`Yyh9yW+PNyCB zJbL=%-b0sT-FF{N*&TCUa4zU{*bWc!>BP`O$*0|^J3XThd(qDB_6t3G{@_KgBOa&r zY!BFbCjIiBfc;V1Po?gN@?k}@F8S`;FSvZ1%VW@eJ(40Kqqc9~ds&$tbogXcbZCI* z;n01jw*>}m^9kMJd~wIcxE;s6gOI(uw;tYobl(Lq-}|_o-@5x^_}*jN4}|X6v(GEY zbN|&#SJHw*yr}06GS47tO>tAj^!2I9nOiHPlO5yT3)4fTbHtdd5ANPgq$H%Y)y7Fw zRh7LnO9S%=iOsn6=}k#ZRYz=YVMBLWNo#e!n4LkG2^F6%?k+a-P@^p z{Bdn356>==<;_aub;a0{R57tUa%=2f;m;S68-uq#0s}~9E`QK=-I{MK@9!Dx zWS1#q6|&hMp9<%Co>7P_I-mH9NclWhJIK9WFQtrV?>&9?a`5TRN3V&`KM+4Zd;X31 zn)V*FTJNAz;@06#fD&wKx1 z45=z6GQO-lfuzxz%5gFM?HyU+!!IR;RYOY7SI(EZdyRcdZGx;yRn|yxzM5S3jox%) zMws>J{)-Gnkx2StB%fV3H}iaBYAr8iTSU#`yVnR>?27E}_c)df>X zRsk`O-2Je>0U!|A{b2BhSY6&+R^O6ed9A)Bx2WibD6gE-^!yX; z+L!9O&&_0-Ks7j%p(?&PH#WkJ?d|0K>f~yv%JxZWE)=6S%@NbHMS0ijShC3UR3e=T zw|_TPTE-+jR~Z)@dG%+@q^hrUNG%_o;d6u_&qTQ5W?IEvGD0Up*+yp$sd=#fQK>dK zsH&c?X_fV{wUw>qx6=3-MYUtU$bzg)(Mow!-t8BZ(bAq#C99geGFc#Q&LC0_Mv(-5@tsNatIyz_*WvKn}I=G@5kv3+Q zvO1qtU)9)AnbFc*^ybl^8pNT}*0#pcQjUmIu$aMReXgmP?vf0(-fmlY#bB3CHS{fK zylX1@^|)*C*APj~p7=%WFMv$Z*NaV^Go9a?3%Z(X$EVrTvw0(#qTXjp#&TZQ-SO)$ zN#p^hY_PLl^-B(%EQ2wWT?}Qhc}sW8UO=N#X^BwO11+YiH~c~2N^!SfnM8e*t!c@B z)5-nGl`K__T_<@^s;@ zI-~dJ^=mvPzwvGVL|xtV`-k_Nik>POXe&?o^S{KjIq9{hO!e3+Bug$Xm2?&KXfr61BpD(^Z?ASh~=Gse5-KTR!Uy@eJ>1^33n>~jB`cPkH{Jpc0G#glg{-`~F& zf5L=_*N?BrJR;-H6rw0;Y#pAvJ2;n`&Y;e{dR$T0bc0-2THRWquG1`pK@)Ya2jx6yiAGQkFe zGctB{*y3nrW^H2%f&Rv3CdMY43>|ch98Iwpi(SYz7h`J+`&Hu83V#Z3d}531eglxy z>YE!I7!yowaTd1D<~k5?V`y&S>OwF!bkNg*!Zkhn4f?ySQKH8HI7hsLgX<>et&UE6 z341(DPwaBphuLJYZPVrhJ3Z_S9k#eQIolXG+1lGXI=EW8m|I&|ni4P;PHUhEP9HEG zb|VIlBVY|T0zUkgp8mf!+5<~vfCcl}+O;_B+I1KVMC=e8?V`*M+j?6-0tvhV%&D%f zo}QuUTC4%kk>++gHf+>cx6aZItM6oIea`oQ^&Uq@z^E9E1>V417YgU~*JBJU*JAY7 z{qs+~4c6;)bk-QI2k#{w*{ElykHKT@teq__p|E48*=~ZhslDrVOA`V>22*=$M?(_= zNNR0#P^;-lR|6>N08`q!wK~oxd=kmy(MG%MPq<@nmYXeY&21dqJ@(U^N^`Uk2a-s9 zzBFI0$jf<*P>&z<%V`jc*z6Apw1S6aL2k}_!=pvS8EQ@8<94yP zm-c6E4w*C-a*|oBQl9cX62q+wjJ*=&8CaK*U#3;g@nsYeDW+alC`}2k5cR9sX>9Mf z(z4-|9#PS7+(C^v{1Wn^uky}YZ3Cr8qmd5u&%7f?RGc|;;lw$ga6cz&3y0o0sMnZ( z$zh9%kTACsCk`FCaAfPAtcG4G4>Ma=Enq;OWCVU4xyE2gL4nIkpAfgl@a{?{e5=VQXu@)75#$ zL3>;0bCxG}_;1;}`LKo6K8M{-MtdCaM@(Td#L5Dv55<GSlF1_7!!2X6Tnz#WwFl2MOVk1 zU}mpt<>-bOTEjm!AU_T5>|OPou^2}e!>t6H{pJ=nJGML89C1H#?BFqrGmh35T`z?v zCGlwT{6Yv26r@IYh4~U={P$A4w(ep0hi>w4HL-DXz2KLez}Hl(sslkIT;5u8(a-m! z?ZK@l{X9Ipj_-D~1nD-;#Lf);2Wt&_Y6JVNe}f_hlz;@T51=9??eD+YMhc*ZRrr7w zHK0|5D1Qf9)m3n}%2ZJSfsj+VD4axHj%ZmS4fcVS%%k}@U>qde@2y$V0! zDGK-UR?#cEW5#M^=_+J_n-u`0-tzN6!)vCkm0_ z$N#qqoB%nYkQ0^jqK-;fZxyqqQek5-Kf;bszzSihs3w%2_J83CtO2VD;GzH=Bc)Lx zL6r`z^5{vx)(pUXXk+7V$L1lFllE zTwS!f7~R$H9irG3su$5Q!C6XER~cF$VnO=Lf~!V@H;WuD%c^sdMJIDOsbI=uNNG$e zg-jz;WHg9KrYBIjWD%iHprpa21iV{ECT` znE2#K|Db@@_MoO=O66F`i`ZMUsXG1TCYp70t~pO=Y10inIR72*ckeQk0_1AtzPyOMGHD9HC!O&=~7V2r=3} zBJOOYw3JGU=1AI?Z}dD)>to!m=+jOh%s2`=DLyHoI#i=j2|`23Ty}EMh0BaOc2aO@ zl6TYS`KvXY0B>*qi>V=z(N~p00Wxj~_t>#OZ|{J_vzJ)Obl>BLq!+0d!_tv3->xoE zqUy*2WzezxewR)~`bS?3agV(eec3D8$NRFlHkK7h%ciw92g{oBBTk(;Lkx-+R%Eg% zMFkR4np*00_1sBlMaZP(gajtBwCS1MBS?B*s5&CGx}mycVxnktfGHZBp1d<$RFzbj zo~v#yZa@^=nuxUcX!r1oQAjX})RBC9VC?$zi4wbB0m19h!=vW_cE{|ILArNoGi z=K7fI@}P*A+?Je7UR`H;d}WA#e6T+^T@G)a3*3_@Psu0+dGlfbnU9R zSXhAMKyb~OloWogCN$7f3c}O$H1_eDq@cvIC=rzrn6Xz{067Y-qrvRLHwnPVOok9%z+UG_S=Yft>n$dCwcwtMo~w1f1Z)7*<^-1k$@ z#RLSzMFw2jbkg%|dN47>V=FMp$B$n+e#+ylr}z1TenAmwMDG;0ZHVTyM~DX}CNgl} zxr@@|qjAULgWdNAo(hes8)zGn%t6{@0wY;|dVQLbFV;)rCbVr523bx2ZZa7gIY zn{mXn=MRz=!xIwXLxU4&G!~Pa2_2bbrTOA~$Td>uNu>&|RF;#IEdv#DZec;Lst7U< za^)GK^x-BN1L1I`0wGr@7G&k+6f5&{GBcGLPNpJ@P321X906Yh9yx)SPb1x!?YejG z#mk$oA9X3oM9nRZvXI)<4*@n0U-s7Do+eY;?%r!{QGH!zbmjHD{jxN5hu=VdnoFyc z-=3Q1Es7PY5{+70Q&>_UVl!Uk%X%b@#hGQD2!C;TbiC^Gyqw%qI{I#S0uT=QTS3mZ zf!<+G&Om#exMFhYML}~(QFnj)uxj|`jgMR^S4<%>k$c}r-#?d+|9tk2{`up}S0C>$ zKl@H&(nt(C|5pb6r}QV~Gw}=Q$Kng*-Q2=>&+YO2p{Y9y<#SIzj?GO>%#2g$T`W#6 zQpcvN%hls!)n)Go-yr#Q&HWTQ`F)L0QlBGG=2KO}uUhKmtu4#fJ8GViM;LGV?{q!Z zRw=qVVM3(rv#hJ*S}U7dTv4v%Qdsp%RVv=gGUBb*Na5RO?O+XOmm`I3%1>=@9t{>#d zKhP#Q>T8gV@##hLy=S>akg51&qHZ?#r>3QDbZ{VZYUHs{qbcysB4#6ks?zt;*JGnM zrk=i)HrKw-lmFy?>RftTBW;uXWOA4iL2cyyreTS?bf{lYUY%F6Q2XHhgL?zBzXV!Y zYi^{-{8+L?X+1%&L;9 z?5Y}ScWg{-2XAQLSqY*Bi{VeCb+Y&uy|`U_r*^hEpT(2aC731(ofY&u*#T=FRti%oUY%J%8Q%W%i3KQ+hj>Hu-Z{+V+KayQXC2 z9WpAIXdfD=dCAKXGfCM`p8aT;suC49P3Hboavzkx>y_7JOOVeuJ8sZwAtbl3k-Ah^ z*vQRz3hA`VvT6ROf+^0Oa`I$(g+O}0s8wCuR@t${?&;!x>c2CTPyO)hPQA9Zyd=A> zuBAP1Vti(PK>41;nfaB)7~|jV>8|IDOWwVyx-D6$5UQUvP6!@qrD{oC)%*U!S5!tN z@?ho>kDk+psOs{?AT_z4!CofcS2jEuYvsSnRCcPHa)i@AT>4L@4R(~m6^RW77vN2=1z7y98J%H zeAL;(5D!*CyR|ylbq0nzjor*G%x&!~E$z)LtqE3y6Pp~J3HC+?mfH{`3u|K=BP%1Q zR@5;zbGE_bZOryrn{GEUF##?TYi@3AZEOK7sGh04DPg0DiK&wj)Mfy-+~{nrXXQk2 zc6B_Yzj?FE;X`&#R&F5s!xvEn7P(EzRQFFCph*#Mgc@McTd^U5A~vZ}u_=(oi3jKRW6XKx()~7mTDE05L$U<+?Sd1f%^2*W(TV@n~X(Ga%@h z+S=ABQBkQ1 zB1NS4-aAZs?>&SbLg>ANf`}D+7j@a!QkQL6QPl4l-0!*01xd)vWF|8y%pBtMDOSt=Sx$Y6T+tyIQjG=eXy-wNnj~*u zLI5E=JUk{a{$L@&?+V1Y=4DYJQn`}DiZ~>dy7mj$jMB2nU z?b#nt;Nsw5170_KgSUkw`&;-WN5}7N4v&aRO3U|5-fiO?>K&W3H@J>i=3)~R8=Vjn zg+ExlH)q?fAgB@A5geT4=HeV-;j}Bk8M`alXV31Pdv@7`yZN}ehkz4}gAK;Ur646e zD>J}a13wr~o+IDbugh&;z+BGr57`pk}Zr$w}3~843np!5C zEldp!H+fn*S?U=51h2cbr>pZ83tcc2)-eYwRX1ZTeN87jduaQ`AP^d3U}j_E2L7q~ z9u9UcPDYp@8%GxhdxwDFBHnmvc5x{{L2+$EeqCu^dO}=6LPlnsALMs{gO9GR;WiUn z%dl-GKDwrcP-1QbA2QHX!_rb?qqh6)*tTN_6zw{B*ult(tDB>%myfrHo4c2%jg6h7 zgN=ikm$$85cYO;m5ZXA0ig!RpC>wpRr1kZUb<_=WQnWjg1|an>6r}#= z2RKU#V8{e81YZ}xNVJy`r70jyG&}?Kg@H=T4dWQJ^m2oy&}C3kMfFKMa4Mzdmkm-x zuQrHhL-_-`+-S}Gj$p91?<9BOWx;`N+Mfty&3PcApslbvOtOpE;Isu`N zM0XJ+T2yd_X+(fyGRlP;LL%%t3WTs5XubyMkQ)K>=u{MBf!N?r)BuN!>Wg)MMfYL@ zXBhy4Bv@j@#|Cz9qq`BUDTO6TfOXJDi6S4mTN~hr&er_FGCBrNt z)UV>yPw((sCHkRX#oq(Di50-6b#T$-3BAhKvY7MsAN^5tTAM`I&f$dzyNJcu2kg}2)hwhUQrHirbv7M*WWpu)Th4nj8KQL>PSfA z1j1%kmZVa(6>N~+2#u9aQtW-_jpUs}0#70*~X+VHHf^mKkL zfk7sd8mf?*s~2xwJC&DNoOiCEI43)6Y$|PXuJ?R?YRY&~Ve;XlV@sWNePzn_A%sjX zQV|w%%LTNVe@f>NB8$4@BClM}N; zyYn(q)ky;fixQIMscKeEF=+;eP&-+fxe=+1kWS|It?}Xea1`I1{D!EylDN>iy(w8a zJ)>E*6J#4vlsx{t zLXurkc0xcpIz3i3M&Y+evzd72+*~eEl`(ablS}HE9!ec7ZWN@&Mix%B)txWQ8!Q-K zkwwd)dZa(MxGJVBH!ZIHU{VY}Ht%35yAdfNsmbDBvut*AJiC|AeXe_6F>PS@DfrBCY_7}!AR8YxzhZ>4% zGvd=?1%=5CIidTbYJuJMWt1gz@(I}op^v__qBcnwnO~Y#q@oei_C^P#vKYv|q0VflIzmg2f|Vkw+4sQ1>>s^_~+#1#1kq)2tffzD8jEvj@*5q+IwqldFb}EJ^tP) zdC4i^xd+LTf_+I*yyRpyao>)h#nUkgF<%hD+`P8 zci+AX*%=tNV_Vwp$UQkR?y*_E{*jU4`}P$SS0|*GsF|LfsrH-3AEM?TX&Gro~2ETIVZ<>{wC-aMN+ z-F0KVXPq%W&~fGJ+VYY0kLTolS6OntLJ83q9j(2pW(w)?*txUPV-#ZR38>o?3cA0^ z?-Kh~E?&nkU3m4HNo|lew)ZUl-aIj@WKri<*M-tX5t{>szBDQaBsMOcj*!+VS68|Q z9#gK~xc8PVd;ACT3Qzt(hL{#Aje>^?%I7cscz2&pqSDqm0t%D*;1=P*gVnEe0_m|> zKwSTH_VKcOM*8Ub4WxCV{nNw?w(8XM?*xXV@6g4!IKtzJiwI;T93p)YHa@+-cCmlq z$=w%kuAZMe{`t#GKK;q*@oz(?F0XuHTz`F9erN67%E|@h^R>BIrSig~nM=nWJ|Di% z<6n>qg;%8Pv$sZ@uOThmC#wti51nGpYur1W0?)fEy7*#9x%&JRa^dm_Ur8K(LVUQ6 z!?$+Pu3RCmE_V}N-|t|3g)@8R+jUNdNOrF2$&;nCQ=Au1mXQ`^pL&$|V2H3Z+cng5 zNZEDd9j$$GaiVjef3ElV6GZ@&0*82+`itGgJBgeetY{t@AzO_lJ1F_6{CAp&{qci!)g^&q-~CIZuZq|*Wug!%PQgVamgj>;QJ4+&z*aFk@V=w`h(uihbq>k zzI871NC)BB{Po+sH#`Nasl7|kwx$~4Au zN@NRIR1Td@W6=d78e7O`GG#Qbut^T%I$|-6Eo)IQnQZVs;Wg4|^&GyHxs@>%Do1TC zuvj>k#X>rvIUpd`%nA#qlg=)Vww7qtw~eixrIi`c1Ti-7x3;%6w0HJ#ckpx8*Y-2; zG})?WVhTnyUT)s*zV0Sgfvzq(p+*3fj##LQvov=wb+OmS8kmFsjU_~Jz!ptIf`fbw zt&NOq>@g4uXk?*p@H58U-do$=1~eUW8+#K=eJlq2bMzov-rN>V#?ZlP>*#1`Xd>XI z1K5T!3owC3H|#F6@SxzWR#;yL>kwT-do2SDpdy%98e_I@-RT2y1bW&o5LKY3XJw=1 zV`JqAMWPmZ`Wj$U2|}nD#Ku9}p|*{oCGvNz2^O&e+;QSLbJp#xFL; z)&{ypo__Amkx^T{b_O7B_D;S~-DqNE38@Mure<3p!QR;1K-<(zOAp!};cp0g^!7J3 zv^Ov^wYN5Kg>XqTZA*QC2rXA*U0p{ln=MYl5}kp|Q=tP+RAhpZ~45`5$^1zCrKytpT9|GvbOlIXzft)9F0y83LdjEhJP-xanuZdXW9WXwT7DA3xq&E3!3 z&)d&F0&(!#>F*pF>hJ3q=(#m2VwY2(tE*$IQ^0nI{ri%v(?puF%OKPEmqgW%+Vh0wcTQ& z?V_h|X{c?Z11`f35Z!42eoq*8eItFS_tw?bv(a{d51Ffpkxzi389HL(>L1|Y?&lX^ zW9MwL%@Aywd|iEDIRnT5HMMoKgM<}r7i~uyO${p@eO*0_Ap?W`?q;PX5JDT3gJvw?JE_!|we z=hUOEiQlC)bea&=5m5~e=m#xYgr)227%&CpDbfZWLQ)?p%fSWc>$?&M*C@kLP*el9 zgvB?SE7AJW?^8BrfA_y3f}`nos6tT(0Bhq0Zc#Qx8}OiS5YPu$h*WF%|6mX*hkf_d zfm<->*;pPn`QPAP3W_Ie5ZyEd#74CA_P;TF9>LnF$BKW*?dx)U2agKid8 z4oOgm`(4SSKxHYq8ynd7-{?-jd`ONYR{!)J@jzZhSBM@ASpR>@c%gC?9t6lotuaJ( zS9Aq%K{o;m!b;#S>fO4r6jZn}KMXg&mx*=gTpi)De3TfzckQ1qNI+s;J zuF5K;6Nq(uBB6%OsKHZeYQGQ}1RO%CLux8Yis;SKW_tRz_SY8JIl$+ta7WZ#5t1j@A58U33TG(fCB%8sRn+ z+&!+XxS5|_Tu_izmRFFMCQ^1wQgaFm7n%;AJCUAyetw|0i$zK5K}6+)`H^`dLI#eJ zN6cX)qS^$e5byu70Jmef-{HOU#>Wn;Ms1v^p(#1-PMyfXQI zF-I^iJ5WK5C~G;46b;0X_r(MzmPZC}D~}D!mWPLD)@2~O@{4x|Mi!Q`Dyz$BwW)Oj z)D(7aDIqN~cV}Emd{l02lyHzr1WT0AsOsE+(nCTz(w52=Dn}JUMoVS(!luTt^Y}`=ez+qz1$l1oS(yFuKL*(4Ff{1;2Vp>CHQg2*-UPA1_q?FYB z?A)RTCZS>DeTopN94;HW>Dg?aP%IP$1%-x(hwY1sh=|yqo-&-H5GBUOMDLG`h}gR) z91*fAks&EDT}3BVm$T~Ai&CN@424phfP#qAD>J9r>FHABw<;CZx zM?}V_?uytSm714Z7g~^3*)OMbbre*T)zx#UaU=AE;E1T*xq0+#lE44n#41w!j@+2E z_=up$J@tfLJ7d!_D|0GJ8}b8-w*@mokR7Elgvfowos~Png3GglgK~ZR$`bOcy-RjP z#iSi@4~yCDm$NOaksW@}CzPLXFgf3EzbLD0dsax`o&vmouAqWbUKi@&mzKXXcvoOm zNLKRRJ=swe(Xhh>Ne2sd1n!Bcj7{5~nV!FWZ$WtNc7Q|J?XaEx+e3ZHbs;-*5dXZS z=pgUdeHqCf{yyRR^ZmmT5^`&TLW@H7HkM1%>m;o$?Q$Vmz-6(8t$pK@i%J2tzBKS$s%u9}Uj1Ua?5x*^$>{^CUz~!1b0= z_jPwD)pChg-mUCxrz!YUx`5Lxhs-Q_TZ>RC71Cbtg^u#e_s2|=x#*KhS^70&_rm#n^-6Ranjb46s;q2w#KN7i; z4mPX#(eZPGor~>xpH8hJ z-zc~*TmVW^?en^qL>grcIw3i9cy>IQKrW#kzj@~vLCC>>T=}&A4o`Z0`qHW6eNYXH zoE*MMM>sbIxHDtCUS9u&-;Q25hfvpEeYi*Fw&TZy%@q2XQ^@+Gn{RJFd~@shgJ)lE z{Q2k8mCMIIe!Db3+q&}WgJ-wKTF(sq%0KtCQ=tBhHh*Vs;%Muk#X}GNxW;~Wxrs-( zC3?+e4dDjvo}W4YoUOi&92o;E9el?$S^4w{()flnPidu&-Ij7l%PqZ^-ckB4e(hXg zO)V37;%Vu8tGZ>pjXe2q6gPXFbzHzai_qm5*yT(5s`T1}`9o zk6m9GkO@?L=BK-h0@5h&$nb*V@oM9}JGXD$XCsrZ#$R!riZwq%W6iW_zkm1NF4YoW!z;kT43OB<-{MWjqH;T$9Mwi+4kR?5pE}* z*na8AG@JH~+}bYWh#>&8ucv=vW%c5@(_rFw?&|FauUO%XQhdIJ@1;my_up9kgW9`x`j!w%_gb#K zBAk3R{dMY^5=XiGk|7te*ISkzj&>d8Ey@RmyRV;^o)q)CRO<`Z6~A6Mr5L)We9NMc zI6V+mBxbWzq?gZ$iu(xt{>dXv#M4ukuMk+o?vdMgZiiy>JdJaX!+)l}gpj#n5oFr2 zxF7N#a9MkW}HnI)TX9Ed@mNs_QP#p?lqOHA+DdYwkg7jx%g~b|LS{RsH8DWx5Euo3g6n2oCk#x+`E$e4_m> z>^^^A^B_~b?WXoNcIH-ltpWfycVdivb+w^nR7+o5S6dU~YzJPHTeQFc)7o^4mWvID zKc;Zjj$p9PCR$pS`no#CoAtDGEG%7|%zxhG-NVm4 zz|O|T!on}W$==Gw)y7QU6axp)!bHc=(c%|FD>!3!uy*vcba69;VnhcgXVWknjFyG7 zk)N)CnYOW)6R@7KttBMo>05!kX{l|s(-+bA{Mi&bEZw~=4fXwP>>ZsfZ2-E1A)?XB z0_$jP=W1k(vC}kh!I&7@==p;^Ex5#jcjgcO+Oo+QwrvG&u6DXcUQRw(tIg&%mizaH zx&=DyzH_?36k{8=*UjB7Ji;O>Au%!D#Vg3)D=j+3*Du<~E7-#$#ADlqvedv7-;$zo zeEfc|pvb_0m>@@wz)BB4r|sTVfjh||!6E+J{dZTKnJo*9D~JgT-YZN?ijB-F%goLy zEzaBNSK;O7>+0kJ=@`(R>Ffgh;ppfHP~zYK7e~;%9PI5OLxrgE-;i^uMb!9*u9mf- zhn=>ruC9(2Q4`TH(bv{<_x5p1j6UdZ?`dZq8yg%Ln!78|IW{~bIwWjwWJG*oQbb^W zaG+B}e94ZCsPKe+fxCmj9AH;q*uKbpTX*l;8L-teZI926z^JH*5bHf5aNpm1SKxsi zac)k|TVo>pJ>ui`yLozV_sXmA@(kX$KMP`1@-tjhTs=b&C%0IaZB9>490Vi?=?|r>zsl#LvufhrK&?TXIHH{66U7+!g>oJ9ci{;cSHk zD`IzDXBT&EXuvhlgD4ndV;x<6U80t~p01Olj-Cey?hps5s}F6;kSt?iZ)s_Qu|&g8 z;WYw2x3_k%gPLsU?8O`h(qjU`L4ha;f`5T3%8dp@35-Icv;`m`26^!BC`bN>56Sg^ z+W^J?z#kpL8mih)ct#c%`sQ2wf| z&fYj8M3_c}+>(tQm(~BTjiVrfTNLto zz5^bQimxJ5C~_f!(5N^niH?_2C>#Mo=L+d8I+e*K@wh^{luO|AMPxj_j>)D|cwCW4 z!e_FC0)bS-;^TVfaR5#S%5eA1^hR5OZtMM#4iC+D*g2$xL z=r^yF7hheS60#{rRHH~qZnb!9Dl79`d0t6&<(Z7iIvgI?K&-n~G%}$;>Z_(RlQRg! zn%b&5Qh6PbR9bl#hcF0STvfyGwBJv@Cw_YWv9{*Tjazl)b+k&3fPo`J-TKvQ<*)0j zK|o6`Oe#vtO7BZL5Yxv?JTkV_KSmJJW=~8n9`2Y>v0Fzok-X>|)uS1MVdrMdrIk@8|RmXCc3&>RkQ8j4tRA@F*Ht?KUGLgFDNG8 zrZRB!DSYG6p7Zm|^W$@K$2;XLa{AP@E3GSCm+H=|7*#pDQwS3U1*wy>td@gW)w$#< zB1756KT?5|XOQJtvGtt2J|*6S?W_Z3(UGww@iBYDIXfbvcMoUA=d`BDGAP0ZBDCTa zi=v~-vukm?bA@z*goWqCH;Aa*a6-FMl_F!xC_ODX#kixV2|Y;#WjXcPISeJg_h?J` z80t*3q*`boo{%&(l;M=kWf^G|oCYFJ-iZkE2V3hZ>Io&Bn$eYovkP5I{8LMF{iko; zyi#0EES^>LiSx+!8Wdf?V|$8gqUB<#L@W&r4G9T_t6=a(4Gk5CgocG}+zl3T*>K7r zgu*NkjYWJmPaxp4`H;6H4i>>EwYXKxi6z8mNkc+Iq#+?8VWCL-xSBrJ*oD+rM{#GU z)#O}hZFf9FQBXmT+8Yuc6_*ejmzvkqz`(~PB<{~FO2$`~C8>0y2UlYM^8@v^=b^ zBp@)eGP-1USVn9V*p%&{h3?v(O3nAB?g`$$C&()>Dl9TFr^F{9G%X`wSNMV4ppfXW zYJ6Euj9*a5-mtQyefhD;nOVujl`$c#q@2Pksh}k>BN;vgNJV`~WkW?;?B3|?qP*lf zHoi@o*Pm3HCe297OFg3yH+S?5jh}eM6gPDY%wBx<>FXncu<;w=!|O-S9^E*1{LJXo z@~=-0bsgG0l!<$!j4A(JCybLngb zi4R?jvgZCt)!a~%6q4_Hy8AoF`juVdJ;M{TW8ktoG}b!QIed7gTiP`?(B9J2)TC~b zwW<5m&5GUuh|-*x>K|wy>25_jRLWk+aOsmszr1>U<>i{Rv%RAo%yOAR1`NI^JNp&w z)K3%$X>D!#@`cKHbMNp_tMJO?F+@NYPF=o@$9-c^StQXKoz)2EvK%@8GwtT}BmF%s z>l8dy)!W)4lr;)lWi0~cN1{M3kWoq0&)hrnPwOB3`ig}AaN`vj$E4x~j0S}H>y6(Z zJtciYpp%(JlhdVK5pSJG!@U_Huf6&0*zvZ(k>5T&xPSHN>caTs3o+6}Uz@o=zV}gn z{c68b*fels{_=|Y+UINYgqhK+%NNc_8Oqr+1nSr4YrkE+xir0aW%cZZKmK@rZt2E7 z_474K7mdeOylHKdj(zT$eK>RL!s@v*cNUKgs-^wJD{o$pzPt6F@$$4>#X`8f?|7a3 zKc3IurwUtI$C^5a?mRs5X%cA>%)MTap1G$)-XZtcFNT*!I~HHGDb&^y)m_}tUvJ!^-Mn&Q;{I7WfqVMd z#5a6?b(5fP{@3Z(_h9Tu zfy^IiJaOXa&=@k&zA!p<_JnFe*?)eTez~KQ-p_b{^K|oxTk<=TQ*Et1moLl>w+YBh zb?dFwF3MM)fF&J&*7mG@jZbF?Bm$zi?eS>S#DsikSTWQ$d|li*-PTS&)if*o^4mud zNx*4j5BK42oTn}{ajq%24DM0M@z+!l^843gFU8Hrd%;ai!TH2xv8EmzBfesm{{9egF_3PC_-u+*22=#5@QJsgy!~Gz%^qN5Jb#&d%D_s1{lLV zBe)NG2gbnI1nNsMCV@tvnweo-UBRMbtAn|Pji;LrVyI_q=IExY>xnTiG%)ekHHOMm zjERYfub!Qgl^(S}6YfD+NJKJa4IG2Ufn41TO&Dd}$&8nnkcE^WUNCNgw~rLmb4 zoLoCtn(YeN6%dFGu?7;<)YQ>{RJko?T3VaT%{E(F+8APWjPz{m9c=AveC;i;Hrj}; zuDjtjEo%^@z@|pW6rwRes{~h8gDnOI=6XgpdIn&$x<%932`o;WoL#N0tTE=!o&g@f zy?VA@hQ^x>_06Kqz1+;OhW3sgKHe^V4h{kSc8)d{hR)lzI(ys2diY}};6aocKaW?`fUma7JuKN=WlS)15y-Rh%nX7B1{>}+XaXk%);EhsI~FDEH& ztCNedx0|O&)SlfIp@G3cJ9gXe^w~+@pSaK4Yv10i?QV`9+w&?Sx9{|IIQI8|31+CoUu`I0Qz6!=j=SYttps9&T=7Q3s&DF))%{kW2*)}CP-pbP2*1=}mR{O9} zOFv6v4|7v27OZJKjP%{Te79juER0RShF8xU(o-zJT-VhY$}%D16Ju-v_yjXBCc2tX znhdzL$->jh(G*e@EwM06VhUx>kY8hh)zh@o1;-{+D+^5x2(&lQf%;+-NHo>bGO>h| zL^DY3H1jjUn0c5&Y-n~ana!6rw)8GR&NWCOe7Qng>Azz~x=Th<)V{qt{k=S`Z5&*^ z9QF0IwrFU8fsK=`1qR%Q-LVXTt8{gD{YzW3Q zD0o1mV!a5s3U#XC07U%-i0L1wO0}W4!40Ku3rb4p6u8;|7ZhK>_ml{fL+-lgWkyv0HQ-> zD_Y44;@^f`2|I}{3DR5b|3MK7w!}dj`e1t!V9>v!&v4^e@&U9qTK(X8qJbCyd*3My z?tQn3K}$tp5^-bp_u^0#CE4G7O!-hpS_^B0&7;p0o)@G3f1%~34I+SI^l+=bvl){} z#PQ)|hDEC;Gr_2ZNr9#uGOG?we8hAXnZSbjej$xbq7X>T@~mn?ePvwuM`%( zd_31bec?hIQapU?YIP-)=T_%IM`V2kY7qiGocM}c=WZNs6|$N#Q!9B0u9}YE8W3W6 z`6*DMkfW81>Z+24dut?l3zb+}wR+=HVM!Ifs2Wc|s?R>Vd2Otq_U*&+!s5Bi6UV*#KR*w=T5C0o9thh=vR#NN;+moXPR3Dg@W=LwopVoiMw>ISxJWmiMfTg zh57E`iA81e&~kPq9beOsdt*?<%(Y9g8O zO>Gs4h4Haf2TF^#Z%ql0PstC?kJ{gglcx_9q$JLExaMu&_OQfXYxzgD=Nm;4KjYWEGB38WIjuBqC{W7+i}* ze1TLNmWX85;_4J}p&{_N(6CUsSky{S!;h1Xq{QSV9n zXBs%3rtjYy7oD;%H6ezD94IR1)Ylf*mlowD?hM*V+I_H~z6QeW^AeH{Cf5+c6O-cb z`woT&WhRtmRZR5KQli+yC5S!CoLT+NfSXfJCG2cn46ZImzFx1ket$&Fuu^lJNod|I-Uh_ zbFxOT|A)XRW!K=5)d#QXjYCJ4kEsYW0`mF7iLS?G=TkE#XJ@nL`ZDs7`kLwnh$bcz zE9xi+fkrBYuSp7|npQA@o%uWw2fT4v3<47oLdQ-|cOzs}3Y2|~ZEX_+BO`rkun*`S zpC6x?>YN@L?jIYQ=xS263`$7Nol>a)EF^}yl^wlMT0Jl_F)}lL_~?jic5-%cdVXfJt*KU#? z-+%LL_2TNvv8hvM`&X_XTbe#J$QU7#24+XttE5YJmv8kC4|JTpwQza)$jRk1j47?3xbOT{_CGBXZwkwhh6WQWGXy+99g@6cIM>r-QT+TLOEMDFfchk z(%aT7?jgKdUn8+7ICXb>r;;O*PYeyu_Nqtwmo6W>`}EhfPlR93jIRIw{u_d)Je{2y zUS4=~|L%v|*IvIR{rTJK#j!r#t2g+kFFEg?Jo&gvzH|FAjxQc@r@f|edv5d* zpFg-gJ&R1u!#lcF+9DrNOboSuQ=PlKK6&lL>EkC4jZ+!)uUz%9r}s}nlHB;>(DbGI zbXB|JvAByz99NwfUAcevPXgsCa$;un@#5v9hdYHG7f#(+y$5VXqO3DJC&mt+Te*7g z;k{R|;{+;2SkD;6F|U_KqOVjrHn=x zG?^N00|B$Yv$K^cX=#xPp^IL~lZs>v;s3ToGr3KPSj52C%)rzTV*=%kMi>JVa|;V# zG*b}EFdzzHu*N1BBeXIS@Cpl(6+Fz))B%jwWD^xswUT&cH;|LSMtk0Ig(m z)YmdJMC_oAN*8MkM20mp(A0n;IxL(!>tUQRHWr&~ZC#u_>|C8~f$gl#9lQb@Y>f0V zCYHv)OF^~?Ssu1}Cib>FyxqL~9UVPAU3_-#H^AD%skp(ea6>&WthcSV0TyFzVWesA zu-nGK(!mXDVeaYTZLI6+sPApz;N|9wxVgFeId65ez&Kmkc?3B6x*2V^vC**?BJckb2%*u$D>Y}u@_d6QT3p`BYc zX&P-o&-OJvJhj~2-Mw`5U0pnF(T*+qgZW{$4t8FsL5`!7lf5%6WT){DI8a+OHd~m% zi*8K*>EAyZ85sTe?;j1z`Fj8Q=Rb9I$^ZIEPZu@6`PaYy{V%98)YSRsKmW=8;ji#u zcrF^6TBINTx0a^X4?p}s)cR3VQ%my)4UE2prMdafKm6k#e<%I}(S&?=Lj%{Styy6q zvDQj*j+_QDN&~?`Y>^Zyf_`akRIyhSU*j$jQ|A z*2h@bg2)PQXK>rKum#G|!)j`6+5}22fRwSBhAwE#Sga1PtDdH|zAn5WG&XPEvI)CM z8^#!n4NcH`;VoM>Z-SQu-hptCkj?ONzpwOS?0eP(vknCV4opGIEXh!v zM*$i@nd|=pSU^iHfgk|R1RESg1gQ8+trXZs@jZJ%iWVuNEq#DeWYE}9gBEBK17(d0 zNqltFZDa$gP^3d4Ys0}3#U8Xy6G-K|rzYwYgUWTVT?lhPQ3=?Iu;Et<+egWY@*lE- zc_5j=%E&Mg)%tj_B; zYHb0D!J`mpd@hA9lQg3h7c>g3UCM>gX*QEgqkxSAjl*P!IB>$vV}LCvy@sg}a~M=S zQhDb_Np{KYOUG6gk?!{5#mbt>ay*AYK>u+gU~&MiFvR-G+y~>=rWZ?V5E7vXw1KMP zQbK)kR%scjw0fbivb?ycs;mYFGbt7IMR(4gpUW-J&pveOe9_f&g;!1$U8-EIEy&I< zs>%nq$?n*LshJrkGU!>Yy^~9IbP}O@p4dh$&MnMFlnotIb)4bW#L}Yr!CI=SPd+6P zH&jbgq&RY8BXqwHjt!44E-sXxKX&%m@=|x#{Gk@2tb0n`M69}Y1LTHhh+-lUNzEpOaisCqHv~Ma?F66+>`y>ueKI&?pxvng_(Qs#NfL znV#xyleagEg^g^Hyip_-H7gJ~2v>5r0_q8c>Nf$DB??2JKn6l$A?=691!F`hSI&o$ zF%FZ-5kV9fUnmlSg9aB}NGufqZ-s@ScoiHB*u|HC6eg9R!d5uQqm2@}P$(Z5>W@2^ zQJkBZld33=ptp*bs&fw&mlRYHv+9wOLp?*&HMqoNFqZ;3XAi@Ywq1EHS zOrAxiQfewdp(eoFtFElFrV6PpEGsE3DJiKa1EsyRyto`GEiEc7FUn6mkdm66k&=>} z7#ANO-5=en9s;Ma4wC{#0_+IbSUJ}%GM}#OiW+b{^*X5_LlZ$NoQeerPmD{5iHnPg?c1N4oRpk#FgYbX9auj-DK#k}F*PM2J~=%*GdVA} zqPV!c1Y3}wpPrFkkYAi#R8UZqlbxASREV!F$xTa2E-Oke%9ziuJbL!%Xb-XTZ|%*B z#zsX`OItfhxxHuP@;X)4$&)<2czmv(C1KZ>l_f9a6rRc`fR8z@o<^kCHsC8tkiyzp z93(kb6Duog%9&Dd+Jv@Am_Q~Y3`E+lPzagAHYMkn7Khc1)OW;|Zgpp8^H^8^`0$~H#kqyE$H!()oLHWpojE=~H-ET) zc&Kw=cx>iq_fQuEjjPlOWs6EI;o_vN&2lLeMv}j+k?^=zk8iB5AS=g6_ee}8s6k4Q z)fiy@qPk)lu-b11Db1J+?2t+)SLVrh~LKE&2(ggY9&DF2Hy&bBK&pk(# zEIv_&oR=KA);9lf4yR;|d{cIvdw%ZY#gnSm^Wv++{d3DluUuYUK5_HR^ShMw-=F?^ z?c(y>&DG)Nk(tHm_D1H1KiSJ85@qx6r*VWYGUo8u!s6KYvBjf{M@L3xPpKM*C;OHT z4J#L#n1tT8CyfIa&z!y9E|jX(r@9B!Q+>ngt}Z%q`H<=)^}e!y=-9cAC!YjUf8y?Z z8WjB5|A>8;#v{`HIMe##@tym!qihKc7`t}vz38bqJAKrX;_3GsZ_$d4y3I2@4v2r4n`#4;rkn??AzMMFL3`W3SbEC-RF;AKRtf; z?$6Kb--u+ofX898ZuKE|UeB(}pofe>;Y#r$g#PH_m4~u^E}g-m9b&%kV+%XJEDto& zl>O5S%a`A-e}thvMTZKIYI0`0Z)A9AtXI{iQVk4@jZTjpI(lgK@YK@G^uogY?9kw- zy0fLTe_*VCY`nK$-P1n_q1Bx&9lgrFzMejH8@LN~D;rxB5KY?L-qO{jY;J98Lt0=$ zYomllVnXvbq@PmoL=y59S^Kb#N8Y}8_-2i?w)PcI`1bnM%O}4h?_MKc2>35+INYCa z{(SN0^WWYR$=`4Ug!K8_moG&4o+3~vR2q?rBaz@S2%7a$TrhtE-GND)|5P?Mzr>#lCqcf;H9!*UBLZ^2Rbt~YTmyi14 z)9DPbE{5`y?V`q!i^T}Jvij6yf18ZOkqFp){0BUBoz51^dc)nZgOb0mcwo-*iolbT>n>mX5KT4xCXM7=h4Y4g!;&fv%scg9V(a>bv-P z>-+35^>H)tHwPbmEgeH+T>t=(X*4yqIBMwYm|EIdLfX8U(GHBO9vFpcBaW6%UZzgo zj$0tx9%}%EsRyUyP$u?^xq+#<8P>_n8vHBm%`Ei6P{PsO+0x3&(cTQ}8sO|~VC)iL zfzh#YbjXcyv+&Z_cX9_^1#KL3b9C|D6=`p7X=l9E&eGixyf)p9JiwFG&B4l4-_!*< zn_R%V)WQT3DiGi>8+|`RGpwh-bD+0}YlXS{RwwLsw>{1-dgdBNwgC_mZmVZwwbM;g z!%oA}*i_rvK*Iv)@u!~*e*u$DEY@u2CQBzXTU{e)<1#X{vhWSS+E+w)TU(k1VogBC zaddF@w)Jr|hZa2-cTg&!#uNk5bSObXxP*c6k3arsXz(wfsDJ)|5`dPLhUO2N01KM| z4}cDcTae_OUp8&t1nw~Kvl(vSdIQHaegS;g{P(~A|^(HfO>@SFvp|DMK>#!|!f50*pO|sO{HH2pmBM1-& z0@3n1I@$)1UJ0KtEgkq280y;VVQc7=20#Xgv8%4CtU}}8ppdVAJB}o54hai#^9c{w zw$&9roX}*s39G4XqXC_9@BuY5u>jFgU&}}n^<05b5vYzeGI8_;$<@Ke4rtO6YhpeM zbamu=c^n8`pl3+{UPLgF3rIt(|KU4206hRy00yBQZ{SXek`)tebwim3#i|YX*a)2m zB14t04dc$*R+ugZ^g?B^8fNw1HbgEo2nZhk_YEikAqv(E4RkOO|Ao4e001)U-hS`% zf|d@JeODBe= zR*~CdB@=lor6mM1qrL(DQ_;vABB7|HqWt3d8`GEXT&*pyA=Otk5dOf`K-FY%VQEQe zWzEIq^t{Z>l9IggDtZM46t|N6yv)MYyzWEC&aPyqU#~v<_~QLrl~-1-l-;VRtjZaQ z&n_&?KQ`5pcTBD9IFyYHGFuwtirbP-3Q{lS;%aM~yK0C`1ji7ohZ-mQx;jY{tW0j_ za5tO@E-s#3S;;?>yKwIM`KxEnEYDvY=l4%7kJA;c0!b}L%xjS`f5UU~aANi7?2$fM z>*VO%NKfDF%53Z8Sa09h=#hSfxMOsnyM1Z-@a$My0GQYiJCZ(;ZzPggap=A-PtIP7ritB3e2(7B-5+@RphsP&-CR?E)s8ijYTTqKY z23Af5na<_SCFCYorjdxHg^=s6QV_EdIV~wSEib!-#S^ylO=lI9S5?;|2$@1-^JGG< zNGO75A>dN*6bb~8)DY14k&4Qiit^%u!tw&3pOTs?LOq^9Lf~7Zola-g2n3|cLnVNPmAuBumU}}0+YGQQE!SvLe{Nl2*vaHPX+(K|9 z$t^FcFDnKYN}#dg;{4(Q2#H9`E2%2Y0?jKwuec;DH8-cQfmmIED=y0_D#$CzD{H7L zEdFbDeo|fmxZ`9Kb4vdK39i*m9G1hvfi`r>*@=ko_ACI`CIJw0k=JDNNT z0##?1TCM8t>FOPszR!@htA&J{gMAVX0m;qFOU+16fPs*zhKhzVa2P2pt;nu~Hw6(- zsDY|q4(v36R9|0KUjZNFGK43hN;sduf{w-(lh_hoORs>*l5rdP3XWVoIj5YTnC~5J zZ}0AH=XSTSh`3fU?bSzid)IJ}dQc6@!5q|?PESn821X7o4G&FCE-uY34^H*>4tMt) zI;m2Dn_W*^TNkIjgA1ky5}vf3C+Cp}$b;Y3a8K@Ey7>-yd!2L%dCOsd%ZZS~6UzYY znQRi3iC=&9{QSe;uM=?u5tGD~uk$$oR(#YKTf({ZkS=5}qyiG1t6;Y^$%JGai^lj$ zeEja^w?{bS4e|Mh*KeO9YoEU0Uyos_ zM9|s9>XV(C=#&n~278X2{_WEH=Z|iU{khCvxc%FuKOWt=b@lP18Z4by6K5}6JFOb;X>aF(VZU0zddHAb+0x08E+zB;&7L}ad}`+S((L^8BgdysoVjvh zer9Un#EAUNsml+ZoIQH!%)QIMt{ywJIN!f?bO_4sp3~P_@qel~ihg8?dx}av-23Ei z%m2^QdqB03py{G-?%Q|XyL->sZJV4#&N(`_yL)=_?#$lVnL9h(?zWA|ISCN4lmkKt zlu$qkgg^pGu8}H*ej!_UQWEr}v465ANK$0b1uR z5`_`H^8$$a?u)md-adQ${@uq9PhLKJdhOwXk(+m~-MaPo#fwMJou2|` z-}!jw@w2=4U%b3~|Iuwsg?RDs*}JDN-g7^(I3GT|x&P+=h4ZH#K7Gn#BP~QBXN%Px z-PR`@8P`tNY50r_SI#f=wKY^Ojd7Jta*=X!cIo7;Hv$P5G>gqXI5avncVK>MZg%0o zfvLIa;epW+8vszht+%(w++{U&=(W1`Hj~wA>^Apx+iVW2xudfSP^o`>(C+ARbaiz0 z_7C(=I0lCY2L^hF1_!NreOG&@wM$R>9?eEp8)4M-_jKA!YTzh!o7~V25goqLG{!cS zRx4AP40;VT(8?Cz966#p@C74jWb%d0BDf#9h+38@6#j#{Z`mLVfVpl*@rFw<10GRUObR;yJHJAky!puwaN=|5>OAt9OK?e6QD z=;4jjeN@q?%tvVzsc4vG@P((Np9_;HM5gEVr`^2vT!nc3>t6%+QXJm9@OiEJRrmz0( z+a&U-2?;x5Lqa!gk51gWDRC2ckD$nuP0^daj3mp}$f&@WxTK&h5x((3VG)TtzYPCf zQb=@2T&&NZzx$sdp?}&O8IXd}@)++BL<#iq3W$vKrg%hn?Vv<@1IoF0|1lyGbGt(! z985@xNdD^I5`AOigWN)c{k+4s1%ND}_yGcfsQ^)dPu3T63Xz-%NI}9QfCbd|xCIyi zO3K~+fBX;DKmR|@|NWo;*@^93?i1p^t_XB-a!<{IG|&Y&3L-Qw7q>WP=Z!8dP8&Bm zZ*+3nxWUQEo3a7m$k}Q;spnkyH9X9v~62FJMV@VY?9!(Rt%$upfm29Pdx!2v4t{sV{fzr7NHa zu$ha83lNBln+uSSw+~yx{ zSje4Rvlp~>I6gda2mwTSkp!BXiyQeK0R;iQkgOB=2)5ydnFM&)l|)`7!1Q$S#Ha~U zNl76A7_N{3pLm-*{YNeMG1+7smd;FSkNvO+f|BqS#!M1w0N1;K&AI6TOC1ihf7=1ILE zDG)?Be_gEvS4el55Rd#LG=#(_{|9ocGg+kIjtx3$-EBphuXIqq)q=MAMa}rn*&*wo ziZnK{YW@Y#s*0r9NMJ*n#$47pCi3R`J?qLqXzs8!$Oy@dl96@B3QGZb)oIuF3+Sj3 z`@n`I@pIkhx{*3g{m9RNCM`QX|9JjLcWTCJ;r^n`J%w3AS^4{D)RNqSVkWn~x>U$u z5o{X0v@oYOC+%eMZcC4BAfu#$PZaa%7+fG$^QzElXLBSxI+tC~=QQ)6&=N7(906A$ zq_^nA{3d>LxlmA7&TFo&Z$VHQyV7wyuizN<#-e?HCBdK;_Lmft)-m}UlvqeHW7jjw zuTaa%atco$?7uNTT|}*^ttOZi4JXmic4lOTSURynXrf~nv?BeRN6Bn)&oH%o0 z{>19_hsW$ohsS#Qdo67?6l*4{N$2Puo*U^mIfe)42L=Z*Jjl>DJvreRn4Vslmw$Bh z_e``)VHq)x3@j*>Z5loZHzvQ0pjPBGGjj=EVP#cQMRrM*ieptGKEz6;&SkXeBt4Qo z?KGX=!mA#vmOB*X#>IiI(dFggeO)70p#>5?INo~cH+QSn@ z2NXp64?9dVcWKoeOncz+X(f51ZPOD2T|IflM~g6FyHy9X3(+cPGh2nNW`$TF!=Gz* z6%W7wm2XR%sAJEr)LjFU_U3BSuwK?`>oZZA(^;K@v6VT;xFhxZAAj8ID6OPX%Z^S? z73O7PNVvA{|ctktCGH$Wuu-P@`mF0Et zwjntQnlL_5TU$vluc)cR)^VCvG3abrbE8<;D%VOH*i8-aISR=*77?$uvYcK;D=W=P z&q&QJC@ZQc&(AF^DJUz&ptZcBl5$+hL)7BlEU+s%IXPKn)N&9>oT`elDn?BmQNzZ3 zVLF=-aKRU`SOk|~^Q%f|HFZoD=%Sj+iZU9lvZSoEq@;pI15<=?X}NoI%Im5sYN*uW z!m`@Z!fFnkN~`AxgiTE{UPT4Y(K@8nmR1QGn_EOum=1X21||b@iuug)a#{_os*+Vj zFUrX%$OVY01TLpm0^bx>5+Y7Xad|qCmQz%im7kNJTacNVk+rV~_`5VaH7z@*ys(DF z>YGT+mPo!s>U zwS-n)zAwKNTq#jkTUtI9__@CKtpV1lb8b2w? z1K|^VkxhyguAm9lCrkTiM^~$|N!KD5wly-I3L8Fuxca6+sdrd)!-zKMnLIvY8yhgR z_D_!X4-Go{hvs@`Ca3zlI=gzzQ#Ql+tPOGaosA}gqM=RO+-hkz8uj8cuL;I0)`y?Y z-{BCAZ0@Zlo>V1MiXo^&u7_SI;eBcpG_dI}o}74b<_@nx)y9*yGL@~MtQrZ{V>(0d z5S?&o10N}_JcUrv*v#fLcuel6*OzbIdw=CE@8ySwk3L*@|LWPDch4SOWqf?{y77&! zm2=t7U>p$$`X(KRM@~GM88ORyh8@KC^5vD|qbq9);kzfVU%%r#d+_|}!>13QeI!18{&4U9{TJ`wpL}rp)Pco=2RaUqBLCTrYTGf; zXS5iGM(5AZkB&@?9U5P|c5(Iixl=bD+|(R%%yq74B**XGIC1;J-IbNag`t6=>8bsv ziS{1tA)C}}X=>7%8;J(#jOqNGO(L6XQQx8uPIn)$pPsy-HQCLE7Y57$={ouP&gG}C z-rXh6^Y8X{$w#lQUTW#m-W|TMblYZGbKDsv7FK4ie>^vLX!PcTE4PlV-2TAeiov9{ z2;o(_cjCd_+c$18_%G>K&tAQ7>EYd5#I;Muj$A!{_R))f{-hk8YLn`E=r{my+N-sb~ubWO}ou(v6}lFy_Oz( zcb~)2+i&YJ+X-90L1i#OBx>!onDhp%(P&fyl#slu22tT!sf^d6Gl0_6sHAdDhgu0n zsa0<>JBx?PO(x7^@IT) zB#lw2(5Q4qTaOx3R){8rd3e_s@cJ`lc9yn+Hl zf+NvVrl84A`6j?`b5iU!REz;A%rHxg;uq=%$|Vrip&(Rc&>RH@A(IeIXTYCOpqdC$ zWET|_8x`ae6b1Zt%q{8oxre8AUn5y?SYkY5o+f$|9MCqI~jpkoRRq-=(Z#DlVF zYuq`y^Y9i^L(_m^8XZ%a%`+T^?Q z+Z|u;{Q5tBzjgDbZ-2Ep><@qVjZd7nn`;!tt04velK?`!0>WZ33m|D*Qp%>y$x+c? z@AQvKjMx+&j)s0rOq5?_bZ9d20X8K??MRAEPIip~eX}V!ep`Y^EaX_5( z7?BVWl@y)w<@T?4CMW&=%WraEg=!{5h0-wK>-m#UjCE_J(5ON{o63yF>igii&PZF7dSwS48moF$Az!NM(iYQ$-eBt8k=IVrn-2iah zoIS82H|W^BJXr38hqE&PiYM;CbA5m+{6Pl-dH@Xr8k3?ye^{`+u z$Mt7G7Udq4doj- zDs7h3vXS?atPq)iK{7!cuqCA4tZrSb_lr6anLUri$h$~NXb2z#6WD-CeoDtSpA!RB%3rS<3svjx(|x~fJd!4o(01uZ}+ z9BBoeQO9Hmss#Kxg3he9PGlBU6Vm>5ZVie{CRn>#7BVWp6&2(a zOqHL^LI1muRz$r}UtY;Tk-GnAc419^W_A{ES87^XdU{!9!GVJOxdK*p_2tQl$%B)n zMQ6^;&)XMHT-<+hZvV-V18b))Ru)q8N4uzon&YEQZPFQg$M{??{wmNE^Tfd6ODhYL zgR|=44rBlF;bGlq*YuiVVnjEk?HZn)K6v!_{K0c4(q|_Zy2gqw78Ro?EH9^)T%%Eo zijOZW9~z%OGHaO_TwYpO7?@Z*eRX+oZhUs2-`+dm&g~$W@jj`nD)<1(rlKtJdJ=!t36vw zqt%w4zj&T@|KWwpcb`0e^yKMJ4_>~i=df4;fq)BpSCf>GwZP;hhbskg3Z=1Kr_?IJ zi0G7xCgN>pYm*cTjhZrUO-rY45P99*hn6OKO{@FQomx11^yHbN$7lK_#|;j}h}}Ha zw_jFJG%|bO;M(D}B^*Gx#YL5Qd#7g#)61#lP?MDtOei>c01;sJP-C>Vh(!%Tq8U20 z+LDTDT1iP>MMZH@Elhm^QDZHgjmd3vq>Jzxn9N$9ppM3C*0joHGSn|zLcoD$6id{i zQm?BmDak3Lf*UC+0V=AiEUT-kttlv^7S$9K6%^-}&`RoyE31oXY!)yJNxGDm7S~j= z@EuTASV$CC)R$JUD`^!)`5#znEgDxb>37G;j@1z)k$0G!2w5r7|yjljmvYt^x ztFEOHbv4!HHDHKnwe-sJin8)N8cS+XiYjZXE5L~rS28(*iri9aT7Fp>jiA?6mod0i z8QCSd#ig_gCbkXkCoMZ8n<&i7NlzuQ*Pfi*jKWNevP((XQ^XSO9c}#-|rouD)v&3RJ@Ls%oMUsT?%$ zM43f-b=5_c#ne&;k5QeQPjH$la%zj~kZM_)Q<0yYN$}dZyccXKgNb_uN#-NHc9%e{w8!Lt`npFC@Y22R)AtLU{lW=6ECzLqvi&#<*! z+iy1Y^mdQhlo}u}uroHtfK{(F*rjb6nO3EfSgaZr-_Z^TpZAmrvgVa&3A!ue{EE_14il zadUb8(Tm0XQ$w<@bHwVon-{OItX`WseQ4#}=Uc~SuHU@>;>gEK$DUuf_w3cP_wOIS z`0)87@!;X@kq7KI@NO_UaBMMNOPYD?_qQHBy>|KCjmhP{V<*qe&X3Qo-Z(OQ=-`=! zgR_fE)BR^2Jh*uN`k6-rbE)mLZsF?j3F5)k%Rk*ZIezHS!I5Fh{Mgb6abTivd~S7N zZQ@#kY32OA$*Hwdca9ymBew9=@adBu9=(3Se#_uoI5(*3U2}{*u&nL>>DBf5`Jz6JwuT&XTTB2@Db-4_6AC@bYPC_Vku%>pEGAQ{rc>RZY3y9; zA72=>j;$S->S;d&tatjst%uJa-a9;Rc)oo5_=jg#ubzK0#^yYE`QrJ9*B_rU8bz#z z286u6dn;lqS~VJt7TBe)yKfL*k(U0!@rlWWsmY14F=E;=;ONnrEM0no%G9CL^_Z=e ziRr1HzP@g|%?@^JWUQ~xIy~0fJu5}FiBZ7W2ZN{w7)P-q10o#o)H!}t5Izp9O~#c*wIAjG+3+_i_K!|P@CFS0Of{ulfjI`S=X*7VeXy=9v-Oaqy)*O zG)lyBxj?3nw6$m&#R8s~&mdSL4JIroG#VDK+1AsgBQsC18j=(*WaXkl>)ukmtX(#8{~0& zL_`5AZHWc&iXkxcD>^PdDK;p2N8*>i+`9S8Eh(YNkuk|}DGA}Rf$?7lB*aIhgoOno zx*;JYDsoGddu;Tkq!{;j6x%3q(b!J{LEsV%XG>IaTw==RU;T1Z^6yi=+4=1@*jy0l z5FQhguq`e&261T#J44)k5_W8fOZ-zZ*sHLJxWw&5SYkv(2&z_}FduS)v`+|<4`Kqo zjNSef95ZoWMkmBTC72SB5dBs1rWlv#fZ(mkiTTkdOfX3WhNyQq(W%v!6Wt~d_1_Io`!k{WV zfjz*;xPqp^(G8vjn}CGO-OG<0&F$gk4B8Ky272*^B?#h4RQ!H;4iZn`2nxV(bI8y< zfk_bN4}m4<5AaDOJOLf#g(twX1M3c+?d|W2YzMy(a6$oKocz3TI{1RR@`Lt{Toiy0 z2Rc>+)-xy&%>(ip0G4lQpl=`;79TVeupOL5i2j2aD0q7X8?J~t1_xG6Iz(<@HBjEy z6J)9m*c)77anW0qwsrjHuXp}3;ol>D{IDLtG+;bW&tPvaUy2XxWf72=MnuMi_=W{w zSG)n-T-`iKtU_kAlVFBXt0egvQUf-F8|!11YoYTZA0>GkF771%=l`twVgcST5bD5! zc8r85HS2I@J@bK&rC4=cczE(>ibVpDgE+r`42XvHs0L1+F5J1Wj4* z&tN65h*pukuOR!!tRsif{mtCHcRZ7p@&l;yzqQzU zGzw}Bz6Wt6*VZ6AJhQxs#pb~$URqIGMbvX^>Bak*n15I=Zi1SOsAa+cUR9A-QA5k* z^Qxf*?yS9p6QIVHPBbYEo)YqbYU0=toYNQG3>sds3S!Fhrmesv4m0ekuUrtTU zF3h8qWdTDKWnDR*Sy)<7n72DMb!BhbWY1s;HSYvQ9As7IRbN_~I&^p@KZAODadKdG zscd;^a%_C?;L4>#CvMdhjEo#2_{w^oth0Uc;?XOMqk|d-#K-o@DS@+%jsmbXax930u3s&^@j+^{t#99a_4!GBkB+aQyhx z;Ugsz3q!X4_RfBFktQAC3!UwbvDvX!w!&zw+)F1a^E0X>qAEhz+#+m{Dhyq`ydtVW zy*o2gjtKs0HLxB}Ds6ykMbRv8Y^kCXVx@>d6iBT`S)-wWr_#&RlJ7A$s7+E@I$K;r zuPm-Cp%D=5@OtcK4Yj#l*DJ0)A{dm?ihH#t7}VZ%IkrBsC5i}GndVUak!}&H718%M=xR26xUQW^1#HDS5Yge`Bl84 ze5ew!-a1A(yN=$}fY1%DOv1)K%FGT!2fS4Xt8SHW8G<_O0iDW%Ac|Gdz$XyvS5sL| ziW}**UQt!WZIwY5GIw}jq_4-`-{05Q zYw7ATb(qba;5IBhy>{qodaQsej)CE^>BS>!XRfn#L;DYE9}lWTH8r&Sf@(oUW?@lY zDXX!nEIk83{blL(IXT${rPYPS#g!EVik+rLzM_%MdHYEyYT**Z2ZAHVm>{+YxV2d= zY;7^Aq&z8$CsH!59zV^z{Pxj>GfE4x54DOGv&CWS6$-n$Ed9eaZIj;G-ftOf?`nRm zf}RXH366HVMq^Nzpp)Uq6%vLGi3MHVrq3K(56X)4uo|G?WQvmLN;x>MIe6v~3{>*OSu;>kf z7w_&rx&IT|0MG8;c=FRT)}3o7Z{Iq9^W@#jciu2LSC2l|v~?-FyG9P2e0BZv?JMUd z+k3}}a~JMjxO(~;ac*?s;`K{U&!0Q;{=VSmXYSMYckbMO@rlKH4Z!k{xcUC*a={d=7Ii%We6PCPhzYHa-C!;7cSp1E=A!i@_v`wv}z`0)Jg z6DL1C;y&EJa_m5N_ssm2^JlLvEFL{HF*J8{dbn@yD6xETYS3&M?^`>!dg|ip?9%Eg z$dAdhC+GX-PTgHNclxI{w=X{Y{P5I;r>E{cy!ie-_uhwBx9+T-xxQjN#r*u?{*4JWO{X0-t@4^(5;fHTlJ={!MU+x z7uFVK!)r??d!)~Fr-#%Wg@{9Eb5*9LPph+c@9IDA08Q*?H?NH9U2=P zowA$lgHVGFIC_T%EPY*u4rM1Wjm_H8)!VLZZe@_4eLjtEso21Q%9^R^Dc? zcH7_@L#~F!*sku-Ky_wp!;#u=G527M*TA5qqaBZ!q-L#5r?GXIjf5PBqe9eXmm-QA z+=p6klo{KM-R+QVn)~hTHj~cW+iwQa8t?74V!*bsTPsnt0JeY&HEX(nRiyCpXcR3P ztx2ynYqU)&wMim}Ku#=Xvp+FEb46lY6t|ALUu7Q}s$8Z;8F z$m9x@MrY{k=^vh4DB(yn8e**<>NulbD$!UB5VXnK>|<)Bh$|2@N+FpLG$3-esTpXB z@bV4uL-X9%%PV;k1wCh1?>LHQ0CY&u&bT9M%iS*^CN{(`zzal+S5#CiB{n4`B^;S> zkm-1Ok}{Y;&w!|qP#Yf~Nhv`fR+5vFc7FZK&0D_-p~NR_ z4MB{ae<*UHzuxlorbx_1ii#j$R7u*tbu%R?A~=3?%C?lSpyUY5T=t2M4}w50!rgl_ zhH-_vg~dh2$GOLXBk({u>Wb#S6RK~wu&B^zkBFGW?ceU)ylv~|uYbRNQ(R~wF|HRmsJPq07QXi zE7(6gIy5R2foDNvw0o#u*ydn_>iGv?JXSEpHzWkBPeFa^gZOI*1_2DCpecgyDLjUV zPl<_-M?5(hVi6gF*+uZ@AX+;rGBo`6p-4;f2PBG!4v&sVNr;VwxGiy8V(g#ewqhCtJ} zyEv0iadGo<+TaY%#Rmun)DC1^Kr^6Bz?-W4BGBb94{l}Of9IGIbd;$PV0RR1v;o$Ct&ojU~z}p=%I&2AWSpb~C0k%;6tSe*J z>TyGhiwPGg9^{j;;_K`Oev|nFOk92eVq`t9n@m^3b%@bOO&U}`xVes3NH5PX>WsJ? z!leNh3)q-G;1fh9U{Wzjq_nQ%ARRVz43tXO&nShcE2rUK7C>=X;SafoCa92x)s@3R zQb4PwX68>8)R&e(^1ttgq5`8O%_wU%6sFDO&&|uN zs43;;*QXBCph76E;R?7ic69^11N9^clU*Yfh+s+(<>aGaqcKaeVbiWHrWUZPt1-Kk z0f`ums3himFNu9zUMCt2}>C_E2i-VCF8f zUI}ejCUVHKN-|2QM-J^@nLfHu>{xJ&9XNVnt$$>G|I(?WCl4LGOr6(Hs(RZOx(D@R zeZwWU)=nRoF*jO=2+Q*2GxmwOj1g{!Qs3WyqPssWHP@s`OV8?R+h?(lq@G1Z^V zm8}+0hqf8gAeLRy+p}!$K@vgfg_6P3C#Pq}`v+PjZ8MqaUBu!`l)_r>(88>3ba6$|(=DP6PrT}!L|(VWq0>~HJyU&} zXrNzpOb*qHXu?J@x39I|Oq?7O*74e#9X6w+0q)*P1h-2tHFa!de8B3+D9FyAOWnIS zZGV3rwWzEx2ZR}N0YM|M>gt&+_-A-*K#9td!jeir0}i96s-_s?sQjGF)b#xN;_^af zJ*}PxeId7@nq5)DBx<1vtFC8*m1|K*BSh}e~tI1_8D=?&0# zQL8w0w5qbI^766@_(3We6_}M=1wj{tRmH`{g;{xd7}`XIrv;W12*!XcYpP0X%F1i$ zRT#+Cz-`7DuV&CPOm&lhTSxVWRt<(8ZdC)T9dtUE3O1>lZT?eC^NT|&aTYP$jmLw&B~&uXBXw~&Cbd%t}e(eg5w0%u*`hWkh!J# zm7L1*B5FxaUTI++y{<3^r%77+o*&Z+3vgcLjN`_}X-FJ+-c-i9r~R5>lwr z%x^$82!r+dC6~?;n$Xte3Q>tQw|s2Sz`D$7M!J*q{`1BMckVpk5ue239v!#^snR;q z(<2qCI=hG3B?h>t6y36Zv6+5DV%Bx4Izgaxsgylpsaz`-DYeYjxq%U*T+s(>iwWhL zvO(NT$XH5*t?4`EZJpi9_BM-*_d%^AXM2hnw`ELaa|5462pU>i-f9GmlBT8)H(wD< zQ8T~!lYsj~K>z9fNx&x@J&1l3@#r6ZdiT@$$L||X{dDEQn|Gg{o;&v7@%`I3@7})j zkvKE6*0;8Ja$CqcAwrps5cIwd4OXqKobsRi8I(@2dZDG>d?{Hk6J#qBb@zVsx=X_$He)abHqbHAk zI<|7+9gB{nG1~=#I6Z&m_{Hb!d(ZD)ySaaQe15_-FnRjQrTK&NGYiM353U`u>pI4k zrgeHtpSrKFl|DT3X=runkg8|MYGdDh#<>hm>ix{YMWL3VXl)Zto0g`8cUD^%{OQHp zmu78U14EMtKpPmxSJbtaFW)|YD`?{Jpz!0cKi}p^n-wi0byp7*i{>8dkPT>gWOx|( z#AGoWbO!V2%z(pYHg#zgQpi%_WLNd5^@<*|w$t7XLrRaqX6UpNmM*iktEUg@+L^_f z*_rX#x%r8eqf^rhld~gz4txLb@X&zS+-J9e!5g#m_ZiLo7L(b~*$xiGV$qpw#@^wf zPMsF~pGK$EB1gT|pljCwohac~fm%$a#8sn4Z7}P)z(kq{jf0&wtIeqG?J{>6m4r?K zdc_P!z1d(wB1fB1-42Bo0#%f{7DET9MaVKcl&yNX8p)C}nWR~)X~85~eS2%Os0pFl zO-(&8>B(UXlq*bf_)MBbvSxmxj0<8=DU=)J60u4NURG-AY{&Bz3Q;qXE|e;TRM8?6 zHi^+$YL>7+e0=wkE|LShOJzoI-3pP$ZfY}XyR3u#Qn|R<(I#t!h*GU?(;ygACK0zt zF!CNQm{z1UDip2YoJp9XHJG|Aw!u++{1vrgIh%Toq5?-dpu zoERUI6zIEyRPU1#9_aJKfm4v#7VPKc548y@A%Ay@d%Pd?VjiS>CKSRjpp{?{DIQ*7 z0l~O02yOBJG>JXjy`i=7^$J8qhGH5R#}g?{xt#szWp5rB!yu* zaByr)%2&~w6O$2I7af)O>!>YJ@qhdS0h|*V6dn~F8jt=ya=p;^_i^`i-QX4w6c8C3 z5x)(dmAKf*@J+E%;gLQFs*4E>4NpX%_vWaGKZpJHufN&(ZA#pZfQW>oAeZnkch3kX zC-nT0lZR1Cp^%(~0~;ds0gM*d8q(~7WWB`XZ}KaPvy02ie)FfSKkVH6!|tqY+rRo{ z%2!`+ONrj|UF>(saew~y+h4~-N5Maykdm+^A?knrJ`Svqe@J9>WRNGi`oJj2Ne_;V z3WgYO!-g-MkuC7W7r`*c1C_w`vT@_a4Y&glZcd~h#%bdhtc}DMNC^Oe0;a^($q8C6 zEVIGM6T}BFF~~T0NrF5)oSoc|uua-%pcO+z8NiAM4zxgjI7N_F2C4+HWo~ZHPVkzz zxV!l}dwP=o8?ZBOST)!f;1*Y(0C(4oF8DOCCKuO@z>g4oc@Wq+S7&c8#2Yx1%m=s@ zKm-cK%iZ7IkK|U|-5|(<<_ty^_^G^HA)z8M4TzoqY=M-Zc{_t$@x-YCGm9rYGypv? z*^tNw0p!HGm?#44({FycSqo@Co5eKqdfAgLN4gFbu?O z;A(uJ8zbo%a5Y{DiOKO^6rffwK!D`%tjkehG=5 z@d(#Qi3L^(iHZnl0tO*7*%|;ANGTW@+)QGW30!`*zK~gMOkAKMBV}MP|Wo zJUJP4mAUzad-j!4vkNm*_YUOer4DQN^z=?=?9R&0$*(R!Xs$pZEvw$02N8cAzqoXE z>R5eMWnFIGeCKiz8qpf6PqFE6K{r&M!K2@$gvx3F;4f za|>;4dw1Ct12g&Ag=JZp<>eWf)ra<%Ex?_crCL4EmtDBBI@I4gxw2e#aCzy_F`GeZ z8d$i|)2~~YoH&2v;9~w%0P}lqq^TS6@pE!GBEo=YE zfdT!2(Z0F9gNFxt`Yi`W`p2h?ttQLD!0e1^aAg0CUIU{%H7m8GxU!h|>)+GZ-&GSP zqh9CO-(11vvukU(Or~1VSd>vC(}_Dq+SHiaH&a})a^lpeSkY(9?C)rs$P#xWoJXJD zJTz*Yp7>#)KYee1yGA4$l(li$Etmqts;X|3i{Pwhb}460-hXiU@S&9>t4EKYJag&t z<;z!Z+`N7B#?5P&uMk(SU%z?l_T78;A3T2i=*hEZ&!0Yj{_6Ez8n4sQC2u!1v+G-A zO;S~-d0>rN1I7h^W*bGwW#A#xj$Y5?3KgyJomAH{*ep6id0BL%-IWzrS5nJMsI~Qs zS~jzeR$N|=EV}}@wHWoZ!rj?fdDMbZj2dF{C47RzZ(wr}|3KQQ*aE&tCSd`^up7t# zym}5M6Dl|Yh`iXfeArw#oF-(I^N?S~!>P)v;M52!%PPpNz>tFIMQSaEJe5>45mAnS z@w##rox`q2FQQIJfIqEohKJyF>9%y5 zI=j2Ox~)iJBZ(I4x-zV%2LaFHQ?v7n%PVKE|McuNU5}Q%owM3ZFRdvlrqfGGDrXDk zejHv{=pD*GQw6GsM^qEa_GYX!!gR;Z_0;UvE?B6g+lk2kZf0C?yTj1`h9& zOw#c2hUmkkr*sBS)S~Z}$-Bh%)wPaZc8dmGYr9DL=EbL0ji{9)`f&D*s2%Z#y54pU zN7kcnmI@o8kCF1#{j*lN)THIBJ7IiLgU%s@9D%aKr~(ty22GE`qCS0I)~0FZwJ3Q4 z=xMl2F7t_i%WUAa5e-6S)58zXpM8Gc#>U9ko45IlH<#{x5{X*Svu={|Si)!5M9(hV zc+FV8@!}$r@%hp9qergZyTrKu)0I0fmIix=7au)8uz2{zor|yUKD)(!b9DdZyTsbn z7tcRGe(>tq;>imqPE6mqdj6G!xO!RA!g%!H-sL+tS#R&-_bNgNXw#PcbeWI&qJ4;M%d%r!EREKYf4Y{b%N@Cp^}NI~NWe zczyoz!PRre_8*@cpE|L+b{^e_m1g_W`3pxT#;2yIXVBX@yt0CUt82%PuC5+FaELgB z@vBFU9y@;W)Y-FV&tJT7>B7Yem#>}`OrBmlFgCi3$-IkDVjVhr{`}__z20n_7@r&* z8621#=o=Zf_w)^oL;p5r>#+@t3_2!;C;RM^;{yh*rL(<5XS5(@s}H#)iZ+M{d(>Us zU3N>miX)XO4Q&QE1?~Nl!^FVQfX&`NGm2F1e#dbC@bt7}e0It{I5yPVjXcE3skwn+ zOQ&_fGSWRTG0-<=?;q{6jyU?PUEOv~55^B`jlE{HT?}m+;17_HAYi&-Gl3?mv#r}? z?E=s-xA(x3-)ZRS9G~dzR(H2s`>dAsUb9ihk$xM1 zMzLSu=Hx9qz7B?ZBmlLVD@@p^d|ciAkjDf@Bo4y<_-IN(!cOR5@DMco{uHEU`H~*w z03Y;?ePUx1gDAcMo*wZLiIiZ7`n>{!Abde@+TRD^X?_$GQbA}X1EC;W7_f<~G$F$$ zJJgT?ktoE&7s?e>tq{|ounTd8!NDaY)ZH0{AtWsB6z?6s-JBS=JrLUuObGY!ObCff z0!QSB<*|0(#ALrXWaoN>Z`l;??irgDhOtDO62Y)wo@jJ*P*il>PIySRBqZ(Jl9J#R z6&A8-I}sj*ATvY<$D*Ab7U>%k5)$q29uXhn?H(Eu9uOOhbSrl!m*|K{pc}*hySQ&c zcN#r>m?qHJ4|Vs1EoEEEx0~X2#clfaSKGIxc*MoP*@5`ul$f1g#stSiz?2`mB`P90 z6#xA*lAj*h}IHa-De=IF@40D%_5Am#{+jg3!DP0h^C&dtuv zE$p{#@(+)T435A@NL=)-O2b1CoAcA{I<^ykulare( zpv}*qWuueJMprE9FCf`+2FHNo6Gj$K_b)d3!HMri!Pc-Oz=$i{G=2!? z_V7jY873NS04)Q4#ElF(0K)MM0$%p;NRDy!^mD_p3LJ_Hz$jMi7VHC977SwxngAXy zM7ZllKq7C9{{htT!|W-r8sI&Uj|RsH38Xxb!siM^=jjm}m6QOW0|yNS(~cpoMB)S( z9r(-wBE#cS0)Ne=(STQ=LqXya9ry)>KZ#*5DHHdR$}mzIhKOPq4*3FMV`Fn`n<3O_ z{0k;kr2am7Tktvtqk!1)P4L07ABUmMl&wBN;UtYp4s&f?=TiQGK$PpCg;_fWG(jeS zH2`#wNoT+ztp9^{eu3+xoa+~La$H(rV)+@waMm-$fM$>*jpqtUCS@JyINx)9Y!} z%JSkeT4gn@sFIdL6yQE@w||ntg9>dQWj)*35#QGtxP`Qoirh zOgsLHE#w_rnmutqZP&K7JH|1gV}B-;Ws4<67Ma3sC)$Tsme0&gnR@MmonnD@aBOBa zLnms^P0idtW>Kj6@|Ua=Iq6HYIcakfsToD9Wrr^m99hlJqoQCfT+7JZw|{Wv@XT^= z`@sWqvr8+-SMyFDoEhyN7`2Sg9yqXU9qOHROo{ES{BFa+X){dA=Vs0f%W8#VHUI0c z*=5}CiNB}H)08;m6soD-Mn)ZxyRYmAMp>&}rA|$+)->xxW4iG!xJp+tv-1y@6-hcp z-HZAb>A@y;zMxTFmECPgPs_|sEzjGRHrc(ex4WZXB{4KMi0W!M1|8Bp#SC`c;q#}K zrh#P+Ev>9A%q$;XT|IgC$%~h7KfJqmo49xP_MP`1Kfn6$>dBRh=gyrw|M>QWLvyl< zTvJz{-hycgZ3eYk+o4pe?A1)Uu2t456$rWY3?93N!EO>Fij^;FsfX~7Rz|Hw6M+1b zON%Nhi)p2GwCYNto<@|xNx~QMkob*Ia0ZVrZQzv`)!|^MrPfywl{gJqz+6yrf%9Zn z*4LC%i?U1D1Pd!g(14%`zNl<%~dNb90Jl9A3RtC=sv`FOIT-^sH1e1od^*f`)1_ zzn0*!`7p(BE7-ycq8R2O7~5!UW)mO6#zt0ceG`vf4*CZT4Gd!98e|#~fs}Ei^zmR> zpb=mq>l-DdDH-QC@mUi?vl!x&9!YY)qsXzv?9**Ckeuy}Co!tEyr*ljR6#-|p# zTb>Ol#0?F?mHg?UY^%+2B(IDkVOA1(b%anMQufH25wxz9zGn$qI2@%!*R7R7wWZZ7 zwQ6RgK@D4cqeuvOA&V{i`0-@}6LWP8L%r?&2IbJW8WBg0QW&9yj7J|n%S>V!o%8nW z4cJn|3bBg$h9@z~MJ)7=nvf#fJ=A0ARO+-+Ll@GcU^H$bnxQ3BX_d`wD%7E^Qk``9 zvQe%R^AsA6vRSLZ>A`!+Wr66UzZG)0%)4)yFW%gz(>d=R9lOq?zdQGuE)+HCq--_g zF@w*#h~%=HZw~hyUVZtgneqO~f$^g!Uobzvx&QF_^uj>*%;lTMR*!#XKDc-82En|r zfA-)Cap3IZtM^{sJ$3oUvl}zhD_38>{lvL`Xq$OPy6`b{s+e|-8g>l(!(<&-7{yp==`p}l}17+ys5d-H#M`ceD#>UOWH1G zY3UBx^40lSzNll$x;Sv{z`dhq&R@ll8AS3jMvqS%dpO^__-SFrxc}f0J z5nmwq_>^<+`Qwi_uRS=rd~|;5;Jxby4jx(S8xl<&+CO9)8y*>Qj7(tO(dhX2?6EWF zFJ8WSb@3>%hMdLAm#&_|7Jj$2(Q%4qu`?Y%6`O{aATz>H6%;_uVE}Xb>?9!3@ z?cGyLvlFuuLt~huG&*3h_mkOb)4*=+2b{l%T39{}U93OTJK>mnfxDeKM7&Q{ap!9Ts7a_CA zKs}l};K=XBtW9-?-QG1hIMHY88yFaw8ns!>CUx&XXS=q?rn6(dG$u1S>^(i2o&jx_ zqTOsa8VqU}UOJ7y{+)V#kGVsw)#)tlTDd{rZa}6V(P=bmRlP>79-C8(#QJU(hI*-F zBmx(=G!i7JM!;C(n@>+(T)8V|9DrT$4NJtscTKZg-KthgG-91m3T~wVR(iEuEa&kA zVj&0LD-tmbEG>GST%y#ATR^jmSrDYYYEfysTif;ecC%T^Y2^Oy>D60TA7Mx=AJL9Y zWJEb~)g=aGm8mp#`_MoOn=fW7tt}Fm@--^8P6yk*Ox6N-3!sb~v!qEIKfsJ!&XOgz zsx^iVV3{sU&%h*?rMo5@}1X>SYuh^Ym0{ghS!mW%V8NpVFZi3*Sj9c=E zPuU(D8xZd8l^7jOq7uY}1#a^qoi30CLE9e)kw3c4WWFv6ISN+mg(O}G?4baIx7ZhV zL$ekXMz-WJWzh>83i9=KLt3#D%1hTc7dIcDuT#8}VmEtw`6X@%j;DAehHZh<#xu;% zEyOj<)x$jo3Yn;=pn!x(?1B^0!oX<6dd5eFBt{2BLuUn1Ra9iG*QS)sn}M19f}*2{ zu&Cse?NQOe$gzb5ConuPGL91F7wzZj8VW2B9PSk!7Ukp=74P939ExbFIM0|J?whtC z*TB=&*((vHcUXAx*2I+9xU|IB&&kQv&D(`=r9}J0h5A#%gW(T>w$9Jf-y_gJF)1|2ixLtO6CW56 z6_vC(KIKmU6Fb8r5_iOY_0^X<6247}^mGl14)O>~4u#R%C)C%&Jvzia9+AR<7|aun z@Hg)OyddbwVt(B@ie_l13Ek7qZXG;aU_r-c=F!|(vX2lWL;Za-({rO!ql4Y%PSE|M zj&8N^PyU|B#zsa04v^qrpP=ACq<3!wBq3E{8#jEhaRYwgCJ9pDPr(e*fBgcm#sw$_ zYOycAaQfm4=M63-(g8{G1)c>~jYKYBO^}Z4>;d8ik~`2b8wsp|3>5=!LaxpSlnPAv z&Muy$h|GzMi3V12arH#f8JsZKyo<|503P5a7aS?TKfp%rUO-FU?i)NkoPk=vb-4kB zcsjc|d2RH-#y7Y^--V3>?|8r*189TKj|_8m!Exw~(M-^h1>pD&fvw8J%^Qb3GVQ#5 zps51zc6E0l1(aUiAyNJz!8q2w2@Z>nfI$WtHS+wS_%JX` z3SE%@1$i1kGTuZVUpE}Mh;sG}!Qqc63&_X(DIF}d(DHX`L6Ef9Ru zn7&WX%Gk5}cZq*YzzGo)n&cUu;29MakpQ+6h&RG7PzcP>4)pTB5e!MgIR1fRNHjtk z`hO-_NGP+e6N8NG|HJl4k_Bi6L-+toNM43SHzcYd85uGl+4bjZC< zrRY#1G%Oe#T_!yh<$=hEQ;~s+`plW+c2UEZRE8 zoJ%@Aa+*287>it-A740)3?BW;N?0T_F`C9$WQNVo5A>|`S64R8j&}+2Q5j)XV5m%6%k2G|wnpYf<5SX7y zWl(9fMh%tm*RZN+B3V|bD=I2T5?0~=b~zZI$tiESw>&;LI513JZyCdZcXDECdUoOL z^2IBQi~sf7?YrD{ItZ!Ho<4na_tMI&T+U6^*R+(D5{jl!TC2XSrLw!cL|59F&XrcR z7&K+@XIR2KL0%rr7nJKoLLQ5gosyNs0sETEPt8EXCnYgH9gKt6L{QTcqm$CobFwiz z$rTWCjEe|Z>Dj62Y!RGNWVaw{GlI4 zC1$ZQxY5GISU||KQdk5(Jv}*-$VwCQz!*znb5l|?Lz&S5;lZcqfq|z^ovNS)*ZvxG z!f>LarmFQ+Z~`qTI4BC_`iKzI{gtVBL=vXvS{98hUx+y1vX))=s ziHxu)dH{tMNM*(+SV>`c?vZ@S1T8R1t82*35(eB z!u4%FyGT%8R?~rUcZEn-t5em&R8$p95yyHZ%*_LTjeowMwaJl4#2n%MJ1j++inq;r z^^TK=y3;=fVUgQ@w&rP+bENLVrTL^)G&w08g%q7GZD+hY7UVU_N z^EPKZW_2v1OzZ>UL)hZy%Wx zdZ4>GgT)bESiHM*p<`x^&wsXd{l)sH+t;qGKB;Kzn3%!XDK6wTb@g`)40g05^aYvH z(cIn$Ttj<{p#l4_^|hFbsjh&HT&b->g}$;3@vRm}kRI{^@L&%pV$DQ-b6tH~Z+(4Z zD|TXPDh)08Yo@ZLrl?q3kMLQep|-xRsajuMuBq1!P_|4NzYtfW;`WHPooJRjsvnLW<@xRYg^KDUcT> zget$Fq^!8126?m+HS|TbtN=StR;l@)<-AWqE?=xDld7a}tyx?t`hYUIR-Io~-Pl@JTcd*cD5JrObU1I`vJGjK~FQ&3^CwX`RV z8tihjyRm78*FEF5VdSvZ+AzH z#L?06sMVpvIAO!Nv9m?E29Ywrn1G%#Hzmm9AKtUtZ-z4;j-95qF182I)P`ka?&NOc zZ0lidY-McaXXoW*?&6J7yT<{)9}yJuMU%tvFph$M^0Kk`le??Ashby4N)Se#-tNd+ zp)Rq{)ZNa?#1T;;6DLo1xE4o_xw%+-`y!Nf^v6TC2f#dYbS8Yi{}CL5BLH|gc>?0> z;^^jk*m}RWwK)#-Sk*aXb->wuzqh%Yg|n%jx5p1YXndO-KML99V7JfgkcHJDU%$iO zVW;!p@x$KUhmRrt1v~&UUheJ(4!0`q^obE^+rYKi4VPvQY#1Yacpr2Q{=q$V<3mV* zVao=}1-=$^%{~|zsOv-65M)Tr$js7YpQW({?!L#&6ezEngB?{*R>cR$%8Xzgq|3|Wo z)YVpqs3B(NW`P^)`HIijuS|e47-$5q;!|mXa;Jfoc@(jX-II_Vb@IvJx}0F;&6h@cD3K;LsqP z1qlO(1~P`t2Al{;GNjM4b69LX*uNqv_#W6#)>YxyP*e9?P(*TC(#e1R{{I|y{rP7H zzoUn&j=?RmuyeNBFZ>-VRs|tL3L8>#KsAsvpug|W)PA{zR6o4m6@?1)F(`{2wL;Et z@?f5D5iR>0Qf_?ti28T)ML>?f?A#YW?%a*s7bR_*6%=AhvcCTP{$DW5SnR}oNq_(s z&QJS}W)ef*tp7*K4UfUa^CXR&{{qIh=_>z*)!*tW3McY3{MTCHQGEg*xEQTcy3^N zaHzL$s=uMGeQ?mwQK_$QZRyk{#WvzHVu`-6WM#B#qOPj5cdU4-I#Zu0Co)vp0#^U^ zUVt}yili+XR(eK*4=BD_EO6k0q#^7pY zP54MwYc(^fDk>+SHlm>@B{M3Xl`E>zi+KWl4v}71-di@Eah4^L5y>Ncz{4#N7@!HMX*KS<8eChhVhYug!zj0xxMVJ#G8&;Z_M+qCOoWu}fmZY(_ zw;~{kkhCtYbeFZ(bRlG3SyNJ0TO`g%%;CXnK^Fxt*u@f3PYEOuhzlTwmn zQey!{00ArtA4^P(j>?KpW-=mhkMz)lSdy`oKu?GYXEH(|nwXTZh(!NT20b%}5VN((BiR^r+PIm;}^am?04~WhfEgA4m@hrw4`y_m{T> zFaivLO)dU`{NRuiLCwKf#RSxw9ungpoD@j~=sP|pk2s#-OM30Ec&LA=YbqNR#I&mr_ zp!PTa5dVJ)2%$zq#$?ecp_FD?M*uY_Ix;>M1OqhK>T8rmdTo2LZnhQ2p3Xj;6?-~C z1aE+eQ?1v79oqmxSrcjG;G#K_Y1~HNmd@V6At;`ysp+}7vlnkZe);Of)<^smD6j6l zc<0IWp)%neeRilaS18m)GNoRj zk@7X-cX>)}o{T6eB?yJ0TvySq0cQ^B7EPf%m-P}h*^~1(o+z>R^W@f>7b9!L%k}31 zg7fJnN5m=EBpyD$kI0l-S*~xYl2xd6y}AmB1qlyp?wGDAP>28@sL-l-ZwO-emV{j* z*_I<*qcJq9RUF=@!lL!Zde)s!yp0#PF1`?cxJRtryD-vMXlUu19o@Kqg2!Vy@%G(Y zHu}smIUrdpSEpF7rF_wcI~RH{a6bqn#Cs9{G3(OXha&zPu9*97^ZAW8FW>8HX9kJE zrK>k@Tzkm5vT^Cn+s7~8ZN7dZlDxdfQN4SL+RS@aJ~x+mcy;sj^9L;A_13eSTe4TT z&qH&I`ER#hKjwe>d~4~-{pFd{^LH*R%wL^FKGi8{0Q#=T=radRFEdwH2RxMuz&% z-5cy_ogKRgi+H?mXmxsd_5Rh1tK3g{(kDYrEcvW-u=o<|=G;~8dgHw{f$)08AhBNe z>{82MQ`5-u?9d?_?x~mm69;+PSSnM^9HrM|c15$k5=xP=8nN z#Odkr$>9;mWaQLl#(Jwtc|sPSSgIRm2|nL^JvDP{bn*4p=evZ)&^gi#9^UfY)zdvQ z^NSOw7e?Bvb&c(YDnolCUXb-=pnbK}w{8cR_b&Gg+)4jrLL-~N?oNc(v;N#kya^JmRB@_BUV*aU0R9Odqs=BvP7e) z(UujL7%FNsDy2xSu7>Fc?3YScP*GBZu6|8bO^KvHspIDt%8Er8KLbhRqpaX_QJK5| zLRyR0X-RdpT%l2L%BzS%+`Ei)TcibfcYy^F$pqLu%j15!waHO%-*G>_WAV?6#B9;$ z+=9GfKuW~et<9}K`K2(wtVGP^aUX99w^^LWY~GVse3mRv@|ch8M~$jLCi|pR<%@)} zLWx=_RqA9)Xd79HOoY%|E?%Az4GL^|L~$Np1cyh$-)8g002-osqtKBT3%11{IJunS zeDwO2#qHINy_GUtQz{e*>kIP=i#573V4%w&lL`wls8j%G2l8k5!-^~#`Z*-63^x?v zepS_|8-ZVlDHy>D1zPQIe-6P=Y~R#>~_a zr$TEB?5iL^=4g*jJ`4>zFpjKnfqK7{xt+Ny4sKupkc)vHSfK!83F#aZ9!$}yv2w>D z@31@4UqHnkIe6rt{Q(PaXIETf_jE-9$I-{c(-#MKTW4z%981k@aIqYU#{`igGlJ|c z;LL{uCPHeaPR2%du2}UjgA-(lQ5ts#oYuYV+`j(@cS~;%3*R67JUwiVdfOfO>5!8L zc?H_j`M8&z<7s_IsJxes5!IYHPaR z)yv)MfQf~p+qbyz?dNj{aWpI2gWf+Lw*1!5`>?kME{uEnczbyq@;>P5>rO6Qx_gnV zVGkE~@8jQiAMkXvKkD)0aR8+qjvaOff!gnYpZm9Nc7B!)(f01gTx`Dmrz0NTM}P8h z{MNH0~uDUuPWvIYHx0|YZp%ayLOwIk#f=4$_{MnT@WqU_i-kgIl4ZppN#M?*ShGkFd|w3^y9@+XMC(GHZC>*a&$vST)9$c-%evjBH^H zL30^d7+abl7-x(S898Nx2f&K}4~NG!a8Il=BRu`=FmW=BA>!8JlP z9|1WlYgkGo`}q7^ze1? zwzkBp+u7N|1iIDH2pKq6*ojuYh(;pWhSf_H&RkKnha>0$Gt?Tc5w0ze0?6_t*aqlj zfurUM%L$4ffBKN$gmdI$O7H;Uh!0+t(az8K^%uFb^IieG9&y%JJDLdl70^8cvf6mNI($c zE?QLwuOg@vZOy5Ufr^EwxskRettvmNc_=JC-aiIqhrq~~q>O2L2Q@s9pa;?EfgNyl znCJ@8TWHE$1B@toFq6Sb6cUJag-1k(L^R>$;UCU4w01WKwRR`as>_PDP8V!O%Z+JvpNMwd238}Zfk(tEEnCQ&rK0|L%P*hArMsJI^{(Tir${$y55$q(cT(m6|>`fyqu7hl$O=cPhOty>AyTad3K?zl}qGh zNqEZKbatMCUtq}8>j|zhvqn+TTGde1);`s*59L(nrBPGW)rJgVo3xr;FQoY={3b|9 z(n{zVY;j^neo1~oPLWKYND-A(_o>D|gJ#+|IKRAjW^QJ7cJ9pCb1N(7FI>EM<ZUmJJ+vWS~|P9dL2EU2e+p#Q%gsuP3`P7gBOarX z8EkfPayo`JIV=$pmnj@UN@`*nre4ycnM`!dfI|)si3HjAX$h)ay421e5Z!os5|F?42pNNi?&6441x0W&!?Ig=q|02LS#%AnFuG}B9K zPnQ0b5)$Yi85j}^MHa)PR960avQlekM`5~5S=taB93I>o-09DxhMj;tNsCAhriFws zQvFYaMV_G2Ln25<1^gyTXKQtPKz&;kB`P^3H8mwNEF`czs3z1u&=7KpK_xC&127mJBx^f$ z4PIHWm_#5R6PqtKqzx;twqCuzCb>N-QKWMP zG9FQ0A#Etuu(+EN9!Du`Y$(lFHdRRkT$M0aQk++kS5i{Zpx4TCMZ)3|O@&%fr7w`l zC32NW3O`+=EUQ&&xbnv@x$Kv#SC%((bJqn=^VU92tg&z2xxe=D)z;+=_QvLew-0Vz z7Czc!=a&dI$jFI`%CvQ#uwNo42oV?P-;YuZwO4A{{5QgtiH8KMAXiYNYQn5Xca0ij z?|jJvg{qR3r+9qp`UCd+4GDi@{O*-Pe!=4S-MOp7T;V3Gh$}1jC>6MQ^*DoPF{ZjCp_4YC6 z_1lLRUq8Nm_0Gk`D+{NmmpPAbUs=1kw0YbLTD$*UVk&C@bZwTW7~77bkA5 z4WGMp?dsL5=Y}rG7H*YXA!b(3FWh)>|NX|5%dg;0ZQfn2){oQ;3@!~K!8p}9eQn^z zYFGOlN-+yd(~lm1eE<2?Jh$`mWF=pB`u3yNp@$tyt!qP4wpuXT)_(m=#rWb>P5(s< z(9B<-KfTnxaAkd?ru{-@b_P$^){Eq18_;9jJ$>NdBcne)HbxA0k50`_jt}>C^$d;A z&7GN_7;RKO`$#;RUAc9h(}-a2yu6?lc|QR!Pd(n<+%;6%*nVbp<=mOskq{s5&9-1+A5ncREes*2BR*D(lS^=WevK%hDueT8dt$|nsQxDbAztDrb!QSL3>@b zR@=}9qH=XHhGF3F6ln^81y@ST(2kMGr9up~N+nqS%_|ei)#~!XQn@r=SKgq}mWsF~ za=tV-pI0oD6$y%fCnL6$GPSB)P*N_bkQPaVVtJ87%Gws+d(VDONOMJerAVeNDpr=2 z=Dpfr@i!m8-hQ<4;okWhuQ(hDdyBQrE))U!DEcgxX$8{UTxA89qbTO!4+>T>^9u5K zT;Au8Pd{>BeSXSAA5v4MRmw%Yb^dD^NBB<6m5K-%Fa)w9mH6e><2zdtF6Zg1*ZHcF zVnb&~PfH2n%ZhTbTnBJRsjdR4HSnkbN<%IcC?vqxpqP}nz5&Tp3|t!dh7J!>E>%?( z)wQHzLKb#x`pns-fLr!)_QPjs7)W_qn?;$T6Yd;HH z6LU*V3$8 zaP~Xq3&rH}{a^m?&wn}OWA5(k>tOC|=Vt3|ZRc$2bHKsO=Ae@w{G|hsF(%)*x}xdh zhb)$xxtIBOhphbk4!eU<;Nj)%4fS|@g=TBa4ZXSO42HXJ0K4R5Q1Y1?sF z4J|FL&HAdmfa3=&J&~KU0&f6ieYif*Lc9L(^&VqW2MAUx7=vIalQPB_=mFkdV$UCT zf4ytZE=VT)gz63~qTR+w!tL2{jdp##&jf`YbZ`)PGlF8fI)@Cn02r_6`}2vowLP2_l7OHk&&e{t_t8u!8US$-30pz z^Ebv2MxLft`$%TAm6@?EtQrSLOII%oL>v!&;{ilD0-1O;Q%6!>8Iy2n0<;E~oj9ix zOip_X*nE!Ur3ZW$Hb;(n`E4!*2|v$H#1az5BpJxt3=Ow9zum516hL=y|yHuR^l21x29a*~rE*vH8q$uL|t za&SB_bNE6rCVEl6R+V9g3nzzPe)*+Zr#nGQ%x0x$MI8Ov$H5xApHB9qVjA4>f1p@M zDT04U#X?Ta2zI<0>5i5l@3-S5;VUcfYd-GvrFMWp+dg?3=8e zbQ_tABef2xZ6IEtaUiL3cfQEqkj@VI&zF1FLnrm&1I=XIEvI281V_@>gb+km@s*W3 zkB+;`zC3L)9*$Hy0(?x3uR%&U$h!YdJ|rHPtS9Y6>awyfWdAn^EZiu{`8_X}&rgr* zLrtffiSj{sd}dk>u8@aO`%gtg!`T79JTW37m`3^4zd59w8qSQ1V#ZNV2A0NDXnW|` z7mTOTlPPV3rSmh>rw4-Tg2L)b8>{nAl$X$|+DkP(Ri}F=&&>BV2NxCDt*5L+%?>1`X9mS3vZ6xi;i*Am z<7vq$;lY8eMcO)g%yjbXP(_0h!z5iXiDzP(TTeyB=k&zI2Ze=)QWMf5Lk2=RhnoiC zVv=)`7!+nuC^aaI+R#1N$BYaMV)p(P928L3*4a4_axy5kk*HgZ?jISNj+^QoyR$mb z!<=mHEu}@%M`I^Kn82>pCdX$?cXv%q$4=f}>5QCinWHWA^wX)7vDn3#3ukVnu1xe! zudGaucTLaMR<{o*+4*pruI^;idA7)9h)5vbm|Hthis_Skh39 zfj(AgL$Q#k)(gbqL9~L0FRsjJI~cS5b;XS%^@VyVN1&+Vm(sBapBx-d$(5w=GNVeA zrBT$nYC)H}Jrck`Foh~=A&Hdf%*+#_B2kr`6`GY1!xjVI%;mFyFv|`LPZ3TmzZci& zCT3SIEiJ7qF3h3^w6wIexN_n0)vLtym4)+Hu3x>fdST`KrHi-Lu;g)jxer`i?v=jT zfvL{u=*B8~aaV6sIfWX7G-X9~dtH?zPodRf9KEJc2OLu#**VW7;=@CJI~hV}#-t?@ z*=dC$+ zpfi|AXeOnnr(vTrF#$VFQ7KGjDmN>U6OkDi92XlHP5JfLu<%UgDgTqd!8nbM%40HO z*hC_c5)>935R(`cMoSN)#ZhY`=+wqjR7ynCsT1MUfQVSisgrd7UrP(>8tSyowC2Fz z=1^)YJs~MB7CewlNlqM%79Ji-VTPth&?!MoDkF-H4p8992wE*ID59>(|I{gXtmGf4 zsDxNbP#`@lj6&&TP($^&7o$G(&-9Zmw4f8!4FM+tn`u$8fdjOfkfg+<>|BkEqwLg+ z3f|@pVqzVmhW$Og{W#CI0BL{%5c$^7gvF)?Uej^p=pcn4h?-hRG~3`1MA7)n+}Zhs z)$4cG)}O6Eeg68*_V(8Hs~7yHg?n4i?iIWkD$3?5i7LHD@kqsEZx-g~%4M3GN=>d< zEf#DO`6UIoGA&UzmzQE5lf(I>e3`G-0BeQ5ws^hd&8xREw6@C?Yz^np)1?oO-@JHE zJQXN5?>u?2CVFvCbnoHSt8Z?9e*AKKYvUPr_429=1#qd3P!~xGSOsOd^?X4ATlRvG zypwXDy?duos5LzT(R0zv*aOyU;fKxg`g(q`rlv?Ckmhqge^g?wLn3;yuykD_*%ZCL zuyAJxkhkl6!4_}%IU&lc*)CRc^H4X}RTpqS5RYCx|4>p?T&g{pQ81r*HXNThHIWdjI&w>hkT=a|;*NpTD|u zYx(M<%hw*?e{lQK#Cf)+V?x?HYj{)q^7QQ8%lDV2?#*7Gzj)>P;a}(Xf-IwzN z!?*9&fg5;@$e0zSXsrsrysoGv`)EmpIF#gAIzN(w4@m_S%YjE0=P)mzTSr zpM6-?*4%aV!NaSUE_bg@BKyakxiEF-;+U?#!!Qj5%If^w^w8PCE&;nhH88T8z{@tY z_6_y+LRz;&5%u@?_YMq=O^g#$fDnvLj*a4a&cN{C)coS&>|}Qpo0Y?TvUG2veW9e{ z^M|74PuuUG5Do!IBEls-S?x8M2?NDz+e|-b`JEJX)HFX-;FkBg4Cn(%BqJ&b{ z+=#M6PwK(t9tE-e6xdI?(bz^>oTvVdsmq-XAzo1qr6!2KN+ESIW6_Dt<1|3l@KpqZN zv;t{uVSy%Zt5A`*EzFZBwt0k7E>M*MrlR1po?L(T;q~M9;umbzbE#-s0!dOR$}iSb zl`6^Zu$Yx6ssQPcUm$^tg&nV3|8u)h?-lv2S+DQ&z+u~J9ln%b#Y~GI##Cd zobK;Po6^>clv)DOE*ozfOA`+=iG<#cB|>dzQFtR8XAM%cB`$sgIE9GRAzMt_fSHD- zf~B>mo6o_YaE7zS>D1QR_o&m6!(K-Y*?C#m`+6Ss+i&dRVBzlRUh0&{>17Jw znw7a9Y@EG-KjUJ)xv7l_uKpX_5k?MXM$WFz=yF&f%sd0fLM| z1z=eg`ytxQEi7FQc{(6Jwb#s(?3K9t0)UJYwUra$@)wME9{JYpPv8CY{{Wu0b%PTF zn3k87uN|4L0=U=l06D*7;&{Z%&eYf0)7aDJ8zj0sEWMl$`yRCP0&osMGY^krUarp2 zC%#_Lg061%uC9*A%DMjN?B;_`kEi)@kAHA;I{xzy)|feU1n3OB276~OPe7!-!ZpZ+ED9|9?e zLgPSORjDJxa#i^AQiE=5Bhg%=t1&bh>Z;LrG9(9TD?_ zIk$V)K9Ha70BdkGN8two1%)wFqkX0*{lFyJ{qP`^`fA_T zU+p!A9)dao$zV6x7s7}4k#(Sbd(8IjwIWawf{O^88hjjZ)L=WoHbRGJpRvX6UHA!Q z9TT7g%*ghTk=gcuv43nCyXyvITCz4v&r+jvK@q zM2itzNfSFvGC@3>nLFb3%fkVB+aA=mkql*Zo)kwL`!ZHju3)UOXPQwyr)0 z5T8Tz5J63{Sce>+6*8(8-gf4o$w88Q>+rXBR=!r|#;$H~Jv}Ud`0%rG1z7vl%5K}EKoW;zKG8QzW|5&EL>Q|fgdd(=pioaI2Rrgx#GE#qT_&T%NGbl zkVF_7FTsVSO3+#K`o@MDeOc+hQDc(0Ns&kX!Pni^&XE)+q;SZCp2*)(7P;gt5EUY5 z5U2~%3i{nA`XA)YxG(OA7SPVGphMs&?Z_PbC`HhXluA4Mo1)(Z*6+p>yeKZd3U|l3 z!DbeYyY6V2%>MChJFXI8X{; z-c)!x9C%8oCS~#=pw@o>=15yeim!rifcz5KpkhO_k>5$-f8Jx)&J8;^l0SS=S>*4^ zBC1FHFA==_5i48flQarr@{s&QR@eXq&3F zyMx)R3F)ZN1<-nvBBK0L5dmoVC5@Fc5EC4Il1fB{QU@xkX`vx;QQ;|!bD^?=x|Y)m zLw&(P83CslDdE)k%uIBc!gDyxz<>ZzRa4!$g@}|%!|0{+Ps>48+!byOlGjY>bKv5s&oyMx_Vtz_$1NX zFn|F3c=XKZ#K6cbV|0WO(UHdJ3!pc4QJD;Cdq^}4sji-tOL244opYya`^I_(1|woZ zhK4Rhtem|ceP%SgXK{9Zre|ix(A?cIaeB6OvSDeue=N#?+I>xXX)$(VOZsF~RXb*o zbYnHZTgwaUiqyIBB}+?{?SxLFNRf#REyc~tnKiS4jQ8a}&N~m(eO-Db z*soZvA_xIU(tv(vr01k33kf1VD>^O~!MCK0)O3Dkj-UVs42<9;Fp}bff}-hxG+JUr zd`e~t5tR-eV1gt|n9P@|@&rXC+9D+FHD&pE%DmD-f=wi6WyU3w@i#_PQba5;1yp|~ zCl;XU&3Ho0hew46>!X9~L+UDl z5(#Bcs8niT05u>qka99C0)sk9DN)H1USdjObZlY1>5f(Ka+`D&hUU5x{*=(*Xc{d! zHkq5n$yX{jxn&Kdg8Y)M!G;!;I(kV7zBhF{@FjOdAR|6F-61)Xhn*WshRw&m?WD=2J>+w44{l@bmApL}; z_r$^%PnI4(xV`!Q<^3Yrv-L&sv(Ia+j~{aHZ}2uRuf2Sc_vl9Mn}_#UqE8reXX&sx z`jMq?YWS=s@`+rc0OkL+xA|nOPh5z^TmRIh2X{VgeC7(PL@ZDlFbkr_!8fc)? zM{hpg+}`FFzPoVuM4AzjkVX}H?KBcZpFC&3f5j2MEzR5J zaNm6*#6s?Uq9C75++E-N$OD66>+0&pyQg<=uqFI=4?b|;z52v?|BC-$Keqr^@*vQOE&*hHEo1^01hjXnL&um_Jys|L1aBcF;METkG zFK4k+dTF_FeDdbq`I{ftE}yx)^;QG|c>d<&m3#N@Ke)AcZu0EuGp!1VB=^CH;hC!G zO#gabF7MIHjW@Tu>(1O`-I};}YhqM8ICfK9GdelO#)P=Rl>C;{3pFQWO zhtH<+75U80@yW5C_Kr4iqFdVl80_fk?(ZKQAo{zz2S=vH#)bz5K!O^XI&*gJ^k`pm zxmuW!b|-qeS$L^!j@5Pl&WCr{iWS|v$|X{_05q#_ADEozADlyCCY^J`t5!|yp zRk6ORvA((s9D}+NcppV2y1MF`PD6bg7;l|5x_WJ)PAkmSD8vQ%*zMFCYKSs@In1Ws z`mUPJu7URE{=SL9Zb-Wk*isFkRW}-RmAb-0F`u6&m1Cl*q@Y;L0d(tp3xon?sqoF~_uCIYU3ojdcK0sp+0!>qw&W-- z5*+y_Q67&Fa=CIfN<(>tGLA@;t5je?S*MXfR!JnRM}>k7-m?dQ8%PR7Qi+7m7NYM6 z8;BJ58cks#%16L10N$1>%6}_XiZno5mPw^hLKuUVN?!8VFtFqWDg^%}xddoV+d`gP zD9bI83qL7DpE#ROi06x|pPoGbxc!!eIUGSgpQ8rG1c`(C(%0;~d^tOdtuDuqM!B{e zj*?DWszK;ZQHc2+6i84pf`U@PNGd{4v6!rrAc$8Cx&yL}m855YzbRUq+Pa6PX2AYi zJa?8E$z(1w<6_cfs=+~VA~7Q;TwxR0S$~h-k%>Jl9W!$*!&{R@4qGJL4%uS>$I8YX zz%EN~D?iMKg6C@nkI2{dTc0D&s2Q1r@Pgf@kM;9AoZyyT> z4|6wbmjmurZqDXDPImh&abz?jPqEf6`^;=DJu!2#*C@)^$kNrxg%nj705U&-kq~?E z&%E8t&1{V@*=}XB-^~-Ah_xFwM{TW~e7uf)bJWK9nD@bN4j=d4?}V`#Yj1NWCtF8z z_kB31l4~#4Cg47}TkN+-i^SB-%jJNZv5A+vx2Nkqu8D{HezaH6gSWtnrGtf^7ZyR0 zsk1%){SV)G{n5_L*V58uznPbbnS&?SjBrFJ-_pX_!Oh9+pqsmkw=F)$!OO&CkE7cG zBM+~`2>BU1y1C+39|RLYmG<3y7(BIb1RLRxz8QPZujMD;ozOuidRoT>kivKX|)%e&>1I!^eBSi`&7Ue*pdZ=)q&Kpiu0xwXp$F z8C`r^SED2T8UO6hi1;^Eb#1K<;#>_px|#$imcx6jsi`V2uc>XsDjMLPRT!}%N8YM6 z`SB+_9PIoo>s-Ak$`T_J^VfxXZ?)f+)H0;01W?@9d-r^` z>#JRR@Z;AIP-HL2`NGdOB*L+=u4#X&=exW zo9I2EQH960f)hoe8}?bl^RzRvvDs@4Q4R43Qa0L1AU9Zp&j41nrLBVlc+sFxyC6pA zj?o?P{PsH_xrb$1a}!HjA8S*vuhIGfht9$ROF!nGi1vYai1Ly5ej8uw!`=s-U3{G! zojg6!XR-hb1f3-y8Ng7qKfd4hs4KzF#%jwvWcUUgX#Eo1?B|K_2UKGbIrTVAv%R^n{@r zgZe~BU=%I7yKSPiI9F5Lg^FzuGdUozDU3;pj|`8bqLDe^x)>iZ|5<+6K1WHXy z(PVQ+wJDy2E3sqC@Lr}GUQZecxXao5Ivj`nw&%ps8!a~{My@IUshCmDzrVM zp{%&Fq~bTV5{I%VC7VHXs3W2(J40v#19hFuNr1#=duid39RUHM{>;E`ToCOIV#f4! z#xZB>XGX?G_0^*hQ?n!Cu_MhBLjgAg~B3Te|%>ezmsf9N7qepj_=VoVSr_q*}n4Bh6)co1S zC6rhfXLX)ga zA;gBcT3etj!6oK&l^{(l)1%{4sBtL~0a1w|)Xsq4LV`|( zgatN)L>f+=tdZ3QG=|XpgA6DA4ecS6@J9d6rrPGxI{nEqqKOfl8pjN!1Vx;L)1w)QQHk5JF3t-SGbXr7cFoh9MjcBO& zp)MzZn~x)AKn;Z+8krgsBNB4uIByk6D_a}YWqAb}%s+NQJoWbW^>uf3wvfX>4fVLb zkA?!u_dlRHLgsE-n!#=$yS7N+biq;>0~U37eCF)z?CiqI#aoY_z211w{pV+>(R)|Rn^uKFTYf9 zX?bntu6TP*q*`Z73fOt#_l1T=Fwt3BLtkF0NSIea%}5o5P%O+-%VmXPoI;gKq2wcR^UcZ? zkdgU?g%V-|h(sxmD^>6`h4?-$K6u0W`1ZxMwYNOkTi)}>cb`6d!MT46$+*`0GXmoE zWr6V4bAovOX5k+HlTPsHNCxHvz%B)+s zdlQ8-Zy$czdcO4dI_u8T(!$t1$&*I}^U=j?^D|TD*YB*&-@AO__EzpILL_?qoxXhKuh7!M0L-F$tS`)ueSIP#^-L%ooy=A^%Co>J1-whU4HQT z%+R@~iv`1PF3z!}a`mXEq*KXg$wav|Z!GoJ@7YKB%S{&uk-z+Ru=L^cgYycslqNoV%HC0(^H*(p*9!W9Q4OTHE!Vt?k`St>q2PeFFnMKrL!YYdc4W+Q%k)d&l6A_4Rku z3^!JH^)}YGbzqF3qFe^OqSNc8#bRZNPOPnxu@$9U{(CMV5fB1E7jg^VlZnyCoXuPb zTd>Jtzy2uV=f7cn-r68OJ=}cDe!L|WRhB68B|vURe8L5yIC^6v;`iZOhp%7F$3<9Bdh;$;{Dbj!{ ztEkn(fvN)V1%a!U&Yt1Z^XJa4M4w-cX2wKEuP!glo)-u?+BO~W_kZ&K@u>X~02fep zu`mZV!2%mQXu4Y*a6WqI8yg$%BRE8RIe1tdHuti#g=1spbHL-6pWnfQcAgH-?&f>3 zW`Ee*&)3V>+t%I1#@orm-5N%cyFEmhvAv^*or8t9gQ=Y}4vr9K_9*_C0sn4xkregQ=1O2(X!(+LE+t8)FhW0O921Xl;7H7a+MmIfBjxQ^*-v zB^Ota!pP0l$K4sV zDOYTmI_@*Fw{vkaakO)Dvxg)@2=9Q4ry~%^aIb7Uoh+Q}ExjDv?A;Ii(G%kC;5Wyt z+`hFpbNS|v-~If9ubmQu|{HLSd z|Lgz!{1>kSKRSUWXkuyRyxYds$x@}fI%B?7rbEb8o{^^ zYG=r{8Ifip%0s3kG5f1OKpK$_)YpIbdhcHDZo&wyq_1{EM(x5d5V;(*$8`6;-Mh_U zP(kN>y$7FR1T6(3x9KjD$!&@WRD?1S3bioVV~qcrAX?i3Q4JWFJ`*W5lV(I+HGm!w8s%OIa8;7rmnv5zF?BN z0zqN#VFm=^9)#}jIQVps@kla*DON=tkW|I%h+G>&o)3fxyy}4F#*;BKaW=Q~w6M1^ zMM=y8CZ_{xfvWJprPGC8~3#-X7)-mgc)n@TY+U z-Ijf35YuN-@jzkkg_xSqEL3E(#{WfpT8q+NY6;{#f$n9(j)C7GF%7oLF%po z2qQjp37N{vgA`JHDL#=BMT!rR>S)K2A{CBsryzw-#3yriSPox)O+FHj_Zer4(6wXelxwNG=lLbF(3yNN0-FaRLY`(CjjW z@SpJTPcBMk{j3`S%OC8UQL9~~dVjEqVTC+Hc}w(9J_6M@t~X6NWcze-Rq zH8ja$qWypCQB(v)hDS_O8w07y;lKDdD1(AptI9hm{ZolaYIbg>n_&? zR2Nnng6qRt>siIR&In3aXhKjpH)begNK>s1W^^=YLrMaEsn<6a66;Na+rx)pW*2hKCG|BDBS5ts4!C3Zm4sG!)l|L}H)yY~*CEcA%-H4-xW7 zM(+T#Z)&)o5#BP@HyF{?+)&jWHG8ACrloCZWw~>f_`aFKz{#e5etz9>ZNw1KsBJJbO4W4=4JEQyrKuk2t8DEZXfDCrUx%_m zpdOy?mbae_O%BSKq_X=el7tb8()3InGi7@2bVDPLX~-X2z0Zk?=!i<7&*{KUN{*4$ zSCrI5jCOF#?`rF7PS39li=W=RdHd4r?ELJ^IJyc$!=tBXAiCzyV$|{c^1|Zk>g5ZU zu3khX>dN(NcOE=>w7!1t>bYTEh3qOo1qP&6lu~J7K-3r|pp!PQ?@Y|jmvhp&#dRfW zO@6*QSBOg=r4pG~m;t^xMu^zF)WlGluJjb;WOHjsG=qv)Pe4RcMsjitGd7Wxp2@&e zD_0PQDo_|fV?;3Gm`qAgaC9g&JTfvWkr^MB6i*3@OOB5X4vUWgVj?*cyl_@pwve65 zW+rANCi4n2C2@%f^zdk&wme@TFD%RB=L@-l>`b9R4rU%Jl@XN<_+Cmvc4|~id?Ga> zoE8>IK|+-YRyQpwCY;tDLLH=(hf;}<5L#Gt_%9K^P(o@#Pf&iX3l5`GlbPbo@X%;~ zIwhRm5yW6nW0`?5A=JQM{9&3k{Ni6((i|B~r}zh+iVUHmQAMXvK&=Q5jhl@h2IDU( zGCYAE8X62BUPwq|Ll~`VGA=v>UmV4)*hI3e6&nwHWH>!IAeablC>aU~8i`FgHv)`C zWE>+cBRY|t&%tr7yGoHSd}q+tw_{FXpnq(nr@IqU3JR;y0JjPr75cph_>sUfm z+B;BeY3pe3?Cu^I9U15w93GpRUO2l5I@aZz4_M*Ut_0UV8ZO?sGXIyuy0J-^|5d*qm45C%g+I zFP5JQKHoYsJhCh+6SAK#KO;n2AJ$)TSOW2z8|=J-!G*_H--|x8FVCNwz5SeE6-(c7 zl*-!*Wqy&mgrECS2yn9!`}Dd3BDae5^iDe%-U_bl-McqyQ+>AvuU;G%sJX1|%a6fp zXRQgI3xs9)T=v6jeAc7>k^9_@PeP146>@V0B4yq-&<*eIJm%iNcIOG_wfNJEiL3YC zi=mEGY*D57J?rJ_oi$_5-MJ_9?#zDkcHYc%w{0*c=Nuh@QqB@W0U-&IMb2Pyv~j`#8wZSSoG~V244CM5 z3wri^=NKePs!|~eT(|E3{_f4@{>Jxn3}SWZ!StJX`YeMw{0@c?cLSh3iD-3dT?EMa z^VyeorkK3bYx?3 zVPNd?8hvSY;>n$s+TM-39YfO(7MH{?mY+UzPQd;#98ZyqumX?aaOZtgdy8 zCsKjOEvOM4L>rJ19qpZMo!uQc(z-A8q8XsS|3+VXZ6O+X79O?qUbw=xxy{qMXvQ zx_YguP$3ZI04bqR73YY6U!d~@Jk(r)v5=X`Pv>KxkGsL*Y|uwVe1gjnrh{`Qqj0(F zQWg)%Cn29LW|!xn>W9i<3b`u`A&)H+QWYE?o5DbQlzirGa5*B7BM`uY-6f`Sxl13|l-WhZ4VhfNN+1@>Iq7^cdRPS#0f#|je9aoW zyM}j4DES1GxDuH0^bD>zTgyyK<7DAd1OHXJAR`MxD-Zf9M}yHvh%K3X)2gD&f4`Y{ zBEb=$;{lVWR;g5|X;7)vdFY_UJ6wbgsG2&=0XKJCzWE?J=Fa`QgAX6vxq0{Qox2aB zx%ELr^0|oUc&|VH=;3B-w9my9crF9PH89v^=Dy$6(cNR8!yzER?DP*>xWlzE(04O& zHgU2!Oh$5?t>9K*a>>BMX`hktfqnLlWDli{lOBv1Q%4(n;N+Z~ar$YGNi73Mz?N-I z&Gc~+t!w0tFgz~W0()TRj6;2Rk!IUG$WCm|MD9Tj?6x80ncBxjI8^xmnm-+3C9&8@M>){MXRc11_17 zv%QEVG0i-oK8Hy%z_z@fSR6@z+iZeRVE9ndCwOfc(b{v~nv z&{2>5?)#70yBXUY0~|J;B7_k9lT zCN7Xs&Xz7e{Oup#9d>Z|uQX0FbG(@wPO*{i_6)yd~G>;j!!# z6uX{3e*xlZlSY1lzNO)?v;1ErBF6WcQ$?GVOQb&2lJ?xD%=?_G*i=z?8%TSN^x((> zr}V9bDRALP=Z*Ywb03w^XPfuP9hTvVH&dx;K=$G1LTpN|?$_(RQwUz)Zx{3wW>SRW zYqu^ZT?hjfxmd$YQC?K=N(*~qdSm^AqeFtdBmDis)GG0L_4)k36BWnL=Juo`vp;;*3gpHWYJAXb2$SF-c*k6H+3ogId8=ONzrp z)hQw=JUXPj$+x1&JM47l)sFTCd7b8}G_5f%*e9~KA{=MBef||?nUTK7stRPj5#0O? zb*ro>KQ<*iturb*G5l;TsLoA|UPNXVyRD)is-%!p=9kMWjVSQ1kLhcPOt{ltTHRil zUt4=zTW~6%ETc?WbgHaEq?CJ~@fZ7-AzDIH%4x^FQhE5_4f7J zwq}2rTb13x4OQ1_tLw_ES}#R~^)_6+8a*4^*;LyU+EL#VQk)~Gz0}#-7am(uSyY#p zc;&&p8@+uOFP3$bX;SFbxuwPTZe8n2n2sB62);c&e7E9iTyIBn{gsk@c|JDSNqDdiIkXviL=N5{`ZW4Bwsl@QCgme zhSG$Rwvwuhhd0{JQFx5oea-ce#b>G1(6izEmfmqu!?oEAAl>fWzb$+62n~>TKp#L6 z)TJwZmwQ1Xyo@Okq^uqij|Q&ZxHCBXXz0n~2lq+M_2lK~nHcFR4dp$efQ>9 zo?LFLZsGd0<#&Yo))!H8lhd;@1#~uxufcU}jPda`#Rbw-D#4|lPfDW**(@%>zHk~C zI)A)_0fGLWUZE#XMN(Ob$VsI!n3S{_TBhpaS$dU|_<2I1x7n?)1? zo_8Xvh@LGzp;WVri_7c$0{y)GPQvX%D{y33!s+m+fN0+!pMX=o$Gw!=Do>vZ&)mj{ zKtHcKU(EBh1V%?zM}|Zv#-v3>g+#|fS_Pd9tT^s_>eMO!lV09FW%Vb4R*4LW3Ju3> zV?;!RPw=VGn1JBWfELI--|u`v2U8NG8I|0#aj_Yclvtq3V^b8Wg2o~tjh{}V6;xK% zH#WDmxA%0S+z+JKDkv??z(aRIY0)dGRrKK!(vK zUtMm0y!i6^%=l;Onw-wYq!eAoXUQk0UtRfdV?{!r9B&`)V++?lY&>40@HaS=>4|Y6 zT|h}6C)Qp)8Cw~fdptbSG5KVKCZqt!Eafm|MG|dJscc2KBIjo1WXWY>CXvUN(B?Dcnz$MMTUch@@WX4LQvHkO$J9&L<1{o!V&fU!P4LgROjT)Dq^Ywiv5F``9` zNC<=zQXzk1onH6w?WK*Wce0O@cNRE9m*+Cac{e2e41vBzngrwN*SM6 z8=qR3pPPLH8Tevog+5PxKl*l@zBIi?eK~SxbY^~jl}e1ffBKrmcs@7wYIXeS^vlUd zm&z3F561>Sf0%eoe55VCrYtUe`Y^c2p8YWPa`x4$C(mEKc|$yCn_a$J+uV4m{m}~X zrv3iA2h+3%58js+*1k)B-`aGK*jO34TU{u;w46oF;yjX6@2iOsmTZOtKG=SlMa#XJJIW!8FzPKS0a;dZo z7Do$H14mwvU2zc?AVA>r?aA4XE3jV) z23^dBwzSl6VqnmI}%V4Y;{EIe3G>l)zs-w8g^RlEd6mC`c}!N(s4z z(`VdbL=g9Kii&XVTnG$(O&yT&&G_kFzJ7OL;KA)X_wPqVAyqp#c=yg(A~uC~D)GX% zv7Z0whJGJ&YinmWcW??o4?BAJYbV#Q-0a=lezbAJ*&iYwhIXgQyb3~O8^1*p8&PXBTjP#uh518OI z9T;bWJ%k~mP7e0^<`&>jyLvb~TARCA?6WrXFhLEdGwL-B4Zg;is-wA~F49US*0x_c zI)7>F=4fONSe`zB=H^Z&rbZ6-y5@M)-N6QPe8vtsCKm3d4i;`^N8OE04?EgBI9poU zxfvkEWC;0W;biW1$lB3G$7HXqp(A1IVq#$d$3aieR^Lot-_FJLh`WiYoBe^qU%9%w z>A1N$J2;`R*1?WM?YSH@)3vq!(n-fd-^R|yUdP7T)yUD-kSuSqM(q^X97bl&`wks- z1DV{;&EC?$)Xl}l_V5pf4_fRuK61q5&>w&J%Hjk1`giTR^P!?&kmuj{SNNm z{OSAu_}=$#e?Z>L{m55ex|w}v?c`vN%#f+Mlil~fME|FkZ%9&N%n7oQyGR8Vi2~!V z0F+3<{sE;#m7ANdCA2x27_3D&QCk3OHD6nTnNmy+0B7R2+jne(EB3{9 zjPq^Z2@(aV%l7OxG=PqR=pvB8g7ftSrV4lL*^Xou?5-X7V&@)XuqWV_p;>9C4mf*T zOh2r+H6n}U~$ zV-35hzt?7ugQY%6N7n(TT*r*C)dddF*vb&GIx7o<{dTsFde}FJGX1?qdZbfof{2zi z4qarT^z^M=9Ch@OVY91z85p?Hz>Dc{wkPY)9^M8BvRurNDa2BE1`kG<*c`pXa%}Mb%1L31oq}=CJF=6)Ds7s4;JEHPix{5BI&R}1ztn+Wr>8!*5k`0RPBP&u=@O_QUzaA z($rL=X{--y38^S+x^_$26VZ~a*0$HSH`e)GR97`rT^=47?CrYwx}3{Fmb3caMO+zV zWt~%@RwtmRGQYX2EFya7=FRKjtu+m*j`}RNSW{E3jj!t*JbR9s8gbz)aXz`YHHMOu z*woA`u9lXbW)l^>9Bn=Rf+_fw(#XrjRh13hV*hYST3lRK4);QAW=nNrFv_uSFn+StN1oDSC62n`tLlve{bOK@CdZmy+==<4!xR~ znwlJc`S9-bZncUvH?lZS8E$9|q?Kx_gL~!aRCxj|J3R-*j2c0Hwv5k2nvuy+rlce% zM1_a?1t!EsGbsEsyz|HoMJCjr@-8o^F81~HJCksR5}BNMhMG=gp(KdU7qPgh@x-~r zbJVkE#;HZR9RAGh0MMNYeoKK9r;2V>2 zE-E%Y7BVh1DVd#onsz263G|AH=ve=Vu&9{0$Uq!l!9Jc5k)bDiB0}OqgCL>&O0zQM z$MQLR8Rwi5*aWZ2s@$AHK2e#UQBqT-G-gSkfQW8_VEXx&BM05F7m38&aZ5>^m?Jdoui-mc?a@2c*S5c0bab*QbJI7gM zMNNHeRXtKPP*qj9UteF>+R+A1Tj!-~H*XC-9(o9`a(Lw3pY}VWibM&)9nw6bZID-i)ns}C7vN*${KD$SIGxBD5`Zbrm&ZaV? zEUku{t*vgzd7hQQ%gS8mO8H^|A(DzHqhkxSVbtSH-hH?@mpnX5|92W}?s z`D^;K)k?-He`RKPLG&2DzhvTdlcRoyh ze$#Yo_;Tw*;`ysjqKE5qFKKg2H2&}mjYZ=!W~WEr((ZP4Jn61%_(Z!xyk5TjMzAop zG4pcp^{clt>(8dAh*jR(x9?xhUHQz~Q1-oEcsnySNn0FQT%TEASy`GH>S&dn@RU!E zz2AUwHFf22%ahTC1=`xf$5T_o6za#fuisPNzI;FM?rnej#on7w`=|p`vjVnU&XAz| zLhyK!kg(~aqnF-H-+foxO}uRxeE0_KPxr2jJz{=%@#fX*h1;^6yA65ePj1$=mE50y zKSm#aJ@USX(%<=9B^!KLe`Df)#^@*B%24YlL0x}5_n8=>WlJ)db5zP;p{BR2?#lH! zE#Q`MG%-f(bJFT-ntOU$YDwd>w3r+PDlIE6DJ!pPXl!U~CS_G!V|#0J5 za@zFD?K`(`_V+f|mlp{*DW6`x89zVu@C_sH!L7H{5BKk1exWY!sqU)D%dO6BtktO1 zd>J75%~?5eR9^|$4EQrexdpOPwV1^dD_0rRndzlz2Aib>y-}K#l~YurMRKqUEWzr= zGW1Vm7guPDH1b?^mLgvbz@H*VmJZWKS&YkdpiXEd>55#jswgu(Co3~YU0jf5#rAo%2nvU{@_u}jvN-hY z_3)Lk@mJ4ipVwz5=LU)8xhJ!0pT`DX&WK;nOf#uC2g&%%hbCO-GAXl^b-IAZnSVP< z5SX}~nVeZ)e#;WlX4EpSh%a1cN))O>ZLzo@Lm*aZ#K;lKGuG!Jj3|sHx{ylw2l zX^T9mG)tKSKdLYv6hAfQz0h1M$GkR>6;itV2a}GZFh@~~K z6gCHK(F_H0G|U~{U5-{Jt`4>q))u;Ywh%4o;lc0~&MOV=aL#CD;AmvH2L(TXK10el z?KQzv7HAK!p-k*A7W^HEcVBq2EY+~hNZ>jHSzt_MD=gM#*Tr8dT znH{vV^}uYTv#t?geF#u+2XlL8^p84vxWJZjHacMD;q3A4@9hp)SQ`PP=j>oh?wGx+ z$Kh|j^>DO5dc@J(+S%6H5sgaLjutk0W)AiqI(80b&d%r|{qo?E!zKqD-OSuvEHV1! zVrPzd#IMawY@89s!N8*1J}UqSE$oaf9E{B^O$ldv59hC4_8qXcJ!IwZy|c61SBGs3 zEo|+bEL^{Ivo=2P=kLF<`SFME{(ji`kAMD~3+4)UTRHBr1?Bv|4!ix}vd{bH<3HPc zweS1=9!@_ZC8cj@j-cF2j?$X&# z8c>Kgk?3wil8J|!R&d9mm$q&H;tS-dHr=P)JGR4`()ryElifh5@7S)peea&_x}f{P zw8Fd}Ic&IV`wn8)4qX^m+rQWW6Abzad_SF?zr#@B9!&q~fN-&U+fI^-4pD~O6`1%s zdyKd10fA>^LS_VU5x|6;w8M98rnlD!D1F>RgDvT->FSyT(2jLXAo{QcNET}y8$)FK z3>+-2Kt+dGG&LivY>ljKoh)IFT3R?c8lwXWx{NHHaxl=@W36Y6Seb#PwYk0?s4LE7 z{jr(8slKhHDY}?UTrmb~X=`h(X9v|}VQXTr3jsw3M|i<{I#7Q4`u1)Hx=yIRHPH32 zG9+;=CZ>4nT+kE%$c3Hr0gx~WLsL`qrde5=TAN}IjUcSdaV5gs=39^bHugunf|5?B zq#|&I!5-4Yf^s6eoKnaJ%+wS>`(T(56!I>W1_uj|Vu}zmgjkveDFz|N@^nFUKIR%6=*SUt1etgZE9EIixlsH3q4v$op6VV8g$p(dN({7Hx_P z#(xjlVLh^)Y0LZB;`wbO^~vT2aLWP!o!r!~3$Q-<*p}Ye@#|Mx&)t+@{9mX4NdF1X z#K%_riZrUoeG_gvX{1;q1(^_1>0jf4$g~!|2dFP-%&qTib24&kiV~Is zHciUJP45r)shc~*fP7V9Ir-R7>Tk(;P4eGXo@?#X>JmkDb(+4hI5RamteJiBY~W>; zR2Unk5p=Aw?n+x<1V%@~f#+SB5CEbI@HSRv(l6^3NizuaBqZggQ`rJirrp z!Q}XWSo%qS-(yjJ!S$zds=SKw8q3OReSMGn`}rnDoQsdAMkJ<0RfqWd!p#6zE;^A2 z^oa<&-CES%8W6)ws49y0t*EQ@@8H)*gyh$sYzqplFKZ7MdIx%+JXT%Wn6Kq~wdFLW zC`&uTntdeAWz`wJHMNl;ih6&QIwPP|lpEf}6`fY`FH{RtPp9Xq`&zmx8vL?P)HReJ z_slHQTr9|~Rr1pE^RlQ#-3eK}MYV))L%P6MS*6JF#HCert+ub8Pc4;!@{ir`kMFsG=PLl8Bfqt(#|9jX9yqwgHNZOfx^0wcp)t^ zI5r|7DJJPmY(T_WMsh5A%#xGhL1s@34vED7Fev6tN=-Qze~vhPAuT1DNJ4Sg*|?DK z@F=vRg@z)^7m#0A?d6$&GB>->^JL}mk`tkU#lC()l?4@fCyOLixux3NGH?H5zOgah zegQs2_3^3_Pt8fspGrK-N)!TBeq=V-)yMOT)fs8$G3=viC_CAxt`w)09It4*SbOqX zTYN-o>{%Spevy=vv&=jpHvtBie<~{Cs_CPIcFVfEg2dqv>>1)EU=E+67kXS)e_`{7%#aoja326(H*_cyw zRaIRh5P_H(Y-?+2px6CxI2Mp+6^zP1R*+0}l<-2F0fpd;H|ZoH}#=`7FU?aAeH6HOA_vck9B}Q#17Y&qij67gXZoEP8cj>2tDGmYAc| z$}94ustO>{8M*w76~^NY;{Ds@=?}|n9>L@C)S{y7+zNR?je1R*&MlB~R8qcDg^hFR z>wxmjb3{4mBaejCw=;{>*Ig^J^x;L?XBPe8qakh&!Jx2+)$upOPj7(dH<35^Xo;~* zw7z;Vf0LN~n9g{#!n%8NkUw>MOuEtesQpcU<>F9pY5zd~`pc;YBb3*~;)ewq@nY%i z#_M;BBdzT-xBD+X`A|8qF}_GJrU!4)o-Dt5LmR&T{K?#hwND>Ey?_32aAbV+`6z|a zJv1_ZYv9?;2V#EZ)#}W~qx<;<+%%5oKaSsia{bA(m(PaYynE2pKR!Q8TbTdIpC?!= znA8=#9&8&Qx%wJ2%J*+Q{xC5)Eum3A@n!rs#QK}}A6NObxev=2RlMK)oR}NyXd7-{ z9Phu@()MtA^y7#ACk>q99yvExd$l;L_S&7%v58qaO}IqszCE+vvOG50e&eNJlFjc? zGwSLdOig~|j6Z*}C=lFiU{Gqi%g3I*q)9tslFu;3n!;jbT5Ah17flVd^{CY>Ev~AE zBUDmc4ET0cT|-SxQ#a9tOH8dTt?kWiKw`8uH?($lcZ0~?-{0R2Bzv)ndx2PbKRhyd zy|}YM)_85CGPkssEi9>RD?_VpbA1)Us~HM81t4-swu;B%zUF}zF2X6GIJ-!wPzo98 zEY6aUp%8%aE0ZZQpyaYQc$olYlvbCNYx9YMilTf?Mo~q6ZgxdUHmIxVDn)LgGQUVI zRhQHkW@Sq?xj8^RWJ&nx=`x&3Y6|e3ig$2^OBiQL-W*+i*s*oT^Sl0xWBkStUg?P);mj?|NLp0x;~*0Ev0MZl1vI0mB2X_ z+Tx510gJ&F3+NI|Fi2Sh+*qn?YGr+S3PHcsi8X?|@_Fs&xndr5fhrQxF)YYovoRo=%9~3*FGU+w4w6|#h}z_WF+zG;NN|CO z!I1xf1gZm%Ap>R|q6~@*UKdO;JV}+6m0JW-2^^LF@^CT*``m1w)7NBOsGX^uy_Ko630P@XdPWX=T;22>Y>-p2 zf$GvH3wto^Wl6T~x>*_;SQ_fW#X|QfPJ8uGM{8?KnkcT0#(Ush>A0D@7#Z5x?uA=s zZRci!2$+e1E@EUJ`)th*JGq!RJGvP;=@{AI)Y=&6L1Qa-Lp$WioJ{Ra+|4ZXVZ_;@ z56HpNdY|JyTW4L$4=ja4XwuAj%XM4M^+<-WD`|BS)4j>EU44j-5N{9A2 zneH(H&_LJun?G1P=olW{?_qE3WPzQuus620v9|y=aG$G{h1Hi%9<~Qe-P~Nh{oc{c z_0TtFpvYT!#2-0iV|B>>KaY|DpaZ|(_vas7t&x2@h{&0#hb{Ke?Yl4cedlEF@q26c ze-HS({f|EYkzr%)Ze?@O%ILs>|8wl*Py2rV?SFWAIDEa&(Z&{UpoP8DkFkIG$3IR5 z#v~+0ol+>X^YT$1tVp1s&Q2Jz=){8h!62Zn&K~`}X4b|KiUxpmpd(9X z&u)z7?cQOoYi?$M%I`Zb+mNUv$eOfHQWoq1}oD5%n@q?4?UOtj@EjIoXyP~jloGbGcdHUFtKs7 zvH~i@P~Qwb7g(Igg6ZN?#9jky0Mc#H3}A2LqHF9xR?^ z+}gUcwFYzxSv5sEQRGY_15}NFJ&arO>5@(Px2bGo|ETM&BagoH|S3>`6O}$ za$fN__!3iz(}n8RO|#Tm78`6>#DKOBpzObkC9Zp z&6nQV7i?~8qgyY-hLS?oYwLCK2>E@GFGaF6w(gU8Gwejc=2YXaSa*_;h{dE3+j@6? zlkzb2f0I8aeEgd8BEcoZ>N=}!X=!R{^6lG!2a4&eOV``-BkAghOWJ%*B==rSKulb5 zQO2obIi=oy7!~mReyuVjKP*RwGhqmgZ zH@mFvR6*DY?~3E$utgGMq9`!|k;%nDzFwgKANof`z*Pti3J$G3S`RCc!(wRlY|dw>5BUOJYl!N=hzPTx$$1O3$qidBvWi(0W^%RQ?@}-G$x&(iP-+M*GVOOItE72GpO<&*hzM?xl*W z%EE|1?gbDF0D{OnUmy~+3tH>*CH3tEioVB^n$G5+*2>;nmz$LVg#{G~dF7>${Je7& z#S0}}#m}FWX|#$QMW#qyjJYj|q99M(HeOK`-}!alMooe^$g)aOq*Rvm!B*!M_kC`6VLfxM#$L zsAFN_1VyUMXsm<2DC@l|CrVNjZ9z%pQbi3TgTYm|rJP9+G{>?VE;Lulq;(f)86yo# znu^BGo}Rw0D;Md*{e8FZ-MxcC$ZJ=6J5h(+-Gz`>Pgh58-?i&EfLVA*+_`%5-r(K4 zkYG=qK7IW7-o4=`!_Qv7A03;Vc{B9zeqUYR)7qldXJf>p>-EHijI*K4NP1CyB9C*1 zP0yfHc(k)IVT|a6^F(A@Y*I=>Ovkx%=aNsy#ic|i1AD;|X3%&jvN>}$A|Vwyzc3%) zkf;bvSZraCe`It*P+$O&6djqE5)l-6Au25S+?mvrIMfHDcq%D0-tT1GnK+-2_|$}y zc@(FDq`&n1QidwJIJbE@;&Lumyi>B981zKy{5&7yr#vz` zJ-ltxrOLxTxPj97%T7XYG|*os?5tj)5p=4mt+xb_o(xa@7`53ev%0! ziusuV0{n3rdvWd~edf-@*zo(;3&aX@;@KO5SY~s@8dYv#Wt&EkCt^!8t7O787!CBR zA3iarV2Umi@{PR=ZCcA6(H5mSf8sRV18OKZ!@ zR4#MI->vdC?!M>Wp5Y<`Gl4;|$4?i>uT5N14^6<-?R@^2^?vZ}#KipI=<195i?jz9 zM>3zin!4P{R95v|UjO+17VXo=_xETSZ>Ohc=~Bk`R@)F9vQrx-!vt=W_pA|Hk}_p@r24*H_lBkIqlC2D;xb^}m14oqanqGBUA1xn0dl ziOY{UAIeMb9(*(S0v9e`yt&==`thsDM*~kb9=~KyZ%n`2n0VDY`r_)1yZ0YIZGU{{ z(hwq7f|a%Tx%oNi%&SEvl{G&yhL*WUZ9~MulZ!bO*PHM4b?0?7+_;Sq!TN#`YVI0C zRDMy(%*w~`@9@CPd(4pxPQGiY8>zoHoL%&I@WF?su_v$BCQ+D_HN?y4AgFx;Rghp(!lP#3@~2mWD4a5Q&963R55zy-Al( z@C8}QJdh`dLZw1emL<+C&XPcP6=~IK4c1o|$nyD|{Nik`JijtKS1eXn=a$u018uIB z%f)&5N>x4rUDeY3YE2=Zqhw()R-yUKo!;Q`>GRJanOA7b`%;nfCh?ac=Yjm4jT_G#wx?D~fX&)$CgOydZ- zpBZw{Xb9S(geIp+m10>QTawOzgDcdClxl^vNGRvA(`giugvX(+udoFS4tMp_!uqS_ zrMdOF1-t@vfwDd~{+Z2KW6ZB`MwS*ADAe`OLV;TPZB8arBNq!O#Kz#%()b3Eu2j&| z2q8MR>2T}N5UfJRtDvwLz-{cLhP1ua^ zUw?Dfn6n{(2Es{z--z{XhD*w_Q)Y~;5v%Vh{_ z05fa)b~@&$phEeolY_x7Lsw%XYYSsTCj(m>S0i^zSAYm@O`HszFso?oaLCcZ)yB{X z!-P)Oj<$diI=DMISv$Gg+FIz@nc7=B*jeeLod~oCH&O)tu1XW4jy)K*#8HceICwxoSmHZ z?{l}%w=;LJuyQ%*;Nk52mD}%+eCP4q*OvBnCMe&vw0AHuv@tg|v2p+EKg@yD_`%82 zexIG0gNp@3sEeJkBLtX>o|ElY-~aKe!-t#?xqbyy`q6`5nVT6}SRW$3_pmiXp2xx3 z0)uH_hgjN}=vbS&y4e`nI9eH4;sF;A_dk8@U~hf!KYwv^IBMnmtv;L+_ivq@?T#G% z`_Uu&zxmF>`CI32k2pHJ!@@fFhv>hZz<7OdWLRwE&x&-RT%}gwm{4R&MClp$wIjJz z=^_aZ8Wr?e0il+wNni^OG;I;-kZFpF3bo}`Xi=;#QYqxzr0Cc`f9>Y%1lep1>iRA{ z!`(2UKxf~%7i>Vx2=3ap4Gaz3F#wuy+cuCeklZ3?5O;%MNqSYf`slsFQ}*uIwo`ZK z@6eWo`9kpC!7hZKMv!g77*WI)$wZhA032jh7A6<*{N3Akez6@i5B%GO(%-%MJ7HYy z*}Dr(h#j#X68n=)>eD1;WA-Y_Uy9J)7!PzZkxdu zFsM+RrMpMR#LUpf%z&)aGS?xX?)G3*6RxW19vgEU!Y0P94nV~??%Qu?WNGh&Z$r-& z_1NYHy2jQhNk$M5*AZ|K8=y7Yz|O!LzadU0sHOr)#sICrx~`6J)^sqUYUO0=XlrS2 zW21u%p{t&&t&M|$vAdCjhlR7pq5b*>2ltzqSQ!(RCOAd`?A&W_?&5CmZeU{TU~cVn z=;)y%9!LM;m59sEG&+OD=E5MOBfOd>l3}pV$nitiW288v zQ0N>wYD#EK6xs_VxXOz^6j@n0g~e6JOAFAufgX+H#~9%4@i9e5YA+Tf)mEGCrozCd zO$NrM3QC21*|8;CuzXXokWr{j&;%(wEXY;JhL8`iuVl{`H|;pXxw~C@YsD$jm#XQRY@Mve<&MeBZ}wMEZFJo(lB$i%Uod z4>%bf!{4+2_mUw zRg^SIrmQ%kRiW_K=CaghQ^U?G314q*WO+?e1TUAb;xO}7#X;Vsp2f{=CUf!Eq?|;!-!mFzyi2wV?b`ep6#%r8G;O z*cV*aD_8JyvwB+_uQlGh6wo}-Th-9St|2bBR;R`@({gC>{((upr_V^K5%D?Y3Fkz9 zA(Zr_GhmgUR^(=@qoTt)k{VJk`1wVglWA`L?34D-fHVn(Ba2NXddl*XI!lVe7*6i96SB z4h#(3yZ>NlcnDplL-z)UpFVvt`tJSs-2BwY!@K=0T5f}w_qtb7_~wrw(wUUA@!{uA#Ye=4g(uv88XM6be>UQDP)J3?sQ};T#3(cZC!S@VjtmJq zdoC?LDLN_kTzE40?@8x;5(0yK{R0S82gJnsoD2$!2#=0AlT0}q8sZ&+*}|ZcVS%T7 zqx`&ry<@1UDTxtDiDzOWlH$(C@l#j{NIoT{hQ)*;9_ZyCn;6m>8sQld8rA6I=X1)h zEZRFZJSHeSINm!ZD59yXJ}e^0D8M8&c4?64vt=a|n=wY5T7 zp!Y9%C$yfPg(swyr%u-8AWY1Ywg!QOaV|E=KLoAB`2nHfp|L%YF@BzYap7Sh@lo+n z5q?N#MfnGX*9HY$_CFi#57Rd2WKc|S`SFJG(u@9ng;ghg{G$TTh5H9yYz;r((b(U4 zrL`+IHSSz(W&bs?OzI%V^XoV?0foae%ty4>4= zd7({7g_%MKDN;?LA`72EcZa0fG`4DL8|oVB>gw>k8hnPTYU^lgfhE?}d*#aY!NI35 zhKHVxJR5mCIR}C{2!M!~KvTtF@F?a%ba=F&ExfC#!>_AQS#_zfP;@=*`KPJL>l2j0 zPa-LQb$n@x#^Y^>OKB^Dmrq9L`UhUmap$II)(1Wezgb_+D9x6L#F~1oh$}%0t3sQd zCFL{uLUN2;$mdcrRAt5JUr`onggM#_Oj~i%HHz%)>`a0oteo{ zf4`Fcj4rHWaVTqf63Vsdj28n`-g*v?zPPf%>v(qk=G98!;Eh*z$DiFBym3q0@$_AH z&+P}drbKf$AJg94?RwGBE-t&@MJ1k!-i>ClufMtec;L#!n^8WoNEu)KFkJKCTF>C^ z+P>wX-jR0%>vsRU2jksO?_E}o_uhHfKK5ed(%jg)8*f+ckJF|omunVAuRU3qc)mp3 zxka5QzII)BHX_w8k@8dgxf@WbH*Q^fy!y2D{=>ef&-%wl?oPj(yh$5-4c2|fyPm$u zdyn7Uz1P)wk@!e`F@N>OUFmuhGy3*niKe^qW?N}iR++T2 z=4wrjW^%RV&TC~}dtXtNMxv>?55x`r7oBE2VU%ISF8}e(4Z5t0CoJo^)7r~UmpmA1 z5I?y*Agz1GtxRO_vTy-Av!J>aOn3-iox$5*R zO<|@)m6exSnqQSwpvubC%9H|Gj*Q05l=C(O5(-}+Lw*V~gCD>ul#1x^(r9wN==0o$ zNG_y`McJJ6jTPaVj76|vw~5kO6U5?l#?l8GpIBRaJSJcf3zYXX`T}!wl}+84c=`Ix z;L`=1N0u&PvIL8C$_hmyVDgzXHkh28 z50urpxeY+*SHX@KF{C1bzA#6XE{uL0o&EdVB2`Eez1>(w<+Uu6&sA|gvx)UJRt6h$ zi8Kn2FI1!}CE0~EHq1axE^zIo_yx+%*#vZxHNi3%TXH1Sq;gnbnOT{1=~4JvSy^f& zo@Z0~GsZpS$CrR%ruJpxGeQDjss6xE4i$I4HX9{cCd zA=Ez;NoT)5@BedXiof6gd(7dx!zh0`;^gLLYHi{H5;_Wp+|6u_-SjOT+zwiKI5=Ri z>bpa>hg_V$K5Ao$Ad97~ql2ljDR>$VR%V!;GDh`T|#&CSa0kiEOU%Pu2xXAnG` z5#>Vm%=p09e>~`L$mM|BmtR@9**Zc;Ss9zUc-WGwn;JX1!tHW_&t~Jk?@L>3$?ky7 zK38kZCz@M37&y7$oq@CF;&#O2%dd?+e%y}`oc&kCpT9e5i%^$`g%uDZsLXXVH_)?k zvv53YZ0U5w*$Jq2>-~oh9YSI7Q5P3iTjYSO?GF9T$lO}r>d0Z2BL^J!ANN$eTze|5R z<^_?y+P)1_fJkrscKbHa33pgI?%IL))fYRr?JzRgwteR=PzU#X0nZD7_icNioRIF? zhIOE+cIy6a+wYL@+6H($pzp|ep;2qsUWg_gSm-?;V%7Mb}nQYoQ{)$oi56&E!|8^4>;L46IObLXe2;f z&CG->VAHqU40B;A)SDT&@@5zg#DxR=YLM+=h6YZ1F;|OOLp*GxZ?_k`cPD)V3wwCC z7DmwB#?H=0RtNUEySjXH7&Lox$0P2bZCGF|(iE-NI?gVJM#hG?aA4)&cKFYK_{)+1 zGClQI|HN}?6dDt7Qyz&Z+?qEe2M$T^Wd~4&q@<#3QZzs?J3s}j5ISmehHcZ=0u`Q0 z@(p=hfehW{m^g%>(%_Fm#j)eZN{<~oag3h!Z}7$#Y5x;CEsbD9TrvLzm)OKw{3?&g zF+6TcCuwOxR*-BAQf**jk4eG}$z|lfttaD->c4@3n^7?GAMhAdJYlKyt2+WO{H&v6YIO%|fruJtf~ia$DpsZ|yr9_>iqtZjx0iog?rKmQW!b@GJLFFYAj=O7@(T|1^=}Q2@D2-4 zx;@Yb66uqziMw2MBjHqRL_=kIuwO2fo6L;Ph$`!7@(*LBhO_*` z63%ki@!Y)BYC&^mv0tc{uNN&+t3>5ILy> z_9F0IcY_cGSQN}T<#1# zw??c;JIg5Vx#S<-b15OHwY7&5Sy7tTNQ@-(%5TS>rE+3p1EZl%;zQNm@-QFTSs!s) zU=YxJL8)PFnX0g=&Y{x&*5mwt#8XPM0^@11g5#VjFTbdc&SZfmpjefh`02T#@M;JdA97c;S3lcyRuydOzQjzSZ@4u}kkJ{=O0bPm!YIyv!dWI_a#mG`NH@bDnu z^h3e|BF>y;By^tY2=P0Ub~@=oO3;}^pKx&5{enUx!jmKXw2gk={ujeflmrJygrNQ^ z);BUbMv>FtUln&cDcIXTFf=KkEH~Zr80hVuTF-z;PjO9!mv0#n5bo_2QdXXm=XFYz z=MSKVDnFmAu0#SIeW*2q{-I6&NvYMjb$$^|KIPRdp|2ymsxQ_y*7ya7`}&86UX6(N z>FkaQy&T-o78)Mp>sK1y*iso%TnGx7e@I`9O#YRU7^0U-5rtTr^1MY zTK`qx`b|{mIh|+ z-$<{j43dgu5~4G!7G4#gy_JAD--hZU!(b?&XSppS>DidUIS3r}? z&g7sCjSyzCS41lsc3ER?R+T!ZMgUSadxa*FRApyN^VP(tKm?8(h4NX*BQRICyf)U_ zxxpdUgi5YNIw0dxd#+O!uf63Fa@oq_opjE%j%(@~c@Ogr%7U4iBIz|{X=Ur>>v=cc zT%7Hme>y=0GmciD`Tkkmm6^83PiHubPg{FSo>NE0-ramRNE>}sar^bvySHCl?D5)@-X$q?a}Umsp;FjH*ZnsFK$mS z#&s;wo>Ni-LSj6Rrx(`@UBCHw^23KqSDsv|x!ThH;uZ1m_1i(o^u>q6FY2aRZVlb( z>o1hmYwIpAjrHCwDQJH*_L0I^nCH_LCZ=T6k?G+H;xlcmZzaFDy1AetvnVIKs#rNA zcq8H7xUT4L%8-HrA*rNI4-C;?OfL^l4hcW->l!z1Xm7l2T43FHhatJ?2~O3^%#YVO z%*FOIB4sW{@JcFBNzH4oYwf(;gP0a*mKSSlt4b>>ic7R8vnl~eqLl3Xt7&X%Y9Siy zYQf5Y8`{?1(Fsx2*4T>6FIR8$-?(*m@K#qteN}-vBr>_0AYNT*8-3F!E9}hcoS>i| zR|a%Di!=S1G0$9*5DJX!t$k*XtV$GUhk8euW3UO<;wmdMPfU}uL3W~Y;nJ4czUO#xY z@?qf#W7SVkYiu^1%9`XY ztk2SBCjNh>-UFEZprS~RHR77`r zLP&swl2Ahrz4wlSG)2VTKt!ZT6{QILYs1|8{m%@dX#|L}*IsMAYk6gvAGtNPzQx}l zICC)EiOGcp9&3JSQ8LdFB!GAr2^|#$l}1FfIe;O)7+jSKSBNW-EV(=?RY_dsM~X4H z0y+kikvbb`!4#moaZChZMa~byu!2HOgs#Fx@UC#Y1Wbl983Rdht8nlHe*#S@pDm5ex+E{e+qxQy3d+e?nTOI%M(7_`|zXBXU z*U;XChN28wKeS&0k8T8YgxZ$Aj+Tj@m7Wg6P*;zxLpRc;8d%WnfSG3^ZpWk(D9vD! zNJGm^AK(QF{n*!sOw51HG&)F54^vD~xG^%KA2L721Qo;5%2-F=+K>*2wy}|gg{2-K z2>M2PbO7QpVq~Ig%{*#pr;h__EsBmY2=nGtBQOZ8Cs`I%{B%` zvwmY|Z*u&*9}fTeTP+3}K!@y%AugEoFaKd?YWkZ$91^$7=?E0_&!mQT5UAqt^Bt0znKLXkb48%T0wNgoX67gsf?sK&t7FWxG}pD%p}>O$nb7{Afr0(k zM~se94H$-WoRFY^;&BuRkL?JgxtTqM{x!|W{>wl7;rKtkGq?Ne3AfOzh%1oGS&`d- z3{p6O@s0{n_@AyrVO%5i5W<2`8<1Emz%t-mkpheCa*?(cOmA#%!LQ=uU&|PIf+B@1 ze*!#|TYxp0Qw4?j#Q>_`fYq}7w!H~VChSB|5#%%#DNaOqlR!*e-_F^QeswmC#zL=FgVhwU(LOnxRL8-v^vCS!T2 z0K@M{HBv2+^{tqQ{};C*6M>OGt2QJ9Np;1$_P=pCygM$r>4o>(Qb}^7@B05Hn^Gi( zFmjt9h^NorR$rvAMt(9R+~e-{?-c(%=!Fj&weuO^PCK;0ZRxeW!9_kW*(uwWT3l4f z&`-l9W} zZ4qofUks(j;q%#|=B-HX+UzGm3{Lk=52tm!8g4CaFABQbTJG)ZAK^;`i+Emcr<3E^ zoNNzw=eQ(?=v=qFl(@`z`5Bj!(I@`xefq))RodyFPPzc85qkbdA61~Ulam($Wxm&g z-NJl*o!v2ZeCDTfKe>4Nx_Nkd5#BCtF8;n@zOXYK9Nj|#s!OuchkQC(JpF>MwYr75 zH>M@_cxF~Mhi7?sy7GmmWwq654V)WZD%au;FSR(BE4(Zg#6>H^ZwRuJv!jw#C56se zYMflXQiLCK?HDzFuBUnvx#tU6gbNph;U!$ zYu+hEmnE@fr8&8oDn*@lL2-dfoO3Pds!AeNr#d-QVkhZCdb;vbQrFb_T3*HKwXDRn zjGFf3jM(VGGkFNa?|z1Q8<*>$TEkg|F-uJPl!wXLPSs|Tg7yZ7(kA^N)e`uiTeeD>%8pjMBc zJ%4)t-q7>m*Ka3ACvf;Z^|b%)V0TMM`a2O zF&EgWXVjXP!@3m3pVt02yvPdn#S8dGBPD`z-zEDx`*wW^4slL72y}PNZ ztkTV;-O0(Jw&p^aYekW(x~8ElJM*TOk2OzUzK!>Y@R zzOuTy3Z>@j7Z?~C7#Ik_<`<;s_I2-Qxal1Xlz(;6jq09`%Dn0#oXUU8mByyYbK>%H zW1`t_U-x#;N5_fYPO=_-jMC@O56TF7qW4;Sv$c zU+?Srz`glktZGUW%e~pjt6BPdbEKp|FcLYjC4Sjj(Rs7}PTxTHosz1?(I=x_kNf97 z2&YHd>Yvvw^;X?m5^X%Z*Hx4C@ zOOlcjbCd5+XSLj#c|ZAV_|?M|;oOI{(OaVxqvfMRos*AP#M1H%Qittr;^4UQlIqLE za>0WqqhlXFJ$TUFF+SK@nX4Xn+1fQQcW?cEW=jijCnZ^pcbin4&DZ%w%Bsi2SXJMX zx33pAJ`dho<*+9|$~IoVeY;GItcr%-43ys*s7YbRNkp8vW#Q|#f;;zl!kew^Q9f@| znmN5SyS7?!tFCF~sd7-3TU47c`FyiNp_s^De=AlDvv0L$RZJ)K1&b5Ya?;~f#SM*$ zu+qA^`s$XZ){fTZnoGDN^%Qw%L*%UOF43B zl88{{m#fvO<*HZ|w-oaDOn5)BSWL#+usl{0Cnus)3T5#UMV2C7CLsjk&yooi7lFn2 z$Q&r0#EfDN=pT{FwB%KQUAfbOt@VvaR@8=wC7Rokv7e0)Y%IbFWBIFGnJh|x=^FL| zYKg3sjg2WbdurtqUIV;24u4(1o}S>dIg2aY#kUXdJQ$fCT^(CwZ@%X)E{_YQKF-ea zmRU%K&aye8#nsJ?SJP7)XlQM5RyWzw_X}J6t)-=@_Z-$dj-fuSv6tA33;glVpO+@b zHpP+SZ%&8IeQbB>i*CMeRkZ2%nK(E0$B-f3Bri+Wm^b#r5Qb2x8PDYCd z;5ubWT1IxJN}YvlVNRYpA9K?UZN21IHc&?7}2e5 zkA3yEr8Sk#(9*FWKqyD+OP8E^(qb?*4X8#;3p^;(R@c}N_z$M8sevh4VGJ!T6ws`` zHZ(S;S$+A{-+nrH_&W?T88OWd(#@#!gBA?1^$ZNDG$Rv>FR^@!*qVU`g=T6&(=;>J zqiawN3@pLtU|L(*T3eX>hM|A>JL_-0H9z__ar7G#>u>B#ZI2iu<%U|6hM69X`K6sD zRrjke8AoUo%q9Que}40aUjo=+^Y_CBG!v!{6BASnSTbLlV`$Cfs2LNq^k3L}{ow3_ zfQF0TRe|v0xfs}>3RPMrY%Vy~ahP|DmY`@W5{ltY%VOl{0xFcL8LDJLNiJpM{9s0U zI(cp&J2N>M@C|eVNoY$MR!1?uz`k_)A8tQ=Z)*dOMq6K#sAq?6KGg~mW_GqEywF`d$-*7)2b6i+d#{Ab_4NVhp-}mGDt*vXUw|_s?#!gFv zgk@@jn2+os_=XG`yf3=OUL6LEE(4m@{sUUDTK5$b5=5-CWDYSPS20in$5ATT^Xwds|cRLX2&grp9#o zA!{vj>jS1{x+r7W=vmvEo15rr+kz&77$FIJ(PLPn)W@*GISot&9I-p3YY8`)PP4N= zcG$+iP>)KX(X44Y+Jptg82TQ$SPISL*q&O)H z(Lp6Mg^*tn*MUYSh08Y5klg1&#PC`K+%TjGQU4-uh5;|Y<*|j#g)f65E7p4uEyTd3 zA~gs9oTMnyvI=tx3iI-EbJ^FU;enAR7?0o}FUNsg;qA1gNRa{c0dcb9E{P%0N^vEL zgx~Hl?G&NN-7egMOeOvd86-&;q(a+aSdi;l7~vx2$aRu~L4q=%$e^zNb6aIWf#pT8 zA=Y+chdYl%@-zOE{4~k`NjZmG!5_nK_mZDIsoKCS#0MockmSY?X<70Ae-q4jGTZtR z&jHVl{Mb9XjNEnRUf0;sPuo|J9}jON2A}k|@CQ6Q@)?p7&pZEF%8JgM z%}Z6CP^F&yDJ|yI=@ZVUPs{$9S{{AM_w+@#3vTCpoiDii2Ksxshh6mXcXB%Kc^k5#-{mssxnG= z*$w&SXLGXU3Dvp$^rExT=}tA5(!%^tD&qa!f+LDBdzF${AIO(rtsqmKEJ?c*pUjU@ zHzc1+ui#29B^5{QwHD++*<+f~KRXM=}UhD!NQl)UE^Gor!kvZU(zj9g{1TlGL` zbo{j|aw0saxh$+2XFXZ5@%+?CZsH}k)2Gv=em>VFbuH|;NI|7Mxuim#Sk~QAd+|z0 zs4tfg$K>V5Cuecp03zNB|S5|v+{gMh?3PsMoX)#J~wQpEwqbfN@7?^b7 z^0m_r|2z>BcT4RXYkRJ=Pw@L>jY1} zqphX6uCA`8vbL%ktn%j8wws+eH{R2G=h2h9W^4%gu*ZEw&GG3A>j0g*N3G%zbx31w@aw2W6+hr5KrV2Ykb{ZJ%SyB0s>sU{Jp({LoRYSm$|_~{2-rDKcwkc zd~O89+7(VPlCM{;UiI$|_6zn3a1E(SudGnVVd{(Wy$N9>0KCZb5Ihll5mXUj*s;I=p*)^pkD=k^V%}a|;&ON1;m7U9Va`(8< z>RhjGEO9C*bWj&LJDtle_jD^S&Mm4bsj9DZc6SfB^2qa+$6fc*qUN^S^}W~-Xe!Be zDa&p2^(v_C>rxEl#|CTI#+YrvFuDiZd@@@)26QIXbHMF z_xrBpONK!W-$Hg-V)32M|latEJd`ONRN}or)B3T;)*g;auVaD zQeO5ddrZX6SRIpq#6^@Rv0`FLfVVte!cUl4Qp_&BSQ=)>^Hoy*y~(MG*yd+KUT@9Q z+mkErH&}1y?{&@hln+d@p1c;!B~CP#u%Epyi_fi^$>L`{>zzxkYkfF2^ZeP}_IKq^ zUNl#BynoH<8}F>De>_*+kUKN{ZtZ1P_tW;lu8FaM@sY_@-WtJOXRkd>xm8dtNbBxj zdGzYugX!@P_vhbkDBdi77@r$`c(=ac$*a+~pI?5!PpgN+YxlDYf?SJZimy%=4LqM; zd^-N<5oc=kY5UFmnmerp$@44aV~^V^D(~F6c|S+pmc!=?US-8gDq7#ome$s`EZ%=U zHQ9fEbZdQ45-E^yJBjYjC-3fzJ}c;Z4jLJZl$Ek4!q;m{{5-|buH7l}kN(ORN7 z^7GO_cm3#lwqSaAkvqcL0G&N1SCC(n1-yNIIfjGKGU3KbQ=s-TWpPA)YDIc>TAU(Y zBvnY25@B+hJSje2%Gp%lM1MM8p-7g-DP%Fp%D5a=Vs4xwTPjV0iW6lQ6lI7(*ucSM za)J`uVH+T2snq=?PUk1`Ru4%6#v&)*88=6S4{Wj2NnrZ+`m)@N1> zcV=Yz4RQbF{CocARbUIn;~O(G3ojq6&b$DRWqIf$vB(2S{xf%Z_49(@{k(8)M!@6F z&I-gIKLJO-@af|R7Kadu)?j~ca_1&D*OwQ!KCRDv{5Zy&9s3~WjLm-Dl15H_VzUI& zc;O~zWnCZ%AX5vV@}4G+|5( z$*WUk0o{+xm?|YDH6?A^E(6U@4p9~-hjRw#21!W7pJAdYkx5KRMJo&$MW{3wC(2YT zO@l89Z-mU7q32iC($>`6jvo)VdinuJ3xVA+s0;V0MFKff?Vgj~=0$+W@Eya+}>zs=>j7_WJfm z4C&t;Vn8A28`w~O^-D~1=^N8fKLVPZTsfi{G8t4THlVdF{!BY)1hMrs>@g}~21EhY zagkBfHPE73*wE}Pj~ul%L@~^WZfb99LN&tpt*xas<c&_YjBhhbx92*!m810^XVLv+C?Mm9D$K(;h61`ZLQ!66goL8gh7In&DK zuss0s#%2eM2u*VxzzHeZ`ulX4R3^g|bGRlJz|z?n8Zixx82D9R+Xy@nONN=Y7WL@2 zUmi62&Wifw;Xj%k0bazymce8iYTJEd4qzTxW7D=`YS|gmfTy6-=yW4XWY08AO!N;J z=o~wwhZQF~GYi{82zc7V2QxP@CS644VH*4aZfLa#~3$`G#KVYmi|-LT;0T zqzO|^m74{Nh5T_-TBwSX$YcWlUj(}xrWt)}Y|hZ%{RQ%XAi?j^0k#lAYL6DlK1Aja z)ht68WqSBF>*+D}?}FCcrM1Tx=ygnleWAY0N%5-$IzSv7(3T)s0 zJ-fevfd(UP*B5)>%|U{Fp|fZAuKjy=gGLWnB1|{EJ$m|pZtSCJXka{9Qv+Q+D&mKR z`g?V>55PCuV+d4-rUAZ&dJH?6$4hKUgB9K$?4at2j5Y6?C zj=q`cdb;`iL2=Q?`^EW18GKP$I`;}U$g?!_c5%LoYpI`$6F}oX2^FV>B_3I6d}U(V zNo0u8i^gitsl2n^zV6NloBMdWUkq_{a&mTbIvMlNfBifALQ-ndY1gD^L4xv(2XWFF zGqk~cf44xX>~fHMmuq25rVqFUSH+w#ztGO$c3H89dro_mAo^xOT4r{FqOhFLO7n2y z))l%%%4O+7mNcKmy`B;6BhE=_uXN;bFLNSuD$38x-BQyN1$j=+!G!^l5!X{|Bq2${ z;)+sfs)U~#Qw3X2M7-KbK9S0=;= zuM+4j$s*1;6X_THqQj#EnROQns*0jy%2Uo|S;CBhk|w|F@geQGgrFogK_PXky<8oZ zaVni}y1!)`2`wlp{2YHhBot|HwO?Cdt+yf;pD z-?`J<-+%YP0D-;T?w&h?cX0N85a&jpJbg59@7c(!XRqGAd-v|`^xWLo!}gBeuErtO zhpOxn&g3ImM*HI{P+OsaJ(pRs@JkUlI4sd+&oCDkuP!flA2*)>*UIXuoc12&jr>?y z&bj)+Tt^>J>BBGjcwF>%3kbX70W*wb7Y6%X^mif7dwF_>hq$^pc!qd*IJi58UgiXP z`Z#->bH*ZT$b%no>N+omVY+4yu!`> zoPS5(StrkS&p=P#VDG@-5brJ*r|ib2+wHfTIyze_F4P3LRu}tJ-3s;dc6Sc)YY(V) za%e70YeKcsy+V~(e!;snHNQ4romp92Pt>=z^z?-U-PqXR$He3nH*~(69)Dh4oTV;- zr&ZV5jCtGEwkA;MD{GKSEGOwx1@Jde4#S}{!i!~K&lkWQD}^J5189t(;{K@}BrQY6k zY2~GL4XFh;i}Hk=J0(d8I0%d{RmaQn<3x*3KFv&W1)p(*9W6;99#3)ywgihKL+>Z& zIqyF#e|nAN>zLpJN1m1>O;%*5rNQ5e!oTwI3JDrT?DeRHkDmm}m67Kk)*@2~p-dJp zjxCnP#8l=db9oL0JDEPqlRT{Swmx-9KzuDaFyZef9Ym-G5@N9QCjGWLCbNnQP`H+^NV zAADM!XncI<=IhQ;?4Aus2ly-^a{1HnUFoxmfw_X3$4^_IzZhM9^rB^9WS0GUkoYvq zX&QJ1`X)lanZmtI5h(MNI`(4{EBQ)|(qDtD8I8o7=hFL?@O2Z`EYy6z8XvxV0uF z#9e(gkX$!1kGx={g!NXKm_r`yr>5j4vJzMXZ(YO{6QU^A>xrlRqia3oQv-vTHG4nK ziisBRauXF2gQrz9o;<*#VDIu+Yl(P(P%#oV;?%vgCG7dyvsA_;-S zVvLB(LrID!N=izNO&7$a6emlBl9;%(WSJs5Mwla4eTs_`#w8@-ZjyL{SmBFTS6Hmo z_tBf9!=Hsx$sC)tvGrn&yRptA=08h?^Gly(8y`PM5uEi^3<^9Oty(~)hv4wUV&TM_ z<<-~so{c{keYN!X!*nDe5MU~2V|H^&u=aj^ZRQhyd2LfDWyfu;6CB|RU&@Eg#^c5i z>s;2@;>zao()7~G`**~0EPr7<>f=2?Q5Uo+hOiiQV|gJ>pM)40QDOyLjoO%M~A|KmOtGUt-LPNugR; z7#f+=8HeqEV`-(McgO%okh+FiSVLmiQEU!bfAx#QR18sJ5bM}4j+q}dGG-W37)%ts z$l+xJI@zGH#;Dgddg^ zOu|E~sk+vfoYDn}L5IT7(Zxd;S|Mg>^tFkZjR`Ow+8X3L(?eex+8m>PWkVR-TAJG! z>ix>*Hw^o~eRJ$PQ&WrI9kTxN7k{=tZgS)o$87)l+vD~YU)uimyJLrsXj>TW)iXeB z4_Q8K-QVeH(Cy7l&3^hDP*#DVVZr{Mej(RGE+haAnp%3HBvp|d6C;sIqQtQhu@J00 z9DpMPCzhbdi+No#`I-z%ELx5ikTM1KDr9>ajMy|q5}+Fy*@cDq`8fr}#o38Mq>^v& zei!z`x8EBcvop}v)J6*oj6#YAa)YqD5E$KqGT5%&Glfh6oYrQ}!6s zY5Nbr{sK+o02Y`*!{3KFtHW5NrGbWwCv` zHNmOhg&AhB5aEaIHQcK~GteP(jam?Xx^UtcItM5yjp=Fa=V}t*x)>ZVU>a*^nlW^( zVQp&Y?4@aFnHXsp95ABo-)};t9Wb_{=`gHpu}=nECc_kb3}YlIL0Ht>t7SlEz_T*O z*#bj|emz)m&}n$d7;2fD7#Y&__Z!h^I+_QxtZffy>lniw)W&EXrt4sY8CjWGTM#yu z*0$EBni#vY!uIuH6b7}lvCvJo#`yzNhPAG>fj+#|Utnz8%nVZvriZNT4<50zw?$R* z=uw8X^{;;T%ilZ$+&upDud{xkfN1~=%oo881LzPzMAEgo4!Lrb#L!1vzZy<@UZhwe z;fF{q64#I5{kCm}n{HooBLe@x;W(e1SjN^@WE8&NiHXUetKersMy~qQi4*a7V95=V zTS#URNy}ziMUYWL5ozSak=Q>{Ol)fnUPSEA`YUorZs5AuZO;jJlR+Vgwyh#Gxvne8 zm?7@@GdU5AjBTzwZbv>g>3?B~i&RtO3bF#080nvp)C>~$A>4i#T(Ygr_@vIlg8`ff zgA59Z^u(^i%0v6>#yz}|Tt%`87PGCkb|RAC8Iq|>biuY&5$>?fKO~BpGvrCH7zB-EmO_zEY$P-BDlL?_e$NJWcF>aenTK ztqaihh2MoQKaaJ>*#xwSh-w;HTmRG`DD8MR*Z=lW?N&7!MolT1nL>HsrFyquzvf4Q zVLsq&IAysd$rH{bS9v(ZC8s6I9L^+42~k0zN}Y2)4=4AX0$p95e{?+W;BiiUT6yMV zlr$;xpNu{6?|+^m&cjFuzQ%>i6HNF823+>4>qzkm^J593MPkmAzA*1V zuWHYxf&xiBajP{=El7=$ij@tGnd*eH$n=N{R|VJbGP%t0s*4q?cydo?7K!2!s?%Mo z8Y_z$U2+@3F2)3$OB2Tw#a?#wR}`v3VwFj>8CB78wy= zqbSU;b(1T^X$21F^CZ~9&6cIdCgz^aNGZ!mQRJcv-;~x^8J8Ky8R4)qGXw3B*Q6W;Q zn=Ad(Z#2ad%5tx;_A3o#!p4N+>MK2*N@X@Y2mgEFKAa}DUn!p_xgS*GdD)}C)5p~b|UEdDzB1sv8@Noo3{+~-N^n-89iO^=P?a?mvD0 za(MXdyNSt(@yYk&kGpQQw{~=ltKZ9nAE%zbDyd6uiQpm_6LUE_>}o`KNa*FTpn&e+ zKtJb@h(_N)zxu$?hG(9|2@*L+np@B14bM!hJ>KWqi)_mh)M9@WVa9Y~Dyf2>hJnxus{$g<1IZqF7e|DgsyZez7~2d!Q0)%vCZ2v*x9k()A6$R`3u#KP7XeTy0UO= z9+%`eRpk`rR98AXyLtH4x_FhSYaN=}%PWZNyygoIF7A0*=OC>U3Q{>qr*o3dD@&cS z63WXQT`QeyON+`1&pPLU{Zw42P^MQqo~v>wck%G-@VV9O(AN_X3SEy{hjx&WiBud9aMLa7I~)^-FD$Hygw0CJRK z@DhS6ABlc=UO;nTSGkrvaIUGUs=+U4hBP%c0K-sQ-$E*`o_m9jU%YuUGc*2fVtgJu zU@YR{5STc=;2Yw|>Z0FJz(YSDfA3&rMMrzPGE9_EhMk4H*jGi_DDo$#D&#p)k_Ao_ ze|{@kDMcbhxDY+{beI_a9Law)F*!0UWWRfQd+5```05AIT%;sUk|k5bve8S3i(KP> zkV)Rmf7;{;*^3*q^4FpzA(x0EWXUPfsks#iagkD4G%sGppIT}bNqK3Rg-Uh$t7!#G zB%0&T-hbCMqMq6unz;40zq`DDdGYmR$NIgg&a{r6y4T~+^GXFH6}1CJ58{PwFQ1GL zHar^^t$g16u*@1?OOCylBpmJNd-1rCoj)@BM0xxEqdSitf4I|3C?+M*MC``eXSR%6 z)tT5-a_eLD^E(sV`~6jK=DF;}ZX7EwbU(QNa+0(7Zu#x>yR~;u9!)*HQ=DB<Eu>43e+VSj-Y&~J9tM?N(TDUA_$!8RtR}Gc* z>!LA1JZEbmQIR*8-CkAqpn33dS9?p@z|`P$T0?{Y(^I9Dg}KU<-0FJigSu9P26}pL zHdI&P6;fD`lb4&Hlbw^HNNhcyqw&eyi!uZS5(y15|Hd=D2`RtK$%xo)xsQw zzHcI3*4sUxpx*Ae(^;2~1Y>q)o#@rIkfG`6`I4rre!etLrOp(h)|Z+br$~ttM}9(g zjEG7Z2jOo-DtfWbxzpZstETVW8`jH(D9(dfv20@;5mAB_xi;}ZmXZP$E|5nq6AL1q zL@4?oh-alslVsx0xv{AbUy0)ARdH-QA!TvivSrE@He_0iI$kUkr6>eMVv;l^QLx5h zi)V@C=(r>zDovrNlSp`+O_5Z|ssZlKUN3KvPFPvLe3D@{5lft!y&tn^#909?V zZ?U76CpTFuTVvD2=-U+@PbmKMk-fD@JfEKEe@o1d@?L)AzkRx}!V_)sSEoRvXNx|( z9eW4m{qoHghqF#B0WtQ0zq!R;TjO!L>p@&HB8wB*rmLw1CeN zE{HySTAP2|*Y{-h^G4*t%k|IDXTwjQyna2rHS_V?^{tV|ueR8n$@jfno~Wd}s>Qp! zL=7|vsNgB8%xrajZgy6BdP*`nKS&@ZKySh40#zYF4zl5|kV#C0>9u2d;ZlV%EfrBk zRK-&8i!voWLq#qzr=(@(0&Q7XUQq`!Q%`rtty>*^1K@EG1?tl$PW%YF>*R^kr%vPn z$??;Pf1kP-!DF$0I{w3nfM8UyfB5Oh5qonhCc}(jNi#eQ3(EEgAoBW{Nro9WddTV{?h|wV< z^kOKa-~vvY0zjOOt|96)20Ex(>Eqzjz|eq3J7i1K)ziWUF*c{z8Grj7Os+$i6SFvY zm}z2WOf{!yQphZrIeKXp6g?9oW0Y?U0a-M(Hqo*^WM*QmXKo4ZhmMvRV1rDmrVa%U zgn%TSi2+_9La4f$gtjr$OpmHbVQ2%gfJztBRGSLHMAv{PqNRZ8YK9A`A2 zR+0{Qgw{ShzJZa|VYJ1J4x12`N9e|fO{}f$><%6M?%=PF9Jl!02@4C0|6^-r|J_lu z-&h|z?s(*T6MK_C{*tCkXYAJ656ec6LF!cGKEM3N;U8yx1A{JK2?=ob3FQcU^An-7 zvefxmDGKm6;$lg~h0tph20?I|oi6}ICPor1#nc>LJW2&Z2f)rN5|dMtlGD=ClvwFY zS3#<0WMt>&6u{}qSLYYzD8bC(@>uNO{>t{?@9izEO$d+hsS-)>w5<7?L*^vJMtybnri-yU?ys0Vh_Fg2#X z9ccecgQ&2G){kdX&8s>V91sIGk1tEe+;=Q)6SMsm=kq0fot+(P$J?Elmq8 zv;CU;82Tp616JgY9SDbXhPA#KI${S8TWK?BKw^^na-@w5tIPny-iM4(khHM0)-|Ue zwARx%wKOxfurNMib?93gI}8z6=~BP@%fG(+{yP_UN59{Adb*zvx_tE-3psE2T$rZd zaA04t*kH@U;37RDtSLuag);dS*oN21Fdj)cBsI~E8ypVlSi$&$93xYRTrP)$Y$8_> z85s#4OM)^rIWq&_>QsbHi%ybULlVXjcSG`XJ`P%9n^-~03bL$4(%zxGr2nHZz91zC zsXDGl#BXyh*gNh}CX@=vFWlbQ!d*!pONxXZsY|x+KuQ+!YBG>WUPdafSW4{J`Nw3lB-|j zLy^MpXL(9~O1K37@3>#vU$w}HecSiielFYBlDGe#yOKl?~HyI*yvM&K&_Y(RQKMETjw!s2s^%=6A3KJK0;Pbws5J+V8% z4rWV}qmobl=niCq)2Y*EQ~&93;tX-t*DKjM;MygQ-(AktAfGE9e!gWLH#~?(d{!8* zVZbjuywkz6E2S_z{<%1xH1<&@`?#V29sB{DiymR3<#k)Im-JgTdd z9nCJQa7hjHPe^xmO-%Yz=@`6u!3eNid7<7YhcT+}OkS4hO zyCf+)`mCs+xa#ppvYZouJ+#&k9yc&FOUx&(hDJoO2Rg&UuY~h2`i53}7I2)oRkuUK zSl0poWc;^NkarON$|iCX(#k6C#A{#$OZ<8+r8KY8$@m3{{6>~q1qk} z-b3Z=<*S#V>rK3SJB;?&yBBwEx1qb#+tsRk*_^z@YpH7JeR!3Sa#;K)ffs{3-2y#A zu7%!EVzIa{ygl&pK;YG&i=MuPDc5rn;#B$ZgvXJq7jd7aScOo&7wKX$(XtwuL-d;OJYN-jMI$;OOAyb=JYj zExR%~HbE}%D9kHybt}#+D#=eMQl?}SmlBnAkYt$!)j638b$VuLLVQ_9Zt?k|3$@p3 zD%~yw_&HaW7UyKdoy)5z%0GWLCp|weKUPtabfKZV$*VHACMdwWtFyPOrLeZfsixD{ zn-vlibuHZE;zf6)9c!JO9nO_G)H*nyFU(7hR;Y{X-2r(nt8c7KQzyuaR5%JIN}J+h z;yWL3qv8^(hF?BaEv3DfC`*AsR)d&W$L+hr_u65Q!FQ~w2DYP^oN9(VgG@s(5qb^2 z7#U71Dnfs(v=RwL(8a4stD_oeMu_?z|>*0c3B&e)O=xGrU?kTX3jP5LlC zKG^bN>hrrbJ||U~7#9~UiCX2#`O$nvpiEH1! z`#4zGGr0BfBMT$PFFr@I?#Ngp^^e%&1!an!WwtE7xM^tZ?KFskBGJbbBH?*dyg-=L z`=+_A=jmcz-{8B6<=)#PpFXpfUq?Qkn(6PHc)c>W`DXOa(37Vx-;O+A8hh}#udzh@ zZ2IPt&XrZsi+pMCV>V~_&F!kudxI0*&-*&nrLB3bDICdATOli@El3r5Ud}!sdgiAmKW(V;6yh*~n3p8TA|s1ZNJMm8cEZA3oE#>HkQ+PAdajNtc=jnq zo}MI{AIgnVR2GzVw)Z^ie)V>C@&hmLqBv8fDu(M(lb@EauE}S2G}dsOvntN!}o7uKC)LHb0x5{h*deUwISxQKFx8~ zKYjcx8UDN`RVKtI#!5d&Cd+5zWRfVMK*UENFENF;6~mDWak?N*f~cQDD3nP>Gb>1U zY>j;uaUucMKqpnq!^r_+O@L@DSNitl@&s4NW(lKNNX?FIj1E42c`Ish3W$~UspZA_ zC$j{$0-itnu(GkT_I~m6_>=zWsi}p>k3UY#E^y$ADmNFSh&ZueY3kF${8RSQ#@sBy zdiP{vX8!53*%9v2^n32?iw!A{v-D}{{nEsTMPhQ6;Km5}8Sx4tGK#xw* zwve;%?or>fsf9%maH10nW3L|#KYUC~jeQz@@#c9&L0(&9aA^4D=;D$J*@CRHMaq_f zyPKY-$}1>qF2gzu(uUA$K+IzZ3~Y~ha1+V@Fv|?j45>0WWQZsxCXtX2L=s7-1BNIG zbx1)tQKiaKCnsa?S&e@|N~^0udFtu!>+1QB+c*2}J|<3{IFS!qEce8zlP7>tI{~}w zG_+gx3GX1k3+J7G>3HJuul|1Sr@#LG+%J#(^KYi`jwnv4!Ih#|m@}-IR6PcR3Zl4)2}l`MbW;;EO$}oP6@UeXmL^l*l5S>TL^HD1V^VeX znU;no5QhgeEcFRZeNA0*(8&lCeL5X)$S3O2L6?UUqp6QN5F(XKV_Sw9Xb%)qQ;IRu z7@O3TUl;+;uLB5#4owTS^q^r7$%1=u*v$zx}nnr5Qbds%2|pjybh&Z4Vx@HMcrq^OxTqu`#u>Gh8x1BJ8bQaIdt`;W}WU z&Dgsiu}Mt~e=)FCtf>q3JC>RC>4rcn?mM8Pxyyj~f)2XkzP&V4jeT@|cw#iYy)-Qo z%5H5P`WIi2<+D8~o9#Ey1v~^;5NwI50BDhE>*F?izu31+M+Y}Rj}g~{ zSg(PIBh0!3`;0YEHru_Is%vhzdk;!y_)z;aP}kDY)6k`u8&H84fg5WGy-n^bo0?l1 zqk~4L@Mwg-2^E-m8Wr_2Ce7X$1|aPKlsbcEybrHV`hf!sLsO<9WIbiCF-$;XoajQPFX7e1|h} zA_xN)*}294N#2osi$*|EfMqbzjX07sNS2?-5Fy!}+R5&bttt{g2wy7_N@fS~K`Ne~ zJ*4f?;vJntDz2>UyOJPA(r)5xM*vCrLNYRBJK`(}QVm*-^vcK&MBZb^BqLRl6pBi? zQv@ULz`h=P<1P6|G6zWxdTqx9$tqj)_6H!v8(Cz-L^SyoA)m*Nc-odgJ0eVqJCZ_8 zK+Y>~-(nkBLRw;xI~hju;tcZh-F~#4IWtmBiNG5nzb51x8NVb;bEKr(5n$UFaiKLy z^vT>#4Gg8^&nzyg%v(65;1C-Go3lmWSblAp-8!-KY4Y{tlNTEs(~l}jvJ%zu*~yWn zjH0r}d-ah%ZlRu~%If;Mf)ck1SC8VF(v-XeRb^68thcjwXMrLm>w>%cd5>&Xq)-+o z6XiuHW0Z0K_Pd&L*7?HU{+)2*w99GPNe3vckkB(%Fr*vC_8~6$dR+4h?yGXU=ntcG zD1b8-eC=W|$nBTPYk{2XP7TYrD2tK>wN{on*W_G`b^IyJ-`O`ZhCoohQ5=z%EESZ6 z6cx87hKaHhvpnn07q&N~UG&cq_$t!8i?g^a{{&@ON>gx5vsG@= ztlSIda=B6>&c(MTMv*UO^P{guU&;&*3Osj(^Vfem$YO(Ughhydyoj<>Vq^fo^Kk*( zOPpkfqzpyT&A=Nsuy^U{9~>A~P*7T1BM2zJbWzwq1SvRPVMU7T9zh=XQCf429a?%R z#EgU4@pSJlV{I| z28Uh_zj{6P=H0}*@mJ$B^J5SCZ{2Kfs;`KZqzHQii%;0?(M5G{xMEqvbX!R)+Xv*r z7Uw``*MLjmM9}TvPVY;89=_Ghxwmghi*nWM#H{m`<^E^FJv|Z})MqXzveV91IjJ2z z-JFUEk5X6n4hJ_E5EIM$Z#Ue$bg|bfDEwj|*EclcDjI^Gm$2k~B`Cx-#HGQ@y|vn@ zE#AZ1%h@frvMSIyzbvmYrSd{{bwYugmy;7}O#W9~nthz=tKBObTYbC(1Dp#_hlb?m zmpNxS$ubnFd6Imp_YAd8>imox=*wEQH1tp?=UP2} z;>ASP7I(jTw7kw*oEs@6X=k9RfRNDFb+fs?y1Wur7qnApF}LVHN=wl9;+5_~GO@fG zTt&dgxn)N&y^IZ~%Gyd~7~zTFKd7uaG{A7sT#GtT$L;RhXnZ_)^5X61mFbCz$*I|S z;=Zrnkgq?+mml7J0E6rSq}C%}AOC>+cYKv~4ed46&7~E$yK2>ZG3$yrw6UhOOjV>- z*EXgJQ6iWhoST_?{erv77tU|aj8EMg*?3v~QX&>?%ni>hM<(H~{pP(VPhP&AdcN7U z_-=hlP|?36O_URnpQO>sm=BT!2@$PG=BreB*{VDs^<<({VdUped|>yY;?`IR%aJKD zVm^m0eX~^3EB|;u^HpMJQv-qXK)m^hjJ9Y&OIb$Yo%DVfORw ztj1?UZ^au(hOIwK6i-&E?hSB8Mq4YD4+rNTeoDQ&#Cj@xST@Lt{3s#vmZFkmdCHF~ z;{%)*(Ix5KOEZGekD^V^0tZ84FX#Ka`kpV1-)^jJ%eYt2GXC(+>-IZO`a2qVYZWO? z-Lt?uV32KqBi_98aBQ%vd7$M@%lu6&Q?+&zti=A_g7WO92W((e+U|A;XHwKp^BSxB z#|2~4&)$r)V-llc2|;uuUr<{3;?036%1u*e$6sxHYQ-VpGor-=`p9I;d&p4r-xao^6q zS{zzuzgr%9$KkVy=vZ-78fPO$u(=|boLG+%%jKfatkk6C*^j(&?%lU9UN7{`N*0FR z3{QMmn|eGu`C?o^#IoLw&O)0#UHQnF;&PWKKD>`4$TqZKZCx(jS^|6Vb@z*B#M@W% z<3jfQ>eAHW=*alQaQEcQow=t=Tb!+>wb|HsHgB5XZzLzitt5%1Vy;Xn5X`a#(Ja;k ze|h1>%DaU(QzOG8QyJBNXT7Wu~Vnz(pigQvx?m2c&Vh8L-3fP6@aI7Qg`M;3|$LZUZ@z(tuG! zx(vVK4y4Bc-U1Gt(=(v5;iH$M5Zv*2@OEcsXIF180YG)$PbaYjmzRkN)}Pcrojh4^ z;-{0Rax?zrd*v!|`6?$ch|Rm?@yFl)>YE>qfB(&4D`OL&;K5MG+LD!pwY80%mA;j} z!J*^Fe{mdO44S?j)tLV6QCnL(L#7dxVr9lO0v`|sDjRES(7%yjq!?&Y?Qx(=L0?Rd zfJ+5C2{1y2t`UuDK-JebGts7Ca*56~pd2=!>uAGO&@*Dd-TKnZ$bxEO%rLUIvDG#) z(Pe7y*Vn_slA*Ds2^flcCdNi4_z);)Zn30(YjY@!VPGx-ijfIWvLDQqQjH7?EHb;N%|D)FRVCcQ~ z-g{L*K$IpZC`eK7d57%Y=RO9+VHgH{gYS9IIlp84r_arxWj_4m+%I2zcKQ!ypXr`b z)&nF^!$cY0ojOJ5+&}($+0xR%#m&nrz|Ygg!OPvjJhtF!L9SGknj8;X6*J4>fJ2AC z69a9O2VaDT0B~3+*1keQ!eOBT7>qnxED;eGiNhs14F?Grrb&t9$Q-yH04Zi>Nu<(j zNeWg1MbW^SvIu|MFaGf3w^z^n>q~?4RCr4YN^p&!qrkg3e%t_iU&q0imp`F)Li0Vv z6()p6_t%5k;#k16R=K2SMEmc`^$hz~TNs*q}gx28hH)V3T9 zHW+R4rdUu0jS(rt<4|!}2$TCjNA4I^^?kUG2t6KC!0hw;itv{xl=qeNstM=yZ9=~_@baV3Z4M28{&Ep3Lqr1ldI1vd$l(YQN`nrD~C;I?t z_#cPu703v{2(urllvn}hV27b2h8s!YL^@-1bdJcaW|=F793sLhQ87vR*{S&9fK7t` z8y|=N*a81hTTCG8BN0pdb-tJ{(^@RJTe4gp=@gNrt0;&S_7TRNOOobE!-|w3F$fL@ z$s&ZLI3e{@FbS?Wk|+2YAhC{^7AS$?Mwy&R1bv=VSw~6>atX5WNO=iJ1xJ3AP^R_p z1_TZ1yM@EZ3kaM)de-FQkmJusOI|z~7m+2~N9K~^h}2uMPxNm|geQKKxr`;7Y_ey8 zr*%YsBsC$axqkESci=ro9-HhjNRWQ8%&_}U*-ZBJkfkx10zF!Lrjv#DGUEvxe&DZ~?8Wl~HgT|f2+9G6zOzR=c=z`0KK&i--2v?|sCsmHbY%L$ z13LY|M16i!bFcVKXJu(^*JO8PS^y`5!}4)jWHOv;t#YjII^~LzZ{4gA`$~%KZ&k)* zUb<^-b@$3eb9QJ9ErDzA?By7l7L-Y?fuMqa0_niHFtnWDh zo#*Q3nRvIUR4!~AIX99=zYEUfG-lJC@1iiHJ{J|XG7cAHuFnGrG^Xw7i~ z5!}Nk#6Kc7E#y86tcR#OqKc%%l(ve3+x9mt8%5#OH*V#6Cg=H9+_@c|ni?D-cDip{ zQdwAA)nwIZbK8ONvd{OhxO?9=F)OY>R2l6ZRV}f#V&6#eOcir~NsKEEjth6X=M!M( z=zi1Q#wJ7*m(R&4i1hWYyy6@{^GmpqR2|RtW8~fm%gre-^9pq0^MoF3p`)Xa$GFFK zwN2@Wq4{&{Zg_e+@X|u0`7tiR#2tE`x1b;+F)1UXGmemE@)I+g5g@4<7!-4*_K~5q zF#nwBpa_?sFx%X;>Vf%30d3qIwp|6=!;7F5msJ#ZML!B_9vU1OeDHW_eRcEs(+491 zIYDcz5bm>?@u`{dq2YnPfsXFZj*ix*=BApurur(J%U2@!)>s3=Lqlt8LwgU<9KF4L z{e47tPany+9~~MR#h@$-V$;*p!~KIJ403&lwo$IAk$bH!H)EyhHu5>{(ctWp~Gu?&oUn>1StaUvmd=!&~{5dDWSr;Gu{F zH*Gv`co*KvyehhtS9de3FgW*mif>&l&d6!H+uhq@ZC6p^=InOsmNl9T zw{H|#R$5zGx43)z`g-`;rKMWjYQ9-pTW6V-CQ3>u$V<LjHDJvPHdxPvTF*8UD_x5ya@+;dpB2Gi(+a1t)i@}iQ-goHj2^d$;lCU zDOvFmf-n~9Frthmr#q<$IMJ+4f3)(3(^HgP|KwRyZ*%#0RbdH5Ee0+Swal&zY z*kQ;mI;ScJTSKMx_Br{nf|&3W#&i_u$l3T;KZ_fh1HvEeZLom#hP}=fge}j{vWb_= zbDSytFy-yi&VYpA8^&Fg3UQ2b9tBA>3$@4z{E9mM7naokrR{Uvh-JH}qjy=w_?emW~)x3d;gpB+vT&!+Yo2Zu8& zY8&$MN@H?zGAB1?wi}k0`?HyA%*^J>x<~Yd!zui)h419nvuBU1`^rWq7wd*6^K+*j z^f!!@XH6XpH#YYb#*~yL~|2?C2frd;O4@ovt5vwDFL<3bNc^ z@`#?96d{V)EXpYfFR12BwNES^?1pZLTT+8w0Ws3lvbFPk`I(^FJvtSz1xW#7hgFpT zd!}(*+gRTq&@-iw=gn7FD3!KXfQdlvoe89ME($QLwKUGkr82$VL&QGMl+-S zOePcoQR_4NR& z+tEgd)1}ugO2m>2moHwvAd*~^AfP6>lyga%c_ICx0|rIz5j4N=zjt=N{MUc}bnW+6 zADd$J>I}MB>f|u3mg;F#xz1~RsI6!E$)~3^)e$26>|Yvu6U>rlK1{A%MrlzMpHa1kk z_%65@#)^uDYG=$0%;0&Uu4ZTkI=d-OstpYlbWbQL6RH$7Wd#*=Wesxc4EQ>AJ@kJl zavG}Y`kHdu>Zp#X%d4p9;-p(iLsiY-ysoZ_fxZUrM#kIJwB)pm^|aMA0sk;E_~bK+ zE=)8nVAJIksQ})qE2wFm1J48icDNxX#!Bi`#3wZs)eI1j1h_;?*G%5`q#j6-COYbB z=l}AzkBrY7e*Ve1FHWBS^wh`tpM9$L=~sWeddvFE*PnlPO8cC)ilP$KtG@B6k8XTt zX=m$T@8*5a&zDB`^Kf&&btw%Oza@#W390dzK!}JIMudlllVL>;4;RcZ9mVAfLPLXs z1xS&HhekogM>FFH95l!><3NEjOGzX#o%rbzha)LHRV>cP$OPXfQ!L5LN{JTmI4ll} z_s2i~>}C6pvu8{{`YrX8vI6p$$1&oCWG22-loKFufTaVHJ*R8+u2R8&1h)df6;YHX&U zuP+ZWqc)BMTz*iYXi?O_xyR&~s*ahuvLR-+$(3g+yiQ$BBQ?|%aa3#Qm>6hNjIcDI zP7W-nD=C=h>Z_UWdZl^-}CkML0Zw@m+VzRoRO6=(g}kz z27%>=Ur=WFDMX|5NPwd3L*aixoxx0Fg1i_+qFExNu=@y{W=cxheLQf8%Z9Np)G>&UUJjx zD1AukCeliSygQ01a*rs2WGayV@5dk&R02MPlt-in>X2Do9N1@wOEPgkdO$?r|3zxh zMHqY>*+Y^p9sAeKFX*1o{|^Kr8#WWl46%R9BRmNC49Tt+*#ZNz@!ww?`R0)b^ykZ( zZ{$13+~(0&hTq7qhXig!kR`FBTV>w?Qcuc0>(Py}FVP=D?0;l>&>xFvq~^pY4%|C( z#@5zfpi}(%%{~nQVq#|(J?3|B;EjRY!Q6elBdnU8oNg)rF- zf%2lX^h%7C6qck4d}?l0WEQyB+`MULTNLak&ak;-Zkd&ndnxU~Srv(4*KNeNEdqV~)A&iDX^y_tLXIHn z7P{Vn(PDm)*!oscWlEZ)%u(DM$QG2@Ie8Se2Kq{@Y5CIT@({(*+28T@O|cJ(aBt|X z4oi;+Wro)!h2;eV2d5C#eYhm*6Paw8(wrV7bo0Ow)bD7Wfg1fCPd^7Aw%wE$5uFgp zv9G!*P3rer-cBsr%Pwymot_@)f4sT=cx~;`!>J0sAezToel#_`Fgx0h?$z`F*W&MYJ6mT z7;j9>KYog{!ll{8wT)+wMsX%qTi4LDG{3*jXc4^*7Oif~uJtU8uk*P+)9FKLNjI;1 zTDMrcJL95QYB^emPD=7 zZ98|1>m?14SNYDaO}FhG{9JF_xH>brp5AWW&fc~zmicXUHFmcuYQ&8$UTYB!Ue4A% zEt33-kfa9uwRm>kv-k6*d$-r7tjMezd5Kx!nK-9Ts;MBxo7*RoGV^(V`Et_NNhm6ia&A`@gdqeg2C zzeu=8Re5z;InJWXp~1)uVqHx&46>RU{Oz}Q_V@G-k4-*WSbF~A+2+a`(canHJ2XBx zHtgWy>Sf;*xSA6C$NyqO{PsqV(iQu_(7BtxTLDm4>7sS@jM-qJ)Vw zn&4pJ0l{q!pIhA8F4=E+__C#%C1~P?;ER7yKh@eT%zM?>&^p8%UmefrTJG9<5yINu zonBac$(uaLE6!TQ>Br35?D9o=&f}&1jm6@*B|3LMgb2!si4ENeKRg_&?wse)MwSk? z7GC!Cbw$&=I%e0N&;~{%(!BJ+g_hEU1gWTObN%Ve;Njy!7PGXaC%>-x`HRuouH5R` z_0IX7H$9#6-G^BH=xZ92^ftfak7srDK8uTttVqpEFH3EW8<>uJxc+eJ@#s)p`&>=& zRCaUA1hMv{zGg13cOblJq`IUeEd>)myF8-4wyBwukV50c5btQgX_-06L5K9ku~$5- zS8*FKut2T=CFNI@<&~5pg&OVQ8Q|&G-dJ7J(g2cXG4`6tE83Y7w2dIdNVr}a%#Td$ zvSvs!BqZbo_bM&MAp}5TNpS@#W3}ZV`IJ?nX;@!dRZ&$&Rt{U*fKlyiYiRB6>wyl- z$;7|clFHKV2HS+dK~KTN?95!x^!Sn=i+(TyCzM7@pzlLAVZWOl85$mv#0?2za~boG zmg#e^h9hEV={Zf0`nqNc`xmW}m(H`0{(lAiJg|z=5#-JSpWFlL)y*)qLq(E zhAQVeYT8EzAJHGQ%qFuJ*y97OLu-$o@rbv)*K97Gc)j#)Wp#g-SYmGOu@7cuUJUh( zy*b=@G}&L(R$Vc+ytpv(e6)L-2n5FHpGnr2Zdp}XBu2#r_%VbD38^U{BW5CDEXhnw z0dXTG73o5<9u^Kp2UJ*eOr$J9MtWe-VQ7mTQSD)xk&-PXF*PAEj_jGi>_|?!LC-n?J{>)HY z3&d`a{3yBxY9>YoXU?3{*HH$nfvR|33j?`Es%l7UL5yh`Y7tOi8rnLVNC2wokamTp z4wxA_y4uF5=-|v=RYk*05i?}aTN8U`jGe`R!D(+Frn7!t|~ngB3jI!aSP z^PDc##8_F!&``_R1S4k3aykZ7J*vL4;isCKre{<&4NN}N&^FdkKW%c#P)CWXEsy9M zp{%2%Owm;~JOlj)zeYpbl&Yo+goDxvoUd!@Dr#t;>ZM?aYMQDlNQ__VQ;l>#KZEsP zbqx(g&>wX)z~fWb(lt46@`XNxr;)Z27KZWEsGrKi3Oe@(bxlR=r@_8EuL6DYdkl=} zsi-MYjPM0&QYi++xsNrJbxu&UkDdSSi&JLWx*vaZ_J57^zWw6&e>FaR%JA%O&90pP z`0KAeJFRP`Yy!^1+25W2i}Np78g)j7+?y77&!6Vw?eB8!#%+u1qU88QQEDv6EwLCD zN8Vcyf~y?@gb;ZEBtn2egb7e03kgG(6&Y5bU*cnlsHiv)IsoW^GnR%tB8ZwPN$4FW z0r7$#88Fr}Qpi9eq*yRlmW6W)aR1Ydzh3+5k6)iQ1W?exOr4^nr>v`{^!{%Y;dC8C zSP+RoCA7#eGxpwl?^Bd1?@`py#DeREtfD%cMNPysH5Ij}I@A+{3DEWcCF1)F7gSDO z3&ac*_GI)A4gC3i$hl)`W;$AEmlClpoCRFgMQIfg+o1x+1_ zs_HR0ih+Tlwu-tDSoNejQw75Xm<~8^ND^ut(*YU=+(v{}aRC4nm~#fiDJs^%R7{oC z)xk8>H^dk@CcyROO$_yvsLDFV8d@Kn(o)jL-x`hrHC$m(JE=)Q+*Vsl749yEn5h_d z)}+X3E29sndCJg)qIg=#6x(?x^t4W*hp4BdrKo49XsWAYrmbag>b!{&6}ej#4Fe-2 zV)czp&k&$~p4I)sY2!2J%|H3uci*4+-BovgeJ#v5tCab@=-O)&CvkiU~pS?0URo)SDf{P{l(E|R4$ z{ErBO{3BH+`E~!Btq3874?sv0L(Kt!FORg;>hkL5vjZCK@PNamF&O(a+S@k-%3X9i zlg>QcJ=lF2Su?me-8=kpZMkQ7Wo&M7;%Qr129p@*tF3FVDitS&czaoiCHWb_*^RB; zwv{;v#mU(L*3LKX0toCN)=w6pXHC7IFgw{ybceWNl8;tQhPi3Gdi%JKr+jIwH5x87vuz@V;d zpSx-0iTCf+31UO)%Uj|jZk65fv?FYI9$wZ?_C8*XF@b{Hw^FOh#KHVqVYHG&rX?de zHao}#Gt!Pu7hG)a{_JqUCn!46Hovwd(%qhe!;>qHE=&j(IdY@@?)us$!Wi?nx^gSj z+JP1C@8uofXYOvnV%l81>1X~UoSvKEIsTsUKH@N5CM`y=TjPB*$d^als~K^P9k}0h z*T=!%tAv@Bo8uTz!^>jXbZ2qdy#An(g*I+bbWo7Lqph1gKWbYyI3YyxU(e(}kZ)u)di&dsi`ETJR@Zhd2G zvxrexx7f7xGy`p|w^J-!VGZ`q9&-+{vAWacaM#)1C6JX&c>8&Hx!QW)yloYI^;WKH zO){-8(>1~>P2lh8CZ<^=T86P=;-zLbotXjt z&iCxReQfRS-lz(RZad7ssvUl!kE*|XdYv>tpbZe4&I97@>;)(!)E2*DwXc=g4sge*49ZoI} zZEHHGJnX&bEFVwDRo4nnkB0Q@oZ_;Y#*BpM%)sD#US3vS!TCYac@`aII3dl*tB4Qv zFGym>h@%RGQHc?^8ziaHWUMPs)eR19Fgu(p%d@ksstY8kiJ?JZp(!b0NdmtA{UEL& zEhRZ8qpY&m-pA8-`T1eiA|WYmLIR5x-jK!Enyze;6c!;GNXnk3mbNBT@_>xTFEqMJ zP~6HVg_I1lfwks*gbGWG3-bX$1h1~7xEK{L@WVmhKqm(RtQaE$6%}RW;3?GAz}Tv; zscmfSMA#53yyG+T3yT|IX|E7%t!>?%BaV)vBW`XEPELcUca1sVUuQ><=UqnnhX;Fn zqBARsb93A3sxzdesglC1l32R`ty{^l;ZYgbdd$j>i(^bZcrw@iXm9%^bAEd2Rr|99 zS_Cil?dnT(e5RjnA6C7b&&g|k${CLzUVP4b%1I$;j4G|qj zXD@A&9UDsU3*!?pe;5+FH(1=spgr7rzSPynZm)dzq$6WwbKzNEPKHpNpCiamisR-9 zq>Yar@t*7*K9Hs~RJB%B%#0pBZhe&7*;ar=pPd(gGrBVm_sFCwoCy%8f}LFYF!ZCWM>m z^(m~EW2xzxD_MKH6Tx9P*NqEe0_iR&bYTbt!O5{Xc^F^LOv4FJaZMz~7Muo#8>(v> z>MN@-H&9VjkPW#cm58%4CDIHL%r7kdibUzSR4tK6a^QzTf|h_PUs^=qm?|!>sKUB; zb!}Z0;)Zo~RXB=DanRIOH{+mzn8MO~Z)aO&K|zKn6_-Fm++&l=;zmZ;7%h1^?u&6h z4!v=Ys7Ay4P{0diaD{vTYY<|I5T%{@<6=(j{A#;g+u+0#FTc4617nT?tCkl%S3EFOc#|&OR=zh#g4rXC7 zjupga?LOF=Z{UQzV={!12Voh}Y#zbmusMe>SN67+#$OD*MEeT|+4@lR#N6uI{wr?K z-h5ox!OF8oPqwyambW(PYn#ijR)&em=aBcTm#<$77(om=o1h;OgLJ{}?32ek&tJWI z)YUp#(o$5M9F^I!+|aO2yxn{B=;7n7y~&}fgQ>=WiH;}Ttpn}E;aJ~Pdrw{C*6_~O zLF8-p+T+Iy^n({KRu@J`A3S`vHM=-E+)>v(IKI3z^?Y`9<$x|^a$oIi$2RFYI{Rf@ zjr;Msm)*6@)P!_l6rkT&2S^7gB@1l+j6`O_wZvqUw4#wHgpPuN1t|qd1!5h96iD;9 zA(rIJ1A~ZoW?Ve<6M!8Fak7A60wRm}n@8dh1u+pq6w>Uxg5vTT{FBf<HEK)|M2TS zefp7^5v(C&s=l^~>1i_~vvX%m)y+aKcN~{rs$%j)o@Ik521+cv4SC|3gh( zbh|!Op(-J9r-nL}2GHyTaNJmU#_%$%EiE-2Lv(D^04mU=Qo-bakWx`oG%{313QUy( zgTUCxgp@iuDyL1%jE&WeR8FgC8tCb30ZNFod1LL9y1E7i+NQcH*l34yc*bv zS_+y#yOX28$`oy7B{hn?nxY;IC9PBEKh;pAXsW`>IAdg}t%}oW4Q+KDC1WZ;4DfG& zP}erqR>S7+2gnuz^`S&=6RQD&j`1#ic|#2iZ6(c9->V-7fgTK!kG?#i@df28IaMtK z{jbmd{!d>Sn|<=(H)r+#`G?bcRX+F~soXzrMS0-Q3*H#>>mi z)!h|!F6ThL%eBilu4L!ImP!RfBPu2;E)v@d;Sms0A%b8bKM3PO$Qkna@H4m}2pUF^ zan)E7(h`q!MFa|jr07QUEG-#FOd1-X@ri(Ppx%Y8?<}b#BPlgSnkkAE3fZ9NG5s%n zbjjT7>fgWp{!bsD{F8~guBL{%97P-by7!N1qTB`Sp@N3OF?nF)KY&JhU+y>mkIHdX z3Po2{QSLo?3al&a9IL$tiL9?J{{e9V>tDxUK^<590M641mG{*3f%Q;0p(>|%TplD2 z5a;Ev$t5qROQC=>4_^-jF+>`TR5UQttYjbu2BD_BiZbbnq3H$ci>Zkzm8xq*K8S*X zz5z;DdRhjCX#c4xoY2xxQotS^Sd=F6`ep|DXH5vuTqs7$r%jDe_)^nQRZ%okG{E03 z(1%nVJp>D>CRANzaPq;L(bd*eIDgW_Ko6-|$U$9AiWYoN48W)u z;GaMK{`>D8y|BPcr(wPe`A#ki;Gn>3B+rmkQivJeCreO%{-m*mtuM%@BX9VNd{|}|%2QTVKWkKoSp0c|iIY%;phd`!xNO_fr zmpHscq0og`A!&IbKM3L>DTQQ{&yZFuXsg&j(Asee8EYgvSa{q3{|Ff)gXCYx95dXJ z8*uE`Pj~c5Nhl-v9GEbtjzWc`1`C28#m1LKPJ-c`M;m3oB0lgCNBqKAJSe$f7W`{m zl6!XO{tv!iGC&487welZU%jR6?H|xy1C{ZHpdGwrfR*x&PUmol z{ezwLu)_Ie?sm(<>jCzQ+U0`gm5$=%ZMcfeSN#>if%k5@yA)z7voV&DJYnPDRqZ;^ z?@(8gYwp%w)p+MdMs#R=L;^kNM{j1NtqU`TaaEA@gZa;#>pz?Sa`B(RgkP+APSp*I zn-12u_&;B@yJPEo%gH8yaSz}OYa6>P)MqjhlFV=2xNKz;CymUoWZnpmw=cBLx3sb> zDvac013ZlDo^cWBga;=tkri5OQ&Aq*;_Dl6r|8zT7%Qojb)_Sbe>;sRs0nm$XGIY8 z6~W@f?2?+K{NlKl3M-=6*2doUp0kIyD?gc$n~_xj^Mn=>>Ru-0+Sz*sr>6;|!W8pg zd~L5@`^SyD{7Oljw_915FT=?dD4^76PEs&W>~)WCf8R05rR1Kw@V--WmcN~=Fa4ee zm+k-4IHS}Kz$C-~A7dfYu`W?{aQe|$Ad z>JT1MnQIf$=3m6=hz!qXR(6jr)Hir??)gd6m%>s~t7^L@rXJ2ee6sX-dSG^OX-Z1$ zy;xsam|K{A@aW-4|G>cT;6P7LS9=Gzu-c=@}7h;hV{C%uY$Sv;#XNCo7@2__~$U&NkQ5waDDU*2Uh%#n;El+soDB zhKpPatj&^qTz{Gp{Io5tDTEK zaX-*0=zfQbW4~2SedGO=0Cz7t1lkAg*xQRF>5)LcRj1ZIY#Z)Kmo|hDu@E$!^{sV< z{V%&5-0!)#bd7A;BHUQkl#-WH86O?Ma6uT36B?RvHznVyq()qkA&Re%q~u55QI68R-SZO+|H!jm?82T$h^KJ2my5j>VOEq8OJDS1vb|Z%w~{-`)KxEur9+ zt%pC#B#isapx}f8qAF}-iSaf%nzymLPT$MS2i>^_Hege8OLKE$ZFPA`aVch%%FEEo zLKF}n4D_=w2td*?U@a6P7+8RTWs;NuR7PPQZYw1biZ~s{#&S6fhcYr6S_e={ZGAnK z+d6vC1?wGpIR9kf(fr2t2GQLC0p8a)?l3ew>^SJ;Xg^}_Fgyatq2stC2AA!JNBZ0D zg_c)2v?P`G=R36~R0(6sq8Z+`xEx|#4qlcpmKMo=(6QRHSeM^=$O?*i%H7^#9D->W zwX^?%5%hF!e13kpt%oS)QgHu zijbt#lw^m90ji7J+KJ+Azj(ssap}V7^*6J-f(*|5W8p#28$Oq{y;{wwyr0)Ct;=hw z9Fr#IE>4uSK4)yd>|e{x?*xvXHpzRzVjqSi&(gXRR$eE?zN&01*?n3IP{HQTz{1P! zgDocUA{bY1lf$B8LZl6qixYDj54sv_2b;5Atqm3y*Gw<2biZEMkK&C=Vq@8flA5X2 zSt0AqM16IdWO$%;V4!hvv}3-!yqqu2d?Q^cuU%=YeEzn%sIp_YyK-uf;wGjL#Hj=Vlca?Ys&O3ngB$UULo)=z;?7B71|)eM>*sp{37lZA2m z!;J)jSI;2F3HCBy@RT02jd`tTUQ|Q^*57~-qfHn|JdBBS=7>+kDFmqAkz8o?c(v9B!$oOkP=P zE^X<5Owb3W=}%rS?>$|7w7Wa|e4NuT*w>R)I5;-YOb_WEm>TP@sNe2ed^;P-9G)Sb zZAFBv?XArZ=MCo#bUf-yZmDZ1%NI8HZxAeQSZZ1X>b@LKNSOE4#H33Jphw{wd$S@e zDlQ)9wCQ4)i4ripQxoH0Hla)dv7`lTOhg3P+agOh@TU;%N{GdqxIHSC8TScp$A>4N ztwsJqfeY8Xl2Q^<)6+z0BE-JZv8tVw4L1`Yj+%xRAa1++y9s235JnW|UXo;GUCg+6 z;g`%`E@WhqtPCj_hgU9uuo8FWroaFH2Hv?JWdA+mvgZ%~bp6*~zy0~MFF!x^%Wu!> zQ+3s_E_?E0<4^Q-3_e6^>WtoJA5%a1_%lu2FFrgAy1J>Zw$Ul0Q)oS%!PJzgiHhDy zK;8^dh0>r>&JtMGI(JS*9W;71eUJ$trciT2qe)p-mI2RO73g+~3R*hwr1bRFPAlr` zX`WIxhT1YU(WhemiUbR4s#6i;J7b^?IwAT{=hQW@4u+{MMLh*2eTt5$niLsq1Q>4x}ot zpmdy~Ve}ztXqv{F6byB#>tF`VKu=kfs-UEy40)yUmAW=YhfR&414*032+oI@s)90z z7SN7lZqP_c|CqdnvNH7pWqn;m1r=@Td6SP%t0@|4Q>o_^m36;2C4OuC>Dh0-*8T8r zAAWQGf4}_vk01Z-ryqX#_Df?kHEdg7|HI#Zw6M7AigOo_`##>Twr(ExX-=2(ktKzl znUt88j6s3On5d}mh_FzhAP5{ncu_n6IC)@)^8^To@k0R2AZOpALBvRmkBP>@2jn+s zhB#huz!CBBm>fs~857G+Xbp<8q|*FsG3jt-h!dj1cr0ch&EL=2_Zy$vfBE)@KmP8! zuRbx;ICIv3s-|tAt&d%0bxgKlWBG)}F~$GURQo_)`l+!$c2BG3f&<^on%KAz`jOgG{ z(=tFS&s5tGQ_1Hj>Y8RiW*X^epE^lZR8%1p<#i3tDUx)YtR?HqtQD)zdkxr>hUNii$c_k%G$r8YdK}7>zU1(?6+4J#C;OPt{bQ8mcHDLWpo8 zMV_LB<{AYSrOF949aAL=j5!SzC9>CNaQb7zKm1<*8zU2gZ~y#{PpvPxy5ILhw2!3y zb4idP9SJ}g7CsP$)P2&Kf@VS@5Hv$*r$BO{3zCE!?vlL~fHz|xSh13$QLdg zu4q_DBv@W3yY1J~775TGQH`?CNdoUl+l}mC9sQSilnlhDAfJ4ctg=OZU3lThT54Ds z`;WeikX6}a1u^mo3S^H%-a7zKHYDH}`HejKmg4vABlY$2U}IzR#m0-5y9b8{`@|tA zPjBh$y*K;s_UUil@v&^Px3$aIPp{mYpPd}<7@8d_-C7)+ZLh?dLr&Trci1mS)HL_R z%ZngpR}TUsggtb>K%TS9&00rqan^0ya>SRyeVMsQZV92j*&_1`sh3zOaS1p)ox!gQ=2aaXj12EsIYR76(^V6>FD+24Qm&dpntmF_~FWRD?zE)J-jHBm6F4_mlSSy)w$A% zu!`)u((xc|r^j0C^xYY9YRGks7}> zHnuf4_4IbOwDk_a_!{UYI=gY9x)0-DV`Lz(e_(PPMXia!VL&wSc$2eB3#)7E%a0cq zR~OcvP7n4pS5=kQRZ<|XE|vqT{e=eIGDo3hk9U64Of(XmqQT3VP>n4g)D7B38T zv%l?{lW%_ABI$;$za*xpAU^VbGIF±Hi-MTx@b+-z%S!DZFvB%h-0peU+~Ygg*_GMY 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

TTq?0d8_D&_8NqG+?ZxxBP6^jP?(X zkB<%y4Gj!UjSr1YPfY^2wY@ygRm4ckS#gGb%H)V+qWi#yJGg;zPpx=zdY= zL_(o`P*_evS+!#&x1h-5_Koz!(yQia(mP4gv~Z!-4U2sHn}xZS)%myGZ(6%rc-UH) z->xvXXvJE$jgyUwRbI9WDs;}3_Kr5Cj@Gu8H}BkbbaiuW^6}`b$6}P_-NKgYtO8MT zmX(iVZ%1W&Yffs&LS%eyn}65j z;^=Hh7@O-AP~h8AmK&4ln#>Lh;^7BHm@un(yt1fl*(V`7Bswlx6q8;xnEGwTQyzUz zI5;uB7L!vt*i~0qTT|1}*4@+EP+Ng?7jlI-VJ=06u&6+qLjvLR;dqg#c)S5OqbQ%5 z^JN|!F)ZVf8V$x-Il5V78WF0j8YkD4bxqg@L*b^O4qg~adY#>!Lr~juiwlnzmx#8Z zvF^csG;z9z#>R#nodLZ?$nM%J+V(7OZ*sA>W%b44*2BiE zpyE})2l)HkH)9WJ?49wwIbwr#FtFOneY-!ovAVhu%8yLoB*%w^#R{?`Vnfq+>5(i^ z=(EXHV(l<|g+=Gk^RPpRZJGn_&h&cI=+ee(&hUfPta4#KFE+ZP@6mME(+BhW6T|Z} zO^;|>xR7|jc`+ZtBY^LUNamIZIyfQBu9lHD`oOFH?YW@w7GgUzT_~39Kc^){zF?HD z&8)UQm~JT8On<)F(%hEOcJOqda4LRXT9sZt(3PAcZmWGUwY567lipdoI<+*_ol}!o zSsur(8xV{ZFJ+I+@Minj)uqzSY$C2QKdErNh4UmPJ6h5n9G{S~OhiTIRP|>Sy)G=0 zCOs(&e;od@j-bbsWkdu;q}SK&3${noM<#d)p>ZQkFZ(kYiM#z9&xRt0=bicatwUa( z-T)=U19y-sPR3R1g0gIZ`)E%e#C0F&IJoXoQB?^Mo|luKor4@Is0+xZiAA72i(v!f z6ddQtoejUBjbMl8TYO{?gjgDH<`co7mYtH-7jg{IF$rCq9(5 zwzx;opKS70c30=dLYVaJDE8|YjJG@d1a@#7Gc_`Z&U;Iz9Wu~0i3m>&+S`r_P6&>F z8!F&#L~|lIOg@{>7jm}foYyaU<~JCedz*EJWlSMNTad^%cI9orgF);h`U8Jewl=R-qil9o$bo*HhO6fJgiL)#W~ z_YEwp?mQUl*`b9+aD#CrfMAA;7~itful^ExT~JzC=`DznW}sn}nu^*~eii`#iAiyo zM#c#RQ)5*%Gl1L(6P0s@rr^Y% z)iX0OF;-J0@o#X+G|9FWMa=*SHHw^`wyuJap~@NTS*aK+>dPr8D(EWf85kSt8kn6` zJN@P7#yYA7Frf?#jZGlI3{0?*i&&SuuDl#tHU^kAhC5?wXaJU>F;<$+=$UHDtC;|= zf&LX?pr)y;ZD>jb86H>;Jy7e_(4o?lH>B!N)a8|dAyidWAe99|V+amvX{qSxQ#Fjp ziWP9}I!dZQMUV!Nin=1!zs{MQGI&oxm4b4S8tO>u`U<~M0ak$mZaf9GB{>BpEh;%O zruhDGP303H*=rJVfc$|Naa=(GSn@LlfBZ^QO~vH==fBgW>Ycpu!-Wff`{H+h|Lxyz zcrgF@(?2b5-nMmick^;_uyb(2X{i169C21gmLyx8jtRd691=J_gs3=%zzXB@d0fab z9%+LGh2S+zF&>v66($fw1G^FiUPeMvbOZsiA>ye?*ziF% zo{nQ9w-76H8L2o>5+Z{IbgV7~`n!64XYYCS>)(C-`4?ZGGyMq3I$%zWPO6%nG%?iG zR8-NSU^^LpkLqz{Rajy0yx!B+Ld;T*f<0)sUKIFOatiYA6G}*Q>Qa?eG>+phQ4_LC zSw-vEG4!t}_-GY$zNjSkT~0;ygu(|OD1c=M;-UJn6I6^Yt0GT$457_q@4t6k=eW`_ z-4l2VGMH3sr<5p|G*Ho2P}N5AR1?WeSgP`1nCQp@R-vh{jV(FQEet7yp*qC2y0*!A ziX7Z6L%=OgQVkUJa34)IBb|?sdR36q($&$|kk^O(d0azH+2kDL|A!FfW-8k1Cv|b$ z!Ahf|u&AYPsBUKX?eFwd)hQUA)>YKfQd3gV+ZqiAT z@iNFtR~*TfI1)t=XpmWC;NZW-(HP=xIjAY6G`pAe( zlDBf<=7o}+MSMT;1^ueP=9iyuz1Ub?+j_RS_3|}h887#+cYR2E_l9K2qvyq-6Rfu{ z_xHB<-=&SQm`E2LynOL|W9-4=aC=jJWlEUu{m_`?BKq^x_{?!hMq0dAxBXo|Xo)Bhu-?P4LV_$m5IoCc7 zBXbl=p};$pn;{Ct(Cgi#$fQd*tOEVrqMSGc)B8d=AruG$q}H-HH|JZve)l~cZ(eu2 zXc-xNSHyMWMDmKFt*<|DwY+gP`1i{fZ9H9Ee~Z5F`>*SE53btYu?n-Y_p)WVC*HP? zbu{O@5#COM5JK$caPgl$mR9LkY^{G{Uv$fIvGuevPjtNz=>9N@+bbNI3$A(^AWkdD zD9CRael$GZ`EYQkwFBTV5&h+}XFJ69+WN}O#MHn!NHlo;7i34{< zNd+QkCp8cW_{M zWPEabWPECA4iA#Gx#gKT_->u;%?KsoV4qmhAIr*3sLvnhDcN3xAPtKOW6!TwwWjCL z+`K*fnN*<&J^j4ol&pfzdoFpIl5&0`VrGR5T12uWS{ND35Z_NG#Oz!Cl-T6dl!COV z_&95;bWvQ1BqToHE?#gYBT*c09+F^{b=}g=wKP51+14T}UJ?dc#I?KEuQ}f+N{vYl z%$4L6T9wIc?5~?!iZjzJu2|UDJAt5KpBqso<(^q@g7@ zwMJzW?6!k1eGa<1AQTJ*>#qrHT z5jWI48i-zLJ(vU!n@1=-KAo}tR+g5Zk&|9Tr1Wz+MAv3py(lxk1Xz<|(zV3WT19C| z9`FS~4`S}Ns2~R!LzzDFC<%`tmqt_x5zRbvZh@_Bamo zIrlp_IMAF32iLwfl)Sonsj2ohb#;}s<#1W0i76sJkD8qn78D_k4dI)m2Sjpm#MwzQ z(A%kkp_+vm>h{i)iG_)V-iDVicNvV?fxedYx~{ixCxYm0;S|dH#=@(&l;AgyyT*sB z7CR#c=hq(1Ft`k1N*s&Fr86T%RM9Mfe<+B-k)|h;>udh;F}#IW{P5Km#1rNQ<2kb@ zesE~~5i_8DAit*TQ8+)RqprEIwS8`=Z)vBcVQ`1GLgl?!Tw8ri;V!<6eiVVEXPqo8 zjPYV}GH+vG_tDeFoz;$!ofH8hib{VL60pviTAUm&Eqgs#xSqc;*E!fwmAkUA=}(BF zmc}x-68qbGYk5623nOE_YsADz<$;Q$V2Oe{%8CoCm3D=kHqk)2lz0!w;&3Y2?3 z=HUR7&(F&(%q;|F9BwMoiD-saSCv;1u)*5kn%1|})Hl~vWM!lzCBSPDa)nuJ7{5|M zMoQGwzyk^kSYvAMNOogIZB}A#R#9c)?9}#?_1E*OlTTiR@*YnNJRhFx9qZm{Dy@Gs zF*4Equy7!AZn9BOQ`qxpW9G$7_v9jr@qBvv<$UApbMDdx4TD2rQfHdhXBszW z9!*UT%{+edYCXXJ*~{4-+T6g_%BzK^RiGkHQ+9@^M9&aqi`ZD(TxSM7U7Xu`yt=)- zHahj_(X+vUrR}BGiAv)6*6h~i?$ncKjUxlw@0_6 zh6;mo8~q>GWyaR*(mg5n30|WAKx%c>Y}e$&W=a#jkob14#-$q zio)bl1iCqUm!cuTFjxT%1{V#1#2BGCP7GXXoH&v6!^H7o#8PGCPJ0@H%-I-&LGhCi z#6h8fq(P=t;gtcc0z>SQ^n6M(0Q2Y0UA%bl!nw;baS}YS1WV6SDP!ZqM~)svL*-wPUtb!*CQv?&gYB{7pM9kN)faz04n&)Y!G}lB=%||<)zdj~ z_{g7+9@Emmu$3z2gg-up=-1&>rkK|>x3wp$nkA65IqB5l2BU zQ2q$ex8pkKgdNnB(^UlKPYDnLV^#IT$B*cr{7hFx`>2kNAu51Z;}scY#R(pHc+ z*4EQER#3n2tI_xWIALOZ0;=uEHy@e8*f2h<4OOK<;3%%9pstMK6iWUk+3X1SXu+6J}5RgTEO|>IRM~u-c(ow@ks%sH$Uf*gzdwMHTQHR1c^r$bn_9XrQ2|C%5mA91!<#XW*T{{8KoD@{ozL ziSDs~9Y1{JxY5U2^14c&fB5k)pa1dmsk3*!J8Nck$>Pe*yXbV;*}7mC)6wqMjmzoa znp{p#N=Xt4ktB?W#&}z3B*2y-5!h8GN0kHE91ep6Hw>>?P-1KjkH_T&^T^$02GGgJ6Zkw)yGFaJz;W0U+w6}Cy(kLRY3_0%UMc@bmFI|j4>>Q1BmV+v!^DfqzSx* ziUJHVd87lCjtxQc#9a+XhTIiM?l+#iMjYLZmo|>W-HUP8_ z?nf?EUjcnQeRciQN?3x{Q-awgr>D5jc)zK}aa~n;Bf?Ne+ep^{w0`Up9K{NPi2+Jv z$W0>j3bvsZoIXt~DC-|Th6tsJhPvJ{sP0orM~~oixNCvPiMz@6E+i3*coyW|1AXcUlX2%L@rXZ;Tx8i8GR*0oTg!tuF(5 ziRl}K`y<5*YfsfdDv?YKQhEKmn8w7{CK(;1NTcH2BqEVaDUzCsMe0iOzyJ9bNMV%< z%Zx0yy(_q}pbqKyLTq0u6y9E`>(Tt&+T)$|rTMw#wY9AmySuF2?YA@1xDboiIlvL!ZyL8ZJRUII?oGSyL;n$Qvykoz<`J~8Y?OvvV1Yf<#mg2MXZ zc5grGKyPDWdrPK>8(nQ%h<~|rt5PJHiRL_!I7rNm_YXNQyqtlKRj_YVxNlIfe^?M5 zkU=v(JAhA*G(Q`gV1Cs)#lkxAN_f-*PD)g&IP-$^#?`ymuZKtRtXNmf<8p}vX^fN- zomf&_7T=g7V$g1~sEnwjBnkJPXL6{WS*+`I^E)+}=9Z-t1~0(F-7hedTI%6e!-a_?@%jUp=-tCZqgiKmZ16n7^a?54T>$L;Kop5~rmPG>K8dH(#b z3l<(R_BVZhbi3hc-;oXXzmOiCkky<$SObvY@M!PINYl{p!e}a1Hig{N2?dXJ1s>8{-7AI$%p-af8r%Ta%FD{0#Dy@ghRol=~*U-_?)2_8m|^}qYyQ2#cU;|stN<1-EqCJT}fcBP78mD8@Y6B2nmC;9wh_ z!Y|K^Koub&D<7N+VMLC5PrET}uqlw8>77r*pl<)loOBEUu+WEv#bbxye~+H#!F# z+?vvIi}P}ZRt70Mthg}Ft65e?bP%T^)h|9{zB)CP`v64kuHL!X^`_3QZDM1G9Yu?Z zX1@*Q3;K!S*oV`zLlvFH*_h5ME-S4>FK(!_s;U$xVxTX84=gDz0!kK`N%EAruCB9HbRa#y}1h!NYP=v=l zp{u>yiH}V*J6r1->zeY)8&NWT5aFKA=0p}a-?{Ht;p$LSAQjN3`bJhCEz_vJ+izcW zKYl(?BPp4qy_sLzeDmV*lQ&zmvCW;y-Kp0-6T~iMo7mnM>U^@?)<0G^H#pebHo{$* zT6{UZ8%llhG9)ncC6&F!9Gyz--5lFp-}ZkV!A<0a&Mu7xbox`5c8X?3I%aF8m)9oO z>sxADvXVvB#pQ!f*A_Yo%GSC9C^LK(HTv~BmHyT?m|>^&$PAww318S12@cu5jpmRyj|#!#K((CyoIU3*&_8mck8S6v4Cv#78z zCku~{c9K{ek7v3=B14jbzz-IM21kp9gl|NU zhrj#es8@#!P`s+b^2)ZUnT_3@nT_J+8TurP*bUuuSJ zrERm{)|GS=HqW#UQ70*nrrFyAYZXJ|^by+hc+fnH-n-DcGSfV{2*YZ7uzhiHV1Zbp z(#FT^X1j0 z{+(4~p<|PU&9=sd{E0WC!E6@eDVB`q+pwN6Oj+G#vlnEg5@BlJn<$`(t3w*^Yn3F^zaKBAMuZorlpIL5bJ^k z6(5Ib>dfM7Nunqw7A!cvfF}Hp7-%J0_@BUf{}t&0m{{1|;tLS_0#hzL6osxx(BI*7 zkqbC!s zPJW2#uFuXK|M2Li$4s=(C?6w^8ygv7bV~Oq7GV$T9@bSf(lI@C?4-7esR_^-M#@Tt zidu&1hNecx4qf5u&dvuO_c_*jUv_PuE26=n0ckM|3_sVXT9ej;^+*k%_5+ zs)m7m8a%qDep;1Gg)9 zhMK&xhCH|-ifT%S4fKsoKK}Z+A#N(Kq0G&xC{gaOQy6yQrG zaZ%yHOdRliygXbizyIOW?|%8&=J&Ig&;4ku`{k#YEBok_)`x1SUTG?#2q&k2_7c>T zA_lYes~p^?uC0m*HSicAhCYC8sG?xGPf_Szl38MO9l#ZJ!FRhYO{sc|coET~SHr z0CbhIkp@gC8b;sLfZ112L4!}z5Cd69)HHOIKq}ETI;4dSzj~u}z12z4_ zT3Tleuu@JKCBFHY#5Hr7?t)KgSeK~qs#>FYy)!szN5=p8w7?BqAPpL~D#jL9dTpSbYR zr)Q3T{>87CtgU~(;o|NAQ3ThC#^Qzr(&!W<1Yyif16g&nCZ7v8XI9V*zx!A$1z(7#{`B8!p z=q1uq!uS??TfQ7W2p-bPq7(nQ$C3wf5X)JltA*F(Xfer@Abp%YJ>naJw;1p0T%A!36~H_}8tHSnh0k{Mn$` zI5Sr>yPH?8BnhHu*LfU4UQB}XWgA;Fn&9HK^Ebmd*;!#U9>u{i?uJ!unp6;yPxtn@ zb~lH?58_675Yc9~aW`#H^^8xp$n&6Q(+FQ?_;n9(v0cMT!}*NZ$hcqz0*j%+QTCYY zExa9LXIYqD5=!$63eIr6of;7wa5Ez^UlN?=XMQ8-o^KGv%huJoklF8l1RGNhn-zSH_5u_>I5yLr@yPWt*foK zzqg~WyAy`hAaI0}ljCDk(~ssB7M536X6Kg{7gy%S$9o?()dFo;SeF)AJ&_X^nklGH z_WKiH3+ zDGCn=EKP7p%L)&_zz!A%dGKkV7uz`H@=|@gBSLKwqom2!$)$<;$%R%CQUNzCiZA5H z(!kr1reK$i5)3`X&&#cnNJO!sP$Dx@m|a>@oh?qSE^y2&sEo}hO~*iNTw!CftlXMR z>7^uD%kYm&TuM+_aeyS@^0k}SlZ8~-)d)+c8#XuHy*pf*GTK&m2Bth0nJfx%3GzdHmhr(scGBeNkAlxGR0!!-!f5rOK)f0!;c3ZzglO$ZOY6q zC@m=m%)PF@0i#+l1oKI1Mkzvn>Ys2u&%8tE4M7n6vu`? zuy^vf*XZs+_w{nVRbP}VpwW3;wt&suAa-Y7&#uj_EKlq%(5I;{3BgX^n^ytdvz;R| zlvmG+*Ee>EmAAyk^ZCl|hvn7GXHVAGB7&YT)U8aurOg9_9mfd>r83qhry5zEgUc_r zcVZZPKDTd+!Xm;4yI;QQtZb}ENO}}Ndp%rRpFEM2RvISTZAOc6x}s)`!krJ|KG|3q zS@Ykahee76()>!QWO;QVu3m44hmXxJeO55u*T6#twjp3kQ(3%{b*jGSnACN>RhL@sB6+W8U znxXCX880%AGJSC8WNr8pZ=H;-Azby z$_k=8Ho4q{jrkOIOG)u_X;4IsIEfgTj2&{2B{;cr=>d2$St1mYm}PN#G7Q*2Kwey2 zT>A$4dt32nDXS{OHdZn0&^&bfl4a=`GO2Wrya1C5Cu?ysoCx>~aX=D^l2bC$Q-Qck z&CJNj&MzPe(vmaqpeZjdFD%I`%FfS1p(`5_KffRka{#FP?Tu^!x`I(YK;AKfTw7M2 zmxda>Fh(E^X5nw=AWCRZQox<2ey_pdm8JRFsp#(G-n+d%toD-W6l>?#`H9uX3rPAsYoA)Dvcm#iE%olw=eZF9 zO#g_8SM1k4t*Z?+E7UjCc}F*EPkVPiao=r5{M!c!4Mp!W=7Vi8A!HlFrGb3CWW4pc7uYVqtL^PRYe{ z7cX4*`sa^7{`~E?zP_Gbf4%2qX>svyAAj-n*Vn%N_U9k|{>h(z``fP{A2$8+%M&N` zO~29q?z7KNefHT`ADudJRMS}Hh?1V6!I={pSbIHsO8fKE`X>*Y5{4&~j7-wW^_7h^;T@=$e)8p=4?z$-rLKSS^V0@LKhXyi z4qMDhT55#44rz=5aG{}~YN}_X37R`#cZZ+_l;jLZp`a!I0fwHGH2^Kw#yML}O+!yh zOhXj75QUS22d1K;C8vO_A-0<2 z)U;J}jMXs@r7ov|_1zPS3TgymZHkA;Jesnav9iX=%rfxg8<3>2f_ThnMMcBJj0g!rTQN8o))b3F z<^xG;29p`c<}d@8Y?xNSweUhif+50!!^y^0G!Y#f6c!Z|Ey5<3kS_?2LZd4>JenLt zjwGE=JWUga+7>80FuTP-Qzj(FM`J3IL#O!pcv2ky@w3g3Uw`rY*OuRXe%12NA09vP zA?TFHw6u*NeUt$b1m;3pK@P->eeZvODBlO~?R!uDz4ufU_Z@oggAWeK?N=n;*Tl5d zelSV^QrADCen3G@?tp^o!S@a-{MW%lhg3;LcIf?m@=7XTuETv)gmTe_WYtzZgW>Fh z>bj=50!$4pWkpjpH7!+a6CcK~F$#IA@P4rg+fkp{b<|J|TA6bTu`NbwFX!)RxmC{UzlO@WoNJQ`Y@b$q=zsBTdsI znxH8A6>m>u#h_XB?@k$vDcp1N zKC#KUWl}utDIf@^Jp+y89-{B{@5CQ@&;R6`i5F5^k#EB-!$;$uGs(~M?t>8h+siqU z+Ko$IM;cziu*?4KUCqp{EUYYTZoGWHwlKT6u>9od)|01Cw|58*HqBnVAsM%?7<3Mm zO=WVqEEa`Jp$67+xd9B?3mU_p_G0zL#=`X0W;Z)6Hba^aI@LY7$qtc3My)UP&(@~- z`f{e&QvpvGANS={CQCx%((;m1&67jYEic+zRa~ZpFp02B33pk3)G$^CVSAIscDHn( zc?7u;0w#+VL%DhF%5|Yx!X=(tnt&Re8GiL5|C+h@cmJfzXEEcEaw*o;i@0(vMw)EJ zj}>`%GFg89jtob!$F1;?XpYD_)GYpzC@SV!uCPFSo8!)O$Vj4Q__3`^#BnqpEV9^y zq*#JQ4@$UssnGI9T9K7&MGQCCKblCVdWyts_v>jy1bh_FTeoX`oNu4!Uh;7J&E1nO z6a-obEbZ=l)7&p!<^?dVEuFd4P;nB-pn9d zs|>1Ry2HJDgxPsVE1s3}AAek7M>t!ESf0f1l)G1$7k`od%i5Afv$^#%3Qa4-{d*l}>rP`^4XW=jqbSB-y{}864{EZ*OmF z>S}IkY;CQpsUd-OBuT8Sth5|}1=9UM8my$GstQN;+KQ^WMpWCII@^i%+Q!D#uI|2} zq2ZzaL6Z93-P_sL+TGjL)jKpeHZ?IgGCDFdu`s`|wlu%EF!Olr>FUgAe^1XtXtl!J zyn@=Swo2cAud1%TBz9C#cwJjw>0(=t|I_BI%It8un}Z)inw(x?ZF8+sRFG_C4n~BP zLx$Cj8|JrfN-ga(2}!w3Cd>}KmKB{H!RALK#CplnMU*5_u9ts+BtR0%WW{G(N^%)WT;~f?sEsN$|y5kmd_JNxRM*xa7!!Juh1l<(4M=)a>9qjHnUA=|L=8wU%n~O%mDeVPha?0?6QLd=QFaC}DqU7(E)T6r7)jRk zHF*)d%uM_I>*fyEl1p-~Un|YaO^l0>#RmpUgu(paWNx5)8ZS6CZ=qguR|#6RO&dV<$58M@{<>j!hfHy3IcU46ayTN&HAzjPSM?`f^ zV_jo?+e5IY>uT!i8nC3++S=OL>2TNC!Lh5)(Ye>5$JNEn*$o@w_io>DxaZ*L7VGTj zXm3|zZ+FA4wy3%&E2XGFy&Eq%raQtHe zOM??oN-odM44CUHBSIRR;+{zT^C>Zc(QInOdT=R=GtQ_e8{+{`ziy70 zFU%Qj&q$4q$toH_`H0FTUd`@4VpE>4P0&N;s6l~*fVafpZ4*ncrydPF@A7{=y53RS z);Bwzxwtx>zqs(KsHJzIbFsInb@dgoom-qgJ((Qne^^`EGElHoQ=UKja%ENQ?c|zSLmNTd6yRX)pt7hgHTXbd!vHp06PI>v_< z=5ou(`qtdy)a#Lv+P71WUQM&-@r*Dd_Sq(tdi##&0@d%{Xz49?LYz8PInUzkutJyT zXLQ+Sb}699%G#za;M#7$y6 zdBly0jl~HTjhHBYSZD~D0wg1Up|pq}kp<+(z}rINE1Yz#;4`3sg|jdMJ#ezf2_z%| zqoaihP}E`&<0V+cLC_EW6{K4VkliF^E<3lRl7Mdof(Bg86ky@Oh6fB0GE6Excjdy_ za}wG43rXjsmoA!JG{1Po!u;~(b7p^>y?FcQAAb1z-~GP(?(g4u-u1lWWasQ?{^5^b z{qXJgpZ(*@fBtst!@r*S^AG>}>~Ei*#18Pshd(j+;+s#;97P?=$kfE}_;FC+Khr@X z>x{bTVI4w8>9D4u&S6uN(}qfl`o_BIXi6P3JaP)I)-gjpbp-^d4r6N87@e(C2I{J& zfWxV4Y9CTm0a!!X2m@Gp8YWmn)-V9v9TphQ$Z98b)Qq%^Kw8jJ(Nxq1k^8XT>2Hpk zXy~gPG1fn2V50NcNfT9gU1(+*=@M!Rx`vv{CaUtfx(XU6wZWQKmDf~K!W^>PenYu~ z3aVOi`@xe_Rh83|Q`bD8rlO*au`3-p^lDVmGeT|+6&p=$L*(7GK*3Oyf1h+i_NyZE zrYNT*r==vPa`>=V`_{N{5tmG(J@_2NiWp z;QDD9s3>61+4##(&O847mkZ}ET(h*WvvP8|?cnHm*A3MXZzr>B7G{^T(~_=SNl%rE zL7$8Tl2Z^F4VfK;aA{CzXh1*!xrxN&01po13W#?agCH-mxQGCT@UUMT8WD(njmU_= zkYKDPA%YqYfC~8#!HxpXSU>;64A z*9%vFHZ;-v&CcP6Prm=w=;X(SCZFmn%O61yQwOxi1K1lzZ102j_o)*KYRd1wci^Dh z`};NaAAAqON@3qV1x2VJO+^K)U11UpflAcZurr19r^0*t;Sxd=Der$D6b!|K=rA3E zk0r0Frhycp=|_4fz<~(354Tdqm;m$-EKi^xv0kQXAh!>lErk#EzyBT#G$jocRb^F0 zLIsv1*z$V#;cLq48LMJJ8cItA3LWEaI);bz6inm{4=H>AWu=8NY^6d#zxkVq6#79b4w;K6-(R~|I4UmuVrj*l;lEkyqCrYC7~Atwl}fq3Aa-XcE+ zv_iOA_>43Hu{01CXmnr-VPw%54A@v~C~w%9$a=!O0uExYEEEFo>Q8<&A{Y@nI%0r( zXo{eB@@cPDMXD9j!3u`3*t?SDBS#uR?_40f!d)hVbK&p&puNj9C@!*UMP3)Y$L%9; z=Zoat|EI5TCGP*8YXyZx_x^84NxZ`w`N01m9-@RnMQ%mp2@KNLiQYVu9!97=s zPL3CopN+ilv_1a|muZL;l3#f*7dSSBCEJC?rLE^rHl`P+m*;0Up1pjwx$!)Z>K}kV zEtJ<}liZ(pftENOOLqR`f@)CpTv%|}OiKwXQuLg(0zRSDoCfi)j{@E^%nA_~<`~Tu++6DCm}to$GB& z^Lq}yF77T=mM3yN0e5^OuUVguykc&iVrIb)^?+%lOV6%-8)Jz#n}x!t*AK48;f{s94F#H>$`D67oW1FK-__gh*B^iT`8Q@rFv~W``JBMP=2tVD zJ3)58|7g#;c01~~``1H5e!1uM`z3!XAE$WY!qw{+Y;N>Y0|*cMn*mp1`Hr`&LLw~f zJRS(*QXj4d#66FcO473`>RYN>>e_p{dj~r@Mi=LIpLE4@LxZ?XU=&n<%f zzOc4{aA1Eoc=E-Sg?VMgMI*6`Svj<2Mt603Ve<1z2Cb}PjXBuau~3#K6iwv}=`x`Gwc6-?(aKXIYw-A&Vg-$=31F!bDkGOhSBi`t_XD1V)UfkBA?@^l^_M ze7s#bzLAl{1)FQ$w*|3IHeNS~+umM6r&ys+q}1KYi)we(=GPlc*YFsEBMJBLb@of~ z$8p}~s-+~ApPrWJWJ!B=kh_GcZ5aUznI4 zUs#k76Cq5kb+aqBvo47#POlc5UA>t^k19ybh%=Wa=A`ijLBVlB;jxjzIA0g<2mV}o zh~RSB&FjuCBf&fCYf@gSl=qbKiW1Han|>h`g+JQeoapJfJMcQ9U?eN0KoFi$k=3{q zzw~%*VU4=Wt{Iwo*cwR8y$(;x29zBeXFv(m*EKa%*Hjh*y`58p^ksPwc!SwlxsX6MRu!Dp2^C}#Su6+2L-F_z3Hr+>^x9r$Z_I=e1I{)j)PwXQehc3kpPc_hgl9( ze|c?nX;lq5nAO-$8dqI|L}_IW#sTW;J9=6lR@GNE)Kx$1?CWT6?z->fco)`{V=t0{ zu1*f!WIoW{?Vh9SU1w+axT3o*w@boG?Hp}t(!-=F*@eO|&pUVQuHUk^_o2}r+$tz2 zEwZt-EKR*E3BC8=0rP3s9OqeRe|61kDl?MuvYtWnpJ*FiTq1~#?2fLrft04i)B+)D zYMr??`9tH4qvM<7C2dojaOwgpkn@HaI6d9cJJ9ufY?voRr>!bmcKz7jDtDVPXj~fG)>x#M2sipbC zU`FExw{V2h95B&MwD$NjJ0fyruV;dIbb`m&su}vBIyI*=;%$qxP}DtwzgD92o5sf% zsKE`leSN5m;4pr0bf^Fj=LA6v44~SoWdD0!58Us#IwA=?+}qKJpE0^skkBQxTmp3| zw5zg`5eeMO@!%MQF&sp~Ko8$b2f`3ZMl29RT1lW>;9-=Tjalxjtb*b)JX+wH7K0XF zl8vHXPJV6)jL-a{YIxt(m2kIViMP}PbkSV@u)YfG*f}X^S%{(|g;9d~zy?kv<%utm zDhvn-d{lD#mb7NUceKB6xT?0PfB9+O=<4$87fXfJ6mw^nv2lmG@Jl=XUXYp!!_ z#eZ^mdVXVPW^?T6I{oS9XmxLTR)14tX=Z9;X>m?eUGea61xvunjveliMiz+*;!RlVw#)gV`O;J;O7z17!`BgUccG7hLL-+TEG0845di zrLpVPlZ{8zrRD9dnVEsH&6%Yqvrji4R<<>E4fKtV5ziU^O!|D-#z3_vN(@ZDap&5* zE;ng2?LITuz!T;jNisNEL;8uVJ$A_>2Q!o^k1Y9dJ4;YCoAOsW`_ozpZi&=;eM)5z4 z0kQy}i}br<;^T#a*!ToIe6S`f6vL>O#DUk1U+`sQ>B*U-bCq34;8ZOVA(NPtg6>{i zG)ye$J87aQ>FR~^S1z0f{atn*5yA6G$OvAtFgHJU@yhwLm)t17{q!%lU){d_`&V8! zFWTR@>2&$rS08_J!sO4VKmOsTpZ{{^`=5UN?&xuYzy8hWo6q!(jg3A#bxQkVHEa%j zs-df`^^vhAMy!q;J#ko#Fhw5F^oZ^eeQjjG^mV~K*EtEt%h=RV%jmeax{|()q$CD_RZUF;Wg}f(4Mj*D z1$Fd&)DGz?eW0$TrlBGSwuO?CF$zGK^HNaLQ$419P#HoA00w1Uef0yN8K`POiyf3d zsIH`Lpsao9pwWI19OM-=LBKlzXT%s(JbiV18o2{n%788?!s(JzRX%=1ivaCGTkfa{ z%0lYc$R+2MFs5X9#_s!He?526;<}ZE?X?@X>@h29=jQ1Z5a4BPVSW9Yx%nk*faKt* z5@AeqJe*3{$e32c!-N+GcmbEoFRkS!R9%Vf#1|%g3SX6^2E>04~Mumle z{Z94vd*Jrq*7>ui&i?wxnU77bUHXpr zivB**j+D~?`{EG%s$=`KOf|KS7$6U*t*D9xHH1S^jL z?%TH?c|Z+Sb)|hOiL>a(9Oefp1oe*ewi5C3xN!mYbD zmroL3Sp38O9-33$=tV*L&{+&B;1)Qj7CgBCRV3Du^)> zFbF@3d=nY~hLtxI7xuFJ{IQ*d5iJ;36e`6JK|z$Q=yZQNg$Cvz1;!PV#bpBf9)O-z zv@cwWy?h|g?>z!{f~;5(kq}t_N!nSye*c4Thh+JG+g4<9?p@q&PjaxKXc$=7BE<)O zAypU|{EH?*g75T+4`O%Zg*|;jA}#*pP5MLv2q!WVNRDUi=_|!|s_I>t3h&vIT`ccE zc`+cnsJ?ktG*tB<__BviZXoS7X`jPsGOgfU; zzdaH4&P*fAR}fwQ`wcSoB7Z^ej5j89)|+<{s;75sYH59WZT>Nah>`o7U0T9{lOaEfg%%ALn(-ODcl{Kqm*S)R+D-ZT_@n|3Eg6GGF@gX;*8di zPH}ckUP^2Pi^^H5of_YyGqOZc-08$8y;JTjRTHfb?^ZO`RpU>6yf`^B#*DzxFob^Z zuCtxveP5>_Klf-C-7xCDX{gQMe{%P- zxRZLp_7{7f`*;61$8`6Iq;nmq7pSaX@A1vA*x@h0fM27n%+1&j=q@tiin(1PgYDWN zYcB9kV%1i6w6A0@vVvnJY5A$ieVvmtkH$vZn`;IaXRun84<1NV5Q9y9@%s78C(AQ{ zv=0vr4E7BU40N`)q4w|)XW|xk4fPF8_2l$$P30aU4ka5rc@0=aaYboWZB1i!Wp!;m zhLb>RCmI`@8#`LNd-@0ZhWfFX)j!zP3wQ;Vvj7b2>FpgDpBx<@8J?P%U!I*`ou64+ zomp5~f4ng>I^5fdUObLm7*OpRo03GujhE+E5d%eO+}ggpvYPbF{+7CF`o{B`xLRpq zTwrK;7*8xMudBYES!R=%m5?pU%Bs&JWK3yf3}1FFD=juOtuXOgR6<-*vS(nlXQ*cg z%g4i8=Hkxc--z?GD`JO-#b0%Ga&z{(%cJltJbdY%W?nAWEd@7joWJbD=h8TSPR{nU zL`Upxg(q7{nd}Hwu3fP(6K$0HTqH|*_V)KhF>#4;q6o2HwosB%obDAz2!i61dEpH* ze`!?ceJPk_w~CUkW~JnoVsj`hJ`}wK^JGFGj!Ut=Du@ybqLb-ve(rZ~SlzpNjqc*) z&y!}!+8dmn4D-0bTfs@(j>XvNht+Ap%WuPjSoEFF#j@J`9RG^B-iKxRmBr~j+bg5h zxly#y#P-Ll51Tt16Nps!0;L6zxd2GiG&R;%RaTb4S3+p75U4*CWsvR5&Pf9R5LrKx z$)1x(VgfU=3vvsP`pZhsAh)vMPvsV1Bq<9rDj$XxJSzO~@!{y!;b>e`UR_a*O=Fye z!H%pY!C>&Hus+@1N95*~R@S#PG}k=D5OIA&b#;AxYrEsa4mecp4!0@Z=vFzp+;(*6 z?RM;TcD?Iy4-(4Jq051g*xKe=J32U97Y5Z=iv=+yyu`b%4ql!F-8Y2gd*9XG#y&kN zv$EdK&hyqSTdB`T#}nGd;;W&@Vb6DWUik;oo-99|oTd{mww5QFiZco_(kmNMJ0F%U z0MsfV9bAA4=c~4m*xg|w4Q$1Dn!Smd$=@)O;`IM(GpS|KN^+;Ff zkWqt!CEQ2CSXxnb;X+}%v~_4B|K85rqSsNitfb~LAuVLH zWq6}&B6Wz-(-_h698V3SJF`eU3-f0sL`5XNCj42Ui}h78D~m7YcvS(7eS;H2ylgw? z2R>9b#a|qo3ebuaPah}dWy3TIardDS_iwwo^bWw4ZmOxQ!md?u3DA(m$bDuOfmwoF zDA^=WNlQ*jktWC_sMo-e5CT+?Aj0Ae7POK0Vrbu@ zlH9`Vf*b$`bMlZMEhq;6q5{Z&_}X=it&O!!t+jxWwzpN66zAd*m?nx7$|A$1+4&rC zT6K7!&^|3Z)W5m8xT+$jxVNgN+jnQDuX?a&pzmSFg?KN*;qDrjo2 z%!ZrtuqZ*8d&48E9HWISG>u8hvSSzmg- z^JrjZa+I=CJ~lVD&ZIBQKUu}YxS_kDGCi$Ml2BQk+tj$!5n)2pz} zLmZuY-z}%?hO>|7^3-NqbD{7$GbcAWE+SdRODxXIh~UxPTWG@alDIgDzz2_k@F-z) z40=@})SQyZsHP|e0x3oSdiI{l1P>}Q1oOkFQ9(N)|n-6$~z1 zj3z}C6jf9-PQ9eR1M|N4)A{`2d*=P6#6 z<`#GUY5g&FbHD!n$G@HZ>6^cN_UDsle*WmwPyc3gvwiY8&VpC}=_X7-;L5sA#F^>1wO$9oA4% zGu2l_>FSV@x{->ywvzsFO#~B9m@4D)5ktd|_0CS&SaGT62;PFJcMK^vN(QZFb0k} zAcj-j>>M4PzR_3x?!s@EzjM0$uMkhC|Ih(B3{xxOr>3l~BL`)z zAb&tk8IKn=pis1xuz;nftE;3>Xew#p0}T-9R9BJLGBPxf*HZcbk0}!)b#em@fOq_S zRlu5;*U$zQ#pncDT{>C{DBU3vx?joANJsnd3C+*`dfZUwjQ;7PpZ)U5=bwFcO#k!m z4YbrTLSUkAVtn%0cQ@@^Ze01}=FjJ@TVMa>hd-PC^LtB=2e!7hm%kx?x$frS1I`43 zI20-qPc)(&<-4aHd8sGRA5xVs{+-XeC>%)AjxI-@_@HR3Jq`qp?Dyq z_P}&_*Pey~!JV8W_JubE4MhhmkPe{+CB+~OOSG**A`oC>>}e~}WE0SIDZ|#KE(f_~YOy62khh4n}=1TjVq zX5r;e-e3ZHlb}8_#Fz8#W@OI_*g@zuY;^4@x_4Ud--3wmo_B(;zYTUi31 zZ+YR#tHs49Ys+g-w>H-|cV7@>WeuW~LIc|G4H|4TCO4Q9z@kz?CFW35ra_aXtSxsD z96FfhMRKST0qqxO0 z3cX|53659OZ0|YH8SXq5>yqcK(5PU+P0ws6;>vBtO?HZfxtVQ3cxfy@3VeigB!JVS z)55P{iYfVe&OM7z3fJ6QwB1 zl$Ylt-d9^wUyVpteIw#HZS_P$U0q9SZ+G9oK>yI#$jC5wfEYMxZL0^LxwF2lyQ{N* z5)|S|JWLj*rx!Oi7Ut&X7MHi4uB(yZH`J8mm*k{p5liD$%@0RAUUVj{L=xl8 zyoT{UfB}oE8GaYD$+hG=-_k7rai9x(5ib%#4pmj%F@d$Vj;vXvsP6#VYt>%d6 zvZOL1tEM1Dz)BS*^w(#m6&E!YCFbPIB+&`tjEd5XBricoTzXh=v_ueQC1!!7M)SOA zZtZMiZE=tFgUcTlH+;BZK}?=#fzW&Jy?2nVD4^JT_gfp!y}$1_A{ZcH z$QJk7Ypwr+snkG*=o;IB!LK2cd$=H8Rf)O_xPqYck4`QgJvv07cuW!V> z2t@7LmdFfEh~Y+tT&k>T7^*9U#p&u?HE^LVi~X9xN@M`R z_v+1^82C;vW1l@7T3YFS9lhK=K2|xI^Q3&HsA1*iL<6sUeq>Y#m?59W6>|ELC`7`u zSCfr0RZ?S3OwP^T7mpU_UkuV_SS;$(1VQfAXDe;@T5pUmUgNH$RXu5FX7vdx`lS!v zjL+j@LvO`=+sn$Ubu+2auQ?fU4Lt?@9Zk`ytf8sCD~g&I841cJasPdQOX(}^FRstc zJzbeyyS{q+;q09S`pfIjZ&B{1Fe{-ppy!z^u8;ka z1kcwg${UNC+l9%wcWMURg8bREn9!@#cqa^nh7s)8)HL)Fav5^1)NjBX^PHWUV1Xk_i+6 zf_ze`5NF3QGoX{?fS2SImgHfpu&B5iMY`JRx`z7tIuZw1Sy@=DB+(|oQgGTQMfey(SztM~e~`6q9e z?{;-Odb9kXd1YZ@U@gCF@ah;5|MH=*yK=gbohHtxN-N1J>xfHk>!}h&r)08;7-m6H ze|K?JM_X1|uCS^|+}JnTlRrbNC@OF7TbEJFkVSk?jE_fI3b`xL1SFYoj1UWi*OUr` zfE3SvMrL+)9(db095OSrz}QzP;5HTJsZ=HAyf_SFi84h%`AKl0PK3aggrt>Z$rT__ z*quBN=yUO#Z@&M*+2yk9w+`R` zu>afdj@cbK`qPh}{QC2+hYo)6uP=Yuv;FfQb{zSq^%tfl7A9uHY`1=Cw9R(s?yWlwKg8gZnayr%YaOGV+p$GuV2a=ruy{t=gz1O7%#01N$7`ko z2E^VyW)|Cwb ztp{qGzOJ4b><=?tGaXY)D=TBO-I`i@TlFkH)W&+%c5_=uD`U71WRwq{g}MpKHfknY zHW?FoJ9N}g-mx~{vvoHLF`G1zE;G>Fq+<-upB6@l_ifp%u7NcsO)cHcAAF#$Y5ZT- zAA;USM$j}hf$BEcZD0vG1*n}KDmVt(hB}r8KmeNP;w)d!R9{2)GvihmV{%b@8IBhc_k$-9WAK3Jdjhb~x_f;^pk%e*UCgabb=UqtNMM$QdD0 zb-?!tk_GYjXDKcrJ(kPk^5Wq%v6*ZpJvy4~#h?-sjX@(S+^1MBsh~LgctISJ?r}U` zLXv2sO(!93Nz!6UOA{n;Af6Iq1n@W0vZMr%kW&2YkY;78R7it@Y?GfSlVyqGxUt~( zh6RQBxt!X5_~^+ar!F1~I`ZwIA9w%yh1m}$zTCfkyOA!`t0_?Dx)}NeLIU3;NF^;J zJ>WWk^3X8^;sHCr|IpmD8FeWWO)X(gSk@QhmEIQ2Z8_mWCzAD;z@9Hp{qwZrp)Wlgw(mQB_Rqh*-o5i*?!l2RmrpsnIQx->r^xUqf8oV&O30#PCItF;TS0#Hjxl3_xfj z`bI@679l<${z%OPf%NYICp-kam<^964YzF+h7vZSaO68s;`z5WA+-u0#j1@PQ=q0u zVg)IYGB;R#CDKF!rjNW4@8P}IP8(r6*@i%(BA-V_?}~9365K@zUJu~~ zC94gyiUCnYewoboUlJW3PKD%2{BLh)XmWD$#_f9#R&T95VZOMzcKaR*OphNveew3) z+tMhVNjXbtYj+d-Rqg*@v)x1 z=Hh&*3iUD`F+G3xd3R;c?Ch1Aw%RsDP60oG6~v~EN4Pt>ii&d-L>P&>4>u>*3*p|USrHuBU*g0(DO>2{8RF>{<#&=BCyW#O`q8)nM`Pk8C#0d5 zRGgR$p158XohLmXgK^5rj|op=rk#~B1o;jO#o3ZFb_!Kk>gDEF=fFPY6n4tN`N!Y? zaJ_i>v?Jku_MH7O?~_<6^7eFgcD=}qKN7`oJVmp&kMTb1;YvBf33Uhv`o$?a@MJ`2 zfZy@(>V%ZbqM(q=!LFgv9@KN^JSoAc+|agx)Z8c{QBc*=$YGaVfBI_qIg`cVDYCLF zYn!WT`Uj@3%=QiUO!Y1=P0Y1svf1&e5^+K_th%?apFe%Lx^``0c5ZqK*3dY7oT0v+ z{(=6H{*k@`Q1?iWsIvq8r8*>T%B$)d!P2Tic?k|tQ)g=f2fd?_5160 z)~{Win;aS$L{X}?9{jM3lH##E+U&%9ZFN)Xa^8d3g6z2$H}9?v=gV^PNA02urz|+Itkrh^v;OUyd4harcX1jSZ z>8ZgY4p)?)9V@1#Q+>JFNrke+!m?y}WlB?VW@Q?;iWpP~GPqIYxw+iB0)CdFM5?MO z5~ilcrCn-lP2q;dGo@K^lBBHSa}_CJ6rW%h&ogK2kMn=!{t*~;#{D$d9PdaMK2;ia*@5%J3wG*D1p z8W?~#RD^z1YgbQyYiG-#&nQl2ds^H3;0=MjI5Fz#IyR01llzF9=Y+Srw@*-jk9VM- zpFf&2qkW#i8C~vWnpmf z9p%N!+XoZt6}dI4{I&w|^6Il&&l{WP7F!tC?!2ZyZb-O0+;(?x_Ql-D<7Hv3v~_go zL3ZL~XLC(ut)jf9yRk_=KL3!v5|hTw&dwQI&+6-*@;y}`N@h-_$xVyRjEmm zf|9(fjAYKt{h0aXTv11==zcF)B-5#Dqk{ZKs-nL>xwR@MmfmcqVid^3Wt{SGOR8HCh zFd|?JWUG`iP>A#Mvr7~}jSys)2?tySx#v6Bj`|X0PB98|$ZwY6;47&tt*UFOZ)4*R8I_mm#QHFw)aBhDi(F1zeo5INwycb7@( zRjP#4%G^iY@{Fmr!lJ61Yto#C+R@^frt0Z?*IP!*1`5(jt_?3w^xS^Z3)17mJ0mN- zs#)Se53Hu#8*QaIBmGU+`f(BP!BS5{bIl0r(YyJ+vXPc6D?_Ve*Y8sAPSv*;HRM*J zJD>QD{hT|!#Oq8DWEAIS%B$+$5MjYrZdZ54Cdz}o0zI95iNGj2*qx-eCUtMX*a zAE_x2_Yx4ULt6>X5Wr}N)4>2Dt4oPU*`*0n@CiuV;dUTo(RhM9#FG!M9=rq0NWpkQ z2L;w-mPDG7B?I;WNj|if3JT#1py(nHWn_U+Ayk}J;$X=ViqU)nt|wQiAQ^metV+p_ zoyf5}W@mR6XoxeXPM$t>;;2k=?354t&^JGQ|1JId1K*wf;n0EaBf~G+oj!B?q}}1e z2M>Sp@#mlHIr!UOzkal1*Jpb_+Oc=rE`a4MtSm4!_2o7jBcok=Km3r`y=|wZ^{(AJ zwjp4*!^A|#X4@_s19M~SsN(9quFX~pTb&)&do3)i49$#5G773gT@dN6-> zX&P&*fe&D1XuQ=B&H)m7U`6cELO9Mu-_+d9!Vn}f46XGHG|de34L`KD#qg|| zE@X#^v6YE2VQ#PunK)B(OA8xA3j=IRX=)ppYU`?*+Un_P8=C7QI)zx4t|?BRH*0P& z)&(HjNNY2&+c=3v01VkLG-XUtyV3eUA7|O%b!+GwnZrY{(9ppbhZ!s_b%UR6cj)gl z1UUjUKH$5te57rtueNoY-gbQg|Iau<-v7fH=SzQG{PODqU;py+FUL=wJ$cgE$q$I=>2w0&#m!6&u_Fkb}EXGlnm;m1= z5sDjr6KtY1QI-g{rBp0e$a1pta*C8P2x+A(TZ(yl=&V>O4fFyZ#~;7@{oB2-<0A8$%9iscXPe+oJXXp{8Z9MNLOb zbF&V3=Kp}8gjj(cgKVPl7LX-2{lft264s%X&Q@)BMQWQgG)YCQhi;Lc24=v(Hr%{P zO%Jqrl*u$L!PHaVvKzdRElA&ia&D{xPCS6&m~}SM(lUgm(S_BgskhhEdaH>Ic!$L2 zwut5F+M3&Fn*bPLVq#!yp`&98+PFGU_Bva%)uE!*U>E9c#VtBUYFHND^nsC@Hj;Nx zK03Pig16{f{A{*$>#nUP`z`kz+_m+y5BGht|D(^g@855^b?dL&ez5$+_|vcdwAlH@ zkw1Po{?(PN6Aq*1AOC}Sh{e=y3e-prWK1^12|g6~h;TXXlZ7Rx_j-yH zdSob%R88x64;hK$0v$nWA^hTOq~iGR*%Fw1A_?Yk@0HEKQ2)r(^p(YxwYAmN>-XP1 ze*E;+9c-;WfAR7i1z|yiF(_|obb^KN1E?EJW*j3H8=pA7xiR#&)R*NC_&j(tRO&k} zoeE+lwshaDw{oWEj^+MUZgc}gS@c)Ag)WVguH#H6EML|yvni)VcZe>V5ByGwx2MIRnd6^kn4 zrDFebK0P?Z(aGiH#aQNXMLDmM2zC!Sk3VAKn@Q)SojqR|ccFk2YE;D-lgmbrUL z1nwt}Tn=^k<*$RsBafXp|2y;OVW(4<{hi~EoeH6z<@z~DIl@Fvg53!>N7sN9rwi;8 zb{_nrZhxG#JAc$Zh!q(d%w)@Qe2<>xo!~RPS#jJHp;9E4r$x7xmt%idT%VpdADxLy z_xW;haY;jKXYa)1?DWFy?EH=CvAUw^h541C+?XfPy!33jh{qv$?$4gyyt%Rjqi1?@ zWO4*`p`reMTzVe@4;;1*pk;kMot^Ei4am6Fp^T40N+r@yWdPlwn2$11b6ZneO9u)> zZMZ-S&{_B3&;-=c81}ZV&W?_Zj^es%KSa&c^=nABjm?eEEG}G~UR+#WTfIhdJXTh& z-?+1W^Y*=)H!)B%ab=>Xx2dkYSdq?(sTRd|bUZA4{J1AQH|0s6qPnX7$}1u_NmfxG zOXQVF28PqSN)u%nLLN&X5l|h&y@~L|=wvz_S1p_3g_ZWjS@EpX36jFxi)CKk7tiMu zxV!uMl(CicXr-)Nq_`9=;6=gsECc@=ke3iQ$|jbNp5sa4q-?TT7e zYjJsdnMAsvR20UeX3|n06C1?mFwPcaB|0UhrBOo|;b)zxfxnzS#SOJ{Ifdi#PrCr0 zGr<>V?%5R$_leA+`X#ztHc>B0c}dj7u*(V)l9=g5#jSNka`sDJ`yyMKm&jR9@4r5~ zdT*W5nVSotLXeTfmKK<7T~MRVEx^;^dN=Hy%4!%k)i|#tr^=-I7kJ8Z8z`)Q%cXvyg6orPlI$mm2Nb(DE^Kw}1v=nY) zTDBxTK`cy4&q#?T-mG#7)}!0cFz`D(vrymlYGC~C!>PgP^_i~5_}=2O{CAyA&oj=1(~eWo@U;|*Tb)ga;YjMn=eu2l{Pi^ zE>W3xTiExy`x54cm&WU>ufIx3yD=z>iOuPiM<)?Q4^mRajI{)Ier7>k-V07z_fYCc zb<(5d*H7=Q3X)Xff}&RyY14GB>>0g)pOhp?%5Ls#Y*u9Q+Ikoi)>8URS$15jq%u!%M5mAWtEA3!!Wwh>?@rfXnBplsPhq3@5X=d@lwP82KqF8u{>Y zpzw0DbCs&xf*edf698Bhl$BLu5VsNsLTh71IRgJ}l zt}a{~f$!1L*520xJq%4+Q&&+_o{MR_v?MOoFCv}K%a!%Wp3LXQBt=j5G!1u-E<6dy z5X2P^<**A{Y8DoYA6%^&Y-w*OA6OhHqc@ck^&>sAo&8H!Cf>D-+@;-H>S-rNu0LF- zJxfZW5-T_PF|o0CD#m36Bg5;R1B~pd)`G$5`{`qKw7aXHYbqSWt&R6I6>nTKB72NtL7}MtC&2 zCFeN$`#ZTdvZR%T2&G;~W5q(RY!||8kzqUwDKyX!9<6rkN^?K@0estP9~inoYyAeW+ttYI2ighyPg3YxDfkb{ZLzqrpNLNu;WEA`EvrDDovq43(+uqKJk*Ach> zm^#Og9Y1#V*lD|y$IhQUf9lk+?4y#)(Z3w};pgAJJrMpq$X(xjf8g7%LR|kmarBFy zfB)_GpALS!_p>8keEQ|rpYFy*?cJYjwIn?hGaKt|+qWY%wr7W_$>$&Kw=%ZcvvUVZ zL0c_$@3gfcu?*(A+e{1%c5br-oMEToN85~d+30RHAWV#~fUCXR%Fkq?XtN#H=W()%0>6o&xy>#!ctF;M#wNzL<_Jb^T)YyzB5Pv1&cUv0CV6}WX8>V%p87OeAb zLH0@C9Cnk2k?|H&Llax0kG2_VX>2yq(uGlj_ZXSjf|aMQ4U!>m1j{ca1qX%zyV<1v5F~6I6M_T*a&NIbE-pr+ z+z*yG@GdkIQ7AZ9dyhEd@?vApapLE zyBeXXqyGW?u}uIr{3rHr4Rzq+nHrjI-G)XGv=7o}C=tQlQ^P&!7;c5FqGx2TrUhAP zv`Gsi!${R(NDDgM`tNaUHI1_pyjM_o^U z&$eBMt<5dXcA0;&|K~6E@BP*MfTj5!bluE9%Zkk~uOhse*NgEr6%cn|VzxDz-%G!isU`ZF8xH2`GDC>`={c#TtgNL`f6SRyEx z|3iL2WGeX@Z$*R3z{W6>kQ5)l$w6W;HJ}?gM zy8rm!{|_vxIKP(p8ML^PNQ z0)8Slfe}NaapDu=K#OEiDZD8rj}yE0DEb{e`6d0`qjxW#J?O8H#;UrM8D(|($r2`z zh3mJMu5&X%5<=f3v$RxB=f`HTmV+Amh!DrT$^;i?bYZMWTH=uo`I&biB~(duoeCEv zd$>A9`v$R7_%eqer(6-&iGRT{?2;nWj>BhX(YdT}$uR}xs4$JiqoLTRq!Fi`{n7Ms zqNMzl<`Cp^+WGY9%tDaGd;Ij)!?4 z{^Me(mrG)~@|;58Z0{k9N>Ahpf^uS|C(lI(|9f!osVAj33Na7=aI7~ zL;cS>Upi|?u@^cAF@!A6(Tg6(6~SERNMDD)>>PhTb5d~puXCp(f=<%M|);Q7N_RR zlb=&Kym*NsBOX7t01ABf^wHY&#f7P{3FOYkhXIir>>C&z23l@(3`n`2?*2hcDz&uM zl6y)`b)*O?$No_{F6*~8qZf~Ub#o(muG`Yu(f%QZcHr&wPfenPJx6;rHa;~n+6Uw_ zDXS*0jKV1znV6lLUznS@GCjL;?G_+k_pU(z-M)U~-ox8hm!_vDC*T7i)K;p%V@R)Cq*Ha7a2Lmldfq^_j^jmExQPg}5@Ss6K;}s^Dgw&SuJFLII5y z>~uOjQF&Ru5t2GCDu6>kW6SX}yY zEWe{IT^Y+QLd9nIC5IQ6{%oeXZT11mRMWsK<3f5veQR55Lp#_79nA<5VNSNPw4|b; zvZAUOp|*VT>O3yj1DAkvTd=+hus~b%VIf`@lz~H@pAY<4F}`^6;(B2*qDdr10UD~R zyu7-)9A~s;Rh2dM^jbZ#``&sriFrfR>(?cN7RDhIRZCzt?3nFg4y~rxH zwRK@+X>elLeZp;YY&_iC)y-|x(+&R^2ZjcQ2ZVb1dwTc>hlTk2`uMuL1?1skgGXWQ zr6#AKT8GA(2EaPf*`XfMNudFh=t!RcX9owz;;I~#Taqj(U6q*-ivo*4mZ?mB$yj|! z2pEemS`&&pZq`hUJQPhpQ{I~V z@)2d`%EYtoYjfjosgH+fw{A^e>mD5#Ug&J3C6-VtCGy^vG4G1X<$Q@ilt7UsruV{v z;0TzBuaZU@<4UtqQe=yQ)&W+<(AW!NBsovYXe^{eODdJZr3a5_YqK1t;!*iTU(ZOv zgV8lA(bG;(OOVN9(kKffYgzo9;n`MJd_sEabdMx2S4!(kyCZ8_dU^FBKP!jR->@#N z&CTM+W^ytUU&O^qv)XHliaN^Tx++=ml!og?or_)5z3n3lZLPyiVRPM)3?io3o5rFB zc?SDOvf`4GGcv_M$N{}sD9^}9!KHsiL0s67yI)`kJ%%3Q>+Ln}J~2IvzjF-@(8}bb zER4WH5>r?Th+G*gu@Y>Kl7mXwIjDDJVnY%VC<|vVA|Zx#aC086$7W(Q2WP%HcpM@R z;P2v!;yTbPD;vC~DywSBNOx#MR8?a=skj74XmXGZE@6FVYfooKXU9Mb^iOYFd;d^R zQ)3mT(vYN7$VDk!4v&vc3S&MYj(zv~1NP!{SGPhgX`URO3-T$i&T3g$jkPdEo4UFhV}?{c4ULo6ZahzHnZG}@ zS~u3R)Y9EHynLg)t8kiGy*ShJn7MqTU`W)wxH>!cbYO0dXdy<%*`rXdGdCW;cy@1X ze5gBT2;ao{slm1D-Q#P0%fw3U?5!Cr&{c{OYLXb7xBUAR*`N{(=G6g6moHAJZAf|{ zEmLJy4AoSrTB(7)9u)fPC@~`@Zju#SR1(7r4WJ=@CaML=(yO%~RaDRd`>iN3HAN&A zIc7*?V9;UdNS*_Y3R?#*4O$lIC|&?Z2kDa-5BURE2bb>Q@Bryu0Ou{(YoX*T;)_8=-8KXumr97cUk z9{tNM^rwSA9CQ!)KH}TIg1-(93=IqPJ@xB%`wkuZ*XKVTKKRwwdv<-i9Ut-gC)PXn z*zDc2%M8;+TlenTWxUOB=Vt^)XFu6(WM#c?>vmgP{e9Lp*1L4A4Ype9?=#!CcdI#E z9BZs5?J(J4Y-MS!YpsWI)4jF^wpLcVt#@oQv(dEB+p^Ql%oJQPBU58*O{B&!iDYQ3 zVWA5a0=7VPwYFj?*NB8bYwBCV+rg=@1=gC3QF=EqH!veCv38_w1ALmUvAMprxskf5 zp%xqkxCQ7A;Yz<6P-nP!Z=eBGf{C6bh-Mhi-GcVY2j<3F>gt;}8Db&Vz}UnHsVpru zYt&M#%}ulnOf^jOY_JQY0h+kg#~<5#zegJ<<=eCjA-Rm9+)VcTyuCXLnZ@FCTAzPd8U5Kc5i4@XKeV$M6lm?CEm;^vRQXC-RGw zxd3Ybs*z0keTi^q65<5O379CxpOOV=abQ%517-pSS%&?ADqT+bf*^|vEm|M2nG`wkxX<)ghjZ7j`p8k?G!9`j-C$8sQ)4`GAbAVens?ntuo6`yX0* zYMVB1vDj{)x5?T@TYalBRLBQ9nwmOW)YJ_1%r}1o@novI3Br|p2C(G>e#K@ynR*B{ z8tAE!BUjp5dKTtJW?C91|IpIX!*i;yvB^wB)7(Ns-^Rk$im=qRG0`>uRDb(!GeZkY zh-`gx9ZM5q9T<#OmIjtKdgfX?bSsg1&c&N==%wX|os2gYkoT0nT zZ1;iBKeW|1v^oCk!SBC5@bMSM+x5&W|FzBP^Pm3t{U^5nJbLQHX}7OF-S_$BOBWpd zqC8yO1ARc6iwOTcDw0a0MZs>MGGOZv8-`9uI0YU}2(oH{044+mg>10C0Zl-H1!8AI z2!+D=LE|Tw1b~C-jX#8i2Zz$bH4tu#1f(tsDk?G}3?(3t>Ga_2Frc&`g^`$p%ST5Q z3|=2c3_QX{XpLM}5+cp^_YE@$e$e~**EkZ)Mrt9_zDa;!`SAqDshvZlm;-~178yotwV1HeE& zHWMm|ffpWBAUVynA&|QJ`})U5C+BA77uHs;KDx91^4*L3cOTxrefR#Gw=dqlensGU zq7d(}?-0$1MV>R3pMZKDoryLbpBKYnQmDj}?0ei8#vAIpH}~GYqrH3rjL!PZ@@PjY zHCfcuQCXgm9-E#l&P?tfyW6Aa9J?{m&j_QlBG^%jGogg9U!f`~Ie=a(s4r+ticDrX zQP6*JDNFbD7e@YZj;-=I>Ju4t^q8-`Lo!1eO89X7j<{VAopuvvrHR8*ImeQ{sF#8$ z*(WZ$Q+)(Hy6?&8zqlDuza8~D7L;}2jKiPFmmLF(nc+gGOXo`!v~ZUA@)7>Yvwyks z`~r_&w!1{cV_U!xhgJNkGrpI@s*C*^gy#jA*HOiUxr;(`?R zlwVK$7V0MOj{W_w=#%cp&s{u9coXLw4pZnchXoF)F3EJeqrW*gMjtxt^xNsP;lKWF z_h+aeQdv)n3%o=RcTeHUovONfa$BF$B^Bu{IgeOxi9ES7CrhHptM2OT9Gbc^Ha>8D z;>zmy__eX|>E%0DyVCF8C1{+uR3-c&Mr?8no}dToH`Vg%H!;$U@uc34PBh?Q64lk$)-=^uHPlwZ9KZ=xV_OGSDX}2g*@ao8feviW)_3>x z_Kl28O^#14tW1oK4UeEb)Z5<=r>SqOcX)VsbY^aPcIL{=?A+DG>)4%L2f2Iw_WF&L zmAemaT)#0lH8KtvHQe9Y*w|9heEr&lsIO|Qo8wzIvJ}6qGgP zQLj>??)8V(r4(0sx1}Z%>2c|boIJ zKyTof2m2{6WzUQ54b(~I+5$=^S!qq8nw#D1oa(MSqig)k7tvj*qI79~WxcGZ47N;N zT|*7ggsbi_Y&zT9nj7lLQ&eQD@34Uod_&C# z=cI+uP~-{{S^Fu(2^Vexf4QO>`8kLz^3pvSdc$FW$HL}pGc1Mrx)$)|S^@BGZ-XyI zE8yQEVW=DjN3~b@%oR2=Wi~4-5_PCDl?; zU~rJXzqh-GTR*eG)5W>Xv7@D=q1marqM@y-G$&7(i?%+^$y|CnA^ON;QEe%&j(#t32S~ySURRz}?D9N+$R7tgc zEd-HH(58ECmNyqo)lyPoZ_ zUHYp9`pi(n$ZAc6V)nsM8)a$=;P#@#I2E6fcyET9!kB5kIsBZ_xAYhllN&cdFopcao}$*Z`gVn+p-|l0zf9a*yH-};5NGA!Uk4T(e9n z&&@?9PKH68d}Y3>B#+2fN=fYv9$;-1n0%1wh*QElB>l*O!b;djr4=|>K`8`$uC=)x zkKQxf*9s%Coy2IsGpYrNjyw+YVLeDwWHnVKf~WHfLz#@eLas1(rJ<#~uyU|z;_6UP zupd8}8??;gK3irCl@89(o{Y>A*Qe%|uiauk?p&uwKbX1Ic5Q4r_RiCHoY(PhZoPfJ zvivTA${Br?o0ZAzW7D23(;wYpFuSi0v3QF&?kzIgZcfcVzBM>Ie)Ha)x{3L^wxa8b zuBG*>w4u3&E6Z>0uJo_o8ei!iT4`Uu@#1<-%hK9SIPmc~&&qje(zT}BU2VkOH!p6- zF|Q;=kJIn;4~>k&LA`$S%2L})QFe1f-j#+`PJ8>rz18K$;(}_1G>P))-O!skVJfGE zcO$p7F$#Z4`dR=Wn2J4l#< z7*0%LGL@f{kcO?I3=sil1(@34y=CJ&2yp^VHwihw03Ui63CJEH`UZwq0xk!NaQ3?q zN?g*cTk5H=cj}uaI8JWsF*olf`Cr%tYdL;Xp9EiEoXHK0ydFt#* zJG_KmMEj#VFL$1{I?ykp-NM^63m>sR0H z|Lltc-+l4T=ZF4f^XX52e6rUVZ5%UGll}Y5u|~6PyRD76#ZHS)_J6tEcCU@Th2?HD z-QC-)EcaRK>f6|wV_e5VAMTLRZsXksW_l*N+9t+34Gp&K{qQr3?dICXsPY(?Si%=F z(z8Zi1M0-c#8^|y%)oYsk*<;MK4ZYW%y81Ht7&EqeX`R^>my?$5}aV5sjI0?*s23? zu+?IxxxTiMvAM04hLw@J7WQ>aaSm^>T}ykju|8If40Y5^kZQBuss^d0Z>gh?(37@~ zuGW@K`g#~e!b!K@2l|^0wXDo^v^9*4U{gV%S=j<*w%O3cc=ujCD^op7faCN{;8a+e z+8)~a@sGQ|-EsO;`)>~Ybnw?hKmGdq@w4{M&Mq#_moEpny7^tY?Cas}8%B%pJS7w# zg*v_H>E?X)q`lL*!aOgouyEUB^k*AJ^@|EBhxIAk^Y{+o|nG-;-jB`wlw=l zXN%Sri+}#G%SwNT`Bz_kwhf4Y?PeO=v@~~EX&Y;R5Mc#y-v{dYI_e+jo0#I8iS427 zIvQ%4SdKOP2Rt@y)P*+b=o{@dw^27R)mFDP!7}mY4-g^T^ns>{j@Bl1eO(iMU3J2c z^o2Au^fc5q;j?uNuu7$aZ?~2x6(c zB#oj#QW`~VxJ2Z8p`*aDhF=8HM3St(B>xZ|8i5aje1dL>iop9}5>diImLu;Nyf~Ej zL6-x?n_$qR=+TIQK`yhSvj9H8x-52F{|=J~A`Rsu>>{N{#Uo}$suYk0pfj+h4dFwI z5>VjqJE=aRBQ~L?gU8t@>yV@a(iZxF{3uepkhij-T1eHju`Cop`bv0tk3C?7zVRiHukbec2_S{T%K~>{LvoR~ko0a|MC``H{x|9yUo&Il|C@YG#Y6sY z(q?-Xnebjhb@ul3gLgYVGc$i}_0Gdvw;#QD^8E3wyI2i<_=xi2<*Qdzu!dp8k%$Wx zkR)s_FF7s-Z$|?WjpS);G==`|F}sPD3M$2`=Z~Hc)EDolcOEU>csZSWZF#t`qIzhs zy9Ui*3XlGDVRC%+$^7JSUgo=CN)VMPAlUS%z@eeJtd=Z^tiZ>;OB(Iz5ig)r3C}UZ zyj`R1Wyg=W`!I9t+%9;fM4S_(1_aPJuA*}%n4$zhIuR-6u~MTP>5On+98;10vi!@@ zo^G7vY|q1VzJu8Qoac$OOBq1Z`TCx+&-Oa)UCOw~JK=aZ(l?YNK7QUe_%spA@bUDb zu+QfNo)58iQ*z2uGM(iye)-bNewSFDLbvz`u1kmq{g+>Ten07Z&LQULFA-->(U1P( zU#W8`tb`F&K~2X#wFVMW*iOjc0S>QzZ{2;pY@e{_z3?zcaq=>^V7Y8Bm9#h zDXxEcaI^ATiYUtI=r|#M_9Y|`i3O_i>iW*XrCXpMV3^~^^@XcbizEFLSLf!tg^!k> z-Fw3oNOEO>Y{oI@@7_Fpvbwr-b!KK}8bd_`QiU(_RjY1_Y$h5t#`0@bbMlRW@ZtOIz2iL z*J@y}uXCWguYVZQYH;+*)Wpm@-aj-ue|2ej{l?APw^napH)Lgf?bf|p%QKVx-TnO& zBR#`IoqgmQCxe>R(kZM7Vg_b~CpJw!oE%tLy0Xjx*h`f3XyGvcP1m3JPK34;C*kKU zRUBE-da0y)cyp`7 zRZ!a`ODc|+HK}ryLJ6%PE46?V!lU`{*$h6i1e_#JmLxhiLn-7kB>9CLF(WfsDJe+e zC9#E!3~^FkQnHt#yCSbX>muPf?Mn45Z>`R#&uz#EagR*%zj)d=*S)2zBr75?(78qA zo6n19#iU0bb2#ha;d=g*yObMn?!uY#QD<6WB16-Be3)Ko+MPoQ{NGVy(3qy-n#ejErrj1-8fTH^en5gu)1dqP-PT(+KE=!eI$_^$v8j~ zAb-j$t82sy`XU81$I*r6c$c-OHdgq zgLl&L{ngG1$>>+YgdDs&zD#i9vBj$xW zI>Fx<>TmCEMTw{%VXm=JtjoH4pt0-j?d1#Y^*$4y0FgS#xheK^mp{%7`E=px`@6hnCc2XuG zil@`=K6u`=+IRioV;bwme3Lk1daUNnY-(*ofwV924JW3kpyMtjmXR`7&mX-}Q`0uZ zyTzbSUcWkWv#a;T)seLk$NfjUd@p;W)c{iM@MJZY>c3!hC;MA=VmGDd&TPoi8<-n&w5`B-;BODT=IA}vqUcW-GH)k~CR?QY8xSMS5^7AQZ-WNI+nSm)GRP@DS)4O~_8dldLL&UdAy| zQV!D*lUT^tm6YbA6q28pmnTE%U5>QB9G;RCmxMu0$P#5Lz@3Aofm0u7*#cE5DWMd( zg{4K{(?N2#Kwj6DS3<8Bl@#O_18E4~vbu!qrGd|Yv;Z#0G`ID%b@h<6Zdldb;LLS3 zS64!{6;zbu6&K~GQgiZ_GNoVs2Lu5@|OJ$J%{J~l|{;})mwM&QiW*=Nx6wHuHgF3 z(#y%1=qt}}-Fo_JV(?+l{Hxn*D+`MqFBV1~^;Qq}6^;(ow15uNJ<~pQqi20#eY&%4 ze*Iqac+>pUo!L8Gos$hyt@z>DT2;WvzcVv`eFR0uXA~Y~<^ELN()7cHJW*LgRYp?Q z2y0~e`L(LzeD>1`VlsQ6p{KVXT8zZAm=#S~U1(8cCdW5XpLgcu<)jJad^r@%qqj2o zxUZ`lUlt!N!#|MI_d==3l#m;)(Lz~HAugP>ocFq1n^cpZHy#nsPs=HSQ3VpRfv*;zM{)dUHZa{sj$l#N&hEtVlc!Ff$MBAwo!uF1BH5okdlJ<~AmQX(WW+vLURu*XN zSQyyqTj|)S>w)KHVW4HQ-N<;aiKXGEwp)$1qC{_?PFNy(wd2D*reA)98CQcn#(`;1EV4G%)>YRu)J2s=Q^)9g6Ak0dn@mBH*7(56#==Yk zoNZ$>q{*P+^tAQ$cbk}+s;j9%m|0^LNn6uMM_=cI&3XnHVKVyc=x1LY`1yyQ{`D{7 zz#qS(nPu+p`tlTQeIo zi~W0cBWa0Dq_w({9{NLDHW_|kq4js2T~M!Nc_cj;|5-mJDs=l`l3lG{i+>T2c| zC}^qevNF^%-nz$FLrrh1fiC8#)YOpB)6xdFZW9KMwAD9hp-8kzQx9`TT1GmU^wn24 z)K&*4-B6umgCo!faE2NrkB)}1p7v%i*$phPDyy>#Km@aWyUcg$np%Q@XS4~ZJL|1G z&26@0P|0w+p8hr@`nDLGU?~{uzgk!a#{H?QVLtdHBOMJ3b#-)zjCFLj{rLTtz6TF{ zdd%U-ffM_;>h1b?*WRDL`YLSyAv=fjP{$r2U;Oy3%Yps2d(M7i=M+eZ20)I?!(j^t zIXk!$8=8akibx_tNMv|WSV&kx!H;21MDJcpuK8UhN0>%@x5s8(H29Rz;u|ZH_35kWcofw`D!fTKUnHy|5bcc|> zBRSo0no!fhUMnetU^7AA(DC-hHfvhM2OGkPjL+fM1}6@N)B7zXQn5gU!6e*@)EGonQ*K(vd2aLK`=(ZXZk2));BB$t6pQoc8| z9K;a=B8SZNb>JP${{}V0Z;Z*3kGA1R#UXz8zwn4L|CVkskVd4v#Cbob3w=crzc);# zp6=fMfx(gCv8kE4)myi3-?@4J^}82OpFDev79OEk(Qhp7UJO(=o{(DASijK zi&Z75$zi^KI9KQ8r1Q=o+vgs9!Y(!8Tux>HJ5hciJ}TtuC6Cjwi6tDT6W)$au4j&l z&K+`czHrX{n4iQo(47lDB`4{k|HX?=aY@lGT-VG$&j`d9h~SI><{7_u7iat6_%J6g zaZDliau(euDA&t3%{?gG-Xogf<#)o*{qUa`o&OBCw?E?|iAr$vN&VaNPYF-c1?SJ5bo91A{%73pN1dF1KXW0oRKSn-c4cNnB{MuP`b0C6`0R5|{xtFP z=$7_30Eov)B;qonytr@T*1g-)Q?mB*t-v5}!MjCuC<^nj{>wsTt#W-?Ch19`6-x9C?SoEjo{Ge z>m3@H!irJ<^ytLY6@b8JW~Z(!-nhH=^uhY|Td1!s-B^Eg_W|&BQ&VH(L&FmT{phju zRnm)NOIpLZ_07fdsliU=3&vH>or)>`WPkY!QC<2XrF!iSh*d*#gB7)eDnC8CAg?{G zZ)LW(w5O+ceg>9CRl~q#$J+e*%lS3sapjFY(|$5PkNzsGjr#`m)FM*xH68Ent^ zEAfQ$S%%M8mbmW11(!GlRV04cSm=-%?oD+RyCx+LWH-=!ARD`j~}#Em&dndmL8 z;corxnlvRI85|t! zbMx?a8+9KZ!N@zti+t%3{=q(h5uW}5egR(I-d5Mn>0qQhE8j{MtCylSFE+G$SpKn!PM8%^SY|^yTm@Qz=eL zpLub;a6W61;7u>liM+L;6;WAJLUC7dVO?^a ziWZxfLz_qt^JQ=Q?us&BaGTIDMl`e0DZ9~gQ zxvFERVz@C^oY&pmU#H-tWEVEQ4Ngw&j0o{_5AY9U{LCOyGfFDTah`!}zf_n=MzS)o zWK$}MbZ_r&7#W@Lr^K>|06!lubiu}lM?2bEp|2Zj@$@2VSqxvYqyi=pJ)bBn07yHh zK&8r8+vu}j3B-qEvmE|bVlFm@(7pd};1teMwi8EA?nwk)ytZS;N zsi}m!gg_t3Gt4h3sz$o65TdENwxt0-KdNh++6Fqu27B7NVOL|%7$E+3>=~2J6j5AJ zh^=r{UP?%rKYpd-J}W+~-bJ=>ucy0Xd3~g19?qb+ zr{h`n^t1JqiF@le9zSC;=vOD-FxXG$Z_`$nuU&cg=Jgu2IiC7d1 z9^{WdtGu#wf1+}HdH&W+Uvu4P1yNPr(>`34RNGseU)QnFG15C*INW}B;n8^O!0my- zsrmWQ>7J?XnbE5Qvc{%skulF`gLkR4dz`6jPbZ0&?Qe#%ImLx}CCo&uNY_h}9`-K` zw%qO)WVW`+vSXLoZ@H3~5y?th>$8lcjMh1MZr$9tjFO$em(w06&Wt`)5KLCaI4w!c ziRLqW7H?2e=vM-27n777P0gilMP)7JjtzC0vCuk#bg?*H0*(Q+Dp2*5#PGAAm4Fx|i$!e<^uH~ z%Q$-E*pckxayit|G4SP_&!0SV;`I4raG6dYKXKwXhKx>}Qrg*_vQsGSPTC#IvJd*< z&`*bc{`T7gUw`w{cOl>Z__d3N{e{Cn{(Qm10T;iV&mI5n`%gdHaqRblhxdHyaPF7y zc3PX57!i6{QZ>*vN4Lnz#(MjH6Qf;XjE28v1V z0}XwP?KbAxw%cq>%=Gmv%nWv0AX;Y$uz}$&HGM7f?b|H%^o$HmEsbzbIDnAz?y-);a*^8d%vTfjxRFWTRq`+v{9_uOOB-3ZvV+wC@Yr`v830qK^8XM*V& zhK3=AVThr-ySqCCNdZB{Zr}Cbx%Z=65UK4v!n1yBt?x4Y^1vP~10@|fd5vB2g!(pZ zARZ2AYiVe0*VNWD)Yj3I*8%<6Xe$_Ia&jBC;%-|@K~q&x6>f#Gmi%T7eSLi9#!7qC zHE=HtD)iQka+|iHJ0qv4te}lHk^yFR47SQC8lBj#tu41z(?Cg8dE@_VPyoqHO9A09 zoxisoJ9_P>?~fe%{`;T*CjS2Oy1A>nyOpIi(0o?r*UfKR+gRD!IQuwUIu#ik3ev@u zTMpLdS1(__2%2A7N*W$R5<3_b1(sZ7xG+2{Bp8dZK>|UbATW>@7|0RgIW`YK1tyYr zIOS$D2?~o1)B@mgY&IVvhJ_PFzA!j2kRQYaU;#m*FkF4OEaD-d5e7v9l$?hRf=CjC z28)pI6XKW1sCd|*Ab`Xrq$OsiCV}ZMmBxsrsYxkuF%coi0)kM-+Gt10fRg6Al%li@+c+I z$=z2_yCImiY*bO$tfB)@ouaawuA<5YIeEp6=!7X~K}^Ymq#(al4(tn~&499ND458p z?NV0Jguk>yTk){Y;r()3mDCh8Hvz?=tg}VopoX57u7Lr#56YX=wkmE?lat%3qPS1r za1TO+8v0209n>@4q^qEyq(rF7Y3P2j>%fsKK^HDu`{Cp_+qDnxGD1*w`)7Zgw(#=s zb~xeS;_YzA-u}{`=WaPUW8u{k3If`Q4l{yHVPJCzPz1;u=o??`!XiiK4OxWL9WrF^2aOS?a@A>_#uPm?}JPq;RgzXw;u+P zU^4jwF$a<=bpz0HWFHAo2et?)w140|U}zN;o^`ka94CJs@efi{g+V$|{X-x`sOy#t zIkHN+O9A9o(I@?Z{Z>2&jkE3?t@}e5g#ABZ6a^hb_uWFeNb9E4x^BU1uSfSjxldH& z_UL|zAb|5Aic*o>+pzxX&_SQx@wyy}{kM6A|4~x;u<$0N&_N5TnOss@*FyM}G>_ta z|7%^I`Eq?oLkr>vACTn-blty&6(V@}A0r73|7OoMH8nSPKpJ%qjZ7{r&MmGzdG>7W z*}D$}g%`^I`1<3A_wNXhwqL(y3&JtJ9KvPunRFU{z`zZF$i*fUEdUrt3K75*X1@}I zMldND4P!HcP+kHCZs{#0?xC<`U=(-zt#z5@O|qzHKIJ8ac-vdkm|am!q~u~ej4z-% z4*G=q1h%yoI}}UfyP6UrC6QhM0a6^kxe97Cu7wg=iC39XRF9j(g>k``q9c88oHIM; zkQa2pLd=oI2q-1~SB6Z(GK1XCyD-?1rh!h>=rg9Sw;fNP^>p#|w6!sfXECTj{-GYH zSPXN%hlA;DdcqxnYcUa>?M7qR+WOu)eT9;2>A|NZq!yVvV!qPpvcH*~=WS<;8|MT! z&CmRO$&P1vCh0HRlAE5USI+L>Fz5PKA2m4`|;x&Mi3?dA~={6c>5kuK&%Vmh;)8%d~5^~rLS+WzZ1%+ z1LV1;=BBoe=7#c`%DS4mDkP~&DskgmQCo&iN(GuI70^h5w?2bu~(+bj6&f}EmPtiD=n3UDGHIxVohGs{tYx2|Thg!N?%d&E?N@{79Rv4U`QiREc zkw(YNW(ylD=X85_dumzUt(Y)LP(?UF6@|qKy&{-CQ53?<#oJrpFY$6_csbnh2xmvp z966DE_poai!c0jEOTu@23Oz&?8INL}ATlGfsHXvSssh5n$-*}-CGyhM>d@eu)S}pD z61NZrH-s;V%MAC-3(YQPySZ~fIW|Ad@wB~T8S2bR%4S)H6xs>Xn^Jva{MpP~o`D7V z>0!Zk{tqI=9ZL@r*?c-HIwy!4oZpaMHpC5}Jfw1IK>-1CQ+=~UFR*cWmAJtytHSAa zeS;&q9w0MRR8&9^739M60sWdJiRG^+>hiMl^AW!TZVn6vkhh_ba`W;ag%H34b`H30 z#Pl#8L&_!;^byU=FDfbrYp$AHCBlE$nklL*DTiTHUQv#EQVqRqBg9cnJvmH-`&t5> z2+WdX=4KTXl{bLi(cT87-QGW7W8>=WI?yvTIM{Ck(soaeGn%0;E?zEhjKJNtcW}0M zcC@j#wR1oc59-JklJ*Y2&feM0(##UU5pz2Wi`%AF=Ghfy)E-x!C_yHP4GRw7h5ETV zS(=t#yIw6xjtYsA5X|tXKmjk3&3KX4nOFDj=_BUq;NaTpiN4wC`ue8v>H5t0)};kn zU&YgVM8jxtJA3xc{bB0;2hGypBtrD=9xZgKXL+G5KenF!II{26P%bm8q_&saQ#JUJ zDay~xVzR1}D@&!xqWRXws)@3$Y+B7s_>0Wkkm$M>`JFlMiLuxDHT8)Z`SA=^|6p8E zU(M+KSJc$Z(tN3)k}EBVDvoCf-^51H*utVN8S5!E^<{ErP%!oFySdtujF*q8&*^Wm zSRcago>`>RQ!7s-$tTBxpM^8S9G)Fp!c`Pqa<3i`&bjwKa|J>AXeLmXnVZ1C=Ix1@CP!xOAk^$vbqdbhUP+5PCzb2e+> zLB-VlkB^rJmzRU@J)^Sdp_2i@Ea}QT(Oo-M_o}D3YI=08t8}2Pa-s|=!P30O{5DW9 z3Q{t1`r0R}W6S!gCAGxIN4ewkeUpu~^%;%LcbE$J;-h{&ET$nKLy#Wpq-#Ki|JjmF4$eX`=r=GyR%DOzg7 zKx<@bP<$K_p7G?xlfiBte~cHB)iKPl_j11D!}YLtj*4Z4B-vQpEWT-d)6v{AGfkF% zGbI?s4+tTWu#HC|$uT7*8M#PcutjkqEW<$b;QXG9;30Dt77_tz6h=xTjJU!p3WY?1 zg@kw>nZF}{6OIv?=ymcKDBO`~=tEnfXd;%7u2Ec!C?+~q1pXk3M?kKlo+PEmZiG0J zqF;|-9WH@&<}MF-=AfW(kR76tuEJ-NEIWPr^0kXeQaq-~XJlv3CnjEmOLXzVwF?(6 zW9Jn=E}px1{>*ty7F__8`_hFor_Z0g0A9oIzn?gM^2GNij{R`__{k$Dzq{@H?a|BM z{B_mB#@y`k#oy0eMRDV+1E#w_yK#Ka*SinyCiZSOM7Kv>L-l~(u5Ek1I$)yp`GI|3 z9X5e`q>J0m1KW+Y^bYJ&*4H*PAa^w}_hV$Jqo}vvL`O|S!*HLWhUN|(1JJ_sHROyG zb{ZIJsTgk4)l=QAX|f-jI&E!LRc%8pm`xZn($d?jZLFd44O|N?K$p=|(o!=fP?g!X zLs$0zwnx>CHFWiqFmMED03ZU2>T+`Oa&lWXZ#7iaM6OE*9hu!q%71Oq(NvPx*=3}n zC}*g$8TOGPHcP=jGf-CCVPvGKuB>dJsIl{l9lMYH{FRZuf}#?_d{~+VZrXV7_5&yX zJY`|=^)Z0@e*Wc;KTU5DRu0HH+k(36WMO&hvc2PNS0`6zM<{<07MAVe#2)h%P#t0D>Yp`#R$zCG^104kdoOK8!Ro$IhIvbQ=$pN*l zqoN6Ffq4U0Fv-9&~nHg!q(zl2F(LVxT%YXL=^v)z$S3fe+jP zXonKH{R>n#6qcgSpL>s)+FUricfZl@A5QEv`trvMzy5ap$dSXgUmyMErz6Mh%&*@3 z8s9~oU9l*H>X1JbHUvQ~1tA_s5Z?aYs2c&ifSY`hsqNwJ?s*5Q3Y-SO=X?NZKqk+N zR7ObO!5M;NBBOU0tO9rrsXHI|Nf1)F`==r>M!`oQKMaz1J`}h}kVJ@t(J29BybdHb z62lI2k;#k%#Q@{2B%i?#o=p((pYV+Q{es9y9-wrj79#U^pGrXMF3-PB8hjwq7Yc;A z6G@H@eG(%mDv?x%b+!Vscb`UxNEe4iF1V6!Ps58LSMdM%Nf0rygY?la`x6s_L@vOb zBHw`Yi~a*qIWi(gLLWZ0m`D=d{|AYaj+cYJy{_3L|2Bo#=sE?!CL%vdAeo!FL_Lckc)~<<;8br_WxkJ^T2I`r!i}7d|e3 zdH{!xyK(YtflVXcy&y|o1e+BQ6vm)YKZI3Mxs0d88u)fhlI%x)|KQD7ef`V|CTbRX zhMT%u%OldG!b2Dw>gvMaXm=gaQeD+k(Nq;J3@=Vgq9$>@ylkueoq9TJI1JyQkYZM3 zv@atjGC44S#ba@36cR)90}4w2xQNdyWV-LCmtIAh(& zigArfXXFMJSU9B_B(m(5Kt`P!Vm9(7vi z%>MPtpVo1fycGK7I7f?fr%o66W?pg^Hi&zl&%MuB0p-QhgO^{?m61NpZCfSS;h`dF zMqXB4abv^a**hACnw(S`#g1UyBXWBB*sDZ$ z|JuZSdG&y)gIB$6M{+D~yUer8tjePkW!YKcY)@}{>)i6{JC)WRlxB)`YC&j~ELFe` zrg8-Ia1S~wI5p7K)79QDz$ZY&iy#8njPz)M8;i=}xl(hB;!((tP2z`!vN?hA(QI*& zRX|R>Op1JDz$k6R9dKFxRaPt1&du|`c|(-In|R-Tu(w|Cy} zUu^4ZZ0Ty6oBnX06_8bzUyz$yhAvQDcT3CY45p!u)i>0^`5=cii%7OYQ8DgA$udU{ zNX#f2 z+uL@xg6iJW+A-K;KQv(D;Na%z=5259V(;SMu)AXe>BA8rk(_s70dL>EXlO5~ZGPN1+MQfC(zo1H-O^OqE|k!C-7nsbas>Cf zLo=dZ16~ko3LP4xVmOCtfI6yJ10F8qB|WIRep9xP8N*EysZ2RTwK-I$0c3o+WP9s*82MDhQ^lG zmineHglD1TLCZ@`O+o!HNfIlh^5`YGaaAkh^Pcm46D_?Qsy)lL&Y3Dmc>LDM!8*Vz z*u&Z9&JYn>I_NgxRM$0+hj#8GBY^vu{idn0Z*_^Wh+Vsm@s$_P7N)tueCphrSE0`- z(b4adnKKV+p3W_FHTKkY_B8h9RoC`Rm&po?(#p%SO8aYjV2ziq%(N%x=2z8-OW(hp zz<%}c{hG$6vi8QwfrgRQxatQ3V|`=P7u41J#LE))^8IRNU)#gQp6Pb>Tu~37-_qXy zv~#4hZE(6IuR@&MRh?cCmd9J@Vv0DEvD5EUUu22GONQoJ+ae02NioUcg88!8kI__a zP(pA=t95{bTWE@`s#G8fjmk^N7m0;oG11wX^?A3=0!5)f8Ha<0iq}YaXAt$Mi#}Oe-Nrn!c~GVnj9__4GopO1{(YK?8iQUFPf?yE*~yt0ZP(E-(b6(eQPx&h--fv#Bf?N$RZIJGot*}1D*A@1Mw-Bs z833@1c~B(%1E;$W(?JZzFBbS8$ z-wqQk6(u=iy=`hnU;OsnY15lG&zv*DrmMV?-i|Mfb*~%$bp4A%0G0pz$6vqyb?W?C zQ!^_&!o>;&Pb)i12V0OnZ`-dhI{xlYw%Vxj_fE_?Xx`#_)!z%)e8+H+P zRp2D?z+NVJfdcqTkyr?h!KD}nSCO=a_<_jd;kw|31qp(M5yGJ0zz`(%FmV(i2G1}S zmu)nh>=>Agqz+0+l}TcvBZYy1_y}zDTzoyTSaHNqfBTPLfBwhe-*$eseebWw_x*VA z;z1)_U0nk$gzFA`xl2!9RgW;(t*^OT#bDcBjcr<5hX358th7lJ&WwuczqTlXeyzN5 zs~lhqTQ*?TNmWi^!zLxIjd)f;7X`A78~?RQeyhqRB^98tH*fmahAncNKsLvCkvw#c z3MO2)V#sx)g0jly&4A)dh9=)0 z+Nr0mZ3wqWMNOHc3~GaOh&A4=>RZ8uP~57cZ2Xn3k&>z+I!dTeY2$(*qnWDPzTc;& zeqi73v%eVQ*RPL%|J$i!r+z+b^@qjjYk&Rm%kO4ZK2FEK`qjq8)zJ|_IB$Ozoz4rv z7SwUrG&C4Pq^<#z0V2TzX#Zn#bP{nJ*B&Dd;&-sbC5)s3fC-C4z0lL2}N| zFKoT(^RNHyAo=^V&_NPHVUUW$4^yjT-{=!7f%IQUhbRbYhU^PrUuazb`9$M|0{cTc|C06gVDaFHda|E)YR zK4BI}KWGEqHU5M&gJ24guk>$ihBy1Kb=L?c)~A9K{nJMlKv3ZWvV295hX3aV)nj9^ zwZCtodth{Ya`f)P+}!-!;^QX|AHDwYkx6;-XRI5svkn0PcjNDQ~s&i6eYugxin@bd6$xfASHZSH*MPH|`?JA$25kzSf0 zpeKbyhf~;LNr^Xj9yEcs-7Qn%My9Xt9pPEN)YnuR5ubc3rOEMDBqxa>3gCw&$FgeN zW3IAfx1G<(d~RBuvZ9_lf8Bw9_UvCaJT&^HH?P>=IL-G75Akp&h%0UsC$mex1^aqp z+4bzLTa0-A%|e&kjAY+acl@k)R@WVZEbFevUSXZRa_*`bi*m}z+aZz)NV%N_rCdy6K)}Iy16_#f=JKaiila zs*yb#xIcG)YGUs0=iRftUH4bUx<{ZzCRUfm9`+_bota&I{`~P98WXo-SQLPTDP+6= zDr0tbVQyw&{{Ad|oERG%>ly6s9&GFDXhT$`uDQ0Ut-cy@xJm%I0qO>O3|!`NB;qQ{ zVF?r$0w7k?jB%oh@|tE$-n7&;HJ|{{*3pI%QhQf(*WmczG7edsmXiG#MFan_=ihtD=#tFySDITWp(b}*l_n?e{&Zc zh03zVA{n=1ky4e`_n>-i_VF8>9~EV%WCZe`#Bis>J_JcqA1^$5G4Ob?>s~;JP!b!k zMrHcn7;*EXRaX{B3#FM+Wm)l{JWIs<%v#6RhN|4rVe`6d``gxy&Nhj8Qi3Pu2RVqC zRF0<)5ybMbb-U%qAXph0f&y+ZSI7_Gh};lUPc5aT0xSMl{Q2Md)~20u&}*mC9(3m z>6}Za=2*upmy8e@eTng&X-q3VC7i|al@A1n7PpkbrPs{dy_?(B zTro28=mRH&HC_OsSV?V7ePd%=dvjY$d(TLB2M~fFE|c;Fm7jtFXjkZyM}nDy ztz%xnw43amLQ51 z@&eh<1ETp03?WZ&zoxyUI=^{&?p;@9#%TXwbw)++{0NbsP+1=)WYLqEOVy?2Q>^(9 zje@0#nHkRgH8IiCINv)neojXGTG~x zAV~ygsBZ0jWp*(UmS0zx5=?*DSei)*X2d7757jWA<;aF#7qHUu!s|I4X=U^~&N8o+ zC*(&3_7!td^Tj-($%o*A{N_budrM5!A=f&hiu~rf*qS-@)Ak@;;t$@d| zpBwA1Y_1x#b?^){H+Qf#Gk5k72%@6mqmfXA6iNIdDm6xgL}7G7RGcI!KR=~hN^OQ^ z+uhaLYv<^MlRgi3J3CuXhi;HEFrEAfH&{Y1B??Nj!ICRX$Cyw$_}l4;shP70h>t-LKSm1jOFGmMs?+Hyveb+e%&w+FY-eH8H#;vQucWfLy0oII zoFsmuvsO?HD>5TDH8Zy)JuknoxHvZ>tE{fRyr!%O!n(G#nrN*djpeS^{{T z)K!%gWf$hlvM?bkj!BH<`?TGq4%Uo6>6)6j|18AMJ2Z&Hc5`YDaj)`OpfCf*`?^LO zI!d!@Z1C-tO?i*u1nLSeB4%Z3p!n{#tn8A}*1qRU4*Bl4ve>K#OYP+&qxYZo zceb{t7v|(j=b~hkxEWqbK+4_Zm^Nzno58ys#8P8PU{gFTH6oG~$teJ1QIv1vMx*m1 z#9@g6cf8o=u3ZjGj8DT&B_}RAr`F2eJOjceJQ6dwiHWjQP!Q5G3o_HCz-U7Q#lioH ziNlR%ObkR&h%f}OhF}s*huKwh>*4g^&_6f|(7K4QDCnW^2n?@=ir^BVd>;vJ1DZu- zln%J=C{Y}lw?mLhBtnx2?>rjOw>Sx8(5FFO(jX*fhNSc)d>hA&u}~0(Dp5#SP$;RW zB1O1j#F+lQcouOi(y>ZNk(@ar6(?LUHG?5^>HL*5=dY2T5HJj>=PxFng&B1A?8Wo4 z#CQm(OKvBB`RNZocef)zc%L}xee%d*clTo_zH@POJ#1-)lagCEemQ>r=&?iJ?f(7u zpNO9ieevser;Z%hxo^9sy6OQ9O)V4b%cvU~0(7ipviIOOJGN=>G1k?FKcKHAr;SRH zx{4C;$zN(4=?lukmUAwkx?E`1wvoAH_4(X~Y%BvYF z%PDE?QdZK?-LAiF+t(=LtH|kTlIb-~LP=8}_qi%NfP+w0Q_)b=#an2>u+RaI8J!iR zu(ag&DCx@M#u=0V1C1>Pddh}73=NGn)C}ZwH>+*Yl7nR1tN=qxS!ai~+MfNFf7lEQ7s;^MZr(&RAE89k3((BaxLA7wSOYjYJWwIPBnX9J z==$(@Y#vL%0(=2!Qk?GtPRBq<4zO<4I+TpWlhHuyrgH_*MocD*ARZrP5I|c(0?dVQ z@V>)@;UaOAggib$T@8shA?(MnV8q^pA^0wdd}l;3u&b~w#iDRhUMI&U#UzTQ5^yzf zVWq^RNTe}QVIjO=A%hn{2WZCsj`c4me%g6p*Y}tApFHyIXD0iOU;N|8zYczOR7d-Z z?T3x`9@ur@z~|eD@4ni(PfJZrS69UZ55fOvlLaDebxjRbSZt_=Z3TR8v$7hNZWR@c z^fu_oL;ff#pwFYBrMh*~Kjk;V2ZCJ$=STsGxy=e{dKh}zLIxPsftFL*xET%-pbMMj zS%l)j)mQH^+3pHs0~uZo|(^w3YFY zt7&T)Zr9S-te|KFV@XbRGkhOI6-@&L4P0MODA zcatw9+eQ9}*^!Ea^2sv-?17XH6n`p>fEEfse-bVRXmt!0DTNp@kO%998is&h0)e)|%AQIxu!E-*|bf5o6N+XhCM~3M(kP_;X%7L(<`^j+ZOmY~C*6km*FZ+}1 z!E3PbK}lQa-wUv0iRgdu8GL%%MtmfaNVncSTK_De)JSaxnw?L$FCYJRJpA|3FYHr$ z2$MNAt!MNrmWe*6G0md_?=Z{M?dLIER? z$9VN5uYGEHdbDq}C;;NW*@_c%{s;;oNDW|qDCyGmFb7x;rM2w!5*!Ysl z@Q|DwYIt^SL9Baqm7T*KclVnXsX?J07624R5Xm`Vw`8T)ZZ)Om1+#8@Fau;ah1?{I z;5h!xDBs8^|EuN}7tYc=tjvTrIF}tw?}QgvIJ($|oOW_LV`*t~ld$%3y+Tla_93h< z-@JClKgqYvjgo@kCQPy@h z!yGQyUWg}h1212rrWYp?^(Ez_1aq2K&C5#&X2ujq36_6wc5dI}Ws<@jhHrv7m7`PR zE30b{R;K!==I8Gc!w=V%=NG2uM{|}2`&Pztg4PyRpFDm3;tfHtg9XvSIOd^!puB(i zYVG0D?EQts$=T(_>G9!-k^ZTHq2B(Uo<1-#nj0FLYU=7*8gbuSUt3;_>{TU{2~-i{ zaD{LNKq@0?bu|qQja8MErNDMKv_eVM)wdJfy)C^x-JMu;9R$alMAhN`vkT$4{(-*s zc7VLw$hp@3k-q-kp5ET+d*f4+6L;?pPtM$1nx0!;UR`z32+msjJOLS^@ZgK`Yh?SXIBF>Q(RpnNuR=0o$ecQUOrzSpy zQz?}O^TQd8jPOK?GX=2^8ZRe^8|5pC^aR}5wFJ&M%mzNJxLTO$u z`Ff@KmE~pmAl6kPCRg16{6=*J93lWW>Kp2TS*Wi?eF@!aNov}<^vcUYK?GL{$|;rA zEv>z+T|G8-15E(d4Rm++*md;}Iw3#`-nxr>2otAUZuT&WY#j$}ZEc-;z?1K{bF%60 zwi)Q`<`!F9-nd>+TvLnh`L>p(H!G`e+t}Nf+gaTzE#zaURR*tu?S+h83sGE*Sbqo#8+?%M*9PP=d7+RWXWQ{J-n3zJM^5@0|@}>1{ zqbps{-wjb#J_ImcEx+$?h%aq#ct|vsjnK>QkMN)7JnP5{O-K?1PNhdhj72U7rbgrs zJ&jB&O?=KNE8|IJiLpdxWo2ah3^Co39U38IHa;nSnM}#erPA0v!pwIe6B)@7Nz%wC z%@d=t=A<^pYgTkfW0E+pZl3uO_kWDL71Tt*+oETU3`X(lhcQ9AfE#=HdYoN^Jr(14 zR0hYxi=Ya)kr|0s%`B|!Jv@ClJlu<-0+yMTB9W!1ClT>^g&--&GNb`{QgL1e%eAGd z38lcUUK<-{&pT8vcSn2sLEC}u-u70c7{PR8Z>T5|hy!N>9m1mSq!p`RRqYvT&WD zdsdQ#E2q4m2no6Df}(=VtUQnqb1?r~R9a97>PLQUbr~!oAjH90XsNAlZNWTrduu}@ z`l#LQT>vfuiI|rq%Se)@;1pXN9m?&(kWkmyRP#jb^fDtdI9k9Hp)$@ZuAF;Ac`$N! zgeWW*RJaYgxbT}^PIx||EIeOac)EI@IxtgOT?5Wb*8paVyPFsKSB54Z4y}zmLW+S( z2AFSn8c8!fs z&&PI?emHT&)#=wuRv2S9 zwLJIZ=U?nQL;U#j7kf+&?E2%6-wz$yf8yA|&vqTqR@cxmKJu&aZo~awo9x(eaEE~j zDn!V}>1gi4W~!>Xwvy`3orYTKx&|f&2A_YuTVv0D4UIi}_vq`WYUyYmR5dW(p<`&W zTYuM1LnEM@QUB4`Q&rioYNWbNL&N0Ac3lk>jZIoAThtZhl?kXYrR_$lMtcm@wbWD$ z_i65ewV<|n;}*={XeycLYhWo+5I;G*U?L=x52+0*T}U(@dw}lXR7N5p7lcbIP#6mLDF_#1cvJ}F zQfNp#Xmv42az-GFi_k5MMpQ(l*y2jSSJjkQl#9Z{aNoy)5#jA~$HV2u&--+B_Z~1j zc<9G(PF?)+*x4I@|9g_U7-}kxE4#IHX$v@Tgkz>?V+@rp2tFD2rx;`u+ zO{Fbc72(v$DQ!V2P64eS6)kY+R25V<{0rJh%|r)dLb_-J$;)rrtS*nqqOIC0TjUXk zQ&rrkNY=en$RSm%P$>ZHt+7RUle)U%Mx^NEH5E6hY|&QUqWItPN}Ck_N&G|W!0~@= z1!YiA>*(IY+mHNsaPNt|z4m;&~<foz8j zBOlmEWT%KEF8DwUs^!aam} z7zbg*MxYFmB5b`t6yUdkOqY?3BB&%fSPM*o3co1OpN2Ty|8nb~aPa9e{h)x>^$2I3 zX#fRAx-q`%I)`+K07M`m-FOKpi^#SR%a;M?1}cR`;=JiT|4qIHek&mPa(Me7zf>}W zL&Cg2`jvyGz=aqhb;N{*k3dbjYX$W=#-aFUp{^Qp8R`c3-FKc{rk%I*jUFuw+}RO1Q`w- zmBO5Q&R`NR`=(zIkEfq4O-!^G$Hx#oy&d&g;mI*TpAdpzwvZS6?tXt$L{dh2Y<7B8 zQfF>^addc&C?c(<(v9in!EpEWHcc_F;mLAXo-_}aRKZ1SYoSQYbu37U%wXC26Xl8K zG}lfup--R{?T!n>%+<=mRLEjR{C?RQoHuKGF8wz-}Nk^~>i^#un$s`s(`cR&w7hzg@Wh{v+)j4PUo7AjL4~1m(l4 zm(LzOUR}7qv@pAHZ+d!Sa(r^2zh`i?r*{xar4v!Bnx@u9WN50Y>MGC#s;VxnDaFr< zQZhA#a&rZeFC_pffGbv3R9;+OUsciATwm3I(IcXzqphbJT$$*YTP1o&h<;v# z`0n_NvDV5ucJ@MAW#&Zp*kb)%N=8mnbWl`FK`<by z3~D$|$pXTp!6it1@aSAjwWNq+qQsJ{zzFe0k-&o*9xK6_Y=|IF%Fkm4i$ghrXf8X5 zB1)4K7G;YAC803_Z^Hj~`gOA)l>Qlvg5>d1VO2&{>Pz}iVlqFRLiJ$>*hs1~QsX6Y zf;e}2dRawALECgk)9_S%efn@cH=LIi(l+z-W#D9IcHCf0BbHChWl;5N1tp~|YN>LxHZh}2Xd$+7^!$}K9%%PT>t zsHUd2p{2gPqqVQMtFhazy%}W?q$Yc9G3V;!gaZP1dq+2SXW+L{8*;UCwzsvlx5Kb- zd*>iI`RZ~9J)*vzux2DbOf4--%`9yYf;YD^$0Up+oem$KheD>6I7yEA0vymV1~V20ctt;!w$+Nd{zs=&_@fL7J z;e=m$l6Pdm&5X?4t2eB@SUk+ngeD*&l_Sf|$;L)=7$-7QOjMN=7bj+=CrToc(t;g( zuya&1IB3^z@9604?Bxj^WDObA-GTL8GUQlY3oVO08**vz8?oRD8JwLg!#q)j3^_F% z<)a{v+Y#KJ!~p;m7ZV#NiI0wvpqm1FAR#F&DIQsvc$rj^mVvRF%+zEeJu5RW4^1dWdnNEy`L)X>z6 z?06nd{enxdQwhaeMe_Wv5P9_SdF|OWfk8^Gd6qKYsCg>}6C(U3GnF>*A0kBQvI9xpKCpcxbqDx}|^N{nBbM z@BMt!XiD3_;80`lME|p;d&~8eog*U?Q*$Fd{j-m{dnTwOy#=)+lk=T3BaNM_Q=M-I zM`y=+`^Q@wd+SH;PrrQsdUj%IbY-NGXbX5)oHHD=O2lwtJ>zI*v^x%zLZ`us;nuGF z#**5y;E@NjbG`lTMXm8+_00o)eJ>wRbo5UQ4wa5pg^E}d-?E{n%hcKa(zF8C;MBMX zp%0JhBS?ryK~6G@1JtFc+{(@1 z{JaGGqlglb4iJnXdYCCWDiZ>$2pG7CAdnS+;zp`2IxYqXg;4xHh{Py}BH|EWBEfXn zGeXiXCMGl@jx?OYu!|H4WOp=F4Y2JXYoOTy+;U7pa(sL|;!TN31lY}N7LOOm7X*g{ z0`q_{USwpnScC!_=pLeka}ZN#%3}@q41fw3F5I|&`SMvnyDwl^2NLKKf^(=0olArP zB}qPa4j{VANYll~*>Hb5^TUyoCq0jx_~GZDP8`RH`B78n?~Z+3qNAgrrJ-tw!Bs6)^{onu@`g&A)d;1nO6sb6boA6UjFrHP)>GZCPtp%m zROAdc@7SVXfb5-`0$yLkL=_XV>d41wX{xF3IB@*8FLX7ubyW0}b=0&BzBSY`&@kL_ z`rE@lAN=i)qbL6QPO*4xxzCQZf`3u*tn_aQAbhL7^adLFDvNXGK z@s^7PwwygY;IdnzROV{&w>Ux?7A{LU2YcwkrHePNUp;@}%(*mZSA<{@e2f;MA0~np z76k_hae@;R255qiB+9|@LFy6r5a@tF@=#e+D#%wfq@n`Ar3!#!L<23D&1b`xpaJ{H zz#FhY>ShysfiP^ne1_SgC}<#z#KMS#X@nk92p>f|jvhVr z=ZQamICRu#zo9xNtPD*EBja6r_h9{0*HA~zz!)34y4nWY^b9vDs;DU_%Bf;9b?at% zRB|?Gq4R^CRz&Ew{`0>zbPe>kZruXdoSfp8UBD)w4y3R}MR$v$G6tqF>H9A=l?|IV z!8{_>ikjM1Wq`I7z+I5X((7hrPz6=hAd-~j{z?4jf68rAQkLJXynFkB13!GTnmqK?mMy9~v{bc}l!32P-Dae%tEh%hr=baXDH7@((|Kv-8;DuYWxC*ZCiRyMFGwU#_0B@ILX~QCDYsCl@ytZ!~w{(V(}3RaIJm zAB>yzAR7T;gP#;X+<`#Dcmtf^>49YoJaKnNT#odL+_4t6E{8zk_VS~^Od^F3#1UkK zuQx$}H3y0*Tqbufe^LOs1Ezo=9pQu43^)qtkx}S0@VotJSl*#hG3?5S2T*|R z7mLae`x9u6fl*iPdTEG&4Ehfu#-9&C!X}XgTu|UhUBdY!H^}FqXy}kJq~Q5PFYqCe zbe}SE5IN*CL0Caqms+XNBLHxdxP%(KOAef+_3>8d8*;og23b5(*`z@%(E&cd2h7HA z1AHUb{ha7eDy9YBcDk@FGcp9$7m&#JX6`L4%wm-F(c0RR=TBCjzkal~I=`}pxEnT` z=r~0UWaDofy&f8u6P+9dls1xW@1B075d`BEm3SM#r$ZRNWpN`%`N2XS9M(`4hhSqB zIf%^{2EuS9-hjjX;^~w36xw?#@!`pHaI)Sk_O;e^Ry0&)OG9I5oR=ThCJOv`yyCjx z_~1I6V*w1C(%0JH=EbtMw=gfta|*dxnwn9_Npj}-m04f7==3``@DAk~=XQv+E-{Vk zC$0$fbaC@$dAJ6jWw@Lzkwv+4ZBIu8UrA)&_VY2f6PTO+eev(>7yrCYT>Aa`#b4Oo ztkXBnay=CqIs7av}kUy*O7FC!w_`m!UBZgrJaIsB@w z!^=D+xtwqB%V4wl&Tawx{_w1ta@-~Mj`YsaIKA$KoBsa8%O_8t zK6>zIaeft#&FtjN#PCQzzyyPRz1@BATaZR-L}&_%q_zS2rM9{bbMf`4bzr`xq@=v0 zpsJ#xvaF<{u(}*mtQB}2fZ?hun_C(ht6Mso3EWFJ;l882y{o;i4+B)~khDX1|04sP zJ%e2xt-X*q9Y|y$`PPo(`k{N1vorT*?~?VP(S@0XxrMn03v-JPXP!S@S$h2Z^|NP7 zW3YsVdU~4Lo3L8c)X~zA$I452_Eg9Zi7iP845bU0Wli;QJrG>o(Tr@OgA(dRV?7GM zO(G>=SRn3dtxFQuNbeRjmgR9$r>pP{S0>6zu@Giv6vmgwWJ+$N!GCCK<)Y0QB8UnO z=Lbb5h6Y6j#wLV>WE5w%;W&~4t5%H-&(s0wlibGOGOiqN%j~5un!C7T=O1?zG zu=nG--Eky5&$E7|2Il$}mIoHcM>l39w#JFW2CDihg@jFT7+08AKSG_(tt@I-b}XNr zc=W*a?pV=qZ^O!9O=o)DWTvnbp78F8lU1M`gQ&VGoO+z(74r`VIR8T?|&MPWP3iC^{0dT`DC6I5q zStK(X3<#(fblNlF;E;PVXs71^5{Fw%gx|;;&>UzOfQ_MIa^dvgp15Ego={#0#8(mS zM+-@II;_6B>dJ;%GU!%SSyxpHVs-;mOj=43Qc~%_EMTT6zqq0jcc<0$&CNLEz;)5w z)!W+MQiE%tt=-Yy!QRf%)g4tI8(UWgJ69J9$KS@zZfMZHzhf9LbnLOS>36(ihga-# za`Kg7$JPF}nYrC<8#A~$5GdAGHaARfTra*>Tnf2XbJMKm7Ez1&*n-T8jM%VH5yBJ{ z%#~Oe!c%X;%VypQ^RdF6S}RBT<;TV&XZ zD9x>@wM0|W(7n#C)#i+$$B;?VtlF%wR%S&8`^~fYy5(&4+J~Tbz2cH8ao%8b1XIWX zbU)fh#0m?eu1!A;6bCNkj)XVH^P;D+3JSC0qKd@8G>bBFUkJn{AB!ephf~W2pN9rV z7K#OIQCZz+=@6SeT0WS>ji`o;nGm0oGVFz_F&9|E__z#H%geGzNp8k9GY@J2J4OOF zGO9JH>E-CoWM;$xwv;5HrxSQ-dV(ysAXDVkQeS5?(9_l12ZzkgjZVckEN6Ql?6CpX z(%4#G(^7-StgO1Mu$Z*;Aa=9!GjhOxO9Ss(mXe-A?g=F%N|W(|6!5W=5>N}kv1>wt zBtaZ25g{OxER9c1Bss~_gmh%w5;JnriL~@I$QZ2p=At^5T~w4+hyf}jB}>scE6T}A z2XzBkOT^)Dtrh0rVZ*8~Oygo4l$18sHb7W`f6&xk-P_#?*gCk7O}KRF)JsM)=BzCLe@yJSV-VjI!IVeKB#ZH4WuC z-PMaFWywv+)l;1%O&$5w4Q;M(I<BkkVEfbY}9YYgSuV-d!Gi!TG zi&BXk_G(~7Xl;2y-&yH>!t|@Ard&^vEM?vTrXYAwi*AIyI zFFF^88Q za1fE9gK*Lgkr4+w2Nex6?G_fgZtsMl0fMDg+}wu4%|Y!4>IG>x(KD-x17tL*Mo<4g{mU2Exl6L;==?l_xXOhofMg!=qGj-UMg(4lX>asI~D&CS)t`{+@hV}!Tc9cLGNFMIRrmrYMyzVQ1m z$BymU|JUVTzT6FH@@I!kOm?5#rmnqjhl#=79edQ(wH1_9RM79yRoB( za`FINYpTj?C~GMhY&SO9ZD6?XTVvzx8d^qhc;vLzo}T&^?XNDMxpZo;*5^A8=%{Py!he9bWOVG{k)MA(_1CE@m(Sij^zG+2&Rn*! z{OZszf1f#X%fiX}wylG!jlH*%J=WSx&2E@kTRMWKsc3V{!SS{O4(x5tBeQr0|9BG< z>1T<{mgd*4UA=rBF;*<)f-n#xlHl=-4kt;0K_S5q8R+2f(P&=ZU*&L+al?a&5E~od z15~t8X2+>>01mMkuyUvjfBa+PfB{Fo9C8NSI00K2D!?);1Pb06F1N^#s3_9T!Q~ZB zM8PWpidzsC1nCmU6_Bm4FkB$`iV_b4G9ntlcBvRJjo8HaSV^*ooP18kUX?69ltX{U(mxukYrazwk{mcCakDUAQ@ZmjQ>^pVt^jCWTMhAXxyRo{Fs;=JGMqhvV zlaaQLyxwj@AklSHwiD{c#vl@G*HTf?+$OJq$eNOpvXZung8WA4icLxy=znd-qLZ8w zYCKBd8GuhAuc!}vwkiZF7#WJ2Hf+Ueu9CuLEd~88N{U+*HflnUsH<&O+M=MlOBJL) zkhK*yYHU*2pr@;ExciH}2lwngx^L%a#`}y97#}3`)aAD7YbzUnZL~vU-!^Rx9YZ-? z6CHj1&6*mD+S(es4RqAi4fgNY^_8BU-u``G?AA6u^4IT&zCX6_$FEMGJbL!m%ikaW z>&m&`%+0OcZePA-<=}qD+t&-^YUIQKA0Qa`K)MAYlosIk-~SG&iSRBFQuFJ9{8@ju&`%Ia_^_X9MgqJpb3Nrof)ds# z*Y(YH^$m^92&xVAfo3o^J~cNpF}v_&?eWU;%f)3Jw?BRMa&_hP(-$wH>8W%k7c4hA zmz*btb-$q?IhOf;mI#V|+MZj~Umcy(otK%$MSEqa zxw+KY&54|9tlM(aa=gdibZ9KZnaGeh-ohZtJ4R@>Qj2-qq7py z5&fA-Du|zX@C+Lf7*)wjOOBHz<<@p~bq%zQOpmYLeg0(mArvFZH!~BH@gyNfLMF__U)_34<9{zw6rp}FgZIrF)=VW*4N+N zH_$oM-PP9C)rcX(miqb*fZ1BG$XVB3Q`dl_^$O5xE3xX*P+5<>Q7sZBkU7=JBsBr) z1#DPdExe+R&ek@f1)8X_skOJKy{m7izpuZqw|8h{U;yJU?cJ#Gbo65@vAwOev#qDS zySu+{7$1LZc4qAE1O(R9%<}x~-O0JB#TfuF)|Qr^K6(56!NZx^#p!|J&aMWm64f_0 zcej)#g#|GdU(DY3A1@9G6=S!gra~g1PR%}jH9`z6Hwv?B8Y^GX5~AMszASoCAmltt zr8l&^c|BXWy7YQvxN%4vQ(DBYm0B0%#nc2R$Avj$#!Aw|LpjL_Vo?+;fG_4_`~Cmt z={=yD%o}ds_1?AackcP#DHa3;1VI#g8{61GEaNycuQN)qjg=lc(xg2kA%v0wp(P}Q zk`PL0q4(Z<=;y?;9@k;i+;XMrXoV)%<>-hS*9 zaR4trA~;AY`a7Hm5(vs9f`TwsbW*(3qOl~_^RAnVwTCfr%knDAzaX}&AZ9|qPU5%8 zvt%Ea@@b89rwB2RS)56gjehi)7@47QXaj!UGz=%SSA8I!_DS=X`j;NXOB9)r^k`Xj zzChYuSFjvD*fZ4Ll^;`4Q;?P_5VDd2c(thsD8}UG7MI|wfUgm*t%H5l+}2o)y_L!$ z0?c3q%#~bVCkpcw1prwqft?WhLt1b3CrhWhT-_6`UaTYJX`IBVNIaIk;iY>$gf zU~=`?_98{qZPN=Hc2|#WXAcr=4h{e~ciP94*jrnhTbAVAHK&-mIhj!$tu63#+|t|@ zou0q%-oAIooUpVqCBfKt?wFfqRoyMj;05@(TD4SII=ED2MamGjiWLPDR98D!N`Ben z7vW(6u`gebE_0}(NW|ilJKG6D z85CTgXuyvnfGufW?v4*#2@X<4qVQO0d}f>imKwfjz^S1~4od~xf~-XS)MU9LJ|x=D zx}v74%?5nU9{6CGPoxrrtE+WWb9Z-V6Rer0+WLy>;tEixb8?EZK}5+-&(F$4o{=s) znVOW8fs5>^37|Y>NRng{35Ge*S;qzSWX!=Q;Ezx|;4Oibn+7B;Dm*f2DmpsZu>bs1 z2zf4O>6qY!w9U-{A02pv+;oty6&ZPHX|i;A8d8=Z1wx+Z0iaM-g}tEaQUulD@s^g? zl-F0*gMQM`(9zb{QQu4wRdVvv(@ zA3g3En5>V^k`wv)&)q}3A62}|A57serew6V{L$%AS;NSi(aHYD8EFGk`9l?cgB^uW zD@Hp?!bWPF+bhcyT@CH6^<{Y_{dKKXt(}uy_371BL(L=OEp@|hD$3fYM;p363^dj~ z9VP~AI|he8!m%mJZy0<&>HlGFGCMjwM^fs~iw%8N{e|d%R>3H7H@CkNPUFW7JZYjn z%MMM=bI9(`a|)kbq(6Hx?iInCZ6I zO)LmlJQg)9GK|6Ua(805`$aK>!^pOc2=-WPoCF0Lu@tz6jO0WtG+}W^Ac~BLc_@e$ z^MO%|6p$WFXcSr6LC6fzvq+L$KyLm-M1&%Y6doBP6oF$M9xcF|kkW_j>|j9^e~Ln% zeT94-gP2+@3OtZV2or%x9K}b0D;`hcI4K+%a|-}O{B(2GDDfvNM>Yc zB$XK_N=!_y8=G9Yb}in>-tV_x&Yv-O;H-D{7rjfr>z}&_hvw{Q0}$R$oH(X;Qty-j zapvsl)B30MPMkE*xAxIe*QqM4R>H{YYU2AJ)~;32Kuk>)k+VaZ2p=h_s;yJQ zg?QxBwAEDh?Av~R%NA7~b=4g@M~-aOS&Le`?y8?op4+E$L;vW$BfB?g9@wh6S!e&g zkd+5WBl7*H8VB6`M04s9xyk2(J(3= zp_iPO3Jv`i*PlgjkWxcF5zZhoX5`%qc||T>6V8ofv4c2l7MB&q!o4FLYgFhT#zo_< z6%#4KLmOIRVnKp10ZKg{k2hFYO+*=u&*cRLQ$dZx)mny+i>2|o-M<>^|Gv%2`1pYn zK-gXW{nVlD`al16VV~~qO-fq(h+SI_Y9Bdp{>W~fU$ob&90W5@_uzqjyN>Ff+=pdd zRTT{-Y%i@@ucD%X@tt+wLBD9OUX6kdwCs;6N~^vDrC=>!=IGWaV@UUhwJ7ea{a$6w z>J2;AeFtae$8{L&S-WN9x=rghsBKVLr=-4a)%X7kGd@cH{`U_*tY5E9X#c!#hu+T3 z2ezF$c<85#r?s^XK_6*rVgFTY`|e{Zd$w*@Qdz5k-5;ej>o%%tDQRt1)j7C%=ZRzc z^$u;(*s%*0t$nADA3c5W*IzGPx_sgIr5l&eA3yZV$=?s2ynXF&uz=iLap?E;@}?p) z=1qft76e^E^+6=f)5jfz0WuZLv8Y>)^191I5GjqpBzA$X98YfoR8GG1OFy5SuNACl&VBRxC{{G!9T z1DBcZ7m(%?<-3{;q^{CABBL+MCz&AC|v;{R9dDgA*6LkK+tBsP61O}rO$YS^{qWnKQI}b+n>sN1{0}wqu`~--$Zb*>M-rk;$&PK9^ z)6`T|Sq%%IsJf-1tOn6|^oz?1VT|Mhy;Vbk*(!=lN^(leD{3k$>T0U-wnb&t;IQFJ za3g`BSYs`Qd^&48TD#i2d-^*%yE;1`_4hyOZpNSbTY!LTfp^m}(A!kk)6?6IzkBp# ztnbOl5Mmw^Xy%MhO-_tWznFgonB0fYUuTzIKc9I%0{&cUGw>Jn&|V~lEG-0!0iUaf zsd+4}qKEaC14Pn5&(}y|GBEyY%iPeXknr$$S?Gt)5g{*!d+T4nS`G*->*%b`tDFuY z-gPspWRK!Y(LKo!%EQ=9S$tYVT9TrnB*7&!GAt&`FMt;o&J<9kUi<_(m&;%Xqr77y zg5tQ5NnuIh3Pl>%D}suwSaGQ&vob$W6jID|qTAl&J-Ba3Sh*Ve-1Cm+`E#qoQm83n z#fSC+nINtr{GqTT;LV${MgQ*C^L_+7iAATEmrcC&3!0dxe&`$O?G5+miR$w?+*$AU z-$a3rWQ#44iX0yB6IG>Au|;k5{jKdo1tM{gf>aG<#bssay;N3|<4ZugZO9E))s&QG z5(RK*FiBdJs{nQjv!!W(50G0dNQ7l(Lo9>LhAke<`Y6)T#sO`h1jkUELNQF4i4mVd z%=wTTKe&hwZX1XO_;9&k^;Hz+l^}-(eN$9aj8!1~UWpK5aaj!N}g0KOA|^&4DVOd zGk%p5J5QU22(7X68_x&m4-^EI=vL!4e(Jzd{k(N#F~{%v(n4pB8doZs;^ zpeV^dWKh}>$oe+M$mGADt5L+Ij1+_lM*BXAM2YDvu2}drVv3jab=W`TS)G{nB5vDp9siVD8YZu-%9a$RF=QXui80<#GwBYGfj5dO~~>=vyM_8IdfGK&1nn;lu=J8j^&J6KXPcd}Qzpa3wxTk&%XV zQjplv0U<$(x zECHVpUQTUYdqZnu10JB7`v7mNEm9Qc5^1SPDXB@a1Pl}KqgW3f`hZS{q_(W`QC3cEbz4(UYHM(1OHW%%O-av4`B*>E^t7}0 zWzS6ei}{&>tfsW4(x%sCDfQ3CiyxQ0smUrzBpzkN(BraL^^uwFS+bBCH>M3OB=TKP zW_eoq6G>FgklTl`r}NaonWtDoiNV-OZOzyVSG&F@=kc1Z+!QDC2VN0ePxpEM4@>^{ zq(q+3)sN{B7n2adbMp$v(ijmhPUHFc0lO9nS^yM=1kIPYIBB8;iNPea7XT2C1%-!9 zd&LM*H(#0T;lh6jLt~s5hRgGjCc9 za9Ur_<%GVT!Pzrs&z?Jf0e=PMqi^iDL96J2-cI_Rj z)FD>RY|&Iw*|}vcI`A5r>Z{giD5I{Sf}Vxan(uy8QrV)crM&Ur<~6GL+jZMlZ_(MX zMonEyW2dsZ#-X2g=x;yyvxe3gjUD@sYi!oueemZ!2ezCx0PjsnU1`S_ZIwMIPH)+H zV86i?qkA_k58pa=2`oDh>`aL3H*Vj&bL-Y!GX&7^U}(n?=li#< zOs#DlAK2ZGbW(6al#$ks>N3w#DdE|y6qb7_E z7s6-c;~o|bZX1bTk4?h8D;|3s33BK$5iVzN31$F30Xm%^++AIrtPRf}*mCBw&FNqF z{`AZJ-M=5+etO5TlYgD~bNg|NQvlS{j=`p4g$e zbH|>a5ANEe1w7z}jfb>;{%QBYja!c$Q`w-g6-J)Ay5^?UDmvR#Kt|tlWar)khkrk| zLu=oL-3N8|pV?=0YTwzjhYhdYzxIdT1(SPsDa5Ut_b>nFI%eD8!eDdM%g@&j4HuxP zkqm@u1C`_LHY0a7*T z#sFgN?%|CT8jKm-f){xM@N%&3^AJMH&&QM4vSJ63ih$HtB*fYe6F&?ZJ`Zx$2hg^F z04iOA*E4-$5kCW_8d8G}`2m9k88kX14j0eEAaO`D2LNdD#+W1v;GaSa?3Dk<%SY_} z-=v&b(KAS+(eQ*<{LiaMY4gvT4&H<`dq|P=zg9jeZv@bgM$5qm1T34BS!~Fjt`+J4 zKArE#5Ar{~8)VQ{B#jTG6ctZoX~)~A7dJ>QIK>G?=1XLm?Ea1!Mkg|{5X!`8v zED_`%NdLIZ3BWfd3xjEqocGLNwm&C`N1$uT!!@lC@Zi~DOgg?_C(07rY9tX%@W~i& zA)o>S-p0jpL%kw`Tne1>Cj-9<{}Vz+lG{2wqw}163~vS*rT$^_H!!jV zl|sTnD3WIhB7A%-?qNsG)Bexf*3^3r(QbD4!wHXjA$E2?qC1uj_wM@<4kqCyx1{tN z)a%}Ef5)15dEK@Q^au{9P&h;=#9>TYB5yJ~uCXX0TNIX9K&e*rPqdZB1@iKIM;5~( zGUU%c(tyB!_ZVxg5=mmJya>m~n)-A=VnHFk`~@C5KEsv0iXWu8y=?ch!xBZ4-E|trYU%UeFf=$Y+>7a+ z_PXZw&gSM$$fgcl@UQFaf7FM+?H}qJeT4DT(I-zpkDHl&^XkRy%h{z@uNRg+63Z{9 zCY}xrf!Ni74^&@LSW%Rj6d%D#&ceuiabjmrnL-v8{N~Y{xa#su8Izdzd(;-e3L%(` zu=nXwfBsmtIBhQEQ+_U;Nvo**yab6(?H}!(nsu&tD&uF>S7le`G!`nF6cU*7hZP5rswREZ>Oal&0JlqVgy&S1TVTE0E<8 zU=!@>dM->>dJ=Nit5Ue(%k$U2%JLC!UAxrbMsfcnw0c3R5sGkFPDRDo&^kB z4h*0CoB{=;j{@_RrG@B-!`y-QgM?5%f@_&%VH|Isfge1X1^KW6@Kl%qX;oNSR8n1y zLPTK+3O;3ZC~uTimzI=48zbb{QrFNzKmjF_urLtdP(RPcFlJF+d1VRmNiY#x>dVXP zS{r*DdRiLmJKDh;=gj95u8&;In^nL`mMOrv8phVQqPBTV+*xTzFs%J1R59k0UJR#C0nY_;va6 zhysov_j3#p4?R$k#C*r%eI8~N1m{&t-UpYJ@MI0et)-v7rYI_EOBET7(!oMWc~QgD z_NI|1#KgeIm%YzBauj`Rv=zMqf^zfkTUnXq#ND>E#7`ezpFkF(@jOI`;zT?EqNVX^ z>G`>`6j^*mfg(eUbeSSGQIv^k9stdVL_dJRL7t~jD80QDTYGeqom~+?c<{gmypX2G z%9{H6=EkaOSadbjvJt#3!uA(J zm3ffcnHWA*;0`IpdnBjH;cFI=G<9Xmss{(+q z5FMe+B#@b7u^AH<6yWUi*XHc6nKIW>a}da;Px3Oqv?sQ9kx;zO$im;N6!uMd`&|y{~8H!lvr5cT!LW+FV9$ zdRuleQB{x`E8u0x>Z{9N_D#}8M*8x{Czd(Szm1J{`U)oB419PiNbhLp$WSkpuy{F4 zzj8|#&j*$+bhm&gA~c-iIoVd%pBEN!!!*p@i&Fn&M8Lz@&?^-lONCqrx^!fOC>A&X zabgk z$rxRn%OzrH*jO4Tk;Nq#CtX1s$N1{se_u_AH@2Z) zyky{P?{rj8|BSxN!}I#54D?Rx>z_VnV1L|zFgR{-?!viq=g*%%XK)(7pFMw8|Fqso z+bah5uIeA&d+6xi{eSG(ap=fllf65&H>+!HQrod!_oq!qF;lsIE7n8R)~!`n)&Ztq zpKv29h_j=ouh}2f;yn9qrG(#CSo+!Yp5%0>nLwfM|on4%G$LU%~aCbpt51Z zT4L>5rL{V$Yc?sb-=(!yO9@A49VKP8wQDx6*Vw#ox5nP%yZ7jBKD__J;k_pgXzOg& z)ZV7FW$Uh=4(?qc5oqda>^ijjKW0bt^iSH|J*KDk#~*+E`5%)Tw{Bbqi|xMoo$IFe z&2b#TBA|t(<$b#cPPTXLDHKPFnVA!|dOSUx2*(@zm{>S)SFT)GqAA zM!46+iP57%VhmqSL>*C*i9}f{j2nt-3>eaEb^t&GK`?d5k~H}YY&JT%J&){~e;}^s z2L|{saN;IVxF97_5R(Qd;b;0F?5WxUj!}N)QnTTl-+?Ar)IGy3H83h#_ z6T#zhxhNupu~7CNsyW{kqKkwPIwaROh!PZ*`y|Z3r{n~Y_{{7t#D(ikwTCIWAogY_yue@rVk|t_c>os-O?c1TQ zqO9`WzgH^(d7uOhr9!MgMb1LxtLU=D2469Twzv+u4o<1l#+&zFLVeb zN}%t*SN{ADqm8tFf}xA}LJ!I(!>~_U+5!^6~<)xbX4)BJp+U%Mwr$%iq2% zz5DPP>d2285E4QMC6NvM+7o&t2nEc%I^;zeK>=Z0Fh9ar!J*Uug7J(QBZ^8uS|2NH zXjX=@7(jgl1kQ|3&p&NJ?nEMw=EkOQzA=M7Pdu%z$yab0Zh`E8#@m%8$wkf$KuJ_r z71y;@*5yRTcyfL381w!Uz)0p5g?J>}xChne#SYs0-1E43)y~%MzU^HPrrgX~e8u0x z{T@~3=3sV}u(7qWe`sTM|El?IbApRuuSkxe#r>Psz7J`h&JGT2s(-k(PkiUxv-*M@ zcWLjSB@rfrR{e9gqUpm|H)#~Wzz@SlGMRh|h21x5_Ndu@1VWrAa zWTsk5@=A&T(<(+qr?8?D(g*9MrD*a1!d8ysc40|PbyX9>jZH*reFIW6bsepcH!aA^ zVYCO^wfJrDQQrX8OS`ZH)PSaZb8}s7D^hd~6-|Iab#_k;4m^E4*fTi(Z`YpJiPE6Xh_%t1^-n3eqEaZj&2yMCgy){l)I zS40B42o&gqsn}#DG2ZPn9TStveIj~P-XWF5WC|u3DLGTEPY2`*dBx<5r)8yCFQ^gE zBAzET4Cd!C+&cX$3lwdLx|i4Fr-rkHxMD1@_jIOmgC9hC$I+!^B~!sqC^QvUL^k+5 zr{&ACb9nB~ba8f7Yr25uz-AFbQ0ko%eTDhyr8VAdDJgbS{qJAZz4q{$dKM5sycjF5 zju95bdqmLQ5^op68UA5u;n6}iWVxt154mT4U(BbjJPGp!v$!~?r_2w^htAR z<2Qh-$h=xn9%K*BtQBR&C1nV=)z&st*Wr0}NiJw<1q4hVq>7Lu$_2YR1Aa~huC&Wh zq)5rYMSYxWv*hF<7e-K4J}$?X}=r> zVLcZ~H%E%Cql=53ixVEO?Oig=obj{YIxODO+|11KzCFd9Vok9yx4s41yu{Sm0~~D2^oK9b5j5 zUaH9AX1|ceMFbIXQBgpk#l$efBSrZQ1(g#EPw8=dUQ$VZl_EA)k{(xH9hy_SQpmB7V5i~bG`f;8Xz+#4T6SB<)Y_X4&hn^k1!)EKNC77hqU`L5@iVpOTpto1q4Y&@Q~sq;0`Bb#9?VA zE*?2ORCiDcj*XGwWeI6MpfZ9#10t7{fw9tbA}a;;n)DP!W-{5{fz-~<#ecx0mlWpV zK37bttP~kQ)^b@=dU~=XB>}i*_>wh+1r=pQImKA+DOVKXUS3(>g59r{hPKv6eYl`j zUssV^T%H5a0%+KhByprz5EY1@v3yQNR%#kALXZFUEO*{$c?;n0% zURc&WHTJwFt@qjEM|E*2yu6C$jNZKQf|nhQt&JZ>#+QP6=CbD5-vUP}#z!g=l+B46GlRKRDCkCjtlP0bFfC z)Q!Zfkwd1!c)keDbDT(H1pFAj5brDiwhguq)DPYdXI3D09UELV^21hD@3WTrDn3qG1utWU{b!$;Bx*G&%~&I$YRCeFpUO^>2QenI6udZ6UXkJ{Pi*@Y!}ag*mmyxIha7_e>r#h ztko@3TZ>yJ=MSI${nWuzzZ|~0|L_gHGyC`HZc$&qZi6bAS39<9X)9|%yl87`Z2_qo z&;W$mR8+PqZ{D_h&%y1QJ2t3m@7%WO$ObH}fJVGw8=QlUTeh!L-n2$_{f2ee#8h7Q zBe5Fmm0GGw8`prarM_8HQ$tZngG~ z4Qo|*YO84KV5LRlz&^cS58SXg`=7tAU%Pho5++-3-n@48?_1Yz-?@F??6#TJeQR5a zt);c4owdEaot2HlZA%-c2XIFSuCG zC9OyDkQN*m9L#1hnH*LS#!p$WfI@lkklBK$u;^IWm!XJN;&P8PIW+~ku}|;V&jx1?{$+6C+jmA0b52_XSY$)l~vV<^_!K+VV*rZ_wH8HTC;AOuBz%f+~aiC>ulFpqq1SE zy1}_UI@=DP)ZM;WOZj1eaGR$dv@)$JoM|Cb64)&{Kfw2|YYbRWWH*xvy(8ZXe$?|=bA^+rI=4f=&-OyjK{x_Y>{q11-nCKQj$1N<0u zb9RO7aesi^8U)ZoclakhR2WI5078%ro{-N<$ZZA5hHTqP2+j>3%^Nxczxm)T$mE(I zR(nX{1qnn0-inH#9XJPs59|p#Et>=bkZm0RpHZeEvu89w0z!Qm5IJEGIgtc+Ww(?? z(g0Qf)VM9q3R_LMB0g5uddO6p7>bKDT*%>{QruP$#8Dsw&D{T>q@iZ$E2hrMr$ahG zp`=XlhKaQDED3t%pNSsq0^wHwVO}%H{M(AMV*Zna!yh8>F3c5elkrcmt+Jv5yrk~t zmd4h$*50n}fswxPr$9}QBHZ?J?&IXlv*}mw=ih%>eE;U%{Kw_RMaEa0!j~Bs!iJ=y zex9FOUj70C^*7?<0`=?S(l@__rT6}y=0ANxAdyZD^k?(Y*&I>JTOu5_5j6s~HzDi^-n@{J0R- z?Bns-M>WX_Tt2lUBeK~$AVkP~xY+yJoA{bsPj{BH;=;=!nGO}%!gLyg z<6|lIro>rsOwFjazPH?L9(ve4bhz*4fB8P~AluVR$a1&xyYEn17*7wgba?1Yu{OF9 z8pI5b<)!jP@g4l0XHU9&>#}*iRb#U>4qK3vEs4l)8W?@Pgnxxpu|QJY)zmxG1tl=> zc&hi&(Bz}m$HVvuJ30Ac;{CH%AK#7+=8lZNogANf`El;e`15C@Gp{B_D#ID0UundA z;PRZ`C%Bq$ap<888Z#&?l*2?Y(ErmSF*`Fuym|Q=VV;jKpFDo@cmOe>0VK~rxN1Y4 z2C%Ez`W9SrZ>q1VC4tfiEtO!D1IsQYwb)hxD;U=-E6Bb^Q9(&5LTzPb=%iPd6js&) zVB6SSQ`1bKL{i^U-B{ZSIRltlcV|yed+WeJOLtr6KyUx>2w-a+?d=V7o=uNFe)MPn zM1zt>aF*aiCl8XAg1X%{3;3pJU z)aPX8c3J0CmGI-z8wNW{Io$G+tlr+Lrt$W8s-j`RpR0KOJin%DnvvZ-R#Z)!9DBAb zNNAU{>pF&lC2Yp>iPKunGhEcC>W$nOHTuN7$@NjoL%ATWoA|XCLDOrxAX0kk84qFKyrMxsB7wW63o9dc6Dgg7UYiq#}DP%heU7ejP zNa=0|8xl-FvF&bd?C$Drhw`!RXt#ws+-HM3s3RbK9d-Z`*gD(0VXVjA-kPnjb#$~a zv-7qs{M*vX#>|xBU~P+V8*#_f%G}z@$;I8(+0n_-&dTz>xw)kcCMawy&8+YJeJej% zh~r~ukc)>q`a4#XmYVX0!YpxkRD{>mX!b-<2sM)aEr2%0p}p&A$V$&k;XDdree^4e zDb9SKoy#BXO^#r^m^e|Mm0M?a+m!0z z<`WSwh)WVB%FxA-BHWQCii+o>$CrYC*?bsg8Hoa#R3Zn`OqQRK0eGY&Q;{kQcd;$( zrVtHI9SxK=m|9NGHg@g~HjYl1-FCFM>#^_XqyR`xsjIE8tEy|SEiNi9%7g2YpPP}H zmVq)CB(N+M>LflPIW0w!4EqR5CLU*s1R)4aII>E}{yQ*UIKu+02Jle|SOqYElHy{~ z^GOAhEm@XMB&VmQWRm(8Q>2j5U|7I6DlAOT#hodyprj-hsy7qgPia{SX+};~sys0< ztq`@LtOBHFs|s_#FbBP{p|+u+sga55sHrI{fzFnv%7iHiF)=X+ zxN)LGB1A$CH8NKb!xcxPITT7Gz`U%8_w%LKXA6YcjUGTDjyln~)F^*1iWfCEjNcd$ z)IB~(DU{{q`)76*bUvx^eEFcPp{UnA=-b4X`Gvr_;gR9_C!=MVin4~M%_-?QC1ri% zO@kvJUcGGXeKYWU?9&IlKBsa>&%{Cl-!-FQ!P7hT4O*o!nfIw8IY;O;-jiGH>LUndG(Q`5 zqS{$>wzkG5=jLZBN^*tyMH!MBdkdU9dEqhWntCYqC{gthMv%G(88=*$7n4M_gcyX~VCz8WlHvyP26q>5)})X*$C2X)co>)U zaXLl{9RMvBWD<`D)&UH`#Hd(+4L~TzZj%U8x#)&nl^GfuCKw~)MmHo9V}-c0VdN?4 zN_?CVUX&TeOXIF#k%gQmH8R9b&;8rCjE(*>_x$z3uLcI^jnBIrKXdMkzTP<;1J9h+ z2X+}5w~N31{`+qif4le#f^Q%foIi8g;QVPlgA+%7cDB5I>#r+UujuKWF!))2?}3wt zPMrIB&z3D}TB^EQYTF5PceK^_sIAvkR@$!tlV&rLOR5|8Z#|&9SL@KGjjB7hZrTsx zn$AWHso>a(IGmcsTJ`lB>y(>HXy$3vM4DXP!sUKHqs&3e% ztG!cKXUoasf1Evi?9{Pc8Rz29V=5y8&e9d z-I$r*Gc&cnciR-x6mY$rZQLyF>?x+Vuh?4H+`Dtn%Eivk%E6ujz>A}~(O)5Pm-!~K zF-GDmMwhQ%yMn1dL-5!BzIhd_IunV+2!IJAc(NkCFoA^WA=3uI%VV>Hkx2^<4nYHl z04y5vloiZ`ae`Gznm-*Phm4e=p~J*6md>DJ7X*M_g98B?V88?lVPkA08pR-$Q-}5H=P^v0w>o=X(`{k0+tz+jdpT2ZXf9H|o=e2g|?cROdKu_ne z&aoZackSJA^!}B&rgKLVU5kJ_h~4p!JvV=vtDa6um#GP>``8|dhJ%N z_3PABQ1ns7S9;A_Rba?}T&1F_^n?1YP209=;tRiNt&--Jt=gNgdivuU71h;B>(#V0 zR93B7r?!6MCe;mFHma`I+_6UkxyjAy+YSEQdF;0v=YQ4Qz4xTi!9y4Ks;cVPAK!cS z=su(0u9#6AT$~(TY|I`wTbg;FJ$~2P?g4ZS;%Gnvctcfq;etPm6kxsls4yJ})NfV- zYGeloC}^yWx{?_<7f2e|IZh9pQQC1O(bBHy^mvf5Hsssf>7IIstD*Gc3k(7I5*j)X zFr=k}Kpg4nz|(OfD?KY=H#B$%MCkxpgMjb_iU9Ws;@^I#BGPG8B-{M5$xIn(;V?14 zL&DFXZ2n(7BcF4@mHwA+I+P7bdG;qGVx%VdAFl?ogdDU%f(=YGFOr8Af*wwV@Bha8 z;y?Tf!^GmxkLXXGBx~Q8VS$O}I?o+|t#AF@sjDMfUX%3_copGCeZ({MoCSiD%Cyr(eB& z^$EIS;oY-ui{Czf_WSmE2@!O^<0cD+||$ z(7=oe4oLCs{=xHl2l=F(yq>%yNo>wIW2k`ZfhR+ggM-5(lM^H36JtZ8Q==1a7N%!r7GKX%i4UI_KpvZT`5qPh`IobE zvzXf)A1)4mKl6h2arO)Gae2w_6YUFw!3hGr9RI5@ml^(xON;LpXJ5RVfBxb%=moEz zO^x&b0f6LB|6qSdS9eDbwjCSma41GPz6JyW9E;1!V8K*YmI9px;y_7FMR7R-Q598) zrj=C`WC0qD*OlUcic}g*n}$X}v+8Pz3P>852u*{X%{{%1sQ+|zcD1zN_FMb5dgN;*w)ruS<~3s-O=3EJG>&WhDQe;_lyj`n3$M-{$}d^;@kPfPaogR zFB3~&XWqY>e$)dyr?&&pXfzBeOY<^P)8q+Uzs8^xN%Z5l#Ti6NV_jPywjvuBGC#xz zvEq0!Qm!yOG%jl-Wnke^3?uy&E0jC(VYD%jy%0*J@)pXoBXZ^zEBqvkk&k^(Sq+aL zQ|pV1x*u8<)h5NKiIbxRv{*r+zlSM7dnjXv@$K`Z6nVx-c_(vdu)NyF)pc4L+v89g zAJePIOlzsQYuVM+G*#S}l@gm2Q*QmYD=RHa6vJF9FQ^p;rwnw?_{9tTmfy6c`q%Mg9$}%iVJ(2qrMGA)UeZ#kZD=!n|U@zj7Vc?RHD{y)yPTycEGjLf z*ZhHsR7G;JRR)@f1St${hn2OXrJepJqG*m{G0&1xs4|f)Hxd5}q zd%;^mFwucRX>YCU>+J7F@~FGZ`hgP#8pgJ}qqnEKugi|@i>|zFdz&qub+(|O)YdTo z*M?$m@95xZ@9JV}*Wt*@1X#ww!r9Ke`2OAdq+erUj;fr6nYAt48Cy#`2P-Ql3u_B= z3o9Uqz>79BGdD+??H&fnP0h?qZ|B7Vhsz**-9iX2N6Ur+Q5=gA=Fg7ivHb{VHuKZK zvx)Z7MtSQ(w10nTWPbX1@w2R)<`J82WPvJW{R(+Ou!JkFrZN>GmT;iGxU9Xdw18-e zN$IB6^;Y(G=6(oyKK8h?dUCj}N?Mv2E^qHhD{ET%@+OcT;!8zAF$4p(oXl{!^?fIb z0*F^rivL6ZurOgV79t-qp#`#@5c>;eit(E1jL4t?l*IEzJnL*4H;QR8|xM zO#xUyDhfLII^hKXo@KyvK|m#8hEf!}qGH6Txl3^2oNNLmVjm|qHjx}WK^G)4HXfUQ zi5QPeN`{#ul^_Y3DNjK_P9{s2B_+yB6zO^SsSw~fiX4#C&=kwhFG|Znd@={FO=cQ0 zlWFqIl#EO{wsxRt($aI0bwvIZf!MO#lA`*m%9h%e>du~)*6!}Erq({2?t%J_`kK7# z0!1NccPY?U2??=SA!Ks{yxluk;S4uw5_P%kh^y#p1& zl9Cu_N)Dg(&tk^o*#WG6 zjdZn?4nBU}RV=7zDt%ek(G&7vDDcJ9m$`+Ixlb<^z!TV?m8oAdB{8Dnsg>k3q@$=zz73#4Xuf2VSFTC#E*!HjzUNhcZYa2F?>UuGZT?8BNL3`M6m>I zA&8kcF|HS*p@Yc|7Ow51UxqCeaDZ`K7K8#gja^gdA*}7hNZ`68CPbx3vGZe;EKR&} z{puA-qQsCi1|gA+?e8Z_FsKu61fLLm12JG5$ybaFuNa$LHNIs8th8aQk%`l~CUu>in>MKvYHL+Dspx2L z*uH)JR%HyfXm8l4p{=oD3&_vAQN++btM})HUk>VSShq=c%TGJE?K3*|_qmg&kDNbt zLI1!J!#|8~-?4CVu(x%$r&wCsS=_TUGdI0&V{YjLPsYZ@#zz07v%8b6t)+#vot-Os zjrO?y?t$sCdzX<$ybJ^)9*N@(qCZ0|-}E5R@yb)1lv&T+d)H67L;MCy* zr!HJSb(wPI*e*T&ox64&KeBi0jvZ&W>gZ@3)JDZ->rS0@>KZ!^Y&)o-xmjbi*1GkY z-~D^tMkVzPt5o5zC@U#_kNVAbt2I?rRlZlP6x6{ zRcW2ZM&f&|jbK@9Q(gsH+uHBH`w?NbwQJVyQ`?}UskZsRetoSis_XV2+P-)5-edbO z9?-k{;E$j8oiO;z`ImDyE*&s9^V9Dqelxv#=bn!hdNTUfmw&ta(+Mk2H#9EY;Iu%; zc%h0w_4WnnE)e7aKLR740c>9^g?a%i00hAS9OCg-Ag6h_BAejyz`@D!f%Ah0&TdZb zNHXAJp4&rLH&@`H-CfCnPg^$chUdc1OjHHp5Z`v)WY}?LBjCx z6tU93S#e@W!-fp2{h!@Y41D@T!K{HDLrNKB+VJ!bXASk6mGzxqybIE2WEm&`H^#&p z1plMEkVMP+N8i*mG*maDRngm4*WB3I*73Nfy&L-G@!0SvHdm&fPP{>LrxjazRu^UM)7E$re5PRQ*?qr5P=7G zJhF4bN%uX1gUe45+`z93?>^U_G6N%%In)e! zc?>syxG1HdL|VSI&^eUX(6q<<-OO z-A^VTkB*IuJ(+y@>hF>?t zym{%*SpGEsei0G01?HCk zq0)m@&Ta^hcI1BQT5HJZ&(d~mteviV|?YMWi`0gUW21^NnsIrnZB?X zyC;8lv_4_KNPM9`iWbkZ|sr&$SENd>u; zy)A)^p_*Q*-_x$~iMI9{DBNe0#M0vU>v-z7&cM2kuQ6yZkOba**k#3)Rn;}5QwE+L znHQ|Vwmh&9MKDsb;klF)Zjp!m}0GpjoA*Kmw+v;&7Zwa@4ZrnEM1$4S)cM z7x*&@1yVwJS(zC7OvNOQA_uXv;(`LwzyY%tbm_w4QuNgG@ZqyC?U-L$h6+wiEqWWk zSA(#J)udA76-z71kVva6E-oREV8Rcgl+@e|Sy~FNui+G)oe!8+Sz$>v#wSZFn(EN; zYHjGV>&IYHSGOIdzptai&ITuPN_Sfur3+4PXKyD61(fc-M)3Inv*>E;?6>V{X+px) zhC=CiU}N3a>)=3fb#>*nJGwbqTi-XcHZ`-dwy-e2Pne>ZV`YPQh8@N3{yhr^JJZt4 zJZtQTx*@S)L9w!;P|U3mR;Pg225`0IeKbOH6BGS?++7^+6lPbU#+8oad~|j~Line* zPiHHdhVw+Z{G!;vrndaj)|RZ?(w6=Yol74&-UFtQKG@t{A&oCgi*216n`C{Se?rVn zNm_`?iTVmL5fb+0GxK@C)H1F0(MOy!$SULz0sr8mQc^N74dp54#ECv;8 z0%&jgd-M46*u<1fvYd^9c&HAMScWJD_GmH?MNbS%$;mH(0|J<}4CYNyF`PGma_mXcw=*|D$5 z;)Spvf+=X2?CL0P9~}SM6*S+{j6Cqnv#RFG{+zPL#;%Ia`mSYS_U-$z(!BboUGj+b z4=*}X-bw_Ds=>jO?xOjS;5S2VE*1siau;rOxszXzcW_8lVuFijsW8FZEHz1yP11a& z(wr>Q>YB_V!mK`tXm6Vc;Gn?(3k7Wnu@Dh7^t?bFkN|2(BAhX;C5jb7ji5V2+AbJ_ z!g?oZ%)p%?b3knJ*vVnz0w53V8w}XPszJOAgP`OTD1IzL#UPKwkL8DgQxMG;3o(rX z(11Y17YJ}^Jth{pGn8}$q6ndoClCV|jhJEr>OTlq0vVkMCM8-pB#j_G9%p9)>km}& z(jzw*EUpkHF5;nW0k!8s@! zeLdoozW$jr=Pq0z%Qq*EpT2lO&)L$}0Gj6aGX{Ek0I{7ujVVO~1N`aq8N}C4BGgK` zb?2Pk(Vq?;`19z|+xLyG>K*xM$6n3Nn)|lu?%S-pOGk6(wgWo4dk=2ks=HNt=jGda zC-)pbwMAD=O>6x&EuF2JDmt1Py4$vHQQM=th1j91slVPgkYtgVB!DRwYyZ6A6)a09H;@#bH=2%{@;v5=33 z#1-+?#H&V^O-!yC-83=0`nQ?&?W_0(kH;7*kP!k2c<=&Y6dzg_tF2*Jy`12iX>wpi_kOwpY>==;NLLqTj2-R?c&^HKV1q3m%o&>8V z93>qHY(Z39QcOH4pA(biX(lPDiPx^nO|D)wHjyO7MsnFqUI?3pNfid+?+W_?riR5W z3)?$)EpPrpT(bQAo|C@Q{Y#z~F5T2Sd7T0Yef9D$7Y+99IbnDa^t~hdj_lPxsJnU3 zS+$>b@7%U~yDCOmmAC)2e~b2>o$8waa)uG3^4)*`?{(^%cK|u?MFt+GK&NeSHW)vMNE+-B{DUFOPb)X>h_y>pGy+O3;+ z>S!KTU#EElGqgK)?AoAu{P@m28b`P5?fm)t`J-ok)w}e^Uw3XF*=uNW{nT+YQ#)&u ztJm&YS~@!#`1;y=UNfLt9W^ity6fN!uf@}YoTPb3z@qW;rP1*WlQ&d?0S=nC7hDxL z_%%qALFIs~hU_-@(9W*TxYPxiWrVAZWse~!(W3{08&yVc=KmR8&vCw2j{GRVQ=W{S`;{l1}?+?ucp|j)QkbyKH z-B|cByqq9!P!9Z|abOSeKwJxWD=3HyDNGWi*+2{+jRw&f#L9*S5x@rFk;-Prxq-3~ z;wQp(e&IiUtK&fKgs?IQE-MA)n+Wt@IHXInBXLNuz`x_8AX_uAS9TBqpgxnawpLQ{ zu<#ucalnHAL+;=F+m3u<1@T$r0uPyei-BSh0VU1fd37?OCJg+~9cu{RC5di3#hV?f zTLvK2_@t3O5u$2;#0!xxLB0z91I2^?voHWk=IQ=@N2lSJ{=X^?$%1OG2gMZk_pM-Y z4eD{1f4_hD{=>&lpNu~ld;ILhWNrJPwsg-XaK1E^H|2>7SbxgrepRE^}sS zP36E)bx{Pn{4Qq7QCiV=ba%k==(~TnzvbTJr;D$~CmuZ=pPC#WfAVVb;e)5sk6uo` zc)9Tc1)9e%pY-2h(QC2ED$!y``(Y9jUd3y7nG@4-nTK;J5)!jh4XZ zy?bL1Mn@h!d^EPWH2rF3Wnpz?b7^%M@No_Z6~V;p#Q3A3$7B87Xi+2f)>c{MmM0a^@JHThqlD$;rsZO(v?*MR|<06bD=1+wzivaH%aVOcE5! zoK#np>kHKK>h;`;!l*)7s3?G+5WpoeJBj#EWjALkGVSq$m;F-SMvAlv@YsgVyHB=O zn$*b9KX{%1rj{flDW$DZp&l9<&**M?J~F!y!kz4W_+qZB_1>e})tMD>ykPS2;#5n1 zE>4c6HRa{NrPYE>rLC{2g#ZFt8Y-f?p{Ah*N(4#<5+lC=3-hSrpvzs10nVKAA{?GG z5mw7ZvPVs#udtT`o-pd>`2~5{HbEJ@Tw7k0k98fGNBJe1g8WiAKV@ZQxPOO!DlaN5 zg{uPzq^+#2s)F>X(1A2vSqD@_J!syoz^k>?HzTvyj1L3&iTXw?N)kxU<4l%=&sO@FCi}dWJxurct}v z`lvKGf*oBHL${&7w~wyx>>26;o%A;a~m$t9Tx(3pg1J^ z(i}CO6zB5Ww{xh@+B+0SD$UWE3iU&GBh7cZyBqW79alPy%A}*k>|}qvAX||ui|}u0 zx1&*>7sB3*M9gi|l(?@zDwbd8QI z%)T0!c(f>##`X{kE6@1bA-pE9NQs!Y9u^ZcHz?`l%1HC zSyY&Z$Fig(DZr_zx0BlI-q+WJ{*i&`@29%Czzd_h1F+-fgz#YBWdKMJycw(hTl?Bl$Q>E7Gh6IMW!?x0!X1$XDGfzmRuxP;-Q0wQ0nR4Q?+vxC9blo#R&T9{W-sKKrd&=gSL z<#>w0EeH+@@|6*HM>w34%=|1cK|E)-fU$#bm7EkFftyHS zs3`0)>t!g*M^NGFpYEHS+D5N!$kZ{4YwHIRQ=>ZXHdn{zjj&mFN7(Zn+J@Zv$~N5L z409(Z(xP-3&z?QKHy(BZmzw*F}Ec%U6v@Vh{;IF8zy?|2A8Ae zf|c{n-n^_8t?~k6Bbr61G8VtQ-%=XOre`a?sBYc?ynvw8gdjmqdSQ?(8TGw7s$*3; zjINZ#tlXG}$~ua#i>4eTeYhi-u_3o>Qj^HeOKJu=F@l++90(vOLR?TMXpy6$lN2q% zp*ER7(Iq7=IW8^&mw%BcSD*=loC7ovSZoNX#Y;c~kRUJwO@-iCT1uP*AYcI3z?%l^ z4*&ur0U?V}1V=6?F(DrLCJcAtnSf_$vJ81PjDC`pnauPoUQWD!uc7z^e_?FnNi}%XdH#(63`(Bff(R&sT627=p04HGTIlAZj zZ+8E<>%f6ezWU~;AAi{Q{qC=K@B41|x0o13aP4zq|K1-y+x_nQUw(Gj_`7$%c;~%$ zc76K(`yc*ezv)Gbo41XPFI!)^b^FFStDBddm^ZCV&NwkJC{A;9VY*P9ooIB5C&SsE z>O%FRIypHyJJVd8otzksHaBlm?IDRMesmyLoZP99M4q1RU@Qg%Ia~c4o0eiBy)2a_ zSV12ik;~05UnJRWS8m=wb?KI^wK@JYrR;8ka=ILmr1mMMlGA2}i_? zBLYvFhh!Q@EQC`R5)OQ^07oq3kzn=^2+3fgg(YB<*%}Vz9>1mIi|lmLl$^W20gr!$C%Z>WY^@n1>1@#NxRK021KF9EKn zkHeiyreB>mJMhDvtG`%V9N7Q$XGW&SemROd)1_a}pWM3_yoWtTzwEz$+U(ewU-s`i z|NVL6V;_Ha;D>{6fAYnrrXQhuvk$YN#QPt=_x4+F{r;WbzxCEze|i@%iT6JE%b))1 zKmPNt7~uKx?YIB$e`0s%@Bj79yPtmY$@}m8{nI_~{PpcWzWern|LuSN`>j9x`A_el zj`NpK-rn=^yPy8!$8X+wfA1IH?%QMZ-KV=u%ntqV#aFw&-D7g<;CFk!+h=_E$n_iN zFFD?%TiIUqaB%fHahz%A;O1jb++n!dvi*ruznU_gyo0b8fclJYpfB7VU*HB17YoFB zAAio!-sj+q&n8dqzTUoGe*PYw@OellCcrzun;a-`grpGt(Upd|w z2hI-pqWm4_W+%_KBSS<%{|6sJ)Q(F-j_m~fGwKF~A_^K}{nw6r^xJzP{~HBW)CP5x zhR+VEf}-&1qyzLjyc+q2NUJCOpX9Yre4iH>Om=^Oe@s^OIczBmIU^;I!_JK6^Ovc;eaPr!QViuPjVV!n#zf-3Xl95NiLY1Jm)%3u1KLcn#Ya7Js&?ThAoOp!ruy@ zU8X?hq{?LxkzwQ=S8Q}*bV5Y5XztZW*Mo_t`pza@TTNGOd|F(xN)orC4;L(tX{(+s zO_t|YjB$k#al+`jqU>qn;by%kNM;2IXY0V;&d9T=xyk4A({r0^%j6CdXncea*ml8->BnOrv)y|( zHZssz-;FWR`pRM~i0Eollj9?ZTA6-%BC2S$PbfZydmd7y z=pP+b79=RN{px#?e5Ekti*c8;d=#5gX&ZLp; zJv+JN#oeaOaKSpU7`iy~sUEx2*}euf}<;^{Ro#9sT9% z!t8o&!ze#NKbECd%X3SM;IK86gZKcUqXYLFpYysVtiuD1+k}Uxv8tjR^YZ0og%|{_ z(A1WopM#kcGO>pHbTtaQMHq1`K<}cE+?y{zO0A$2n>i);PFW>}MT=2DA-g;fJ5W6+ z?G$532a&hmhIYVcD=bEd1MZKusv6O>Mr7KmYC77Rfqa9>Q`gqhT!$SLJPXk1BK2=G zkYh5r3OS|X91YY~0l->ius6uj(JK7b@G&Eh*9byMU4vfV+Xs@Fo-#0q8Z8iO5HK!7 zdTP5KRE*9xJrWI3_ZnQ@btzNC!~^}SGdO88@OH0hk&xS=DCJBiRhvV-r@bPahVY>9{($h3Lol>gOI?@^L&Ww0TWSykj6#G)ahlal=?#@l&W;`^3VFDD5z&Isu=vbkHJVYX ztjy}FJgswKbFM;Hj9YSfJaS?RWWHd<aPfFO}l&<{#kgNgtrVUhQh@ z=%oU+hLoyCr`2e{oXE>B&#Nc}U=OGXg)&=)6Es{VdA0)C5m43u9e|gkgxw>Tr%G|O z#s`5^5t41V*iVQ7gAkUUpiJc~hZ=~te7(E3K11INPtQ#-jD$5&Y}KZDg&E{ z3>wt~f9*4yS`dD#(w1Xsv^YlwM!GU1DMpI+dm5Q;Ap(2qdn4JwQS<&)_fz7VTC{#q z51M=lmY1Pbo73!?ovN$T@FM*Mi6vo${*l3Mo*fM`@HDEGVeyE%`^yK0`q!r$M(P_x z1GCvgrCM=+V6D=JZ>egDTO_VY{*(uVXPe1~_$HM^e37rT2f=q?ZiW2K- z0H!4;#bWp|B|ambNF@6-SpLM{1JTi85uq{Q@Idsy{2|BaA#Eh6yCT&FlP3iUB6vek zHL>`mB#0b9tx-r%fGEMQ!=yoHoSbw7>jxY- zY(bbncz&qhUg8*psCjsBB!FBv3Wr6Bfg?t=P6B=$*`SR_tV*69p9t4bo|c`Vuu!Qi z%`M>hC@d~r%92~8ptS?tBbQ@9QX#)iu}{lTqBWnUu!ILBw@_WNP*`OECw2v!JXb8O zEpA+K47~K~&u31X8J|3RnmB#x`uTlVOwXP(K52S}a_yuEmUxU$pD{Xe_{6D0#%5;6 zPnsG-9)VQ=JoSlFsP7y?iBf2fzI4JJZX=IiqiO zeQR`#a{I!uJJ;_VJY;sl%E;!4i!1mcXm&Q&uUjcCGQcWNNt0Qmg0z<$7oGq$j2N3Z zR3eTA`z$Ox3_I;2E*>rcM+kHg6pMf-2<8Rzxggi(@E^4>WD!1Ji+Xyn$Sc`-y(cw$Uq9Daxt zUTAo>%J^PkR~*tOg2_;)Av z?A>=|53zT*nf>((H_lt!a=YYcbjIZHzH{f0aocllH!^I0`tu+E{MUCsJG$$gzx?69 z|M1}#fBWNCU;g?1zkl?{-@p6be|-A){qJEf>CY%;y}Rp!AOH3tU~2Dt{Mp{Wyz|jp zfBEZM@Bj4KdmsPdf8P2N%%4Ah@&$Y#IDzkfarW2qcE=7}|Nh2-6DQB_J-Ewp_dfHh zX6LS3+_v$wrJlZd%iWGRdCJ$@^s>3>O}Z`B=JFK_n=7{%re_>IuR78xu6~~IUD!T= zp21_maXw&YBNT#z8weAE&Ef`PZBuJ(KaJiU3Kb9;KYx-q@nNZ$vJ z5fId9=b)J5@9hE2gL)3w1*ADd64vlT_(i13K|Kd%5Zomo*Px@kef>x>wLghk!+*K{ zu$uw|$T#ABqhc=*;gp7(cjz1rEEqgTig!Q(eAYinYeB5=osipq{ic0L(M0}(C7e(= zcENb9JRF2`@|PmlW3Th-TIw$=BS`TsuE4+<_4M3mKUE9rTDc zD2yfD>D+*35WK@3*a@utD>M`l)0`X&?%o4v$dSlL)yAl4T_ot|A?6NnMW;me+%~Hi_*;SgB$W z5BauLQ79hPH{3-bpID2mcuc@c6`?i*wG$roYFZqFjDrLO0**k!t{(`Fz*KLXBrG0o ze@YU#mMPfEl87ZRb)?{UB&I}@#mmH)sQ84~NB|3}L-EJ##bkere3tvDeYA(*_vgss z6Z1<)N}{#Jx_WHk;S5>Oq*3H&i$h~G!o;a@Vat4Bnu<`y#9&xZo|%@@pv^65YwiSR z?kUh=cZVO1-J9Kd}+e zFumqrgBeCfM~7a#csPzwVE4V=htrQISLa{MEG$00U!jP2^7tA1)obGA=G+Dks5*|2 zKm$x9iV|#X5rVB?0o-Nb_R8$*xg~6dZY(WNOixX}9Dn#=U>HWu;2`(|ogGE~zyHP3!8{5!}>(RUS2BCEZyV^T?y4&=f zt$no^4Xo{M?CR9_b{lY*863KMZ}{oR6MW7l#+Tm^Z*Y^u*%okLv)_nB>~+q{?5mk) zql2Rc!`*&t_;l#ok;yBsXx8Q{bBQbzq~q@u_Rhy=#KwzLw^rvCA3Wg3l{QOCasQZ| zG_Flb%aS$JSLeyfl5^`zDmBs3;^_8xaRaWRN`*3=x?n4ZpC8Lxxi_Exq~+=BhDhJ5 z6=9(fNuI3u#`0wM=&otvL5MiM-z#FgH&v1rks*)I_h~JcC2y^Sq}39s#ZlgJc6?u6 zb!m7=R8`wbe2ly>S`eICmXTbilg>tz^v!k7clXpaKW?oqtG$0uUl+dAJ+UAXhOAAj z%-)w44UHu&)OD9=aODl2Kxt_$0N?2OH{gmJ4Jl;Vnwwf1AuY+}R#-Zq1{9M#HJl9b zZ~3QCMc9xp!UZ}`%LTAi3b8PWg`Lct!lH5*Hih|xyn-u5*r~5VIlQI}%P0BjG8{nx zn${F+$W;`C-_)9dOi&2&u$6*<8|ploiVAI6wHDbmU1u`@2yJcX)VKEZq0`=3kAa;! zNHAS>Lmh$pX5^t%IV$9pu&`4I+%WF!^UW-_WRU>FMY*;G&*N zqZ(+W3rrcLQoE=?6LfV_`rr#vTl@N%9zKJE20S~RN)UxsTH-=?gZ<+|0fT^PBT+fh94It5CWVR1E%aHSZ^*m| zIz9{K#aUv*RMTA;}3i$tl(HY?TrND6%qL zUJ5!Yh2WzVI^L-*C@jmCCMXb5ORF!bD$`XI>MAt_6@}_z4JgbdIa$g??A|9A=cOy) zlSHQ^WEN!Q*H;yzt)G`2$#qBii_+NcT-V>yN23@3mPKiaaAkVY`ukiMdIlMNaWnMb zi!uUjEl3U4A`scAtE?!};DabGK^`)vtT+z{@$9VBY=r_X9bBFQc!ppdtOJ~-5&y@z z7MJNLh-8B-oerWG36=)eS(Qs(<}1OQ#)(&^%EXN;lyq)h7LkYF5Y&$fNy&Wd*On{u zFx-Q8SVW>P%JJRe5|qZ&z+E8NR*;`lqRuYD{$yrGfifTEviuS#ZZc6>)=&YXu(GL6 zKTI*uT`BatZj3J4pu0P*pRUIQY8_x~upf(aK?4M4J_AQLRZ5gFf(XSOvFKUb%jFQ9 z@OeCaf7gQ-(_Y?DGM@;{g9w8vNnuWe;L7{w=S6Ej| z$1{1jS{}AF`lNce8c@NkeS!tH$&6i;+0mQ6qyfOd)H#azM2NkS?r z-{}al#Y>`-kUau=07wFONQv<%`6R_+QWCEi9fv{?rY6Dql_p`41t~{F5fzH8EIctX z)%lq!WiCDv{4|U|n0`30An(G%4R1&&{wfL!MeZULgLou!7$1-%0kAdv4J=b7Cc-Y1 zLLggOSXhCurpi!eSSTzk(kxOTX{44A*hJESr;YT?=W}OHojh^&>`Ajz_P1S5o0yr*i-IFCIB;d}`m`6UPtUIC${X8RGPb zlSfPtQak;t?bS<`w|CemaGc@UP$`aH{`8wzOm<~5y*y8vvfNyKXioMt1k+r2!1wY3 zT={+;OfM$W-wg$EcN*0h)5x|qo^*SxhdExixrO~PHx5?rg95!gZeO>6b7CH!^lOYf zL1tmDG&i@tXaTI63m6)x4o0F>6(Ru> zO^8DS3l0v7Ib_3G!~<-fNATHvJ}Gn9csPRr5EXNA#SEl0VisHui;td_k(YC@4a$tzuARDKOQ(~Zf0zC^~m|d zmJXEb9ySiwZaH4NdgTTZ*EXkoZo3iZPM-+!;s&_>eA$Wia{$fH&C}ft&jdej+~1I~ zD;7cKya4fHk(@gY3)42>o5AZrBn>Gw?0q7thCLht&J0u!2n62Vp5ESW2(yvj_3>i5 zVO$geHWEcZ2HZ%d8iWlCHjSURSD+7kBc$SdNskAT$=55u7eqEs^2PD z_+>upKS|j`z98ab_!<(1Z-r>};7JH2lY?)02=CRi$Wc)8HF;1`ETGnQCP?vCwu72U z8;J*CHTgz3JCCy?h4N;P!O|MK0!K|t7vwvp>P zB+fdRR6S%p2=9;!i;C1z)&Haw)V0)BWBjtcOW)Pog<(mw&<%qFJ$DE1-n;+s*~8~! zgTP5DS+1i|2S)Q4j-Pqb#f3xy>jXk%<+1%XP z+~9MT*4}JxZW5bY+q`vR4O2S!f+|?!vbT6bG0bv_?sZsHEWwY!B?Ocun=NFAfg8fv zj1qF%hB(3EFw%{Wi-pM_6EPbd)-xJBz80SvlaZ>DMkFP|O;3mjj{^rjGJ<_yAb}mb z4N}75%=q&3)Xami?w-fbCZ?ty_4PfzKlAkA;_}O9a}!gByQ2f`ZABwo6EuUsYCL zUZbl=Nxrcb1Lw^^6ad1e(*gtrXaKTIh?}&vqSMpVUXSj2ZD&_^CxFsu@eJYrE!f2v z=;|NDb7FX8uy>$kxDVr^M0+=`_B#xHcxyO|b#(Xi_F{;sy{T*T(LI3LM(;fwd-;4h zSP~V+-C88@xN{(oH?}rs7B`k&KOY%Ks_oH0Z#O#Ftq4!npmkDGS&*Bl&X(v$rGVt| zxym!&7*Dq5Z|tEnvREK!9ds)%ew{@_$gctq^|;fbhN4(D-qg^H^m z%ZmsXv0@Zq%CWeJyHaPqSArriCLztB(5q(}XI{nD7SxY)HEXJ6x;TwqjM>#vZEs;= zxuLl(OI7hIbfhM@?vZ{;uz8<{=p*~lLYg)~)xnFGXP2lNdUO?S4dvYUlJCH)WGdj^*cJ4z#=mjRqW0tLl&=M5PKit*;rFxM0m0`I0nqYKf-=7yH`c94nD zdIzThMi05o(%1qiRzt`#GRad6f=mT!P~Qp*u;K$Hl?P1*8bVza>O4SVG-K}t0Q$~B zfcN?b4OBfH_71>cn0GR?^#ID(hMz@zsY_35*V7CGg9H6cT36rTz<_}Y(GF{;kJ;Ui zY6r8A4l1>q2SUnzNje7Am2jZg-?p;>ef7p28y5$vy=@KdXk+AdcbuHzurOVju=APJ zGOBZWu46$ho$2Du@b#j*(h+qA{EhBp??iFFmF>iIu(z#4Q>vmgw-TQ+l{z^U7_m}K zZd#gJUYw_ZUdSuU&Pz&Hq{PK=t9v=}WE?0{GP8+PInERD$r432LOzOI4XRZox}vfQ zO-VUsU@C6eRq9G=DvB#A@ChnIj4M04tS~z-yUd}Xth}v3r7WyM(6FweyfR0fCr`&U zO}aEIU6qwll7o$j%)*AU>ZTf9hS=S;p-D?MxOTR70{778;@Q*bitLM@=ROd)Y3>yK zz|D&Z;u@|7Tv}VYn_Ig(nsGg$Z7i#)tf+&{LQ*M8$Pce5SE1x(5-JsH6)1+FyCZ{! zP|BsL3NQ*#-N7lF?C~VwN*||EWbDu-!FDX>cG7STPXUb$nhdCG6vlwO&dtih@S{qe z577gP9~gfX7#AfabSZ2bxPH(x=-^cpkrB&$JSjmsM+Gc{$Wq}c3z-i0F*Coq7I8Ze z?R9l+&3ad)b?8GqGy}DtMjJE?+#PD`0@ksytPVFA)x~(XYCscIxoF#`#wJArAr&5| zt^k%>5-M=x6N}F~-QApNaqB|>!MLAV6{Jq_ZAf`{Chi`Yg zM#k4QiEw5h!edtEil%PWx2M^Cl|<=h<`qji;1Je)jyrbqZ41+Bw=K|qIdl4a46$?@UoIhpA( z@hKSv`BIIpwaPJ{>P$436lNAysEMJ_s03+bBya=J7%5m-OiqDDBbm*}8lqh#gX@8x zNlVAfC-g`hIy~q`B*ezVOVQH7BB%r%jhGmK*P;kKOkx#i_6SFc{VPUoCEb&fDSfn^;MN^r>dsOj;O$Bz1*HaTo@>&P(^ z(=+GKojG&n+|OsuoTQr=U$rxJ@;Y(i_|GSQISCrnSG=woVf)Z_FSW22)u z2>N)qy8seEyFWq`!Rohz#p%FHY zHaBkA+`i#LM?}qqff9wgC(8q^3QvE!larUxalb$yeetgwgXx8@J~W1(JHwsneS+m1 z6wIMGGktLfPxyNKpqS`%`{pehdpjpP2gloPG`p)dbT6Jin;*nt*jt###zk4ktW%Rx zGh`QK7q6tHT)uSC{Ki$n`VxGdOV;ptu+nO6ks_CxCj$|YA_Go372BOr_%f9kL5|-< z0QpV!c!WHxgu<00JS-r* z8ayWKAmSA;M;pe&)rBNd92|y28+1}aTrxiXtSh%}T(izmSZ7(QtgW&#v-5J0YLsUr zfe)V)7atA+wh)B}ZV1*e(Qb03yU?63IXmuu=WlPn_3i#cKbd^{)h?66KV7|LVZ8tN zY15MzPv5b-LA`R}r&AX#E?C%6F7Em6yQ8M(e){p__rLgX7xCWPdk-D{cGqWbefZf| zpMU<3Pk(y<&mX+^)eql%@y$2KckTbg?8g(Q-ucI8Uwrw+*WZ8p$*%W4`20^FfAHQ% zUw;c;_<`@f`rwmqk9~f0_dkvv*=MuY@ywn>dyaf#eErzLPrkUg=lIEAt$((&zhq@= zf6c+x>GqYI4$f}wPQC;`=!D1VlU#j9zKzSXj>NKPCT5QLL}gJUKhAFQq}|o#gc9i31F*-Y$9DG z@*h?vG>#Ask8H=~;geR*Kg&Qt@NT%^GVoB~;RHmI@alj7ya249{|&gM>>v?#)o4S@p;7VJYnp(R1`a62Mx_b?V&VfOkRY!(~A3hj;{CHw=8pz-mi*J_TT+F{& zUV5{&hUMrjxS?D&SOpk^nV*_lnO$C6*xUlNfVZ`}vAxaRTp_lX=GO_%+A0*$8XF9X zuvpB)tO@vVIR$KSXoM)Hc9syLxDytNRtGK@f<+KNA&4;IQUP$p@T8c8IMLEl&nln0&E+C6h1cb6jNf~!$e{jSw zbZ=~Q{1M*ZV`R>rKY8}x`S_DzolLkm{(OCLj>BGG1)Y0YDBR?u$wWkmB4Y7H2i$sO zY1txi1bz>zGn|#>MIa8A9?Wk)p1LjHd&`)=9>RbnQ(Y zb)z$(Yjf7e?4zo3ty7HRx3LLP}48hqHzl7cUmOAu~YP99GwY4~HH?-6> zbs@b*wA7X9YRFNSR()3=26Kjn4Sj~b_Kv3h?k>O)deITWNp-Nh1B5nM0=(dvjwToxA>wU=gAOG5i|`Xe{_aY4TP2o7g)h9zW&hb`R= zOOwULR20M|KQvSo<{D~+FGgO*t7En{1w*4v-OopZ#qs>~u<#I>t}L}0%}HJ+KY~5{ zkY67%o1HZ(k1Wecep;HJ)sa{n*R52vmJ2pl>RyWcCmYJM%j+A67hQ!>Un%-rgO=aYuj#jVE=MmuIgwEFb)Xn9UH zx(~$#ApU9_wN;p-sez#bI9>%@wAvaxIxW~}ZGeMv!vJ$6L^1d9>Bp)-1FlY)1 z5}}rt58p8-8?&D%q37llX)<#PaKh9eM26rH$r3Ju9;_gd1_hdOkPe`45NQMWSA*;t zETJkCchop@gP4W8|MF6GfhG?zw<2_gz!k?61b@_dMHEP9sLxV9$t_^56}SBJD{KDq9>hIX%jo8^a+3RxCvr9`LYO3*>sV}Ov(caRQ z0g(*ee2FTrtUO%`*QTlpDi5nhND~$j*_wiE)TYo$(c!@;27DkJPEJnMO^14&U7a&5 zoBV2}I=etuc1w$Ugpz`?QhUd`Ta}fLc6VT?-c+kl4NpUhN0E+eb9g#xb#5WrSCAu_ zaco9gb)CMWl|sQNZx5rx)vcG_)86Im>FVXrq%rZEq!Bb1V0$3`x|%7ST^+qW?L8Ik z25nPW1s-gyzvky>BBWTRRu|=Aurm)!M{smx={dNa&jeB{Co3gWMsmK=Fou#YLntgG zSwKJM4aa9TDVYH~;v4Ic!kR5^;Q0^t7u@W_xUAeZDoRzNWWie3ted0t*7 zK6$Vq3-P1{!@LZWv>Mnk(B|1?7^%fRX_hh*n2UnE9CdMN7Ock78ZGpGab;~IgYC=c z92fw%afs>X+uMLpqn^Q_4uFhPjTznI(tb2R#!(;l$judu4B9M@=!^l||ON34cy^h#q@p3aq*z&B-BM6o zAk#R;XCUOx6^90ghs8pRB&TAb6=Ovt83KpW6nJcSOrR^2B!x|eAE5G|nu>5wLIUdF zaft||MU#+%IFNj!C4S%$U~>uBD|E!M))@+c1EG?H=o%(*Fc_LB#TX7`3}!;1Y2x7u z#U{nY#;20y9J~NV8c^kkLHLb)jTAIHk|ZSMjbyl`r6uEo$Uv(MMht*`_`edWM5@Tn zf&HQ)2tJ3+BbPJ4W5YNea!q030z}Ls$y$62xx|Bb9IhM_WtlL7VVb(^bDWj94BnZJsu-6_ch>8f6AQvMBP%ShhI25V|>l6ZP(ttK07O|ju zIN(Slp@i#G%oXB>9mzFdrx9NRB?_=8A&HFw;DCci8QeAzx&+uV3?nf3fp!n+wZ!e< z%@Y$zMnOcRC=M#^@jWP8lDgUilo{iJwe%e}3%v;X_xf&Ry`K-?XxzT;64T)abyegJ+KY zupcX;r!O2jbo58F0|&qQ;lMXP9Q^+K-QVv0V$XL+5AQnk!=-&+@BQfgA3y)c-hX`Z z)eoP4`_aL#Kl$c^zrO$BUq5;KZM^PhKbV{dwEXqpg`bTt9X{}j(ZQn^4p{FsHL|;N z>!7LGbu;r{94@)ubix1>!^hXnhoJkoI&*`#?(QCUJWZ`{o1QYVu)FQRpnJH&rwL#~ z-GGn=vjKcHe+<)*OP!dP1QdV>0!umwW)Be1WE{=Y*W1t2&&$Jy=gk5T8oI^{1)ZJU z90(;JKc>5vho3h}JYcp#;gAV6obaJ`eDIU7a?tT12X|oe`1uAQ{T2k>04xSib4RCR6#@P(LAp{$NvEY?KCqRPm0b1jdwHv4r7$c;@ z`KON)4l(mPRus&eV5HZ6ho=@f7)pKcSy}^7P^O zlP43;r^lZxKVMs3fMc`vhFF~442eVgE?Odq;;}cDK>!I$N{CE|;}t#F5)oUtGY~>*1V>5mdYBvKqg^$- zyfD4IG{5}j_3YH#@}?N?m%qHRfr}09+MA_S_R84CJRae#VB#q;y*T%5eC_#*sb|yk zueaZ9tj*#`-f;Kjv)P&1>5VlmXL)g%;IFT|UVgQ@Ft@b6My$=Fee`A;JT=(D{5QNg zj0=sA-@khws&KUV)!_Y+Crhu#I)|UG&)w@N7EZ4PbGEl$tPq>8=NFd+3$NMR^TN&T zEiP9Cb~-+0n9gD@?#&_z{tDjz)~l)43v;tCC&nL6JRBW(s7F6%cxbSH2q5SIu5zMr%OL#0P}4S^W)tuphXSbGeGAI59<56hX)Lu zIH?Q|^xxGF7+PA|0Wtv70Fx@c?Yint{m|&>@aV%Q_wPO&o1B@3xy61nJHLzvZ3gmS zbD7|vlq7uhV)V(Q2agRs_dqr11Vy2Nz;m#=3{-5jGFz=oiI3p5JsoXX%PNZGW~U6# z@L$%?H*w~BiQed{bUa5AljIe#NzdN!6GJ-gbHqc>(x10K>~Css9vbVo-x2382!G-^ z)8wyAFNkYQ?~WI)CxG)nT5T{-AS3HIb&?V+=5p1eRZe-uu(J{dCm`3N#b*) z;fd^|QXUaqT2{NxkBU__6=y11w3U68Z56!_UvABg&2oDC#>SeS6(<*Jo{o0pccA=H zRDcRUQf27GU>P1a*wtDvA*w5?>d}UQUseyTS*vS;uZBDuT$y})E3T|6KrW~t7YONm zHG!LXXqmji9OTwW)<9k!yc9Lo=~2o-7iXu3Q&NphP;7lxl$4i2-)M?U)Zi5$XH-yF zsV!E6a1C-+4mNaf+AM)ID%C)s08>zmz4}s!-`WNUx`rm)pEu}Qn;Sp?Z$@*dsi~>H zqm58yV;KdF3w5rhP+dS`w{XR-hI~TvqPVoY7FY{iLt{&AO?N|IPiH%JX$L6X?E`e? zAe|N%;6C6=r4E3*)-nh9Dy#E>w}V8jF0H7pj8PQiKphv< zR@m8UwK{u;>Ze_tv&c<2>;1&NuMEC#+Rp}CsR?D z8K=@TR%WG!G3vS)E{6VwZWjc&I=dNd9TY>WTi*a0Om3LXaUozv(cGwRxDs}Thtt<% zXaa1yy`_=d!>X(-(iUjp-oU=m;5SoJfbv$ZT9J!GDlSCH>PI>zQKUJ5Ov5EemPxU5 z0=O_>2{=!uDKas50-Fxl0*s$zW+Uw;O;1lkA05sPXVTBTiR>^czx4Ft5~L*5%5idBtVg>T)bK zLFVfk+uML1ryAP3dZBIrxrfOIJR61T*4l(GRaL+fRA!;0PwFlrD+?k~DoctGhDC@t zfxhnLvu`Ro1>qhH39GQ$MVG5jcAglfW&6i-9o<}cDU!@6$%AcIj!#~R3$vs?tXi(g zO-_-dswAp(LJ%9h5WKJ*mYh`_r;F+gqCYAwkH{)m&(am>eJAg(^A?}= z7lpM}x>0FF|ClR7;Nu%Yc=$Q`ggZHThDRg}_yxGL<3&VJTC7ACnGl|mRoqmjE_YC= z@(NSSB*EdLY*kzkCeK7LUr>nwu?jPscmPu1NubK&58RrGscFCwqoc0=ftVgr;QG~QJ{y8pFMAO`sATgwywtyx*jva63@|N$IhHOZDwR-atJ5h<4C;T zq2o5ho$BOFXLy+!9X))^)zb&;>cbvB?%qZ|j6lNF)RcYt7&FKN$ufVDZve~9&ld?H z4}WyPy>01kG*9YnhQH@ABdnGfoB8{AV5*+s;Tsru3^(e=Mm`7@86P(_J??iLTPM!o z5Zs0X?Lxg1aL37s;^{%NW1?g2PQQIAGR5-O3|Xx7QU+YUbgSf)OY(%v>A-ZGU%q6) zyF_40)f{;4>lZDdZloFUc-&Hx@l1)t;~W+zjw9_G*lNh(MvyL>NX)}H4%zL8{|1o? z;^mSeFKAh;O0=A?_9lbGwBn8IISlT)Jp+&iup=fBSTo@yBPr`SP1D_U+pL&F&w* zIrs6~fBNv#&;S1J2N>P?@yoBi`sDk!KYsu1|9b!3FLr-hqK09zNcl z?t#7lRd^$B=7q$Xo0mHj3Vs?aHn=+I-k^#DJH{KyH3*piWYiE*gVON>#J~@#$lI6a zeH?5TFFbD{dpx}{BMNK*WE4_sU{6B>;eC5US_QFv5uxLPg@7<42qavD>Cj2xa0vmw zNECp1L2%ZipW?=3_z{nv{ z)}##LvHq15I0TXYoBF}`#Q3S57X`zB_!m<7?4a6!9e}XH2sc`;%r@n*#gp&dYt`PYj9t6<8K@O2N4>>W4p8~ERAoQQZqQNA}052E~ zl@zxlg$DmAg_^{U#%|9Z6MJjLWqnIus7%4tgI}~yjfpZn4d$fWrbKp}4)h@OpD)a(#1s z7M&6R;_xsdnk){1S5IJbZkfm3cx71NY`-Lyme*icP2F8t;;z40gk|(}V-=%0PnXvg z;S$X+yPbAg_V_g9O~Z?TZ_-9XSbHt=cgafPu_bq^L*yT)2Xqkr}rNY zJi?mY!1&DKi`l0=#P;+{h@G|R&F$Clqt>}A974$Fydj^4o0#`v^AW2Razs($xJcMw zt8CuJ)EY7MdS>eRs~1mRzIgcHkzw#LQf9*>?zaa^^u3)OZ7uE1I99jS!bNDUZ{G2F z8Ua5BYO6+513*%pR$Eb_)0XQhDw}G`$po9Owy6%8Dxlnus;VwWbsdEgZCzUfS{-!+ z-cDm}X_dCFr5Qz@WXI;^l?;jaM(8 zPds{fA8(}}&%B=IZlbllMO#;2O|EH{7Ut$lGmGM$3d+VdG~(6J@qucQG+5N}I%Pa1 zGyJKL{bY6?#0#-scukgayeMKKWNuU(mX%x6Uy+-W7eCxTstvMtX<^5zv=8e9k(^M; zOI>1Aa{n%}x+$sv624OjeG(oL(F&ED^}~lAPo>(jr`MDhg1UDFG|Es-_%sMzxjo z&4>%u)HUj=TdHeYdhl6q!Q)h;1+)s{w5m*7hV9RC{G&nfyP&uvldP{75+$VtrInb@ z!7?O-PbQ9^#aOLJD2?0$MVbh}wW5+T%+({$1a2^T5Cw203JXwOC)alJ%Bo=!K|etc z0bYPc5407eRRQ_J`DH*1*p%Dcx^=Vqj?HZs;62@3-QDO86!dQ-o9O?Yt)t6*&rQPRgssIhp`%sCa=8eroGM8%QtNu9qu^Z zMpDkEzO=g7&aR>)z0|J0jL_EC7FAbPWHndcsj1Z1*x$;jEHAXVrYb4Ty-`$>3-jw% z;jOY7=qC+44Y0v0s;h5li!;?lknx3TSx#1Bfd&>^PM)$D$ICPX$7IPl6$r)UrQgxl zH&9(%x|?9C(+sp;S~u0%l}_zE`Vg;Ehre7Dam-`dk`1NH@Nr zy0ISaA+nDJYQz-r9`Ybn@^is|%Tc8%QgdXm5whekdQx%HNLMLAAWkRyBRF~k@`9td zJT)x~H}L7nX&K1s<=|o;J3H`xkUNsfRk-&DEDa5F0woib3=%aqGVdnhZXK!f0H z33hDpC852a!O(Yh_4Mh%Ug+$k(Glb87-(%m*i&0kQUo>vgp^VZJ)Q~0mYSFbDxGmn04=IO&;L=>RjQ01Sc0BP|nf=6qQe(BW_a)6yZ2U;-tk;e3eo zoFp`HQj;N|!Xhv?7emA+ND`BwX#gic6fIODiH(bhiXg2aT%IRm(i1o6sIMlc#3n-p zq0Iwj1aX3&#}qe?sYz0tD`6C2{S(Xs=puMZc$=}%LWwa+F+eAzDPaRDGtlA!uMHtP zOv=iEi%l9^1id>Oyapj6NMt02QNeWnv$(c$BK4~h%patHWrFooOu1t|*z*MG!kzs|piiM>$ zl5nW@SV0m2TTG%0h-=rcUB2PscN{o^6K2Pbcp7;gIdb%f+tI^^4|zctoj7~$+_^K@ z88tp(a@@p?=IVUsHX>_>j-N0(a^;NGAtN(DvyK`cJ$mH$vEyDWj*sin!-ozXU@~2t zD0C1anJyk)hm4I59ynrTW@2n=e9Yv;QI@+O{n#;2<}Ekl08bnheHng!ehfi?slU71 zkz+?O9L6|$z?sQ(KH$P|q|up2m`6MUypDRou=a3g&{5Pd@^N#a;db4R$#7&+?4gnn zcyn|1az&K~U+J7~GlRH3f!?lXQexsPE?!KDlgg4U!0DT-5pC!Wa ziZA5j4jHEljJ*f5(O3-NK^x()OR#a&LL*%q%n8N`74gYo1j2%O~DNUWH~fMF1Y9UXBDKWZSFMhpKYGN5^3AW%$JC>HE?M2! z_sv%yytV71*=e_5zTNZbg)7F#e*N{DQr3;77?KL$wxpU6;2LAGL zb90A|arg8K^bX`e(g6&Bb2l_W0J+vF3W62D3gVF10${2^VuJ?*ssJ1xAD;j}gwL3+ zJ|0X@!pFzM*B?8gULIJK_D5^X+xP$R^xk1n=Ly#Dv+2FN_m6v@``mqZ@9b=x-PxU; zp6LnQ)7`crhPJ2Ui~^z>`bk|f;EkDm8^ zx?5XB5Gde#zUQ3JaddXX>+ujV)Z+FIg&%lqsCI-p77rC5loFPYmm9W_vllAMllLC7 z3I&AqEh4Nvc`3X!S5Ft%30@LkUoSs^Y={dlAG{yzK+>#wGtOx^FEcqqmLhiWpE8_F4f*|xtVP#(HFvcrZCk zsf#fds0jnT6aC{;Qxgv#j7?4q47S#Hj!pIs4|W6U9_{b#pyKgl=E>~KXVY_wZ?|^e zku%(Ux4tm9y8K2$Xl;LeW1w2=;!aZBh%gm2GuHOB2vQ&^HWRN(n$z<*4vp3DIh<6e?Pygxh1KxFzujNlU^6+ zG`?J2HT2-1qQ7~mBWd8sKUR3Tv*W)$^F}U_WTh(@a!SjVPOXmh4t#TLe8*R)5-un&s0+_E+f^e>l*n1RZ&q+ zgs8Hhq@oTN2flC#u1#q?QC=~*HvTH*rA+*=_@i#BsiTqv{eU4K6mm~1oVLE9;fcu(KImg3 zgQV81Y;7mN3XEEV6B``tcNrb%@9IDS4UYB<+m6~&;20hr9~qkH7ZC?hVKUC2kPjwo z;7U7y>$DoNvK1UDuGrbTxJ#qTt?t^GnVV>+{hBtbZ{9XCH8yLguQ7vxWQ|K=WM-^s zFw)e4cThKA0hwDECuWsoT38rY-n>Dy&G44VO=Gi~()zlh{2L{B6irp?TY#&pE7Tg} z@|xSXjnPFEif34Z{5vW>&^`Zr(69G`yj{ ziHAm{i`C5vubtcT&gNT@Du{6$V?NrZL$kfN|-&#N-v_#qsrq_KP5XWISUYR zG^c754a$epZ7S!~YXXyp}G z^Yy5$y-Cy71<`V7q0dYoB}bUQ+k4Kp{NY%hOM?KRXpx5R(`a{P>vy z#I`&kLN=CGm6Bf`HTbA1ud4l3L5pT>sI+{>*2{f;d)jq&?zN+hmA{`8fGvN2hq})4 zti-*!#4@XBLBa-~drwKLrtiK_VoX4SO6C;g9uTecbhDQxYCN3fX#pOJY-LislQblO zhOW1-`=qBbTpk=7E#{7>)+8k)s(M#ce{jseFONsj_CBQgo%qr$)%pl3v}6b<(v zk*CMRMloEU47&}A0XS>e0x_}4(eYsbwW6Zq5@m58B-8vs9)UgpjF6Fw+)aj=m6n;N zqKK29nv#Sym6DN_l%>iL?;`;;1%^=d2oI&1u23pC=!*L*Y~#^g$CBceB*et0#3v+( zEwP;3cv>g`0rm7i5$I>>>RnFP<3&P3xWPgXjr$~Yb#l5sJnGBLkn)^aDi8;{_SU9X z^bB-$^|CJ$ghTaE1JczKuIlrD`Ucl;o4fx0i?7a|)AqmvI^*s7xt10`J3Bg@(>@28 z?ZOvYXHUC2opQIobJxPw@g&ma>`6Kmx6YnDX>;N;EiJ9jPo6$;`n)4yBeOdvEbiLa zyVyCN{LISK&f3vK+s5%Uwi3cf>(t4Uu3Fr)n>%Q0-?i7hD7cYV(>li$^667rpK71e zzHsI%?QFM=y%Kg=H|g>v{mTZpvvF7XMxv{)cln||k+w^hKtNnK(7$$7 z(7$G3W@vEbvTkzXrAsO4NZN!1vSqO`q47!xdCF*@Y!IlUA|ish1Xi&4Nm&OhL7+ki zl}iyY!332A1>9H88NM*teBB9C@f@6d`~my`(~PGLY0h%*KW zsNDdHKwv3>t%Zjq;3tadOVn%1 za0liEf+#RV83h|%m5Q=Yqca9BpJZ)%Vmt}SEBaZf1!*bV2BalK1xH6Hd3yk4D}|s? zu~iZz_w^*UMM2NO!^O_r=(dT`AGA+iG`o7{3yY6GI`zSCKlOk zzBjtAYixA!3!PJ68tI(-Jh@~M}7#4LA!3AE#+4w_X%(07bb-X>iT;W)Y9Uy8tyk2itu-9J4(h1)Zg$>@C zRUbFvZyvw&@bDH*BlM6LTFaAzyHw&S#fOskdZT*eVx@>7Q~?ysJ)xd38`NphX%T%N z<)73DBIqx8ngTr{!qq~KJs*zU{46Em#_xfo#=G29)Er* z_x&q=+t)Wzd;%{_s1RS7C~y4nc*I1VPx22|(2>s*v`&T3|2Wn*$d^Au*+>yRe&pU_ z#ep7C?ED~j{`d4~fVU`&j(kRb&^JBorPE?3h0r-TNsOrTHE(y^NIu_gQ)wG z_q!Onf@GJfkkoIxYDKnK-L|y;dJDaDw1-*bPoGEF-g;9L)I8H0CS+~wZX6!GdFKxs z4dkYbn=B=tU7<3$Wb@#_?|?oH9@gU4#=+X*=H}7b+tt0TwWXKSvonvjrk@Wzd%pbU zVEN6=*30fE3v-iCr-ueKl~Ga8)}Kk3{F2DR+I>Q7up(HyC~B)bapZ3GdVOqG=l25Kh{3*V7RxR2gT!uPaceqK}R6; z*w64`|M2l&XA0bd$a3rMpX9;A#758PSa);R@Z|H^=g+4f-+wgoa{bM_ZCT*nyS3GY zwbiXn#md(5TgVn$8=-6S)6b^nSmBu*9Tpxf&pw5bLB*lFL!;pc-&CwAuPDlhOUlgc z=eu=EX!@FLiq=Vt=6+6TSrJv(mSt(pUaWHFt*a!sCL=CzHzPV=ZD-?6oua6FDZ`MSBTv97v|RYp#XHITV#)#a6BukyJXFC@!W zT$+z&InK3-T;YS*hf7Ls(U;Jitf9@qdSlwxr)rJ6%%3-zw%_9h%WjRwtyr`On~ZfX&`U5!0LKJgY{ zP2A<@6oPpxD=5IW0DZvDqy}}vfC`+8Uc6r%8xl(6ll>f4$HxcgbB$Tqie}5$kfrtL z2qhlYNc)ES+B*9OI>EIKjrNjhv+f%k8lD;-V5ihGJ=4?8#{tHgJ@=i?4mOA!J4?aZ z+1{DEFfORvyfQ2uE$HBwo7Ndt*4CHRn;08b8J5=+6@m@RMNOj4>r(P^ZWxwTu~ww6 zGcq>0T~kp}QCxf5+``1v#OT(|hHAs=YC|JK!`o^T6Eox6^~y@q((ss)s-jw!ImlEQ z8JRSzn~iE}%jMP~xsjHFP}NkeX{v58G*%m%nphZHfQu!wW@T(^{) zPf$m;4LEpJc_EkK>`2t-7N+DERIA(TG-d7OiG|fAnT18viIpzy>Rz=q^FUTMF7`dV zrM(l@)`PYK*g9jDW7ZDV&U{lN)bHtP@5;G~i#P{2`_ay^zTWncRvK0vosA4L)wNf) z;sO?_tJM{}QY3LvQC?ZO$eRYEmYbB5LO7oPD~l;O@)R_3MWl~tpoNw3wYo7)Ha zK=nC}4fpl5_w|krx%7^84_Qxwvhe6@tFNzUsn9f4mKF=Ooy`rnR=7HO*{P{XEY*ai zL`H`O+!N&Tj1ZYJ(Ld&y^u9Vd-8H(vKO{0*Axo)Q38}pAckk7X;Od^F2$64u`nukq zo1U+XDeY=__0krqjb$t2fQX)L_*eisW=nZ(9YVW6c%^NX}Ju}FpMmdw?BN+N@d31X)v5!(e4 zL0D*Lcud4!AxT1_WYIq%PZSjuNmwo%G&kEi6bHk5@d;&DDA|8zJh|4 zkQx~m#g`?PdQ>X#(+DI~2=TW#qzwnpcs5hSfzo*KY9<+7i><<62Z=-WE-Q&&rKV=4 z<_lcvaRMf6O+q3}p;QJ2hBB(cx90GWm)yI|sN1C!v*Cnqlvp)jEAz>%<8c+Y{EdCr*BL;-o!mJ@`W3TWec= zuV>|G>2yZ>G)F%zEp2xvPc4k%Km6|E-K(Do7i`?XLOZ&Biff~#bx!+>^SrEcXTH=r zdlJIINqaj+b~3XrX%k*$LlH}?`(xvR0$Jy$}zmNw?b zmkpH3p*UT-I(i0|6L?D#vUGKm^^!4l(k`X*8&_{!yMFze{tbi62Ew(gH?G{&Gtf(q z%ScL!%ZSB^OGv~njEqPOi3b`WC+rV0LX;H>MPO(s7smcF?oYh~1X|48q|(Ol^9uy{ zBn`yQahKf_Hy~(hNI1`uq~U&-;}uCvSZpA2$<<4O{DWC04OWCJLzPk?h~!I9P>>8# z8;Qwq9!qhtk?~PMVTov&*a#l!5Of*9MLZ*aMDBF7lD1iNl!El50Tb=qBL%<>nb&%gIhpO-xVC$+*GfQ|1+JhB8djS@lsSDC1&7@sq+6<6^`z zj~BZfKE7}!yzTBeIN98}Wn^k({F$_4KrV_xrC6zBRPEsCDX}b^l=b`MLAo z{NCWE{vYq$(AWA_TkD+8wclUSyKegRcmMI#ug?8JPyeO~-zn}|vIck8+!8~^Nn8Pi z1waXjR*3{&8i#gLg?>_u9A9r2$ZX;fUZB+D?hKcJxloa%hSTDXm~ntJN}`Q2kR9kA zVrgQk%|+xBh!6r`(=KfC0G;MXj2mnlumtEo53D0kPkT344hK#8C>z@U zybW@nY%H8(b%HWMq(!1q0`YPJ=-Y;|^@rb}uybtL{P1H0>PEoiIsVOB zUnxe>|8uOJL`8FK+3;g5zRi8KjL1(D18(AfrD7RJ#^BE1hyZFbYTn*~$2&eaHGk$4 zCL*eR==I2e8USsh$&+wA%X8%O^iR$W?e>n&?lus@J#8KRo$b9N1H%&!C#N1hcsdP@ zY?e6I;^v#}jkg=yn{VH3?(V)9{EnoMrw$MI;MGC-`b@@w0*d%Y1|Fq?;v3Y=#a5to>jWP@%-8N!t2FlVQF!5X=#0B z|Iy0+a=^Z1ZRc(1o&=N|4)6B<;nv$X>uawb&#;jy9KGK>+B!IV_h#w!;?nHv`R9wv zbE~7TCSLEayj+@Jc`-BI+1Xwk?LYr&b8U&GoVR{k`v-x-w%>c%QQ(1OJ1J^w2j%J~ zKT;?o-Ul&D$n0>kkRBZqrjQ)0zF%8ee>43W*xK`lkDgD@PCXcVF!g{K;q=tl$b*sL zf!_A+-r=skUP|We?U*gCJ>8o2HqO)an%dS5F4pPgwA9wrXlfhF8`?k+)HAN5ZfIy} zY^`f>e}dvp|9vuK1H z8XbA?WcBHh9?cB)f{L0N9DX$U?Agr9;`H<9 zk7l1eTV5p+_-=Ebh}ssAi>0MEFBe~}u5RqCZ}_c%sDAnA{tMyp!?E7U(ZPYvuD+ID zPzv?!9Ogh@l@{j|m8iJ6OpFqGOFDwelFf&t+D4?JWeqcuHw#>iOQ$YF=`BU1NG?1Ybe@D{3;c6hZ2a z=E#mjp?+>RH7O&ewP|FqyLNuCuXv^E&AvpMEX|R;ukYwC3EUeW4M+tOM*ulHkNbL7 z>Z6pAWx%_u075i$q6>K+){#pSw{zM%duT@0A#0F3R6x)nbq$pjjqM}q+On!jJeVfx z=B2FX6p*khDXJ92Sw;)79A9KF~eX+Xusht`@iP zmNt_%j<(3%QEsf9xz4n6qmj|a$Zgv|FBVT%R|mS69iD-azWyHDiM}zqJ&xASL2)52 z-i|ho;|>@%lXm>c0oyU|(}yiB-K_YU471DLFSEkT!n~CLnz5bH?HWTsM)j3ytBPWF zGIQd>Qf@L{B2CJztkqPvmDC|;OpR{cYA(NHDCX77Zr?K1n3>(aZD!nvjw#_yHxef< z>m#EZOm8>S3#zPdGBx%$5j54gWD-S$GHwh?Nt0ZqE;3f%1SNL2_Lfmojo}T$lA7Am z!u(?7bV^-S;SF_Vv6@j$;NrPRfs&#eAO@8QMd?+Yb&woTlo`>n333k`P4hrc`v`Kz zx_@-s!E(@g#CF_%#B#vbt#^=Kv$f+G*L=dDgQFPT_VJa9gW^`Boul2IJzeTHt|J;4 zMrzPhRF?q>C@d~%s3#tbLtq-W&_=~Oq05j)H|!EMWqVg6326A_ZE@@y_`Da~{Ud^VAlnBr*fG!oqz*e-|r>*lf$ zF#W2ofJ#d+1?I>gKNsY$dYC* zHeF&8*ntVD$jFY;M6^F}wDxg|^jHNY6<{>hrg8C)3=0mBabwQel5c&)O=1#M>D*1L zRQO&h{2H`FS_XDSR!)9;b{gFaY#W}ON9b55rT%)nJPXN*Cv{+5~|?FS z;?jSW2GVK=)kR+;lwHZFsIX|9r4(LwT5<|wP0$z6Z@Mt24fNS*%FsuZT-CpN`MPeJ zUUFJ=Qe0X}yecj^DItxAWQK}#WJ^jmgO(^n-2CCryWk*wX;5Ne^SfE{={b|EbJUC z&CIMUO>P>x*jb!#vbA((Es9++GpHzb_Et{r_HHKjHg5hLURi~7w=ub6dD}oIA~Gd0 zHeF9IL6<$*E0lf zBgx`7qriR^?U74&;9)OCqMq}r{}*h)A{aqC$v8M z67+tZyWqi@&qKW>m zK05jN7eBN3qk-YqAAYTC`JEBAoQ1iK4gFJVhTiU&nB$ue9s@5e@e#ayQ5Cf11*tc} z(%+Y~nt0G>K+FqN0n*3K717Dpd=VJn=7VwLLQw~K!#7el0nD^BItFpWgbq4K^lmU- z_{J!L*U(SA08(k5&Ys8MHDca)KvaBqVQ#*>WJXE7T=)aDeZ<={ZVbt);p-4qgYQOg z4Q3ni27Tk_AL1=43<>XRso>=eIsrvliC4oDeNh++kv<(SdN*Q^M){{C8ATj^#q)&z zVABL1r`C?e3#JZnHF0o9!4m^SMI>4{a^Jt<9q@zZ2^3;{|8LRF5>=7-ZsEzHJWn1* z(ck?qy(7w=KmEh&_J>f-v-A3nd>$ct;`px!7blo7njincZ$tT@fC5B$1D)W1kO$;x z3hzXGoN&AzJSgI8QaqhMDWB&0*7laZ?qM)o^v}Boh6nq`$A&uKe?20xHv0I<^vv8m z{RAdpw$|Uhd%ut3A+5HzN2bhAdMHuIG1cQjgQUX2?!H`l_}T%txb@=DAL2Xa3l zNRS(T!qLp;!OGm|`rfv5bMbKf)#Bpn-uCRfcZ;jbYb%Ry4=DuE1`-CQ-X84ZYjkk68w$g&{ z7~>|;)znp1*Od}gtJc&*FsNrtvhH|sg;Q^%2Eij@dEsoe ziY4@RU|X%dLTf{Zy1S>dslKCkpudCB9d=U2Ckd?$PYm^s+#kZ^n;3o2H`X`OKT2AO zWKv&mM_sQNP(ms7bPVkyS1^f zu)4XlzP>aKyL)Nnjbv|iV{u_+dSde7BXHVd6Zgj^nEmPRZSLiwx3f#r)YGgMb68mw z#VLu=s^n;utU6gK_ka0tZTsQAG+ZeSRIAdGLxPIaQwtIwkT8r5t1k>ac(9Vwkk@m6 zS@u4wPCDZ<_jDl2U)?t;-7kn%sN$97@c~TF3VRw=TseF5DK$^q>KcWb`x(6(2eN?d zh=$ssu9OgIcKGA2^^poq$9w;>m|#UpT3nVo1Mn3lNf|RIocJinM90_k_qKJkG&QlK z2=Y$Nd~17qXB%>`k3G@aYD8y4OKnpBYkBvuDp^rgMuDAj zITfAa(j3tdqQb-GeK~t3%=Z*lRI?7#RITQtUSHSP(mBrTPkm!gcbh2L@S~bqXcY;R zHnORjl!zqStlZo}&e+%oIfUNSz?4gg*=d?_83wxhd%$cBj*o$uwz3qd)3`E3)|?%I zUV6JaT3e0{k2u&&@C-eJBNTJSZTp8u{m1Pr>E?*F92+ZeY|ao{?Ma~7Fcb=qjPD=gFRpoS`>Z&Vm8ylONiaZ33iN>g| zy3xqESyPjRBT-b8pC=Sl78W#Oh7~t70QqjNsJ(UF*!m9S*z$r~w`+`Qc|Ye>mFJZh zvea5$Qbe$;uqfva+qfp0^2W;I`f@~2Eh)xaPKYwwfsxJ;tBLAft5JI=8z)!WL0cO; zrxB+?scWC}1W`3d%YI~$x3z<_o5ah9bBm8~@2)G-r@NosUh;)}@@o13RMhZ+uPLpe zZB$8rs!GkqENt-#!bh2$BeF|CN~ag`KUw&UK&O+FlG0NW@kCf7Q$@qIP0WCjm9EN8 z<)A@|DoaIFiCcJPggE=M_Xu=2L!4d7D*7xtHCI(oke8N{2mc}$0VKjQYQdeC*OV8R z*OgUP)>l>36;>5h6qS<(EJh9%<|Gy7%SwbYMpRMkxdqkqc&aN(adv8&t2NaP8XjLv z?@%^kWprp{u!E>$Hk#sKDrOzA?+_Ut1>0SOtI3KR(ztCyQ5wN>hA&y&VNdCaaacRaQ3ke(rG!pQD+b zqN<$EM@zy{ZjIYq!1~-!sBd}Ol*_YliD!VnXN;d~NU+rINqm4$WN^5|H?|gu5K-ch zP}^pBC)PhHJ|kP^;Vg6MNgGKIOib#t4)JhuBzGSaFWUX=d`3kwM-mB^H^xVr#DbB) zWi<+u99Ig48H~J~ENs<6$ls*zuuL+M3u!6Q?BApj$csxRio_chA%?NTl@T$qT$m#h zA`vK2prm6G;0=fXgv4kH5zOmE#c{I^XgW5P4WGpL^M^8`hau)W?&D(~z zuU`eYMkwhrj%OC%&ugJy$>W^Huc$`&Aqy&Z-RY-@gS*LFMYXy*=OWQfh3PPKGjB4_T;daQ$)`AvJ@P zt18oLi3S<^mo8nol$^qL=q3FtS8f{Iz=Jjv3@;j7N=ryorDi5l;);O}kQ}NE4^yHw zf+GTgnA!oJ7NsOl7!(*v@SRhb%wNfQRm#ySfLe}d)NtyP3f>@&#jAUFPU1em3b1$3 zMjWXE{6$p(jv4_Z=O?K@q&CiDLGqBm5ZXLJf-;ySTrl0NAi7zx)O6yanlah=(Fx`IELn1BxsI6(*v4Gv-5ROTa>2Y3g-HY5MV!PUdT$-~LQ z+1}LnrkUAI!*49keg2yde}CH0Uhk`){QUp>m!E$7_4nUjIH&u~ce>wQ*ZS?R&uZP! z`Sj}VzW>RGAAX^w^%K31e*N=L|KET6&!7DJzy0brzy0vC_QxNdIrYi++P^*X@tNP6 z+&J^q#c%)ct+uWO5655Y*_^rN=yU4ym!Ilgyms~Esn5Uq?A!14ZeB9H<#NW5h~;h5 zTX&tzEiHKzI=ZkjD{~T@UCpiTp&5A33xN5MJ|0*)e$=r8g8~CZ7sVYU8zDAdOdskp zjNdSa)A_gYo3cDi4He@Y527RG_89 zqlUk>FWn)unbfxmH~}i-xG@tfj^ZFX0)753@ku`jAn|uq-3S6=p%2! z1zcbE$iN_=;Rg>MO+T7`^6bUJI_}5v#>U1j;jQ;U0NRhB32X{d^nR3#OedgcIWEY~ z;ok0hncwan)+iiAt{b>>kOB|z4+#kljFfXh0M&&ksGLtCkRg=Tf+c(&@ChOhQ2Is2 zgapX~6XcnS!tUq14Efd}Nx$uY{rxv<(nGwU-Q~5Bpt?m;NsFMNU(W8VzFObedN%v& z#m0iLx~ABlXWwR9w)cL0b9H_F-PVg|`)~G+w%%_YZKAD&{T&3)dtqr?BH4cS+gn>3TW{AEHdi+{_YeI- z4)=E6EG;~pfAw^J{Ncl#yG|Z@eUyHuGTW(SzydDHu2t0}zAAyP)pD#TtE+3M zuVP7*?Fc5in~p zFXrZ6&M(2|o}Zn0v-oJ`)zXXCD{t3dt?USUuR(q}x@z4}Jz^=}&j>Z8j zrbbqRni|vvoTynX%%dVpu{t?6B{V2FGBZvR5M4f0I9tpt4wt57A(_#^^74-RDLeNA zBDa>8o0>cQ-yAGF8GIP|XsTwVs%L61K3$`TmA(x~jf_u^N{ub3psElPl-4j-(6B1J z9HTF(^dHT5=dD-@T7TI-wzKFTSHO5cbSj+&RaSUk2cf zn+Bm|H8eD`=-S=}+)nI^1M((3*r0(ft*&7l6tjhYm<<96P>1=#_DD&7X+d@tnBKA? z5@F?kT?sgVA;t<>nR6iuhXfj$h5iRKIUw398pU~&(rR8g@PazZG8{NHgo;XnbIlE&&x05k5p8b6cn;0QzHJ+LW(F2&1y{x8&W-@6^L;qvams8AI}I2 zVlkS(PH_P~L0&;Nr}KPF1CU&KWktp0qpE9aAvM?5H?{Y*bpRmfV@Y&qXcUrw;{-5) z0n%9b?lug4ii|b3F-IoHM#t=IhDWSzY@J#Aw6}Lay>Ojs$7Pkhrz00mu8xild_i|` zwP$hM#n#1%vI>qmtzKs<_5vJi?0oEHjtW(g#_+ajZL{g^J2fWtsCLt?Hd9j$*@?Dc zl}#+HmN%B=7B*0qZ*0iQE6%GeH>s$#XfD^F#7ygnW>(Zy)YfHZHCHw^*Vb1wSKl%= zGHR-AuBmLiRZ?qYRF|CwEz(&Y{dQcCRW+o4WaI@`64j`fa>^xIetjX9C; zv$gGa>VvawZP_~{NmByKM}6b#?SMt4Wl?c19TUp{y*a zYpg0PDX6I}E+{C;DJ%qCmRpdKR)htYR#1>niz=&_iJTmGuJP$u3LIUd6JwI%6Ica} z=PI4HMQTh+3hcF%)D%@hfe6Jy24MiDBtfIj%Fkt6R4B?$O3%$LDaq55X*Msd$r zLtwU}x1+Ix2OYJ~-l1OcI;KnA*WRN6OwixjGiE*3(LL1PRwvZ8@X%HlRnY~?;jgGF z%w`NV9pfQ6F*K4hURW5Pr2*Vq2l&d}xS9|2_YBVH8BeW~Qxu4Z^^0{2yyxi^pH(P% zJm#Z#IrKu^+3Ges`(mnnGV=;?!&BkCBa2idX9NfM1V_-+mU+lyvt`lk zLRFg89a9UFyx?7#&$7>WQ+|F=myKtLSoal=gMMWNX4v7l7Ja(cT$C-eiM(ag3yRhjtXZAM@6dwDl`f>oR)uBSWE;Y>X&)+v9Ar{S*L{BCyJ1-NfsiXjLjJn0!AyAfWB=zMA z8Z`q(mb-o_Y%NZ|RKf#g!GZE%mb&p4!lS|j@whm5acRlQ=c00J(cshJ` zTI;l%1JG%=QrRiKsQt1(2gSc=J0>Ra5w@hyv=-m*XbcqQhfJ?~`o5P~SbWl=NGEAw62@Bz|83@r$tO)RE36D_t2ZJ<-4p;a`fbQdwoERM*3PnAR3RxUi zE3ql$Gx;=0=MDf}pOF$t<~)vXJn8W%x%%0OT(~4eMnX9Vi;{a-#_`+fA~V@i{Jk2=l}38Kl?A^|N8Xgm2<+E7k~ZPf1moVPk;5nZ+>z1nEQNxC>+WB0;5pp zL4hhIEt;6H;3&QTDnbK+69$GxMFa~X3KADLlERIUd+8bT8s{Ux3{)KUHz$ae|a5j z_4exK#`d$Wc)ZN7W=dTDv?`Rv@YxhGGaJbnE1h4A*l@bv84t#@l1Lv0HS zv~@OCMg0Wbd3aOex4Zawg(=Rt#U;8!tE)@v)O=uP2M7miPanR#Kl$?hSW|gH;`)Yc zLy&Fyuh7WZ3y`qSBR{|$l5Xz?90VR5_`l;X9-EXMsl+l4$D>usk`q+)^FnC!$z;3I zwb#op7ZzT=cr!Wq=;6rysi#bD4vmjY+@Hh_nS44iJ~G@+2B@pEcc`bOySuxyb+EUu zsk@m zI9%f$vgecbtJe_mYA>$L zE$522Hd~dGk(!;Jol~4sk&q-j-iQfLRY^0viv6R4B(L7SP0CaHPrqGUkj+UV!Z&tb zJ|1}*9OfyhtKEDS2lP_m?&SI)AT`s^XMQ0jI?35VkcDPE=pF489*#ZPd|Z;B=h@r( zY`{;E9Fdn?oSdAWks6mz>;t4!X<|+xCP{I1Blr6Cnnrpv%?%CZaYcDGkaFu z<*<%e3;z~9?!J(Cx7dMuav+P1-jp8?g zsF=+mqIea>oGh!^@u(^&VAG_gvP~^+BMl4<_rl8?86$$&R#PwH$D6vE1Tl1<#}qvm ztogZF7!>8j*?HieiVF(ivE|aaXs9i3XliL{Bff}AZffgiP-(=FDSJWqQQc$wLT17u;%6SCt!T>dZ{M%BD z-*0DY?dcQX?!+ao8?ZSiYu|f5A|TY-TClMlvf&G{rj=?|cX*y8 zllWkllw^vrvF!ZfTr@^*c1BTtK}x_>$v5{v3i3Sd^u%xnMOGfm;_}<6lhy19UDk#1!Y+!tk)J4HdR$umz36YbTuI9qe|*~ z+nX9SYFb`R?Fbl6XD5J!*0!Ox79yKHQ&T-dwi82RLibQtYkhTtx~aUZs3@}p*jRpf zCTl)f8A;syXJm!PDx%_}BNBq7iU6WDaz$jQ%0JAbqszmUtLA)po~y5y)6}!kdx1`N z!>=E8J9V;G|8{@6ziq%LCcq~rd;VdVk}GQB7wqKAac;?#l%L2M?}RYV1OVJk`uz?Flv%w6BF^-qQRh%>Vb#`#w|V`Hzqlm9!_dh ztcuZ{*mwdG(b3^ii8OCw4&_*-zAC7yRF^Rli!+$$zh?ik#-e(TnCgIh=z z1D^Zl?JGBK8B#L2aa|v426)=F%ldjo*Y&Pk7oPxTAeH|$yyIbQe~Ql>yU*O6&!0U< zRp#`!+BVwGd=^oM`MsUjS$F5tr!H9Dv9^{ue*GnkXRb>u%+LDRIh^&9IoohVyaR*& zuB(kHbs4@O0eQxxHG`7KuFdV+cLX=e9A=CT+c_CrHos$Q>*Zj7{)-D*r!Snh@z6T$ zWQCh-Zeu}5P`rAuqmkp|cj5dOXQdt%cN}dk9qw9~T)TcbEI~K^l3w!FI6YLWzOE`Y z>uLtJm0nufm5i&I8CO*LdOA05nqI$hNmuup{$-sjI)>MHw?Grn74$Br=t2f(<0vLF zS%Fl<=!m5M!UrHEEEFo4GEy0$2=-HOrjQ1Tz-Ru4SPauRzC4l6jodE?Ftn%ao_m0R zKj3{291;VRQp5>I7Y?Z$&#-LR%AxPf2}A;23Aq!<9w_}9l8C{AA~;a$!%h57TQVnST9ipCgI?qn$wvq1>*sZ@}!%Df7Pk4ffa0(iiyVGzhA3T)PZ zP{}=UE8fco6(g~8#c$)_Z)s*}VPz98#@#X2?ef72J zciR8`&p$t*_4RMh{rK;H^Z_41Ev=vb`0sxG{n;DmPk(gw^Pm0rZ~yMUe)N-{{^P%W zfAQ4G-~9MTKmOGx7c8zD8wgxf+1h+@{`5co=9|0L-(0+IU}Z}7k(tk1cW;~Au)b?) zXJTzDdMK`-&OCuc)9~>1@^mtFvIm9c;{lOOOmcF{m-ycxui`3B&B_~DcM)v?e}`u@$a#6aI1>lsme)MK5R-&A(cIz5IH0ap&#U+s*Br&A0o|19o>dr95hb!X!$$ z{QY|z4hsH$dvY*@2hxK>>`dl8gMxzgHa6cHWV`IgAiyTAv>rtSoGHcfQ$`$YuzQ1qAMI z&h4+RJYG85Tv%P+mkA5=uUDVXudgj_uDzZGW3aKbDLGhp`DXs*iO+7)1yq5}JN8CF@*)`;vECf^fKcw79Xf{CN85gC}E8M#mmJnz%ncF*0`l;lx5|LzMxsp6wu-8dDx8LD>uN|L zaSctIpq@%abv+p~4GkMjTU}i(MGt_!O-*<>0>q-uZcTTarm>G2L{B?l=aI1o!|ZWR zOie!S?;vP4FbcVBwEsRr1yyywe-Pt^$>Fmt(i)V|^XUX!-Je`02a^~5KSrFRWE9=|K3&P^k+r2e%elv4V zryf6kcpt!YYj;N%A+2V0H)cm$Cz61Pz;Y5#dBp`~xuv<;g?S0dsoAN?0m0i{`}2M* zkp&%AB){E!B|FN0wzIRk)K^$IFu$E46m&1X6J$@GD_CW$=#w1m2Qb87t>SBP(H56Hz>cI8R zjqPoHcrcBu#CEkc38{H$`E-dhbKzm-<>sUlo-5(to|VJ;CqQXlVyRlgvJ#IO)Ndaj zoSydKfgzFV%bsW7!1(ZRzl|eTNv@VI4jkIYM<%U?tZhd4?ruG9J3ej?G0o1(kuTNO zd`;%&k}u%y>_;$%QawWVk91p2Sdpr;WXH$BUl{-uflz`aSIO2+oSE!Ktor)}%kj=}7K%En0p+R7 z>PS_p#h_J5Srv;$pvK6&QJJA@RZ^6ZTbP-ZhbLK(m6elLqT)>`%m;Ork&y}WpEWw;hZ}ZFNlvg)V}9IfePT**PU;d2G$%$mCG1NYBY>)8uEB zG&NQz)-1M!uTgz|Ipy{}$qz3b|D*M20< zucfKRyh|wW)YLTe7ORR{du2ANj+Jd+$IfPV-^iVr7FFZGWTNC=Ww)=SzkGOQddbZ@ zHdA1((;>;pRpu`B4p9brc>Bi@z6p@~z_}GD)N%vPKnU(eJfWWyHg0$)@+e}?Mjqgo zq{_=h6ciMbrb^GrNXtotGN!`!N={6VO-zYSiI0r}6%FHu8FYWx}-+K3Wy_RMyxA2?pUj!YM?q}z2MD&%TmQfByl{9 zWqbs_0HL(#Xv7AR2@i&z4tpb1bs{2TVxo9dq+}+iqIv7%PIgIkeZU30hUVe zVb+gpSgwybi!m1$$N^f;iX@?MEEq;{!W0o83?f(+O^lCCNlZ#WI;Wt`5T*3kusmZ`6ESx;Y=?#)%*Yd6TDk*B(L^Cr}Qt5`8; z0O8ur8`rN~yLrvT=<4MgS8rZ3piIwL&NTqhC>cFn{fjzgrZ58?JlwTB?*0D6U7fpv zyOW*!&1>$y=g&ExJ9Ga0c^^kBPkWo&HtqmPY`i|!vc7BW>c|<=$ph*-Pjj?!J$sKn z1XC;KcW)V++`4t+x)HQR3v+WyHO4kJb`E#UZ`#=y+`+cF>ul$CUdzSfoS5Cg__H#` zWOlIQui!%c!OPvr$0P8o3nJ>n-qKL#>NQ;*fHJx|y1KeoNlabUPtD?eE4J8DlM>St zbhC6W>+8cl)6+M(d&j`=+7$!+i&uEc6~vlenoe>O;kvlY7-(}Lk>MfXK@mZUun1*H zFgiLcG*~IaSPLW{CgVg!egzN4FA!HHh-8PK(i{016e#s2UB)3A)5XVIBDmtk_;L$O zPn+W@H5-3^5C}M7aBu;SCj%w)_&0zX`Lq7Xj*h=VDGf&QgerqYctCh`B-zA>un3^y zNg;B68G@eYuN50bu{1n1COCwKbO07mC}X2|byR!M!U6ut@p3;!d|YT;95X)5+Q!5s zMWf|oW0Rm|#8I?KN(OALQo;3$r!U3>C@niVQAkV#7OhHxmK_O1n%Nx%9axDJPl+LL z?|UdOpL?#}_gtK^$*z}gM-CZktTL+9irfNJG z(8T5fD@KpS(bCew+e_*vk+_NO7%hCkN9MuZ31tsoFAra_(|-?i84|-&@DktzphF<` zIXZ|h&)MGA(azc4!O>Q5c65c`jFfT5kl{y19%>BW@J*9HDsr)zzkzt>5S3z}4-$;E zoB*kB2VEL}QOX?4m*WVTs9wVVWUwfY2>|{G6VYM$Gogs5iy9`0U-R`C-~e$nWK5{f zpNrB2JBME$`5gH)|A1-shX8=5a-0wgrV}G0FUBvCDoTD802M%->pb{DqI5KMG6&b( z)(;e`y|KH0u)kw)xPvGXWTMHj;febbPhQT=JfEI>G536Wb$(`k@%7@Hwe7tf&enVH zFQ-kV%gYB%6oQ9pS*A94+?(gaCsgA}N=J#)t%b zKIvrP5+Nc|T&IZ=Kl8X>;*%tVYMNwQBHI@NLc-a>kt1NZLR1x1EUd}6WqaMax3Ktf z;ptFMPWAM{_PY&XxS?k1V0B?(Zu#BP?2DDXmxn96t81GQVgG3T$rAY_sw=P7HkOxO zEzCW6xU@Ju{q)J$(}z=Y^Rq8z1!88;=3Xwoe);_6%bC}(*l61vz?+UZdb_f+yZe@! z&GO3Y<=N$hg=fq2^UKd(&9Ou|(_WSg9Z@#DxGxJ>-^Xa;hT>rDNO~aid%y86AY}hg z@Y@ph5AmP;6@ke>4fz%X&29fsCRGMUQ~%)&JUGNET3_4Snt%0j;nkzZqZ1YVGu6;{4`}8Lw!qIV=ERxEuyBoqe)Y%q4i(aHq_G#2cWUB zr?;=Ae{gJcbh3A}e`t`u$k6amH>9$Wj^44}{=un%A>dTNiTZje%JlTN4|WfCwRQGP zw6!<4bTV+?KYIUR|M1xKbEM!)-kcY&o;{m>H2e6`$fKuo)3fU<)6eH$EiBGXzaX0T z^5rVNi~vw#ZE%-pK9l&q?h_<{m?bYN6TrRx7D>pg?oZX0yJ*(7r|$?loSQGJiMUHTXncZ|oGT-JRwpz12nz2zafHP*LB6qoJvTd>45sv&-QkWi{CA z@z60E_f7b{69^R#MF7`;rPV#PytR9CVP;~S0Zbp9EHK%lgS~G2u0bx!huj0WEROEM z5!h!inEMe}Z3M77o7y?miF5EBT>_>C)pO=<=&qnH`o&pz2m#LSezJZ&1McDRk)dJG zbo66}9Q~XX2OOvv3>GM8)UtcK2Uyn}=)tk!7&$yNG&(qpG!hFiVrZwg6IL30X7||S z?9BY~%-k3c0`O}-pxz#j8@VE|I%>7nTN^tX=|`AYaO`OA>K1ciZCF2j-OQ2gu~p;`(|{ctBr0ySZj#I-Cd|qo3Ysfr@F1VU1)Rli5aQRw#L?$mac)$p-ZId zoFkVn4MCoBGfIOY1|+Vlud}-qIXKYT+v^w^ZLKcM=Jqz$H4%)Bn_Z2UEhR~k*XA~2 zgK=@e`9)dE>biutBDf(zsU^nC6Zn3TniL-!w-SWsmY4|}X*ni7xIP~v%+4$a5RVh% zLyjIMU3;A_95t|agO2W@wjMs#ZCy61No{N_w%Ixe-{6^`F50ZXqngd_Jfg5A42A|v zWj$nGk$c5Xy^-Hxr4fRzsKpvMk~T0B$gfOxkW-|`SkkjYvtYwUU@Q~)*4b!jHq$@p zY^2{ZFyQRu&F^v0$?xM+fyZW3`#^hV7a|bx#A;{lEG)njnVjKwyetaO z5Rrp+(cM8z5y`~tW0j#1tEf>AU)W;QpY%Dj+;~+Msm1Si48@ex<|{QdN@bm1>`qlw zWu=XbHtXy2Trvtqh0o;g^Q1{Ny?3(QcKNHv?d{nW{hOG8u`?+xw#5XMoP~voGF1_% zvg-0eE}QbHl;~_VurkFyerc(a&I)I=YMqIsodHT2q7eOOuB|rISLc^ontFz2hdNt9 zFo-EJ1980uoDrHOv{^twm~lR8$#`)pBQ;Z9!=`&VSJt}Xa;n`Vg0x!Q-&9s$yHskc z>vWYU6gn+BP-#rh@Cyqkwg!Wlolc|4Ko>!Lru6*{TI{E4Rn5P{qNx!Z3YDk_F&$P# zImXO24&DwbrcNCH)bckP;16K8H8YINdXC);<<8bH;0>=BFtenf?q6kMxjcg&z)nI^2~)(XBb2TYj!47ID0l4qS-mJW)bJ2 zqk%V{4h;(rGof$7A~^n^JmIO!XHTEMa4IqTH^2Xf-%BDg36;j(ID7WD|M9xmasKVa zKZe|p!%}7>Gxpk5S*9#ACQT}n{r%r&*}|hjFGid_drEBk zgqzJ_A*UkGg@i_$Ln0Vb4H4?0B%CY^l@d8+Hl|z$I+?>#S$Sc3elb8}bs@fpDnF0l z31t?}R)mp=;bWk1$<5s_0!Epglc!7rR+XDA;05pzRYR*{_yu0GMpZ=io_WSR*mdX# zjiLaNFOFoC6{*F|JTmMWL{Wi)QNhxZ()_Y=(u_P>%d{0J=W=aDVG#mFU8E~4E&)cM zg{i@4s73=}tq5UL%A=*QihLKUmO>3;rl7dAR*x&#P+qKKz7t>2SXEV8Q-j*JT58}z z7|j610aWPgOa`4+ur}MR`i3eLc3E|$i3DW@Z#!``Kx_pW^_HX{j|KtDu>%aTo|0(3>|MR#1@psa{`T6IZ-$k9dAzYG5uH3kE zTB+Lelw)$OhxMpO~GE48WhD+|M2+2?9hxOj4eru-I72 zB+yCqMaaM*$rxBX+{^wt<6aIo|%ba*8CqIZ!eB!L||5Dypnt!o9 zbDX>unN90(uehsT&5if>AckK=C`lSh13$%UePww@qnFxpjAQY9Gl)&jY*qNvec zQB%mGt-QPlbzWIXwIA-eN(<4v&|F_mF9g-z>hRxsbNunallA*=70NGPK7ac1aqsBm zHcOV&Ctg3=d-m+v_PwXOhdVDHuk3w45)R*f{qS~ge|Mi?*TWavkDoqx{Pfkky=QNp z+mkjTTcygK4Vf zUhbP3dV4tlcnE0J{$IWjw)bCS*F3rZ@cu1M=^OXAZ{FRw&pH3$?ac*HVGDD9|1vJe z;`Eeffr(7t#PlRVzWFhq+c!43;PX!V-E_fW8aW4tos;fivB&Kkh1SY~qifhj8GGF4 z;clN}0|)6L^vc+vXV~c(ANP8_9J~dr6t32X#{4`A#^~LHAe+Ni;{`6wEw9Z5mVzs@ zt1HuMx0V*xC#C~IFjc|e(gIwESq5rW*OwSSpYl$55fu)PZ*6mH~yeyY=YK)-6Qhvzw3ZJ=)oQ`t13$?H5m9zI?U&ULel(_WP%oAKtxuwS&5O z^61XJ)%zQ)Hg0aN!=m*81(;>}W`aVGf8NU!B|UccVDDfTM@wr@XImGS<91W0y@zm1 zr^z(P!Ujbbqh-L|IOu3+fsB+ygQ2v_P^i%=>Z+kb8gb7~dwRNux*(7Z4UCKqIVRXLnHU-JPK*Okqh{>(xcy@;oE5j(-0NFj zzOyhxh;7U}K0qpu?M#nz#N`+nq#xeHo$^SZ!$A|d8=zB9Zx5UB{RG4Muu|H4#BIVB zff@-vQ1hmT?PSIsVS~C6Nd+TL$hYoxXP>(VwDxd6*2%DAU}&7WKKY?e4(0=WT^;bu z$eH!^bdI&-`wY|Y9(6iJ6~lvqzemYnaAd^o8h1=#drd8QSy7>R55t>9oRP7a5uwFG z28Y}ock)JCPg^_B4A?OFAUqjhXT1Z2fiUK1@A$_kC$MSchpRA;^(I|gU0#yJN+ze~ zp)GTRDgGl#U`S?eVR~U+vM32`NcdL27Pl;kTMNd@XvaD5?GA|a$42n6{q8Y2sCNM*5c@v-SKunHI< zh)t5ktT225)GaPXvbZ`uJ>&BVZo-8N(^#Iv4pc(FYiwY+kKs^<+cD7AJJiQp)Wl$= z9e$jtgLAvxPF=u;mZk=7Y3|_E$&|afq28o78jSVLJhF)q@f!vrU?_F75} zRy)8f(qc9}x8OGX3esKh%CJ&wc8h_Fbz~23AeaZ(dA&WYEy&%WPN)!lZ3BI6LoRf( zy|srwCBF!ztrhA7YdZtohDIZMH+B>tX2O8OIWR5)5{7#qlf%gK`X*+9Cif$W^katt;J?(<>S@_Y`VR* zt*OIG-Mz9-YbO81)_P%nWkpGaTx2#?6zJ$MS0GwcDz?Xz%7SW>hNBUE7gY{D^vrB| zQgWtL$f18!mdoi+ldq+*0!K(-Tui4cfv!YtrH;6>!Pwet(rH0{;j2~|NbJ~k`g)t8 z)?&2~1T$Hi=?HQ6ORvL(xM}R}c6GKvUFOrM&S*4pPBj~hd<5zm^tF`gYmC)oyJ~rj zD~WeiRuo~dQ#>i9BU2?Jm`eq5;T_mhc`0ImLOz1CwpIj>>8bQo5lAc5S2a}DQADD; zQip|7XW=7>pwU$|R58-djdd*zQ$j@+ElP_oZVU?%8{>6njfU%Rq>Hg0z*rqpwaMNE zD;m+oCw@zl#cH&+8vjb2mkl+7yX!n5OHN~-)I*V)R=7q3Y*$lQR92?e2^cnpDlwZz zMW#k{Fnc4&q_qp;2L`@cIV5*%Zb=<5+`-i`i(FUL*pT+0bFEMx~(rfY8Z~SuU(v7$T>Gi8O;xpL5 zOe7&g0w*E}r|(A&dsqM1)r~MTSP64-1D}5QftxroqA^ z!8e45MTJCIo5CWQ(+NHO6a5~MI2{%FlS!0xr^6ybL;0B0>G`MwoiiCK0k)Q-6vR?V zMUk#pQ^AQ{jfdL0Qz40 zm(HC{NdF}!?#k(qFofdy3qPGcAC5e}^z(JeCF%L=lFPqbiNAXJ@`bAxuf<%!`~T%S zu33Cqf|SPwh{Z_K6`FkJ(Fve( zN=M03$|uH^#SjcC0|O*0H7f;lavI`>o4S-l4573{8YvhliM$Ob80L5cF+U-BATD5{ zK4qfhhaotmG2l`U^3? zbs|6Va@`m#

oUf@PHdOgza+^@YjIUj<7(-pY^0y*NlCs*WH3l>E>hEE-OZ`=)&3 zlPeScz}W2UGMORZPfIH+8|zyO>$g@ZP_sO;aqH=uC(j=}efI?F)9Zted#_*Zzdro_ ziSfsy7q5l=gRda9C|rEQLzL%#`f~J*PZK$h^e-w{$QroyZ@#?C-#>U;od5X2%Y)}T&-R~v*gN>}cK^}4-JShcyRTk6 zfBN##_M4|qpKsrN@RTIiE#dBy1L4!o>z79_pUCg*e0=rd{j)c(jy~>xI(iAKc)#HJ z&bxxr{jcwLAKbgOv$Z_l-EGrr3qBX_?(Zw!^C|lEg`B&EZ}6Rq*aZ7lS|b!8uZq90 z-wFLpekgvnbMaO}ACYXDj(~3o<+EZze*EbxD>erQZ=Sssc6MJKynOzOb({OR3+!Uv zdU$^$NK|a$=AE_0!15wZ_POc6?A+{>+c)oSyZ$1}u$p@Q$7aZE4G z&*6qF(nDEaLWIsP(oGTDCUZejDH{*gRu&d+t_0ShK>2-R$N@HA76Y^MzR4MG&nG-V znlg*Qo58L1wOjY@z&G2t_2k*3=UZEkcOGuteemGc_VzaaJ-hc52M#g#;^9-_(aY`K z5AS!Mtvr9Q_i0ZY^?Y~}DYnH!Z)0(F1raPltpKY|@bVBjv$Lbayp5AkiTh!5d2oQZ zPG%;uxvjBIyhQG13d3e>F|%vIH`^d>RO9iv z1iQuD$kngif`Du4G`G?;=;nr6bO*3`+6TmE#1IP(%{XIGZtpz%Hk1B^r8$Cy{^iY; zb;;7|#I$67As8oJPL{>9^1^sFJneO=tWuidI0tJ$M5RdyiDFxY+b8jgC^0cDA(kjc zg-~CW!!2Yyg9?h=%8Yc*>M6;wd{>E;r6P5ZSB~D={%xh%`1t+?~tTRlGwgmPsx@f$Hq#MSAYmXKa&I`Y~o4cMHF;wd{CAV z&lN0Bl^7#g!*>kM&d*Pe&k7UMQwx*cNoIk>J=&q6{-Mzk21WQ7V^dqB_(~1%p6%j}z=?0mmmi*X7&CRs>GaNyIj|Xr zfgL)jIE_+t8uyO-{GJH`<9Bv>X?CJ#a&#^@cQOk*#I*`lq5gq(9@f1C%bri|J<1XyBQEjI3OjaBt}Gw(V}bEBo9igLe&YP<>I z##@d3)YynXmr(v|D$q25**bY+BN z@J`CA*!6=rR?VSKCzP`%$X#>=%Qk?I8<8pv9P%rxi~s`|#B4BDYMBG6(v#HE)#-RG z4b`BVDWfnqNYfs-gjRl)maP|_V|5J^f;-D%ySWPYF);8=!3tucd zt;7PGsnD1k8_1uC2NCfQQY2SsIOqYu1t!IRMP;SsWEUVfl~hoSD6ckFA))}E@!m37 z8KE%|!Lc=kS(@q$;q>ey!Ym9l@d?Ix4~xaW?#qVW%kUocbx$4&uPd!?(WLcp6QKbD-B&Rp`pKtfm45 z(-s$2mgTF;DmdS3@IvU$Q<4{{RFHW%c@(hhP0<86lS+}LmZPKP8LBkMgNigc>~)L~ z0!8GC#A(aCd}d&1s8I9ArP$CfhKgKTOqHIOp;D-evx>@@<-^7!j0K>9 ztVdaSbv3l+@leV!Qdk(gGYcfQcAa_7-$gsfE)Eso5-=d^HtSFe1c#K(b;$ znYg*l1PV=yTTSspt>%E9o55%~A9DKbNCXI3N#G7*ub;n4DM@zi3Oinst1&S#SFQ-x zB(XnVzI64%^_XAIUSn45@--=%<%TTgnk4ReY|JIewHUrPrN*IT(-8yl3Ci3Ih{Ldm za{vgFj?2zSq%)6>NY2he+U3e~ayZy#aqEmS%9UNez-JJKV-Cl7OcIa=1gJ9DV?nfV z?#~dIp-fGZWn{@v%9*q?xoJz!km0^SSV>MzNJ^v=1+IabiVP}pYO?ehz_FxcUIrz5G1*1y1T!X;Cr+Wwk_J(N)K(7LF*%~WlKEHs z4$e+q7FH8}gc6)nE@yQOFlvR8-=**2I}sm$!JBj9a_~lqtCIykoRR`WNAF251z(jP zi}U_#@v1`nrzG!Rom5eTHpGayT3Pw0-_Yj$rD(XEXcvAIpH6%}bX)lOi2)dCX$qRE3Pa{tbYXK#1k?hD)7oBMmOpFex_2ILmVua64( zx4m!g?ta?arJnL;>7jSRJ7}}kS{sVK;g=})`E-Bt=ELWML!2;ZG3D|CRN0~GgZk@{ zprEL7TvT=_$O{X^C};lH@5*99Td4e6N%c^Eq$yFC9>IKuoBZ{|i#NN^Y3{#z`11b! z?MHWR-P+!~eP?Us!L9ZC>$ew|Zr);~n{o5SmGuCd2UF9FoQ)@@=DftN=4O^hCT4C@ zC2>P5t=){k>J$;VRfnG+$N8AqbJgzQ^ucWzr?io&(oXtjA0b%2iYAToKu%AYu z@OXu(@tH9Qak zVRZA(vxnOcUT!^p^6JH-N5aFcJ9l61@4g~3_h#q)v)AwTU)|ff_w*Kj@7BuZ;(Cxo z*Qjg8%YMi*Bvj|r(#AS!2`re~x4==^;q<}^9&z?SG9!G|4^ox=lh!VPyseF$Ci>A$ zdSk1JZg@*iJ3ayzyj=q{2RaD$bT{?%3O!sxQ$rsbag4HZIK)`WxM&%A{B*D;ee*N^ z1(y>~in!banKIY-qTkO3g@4jFHZw*yz+molPK>!m$jUiJM*0VxBO>v&XK1OsabS=my2ylgdgo$SN`A!g^dhn{qNqVnPbtR@6vVURpfDB}<)`o+C?>t}zG`my*hYU}Ahc ztYr49rEzl!K^df-b*zWwxi$ZEtZZ&hlANzIb&ro+bh+Km$^KzS|48S>^B1pPo}?!- z>=_s&;^-PBh}SW!t0=q(aMEJeI4WR=meYI)KqUq%~8i9wPk4$Ydi`~l@U+20Z+0vEsKWktpK8t9f%Eu$UKg2e znM*^Mwsb?8T&Dm~1+|P0w1{vbUdPG0u09M~#8Pjv=)>&nQr6odEeH==c;l(?C?IHd zf=ZF}<|CrR!t7C@(Wk;dU0I_VBM>VXBvDalji`u}=yMlNQ%s3Cd*$adKeGj6kBo|p zIDIDaO!O%fNx1k#VG;T$b0lVoJv20o`=*+ju<*LtKZc*bB1y^3{Ee8a7s$LMXT<&H zumA3Mzs>y}!JG7igscRRgmgrb(!`=jrYu=1OG=ED#l}eERTA*UWN1>;F;=oNQ?W0J z`*UZVk@nl)Dl=8-DH_`6l$0f@moDG9c=r71pU;LF!_CI%u;X^Y$PvA! zOsfa_%V>33X=yb!S(&B^3!<=s(k&T7Mpi(5mEvA#6qMr;6(lfV_1 zl)C`+R9Qq`g-99FM5i;2ikZ`r$^uAn>T*bTRHEwi4VKy}P~BRwAjPAY29;5uxofJgsjCK*3`P&Q zaXl!LT9eIU)RpV>lSJ5>Z!N`cq zE4UnRyOMZaQZYZMtE6Wp3KvT~9WbBP8gGZ(~yWol{?`7lPP(vq@KXo;yjqIo$q z=ugPTh!fJ&NEe=-c%LdSQxvDFd=*PSN`)p*Rq*FZf=lu|r5k-hHyv{XjUooKPX7O= zBE85P)`%dmToXU5I{DcTkwFCP#2yhV^~Ed){TF$H2m7Q>Y~KH>P4aO`{`(WvbMjj! zUJEY(u^67J;DW227z- zmJxgWR-#7Z;n|h(aFl;K_yV(T{~IZ?!$QsH?}R8J_YH0aSJ(Fs4nMy;{0i@)BwzmN z1MbSfoA>O%ynDNI@Nxg;_S+*0Cm#GiG?|r`We(%Mz2iuQc z3a{_KesuTwqg!{M-QV8c+5+u+pUn>LrwL1~E^lt$T-yrF&W?* zG53f-F30QgE%+wJ8RM9o>5nNwdnO>Nh3oICpyNrKz_c86B zdoNx+*naxt>D!&Bdpl2s*RLowJ%7G)XY2U~#&lSw{0Mpa)sqJ=Z{K?O;PHdy!1~ta z;@z#A0b+R19#2o1Yt!>H)8LgB7XqODxUCRaNN8*6Yp2-U?rEprEN05Onn8tiwst!D#7LNfmp4A_ zAK_knY=WuNQ5QpC0y>+(C&WMp?Z!Kmb$PD-AHH!U$SAlq1*3$h|3TTBQrEE7zK zzroc{48gW!{#=rAV?H64nob<~Wo~a5*QQs77X4nLbfXi3f5h(|_KglYy>R&kXpeOR z=I-bk_)&Jj)9D++OW?@N94P$hX7Si=YhmL9s3&78HkR9}$#DU~t;aOs9$f@{nN3En zC8*yV9>KN!~bs|@+ zJ=CWL2pSGjKItZ3IE2RU;{nov;nvsQ-mB^mU`Lp`S}gk3R-7tJb8D*!E0anU0;jDR z-)~@ieq_+g<;ZBa4@NW@)JfO$3Vrn4BuBB2iyMW28z; zWS>KRZAl5pCMxmOWw<6fG0b073XWBanIiUwIiOaT0#(AK(2+jF$w8rDg#h%TVXUpG zuf)BmD#C^-tnCqrUic(5i;XpPze8>5%PF1If(PTwr-e6w$#)T>(g5xCe*-0 zFt>^yU}tZ$=*6{wg6<;9h%?8h9%Y7-eB#zBt&-!HioQvalJhFNn&jm0q{=z3)>PE% zbY*4q0(c#@m6V*xgBf@TTEp!87iMV=4{tQrS{O|XjkeN*k3MB-h&&w?5fVlt1@{2` z5oSAe8f$?``AcWcUXD7CnSxy+Tt0K@LP+TOa~CgOxX5OS{ZwT1DIj1`;o(1rpM{5I ziAEEI@jRjvk&3(w88D6u=$v%9`k(&&?|=XM-=t%4 zrqjLng8=+UMoK@PtMd4SWKNPPFq$L@aapNJX`foHm4t zatXSoK+a(h5kZ_BElQ#*E0-fGLWZyhRU;8#RG?8S<$sG_Q40m-VoHiURw=C)##IV= zv{op1)M|B_d<~yYL=8*I5Y{DBVbrXylu*AhRWd+n*YrBsSaWx3fi=B|auo&`mrt zQ8zrR)U=G0c!W=Ess=Sf-isHWk)4+DyOiYQ3=rK^>QOhm2CTP;z6uF1R7-XiuOe?7 zLJLa+MVnt%BsMT0Ch&n3cmSviyt)7FuQm#zLUp1a#5h*PuUevkAH|=S=KXgkX3Gzc zMARQ_q~yc)`ZHmIKQ0oP!Y2|%D^k1QbmjePetjZ+#J`IP!(yeVg9`qIF46t4P{t=F zH+@r69xr#|9DT_V1*Yf5{A2F9`Avd8t7}0Hq_^%r0w9a=u=Q%^`GXfPACi6A-#Mg; z@#b((q539#mCKJlzZ1UGWaj}`c!b86Yw#XL_0LzgFOa+BoaHr|G6frmN_hoe`i|A= zvXWAv(o|D;bW~Ku$f`NG=q)AQ1;tKXB*3)MwV3yBjz7PBzxRPU8OlYj`0{ag@8JID*Z3-r1K#m@A|8zu1;{E^u;gD9?^NH_ zMTK>Sw_jep&Bv@c`ndN-@vTt)T`80we<@cKRjU*qKPit@a%>aTr^8R*4qmbwNhyu! zr}$++P<)pkKr#CwyjLk+9lR6aR8OAlKYjh?$>XQOy}R4DKwI70di-{Ab>r6h63vYD zn~Q6h7hB7W*(?WEmlwVMnW?GymH9c}B;)n-)H!A+0Vp9vCVcR?nCEc0hK4!c0F^;S-VGl!m!u9FflXeB(XBT$W6FE z=$~C$3@$K?vA8_XRLWvN)Fu34W%c&@0%ecYdF+(Md9cHq3;s#3XKI?=NsjQov8m-5 zz)&Q~7qDG;O7Ftb^7!KB+Rc@%b!c1^l%74hcW(<}xQCbZ{LQxJgzs-_dh&; zx%2Mb?(26S4h|0AKRDQb|LJi5(UVtiUcY|+=+W(4w}3|9-+J_nS(XP6w{LIVT$~+W zoSB@S7-z&(Y|Fdp8HlAC&lo56LC+A3tq~^>US>4_{PGXi(oV5rLkVY?tlRJ)Hp!@S zMi?FQ&W(+ZOuIn|jgN4uotd5Nb4(8Ty_3$dp4l_>O^Yw!$4O);l~RP*}XK?`{Fp+Qo_-jMK|d(>3NE7B9btpfM26 zf&5GTXE``M4RR?qZcVZ(m9lv+Sxb?^=8`2W$0x*cPZclC;AQ&zbp97Kt7`1Cx zKoxlT3DcdULz8aaHzQZbi3#JEFY~G6bhk23($>=1K>xU)Qlm~mc|cT=N|vRwajU%Q zIe9ay{@M7AiP`1lnd#VIf@C!|CT(pcO`1&XBM_iS6C=a(Sqdzz&G{t3)i@U8q~aZ2 z!VT%FWHv?;SdN*GlTL~`O(KG0vt!74&$uu=JjNCdcrnjx8_S_AmJIR$7C)%%L*1zA zE^MC;Kyr=tww_iL7*>U-AHXa%L*?REbP4ztPE#AEu-S;8&|qt$ihx$Lh>c~Qq){xK z*f?~H*{&+HjaBXjd%d}x;)%IYFg9Acn%njDIC-Kc($YH6(gyzxcdxSt&q>Vtp}3&| z;H$U>p_jGycQEJ!NxQX`R+b2qu!(brhI+_UW@1mZ<~kU@?7!D&#iJj3M8|Pm z1Wi#I(bpm&42D{h-DK3a2w(zQO|VdnXdJUaZv$i2SXFDQ2Af;gP{Cvq$L>~ZeP;)* zO{=Z7t-htT85$Z3B#pF47(2<86^jz332YXghM}BedtH^G5^Z4;+v=R-bkypxP&nIb zX~4rmqFho@3iyb@%QB%-fuvR~#Z+9u@qMM$#6Vrgh;ZlZnF z(%uW4jh>a+*3#N!=Xk0pBWj+*i~=xGCY+Uob+`@9Ehu2Hrks)qq^JrlIkKucL=-+s zC0H@Uk+IflH`McJ3Xiab+QY*DcoA|6hhPfEVN z{^BWWDPiaA*juL12BZEAp2knL=GumkkkHd%QK5CAf5gx@i*1rBqcZ(_6$dQU@BbkG zjXYBj&t!T3{&x_Maw)RsP!Pya5r0X~{{4UW13~*g{2sp~D=!}S5mzHuFJF~GoV|z^ zA*>b=5@HH9hzPRCb3fPNRYusWh*0Y5!b}k%mavf1R?C^tXt-h~Q@B-JxW_l4Ghxt$ zh^3oQ3MUZ&%R)k}p{Nw2DWpC;OoUglD^jVeuO#YJS%sg5h%OaJ<_##q@*=#y0(w$( zKl00|abO(4^@SNrp9C@%u^gpbLm;bwY(2rEJc=i@nnh$6t-#c-rjP-H0ca{gbs3*GykaUvHm^NBbOF~$nIX^t&lU$mvWaEEh)$CwF(s0cO1LT|fzy6M zN*dTVF)YO-qsYIaC!WXFh*Ch!Dd}y%;9?;$1FQgYFDW@E34(B1Ry@agP-x2BG_@)x zlk>V#ok6xPJ00~RmuC?OOHR6a1_*IZrUD>v7LElkF_DeNB(VgNCR!bA-7_QxRe_9i zVk+E5f?fD1GBN|n*n2_>%7yPc@d=b##B>*qjx3e$iKvb2?4%Ux@X1&*WX2FD$?3^i zBK3!CBH2B|GF&v`Jaj@ z$GO!%WD9rE)3g5R1vf)=vkP!isXMcW0ih{C$sjPdx_SHN=ItkU@85s&c<05l7xx}K zdbYy=`P=uLDnIVOdHL$y*Ds$xfB2%1e>o^Re#3G7__IRwRZv!G_=-ooi+=nUCL84+ z6~zU`u(>FEl@(~gGgKE>l<9?fI*HiZ6*b3d9UVbXhT1|kOnkPbxC9{aNZ7HW#AImX z8uPdyUkT;=DF6HCFI*SGvOyu70Fa*NT}IT2jDxk2J9 zxUu*8+xE+ymoJ~JtZcn_5Pb9C;r!N|*)6!c`kgZ~rL0ZLxo=Y_NDshaCUPpFt>zZv9LHr_6l){LqWJ|9DEW7&^b0z#wS?ngKO)-Kp7mT z0Y3t%%i;74Ifi<~gPD^`{3wyIu_=yho+&SfqJdGS&--1@fe{BP!#g@OEqG{mk572V z{Yw*p6?ks56sG5w0&9y)OTH;;N^4t7!G&e0Vk>Kb&5bosLu*UH%{AKb%gCH5`Yn^r zNqVjR85*uL3zOV|X?Y>>cl$!pDMYh-wj{m@o-ke3-9!f_ab5$wd&>49@Z6uh^$ z!v@W^89Hk>>kJ~EsFyiKAYMJq&CptbdWmI!j;B;A2D%5jI$Z?&p-(xw`iDna9Io!B zrokR@L4~&QU<<_;C||vOJO$&9-5o%S3A}X-W8(mW?H=l-m(XM$vI7!n8KWoc$#uZ`~!K&>ov!`qwM+nd|rHTB@A5Rs#)KkP*l zdbtPpP2%KvCx9@aO=&Wb{PQoYt*!(EL8&A-pSV6PSzB3Ok)mW`A%4;=Oo@+Klmvq~ zDvQ$O1gJYf?s`&X;x$ngqgLcv$<$rq;I=F$Ko5(JiI=QSFH=O1O-#YHNspJx5@YDnuPx69mxy(wCS%!a>Y4x- zA=zzBBaW#~@g3A-vk?Gf+p)90-I!Y=ROXkIH<)ENaBcWLB9SD`OC+mn3Dfa0n!2iN z@3JgzZe?DRm6;X0JTl@LB=R*Kzbe5gNtVPUO4ee7G0Q}}WWk_B5?l_(r7R{b24a~{ zSp+?tuo5#Pxe=2D1b`=5hQBrAGII>XQ^oKO)O8)>{ZcK6zvf&4aMs<2ew z+rwxOE+O-pUA+i%SlH05d%Lahy&SxnJ-s9sn|Z#pSzD;f(D`X;?Q8_JWisiT+F7P# zpprCZD>&pKTJC6Hc1CB>z6?1z$M`bjar(x`z5HVZslorkMfPitQ7dU^lf}>nUzDnrd6DRy|&oq1IZ}W@0O!O%cCxmNUe zwDm?)joDU%uhP^#JWTM*F5;nEdMU>9p%V}+WYy)W?33|7&SaW=;vn3#7s6>0Q$yty zWo1NuDl2h`pcvx^os?71&4j+t4?JHwZcICd*^H+eNr74IaINg2VYExgJHZ<^h1r|1 zR7~KAqZtv20x=wZ7M|DnsMFCGgbU$keu@S@eBKs*?(|u<9{Df)6b8y^yqVB5krAh& zS%AF!^Dk#3qwPqaQxOr&kif$FDLmAwx73G)ghfXG6dH0SJTyG=Cw^sas52S=_*2NK zh@a1#xhP2@`=2eO$rAIj^Aj2Tric=soSVT(F(oEldOAk9cK*_3Sz_pa4hj1s22V&x zRNYS@7IS1x#7|cfV$W5Yv2CozU(PaUX<=luw7wy%Ho_Vj5*ixC-wm;bTSClXEY-s^ z3t=uLEZTUAO~;V1`udQNkVsQVO$e_Frjjib0Tf1Bv)07^DjHf#TM4pTxxl%Ira1%J zr8owK1r=x$Mtg)}1#Sh6lmbi?1^R+@8wRPfxy1*>1JkxJCzI1Pas+3EZbV*|8gC3R zQ(jJ<8fzsJv64?$J0B`B(R<_!)FJ+At|CK_XR(yS8Xq|pRc?`hErGX^&jmA7V+D(k zq$S}YR1!r~iKJ;=O{un|tg4)cSP3!4vQoL0G$3|L2_SBI#PGW^*$5RME&z~Mffizf!N++Q5wAuzE!l$;P0Q49`uyVY3c3G)dAuUpP!I^AaBJIRF zdlJ9F#xMgXvb?lBMV83gRr9Xm{g#=`ZGR4jc?J;kvKX5I3n65sQ0z%lWagx&&N6+1f;TQZI}xB5W($7~Sqtwi_7aA9N)9!!F`JGENhINgjgmtd z1+IMtzF%Ybek z7X32%E1*l1AEKASlVHXakO$+b3-kUB|K}g^e?R{0Pe0|?jIZ$91;08hCqkv2$D}A& zc78~exfx2>vr}Xrh~+bEF*QSyW^QGAW@UP5eQ|YdJ+QdC6}-E;_4xkQt7qHKAMQNa zes%Qu@XgClPxn6@e}sAU{NV8I%Oh3c*Zf04#kwNFsKO5dmqb-{rJT`K-;ci@eN+~F z|E^Zla9yL-l$KfQ3|4a$54w7xy5c(nKy~HC)#^e`v9_WhUj)m+B`#AHs7vUtXmpw) zRma^quc1J##e8Pg3tX6Rq@p)g@Ig4v|EyNM&$pEFNvL>*N-UuGRaB(q6QQu&U??r9 zlYgyxzxQT)M_pr}1fwWaSSw$B{QUWw_S;vb4y#hr*mSJS|6F+dNh5s!F3!*wAASMd zRn^q;RrP)k)g>Ihdsk9?cw8?(JSvl0%7}6bN5Y=K7Y>DjPg`x#r;lIcpASiy9Sffe zRG)Tfkd=JrYl!mwN0q!#p?P1f_?EAFFPDGbezW_OO^_GcPabb=-@E;2Q@FW$^ZDl8 z+glIs-CJJU*jiiN+@vA0NndDsVHv+;dV-vzl)Hvbt2i&8R z;}fIaK^M#NRO4Z!I{QSp@Yn>TE~v6Dr`zfB5`P(Tj*N^Cu#)0(F);2Lrr83LYGh1U zSfRgNV^1Qyt!cWz;BEfAPr7@uEY)MYcc61?^J{`P~Nd-w0(+`Y^?HL^3M4Evs2!QMgKV4gL7k({bOTO^xd6K zx7+I)pGJdC@h8)m1f;qqJqte94ECa9!Z)=nOihdpPA$3ptipKbY1)hofJddM?^s;+ z`gz|E&5pZ0Ya2cW-6uyq13o8OX52C3#+7l5QXm=X>vEOkTRLI`HK&A9EiwB*ULVOQLQLeLbQo4JG z2SDj!i_xhc?BX0tsUEmje{Y|&dtkVW>HwLn{(c$-gQ9mc+SkdU(bGNDPTH)CXV>qf zO%JDKlRB9uW+V&<}6M2v(b6Zby zOOMFJqL%>Q8Jt+J!{c%=D?Wkl9h(d+E&3;x$L9kZOa4H>H%|e2IW}=Mei0=yvotS> zPh6B>rxWJIP>EY#UtL*>m94MGOLMVZ(q$jP-EOgXPi(8-mVElUTs-X=*cy zVJJhBnZ*NELur$AwUcb@=(KjCxLO=kt8hcTqthr3jNnn%91T2c^*C9rpFR*fxdnz_#fi@2MsP6R*0( z*3m5PeYBaIs(HsC)Hp*o5PNU#VK&|jaM!@32@=oLA<{N%_Bxxbv0K1;sBaa0~bMGPfMQmJk-|OdInF3ht*fY@2U~|^SCJF`|Gr|x=M2mvPfqp z&8B6D1&0P`u?TjvQc|ih0!v0{7_I$&$3RyLj%r&|*9p<9#mo!}ks)>x2w=)N3@h0E z1ISdQR26gWSU|_0RCZaRwy2yIjDb}aUa`tr6mea(wW@(fpuudZA%|FF2|s0vG>1jn z3}#~}*{4tjAAi1hMg(yYGqhn*G&MzrU5E^eI2|5+>eBfOSFWBv_sfL~!r9Zt=+luj z>Cchrie%z30?1e7xw9a>7^*)@y&jDcCe6=E`8hJ;+^KU!sZO|9#HhkTBaNZf2y=Lt zKKycYXhcY8Rd`q^<$RvO8Mf{tqc5DpmHB7=8Mf8St3x89LZbfoQ^X%HMS*HF8lxLb zp=Tq6u<$FF&7tAO$OdENPd0LEq2?&q(GAu!S1udF>J7F~S||->!fZ{Kzy+TUxl9v2 zGNb_!!l+4DX!P0WGp9^OODH!3m~=mxD5cc$D)K(yl`){DFl+Q@LM;&yhR{%(R$oW$ zh>w1yt_aJms#qx2l<14fp?6gBVSQctmZgIXShJ4B0X8mY!BWF6OU9?N{hsw0Yk2>zy>TM7*kbN3=NsJ zNsJt%laejFY#7K2qyoTQ0%;jamW8y%02u_(#2U4ZR(vJ*2vt~zRTUNbs!C&>wxQZ& z6if|u5bL;4(Ay3AdMjV!418&8vPZW<>;$36WsJTG$ahs)X(jKb%Iezkx?)`+W&RT$ zGeek271Wyu56~zmxo4@f6)F74cnNj`(j!}5h|89hEht%86kWC)!fLAQ+&tMG5;XPsmBZNXgJJ=8;9bFkP0FLdq*AU6q|9=EX8$ zW#Qobd@eo(jl;Y=|I19HGLps=B*3`rcw$}&DK{vl#HWhgC~EYH{Fju3J0fP#lGBA` z=2nP)vFeDYl1dy5EEmMD6mckpmm!YRr)MN(WaQAH;lQ|ZWL@)l)g35?T&^AhKnQ?qi^;>I{~6v~1|4igU2_+0LvpU4O? z_(ktT)GEIgP-;*pP=-+;qIfwG9-^sIErz?)Cx1;eND2sr{Yi)XP&oYI{~$giQN4&i z{tzqTPkt0$ibaPd7k}knojgyZi&$4t@N!PJCB>&a(Jh^nXGHz-@`rw5fMeb_zd5@A z2y$V@PqA^1@(L%x*^OI^%L|L^t82Gz0wNCHzW?C%qlb^-`##y(JN)$a{kxqv?{_~O zygYjQ{^%X#tD_I!i{!809eg=FW*+5(wxqa%Zc1TM!C|4|=;M3gtK!plT>*j)j}SMs zuDYtmqSpzu)VWU3D&>{}kQ4d3GAb(HE7Zl+`9&CthP`2z#-&H>H$+R}I5Swi76 z_d7<8#%2@>-+nuKMnt!~f{&u=W2ta_R8jb0_q!mx{rH(rz_$kq#r~TYH7)O#_xR9K zo;UJo{8dv|aLh$W$+yq6y^cPA{iOK*P5Fhcib{SgKROl;HEP8N#o_k5qB@~aS%Q*1 zJ`#jaZ}wh3-+lV{+4HqK+xKqWxx0B!xW|!v^TC~mfxBDtXaxpR=IFQ2P;OuFZcLAl z&yEFVCZ_!pv$I67W*}|ho{W1rJ3F8cgV7mavvC9u0egThG~8kL(BSxR-{{!t*a)}l zv|Btr55*N4s~%=ATpqE}!e8q5LC|%3riArX|I7@jK*k}LAksQ!XPBQ4%uUR&l@g=} zd~=-+&DzS^@`5<$xOMN|`f6bH)}0Mr$KcvhVA}2SVN;ARtt=2T_fL4HF*Qc9UVL-2 zz^v!y=jLZ-=sJ*4UuE6?=ADi8+xIqaZD70rUEW-|C)|C0`@!99Y?Qrc&mpcoezm=` z|L*CNdk?pnk$L@g@A>Zjo7X$9_QW-u7aO;3-Md9!|IWtd+S<&**6ocALTi(g-uZ<9 z8Isw_Ip|iS#D6Bn$KC%gQ}6ZFX1;J~u3mF7t8Zqy*WCB&e_{TCnd@17aSVuPyV7^& ze8(Vx$QfRtoR9z!1qdNBB8eOY0tAvknPeQwEX$k(R##WncJ_Qb+sjMd#qIg+P2bWC=G2Z);1#!EDetd)x4c{7 zjlj;1H^it&7AS9qmF^WT)bWA9Hmb} zA9>6(?Pl_VR25bV<_9zMwCN{iMh8cR$K5nmCk?C16qXR5}(#j;|7m)@w>X{s+ zQQ)Q{KRE?tfn(?F45ria3|sb|<+)JonKHTNC+rs3^sO%Xc1axy&M`XHW1eC6(14Tv z$~Y^Q^bQ93XLbQIh}u4AF)~X$f50;UcUS=-w|5u`92`)9**!eiiL(Y9lorRLhl!%R zogh9(QdW?Ez=UpPB{xgOh2dgZ*QmqwCRnBP*mgq7grF{{aE2-4g#IbcU=o?6ad z^#v6r1!b~$MSgJ&tG%SnWHMa*{Gvjtv$-XO@{)Kyf8FQGiW9WfixDfblHx;oVVO)` zB&G9C5=(X`pOhLhrA3p++ahX;sm ziu1$KL>MBoES?J$K$?_B5;W>%(tYXSTA-*dw@_L_fhQ5p%?tbYx3~OW>St3_&gL;c zmjrmj3wWSw<4bd+o(Z}l(<2n!MJ&Xq(=*t|cDP%#Gy1{(GD$K>?u!$7KWFDoGGhI> z1GH4=rSuV2;?}>ro8wcLtEa>1S^x&t4sSVFvULf#d4!0dUs?7J0Cv-$fsP&@&>sP$1L>2B>m$xY}KP{hci| zLtIV)N`Z4=U}}gDj>9p|AZC9r96^VBhA!90kbSIwpl57sup3bMP(K9KX2@JUb|P_3 zXL}ni18t$su4bjQ!NR36p&#(7O$5@Iif=}$v|yWXQQg?w#!--Rzu9VO;oxQi0oEk` znC|+2WnBW_#n#fwZF@^cr>RZVnrCHL9uzC2;bxG;bWnhRwOV?o#kPGL^Yfjpmevk* zN?Vf!4bw!Azp>TU+G%OG0g-AZItJ{OTkKZyG;JMy?U*+9R`O@V| z4i26!0L0yCSuTq9S!onfU3~*&!W?Wf;+dppWo0?CS#0kiMAql}DuZ4+*2&FpZhigL zSGWJ|>l`8FZ`tV?H*cn;{o}f?ax**qrljwdB=hTxtgOszWWenl79KNlZl&EIIF^k} z%F0Yl%XVf;GP9`PqlJ11FkQZ#(c?%^?Q<$Kb*9wW+Xb~)W=0}K7shiBiO}NX|E3qh426jv9 zOjsw>lo2H~X8A@49id5QUJ1dyT2-%ZKrD#$Bm5Ui72NIP3n=SqHA0PA(*Y+;ql0n8 z|6MBhth|fVTsjNv`2o|SEN);IL5qK3Fd7+(WY4Y<{85cqw5N)!21I6Q2I% z3B#JB&DP#-u^?wD+-n*c{3K&k%Tq>ZFk1{7MGb5)hF64I5ez_r%*+{%=Mj(qbQl|z z@E~j^g9S-Mn3CLMi&fVuv~*)G@(I)mnRuwzM#Qt*>0)9CM^UWjv!#NZ?6#wl;Z7JR z)9|sgS&ZyYDj*;;E7^djRLfio0evp|YZ}^v_4LhB0|EkrbA|WvQy_(IpgpYRJ6-b8e{Miv=))`U)=C6?J?qB58&w z0{l#Vj3gE`F49=V|DJINE3X{q0|CQWF-+i65#1o(dKE$%CTNfkF{X$HW+{ZZ(gKtQ zx`sz95eSfh2;;@YERa=H7Ot;Gpmtm2e@@ zEWA1lyHfNJFM&B$QU>Z6l_Sp76KBBvsV`@CHS-nE{{~+&p7U161R)VG$>h}Pd zsraV(B3=w)T&|tFH~62>)Tu3 zzBX2efyqP!k_Oyz5Mu2rF^GgFTUYYg}I?Ok;2r%^A!}AijP<751;?ks`x8V z-`v<@G@9C|f!b_>qov)Zy=vl9#$s(XX=%WKb|kokBSSV)+Xy9JLl;cX<8=UgF|xs> z=F{*(`$>)E*>Lgs^M%PM=rkWbG-wPBO@gLL2N&kg-#Wb$DwP_o!ZvaM8O|htqriSi0uVB)Sx&-Y9{*tg-D70wxFO465`~Any>dVV_e6oG~sIa`a zdiCzruMKa7Ki|J>`296|t_(O{DH}d%KAW||`_GC$)mDR2p?yng^u6Le@1NKWGilV8 zPglCnmzO5h6)XuxUEcrl$HSjq+-K{B!S*NjPmhnkzb`!e{vPH;ED0~`_~;~@JdHgF z95KF$J|Km&x4*Kx9opH#dfD^))^_&&L2y+IWS@{O2PC!V)UVF3F2gg9ZjuzErm?;R zvDia7Vs!;p)WR|_UngP$j4%M88+@J$6MSO-~Q&7;G0{fJL8+DNWVt2d~w6S z8$L+v5eAB$#SbF!)A&K`_%s@f?nDFegJ?o*twiI;STOtHy%74B{My#WK7g>jJwsx5a^c}&Z0w}e+wX?hB4+IaB$KjJi^61|AF@N}z_~VB^eE&eWn`AlVr=Onx z`23eA$M>E*`swwb&;NMw=;YBk#g_Yze*EDTo1MSBdi4DH^Jg#5et3C)_x#?&M|UGf z$0z$o$AHF?$^9VBoTKD%3`3F7nm^!U-*7v)weJfB4uVmCVCm4eec(?X`Zf<3It*;@ z_?7~jf%V?;G`775qiAhA5+w|G5DoCB4W7h9zrWf-%|K!$E9Ui4!{1zD zLt?|jfc6#zc!*u%UibLykkvBOIW*ycH|3dPV1jD>80Vdd!3of-lfx|Jjf{*F6dM^Q z*98ie_6zETeZ2``jC>c>c|c9P(bVwR1ij`3W6Z{*yI#03{jrBc{c86D3yD0W5l!LqJKXUJ=s_f z@^pcgu(ftT>P;BybB#Fq`RYJnVq|mtgvM>rbai67?6!g+h-qNsdOI~SKj@JWF3B&E@#{75ofC@Ur6 zTZwsITv7wmzY^kpWo@NA$=~-fR;}2AF3u+zR#cQHrx96PA~NjDuB-R5!ooVTyCqT( zW4IqNc@!Ilm6k*@URn$lCLER)6iX{|ae3rr(t|*)-6$=Pmjn-(OpxBmtrW@uct-cC z_xEzkilxK{WW~jK4b5FbQGr2~D?ecIq^yj0yg*AkHyi;M6?^LfmjtL15Np{{y|}oa~jo@PFzFB;Lr$e&hYfayqNa#Ec1->EX@KZ zUY;478H9dE1!n=m_4Evd9G=}H?g`?CE`ViYU9`1Ev16P=!#%DM{Jd^XvWp{Q!)}-k zqO-%MC_^;}Y+!dQfDn-53_WeE3xr;mS9f=qrVnh+F4NEt#&;t-8w=dScvl#U+#ttH zx^aDHXJ^Ylzu~8#%%y>t%w7_N^oo~+|AQF1`g2C>_CpR+2{q( z%5Q45lNP%!?y%L;+%A&Q7|mz*~xGHi2qkH=Uz)9M*OA``?#dH*{atvE`tXH97m-y0fqufV)9MdxGV%uXt;vACDBob3# z*_kZUXJ%!6{q=X>-MaPd&982zyKZJ@rsW7ZUx7K!lH3wk>v?;=&(64c8`~u(Jp)v5 z#y6B*vQuf!Q0aGM^rlPFG9}^=PTb)ib*5wkD!WZ2Ei>giX<sX7r}r=#lhfk%#L~>jKXVAFLH6)y+SMtFLZ- zlTF*cyFZh^WV5b!R#JL9``UXg?H!i37Ay?pCg~9zx@K_$TT5iDNdOD1<|elZ8g~O7 z5|-rvVpXY77(}25dT>Y0)Ptg$?haC>R?s(8shRLoaAN0mp%>NEsWDd+_0=52#Xb!2 zvU<*^3bt};1x2Z{p{j;}7$@@vas7`y7Nbh5ttM5bQdjF6!NoD8gPB9WsRf|5nF5vB zN{`BDwY9+yQ&|nz9#%$QpaL{E8Z}hz4My@t;=8A-0+ghs>_W4qmIrLmpeB?y;9;M$Xv#N4p2RJAik?18=c0-Q(c$ zrq3o4CAu41dsqxd`8Sj9u_%ogoHWVEt8ppLNU8XTgYAlR;~N4Un^C9H3(9g0#UG`f zy;w~ZN(JAAQ4wVo^YU6PV~26qP=^3odmDCMOErLu3nE&3;m#YOqonoCIYeb59U4y82 zX?caIu3Q@?{8tnzs=xALyo#6=o4M93BHmc6<(v3MNs8}99a0B8OiYrA)p{O6Ez-um zh#Fp?5i2p*KNpKFwDHBCiLb|Z|C(PB9iRVv{XpU`tNw#*v41gMw%2{jYg=rYZ*2tE zf`?%myJUs-Vxj0!f)i`t_~h;()F+mxqp|Pf=jTsh)|C=`1?4&f;pPh1R4seiT0ev<+q;7iv8@Po+}R zp=;G%e$exDWbLZ~GWlmd#Whgx8Wo5j-N4FHTY~{3ln2n_<#1P_GBlVP8G6-zYWVm; z_f{d?x7&o*N@b&h-&o&Z(C{38_sbt28w}5XQ7T{3*U>^2xYGQo!$Q}5((oF1>MEU8 zePJ;)3vDLlo3~VJ_!DdY(1Jee1EKLr)7GqOH!H7xCpxGHaEwLt;Uk3&T0xIapT2tZ z!;jCNzIg)7`1tXukVt+XfBf{|=`#6h#vbE^jT3wo1TOd6S25D_^0h$5fD4@#gdWa!C{=S zm7RDb68#~vdy+g1v5RsT*$=VEC{8E@*SA7D!QIuJt@XLhP5;Iwl4Wbxhx@X>xx4LM z3+%(Ci^ZbMS^8rKd%>f_~KR~_?A^(^|7<(#_l9=ne4ERAtOzcFl3L%K-(Oi;^DIm(vF?Z}kS`4U z@d`9bxNmnOSO9(@P3hmWV6j3*Oau(fxaZtdcj(G{W|uw7o+-L5W6hjIN*iWH65|c)lpC=Xu%A|;4HDzHrkYk~&L@uoS3M+Z9Xq$-ifC6bjBrg({@8=2&^%Zw^WwNqdYLQeW zVHQgdw-2JylC2$?)W^FlkI53pg`pyuOe&9nX)egi&0`o$7A-5Rx>Hjk+uP4&Lrzv8 z56Sa@M*@5a7gSf0g_9gshmxJ`pH?h@JL1@80U_)}|M?Z+5}6F(*t-txm0P zjG+W3k*kwaOIzNlIl4|RsJ#rPwS>vXz=Vb>VygMO8J zynn0{h!`m{2VJL$*?C4p=dcn7J@eD^6M&9KCkJP-3B6N8i}a_&DHc@o*eFF4r)#{= zO#}TH=AG9MfP{tB#pSsfreS!ZPotwe^X^%(Q|6vw zjELA9Egkphu!EUbvh=-O;}{KtJ`z>y)+a9K~qlrN`* z#xxYMxkXfo1yzHAY&Rs^76Sk@3?}@hwk}C8T<0DHvE6QS_S;BKWes#lz#K~?cCuC? z);Lpg`?kbE94s3HCXF@-vLZbvGdt^M#@B?$GH#|zQiQCmjI^&a*?dgnwRkg0R!%0l zuhdKmGMSk-GjcL={&}0CKk>2NR5S!G2Hg=NTVfAB{p<9vGx~coQu$dELM6R?rWesF zm5N%d7GS%e3F_f@ad9fJ%!1Ft1SG{m+yba!^=J&L^f0%01(xd7Ml%A%#5T9m0C7y< zI=9}WSDSc3p{LN=Y7}>~(bPo7O-0AW+-Xt~+R`_f4MxaJFvnCX?(>;r;ZRqH_fkP0 z=ekJ)KNk8cC^1YRgC1{$zCY?5Pe!9_(nF_cr}!c?HFk71ws)h$U3>;un_D|5s5!dm z^0&4cn;axGL3;C2O8TVB+QeKYdY@7dkbowwUW--4^HgKj=y~=UftTrxdUi1pc{J^H zVj-klP4Q7tRadL3pwm&WSJW1^;xqD51N)3GBj3D(J@-SCx8<_%dLWYfw6LW8`1bX8gYB6|vcm>r+xg5)JiJUJDHk0vV5m zvs8ijf-OhH4q1jOs|J!&w~VRLbgedciipzT+FsFpY3Hw_N!rjTqT@39Wme^1(xVX> z^Ixwe2yb$&Sw!(6GKcPAO!EXYQAPIINwwi(!&QUCGo5?fhCv*Y6j#m7sH&d_RY*0-5-0?%We(1PrS z(Wf*SHI%gUjJC9^8dObcjio_!Lai!|NoBC3Q_P@)F;379TCGwr*sSU%6-_QvvxRi6 zSw}cb&*!AltT%KiEM}hHO`TTf#$+FC6N9P6EOG!%>OUG@EB|P=D=uNlYd>8X{@{~b zbNNYkb;+fXik8ZSw)OJ$JEcjbd3;H~O?6?w0#Utc5PrV+ta$OupE{lRXHs2Q-zeG1 zQnM&egj8|y$D0ot;g@#?gH3CG|NfF{%O|z+-FrUG)!ck2go~>`|9ti9??2vu`Qx(( zFYZ2oV{rHTle0(EF@!krs3Kiu;lhNy>c1$|sJLOb1} zQ@*wAh5od|Ksf?sbCvGt`r7=ukH-1(yjZ|rp@6@#;`NFn^c$;-o;4hn?G-f4{Nn7Q z*9#!kvq%(uP2`Gsz1-ifQo#;w`mt(`0zU6N(J?Y-2fO}*<5=<}Lb~TL$t2`SBzm+T z0bd+AK8}ZQQI3K!5SM&yJ7p-~aLX%b#CAet7rZz4Hf&(}yQVNAbIdiTJ~_vq0!H3GFNl^Y|!|4AS#Y z_@QEPg7KeFa1I_HEQJ@Bg9p*mmAx(BW?(zCbtqDN18YLizZ=-y46a6EC&$6V;PFQE z(D(d2L1c$j5)7-I<=_S%IvUX;-GDUz_WJg&XKi(E)WPtHs1(@7!_63;>}xUi(4L<{ zQgDMjJ}}{OdE5h{VKO3ir*TnWhPsC*-JF^rF^LHoWCT5e@!47T?38DeeR@VyrfKLe zaveNAHA(i2^cjgWitj6woyW;|Ef5YHo1FC0sHb1R|IMkDMUf^pHaRdv2YSpiiq;W@ z(8LVKvS|Rs%X71=`?-Omt#JJiiiUg)(yy)icGtI;yqimCk}ewe!_NLe4v}M+CZog5 z(T^@N>cI{>)P}j072bn|$q5mKw&-2(1=hA!H+Dn5-6NhMyFrj0JK_DXOl+(~=)lSH zlX7sr@??R$rZ^9^5DF(mawH%v>i5wk@J1GL`8D~SJdAFkQig;mh0IkV&n+k@q@z;H zlw?JIL3v&Q4^)ndkrfN&CB%FV?cGEO_p*eos2ug=bMgD@#f&n+)6 zOs|X%&!JVv-HTInM}`rBEDq9)=3vd@Zzm0VI^|A#UkB_@mN=ZK6IKXGFm)0I z!&&LPCK$W8YwYXq?;mu!V28E$Aq|EdKzciw$8fpGEpda=X-C))+39!m(7We3;~E_v z7+GMMzLQ5C7y-OJGDXpT5$N6Ifygxz%OgHgL-g24MlS&n&FZdpy%i<1^E1ix@Vr z0GQBplgym-jL^549Ud8*<^Vo03sr1ncD!@EqYKGB*F8*SewZ*6B5WADN8nSIQrD>6 z4R#sdXQp?2q;G3siVy#YV~~qomwl8Ev6E&@8%4~HPOJjg09U^4jT(@_whkMqtv32A zre;k|xdvTfLs`I4vg(@+`nDzmRq95wNi5To46`&h!A!zsK|g?Z@txsux?5_EsxT5y%aWu}P*y9hhmT)&VfYc2?r5s5dCZ);*LdhW*F{ zz`C(0l{zD?4p-E$ahe(}dY#5Zh`X(^m3NAH8s3p1lyYY;8!y0U9g+cYJd>@?^z?qZ zB;_m^(H`kRdQ5U7>vm4sEuvZJxH6giBf`kYU*U$}x7@gy zm5$}|Rn|B1e}0#pLrq4^rAaa}C0%LlY3(`RK>Etako3B;?P)@4dS7pbvoAHBx0Pf# zGQR0+Bixpn-ZX$mLZLp5t@-w}ls1a>1VMPWGj2%I967D1ri^qXAE@S3zUxU(X|>bB zkz|p|>~W;p)6?vXu%yBekff!uRo}}pPb>4INJ{`j-1rk?!jGWofrDZu3Zh^co&&s9 zXE0Fg<={aQon;IydW4A&ZoTPx1E*2d*MPMmvqY>1NkSy4p6L}*Pz_Y>36Ll#h~txp z$SxI^vO+ZpG6E;OmbeP2R#%I(UIx{XF5r;)4<{m1BZn?zg3Z9JJUxA^4-=7lo>Fw} zF#%gzY^E08U7Z;fqGu)uT9VnSZPYayDZIc}QnB60e1#4?fWSMz4y6uL2c83r0ES}# zoMB>6p<&{Za#st>qoRp~#%*eDvk1_e$-^Ol+L612#oBCkN0+Ior5!DAZSOQgq3tq? zl(ELvCT<0KdRtNAEzLF~&qttTR<(gMrlmpM2(kd$fPo4YSKbiJ5f=JtK4L~rqzxub zxw5PRzr|e1DZED9H>A+fP_L-uh)%q&T3G>G&2ViAF-UJSU9VnN3D_?6mFk*usBE-W zYAeNnRUKKdqUxIR!aF3x#7+rbMR_5Z;yd4c4QGZNSRs4Id<`g(<#Fv+ObjevhJhkN zHL0`Y(>XzNkQ*y3Ld>8^FgwZ%@kMCd^8%2?Dn!Zu^g?*GYc#RgqZjqYmr9HH znxeGfoAxgUM*L|1HD8ap^{)oYf84C^`yx;x98)%-;6|7d_R=Z{1gNd-?#3A+Jc!+Y z@#5LjCl3?B!=1BaEO~x(!g=tVL*(<{I3_-Q_2&0CZ+`jt^)K(o>o>d-F4slRy6S^z7+R&+cLioC92Yc23*= z=$z@qhsnfAJoYdMcIzmDOSKOgEactbqHuT5$0<69v9*by*Z@Ygh>vHl#}o~LTR!O%G89=`t5!G{yJw#lIg4`pqU*8Tk2f^T(A z*bI0>(IAHbanECPbz^&v_|NX@QUC>U7>*ytlJV0>GJX;X`GcXr_F>E)3?3)qN0CTq zKTM(N$yvl7#D55c6X=tjJ<9DYC}2V?@2stCZ1|wwdbz0guI|lJ?GCI5gP|zQvxD=4 z17KUM;_aU$63@ctiPO8ur195B-=CeHg8qseKRmks^!ZOG-`{(9|K5Ygrw>k}chB#i zot&KCKYe(5{~qz1=WafxQ@pl;`yO=xKZpQM0puxVf{+Nq&`E z-Q~GepJ$z>{$g-tet&t|y-BHlX$*K1Bj?LAGxM`E(;R->pWZh+J(GwKQJ|2YVD)5z zBitxUDRbn$CXp`gk?AGIR>mf$IY^-=CWPr3Vql!@X831h)=kTWcKeK2$)B5=9b2FB z^1o(bc6M@O**i6hKq7fHGBh8>^#Y&rS+Zd?E`>t-u)m{1}aW_guH^`{AeUE9t-8m$_in0 zm6qj~*2s(UVRgx+u{<%^l_yOc2cV%)EUc)ZZg{5x^=SpJvwp`D$8k984dfi~w?H;n7+!xy+}x7{YHO?oT+ z-Tfnusi7{|$4<%wu$!o}bhmM{O)`m}FrY}!poah$)p)1ia`(Gu+}#7?UEL(md!0k0 zgB;s?yT_&`7bYe-?9)}Et+I$qheI+r>7i@2z=A5(s}Y{PbG~I7SVQBk@u|5HDjeLy z_jM1Cx`qaNhQV%$m}BPAokPx^(e|OCK{u^_(b*VtuZV8q-Y>Qgxq+U z7iN~{rlyxb6?n!y%*YH4VMl^ihCw_k_GTuh$z4(-8}>{L62El2JR>Y42^b^<9H-p_ zlMsJfXII=T#?Fp`N*+h}4M7j<;=|w3Gti3kb9Rn(w-0r-Se-5HU3QDOk%D(XO{7g6 zo3u6^C2Dju=wT)yP>g0BM>}ws97Q{6C|hte#Gl*jBG0(lhCm@N1L>%h$}n%k!QaBD ziVepDL#2^o2nxg6+uYYKV$Rx{$?nm}2dLCZ)7i$4DD$^kS33Gd5*S4SB4WgcP$qi3 z6k=Y@1j<^vkvAv^Qd#W`@llcQ9vNRAheO=soEXHG1EVHr>*{Klh^W%lsfc1Il`4Y& zbqx&$TGu*bGmV)x#y`mKSm7FrJC-JswS@=l?V$T?hv3i)MVkH&ofXdcsjmK>46nnEa|3+=)roaGX<}K_9ER`$?^%M^M znRq8zsS*io5J^|IBn3kvGc#3k^JYd0)syUhqo|U4Gv$^@82g4b7sg9+^Z));+O71g z85r zj;yqf8<{CNU!}td$m&hY%T2rv#l{+;p@#ZJ z4d^TWw=oe?OVxNPLt6jzO#BDb}X-O0nbTH zT@PoDl6#GY%U*mOMioWOv7w&H7okR5u2!oI_4sd%u#@#|27}6A0Q0J9X*6}~+lVPP z8Zx@tJNPW(zk1e4ZT23LU0}(ZS~?KmMm|5_)HSsQrt(BsJPE)6?si`Yr zl!G|G0rN+ptwHd$1H)RWAo5j6qzlV~ zsFnyPrn+BPQ&dx4g-9tYuB)hHN`)ppQ8PJgV{Db`vO)`KW@HPqk~}KpW@28@HW5DD z@6p-^ZCqASTSo1rj225pRaKQzX;GEe3pI6Go&{vugdlDEFN#7;ZD|oGoqrh~;*Tf%)jADKuLXO4i$@R;`??w6Yuh+f)`SnXsHsY&@ zRh04TO8sVCL+w@F>=&T|<$r&b?S*Y_-UD#KnCTAf5#bjH{lY(e|M=|5kBRX8$Wb&N zOC;ha$KP|={qV`pFJHZV{qDCvU;laW@mHu|ieKKpdHdc3%=gcCmuL#{en@4w(0x=k zX%qm3^+xJc4Pl=+j^-{G#Woc(a?Xk!SYfN2>WDEH?{yhRtS29U}!de_=LT8C6d8y?;&E~ z{an#5#3s4?qd{eFCqsGl?(*_?h{ghcPpkekS_ReB$In-aiw5o06>L6(?z8fp=8t#k z7c^N=Hk7a~KYdiaefr|{;|Fh^zPNnw)8jYK?may_IzGOaOq`yvvU2{D@BnM!9$~42 z#DPfc498Exkx2L;Anw3#iW7_89iN{K$L;kEuXmT9u}{df$dYe+bzx^|dkbN(MAU27 zy9OI{f=R=zWm>1iZ|2vRJruvagu1BFFHKA@tSteDnqOds#j`jME$VvpLGZBxzq{x6 z`xe~Gd-H*Pays4>-zHn}{#YWJjKq&mlEK(%@+cIIZu8`b#lzvmSumD3I*CSjriAaG zgxGEiY;EqwV$8g(?gVx=gWLPQP2Sa=wR!I@)AD=ly=}8v;@kBGws2bZ!V$VGq5Yj` zLWsr_C*jk`Q9O1J&+aG)9PRABC`6(skH3F%_x$eN-+noN^7Pq*yZ7Qz+V^M4`2G9m zr-{>(7f(f%cb<&XZ@GW>ULbKCy?b{5JRXV1&SDHV#K4k;k4}TpNaQ?}OaueRk?)Vg zrw5PDBhk>qMC=IbCkYlT6!6Ak?93d6?><;%C2^1X{o2~@{u*;G-i769;_%DvjrpyO z>FMCg#+-P-Tw3=`vLZ3*SzMbvqUJuzASXwo3EPFCqmA>ONOBsOm;gFEL(LvngV{P# zU3BaxnLHr7MTlmEOw828=(I2i&1;av{xrENCR>I{)G${*I*Ye5K8B-0c1-kZ#%4IY zvE#y(^0a4tVsUBSgE6+S1gv;&iVPW(8Iz;KV;uT`j&b4w=)_J7d42X~SQ?+3U7T21 zVLD~!B)+qCz*J~p7jWD9>W$@vF8}~!|v{3dVi5RW=fQ)U~z+p)|FA)wW3#Bp&hBV{jMNw&GK^|d1 zhIH#|D@u|HG)zHZSxHeTw?YEc#(bevRzkDzdakP=noMG$kon3DM|nMfV7cYh5Vqt6 z6~zbn)rA$f}7Yyt3kWUY@ilUc(?tF4g>KQ9dS%Aj``wghgCg9FE*6$c^Wf;-nvz79&k$ zarR>%Gbe(%()#K<`33QVL^32t(ePN(gQD`>{6sXC%#BLriC6(m$ikR3SP(kQ_l5Il z*YlgPAQ{aMu5a(JF9p2YiAAEc5UmzGjOXydef7sc>1#Z`nv)9()Xzr&H(&HRQ z9RLOEX?OK^4)k=x+HrQbu*3nonAJi@w}Zulu5RoWcmIgMTq>3Uzd7^oBOQD{%&{C^ zvTJn21B;F^n8mqqhJofOJq5!t@k?<;k^0-eYD?T|+Y-!ezZMvHQmd zab*VaaQZq#oLM)3V=`VGjE5mP;95X}7O~e0?mjfuwrdMY}k=( z@1Qo*-OfIEyS<5N8d8EYQvtPO-z8*04~y%q#Sf@ zT%_}bRo6mU!3ffrU304ST}|+i3EDV&oqUS9deO(}T~0{JSD&J&fpiEE%=^3f%nJkpx!`#B{$V^Rf^brGt z?3Hp8twO!yW@b041x}a*fr19gx!s#BzDZW*x3|)6eajH-cR7%bGjD%IGK_J_tlQsY z)Mbk;mdtDk;}b>MFokn6`(O%ZI=+&mQXaXH+DoMDc4it;v6LH`w=#Qr|0cQ7n}Pvz zt2+x!a;gME7*0rEzda@O>)SWdBn~^2g^V;i@+LE-I}@h|m(vB8IK9syA&ZvLM>7R_ zaVrLjM1@5ISv$R_rM+iDYR%~nSj z(29=cMx-20qt&EuCNv2O+}>_AaOVxLtkKLA2BCg+BLhbU(q_z=YB>t(n5^Nw)~c;a zl4VMxy4ggbpxHu624~Qqs;|~-$ja5|MV2q`kfj1P0UsXlVG2d1qN2XGOsFcMgi>2r zS5{wBQmm@1rTR`&atCT7V6iXZvIbXXJ_}R0?hk56x?%a+m}F0EUIa3JfKbDq8y0MNC7| zxuJlAl|i19O%82cO@kkipccnZ5E%Nu+VY~2(oolPZK!-1hP0qpCi(V--t{H0)rgC7 ztwu!m<;xPi_=e(xeMxwU=E+~wuWQw!p3`*fMMjLgd zCc)ZKw>QC%&^jQJGy(bp?ya<0O`jVz2IHW<#igO1e?=4CWKw;$=oMNrT?{xH z$Qp_!joAW_f}*_I_+AAiuS>5of5hGsG*G&(-d`xdF8^_%#fmZFetuHE`|~aLOP88= zD(kN=HBd5`ja9#U`C0X%;nkbZpM_U%-zwj!J_;Y{X8ry~@%iVc&!7MB^v6e!Up)Bn zhaVEp&LiiqqTfG@MIX>Md2lM+y&FAB9_~et65L0}f{|l?$QSS*ZihJ`BR#-nAsjcc zB3SG2`IdZ)!7uJEt#6RmSqEWlldJyzBkNt|EVrYbKc zB4+1iJaYCma#lq}4o=_VP zM8e6)u74vO3LR}l4};NIJg}dnp%D+B9mNt<5q1vucB8({-NhZ&6q%(4tIY7q>f!?4 z!yaw_fS>nu&lhIHe&2uS4@PLl>>VD$zNKk>$N(v_;WT`lL{yyMEgi>zq9u+`&X4at zh~0hq@cyHpetQ4%;ZKjgKR>r{&S zB5@MCi&+vnN^BqAe-sTI2ZAS|!(%Z^7v0~#>pue7oAf8cn>%a?Z3RTI8e=gq!D5hn z1!8sU`~HpfwYilw@8aajf_I65#)ZYrO%^3*I07v&#EnzIn*0n$qB+iQI4L5`%lfPS z=Vk|;^Qo~B*Dz(yZq_7G{g>-IVK{3dAv`$4$ zg|rxiS6OLcWf50V^1{68^5PgZkYb&@QY*tWkMqJ}dh6vyyqg91D6(Q|CIv#CjD%TU zaV)<;h62(u@l_}*ixkstFF4H2OCHAZ^5cnMG#@9Xh<;2&%GyqW6a?|1tlYm{kc-QM z$#Sq2lWj@2_gGok-QSlUcQL{ylar!M<=1Pk>S3vu@T3JeZf#!eBn;{4Ro9I4mMW$)4!7`53cycBqNBq6~+jCy8V<4fyPBXh%}b7N4HSvQ&-9$Fll z8*&fK40+s60Y_!ZIXcwOJgch@SvNJ<%O9YxcX)_mMLTt!t|oh@lVC|xCw~~^KucS9 zM<>iy8YP`}##G=4L*gQr#gIx%WvFDYMnk3xLNQfi8(*ea(`(08F=Igh_p&l=CyEr? zb%(ymY!f(b;igbSA>~EprNzei%WR=}f>z;i8JpBMcXeA^?RI+V6kF_gBE-OY$n4W4 zZf}S0)r5j*rjNoVI1I3ku5NL5uf3_M6+TlZEHYbfYj+O^zV^;u=fL1R1EGUGVz7F1!TmzDvzh|aWI+1|;g6fr)k@GjvS|R1dK4ki>o9XmP zFl%V0pmZ|n*;7@?k^CL_F&+CH3DV+rPNpLV^W`7uxBfvfKFh(|W@M&1b24tAJWw4h zJ|Z|UIbp`+lCG~~y!*pU!s$R!sEmf3Ouw*E4E8Jld7KIuNtKMMakfy`0&}gkRJ}lZ6 zJPeeRpfmwrML|_SK~=GrSl>|7psuc~V*Q;G4QFCJifWAlC5Ev9WzN)41035>hjB#b zrO{$))-yKL#DhXWYsFY>ZZ`q3v$nJuL|3r2v!f5Pv5ndKrgjUTQ3e&NgoT(U8o}lk z{K$5m@@>4wCcVgFLjUQk{IS#~W4(%inv#KXvs!J^=(!GWP*@uny$}ovgQgZc#Xw(% zN<4!r^+KHv$N%pJWwktUVv$G{bTWQMT12r3K{Xo zs=EJj{VU>+ua(WeRLa}B|ApY$Ro&EI9r-<)#0JGBTZtN@pu(c~tZq~rV8gad1*wht3(P&`#UGjm{uM63JWx7$-)K~5t=dbq z^`g1eaHTO^YHS9J@{>+~rTC~;UJ0Mne_D(N5}H?^m2W;`bH3NBeo-iXy}BUhr3SM6 z=Hlw&-KR@zC5#!R_9IJ@Z?7J|efj3a>qkGIzk2-e$;+1yemK7$zxyD0_x$16kB`pd z4^P9w$#Lk6sd%UDfK&>^{ozzoy=}z!9eskWl;avgfxiB-jxG=lA z>hZ0v?kvr(?yL#4>em)_$rG(?tn92)vsm`~fO=8RC-oPKMS_tKwoW8@@9ZEHhRqcT z?FETU1qg!0;Z{e0WyK=V-A&)l3RQ>Y{T)zVn_KI<8_RpNP{gTl@9xIJ%GS=FpFhFA zZ*M>9_rc!s?IH+vcMgO=>?9r!9UjF4XR*`u#91UB55$va58|gFyO1KHS~`2?_%RW~ zQ8_=2pWJZgB4HnkFd;A7g;)T)DD$9C*qkNR13R(!MT zbF-V9+ulVAA+zv;7iJb{{t(4yvClnA3TtL=Zg$!;Mg7A)H#k8dK#K@0gL5hyakBh4GtDaawA(Yu=n9$yVKVIz zg~;5(v?zp_&Y4^EOifI0xR)mS`R(0{;}c8d$fkx^HJ=!P1U2TF6a!(y)4lyetfH*1 zir}P0GM&quj_1k9_`LDRk&kQ}8<1Q3;l!@*{}ji+K_^c-`$?V6jt-5GFPa!|42}*` zxH+7MM7uCQHoo8)oj{Nwe>YWY!s@m61|V&7Z)YnQ*o2x84(0_>D6;(ck&LD~QbZ;N zOkA9oEXqyDi*xhid5o`=6^MT==SA}psFZ>uDStaBqj{X^>9LpQ7Zg!?$2{Tty|R)5 zybj31awG+*vAk0H?b6DkJix#C0u#jfmDuEEg&;a%&MWKK{;kh1mdfQ7xrMX=F;t2R z$}95o%J>=)7K@8gIjbr8@;r7Wi(*AgOvZw8DW&!(?`@GR9xf}+EhsOD<(EY&s^y7- z;#dLOEYh&NFp(E206H9&g;b#5WAiCFi8+U%Ik&Y+WDn}W>?i~+wCvO*{u-sC z*)hk&0Coy?#PBd%9F#QG^mPpO_6`#q8|5|o9rh8i^^NFpv_U#X zV8iqp9KAIdP2+x_Uri4FeW+4UUX-11cLB9h)XiM$`(`14@E?+oER{J{^BS%`7?Kax)r) zuLOo-eQ|kVeqwHBa$?b2u`$DtE&kyQPs+Jl+H-K+|U^sj-DQJ1rgU|Qek#7M`)P!BDh zzF`MiYmm`QabVNc#sWQ|wZ5*79x$maoV0efJ6H!3^+O{I?(Hq$Q?Wa2En=&r&1$GR z@|{+I*=PFOV%33x5vw5(E%gM73C$4mYNFT9%`}xt+9?<)qP%Ig=*YLUwITzUqUVOV zjRY66gxloy)@C5X;_qZfo!HxL%{E8V|FAb3nwmSBx|*81iT2z0N{EPP>>#-h(73Im zv6Z`cDk=<8prT0kb#=G&cXimiJNliFIoSIIzA)TB;+`IGkpkj=Uai!#asbAQ%|OnV z6o{3q*qcnfpp(&L8YoX17)oX?)A=*w({zbm9POM|%JRLvt%H5gic{^bGzJk}Lz2w& z%$wN~+>gxc?6iUG)cy?G9nQ3Dmjva&x_v6A_!PP)gNOtneSo@0A8g<(W>v(#32sC> zl;i9y`XQ<5)Zis)DZDf_8dDpQ|^x4%itPQh>i zO`MZ0wp%1QH`7wGB{yJi;ijYz#Y#y_zmcArk?F`_hsDvEPG=-l=*>XEr1kaYWZ};c z{mSmWc{{ydEXI7rs0-PyzSQ3IG)GELD#_x|%v0>BS=(srOj0APmGp3~fzjar03yo0Mj;!V1WX z%YT!aeta$6Wo~sr^Du@|-B3a4q?WXl*zc&WZ78j705YXgS5ZUwv$YL~F|;?G8KZ)zJzbPWpsiMu(n7!9%ssTKT2ZI3CcKa8 z0#hthQv+b;y|xZ7rLu+|fTl*Yi|7<{u}v|6NSTUeilC?WWFybvNo>SZ_cB8F#*%W{^frrytiPp6r!^A;3a9QH6l+L+L)Mi66zUGArYogRcafmMCP!vwgTuGJ$Nw* zsi5FkBDR4@D^ma|uBfD_UL#(V5gCxV>_}cO z#(-m{4N)sxx7O>ZRwxv~>qUA|IMks=#LN}~4E`BWGzDGQUf)Q_LkzZ zy~C`Bey!8KC3LB8P+$F~6fQo#|BcG}hYy#+dkQHRYNgUlKLx--u14aO$iP<$1VXl9jG&))_bgB4t`wncq`?|1Qz8dZb#QmKDU>0YJ0(m%QURs9Yx zR(bj9>K*USmHNFx^-=YkqEW4FxcZ>|^&=wf!u0z6Zx=tly-!%N%K1w|M@$|(nm*=PFkDeVJC(i^irL-G42l@k14eZh$ ztqM{#!GqK74IhMqWfln+*JvoLZZIyexgUbs#f0b9`t}+WE}Gp-G)#$xt!=N&05n~n zS!Y>=Z$6S<{0b}WYwG~1mgWe3@nxO+OETTdi^M0^7iWoV2~dtVcDIRyulTn%K?_r9 z*a@xR-R$fI<|#6G1L8U!gD-n=N;HXZDB?Rhxf?wo5JnO!8ViINyN?I)XtqN^s9o#Z zTk~K=cQ&^VcV?Do*6geiH)p((A(8;^GcW-9DoEpPpMTrG16%7*Tx{8oM1lv0k=^s; zK{Uda4=aKJM){(I4wDq>AKX77GZ#y+@RK;XmtZzMz851$cYJmhJ&OcSPuOe;?<1zp zqleLZyg@7wOD00Q{=;A-7&v_B5A9$;9w0c zw>!PDv$+)rtT7?DiKFG;T%b$4x;8t%icvwqWNB({a%^FMsL8|+F9A_dDG~eRQBlAu&yiJBQulL+&v|+S1&@glER>85x~{@B~)Oi!ZRdxv=Zs+VJs2 z4eW0FclQsY`*CL6^P~l_s4VX|FC32-$wZNmpEyd&aUiIkg=elER| z+!9h}I4lK4<&@p!)l#e=X(W^@y+gTPTIiSVz#~o+tta>L5B?3(E6C#MoNs<=fievTU5X+zQ%my; z8@PFtn5OXOsIYi=7Bd%Q_qYsJJUTa7FP(){q1Wz~>~=AAf;t8q2AkN!fcp3>?;O1H zlsh;NP69)ON1FDA=dlatmlrUF{Zo_hy%!f?e=osorpzMNU6Ao%nq0vd?+k>A(9#k~ zM?d;zW|q3w6yK+TDF}$mvp&`}17qGP(N76TYp5wYV>TzG2;Z`GCgf)ahJVH!ez(Ii zG43>tvrO+XjSUm8W76F^#&?BL3~?IRUa{In4OWBRM7_j3tRL((Xqhz`G@C4=0~|ul zBaSZ74dGzKv^Q5~YIRuyI9HSmC#*i=T!Xz*_lRbci9I$|MhVmRv06Xa%W04yaHL8f z>|!l@fFQqg^id4vA(PIGz5(VnXd1S3ne@7mksh;-^PAo}VkKne7#(IKh4u*1Fmn2= z*7w79rKLY;9M%mF=pDl&M(iLR4`i^L4a0{2FlwTdKWgI1;jwrKiCP^nmW7Qs0hhlG z^eQ**)Ub)H)3xs47M%lT8)rN2BMCDQThr2%?oo0Vcp28Ax~w&i_Tl}EP$&SjWFQM> zcbVJ_%Of+K&VoE|9znArrsh!}9;wZ{BH2{lu6oxE1z zXL(k1lAW;E6>OE{3#FDh{HBtqvJ1_o?4vEA9DbM_BGvmO~zkLbGfBUW4mlJ4D_UNRp_ zO*_R1VU2V{8ihTjP%^aG*)R6!J1Cm8wKvfzkZ76Uj;J(ZMx}#o6uQZ(jz$7q&25cL zJz}yn@w#%RL@0~2!fui`x60Xer&Zr9AYhm*j3>47P(ou_?YFD-rQfmb{Cdsv}JiB-&N-D}d9SZ6&9o>?=hhj-Tp)ek)M>QgJ z-2irEKXDl~>Ig-`cMT+P5@$FoxGQKI6`?Z;O)^B7Qro9dVzy{|v>n}=E&^cc{{FrJ z!ZAJKK3xM)K&94kv|~?`&mm{if#$B>4h7SY5P4gbgw`5K)-}qNSWxv+4ax<6GwP7y zJQ_x-Z*QP84>cdvLiUQn2+m3|N~4lidR+x=lBVi5{_?7<;qN;x+bW9xxum%0AO7*L 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 q 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