From 91db29402cb7cddc9f9b9cd829b5c72f34e76be6 Mon Sep 17 00:00:00 2001 From: bunker-admin Date: Tue, 31 Mar 2026 11:20:01 -0600 Subject: [PATCH] Add Gitea SSO, fix security audit findings, harden production defaults MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Gitea SSO: cookie-based single sign-on via nginx auth_request — sets cml_session cookie on login/refresh, validates via /api/auth/gitea-sso-validate, injects X-WEBAUTH-USER header for reverse proxy auth. Dedicated GITEA_SSO_SECRET and SERVICE_PASSWORD_SALT env vars isolate secret rotation. Security fixes from March 30 audit: IDOR on ticketed events (requireEventOwnership middleware), IDOR on action items (admin/assignee/creator check), path traversal on photos (resolve-based validation), CSV upload size limit (5MB), shared calendar email exposure removed. Gitea provisioner: auto-sync docs repo collaborator access based on role (CONTENT_ROLES get write, SUPER_ADMIN gets admin). Gitea client extended with collaborator management API methods. Production hardening: NODE_ENV defaults to production in docker-compose.prod.yml, Grafana anonymous auth disabled, install.sh branch ref updated to main. Admin UI: moved docs reset from toolbar to MkDocs Settings danger zone, improved collab Ctrl+S to explicitly save + cache-bust preview. MkDocs site rebuild with updated repo data, upgrade screenshots, and content. Bunker Admin --- .env.example | 8 + CLAUDE.md | 9 +- DEV_WORKFLOW.md | 2 +- README.md | 4 +- admin/package-lock.json | 225 +- admin/src/pages/DocsPage.tsx | 63 +- admin/src/pages/MkDocsSettingsPage.tsx | 43 + api/package-lock.json | 135 +- api/src/config/env.ts | 5 + api/src/modules/auth/auth.routes.ts | 59 + api/src/modules/auth/gitea-sso.routes.ts | 50 + .../calendar/shared-calendar.service.ts | 6 +- .../media/routes/photos-public.routes.ts | 25 +- .../modules/meetings/action-items.routes.ts | 22 +- .../sms/contacts/sms-contacts.routes.ts | 5 + .../ticketed-events-admin.routes.ts | 44 +- api/src/services/gitea.client.ts | 45 + .../user-provisioning/gitea.provisioner.ts | 61 +- .../rocketchat.provisioner.ts | 3 +- .../templates/docker-compose.yml.hbs | 6 + .../templates/nginx/conf.d/services.conf.hbs | 19 +- docker-compose.prod.yml | 14 +- .../2026/03/27/test-blog-post---version-3.png | Bin 0 -> 76305 bytes .../2026/03/27/test-blog-post---version-4.png | Bin 0 -> 75307 bytes .../2026/03/27/test-blog-post---version-5.png | Bin 0 -> 76001 bytes .../2026/03/27/test-blog-post---version-6.png | Bin 0 -> 76607 bytes .../2026/03/27/test-blog-post---version-7.png | Bin 0 -> 75290 bytes .../social/blog/2026/03/27/test-blog-post.png | Bin 0 -> 67665 bytes .../images/social/blog/category/testing.png | Bin 0 -> 64697 bytes .../assets/images/social/getting-started.png | Bin 0 -> 69915 bytes .../social/assets/images/social/test.png | Bin 63941 -> 62892 bytes mkdocs/.cache/plugin/social/manifest.json | 9 +- mkdocs/DOCS_NEXT_STEPS.md | 305 --- .../upgrade-01-system-tab-initial.png | Bin 0 -> 119161 bytes .../upgrade-02-update-available.png | Bin 0 -> 115192 bytes .../upgrade-03-confirm-dialog.png | Bin 0 -> 131160 bytes .../upgrade-04-success-result.png | Bin 0 -> 180714 bytes .../repo-data/admin-changemaker.lite.json | 4 +- .../repo-data/anthropics-claude-code.json | 10 +- .../assets/repo-data/coder-code-server.json | 10 +- .../repo-data/gethomepage-homepage.json | 10 +- .../docs/assets/repo-data/go-gitea-gitea.json | 10 +- .../docs/assets/repo-data/knadh-listmonk.json | 10 +- .../docs/assets/repo-data/lyqht-mini-qr.json | 10 +- mkdocs/docs/assets/repo-data/n8n-io-n8n.json | 10 +- .../docs/assets/repo-data/nocodb-nocodb.json | 10 +- .../docs/assets/repo-data/ollama-ollama.json | 10 +- .../repo-data/squidfunk-mkdocs-material.json | 10 +- .../blog/posts/2026-03-27-test-blog-post.md | 12 + .../posts/introducing-changemaker-lite-v2.md | 2 +- mkdocs/docs/docs/deployment/index.md | 2 +- mkdocs/docs/docs/getting-started/index.md | 3 +- .../docs/docs/getting-started/installation.md | 3 +- mkdocs/docs/docs/getting-started/upgrades.md | 19 + .../env_config_hook.cpython-311.pyc | Bin 7399 -> 7399 bytes .../repo_widget_hook.cpython-311.pyc | Bin 6976 -> 6976 bytes .../wikilinks_hook.cpython-311.pyc | Bin 8650 -> 8650 bytes mkdocs/docs/test-page.md | 6 + mkdocs/docs/test.md | 3 + mkdocs/mkdocs.yml.bak | 2 +- mkdocs/site/404.html | 2 + mkdocs/site/404/index.html | 6 +- .../upgrade-01-system-tab-initial.png | Bin 0 -> 119161 bytes .../upgrade-02-update-available.png | Bin 0 -> 115192 bytes .../upgrade-03-confirm-dialog.png | Bin 0 -> 131160 bytes .../upgrade-04-success-result.png | Bin 0 -> 180714 bytes .../2026/03/27/test-blog-post---version-7.png | Bin 0 -> 75290 bytes .../images/social/blog/category/testing.png | Bin 0 -> 64697 bytes mkdocs/site/assets/images/social/test.png | Bin 0 -> 62892 bytes mkdocs/site/assets/js/straw-poll-widget.js | 226 ++ .../repo-data/admin-changemaker.lite.json | 4 +- .../repo-data/anthropics-claude-code.json | 10 +- .../assets/repo-data/coder-code-server.json | 10 +- .../repo-data/gethomepage-homepage.json | 10 +- .../site/assets/repo-data/go-gitea-gitea.json | 10 +- .../site/assets/repo-data/knadh-listmonk.json | 10 +- .../site/assets/repo-data/lyqht-mini-qr.json | 10 +- mkdocs/site/assets/repo-data/n8n-io-n8n.json | 10 +- .../site/assets/repo-data/nocodb-nocodb.json | 10 +- .../site/assets/repo-data/ollama-ollama.json | 10 +- .../repo-data/squidfunk-mkdocs-material.json | 8 +- .../index.html | 36 +- .../27/test-blog-post---version-7/index.html | 1842 ++++++++++++++++ mkdocs/site/blog/archive/2026/index.html | 52 +- .../blog/category/announcements/index.html | 34 + mkdocs/site/blog/category/platform/index.html | 40 +- mkdocs/site/blog/category/testing/index.html | 1894 +++++++++++++++++ mkdocs/site/blog/index.html | 46 + mkdocs/site/comments/callback/index.html | 6 +- .../docs/admin/advocacy/campaigns/index.html | 6 +- .../admin/advocacy/email-queue/index.html | 6 +- mkdocs/site/docs/admin/advocacy/index.html | 6 +- .../admin/advocacy/representatives/index.html | 6 +- .../docs/admin/advocacy/responses/index.html | 6 +- .../broadcast/email-templates/index.html | 6 +- mkdocs/site/docs/admin/broadcast/index.html | 6 +- .../admin/broadcast/newsletter/index.html | 6 +- .../site/docs/admin/broadcast/sms/index.html | 6 +- mkdocs/site/docs/admin/dashboard/index.html | 6 +- mkdocs/site/docs/admin/index.html | 6 +- mkdocs/site/docs/admin/map/areas/index.html | 6 +- .../site/docs/admin/map/canvassing/index.html | 6 +- .../docs/admin/map/data-quality/index.html | 6 +- mkdocs/site/docs/admin/map/index.html | 6 +- .../site/docs/admin/map/locations/index.html | 6 +- .../site/docs/admin/map/settings/index.html | 6 +- mkdocs/site/docs/admin/map/shifts/index.html | 6 +- mkdocs/site/docs/admin/media/ads/index.html | 6 +- .../docs/admin/media/analytics/index.html | 6 +- .../site/docs/admin/media/curated/index.html | 6 +- mkdocs/site/docs/admin/media/index.html | 6 +- .../site/docs/admin/media/library/index.html | 6 +- .../docs/admin/media/moderation/index.html | 6 +- .../docs/admin/payments/donations/index.html | 6 +- mkdocs/site/docs/admin/payments/index.html | 6 +- .../site/docs/admin/payments/plans/index.html | 6 +- .../docs/admin/payments/products/index.html | 6 +- .../docs/admin/payments/settings/index.html | 6 +- .../site/docs/admin/people-access/index.html | 6 +- .../docs/admin/services/crowdsec/index.html | 6 +- mkdocs/site/docs/admin/services/index.html | 6 +- .../admin/services/integrations/index.html | 6 +- .../docs/admin/services/monitoring/index.html | 6 +- .../docs/admin/services/tunnel/index.html | 6 +- .../services/user-provisioning/index.html | 6 +- mkdocs/site/docs/admin/settings/index.html | 6 +- .../docs/admin/web/documentation/index.html | 6 +- .../site/docs/admin/web/homepage/index.html | 6 +- mkdocs/site/docs/admin/web/index.html | 6 +- .../docs/admin/web/landing-pages/index.html | 6 +- .../site/docs/admin/web/navigation/index.html | 6 +- mkdocs/site/docs/api/index.html | 6 +- mkdocs/site/docs/architecture/index.html | 6 +- mkdocs/site/docs/deployment/index.html | 8 +- .../getting-started/control-panel/index.html | 6 +- .../environment-variables/index.html | 65 +- .../docs/getting-started/features/index.html | 6 +- .../getting-started/first-steps/index.html | 6 +- mkdocs/site/docs/getting-started/index.html | 9 +- .../getting-started/installation/index.html | 9 +- .../docs/getting-started/services/index.html | 6 +- .../docs/getting-started/upgrades/index.html | 40 +- mkdocs/site/docs/index.html | 6 +- mkdocs/site/docs/phil/index.html | 6 +- mkdocs/site/docs/services/index.html | 6 +- mkdocs/site/docs/troubleshooting/index.html | 6 +- .../site/docs/user-guide/campaigns/index.html | 6 +- .../site/docs/user-guide/donations/index.html | 6 +- mkdocs/site/docs/user-guide/events/index.html | 6 +- .../site/docs/user-guide/gallery/index.html | 6 +- mkdocs/site/docs/user-guide/index.html | 6 +- mkdocs/site/docs/user-guide/map/index.html | 6 +- .../site/docs/user-guide/profile/index.html | 6 +- mkdocs/site/docs/user-guide/shifts/index.html | 6 +- mkdocs/site/docs/user-guide/shop/index.html | 6 +- .../docs/volunteer/achievements/index.html | 6 +- .../site/docs/volunteer/canvassing/index.html | 6 +- mkdocs/site/docs/volunteer/index.html | 6 +- mkdocs/site/docs/volunteer/shifts/index.html | 6 +- mkdocs/site/docs/volunteer/social/index.html | 6 +- .../env_config_hook.cpython-311.pyc | Bin 7399 -> 7399 bytes .../repo_widget_hook.cpython-311.pyc | Bin 6976 -> 6976 bytes .../wikilinks_hook.cpython-311.pyc | Bin 8650 -> 8650 bytes mkdocs/site/includes/abbreviations/index.html | 6 +- mkdocs/site/index.html | 970 ++++++++- mkdocs/site/lander/index.html | 970 ++++++++- mkdocs/site/main/index.html | 6 +- mkdocs/site/overrides/lander.html | 970 ++++++++- mkdocs/site/search/search_index.json | 2 +- mkdocs/site/sitemap.xml | 180 +- mkdocs/site/sitemap.xml.gz | Bin 832 -> 860 bytes mkdocs/site/test-page/index.html | 2 + mkdocs/site/test/index.html | 1590 ++++++++++++++ nginx/conf.d/services.conf.template | 33 + scripts/install.sh | 2 +- 175 files changed, 9683 insertions(+), 1184 deletions(-) create mode 100644 api/src/modules/auth/gitea-sso.routes.ts create mode 100644 mkdocs/.cache/plugin/social/assets/images/social/blog/2026/03/27/test-blog-post---version-3.png create mode 100644 mkdocs/.cache/plugin/social/assets/images/social/blog/2026/03/27/test-blog-post---version-4.png create mode 100644 mkdocs/.cache/plugin/social/assets/images/social/blog/2026/03/27/test-blog-post---version-5.png create mode 100644 mkdocs/.cache/plugin/social/assets/images/social/blog/2026/03/27/test-blog-post---version-6.png create mode 100644 mkdocs/.cache/plugin/social/assets/images/social/blog/2026/03/27/test-blog-post---version-7.png create mode 100644 mkdocs/.cache/plugin/social/assets/images/social/blog/2026/03/27/test-blog-post.png create mode 100644 mkdocs/.cache/plugin/social/assets/images/social/blog/category/testing.png create mode 100644 mkdocs/.cache/plugin/social/assets/images/social/getting-started.png delete mode 100644 mkdocs/DOCS_NEXT_STEPS.md create mode 100644 mkdocs/docs/assets/images/screenshots/getting-started/upgrade-01-system-tab-initial.png create mode 100644 mkdocs/docs/assets/images/screenshots/getting-started/upgrade-02-update-available.png create mode 100644 mkdocs/docs/assets/images/screenshots/getting-started/upgrade-03-confirm-dialog.png create mode 100644 mkdocs/docs/assets/images/screenshots/getting-started/upgrade-04-success-result.png create mode 100644 mkdocs/docs/blog/posts/2026-03-27-test-blog-post.md create mode 100644 mkdocs/docs/test.md create mode 100644 mkdocs/site/assets/images/screenshots/getting-started/upgrade-01-system-tab-initial.png create mode 100644 mkdocs/site/assets/images/screenshots/getting-started/upgrade-02-update-available.png create mode 100644 mkdocs/site/assets/images/screenshots/getting-started/upgrade-03-confirm-dialog.png create mode 100644 mkdocs/site/assets/images/screenshots/getting-started/upgrade-04-success-result.png create mode 100644 mkdocs/site/assets/images/social/blog/2026/03/27/test-blog-post---version-7.png create mode 100644 mkdocs/site/assets/images/social/blog/category/testing.png create mode 100644 mkdocs/site/assets/images/social/test.png create mode 100644 mkdocs/site/assets/js/straw-poll-widget.js create mode 100644 mkdocs/site/blog/2026/03/27/test-blog-post---version-7/index.html create mode 100644 mkdocs/site/blog/category/testing/index.html create mode 100644 mkdocs/site/test/index.html diff --git a/.env.example b/.env.example index a47e2331..27f8b8bc 100644 --- a/.env.example +++ b/.env.example @@ -53,6 +53,14 @@ JWT_REFRESH_EXPIRY=7d # Generate with: openssl rand -hex 32 ENCRYPTION_KEY=GENERATE_WITH_openssl_rand_hex_32 +# Gitea SSO cookie signing secret (separate from JWT — falls back to JWT_ACCESS_SECRET if empty) +# Generate with: openssl rand -hex 32 +GITEA_SSO_SECRET= +# Salt for deriving deterministic service passwords (Gitea, Rocket.Chat) +# Falls back to JWT_ACCESS_SECRET if empty — set a dedicated value to isolate secret rotation +# Generate with: openssl rand -hex 32 +SERVICE_PASSWORD_SALT= + # --- Initial Super Admin User (auto-created during database seeding) --- # These credentials are used to create the initial super admin account # Change these before running the seed script in production diff --git a/CLAUDE.md b/CLAUDE.md index 4f5d757d..6ab9fdd5 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -6,7 +6,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co Changemaker Lite is a self-hosted political campaign platform built with Docker Compose. It consolidates advocacy email campaigns, geographic mapping, volunteer management, and administration into a single TypeScript stack. The primary domain is `cmlite.org`. -**Current state:** V2 rebuild substantially complete on the `v2` branch. Core platform operational with Phases 1-14 complete. See `V2_PLAN.md` for the full roadmap. +**Current state:** V2 rebuild substantially complete (merged to `main`). Core platform operational with Phases 1-14 complete. See `V2_PLAN.md` for the full roadmap. **Status Summary:** - ✅ Phases 1-14 Complete (Foundation through Monitoring + DevOps) @@ -160,7 +160,7 @@ changemaker.lite/ The fastest way to deploy. No source code, no compilation: ```bash -curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/v2/scripts/install.sh | bash +curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/main/scripts/install.sh | bash ``` This downloads a ~9MB release tarball, runs the config wizard, and sets `IMAGE_TAG=latest`. Then: @@ -173,11 +173,10 @@ Pre-built images are pulled from `gitea.bnkops.com/admin` (~2 min). Database mig ### Source Install (Development) -1. **Clone repository and checkout v2 branch:** +1. **Clone repository:** ```bash git clone changemaker.lite cd changemaker.lite - git checkout v2 ``` 2. **Create environment file:** @@ -321,7 +320,7 @@ docker compose down ./scripts/upgrade.sh --use-registry --force --skip-backup # Install from tarball (end-user one-liner) -curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/v2/scripts/install.sh | bash +curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/main/scripts/install.sh | bash ``` **Two compose files:** diff --git a/DEV_WORKFLOW.md b/DEV_WORKFLOW.md index 79a31511..3e13cf8b 100644 --- a/DEV_WORKFLOW.md +++ b/DEV_WORKFLOW.md @@ -174,7 +174,7 @@ The tarball contains: ```bash # One-liner -curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/v2/scripts/install.sh | bash +curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/main/scripts/install.sh | bash # Or manual curl -LO https://gitea.bnkops.com/admin/changemaker.lite/releases/latest/download/changemaker-lite-latest.tar.gz diff --git a/README.md b/README.md index acb53945..9a9020ed 100644 --- a/README.md +++ b/README.md @@ -105,7 +105,7 @@ Send SMS campaigns via an Android bridge, sync subscribers to Listmonk for newsl ```bash # One-command install (downloads pre-built images, runs config wizard) -curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/v2/scripts/install.sh | bash +curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/main/scripts/install.sh | bash cd ~/changemaker.lite docker compose up -d @@ -115,7 +115,7 @@ Or clone and build from source: ```bash git clone changemaker.lite -cd changemaker.lite && git checkout v2 +cd changemaker.lite cp .env.example .env # Edit .env -- set passwords, JWT secrets, admin credentials diff --git a/admin/package-lock.json b/admin/package-lock.json index d07a00ce..726e5d9c 100644 --- a/admin/package-lock.json +++ b/admin/package-lock.json @@ -1154,9 +1154,9 @@ "dev": true }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.1.tgz", - "integrity": "sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.1.tgz", + "integrity": "sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==", "cpu": [ "arm" ], @@ -1167,9 +1167,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.57.1.tgz", - "integrity": "sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.1.tgz", + "integrity": "sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==", "cpu": [ "arm64" ], @@ -1180,9 +1180,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.57.1.tgz", - "integrity": "sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.1.tgz", + "integrity": "sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==", "cpu": [ "arm64" ], @@ -1193,9 +1193,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.57.1.tgz", - "integrity": "sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.1.tgz", + "integrity": "sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==", "cpu": [ "x64" ], @@ -1206,9 +1206,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.57.1.tgz", - "integrity": "sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.1.tgz", + "integrity": "sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==", "cpu": [ "arm64" ], @@ -1219,9 +1219,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.57.1.tgz", - "integrity": "sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.1.tgz", + "integrity": "sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==", "cpu": [ "x64" ], @@ -1232,9 +1232,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.57.1.tgz", - "integrity": "sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.1.tgz", + "integrity": "sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==", "cpu": [ "arm" ], @@ -1245,9 +1245,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.57.1.tgz", - "integrity": "sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.1.tgz", + "integrity": "sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==", "cpu": [ "arm" ], @@ -1258,9 +1258,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.57.1.tgz", - "integrity": "sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.1.tgz", + "integrity": "sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==", "cpu": [ "arm64" ], @@ -1271,9 +1271,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.57.1.tgz", - "integrity": "sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.1.tgz", + "integrity": "sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==", "cpu": [ "arm64" ], @@ -1284,9 +1284,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.57.1.tgz", - "integrity": "sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.1.tgz", + "integrity": "sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==", "cpu": [ "loong64" ], @@ -1297,9 +1297,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.57.1.tgz", - "integrity": "sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.1.tgz", + "integrity": "sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==", "cpu": [ "loong64" ], @@ -1310,9 +1310,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.57.1.tgz", - "integrity": "sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.1.tgz", + "integrity": "sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==", "cpu": [ "ppc64" ], @@ -1323,9 +1323,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.57.1.tgz", - "integrity": "sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.1.tgz", + "integrity": "sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==", "cpu": [ "ppc64" ], @@ -1336,9 +1336,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.57.1.tgz", - "integrity": "sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.1.tgz", + "integrity": "sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==", "cpu": [ "riscv64" ], @@ -1349,9 +1349,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.57.1.tgz", - "integrity": "sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.1.tgz", + "integrity": "sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==", "cpu": [ "riscv64" ], @@ -1362,9 +1362,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.57.1.tgz", - "integrity": "sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.1.tgz", + "integrity": "sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==", "cpu": [ "s390x" ], @@ -1375,9 +1375,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.1.tgz", - "integrity": "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.1.tgz", + "integrity": "sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==", "cpu": [ "x64" ], @@ -1388,9 +1388,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.57.1.tgz", - "integrity": "sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.1.tgz", + "integrity": "sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==", "cpu": [ "x64" ], @@ -1401,9 +1401,9 @@ ] }, "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.57.1.tgz", - "integrity": "sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.1.tgz", + "integrity": "sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==", "cpu": [ "x64" ], @@ -1414,9 +1414,9 @@ ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.57.1.tgz", - "integrity": "sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.1.tgz", + "integrity": "sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==", "cpu": [ "arm64" ], @@ -1427,9 +1427,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.57.1.tgz", - "integrity": "sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.1.tgz", + "integrity": "sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==", "cpu": [ "arm64" ], @@ -1440,9 +1440,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.57.1.tgz", - "integrity": "sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.1.tgz", + "integrity": "sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==", "cpu": [ "ia32" ], @@ -1453,9 +1453,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.57.1.tgz", - "integrity": "sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.1.tgz", + "integrity": "sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==", "cpu": [ "x64" ], @@ -1466,9 +1466,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.57.1.tgz", - "integrity": "sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.1.tgz", + "integrity": "sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==", "cpu": [ "x64" ], @@ -2261,9 +2261,9 @@ } }, "node_modules/dompurify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz", - "integrity": "sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.3.tgz", + "integrity": "sha512-Oj6pzI2+RqBfFG+qOaOLbFXLQ90ARpcGG6UePL82bJLtdsa6CYJD7nmiU8MW9nQNOtCHV3lZ/Bzq1X0QYbBZCA==", "optionalDependencies": { "@types/trusted-types": "^2.0.7" } @@ -2860,9 +2860,9 @@ "dev": true }, "node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "engines": { "node": ">=12" @@ -3651,9 +3651,9 @@ "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" }, "node_modules/rollup": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.1.tgz", - "integrity": "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==", + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.1.tgz", + "integrity": "sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==", "dev": true, "dependencies": { "@types/estree": "1.0.8" @@ -3666,31 +3666,31 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.57.1", - "@rollup/rollup-android-arm64": "4.57.1", - "@rollup/rollup-darwin-arm64": "4.57.1", - "@rollup/rollup-darwin-x64": "4.57.1", - "@rollup/rollup-freebsd-arm64": "4.57.1", - "@rollup/rollup-freebsd-x64": "4.57.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.57.1", - "@rollup/rollup-linux-arm-musleabihf": "4.57.1", - "@rollup/rollup-linux-arm64-gnu": "4.57.1", - "@rollup/rollup-linux-arm64-musl": "4.57.1", - "@rollup/rollup-linux-loong64-gnu": "4.57.1", - "@rollup/rollup-linux-loong64-musl": "4.57.1", - "@rollup/rollup-linux-ppc64-gnu": "4.57.1", - "@rollup/rollup-linux-ppc64-musl": "4.57.1", - "@rollup/rollup-linux-riscv64-gnu": "4.57.1", - "@rollup/rollup-linux-riscv64-musl": "4.57.1", - "@rollup/rollup-linux-s390x-gnu": "4.57.1", - "@rollup/rollup-linux-x64-gnu": "4.57.1", - "@rollup/rollup-linux-x64-musl": "4.57.1", - "@rollup/rollup-openbsd-x64": "4.57.1", - "@rollup/rollup-openharmony-arm64": "4.57.1", - "@rollup/rollup-win32-arm64-msvc": "4.57.1", - "@rollup/rollup-win32-ia32-msvc": "4.57.1", - "@rollup/rollup-win32-x64-gnu": "4.57.1", - "@rollup/rollup-win32-x64-msvc": "4.57.1", + "@rollup/rollup-android-arm-eabi": "4.60.1", + "@rollup/rollup-android-arm64": "4.60.1", + "@rollup/rollup-darwin-arm64": "4.60.1", + "@rollup/rollup-darwin-x64": "4.60.1", + "@rollup/rollup-freebsd-arm64": "4.60.1", + "@rollup/rollup-freebsd-x64": "4.60.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.1", + "@rollup/rollup-linux-arm-musleabihf": "4.60.1", + "@rollup/rollup-linux-arm64-gnu": "4.60.1", + "@rollup/rollup-linux-arm64-musl": "4.60.1", + "@rollup/rollup-linux-loong64-gnu": "4.60.1", + "@rollup/rollup-linux-loong64-musl": "4.60.1", + "@rollup/rollup-linux-ppc64-gnu": "4.60.1", + "@rollup/rollup-linux-ppc64-musl": "4.60.1", + "@rollup/rollup-linux-riscv64-gnu": "4.60.1", + "@rollup/rollup-linux-riscv64-musl": "4.60.1", + "@rollup/rollup-linux-s390x-gnu": "4.60.1", + "@rollup/rollup-linux-x64-gnu": "4.60.1", + "@rollup/rollup-linux-x64-musl": "4.60.1", + "@rollup/rollup-openbsd-x64": "4.60.1", + "@rollup/rollup-openharmony-arm64": "4.60.1", + "@rollup/rollup-win32-arm64-msvc": "4.60.1", + "@rollup/rollup-win32-ia32-msvc": "4.60.1", + "@rollup/rollup-win32-x64-gnu": "4.60.1", + "@rollup/rollup-win32-x64-msvc": "4.60.1", "fsevents": "~2.3.2" } }, @@ -3993,10 +3993,9 @@ "dev": true }, "node_modules/yaml": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", - "license": "ISC", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", "bin": { "yaml": "bin.mjs" }, diff --git a/admin/src/pages/DocsPage.tsx b/admin/src/pages/DocsPage.tsx index 668928f0..80aa8837 100644 --- a/admin/src/pages/DocsPage.tsx +++ b/admin/src/pages/DocsPage.tsx @@ -59,7 +59,6 @@ import { MobileOutlined, DesktopOutlined, CalendarOutlined, - ClearOutlined, FormOutlined, ShareAltOutlined, LockOutlined, @@ -591,40 +590,6 @@ export default function DocsPage() { const isMobile = !screens.md; const { token } = theme.useToken(); const { building, confirmAndBuild, isSuperAdmin } = useMkDocsBuild(); - const [resetting, setResetting] = useState(false); - - const confirmAndReset = useCallback(() => { - if (!isSuperAdmin) return; - Modal.confirm({ - title: 'Reset Documentation Site', - content: ( -
-

This will reset all documentation content to a baseline template.

-

Preserved: header config, analytics tracking, hooks, assets, stylesheets, blog.

-

Deleted: all custom content pages.

-

A backup will be created automatically.

-
- ), - okText: 'Reset Site', - okButtonProps: { danger: true }, - onOk: async () => { - setResetting(true); - try { - const { data } = await api.post('/docs/reset'); - message.success(`Site reset complete. ${data.filesReset} files reset, ${data.filesPreserved} preserved.`); - // Refresh file tree - const treeRes = await api.get('/docs/files'); - setFileTree(treeRes.data.tree || []); - setSelectedFile(null); - setFileContent(''); - } catch { - message.error('Failed to reset documentation site'); - } finally { - setResetting(false); - } - }, - }); - }, [isSuperAdmin]); const [fileTree, setFileTree] = useState(() => getCachedTree() || []); const [config, setConfig] = useState(null); @@ -800,9 +765,10 @@ export default function DocsPage() { } }, [fileContentCache, messageApi]); - // Handle navigation state from command palette — auto-select a file + // Handle navigation state from command palette or metadata page — auto-select a file useEffect(() => { - const selectFile = (location.state as { selectFile?: string } | null)?.selectFile; + const state = location.state as { selectFile?: string; openFile?: string } | null; + const selectFile = state?.selectFile || state?.openFile; if (!selectFile || loading) return; // Expand parent directories so the file is visible in the tree @@ -855,8 +821,22 @@ export default function DocsPage() { if ((e.ctrlKey || e.metaKey) && e.key === 's') { e.preventDefault(); if (collab.active) { - // In collab mode, auto-save handles persistence — just refresh preview - previewIframeRef.current?.contentWindow?.location.reload(); + // In collab mode, explicitly save current content + refresh preview + if (selectedFile && collab.yText) { + const content = collab.yText.toString(); + api.put(`/docs/files/${selectedFile}`, { content }) + .then(() => messageApi.success('Saved')) + .catch(() => messageApi.error('Save failed')); + } + // Refresh preview with cache-buster + if (previewIframeRef.current && selectedFile) { + const url = filePathToMkDocsUrl(selectedFile); + setTimeout(() => { + if (previewIframeRef.current) { + previewIframeRef.current.src = url + '?_t=' + Date.now(); + } + }, 1500); + } } else { saveFile(); } @@ -1603,13 +1583,10 @@ export default function DocsPage() { + + + )} + ), }, diff --git a/api/package-lock.json b/api/package-lock.json index 497b5c67..8acfb808 100644 --- a/api/package-lock.json +++ b/api/package-lock.json @@ -1656,14 +1656,6 @@ "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.5.0.tgz", "integrity": "sha512-eUgLqrMf8nJkZxT24JvVRrQya1vZkQh8BBeYNwGDqa5I0VUi8ACx7uFvAaLxintokpTenkK6DASvo/bvNbBGow==" }, - "node_modules/@isaacs/cliui": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz", - "integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==", - "engines": { - "node": ">=18" - } - }, "node_modules/@js-temporal/polyfill": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/@js-temporal/polyfill/-/polyfill-0.5.1.tgz", @@ -1901,6 +1893,7 @@ "resolved": "https://registry.npmjs.org/@types/cookie-parser/-/cookie-parser-1.4.10.tgz", "integrity": "sha512-B4xqkqfZ8Wek+rCOeRxsjMS9OgvzebEzzLYw7NHYuvzb7IdxOkI0ZHGgeEBX4PUM7QGVvNSK60T3OvWj3YfBRg==", "dev": true, + "license": "MIT", "peerDependencies": { "@types/express": "*" } @@ -2102,9 +2095,9 @@ } }, "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -2216,14 +2209,11 @@ } }, "node_modules/balanced-match": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.2.tgz", - "integrity": "sha512-x0K50QvKQ97fdEz2kPehIerj+YTeptKF9hyYkKf6egnwmMWAkADiO0QCzSp0R5xN8FTZgYaBfSaue46Ej62nMg==", - "dependencies": { - "jackspeak": "^4.2.3" - }, + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" } }, "node_modules/bcryptjs": { @@ -2260,14 +2250,14 @@ } }, "node_modules/brace-expansion": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz", - "integrity": "sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" } }, "node_modules/buffer-equal-constant-time": { @@ -2548,6 +2538,7 @@ "version": "1.4.7", "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.7.tgz", "integrity": "sha512-nGUvgXnotP3BsjiLX2ypbQnWoGUPIIfHQNZkkC668ntrzGWEZVW70HDEB1qnNGMicPje6EttlIgzo51YSwNQGw==", + "license": "MIT", "dependencies": { "cookie": "0.7.2", "cookie-signature": "1.0.6" @@ -2700,15 +2691,15 @@ } }, "node_modules/drizzle-kit": { - "version": "0.31.9", - "resolved": "https://registry.npmjs.org/drizzle-kit/-/drizzle-kit-0.31.9.tgz", - "integrity": "sha512-GViD3IgsXn7trFyBUUHyTFBpH/FsHTxYJ66qdbVggxef4UBPHRYxQaRzYLTuekYnk9i5FIEL9pbBIwMqX/Uwrg==", + "version": "0.31.10", + "resolved": "https://registry.npmjs.org/drizzle-kit/-/drizzle-kit-0.31.10.tgz", + "integrity": "sha512-7OZcmQUrdGI+DUNNsKBn1aW8qSoKuTH7d0mYgSP8bAzdFzKoovxEFnoGQp2dVs82EOJeYycqRtciopszwUf8bw==", "dev": true, "dependencies": { "@drizzle-team/brocli": "^0.10.2", "@esbuild-kit/esm-loader": "^2.5.5", "esbuild": "^0.25.4", - "esbuild-register": "^3.5.0" + "tsx": "^4.21.0" }, "bin": { "drizzle-kit": "bin.cjs" @@ -3426,41 +3417,6 @@ "@esbuild/win32-x64": "0.27.3" } }, - "node_modules/esbuild-register": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.6.0.tgz", - "integrity": "sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==", - "dev": true, - "dependencies": { - "debug": "^4.3.4" - }, - "peerDependencies": { - "esbuild": ">=0.12 <1" - } - }, - "node_modules/esbuild-register/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/esbuild-register/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -3623,9 +3579,9 @@ ] }, "node_modules/fastify": { - "version": "5.7.4", - "resolved": "https://registry.npmjs.org/fastify/-/fastify-5.7.4.tgz", - "integrity": "sha512-e6l5NsRdaEP8rdD8VR0ErJASeyaRbzXYpmkrpr2SuvuMq6Si3lvsaVy5C+7gLanEkvjpMDzBXWE5HPeb/hgTxA==", + "version": "5.8.4", + "resolved": "https://registry.npmjs.org/fastify/-/fastify-5.8.4.tgz", + "integrity": "sha512-sa42J1xylbBAYUWALSBoyXKPDUvM3OoNOibIefA+Oha57FryXKKCZarA1iDntOCWp3O35voZLuDg2mdODXtPzQ==", "funding": [ { "type": "github", @@ -3646,7 +3602,7 @@ "fast-json-stringify": "^6.0.0", "find-my-way": "^9.0.0", "light-my-request": "^6.0.0", - "pino": "^10.1.0", + "pino": "^9.14.0 || ^10.1.0", "process-warning": "^5.0.0", "rfdc": "^1.3.1", "secure-json-parse": "^4.0.0", @@ -4066,20 +4022,6 @@ "url": "https://github.com/sponsors/dmonad" } }, - "node_modules/jackspeak": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz", - "integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==", - "dependencies": { - "@isaacs/cliui": "^9.0.0" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/jiti": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", @@ -4407,14 +4349,14 @@ } }, "node_modules/minimatch": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.0.tgz", - "integrity": "sha512-ugkC31VaVg9cF0DFVoADH12k6061zNZkZON+aX8AWsR9GhPcErkcMBceb6znR8wLERM2AkkOxy2nWRLpT9Jq5w==", + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", "dependencies": { - "brace-expansion": "^5.0.2" + "brace-expansion": "^5.0.5" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -4542,9 +4484,9 @@ } }, "node_modules/nodemailer": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-8.0.1.tgz", - "integrity": "sha512-5kcldIXmaEjZcHR6F28IKGSgpmZHaF1IXLWFTG+Xh3S+Cce4MiakLtWY+PlBU69fLbRa8HlaGIrC/QolUpHkhg==", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-8.0.4.tgz", + "integrity": "sha512-k+jf6N8PfQJ0Fe8ZhJlgqU5qJU44Lpvp2yvidH3vp1lPnVQMgi4yEEMPXg5eJS1gFIJTVq1NHBk7Ia9ARdSBdQ==", "engines": { "node": ">=6.0.0" } @@ -4705,9 +4647,9 @@ } }, "node_modules/path-to-regexp": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==" + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", + "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==" }, "node_modules/pathe": { "version": "2.0.3", @@ -5000,9 +4942,9 @@ } }, "node_modules/qs": { - "version": "6.14.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz", - "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==", + "version": "6.14.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz", + "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==", "dependencies": { "side-channel": "^1.1.0" }, @@ -5848,10 +5790,9 @@ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" }, "node_modules/yaml": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", - "license": "ISC", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", "bin": { "yaml": "bin.mjs" }, diff --git a/api/src/config/env.ts b/api/src/config/env.ts index 4815fb23..aa1edd85 100644 --- a/api/src/config/env.ts +++ b/api/src/config/env.ts @@ -38,6 +38,11 @@ const envSchema = z.object({ // Encryption (for DB-stored secrets like SMTP password — required for all environments) ENCRYPTION_KEY: z.string().min(32, 'ENCRYPTION_KEY must be at least 32 characters'), + // Gitea SSO cookie signing secret (falls back to JWT_ACCESS_SECRET if empty) + GITEA_SSO_SECRET: z.string().default(''), + // Salt for deriving deterministic service passwords (Gitea, Rocket.Chat — falls back to JWT_ACCESS_SECRET if empty) + SERVICE_PASSWORD_SALT: z.string().default(''), + // Initial Super Admin (auto-created during database seeding) INITIAL_ADMIN_EMAIL: z.string().email().default('admin@cmlite.org'), INITIAL_ADMIN_PASSWORD: z.string().min(12).default('REQUIRED_STRONG_PASSWORD_CHANGE_THIS') diff --git a/api/src/modules/auth/auth.routes.ts b/api/src/modules/auth/auth.routes.ts index 93b0ca00..b1dc2535 100644 --- a/api/src/modules/auth/auth.routes.ts +++ b/api/src/modules/auth/auth.routes.ts @@ -1,6 +1,7 @@ import { Router, Request, Response, NextFunction } from 'express'; import { z } from 'zod'; import bcrypt from 'bcryptjs'; +import jwt from 'jsonwebtoken'; import { UserRole, UserStatus } from '@prisma/client'; import { authService } from './auth.service'; import { loginSchema, registerSchema, refreshSchema } from './auth.schemas'; @@ -22,6 +23,9 @@ const router = Router(); const REFRESH_COOKIE_NAME = 'cml_refresh'; const REFRESH_COOKIE_MAX_AGE = 7 * 24 * 60 * 60 * 1000; // 7 days in ms +const SESSION_COOKIE_NAME = 'cml_session'; +const SESSION_COOKIE_MAX_AGE = 30 * 60 * 1000; // 30 min buffer (JWT inside enforces 15min expiry) + /** Set the refresh token as an httpOnly cookie. * Uses req.secure (respects trust proxy + X-Forwarded-Proto) to determine * the Secure flag, so it works correctly over both HTTP (dev) and HTTPS (tunnel). */ @@ -45,6 +49,53 @@ function clearRefreshCookie(req: Request, res: Response) { }); } +/** Cookie options for the SSO session cookie (domain-wide for Gitea reverse proxy auth) */ +function sessionCookieOptions(req: Request) { + const isSecure = req.secure; + const domain = env.DOMAIN; + // Use domain-wide cookie for production (subdomains); omit for localhost dev + const hasDomain = domain && !domain.includes('localhost') && !domain.match(/^\d/); + return { + httpOnly: true, + secure: isSecure, + sameSite: 'lax' as const, + path: '/', + maxAge: SESSION_COOKIE_MAX_AGE, + ...(hasDomain ? { domain: `.${domain}` } : {}), + }; +} + +/** Set the SSO session cookie for Gitea reverse proxy auth (fire-and-forget). + * Only sets the cookie if the user has a provisioned Gitea account. */ +async function setSessionCookie(req: Request, res: Response, userId: string) { + try { + const user = await prisma.user.findUnique({ + where: { id: userId }, + select: { permissions: true }, + }); + const permissions = (user?.permissions as Record) || {}; + const giteaUser = permissions._giteaUsername as string | undefined; + if (!giteaUser) return; // Not provisioned — skip + + const ssoSecret = env.GITEA_SSO_SECRET || env.JWT_ACCESS_SECRET; + const token = jwt.sign( + { sub: userId, giteaUser }, + ssoSecret, + { algorithm: 'HS256', expiresIn: '15m' }, + ); + res.cookie(SESSION_COOKIE_NAME, token, sessionCookieOptions(req)); + } catch (err) { + logger.debug('Failed to set SSO session cookie:', err); + } +} + +/** Clear the SSO session cookie */ +function clearSessionCookie(req: Request, res: Response) { + const opts = sessionCookieOptions(req); + delete (opts as Record).maxAge; + res.clearCookie(SESSION_COOKIE_NAME, opts); +} + // POST /api/auth/login router.post( '/login', @@ -55,6 +106,8 @@ router.post( const result = await authService.login(req.body.email, req.body.password); // Set refresh token as httpOnly cookie (not in response body) setRefreshCookie(req, res, result.refreshToken); + // Set SSO session cookie for Gitea reverse proxy auth + await setSessionCookie(req, res, result.user.id); const { refreshToken: _, ...responseWithoutRefresh } = result; res.json(responseWithoutRefresh); } catch (err) { @@ -281,6 +334,10 @@ router.post( const result = await authService.refreshTokens(refreshToken); // Set new refresh token as httpOnly cookie setRefreshCookie(req, res, result.refreshToken); + // Renew SSO session cookie for Gitea reverse proxy auth + if (result.user?.id) { + await setSessionCookie(req, res, result.user.id); + } const { refreshToken: _, ...responseWithoutRefresh } = result; res.json(responseWithoutRefresh); } catch (err) { @@ -302,9 +359,11 @@ router.post( await authService.logout(refreshToken); } clearRefreshCookie(req, res); + clearSessionCookie(req, res); res.json({ message: 'Logged out' }); } catch (err) { clearRefreshCookie(req, res); + clearSessionCookie(req, res); next(err); } } diff --git a/api/src/modules/auth/gitea-sso.routes.ts b/api/src/modules/auth/gitea-sso.routes.ts new file mode 100644 index 00000000..81680e61 --- /dev/null +++ b/api/src/modules/auth/gitea-sso.routes.ts @@ -0,0 +1,50 @@ +import { Router, Request, Response } from 'express'; +import jwt from 'jsonwebtoken'; +import { env } from '../../config/env'; +import { logger } from '../../utils/logger'; + +const router = Router(); + +interface SsoPayload { + sub: string; + giteaUser: string; +} + +/** + * GET /api/auth/gitea-sso-validate + * + * Called by nginx auth_request to validate the cml_session cookie. + * Always returns 200 — never blocks requests. + * Sets X-Gitea-User header when the session is valid and the user + * has a provisioned Gitea account. Empty header = no SSO (Gitea + * shows its own login page). + */ +router.get('/gitea-sso-validate', (req: Request, res: Response) => { + const token = req.cookies?.cml_session; + + if (!token) { + res.setHeader('X-Gitea-User', ''); + res.status(200).end(); + return; + } + + try { + const ssoSecret = env.GITEA_SSO_SECRET || env.JWT_ACCESS_SECRET; + const payload = jwt.verify(token, ssoSecret, { + algorithms: ['HS256'], + }) as SsoPayload; + + if (payload.giteaUser) { + res.setHeader('X-Gitea-User', payload.giteaUser); + } else { + res.setHeader('X-Gitea-User', ''); + } + } catch { + // Expired or invalid JWT — no SSO, graceful fallback + res.setHeader('X-Gitea-User', ''); + } + + res.status(200).end(); +}); + +export { router as giteaSsoRouter }; diff --git a/api/src/modules/calendar/shared-calendar.service.ts b/api/src/modules/calendar/shared-calendar.service.ts index 48db2994..09d60a69 100644 --- a/api/src/modules/calendar/shared-calendar.service.ts +++ b/api/src/modules/calendar/shared-calendar.service.ts @@ -925,7 +925,7 @@ export const sharedCalendarService = { include: { members: { where: { status: SharedViewMemberStatus.ACCEPTED }, - include: { user: { select: { id: true, name: true, email: true } } }, + include: { user: { select: { id: true, name: true } } }, }, }, }); @@ -972,7 +972,7 @@ export const sharedCalendarService = { orderBy: [{ date: 'asc' }, { startTime: 'asc' }], }); - const memberName = member.user.name || member.user.email; + const memberName = member.user.name || 'Member'; for (const item of items) { if (item.visibility === CalendarVisibility.PRIVATE || item.visibility === CalendarVisibility.FRIENDS) continue; allItems.push({ @@ -999,7 +999,7 @@ export const sharedCalendarService = { const sysLayers = filteredLayers.filter(l => l.layerType === CalendarLayerType.SYSTEM); for (const sysLayer of sysLayers) { const sysItems = await this.getSystemLayerItems(member.userId, sysLayer, start, end); - const memberName = member.user.name || member.user.email; + const memberName = member.user.name || 'Member'; for (const si of sysItems) { allItems.push({ ...si, diff --git a/api/src/modules/media/routes/photos-public.routes.ts b/api/src/modules/media/routes/photos-public.routes.ts index 3e520944..cb88b35f 100644 --- a/api/src/modules/media/routes/photos-public.routes.ts +++ b/api/src/modules/media/routes/photos-public.routes.ts @@ -1,6 +1,7 @@ import { FastifyInstance } from 'fastify'; import { createReadStream } from 'fs'; import { access } from 'fs/promises'; +import { resolve } from 'path'; import { prisma } from '../../../config/database'; import { optionalAuth } from '../middleware/auth'; import { logger } from '../../../utils/logger'; @@ -181,19 +182,25 @@ export async function photosPublicRoutes(fastify: FastifyInstance) { } } - if (!filePath || filePath.includes('..')) { + if (!filePath) { return reply.code(404).send({ message: 'Image variant not found' }); } + const PHOTOS_BASE = '/media/local/photos'; + const resolvedPath = resolve(filePath); + if (!resolvedPath.startsWith(resolve(PHOTOS_BASE) + '/')) { + logger.warn(`Photo path traversal attempt blocked: ${filePath}`); + return reply.code(403).send({ message: 'Access denied' }); + } try { - await access(filePath); + await access(resolvedPath); } catch { return reply.code(404).send({ message: 'Image file not found' }); } reply.header('Content-Type', contentType); reply.header('Cache-Control', 'public, max-age=604800, immutable'); - return reply.send(createReadStream(filePath)); + return reply.send(createReadStream(resolvedPath)); } ); @@ -208,19 +215,25 @@ export async function photosPublicRoutes(fastify: FastifyInstance) { select: { thumbnailPath: true }, }); - if (!photo?.thumbnailPath || photo.thumbnailPath.includes('..')) { + if (!photo?.thumbnailPath) { return reply.code(404).send({ message: 'Thumbnail not found' }); } + const PHOTOS_BASE = '/media/local/photos'; + const resolvedThumb = resolve(photo.thumbnailPath); + if (!resolvedThumb.startsWith(resolve(PHOTOS_BASE) + '/')) { + logger.warn(`Thumbnail path traversal attempt blocked: ${photo.thumbnailPath}`); + return reply.code(403).send({ message: 'Access denied' }); + } try { - await access(photo.thumbnailPath); + await access(resolvedThumb); } catch { return reply.code(404).send({ message: 'Thumbnail file not found' }); } reply.header('Content-Type', 'image/jpeg'); reply.header('Cache-Control', 'public, max-age=604800, immutable'); - return reply.send(createReadStream(photo.thumbnailPath)); + return reply.send(createReadStream(resolvedThumb)); } ); diff --git a/api/src/modules/meetings/action-items.routes.ts b/api/src/modules/meetings/action-items.routes.ts index 25ea4656..e456bdf8 100644 --- a/api/src/modules/meetings/action-items.routes.ts +++ b/api/src/modules/meetings/action-items.routes.ts @@ -8,7 +8,8 @@ import { import { validate } from '../../middleware/validate'; import { authenticate } from '../../middleware/auth.middleware'; import { requireRole } from '../../middleware/rbac.middleware'; -import { EVENTS_ROLES } from '../../utils/roles'; +import { EVENTS_ROLES, hasAnyRole } from '../../utils/roles'; +import { AppError } from '../../middleware/error-handler'; const router = Router(); @@ -44,6 +45,14 @@ router.get('/:id', authenticate, async (req: Request, res: Response, next: NextF try { const id = req.params.id as string; const item = await actionItemsService.findById(id); + + const isAdmin = hasAnyRole(req.user!, EVENTS_ROLES); + const isAssignee = item.assigneeUserId === req.user!.id; + const isCreator = item.createdByUserId === req.user!.id; + if (!isAdmin && !isAssignee && !isCreator) { + throw new AppError(403, 'Insufficient permissions', 'FORBIDDEN'); + } + res.json(item); } catch (err) { next(err); } }); @@ -56,10 +65,19 @@ router.post('/', authenticate, requireRole(...EVENTS_ROLES), validate(createActi } catch (err) { next(err); } }); -// Update action item (authenticate only - assignees can update their own) +// Update action item — admins, assignees, or creators can update router.put('/:id', authenticate, validate(updateActionItemSchema), async (req: Request, res: Response, next: NextFunction) => { try { const id = req.params.id as string; + const existing = await actionItemsService.findById(id); + + const isAdmin = hasAnyRole(req.user!, EVENTS_ROLES); + const isAssignee = existing.assigneeUserId === req.user!.id; + const isCreator = existing.createdByUserId === req.user!.id; + if (!isAdmin && !isAssignee && !isCreator) { + throw new AppError(403, 'Insufficient permissions', 'FORBIDDEN'); + } + const item = await actionItemsService.update(id, req.body); res.json(item); } catch (err) { next(err); } diff --git a/api/src/modules/sms/contacts/sms-contacts.routes.ts b/api/src/modules/sms/contacts/sms-contacts.routes.ts index 5ddc6e50..d94cf7bd 100644 --- a/api/src/modules/sms/contacts/sms-contacts.routes.ts +++ b/api/src/modules/sms/contacts/sms-contacts.routes.ts @@ -171,6 +171,11 @@ router.post('/:id/import-csv', async (req, res, next) => { res.status(400).json({ error: 'CSV text is required in the "csv" field' }); return; } + const MAX_CSV_SIZE = 5 * 1024 * 1024; // 5MB + if (csv.length > MAX_CSV_SIZE) { + res.status(400).json({ error: { message: 'CSV too large (max 5MB)', code: 'CSV_TOO_LARGE' } }); + return; + } const result = await smsContactsService.importCsv(req.params.id as string, csv, filename); res.json(result); } catch (err) { next(err); } diff --git a/api/src/modules/ticketed-events/ticketed-events-admin.routes.ts b/api/src/modules/ticketed-events/ticketed-events-admin.routes.ts index 21f34e8f..04c13e94 100644 --- a/api/src/modules/ticketed-events/ticketed-events-admin.routes.ts +++ b/api/src/modules/ticketed-events/ticketed-events-admin.routes.ts @@ -39,6 +39,30 @@ async function requireEventPermission(req: Request, _res: Response, next: NextFu return next({ status: 403, message: 'Insufficient permissions' }); } +/** Middleware: for :id routes, verify non-admin users own the event */ +async function requireEventOwnership(req: Request, res: Response, next: NextFunction) { + const eventId = req.params.id as string; + if (!eventId) return next(); + + const userRoles = req.user!.roles || [req.user!.role]; + const isAdmin = userRoles.some(r => EVENTS_ROLES.includes(r as UserRole)); + if (isAdmin) return next(); + + const event = await prisma.ticketedEvent.findUnique({ + where: { id: eventId }, + select: { createdByUserId: true }, + }); + if (!event) { + res.status(404).json({ error: { message: 'Event not found', code: 'NOT_FOUND' } }); + return; + } + if (event.createdByUserId !== req.user!.id) { + res.status(403).json({ error: { message: 'Forbidden', code: 'FORBIDDEN' } }); + return; + } + next(); +} + // All routes require auth + event permission router.use(authenticate, requireEventPermission); @@ -73,7 +97,7 @@ router.post('/', validate(createEventSchema), async (req: Request, res: Response }); // GET /:id — event detail -router.get('/:id', async (req: Request, res: Response, next: NextFunction) => { +router.get('/:id', requireEventOwnership, async (req: Request, res: Response, next: NextFunction) => { try { const event = await ticketedEventsService.findById(req.params.id as string); res.json(event); @@ -144,7 +168,7 @@ router.post('/:id/complete', requireRole(...EVENTS_ROLES), async (req: Request, // --- Meeting --- // POST /:id/meeting-token — generate moderator JWT for Jitsi -router.post('/:id/meeting-token', async (req: Request, res: Response, next: NextFunction) => { +router.post('/:id/meeting-token', requireEventOwnership, async (req: Request, res: Response, next: NextFunction) => { try { const user = await prisma.user.findUnique({ where: { id: req.user!.id }, @@ -159,7 +183,7 @@ router.post('/:id/meeting-token', async (req: Request, res: Response, next: Next // --- Tiers --- // POST /:id/tiers -router.post('/:id/tiers', validate(createTierSchema), async (req: Request, res: Response, next: NextFunction) => { +router.post('/:id/tiers', requireEventOwnership, validate(createTierSchema), async (req: Request, res: Response, next: NextFunction) => { try { const tier = await ticketedEventsService.addTier(req.params.id as string, req.body); res.status(201).json(tier); @@ -167,7 +191,7 @@ router.post('/:id/tiers', validate(createTierSchema), async (req: Request, res: }); // PUT /:id/tiers/:tierId -router.put('/:id/tiers/:tierId', validate(updateTierSchema), async (req: Request, res: Response, next: NextFunction) => { +router.put('/:id/tiers/:tierId', requireEventOwnership, validate(updateTierSchema), async (req: Request, res: Response, next: NextFunction) => { try { const tier = await ticketedEventsService.updateTier( req.params.tierId as string, @@ -179,7 +203,7 @@ router.put('/:id/tiers/:tierId', validate(updateTierSchema), async (req: Request }); // DELETE /:id/tiers/:tierId -router.delete('/:id/tiers/:tierId', async (req: Request, res: Response, next: NextFunction) => { +router.delete('/:id/tiers/:tierId', requireEventOwnership, async (req: Request, res: Response, next: NextFunction) => { try { await ticketedEventsService.deleteTier(req.params.tierId as string, req.params.id as string); res.json({ success: true }); @@ -189,7 +213,7 @@ router.delete('/:id/tiers/:tierId', async (req: Request, res: Response, next: Ne // --- Tickets --- // GET /:id/tickets -router.get('/:id/tickets', async (req: Request, res: Response, next: NextFunction) => { +router.get('/:id/tickets', requireEventOwnership, async (req: Request, res: Response, next: NextFunction) => { try { const page = parseInt(req.query.page as string) || 1; const limit = Math.min(parseInt(req.query.limit as string) || 20, 100); @@ -201,7 +225,7 @@ router.get('/:id/tickets', async (req: Request, res: Response, next: NextFunctio }); // GET /:id/checkins -router.get('/:id/checkins', async (req: Request, res: Response, next: NextFunction) => { +router.get('/:id/checkins', requireEventOwnership, async (req: Request, res: Response, next: NextFunction) => { try { const page = parseInt(req.query.page as string) || 1; const limit = Math.min(parseInt(req.query.limit as string) || 20, 100); @@ -211,7 +235,7 @@ router.get('/:id/checkins', async (req: Request, res: Response, next: NextFuncti }); // GET /:id/stats -router.get('/:id/stats', async (req: Request, res: Response, next: NextFunction) => { +router.get('/:id/stats', requireEventOwnership, async (req: Request, res: Response, next: NextFunction) => { try { const stats = await ticketedEventsService.getEventStats(req.params.id as string); res.json(stats); @@ -219,7 +243,7 @@ router.get('/:id/stats', async (req: Request, res: Response, next: NextFunction) }); // POST /:id/resend-ticket/:ticketId -router.post('/:id/resend-ticket/:ticketId', async (req: Request, res: Response, next: NextFunction) => { +router.post('/:id/resend-ticket/:ticketId', requireEventOwnership, async (req: Request, res: Response, next: NextFunction) => { try { const ticket = await prisma.ticket.findUnique({ where: { id: req.params.ticketId as string }, @@ -273,7 +297,7 @@ router.post('/:id/resend-ticket/:ticketId', async (req: Request, res: Response, }); // POST /:id/tickets/:ticketId/cancel -router.post('/:id/tickets/:ticketId/cancel', async (req: Request, res: Response, next: NextFunction) => { +router.post('/:id/tickets/:ticketId/cancel', requireEventOwnership, async (req: Request, res: Response, next: NextFunction) => { try { await ticketsService.cancelTicket(req.params.ticketId as string); res.json({ success: true }); diff --git a/api/src/services/gitea.client.ts b/api/src/services/gitea.client.ts index 3606fd66..1c2d51b4 100644 --- a/api/src/services/gitea.client.ts +++ b/api/src/services/gitea.client.ts @@ -599,6 +599,51 @@ class GiteaClient { { name: tokenName, scopes: ['read', 'write'] as unknown as Record } as unknown as Record, ); } + + // --- Repository Collaborator Management --- + + /** + * Add a collaborator to a repository with the specified permission level. + * @param permission - "read", "write", or "admin" + */ + async addCollaborator( + owner: string, + repo: string, + username: string, + permission: 'read' | 'write' | 'admin' = 'write', + ): Promise { + await this.request( + 'PUT', + `/repos/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/collaborators/${encodeURIComponent(username)}`, + { permission }, + ); + } + + /** + * Remove a collaborator from a repository. + */ + async removeCollaborator(owner: string, repo: string, username: string): Promise { + await this.request( + 'DELETE', + `/repos/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/collaborators/${encodeURIComponent(username)}`, + ); + } + + /** + * Check if a user is a collaborator on a repository. + * Returns true if they are, false otherwise. + */ + async isCollaborator(owner: string, repo: string, username: string): Promise { + try { + await this.request( + 'GET', + `/repos/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/collaborators/${encodeURIComponent(username)}`, + ); + return true; + } catch { + return false; + } + } } export const giteaClient = new GiteaClient(); diff --git a/api/src/services/user-provisioning/gitea.provisioner.ts b/api/src/services/user-provisioning/gitea.provisioner.ts index f10de915..137b83ac 100644 --- a/api/src/services/user-provisioning/gitea.provisioner.ts +++ b/api/src/services/user-provisioning/gitea.provisioner.ts @@ -1,9 +1,10 @@ import { createHmac } from 'crypto'; -import { Prisma } from '@prisma/client'; +import { Prisma, UserRole } from '@prisma/client'; import { prisma } from '../../config/database'; import { env } from '../../config/env'; import { logger } from '../../utils/logger'; import { giteaClient } from '../gitea.client'; +import { CONTENT_ROLES } from '../../utils/roles'; import type { ServiceProvisioner, ProvisionerConfig, ProvisionResult, CMUser } from './provisioner.interface'; const ROLE_MAP: Record = { @@ -14,9 +15,13 @@ const ROLE_MAP: Record = { TEMP: [], }; +/** The private docs repo name created by gitea-setup */ +const DOCS_REPO_NAME = 'changemaker.lite'; + /** Deterministic password — never exposed to users */ function generateGiteaPassword(userId: string): string { - return createHmac('sha256', env.JWT_ACCESS_SECRET) + const salt = env.SERVICE_PASSWORD_SALT || env.JWT_ACCESS_SECRET; + return createHmac('sha256', salt) .update(`gitea:${userId}`) .digest('hex'); } @@ -94,6 +99,9 @@ class GiteaProvisioner implements ServiceProvisioner { }, }); + // Grant docs repo access based on role + await this.syncDocsRepoAccess(giteaUser.login, user.role); + return { success: true, serviceUserId: String(giteaUser.id), @@ -121,6 +129,9 @@ class GiteaProvisioner implements ServiceProvisioner { admin: isAdmin, active: user.status === 'ACTIVE', }); + + // Re-evaluate docs repo access based on current role + await this.syncDocsRepoAccess(username, user.role); } async deactivate(serviceUserId: string): Promise { @@ -140,13 +151,57 @@ class GiteaProvisioner implements ServiceProvisioner { } await giteaClient.adminUpdateUser(username, { active: false }); + + // Remove docs repo collaborator access + try { + const config = await giteaClient.getConfig(); + if (config.repoOwner) { + await giteaClient.removeCollaborator(config.repoOwner, DOCS_REPO_NAME, username); + } + } catch { + // Ignore — user may not have been a collaborator + } + logger.info(`Gitea provisioner: deactivated user ${username}`); } async getAuthToken(_user: CMUser, _serviceUserId: string): Promise { - // Gitea SSO via API tokens could be implemented here if needed for iframe embedding return null; } + + /** + * Ensure the user's collaborator status on the private docs repo matches + * their role. CONTENT_ROLES (SUPER_ADMIN, CONTENT_ADMIN) get write access; + * SUPER_ADMIN users already have admin access via the Gitea admin flag, + * but we also add them as explicit collaborators for consistency. + * Users without CONTENT_ROLES are removed as collaborators. + */ + private async syncDocsRepoAccess(username: string, role: string): Promise { + try { + const config = await giteaClient.getConfig(); + const repoOwner = config.repoOwner; + if (!repoOwner) return; // Setup not complete — no repo owner yet + + const hasDocsAccess = CONTENT_ROLES.includes(role as UserRole); + + if (hasDocsAccess) { + // SUPER_ADMIN → admin, CONTENT_ADMIN → write + const permission = role === 'SUPER_ADMIN' ? 'admin' : 'write'; + await giteaClient.addCollaborator(repoOwner, DOCS_REPO_NAME, username, permission); + logger.debug(`Gitea provisioner: granted ${permission} access to ${repoOwner}/${DOCS_REPO_NAME} for ${username}`); + } else { + // Remove access if user no longer has CONTENT_ROLES + const isCollab = await giteaClient.isCollaborator(repoOwner, DOCS_REPO_NAME, username); + if (isCollab) { + await giteaClient.removeCollaborator(repoOwner, DOCS_REPO_NAME, username); + logger.debug(`Gitea provisioner: removed ${username} from ${repoOwner}/${DOCS_REPO_NAME}`); + } + } + } catch (err) { + // Non-fatal — don't block provisioning if repo access sync fails + logger.warn(`Gitea provisioner: docs repo access sync failed for ${username}:`, err instanceof Error ? err.message : err); + } + } } export const giteaProvisioner = new GiteaProvisioner(); diff --git a/api/src/services/user-provisioning/rocketchat.provisioner.ts b/api/src/services/user-provisioning/rocketchat.provisioner.ts index 58368ade..a44811c2 100644 --- a/api/src/services/user-provisioning/rocketchat.provisioner.ts +++ b/api/src/services/user-provisioning/rocketchat.provisioner.ts @@ -16,7 +16,8 @@ const ROLE_MAP: Record = { /** Deterministic password — never exposed to users, only used for RC internal auth */ function generateRCPassword(userId: string): string { - return createHmac('sha256', env.JWT_ACCESS_SECRET) + const salt = env.SERVICE_PASSWORD_SALT || env.JWT_ACCESS_SECRET; + return createHmac('sha256', salt) .update(`rc:${userId}`) .digest('hex'); } diff --git a/changemaker-control-panel/templates/docker-compose.yml.hbs b/changemaker-control-panel/templates/docker-compose.yml.hbs index 1ad65268..0803b727 100644 --- a/changemaker-control-panel/templates/docker-compose.yml.hbs +++ b/changemaker-control-panel/templates/docker-compose.yml.hbs @@ -746,6 +746,12 @@ services: GITEA__attachment__MAX_SIZE: "1024" GITEA__repository__MAX_CREATION_LIMIT: "-1" GITEA__server__LFS_START_SERVER: "true" + # Reverse proxy auth — nginx injects X-WEBAUTH-USER for SSO + GITEA__service__ENABLE_REVERSE_PROXY_AUTHENTICATION: "true" + GITEA__service__ENABLE_REVERSE_PROXY_AUTO_REGISTRATION: "false" + GITEA__service__ENABLE_REVERSE_PROXY_EMAIL: "false" + GITEA__service__REVERSE_PROXY_AUTHENTICATION_HEADER: "X-WEBAUTH-USER" + GITEA__service__REQUIRE_SIGNIN_VIEW: "true" volumes: - {{containerPrefix}}-gitea-data:/data networks: diff --git a/changemaker-control-panel/templates/nginx/conf.d/services.conf.hbs b/changemaker-control-panel/templates/nginx/conf.d/services.conf.hbs index 1c7eb583..2ee573e1 100644 --- a/changemaker-control-panel/templates/nginx/conf.d/services.conf.hbs +++ b/changemaker-control-panel/templates/nginx/conf.d/services.conf.hbs @@ -35,19 +35,36 @@ server { } } -# Gitea embed proxy (internal 8883) +# Gitea embed proxy (internal 8883) — SSO via auth_request server { listen 8883; client_max_body_size 2048M; + + # Internal: validate SSO session cookie via API + location = /_auth { + internal; + set $upstream_api http://{{containerPrefix}}-api:4000; + proxy_pass $upstream_api/api/auth/gitea-sso-validate; + proxy_pass_request_body off; + proxy_set_header Content-Length ""; + proxy_set_header Cookie $http_cookie; + } + location / { + auth_request /_auth; + auth_request_set $gitea_user $upstream_http_x_gitea_user; + set $upstream_gitea http://{{containerPrefix}}-gitea:3000; proxy_pass $upstream_gitea; proxy_hide_header X-Frame-Options; proxy_hide_header Content-Security-Policy; + add_header Content-Security-Policy "frame-ancestors 'self' localhost 127.0.0.1" always; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; + # SSO header — empty string if not authenticated (Gitea ignores it) + proxy_set_header X-WEBAUTH-USER $gitea_user; } } diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index f6027971..bfbae89f 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -32,7 +32,7 @@ services: retries: 3 start_period: 30s environment: - - NODE_ENV=${NODE_ENV:-development} + - NODE_ENV=${NODE_ENV:-production} - PORT=4000 - LOG_DIR=/app/logs - DATABASE_URL=postgresql://${V2_POSTGRES_USER:-changemaker}:${V2_POSTGRES_PASSWORD:?V2_POSTGRES_PASSWORD must be set in .env}@changemaker-v2-postgres:5432/${V2_POSTGRES_DB:-changemaker_v2} @@ -155,7 +155,7 @@ services: retries: 3 start_period: 30s environment: - - NODE_ENV=${NODE_ENV:-development} + - NODE_ENV=${NODE_ENV:-production} - MEDIA_API_PORT=${MEDIA_API_PORT:-4100} - DATABASE_URL=postgresql://${V2_POSTGRES_USER:-changemaker}:${V2_POSTGRES_PASSWORD:?V2_POSTGRES_PASSWORD must be set in .env}@changemaker-v2-postgres:5432/${V2_POSTGRES_DB:-changemaker_v2} - REDIS_URL=redis://:${REDIS_PASSWORD}@redis-changemaker:6379 @@ -204,7 +204,7 @@ services: start_period: 20s environment: - DOMAIN=${DOMAIN:-cmlite.org} - - NODE_ENV=${NODE_ENV:-development} + - NODE_ENV=${NODE_ENV:-production} - VITE_API_URL=http://changemaker-v2-api:4000 - VITE_MEDIA_API_URL=${VITE_MEDIA_API_URL:-http://changemaker-media-api:4100} - VITE_MKDOCS_URL=http://mkdocs-changemaker:8000 @@ -665,6 +665,12 @@ services: - GITEA__server__LFS_MAX_FILE_SIZE=1024 - GITEA__repository__upload__FILE_MAX_SIZE=1024 - GITEA__repository__upload__MAX_FILES=1000 + # Reverse proxy auth — nginx injects X-WEBAUTH-USER for SSO + - GITEA__service__ENABLE_REVERSE_PROXY_AUTHENTICATION=true + - GITEA__service__ENABLE_REVERSE_PROXY_AUTO_REGISTRATION=false + - GITEA__service__ENABLE_REVERSE_PROXY_EMAIL=false + - GITEA__service__REVERSE_PROXY_AUTHENTICATION_HEADER=X-WEBAUTH-USER + - GITEA__service__REQUIRE_SIGNIN_VIEW=true restart: unless-stopped volumes: - gitea-data:/data @@ -1191,7 +1197,7 @@ services: - GF_USERS_ALLOW_SIGN_UP=false - GF_SERVER_ROOT_URL=${GRAFANA_ROOT_URL:-http://localhost:3001} - GF_SECURITY_ALLOW_EMBEDDING=true - - GF_AUTH_ANONYMOUS_ENABLED=true + - GF_AUTH_ANONYMOUS_ENABLED=false - GF_AUTH_ANONYMOUS_ORG_ROLE=Viewer volumes: - grafana-data:/var/lib/grafana diff --git a/mkdocs/.cache/plugin/social/assets/images/social/blog/2026/03/27/test-blog-post---version-3.png b/mkdocs/.cache/plugin/social/assets/images/social/blog/2026/03/27/test-blog-post---version-3.png new file mode 100644 index 0000000000000000000000000000000000000000..64526dfe3e11df6bc041daca2a3151094b8b12cd GIT binary patch literal 76305 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 literal 0 HcmV?d00001 diff --git a/mkdocs/.cache/plugin/social/assets/images/social/blog/2026/03/27/test-blog-post---version-4.png b/mkdocs/.cache/plugin/social/assets/images/social/blog/2026/03/27/test-blog-post---version-4.png new file mode 100644 index 0000000000000000000000000000000000000000..baf6ef4cca3cfee43121cf9907de25cec0a9e107 GIT binary patch literal 75307 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 literal 0 HcmV?d00001 diff --git a/mkdocs/.cache/plugin/social/assets/images/social/blog/2026/03/27/test-blog-post---version-6.png b/mkdocs/.cache/plugin/social/assets/images/social/blog/2026/03/27/test-blog-post---version-6.png new file mode 100644 index 0000000000000000000000000000000000000000..4bfeb880094c7e699d78b164be8d2f442f8e19e0 GIT binary patch literal 76607 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 M+g3kS{OIxg-*IAWF8}}l literal 0 HcmV?d00001 diff --git a/mkdocs/.cache/plugin/social/assets/images/social/blog/2026/03/27/test-blog-post---version-7.png b/mkdocs/.cache/plugin/social/assets/images/social/blog/2026/03/27/test-blog-post---version-7.png new file mode 100644 index 0000000000000000000000000000000000000000..06d3f3f6103cdcaeb3c7af1818ff74dd07e9c5d5 GIT binary patch literal 75290 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 literal 0 HcmV?d00001 diff --git a/mkdocs/.cache/plugin/social/assets/images/social/blog/category/testing.png b/mkdocs/.cache/plugin/social/assets/images/social/blog/category/testing.png new file mode 100644 index 0000000000000000000000000000000000000000..c6d22b02d83ff6bc96644239f82a35ccc68c9def GIT binary patch literal 64697 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

Ar3VS014|c<#jJOnZ_F)^{|<%Y7JvK-OmP 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 literal 0 HcmV?d00001 diff --git a/mkdocs/.cache/plugin/social/assets/images/social/getting-started.png b/mkdocs/.cache/plugin/social/assets/images/social/getting-started.png new file mode 100644 index 0000000000000000000000000000000000000000..06a2960bb66334a22d8641cb970b5ec0f603ef94 GIT binary patch literal 69915 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%0DxDLcmxAkhxleKeO>+ucL?jgUJbznA~Z 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 literal 0 HcmV?d00001 diff --git a/mkdocs/.cache/plugin/social/assets/images/social/test.png b/mkdocs/.cache/plugin/social/assets/images/social/test.png index 06fed73c26b8be80ca8417b3eda878ac1816c95b..47fa3e3ca17aaf4ad49f43e640368fb5f5a98103 100644 GIT binary patch literal 62892 zcmeFYWmH>xw>{hzC|aOMks`$kMO)mpxI;p4D9{3-#a)XPN|EAjg(3+gP)gAd+=~Z_ zy9Jlv^5;3{IqyC9^ZWIF$rw9h?~LqabFI1N@3W4U@*@ITf_wMwJyKP9t#|JpcE!DW z4?OW6-hHDj>t}lJ9>z`ewH&}ZYx~+O?d_(={Au9C<*u`Q2Mmp#krGq3A-yL@#{5F< z!Hakb6*d3Yy#ydo!Uxs3optlgO18-#{^d4CO{c~u*5^@bg{)tGQDc9$#JWV zk(Qa{2c@$7=aSmGzuNHQ+yA+A1V6E)`PbbUIEH^e_@AfOir(E%`R@bX^*bqL?}LX}a#+iKoBE2T7*p&K z?1Z27<(1+F#>lx#v@6Bi0Ah@>`C0s-my5hp(7&pMNC=v8k?dvDUerr_@jNmbWsnBF z{8j@jGT&xhs-BC2mfmaK7yT6D0LMe1FO#!dqM8T3sul0jA@N{n5 z_4O{vDPuSm4UqJrsyqhy$rE97bE;pYLs1qy}hCou6qBiS;n;&Ba175lQ- zxO1!;mrm6zq)m2pA4 znJemvYLHDDL%78Bo%5&6&VMe8=xaBABOyJ>7!~pz->u%^=4ep+0Tv!TA-HX?8P$3SADvB)zECLJe|9-+sBRKV}$u}5IP8s9Tm-q2usiTA0TOerK z9st-9mMd-LiHV-Zv!;_OCaC{57VZm?Q0OvA`yZ(4fAkVxDM|IYkPrxb(bFJ44S*%w znigE|L3Z2@__mg|~ zyzzpOQyl0bl%aq#CpZ4F5yywvrwS51a)4VTYLQzYk0)+!K%_J7Ht{_$Cec@E+-_hT zcGzH;JiVAr8mblU1d^FB3IF#Wdu4x>8O@bDQwvtkuN)t(3H_-UmV}9)baD! zM9eM16^n>}frS3-e$^~G(aR$KQ8Zrqt=n7W4{Ve=RkLz=MhU1hx`%W-Lwth~r2p_0 zk=H#@Oa z$vgY+kk=wY&9iD1+|B&|fV^WE;zt(ZL8e2K_ja!^Viu(jYI+ZDO=${F?~YCBpcgXH zcM`sCN6eXYh8r7$SYif>A+Z?*HIg0+#S+4v6yMPe(72igHH~82Ms+j%b;z_9WQem5 zqQ;dAu&_74(ULB2ic zzWa7Hp*xsIYv9%|kcs=?!6t;+^(PRkE2wF5i`Z$t3g}{cCOEa}>_6ZUBIG!b#XC)F z(YJ}E{qE~$Sz}y-W^aS!qeNL9(`tbQ(L7ElRlQEJLEzXS2$7lyUYp!-OP_Oj)rk(w zjechVTr@B;a1x%Xe3``WD1tznR+>cO7=q#@&f4D$cBRnw?8=xvP*1N&!r#k?U=-Uv zKc!-p@#EELud%7?OcUwO72P$`fXW;P9oDYP1iJ3IU*M8x-jH|S`UwBI&Hf8D(k9l6 zpyAJlu{Ch@p7Bq1z%$gV3)<~Dz3ccfb>NrP%6$vT0zXbR=>2DDG)75GFMB2kek)PF zSx)IStOgj6^wut^(M7@^e0zBTy%258gwM&KX<;B^60f+&{3J~IkK2AaMV5@se z?lbR7Q-lmZR;MPLp7HG-)Af73L#*TWerNIyzNX=}MJ<;$caexPq?6xVQmF~Ut7!YE z-P{@sI545OUDZ8T({76?rS1ZM#VpcIq8?ij7U@%jRf=#lV^N%1{_V+bpy%Wu;!%Pq zsMTR`cy2?jsd5&(7Js; z5Z!$Bit_{Zj8=;#iAAI@%*JlB6?4e3om;v$cE%wG+KPuCRGdDFyq$9z>+ zKeWIGr-?opIzM_v8(AgJNd1$LNt;~{G4XW7HbIQgH$ z;X~p+UzQn}!gSDQ8JZx=4jtedN=2a!DQq?hl=WL(pwnml1m9Wd`v)nOMjwR~Ki;05 zsCri$a|B&>G&>*=w;x;`^RAXB9$1*hU3E;8XE4MHhsn6MAH`WzG5W{&NcdXm!>5Gp z{=$>~r&e^bEjgR0+RG1dO-SgYFBv!2ISNIvfUX)z5eN7XSQ}_r$f<8DNrUDsXjzL_ z-4HfY#9^iRIfdH&7%J`Fkf$%>3I)WiPL`Cz@1iw0!mZ#wT0F;o6*1PLhe{FkjXeS; zgAz1w-Sw&k`5_QUYbhy&-~~{zjl%{q@cW$8n{&&Ovr`o(bqr|GanJw9(PbW_9|G+_ z&v%t9-#@M4KfTbd^YC}?anWwLfNdzB1tFX<`{1cjlU^BrkHg}1iB!5vfy>>0YN~4eK{0^MPtmnrp9PVtrQKXy88Rtk+wQ zftcGcdW+G3L^K3GEEa_u)z^MVW?xk@*Jgh$j)QBDm7ys|Do(#~0wrL}8ta0{Kf}4e z;^^)1IA|jH^@Hw*X*Zex#*MWOJwcS|;%E+ps(a9x$0$@AM*^vVDZq}TBb19G+6BdF~JzJU=eE458SJ-|`|4)s>$;MZdpjN;-aJOi8+V0ob~@QOt?e%7YN ztw=XWm|5FVj3I-vvDu4T>;^Nr1#PWI0IQkjWLWyyTRrh@AND$xD+Rg<>6v%&>jj^3 zi_SGXo0)^evOI85SY3r3o_nnJZ5?=U>7P#Z?3|?R`<+VcWQ{ifzuQ~Y)M zzTb%iLk=bJN(k1t`syanY9bYLG1}n%49b2Sir?S_9fM>%Ni)~Y5YvC}GhzT~@- z%BxgAaZtXm6!2+c%Ul19Zx6s?yg3km=jb#riJ>DQi4$wVo@g zEr)#P>dP+*k`SuDB0vqf;nKW51IvP&FMG!(hl+*(D_u1Vv9O-~_lZKP|pyq?N zh$~9A0vdXFAutH&ZQ^%hoyAm?-agU)>F>HE3!n_Uh!t-dR{W-N`q0x*}g1(`aj z#l=bJt;LbV?@SB={8wF?W3Xu?%pY&dRU*-l`COX65$&{%mr!IbG7xRk)wi{7&Qm+m zBcS|NhX4GsI9C2uHZ~AM_ckl$*55EcV6^$}7|!Lhx*F8i->;id&PFEEW$FDn z24kC++YlGX&hGS^$>wZ`1;RoR6{(!{G(y!bSX;7#bY%R2Y6`#&G6RTQl|?h1!$cS*^n`u85BMZoXL+9kFYn&ANbWCwBD44{SL zx>A0s4$*VBDy6;D!YFOX$8v%>*x{==EAD296u(Gm)5VPO75xs!NnLgK`Z!F+-)BB# znLGlDy*Q#%_p&6gL}r)_{mOJ^64n}zJpb)F2#Ho+3q!gq|6rk*;#ho-oPr%$Vx6FH z8>-C0pWLF{Ry}~42-~>>Yvn+%t*7U05t1@5s~t=LwJ!k%5kO0?mvGLBo0V6C;Vl@8 zt6Wj^`R;Y%@`*K&UO3YErLE-P_FOtx^wuH(X0t5b`4kb9PXMRzu7)040mTF?Za>#~ zDV>GlN?FWCUUf*2H8wwM?J@V5jS~z@zo`3V76?3zKH2No( z10qLjdb>t6BnOq`}mUQ}YQPpo;v4Kzd}2#%}6t&!o3p0~m&WB0EXxtcj#3 zeNaI9=1+F?ZbnoaWO~5mxZNvp)eWe_GIYXK_CZQjgPD-9reJOYZuso6$`B{HB+6nGDI{%(nh}JY^_4h z0laT!%u4|cWS{CeKQx+H&GH)BTD}G*lx4UG(P_MMj+w^Y+E>RhKgEqT`G{j!Em6c- zlr!1%N=EiJo+b7OYc)uM#{Z$Iier3}j&(ch#TXeO{Uew&3(% zs#tEjqzhU+3G4LGu=P7_e2V*k;3~5!I4FoIR)P6GLpJ%%*ypfw?360>$-K`2MnCwj z-94KsIz%FcOT!*R#)o7)#}dWQ{`^>uuYY@dhXA*0@2QbBRA;caU5rwCz%2Ui@HlQU zX^(@>z)uZq4}unB!wO>1kF+t#$Wy%@6hZx5zr$4kS8O5zO^Y0=^HG4>kFE>NYMpsm zaKdSPk?H?9Ic6+aM-i@){+e9|HyYxiL@AYsr6Fa2BHP(!4|B<+iw=RRnvJtcPW#-l z=1pBwnY>l@{<+)?l*rP1#F{HTsB0)_oEr&Pq!iETq<=h95j>hi8X-DgGPS0Ztb%!l zd71G_2s6$cqGBeu3VniLE%zcSYb$fXD-jn%iCZ4(%Yi5Xz;$N*y~RXGeJ_YUZdvEE zAwBol?ZNE%@T=y!p7R*umBi9PAVj!jSSdavVO8Gft}E+!7FKe$`8<90{t{33r`n0T zd!~z#;gcZb(^B%AOs5nO_Pgo(H|wAWgIcqKZqrOI)^{$o%dxj^^l&( z42T(gl!QF^efWXg{8|e!`H#y2qP?o2Tp@yb!13rCHB%546F*I%v=1iMB(Vjpk4u#| z2Xs0H;^-uTIX#Kq=hg>x$#4B?xNvaw`$1f~t}JGe8v;GCl}9%vk?DhMuk)91-SZ|dVYM1hPwTlS_&X^cvNG{2o$|;ehxU; zv;)btu!Wp)9@7FPUNKbgE??TXOO(RiRFhj?JLm{%yfaT`Bf`~5QF{f5VhWRo{A#XO zs1i5#kn(57_yHyyj&oFv_wo!MK*FrtXCP9qnmnvSoM@j|qTUr<)CfE35RMLJ6N0ko zzc=$`<@!hL3h8g5at`MMt5ybOjP~d6x=`!;{%@^awQ!H1GJ7$mjDTc?f;z2CwyQA* zkP{H=EL|WNwUxGaJX97vjc#fx^?!#!qg2)(_7)dGlILoazy6#?N_k;~M+W!6#Cdz7EnIF?Qj*8g=ktlaq@CH@eurL4s&9u zKXS0WCv*-(TW&_}gMSh(z|64N8?ex@%euolzjT7KLh~dodWXi*ypMxP?+9sQd?S#B z;6(-5?C}OXt)`N_r`6kax(*ifWN&@Guzpw=xg$1keTw?~Im&+l6lVN@A4j|MXCWbF z22bC;%NH^!XM=i?l)Y0%rCSEX0HFk2dr9pRKw~{1JZ92_^ zs>_pEPu5X0myVG*M8!A+;WmwBOE!Hq-2i*_wQ2G~<6c@IV)OSba==dhmM56O+l~QLTpfbTz0ROx&e!E`fAjl- zNLl*Vc4x!;C&s|kY~Sotzbg2FfJu!K`DtbV{a*uM|8$qT$pWQ?hSZu3nRHz?)6hV3 zR1dr$bpmBl@I)e=bAomj#KsXFgcA4H8+O5~UJft?x~!Vcj;}-0K{`OP^CZ=`@ngvr z7!VNuxyKg^O5gAHC@?$mlj&3bY01~G{#acfej)OM`rq^*+t_7pb6pOW2!WKT20UQ{ zghp5ijmDwccU)zzs?Y*LD@XpLmEjI4^_HhhIbU1Jp}Ie%aZD?xO925-$3%H}FY8y@ z0O2JXPK=K>VmM#4ilm1Q=X8l#h@T$MZHSLFP6SV{aBZCN^g1isM^(I-r zn<11gWLDo{7oC1p2=ni{w%|t-0_5O~R4{DJ)u6gGz%F^5;JY}Gh;{h0E~V01}jNgxbDu*)7B z`-#bX^2SF#(|mCUuwa>QG-4=W^8ZSG&>#jA-v$E4)sO*sCQC(bTfZK~gQmuP@huej)?fYhJlyvcwPBz79G6v|K#;EOeQFkk#RkhPpQc}`ORem zf*gKe(gOS2X6eG$psUS&dw&zJn;j=I&P@jV#8{JsPGwShT)sr43L3V!Gf_9LtH-Jr zVJ1)as2Y;W`EB`qIc*9r>X{ovr&}9GWqDl}*QklW$J}=lwE067I=i+%%(OWfLbyI5 z=C{kO9e6yxTbhJjq77BF6{99mVx z*{x)aRB8c6j|sq@y`~}Q^D0oQst4+nc#*iHXcfdJJDh)D<0K!P*Iv}Ky+{fln^0#j z4@Bh(Yv{YD&kt2$5Ej-ySJem92F4GgwFG+vz@nBKXoTlMODzUw#T(&@c4^^ zF_0Vd9aZ@EB{vDM0#fy%Zg0^`JK3PSaGJJh zN{J=!^u5<4`*pY)kOhVOvbxrdd)PmZz8e(~GpK{z_ou({EM~pGP`T3+ueDkr*zGX`tye)?{c(`jERH0j&3(uD8wRX9g(y)$(E121-j1x-*xhl1pv z+Snc<;wB_69!=IbHIFoj?FKaVRdCsLr_b|IDBAcv9iK@4{fL?f`cn-(sRz4Bhh#hz zvR{8n86VRs!VZvl{CokiL{2l31c182*U`K(eT6O=h^3RIDSnh>yl7iho zDwuw^VqG-F@(E}&~BjJ zoyRxpP=*`I;x>~!TgswLdmgg;^C(7QF zFSK2n2bEh)1LkUUW^cNsyNWH=edke6?x?z^U!{#Rh#xOc%MafLeHx{7y1md?uq&8K zCSA~GJk8qSf}5`f{4cYb_Mxy!bxZYt;cl}nsNIxSGbU8*^L7V1SBmCnc_>;3n6^w` zR@O}K^*WXjw6+F)sj@Yx%{1PkJBuv-u6L3=^f^om<1ndj#aO>Z?>qa!iZn`2bzFz` z!-gl0D$DG5%})`oYs7S&H5BvCwM5ROTQmUXA#huNnd^4#$e!XrE|pfUXBkY622EN* zJme2y^;p;DX1}k`kLwNf%`kZ(oPKQ&Wv_M(LILW6bud05o2k?$CyqSR_owedy?}(e~Y0 z-ZOE@vTM3QrXeeyoX5B2)M4-DK5p_uF6&dB5n24D!;bCH@A4sm&-LdRWOaoc8!_m4sR`)uHJcb#7W=g`QI*+GR#b% zEz4Z7&=L8 zdtrPp$dFp|3zs~Kr|~!8%?nnRwG8;v@veD5SADp`YieS(`q?+hFJBx-#A`8Aw0#6y za(y5t7XC9(6Hj5Ppt3G?{-dBW;VYkCLJA<*fd0X%=ISqrBDULFS$6%ny>qt2uC6@+aPFx1vtiC?+UvQAnypJ}DPh{k-RFakDyKa5f-hMZZ@m|+ zk?gL=-jusx_qMsu_xJ28oM+?UjNp$sTcE;!HtF=`d9MpOI_&`~PO ziH^;yBshmm8a2&@>nH2vUf9pC?^=+pP69BlfF?Q??-Q`dgui`~2YoSvUd zJ>Dj7`(ArL86BHaf|KM!4C*gqyF*EoQ&OPH*7rPs_bC0;PLo4+s0e-6)#SC=_f};` zbYG>9sY4v%UdPw-=zaXjMCY5Q>Q~p&L@tJ?Zf=^+Y&=2n^vbDn{G9u&4eezI&0^!t zcAps7T&|L(;-3c&_M5#BU?&?9ivSBn1_UxN1WCGH)$VUs#R}LKW(WZzG?}Bw+1eoi zPQEIawW<8$wz}E!l$0*+ zZH*{l#fh_L-c_=#df;)zdVxBz#VwOe5@Ez4SFQ!e)ksG-QtT=9Tyx0hFAA%BjfRK0 zb2-saH{zAnU^9oSmGEwMzV;gKX1#?yB*obyt_LX#?gt_wHa)Zt(sZOw9 zgj&%uXS!CF=kT8|@vGIL zMb*4;a#Mm1U(2oYkeyV5)_0gwg98lAXH-4KY+Vu@pD9jLsy+nq(M4UA7BcyFS%`L? z+e&2JpoLeJ)frs)deOtX=ynn9?<#+SQ7v5W(@BHqD zn?<=hj_At&$BSR6nD2(*2z36rj8DH?J>0*_?d``iPh_XlC+609|NND^EWWD@qBEpq z!5H~;b>*PVKRtgp&;2}(l0M%EN;+FmvB)iLr6LP4%R=y8W)29ruD|T;a4a$mR+cQc zDD?m)Ju^l?shnX1Fr~I$g^!+u489z$6SKy@YayXf*6_ve&7JxR;(SzLfhfm~BlIJo zaR&yT5LFIgGs<7fS!lI#`oVnh6j9L=m{BakA>}0?3da8j;CqLt#)W=Ho2F661}q4V z@7phy3JG#w;~~1I$Q6WhdFH znG00D8IGHN5B*hvGSszDZ;?HhV{VD^zw+Szy}96^gz@~?Xlu?Pvr?_MrUwNQx1$>+ z-&BJCo~v-CF1m2-2CQ-bt>ER;{1+U1sT z4%CdjR@z_EZVpIuAX-dI{Kex;aU8zb*H>d&pBr-9Ym>E#_e$6v zz1gj>-mO^Q@Y5fVF*YA}a{V1WFsb?@;u}%=o1=DLFE<2echWWxTCHM`Et!mT z%5UR~g{H%SzFa@<^)+su*tW(oc&?bAF z&U;e5OY$q}>-5v~91-H_aG=F{JC`(N#^(_`IV5g}EP9q<%Z(lzKZJx&^*t!h+1iFdZSI7B4o+4X7*y)zu0Kl9U?g433H+25JW%sV>&B zii0ZKmI}na#I344c#D5|%H_jw)~O$hs`mAg1p&=sI4ghNysGAgI_xEKZe%oRNtis} zs*dyeQZ~gn4E7x7IHom&fs6jE&@!n-8-%>QpW>tci1}&|o^0hJ`tP z91Zx+_@=YX^?Cp9h2s@fF&3XE&pYA2wTF!Yg`jhMf4H5zrKto*V)2Nhj|Cdf4VMz6&o7aqcO5TdSBN+JP)S=oSN z_^%(T=v9-L-&p1D)+Jmsf)jW}KZTEg3HN-t561*rJNooMs`!;9ka4RlB1D|{q`eMy z7Cc9$i5K&uk#V-zqr{+`FRT;--AvI)_lG#1Vj2|h&PdF;YdgNU#fYfi9J>r2yu%d3 zRu^|q=7JuG5d3F1GjCdr=K5Rp+b_{oLjM5}LqX|jE4f@D-z?C>(}@ye4iler{ZXa) zq29w8kW5(}r9lVG%vD;vs~&NZbX&iEfjvjpMiqDiVA|9MJf8|q-I+l@&vxiar12e; zjHU*32)`*=(HyAqPYSubw$4t{6p@TwbAOd1Av6=4b-j}?AuUqqS4RL#@VB)rTE^Of zS!=+4yBAvnBAMSKOh+32yjh*j{Hev7^cD!j3}N+>TZDov+(c`*Y@qX8s?ux_UDaqdG)#3tD zH|!59fjG zb9z=y5`B0Mk4{b1=W&#@egl^Djp4%0NI=!rFga1pQ}48HH~NVcm8!VS^wa)UR*8KOCthrkr?AO@6PyS?9jn#AH5 zu6@#7*vjmk5NX?zp7={dL~T81-yWKoqf=c4{os!rM@h_~KKLz1m6z`0(Ssa5N7G(D zU!=@AAT1we2#S*`n{kUH3wg$1b;qh=7^e9sBIoOJR9Op`b?nDTKs!;jRm|OWTwGN} zFVsqKrN!dGUb1P0KGocDL?XCXy+N0pWR})K6}3*E8`BdC^?!e=gfL(YaU|w}AyO`Y z>%xMOqT#8nSuAC_{K#*x`rAV%Oyq2L)2UFWK-C;ZRCXcVmVj2)bbjS<5;Xb#Ju?NX zPph-HNKAUtDhuJyb%7CovYO}+2)$cRBWb9?huGz)%2L`g-9M$<^u%)^{}v$M14Rh` za6pgNx<(E!M|mv-P!h0xUJAITMbS&3Iu71Ldt{0g3Q5DL!<88#XZ)P*np94|-gAr1 z5iz4By;4ZM`(7by>=OwvDw6&5-J}R) zN@?w!lx4wfSria~xzi$Ju;9R#MFsY!dOWTaMKKeLN?)j6-{)JN1dO@0|73W;*F5D! z5{dQpHX<`Jv>YQ8TmJqq*&;C9;_^3@^R>GBYrE|u)*iM`Z4{5@pLx1vk?#g>ypcY> zW}K_^TR2`XkN&dZxy|tcuoI#CR+1yoD|4;9|KE!Lee*7$0*f9BqRU^#xMy_0TQ%^yEl%lDr0xpKOEsk{hCh>fb6IkQh3Ds}wq z9`X_&3bSLh8L1a3b;}?~MuW>lX<&`X+QeRR_6ax6+VGGze;j*CUl{c z$z#NnYt}wmL|0^Ul*6x$57XYi(_DTZB^>T4jb$KbUls#-h*+b{siC9}V+@=P@0@3& z{+G9D9tm01qrpGEWGB|6qrhJ;>^gyfq52G4!9?&F6UUf9N)c9KeFg`1?M~X^P^gQf z`U@iF^}xD2-~RNQuXXq^5(T1H+WIBjDK~7V3G;QQ8;br^6=!_(OL&~d@l-XlD$G!i z2-m$vBz`1b&}~EsOU_wZj+OtjFP*LwlO2kGQxbxz)7Y!!z{o4L%)6r|H;ki+#UK^5 zw}I%U;p@bzGOhx>w?}nMcs3+0dGpQjM{Pl8ZSO4{k4D_^?d#;>qs+s+0zO~z_g-v)CDy0y6j5QSuK| zxPu>#Ziq_!>V$IDcdoOD&-IW(W*;iQ(a8{@aVPxL#tV6z>;2kQ1;PoP^Q2l2z+6#x zc9oCo)AL~~FQL(ex_{aMLgO5-pnSa?1(2z|=Y(-Cwp{ZYoCaGt*vb;pG>=Umnha7_ z(4+@wfBF{$&E!it`9#OoJq|lCQwMpZi5?LRt%}iT7^8B$?nZfhrDB;=jPowLC z;@YM1P~B!BungjVzjvTAWlS^|+;W6K6mm~5OlOaIV{1XZ*s~GJS%vnj%M+Cmx-!W} z=`r}RCKU4Lyzw}w3J`~n3&4vs6!k#7#?+uUF?$JIPFIpn=J5biV0XZr2D3yz|ZUn&gEPCt$HgXjJGBJbgnvEHG~gJo|h>UxbArkI&TC= zFB(|Z0xJUV7rGPGgnxtE0bUn^OP{{g@x#_FxCF`py7E!(IFlUZv^82$q`fLme%*O= z&zcJ9gjF(vV~QnvB>QKfVc%9@xcWB>ag_dODy`u?8w#VRJKic39tal{NN8RI9gNZ6 z<3SnE*wK4*0EMGVNb=a`eEhjs!k|IKHDv!jEo4bysfoI$83L`3C<6yULsP`7@d(;g zamGvL`+Zs_lEvph$wrF#GhW568+m$4a%6u3D=jfx0qquSwPe`@A!v{2Z_mnEa)zC# z%bg$@s+5nl=fDZ*C-`i%0J3%sz+>DK{?q(Y7`_?aiV5=Ej+zsEseR2_DTWWGYsUbOa{$k7BZI`0Q`(%V&Pg!?t{F!N?%cPzIBN@E+ zzr2C8m#yjB@rX@b(&I8{M6$VqSfG3lc_qz$+<@=q@dF_AjS!#O*2j{lsUoje?i`9p zZM^#j3@)*M7=HxbNSyXyNQvoMitdC@@>D z?vs~5KQ9s9;(o1#OZ}8qLa7iQ1=D`@;1!`k#?!JVm$heCI5uhWZp}^CghXFFq_0bF z!y7mEjap}xgRW^A$0Tz9eRgW0=mG2fqUZGjKz>2{RfXsIpzKd}M5guooQU5-P3P^Y zk$PW6!p)Ii90bo#NTgn82;n`B?Clslc_HyQ)s#lMM>H$J%neo)B*V)%bv|`50X9#r z@CUWFbb$=(kaE_-(AcL*hT{dOElzMO6d zYEv1Xwz(cTQhE9irf71Km~uqad-UGRjclITVVnIo?}EQehpjWT@?PJ6TgK?R`%3Bk z#|tM1ok19wuY}2YTE8tMm%Y?>Xm%xi{szRFq42&E!S>$Cq6pJ0VpoLw`GA8r7zHQZ z%r1-gwMT1L&87BKWL7f+>+SlHk^`KI(b{8TL<*l>I;(O|EAB`SSF_UhGt?Hy6egF4 z6tX!ojk^J>dVT1=2oGs_r#k7h5b%_JS}>EX+$jGzHtl==wzi?@h~gT6mQq4ng{`te{g4qpe1NjogNo05pEVX`BW|Zh$TfLuqar{+qYqURKO1~T~^YO+r z7nEDuUQz5`Q}2$E-2E}MA%Y*1^@!MIU!`;H`+Y|N_MWisI9*f5^3;OyGmBU5Q$7xN zyvF}nv0WR;8x!@JE^!C9_;g^J)$uKKMA2L!IW#uG^INtrrJwK6a^VG@j z-3w%8GOuJ4W_d!yDZlQZQJKCq*=@sKO_CJx<7x|Y^Adf%*Z50JpCIyT*rrSO-d4O? z**?PJm9F}|*2D8~3+rKkimP_Pj`Jh!k$u56vV{Ibi7x-?SKAK_v^^&c3B#KBslBHN z@vD@L>3qF&6i9xhi7hzWS2tJ?p+;zrT4(38-B!%-wXfxSz95@a#Q^?mk#CKv371Gk zp8Y1rj#K$``a$qCNqR|$sz> z+<^Gqmm`jTIw}a}M{jmaTLf|uVW(oDwLP1Y@Rt^IooYAc&)76CL|>?Q+#h2J6`qC$ zu;RIiyN@;kE~lmxo660u(2bFR9H_bvQ!hBK(lHpCp>BKmFWC{)dbA9xaM97ZMc0~YR`bcySLaI%Hnyi;s ztAheK^8XOL&)FFkn_XWKxsb%TnPgo(N|V|a-FI#c#w9oI^I!v(Og+xLq}#jxtQd=6 zU+=r!mR!%BEDLQ!`v(*i#?Zy%;VIhX>5}5J^0KruTz_2(Wruuaf2>?cgm0t=bp2qa z_2;5fTv=vqz5NLV(!LIYVaZgfpzKWjD}$ zVKQ<)uUfDWneB36lX)`EUG+nyc-wiA-+v?L-lc1k^EeA{pu_z8J=uR7_hYT^X-m&9 z_r$KWXoo2m6G;A!302Km|Lp}MwPO~m-?I)8TtU}2qVJtoTCnIYhsYGE$u=u5#-1Sb ziF37#E0}mwO{%9gz&J59ZLLB_~ zhma6AhVNkYZIaBeH^HgcjVwxo?~09U+;k{%N{CZArswHidULRu0GJi#j&hz4O8F%T z@MSL__pPfQCY>utNuLZ`OP*o~i6UMo$H7MJM7$R}D2e%U*Ys*E{nXQ(*aiK+*odl+ zzmFGsD45~a=qhc{AUrqql=Q*BjT`2c7zU=`5W}@6KtCJDYEo8BbX&klz!qNmT3xNq zy54|zi{cw1U^o@x*!lM11MY`_1(oP-8o2NUJmQXA0165D)$v>}8%_sPeJ^eo_L{I^gROdn)cqBx z0FoBPku{v3d^1gHde3!UYcr&B^gW`R&SG3S4q0+uXa(|3l(+tSzI8^~mAKfg&>h$O z61`L(tT1}`tat`*}DE5BBUIr)4)DHA;!SE!90pciv;{7CYRfp#NRx3QQh5x4n=& z7^SK`J9gln5g7b`Tzyk`WLw*9$F^-79iwA)Y;??yZQFLmNvETZZ95g)>7-(tC+GX0 z^M8Avc~MujZsuAq#yiItv)%6&6^6ue2R(d%)mkUu%t(QsK#4Nyr@{qb*0Xi^Rg6~xmaxk*-bGnY5_z|sfFQnhu0K2-qP?dDB9zca}I!Wz2N@vm=bD`2khLbbwiSRF6 z5ul7frnZx)80ujjZU6eJO6iyh&=%lDmXgV1uDF#!h3u{GF-qyts2h@KqHV@se-V4Z zr3S;n5BXzpGs>((pA*YeCkg#6=~skv^5~UGd-$;8>{q5#pT( z&!WJgjm-8SLP>b_c}sgs=SyAs)^Sl1ysWfvnyytl1AV1hKYYg#n-TP~YOd~*cAcW+ z4BzJITcl$W-F&4BQdOS*HO^`VA_f<3|iwS*n8yxH+h@HPJ zgU7!XcxEBUxSn2DtuzX&-!+0-rllipe@2 zXiyTq?koW9lU_o|f3>ia)dk8H&&kuOj}Re7r%0k(7LSqgs6kzjLMpCk4p_J-J}f`} zvbblCC>MBsWHfkeRafY&89E+Z)6%}b70b?`O>&8ROX(%u3#2IJ>0YEk#OJw?@rhDZ z6vf!GVP8{7$SuX(=uG{~H2SYFMII9LQ8|-s5p0*wM3Euz<=p7wCzI@LejcciH`xbY z8~l<-FEf`o0lB(?6vtG36&No((B~xLuY@X=w=-&+<&2yMYiWuL&Iaw3oi431l4UE7 zwZS{%8;+aLMk8=-B7YEfida1*Ftb1RF(*M8X#a5|w|*apr`F1brMX0wrY^B^MglPU z_<^VRF+QT{cWlOI(JpWuxkstpXk92r82`R35;c3XUb;BCMu!hoEFR$!Mhwc1Fbyyv z?OP;8Hvv~Z275`&_eD<+?D?FGo7-Vr%JR+q-ITg8GC6}wyZ07V*kXX+9NmSjWT(yqj-b@K3XZ2Gsx`*^$*_*3Ac&-C~%>xiALu% z>`-DVi6doY$dVbXI&%^J$xEcmu6zt=fyZUOi)V;Z-uG!l1{m%`7~nkul#yMsJ_m)2 zEV_Y{)nuY-&RAyg=Utq^m~t3a6SXaj=g^CW=GgP zAk^f@BjZJ0qJq@goOiF&|A2Y+Gbvr&RI@KLdo0CoNeJzgqmIK}yw{pVRrTzb@-^Iq z46xKJ#3ux_0LUp(v1BOl3CYoj25FV0lLIKh(rJUo#o9pN95k|`{yn}It;ve-v+2ux z{2@G26YR#f>u!3Uw_Pbn&>cQMb0-yKi{(tX$hfj8>l4I*Pk!lkD}}JKyX4Ateb&Cg z|3b36Zg${@kO23;tx4S8A?#{v$mOVVisXM}Tb0J@^*))F9#o-s$KW(cf=-B0?#OEJ@(9z9LL^})Cc?=%+pcg`q z{Lv!e)n9CR>wukw6kJR+k5{QUHgD3s@sGb>pHC`$E`jGoY?`53GUpx_B*H!RZ;Bu- z{{pcj2`>rB7%Flqafv~Z-+ow;9$R7y1xX2JP%}8v^*t{_){4C5cF{aE>u=k(KCdv{ z$v4%uHD8sc@_-}PkdqMAHn4*SHyz8uB5kyle?^-e8l1ze18n%G?29Kzh*=F_eFHO| znxB)p_Sa8@|LeQet*c*7()Yuc-!b74v3HIk)Gm>AX+k*=70XrDA?OCpIG+})E~s@e z0EU=fwmPIrYqqsm&u^vn>vy=4nq>`S&a84dU;g zy1UXYtx!z{6zYx_8j$70Q?^hCzH%roxx4Q$JjpwUyW`PQ(AFb~!rT@;ngJ33XhC%G zK8j^LUcbSVF)E9VPc>czK88FN@EaadoOB@OH!|le3lZ6~7s4>0cO|GdOH5qLru4N( zO7Ze6e3j7V*T8R1oy7e?=B-EBQD-0`kJ}+SLcQ-IKUFPeNA)VkkK@bP{i1kGpG(IQ z#6Xqtjt z?mYVx{>G6-a$~RGMIxrpq@s9=32!TcBPe#uYv>n^^7$Z#9cV)iN8mzkd<#{XZPNjW z9Ipl})y}_`EUb(AN7JD@9&IRr7Q9X$XmISIwvs>8hyaT;`b zLJQvnQ&!d}IDI&@5eohzI{Ex@rWl#ZuI{>|5@E|$Gc9~1CmF2mt!>H#f+r+@bEMK z{s&$y<^gDJ-On^qwUpV()C{AKdKh_<PsxNeP$~v9_TJEEU{_vnU8$8nY=1J&~-oF(8UYrUFlgEsX~U_n!Z^WKu(5 z%giTD7(EI1{lWclt*8|-fhC9;1 z?OoO+wK0}4>mP3nw+8r5SElJfLG$Sg>+DznRTbgO1=8^nes z@+wcW+OrjZpHP}yKBrqh1T(@}A`ks#!WwmCE4yDj zDLaNE8p7mB4!iH#=4%kL%03p~+A%Rp;uC<4sIuZ%Xc8*n;!?1Ji&LFJ=-L7fK^?qO z_SVs8N!1^>o*L(N zZ0?*i&{Vekaj#ue3UBd5VIs7_r1YlRfk`URB8`e{>t7r#XQ?NhlGGeO59=92-dlUt z(OsbXYB63$vz|KUaypmkp%4?T{a_l?4pQXdyNWMLAl8n9+su_o0>YJZPruwBorT_G1i z%It8tO(@5J1Q0KzU$cNoSv6u^r$k5nd`*+(^x*DI1eBYGR$=BAOe#lGa zgiaxpc6AIocRNL4kf32-NN@7)sLNyNkqf*^Y0&duoM~SUZ0-vyiKC zR2#eSTqrr-hOZ%xjYDdp<8D(XJ(7LmeoHf};!GS&P&i`rH?^JVUh42PaEq688H;9Z zJ#DJYBewRAvE42qAsJc(TCqs6Q5ESV=@k;uolE+G0cB3cu3CowHDz4?0`%SE_Pp23 z+pYh2P4|3aVEK&AtGGi5`ou{j11QP281wH}g$*1M5DjaIE5Dph|8PO&j%UMVThmz> z$R0v2FZ!vkgh~xi?4p7$i2?4U$TY-gWs*EtV>w%0eSNif#!3TlZ+A%+A7>KC>)gY> zTkfbx7ZXj5xGAk-co)yLX3Ro39!K2mJi>TNZinqS8QF@Ko{DMoWtyv#V4nDvUQ~+Y zp7>T=;S-$v#gX8Ns3~^}!FO}Agrdr~z5VYHxx7o{NJwLSJ4&mjHnv=_VAvK$B{`^c z6-4wHw9iE51cIxv=%a*nEdJwvmL~s&5IvqtyN5VFcHtI*og?WVi#T{f{+T5!fCRdV zitTIZtN?1N$pJA$(8q@e&=C&eDP?>nMSdNyeu*lTYIs+SWkbfC<#+L-AR#nka%B!OE%h zN%OXbD@s+GxI&z8t-hv;MI&Wti^K$q9PT8IIJHNnB}9ONFRZVFw-)!j&!a4pk|s*+ z@2I@T|J6BlO^iI-)(z~bWjZ3k=I(quk|RY94f?jzR+&!J)=4~A5OlgB_Sz4Tbpg+~ zwI(VzSf*5&7Sfx53Qmrf1XMz#c&keCV=-g3WIz0hdryGqMb~d6iI-KGyJGx)A2bvs zX0pK7;%eSg2DEkDUBh1S-$JbQvCuGx{j}0U@#&CXVe;5tYC`2+DY@E~0G{PS*(kCR3g5zQ~+Lpfx$P5iHX0aXIxf=jGX9v z)&w5UnBpDwtn24!W9S!9@>rv)4Kdq<3ZZo|lrpkel5w5Y%C;h~q?gC`m3t~Xaq&zF z=l;R1rt`mO+KFd=!ia-i#r*{1&nr?MUNE*#(V`!B=jOf4OW4*Qku~qckLRQkIb)anz?dIw5O zWPJEcgTP|MsGx?9nB;FULHQvC6o?d3!cGZK6!OLq5jb2551voX)_}(*Gjo&!O*I4c zR2j`M*@fV{YE>g#G?%syrSip&Qa``cO`T%KmjDVGL43pgckJOUekpg?k-3j^_DCRX zEu^d{FKLPc(EZHf=zfJkw9;{5{$%!wg-=$w*Ke=6$>WG4d;KF=&a!gR=RpeP zYD|+QRqRG_Bm8 zGe10gY^Z$IN?|R(3k_x*k}m8W*qAP8c1WH?ifl|KP#lPHVPH5NDR38ELHP%ac$(~O zlgc>LVY`cK+>(>|wVYI52}_M^G_--Y%sfgYQ#jZ0!dus+yG`P1 zc5Pi;MKG966L{ZsPvJR9t_d_yAgC@$x5|G#`J2 z0M1fX{KkHwd1o#4 zUuSNd1&B}zvXH=a+0orlu7McVxq_ny=gY4C;;N-X7hsUMT4)_3F7l_IACU%C4GzLg zlIX=kH{}W3=m523(ZL++?9n^FAe7kwMPA zSxaDsGEC;%-;Nr;CSdjJ8R*gudH}7Tnj9>V>#d4;pB0@>ntdc2@6R63>kRMaN3we? zLu*PopOrywU7|Q_oQB-d{ckt96nZ6eWkM<|^cnVied(kW@_{R7$pM5li*TRw3;*On zu3NDwQf%>%2^#T0TwTom2*q|p=xJR=kL~vK&nXU0#Qt9a3B&UrOkLMy2&dkK!?q-u zRB5uS-?cmTP%BvU$ir*_Y9Q4xAu1~Js08___Civ9)R1Y_h5$(&r2cMSvq%Vc3EA#E z|F^zq%1HKZ@a#9+s9wT)ndtU7##uO4+JfeV-jdu7vSQy*X9%84YCq>Lq<>nJelgnO z!&x*isCA7J}O7RoveXGSI`K4kGL>WN73-1{<| zZfS_pUJ_%9sA=(}6|v0%6d$+qgk*PB)gY89l+z=~>U=;`_abPt<4KdT#C)jF;sCW& zB_Z|CA!#r*8@$YHDXqql?ZnK*kEd2krF-FN<8!UPG8Q|B-TwN$(CYQA-4X+J@l<1; zo{~7u(Fptsa?Ub_E=bfWQ6`#{;0R=+r$a*WxCft0G%oHb6}Ojl4jf+JGGIQ0 z@)$+7SvrW>-f4~eHvIB&2bx2BYAze6r}x#F$m162&CO@+Uq_{3vGstY>N&y2f!@?T zpQq6nn%oI1Dh^25XN2myw|(T#RO$4-Yt6{aoJdI*Y@AGfJ9>lpC9*GnX}I(TF-%ac zZDImg<92T*3MXVWeWBk&Mf?nLNwp?Cu3vxz-khH3gwShHhuAANPqm~&6q{gkv_d8Q>mrW z!RH3zs3t84S=CDjyU|90U%Wkblw-i*;RAr1Lm|;9su8 zGg~VRU$T8)mA=XGy$N;RfLcu6$v7d$?#-|t8e454rT`?fI-RTT3;#B%)e^X5K6h?r zJM0Q-Z|U2)h1^=`idEcl4g?O|a2ikjya9KtlH)h{J28q7;oLGXH}a7Dgw4!pDJR(s zS`qR`RxvYoi;Q6HZip9gkH$q9A?z2Sv^H;PnRGyvc9weCzV^^lpFywzxSX~NCIR8u zPIYS3IEp#bZo}zrCZU6k@iZK*OLQ>Ekm#kK z+b%9W3#kMMX0*JjxIP2DQn@Brhyc|DLuH40h}?{Nr9{tBMOaGpc1L}T z0Puo-1M9b&qU2fgEXKId-`zJr(t9<}Te~k653S6Z7FsU6`AIq+D&ig>E%HNHBTtu5 z(}+$shKkwa6FCqK_SCy|NquChGowHQ7*cq7r=Favx3OU?GpJmd3Y}eEln}T7hH5k4 zW>w~$?BZ`fC+g<>Gx<6^eUCzc;c0P75&1xu(nP-AWp(o7a=KU~>Hzhjzpcsnef39j zZ|`phh&0PJJ7=9knN2fT-eVY3|E-Npr&exDF-xa}&w@Q`<%N`*Ibq9_Yzj-1te2;d zu_8g3VC0TacGO?y<2F25$9DH~5srXx3#Ei754yqIv@j{fyY<;YlEf5bP$%TRxxumw%or1`{Ovf4I9JgfD1LdxQV3^4KeJqO2p(vc6M zy95H)7%Y_1$`mOR=Trx#cltEr$1;gfw%f~dP%)7qO%4ncJZPo>nX7^fs z>s=#*7JTdXw)K0%_Zzu4tDq%1QOY#2`$@+7ugjD}^l&MBD9)QZITSpaNU(iAt0Qw$^>ALN~>&}%FxxYI^=*YuOo?rDbZ36!mOp{#Du+oAE0oL_EipoJBwDOsJm4aY?&N`r6&5JQJI7ZVdYEFD53X6;$jsqLnA6-glD$JgWQKsiIw?&=tkWH+RCHGKk~%!JDIVKTFQW1P&)Gje3!K{>T%ixAZ3 z@9r5CJ+d0Rbie)aFlF@Ls{x!Ld_W}6era28cCxFL`auorzcyBid9!y>fHOx-PQ0|u z7bl5rw$B^L(Q^5JCf}O3(s?6$V~HX11vY$tW$q%XG5uIX}ZH zgV)2%5uIpzH%eKvnV9>>onsj)Lvd{GQ_4iw9d3t|>x@h6>d9E(!ul2nJJ^Jg;R_aO zN+Ly}WBRC66)aWjz}-v~@F@2B zp8cp7L1t7$Ksyc=7lKPphIzUns+FVh;*mWE#J=UGsPcuwFX#j$H509!2nHdGl(Zep zJ6AUdbt{o46_!U-0E02N6nTBQb{JT`CWfvhCKR;|N?lCK;6MX9JBA*7wuyrpGBY<0 z;$ZIU?_aUIACFWk!@z`Zy*K5YfBpTqVe;$locmW#5bt-prY)@L@U9oWz+pXcFMHnV z9eHp?ZJ|lT5gWvx&gHqEU0t&%*mJxu{cy_d;78&vJioivy$2h+NM4~!MSv3`QUe*RKU|^q3C$1HR)mD-fvQ{ zui|Re=Wc&CVqCBd3Vr9*FxhmOR6eNi-Lc8cSOqG#Qaw;Mt3fUmVaEZ6ta_u zL2=9UuW`pDjd*gpmE&T7MW~%yBr=VsUFT>QdHa2zJ=j0zX+5h9ICPpUwQfJ7<$!*P zq5I)h8_p5Yx^QI-ye)p2yQ9Ppe%q)l`cv8rI;TLpy>&Uku3OLL?z$n0crTqZ>a{2G z&eD>F^roKr|NB`Vu#Ev<^iXpD_nk z(sGTRWcW9-zetKjyi$u=+fM7GHi+e!s_pcE1|f~z(2i7$ak5#79U_$Z;y#g7hx>D>1}DY2yP8rv*MD z*Rd-DW$WIQH#VL=Zr#k*0B^W6@q!kWrbefwz+klP1`$tN)qXoIY4%PxA}V{w-xdrq z6C9sKBe@QE@6R6`mf9~YG7h9^K5Mnf8$xblf|E>25y`Rh_53HyBqX;-J~<&M4o&=h0X;wYuh9!YM0XtH%xP)Y|Hc8 zh`CDGAlDiW{HM3^-5R*xe@l4sxe8U0+)EYyC}AlQT7j_1^w?g0)997hhX1~Wf0i+5W| zLR(OWR#E$kp2FBKHe3R$ZFOGE*rr>KLo3bv;BRd0{@9vSLi2nu<7j2SGmm$%C6X zk_~nu=Tx$5{H&i#u){sOqiv*|XF38+bEH{5V&Dx(Q@PY-iHOACFpcrYcJ7P$?XV1=fU8+Yj^+V%0D;oOL(b48o=XFMCT^DvWniyKO2GNu0_##_WZNII;p#FOo7Uq zk%fT4o^m?ACNyi85Kc*%QAP$g3qTd9NcXNJbYNs=s&S)J!4Bs8UZ%4S%TAA(g*yFP z+J(peY>YS^{wDm!i^tP%aBtyFbtb6TvN+eGagS+*7j|tB)rHumLgd`nMY!Pi z0kv%|@3>)xgPTXf6OLTm+j6PLZe%dvrINz-Q)5^?_`H~K&I-C7jV9FlsT3Ar=l!fp zL{8<&Ji)?qfDO{_ZjhzLLX$=xQ4xt4(9*BX71`2ERa+`V4PNAaK=%9N_Hhp4bOPE` zh*(&UdB^Hlir$^!8mU^U-5WRe&ElWcp>Ex? zGl`MR)-<0=;Y*~r`T!kjBz>_}r=P&515~VC_~i6{NmUZd`!iv)a7{eL#VYW1l~4E- zUjO*ZiZ>kyo;hbNe@4k~e?_srsbMmnu`64$Z7_KJCBv5GvhU&+uu1mMFDBsNScdPj zAv>o%If=sbWd{79I-@lpnYjK_DRFY@%XnsRaH6RHcVZv(w7E#ZsauaJk~!);;4My0 z1_^-e7wN50;^OjRWNg5jnyhVg`=kOTrTmT)PpM4&?sfFLJjERJnW`FpWpyWppr*V# zNRul~?gshU_c&;=CjT0MMRlBFJ4Euh&dceqNH9A>(lIGXoMO*w&W!6VL_Tt3=2*&= z(rc_J$d9N9o3pN@ul4zCzLgAqQiVttCDzw^W>pJ5olsUW!^8$Ucb0ptC z_HmT1#9166HF+MC0B3(NW#;9TP7u=6g|urD=5-cm?i@Iuok9OUP6+Nz*yD4wSloJN zUSSA3Y;dD$We#t&GhHc6^^7*} zB)fPj2{2vV9|s_n)q3aO^q+TmRF$W%|H*rYD&dGo(X=h~-m?l}hgO4E0cG59q(EH$ zRhQGR3?h?|Q6-xsgdiMigqiF%I;rrtebG+SnIww${ABq+s4J>TY15Z~&YLkMA|*A? z>JEE6sbtUr?!{ILX;V&DuTWC}???m-V7(__!9s57-F7Eo`wcO%8{N?=e9jd1hF#wL zq=VZHUDs`DG^EuPQ9Ng>f33UNpWexTsn)avTE1Iv33&;YFs5{+i2C5(bED1=4A86}C3eGbXy?UU)Y- zl7i#)KIjk-C*ZV2I9V*kuIjW!le_)y&cY__3{bj{tQAK^w{DHuPFV0Yn}d+nQ45{rLEDOPm*5jiq&d7i>+!4@)x#pPcuaBW7xDV1 zv=c86`&8ub%Pq&)xHaMGF*{@jHabOjWX{<&I>Nc|i`7lk`xqu_<_ZrkZnNL4Aet%b zCw@>S>AQY=CXoMfAs|gEOKKVTbHF=XT9h%B@(QsnKeVVFZ<=Rd^6L;k+9vJfO331b zT07OWz6+rss^?jui6CSl_QWIg%Ym+svu$ut5~HmOA_D#&34X;$Wy_Z&1(v#%74vBn zJ$?UB(9|n9%X?*=(>AVtnlvBDU+=9YlbrzypR;{HefOn6v|MVQ21F2_1lgu}J+3 z&1D`56G^vUv)QUheq3HoqfSMy*XEIFUL;?=X2QBY!*Jo7)Z3d8ON6-$F(roN?kh*^@+;Df^9kQ zfMjm4gSGO};mBss?(mSqZ`*vM$XuGd8JWLk>gtIHDItrc>M2h;vB+t41C+uDFp%gH zu<62Qp=0YLX!99KkqKjsqBE!Sm*FjkIhNsXy#@QeNqYslIkXU@7{c{A<)Xsu&-+fZ zs4VV+b2uYmZy+kDu6jbihf|cSjErC?()0F{4txpM^^Gf`lQI`%I9nS@0w{EE&r@Tz z4eYs}?k%4t9LOfW5P#==QVDl11zz@?kr-;(U5yOKT@v}f+cj+(T;FXXF^aUyXhZ$) z-GI&zw5a5mKd7`lLx+XP*3aXv2Ngj+CU@iv?j)vcCpTmJ^^Z#>${stW;qAmY zqO?8DGP5ZKECCVaq@O8tn~+lIbD$leT30#z9_(z>t&=d|WznIGjGhwPo1h}*TB>Iu z%K6q%VMfn)m$BIG>hO4lEr+gs(zJYNu`unXY`%e5fW}WNlSWlwwv1est%0E07Wbj&R1Q)x673uybzhA0CdK>^T`vd- zvD-t@kQ^e?E#eQWT?D*$o6GaXN+@etYnVF?b6NsZ+hadf4~bYxUIk z+nGb`$L@a379KBYRQ0*5H!yjl8m=AU0s-y5Jp9-X+QR>55&eP|L1h|wt#)IS8yOcO z{n!H^FH0$pK1Jx2IM;nCe{bIpv*jH#K*f1463x7J>yT-2HA1fKFD(Guk9vp+Kb1@= z^Hpn|w=m7d4p~coYDLE~x#g~mS4C7rrup>KSF6U9et(67q`bdqqyG1ORA)H|HYzTU zW$NmZgdY($e1#!0tHlH~Q~p&Vl$9^z+{0yE_t%|woIZt`x&^(e;-;%U|2c+QigONh zv>?yWZ%cXFak89EXuIDFQ}L9Qf9&T@>@n!1#{iWJ{Gqq52cWn;V1gc(bKjx@NqdfavV%X<6)Luh!mi9EIzclNqCA z8(@X&NzFecIb$kx@X{PcR=xErWkE&IpOiwi;nkI|<_e6?r_=E9L@Sh@@`rkMJ60Gv zP;uXgiGt;+Dkb6Jo1&R_Aun_}%?~ciidO6j`jK-cnWLkbygE}9KXQ_9!->>FjjHo; zv3;Hl0Dl>TU%-F&lbLE`Bx24l$*2XECxP(T#5-`%(^+ZDoo9c47U%oVIdUQ-8dX@p zjcA%hikYd2Z>&hId>W_aSL{!KUV`Ma>qs0CcNQxj*8d^w{Xt~r=>>Aly#PI}oRHf+ zO54-d*Tsy9(vZI9Z%JvMw@y`5PjAaD;x$`A?20ylvx%U|$%O)|kRj{w_A?xIG>hP7 zpTly$cXVx7`Q_i00D)}Otc;orvZlDVP%2!g;-SQWu%{!gt*5CspC`F`#v$K7YVylJ zXO8YiOWi$QuHCP8FyKDcERfl3QJgQQ>FN?ef11onm$$ETyj>n3p%~Hrvl7=xS&VqX zB(=~und)sXH@5}ajTnL`o5W$BAD@up<0+2o$tu=(?O8DNv;v!N>(R{%2-3vwpy$+M z_1&}UCLGnj;f8yF2YJbMsIh*vm9Bv1uYj`CQsR|T3oaYP_tZ$*$9oJKp`2Je{vK0$ z3vI%<>D_}tLuS_6ZdQAnM*4Ov{;0XAlZi=y+Y{uD+um+41KF;7QW*BB_OsG~F+hLB zB>0x#1#k~A`B^5SK0h){72H8tRq}V{+BNRb*;oW=5Kj!%`xtfXJmaJ5ChVCU|Rd8GM!SP-uXih;?A z|7ZPmV}&-^KF$EkheEOdq)H2*ks_uao}eXi9MdXHa&R(#!Dy6iqd z_6KtHRr_^5*^<1S=h&OG`Bo2V=KIK|RKixu;!I|FyYr znm~B!LSyU5{`%_TwO+HkuVO3b!B17rKSED;j^5Mhbh?L`pgM z_(gMHTv-;k7?PT-fz3>vb%J_8WNv%TYcTLb74$qk2a5}uC0uTp}?gJX!Q%6 z${+sJS~*H~O?h{{@T~Q7oe-2diVWVFKp1{hyt{R!(iuiZ{AaC0t2egCGI3)3!ZB&8 z-ZG@OV%5EH?EO(NM$yzH`?C?Z4sBSGaOY?^k0Qs4ZFO}>{f0+W7DA@~n?Bn2lJCzH zebb4QuH|DG5?||-!;l!cYF?)fZ`w6gI&-nKxueCn`4288oo)gzsvl1LK)?^3>KBr3 z97JkP@doL>hz?phJd-)h_);eI75MQ6^Rl+)B4kP$eU7T$_)b z@5sc2%z*}o{K*s?{hJ&=Yn7hQ;rIVttw;cF8$I2< z*&7QU$E{AnHt$3Wea00Z&ylHv06Y%)G}o2Q)q`4ta@flOqZ}6BcNvA8b;XL**)!1h zx`-SbxHa4)5EfV6X$<{w6|@ZgoHU~hpAEKrh5o3y{I! z3vOj?d+F=bM$uc$PO7$+q5c!T$?3UFxOyntdFmXr;84giX(2tl4X$y_3emN~;Q2j& z@bFvHSxCFscK0(cYxTr>5Nm^n#qV8Kta@!Og zS8Bg{3}wV%E1|&qXeodY?4J(+NMSGi9$dS<44~V+{SPX{j(al#ez`7BtLibYk-g&W5Sy{1bO`b8 z?Y-p_?7Or9JqgPhBha_kWR1llmgqytWP39a8qQgqGLd465k?t`xcgWo4425|^uvz{ zZP~k*4Hm8(hT+J{a|w`Ptlu+!a%MzP+qjc+g_}V4%OA(m9c0r@>I|;d6yJs=KsrDw zODj<|z{_bdWXMVl+^n_u#nS#L9uH|Tg8PwuWmxkYng3vD47*VS z;zFRTDuc5*6A#EbN_h7aVr-0y$nGUX8fCqH_a3q$#uQaKfGdVR81o0Gp)f>$Nr_89 zO4xxrJ?~IOUZ4ej4+&;d)8s%Y`i{d_Bln2SyJ2+4y#d!ozUA?V=@Kn`i&y?dI=d?U z#bFgKBrV-e&wM9h|Jl>VmZgmmjhxpF|%SF_R;n6tsJt-g`L;LM&xMrEGRa!DZt!20V!+ z5%gJrpruVi_%<)F8zIHVw+&I!34)QqO z<5$Z;lap_GfVt=J?dUB5!c+eD3(m^%i}fmxK);`?tt+;0r}J9wT&L{+ zc0^pbNJh?Qe8_TKhiIW zKDlChezL}Lmub_Ih~8r6zYg#o7z!m}Q=tggK>HI25P=#`9eL zn47mS;nN(_dz(#YZ9hKsw~ocw;vZb);C*wAXJZ>O^FVwd$=tE^cfm6;0?lSj;y5KW znSHE%{?jyT7p2!(xN|h|K}X@Wi|3sjuJleuf&C4^Gc%e&b2lMwWDIaZHjy00Zj;m%-H3e^qw~z7{BYl>mxTV+_ zy9qln2V+y&b(Hy{sh?*c1`5;6kvosugYvG|z|a`7z4t9y7(bTCVb3s+u-Fk7uRBcM zM(4NxzNs3XT^^8E>3A>-iMa~jlz~rJ`?*jE8F?8~!fJ?}d$`PE=}d-^ipy`P`j}^m zp8bmZNMl=0#OiSoI<0vX z-}h{xt$EE-9sjRLOzMY2f==@fPOa~~V!PZT)hmj8xj94PCJMVh-|Dr7aa<0Z2V z#kKc*f!PEuLV9rzA@X7LP1m>_e$iHT_?v4M1e>NPI5KqSnuhW#A)T_UuJ1Hxz1|9Zxs-N_-kLre4S}gt+b!Js26>3Z3nLXw2Rt}uR4S^XY~DP-?se17Ofa<)KAg9KHA969fvYE znZ(xl(RZ%69$M2g1}eIA2LT#lIG^_S0ysLsG^`0Cv_YQ_)33#tvaqn{SD`ea>+mvw z3CK7;b`v!jTaWn1{`C`_R2*Rm7Z#gpw#8csa$@cL8d`Qbj9z;K#2%v1Y}ZEoX>Q?v z!A=Y`1|nRSQ-~1}H*R8VJAnU&QZD)deZW;G+Vxl4iO)Mi-gbN3yQ4r{A+EBVE)R%p zXgh}@2EvEQuyYJfUV5H&xty{AEQWzv7fOAh2h|uHRuy3=AiNBMP6U(V)WU!WY_O5W z`_#K;G_YBr6TLwo7yJV0X#fm5hUPosrsri?ssB0qo`|F#O6|^hd0F|ThoPPeEO|5= zF~|*K#Z-VA$nmA)X8onsGww4|7M)^{koeP`+fJZ142Y6BO|UQGEt#dh6UAtI0_*;TU2ZJi=xfSdOZU} zE*Y8lKNz_U9`;{;Q@Q&5b=yk~x7n8d1wN~NNtI%v$Z5t3A?Cm~@SQ(NfP&4WP+-Vz zk?woI7TYok5?q@Yw8gKLO}v}IQn$lLxHAO0P_TBMom!ea3rDxe+XtqrzUn(T>$I6h z=BEL6%RjTY6HZ0TpXIbi>b$E8c%onQ-&f(n-JJ2Ak2Bl0$=&S|LlJ$U#cdy)Zj`Llrq>G}g(kVE5!-&K|Nc4{Cp7q$uk2WemZOnyfZOQpV(#I?K(|H|m(H##=VsT*-`PYERu<~H2~ersuOQa z*-gz?j}c&bvq}H_3}>~zw|u;$x4z!GMn#%{Rs&ioY~wm?b2H!M+fIBhx-wUkUYS zDxs>UPX;P7g5-(G&w6=eLC*fSVMU`CuuU&yLV2D`Un$yl3cJ@=-mxikW$UQcW=cKY zFN67oc1V-$I*?Wo4{<}RR8CNv7ejri2IuvU_bCTgDdXMq6m~lI{w<-^@HQFBdFR`0 zWK#jLh;CB}Pf?t=n6W8i8V;N^z+ui4)C}nGt))U*L+{zY?VDG=mA0-UQEbWO!|(S- zF_XA@=j`~dWeW$=eSFT7+WK7>C}+g~h?s_hbgPE*zL2kr+-;}2S;LU5hwjVT-kH|v z#1_7dL$&?GHPnT_p(ie~%^Y`N?PrMQ#?r?^9*xVt;SU4py2y9IZ6v-iE9@BV(}Pm=38X3eZwbIO_ksGj@;DIQUP zjCQmnKE}KCIc#R-HFOtK_3D(q4LRED&$#j9Bf?Vq=nSLtwQ<(*O8QZBf*dsagBc7HIlbMTtXlXcg zwfIn)N|_&2#b>QAm!dNx&JCB_3ayuC)y+@1={X)5k`L`u ztYQ%3dd{7p(W^b%2()B8Iut-j`e?)TZNhs5GVlQTQoFL7RkyCERmjYG5bDd^66@@l zm8h8EX8)U;=QBRc$SDg7Tu(Bqr@@J>=GS$t=3tTC&bDJCk8bF0 z(-aZSju=4c$>7V=nwLC{FDw3xSDsSqK6)II)sJ>!mfgK_BCJ}*uO#x#4^1#-Zw~Ac z!Z7$=5aId*?eTIWR&A>9 z+{bVxGd)tfgvy9VXESloV{MNAnR>a4pyD6M@w1JuvX}oIQoz+!N(VSxXY;+qRJ%Ii z@(J(GVyKB|zDV5{_CzzT{fkFOb3y0#^cHL}$%01jjKdHP6I?9A#~W!8C#VTrJ|*h< zED)20?TL{@mqTxhy5ouTwL^weR^BnF8Os^S%}`OTBStb~|M|`IdnHsb-m_APuL$iR zVnr5u5Q8*;fDG~ec?4eHtxfQHpL33XaQt^&V+8-@fV`N)N#Ks+Az?+cH$Gta!h=tL z$O4MVvy;zUE-1INug_Agi;I*^;~c7XwxXO?C?M zrxH3WY;gn5?l20qQojai_RUw#)hTTP>yJt1u3oa%Q^r6W*v3c@vvL1s*bvIt5Sl{w z2#f_^s2;GpJ-xeT(4Hv)Z!N`j54yc;nH-ArqQ3#%GyE@7tL?QF* z4kt~`cW|amH^9=`lwnh&jnpl+GnGs+`)vPi0^MdTi+or)4xP`xLNwEs1*+UXCxC{d@AFLV8n;$w7%$ABfhL6rr)_J|9&1813N9vf!ff&$d|%c%_djL70>7<1^Ga5Fz_a!=}b_#g&3RyxcIqk^- zb$Z#HkdJ&e$^`V1aYzwGER{K6@`RwGzKYtMYDh4)5$v_N0bquE+OG=B^*IV1(KBk_IBs z&Vf6G)MJX2^1eYI``Y0jK*N_I`}ReiV9b&dk1h;D!G?muFV}t;nZ2&}2crUPBeMr8FjCOhtom zSQU5s{g;w)s$ zlEsvvfq6Fa2B%#xkh;T7qJ_u^NkUn?xRR_C##w!VFry=nmT6z}6X6fS$&W&``ucfO4a`_m+5<;scj_b1%M;^%p|vDcykg zmspM88dDKsSraWrRV?NI&~c8qG;`O$HzE)7FkF@r8ITt<$xuE zsl6wNC9${SWiBE7>P>0{Jym?O`#n~#BIVB7dR@iX{ChI`)oWce!hh%f9bY}hC#CRgX$!bB&C*CP(BS95b;M8A`-u&+@*0(TUQ7!CO0fLnWGy2 z!BfC%-q)LU;;iVEPs1@=z}WV;t5?S}|k5{+VdwJzWS$38$oaSp;+3 z_W~g;$ljFX5_4ce_3vv_%bLXY_?M8aKJ)KS|#8tO2N52 z{I@&e4C2V<;PUCA6THK#+&&wmkUmS`JsMCO$8^WezeAG<&29v6r1+!8%zowTHW9v# z&m5kvL<{He%nnMncsyO1uTps6im5rhvAJU^kAemJ32kX0@uodeWV+UYeYk<1il9aUsGY9hnUg;jW{z}DIoXt(0K55uEGGDv5oVe z7*I=k5n|*jwjHHx-NPApj~T9CKI=A=auYIHt#lE+VHG|qQFpS%DyWNDe5^SU`8UUO z3~VE0SLO?*Mt27k#`T~e#B!&2o^Wvh&m;$qgk;#)PXbr_L2w8_TYo-tby&NtR)Kxa zaBMNlMvh2tU~lz`DT_f)Y@!qSP4)mM8u>N?X0M2Ua<7JCH$(S=&r)QtkI#HPjRL!= zI<1U~6&@FPL{OH6PH6(2jCMn7*OEZT8d_HvT~)WeAG(p1!I@Swx}E2ZxgF*C#8-^~ z!&4M>b-X}o(?6VuLhk+OQs29 z8*xK4wkto<=7Ac7_v-joKF(-B2Y#26&zs0s>WmFo=3Kpw!%>XsUTeu;v{$3YYLZ~c zMl`00)=3p8jhQ+OYm}I9{p`rX5QeR6vj5A~NojZL!cU63>(0llI^cqYplOk=u1?DR zIdoUR%bsxPWTyLlNzkV5N!A>lB-PAuNv74jv1bEz_dkqsK8?Ki15@eAR+TJHbFFgf4dr8n-Tx{h zOQ5j;n)07{4-}ejrY8OZL0XoDCs~!u?j-}gh8c(2Osh( zrvB;>AekzWAQ%&T?>nf4Bx4;=RA6TVnouQ}Maw2q-$%2OpGaW{Q4K2uK$T4ep{^Tr zE8lVnh<)B8W0|gllsK{8S2VGfB4X~uMy4)46_;f6vEB+l|0PhD@`{T7 zM)H;p!9}^U(mA*pOXiT%?lJ;c=jQ(}ZfN)1usgpnpBG{_SIF26;j`fC%4ixH((`rQ z+h48!G~e{;tq@#H=G-FTUbvPP?v|)i+9mR4x_itvykWqvbeBwTDaHJW#p%dmXd7=pId@_bnGX` zS6hWQJqRl<&5Ir!0~l46=1b{o&5Sa%VZkI$QfmJBGeIO*4z7z7dAmAmH0SP}CP3;i ztkM}SmvJM@K}X{**v9@ZAiIwN)$#T7^7<8Y?C{sVbGfl>B)iCrma|XVW!yv8a9ALO?Zy{t3D?Rf*9{E*ug0tD5FqrI-1u(F&Ph(2$ z@c)I$#H!11J> zwZb_O_KE@4l-1NsQzYLTPmm;$frP}q!Q2^Et@O}od5jc&VB|4vscu##eZtYmdR2lZ z4Y5;WM0hb_`cpS1mhd4Px!AyuF=Nkl;+SV5%)oaA3a7@~6C`O~*Sla?hgiqV%qARs znAB^yCO-wA>Sr#mjCQt43qEv~k6V4PJL>MLFY0UvS)Wr;l0&ov7^V(#+`wXcyQ%pg zCEuP9N5!1qLFV}w00ffpiFfo9_kPEa5SnBI>zLAT^;#j##3Ug!xHT2^7Dx48=|kQk z{C20&uSCXqI^UA4yE;{Toygy$1vVU@O`4|ODfT>rz8OD1y`*Kta)K=qNBrHWe@y7J zw$pDp2TsG#t8&p}2H*k#+!eQXsODtNr>U4cG2UnIP0cOaf9|r7Sz211SWPDXMTYQQ zU_K=1q?ktaq_l_{c^uO`l~N3FWw&_6ZG4fnye7EIG2uB;ww&n$Ik+N8L$P$p2vb*n z$qOkZNu_w)qgQ41jARUAj=qqkz_kV$QcWIyfmBbHpG)c8_lO(3`yruVhoTA9Z38QR z>`!{?$7usvI(q8L8a6kVom{=uO{oA`niBiJ>f*$oKihvvRKNY%dAUTrRAk6?q-x1P z-cT&{nt)zyNLO6+VpYuoSl_h`L8?b9U*>41HZ1sNMjTh0#D>;UaW|~nGnzWVOS#0W85+7! z?7GCpNn993p7$?&uhX>Tm!G25$G5q^KxC&!t-Um zCm7uiV#*)u=K;mc%*GC3j$m|S*@1l z41jw^NM{IuJ-`V% z@s(LsyY9REoMb1*kJbs*X^!l-3)IM#vfNP)$o5G+=A{JhdUawdd8SytOV8%?NZIy? z99vx28meyVoPmatw>|h;9beAty(oynTD+p(%W4TV3uhNklHemBB8z{Df@-No-%vmU z!WhY{zBh=wiBgl{2wvQAs3s?OGb#()p;_!we_=8gfQkDUq6GZ_5$#wdTMNPq3TJIR&oJ6K@g z@VsM9X>yOa8o_8~OT^i&V1UyuS!npkYll`PCh~QbYT6x_M+EtlU=H2lc#GOY9v#&w zU2K%(iINp?imOWgvgp85qfwunrrks0T9 z`4m+M-MawsbC-?ZmM8Bq0XYZPstU4E8`(0p+yMLd&L~Xyk z=r$D7?@^5~y|Ueqi;kX+BYJYT$UQ$0z%P}r9u zc%MbQugD2UQBJ|@;oYF4F3i1T5caeGm@-9z&7rzOasLz=HlZ-$>6&zZgtfVjv#A`I z#lqwvE^>RlB8v8JmEH3#U93lh(FX8RIm%hcDE~dh)QNAy2$1!2*l6bGTxmj;eXQI# zz0f#A%m2@Ew4nM^lcueh2@+0^t`5L zuH*R!ZGlH7`w3&?Czi!S^L-or?aPao5I|XV1=vsK&p1`8@gekLXqd|M{sh;4Cszr! zhx*J)6d{U+BBV>kL&m-#K#w8OJj#55BObL;9702-qLf$Zp9xP{UNEj)vakLU&b1L$ z4W4OCGQ>)a#BAX^2q}Z7mz!?A|35K}?ZZ=g=3PrV!sguFl8lB>#m{7Up}6Md%<5Zm z3J}G+KmzSAr2GQ*qlPCf4@}$;W}NAF6`6)^PQi})%|ipuQs4D+O307t)=uzI_iRDn z>kFlGf5vpfUv8M1YJVkb$+DX>Sy;l90JU_o63rLLhF{3#V{$?bj97N(^cFjyB&Lbn zkY)w9dqB%EFYFg05;CuuIgaBKRC425JWQ!S)cWU@_J&D>S#?H$N;@xR$7#NGRYb*pL3qB zdm&`rpEQPMXRz&F@}5itk?fOJr5%7;fn}yVB2hc+2M;Zu2C!HYgO9@+urQE_#dT2n zng~olHf66ap1?B?f>B^K#d9)rk#?DTU7en-pFWI|;MVm?;ZNwKh7Vup0beZQZYXx! z*B`W8?gU4!I4V4^EJQEI#UgL;p_|k$q6ioO?4l|oo+75u1h!M|J^kzf*{lLZzP*Yx zuVDXeX}||+^j&ls;s{$j$#CJv%N3V@msUq_`cVB%CkPP3>r$p~7r~Cw&l^x1h>h_R z)7tEq&3CMTI6Ry>{gFR? zYssIt(bw8NakHgMR|zlwcH(P2`R1n*h+6FOG8eIsyTKWBO|R!i1;RE4zT=zDkah)S zMc^<#CS56>*nV~Gis{t?J>M)xh^JOmYzqTVpg`MCGO<=d{`<`3sYP%u<@(Qlv46M%?R zI&TU?pWiZd=96-&D|cAy^Qc*vUB0(7bexLS)%R^J$P zdY6XhTjYWM%t^ZMpN+hIjgHUX-gK@g)(T4bx7M$yg$&)>A?dFgP1}x9ne&jL%RQJ` zj1D{Kg;YsfHugVGAm|(;rMT>qFl_QhP`uz-)DOv- zKZ8QtKjLYpc^-I~zI4=`Q>;Ge+ixBOF)7%!(x9<3fUr>Mv&93u7Rz z*el4OUW)^zues+lpqO=b|0*r7NNUOLRM=&Zc2yGZ!=LT73(gjW-W>=+^}|k3m+ECx zyjGhNktIGGdMIWjKtxPVN4O_5X0_kW9NryaJZV8m`3kL*w1Mmm$^id8_CLy+pe2;} z4Gtevu`<p#IbVk>#FYe}9tXEvz8F8hY8@ynN?{o-;NL0G^9SLC!AVo7P|6L@1j)e_ zk;Pm59)$2h=ICy`&j`v%Q3_Bx86;bygK#uU>=j6VXvovJOcmFLR$Hfv!6vEXj)3b6 ztyTGpfcf`Z^+sXM#MHJ>>D4EEla}Z~O{&d5pl7BlXUtO!M9Y3gygc->K5ZeMo&x*| z2ww(oi~*tq$SsT&TQW`AlC)xtwLn%$nPAG2dDNppnvZE-o5CRbuMA&@DYa?ZZ~l)m zULHtAVGXno+HU)j0Z-O>@k(DC$xnL|+Q-Ojlr4t<0}ONugV*=3BUY~7r$0>fG7nOR z?u9k-=axIGb+~5l><_m&1lz*zC7KHT@;)i_i$p9tVzX%=s zZ-Va6S~ma1Qhh5#2bYd`PF+rg&yax+M}v>&<=;%AC8u--k*{9s)DC85qiUtuPR`xZ zrQZ(!;@hmNa%Y168a+Qz?M+OuXsw!Fo7ny!sobS*TxBG$t#(_~uH%ahQo6yk^5bNN ze$>I_@7Jl${WzS^7diqUWmQNrlxm2L4 z9$>GbV*A<3rnP&z7(Q}71Ew_#)it||&EV}xwVt387z!?BA)KZIxA%H?ECdPoK!O)wl^i<3fJvH)hz&&0`=vp*mbW$90Ef4d;FbV21r&MQ0UUTeGf z0#Z7s9QDj9hrMlHP;xD!-+lX#(ke?nHNVm1>;z3GXrD1&DW*AJQbJGMWo|Y#9*K>$}_UK`SHN`j6V*U7uIq(j&~4>+cG;KD-Q#+_S`g5R)qv z?0S}<>O{d7T8!l679Q^59(BBF0dY^mHJNVj>`N5{o!H2evYQee?=fE@z(0RqchZE< zlS)TElbFTf82hFqZc8%J)@qc;Oy$YwSo<*b%te)m867XUY_!9UMPJMP3(DRu#Rx(Q z0}CL@Lp+Cmzk7uPx#PIXiLJh`eY=?gAF6dSQt9V!vZKaJ#OEwTXaj5jA`cS&VPV;&ZG;>p^;RRmyVl? z<`?2XrIuJ%;hY4ut;8;{Qt2CIqO>YMAZn>np*SLUZ;a9-f#fhOmeJE6*L~DWDxW{=`(orxKsCoR;#E!0!F09zTGPwh z)5np>@gHzd0~pAOy?}|jS7xg!&$4os+6(ueT^sq%$fpX_IyuWa^YspK(J!Jx({Tk_F1j>9XdrUs#IC>S_ zdnfFX-=-kJEZOkZ&D490aT0wa3f7V`+1mcZUH5PQI-$|tg_2I$jr8w&~3rw$)#VfwQIX5i=p zkTR$P>Zcq&mgi>?^B(6*45>Zh%ntFUooE(}T1Jhw^tHe)lZVV(`p*c+h93z&Z3C5& z?U4^En*`Y#0Ydk8ow^^v$w z&*}fsLn}QUh;4N4D{)fdXlsGd^iB1e9|aqQ;|1^bygC(6X;33px(23Mfj1Xz;?+bK z9j7nE@f^*cX;Wc+Zd8W9ekFPG(_&$9tEQ!vqIaDnj4Yu1Ni}S=?td%ChqHeL2ME8) zefo4LV=Ntaiqd3jzB+?&xEcA`cJD#7@yFd>mdAAYL$(s3?cP1VV~q{?rDXeeoT2_t zK>7JqgYSjJsH#YByz?Uk_NU&1fSVz$6I&9T>F-Y~2(=EQm>#3M&g2}|Ph`)USINg7 zME|j6{jpVu8IL*{AvIKC{IbI&mmtp)kZP?XtaR}t=8)2xrnR|ILT{RwyLqFMUZm>e zJV!1sP}$bGHQQH>u1pNK{!mJ2e^wj8hyI%QL8?kp!3jmqu}@V#B~Nt^^hY|)VCi7s zMNE&1kJBN??@g0R!FwG5K6oZfluWE1Ib8Smf^R@x9O|zn_t6o3Iq?FTGMR%xnl7dd9Vktq zFEPs*Qv2vftY-rf1|UsM_427dOZ;me zB>yWDYCRKupz{0^|NYkDK=nbu{RlO9(_?EM?J)3h?E#VKz!CT`aWRwz92jwyH#Yn| zvf#b%6aty1MpgU_bT1mgAN_8Wulv@|+G?u%>qZE9FN3{G{z?jzR3dwZ;Z$MIHqFrE zkbVQ&Lf|4^yxn(C&zEMNk~fu1J*?p?vyIjnC9XX_&ulRz!D7ygAsvnE2U*@z(};65 z1`!ewb_cKT>7L}*ZQd@Gzc_|$pjh&cj31_M`mSE=f*(+y--kOVH`jDmQuDwGN#Rku zE%dHs@HRyobd^1x zKr4Od2L&upavuEBS`d>{N2Uu$AuC?|>+-qfHKrU~z|oDuQvGn@A*|ZI(1kON<#qnG zeL1}Rg&Kmg!e{MrShIa09N}dTG5Xqq&hLUh7`#48jxKP=uq536JOz6ff#PmAbFQk% z;#|}6^`Fr8%S++gQOB$hY1`uK+NuzeFzh*=ieNU|nfYeT8wjPE5ir(Ia3v8C#00fF zYb|PRbe+!k=8IjCE9os508dn%9@I?zF9@OFl5p=3rV2Vf#8tzDV?aM+^X*;R@R@UJ z;=JUH$H>Buk9hKL7Eolk{IiXIx&|a(V_lJ!gvn~mN-*3J*n1>Z6`*BBNm*jpVx=v| zAjAk5PONV9kG>G7qc|Q*@8NQArj=YQZKl%=>ZX7PrJ1UtnYeh8s3B(9(yx%|c;yVR z%Zk1j$wg~%nWMqu>)0pb#N#S z#jaw%haeC9f z-F@bJ@OdVDk-6E;;!g~J{`}nq68juWCY1bbrcAW!{;K?ym*2frdx5SIGn#~!Hn)|{ z)+OlPX{MZeq!FCQ2@#Fg7a08AM48D#t5FspuR!AZEfAfJZK)#=g!{F9AzKt+eus~W zw4u4$aotF~*1{e4kR11NlN&wh%P)r9;s!m>$8Ed2!GW#)UAIlgxIN`i(<5Ou`mf`+ zk3aG~bA`CSc_%;cJZdjsCkWg5 z__OVH!%+N-@rj9V_+gT`MPc*ve3RH(t0Q~6aRRt!P&})lGvoyqUs-HiG~-pt|XXXqIxcXol=#%M{OZbMPqc(`y`xMd`La=JSwt zZ*+2dksi`^tHn61~PW0Ra#Ya(c?%<@UXSDrmezPTjM->Du63n{HTq`94QYH)Z38&&l@`=1&-b(${R*;^4PD>l|FVDo8W zLVZ()V_A_6+aVVmoRgxmHwSQmSWg9axBA$svjD?KA6|r|>Bj8Q)6_g~2=U9a%==sLNM{j_O^UCf^8HsFI*N-);TEIzf@u3rDZ=QsbD_*(_7 zY(ylBJ)*+N^bO~l`i3q=fpKh9=Nor^xz|{u-_pm(J``M&`9j4CH*hOO)r0LGk7@>e3FO#@(~A|7;(Cd*l_Rjcft^H$A^_(&{5iA%tmea4_Imh-{W4svDipVuRRt!&|wow-ujT zPlP+8X__{|0e}xgYSbkIi)~zDwzWS_pm*xXme>8Zr!P%p=t{Lt;l!$KY!^O-;k%nN z8ys`i(SG+(|FH&7xdlM?b%g}>tC@XU_vZT|4K%MiaJ!dBqe)ifKl;LR1q1UZ$pM!9 z*%onfe)KLMscIR#k+ZG+!N=}EoUfr7LnHV-`Fr2LQJ0Ob4`8Uqe(oS01-^4Q{~C(x zb&03@a*q|i1Co8TWTHEF41Vd*VG_KR7V0Z}cMGH3P-piXqI?RV^uP{X$O9 zHj@4xUb&a1?G%naGw}1Z%Co0I<0Euh6v*iX;@4T_%y-$I^}bYlaI8>eSGP*on)|os z)g(C*+yz0d^0mL$ryn23ckqAlMPTr0N2v#z0_y`R74)v4IE)V(=hhSzX-6x~?#VHSGakr`|K{T z8kX0_Dos0K02jVY!Rq#FC{F0$Bv{kj%_Dh$kX)c9h&LjO3oBsl3@(F6x^Mzvz^MUC z>!F={l=%W_K9+jdye|K0F{KtrbH`43}8vRwH1PVUVfh07fzH zE(t1kKdB2QWwhInd$rVYw8q8P!o?m3+^RgJ2!xga@0K|J0x!D7 zHa)1G2TQ(rM6%__zV-GmH6z#f}=^H0?oq-$!&p(yRZM_5B-$FN^<#u zy9pfKZ`W5ao4MK+2729P7}F09XDZ@kb|p5iw?7ul%gu-v49Na0)NGcnM! zuXyBBtqC8%%j>7ecea$GqR)N9T~LlPVb7iWWMPD-mAv)9cwfz@MsB3hHtkaIK2ddX zn$eA8Vd-sz%OEZX>XfbhetUbmFez+SF+OZ%E%HkGdi9?7RRH1R(a#=Z-4mkXJYf3b z3brM#{4q|YevmC?RjcvHIazX@sJ1;v%jkdS$N6zFi(Kb>YAmD2oKB6`4>+rltkT3P zLe6406a{Cfp08@9C0t{IEDweMmP!3l#}e{zT}J5o-f<5#{4}{W_UZF7c7t={ppyGb zi~C8gWy%VMKqJTc_(SBy)U-#6*GViaN4*f^$#un~NRNN{EC(7Xu9(#{K6WE zhBz7&H+f$PnoVG$n)=P=a%-q&*LEKVDdti_Hyv4gd`=xzbP0XYNvc zXWNf0KTe_q*Y4g~=F2^YZc^vlIGm!~{_#L~>GGci8~*3m{pOFb34^FO4==XBiRc-U z`|Zukn~fTA^X#t52O{EGidnsm$KT%Posu|;=9ja!fXN7#lTOlb9wX1%j*Rqb=YG3c z_f9=TVTnQ78%o+>9X57IUnrp>pA;LBwa*BO`g|rSC}ES$lZX0nrtg7$sNTe;R*rx% z;fPeukvVXOg@IMq{q{L%GTCFqdda}Pk&d6&#_GtsTvh#bxKwKC3Y@#o;BD~^zW0;q z?p%^7IxtKji8A##cTdf4g;fuISQ^~;gGzh_9Eo*mp$$Rw8B_U-(@Y(asmxtN8qh!Y zhY+PXpA9Z@t3r2jcG&1M!Y=tn2{`&yP=&rscBuCB=6Ghg`Erg#=R#p(pHEuxxK~Sp zSVw9ZeH;AASRbi`Rxx=hiCVb0c!=VgnIUz?DtnNwBk=Y*eXD`dE2JEFW`81j_ibxB zA&Z!6?-XvoG>pdWhr*Kx$xp}=8--}k$N=`h61SLFND6va=`WVGrO@<^kI%0rFG9mm zig^|WOPbxok4qhSbO)z4w9osacoJz?QNpA=KAG9~Amiu#y-Q#U{vXACj6kJ}kq~S{ z84q9cpk28SD@L*7rI)g|54&>D7segzbweJz&D*nl%ZHR<&uJtQcA>Y|=Y1EeX{^jE z?Z=U<@M{0>V|bGU&TQ*-DDZN?xocV;Y5BkBbdyt8*gDll<>-r;1@HBnp2?DL6nG5y z5i8t-PGkYuA>Y}l3#bg&*&jH4u~+!p(#cpUC`Hw23#GRFH|5@y*_}1fHyYbyO2vk|Y}rBE z{j5L~>Q8tcZtsK<>J2^_-#vYvkD50c$`NBAi?GWzZ}do6HwaX|L9eY+k!cfMtPUYEb~J zpQx-B$r{HB?ut%@;E1E=9sNf;z5j}o(|n|@yAYLX{SU5ZkPe1AL|C(!1=ux`@H`S# zFr7E^rSeZc8{&7k{b2Y|cj=*4Izijcs?2IKMX>uD$P3;{>X}VR?1Ezsv?hMd?iCb% zg{jy0=(15i(!%JKkn3?XR&=@x&8?=hk74q8UIVK0z8@4SDTUu_*HdSBUWdn*F~q1R z^klgvn^hxDfNWKkp64Xkr5wnVmfaWVBt2XCfeu3AB5K05Vz`>>>3s@#T_SAtfv+yb zEw-tg170|8uX{DBoy{tpj3nIaAR>uX{J7KqZkjiB>a29Jb94Ip<#hW1yQjE3seako z+v{Z|YRj_uFTx7H<=t%Y!U^Mlw+6S_$@`=pxj2epX_Gqvs4%mH74? zHy5zs%zE@S0hHckk%H({$ZwF=%se07_CbGrAd~|z0@Z6fvv6*FSCEg%Hnc3wC+N*D zc*s#c{sk%Tow?o01`DPQ2&#_fZFqBPxW`F+pwQ<~z;6J&^!t-5LWnO(ZD^H{te;nc zHA0b5@;=1iaDcb<{EoD=&`-zeJIV9O8IJpF-)S5dz8rFsHT+M;`z2RF3ZdbS=837x zf!KLLMeyT!=vZ5%rKafUba5nHE%5m*B=IMOk-$PX9#@-_7;2<@g69oOalDxSMT7tb zTrBfl5dbx8HZ*)j5L%|p4VHB?C;f+#vhptL7-V{o3+Nm4g^!I--zt64gORnd&?h-B4*0wGVt1mBPHTS#k zW+|rG7e<8_%1p15A@U^|scV(p&E;bQ?=}~$a(+n%F zyOeodSgtPf)L~h+EoL;|L2y<~V2%Hyxce+~y?+HFqnxz#z%G>9`gKvg>Uu#oo*qd2 z6qnDCBLe=HrT&2Rk3~WMYv4v>n}Rq);m~YTuxu1N$^B$&)$VFxcR2m6oY5e)wFiO) zi;+fD5wZA(e4sf;VP;*TuEY3zn3(Sts;*!g5WY0o)Klp3px;|mXzp4UVGRek+w4Jo zhSrP(|J_mHWBC!`5Jy|lhSE`^YS9swzbd&rB`I9r&C0d%<=~3>!v3yvP0K_AZ~pdbQ909J`gPdb z|LQcUve^<^^$nbM>;fNrMO^Y!TUZG9KX35nZs$M4GSpM|{J5BRdbClm1G}I3BC>q( zxY4+o9a?_eYEIh)8X{>m#(BRcwIj$4OQAe@e$puJ`k%RTYcUi)Oe)oGZus9GQSRs4 z^a>L&);+4rUy|eBcBvTMwlAHCfiS@KYv8V|S*vTeAL(EH~29EZ5R3#@qn=i$l+uf2wY}JJbI{wJLNCmb#l! zU*0FXMQP$Ydt7#;f2nh%*I%$#vz;g^Y?y=XMxZ=G@Tn&U%Kz^-M1NnMM3wmLEw0sh zxvmL{6eM7-C0hJdaT#B}rjVryo+2UEEH9(ELj6{)F|E}23Lc07V3A1v&JPqykFkh~b^!&p= zk3VOZgHIHazZH01$DblbDrt)P*h!Z zVo6Gw$OoLB*7)?lS!yduy5SjEvSMU2sbXYP)c{-U{ke0;UrgwA=kKFr(+p2FRJ!*> z`n3%Ids}OH_}ez{HQepK#gw+G5;|NQ?(Pt4(>OajtV=_8&NBS*QzY}BInY-}2M^-b zWxIVbwymuNv%!;dTk{FH5p=PdfN)}QVE(BJ<4TZU$d=-?eOV! zf4FXWXObHdBT2~r{%s{+)&X_-r{s9Yl%3KASrZ29J<4~{TNJ&APS}jZf^Mcp>Hnn= z)`_VM{^D5v`AGp%ue|pC`EOQ2H5(ExY)@=u1?B%)5+=6ryro zZ@X^TPo#>U_D`QkPHad=uvVH2YEqVjn6GSGx?q-#6sOhyw~jn&{9z0z)5BeZ#r}V1 zH{Z?Le*5-3_uG5Z_B_~+O1nb;BB}b%I+A0Yn1=vZ0axnBde_CZC6v{hO2^X?bF6sy zbrYZGQ{|EK|4x52H0MxegXPcvue~o1OET@-wtOaMGV}3u!c4_UpK>NqOEWbW+SGbV zEzNx$4b2tF6;Y{aD$9jw)6&qgQWKTjz!WtVH6-tYVC z`|mxD_vo+dfScvMf7kCi&+~WQ*L7dSmepBdwcb43vjkZ$TK%VN<}}tw9X)+wrNX%e zRdOAg@quBZ>@A2`+6BrAHbA8&)Z;~FW<97#&Lh{wlhn_*S4%>1UlON4$HnlO|L51q ztAX3LVIY}tb5v73XcGGzr@Z~3>I&ZDdgcmf(`<7(w`RJNWJ;R8oH9G59gEMR@S+HC zgM7tE53u10w&#;3aBpI@?(!!PR8eG)@0b?HzQX=1CZq#f{cOaUO2)4KNaiac$d}J0d=X|P7 z2ZG-CpvOJ7>>IMr{~>8P6dngKi6-(xO5Mv0E1+5kj5^H-?Vrct{|VW^dQG|Ac!f68 zR>Nu2swNzN*st+eYtiM2Z{VI~R{Tt9C!*q+Z-MT@w!j_E zOiB(%L8rGXx~|=+Y$e)UPgV!&5w0I;^Bet*r$we)@DW<)W2XGriD=5_H%(K3&ygsQ z_TtWcr~D8uP3bjlk^j4IowoWB&mvb0L(M~(XR5fu{NMAtd!U)GK5E-cGAF}jk!=T; zHfkI9`1XZzalvKj3dQQ3E~f6?5FEB!LgfCwe%)U3p9>^_B@(ffm!ZSC^1|k^8)Z}z4gt-@XV%B5h9BRKx~1@VfZ4si#hL3`cGfR$mmkiRzLXb zo7bm0DyD=LFuN-*VO45vxZ>;2D?_`bZ<8WFtacYfZ1in^vu?0iRYu$3gE3IA|ww3BFkV+}B!9ussIK*{^?6Lvo<0 zoBc%aWZd9yWp!CN=XNvwJ)k}b*{TCePyeX~NE&S_!qlU`=>%f0a ztTHk}75~>%)0~{ef3Kte_5~n(-=g%FF#MJp-^RnY@$kO|D&HuFIPEtEQW&yLN~~4e z1U<%A)|Poc?;33J!;!c=tnE|*@_TcSU*7NCeeapu#PHuXOSOle{o(LD=+2MDGrRY^ z_XOJa%e!?vyK4_^($0%NlM_cNgi#ve*v-T9tyZ&NFjkEd!PGjRHmhONX$cYxWi&S0 zCz*>-?~t96Qtl=d6_q=CUvCDQpQ1NIfacrFZ_)Uc4By7W{}&V-#`wr!i1k4SpSP5E zvT~I~aPpc%;_gSjt<8Du{$zEXSur2Cl-_&G!Dsn-n}&*tEy{5gwaHU_!{!S?zA82f z=MGp3_00Jesn)!cPm{`4DZcdZaS|jUIG_&&t}7!zI-6dB+uZM2Wp{dK`EM{PVu}=G z)u&d9wmF9U!$sW^%_8yrc4r4<+zh4rh2XHmF2wBdrw1(ESPumq3l%RWdT$zqr#I!9 zxem6(hH7c%2dxOg30Za8G5%!g>7{h>9f!J|Z^Dn(&ZF!L?u!LioipP@wM=r8T2Cf- zozKdwmb{KjS(8Wd;?_NE3K6hSP+CG&Z#Cixy(>O{EURGMN=1cj{JQvp?51Vk?6%{M z{xu7D#ro89e^T0M<7MpP+wa6vF64%sopv@6c~-?Fp(+xDTWj!R7xl(dmR7DBbNA4x&DjdRBNf4i97-C`Aq2py+j#B*PRVZC%dzU$36ua%H8rYGn4x97mM7 zrJ0|?pOi69<37)iYr{6Cg+>iIE5avDG~XACn8uVR<~AycQ`%u}OI@}3Bj#_+=V-jp zpmVvDnJ6*ibgZ}}&_0PSSGX?JBlhRs*j|a)G?u{Dk)D|Bs0QKvANG3$d*+&8?u$R& zK3FI_c1d!_p(E>M9!j&q@o`LLaNEu*XVL{ESb5RSEFtt^KjA5CGU-EiAW;(is|Ohm zuj#$Rfuw>h_-G-7cjdVAk5o7LWEX_grOC^xv4MJbHciCTy+@}8nc zxDKX^3Nt2cGWU^g<)o)S%acKUFr9X1PoTl#q#|Z{#WUKU=cPVH8qSBsVT)vs7AH}g zRsJZ8yBF_im1S0I`D#WYRyQEo7ZG4? z%)8_TpU`5e(}Tf1a{tT^#ic(R^9<0wn0BwpY&p#w-;04z`S9%^u|2tORQ);l3$Y=4BXNwExCYHR_ z8`9^N=7BYaA)u$ubhyY60H!n#whyiE%yQS63C;p@lqbcRT%Yx-Wu1|U;+SY4Zw02Y zh@SF!zfc!)BbBh$>*$78(R6#j1y!z)#&zQB)!9jiX#Az0vcTDyJ94a@j}55 zQP}xTwk1jGDv5}{hf&X(w%ASN?5ry*%YB+6_b0_3k6#>cyD_f?I}x{QkoW4UqZqjR zhC7~Ig^WK8JQA_WkM3(WQrzK1`B4kedj#aWZInlVAvYNO%7ml#AtxM?Tk;lkA`$ZL z#ipaOl;h*Sqq*&9-U8F2CZrRd&Z8AkDLm{#ED&ce$^p-N^%c6AM$ z@3Xjxh`!Hj7may!S+L3a!?`*Z1H3@B>asMPMf0Pt9bdqQIb=8GNmc0$$~oZKbde!o z1fLg!nrs%G?|k6aCi;CGtbRBvGXy}@w*DP^ph5VF4-(+&sbL&&;q^~1w?&dW| zI#&bZ(@zFa5QtX5^Oh0;Y0xDDu0QZ zloIkVA!{}xVUvn^+~ykHmeikf(b-7ryHiQDgXIWtUGB`ZRwpncUf(g}S)NB6Jde6H zkQGW@M2<`ZFrCoOp;F~le#iLYfKm3;;QZ#5A!B-cp?wJ@`4k!iMfsZ@g1q7B)YbIj z9X&A&>re6?=b+A)Ag1QDcs0sH!!OpKT=694y=5l|!S03#InV^%8CZPth!xmoq zO23Fk3zwYKEz6i6y#$$~^4u1dT41NZqLu~|PBZf0b=J0ykmmAzo=SR_cIPjmdurEl zCWGu2TMRKMAeUp0fDc}eIF`_Kaxxi)pUUNu8|sVh5xnUK(vf0dq!3cL0BVuRZC+?I$GFwNktao_z> zQF7=mQQUG@vT(weymlpEvh^Sa%1&8}Y7aXHmLtiEAxp*b*=EN`meBs!L;b(G8E*)xgBqXnG91K>rW@ghn0U^N)4H?o_Du#rHu_h%kS@wuOJAW(l%q3u1XJ)z= zZ4BL+77X85@^-9WI6+=F#Px>??4Z}2voA!0W7itS(i-wKoqP=S^qo&EI)wDyATrtx z$1A2OxGtt_J9aHEu*ip)roYpSe>`v@Lg$W__hWHaE!~D*M8%i-Fo%o92>Nf3Eq(cO zbs>K^1H_Dn{hzpe4m%2xA3I2Eb*RDVahNk=;j9XBFDnL3M?fkE# z2GEReZ5%XbV(VUPJ$`m-$Amnt;5)376SuXg)l7EQk*A8G_jluRVnAe+4*w{I9W56Xd!}TkZM;vQQpE;ph7XR)il%iXh){(HR{IloK#~XvuGjm>3-Y1$x z(1uzq^vkDOTszx!Iekttk}O{sh@jK1yBfQL5Fzu2+?zYFwnP;bokN=#|1e#ze)vPJ za!ZL0oaX;WuK}(a9!9%SQcTpB(@U3ALft__;>21gp0WNFLFL_$0v-D6^68lw%dBV* zt^SG3-Dp5?Ja^3hp;PZ%@I@y?Q(l0NMonN{pr0HiIjN;-U>*)o$21?9n3aGmZYi~~ zQG1E5$K|9(kS&cmMz{G@?8?lV)psyRYzevMr=n0#nyW+uN`Wkw$)? z%w6_ee7IS&;E++r$i}0AUq{MIb7nQXrN03PA&WR|@^;4W{TyGCTP%`IJLVJOKc3JM zPj5FAX)ENb z@&%yxLbK2Zok-2=#9V?EeJzzYxmhJ>Z1R}xz{m1(;GByUkdQ`8OkmNBn1e&{n1;3e z+OGEN0@=eFfxUG^_&$uAWa3Po#hb(9CmnfE=m7)^kk^HCx1*h8Pi`}6f7C{2D-*T8 za-SL~5+UlEk78>t#BXsk z=5GnWX8gyeRZCC&{2JuJ)IY9>JJZsK<(IIFKx$tyoNUJD=vchC<*XbU$*+HCZDT=w zTIe0$;?-aHs+d~;c%*+eg_<(qU@7IEA;!-b`ywM zB9+h)1(v#|6uVTrXa%(`qj7g$z7aCQqrKcwG8`Bmy7SVaf11mX~lg9h7mUg4xKVy9HZ+UdBb1r6JXh7d=nHf(J9cf=0Yc&`8OY8f0Qk5gK zKfHX`{q-UNNfoF6w%h`rz<+SleH-3oUMm-6e7#~k;%X8p%%1gIO)acgm~^Ah{GLgN z=x+buR|JPi{;cm{lEybiyspTjbL}RSF(fGur*mQGu5%CzlEF^sI~i-2Exo-K?Gb)@ z=t%~-vNVR=+0oEyEnz%gy|=qBh=3qwCZV;6__zF}Rew@+yqTisSvW^$LSbu2(Eo)$ zcmS~Zl~EL?H&?C^O()?PU-aAsHy8>n(QR~FNx z-Uqz`5A)nH?o&UMO8lFfP1VB}3_h;R-c~xzrH_yp8nv6NN3w){-_c`f`cQc@LnUM6 zEU2Wo(X~(KCi?SPU7$vhs`>|wkfvV*Q%f0_noR$Wt%e&yzG}mi)&7MTukGh&Tl3qV zUag&}x#?T;=4mI@ zRW_?-5qhpY(WB%_+Ct&2eD#KwjH4hmSL0IKL)q`yne(G(LB1Ln0D>Qzh^+98J*%wV zv3gI3jSqR)&oakhL4-#hWfMa=QyJDHJZn>y#Yzwn5gVJb_96?7YSG7KN&A|cf8bV^ z;pIcMDT2QB1jm3r)gJGvFOni=g}y$sVgBa*(-}Auc(ZAO!O*LYQ8$!Fq4@pO{13k} zw?&G(ods~iya$2*3Y*BlsaYXdJ8On3-JC(Fh^5rh9>#!#m`6R8k4iNggOy)B9CB*_ zAk75!2;8!NTek#QN&mK@z3c^AW7H^n7TGRV%r27~4mCe}*EGqVzp69;3as+!QSSP! zrsEA&rT3(S(>V1})b>Xiq%?}G`06UNwyw7Vp%YIFebB4Ncq_*(w8?bDi#IJnQkO}j zw@1)0v>rsp>Scs~)@S~RoKZ!c#b_*zafRE9}UZXa=<^#Ynj88xw zVNS0#)*nr!^cchREsR219WWdR-j%8H`1pHxkwrLb$da)fB`(Ef?9H@imAFoJSYm8y zYkM(f_L8`wR89*4RJL-3Q?S@C1^`2uf|3e0+`Jr4#n-V~q$g!=!4I&q@k+gOF4Fjw ze12gkYdvBgpogv6MRBZt69SX}`l9Yv;jvyPyr}~jH2E=yW9t{+SyK2BLHe^+elVZ# z%3ba^2w;2u3tYteGfuxZUTu&!NjegsnFcJ+KNOsGW?3}-uPD{$@yY+Ot^gO;jK{{!! z@BnEUB1u{z&e>cI)jx}U+w+*8Df7{hPo2poWie!0aJJC=oeL!g6Nf8|=7)g{IiuP= z(tV!;$Kw3$F-78`_a4Ff zDL80UU^D19T#|onbLe;=*;iI7kN3j+-F6KHiwEx`HwLVdYVJV?vU;2|BhcPDRoGVv ze7w+%M_q^!j{sg>Gj8eAKw~;{W{7}shX#7+oAOIl=_AvemwPcHeMtGaR5bd`^T36S z3K=$jeP^BP#)NTx`s`Xj5MX=&&Ruy3g9mt+>Zpc#-7P5hLNNMK$g;Gg45NT}bjAa7N2DxSD#@87ph80Ft6nn6$ipGy{1 z-vaEoE6wRII8PbM*u@%Ozp9D+9G9SzzE>5Tj{4H%S3q7L+de1Rw~-OpjQB> znvJpBmf6!&8Kevt7*PGWuy+5v!tt?n>fQ&~I$(`!O`gml2*a#>$8UX7-3hj6Sm8`r zIw|9fx6_R|B;g`da_m5nR5{NvDs}Mb!})v^Pj=1wWtZoqZ(P*n+WC<~1<_m|d&Jw~ zcobZUFS1@|4kG=3JQuu>$v>h6K*pKX$Hi7=X*TO0;%H`UCyc7ftjn^85N-w4S84qq z#YxiT#Q~G3mpPaOEA4OsLmDOSip}6%&=PwX>N|3CRaI1i(-1n%DnIG^lg9)NUTmk6 zFd$$|i$|@8hOMa+$GmnJr~w)wKk)lapQ?SfN%%O4AHAp-FvrqA|M3B~&-X2jm!*dr zk<6Ax|5?@$x4om_OnB`t{4sO5-;SuLC`$hxw&}e!aEn0{!qjVqlv`ka9?StuU|S21 zqolKd$5`F=MUyeg%LhvP>(Xii-N>x>pyn?-M@y zlNnE8nF&$G9o(tS3Z17)d7PG}{yzQ=(j<_9z?|8Tqf-M5$DqVYeQ3<9NU@AtZ@;nTwOuSt2z+5JS_v9RC% E53OMve*gdg literal 63941 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 F{{S - We use cookies to recognize your repeated visits and preferences, - as well as to measure the effectiveness of our documentation. - With your consent, you help us improve. - actions: - - accept - - reject - - manage -``` - -### 1c. Fix copyright year -Change `2024` → `2024–2026` in the copyright line. - -### 1d. Fix edit_uri branch -Change `edit_uri: src/branch/main/mkdocs/docs` → `edit_uri: src/branch/v2/mkdocs/docs` - -### 1e. Add abbreviations snippets -Create `docs/includes/abbreviations.md` and reference via snippets: -```yaml -markdown_extensions: - - pymdownx.snippets: - auto_append: - - includes/abbreviations.md -``` - -Common abbreviations: API, JWT, RBAC, CSV, ORM, SMTP, CORS, SSL, TLS, DNS, CRUD, SSO, SPA, CLI, GUI, QR, GPS, GDPR, CDN, VPS, CGNAT, NAR, CRM, OG, DDoS, SSE, UUID, FOSS, HSTS, CSP - -### 1f. Add privacy plugin (optional, external resource proxying) -```yaml -plugins: - - privacy -``` - ---- - -## Step 2: Page-Level Metadata Enhancement - -**Goal:** Add `tags`, `status`, and `search.boost` metadata to every page. - -### 2a. Tags -The tags plugin is loaded but zero pages use tags. Add contextually appropriate tags to every page. Example tag taxonomy: - -- **Audience:** `admin`, `volunteer`, `user`, `operator`, `developer` -- **Module:** `influence`, `map`, `media`, `payments`, `broadcast`, `social` -- **Type:** `guide`, `reference`, `tutorial`, `concept`, `troubleshooting` -- **Feature:** `campaigns`, `canvassing`, `shifts`, `gallery`, `landing-pages`, `newsletter`, `sms`, `chat`, `events` - -### 2b. Status badges -Material supports `status: new` and `status: deprecated` on pages, shown as badges in the nav sidebar. Apply: -- `status: new` — Recent features (Gallery Ads, People CRM, Achievements, Social Calendar, CrowdSec, SMS, Docs Comments, Payments) -- `status: deprecated` — Legacy/archival content if any - -Requires adding to `extra:` in mkdocs.yml: -```yaml -extra: - status: - new: Recently added - deprecated: Legacy -``` - -### 2c. Search boost -Boost important entry-point pages so they rank higher: -```yaml ---- -search: - boost: 2 ---- -``` -Apply to: Getting Started index, Installation, First Steps, Features at a Glance, FAQ/Troubleshooting. - ---- - -## Step 3: Abbreviations Glossary - -**Goal:** Create a shared abbreviations file so that hovering over acronyms shows their meaning. - -Create `mkdocs/docs/includes/abbreviations.md`: -```markdown -*[API]: Application Programming Interface -*[JWT]: JSON Web Token -*[RBAC]: Role-Based Access Control -*[CORS]: Cross-Origin Resource Sharing -*[SMTP]: Simple Mail Transfer Protocol -*[CSV]: Comma-Separated Values -*[ORM]: Object-Relational Mapping -*[SSL]: Secure Sockets Layer -*[TLS]: Transport Layer Security -*[DNS]: Domain Name System -*[CRUD]: Create, Read, Update, Delete -*[SSO]: Single Sign-On -*[SPA]: Single Page Application -*[CLI]: Command Line Interface -*[GUI]: Graphical User Interface -*[QR]: Quick Response (code) -*[GPS]: Global Positioning System -*[GDPR]: General Data Protection Regulation -*[CDN]: Content Delivery Network -*[VPS]: Virtual Private Server -*[CGNAT]: Carrier-Grade Network Address Translation -*[NAR]: National Address Register -*[CRM]: Customer Relationship Management -*[OG]: Open Graph -*[DDoS]: Distributed Denial of Service -*[SSE]: Server-Sent Events -*[UUID]: Universally Unique Identifier -*[FOSS]: Free and Open Source Software -*[HSTS]: HTTP Strict Transport Security -*[CSP]: Content Security Policy -*[BullMQ]: Bull Message Queue -*[FFprobe]: FFmpeg Probe (media metadata tool) -*[FFmpeg]: Fast Forward Moving Picture Experts Group -*[XMPP]: Extensible Messaging and Presence Protocol -``` - ---- - -## Step 4: Custom 404 Page - -**Goal:** Branded 404 page instead of browser default. - -Create `mkdocs/docs/404.md`: -```markdown ---- -template: main.html -title: Page Not Found -hide: - - navigation - - toc - - footer -search: - exclude: true ---- - -# Page Not Found - -The page you're looking for doesn't exist or has been moved. - -[Go to Documentation Home](docs/index.md){ .md-button .md-button--primary } -[Search](docs/index.md){ .md-button } -``` - ---- - -## Step 5: Content Fixes — Broken Links & Stale Warnings - -**Goal:** Fix all broken links, placeholder content, and stale warnings. - -### 5a. Fix broken "Coming soon" links -- `docs/index.md`: Monitoring card links to `../blog/index.md` → link to `admin/services/monitoring.md` -- `docs/index.md`: Contributing card links to `../blog/index.md` → create a contributing stub or remove placeholder - -### 5b. Fix Architecture page -Remove "Under Construction" admonition. Flesh out with: -- Mermaid system diagram -- Database entity relationship summary -- Authentication flow (already started) -- Request lifecycle - -### 5c. Fix Troubleshooting page -Remove "Under Construction" admonition. Add more entries from CLAUDE.md and production experience. - -### 5d. Fix Admin Guide roles table -Only lists 5 roles but there are 11. Add missing roles: -BROADCAST_ADMIN, CONTENT_ADMIN, MEDIA_ADMIN, PAYMENTS_ADMIN, EVENTS_ADMIN, SOCIAL_ADMIN - -### 5e. Social icons semantic fix -GitHub icon links to Gitea — change icon to `fontawesome/brands/gitea` or `simple/gitea` if available, or use a generic `fontawesome/solid/code-branch`. - ---- - -## Step 6: Cleanup Test/Orphan Files - -**Goal:** Remove files that shouldn't be in the docs directory. - -- `docs/test.md` (41KB test file) -- `docs/test-page.md` -- `docs/testing.md` -- `docs/lander.md` (override template pointer — keep if used by index.md) -- `docs/main.md` (override template pointer — keep if used) - -Verify `lander.md` and `main.md` are still needed by checking if any page uses `template: lander.html` or `template: main.html`. - ---- - -## Step 7: Announcement Bar - -**Goal:** Use Material's announcement bar for version/status info. - -Create `mkdocs/docs/overrides/main.html` addition (or modify existing) with announcement block: -```html -{% block announce %} - Changemaker Lite v2 — Get started in 5 minutes -{% endblock %} -``` - -Note: The existing `main.html` override is 35KB — check if it already has an announce block before modifying. - ---- - -## Step 8: Blog Seeding - -**Goal:** Create 1–2 initial blog posts so the blog section isn't empty. - -Suggested posts: -1. **"Introducing Changemaker Lite v2"** — Overview of the rebuild, what's new, philosophy -2. **"Why Self-Hosted Campaign Tools Matter in 2026"** — Draws from the Philosophy page - ---- - -## Step 9: Screenshot Audit - -**Goal:** Verify all `![...](../../assets/images/screenshots/...)` references resolve to actual files. Take new screenshots with Playwright where missing or outdated. - -Pages referencing screenshots: -- Getting Started index (dashboard.png) -- First Steps (login.png, dashboard.png, settings-organization.png, campaigns.png, locations.png, shifts.png) -- Dashboard (dashboard.png) -- People & Access (users.png) -- Settings (settings.png) -- Campaigns (campaigns.png) - ---- - -## Priority Order - -| Priority | Step | Impact | Effort | -|----------|------|--------|--------| -| **P0** | Step 1 (mkdocs.yml fixes) | High — broken consent, wrong branch, missing SPA nav | Low | -| **P0** | Step 5 (broken links/content) | High — broken UX | Medium | -| **P0** | Step 6 (cleanup test files) | Medium — professional appearance | Low | -| **P1** | Step 3 (abbreviations) | Medium — reader comprehension | Low | -| **P1** | Step 4 (404 page) | Medium — UX polish | Low | -| **P1** | Step 2 (tags/status/boost) | Medium — discoverability | Medium-High | -| **P2** | Step 7 (announcement bar) | Low-Medium — branding | Low | -| **P2** | Step 8 (blog seeding) | Low — completeness | Medium | -| **P2** | Step 9 (screenshot audit) | Medium — visual credibility | High | - ---- - -## Material Theme Reference - -Key Material docs for implementers: -- [Setting up tags](https://squidfunk.github.io/mkdocs-material/setup/setting-up-tags/) -- [Setting up navigation](https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/) -- [Page status](https://squidfunk.github.io/mkdocs-material/reference/index/#setting-the-page-status) -- [Search boosting](https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-search/#search-boosting) -- [Abbreviations](https://squidfunk.github.io/mkdocs-material/reference/tooltips/#adding-abbreviations) -- [Cookie consent](https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#cookie-consent) -- [Custom 404](https://www.mkdocs.org/user-guide/custom-themes/#custom-theme) -- [Announcement bar](https://squidfunk.github.io/mkdocs-material/setup/setting-up-the-header/#announcement-bar) diff --git a/mkdocs/docs/assets/images/screenshots/getting-started/upgrade-01-system-tab-initial.png b/mkdocs/docs/assets/images/screenshots/getting-started/upgrade-01-system-tab-initial.png new file mode 100644 index 0000000000000000000000000000000000000000..0146549f509887813ad5a0f7b11362fa4509b118 GIT binary patch literal 119161 zcmdS>XIE3v`o;^Z2q*|BRjDe{n^L7lrT5;ONbgbugn)vGfPm6_@4Y01j)3$MLg+0> zZz1#+AW!!5-}?iccjx5Qon(xewN}QQYu>->x>kgih9VgWJ;|LrcgU2LU{rQ8}`08 z3GB~jY`6ElR_IahOtK3r(d_i&h`dHF8ZOuIyk^+x4T>BXC#sro2?iXBpD%d9rH8!W z;&6<3lrYk%|Bj4Uo6AEY{7>Rv2Zc&P|5x4lVnTkG_`mf;z=OB{Epw)1|J?m=4Q0MZ z{@=3X^zrBamhURVzYzSlc9Oo&_}@}%_r>ym%P%Gr|L-4KBq||6FZBC{l=y5##a>@* zRt>zf$;(upEiCv}ru&v)$DypasP)r<_A53v^OlxJjC1p2GhZxvWx(w~>^~&VjFXqw z=77c8c2P^AC@=I|YwPvcFU3966U(e~xT=Ce@8DeBFpT*=U=R+sKS&Kk4f*V392N#_ ztZ(>hX0SZ{91D(u_z1V$j1~UY4<(A`B_Sbs*`2>-=s$jL=BY!1jpgz}Cqq6Vu2vN_ z>P=KF-Y@mb0R*Me41_~tU-I#(5B-wJ>iG*ko?jAp{JDQ;rrGbz%fr>m)w-~nyPem1n1CJn` zCtEC0Zb_#O}Ibvb)z)(lC1%PJoYDvDf3OB(1&%shpcqAa9w9a5O=C-Mw!#DUeN`o-{f=Yqsi~p|9aWdM`#%e(s~0|@l9<8G8fp9T3|`i{p$vuu zrJB3Gz7RSF;R@7FVQ|LVt853v6HqW(z+4Ot>S|@V@`(l08lvi$$^JN1F5Pq#%Sxs_ zVKT2A*#%xPOARa&h`4>a+?}(Wn9whkWZPb^;3B=Wda^gKzj!yiqIP~5nT|CcY(u{& z&U3cHSXp8ATZh_EWkQw}D;KV+u_W!XJ|BZV1RSdJZK8uZK!0zYR%<2A`khGq37hO1 z)VZ1V#%G<`EF9mCq)B$9XO-xt#3lUIotzSKFFyx>bkW-NFqx9KyNInim!68EYc|=W zOl8Wp4UuOMk9x^@A)n!1hZjR5ezZ)NM&ev=)}#17sE8Td)^0774q<^z{^`exuxnZ}j%(xV4X{7Z|fGLx4>yD0U3vDrjx6AdaCiwel z_G7Bk;dY%UU5%cW6O_MNAP*P0=JXe-GNu{ET zij3sGXiP|$(5k-6Bq8p!?XY1(dSMj{_PsGb;`~SYcIB8t)8IQ;U(dw*)SIX=wqUi( z$~x$}Dts$2d{yz<*JTzrbW#Y}nHPt(2OKI8TIUENOUtR46ta(7c=t<94bx>*6EmI= zaMTKLUJdBFv5o&@%D?yg#qWfa;ZtoLg9_p08aFrju*eWfHkzK9l(&N_w?-|QNsq8) z2DmF?`Kk(o+#O;j)Wqa;VsbKw_BbQW6y~;YBPgDDLp)Y{^sSVYK@2)ERuLa}Ex6{k zH3|T)e6p;;5zPrA&EV;^C(EU1Tk?1AmGjMdDk^ouK*wz+>3ZkwYv{_aIcqKW8{O{| zXtDi)Rfj5g1!4TiZu-rdHX`+sWhXpn@l$p$Jo9$+ZPTJ<=?mFVmY8P}(UTvk&ygK} z(t*XX=`G%sTT(G3z9{J{@526f*MeLx#4p^ovUh>)UZXA}ITngOgTn|(+yX|tuA?o`uxk+gSYd8F=LeqPSKxqMwco8ijc_cX!3x&{lKgAVs3MY)e02X5ynDq?^B zFqX1s!v>bfSDM24u|Q@kk?~kr>=lzFZWGhen4CV1&LPNU2|qO#ZaMOz;Su#6JO~O6 zxNTp7hl0Sf99aDHiL0O=NQ3wSCyQc!A_1DGb1N*A=|{p_D|6eci^WW*(gA-s>el4% z50bOeSvE8Oil;v4xA&uyHLeoSEZ_cx5=D`=877>(<~Zp`gt<*|=iN#$Z76U^^G41{ zm4(h%OUAVNDPZ70cE7`qjbnQ$Dk|OZ+$+mNPxw2?E3K>@48)dtRcA@_ zQj*mKDLAWVZ4Ie$&{CW^(T)MZkFOw~Y{8WeiYig*w^TvIu3y_ondQ(FCLyt7a|3&Zj>Ji&13ddlT=CtcJT zQ82-R{Nkbm$2Yx^`n|{nYj&aX?^RM_e|N96y-K|7)tKMZXmjP$?@M^OH)tuTU zNBTEsUZ5{l!%aO~-zQ`J9G)xRRU*b4zYsXnTrZY%URsT?9g(@}&%Jal`CB>@ zJxg^0PmJmabf32KJDeH4;>(^L(QAFW>%&lw!1O2PfP-D>kHMxe|DY3}bo)83sHN3y zD7}#XDgtaTZ#{E8T{HmR8~ia&7JXV8(Bz6-(zz*hOy;&8A7{ysPf`)gbkiK$K;(n?)sEC7Z2L^bdOa<3!V$20!{_dZ*a<_;lcI& z8)s7xzB>0wvxV@;^}b9|{k!@iG?9v7U4o-`79qaaJucFo;PffCpCM74~!_09Sm}!cNiWFRDf@T{d*b*m;M(Cr6bKU{O#4trTrn3Rg z7bJd?S?z#khV-X(0wJPr=P7QN>Z19W?&}9U|C=i1L|b{&ZXWJtbjrb(ZLTP~y}esk zjrOrKFb6YLrThM^r@PfORrDGhesi3xKh7Sox`U=Wj7X47*qhDy?ca7~x1K3@iEu%? zwjX$`62EypwL0oZLrUgS_qdVHa!iy5 zTg+!6cXY<07l+sn=4sUt-@h?gX`c6(nNE!)G-uy%j9P`Dbh8SlllYwHN*-i|WwclA zjTPl$OA?cKd;V>{`>Mt1q@oKwvvB9~>)q@l$>gn&P8QJkahl=J8gIYVYIiI}!HR$~ zT))cN&0}LP!%c1ZM`N!phQ0J{9dlutq$imsjl7Gcyq{S*MB@q{hUE?Hi`%LPsHnwh zjh5wNzp*8araHA!2gQwzcMV(r8(tp!JrpA7vtW0%zh^%ncrjgl$Tuee*>37p5gKv5 z9*wKz)ofb-)#MzoQ*U3~%I?w_$LqW&GYwQVj9<|#d^RWfmf~!d%iG5iEZ={B!B8?b z)4pIJE>EUG;nzUN)~>VU%wkAi+=oDoMH!~luEBIvjb^K=JT!;zNl)a&HyPi-nsZa* ztMm;TVQuJU0Ixoh&5Pb3W3MJ`vq!wOnE?5%5s~XvkO?Wnw z+B|v{#*uNeYmF0{KEXB=uFwUa%k@V)UvtFrr%`yhRSb@^U{Q}+S(5ry_Cvn)l!up^ zoSA>*R{I%rt7qBLUbtH^FrZoN2L4q(ZZlJ1?6x7r9@wk-DJgWLr8UA_4(A9-69GDk zNe4$lI{(K4(!MZk%BIAmR%RYIUJZVL6ZWB`1%8s3k&u!sRkz70$|NTJHZah>&S7j* z$0ikylZ|$d9dKEA8Ms?yWGA0|JHwW95p#&uiBROuSCEc)=$P3Tv)h=It=KH%@F@|Mj ztcXzERnCvPhXv?HSifRk5gA$c?s<)inWeF@BX*-rICjKTcv5V9zGJojtF)pBROD8s z-g!NaO!#-RkI&ZYOj=SAOQb!%@%F~d76!2%|D{t7KgV^OtC$>BwBE`FoIV@N&&gTd z>WnWs{aJGFb?}D!f|#AHEq>B&O-#!8?=76I@c#S|Zo#}b!jOV^p?8o;?ENP*GjT*F zvMTGW&?}EkA)2`b#fa`&){NR-IF1Elu&xdnO{;Z@~rM?J{}j+{Qj( z02krhS#%~`(gcgBDY$8qA3=|_{`HTqzn7N(F;hqLSvFcM91llCL8=_BdI5Bq{aPFF zTs2#M2pu@wS$Lprm^FAY;MG{B&e^U`TYTl$x@< zhaWCtfg+o6DL8QDM4POVUMk|p<(4`p^bS&C8$-asI1dvR5tG3H*3DI<6(uMZPh&!IlB#ZGJ4~&++C|2bj>kM#O-)T5w{>Yd^9n^ob#;Q&MP4m&@J7hc33d|=UqMxrl@SKb!|Gx@_TfE)Twk-D!{rCCORjn8>SNU7zN<(6!D&PR{tl=& zS6@FT{^Oym(uMQw0+YmvxJ45-Aa3q(bBHslH;FunUJP0=`v~;>>ctp&ri6o-T#xnm zPi=^0yrJH5xU>b-CjTPNYDj^0>6m?-U*^a|I4or%yP+3S?=}v}Eo&a^9_wo-)--FO ze%>x;i~V}42hFPYb1JUVfV5QaL$gzUoy>>$Kqxq`{(!zA_tV+uaYvPz;bIyoGJ~L% zK!ZU3wVF2odirhTgvDF0L|R^0X|C%J)AN{wO&vSP2235&R(LAubp2RDB5yB_don=` zyyEk?JzN7Vaou;y19ME&MlR;Cw2oU8x?h5)V?sNC`*XP~=9Fz%umJ3o=ayPg3jZHR z{>Ze8U!HcoOtWH#=}`oFwMaOiFaBklQ#7$pi2{tTNQ zJ3HHJHsGD;Ne7>Pp8iUUX2)!dol4B#Vs@yLv)F!cw~se;yI*{5Kix@5-`8R#^xqMA zKzWq}e0lkBLN7{FQz=$esd{ZR*>moh-eq%>1dZ&)P65GTOQ59vpgXjni zFGebLJVpG;yDIwPC_(n@Jrvw|YMHqpC7&-%-=~Lelj7A!W!-8Dc46?uWhV%p%aLXb0VP?_0YO=w^#CnadOaqE$soj{rdi-g05aD|LqTxLr*Q(j>rUNbyRkg z?0m6#qj{@7w^Tx8{Z=ta8dXMajaQ03W#XVkhBZB8hA!EW3CeV75^F-a;r z7n{6(h|Y~8&%2fx3U#rdOP?$3Hc_}>OsREn?z)YC`?@jN(8>yN2fkF{mtAW!3D>h?9<%;C6%8u+ zV9ITVd+x0zWA#l8-8|T;Xl}Y`pqGnA6gv}IJGf0J>{J!*Bi|!rfW#^i^!d%_S2U(X z=k!eH*M#Ulja|wjIwt*)Se9|naG}?9uO0+Q>60ZY(o#5DdjbM*r9oTvtJzFzFFiK%Rg%)SCM8ClXZgZlvY$EPg83l8@wQi za_(3V8<$CGx9$DrFROS~y!zUJ5xUSwyM+MHxF1iC=W;-uYh&dlDJ9tRVf>qHl zSkr$x^q@X?{mNNn7>}KHD$4|NcdL^M8JzVIb)^nE0!mBj*5(?=CnV$~_74i63BI4z zy1PokLC;16^nu$gGvVCao|t1M@M1p;2Mb_N%zFQR+Ur5}66Vq1r{X2k4rP7hyth4I zen`yL@=x*+`_b&bHzeHhG}?}irIif8`)_r)w<^$IT7ltCiSdD z8bx1zl2`Po>*#?xK%2Ll&9n--s@5wHFqTC(b5L_jH~WOgmILMpe0%G?KVj?9+-Z!R zx7%L|XK8y__$TTflRO*Y9QD|fTo4MgbpWoLc2V(dJg#(jI;iNN`>uBS-TCi?2g9Zk z-D5`Hn}KDU5HB}*hGEo3b-v6*cF{p!RzBya3m>%E+-L9-+RLtYm#{v`i^D8I;^A+Q za$n1_9dCY0b?cjjR^RY0CX>pE#o?;bZ}%lZM=xn8tM2O*hH$@1c>D9Iq>-wr^(c-O zX%$*zkjb6pqQAj?uqTwH^N57MJcuC1v!kt~L{%(#opcI8siCTF+2mM@0&Iq#F>MBO zeVKEg*<50X)Sg`)bu9oy>baN*7j_&dYL-|G$~>kKMMzf`L{SV3&Uq)py1A?G2URiA zu2fHe8e0Ssl{tqCo5i5bUIJXBKLQzPp4|Se znoRcZ%Fku~VSjs<9fXK-e zN1r=p>gWKRI}_sAf*m>zAq?iiAi_yhnIk$`IHylZWuB`Pun9Dl8qrsrzh;%eK^(YD zZNVN0*mwC4|;Hl z<(d-|GOQ=!1c!8j+BrE3Ld2{te#TGw+MAICa5^_YgOO_Tt}h6Jcf86jN;Y)8(TLwG z8gsdT2SF1z#D-NIJ%L`dHyCZB`-!xJ(mgljb;p!Em>k$nnb7j%IIWcho34|D`-m@6O_aL5 zk20ruF^&V@?(PPebEgIM3PF4+Cqv_{Kdj0jd4G~VP%n~bRCm_(n0o%;blzjN-r|#a z*kz@-%!+ox!1OKss%R%D5miWh=q`B2b%?n>X_!Sxo34=AF7K}(pG@6_k?`evZ$Vpf zg{cjRy?i;8v|(Uz?8)$JZ99%3r1r+4FhkVKM@c7dU+V}HHo>bGap$)jT?OIm!9vI$}(Ho)Mj%OeTJ4&yGsJ)9B+@lH*MgGZUWxKSmwOVn6sy} ze1&T9$|lN5)_j>)x*oZ7GulSwgPHYx&GjaXT)$L&y0V3|oSCxXNLm8g_Boc63#pEi z^nU)KUYXC+G#G_n+Yal+OX%U|!)ngz8X7SxfjdR6wUD2X($ptnk3>dwv(#mEhWMEH zv^6xNYzIqbg{P}6inLi@g|QbpdE?icv7^ITZ~{@zSw>vnE8*8bcT%TYb#-+i_m3)| zCr<4_nU`rt0#0D2H=oCgZE*1HUL=B>N5<-_@3(vo@Zp_cD7u zk3z<8LH&@9&8)u$7LLV{&!C%HMDJO1wUvV>+PDd-Q2(lU$eZYjD)Q6-PV-5kgM*O_ z2DhnkCvizue~YET+emG62#HkU+7VI7$>wu|PT$Zj^&QQq%%t8`#osF`_m~*WuhybA zRUK{gvx7YJ8B?5FxsNL~XTR00fO7U1`2(0~fueVz5agZbktOf{#{wYZmVen&sOcs! z0p3N0a_OY>167s8%*WYd_ts=oi8IBjmWn)@eSs0Np!XvFI~Mic$lSK}gz=y=v{0g# zN;T(qhfl|&Jx@d%45+^cc(Yg>=1YIr|2}SSO6N|t$C#!)@>LbRy;|}1s4-aJXVBa{ zY|pgaLE7~xS34eOBTrSO-j_kuL9I!L@N zrUdFGXo(edoJ#RMJmI=hnusqJj)kCr&hxO=aF3t?>)hBgUI~LF4plVc#JDW7$$ycY z`_4p(*X6a(e%!ZFbIGyxjk%t5$Y(rj{T+l6#yahk={Xj=3f^c-Cxrmc9y&~)CBp+$ z{zSonej28fZa0DmD`n&s(7ozVhWqQ+yFhakzbW1H+0l_FzKQxb_S1J=cytrK;@Dm1 z-e;xALCk$tL1JTLd&^C}-;~|(+i}}DW{?+0lgu_}Di82C0H4oD1T5bt^eqpcB@nm&WSrukXuPpd3A}#?$wX#i)F5I8pAzxDOiDj($mDU_Ozq<+9I!r zM>hiW#m{9qn?HWzSmS5-_u)}i?rMR!bz4TI`k>^K4;tkcT_RbbiiQl?Si`u~jIyFM z2T{lZEJI-K2=m2hF3q!5jE=par#BJw`oe=d#nMTnLKzm5=N)PS+xqd#m-56Do!x;4 z{E(A(^7803AkU)iQ?M7NHytEzC^cCR+n2O!bOz6E0Gh=BFje^~zrra@3tC}-$V#22 ziQBbj3HvhXq@neVw&O3p(fJe=kL}^dcCB1)T?t}g+OMvL2P>oP$uL@$)&8*d1xPXA zAXDt7x<$EAvEyPh5wBA#yB6pb{*3n5Ae&?DrD$+5!*y+!@5x@bd-5WW6z5urh`N^dmV3WrP2_S2rE)2|4>v-7d@+$2;N+1bnMQk*z2Ik=m%pyxXn!) z1nR22WHZ+`g@oiu^&IHI=m3p|8|cN@aU{wG;UMa`->B>2K#ymDf1gymeX_h!Th%^_ z7Ze!h8d91*#(mArvN_Cpx3M_SrLDRg)hNc-?Y(SK7jnXVigFEg@E;r`@w|^mU5rAu zjk+9trnf*&2)9r4I&tpJW9S>5UB*K3iM5#qS)Ltnyrx$6v1D4i5R7ZILY50=AvyRT zu?YQ`8Pl3H`cu7_c?zy6Pi}!FNM%)_SzlEiZ!urnl1@Bt8@-MKuAREzfQaN03fX7ug$$ z2^~W(IM-&Z00x0ok~cWv9rc>j^kl_UI-U+l`83`va=Sqt;6#1X7!R>5Y84mzIxjRZ za9mO;$;T%f*gyx^JG5_IBw)(0wX>-*Z)n;{F6r;@PpAO>Og)M3`(8OPL7j78 zbo3wp^2#lp`?I6tBmcTQ^K=b!zOv%P*1PXj#?uR5S(xd$K6ZC1A@7y8T03^j7KbEJ zU?fEcKqnVgLXARyN^gZczSE&M%Ek*k&V3&cJ`?t*cGB`zGLSF8OY5Y#8({Y5nxw?*uMM zvE9gGlGM}JMF%|r86iN^N;tK?Bmqn$uzt(4K#fp37o5BmFY$t7Az zatLL~%_%Z^eQFmfALEdakdV7sZ8o;HCJnWPzvT|Hx1LQD(%-Hm zV)PKv>W^5X1pfW>2UQN%uS7*T(rJn)q#d>?idl99MA1ue=I~-p=ABHi*>u2Q#;d}u zsmU1dl{+c1$UMZ2LxsRmJ_@*^M+(-t4xQ^b#zY7yxB@OD2?G%%y=G#fF_@q$}**Dk{tUAtdl9X`j981nGv7kwXtcX&6ZJC z{IpV3p#rpEYYQG5l97WFF{WNKym*s8tOh|#xtwbB^>&awOE8VGtj*_WY4zG|&1c(x zt94aH)dQ?BLg^bmUKg@2)#MfO$bQ+JE$@g~toV?^)BkvVB=6lFW~m6SF_VXqubS0|nirR_ugr@8mvWt+f!Z<~VmaNkM2yvlDE-1j$>T{9UQ zlUIvl3YaeEW5hHgTKv(zg>apL{(fo-cqF{I^5Zi1{-2U|*_LiiwG;9G$OF>PMo+OZ z``{M7OI!T`dopfrt{HLR;)bF~#Sh`scI$@saAM9CwWW6n(GcP|!(WmCzGB$N3e`N6+S1IKD@oWybKnxYo9tk(` z!+Q&xG%s(wZr}eXkwJp~r1OyR+=&0suX%MG<$nK9?jmuRGkFZ&cr>@zN^i6QehDBK zv5d+N{gbOuL-M^iEITg4NjuP0o(8;h3I!jx3#RuCIcshN_M*L%C2=R(TE9>pp9$DT zArbkI1d{G0ba>g3F@AF|=JQHl!$GL7wXse;(KlR_uLPYLB0mR3h}s|Si2tKtZRHr= z1pLgo2*S$&d-;0JB%+mz7IkTg#OK*Z=t&4OzzbbdqCQia&q~OcKz)9+wXp;%*FU_`oqr2W_?@(&(Tc%q z2Zy#1wt2J<()#d{b6FX8LUQfOJU@x&x2Xp865jwZEj`y&N|V722MVL3dU_Kdm3C^> zT8PsHB(tDLUfz4H@dafZB^%3xj*dv>4SZ;!j(JjQDDXg+5I{SazLl&&+K^~X$}Nhw z5oK<+{RC5!7^KY`!?WssfM#oI!}9X(h1DM&9eKMb5I>z7VIbD?Wu5sC(brFnQPyCV zRJ2Zi<6+@1Yfy9dV$3;kNdUJ%sEbKvtNL2-yyJ^L1IC{UFF!q76-Qe+G&b5(r7Q4= z@@i@88jA+=VL3Bfd~+s>Y?Krk-g&U?mzOW~{bjc}KYfVaaV=c0bt6SuKqmxVze*DM z%+O+IVv4A@9swE}rEaD|8mN1=Yj4v7ud5!YE0X=ws4Wrh8u;;0{mE;vxU8fh={nE* zR0#uq@|C%Y*Zj|4rW!j89DciwqLckr*UPjZUE%lU{dE}!sg$cKF=<(s-TjNbqr+&! z-7$mY@`&V$>E0#Ozk2;YdznEEzA3M#y4|lgUdaF=#GjUyJk00EE^2N%HUNP@E%k>n zIcK-A61h2MAKX5z$sn(TXjY`13H5ebqBCua2X)ehDlMR}x2qrPh}0tmE|p_7HHOui zSp@cql-2#8ofEk0NIBV@gH5HAQYhJ}Ijk2xalc0sOozQ@6?_vvX*gBoZeK<3CuTmC zqSgDHYuKNAwxe&66~Vm%!&Z`jMGp(_?D)YdFfY}cY=`3p z`JB}ASaah%DD;m?5Br=Cs7abi!Cyes#_7H+foFC2eUm;Wb?Y`W&pEH8eLA>?kV(ly z@{WYfv=}FNh{h?Y*nsI!m6fWy=E$9skB`sQ&g%LC5s$ZIAXr3H-uk#4BkmF#w|~B| z#7=AH>kcSB^xc|B((#vYD8KS6S-&nu5bQckif^84P)Ur?uV1YYCmM@3JQg#E;zyU- z|Gn9PdJ8u(1PAiTwh?V?uA^^vQTFa$imz0-RSs(f5)u=)N}`W}Q&oc!)6-Bo0+t!Z0W^eyiD%I6PjZfiav=Jvg8!U~!L1678s77;G>5vI}eu z+zhnA9mZ*Lnl=0K%gf^(U8jiju`;E=-!3{U725%LrQ2O+=S3exsi)G(=5J%C9@)ju z`OUZzeu&3NgSFyy>!t=bFE`_=ICN(u5fV|9)1)W>n@DzCSiIfZ6m>8{6^$?e{2ApR zLUU__n8;3D)6YE5Vb1u@RbK(?0jfQB7rgR7jg}S_s&|AuWNn>Q%!TUK>C0BM{@WKo zSGUrno7^NrA&@R(_CFR7!XoNA^+Qy>FA6@oI{1(+aYcpe#_6vy4%^~4=tUY8*=TdU zY+>2q96s2xSCuw(YhQr3)s1O_9XT}8$*(%cLnu3JKiMT1T~ig&@U?p}qU*07Q7=wT z7G!DL_zCkpyUG{&@QfI1M4f$8YsUagXQsyu0%%>a)&iB_eRI6fKWZvry-`3&L+lT^ z$+f1GxKk8U@YiPl;QN%zfVnu+p7!4ZeEa==du0DDhoX1n*Wr2TBjQYb6T8dmMqd4F zqUd4AY)KTzc)&Z9hVE1zP;J)gIr{IWuZLo(su@qRI2Uu0dMc)k%~-f;@RGWcxQ6Gr z>R|5HpYM{HBmG9%V6w@p6r;H@qN>z-o_F4JA*p?NsL)V18n(q14CCJOzWYF5^*PU$ zuI#$kFDfnq$Vkscc4=8oX9eM}<-K*Pf3LP?V;i)}mqVMbqlh(hBNCmr(Dk@Dc+3~R zecV#2+|%HIDED^~y3Rs9_M4G6GLi(oqo!BKpDCg!8d<|$OG_A?L}_`XHQ4lRj1(tJ z*4gJJfx=%{Z#Jb~n*wO?4*)|8^enJ?5f%a)q*JwSdEl8WoD3XeZO6VV1lm`S z+^R620|3C~3jzcazlo-C;M=YK-2C0M3pCC;g)7!}X=Vo`mMPt|0lM1GNZpYyTvOlkk$^iD-1 z&j26Xj!*|z!IXD_kEoExh3=MXPSfJ#0$r$w%vg0-$J{Pzup z&QeVySb_cOh~x0@*EmH>BxtxGyH2ovVq(eVc54QR&m=%9_Dscq=zYqA0g6qbO8a4HQxj9g zDCh6_alOn?1<(Uw2C&x!CUUQ}Lzo%q)+{U*NEj-wF!mjuLL%f|I;wu-8)I7J; zX^}~rn#N+SZFZD1mTW#KKSfQ~G&IOkuiJgy0l3@jaAR=g^|<`XcXfCm3U4{r$t)fp zLYB>22JhuQySAR@HtEs(7I2DbcUX798jNtgyG~Gd(9e+aZNNK_66VJ}b13Ei2>|h# z0*CpM{PGdB4j#6i9c^VLrCBh|+rOD>mD*4okKGE@=q(xpyp$@#QdF&&-0fk!_w|=k zgIPJ~KRRJNJ?(TmJ_eHi_q~C^*$on)dTCa^yxN|rTd9gY=5|M#FOioIQ(im+8bMrh z?KV5Rr8Tk}-<8HEHGF@rs1!VLc<}z>5@|?8j;{BH61Xjkk8O zRDqj!p{ht1PjE>_hO|#9CUzfUooDwVO?U1^BumisEq~V8r+QkojjDRL#i=YAfp+@e zvV`Bqg|85kYfw!p1yZZ^UilBXpS#OCj1C7p=9*2qd#{zKG~KlYdotN&NsHT58Rpi~ zQW-R}#M91FE-wj5gVM!6Ej-8jWlTPepwrmd1Fx-=bv}^*JxEg5q|;(f{%#XdEmmz^ z<1-^_S>i?Ghm4Y*X>o-6_eiSXnO{JVzSOtfQB#CWG}jlpEF_C6Stp97%qoYCpt><` z-$0OtxBphndwKa(1L?{!e3RQ_TY42ZoiD_+Zt+&Pw{U-&f2rVc8CG#|@vMb8lX-zO z|K@>w-U2GiHJtPN?Jcq4mGQ&-Ap=VmdNtdhVI_)n4s&MYwT~jd@v0+wY;I}mlRPYx zR^ck3(SA5xXsX;l)IV%8Z%32gh$TBccaxStJP|^}KZLSq(2GPlKb~p1sX1>|HpFBW ztkyWLZm_exf*YRz_@}EQ@%%E!yxq+_lj8}Zg9gB*dlJaY5iT@Mv1zkeVRX{+v*OV@ z7n`DzD=F5O@rY66%ax_Xre=KSVpF}Ep1x6&jVwNN5o{s&AFZhzpi?B>5odZm8@L{{LJ z7h=tEL?BNet+!MGUfdx(-A6y(w<|yCzO+>9}w zIls_eD_z|*lYm*X@CXQ4%GQrIuP|sPgcEW4%zor*!AU47N=-a^ixb1(wPHP+NAfUP zZ1idtz0o%OeZ|f^8Ey#X>3JVdyJT#s&W$%RcRsELrD>$+w-bQy{4ih?oem^EXTG^k z-4gy9yY$VV2OnE0ZSzdvb&_jx53AyqI)ABRGHErY;gyVw_PjhkhjA3{Dzdb0|aWc%**{^HW9YXj76RZ0*%%a|G*o&^L9$= z%8u5aS-`DVo5JgrUPnx!_biGE#*?z!e{j1e#(azX6%rEI6(zTCI1uT+DB`yBK!xWo z#knyoaOm%LzTId#F9#g&l$Mi}n;Yk*fgQ6ftV+74ilKR#!=yLxs!-cWJgN=^&9XA5 z|JhQU2t{|;J6$kK$U7G=ME zCCR;XK`UF&T+K%i@j-dn{$uE0{z6HJSO>g^#=B%26ck&Qrt%>WuS-qUYAQUWFYLyk z#P^THakHdFPg9@j1yXrmRW6bSd_=Ym;5{~8U3 zV-nX$Zq4_jvB+#GztzFYDilyE$O?1v@OY31XPZ=b6vHBu%sxV||5*qzw0Q%_6A3c_ zmN%T02Q3=aaq#JoFq*eCjd>vAEDd6_gij8(Ga*Po&|l5#=ZON!A&%fon?jRAJzl1{ zt_1y$jY~6K{X~DI7oQh&;@os#*gN06kP!sW( zti=&&@=S0@TYGx7WmB8SspZ~K9{YnbM|*tW^H5IT>3Q~#Pt+1J`*T$+q402eO0u6P zrH|`k<;esDX=MI|IbCEMbpa$L#uqp0gNDaSF^1a!CD)AeG-U&WA`fI83x>`&8+SXB z`!65-{}0keGW#_BHyZ17ybd&)xZYoa@#trBM%eXiDr%YUAKb2H?_Q2U`wcCzlaVjK z<6ZuV{#+!k<=Jw7KZ{jbnOa@(11?tYgF%~Qwd*qB$<>ut%bQcP7_37az7ufo8nXV=_1Ec@^!1|_D z!ATGy!s;r`SEA^7Pzq=ZUiw_9AR~6)spaRNO0VPtyJ#O#m>2D$0jKm;?-Bun0byQa zXL#f?Aa|o$p2tpARkcU1&&{YQv89LWUE$I3G2X=NIht2W5PqhtqSPLAI)#^~XM+_s ztC%);v#!=WCXQCTdhX^lTZI$e5kbQIBS->$aHXnx|CbYAF2^beX#Y2C{sl+*|Jf+{ z|DDeN!vK61BrArN;9?=clH}?C4e%%VWhaDQ@C#gBz%=B)mnD#^QI7CGUyB`#ssE1! z;NSj#DR_S#c8^?E+WZP2D)aTfr*$XLZIa=$u-nHaSa^9@YHg#Y+ys)KJ&1w@U}c$- zw7T#x=AlfvX!v^4UL`W15tcq?f4Oh^tRldnfd#N&?&q|Wgx!Ahf0yk}nY;)QV<&n?H>|cyvfy-4{(Y)mlPec<5Np`~Mx!oI`qDk~u38s6wR^j;x-p)_!2`NfcrMSd zV2WlmX@q#qG;ba>S`kz)G#;P$2kI+w53BuL%Z~UN`Q+!Rub2C?+EW9;)l|uVGjGTn zy(B7|qfia>L0dLw!TZF@#l=O}5j8zqWL)0mw7`W~->iQjGM{MYee+phtwam)mRq?`yDFLH@1N0Om@ly-vmNwS&Xqw6H;#XqmfCf5c#B2c*pFCp@B=oXTNBVQGw(Y9^|{vFw_=q_ zs5a*_i$|kcKyNQ$?v1;sDQ#Cbj)$jqUhCZ^--fOS*Jij%R zsiEq&U|j1HIiYdS`CBWd1+vD!^ivfoovg_qLf)&uYG-C#LU*!%T;oF}^x}-c&E;}b z_R9D&sJ#}i>Yzd0bd$aro4t}KjsvEsW!gf5ht7{rWs>Qp@Ut843ie0?BK@IJ4dc>;@V z;#HKQa_rhCL03uW&zsvpq)YWxSLP=|4_x1zY^tRecPhUEv%-_QMVbemgjN)JAN;kB zvHM}wzgSmHXRAgDzi1!VKTnB|c(LlVVi#Fqh{^H>R9_9$BnJtFB3barA9<8@qgP2w zE7e7;Q_j~r)5SI`O?LE2F$5lg(xk&$Hr!}maS;A9|Dd4c8%@{+28oigxwtG2D>mNG zx_#jPlyDOVz?Y2&_V55 z;4=z>os9bjfVN#GUXSQ`C+;em*l~MQ{Wo%!cM^BS_!-}*=(-`f#$DO=kJc%9`|;!H zifHH*Eg}da-aE5c7zw%NCI?aTNw8EoIN4W~%XyxuKhWWAtKuNvDk!L^g4eOGBn@|c z*Z?#CogDH-CtlbX7&H@L*oP-`#@(I1oZ5;+mh9CY85wTLIk^kHXzGlLdHGaeGZQWEhDI+xXsEPGgoSHqh*W=`{2AFs@t+H(tcl5e7maRd4t`BjeJB z&(WdCpKi$*z0aTSl(^>l53g$f!tES)u&ZR3SWUxWXnsq97&UFV&BSAMzM=HD9$s6f z*~{<2U|AJrye`qY+}cr-CZ_YyezK;d%q}0pa2TmP9&6Y(P&FS?g_WCILUZZpOIg_G z9TH7q>7k`9`D@8fqnt*FvdH`$citLbTa^PPRUS>Z+pW5#`d>T@%0vP9Vc6W|8_w!- zRe1$^YZP^&gs=nf0tR%L|66fby;e&^J0Cr>>}~Q3zU>b_=+5BGt8aOx2b(6nb{p%_ z6V6h35P>68#4K@;-jmdtgutMW3^bK(c=W8K^P0ugtdQ3Y&eLYOBFFm73J(vndlDL) ztJo*xN6mL8Cj@yYu4I%%T`Bcxq5g@yiLd5LOK0IvXw7meqvqpBsJ~}aZ&!lh>VzQW z|2f=3Fr$3E^FeHp{oE&kbHE&Hp7023_sm0db1(S5mX?fAR%OcNigK%#X*^5Tn&0NF zf-O*Rr#7d59A!*LdYsV~FqDB{o4CshoN1 zXW3$CA9mdC_w&2#@PrVKS3z&kZsB94Y=wuZR_$@F9|aZQ8!2cwKMs{%uM!*Z6>LpQ z^Ci5U^cuv`As+U8GwzRBa{>yJd$n1+qbE?7+8%ddVEX+2!Sh6%|5?H!9s{VJ!tbRu zo5PBtMMW_wbRSxzwCYZA4{d3WrN{ca^!5H-S(f_?O27G-Ov;Z>!l=(mvZLd~Ihrm1 z!}lzM3cJ2Ny6^uF*7G|~iQ#hj?-)e6iu~{QDE~i!`22fj{|_Ut|5vC+k;UBSyOR>y zVPd4x#1nY}yK+C{ZdV$@in~Tk`P|Rj1R0e7hIJ?~?Fl>7fJ%K3giYRPq)5Y9~ad~@xp8Wecat0di>7!^_xyGL!41JS_ zhle$>l!XbO1n>Fz?^iaYf(k8{T!f1^-s22tcnL)OjXgfI6~=zk2VxcSth9}d4f)#o zf=>{bJYEid={)V&|KV&xTNRVpbhkRvo5E7_t3qE_KutQc!mFbTeW~9?MC> zgd}r2S^@Bqzhm31eiw??eN*BVsneXuX1hKs;ACvLRaXU}rlrl~6qb>U?7OnSL;>?^IuI?^qS(b*X_Zew2kD#Y}5b_6a7sx;j<^ zfsuX!`g8YPFFJL6Dd+Gi(9@vt>S}g*4`b&~DP2~ndLKiFx7v7h5Qs^Z)6C@o4HfS=qc9W--YGz5zUBZTu7)&f`ZD7L z`|cD0J)=z8q*(mH7SGl#1qas|KDyB=d5ay`8@g0e*^x*s>xv^~SAynP*VUZaK5 zf1=qXMs@WB0)`|+^Qx?bMBw5hSGmb9KU=osf7vbJC&{m0pZ@T`2MTOqY22CS4W7lZ za&k(X2VN$p`RanT!fJz}{f_fUf3K-UA4GRFeQX1A5wMNqXldYn%tvL}l!3ttSuE!@ zFDz&59mZ#(GWD{I<(!5xk?L&KBy7$Yh9jD?7xMfb=GQMx>0a;ACdr8j8A&NjD*l;7 z$ueE7nV|*;1f}HUXKYVMU?<#kNn_X-L_nO)H7(56=d|$sYesHVQbYH%%c>1D;rN2? ze9zdO`y_%Js(diitDqSV-iaMS*qcK{;}}Pym!tp3l(gUGdn2=>8Gc#VYi0HFn>)l6U6#etzISXH?ncv- zt!=ZuggWjN!FK)c5cAbp?vtcHR%TqB;c&eKkcXm0-*&=|+~oWTwid62@>R1}Df*yN zr5)VC=~8_5m#~`X@Stw}OQzS%9KN{k%tNIGN9Ir80hN{}J}<$;*-EHE)vEg}HZ_MhwPmArSkbb1w$B z7B7?I_5z(U#wj4t*4ln+wr3{M-^1%d;<37&px8ZB4nExK9Os5WXeZ9BzV>8Ckj1ja z!ACn!6{ESxStth@To`_OJT-ioW5w67zvSZUK?#)P$2K<*_xwEJ7Mhiz9>K2gotqYQ z{mTQ+DnK%1JItmL%ZuUB=&}%Y%0B_%4iI&WDGj0vMP3MU8u==!gY`*mkVckR9+^&) z6yD|CTOflMqj$Ztp8b+15tq4Wd|lbm+t)WcF~L!37h(Ur!SBfo8EYyxhN~96e}4a- zq=Yyj{-zPe_>kD4=Lz?&kEovY$hnA-l*NrOFuvr9+ynFS@1`5v`0#`!BqZ?25$(ui zLo(UPy6RvbN6IB8nX65F^cI$ggpeE(PS;ig?_i%8W}UCbSue;aTj^af@AWAsIju}+6@ieiWIdCM{+{<~pO))vZX^xrwzqV|Dshx=y>w2tg0CLCUf-$n-Z~l@ z8(xx5N3j=<%BCuxkdrRV_MaNme-n21j7@}^0rmk&4#|suMp}v9HBB~!p__)Z1Yz!e zbM3bB5awIm-MARKDq!>s_aGq$ZunWvDwEcc&MA8) zuRVsk!b9)XFEio_Uq4qgnG=JSdTt+bd2nfq4$PT~hhRzJFTmPMLsB;#fgyH-jr=x= z(4>+o5Baf*cH%>RwbEO^lVJ!qP(FT7V+brK_PNe8U=BulS_}_(yf$TvduOumw(+yP3}&UAK84%Ogs&{HpF&uJ`1 z>UUxnWJq%)6p*;el6+DWQNHdlOp`XR1*A%QfGz*RQh*gQR98a^?&J@htDZ0hV0<`- ze4B2^AK2c?CVqm-N8Ri~V27xSdAoA%nh(!;T{eEVsrN73Iw&j1XXc6*s)~v5zf5x& zT47s)T~$EyaY8{G zCWBM;3@a3_sM8F!+1!mi=K%;@_Z)5jM#4@-rKUXayNuRBRQHhOQdOKXi)3_%azyW< zK0vhkp+ieeJAwq55L83QW8+gfE}G?6mjI6rR%uB5mu_KlBb!$D>i~Du!ET)C*;9Jr zDODAfOpK3gTkO`ON=xF_$S`uW3lhW5z~OA7EI_~>^Pi!foI~i-Bl0Go_IwwXb_+Rd z;V`auVY4}YiVJ2-ASw%$#-%Z3-PY^L-_ zaQ!J!YfG2ZPy5Xh{g{LIrl17rjYOjy#h}jg2<1m$p6?t-qq8dn#pX_gL2vgsnDc1i zD+uIB*>Dc1p&n#BqVcDIw}W&!fn}k|+6j2k?fDZs6>rbDjP$R={s*cs7<|E_Y(y}Uhg4ckAu@DNMvuG?aAMC=H+{Geg!uDe8p1r9~oWe+}g z3dFFqfg+dtf>hBgM>+r~Lrt`Qt);0j#WDQk%&T}oTU(xm&&!Qz=NyKz5FS%qh}6@r@{xH80Qo`i6(O78MuKli^KF?af9``0}8OJ0Gz$Oquz9 z?IPL=Ta>7f{b%gz#^zQ>HXkou`Cz|iPH|OoQ-nEriprd~ktyx=r3t5uph^OPCs<~z z6^+gg(|#WtI!ojbDBf(IxfoBC_4A5*)3&dP099)}dtK4~#l;h*($&WRc-38d;x=AQ z#zM2Lr`03i0=c3-40M4dTRtx!k7(^rN$!T^u15{R1n1=U2|hT%e#3ZyscV`@iu_G zx;t~!oeJhoRJLGeWoOGTDr>kcd$bCO#Z+P8S9kj3^Fd)fXJ?r4`4?jrZO24Z;i)?u z`Nlw14AZ#m%4IiF#)@>;B;Q`uBJ_W(%Zi;6ibXi2YKp_&59P_{E}MXDKEtaqH>urz zR*Wx_o;=b94Mt10UP`(EX2Ru^Gx0_iFsMI_1`O(QRihd9bAs(R3KL=PU%3_~MTzwm z%@p9Y{9jDK4nJh8X?As#)Bu7dsIV#=VR{pSe&!#xFPnjWJKMZB;{wn}S#=^KU(9EY zu;e!Y_J2SdMf|V--}T}^^Z|hz4?@W&b3?SGZY?h~Iwm5+lp<@WqApCWi7}tZdO(rZw|y`4V*4^soOHB14>Y8S&h7Y`I3M@pkK3c-rRnN)L=FC3rtusux8qo*qL5W&<{g; zK#!aRQs8_Xoo)`}Mxh1Ca*sa?klm0f{~W@9Nl;^NRqffC2E3iBc54y7H0ngcmKziC zm^r*ZTD7GliHeR+SYm?-lzT!Zs$iMS91T>a>%W&If`gbx{vi_3m%W|JG^}iE%Z${g zvt||zBTi0^^2wC4_3AU&QDrxTCsVW(?{06hy6?YL zk&&mjuPRRV(^)jC8UA)e%*vW)$;L33q-s43{^++Erp%(88XItqMYmAHk@ki#k2qN< zRuTxw{KCtpw8GTF zwXVPwZ=74YtdnHH)s50a)njmzAh9ON3K=eHcROP$$zjsdES-yi`8a^AxEX&Vt3z>b z!2sht`@si_>p5zu&VP3HKT`4LIKGY&dyxQhFq~pKN(9?jIt@vH>%DZmPE06UrMJals}SH z3A5e$w(fsR%E|C6l{F&`Z|yb~iX9M}6O~~n^^=LPZ)Axw?e{B6sEG*m54@)?P=D)O z!HM~D9W=#yX17=tr;xnjtoL*SKXB{UYaJKT^7Pp(i{UPY7Y54br^+|6T4=TV{9j1- z=U(1_j2r_9sMz@p5T4tGIUEJ*XRTgB??eJ*GW#^LD6#Xe6K|9ZEkr5(;a&jGNdd7_ z2P7&Y6A$a-;)b+?Jx}QYUv%LQmOYeV{je_e=j|jgo3!mzit**U3{Y4Uhc6>r)pbKzYia9q1E$jw?N} z3E?sMit&&!tz~hvgzu7|x+3+gL5h@BxuC#w6I*I#$`RP}X-xU7rnS^L?&L-Un#_1^ zE$#rg(Ns$`Q^ujxM(52Ak=k0eA|QB~4^?VAJlj}bcXteay-rgR5gWnI#**or8I?3X zRKgD+w#KpUYiv?#!eTx4HYr-dynl80uAef_n*b)&$)iFFVgMbO2R>;g4FIUH`MI=j z(!C8qy;GA*PVz+Q=Q-KgSKMc89-wWH`ybz%j~Cc<~5j^$AF!S zk#!jkr`HXJw6Ww^KcOwUQoF%Rf~nWu;2mtN^H>Hou@)X$)My<}Co3_8shGRYYh#_GPSb|9X`KzARn-@yxrW|sx;eFDzo-q-l*ZJ)E{f3 z_V_hoGTG_=!yKUt6Fln5_Pd7|*L;Yw(1&{{cf}5$GJZLXii#vNVKH{-XL}=U%sOV# z*#x23{FUwNTjEJY$vv8t8WPP)@fxxYq4*G_ZPdMmZ@??w2)*B|`w^WUNuC`JlIVL= z*8=a{qtca_vhGYB0dyrPax-vDWH7f7p7jXwZvC5(%1=hA-hM*6O9`Mnb9GwSWa=IE z((w&vY$^@6|Fp~RIIzsLaRdqJGdj3~<5ArD9&xPhnC>stB&@VSG;5LLYaw$qC&K1% zFYm(YfFzpWb4(c{DW!LYltYJFdLBN0u7^XDcDU@K>uWM#Cuon1`(QLqABYn7wA8~o%hL0h)-41Dyl*YRp?jMYbDcPO*Jh5d8 zO9F}8ot;uwe$CvOD!0%~qupB7%@682^D^e82f6ABK9CJlRn<|ArD|~A z;CU&ak0*>F*TF<*^(*I!9Pqn34~mNL$3#amv$Npi%C%Mu4)<^IQ};ZV>tHwPv&oYQ ztGzq&<$LP&?9PwT!3#P0a&>Oi$arfVUqCMKR!8%NNnmyukoNtzk3fY>XJ@+i>dl6& zgmf>z$2{*j)}BHnWb8)N@Plm>k2fj-|6Ot|Lh?ow_BRe%QQCF6do{HIU;%MZI&|G75SE+4cNPj>bT7 z)5`DW_MFJD!}>I_2uHMmt%d~9&XeenxY~;I= z)lr-x$qSe&fuE#EF?E@oLtQH(?Vb3>Votm;_>_foAGqG`>AM)5^P01ExMUk@;JZ1T z`9@Q6l{-0w3kii%iegrGXzg=o zj&J0M$0i_c2Dq`kEuIdcOli%lD(ZawsSTiJ{=&mja${G5w9Lq7>kX9D6!L1KvZzO9 zBRzKj*g0%p0KjTC0QgfU?1}f=BaI-At>=#@nMZpGSDMh^>HdhqZbdPSrGNgke*8IiAC9!T=gLyx}KA0q3l}mb}PMaZdep+?}zNNQv|n)WN`x;>*j~5@`|(F zwG1n}JB`ic*vk=z!)CmLxlkGGYSP4=1`@9;G$$mEOoZ=ahVpZc?wHptseJ)U%Gf}j z>_!>%yBspC3t@{13dp$fK`nBAMH#Z#XySQ&)TJ|1ztT5!=}NV<)OdHl$?Q*<`{cTm z&*qmwO9!zA)spiZ>1Hi`ahurB4`;X*D`eC&RNMF8ov3zxpI)Oa-fFr|xAuho*^~ z1`uHJQby+#IywXBCs?m1!wa9S&e`PW)8dlM@~msW3YBwzjuG&>ovmuuW&zeFD_pUf z#0Ee#mugIzrhFIkB_635A_CwQzltxTx?7yQ(g_wqLZ-a#oA(Yt!LZY#{K(_?1rZZ1 zI>vw<>ME0+k2roZ9b!*+0^;+5a?Q*r_mZ!sQLS%msF1zW7ShguVHFx%7VED^cB(M zbql@E|NX~^XZSEI{DP*lnmalH*3sRZp7w^p{%|u9E{w<5cCFrMNFLnq{jwen0kkLB zA>M8h5Gw2ll3g5S*rN9dr*qaUU@0(`n!|RLNO}l?Ow>&~qoYeC@^ZOw35IREY;+lk z&L1-=D(r00-`7P1>Z+Zf(WPJo*^;+s0rumZ7PQuI>b0*r1eUl=X)XLNo7+{jguIj# z*{@#j1*3gr9%XW=QOYqH-N3Ln?X?LW8p=p;dBlS3f1u11w83z9>OVC(N>5MgihmP- zk8^l_-r$&TTG@r~Ub*YAcimglB_Iy!^QBm9JlT)uTzD!CkBd`@{2HmkZ3%wu*!05V z7p;EfxKs7WuLUPBK<))AdKN_E%$(VzU~~6GZ0!x{?s;6y<`Z7Ll*b)WN=m9DlFp>U zCuj(lnX;-$a~RP%|;X60$J~fazH$V zs6Bmsg#|?_Hxo+#=&6BT9vz+cZc~eZ{(^#{)0KcyNrISVC$D&bo{eoZKfmG&a%y6V zM%_3oF}0?25`brpt#|@j$$UqT!bD;%fii%{XCf#a&mKuzRCOFzipWU;B^A2=^bP?C z-RFqWls=T|N0*04zL)6NPQ#QSDe=XogSQN^=NfVHm0n^~7eF(hq%z!}ej zOTDyC>EsoW{wRfTGOt}>bdg@SK^4Q9L>S9#orefOH-VJ^y*JV$L6Gg4L@}QzOM*zLb9|^dwNFGzKE9 za@P^{rl}#8>mC@SO1q4yO|xD-xY3ewGGFkH-!q&?MJt1Z-R63y<4_4t zJ=f^)_Zl!hgKc=Rq*qLawwSb{hH&9kP{!#*c#C%A}33u zl9EB)a+_^TN5tJSMEvHh28=%c7<^=(qZb*i^nTwWzf{}dCa7@NXbLL{f!ZU0BB{Dr zExn#!D1>zQ%l;2%moi#?P*2FH66|)=$VyR*>WS$DCHDd9%z&ZPd)5``wk7(-dlu+- zqcf@2qJ4LHoQbY%F{Ywks3c|a6*@h$LL-cRG&ScJwT_=^UYPqr01d|(rd>-ViMnb* zDr?lvxO0U$BID0!&b@gdEC1kXH($i|WVk5b)arKA!y&|N7Ws_y+0>{~UKo((&NtTf zy!Te`2k{+MJ_Ia2$^5#ha&NQ!5$$UVJhhb4vbW4Ode#-ALDS0=t}|^u`rG0RN*WY| zp>bJ)us_<>;P_%p^n^hg(?-^n-sXd~lhO=~76dRBgf4$N+Lq|_P=rMd$Z+H1P z=3t`bzO|XN5AD)|Cp#Zb8J+RW1vx|x7!|mk^^)}60%njJ9egn}M`>sH&yKF$6mvL) z)mv7FdycnX5)<4vI-3E`H)2(5IC>VDIhLyteQPH z924^VTR9~B@=S{-f2HTYrDgka{QYtvA44oFmEDz;9aW0a;0f@UEhqV~a4ri_ad0qE ze_Y?97;oH?#=xq(d@>da^kx!pFl&ei{GKYPRfe7lger=`?;m|bel#`RA0><-6pihFlwTNa#ZRj7w}3ZaNCpyp#lgMPSPyq5po5^1rRW+cI5#neN`~GSvkGhAa*@UU}%BqgH;`VYsNTF1J41866*+-xtxdGXrxMdGgxVibOS-i2C~) z;(yG45PkOHf5iR@48}IRu6G|O*%?1xwXVwxZ%SR5DYXEml)@Sh)iRB{?yFqxzalD> z^eQuS&Z~$~O8=X7yn#TM08m0Re#e$S7D(p39xxWawrA9}-CPM7bZx9Dzoci3Jn=EGQN}7QI`2y~1 z;&HRX6$|)Xhu>E2q>7#VgFC51TKrU%@fH1murnKb>jk;W&yrKom%N-4W>3AZJb>JWVdLZ-*VAFg}_nK>X z-uCL(gUs(d(;Ab#KSHDiUWCf1bl2S0eM0yHotO-AdL!SbidQFovi=;bbYDU^UkAUD zPGFvYe_|&tIoKkTYnpX~X%tdhZAJ17KQb;(*29E!Fpa;|8h1)8JPS~q>7}8@<^Ox~ zfEH2u;P8XRnr_t`$MANrLo`ThKLTo@`bSr=Lz z__KvFdKhbtTTLzLc(vURrZe7~mG|gqG|H1&FydfW?qt7($L zBd(6l52xE>q@x2pqm?=WOuCy2OD0B#s}sWtHf!H5AsL3MPT}u-p6t0l(j#5aNZNgz z^I@#kG)cYi>2+SFZ!v-Mn=~~!xvzTp0&b`Iokf7$T4FH%W3u+<=4L0=hjQygp#B({ zoLI~%D;h*a;fIC}JY*hPG@RVX!JR#Z6r}pY{NW&$*Gb=F8%sj&(>HUdK#M1DZ+r{PD@7j+`DPQeC zP3O-L(us)1ug0XIEhsSBY;-^8PFPXWLdlOPq+3o8{hHG*E~(UPx}Ffs{Nr0X=cws( zAe!#ID7B>bAV0!XV%ty?l~O?EPy;LYe|`&{6n)jdMWvwu-Z^`}CS@VL!F=^VqTXzi z)~+oi9?qdWQw8UIP&ug_qdZP&Ds%Nx)a7;ntdhp8^IfpjI@lEtG z#j(0^7T=Rvs}91Jmp#S^l44e-rLVCJ(c?nGdS;#1#GTq7a_GU;rbGBl8hc%SA|e^# zZ^rv&TR3yNA|qB!i(ZL~iyIqfZ2TD!%a8E!@yB$ut(qf+NV(K=qC>74y=U!Vm?%i1 ziI+C;-N~8HvRlUj##WC}?LF3=D^gNs9rpI&??1T=ZffDa5mC}*?PIqbfUQSsr1L#UnJuur+v%ZUgVb|VUZguNh!cu>S(z`^QW$?Uv{XaCO;a1XROnF^I{l| z07tJYQ7=4O|7!ea$~=y+tMIcs<>fARjfoimMs+-puPde>kH4eN-f4BwCrdS z*Sy@aDm9KVQRgP2?S6cn+8oteUEf~-hC(%X)J+#Lq@O=^F)QRfeDP?s{+0DA+Nd(E zX^jz14KFBW;9C#=E=7+x!EqH}#IZKCd9+tlKHv+VXVn%Byszjg(W3YJ-b$NjwiE7n zwSYUEF2TX}Ny#V^-13n@qNkV@(8@dPV8~V)n)492tf*KpBDn>0e2xCY7JcA3QaC9L$)^?ly|<97jLZOlS+*fIi1db zy-39w^tgqDmDbR2u8uyoSU0B?;i|s7OGMiIIkRuzZ#YHK8++N!o~^(Qi!^hQDozQF zfhGn4_@$2LKG8AwPH&F+>{jQ+=I1js(n_J_gzi=!VtcSFbTHv08cF3nNqIiZY?c-a z3$spDD(-JiSzE&NB)1oS!5*r-9hj=wHOV2eKkrD0Uq!3Kz!Mf$!~$0xEG*>cgR}&v zJ4<*FX$qFLZ$rsaOuw$Jk2W=BX}?1zA59XU>=cy2607VE_E#6{W32A{q_iva_4SlrvIb*( zz`zXtCjxMPjSggQXaeb1YTY3$C@|3%Qbq4>=SAIIt02Fy*Tmj%ZmM3}E12M1SRlOK z&c5x#1_Ws)^jM28yn*H>QIW-W<@|sCNKRxdk{Jsn-M;`3icht!?YDe0p0%E}Q9Y2l zAJyWIs6M*L{PQ~CV=2U}{>zi}T&+yK%!O@;5j&tjLHRZ;D53t2a_8M6lzfT8y-(%; zycGDP6Y}BFH>U}-`q^D;0uBoa^Y(h?CM@$n@aMQL8+L+gdb`e;|Vi;RM-p>%rYim~oT zHTzsmLI3`pyDgyoTRi#rftdwyezDg7kZ}nl;ofYS^%aTK6Y7l7UxUq-+#ED7@-E|sIW08Qo0iTF2S;Gh4%n8EL?K(*q}b4H zr1{pv87jcRI}hDlUSvRq=6(5dy-_}6`{d=LDD~cS^2|Xh<{It1%JYE7t(rMld=zX`sHE6;f`3W|0KIgiIpsiSnxCvaJ~5*oM%<4{;SC& zE*6<2upe^7CSvFpYgxkAAU)^i2$5Pp+ao->AenaQWb#_9zyHR~4RL~vj!T8eazT&w z>(}mCBOz{EiLh}pj<1X1S+1$_bk#7O>%y(;JT zWja{9i&OQ6JW1WUqi}^`xumYo?}nN*a81|Akz1p``=kJjLT;=m;L$HI-J7t&@?-Pq zzWch+rl2j)ABlvgJtDNy!j6rI$vx^5cSB_D;j6e$MP{tssM zf_~8#B-u#^9<6JREnV&Ita0E+NX*V@{t(>2^wxT5EF#3I=5*HKmiE z1ffz&uxM>w+1ZATI!=rk;IfY#j?0oj)mqVjreW$Q3HZ@$^K}lYK<|M#TC={=LrZH- zjK02s!|9U2k&~vg(^JPgPfh^=ue;*bNk{BXGWh)joj}=JDvc3XP3!U~U%_x^6bG;x z!EEn-`~3*`M9~rq5>0%WRxL=9oH&Ynpz2K%m(XD59jcXehSU@|aGR)sMA4iDvv1aE z^VhFTck}Z;G@C6}d^&HmSw;2ZM5Tn*B94x(5KqrXIVLS?E)Kk+=Rt%kF5bWx-?hhaTxf0*P{k}a)w_u44F*91CX1<#_Fn`y;{zh8TSv^Kp z+5G`1C$lZh7X4v>&|}7hx8Tk^ak2C5A?b5-eI{;-j>YnwlWz>G?`T||y=D*5PDy!crXgmXXL;yV?hg@1 zaf!BvyYbz)`T+GT><7nG+x8DM=hrWXgRJLHcsKn-$nlifHny<-wo!NI1-$WwSx>(% ztfp|Od*j~VJH7T!jgaY0_0NUSNFNJ$1-Q{LFen!aOTF!3xMo(3S2gaMFB^CA|Q0bH^6jOO}wA)>J%A@IRfOj*u%-@|1{pdUQ1>1j&^^(z&| zMM0FD#}S5jETAG+fxBrxfS;t^i|e7VtD)VJqBOzXm$TS6>}9VYp{@Pj<7H5HNV-f4 zOwRM;3Q5%#@QfW)7Y706L-owm4EBlZdVUCYRUX4@E|1ZkG)j1{l-J;Sgle>YC!wp7 z$3Smq-cN(3p=Jo%m9EWWh^p=BVz|7xkmhOo&mMp2y=s#MUv2GE%yi_Me$=+t6A_mi zj2n;_1+-!lBI;N$EGaH-vYQ|9L`-g$xoa(sykS^wSd^WBA|S)>GcqZj*oKLiu!Wc` zspp>&fKrGCJPgiaQJdIGu$TZ(0sVu+G{|{1_0y~L@U1Pv{h56p%ay0YwoS8~bA87K zQoB2f$PPlLa5B!c#7G(P?9rinON;G=W21}ELjKM1X4O3o_MGT15+b9cIevywu9e-z z`B&sbrU|>RY1fS1v@aT5=33zTlBGIWW(Jmr%dn7094q!C%@*XHskaDuRQaM$sz|3x z*xn!oX%2sWX#vz~SQ7)V^l&laZ>r-jovyhI1V^^d*WbU5M8f9B;v-2_+(9@uOHNB% z|1L>#d^V_Pzj;>mqpBdgSg#gSW^$Mu|H}n<^b87upq}qcF5+XNUz?Z|?Gf+tdc3&2 zOl48@0!Kz(1uZUAx$6M4Kjq+F?SV-xvJ4LQrNz)vv@jPCq zV995+_fMZ-FhyxsAC3(C&OW?7(!Rh<=M)8lcf02H6an5Xq3oOu$J=7dZUSINK3KXL zPV}2wLVh)~o9)x7k(89Yw{AUF?-y0vw==jT3Ia)D*O=@c-ESSST7ZX#%4wcZn-f^H zI5PhHcY#;JMbDl1`M}-Ebw;_c%Ig#5Y^da7W2N4WD7UnR8meafM<-{FNk*2%~&{{8PEEEAtkJjC&V zau4f#VE)Fm@jtQE18Ff7xknNeOdu7}u9@pFt#vS%_4TqI-rWs-F{(%m zGMbD84UWmYQhc=!`=w1wPpIe6H+1n)6Lj6<_z;Gs2~GR&HFz?;KP4U6J`T!QB3lS zxU0*JI|;L^YRpAR<4Tuq^c!TsT|CCxz~=K8?$2x1p5cHz>z&ff+%`3T(-w3DeN^V- z%}GiL&$G$fJX5xF_`aEbK7BVc-utU&{^r_9k*KfpvkUDr0}2`mIo)WQywz(8Rn)G_ zJCKv@Evq6Ls-E?L6C~nAs%hLiEv*tbEFT%F$a8l{H8ui{MYuvac%U!2$5 z&~e52Pn1K>9BOJ<@k0~HT<4}Zz6|O2eb6xMLbYVxvIaNbs-PB?C$bkF@#%h%vY20; zNUE%`&kxV^zT5B3lEOMCESZHLpWyvX3Cg)C_49E$RIx5-&dQ5fX)o&BhJ~b6UmZnl zfpUn+eDaL-i)emqoQd>4d4k(Vxk>w}xv0r$QD!~CHDuSA=IKn8O~EA;^HZT?>YFfb z-YyoW69*1FO@U=T9iL6BH1ri;1R2`G;;^2U}`rN0Y1K5vS0?P2ytPbq$U*5PZ5T*0DhZ4AL%s( zu`HZHK!4AQO2A>Sy7RSIfmdB?Yb7apsab04Xxi>}uwB)ep5fwRCq3F>*TUle-rPlb z+LpNS-P>UF33;F=p?3*tlA6is`-D(GBk=TtrMJ6jt9yicrti3yd`%O$iB9$I7_|eX zbO)@vhwwpf{FrHK9j!uF3_lp*hhIahbCL=IgS_6$iiCFS1G3gOP2GLOVE+-JtYS&M zqNy4927XP~NEHU`u~R+HH)mr=L>p^4uVpDMy|`GwDhel) zmG;XKY2@k@ipP(O9a_&XOKv7%BB$JuMt1akW|UYV0z(_PX4RaCx-P zR&K55FkH1d33-!eU6&`YA)ARQn#3j5tIWoeX|!u5LjmTi5E)-?TrZQ(r+;t7x7l3q zLmXgVDe}Zmdx2ZtNom0Tur$*UN9DSXx>Gy|6Nj$ZR&*Lc2N;aUQ5$MMVPDYU;N45( zJ5%U1Qkc&})AA}Ujz>$9tiDh&kG~s7O=={%T9B=bTyu$&R2+V16)SPi6N`r0ott0% z=J24aDS~LVLAN5!=n)+#V3JXrPgyVQzJ61Iu}JwJ@&ErhNh4|e?=hlO%T+%nk)UBh zFlt)L4Z~p5pGCpk0IMZuua;2)iN3RE#16sqs_h$S1rEc*-*xM43MXr8RUy z4Jorh+uU@R?-{SOg9uWBGjgmm88mpEMZu_*N*lKNE2F;)S;3U}9q7InP=8t}hd>NP zHYW$RkOussvVIWyMS~4pY!`izc}79kYLM9bqO493NCqAE6c-mt%4-m$ipf$9a#xv? z%P%*a68!I3PEzid7FARj4@>4GBBzJ_%bE)6aCTnkLjZ z9qp#4^tRxs?yd*JpYrSEZ!I6{mE;ubA8!9ipa^?M`8|B6sK_>sLr!fm{fXgl?S3qcfMw6T0S=b$% zy&iTz;_5lIBf8w=($C>5CQ7_Jb#8OC3!Bx}4pUtkSie|6iY3?>b>O3{MWb8(q{IhuZc3~g?5qY91=ZjMu|23H;J z@2qSt*4GPmE${`D^7al9;Ky@w^EjGY-tk^pX|mrAD-7MH8>6W5u!)oa9O{2=YMKwd zEF}Y7!ULet^iSf&I~xDx>@>&TbZLyIR*Fjt;+}Jt#>YBB+i?(sQ>u!%Y3L3YP3F%K zPK$}G5Rw`L?5%Q9?mORv2gF+rE9(fcn&tn6Ff{7|U(-=<%)$djpnu~Il(c?T%)j#` zuoa6la|yygacAVaak9{x`{v>8iXC!;fR(K3CbC+8Zg;S;|EeRmhcl?vY(Ch`eqx{m zP47!uKH}qtkT%K6q;fb*$ugvH7gsPJ?@(lCTX`f~?hEWdJ6~%ocDzE3B{&9j`@wuI7M^m7#wq%*X#&^}jW%siC%a+g} z%h|qVBe~UEVK1$I6L&5`Y~`O{s0&i=7efH=TVUK}-vl`fwjIuc1Dz^sQut|6zUne1 zn(XQZQ5^ZYMvq@zpu)Kio9w4FI{;)cFc79^LXS(I6yzHlDW)!cnGj1W7p|J6nUNIT z-V~?GXdf5;=IQciXS;WS<9t)tZIjr2_h7GihGe%o#Kn}&iWAT2YxwB|yxUTfgaB2S zZvDzfwuFX056T~&7g-03c|<_`8=b+@!&$5h>|V%<5Ixe=$;vQw2kMd*?I7Uwr4ak= zy&gd>om{Zu0MLzyiht5lnJsU_K>HRGlY{YA;ZhSmSWxo0N(Y6yM3|RWSGchzB@!VqfOC)aUY-x8P+CqO_8!79GTBVo!Kq+-~M zoJBL0POhZyl1Ahl18S>F0zo(8B9`9)tgKC@xn`B-RVnbG_!&F<}j^>9~CWFBOE#|F_76eQ!ox_3Ih z$SDGMNuH0_{#O6-810PlM3Fg-S8I0P%6LL9+b!ZvSSV)0ogW&TJ!^xQe9^^Eyd#r1 zJ&OYzc??XMJ%B9&7N8)Yx|ztn1L+)jkkPp5pH>MRZ=pgK+A+Z5M$z>4Rwy zo*I&_YDO>4EQjmRqv$=ChoqB#R!fTfaJ5nBJsj)B((-aaiIA04Oj}RGcomPa4KIRC zmNiB|RVW|>M}x7CN*+78xKVS9Sl0(KAwt<>N59zlLlLn%WIIAGKbk)t=UwEt5lCpk z8b}g1`O593npv(aLF*C=UGvwL-w{C5y~EuWkr&}3tI&gSic;&t8Jwb=979-KT$3Jh z#JC&gJAZ&#zISTFNXp5KogW&3oK$-QW70v#d~FoBQb2rE#eyo`kvLFU&vo@+kvfI;wtwZ-@KP{-Oe0yI2f1o2$p%iW z#j`D#tU0stwdiDIN+sva;g^d#u@#_2RP7xd0r4ckCd-L5Qy>GLAHEyyKQb%2RCS1PU)SO>Z2Md@|rQW%Z7MNBnmnFzoh zmScagq5>nJseWszlQi`L$9VJG`E9jOjUXs(wJl2#%&DQN4FG8ktMwA%Y-4E!FVa2b zgAQCOkOc!W@sjitP|oPVsC^M4uN@;4X6}=~j-r|>Aj0UyInNPtNwKI#{rnBx(&l_Q zxH2<)8%UL;m7Omu=Ee3p(_8#;3+pvct*=_2zJ#ktk3|XdQ-VYUmyMj^@=WmWH6xnM zKf2pB`0oWjihpCRur-zDW!~RT0l>rjBp7=36_zx*?5B(@M*E4WbSA7^x_B}Os=nZV zu>hPg8}`&1m6fcXkl4asXPB;$*Qxm-mU>poua zk*eI(CyRm>p(mW@Y9>`eZEd+mxBw`G%I&r(q*fen25qf4fQug9hpO574N^x6&JtO7 zO1JU=&kS>W<##6_N+WDo3Q822h3L2017HP@ z1mL6xn6u{>d3+s&>ez2d779e2Dxbt17)0e{c2GTv zfn~`LMLg;BW&>TAUhnHz#;K->dc+HP-3hg#K8}frL8Eg4?x46+R$;z;3Zqu#Ykh|w zEFm+_NM5Aqif25b8@y6)9mWP&j@-3{O-=Im^!A<$J6;wY@ItzH2Gp73USsvBTRJ(| z++PB(&x*>d01Yd5Xh<0n0Dned0u8-U5jn3lZ--Xz=aky?!S>m$)35jU$#in;rMY{BTQr21GI)1+S|s7Jnhh*$uR2%d^j7vVgn7#jh>FJ5N=^67pOHsOUQa+;K@7=#$Y!th?kCyFB;O` ztBa|bk%JM)!orY)W_2ZmkZ)3u=jRz?z7#(Rqyx|7(}WRX_RCp0CQD1M9Iq$qg1|dw znr0tL?ipxelG7MpJgxCKFg?PikV35r*5Tpeo`pb>Q+N2C0dgF-2%>I? zOy4}ELa2@2&xU4?ky2f+hZZC7(Gg1vILjL7`5A}(y{-iDt7j3;J=c{`2+|bMW44+m z4c5t8mT}v-LP@58I8?lLbXrKo!98LK48>smWv+Il=U(Vn5st4+pe%Sh9)oA7X4Z<( z%IRf+5@c2?El5zC9F(ka5uK%wz&{ph;@VbQrt(N!Ww!)4R;Z&43BeLW){g*`tGyrm zlec2*9l;RJXMzNhWZYzpP>C3W1`}Y(1^rsYCGc|vSyM7MrKWQ|^OUu=x+H3rc6lRI zL9nnNjo<`kslm33Yy?YEvTy8%^B6S?Hy6JV>)fV2E0L49n zFIrt5e*)ur$x2%yC>A9T9C-`E8ZlxsU*ncg$fKo{Djr8qz1Oe(u{YJ~7<_D5 z`Hc8-K!Xn`%i_TJhUN{71mHrJDd>DjtOzapxt&PSMZE^A#2hRDKjakcQoVYS!;vW8H3Bex9{ltR;^R zo)YHUo1aJ;e^DHFo-Z3nKRPt6r)?Pa2){%%xB2O_VvFg9n%klD4y8H#O7L@IV2x>+ z`0|I3iH=H7)+L>(vXj_r(Y(hW%Pv5Tu}X2?Ere?XK{Rw6EF@$*4ytL(s_EZ5eX$pV zWjl#TQc!a@t``>pd`g)8Er@R4B$hqz`yonGNpz*)?J!GQJDocDXtuAc7B)}C*i6l& zI++0P*a$!;XVpqL&$ckf*Dn>Np?6SJRD3lSfWYJ?RrTZV0zUdbjA{~ zI|Ir1-3V##Tn7F-Eks`dYvmqk0%H_Bebzal+1|cW7KB2`%xwWwPIlvfe|dO`SJP9e z?`(^;L=%cAqaDP_uj+}ZW?BRl7XihRCiT{Xw8$@1jh&ecp{AbZP6J6u11vT5 zi=NAyiC9vwV){cB-p>YpXFTF&rk4?l|0Fn;t{tQIZTAsSf{KADSclK(*wg7z4VtMw zuBAs?&Yh!yau0>}bw2nQG)1OsB~ddvEyJIx>ExE-A91V$G(5!gAc`EghfP8NkFf>| zb-4J-;J_R6EEx!vfiFdFH2upyWIVbCb4@h>l<`D)icVZ76RivgC{VAP7U}!DR z^mWw=?cu6w#eI80zXRK4`@s5HU$2W?tvxtj3|cBw>{x+#!%1Jkr?ukCTg8yEhvq!C z;MTn4s!Dyys}g{qr{bi{dYM4@Xe_|Zv5a+Q3UnI_eK3*H8JkPOLUQDFngAr{alIiy zIIG$ELxxWrPgYmw!++mag63&7y_eBlK+oSkj0IRjg{BYL3+^zf)ofx(Jbj@0J=Fma zi?ljn$4Xak|w`xO{qtOkuhfA?xEKyth3k95i3(Qko)r&{++bI8Kj^KKi@)T}3Fv9~z!&g#`kw zQti(Mq95{??x?IYkWt*ii559>9j)9r8Ied^6XRA^O^BAQa8+hz&Ir&tS)|4V4}U={ zo2@QLgH^I%FGg0?)N;ZDWx7n|It3dq3yO1^c3|8Rr zT6Mm<>)#z6)bjEsB=9W13j725SfS~`9)Y4gtA7@Z(4JKdA0Kb&KHIYex_T)WODmKH zrsOyk=fqOUcgNCEe5c0b4jKyYSBnj<`$4L|2|&@L)`*DSxX6`q#wm7{HR zb3fO5*Zt5=A2W-Tl%i?04FF*b-nf(tv8iRT1a8xVJ##S3uL>u4rgAB()uflQ)MWBJ zP-J{mi)Z=S7qX|-04~2kKkoiz=r+1{kdNz+He(&JD@EgM!yLMNmxB!nUaPyW^wp&S z0<}UlzinKvHpk8JPA3;jCptz@JAv$r#AxLA0SQtV^XspZe?alWwzT%`kZegBW=?RH{K*wh{^<^b3*K|cg~%JBkw@+y`5XF% zM~F*OYsdPUUIYk(O|cu#YesCsv>p=NT}3GA&CQJT0x}LB>{(ka0dNPTs(d~DsbXOi z0e_cavs;kWU1Ly9lSk5v7lg*clm42;acBVk!tn*lbjuWrr(T+lnFGC7@GU;bKEM_E z)G4u`^-k!kB;2CH7EQluu=o*y_{bix5lNaO8Eqpa+HcN6}$=337)$i?uBLB?&5 z=lBD2J=NO_2I@)e$98WmnDfmR&i3E-ZlK?jNDJcPA~V%Nt*3Fd1-(GgfXD6w;kLz< zMjdG~0$x&%$7OMLvq1SmV9(IT9M|)XY-9av=V^}X)WGnbILf$|Y%@7=$DC-P0s6Q3c=^A6_+vBx>&ql^M)AOk7o)4dY{zv~!F_NF z70{vu!&d*x_yUO7zwQ5N3G0Okh;RU%hv}ak4h;bf$bWYI|BjV@;k=)uq<-aB<6aNC zK(mg(fPetb9}X|nRN4O!BZ~iJP#$E2;Af4}kHYa-Zn zY%)?7L-OFQ^6PFyka6$281{wH$pDJZ)YQyxiV%;h)Vr#K`)e1i-x>8d5yZ&+$~5I% z>MedC*!2~(p_<)&-LAPr_f7TJJhum-9CsJCHVNCI7XP`-nV$-vev;Di4i@+6z8P=M zC973{Q*6!hD!HG##$oLXpR2DU7xO;Kf7od8J+u>#JOyrMXL-!GG*rnoN^onBILQkt z3yG&wj9fP7xOjS1H?6sg{_nd%zcc}|weFKmXH>B0&EQmALg{p+6=!>Ix!P9`WV3s$ z%-{+hKrS_qe(Zd!I?1O7>xdfO+ zn8%X=<|>*@`k{cq?{;>ii0vK?f%DjQni6B zXNx4s$%pCy5I9jV<0__hqpOrR%?Iq5$f*#GKMfu6tk&t!^)^|&Qy5Uj0Rt`i$L zolJ`6A+(++gESO3P?1%Py;4+AC@4e#%40AWEc{}TX5Gj%&xz6Cy$QT`nJwsetcaX~ z<<#BCp-#)p>Sw`Xj-F;%9+YMORPFwoNk`1B_s!{g?aYkD9D5T79c|0O&*D`*s8=h0 zpGQnUE;>6Yy~DTDzKIj4{e^pvg|TE~dpX??*lSzX2;i~C)V_^A5()zrh(8;W36K}y z|9Fia!jCij+%;IOPW+yTkWf?fHS{Nrve5vP4pKeZcc!EMUdb^~&nB-hpox@ybOfaF z+>@2=Yd72i4&QdaX_(Azd*Y&LD*aH_!%WG;&LLyg-#qD&6QE-@eku@3OV_OT-Ejrr zT>-CWb|xka%qYDID-Cr8rvEG=1-1y<;oxT_ z-|v2PgC-%zz?75g&SzXp-Ub+ZZ+cNspDWLkxd-()5Mrdk$ z29))D0Xulq&gFoQswrbWwUqZC?BMx7eT`%PgRf#iaz030;S zbN%>92oOX| zzQm`?Z6F^RygilnMMsyJHG=k&RqS+pB^cDq&*gRmCpR%* zr5E!mETXrsg$;+xjPcImhRW${DkKtdNt0n_Q&qZy1C28}@Z7-NNzWroJ`FCL{r8E4 z&x=R)WUB$H6ZNKC_!+(|4d~Vi(h_a>Egx2pl#wv_=kZ<~1%}LXnp7BAetzbCfMoeY zRu)oH%v4@kw%{D0%OjY2&MDu(a`Z^ z{Qp<6L3g@wt7E{ZirX7$5=IiV1z5wEH(4Azl`mIZR3HRmu!5Y-f`XUy?DVXx?Tdvy zgY3^&pOyj28Uypckt=>Uul}!+h(kSwOKAIQ1ov3tGXOh$Ypn*BWp$PG1ntDw3#O7x zj?$m6aw{r$b8>S1f6fAf$!NR}itz;n4SWoI0H4(&{6BZIKu8|#a3NE-6I2$QkQV>d zc_l@*P+-R;5`SfDoD<|A zyUalv1o(tQLLdI_rwKsRcX)tBC!j$hzUdrNNMO5n5OgzBz@~?Izmxs556IL_>CY1R zXG41Y zH>mS;KA2+v-2zDl_n4Z6>;2xm!~6Ytv%I&eFOkR12)XjkVeo~1oABN|du-MvRQ3(S$q6j2gX8&4l=UcQWH77?Lv!RDomO2{z$78@Izns~ge zDb$!-P|&i{otKyQgQ-wgo1T-i_WNNP{o}2zEx_*yb-^1{X1+oP1(2Tfj<&xS(9a$W zSP`le@71|(fwX1A>I`YPC}1>o|_&=Uny91xTJ7+8tx8sjt$H=NOQ2P1}i)NJ@rTgd!D|z zCt$fhP5d#DpF=TNRl)l*v~JC zP`wNeG@}44`Vmja|FA4F9^LZnm?V^+|30&zw1+_rI{f!Zn44!7&XwmT+^q{KaKK)a=1*E*8Y4` zG6?^ba991_zc$waXg@tHZSwdXLxW11##e%d$rAS5DFF{vB<~QVi1+(j89HDP@!U@A zW~I7OPzR=g0ukih5nJ{YLD`eL8>MKbS{Dmuy3~iwnuJVzxi4<^4H`THz>u~3P<9+a z%I~Hd9nDd@LURZCb`k~o2srrXTv|?Nq&Z;w7T4)`0YEj1L zc7lYs7hTrVekF~mo5g%=RVYHrG1`j}iOa*YtqKO>Y|CnWd261vsLPy1x`499<+K6- zRZ;b@^GJ+%{ZbqBK71&H!5+D21T{q)5Qxcb$*4DgKQlJS?s9JT&v)FGOe4NN} z0@PL)9^}D%Ejul(sm+JXf*b~F>NKDpz5CY2?>9G( zj`&ARM!zLPNFmdt7#PPqA|dQCH6+nMPRB6dVv@ZSi>J{RWs>(aa9u)EIo^jISQb^Y zKNPy9WByrWT4W14JU{jki|Hk%@Y~)Ub0?Gl!+8F81;*PA3&+PNj28tX3~qVZglzLo zb~Z%Ct{ywi#7*9F%VUyC?pT>XT&a01G+7N1%C>%f9zVa=8M%LbQofuDQv#-=u#}vm zc15XG_~lfpJ`N)n+VjEASMv@tSHD)!`m#MTH)`hf2B(@M0ExYb_iEYLNi|6_lH#oS z4ymyqXTJUOh4#QK>F7ZMKa8bny76D`4L%uFoK77M$jyia@$%fdAE9k8pyJnJ=2?vi;- zjDGK={+Jh2&j5IBF^^iRIZw0jPImU?7{=m7G}qlpm~l1VDXa1IpmMNca@EJjV{ZJc z3q)Sm!z2sVadtx-zv$1nIr%ed(?vg6b`nlt9^zoy$80V zt&MT36&7M|bm57&6a&7M1>C9o=|+24TWV@*KIadTEfRcwP@T94U{7h{UKSmd{fkPv zr>BQFg+zVu=j-7lQedFxCMX)8{|yFqe!}^q18tGH_b^TEoV=3cwD^;k7e>3~0t)gq zp25UPq@cqi4!~d9{3x*FYPN;8Il2rBL!9BeoPtuVFFOnER&EG9Iws~do<4rIq(gUX zu!Ya0v9u{FV2c+;MzX`qz$7KzF=PQirrW$6e=&#$V|jItBBA{$R+dPedeelri8J+{ z8w9@ke|@C(LT|um3@K6+=R$2$@+cJybr_wx*QMC z7nU=_kt|Y#tN+CUu3R^#nK;=397A*b6Lhuq#rB=jx4%iZUn2Dsh%c{vAnE1QK#XS=RUGMsf)gX={*w+~)D>B^m8WZbq6X#zQcDal@a#haR2 zu-qaw=`Y}j^ZW~vB#o7AT|9P7M+*DGi!#Zw@B;us_j{?bflA~~CRoBt8`EJhwEc}c z-SbsG8@+|Pr1;tZOZQ8;n-d})8dNIa&)F@{NQ)AUOeihzwKJf+ekWnXmdg~!+pHv? zdo(c&%1*bkLa;AOt0{i^^vrdu|9XL;uYXM}JX3Yp9M6CT{jr3pDJ|(+P5m=XD+mOF zhW(rjkN(xA*`S1zEH{9_$WujyM8>Zifi?fd{=7W{6c1pAMFFR7!^D({CQVFc#jrK9 zDtWo@8EB^-(TQFsDqXbqGtXFyP`*ksQ$)Q@OnS}?F8|KA)E-1+i2MlzoDC7u<%B(n z=C#`coEXgD#eE|yC~WD|4vdhlINfI?J6S(*o+k_GSoZu-x|3c|Zn|+svj_0}1<#+s zo92TFMN={HtcYA@Adx1SX9U^x{%E`3XzBipK5Kt!RdOru6Z{8!$n*efw`9Sye0EAU zrFPbp$tX_hFHYUxxKN$c4~=J`qLMqHheWXU1NJ!;=EII!W_*EVOVQ2`SPQMKi=nMJ zgzp@20Qc;Ax4M+vONzs1JxG^N=etvb+?HeO9BPEGL#5d$6Zz?-`+KHF=jNzC{aVjd zLTgX&=*TxWQBUPGFPngkrO?pQm?@K*+7!r&7_T%rqL$Htz%kmI+L2Mpi1)-!iYtJK zv&WPFD1agAyM+m)RW4LPGbYTmdEjVMAX+m5kh0p@r3XSGPxylreID*+n_D~{ zLgm}E4=;eCU|^w=l($k08?W29rwJE>j$tl1G(77)%;X+$M*>nw058&6Ob^hy6>IMI z?;K}q%vV4^ZZ|Y3A*;>2-7U;*I-F^srA0{OWnpDWOmYvzRpzd+voNt3q~_-9-Fznq zIiL4wR+V42M-~?r7v`Vvth-+oo;KWg0jUN>Tu~Cg44Vi3^#)_5b!=)tz+PNfX}?Nu z7jkTP)nj|hs+q~IA$z=eH#HRz$;?ReQhusK%g{LZGuW23_p6S-pBnF+}9@89K= zi(!f!t7~hlq>0^e0`);39%a2{U_4U+({!$MclETjH!Z5{fYjCBQ@s{umW9aVtY2{i^5=4-k^Si8Y`A^`!x$SAi)j3H2==><2x&M;`Y zWl?SbA7PCMgkfMRMurl;_>0RG@Bx+;G&H&I5aoJQi%-09Z0(6)gqH%tK?^x*-hWO$_Mzr_nEmUwnp0c{+=#5= zeO~XDg?d%H^R(&aSqZpeO6ecgL8kfAro2g!!Q*R4<-Bj^jbvTa;w!1U-7xgL#U*jex`R z@_!uR_yRP$JkL$eXqC6l(u*wX3v7zd)q%rv&DP{JoEGQF2%catJo>WR$X|VMOA(dc zh5H2k__m>8!fDXw?tJ$0rg`w*oieW>J_7WzV6yr9_kx;&8h6Ym3c40dW4yd<&+vr` z4~nv~TB|F|^9VSqImU*^x_enOZ5f$Z%Bm`1eP6U%W`7npx9|#j;y?B#8!&fRSPNbCg+X?+#V66Z zd~?E+t1|1J&L;$hbMB2@Bl*SU0yka^XTI0Bt<#*HpNarKyWbiPf%BAsN!5?26~>X1*Y0!mrn`G|)58AIW6r<0@vDb*e$Qe0zi zOtmTQH%ae+pmmS;#D-t*2U3US9W3GUB-`Q?ULyC^9(G>g+cJrjhAiKpsU$A^<72mv(;^uIly?VM zd%{K5S~3HrVmA36HfrMXj$YG?Y9frxS)_;4rZdagv1yP=b@K17Dce8bMy=8Kx*r8o zJ+q@u$G)8d5IvCRic3K7*&F^g7t# z_Sv4O=QTuNO&r1NWnK^%*bzwOIyAe#5XQ~JnOT-Bx{$$_f$@#7=M5&}+XkU2Sh%Ze z5_B3qSeSPMD=0|BeT;`kt&o6=r@mPX)JMOJKJ0g@Ri9d(-{owID=Ln5O}2E5hidtK ziC)dANZr*V&H2V`p#{}ix3na|e>^#Vsrk)h8PLmAMR^_MW zr7nCk&ceu+efFcuR%S`j0}_}OZ6pJsQ~qFT3papC(PX(#PwVQwOU}zR8#?gfW_F^C zlAW8LhG_9Y387{@WqD9D04Kf$vPd+#q)CD*BWQzq<%1OwA`cLuJqq51kU#$lzi9{J zazMv%>m`~Yd?N0(Jm6;>f2I2Syqt$$|95X*{-DIBfMx5u-trWvA>(N>k7t>WLc{0E z&B;9M)}NGAN@VY9th=E$2PEaU0p`%++AKtC;w9Ui<8!A^b7g)u2l6N8f}JH-pIjNn z4E?o?HhJ;w@bTUPVsO!MXC zajih+`~7lgd9U67NJe9fysqIz{pXa74D-7wuyRyunoWDOxyCoUmU5w{`{fWnMZ5I= zl{Jwg}u>5(1@I2a^rEYEMXw7cB3=0GLYX>Em}+^_V} z9Q5ZXEu6PG7rVN8bjmHS^Qn|{fBYVtaiuPZvhS=qP$sGN>d)&t{yjM;m5NUqv$~e% zw$jZ<9Me_)Ihq@-|8_jgDD=xGJAJA-^OE~ES{SP=iA)^+3wu$w?gS5|OXCl&%P*J? z_2LxP8ix`?6MP;#4*@499$rc5qdUm6mGsY4oyW-MN=wr+hQR+qcyF`SqY?_f3ss*a z^Nb&~)%H$9lIMi0uZ^$gfi!52GnFBS5ij4{7E|j-+{A9E1}Tc*%pZmMir~fO&w#ED z*fRIGf1p0u+3p|mRKv+rA*RJu6ouSKI$Ubt{D+NvU;y*L5s(vCI~v@n=6FyVsdr>E zXy-Q}!%Ee-ZCNz*eTn-I3*%RJ&HgA-TinsMx6B%=MN&PXZWP*7AbRZoIK2~n_dyxG)4D)6gq{~nN##|YiT zf3biSP9Za_mfk#i+jpvJYD^@k)MKNZgip7^8`ZNwT!+ca9|cGsHAR;2MGf{cszl4t zD40f2Rlj55xWsY;Gyh|8Pn}o39rC>;i0l zGC2RS<9P6Z=l>!Rh5-`c-yRPl{x@3K;`D$01+s(wM{GhW^8eziEgT8KbuK({k79%L^4xc~uZsum^ozm^Ua6+f>3Ii*FCt~HFSSOt^1 z>5k+_bGtvmaJ@d@=vGA)P3konG%;6UH-Kf9)D=)e;@Ukn)$pgb5le7WdHC*CzN zGRh_XcLehA%cfuGvqBy>fE>>J{O7m6MCN5F(fw7lECvi4#iv7o`!&?ENJ&0K^YlU@ zK(F=BxwT+s|6;;U_j~xj;{DJUl;p?QP0v~X&QTg*2o;SC{joU3eg^sYHnwHu_%9*l zCV!y^Fe#az;R}T1*@3@DN5FHwU89Ytw`xIE(DklY-bo&>D@g0#AD#O|4!ZVIUmKMB zUVl*PC8Z~HQ-;(WqZne!3>_Ig`SbI@#`E-SiUHg45OsK5T^hw6{MY1=U)`K8&&1FW$W=giT7-3xV~^AL z%H(AC#N5@kDdja6VBTCm*pg(NWazU%Ky73|;h?35Kf0--o1C9xKAube@3`NhXd9j{ zzAN84C`xURrW$y6dtDVXQYJbl#2Bv-%I)k@A(qIubUoIbl0;l=P`AnG^dh+~nfs{q z+BIE~V05O4O!vd`Yj1LC)Ll^L!&o$&)9+mP1kwhAb(ilZf6)=3mBbQ-@0k>K;o4HQOz%8p{~kOjhHh_&&}mGF-Y)JoeUGA3O0Trz=zT%p=TTl<+s( zY{Lgvi&u@@6o;)9p95rx>_WUMAYUS5*ROY;u<7D494A$^sgmRO)zl@DZeyOrQugau zjQ#TUZ;m2}C2_s8DKI(^4NTx?6+5>gOMlZk+SvY6aC8MXwpq6_TJ+_1c6M>4#Xgp- za7r#SFyh?Kp`6l`wI6(Rn>M#gp>MNgyL+3n8GPYKkspc?O7icLS-5TQP?F=D5AC=X zQfZ|F1}q=Qtnm}#)a$Y+ml)fojsn8Js%E4Qcx;PKl*~TukKqV6=#)3U?JIxeqf=|5 z$gslwVLbC#*ZwIgv{;YVejjqtUw6joA##i6g3O;r?5qk>H?)7=Y1XMdOlWaF5iO^4 zMD1npO^$UcoFpC0zZ&QHc*gfszxl&j1Hr?sD({;oI_M;yZ!=%S z>T+&W7wOe3DK!O^R$rdX5#&(P(&Q526RM>iwKwSC+iq@IXgq1mO_yi1R2m&GHoV66 zgnrtZ`@IY&>m{*%wV;Dqn=2S#Q2GqKQ}HXHq6rJ zqQq~}hST=vR98ABMIu^WW`SFGsEgqM5RyG^wFRri7f4D;T3sjbIytcqXs1=e<1=wC zO`?jLY4~K{5~+a^@MX_^Lkl@Ytu3QWe$gIvaDO_Mhe=<`4QkDd7MZ^_`8k!Xt?hkF z^zV&u$b?)m{xGL2aK1SbDJ1bLyJQ~g@@f>PKt|+bk8|Tu>0CrOCpRaeSE)_MsD9jk z4>!5$^yA*tjO!vz>1Sh&DEk|cw>HI$Ea8JJCbGT3wOOIW{#xPhUMn#5`0~^Szs7l$ z4YxP5c)xbPrhebaJy6B-++rJ(w>{tzb$9Pg+g6hFYp3<3koHShkpAnjc1FY*2h#l5 zo-lN(DT#3lHJomA5!7*drrPYo=?l&G#LQJEp(Hrj8{FY8cS@q`8=1D*p5<(2nRC1v zGObeGsbWn!_LF4O-ktXXvq1aqY?h0y&(l4M6*6Awi{3bLx!7E~EX)^oCJ7}ruTofh z_D1D-bs|Yn*?@kI|K?&aT4ZBVRNwR3>uRp=ddY!G^)~(AE6{=qsQ7A#on!Bi_V*%g z%h&AdxjCl$ldk^mTFbiyi*K)H-meQf4NR&u>JL&FPqJi1N})!lXxr3lT}Y{7YI2_nZ$FQ=&X;7WeLG;QS^u zV1O}Q;e9aGV$GUHaZWCzb}snTc1D%bgrZDr5i*`_paYLi!nMy5m5qCi>-xQ7%p9Ch zz=1ZlJ(hdP1LOJ@D_jKzOBTq2|Z#Dcp`CK^ud4_)_2{&`Fb zH>38NT$fgbntx?k?_FuDnko&rrGDOVKTzY7)2;?@2|!H)hhC634t< zY2n&7wkY!Duvn2j@FH>*>-L@gzJEKNl1Q>GMM{TNn%>ghTxY*pW+=xVV z5Kx*Kpi~Gr-kd+Vw-J*1+Q+KA?!^h0X72pb06P=gzu3;l8Hp)3YrK?>dPpI5wSdHX znBaU`A^hotbnI3{x6{nNnZL{(Q`lCYRl&FFrjC6{97AKi%Jk~y$M`2G`VU4x;|;Hw zeSvp%PPT4sWSShE-00ict?>lq-@5DPp%ukXf-UgL?4}6yRCWt(=A^n`xZLp=N&Uu! zZu!gWj)vQ!B)rZm0mvpMi;e!1@Us)A7diCp>*nogs<`#PDS29^kg)iJReA4*J%8SS zr>Mh5(WrSMvZq@XbnpH1MCker1mIr-zA?&SMGy%;BVU>s>8mhJ5J$14n(yHe- zSVP4nTbe&{(p-ch)>XwN_f`_(Lsh7>c*(lEd&Fu^oPAW5;sos@lip0W&2CQTg0{tM zlnzL!F1ZKg=wi9oY~=;W*-Qzig&-?=*w!;}g0q~`Jab{~00{si`LrEmEI=M9QBt=Q zti+V9eGs|-tiQN4wO)D-zZEp%u%^echQC)=WpLQejxn)4Zw2)mEm#A8wS zghzz4Ihv+#(UHa!7(W!Yy}dCTAS-}W4|P3aMcH6hHEsfwZfCV4=c_KVy(g0498P z@3UkNJbqd4mrEtZPDzoM=kfJD3hA|+pigG=s$u+ULD3CG!oDbQ!{H1e>0V^||odewps)n7}wwRK}-U|Gp zNhMZpTqi3Ik}~HX@=Yha0KAAZ8vTV4j?es!AS=(Q%%9+1U;|}r(=JY)o>Njw-cEM{ z!Amm6=`yMKRi?)8uzxKBnZD<%1nls7tsDCU54XM__ulTiMy^_uP+lWlL?1P^z@l&K z!|m#*Jl0T*$y1%TYtfR`EGeBTm8Mg?RoaJD?ycKP(i425+rScUw)V?~`{V}si@EvG zbaoeITSo>`RhdSs**oU_>_F7m*1XAMM%&Q0f=*OstmfBzHI zIyALA?#big27PjUn-y4WV%-l13mHL0d55XJ%#SiI)KO*ONR}t&WI^lWrwZ;5g{P0D z$+o$w&n0%TB1fr8Reg3v785WvPfwGol?f2-_}jQYcq>wv;J0G4$eU+be!y#MXYbI` zp-&W(2-U9_{g+CZx3wR{43EHCf3e6oIefg8PD z#U)f1H6yu2vdMv%X#t;nOX!&h5b@|;(`*7O(|n*}l~M~^lf6&T(qg)D@228{-^{7f z4Pg|>j*j?Deh<+$eb(#+{Abq#9+Cdfe{V%uCZ)`u`QgJ)c=YV=-Xs|v$G#psc=PF1 z*yq55u4ePwj`N*+nd;alY?`}N&PzrxaYWY)`%F09;JvxTgU>I&+RBE+Oq&8(5J zhwJ`S;G<{1m&*EW`YN4ydKIK1S(*M1ac><}W%sxHqCSF>igc-QA!f zpdcXK-Q69F?(SZ6EV>)cM4sQf-#_*lR7;9_dV}9zw^32*LOmp-W>|U zL{z^v<+FQRdpjq48Q5u{v%{^u%~8#P=Ll3_Xi{tKgviZDr0F^C-Ed2blQD@))ouC{&dxA5o*z!o z4dbpvr%QZ3K8yw1%pHD(>KhuLT@xJ`pvUaMk{RIu6Dt|E{VjP+6<_VZ_@mwN%)vRZ z$K+vAPQZK|c=@Kkp-6w#n--acu6pVzgci!T?k_gY6@zfgsaf3hL?1yf1Nk74%kClt z1y=D~Np(h@&C)nBH2kioGKk+}VqBWe0#$2gPQX$qE%S@2TCDqR%XV#L%CwzTVU>|f zxxE=1csxbV68IbL-nP9(g2aa7#4e4bv!Za>GZdM~TOEG>3}JWEoF(*_yRiSD72J?a z*T=(OX?1rR3bO_bCBOP9P!NnK#zN;4_&uZ)$r~^+cERkl#d=hrjc9L|eZW@(B=2L` zwh1&{WrpYp*P6k)`lo1zt(o1{CJFD0Hmp8Lk4sxQuzr|st--_s5j4z(x)0(xEn%>& z^HXC{FFwyb(f9R@sg`I(7uI;-dAA}`2-N{^O=*zA~kYi&SXe!(LMr zg`&zI;UDcBwVYAvF|tM_SB0r%#TT6377!J6;*Wl ztK1Y~f0HGF{38|iC`o6L!NBP|Nu8T=IttB#6@#M+l(m!&`S2i5E{O0D?BnO*+ZK6;UqBl0QAfDK5b@y)VuK9kz zj(#ghaBy4W1uDav`xcX9l$|uwB^LBYmzQ5Qkqb{PI?l9_8(bVWVsj|!wD|CWVsih* zq6WCrm=vhTB%gc2UE|BSO_^*(qAA;grBc0zSKtwXY~D#qv3AP6BnMaC2!8k=T=LWZ z(jxx96`hi@2ggPX9^T3VE67L1_${T#{~eH8@Nry^zrsKJ|3m+h#s4PT(kLr4@Lp6w z;^Q0-pA7HMmPLjEX}VB}R(ZMTs;neZ`pWmz!T&bF+iwQKn_|$wy6SXPG-#w&wYnF+ zO5c5WXGL`8JRars7M=ETWQc`{waD5mB0M29B8)1u>t6}L>Cp+MRhd=E`jKgDwIq2h zacmq2kl2~1n=k~ z^>p-eEVEqsd9D6VhAR_{{}A47IpND8}g z(+sMkr#99fYJ(&q)o?x;Z^$i2R4piL#;w0d(SGxXW9WX0`8BmlrpS z#(&okVXaJm^IJsEgu*WFqOD9CKARh&>iBlc+7hTU5dl`cX!B)O60@aa&)TRu94*G) zb&Bw!o9Il;iVHTDIuu3SbhR3=t&If=26q&(UpZCS-{|!fq)oC^P<7ZE5`)9-=4CQZTPICFK$SB zE^r$+Kt2{`ku}9$>2Wtw$>}D}9`^eZm2g0K;Jq(a-}U-$DHK$AbGsumt!z)QVXa8i z=wdNoHCOXu(iOOap1F7Y{iTgaSM(N4FxYmKifmMHcnc4Aa1|x5nAyhC>TAgWYD>pA zW%fH?=%neLcmnS=Dp5NtR&0ip?M|AGaRi|pc*K18^PrO>#xWp!`H1onC~cgdqhm5p z6q8)q*;Fu%hNX#WqfI)msVN}x@yw~ei(}@cW4x$U!j};5$qEXr7*DBYCfG5HD42ag zgxSI(mV@uF7E6t@x={%q&7P|;`#v>*fPVp+-%%yL>aUS55Hl5}Z@4mk;FGFIQ-Jq# z`|@c2GyowQzEJcImFgERWAKTMx0(bRg#uD)kKuQJM2QHGLsJ_!u7|=>s?qbMRa9(@ z+hNlvzvDJiorAx#!^JP_7$WKUitkxCh_C;N;M4N)4u11iW#TYdVEqG7pMDi=Yuj)t zjkHZbEw}T&+xHA$RuHf>L&8_iBf>jgNg-Tbp|A}4yXh8W5Q?6ku-xlWrZwMkp+B2K zZ~T`g{xM*X5*Cm*`JnT%4OhE2_GG8~L<7}uXg2z^LV1*#iY&l5BuqRV)Yy>&)+WXi zo}VgfWH`Qj*_)YYAr>Ofi4m%A^rq(F8|Z9(O+!){xSYsOWOuRs3Ys0(+AbGO%vZ42 z6mJNlTG*I}c)d^h@W@y3Z7nDt{%Q?hGZy(>B=a(4&*#Ie^VPU4Cu?Gzm7|kCL>KV7 z=RMI~Y84ofrgPb3CmG?L{3^Jxuxt{IS+o7=)AuNylEB?E`?#6@v9}!KGi@yVZYuAs zDx$hjIj~@`;l-|K1MQg-Dy>gZa+EqH7XN6R+7Pa6BoRl+b+WvCD%>WaoOfk&TZ>`x zPLm~)`fSaByxRFG^!i#|$ND+2{BXA9dWSrn*ip}L1rYJ7*S|_LzI?vz&Jl(E`E#1e z*;f)0*4k;rYkE&lOsC6?+DiX~hCo?`BKPHQx$Bn9t5W#anW*MN-Ewb3{?SC9Dzk~y zDELfa?NEOAd5HALfZTdWEEh7Tkv%2|Htv=X?&kJ+Ci=?#*`Zu+kHU=L&Q?d!bGy?d zYu!DHA#_1YA%@jH$-rG+i073U%;Cta!EHG+)R*p4olRh>{|=~Jr)}SN-1XhHwKv&} zcPtw}O_QIBU&sQ>l$PSB;Z#rGUwZ)@HS2D^7FrI{%Gfem5ci$=pU-ddciw$3oY%bR zGdML#%0Y@R|9lP1cw^ZKKEAym^}36FKN-V!LC;*@3xDtezUa^o!$6Ix5)19NtzYl* z``C6hxz2VhjrfiodRLlw5gc3w?s6LhYXcMct|uFgSY*sKcVZ)3#yue6_1N2;mGH>; zBkBdRgYeUwY6ll}#E@wg*F_T)1AyK%`z4p~3Y^e4z+f3FElk;q`XyV`6CB|bGP`(`z8N9rN zAF!h>&)I{;8R%ftp697UTeaNk-O=ivoGz1TFZK*OK~jzfWU(PUVq>O~Q2&u<-ZZc4 z?9y>q?^CGc`hm%{`GwUIdwQEbKkcp8FpAo2%Icn2>+pp_gvZ%tVMSn{fhSvVyBuXW zC=u1TVvr1Pi(p$2qvR(yHJ%qu17$utHD#bBLD}F5jl&O(AdZ(-#%_>mOl&UuT^x0a z+`_dyjgvm@ums7d3wVXfkhEU^w>~n4*ZVu)%lkBUrUY!wcUUfNFK*{3zqokhP&#i6ruiTQKj9(6 z2*sKjp^fQZgvuiXC%hCgcq=iuRnBbzf6~la=ti(mbz_oxw`a-t^YD4y;FS8$h`7Sl zSrJUs!gz>ey5yo%ahL}>yW0h_O(0EHig$(y_(6ANqDV>%r}4?hD#ZgoZjbyBl~Am} zgCXVgM}Tng&5+9_*IJ(>lYFVCT3vQlQrhdnjl-!0)VVsfG8ipS zCta1yM(8I=4J|e89i)3xF2AWDlo`$vwS0m#aa=f`tgD+;cGJiWiu#CewLHHrp?5#t z_3dDkS)Oa^o9@@`^37!)v863Pjj;=4Ezdt zn>zYbUzjG<|G;AL{7RX#Jl`yvyvB$yBoMGQ6?`J1sN*x*0n7lK?cVaV!z-7nC_E-A z$xxx>_V)EEiw#z#`AY#YOkZO+vSeir~eTbG7niO-T)e zw4@*hH$2m2EaeQkS4N|>ABxJ@Xy~ZZx4*heBqIlPl-tX$V(XK=J=J}28m{};fgoEk zN8IlvCi`oAJ4-ze>e*S^$YWT%5Rl|HP5IValx5S;00 zUn_tA@6<=SOCZ<6pH>9XcE^*Gqo5uraSWYZJdbmc{&9i+BdRw;Q%`D;)I%SFgqnxQ|oN$gBkNd3&1n}u9E$p449Sl3+)}`t`}9j zBR^PvQP0UbCzBHZnqZe?!VWFaL~hl2cggY8g1Z403kg{o<~w(jFGo?rKm>=c6Zi$>{IF0tm1aT{V*FSvG}-Jg}tKi_8}D; z-kbmFc3ASty0`cQ|FLj|SEO65(@mU(&yeT@LhCPFvC-mGZoPkaDf-k;S3gbkb|&=# z_#F}DS-%4zqw5X5f8;S1f*C4Df<6rLSq+UDKBlAuT?y&uKT2u`W(j&BYRXA`RaKlA z*b&$Dd|&H@$&?^8sO80#U%21JL^G@o{c@27s+$X?!aQDc7R6SNmQ09~%`|KpEgLk66fo6Qm}mGw z1)(!oQGY@m_?lYbhA*p7osp4Q5p8&IVTMz+7&Jl@sh+wR4USd#Y?N0>)Y0Bl0uwN$ z-jB<3qa~EO)Pt(cs1^~jhL@J+^48BcI9QH!Yi>oD1J@z;p`?P1N+6+DYgicQUawxO zmj4zc88njIX|+~w(9GDKFJJPkC2HtuC^DGx7S+@LL99;Xkq0ZIU@PD`IOpXSIE}Ep z>u5lmE4Sz_=*IzR=rQyXg zNGQA;0*aEQMSRGg+wpgh;Uy+_LCurF4((oGXP8LwAGE9kyvxN+dQgZGxNi%9)*fLRb2G9tG z>X*7@f4;940UT3U>+enCi@VzqX(XBvIZHHT9$SUC1q#d&F<5F*+Fy+F49yHW-H#~= z(&fcU(`8BcxKsz;8(#9s~9L^td}9ET48VSEU)y*&u$bffWGo4W#-2_JM)2)Ay%O#)_2zX zW72c6@=YSqgPnQ*SPD-yS$6mww)Kz{N(ym#&avA;{_aADHc@+~SHDD$et8)4Ya|tY zW>R##s*CvAw>b(C865eJY==8{4iZ-Xj#bF#nm3`Hlkku26;H@h&jj?a`md9xg9{UC zS&#eXO)KaldN6$*6K`(T0z~fg9y@0<)Y4H2A?3%R z_Q2+`Nzy(WP5TYXR3<&Utf+H8;M^&x0a49(R`W^s2bdN7yo$;lC=cYdlYzD}nS~ zoe{CW9h^&Ku4dJfSRi1F!>s>tMmoR2>27@w`}TB~;??-}CxK-I?fRp2m}hiNwsEpy zkXHQ7RIB#g1+=b9VvOXj*o2){zbglgYP-q_*1pE-O5JBZccxC|voYP{JHCGy9c#|* zT69CT`K%WAqL2Ql%)Z>KaQ4FSNDk&qL+Q3RzKj7c70ESt=h!D}i|BDH;UwR+cW zoCwBVsd5tZADMaRnwc2j^$)PWcK5MMewI4?$}soReqw_Cam#HEdJNdP*0qD|;xh9d zkTX!kQmYXV-q-7rJiqi*cCipE{`f}0OyfvqjN3w4fFw`5JRo(&s!D@x%xTvywW{a` zR^NNQh0$h*y>xB&8YiPIBNY6R8L&S%HXwbN8w*E04=^ylwtJ;2QZMagmhBhGIQ?N- z4B)hEU~S#&d!%8pO8F-x;EAjB?z}^koRt%XC4+_^C(f>Ig?jMMbjILcPS=KdFJ1YK zk79Te-S6mv1|DJs(*FAihwRiu0D$iwf~3(3UtIdv>?w6gx33l zy-ux4=qViD>#_y7tRF3MOibB4qoXFQ2g5YvL^zyJLEvm3JF z1!+ej)c|m7Y0pTnxWK_tSJ6CTc@t*168DmLUkhlOJrZ6#}ia{&GBS`c?75;iB?f#VD#?>Kun_stMzQtEYGmFKjb)mr$mAGhkfH1NU>d~$7Baj&q zHQu#g9dzAW^+!+C5kAu|T1C=mYf6m&M8Jvd$ru<#_qPZR?k?S>TBvPyG-@~?K;1DB zV&k>LTvSU+5Cx!3)3)#ThOXb^3xFYXJyP z_tVAWkYOe|->Vz!Bfgu<%;u$#R71K;2a}mfQEWtR7@xYe@`^WHae7agG|_nT!pGw1 zt;v_}T%78-CgQ`Xg$Ua`w)ulD+i{iL`nzgXWF zLd*vzx}bP39e;)qZ!s9(Y7q1KL|4so+T8e=AJBP`pPky2kLe-Glk91sJ*#>-wxEY5 zbB2YqE*T^td22Bya%mTJC}T1-iyP>`CZS^SEXYsi;fllIq0uRzO*=blGIqo>EkBJee@Eq)uC8l>=yNGrmSezJn?QrC$kL1aTS2(3p;)#G{Ek4+1 zCS@q2a&sv6V?18tcqEl%naYBJ;iRH({-USb8%iL-Zpv>OV!F}~U3b57eX+d4KN&tQ zw!vdGPD;PFdrJn*)4+O>Iiuo{^?=cQiQxpr7kYr?L^{_pMqi~&xO2W9Cd6n%+~vO;kB+7yv|| zNq(*?qJe{-*tXI!`>Z>J0q`7>A|tb-e_nE&SE(6z@A6sKZ0^ zlxa0t&SJf7fy@K)7rEwY@;$poHw>uWaq4WOkvx6wc8qee1>KepADt z_Kzr@3x_e5Pr^VLL)gck(Qb0i+pi-SehVq?Q-1&K%5>?ob{SLAAfbHDr)Bpoe6>Z6 zvd*baASQgAf#&!ev#^U~jn)(!*M^yel$?$!J4(quP7e|=2ww4t;d1eac(pcr5jcMz$|t@n`RY8#w0{1M33d9m&W?P!nd0Iq-tQW zKB{kV;TW`27e`BthBq8qLM-y?G9i=##ikE=wr)w}qkM%ExhHVxBp<> z4!n~9BEI+8irc())a($z2LJss`T@q)GgOqlsqz-@T=r~rQuKiY_M=-br(Z%Q`o=_7 z+sNF~dlrP2KC|wZb*<=f2I3!`R{i;Ytc^!BZ~xIVEFcr3^eM7qWc?yP`Qhmh`&(Ry zbp4F!y(*Z$tfzr=#M~A`q#PmOgCg|fGQ($SyT+U3F%q+mhq8mB)n~>1lRqFhQf|w{ z6B*OQf{I~cHe2(ss{#{UFKm^FfMP(~Vsm?Prjo=Skh&fXc1j)}a4lDCtE;>B?EYCOv2h zK7iNqxZT+~c`Cp>(8ZkDmvf?({8prQV+$9CbR2)x8^df~5|nN7CAmDeS~g6T60F#N zzZM`0^t2p@Nd9aVbG*wtjA}8>B$@OX`UZv25(!?rvU*%8Qz40IRt2!>YylAqvw-k93$XVg>gxR@u zfed*i>O8$-~G7wl7(kywXe(F7OiK)&`4A8KI3Xc$2e@03ger%A>qIi&x zWaGr>7z@U}Hy+QMAQgJ;``i3=!bgKHw7U&GI_*;!Mew2!5gdyKL3?jNHZh34fIx=Q zCq=h~$*JvG9+=)-uiN?8c{jd2K$ErX&Kbf2ykQXp-rOqN4a%L3G&)M4b|6xt5G1ta zrPTvE%^w<&*!i!@p_-?_2Og63j-rsm-}vW!<#2*)^#ZKp$v3WCf7kJ@)kCn5gBeRy zT9fkC7?hUdDOUcaz>0KYVLHep814U9yJRCk)mHSmxvyjwoQ;f;^by4z zbaE5}pHRaYS;5#B&Ig{?k@qETrA87H6q&6DAYa28xKJ1t7={@~UgDAbEg+p<#;7%; zTU%&}Y3|u0!0jhG_dP~6qQp~ce6wPziZdMB||5ZNxKaD`J+BlS2 zPIdp{N@>>9dyD>W>p`Qe`^4ju{gO>FPDw%CEIsnzk6U~V2@U-e5{3=T>rxUl%mQ;7076L0G2P4N}c~i?+6m98p#DHDgbK75Y+`@Ld?sr5#7-0^qh*t|p$*2}% z2k*ZYeit%m5*3AC?aEnsY}MV@4Z+51;YqE@Gt{iW{`7z>PbE>F-MfbWo)*_pu`16Vu&xHOJG)A%$|ZHVtK$Q#3O z`@zOUKEuV|=l5>9W!BZQN^C_w8i(_OJb=CdAjEbWLDr_Ph+3A;%!hY2pZUtj)~GFH zd8CBN#+Z7*p&+p^iua_2G2XR2Ts$qe(p}%!9LsLeq3tBiJdr`~ycUUE^5Qd#RBmn| z;mgyc;nR6k#KI~I4Wjj{6Qm7V%y$8Twv)~-C+E19K(YUb-wdvPqvzAeEV%biTJ_-; zf&qcvBiR$pbR7x~zZskrHTBw!BlJi{eslslTI?lj#PI@y~<-pk5I{PzX($Po-MjzU}QLZ^L{^Yu5 zXvL@9tnv1)&e7auxjNRwVK91YF?r#^+$9g-YahVJb7tkm?1idQqp?3%D zBc?H4>E$_MisH?$^7#*Kk)}|)>EkqaB>Z~}g48wssEk&Wc7%l6!Uw>tFZcCNI?FJ` zMH)1@p{4P;wUJ0|ZyVfarY6+^s&sQW_1RV;bj0^DRRu@cmDxsLXE}F-Y?{0=;iSgu z?OYXc!{o>6_CSSPDluaNQwwuL0Bbw*GME8Nh2?vBy?%#k2PzUrk@lV|7Q<2$p(uf;_GCpA@i z5+!4Z27BeS=DZ7kzYM{_72<*odl2Rtw(69c&=20En#-bMcPgLGu3kL^FqM=NW?;3K zms!hJPG?1c=e~X(f-SQNZ!hHAF+@Wv$15POfyeC&a4bZQV`Mw(zBkOgzTdqbdCXCX zf3{RiPS01}DVfA~?q2mSXQq@-#C7gMggl)^6!0C5ZQ(`uFH>>$pYFD% z_KtQ!*EM^UZSyiVCOSRqM*w@L>HqT<2PQ^{mV!RjBQl9!u53?38Hb)|Io=Bt<7(%N z{&N2}#d5#K0#&W&q={>;*H)U$xhqq?w&cd+(=H8X<3DWJS)9StOElAPurP`S#dyXl zO^7_(@aBEI1p(Ak4*EW_WBJrGb*9R=h3)!SM#}bMpo*rJj=rHB$g}7%BR(4qBBY{w zr^Ai>`-EDGE|j+}P*AOfP|)ZpNOoh}v!4Rfmhv|0=z=r@o+)~JF)yve?*`lrg4?sW zOLJW_#2LA(5uJO*vnV#WAU{6B{JeF(tEOt-x-~R39OBW2dNKpz<3Vh6qsf2x>x5~7 zRBqC(eD8QAoTY$N8dF)e#h4^m_#qyghWPU~=l-)Ap(AqhOjjhmEw?U8lTSbQ`db2j zB}Y30hgxqp|1t$Z4<@58Xoz_8IMBWP!&uQ5V9~6HcLahjm>llP&VzakP2Aj!g+56F zATT`t0vPN??!cC&KX+&cvyqcwf9!UE1Yw-{Gj zQ3Qo1*>duVF`7ikQygr1nKouR>N~T5<~g)Mq$E&fFrQ*4E==d6<&BG?sH{{wW<0py z5s%5bdK+W;cf`Ku1oEF#GdQ_slKc0t>A*L_@KqVVoypWbw8Y$k=BTSv_Hr3%%v%Wi zKkv>BE?3S(?RR!k-;7#OLaIneXxA4CMy7C`!35P`a2n>wuv)p2GyxJ|CW#cTygm50 z?g76~nB_~eYo$cbR(`NRtZxvH`~xJBCoe{IMw%%@tgIcQ>aBEj&AP!)E)_#?P4wrQ zKApMk=bahMkmI@s$5jRI12i`tw&NiA?O9RiZOiox9um`LNq;+4F#6F z+wHsz;A5jVt4CjA$18R`r%!yIaj@sz4hjI(88uR#k5j+^4uW0;4x`{*?sS+wk%0nI zYJPr#nU~CTY{HZG1PdJiifQSfRxlaMXzTKd1Ph??A;=2w)tp`T^P~E=g;*>2j_J3p z*t88l-LiPQ>J4HdD zHn%L_dVd6YiPOGpZ5%Rf>GCi~Ng>>eVsKh)x$>wZfBxcdye;K8``x;hkFJEgGVd8_@ZQ(BT05$d*4Ae@ER{JaA^XQx~c3CYrWc z9Gm6#v9n(Ep>JKmoi&21{|NSk?PpO@?3v$Xar`QGJ%7IijtBgnBrR}~5%}lV2^>1P zM*yCD2(E(vN%~()4A7=$S1b2@YUp-zWH_pC|6^+m%p$>jm-C?gqhh8nAZ$ALHU1HH2Z<;` z^J}hEhI?w@9KWB0p4)Mo@l1~Szfa@OHqbGX&9Ay{-MOY>Yu6 zT2Wy0N@Y;qS}gR_ev`{-2z+vlaAu~jpG_quTYg0A&?v-ZN9!)^`lQa%}~3l#RsN!R^gR zSEkHB?IQ|Zze$idEh_$Q9E59mh2IK)T|y&dHf{SS@s1R7jae&*tMqQ^b3%!&)cY^w zBV9>-@6klP78uli56BK5z!A`dyhVd>f1=~}YKPsyhk zz+H^7Gq_<7-h?mkxOF#>qSh#39JU%<07sv4vs<8uq1QMZ#BQ@w@>$Q6i{PtM+{aC6 zW!GN+M+?9jGCT&+Q)q$4z^WBiU%auUsW5M-{BYDna6tmw-#s;`H?qM8&-jfW93EeJ z9VzwrTYKOM4K+%9snKR$P$b|M74KepP260_Y1uw+xA)HoVjl&2cm34TC)l3T6vSo84&yP+}bMMPcQIem!N0 zYc8i)xyfY1&M&{1{9Bh&25n>4;`Q*#AA~=5&O1#+)(Ekp{DREHHt&&w8&-C@L1f-;VHq@=V^7B z_;3yyvx%4@O@WaJq5@vmE7Z6ZRx2~uK>!4SA;SmWB_b5-mUZ)>^WajzA?3Q)*YQPP z6@K*mOl4^4YZejcm@qv*7mHRe4j&$LP(xcmBTD-GG!%V`Fbsuf z9*DMWcYy7G!?jy6%m}VQZ8Di;Z`sYVe!r243Dg6vTY)O@9(E1sJ;cPsF$E zDn~D-8pojUhY?3{Gs#i`h&41Xxu4u)536MCwuJn;X!oUiQjO(GiaDZ^-i? zpRPongqdt!z+L)-10P8l%Y-2jACvND9rE4*>YNbmFTS&VM3d$9m6N?i3`~@pzgS55 zOJzw}Y#Cl?(4^fyzM^y2Xk-75SSkcRj=E+hqxPH^DVZZx_U$M;D~6%r7h$buKkKYG zPewQ!;?15WhcAVT{1mu1R{mYq;R0|Yvk|^cSeVaVT0(c@!^QQLrFX~Y5C$|GZuGxN2jF*(ga(}M#=O=MfQXY;{yZ2e-bca6EU&FNF6qI z*ek-b|GX^QJ~?fU_NvQuUCM`1Vr%04yF z6Rv}p(()Eb(lu~nWJt2{nUt$!Oudyn0#b5zN|5e-BVcFQR;ywSdy zy`69HkA0}bWyGIPm(acbbiy!!gkQ;YOLCt8?EE+!`ZjRyo#loc>$0q7I#VZ(_I^#&TQ5WR(oxyajCVj-r+J+{ z#14IU!*EW#RyfS;8S}tzLfPI?&t5+${Wf5AhGG<#Ck{lXrO&&8nOXO*t$X+1@c9Nc zt0KzIN!N3Xf2XtiC?EU6zdsZ19PRag{{DZcO$gl+I9YbU2uxXg6XrXjt{;W+siOhya)vS&}k4iw%W0HhCVcVt5n8O_zvLV4PKua0>PW z3H8Gv>Z-MCY$vg{@jeL)Yb)#vm?ug8Z(J*hG7~_q4M;@-NR9~EiVjzo_4jD9^4lDaaIkTSq7sz;M?D5xQt8}j5)1mv|2CYl6Ka94I8iQW~KX~LM$^k461|@>gZWUN2)vR zZj6Bj+Fvr`&v&1J9%G~Yryj!qx(6XLMYRF#3i<|T&O8bF#NM(vz_sQ%@I6j$cTH>< z%dT}4mv7&N1WE&jq$xf#Xs336tG{r77%e58yJm7&k*-V=-B@VS%k!3FWx=d;A$F5x zrzt5QvH#QUZl+~+q`;!^N<6}r%JyfK&)o>AGj?`~N8=NiDqYFd<^HjPcZ+lLcpMNx z_QFbo1|5CV54m=mqbKH&rBzN!i;3`R8u)LE7dy zES{i7#w89iUEDP?N^=CQ5i*o&!Dh&K+Cftt0)$sviC5I~`!i=_Te9Yi%CzZeRV;tW zm<87FSm4IRV&xNvLU@giYTQSzv39SI_Cb3zb>~{yy8%z9!mOn8P~0As+dUa|Uju+W zsTd0cRnR)S5s|&bbd@hSI9lT0P@41A4IVJaPeKL9V>f&@Hb1>MJbNqyjbmN&-@!*k zCK@Y+T4`ro%SQrC{I=NSY}?v@M1hIQdf|ZjZh;chPnvgnki!%L4q|h=Za+zlxdt%L zr`stXki^5o-BO9^YE|{nPfrQT^Z=~_`Tg2LHjl2sPW50QL+}7i-p4WKL->WCM77hQ z3m{%O2~fGsuL=@W`sZ>uDmh=>ViUfE7;Z6&vr`^i9M?v(7tTgAnhdR#yMn%PoMvXk zc%pQX3QpErCg-9GFozkW^bjrhbNkHvDDKVJ;iZx(BxnjB*!@!$auyvOckH}60AmkwV;V^$4y4bE?xp$(T-;lcwN!a--|2Sj0``QNtiDd|VtpUTkOM&or4S*feX8~(%91!y+?L@l_p475H3l^+ za3C9#NXC_pIuHRDlX9ZSwj_m#({+Vf!HZ9@R-Vz~#-87PgsW_4G6$qv5F8USDw(3= zG{C_QCzj(l ztTw@}lOYFfG~UHRtCpR;_N!m6`@}eg86&GFfjt%3{S5t81O-q(TWhD~`!f@Jw9x&o z{3NSOf5aduKM7LsJ(+!8zX3{K*94-4l?#)KU!1@zZ2~9v-d`v0i>OXeJ8iG z)EgUJRmDvJ^s8OLWVqBC8Q%=(xd))zV$^VW<2>!pwma#Ft0OLey!Vf0Ro|)ei||kK z8p_6~R~3m-jGnU~@*!+2E%d23pvN(6b?0@CCZacA<@a5OJ?OW`fncDD%mwsG4(OPC zwlEF}**|9^2GZ@0J1q%_b8x+>nDH6u^!5{hx>j|T9?rSnTfa*L_kcs zsHI2Vv%Ko*QppK?UfJ+2<#N){ zoOqsvJ|91gFpV@%g_T7_SRE~5j!Dx+c9|xk`S!?BVgz*ntvA5xLegsRVkTin!@Z^~ zq4qp}=EEXQ!*zW|`kxWsLbqc`Hpm(5)Hua)IYm2T!6cKGkhgvoHsy}`_N-E4bR#mW zC~NAV`j#49xH1MGK;7!t$lo@sH%gDJ2juHhv100JivK+@CP}V^mjezjJ?)$YL_#pH z%1lPylD&x^MlmO(1?~(Y)%{9wyc=X^0ntO-D_fBS!ZNUcwmSi%uUxSfzUF*kR-};; z#p8-`#m2~XGTrv#l7@yVS6_;0xWs&$cFdACzYqEMF(6FaPLGp&DhuXmXcbIH1!EcdjW7vsHdTN4m2Qn(hlp^;S-#SH2DOqtctHJX0nyiYuQ#-vkHDEahe*N%KI_uy4@KcweL>Z{4Q*| z(rw!&aqTCZaZE0&Dsz_L#_RiUAg^{0))-6TVC>5qUq_^RTxWXH%Xl>CJNLsbdLE*) zkv#+WgoXAGM}<$kQD&h;=M!nT2L@6*)j{?<|g42Y4pVq z$F$Y7iCR`k9plIHHmAeJbQ6icBX+^Q8GvlmCrh^HPhwDr_1T-0JDNUze!K7-=PRO7 zWD;SE$V|dp29!XC0uHq<#fB*Dd*BUSkdXP8Pv z55MTI3>!TWJx($PPkrd}h=*zo*|q^GioJ=Bgigo2c}KR51t>(yjfy|Iom}rk{XF+* zafiliiVAws%^F{2ZTv?Im_Mt8y~z#}`W?fupRek{r^#c4itNj5J^m9x?zyp8G^`B; zZ_0~pMcN9(9)w$!xf3^BpVQ^6HzTKw`mhaVr_aT!%b~q}<@`iZ}%Tj7e^}vdT*saDniB0{ZhWv^WTNcziP9` z2yO&?obEl}Af@&_7=aos?pm!tZ4qwe=5)${O@_f3$E(&iC#IJgS_`5ID}7pJE-L-= zhbDUtRuj15l$4Mp8J+90MMZLuS66&3{It!uOBJXV`_}Fhy-r@=e{c8lR7;Ais#@Qo z7X!Q4bm<+$dc;R=U^UU)2nefbQzU1W{J7ZhvxY|4)JhWgN2Q_#ERMDuWm}TvZ69f5 z&8dJl4L2b1dbE?iOBZaf(NXo*ln?6JWDI?dcqC|P;FB!m#Y1nMifRC5Den~Ehy#*}djtl58?j!wD8jIK;*YD1qP zUzzsZcYjH08W|f29H;{sSr*dpy{4hLJmO&#C-U*>in%@@HlOHCM$N}QZm6uNEGuJk zy{dnSp(yO#!9<^Ao~iuGFo0u!Ap4GdF3Vd1X{J8X<79IwIX_i6)>zLHS8ZPYZ%GK3 z(DLeRp=iWm+hQp4k&{T-%#Ri5N9=S4IQp67Im39h>6?lzQ;<}C6}^8H!fyhx7TGbN zkK<@8oB>U@o;bwmYL!o3iN#KAUu<7FI=gAfyG;}4Iznq)A|H&7^}|*&Y7(<{dzPJc zIG$S5smN1`yHpSVhbEm`dVf*jBnmYvmXQ(zxCH;`j0dg*P^5l5ASH`Li~Dt5m;AnY zAn<3wpWH*C#^kPv``0Ekesv~%{sRx*$HfJn3$UrMwF76^2Y_yC_>e?)k?Ce9l;Ii;5N5Q(VL}#y(n4Ohh040OyIlEWhukLEWl1;y@%sxL`6od;n9YxH82$)ZXR3$Qskqr6jQ8~ z!!P#p2;Vhm@p^V<&0~(Bu);XE`}nkPj+664)8(^ebLh0>nC^!!sO~&=fBp+~-uhz^ z2x3*a94qi9uJ->rPURP7f|m<(2n0MR1ztf1(I<=q zbeVI{@YgUGtEU6hb)zrzI=f=eC!U(5)f8uyXMdLq^e`P%7(u}bV6(aY>RCy&-0;4p z$;3b}B0kt3KkzXe3#*#T<774&`HVl*I8HZKRmkoQ;v%v>zn{P*CEPdRIEihD5R8g! z&GxdMs3iDj`ue4I#qj7N@f9aEcSG88tb>+UUTfPhs^zqpu-|oANoK#VVH(t=MBtpi)w`x~a(_Ad6&yf!OatNnN<4ygQ1A*UvtKduCo<1DaDpys$(coCOXg(4(TRhczi{8>L z_E{A{FYOMp2D^bWyOUFC36>@-s1Xr5w!d&liMabnN57E?Zxk; zI1tENx2zYUy^DI0GZ?uQVC_CdjBpD2IYjzp(Ty}Lc*qyR&P^5k{rF>#*O%5ll7$9` zq|4R~$~E;|5)QJWi}zrNr{NdUkfr{i+06Q+D1RZF76|2LMp}N8>N<}U09M4meLrYr zK;Mt-NLMQ(d=q5tQ9mv>3NDSg=puvO)sn}?VhKOEzB`beH|%67QbNz0H5K-ZcSKpr z)IGO3(=uP%dam#*c->yo@dXdZm9W}|D`#XF zPxW&ITXc?D!)H`RD+y1yvUkBTwnOK=AmO!3g0Rg|ell_6T1hA)(RH{pA}t{rYW!zd zq2$z@Tdp|Bzt#(A;zzJ3c4lj<3WFT=${KEa1_qeLyCXlIk>Rl!^+I68`p*5Xb2{Ww zxC5EXA_mB(o6~B3BoaM$bHYAz$W9?gWqUzYR+tCwsOPs#%W>=GI|F{_^2tQ0OK#hh zl7w%8j-rlhZFPCjM|6?Szc$-P(K>!d9}Y{ap5U)ZFsB77sW&h&F=q9U@|$UF3}rl> zF<<{uZa3Evi*_?PJJtY;!asHEs6#HRx0J@~t>dXjaE!j$6k5ZLj=`6sQsVx}2ZaIY zgtWo&KfJi9Y-w*)N=pyPWM!C<6RP5z7s;{F^eSX|GrR_>HZ^YhzI4kq!~{6t74fv8 z)=X>7w*q6!WFhi0K3L?ZqmhxsKM#K&tIOE$PAmLh#JzP?)c@Z0YaxOHKS^l?krEK; zR#LhKkQV9gE)nSxVL+Mz28KbpTSdAXhLmRLZg@WE-sj%;eb#!`dDdC$ocW8Tb zpla}yWz1aKDvoQ5U*6RdSZ5I}cjAJ|NN`v>E|Dq^D>&yVt4-j9@})LD4C*P>I0INE zQ13h2I~J9_BnbPJ;!!q!REcZ>HBrH40anW0sE}Zumt1{=qY)wDc-2$}Hs%Alrb!Nzwb!#Mi#2?d3csJUX&hL57wA4{?`Hk_VlTq~Dw&n(ISgjS zV-1O)wjSmawM>fx(4aEsGEn3+ONg9f6cxSPm@LJSSNIVW_(9Q9G{<5!nT1Z+NiZcL zj=<@61pr?03&`hahhfVA9#$M-{OXE@GiWY*m!Z&*)qN{?e!1S1#*DAuW{#l&X)7Jb8$d4x9=B?w222U5k_}H zMTQ}sEdd8D$`!blC4k;U8WeEybgu+VZPZ_H57%N#9LV;zcW}HI0=_;*{op8RZf>q^ zt7RbDOSgu-&k|L)-AbUP#7wfL5KP;GoCnE6Wt!Um$yC3Li-K$i5naL7c!4(yR~wft;8b>QDnFITMVlUz1c(_M)&2w3w3b-l}+MjZO=5Qp@O> zJ>2J0pA!3OYG7foF!dvaTc0&%rrtZvhi4d1qin2Z7b(yDiL&gdMig2#1-pCO@i}14B zO6(Iu+2wHEp&^u8k6 z_t)In!kW-f&4t+nx#t(Hqe>?;!?NYD7f39e<01(K z74wCFuER{L{jN_tm1!ecrEg=STdVfVEWJ6FT)w_>HvRZzu8nqaClF~LB!w4t-YL7; zN^Ds{wKh3#xcmhpnnXB?^XAEt~E*Fr2ouRXy@?$+l47p zByfir6$9ZwNDao>=B5A*JL%kHPW`j3z>jfr-2Fcacz0%N6RICLSFY?7FgPkZWXJlA zMt`w*EED+=w>!bq$k-6Jpj7fNv;bx1i(ZKnoz@N~1PinS%q}vJJ+uAwD=%VC`(Arl zLFSrOc@UYcA0mNc67K(mzb~h8uhpNa+t1?5YZB3qJu{oY){EQOLwVl=Ey{Q+J@JX! zfojZ4<^n7=TX55XTSNhwMC4Q*!XvY0IS*<+oA3@T9W%zKNj>4}hbDJ=JO+eua8(}E znMeNC8TQ9kT?ol8NvZBmi8H=`H0~-o>Hw;bC{rU8*mPnmsA?johTj|sh zaAwhNhB_kTK_+V2ZKak9YWCRo5g*b06^q5*%efwVEmaM!wo^Gy>AD(C>87C23143U|)eiZ&smBVu z&G6^pfhs=+_>~eg615MQ3zZVTl2gw3`ibJ4iuPk;tn)UjXQ|>3E*vOR zhO`XDIQ8`ULi)3V!naFmqn~}S$9f}~{K`yC;wyg_YT**)2N**+Qgn|crnnacGt8E*oOcXy^3Bky}X920F&IP}wCX5$8-6YIV zo-3Wpi@Wr~Yet7yykD8nL9vH(RFbK|AIvTn%IM82)3md;QA z1+E!u<-(Q^JT?7+2sXd0LTGIc$3;p0>8YaD=DH%iik#P__&;<4hBKr!Mw?8)fQ?S? zyIQ78GK)gG3?j-z&fjAP{DjDq$9|8+o3`4RXJR7K<@feiPihd}BUbG0X@k#L%iI`; zW>NI{qU}y8%sFM0^HO@x(&RH3;<5*ZMkdQFmI2HTnJ1qq@8esR8OCzqlq}@1*tf|M zj%IZL?4M+@Mp-cT=67Z&LM3Rh@L&gvyyXlLj;^iD3|4NFdFMq@0-^=ci=}YIuARc%pv64|dByY*8&v zM_Y3|;%Af>hip0QNs%wSjQLEe{pBS67#(?MbQ6jG1kJn5_irCsX5{!n9Q3WhS3tV5 zH7Z4TdenSZWt8gT!2uUU%q=d^raR%6ZgHh8@v@`|=4HayT+5Xu&B|w|_?qbUpNu$IteMmaB2OSv0wbC>0isNgl;lzMi$?b*hs{GF%%A zk0cxKcr-kmzkxI#6IH|IZ^?+M?0>l9^rpM+MgpWqJ^4KiK4*D=6FQ`3Z!dH#m5{aX zWXfbT8%HJN5Ww6)Bxe8Xi|7viS!2*c0QJG@KY3*Ls_V)!Fh=M6`vS%4CS> zk&YIlb`SrNml!r-Dn3sZWnxE>hK9*>$}~G^rQ-7EM*dJo=I%5gFvQ+x1e1ka4bWdPBa z%6xTjw37=4(&LH=&v-c1DIdIjo75avIhK)uaC`la_R?^{6SZjsm293=Ghod2MCzA= zTEm@%8F0O+wV#8*bNY;2=(D^Odb%Vp9ICVK(0iWW^Cu+2)+->|9?s|d8k|N>wjH#> zo=2F-hQzqmOT|tgYrB|VhZWfi2Ag)p)TNMh<;P|?)2z2i5LTJfeXd32Qk!# zb8(_jh$gPU6$3be7(5|thfDl+fz&&0){r}02LC+CFNi2RofeJQlN=TvikxC4! zZ|S$Ys-E2t;8kXD@ewU-{ zP*&|FSKB-bkMj6@CE0X6(vYt{k$ED)g<88@aiwxCf;B4PEXko5mu{N)xfPqLtn(oG zz(n$3z(Th6*_T}wc%oQyYz%jrj6Y-V7pm@)eoS5C!t}x?DXZ|opFZy`P{&0)hpA@ zb1#V+Fz_vBhQr+Tz{(M?LtA^YjzS$=NzSse9be1eiJIFdD5OW0s*g^1F-f5 zGzXKJq2%y{Sf|qdM;j3UYwPZ8V-82H4PD{JZ8;AGx!4}u+jo9fXr*$68XQHU3wZ*Z ztm3Rq47_$0oS6_v0VA!Kx34d>_zz7#B`P=Ul9FyB(|W=9<5~VrKL?Qtyf?FOacLYW z8>yNZii#)-X@nl_OHwQ@(7~li@K?8j^G`m*3#i1xoA7d3-&OC;=Vxl9@`}%Dt_XX( zIM=8OYa1#XrG`#=36D&6juq#?xA0A;Biei$WP2rAb`mpav4s3wewJcVU=_11zk|)e zx>Sp$&_rhtFN#+iM0{M%x?xODh%71P-07ZjvG48w?j-UYz~a$68D~L?_e=XkNW}~) zXCuztQWV&We?Lp>&GXm_)H1tAbxF|=aoQ}~Z_oG#Dm|o~rAKT`gC={K)C1AJh1_0L z=1I{eh*#SqP}(@xrx+fmNX}p7e4Z}`hK~v?R^!9!L9fvqaLAUB_ll&6heC7vDnr60 zqG8DJRgk*1)?|%GCF^}SEr7Ia4N_B19gw^IZe>h#S6+*NiKj089G{~%12s^f>yEp7Of7{vFHvD9S00vdk(>rij2X{n zUw58tVZ|tGAS8txn#xc5Tf^0WEM-PLz6iKmHXaRcK5@>1vjA*34*W*7<_Sd2bKZbk zYu-nc?$u(&UQ`p2=>RInxSXT#kXipA{&l&O5V~EGNKsb|<$D|@Ebt>Ur3mGKfGn*; zAD5@66|Q*h5RR5;(5t276eqwuDq&GkKG9$KufD5mdvulhrd&-q#4;^d3%Gabzuefu zIU8?zHf$wpAl>YFTc~nNSa)=KG*7-&JqVGYu>=hZ_?oAZs%b4N2v$eGut0(F0q%IzZWx-Yx?bD)6KkMC_~W-&N! zStn2lzUyp>ov=)&78}cO+>(elLAGW=rd=e(twX78O)2@so#O%(Wgwt#%3-sl9(SN( z*7r{=^_*i*8n#MWZQgzUL5Ix+HMORQ-JD-wX_YNiKccMsnthmHOfuiu${$q+M;~&w zWZ#v{zH4=Mi;JH{@*-DHW@;(!83f0qgZ2^sf(o^B!dFt#1Vmzll6-2<2X-V!D16-+ zb3Ni|o-PArq+=chjw-b&&#=(p>Qhq?LkZ{SNO5qot1w^=1;!Fm#&syyNhB-xI-2y+ z>Imdk*^@&Bb%<&PQex|e?#cpGCwo@dUEs`O`DzY`3Cwa-h6j%YwbWc-Whf_)h??A$ zZyj6V2(9)ph(_;{6;DcZCVvjFh#cBAmSue_O0U|?_q<;A?wNM51*hk(^r_d^5Bp@F zN_wmlV1q!*B+aB9cRY;}m2q`(dKPUDUiQTU6>`kZL{@Et)^4vxPX%tb8UAS|L1US6 zSLt=d7$2|t##rI(iK-9uQv=M#Lnfu5^IgXlkD#5nYql4CZ%rY3f7KkG{l%hjSIw6cj6aigtj2{Q_nbAG0Ho}6#T;tJQ(AD6q*C6s zrt;F@hw}b`QQ>|rzal?YZvj(1m@)R)Xi)mT0}%Y>V}3m937*{^e<0zjayq^1ZHZ7^ zzYuq2BT;);?vPmi?v|=4Znw3WV&><_hWYhMsLJg_{>Q{P8MbD90TYcE+dSTSON%7D z54=lV;Y;L52~PxeM{a=bdv{t4WK8LJnzv&TY83W9>09h4Czo?>qSW`L?o+8pt!&vM z751UEIkJ*k+#7Kzo)!74Gis;i@P}htA5R~$l;IWaDd&){V-MzOuPv>YE2wGI2Gknv z#T^0!DlGSThc@Gg(b!kv&1u&1*ojgV->on60}Lq!jq*0BJ$wl#=)efB+`~};E=E;` zp>)9%Z{d9o@06Q2^ll&Ql9PBm&)?%cGf1n}u3b$#Ui6vlo-8uNn-JqK=h?h^9ae@A zy)D~aG;dzsD-}m?V8w#@ocQayOvF9rIMP*tgUZ#F=I(LLw_l%!1uN~7{$5BTBybWl z5gu@UBQkz+B_SzG=zs;szeRaJAvkwTS3tT4Dr&FTSs=EjNWscQYOwsi%b4ngprheT zGfP*~=GGZY?dOMY-OcyH_GCkMzKxF(Q-0(r<;X<0Uh~NG@+~L+Jqu7otZ^LvPd1sr zv{2=jxsrwB{U@0oi_1g<53`&pk&c9PfQBk|@FI8?k@53OsHwWSO?>ZN*UkRGIVye* zatGRsfwJpXO&5vR2Z@y`!oz{Zm^j@X?k=r9Rll#+51Bf1zE}V7p`Oo_K;Ah%xj$GG z^_%C-GA(mci_@vV&HCC>ohBtaYaA|#4<0m9PFX6^=k3zV_dTJc6x7hZ1rWQCQL>Yf z8}ckSQ!3!>&Q9ehS8E}Mxev^yw!<&4NI&S=oYDJd(Z#0Wy4e6`K{TRfHd+Ba)CRfli7OhmzKvNE6UQ)=R1~VacPEvg_*@)-;3rx2WKL;)CmiyKomao&3DCn%A zT7yK114Lgt|I}ht$US6EOHE!KtmaaK#GJ=)t5emQ4+2I{aSt|p0K0DG><#q0#j>=%pUnlTl(vZEy?kq@9bfur`l!hNt<@5q|^36#^=ReveX#S;(Hg*$jR0Qw@Nhxcn;A- zrzGemwj8Cm)xKv~hcbD`nC;n1Ei)H2A4-yp!+hY_c9ztmezYEa!mrZiLEw~D@8*So z&(38Ok*UIunBtHh@ghF2FiLDrxPhtmv<2v#%Z?60BZE!%!j43e#Hlgi3NbUjF~U{U zBv(C4>iYs5TY0W#+HpQ5+}mBYlS*JW+7!8yI~n!Wew1o4ljZI&fG7B5Mfc6X&m-n=_YCqMD|gI^9DrJ^Tua~f{acDjEi-<9g> zeu0$8W2)F03R#vX3(AlS&Y|eLf zi%}jX>MNHMK;PxMJ9CNlXOdXD{Oo)-Zlk<^`g!GGF@>y#(zh&jv3*4+miPI|%B{(; z)dQ*MPsp3rCz-7K;Z9}F0pz3Sds9e7CfznAtds|ujTYom?Z1^iXrx*Qy4EP`ycG>I zNyjR(wVA51?&OeSm4!RVxQN;gtxmUXdnuuC#KG34yo?L@O@}!8`Ugi(qM86K=7t#! z`r@TvH6+?jz!psH1fm7#(TSGlN1sxA=7~v7FI|p)VMHr<=8aU8ba}(gnnw4Px?sVL zX#+o-gh4jRC!VFclaYTKc`zXnd<-bwqUD86>mX8$pd62Eium`qfoI7Z>QCRB%Nfz6 z%Fc*CZOzftN;)8)j>sqiQdvnSs#cUEed#KiZs;f+^_%4d!3~mVBJ(54)=H z5-L_dACG<=ip?@^fGRb*r#9*g|c_SSw(}OMOp_$o^TV0^D#|=H~Y8^)R zjR71G5P@~gMO;te9SawODP=!1GJ!9n$yZiZEU~yS$Zp|)6sJqhv0Z@>hfeUlTa>3W zy>@e0MgLm{#|<710HsrrDW4(nP~rv09(ZEhRGP#6Ki*Gxn;N6}IVRV`Bd-RdwdrA} zfLi7BJ9Oe-i!BIv0st8$O%SlDN@b}O3&Z9~z4s#4D)oo5;x$79yuRn{{VIJD`V`~A zcSrYbmsIS^`z(!Q61g64WCBEN-1l&LVhsO!hQBlKiGPn)kNbH;Fn-iw+5KhREaW(k z{~B-uUV3o)TaiO0Mt5hc>skcxa_;^M>c{y=@eT!#16wDdTlQ^1j$$2g0la@Xeg25X z7T%O7m$rJ7U&<0|$TJ8Pc4sH)#brZ^*z`Hnd z2Jo2GdQ~vqg@+%MJ9AcERHW4aP);hpFdY|e&xo?C;lJYZNSX>!ve~heig;BTkI;sb z?K*=4I%9HDVnBPBC9ajssL)9W$6UTk7uUkREyIw2+mNcjvLS9f_j&E%4m&cbuEJ(w zAQ#T!Y?QrtNB5pG6BOv7boFtN zUnc|r!;1F=WS;!dYX8$RnWH8{p^0i>K_bL9{^=iEwUTx1sfU2wBA?>|_TR&>ee0MD zCq0xIU2p>@E-o_r?Q@~3y>PI?1T1w1HXuQ>`2E|>sh2P0E&unzS|Dlzk#0hFo#eu0 z;e<^M)y_u%W@{y+kQ)SAoRx^+PP~txH!9zC$$ezkr$ninKZf`fmSe+N%AQxFL-ylm z$36(+k`3*wIog_Cw@|Fc5(v&9?hx=gs}QKz`Uo#i@bHpl9{kSn!@NC#uzbN}d9Y*K zO-GAeYjbMi2qdP9{mDHBSjWiD8?R`yJ~K09f$?aj21s(LhbFUvEUg;JBx_CG`Fk^gh3 z2^8IbrGm3`;HvFoFuzCT*|C}L$F_E{#vvLA-%ax%~LQ$x;W&S zg4^f0S*y%kx~xOaUKXImj|@{9IvR3&2u_@0 zXDdlcP10(Wkl3Fj)p9?)hwlEW^(Uu$`S*JN?)dsX?uVA3rr!YF{q-v;I1yl#KLEmZ z(RI9!r;l=WR31>3?tv;cC-rYB+d4k12U7w(i@ZYO+_3*_TC$&JX-{arV0*T1k|i}k zOjxzDV$uJAaS0r6%bD_nwvgLE`PH8RRaKXy3i$WWFP(p3VgoYPO|CIy_?V7I{}r|L zAG88st@``=|1gG}6YFI_?DY}(5Pt_#0|ZdnlYV&iiiT*%ZEWKDpY?9>f6MS^{sU=+ z;w9e6mHQ>}M@hT=5~P1q>Rbc29w5E?o)SVA_l~O`g9jWyF3j$@Nf=`Q1jB8A5G-{k zK~(E)A`l)KUH^Hr7=1U@UTen5Juv_(=tp-b`XGd{OKnhmqd$LsZv-xUL5ANp7Qhua z1qCHr!*9Bc?`KhD`~9~2imxmj)j2#oV#>QOBAE;M<0jnZ6r_qT{4qF0NEo(Taz7^F zu4_7Y_qNjA!K>y|BnQ$zd!u{DOv6BXJ4N%AD&75Cqyr(@cO@ASuZ#w zKv?72o;GI)hRFQ_??wri$vhzq&$329Dx1-fv|VG_9aF07@15$WQ;-h2-|Rf=Z;XB2ta8wf=IcY=WPBr$He_J^-?MMYwRKGrT@Bq{f|C1Ms5DP)pACoa#FfL-HNXDNYoGX7$ zj;AYTWF1Bhf9^qgk0{kw%}K$=8|T614-hN=feq3|^yeC{djS&Sfs^9Khr4%K0ByK$ z_J04z>u1R<{2FtI1L#M6v*{R^oLGXaQGd_(PrbwM{{9f~Y1gm+-DQU~otZ@C)hA_! zMSw@jod3{Td=rhR;ooQb4YSW~|96rd?@Le)Ec*8YE?Qrh8Oe&~TX6c<#Bk zOX=)O;Fu}B6|pi_-`$dS$=Jo#V9ytBKISuXlo9}49pWK2FdMne4vf4P&tC1K@>C z6!aWwRviUNuL8UIH^KA+NTQ657g7a04rW+d%^ZZ&c=qOZ02NG{ZeTEot<%Wiz=1J4 zVJF%bgmVc;U3+J3MXY+eSrKOz8a3i@U~nu$#+rfZYO>zjcMz!ys*>|}{S%yKz-hs` zpYOL9A&-;owVf?RPSOz$bi$DvwRT3me8Xk8`F(&nj{X+w>WaDR`V!GY;`#BOgPcNc zU0(N;z{n)-@JllzEwO(+j5Psn=0huJSV0fOaUl6T4iWd>e4yHN0)%@?|HAK}olX|~ z>QPhSlF02Eo)BQae({tH=6QuXr20goFAro4j{>vtLn{1~xa8HTAJ)KZ12D-~=ZpHd zK^!|%57#9)!IBYgdo3HnWUF603bZx=^5+8M?3qhjcB^z1@m|^8`4A?otJQlo!@1 zN*3~fUKXS_Qj(;|!GVZ0c`l@_wiuA|tVYYrfmP6Y3iz3UULWOh__oBMCtX=cfx4lq zM_fw7vSnh1kOYeTiEL1q0t9jh=9jWlIVQl!0sE`4jHpALBLe({5iO zYznGRw+cbAYIwE+GI`mutBPVHWHV^zR)>LqR4+nat?)WfgEu#X6q*e%0PQY5S?Qo91TT(v${Kz!%%R zhg+{9G^!~{8k;ikl48}s_3EO{yfk4DjRWi`5VBU_O4Qo|Y)B`u@`T^^i+Khxswdn` z(cXv%@#pmpmvKN259bEBt35Xz8S8(wMy5fa^oddqe%wb`RpAm^N07H!4e~@0+q@tF zP3~loYUZlq-F&aWIP*&+6U)Q?yoyNm=2XzQ>?fvaw+Z5S%4652%lHo+38iq`T7g>_ zfWFmHJz5&?aRyhNTD*kYB>kMM)^C97RBeUcQ7#c)R^!@=QqXXT`3vF>JBJ5)ii zPx#s!_!NgF`Fk)#<(x`OGurxOOn*|JW?jsSR^E8fB$i?B;sGfeGei2#N8X)CP7ht2EYn?}k2n8SyVNSh5nD zt9&5x+!JTrXnE|LS`u+M6LGPFy=#>VW31kckL}a?#6)r^VSI5upN$@_tiqd|RKO0E z3zttgzck}seV5t^(pbR#%EfMZRiJWnP=#SV*!Q#C#hwGCS{k4j0iUc_|1u&(F8z2Z z#@1A+7myAHErG^?t9uV{WPv#F=c2=S?Wey7R1g!?3yMk%gjY$Gr}+s!YnLbbJ~qn7 z8)wyg7&iGystT{C(i)EpJ!I539LLHmTxH(3q(=*_Cx2tudgJ!lfo66tadE*LSPWZm2i9V#7Oz;Lqn41%d)t=S+lq18# zr6-E|*1P00g`njDaLDVtSqZ8QFg@hc+Bl!z{^feXFgv^BUWO}6@-0btrcrywWjvw# zYTRiBQ180-GT`^PxB~0OlhmP%jqevL7m-pmcXg}0&rm`DdpdRI3hsQMAW%pW7y(O^ zf(8XGhi7o|c!ep1d8#R{J}Hm&SGi}c2aJE-jP1$mI8#9B)r4NB6aSb@sn0W>0&$&( zo3l$R@AL9ANvZI?FI3(Rw?+ywgLtCSBYJ!eWSP1Ct_p}@>37#kSbn(syC)wZpXU;l z@bWmbFsFZ_Yd@K5#uh5#f#_K4Kuwnb!~|UBWGl{4*;W6lg6YqfD*1xGbSP}}FV5`- z0_*=B&P@oMNPl1dyXx}qXZ#_>$%C83{{_)v{L>wgK>s#6FK34y-r#%%tbhOU`TzPj zf(npY{=TjgJ^uCKtIVJe|C(#vAp1Z5RsQ2!f9T*8+C2!&+Usf_V(BF$rZRulVEJ88 z!2T@B{m59(@ZHcywz~d;0$Ob|*^UJnjKMxIZ4D%56UmHqCrxZKY2XFHOCRfK?xx23 zMe9jg{QV2r9)K|3UL!m8 z3!^bbc62(n%k6K61X|3%>ZFNw=9q9c7qYU_$HDP2@#sMoUU_AkTcYHI(}192u%WtK z{CUK^u#kJ6O6H${TbB~#FM|Pu`3(l*lhgQW4k=&dPF_{vN4i=n6>Gh;ToJQF12!v3 z^?;OO^b%x)G)M=h2|o?@@l>(|0_EV^w6ev~dKtKi*!L||-V{JnuzA=@Sg72^vDjMU zdhg|nZjV~^%oxh)dy}VEz&9OGc!|`hYX{}{WoZyxn8?OptqnbHQeDlXuJNqu1 zyz2#OK&GJ}c<@gHEqeq2lQyx@vz=K9{W%-u@xj&Ex_=j5N@-mA02^0RIp{|bB)8fL(8n(8+arGBQ{FidSn7rb`IF6bp_ocn0|v& z*Oz+@GrP`XYiW@JkYK}zs6Xj7#wQ$BRbNhQMV@;$U0RZeJ?nDI+)|oJ@uec;FkZ<| z-v*Qem-Wqj)AYSG42m*5IZzeLMlCt@Tum0|feIo;&@JTB?6WK8k)Mwc81KoMg1|Qt z-zpWzvrCr^DHsnePWZm0!XrB%H#_ihIw%)8yA-nY>|~F*dls?g3XtWg`K@O7E-S8$ zth``+>TIP|9<#v#gl`xp&NVllg7jHL`d9U+OQ61x>w3UATU5dYg5YIoK=K9&1GA6d zq8v-O*i6u2sY6lLxuR=xG_-&L+_JG<6SrM5QtN({hf#t_fQ$eP#5 zRL@?Zzx5;qV3h%5`RZ-GfBbW1%2e;beSCZw23RIJKF21Sxo>IW&TALPQf3+cbYbYhPRm}LzGL&ZLfWi|e6>K+sJTH_yHL4S0J2=8>L|KUjMigr0PwrEtLm!6+b_|m$^B&Nnhi^uX+(D&l4_(0~QJ# zDkZrn>4S6c2}MZq9wq@Xs7EPp!5%Yn#Pe&F+yCCF(!V@@4HPTmi{6*y;J(4h&2esY zdNjj!UhddiQMY@S-npJWSv~O@gM9dx|Je1)+z5{*40Voy}_b#{CZb(K?gz&=+X5EKCj< zOu!f!#1`wT=yZ%ClFdL~wyYrF?K_FrU4yI*tt@7Nm8kuLYz{643S=K9yxEI$aZwnF z<)uJ52bxS*cy-nE4dFjOu{$s=RaZ*bry5E)t>fB@01#Up0D(zZ ze>3w$H=Yf(4epkK4dbN9H;#MuZKX?}rE9U!XpLbwcJe6$151(?^8uWIo2c6L(Y4(8T;( zDjrdKZTwyiN1X3oKNji2iVu~VZ0QJs%Lexqe z{SI-Gdst*%l(_mq?G4Xd$>@vLo0(-b;+`_z&m=;PP$a8(}&t!8%59hAm03U7MlI$_%YA!InpLbHA| zUi(Ct4PfkX>mRMTTT1}RfJy-5}XRMYZT z-MuU?Ukqg8n(~|hfN;&Bwd>}Xnun}}_?nl9p!!pMfW0Xp2+(PiDg@l}{anqr2}oim z)$(+peFOX^7Ya*(&egqE)+?_}2#uqKc~TOzx1#M{?L+BeT<5l|5^_I-A^THZ>PFv@6Qw}!du{~6Gt z@j&hBCYPAeJ*c6Jn=ZncKbua}r0iVe|Fj*|CHwO?GnW(J+;cc@7-Mj3{8NU+gQevF zp@LryZc+SI58`_nm@DcL5Q)VX%8jy*PUahOa~8b3tIY*c_l$hd<`S2>5(~B}7sNWH zE;^+>=Lj5p+`TVbCj2J5|G2Wn1Kz*kOdN5%^Xj5%Zf~xbA22RzmM=0RZ!Rqpn!rV@ z+;>1oG=%cPYTVQ5R0zmqES9%GX69N&fe6cV+sGb~0|o{SWW2$frEaFkrppmV_#sYK z?fp`~0Y#s5iVWD~m|0-sZSmzj=>yr2Qd4hWtiZguxI~ymXNo*idbBV#?cF`l?VN_C z??2;PWvi!fb7EaWR+a%OJn4zZV2x47m03^H_B<`)d@+)<4))*@Zldyj9{9+NQp!Xv z5c=2QqPqR$AF~(E*JU9($kyj@GxRz9~k~@%?a*3=Gn-2*vEbOt(!Z zC&>@BWpIRj3RWLOjnHiLr%1(O8xKn}9RP|4?2ggGr^|^E%-F)IdFe45sx&EJ4|SyG zQUncN8oXQ+OfH0V`3+|(2uPT8e1H8G+*#B*p85t1Zm?H5s;;(;SO5$TN>8P&zK^$O zi!)-Dtb)`hZgtWYh_%jxw3DdYu_3&Y&t;RKXE9<_zF$mI=O=XbEO_!mI%D_=e zk*Q5UCW=doOJ}HzDnnf!RV;mVT_$d2cG~D{ETu5s3-JQGY3~QxNXc1q#{AQrD$y1f zUPUd0oCtF-mih|6ogB*kAf;O32wE&)oS02fu)Qdfx9Gd45w!s#+$d4r9LvW!=1imvrnY?yN5p>QsBVooz#2ZO()_+Pl7klzTs+d%2FiMvmsM8k@w6GHk`d z3voGc0=WA8f04%C&76XDw4XBC!<8~EhVYmylErrE~e?q$7OwqR+x zyNc9(yw*=+geZjO{T5UB@_FfMUvmtPRxDcvaBnU?26_OnHBH!+GwR=U1<-o4v>b2$ zrM}`Io6?c z|CWvieR78l&^CD_ut?HKKvr`Z@&wL0&39tm$ zn@i~G@Y;8e5Bv1*j!U+jw%%qf>ZP$Zu}+OkZgwF+_FmO4wvjMT=kRY7*Dnu#;b0_4 z5cK4%2Zu|)W^*1G60S;D-<9v>lm&bY3H9#kiol;&N#M5}ZO(jL`J$#ytEZ!v(WoQI z9MJdet*3N$jKb~;dF#SOqc!wyv1kj}S5r_$$wt4<<7NSM1;cHX__q#TWCvMM;ljL3 zpTcW|k^_X<5+??nsiAS9hg-aSplSwyNtn*Np^4j43Kai1)5p2r1cg5kBW!OiWde?i zN-;Icxy9DYHZ{vuQ6FII&2MzDuNQ4l=Wd0b#Y`%OmQ zN7j$z_qzg*ve%SSO9}C-2krP3Oj%}P_%MB^7P-_D!O`BZiJ7ii{iw=AuaI!9?EoIs zu)Wc|2`VGQqdKKEY;b6PFTUGo85Y=f1-~)&=z%!N%adeXOy@Z+;B`m=q*}jgeKrd&L3ZD8FqyUvzK> zT?KTY!5TTyP_epVvt~v|XrUBvwI9uF97Q(t0+}Z$H@tV=t2Fsyc~82saH`gU^=my} zaFVHGA%KNl@d7Fe*{w_cARjl&?_Sx$K@;cH zD#gC?mGgfR-|l#F{c6Xq;08sA5y1 zO|5Mc5-w+if{!%Y7ejq3m9ibfb9q!kzBMHM$O`{~2&^achAuYyL`}YFbz5S;d$$@&F4_6#`-FxlstJ&wuA-ZGY7|9@uX~+vQEgdbM zB|3AOBuzDOvj-Q$-d=!%H9Fgw6*2F^ffIpTF~Zqb|FhGGzyqsqUfK#y6!(pNw3@(g@Ql zrVZd|4Vxww#WIb_r>l&JbMIk$9_bewPCYb!(*b02Z z8xeQFFYF=y!|z3Nw6wtuJwu3u6w7r|?hQS@|I>lr^;dz{e;eR|&FoN;|7&spKT#|0 zwXJO=WrvBVrh(9;M#kAQun>l4N?V#)+iGs~0S@!+f^XEECBR~PSJGo5@`4j=;>If@ zSu14Ky{q>2(T%vQzLs&+6EUsx3Kw<{4o;T$(TWWz1^^0uI68#ibMk(`FOPguFe%S; ztll?B|MC(&vj-@j$G@gJPkx7*-)}tLxzIHoJumUz0Xp=r9(}e|Y}TI5jn(?{1{z<8 z>-W0Yv?I?E(=_h^$9FI-%q3Y1zS;EKuHkHB9#G>bMGW2Gn*BLlvA!c4wteFNo&`Wp zlQbV`XyFK_9nDjx9r$Ky%P;QDfKh{d9`cD&^9;y+gAAI1t(@k zpf3%yZTe!L1un{dv|$Ujv|Set4rASIpD-D_WS!CP9$yqsK@zSOx0*-U0#uGb#>gs^ z*!sQ6n`lgyBM@Z-9CRX=CZ~%WJV9fJ>b*aPCfhRQ!*Xq(1CRGq@lJY;2wcRNjt1@K z+7*vZjV0)(j?gscde%(^jZXBwCQf!PL(}D{rp@m^UDPVRjoy9hda){Vx5f) z{cHnk36MPnmb?w#C@x#`BQTd4cp7lhto+-avc^3{gbK(@faK)%hYz=BhmWnsYgIyq z`hLCAP)zDvv^ry%ZCQK)2&{kzEw%jle{uJgL2-3WxF{qq5JG_94oPr=1$P1j_rcxW zVbH-7AQ0T$-F0va!5xBIaCg@^o4nt5t4`IuRj2CQQ+4a^;up+p_RQ+Fy8G#;pQbeI z2b>F1*q+ekHXy8V^t(&zL;S?pE;$}hRL$UV1-O3H#iA>XIG6j??ItXZ>1}9JB^C+} zK+9aRI-pbBBST6bC9%nJ3sm1Df@SmvMq6EX=criuuXQEBvL&20N3%e!R=J{NcCy}% z*NPXVc%&+fWe2F42L41T&Mu(HZ3YyKRD_DNm1NI=5r2TfHQ~040#}--8MR*h!Es@8 zm2#fiXk_tspQkfBpoqOE&<6V%8u4&QTtc!X8RTQMeEm(D@wTQYe#=}42hhnujcb2fp!Lk&WRx5 z`wk`XOlHI3t8OeLuL~e!cfPFid04NRTCvT~wbtGXqRhpAVX7a|M8A8y+a80tGtH*;Y-=}6!1Q@v zH6VAZJ#*1$(m!0RZ*RoGegbCw0d7FWwrKfgdA35;^Y-2sV`)yRL7UOlr4GH#BcY5# zK6O)EMLT&fh=~JwyeEl)c$xa}L{khmdIhrtMj$FXnBW1rDPg9~dnxVa8y~mr7_>Ql z;EqG=&59{}*e>to&FIavj@721H9-aPgU>Q;voUL-fXcX<*JHvSYEaJ6sQYgnRgkH* zsRW6#e17QHyL<2{{-2pNe@vHuiodIBzE!cJeQVIXE90gsX8`g{1~fK-{wF|Z_x}FZ zs1J$u6F?M7!sGDnu`kX6t$JSXR@m^?c>rXV%XcUrm5T44+8ptmwHCB2U$Ft&u(Lwg z6|+3-IcR$^DLM)cfJW^go=qlNazPWzXl#%;ueYGOwz8&!@m-&-4r;`!u%cSkSS^$M zZ37>W|>i>)itk&r38^9ALZ@bM{qMDS(e$IOohw*Rs^EfIRvTZRi30p1bdJ zwjr7{*%RYaj@ORd&detOfQ!A&U8i8fZt??Y@xQ`}M|d`!ino9ZR|^FB0-eLosXX90 zV6viRAi%ZWj?l}|Cg&D-1Q;uOpMcX&IUr{q+gYjn6u=9sSwe`~YVq9mb|ZE^UT_gsQj(w^DiW417yvXwindpMMpbk^@_VJB z3#2sI&T;U->sG-QE0($4{}=-F9A~oP^GT2JB$mV`TK}v<(RaTU&>y{Eu0MRzMQ{eC zge2>B7H^s}WYn)8Rf{o+lJFBX@$t6sd{}Je^sKJ0$c`2OGS*f%_-O75INf6l##Vs5 zI*spbAt{^fd?gBXMNLA70>3K26ha!O_0Z9=$sYk`Zsv`Cr<(ve!ntAPUh|K2F7i{S zS`EBn;uOrI&By>vBO&fPV+JzNE1OtJ6a|pkXQS-&+QoTaic$mGK3Oy5<`LQG;a8{w zW?wT&HLl;@x;C!_=Y&hjc5I1?jWwsd?* zMI7L!KLRv=~n86D~P7zAj;?%^d|e+li|KA%nX#}?qp zka4E)U+oq+uc|s?e?uh0%f^ zLBK4HJ&Q7H2AXyW*@4oAMJXEd28Ua@zRT|+{D5S!iFs)~P&bSd(>-5`m#h&#Npf3ZQCq8&@mFIQuB5ysvrSbM$urw+96-z>m?vAi^%uvZOdbQnBP=0s4Og%8a&Qd z6bJ4ua9t=AG7n5SK)>NCcCz_X(^_)9+)Ur!il$nlndhHZoMY)lx9TUSH1Z zYDtm3@r&uRtsvgIBmcLKckSv?-?}&Y#;m|D=B(`W zd`7SBa(@(8*BJ>yH8Cfm8brX2giTNYIqt)-!UxJ=3R2M|w$Q%Ts!4Cg5III4$ zTlL^Nyc^f{WNXsFWV@g^))FcnM?&&q;WS8rWk)T9^6>6LVJkJ(%5LRzRU&JzG%aFp zzLRk0-)@fvx3_=b8on34!cM?fal0YD|Ab=oa2d%6W1uhFmGes&UR{!9}oA!>b& z+oP)MtP{m@e#cu5PVK@wA@jTl_u+e*e@g33!_Ci(;IH5PT!=r4CSGlPxfmXQbhj5} zN=s74Z(2ji{xPem)UT>l9+=IOaw-Sb=CYY{o^lXfb&T3rbp4MLex8%y=0+rl74C%b^7z{kQrp zbp?l@YI$vbm_Y?ehDtS>$!i7~4W%Wdr(!U@RY&<&yEbq+jYIpQ+HmQG%c>V|xFYbX z+|a`?eAsdDG3ae>b}plj5Y@ts&pB#|j;q7uUQoHl1Khoms`hz>VEgSxh3?(0i2S^n z_f1CHy$fl<4kE)tN&BPk8sTd}f{owrsA!q<@b;-+<^8W+Tv_ybN5fst-Gt6T$)2|Q4gzg>gqruQFFBgnIAZ$0)FT3!FXy0ck_&je?P)Y(mW+oyqqV&vza{E}b}jyb z1RXbjd2y`(3sq>?U6RaJdbu|Q3D@eKDcFqh*}XO>KSR_XJl6HdXoHl|AKQ70LVu6X z%bxnLJl$A8MDAjOM!mKR>Z?#0bv*}o`Zj&^o(?+2kKLZW_M#%LKc!Jm>(vZdd<8a6 zkPDu`We*e0hq0yc>!*FaMf>fZrs8~b-IddQpe}m`rDn5SIywxhXtF?M&<1Be-I>v`O(3$<9WIYX=vKM+3&QT3+tU4P?2a|RrJkx`#%(Ez|rY3Up8T| z1GkAbAx+mA>Y((yrIJ_+*wXpM=aoNKuI=+a-pWx`iuS8<1uL%i<0+$d_gC_EKJF>b z+Ec8(g96_B(k=ofZAubrbJS1gVRm+2o0Eb{Xt3?Zh$5DZDpV4W%VBb+?~fa^=NHE> zIUgz}8EH&&iB-9W-_%_aoc^x#e?g|U)DW2Fk|G%1<=#N*uWRP^5M_3JKh99^Z6z%u zOtG2b#W!Q2sH)7*SLk7Oy#hO#ZP)eKThcmi)}+AvC*Yr2c3055;Ht~|Y`0%duY??-8(PIRwDqlyW^;-t5B8 zD6fK~-OS0oW?m1wHna0(rf@|uRCL-jp4^7LqXS;=O1H`L#i`A~4lm{YxEUdsNhM8l@{53+%V922x* zqmWHnbRRF>vv=|Z=VG11<{g4y%em_t?R=V+v*T+rp9?=hZZwoNk-}P^$)yysmdgaW z^NRNKftPyeJG%#Frs+EkCms5*XjYXWaOT_5OIO>)({XPXJ~TLA4bk#Q4saYmeq=>% zDuf$)$GPG(MV0~iMpqT^L8vqPU?STR5omjQoE8GvHk?cKAUSZQ?zdH~c5%8kc`K`c zGPtP&lA>;2c(31HpULT1x)`cKn6m$NHL(8kf*6jqFJS=<)OrnTy_r?2c+9Ra>$ohV zv`=zBoI}rEC!e;~9J)!q_XbNldEFn$qc?jiJLZQJU#`XEBqbG8L7m;~J=QQ@`?!0! ztOb9aY0=14f-QIY?P|K&*vJj1`&pL4)f z{^!aFf&xifT7Pv`SgFnoy zlD_oH6`ag^%?IDI?xAdpjalydXIG^+@9W}c#;FbR7vl2(!OdMRRl*^eMfSn@>EUA@ z4UE`~c{>(|DW0b<^&Gpc)S|RLu6lFZy&qb%1-PYdZ(io5;JP;HZ2BCP{y87k4&QWL zIkQZO@X7(bW9FSOxz?Mp0&nd5C&^pRhYkukY6Qz6`~2NyFjrpI=i_tAK} zub)?;A@$i!c7OPj;*TBp)$A)$tni(4@9Fmmo_3))-~4kWL|eTTYZj*q#G`%QHOqw! zH6|PRP*8t&exkjzS%%xnZsf-;=OBc=7-7$%U zT(yY>MD?daWyVuGBzwtr*g<@z!g8slL8NT+nC{K}g?;YA<}Kf3eYvGfn2G~;{AhTf zk276rJgvlGJ47i)*pg3$;N&<0>yRk-?tEog%_X1bPYpSStF?Iu>SQv5jBLq4+ESJ2 zV4uMj6{@ZFZ(7VmA5W*tnB)BA+I(kS&31L;?C$h?u5t4<#mB4hiOe3fBCncqZrpb> zu#IU#_)!@%zfo3RlgvoFyOFv}2Lr-DBW`u#>O+O!=(eR&fr>c1iG(25Wjz_!B&mfst=MaDa($PKjDQ|`QJ z`G^OUxm&y>82HqQ!Bf%U$NU=hm(^Dd%+7|nO|?R&1KY^uz57?{i|H5rSuvubR#9WQ z(`N!a_$pJS_7FL}+l-%wLFCZ#omn5MZ-X^0C&8DscaoQ|JIPZoAG(|C(Gc%5Fk?50 zb_KxM%NtJVNJDeueh-Mt@`cJS_CX*Sh*L8`Zv0Dpsc* z>yxSp{Q)+g##OU=wWr&%iy0qX2@6tQr=Kq_d~TN;$KXhG`bT}DGpEjbN8Fp*xAM@( zzKr^w4C_=4ZePsX)vpoy6qJm7QWIPxv(R&V^k;1Px$Cw&X@it=214q3Q45g|YHMc- z9OpV1$NJY`Ic2HV>lQWK15w-x2} zk_zCYyM8*$8_Ib6NKGpxD@sz}H7rZSrGWh~+`H|3^<#RZ-utePvshjYf$!>=n2wO& z5rTt&Q3&U=65lh^_Wiz}wehh_*k!QvQ2YY~F@VW7LQn%^!^O(weDXfQ^!jmYbEv%~ z#_=!&x=e_Tz0ZYz=u;%zV})M-!(mC1DHb)k_iWoxBM*#8{u|EJjS~2)OOuQ4_PSlJ;9W)P zw^zf}ivlx4t|>+xU2`ywDo^7gGLFjgd0~$(Bv@fn&{PDv81Hf-d85Iq0!`4_`3#eZqA>tKlqJoOkQCqc zPjX`~YH(HzlH&dYm|CLE-!$*(&c#wE<)R6vEMi6PE`kiVBFTyYs;I*_C0Bo`t|fmU zK!8h{8zWu1{`EI>AePWiv$ud5UZo2}liMUJw#jy9E@{gYSH7zh6MTPLbt0-UB6?SB z%B}K6sWZPwgfN%+8=|?9@b3(=s_CkXBDCD(^V$Z3)+kq4#t-QJXXKf|c9BMT5G}W`7i~ z0uh>aFV{JGtFeO6aJ5QKi`W)sclqMsDR)Qh@{{NnM+78~GiiRR`d&K@ejBJ?dTH2$ zvb|T@D;msH`by%v!gk)9SWcR|IN^|2o{lsVZR$z|wblKjlc!CjKNey}Wa7no7iueG zpmXf+p0>rOYt}vF<|xsz1NJWXnsT{`15w==`VIs&UEXK@@fdCx7MbDaAzVMQA0}(U zmXAj$OE!{ST{~FLw)B~g@=^jPF$^6@{~*bCdQ7OFJn+LmCSgD>wu+ftO)Y&DilP*e zc20#AG+JY=IYEn?9G-ySnqYvI1XvPqJBFe&65em|!^_ zo(wLd3EbtDIvioeoJK3DDfH;@UHoV9=*l*3?z^m3z-VH*-jYJByd| zLU8@oO(&vzQqt`4CcZcpe`*%_{vOhAEfG)^eiP{p9A|oqI^2brEp;FBTgFE(Q>(EC z&VvOt32Wb#wC8C>V^lmW_%MN^>|0G2x3cz0Nz@2{RZJ1Y2Hh@S)>RyR&v9Ezp#Dk1 zdAXHPMTF-(79f7T1Qo%s)=NRIB13~90uCf(@Zlj~$SU5M@6rBKH*|TKWF7z2Ie3b; zwfT)5Q2Ap9vu+SV5K0cc*X^O zL?gTXUDWz!@bKTAWqZBhGnp8SuZprfOCT>e=mdGXE+1%yF#~JE!>x&VQN|EvvlKny z5nyCIaGC6o5>yTWTf2NhtiLs~q3T*4k|xUJJyMQqUq8c^y?;=rc>E<^=DUTY`7(|5W^V&IuCVkBK7u zF&y7%tgirO;&QMs3xQ%;xHUyh+9y@ucTc+x-Xap=f>k&NYwsNBVCWerx^XMybvPx{ zBm0{1ymHprR-YHgKkDk}A7YT>CVSf(p^AbGyJ{Jh4C&m@-1Ais_+LB~<`W>2CyWyL z^aWy>2uVBLfAfrKmywS5@T>6WS2n)zTL_>R zKCoBMOiY)DP80C#K-x-(a6nyCgY$M;3q$HZe*KJRtZGI68ndGyYf};`RfA2_FHK<2 z6Zy$8bXqgYEKMR5)E!WqrW*WuN|{|t`q*g_$^Y?kfA~Nh6{sO7} zM=)af+%E_I0y(QVPCE0rDTJk7DKXS9YruiHm9@anvV3aKZ!Z^%uw2tv)zGtIPU!re z-vhDYVo1ZXA=>am2KC>d1N+P~dl?3W+1l3u^} z@nK5Zb0pBx^9`~q#&|9Bx@b2T7OGe0-9*RyLH)k@ez34SQOZ#M$@M{v;$cP00)0uL z+1tCme~4R=w2<`#4F^fDG4uTNUb^U_VcqRUWM)REzIqDWhVNd?astGa?RC7S2gB(! z=phkf59idP-Yk>h>jpTo-nP5~Ej7G%T59Z1o1K`&tz-(Xt(iDi72d7GmK1StvU3vA zrk2Hn%x7_LRfa>pc6Xxds$CD=_q*CzdTc<8KL_aA@n4-r{uc}Q(|YFKvcTr)La~O# zIn6kDs8s9@Y|`7Fz^w_y08Z|!RlmZF6&-F)o6ItC;kvuUampPVq}|Do5djC0Ah4cd zUn}q=XPYR;#+Xn20~3fEg5T@jWngN8Z2b@^~iW;<|(ujpmH~kRFkH_Zz2znKKDcL?|d=vJ1+{3BGHlq6yFotZ-GvKs4?_fuD4F1$N zda_n9U7y;(TOh{;#!=i@leY_R%GIeLNZySNvc2we>$Q2pRzU)l0~yWbo!qv8-pU-7 zQ&%yxBpwVZ+*CICED}_zN84cc<0^>^$K3%cK7{00Hk#ta$KqOy15!1F}@l6uJp7X)J+I z#~GyfYXVQ@Uk!rLN(g+V53B5yK~afbjYTD*NnSH$mOx5NjF?X^k(IME;pLOQZ=#kk z*af&Edee~--ZcU^-ybsn6D9(uE#(b*bQ0tzA<8$zA8fhs3qeG9sYHdFd^A7XvJIZK z{%$)Yy$@Tjm)^kq8fiBmM_k=%^4u$-&moM51LrGkA;IvVuXk}>Ua{@OP{zMDE*^0wge*48;-@xSEv)5<-nDyheHuer6kOhPQ z1R}r<6aAhU9sgecNAZpSgV4$U4{q(N(P_@{FU~J}VvhjF`ZfVR5#a)nAtI>cnH8l^ zIA(;y|Ev|m`XFaV4rY*1U$dq_Y_cbYV)PW zMTwh#O3%VI?cv{nhf_CDevv3jlRjRtr@9-sx%TCFv3|N3o2ICHdkFT!%~m9MTXKt{5Y7bnru{SWdV3bQ0ikW=}%;SMAs@{6|Cqlh?%uc8vQ?O;0JY0S~~w-LAPOJD6?tIxOsF4&WASR&r3FJ zIq|RHOo0v&?UBbJ7Usc{QKc+TWKtI^^N)((}Je{NRz9 z-AgB+)&U1M#Qe&>qx2mHoeUN0-(x{ZEJ6ho1;~&5Ya@VOOl2a*pTBQIyio7nHlP=T zOLTbq$5+E|6o>F%!5DoWz*sXP07R8}{oUE?nimN_)SufaI%-!P6vE+r36S(;p6>u$ z|BE>4pFnL!jaCN-YeQq8BKJ5yF*~<7)@IlHDGt>2?~OW!zQQ5-*7%ER07WGY_R_n( znw(|pD$)~TCMx{9$a-7bwSF*|9SnJE(2j!0^eQSye$B6HP+A8EW0%A-?Z9Z zvEPo%cyb+WBk3K&{ow`3B{dqJPYiRGKaDz(W$>u-^x(em$KEg3jE}}3BgU0bj2^jK zo)njkAfqESipwiOvAx^c5qhLFkUzlz`pSW5_ z5?{kWrX9bq6Ok?Hx1OtetnAd!l=vblxrFbf(smxR(3K;Syf<%7?kD8E+bCJ2fviK) zddbd^uG*g(^YcHS1pB|+Gcak&U*tV98-D0IBlI?K%A<94z20?hTf53#(pX0Qc24tZ zCUAcG0YO7JsTMz7872)qeQJ>er&EBoyNy#~8p1%L71KW;eN zYUZ?QGmw=N(p1y3^H~{#LDrgsi$2vJ1zN=uq4vyv>kIO6kMQx${ymMi6>ewOx_!@y zc7s$ppUo=J*mF2a@_TOmM$m?5wlq#k(3Gkc@upTGi%#2+) zyJ|OrhZna3!4uar)>`9IW}0q4IHw ze`*tT$j!yazvgbis0@M}ie14;yd|R&un`yJxuM}hzI)uI*`qOcuzY^&a zsi$E6=Z|mn^N9@X>!oL$C$rw{9sLKl(DBcb#$XA%Yc75{tz@3vptQCt=w(T{c7w5O zXRn=RbJLqE^mf=C+I{pR|5w}kj?J*z^0ia9zb6eGTqu%`G8`k#$6}2J7P|uz+_C{d zNb$sE!Qk}JO)L7adsd5(gf!HOSR5FSUbEwFtQ zWXt8ev52F_P?yLc|9FLSr<|vJi_mA=cx{=yqA+R5lC&P3ZQHOe6)f{1Ml#i<%5&)f z=<_b++y7iJWrDhs@z+bib^KwkvX8piu`+bld{kIDDO+g@p(3=JHBVBRMR<)3pQ$r4T5zx-Z%@E$Z4bT=2ZcaY0jyqjg$ZCB3LMJH` zEH^4iC#ZG5O2iu!Sh|Y*bs0b5t)x&GG`~DL+p=}}a}*uShR082$OV1+ zPn4TL`wy2sRH3BquVu?1DU-l=y!rP3Mg{MG;{l()1K|3NngX&B(!rvi$(LXM`z-Y7QgE^Y%vt#y~N0Tq{#{kL;%8$XK$!K z9?~*)@^0pq8ZFI4Uj|<2b+Gc{^2G3vJ}Ntdc6o%TbJ45c3QN{(!=<3U8K)+*tt#GR z?gTGonMA1~0%ClZdkcl{u!$)ro$c$(H*R;1`@08BJc}arphtt0Ldt?^ZwpBsnsDRMH z2=haTTx`ub(tXg+5B~Tk^i+)gU7I5(aJ|4WdrIp`%E`bx?jbu;Df~2J-(+_1@56yS zw7pbn3gCKAGD8OV4!}n(q2*WUBT&-h>3u$q!5K^Ec{GxBgyV#Z_c6SMktZEHH?Q=N z?PY|&fOq)Omo6^I^pwzw5_c<4=T!(A`&Sj;rmL?Pynt+m6`PK6GM1?RZ$b7$8kLKGu|`iw}-;q}ud z-g{zTq%|pC0yYCCigH(S@fo6K_wFpYkua8$;lqm!!n*SMl6HWeL{3f1OyLU}VFVli zpO3~-`e^t+fj7;JNs*XF3lg&l8N}ceYUO%&fPvHY^(p(IO+HpG{<(p@edf`b7WS%OexU|KXM^EJC01(+V0QZ6Hl7ajUOKy`eK^Go-oUt1@8N<4NNeSJbmLRpgZj9B*^VF4wi>5fyk zIT|<9Ge;(WfA~;RyU|t%V#TR4K8OvH5NE)`x?sSzn!-&XE|CvFFxg;orN>prP}JEOX4V7H4~p*p3(mcN^l2()O?s zscZL#IrU?Oj!=Jomst%bAIr^Hx>EUE-?~#;I6uS3D8q2!_wCI&6}5$$B~y?lN`9R~ zIoHVbRV9{*ni%8P!E$EiR(rYp6GN%~Y&>{kUlq$EL-N)DhSc5}Vs9Psxxwi6^bgr1 zreQ{jxPe~)$b*>P{^je0Q}iY@tey?595>ax)qa1BD-bd9*~GMozGxAosyyr+)Sw$5 z+Z8*C@S{3=y=w{D$BZ9(6%(zbpMQ*dUr~!!Pa6>&(KjG%GI~7A>3=N^qGa{Tno?mO z|MrFI=$M2@Iw5I%V;7st8~NaIt&mgiU2I~*FA2egyjg|Gd3_XhUW^|Iw#S_SkEI-G zlXf_E^@3!LY{!fv#hePE7w4(k{fCqJ5(8&Bcgr^RBfCSZD?a+7Zq-FSxt&m;Po{9r zbQAyEc%MjrT%+TowU|w@9EZi6lv-ys2444@1F$G3O?j2)p?`rl3?#o@m|9e1zH>}s zYzkLj&@s6JE)e{9kvH(vczPi#oM8KuO@B9kuuo7}21G(*t-Rqy#OY)^!aDUP+z^KG zYfmj{HG2uTC5#I%Ee%b1ykIZ*y9EOnBA1rBt)A6ly8;|s0wusZY1zap%oP9jwOQ_) z*gvC58A1pQbk4?`1#}OaqP>Hc9$r$WKOZ)ot`515hNtOqe<)DoGQ;zK@7tJ2b+@2R zI>n*947PAk9--w?6q7H}aHln_ij1#ikgqd)Zz9UB?5JOw7klBi+`0DC@iphhMuB3H zZ+eoy|0C_Rf~NN5@}iI^)4Vc78qcWA46VR|4*lZt4Tv_1^edXDyD&S?TM@;$rhy(M zap_zZpD_O)Jl(T-rj0V1r*# zqvIlf`x!@sJE9d0v4#<}%C+l@dOLa$+ZZc9B@TnR0AFDyuj)2W6@Y$*XR7FYQS~VL z-oQ_JJ}XGVj%CIA(AEB}RASmEF9O?W0AP z$k&DGa@pOg_(o2S;{%>|++L-*B{>m$qO9kj9ooed?K3d@gk*%|cRr`m(DdWUYAh67 zv*V|W%E?_S#VP~#%`mg@xLjk3jgi3}b6(>WmN@vr2g&<7fwUlm!Z^YK^(*p$spWKd z`MDjp17&3inXs&%DVlj%6T(l~);zjBT@1UQa>Q1ITv!^7kAN|857u12WiVQ~&sk{T zFQg|=yHLjV*!dS??p88$?I3OzmpQbQWDj++Qn>IjvL{Y+1%-Je(MRoz*YnmB{D`t zPsU*{=cV|!rR`|dj^-7XP7y9Hf3-vNGEI0<_!iwU*KjV5iGZ0Q>XMXv&Q_i?6O z-zRTu0oBzyo0~t)3*g%tRsa$ddOp29-*=c9gPg#y-JE;5$svf3y_1NulZP#fS2z1q zUF+i-HJIZVax)zZ-hWFW_;~s9!p=+f9PqcQpCea{B773O4|n&RtUIeto2G!+DhMeS z95{uR%7_9*bOFm>I;*Yk%fe-{Yt-kMXamORwIbepZY? z*(Ez>!UkeIWPqpUHfYSEC>cnaQs|jIxmU<0!J4!F(`taI&@wz5PPsgyti?yFa^-_&qf~sH%)h!jwmiBlU*Adt#DL z%RD!EBTI-9=gkgsx>Ny=76WInWN5aOBAo$9F$T*0TTq5ltT$GHAaO6CFg%Uaw{U)Y zOf8_+!6PzzZ?WMQjZ0ExUnF#kv0j>oWCq`TVq(^SMT>^uVr*q$NxoOOoen9^Q8390 z*u=QS@Tx^@=}-bp(l5b9Txue>V-vq6<-Gvuq4!U07{r91@tEV_%?a+}EZb>~w`4g$??ckJc;`KK{!tVKZ{Jcw z>gzY~2{zr3=DMlAm`^o@MDs`qQu-dX?aVS?k<%GN=Y+r2>g``WZVn|T6VB6|?}i+j zA4c6vmJ!K^;*%oVS}!@F5O*4R-n)|4tcP~E-y>9l!8YRqS! zVoGtf&s&FV*wP00HZ^(#rJa$y246>YSt5&zMgN?-qL?F%Jdl#w67d)I zhZj%Z!bc$cQ2LxPILhe9%d2}RsQBq@a2x%A$KlY1=*5e&98F#4bsXh%pS^mf)|+eB z^4XSH!w;bhnrX45u(Oqw$89V-h0lEKAN@?*ZhrHQK5ojs-r&Dl5*$Yt<-}j8$CYh= z7;4Trqkivri*v4b+Y71n^ppzi=2Ip52C%FFw{$lu2-{v#gO0l5ug8FdA&XDT>69g} z@sHhnULO#{O1VZ{AE~n7-rBT4v!k9yKvWITBCx2#sDai(Qd>HF$R7nRyG50rM@s~_ z2Kp=nB;WeN;%Ncdh$Uq+>8Tn%QoE-K?cQ$V*94Q}+rx-qVmYm)qVgNczFEjo>ba`n zeESNA_3Ho@lcg^fAW}S;-|GS0OFWGH5dCVmaiuME?}6Fqf&v?p@be(AwUi(oB^7Jj zNzECE_KUE*;zew~z}rb9S5Q-(AL3NUx!WR?%4+xLVKg4vib#5;C<$b!+nQzW9yYn$ zsExKRoHHKYD(hjJAEuD?JuQbAgoN10G}^$DG;F;EnRj#2`Ka=ZvDuIjXKF{{9)hG3 zWa9+EC1#(hSBx?OdLop$3eME^uHn+mJ*IO9*gPx?6qMb-5-TqeE*&G5=_T10&=N|L%$iesxDc+G;HPKx-r@EL`!zlwB!L=Z zUq^;sQf3}mIRK6%y+PK=Mn%cRdvCxQg~nJ+TdhC3+vbX>Af zhD@rUnlNp)S-|ldI#%JVBFmGO?!6;+g`PNTrAH$+IWfCDXM3pZy!BtaYG456J5N4fRYN^c=uI2-2^T-Q;t#6>6Dp=~7r$ohtwNbLIy-15+In zqw#)6I^m7s(YMlHjPj$3=*!5OZRi*jwC1o0F|aX6l0Q)=S%wzLrSHW|I$?Hw@CSZ& z#>b4MLl-F1pj*k*2QR0;aZUYhv}JwIoqYNtXjR5=J@=%KyGk7!mjFBFtxy1gM}sTz zFNe??eR0v#m(B7M(ODRs7dxY?_E*PzVso?eiv$ED!tmsD=NY^zyB3lKWnmD^f}e*| ziAs@-*D(sOX`OC7kD3?;lY;jxkB3uZWTvv7{HB+;E|{iDq;o%nge$7L#e|W%H!Sj- z#CET#z|JiW^5wRpUgMNc-7_{{FdE=m8F(KII?lVd_gcuLJYt9H=p0kfvUAWf3zt-AbM^czzy9-0;cXV6`m~0J{i9zia%yP~vgMYv{sODXRl7pHvFvv0+p^=D zo4fq!j&|8n3m6u@PBkeJJkRtwYjQ`&jwVUFSU}HQt)wpGT=x8;={&$GCJ8`gu-->~ z2XDX3x7_4fZ9#|CtOqu8EZujd(7M>43}OX{i}Pp|#gb#7{^+L1L~bF2IT;po><`AV zMkk)n+=}888c98`YTFwCU!{`In;3gZwve7G8i6f02yo<#82H2aCb$I*6l62C-}4LV z71m5W?9_QAo0?60C0R&ZL7qY;0#D1)SR)j{Zqp{Ps23*vD0$l*_P^%C0tDW9Ke1fC zS@irb79e2vyH#FA@(JFtxG=ZC#Y4uf*e2|I6$eH=2fN*I&OlQojTJ2RQ+%pIx=d_= z4akH`ucIbN?m%{bmms;T(cbq%5Z|fydaVYXk$GKH{+$b5fugFC09X0WEpEwSJQAm~_UF!;c}VA+`5Mu?G2l4uDV$Vm7Y%|e%CX>!=; z!eqSP%bV+jNe#+i%{LeY4jN|=ruMgeo>I@}r zyH2#+{`E^bO>juvWz-ihnaS%ooT>7<0|K=&^sqqL=XfUE>?&g#5TqS{kpN%_xPnSk>nQ=C`4WA^0kt*`(;l2XHaa?Uw(=GUUr zX2aprwjTKa2A#F0ASM^xD(WTerR8R9Z!Jt=!^+%eHy+{%Iru6XF(W-QWHL$h_GDL5 z0@CI?KK~m7he#~NkQW)E398`y{zZ76DQGn`g?ch>6o{>oqpx&ojN ztB7kj7wu?;qzo`7Q32hKXvx`}hq8xD!T`nIcmSikS*N0^x74z~43yPV{Y&Mh=c$po z0{a+mV)Q4L*QEuNa~%D(R&-Ml5KMlD0m|ZW=jOzPlJQK=yE)PyyUaj(WZg6u*7UlI7r+YbVnzL3n{U&%V@Mt0#XQ{;^(-US}2jHP@I* zL2e==!hDpPO@Nz@f-SO|pZ#N1y_xUf6jxl1R-4Nc7R=+f!$?y}!XW@{tP|fkeO}PB zCK~-fPJLT`tUbyhR7h8*RSR@LU5e-Y0?yt}84V>bEn{nZgnJ4Who|g=su+*!Yg>I0 zhJp8S-SZ~$qcZUYO3Xbg7sxiLa;lo~&g&P$Zxc3DtbTps@_v~rzkTDA1qa6{t!IZ9 zSM-aPcxF?k)Qh~MTS-+pO(#+eN1IQeqTTgmsH$4At6(9OS0yPu4VwTnU7!_xyn@QaOH_+Uyt5(W;4rv%h0vm86->Qxs22NuIuij`{|u1Xdo`*W~B{ zpn;TJ#Gsxz!-A4SZML!T@5gW`DbEKwjj&b<75uG{LG@OL@#of{;TYN;F1}5t)Bfrq z?tUPyB_RbVe&V9z@Rv0fmDK6XmZ|9%-rOjME>{h%+Hx){OiE2zfj?|O2d1Dsas>%` zp$@nQgJVUbj1qYT_H;R*&aW=H0)i5+Xj zOFC?1V=J^Sw)!C*;#iZ|Tv7$i{$wZA6HhdwUZB_EIi*&{DUKRD6H;;_l8ChU(bSj^*k=$PBssE=Bu0Acx`%Q!p9&)4$4HW6aZ4r% zE$Na8_vi7CXU`3e@p>2SwDV~B92v2*USVy>@m_G!@zZOgU6)l(V_*#rI6B@TBPE?^K>abc9 z5C`Tp+ste5e!sxI^mRE0%VEpSLeu3#+yiaAkSo%CbwT(vY17DzUd_WsmLXu{`_p_n zRe5H`G&_xsUBV%8v3P1)A~7R+M$^EOBxiK+qG@(}v_~ zqJHSXc4&Dbe|Bvj-FFUqW@YZU(VDE|YjJsJ-pns>-rNrE+I5CUT$dC~6An(&o?LKx z2?O?Htz9vxmcahcKlv%cSi9(~$&W;tJHPs7fEhH?`5qNVQgCo9-9VWw>Br$(UHj); zqx=xiXsHqwL1Lk*yjIP*h0tiHhI^5ox1)Wi$~l zvo<8A_8iDgRWmN*C|1Zn?kLsy%Ty+TiS=BN@iRU@Uo!j+yp*?}m`N(m04<2E4=##H z>SLXgKXvP0WG-c~BWdIAS!q7J#4h1vc z*#D2h&N42FH+=UfC9UMrib!`Yu#^&tbR!+oxpb$bgmi;+g9}J^m&l5AcX#(0@b^FG zyg8pUZ#QOVcIJ8R=eobwHMN+!ouqpmcdMr12q4JNkVXQ5a4%CM7D**B(A$ z`@WcmEzBqMTwrd;Q->po38i#09*E7dO-jr|=uv-y@io8eg3K#gfLSM1nefq!l2IsFj}C)<#;_I!VF4 zgudRByM<((1E3O%n0a-HKdCVKzQr{bA94Sz0wHrX!89U~#l&0-yvzN!Cx~w57QB=)9kw4?9p|Ko{og~-(ZdYl88x4!X_=(Zd-@UM;m`# zJ;pf;Z!!>-!AO8C>KTcAdq+i3Q{%wN8S-DhQeaVyNOr&OVP^;k8Jy(hAwTUbMf7jM zI`JMdgQbJxeolW2%`D_c!y=&S0ug-ZY~&XL)*4O*hE|N6G67p7J^i&>+u|vSgagZV z77QfB+uGb-%h_#D-f%+Mp)bf-ob!-*rH!TDYvORe9r1cJqa(DgOAEBJORUEpkKFmS zLSiUZp!tk$9N1HEa>;qm`lWOKz&kh;3;4H4psg;7oOo2(qPcc`2j43yOY`$8LX7)A zN2k`A`L=n{WY;wmm#;Vw7+TrFqVJmQwnG7Z%zy4%a@-I1>laS1F%o{m%}#-ao$E0t zK*dZNpnZMDlQM|)vlKvS(w$}jnNn7)C*b%(z@1N6fP+^MBANGX!y&LbPj)J8B(#bs zO5J5?coJwwWq#1(0 z@-G)mh;mSnET%R@!E9*M#}!BUXV&M%%n)RNbuqYzxe7Al#n%Gvl_C;0TI zFwu!J6W8~~K4C?E$8ewMJ-zw!46?LDl5MEj*MO{7f@!z!&(i1xJb0KPQ4zr~2||wg zDKm_oAwpFor0WsFkD)~kkZYjGp&J&#$T6V}eX|50coCFLxKdy6Lk?)HVsY?IdF@Lq z?}wI^-E@CgVn+_>r=))Qf=WK?oJ_@(t!To7ihS){b53zr^v&y6znsd&z}JWb%1QT+ zcawkfHQEMLvEfPl&42qle2Vecy^MKoV4wZfe-`0qUajMM@~nXMPtk>AK4XK*OZ-?*|Ixn zN=)$t`rFw#u)%Q_4Z<1*k8I{QvWO88fpCd7PKM?`EhIl9wiX-suL=(4$2mW|LM!SP zR#VR;QysHB|N1{#fKpOreTfi<)6;#5KW13maWcv}R#tmtJEWn(=@af>fx4o~Tw7d{ z+{%~Xcv`bQ%dn$cJ-vTWStvgw^KG1L@$qrOv8$HvH@PPyX+y*FV26$3cjKzmT0U3ln=_KSyQ6TCkjG6ts@Ko1U*yJANEMIrl^XD9(t(v3una8< z6qV+NM`q=&b9w#5sL;PYv(spLaGcShv zL`~>N{+e4ENsV-&l- zgFK?AXjzwGh;(Xt+6vKky%Yve_;QP)8cn6~0DzO+suYhZ35e6+RoD4J032!9p3lF@C;!>&PWriUY^k!g1hxI)A3T{0!5Ch!Do zXk@x{^Zf^Pop43PBY3t}e0| zWp4nZW8$Erc|`>gKHX^M3@fE;SYGy*#fXHnw8BQ7B!FdhbA~FV8<$m#%sj1(luX6s z#T-n#Q&%do%=2H6(G9ar2zwma9_nRq@Cym#zl=-5zfSnl)uEn&&un{h+S@$hDVUwb zYyk5i9vS|=)w&n+#5Z&}cp)tHGj>p=_d0tIGEkkz{4x0W)w~|!M!!>W)gLg(mGqHi zk~JjN&!H}3Wv1{WzpYS4gZ01>`iOA;R+Fv8!F3Sn(*J?kky!@|8pcV=K^edkE>4fkI}`kUWyKma4M)KCjub%*aq_ zg3;rZX{zPEzIj(F(IfpuA{V-I^!*^gOnDjSelvJr5nwLEC6wHy&XbmnWPX;uV9(~S z8(x%`&M&Icf4FUFpS<;&vsBIf16&Jr^B<%LVd`|aU;kD&)6SJyb6g^8ZKSJ zWZ1R%?p<5oxCltuu}!{hPa-fbQ0d+3QIbig=<8qMqU9Wg1ZW8+nXp%D$O&5E#HF!m1z`;s|2-gJ4B08>o$RWqR4^1q?Gvhv|jb=6m|DE!yLFFrY`bk z69@7`~Y!4nMUqINS@op5Rb)s{~y5%e+Q9lqW{hezlskn>Cg;C zhQk)C4&%GAjj8BpDgYKan9ibyFm&hwm7%Kod5Dh9^N=sGZ2of}YCh`ypiFV$x5ZA7 z>Z5QT*p<=l+k^ovMdgd%^dHn1xzntg!p4E-Wz3(YcO9hx9{s5|;-B#KNSsScZekme zlXiOXW5Z+ZLW_9QG5m*Ks(rW+*nTBnq}&07eD&dPItHSxM(0cU*`<&-cKp^QBp{W2 zOVwkWh_~%R+2l`84Bf4Us;C1znGRM8us#Ax)d81T@vb`WQ2S%7D_Y3QjKir=8yc26 zX6x_T*KixDdhAXvm>YBLy{rXe6%i`uZvD5GG=dF+I24cgO1+Q68M4=E|RJTGO z2o`s#L5R!V5?P&9aCmk1&>G6Ny9hc?Ms_Vq09t{=)HtWSUH4V8dYt0O)J&b_Ze#LM zcTvSvXmq`wc#?5U0Q$7HRnr*@8a`zv?oJUSQIgDBQ3Z+Xb zWV4fz5kcFn-a6y~yYh*~mDYrwo;f>71r=GZsm3lo0il`}=Z%%cO1v$hf0|Z2SU9F< z{q!6=oln)6EBWFEnpL(gt71%)!=ekx$YMb8kK$=>hL3r%keF)%8X;Jxrr(q+ow+0@ z98g4tpK^Fr6qiVn ztzyAGMECIT_~2pVC2x-U86xwRu*$tS>}*Lqrq0+_kumFES|IgGnV!z^S`Ny0EP@4c z;xk@23k$No{CITsT3n_JF^nk8xTAc?W4<%d@)f4$D|_mAcK$41gq|+^-1JYAq>oBP ziAhgYZ%W2ncsO3r5C=j`w6Jgt>jDvlU=OhOL2AXq+NPFtz*i)hHz(fJ9>~XmU#BAh zrW^XP=8GTGb~E?;cLe$D%PIZk>lR)U4)rmw@#(`GI^w=iOwB(`8@W#rghD%Pag_|H zfC_+t^xu#OigbPw0lUth@Cu3T=9rWGginV5n(t?+TL+p{l40?|Iqt`Dg1_luoJn=dv^k* zA0g7`+cu+^PO^F;NGci4<>I1@Zgq{^?61RlhNT|kE&&nX2&@e(w&*VAnycjrsjJ?D z6%zslZWfP#v3#d|-oxo`_V=J+zCBoM_mhB zQGS^$Y2IHF)5?UVj?YQ4CxzWk-2=`xqqWIT4DVH5Fp=zyu`3xty*@Gh_rZ&1v&}36 zZcEUKU0?Ols}{B>DzQ!%8A3YD&^RY$_iKhH`*{ETGK2)*O$=L5Q#gI>{(hFX{n&dp z9mZPz1vcNj>~amnDEN>#z(i+EoiA_u<)MH!7NNxHQD$0?8-;HscsG zi#B*piBVq4hwhfm^ST#iq3t-DL%TZ%UR__K{#`?WvjLV@iu`_cfiHWqbsZfDIO0<9 zy4F3K+`LnjS$xkti^XuA|Bjy3-Rj~9f|q;eC-{3j-J>PxkmOCa!2#3%9B*ZJ6*6y? zvCOQzk%mYF7z3QT`CFZs1VZa`8%MKd8Tyw#9Fbh3X{vV>`kE78iz4VL<+PXXl!KE` z(zB0&LnU3?dXKXfVC;!B!?6AK$9F^rg_q6}wtG`0GAQ#2H@c322?%Mzf6bo4gt$8u z%?jC)Jyjv!f+aE!A}MeHN8=-9#k+3q=@Pi@F(?1NwGaGwgo&y#&unc$-R*$au8R*? zxv4vpuF7JY7|76KYS>@Sv0Ulr`F9!6+mkMUBngroebhP?pXhe39@@4cw60t_?-*>D zaHa7UyoMHg2PfW+ey+f7ELHh;2PP()nYFPiJ|p{c?mc?eSHDp@m@A3~;=$w~D`Qrn zOKblu?;uLIM&e+cU9-RY1Oa5k>((ZJ!!dp-Fl%dj$y4-lxKMhB?8;qSmlyN3NZ7;4 z)C$Z7p}$XL$g{2{S@$d1Lm zw8e{yKxzx)9o#l) z(I*}Ex5gjc1UP54%KI**>|4$^(poMC&XYpEr^N2z8z&DFVLMOhOg&_KvAN6aMTJ^X zwGj)NtgM@kr(b2FuUU+87CJ;wk`gZ3Sj>vZ8LUvoH?kA5-gfnKHyV!9-eGsIu1Brh&qUlDjP$lEe54O|>9z7uBVUPOesD8RUEDVi1X)x#vKR&fA zM~?Dxwgv!~glwP@x;{4{_pU<&hWSW9YY#x*@2}p=!R)PDye*_XkOCM?uYP)a7LX~z z;Z{wKP0}pzO-yAnfYx%Fm38p=BGQ^~M?ZQwK%lt#BiVS3wbyMeWE`jk_}@Ta8!m;@ zNK6_@x2mhkKPBVl^y>-SQ@C-pbq`M^_q2>Q!Om{PvG~G+!f5B( z#v@a~jJW*Jr4f1HSm$E;gXPke<`^KH58y`wh#JL&WBV?$h{^rTX6Q^E@tyCHmCbIJ z-5v9}W#&L2_6WtY%ZfA3UuCZDH)4t`O{eYEnQwC~WUqi`NB<#)@-yU{-ThryPh~?` z8v+8(+(ULC23fhtIJH9j-sO_1<0nB+hwYlO!eUDSXu$;id=AIqt#G}{B5nRG)(KY2 zWqVH;cLb;N9sr+a^;gtuXOQ)$#w@utxz*vyjpx~b9ZgX^9w_5g*LYf z9s(pELcG2Q<8CHf)=1jbLlgV#Qes}fGlg&FZR~1iBIf}NIPag6Sjviov`fd7Ka&ev zvjfZc_3=-(#FKKhdr>12r+E)VJ#)I@9|pJW>-T48Eq6DRFm>)X*bHq<&CuMIL6)%T4Eut6eD|bCWOGNAfobK@AJ`J@7vL@mY=R#$}Q*5h6)m( z>Vt&nx5LQ8V>6Pg-rd@=giQT;!Gps0Cn(59pF=T9H6E`l0tz81lT;d{cU}e`2b1t} z%P#X&%{D8{%4~8yVVOwiQgDqE#;!y_HKwOtIdeO9SmvcEtZ($K9+{e0borqG$Re&I zg0(xLm)0@6$<*VdCVytusL9)f?+!=;WY<_zIv&QgR?G!Q4D9vu_6VT;{@TXfGiGT%-_o@l;fknwqfeG%!z&wx?W%`>eW0Ob=in|?Go@;FznB66X|_e8 zUn>8}-UR3tIYxl)O666LZDHHqN*Tk(DFnt`;)MR=+RlxsP#OmGEeAJ-r3%jJT& zqy|cu%U%{4OTx&!uriSB9Pq9AVt7icOOH)VBB=5B=r<@g{ zCaPZu1M6tQO{G3-I_V@&BTs2ISl5|I*_!GBn$FH@Ppy`3nIr@MC#Noz0Xj-xMoGvh z=H3V|yIiX;uk9@OK8#R(`%GIH-)F;eA6h>rFv}||X;++^nbw4Q`80j{bAz4xvUJ3B zDiEfchc`Ym93K_)SZTImvOSdMVbZ*vyb;ct*L=F<&X5d9F6{t2=vSasxJ~M=u>Lgn zdV32IE(+T%?;LV(0h{za#T6j_?r;Kgg?@SAS*L(om=Z%Tvu?w}ytn6wCC6{wWOpy( z^;d|4#+9CqEIn5lviaFlme)^#MfA>>n$K%}63^$Ylh6L49M=*>dvNo8BXPoOqJtRA#*NVa_PTPfkln zj-{~S*tKuiW0Y%2iOYyjk2z_Lv~dS$Zw<2Jb|(#OIhNIx0$o~M3T>FRZ__1;;a3U4 z(}n~)^goJnrs#Z3$#A$L1j$^$_%*jb}TkXS&+uU^%q(PMJj++4?3ZO^=nV zhNW|A*T@1np~N~-M<>f#V)#+@$T})Z^?lug|I}v_9LK_t9Yo>?UZd;c)hW1$>1P|% zLK405U1v<^owRT5D9DQF6U{-SDKD(%rs9v?h1hnGlLGVkDLvp-KVo9dQIYr!o5bMQFjXb}4)l$F`3}dEze{Zg= zG5Ujs2VQ@8DFxv3GipaY)DqQT$0OvMoT`Z^8TRm&gK20uZw1hmc24F9TcNQ6yG6-}D6V15FXV_RcS!m-iQUf4N z6duN<=5o!#O$IKAK{TBWAIwfl{4KBb0+ekJ?w*rm9|Nl zO!uyKjVH+@DS9&URZ)>A$iL|_j?jVE9SABotms?lGT^;w$q8Tn-31@QJFn$LQ z@7<8+M^Dbv`}D!(yM^EE9B-NA(bmN5n`wGU3L7%kvc7_e14lL8+A}SCJFRyrK|{jb z)Uk}O?XdpnJ+ALqnnS7d)*sKb z>&IS^(X~^UIVyC^6fJIK@3!rimsbVQCu*>|(S?@rcq^PaQ`BYWHD>;VEw43{UmcD3 zmwny6+c_vbw+0HYS@I?c&Hb>*`O9dA)ItQguC?*IOE1$eDT-ro&wL_48q0`OJhY zzIQO6Qe)>FRWl_Hy!eu&{Lzi66v%c_iKpmLdXdWk91?^YC#dbYV^BuxJPm2!(QQfg z)B2ceJYMZ@xFWJQa{`D;yCx-AWbx&i@~T=^HqCFZ+)?*$?_@~Jbo9BB&pe=C4)>nw zq0ZtzLk7g$SerPbQ_F$m?|R<+^fWP>P2)l)2@d^|tKYZgC}*-rRN*Rb3k_zpfsxsu zL^Kt1m|NVz z?c^NIy-8eLLJ%%R)oQ#WO4=RPwD?k|RYh9#iraGIb@D0mTEuvc=eYK+AYe4FnbNGE zbKO+Bip$de8oxfN$yT?vQkyeNAfe#H&*X2&rB1eu%Y-SHuUsYT)v5F_w;y}~@|a}x zpx`IiUpqVoHbO93jzD*R4t`o>l|>yH4gM_%FY>gS#&O=`V3!CoCP{^t@^o7^KPX;A zfZ~-z_MmvVU$0@@KZnU08F&~?R2+yp2whVdD{lDrWw^S8jqSCmT$Bg$bw^|27ugkx}u0 z)#uB4iLhk5Fs32mQRXf~90F%%UQi7dc&6mP^bCZACLncS##tE}tk3JHrk|(){B#E~ zf8y6HZP2~qCD>y31eVBuU%GI_^^=f{0(IGTT)T^Yu+3%uj~}Obq%7x)$Fv^cU5Tf8 zGvZw-02uT9uii{}+u|>sRJF4*P4s_J>A*WGTOGpM*j2;)p=kDO)>Py=I~}f(=|V@f zph0t*uTc-j>SN{?#0Wq=d1l|>>^fxIBx`zFROEB}UBBX+v_Qt({%?OTA4wZyJgQ|% z9m{tAg-q2BI%N8^tFt3V*zeuX$gyZoF&I{{VhIc%K6Ln~P;kPO$k++q&mxi+M zpJPDzRQayR1Jur7)6L42kDFDhtrtI z&LgnBmKo7h?q0h&irt)k+4{vcQQxYi`+GF{Es{rbFyji8 zo$Z19X;qgtj_E4_gB<<)^|vRoTyRl+lC~_+Y$y0oXlO`wMC1|k&~Ei9{+v9fd;xG6 z@ueFgS;X@n5Bmi+A2Ykn|D7O#FoN{|PmKTH@BV*W01wr?x5(KN19pJ&u+m3F XFkdIY*y9X%+^wXztXSDQJ-`12_ZZJD literal 0 HcmV?d00001 diff --git a/mkdocs/docs/assets/images/screenshots/getting-started/upgrade-02-update-available.png b/mkdocs/docs/assets/images/screenshots/getting-started/upgrade-02-update-available.png new file mode 100644 index 0000000000000000000000000000000000000000..251a753c5eb310a403ad4613712560cf4ac08dac GIT binary patch literal 115192 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 z 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

h>_@ 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

mE_;ewi`TBR#l06Kk!A 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 W!d>m?7sk1X}UH5 literal 0 HcmV?d00001 diff --git a/mkdocs/docs/assets/images/screenshots/getting-started/upgrade-04-success-result.png b/mkdocs/docs/assets/images/screenshots/getting-started/upgrade-04-success-result.png new file mode 100644 index 0000000000000000000000000000000000000000..617d0a132ed1c22a2e3639f4b431da1ca504bbff GIT binary patch literal 180714 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

D;jh>mVl^pAT>6vj$0k7^L{RF^*KvS>H3)Z( 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

A8 z^S4zB(`vNZ3i_oyi&kf!e7eJ-tURTkIY>D2(nGDPAS_IB)#5X+cid&$Yfxk?5#=?z zB#3y9i&<_Nsq_l0Y7&j-=Lq*Gne?_g${O#OMWx1KtrJ``GZbytlTw%j&a;wpPgjx- zfxu}xRTL4KEM{#O^NLh=6vJzj4V{U&6!Dokl2Zi-wl@M8#4sk$&`uyYrgd{jeHKzE zca`S{828RYPI3mhDLLH-4=dus=UB6@7@QH3C4uwL4h6y3J55UxZu} zZJnK?r*I$6va@Y$V=OLrYuZaSUQJ=k&FFZQ8a6zYS)3`-2Q!5w2`E=3DYckP4TD0X z{6O~XZ(7QYE#;RPp)CfxI3qedK_MXETGwY-GpUaD(vu2~2mp2vjl0-DnW^CWkVxo9 z;T3*{;K&Lew}@>FnDo`3XP;oi_`BuCZN!DkX;VAhPtouuML@yw+@#-lx`T?8U0AWE zN^MV8mliKYrt&Rb5tD^QMuEmg<;8L~9IlCxj+Wo75&Z|t9;K3YjbMJ&oWiD>0`I=n zhBX>%PYNcyw>&Qn7Z7p~gh-WyM>yY@Y)@8yv^FxNq@;}cO_5M&1$fGFd~xA^RkmF; zKLOz;sxX{hIf(b}D;tE0Rg!K?6+)AE?Awu6JYsrq1}m7a9j=KSbsU?IF;!8>vrhPw zro8%`xw-dNHH$chh`hU4S6j~R11L34i!WCyu+$z)#QR88`AsS1HBY8(5QeT}lN)Cl zWS3lLjw<0t*lpHuFf|P`nk-uoHv%!l5#E6jI?fgJRm6F->?N30-)3vgCD;)yR3;`T z(oI-d=)ou_@*l!1nn=iQRA}o}dj^)qra};vF_#JBqp^{xRjEX$bAhVLbQ=VWffAE3 z-Pam?#tlF(>mZ8Hx^}gEn;I^aSb~$RN!6zY?aeMi--KnIy{raR%8G zAVd0)1;%z?u|{jxi!yNl1O+{SEY@6SDV&*>x0df9#cbO@UCVqq{&2pYV!Vd;sGGoI zFj{@wRJkuhBTAZ7ocqJT)o?)RX}uBLu1ZT9{4DGJP2RQFRY0Z9a z2b6`Qo_d%^5$!-SQl()&R*ywZ&Df4ODGd%cioWFV;L}>P++pj^jWG|jZ!$josCj;c z#(iJohQ3++Bj{~!kIJcRk`mv>h%C{&HfhArh8_2!N$HufahOtv=E zbjxC{>N~&^nebM};vMe@Dr|lSKg@Tvc#D@!`g0E1nAa>-2<^|g=&a7aPkKe|l5*O0 zalByLT_*qD4;zlD@UGe!!M&8QamdD@?`l$I_%x0LUU0Iv1bQH$4_=h-5FE!+uH7TeiI=xz6A z-3#qmOjN^SrDrAM)u!&-OHzuHU&7+vD+ydIW-dI39J{_W^V|q-z4VbR{@(tS+FQ}# ztbj93C!+tfwhBMxw4px*Plz4S8Mgi_vweY3;yKAlq4W=7$In+Z+s$N6>B$?~!%;v- z(;3Q7C^L{o9~ahJmfAc~=LdTLHNq4Pz=zBxY@d%t90wj#&ng$8o!5VJ!EU$bysQe( z3;`$8R_M|{%@2 z5E=EaU7+ao4xj4nX3K`Y50=c%;V(I+W_}?@^dFPnslJO&jX=g!FxRyHydV6;^rAm^ zT=!;{zq-HB(~cMQ`pwisb>qV~8do>PQU6S`43#3G`T4_zeNOAc<@tH_*{9F1xt2@k zKAZy?+TBC){^XGH_LtNu0oh+4AWq~Tt}`f2^8sqXsOR=7@mI|Re7)s;r7fRZs779A zaBM^B#i!##L`##K#z%Jc5?yrb-I|w; zcko)b2qeOV@`{=Jq*230i;q|Qy%sMub=;HNL51pd+rNo`$1^vv_!vrRCDB!unND;# z+!&+OKZ*i393WO)W+6#XN>4~mDa|KSC{h2HFkz+@2NS3z$Mj%Y>m9LXP$Yy@rR3y} zr*`EPi<_E!_KP_Z4gXN+OK>1Rf`)u}QC)>A549KX7shac!K6~#SW}N(0 zvi~}4TW)~oMpEp0qO$h-)U4g_tp1`qKCr+_Ovw?&{?4VMQ8$Dx(#}aGwRfc zRqGoKs-*Z4MDok&+Oy{@Opmq$E6zVGd;WJI_r#rLnz@`xjo>r{eYpnJ*jJ8K9?IRf zmRjD>8<{y`^QtN7c8x{=HCV$%e7$8~fWyMRnqx)QvBh07_VoCpqO+hqcB0rcySVUj zBpO&bOeQjR&YAp$&Js}xl0G^Alo1uhRec6?s|O~-Wd$aRi8ppJy*w+#*_OS;!$ZZv zzq)-SXifeyxn!Q;OhaAM8so9+5C?nW-GdA^vM1U^OCu)|P`*a@hV7qctbh{MWPH@o z%+mEJ+mdk3<;m3H(wVEs2Ky9V4Oi9jTF*6iuxrGRl!gk&lNYX}N!Yn?Kqm?uZMPg7 z@zzx)i+VE9Qqa`eu8IlD?Iu8sv^xYn?T=_a?+XQqdVx$DFlee-_^@ zOHQ7F&9i#edaNDG`V}ya));Ffho7lPk*+}3iT-nu)9qA%<+f)`uh>y}kGkl7(3j$V zM*>MjDb2|oN7G8UYEWI(p%@z{!y&``j*6N3I$dhbkMOBxpUr6Oms|IJ7Dca^0^osb zt4(;GbPs!Yf=T9g&wRzxM1~TA%yiD3_E!-R366tPwnD2>akV(1yEk`8Id5$>oEH07 zQl)_<0bE*QKBCW;oH<bPxSr+F!K3whN?#YptP!y^DJzMuh2;hBp?Cb| zmAkW<4+Xx=<6G~VFU)*TIN8Pqb>abtRR>lo-i9|8ZNb1 z^chbWHgWUt=34W2HgVu}WefW2V+Y@}XNkfkr> zP-=p%4?+=`HygFY(nc*x1fawD;v zf-x9|Ay<__L%X+SBz@6%2BZB-8nPuPEx z?Egu;SUyX`&q)=TtrdAu$NZ}u7B%u$rpSvXC-)x}JP^&#k&&T-|eB~9e zcE%S=b-}BI92zSWqk<}|peQdYA*Brqn}`jOTg;|bK6B(7H9a4&t00;#>i|MP10k>~ zfkqI@D=W&ycJv11u{mJ2S6@8^Y%x!=ttXmOlvs=aF>qd_rM(v4^e16}m*)>*FX(EZ zqWj23uE9*w-XowC69)hzns4=3DT8{TT7}rD8&ca)AM*h%&j^HPlsjD;RcA3houV5H{g7r zCPv3Y#e9vnx<4J<>rS&|X0q_^>MRK~uuxTrhp-f%&xqy-33Rb1sckDsPi*BZhDdy# zX&P4c&M7EJ9p;Pbyy?iHBk7BO7XrQN;nbFU+P*(tttGu_Ri% zEm*;B_0lui)NH~1+oO{QT(_G<2|jQ)i<(`X7tomiQo^xZeR(EG4Bkyx7b%JV5uuyq zQWnbE?lqW#159Zwho8bzqD~TwH}plZRB9{6l_bMB4o=>^m$u6dh_1JXm)AHa>9`RR zP{l`W8DOX~(~;MpV7(PIOH~bea>!40;=`}`G3D#ILBniJ&T5uiLPSbZrLn~}EHr$a z18zf#d~2!!-@njD$l-hogZc3TlHvSM@dqt%QN2S0YaD-gY-1i>>%|KpfZC2aUtNKI zMsf<_uiSALXJ)k5LhnZC%Jt)wQ+dR?yZF>z+b`Tm@oAF=7pudLDV~i-^3x`7K1I~F zF*2$sG_FL}n6f(1^>c1s5y(%Eq-&;(SJ~m24}iO<(O@0K+v#`n$K9&% z88nXonOg5o3k9wioew`jt%dg7Xlc2|+E<0hh^uo8tL>{I56jWf|7bmbT*!yseOhjP zdG|;EO7Rgm1H80k>(BqFLLP6>rS|{Gu4DrKK3ClVRW-bp8ZdF3P9E~S^iO0PI0-XSLO;R^9$zFzn0#tFLvd^0a%}4 z!S=9sMomGvI&t$Gxx2|EU4Ktcv**^xQr~&AE9LU0-a?zk`5-eOo-_rz%vG#EZ+D~u zc36uvr!=*ZknWzTxyIFVtA=J^yfD9`lL&X(A<#8WXUYA4vZ_Z-0ekB3j^E8^WW228bEqNK%)xe}8fz?2CC)pLOp9KVa$Hyl-1vMIpw8>T4 z5^2tsnt6>OyImn#q7`z$oCC^S4Mu0(JE2@OADIk|BB2sC#s$F5=4;xn>Y|d;zNH{1 zXA7huBeOc3)!Dix^h8z#&YrIAojYO#Nezx$Nt;=+DOSTUO&q2YE&iki#^YdpLWWWL zyq9WX3|WTC_CVc{AD)C7_D?~dSX`(w`%=^*88>&UX=}}?nYbZNull*g zIsS+)h97nm#>)wSHS8>OpQ%0CFgB78(5%LbO$AoIZFTALt8+9tBp*%=6_onDcm|U{ z{C7R^bPCwtW0>O*%sMj@{XRM|EXTQ@1!k{$UhP#Ln&jUD{l7B3e+$ck%vv2dI4w^C z@91R9@E2W=iB1z*B9PJHuDG*b`iP;dMqXHOWfT`GueHO{0=~@#kEhM2Jti8R5hQuF z^f@ney06;?8`>#v6>%4!p!RK;L=?b!V9sYA>N>x-vt$Y$&l#W68XT(oItLp_6% zVj`k}(#~&Bzi5iQ$|BS$LQl0B{VxMUhFLLBf5B9VTPzvC9tTk6S}ID|!zN(l-l1)NZ~F!u6Ow^ak*JGS8=%Hde@JPpNsq&A zs%Y6xemg$AAtfm4o^ro}XFDdx0AQAV+=4boU=Wfk(=L%JE$N_j0|dZmBWB9|-JJGC z%A42U|APfUIaC|;5ppO_FM#N#0tZk=8Go%NUV)-~d_MPSn=Q9l_lN-hBW}(H;_tDx zH}cop*hZGh75;5+SXooIb~g6=^z~b8&6y6f+T=E~^MS}8Od#L`uqz^|dAfR6ML+`o z4M{ucS!US>pNHfpFbe8GjsF-7C~_~Svy=DdcbU#Qhyk8ezq}UoHgOvWbsV9J+l{q8 zKvWgObzBq|5GZz>I181=G2R<3F7PEr2RzIU7GwhfJZHO8MwJ<&uGUGQKY;eXRl3P< z6%t)XUoXTmAth~Mg}U2be|vP>uvlpS1aHX*qU&QEq61y!)!8wJ3zYT%6hl6{J>9-C zEE*^imXrYdKVsVZ2X9l`(f3b3DFCAKqivZS7L{}@>?X7+({ zc)Y=4ag($3#crVI*wOYp-{q`ArNjwTDo#qM-I)*03;_%ql`^+?@lvJjl*AI~Hw?rMpm2IeofJmSRH1a?HE*-yW^MRl5QPsQq-|{?p^6;|~z4G4q zLQ$rRL7)Rr_uLL$UQtifK-mSH7&PQ710Afsu+T4^p%MXIqdRIs5<8XJ5A)eyqBW92 zue6$lH-d7_Y|`dkcVfw-c{w~@mmAOA)3@9}(!6@H3m0zKk+7BskB$2Q{F27$EZcj@ z)m?h=b~;rj1>i4`5rw1*D`lqkLbM}wZqJ)zV^8di0$+WX*||Q$TPzqJzyIsY*b8#? zj->=h%e>#%<7sif_J~(BL@fXl(liTjJp9*_0h~9FkK#AM==e|ieJ+a+h%o4=e~W9c zhe!Y2<3>XG|Iek7j`Bx1=~cGDRe#ZjggWCmkt3bt8A_e|r2D+)hNd{z8%PO(d26y% z3yg~7>G`+M$g)yg#J$5vv?MsUz)2bn*qg`i@uQ4}l>Op7imGTY`AwwaggG3Ho%cr+0pBTL85N4iaK?uZ#teLteTr|g z7cnO7^){R$q_xa6cF@uBPe#N+tb&|s*w~(Q4cJtgsJ4O~Ii5l3?~uCEdlRy)Gt*I= z=)V?TL!XI98iFly}a`J%bCmaR=liLG`&Wuu1E#~a!R=@g&xLr>ZTOvXM zniV)R2U$uX{7F zRDGnJrkxTjiIhKF3dvH$OSI6kH3E*mqw;_#%$G6IXn3yj$gA_!or7n>_qbJ;O&1{} zV>e?|vZ?gigXus`)!rbP_a!q#yfTvOjo{l;&pDa_OsUzAxkF7XWn&9M_E{*2hP5LL zQcfC)jN7yzveiQlZhf8tSulb8A(nr0$waTS{JDHnlQSz)mC@+m6gQf?7g@E++|6if z2B5aU(`a#N8unFj1CH6g-q4+P$^8vh957X(J9K=im?Pz44$vG0a5HdQ5iGh!zI||+ zOY{Y5FGa~c&+Ev{=g==8w~-VTYqpyW$W*b8g%ZMBknGE87YFH*c!sTvV*qmBhl+s0A}&AWaYJjSlT13q;-XR;a20;6^LoYzXt`E?u&}VQ(z=gpPMXyKSHAmYj|*u$ zhh;ra{6Gwc%k_R&Nu%!9)0}QcP1=;sTsY>mA0yk#(D-O6>e+DKrOSoZ~);OEopqO zo*JWGd{`OSs{*(TX$LXD z3*Qk^wztUqFMNhrkhBmIEso84IY^lC&J|>^=N3n$mc}4H3h~~@*>|LW%#oMw2BOiy zw7Q+q#t@%K4yDqpyqVIZJFpcyN!uQKa&1h6@izym0!#thNV#?JMH=OhR+nIRN6PQ| z`ML~N^sX+_d?iK7wQM;pfgB2@+TpcxO8VK@&B7fwkJXzf1*fi13z`X74|q<4QcYAM z#)HwZ5}FWl7scpcqU-*YdY1sDY>JI{v0^W|obXZOVpDkoy82%nMq7}P{~Ckg%x;UH z1|2VeaglGjW^>uM@fK*}_gm|7GeTwpRUVpLDS?kvO%dM-8-vOI=r<&lL4U&uk<_xk zug_5Ha69z`h=!A2PP5r|=5r=B4>>Qze=_`@V}9hG0FnaJO=z*olu>s;4$XrulxsQh z)6FL@?)Tx}U*OEV`$tLvw+{WHOSaQ|Z*sC^!en8x`6AzbTm{~u#ML*@Co}V%e0Z}k ziSxtjB{bRBCCb6A(4<$;jUL+}4I0d(El0+Q1-EH(P>KFOh@ER%x z2S@0)elyX*8+r?CyO8=6e|b1Vsb=&)0R@7x-`*O&(h}Tnnoxk%O8IynZQj zj4bqw)AqleigJf)LIS0^fP0wBXig_BJJFXU)DA(dX<6oehQKYVMz_04{L?3MrH@@u z8G06`d;3+gYXOu@^%?Ep-h*xO-U0cG50W%Am8qOlNQXJc~6h zyDKsV2JTryWa8f><$hxnppqohxpsL9_mEDdyBHV(8jCR%Dimtwphymn4WU>)?xr7@ zo60?#zd}L|k&2A>jO-6LjLi+-IC01K!U|oxT(hOIECalww%3FsG^ynkKuBwD!WH@C zde>*f_t1hrvgscl7w_Y`Yv5gAL$=E16|N^o`JVbVvpFd+ykTQS$h3T}_dU^4b7h8U zpL042)5`2-b8h9Rc$otkE=MqJFgXXu#le^|ZVQjq`8_d`lJR4Bb&F}!6o9HbI$dYV zs@q%Gb?hxo;ksCndj4h?VPA7VpDh{G@GPg}jLWcTNYa?((2BNNt4Y+a>c{nbPvCWP70>+!*M`Sy ztClM-Z%rXi=ZS8y;R#*oWPkhTJl>*ZO2^}2eV4~I2x4jxUk#LVzQLKlw$O5ctgn5c z#M=D=?{)XHF)YwV>>$!@Wsse`x}t< z!SRk9ZTMF>vQ{!L;r@e~$UyYttvg6b%H~=ww$i>%7M>d@k9D1yhT%f(b z$pNCnilHYD5|4=Q<3&+ed{~q@o*p`vzNiVF+34h`*=+hC)HQ70{W3m=Rr8J)wfW4F zM$?fY^`|Gy1>`Z`meGDhiK2zUdc_Xo-x<97kvF7;yfej5h9aHV%t(oIC-LWx1MKIv zmt*bSPJ#+03smRde}mEA6xYLjfGuAt?ezG=zky%0pcf|ohlBf3oAVM1Y(e1qeU?~m zciK_U4-j}aPAmLBSu&4tHFVKzeB2{&XTNy9;}UJD=+&#kPsC9hui__s6&dxsL(YI;v7sXU{iP_i>`C_-A>5R(_8OcB?| zU5Mu$aUaNSU}StWgx`$u=DPQn!f?9t0r`pl&bCPkyF&^9t-Alriv#yhTuIvXa-A!t z@Y6pp&+xgOTHMbvE~kko<{h=q0#)YbE{vqS`4kNXH}!8mXm!clY5KC;ZO`z@M_v55 z=z+%x3kc5Y)_vI8J0CpcNja9F$WU;Na$yK zEcRK-L=1$DCX!o0c^2f)kUzxrU6^y0mJ~t2U~`|X;HPozjf2Qg*7l3p_JB&y;mMIg zg$Zw+XrS*zK1+1?++6^yB(m(_F(dpth&RT5`9dBC^8xFMezP;`_erbePgVTMH&e-@V>Vikj~lZB$ZBSI`k6DN*pfYCK! z+GuxVk>f_rO6N)L!SZyEu~=$H6nwTS`zj#&%`4U1hyHF`b7}I3$&U~JmV;%S(6#y1 zFihRu>0&36TAtvNE2H~_RC{El3>2hj|F$qF3}|1utVj5awHNu2%(P~AR<*}ca`l6Sj79Aif<+(SN?%N6i=Qb% z@Tt9BwPtry0P{Fg;Jy0Lz#HoLrp1o=;bvZ@p-?0ti9=A`RSYkSfY?;0_y^rlh{*{_ z$SA+RHz!Sl_v_Jfjwxh|R_7)r9~c&SNSiSqP$pL>I~W}vyIbv1V@!D+XQr#gdllIn zRh^5GMgn$YYGkw~SUwFQCi6|}Wlm@JCEX=#O!N;A`s4`FZR>g)qvC;i=*3ILzOl?& zTIq3UX@wqu6HszA${$3=U>XEqfW(!tE0A z3-Z_X&POfEM6%H`%yjnCpxcb=8Q!A(k9-S-V+wkUnX)+x^}0Ou$t&F{ayl&597{g+ zJmRDl48Sqt)hRL$===}!| zYQX?JWERZE@E}9+?a0JfsEAW93`{RN(u=|W9G@_d|H?QNp8Om2kBzD>sKDYPcvPeO zz4D*_#qu8S62kwbDZD8D+rgs{H2C@dc(IJ`pBGS=ta&>(!#REi$CmjI=RX)>dIfMi z#wCaMDx`=r38UJ!tHlAV>qjlp-#?mPEPUZR!;)^CEg$H zY?sDpxt)$2l_R(FJzx<8b7N!EuN*o%QU_hIlI1sH{8qruB_^< zjp~||h(k=8Tas8w_?{*KyI>)G_J{03@d1^bJbh_$eWm5x3yN&mot?dPy)D%_rH|Dg z8=Q_O?+-|YrFP~rgimfaYV4qME=?EVQXn2P*D{761RXWwTj^b}0*GPYhtuENdA)8^ zZ|Dz)gK>bh;HoI3IyujTN|RF0S@XaFwjX!!K|wyR=d25p2J604`S;mfmid1kjb`dlnxhJI5tk$p6qKpyY|54lM{11YEKnz_`s6)m`j;eIGgWxHJ$~KaxmV98 z8$uDYy#v_ns%pkLXJ#&!>kpKOZheco{u3`}IJ-&JJGc@xg6PJuiAyydwy$msH|voS zKPf+KuG%{uz)PNj5*=&kaZ4`mg-68Z#D|Mzqdg(Z?bHc?ljc_;B{?2|vUiH)Y{rtD zDt(BcC?$9wE&u$I6Ed0C@w30}8_BK3^GRdnyUY8a>RqLg$&m(+75ss|HB)d9Dy-P2 z|FbreC6g#3J}6Tv;i8(WqxvB>-*o+fi>2uEzIx~V7pUS!aBqY>P?5*@q4cOxO565>}&RC!H!Oq~x@BsLIMa;7F2bkdT%iqo-Lq zz2Q-F>$^TstFd*gVp*n(#ll2EwYu8>Nh-SEN`(B$_M;@ji^sm;0Q;AnT5eH`C+)jg z4z8uS8d719Qj%`;7)yNR=4(^w_q6?XseMeChSG+_FE(@&UTy88)Q<(j%C1r!0&*7N zs?WzRsJ8qUa1$Kt%x~%HUzP9}S%KyNpv3B_rr^K1$d<_x%L!yWSpO`HD)jW3%kXo~ z9KOVK1cd{B>I6m{F0<@LkB$vr+fCZknhm*+l_o5ij+UhOH_`zp?P6=lgWek$aM zk5xp=n?P~FZ_co~*Ej@fr^Bi`Zh<)^^~VJuaTiq-u=e7&>Qfsj4Jq3NKM`hxl z)dgB!6wloo>e%eku6-?=sUc-2t<^_;Rj=-Gm77)?dM?d>L#-%(cb`=0wIA8oDt2vr!w^0lYw{A|XcIL|vYP1-jDwZ6& zQderSyAXO81DtOlGx0(Xe&uqOY#GN@qMNx&aLsvesu2{rTBH`dI^=>61^iy_7U zJX2QD$36D(F7Q-4*~D%WXK_PERheN$vm&E(^CBbv;OkshYlgpW%f%=!yXvTRG*ksD z)8^*>HsoT?w?E7F4i?Ob`qbSNJ1#kb3QMgGUrEi8S3rkdvz2a^!#O?r?SD^Ol#awP z54{RyusS=oV6~CyN-hZ-J@F0e!Wc2cEJHFFOkG@zP236CU;D<0q;86htKPgX+tjl6 zjl8*e&Y${Rw8Ch~+zR4gF;!?Q>w>?~l$dlxsCk47I&@O(tCVK z2_Z%o>R!&21ULLrNH+STjg3|%Lf4y>^*EvG7AAwZKmJ=Q`{(vvuT68RlJ6!07W% z@miV%=zQPFX6KDggn(>?``OP7)F#hFIuZFGg4^wlW3Ac^14MD#5;1j&)wTj0xX{DJ z!6IWbI}Se*;^(;Q#|i8}6FObzdAK|%k0kkA9`j{wP1%nXtJ0K{|q>p4k2c{I)nA9W#AXd<7eo?2g3s$K=m@TE7xgUypiIt{gF1Q+^sG_k0)jxe~jS zYID9k$vgTp(ISV{q)n(&b7F4TQ?rHrtMaYEMfX%Pg8;)Jh%K&hJ6EjCTh}w2pX5YX zqCa1JP+~xp$Ut~2Kl9O~H#g|cm`ZL_-8sz*7*dYpBNUm>kk_A^lzH>^ZZe!I= z?(*G{1L@_#DqWM6s70s|&};}6%J$3F&91)>iXLO1B9N7$ghQgHhl1K2fg5j^Nkhe1 zWXd>jM*}Bx7_fP6QN6!gz?3ppCR1g9lBa1Lt+w2s7l*iI^IST9XewD;!@~L}V&lZ- zzL8zc^4-J7TTiM}ur)uNsatqg>(Hz_WWKOTSTVY8C_vPN6~@MOs_D`DqgL-j`A0T} zgNI5)^0Q?INq2c~@0^P=#O4R%Pd#m3c?CmLX!_YXLFhq&;=j;5+CHOwkWKtO5dHCi zBIfq&^>$^|4OZY>}lUsuxacD48~J z=rtmP0AEYXvgC)KUO?okpfe-g{^6nz?Ju_pLd9=tXx`ovJ#r_p_h(6td6av8g@%I}yaJ>DBfAwL(L4os~9r%*^Hndd^xp##a*- zQHAF4Dg~+ybs`MX@$y{8<{IL+f@{k5b<(G{jJruE_>0*y>8xW&6YQJNv;5yLqQvTL z!}aCl^$4r%%uhEW^ekUWx8Ca3twkOf85IBO>OvoVD}(Z)r_BCvNqyqmQ1$19g@M$^ zEfr`YGjxTgJbV>a1vM0w4$c*o)5xaJ59eHzrkkYYOTX-+(KvL6g+?6DSGIHsKWLQu z)T5&yxma+!e&y~%YjXKqsaW=18+UdP=D)B&g7g4$&t_pK=deF5Nje@EU&%rcilAtO zDZ(oSWnT#4Vbj|WlJSUPgDf}q7yOas^*Rz*-ZJpK8~f=!?nk(?Y3_|a?d}ntFwEpT z|IB}E{*g!f*kUQs*^B#yxQ9B=Um@O*6~!gSIb7$Gse0sc`jF1P9WZaheUQ5tDC=J? zJ854i0=Ts3k8|5^NK{jipM04X;R%f<$2(I;(k|{Oz1Z%Oj^X1}^0Z>)QVI6>5Au83 zqhIpvXqFzY1hlJ@Ui~U%U_a{D0vQ{(o{G|Cb+&gg+Ij9jR0-+&N&{+x_&(*naKi z1EY-)++BD8pTpUU8ELTrBtNI)X4!v_2tz=QI54xaZ5J{)btMhgoiKX5+oOqA!1X*7 zoj>Obx59tn?BNw2cDC0Y&#H*@6~@K|%!9!5`TnnQ=M*Fv*Y;o%6!L zAo0zO?|^fK9DZO>`YWj_Vk0yU)02w~)q_y<(VOq4^%hK=SSctJtb6c+7a;U!f~7%aLKZ5byeC%Eo6ECSvj4i2C9ru5SvQNe(7`pu>g9cjVyLqJ+t`bvex zA*-WIGk^`+=z54~Uo8aSejsvP%C}XYOWuOIFTp6t=@ZzioAfv?10KyP z0Fpa7kWJLNtqZpvX3EYf1}8CwMaqMmg|%w8oA}O*c+kI_kQTebGt9I%6{;>0LrW09Jg4KYXyYaB9+EF8m5DrOy8OI%Y_G z!MHQJ&uui7PomIpvF&;>J%$`vr5;0EzurYw9bfz-k3*-_A$+~rHi^d~BMvvM9IYcP zmIkbwC{XthmIy%Va$C^vzwS0kW<3`Q?TC6+wM37O@1|1$O&`(~&i#b}$uYdh%zu`! zaMhBPRpBoCV|=`{L0e34UV17`;d5GPzso~*zeTg zRf_{4!KSE@zCa*7S%{y1bd>3Ao@ut}uTrx8-w_Xs+$dRlS*vc0MV|*K-W$xKS6)dD0{YD|@W8slzYnrYX`8i8nh{9vIu=cf>p61cXG{ zIoXSim|E4pk|Ihp6kM4CFlV%DIq(c)sDDa@51?Ip8T@X{b6%?cS_w&QQcx1Pth^KImJ3I6f=a8<utHIv`uQ{rgTg5(3ws z>&)OTHyTNu)g&E0i>UNfHebj|T! zi+3t^#=qCalGUfL44ci>89%g!$DrcjRu6y4s#g|v&7X1>!}2fOymhtVd9N#UVv6Ri z)f>t{V+CgW6a_%}5+wqBj@}eD6=OlA!x5rn1NGMLS$m@mt6qei6M57@9fKWdHt8cms>f|eoRGs#x5>rIoc`5j#vsB;!f(0|2OwvrkQqWG`UisFZWgJURdBqE(t{qR{SS0tAzSxv#dU$R^`f>s85CWG z!zgSd+QECXdEH7@{oVo9n-CwgEbeoJiA8V;PZSHGPq4rY7qAwt!OG6}y4b3$hz)bY zb3Pf)Df@AI%1P5X$~~-K<1lKdIb|onq6oGamQ+MFUjJE=$|d1ap=}WwAQYNC3}843 zID77Ig3tD%3Vq>o>2{Lyot*i7B=(mCrnvRor1Zr0uXip~0XZX}9Ofw|XMRF%WTX%} zOrt_rsSk*`g7P;%bcJuf zE<7Q`mX^03z4%%Xp`*(Aqu?7foG+6B2-N(H0s5 zj*^#EX83yJ=vE?>9YIO*!RMGmZ-kej{2qkFH+~4zO)!l44IkP|DMHaqHvj=RJ~Ez6 zOUui}V(%aqZNWo~omJ(R=fl{W#@HnvBnOehw|zbzE{|x;4#j z6Ebfe2Q05Rq{w7;R0s& zcHjH@%alS48r8CLPE9YeZLAEOtT6vK zSRhM!EE;vMtbxFjdGhZ%`;xe#5jp2rmPmZuv zvSi|DBtOXnu!l#GqC|HrhrNnM6^XO5S_lvJiLCyg-qdMHI-?Ak(k!gF{%MuQDp~)H zO7mi3e(OCt4HQ{(TXh9PAt&?wG^kF+rTgJg@_L9KQ+0Wz#oBg>dAh8p5d7gXV6wqr zl@N%qsc@&VvF*gf4@*TA-;@-E`If9?Fb4$&@|kL#A!f*{)g(4$q{`7{9cG=xsE6?s z)<7d=T_lMl`+)gGtKdarJ2W*q($C~PGE5!zO=UK#zymSHdh<}l-g5JkgyQxhaz|O# z`(@!px2Pj|rT2@MZVyqkwrwi7ap3z6a%>ctSo7GeEvv2%l-LF~Hu^Sy>_Gsq59y}c zQcFr8pzFM6csRr1_NCoQsS=>)hf)Rnel;HZEk|{@*$|50+sKJb6H(oz3eiU$d=T3 zJFnQI;VWocd7^^Z8=W6n@VVhA_(_hTlK2+=1*?pfg^{z@{UoI?Xs-U;;-dE#5Hrr< z#ms$yf=IJvv~GaIO$~f=O+&>e#H~ABsYoxuiwKA{RF|<;R%JziQl_`Ai0}?@rd~+A z3GAfQ*Ltg&8hl*k)Kx;=;A1^I>Z77ZQ6U(ErD8o8aP zDJwIE-DV_!idOv5^wEwou`5=Y3p6Fxa9_usYJVKuA};}3>$mQxD!Xb7d%;9WcFD2g zGbzbH{!3fS!%r#TRQWGoS74rTzQoghAQBE#_~E#X8sNyYQ?W%vJQ)++_VXNyUQvb2 z=Hh2$z0mPR!Hk_69QMqpo$g9kGMN^)TUXV-*QRmY8Q(@di`_Iu=DEgU%p$j9y(48Ty3{N>WgC=dX!g#tPQs*^X zs)JDtqMZctP1S`obW3Tlut=r~ME-0AqNDfQU2JByrYdvm%IhJ&z(#s<l^vdYFnnT`W=&F}~1PaIOmuanc%?)PSar@mR8(;O9BA^y=|LXhPPa!roA5lm7NVrLZ9{Pq zhw<4F=2b&@ghSU2XQNf!)nB2xK-ron`49gvs|+58C_tt9e)Aq+)=lQG%IN17aHa_I zbBvF#bu=qv8W1C*oF}d=vUJRie#?Blquk7|x86+sCInI_21X2O^RPo?(j4fWYyhG~ z6@(#}$l~uYNq%rKe&<4YA9TylbHwQpGMS$zzALwz78kAEY$?BEq=L$!3^iD99hkIL zl4qSZa@cZrIRz9hBxUAxdc6xK3dE7qEX8ny@J#wE?lHX5k_ADXg}bi15Mnw4PK1s^pqZ9F_&LiPuOWWK64UJQBfQ8{Osy=xbxL6)^0t7Dt=_83sO$ zI3nx+!HxN@46lQ+LLqCX(RWK6>+KLZ%?qH~O{72cRdMa*kHK-t96!i6F64)4|4A8E z`SYae)AXTG!s=3syUSyuqPZ-R;0t;e7p8s9ic_UH@kLaaL{fDzP&NXmqe-SEW+jeQ z4Lr1|oT%h3p#PpVS&C+RIEy!cFqWuJ!!3J$dUR5Ni3;*fBB=3uiOQHZYc|cmXtp{D z>?-8YWWLk34g|xtui?(m6`=KJivlbkAT%tPIGKH@49q1p_oCohqjf?Yh=NUI!Oo6d z%B+-KoX`RJuA#V`nt&-^1%?vzYypS@{`7(hz3Aa z$l`c7>9~Hj;}H5Q5Fk&v6*)HK-)e!o^TB|};j|abf1Wh)d8(LpB5%C&5cF}m69SD- z0jsu7;Ld80rW>rg`SXW?x&Gne^MUV(RWrdKZf9St*Wv>l#PRLSV8DH$+0?n5wbeNz z+eNqDwHnZ3OU&wg*#Q4MHrgnm@Wc|9OX?ClwRf$~OJTFD-01VF;W8|479JEqk$098 zz?57rnm~V(k4S5URu4oR}3saIwbRX19zGzKTb$I3!#l zf#1PqF(buymILgH1bgPm1*d`W+B<|_JSZ{&GwbTTm$=FpgrnH2|pI z>GSTwUs41EL+(lbyGQWvi4b=mF*?2C-ax@89765aP4eT53es}*?mM^$S1{mqJ-ru~ zfw>&QPXOe8ZqmH?pDYi+0P?d#B)Rl)7EXBTMM*c6KkY4|>;0u9wF!N{kv!uaWGS2R z@k%u4gR6dQUjWSD$$cYme}G(psfxCvF>Do?+5QdklUOnypzLoi#jBTp=x;Q6w)z)& z$bXQ=Q9wKU@f1M&@9@4}y4CzO3xHUqvZ?|(lhFECLmdDdiF@Czru&%;j*|&%*$j@J z8`5kHyOFSV$l80rqh~?>xo8y_u&QZl4WP2jpC;lGE8W?$?uZowD3)rey-(pp%~R#n zU~6jo4i*zcGsfs&v==%~Gd{%?!*g?zI$ad9(Y)%Cz{yN-LUy&zrGC5g?}?OHt@h|Y zu8ed?8*W(+SZVBG1+R*=QDAkT;X}(==uO}Ld%f#R%1&Yz7e^`iq3?=vW@L&qymrKC*g72B7E#2Z>$JsP`de$acps@R= zJ#U8ex?OGR;HXY5%Dk_!$ItChQ8U%{JFmf+MOX znOB4Or*)Y1D%X2XmHwDZ0CK5*{bti40gTU_$eZDC2iuFumI%n(=AW!s#t~T6uBm^? z_SGM2LC?0;%}Utu2N5bCm-&4`htP83E6>Q!M(-!|U~Z=+bWL^E6IZ4}m^URQNFcjv zE0yLXO(*}dls;TVT~Dg_(1nkOpp8AE|21q!J3l-&lKT=Q6EMPBO7J^~VV-OMDuvM% zXORzLH9N8xu`mZ%#hNhyBPvM#%fS|EtrrpFGvGq2|a+y^1Y`2c6d)#ukge! zm<_?UtHRoF>L(fL=hcmZG-pnlV0G1oTxOQBsR~O0bL~~%ojhHgGW;(>vZy`oVeZXV3pL@LoGIrEv8VuZiAspo10a*LQ%4jj=S1r<`JMn5(9WR zFF{8uz{Y*(yK~(IYtB{ypXB5{eH$(?4@gIpx?6ps%hwsZzK&t}I|P(Eo0K}Eex^VH zQT!wyjA?3V)R$-%J4?y~;#+Gp-DrW=i2ZS`OAF9S4{%)zd{#;CVh^-x2yF zSGvj9)H=;H`fa@vZOa&gLG4~s5<11%Zq4Kr>!rG_tp&tZI3pds)hp2%<2na?N5|dr zhwswfG$S<^m-_34kq5{REG6;&Pbhri`?DQ?V zs|aiHT1PR@1`SR^72dF>20(-TytDpP1{tmr48pV*q2;vJO)Ja=pzt)UcgOXZ)0tuj z>#~lu0{rw-4+=_s5q2m<)kRLLD}w(%u8St|&SP>0Hr{i?i?oiG>ehfkTh43NCQ)!e zAH}Ud1=?Ig!!B(56d)rYMdI_7HzF9uV!w`lmk(>{n{S^RpD1iByqg^e9))0fqY_~W zt%B>_EX?E5B3@hpwHO|ekHy`m*!II`Ib+q<;|`ph+;n=&H;Zln-r9u{xDR;6fSh~$ z-*qy!vD8Q);@KZgdUc}m<=4fgdvR=#>nSc*jcyPxYJ(Q&bJ+uUKxkQQ{d$HSxxb+S zN!~(|x4XE$3CY$j1rmk7wR*_aG@CFm4-nQjc2a~mkuNV&+0<%2!z;y+o^(Jy+GrHJ zQgU)~4!zH_tJsFQA5LO%w9wiEEa&BzhFy*VgSPpJLr^;TtG`{Mu_iXt0ejp2B;MbU zyE~oK6|g@YN5rm3J{p1 zl7A4oA12jPvi~{gHmG+^2j_|2AM$*9E8t53EPYdF;LqRo8!zxb)vf-6772W#g!q?T z27DC3`IkHmeEvUhDF3g2d_^U7`tA=zC4_Zb^UUu=I{c{@Li?My@u7_*z*&~q)6>+? zRzrZa7vZh*7H&~;oPxhu<5$F6<~VmX#!sHCV}QJm(4Rfq_lu8G&L)-2X*(b)e+z8jiy>#ppTK%y36Ebd#f&J@ zf|JonfWWt(V{o6d9Kr9+TUiXgPc?`iPe$VCv!jzsYz7F9~fnq@=z;%g%0xqezX+!HP^pA%ry#dS7MFoqG zCa>*rum%z$`klNY5xCkI_DxbPH~9OWo+vT?KY!wn*9O{ud6%&^of)NtW4~P3k#(*4 ziDW^9m?T)Z$2Y}Dn4X%YaOkJeH zbaay3NZpUF2oNSr!EHu=t^;UJg#~68u|;qV5TRcjR2_ChRPjo1JRrJ38jCKL^+sJy zx^84X={SFEn9?H;U{1b%A}ubeCWv-VD<%5^gU55j&$sCNUDp*Cr@)y>si3s+k zZ$;!9sF9%a*`4CE?Xs_mJMqVDB%h0c8gnOW9yE`$187$T z`M=ndx{6`N^%&S=5w4TuQCBCgn)|rDeHT5&RbxtNE*r_V4m1M1`C@JW_7l;!eZ4Ao z7>pe=@f^u>iXE@xYC&<-xnQ}#P$|G}eYuDX?+vkNu>TjJK3X<{wWfTMFV|qjLAPj0 z3v!jbR@p#2FUZY4$7O}Tl8m=I9FZi6-FLz`&3+)TQL>6fnL&DK&kS<~>fT};qQF4} z^5FgTTYnbg+xM~C%dlIQNV3A^_4Us8Ub*sMexKcNj@h_{eUhu9hS0DG`JwJ?K;-IM zRIKgRw#67gQEc5xnEJCC0i)eom1@%gALT6Teo+xUGK7_r^`=C2HYhS}U(iuTd(%|h zIo>sOZ}n)8uy_BRE)@QS4W&L44t zn3MfkDb;tdkO_Gl6+?}mxcEq*R>J*5s5EwfoZ-jZQp+*-!Sc=r2EO^x6?vRq=6mh8 z1LW2T`0fW)vrD#ExKl6DYsm0l6Ot0AT&tsvVx|G9*&Ur=EXm1y6=|k;VGq)}kLw%X zvaxeV$K{=_f0jGOoV=TnivyB{{%}iT{n||Rn&iTnCvB3G;Ch;I`5i!JKp|TXPjvJc z1EZW+D}`lUW@EUBAu|`#Tc)?a3PM#)%_Su|jchEVe#Gh}PL6&ZB(3@Rj-i`yB{OCr z8|#J>3B&3z(cWpZ-1F&(^w&VKyh>l_k>4zz86o1KMuv z_r>p1XM@c9(avUAmWzUAIW;2#86{oEB6+H8&VN4K4>IQfdAt8L*^w~?!cihomFS^x zBm11_aW>{ibbZU_bxeG1-d({6<+1V@bteH#3#Omaoy%lb*&bP-se`#Z%M2wBv)1o; z%oOd$!8rlop&8i_zEt_0MT{3W_PPL*>@C%jw0l&ypPiX$iy{h-XAiTEob(l@D%&TRskOAijI7(W4+ER` zZU{*7#M)iT05dk#o8)g@J2+B)(nbMzeXX5h>9Olq;%BNdUF1RQ4mrU9|2F-WHilL5 zp$XL2(bEET@J@^fmQDC&@1g@T({LSZSSN~68O<*cpe^^nxIkJz2mfrzrXP^FQeX4>GO|a$}ULgKK|#dCD`&##VhG#NqXknNj|J zJ9NsB`kl>!i_*2#(4bA7+vi5JT~ZmrX=+)tvtu`+MVtN&TRD7hr*nn0M1N0DMFKj# zsyiKWMBHVE@UyYoHd$Y`0GhMC4aU#*)#y&R?(2)sCLj9E((EzmZN+=Dmu6W%|Cm|< z+a|^DFL=Zq?(;gI{v!wy#rL+`1WVHS^mJ)TwQ*5%zm0sfXMZ=xCH=EGvnG}4&;gir z{ExQn&sP|3)o<@WpFWw92z&C*m5X>Xc)EDK|OwP=i%p%YN}FQ`$?B-%lU%a_N8O{vlLdU4A0x zosxS@%1LAE=aKrLanS_i%Ez}k5pg&))Egu=53S4^cBRNK^(~$7pqczh{PaS1Bv4%i z^jaMA(Mr|7*lByzYeVs5|=shV1vK;p}_x-I{x2StdG|K z+JCX1{@XJHmS`a*chMkceo?Mv|H$wVbJQmmqiBJBFvGq>s$4hF$v-FS1Ol|T^n^%7 z?@?V$+&DSUtG}X^(2jAKe(jxWU^>b6EU&R6n(tySAlpC&_2KIc)Y-kPWbg9)Ve)xDaBI=FAoLu?c8`B&;&8?!e`|p8Gk5vQ7 zy2?P7&71_xpIV6CjZkMNS1aBqtvaF=c(p@_(?V4x%r7LSXL(-r@O{^wQ93o~ENCt%}W-qVTr{v|7hi$F|9H+9ivT zai_^4r;^3G$wtF?4_UK%je>^H_aSaXQ={WL0_G5La#Ehm#SLMu@LQu;k)w_0uc#$A zA**=+Bdd76VdHXsHtbb+z9?O@51g?0rTiJ$q$Z}l63STfrJuj##n=vs0O;fNQj|VF z2oUuIn%@wRy!N|Gd5TGgyeAI1A4e#G;tf?JFDFHdVj=pE_Ht?AVt$s6PYo!Zpb%xX zuT#m*$~9AFyVdGTCoYS7M4cZj^0Gpvt5d$v}r;wY7~7*_J~8(phX`g z4!1II^3hcvNSu9<{R{??ZGukLVu?pVq%kqCRA z_pb#0xT(NOR>VRIJi(|>YzO@FPNJqIzdQ}feGT>ywL3!_1YSBFX-o~%bBSS_m#F}Q zOm!98Mp9KZ6ek<4HyS7(w(eZQBB`iZ`i+a$dFj->x8iGdcJ5j;Dngr^wVA0o4wLdA zXW7uwTZF)p+476Q##zj$WyVAh)9tw+w+$h#9e1lPIr$JyID95hdykYhkrU*8-ilPj3!#74*MSQwt2q3{#&-{`u3SHhyeGVRYO z%pyvAZTLQk08BvstHvJP_>+aWuj-h}0-$Q`t7GW&U)ot;tAUXJFj!zG`*40V_Gkg>HrIG>%u#?V0# zq!IjgMNGqq-%eoj8BxQ=p{^NtR|NN~o69O(KuB zb(@R|VA6*lbsuRk>bQL#>uH~E7gVNfwc)^&i$^vt!5C;s$gc1Z)$*;2Flnq{oG}Nk^yC zYDEfQGbokVpZ;(V0V^$siN*C*^lu;EWBc26FP{iMs`2O0V#xAu$=o96&g^_69Njf?^lN2Bxk%3kswIrK%q`(6esjnbJy z-NQ*n7%}g0{I4j74<9-!bv4rjP#r5ur9@v+{&WBIa>`DBcW+Bz*i*^Ms&~J>dT*bY zuX@+Y+Qe;VE*SaCed(%6z4I0ys5_Etvg#7ypm?E1h3TO`s{{ajf5(3V(6U|%Thc#j zGewz=uLLbtOvO0_r+o(+mWM6(C6MFxkK1}qOgq`~yiAEf@-ZrgQZweQ?8fTUN8{td z>w>-QC+X|PmQ-*(r1LwUt=~rSFwRepqunsXi1NIDm+D`OYd-;C?!qXL&r9^PWIpRX zi|^y)=JYw*+RjZuE_ZU2oqfJo?gNk8pCj3SRHV8GX$84N|*&vH`?8TV23rYS~ zK60QDipRihtsf=b?9lt6Q+Z!wr!?+h`GKWm- zof-)-=+@(EEhuTJJ|baew$&F<*qP>DWj~SMspo$o_6z~5Bg}55zdk9xKF5zQdE|=_ zvR8>jDA;m!#$-1)z)VN2@(q%pTB!!*_EI3{J!03ubzEZ?`l%F84PEx}w+F+*)@lg< zbbU@xIH_#pxuECg&HY=%V|ilUvOGEhlU0(L9 ziwnoXotv%gQ$3^L%eWt`F?{EQ{P<=PLCtcsJPu-USXd-PX%v0J9VTa&3udf&K8p{V z=SnU~NGXKi<`d61L)A75;{#u@T->`dRNb;plZnPzzn{Je8yccvAo8qa2?lVr;9Ol3 zbM4`MN!I?1hpp6!^3vi3_Z_n;oBBcdBGqSiP?8{pJ#EHy*ac&r*E6T0-RjSq$veAg zRwFa@%}y)J`ux>oKCioqCn1euI>T8B#1}u`ph(CI%rW-M%@@>M-5^_?xU*A*Ra95X z40Q`Q?$|}uaG1};iU)KNGcsIO3Q&r4PJBw-AdY~+7t7_y6;EOU_G31h{)Ej6o|;5F z6Y*#tppUUuZ#o=fWTkcKf$a;Vb~X+4g*5P8#0OAN4}ovSULV?$aP3VS8p}#+x{+eJ zyB(4859lTkV3Oc^!54TRj+{Xq<1KAri11`VvP9_#bkh1y!c{qvoQ=P4lPp744-79t z2ZuDCeKm%8)WJ^45JTK?4gqoSJC6{oc1glu$Hd>#MoYZtO82Fc+&aZ!&!KD}u%i&7 z;TeSf3c_M$QCpnQW@dcH^1l7~L+NA0?=hi_KJenT@MW{)gZaTHI+n7td!YET@GEL< ze3r#NZUm%CGT|}0D`|U?*MhC95_^TX|1C0uM5Y+m7JbkYbI^Esi}%;j29~?`!0l}l zXakk)nOn(uiP06s+KLkkqkj8QZBgFH25=aCrn&lFU-6}=Le(kyp^Y|)9kAL&-kz)gRA@>JUSy+*Im{;$nMGQ+JlJ^~N z0Yq$zSum%$IEiy>;n#VIf0wK+wXewV-^8>x4~DV$M9Ke@^h|ALQ|GWY1%QP-oyfHR z!X>9EFDPjLp@HaU)p1JXehvG$xK;fus^S~k+r{w(zs-2jb%FXoMtzA(FZMS9NE#Pr zA@6lw3OY5>2#NJiabtduUcvG&y?$<3j{`rQ?j+@E_)Yz=a>2BYuucfz>OgelPc!7@ z)IhSm5uC1rmukopb+4ZQ!)8860Z_kkyYC%1OV3lA&UCnY#eZ>qgB&*(0U#^j2@+mo z5j!_zC-2nSaO>Fx1B1banys>mcKbz(sKz|a!vZR=PA5xNd)W62&P8r7tNV32uP)aE zD$BPmn0Au?WDa{iC5R&h&@UiGO~?J!g`<-x!+(>{mNb4w%4g&58Gl=7SE+#B7^dO3~N zPNTKyZcJ*J0c6wbS=;lDu+n|h0}@Yr^ZWgeF|H+oTl@1s;4fSfg`MI(0{3AZ0kiQj zGCIuD4WHLHLnLOSA5F-0nEIwrIQUkWe+c4POdBDC0<+c9YL{j~wpSyG4Ryexj&4#R&Mj zsZkjt`=~w>1#0F6yYbTOnhbh(EmkIhcNIn*W*3Lae9l$6c?U%dGc(gEyk7Sv!sQ=G z!!h=*Ld_UTTB#4;r|m(#Mr5+oPbW1M^#6bphOgPs{Z4lIOAX=`^ePKJs@K@xoyaF? z*qEmEgq+Kk>NU3usSpiSl?;~bu@j7&m&N7c%3mSRr9mxl;ci0vB;E|`eDM&)*+Ebp z=niylzW#f8)fW)>bkkU&n}De2$p)1`@dmRk0S9&+RYU)%*30VwvW;cFwYyEfI=m^WNCthQ2{9~vipTVj5*wYJ zl~r%nbE9W8`2DyIaGy6ciZ{lO$MWCL!_Iw3h3{^2oEni_g&l8?DuUVdlJ#Y@w$h{S zh^k6T-79uR$!U4FZ;GvZHEFpCj_;(Rq}pXFyyjI*Db8xv-F8bJ^y!2hE_l+q4#!K_ z={diA5p{2ujk+qPjGJd_U$)m^(rH^g?o=Q+oee?!nXI3ykTCc-ahnM6BN5W|vUp6U z;u?!}D{Af6?Y?~ZIR0a#{^Cy5+kNLo;oc#{I;Yn-cujQa&eS>%fG3@SGOyjgjZ#33 zyu*#g%R6ha?{+qU66?0pOPJiYhKH~g>lNlz0E|(qY6b@ICR0idmz&*;=QgY(al%@K zT1i#adUud<%GMwQMHmeq*5H6zh@xSHX*6YLIPdh4n}ph}WJ^vGI_qAQ#9`t!(K``{ zhOg04iE>T^VXp;^$$;f97A{Y0<%JASSC0G6Mr*V1s&0SrveG)tdja$iE^_?&u+0?&zh*0E(t=4#!L>9^Vy@Y#E^Y!MROFK)NXU1TY; z$V0AwoGLn{zbh=T#u586;xF>RnWWj#6v0@Y0)a#chvjlB5UuSknpYhT3deWV8dK60 z?Wt&!M+t!5T)|WK70?w<&DJD8Rx@8IYaLznWVNCa^4YrwagkUO-CV;5H{fK#xHo< zmxi0`>YPPk`EuG0kB=-wIfm5V`*=6)N}hWk&Ks0{CiOOGmP?c#NNu#Qt5Gj!DHWOZ zJ-Yb9VPpKs>wa`5e0EAUM+LSNfsVspJtTbjh3oV1So&Si<%Vxf(B&u-ET?g*{0C($ zr(7Bb^q1r+;02oGMQp6EH`W_jzB2sQRO7l^Q2yz5E4bp>MB$`ToR+T6n2&l#4xRVU zEk*|2`s{9>(IRChJZiiSf)5pTV+#@<1IJ@R5^?7XrE96hZ~%MCelJ7KfA$&f;r8|> zj8q6D0xw>nRnPrs0ZWE3x4qZ2)xyMkNJQBt8b7SROcoWh%Qh^%2T+LJovno?PwSD8 z0Nz?&VZ{Um#c;H6%amCcySs(?@^8#i&`!ocbYe3bQ>@#SnLwLe>|KLtqZm$}LwoS&U@88QpR&-qa zF8|qab={pZ?Mj=4Uy^D;L5zF~3bbu=9Z<-sJi7uZKPMkm!NagnthPIs^&^C|qOm%k zI1VNjba>Y&PC^Gt>P_U*;6gQHtaG}YbVI09HV+1=juZ45_6YEv=R@i_ty+(I*s1S_ zeP66obudQol~mu^`f%sNGk>DeYHg1}?V?a(e3JEwWzHXQO`^%5)=Ys?jsL&`(t$O7 z6v)#S)vUGdvQ_m>8TZv9L&5GugF}w=4ojRwt2G1wYzd~+hV)8PPoK?p{5iE`9)Nga zka2Tx3c761nN|pf>P}!TMzV3TrU<#gYAl7p_(^gEaCUkgGSS);S`!@sx0!WoJWq^+ zTAR(d1AUNEnl`J6g6&0Fnh(C9!*fbN)kZP<+t=ub_+@5b88v*jl&(#arv)=&j|!QJkB~3@34`dqc}HL!+nhM9hK6pDArvg@?@#1@1!03_Wp2$)yIEm z%GFbdQ~2Gs>U?H(Or`JmNU^nw7VE0)D=AOo^31cxy2Q!i8dC)KaRLl;-US#(&BNWy z%*|E`JiUG%&kdT@p{{pz%y^&IZs_79AcO4|Ntz9o_6(W8283 zaB5@PzurZetmv5L-}0_iFXg=0B=ZGx7gy<~wA`Hpl|@OLau(EG&)2hm>i?+GZ>v3r z*FFi0i!N$rPRk;p5@7qh-LQW4R)sgd&t_%hQ!DeTMe)vfff)SdpD7>=1q*nD>eZRPR5Cuk?TfA3rnjJ z%Av3Ig8u@4Qt86`00(ytVi*?;Q?X1a%Z;Q2P5B^8NMoP-DqPj%^CA zIj(w+*@c)6!&*il`tk8bZ|gDkG6x(FR)NoJv0!dNh28e*L17(r< zY}`JuT08Dfs_VQa@yvUvGvrzfGpzUcNtn%G&%bxu zcc`M2(OhKONX^P<2Q|q|YH)>W-hY^P)ESPLpS3KdnR~HrT`n;5OI7kGCG-2VQw|O~ zK0ch1ijP|{ViL9Dbjr4wZ(RG_n*Z6?bqfm*p8+feZ(`v63%j5B1tLZE0;IzDQo|2v z&%8&rlC*kB9!KI*%(4!S-$_J7KC?lseOISG{2nHIM^BeAh~~l)8)UWpf|rCLM{Jmq zgFH&+=Xq#Ma&%F`>)>x^nlYs=mraNIzRiq<)z=HntDZxb()K^fyYkmo)<)~=xm_x* zZf{BF8|kOQ`}r>`cD)b6gs>SJrH?u3d4+ib!tcMZeFdZXK=j)hJz{X_ zaZ57C169J#b*I7!*#fJmC0Mw9(UCb2SyGk^k5QIA$nYotZ`mxGqiRAXBYlp4j*M*>1%^NHe%^0IaaTt*1P zV^C&!%=PUJThj~gkxU4+L`+4Ru*b!_3zwo3^^l6r@We8cp(;4WVROBBNM~%GvvQ^= zls*?V?M%7V_WA(t8(mjt$9=N{WaTz?N4+4l-FTgntAav#t>w`g?tKF|J*6V{QY`1? zt>mpT`KPvvRY%}`kB+b?WwxDqg*%sMFvP3_$ReF$jxke7yKa>K*<{ALwnt$zUkfIG63Is@PsB+k=-j^(P9K@fqj$n^5^3<= zxFi!wTLl<96pMoU>-yL6y#4wYdmT{PW(5?V<06~B3t$)Xsz&d?I!w)VxQ69ebC=dl z6^)hoWEuLV%6F}qJP@4Z-wJ{I@0hN;8Qqo8_sC0Li(ji^aC<4;b-QCg+(y-|6MRzwW>KowR z&wJkYeDC)?=XcJTf4SG5tQ>R9d)(u`uPe+U1<#?7Eqi(%Y%g+evU0m`enh$ z-a5Vlj;nRPA&3O|ZYQU9=t&ZTRi*M|`iO$uZGj!{35-ej)8-t^Tn}k}gy!c)%-JCJ zZ&j&qdKbBvC^kW4K6WA%$|N^BTwhZ(sg^j&hI#j@94sy_g-68<^zkEHTyVR&e5flp z;lo~2E<85pbvn-xlq~7ssMp?@+LJ}tr)Zgel(^;cGoPk97|O$E;15w z=0Xr;apiGcAtwgoDD5Ky3vIb&ci9Td$f)s#7qb7QSc$YEM034)<%q7Y(0tT{bAltj z@r#t~M2Tu1*g?EucT})?fIwZ(&{=}!RZ-}#w44qc6VhKYw-+50xS+cHe z>!by-l@;YBD+d>Td5^-UFGi}-AAVgpA4JcYHa0M6u)XnH4OF+Ro`EmL3Osisl^l?p zncZydSZnMU8Nt}h8|II}rigE}4O&elXc=r+Oi#)j$yW0`jj_S*XEhy(KZKte;YUEN zEGawXa1C%ZZ!3`dq8DAh5*Kt(x+V>lRla;c8LHxYx=HlpnJeK-i3{AFxBO2~lGqIx zcep`bB5lX=a2qj_&!vZ8iVYXUkgq#~TRO0+l`>M(1rwbN<90^6?g$0&h?~j^?2$UfqFlhLoF(fY8lvb7-KpBy=aRn1@xCA z3)cG~IbP@-|01Fskewm(ImH(%V!dui*}qWQ3l+)G6%I-(VlAHoMG;&M7GP+A2~*3E zKAx4W=&j!TTPNW(pP-G&liHE8vPG(4VUEkSYI31l*6(+4=P$~|x>?^-I01^KeXOFUAmHYNwaRoaj_aXi)MA$3@_%}o2}qej&@$#-2t(2>9@h> zl~=`%r)7>WbH1bYKx=H$_KgXW=IN98Gcyg23~90e zMvUJsL|KhoPLI71c582bw|LbO?R zleq1vcnBZ!p6l=Si?7o1!PX9f=E~*G*OD@WE*!^}!FtekXMz@{I5LW-jDe@OyEtjv zdb8ZbG;-lWaO-pc@lyCQd}h#5ksx(zXMWh@>vrZEfz0W6T2-9`8oI+-K)&tPZsD2W z>o$tA9LWGl65^Ju{sfpsA1{TJRi5n{l)z~mBWW~m78kLSG(F?k@_7L|yuu2nXLWtM{w+?l@X?Q00rQE#RV#8X`1pbBk*@;flt(_2F zKYqN(u}|HbX5kb(s7__JvqSE<49ryA?{dC5OFH=J`pv+VR~6}5@h;H`Oh>X#K~B0c zr7263(ZW+xeZ9<|4;N^UpMSt1GNTYnAbi3*QGU_S9kZRe7pQq@k7Zm@HG5e5b#|_{ zBD|vKW=B~q?4};U`+Gw)t6}bMaXD58V9byFG%MAVX|2GA!D5L}+`koM9}1r#zX#^r%xDPAa) z-&w8F=%`$yVt%wZPJoKTZuh=%(8D^%sC{sxtlTS->=6YEwOL$drWw!_b=2PO-)tOZ ztx6w_4^IODD&Ty zW^lI&m5iuN4e*c7Ni(^@~y|q6jR-npH5Wwwx)Gv_`Q)03rx#hVtWYUCcuMXHB_SZF>7(Twv*tp3v88=d2 z*j-o;#T^>0DF1Ze?xV#O`8qXgu-F~JK!9aDN`IxXlVzlcw>3xB##K{G3s(AgPBP`e z;8dci$#}VbzIFY`u%<#ao*Yb3D|>tt6xHb@RQ?Qsn&z7 zn%?)MN@=R;5YlEG!Z}apPoSrn7ZG9O(=eE@LYgH2-t+!==XlpG(CVYd!+rx95)95v zz>S`nB#L<+DLL$LDyU>?_QHj>X-M(5$yXVXzLa<1Cn@#EUgU(=LA{aAW$ATGs%qz> zRX)nYjHCgkud_8m1g{BC_d%OuiTUolDqU%T20v3ibEVk}aoyXXK)-%niRkAvdIjYu zwxg>25BTU7R-3}ZKS#R36jxZkU48e?GXI#~zL-8~wfNch{Kmpz@9%~pIErA%A+#7D z^}0(83rEeE5-H$w8B>^mpK*1ag4vJemvsFiRhemKsvYS{4yM7BScGYeF7C*On5J8= z4nAjnkw{F7yMjFwU6F8DdL|^gBxDX0b!DYe=bK=6$0cuT3uAW~Vj9rbYFt^C{ehxmo-XzE1c^O^&NsOX&1Mt(twbW=?D`A2p?ax1V3X{J7#;`l=q29Z4IH z{EsJ+riYVRq09P)YdLtvCWlCgn_H#nuVdb;& zp6to(*ttN)!SUo*UWOZ)1&L%mea$FFjl4q?1ZMKz`Be_Bp#m0+fIC%#1BEd)|JFD;_h`_#M%74XXVnQ!{r>YqGFzFJtd0=vO0!)+{VCH;YU zDXiAP9T5fe)wuEGj|f;#Yg-_ED6_C`QziEc+x{tx7oJ10SZ~!h%wpsT>7U6m^($5O z^f?AH-QO*Fy`sG#L8q9>f7NNHxJ@dK8gs%E+Xk(LegNgd3kh5DnTCFZIy)y-m=F_tEvmnfL!CZ zX7VfxO!al7lAxeZE8@ZtUmMLX4ysu5jA2M$0ypY~HRs~yAjS;&X6aIPZ z+@e0hs&%zN2QKL`7uui4t}3Ar_T7w`&{a{K-@-4uzLy>S12w+wQ^yf5VL#BBp?tC* zLRZHt$c6UzJ^Xwx8`IH^cHx7B6!RmB@`;&sby4Mi#W8-MG1MP}N8~_JS3{k^8C5v& z0S3J^U2US}!N=u3?nvcjG9E;qzwZt%3^Uvyn!JKWfdC9dRz1wLJ?EIV%(ghcZ}r7X zUJ4YUf491!Y>?$x*elSD0pGqf`MLs9$GhZKJrR6F}*cb zL!L>ukW-oTWw##VlNC5uir83}9D&&Ap8;rhg8`2Bo3{Yy>BXZ7_&l*4Te{mEndieX21EZ|(ejlKu zq9yRc7PUr4M_(YeJ%dogY}c9ol*MF#Cg%o37Zh5J)Wd&HTRCu)iwS@4NY))TX!r-a zAqMK$UC>9WajmQ4o7lX0L2;=?vS)2}xXlF-5iiNzyF7nYzed(E4nTN0XYulCDPc%D?~-g@DP3rojy zeb1qAb>-o5Hg!h8i~T4g(mORO*&A@*Qt%tw2XqubgC7PVmNq)%tg;_D8#+MCOaBn}ed?pSDn+EmB>B)g zp01N!iZJg1?NBfgJKwfoS&8L@z@ABYddJekk_FN)Yq zU&HtG)?Up+JtCJ885z|n#UA}@;u$3~GeFXoJ~CqKBq}T%*T0sLo?a}MC)32u%gaE& zSK$0aRZT5gHTntn7mcc4CU)cbJ=>i>jP8d?a*ZV@mA^#69j>=V$ucI1#6o3%x&kln zO?PUfWV(7tRBp>GZUhjg5b;V$CPr5F>+zM*quVNbXpvOQCNi7U(7bEP=fO^azg~#* zy`DeUiLJ;{E;YwI#k97z3hqF4zyMP(&7AV0A34Stj;}5wifyig;qvg(qbB!n2 zpODYKk9XZ!KQeUns3sh(DGSusv}ghNw9$pI+#FS`Irs`1n8%!~q@LmHi-Z7X$%N`9YWkz!?gUgs-h zaVC?LZxQgLS)tL{6B83va)lnAX|ya-lYU>{@d3E?tE5-xVSK>jZev-J<`5nebHYgu zEjP*NKuZ$IU|e}=T%MEZn^T+KPALt^G*93%DrI;%4hY+ zkG?)|)h;QuA#O<(cdS6Zn;d>;H9dIeah5$-W}qe}6rxo#G?_N;#EQq1J6O<{p)WuO%6FQ;ui4bZcdCHVr^3m}#ACX-PnNg3 z`>VLe+_9UQB@lN*gpWQ$a=>9R8i}&8_QQ^ zs!f-D53S(VjE%bfo789ZqD<g{mGO63d~x@oJMp`M(hwK~OgLhnLa}Uib>M zXL|ct3M`y#or7tj^T&F?@iQ@eij|ARoPTlw^T{7f@x%#}uwlek7o{?U(k*?1-bhEw z7vt&c$j9H3yyX`6Y1TP-T)*teZahMbydCU<_r7y}-(APTZ89>cucTYYnqo_Wv)Gud<&d}3D#0}CV$tzJq?po8_hVxBEW6!AeB`Jc^*|~*LH)B zKqtp0r}a)qU7F z?@+bw_yt;^I%?(IGGB!oA4+zu=Hz_)#ktEGy;3hL!SLy%62b8&?P`3Etk0Z~dO$93vuT zO%>r!_VN_;qA|czzszCgp!AwzW5kk4dG~Rjlaq>9j>y5WAX8LYDc zq0@(u#6&v9w{Mw6Bt^x=yOWUyUoha8v)$^aI0##il8}TM1V0TPTRuX0c6@&qd>7LM zjCXqnYX(VZV==|HwgT&U_3F}fXNqYH*AAXz(dLT1rerKZ%r_ zQHvo&W8hnLhHr>(vZc~XyoluJfuXVE&FLC7T5OO)CW>AC&Fd>cf4BoISuy<$T5*2u!2$jEm6ZSi_DdB;;o)oGDEq+k77;AH(B+ zN_i13i9r|DrMEy&Ld`kNckF%z4KDvtSI6D2Q3*GC56m%zGW&O2C)}Ez;rGc9EQQtI$n_;3Po`;T1_Jp;cn=o?i=XG= zwzS@nk&&hTX+kMBE)D{G&^Le|SyVAkEl#q}ymNHLa_ zbd&0f6VE$$X*eV!OnUP|{Cn!vCCr23J0Egf@pw z$4GN_|3Dug;Q~77-bksSlNvcSJAsE%DC{<+pZHDBP0II(YU?q;z$`ET7J|MHW@;*N ziAU91A6$z?tWPIS+(>FFw#F1brfX038gDkgC_8+EswFpOJXh}sNXg;vj|qo1fO645 zsABHq9fbUjaV?I+UW0d%hsk17VvUg!P#CX9sJI?>1A#3->wVyF)wMaRT7I9waIF_%O00}?zX&CLrJKTiBlXkzt)Bo`wT&BZTkvWZMYARP(0IIHKBg!$& zzI|I^XnVdjvHoR6`~-JAy4Ju&!04tbnoOHzAEwxRl>BzwB&c_Kv}k;ycS6DPvg9_m znu~F$g!#)RP^r3K^biOJ*UMr0P?<{s;cxnekDD|=_#fRx%6)+^m%`ZSX2mrpdyco2 zUleg28%bFq+I<_RhoZkYgcOIOkUbPWU7iy^32}c*hHZl1H~d>>1!;m)h1E#wa)2ny zm~-0^LpfnAVH~tfGUW&eg|vEvXt8W5 zivAGSs_Ybww~Y9BW$b-(Ot;I9SN4?0>7UEuHxKPRn|$}}6waG>_n1-|$+60JO& z>dGSS&MqvuauBD@;3=iW2DIS3Et&3K3t6B~opxf`8Ou89;*SD`wiFQxcNF*a^puoh z{R>``owi}iuf-3{@;;&0Z|n>|N%txVe(!o1-gAD|pl3w-9Ene-=;H;6st6-fDTTmW zR@QV6N-9S0#MoFICRAkC7gEEaXejVv8=jGonJFP(%LB;@;Pgp~QnlZ_$ruoKEa5hR zG!Jc`Y<+<|%r`5bc#y*VO>K;AptQJL;)i(dNBzY3XyTVE+M=WpUCbBU5L`V*9NLAPfCf@cvHGi|Vm{l7xFt=z&jTtrEyiJej}85eV0pyebKHWh@W_Rx zJN_`jid}V71Sm7lFH~yHC7s>pLO2bAch|Du%o4b5_ zZ9zQztckYru@EeUAsBiYnii%BASO*j$9}?xg#& zBd>n5y(7lV%d^38(Ou`y3T~)UZX+({#OAQL5KIbEAvL%=5AIJEM>SOe;N3hep1H0c z4`QF02nk_nhjk>^rAqtolH8{VWK25Q=i`2o^n^nM)uw)MG`v2x@?WV2XDh#c!zD}= zVq$E}K;gb_6Y_)X80UV2%|mX9kwE^*e)WbZdp>taw<=-S`o^n+bK4oM#Hcrh$*Ju4 zK~JPLfgUNZPqNSNg@2p1V=+;s2q`Nw&g75Pkgz0^`&7uzBpgo}1|bba zLt_*F`XeZ)A~TZwiP=T}e!wc(b8Hzs{ zul>M*pYt-TF8tXYd6}8*E7qeU?D#CtgwkS{9R=vZx-54P@1Lde2}pUVA0qvoC6(d$ z2e#ETk*_WsC?7rXiwy zo7`()0P7fN^0avB!|*jICNVNZfVekob;YkW!1sPUhX3f!;OFP8dFa_QvpkaDdPSrN zxG|ts?_9~q^1=W%h9Bf4#TvwS_tY+rK?aoYWwC5Z}8EnY4De29%mu z7>4Cjn}a!BaHfZJcpS;1^_Sz)J8&V0OXlN#D~}HiGYZ`||L)TdqEW$AGn!WZMJTjo zhL_6;xQiiwHwy9P9hU{%J+tS*-CxSDt#uvV=LxS&k4wcoyTMDWpaEpD#W!zGBH)g> zdv93a|M1@ltHXssZ$Ja01`FNYozkOUKvNQIQik*WJ3pbv8Cd14C{>ntmXdP{g!leie@0PMCD9T7z{T9@B_J|C=FHS7P7jY5Wf^I_%~|_C$+y0-^_|;aL{yB8 znf3hBwgWKM0MiUNE!q7psmt^im%y@Zfav^(6L9Xtgo=^~v%q^Z&81q9c-zr;BK(c8 zF1ceC?`xFQoV{fQ;gxRxNV+XLQwzA4pPHG@)lWkB45HOzffDKCN;~jQ+b9KM`nL8H z*6Z=u&8Pj73jm*78;u0r(=%!uq#j~1k|4ZYjTQ@O0Mz4g_#@5-z|5hHANAM@Yo=P8 zkiDvjoi-;^zG~0`PAMD5YrBWs2}hF{5sI6_i{R}!>36Rl9C3M`;RIkVuQtD6A= zx?`dR{Uw>#Tuf_Y5eQu41eqiXdxg*nMFgT*G$n~)q!D9<`u9guegU3Xvo$ulQ|x8O zx|cT%mWu{fcs|YkcFu;vbpbfj7If5ACI%q=8r45@=dfA%27G2$!}O1gQvnTriu`(7 z@($auB4i%4e&D%wd~V#H41y>SVhs+B%{ZD&_P0b0?EM5}dRtiEFtm%4l9z0K0U3s7 zWnN(kBqkI{IT|fpkUkBX(0t8brQ&-^U=6m3yQvHt)kU{_EZJX*7bc5T0 zD*Xf-UN-yu>+W~ST*kZ4kx1y08YCOt)<@A1=)JfDDX!%(x;~IdJD>{h)b*p75flKO z0!Y=0d4VKufoum0z4Q$?MZgdis!!OP?lkKV5efGbc&DAZ*qMe!>DTarPfp^h2ASbe zF!%>@OTGmdK)!uCcHUY!%3f|Q1EwfyY%vSH)e<7foY-yD?_k83n-2_asx3Kx?5u<18BZQMMdlC=29k2~>+_ZXE3=c=^Y8R=i? zvf^h+*g^BzD`+U@6#A$>cP z<)ORzt4+bMb(xpIxk84faM*zstY|vWG}tT7ES$DEYEvDjVa}EK?hb9);yu!UY=3 zXK1EUC(OW^+3+q3HSt$4_91gB*q4}Nl?2Xpg>a)SlfgORvu_~vTzc7as2pPDVDT7Q zdm-|I^9qka)}l|y_i1lqd+S8cK>jy|sJzH9+H?<+M($Fo%*JtLpW?-$Bz- z%}O~~O?pbeV+LyyK!+@dq_${NuPFwoF@BLibD|KlJ+WK&8L72sEliED=3G{NOc0RT z>XRvn+}D?E#D9^SHbxOOwNxAV_2tHz%xs>stK$w38Ahvdff_smm3FHqOY!%FYCRY!M$4nH>~rHw96)L z$wX7T4&aJ}H1l)y5A-8Lo*Ko%cKlf-CuS>P|hc>KDPh)K*SHQ{^ovt}d^tqeqO=b5;`QEoyMi5B@?L`2I1&wxHHRDlRudCG67)y;!f1`uSYzKrw?fa_7D2N&%kJlpTX?g&mTV0IwD~+R8>QrB5ul%p z@oWI)rrUOZqbXbV=3v=sG6PRV0kj@(z*3#5mWNm%j5 zp>eb{=1Y25dia?6y=6#!KdiF#TKvw;vF-+w+cSc3|A(k;if@pPlWxFbF8pM!?u+|H z{?1yErs?`dAFp>s5EenPh@Ujip3PE}?8VxLF$<-mKLco<8`Yx{7%~gh%%V8*ItsMQ zYWL66)TXY2czC!@4&zyMHW2Vq0zO{s4I@VlScC_Z(STIH4`DAn*v#~HQcx*S%Gm#@ z+-Mdn!E@!RF8xE`6Zp|FaWjf8f1K;Scxnhrvee@-01C)BEq)y)S;=#H@WfhJ(6OVub zN1lZDl8*FEI_qcI?x}_k3+)+llkteA;9eCS5yLO*1(dm90vP$YP%5s)jhH5r<~AH_ z+_k~QhA*peQDWQ$1xtO-nyFPx35-YIAW(-~!Or2QoR$JsJs{?lZ}?@uK}q3IAY>q*O6Fc1h_Jh) z%g-c21NNO?!B(3^-Qzb6;*FnxphG|yd3~ZCSd9L@z270b;F99>QGFuboEj)nyg1KR z-KJ8L&3^y-8;}%-dHe(>$a=Sk-;g^q4Bsv5;%=`nGI7U`adeD?{)>QiM87YJac~LAp6vg7P#zA*nwMQLPK}sPTpet z)4RWcgBt}4-+A?7Fp@u^*G=1*0`jhg8*D!U=#1|(5}?lKtEpnLMD}m6fdvj3{QH9K z7eIA$_n+Xndxk&%g8RQf?r*>Z`l&y3O*jSYyH&ED{_1^};2hub_$eIZ%|G?uaLGvj zzvbNz|IeJf?`F*sGeXQN%_d(+yKJ<4|4oe&M`c@CGjpgq;T9FJTeCcY+dlzr?tMbJ zG}0V?0jX3P`mnChWow+fZ%c*&pKj@p%w#iWs(fj*WqVW};8=buqv9aElO_qm$iY(6@uIl5Kxo}W75=BYs~(mauz|9CZ`^McG<+i26?|LJgVxTw|kU5cYYR?auT4HXb@i?HtErOt92ePZC0zI#my*lW`9 zF7W!=v@^=^^F;W8+%x2N7@Y>yWBwoi`Xlhb-SNMZefjeY|5M%B-w*$L&+I|(^Y74c z_jABVazXre>A2G13MiKt`VU?}&;K_mcRvJ>a>L2~Ur4z+_ZcNP7iQZGILOccOv-gY zzyGN7OUXp=GD?3)xpW9i|Cy94;{;ah5I;L-b4q$yM{MOV-AO-n7>tW`d#27wJ*1h6 zPSIR@e`}_J`f{#N(sY5(q=|DE{0EsYx&n6|Wl$yE&SkjB+4U_on zt(G9PWD0po8JuQ6pPb-NWC3N~cyl4+-oB{e0Be1%pE)z>h0D`vmkovpXDYuM*(hr^n!~vMjYR zJs3Z!)R#TbX-8J=B$A`GS%sk&Sytml>B@M;0gi414qz{`yC2NVkd;Qm$dKajf>24*0RPUrsN?*Vc{6-b5vJNZb6fkq{HDvA!Ov&{WTmGe%r#D+mSr zr0mzafLvgjY_ZRHwbGV{jY>GHt#R?4A*|tOQ?Q6|+L?Ra>UR*&^cdajTl>vu&|^%k zbhw_>aed_)m9O@v3^958uFae=<&#XV$%4CR#$-=sSWV`Jb3;IEW)gdRM{Txl|C*^2 zKysKa^dw%_6Y?NlIbPXr-VTcga^nV{e+s{CxqRe(=KOq}?=0#Yyavv0^i9CkL|ds9$2B!5Q?|*4TG%Hl;n`c3I{#n2-jWLm0|ZF@u0C zGnh9Evm*f1jeo`uSdvqqZ%zq{lTIFH<+U^)J zZx3k{+nfPx1q7eR!^eP|${knnd1>-gaQz72Kr=J4Xf;b!$ioPDZ=zyyV#HHE@q!+E zVQKsrKvenyJBrT%7zRIiLYKW+P?uNd+{>BOpR^6FHk2|)WuboQUpQN*V`0j-cp2iS z>ST8|HaeQXvpWttYS%Z0M*VMRDvC7oP??oOSkfnjZ{F4b))Y_8X?g}XA}Z&XI7i%z8nn1lbFjC2t%CuwI~@7W`T;!F8KL+%w3= zmS0qMNY%N!_k@VJxS|vu4z8kguI=SF?FECJpO~KCLet&^5AbVh)`Pxa;j6cPH|Eod zLkX%m<;#`Im!9CN9*S=(t+n6Z9IJN5>t`+7pwp~nHXJM>3%?(u?=C>WcCy5e;pN!& zJ<7_B{6rk`pxV$RuILf@;i6XBlozr&^xh((;&x>YG;&6Uy29>Di`vxU5&;t73_gWH z<}M$&CH3?Tjg7CF&b>lHtgOTVC`y|+ga(XP8mwV?AHQ1~1}18G^~t5}4n`hNKvN9{om4|ts6zQ@>mjYLRM z9ah_EuMMpm5KDK{Z&HNx@@)Yirn2l;zItt8iGaF#mNMI3^f&_=5swVkm|am;G$3(NPu>utK>m){EA@b5pf`!#gNW$E-jeXu<6nrJ{cK>%lvFxUN(@wSE{J~NV;+q1Jh)C~d1?t-ab#OH0Ley5oJ z)bxi~B_$>6MM0-=3T-nzAFN*gX&|_V?m+~m!gTg7a&-$<8ROR&H9Yg0E|!J-*d2Et z!(%n}sxf}*Nw1)tKH1~>*a1rzQyK#u!{Oa?&o*C&bvM!3@I$H9LQGNcRt!uV0e^FlsDvtOX&stfWjzT$+iAAuFnIrb+^_ z6Edg7HNnAZI+Lm!7X+z3-JWY(J1~@vQyy&UYMayt&^~2aHU1+kyH6mW8s*kG{ zY2E?mQ@?O{I4gFpE^GLhnZK;juN4^@sZg|`A7ias9FZsT)SfEzU9P3@$i>*smY^g| z*=-EeEd6}Y!pJzZagC*{HA5x4a#R0=CZ;yujQ~xIVm(30KF4KzuBhse*y1%6IVT%i zB>?`1=PKmMU61FK4l@n?2_Rf3LE8@maMgLb*6Ln&Hoh5P!1O00$|o=N!z7PlRXTqs zUoFucPq-KS;=&uB?)Fg}#iVxZ;jc2?AYhisV=KbN!L>6Q&e1PbvNIhQ7ZZh^U?}HBR-L3EOV^+ek7%d~=cP1!Tk1by$J|)pWUqA()>E zp;h>}SVJ{}cm!q%ONK5Of!t__W5dH|n-le*b2rC0Cy$jT>w}-*wi$u_?j?|=i(hmC z_teN~H#XzQ_?h^ls6M4ag%zI%{G1gVq!_+qW~yoU*JZy2i&EFPpe13+>}@%H0Ju=tS>3^V{pq#pq-s>5 zrtL4A^|2h`UfgnXXmznk3sSL)hK8e69w`Rmkp=T`on4W6eXZT@CyKW-<$GvJ!ySIq zS>@JN_GUxLT}^2S0McS~LQLF($7aN6zg(r%t474>^cw=H#8XJgm`zH$}GHRwZ&rt!py{v|xCH>zGTXUu6 zb8_4vnLmA3-gmbR$pv%3-UEmvpY8lF@*UiU%a_3&HU$b7vNFkw#znhO4B}^ixwXEb zd$**Sdj&w3SI&04Dw6+YX`Gz@Ltf=PMOsv1+1hc!t;_HkyO>g`Q-LIPWlua~cT-=n z?sOk?_EJDdkk>g#`@Z-BZa<>QRS^y%GqqF~jVzZpMsz0V&q>$&lx|0n>J|#1I*NEo z0q1TCKHuIm1F{APXB5tZO7DYqIBj^aY}S7`o{M3ipx#>;=VVN$7UH||$(am?zCq)D zk5=Z@oj$fG+WRrsU=6PhM{rbKSVW?&7GkM3nK^qy!05|;k+^-LIEh^=a9?-<_wG(G za{jV4hvx9t_9#xwC&i%TT+X>@<8{n%!?&`j+$W-1Q|PLR*)9oJe-;+|c6XJ*E1lLV zLp+W{^=HsFtOxhEcd!Zk?f>R7{?E7YznCESiu(xe+yTHJW*X)V6`OLyPojD>S)Hf2 zpAapLq?FEb+8JtN`Ls;dte!1+3YS>t0D9C~u;$fA7Q*04=WZx3&*lBfT*eM8R1_YZ z9K+nk8!bisGZVwPj7+zF6?Fh?4C)?-{Yg)6{WRK0foA10WMm-=0w|%HmA3q5Yz~4c z04{R~pGSAD!P{^4GOzwpM9J+~_N>j9MOXaNkZXR^ids$Rv@*k!IX2&Ct`{6Z3KaGqI{RQFky` z;x1TJix~UGjJMytk5MPE-5md7 z$)`Z2vZp|;7w9%H6Spqi_$4HJc&o@q!scpD&yE9_PgOB1oxt>W>3DSvrk)eriR;dT zmSOTfODlWI!jSm*ZSR6DY9hV>!tjIy*YP=N)vqNffIH%1ssAK!yXbSeVicBWmneYT zQ_K0tg#w=4Hea3eL3n8R1rv6I8$mZD@cerfKywU#uZTPyc;CXp%2t~e)0q!`2oCh70ikf+^kOBxF!-^*Bs49}9OwEjW zbRje#Xjxj+BI2M6$borNJjxzCZa4L-!yY9!_r)#12(w?V8Q1RhofOU`6oN}f`R&8E8 z$dZnooJg~>mpTR9vZKR8sM*mP;_w|vtp?_owYj+ocpy%zd&6LzpfGljJ^gVREp6xX zj=Wr0|Bb7`YTnJ8NW#}`H=FfL>!X`#JXpn znb^v+HHT;0A*=nK&Zzj4!d~DC)~IrMf2p*SK*i}J_`N`*(FG8t0NTq})b}W|$JgI| zHbpYaDy`jNYy1QtQ%6?+AX6^}1|N-lDW@8RfATG>NjfNz-TKG$@J@7BXKp0Bn?FRCOVw1yJc3xZj219F^s2%f-IXtCMG5~Z=IfJyuy&C zz^>GT9v%lAFD!ZYsWVPP``m_t!*T||6$c=YGtTS%cQnQz^XnQEsHU{Dy3d>bM2aL{ zG(`JfMIz`+LXyc}bgs&Z0XffXX;O)S^|4(56XVdCIiKaqaUcPny;6ZjAQEMjYONy+ z+0*=a9dt1Ym%Zz-EP%)gd>9lx@k(Fxa*UwP`E(Z6VX(K?n3i}|hlBjNz%1vgJz=Zq zbb_3F!jvUkh+kzN@2@bUP>M zx4AvC9DrEy&T_tV47zUmf3+Ux-8GY)@*jKDT#$+J%F9`!(UaCLHaA}aDl?XWfD-8z zg3VBcC;RgEL37>3HtZb0RnERC6+H5inbZ!8*|ZxZcfse4-gnR|mA9N<2m$RI!(X<` zML8yxw|!{SS#{7q1Z$`f#4DCZ4VEL=p0zNLgQv}%7Y2waNvvl4?b&6h+mh}Ppfv=5 z82xnpEv8IGhwDUGSqj)f1>S|mWV>2a%vrP${dm;)?TP`0QSq49HU8!xM&%8lp0d8g@p)+hYb2WDQJ4KWvZqNqO;2Ptet#W23p&soUnmyUN$S=WfeT9`T{rL|2D`N< zCY_(cJH|c`VRkK%pyh+|M9>49nr-&)CUl|EI%sC}JC|M_OT)wGi{H|ZGM(+4Dr4T@ z-t*TSxLjT3__;ffet|u>cI|Q>EsvE@^%U6Y)GRbPpM4Jz$HsmO(XNz|mQKnT?;2ja zp9sn(qw|uY8rfwrtg9?;Zn9Y&d7!b0oLv=ra@SQj#smy19`Ko zOiF+@GI5)E7xO+iRB79x!rtd;!1AGB3pJC_1++E{zCE5_h;X6`PyKS#kr6$%@*{2c zlf~%trHblIRx}1I!qf@Br(ny?+>rp5-7#?P6Clxg>s96QNBU0j0m<_&qg=vaPBc1(p zx0aoILsQYr0sMAi`x5=*YK&30JVUqB#n}$7&YV_ z6w0@`wYYB_YjJe0dn571^a@JWZU-v-fI{DX2fy9#HY6eOZVm+T+8yI3^Pp5ffBHTD8WUl1Me+TEX41c&VVC_<&!|<2mM0Eee1~ zbLB0RuT;ef8@jz1IG1NOxQ3=t5?NUpZDeNs?CbeOjWpOdR^%~}II*Qj>jrjpJ%<90 zS^oHmH~dc;Nx?gycH@(g{Rf!7jD%@Jej_D+dSc=L=8I=v1^oR4acM)cC#A&21AJ&{ zi?cVsgJ@)A8F@6V2qFD~KQkLYH$gI<2jBCFNyi$$K~prP<_)xrhy4TbvYP-vRP>aN zlFp@}sG?BWth=Q}?*NgeSX4|4ncd-gK-Cv$aflW9b5!yi6kU09Yj}r@z`u96-$QyR zCuttd5USWVJuRYHZZu?F(vn$EG-ROrK9D4Q4u@lhl^k}g*B8jjDgxDDMp>#IoV2v# zlYhc}j(4o&NIs-3Mk{#)7SPL&?8@M1Gy+H zN$#k>c>&Uw69E~Y#?vWf`%(Cr62HsqC@p9l9DZ3&EVC3j@;5KotWFwIO%7ic9U!5R zrFHuN_{Ife9Y^OSvD2NaEQZ7b8dAyxtE-#irLtkPYlY(;Lf)OP=luVAhcrKX+>dhN zy0}Q{udxaDV__iy3a#@P+kb_1<+FHZ`KyqDbUZjW9TlArtEeGN#I0FT+Nt;H?8*&QRyyI~0$t%ku|{ALKx1Dq<2eJV{=3M*ru)F`=+- zA8Tx3V(6m(!~r(xRKe&a*TsBi0MH0=L^hYc4}XsB?UhQ4}a5`0Z*GSg92m}hjPigM$4Sa zyt;5W!B>HheGa55d-)O1*G=tghH59ff(0w&qV_s{8sY0 zTN~Jj<3z8PuFg!EdXi7ba?<2wg7o7`h*0JLK!c9Q8!-m-ZVw5G5b`>CmDIZjZL5t?`xu(KSc!E+&F9^}U3TFNk?fIT9|I z4cjGb+8uA_`#N%$QJ#ay+1+mt!9q|{;t@l>X4{ic0Q_FHoo4X+7yu@#s~3w_N@c5L zG_CQ|XvdNo51Fv_-?aLQwZA6K7e^m;2aiQ5_-pq#AU#?;VoX{399wBZf;R@Oj`^u! zd(8BZjLU;kZU-34K!|cU?AN(_U<}cW?XuUG3h!QWwtELe=#l^`fAC8as^c<%GLwLOk=&E6az zGcyqHF$$0xN)d86%2~3uMsNxv-1aA9;?Tl!0k-?g zHFr2ujqQA_QcfR&O4vn81#zo7;$#Fb2jl!0wgb-&s&S*yEHy9;|k+cDAAneso@34{q_*?dAQ_qN7yx ztok%f?kV7LzrJvUUt!RA@#lU*5Y_e8Zmj~wbOl?sLuF%|;J$CnDezJR%tSSVL7gAf zz4Kipz}Dh3`^?ztb*;O9Y;-<~R1udNP2swnUP?2FBE_-eKilrlg>hGqa61VMlajuX zYL3f@Q(U8!*5dIxX;LTph`l*qMxRzEe}v?;a5fEuk*wBeKYN@V4u8!*vvl8PJ!(wahV)rbuJjr4YZwYip1dIDqWs!5Pj>Gs=Jl1 z4=G)!xtQI_RnRW-Yjs;ojlJ1<74?eQ?acBfVqtnTS)jzB;vP!!0P{u@vP5*`-X0w6 z`|91WD=Qux`S52Dr_b6;5Li*;LkT$s)MT^&3bs-J=4^Wb-1M36s>&~*|EP&`txHI5 zT?N7FVQZvGqN%(TJw<86fAx+F@(VEncwO_IL&iOM6|~0LFZO+feR?DF0t7r3)zBQp z!~)u{Au5(yFTms5vj&ZhX1zV_7o_uNdqGq2fd`9lZc0&{S7k7r&-H6Ju7sZ(^saRe z9#`FOca_Eb@Rf*U^~g`Xh-H#tK{jahKsrPH$=W*7hg=Hk69;;afSf;u?B&eV^cB}sa@nXSrY0~$ z&P;%WAKW&iJ4YlnAn(aq?P~^?5g!K7QXmJ=BOf&sFhg1f5DvfN=GAe96pNvdg>(|0 zq7DEAE9w8)opiwNRF4PIAdH4D0Y<*TdE9wAo)0#-vfoAL$a zkADQl|GfbHzt{f% zaPe<5q!qyszrodi;Dq|yyVpOm#9tx(#z!|aLJH*3))Bz?M;8l3dBVX9cmDna>B<<; z!lC&yJhpNANId)f3@PdP3_X7b2p>LXNr+jGbIqGu^2>?j5(m-W?t%h)1O^H?gl{9`rF_0i5@t85=7rJ_!ml5uC z9bQME%sBQEVET%XfHm$0$#ZQ8vTo`~%EF-^@py^bk{`bs#EAVQDK5WTaR%&V8$d;e zluh_}e^C^xKc(mXQ;%^R2qfnN*FKJ)NdKd*>fc}ff0%^xpD+AB+=klAdCy&MM$)KW zBRatt8S*|nvwT3vkPO9wANa6HLSQ(u$hp-{v5n=~X;t@AR`9iB!z;V8Zz`iw9asZc z|6Zlu1MG}5XUA$Xwl@4TvhgvET=J}Sd79HV^GZNxSM%rDh|hHaXxsdy;DaFh$LAhT z2GM*%L&#E9Qr^bJ&w%qi_AMCJ@(K;@g@ur)iv*(8CMx;iMbe-*t)vj19V7meec$2P z$!wKDzUM(ryM&0E$)T~|GVK-)fnsmYDvFkV55q2(q)Ra^_|>u>cEQKTBWFY5wuCIT zEYR_(f^#<9jxjCY)u_1bF3w-WE~1%_4lPI$pgcoYZ?DeT9efE{SfI`&JCju=x#2aX zK-Kl8iJ6)CL_o2^&8vgOvyzM5U4(8@%Y`kk!9YBfxs-EKM7?{Z#~wanhD@5g%h)Qf zEMTLd0=3bTM>42q9|qZ-nn0R^7i>z|xcj)@&qm~WF~v8%9O^5+vzd0iGoL4XPDenm zdxj~PW|3#s26+>on3_{qVRB?^w`J+Nvu+o&T`m2>+PbAlaS_&nW=vPaGMBAgmb2!S zqMO!sfw5S-nsqh%k#Mff>kKFb7~fIMpJpt%9Ji+%a^2n~n+U#->Rq!Jf(Ib3$nX#+ zs)yeUYwc9bJ*T74xf5zG2*RXmcc5w)@tgUSETEmc;H*}_N+xy| z%f;@4VAP6&eA9UMc0EDj=5w2~UghSUt=rP09xjKOm5wrMN<{(J)$d5{D=>}yefGS! zloYx%`-L&pNs-N-7t2TV?o(FVN-z6rKFFJCqR`&TD9JH86M4R}ovD+b_=bQ|sc|Xl z%*e_swSPt=mNH!4NPgNIiHK0daISK`joNoQ?2E{Iw$rTFoRjA4+B^|lJ|1`or~q6q z`f680TvN4lrNeqGt!&;A5{;!OS4zfByV~tDUhN{jHJI`p?6jC!GM~LjW+kOb zCspipaeAvd=&-fI;W;q$Ebjg1;mOd;%B?VN=73};wtBV{4)^T>!wacz5|>2NW`EN^ zl(fysWf}9SxR(nfMuc64;7<%Ac0{lBE2}4_F?V?4Na|`>ZyhHP*?uf@C9Th0$0niK z;koe`vn`%vg0n^g{Mc*YcURc)r?lA)=f>^*bKsl%2YCD; zVaA7EGo%*grW1OEsk>tS(QUJw9FtjsrxW8-byb|Xz90i3ue}EZNgParlIFdhyl%CW zorUM_im^Bu`OTg|Zy=sLdd}`Cx$N2LukFu%un^7_R${3uwH(=OBS zRD(LnoV*$i-0MCPqRzfCQzcG;W^5pckv$mTqF5z)`!%ZtS;}SUW;Cie3V$nTf|v}2vEM{F^o_l{is-2Ne@Nc8#aZ$Rk~@dfRHO0)fNMP}peJ&~C8 zO3`8a(KYNwaF9k}^|MezeV7U7LJ*^M7Qb7Dzg)$TvS=l2eV+k>!-$c<18~%IfTaZyHmT0!sgqzZ zM*RBy)sw(Qg`15dh$&ZlE_IJ!d(1(Rj%R#yY%A)Hq-1XF*=mPMRd`qb6c_tifD{u) zQd`b)7yl>}%)TAWme5SYv3eqh_y|4Hr=u?@G=p}X1&!8LXI3R`v+?Lp7yKm$L*kkL z^y1m#+GW;e@M3T{=(f8iQKk9LHJc7F^LfsT_g?12V2*Hwob=}wT)-Uv;-gVnPrBvA z;FRve++v?!?OIb5UPOg{H?h$GU$A-`XSI^mdFOcS5N;wIh0BwhA!Dx2IM}8BHAfdP^fSTbvox{UKIZ_JTR!uT|`B zcmss9MUkys2GH0nfiKsN2i;$vcGC3aKA`{yv~@KJ_*{j?xGkt83yt-r$c3kS$8BNp zBW4;M3LjDv5{B=7Wxd+ky{O&QENqbA3UYcquv7GkA&hMs&7(JyQDfxRWPDv6DB;t; zsYx{KTyYe1FoekTzei3m*va||ZSO~heH+&n&H6e7XW-k~d6rv98&bT_CMy>UH^d

9K(JUaUQ0hn@Skf_Q~1#Y}+Po`pf;SBCNNQ88-GNd@SJ1{2_nxro?2hlX=j+j?fe~Y$D2P+>^27r?SVjaFFz>{AP!9Ph36`>qjOmFcRq)tvI zI+*iLFV}*~G+}x?1Ys?V|HeY+ssaPep+% zLTmWOSgj$^97lxiRI77$nvyHwg~y7#AqsHr7#aRhbv(GS=bt7qUy%ph6lUi+oYtsW z{Yc87&H<796WhKIpI7Xd6%ZV2F17E0usJ?U!h^gS> zrM*r=(CSM7%T>hk2%KL45U%=VjtCA}91Se2t!8Jy>#M+OPKHI;h*HuT%~E#BTmfDW zU|ZNXs7wATrM)_)ML{a)a5X8_D2);Mn~8LzpI^_~fD0H=wS9-{t0b z3ewd)Hg~lYUMu>Hh6anlK-|IKT>aC_v8@?$Ssya~o>ia%;AwjsZ;@lBbAA%2cZ7(5bK<#zNN7hKl9=9v4VNkK zom;zp?%k=G46l|h=eE-y%`K--z{)6DAZx2rsly|z2C63EHA5J}_MHwV%r7#cfupFF zPz?(!B+=DcrcktSxy<0I#b|-Dzuc)h!B0+l%TI=ejf*qdjF@UuDuiqbZHHpoXExUIrFyJORn#23p>jYV!NEhvc9lZ zOrtD5jp|zWx@!{{+T1gnI%aK->m+#1t5BuLBl>~@Y#*s@J^^II?@(bBN}o7qp#>km zM!oW!O47Rku?}uQr)p;sJ=^0}z#RwS+yHK*3=Uu3$9!%(a8wl%X_P$jd1^y7pb7w@ zTjp<^?>{Uj7uM8~^NgE@+F#I0XOoS6I3fo`(e#(5CRGb10Omx@P`LdZEx5~Srq=4N zfYi1Y6R7=r)fj|S6Dq}MGw2Q~Y)Qi><*)|Sla$lyT0Cx_&y319Umv&KmU`RwE(5Q)N?&R z9|y=dBqhp-j>|~PNHH-o8(7c!<`$_jz`#QDela(be&I|$Vt%BIpOY>hTiOj`hNkaB za+BOA1r4-umVaA-c;@kyb>jKh{En@|R55El5&TybC(QYtJ5+dkXrI4yaH(XO!%Xc9 zaf10A(-$C7`-2hMUXGe`H5Nu_ysI$56`z`0-9zn3Ul?@-?Mn6umV>a}T;-bt33@x5 z|8fCetQt%z5;K6be&DO`e29*{u z+8pm@79v!6?OQp(xu?TC=Rp!8r9@F&nBJRiSA6s_&V^dQV+?_i1Zb^2orK5oF)iOr znLJinZP|>wmIa-sWKg&2GZBiN-9<37Fx?eU2}QRe`RxyAT%J5;vGu0N{_Q2;)_|Uh zJ?Xt83UvQ6H8pWjq|3OXek=`NyxvqF%N*`aeBcU$2$C&%#n^$Ik8Vup#LKUIm~i#F z0&;1qKT$6u2A4yegA`J@8Cc%iZr%7MBZQM!rM(7F&LPFk`{PR=_k;AUhiQnSmHzLNY`~Q=J)P(Qd^rBYy^2>6 za6tzFb6t~h>cgQ`8^E)=y;)$DzSN6;FeOMK1bwI*avhJU{KcwUXRo0k;cYEGPi$){uQq8g9~s6U)c7Lsrr4^ck# z8a30_O5tgmPh39O9uVFf_$4(#}}d zgs;^jDihq4n!aEEu-rX~{o#1~l7>4Spd24Co2Id`w|aqEaysuPyN;NFtymoqbd~kIA#N?bFWPc@T7p!#vK0` z4#dB-%_jS!q{w6-MR~^AV&x&rStS4#@$Y$x-H_}3?F!IOzwOJIfCD_}snkkV-{XXO zlLErm6QqQnL;}Zj7mLhDkj3>~F(5kDR2lV<(dB#1qbh{O))@iIPn*I_#$kpCE6LtV zeb3K(wEUTvfq}KfM<%|EB*Ux|sDMMFsVmL?o7ogr7w2#%X89B|nB8^t*xYXKY_g#( z3bv29`?XKh)mk^0$w+OPEn1x#(0lIUSgjnc+~{-t2y^CMdSdK~gcMd58@WgmN3o4HAto1O@ex_72` z2)0|dZ#Exfa(mClByyPpr$Y9=ELc83DbJPO%`DFXS3e`OZN$(*10atgkD4XOV}4Np z#~{Dm`1desdk1}I5y)RVY2TVU_M``cM@m&h5Yx~2N(j>GKG+Xn=WjY3gqLUg*mFCFr$pOYjG*cAb=98;7`iSr?KDd zB%=m<*eo|>L3C>7ax?dm36KduA6$Mwtt#@%PHrT}TK9xHo~+hkChFhT=KQ5UGmL)N z_fCHUzG<3rVlw;MVdC|Qc<<>!lPKj+V7AkLBWsWXlxyplrw{XM~4FtKnd1YnjI^Pou@&PGVyHsMP$$be{F5?NMeA^>5<=aJ@;0RxK>0e=(+^1}k6n<63Gv97jiPX%>q97OQd z03qet8qR+iB#aBF89<4SOdTkZHA&$&0X4@P&JSk8H&eh7p7%Wu0>&cpl1HY{Pd(ic z7rvQV&U0NNtj(8XK*djc!AekCy}Z0T)|G zD+StVm1?mJF%ng&vP1X4r|o+i-*#8CvEa)OpGZVGr6?W}4~$Mv*VA;D))zbwZyr(U z$aU)?RPz(4e84^k>l7?>Dh?LWp_9GNtsm7|d9tk-t{w$9y*U&KM>J9`nY~d<@&!+xhheWgn zYJG&Lvw^;i$S0u^E zSF-a~g1Wua_|6A8PQL6^B(2_Ks_m9LYwXz2m-t|@5Z8>{-=TAxHvdb_tpY?A5TXRv zND(gApRe~I4_f8d1d@1hz*?{Wgi$+KA}-JFqZz??k)Yz`vw~4TBFWO!MMAHYigZda z{hgK8Tu>ym);W`-#bPi-BZJU&cj|O@IqZM$yxhXe!gUwpc8A&iZ60N9mi?Z7-+N@66W|6o$UYRU)em~@KHax@TU>L5oV6U= zL?%;z8G&m5{6bxgBg1Ovmnb5VdwzgyVfaO=5<43I?B&;lcS)tWg^F8IrN%MC=<<7R74X_nTN5A@KtuxcJLi{FjLgR}|C2U6DN`*5NqwcM101T{3Poy7 z-T5G|88U8L19`~N7Xi|ZcDrUgHG|yxW{>8ZD)GmJnfE~Vi)>pL#e{*E&&{U7Ffqav z6qO3)r{VMuK=XMQ6iy1ky*Y7VMMl@R&RwyaPA;`R*BpLS1%rJ!VU|0VP!!#Zd_Zao z5RagGFfI+E%3=bs<9-nMm@22oA)-0HbF*6Z+^0*xkNjC<1S%a%4^yCg{~GM|rG zQP^~0Ur~h%F~Dj26h=cs!V9ZYGYdWz3jqfgAO6aJ4wydsqC9qut-s ze8X2>{@7jE(8Nz;i?s2+O{l_Z6{kk9;ambxQtny)iY?`eA%sFOm%@wlAQ{-pMi%%r zfZbprSb4V^vH^pOnxBG+>RLk(rhvwYiTNuYj}Pm_ZC3%R#nMy{pgIN)S*b;kQpEvvk3@yeE)l zJ#{-*NX#T{^ufM1y%}!R>aak2v2&={dzaNtZxsPBENMv{chW97%*6A#R$)?O+yTXn zF`cGMs5L&f~QN+FQ52d*Z(NtqXQx7 zcygTY4QA&O(bsM0f^E-Xt@fNvYV!HaZm*Jb5iM}9476a{5UYJKUFL@A#xLQ&`O4K! zXw#WlI7KJ)o5*RII-r)Euc(56IS(#o_?c5&K7?J=r{WUz2fIIE!W~eRY1=rKJMwB% z6Y*I+3)1KD)|L~VI)CMI>V#57>P#E7=ERF*l(&(kSrwPaw6wLkUfCrUqlNc1uisT% zTsF8avH;OZ+gDw~>RPc!P864ra@H}wLy_A9V8#@L3_z$=$|#iNqEwk||6!+Z{HsnI zdDwQmxKJUx*A(WPdD?}DP@64Zn9ZT;ZRH=&s@bw;DBpIAOv@Qf`xsqtMX zrYtG2-m^^6CL~HD90;a}M~ci8%GQ10vT3^oC$iCa$Nw>Q^w5;Z_bEu1)27|qbC8C$ zA;w_bV~sL)=+HWw2|)6fc;2CDj83Cy9g>(vcnU|7kjQkvn z=e;TyJ7w|)cFi0y73WeRz`Lmc=#;_b{}U7^03zm9JJt1xGPJp2 zpp)Cd5JlY?b{6P)(>Vt~jE`<%5H1AJVgZkF{jTq+v4d;SX_)DqF``83(9COJFs61PpS7!q1=+EKKdi+J9eB0zn4h3 z+%$VFScG#om=#7Nn-kuZYtLEN`ZA0hD^$1$@vt>7zMq_Tg>#dZp${^~8g}S1vo})( zB4XY=otm0y^~Pf7sY-(u6-k`9Ip4msQOtEd5_UQ&8#*d|%`XZBfM-{7>sLo*9yDlP z#_VugYrePG|(V6yt;ggF=ycA(~`EjDs0^LrZaX@4H z1Ce&23I-nm&-M1s0sS%~KUb66Jp{1DUiIl?5Hj*dJJ$zfU5LyP)|bX5#*z{cQoNQ4 z+p8*BbU~?|-H8}}wR{~c71WJ}B8F~Lt(vGehSt-NP1v3oSx`_{;LUj&3koTp-79&( zY~MO63SVC_?h-0n`prnimiZJDj80*~F5a~0`DLcD(F9WUi|f2-Z{T+l6(_GCFKd}b z!0xGfa7_)TC)Uok)-abKXB@e(HVLI%1I-e+tuwM5Vzi^9D-F&`m6GyI^k#k~MRkLw z-y|c~9+`3yBLZ9kNAxV@jk~W2POjSv$n2m>jE8#A>w+nghS_VLJm464s`h z9Vjx`4Yg@=y27U8suulY+>nSxpIFusqS#sQpAmU?OLfzKqj+nMRp(xn$-awv-NpjM z2CVz?**O$m%6n-3i3iKlCs;v$GLcMm&2Xom%(p>~9+DAEk~>R<{s4%<$Qbk535N~f ze*VQiZS!{ovwm+neAzNE5;E^*Cl>-$4y)@Ut!dBjtc}jv+zdpmxovH;R$hJM)A3Jc zgd|XiMe|1gb6sV9w&AjxM!T>0Jb{sto4uQPWMBeqoG&eOr1EN+{?zH2+N8y)yrmjd zUR7*jU5yyTUMaI6@i_{?sk_K44jfM@2Pd=^8LACX@ZQ}My-dgdg1G_F+aqRDF9)a`8F^1n`2dvHjTU8sKaY$+aA$w z|9skz7TYNRM*zoeaFhlo)L#FTkgJm02k+;M3jhEg0C%pc+G(Tf&A=1>bL&R8IicJN`%i}l*wc4xwt?KYYH z29=Qg*DxG_mxY&K3t-I~6628Xy(7djy6OXRw6ym(&8*P1vF43FTAw4mlaWEj7WVko zYR*>CLM+2v!C1la%*L4(ePqVQX$9Gr#iL}mmqgRpzu8H3#dPMKu3+Hs*anP?{={832-RB6KoaMFKK}sLNuiC^t*7-zWG;( zr`49g9JID_o09fqyd8 zL7d^-cpc5Jamv?E)OUoQSNqPhWwogs!Mw$kH|1Tw^cu~Pl0kp1uYKO{^2d%^!C3I8t>ysnPeFhlb6;@FA*NsfD*1N7CGdyU4S zTm{|6Q_ zy|LZb&i{TMNzEwh!y1Tg3B>k9B{>{?;Thxd-@nM>raH!F*vkwE&Y-3Q+R7)EQVB-v%gv!oL4s4eEE4@5L{@Tg8s(tj0OJBH`d_E?cB(T{g?gCz_RQ2jN&Cl{G7ZP}A<$+83P|+k81&B4C2Y;hkMt zn)AMzCf1UsfS6MGc)WxuIJCjNG~T=I{oP*n8noAq=By$cx7%Dg(6o)dp;=D!h$t4j z`Tf6D=SY5+a*6~W$q>{J?K;+;ZqKI};lvmm!*EW8R~!nKrq=ex*7jmLN@BL2GFrQP z#75@#lhCicg`c0K$8u$hHEq%O_Nd6wCtP+t_s&%rnebQ)MFS0p&=c+m*sbl6fl>O& zq=+PqF-6xk%IKj=0h<*MLn7pi18GQ%}f8z&es`~pK3vO(m` z&(5r#l9wxH9O=~a+RVMH!}2p{Z^O{!#vbbfxy};MKxyHr2KvXZUn6K+CeXwl-!x$O z8OM`;?kgn1C~Kaqv@PoaTg02>?1@ALO=o2GE_z_Q*2+Lnw2dRtep-L9$tRDg;W`3p z40;iJwl4b%Ixfw4J_Re;32J7@>b(C>h$M%>BSg6rE$z%%v!gasg+WOYMZsi-&b~}d zl0~_B^~bB1&aEq_umCpDLUBfBWwoplRyd4PZ}gv!zXyx`{t$!3(?DEHRVPR^>w;+T z6Ax14OP#ySK^d5OP20u{Ro?kpBXG_$upb~nZe=m04^~X0#Ujnp&5cL_QpVA8476qoC!rp%P*7-502 zSJ4V+WC|oML;5azF4b}&18p@Q-ove`PSI_xmdDxeJ)7RwzVH4m2uP&;GlbMs^+PVF z=-)8~YgRr%4a1vl?x|U;fZ)qZT-(sKJ?)gP*D8*_=Rw1a2sZK&imE`^+V${qlbI_c zSCsd*HDJHJ5YQ$c@%8U|r(?~>$zjh5b==-^*_L)ta*1B z{VuWA>&B$pPh3f<>G=4s1+B^)@INoiaGJ)8r*)Woc|7eNhj&qf95MFw6T3D8qTY@n zi|J{{=(;Azc&+ab{+K__c8u59Uz`lCdJRk&4uY1pEtyC!8h_` zhZ&u|DSJz$h}eaba`>lnnwkki1WykilvOrGK@Izi2ef}K6&n+F_OH6#z1gXmSBQU* zHe*<#+(@xQ!RqpIXMRXXV_40Xx3^3bWBlU}=6arD4>^bIdftuLMk)mZ%n)^hNeG9y{Ez_%Bhkn zE;_U=ayw?Sc8wFB_k4xs$+uSa8IjX~kRrE^qiEt8jU!eCGT&@~OTR-qMQG zxxh^bfwZVN?oEYirI-*s_uYEm{-jnuo#U_W=vn}{{aYiz7Izv;US%akS(s%1D(zk- z3Oitz=on^w*fVsPlWb3ut=Y`IQd7aG?XI!^_8(&o><9>Upb@=bFWZ*N#7d+V?Duc6 zvwb?@_B6+;ll%I-uG(fTw-oiI-&M>0jmq6W*a*{RcbnS`UAxsbilT+2^Op>^iwS6W zYa=V07*;;p8S!mNl%$d{&K8<*a}!n4K#4F(s`X>`f+_XrHH;U6cHh6K@6gW z+YD)s1#5c#{*c?h<<0Lmlh363?=g7A-FN<{Z_hV1pIv94 zM>TxLI8|5A6O8$sz<7mQ&5FHFa!h8akwGw3zL-@do56EV{I39zAKFLSx)R04RqLMf zl&WOj-N{{3N4Eq+RS7P^DOOdo#@jQa;90k zDVBM?^iy`S#nCRm+j~1j*b29L|9sbDvVb^5`g191{5{1<3)4R6Xn@@*bY&VR^B4R(7@E-u@yqr=6q6f)aD0e<_8nt&QqceqHlCt$@SwG37 z-dxmH0ST%vtVI{1FvvwRs(*QJz5VVw23D@+bNmOlfV^R*RD953QEl%2-)f%h(+Lgc z=C=w-Jw2k!AytKq+MQ|q$SAzzo>#C?c2Agb;4?uv7kfRo-i(1#H4oe*#}^3^xCjS% z-F=$3TYZy9cH+J;K^c&f=LYxl74}L_^VH^qi|YZ02z4E)xke^wW%=UQXWh5NF$|!sn_CbIY0A1jJo}XdMSEt}Q>`VD6*6BW( zp*X?ThC@ZYZ1{4tc_d$1FHdWu?ktLx>KD8S1~30W`ZB-Nec;B{^J#g_X3ubpGG`k@ zDq|b92BeC>7UV`MBV+wUvSZXLFS zJhvMWg{~ZcepLI&(#<=rxBKYvm2`C$IIN~U z{}$cDRcm(-DSDO44RWc1yIy+Ye?Hyz?_Iw9&x1>nS-)qq-I4f+UF3M3KbnZ0VP{)X z#sbZ4y$+*iH3;rnmrmu|{wQtAI$(z;eUey7=7BngR?_<>@lBr^2L?&4sPJ@MY5C=q z#GkN1)`8J0Uasfadg12-_aaUMsek5Wij`dr445QwIc;W4vbZcK6=-lgJeDKFB63y& zNVKb!TKm5L+U|QnZ84ML+^#6EIM--*=P$Sr5w5W53$(S15Q#3#$>BAIuU8jFj)}j= zf%c8REzocEj{F)D;N^a?%U$GCc!*|$AM&T%p46VSR@0l?eL1|6ywY;MG;m+O8vlND zuKT-aF<=}!(0X!m zfN(W=$n0&gT3SAcKwbq87B52?#`ueeQ1G;Os9pJWjLvzM^V(jA4n}&L z4yC&US1{7VQc9Z(3lY2_i>38a*H6=|&Xp`tQJR15&8HO=8OSb|JNzYMcMzZ*;I%2r z76tnxDJhz5%E3`7rnbhZK$C_-gWT-j+&JDXC%)PxO2|RiVN}OO>PPoWX&kRf@eso; zv>l>HmQOuX6H;UeQ28kYr^Y4)oKLfKXPC!-IdfWhr4>ez8MJ;0dd`%|&-&#L5BH@G zcew#bt2r`qnasx5H0kqg&ju|!KIl`9!>4V7>XEkgIzgX($u-}5NdKX@MO<7y;|Os^ z$#@C=2&vc3ZG7hQ7RXeCHocJHoWs8&c{I$Fhrj9iaq$P*PDd%lBIVV2x@#JLYu3LzR-q`lK4gP}rb_3H3_YrR)5b-_Asru~H@$JLBwBP9a)Z^>^#D>#jV6ISbN5ZM=e1 z$>c3X^ISYh7o|CioaezMIVWYK`GM!M!KLj!ai+s{hSbd$;bb;v(K0@apEJj=!zAGG zQkbOwi@CFms;Ue3J)nYsfB_<{AT1%?Al)q>Dc#*IQqq!}?(Xi8?(XjHZnzVC-+Ryb zaBGZn$GGbgW3czyYt4LOKEFRl;LvZCX$H2ldOTdrnPRba(};qr@7*#Snc@);i2T~r zB-saqlasVENg7(j^AGG4;k`^27RBiOaWf_RiG3=Lr#MWX$Z3xgp19)N>*D?0CGO)c zdJZsk0=i>&w$>`-=ug^>Osq7gYartqE!;l2mhkjQCbK4T#>AB$J+$U#@@0u%mrAEE zIq|kN2FnpFn)#}_pGi26Nze#)B7CIziCuKx%XFzonZS)7e1R5Yj%tKPX8Wh%;|CQD zZRM#;h8(ycQp*pk@N{Zd9C>ne{Igd97M7L?>+_t1WHf9HEL|ybD)Nj$w$KH`!)bmw z(}_j%e!9d#xZl@lDoEN@V!H_mT&-Cw>Wm7r;K+$sEXK=E9q*^48@_~^)LjKdF)i<6 zxy~b0?>^=*p`1KyeI%4vkx49R)blU?#1hv<*jXj4kGX{Sfj;h#&obCjj){gXV^PXB zJi0MyRZ%`y{3M;-1(O$+#RM#55^v|!RYJ8Omgbuby(dFyI1y%ZoKSaI65Z8#TfLB_ z>4Gl3fu%RHfexamFBK*yq&yDK$`TfwSN+Cas6fw|nOi#^*1o?U9vkcI5QOxO=4&#p z9Rq>5)CTdsQG~Ialx@`#WY(P}#T1GA4|H79o4bJJx9Ud{Z)IWrh^Ys~l#@-#G5pIR0crsd2RlPYAJ-9@Z#O)vBE~1_YC`e%9O{et#N&NF8x2NY&Mu(8F z&9ZVRj{fuKI5x|AcbT%|j39uMtbgJS4{8efogNNMK|x(q6dKc^?iIWaIqFiF7VacW zZChhwLghzU)2tJ5lGDOom+3m_8eNujKx0ncnf|;Ub>ESo^ z-QDWd)$Q$0969=da<7Sc*U@U@be%QM8&eLx4}aa!8xd4t{AYwK8B*iV@Sz`~M(jS- zS1vNB72cO5*lj&3S@39%^S^8HNJ;HBZ>fWt;}o3TLS2y7=Fvjl77~095X7gX&N~GA$t;Vbt!tg#`9z-;QU5l2*T0_MtN>FF#Wrh}w z8r>TiT4Uq5gTj|*oAJ%-?(XyX7dnrD=^>xrLD zPK`fKv^UMjz1_ris%aAvY%f|JliH6F*JICnrI>o)#Ap#nrsX`TE>7;4nDEMx)OlYI zy8WRbWrpu*AR%NlpRW-sHQ?vy<>EoRkZ4V}U{IFKeiaRKW%AAT%nyaBqn2>~zEDS| zosxYQJ9dpy)kH&Q&HnnYdNowIpHpMhGLHENdC4=hC5bTd9+!9KU(`o?h?hUJ=!mwG z%tW)9o0vIp5e&;Ii+i5vE5f>wn2yJk3E3a+KY^f-n^V8oGQYV#c^bZbfVma9x*D#s z*foPs!;m&pK~BlXi%$?CXfO@gcQ0IyUdiW7fr;ll%>SD4rJ=yo{EqOPj3|br+BG9g_x?XQ(mpasF z1@gbd5e*}@E%X>)p z74seZT>7F-LP4u9=pRP-Af{rA>KRFMXUni=;yL-W?*wzUEnUGu%(!jysZw>j-Z|!% zJ?kG(5yidtj>XRI3Sr>{Oq!wY94l_#H9Q|&csnzO8ygZ5$d|?q2sZzMH%W)L z(M(Iu?0a+r2u@kY!^#W}9ZBCIE37A6`K$ZxYL%|Yk%3-vveC;)eoqToz74Fp5ycMu zD7E}q1HO6vGt7rK5F+?rVc4$k=N$Ns4k$v8sjR<0Oeje<-V+zl7Jp*_ph7IuK-%kKcyoo>Qk@;e zZTL+li?;HnwEXyM8~|!Yll}Y~ZzGS~`M{szLe82do*5U6#k*_jbG5at_Q47p=(hJ# zEom#U3YXECMt`Jc+MGfxbg+Fvn@Z1X=bH5|8&O0y>;~UTE<1Y$H$kVT{$$CxSv@}* zUnU`3`;CMiz#Q4+Hd3qQ%e;})w#d3&#k^64nH95ev||C8>^Yq8J>NLVc7 zUGyCT$!&lnK8b?e;VHeaLDbKG+a%E{7R5BXDOk`Qxi!+AU-x;4>C?Ri+{$^yg6J51 z0ug6ovG~CB=s*XThE)5eTx==1KxzV--Pviogbn}qfy&WI@660lud6Ojgt0}R&9X*F z`7@wuB3ISAllrrfR6Q4T6bd>=40fvgg97Of4hX}dWLO}{!g@%tJX|FF>cjr{p9LBf zym0!cf(0_*_%j;FS2;>A!>L!c^_-Y))c<^7Y|OaI^iPS*#zvq*^I?ueA-AHoV2|u* zBT0Yn@1#ro>aXoSR+H=yZssI9xUF4%J5y?dy;d%dxB6-{vr`e zDo{Bpj(|}`2pVoZ#rFVDDJW$pka?wC=BRPo6RUuF(woOOhuo>mBh{UhzLo0{&?>yUDima?s_|IMvf97}T zr3g6BKz-J8C*eL91h^Fx?$4u)zEOV{JOGRM!yv1^f|V!OeP+b)!CuX0*_jrpsR-Wo$8-53GYOvRN9au z2*IT|DKuYx4?rMzW%kcq!qkK)v%)T4oxu@WZb`~(_~3sl67B`1uTsB?&AhCDe9DqtM7^t411JTY<0w4WS>I-d})T1wX0f}G&Oa#%Qx*_=0y zXAnvP8ruX6^SZkQ>-s!AQ>1SXlY%f#7(SAOuzeV_<0Tl-sE4DY0{&68`t2XOo}FQH zG#o)Vqs#T0o!q9ZcNFugS&y~1CT%6Pcqb;3>O`U!E{EFhdJZf&Aq(_|}`yujrUmyz+4N_u>pVe_MK4j-q+SecoW2~tk=fK{1647e06 zdW1j=*4!1Xt^#x@)ZW-@vGqM?%2;Lw>zzcghWk$uzaTgJx~y=-Ya+w83ua2JaBJPE zrr+OTz7B&xl!l%jntu+e+o!!>(s3GWKNdOMug$xMnVdXQ+m!--(zNYX(#?sY;uMGu ztsP(bBh)=OIcR*F18y=~DKPS~$Y>*Y0#bNZG>T^lV}kPu!ZZl`%ms7xPhqwKPto7vc;;UAU< zG>FFoc;U>0-BFR zzYA?wEj1MKfnS~d2uBRrEO{$$X&L0_!(wAcwVQr()Ju`;GGBZ>lSSZtwu{N&pwT^s z^C{1Wn+FDOrp9^a0QZuVahGXjV`ph=ZLUmUe(_1Q)y_~Tta5fudpmzZQpH-&XQBp{ z+ZKIG@3U=`;K3SbyqHFNm;AM8_+V?4sSC0lqF~D(vy;k_GuI1lw5;+0>kEC zIFM_%TedP<<{BC4_NYqN@r${=-``yJj$zF0>+3QaFPhFYm#N#E-y18rKQh&6IB_OZ zy34=K=u2R>S?X}Xv?=(uKF(2>brrcgXQ|1UqzrTAlMUv7?e7dz>%(QFOH8@cJj4^Gu#7 zR0kOSvDLu*OKo$(67<64Z;`Hv9 z4C0wv&sR#)%D{z^EY9pWKvr?+Q0zwZY$AZWM@EECUd&RXO0+;l>q(b*7abN>c#|=I zxwU0f%(eQIY|MpSJJmhq*ml0)(z*A1nCJ!2qc^fP7crbpo4{MjqEHYikHvp?nXRbITxt1 zh+xR{PMtYP!Rk%#*(_%ZccZX91vA z&9xa*{TFeL%S5iuTNjP?v~30k`lF@;VG%tm>teX{+tQ-6x@{973*u{sCl05pzJS2*`i7)NU( z?nd5in>be6?K;iw{bAx4NkLF`I47R(?`;OoM?#lVoIAg=#D(6=F4gR-@;wmI;*;dcIHmMMb0OC`eLOYMfMmL(uWi z-=L%Opu6eAIAFfM85^4mR^1)SvlSeuN%6KJZfT#ZwK;4XMU1OH`Bc5Nv$G@CP#`S& zE2GItSUTCVY^!w02B$_U%RRrw>uJMu<(@7rtw?!c#o78j&fLAcw8qc%xNX_JH1g@R zoiMNTwQ|m}foC>T7a$n7S)J4LbeGkp!S#I2-LXQCLWv>Q-fW+!X1vQ(x(-$>*Lc^~ zc$(|lWp8AVlkqkpD!4JiDU+J>K4u@pk2i+sLe&z}w80amWn{3Q)k{G9R&%gO5_zs> zn=q_eq(eeC7G&UiQ{)aY1cczCx-yd*zgXqP2ae9ED20TE`t~{M&G!KlK(yv~?UcMr zCbPCTEZ3zueT=~d%k|nPq<}c6cB7a%?%j@v!xgL*Mrp);Eo5K&AD9WjB*D^#;n5o9d%wHkpRbb7Ws;+i5ofl*kfm`(HZ+;lk zwA9qe2c8T*xD5s0s;mY@F(<2(@D#iAwjrClDKdlyvoU?M*M-9}cT2n0LCC?7bqe1X z6T!PIRslhN&LG5YRMZ+TPKaYqpsC41q5qN4L|6QdHq{i)mk6z#mhDrdP7*ZB{pPaS zQf8?*lC$jSg_9%PdPv}UIAR8%87r0=NHm`X_LZJ(LpU?zz@gtN(TaREhr1IgUb~G> zO*nRg@s!XnQH=Q$63?GZpDtC%Ow-VB(xD{#I*LLk6Ww6< zW+|^>u?K@+aZ)NJrsWM+>UUGlUiYY8a8_$nfmLy2MC+u_QT% z?WP~a@J5O2IIx7bOne3r`|n5lZyN<2_inQ7yUUlo&egYT+3a^tN7fe$uxzC1j#mcV z$M2{n$BO2~%FC?m#6){Fk`Wmqmy-VcftqZQ zji7Xn(Vz1_p(~FIwps*bN0*C`5Zwg}OMq(}%Nc>R_GW zkja%*xNDmzXX?$hmqwV&wi!~3Z9~`c*!G}=Ve!}2*6+^Uk) zHmtHlb)%l$@nA-|$_;cT_F&2HD81)&izv6b|I)nqG7991G&gemaei~A_=d;Ckh4Zw zZH$bjwP%MttaFLkq|q{{#{Er~5{UcvCT$;3qMmVShs1^3udkswNRm2_vgo6kSL-QT z(GbS044z|ZzvL?@h^V4F^HcAfAw@v<&KW;=h!ht!JC5gF#&^kp-aP{lzku1xPRwsRlm#xJho zKJk^T>|FgNBN&B)&eQV(!iplKa8)N2K03I&3@Bci!8BugTUo4DN#>_+Cw%_&kmG=kU& zj1}l&IZ%;eO5d@&U_!d%SX`)A(fx;nnd8R+srX_S#c0ERbxGe7quZK>Tw?5mC#oPY zWDX{3vjj3R$!es09y%|gMnRERCqUVu`Wh|kAlYA9TnZRk3$n$@w+%yb&!F!3u5C>- zawbm_-Drr@4V%d2@^q)yOEQ(k#%1a0%QTbmvqpGV6>QkF@nF69rGgjzUu$S4PgH;W zBx0x(Ef0!=!&z!%ApuE0v7Jq;tL+ES*6Li1wW%Jg_ppQW89{aBrm7X2 z=U;mj1?PoX;#N%gR#tWtOSfJg)>@{3y~cRj79J4^{;H6Yt0+T8NFW{`_Ki#l$k2G7 z?ZvVimwJX<_rAuY3r`KRTv)tijl#fSzjoq-J3b2_N1%<^)}oXd1S@qxpvF9meII4M zJZ1dhp$pfbahwBEltg+D>BITc@TWA$P+xh_nKJ^hL{YRcvw8WwCMPDS?#*#jI?_JcQbv)`2lad}3)8Gj28j$7|f7iVx{6uT#-bT~LF!dgI{qfH_{JUpsTt`Gu= zj}U&w`Hi&5im^b=Xt0_G7(_U+%IUp|8&V}ELg&U5`l0dchk?G&W9XdY)54L$1=}T} z2y3dzU#@tP@6_y72_>k#0>rrJIWu>Kwu`+3% zg@E%A$&OuQo9`X%=gjjK2W|gIDxOCA(9+Sh$Y2ou+r%d*CTqq2l_E-*!>wC zD9zkI!K3iD`-UU}j{%$620mM_yIG&{Fxu31Jt1(WZ+D^|p+JX|usfx{k*6!noCXvV8 z{t{kBw_l|+79R!EWGI&q2jh}Ku8U+9JMqxgR1Jql13NE{NG7ruJm?z3q zS;+K@urLkIONRmfs3;7|OB^%FiIHM4;w}=TRcX$*)Ac^aI5KNCWR?#*Hy7c90Hbh< z+C681f@oUUm*%#e8QZNIw47OkksBb{E>9J&ezZ+cd*)iDHJObxeWtIkpLa9wbU9rX zfloxX?mfOu?Dw>Z+lN#gB z%+)xjhL7FyeomzH?qrpal9KK1SlxETj?TUs&`#1~6-*lPGQK9%IBc`#9E=18W+2WS ztIvxCXAE~aoXYPLgCTu!T81JnT^I@oEcfI2ifhun z#`A-Ix&`d1bY|Ol4MP`L@>JL}HSQd|aDi&LjQT`z)NZC~=y7rQPv&(wO!mr5<|}g# zq=hnMiUeG`uhc?9-;5j2i3zwjwd2H$hl6sLTkJ~n(`1l&y)jnP5(XRi>89pf0!k^8 z-~IV8ICo*V;i)d ziIFzMW_FlO1zX45Z5`FyPDqpdGsYVKr2u`c!qjGtcGODM4QKw=%Q9ErC>*{BomlHH zCQ54ajma?io_t=K=-TpJY9H<#Rq@xKhAhi-j+8d>IO=S*s;i4k7Bkwdhp*P6KzfJu8xCD<#VNEmOVYac4n&Q+OMIX+jw-BlvCpY8muG!ObPr)@@rPk=gFw6he9Gmp#PrKVy9%NNhb%s^@FTy$^-IJw;MFh zBP={burhd299hTdvGU8;oLUAE#aibb$az2B^}wxEwxm>x+|kmB4%|5r!JK+Mo#OnSXC9I*f#In-77s2w(b5{-u!m-WY#nCi@ANho4id0KWnE)xf4!GWLO(#nHi(m@U{Vj4E{W zxBAS9?uwK!WFRf&BP>*+^wMTl%x9>tP~Od2YpDm7$|}arUOe}jA78^izOnY=VWojn ze0sVAzqkdrqQ{9hD%crX-lTZLWO4&ed!K)QkJ$JqowU5n_|U+@;lZniCm;zB{D}I? z!qW4bPZX*Bh5;%R86)aJVpo!DOejtAKbay)iif(s$BPRMlpFtZ{r@;6Xpl24Mn>tZ z>5)c9=`Pria8d9crofM(U%cFIB#aV~kl@f*;vRLNSMV9UC&D7Ne^Ou-;Ei&o)y>w{6zi-U472NdQpN{FQes ziyb{Xz57FRfYuiF$;dEi0|lo%I3=}gZXs_f_Gau>@hk!Rk}|&5@^S^If15)Ho)nPr zwi%Nxc?GQiIptv#OO|E*Q%48317iL*=&wJIFa-Jwrur3G))vla8z`pHE?DR&S%PuD zm^M*j*K{sh=(@17kbPpHqYi;)23!u6^K;v`W9gv&`18XJpMmlEqw5#(8V%Gzd|JSy z2ebSAg?_)!Eu>ZBb3oSYp8#CC_pg0|cIpcObrWOWe~5N~!cq!=(wUaa;&7h`*lLE+ znzmld-`z!!2BjJ54v~>Sf&=s?lRgA|tJ%hSTri*#eLe;o zcIb$Y=dhw6W6K9D22f{E40{z59yMHR?99)68g2Ku1b{`LXkeX$D=FQ03+Lk4YIAs| z=B(2G`byxAL#>Mrw6!%>O~WaokhrknPJLUqq&D zj9Kol;Q_^Hba2>Ys(SAa!|-lwF24lcg7mDalDr>GBD<1!p_sJ+qgf1{>92q~Z9T~q z&3^Qw?Oo1fk@dN}Pq|{6DX+zGYb{QD9_Iw`SC4rBMveOlw)%tHt2Bw@v4<@``9y!p z$^_6Z0D&f|-&ub#q1bCEqaV=gZNwGrKYr#|1!P1(Oj*`J!elG=_Nf|duIblz+Hb@m z>c{H}3za0%I5G?~V^a2|D77y265E+g{3eFU45)J~0S3QXLjeArs0X)a(X0hue;PZ9 zOVD+j{?yE>=mCz8B!j@C-hLayf%+9tMI9GWLL+a8DiK{{R{&|^KVk-V9dQi@KkeUja~wU(+?MTCom#@aYJ+5yLX9&!Hk$H%1EdQFz`p!izwNI zG00Xq?tX54iXU7FYSq&u5`yEc_d1X;1%(ACtL_9XGz=>4j5jv336;j3&ewOOI04+R ze1A?^L?D#3!J~3zK4O0c5VUs5QKD`-cw|IUTwI0@0fWU5vddPeqG;{eyxO5NI5?_E zw}~F@=k-86o6tT_U#?-m7V;MD?*8{`ctMkA4&Yut8|$C!Uy4y1It#YKvvHm~ESLYOdENUpIYWPn@^3xL}0y zCS0vi2OCs zZ7$+mH{>;|?=3A;KHUxu4l~d*CcAAMFxiOOnUxx;(u%yfsxdjYwb1ncyM=)_crb4S z&Yf6KO*$E{)TIUrO9p{=9kb2J@9eOUy<$_4G4<4wTYBQM|G-Klw$qtdZ9MEhHgSxBUlq?*fz zH~Ap;mI{)gkU&oCTI5e>ToikM+p?1z3owK5&ypWVLa-e~!$Xvr@=fH$9-J;SfO*}C zEW_XYICwx=71(hR;y4{rz>=bJRbFp#m49PbF#RkEw$5N(uT102OZx3lt@D#BkuO4W zUZqC;ix!S3djqv9&RtAHGHHYE;dxaNfjWQzB4f?!X>ZS_zx4{^Ey2s@01*m^{-H}U zV2%T>2I>BDc>j}gB(}m^f1|638%#m~kYlw!@O>{Km?RW)Q_tDNgFr3^`n~u`;Hc52 zsfMzJvK9U+&Q!G`!`a(l^&%7cIFTuIbVfK~X;n7()7m|d5N|A>Tr^{XH}9nTzOB_N zzP6)76+_5DG}ytL02A$P8$Wo0d#bE2@t^u8)ngzcWQIDc)1JCy^~P}8bCz@C)vd+K)q}2) z6)R^R6-7H?>8Z{q@>;_{W5VUQn~oAP4A7Sj4%@H7!+vY11A>Z7O1JJFAVDiAMBSW?SD4=NfLRgTYq2>Jw?!Y< z){mK*Q!t#ZN#L+qvuXHmLj?WzZIf2}3W4wo^rCvB)N=h@wr2m^$#2Zn4lHlw(ox|) z-P!vpiDi5hDR-DZrqDivCaAU>$+OuG0gPhL3K@F3p`77NFF}%It`9Vy#)_gT(xCX; zVB61B42G&r^uDjSD@l;r4h)VaLr9PgYZonVV~HW{DfHFjSrOsE&X+53bxIN)(fJ)( zsoD;+E(RJVS~}{YoBZP9b0yv`+j2X;L1M}ByK%Xs+6T@%331`m*)l0B9$^GER5SIT zcI`**FKZ0;0@osl!eX#5uVHqLgf%d=$#*`L2HWP_4QmMjRf87W9srX3EyyZqqAJR750S!pC! zlPf_K#vqAKl3Z(l7K5rfG(28pU5tSIJj2NI$PbUP_qgi*=-S@(aeo#b_>TftU>Woc zj*hL@JvQgJrnu4vtKc3)eD2Wxpm;p-jIQn23+2%mhdLm9SpLzBRV=>`%_PlURU~=y z;xoJMq~FYH{hi|Vyuknb%56XW=zwyOJ~*Ic1pmX~9Q}XlaAqT@up9r~si0)hfz?b# zGgR`p+Gjqmba)CC{^oyg7yg%vwvz-@!_NPal<4OY08Caddjqyf5o}~{QqEw>FbH`^ zXP=lvuc){%+6w$Xj!EWouuS@9q_>rn($kjEEt(xCh#cJu9^E&SV#~~>x=X*NaM;kp zjKZ8?`3AVm{NC;Gp7{T~H3t&leraSLjso1z$jDftZ1YrKu{aN-F5|U<3G&HM4P%m< zDYx3iQ(n(j$)-bdAvnM8RUn42g|!7+i|}d%{_oxhb@3G25C;X8YxHkSgp|1`J)%0t z`;D54SU~?SW39;f-EO6FeiNNW(Z$VSOa`*@TR%jYz#u6)ugyBY3dk|3J9p zC0IZ90rNal_5vn8z8d36;?@i6o};jQl11fafG2Nm8?-nKlEI?O`D$eMg<#fzW!!M* z)dd3`J#(CK-O=D@?^0;Lavf3fV8B?l{eF#+J_OEd2x%$o)Ql(f=q|{0PmVNo99K&?D6RqO z6|YCjUlUo9{(*7zK3LFS^rXrF8}txmof0{xWkgR zqRB4IQhlP|yBI-`k?1pRZG6_p85WvgMxF5IkD$b*KLG<-(ge*7-Zf;l=4>J*J}16D z&@27QZ8rmN#-VFP-s~Mql03k&*)!X#+Q#qR+~Nfb_Vh{Tc{PvE2Y#-gfp@{GUu>U6 zu*SorE1-8!bOpf5mDEx|uE(B{68#!1HGBn7k$&m$2+uR(_p!Sb1~)O+4S`xFKO6-*9+;{Z@TjkJ-A>YzoSa>!NAB7qBpghH0jOZExUk zkJxTPudgybH+j{EwhvH+pyM<&O&5oPpYD-*>s$S$VMpN{-GINO&#t)=c~;$uK`s|+AC6ljD2_i=!CzOhw@ z7g9xta{w6rK?(F7GeaJ7=Ue(*o9$774@_$_)D?I=0pwj4EL`l~$2AksuJGV~peikm z4vmHhw#YH8t;WrEjm7GO3D&Isb`mbY23j#a#3@J{9ErOC)zpi3e++bgbX-`Y^Ax!~ zZ-53)fp@_Ku&;9h1L`q{c^DAUHY@VjnH*10=vI47`MaqCy6)%m;>D9XM;b*?ZtSCl zuj8&ur4=-D!~;l>C(7m7R19G`HNiNdTmnE}QJ3v^=#1Ba z>`Kb)mJ%*?9Or6a6)p~ce`d-m<^$gf4PEdvs(8e3$wbq%2-w0vSI+l|_)Y_x;idwB ziPojIt;bE+`oOAQ2r};UeKq|OPfg0zMQFV;5;6H-T?(W@^}da z<&MMVQ)~`wm6xgJ-BZ`)@kVp`&^Vz$3vK8roNX-N7#C_k_>@6tq-Q_I4VRKqa`?JM zg$2`=g%ER9hqJ<#jlQQsf`ifCknUExG^5n~)0_`W{J!I#ykb1ic|@&OA*{ z(lX&kq*HisDhIl7K%;NcZAN($$MOL?Tp(h74J0KdS(Oa+vWJIt=kAIz2)GfVIeER> zhSVuW{?$MYRRUx!&> z;0774lLSx~(^^i*eb`akL~=NWf686Y(g0ebOw#1_E5*W~xpOCsG;Qs*4hAY_QXmNU z8&lI}2BDmPKUcv61f*)C zpm13ji0kNBV+c-RA&vUc@S8~yz%eYAkGf%b1}&%| zfL-m+F-DyTBEAYTA{teBiRqhL5wL1=Cz0UGX4N!@l@4i)b1P}YsIhx=n!cy~t|fm7 zZ&94~l}`&v0W`ff)#0VVS>M=BVOEutG&cg$N5XVW%Q2qa>k z$N)~*4wq1Sl_C<{)iqGK>zluyyy>n7(WHm)7YKmCfY_hskTlK4&#Sx~RTwwP%PJ3; z#a?ohqkvGxW6Fb?AZo z%H72sBBoHIF96vAgkGlM0bJ1bHzSE6u+IQkdlj?2%o<9HyAYyQkc3csRQodJoqbma z>8;+6=EV_x1)edpe+I^5qJ;VL*H5q8dE4SREWTY<1@3U7W1%Iu?uSSqFnQQ>mq-5y z@$%odZZoX8S%z?;htnOp$4CI=sR>)*&Bkso8?I@4bu&w~A{{%{(^!sAy9Osgx80sF zgXv$dS9JY-{O|P#*MJ|_j&olxeXZ^m#FvF?dlZgDdBGc(Ck&L|_ zC5|L@KSjs#*pab8<%;W?`MayLPIq}a!WtGu7``VZ5rIi3>Z2ifrG!{0`3eWkspC{I z6$R`qBpIpUbCm~wCVO4FllCv2>W!9Ewu3xs0~Cr}&T7%##5-K?&e@5o>&M9N8jqKe z8n55%6FaE7esUx(p|y0vYq(nsssempVGsyaOAMB%RmGWi^f^i-U}R)rQfhE|{RdTF zO=bwXzq3!J;bR=hv3&T4)o3+(wr8IGbt4rq`+iYTB5z43 zYbU>KVTY|h(g;-Yh<2VM`uh5{eZ3M+1^)4ywHI=gNXAl1ci%37^3yz@#RJv{?Xd{+ zKM0Zt7G*uX<>VkDr6myfglal(m#GIAi=g+@c>CP^BQ`Rmn>4fIFc?~ZUy&#;+KtK$ zNKh`@R?rzqi6{x=oG&1Q*iirRe(m3q=zEG8`Da|X0{E}IpYqBTtiHs2$DF*M`-Q;q z3~MC3`>W^^(pe_wovvW#^>?4W1>oVD(^B2BV5CrJ#0qp#*7kN)#`qhmrsi&MQ_a^KM{-WT>1=~7i`Ih3AhEGS^T(K$v$~b1< zs3FrJ9dv>Fd>y>Y)y7vXg%^&?E~Dp5gKTs4X?T1cgXfOBkGGSa@>u8BQC$Nm)um z*+3)qBqG1q0sGmTH5B2R#qR*)_xFLQs{DeEs+9cb33+6#fXYqDB~HdYAeSsVn>i*sp2cgRJMn zb%Fn1lkLiU?V$nv*rjMsIrE_sEtY7YzH-IC_ik^Vd`Q1YLT~7z-Bv#2gz& zqhosU^u(Qvo>i5kPxIlfAk*|URfo{`qx~=Dhx>A1-iEyv+8C004KkCYhbJSw?|zW| zXjZ4Ol(tjO&oAd_PP+g6+Q;L;L;6vCV5dyaAt58fPC(53fr9&r2LUSa^^(sZ547wD zRQ->-ZMtje+Xk3fIa#3F59}@;>%qeKKfXrbt*UCuZRrVPv!X|U3dcgQlUyBW=oP{k z{OdeIWxoBt%+fwQJh=YPQo4UX`(O59S>`Q+=;~;%Edxxac-SECpojZ&>GR?zafQVY z_jGp%^}SgGV=w$2cu!BWcWsjG$`aiQ?_c_QF73>)d3A!W0FN%qhO2@(G)PY;*e@>H z_X~2D2?LcG2D6r_`NXWn6(c7df!;hrb3Po!4|Dr6;ALFU=nA3;CNmeI~UGWXZwD|F;a+|E%cE<&#~- zS~+T!?#5W~6Ktb@c{EUxK99o_>Z@+1W(0&-(#3(@IgXE041?3~cUoB#*ys!RZEbBz zT(?fMl@Tu)%XS9Lj+6FP448mOa<8n0T9*x&E?k=<^cSR2hhQe9HN8o}h5LaoMiDSN zjSjZ={&(eUY)sK@KomFN-eI7B`Yq+VdrMW5$2dKAbx9{VC1# zo3Kf7?KAX;1_y^Bz_|D27vCjDMQ~NF{PyW>i6+VB1uzJ#YZ|ZseL5dWKscdJWSvU{Y%#L*#Gq758KL@&T=xKPDFkmIh@J2+uN`MQZM1ILZ2c&wh#ry zoC5Z0SptU>-z8s>2vFAicD4NiG#CinRA}^h0bd_)+OZR;H(0n`M5aPDdn*BCs&Gl@y}-R5)A?D&w6vg19}HyW39j20e-NMvGoe zx1{LDI1IlHh@>;s1NpmM>^vZ6nx+zJ`h-TaGxI(#4&x2Re3e8_Rd*ZEeEcbggGM=v zgJ?KxPYw<#a#|fs;D*W6I$-{e3m2Jo+BsWW+uZ`z>!3f#CQ2=u7qf3&esy%_nFY~@ zy=j}RuFaYZWL0Zx+fwVoo}P~MWiCe+`@2H$^aFbXUVI+B?d?Q^%GQ{p7klFvfa`8D zSMT;-qELOFMg)ttU|M3eBJ|9;Wrbt-ZQ#4}Q+c|A{QB|+)5NAbj#CH124iJh-O+N- zlQ85@Vmu;DPR7j#oz6h#SAew%bo-x%XCQ=}NVDVvVt%!ZAUjdH(PHlWmi^4>i-Zyg z!R%kd`?}toRdTn+Rb5Jsqw*0mzN)bi{234fwAI&Lu8_ zoOJo_lt)3ID@c_3RK3b8k|~IwQzdyhG!G&xw!7oeI*fEyKsO!C@}cY^mwh z>nbeZ@#xusUIOW?8mBEvv_5bDZDu>8pve@MM97&jYt@3c5Fth55WnJQGMW>2miMGW z`a4j3??w%nw6wJzRs?$HI*=77cS#s^{yuHE&ZhllSdj$#(tNlUB#`Y!tkbkozh>|Q zdk`cw9On)`SI|}2oZ%9p>jur(-CdlfyOWcAm70KMP=vR`sMXoD@nt|(o#j&Z4Uek| zs7uRBNjqnspN$C|ehRW$Kyf0i@cjpI#p5Orb*;f@kW!W0aS@AV{m3YQ$tdaa<(2z; z3A^*`iu4G6AT+cQc~h!~7^;?|u_LN4{^i>6d#V5c@z>+Cl0z(Fn#{032u!IUMD{aV;itixO!(ZfVQxt#$dcydJ$^!-& z)9#uq@@@!I`;7;jK#9n6B;RCz9uUh{hX z(^Czl39Js7(MPi_;CS5kKvg{mb^*!T9*;?Pus_K6&#)e>lYaYSzPWJ0qIZ? z>F!pL?(P!l?hd7tRJyy7?gnWN&7s>v*P%P!3%&0r-tm58d}Dm?Gsd_7J+=2f`&!pp zbI!HqSZSJ=Q`+%WCv9@w;Mu`8ATzx$?0@)HNQ-Fb_eJ8RmhVpbmgfSGMqs!*>Z7JK zY(NvP>XBFryqDxYjR7eGz{je!6M-Go&hTKxF(r5Qb@d2slrz*!E*U+)D3hF6S>oNl zD2jmh-T(uz()Bv;mUXYkFp*RjT3k*RU2}f(er~(A57Bwrcd=%=TA)hnJ@MTZOQwo2$R((|F-D^REjd${wu(KUH zI>y%@G<3;W_-I}U5SBZZe_XdKuu|O_1v&x%j8T!Qa~{N!;#g!b0f(M=jI$cGWA^;~ z14@gGWuCl_zj`A$P&Tz9k+?VO@epOV?AEhIuPpLcgI&_RIg-5_I4}f`8s{?K-3rLk zUF(ld#UpAune`C&VNEjMuP_i6LZ12S%j@pJ>mW3qDSn2i zN+7ZUyU&c+tlL)Npc* zfDyg6y0ixN5VlO>tk165wR-XSO0I^Fy@nR!;|Qmx)Ina5GUe^scAg4cVO71gN;em( zx`9guK}`V`7JdsbS~7H^xPR(38Z_zF6HW?sx$HS!zX>oR1zQ|$*dll1wibYiOP@AH zPc!}yy9TZX01K$vgXWpHumjDIHUO%nxH>!Er0~6Ndf&ftA+!kxCW8zqwU!3P{DABL z4&af7IQN>P-j4MWlCN z0&rj0U3A*&*+Y?fq+Vel9y&94)O~k7!Ej&D_;@E5r#OivfuU`3`TLIm4U6zXO569Y z`_^zPVGFF<80^&1GGod2DWw^E`!n7jV!MjA$^0!g?@#Uj=lV{dtCW-J zPN75B(H>Gl2ezn0ywylY_^ejy#t;FTGhK~t53c`8Pre%u0C+<12X(|3=BwS6JHz{c z(xfAnUK^|2f^O8bG-qSpmdz$k!fzGiJlCXJdh_lCWJxbO_?JVG4o_*fdf zKi|6)`~~3CO2Z%}0v;WD`j#SwjwL)pVeqC8WJMMO02G&>Zk&0t+5o{s9)4KE3;kH>lyP1_Cp7u-! znNDWzNsVJE;MW^mm)qKiji+2irMDM>NQ{6K`;IzW8UsNB3BSHYfS8cM$NY8CM z{c|x`JFNb(_vP;&12fQI)NsDTGk*Xer*L`f0x%Q&L5+^R!4rExDQaIg>b3gx+7l6D zmwQ`nzzL}8OcsDl5m#1+&+s}`Yzfjd+I?aT!fii6oq|^+k+y}_JTY)* z<13$Sd|R{~mNYs!Gx&vlb59xWsVOV|CIVklWOKs|KVgHXb}D3pS=B4tDe3$Is2M3R zw9@qfgI!p|Kr(Cos(pEfzaaqK1r!-Tiu!QTPu>d~pFn5~6>qu(wb=gme7gS{tKh4VR=+nAI z{qoKHyU51BxDg=~D?6aZ>UsiSyfa)k zVKcmC^v5@6vw?w)E#y0?_()g%YQsi}1u8k&qSQ_FRgz+*l_BywUmu? z%R6tN*8sd)m@X`J00UcRe)9vrJqA>>@*Ax%Dz9a+j^DsucZ@aBYe93=?hhCtpxfWJ*c3);NAfUF4R?axc2nVGq{MsfSVg{I35kWc_K9?t~noWsUzjXkXc zE5L;Xw(GB3&Xo_|B+9PDvYU6D0ZCKXZj;ypB!B*U1Gw|s;9kU*dEl^p_Fxy7a*2(7 z{qVYvA%)k4%{$3XTTkrGaW2>^Dsk<*uD?hB;4|nIBT&q&W)WrwK1Z62UePfzB0x>^ z`I*eNettHS^ToOI?W;=5KQv~7wz7C&*@pbzOil?M z@RoT5iuPpG?G#<)xw(dybKYEyM??hbCEpsNlP`XKD+G2}yu83ODIv5|-Ofo&X+nE?rKt=n44&<(DoFK>2WVq63mR|ba%TCr`@OeXiUxUNp zDG*1n+MI5LzGxW&Ql<1tf2Rv*TOsS=Qdk8br(>jPTdvz12EhU-L$jw(ZRP>Ht;l77 z+i(x4E-1*eMwiXz%GnJyrFyLcnMI%82bLwtz!1cDL&99uk9GGn`jf?9f~Yy8)-qGsUIJVl4Y9kZLrrdmb@U(!c#d^|=m+L`?K!NuQ@P zg=&t=tEC-&3jTNo`85OW=>Kl%_)DzNP3+6jQCbEhmkPi&LZ<%B>GXU9eF6_ztwl6& z9ubvWg3;~~=$ZfZ`j>*=^k7kccwB!u^ZJL{cbaF&!UFVDA9@Ab*Q&UWE%*)F7^_X6 zMu!GEC203CgFzKW`X5-{c1TEea?tbcpP^+vsQxS>&WXAnUvpQk-a-?ST5aMN>bshw zdn*4;LsHV!O*wuv}b zCs0PTBv;22?{ipcGH}0^(Nu+iswP=YR=0a*P)k1^m}GwtJea~qoX!Ov#~`)O6m>Fk zqSC}9OxD}hqjEPhH828oCt_H!)8ruB()Z%uSb!TpupsAQ$#p{H$e|^tqhO<&2TPdP z)XFr&I<1h=po#!Jr1CWAzfhIY&98x+l7*$*9o52kThDR5z?n+1tMiSLPClyYFo!|p(+CaLdYXh!wIc^g%4^_$#_B`^ca%<}A z?sU3P_!jMf0JIl^o?)YdG%VwW|J47vh<%22KQw?T+bnH)ZRBpfLUMXpDR55B?ZinFP5;BgO zk*R|)!@8t45EJvZ2a6zKBeqzeqt=-s|2>HIZ+5+pQX8Kay6I0MM%gG$NS&mw-TYklY zp3*o1M=cYd(Lk%4*`5}t=eq^~XbfL5|D|{(GzWNHHg&qQ!G?GohDtK2C@R~q@z4~- z)K{C2$h6jRy(`LapY0rUCJZ&+*x4WE^plEo2QAn-Ws?(kMTGsKSA2q&|8y%A49a!W zGRU^(eeWrq0u>gOXIeRvFaqmZ>*-hxgFx12fE)^8`GQPKHi4tEyVdE;`kZLSHKw;E z0AwCT=`eT4t$AjCc3VgSqTpva{W4I{bOLzp6HruUyAIHX0005BbA-cTlg9;ss(UAkvHQ z2d093&Z4i!s&vgYejSOHm~sd$1dQ3@@#kARVssygTBq>8*|n*Zhs;DV&(+FF8E3z@ zCIcwVu)Uo7Oyd9;1+l`ZRAphUU^?(#AuwV2oJ83rXd4oU!) zu}*4%|K4*sP2KJ!5t;G%7!KGW(4Rt?_J7jYQeQFc`?Ii4EV}FOVjOXlafn}-L>fAuRD15nw#cHBr4~5?5VrbtuKMYggRITCha+YkzsRDf+ zCLET;w5jWppe_K1Pq^<@0RZ@&PJ7URO0ekeXFudcqdRfERcG-i&j{r_sMG6D%{@V< zOf@{>PDSqB`Ce!@@b(PN?Lxu$wotX)6N$v|H;Fq}yVvJF{M#R@^b!bjK^xKE4%Pdg z0-Z(wy=eM>DPFx9YH0eSj{yuU_=5i;UM+Pdjaa$+v2quv$eGh9j+FgI<9K+4m6@&7 zu{c9l$6@Q6FBKJb_xH(%;Q<)miV*!=w{=XB z!vH}k8JMM|jJ_aGGM_RvHJ{?tpue>>^EIjpLSrz=(v)6z3*~#b7?ATex1vaupL^{) zyWYrzRFJIx{Vi?&XN%xEs^8_l+j05Zh{~h1?;l>5RWfC6W110|RW#!pSQ%xH2nfodF)8%{ z>j0b``}2BQ51VTl?+G)fCd>EC5QkB zNY!kxrF)g0X_NyPX1KLylma+1Z;zG$MP{0XB$1ZIhKcG@%y*e4&BO7FZ??UCQnZ$4 zN|5-sF_wgiULYO(eKa1WW#CUUIb(PQ@xUezFA|+M134xmI}7bm)VV`D#mQ5&pseJN zLwVs|3?LT<>QD2TYMq{juR(mT?r4sew|IVHU9GnA0~zqG) ztiZwsEaLd79+xt;UmjnAE=h*jMxT8OCV#@I6z%ss_|4Xg8CQIefN<3HT)aBo*>yqk z;*qnI;g`RPgAT372n#HX6Pe}CvHV3`b9O7(thNos16eiE(H^7LhMSM^HmL*-fM@xc z6_=~WV)jPQxe76%>81&Dw1U*9>u;X1tKGG3oLgI_EO$U%h}CVzE@eBL(^zP{*W`-d zaV^?crit#hW)c!~CN zv7*1H<6XS^goUm`p_il66cE|w4xl)tYHusFr*A}glU&8;KdEd1JF*_NOdtuJ5iLn) zRAheLbK>lex*2D&nsecM1^ab~2@#|@{98cNkSMNq_W3b1O>bO{`cWhV1BGtAx0)-v7ib2>+dsu>5U}0dS z+)Ix$?&Fi-cN(#P*8r%F4xc;CY;^_%4lOj)kf<+PmiT#q+oV+l?vP@K=cI& z2nR}&-b!5Q*$EaVmJEA}CFN3p6%LH%30rbMbg+BdnS06WLWP6da@ukJ2~miTt(ia= z^%eXzfT6co?IxiLxt{6mVo2)MEt5lw45xgS!#{IEn;yxAidwhb5b_JA=WUcli_T5} zr`{QM`dBPtlCz$pM@>aJI9(u9a!?On;Gd2<6is0-0ZLJmk9sCQWoKnmMeJ!5gV3Ac z{NbSz8_)(rCl&N$Jns4#hy0`4A_}mJCf7T7Q4^t2o1rHU2csuP7vU#6wmnz|*y{`T z%IUg|xZ#mZ&rSX`y3ifIEHb*bCYdS&cZN}(g$z$b)5#}9YbTJj8n0Il?4$W&SYtZI zImVA3`8Cu|kG*YjITT6%DjE0%{Vm#X@rZHc?IWF}&9QDJ8eM!EjXSmla?sA>b~ znQIry0EoF5Bz@ms~K@Djxe>)w}t5?cayD5x&n7D$(Ss zBfJE*$JX8IlCI(Ob8vS|#l*3$F#~kd`4L{Z5ivppHZmTr!d<=TwHx*)0}779o?^A$ z*03x-!pxOu_{5%(%;y!PA?5+Y|wo42yN z`SmV^fK3FB>@^(Gn#CBltf|B9sCdO|+iia5dFAz(b{Hw=!b{W@_)ZZKOPf?_T%Kpp zb$jR)$;8I|z{V#Obnhth4Ul#3`aR~}G4*C9#o3xmieY4-^1N@e#j8n&68m`SCD>9M z0AShrL00%{N@ixJ{Tl5B(&YvhwiP2$`(2#9NFY@|*GTHvGBdGd;dla?_fD3X@!)8$ z!y5_D4bJ8_Eg!pce4$LXYk73rr=thYh_}avs!y)mLOuuedd{+(S@Lk32_h56Ti%%K zwqRvr`veIUoSIV;_OJUIhEdzJjoBY zZtYDx`5BgK#UrbgbsV*k)oT@;z} zr5FTHOdOqNor3I?UgYm8g#{tuzZJOh&zLk2#1FhSa(9n~H+piW-yANSY6zctK)v^M0A} z@HBAC^Niu;3=&GRQ4{-**?Kz&;&AsOZed%f~2-pak zf*;aSLk4i;H8}aXwkAs^MhMH~AXpC+?b)?a*e@O#*Juy|6ST zRbwaBtzK1r!Al(RV4tWO&JiquEv3%6pPeS(L6y^*w=+FS+l{(M=iLbmTjB zzTAy0op_yyog1&EQRRT#2VwIVqnDm@j8119*7gvttni0U^YX-EnnsZaAH5)ev+OG$ zxU&52^K5ZH?`1n*z(kk$)1IkbGW0!unTq!hg5+r7xREFS#sZ*c&haT1<^5`m&7#}# zqAd;f7zb4HlEq2lTm=67ckY+4(+Qa%cdKSNvoS|*F*-h-wU^UVG#2CDH$ib^9|dPL zcyv5}ll@RTKi+m$)T;G_-KMsvNy6f}84NykG5+}Q!CLofTjkOxf|~~~(AIUi2`O<) za}i924q1+=w1wqnkFE3t7cRIS(2QC1YjLLFbT}})*;P4cf4v!L+378iySZ@CGaiL) zJzE<7D_PPy?rf)tCLr`{HhSO9qRXk`OvX=of~r$KSsmFr#wrC;I-479NQ6iS^{1fZ zM2u03u|4}m77q6Dn&EYJf1e#G1#Fk;P!tosQ9bM|4dS8XaBWFb+9t`Jm$wd`;au_l zF%{Cj+Rp2vrFkzeH>S#+hEfIYq&;08-YS;NOQ%W}de2pE4r!~1T1{I;JzqRIuc{O& z4_ouD|4or2TUix%%7ctUg*snrMzK31-fmzr;+B-1=9IYzja-YosjRs^&hhT?60b%=-Se+2Cr* z)C_fd!^YQws{HwR7xIUJ?dd}F8cAu40^ByAwwb6W5x*2^EeI+j5gUzA&Hb8V<}NTA z^c5*GG|$bLvn%ucD)Ua>S<{?iHuCUM!ZTuYg2z2HxpDzaI=>~?xAJ`lhiYmZPT7sP zSw!I3mqFl~EaWZo%DJJo+xzukNCRO%`(R&g6GCZJnfPvY7&ehvd6ab6EgZD`wk<% zNKjY16DBGvT~s&^{Ns1NVi?_1zY3LrI#fQ_uzJ-L>Nl~(R>Q!4lNAz@nS%XF-lG+d z!xRbTG}Y}SXqXb5$U3W*Had~5kUz~jTq$r`SXUOR4LNpFb#A9~;eVh*-nCtwN7WBU z{Wv?fMWk>el1)26!sf2*O3c$}$fH*6O3G5b5wvMhA(g}w!OudKT*)ni%yIFMq``QV zgkf#Q>Fjj_t%~MQ*ZlO{T(%-*gv*XViNd38Q>lemZ4Qogml1=SCW!~#=bL2tvO>~| zf)cE|SK*7d0?3?s7)9L_doBaK;W<0~9IaQY-TW?F#T+=gT#*qDL1N9fdWP~=RA{}A ziB=*CjhfDT+%Xo;AHHbcp?GQ#GEbF!4GRp-DI4KG-=||3(~>2m$UwYo@vEk2X5E zc6nFsj0IfWYPpNt$tmd0PB)%k!|dh;`3=*)gzl!nNKVzpSTP)ABEll`@EFmgjN?a{ zBc`mArknL!^z~MIKX0}sG@+j+<;#Qy^>Ov_bYMCevE~|ym?SVI#K=+Vg{WRoM^m7% zClHal<@$u}t+s~HQB7YJnHZ}5|0#$At9e4~Go9%nq5o(>z{!#e2w(Jo5ywIjc- zJGkH43@okuO%Z9abd6Zcqo0`pA4}lXFU0+F;^nE7(ZeRfVRV|!lTH&Raf&q|WuXQO zOS!q(3Or(0b*T_mF9Q7Nocjeu4U14X&?9je{jF%u*u}XCjgu`h2`>8LB*eWaNfC&v z&E(q`o_ST_PN=!aB0DP-K5kj(f6R_qfJ&FjEaZ4q`kV>m3edMZitJZYGL-sR$VYve zxCxh>b)3vbR|YLgxkk4kP0F@*n^L4a{rT)Q+<|Me7-%AzCF4$|7DxOk#fRNzi5tq) zk8pMPi!y2hny&iok}$uCd72GnX!m=x?3w3>LOxcVOnon0oS)WG*Iykt(~fa{X$;#+ z-qC)l6j*X)N#nR;96O9*(8v*3aHcF^wdJmqEgTJ9J04pYeedq3tX{Or$QFGv)N<6? z#@EeJv>@z`JX_H%Oyn2(9ob%Dj3px8{>8K3nih>~zlZl=O=v<5nwEw)mKfSp+Y!MX zud9s}Jtfu4(y3-Nc_{a?@_w*mvQK0sHHA~HB~uz1-_Fc3lySeaHz*8GT?gAsll9e) z78NT)cZCW?66m1Rl}aqS?`jNEP-*~>ESXH-rxfWz7t_W>tK^9G zje1_JV+^Ny^Nrybxc?k$L*nE5=n91TQ82pH0-;K*7CIHPjTFgFF#I7~d1B$*%SX8j zGDr!?uva|ECLddL1BTYs`Mc9G9xnHWleyt0zmHCy#zwB|tNf5-Do^{7I%3+V%M1nY zFjjHiAwZg{MnOZ3`0gUJoQ{>*N2Y6(_XCBWzbH~!g=L?w)VgH;@%;6ATR^?hQO($A z<{PYc-;o`2e77E_Sup&Zu-l^6a&J=2{`C(;@uZMg$%XmU5;hW9|wrqCnxn*G?9Lw zSFKO2e;YQxWg@hDMMt%18MG+o8p@Qzf!pAWjoEJTVV0*5t!AX1c^yyjd$8QC} zRQ6q?RJ27R-F!z6&Q!X+Z?)!Q{+(wX1buERK6>1Of()EMFFcMQd_atLkNv=aZ&N=p5{RTt0F+ zaHTLV7oAPWRE%Z%wj5H%iiUc!yLXhjZhC$^?GR!V~lm(kG+WE+3Z*9*!kWgSRT zQZB`D+DFM0R?G?J`8wg7-FdC|^{N+4ZcZKbGKnv1(FaO2@KV|3zwl8${Q=s}TOfmY#Ug5KFh7Dn_$uQRRJ=4P$1N7d!`Xv3H7= z_4W5^*1k;>QsXlfWb`S*FKWk_yXjZeq&G|B)~24Wgm8zr8ViZ=U{2IX8CF&$7Y7^v z1BFM_km+-VH?K?Ku8b|rh4o;*C;#}4yJfQne3GZcCBSP+Qt5Y~@c1PAh!L03=>Ed3 zc6PW5fzLdylCP8;CCWPk*Q<&! z#f(dnnhL`ic!7jDRhs@;PObir0W`}T2%)>d$yh^9`TIARa#@33rpM~Lg9r$x4@m71 za!2HAbxU!TUlw{TlpafHwz$C8ttX+AtcSJNN2r{v)M!@-jrJ4sSK zKUZw89kxOSGrQ1&8Tp*rFq_PO9slS?Uo#?ve>TR4SJ}olI4~zSa$DF2RB*O@*~*xf zd^?g(C~ZDeO$KGTGFe`k&b$d-t<7O!3kS-|+X?*NeA?(F(%S?+q!6!j5g*bNcaxj1@O`ubhc0Y%`Q%-k^u)kZEX0nf*iXB3gOp zu=v`@ca=Mv+iWLmxo!EjvU#J?*3Qkt)3U;FHi4)1>Kv4;Yr5RgGIgpk;~M-yp!ZU< zlGngvqJ6rWMcHs{%}|apx#phF* zZM!ek@n^2>!d{HriaDl@+m6yRdbx4)Ah?Uh?UI(p6d8Mj!PWN$i3VpEd4*CDE$N6; zn+;tYRvC1Qo3^Su$-2oE2M=8t7Lx>fpLo7)sOK45x3|+EawkN&L2(>XoK)1gxN;_( z(k$)^D&%dN*Y&u26=bdBb?sU3IZ~u!Py?BHF7n@40Pm0L2O9S^Fl#E7QHa~&;AFq3 z%yeW!AOs{Q!f1!UHB&BCI}t<27V_)Zw%5PT(8AAl-C%NbD{X1Bo+oxB$bC0nc4{Mt z-+0gc^07t?E{T`(6o6QC?Hjl&8&k~pNvBn3SL3Sh0$U|V<{-$Q9rX~F(%=Cy*kU#5dkv>&aX>?V%OT3@~^F3!vS?gpuE+R>|q-!IzF zFt|&zE;+D7%M=Yb7_1=A>uEcLt3&yj{|g6&_!G<};zbW+68`%=jCf zl^6JY&Bd!p=~Z|5?V}&_yVyNNOUNaDV+C_Z zJg)~a>TmZtvmfwl9iWL0Ee~(f!6*m0mNvFFa>Q8}|MC0qProL+@b8zuQO>dVj!&gC z7+((0_Y#=Qyr}J3?J4r^Z zU;7LMZzfBJFUPfgPCz4X3^*awr#B0QznF7S-S|X@aQA;1Ao^pb%aou!Ih7U<4i7>L z4@1k;M?RDYK9me6=?DKg=tI^*kL||u!vBaqSf|zTDwYbl95T42Y48A{HAO7R?=@12 zM)6oCYPBe~&677;*-|ucqBw?Kf;ZsT5Ku)PvK7M+Ha@qHun<&LQ#Smf=ouU9uFA3_&S@X%Q#x$jVY3^M#dJra94 zr*wI@R^ghnU5AcA6pb8C% z5D<-N{;M6~Tos&R>6ZaonYY9N^n>{jPMPKf1F^p!Kc56IZbYk(wjI}o_`a|ItDa`; z0gbpDNacUKMty=G{)b$;6zM-`_*N1de1zI5mn&D=I=8nh=lhSY0UWD!liK;i_EmNN ztHAbe;;3L$*!}VNA-MfM4`6G1J4=+eYrc#54U{#Fi_26$pN69L3{n5#qY)4W2|+t> zaAXQTmzA1}RH7AW4IL?Bub*bR0QZ)N`U(1nP>EK+Mxl0B{1|Rn{{~Ww)T z-|Nq6v`~}EE9XzutW_287m^>2bv}O=aPR#PM5iFqS#sUQ*chCM1xkk2d5C5?`Io@cq3_tru-zDdUoV%T&u(D!Dy?2Sp_OfJJf<$%uV; z=kRf=OPOc#y3wE6zgGV_>r_X4rWrNiEx2U|?H5=%xnp|R9-Ivlg?(ESH`SpLU;Uye zk48od!xY5r4Q6L_Yc!JS(UxHFI%9}Ffw6NeFEe|`F=jR$wrkI7AE+{89ciT6uP)t5 z<{Uj1Pcv0_%8Xa%*AA2oFZ2}fW3>aiy6 zb8gNcDi|eQUKAusqp0|011n{JcsVLAhw16aLxSeUT8(UltH&<#H7c3e0{NL$`P#o< z?lBp$y8-w58gWIL_nVI$E2|vTn&%ZX&5bRU5gqfC6I!3?w!E`WXb0>F^$Y61qaO5@ zmULeD1Y@o~vOrpWL{O#j24_^(My# z_m2Y&xQy7wC=%v2YwWLv#HB0TOwPWYuk8F=(BE@2~5;%(7wjQR_42T^d%@yPW1PGT(UT&?l2K;%K!i6&3Krs+-!eO8+s~N?=O+5_pmVf}GSVR7wQgym6?kiDwOL?zfA*mLq51#Lz5V-b2>&gl|6l)Ry`JZXoeE`z-x)CXKk$+` z-QPu@W|Jzg@bgFW>amNcL%%#g!0V7(YJ2ueA5T@(n&Ml7M$w3=gI#uzKKK*Bar~`2 zQ&A{PK^0&h_U5XY%W2?F%7I}MLjFD!hfe4#Hs|G5N#6Hw(vH-FK*2EYKO?yZe`w{b*!nrBb%KXmqK8vY?AZai3?{}uf5zCa ze?!mPD3xf%0*X0b3}$pZOrp+Wg3y>hr+*|8s4Ro&eE+>|NB18*6y`1p`;V6%rhEri zeGkKPbO{ePYm@5_fO0xV6Se~^V4_*GlM%U~M){oBCNO7j2w zCu|G8ei$(Z`<3x9Sv&hhCmWIz=@6ev$G<+P*ZJpxJRKY#k<3<@h2kT!t?d`+$yymmk zIyV8FjJ+3gPKe7&rzXY@_wBVW{Lgd&R5C|9O7k9lux?*`PJkfz#1~p?_QUMqEqjmH zm*SX>`$18gpIMiF5^5~4Shv|q9Im~)37eRm&HOE-3corZ6VPFXUtHpbD-OwHDa5sb zVOM3WfkQ3sEr9y=!9BU~8bjU!>7wopYz<`XS0ugNEloB@H?iPvyg%+RdBYKxSSfHf z=dvSH8;>0QwR%qv4$gRQ3Mw+?Xnz)2=mo@;XB5b)UeBE|zIy%uJNRGG@s0#Y0CTgA z-&C&omR9~Qy${h6^;9p`Rx9(LmM!}-M+EjAW|zOPF*cU_k; zMcb#KcUbq>i9gkO+gCLtF(yYPpQB{DXv9Q%EIVs028ljc9CiK3g(7Uldw)fI#K;$LDFA)VYanR}&`D_VKyGpy|9Lgfr(N7)uKv*syHmt* zJk+~ruK9GbDBx_6=%n>-zIHi0IZOsUvx{P#gn=Li=jw7S)oRhjN2lpJ=i*ohag69+ zvm%V2-ot`xyX*4GD&1O)64`x>FLcA1A_MMjZ{7m<;73RK_L|(#RMvjtp7!1f3paizpT?zzGH<;pRGa0O9 z9Jn>zZrmmvjE!o~Cr^JHWdyLPvxM9Ant*f3ok924GV!y!Md|*!46)z0cMbCNij8-D zHKM160~)-`UG6ceQBWeDILQ*6wWymaJ3>d^i@f@xkb6z&hPu-6<0<9bt%iQQbV<4Xh=P$Rq@Y^K2)2YZ! zFOJ85$;*FMmCK+0ysv)6S-^ES?|@3T+9i}6S+l0hQ+z5muAg4qW^1NSGs|_t9sSjQ?gFou(k(;8{s6iKHi&_&L)@;oG_SGE^G3CFpfDpmR zIjm02iQVkfrrEF<92I#Q;^|oFr@}faz0Ra1G7zz#5VZ8{2H2r7AU6WT#XU|38jN+B zZI2S>cf^RYBQ%R$iwhOsVn4O2H|9cn2g^zUpeI{28rON4&Yv5@Nl_byxKw!!a*0h3)`VK9F$cJ1fDg>_K=O5z*rgp4zpel4$^)K%+Jq*9~6V! zY%1(`BXWKPnJ{6LXz9>7HqX}(0~;n9(oao5;p!6xAJH*0or9!#5}4hiLnll74&vPoJEoFFxWj#J0i1 zVQGMJ67uIf0BFTjNu4~^xO+A64{k0w8y29|0e!Da0r!y{Y$boLh_&yz-$#851($_y zn2JNGEn4@G+3tE99{kE>(>IXc3nqFxfht*U_2|aQCMxdC!Okgb5#Tyf-cyN+Q%_G^ zdXMp-iF=^2XlEo*1MFz!xh}G}rJ=d@luXsFT^ zAKT_Dc|exY?4{?w>JhHCdn(ivnxMRBUB8=7Gwn9(*XPoQoo8?m%@QS{Z2bT!ztC*h z%u#_NFocS1il40Ot%6RPim3#$j1K-QN2mQ$wl{Bol)XA`0DQMs4J*D^;D@Bfpf{|{ zr8VMy!bl_V0rRt+#UJ^T_{`7I+nK`JY?ejTqL!5jS{hEm@sgMy;A#d&IHw}<0 z4-W|?3xyB*GU|q=bpJ|{W$u$?e6Jff&)@rT#;S8idy=||0^Ul$UnVp-^fj(3k~E!+ z^DoFe=$_H7zK_1XL-SIfpPW1mf10yM)1ocQ6!^|$3WjYr-ZZ48t2xf;bZB#FKcvz= zkKe#fs%5hYEmIWXrFx!^T|n|GxUQ>yZTPECZ-od_;01Y>2ur}H4gqR@hr2<8zX}!E_dnf^!e_>zU{nq;&2^pc?Hk;WXb7LUoMKt#VQ97!GP4nn-?c;KD6`DQ=A#_;GINi6nz`A3cdwpZpLsC$MlkG&93 zRfP`eFf(z^rM?b7{JjMvY*YK)GGhqT*=9pAWRr_cN<~TloH|=)n3NxC#3EN(CTxym zo4YGntSMC50$fVzqTpyd>7r$jY*+%j0GX3o$F{6@Jy0`%0GhyReyj?=5y=}4Wuqw(-ePfGS(y{?m6ZR+9&r2d_QHzKzdf>#l}=YT45=yh z*biEE*EzEkaC7h;1S{hyi-W|gux)nc97=0!Z^5I!$}uo$ zQdtWOV(yPYr0zwgln15G=?e!tLiConn9sj6Gt<*j_q53;C9AvWt=mEvUUO+ae05ht z3au$?e{CY*vYLu4nRnHjw3QIK zFA8e${u^KiR@Fo_u4=`i{NWHFL)?~ckP-+rT0G7;kn-Q~lNS{HEN09NDKlRlc@Nk+ z83FGDG~i-20A&iXIWHeO$sBz$KQdu+>8{PM7Ofra5*aW^u8p4SCnEOjTKq{(|LM zK+ne%0aEWFAdGuF7#*Cb=qZi$x8MXeSFQM2W7}FdlL@yg{yluw45qr9i&fKs_?%Yl zoFt~a^r@Mu+lG#p3DN{j0qt6E{4kp}iiwq?1=26%X&hLs5tXlX9fEt;k4C%EP`*8p zqZ$V&gT$U$t%!i9L@FvI2NKaJz8*NF$`NLFx-Pu`$Wu~^H7-@9$ zBk;g$gtBj&w2>}aM?kQTMw^bO_vaP1S@??&D+B;lrs|pk{ z`kaj(KU8h~hXMOjQ!%s;wN7M-H>LZD&e-jH6{)i@h~Z<+)uD{K3|B%*TnDDHuD1g% z4hipCt@F%v4i<-owwjvg*7ljcJxtd-3HO#H>WnlFwX)pHE42DVZ=~CJWKLQ#sK!Wd zsB~STTf)#=k|qE&k~q3dHz~Qr?iXbkf8ZFr0`Ryet+6(Q?S3be`?>Xyk*^NY3iXu#kO z(vP~Q)TelDA784bp6At-MPI}MC8pQ!et8RLu@6g@5K{Qocj*K+x3=st6ZPt!vlSre zKE@o_>KDe!yCaSjuylj(kVj5lm#;1r8|z;>e;T-es>S{_a zPnJ>6wb0ko6Lq(oy|&B~xMv$a&D&j?T3Vg$+hvEe3-q}E)mx83W$edcbSeB+RAew> zBJv&KX8^v0vb-Xvc2e_GD9#Yb#A^4ta^pLZ!p8@pGi_{>XSTt#x}jku1Pw=r-?MLy zshr+bQ?lFG`esgPQ6jQoZ&1<%okqfJN?*qX{<-|OnTDEZ{-^eW6I;HNT?JML%1w5;BC`*#+yQL-F*HUU?bOi!M#H5vybVn9uHaAwD0lhZj za9sWXLyK*5VZ%|0?p@VMi6?7%#FxJBJqQ|8U|gv6V(B7lD%dw8BBQ4+I+ zY)W7S4cGvTG_Zx&+vMz^RZc+TJ!#V^VyJ6h5)&Z49KK5&bI%hFd0BZS_Kx4FCvj6Z z7b;d8LzYik;CL}O?l3;c3UjtZ{^e?6iwx1=AM9r7As9JglhAtiX;tJwV6~1EF|qkI zB`giy%ST!`nT~QMZ?Pz}L31i4SCMr~qrxGGdt2x+12%Mb*kNUJUa{7yy*9|L$^H$; z8L<#LrfqcENiF@Sr!96xB0BB+$#Jzj|4`_tAkjVhbR(OuXs7j&>$Pf_&`Z@^=(=~- z@)LYG6Qc7EUw^Q9(h4*{8^5x{g}Ol5Ujxkodp zoCC!7LY-Xp7G7+CWJh2oiyJz5ZQNT!deiJJx)xnSo5XHC7oK`ocYWy!>LNgOLGqqb z0f6;Rt?ND4Wat?!Xn9L3aNpK-uPIuru|1Kw)JHw>zWynU1t!?28TTqzq|~iT`)gfX zH((I)M6Lf`t6b@e=V2#d3>Dql*`JcELGnANZ*dv~P2r^TsnRbvoBTabI?qTi-FHd0 z&Vd@&BGufwC97#5Cs(`l=_6pD$4UVFjR4+S&GJ~n zmY_3-`hoqGK%s`~;gx|EYhv}KB);;-^TOHpVXT2|vYX~tGP5X!u5eJ`46W+P^fTFQ zEZa1gBo%*&cMItova9P@I^@4O_O{c!icO6NP`+_%ib7Um<)>@rsIQTm zlg+YvJpZtFsjAg-v%)9_ZRuC8p8SCL#6w?bowQ7}o1%(_h!Z~Y{S0K>Vj%Zs<0m$+ zbf~VZ;u%xs9GI}7Jyv#w|90-S(>O;*CK;x{c|uIAn)Ql;-Omts@@wc`zDe&GUjt0) zDzzQsn6H`ZMux~7IjaFzpZx?f6dk9aZV4Mzi(m=&De^>y!eEyUYEDO(Pun+g2K$}g zc9`+inqD$!clMC-2#npj0}LCPMr}s}Ajb~p3dd21zIfdw$|sy%CU6l5T+Yg zKwD^(Ws+I3f@Y6nE^|A*)S_K^_n-}A!tCx%}D?furXeI3>WW=GwaVjJN z(IOp~Hu}S{UNu4TC_2KwwSA0gs7b1JH;54pfj|F^1yF~kRI$6wib#C5*Onp-^mPSw zI-d&Mb5yW3e1UVOhL;aYFjaeZPnoAs0CH1O1JP*9)t9^CKxfa7y7}cYD~BZd{-1>{ z?}C65*||hm;f=W3e%z!U{cga0sq2;nmT5BBEH~e6_pMOGZAz?b5P!y?H7k2unGW5^ zu)qPN-sq+BMDwysvMFPK6{RKA6j#pl4|*98=Qt*q?pC~VIRcOX8tQQvgolgE4@uCO zRC>e-jBLGFZjKaN`tRqWphZ;OV3=wnF!RW!Ep%DBM~rU`4%=|o6pOeYD6U$@Tmeu>;Aom*MuUYasx2F|*mCKa|@`RC1BAdSbJN{jZe&QkL-+t|>~+xTLsR7#DWb2_dfXR3a?hQgd~i{Rq9g6ScD&u-E%@<7wNc(~ zeXBx04r?ntg(R4*!0I);^qtm0n(%hVg5RT?DYZx~&Qq|Qy*)au0cX2rG1Gf!Ex2@B zUPHD)XC@I>i_c|jX{?;xj%_rd_Ga-MWaF6Lcv+jeO%H1}RM`&TvSxO7*q^o(jz3U@ zjmW+c)VmDc>C5zt0Zx3iz{eNMhsb(D z1~}M(iP6C=Su{CBE~lT8Vty1O zQ&}gTzrOmg8!c57g{zpMhdx!eVlHSXVe>H|kac5qf#ezS*I8dw`=on?k(su{Z89P9 zu`Dc!%<980s&`|Em9I{%Vy$v~Kcqd#4$|@M=%r6LU%Ql6rd#d|m)$Sq-+u-zT`uD~ z`T8{M8Ps<~VN^}Cp+Byy_$Pva)VsAa{-XspwDxmaZ6$<*M$m5621BY>u1;#q(AXn7 z-TW;Ghqs_%|MV%)He8JQ5li`JMHL3nic>RP$>1gQ!=}k)b!0r$o2>$W*6H0Fd6{)9 z0D_ZDT6v~=h!@0^FK@=2Q;9_%ns3YOd?$S6c5XSN!`YkmdZjPvCX+s3(08t3DvM2+ zsf-I#uA`K0=NT%pR_$f3=G+#p1dy@rHXO_#f;ErZ848`xXUzaEO^R@0>(gq0|6*R| z=>)($Kq6%<_eY!>1{%xq3(hXGFD7*-@6})G<6<1{9m3Tc<`Qu1Luf ze|$n3ZklD8z;k;t$PwRFcl19j(Cq|JKEfhusK$kwj_PRnE~c-WZNiNJ5q^8MGU-)= zfyMRN7C}P0eJ)s^Cw}wi)vhc}yKCL2FIid|Hc%_*mRg_7{_!Lytyqp?D=}r3?#<4U zBJ-04J3fp2S~Xeap`!((Ih&*^)fTDR$jKXJHc3iaezsG4X6WJ9l0K5-lS6AOJI&iR z+mnuDHdZ*l^~&`apB_;F>aKT`B+O&%w%!F;4cH>Kc0P-_J@S?Bmx-_`oA;Gg9{R%Q zvbQHv=w?P{$a^yAc4Ep?ZPLUqpG2wLdvtPowdXdc(i=C@qVCvZjIyzjmBm%)`71en zfw|+=5?Hs&C9VvMfzJRk-cxVVCVgtBB8eUDFYwK%G51fS(A|rHbLB1Ut#0bfv6l6Kh@| zdk65RE_X@eUZL*-ofH9O@)|{?1JG?11#@Exb3{)Ur({n1T&#K~1`TZ*oR9IFu3FTY z3?o(rQT{ToOhureRi}1DPNExLH+JM-YWPXV)}4cB+OqaxbRL+xi2mV**%M(pziJ2$ z46DS{K}mNZ`e!!DTR31M&r)s}{rfi_X%TBE^t;~`F-VUAF5>;iz~UJs8>h#s&i$Df zcl>CneQJ(e<}>cSVau81oZIXJ{7;o^X5IG)U-}!+oPK_GJznHdhyN9|8lx(}(ge$`Y$I#y82QJLFR=FPdB?@PaY28UmxNweO; zd_~HD3Vw?dq)JUAvFxDi?=r=``1|wC2ClPIE-Nw#Tdv-*FyYAfhvc`!FZ~@70TrcY z1WOAOqJIVwL>?KZ4Q;RyF|a3yaj);{-62Dj_JB{Wbf@Nds_4r+g6>Y527I&-@Q-`w zcQUhow*QKB{^uS45qSI82b~&0r#nv-Kso^>PWPqr-l3I$Vf=6PPfIYE+eMpr1v-rd z&Jf9??`Ntm>;^*JC7Qr13dnW;c%4fUXO@W~HZHpTIr6syxqURBEssG4UTy zFvJs*A2$um@(OHERraMF27^@hYAP3V2lh>#hnrt()})pau$K zU47wrP|o8vc>pA~e5|*F+1 zcRBN!jzI@iM%TT0GoHDI#Ykj6;g3c!%mrIy*LBX*PTh}^`kWA@ZMyU%b844Yhk%9G zS3(y2@Sy%EcA^f$77)yQdv2V^C!2XK&-Hl&EQr%~J}OJ--C!tB*EUWlijh{Z8GOmw z1s=nbJzMCl#HXLCwutR6(|ArpLBEj&gYGhQ%pmN)bMqq%^|t%>lw=GXPoIxflv|&y zyG?yi)-Q()B>^Je#pdHR5@$UQ!J^ZYSJaro@Evx4Q4{&d7lqfQ4>d#GX2cEedToJD z%l^!T=xjuqEJfJ{Qn!J?xi@2Zt8?qL8TRYS?c)82 z5Nj5@@?)d|;mVroJ?L4Ixpo6sQWYxViroRm^rkc~ zGUuJu88`A+Vzw5xM}Q1z9$qKL=b!vMcW~X7D|tAo^Z5|AqjH}*N?$)>oS`ay{I6Pq*{|}{(sIj3K*?!gW5E2f>kqYkIexMXkHa>#(%a1 z6bSaHq3+TlM4Ph45Xa*9)lV!tQ`t=Opi(ROH1PCoup}x>@S-{N z>Qw7SDQy74%_Cr7488IlOG{1JTt`{Nogh_~85a@|fJ_5l-r_n%qa z-ApG&zM?Iz2-{UYfR6#)R*GLx9h;Xc(3i=%zE^a#anLZ9d#LE8kRi`p1uO-fgQ`TU z>-ENvsNVYPx~PVpKH8L=SvJ8OYyr2+C@6|mw$t_Ql$pbP$vl%A>H}e2^cs_MdB916 zx))sX@7!hzzh@5`SAbUvrkiei17@hLV_4dEI#bpD>HccHt!G5^K!t!}YF}JX9qM|c zTIJHY%^Yq)jhjQYYtP5~#(t+H%q-=R+ttWa_R>I<>E)8IBpdpafQ^FlX1o2NwO3^| zkCx3;>KeIYVVinYCAVZ!(*7Pp;n67n^;^N|qQ|Q8+wAzhC-G+&*K^rRVRKrkTyMZ^ zOixRFE7Wn55CdSlbf1g}!Krr*NHS#my>@--e3u>oU4acxER^?=Ic=RY(iq3Wtx+kp zj!uB`y#97sI`#s9mFAYg1H5ACX!#}5M*Aa0Me&aB1b0aC z{X-M8F6Lv!J8#eL>M7lQtOGzy8hBv=<4#p7x=vdw5^7b+uCl?D+F@5D@M*m)4q?gE za3kL_-rdxZ!tV6T@oc)D5NJyCq_#^laj&)t#vibis!<&LK`?ofjny*}TBmYU!&Jj& zU>^|XUj`qzV}BY2?tD~NJk}5mL9t;ptU9M%_C7$wyIj6fw&WtoG0V2Dy&iGJRj#)|-`rl!+INmeau`<_*j zA@LoNdAN|@LmHt|4%n^)(iu3v{W+X?_U!919p`ji0JoX)bcuVXf?+&9xr5u;`gagV z!CJSxv@1HYOJ#N=Gy~KN4^on=Qxjc&Vn-&M3v4Fy10Boit8{MXmHpr>uU3PcHA1NC z5pW>YKy+4-hG=<8IC)M#%LZ4auIHo_RHdf-To0AFTxdR2bpcr+K@oE%m6tiUgWcVq zxm-sVpZL5#c4Qk8uATz zqp@2QmFFtPi=NC}Y(nAJeVmOv%Xn}u+pBwb6)Bq~p_dhl5%e1p; zG>x-NFqz~2_HMeW0d>-q5%uGcuJGaFjlLP6%2FWl5q@M0tTU;BKnemolJpS8OTuV_-v1XDCGm}chBYANsuywhZ(RbFahq5mU*K(*ZF7!{Qm3 z0X>H@7Pj;~VC9 z(zA6Bl1Tz;J_9oZukDMd3Tjo0G838C+DrHNWR{sNT0c#8gSh&n^P}ca=gn*-1MsLz zNXu$FTvWq3;8P_+I3N0_;)qoZpf?+b?8oeq9x1NFz7_XdqupW>m*wOQJ|*ZorIC7g zGQ}RAR7e#Iee24tAmA}L`#savWA-PNK_zXpWX7=E=Vo~0Sp6*(Kc!!FcK$dXlN3BK z@Z_$l`oh$BCnU#3HS}wCqd$_(^q&A&R}Hz5rD>AXMMQXMk5yk8l|G`^6l;Q zFvj7B@O7)RB}T4$DK|h1&ytOSl)2PS@h+T6Qi6m`QtvY6Mh0h4X3TlfynaRet*KPz z3A0-nisAqm(w*lo@FxT|cpJR-ZPD?{Bf8JNVG#Fd@#}15cgacMsdFHj7s68HuzCyR zhN{=2R$c<^*e+Tl`rS+-EYToGAzs4p2$Ha94Nv3{AVyhVI7gXNvu-)s+Eo=JR&=%P z;9+!@%tnFMw*E#aVE@MU_oj`AE%x|CuaLx@{@Jn`t0zUqo`nUv^vF+H;xcG9nrr;P zumP-Us%yS&=PSM`d%R8h?z^tnO*)ssP*M$$V7;yW`ly9jX^R= zplGFg7Ah*{p+MQ?!%Hf~VesgcD^hi-qGT^CxHUO^fuu;P_%ttk3q&lKtSlD|cPtFx zn>npz6i$?$0R|>GCf~ja0S1E&mSj_ckRC$8mj@OYr;X5pd5UmY=EdqZ{nPehL zLs98;gPigF%;`j_8;CzF2J;56ruR~5khAD>alyI-<(X3`8kAmzVeV64)pAbEs>|7f z8$_`B@d=ui$y`xGTVwcTv}zpQcUp&&f!EMC7=^ip^bEWX7GfGUVN$SQKP-lB8fd^A zlbrHU`#3|)ODuS%1t{mxo|rhnOrq|j8V)hkBj zWLAAT2t2Ue*WBB=qS*u6;zMhCMbggHoeXhY(AU0AVBSw;vkG5%oK27>czX7}X^0RQ z>4chn9zXPn4VmTAu3iYl@eD|c?8UsR8fjazsC5G7LifkJZc|8JGv>agnEK`|>Mt+uR{OZB4OVG>Zf0?xRFMd!t31!)4rE>GsQxs9FcnYY?F3LlftZau~~ zD?&WQ1GUke7cQgrV4xLLUXG7c8TpN7?iX38)=ge#={UnE*K2(N)Z$6$Zd2@_FKV zPaNaBZ89j=>vGdBd)o>!S+YUF`qJxm_BLq4@4~A_dirF3Wm^Y7sep<1@BoZ-vp4OE z?v;Kt5-BuwpH{o{Tb{@>?M#cxP6J3RCYY8Ee4p0NcEKd!#NdKb1qyAvvaFZd{i& z=Ld8gRx1o>0@q7AL{n{rx9zhZ_Iv%c=5Dt!cCYu`*k%Ch)W>&Lpjp@#&9WGZZ>BSM z+}Y++D3)^c8cbF%-Oa`tw23I{?7$cSa#DT~Az%!v@x;yW8K2zGQ_Y(b5Xa%Vzm_}vXU_EuC1Fr6KpH!t z;c6M)S}=Rcd|kiti^@^L^J`i`?+zJXT>xkBk*x!=4mr>->DJ^|1fQqz(c{0*P-xie zcjBC}+W<8)8v1dXEi2!w&Aa7qc(xUGw_x#(4_x1+xB^DfjJ-jY7Yi&2AFtLO@cN`$^JPQC}iXXc`=Dg1173RdW%GhL$n1fx*b&of(YDhD661BCi#gwKxEhW+PHf2fUgR^W z`;Rrj3k7gG@4qeOBv_wZx+U>fFXqBjV<+hw+8%Cq12rDr(?vjM=&ydY8ghwJiX1h) zv4XFN1OM0hvgRkDd#q>S_{w$_SQ4)nmR|;nKISR1dXePuSDUs5|C{(H?n|9r>)SK_r7|6LQH$yPQ;Kt|Fn@Rp)%Dbqnmxi3qd ztAK+){X^#bNcpE|4-PY9#5A+bWeHz&Df~s6uBvL&Z{E}JET#NNI{AY>TjMp}WAodB zHPcQNc;8s-!mFzq%}PqAlXb^jGl#29UVg2%mGz{WflLd2N1gh2$#l6k+fGHd^t4rG z4zfnDciD?RXYIsOLf!MwrIM?|de?*g0w`ITEVCD}?|?MfY&*vbp1v~qqRW<7%ByI7 z##8qVOon!JFGIHR_#cn4+(TCp3{B3j3B3bZ?ICZG?%{W9borHv#gkt%E!5ln3c{`7 zwf>mmpXNsxt{ZH)XD-X)^;unCPdnqNms38k{$i1{SS{F|6^Vhb;Q03`wn6u+CDkQC z9s(}nG2W!naee~%6tX|pHEmc%x;3{k4izqTtQZa+73O#6l*bF;uy1khYi;eM&pJ$} z<%@rEE127j(^#CIWk}u$Z?B-sR5r9BiHN;CzL;Mm+PEq%*S?vNE9U4IQJQ->Yujwq z`9s)@bEQuWY5b3FZ}gTwnn zf1}h#s6i#a$4PnsZrh}hg>zm+pjB6zXLS|H^<*8t8~I6!wp^NOVS>iOax!=P?!^GP zcILA|m809)aI3O@8wA;0uCBsE2RduV%&f`%wx0Kp>y8!)RI?=Z9L?ALGYz$Sfk|nR zk_BYXW@zyY42rOB9}np}SVuaURX8~$co~#MGOW@n@|mlIy2H}S8`m}**^)yF>r7+~ zis11J>vm*^>g8RxI~gB`mFyT9W}^@sde&aTZRT9vjA}>>Z4!Eyxx|#u(AA<2^}e|JhXCk&D^f9HW^98swxT^{@+z&JWnsBZau}Qa<`8B+pzK{5H;q` zGbd?@>WMdDBR(UW+sPO69#GD@Ul#*SF<7->LZKcj9MB1$NO`s%i3TT;;1kh6!v;&? zl{z!3kon}Ze`5iqW^OALc>=Z<2tJ$a&?Mi*gX{>YAfo)B37cuCRs{-stiQtb9`1Re zEBWDZn6G}~r74M-@`#aL{GO%aVC2>Qri{1WoL$$@4g1T?KuGN5_c;?(BF?;tvKmr4 z%Z=iZ82DxJP(8LTSx|;uLK9N>Xtfg!oTn7jM+z zPEq(n;tJa>zP9z(YG+=%Z;%~3p8tU)o%8N=*--emjSc21G{|mT9_d+NxrGqyFs2#8 z+RA)H;E494${p`#$N8z*20qH<)g^nMJhsxvDdlXA`f-uNU&&y&4b>hL-k`e9&!mq^ zQSj)F#`3vJBK}B^eJAO*fI!qf02)`xLdcH8HV{=BAsaOTcCU<7s z_b!AML~DLjq#Rj>GrrBBtiDZnP0qPe8vq&NDvXn#?Wa|(;(NhYF*2lhyp3;hd(9#R zTWR*Oj`iV|T`bvmx6=(p0~EkO_Nz^;vp1`uSlAz2RtQBIA_L9JTMFVdWEECEnH(%d zHdglcl9|QuRcq1@@*TYYbL;w}+S(9TG2iT#C|ki|?u^-Rq~KnTZgyh2d(%aAKkLAI zjbJwtGgL0e5BnI%BxUZca65T=!9c5x;Y}(5sk7ZRX2PEgj?lccF;>xMh@`wHDeg_1 z2dWx)T@k(UbYf|)NU9Z6?ZgYL=YzoWLOQeOZpg5bC4gMSSX88`sjJ%DD&8MAhS>= z{dxc)6gT*!9q}r{@MthPU6;0KLoq+H#x$uf>nu^x<$XrDl!&~EyzJWiPWp+Z;zP&I zQ3P|mfq?3|@LFG*7mp&*Y)>I3V_xdeQhYoM6(d}eF=CgQ<1k8?ibI}VTwC&E-BKW9 z@RvSiHB14PdYcg`h(@2m&QnB}EqUCy5cen1K&Wo0krO;*^D{)tq!Q<2-?!K7$d~PN zYJ~51f6+K-yRr~P_ln|qkg3Wr$^bu)R>H_-AH>^~4&GS>KR zm}f<8{hAeqex&C0Th-jPQTV6WsgL!oM6<2T&uJ})rA6c7 z;N98f;-69)H#J-{f75P~9?-=*scClU6ju+%SWzk;=mzJ(EI7)3&fU%w+0u{E@GJ*O zFlP9P#IgA{6~!n!s&CE455;(bVX7R10j6INT-Q|MqA$-Iy~J-3t&J%{#ioZ>-Tz%8 zEw#t^o4UBQ3|0QtnClM?9p;LuxD`#gR~aqb(QA0y3|loT<*JxTuq3`rP5R-TzWvYe zu|8*zVP#{Sd%}T)64)~}{x(&|!bXl#qzutv2@6$Vhivm(yzN{0OT7^TE&cq1RF<19 z3<~45+F~2)ow^E933gHV;&OpVm6u?Pjb%SmYwGE8%@N6Fhpl;l-nRr&w&%Z$BBisn zQL>D7&THM@a^DW)5Rxg2P44ctvcc(b>+`40ob%|DT{jrHcV)7gFP<0Yptzx)R5f!~^r zt!Qufm&*;Kl147%Uk}f6!Qy)}YCd5gPPUZXy0r5uqSKa-y6tRF>0ey);*9mt_+#v( z9&WZylor5kDCCb+Lr?lCo)?kMpeDj|2Rq&yIhu*X8rcX&t|WH5jH>AC@~ua&qws_t z*`D%2&91S3XVL~NY+y0_w~q1Jn7BH@=PxBas#ba;<2}6RqSKxM)pk34!uz9GaY#L-MY9#v1^k>;F$dO0=G+12Z-z%H z&7T_G>C4?yQ19s7#g)_m)XnLzmPpTdcBd=sCWzqmHCR>zC zYrBqz0mp=^e3vT5qKFL`wglnq)91r2wlzF7*+O~&cHelf-Y=GNE(b~)eiNCoKLxHS0(KImdjml6s;;R;?-J7lT`br;bgmEGpmhgyJkgH$7{){ zL1fP!f~sVyC3oSL)E1*zVv)N={E-2Bpo4x;@q*FW<8Fb_IPdYd&aCotYB|bzHb6x# z_jG3t_gTN>%3SD!vFH$~6N^WzgT$zGq_{b*Z|{%0{DFQI3-c;2iG`$6yvk0pPfd|j zAEQqUH>_kArXQZIEBo;${Ds*^#k6QYX?|%Q=5o@Lsu*=%6V^G9g^aEj}iDMUg4I7N4yrPIQ|^MuNpAR&Og!r zY;}%wn{sO(&yCUHeMX8qIoZ(aLh9xOKNxay^?G$R*vkC8YFCCIlL(XRoftn;wN)iO z3d5U<)LKyZOey(z%Q`gYwV-4$Ea|AYHuA2jV_o|`y6aaHTnv}diGt9Ls3$~1!Ii6} zgHQjQWuYmz&>AJgqAZ@)rJw5G#37tID&aH7T&~m*fL(nK^%r((^*L(CJ#Tu6E`5)o z&}v(0PsftXeL#Rzp31OdWjU>4n5^UWkhV+)f$BQ2{l^nt>zA78rcsLPeu3znZKP&#nUAr|OR8|FyHPxV33?0eQZ=k{V~Lbk@W z!A{e=bcE-H>oke^()7WYXMr~3oCj{wlr0czOo2xEUd>o7nT@i; z=r)AE`0O?N;^YJ_mWJm1YPwvu1E{2nAy`JIXW*vddX=3a-g>EHG#|lA3mSzO8x%+I zTqV_VxY=8)NrrvzMOgLGrz#`Tl@B-7nssb2r&##RqSbDW)?f`8E1!$E_{9BdXCgo; zWw2Du6~0z&Y?1OP{zV_5%*psvX0!())|%SjU=C4zTyfgr}=&*p@kN@xrAa- zHB;8%QW0X+gqKj_Ttt}4x^OaHNN+K_YCo^#{vgy1)$0jIW!!vG` zX10#86mIs0LqyVrx)0&4R`T(Ii*|%I28&AtulEaX9VyVh^OI4$XYH67dO!XkxR%IOn7 zAFliUM33jRqoPEX;H-m8w>oKVgSo2n2+|w1^#O!kp-KF|!$fuf$Z*EV&6CCNy!R=@ zjTLk_({lJb#e*nSNWYjKfBO5HlSd3`HWQG_^a$_m_dAJFTWVFoo?m z%V?A@p9TABfN#H-%&3|#oUcgBUb4EwflJ1Yde4g(m6yPBeQq_fK=to#0osQ4-x;lQ zcNk#%zi*z^Spw+4u>f#h|BDoo|M0>8@y$LY{L&qk+G_BhUDGdE_XY7{n-8`N+|1tyD&BPLm?Ce5C^k{3XbicWFYJm z5cCF43LqP52ec!++P(jMFTI#YJA&Lv9q;0VFmum%dB?EsJ$iMw%e^W=43KsPHiE}@ zyIcB;qJ}j5329t;*^6}dcP3uU&Bp**-J7^ud){p)_x|3^cQ410{@E{h`337Aa}Rjw z&IdG=U%VA)W7v$WWump-6=7YgC~9h{DAkx;*8>Ck-HyTLg$>Z*L^+Wb#u{5GJH696 zqf^rhE6(HnBilF*0cdx6IJtmEScFRZKW}fGZ`!vD(7U&tkfatZky)hEZXrMPw#soe zNx)>H!Zk^%kn?!Wf?IwyAfeQH5Kew$VXtLN4h8g5EC=T+5JJ{873lfvVsaHEo}BJN zM%&a{rNlIBXX1TL9aYi>{^o>uC3<;PR+NLz+;;*~pl&mdg+)yPpV;l$MC>(>v@mu` z=>4Obye!q+Av4udwR|Ocg3u_%!8S=cIG?$P*&Wt?%j@Ajm!S{ttw*?tL0$J6X+TUD)@}#OZt1~P;1P6| z>hPV^;$GHlYqDGpE=$Jemtw?m&DvbUYlU-m&igxs+--hYPWy_iZBk^KDoUqgod`0` z0?z5u?%(g7&BvHQQdl8~Y)MW{kK9NQhW;>EeVb4Vv||^snIY}&z;zBDr@O83P919y zB})juno@`52oR!Xb~|?k=+{ z@sjNT`vSjfWmin~g6fOH)9>gZ^B1Qr_nr_Wn>Xc_n8iz$puX-$;0Hw*as>r0EYHWqf7L6NOW z{~GW2>S&pS#?R_#G1w&!851TaW;GNw?Q+Or8QFC!!y|Y=ODHB9e0kC&;7A-NSU|w) zVE;*|5d_WL{N|Tm3n1lx0+Id7uktRpL}` zrwciq2bvAnLZkWZ5V;pPsKCqoY~VL9KRhST^tzMO_are{+26ABHRi9PcK7J!J-~<3 zHB9smXxoSTsAfFDJVwJjEzH($@1$4A9-gfyW0MevssTACNDSO5PVFoSBfN|GkQ@G5 zNtRx;2`Jvq?t+JR6a1MTkUhKq{sCJ$<7s8RchcL((0xMxf|Ad4!o~{1Qw?%^YRap; zF3!#zBod;2uK^9=H$_b)nnT8_-Iy(}rmMNDhCVv6e^3Uu;JYF0Sc`}H!M!4>M0)1mr$U1b1xPKU)#j{{&t3e_H%~$uc*8`nS{q6HEgrjASUnX#RRP z{x`-r{Ogzh*HM8!B*k9tjEe{MB)VCHhQ~x1QWSSJ;}?;CW=V7g5dGSsUM>e4VE%yT z+a>dgDc~M63Ya=U`r8+;=J2cmkQwGLHW{5B9%_Le|0^Dk$8wrUS061HHI~H*oz=Wm zT0B_vG4#g5%P?yB(BUvr>g320+B@4&^P;ZD;meO*AW}0S^g?{NQ3E}TwC%2b7s&tv zUO)f_^KOwh7}u1-($bo1VV~)f6HRw|ySbnJaKJHN_cd>PufL!DEQ{uXba0b)z3Kec zYH0VO9P+MVm*|Rz{$Atx->xNrL`mB#OQsXIjRi~SM;#+GqKhvI@(sT|DlSQ-eS7*6 z%{CjAmM(8tA4Qqspf7Ldch&alqdwhT^7WY+N;9*qvWuJ=Sl75{6T>B(t^D|8VN_u* z*5O55u?OOVrckd*%EJe)=FwUf?oLNoA2l;Q4>|)uJ;l*zow~Sy+a-Hjy9VfMIEFb!#@J-x zViQ}(=cwLtvaoN)UoJ!NL#@=PrODwS{=}bhi3_FvzUJ6m)pkNu{pRMn?xR1zj1CQZ z3EZ$-xx~u6x5!hhe6Ji9140Y=4xg~TOLSOD4A#6YD5(BlB z4H0|OM^S0!adM5kW{8@w*+%g;NI=&P^#B67Dv62d{@5r*>^Op* z)eSMLUd(yKR%m2snGS-CQyRaE;=?PXz*qaTm5#6xjuh5-FtZETQU@E})5AB=6Hz`H z@H`9G|0yK2BD8u#Qgs#J_Y&xo-?iia^p@%!oNevsRdlv|m|qC;nLup^^5{Tuwa8z7L2scBd@F%JQBu{7HV9f4DLp|gv+WIVF1RDtzY4HYK61YE6 zg02v3=CVM5FT7>K5Z!M~g&7QV6VLn}0!6w)F}%D?I+5?q;g^DJrrv1Y_=>>VrH_0* z#)kR{<@ygW-XVkoC8pv=BDl0w9ZhUrC1lxITP9C%*)lQGLq5^k%pY)p7Itw&YEETx zR#0MS3Oqkl(@zrp@ZdNcBD!98u9Cs_rx|4Fj!2U7@|$(1D}a1pZ}m{S)Mn>43yX-L zq{w=U+mJJ3W)s6At!&z2nKd&4YfNa6sT^Y5jybuQIzjTb;}QkHQhz&oPiy9G~J zn=MPz@iJ|tNO8%ZE<%s1(aTk#sx&{dAs5EX*P`;pkTnmA`uz^s?F)pHNRi7Y$cO~F zJ|!~lFogvUoWqU;)+3RIFu{#>du)7dRLDU7f{pdJwrg*zWN}_rb$7JN=?grxyd5u4 ztI*@;z#TFl!TO%!bLu5XiSyBr+gVzWFhfFTdCWGJXVfr<8s0=+Vh*9@s?lFhg~pR@ zEv~+fqRD&vxT|I6=OgIp4zM1u6G=9R+x2Gl^l*XD|98kFI3@vcvGt4ReX*N;`Z1}s zC8Mjhx=)L$Q5`Qi>)Hh9j#4^rtcIqjo|shAq%CehOEa?bfkTd85Dx5OCbn1ah&Rg| zmc~tf@~;`?5b^SA7z8KxOTe*;ly+b8wUpf5Jk%sg!ki zk=4+BMy+6NgJK0E*@b6G*elB~d#00e<+5Kc2@bVlOjWoxFhGa4js-(Q0ELHV5e|7B z^dl$$t)q(;!yhwK4piWnq(#8t=GP)fG|0u9@Zqq#gFbc9gBgdG*`x>2hPfiQ7!r*w z>3yG+qspmLW;(Jj-Dgh_fT6pLa;EW!2UtKD$ z#_LAYMR@!h3qW}sh?=^zl!j80U2uYRASx9+RpzJ+buoGu!l>raf02RI4~jM=-|13B zJD7Vo^Cm^v4bA9e&GOpDBT3jPyj_E~y9~38QcCY)sjXj_iqjoeun&rXPI5fejJ}xr zVA7Bip#rfBcEKZ(zy#!P*%iFg1p)~riJqw`mv*t~(jsL&%-A5p?61?%(Xcf9d_rkB zvYJ^j8#~}Uk*)gJA2t0#a+Cq)Nui_g0JJgddOKnCA)yK-hD(eRgo6yy^p|Kv;A~W;XA$Xs8cUTVWZQiZO}I0h`WL%GoQrqDBs* zsryuz_zKFStZU7dy^@R*C9lT0UXLgne<{|Rl0~(m>Lrm(V!~NJszB`)cxZfn&%*ra z&}yj7>m+Q=Nt*ScpZp)y=s|XYpotB6*(6I{4=V!mXrLHmf44?&zfKpDH5ZPcLa^{~ z5L#;IUIvYzmcki0EbQ5$+NP?`Lq5GuH_gQN_+1~aE0_6!oTzNS-+8j$T8|R+YI%^U z)o|l~9X1FTFNl?N0ZQ5vW4>-vR)ucHD#J)Kch0D$iJI&7Srd`0HINg_NS7BN>X#f0 zELXAQ{2G!*hrq1lAHd8TwESDoEM*S#*CMaGsRNNcX^dCCH(=CeZU};oE{cM zK}X8WvEe4|GCd_B-27dp`GYp~wS2kT<-j(S>Q?2aq+jhqf%rz4+gheq4V>hwF?5Oc z%ki1s$`M+f^RL%|KT^(q@q_p~)31i%7VVlMQib1z&dA3dYD?4NdYSwAzq+RWxq9yI z89a12H`gEoU=-9o66B%?rQD3KK0)zWLb9~s3Qy(w+`lBHPP0JXi@d*=Fqg*4S}`~B zXUWnk7sQWdM1^f*~#P5rndBZ*+EFPgoZTvVK4* zv3}P#8feX5l~(6(hy?iod!T5*J0|&{>1tz`8aGD4WRQzTl_y&tG~A%|+Sq=YU;u-@ zfSi|Z?S5dhghZx>RsYt$*=Cw`O$5oAO1|60>MmuXiVg`%FxW)$(hUf&SH-(1&8-vP z+}5Aq2Oa8qk?iccoQPqtV4fa{*`F^BeRKRAL3>E!H`q@Oq{I8sWuBPWEPwqO{V1#p z9ZBZfJ3VWLEl94>ZxURBqng~hDVb7SMcI~up{-oH&06P~hYy-!Gq}8HKhrklVH)t~ z@GE^yv&c=3O!o^Sid>CkHU={?gvCd$Ia8^mnw?{mgM8X1{@3FeiO?iP!NAqUx8=@^ z<>(2^>G?sn7(~MKc*pi5Geh1G-dc47q)ZlfpA>-&60Qv03bt1xvexgkl!t`qen^Ro zB|$3T)#4`uGOJD@qB2>9f|=c2v?=E>!sI%}7wvH_KR3IHpkkkf*aPN1b{=J?=J^mM zRg70}zR522(q7iCPe9C+5e{|BEDhzrI#lWhHa*Xfo$earEe)ZseZ%v6{gP2YT8*R2 z>I?VUn+oZHND2d1x^@orwBM!$RBG9$ieGLh8jnuz3x>_Ym#E8G5kf7<5g_}+wyE@+ z4f!`mZJWgG^^py0Ht12912w!Y;(b65nCZIk#2ru(RX7+R=T86iN}X1ltcI-grLl5U zZF93n|(2gL5^3hT8+q@SmWrlIsIOy=TCqE*p8e?xvYSj><)_1jDm& zyV>c}E0fNetE4f|s=Y?TAjc-m8auY3{1eU%Wx@K^aJvZ?a4UY(vmKhmM#a{`-e63~ z${bM~h{$bhzDmM9yopSD9e#hH-T$z2V@}2JVHX`8gY40SL9J(IMs}beiP+JFi+BTh z{@ud^n7?s9sqxtAjrO?S=|NFdvfwBVjt*xg5h{_)f|kf9taxT-GdZPaED%%{O9!FeR0OQ=pKF3l`$Zp*tK`ItTor1?|j~V zoQSuQ0XI2@bqWG5AsGJrjk*@@S4Ol1k>$A}m$teomsRb~r|?>phbI8iDt~j zMwX~jl(X)+NoRTA<=+Z{>lFQc7&0v+gT!cjc&Frwy4kWPjRJqhBAS>u~)58@V<#BggrA9|)=onF9k|9ei=yAYh)RGC4nTvNF&KT6kePJW6eUhUh zkSF<$nZc-VClbOHEn>U+7!@1L`>i=bc@Xa_{wdqTPPM@^3qHe((J>}Ij&D#qV$E&x z9F-BU_T)?=q(6LjUGCSj!(W-L3RARLS*OVnDOl(`AlB@!l~U0w4^^o!k>qW%sjA&{ z@94`5Q+s#u^xg6GolLW%=sv(V;gKZC^?#4HfM$997CHv`#-)y^tx13Rg3_|3!dbe{ zT#7bkcc1C`DM?NoqxvuMocrs%V+_ORvuUS*B3xZe6+Ve0>i{7gN!;9)1$ ze2%to@^6R@k+8(2~j;N{&cfrcRCH2;0q**TY^KV{nqteepL3_9D1h!p$hsO zPncRvZx+ohb;ORhp2^{<(i?F(Lm9S{{J6fxYX9Lan>u_5ik%kxSklFBRmvw=YMRs7 zQ&eE#)Rbq@I_(!qf07065oGv#!0+7j-|NlWy_p?#rqX^?eZ*6p&9Rq@S{cL{#rc6R z(SnQtUH7U%$I<=~#4z@JYpoZz1 z)Qa**le~v-x+cgjId9$-h&fP&6p!t@6R%lIzIwTu*Q+`{rjS{EFmoKI%XaAxdiuS; zIW2z_^-`F38Jlxq9Ua_qc^T1s()lrUj_#X>(`s^Zg38SKeRtUo4@kvb6x|hoIc=`p z+KnAyA@efi35L>nqKU#g2}SRC9OU+2k$>)gD4jwqe~eETittr^g6mQ)urUd3%x`+g z%T}mPv@33?5LK6)NJHXWR?Yv7SRr)QzHr0w!t|*bzJ%aj2qaCOrnW|U! z%%RdQeM#G)l><@9=-dr30`^(bWTL5RNy$YZvWB;TQXj1Vi=MGUzz}i&#(kWG%D^28 z_>gi!h9V8f7v`yE<>a`&_BFNx)9{#Ag*fok&ijz@ED!@~#D%G`X`rUQwYEWov$ila z-Sxe(`i0zuUSQ)!QH&?J{=D^4!2Nuqg1^YYO@V7Ic`%tCcXRM(^DY2&!7KAp5}~nB z$VDDwpQLfPv_k*$9i08H2!1AbSXYXgXjlCzba=!@WG}{zKK_mf1(%(@ghb$&z;vWx z`RIo1sr^uuVNFYc&ivlr+k$6c=1tLEd^dQGKc}=Q!2G$ohVve=d|MTCcO7x$u+9a% zqN&a&3dCK9$9uKeReOBu)ta@k8C<&30x$RI7E*p z9Ng`2Pw+oSSOTN=%MIbKPi?|2C(iayPu(|1YBO@4rqo^cP1UAdwwoIQ5Og(Y5;p_A z45+|NcwX44f26YR$;BDhb)k5Fa$RHahSPN_n~tFN9h7ZcP}n+D)>9%QCD~pz=Kg{n ziY5sJJrbgANGyz>}<&g)FKzk zORAXCups7@k&M@r7^PBJM3v$+ti-k;1v6|Yr}>^-?QLn`QjW}40qBvv;s*sD^JI|9 z%j$r~|H8y0F$A>2Vcx$iEFsjBiPmgSEOnlnC7Jtt+Um ze8(h6$qE{|8(HROCPaPn?{1jy*;?6#g$SH0PR{$kXO_>AQZZcElirpKQ_noCQ-4@q z$C0l_WVRf^!kFV5j)~ri$GKK86YF7aVF@xaS^oso=_JjV_gjb>*$HhF5%$G3);08V z4MwR`#yEkp)0}{AMPnMXz>I%BL%}n?uSVD{ZAQXx!ZGDw`3=z0&^(fO{ppOd3V9kF z#n!SgTB#mMz*RT0R?!)HiuLUMSqE|6D;5s%amtbsi(Q*?Ra%Z{S*eg!b@R7x()ZWW z?+ooh?J-18>;(&&iPfBysUH`)Svpy=bdO$0Ml+lW&kUIg8Oee_1ohWQ(;LbHZCH*J z@S+~su~{g6?-C4SOm+?bS)*tvb%CHrKgA`&UfSDO74IX(B^#d|?U4F`S=1+bQ?2szbKy>MpjbBAlvTur(8Rig zxltV<0x9levHYN=KwlM5%l6QsPHRO*IyJNQ8}jtSj|`j zAa0FFacW~JFVl`E9$b(b1Ppa*zeX1=5CmvPjJ7;k*z{+rSA56KICR*$vnjM9n_fRR zyDviWD1sb&P#vW&^#dD+%w2NSH_i9*Y4RRpoK~~OR~D6Wm+-)8ro{U(_azM#6``X1D&M>gH8 z_CA`f{hVi*76qu1=qJF@PRv6J-T1i*A4rI$9Y?tJVD9i>CE@T;dds@OlTV~)BvNCv z-gJ$A9SQ_hs>)g<3dB=lewea zZe%7zr{iDw$y!`|!j7^NItMIH)3DTV>DzZj*EaN*vq6cV!nIcYJ46x0&M%K1;6x^?G_oa@SKS=MAh0QH=0AymCw{IKP=q08Uiz3W4&%`=%D zDn}&Xa8}O@X-A`ppeSkFSl}0V^yFBE2&;Uz+NQU?BjCMDu!U6XxAQ&UiZFzYQ z4y;VOK4oRS0<<>Ra0Q`)+bul+n>%Obl@`1Fen^ZDtPCjeN>==9vb;zdJQ z4~6V~KB;!rxt#`GeDMH>&%sq;-6&Z+x~1W2YB)Waoq*a&AG0~0bJFlk3_O@-D3? zOG{mECgObQZ$qilna=vt3=_HWV&(^+&+8|Nxi;~O0li6tkIL~v5roqi9<)?2f^|e~>@$ zv1meJewdeC-dONGCy%D-lP52)GL&$`} z;=kBSPzNgK73bx`yN=x{gYL%)QFx<7DaWnNZn$wPC*1JwRt;X(7&RJ9W;uu^^P9i}3`Ow``be zzyac!N+t)It;zQwG3bPsAFaztGvkS(jNlkIH0TmEP3P0muOnTNUIOs;s~4nehu+S%QFSC z)5aO7;!nqp*$wAiQl`+#zWQ6ix4s?lw>-6yY^R9bDNjw9DlFyv=@VD}A6PdJ-O?sY zH`1jug22)eA_5pj{@kAAUcfr0LJ`0MaYz$NP#->IxsQiS$uVlgeh(*W@a?4mf$<1{ zUyf8*<`V&GMh!m`2Suf(wQ`N*t97t?Ng9|}oW~*9l<*ilL4R0Rzmk{rj2o@f@wK1G zoF>5jt@PZ`;-Tt+2w*95ceo`V>Qv|WXT)gUMN)=C=`=4G<7hXmy+!p<$8G@xC|Y{3 z>*`s+K^?D&sw;4Ay14H#B`6OQ0mHH|rIm{b1bBPeHET7*{o{8*_rANK5S!>;%5X`M z<)cRjyT|V<#dN(*QYYozaFd1!=v> z!@~I+^@ORP+0NE7swYOZBKS{M@q{u_!IH^OWNMiaBxJR->UH`Fm^Em-8Lcd>VH?WP zz}@ zaNPM*#S5}%UI_AZgU}T(zX;Y^CKAgXWQ^UCqL(s>ipNfbK0+oTAzBW=y5+ufICMd( z#3b$8=$r@owk{DpxbTJkWmu>juW_horqF*plnl-k$&MYv&y&F*YPIw=%hh2r~<6C?ulMYqtZh_R`0=7l**rR{=o|{Q^A#p?ac=s zmujx;AV>)|lftnp-DZ?JH2Z+tvsu{3%NpM1tKEA{b{|S&Gl^1pWX`8x|DF(XWJUGj z@B3Kh4`y<}>#nSJzW?RyRgO3dqRm;%?|YntukyQhHwZ8^XeahR(rq)kGXjU6?2;s5 z*46QNoO`xWiQ980?>s+Az7C7Y!&0|{z!03 zTKqWo-UUU^3wI3{lSYFNX25bFDFC$*h)==mgCGzJeHc0OPF1B-qKU?ZRYu!_{IvHy zeqh?*EoiXmeDL6(k017EVvgLi)C-pF<@e-XE??t-dShuG@Oh6+omW5)V=w*$g76XB%M|42o$TpUM5ruhhXlbx z@)q3M;cuznouvwS>89B{@OSOrdbu%{c~M^m*ck5isky;J8Y@@$fl+O_C2XGav8Bz4 zFlj#%^hQ`P`dI?CkpMyJ_0TLS;d5Op?~W(*oU|=D@Z3LQGBg3?VzdHGprvp5y`3{h z&uT)!vaFl6mFqL{G~`nzy7ZIWH#QcQJ-n7@yOY2@4UD9~_+G4b^*#>_L?wAyznrxN z#%9nt`f|LU(Y(xf=?V-?c!4D_JOq+Yxq25!-5}m!g^%S{f6f=ifBF4;oxF8f=8&#i z#xlNqXnx$~m!vQtw{%O2etmP87N^!rP=X~%gvDnup4;cU3&^&TvY|O?IUQB4Uh>&y zuYgm!X=leZB#ei?oScQyvu*t?Y1+*6tb_gOetBIO6?OUR7aTxn0_{Xpa#oYg#bphd zpI`ZWngCA<2wpnm1A)Be`*eeEZc09Xt#wg2k(4i#&qHS$7C`A*+Zi;i&HG2tj`HmevN2_8 zq3(~dQ!~?la5#`)(7&($o?QI@_%G|Ghqc50BNy;ACGb#9ur&7CgT$ryVUredDn|v|22CNwFpm1w2xg-%>@I)zZ>*H4qwyX5sGYf|*%Mwg8xq_x`YY83+S7FEkMVGI z%i~AfD2uule$f7y%VfIKl%Xi*V!5Wu&hR58(Lg%L_FpqqZeQI8DE)1#tW^(*NAN?E zIPHj?Vz2Ht+Cdhd6fgr@Pv$09ro+7qLQQ~aHYM-X;XJ-Evqd7&dcA_$GZFLO(`pHl zXSyrfmiKqPkBBgtHP-mS4KU}tXVQzZVT^iZrdeeZrd5Xs+Xsu4 z(mZ#V)~pBRrM;f8y;;8(5bPU@yo?X-Li15>?gQQKT;(~r@!t5=!D(HLj@OYYO|-(? zwZBK&3~5~uj|?#e0vK&5S=6l`Y~-Xa=j6=Y{8pQo^$AqnY(}F3Qr%cw4KA)K7R1tI z#w@5IPM*H5s$My_`>1TzxwWU;jh0MWel(71fVUdQX4V?3RW?fnG9LT$^b70GfBRRM ze87;A?wduO9g-TJubS5rTmYD#dLv&%@@Xn zWBB@l0_-mpUucj{J0*8BZg#C6u7@<%!?&QJmnSFcO^{9J`-<$F)wQx78;g z_$6a;-^KU%M|UyQR=W<6zulsxqoq02vVoso?DFGB`?!zJR1=32eDk72HQ*thIoX{} zmj@H&cnU$Xk9ua)Y+N3I45JiD0=etc3AHhm`r10a1^d$juGH&j{kn}*88>S|#c(~# zTE{#}Gv-u4_scc(yZlt%>%w9bipMe?+$|yNxu;GQA9y#3ZW(iGtkn#vp^7F>4 zS0n`--jF1)N5z)gxWsyHbNAMkO-F)~+9|&SNkGr_azH3B`S~NzN4pE$Let5jIYQC| z50<%n&lbn*+Kn6(jZFI{U_k-gDsU(pk}|ClN-3Ey zH58f=Fp|v-P8!h}@ZE3cYXWK!m}k7_#f69WZ5P>sZylYnC6O^hqzP+#((Ngsob7P0 z(rADP-U7-V5Hk+f+HR(62YdGGa;MIVwJH`#iYlh@0Kxj@(jLw~fE27$DYchLca2~k zZ=;k@&f{n3`yCT&OIi$Ao(I5il7pi{N&Fo_t>KX;onqdHtLsbj(SRo!q2i*;=Ld}j z_y#PZG}zw`-}r4I$?#sy!c}&&3d>3b965rjX~4T?Q%XoR_W6uW?-E4oh#D8Bs;Nz) z;AC7-5U^F~_pA(x_YL4KYDC_0IINj(zEdICqBl9299TH_X!jK=D6qv27E=!>)vXOK zj+b}Y4nj1gTZATrcPEFkL@5Kl=cHH`+9&Pf)`{<4z*>mABk5V8EeZ&zvO3{cSF4Et zZW+x8=-ftq`D6oUo*0et3LBU$}zICox;YqPqj-t}Vz)&c0NtWbG)i4DubT}HEw z!QJJGjyzHFl>o5^qyphKQ?|hL)P^$#Hpb4#DVP2}XkN@$xfcf)Upy~-Y^SK2q|-YV zxV@V5kFC0_p>C0_%O!E`d?r*GF6^&bWzgE?M)X?B48Lr+{-qI}nr(sxdSSo>V&4qx z6|WybALSNVMiVN`m0Z~h7#CjW_QQ?B>OgtT%gb2HVeDf{0#Fzsn3JZbh9KLDOvVmR z1h^T}fp9Qi7^W{IpbMou&~D>vPMb zToHLm=+XWuodzMP$4^7<{$lxHrnLQz^0duRt;g-WLyxh9GyLsAvc}`w9oRzW#pH|D zL#-Z#i{G(IgA zK}cz!C2=s>^8{RTx)?gdTP#WyNLT}R$t-si$K$Rc^@q7dwlzl=9;EuVK;QO`OQ^#L zwIUhT`x&%(nJV&SXH&1F(x?}($L^T&6fM5?1qk31I_zm5n$NidN=jr}rX9r5ZB+h$dpWtm?8|MX>NUekFxGnH1yU*NoukNs zI_Ge#aVX{dr%L`Rh~RG5kN2Fl^+0k{rS-_$`-423tudvCt z7pwF|TG3e`HgSw{YpOi(UuaCpx=LSLM~d z<4M(i4wc%)x|UsRHx)KJ<)ATuORwz*!M!}(0Z42-(K9{^p)ZhgP(-R(V4i8SOcT{?M`5(dVb!5If9+K{jc`8!B^l33$XfG0!ovF?0#! zUjd%&9Z2uK5uyt!fZS`COnSsrYpJfO8V<0HMk~e*jW|nTwV(q=qYKF z5br9Gyo^A0sA)BNz2v9M1^S(qa%%*}jsT~Q0FdjGt@8hPUX&%`xRXz}G`1#D@8rfzCQ;>Hog6s8F?wQTT64!Nt7tz_+`V{Y z@DoH7j(jdVkBj;umQ{MoGs1tP5FtM5b^2UcbI7HX+T2^01JFC;hHcpQwG|2(&x-dz z8QZ8Y!S>B|RsELSpko?&f!;5iP;3}SnOkpHip1`S3%C%aOm6!;d%}Hnx51n?H|c;? zfsCt%u&QoZvp-U<$JVCGt5>;%4~jmM4P4%F5!F-ZT+ zbXODrUG+vNS9ZGcym_pe(bdI?jy{ixWBzg3#(-YjLd6Hms^XLKnpnf>*$|tpff}M; zKpRXqW?SP`TVB2lQVNCh_ru*XxlL4CY%ulIqIJ~u^sBF?YoFiFTJTJ+Rn{}t8>TAf z*%n%j6WEQMEq8`GPbXNq=O;IL-fA!#(EE)8F=wnEp9D;KZ^p-Yt>rOTniGpQ4rCmz zSozM>Z71^VeZM*$x}H*%UjWgpY6|Jjs#a>@*L8AgeA>%JS#?pp^6E51N|-)q8~tXs zwUiXP;3Hk`+)1HPUF`z79NIfF^Kdv$3Dc7y?2BzW8E(00bRGC41E0HS#$~eY_q}PD za-=h9SHo$WJ#KU14RzhRXzVFT0w#k{Q2Ls?Tsf{FS3Olur@%p-jM`ayKNs|~W{@RH zf@YVEeu$w>fB7XPFCIdHn0es--~zqM{Un}VB5zW zAZ1#iT%o5z3$buB(hA39ufqiWSrH^HY!JoYm{^Dv^NwG`h|Q>sIR3yPUJdt=#&{? zgnAG~6!h}NW+`p;DNwHyrk3^OUCfew_>;kgEdFPIn=DoNas6v#eax28sWdPMb0n7o zmvRgkP+twEE`!LK;F|&F%|c(=_v5JZ(?vA$hZ6gYr+PQL^b6*_sTin;bVg^RYTx|y zf{z7iLusBE8msFh-){AKUWh>(PIAi6zLTPS@J;#m#VuHpzN7vk@}taZZBPpW(@jXx zYDP(pswkCGS$l7-+j#Fz=eZN(43h;dXA_%$LFAul!T!f0F9rd2|0XX6wOgrp-WcW; zzCQ|z=8q*-Z>*B?`#^@+-2M;p>$_Kq%L!R10(rRF-@o?!=)Z%4pUSehINXWxrWG?C^g=3W#gVqIy=P+o1kJgunzB zdAR8Y;0QaHANz?U+rAZXh>W z4_1edZK_&^mNgcP{LWQcd5-e>>kDv*0XH_g;at!;9&phxlaRWAKOO!cdNcT6`_+-3 z0$%@*vK7c(|7n{?{sp}L|6%+WXXEwCnY8F~gG9Z|)hy+A?2PD-!m`DimJt&}3bw8D zb;Ya?{+z>fH)7vT_XqFH7ah*BJ|l826jmMG(R5XvJ$E8Dn@-gVhgkkauV{{Z)8~Zk z$$}#K0siWpRLk5FX%{g@+{a+_A`V}~*Vm_Qbx`GmoT$Gkt@V#^(b9*aVig*RNuQbT z;j=M!l52%{0O{7oa+q zd-vx!Q5Y7z)WAm0Z3$pWN40PIub*BCdAX6As6hzqulfah(b$@Mzjc2IArC2QyZ<=d zyqwsIecC)Gm!mQ#k0X||l%wO>$V!E0rkuPS2NjDpwu+nFm^r&8P5NDNygMWh{2_$? zQ-r1q`g>=?kNvP7eB!Z39P;cn9D1G3UDo${1qjWb&WbIk8xTYaGLX|fxa0)#fO&J` zBUB4o!aGV439-+>VG+MwMjl+|oB#OsVIG~aS9;)T@RppTK9MMY2ASA}J|}v3^wLUl z^H_*~>nS||jR+nekC|+3B8LemCh|=l0b1{yRkv{t)k^vJ6d|Ku&0?4~yB==+_?;%` z@+n@Yqh?L#^HpwEn0zyBJfd)Y?w4+|;^Ok%-@C^XQ~In7=$W-tvAmC<=f!6F0;VS} z#(TB)O5o$|lcmr;e17%HStu@M)XqRfLuY(cc>xQ%pUw6DqE~Sa>1nPE<6wt}Sqa43>L_|bQ56$CV z-I_bzs>yijLzANgjBSN);(H5cD+H2==6x)^HX`#?2Kt)7es?%xzWi_p)Oe*SRhJWwSNNt`0n4Z~ph@2I4Yjb!zkVR^|yD(O+vg zn~rs_n`@LA;(h5ck*3?2wb5Qbai1(%(CK8A8eM>=Ag|cw)E|OMHmzD+PYJH%*=HV& z`xq4CxHF}udnX(&$7)3`t9?u4-h@os%WFF7qhD|rofZTIdhra=c^2oQkJ^ImQlfdd zUD^-p^=sWAqH0@|)wru@GR%6~W7DG^o7-2Z9Mrx2sBzZr1+0wp=bL*F23pGfh$fx= zm7RiTD%flDY>Y2hmL%P-4G+Kgt@_mmwc?WA4D%_>S6xJS(9>~p6#8Zz>?$zxFRq6b z_fHbWh2+!QCHOA$HJy!nWd)U)>G5&urV743AGX7Bsc^a8UR!N~n0B5U5aX{Uol&d5 zHW>sroFCcZRZ=XoyZuP|(mke&PATNwRJzEG!QJrsA6?f@3wZBO^v*3j^{WHEt&4f? zc^^-Si{|J|RDbBLyM7@(4fC8v!#f2{_Frrj)y@K!16DIhe9Hks*82KvdmCE!RUQ^W zD!rG7^IM!8z1C=xQ*|y(O*AC7w}tp<1?bNaw~D$N+O}aM$I|)H{Wwiqb69l$gy< zPZCna*uOS!`%tykpZa{uR!e_me3Xz3JX}f9$-n(B`;%RE;+4dv3}4dfX(NFK#Hi5a z53M}}(c0?D3z{={P`8qj0m4{P;@Z%j{8kBW0wK1&OdYD!TMfUkg^S(wE}pb=xYS;g z{!J2D-0sw5cznElPcWi=f>}>}tf3mxvVFB{BZ4UzovriezWkmTpNt@GNu`x_})7%C5 z_MWF6G{ytO!&CFe-KSh%29|mnT6!1kzzKP_?==EVO4T_KH}Q6uL_LY-Y&c#YzdjvN zop8;r-`(PuD2A0%PzqSwQf^$%!AvGDkC&D!$)f$!R*vY!eNVQ;gz9Xy20oI4b0^VP zOK0zHi0XbduC{Epn&Rx)PjRTOYHP8*>_6pUVNkQz>r~9Z{m!HR+nvk&I_Bnx*eS?Q zQGWX`IlA0Nw`1dsg#`STZH%lFri{_PKn400YuR=tY+Najm+{1dO z4yjp+21Aj&P1H17KYQkr1-`#%zDwd?Ie7x(>&mk2@JpLM5 z-3&*W)(%G=ywS$9 znHE|5E*r6))XCWR=-0;z5_o#AkD9*MWlG*^{hRoq|# z?s>ysQz~`L>z^arV|))_Dr>W^cYS@zXcsT4ax$SIb0N2EhEr!<*xNYhnq%!!+ zu2)2ZtM5iPzN_C}@y*z7153h43C-DLdsbC(K4hbQtH0*`=#db!WRI-R{;rGgDU3Zo z2V%NXMqPC(JE=KxlE(F&?J%)4&ezM)QQOF4<2&N!`1;;m2?JNiR}VT)u2_crM?Eq> zMuiQRH4ni+>Em%_vcSD_&KLYy@R6C%eyU6PjnOuU3JR?Cu0N64HJnvt7DIOjoQJOZ zHtt0sbcJ?5H8IUP#SGnV*$iAWH;^LDNwL5Mr^nC&5a{%WOHu-JPc#%{;A z4^`xx+Kh9@2GdxAyZ?EVL#sj#xbP+$%QK&hSA=4{dBB}HX&_y{%$<%OT4^KHXyKvV zv2^>ng5C8I@k2?n_^WfToUv_dpXCU~(&EWlUk^t!ufq2ZVqm-9O2gdgZk;QeN!Kbp z-=TEoxZ5UC%K3SkbK^deE{p^!b=b`aN^$Zz%>05x<>$zpD zi?ho=$!F8N+7lYg=-@*!G93n)Rk_p(i?3Xo1MOVKdN}%GkTZxdJH~}y)j0GtA77PY z4~;uQjcbpt*n{GV6FdMQBtn<%!%P?Y+Fr#~Ec+<(fb9u3_GsfXS&hQO>rFqqSb_1; z(dj8dlg$j~uU zY#Dt0x9Ic#|LebfLdba}E&ixdTcAq8EL^t#f^HPd|1;?p#Vt{%x_yyHEcE5dB2o literal 0 HcmV?d00001 diff --git a/mkdocs/docs/assets/repo-data/admin-changemaker.lite.json b/mkdocs/docs/assets/repo-data/admin-changemaker.lite.json index 1c310e1b..46a51b57 100644 --- a/mkdocs/docs/assets/repo-data/admin-changemaker.lite.json +++ b/mkdocs/docs/assets/repo-data/admin-changemaker.lite.json @@ -7,10 +7,10 @@ "stars_count": 0, "forks_count": 0, "open_issues_count": 0, - "updated_at": "2026-03-25T20:11:01-06:00", + "updated_at": "2026-03-30T11:54:37-06:00", "created_at": "2025-05-28T14:54:59-06:00", "clone_url": "https://gitea.bnkops.com/admin/changemaker.lite.git", "ssh_url": "git@gitea.bnkops.com:admin/changemaker.lite.git", "default_branch": "main", - "last_build_update": "2026-03-25T20:11:01-06:00" + "last_build_update": "2026-03-30T11:54:37-06:00" } \ No newline at end of file diff --git a/mkdocs/docs/assets/repo-data/anthropics-claude-code.json b/mkdocs/docs/assets/repo-data/anthropics-claude-code.json index f5bf5c8d..e8b7b36f 100644 --- a/mkdocs/docs/assets/repo-data/anthropics-claude-code.json +++ b/mkdocs/docs/assets/repo-data/anthropics-claude-code.json @@ -4,13 +4,13 @@ "description": "Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.", "html_url": "https://github.com/anthropics/claude-code", "language": "Shell", - "stars_count": 82863, - "forks_count": 6945, - "open_issues_count": 7902, - "updated_at": "2026-03-26T05:46:26Z", + "stars_count": 88332, + "forks_count": 9745, + "open_issues_count": 8343, + "updated_at": "2026-03-31T15:50:05Z", "created_at": "2025-02-22T17:41:21Z", "clone_url": "https://github.com/anthropics/claude-code.git", "ssh_url": "git@github.com:anthropics/claude-code.git", "default_branch": "main", - "last_build_update": "2026-03-26T00:31:05Z" + "last_build_update": "2026-03-31T14:35:57Z" } \ No newline at end of file diff --git a/mkdocs/docs/assets/repo-data/coder-code-server.json b/mkdocs/docs/assets/repo-data/coder-code-server.json index c1778600..2449031a 100644 --- a/mkdocs/docs/assets/repo-data/coder-code-server.json +++ b/mkdocs/docs/assets/repo-data/coder-code-server.json @@ -4,13 +4,13 @@ "description": "VS Code in the browser", "html_url": "https://github.com/coder/code-server", "language": "TypeScript", - "stars_count": 76836, - "forks_count": 6567, - "open_issues_count": 166, - "updated_at": "2026-03-26T04:51:01Z", + "stars_count": 76910, + "forks_count": 6575, + "open_issues_count": 172, + "updated_at": "2026-03-31T14:49:15Z", "created_at": "2019-02-27T16:50:41Z", "clone_url": "https://github.com/coder/code-server.git", "ssh_url": "git@github.com:coder/code-server.git", "default_branch": "main", - "last_build_update": "2026-03-25T23:42:46Z" + "last_build_update": "2026-03-31T00:00:24Z" } \ No newline at end of file diff --git a/mkdocs/docs/assets/repo-data/gethomepage-homepage.json b/mkdocs/docs/assets/repo-data/gethomepage-homepage.json index 918e35c4..c05131aa 100644 --- a/mkdocs/docs/assets/repo-data/gethomepage-homepage.json +++ b/mkdocs/docs/assets/repo-data/gethomepage-homepage.json @@ -4,13 +4,13 @@ "description": "A highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations.", "html_url": "https://github.com/gethomepage/homepage", "language": "JavaScript", - "stars_count": 29142, - "forks_count": 1831, - "open_issues_count": 2, - "updated_at": "2026-03-26T04:32:12Z", + "stars_count": 29249, + "forks_count": 1833, + "open_issues_count": 0, + "updated_at": "2026-03-31T14:45:22Z", "created_at": "2022-08-24T07:29:42Z", "clone_url": "https://github.com/gethomepage/homepage.git", "ssh_url": "git@github.com:gethomepage/homepage.git", "default_branch": "dev", - "last_build_update": "2026-03-26T04:09:25Z" + "last_build_update": "2026-03-31T14:36:10Z" } \ No newline at end of file diff --git a/mkdocs/docs/assets/repo-data/go-gitea-gitea.json b/mkdocs/docs/assets/repo-data/go-gitea-gitea.json index 9c1b719f..f418fec9 100644 --- a/mkdocs/docs/assets/repo-data/go-gitea-gitea.json +++ b/mkdocs/docs/assets/repo-data/go-gitea-gitea.json @@ -4,13 +4,13 @@ "description": "Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD", "html_url": "https://github.com/go-gitea/gitea", "language": "Go", - "stars_count": 54497, - "forks_count": 6492, - "open_issues_count": 2870, - "updated_at": "2026-03-26T05:41:32Z", + "stars_count": 54629, + "forks_count": 6518, + "open_issues_count": 2866, + "updated_at": "2026-03-31T15:12:57Z", "created_at": "2016-11-01T02:13:26Z", "clone_url": "https://github.com/go-gitea/gitea.git", "ssh_url": "git@github.com:go-gitea/gitea.git", "default_branch": "main", - "last_build_update": "2026-03-26T00:53:32Z" + "last_build_update": "2026-03-31T15:40:43Z" } \ No newline at end of file diff --git a/mkdocs/docs/assets/repo-data/knadh-listmonk.json b/mkdocs/docs/assets/repo-data/knadh-listmonk.json index 50516355..9dedf154 100644 --- a/mkdocs/docs/assets/repo-data/knadh-listmonk.json +++ b/mkdocs/docs/assets/repo-data/knadh-listmonk.json @@ -4,13 +4,13 @@ "description": "High performance, self-hosted, newsletter and mailing list manager with a modern dashboard. Single binary app.", "html_url": "https://github.com/knadh/listmonk", "language": "Go", - "stars_count": 19343, - "forks_count": 1965, - "open_issues_count": 103, - "updated_at": "2026-03-26T04:23:08Z", + "stars_count": 19396, + "forks_count": 1977, + "open_issues_count": 91, + "updated_at": "2026-03-31T14:23:10Z", "created_at": "2019-06-26T05:08:39Z", "clone_url": "https://github.com/knadh/listmonk.git", "ssh_url": "git@github.com:knadh/listmonk.git", "default_branch": "master", - "last_build_update": "2026-03-26T04:23:38Z" + "last_build_update": "2026-03-31T05:18:48Z" } \ No newline at end of file diff --git a/mkdocs/docs/assets/repo-data/lyqht-mini-qr.json b/mkdocs/docs/assets/repo-data/lyqht-mini-qr.json index 0e80408f..211c1560 100644 --- a/mkdocs/docs/assets/repo-data/lyqht-mini-qr.json +++ b/mkdocs/docs/assets/repo-data/lyqht-mini-qr.json @@ -4,13 +4,13 @@ "description": "Create & scan cute qr codes easily \ud83d\udc7e", "html_url": "https://github.com/lyqht/mini-qr", "language": "Vue", - "stars_count": 1931, - "forks_count": 244, - "open_issues_count": 21, - "updated_at": "2026-03-26T02:38:23Z", + "stars_count": 1938, + "forks_count": 245, + "open_issues_count": 23, + "updated_at": "2026-03-31T12:32:17Z", "created_at": "2023-04-21T14:20:14Z", "clone_url": "https://github.com/lyqht/mini-qr.git", "ssh_url": "git@github.com:lyqht/mini-qr.git", "default_branch": "main", - "last_build_update": "2026-03-13T12:48:04Z" + "last_build_update": "2026-03-31T12:43:07Z" } \ No newline at end of file diff --git a/mkdocs/docs/assets/repo-data/n8n-io-n8n.json b/mkdocs/docs/assets/repo-data/n8n-io-n8n.json index 4d2e67ba..a83a8a25 100644 --- a/mkdocs/docs/assets/repo-data/n8n-io-n8n.json +++ b/mkdocs/docs/assets/repo-data/n8n-io-n8n.json @@ -4,13 +4,13 @@ "description": "Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.", "html_url": "https://github.com/n8n-io/n8n", "language": "TypeScript", - "stars_count": 181103, - "forks_count": 56170, - "open_issues_count": 1416, - "updated_at": "2026-03-26T05:48:22Z", + "stars_count": 181869, + "forks_count": 56348, + "open_issues_count": 1447, + "updated_at": "2026-03-31T15:46:32Z", "created_at": "2019-06-22T09:24:21Z", "clone_url": "https://github.com/n8n-io/n8n.git", "ssh_url": "git@github.com:n8n-io/n8n.git", "default_branch": "master", - "last_build_update": "2026-03-26T05:30:58Z" + "last_build_update": "2026-03-31T15:47:22Z" } \ No newline at end of file diff --git a/mkdocs/docs/assets/repo-data/nocodb-nocodb.json b/mkdocs/docs/assets/repo-data/nocodb-nocodb.json index d391743b..27c13a76 100644 --- a/mkdocs/docs/assets/repo-data/nocodb-nocodb.json +++ b/mkdocs/docs/assets/repo-data/nocodb-nocodb.json @@ -4,13 +4,13 @@ "description": "\ud83d\udd25 \ud83d\udd25 \ud83d\udd25 A Free & Self-hostable Airtable Alternative", "html_url": "https://github.com/nocodb/nocodb", "language": "TypeScript", - "stars_count": 62543, - "forks_count": 4681, - "open_issues_count": 658, - "updated_at": "2026-03-26T05:48:04Z", + "stars_count": 62566, + "forks_count": 4703, + "open_issues_count": 665, + "updated_at": "2026-03-31T15:24:55Z", "created_at": "2017-10-29T18:51:48Z", "clone_url": "https://github.com/nocodb/nocodb.git", "ssh_url": "git@github.com:nocodb/nocodb.git", "default_branch": "develop", - "last_build_update": "2026-03-26T05:48:41Z" + "last_build_update": "2026-03-31T15:24:48Z" } \ No newline at end of file diff --git a/mkdocs/docs/assets/repo-data/ollama-ollama.json b/mkdocs/docs/assets/repo-data/ollama-ollama.json index 64aba706..52c9fd44 100644 --- a/mkdocs/docs/assets/repo-data/ollama-ollama.json +++ b/mkdocs/docs/assets/repo-data/ollama-ollama.json @@ -4,13 +4,13 @@ "description": "Get up and running with Kimi-K2.5, GLM-5, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other models.", "html_url": "https://github.com/ollama/ollama", "language": "Go", - "stars_count": 166179, - "forks_count": 15178, - "open_issues_count": 2726, - "updated_at": "2026-03-26T05:38:58Z", + "stars_count": 166587, + "forks_count": 15255, + "open_issues_count": 2778, + "updated_at": "2026-03-31T15:34:55Z", "created_at": "2023-06-26T19:39:32Z", "clone_url": "https://github.com/ollama/ollama.git", "ssh_url": "git@github.com:ollama/ollama.git", "default_branch": "main", - "last_build_update": "2026-03-26T02:01:29Z" + "last_build_update": "2026-03-31T15:11:36Z" } \ No newline at end of file diff --git a/mkdocs/docs/assets/repo-data/squidfunk-mkdocs-material.json b/mkdocs/docs/assets/repo-data/squidfunk-mkdocs-material.json index b209ab35..e947759c 100644 --- a/mkdocs/docs/assets/repo-data/squidfunk-mkdocs-material.json +++ b/mkdocs/docs/assets/repo-data/squidfunk-mkdocs-material.json @@ -4,13 +4,13 @@ "description": "Documentation that simply works", "html_url": "https://github.com/squidfunk/mkdocs-material", "language": "Python", - "stars_count": 26394, - "forks_count": 4060, - "open_issues_count": 2, - "updated_at": "2026-03-26T02:34:14Z", + "stars_count": 26430, + "forks_count": 4062, + "open_issues_count": 1, + "updated_at": "2026-03-31T14:42:16Z", "created_at": "2016-01-28T22:09:23Z", "clone_url": "https://github.com/squidfunk/mkdocs-material.git", "ssh_url": "git@github.com:squidfunk/mkdocs-material.git", "default_branch": "master", - "last_build_update": "2026-03-25T22:14:34Z" + "last_build_update": "2026-03-27T10:24:49Z" } \ No newline at end of file diff --git a/mkdocs/docs/blog/posts/2026-03-27-test-blog-post.md b/mkdocs/docs/blog/posts/2026-03-27-test-blog-post.md new file mode 100644 index 00000000..3ff70050 --- /dev/null +++ b/mkdocs/docs/blog/posts/2026-03-27-test-blog-post.md @@ -0,0 +1,12 @@ +--- +date: 2026-03-27 +authors: + - admin +categories: + - Testing +draft: false +--- + +# Test Blog Post - Version 7 + +This version uses the auto-setup token. diff --git a/mkdocs/docs/blog/posts/introducing-changemaker-lite-v2.md b/mkdocs/docs/blog/posts/introducing-changemaker-lite-v2.md index f9462cba..de90f3f1 100644 --- a/mkdocs/docs/blog/posts/introducing-changemaker-lite-v2.md +++ b/mkdocs/docs/blog/posts/introducing-changemaker-lite-v2.md @@ -55,7 +55,7 @@ Read more in our [Philosophy](../../docs/phil.md) page. ## Get Started ```bash -curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/v2/scripts/install.sh | bash +curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/main/scripts/install.sh | bash ``` Or follow the [Getting Started guide](../../docs/getting-started/index.md) for a walkthrough. diff --git a/mkdocs/docs/docs/deployment/index.md b/mkdocs/docs/docs/deployment/index.md index 926d33d6..aaa83f4b 100644 --- a/mkdocs/docs/docs/deployment/index.md +++ b/mkdocs/docs/docs/deployment/index.md @@ -530,7 +530,7 @@ Pre-configured alerts in `configs/prometheus/alerts.yml`: ```bash # Pull latest code -git pull origin v2 +git pull origin main # Rebuild and restart containers docker compose build api admin diff --git a/mkdocs/docs/docs/getting-started/index.md b/mkdocs/docs/docs/getting-started/index.md index a72e6d01..2fb6157d 100644 --- a/mkdocs/docs/docs/getting-started/index.md +++ b/mkdocs/docs/docs/getting-started/index.md @@ -30,7 +30,7 @@ This guide walks you through installing Changemaker Lite, running your first dep The fastest way to deploy — no source code, no compilation: ```bash -curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/v2/scripts/install.sh | bash +curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/main/scripts/install.sh | bash ``` This downloads a lightweight release package (~2 MB), runs the configuration wizard, and pulls pre-built Docker images. First startup takes ~2 minutes. See [Installation](installation.md#pre-built-image-installation) for details. @@ -42,7 +42,6 @@ For development or customization, clone the full repository: ```bash git clone https://gitea.bnkops.com/admin/changemaker.lite cd changemaker.lite -git checkout v2 ``` ```bash diff --git a/mkdocs/docs/docs/getting-started/installation.md b/mkdocs/docs/docs/getting-started/installation.md index a410f489..fb1835f3 100644 --- a/mkdocs/docs/docs/getting-started/installation.md +++ b/mkdocs/docs/docs/getting-started/installation.md @@ -34,7 +34,6 @@ Clone the repository: ```bash git clone https://gitea.bnkops.com/admin/changemaker.lite cd changemaker.lite -git checkout v2 ``` Run the configuration wizard: @@ -63,7 +62,7 @@ For production deployments, you can skip cloning the source repository entirely. ### One-Line Install ```bash -curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/v2/scripts/install.sh | bash +curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/main/scripts/install.sh | bash ``` This script: diff --git a/mkdocs/docs/docs/getting-started/upgrades.md b/mkdocs/docs/docs/getting-started/upgrades.md index 574a17f8..858392d8 100644 --- a/mkdocs/docs/docs/getting-started/upgrades.md +++ b/mkdocs/docs/docs/getting-started/upgrades.md @@ -61,6 +61,10 @@ sudo systemctl status changemaker-upgrade.path 2. Click the **System** tab 3. Click **Check for Updates** +The System tab shows your current version, last commit message, and auto-upgrade settings: + +![System tab initial state](../../assets/images/screenshots/getting-started/upgrade-01-system-tab-initial.png) + The system fetches from the git remote and shows: - Current commit hash and message @@ -68,6 +72,10 @@ The system fetches from the git remote and shows: - Number of commits behind - Changelog of incoming changes +When updates are available, the panel highlights how many commits are behind and lists the incoming changes: + +![Update available notification](../../assets/images/screenshots/getting-started/upgrade-02-update-available.png) + ### Starting an Upgrade 1. Review the changelog to understand what's changing @@ -79,8 +87,19 @@ The system fetches from the git remote and shows: - **Dry run** — preview what would happen without making changes 4. Monitor the 6-phase progress indicator +![Confirm System Upgrade dialog](../../assets/images/screenshots/getting-started/upgrade-03-confirm-dialog.png) + The GUI polls for progress updates and displays the current phase, percentage, and status message in real time. +### Upgrade Results + +After the upgrade completes, the System tab shows the result — including the new version, health check status, and any warnings: + +![Upgrade success result](../../assets/images/screenshots/getting-started/upgrade-04-success-result.png) + +!!! tip + If health checks show warnings immediately after an upgrade, wait 1-2 minutes for services to fully start before investigating. + --- ## The 6 Upgrade Phases diff --git a/mkdocs/docs/hooks/__pycache__/env_config_hook.cpython-311.pyc b/mkdocs/docs/hooks/__pycache__/env_config_hook.cpython-311.pyc index 0d11b807930532c9227ec8fa888a1db087ba305f..c6df05c62f08c5445b738a1d0e549611c84a3efb 100644 GIT binary patch delta 20 acmaEE`P`CwIWI340}z<(IJJ@cjtl@r83us> delta 20 acmaEE`P`CwIWI340}z-`Ik1uYjtl@qBnDOh diff --git a/mkdocs/docs/hooks/__pycache__/repo_widget_hook.cpython-311.pyc b/mkdocs/docs/hooks/__pycache__/repo_widget_hook.cpython-311.pyc index 9bf58cc1f79d2acd6d38c966a77ea59c55754917..c610655e299bf037757309d860f1315df16fb7f8 100644 GIT binary patch delta 20 acmX?LcEF5#IWI340}z<(IJJ@6R2l$1lm&$V delta 20 acmX?LcEF5#IWI340}z-`Ik1u2R2l$0p9NX~ diff --git a/mkdocs/docs/hooks/__pycache__/wikilinks_hook.cpython-311.pyc b/mkdocs/docs/hooks/__pycache__/wikilinks_hook.cpython-311.pyc index 3054014a9ae2145eb55780545d2b93b717a2ff76..88bec18338d126d5e0d169808011476867afb1dd 100644 GIT binary patch delta 20 acmX@*e9D=7IWI340}z<(IJJ>`zajuZ{suz; delta 20 acmX@*e9D=7IWI340}z-`Ik1s?zajuZ2?iJd diff --git a/mkdocs/docs/test-page.md b/mkdocs/docs/test-page.md index 67ea0f95..51395036 100644 --- a/mkdocs/docs/test-page.md +++ b/mkdocs/docs/test-page.md @@ -5,3 +5,9 @@ hide: - toc title: "Test Page" --- + +Testing + +testing testing one two + +hello is this content going to show? \ No newline at end of file diff --git a/mkdocs/docs/test.md b/mkdocs/docs/test.md new file mode 100644 index 00000000..e98ae0fa --- /dev/null +++ b/mkdocs/docs/test.md @@ -0,0 +1,3 @@ +# test + +Hello! \ No newline at end of file diff --git a/mkdocs/mkdocs.yml.bak b/mkdocs/mkdocs.yml.bak index f0ac4d81..04c7e9db 100644 --- a/mkdocs/mkdocs.yml.bak +++ b/mkdocs/mkdocs.yml.bak @@ -9,7 +9,7 @@ use_directory_urls: true # Repository repo_url: https://gitea.bnkops.com/admin/changemaker.lite repo_name: changemaker.lite -edit_uri: src/branch/v2/mkdocs/docs +edit_uri: src/branch/main/mkdocs/docs # Theme theme: diff --git a/mkdocs/site/404.html b/mkdocs/site/404.html index 5d702923..8880df87 100644 --- a/mkdocs/site/404.html +++ b/mkdocs/site/404.html @@ -1522,6 +1522,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/404/index.html b/mkdocs/site/404/index.html index ef29bda1..78ecfde8 100644 --- a/mkdocs/site/404/index.html +++ b/mkdocs/site/404/index.html @@ -1397,7 +1397,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -1406,7 +1406,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -1598,6 +1598,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/assets/images/screenshots/getting-started/upgrade-01-system-tab-initial.png b/mkdocs/site/assets/images/screenshots/getting-started/upgrade-01-system-tab-initial.png new file mode 100644 index 0000000000000000000000000000000000000000..0146549f509887813ad5a0f7b11362fa4509b118 GIT binary patch literal 119161 zcmdS>XIE3v`o;^Z2q*|BRjDe{n^L7lrT5;ONbgbugn)vGfPm6_@4Y01j)3$MLg+0> zZz1#+AW!!5-}?iccjx5Qon(xewN}QQYu>->x>kgih9VgWJ;|LrcgU2LU{rQ8}`08 z3GB~jY`6ElR_IahOtK3r(d_i&h`dHF8ZOuIyk^+x4T>BXC#sro2?iXBpD%d9rH8!W z;&6<3lrYk%|Bj4Uo6AEY{7>Rv2Zc&P|5x4lVnTkG_`mf;z=OB{Epw)1|J?m=4Q0MZ z{@=3X^zrBamhURVzYzSlc9Oo&_}@}%_r>ym%P%Gr|L-4KBq||6FZBC{l=y5##a>@* zRt>zf$;(upEiCv}ru&v)$DypasP)r<_A53v^OlxJjC1p2GhZxvWx(w~>^~&VjFXqw z=77c8c2P^AC@=I|YwPvcFU3966U(e~xT=Ce@8DeBFpT*=U=R+sKS&Kk4f*V392N#_ ztZ(>hX0SZ{91D(u_z1V$j1~UY4<(A`B_Sbs*`2>-=s$jL=BY!1jpgz}Cqq6Vu2vN_ z>P=KF-Y@mb0R*Me41_~tU-I#(5B-wJ>iG*ko?jAp{JDQ;rrGbz%fr>m)w-~nyPem1n1CJn` zCtEC0Zb_#O}Ibvb)z)(lC1%PJoYDvDf3OB(1&%shpcqAa9w9a5O=C-Mw!#DUeN`o-{f=Yqsi~p|9aWdM`#%e(s~0|@l9<8G8fp9T3|`i{p$vuu zrJB3Gz7RSF;R@7FVQ|LVt853v6HqW(z+4Ot>S|@V@`(l08lvi$$^JN1F5Pq#%Sxs_ zVKT2A*#%xPOARa&h`4>a+?}(Wn9whkWZPb^;3B=Wda^gKzj!yiqIP~5nT|CcY(u{& z&U3cHSXp8ATZh_EWkQw}D;KV+u_W!XJ|BZV1RSdJZK8uZK!0zYR%<2A`khGq37hO1 z)VZ1V#%G<`EF9mCq)B$9XO-xt#3lUIotzSKFFyx>bkW-NFqx9KyNInim!68EYc|=W zOl8Wp4UuOMk9x^@A)n!1hZjR5ezZ)NM&ev=)}#17sE8Td)^0774q<^z{^`exuxnZ}j%(xV4X{7Z|fGLx4>yD0U3vDrjx6AdaCiwel z_G7Bk;dY%UU5%cW6O_MNAP*P0=JXe-GNu{ET zij3sGXiP|$(5k-6Bq8p!?XY1(dSMj{_PsGb;`~SYcIB8t)8IQ;U(dw*)SIX=wqUi( z$~x$}Dts$2d{yz<*JTzrbW#Y}nHPt(2OKI8TIUENOUtR46ta(7c=t<94bx>*6EmI= zaMTKLUJdBFv5o&@%D?yg#qWfa;ZtoLg9_p08aFrju*eWfHkzK9l(&N_w?-|QNsq8) z2DmF?`Kk(o+#O;j)Wqa;VsbKw_BbQW6y~;YBPgDDLp)Y{^sSVYK@2)ERuLa}Ex6{k zH3|T)e6p;;5zPrA&EV;^C(EU1Tk?1AmGjMdDk^ouK*wz+>3ZkwYv{_aIcqKW8{O{| zXtDi)Rfj5g1!4TiZu-rdHX`+sWhXpn@l$p$Jo9$+ZPTJ<=?mFVmY8P}(UTvk&ygK} z(t*XX=`G%sTT(G3z9{J{@526f*MeLx#4p^ovUh>)UZXA}ITngOgTn|(+yX|tuA?o`uxk+gSYd8F=LeqPSKxqMwco8ijc_cX!3x&{lKgAVs3MY)e02X5ynDq?^B zFqX1s!v>bfSDM24u|Q@kk?~kr>=lzFZWGhen4CV1&LPNU2|qO#ZaMOz;Su#6JO~O6 zxNTp7hl0Sf99aDHiL0O=NQ3wSCyQc!A_1DGb1N*A=|{p_D|6eci^WW*(gA-s>el4% z50bOeSvE8Oil;v4xA&uyHLeoSEZ_cx5=D`=877>(<~Zp`gt<*|=iN#$Z76U^^G41{ zm4(h%OUAVNDPZ70cE7`qjbnQ$Dk|OZ+$+mNPxw2?E3K>@48)dtRcA@_ zQj*mKDLAWVZ4Ie$&{CW^(T)MZkFOw~Y{8WeiYig*w^TvIu3y_ondQ(FCLyt7a|3&Zj>Ji&13ddlT=CtcJT zQ82-R{Nkbm$2Yx^`n|{nYj&aX?^RM_e|N96y-K|7)tKMZXmjP$?@M^OH)tuTU zNBTEsUZ5{l!%aO~-zQ`J9G)xRRU*b4zYsXnTrZY%URsT?9g(@}&%Jal`CB>@ zJxg^0PmJmabf32KJDeH4;>(^L(QAFW>%&lw!1O2PfP-D>kHMxe|DY3}bo)83sHN3y zD7}#XDgtaTZ#{E8T{HmR8~ia&7JXV8(Bz6-(zz*hOy;&8A7{ysPf`)gbkiK$K;(n?)sEC7Z2L^bdOa<3!V$20!{_dZ*a<_;lcI& z8)s7xzB>0wvxV@;^}b9|{k!@iG?9v7U4o-`79qaaJucFo;PffCpCM74~!_09Sm}!cNiWFRDf@T{d*b*m;M(Cr6bKU{O#4trTrn3Rg z7bJd?S?z#khV-X(0wJPr=P7QN>Z19W?&}9U|C=i1L|b{&ZXWJtbjrb(ZLTP~y}esk zjrOrKFb6YLrThM^r@PfORrDGhesi3xKh7Sox`U=Wj7X47*qhDy?ca7~x1K3@iEu%? zwjX$`62EypwL0oZLrUgS_qdVHa!iy5 zTg+!6cXY<07l+sn=4sUt-@h?gX`c6(nNE!)G-uy%j9P`Dbh8SlllYwHN*-i|WwclA zjTPl$OA?cKd;V>{`>Mt1q@oKwvvB9~>)q@l$>gn&P8QJkahl=J8gIYVYIiI}!HR$~ zT))cN&0}LP!%c1ZM`N!phQ0J{9dlutq$imsjl7Gcyq{S*MB@q{hUE?Hi`%LPsHnwh zjh5wNzp*8araHA!2gQwzcMV(r8(tp!JrpA7vtW0%zh^%ncrjgl$Tuee*>37p5gKv5 z9*wKz)ofb-)#MzoQ*U3~%I?w_$LqW&GYwQVj9<|#d^RWfmf~!d%iG5iEZ={B!B8?b z)4pIJE>EUG;nzUN)~>VU%wkAi+=oDoMH!~luEBIvjb^K=JT!;zNl)a&HyPi-nsZa* ztMm;TVQuJU0Ixoh&5Pb3W3MJ`vq!wOnE?5%5s~XvkO?Wnw z+B|v{#*uNeYmF0{KEXB=uFwUa%k@V)UvtFrr%`yhRSb@^U{Q}+S(5ry_Cvn)l!up^ zoSA>*R{I%rt7qBLUbtH^FrZoN2L4q(ZZlJ1?6x7r9@wk-DJgWLr8UA_4(A9-69GDk zNe4$lI{(K4(!MZk%BIAmR%RYIUJZVL6ZWB`1%8s3k&u!sRkz70$|NTJHZah>&S7j* z$0ikylZ|$d9dKEA8Ms?yWGA0|JHwW95p#&uiBROuSCEc)=$P3Tv)h=It=KH%@F@|Mj ztcXzERnCvPhXv?HSifRk5gA$c?s<)inWeF@BX*-rICjKTcv5V9zGJojtF)pBROD8s z-g!NaO!#-RkI&ZYOj=SAOQb!%@%F~d76!2%|D{t7KgV^OtC$>BwBE`FoIV@N&&gTd z>WnWs{aJGFb?}D!f|#AHEq>B&O-#!8?=76I@c#S|Zo#}b!jOV^p?8o;?ENP*GjT*F zvMTGW&?}EkA)2`b#fa`&){NR-IF1Elu&xdnO{;Z@~rM?J{}j+{Qj( z02krhS#%~`(gcgBDY$8qA3=|_{`HTqzn7N(F;hqLSvFcM91llCL8=_BdI5Bq{aPFF zTs2#M2pu@wS$Lprm^FAY;MG{B&e^U`TYTl$x@< zhaWCtfg+o6DL8QDM4POVUMk|p<(4`p^bS&C8$-asI1dvR5tG3H*3DI<6(uMZPh&!IlB#ZGJ4~&++C|2bj>kM#O-)T5w{>Yd^9n^ob#;Q&MP4m&@J7hc33d|=UqMxrl@SKb!|Gx@_TfE)Twk-D!{rCCORjn8>SNU7zN<(6!D&PR{tl=& zS6@FT{^Oym(uMQw0+YmvxJ45-Aa3q(bBHslH;FunUJP0=`v~;>>ctp&ri6o-T#xnm zPi=^0yrJH5xU>b-CjTPNYDj^0>6m?-U*^a|I4or%yP+3S?=}v}Eo&a^9_wo-)--FO ze%>x;i~V}42hFPYb1JUVfV5QaL$gzUoy>>$Kqxq`{(!zA_tV+uaYvPz;bIyoGJ~L% zK!ZU3wVF2odirhTgvDF0L|R^0X|C%J)AN{wO&vSP2235&R(LAubp2RDB5yB_don=` zyyEk?JzN7Vaou;y19ME&MlR;Cw2oU8x?h5)V?sNC`*XP~=9Fz%umJ3o=ayPg3jZHR z{>Ze8U!HcoOtWH#=}`oFwMaOiFaBklQ#7$pi2{tTNQ zJ3HHJHsGD;Ne7>Pp8iUUX2)!dol4B#Vs@yLv)F!cw~se;yI*{5Kix@5-`8R#^xqMA zKzWq}e0lkBLN7{FQz=$esd{ZR*>moh-eq%>1dZ&)P65GTOQ59vpgXjni zFGebLJVpG;yDIwPC_(n@Jrvw|YMHqpC7&-%-=~Lelj7A!W!-8Dc46?uWhV%p%aLXb0VP?_0YO=w^#CnadOaqE$soj{rdi-g05aD|LqTxLr*Q(j>rUNbyRkg z?0m6#qj{@7w^Tx8{Z=ta8dXMajaQ03W#XVkhBZB8hA!EW3CeV75^F-a;r z7n{6(h|Y~8&%2fx3U#rdOP?$3Hc_}>OsREn?z)YC`?@jN(8>yN2fkF{mtAW!3D>h?9<%;C6%8u+ zV9ITVd+x0zWA#l8-8|T;Xl}Y`pqGnA6gv}IJGf0J>{J!*Bi|!rfW#^i^!d%_S2U(X z=k!eH*M#Ulja|wjIwt*)Se9|naG}?9uO0+Q>60ZY(o#5DdjbM*r9oTvtJzFzFFiK%Rg%)SCM8ClXZgZlvY$EPg83l8@wQi za_(3V8<$CGx9$DrFROS~y!zUJ5xUSwyM+MHxF1iC=W;-uYh&dlDJ9tRVf>qHl zSkr$x^q@X?{mNNn7>}KHD$4|NcdL^M8JzVIb)^nE0!mBj*5(?=CnV$~_74i63BI4z zy1PokLC;16^nu$gGvVCao|t1M@M1p;2Mb_N%zFQR+Ur5}66Vq1r{X2k4rP7hyth4I zen`yL@=x*+`_b&bHzeHhG}?}irIif8`)_r)w<^$IT7ltCiSdD z8bx1zl2`Po>*#?xK%2Ll&9n--s@5wHFqTC(b5L_jH~WOgmILMpe0%G?KVj?9+-Z!R zx7%L|XK8y__$TTflRO*Y9QD|fTo4MgbpWoLc2V(dJg#(jI;iNN`>uBS-TCi?2g9Zk z-D5`Hn}KDU5HB}*hGEo3b-v6*cF{p!RzBya3m>%E+-L9-+RLtYm#{v`i^D8I;^A+Q za$n1_9dCY0b?cjjR^RY0CX>pE#o?;bZ}%lZM=xn8tM2O*hH$@1c>D9Iq>-wr^(c-O zX%$*zkjb6pqQAj?uqTwH^N57MJcuC1v!kt~L{%(#opcI8siCTF+2mM@0&Iq#F>MBO zeVKEg*<50X)Sg`)bu9oy>baN*7j_&dYL-|G$~>kKMMzf`L{SV3&Uq)py1A?G2URiA zu2fHe8e0Ssl{tqCo5i5bUIJXBKLQzPp4|Se znoRcZ%Fku~VSjs<9fXK-e zN1r=p>gWKRI}_sAf*m>zAq?iiAi_yhnIk$`IHylZWuB`Pun9Dl8qrsrzh;%eK^(YD zZNVN0*mwC4|;Hl z<(d-|GOQ=!1c!8j+BrE3Ld2{te#TGw+MAICa5^_YgOO_Tt}h6Jcf86jN;Y)8(TLwG z8gsdT2SF1z#D-NIJ%L`dHyCZB`-!xJ(mgljb;p!Em>k$nnb7j%IIWcho34|D`-m@6O_aL5 zk20ruF^&V@?(PPebEgIM3PF4+Cqv_{Kdj0jd4G~VP%n~bRCm_(n0o%;blzjN-r|#a z*kz@-%!+ox!1OKss%R%D5miWh=q`B2b%?n>X_!Sxo34=AF7K}(pG@6_k?`evZ$Vpf zg{cjRy?i;8v|(Uz?8)$JZ99%3r1r+4FhkVKM@c7dU+V}HHo>bGap$)jT?OIm!9vI$}(Ho)Mj%OeTJ4&yGsJ)9B+@lH*MgGZUWxKSmwOVn6sy} ze1&T9$|lN5)_j>)x*oZ7GulSwgPHYx&GjaXT)$L&y0V3|oSCxXNLm8g_Boc63#pEi z^nU)KUYXC+G#G_n+Yal+OX%U|!)ngz8X7SxfjdR6wUD2X($ptnk3>dwv(#mEhWMEH zv^6xNYzIqbg{P}6inLi@g|QbpdE?icv7^ITZ~{@zSw>vnE8*8bcT%TYb#-+i_m3)| zCr<4_nU`rt0#0D2H=oCgZE*1HUL=B>N5<-_@3(vo@Zp_cD7u zk3z<8LH&@9&8)u$7LLV{&!C%HMDJO1wUvV>+PDd-Q2(lU$eZYjD)Q6-PV-5kgM*O_ z2DhnkCvizue~YET+emG62#HkU+7VI7$>wu|PT$Zj^&QQq%%t8`#osF`_m~*WuhybA zRUK{gvx7YJ8B?5FxsNL~XTR00fO7U1`2(0~fueVz5agZbktOf{#{wYZmVen&sOcs! z0p3N0a_OY>167s8%*WYd_ts=oi8IBjmWn)@eSs0Np!XvFI~Mic$lSK}gz=y=v{0g# zN;T(qhfl|&Jx@d%45+^cc(Yg>=1YIr|2}SSO6N|t$C#!)@>LbRy;|}1s4-aJXVBa{ zY|pgaLE7~xS34eOBTrSO-j_kuL9I!L@N zrUdFGXo(edoJ#RMJmI=hnusqJj)kCr&hxO=aF3t?>)hBgUI~LF4plVc#JDW7$$ycY z`_4p(*X6a(e%!ZFbIGyxjk%t5$Y(rj{T+l6#yahk={Xj=3f^c-Cxrmc9y&~)CBp+$ z{zSonej28fZa0DmD`n&s(7ozVhWqQ+yFhakzbW1H+0l_FzKQxb_S1J=cytrK;@Dm1 z-e;xALCk$tL1JTLd&^C}-;~|(+i}}DW{?+0lgu_}Di82C0H4oD1T5bt^eqpcB@nm&WSrukXuPpd3A}#?$wX#i)F5I8pAzxDOiDj($mDU_Ozq<+9I!r zM>hiW#m{9qn?HWzSmS5-_u)}i?rMR!bz4TI`k>^K4;tkcT_RbbiiQl?Si`u~jIyFM z2T{lZEJI-K2=m2hF3q!5jE=par#BJw`oe=d#nMTnLKzm5=N)PS+xqd#m-56Do!x;4 z{E(A(^7803AkU)iQ?M7NHytEzC^cCR+n2O!bOz6E0Gh=BFje^~zrra@3tC}-$V#22 ziQBbj3HvhXq@neVw&O3p(fJe=kL}^dcCB1)T?t}g+OMvL2P>oP$uL@$)&8*d1xPXA zAXDt7x<$EAvEyPh5wBA#yB6pb{*3n5Ae&?DrD$+5!*y+!@5x@bd-5WW6z5urh`N^dmV3WrP2_S2rE)2|4>v-7d@+$2;N+1bnMQk*z2Ik=m%pyxXn!) z1nR22WHZ+`g@oiu^&IHI=m3p|8|cN@aU{wG;UMa`->B>2K#ymDf1gymeX_h!Th%^_ z7Ze!h8d91*#(mArvN_Cpx3M_SrLDRg)hNc-?Y(SK7jnXVigFEg@E;r`@w|^mU5rAu zjk+9trnf*&2)9r4I&tpJW9S>5UB*K3iM5#qS)Ltnyrx$6v1D4i5R7ZILY50=AvyRT zu?YQ`8Pl3H`cu7_c?zy6Pi}!FNM%)_SzlEiZ!urnl1@Bt8@-MKuAREzfQaN03fX7ug$$ z2^~W(IM-&Z00x0ok~cWv9rc>j^kl_UI-U+l`83`va=Sqt;6#1X7!R>5Y84mzIxjRZ za9mO;$;T%f*gyx^JG5_IBw)(0wX>-*Z)n;{F6r;@PpAO>Og)M3`(8OPL7j78 zbo3wp^2#lp`?I6tBmcTQ^K=b!zOv%P*1PXj#?uR5S(xd$K6ZC1A@7y8T03^j7KbEJ zU?fEcKqnVgLXARyN^gZczSE&M%Ek*k&V3&cJ`?t*cGB`zGLSF8OY5Y#8({Y5nxw?*uMM zvE9gGlGM}JMF%|r86iN^N;tK?Bmqn$uzt(4K#fp37o5BmFY$t7Az zatLL~%_%Z^eQFmfALEdakdV7sZ8o;HCJnWPzvT|Hx1LQD(%-Hm zV)PKv>W^5X1pfW>2UQN%uS7*T(rJn)q#d>?idl99MA1ue=I~-p=ABHi*>u2Q#;d}u zsmU1dl{+c1$UMZ2LxsRmJ_@*^M+(-t4xQ^b#zY7yxB@OD2?G%%y=G#fF_@q$}**Dk{tUAtdl9X`j981nGv7kwXtcX&6ZJC z{IpV3p#rpEYYQG5l97WFF{WNKym*s8tOh|#xtwbB^>&awOE8VGtj*_WY4zG|&1c(x zt94aH)dQ?BLg^bmUKg@2)#MfO$bQ+JE$@g~toV?^)BkvVB=6lFW~m6SF_VXqubS0|nirR_ugr@8mvWt+f!Z<~VmaNkM2yvlDE-1j$>T{9UQ zlUIvl3YaeEW5hHgTKv(zg>apL{(fo-cqF{I^5Zi1{-2U|*_LiiwG;9G$OF>PMo+OZ z``{M7OI!T`dopfrt{HLR;)bF~#Sh`scI$@saAM9CwWW6n(GcP|!(WmCzGB$N3e`N6+S1IKD@oWybKnxYo9tk(` z!+Q&xG%s(wZr}eXkwJp~r1OyR+=&0suX%MG<$nK9?jmuRGkFZ&cr>@zN^i6QehDBK zv5d+N{gbOuL-M^iEITg4NjuP0o(8;h3I!jx3#RuCIcshN_M*L%C2=R(TE9>pp9$DT zArbkI1d{G0ba>g3F@AF|=JQHl!$GL7wXse;(KlR_uLPYLB0mR3h}s|Si2tKtZRHr= z1pLgo2*S$&d-;0JB%+mz7IkTg#OK*Z=t&4OzzbbdqCQia&q~OcKz)9+wXp;%*FU_`oqr2W_?@(&(Tc%q z2Zy#1wt2J<()#d{b6FX8LUQfOJU@x&x2Xp865jwZEj`y&N|V722MVL3dU_Kdm3C^> zT8PsHB(tDLUfz4H@dafZB^%3xj*dv>4SZ;!j(JjQDDXg+5I{SazLl&&+K^~X$}Nhw z5oK<+{RC5!7^KY`!?WssfM#oI!}9X(h1DM&9eKMb5I>z7VIbD?Wu5sC(brFnQPyCV zRJ2Zi<6+@1Yfy9dV$3;kNdUJ%sEbKvtNL2-yyJ^L1IC{UFF!q76-Qe+G&b5(r7Q4= z@@i@88jA+=VL3Bfd~+s>Y?Krk-g&U?mzOW~{bjc}KYfVaaV=c0bt6SuKqmxVze*DM z%+O+IVv4A@9swE}rEaD|8mN1=Yj4v7ud5!YE0X=ws4Wrh8u;;0{mE;vxU8fh={nE* zR0#uq@|C%Y*Zj|4rW!j89DciwqLckr*UPjZUE%lU{dE}!sg$cKF=<(s-TjNbqr+&! z-7$mY@`&V$>E0#Ozk2;YdznEEzA3M#y4|lgUdaF=#GjUyJk00EE^2N%HUNP@E%k>n zIcK-A61h2MAKX5z$sn(TXjY`13H5ebqBCua2X)ehDlMR}x2qrPh}0tmE|p_7HHOui zSp@cql-2#8ofEk0NIBV@gH5HAQYhJ}Ijk2xalc0sOozQ@6?_vvX*gBoZeK<3CuTmC zqSgDHYuKNAwxe&66~Vm%!&Z`jMGp(_?D)YdFfY}cY=`3p z`JB}ASaah%DD;m?5Br=Cs7abi!Cyes#_7H+foFC2eUm;Wb?Y`W&pEH8eLA>?kV(ly z@{WYfv=}FNh{h?Y*nsI!m6fWy=E$9skB`sQ&g%LC5s$ZIAXr3H-uk#4BkmF#w|~B| z#7=AH>kcSB^xc|B((#vYD8KS6S-&nu5bQckif^84P)Ur?uV1YYCmM@3JQg#E;zyU- z|Gn9PdJ8u(1PAiTwh?V?uA^^vQTFa$imz0-RSs(f5)u=)N}`W}Q&oc!)6-Bo0+t!Z0W^eyiD%I6PjZfiav=Jvg8!U~!L1678s77;G>5vI}eu z+zhnA9mZ*Lnl=0K%gf^(U8jiju`;E=-!3{U725%LrQ2O+=S3exsi)G(=5J%C9@)ju z`OUZzeu&3NgSFyy>!t=bFE`_=ICN(u5fV|9)1)W>n@DzCSiIfZ6m>8{6^$?e{2ApR zLUU__n8;3D)6YE5Vb1u@RbK(?0jfQB7rgR7jg}S_s&|AuWNn>Q%!TUK>C0BM{@WKo zSGUrno7^NrA&@R(_CFR7!XoNA^+Qy>FA6@oI{1(+aYcpe#_6vy4%^~4=tUY8*=TdU zY+>2q96s2xSCuw(YhQr3)s1O_9XT}8$*(%cLnu3JKiMT1T~ig&@U?p}qU*07Q7=wT z7G!DL_zCkpyUG{&@QfI1M4f$8YsUagXQsyu0%%>a)&iB_eRI6fKWZvry-`3&L+lT^ z$+f1GxKk8U@YiPl;QN%zfVnu+p7!4ZeEa==du0DDhoX1n*Wr2TBjQYb6T8dmMqd4F zqUd4AY)KTzc)&Z9hVE1zP;J)gIr{IWuZLo(su@qRI2Uu0dMc)k%~-f;@RGWcxQ6Gr z>R|5HpYM{HBmG9%V6w@p6r;H@qN>z-o_F4JA*p?NsL)V18n(q14CCJOzWYF5^*PU$ zuI#$kFDfnq$Vkscc4=8oX9eM}<-K*Pf3LP?V;i)}mqVMbqlh(hBNCmr(Dk@Dc+3~R zecV#2+|%HIDED^~y3Rs9_M4G6GLi(oqo!BKpDCg!8d<|$OG_A?L}_`XHQ4lRj1(tJ z*4gJJfx=%{Z#Jb~n*wO?4*)|8^enJ?5f%a)q*JwSdEl8WoD3XeZO6VV1lm`S z+^R620|3C~3jzcazlo-C;M=YK-2C0M3pCC;g)7!}X=Vo`mMPt|0lM1GNZpYyTvOlkk$^iD-1 z&j26Xj!*|z!IXD_kEoExh3=MXPSfJ#0$r$w%vg0-$J{Pzup z&QeVySb_cOh~x0@*EmH>BxtxGyH2ovVq(eVc54QR&m=%9_Dscq=zYqA0g6qbO8a4HQxj9g zDCh6_alOn?1<(Uw2C&x!CUUQ}Lzo%q)+{U*NEj-wF!mjuLL%f|I;wu-8)I7J; zX^}~rn#N+SZFZD1mTW#KKSfQ~G&IOkuiJgy0l3@jaAR=g^|<`XcXfCm3U4{r$t)fp zLYB>22JhuQySAR@HtEs(7I2DbcUX798jNtgyG~Gd(9e+aZNNK_66VJ}b13Ei2>|h# z0*CpM{PGdB4j#6i9c^VLrCBh|+rOD>mD*4okKGE@=q(xpyp$@#QdF&&-0fk!_w|=k zgIPJ~KRRJNJ?(TmJ_eHi_q~C^*$on)dTCa^yxN|rTd9gY=5|M#FOioIQ(im+8bMrh z?KV5Rr8Tk}-<8HEHGF@rs1!VLc<}z>5@|?8j;{BH61Xjkk8O zRDqj!p{ht1PjE>_hO|#9CUzfUooDwVO?U1^BumisEq~V8r+QkojjDRL#i=YAfp+@e zvV`Bqg|85kYfw!p1yZZ^UilBXpS#OCj1C7p=9*2qd#{zKG~KlYdotN&NsHT58Rpi~ zQW-R}#M91FE-wj5gVM!6Ej-8jWlTPepwrmd1Fx-=bv}^*JxEg5q|;(f{%#XdEmmz^ z<1-^_S>i?Ghm4Y*X>o-6_eiSXnO{JVzSOtfQB#CWG}jlpEF_C6Stp97%qoYCpt><` z-$0OtxBphndwKa(1L?{!e3RQ_TY42ZoiD_+Zt+&Pw{U-&f2rVc8CG#|@vMb8lX-zO z|K@>w-U2GiHJtPN?Jcq4mGQ&-Ap=VmdNtdhVI_)n4s&MYwT~jd@v0+wY;I}mlRPYx zR^ck3(SA5xXsX;l)IV%8Z%32gh$TBccaxStJP|^}KZLSq(2GPlKb~p1sX1>|HpFBW ztkyWLZm_exf*YRz_@}EQ@%%E!yxq+_lj8}Zg9gB*dlJaY5iT@Mv1zkeVRX{+v*OV@ z7n`DzD=F5O@rY66%ax_Xre=KSVpF}Ep1x6&jVwNN5o{s&AFZhzpi?B>5odZm8@L{{LJ z7h=tEL?BNet+!MGUfdx(-A6y(w<|yCzO+>9}w zIls_eD_z|*lYm*X@CXQ4%GQrIuP|sPgcEW4%zor*!AU47N=-a^ixb1(wPHP+NAfUP zZ1idtz0o%OeZ|f^8Ey#X>3JVdyJT#s&W$%RcRsELrD>$+w-bQy{4ih?oem^EXTG^k z-4gy9yY$VV2OnE0ZSzdvb&_jx53AyqI)ABRGHErY;gyVw_PjhkhjA3{Dzdb0|aWc%**{^HW9YXj76RZ0*%%a|G*o&^L9$= z%8u5aS-`DVo5JgrUPnx!_biGE#*?z!e{j1e#(azX6%rEI6(zTCI1uT+DB`yBK!xWo z#knyoaOm%LzTId#F9#g&l$Mi}n;Yk*fgQ6ftV+74ilKR#!=yLxs!-cWJgN=^&9XA5 z|JhQU2t{|;J6$kK$U7G=ME zCCR;XK`UF&T+K%i@j-dn{$uE0{z6HJSO>g^#=B%26ck&Qrt%>WuS-qUYAQUWFYLyk z#P^THakHdFPg9@j1yXrmRW6bSd_=Ym;5{~8U3 zV-nX$Zq4_jvB+#GztzFYDilyE$O?1v@OY31XPZ=b6vHBu%sxV||5*qzw0Q%_6A3c_ zmN%T02Q3=aaq#JoFq*eCjd>vAEDd6_gij8(Ga*Po&|l5#=ZON!A&%fon?jRAJzl1{ zt_1y$jY~6K{X~DI7oQh&;@os#*gN06kP!sW( zti=&&@=S0@TYGx7WmB8SspZ~K9{YnbM|*tW^H5IT>3Q~#Pt+1J`*T$+q402eO0u6P zrH|`k<;esDX=MI|IbCEMbpa$L#uqp0gNDaSF^1a!CD)AeG-U&WA`fI83x>`&8+SXB z`!65-{}0keGW#_BHyZ17ybd&)xZYoa@#trBM%eXiDr%YUAKb2H?_Q2U`wcCzlaVjK z<6ZuV{#+!k<=Jw7KZ{jbnOa@(11?tYgF%~Qwd*qB$<>ut%bQcP7_37az7ufo8nXV=_1Ec@^!1|_D z!ATGy!s;r`SEA^7Pzq=ZUiw_9AR~6)spaRNO0VPtyJ#O#m>2D$0jKm;?-Bun0byQa zXL#f?Aa|o$p2tpARkcU1&&{YQv89LWUE$I3G2X=NIht2W5PqhtqSPLAI)#^~XM+_s ztC%);v#!=WCXQCTdhX^lTZI$e5kbQIBS->$aHXnx|CbYAF2^beX#Y2C{sl+*|Jf+{ z|DDeN!vK61BrArN;9?=clH}?C4e%%VWhaDQ@C#gBz%=B)mnD#^QI7CGUyB`#ssE1! z;NSj#DR_S#c8^?E+WZP2D)aTfr*$XLZIa=$u-nHaSa^9@YHg#Y+ys)KJ&1w@U}c$- zw7T#x=AlfvX!v^4UL`W15tcq?f4Oh^tRldnfd#N&?&q|Wgx!Ahf0yk}nY;)QV<&n?H>|cyvfy-4{(Y)mlPec<5Np`~Mx!oI`qDk~u38s6wR^j;x-p)_!2`NfcrMSd zV2WlmX@q#qG;ba>S`kz)G#;P$2kI+w53BuL%Z~UN`Q+!Rub2C?+EW9;)l|uVGjGTn zy(B7|qfia>L0dLw!TZF@#l=O}5j8zqWL)0mw7`W~->iQjGM{MYee+phtwam)mRq?`yDFLH@1N0Om@ly-vmNwS&Xqw6H;#XqmfCf5c#B2c*pFCp@B=oXTNBVQGw(Y9^|{vFw_=q_ zs5a*_i$|kcKyNQ$?v1;sDQ#Cbj)$jqUhCZ^--fOS*Jij%R zsiEq&U|j1HIiYdS`CBWd1+vD!^ivfoovg_qLf)&uYG-C#LU*!%T;oF}^x}-c&E;}b z_R9D&sJ#}i>Yzd0bd$aro4t}KjsvEsW!gf5ht7{rWs>Qp@Ut843ie0?BK@IJ4dc>;@V z;#HKQa_rhCL03uW&zsvpq)YWxSLP=|4_x1zY^tRecPhUEv%-_QMVbemgjN)JAN;kB zvHM}wzgSmHXRAgDzi1!VKTnB|c(LlVVi#Fqh{^H>R9_9$BnJtFB3barA9<8@qgP2w zE7e7;Q_j~r)5SI`O?LE2F$5lg(xk&$Hr!}maS;A9|Dd4c8%@{+28oigxwtG2D>mNG zx_#jPlyDOVz?Y2&_V55 z;4=z>os9bjfVN#GUXSQ`C+;em*l~MQ{Wo%!cM^BS_!-}*=(-`f#$DO=kJc%9`|;!H zifHH*Eg}da-aE5c7zw%NCI?aTNw8EoIN4W~%XyxuKhWWAtKuNvDk!L^g4eOGBn@|c z*Z?#CogDH-CtlbX7&H@L*oP-`#@(I1oZ5;+mh9CY85wTLIk^kHXzGlLdHGaeGZQWEhDI+xXsEPGgoSHqh*W=`{2AFs@t+H(tcl5e7maRd4t`BjeJB z&(WdCpKi$*z0aTSl(^>l53g$f!tES)u&ZR3SWUxWXnsq97&UFV&BSAMzM=HD9$s6f z*~{<2U|AJrye`qY+}cr-CZ_YyezK;d%q}0pa2TmP9&6Y(P&FS?g_WCILUZZpOIg_G z9TH7q>7k`9`D@8fqnt*FvdH`$citLbTa^PPRUS>Z+pW5#`d>T@%0vP9Vc6W|8_w!- zRe1$^YZP^&gs=nf0tR%L|66fby;e&^J0Cr>>}~Q3zU>b_=+5BGt8aOx2b(6nb{p%_ z6V6h35P>68#4K@;-jmdtgutMW3^bK(c=W8K^P0ugtdQ3Y&eLYOBFFm73J(vndlDL) ztJo*xN6mL8Cj@yYu4I%%T`Bcxq5g@yiLd5LOK0IvXw7meqvqpBsJ~}aZ&!lh>VzQW z|2f=3Fr$3E^FeHp{oE&kbHE&Hp7023_sm0db1(S5mX?fAR%OcNigK%#X*^5Tn&0NF zf-O*Rr#7d59A!*LdYsV~FqDB{o4CshoN1 zXW3$CA9mdC_w&2#@PrVKS3z&kZsB94Y=wuZR_$@F9|aZQ8!2cwKMs{%uM!*Z6>LpQ z^Ci5U^cuv`As+U8GwzRBa{>yJd$n1+qbE?7+8%ddVEX+2!Sh6%|5?H!9s{VJ!tbRu zo5PBtMMW_wbRSxzwCYZA4{d3WrN{ca^!5H-S(f_?O27G-Ov;Z>!l=(mvZLd~Ihrm1 z!}lzM3cJ2Ny6^uF*7G|~iQ#hj?-)e6iu~{QDE~i!`22fj{|_Ut|5vC+k;UBSyOR>y zVPd4x#1nY}yK+C{ZdV$@in~Tk`P|Rj1R0e7hIJ?~?Fl>7fJ%K3giYRPq)5Y9~ad~@xp8Wecat0di>7!^_xyGL!41JS_ zhle$>l!XbO1n>Fz?^iaYf(k8{T!f1^-s22tcnL)OjXgfI6~=zk2VxcSth9}d4f)#o zf=>{bJYEid={)V&|KV&xTNRVpbhkRvo5E7_t3qE_KutQc!mFbTeW~9?MC> zgd}r2S^@Bqzhm31eiw??eN*BVsneXuX1hKs;ACvLRaXU}rlrl~6qb>U?7OnSL;>?^IuI?^qS(b*X_Zew2kD#Y}5b_6a7sx;j<^ zfsuX!`g8YPFFJL6Dd+Gi(9@vt>S}g*4`b&~DP2~ndLKiFx7v7h5Qs^Z)6C@o4HfS=qc9W--YGz5zUBZTu7)&f`ZD7L z`|cD0J)=z8q*(mH7SGl#1qas|KDyB=d5ay`8@g0e*^x*s>xv^~SAynP*VUZaK5 zf1=qXMs@WB0)`|+^Qx?bMBw5hSGmb9KU=osf7vbJC&{m0pZ@T`2MTOqY22CS4W7lZ za&k(X2VN$p`RanT!fJz}{f_fUf3K-UA4GRFeQX1A5wMNqXldYn%tvL}l!3ttSuE!@ zFDz&59mZ#(GWD{I<(!5xk?L&KBy7$Yh9jD?7xMfb=GQMx>0a;ACdr8j8A&NjD*l;7 z$ueE7nV|*;1f}HUXKYVMU?<#kNn_X-L_nO)H7(56=d|$sYesHVQbYH%%c>1D;rN2? ze9zdO`y_%Js(diitDqSV-iaMS*qcK{;}}Pym!tp3l(gUGdn2=>8Gc#VYi0HFn>)l6U6#etzISXH?ncv- zt!=ZuggWjN!FK)c5cAbp?vtcHR%TqB;c&eKkcXm0-*&=|+~oWTwid62@>R1}Df*yN zr5)VC=~8_5m#~`X@Stw}OQzS%9KN{k%tNIGN9Ir80hN{}J}<$;*-EHE)vEg}HZ_MhwPmArSkbb1w$B z7B7?I_5z(U#wj4t*4ln+wr3{M-^1%d;<37&px8ZB4nExK9Os5WXeZ9BzV>8Ckj1ja z!ACn!6{ESxStth@To`_OJT-ioW5w67zvSZUK?#)P$2K<*_xwEJ7Mhiz9>K2gotqYQ z{mTQ+DnK%1JItmL%ZuUB=&}%Y%0B_%4iI&WDGj0vMP3MU8u==!gY`*mkVckR9+^&) z6yD|CTOflMqj$Ztp8b+15tq4Wd|lbm+t)WcF~L!37h(Ur!SBfo8EYyxhN~96e}4a- zq=Yyj{-zPe_>kD4=Lz?&kEovY$hnA-l*NrOFuvr9+ynFS@1`5v`0#`!BqZ?25$(ui zLo(UPy6RvbN6IB8nX65F^cI$ggpeE(PS;ig?_i%8W}UCbSue;aTj^af@AWAsIju}+6@ieiWIdCM{+{<~pO))vZX^xrwzqV|Dshx=y>w2tg0CLCUf-$n-Z~l@ z8(xx5N3j=<%BCuxkdrRV_MaNme-n21j7@}^0rmk&4#|suMp}v9HBB~!p__)Z1Yz!e zbM3bB5awIm-MARKDq!>s_aGq$ZunWvDwEcc&MA8) zuRVsk!b9)XFEio_Uq4qgnG=JSdTt+bd2nfq4$PT~hhRzJFTmPMLsB;#fgyH-jr=x= z(4>+o5Baf*cH%>RwbEO^lVJ!qP(FT7V+brK_PNe8U=BulS_}_(yf$TvduOumw(+yP3}&UAK84%Ogs&{HpF&uJ`1 z>UUxnWJq%)6p*;el6+DWQNHdlOp`XR1*A%QfGz*RQh*gQR98a^?&J@htDZ0hV0<`- ze4B2^AK2c?CVqm-N8Ri~V27xSdAoA%nh(!;T{eEVsrN73Iw&j1XXc6*s)~v5zf5x& zT47s)T~$EyaY8{G zCWBM;3@a3_sM8F!+1!mi=K%;@_Z)5jM#4@-rKUXayNuRBRQHhOQdOKXi)3_%azyW< zK0vhkp+ieeJAwq55L83QW8+gfE}G?6mjI6rR%uB5mu_KlBb!$D>i~Du!ET)C*;9Jr zDODAfOpK3gTkO`ON=xF_$S`uW3lhW5z~OA7EI_~>^Pi!foI~i-Bl0Go_IwwXb_+Rd z;V`auVY4}YiVJ2-ASw%$#-%Z3-PY^L-_ zaQ!J!YfG2ZPy5Xh{g{LIrl17rjYOjy#h}jg2<1m$p6?t-qq8dn#pX_gL2vgsnDc1i zD+uIB*>Dc1p&n#BqVcDIw}W&!fn}k|+6j2k?fDZs6>rbDjP$R={s*cs7<|E_Y(y}Uhg4ckAu@DNMvuG?aAMC=H+{Geg!uDe8p1r9~oWe+}g z3dFFqfg+dtf>hBgM>+r~Lrt`Qt);0j#WDQk%&T}oTU(xm&&!Qz=NyKz5FS%qh}6@r@{xH80Qo`i6(O78MuKli^KF?af9``0}8OJ0Gz$Oquz9 z?IPL=Ta>7f{b%gz#^zQ>HXkou`Cz|iPH|OoQ-nEriprd~ktyx=r3t5uph^OPCs<~z z6^+gg(|#WtI!ojbDBf(IxfoBC_4A5*)3&dP099)}dtK4~#l;h*($&WRc-38d;x=AQ z#zM2Lr`03i0=c3-40M4dTRtx!k7(^rN$!T^u15{R1n1=U2|hT%e#3ZyscV`@iu_G zx;t~!oeJhoRJLGeWoOGTDr>kcd$bCO#Z+P8S9kj3^Fd)fXJ?r4`4?jrZO24Z;i)?u z`Nlw14AZ#m%4IiF#)@>;B;Q`uBJ_W(%Zi;6ibXi2YKp_&59P_{E}MXDKEtaqH>urz zR*Wx_o;=b94Mt10UP`(EX2Ru^Gx0_iFsMI_1`O(QRihd9bAs(R3KL=PU%3_~MTzwm z%@p9Y{9jDK4nJh8X?As#)Bu7dsIV#=VR{pSe&!#xFPnjWJKMZB;{wn}S#=^KU(9EY zu;e!Y_J2SdMf|V--}T}^^Z|hz4?@W&b3?SGZY?h~Iwm5+lp<@WqApCWi7}tZdO(rZw|y`4V*4^soOHB14>Y8S&h7Y`I3M@pkK3c-rRnN)L=FC3rtusux8qo*qL5W&<{g; zK#!aRQs8_Xoo)`}Mxh1Ca*sa?klm0f{~W@9Nl;^NRqffC2E3iBc54y7H0ngcmKziC zm^r*ZTD7GliHeR+SYm?-lzT!Zs$iMS91T>a>%W&If`gbx{vi_3m%W|JG^}iE%Z${g zvt||zBTi0^^2wC4_3AU&QDrxTCsVW(?{06hy6?YL zk&&mjuPRRV(^)jC8UA)e%*vW)$;L33q-s43{^++Erp%(88XItqMYmAHk@ki#k2qN< zRuTxw{KCtpw8GTF zwXVPwZ=74YtdnHH)s50a)njmzAh9ON3K=eHcROP$$zjsdES-yi`8a^AxEX&Vt3z>b z!2sht`@si_>p5zu&VP3HKT`4LIKGY&dyxQhFq~pKN(9?jIt@vH>%DZmPE06UrMJals}SH z3A5e$w(fsR%E|C6l{F&`Z|yb~iX9M}6O~~n^^=LPZ)Axw?e{B6sEG*m54@)?P=D)O z!HM~D9W=#yX17=tr;xnjtoL*SKXB{UYaJKT^7Pp(i{UPY7Y54br^+|6T4=TV{9j1- z=U(1_j2r_9sMz@p5T4tGIUEJ*XRTgB??eJ*GW#^LD6#Xe6K|9ZEkr5(;a&jGNdd7_ z2P7&Y6A$a-;)b+?Jx}QYUv%LQmOYeV{je_e=j|jgo3!mzit**U3{Y4Uhc6>r)pbKzYia9q1E$jw?N} z3E?sMit&&!tz~hvgzu7|x+3+gL5h@BxuC#w6I*I#$`RP}X-xU7rnS^L?&L-Un#_1^ zE$#rg(Ns$`Q^ujxM(52Ak=k0eA|QB~4^?VAJlj}bcXteay-rgR5gWnI#**or8I?3X zRKgD+w#KpUYiv?#!eTx4HYr-dynl80uAef_n*b)&$)iFFVgMbO2R>;g4FIUH`MI=j z(!C8qy;GA*PVz+Q=Q-KgSKMc89-wWH`ybz%j~Cc<~5j^$AF!S zk#!jkr`HXJw6Ww^KcOwUQoF%Rf~nWu;2mtN^H>Hou@)X$)My<}Co3_8shGRYYh#_GPSb|9X`KzARn-@yxrW|sx;eFDzo-q-l*ZJ)E{f3 z_V_hoGTG_=!yKUt6Fln5_Pd7|*L;Yw(1&{{cf}5$GJZLXii#vNVKH{-XL}=U%sOV# z*#x23{FUwNTjEJY$vv8t8WPP)@fxxYq4*G_ZPdMmZ@??w2)*B|`w^WUNuC`JlIVL= z*8=a{qtca_vhGYB0dyrPax-vDWH7f7p7jXwZvC5(%1=hA-hM*6O9`Mnb9GwSWa=IE z((w&vY$^@6|Fp~RIIzsLaRdqJGdj3~<5ArD9&xPhnC>stB&@VSG;5LLYaw$qC&K1% zFYm(YfFzpWb4(c{DW!LYltYJFdLBN0u7^XDcDU@K>uWM#Cuon1`(QLqABYn7wA8~o%hL0h)-41Dyl*YRp?jMYbDcPO*Jh5d8 zO9F}8ot;uwe$CvOD!0%~qupB7%@682^D^e82f6ABK9CJlRn<|ArD|~A z;CU&ak0*>F*TF<*^(*I!9Pqn34~mNL$3#amv$Npi%C%Mu4)<^IQ};ZV>tHwPv&oYQ ztGzq&<$LP&?9PwT!3#P0a&>Oi$arfVUqCMKR!8%NNnmyukoNtzk3fY>XJ@+i>dl6& zgmf>z$2{*j)}BHnWb8)N@Plm>k2fj-|6Ot|Lh?ow_BRe%QQCF6do{HIU;%MZI&|G75SE+4cNPj>bT7 z)5`DW_MFJD!}>I_2uHMmt%d~9&XeenxY~;I= z)lr-x$qSe&fuE#EF?E@oLtQH(?Vb3>Votm;_>_foAGqG`>AM)5^P01ExMUk@;JZ1T z`9@Q6l{-0w3kii%iegrGXzg=o zj&J0M$0i_c2Dq`kEuIdcOli%lD(ZawsSTiJ{=&mja${G5w9Lq7>kX9D6!L1KvZzO9 zBRzKj*g0%p0KjTC0QgfU?1}f=BaI-At>=#@nMZpGSDMh^>HdhqZbdPSrGNgke*8IiAC9!T=gLyx}KA0q3l}mb}PMaZdep+?}zNNQv|n)WN`x;>*j~5@`|(F zwG1n}JB`ic*vk=z!)CmLxlkGGYSP4=1`@9;G$$mEOoZ=ahVpZc?wHptseJ)U%Gf}j z>_!>%yBspC3t@{13dp$fK`nBAMH#Z#XySQ&)TJ|1ztT5!=}NV<)OdHl$?Q*<`{cTm z&*qmwO9!zA)spiZ>1Hi`ahurB4`;X*D`eC&RNMF8ov3zxpI)Oa-fFr|xAuho*^~ z1`uHJQby+#IywXBCs?m1!wa9S&e`PW)8dlM@~msW3YBwzjuG&>ovmuuW&zeFD_pUf z#0Ee#mugIzrhFIkB_635A_CwQzltxTx?7yQ(g_wqLZ-a#oA(Yt!LZY#{K(_?1rZZ1 zI>vw<>ME0+k2roZ9b!*+0^;+5a?Q*r_mZ!sQLS%msF1zW7ShguVHFx%7VED^cB(M zbql@E|NX~^XZSEI{DP*lnmalH*3sRZp7w^p{%|u9E{w<5cCFrMNFLnq{jwen0kkLB zA>M8h5Gw2ll3g5S*rN9dr*qaUU@0(`n!|RLNO}l?Ow>&~qoYeC@^ZOw35IREY;+lk z&L1-=D(r00-`7P1>Z+Zf(WPJo*^;+s0rumZ7PQuI>b0*r1eUl=X)XLNo7+{jguIj# z*{@#j1*3gr9%XW=QOYqH-N3Ln?X?LW8p=p;dBlS3f1u11w83z9>OVC(N>5MgihmP- zk8^l_-r$&TTG@r~Ub*YAcimglB_Iy!^QBm9JlT)uTzD!CkBd`@{2HmkZ3%wu*!05V z7p;EfxKs7WuLUPBK<))AdKN_E%$(VzU~~6GZ0!x{?s;6y<`Z7Ll*b)WN=m9DlFp>U zCuj(lnX;-$a~RP%|;X60$J~fazH$V zs6Bmsg#|?_Hxo+#=&6BT9vz+cZc~eZ{(^#{)0KcyNrISVC$D&bo{eoZKfmG&a%y6V zM%_3oF}0?25`brpt#|@j$$UqT!bD;%fii%{XCf#a&mKuzRCOFzipWU;B^A2=^bP?C z-RFqWls=T|N0*04zL)6NPQ#QSDe=XogSQN^=NfVHm0n^~7eF(hq%z!}ej zOTDyC>EsoW{wRfTGOt}>bdg@SK^4Q9L>S9#orefOH-VJ^y*JV$L6Gg4L@}QzOM*zLb9|^dwNFGzKE9 za@P^{rl}#8>mC@SO1q4yO|xD-xY3ewGGFkH-!q&?MJt1Z-R63y<4_4t zJ=f^)_Zl!hgKc=Rq*qLawwSb{hH&9kP{!#*c#C%A}33u zl9EB)a+_^TN5tJSMEvHh28=%c7<^=(qZb*i^nTwWzf{}dCa7@NXbLL{f!ZU0BB{Dr zExn#!D1>zQ%l;2%moi#?P*2FH66|)=$VyR*>WS$DCHDd9%z&ZPd)5``wk7(-dlu+- zqcf@2qJ4LHoQbY%F{Ywks3c|a6*@h$LL-cRG&ScJwT_=^UYPqr01d|(rd>-ViMnb* zDr?lvxO0U$BID0!&b@gdEC1kXH($i|WVk5b)arKA!y&|N7Ws_y+0>{~UKo((&NtTf zy!Te`2k{+MJ_Ia2$^5#ha&NQ!5$$UVJhhb4vbW4Ode#-ALDS0=t}|^u`rG0RN*WY| zp>bJ)us_<>;P_%p^n^hg(?-^n-sXd~lhO=~76dRBgf4$N+Lq|_P=rMd$Z+H1P z=3t`bzO|XN5AD)|Cp#Zb8J+RW1vx|x7!|mk^^)}60%njJ9egn}M`>sH&yKF$6mvL) z)mv7FdycnX5)<4vI-3E`H)2(5IC>VDIhLyteQPH z924^VTR9~B@=S{-f2HTYrDgka{QYtvA44oFmEDz;9aW0a;0f@UEhqV~a4ri_ad0qE ze_Y?97;oH?#=xq(d@>da^kx!pFl&ei{GKYPRfe7lger=`?;m|bel#`RA0><-6pihFlwTNa#ZRj7w}3ZaNCpyp#lgMPSPyq5po5^1rRW+cI5#neN`~GSvkGhAa*@UU}%BqgH;`VYsNTF1J41866*+-xtxdGXrxMdGgxVibOS-i2C~) z;(yG45PkOHf5iR@48}IRu6G|O*%?1xwXVwxZ%SR5DYXEml)@Sh)iRB{?yFqxzalD> z^eQuS&Z~$~O8=X7yn#TM08m0Re#e$S7D(p39xxWawrA9}-CPM7bZx9Dzoci3Jn=EGQN}7QI`2y~1 z;&HRX6$|)Xhu>E2q>7#VgFC51TKrU%@fH1murnKb>jk;W&yrKom%N-4W>3AZJb>JWVdLZ-*VAFg}_nK>X z-uCL(gUs(d(;Ab#KSHDiUWCf1bl2S0eM0yHotO-AdL!SbidQFovi=;bbYDU^UkAUD zPGFvYe_|&tIoKkTYnpX~X%tdhZAJ17KQb;(*29E!Fpa;|8h1)8JPS~q>7}8@<^Ox~ zfEH2u;P8XRnr_t`$MANrLo`ThKLTo@`bSr=Lz z__KvFdKhbtTTLzLc(vURrZe7~mG|gqG|H1&FydfW?qt7($L zBd(6l52xE>q@x2pqm?=WOuCy2OD0B#s}sWtHf!H5AsL3MPT}u-p6t0l(j#5aNZNgz z^I@#kG)cYi>2+SFZ!v-Mn=~~!xvzTp0&b`Iokf7$T4FH%W3u+<=4L0=hjQygp#B({ zoLI~%D;h*a;fIC}JY*hPG@RVX!JR#Z6r}pY{NW&$*Gb=F8%sj&(>HUdK#M1DZ+r{PD@7j+`DPQeC zP3O-L(us)1ug0XIEhsSBY;-^8PFPXWLdlOPq+3o8{hHG*E~(UPx}Ffs{Nr0X=cws( zAe!#ID7B>bAV0!XV%ty?l~O?EPy;LYe|`&{6n)jdMWvwu-Z^`}CS@VL!F=^VqTXzi z)~+oi9?qdWQw8UIP&ug_qdZP&Ds%Nx)a7;ntdhp8^IfpjI@lEtG z#j(0^7T=Rvs}91Jmp#S^l44e-rLVCJ(c?nGdS;#1#GTq7a_GU;rbGBl8hc%SA|e^# zZ^rv&TR3yNA|qB!i(ZL~iyIqfZ2TD!%a8E!@yB$ut(qf+NV(K=qC>74y=U!Vm?%i1 ziI+C;-N~8HvRlUj##WC}?LF3=D^gNs9rpI&??1T=ZffDa5mC}*?PIqbfUQSsr1L#UnJuur+v%ZUgVb|VUZguNh!cu>S(z`^QW$?Uv{XaCO;a1XROnF^I{l| z07tJYQ7=4O|7!ea$~=y+tMIcs<>fARjfoimMs+-puPde>kH4eN-f4BwCrdS z*Sy@aDm9KVQRgP2?S6cn+8oteUEf~-hC(%X)J+#Lq@O=^F)QRfeDP?s{+0DA+Nd(E zX^jz14KFBW;9C#=E=7+x!EqH}#IZKCd9+tlKHv+VXVn%Byszjg(W3YJ-b$NjwiE7n zwSYUEF2TX}Ny#V^-13n@qNkV@(8@dPV8~V)n)492tf*KpBDn>0e2xCY7JcA3QaC9L$)^?ly|<97jLZOlS+*fIi1db zy-39w^tgqDmDbR2u8uyoSU0B?;i|s7OGMiIIkRuzZ#YHK8++N!o~^(Qi!^hQDozQF zfhGn4_@$2LKG8AwPH&F+>{jQ+=I1js(n_J_gzi=!VtcSFbTHv08cF3nNqIiZY?c-a z3$spDD(-JiSzE&NB)1oS!5*r-9hj=wHOV2eKkrD0Uq!3Kz!Mf$!~$0xEG*>cgR}&v zJ4<*FX$qFLZ$rsaOuw$Jk2W=BX}?1zA59XU>=cy2607VE_E#6{W32A{q_iva_4SlrvIb*( zz`zXtCjxMPjSggQXaeb1YTY3$C@|3%Qbq4>=SAIIt02Fy*Tmj%ZmM3}E12M1SRlOK z&c5x#1_Ws)^jM28yn*H>QIW-W<@|sCNKRxdk{Jsn-M;`3icht!?YDe0p0%E}Q9Y2l zAJyWIs6M*L{PQ~CV=2U}{>zi}T&+yK%!O@;5j&tjLHRZ;D53t2a_8M6lzfT8y-(%; zycGDP6Y}BFH>U}-`q^D;0uBoa^Y(h?CM@$n@aMQL8+L+gdb`e;|Vi;RM-p>%rYim~oT zHTzsmLI3`pyDgyoTRi#rftdwyezDg7kZ}nl;ofYS^%aTK6Y7l7UxUq-+#ED7@-E|sIW08Qo0iTF2S;Gh4%n8EL?K(*q}b4H zr1{pv87jcRI}hDlUSvRq=6(5dy-_}6`{d=LDD~cS^2|Xh<{It1%JYE7t(rMld=zX`sHE6;f`3W|0KIgiIpsiSnxCvaJ~5*oM%<4{;SC& zE*6<2upe^7CSvFpYgxkAAU)^i2$5Pp+ao->AenaQWb#_9zyHR~4RL~vj!T8eazT&w z>(}mCBOz{EiLh}pj<1X1S+1$_bk#7O>%y(;JT zWja{9i&OQ6JW1WUqi}^`xumYo?}nN*a81|Akz1p``=kJjLT;=m;L$HI-J7t&@?-Pq zzWch+rl2j)ABlvgJtDNy!j6rI$vx^5cSB_D;j6e$MP{tssM zf_~8#B-u#^9<6JREnV&Ita0E+NX*V@{t(>2^wxT5EF#3I=5*HKmiE z1ffz&uxM>w+1ZATI!=rk;IfY#j?0oj)mqVjreW$Q3HZ@$^K}lYK<|M#TC={=LrZH- zjK02s!|9U2k&~vg(^JPgPfh^=ue;*bNk{BXGWh)joj}=JDvc3XP3!U~U%_x^6bG;x z!EEn-`~3*`M9~rq5>0%WRxL=9oH&Ynpz2K%m(XD59jcXehSU@|aGR)sMA4iDvv1aE z^VhFTck}Z;G@C6}d^&HmSw;2ZM5Tn*B94x(5KqrXIVLS?E)Kk+=Rt%kF5bWx-?hhaTxf0*P{k}a)w_u44F*91CX1<#_Fn`y;{zh8TSv^Kp z+5G`1C$lZh7X4v>&|}7hx8Tk^ak2C5A?b5-eI{;-j>YnwlWz>G?`T||y=D*5PDy!crXgmXXL;yV?hg@1 zaf!BvyYbz)`T+GT><7nG+x8DM=hrWXgRJLHcsKn-$nlifHny<-wo!NI1-$WwSx>(% ztfp|Od*j~VJH7T!jgaY0_0NUSNFNJ$1-Q{LFen!aOTF!3xMo(3S2gaMFB^CA|Q0bH^6jOO}wA)>J%A@IRfOj*u%-@|1{pdUQ1>1j&^^(z&| zMM0FD#}S5jETAG+fxBrxfS;t^i|e7VtD)VJqBOzXm$TS6>}9VYp{@Pj<7H5HNV-f4 zOwRM;3Q5%#@QfW)7Y706L-owm4EBlZdVUCYRUX4@E|1ZkG)j1{l-J;Sgle>YC!wp7 z$3Smq-cN(3p=Jo%m9EWWh^p=BVz|7xkmhOo&mMp2y=s#MUv2GE%yi_Me$=+t6A_mi zj2n;_1+-!lBI;N$EGaH-vYQ|9L`-g$xoa(sykS^wSd^WBA|S)>GcqZj*oKLiu!Wc` zspp>&fKrGCJPgiaQJdIGu$TZ(0sVu+G{|{1_0y~L@U1Pv{h56p%ay0YwoS8~bA87K zQoB2f$PPlLa5B!c#7G(P?9rinON;G=W21}ELjKM1X4O3o_MGT15+b9cIevywu9e-z z`B&sbrU|>RY1fS1v@aT5=33zTlBGIWW(Jmr%dn7094q!C%@*XHskaDuRQaM$sz|3x z*xn!oX%2sWX#vz~SQ7)V^l&laZ>r-jovyhI1V^^d*WbU5M8f9B;v-2_+(9@uOHNB% z|1L>#d^V_Pzj;>mqpBdgSg#gSW^$Mu|H}n<^b87upq}qcF5+XNUz?Z|?Gf+tdc3&2 zOl48@0!Kz(1uZUAx$6M4Kjq+F?SV-xvJ4LQrNz)vv@jPCq zV995+_fMZ-FhyxsAC3(C&OW?7(!Rh<=M)8lcf02H6an5Xq3oOu$J=7dZUSINK3KXL zPV}2wLVh)~o9)x7k(89Yw{AUF?-y0vw==jT3Ia)D*O=@c-ESSST7ZX#%4wcZn-f^H zI5PhHcY#;JMbDl1`M}-Ebw;_c%Ig#5Y^da7W2N4WD7UnR8meafM<-{FNk*2%~&{{8PEEEAtkJjC&V zau4f#VE)Fm@jtQE18Ff7xknNeOdu7}u9@pFt#vS%_4TqI-rWs-F{(%m zGMbD84UWmYQhc=!`=w1wPpIe6H+1n)6Lj6<_z;Gs2~GR&HFz?;KP4U6J`T!QB3lS zxU0*JI|;L^YRpAR<4Tuq^c!TsT|CCxz~=K8?$2x1p5cHz>z&ff+%`3T(-w3DeN^V- z%}GiL&$G$fJX5xF_`aEbK7BVc-utU&{^r_9k*KfpvkUDr0}2`mIo)WQywz(8Rn)G_ zJCKv@Evq6Ls-E?L6C~nAs%hLiEv*tbEFT%F$a8l{H8ui{MYuvac%U!2$5 z&~e52Pn1K>9BOJ<@k0~HT<4}Zz6|O2eb6xMLbYVxvIaNbs-PB?C$bkF@#%h%vY20; zNUE%`&kxV^zT5B3lEOMCESZHLpWyvX3Cg)C_49E$RIx5-&dQ5fX)o&BhJ~b6UmZnl zfpUn+eDaL-i)emqoQd>4d4k(Vxk>w}xv0r$QD!~CHDuSA=IKn8O~EA;^HZT?>YFfb z-YyoW69*1FO@U=T9iL6BH1ri;1R2`G;;^2U}`rN0Y1K5vS0?P2ytPbq$U*5PZ5T*0DhZ4AL%s( zu`HZHK!4AQO2A>Sy7RSIfmdB?Yb7apsab04Xxi>}uwB)ep5fwRCq3F>*TUle-rPlb z+LpNS-P>UF33;F=p?3*tlA6is`-D(GBk=TtrMJ6jt9yicrti3yd`%O$iB9$I7_|eX zbO)@vhwwpf{FrHK9j!uF3_lp*hhIahbCL=IgS_6$iiCFS1G3gOP2GLOVE+-JtYS&M zqNy4927XP~NEHU`u~R+HH)mr=L>p^4uVpDMy|`GwDhel) zmG;XKY2@k@ipP(O9a_&XOKv7%BB$JuMt1akW|UYV0z(_PX4RaCx-P zR&K55FkH1d33-!eU6&`YA)ARQn#3j5tIWoeX|!u5LjmTi5E)-?TrZQ(r+;t7x7l3q zLmXgVDe}Zmdx2ZtNom0Tur$*UN9DSXx>Gy|6Nj$ZR&*Lc2N;aUQ5$MMVPDYU;N45( zJ5%U1Qkc&})AA}Ujz>$9tiDh&kG~s7O=={%T9B=bTyu$&R2+V16)SPi6N`r0ott0% z=J24aDS~LVLAN5!=n)+#V3JXrPgyVQzJ61Iu}JwJ@&ErhNh4|e?=hlO%T+%nk)UBh zFlt)L4Z~p5pGCpk0IMZuua;2)iN3RE#16sqs_h$S1rEc*-*xM43MXr8RUy z4Jorh+uU@R?-{SOg9uWBGjgmm88mpEMZu_*N*lKNE2F;)S;3U}9q7InP=8t}hd>NP zHYW$RkOussvVIWyMS~4pY!`izc}79kYLM9bqO493NCqAE6c-mt%4-m$ipf$9a#xv? z%P%*a68!I3PEzid7FARj4@>4GBBzJ_%bE)6aCTnkLjZ z9qp#4^tRxs?yd*JpYrSEZ!I6{mE;ubA8!9ipa^?M`8|B6sK_>sLr!fm{fXgl?S3qcfMw6T0S=b$% zy&iTz;_5lIBf8w=($C>5CQ7_Jb#8OC3!Bx}4pUtkSie|6iY3?>b>O3{MWb8(q{IhuZc3~g?5qY91=ZjMu|23H;J z@2qSt*4GPmE${`D^7al9;Ky@w^EjGY-tk^pX|mrAD-7MH8>6W5u!)oa9O{2=YMKwd zEF}Y7!ULet^iSf&I~xDx>@>&TbZLyIR*Fjt;+}Jt#>YBB+i?(sQ>u!%Y3L3YP3F%K zPK$}G5Rw`L?5%Q9?mORv2gF+rE9(fcn&tn6Ff{7|U(-=<%)$djpnu~Il(c?T%)j#` zuoa6la|yygacAVaak9{x`{v>8iXC!;fR(K3CbC+8Zg;S;|EeRmhcl?vY(Ch`eqx{m zP47!uKH}qtkT%K6q;fb*$ugvH7gsPJ?@(lCTX`f~?hEWdJ6~%ocDzE3B{&9j`@wuI7M^m7#wq%*X#&^}jW%siC%a+g} z%h|qVBe~UEVK1$I6L&5`Y~`O{s0&i=7efH=TVUK}-vl`fwjIuc1Dz^sQut|6zUne1 zn(XQZQ5^ZYMvq@zpu)Kio9w4FI{;)cFc79^LXS(I6yzHlDW)!cnGj1W7p|J6nUNIT z-V~?GXdf5;=IQciXS;WS<9t)tZIjr2_h7GihGe%o#Kn}&iWAT2YxwB|yxUTfgaB2S zZvDzfwuFX056T~&7g-03c|<_`8=b+@!&$5h>|V%<5Ixe=$;vQw2kMd*?I7Uwr4ak= zy&gd>om{Zu0MLzyiht5lnJsU_K>HRGlY{YA;ZhSmSWxo0N(Y6yM3|RWSGchzB@!VqfOC)aUY-x8P+CqO_8!79GTBVo!Kq+-~M zoJBL0POhZyl1Ahl18S>F0zo(8B9`9)tgKC@xn`B-RVnbG_!&F<}j^>9~CWFBOE#|F_76eQ!ox_3Ih z$SDGMNuH0_{#O6-810PlM3Fg-S8I0P%6LL9+b!ZvSSV)0ogW&TJ!^xQe9^^Eyd#r1 zJ&OYzc??XMJ%B9&7N8)Yx|ztn1L+)jkkPp5pH>MRZ=pgK+A+Z5M$z>4Rwy zo*I&_YDO>4EQjmRqv$=ChoqB#R!fTfaJ5nBJsj)B((-aaiIA04Oj}RGcomPa4KIRC zmNiB|RVW|>M}x7CN*+78xKVS9Sl0(KAwt<>N59zlLlLn%WIIAGKbk)t=UwEt5lCpk z8b}g1`O593npv(aLF*C=UGvwL-w{C5y~EuWkr&}3tI&gSic;&t8Jwb=979-KT$3Jh z#JC&gJAZ&#zISTFNXp5KogW&3oK$-QW70v#d~FoBQb2rE#eyo`kvLFU&vo@+kvfI;wtwZ-@KP{-Oe0yI2f1o2$p%iW z#j`D#tU0stwdiDIN+sva;g^d#u@#_2RP7xd0r4ckCd-L5Qy>GLAHEyyKQb%2RCS1PU)SO>Z2Md@|rQW%Z7MNBnmnFzoh zmScagq5>nJseWszlQi`L$9VJG`E9jOjUXs(wJl2#%&DQN4FG8ktMwA%Y-4E!FVa2b zgAQCOkOc!W@sjitP|oPVsC^M4uN@;4X6}=~j-r|>Aj0UyInNPtNwKI#{rnBx(&l_Q zxH2<)8%UL;m7Omu=Ee3p(_8#;3+pvct*=_2zJ#ktk3|XdQ-VYUmyMj^@=WmWH6xnM zKf2pB`0oWjihpCRur-zDW!~RT0l>rjBp7=36_zx*?5B(@M*E4WbSA7^x_B}Os=nZV zu>hPg8}`&1m6fcXkl4asXPB;$*Qxm-mU>poua zk*eI(CyRm>p(mW@Y9>`eZEd+mxBw`G%I&r(q*fen25qf4fQug9hpO574N^x6&JtO7 zO1JU=&kS>W<##6_N+WDo3Q822h3L2017HP@ z1mL6xn6u{>d3+s&>ez2d779e2Dxbt17)0e{c2GTv zfn~`LMLg;BW&>TAUhnHz#;K->dc+HP-3hg#K8}frL8Eg4?x46+R$;z;3Zqu#Ykh|w zEFm+_NM5Aqif25b8@y6)9mWP&j@-3{O-=Im^!A<$J6;wY@ItzH2Gp73USsvBTRJ(| z++PB(&x*>d01Yd5Xh<0n0Dned0u8-U5jn3lZ--Xz=aky?!S>m$)35jU$#in;rMY{BTQr21GI)1+S|s7Jnhh*$uR2%d^j7vVgn7#jh>FJ5N=^67pOHsOUQa+;K@7=#$Y!th?kCyFB;O` ztBa|bk%JM)!orY)W_2ZmkZ)3u=jRz?z7#(Rqyx|7(}WRX_RCp0CQD1M9Iq$qg1|dw znr0tL?ipxelG7MpJgxCKFg?PikV35r*5Tpeo`pb>Q+N2C0dgF-2%>I? zOy4}ELa2@2&xU4?ky2f+hZZC7(Gg1vILjL7`5A}(y{-iDt7j3;J=c{`2+|bMW44+m z4c5t8mT}v-LP@58I8?lLbXrKo!98LK48>smWv+Il=U(Vn5st4+pe%Sh9)oA7X4Z<( z%IRf+5@c2?El5zC9F(ka5uK%wz&{ph;@VbQrt(N!Ww!)4R;Z&43BeLW){g*`tGyrm zlec2*9l;RJXMzNhWZYzpP>C3W1`}Y(1^rsYCGc|vSyM7MrKWQ|^OUu=x+H3rc6lRI zL9nnNjo<`kslm33Yy?YEvTy8%^B6S?Hy6JV>)fV2E0L49n zFIrt5e*)ur$x2%yC>A9T9C-`E8ZlxsU*ncg$fKo{Djr8qz1Oe(u{YJ~7<_D5 z`Hc8-K!Xn`%i_TJhUN{71mHrJDd>DjtOzapxt&PSMZE^A#2hRDKjakcQoVYS!;vW8H3Bex9{ltR;^R zo)YHUo1aJ;e^DHFo-Z3nKRPt6r)?Pa2){%%xB2O_VvFg9n%klD4y8H#O7L@IV2x>+ z`0|I3iH=H7)+L>(vXj_r(Y(hW%Pv5Tu}X2?Ere?XK{Rw6EF@$*4ytL(s_EZ5eX$pV zWjl#TQc!a@t``>pd`g)8Er@R4B$hqz`yonGNpz*)?J!GQJDocDXtuAc7B)}C*i6l& zI++0P*a$!;XVpqL&$ckf*Dn>Np?6SJRD3lSfWYJ?RrTZV0zUdbjA{~ zI|Ir1-3V##Tn7F-Eks`dYvmqk0%H_Bebzal+1|cW7KB2`%xwWwPIlvfe|dO`SJP9e z?`(^;L=%cAqaDP_uj+}ZW?BRl7XihRCiT{Xw8$@1jh&ecp{AbZP6J6u11vT5 zi=NAyiC9vwV){cB-p>YpXFTF&rk4?l|0Fn;t{tQIZTAsSf{KADSclK(*wg7z4VtMw zuBAs?&Yh!yau0>}bw2nQG)1OsB~ddvEyJIx>ExE-A91V$G(5!gAc`EghfP8NkFf>| zb-4J-;J_R6EEx!vfiFdFH2upyWIVbCb4@h>l<`D)icVZ76RivgC{VAP7U}!DR z^mWw=?cu6w#eI80zXRK4`@s5HU$2W?tvxtj3|cBw>{x+#!%1Jkr?ukCTg8yEhvq!C z;MTn4s!Dyys}g{qr{bi{dYM4@Xe_|Zv5a+Q3UnI_eK3*H8JkPOLUQDFngAr{alIiy zIIG$ELxxWrPgYmw!++mag63&7y_eBlK+oSkj0IRjg{BYL3+^zf)ofx(Jbj@0J=Fma zi?ljn$4Xak|w`xO{qtOkuhfA?xEKyth3k95i3(Qko)r&{++bI8Kj^KKi@)T}3Fv9~z!&g#`kw zQti(Mq95{??x?IYkWt*ii559>9j)9r8Ied^6XRA^O^BAQa8+hz&Ir&tS)|4V4}U={ zo2@QLgH^I%FGg0?)N;ZDWx7n|It3dq3yO1^c3|8Rr zT6Mm<>)#z6)bjEsB=9W13j725SfS~`9)Y4gtA7@Z(4JKdA0Kb&KHIYex_T)WODmKH zrsOyk=fqOUcgNCEe5c0b4jKyYSBnj<`$4L|2|&@L)`*DSxX6`q#wm7{HR zb3fO5*Zt5=A2W-Tl%i?04FF*b-nf(tv8iRT1a8xVJ##S3uL>u4rgAB()uflQ)MWBJ zP-J{mi)Z=S7qX|-04~2kKkoiz=r+1{kdNz+He(&JD@EgM!yLMNmxB!nUaPyW^wp&S z0<}UlzinKvHpk8JPA3;jCptz@JAv$r#AxLA0SQtV^XspZe?alWwzT%`kZegBW=?RH{K*wh{^<^b3*K|cg~%JBkw@+y`5XF% zM~F*OYsdPUUIYk(O|cu#YesCsv>p=NT}3GA&CQJT0x}LB>{(ka0dNPTs(d~DsbXOi z0e_cavs;kWU1Ly9lSk5v7lg*clm42;acBVk!tn*lbjuWrr(T+lnFGC7@GU;bKEM_E z)G4u`^-k!kB;2CH7EQluu=o*y_{bix5lNaO8Eqpa+HcN6}$=337)$i?uBLB?&5 z=lBD2J=NO_2I@)e$98WmnDfmR&i3E-ZlK?jNDJcPA~V%Nt*3Fd1-(GgfXD6w;kLz< zMjdG~0$x&%$7OMLvq1SmV9(IT9M|)XY-9av=V^}X)WGnbILf$|Y%@7=$DC-P0s6Q3c=^A6_+vBx>&ql^M)AOk7o)4dY{zv~!F_NF z70{vu!&d*x_yUO7zwQ5N3G0Okh;RU%hv}ak4h;bf$bWYI|BjV@;k=)uq<-aB<6aNC zK(mg(fPetb9}X|nRN4O!BZ~iJP#$E2;Af4}kHYa-Zn zY%)?7L-OFQ^6PFyka6$281{wH$pDJZ)YQyxiV%;h)Vr#K`)e1i-x>8d5yZ&+$~5I% z>MedC*!2~(p_<)&-LAPr_f7TJJhum-9CsJCHVNCI7XP`-nV$-vev;Di4i@+6z8P=M zC973{Q*6!hD!HG##$oLXpR2DU7xO;Kf7od8J+u>#JOyrMXL-!GG*rnoN^onBILQkt z3yG&wj9fP7xOjS1H?6sg{_nd%zcc}|weFKmXH>B0&EQmALg{p+6=!>Ix!P9`WV3s$ z%-{+hKrS_qe(Zd!I?1O7>xdfO+ zn8%X=<|>*@`k{cq?{;>ii0vK?f%DjQni6B zXNx4s$%pCy5I9jV<0__hqpOrR%?Iq5$f*#GKMfu6tk&t!^)^|&Qy5Uj0Rt`i$L zolJ`6A+(++gESO3P?1%Py;4+AC@4e#%40AWEc{}TX5Gj%&xz6Cy$QT`nJwsetcaX~ z<<#BCp-#)p>Sw`Xj-F;%9+YMORPFwoNk`1B_s!{g?aYkD9D5T79c|0O&*D`*s8=h0 zpGQnUE;>6Yy~DTDzKIj4{e^pvg|TE~dpX??*lSzX2;i~C)V_^A5()zrh(8;W36K}y z|9Fia!jCij+%;IOPW+yTkWf?fHS{Nrve5vP4pKeZcc!EMUdb^~&nB-hpox@ybOfaF z+>@2=Yd72i4&QdaX_(Azd*Y&LD*aH_!%WG;&LLyg-#qD&6QE-@eku@3OV_OT-Ejrr zT>-CWb|xka%qYDID-Cr8rvEG=1-1y<;oxT_ z-|v2PgC-%zz?75g&SzXp-Ub+ZZ+cNspDWLkxd-()5Mrdk$ z29))D0Xulq&gFoQswrbWwUqZC?BMx7eT`%PgRf#iaz030;S zbN%>92oOX| zzQm`?Z6F^RygilnMMsyJHG=k&RqS+pB^cDq&*gRmCpR%* zr5E!mETXrsg$;+xjPcImhRW${DkKtdNt0n_Q&qZy1C28}@Z7-NNzWroJ`FCL{r8E4 z&x=R)WUB$H6ZNKC_!+(|4d~Vi(h_a>Egx2pl#wv_=kZ<~1%}LXnp7BAetzbCfMoeY zRu)oH%v4@kw%{D0%OjY2&MDu(a`Z^ z{Qp<6L3g@wt7E{ZirX7$5=IiV1z5wEH(4Azl`mIZR3HRmu!5Y-f`XUy?DVXx?Tdvy zgY3^&pOyj28Uypckt=>Uul}!+h(kSwOKAIQ1ov3tGXOh$Ypn*BWp$PG1ntDw3#O7x zj?$m6aw{r$b8>S1f6fAf$!NR}itz;n4SWoI0H4(&{6BZIKu8|#a3NE-6I2$QkQV>d zc_l@*P+-R;5`SfDoD<|A zyUalv1o(tQLLdI_rwKsRcX)tBC!j$hzUdrNNMO5n5OgzBz@~?Izmxs556IL_>CY1R zXG41Y zH>mS;KA2+v-2zDl_n4Z6>;2xm!~6Ytv%I&eFOkR12)XjkVeo~1oABN|du-MvRQ3(S$q6j2gX8&4l=UcQWH77?Lv!RDomO2{z$78@Izns~ge zDb$!-P|&i{otKyQgQ-wgo1T-i_WNNP{o}2zEx_*yb-^1{X1+oP1(2Tfj<&xS(9a$W zSP`le@71|(fwX1A>I`YPC}1>o|_&=Uny91xTJ7+8tx8sjt$H=NOQ2P1}i)NJ@rTgd!D|z zCt$fhP5d#DpF=TNRl)l*v~JC zP`wNeG@}44`Vmja|FA4F9^LZnm?V^+|30&zw1+_rI{f!Zn44!7&XwmT+^q{KaKK)a=1*E*8Y4` zG6?^ba991_zc$waXg@tHZSwdXLxW11##e%d$rAS5DFF{vB<~QVi1+(j89HDP@!U@A zW~I7OPzR=g0ukih5nJ{YLD`eL8>MKbS{Dmuy3~iwnuJVzxi4<^4H`THz>u~3P<9+a z%I~Hd9nDd@LURZCb`k~o2srrXTv|?Nq&Z;w7T4)`0YEj1L zc7lYs7hTrVekF~mo5g%=RVYHrG1`j}iOa*YtqKO>Y|CnWd261vsLPy1x`499<+K6- zRZ;b@^GJ+%{ZbqBK71&H!5+D21T{q)5Qxcb$*4DgKQlJS?s9JT&v)FGOe4NN} z0@PL)9^}D%Ejul(sm+JXf*b~F>NKDpz5CY2?>9G( zj`&ARM!zLPNFmdt7#PPqA|dQCH6+nMPRB6dVv@ZSi>J{RWs>(aa9u)EIo^jISQb^Y zKNPy9WByrWT4W14JU{jki|Hk%@Y~)Ub0?Gl!+8F81;*PA3&+PNj28tX3~qVZglzLo zb~Z%Ct{ywi#7*9F%VUyC?pT>XT&a01G+7N1%C>%f9zVa=8M%LbQofuDQv#-=u#}vm zc15XG_~lfpJ`N)n+VjEASMv@tSHD)!`m#MTH)`hf2B(@M0ExYb_iEYLNi|6_lH#oS z4ymyqXTJUOh4#QK>F7ZMKa8bny76D`4L%uFoK77M$jyia@$%fdAE9k8pyJnJ=2?vi;- zjDGK={+Jh2&j5IBF^^iRIZw0jPImU?7{=m7G}qlpm~l1VDXa1IpmMNca@EJjV{ZJc z3q)Sm!z2sVadtx-zv$1nIr%ed(?vg6b`nlt9^zoy$80V zt&MT36&7M|bm57&6a&7M1>C9o=|+24TWV@*KIadTEfRcwP@T94U{7h{UKSmd{fkPv zr>BQFg+zVu=j-7lQedFxCMX)8{|yFqe!}^q18tGH_b^TEoV=3cwD^;k7e>3~0t)gq zp25UPq@cqi4!~d9{3x*FYPN;8Il2rBL!9BeoPtuVFFOnER&EG9Iws~do<4rIq(gUX zu!Ya0v9u{FV2c+;MzX`qz$7KzF=PQirrW$6e=&#$V|jItBBA{$R+dPedeelri8J+{ z8w9@ke|@C(LT|um3@K6+=R$2$@+cJybr_wx*QMC z7nU=_kt|Y#tN+CUu3R^#nK;=397A*b6Lhuq#rB=jx4%iZUn2Dsh%c{vAnE1QK#XS=RUGMsf)gX={*w+~)D>B^m8WZbq6X#zQcDal@a#haR2 zu-qaw=`Y}j^ZW~vB#o7AT|9P7M+*DGi!#Zw@B;us_j{?bflA~~CRoBt8`EJhwEc}c z-SbsG8@+|Pr1;tZOZQ8;n-d})8dNIa&)F@{NQ)AUOeihzwKJf+ekWnXmdg~!+pHv? zdo(c&%1*bkLa;AOt0{i^^vrdu|9XL;uYXM}JX3Yp9M6CT{jr3pDJ|(+P5m=XD+mOF zhW(rjkN(xA*`S1zEH{9_$WujyM8>Zifi?fd{=7W{6c1pAMFFR7!^D({CQVFc#jrK9 zDtWo@8EB^-(TQFsDqXbqGtXFyP`*ksQ$)Q@OnS}?F8|KA)E-1+i2MlzoDC7u<%B(n z=C#`coEXgD#eE|yC~WD|4vdhlINfI?J6S(*o+k_GSoZu-x|3c|Zn|+svj_0}1<#+s zo92TFMN={HtcYA@Adx1SX9U^x{%E`3XzBipK5Kt!RdOru6Z{8!$n*efw`9Sye0EAU zrFPbp$tX_hFHYUxxKN$c4~=J`qLMqHheWXU1NJ!;=EII!W_*EVOVQ2`SPQMKi=nMJ zgzp@20Qc;Ax4M+vONzs1JxG^N=etvb+?HeO9BPEGL#5d$6Zz?-`+KHF=jNzC{aVjd zLTgX&=*TxWQBUPGFPngkrO?pQm?@K*+7!r&7_T%rqL$Htz%kmI+L2Mpi1)-!iYtJK zv&WPFD1agAyM+m)RW4LPGbYTmdEjVMAX+m5kh0p@r3XSGPxylreID*+n_D~{ zLgm}E4=;eCU|^w=l($k08?W29rwJE>j$tl1G(77)%;X+$M*>nw058&6Ob^hy6>IMI z?;K}q%vV4^ZZ|Y3A*;>2-7U;*I-F^srA0{OWnpDWOmYvzRpzd+voNt3q~_-9-Fznq zIiL4wR+V42M-~?r7v`Vvth-+oo;KWg0jUN>Tu~Cg44Vi3^#)_5b!=)tz+PNfX}?Nu z7jkTP)nj|hs+q~IA$z=eH#HRz$;?ReQhusK%g{LZGuW23_p6S-pBnF+}9@89K= zi(!f!t7~hlq>0^e0`);39%a2{U_4U+({!$MclETjH!Z5{fYjCBQ@s{umW9aVtY2{i^5=4-k^Si8Y`A^`!x$SAi)j3H2==><2x&M;`Y zWl?SbA7PCMgkfMRMurl;_>0RG@Bx+;G&H&I5aoJQi%-09Z0(6)gqH%tK?^x*-hWO$_Mzr_nEmUwnp0c{+=#5= zeO~XDg?d%H^R(&aSqZpeO6ecgL8kfAro2g!!Q*R4<-Bj^jbvTa;w!1U-7xgL#U*jex`R z@_!uR_yRP$JkL$eXqC6l(u*wX3v7zd)q%rv&DP{JoEGQF2%catJo>WR$X|VMOA(dc zh5H2k__m>8!fDXw?tJ$0rg`w*oieW>J_7WzV6yr9_kx;&8h6Ym3c40dW4yd<&+vr` z4~nv~TB|F|^9VSqImU*^x_enOZ5f$Z%Bm`1eP6U%W`7npx9|#j;y?B#8!&fRSPNbCg+X?+#V66Z zd~?E+t1|1J&L;$hbMB2@Bl*SU0yka^XTI0Bt<#*HpNarKyWbiPf%BAsN!5?26~>X1*Y0!mrn`G|)58AIW6r<0@vDb*e$Qe0zi zOtmTQH%ae+pmmS;#D-t*2U3US9W3GUB-`Q?ULyC^9(G>g+cJrjhAiKpsU$A^<72mv(;^uIly?VM zd%{K5S~3HrVmA36HfrMXj$YG?Y9frxS)_;4rZdagv1yP=b@K17Dce8bMy=8Kx*r8o zJ+q@u$G)8d5IvCRic3K7*&F^g7t# z_Sv4O=QTuNO&r1NWnK^%*bzwOIyAe#5XQ~JnOT-Bx{$$_f$@#7=M5&}+XkU2Sh%Ze z5_B3qSeSPMD=0|BeT;`kt&o6=r@mPX)JMOJKJ0g@Ri9d(-{owID=Ln5O}2E5hidtK ziC)dANZr*V&H2V`p#{}ix3na|e>^#Vsrk)h8PLmAMR^_MW zr7nCk&ceu+efFcuR%S`j0}_}OZ6pJsQ~qFT3papC(PX(#PwVQwOU}zR8#?gfW_F^C zlAW8LhG_9Y387{@WqD9D04Kf$vPd+#q)CD*BWQzq<%1OwA`cLuJqq51kU#$lzi9{J zazMv%>m`~Yd?N0(Jm6;>f2I2Syqt$$|95X*{-DIBfMx5u-trWvA>(N>k7t>WLc{0E z&B;9M)}NGAN@VY9th=E$2PEaU0p`%++AKtC;w9Ui<8!A^b7g)u2l6N8f}JH-pIjNn z4E?o?HhJ;w@bTUPVsO!MXC zajih+`~7lgd9U67NJe9fysqIz{pXa74D-7wuyRyunoWDOxyCoUmU5w{`{fWnMZ5I= zl{Jwg}u>5(1@I2a^rEYEMXw7cB3=0GLYX>Em}+^_V} z9Q5ZXEu6PG7rVN8bjmHS^Qn|{fBYVtaiuPZvhS=qP$sGN>d)&t{yjM;m5NUqv$~e% zw$jZ<9Me_)Ihq@-|8_jgDD=xGJAJA-^OE~ES{SP=iA)^+3wu$w?gS5|OXCl&%P*J? z_2LxP8ix`?6MP;#4*@499$rc5qdUm6mGsY4oyW-MN=wr+hQR+qcyF`SqY?_f3ss*a z^Nb&~)%H$9lIMi0uZ^$gfi!52GnFBS5ij4{7E|j-+{A9E1}Tc*%pZmMir~fO&w#ED z*fRIGf1p0u+3p|mRKv+rA*RJu6ouSKI$Ubt{D+NvU;y*L5s(vCI~v@n=6FyVsdr>E zXy-Q}!%Ee-ZCNz*eTn-I3*%RJ&HgA-TinsMx6B%=MN&PXZWP*7AbRZoIK2~n_dyxG)4D)6gq{~nN##|YiT zf3biSP9Za_mfk#i+jpvJYD^@k)MKNZgip7^8`ZNwT!+ca9|cGsHAR;2MGf{cszl4t zD40f2Rlj55xWsY;Gyh|8Pn}o39rC>;i0l zGC2RS<9P6Z=l>!Rh5-`c-yRPl{x@3K;`D$01+s(wM{GhW^8eziEgT8KbuK({k79%L^4xc~uZsum^ozm^Ua6+f>3Ii*FCt~HFSSOt^1 z>5k+_bGtvmaJ@d@=vGA)P3konG%;6UH-Kf9)D=)e;@Ukn)$pgb5le7WdHC*CzN zGRh_XcLehA%cfuGvqBy>fE>>J{O7m6MCN5F(fw7lECvi4#iv7o`!&?ENJ&0K^YlU@ zK(F=BxwT+s|6;;U_j~xj;{DJUl;p?QP0v~X&QTg*2o;SC{joU3eg^sYHnwHu_%9*l zCV!y^Fe#az;R}T1*@3@DN5FHwU89Ytw`xIE(DklY-bo&>D@g0#AD#O|4!ZVIUmKMB zUVl*PC8Z~HQ-;(WqZne!3>_Ig`SbI@#`E-SiUHg45OsK5T^hw6{MY1=U)`K8&&1FW$W=giT7-3xV~^AL z%H(AC#N5@kDdja6VBTCm*pg(NWazU%Ky73|;h?35Kf0--o1C9xKAube@3`NhXd9j{ zzAN84C`xURrW$y6dtDVXQYJbl#2Bv-%I)k@A(qIubUoIbl0;l=P`AnG^dh+~nfs{q z+BIE~V05O4O!vd`Yj1LC)Ll^L!&o$&)9+mP1kwhAb(ilZf6)=3mBbQ-@0k>K;o4HQOz%8p{~kOjhHh_&&}mGF-Y)JoeUGA3O0Trz=zT%p=TTl<+s( zY{Lgvi&u@@6o;)9p95rx>_WUMAYUS5*ROY;u<7D494A$^sgmRO)zl@DZeyOrQugau zjQ#TUZ;m2}C2_s8DKI(^4NTx?6+5>gOMlZk+SvY6aC8MXwpq6_TJ+_1c6M>4#Xgp- za7r#SFyh?Kp`6l`wI6(Rn>M#gp>MNgyL+3n8GPYKkspc?O7icLS-5TQP?F=D5AC=X zQfZ|F1}q=Qtnm}#)a$Y+ml)fojsn8Js%E4Qcx;PKl*~TukKqV6=#)3U?JIxeqf=|5 z$gslwVLbC#*ZwIgv{;YVejjqtUw6joA##i6g3O;r?5qk>H?)7=Y1XMdOlWaF5iO^4 zMD1npO^$UcoFpC0zZ&QHc*gfszxl&j1Hr?sD({;oI_M;yZ!=%S z>T+&W7wOe3DK!O^R$rdX5#&(P(&Q526RM>iwKwSC+iq@IXgq1mO_yi1R2m&GHoV66 zgnrtZ`@IY&>m{*%wV;Dqn=2S#Q2GqKQ}HXHq6rJ zqQq~}hST=vR98ABMIu^WW`SFGsEgqM5RyG^wFRri7f4D;T3sjbIytcqXs1=e<1=wC zO`?jLY4~K{5~+a^@MX_^Lkl@Ytu3QWe$gIvaDO_Mhe=<`4QkDd7MZ^_`8k!Xt?hkF z^zV&u$b?)m{xGL2aK1SbDJ1bLyJQ~g@@f>PKt|+bk8|Tu>0CrOCpRaeSE)_MsD9jk z4>!5$^yA*tjO!vz>1Sh&DEk|cw>HI$Ea8JJCbGT3wOOIW{#xPhUMn#5`0~^Szs7l$ z4YxP5c)xbPrhebaJy6B-++rJ(w>{tzb$9Pg+g6hFYp3<3koHShkpAnjc1FY*2h#l5 zo-lN(DT#3lHJomA5!7*drrPYo=?l&G#LQJEp(Hrj8{FY8cS@q`8=1D*p5<(2nRC1v zGObeGsbWn!_LF4O-ktXXvq1aqY?h0y&(l4M6*6Awi{3bLx!7E~EX)^oCJ7}ruTofh z_D1D-bs|Yn*?@kI|K?&aT4ZBVRNwR3>uRp=ddY!G^)~(AE6{=qsQ7A#on!Bi_V*%g z%h&AdxjCl$ldk^mTFbiyi*K)H-meQf4NR&u>JL&FPqJi1N})!lXxr3lT}Y{7YI2_nZ$FQ=&X;7WeLG;QS^u zV1O}Q;e9aGV$GUHaZWCzb}snTc1D%bgrZDr5i*`_paYLi!nMy5m5qCi>-xQ7%p9Ch zz=1ZlJ(hdP1LOJ@D_jKzOBTq2|Z#Dcp`CK^ud4_)_2{&`Fb zH>38NT$fgbntx?k?_FuDnko&rrGDOVKTzY7)2;?@2|!H)hhC634t< zY2n&7wkY!Duvn2j@FH>*>-L@gzJEKNl1Q>GMM{TNn%>ghTxY*pW+=xVV z5Kx*Kpi~Gr-kd+Vw-J*1+Q+KA?!^h0X72pb06P=gzu3;l8Hp)3YrK?>dPpI5wSdHX znBaU`A^hotbnI3{x6{nNnZL{(Q`lCYRl&FFrjC6{97AKi%Jk~y$M`2G`VU4x;|;Hw zeSvp%PPT4sWSShE-00ict?>lq-@5DPp%ukXf-UgL?4}6yRCWt(=A^n`xZLp=N&Uu! zZu!gWj)vQ!B)rZm0mvpMi;e!1@Us)A7diCp>*nogs<`#PDS29^kg)iJReA4*J%8SS zr>Mh5(WrSMvZq@XbnpH1MCker1mIr-zA?&SMGy%;BVU>s>8mhJ5J$14n(yHe- zSVP4nTbe&{(p-ch)>XwN_f`_(Lsh7>c*(lEd&Fu^oPAW5;sos@lip0W&2CQTg0{tM zlnzL!F1ZKg=wi9oY~=;W*-Qzig&-?=*w!;}g0q~`Jab{~00{si`LrEmEI=M9QBt=Q zti+V9eGs|-tiQN4wO)D-zZEp%u%^echQC)=WpLQejxn)4Zw2)mEm#A8wS zghzz4Ihv+#(UHa!7(W!Yy}dCTAS-}W4|P3aMcH6hHEsfwZfCV4=c_KVy(g0498P z@3UkNJbqd4mrEtZPDzoM=kfJD3hA|+pigG=s$u+ULD3CG!oDbQ!{H1e>0V^||odewps)n7}wwRK}-U|Gp zNhMZpTqi3Ik}~HX@=Yha0KAAZ8vTV4j?es!AS=(Q%%9+1U;|}r(=JY)o>Njw-cEM{ z!Amm6=`yMKRi?)8uzxKBnZD<%1nls7tsDCU54XM__ulTiMy^_uP+lWlL?1P^z@l&K z!|m#*Jl0T*$y1%TYtfR`EGeBTm8Mg?RoaJD?ycKP(i425+rScUw)V?~`{V}si@EvG zbaoeITSo>`RhdSs**oU_>_F7m*1XAMM%&Q0f=*OstmfBzHI zIyALA?#big27PjUn-y4WV%-l13mHL0d55XJ%#SiI)KO*ONR}t&WI^lWrwZ;5g{P0D z$+o$w&n0%TB1fr8Reg3v785WvPfwGol?f2-_}jQYcq>wv;J0G4$eU+be!y#MXYbI` zp-&W(2-U9_{g+CZx3wR{43EHCf3e6oIefg8PD z#U)f1H6yu2vdMv%X#t;nOX!&h5b@|;(`*7O(|n*}l~M~^lf6&T(qg)D@228{-^{7f z4Pg|>j*j?Deh<+$eb(#+{Abq#9+Cdfe{V%uCZ)`u`QgJ)c=YV=-Xs|v$G#psc=PF1 z*yq55u4ePwj`N*+nd;alY?`}N&PzrxaYWY)`%F09;JvxTgU>I&+RBE+Oq&8(5J zhwJ`S;G<{1m&*EW`YN4ydKIK1S(*M1ac><}W%sxHqCSF>igc-QA!f zpdcXK-Q69F?(SZ6EV>)cM4sQf-#_*lR7;9_dV}9zw^32*LOmp-W>|U zL{z^v<+FQRdpjq48Q5u{v%{^u%~8#P=Ll3_Xi{tKgviZDr0F^C-Ed2blQD@))ouC{&dxA5o*z!o z4dbpvr%QZ3K8yw1%pHD(>KhuLT@xJ`pvUaMk{RIu6Dt|E{VjP+6<_VZ_@mwN%)vRZ z$K+vAPQZK|c=@Kkp-6w#n--acu6pVzgci!T?k_gY6@zfgsaf3hL?1yf1Nk74%kClt z1y=D~Np(h@&C)nBH2kioGKk+}VqBWe0#$2gPQX$qE%S@2TCDqR%XV#L%CwzTVU>|f zxxE=1csxbV68IbL-nP9(g2aa7#4e4bv!Za>GZdM~TOEG>3}JWEoF(*_yRiSD72J?a z*T=(OX?1rR3bO_bCBOP9P!NnK#zN;4_&uZ)$r~^+cERkl#d=hrjc9L|eZW@(B=2L` zwh1&{WrpYp*P6k)`lo1zt(o1{CJFD0Hmp8Lk4sxQuzr|st--_s5j4z(x)0(xEn%>& z^HXC{FFwyb(f9R@sg`I(7uI;-dAA}`2-N{^O=*zA~kYi&SXe!(LMr zg`&zI;UDcBwVYAvF|tM_SB0r%#TT6377!J6;*Wl ztK1Y~f0HGF{38|iC`o6L!NBP|Nu8T=IttB#6@#M+l(m!&`S2i5E{O0D?BnO*+ZK6;UqBl0QAfDK5b@y)VuK9kz zj(#ghaBy4W1uDav`xcX9l$|uwB^LBYmzQ5Qkqb{PI?l9_8(bVWVsj|!wD|CWVsih* zq6WCrm=vhTB%gc2UE|BSO_^*(qAA;grBc0zSKtwXY~D#qv3AP6BnMaC2!8k=T=LWZ z(jxx96`hi@2ggPX9^T3VE67L1_${T#{~eH8@Nry^zrsKJ|3m+h#s4PT(kLr4@Lp6w z;^Q0-pA7HMmPLjEX}VB}R(ZMTs;neZ`pWmz!T&bF+iwQKn_|$wy6SXPG-#w&wYnF+ zO5c5WXGL`8JRars7M=ETWQc`{waD5mB0M29B8)1u>t6}L>Cp+MRhd=E`jKgDwIq2h zacmq2kl2~1n=k~ z^>p-eEVEqsd9D6VhAR_{{}A47IpND8}g z(+sMkr#99fYJ(&q)o?x;Z^$i2R4piL#;w0d(SGxXW9WX0`8BmlrpS z#(&okVXaJm^IJsEgu*WFqOD9CKARh&>iBlc+7hTU5dl`cX!B)O60@aa&)TRu94*G) zb&Bw!o9Il;iVHTDIuu3SbhR3=t&If=26q&(UpZCS-{|!fq)oC^P<7ZE5`)9-=4CQZTPICFK$SB zE^r$+Kt2{`ku}9$>2Wtw$>}D}9`^eZm2g0K;Jq(a-}U-$DHK$AbGsumt!z)QVXa8i z=wdNoHCOXu(iOOap1F7Y{iTgaSM(N4FxYmKifmMHcnc4Aa1|x5nAyhC>TAgWYD>pA zW%fH?=%neLcmnS=Dp5NtR&0ip?M|AGaRi|pc*K18^PrO>#xWp!`H1onC~cgdqhm5p z6q8)q*;Fu%hNX#WqfI)msVN}x@yw~ei(}@cW4x$U!j};5$qEXr7*DBYCfG5HD42ag zgxSI(mV@uF7E6t@x={%q&7P|;`#v>*fPVp+-%%yL>aUS55Hl5}Z@4mk;FGFIQ-Jq# z`|@c2GyowQzEJcImFgERWAKTMx0(bRg#uD)kKuQJM2QHGLsJ_!u7|=>s?qbMRa9(@ z+hNlvzvDJiorAx#!^JP_7$WKUitkxCh_C;N;M4N)4u11iW#TYdVEqG7pMDi=Yuj)t zjkHZbEw}T&+xHA$RuHf>L&8_iBf>jgNg-Tbp|A}4yXh8W5Q?6ku-xlWrZwMkp+B2K zZ~T`g{xM*X5*Cm*`JnT%4OhE2_GG8~L<7}uXg2z^LV1*#iY&l5BuqRV)Yy>&)+WXi zo}VgfWH`Qj*_)YYAr>Ofi4m%A^rq(F8|Z9(O+!){xSYsOWOuRs3Ys0(+AbGO%vZ42 z6mJNlTG*I}c)d^h@W@y3Z7nDt{%Q?hGZy(>B=a(4&*#Ie^VPU4Cu?Gzm7|kCL>KV7 z=RMI~Y84ofrgPb3CmG?L{3^Jxuxt{IS+o7=)AuNylEB?E`?#6@v9}!KGi@yVZYuAs zDx$hjIj~@`;l-|K1MQg-Dy>gZa+EqH7XN6R+7Pa6BoRl+b+WvCD%>WaoOfk&TZ>`x zPLm~)`fSaByxRFG^!i#|$ND+2{BXA9dWSrn*ip}L1rYJ7*S|_LzI?vz&Jl(E`E#1e z*;f)0*4k;rYkE&lOsC6?+DiX~hCo?`BKPHQx$Bn9t5W#anW*MN-Ewb3{?SC9Dzk~y zDELfa?NEOAd5HALfZTdWEEh7Tkv%2|Htv=X?&kJ+Ci=?#*`Zu+kHU=L&Q?d!bGy?d zYu!DHA#_1YA%@jH$-rG+i073U%;Cta!EHG+)R*p4olRh>{|=~Jr)}SN-1XhHwKv&} zcPtw}O_QIBU&sQ>l$PSB;Z#rGUwZ)@HS2D^7FrI{%Gfem5ci$=pU-ddciw$3oY%bR zGdML#%0Y@R|9lP1cw^ZKKEAym^}36FKN-V!LC;*@3xDtezUa^o!$6Ix5)19NtzYl* z``C6hxz2VhjrfiodRLlw5gc3w?s6LhYXcMct|uFgSY*sKcVZ)3#yue6_1N2;mGH>; zBkBdRgYeUwY6ll}#E@wg*F_T)1AyK%`z4p~3Y^e4z+f3FElk;q`XyV`6CB|bGP`(`z8N9rN zAF!h>&)I{;8R%ftp697UTeaNk-O=ivoGz1TFZK*OK~jzfWU(PUVq>O~Q2&u<-ZZc4 z?9y>q?^CGc`hm%{`GwUIdwQEbKkcp8FpAo2%Icn2>+pp_gvZ%tVMSn{fhSvVyBuXW zC=u1TVvr1Pi(p$2qvR(yHJ%qu17$utHD#bBLD}F5jl&O(AdZ(-#%_>mOl&UuT^x0a z+`_dyjgvm@ums7d3wVXfkhEU^w>~n4*ZVu)%lkBUrUY!wcUUfNFK*{3zqokhP&#i6ruiTQKj9(6 z2*sKjp^fQZgvuiXC%hCgcq=iuRnBbzf6~la=ti(mbz_oxw`a-t^YD4y;FS8$h`7Sl zSrJUs!gz>ey5yo%ahL}>yW0h_O(0EHig$(y_(6ANqDV>%r}4?hD#ZgoZjbyBl~Am} zgCXVgM}Tng&5+9_*IJ(>lYFVCT3vQlQrhdnjl-!0)VVsfG8ipS zCta1yM(8I=4J|e89i)3xF2AWDlo`$vwS0m#aa=f`tgD+;cGJiWiu#CewLHHrp?5#t z_3dDkS)Oa^o9@@`^37!)v863Pjj;=4Ezdt zn>zYbUzjG<|G;AL{7RX#Jl`yvyvB$yBoMGQ6?`J1sN*x*0n7lK?cVaV!z-7nC_E-A z$xxx>_V)EEiw#z#`AY#YOkZO+vSeir~eTbG7niO-T)e zw4@*hH$2m2EaeQkS4N|>ABxJ@Xy~ZZx4*heBqIlPl-tX$V(XK=J=J}28m{};fgoEk zN8IlvCi`oAJ4-ze>e*S^$YWT%5Rl|HP5IValx5S;00 zUn_tA@6<=SOCZ<6pH>9XcE^*Gqo5uraSWYZJdbmc{&9i+BdRw;Q%`D;)I%SFgqnxQ|oN$gBkNd3&1n}u9E$p449Sl3+)}`t`}9j zBR^PvQP0UbCzBHZnqZe?!VWFaL~hl2cggY8g1Z403kg{o<~w(jFGo?rKm>=c6Zi$>{IF0tm1aT{V*FSvG}-Jg}tKi_8}D; z-kbmFc3ASty0`cQ|FLj|SEO65(@mU(&yeT@LhCPFvC-mGZoPkaDf-k;S3gbkb|&=# z_#F}DS-%4zqw5X5f8;S1f*C4Df<6rLSq+UDKBlAuT?y&uKT2u`W(j&BYRXA`RaKlA z*b&$Dd|&H@$&?^8sO80#U%21JL^G@o{c@27s+$X?!aQDc7R6SNmQ09~%`|KpEgLk66fo6Qm}mGw z1)(!oQGY@m_?lYbhA*p7osp4Q5p8&IVTMz+7&Jl@sh+wR4USd#Y?N0>)Y0Bl0uwN$ z-jB<3qa~EO)Pt(cs1^~jhL@J+^48BcI9QH!Yi>oD1J@z;p`?P1N+6+DYgicQUawxO zmj4zc88njIX|+~w(9GDKFJJPkC2HtuC^DGx7S+@LL99;Xkq0ZIU@PD`IOpXSIE}Ep z>u5lmE4Sz_=*IzR=rQyXg zNGQA;0*aEQMSRGg+wpgh;Uy+_LCurF4((oGXP8LwAGE9kyvxN+dQgZGxNi%9)*fLRb2G9tG z>X*7@f4;940UT3U>+enCi@VzqX(XBvIZHHT9$SUC1q#d&F<5F*+Fy+F49yHW-H#~= z(&fcU(`8BcxKsz;8(#9s~9L^td}9ET48VSEU)y*&u$bffWGo4W#-2_JM)2)Ay%O#)_2zX zW72c6@=YSqgPnQ*SPD-yS$6mww)Kz{N(ym#&avA;{_aADHc@+~SHDD$et8)4Ya|tY zW>R##s*CvAw>b(C865eJY==8{4iZ-Xj#bF#nm3`Hlkku26;H@h&jj?a`md9xg9{UC zS&#eXO)KaldN6$*6K`(T0z~fg9y@0<)Y4H2A?3%R z_Q2+`Nzy(WP5TYXR3<&Utf+H8;M^&x0a49(R`W^s2bdN7yo$;lC=cYdlYzD}nS~ zoe{CW9h^&Ku4dJfSRi1F!>s>tMmoR2>27@w`}TB~;??-}CxK-I?fRp2m}hiNwsEpy zkXHQ7RIB#g1+=b9VvOXj*o2){zbglgYP-q_*1pE-O5JBZccxC|voYP{JHCGy9c#|* zT69CT`K%WAqL2Ql%)Z>KaQ4FSNDk&qL+Q3RzKj7c70ESt=h!D}i|BDH;UwR+cW zoCwBVsd5tZADMaRnwc2j^$)PWcK5MMewI4?$}soReqw_Cam#HEdJNdP*0qD|;xh9d zkTX!kQmYXV-q-7rJiqi*cCipE{`f}0OyfvqjN3w4fFw`5JRo(&s!D@x%xTvywW{a` zR^NNQh0$h*y>xB&8YiPIBNY6R8L&S%HXwbN8w*E04=^ylwtJ;2QZMagmhBhGIQ?N- z4B)hEU~S#&d!%8pO8F-x;EAjB?z}^koRt%XC4+_^C(f>Ig?jMMbjILcPS=KdFJ1YK zk79Te-S6mv1|DJs(*FAihwRiu0D$iwf~3(3UtIdv>?w6gx33l zy-ux4=qViD>#_y7tRF3MOibB4qoXFQ2g5YvL^zyJLEvm3JF z1!+ej)c|m7Y0pTnxWK_tSJ6CTc@t*168DmLUkhlOJrZ6#}ia{&GBS`c?75;iB?f#VD#?>Kun_stMzQtEYGmFKjb)mr$mAGhkfH1NU>d~$7Baj&q zHQu#g9dzAW^+!+C5kAu|T1C=mYf6m&M8Jvd$ru<#_qPZR?k?S>TBvPyG-@~?K;1DB zV&k>LTvSU+5Cx!3)3)#ThOXb^3xFYXJyP z_tVAWkYOe|->Vz!Bfgu<%;u$#R71K;2a}mfQEWtR7@xYe@`^WHae7agG|_nT!pGw1 zt;v_}T%78-CgQ`Xg$Ua`w)ulD+i{iL`nzgXWF zLd*vzx}bP39e;)qZ!s9(Y7q1KL|4so+T8e=AJBP`pPky2kLe-Glk91sJ*#>-wxEY5 zbB2YqE*T^td22Bya%mTJC}T1-iyP>`CZS^SEXYsi;fllIq0uRzO*=blGIqo>EkBJee@Eq)uC8l>=yNGrmSezJn?QrC$kL1aTS2(3p;)#G{Ek4+1 zCS@q2a&sv6V?18tcqEl%naYBJ;iRH({-USb8%iL-Zpv>OV!F}~U3b57eX+d4KN&tQ zw!vdGPD;PFdrJn*)4+O>Iiuo{^?=cQiQxpr7kYr?L^{_pMqi~&xO2W9Cd6n%+~vO;kB+7yv|| zNq(*?qJe{-*tXI!`>Z>J0q`7>A|tb-e_nE&SE(6z@A6sKZ0^ zlxa0t&SJf7fy@K)7rEwY@;$poHw>uWaq4WOkvx6wc8qee1>KepADt z_Kzr@3x_e5Pr^VLL)gck(Qb0i+pi-SehVq?Q-1&K%5>?ob{SLAAfbHDr)Bpoe6>Z6 zvd*baASQgAf#&!ev#^U~jn)(!*M^yel$?$!J4(quP7e|=2ww4t;d1eac(pcr5jcMz$|t@n`RY8#w0{1M33d9m&W?P!nd0Iq-tQW zKB{kV;TW`27e`BthBq8qLM-y?G9i=##ikE=wr)w}qkM%ExhHVxBp<> z4!n~9BEI+8irc())a($z2LJss`T@q)GgOqlsqz-@T=r~rQuKiY_M=-br(Z%Q`o=_7 z+sNF~dlrP2KC|wZb*<=f2I3!`R{i;Ytc^!BZ~xIVEFcr3^eM7qWc?yP`Qhmh`&(Ry zbp4F!y(*Z$tfzr=#M~A`q#PmOgCg|fGQ($SyT+U3F%q+mhq8mB)n~>1lRqFhQf|w{ z6B*OQf{I~cHe2(ss{#{UFKm^FfMP(~Vsm?Prjo=Skh&fXc1j)}a4lDCtE;>B?EYCOv2h zK7iNqxZT+~c`Cp>(8ZkDmvf?({8prQV+$9CbR2)x8^df~5|nN7CAmDeS~g6T60F#N zzZM`0^t2p@Nd9aVbG*wtjA}8>B$@OX`UZv25(!?rvU*%8Qz40IRt2!>YylAqvw-k93$XVg>gxR@u zfed*i>O8$-~G7wl7(kywXe(F7OiK)&`4A8KI3Xc$2e@03ger%A>qIi&x zWaGr>7z@U}Hy+QMAQgJ;``i3=!bgKHw7U&GI_*;!Mew2!5gdyKL3?jNHZh34fIx=Q zCq=h~$*JvG9+=)-uiN?8c{jd2K$ErX&Kbf2ykQXp-rOqN4a%L3G&)M4b|6xt5G1ta zrPTvE%^w<&*!i!@p_-?_2Og63j-rsm-}vW!<#2*)^#ZKp$v3WCf7kJ@)kCn5gBeRy zT9fkC7?hUdDOUcaz>0KYVLHep814U9yJRCk)mHSmxvyjwoQ;f;^by4z zbaE5}pHRaYS;5#B&Ig{?k@qETrA87H6q&6DAYa28xKJ1t7={@~UgDAbEg+p<#;7%; zTU%&}Y3|u0!0jhG_dP~6qQp~ce6wPziZdMB||5ZNxKaD`J+BlS2 zPIdp{N@>>9dyD>W>p`Qe`^4ju{gO>FPDw%CEIsnzk6U~V2@U-e5{3=T>rxUl%mQ;7076L0G2P4N}c~i?+6m98p#DHDgbK75Y+`@Ld?sr5#7-0^qh*t|p$*2}% z2k*ZYeit%m5*3AC?aEnsY}MV@4Z+51;YqE@Gt{iW{`7z>PbE>F-MfbWo)*_pu`16Vu&xHOJG)A%$|ZHVtK$Q#3O z`@zOUKEuV|=l5>9W!BZQN^C_w8i(_OJb=CdAjEbWLDr_Ph+3A;%!hY2pZUtj)~GFH zd8CBN#+Z7*p&+p^iua_2G2XR2Ts$qe(p}%!9LsLeq3tBiJdr`~ycUUE^5Qd#RBmn| z;mgyc;nR6k#KI~I4Wjj{6Qm7V%y$8Twv)~-C+E19K(YUb-wdvPqvzAeEV%biTJ_-; zf&qcvBiR$pbR7x~zZskrHTBw!BlJi{eslslTI?lj#PI@y~<-pk5I{PzX($Po-MjzU}QLZ^L{^Yu5 zXvL@9tnv1)&e7auxjNRwVK91YF?r#^+$9g-YahVJb7tkm?1idQqp?3%D zBc?H4>E$_MisH?$^7#*Kk)}|)>EkqaB>Z~}g48wssEk&Wc7%l6!Uw>tFZcCNI?FJ` zMH)1@p{4P;wUJ0|ZyVfarY6+^s&sQW_1RV;bj0^DRRu@cmDxsLXE}F-Y?{0=;iSgu z?OYXc!{o>6_CSSPDluaNQwwuL0Bbw*GME8Nh2?vBy?%#k2PzUrk@lV|7Q<2$p(uf;_GCpA@i z5+!4Z27BeS=DZ7kzYM{_72<*odl2Rtw(69c&=20En#-bMcPgLGu3kL^FqM=NW?;3K zms!hJPG?1c=e~X(f-SQNZ!hHAF+@Wv$15POfyeC&a4bZQV`Mw(zBkOgzTdqbdCXCX zf3{RiPS01}DVfA~?q2mSXQq@-#C7gMggl)^6!0C5ZQ(`uFH>>$pYFD% z_KtQ!*EM^UZSyiVCOSRqM*w@L>HqT<2PQ^{mV!RjBQl9!u53?38Hb)|Io=Bt<7(%N z{&N2}#d5#K0#&W&q={>;*H)U$xhqq?w&cd+(=H8X<3DWJS)9StOElAPurP`S#dyXl zO^7_(@aBEI1p(Ak4*EW_WBJrGb*9R=h3)!SM#}bMpo*rJj=rHB$g}7%BR(4qBBY{w zr^Ai>`-EDGE|j+}P*AOfP|)ZpNOoh}v!4Rfmhv|0=z=r@o+)~JF)yve?*`lrg4?sW zOLJW_#2LA(5uJO*vnV#WAU{6B{JeF(tEOt-x-~R39OBW2dNKpz<3Vh6qsf2x>x5~7 zRBqC(eD8QAoTY$N8dF)e#h4^m_#qyghWPU~=l-)Ap(AqhOjjhmEw?U8lTSbQ`db2j zB}Y30hgxqp|1t$Z4<@58Xoz_8IMBWP!&uQ5V9~6HcLahjm>llP&VzakP2Aj!g+56F zATT`t0vPN??!cC&KX+&cvyqcwf9!UE1Yw-{Gj zQ3Qo1*>duVF`7ikQygr1nKouR>N~T5<~g)Mq$E&fFrQ*4E==d6<&BG?sH{{wW<0py z5s%5bdK+W;cf`Ku1oEF#GdQ_slKc0t>A*L_@KqVVoypWbw8Y$k=BTSv_Hr3%%v%Wi zKkv>BE?3S(?RR!k-;7#OLaIneXxA4CMy7C`!35P`a2n>wuv)p2GyxJ|CW#cTygm50 z?g76~nB_~eYo$cbR(`NRtZxvH`~xJBCoe{IMw%%@tgIcQ>aBEj&AP!)E)_#?P4wrQ zKApMk=bahMkmI@s$5jRI12i`tw&NiA?O9RiZOiox9um`LNq;+4F#6F z+wHsz;A5jVt4CjA$18R`r%!yIaj@sz4hjI(88uR#k5j+^4uW0;4x`{*?sS+wk%0nI zYJPr#nU~CTY{HZG1PdJiifQSfRxlaMXzTKd1Ph??A;=2w)tp`T^P~E=g;*>2j_J3p z*t88l-LiPQ>J4HdD zHn%L_dVd6YiPOGpZ5%Rf>GCi~Ng>>eVsKh)x$>wZfBxcdye;K8``x;hkFJEgGVd8_@ZQ(BT05$d*4Ae@ER{JaA^XQx~c3CYrWc z9Gm6#v9n(Ep>JKmoi&21{|NSk?PpO@?3v$Xar`QGJ%7IijtBgnBrR}~5%}lV2^>1P zM*yCD2(E(vN%~()4A7=$S1b2@YUp-zWH_pC|6^+m%p$>jm-C?gqhh8nAZ$ALHU1HH2Z<;` z^J}hEhI?w@9KWB0p4)Mo@l1~Szfa@OHqbGX&9Ay{-MOY>Yu6 zT2Wy0N@Y;qS}gR_ev`{-2z+vlaAu~jpG_quTYg0A&?v-ZN9!)^`lQa%}~3l#RsN!R^gR zSEkHB?IQ|Zze$idEh_$Q9E59mh2IK)T|y&dHf{SS@s1R7jae&*tMqQ^b3%!&)cY^w zBV9>-@6klP78uli56BK5z!A`dyhVd>f1=~}YKPsyhk zz+H^7Gq_<7-h?mkxOF#>qSh#39JU%<07sv4vs<8uq1QMZ#BQ@w@>$Q6i{PtM+{aC6 zW!GN+M+?9jGCT&+Q)q$4z^WBiU%auUsW5M-{BYDna6tmw-#s;`H?qM8&-jfW93EeJ z9VzwrTYKOM4K+%9snKR$P$b|M74KepP260_Y1uw+xA)HoVjl&2cm34TC)l3T6vSo84&yP+}bMMPcQIem!N0 zYc8i)xyfY1&M&{1{9Bh&25n>4;`Q*#AA~=5&O1#+)(Ekp{DREHHt&&w8&-C@L1f-;VHq@=V^7B z_;3yyvx%4@O@WaJq5@vmE7Z6ZRx2~uK>!4SA;SmWB_b5-mUZ)>^WajzA?3Q)*YQPP z6@K*mOl4^4YZejcm@qv*7mHRe4j&$LP(xcmBTD-GG!%V`Fbsuf z9*DMWcYy7G!?jy6%m}VQZ8Di;Z`sYVe!r243Dg6vTY)O@9(E1sJ;cPsF$E zDn~D-8pojUhY?3{Gs#i`h&41Xxu4u)536MCwuJn;X!oUiQjO(GiaDZ^-i? zpRPongqdt!z+L)-10P8l%Y-2jACvND9rE4*>YNbmFTS&VM3d$9m6N?i3`~@pzgS55 zOJzw}Y#Cl?(4^fyzM^y2Xk-75SSkcRj=E+hqxPH^DVZZx_U$M;D~6%r7h$buKkKYG zPewQ!;?15WhcAVT{1mu1R{mYq;R0|Yvk|^cSeVaVT0(c@!^QQLrFX~Y5C$|GZuGxN2jF*(ga(}M#=O=MfQXY;{yZ2e-bca6EU&FNF6qI z*ek-b|GX^QJ~?fU_NvQuUCM`1Vr%04yF z6Rv}p(()Eb(lu~nWJt2{nUt$!Oudyn0#b5zN|5e-BVcFQR;ywSdy zy`69HkA0}bWyGIPm(acbbiy!!gkQ;YOLCt8?EE+!`ZjRyo#loc>$0q7I#VZ(_I^#&TQ5WR(oxyajCVj-r+J+{ z#14IU!*EW#RyfS;8S}tzLfPI?&t5+${Wf5AhGG<#Ck{lXrO&&8nOXO*t$X+1@c9Nc zt0KzIN!N3Xf2XtiC?EU6zdsZ19PRag{{DZcO$gl+I9YbU2uxXg6XrXjt{;W+siOhya)vS&}k4iw%W0HhCVcVt5n8O_zvLV4PKua0>PW z3H8Gv>Z-MCY$vg{@jeL)Yb)#vm?ug8Z(J*hG7~_q4M;@-NR9~EiVjzo_4jD9^4lDaaIkTSq7sz;M?D5xQt8}j5)1mv|2CYl6Ka94I8iQW~KX~LM$^k461|@>gZWUN2)vR zZj6Bj+Fvr`&v&1J9%G~Yryj!qx(6XLMYRF#3i<|T&O8bF#NM(vz_sQ%@I6j$cTH>< z%dT}4mv7&N1WE&jq$xf#Xs336tG{r77%e58yJm7&k*-V=-B@VS%k!3FWx=d;A$F5x zrzt5QvH#QUZl+~+q`;!^N<6}r%JyfK&)o>AGj?`~N8=NiDqYFd<^HjPcZ+lLcpMNx z_QFbo1|5CV54m=mqbKH&rBzN!i;3`R8u)LE7dy zES{i7#w89iUEDP?N^=CQ5i*o&!Dh&K+Cftt0)$sviC5I~`!i=_Te9Yi%CzZeRV;tW zm<87FSm4IRV&xNvLU@giYTQSzv39SI_Cb3zb>~{yy8%z9!mOn8P~0As+dUa|Uju+W zsTd0cRnR)S5s|&bbd@hSI9lT0P@41A4IVJaPeKL9V>f&@Hb1>MJbNqyjbmN&-@!*k zCK@Y+T4`ro%SQrC{I=NSY}?v@M1hIQdf|ZjZh;chPnvgnki!%L4q|h=Za+zlxdt%L zr`stXki^5o-BO9^YE|{nPfrQT^Z=~_`Tg2LHjl2sPW50QL+}7i-p4WKL->WCM77hQ z3m{%O2~fGsuL=@W`sZ>uDmh=>ViUfE7;Z6&vr`^i9M?v(7tTgAnhdR#yMn%PoMvXk zc%pQX3QpErCg-9GFozkW^bjrhbNkHvDDKVJ;iZx(BxnjB*!@!$auyvOckH}60AmkwV;V^$4y4bE?xp$(T-;lcwN!a--|2Sj0``QNtiDd|VtpUTkOM&or4S*feX8~(%91!y+?L@l_p475H3l^+ za3C9#NXC_pIuHRDlX9ZSwj_m#({+Vf!HZ9@R-Vz~#-87PgsW_4G6$qv5F8USDw(3= zG{C_QCzj(l ztTw@}lOYFfG~UHRtCpR;_N!m6`@}eg86&GFfjt%3{S5t81O-q(TWhD~`!f@Jw9x&o z{3NSOf5aduKM7LsJ(+!8zX3{K*94-4l?#)KU!1@zZ2~9v-d`v0i>OXeJ8iG z)EgUJRmDvJ^s8OLWVqBC8Q%=(xd))zV$^VW<2>!pwma#Ft0OLey!Vf0Ro|)ei||kK z8p_6~R~3m-jGnU~@*!+2E%d23pvN(6b?0@CCZacA<@a5OJ?OW`fncDD%mwsG4(OPC zwlEF}**|9^2GZ@0J1q%_b8x+>nDH6u^!5{hx>j|T9?rSnTfa*L_kcs zsHI2Vv%Ko*QppK?UfJ+2<#N){ zoOqsvJ|91gFpV@%g_T7_SRE~5j!Dx+c9|xk`S!?BVgz*ntvA5xLegsRVkTin!@Z^~ zq4qp}=EEXQ!*zW|`kxWsLbqc`Hpm(5)Hua)IYm2T!6cKGkhgvoHsy}`_N-E4bR#mW zC~NAV`j#49xH1MGK;7!t$lo@sH%gDJ2juHhv100JivK+@CP}V^mjezjJ?)$YL_#pH z%1lPylD&x^MlmO(1?~(Y)%{9wyc=X^0ntO-D_fBS!ZNUcwmSi%uUxSfzUF*kR-};; z#p8-`#m2~XGTrv#l7@yVS6_;0xWs&$cFdACzYqEMF(6FaPLGp&DhuXmXcbIH1!EcdjW7vsHdTN4m2Qn(hlp^;S-#SH2DOqtctHJX0nyiYuQ#-vkHDEahe*N%KI_uy4@KcweL>Z{4Q*| z(rw!&aqTCZaZE0&Dsz_L#_RiUAg^{0))-6TVC>5qUq_^RTxWXH%Xl>CJNLsbdLE*) zkv#+WgoXAGM}<$kQD&h;=M!nT2L@6*)j{?<|g42Y4pVq z$F$Y7iCR`k9plIHHmAeJbQ6icBX+^Q8GvlmCrh^HPhwDr_1T-0JDNUze!K7-=PRO7 zWD;SE$V|dp29!XC0uHq<#fB*Dd*BUSkdXP8Pv z55MTI3>!TWJx($PPkrd}h=*zo*|q^GioJ=Bgigo2c}KR51t>(yjfy|Iom}rk{XF+* zafiliiVAws%^F{2ZTv?Im_Mt8y~z#}`W?fupRek{r^#c4itNj5J^m9x?zyp8G^`B; zZ_0~pMcN9(9)w$!xf3^BpVQ^6HzTKw`mhaVr_aT!%b~q}<@`iZ}%Tj7e^}vdT*saDniB0{ZhWv^WTNcziP9` z2yO&?obEl}Af@&_7=aos?pm!tZ4qwe=5)${O@_f3$E(&iC#IJgS_`5ID}7pJE-L-= zhbDUtRuj15l$4Mp8J+90MMZLuS66&3{It!uOBJXV`_}Fhy-r@=e{c8lR7;Ais#@Qo z7X!Q4bm<+$dc;R=U^UU)2nefbQzU1W{J7ZhvxY|4)JhWgN2Q_#ERMDuWm}TvZ69f5 z&8dJl4L2b1dbE?iOBZaf(NXo*ln?6JWDI?dcqC|P;FB!m#Y1nMifRC5Den~Ehy#*}djtl58?j!wD8jIK;*YD1qP zUzzsZcYjH08W|f29H;{sSr*dpy{4hLJmO&#C-U*>in%@@HlOHCM$N}QZm6uNEGuJk zy{dnSp(yO#!9<^Ao~iuGFo0u!Ap4GdF3Vd1X{J8X<79IwIX_i6)>zLHS8ZPYZ%GK3 z(DLeRp=iWm+hQp4k&{T-%#Ri5N9=S4IQp67Im39h>6?lzQ;<}C6}^8H!fyhx7TGbN zkK<@8oB>U@o;bwmYL!o3iN#KAUu<7FI=gAfyG;}4Iznq)A|H&7^}|*&Y7(<{dzPJc zIG$S5smN1`yHpSVhbEm`dVf*jBnmYvmXQ(zxCH;`j0dg*P^5l5ASH`Li~Dt5m;AnY zAn<3wpWH*C#^kPv``0Ekesv~%{sRx*$HfJn3$UrMwF76^2Y_yC_>e?)k?Ce9l;Ii;5N5Q(VL}#y(n4Ohh040OyIlEWhukLEWl1;y@%sxL`6od;n9YxH82$)ZXR3$Qskqr6jQ8~ z!!P#p2;Vhm@p^V<&0~(Bu);XE`}nkPj+664)8(^ebLh0>nC^!!sO~&=fBp+~-uhz^ z2x3*a94qi9uJ->rPURP7f|m<(2n0MR1ztf1(I<=q zbeVI{@YgUGtEU6hb)zrzI=f=eC!U(5)f8uyXMdLq^e`P%7(u}bV6(aY>RCy&-0;4p z$;3b}B0kt3KkzXe3#*#T<774&`HVl*I8HZKRmkoQ;v%v>zn{P*CEPdRIEihD5R8g! z&GxdMs3iDj`ue4I#qj7N@f9aEcSG88tb>+UUTfPhs^zqpu-|oANoK#VVH(t=MBtpi)w`x~a(_Ad6&yf!OatNnN<4ygQ1A*UvtKduCo<1DaDpys$(coCOXg(4(TRhczi{8>L z_E{A{FYOMp2D^bWyOUFC36>@-s1Xr5w!d&liMabnN57E?Zxk; zI1tENx2zYUy^DI0GZ?uQVC_CdjBpD2IYjzp(Ty}Lc*qyR&P^5k{rF>#*O%5ll7$9` zq|4R~$~E;|5)QJWi}zrNr{NdUkfr{i+06Q+D1RZF76|2LMp}N8>N<}U09M4meLrYr zK;Mt-NLMQ(d=q5tQ9mv>3NDSg=puvO)sn}?VhKOEzB`beH|%67QbNz0H5K-ZcSKpr z)IGO3(=uP%dam#*c->yo@dXdZm9W}|D`#XF zPxW&ITXc?D!)H`RD+y1yvUkBTwnOK=AmO!3g0Rg|ell_6T1hA)(RH{pA}t{rYW!zd zq2$z@Tdp|Bzt#(A;zzJ3c4lj<3WFT=${KEa1_qeLyCXlIk>Rl!^+I68`p*5Xb2{Ww zxC5EXA_mB(o6~B3BoaM$bHYAz$W9?gWqUzYR+tCwsOPs#%W>=GI|F{_^2tQ0OK#hh zl7w%8j-rlhZFPCjM|6?Szc$-P(K>!d9}Y{ap5U)ZFsB77sW&h&F=q9U@|$UF3}rl> zF<<{uZa3Evi*_?PJJtY;!asHEs6#HRx0J@~t>dXjaE!j$6k5ZLj=`6sQsVx}2ZaIY zgtWo&KfJi9Y-w*)N=pyPWM!C<6RP5z7s;{F^eSX|GrR_>HZ^YhzI4kq!~{6t74fv8 z)=X>7w*q6!WFhi0K3L?ZqmhxsKM#K&tIOE$PAmLh#JzP?)c@Z0YaxOHKS^l?krEK; zR#LhKkQV9gE)nSxVL+Mz28KbpTSdAXhLmRLZg@WE-sj%;eb#!`dDdC$ocW8Tb zpla}yWz1aKDvoQ5U*6RdSZ5I}cjAJ|NN`v>E|Dq^D>&yVt4-j9@})LD4C*P>I0INE zQ13h2I~J9_BnbPJ;!!q!REcZ>HBrH40anW0sE}Zumt1{=qY)wDc-2$}Hs%Alrb!Nzwb!#Mi#2?d3csJUX&hL57wA4{?`Hk_VlTq~Dw&n(ISgjS zV-1O)wjSmawM>fx(4aEsGEn3+ONg9f6cxSPm@LJSSNIVW_(9Q9G{<5!nT1Z+NiZcL zj=<@61pr?03&`hahhfVA9#$M-{OXE@GiWY*m!Z&*)qN{?e!1S1#*DAuW{#l&X)7Jb8$d4x9=B?w222U5k_}H zMTQ}sEdd8D$`!blC4k;U8WeEybgu+VZPZ_H57%N#9LV;zcW}HI0=_;*{op8RZf>q^ zt7RbDOSgu-&k|L)-AbUP#7wfL5KP;GoCnE6Wt!Um$yC3Li-K$i5naL7c!4(yR~wft;8b>QDnFITMVlUz1c(_M)&2w3w3b-l}+MjZO=5Qp@O> zJ>2J0pA!3OYG7foF!dvaTc0&%rrtZvhi4d1qin2Z7b(yDiL&gdMig2#1-pCO@i}14B zO6(Iu+2wHEp&^u8k6 z_t)In!kW-f&4t+nx#t(Hqe>?;!?NYD7f39e<01(K z74wCFuER{L{jN_tm1!ecrEg=STdVfVEWJ6FT)w_>HvRZzu8nqaClF~LB!w4t-YL7; zN^Ds{wKh3#xcmhpnnXB?^XAEt~E*Fr2ouRXy@?$+l47p zByfir6$9ZwNDao>=B5A*JL%kHPW`j3z>jfr-2Fcacz0%N6RICLSFY?7FgPkZWXJlA zMt`w*EED+=w>!bq$k-6Jpj7fNv;bx1i(ZKnoz@N~1PinS%q}vJJ+uAwD=%VC`(Arl zLFSrOc@UYcA0mNc67K(mzb~h8uhpNa+t1?5YZB3qJu{oY){EQOLwVl=Ey{Q+J@JX! zfojZ4<^n7=TX55XTSNhwMC4Q*!XvY0IS*<+oA3@T9W%zKNj>4}hbDJ=JO+eua8(}E znMeNC8TQ9kT?ol8NvZBmi8H=`H0~-o>Hw;bC{rU8*mPnmsA?johTj|sh zaAwhNhB_kTK_+V2ZKak9YWCRo5g*b06^q5*%efwVEmaM!wo^Gy>AD(C>87C23143U|)eiZ&smBVu z&G6^pfhs=+_>~eg615MQ3zZVTl2gw3`ibJ4iuPk;tn)UjXQ|>3E*vOR zhO`XDIQ8`ULi)3V!naFmqn~}S$9f}~{K`yC;wyg_YT**)2N**+Qgn|crnnacGt8E*oOcXy^3Bky}X920F&IP}wCX5$8-6YIV zo-3Wpi@Wr~Yet7yykD8nL9vH(RFbK|AIvTn%IM82)3md;QA z1+E!u<-(Q^JT?7+2sXd0LTGIc$3;p0>8YaD=DH%iik#P__&;<4hBKr!Mw?8)fQ?S? zyIQ78GK)gG3?j-z&fjAP{DjDq$9|8+o3`4RXJR7K<@feiPihd}BUbG0X@k#L%iI`; zW>NI{qU}y8%sFM0^HO@x(&RH3;<5*ZMkdQFmI2HTnJ1qq@8esR8OCzqlq}@1*tf|M zj%IZL?4M+@Mp-cT=67Z&LM3Rh@L&gvyyXlLj;^iD3|4NFdFMq@0-^=ci=}YIuARc%pv64|dByY*8&v zM_Y3|;%Af>hip0QNs%wSjQLEe{pBS67#(?MbQ6jG1kJn5_irCsX5{!n9Q3WhS3tV5 zH7Z4TdenSZWt8gT!2uUU%q=d^raR%6ZgHh8@v@`|=4HayT+5Xu&B|w|_?qbUpNu$IteMmaB2OSv0wbC>0isNgl;lzMi$?b*hs{GF%%A zk0cxKcr-kmzkxI#6IH|IZ^?+M?0>l9^rpM+MgpWqJ^4KiK4*D=6FQ`3Z!dH#m5{aX zWXfbT8%HJN5Ww6)Bxe8Xi|7viS!2*c0QJG@KY3*Ls_V)!Fh=M6`vS%4CS> zk&YIlb`SrNml!r-Dn3sZWnxE>hK9*>$}~G^rQ-7EM*dJo=I%5gFvQ+x1e1ka4bWdPBa z%6xTjw37=4(&LH=&v-c1DIdIjo75avIhK)uaC`la_R?^{6SZjsm293=Ghod2MCzA= zTEm@%8F0O+wV#8*bNY;2=(D^Odb%Vp9ICVK(0iWW^Cu+2)+->|9?s|d8k|N>wjH#> zo=2F-hQzqmOT|tgYrB|VhZWfi2Ag)p)TNMh<;P|?)2z2i5LTJfeXd32Qk!# zb8(_jh$gPU6$3be7(5|thfDl+fz&&0){r}02LC+CFNi2RofeJQlN=TvikxC4! zZ|S$Ys-E2t;8kXD@ewU-{ zP*&|FSKB-bkMj6@CE0X6(vYt{k$ED)g<88@aiwxCf;B4PEXko5mu{N)xfPqLtn(oG zz(n$3z(Th6*_T}wc%oQyYz%jrj6Y-V7pm@)eoS5C!t}x?DXZ|opFZy`P{&0)hpA@ zb1#V+Fz_vBhQr+Tz{(M?LtA^YjzS$=NzSse9be1eiJIFdD5OW0s*g^1F-f5 zGzXKJq2%y{Sf|qdM;j3UYwPZ8V-82H4PD{JZ8;AGx!4}u+jo9fXr*$68XQHU3wZ*Z ztm3Rq47_$0oS6_v0VA!Kx34d>_zz7#B`P=Ul9FyB(|W=9<5~VrKL?Qtyf?FOacLYW z8>yNZii#)-X@nl_OHwQ@(7~li@K?8j^G`m*3#i1xoA7d3-&OC;=Vxl9@`}%Dt_XX( zIM=8OYa1#XrG`#=36D&6juq#?xA0A;Biei$WP2rAb`mpav4s3wewJcVU=_11zk|)e zx>Sp$&_rhtFN#+iM0{M%x?xODh%71P-07ZjvG48w?j-UYz~a$68D~L?_e=XkNW}~) zXCuztQWV&We?Lp>&GXm_)H1tAbxF|=aoQ}~Z_oG#Dm|o~rAKT`gC={K)C1AJh1_0L z=1I{eh*#SqP}(@xrx+fmNX}p7e4Z}`hK~v?R^!9!L9fvqaLAUB_ll&6heC7vDnr60 zqG8DJRgk*1)?|%GCF^}SEr7Ia4N_B19gw^IZe>h#S6+*NiKj089G{~%12s^f>yEp7Of7{vFHvD9S00vdk(>rij2X{n zUw58tVZ|tGAS8txn#xc5Tf^0WEM-PLz6iKmHXaRcK5@>1vjA*34*W*7<_Sd2bKZbk zYu-nc?$u(&UQ`p2=>RInxSXT#kXipA{&l&O5V~EGNKsb|<$D|@Ebt>Ur3mGKfGn*; zAD5@66|Q*h5RR5;(5t276eqwuDq&GkKG9$KufD5mdvulhrd&-q#4;^d3%Gabzuefu zIU8?zHf$wpAl>YFTc~nNSa)=KG*7-&JqVGYu>=hZ_?oAZs%b4N2v$eGut0(F0q%IzZWx-Yx?bD)6KkMC_~W-&N! zStn2lzUyp>ov=)&78}cO+>(elLAGW=rd=e(twX78O)2@so#O%(Wgwt#%3-sl9(SN( z*7r{=^_*i*8n#MWZQgzUL5Ix+HMORQ-JD-wX_YNiKccMsnthmHOfuiu${$q+M;~&w zWZ#v{zH4=Mi;JH{@*-DHW@;(!83f0qgZ2^sf(o^B!dFt#1Vmzll6-2<2X-V!D16-+ zb3Ni|o-PArq+=chjw-b&&#=(p>Qhq?LkZ{SNO5qot1w^=1;!Fm#&syyNhB-xI-2y+ z>Imdk*^@&Bb%<&PQex|e?#cpGCwo@dUEs`O`DzY`3Cwa-h6j%YwbWc-Whf_)h??A$ zZyj6V2(9)ph(_;{6;DcZCVvjFh#cBAmSue_O0U|?_q<;A?wNM51*hk(^r_d^5Bp@F zN_wmlV1q!*B+aB9cRY;}m2q`(dKPUDUiQTU6>`kZL{@Et)^4vxPX%tb8UAS|L1US6 zSLt=d7$2|t##rI(iK-9uQv=M#Lnfu5^IgXlkD#5nYql4CZ%rY3f7KkG{l%hjSIw6cj6aigtj2{Q_nbAG0Ho}6#T;tJQ(AD6q*C6s zrt;F@hw}b`QQ>|rzal?YZvj(1m@)R)Xi)mT0}%Y>V}3m937*{^e<0zjayq^1ZHZ7^ zzYuq2BT;);?vPmi?v|=4Znw3WV&><_hWYhMsLJg_{>Q{P8MbD90TYcE+dSTSON%7D z54=lV;Y;L52~PxeM{a=bdv{t4WK8LJnzv&TY83W9>09h4Czo?>qSW`L?o+8pt!&vM z751UEIkJ*k+#7Kzo)!74Gis;i@P}htA5R~$l;IWaDd&){V-MzOuPv>YE2wGI2Gknv z#T^0!DlGSThc@Gg(b!kv&1u&1*ojgV->on60}Lq!jq*0BJ$wl#=)efB+`~};E=E;` zp>)9%Z{d9o@06Q2^ll&Ql9PBm&)?%cGf1n}u3b$#Ui6vlo-8uNn-JqK=h?h^9ae@A zy)D~aG;dzsD-}m?V8w#@ocQayOvF9rIMP*tgUZ#F=I(LLw_l%!1uN~7{$5BTBybWl z5gu@UBQkz+B_SzG=zs;szeRaJAvkwTS3tT4Dr&FTSs=EjNWscQYOwsi%b4ngprheT zGfP*~=GGZY?dOMY-OcyH_GCkMzKxF(Q-0(r<;X<0Uh~NG@+~L+Jqu7otZ^LvPd1sr zv{2=jxsrwB{U@0oi_1g<53`&pk&c9PfQBk|@FI8?k@53OsHwWSO?>ZN*UkRGIVye* zatGRsfwJpXO&5vR2Z@y`!oz{Zm^j@X?k=r9Rll#+51Bf1zE}V7p`Oo_K;Ah%xj$GG z^_%C-GA(mci_@vV&HCC>ohBtaYaA|#4<0m9PFX6^=k3zV_dTJc6x7hZ1rWQCQL>Yf z8}ckSQ!3!>&Q9ehS8E}Mxev^yw!<&4NI&S=oYDJd(Z#0Wy4e6`K{TRfHd+Ba)CRfli7OhmzKvNE6UQ)=R1~VacPEvg_*@)-;3rx2WKL;)CmiyKomao&3DCn%A zT7yK114Lgt|I}ht$US6EOHE!KtmaaK#GJ=)t5emQ4+2I{aSt|p0K0DG><#q0#j>=%pUnlTl(vZEy?kq@9bfur`l!hNt<@5q|^36#^=ReveX#S;(Hg*$jR0Qw@Nhxcn;A- zrzGemwj8Cm)xKv~hcbD`nC;n1Ei)H2A4-yp!+hY_c9ztmezYEa!mrZiLEw~D@8*So z&(38Ok*UIunBtHh@ghF2FiLDrxPhtmv<2v#%Z?60BZE!%!j43e#Hlgi3NbUjF~U{U zBv(C4>iYs5TY0W#+HpQ5+}mBYlS*JW+7!8yI~n!Wew1o4ljZI&fG7B5Mfc6X&m-n=_YCqMD|gI^9DrJ^Tua~f{acDjEi-<9g> zeu0$8W2)F03R#vX3(AlS&Y|eLf zi%}jX>MNHMK;PxMJ9CNlXOdXD{Oo)-Zlk<^`g!GGF@>y#(zh&jv3*4+miPI|%B{(; z)dQ*MPsp3rCz-7K;Z9}F0pz3Sds9e7CfznAtds|ujTYom?Z1^iXrx*Qy4EP`ycG>I zNyjR(wVA51?&OeSm4!RVxQN;gtxmUXdnuuC#KG34yo?L@O@}!8`Ugi(qM86K=7t#! z`r@TvH6+?jz!psH1fm7#(TSGlN1sxA=7~v7FI|p)VMHr<=8aU8ba}(gnnw4Px?sVL zX#+o-gh4jRC!VFclaYTKc`zXnd<-bwqUD86>mX8$pd62Eium`qfoI7Z>QCRB%Nfz6 z%Fc*CZOzftN;)8)j>sqiQdvnSs#cUEed#KiZs;f+^_%4d!3~mVBJ(54)=H z5-L_dACG<=ip?@^fGRb*r#9*g|c_SSw(}OMOp_$o^TV0^D#|=H~Y8^)R zjR71G5P@~gMO;te9SawODP=!1GJ!9n$yZiZEU~yS$Zp|)6sJqhv0Z@>hfeUlTa>3W zy>@e0MgLm{#|<710HsrrDW4(nP~rv09(ZEhRGP#6Ki*Gxn;N6}IVRV`Bd-RdwdrA} zfLi7BJ9Oe-i!BIv0st8$O%SlDN@b}O3&Z9~z4s#4D)oo5;x$79yuRn{{VIJD`V`~A zcSrYbmsIS^`z(!Q61g64WCBEN-1l&LVhsO!hQBlKiGPn)kNbH;Fn-iw+5KhREaW(k z{~B-uUV3o)TaiO0Mt5hc>skcxa_;^M>c{y=@eT!#16wDdTlQ^1j$$2g0la@Xeg25X z7T%O7m$rJ7U&<0|$TJ8Pc4sH)#brZ^*z`Hnd z2Jo2GdQ~vqg@+%MJ9AcERHW4aP);hpFdY|e&xo?C;lJYZNSX>!ve~heig;BTkI;sb z?K*=4I%9HDVnBPBC9ajssL)9W$6UTk7uUkREyIw2+mNcjvLS9f_j&E%4m&cbuEJ(w zAQ#T!Y?QrtNB5pG6BOv7boFtN zUnc|r!;1F=WS;!dYX8$RnWH8{p^0i>K_bL9{^=iEwUTx1sfU2wBA?>|_TR&>ee0MD zCq0xIU2p>@E-o_r?Q@~3y>PI?1T1w1HXuQ>`2E|>sh2P0E&unzS|Dlzk#0hFo#eu0 z;e<^M)y_u%W@{y+kQ)SAoRx^+PP~txH!9zC$$ezkr$ninKZf`fmSe+N%AQxFL-ylm z$36(+k`3*wIog_Cw@|Fc5(v&9?hx=gs}QKz`Uo#i@bHpl9{kSn!@NC#uzbN}d9Y*K zO-GAeYjbMi2qdP9{mDHBSjWiD8?R`yJ~K09f$?aj21s(LhbFUvEUg;JBx_CG`Fk^gh3 z2^8IbrGm3`;HvFoFuzCT*|C}L$F_E{#vvLA-%ax%~LQ$x;W&S zg4^f0S*y%kx~xOaUKXImj|@{9IvR3&2u_@0 zXDdlcP10(Wkl3Fj)p9?)hwlEW^(Uu$`S*JN?)dsX?uVA3rr!YF{q-v;I1yl#KLEmZ z(RI9!r;l=WR31>3?tv;cC-rYB+d4k12U7w(i@ZYO+_3*_TC$&JX-{arV0*T1k|i}k zOjxzDV$uJAaS0r6%bD_nwvgLE`PH8RRaKXy3i$WWFP(p3VgoYPO|CIy_?V7I{}r|L zAG88st@``=|1gG}6YFI_?DY}(5Pt_#0|ZdnlYV&iiiT*%ZEWKDpY?9>f6MS^{sU=+ z;w9e6mHQ>}M@hT=5~P1q>Rbc29w5E?o)SVA_l~O`g9jWyF3j$@Nf=`Q1jB8A5G-{k zK~(E)A`l)KUH^Hr7=1U@UTen5Juv_(=tp-b`XGd{OKnhmqd$LsZv-xUL5ANp7Qhua z1qCHr!*9Bc?`KhD`~9~2imxmj)j2#oV#>QOBAE;M<0jnZ6r_qT{4qF0NEo(Taz7^F zu4_7Y_qNjA!K>y|BnQ$zd!u{DOv6BXJ4N%AD&75Cqyr(@cO@ASuZ#w zKv?72o;GI)hRFQ_??wri$vhzq&$329Dx1-fv|VG_9aF07@15$WQ;-h2-|Rf=Z;XB2ta8wf=IcY=WPBr$He_J^-?MMYwRKGrT@Bq{f|C1Ms5DP)pACoa#FfL-HNXDNYoGX7$ zj;AYTWF1Bhf9^qgk0{kw%}K$=8|T614-hN=feq3|^yeC{djS&Sfs^9Khr4%K0ByK$ z_J04z>u1R<{2FtI1L#M6v*{R^oLGXaQGd_(PrbwM{{9f~Y1gm+-DQU~otZ@C)hA_! zMSw@jod3{Td=rhR;ooQb4YSW~|96rd?@Le)Ec*8YE?Qrh8Oe&~TX6c<#Bk zOX=)O;Fu}B6|pi_-`$dS$=Jo#V9ytBKISuXlo9}49pWK2FdMne4vf4P&tC1K@>C z6!aWwRviUNuL8UIH^KA+NTQ657g7a04rW+d%^ZZ&c=qOZ02NG{ZeTEot<%Wiz=1J4 zVJF%bgmVc;U3+J3MXY+eSrKOz8a3i@U~nu$#+rfZYO>zjcMz!ys*>|}{S%yKz-hs` zpYOL9A&-;owVf?RPSOz$bi$DvwRT3me8Xk8`F(&nj{X+w>WaDR`V!GY;`#BOgPcNc zU0(N;z{n)-@JllzEwO(+j5Psn=0huJSV0fOaUl6T4iWd>e4yHN0)%@?|HAK}olX|~ z>QPhSlF02Eo)BQae({tH=6QuXr20goFAro4j{>vtLn{1~xa8HTAJ)KZ12D-~=ZpHd zK^!|%57#9)!IBYgdo3HnWUF603bZx=^5+8M?3qhjcB^z1@m|^8`4A?otJQlo!@1 zN*3~fUKXS_Qj(;|!GVZ0c`l@_wiuA|tVYYrfmP6Y3iz3UULWOh__oBMCtX=cfx4lq zM_fw7vSnh1kOYeTiEL1q0t9jh=9jWlIVQl!0sE`4jHpALBLe({5iO zYznGRw+cbAYIwE+GI`mutBPVHWHV^zR)>LqR4+nat?)WfgEu#X6q*e%0PQY5S?Qo91TT(v${Kz!%%R zhg+{9G^!~{8k;ikl48}s_3EO{yfk4DjRWi`5VBU_O4Qo|Y)B`u@`T^^i+Khxswdn` z(cXv%@#pmpmvKN259bEBt35Xz8S8(wMy5fa^oddqe%wb`RpAm^N07H!4e~@0+q@tF zP3~loYUZlq-F&aWIP*&+6U)Q?yoyNm=2XzQ>?fvaw+Z5S%4652%lHo+38iq`T7g>_ zfWFmHJz5&?aRyhNTD*kYB>kMM)^C97RBeUcQ7#c)R^!@=QqXXT`3vF>JBJ5)ii zPx#s!_!NgF`Fk)#<(x`OGurxOOn*|JW?jsSR^E8fB$i?B;sGfeGei2#N8X)CP7ht2EYn?}k2n8SyVNSh5nD zt9&5x+!JTrXnE|LS`u+M6LGPFy=#>VW31kckL}a?#6)r^VSI5upN$@_tiqd|RKO0E z3zttgzck}seV5t^(pbR#%EfMZRiJWnP=#SV*!Q#C#hwGCS{k4j0iUc_|1u&(F8z2Z z#@1A+7myAHErG^?t9uV{WPv#F=c2=S?Wey7R1g!?3yMk%gjY$Gr}+s!YnLbbJ~qn7 z8)wyg7&iGystT{C(i)EpJ!I539LLHmTxH(3q(=*_Cx2tudgJ!lfo66tadE*LSPWZm2i9V#7Oz;Lqn41%d)t=S+lq18# zr6-E|*1P00g`njDaLDVtSqZ8QFg@hc+Bl!z{^feXFgv^BUWO}6@-0btrcrywWjvw# zYTRiBQ180-GT`^PxB~0OlhmP%jqevL7m-pmcXg}0&rm`DdpdRI3hsQMAW%pW7y(O^ zf(8XGhi7o|c!ep1d8#R{J}Hm&SGi}c2aJE-jP1$mI8#9B)r4NB6aSb@sn0W>0&$&( zo3l$R@AL9ANvZI?FI3(Rw?+ywgLtCSBYJ!eWSP1Ct_p}@>37#kSbn(syC)wZpXU;l z@bWmbFsFZ_Yd@K5#uh5#f#_K4Kuwnb!~|UBWGl{4*;W6lg6YqfD*1xGbSP}}FV5`- z0_*=B&P@oMNPl1dyXx}qXZ#_>$%C83{{_)v{L>wgK>s#6FK34y-r#%%tbhOU`TzPj zf(npY{=TjgJ^uCKtIVJe|C(#vAp1Z5RsQ2!f9T*8+C2!&+Usf_V(BF$rZRulVEJ88 z!2T@B{m59(@ZHcywz~d;0$Ob|*^UJnjKMxIZ4D%56UmHqCrxZKY2XFHOCRfK?xx23 zMe9jg{QV2r9)K|3UL!m8 z3!^bbc62(n%k6K61X|3%>ZFNw=9q9c7qYU_$HDP2@#sMoUU_AkTcYHI(}192u%WtK z{CUK^u#kJ6O6H${TbB~#FM|Pu`3(l*lhgQW4k=&dPF_{vN4i=n6>Gh;ToJQF12!v3 z^?;OO^b%x)G)M=h2|o?@@l>(|0_EV^w6ev~dKtKi*!L||-V{JnuzA=@Sg72^vDjMU zdhg|nZjV~^%oxh)dy}VEz&9OGc!|`hYX{}{WoZyxn8?OptqnbHQeDlXuJNqu1 zyz2#OK&GJ}c<@gHEqeq2lQyx@vz=K9{W%-u@xj&Ex_=j5N@-mA02^0RIp{|bB)8fL(8n(8+arGBQ{FidSn7rb`IF6bp_ocn0|v& z*Oz+@GrP`XYiW@JkYK}zs6Xj7#wQ$BRbNhQMV@;$U0RZeJ?nDI+)|oJ@uec;FkZ<| z-v*Qem-Wqj)AYSG42m*5IZzeLMlCt@Tum0|feIo;&@JTB?6WK8k)Mwc81KoMg1|Qt z-zpWzvrCr^DHsnePWZm0!XrB%H#_ihIw%)8yA-nY>|~F*dls?g3XtWg`K@O7E-S8$ zth``+>TIP|9<#v#gl`xp&NVllg7jHL`d9U+OQ61x>w3UATU5dYg5YIoK=K9&1GA6d zq8v-O*i6u2sY6lLxuR=xG_-&L+_JG<6SrM5QtN({hf#t_fQ$eP#5 zRL@?Zzx5;qV3h%5`RZ-GfBbW1%2e;beSCZw23RIJKF21Sxo>IW&TALPQf3+cbYbYhPRm}LzGL&ZLfWi|e6>K+sJTH_yHL4S0J2=8>L|KUjMigr0PwrEtLm!6+b_|m$^B&Nnhi^uX+(D&l4_(0~QJ# zDkZrn>4S6c2}MZq9wq@Xs7EPp!5%Yn#Pe&F+yCCF(!V@@4HPTmi{6*y;J(4h&2esY zdNjj!UhddiQMY@S-npJWSv~O@gM9dx|Je1)+z5{*40Voy}_b#{CZb(K?gz&=+X5EKCj< zOu!f!#1`wT=yZ%ClFdL~wyYrF?K_FrU4yI*tt@7Nm8kuLYz{643S=K9yxEI$aZwnF z<)uJ52bxS*cy-nE4dFjOu{$s=RaZ*bry5E)t>fB@01#Up0D(zZ ze>3w$H=Yf(4epkK4dbN9H;#MuZKX?}rE9U!XpLbwcJe6$151(?^8uWIo2c6L(Y4(8T;( zDjrdKZTwyiN1X3oKNji2iVu~VZ0QJs%Lexqe z{SI-Gdst*%l(_mq?G4Xd$>@vLo0(-b;+`_z&m=;PP$a8(}&t!8%59hAm03U7MlI$_%YA!InpLbHA| zUi(Ct4PfkX>mRMTTT1}RfJy-5}XRMYZT z-MuU?Ukqg8n(~|hfN;&Bwd>}Xnun}}_?nl9p!!pMfW0Xp2+(PiDg@l}{anqr2}oim z)$(+peFOX^7Ya*(&egqE)+?_}2#uqKc~TOzx1#M{?L+BeT<5l|5^_I-A^THZ>PFv@6Qw}!du{~6Gt z@j&hBCYPAeJ*c6Jn=ZncKbua}r0iVe|Fj*|CHwO?GnW(J+;cc@7-Mj3{8NU+gQevF zp@LryZc+SI58`_nm@DcL5Q)VX%8jy*PUahOa~8b3tIY*c_l$hd<`S2>5(~B}7sNWH zE;^+>=Lj5p+`TVbCj2J5|G2Wn1Kz*kOdN5%^Xj5%Zf~xbA22RzmM=0RZ!Rqpn!rV@ z+;>1oG=%cPYTVQ5R0zmqES9%GX69N&fe6cV+sGb~0|o{SWW2$frEaFkrppmV_#sYK z?fp`~0Y#s5iVWD~m|0-sZSmzj=>yr2Qd4hWtiZguxI~ymXNo*idbBV#?cF`l?VN_C z??2;PWvi!fb7EaWR+a%OJn4zZV2x47m03^H_B<`)d@+)<4))*@Zldyj9{9+NQp!Xv z5c=2QqPqR$AF~(E*JU9($kyj@GxRz9~k~@%?a*3=Gn-2*vEbOt(!Z zC&>@BWpIRj3RWLOjnHiLr%1(O8xKn}9RP|4?2ggGr^|^E%-F)IdFe45sx&EJ4|SyG zQUncN8oXQ+OfH0V`3+|(2uPT8e1H8G+*#B*p85t1Zm?H5s;;(;SO5$TN>8P&zK^$O zi!)-Dtb)`hZgtWYh_%jxw3DdYu_3&Y&t;RKXE9<_zF$mI=O=XbEO_!mI%D_=e zk*Q5UCW=doOJ}HzDnnf!RV;mVT_$d2cG~D{ETu5s3-JQGY3~QxNXc1q#{AQrD$y1f zUPUd0oCtF-mih|6ogB*kAf;O32wE&)oS02fu)Qdfx9Gd45w!s#+$d4r9LvW!=1imvrnY?yN5p>QsBVooz#2ZO()_+Pl7klzTs+d%2FiMvmsM8k@w6GHk`d z3voGc0=WA8f04%C&76XDw4XBC!<8~EhVYmylErrE~e?q$7OwqR+x zyNc9(yw*=+geZjO{T5UB@_FfMUvmtPRxDcvaBnU?26_OnHBH!+GwR=U1<-o4v>b2$ zrM}`Io6?c z|CWvieR78l&^CD_ut?HKKvr`Z@&wL0&39tm$ zn@i~G@Y;8e5Bv1*j!U+jw%%qf>ZP$Zu}+OkZgwF+_FmO4wvjMT=kRY7*Dnu#;b0_4 z5cK4%2Zu|)W^*1G60S;D-<9v>lm&bY3H9#kiol;&N#M5}ZO(jL`J$#ytEZ!v(WoQI z9MJdet*3N$jKb~;dF#SOqc!wyv1kj}S5r_$$wt4<<7NSM1;cHX__q#TWCvMM;ljL3 zpTcW|k^_X<5+??nsiAS9hg-aSplSwyNtn*Np^4j43Kai1)5p2r1cg5kBW!OiWde?i zN-;Icxy9DYHZ{vuQ6FII&2MzDuNQ4l=Wd0b#Y`%OmQ zN7j$z_qzg*ve%SSO9}C-2krP3Oj%}P_%MB^7P-_D!O`BZiJ7ii{iw=AuaI!9?EoIs zu)Wc|2`VGQqdKKEY;b6PFTUGo85Y=f1-~)&=z%!N%adeXOy@Z+;B`m=q*}jgeKrd&L3ZD8FqyUvzK> zT?KTY!5TTyP_epVvt~v|XrUBvwI9uF97Q(t0+}Z$H@tV=t2Fsyc~82saH`gU^=my} zaFVHGA%KNl@d7Fe*{w_cARjl&?_Sx$K@;cH zD#gC?mGgfR-|l#F{c6Xq;08sA5y1 zO|5Mc5-w+if{!%Y7ejq3m9ibfb9q!kzBMHM$O`{~2&^achAuYyL`}YFbz5S;d$$@&F4_6#`-FxlstJ&wuA-ZGY7|9@uX~+vQEgdbM zB|3AOBuzDOvj-Q$-d=!%H9Fgw6*2F^ffIpTF~Zqb|FhGGzyqsqUfK#y6!(pNw3@(g@Ql zrVZd|4Vxww#WIb_r>l&JbMIk$9_bewPCYb!(*b02Z z8xeQFFYF=y!|z3Nw6wtuJwu3u6w7r|?hQS@|I>lr^;dz{e;eR|&FoN;|7&spKT#|0 zwXJO=WrvBVrh(9;M#kAQun>l4N?V#)+iGs~0S@!+f^XEECBR~PSJGo5@`4j=;>If@ zSu14Ky{q>2(T%vQzLs&+6EUsx3Kw<{4o;T$(TWWz1^^0uI68#ibMk(`FOPguFe%S; ztll?B|MC(&vj-@j$G@gJPkx7*-)}tLxzIHoJumUz0Xp=r9(}e|Y}TI5jn(?{1{z<8 z>-W0Yv?I?E(=_h^$9FI-%q3Y1zS;EKuHkHB9#G>bMGW2Gn*BLlvA!c4wteFNo&`Wp zlQbV`XyFK_9nDjx9r$Ky%P;QDfKh{d9`cD&^9;y+gAAI1t(@k zpf3%yZTe!L1un{dv|$Ujv|Set4rASIpD-D_WS!CP9$yqsK@zSOx0*-U0#uGb#>gs^ z*!sQ6n`lgyBM@Z-9CRX=CZ~%WJV9fJ>b*aPCfhRQ!*Xq(1CRGq@lJY;2wcRNjt1@K z+7*vZjV0)(j?gscde%(^jZXBwCQf!PL(}D{rp@m^UDPVRjoy9hda){Vx5f) z{cHnk36MPnmb?w#C@x#`BQTd4cp7lhto+-avc^3{gbK(@faK)%hYz=BhmWnsYgIyq z`hLCAP)zDvv^ry%ZCQK)2&{kzEw%jle{uJgL2-3WxF{qq5JG_94oPr=1$P1j_rcxW zVbH-7AQ0T$-F0va!5xBIaCg@^o4nt5t4`IuRj2CQQ+4a^;up+p_RQ+Fy8G#;pQbeI z2b>F1*q+ekHXy8V^t(&zL;S?pE;$}hRL$UV1-O3H#iA>XIG6j??ItXZ>1}9JB^C+} zK+9aRI-pbBBST6bC9%nJ3sm1Df@SmvMq6EX=criuuXQEBvL&20N3%e!R=J{NcCy}% z*NPXVc%&+fWe2F42L41T&Mu(HZ3YyKRD_DNm1NI=5r2TfHQ~040#}--8MR*h!Es@8 zm2#fiXk_tspQkfBpoqOE&<6V%8u4&QTtc!X8RTQMeEm(D@wTQYe#=}42hhnujcb2fp!Lk&WRx5 z`wk`XOlHI3t8OeLuL~e!cfPFid04NRTCvT~wbtGXqRhpAVX7a|M8A8y+a80tGtH*;Y-=}6!1Q@v zH6VAZJ#*1$(m!0RZ*RoGegbCw0d7FWwrKfgdA35;^Y-2sV`)yRL7UOlr4GH#BcY5# zK6O)EMLT&fh=~JwyeEl)c$xa}L{khmdIhrtMj$FXnBW1rDPg9~dnxVa8y~mr7_>Ql z;EqG=&59{}*e>to&FIavj@721H9-aPgU>Q;voUL-fXcX<*JHvSYEaJ6sQYgnRgkH* zsRW6#e17QHyL<2{{-2pNe@vHuiodIBzE!cJeQVIXE90gsX8`g{1~fK-{wF|Z_x}FZ zs1J$u6F?M7!sGDnu`kX6t$JSXR@m^?c>rXV%XcUrm5T44+8ptmwHCB2U$Ft&u(Lwg z6|+3-IcR$^DLM)cfJW^go=qlNazPWzXl#%;ueYGOwz8&!@m-&-4r;`!u%cSkSS^$M zZ37>W|>i>)itk&r38^9ALZ@bM{qMDS(e$IOohw*Rs^EfIRvTZRi30p1bdJ zwjr7{*%RYaj@ORd&detOfQ!A&U8i8fZt??Y@xQ`}M|d`!ino9ZR|^FB0-eLosXX90 zV6viRAi%ZWj?l}|Cg&D-1Q;uOpMcX&IUr{q+gYjn6u=9sSwe`~YVq9mb|ZE^UT_gsQj(w^DiW417yvXwindpMMpbk^@_VJB z3#2sI&T;U->sG-QE0($4{}=-F9A~oP^GT2JB$mV`TK}v<(RaTU&>y{Eu0MRzMQ{eC zge2>B7H^s}WYn)8Rf{o+lJFBX@$t6sd{}Je^sKJ0$c`2OGS*f%_-O75INf6l##Vs5 zI*spbAt{^fd?gBXMNLA70>3K26ha!O_0Z9=$sYk`Zsv`Cr<(ve!ntAPUh|K2F7i{S zS`EBn;uOrI&By>vBO&fPV+JzNE1OtJ6a|pkXQS-&+QoTaic$mGK3Oy5<`LQG;a8{w zW?wT&HLl;@x;C!_=Y&hjc5I1?jWwsd?* zMI7L!KLRv=~n86D~P7zAj;?%^d|e+li|KA%nX#}?qp zka4E)U+oq+uc|s?e?uh0%f^ zLBK4HJ&Q7H2AXyW*@4oAMJXEd28Ua@zRT|+{D5S!iFs)~P&bSd(>-5`m#h&#Npf3ZQCq8&@mFIQuB5ysvrSbM$urw+96-z>m?vAi^%uvZOdbQnBP=0s4Og%8a&Qd z6bJ4ua9t=AG7n5SK)>NCcCz_X(^_)9+)Ur!il$nlndhHZoMY)lx9TUSH1Z zYDtm3@r&uRtsvgIBmcLKckSv?-?}&Y#;m|D=B(`W zd`7SBa(@(8*BJ>yH8Cfm8brX2giTNYIqt)-!UxJ=3R2M|w$Q%Ts!4Cg5III4$ zTlL^Nyc^f{WNXsFWV@g^))FcnM?&&q;WS8rWk)T9^6>6LVJkJ(%5LRzRU&JzG%aFp zzLRk0-)@fvx3_=b8on34!cM?fal0YD|Ab=oa2d%6W1uhFmGes&UR{!9}oA!>b& z+oP)MtP{m@e#cu5PVK@wA@jTl_u+e*e@g33!_Ci(;IH5PT!=r4CSGlPxfmXQbhj5} zN=s74Z(2ji{xPem)UT>l9+=IOaw-Sb=CYY{o^lXfb&T3rbp4MLex8%y=0+rl74C%b^7z{kQrp zbp?l@YI$vbm_Y?ehDtS>$!i7~4W%Wdr(!U@RY&<&yEbq+jYIpQ+HmQG%c>V|xFYbX z+|a`?eAsdDG3ae>b}plj5Y@ts&pB#|j;q7uUQoHl1Khoms`hz>VEgSxh3?(0i2S^n z_f1CHy$fl<4kE)tN&BPk8sTd}f{owrsA!q<@b;-+<^8W+Tv_ybN5fst-Gt6T$)2|Q4gzg>gqruQFFBgnIAZ$0)FT3!FXy0ck_&je?P)Y(mW+oyqqV&vza{E}b}jyb z1RXbjd2y`(3sq>?U6RaJdbu|Q3D@eKDcFqh*}XO>KSR_XJl6HdXoHl|AKQ70LVu6X z%bxnLJl$A8MDAjOM!mKR>Z?#0bv*}o`Zj&^o(?+2kKLZW_M#%LKc!Jm>(vZdd<8a6 zkPDu`We*e0hq0yc>!*FaMf>fZrs8~b-IddQpe}m`rDn5SIywxhXtF?M&<1Be-I>v`O(3$<9WIYX=vKM+3&QT3+tU4P?2a|RrJkx`#%(Ez|rY3Up8T| z1GkAbAx+mA>Y((yrIJ_+*wXpM=aoNKuI=+a-pWx`iuS8<1uL%i<0+$d_gC_EKJF>b z+Ec8(g96_B(k=ofZAubrbJS1gVRm+2o0Eb{Xt3?Zh$5DZDpV4W%VBb+?~fa^=NHE> zIUgz}8EH&&iB-9W-_%_aoc^x#e?g|U)DW2Fk|G%1<=#N*uWRP^5M_3JKh99^Z6z%u zOtG2b#W!Q2sH)7*SLk7Oy#hO#ZP)eKThcmi)}+AvC*Yr2c3055;Ht~|Y`0%duY??-8(PIRwDqlyW^;-t5B8 zD6fK~-OS0oW?m1wHna0(rf@|uRCL-jp4^7LqXS;=O1H`L#i`A~4lm{YxEUdsNhM8l@{53+%V922x* zqmWHnbRRF>vv=|Z=VG11<{g4y%em_t?R=V+v*T+rp9?=hZZwoNk-}P^$)yysmdgaW z^NRNKftPyeJG%#Frs+EkCms5*XjYXWaOT_5OIO>)({XPXJ~TLA4bk#Q4saYmeq=>% zDuf$)$GPG(MV0~iMpqT^L8vqPU?STR5omjQoE8GvHk?cKAUSZQ?zdH~c5%8kc`K`c zGPtP&lA>;2c(31HpULT1x)`cKn6m$NHL(8kf*6jqFJS=<)OrnTy_r?2c+9Ra>$ohV zv`=zBoI}rEC!e;~9J)!q_XbNldEFn$qc?jiJLZQJU#`XEBqbG8L7m;~J=QQ@`?!0! ztOb9aY0=14f-QIY?P|K&*vJj1`&pL4)f z{^!aFf&xifT7Pv`SgFnoy zlD_oH6`ag^%?IDI?xAdpjalydXIG^+@9W}c#;FbR7vl2(!OdMRRl*^eMfSn@>EUA@ z4UE`~c{>(|DW0b<^&Gpc)S|RLu6lFZy&qb%1-PYdZ(io5;JP;HZ2BCP{y87k4&QWL zIkQZO@X7(bW9FSOxz?Mp0&nd5C&^pRhYkukY6Qz6`~2NyFjrpI=i_tAK} zub)?;A@$i!c7OPj;*TBp)$A)$tni(4@9Fmmo_3))-~4kWL|eTTYZj*q#G`%QHOqw! zH6|PRP*8t&exkjzS%%xnZsf-;=OBc=7-7$%U zT(yY>MD?daWyVuGBzwtr*g<@z!g8slL8NT+nC{K}g?;YA<}Kf3eYvGfn2G~;{AhTf zk276rJgvlGJ47i)*pg3$;N&<0>yRk-?tEog%_X1bPYpSStF?Iu>SQv5jBLq4+ESJ2 zV4uMj6{@ZFZ(7VmA5W*tnB)BA+I(kS&31L;?C$h?u5t4<#mB4hiOe3fBCncqZrpb> zu#IU#_)!@%zfo3RlgvoFyOFv}2Lr-DBW`u#>O+O!=(eR&fr>c1iG(25Wjz_!B&mfst=MaDa($PKjDQ|`QJ z`G^OUxm&y>82HqQ!Bf%U$NU=hm(^Dd%+7|nO|?R&1KY^uz57?{i|H5rSuvubR#9WQ z(`N!a_$pJS_7FL}+l-%wLFCZ#omn5MZ-X^0C&8DscaoQ|JIPZoAG(|C(Gc%5Fk?50 zb_KxM%NtJVNJDeueh-Mt@`cJS_CX*Sh*L8`Zv0Dpsc* z>yxSp{Q)+g##OU=wWr&%iy0qX2@6tQr=Kq_d~TN;$KXhG`bT}DGpEjbN8Fp*xAM@( zzKr^w4C_=4ZePsX)vpoy6qJm7QWIPxv(R&V^k;1Px$Cw&X@it=214q3Q45g|YHMc- z9OpV1$NJY`Ic2HV>lQWK15w-x2} zk_zCYyM8*$8_Ib6NKGpxD@sz}H7rZSrGWh~+`H|3^<#RZ-utePvshjYf$!>=n2wO& z5rTt&Q3&U=65lh^_Wiz}wehh_*k!QvQ2YY~F@VW7LQn%^!^O(weDXfQ^!jmYbEv%~ z#_=!&x=e_Tz0ZYz=u;%zV})M-!(mC1DHb)k_iWoxBM*#8{u|EJjS~2)OOuQ4_PSlJ;9W)P zw^zf}ivlx4t|>+xU2`ywDo^7gGLFjgd0~$(Bv@fn&{PDv81Hf-d85Iq0!`4_`3#eZqA>tKlqJoOkQCqc zPjX`~YH(HzlH&dYm|CLE-!$*(&c#wE<)R6vEMi6PE`kiVBFTyYs;I*_C0Bo`t|fmU zK!8h{8zWu1{`EI>AePWiv$ud5UZo2}liMUJw#jy9E@{gYSH7zh6MTPLbt0-UB6?SB z%B}K6sWZPwgfN%+8=|?9@b3(=s_CkXBDCD(^V$Z3)+kq4#t-QJXXKf|c9BMT5G}W`7i~ z0uh>aFV{JGtFeO6aJ5QKi`W)sclqMsDR)Qh@{{NnM+78~GiiRR`d&K@ejBJ?dTH2$ zvb|T@D;msH`by%v!gk)9SWcR|IN^|2o{lsVZR$z|wblKjlc!CjKNey}Wa7no7iueG zpmXf+p0>rOYt}vF<|xsz1NJWXnsT{`15w==`VIs&UEXK@@fdCx7MbDaAzVMQA0}(U zmXAj$OE!{ST{~FLw)B~g@=^jPF$^6@{~*bCdQ7OFJn+LmCSgD>wu+ftO)Y&DilP*e zc20#AG+JY=IYEn?9G-ySnqYvI1XvPqJBFe&65em|!^_ zo(wLd3EbtDIvioeoJK3DDfH;@UHoV9=*l*3?z^m3z-VH*-jYJByd| zLU8@oO(&vzQqt`4CcZcpe`*%_{vOhAEfG)^eiP{p9A|oqI^2brEp;FBTgFE(Q>(EC z&VvOt32Wb#wC8C>V^lmW_%MN^>|0G2x3cz0Nz@2{RZJ1Y2Hh@S)>RyR&v9Ezp#Dk1 zdAXHPMTF-(79f7T1Qo%s)=NRIB13~90uCf(@Zlj~$SU5M@6rBKH*|TKWF7z2Ie3b; zwfT)5Q2Ap9vu+SV5K0cc*X^O zL?gTXUDWz!@bKTAWqZBhGnp8SuZprfOCT>e=mdGXE+1%yF#~JE!>x&VQN|EvvlKny z5nyCIaGC6o5>yTWTf2NhtiLs~q3T*4k|xUJJyMQqUq8c^y?;=rc>E<^=DUTY`7(|5W^V&IuCVkBK7u zF&y7%tgirO;&QMs3xQ%;xHUyh+9y@ucTc+x-Xap=f>k&NYwsNBVCWerx^XMybvPx{ zBm0{1ymHprR-YHgKkDk}A7YT>CVSf(p^AbGyJ{Jh4C&m@-1Ais_+LB~<`W>2CyWyL z^aWy>2uVBLfAfrKmywS5@T>6WS2n)zTL_>R zKCoBMOiY)DP80C#K-x-(a6nyCgY$M;3q$HZe*KJRtZGI68ndGyYf};`RfA2_FHK<2 z6Zy$8bXqgYEKMR5)E!WqrW*WuN|{|t`q*g_$^Y?kfA~Nh6{sO7} zM=)af+%E_I0y(QVPCE0rDTJk7DKXS9YruiHm9@anvV3aKZ!Z^%uw2tv)zGtIPU!re z-vhDYVo1ZXA=>am2KC>d1N+P~dl?3W+1l3u^} z@nK5Zb0pBx^9`~q#&|9Bx@b2T7OGe0-9*RyLH)k@ez34SQOZ#M$@M{v;$cP00)0uL z+1tCme~4R=w2<`#4F^fDG4uTNUb^U_VcqRUWM)REzIqDWhVNd?astGa?RC7S2gB(! z=phkf59idP-Yk>h>jpTo-nP5~Ej7G%T59Z1o1K`&tz-(Xt(iDi72d7GmK1StvU3vA zrk2Hn%x7_LRfa>pc6Xxds$CD=_q*CzdTc<8KL_aA@n4-r{uc}Q(|YFKvcTr)La~O# zIn6kDs8s9@Y|`7Fz^w_y08Z|!RlmZF6&-F)o6ItC;kvuUampPVq}|Do5djC0Ah4cd zUn}q=XPYR;#+Xn20~3fEg5T@jWngN8Z2b@^~iW;<|(ujpmH~kRFkH_Zz2znKKDcL?|d=vJ1+{3BGHlq6yFotZ-GvKs4?_fuD4F1$N zda_n9U7y;(TOh{;#!=i@leY_R%GIeLNZySNvc2we>$Q2pRzU)l0~yWbo!qv8-pU-7 zQ&%yxBpwVZ+*CICED}_zN84cc<0^>^$K3%cK7{00Hk#ta$KqOy15!1F}@l6uJp7X)J+I z#~GyfYXVQ@Uk!rLN(g+V53B5yK~afbjYTD*NnSH$mOx5NjF?X^k(IME;pLOQZ=#kk z*af&Edee~--ZcU^-ybsn6D9(uE#(b*bQ0tzA<8$zA8fhs3qeG9sYHdFd^A7XvJIZK z{%$)Yy$@Tjm)^kq8fiBmM_k=%^4u$-&moM51LrGkA;IvVuXk}>Ua{@OP{zMDE*^0wge*48;-@xSEv)5<-nDyheHuer6kOhPQ z1R}r<6aAhU9sgecNAZpSgV4$U4{q(N(P_@{FU~J}VvhjF`ZfVR5#a)nAtI>cnH8l^ zIA(;y|Ev|m`XFaV4rY*1U$dq_Y_cbYV)PW zMTwh#O3%VI?cv{nhf_CDevv3jlRjRtr@9-sx%TCFv3|N3o2ICHdkFT!%~m9MTXKt{5Y7bnru{SWdV3bQ0ikW=}%;SMAs@{6|Cqlh?%uc8vQ?O;0JY0S~~w-LAPOJD6?tIxOsF4&WASR&r3FJ zIq|RHOo0v&?UBbJ7Usc{QKc+TWKtI^^N)((}Je{NRz9 z-AgB+)&U1M#Qe&>qx2mHoeUN0-(x{ZEJ6ho1;~&5Ya@VOOl2a*pTBQIyio7nHlP=T zOLTbq$5+E|6o>F%!5DoWz*sXP07R8}{oUE?nimN_)SufaI%-!P6vE+r36S(;p6>u$ z|BE>4pFnL!jaCN-YeQq8BKJ5yF*~<7)@IlHDGt>2?~OW!zQQ5-*7%ER07WGY_R_n( znw(|pD$)~TCMx{9$a-7bwSF*|9SnJE(2j!0^eQSye$B6HP+A8EW0%A-?Z9Z zvEPo%cyb+WBk3K&{ow`3B{dqJPYiRGKaDz(W$>u-^x(em$KEg3jE}}3BgU0bj2^jK zo)njkAfqESipwiOvAx^c5qhLFkUzlz`pSW5_ z5?{kWrX9bq6Ok?Hx1OtetnAd!l=vblxrFbf(smxR(3K;Syf<%7?kD8E+bCJ2fviK) zddbd^uG*g(^YcHS1pB|+Gcak&U*tV98-D0IBlI?K%A<94z20?hTf53#(pX0Qc24tZ zCUAcG0YO7JsTMz7872)qeQJ>er&EBoyNy#~8p1%L71KW;eN zYUZ?QGmw=N(p1y3^H~{#LDrgsi$2vJ1zN=uq4vyv>kIO6kMQx${ymMi6>ewOx_!@y zc7s$ppUo=J*mF2a@_TOmM$m?5wlq#k(3Gkc@upTGi%#2+) zyJ|OrhZna3!4uar)>`9IW}0q4IHw ze`*tT$j!yazvgbis0@M}ie14;yd|R&un`yJxuM}hzI)uI*`qOcuzY^&a zsi$E6=Z|mn^N9@X>!oL$C$rw{9sLKl(DBcb#$XA%Yc75{tz@3vptQCt=w(T{c7w5O zXRn=RbJLqE^mf=C+I{pR|5w}kj?J*z^0ia9zb6eGTqu%`G8`k#$6}2J7P|uz+_C{d zNb$sE!Qk}JO)L7adsd5(gf!HOSR5FSUbEwFtQ zWXt8ev52F_P?yLc|9FLSr<|vJi_mA=cx{=yqA+R5lC&P3ZQHOe6)f{1Ml#i<%5&)f z=<_b++y7iJWrDhs@z+bib^KwkvX8piu`+bld{kIDDO+g@p(3=JHBVBRMR<)3pQ$r4T5zx-Z%@E$Z4bT=2ZcaY0jyqjg$ZCB3LMJH` zEH^4iC#ZG5O2iu!Sh|Y*bs0b5t)x&GG`~DL+p=}}a}*uShR082$OV1+ zPn4TL`wy2sRH3BquVu?1DU-l=y!rP3Mg{MG;{l()1K|3NngX&B(!rvi$(LXM`z-Y7QgE^Y%vt#y~N0Tq{#{kL;%8$XK$!K z9?~*)@^0pq8ZFI4Uj|<2b+Gc{^2G3vJ}Ntdc6o%TbJ45c3QN{(!=<3U8K)+*tt#GR z?gTGonMA1~0%ClZdkcl{u!$)ro$c$(H*R;1`@08BJc}arphtt0Ldt?^ZwpBsnsDRMH z2=haTTx`ub(tXg+5B~Tk^i+)gU7I5(aJ|4WdrIp`%E`bx?jbu;Df~2J-(+_1@56yS zw7pbn3gCKAGD8OV4!}n(q2*WUBT&-h>3u$q!5K^Ec{GxBgyV#Z_c6SMktZEHH?Q=N z?PY|&fOq)Omo6^I^pwzw5_c<4=T!(A`&Sj;rmL?Pynt+m6`PK6GM1?RZ$b7$8kLKGu|`iw}-;q}ud z-g{zTq%|pC0yYCCigH(S@fo6K_wFpYkua8$;lqm!!n*SMl6HWeL{3f1OyLU}VFVli zpO3~-`e^t+fj7;JNs*XF3lg&l8N}ceYUO%&fPvHY^(p(IO+HpG{<(p@edf`b7WS%OexU|KXM^EJC01(+V0QZ6Hl7ajUOKy`eK^Go-oUt1@8N<4NNeSJbmLRpgZj9B*^VF4wi>5fyk zIT|<9Ge;(WfA~;RyU|t%V#TR4K8OvH5NE)`x?sSzn!-&XE|CvFFxg;orN>prP}JEOX4V7H4~p*p3(mcN^l2()O?s zscZL#IrU?Oj!=Jomst%bAIr^Hx>EUE-?~#;I6uS3D8q2!_wCI&6}5$$B~y?lN`9R~ zIoHVbRV9{*ni%8P!E$EiR(rYp6GN%~Y&>{kUlq$EL-N)DhSc5}Vs9Psxxwi6^bgr1 zreQ{jxPe~)$b*>P{^je0Q}iY@tey?595>ax)qa1BD-bd9*~GMozGxAosyyr+)Sw$5 z+Z8*C@S{3=y=w{D$BZ9(6%(zbpMQ*dUr~!!Pa6>&(KjG%GI~7A>3=N^qGa{Tno?mO z|MrFI=$M2@Iw5I%V;7st8~NaIt&mgiU2I~*FA2egyjg|Gd3_XhUW^|Iw#S_SkEI-G zlXf_E^@3!LY{!fv#hePE7w4(k{fCqJ5(8&Bcgr^RBfCSZD?a+7Zq-FSxt&m;Po{9r zbQAyEc%MjrT%+TowU|w@9EZi6lv-ys2444@1F$G3O?j2)p?`rl3?#o@m|9e1zH>}s zYzkLj&@s6JE)e{9kvH(vczPi#oM8KuO@B9kuuo7}21G(*t-Rqy#OY)^!aDUP+z^KG zYfmj{HG2uTC5#I%Ee%b1ykIZ*y9EOnBA1rBt)A6ly8;|s0wusZY1zap%oP9jwOQ_) z*gvC58A1pQbk4?`1#}OaqP>Hc9$r$WKOZ)ot`515hNtOqe<)DoGQ;zK@7tJ2b+@2R zI>n*947PAk9--w?6q7H}aHln_ij1#ikgqd)Zz9UB?5JOw7klBi+`0DC@iphhMuB3H zZ+eoy|0C_Rf~NN5@}iI^)4Vc78qcWA46VR|4*lZt4Tv_1^edXDyD&S?TM@;$rhy(M zap_zZpD_O)Jl(T-rj0V1r*# zqvIlf`x!@sJE9d0v4#<}%C+l@dOLa$+ZZc9B@TnR0AFDyuj)2W6@Y$*XR7FYQS~VL z-oQ_JJ}XGVj%CIA(AEB}RASmEF9O?W0AP z$k&DGa@pOg_(o2S;{%>|++L-*B{>m$qO9kj9ooed?K3d@gk*%|cRr`m(DdWUYAh67 zv*V|W%E?_S#VP~#%`mg@xLjk3jgi3}b6(>WmN@vr2g&<7fwUlm!Z^YK^(*p$spWKd z`MDjp17&3inXs&%DVlj%6T(l~);zjBT@1UQa>Q1ITv!^7kAN|857u12WiVQ~&sk{T zFQg|=yHLjV*!dS??p88$?I3OzmpQbQWDj++Qn>IjvL{Y+1%-Je(MRoz*YnmB{D`t zPsU*{=cV|!rR`|dj^-7XP7y9Hf3-vNGEI0<_!iwU*KjV5iGZ0Q>XMXv&Q_i?6O z-zRTu0oBzyo0~t)3*g%tRsa$ddOp29-*=c9gPg#y-JE;5$svf3y_1NulZP#fS2z1q zUF+i-HJIZVax)zZ-hWFW_;~s9!p=+f9PqcQpCea{B773O4|n&RtUIeto2G!+DhMeS z95{uR%7_9*bOFm>I;*Yk%fe-{Yt-kMXamORwIbepZY? z*(Ez>!UkeIWPqpUHfYSEC>cnaQs|jIxmU<0!J4!F(`taI&@wz5PPsgyti?yFa^-_&qf~sH%)h!jwmiBlU*Adt#DL z%RD!EBTI-9=gkgsx>Ny=76WInWN5aOBAo$9F$T*0TTq5ltT$GHAaO6CFg%Uaw{U)Y zOf8_+!6PzzZ?WMQjZ0ExUnF#kv0j>oWCq`TVq(^SMT>^uVr*q$NxoOOoen9^Q8390 z*u=QS@Tx^@=}-bp(l5b9Txue>V-vq6<-Gvuq4!U07{r91@tEV_%?a+}EZb>~w`4g$??ckJc;`KK{!tVKZ{Jcw z>gzY~2{zr3=DMlAm`^o@MDs`qQu-dX?aVS?k<%GN=Y+r2>g``WZVn|T6VB6|?}i+j zA4c6vmJ!K^;*%oVS}!@F5O*4R-n)|4tcP~E-y>9l!8YRqS! zVoGtf&s&FV*wP00HZ^(#rJa$y246>YSt5&zMgN?-qL?F%Jdl#w67d)I zhZj%Z!bc$cQ2LxPILhe9%d2}RsQBq@a2x%A$KlY1=*5e&98F#4bsXh%pS^mf)|+eB z^4XSH!w;bhnrX45u(Oqw$89V-h0lEKAN@?*ZhrHQK5ojs-r&Dl5*$Yt<-}j8$CYh= z7;4Trqkivri*v4b+Y71n^ppzi=2Ip52C%FFw{$lu2-{v#gO0l5ug8FdA&XDT>69g} z@sHhnULO#{O1VZ{AE~n7-rBT4v!k9yKvWITBCx2#sDai(Qd>HF$R7nRyG50rM@s~_ z2Kp=nB;WeN;%Ncdh$Uq+>8Tn%QoE-K?cQ$V*94Q}+rx-qVmYm)qVgNczFEjo>ba`n zeESNA_3Ho@lcg^fAW}S;-|GS0OFWGH5dCVmaiuME?}6Fqf&v?p@be(AwUi(oB^7Jj zNzECE_KUE*;zew~z}rb9S5Q-(AL3NUx!WR?%4+xLVKg4vib#5;C<$b!+nQzW9yYn$ zsExKRoHHKYD(hjJAEuD?JuQbAgoN10G}^$DG;F;EnRj#2`Ka=ZvDuIjXKF{{9)hG3 zWa9+EC1#(hSBx?OdLop$3eME^uHn+mJ*IO9*gPx?6qMb-5-TqeE*&G5=_T10&=N|L%$iesxDc+G;HPKx-r@EL`!zlwB!L=Z zUq^;sQf3}mIRK6%y+PK=Mn%cRdvCxQg~nJ+TdhC3+vbX>Af zhD@rUnlNp)S-|ldI#%JVBFmGO?!6;+g`PNTrAH$+IWfCDXM3pZy!BtaYG456J5N4fRYN^c=uI2-2^T-Q;t#6>6Dp=~7r$ohtwNbLIy-15+In zqw#)6I^m7s(YMlHjPj$3=*!5OZRi*jwC1o0F|aX6l0Q)=S%wzLrSHW|I$?Hw@CSZ& z#>b4MLl-F1pj*k*2QR0;aZUYhv}JwIoqYNtXjR5=J@=%KyGk7!mjFBFtxy1gM}sTz zFNe??eR0v#m(B7M(ODRs7dxY?_E*PzVso?eiv$ED!tmsD=NY^zyB3lKWnmD^f}e*| ziAs@-*D(sOX`OC7kD3?;lY;jxkB3uZWTvv7{HB+;E|{iDq;o%nge$7L#e|W%H!Sj- z#CET#z|JiW^5wRpUgMNc-7_{{FdE=m8F(KII?lVd_gcuLJYt9H=p0kfvUAWf3zt-AbM^czzy9-0;cXV6`m~0J{i9zia%yP~vgMYv{sODXRl7pHvFvv0+p^=D zo4fq!j&|8n3m6u@PBkeJJkRtwYjQ`&jwVUFSU}HQt)wpGT=x8;={&$GCJ8`gu-->~ z2XDX3x7_4fZ9#|CtOqu8EZujd(7M>43}OX{i}Pp|#gb#7{^+L1L~bF2IT;po><`AV zMkk)n+=}888c98`YTFwCU!{`In;3gZwve7G8i6f02yo<#82H2aCb$I*6l62C-}4LV z71m5W?9_QAo0?60C0R&ZL7qY;0#D1)SR)j{Zqp{Ps23*vD0$l*_P^%C0tDW9Ke1fC zS@irb79e2vyH#FA@(JFtxG=ZC#Y4uf*e2|I6$eH=2fN*I&OlQojTJ2RQ+%pIx=d_= z4akH`ucIbN?m%{bmms;T(cbq%5Z|fydaVYXk$GKH{+$b5fugFC09X0WEpEwSJQAm~_UF!;c}VA+`5Mu?G2l4uDV$Vm7Y%|e%CX>!=; z!eqSP%bV+jNe#+i%{LeY4jN|=ruMgeo>I@}r zyH2#+{`E^bO>juvWz-ihnaS%ooT>7<0|K=&^sqqL=XfUE>?&g#5TqS{kpN%_xPnSk>nQ=C`4WA^0kt*`(;l2XHaa?Uw(=GUUr zX2aprwjTKa2A#F0ASM^xD(WTerR8R9Z!Jt=!^+%eHy+{%Iru6XF(W-QWHL$h_GDL5 z0@CI?KK~m7he#~NkQW)E398`y{zZ76DQGn`g?ch>6o{>oqpx&ojN ztB7kj7wu?;qzo`7Q32hKXvx`}hq8xD!T`nIcmSikS*N0^x74z~43yPV{Y&Mh=c$po z0{a+mV)Q4L*QEuNa~%D(R&-Ml5KMlD0m|ZW=jOzPlJQK=yE)PyyUaj(WZg6u*7UlI7r+YbVnzL3n{U&%V@Mt0#XQ{;^(-US}2jHP@I* zL2e==!hDpPO@Nz@f-SO|pZ#N1y_xUf6jxl1R-4Nc7R=+f!$?y}!XW@{tP|fkeO}PB zCK~-fPJLT`tUbyhR7h8*RSR@LU5e-Y0?yt}84V>bEn{nZgnJ4Who|g=su+*!Yg>I0 zhJp8S-SZ~$qcZUYO3Xbg7sxiLa;lo~&g&P$Zxc3DtbTps@_v~rzkTDA1qa6{t!IZ9 zSM-aPcxF?k)Qh~MTS-+pO(#+eN1IQeqTTgmsH$4At6(9OS0yPu4VwTnU7!_xyn@QaOH_+Uyt5(W;4rv%h0vm86->Qxs22NuIuij`{|u1Xdo`*W~B{ zpn;TJ#Gsxz!-A4SZML!T@5gW`DbEKwjj&b<75uG{LG@OL@#of{;TYN;F1}5t)Bfrq z?tUPyB_RbVe&V9z@Rv0fmDK6XmZ|9%-rOjME>{h%+Hx){OiE2zfj?|O2d1Dsas>%` zp$@nQgJVUbj1qYT_H;R*&aW=H0)i5+Xj zOFC?1V=J^Sw)!C*;#iZ|Tv7$i{$wZA6HhdwUZB_EIi*&{DUKRD6H;;_l8ChU(bSj^*k=$PBssE=Bu0Acx`%Q!p9&)4$4HW6aZ4r% zE$Na8_vi7CXU`3e@p>2SwDV~B92v2*USVy>@m_G!@zZOgU6)l(V_*#rI6B@TBPE?^K>abc9 z5C`Tp+ste5e!sxI^mRE0%VEpSLeu3#+yiaAkSo%CbwT(vY17DzUd_WsmLXu{`_p_n zRe5H`G&_xsUBV%8v3P1)A~7R+M$^EOBxiK+qG@(}v_~ zqJHSXc4&Dbe|Bvj-FFUqW@YZU(VDE|YjJsJ-pns>-rNrE+I5CUT$dC~6An(&o?LKx z2?O?Htz9vxmcahcKlv%cSi9(~$&W;tJHPs7fEhH?`5qNVQgCo9-9VWw>Br$(UHj); zqx=xiXsHqwL1Lk*yjIP*h0tiHhI^5ox1)Wi$~l zvo<8A_8iDgRWmN*C|1Zn?kLsy%Ty+TiS=BN@iRU@Uo!j+yp*?}m`N(m04<2E4=##H z>SLXgKXvP0WG-c~BWdIAS!q7J#4h1vc z*#D2h&N42FH+=UfC9UMrib!`Yu#^&tbR!+oxpb$bgmi;+g9}J^m&l5AcX#(0@b^FG zyg8pUZ#QOVcIJ8R=eobwHMN+!ouqpmcdMr12q4JNkVXQ5a4%CM7D**B(A$ z`@WcmEzBqMTwrd;Q->po38i#09*E7dO-jr|=uv-y@io8eg3K#gfLSM1nefq!l2IsFj}C)<#;_I!VF4 zgudRByM<((1E3O%n0a-HKdCVKzQr{bA94Sz0wHrX!89U~#l&0-yvzN!Cx~w57QB=)9kw4?9p|Ko{og~-(ZdYl88x4!X_=(Zd-@UM;m`# zJ;pf;Z!!>-!AO8C>KTcAdq+i3Q{%wN8S-DhQeaVyNOr&OVP^;k8Jy(hAwTUbMf7jM zI`JMdgQbJxeolW2%`D_c!y=&S0ug-ZY~&XL)*4O*hE|N6G67p7J^i&>+u|vSgagZV z77QfB+uGb-%h_#D-f%+Mp)bf-ob!-*rH!TDYvORe9r1cJqa(DgOAEBJORUEpkKFmS zLSiUZp!tk$9N1HEa>;qm`lWOKz&kh;3;4H4psg;7oOo2(qPcc`2j43yOY`$8LX7)A zN2k`A`L=n{WY;wmm#;Vw7+TrFqVJmQwnG7Z%zy4%a@-I1>laS1F%o{m%}#-ao$E0t zK*dZNpnZMDlQM|)vlKvS(w$}jnNn7)C*b%(z@1N6fP+^MBANGX!y&LbPj)J8B(#bs zO5J5?coJwwWq#1(0 z@-G)mh;mSnET%R@!E9*M#}!BUXV&M%%n)RNbuqYzxe7Al#n%Gvl_C;0TI zFwu!J6W8~~K4C?E$8ewMJ-zw!46?LDl5MEj*MO{7f@!z!&(i1xJb0KPQ4zr~2||wg zDKm_oAwpFor0WsFkD)~kkZYjGp&J&#$T6V}eX|50coCFLxKdy6Lk?)HVsY?IdF@Lq z?}wI^-E@CgVn+_>r=))Qf=WK?oJ_@(t!To7ihS){b53zr^v&y6znsd&z}JWb%1QT+ zcawkfHQEMLvEfPl&42qle2Vecy^MKoV4wZfe-`0qUajMM@~nXMPtk>AK4XK*OZ-?*|Ixn zN=)$t`rFw#u)%Q_4Z<1*k8I{QvWO88fpCd7PKM?`EhIl9wiX-suL=(4$2mW|LM!SP zR#VR;QysHB|N1{#fKpOreTfi<)6;#5KW13maWcv}R#tmtJEWn(=@af>fx4o~Tw7d{ z+{%~Xcv`bQ%dn$cJ-vTWStvgw^KG1L@$qrOv8$HvH@PPyX+y*FV26$3cjKzmT0U3ln=_KSyQ6TCkjG6ts@Ko1U*yJANEMIrl^XD9(t(v3una8< z6qV+NM`q=&b9w#5sL;PYv(spLaGcShv zL`~>N{+e4ENsV-&l- zgFK?AXjzwGh;(Xt+6vKky%Yve_;QP)8cn6~0DzO+suYhZ35e6+RoD4J032!9p3lF@C;!>&PWriUY^k!g1hxI)A3T{0!5Ch!Do zXk@x{^Zf^Pop43PBY3t}e0| zWp4nZW8$Erc|`>gKHX^M3@fE;SYGy*#fXHnw8BQ7B!FdhbA~FV8<$m#%sj1(luX6s z#T-n#Q&%do%=2H6(G9ar2zwma9_nRq@Cym#zl=-5zfSnl)uEn&&un{h+S@$hDVUwb zYyk5i9vS|=)w&n+#5Z&}cp)tHGj>p=_d0tIGEkkz{4x0W)w~|!M!!>W)gLg(mGqHi zk~JjN&!H}3Wv1{WzpYS4gZ01>`iOA;R+Fv8!F3Sn(*J?kky!@|8pcV=K^edkE>4fkI}`kUWyKma4M)KCjub%*aq_ zg3;rZX{zPEzIj(F(IfpuA{V-I^!*^gOnDjSelvJr5nwLEC6wHy&XbmnWPX;uV9(~S z8(x%`&M&Icf4FUFpS<;&vsBIf16&Jr^B<%LVd`|aU;kD&)6SJyb6g^8ZKSJ zWZ1R%?p<5oxCltuu}!{hPa-fbQ0d+3QIbig=<8qMqU9Wg1ZW8+nXp%D$O&5E#HF!m1z`;s|2-gJ4B08>o$RWqR4^1q?Gvhv|jb=6m|DE!yLFFrY`bk z69@7`~Y!4nMUqINS@op5Rb)s{~y5%e+Q9lqW{hezlskn>Cg;C zhQk)C4&%GAjj8BpDgYKan9ibyFm&hwm7%Kod5Dh9^N=sGZ2of}YCh`ypiFV$x5ZA7 z>Z5QT*p<=l+k^ovMdgd%^dHn1xzntg!p4E-Wz3(YcO9hx9{s5|;-B#KNSsScZekme zlXiOXW5Z+ZLW_9QG5m*Ks(rW+*nTBnq}&07eD&dPItHSxM(0cU*`<&-cKp^QBp{W2 zOVwkWh_~%R+2l`84Bf4Us;C1znGRM8us#Ax)d81T@vb`WQ2S%7D_Y3QjKir=8yc26 zX6x_T*KixDdhAXvm>YBLy{rXe6%i`uZvD5GG=dF+I24cgO1+Q68M4=E|RJTGO z2o`s#L5R!V5?P&9aCmk1&>G6Ny9hc?Ms_Vq09t{=)HtWSUH4V8dYt0O)J&b_Ze#LM zcTvSvXmq`wc#?5U0Q$7HRnr*@8a`zv?oJUSQIgDBQ3Z+Xb zWV4fz5kcFn-a6y~yYh*~mDYrwo;f>71r=GZsm3lo0il`}=Z%%cO1v$hf0|Z2SU9F< z{q!6=oln)6EBWFEnpL(gt71%)!=ekx$YMb8kK$=>hL3r%keF)%8X;Jxrr(q+ow+0@ z98g4tpK^Fr6qiVn ztzyAGMECIT_~2pVC2x-U86xwRu*$tS>}*Lqrq0+_kumFES|IgGnV!z^S`Ny0EP@4c z;xk@23k$No{CITsT3n_JF^nk8xTAc?W4<%d@)f4$D|_mAcK$41gq|+^-1JYAq>oBP ziAhgYZ%W2ncsO3r5C=j`w6Jgt>jDvlU=OhOL2AXq+NPFtz*i)hHz(fJ9>~XmU#BAh zrW^XP=8GTGb~E?;cLe$D%PIZk>lR)U4)rmw@#(`GI^w=iOwB(`8@W#rghD%Pag_|H zfC_+t^xu#OigbPw0lUth@Cu3T=9rWGginV5n(t?+TL+p{l40?|Iqt`Dg1_luoJn=dv^k* zA0g7`+cu+^PO^F;NGci4<>I1@Zgq{^?61RlhNT|kE&&nX2&@e(w&*VAnycjrsjJ?D z6%zslZWfP#v3#d|-oxo`_V=J+zCBoM_mhB zQGS^$Y2IHF)5?UVj?YQ4CxzWk-2=`xqqWIT4DVH5Fp=zyu`3xty*@Gh_rZ&1v&}36 zZcEUKU0?Ols}{B>DzQ!%8A3YD&^RY$_iKhH`*{ETGK2)*O$=L5Q#gI>{(hFX{n&dp z9mZPz1vcNj>~amnDEN>#z(i+EoiA_u<)MH!7NNxHQD$0?8-;HscsG zi#B*piBVq4hwhfm^ST#iq3t-DL%TZ%UR__K{#`?WvjLV@iu`_cfiHWqbsZfDIO0<9 zy4F3K+`LnjS$xkti^XuA|Bjy3-Rj~9f|q;eC-{3j-J>PxkmOCa!2#3%9B*ZJ6*6y? zvCOQzk%mYF7z3QT`CFZs1VZa`8%MKd8Tyw#9Fbh3X{vV>`kE78iz4VL<+PXXl!KE` z(zB0&LnU3?dXKXfVC;!B!?6AK$9F^rg_q6}wtG`0GAQ#2H@c322?%Mzf6bo4gt$8u z%?jC)Jyjv!f+aE!A}MeHN8=-9#k+3q=@Pi@F(?1NwGaGwgo&y#&unc$-R*$au8R*? zxv4vpuF7JY7|76KYS>@Sv0Ulr`F9!6+mkMUBngroebhP?pXhe39@@4cw60t_?-*>D zaHa7UyoMHg2PfW+ey+f7ELHh;2PP()nYFPiJ|p{c?mc?eSHDp@m@A3~;=$w~D`Qrn zOKblu?;uLIM&e+cU9-RY1Oa5k>((ZJ!!dp-Fl%dj$y4-lxKMhB?8;qSmlyN3NZ7;4 z)C$Z7p}$XL$g{2{S@$d1Lm zw8e{yKxzx)9o#l) z(I*}Ex5gjc1UP54%KI**>|4$^(poMC&XYpEr^N2z8z&DFVLMOhOg&_KvAN6aMTJ^X zwGj)NtgM@kr(b2FuUU+87CJ;wk`gZ3Sj>vZ8LUvoH?kA5-gfnKHyV!9-eGsIu1Brh&qUlDjP$lEe54O|>9z7uBVUPOesD8RUEDVi1X)x#vKR&fA zM~?Dxwgv!~glwP@x;{4{_pU<&hWSW9YY#x*@2}p=!R)PDye*_XkOCM?uYP)a7LX~z z;Z{wKP0}pzO-yAnfYx%Fm38p=BGQ^~M?ZQwK%lt#BiVS3wbyMeWE`jk_}@Ta8!m;@ zNK6_@x2mhkKPBVl^y>-SQ@C-pbq`M^_q2>Q!Om{PvG~G+!f5B( z#v@a~jJW*Jr4f1HSm$E;gXPke<`^KH58y`wh#JL&WBV?$h{^rTX6Q^E@tyCHmCbIJ z-5v9}W#&L2_6WtY%ZfA3UuCZDH)4t`O{eYEnQwC~WUqi`NB<#)@-yU{-ThryPh~?` z8v+8(+(ULC23fhtIJH9j-sO_1<0nB+hwYlO!eUDSXu$;id=AIqt#G}{B5nRG)(KY2 zWqVH;cLb;N9sr+a^;gtuXOQ)$#w@utxz*vyjpx~b9ZgX^9w_5g*LYf z9s(pELcG2Q<8CHf)=1jbLlgV#Qes}fGlg&FZR~1iBIf}NIPag6Sjviov`fd7Ka&ev zvjfZc_3=-(#FKKhdr>12r+E)VJ#)I@9|pJW>-T48Eq6DRFm>)X*bHq<&CuMIL6)%T4Eut6eD|bCWOGNAfobK@AJ`J@7vL@mY=R#$}Q*5h6)m( z>Vt&nx5LQ8V>6Pg-rd@=giQT;!Gps0Cn(59pF=T9H6E`l0tz81lT;d{cU}e`2b1t} z%P#X&%{D8{%4~8yVVOwiQgDqE#;!y_HKwOtIdeO9SmvcEtZ($K9+{e0borqG$Re&I zg0(xLm)0@6$<*VdCVytusL9)f?+!=;WY<_zIv&QgR?G!Q4D9vu_6VT;{@TXfGiGT%-_o@l;fknwqfeG%!z&wx?W%`>eW0Ob=in|?Go@;FznB66X|_e8 zUn>8}-UR3tIYxl)O666LZDHHqN*Tk(DFnt`;)MR=+RlxsP#OmGEeAJ-r3%jJT& zqy|cu%U%{4OTx&!uriSB9Pq9AVt7icOOH)VBB=5B=r<@g{ zCaPZu1M6tQO{G3-I_V@&BTs2ISl5|I*_!GBn$FH@Ppy`3nIr@MC#Noz0Xj-xMoGvh z=H3V|yIiX;uk9@OK8#R(`%GIH-)F;eA6h>rFv}||X;++^nbw4Q`80j{bAz4xvUJ3B zDiEfchc`Ym93K_)SZTImvOSdMVbZ*vyb;ct*L=F<&X5d9F6{t2=vSasxJ~M=u>Lgn zdV32IE(+T%?;LV(0h{za#T6j_?r;Kgg?@SAS*L(om=Z%Tvu?w}ytn6wCC6{wWOpy( z^;d|4#+9CqEIn5lviaFlme)^#MfA>>n$K%}63^$Ylh6L49M=*>dvNo8BXPoOqJtRA#*NVa_PTPfkln zj-{~S*tKuiW0Y%2iOYyjk2z_Lv~dS$Zw<2Jb|(#OIhNIx0$o~M3T>FRZ__1;;a3U4 z(}n~)^goJnrs#Z3$#A$L1j$^$_%*jb}TkXS&+uU^%q(PMJj++4?3ZO^=nV zhNW|A*T@1np~N~-M<>f#V)#+@$T})Z^?lug|I}v_9LK_t9Yo>?UZd;c)hW1$>1P|% zLK405U1v<^owRT5D9DQF6U{-SDKD(%rs9v?h1hnGlLGVkDLvp-KVo9dQIYr!o5bMQFjXb}4)l$F`3}dEze{Zg= zG5Ujs2VQ@8DFxv3GipaY)DqQT$0OvMoT`Z^8TRm&gK20uZw1hmc24F9TcNQ6yG6-}D6V15FXV_RcS!m-iQUf4N z6duN<=5o!#O$IKAK{TBWAIwfl{4KBb0+ekJ?w*rm9|Nl zO!uyKjVH+@DS9&URZ)>A$iL|_j?jVE9SABotms?lGT^;w$q8Tn-31@QJFn$LQ z@7<8+M^Dbv`}D!(yM^EE9B-NA(bmN5n`wGU3L7%kvc7_e14lL8+A}SCJFRyrK|{jb z)Uk}O?XdpnJ+ALqnnS7d)*sKb z>&IS^(X~^UIVyC^6fJIK@3!rimsbVQCu*>|(S?@rcq^PaQ`BYWHD>;VEw43{UmcD3 zmwny6+c_vbw+0HYS@I?c&Hb>*`O9dA)ItQguC?*IOE1$eDT-ro&wL_48q0`OJhY zzIQO6Qe)>FRWl_Hy!eu&{Lzi66v%c_iKpmLdXdWk91?^YC#dbYV^BuxJPm2!(QQfg z)B2ceJYMZ@xFWJQa{`D;yCx-AWbx&i@~T=^HqCFZ+)?*$?_@~Jbo9BB&pe=C4)>nw zq0ZtzLk7g$SerPbQ_F$m?|R<+^fWP>P2)l)2@d^|tKYZgC}*-rRN*Rb3k_zpfsxsu zL^Kt1m|NVz z?c^NIy-8eLLJ%%R)oQ#WO4=RPwD?k|RYh9#iraGIb@D0mTEuvc=eYK+AYe4FnbNGE zbKO+Bip$de8oxfN$yT?vQkyeNAfe#H&*X2&rB1eu%Y-SHuUsYT)v5F_w;y}~@|a}x zpx`IiUpqVoHbO93jzD*R4t`o>l|>yH4gM_%FY>gS#&O=`V3!CoCP{^t@^o7^KPX;A zfZ~-z_MmvVU$0@@KZnU08F&~?R2+yp2whVdD{lDrWw^S8jqSCmT$Bg$bw^|27ugkx}u0 z)#uB4iLhk5Fs32mQRXf~90F%%UQi7dc&6mP^bCZACLncS##tE}tk3JHrk|(){B#E~ zf8y6HZP2~qCD>y31eVBuU%GI_^^=f{0(IGTT)T^Yu+3%uj~}Obq%7x)$Fv^cU5Tf8 zGvZw-02uT9uii{}+u|>sRJF4*P4s_J>A*WGTOGpM*j2;)p=kDO)>Py=I~}f(=|V@f zph0t*uTc-j>SN{?#0Wq=d1l|>>^fxIBx`zFROEB}UBBX+v_Qt({%?OTA4wZyJgQ|% z9m{tAg-q2BI%N8^tFt3V*zeuX$gyZoF&I{{VhIc%K6Ln~P;kPO$k++q&mxi+M zpJPDzRQayR1Jur7)6L42kDFDhtrtI z&LgnBmKo7h?q0h&irt)k+4{vcQQxYi`+GF{Es{rbFyji8 zo$Z19X;qgtj_E4_gB<<)^|vRoTyRl+lC~_+Y$y0oXlO`wMC1|k&~Ei9{+v9fd;xG6 z@ueFgS;X@n5Bmi+A2Ykn|D7O#FoN{|PmKTH@BV*W01wr?x5(KN19pJ&u+m3F XFkdIY*y9X%+^wXztXSDQJ-`12_ZZJD literal 0 HcmV?d00001 diff --git a/mkdocs/site/assets/images/screenshots/getting-started/upgrade-02-update-available.png b/mkdocs/site/assets/images/screenshots/getting-started/upgrade-02-update-available.png new file mode 100644 index 0000000000000000000000000000000000000000..251a753c5eb310a403ad4613712560cf4ac08dac GIT binary patch literal 115192 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 z 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

h>_@ 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

mE_;ewi`TBR#l06Kk!A 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 W!d>m?7sk1X}UH5 literal 0 HcmV?d00001 diff --git a/mkdocs/site/assets/images/screenshots/getting-started/upgrade-04-success-result.png b/mkdocs/site/assets/images/screenshots/getting-started/upgrade-04-success-result.png new file mode 100644 index 0000000000000000000000000000000000000000..617d0a132ed1c22a2e3639f4b431da1ca504bbff GIT binary patch literal 180714 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

D;jh>mVl^pAT>6vj$0k7^L{RF^*KvS>H3)Z( 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

A8 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 literal 0 HcmV?d00001 diff --git a/mkdocs/site/assets/images/social/blog/2026/03/27/test-blog-post---version-7.png b/mkdocs/site/assets/images/social/blog/2026/03/27/test-blog-post---version-7.png new file mode 100644 index 0000000000000000000000000000000000000000..06d3f3f6103cdcaeb3c7af1818ff74dd07e9c5d5 GIT binary patch literal 75290 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

Ar3VS014|c<#jJOnZ_F)^{|<%Y7JvK-OmP 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 literal 0 HcmV?d00001 diff --git a/mkdocs/site/assets/images/social/test.png b/mkdocs/site/assets/images/social/test.png new file mode 100644 index 0000000000000000000000000000000000000000..47fa3e3ca17aaf4ad49f43e640368fb5f5a98103 GIT binary patch literal 62892 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 E53OMve*gdg literal 0 HcmV?d00001 diff --git a/mkdocs/site/assets/js/straw-poll-widget.js b/mkdocs/site/assets/js/straw-poll-widget.js new file mode 100644 index 00000000..a245d59d --- /dev/null +++ b/mkdocs/site/assets/js/straw-poll-widget.js @@ -0,0 +1,226 @@ +/** + * Straw Poll Widget Hydration for MkDocs + * + * Supports two modes: + * .straw-poll-inline — Full voting UI embedded in docs page + * .straw-poll-card — Preview card linking to the full poll lander + * + * Uses the lightweight /api/straw-polls/widget/:slug endpoint (cached). + * Follows the scheduling-poll.js hydration pattern. + */ +(function () { + 'use strict'; + + function getApiUrl() { + if (window.PAYMENT_API_URL) return window.PAYMENT_API_URL; + if (window.API_URL) return window.API_URL; + var host = window.location.hostname; + if (host !== 'localhost' && host.indexOf('.') !== -1) { + var parts = host.split('.'); + var base = parts.slice(-2).join('.'); + return window.location.protocol + '//api.' + base; + } + return 'http://localhost:4000'; + } + + function getAppUrl() { + if (window.APP_URL) return window.APP_URL; + var host = window.location.hostname; + if (host !== 'localhost' && host.indexOf('.') !== -1) { + var parts = host.split('.'); + var base = parts.slice(-2).join('.'); + return window.location.protocol + '//app.' + base; + } + return 'http://localhost:3000'; + } + + var COLORS = ['#1890ff', '#52c41a', '#faad14', '#ff4d4f', '#722ed1', '#13c2c2', '#eb2f96']; + var YNA_COLORS = { Yes: '#52c41a', No: '#ff4d4f', Abstain: '#8c8c8c' }; + + function tokenKey(slug) { + return 'straw_poll_voter_token_' + slug; + } + + // ===== Card Mode ===== + function renderCard(block, poll, appUrl) { + var html = '
'; + html += '
'; + html += (poll.type === 'YES_NO_ABSTAIN' ? 'Yes / No / Abstain' : 'Single Choice') + ' Poll
'; + html += '

' + poll.title + '

'; + html += '
' + poll.totalVotes + ' vote' + (poll.totalVotes !== 1 ? 's' : '') + '
'; + if (poll.status === 'ACTIVE') { + html += '
0; + + var html = '
'; + + // Title + html += '

' + poll.title + '

'; + html += '
'; + html += (poll.type === 'YES_NO_ABSTAIN' ? 'Yes / No / Abstain' : 'Single Choice'); + html += ' · ' + poll.totalVotes + ' vote' + (poll.totalVotes !== 1 ? 's' : '') + '
'; + + if (poll.status === 'ACTIVE' && !hasVoted) { + // Vote form + html += '
'; + poll.options.forEach(function (opt, i) { + var isYNA = poll.type === 'YES_NO_ABSTAIN'; + var color = isYNA ? (YNA_COLORS[opt.label] || COLORS[i]) : COLORS[i % COLORS.length]; + html += ''; + }); + html += ''; + html += ''; + html += '
'; + } + + // Results + if (showResults && (hasVoted || poll.status !== 'ACTIVE')) { + html += renderResultsHtml(poll); + } + + if (hasVoted && poll.status === 'ACTIVE') { + html += '
✓ You\'ve voted
'; + } + + html += '
'; + block.innerHTML = html; + + // Wire up vote form + if (poll.status === 'ACTIVE' && !hasVoted) { + wireVoteForm(block, poll, apiUrl, slug); + } + } + + function renderResultsHtml(poll) { + var html = '
'; + poll.options.forEach(function (opt, i) { + var pct = poll.totalVotes > 0 ? Math.round((opt.voteCount / poll.totalVotes) * 100) : 0; + var color = poll.type === 'YES_NO_ABSTAIN' ? (YNA_COLORS[opt.label] || COLORS[i]) : COLORS[i % COLORS.length]; + html += '
'; + html += '
'; + html += '' + opt.label + '' + opt.voteCount + ' (' + pct + '%)
'; + html += '
'; + html += '
'; + html += '
'; + }); + html += '
'; + return html; + } + + function wireVoteForm(block, poll, apiUrl, slug) { + var selectedId = null; + var buttons = block.querySelectorAll('.sp-opt-btn'); + var submitBtn = block.querySelector('#sp-submit-' + slug); + + buttons.forEach(function (btn) { + btn.addEventListener('click', function () { + selectedId = btn.getAttribute('data-option-id'); + buttons.forEach(function (b) { b.style.borderWidth = '2px'; b.style.fontWeight = 'normal'; }); + btn.style.borderWidth = '3px'; + btn.style.fontWeight = '600'; + submitBtn.disabled = false; + submitBtn.style.opacity = '1'; + }); + }); + + submitBtn.addEventListener('click', function () { + if (!selectedId) return; + submitBtn.disabled = true; + submitBtn.textContent = 'Submitting...'; + + var voterName = (block.querySelector('#sp-voter-name-' + slug) || {}).value || ''; + var body = { optionId: selectedId }; + if (voterName) body.voterName = voterName; + var storedToken = localStorage.getItem(tokenKey(slug)); + if (storedToken) body.voterToken = storedToken; + + fetch(apiUrl + '/api/straw-polls/public/' + encodeURIComponent(slug) + '/vote', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(body), + }) + .then(function (res) { return res.json(); }) + .then(function (data) { + if (data.voterToken) localStorage.setItem(tokenKey(slug), data.voterToken); + // Re-fetch and re-render with results + return fetch(apiUrl + '/api/straw-polls/widget/' + encodeURIComponent(slug)).then(function (r) { return r.json(); }); + }) + .then(function (updated) { + renderInline(block, updated, apiUrl); + }) + .catch(function () { + submitBtn.textContent = 'Error — try again'; + submitBtn.disabled = false; + submitBtn.style.opacity = '1'; + }); + }); + } + + // ===== Hydration ===== + function hydrateBlocks() { + var apiUrl = getApiUrl(); + var appUrl = getAppUrl(); + + // Inline embeds + document.querySelectorAll('.straw-poll-inline').forEach(function (block) { + if (block.getAttribute('data-hydrated') === 'true') return; + var slug = block.getAttribute('data-poll-slug'); + if (!slug) return; + block.setAttribute('data-hydrated', 'true'); + block.innerHTML = '
Loading poll...
'; + + fetch(apiUrl + '/api/straw-polls/widget/' + encodeURIComponent(slug)) + .then(function (res) { if (!res.ok) throw new Error(); return res.json(); }) + .then(function (poll) { renderInline(block, poll, apiUrl); }) + .catch(function () { + block.innerHTML = '
Poll unavailable
'; + }); + }); + + // Card links + document.querySelectorAll('.straw-poll-card').forEach(function (block) { + if (block.getAttribute('data-hydrated') === 'true') return; + var slug = block.getAttribute('data-poll-slug'); + if (!slug) return; + block.setAttribute('data-hydrated', 'true'); + block.innerHTML = '
Loading...
'; + + fetch(apiUrl + '/api/straw-polls/widget/' + encodeURIComponent(slug)) + .then(function (res) { if (!res.ok) throw new Error(); return res.json(); }) + .then(function (poll) { renderCard(block, poll, appUrl); }) + .catch(function () { + block.innerHTML = '
Poll unavailable
'; + }); + }); + } + + // Initial hydration + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', hydrateBlocks); + } else { + hydrateBlocks(); + } + + // Re-hydrate on MkDocs SPA navigation + if (typeof document$ !== 'undefined') { + document$.subscribe(function () { setTimeout(hydrateBlocks, 100); }); + } +})(); diff --git a/mkdocs/site/assets/repo-data/admin-changemaker.lite.json b/mkdocs/site/assets/repo-data/admin-changemaker.lite.json index 159085f7..46a51b57 100644 --- a/mkdocs/site/assets/repo-data/admin-changemaker.lite.json +++ b/mkdocs/site/assets/repo-data/admin-changemaker.lite.json @@ -7,10 +7,10 @@ "stars_count": 0, "forks_count": 0, "open_issues_count": 0, - "updated_at": "2026-03-23T15:48:06-06:00", + "updated_at": "2026-03-30T11:54:37-06:00", "created_at": "2025-05-28T14:54:59-06:00", "clone_url": "https://gitea.bnkops.com/admin/changemaker.lite.git", "ssh_url": "git@gitea.bnkops.com:admin/changemaker.lite.git", "default_branch": "main", - "last_build_update": "2026-03-23T15:48:06-06:00" + "last_build_update": "2026-03-30T11:54:37-06:00" } \ No newline at end of file diff --git a/mkdocs/site/assets/repo-data/anthropics-claude-code.json b/mkdocs/site/assets/repo-data/anthropics-claude-code.json index 86f4e3f6..e8b7b36f 100644 --- a/mkdocs/site/assets/repo-data/anthropics-claude-code.json +++ b/mkdocs/site/assets/repo-data/anthropics-claude-code.json @@ -4,13 +4,13 @@ "description": "Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.", "html_url": "https://github.com/anthropics/claude-code", "language": "Shell", - "stars_count": 81725, - "forks_count": 6816, - "open_issues_count": 7445, - "updated_at": "2026-03-23T23:45:06Z", + "stars_count": 88332, + "forks_count": 9745, + "open_issues_count": 8343, + "updated_at": "2026-03-31T15:50:05Z", "created_at": "2025-02-22T17:41:21Z", "clone_url": "https://github.com/anthropics/claude-code.git", "ssh_url": "git@github.com:anthropics/claude-code.git", "default_branch": "main", - "last_build_update": "2026-03-20T22:24:50Z" + "last_build_update": "2026-03-31T14:35:57Z" } \ No newline at end of file diff --git a/mkdocs/site/assets/repo-data/coder-code-server.json b/mkdocs/site/assets/repo-data/coder-code-server.json index 192a8e2c..2449031a 100644 --- a/mkdocs/site/assets/repo-data/coder-code-server.json +++ b/mkdocs/site/assets/repo-data/coder-code-server.json @@ -4,13 +4,13 @@ "description": "VS Code in the browser", "html_url": "https://github.com/coder/code-server", "language": "TypeScript", - "stars_count": 76802, - "forks_count": 6567, - "open_issues_count": 167, - "updated_at": "2026-03-23T23:30:09Z", + "stars_count": 76910, + "forks_count": 6575, + "open_issues_count": 172, + "updated_at": "2026-03-31T14:49:15Z", "created_at": "2019-02-27T16:50:41Z", "clone_url": "https://github.com/coder/code-server.git", "ssh_url": "git@github.com:coder/code-server.git", "default_branch": "main", - "last_build_update": "2026-03-23T18:50:37Z" + "last_build_update": "2026-03-31T00:00:24Z" } \ No newline at end of file diff --git a/mkdocs/site/assets/repo-data/gethomepage-homepage.json b/mkdocs/site/assets/repo-data/gethomepage-homepage.json index 46b3bc59..c05131aa 100644 --- a/mkdocs/site/assets/repo-data/gethomepage-homepage.json +++ b/mkdocs/site/assets/repo-data/gethomepage-homepage.json @@ -4,13 +4,13 @@ "description": "A highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations.", "html_url": "https://github.com/gethomepage/homepage", "language": "JavaScript", - "stars_count": 29108, - "forks_count": 1825, - "open_issues_count": 1, - "updated_at": "2026-03-23T22:44:02Z", + "stars_count": 29249, + "forks_count": 1833, + "open_issues_count": 0, + "updated_at": "2026-03-31T14:45:22Z", "created_at": "2022-08-24T07:29:42Z", "clone_url": "https://github.com/gethomepage/homepage.git", "ssh_url": "git@github.com:gethomepage/homepage.git", "default_branch": "dev", - "last_build_update": "2026-03-23T12:27:34Z" + "last_build_update": "2026-03-31T14:36:10Z" } \ No newline at end of file diff --git a/mkdocs/site/assets/repo-data/go-gitea-gitea.json b/mkdocs/site/assets/repo-data/go-gitea-gitea.json index 2a2d1493..f418fec9 100644 --- a/mkdocs/site/assets/repo-data/go-gitea-gitea.json +++ b/mkdocs/site/assets/repo-data/go-gitea-gitea.json @@ -4,13 +4,13 @@ "description": "Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD", "html_url": "https://github.com/go-gitea/gitea", "language": "Go", - "stars_count": 54439, - "forks_count": 6485, - "open_issues_count": 2870, - "updated_at": "2026-03-23T23:19:17Z", + "stars_count": 54629, + "forks_count": 6518, + "open_issues_count": 2866, + "updated_at": "2026-03-31T15:12:57Z", "created_at": "2016-11-01T02:13:26Z", "clone_url": "https://github.com/go-gitea/gitea.git", "ssh_url": "git@github.com:go-gitea/gitea.git", "default_branch": "main", - "last_build_update": "2026-03-23T23:20:24Z" + "last_build_update": "2026-03-31T15:40:43Z" } \ No newline at end of file diff --git a/mkdocs/site/assets/repo-data/knadh-listmonk.json b/mkdocs/site/assets/repo-data/knadh-listmonk.json index 4381eade..9dedf154 100644 --- a/mkdocs/site/assets/repo-data/knadh-listmonk.json +++ b/mkdocs/site/assets/repo-data/knadh-listmonk.json @@ -4,13 +4,13 @@ "description": "High performance, self-hosted, newsletter and mailing list manager with a modern dashboard. Single binary app.", "html_url": "https://github.com/knadh/listmonk", "language": "Go", - "stars_count": 19329, - "forks_count": 1958, - "open_issues_count": 105, - "updated_at": "2026-03-23T23:36:16Z", + "stars_count": 19396, + "forks_count": 1977, + "open_issues_count": 91, + "updated_at": "2026-03-31T14:23:10Z", "created_at": "2019-06-26T05:08:39Z", "clone_url": "https://github.com/knadh/listmonk.git", "ssh_url": "git@github.com:knadh/listmonk.git", "default_branch": "master", - "last_build_update": "2026-03-23T11:44:19Z" + "last_build_update": "2026-03-31T05:18:48Z" } \ No newline at end of file diff --git a/mkdocs/site/assets/repo-data/lyqht-mini-qr.json b/mkdocs/site/assets/repo-data/lyqht-mini-qr.json index c67a8a41..211c1560 100644 --- a/mkdocs/site/assets/repo-data/lyqht-mini-qr.json +++ b/mkdocs/site/assets/repo-data/lyqht-mini-qr.json @@ -4,13 +4,13 @@ "description": "Create & scan cute qr codes easily \ud83d\udc7e", "html_url": "https://github.com/lyqht/mini-qr", "language": "Vue", - "stars_count": 1928, - "forks_count": 243, - "open_issues_count": 20, - "updated_at": "2026-03-23T14:42:50Z", + "stars_count": 1938, + "forks_count": 245, + "open_issues_count": 23, + "updated_at": "2026-03-31T12:32:17Z", "created_at": "2023-04-21T14:20:14Z", "clone_url": "https://github.com/lyqht/mini-qr.git", "ssh_url": "git@github.com:lyqht/mini-qr.git", "default_branch": "main", - "last_build_update": "2026-03-13T12:48:04Z" + "last_build_update": "2026-03-31T12:43:07Z" } \ No newline at end of file diff --git a/mkdocs/site/assets/repo-data/n8n-io-n8n.json b/mkdocs/site/assets/repo-data/n8n-io-n8n.json index d57c7a2f..a83a8a25 100644 --- a/mkdocs/site/assets/repo-data/n8n-io-n8n.json +++ b/mkdocs/site/assets/repo-data/n8n-io-n8n.json @@ -4,13 +4,13 @@ "description": "Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.", "html_url": "https://github.com/n8n-io/n8n", "language": "TypeScript", - "stars_count": 180706, - "forks_count": 56089, - "open_issues_count": 1433, - "updated_at": "2026-03-23T23:47:25Z", + "stars_count": 181869, + "forks_count": 56348, + "open_issues_count": 1447, + "updated_at": "2026-03-31T15:46:32Z", "created_at": "2019-06-22T09:24:21Z", "clone_url": "https://github.com/n8n-io/n8n.git", "ssh_url": "git@github.com:n8n-io/n8n.git", "default_branch": "master", - "last_build_update": "2026-03-23T22:55:38Z" + "last_build_update": "2026-03-31T15:47:22Z" } \ No newline at end of file diff --git a/mkdocs/site/assets/repo-data/nocodb-nocodb.json b/mkdocs/site/assets/repo-data/nocodb-nocodb.json index 9072cbd1..27c13a76 100644 --- a/mkdocs/site/assets/repo-data/nocodb-nocodb.json +++ b/mkdocs/site/assets/repo-data/nocodb-nocodb.json @@ -4,13 +4,13 @@ "description": "\ud83d\udd25 \ud83d\udd25 \ud83d\udd25 A Free & Self-hostable Airtable Alternative", "html_url": "https://github.com/nocodb/nocodb", "language": "TypeScript", - "stars_count": 62544, - "forks_count": 4679, - "open_issues_count": 647, - "updated_at": "2026-03-23T22:41:15Z", + "stars_count": 62566, + "forks_count": 4703, + "open_issues_count": 665, + "updated_at": "2026-03-31T15:24:55Z", "created_at": "2017-10-29T18:51:48Z", "clone_url": "https://github.com/nocodb/nocodb.git", "ssh_url": "git@github.com:nocodb/nocodb.git", "default_branch": "develop", - "last_build_update": "2026-03-23T19:39:55Z" + "last_build_update": "2026-03-31T15:24:48Z" } \ No newline at end of file diff --git a/mkdocs/site/assets/repo-data/ollama-ollama.json b/mkdocs/site/assets/repo-data/ollama-ollama.json index b042dc06..52c9fd44 100644 --- a/mkdocs/site/assets/repo-data/ollama-ollama.json +++ b/mkdocs/site/assets/repo-data/ollama-ollama.json @@ -4,13 +4,13 @@ "description": "Get up and running with Kimi-K2.5, GLM-5, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other models.", "html_url": "https://github.com/ollama/ollama", "language": "Go", - "stars_count": 165968, - "forks_count": 15121, - "open_issues_count": 2708, - "updated_at": "2026-03-23T23:47:27Z", + "stars_count": 166587, + "forks_count": 15255, + "open_issues_count": 2778, + "updated_at": "2026-03-31T15:34:55Z", "created_at": "2023-06-26T19:39:32Z", "clone_url": "https://github.com/ollama/ollama.git", "ssh_url": "git@github.com:ollama/ollama.git", "default_branch": "main", - "last_build_update": "2026-03-23T23:31:24Z" + "last_build_update": "2026-03-31T15:11:36Z" } \ No newline at end of file diff --git a/mkdocs/site/assets/repo-data/squidfunk-mkdocs-material.json b/mkdocs/site/assets/repo-data/squidfunk-mkdocs-material.json index 66f348b2..e947759c 100644 --- a/mkdocs/site/assets/repo-data/squidfunk-mkdocs-material.json +++ b/mkdocs/site/assets/repo-data/squidfunk-mkdocs-material.json @@ -4,13 +4,13 @@ "description": "Documentation that simply works", "html_url": "https://github.com/squidfunk/mkdocs-material", "language": "Python", - "stars_count": 26370, - "forks_count": 4058, + "stars_count": 26430, + "forks_count": 4062, "open_issues_count": 1, - "updated_at": "2026-03-23T21:42:58Z", + "updated_at": "2026-03-31T14:42:16Z", "created_at": "2016-01-28T22:09:23Z", "clone_url": "https://github.com/squidfunk/mkdocs-material.git", "ssh_url": "git@github.com:squidfunk/mkdocs-material.git", "default_branch": "master", - "last_build_update": "2026-03-22T15:57:47Z" + "last_build_update": "2026-03-27T10:24:49Z" } \ No newline at end of file diff --git a/mkdocs/site/blog/2026/03/22/introducing-changemaker-lite-v2/index.html b/mkdocs/site/blog/2026/03/22/introducing-changemaker-lite-v2/index.html index a17094ca..ef933160 100644 --- a/mkdocs/site/blog/2026/03/22/introducing-changemaker-lite-v2/index.html +++ b/mkdocs/site/blog/2026/03/22/introducing-changemaker-lite-v2/index.html @@ -17,6 +17,8 @@ + + @@ -1432,6 +1434,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + @@ -1704,7 +1708,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { -
+ @@ -1713,7 +1717,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -1752,7 +1756,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output {

Changemaker Lite costs roughly the price of a VPS — often under $50/month for the full stack. But the real value isn't cost savings. It's control. No vendor can cut off your access. No acquisition can change your terms.

Read more in our Philosophy page.

Get Started

-
curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/v2/scripts/install.sh | bash
+
curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/main/scripts/install.sh | bash
 

Or follow the Getting Started guide for a walkthrough.

What's Next

@@ -1803,6 +1807,30 @@ body.cm-search-active .md-header--cm-hidden .md-search__output {
+ + + + +
Start services
docker compose up -d
 docker compose --profile monitoring up -d
@@ -5080,6 +5087,8 @@ Then restart the API: docker compose restart api

+ + diff --git a/mkdocs/site/docs/getting-started/features/index.html b/mkdocs/site/docs/getting-started/features/index.html index 195628cc..d23d7ae5 100644 --- a/mkdocs/site/docs/getting-started/features/index.html +++ b/mkdocs/site/docs/getting-started/features/index.html @@ -2533,7 +2533,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2542,7 +2542,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2974,6 +2974,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/docs/getting-started/first-steps/index.html b/mkdocs/site/docs/getting-started/first-steps/index.html index 6ff947cc..855e3792 100644 --- a/mkdocs/site/docs/getting-started/first-steps/index.html +++ b/mkdocs/site/docs/getting-started/first-steps/index.html @@ -2584,7 +2584,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2593,7 +2593,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2878,6 +2878,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/docs/getting-started/index.html b/mkdocs/site/docs/getting-started/index.html index b1b21ecb..ddacdd8e 100644 --- a/mkdocs/site/docs/getting-started/index.html +++ b/mkdocs/site/docs/getting-started/index.html @@ -2423,7 +2423,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2432,7 +2432,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2452,14 +2452,13 @@ body.cm-search-active .md-header--cm-hidden .md-search__output {

Quick Install (Pre-built Images)

The fastest way to deploy — no source code, no compilation:

-
curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/v2/scripts/install.sh | bash
+
curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/main/scripts/install.sh | bash
 

This downloads a lightweight release package (~2 MB), runs the configuration wizard, and pulls pre-built Docker images. First startup takes ~2 minutes. See Installation for details.

Quick Start (From Source)

For development or customization, clone the full repository:

git clone https://gitea.bnkops.com/admin/changemaker.lite
 cd changemaker.lite
-git checkout v2
 
bash config.sh
 
@@ -2819,6 +2818,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/docs/getting-started/installation/index.html b/mkdocs/site/docs/getting-started/installation/index.html index 6747065e..631258a8 100644 --- a/mkdocs/site/docs/getting-started/installation/index.html +++ b/mkdocs/site/docs/getting-started/installation/index.html @@ -3067,7 +3067,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -3076,7 +3076,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -3099,7 +3099,6 @@ body.cm-search-active .md-header--cm-hidden .md-search__output {

Clone the repository:

git clone https://gitea.bnkops.com/admin/changemaker.lite
 cd changemaker.lite
-git checkout v2
 

Run the configuration wizard:

bash config.sh
@@ -3116,7 +3115,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output {
 

Pre-built Image Installation

For production deployments, you can skip cloning the source repository entirely. Pre-built Docker images are pulled from the Gitea container registry.

One-Line Install

-
curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/v2/scripts/install.sh | bash
+
curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/main/scripts/install.sh | bash
 

This script:

    @@ -3816,6 +3815,8 @@ locally without Docker:

    + + diff --git a/mkdocs/site/docs/getting-started/services/index.html b/mkdocs/site/docs/getting-started/services/index.html index 7ed429b5..1a13a7a3 100644 --- a/mkdocs/site/docs/getting-started/services/index.html +++ b/mkdocs/site/docs/getting-started/services/index.html @@ -2757,7 +2757,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2766,7 +2766,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -3565,6 +3565,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/docs/getting-started/upgrades/index.html b/mkdocs/site/docs/getting-started/upgrades/index.html index fa291a87..ba5d9cb7 100644 --- a/mkdocs/site/docs/getting-started/upgrades/index.html +++ b/mkdocs/site/docs/getting-started/upgrades/index.html @@ -1643,6 +1643,17 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + +
  1. + + + + Upgrade Results + + + +
  2. @@ -2660,6 +2671,17 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + +
  3. + + + + Upgrade Results + + + +
  4. @@ -3008,7 +3030,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -3017,7 +3039,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -3062,6 +3084,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output {
  5. Click the System tab
  6. Click Check for Updates
+

The System tab shows your current version, last commit message, and auto-upgrade settings:

+

System tab initial state

The system fetches from the git remote and shows:

  • Current commit hash and message
  • @@ -3069,6 +3093,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output {
  • Number of commits behind
  • Changelog of incoming changes
+

When updates are available, the panel highlights how many commits are behind and lists the incoming changes:

+

Update available notification

Starting an Upgrade

  1. Review the changelog to understand what's changing
  2. @@ -3082,7 +3108,15 @@ body.cm-search-active .md-header--cm-hidden .md-search__output {
  3. Monitor the 6-phase progress indicator
+

Confirm System Upgrade dialog

The GUI polls for progress updates and displays the current phase, percentage, and status message in real time.

+

Upgrade Results

+

After the upgrade completes, the System tab shows the result — including the new version, health check status, and any warnings:

+

Upgrade success result

+
+

Tip

+

If health checks show warnings immediately after an upgrade, wait 1-2 minutes for services to fully start before investigating.

+

The 6 Upgrade Phases

Both the GUI and CLI methods execute the same 6-phase process:

@@ -3581,6 +3615,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/docs/index.html b/mkdocs/site/docs/index.html index e392ef9e..ef0ddef6 100644 --- a/mkdocs/site/docs/index.html +++ b/mkdocs/site/docs/index.html @@ -2137,7 +2137,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2146,7 +2146,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2517,6 +2517,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/docs/phil/index.html b/mkdocs/site/docs/phil/index.html index 4d5479a5..a73b26ec 100644 --- a/mkdocs/site/docs/phil/index.html +++ b/mkdocs/site/docs/phil/index.html @@ -2325,7 +2325,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2334,7 +2334,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2662,6 +2662,8 @@ Self-hosted doesn't have to mean self-excluding. Changemaker Lite is designed fo + + diff --git a/mkdocs/site/docs/services/index.html b/mkdocs/site/docs/services/index.html index 90ed70f1..be57f339 100644 --- a/mkdocs/site/docs/services/index.html +++ b/mkdocs/site/docs/services/index.html @@ -2240,7 +2240,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2249,7 +2249,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2921,6 +2921,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/docs/troubleshooting/index.html b/mkdocs/site/docs/troubleshooting/index.html index 03ccb446..17e8869e 100644 --- a/mkdocs/site/docs/troubleshooting/index.html +++ b/mkdocs/site/docs/troubleshooting/index.html @@ -2281,7 +2281,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2290,7 +2290,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2673,6 +2673,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/docs/user-guide/campaigns/index.html b/mkdocs/site/docs/user-guide/campaigns/index.html index 86ef886f..5a357910 100644 --- a/mkdocs/site/docs/user-guide/campaigns/index.html +++ b/mkdocs/site/docs/user-guide/campaigns/index.html @@ -2549,7 +2549,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2558,7 +2558,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2804,6 +2804,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/docs/user-guide/donations/index.html b/mkdocs/site/docs/user-guide/donations/index.html index acaa0d88..ac57f65e 100644 --- a/mkdocs/site/docs/user-guide/donations/index.html +++ b/mkdocs/site/docs/user-guide/donations/index.html @@ -2528,7 +2528,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2537,7 +2537,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2783,6 +2783,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/docs/user-guide/events/index.html b/mkdocs/site/docs/user-guide/events/index.html index bf4fa2ac..6db21b92 100644 --- a/mkdocs/site/docs/user-guide/events/index.html +++ b/mkdocs/site/docs/user-guide/events/index.html @@ -2542,7 +2542,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2551,7 +2551,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2799,6 +2799,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/docs/user-guide/gallery/index.html b/mkdocs/site/docs/user-guide/gallery/index.html index 2eb97411..48e8b18d 100644 --- a/mkdocs/site/docs/user-guide/gallery/index.html +++ b/mkdocs/site/docs/user-guide/gallery/index.html @@ -2549,7 +2549,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2558,7 +2558,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2808,6 +2808,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/docs/user-guide/index.html b/mkdocs/site/docs/user-guide/index.html index 9ce65a96..a1878d12 100644 --- a/mkdocs/site/docs/user-guide/index.html +++ b/mkdocs/site/docs/user-guide/index.html @@ -2407,7 +2407,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2416,7 +2416,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2684,6 +2684,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/docs/user-guide/map/index.html b/mkdocs/site/docs/user-guide/map/index.html index d8359e4d..cae765fe 100644 --- a/mkdocs/site/docs/user-guide/map/index.html +++ b/mkdocs/site/docs/user-guide/map/index.html @@ -2498,7 +2498,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2507,7 +2507,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2742,6 +2742,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/docs/user-guide/profile/index.html b/mkdocs/site/docs/user-guide/profile/index.html index 461ba137..5fe51161 100644 --- a/mkdocs/site/docs/user-guide/profile/index.html +++ b/mkdocs/site/docs/user-guide/profile/index.html @@ -2572,7 +2572,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2581,7 +2581,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2836,6 +2836,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/docs/user-guide/shifts/index.html b/mkdocs/site/docs/user-guide/shifts/index.html index c6066469..9d536f72 100644 --- a/mkdocs/site/docs/user-guide/shifts/index.html +++ b/mkdocs/site/docs/user-guide/shifts/index.html @@ -2542,7 +2542,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2551,7 +2551,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2805,6 +2805,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/docs/user-guide/shop/index.html b/mkdocs/site/docs/user-guide/shop/index.html index f06947f3..e835d0ba 100644 --- a/mkdocs/site/docs/user-guide/shop/index.html +++ b/mkdocs/site/docs/user-guide/shop/index.html @@ -2528,7 +2528,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2537,7 +2537,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2781,6 +2781,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/docs/volunteer/achievements/index.html b/mkdocs/site/docs/volunteer/achievements/index.html index c142a3a2..37412d4a 100644 --- a/mkdocs/site/docs/volunteer/achievements/index.html +++ b/mkdocs/site/docs/volunteer/achievements/index.html @@ -2566,7 +2566,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2575,7 +2575,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2949,6 +2949,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/docs/volunteer/canvassing/index.html b/mkdocs/site/docs/volunteer/canvassing/index.html index 67cfc69a..1841ed53 100644 --- a/mkdocs/site/docs/volunteer/canvassing/index.html +++ b/mkdocs/site/docs/volunteer/canvassing/index.html @@ -2477,7 +2477,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2486,7 +2486,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2751,6 +2751,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/docs/volunteer/index.html b/mkdocs/site/docs/volunteer/index.html index 3599bdb2..c4dcd736 100644 --- a/mkdocs/site/docs/volunteer/index.html +++ b/mkdocs/site/docs/volunteer/index.html @@ -2351,7 +2351,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2360,7 +2360,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2617,6 +2617,8 @@ A: Visit the public shifts page at /shifts.

+ + diff --git a/mkdocs/site/docs/volunteer/shifts/index.html b/mkdocs/site/docs/volunteer/shifts/index.html index c708f94d..bd1ec480 100644 --- a/mkdocs/site/docs/volunteer/shifts/index.html +++ b/mkdocs/site/docs/volunteer/shifts/index.html @@ -2392,7 +2392,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2401,7 +2401,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2645,6 +2645,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/docs/volunteer/social/index.html b/mkdocs/site/docs/volunteer/social/index.html index a1e636e8..1a46701a 100644 --- a/mkdocs/site/docs/volunteer/social/index.html +++ b/mkdocs/site/docs/volunteer/social/index.html @@ -2532,7 +2532,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2541,7 +2541,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -2842,6 +2842,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/hooks/__pycache__/env_config_hook.cpython-311.pyc b/mkdocs/site/hooks/__pycache__/env_config_hook.cpython-311.pyc index 0d11b807930532c9227ec8fa888a1db087ba305f..c6df05c62f08c5445b738a1d0e549611c84a3efb 100644 GIT binary patch delta 20 acmaEE`P`CwIWI340}z<(IJJ@cjtl@r83us> delta 20 acmaEE`P`CwIWI340}z-`Ik1uYjtl@qBnDOh diff --git a/mkdocs/site/hooks/__pycache__/repo_widget_hook.cpython-311.pyc b/mkdocs/site/hooks/__pycache__/repo_widget_hook.cpython-311.pyc index 9bf58cc1f79d2acd6d38c966a77ea59c55754917..c610655e299bf037757309d860f1315df16fb7f8 100644 GIT binary patch delta 20 acmX?LcEF5#IWI340}z<(IJJ@6R2l$1lm&$V delta 20 acmX?LcEF5#IWI340}z-`Ik1u2R2l$0p9NX~ diff --git a/mkdocs/site/hooks/__pycache__/wikilinks_hook.cpython-311.pyc b/mkdocs/site/hooks/__pycache__/wikilinks_hook.cpython-311.pyc index 3054014a9ae2145eb55780545d2b93b717a2ff76..88bec18338d126d5e0d169808011476867afb1dd 100644 GIT binary patch delta 20 acmX@*e9D=7IWI340}z<(IJJ>`zajuZ{suz; delta 20 acmX@*e9D=7IWI340}z-`Ik1s?zajuZ2?iJd diff --git a/mkdocs/site/includes/abbreviations/index.html b/mkdocs/site/includes/abbreviations/index.html index 7d91e953..aaef179a 100644 --- a/mkdocs/site/includes/abbreviations/index.html +++ b/mkdocs/site/includes/abbreviations/index.html @@ -1382,7 +1382,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -1391,7 +1391,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -1573,6 +1573,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/index.html b/mkdocs/site/index.html index 4f77ba3c..c00fa490 100644 --- a/mkdocs/site/index.html +++ b/mkdocs/site/index.html @@ -92,6 +92,10 @@ /* ============================================ TYPOGRAPHY ============================================ */ + html { + overflow-x: hidden; + } + body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; color: var(--text-primary); @@ -482,7 +486,7 @@ flex-direction: column; align-items: center; justify-content: flex-start; - padding: calc(var(--header-height) + 3rem) 2rem 0; + padding: calc(var(--header-height) + 2rem) 2rem 0; overflow: hidden; } @@ -510,6 +514,22 @@ background: radial-gradient(circle, rgba(111, 66, 193, 0.08) 0%, rgba(139, 92, 246, 0.03) 40%, transparent 70%); } + [data-theme="light"] .showcase-card { + border-color: rgba(100, 116, 139, 0.2); + } + [data-theme="light"] .showcase-card.active { + box-shadow: 0 0 30px rgba(111, 66, 193, 0.08), 0 8px 32px rgba(0, 0, 0, 0.1); + border-color: rgba(111, 66, 193, 0.25); + } + [data-theme="light"] .hero-stats { + background: rgba(255, 255, 255, 0.9); + border-color: rgba(100, 116, 139, 0.15); + } + [data-theme="light"] .hero-pill { + background: rgba(111, 66, 193, 0.06); + border-color: rgba(111, 66, 193, 0.15); + } + .hero-root-svg { position: absolute; top: 65%; @@ -526,11 +546,38 @@ to { opacity: 1; } } + /* ---- Two-column hero grid (desktop) ---- */ .hero-content { position: relative; z-index: 1; - text-align: center; - max-width: 800px; + width: 100%; + max-width: 1400px; + display: grid; + grid-template-columns: minmax(380px, 1fr) minmax(0, 1.4fr); + grid-template-rows: auto auto; + gap: 0 2.5rem; + align-items: start; + } + + .hero-left { + text-align: left; + padding-top: 1.5rem; + } + + .hero-right { + display: flex; + align-items: flex-start; + justify-content: flex-end; + padding-top: 0.5rem; + } + .hero-right > div { + width: 100%; + } + + /* Spans full width below both columns */ + .hero-bottom { + grid-column: 1 / -1; + margin-top: 1.5rem; } .hero-badge { @@ -543,38 +590,388 @@ font-size: 0.8rem; font-weight: 600; letter-spacing: 0.02em; + margin-bottom: 1rem; + } + + .beta-pill { + display: inline-block; + padding: 0.35rem 1.1rem; + background: linear-gradient(135deg, #EC4899, #8B5CF6); + border: none; + border-radius: 100px; + color: #fff; + font-size: 0.78rem; + font-weight: 700; + letter-spacing: 0.04em; + cursor: pointer; + margin-bottom: 0.75rem; + box-shadow: 0 0 16px rgba(236, 72, 153, 0.4), 0 0 40px rgba(139, 92, 246, 0.2); + transition: transform 0.2s ease, box-shadow 0.2s ease; + animation: beta-pulse 3s ease-in-out infinite; + } + .beta-pill:hover { + transform: scale(1.06); + box-shadow: 0 0 22px rgba(236, 72, 153, 0.55), 0 0 50px rgba(139, 92, 246, 0.35); + } + @keyframes beta-pulse { + 0%, 100% { box-shadow: 0 0 16px rgba(236, 72, 153, 0.4), 0 0 40px rgba(139, 92, 246, 0.2); } + 50% { box-shadow: 0 0 24px rgba(236, 72, 153, 0.6), 0 0 55px rgba(139, 92, 246, 0.35); } + } + + .beta-modal-backdrop { + display: none; + position: fixed; + inset: 0; + z-index: 9999; + background: rgba(0, 0, 0, 0.6); + backdrop-filter: blur(4px); + -webkit-backdrop-filter: blur(4px); + align-items: center; + justify-content: center; + } + .beta-modal-backdrop.open { display: flex; } + .beta-modal { + background: var(--bg-surface); + border: 1px solid var(--myc-node-border); + border-radius: var(--radius-lg); + max-width: 440px; + width: 90%; + padding: 2.5rem 2rem 2rem; + text-align: center; + box-shadow: var(--shadow-lg), 0 0 60px rgba(139, 92, 246, 0.15); + position: relative; + animation: beta-modal-in 0.25s ease-out; + } + @keyframes beta-modal-in { + from { opacity: 0; transform: scale(0.92) translateY(12px); } + to { opacity: 1; transform: scale(1) translateY(0); } + } + .beta-modal-emoji { font-size: 2.5rem; margin-bottom: 1rem; } + .beta-modal h3 { + font-size: 1.25rem; + color: var(--text-primary); + margin-bottom: 0.75rem; + } + .beta-modal p { + color: var(--text-secondary); + font-size: 0.95rem; + line-height: 1.7; margin-bottom: 1.5rem; } + .beta-modal-close { + display: inline-block; + padding: 0.5rem 1.5rem; + background: linear-gradient(135deg, #8B5CF6, #6f42c1); + border: none; + border-radius: 100px; + color: #fff; + font-size: 0.85rem; + font-weight: 600; + cursor: pointer; + transition: transform 0.15s ease, box-shadow 0.15s ease; + } + .beta-modal-close:hover { + transform: scale(1.04); + box-shadow: 0 0 14px rgba(139, 92, 246, 0.4); + } .hero h1 { background: linear-gradient(135deg, var(--primary-light) 0%, #C084FC 50%, #F5A9B8 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; + margin-bottom: 0.5rem; + font-size: clamp(2.5rem, 5vw, 3.75rem); + } + + /* ---- Typewriter rotating line ---- */ + .hero-rotating-line { + font-size: clamp(1.15rem, 2.2vw, 1.5rem); + color: var(--text-secondary); margin-bottom: 1.25rem; + min-height: 2.2em; + line-height: 1.5; + } + .hero-rotating-line .tw-static { + color: var(--text-secondary); + } + .hero-rotating-line .tw-word { + color: var(--primary-light); + font-weight: 700; + border-right: 2px solid var(--primary-light); + padding-right: 2px; + animation: blink-cursor 0.75s step-end infinite; + } + @keyframes blink-cursor { + 50% { border-color: transparent; } } .hero-subtitle { color: var(--text-secondary); - font-size: clamp(1rem, 2vw, 1.2rem); - max-width: 640px; - margin: 0 auto 2rem; + font-size: clamp(0.95rem, 1.8vw, 1.1rem); + max-width: 540px; + margin: 0 0 1.5rem; line-height: 1.7; } .hero-cta { display: flex; - gap: 1rem; - justify-content: center; + gap: 0.75rem; flex-wrap: wrap; - margin-bottom: 2.5rem; + margin-bottom: 1.5rem; } - /* Search */ - .hero-search { + /* ---- Feature pills ---- */ + .hero-pills { + display: flex; + flex-wrap: wrap; + gap: 0.5rem; + margin-bottom: 1.5rem; + } + .hero-pill { + display: inline-flex; + align-items: center; + gap: 0.35rem; + padding: 0.3rem 0.75rem; + background: var(--myc-node-bg); + border: 1px solid var(--myc-node-border); + border-radius: 100px; + color: var(--text-secondary); + font-size: 0.72rem; + font-weight: 500; + letter-spacing: 0.01em; + opacity: 0; + transform: translateY(8px); + transition: opacity 0.4s ease, transform 0.4s ease, background 0.2s ease; + } + .hero-pill.visible { + opacity: 1; + transform: translateY(0); + } + .hero-pill:hover { + background: rgba(139, 92, 246, 0.15); + color: var(--primary-light); + text-decoration: none; + } + .hero-pill .pill-icon { + font-size: 0.82rem; + line-height: 1; + } + + /* ---- Feature showcase (right column) ---- */ + .hero-showcase { position: relative; - max-width: 520px; - margin: 0 auto 3rem; + width: 100%; + aspect-ratio: 16 / 9.5; + perspective: 1200px; + } + + .showcase-card { + position: absolute; + inset: 0; + border: 1px solid var(--border-color); + border-radius: var(--radius-lg); + display: flex; + flex-direction: column; + opacity: 0; + transform: rotateY(8deg) translateX(30px) scale(0.95); + transition: opacity 0.6s ease, transform 0.6s ease; + pointer-events: none; + overflow: hidden; + } + .showcase-card.active { + opacity: 1; + transform: rotateY(0deg) translateX(0) scale(1); + pointer-events: auto; + border-color: var(--myc-node-border); + box-shadow: 0 0 30px rgba(139, 92, 246, 0.12), var(--shadow-lg); + } + .showcase-card.exiting { + opacity: 0; + transform: rotateY(-8deg) translateX(-30px) scale(0.95); + } + + /* Screenshot image fills the card */ + .showcase-card-img { + width: 100%; + height: 100%; + object-fit: cover; + object-position: top left; + display: block; + } + + /* Caption overlay at bottom */ + .showcase-card-caption { + position: absolute; + bottom: 0; + left: 0; + right: 0; + padding: 2.5rem 1.25rem 1rem; + background: linear-gradient(to top, rgba(15, 23, 42, 0.95) 0%, rgba(15, 23, 42, 0.75) 50%, transparent 100%); + display: flex; + align-items: flex-end; + gap: 0.75rem; + } + [data-theme="light"] .showcase-card-caption { + background: linear-gradient(to top, rgba(255, 255, 255, 0.97) 0%, rgba(255, 255, 255, 0.8) 50%, transparent 100%); + } + .showcase-card-icon { + width: 36px; + height: 36px; + border-radius: 8px; + display: flex; + align-items: center; + justify-content: center; + font-size: 1.1rem; + flex-shrink: 0; + backdrop-filter: blur(4px); + -webkit-backdrop-filter: blur(4px); + } + .showcase-card-title { + font-size: 0.95rem; + font-weight: 700; + color: #F1F5F9; + line-height: 1.3; + } + [data-theme="light"] .showcase-card-title { + color: #0F172A; + } + .showcase-card-subtitle { + font-size: 0.72rem; + color: #94A3B8; + margin-top: 0.1rem; + } + [data-theme="light"] .showcase-card-subtitle { + color: #64748B; + } + + /* Showcase progress dots */ + .showcase-dots { + display: flex; + justify-content: center; + gap: 0.5rem; + margin-top: 0.75rem; + } + .showcase-dot { + width: 8px; + height: 8px; + border-radius: 50%; + background: var(--text-muted); + opacity: 0.3; + cursor: pointer; + transition: opacity 0.3s ease, transform 0.3s ease, background 0.3s ease; + } + .showcase-dot.active { + opacity: 1; + background: var(--primary-light); + transform: scale(1.3); + } + .showcase-dot:hover { + opacity: 0.7; + } + + /* ---- Particle canvas ---- */ + .hero-particles { + position: absolute; + inset: 0; + z-index: 0; + pointer-events: none; + } + + /* ---- Quick deploy terminal ---- */ + .hero-terminal { + margin: 0.75rem 0 0; + background: #0D1117; + border: 1px solid rgba(139, 92, 246, 0.2); + border-radius: var(--radius); + opacity: 0; + transform: translateY(8px); + animation: fadeSlideIn 0.6s ease 1.4s forwards; + } + @keyframes fadeSlideIn { + to { opacity: 1; transform: translateY(0); } + } + [data-theme="light"] .hero-terminal { + background: #1E293B; + } + .hero-terminal-bar { + display: flex; + align-items: center; + gap: 0.5rem; + padding: 0.5rem 0.85rem; + background: rgba(255, 255, 255, 0.04); + border-bottom: 1px solid rgba(255, 255, 255, 0.06); + border-radius: var(--radius) var(--radius) 0 0; + } + .hero-terminal-dot { + width: 8px; + height: 8px; + border-radius: 50%; + } + .hero-terminal-title { + font-size: 0.65rem; + color: #64748B; + font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace; + margin-left: auto; + } + .hero-terminal-body { + padding: 0.6rem 0.85rem; + display: flex; + align-items: center; + gap: 0.5rem; + } + .hero-terminal-prompt { + color: #34D399; + font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace; + font-size: 0.82rem; + font-weight: 600; + flex-shrink: 0; + user-select: none; + } + .hero-terminal-cmd { + color: #E2E8F0; + font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace; + font-size: 0.82rem; + white-space: nowrap; + overflow-x: auto; + overflow-y: hidden; + flex: 1; + min-width: 0; + scrollbar-width: none; + -ms-overflow-style: none; + } + .hero-terminal-cmd::-webkit-scrollbar { display: none; } + .hero-terminal-cmd .cmd-highlight { + color: var(--primary-light); + } + .hero-terminal-copy { + background: none; + border: 1px solid rgba(148, 163, 184, 0.2); + border-radius: 6px; + color: #94A3B8; + font-size: 0.7rem; + padding: 0.25rem 0.55rem; + cursor: pointer; + font-family: inherit; + transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease; + flex-shrink: 0; + display: flex; + align-items: center; + gap: 0.3rem; + } + .hero-terminal-copy:hover { + color: #E2E8F0; + border-color: rgba(148, 163, 184, 0.4); + background: rgba(255, 255, 255, 0.05); + } + .hero-terminal-copy.copied { + color: #34D399; + border-color: rgba(52, 211, 153, 0.3); + } + + /* Search (moved out of hero, kept for search functionality) */ + .hero-search { + display: none; } .search-input-wrap { @@ -699,8 +1096,14 @@ display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; - max-width: 640px; + max-width: 800px; margin: 0 auto; + padding: 1.25rem 2rem; + background: var(--bg-card); + border: 1px solid var(--border-color); + border-radius: var(--radius); + backdrop-filter: blur(8px); + -webkit-backdrop-filter: blur(8px); } .hero-stat { @@ -708,9 +1111,10 @@ } .hero-stat-value { - font-size: 1.5rem; + font-size: 1.6rem; font-weight: 800; color: var(--primary-light); + font-variant-numeric: tabular-nums; } .hero-stat-label { @@ -719,6 +1123,24 @@ margin-top: 0.25rem; } + .hero-trust { + text-align: center; + margin-top: 1rem; + color: var(--text-muted); + font-size: 0.78rem; + display: flex; + align-items: center; + justify-content: center; + gap: 0.5rem; + opacity: 0; + animation: fadeIn 1s ease 1.5s forwards; + } + .hero-trust svg { + width: 14px; + height: 14px; + color: var(--primary-light); + } + /* ============================================ PROBLEMS SECTION ============================================ */ @@ -1746,16 +2168,41 @@ @media (max-width: 768px) { .nav-links { display: none; } .nav-right .btn-primary { display: none; } + .nav-right .btn-demo { display: none; } .hamburger { display: block; } .logo-tagline { display: none; } .section { padding: 4rem 0; } - .hero { min-height: auto; padding-top: calc(var(--header-height) + 2rem); padding-bottom: 3rem; } + .hero { min-height: auto; padding-top: calc(var(--header-height) + 1.5rem); padding-bottom: 1.5rem; overflow-x: hidden; } .hero h1 { font-size: 2rem; } .hero-root-glow { width: 250px; height: 250px; top: 50%; bottom: auto; } .hero-root-svg { top: 50%; bottom: auto; transform: translate(-50%, -50%); width: 250px; height: 250px; } + .hero-content { + display: flex; + flex-direction: column; + max-width: 100%; + width: 100%; + overflow: hidden; + } + .hero-left { text-align: center; padding-top: 0; } + .hero-right { margin-top: 1.5rem; overflow: hidden; width: 100%; } + .hero-right > div { max-width: 100%; overflow: hidden; width: 100%; } + .hero-showcase { width: 100%; max-width: 100%; } + .hero-terminal { width: 100%; max-width: 100%; box-sizing: border-box; } + .hero-showcase { aspect-ratio: 16 / 10; } + .hero-cta { justify-content: center; } + .hero-pills { justify-content: center; } + .hero-terminal { max-width: 100%; overflow: hidden; } + .hero-terminal-body { padding: 0.5rem 0.7rem; gap: 0.4rem; } + .hero-terminal-prompt { font-size: 0.7rem; } + .hero-terminal-cmd { font-size: 0.65rem; } + .hero-terminal-copy { font-size: 0.62rem; padding: 0.2rem 0.4rem; } + .hero-terminal-copy .copy-label { display: none; } + .hero-rotating-line { text-align: center; } + .hero-subtitle { margin-left: auto; margin-right: auto; } + .hero-stats { grid-template-columns: repeat(2, 1fr); gap: 1rem; @@ -1798,6 +2245,8 @@ flex-direction: column; align-items: center; } + .hero-pills { gap: 0.4rem; } + .hero-pill { font-size: 0.68rem; padding: 0.25rem 0.6rem; } .cta-buttons { flex-direction: column; @@ -1818,7 +2267,15 @@ .hero { padding-left: 1rem; padding-right: 1rem; } .section { padding: 3rem 0; } .section-header { margin-bottom: 2.5rem; } - .hero-stats { grid-template-columns: repeat(2, 1fr); } + .hero-stats { grid-template-columns: repeat(2, 1fr); padding: 1rem; } + .hero-showcase { aspect-ratio: 16 / 11; } + .showcase-card-title { font-size: 0.85rem; } + .showcase-card-subtitle { font-size: 0.65rem; } + .showcase-card-caption { padding: 1.5rem 1rem 0.75rem; } + .hero-terminal-cmd { font-size: 0.58rem; } + .hero-terminal-prompt { font-size: 0.6rem; } + .hero-terminal-title { font-size: 0.55rem; } + .hero-terminal-dot { width: 6px; height: 6px; } .live-stats { grid-template-columns: 1fr; } } @@ -2115,72 +2572,175 @@ HERO ============================================ -->
+ + +
-
-
Self-Hosted Campaign Infrastructure
-

Grow Power.
Don't Rent It.

-

- Run your campaigns, canvassing, fundraising, team chat, media, and more — all on your own infrastructure. - No corporate surveillance. No foreign interference. No monthly ransoms. - A free* and open source toolkit built for growing political movements. -

-
- Explore the Demo - Schedule a Chat - Source Code + +
+ +
Self-Hosted Campaign Infrastructure
+

Grow Power.
Don't Rent It.

+ +
+ Your — on your own infrastructure. +
+ +

+ No corporate surveillance. No foreign interference. No monthly ransoms. + A free* and open source toolkit built for growing political movements. +

+ + + + + +
- -
+ +
+
+
🚧
+

Now in Beta

+

Changemaker Lite is under active development and breaking changes are still being pushed. A stable release is expected by June 2026.

+ +
+
+ @@ -2287,7 +2847,7 @@
-
+
📨
@@ -2376,7 +2936,7 @@
-
+
🗺
@@ -2461,7 +3021,7 @@
-
+
🎬
@@ -2550,7 +3110,7 @@
-
+
📊
@@ -2621,7 +3181,7 @@
-
+
🛡
@@ -2697,7 +3257,7 @@
-
+
💳
@@ -2768,7 +3328,7 @@
-
+
@@ -2830,7 +3390,7 @@
-
+
🇨🇦
@@ -3864,6 +4424,275 @@ } }; + /* =========================================== + BETA MODAL + =========================================== */ + const BetaModal = { + init() { + const pill = document.getElementById('beta-pill'); + const backdrop = document.getElementById('beta-modal-backdrop'); + const closeBtn = document.getElementById('beta-modal-close'); + if (!pill || !backdrop || !closeBtn) return; + pill.addEventListener('click', () => backdrop.classList.add('open')); + closeBtn.addEventListener('click', () => backdrop.classList.remove('open')); + backdrop.addEventListener('click', (e) => { if (e.target === backdrop) backdrop.classList.remove('open'); }); + document.addEventListener('keydown', (e) => { if (e.key === 'Escape' && backdrop.classList.contains('open')) backdrop.classList.remove('open'); }); + } + }; + + /* =========================================== + TERMINAL COPY — clipboard for install cmd + =========================================== */ + const TerminalCopy = { + init() { + const btn = document.getElementById('hero-copy-btn'); + if (!btn) return; + btn.addEventListener('click', () => { + const cmd = 'curl -fsSL gitea.bnkops.com/admin/changemaker.lite/raw/branch/main/scripts/install.sh | bash'; + navigator.clipboard.writeText(cmd).then(() => { + btn.classList.add('copied'); + btn.querySelector('.copy-label').textContent = 'Copied!'; + setTimeout(() => { + btn.classList.remove('copied'); + btn.querySelector('.copy-label').textContent = 'Copy'; + }, 2000); + }); + }); + } + }; + + /* =========================================== + TYPEWRITER — rotating hero words + =========================================== */ + const Typewriter = { + words: ['campaigns', 'canvassing', 'fundraising', 'newsletters', 'media library', 'volunteer shifts', 'team chat', 'events'], + el: null, + wordIdx: 0, + charIdx: 0, + isDeleting: false, + timeout: null, + + init() { + this.el = document.getElementById('tw-word'); + if (!this.el) return; + if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) { + this.el.textContent = this.words[0]; + return; + } + this.tick(); + }, + + tick() { + const word = this.words[this.wordIdx]; + + if (this.isDeleting) { + this.charIdx--; + } else { + this.charIdx++; + } + + this.el.textContent = word.substring(0, this.charIdx); + + let delay = this.isDeleting ? 40 : 80; + + if (!this.isDeleting && this.charIdx === word.length) { + delay = 2200; + this.isDeleting = true; + } else if (this.isDeleting && this.charIdx === 0) { + this.isDeleting = false; + this.wordIdx = (this.wordIdx + 1) % this.words.length; + delay = 400; + } + + this.timeout = setTimeout(() => this.tick(), delay); + } + }; + + /* =========================================== + FEATURE PILLS — staggered entrance + =========================================== */ + const FeaturePills = { + init() { + const pills = document.querySelectorAll('.hero-pill'); + if (!pills.length) return; + if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) { + pills.forEach(p => p.classList.add('visible')); + return; + } + pills.forEach((pill, i) => { + setTimeout(() => pill.classList.add('visible'), 600 + i * 120); + }); + } + }; + + /* =========================================== + FEATURE SHOWCASE — rotating cards + =========================================== */ + const FeatureShowcase = { + current: 0, + cards: [], + dots: [], + interval: null, + DURATION: 5000, + + init() { + this.cards = document.querySelectorAll('.showcase-card'); + this.dots = document.querySelectorAll('.showcase-dot'); + if (this.cards.length < 2) return; + + this.dots.forEach(dot => { + dot.addEventListener('click', () => { + const idx = parseInt(dot.getAttribute('data-idx'), 10); + if (idx !== this.current) this.goTo(idx); + }); + }); + + this.startAutoplay(); + }, + + goTo(idx) { + const prev = this.cards[this.current]; + prev.classList.remove('active'); + prev.classList.add('exiting'); + setTimeout(() => prev.classList.remove('exiting'), 600); + + this.current = idx; + this.cards[this.current].classList.add('active'); + + this.dots.forEach((d, i) => d.classList.toggle('active', i === idx)); + this.restartAutoplay(); + }, + + next() { + this.goTo((this.current + 1) % this.cards.length); + }, + + startAutoplay() { + this.interval = setInterval(() => this.next(), this.DURATION); + }, + + restartAutoplay() { + clearInterval(this.interval); + this.startAutoplay(); + } + }; + + /* =========================================== + COUNT-UP STATS — animated number counters + =========================================== */ + const CountUpStats = { + init() { + const stats = document.querySelectorAll('.hero-stat-value[data-count]'); + if (!stats.length) return; + if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) { + stats.forEach(el => { + const target = parseInt(el.getAttribute('data-count'), 10); + const prefix = el.getAttribute('data-prefix') || ''; + const suffix = el.getAttribute('data-suffix') || ''; + el.textContent = prefix + target + suffix; + }); + return; + } + + const obs = new IntersectionObserver((entries) => { + entries.forEach(entry => { + if (entry.isIntersecting) { + this.animate(entry.target); + obs.unobserve(entry.target); + } + }); + }, { threshold: 0.5 }); + + stats.forEach(el => obs.observe(el)); + }, + + animate(el) { + const target = parseInt(el.getAttribute('data-count'), 10); + const prefix = el.getAttribute('data-prefix') || ''; + const suffix = el.getAttribute('data-suffix') || ''; + const duration = 1400; + const start = performance.now(); + + const step = (now) => { + const progress = Math.min((now - start) / duration, 1); + const eased = 1 - Math.pow(1 - progress, 3); + const current = Math.round(eased * target); + el.textContent = prefix + current + suffix; + if (progress < 1) requestAnimationFrame(step); + }; + requestAnimationFrame(step); + } + }; + + /* =========================================== + PARTICLE DRIFT — floating background dots + =========================================== */ + const ParticleDrift = { + canvas: null, + ctx: null, + particles: [], + raf: null, + COUNT: 35, + + init() { + this.canvas = document.getElementById('hero-particles'); + if (!this.canvas) return; + if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return; + // Fewer particles on mobile + if (window.innerWidth < 768) this.COUNT = 15; + + this.ctx = this.canvas.getContext('2d'); + this.resize(); + this.createParticles(); + this.loop(); + window.addEventListener('resize', () => this.resize()); + }, + + resize() { + const hero = this.canvas.parentElement; + this.canvas.width = hero.offsetWidth; + this.canvas.height = hero.offsetHeight; + }, + + createParticles() { + this.particles = []; + for (let i = 0; i < this.COUNT; i++) { + this.particles.push({ + x: Math.random() * this.canvas.width, + y: Math.random() * this.canvas.height, + r: Math.random() * 2 + 0.5, + vx: (Math.random() - 0.5) * 0.3, + vy: -(Math.random() * 0.4 + 0.1), + alpha: Math.random() * 0.3 + 0.1, + }); + } + }, + + loop() { + const { ctx, canvas, particles } = this; + ctx.clearRect(0, 0, canvas.width, canvas.height); + + const isDark = document.documentElement.getAttribute('data-theme') !== 'light'; + const baseColor = isDark ? '139, 92, 246' : '111, 66, 193'; + + particles.forEach(p => { + p.x += p.vx; + p.y += p.vy; + // Wrap around + if (p.y < -5) { p.y = canvas.height + 5; p.x = Math.random() * canvas.width; } + if (p.x < -5) p.x = canvas.width + 5; + if (p.x > canvas.width + 5) p.x = -5; + + ctx.beginPath(); + ctx.arc(p.x, p.y, p.r, 0, Math.PI * 2); + ctx.fillStyle = `rgba(${baseColor}, ${p.alpha})`; + ctx.fill(); + }); + + this.raf = requestAnimationFrame(() => this.loop()); + } + }; + /* =========================================== BOOT =========================================== */ @@ -3877,7 +4706,14 @@ FloatingElements.init(); SmoothScroll.init(); FreeModal.init(); + BetaModal.init(); initSearch(); + TerminalCopy.init(); + Typewriter.init(); + FeaturePills.init(); + FeatureShowcase.init(); + CountUpStats.init(); + ParticleDrift.init(); }); })(); diff --git a/mkdocs/site/lander/index.html b/mkdocs/site/lander/index.html index 74a960ff..e7af9a76 100644 --- a/mkdocs/site/lander/index.html +++ b/mkdocs/site/lander/index.html @@ -92,6 +92,10 @@ /* ============================================ TYPOGRAPHY ============================================ */ + html { + overflow-x: hidden; + } + body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; color: var(--text-primary); @@ -482,7 +486,7 @@ flex-direction: column; align-items: center; justify-content: flex-start; - padding: calc(var(--header-height) + 3rem) 2rem 0; + padding: calc(var(--header-height) + 2rem) 2rem 0; overflow: hidden; } @@ -510,6 +514,22 @@ background: radial-gradient(circle, rgba(111, 66, 193, 0.08) 0%, rgba(139, 92, 246, 0.03) 40%, transparent 70%); } + [data-theme="light"] .showcase-card { + border-color: rgba(100, 116, 139, 0.2); + } + [data-theme="light"] .showcase-card.active { + box-shadow: 0 0 30px rgba(111, 66, 193, 0.08), 0 8px 32px rgba(0, 0, 0, 0.1); + border-color: rgba(111, 66, 193, 0.25); + } + [data-theme="light"] .hero-stats { + background: rgba(255, 255, 255, 0.9); + border-color: rgba(100, 116, 139, 0.15); + } + [data-theme="light"] .hero-pill { + background: rgba(111, 66, 193, 0.06); + border-color: rgba(111, 66, 193, 0.15); + } + .hero-root-svg { position: absolute; top: 65%; @@ -526,11 +546,38 @@ to { opacity: 1; } } + /* ---- Two-column hero grid (desktop) ---- */ .hero-content { position: relative; z-index: 1; - text-align: center; - max-width: 800px; + width: 100%; + max-width: 1400px; + display: grid; + grid-template-columns: minmax(380px, 1fr) minmax(0, 1.4fr); + grid-template-rows: auto auto; + gap: 0 2.5rem; + align-items: start; + } + + .hero-left { + text-align: left; + padding-top: 1.5rem; + } + + .hero-right { + display: flex; + align-items: flex-start; + justify-content: flex-end; + padding-top: 0.5rem; + } + .hero-right > div { + width: 100%; + } + + /* Spans full width below both columns */ + .hero-bottom { + grid-column: 1 / -1; + margin-top: 1.5rem; } .hero-badge { @@ -543,38 +590,388 @@ font-size: 0.8rem; font-weight: 600; letter-spacing: 0.02em; + margin-bottom: 1rem; + } + + .beta-pill { + display: inline-block; + padding: 0.35rem 1.1rem; + background: linear-gradient(135deg, #EC4899, #8B5CF6); + border: none; + border-radius: 100px; + color: #fff; + font-size: 0.78rem; + font-weight: 700; + letter-spacing: 0.04em; + cursor: pointer; + margin-bottom: 0.75rem; + box-shadow: 0 0 16px rgba(236, 72, 153, 0.4), 0 0 40px rgba(139, 92, 246, 0.2); + transition: transform 0.2s ease, box-shadow 0.2s ease; + animation: beta-pulse 3s ease-in-out infinite; + } + .beta-pill:hover { + transform: scale(1.06); + box-shadow: 0 0 22px rgba(236, 72, 153, 0.55), 0 0 50px rgba(139, 92, 246, 0.35); + } + @keyframes beta-pulse { + 0%, 100% { box-shadow: 0 0 16px rgba(236, 72, 153, 0.4), 0 0 40px rgba(139, 92, 246, 0.2); } + 50% { box-shadow: 0 0 24px rgba(236, 72, 153, 0.6), 0 0 55px rgba(139, 92, 246, 0.35); } + } + + .beta-modal-backdrop { + display: none; + position: fixed; + inset: 0; + z-index: 9999; + background: rgba(0, 0, 0, 0.6); + backdrop-filter: blur(4px); + -webkit-backdrop-filter: blur(4px); + align-items: center; + justify-content: center; + } + .beta-modal-backdrop.open { display: flex; } + .beta-modal { + background: var(--bg-surface); + border: 1px solid var(--myc-node-border); + border-radius: var(--radius-lg); + max-width: 440px; + width: 90%; + padding: 2.5rem 2rem 2rem; + text-align: center; + box-shadow: var(--shadow-lg), 0 0 60px rgba(139, 92, 246, 0.15); + position: relative; + animation: beta-modal-in 0.25s ease-out; + } + @keyframes beta-modal-in { + from { opacity: 0; transform: scale(0.92) translateY(12px); } + to { opacity: 1; transform: scale(1) translateY(0); } + } + .beta-modal-emoji { font-size: 2.5rem; margin-bottom: 1rem; } + .beta-modal h3 { + font-size: 1.25rem; + color: var(--text-primary); + margin-bottom: 0.75rem; + } + .beta-modal p { + color: var(--text-secondary); + font-size: 0.95rem; + line-height: 1.7; margin-bottom: 1.5rem; } + .beta-modal-close { + display: inline-block; + padding: 0.5rem 1.5rem; + background: linear-gradient(135deg, #8B5CF6, #6f42c1); + border: none; + border-radius: 100px; + color: #fff; + font-size: 0.85rem; + font-weight: 600; + cursor: pointer; + transition: transform 0.15s ease, box-shadow 0.15s ease; + } + .beta-modal-close:hover { + transform: scale(1.04); + box-shadow: 0 0 14px rgba(139, 92, 246, 0.4); + } .hero h1 { background: linear-gradient(135deg, var(--primary-light) 0%, #C084FC 50%, #F5A9B8 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; + margin-bottom: 0.5rem; + font-size: clamp(2.5rem, 5vw, 3.75rem); + } + + /* ---- Typewriter rotating line ---- */ + .hero-rotating-line { + font-size: clamp(1.15rem, 2.2vw, 1.5rem); + color: var(--text-secondary); margin-bottom: 1.25rem; + min-height: 2.2em; + line-height: 1.5; + } + .hero-rotating-line .tw-static { + color: var(--text-secondary); + } + .hero-rotating-line .tw-word { + color: var(--primary-light); + font-weight: 700; + border-right: 2px solid var(--primary-light); + padding-right: 2px; + animation: blink-cursor 0.75s step-end infinite; + } + @keyframes blink-cursor { + 50% { border-color: transparent; } } .hero-subtitle { color: var(--text-secondary); - font-size: clamp(1rem, 2vw, 1.2rem); - max-width: 640px; - margin: 0 auto 2rem; + font-size: clamp(0.95rem, 1.8vw, 1.1rem); + max-width: 540px; + margin: 0 0 1.5rem; line-height: 1.7; } .hero-cta { display: flex; - gap: 1rem; - justify-content: center; + gap: 0.75rem; flex-wrap: wrap; - margin-bottom: 2.5rem; + margin-bottom: 1.5rem; } - /* Search */ - .hero-search { + /* ---- Feature pills ---- */ + .hero-pills { + display: flex; + flex-wrap: wrap; + gap: 0.5rem; + margin-bottom: 1.5rem; + } + .hero-pill { + display: inline-flex; + align-items: center; + gap: 0.35rem; + padding: 0.3rem 0.75rem; + background: var(--myc-node-bg); + border: 1px solid var(--myc-node-border); + border-radius: 100px; + color: var(--text-secondary); + font-size: 0.72rem; + font-weight: 500; + letter-spacing: 0.01em; + opacity: 0; + transform: translateY(8px); + transition: opacity 0.4s ease, transform 0.4s ease, background 0.2s ease; + } + .hero-pill.visible { + opacity: 1; + transform: translateY(0); + } + .hero-pill:hover { + background: rgba(139, 92, 246, 0.15); + color: var(--primary-light); + text-decoration: none; + } + .hero-pill .pill-icon { + font-size: 0.82rem; + line-height: 1; + } + + /* ---- Feature showcase (right column) ---- */ + .hero-showcase { position: relative; - max-width: 520px; - margin: 0 auto 3rem; + width: 100%; + aspect-ratio: 16 / 9.5; + perspective: 1200px; + } + + .showcase-card { + position: absolute; + inset: 0; + border: 1px solid var(--border-color); + border-radius: var(--radius-lg); + display: flex; + flex-direction: column; + opacity: 0; + transform: rotateY(8deg) translateX(30px) scale(0.95); + transition: opacity 0.6s ease, transform 0.6s ease; + pointer-events: none; + overflow: hidden; + } + .showcase-card.active { + opacity: 1; + transform: rotateY(0deg) translateX(0) scale(1); + pointer-events: auto; + border-color: var(--myc-node-border); + box-shadow: 0 0 30px rgba(139, 92, 246, 0.12), var(--shadow-lg); + } + .showcase-card.exiting { + opacity: 0; + transform: rotateY(-8deg) translateX(-30px) scale(0.95); + } + + /* Screenshot image fills the card */ + .showcase-card-img { + width: 100%; + height: 100%; + object-fit: cover; + object-position: top left; + display: block; + } + + /* Caption overlay at bottom */ + .showcase-card-caption { + position: absolute; + bottom: 0; + left: 0; + right: 0; + padding: 2.5rem 1.25rem 1rem; + background: linear-gradient(to top, rgba(15, 23, 42, 0.95) 0%, rgba(15, 23, 42, 0.75) 50%, transparent 100%); + display: flex; + align-items: flex-end; + gap: 0.75rem; + } + [data-theme="light"] .showcase-card-caption { + background: linear-gradient(to top, rgba(255, 255, 255, 0.97) 0%, rgba(255, 255, 255, 0.8) 50%, transparent 100%); + } + .showcase-card-icon { + width: 36px; + height: 36px; + border-radius: 8px; + display: flex; + align-items: center; + justify-content: center; + font-size: 1.1rem; + flex-shrink: 0; + backdrop-filter: blur(4px); + -webkit-backdrop-filter: blur(4px); + } + .showcase-card-title { + font-size: 0.95rem; + font-weight: 700; + color: #F1F5F9; + line-height: 1.3; + } + [data-theme="light"] .showcase-card-title { + color: #0F172A; + } + .showcase-card-subtitle { + font-size: 0.72rem; + color: #94A3B8; + margin-top: 0.1rem; + } + [data-theme="light"] .showcase-card-subtitle { + color: #64748B; + } + + /* Showcase progress dots */ + .showcase-dots { + display: flex; + justify-content: center; + gap: 0.5rem; + margin-top: 0.75rem; + } + .showcase-dot { + width: 8px; + height: 8px; + border-radius: 50%; + background: var(--text-muted); + opacity: 0.3; + cursor: pointer; + transition: opacity 0.3s ease, transform 0.3s ease, background 0.3s ease; + } + .showcase-dot.active { + opacity: 1; + background: var(--primary-light); + transform: scale(1.3); + } + .showcase-dot:hover { + opacity: 0.7; + } + + /* ---- Particle canvas ---- */ + .hero-particles { + position: absolute; + inset: 0; + z-index: 0; + pointer-events: none; + } + + /* ---- Quick deploy terminal ---- */ + .hero-terminal { + margin: 0.75rem 0 0; + background: #0D1117; + border: 1px solid rgba(139, 92, 246, 0.2); + border-radius: var(--radius); + opacity: 0; + transform: translateY(8px); + animation: fadeSlideIn 0.6s ease 1.4s forwards; + } + @keyframes fadeSlideIn { + to { opacity: 1; transform: translateY(0); } + } + [data-theme="light"] .hero-terminal { + background: #1E293B; + } + .hero-terminal-bar { + display: flex; + align-items: center; + gap: 0.5rem; + padding: 0.5rem 0.85rem; + background: rgba(255, 255, 255, 0.04); + border-bottom: 1px solid rgba(255, 255, 255, 0.06); + border-radius: var(--radius) var(--radius) 0 0; + } + .hero-terminal-dot { + width: 8px; + height: 8px; + border-radius: 50%; + } + .hero-terminal-title { + font-size: 0.65rem; + color: #64748B; + font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace; + margin-left: auto; + } + .hero-terminal-body { + padding: 0.6rem 0.85rem; + display: flex; + align-items: center; + gap: 0.5rem; + } + .hero-terminal-prompt { + color: #34D399; + font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace; + font-size: 0.82rem; + font-weight: 600; + flex-shrink: 0; + user-select: none; + } + .hero-terminal-cmd { + color: #E2E8F0; + font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace; + font-size: 0.82rem; + white-space: nowrap; + overflow-x: auto; + overflow-y: hidden; + flex: 1; + min-width: 0; + scrollbar-width: none; + -ms-overflow-style: none; + } + .hero-terminal-cmd::-webkit-scrollbar { display: none; } + .hero-terminal-cmd .cmd-highlight { + color: var(--primary-light); + } + .hero-terminal-copy { + background: none; + border: 1px solid rgba(148, 163, 184, 0.2); + border-radius: 6px; + color: #94A3B8; + font-size: 0.7rem; + padding: 0.25rem 0.55rem; + cursor: pointer; + font-family: inherit; + transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease; + flex-shrink: 0; + display: flex; + align-items: center; + gap: 0.3rem; + } + .hero-terminal-copy:hover { + color: #E2E8F0; + border-color: rgba(148, 163, 184, 0.4); + background: rgba(255, 255, 255, 0.05); + } + .hero-terminal-copy.copied { + color: #34D399; + border-color: rgba(52, 211, 153, 0.3); + } + + /* Search (moved out of hero, kept for search functionality) */ + .hero-search { + display: none; } .search-input-wrap { @@ -699,8 +1096,14 @@ display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; - max-width: 640px; + max-width: 800px; margin: 0 auto; + padding: 1.25rem 2rem; + background: var(--bg-card); + border: 1px solid var(--border-color); + border-radius: var(--radius); + backdrop-filter: blur(8px); + -webkit-backdrop-filter: blur(8px); } .hero-stat { @@ -708,9 +1111,10 @@ } .hero-stat-value { - font-size: 1.5rem; + font-size: 1.6rem; font-weight: 800; color: var(--primary-light); + font-variant-numeric: tabular-nums; } .hero-stat-label { @@ -719,6 +1123,24 @@ margin-top: 0.25rem; } + .hero-trust { + text-align: center; + margin-top: 1rem; + color: var(--text-muted); + font-size: 0.78rem; + display: flex; + align-items: center; + justify-content: center; + gap: 0.5rem; + opacity: 0; + animation: fadeIn 1s ease 1.5s forwards; + } + .hero-trust svg { + width: 14px; + height: 14px; + color: var(--primary-light); + } + /* ============================================ PROBLEMS SECTION ============================================ */ @@ -1746,16 +2168,41 @@ @media (max-width: 768px) { .nav-links { display: none; } .nav-right .btn-primary { display: none; } + .nav-right .btn-demo { display: none; } .hamburger { display: block; } .logo-tagline { display: none; } .section { padding: 4rem 0; } - .hero { min-height: auto; padding-top: calc(var(--header-height) + 2rem); padding-bottom: 3rem; } + .hero { min-height: auto; padding-top: calc(var(--header-height) + 1.5rem); padding-bottom: 1.5rem; overflow-x: hidden; } .hero h1 { font-size: 2rem; } .hero-root-glow { width: 250px; height: 250px; top: 50%; bottom: auto; } .hero-root-svg { top: 50%; bottom: auto; transform: translate(-50%, -50%); width: 250px; height: 250px; } + .hero-content { + display: flex; + flex-direction: column; + max-width: 100%; + width: 100%; + overflow: hidden; + } + .hero-left { text-align: center; padding-top: 0; } + .hero-right { margin-top: 1.5rem; overflow: hidden; width: 100%; } + .hero-right > div { max-width: 100%; overflow: hidden; width: 100%; } + .hero-showcase { width: 100%; max-width: 100%; } + .hero-terminal { width: 100%; max-width: 100%; box-sizing: border-box; } + .hero-showcase { aspect-ratio: 16 / 10; } + .hero-cta { justify-content: center; } + .hero-pills { justify-content: center; } + .hero-terminal { max-width: 100%; overflow: hidden; } + .hero-terminal-body { padding: 0.5rem 0.7rem; gap: 0.4rem; } + .hero-terminal-prompt { font-size: 0.7rem; } + .hero-terminal-cmd { font-size: 0.65rem; } + .hero-terminal-copy { font-size: 0.62rem; padding: 0.2rem 0.4rem; } + .hero-terminal-copy .copy-label { display: none; } + .hero-rotating-line { text-align: center; } + .hero-subtitle { margin-left: auto; margin-right: auto; } + .hero-stats { grid-template-columns: repeat(2, 1fr); gap: 1rem; @@ -1798,6 +2245,8 @@ flex-direction: column; align-items: center; } + .hero-pills { gap: 0.4rem; } + .hero-pill { font-size: 0.68rem; padding: 0.25rem 0.6rem; } .cta-buttons { flex-direction: column; @@ -1818,7 +2267,15 @@ .hero { padding-left: 1rem; padding-right: 1rem; } .section { padding: 3rem 0; } .section-header { margin-bottom: 2.5rem; } - .hero-stats { grid-template-columns: repeat(2, 1fr); } + .hero-stats { grid-template-columns: repeat(2, 1fr); padding: 1rem; } + .hero-showcase { aspect-ratio: 16 / 11; } + .showcase-card-title { font-size: 0.85rem; } + .showcase-card-subtitle { font-size: 0.65rem; } + .showcase-card-caption { padding: 1.5rem 1rem 0.75rem; } + .hero-terminal-cmd { font-size: 0.58rem; } + .hero-terminal-prompt { font-size: 0.6rem; } + .hero-terminal-title { font-size: 0.55rem; } + .hero-terminal-dot { width: 6px; height: 6px; } .live-stats { grid-template-columns: 1fr; } } @@ -2115,72 +2572,175 @@ HERO ============================================ -->
+ + +
-
-
Self-Hosted Campaign Infrastructure
-

Grow Power.
Don't Rent It.

-

- Run your campaigns, canvassing, fundraising, team chat, media, and more — all on your own infrastructure. - No corporate surveillance. No foreign interference. No monthly ransoms. - A free* and open source toolkit built for growing political movements. -

-
- Explore the Demo - Schedule a Chat - Source Code + +
+ +
Self-Hosted Campaign Infrastructure
+

Grow Power.
Don't Rent It.

+ +
+ Your — on your own infrastructure. +
+ +

+ No corporate surveillance. No foreign interference. No monthly ransoms. + A free* and open source toolkit built for growing political movements. +

+ + + + + +
- -
+ +
+
+
🚧
+

Now in Beta

+

Changemaker Lite is under active development and breaking changes are still being pushed. A stable release is expected by June 2026.

+ +
+
+ @@ -2287,7 +2847,7 @@
-
+
📨
@@ -2376,7 +2936,7 @@
-
+
🗺
@@ -2461,7 +3021,7 @@
-
+
🎬
@@ -2550,7 +3110,7 @@
-
+
📊
@@ -2621,7 +3181,7 @@
-
+
🛡
@@ -2697,7 +3257,7 @@
-
+
💳
@@ -2768,7 +3328,7 @@
-
+
@@ -2830,7 +3390,7 @@
-
+
🇨🇦
@@ -3864,6 +4424,275 @@ } }; + /* =========================================== + BETA MODAL + =========================================== */ + const BetaModal = { + init() { + const pill = document.getElementById('beta-pill'); + const backdrop = document.getElementById('beta-modal-backdrop'); + const closeBtn = document.getElementById('beta-modal-close'); + if (!pill || !backdrop || !closeBtn) return; + pill.addEventListener('click', () => backdrop.classList.add('open')); + closeBtn.addEventListener('click', () => backdrop.classList.remove('open')); + backdrop.addEventListener('click', (e) => { if (e.target === backdrop) backdrop.classList.remove('open'); }); + document.addEventListener('keydown', (e) => { if (e.key === 'Escape' && backdrop.classList.contains('open')) backdrop.classList.remove('open'); }); + } + }; + + /* =========================================== + TERMINAL COPY — clipboard for install cmd + =========================================== */ + const TerminalCopy = { + init() { + const btn = document.getElementById('hero-copy-btn'); + if (!btn) return; + btn.addEventListener('click', () => { + const cmd = 'curl -fsSL gitea.bnkops.com/admin/changemaker.lite/raw/branch/main/scripts/install.sh | bash'; + navigator.clipboard.writeText(cmd).then(() => { + btn.classList.add('copied'); + btn.querySelector('.copy-label').textContent = 'Copied!'; + setTimeout(() => { + btn.classList.remove('copied'); + btn.querySelector('.copy-label').textContent = 'Copy'; + }, 2000); + }); + }); + } + }; + + /* =========================================== + TYPEWRITER — rotating hero words + =========================================== */ + const Typewriter = { + words: ['campaigns', 'canvassing', 'fundraising', 'newsletters', 'media library', 'volunteer shifts', 'team chat', 'events'], + el: null, + wordIdx: 0, + charIdx: 0, + isDeleting: false, + timeout: null, + + init() { + this.el = document.getElementById('tw-word'); + if (!this.el) return; + if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) { + this.el.textContent = this.words[0]; + return; + } + this.tick(); + }, + + tick() { + const word = this.words[this.wordIdx]; + + if (this.isDeleting) { + this.charIdx--; + } else { + this.charIdx++; + } + + this.el.textContent = word.substring(0, this.charIdx); + + let delay = this.isDeleting ? 40 : 80; + + if (!this.isDeleting && this.charIdx === word.length) { + delay = 2200; + this.isDeleting = true; + } else if (this.isDeleting && this.charIdx === 0) { + this.isDeleting = false; + this.wordIdx = (this.wordIdx + 1) % this.words.length; + delay = 400; + } + + this.timeout = setTimeout(() => this.tick(), delay); + } + }; + + /* =========================================== + FEATURE PILLS — staggered entrance + =========================================== */ + const FeaturePills = { + init() { + const pills = document.querySelectorAll('.hero-pill'); + if (!pills.length) return; + if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) { + pills.forEach(p => p.classList.add('visible')); + return; + } + pills.forEach((pill, i) => { + setTimeout(() => pill.classList.add('visible'), 600 + i * 120); + }); + } + }; + + /* =========================================== + FEATURE SHOWCASE — rotating cards + =========================================== */ + const FeatureShowcase = { + current: 0, + cards: [], + dots: [], + interval: null, + DURATION: 5000, + + init() { + this.cards = document.querySelectorAll('.showcase-card'); + this.dots = document.querySelectorAll('.showcase-dot'); + if (this.cards.length < 2) return; + + this.dots.forEach(dot => { + dot.addEventListener('click', () => { + const idx = parseInt(dot.getAttribute('data-idx'), 10); + if (idx !== this.current) this.goTo(idx); + }); + }); + + this.startAutoplay(); + }, + + goTo(idx) { + const prev = this.cards[this.current]; + prev.classList.remove('active'); + prev.classList.add('exiting'); + setTimeout(() => prev.classList.remove('exiting'), 600); + + this.current = idx; + this.cards[this.current].classList.add('active'); + + this.dots.forEach((d, i) => d.classList.toggle('active', i === idx)); + this.restartAutoplay(); + }, + + next() { + this.goTo((this.current + 1) % this.cards.length); + }, + + startAutoplay() { + this.interval = setInterval(() => this.next(), this.DURATION); + }, + + restartAutoplay() { + clearInterval(this.interval); + this.startAutoplay(); + } + }; + + /* =========================================== + COUNT-UP STATS — animated number counters + =========================================== */ + const CountUpStats = { + init() { + const stats = document.querySelectorAll('.hero-stat-value[data-count]'); + if (!stats.length) return; + if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) { + stats.forEach(el => { + const target = parseInt(el.getAttribute('data-count'), 10); + const prefix = el.getAttribute('data-prefix') || ''; + const suffix = el.getAttribute('data-suffix') || ''; + el.textContent = prefix + target + suffix; + }); + return; + } + + const obs = new IntersectionObserver((entries) => { + entries.forEach(entry => { + if (entry.isIntersecting) { + this.animate(entry.target); + obs.unobserve(entry.target); + } + }); + }, { threshold: 0.5 }); + + stats.forEach(el => obs.observe(el)); + }, + + animate(el) { + const target = parseInt(el.getAttribute('data-count'), 10); + const prefix = el.getAttribute('data-prefix') || ''; + const suffix = el.getAttribute('data-suffix') || ''; + const duration = 1400; + const start = performance.now(); + + const step = (now) => { + const progress = Math.min((now - start) / duration, 1); + const eased = 1 - Math.pow(1 - progress, 3); + const current = Math.round(eased * target); + el.textContent = prefix + current + suffix; + if (progress < 1) requestAnimationFrame(step); + }; + requestAnimationFrame(step); + } + }; + + /* =========================================== + PARTICLE DRIFT — floating background dots + =========================================== */ + const ParticleDrift = { + canvas: null, + ctx: null, + particles: [], + raf: null, + COUNT: 35, + + init() { + this.canvas = document.getElementById('hero-particles'); + if (!this.canvas) return; + if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return; + // Fewer particles on mobile + if (window.innerWidth < 768) this.COUNT = 15; + + this.ctx = this.canvas.getContext('2d'); + this.resize(); + this.createParticles(); + this.loop(); + window.addEventListener('resize', () => this.resize()); + }, + + resize() { + const hero = this.canvas.parentElement; + this.canvas.width = hero.offsetWidth; + this.canvas.height = hero.offsetHeight; + }, + + createParticles() { + this.particles = []; + for (let i = 0; i < this.COUNT; i++) { + this.particles.push({ + x: Math.random() * this.canvas.width, + y: Math.random() * this.canvas.height, + r: Math.random() * 2 + 0.5, + vx: (Math.random() - 0.5) * 0.3, + vy: -(Math.random() * 0.4 + 0.1), + alpha: Math.random() * 0.3 + 0.1, + }); + } + }, + + loop() { + const { ctx, canvas, particles } = this; + ctx.clearRect(0, 0, canvas.width, canvas.height); + + const isDark = document.documentElement.getAttribute('data-theme') !== 'light'; + const baseColor = isDark ? '139, 92, 246' : '111, 66, 193'; + + particles.forEach(p => { + p.x += p.vx; + p.y += p.vy; + // Wrap around + if (p.y < -5) { p.y = canvas.height + 5; p.x = Math.random() * canvas.width; } + if (p.x < -5) p.x = canvas.width + 5; + if (p.x > canvas.width + 5) p.x = -5; + + ctx.beginPath(); + ctx.arc(p.x, p.y, p.r, 0, Math.PI * 2); + ctx.fillStyle = `rgba(${baseColor}, ${p.alpha})`; + ctx.fill(); + }); + + this.raf = requestAnimationFrame(() => this.loop()); + } + }; + /* =========================================== BOOT =========================================== */ @@ -3877,7 +4706,14 @@ FloatingElements.init(); SmoothScroll.init(); FreeModal.init(); + BetaModal.init(); initSearch(); + TerminalCopy.init(); + Typewriter.init(); + FeaturePills.init(); + FeatureShowcase.init(); + CountUpStats.init(); + ParticleDrift.init(); }); })(); diff --git a/mkdocs/site/main/index.html b/mkdocs/site/main/index.html index 5f5f84d0..6cbd2263 100644 --- a/mkdocs/site/main/index.html +++ b/mkdocs/site/main/index.html @@ -1390,7 +1390,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -1399,7 +1399,7 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { - + @@ -1586,6 +1586,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/overrides/lander.html b/mkdocs/site/overrides/lander.html index 9fbda767..8858003a 100644 --- a/mkdocs/site/overrides/lander.html +++ b/mkdocs/site/overrides/lander.html @@ -92,6 +92,10 @@ /* ============================================ TYPOGRAPHY ============================================ */ + html { + overflow-x: hidden; + } + body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; color: var(--text-primary); @@ -482,7 +486,7 @@ flex-direction: column; align-items: center; justify-content: flex-start; - padding: calc(var(--header-height) + 3rem) 2rem 0; + padding: calc(var(--header-height) + 2rem) 2rem 0; overflow: hidden; } @@ -510,6 +514,22 @@ background: radial-gradient(circle, rgba(111, 66, 193, 0.08) 0%, rgba(139, 92, 246, 0.03) 40%, transparent 70%); } + [data-theme="light"] .showcase-card { + border-color: rgba(100, 116, 139, 0.2); + } + [data-theme="light"] .showcase-card.active { + box-shadow: 0 0 30px rgba(111, 66, 193, 0.08), 0 8px 32px rgba(0, 0, 0, 0.1); + border-color: rgba(111, 66, 193, 0.25); + } + [data-theme="light"] .hero-stats { + background: rgba(255, 255, 255, 0.9); + border-color: rgba(100, 116, 139, 0.15); + } + [data-theme="light"] .hero-pill { + background: rgba(111, 66, 193, 0.06); + border-color: rgba(111, 66, 193, 0.15); + } + .hero-root-svg { position: absolute; top: 65%; @@ -526,11 +546,38 @@ to { opacity: 1; } } + /* ---- Two-column hero grid (desktop) ---- */ .hero-content { position: relative; z-index: 1; - text-align: center; - max-width: 800px; + width: 100%; + max-width: 1400px; + display: grid; + grid-template-columns: minmax(380px, 1fr) minmax(0, 1.4fr); + grid-template-rows: auto auto; + gap: 0 2.5rem; + align-items: start; + } + + .hero-left { + text-align: left; + padding-top: 1.5rem; + } + + .hero-right { + display: flex; + align-items: flex-start; + justify-content: flex-end; + padding-top: 0.5rem; + } + .hero-right > div { + width: 100%; + } + + /* Spans full width below both columns */ + .hero-bottom { + grid-column: 1 / -1; + margin-top: 1.5rem; } .hero-badge { @@ -543,38 +590,388 @@ font-size: 0.8rem; font-weight: 600; letter-spacing: 0.02em; + margin-bottom: 1rem; + } + + .beta-pill { + display: inline-block; + padding: 0.35rem 1.1rem; + background: linear-gradient(135deg, #EC4899, #8B5CF6); + border: none; + border-radius: 100px; + color: #fff; + font-size: 0.78rem; + font-weight: 700; + letter-spacing: 0.04em; + cursor: pointer; + margin-bottom: 0.75rem; + box-shadow: 0 0 16px rgba(236, 72, 153, 0.4), 0 0 40px rgba(139, 92, 246, 0.2); + transition: transform 0.2s ease, box-shadow 0.2s ease; + animation: beta-pulse 3s ease-in-out infinite; + } + .beta-pill:hover { + transform: scale(1.06); + box-shadow: 0 0 22px rgba(236, 72, 153, 0.55), 0 0 50px rgba(139, 92, 246, 0.35); + } + @keyframes beta-pulse { + 0%, 100% { box-shadow: 0 0 16px rgba(236, 72, 153, 0.4), 0 0 40px rgba(139, 92, 246, 0.2); } + 50% { box-shadow: 0 0 24px rgba(236, 72, 153, 0.6), 0 0 55px rgba(139, 92, 246, 0.35); } + } + + .beta-modal-backdrop { + display: none; + position: fixed; + inset: 0; + z-index: 9999; + background: rgba(0, 0, 0, 0.6); + backdrop-filter: blur(4px); + -webkit-backdrop-filter: blur(4px); + align-items: center; + justify-content: center; + } + .beta-modal-backdrop.open { display: flex; } + .beta-modal { + background: var(--bg-surface); + border: 1px solid var(--myc-node-border); + border-radius: var(--radius-lg); + max-width: 440px; + width: 90%; + padding: 2.5rem 2rem 2rem; + text-align: center; + box-shadow: var(--shadow-lg), 0 0 60px rgba(139, 92, 246, 0.15); + position: relative; + animation: beta-modal-in 0.25s ease-out; + } + @keyframes beta-modal-in { + from { opacity: 0; transform: scale(0.92) translateY(12px); } + to { opacity: 1; transform: scale(1) translateY(0); } + } + .beta-modal-emoji { font-size: 2.5rem; margin-bottom: 1rem; } + .beta-modal h3 { + font-size: 1.25rem; + color: var(--text-primary); + margin-bottom: 0.75rem; + } + .beta-modal p { + color: var(--text-secondary); + font-size: 0.95rem; + line-height: 1.7; margin-bottom: 1.5rem; } + .beta-modal-close { + display: inline-block; + padding: 0.5rem 1.5rem; + background: linear-gradient(135deg, #8B5CF6, #6f42c1); + border: none; + border-radius: 100px; + color: #fff; + font-size: 0.85rem; + font-weight: 600; + cursor: pointer; + transition: transform 0.15s ease, box-shadow 0.15s ease; + } + .beta-modal-close:hover { + transform: scale(1.04); + box-shadow: 0 0 14px rgba(139, 92, 246, 0.4); + } .hero h1 { background: linear-gradient(135deg, var(--primary-light) 0%, #C084FC 50%, #F5A9B8 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; + margin-bottom: 0.5rem; + font-size: clamp(2.5rem, 5vw, 3.75rem); + } + + /* ---- Typewriter rotating line ---- */ + .hero-rotating-line { + font-size: clamp(1.15rem, 2.2vw, 1.5rem); + color: var(--text-secondary); margin-bottom: 1.25rem; + min-height: 2.2em; + line-height: 1.5; + } + .hero-rotating-line .tw-static { + color: var(--text-secondary); + } + .hero-rotating-line .tw-word { + color: var(--primary-light); + font-weight: 700; + border-right: 2px solid var(--primary-light); + padding-right: 2px; + animation: blink-cursor 0.75s step-end infinite; + } + @keyframes blink-cursor { + 50% { border-color: transparent; } } .hero-subtitle { color: var(--text-secondary); - font-size: clamp(1rem, 2vw, 1.2rem); - max-width: 640px; - margin: 0 auto 2rem; + font-size: clamp(0.95rem, 1.8vw, 1.1rem); + max-width: 540px; + margin: 0 0 1.5rem; line-height: 1.7; } .hero-cta { display: flex; - gap: 1rem; - justify-content: center; + gap: 0.75rem; flex-wrap: wrap; - margin-bottom: 2.5rem; + margin-bottom: 1.5rem; } - /* Search */ - .hero-search { + /* ---- Feature pills ---- */ + .hero-pills { + display: flex; + flex-wrap: wrap; + gap: 0.5rem; + margin-bottom: 1.5rem; + } + .hero-pill { + display: inline-flex; + align-items: center; + gap: 0.35rem; + padding: 0.3rem 0.75rem; + background: var(--myc-node-bg); + border: 1px solid var(--myc-node-border); + border-radius: 100px; + color: var(--text-secondary); + font-size: 0.72rem; + font-weight: 500; + letter-spacing: 0.01em; + opacity: 0; + transform: translateY(8px); + transition: opacity 0.4s ease, transform 0.4s ease, background 0.2s ease; + } + .hero-pill.visible { + opacity: 1; + transform: translateY(0); + } + .hero-pill:hover { + background: rgba(139, 92, 246, 0.15); + color: var(--primary-light); + text-decoration: none; + } + .hero-pill .pill-icon { + font-size: 0.82rem; + line-height: 1; + } + + /* ---- Feature showcase (right column) ---- */ + .hero-showcase { position: relative; - max-width: 520px; - margin: 0 auto 3rem; + width: 100%; + aspect-ratio: 16 / 9.5; + perspective: 1200px; + } + + .showcase-card { + position: absolute; + inset: 0; + border: 1px solid var(--border-color); + border-radius: var(--radius-lg); + display: flex; + flex-direction: column; + opacity: 0; + transform: rotateY(8deg) translateX(30px) scale(0.95); + transition: opacity 0.6s ease, transform 0.6s ease; + pointer-events: none; + overflow: hidden; + } + .showcase-card.active { + opacity: 1; + transform: rotateY(0deg) translateX(0) scale(1); + pointer-events: auto; + border-color: var(--myc-node-border); + box-shadow: 0 0 30px rgba(139, 92, 246, 0.12), var(--shadow-lg); + } + .showcase-card.exiting { + opacity: 0; + transform: rotateY(-8deg) translateX(-30px) scale(0.95); + } + + /* Screenshot image fills the card */ + .showcase-card-img { + width: 100%; + height: 100%; + object-fit: cover; + object-position: top left; + display: block; + } + + /* Caption overlay at bottom */ + .showcase-card-caption { + position: absolute; + bottom: 0; + left: 0; + right: 0; + padding: 2.5rem 1.25rem 1rem; + background: linear-gradient(to top, rgba(15, 23, 42, 0.95) 0%, rgba(15, 23, 42, 0.75) 50%, transparent 100%); + display: flex; + align-items: flex-end; + gap: 0.75rem; + } + [data-theme="light"] .showcase-card-caption { + background: linear-gradient(to top, rgba(255, 255, 255, 0.97) 0%, rgba(255, 255, 255, 0.8) 50%, transparent 100%); + } + .showcase-card-icon { + width: 36px; + height: 36px; + border-radius: 8px; + display: flex; + align-items: center; + justify-content: center; + font-size: 1.1rem; + flex-shrink: 0; + backdrop-filter: blur(4px); + -webkit-backdrop-filter: blur(4px); + } + .showcase-card-title { + font-size: 0.95rem; + font-weight: 700; + color: #F1F5F9; + line-height: 1.3; + } + [data-theme="light"] .showcase-card-title { + color: #0F172A; + } + .showcase-card-subtitle { + font-size: 0.72rem; + color: #94A3B8; + margin-top: 0.1rem; + } + [data-theme="light"] .showcase-card-subtitle { + color: #64748B; + } + + /* Showcase progress dots */ + .showcase-dots { + display: flex; + justify-content: center; + gap: 0.5rem; + margin-top: 0.75rem; + } + .showcase-dot { + width: 8px; + height: 8px; + border-radius: 50%; + background: var(--text-muted); + opacity: 0.3; + cursor: pointer; + transition: opacity 0.3s ease, transform 0.3s ease, background 0.3s ease; + } + .showcase-dot.active { + opacity: 1; + background: var(--primary-light); + transform: scale(1.3); + } + .showcase-dot:hover { + opacity: 0.7; + } + + /* ---- Particle canvas ---- */ + .hero-particles { + position: absolute; + inset: 0; + z-index: 0; + pointer-events: none; + } + + /* ---- Quick deploy terminal ---- */ + .hero-terminal { + margin: 0.75rem 0 0; + background: #0D1117; + border: 1px solid rgba(139, 92, 246, 0.2); + border-radius: var(--radius); + opacity: 0; + transform: translateY(8px); + animation: fadeSlideIn 0.6s ease 1.4s forwards; + } + @keyframes fadeSlideIn { + to { opacity: 1; transform: translateY(0); } + } + [data-theme="light"] .hero-terminal { + background: #1E293B; + } + .hero-terminal-bar { + display: flex; + align-items: center; + gap: 0.5rem; + padding: 0.5rem 0.85rem; + background: rgba(255, 255, 255, 0.04); + border-bottom: 1px solid rgba(255, 255, 255, 0.06); + border-radius: var(--radius) var(--radius) 0 0; + } + .hero-terminal-dot { + width: 8px; + height: 8px; + border-radius: 50%; + } + .hero-terminal-title { + font-size: 0.65rem; + color: #64748B; + font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace; + margin-left: auto; + } + .hero-terminal-body { + padding: 0.6rem 0.85rem; + display: flex; + align-items: center; + gap: 0.5rem; + } + .hero-terminal-prompt { + color: #34D399; + font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace; + font-size: 0.82rem; + font-weight: 600; + flex-shrink: 0; + user-select: none; + } + .hero-terminal-cmd { + color: #E2E8F0; + font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace; + font-size: 0.82rem; + white-space: nowrap; + overflow-x: auto; + overflow-y: hidden; + flex: 1; + min-width: 0; + scrollbar-width: none; + -ms-overflow-style: none; + } + .hero-terminal-cmd::-webkit-scrollbar { display: none; } + .hero-terminal-cmd .cmd-highlight { + color: var(--primary-light); + } + .hero-terminal-copy { + background: none; + border: 1px solid rgba(148, 163, 184, 0.2); + border-radius: 6px; + color: #94A3B8; + font-size: 0.7rem; + padding: 0.25rem 0.55rem; + cursor: pointer; + font-family: inherit; + transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease; + flex-shrink: 0; + display: flex; + align-items: center; + gap: 0.3rem; + } + .hero-terminal-copy:hover { + color: #E2E8F0; + border-color: rgba(148, 163, 184, 0.4); + background: rgba(255, 255, 255, 0.05); + } + .hero-terminal-copy.copied { + color: #34D399; + border-color: rgba(52, 211, 153, 0.3); + } + + /* Search (moved out of hero, kept for search functionality) */ + .hero-search { + display: none; } .search-input-wrap { @@ -699,8 +1096,14 @@ display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; - max-width: 640px; + max-width: 800px; margin: 0 auto; + padding: 1.25rem 2rem; + background: var(--bg-card); + border: 1px solid var(--border-color); + border-radius: var(--radius); + backdrop-filter: blur(8px); + -webkit-backdrop-filter: blur(8px); } .hero-stat { @@ -708,9 +1111,10 @@ } .hero-stat-value { - font-size: 1.5rem; + font-size: 1.6rem; font-weight: 800; color: var(--primary-light); + font-variant-numeric: tabular-nums; } .hero-stat-label { @@ -719,6 +1123,24 @@ margin-top: 0.25rem; } + .hero-trust { + text-align: center; + margin-top: 1rem; + color: var(--text-muted); + font-size: 0.78rem; + display: flex; + align-items: center; + justify-content: center; + gap: 0.5rem; + opacity: 0; + animation: fadeIn 1s ease 1.5s forwards; + } + .hero-trust svg { + width: 14px; + height: 14px; + color: var(--primary-light); + } + /* ============================================ PROBLEMS SECTION ============================================ */ @@ -1746,16 +2168,41 @@ @media (max-width: 768px) { .nav-links { display: none; } .nav-right .btn-primary { display: none; } + .nav-right .btn-demo { display: none; } .hamburger { display: block; } .logo-tagline { display: none; } .section { padding: 4rem 0; } - .hero { min-height: auto; padding-top: calc(var(--header-height) + 2rem); padding-bottom: 3rem; } + .hero { min-height: auto; padding-top: calc(var(--header-height) + 1.5rem); padding-bottom: 1.5rem; overflow-x: hidden; } .hero h1 { font-size: 2rem; } .hero-root-glow { width: 250px; height: 250px; top: 50%; bottom: auto; } .hero-root-svg { top: 50%; bottom: auto; transform: translate(-50%, -50%); width: 250px; height: 250px; } + .hero-content { + display: flex; + flex-direction: column; + max-width: 100%; + width: 100%; + overflow: hidden; + } + .hero-left { text-align: center; padding-top: 0; } + .hero-right { margin-top: 1.5rem; overflow: hidden; width: 100%; } + .hero-right > div { max-width: 100%; overflow: hidden; width: 100%; } + .hero-showcase { width: 100%; max-width: 100%; } + .hero-terminal { width: 100%; max-width: 100%; box-sizing: border-box; } + .hero-showcase { aspect-ratio: 16 / 10; } + .hero-cta { justify-content: center; } + .hero-pills { justify-content: center; } + .hero-terminal { max-width: 100%; overflow: hidden; } + .hero-terminal-body { padding: 0.5rem 0.7rem; gap: 0.4rem; } + .hero-terminal-prompt { font-size: 0.7rem; } + .hero-terminal-cmd { font-size: 0.65rem; } + .hero-terminal-copy { font-size: 0.62rem; padding: 0.2rem 0.4rem; } + .hero-terminal-copy .copy-label { display: none; } + .hero-rotating-line { text-align: center; } + .hero-subtitle { margin-left: auto; margin-right: auto; } + .hero-stats { grid-template-columns: repeat(2, 1fr); gap: 1rem; @@ -1798,6 +2245,8 @@ flex-direction: column; align-items: center; } + .hero-pills { gap: 0.4rem; } + .hero-pill { font-size: 0.68rem; padding: 0.25rem 0.6rem; } .cta-buttons { flex-direction: column; @@ -1818,7 +2267,15 @@ .hero { padding-left: 1rem; padding-right: 1rem; } .section { padding: 3rem 0; } .section-header { margin-bottom: 2.5rem; } - .hero-stats { grid-template-columns: repeat(2, 1fr); } + .hero-stats { grid-template-columns: repeat(2, 1fr); padding: 1rem; } + .hero-showcase { aspect-ratio: 16 / 11; } + .showcase-card-title { font-size: 0.85rem; } + .showcase-card-subtitle { font-size: 0.65rem; } + .showcase-card-caption { padding: 1.5rem 1rem 0.75rem; } + .hero-terminal-cmd { font-size: 0.58rem; } + .hero-terminal-prompt { font-size: 0.6rem; } + .hero-terminal-title { font-size: 0.55rem; } + .hero-terminal-dot { width: 6px; height: 6px; } .live-stats { grid-template-columns: 1fr; } } @@ -2102,72 +2559,175 @@ HERO ============================================ -->
+ + +
-
-
Self-Hosted Campaign Infrastructure
-

Grow Power.
Don't Rent It.

-

- Run your campaigns, canvassing, fundraising, team chat, media, and more — all on your own infrastructure. - No corporate surveillance. No foreign interference. No monthly ransoms. - A free* and open source toolkit built for growing political movements. -

-
- Explore the Demo - Schedule a Chat - Source Code + +
+ +
Self-Hosted Campaign Infrastructure
+

Grow Power.
Don't Rent It.

+ +
+ Your — on your own infrastructure. +
+ +

+ No corporate surveillance. No foreign interference. No monthly ransoms. + A free* and open source toolkit built for growing political movements. +

+ + + + + +
- -
+ +
+
+
🚧
+

Now in Beta

+

Changemaker Lite is under active development and breaking changes are still being pushed. A stable release is expected by June 2026.

+ +
+
+ @@ -2274,7 +2834,7 @@
-
+
📨
@@ -2363,7 +2923,7 @@
-
+
🗺
@@ -2448,7 +3008,7 @@
-
+
🎬
@@ -2537,7 +3097,7 @@
-
+
📊
@@ -2608,7 +3168,7 @@
-
+
🛡
@@ -2684,7 +3244,7 @@
-
+
💳
@@ -2755,7 +3315,7 @@
-
+
@@ -2817,7 +3377,7 @@
-
+
🇨🇦
@@ -3851,6 +4411,275 @@ } }; + /* =========================================== + BETA MODAL + =========================================== */ + const BetaModal = { + init() { + const pill = document.getElementById('beta-pill'); + const backdrop = document.getElementById('beta-modal-backdrop'); + const closeBtn = document.getElementById('beta-modal-close'); + if (!pill || !backdrop || !closeBtn) return; + pill.addEventListener('click', () => backdrop.classList.add('open')); + closeBtn.addEventListener('click', () => backdrop.classList.remove('open')); + backdrop.addEventListener('click', (e) => { if (e.target === backdrop) backdrop.classList.remove('open'); }); + document.addEventListener('keydown', (e) => { if (e.key === 'Escape' && backdrop.classList.contains('open')) backdrop.classList.remove('open'); }); + } + }; + + /* =========================================== + TERMINAL COPY — clipboard for install cmd + =========================================== */ + const TerminalCopy = { + init() { + const btn = document.getElementById('hero-copy-btn'); + if (!btn) return; + btn.addEventListener('click', () => { + const cmd = 'curl -fsSL gitea.bnkops.com/admin/changemaker.lite/raw/branch/main/scripts/install.sh | bash'; + navigator.clipboard.writeText(cmd).then(() => { + btn.classList.add('copied'); + btn.querySelector('.copy-label').textContent = 'Copied!'; + setTimeout(() => { + btn.classList.remove('copied'); + btn.querySelector('.copy-label').textContent = 'Copy'; + }, 2000); + }); + }); + } + }; + + /* =========================================== + TYPEWRITER — rotating hero words + =========================================== */ + const Typewriter = { + words: ['campaigns', 'canvassing', 'fundraising', 'newsletters', 'media library', 'volunteer shifts', 'team chat', 'events'], + el: null, + wordIdx: 0, + charIdx: 0, + isDeleting: false, + timeout: null, + + init() { + this.el = document.getElementById('tw-word'); + if (!this.el) return; + if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) { + this.el.textContent = this.words[0]; + return; + } + this.tick(); + }, + + tick() { + const word = this.words[this.wordIdx]; + + if (this.isDeleting) { + this.charIdx--; + } else { + this.charIdx++; + } + + this.el.textContent = word.substring(0, this.charIdx); + + let delay = this.isDeleting ? 40 : 80; + + if (!this.isDeleting && this.charIdx === word.length) { + delay = 2200; + this.isDeleting = true; + } else if (this.isDeleting && this.charIdx === 0) { + this.isDeleting = false; + this.wordIdx = (this.wordIdx + 1) % this.words.length; + delay = 400; + } + + this.timeout = setTimeout(() => this.tick(), delay); + } + }; + + /* =========================================== + FEATURE PILLS — staggered entrance + =========================================== */ + const FeaturePills = { + init() { + const pills = document.querySelectorAll('.hero-pill'); + if (!pills.length) return; + if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) { + pills.forEach(p => p.classList.add('visible')); + return; + } + pills.forEach((pill, i) => { + setTimeout(() => pill.classList.add('visible'), 600 + i * 120); + }); + } + }; + + /* =========================================== + FEATURE SHOWCASE — rotating cards + =========================================== */ + const FeatureShowcase = { + current: 0, + cards: [], + dots: [], + interval: null, + DURATION: 5000, + + init() { + this.cards = document.querySelectorAll('.showcase-card'); + this.dots = document.querySelectorAll('.showcase-dot'); + if (this.cards.length < 2) return; + + this.dots.forEach(dot => { + dot.addEventListener('click', () => { + const idx = parseInt(dot.getAttribute('data-idx'), 10); + if (idx !== this.current) this.goTo(idx); + }); + }); + + this.startAutoplay(); + }, + + goTo(idx) { + const prev = this.cards[this.current]; + prev.classList.remove('active'); + prev.classList.add('exiting'); + setTimeout(() => prev.classList.remove('exiting'), 600); + + this.current = idx; + this.cards[this.current].classList.add('active'); + + this.dots.forEach((d, i) => d.classList.toggle('active', i === idx)); + this.restartAutoplay(); + }, + + next() { + this.goTo((this.current + 1) % this.cards.length); + }, + + startAutoplay() { + this.interval = setInterval(() => this.next(), this.DURATION); + }, + + restartAutoplay() { + clearInterval(this.interval); + this.startAutoplay(); + } + }; + + /* =========================================== + COUNT-UP STATS — animated number counters + =========================================== */ + const CountUpStats = { + init() { + const stats = document.querySelectorAll('.hero-stat-value[data-count]'); + if (!stats.length) return; + if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) { + stats.forEach(el => { + const target = parseInt(el.getAttribute('data-count'), 10); + const prefix = el.getAttribute('data-prefix') || ''; + const suffix = el.getAttribute('data-suffix') || ''; + el.textContent = prefix + target + suffix; + }); + return; + } + + const obs = new IntersectionObserver((entries) => { + entries.forEach(entry => { + if (entry.isIntersecting) { + this.animate(entry.target); + obs.unobserve(entry.target); + } + }); + }, { threshold: 0.5 }); + + stats.forEach(el => obs.observe(el)); + }, + + animate(el) { + const target = parseInt(el.getAttribute('data-count'), 10); + const prefix = el.getAttribute('data-prefix') || ''; + const suffix = el.getAttribute('data-suffix') || ''; + const duration = 1400; + const start = performance.now(); + + const step = (now) => { + const progress = Math.min((now - start) / duration, 1); + const eased = 1 - Math.pow(1 - progress, 3); + const current = Math.round(eased * target); + el.textContent = prefix + current + suffix; + if (progress < 1) requestAnimationFrame(step); + }; + requestAnimationFrame(step); + } + }; + + /* =========================================== + PARTICLE DRIFT — floating background dots + =========================================== */ + const ParticleDrift = { + canvas: null, + ctx: null, + particles: [], + raf: null, + COUNT: 35, + + init() { + this.canvas = document.getElementById('hero-particles'); + if (!this.canvas) return; + if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return; + // Fewer particles on mobile + if (window.innerWidth < 768) this.COUNT = 15; + + this.ctx = this.canvas.getContext('2d'); + this.resize(); + this.createParticles(); + this.loop(); + window.addEventListener('resize', () => this.resize()); + }, + + resize() { + const hero = this.canvas.parentElement; + this.canvas.width = hero.offsetWidth; + this.canvas.height = hero.offsetHeight; + }, + + createParticles() { + this.particles = []; + for (let i = 0; i < this.COUNT; i++) { + this.particles.push({ + x: Math.random() * this.canvas.width, + y: Math.random() * this.canvas.height, + r: Math.random() * 2 + 0.5, + vx: (Math.random() - 0.5) * 0.3, + vy: -(Math.random() * 0.4 + 0.1), + alpha: Math.random() * 0.3 + 0.1, + }); + } + }, + + loop() { + const { ctx, canvas, particles } = this; + ctx.clearRect(0, 0, canvas.width, canvas.height); + + const isDark = document.documentElement.getAttribute('data-theme') !== 'light'; + const baseColor = isDark ? '139, 92, 246' : '111, 66, 193'; + + particles.forEach(p => { + p.x += p.vx; + p.y += p.vy; + // Wrap around + if (p.y < -5) { p.y = canvas.height + 5; p.x = Math.random() * canvas.width; } + if (p.x < -5) p.x = canvas.width + 5; + if (p.x > canvas.width + 5) p.x = -5; + + ctx.beginPath(); + ctx.arc(p.x, p.y, p.r, 0, Math.PI * 2); + ctx.fillStyle = `rgba(${baseColor}, ${p.alpha})`; + ctx.fill(); + }); + + this.raf = requestAnimationFrame(() => this.loop()); + } + }; + /* =========================================== BOOT =========================================== */ @@ -3864,7 +4693,14 @@ FloatingElements.init(); SmoothScroll.init(); FreeModal.init(); + BetaModal.init(); initSearch(); + TerminalCopy.init(); + Typewriter.init(); + FeaturePills.init(); + FeatureShowcase.init(); + CountUpStats.init(); + ParticleDrift.init(); }); })(); diff --git a/mkdocs/site/search/search_index.json b/mkdocs/site/search/search_index.json index 1b81ae08..99e3b73f 100644 --- a/mkdocs/site/search/search_index.json +++ b/mkdocs/site/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"separator":"[\\s\\u200b\\-_,:!=\\[\\]()\"`/]+|\\.(?!\\d)|&[lg]t;|(?!\\b)(?=[A-Z][a-z])","pipeline":["stopWordFilter"],"fields":{"title":{"boost":1000.0},"text":{"boost":1.0},"tags":{"boost":1000000.0}}},"docs":[{"location":"blog/","title":"Blog","text":""},{"location":"blog/2026/03/22/introducing-changemaker-lite-v2/","title":"Introducing Changemaker Lite v2","text":"

Changemaker Lite v2 is a ground-up rebuild of the platform \u2014 same mission, entirely new architecture. After 14 phases of development, the platform is ready for production use.

","tags":["v2","release","self-hosted","FOSS"]},{"location":"blog/2026/03/22/introducing-changemaker-lite-v2/#what-changed","title":"What Changed","text":"

V1 was two independent Express apps stitched together with NocoDB as a data layer. It worked, but scaling features meant fighting the architecture at every turn.

V2 is a unified TypeScript stack:

  • Dual API architecture \u2014 Express.js for the main platform, Fastify for the media library, sharing a single PostgreSQL 16 database via Prisma ORM
  • React admin GUI \u2014 Vite + Ant Design + Zustand, serving admin, public, and volunteer interfaces from one build
  • 30+ Docker services \u2014 from core infrastructure to monitoring, communication, and developer tools
  • JWT authentication with refresh token rotation, role-based access control (11 roles), and a comprehensive security audit
","tags":["v2","release","self-hosted","FOSS"]},{"location":"blog/2026/03/22/introducing-changemaker-lite-v2/#whats-new","title":"What's New","text":"

The feature set has grown substantially:

  • Advocacy campaigns with postal code \u2192 representative lookup, email sending, response walls, and moderation
  • Map & canvassing with multi-provider geocoding, polygon territories, GPS-tracked volunteer sessions, and walking route generation
  • Media manager with video upload, FFprobe metadata extraction, scheduled publishing, analytics, and a public gallery
  • Landing page builder powered by GrapesJS with drag-and-drop editing
  • Payments via encrypted Stripe integration \u2014 products, donations, and subscription plans
  • SMS campaigns via a Termux Android bridge
  • Team communication with self-hosted Rocket.Chat and Jitsi Meet
  • People CRM aggregating contacts across all modules with duplicate detection and merge
  • Volunteer social features \u2014 friend system, achievements, leaderboards, and a personal calendar
  • One-command install \u2014 curl | bash pulls a release tarball and runs the config wizard
","tags":["v2","release","self-hosted","FOSS"]},{"location":"blog/2026/03/22/introducing-changemaker-lite-v2/#why-self-hosted","title":"Why Self-Hosted","text":"

Every subscription to corporate campaign software funds infrastructure you don't control. Your voter lists, canvassing outcomes, and communication patterns become assets on someone else's balance sheet.

Changemaker Lite costs roughly the price of a VPS \u2014 often under $50/month for the full stack. But the real value isn't cost savings. It's control. No vendor can cut off your access. No acquisition can change your terms.

Read more in our Philosophy page.

","tags":["v2","release","self-hosted","FOSS"]},{"location":"blog/2026/03/22/introducing-changemaker-lite-v2/#get-started","title":"Get Started","text":"
curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/v2/scripts/install.sh | bash\n

Or follow the Getting Started guide for a walkthrough.

","tags":["v2","release","self-hosted","FOSS"]},{"location":"blog/2026/03/22/introducing-changemaker-lite-v2/#whats-next","title":"What's Next","text":"

Phase 15 (Testing & Polish) is underway. We're also working on:

  • Social Calendar Phase B (shared views, availability finder)
  • Expanded test coverage
  • Performance optimization for large location datasets

Follow this blog for updates, or subscribe to the newsletter.

","tags":["v2","release","self-hosted","FOSS"]},{"location":"comments/callback/","title":"Signing in...","text":"

Completing sign in...

You will be redirected back to the page you were on.

"},{"location":"docs/","title":"Documentation","text":"

Welcome to the Changemaker Lite documentation. Whether you're a campaign volunteer, an admin managing operations, or a sysadmin deploying the platform \u2014 start here.

","tags":["guide","getting-started"],"boost":2},{"location":"docs/#use-the-platform","title":"Use the Platform","text":"
  • Getting Started

    Install Changemaker Lite, create your first admin account, and explore the dashboard.

    Getting Started

  • Feature Guides

    Campaigns, email advocacy, response walls, map locations, landing pages, and media.

    Feature Guides

  • Administration

    User management, roles and permissions, site settings, email templates, and newsletters.

    Administration

  • Volunteer Guide

    Sign up for shifts, use the canvassing map, record visits, and track your activity.

    Volunteer Guide

","tags":["guide","getting-started"],"boost":2},{"location":"docs/#deploy-operate","title":"Deploy & Operate","text":"
  • Deployment

    Docker Compose setup, environment variables, SSL/TLS, backups, and production checklist.

    Deployment

  • Architecture

    Dual API design, database schema, authentication flow, and system diagram.

    Architecture

  • Services

    Nginx routing, Redis, PostgreSQL, Listmonk, MkDocs, Gitea, NocoDB, and more.

    Services

  • Monitoring

    Prometheus metrics, Grafana dashboards, Alertmanager rules, and health checks.

    Monitoring

","tags":["guide","getting-started"],"boost":2},{"location":"docs/#reference","title":"Reference","text":"
  • API Reference

    REST endpoints for auth, campaigns, locations, shifts, media, and more.

    API Reference

  • Troubleshooting

    Common errors, CORS issues, database problems, tunnel debugging, and FAQ.

    Troubleshooting

  • Security

    Password policy, rate limiting, token rotation, encryption, and audit report.

    Security See Deployment

  • Contributing

    Development setup, code style, git workflow, and pull request guidelines.

    Contributing

","tags":["guide","getting-started"],"boost":2},{"location":"docs/#platform-at-a-glance","title":"Platform at a Glance","text":"Component Technology Purpose Main API Express.js + Prisma Auth, campaigns, map, shifts, pages, email Media API Fastify + Prisma Video library, analytics, upload, scheduling Admin GUI React + Ant Design + Zustand Dashboard for admins and organizers Database PostgreSQL 16 Single shared database for both APIs Cache Redis Rate limiting, BullMQ jobs, geocoding queue Proxy Nginx Subdomain routing, security headers, SSL Tunnel Pangolin + Newt Expose services without port forwarding Monitoring Prometheus + Grafana Metrics, dashboards, alerts

New here?

Start with the Getting Started guide to have the platform running in under 30 minutes.

Looking for the source?

Changemaker Lite is 100% open source. Browse the code on Gitea.

","tags":["guide","getting-started"],"boost":2},{"location":"docs/phil/","title":"Philosophy","text":"","tags":["concept","philosophy","FOSS"]},{"location":"docs/phil/#software-is-political","title":"Software Is Political","text":"

Every tool your movement adopts shapes how you organize. Proprietary platforms reinforce hierarchy \u2014 the vendor decides what features you get, what data you can export, and what happens when you stop paying. Community-controlled tools support democratic autonomy because the people using them decide how they work.

If you do politics, who is reading your secrets? Corporate platforms harvest political intelligence systematically. Facebook chat data has been used in criminal prosecutions. Social media platforms are leveraged for political coordination and surveillance. When you organize on corporate infrastructure, you hand your strategies, your voter data, and your movement's internal conversations to entities that may have every reason to work against you.

Changemaker Lite exists because we believe organizational independence requires technological independence.

","tags":["concept","philosophy","FOSS"]},{"location":"docs/phil/#the-extractive-model","title":"The Extractive Model","text":"

Most campaign and political software is extractive by design. The pattern is familiar:

  1. Free trial hooks you in
  2. Paid features gate the tools you actually need
  3. Data export becomes difficult or impossible
  4. Pricing escalates as you grow and become dependent
  5. Your usage patterns are monetized through data partnerships, behavioral analytics, and enterprise contracts

This isn't a side effect \u2014 it's the business model. You pay with money and with data. Your voter lists, canvassing outcomes, donor records, and communication patterns become assets on someone else's balance sheet.

Every subscription to corporate software funds the machine you're fighting.

","tags":["concept","philosophy","FOSS"]},{"location":"docs/phil/#the-alternative-grow-power-dont-rent-it","title":"The Alternative: Grow Power, Don't Rent It","text":"

Changemaker asks a different question than most political tech: instead of \"how do we extract more data from a community?\" we ask \"what tools are needed to grow change in a community?\"

Growing change means:

  • Making real connections between organizers, volunteers, and community members \u2014 not just collecting their contact info
  • Providing access to the same caliber of tools that well-funded campaigns use \u2014 without the price tag or the surveillance
  • Deeply understanding the wants and needs of your movement \u2014 on infrastructure you control, with data you own
","tags":["concept","philosophy","FOSS"]},{"location":"docs/phil/#distributed-organizing-is-the-way-out","title":"Distributed Organizing Is The Way Out","text":"

Socialist movements will never outspend capital. Progressive organizations cannot compete financially with well-funded conservative movements, and chasing big-donor dollars leads to mission drift and organizational capture \u2014 what some call the Political Industrial Complex.

A thousand neighborhood mailing lists has more potential impact than any single organization. When organizing knowledge and digital tools are widely distributed \u2014 not gatekept by leadership or locked behind vendor paywalls \u2014 movements become genuinely resilient.

The historical pattern is clear: worker victories occurred when organizing knowledge was widely distributed, not concentrated at the top. Changemaker Lite is built on this premise \u2014 provide the tools freely, train people to use them, and get out of the way.

Workers, with the right tools, will build the future.

","tags":["concept","philosophy","FOSS"]},{"location":"docs/phil/#de-corp-your-stack","title":"De-Corp Your Stack","text":"

The practical work of digital sovereignty starts with replacing corporate services one at a time:

Corporate Tool Changemaker Alternative What You Gain Mailchimp Listmonk Unlimited subscribers, no per-send charges, your data stays local NationBuilder Changemaker Lite Full campaign platform without the $50-500/month ransom Google Docs Gitea + Code Server Version control, collaboration, no algorithmic scanning Slack Rocket.Chat Team chat with SSO, no message limits, no corporate eavesdropping SurveyMonkey Response Wall Supporter voices on your terms, with moderation you control Google Maps Self-hosted Leaflet No API fees, no tracking, offline-capable canvassing

The cost reduction is dramatic. Organizations spending thousands monthly on SaaS tools can replace them with a single self-hosted server running Changemaker Lite for roughly the cost of hosting \u2014 often under $50/month.

But the real value isn't cost savings. It's control. No vendor can cut off your access. No acquisition can change your terms. No government can compel a foreign company to hand over your data. Your movement's digital infrastructure belongs to your movement.

","tags":["concept","philosophy","FOSS"]},{"location":"docs/phil/#security-culture-starts-with-infrastructure","title":"Security Culture Starts With Infrastructure","text":"

Security culture isn't just about who knows what \u2014 it's about who can know what. When your communications run through corporate servers, you've made a structural decision about who has access before you've even thought about operational security.

Key principles:

  • Compartmentalization by design \u2014 Self-hosted systems let you control exactly who has access to what, at the infrastructure level
  • No third-party access \u2014 No corporate subpoenas for your data, no partnership agreements sharing your information
  • Audit everything \u2014 When you run the servers, you can verify that your security promises are real, not just marketing
  • Consent and autonomy \u2014 Your community sets its own security boundaries rather than accepting whatever a vendor's privacy policy allows

You wouldn't hold a sensitive strategy meeting in a room wired by someone else. Why would you plan your campaign on someone else's servers?

","tags":["concept","philosophy","FOSS"]},{"location":"docs/phil/#our-principles","title":"Our Principles","text":"

Liberation First Technology should center marginalized voices. The tools we build reflect the values we hold, and they shape the movements that use them.

Community Over Profit Changemaker Lite is free and open source software, built by a cooperative \u2014 not a startup looking for an exit. There are no shareholders to satisfy, no venture capitalists to answer to. The software serves the community because that's the only thing it's designed to do.

Data Sovereignty Communities should own their complete digital infrastructure. Not just the content \u2014 the servers, the databases, the encryption keys, and the ability to pack up and leave at any time.

Radical Accessibility Self-hosted doesn't have to mean self-excluding. Changemaker Lite is designed for organizers, not sysadmins. If you can follow a guide to set up a WordPress site, you can run this platform.

","tags":["concept","philosophy","FOSS"]},{"location":"docs/phil/#further-reading","title":"Further Reading","text":"

These articles explore the ideas behind Changemaker Lite in depth:

  • If You Do Politics, Who Is Reading Your Secrets? \u2014 Why you should de-corp your software stack
  • Distributed Digital Organizing Is The Way Out \u2014 Why decentralized power structures outperform centralized ones
  • How Not To Get Got Making Content \u2014 Platform independence for political content creators
  • What Is Security Culture? \u2014 The foundations of security culture for movements
","tags":["concept","philosophy","FOSS"]},{"location":"docs/admin/","title":"Admin Guide","text":"

The admin panel at /app is your command center for managing the entire platform. Use the sidebar to navigate between modules, or press Ctrl+K to open the command palette for quick access to any page, setting, or action.

","tags":["guide","admin"]},{"location":"docs/admin/#sections","title":"Sections","text":"
  • Dashboard

    Live overview of platform activity, upcoming shifts, email stats, and service health.

  • People & Access

    User management, roles, the People CRM, and contact merging.

  • Advocacy

    Campaigns, response moderation, representative lookup, and email queue monitoring.

  • Broadcast

    Newsletter sync, email templates, and SMS campaigns.

  • Web Content

    Landing pages, homepage, navigation menu, and documentation management.

  • Map & Canvassing

    Locations, areas, shifts, canvassing dashboard, data quality, and map settings.

  • Media

    Video/photo library, analytics, playlists, comment moderation, and gallery ads.

  • Payments

    Products, donations, subscription plans, and Stripe configuration.

  • Services

    Tunnel management, monitoring, and third-party integrations.

  • Settings

    Organization branding, theme colors, email config, feature toggles, and notifications.

","tags":["guide","admin"]},{"location":"docs/admin/#roles-reference","title":"Roles Reference","text":"Role Access Level SUPER_ADMIN Full platform access \u2014 implicitly bypasses all role checks INFLUENCE_ADMIN Campaigns, responses, representatives, email queue MAP_ADMIN Locations, areas, shifts, canvassing, data quality BROADCAST_ADMIN Newsletter sync, email templates CONTENT_ADMIN Landing pages, homepage, navigation, documentation MEDIA_ADMIN Video library, analytics, gallery, moderation, ads PAYMENTS_ADMIN Products, donations, plans, Stripe configuration EVENTS_ADMIN Gancio event sync and calendar management SOCIAL_ADMIN Social connections, achievements, calendar layers USER Volunteer portal only TEMP Limited volunteer access (auto-created on shift signup)","tags":["guide","admin"]},{"location":"docs/admin/dashboard/","title":"Dashboard","text":"

The admin dashboard (/app) provides a real-time overview of platform activity.

","tags":["guide","admin"]},{"location":"docs/admin/dashboard/#dashboard-cards","title":"Dashboard Cards","text":"
  • Platform Stats \u2014 active campaigns, total emails sent, registered users, and location count
  • Activity Feed \u2014 recent events across all modules (signups, emails, visits, responses)
  • Upcoming Shifts \u2014 next scheduled volunteer shifts with signup counts
  • Newsletter Stats \u2014 Listmonk subscriber counts and recent campaign performance
  • Chat Activity \u2014 Rocket.Chat channel activity and online users (when chat is enabled)
  • Service Health \u2014 connectivity status for integrated services (Gitea, Gancio, Vaultwarden, etc.)

All cards auto-refresh and gracefully degrade when their associated module is disabled.

","tags":["guide","admin"]},{"location":"docs/admin/people-access/","title":"People & Access","text":"

Manage platform user accounts and roles, and use the People CRM to get a unified view of every supporter, donor, and volunteer across all modules.

","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#user-management","title":"User Management","text":"","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#creating-users","title":"Creating Users","text":"

Navigate to Users (/app/users) and click Add User. Fill in name, email, and role. The user will receive a welcome email with login instructions.

","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#roles","title":"Roles","text":"Role Access Use Case SUPER_ADMIN Full platform access Campaign managers INFLUENCE_ADMIN Campaigns, responses, email queue Advocacy coordinators MAP_ADMIN Locations, areas, shifts, canvassing Field organizers USER Volunteer portal only Active volunteers TEMP Limited volunteer access Shift signups (auto-created)","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#password-policy","title":"Password Policy","text":"

Passwords must be at least 12 characters with uppercase, lowercase, and a digit. This is enforced at the API schema level.

","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#deactivating-users","title":"Deactivating Users","text":"

Edit a user from the Users page and toggle their active status. Deactivated users cannot log in but their data is preserved. Banned users have their sessions invalidated immediately.

","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#service-accounts-panel","title":"Service Accounts Panel","text":"

When editing a user, the Service Accounts panel shows provisioning status for each integrated service (Rocket.Chat, Gitea, Vaultwarden, Listmonk). You can provision, deprovision, or re-sync individual services per user.

","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#people-crm","title":"People CRM","text":"

Enable with enablePeople in Settings. The People module serves as the platform's CRM, aggregating data from all other modules into a unified view.

","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#virtual-aggregation","title":"Virtual Aggregation","text":"

The People page does not store a separate \"people\" table. Instead, it aggregates records in real time from seven data sources:

Source Data Users Platform accounts (name, email, phone, last login) Address Occupants Named residents from the map/canvassing module Campaign Senders People who sent advocacy emails Shift Signups Volunteer shift registrants SMS Contacts Contacts from SMS campaign lists Donations/Orders Buyers from the payments module Manual Contacts created directly in the CRM

Records are deduplicated by normalized email or phone number, with Users taking highest priority.

","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#managed-contacts","title":"Managed Contacts","text":"

Any virtual person can be \"promoted\" to a managed Contact record. This creates a persistent Contact entity in the database with:

  • Display name, first/last name \u2014 editable independently of the source
  • Tags \u2014 custom CRM tags for segmentation and filtering
  • Notes \u2014 free-text notes field
  • Support level \u2014 LEVEL_1 (Strong) through LEVEL_4 (Opposition)
  • Opt-out flags \u2014 email opt-out, SMS opt-out, and do-not-contact
  • Sign requested \u2014 track yard sign status
","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#contact-details","title":"Contact Details","text":"

Each managed contact supports multiple structured data entries:

  • Addresses \u2014 link to map locations with optional unit numbers and primary flag; new addresses can be auto-added to the map for geocoding
  • Emails \u2014 multiple email addresses with labels (e.g., Personal, Work) and primary designation
  • Phones \u2014 multiple phone numbers with labels and primary designation
","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#activity-timeline","title":"Activity Timeline","text":"

View a chronological timeline of all interactions for a person, across every module:

  • Advocacy emails sent and responses submitted
  • Shift signups and canvass visits
  • Donations and product purchases
  • SMS messages sent and received
  • Video views
  • Notes added and contact merges
","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#duplicate-detection-and-merge","title":"Duplicate Detection and Merge","text":"

The platform identifies potential duplicates by matching normalized email addresses and phone numbers across sources. The merge workflow lets you:

  • Select which fields to keep from the source vs. target contact
  • Merge tags, addresses, emails, and phones
  • Preserve the full audit trail (merged contacts are soft-linked, not deleted)
","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#connection-graph","title":"Connection Graph","text":"

Build a relationship graph between contacts using typed connections:

  • Connection types \u2014 Household, Family, Colleague, Referred By, and Custom
  • Bidirectional \u2014 connections can be one-way or mutual
  • Visual graph \u2014 interactive force-directed graph visualization showing contacts as nodes and connections as edges
  • Configurable depth \u2014 explore up to 3 degrees of separation
","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#profile-links","title":"Profile Links","text":"

Generate shareable public profile pages for contacts:

  • Unique token URLs at /profile/:token
  • Configurable expiration \u2014 24 hours, 7 days, 30 days, 90 days, 1 year, or never
  • Optional password protection \u2014 require a PIN or password to view
","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#household-detection","title":"Household Detection","text":"

The Household panel groups contacts who share the same physical address, making it easy to see all members of a household and their combined engagement.

","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#create-user-from-contact","title":"Create User from Contact","text":"

Promote a CRM contact to a full platform user account directly from the People interface, with role assignment and optional welcome email.

","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#admin-routes","title":"Admin Routes","text":"
  • /app/users \u2014 user CRUD, role assignment, service accounts
  • /app/people \u2014 contact list with search, filters, source/tag filtering, and bulk actions
","tags":["guide","admin","CRM"]},{"location":"docs/admin/settings/","title":"Platform Settings","text":"

Centralized configuration for organization identity, theming, email delivery, feature modules, and automated notifications.

","tags":["guide","admin","configuration"]},{"location":"docs/admin/settings/#settings-tabs","title":"Settings Tabs","text":"","tags":["guide","admin","configuration"]},{"location":"docs/admin/settings/#organization","title":"Organization","text":"

Configure your organization's public identity:

  • Organization Name \u2014 displayed in the admin sidebar, public pages, and emails
  • Short Name \u2014 shown when the admin sidebar is collapsed (max 10 characters)
  • Logo URL \u2014 displayed on the login page, homepage hero, and public navigation
  • Favicon URL \u2014 browser tab icon
  • Footer Text \u2014 shown in public page footers
  • Login Subtitle \u2014 displayed below the organization name on the login page
","tags":["guide","admin","configuration"]},{"location":"docs/admin/settings/#theme-colors","title":"Theme Colors","text":"

Customize the look of admin and public interfaces:

Admin theme:

  • Primary color (accent color for buttons, links, active states)
  • Background color (page background)

Public theme:

  • Primary color
  • Background color
  • Container color (card and section backgrounds)
  • Header gradient (CSS gradient string for the public navigation bar)

A live preview panel shows color swatches and a gradient preview as you configure.

","tags":["guide","admin","configuration"]},{"location":"docs/admin/settings/#email","title":"Email","text":"

Configure how the platform sends emails:

  • Sender \u2014 from name and from address for all outgoing emails
  • Active SMTP provider \u2014 toggle between MailHog (testing) and Production SMTP with a single click
  • Production SMTP \u2014 host, port, username, and password (collapsible panel, disabled when MailHog is active)
  • Test mode \u2014 when enabled, all emails redirect to a single test recipient address
  • Test actions \u2014 \"Test Connection\" verifies SMTP connectivity; \"Send Test Email\" delivers a test message through the active provider

A configuration summary card at the top displays the current provider, server, authentication status, and test mode state.

","tags":["guide","admin","configuration"]},{"location":"docs/admin/settings/#feature-toggles","title":"Feature Toggles","text":"

Enable or disable platform modules. Disabling a module hides it from navigation but does not delete data.

Category Flag Description Core Platform enableInfluence Advocacy campaigns, email sending, response wall enableMap Map, locations, canvassing, volunteer shifts enableNewsletter Listmonk newsletter sync enableLandingPages GrapesJS landing page builder Media & Content enableMediaFeatures Video library, public gallery, analytics enableGalleryAds Promotional cards in the video gallery enableEvents Gancio event calendar integration Communication enableChat Rocket.Chat team coordination enableMeet Jitsi video meetings (integrates with Rocket.Chat) enableSms Termux Android SMS campaigns People & Engagement enablePeople Unified contacts CRM enableSocial Volunteer social connections and activity feeds autoSyncPeopleToMap Auto-create map locations from contact addresses Commerce enablePayments Stripe subscriptions, products, and donations","tags":["guide","admin","configuration"]},{"location":"docs/admin/settings/#notifications","title":"Notifications","text":"

Control which automated email notifications the platform sends. Disabling a notification stops future emails but does not affect already-queued jobs.

Admin alerts:

  • New shift signup
  • Response wall submission
  • Yard sign request (from canvassing)
  • Shift cancellation

Volunteer emails:

  • Canvass session summary (sent after completing a session)
  • Signup cancellation confirmation
  • 24-hour pre-shift reminder
  • Post-shift thank-you (sent 2 hours after shift ends)

Re-engagement:

  • Re-engagement emails for inactive volunteers
  • Configurable inactivity threshold (days without activity)
  • Configurable cooldown period (minimum days between re-engagement emails)
","tags":["guide","admin","configuration"]},{"location":"docs/admin/settings/#admin-routes","title":"Admin Routes","text":"
  • /app/settings \u2014 multi-tab settings page (supports deep-linking to a specific tab via router state)
","tags":["guide","admin","configuration"]},{"location":"docs/admin/advocacy/","title":"Advocacy","text":"

The advocacy module helps supporters contact their elected representatives through email campaigns.

","tags":["guide","admin","influence"]},{"location":"docs/admin/advocacy/#in-this-section","title":"In This Section","text":"
  • Campaigns \u2014 create and publish advocacy campaigns with postal code lookup and response tracking
  • Responses \u2014 moderate the public response wall where supporters share representative replies
  • Representatives \u2014 manage the representative lookup cache powered by the Represent API
  • Email Queue \u2014 monitor outgoing advocacy emails, retry failures, and view delivery stats
","tags":["guide","admin","influence"]},{"location":"docs/admin/advocacy/campaigns/","title":"Advocacy Campaigns","text":"

Help supporters contact their elected representatives through email campaigns.

","tags":["guide","admin","influence","campaigns"]},{"location":"docs/admin/advocacy/campaigns/#how-it-works","title":"How It Works","text":"
  1. An admin creates a campaign \u2014 writes the email subject and body, selects which government levels to target (federal, provincial, municipal, school board), and publishes it.
  2. A supporter visits the campaign page \u2014 enters their postal code to look up their representatives.
  3. The supporter sends the email \u2014 either directly through the platform (\"Send Now\") or by opening it in their own email app (Gmail, Outlook, etc.).
  4. Responses get tracked \u2014 supporters and admins can share representative responses on the Response Wall, with upvoting and moderation.
","tags":["guide","admin","influence","campaigns"]},{"location":"docs/admin/advocacy/campaigns/#key-features","title":"Key Features","text":"
  • Postal code lookup \u2014 powered by the Represent API, returns representatives at all government levels
  • Two send methods \u2014 server-sent SMTP (tracked) or mailto link (opens user's email app)
  • Email editing \u2014 optionally let supporters personalize the email before sending
  • Response Wall \u2014 public wall where people share how their representatives responded, with moderation and verification
  • Campaign stats \u2014 track emails sent, responses received, and upvotes
  • Featured campaigns \u2014 highlight important campaigns on the public listing page
","tags":["guide","admin","influence","campaigns"]},{"location":"docs/admin/advocacy/campaigns/#user-submitted-campaigns","title":"User-Submitted Campaigns","text":"

Registered (non-temporary) users can create their own advocacy campaigns and submit them for admin review.

  • Public submission route \u2014 users visit /campaigns/create to draft a campaign through a guided wizard
  • 3-step wizard \u2014 the submission flow walks users through campaign details (title, description, government levels), email template (subject and body), and a final review step before submitting
  • My campaigns dashboard \u2014 users can view and manage their submitted campaigns at /campaigns/mine, including checking moderation status and editing campaigns that have been sent back for changes
  • Restricted fields \u2014 user-submitted campaigns have limited options compared to admin-created ones (no SMTP sending, no highlight, no custom recipients); only the mailto link fallback is enabled by default
  • Auto-moderation status \u2014 newly submitted campaigns start in PENDING_REVIEW status and remain in DRAFT until an admin approves them
  • Edit restrictions \u2014 users can only edit their own campaigns, and only when the moderation status is PENDING_REVIEW or CHANGES_REQUESTED; editing automatically resets the status back to PENDING_REVIEW
  • Rate limiting \u2014 campaign submissions are rate-limited to 5 per hour per IP to prevent abuse
  • XSS protection \u2014 all user-supplied text (title, description, email subject, email body) is HTML-escaped before storage
","tags":["guide","admin","influence","campaigns"]},{"location":"docs/admin/advocacy/campaigns/#campaign-moderation","title":"Campaign Moderation","text":"

Admins review user-submitted campaigns before they go live.

  • Moderation queue \u2014 accessible at /app/campaign-moderation, showing all user-generated campaigns filtered by moderation status (pending, approved, rejected, changes requested)
  • Moderation actions \u2014 for each campaign in the queue, admins can:
    • Approve \u2014 sets the moderation status to APPROVED and the campaign status to ACTIVE, making it publicly visible
    • Reject \u2014 marks the campaign as REJECTED with an optional reason visible to the submitter
    • Request changes \u2014 sets the status to CHANGES_REQUESTED with feedback, allowing the user to revise and resubmit
  • Moderation stats \u2014 the queue page displays counters for total user-generated campaigns, pending reviews, approved, rejected, and changes-requested counts
  • Reviewer tracking \u2014 each moderation action records the reviewer's user ID and timestamp
  • Search and filter \u2014 the moderation queue supports searching by campaign title, submitter name, or email, and filtering by moderation status
","tags":["guide","admin","influence","campaigns"]},{"location":"docs/admin/advocacy/campaigns/#campaign-analytics","title":"Campaign Analytics","text":"

The Campaign Effectiveness dashboard provides cross-campaign performance analytics at /app/influence/effectiveness.

  • Performance tab \u2014 per-campaign KPIs including total emails sent, email delivery status breakdown, response counts, response rates, and call counts; top campaigns visualized as a horizontal bar chart
  • Representatives tab \u2014 tracks individual representative responsiveness across all campaigns; shows emails received, responses given, verified response count, and response rate per representative; sortable by response count, response rate, or name; includes government level distribution
  • Geography tab \u2014 engagement breakdown by geographic area; group results by postal code, city, or province; enriched with city/province data from the postal code cache
  • Funnel tab \u2014 conversion funnel visualization showing progression from emails sent to unique participants to responses received to verified responses, plus calls made; includes percentage-of-first and stage-to-stage dropoff rates
  • Trends tab \u2014 time-series activity chart showing daily or weekly email and response volumes; default view covers the last 30 days; merged email and response series for side-by-side comparison
  • Global filters \u2014 all tabs share campaign and date range filters; select a specific campaign or view aggregate data across all campaigns
","tags":["guide","admin","influence","campaigns"]},{"location":"docs/admin/advocacy/campaigns/#admin-routes","title":"Admin Routes","text":"
  • /app/campaigns \u2014 create, edit, and manage campaigns
  • /app/campaign-moderation \u2014 review and moderate user-submitted campaigns
  • /app/influence/effectiveness \u2014 campaign effectiveness analytics dashboard
  • /app/responses \u2014 moderate submitted responses
  • /app/email-queue \u2014 monitor outgoing email delivery
","tags":["guide","admin","influence","campaigns"]},{"location":"docs/admin/advocacy/campaigns/#public-routes","title":"Public Routes","text":"
  • /campaigns \u2014 browse active campaigns
  • /campaigns/create \u2014 submit a new user-generated campaign (requires login)
  • /campaigns/mine \u2014 view and manage your submitted campaigns (requires login)
  • /campaign/:slug \u2014 take action on a specific campaign
  • /campaign/:slug/responses \u2014 view the response wall
","tags":["guide","admin","influence","campaigns"]},{"location":"docs/admin/advocacy/email-queue/","title":"Email Queue","text":"

Monitor outgoing advocacy emails processed through the BullMQ queue.

","tags":["guide","admin","influence","email"]},{"location":"docs/admin/advocacy/email-queue/#key-features","title":"Key Features","text":"
  • Queue dashboard \u2014 view pending, active, completed, and failed jobs at /app/email-queue
  • Job details \u2014 inspect individual email jobs with recipient, subject, status, and timestamps
  • Retry failed jobs \u2014 re-queue emails that failed due to SMTP errors or timeouts
  • Clear completed \u2014 bulk-remove completed jobs to keep the queue clean
  • Stats \u2014 total sent, delivery rate, and average processing time
","tags":["guide","admin","influence","email"]},{"location":"docs/admin/advocacy/email-queue/#admin-routes","title":"Admin Routes","text":"
  • /app/email-queue \u2014 email queue monitoring and management
","tags":["guide","admin","influence","email"]},{"location":"docs/admin/advocacy/representatives/","title":"Representatives","text":"

The platform uses the Represent API to look up elected representatives by postal code across all government levels.

","tags":["guide","admin","influence"]},{"location":"docs/admin/advocacy/representatives/#how-it-works","title":"How It Works","text":"
  • Postal code lookup \u2014 enter a Canadian postal code to retrieve federal, provincial, municipal, and school board representatives
  • Redis cache \u2014 lookup results are cached to reduce API calls and improve response times
  • Cache management \u2014 view cache status and clear entries from /app/representatives
  • Government levels \u2014 campaigns can target specific levels (federal, provincial, municipal, school board)
","tags":["guide","admin","influence"]},{"location":"docs/admin/advocacy/representatives/#admin-routes","title":"Admin Routes","text":"
  • /app/representatives \u2014 representative cache management and lookup testing
","tags":["guide","admin","influence"]},{"location":"docs/admin/advocacy/responses/","title":"Response Moderation","text":"

Review and moderate representative responses submitted by supporters on the public response wall.

","tags":["guide","admin","influence","moderation"]},{"location":"docs/admin/advocacy/responses/#key-features","title":"Key Features","text":"
  • Moderation queue \u2014 review submissions at /app/responses with filtering by campaign and status
  • Verification \u2014 mark responses as verified to display a trust badge on the public wall
  • Upvoting \u2014 supporters can upvote responses; counts are visible on the public wall
  • Approve / reject \u2014 control which responses appear publicly
  • Response stats \u2014 track response counts per campaign and per representative
","tags":["guide","admin","influence","moderation"]},{"location":"docs/admin/advocacy/responses/#admin-routes","title":"Admin Routes","text":"
  • /app/responses \u2014 response moderation dashboard
","tags":["guide","admin","influence","moderation"]},{"location":"docs/admin/broadcast/","title":"Broadcast","text":"

Reach supporters through multiple channels \u2014 email newsletters, templated campaigns, and SMS text messages.

","tags":["guide","admin","broadcast"]},{"location":"docs/admin/broadcast/#in-this-section","title":"In This Section","text":"
  • Newsletter \u2014 Listmonk integration with automatic subscriber sync from shifts, campaigns, and contacts
  • Email Templates \u2014 reusable templates with variable substitution, version history, and test sending
  • SMS \u2014 text message campaigns via a Termux Android bridge with contact lists and response tracking
","tags":["guide","admin","broadcast"]},{"location":"docs/admin/broadcast/email-templates/","title":"Email Templates","text":"

Create reusable email templates with variable substitution for campaign communications. Templates are used by advocacy campaigns, shift confirmations, volunteer re-engagement emails, and other automated communications.

","tags":["guide","admin","broadcast","email"]},{"location":"docs/admin/broadcast/email-templates/#template-categories","title":"Template Categories","text":"

Each template belongs to a category that determines where it can be used:

  • INFLUENCE -- advocacy campaign emails sent to representatives
  • MAP -- shift confirmation, volunteer thank-you, and canvassing-related emails
  • SYSTEM -- account verification, password reset, and platform notifications
  • PAYMENT -- donation receipts, subscription confirmations, and purchase orders
","tags":["guide","admin","broadcast","email"]},{"location":"docs/admin/broadcast/email-templates/#variable-system","title":"Variable System","text":"

Templates use Handlebars-style {{VARIABLE_NAME}} placeholders that are replaced at send time. Variables must use uppercase letters and underscores (e.g., {{RECIPIENT_NAME}}, {{CAMPAIGN_TITLE}}).

  • Text variables -- simple string substitution for names, dates, URLs, and other text
  • Video variables -- embed a media library video by referencing its ID
  • Conditional blocks -- show or hide content with {{#if VARIABLE}}...{{/if}} syntax
  • Required vs optional -- each variable can be marked as required, with sample values for test emails

The template validator automatically extracts all variables from the HTML, text, and subject line content and checks for unmatched conditional blocks.

","tags":["guide","admin","broadcast","email"]},{"location":"docs/admin/broadcast/email-templates/#version-history","title":"Version History","text":"

Every change to a template's subject line, HTML content, or text content creates a new version. The full version history is preserved, and any previous version can be restored:

  • Version browsing -- view the subject, HTML, and text content of any past version
  • Rollback -- restore a previous version (creates a new version entry, preserving the audit trail)
  • Change notes -- each version includes a description of what changed
  • Author tracking -- versions record which admin made each change
","tags":["guide","admin","broadcast","email"]},{"location":"docs/admin/broadcast/email-templates/#test-emails","title":"Test Emails","text":"

Before activating a template, send a test email to verify rendering:

  • Variable substitution -- provide test data for each variable to preview the final output
  • Recipient selection -- send the test to any email address
  • Test log -- all test sends are logged with success/failure status and message IDs
  • Rate limited -- 10 test emails per 15 minutes per user to prevent abuse
","tags":["guide","admin","broadcast","email"]},{"location":"docs/admin/broadcast/email-templates/#template-caching","title":"Template Caching","text":"

Rendered templates are cached in memory for performance. The cache is automatically cleared when a template is created, updated, or deleted. Admins can also manually clear the cache from the admin interface.

","tags":["guide","admin","broadcast","email"]},{"location":"docs/admin/broadcast/email-templates/#admin-routes","title":"Admin Routes","text":"
  • /app/email-templates -- create and manage email templates with a visual editor
","tags":["guide","admin","broadcast","email"]},{"location":"docs/admin/broadcast/newsletter/","title":"Newsletter (Listmonk)","text":"

Integrated with Listmonk for opt-in mailing lists and newsletter campaigns. Enable with LISTMONK_SYNC_ENABLED=true.

","tags":["guide","admin","broadcast","email"]},{"location":"docs/admin/broadcast/newsletter/#managed-lists","title":"Managed Lists","text":"

The platform automatically creates and maintains 13 subscriber lists in Listmonk:

List Name Source Tags All Contacts All synced records v2 Campaign Participants Users who sent advocacy emails v2, influence Locations - All Address occupants with email v2, map Support Level 1-4 Addresses by canvass support level v2, map, support Has Campaign Sign Addresses with a yard sign v2, map, signs Users Active non-temp platform accounts v2, users Volunteers Shift signups v2, map, shifts Canvassers Users who completed canvass sessions v2, map, canvass Subscribers Active paid subscribers v2, payments Donors Users who completed a donation v2, payments","tags":["guide","admin","broadcast","email"]},{"location":"docs/admin/broadcast/newsletter/#bulk-sync","title":"Bulk Sync","text":"

The admin panel provides a manual \"Sync All\" action that synchronizes four data sources to Listmonk:

  1. Campaign participants -- distinct email senders from advocacy campaigns
  2. Location contacts -- address occupants with email, mapped to support level and sign lists
  3. Users -- active platform accounts (excludes TEMP users)
  4. CRM tags -- contacts tagged in the People module, synced to tag-linked Listmonk lists

Each source upserts subscribers (creates new or merges into existing), preserving existing list memberships and merging metadata attributes.

","tags":["guide","admin","broadcast","email"]},{"location":"docs/admin/broadcast/newsletter/#event-driven-sync","title":"Event-Driven Sync","text":"

In addition to bulk sync, the platform fires real-time subscriber upserts on application events:

  • Shift signup -- adds to Volunteers list
  • Canvass session completed -- adds to Canvassers list
  • Campaign email sent -- adds to Campaign Participants list
  • Subscription activated -- adds to Subscribers list
  • Donation completed -- adds to Donors list
  • Product purchased -- adds to Donors list
  • Address updated (canvass visit) -- updates support level list membership
  • Re-engagement email sent -- updates Volunteers list metadata
  • CRM tag changed -- adds/removes from tag-linked Listmonk lists

All event-driven syncs are fire-and-forget and silently fail if Listmonk is unreachable.

","tags":["guide","admin","broadcast","email"]},{"location":"docs/admin/broadcast/newsletter/#admin-routes","title":"Admin Routes","text":"
  • /app/listmonk (sidebar: \"Newsletter\") -- sync status, subscriber counts, campaign stats, and manual sync trigger
","tags":["guide","admin","broadcast","email"]},{"location":"docs/admin/broadcast/sms/","title":"SMS Campaigns","text":"

Text message outreach via a Termux Android bridge. Uses a real Android phone to send and receive SMS \u2014 no third-party SMS gateway or Twilio account needed.

Enable with ENABLE_SMS=true or via the setup wizard.

","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#architecture-overview","title":"Architecture Overview","text":"

The SMS system uses a three-tier architecture where your server communicates with a lightweight Python Flask API running on an Android phone:

graph LR\n    A[Admin Dashboard<br/>Campaign UI] -->|API calls| B[Express API<br/>BullMQ Queue]\n    B -->|HTTP + API Key| C[Android Phone<br/>Flask on Termux]\n    C -->|termux-sms-send| D[Android SMS]\n    D -->|Carrier Network| E[Recipients]\n    E -->|Reply SMS| D\n    D -->|termux-sms-list| C\n    C -->|HTTP response| B

Why this approach?

  • No SaaS dependency \u2014 your phone is the SMS gateway, no Twilio/MessageBird/etc.
  • Real phone number \u2014 recipients see a real number, not a short code
  • Two-way messaging \u2014 incoming replies sync automatically
  • Low cost \u2014 just your phone plan's SMS allowance
  • Full control \u2014 FOSS stack end-to-end
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#prerequisites","title":"Prerequisites","text":"

Before starting setup, you'll need:

Item Details Android phone Any Android 7+ device with an active SIM card and SMS plan Termux Terminal emulator \u2014 install from F-Droid (not Play Store) Termux:API Termux plugin for SMS/contacts/battery \u2014 install from F-Droid Tailscale (recommended) VPN mesh for stable IP \u2014 install from Play Store Network access Phone must be reachable from the server (Tailscale, LAN, or port forwarding)

Both Apps MUST Come from F-Droid

The Play Store version of Termux is abandoned and incompatible with the API plugin. If you install Termux from the Play Store and Termux:API from F-Droid (or vice versa), SMS commands will fail with:

Termux:API is not yet available on Google Play

Fix: Uninstall both apps, then reinstall both from F-Droid. They must come from the same source because Android verifies matching app signatures for inter-process communication.

","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#phone-setup","title":"Phone Setup","text":"","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#step-1-install-apps-from-f-droid","title":"Step 1: Install Apps from F-Droid","text":"

On your Android phone:

  1. Install F-Droid \u2014 download from f-droid.org if you don't have it
  2. Install Termux \u2014 search in F-Droid and install
  3. Install Termux:API \u2014 search in F-Droid and install
  4. Install Termux:Boot (optional) \u2014 for auto-start on phone reboot. Open once after install to register.
  5. Install Tailscale (recommended) \u2014 from Play Store, connect to your tailnet for a stable IP

termux-api package

You need two things called \"termux-api\": the F-Droid app (Termux:API) and the Termux package (pkg install termux-api). The setup script installs the package automatically, but the F-Droid app must be installed manually.

","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#step-2-generate-api-key","title":"Step 2: Generate API Key","text":"

Go to the admin dashboard SMS Setup page (/app/sms/setup) and click Generate API Key. Copy the key \u2014 you'll paste it into the setup command.

","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#step-3-run-the-setup-script","title":"Step 3: Run the Setup Script","text":"

Open Termux on the phone and run:

# Clone the SMS server (first time only)\npkg install -y git && git clone https://gitea.bnkops.com/admin/campaign_connector.git ~/sms-server\n\n# Run the setup script \u2014 paste your API key at the end\nbash ~/sms-server/android/setup.sh YOUR_API_KEY_HERE\n

The setup script automatically:

  • Installs Python, Flask, termux-api, and openssh
  • Saves the API key to ~/.bashrc
  • Requests SMS and Contacts permissions (tap Allow when prompted)
  • Creates a Termux:Boot auto-start script (if Termux:Boot is installed)
  • Starts the SMS server

When done, note the Phone URL displayed (e.g. http://100.64.0.5:5001).

","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#recommended-install-service-supervisor","title":"Recommended: Install Service Supervisor","text":"

After initial setup, install termux-services for reliable process management. This uses runit, a proper UNIX service supervisor that automatically restarts the server if it crashes:

cd ~/sms-server && bash android/setup-services.sh\n

This registers two supervised services:

  • sms-api \u2014 Flask SMS API server (port 5001)
  • sshd-custom \u2014 SSH daemon for remote management (port 8022)
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#step-4-prevent-android-from-killing-termux","title":"Step 4: Prevent Android from Killing Termux","text":"

This is required for the server to run reliably in the background:

  1. Open Android Settings \u2192 Apps \u2192 Termux \u2192 Battery \u2192 set to Unrestricted
  2. Lock Termux in the recent apps view (long-press the app card \u2192 Lock/Pin)
  3. Samsung phones: also add Termux to Settings \u2192 Device Care \u2192 Battery \u2192 Never Sleeping Apps
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#updating","title":"Updating","text":"

To pull the latest server code and re-run setup:

cd ~/sms-server && git pull && bash android/setup.sh YOUR_API_KEY_HERE\n
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#service-management","title":"Service Management","text":"

If you installed termux-services (recommended):

# Check status\nsv status sms-api\n\n# Restart\nsv restart sms-api\n\n# Stop\nsv down sms-api\n\n# Start\nsv up sms-api\n\n# View logs\ntail -f ~/logs/sms-api.log\n\n# Health check\ncurl http://127.0.0.1:5001/health\n

Without termux-services (legacy watchdog):

# Check if the server is running\ncurl http://127.0.0.1:5001/health\n\n# Restart manually\ncd ~/sms-server/android && bash sms-watchdog.sh\n
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#accessing-the-phone","title":"Accessing the Phone","text":"

There are several ways to run commands on the phone:

","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#direct-on-phone","title":"Direct (on phone)","text":"

Simply open the Termux app and type commands. Best for initial setup.

","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#ssh-remote-access","title":"SSH (remote access)","text":"

Start the SSH server in Termux, then connect from your computer:

# On the phone (first time only):\npkg install openssh\npasswd  # Set a password\nsshd    # Start SSH server on port 8022\n\n# From your computer:\nssh -p 8022 your-phone-ip\n# Or with Tailscale:\nssh -p 8022 100.x.x.x\n
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#scrcpy-screen-mirror","title":"scrcpy (screen mirror)","text":"

Mirror the phone screen to your computer \u2014 great for setup:

# Install scrcpy on your computer (Ubuntu)\nsudo apt install scrcpy\n\n# Connect via USB\nscrcpy\n\n# Or wireless (phone must be on same network)\nscrcpy --tcpip=phone-ip:5555\n
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#setup-wizard","title":"Setup Wizard","text":"

The admin panel provides a guided three-step wizard at /app/sms/setup:

","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#step-1-prepare-phone","title":"Step 1: Prepare Phone","text":"

Walks you through installing apps, cloning the server, setting the API key, and starting the Flask server. Generates a shared API key that both the server and phone use for authentication.

","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#step-2-connect","title":"Step 2: Connect","text":"

Choose how to find your phone's IP address:

Tailscale Auto-Discovery (Recommended)Manual URL Entry
  1. Enter your Tailscale API key (tskey-api-...)
  2. Click Discover Devices
  3. The wizard queries the Tailscale API and lists all devices on your tailnet
  4. Select your Android phone \u2014 the URL auto-fills with its stable 100.x.x.x IP

Getting a Tailscale API Key

Go to Tailscale Admin Console \u2192 Settings \u2192 Keys \u2192 Generate auth key or API access token.

Enter the phone's URL directly:

  • With Tailscale: http://100.x.x.x:5001 (stable IP, works across networks)
  • On same LAN: http://192.168.x.x:5001 (changes if phone reconnects)
  • Via port forward: http://your-public-ip:5001 (requires router config)
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#step-3-test-save","title":"Step 3: Test & Save","text":"
  1. Click Test Connection \u2014 the wizard calls the phone's /health endpoint
  2. On success, you'll see device uptime and message count
  3. Click Save Configuration \u2014 stores the URL and key encrypted in the database
  4. The enableSms feature flag is automatically enabled
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#how-it-works","title":"How It Works","text":"","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#sending-messages","title":"Sending Messages","text":"
  1. Admin creates an SMS campaign with a message template and contact list
  2. Campaign is started \u2192 messages are queued in BullMQ (one at a time, serial delivery)
  3. For each message, the Express API calls POST /api/sms/send on the phone
  4. The Flask server on the phone executes termux-sms-send to send via Android's native SMS
  5. A notification appears on the phone for each sent message
  6. Results are tracked in the database (success/failure per recipient)
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#receiving-responses","title":"Receiving Responses","text":"

A background service (sms-response-sync.service.ts) polls the phone's inbox at a configurable interval:

  1. Calls GET /api/sms/inbox?since=<last_sync_timestamp> on the phone
  2. The Flask server runs termux-sms-list to get new messages
  3. Incoming messages are matched to contacts and classified by keyword
  4. Threaded conversations are maintained per contact
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#device-monitoring","title":"Device Monitoring","text":"

A background service (sms-device-monitor.service.ts) checks phone health periodically:

  • Battery level, charging status, temperature
  • Server uptime and total messages sent
  • Connection status (available/unreachable)
  • Results displayed on the SMS Dashboard
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#key-features","title":"Key Features","text":"
  • Contact lists \u2014 import, tag, and segment contacts for targeted outreach
  • Message templates \u2014 reusable templates with {name} variable placeholders
  • BullMQ queue \u2014 serial delivery with configurable delays between messages
  • Response sync \u2014 incoming SMS replies synced and classified automatically
  • Device monitoring \u2014 battery, uptime, and connectivity reported in real-time
  • Conversation view \u2014 threaded message history per contact
  • Retry logic \u2014 configurable retry attempts for failed deliveries
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#admin-routes","title":"Admin Routes","text":"Route Description /app/sms/setup Guided setup wizard with Tailscale auto-discovery /app/sms SMS dashboard \u2014 campaign overview and device status /app/sms/contacts Manage contact lists and entries /app/sms/campaigns Create and monitor SMS campaigns /app/sms/conversations View threaded conversations with contacts","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#configuration","title":"Configuration","text":"","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#environment-variables","title":"Environment Variables","text":"Variable Default Description ENABLE_SMS false Feature flag (also set via setup wizard) TERMUX_API_URL \u2014 Phone URL, e.g. http://100.x.x.x:5001 TERMUX_API_KEY \u2014 Shared API key for authentication SMS_DELAY_BETWEEN_MS 1000 Delay between messages in a campaign (ms) SMS_MAX_RETRIES 3 Retry attempts for failed sends SMS_RESPONSE_SYNC_INTERVAL_MS 10000 How often to check for incoming replies (ms) SMS_DEVICE_MONITOR_INTERVAL_MS 30000 How often to check device health (ms) TAILSCALE_API_KEY \u2014 Tailscale API key for auto-discovery TAILSCALE_TAILNET \u2014 Tailscale tailnet name (optional)

Note

When you use the setup wizard, configuration is stored in the database and takes priority over environment variables. You don't need to set env vars if you use the wizard.

","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#phone-side-configuration","title":"Phone-Side Configuration","text":"

On the phone, only one environment variable is needed:

export SMS_API_SECRET='your-64-char-hex-key'\n

The Flask server also accepts TERMUX_API_KEY as an alias for backwards compatibility.

","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#phone-api-endpoints","title":"Phone API Endpoints","text":"

The Flask server running on the phone exposes these endpoints on port 5001:

Method Endpoint Auth Description GET /health No Server status, uptime, messages sent GET / No Web dashboard with endpoint documentation POST /api/sms/send Yes Send an SMS message POST /api/sms/send-reply Yes Send a reply with conversation tracking GET /api/sms/inbox No Get incoming messages (with since filter) GET /api/sms/list No List messages with pagination GET /api/sms/history No Get SMS history for a phone number GET /api/device/battery No Battery level, health, temperature GET /api/device/location No GPS coordinates (requires permission) GET /api/device/info No Device info + battery + uptime GET /api/contacts/list No Phone address book (with search) POST /api/campaign/notify No Push notification to device

Authentication uses the X-API-Key header with the shared secret.

","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#troubleshooting","title":"Troubleshooting","text":"","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#phone-cant-be-reached","title":"Phone can't be reached","text":"

Symptoms: Test connection fails, \"Connection refused\" or timeout.

Checks:

  1. Is the Flask server running? Check Termux \u2014 you should see the startup banner
  2. Is the IP correct? Run ifconfig in Termux to find the current IP
  3. Are they on the same network? If not using Tailscale, both must be on the same LAN
  4. Is Tailscale connected? Check the Tailscale app on the phone \u2014 it should show \"Connected\"
  5. Firewall? Android rarely blocks incoming connections on Termux, but check if any firewall app is installed
# Quick test from your server\ncurl http://PHONE_IP:5001/health\n
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#authentication-required-errors","title":"\"Authentication required\" errors","text":"

Symptoms: API calls return 401 with \"Authentication required\".

Fix: The API key on the phone doesn't match the one in the admin panel.

# On the phone, check the current key\necho $SMS_API_SECRET\n\n# If it doesn't match, update it\nexport SMS_API_SECRET='correct-key-from-admin-panel'\necho 'export SMS_API_SECRET=\"correct-key-from-admin-panel\"' >> ~/.bashrc\n\n# Restart the server\nsv restart sms-api\n# Or without termux-services: pkill -f termux-sms-api-server.py && cd ~/sms-server/android && python termux-sms-api-server.py\n
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#sms-not-sending","title":"SMS not sending","text":"

Symptoms: Server responds successfully but messages don't arrive.

Checks:

  1. SMS permissions granted? Go to Android Settings \u2192 Apps \u2192 Termux:API \u2192 Permissions \u2192 SMS
  2. Active SIM card? The phone needs a working SIM with SMS capability
  3. Message too long? Maximum 1600 characters per message
  4. Rate limited? Minimum 1 second between messages (carrier may enforce longer delays)
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#termux-keeps-getting-killed","title":"Termux keeps getting killed","text":"

Symptoms: Server stops after some time, especially when phone screen is off.

Fix:

  1. Install termux-services (if not already): bash ~/sms-server/android/setup-services.sh \u2014 this uses runit, a proper service supervisor that auto-restarts the server immediately if it crashes
  2. Disable battery optimization: Android Settings \u2192 Apps \u2192 Termux \u2192 Battery \u2192 Unrestricted
  3. Lock Termux in recent apps \u2014 long-press the app card \u2192 Lock/Pin
  4. Samsung: also add Termux, Termux:API, and Termux:Boot to Settings \u2192 Device Care \u2192 Battery \u2192 Never Sleeping Apps
  5. Acquire wake lock: Run termux-wake-lock in Termux (included in boot script)
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#server-wont-start-missing-sms_api_secret","title":"Server won't start \u2014 \"Missing SMS_API_SECRET\"","text":"

Symptoms: Server exits immediately with a security error.

Fix: Set the API key environment variable:

# Generate a new key if you don't have one\npython -c \"import secrets; print(secrets.token_hex(32))\"\n\n# Set it\nexport SMS_API_SECRET='your-generated-key'\necho 'export SMS_API_SECRET=\"your-key\"' >> ~/.bashrc\n
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#rcs-chat-features-interfering-with-replies","title":"RCS / Chat Features interfering with replies","text":"

Symptoms: You send SMS messages successfully but some or all replies never appear in the system. Recipients say they replied, but the conversation shows no inbound messages.

Cause: Google Messages enables RCS (Rich Communication Services) by default. When RCS is active, replies from recipients who also have RCS may be sent over data/Wi-Fi instead of the carrier SMS channel. The Termux server only reads the SMS inbox via termux-sms-list, so RCS messages are invisible to it.

Fix: Disable RCS on the SMS phone:

  1. Open Google Messages on the phone
  2. Tap the profile icon (top right) \u2192 Messages settings
  3. Tap RCS chats (or \"Chat features\")
  4. Turn off \"Turn on RCS chats\"

This must be done on the phone running the SMS server

Disabling RCS on the server phone forces all outgoing messages to use plain SMS, and ensures replies also come back as SMS. You do not need recipients to change anything on their end \u2014 when the server phone sends a plain SMS, the reply will be plain SMS as well (unless the recipient's carrier forces RCS-only, which is rare).

Additional checks:

  • Some carriers (e.g. Google Fi, Jio) enable RCS at the carrier level. If disabling in the app doesn't help, contact the carrier to disable RCS on the SIM.
  • If the phone has Samsung Messages instead of Google Messages, go to Samsung Messages \u2192 Settings \u2192 Chat settings \u2192 turn off.
  • After disabling RCS, restart the phone and verify by sending a test message \u2014 the send button should show an SMS label, not \"Chat\".
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#updating-the-sms-server","title":"Updating the SMS server","text":"

To pull the latest version of the server code:

cd ~/sms-server\ngit pull\n\n# Restart the server\nsv restart sms-api\n# Or without termux-services: pkill -f termux-sms-api-server.py && cd android && python termux-sms-api-server.py\n
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/map/","title":"Map & Canvassing","text":"

Manage locations, organize canvassing territories, schedule volunteer shifts, and coordinate door-to-door outreach.

","tags":["guide","admin","map"]},{"location":"docs/admin/map/#in-this-section","title":"In This Section","text":"
  • Locations \u2014 import addresses via CSV or NAR, geocode with multiple providers, and manage the location database
  • Areas \u2014 draw polygon territories on the map to organize canvassing regions
  • Shifts \u2014 schedule volunteer time slots with recurring patterns and calendar views
  • Canvassing \u2014 canvass dashboard, walk sheets, contact export, and session management
  • Data Quality \u2014 geocoding quality metrics, provider distribution, and confidence analysis
  • Map Settings \u2014 configure map center, zoom level, and QR code links
","tags":["guide","admin","map"]},{"location":"docs/admin/map/areas/","title":"Areas (Cuts)","text":"

Draw polygon regions on the map to define canvassing territories. Areas organize locations into manageable chunks for volunteers.

","tags":["guide","admin","map","canvassing"]},{"location":"docs/admin/map/areas/#key-features","title":"Key Features","text":"
  • Polygon drawing \u2014 use the map editor at /app/map/cuts to draw, edit, and delete area boundaries
  • Automatic association \u2014 locations within an area's polygon boundary are automatically linked
  • Area stats \u2014 total addresses, visited count, coverage percentage per area
  • Color coding \u2014 assign colors to visually distinguish areas on the map
","tags":["guide","admin","map","canvassing"]},{"location":"docs/admin/map/areas/#area-import-wizard","title":"Area Import Wizard","text":"

Bulk-import addresses into an area from multiple data sources:

  • OpenStreetMap (OSM) \u2014 pull building addresses from Nominatim within the area
  • NAR (National Address Register) \u2014 import from the Canadian federal address dataset
  • Reverse geocode grid \u2014 generate a grid of points and reverse-geocode to discover addresses
  • Deduplication \u2014 imported addresses are checked against existing locations to avoid duplicates
  • Progress tracking \u2014 real-time status per source during import
","tags":["guide","admin","map","canvassing"]},{"location":"docs/admin/map/areas/#admin-routes","title":"Admin Routes","text":"
  • /app/map/cuts \u2014 draw and manage canvassing areas
  • /app/map/cuts/:id/export \u2014 printable location report for a cut
","tags":["guide","admin","map","canvassing"]},{"location":"docs/admin/map/canvassing/","title":"Canvassing","text":"

Coordinate and monitor volunteer door-to-door outreach with the canvass dashboard, walk sheets, and contact export tools.

","tags":["guide","admin","map","canvassing"]},{"location":"docs/admin/map/canvassing/#canvass-dashboard","title":"Canvass Dashboard","text":"

From /app/map/canvass:

  • Active sessions \u2014 see which volunteers are currently canvassing and their real-time positions
  • Leaderboard \u2014 volunteer rankings by visit count
  • Activity feed \u2014 recent visit outcomes across all areas
  • Stats \u2014 total sessions, visits recorded, and outcome breakdowns
","tags":["guide","admin","map","canvassing"]},{"location":"docs/admin/map/canvassing/#walk-sheets-exports","title":"Walk Sheets & Exports","text":"
  • Walk sheet \u2014 printable form at /app/map/walk-sheet with space for recording visit outcomes; includes up to 3 configurable QR codes
  • Cut export \u2014 printable location report at /app/map/cuts/:id/export for a specific canvassing area
","tags":["guide","admin","map","canvassing"]},{"location":"docs/admin/map/canvassing/#canvass-contact-export","title":"Canvass Contact Export","text":"

Bridge canvassing data with advocacy campaigns:

  • Filter by outcome \u2014 include specific visit outcomes (spoke with, left literature, come back later)
  • Support level range \u2014 filter by recorded support level
  • Area selection \u2014 limit export to specific areas
  • Campaign targeting \u2014 export contacts as recipients for an advocacy campaign
","tags":["guide","admin","map","canvassing"]},{"location":"docs/admin/map/canvassing/#admin-routes","title":"Admin Routes","text":"
  • /app/map/canvass \u2014 canvass dashboard
  • /app/map/walk-sheet \u2014 printable walk sheet
","tags":["guide","admin","map","canvassing"]},{"location":"docs/admin/map/data-quality/","title":"Data Quality","text":"

Monitor geocoding accuracy and coverage from /app/map/data-quality.

","tags":["guide","admin","map","analytics"]},{"location":"docs/admin/map/data-quality/#key-metrics","title":"Key Metrics","text":"
  • Geocoding success rate \u2014 percentage of locations with valid coordinates
  • Provider distribution \u2014 breakdown of which geocoding provider was used per location
  • Confidence scores \u2014 distribution of geocoding confidence levels across the dataset
  • Missing data \u2014 locations without coordinates, postal codes, or province assignments
  • Bulk re-geocode \u2014 re-process failed or low-confidence locations with a different provider
","tags":["guide","admin","map","analytics"]},{"location":"docs/admin/map/data-quality/#admin-routes","title":"Admin Routes","text":"
  • /app/map/data-quality \u2014 geocoding quality dashboard
","tags":["guide","admin","map","analytics"]},{"location":"docs/admin/map/locations/","title":"Locations","text":"

Import addresses via CSV or the Canadian National Address Register (NAR), geocode them with multiple providers, and manage the location database.

","tags":["guide","admin","map","locations"]},{"location":"docs/admin/map/locations/#adding-locations","title":"Adding Locations","text":"
  • Click-to-add \u2014 click on the admin map to drop a new location marker
  • Form entry \u2014 manually enter address details
  • CSV import \u2014 upload a CSV with address columns; the system geocodes each row
  • NAR import \u2014 import Canadian National Address Register data with province, city, postal code, and residential-only filters
","tags":["guide","admin","map","locations"]},{"location":"docs/admin/map/locations/#geocoding","title":"Geocoding","text":"

Locations are geocoded automatically using a multi-provider system supporting Nominatim, ArcGIS, Photon, Mapbox, Google, and LocationIQ. Failed entries can be re-geocoded individually or in bulk.

","tags":["guide","admin","map","locations"]},{"location":"docs/admin/map/locations/#bulk-operations","title":"Bulk Operations","text":"

Select multiple locations for:

  • Re-geocoding with a different provider
  • Tagging or re-tagging
  • Deletion
  • CSV export
","tags":["guide","admin","map","locations"]},{"location":"docs/admin/map/locations/#admin-routes","title":"Admin Routes","text":"
  • /app/map \u2014 location CRUD, CSV import/export, geocoding, area import wizard
","tags":["guide","admin","map","locations"]},{"location":"docs/admin/map/settings/","title":"Map Settings","text":"

Configure the default map view and QR code links from /app/map/settings.

","tags":["guide","admin","map","configuration"]},{"location":"docs/admin/map/settings/#settings","title":"Settings","text":"
  • Map center \u2014 latitude and longitude for the default map center point
  • Default zoom \u2014 initial zoom level when maps load (1-18)
  • QR code links \u2014 up to 3 configurable URLs that appear as QR codes on printed walk sheets (e.g., campaign page, shift signup, volunteer portal)
","tags":["guide","admin","map","configuration"]},{"location":"docs/admin/map/settings/#admin-routes","title":"Admin Routes","text":"
  • /app/map/settings \u2014 map configuration
","tags":["guide","admin","map","configuration"]},{"location":"docs/admin/map/shifts/","title":"Shifts","text":"

Schedule volunteer time slots and let people sign up through a public page. Shifts can be linked to specific areas so volunteers know where they'll be canvassing.

","tags":["guide","admin","map","shifts"]},{"location":"docs/admin/map/shifts/#creating-shifts","title":"Creating Shifts","text":"
  • Single shifts \u2014 set date, time, location description, and optional area assignment
  • Recurring shifts \u2014 create series with daily, weekly, or monthly frequency; weekly allows specific day selection
  • Calendar view \u2014 dedicated calendar tab showing shifts by date; click any date to create a new shift pre-filled
","tags":["guide","admin","map","shifts"]},{"location":"docs/admin/map/shifts/#series-management","title":"Series Management","text":"
  • Edit modes \u2014 when editing a recurring shift, choose: this shift only, this and future, or all in series
  • Date range \u2014 define start and optional end date; generates up to 12 weeks (capped at 100 shifts)
  • Detach \u2014 remove a shift from its series to edit independently
","tags":["guide","admin","map","shifts"]},{"location":"docs/admin/map/shifts/#signups","title":"Signups","text":"
  • Signup drawer \u2014 view all signups for a shift in the admin panel
  • Capacity \u2014 optionally set maximum volunteer count per shift
  • Confirmation emails \u2014 automatic email sent when a volunteer signs up or cancels
","tags":["guide","admin","map","shifts"]},{"location":"docs/admin/map/shifts/#admin-routes","title":"Admin Routes","text":"
  • /app/map/shifts \u2014 shift CRUD, calendar view, signup management
","tags":["guide","admin","map","shifts"]},{"location":"docs/admin/media/","title":"Media","text":"

Upload, organize, and share campaign videos and photos with built-in analytics and engagement features. Enable with enableMediaFeatures in Settings.

","tags":["guide","admin","media"]},{"location":"docs/admin/media/#in-this-section","title":"In This Section","text":"
  • Library \u2014 upload videos and photos, manage metadata, schedule publishing, and generate preview links
  • Analytics \u2014 view counts, watch time, completion rates, traffic sources, and viewer activity
  • Curated Gallery \u2014 playlists, shorts feed, and featured content for the public gallery
  • Moderation \u2014 comment review, word filters, and content moderation tools
  • Gallery Ads \u2014 promotional cards with audience targeting, scheduling, and click-through analytics
","tags":["guide","admin","media"]},{"location":"docs/admin/media/ads/","title":"Gallery Ads","text":"

Create promotional cards that appear in the public media gallery and documentation site. Manage from /app/media/ads.

","tags":["guide","admin","media"]},{"location":"docs/admin/media/ads/#key-features","title":"Key Features","text":"
  • Ad CRUD \u2014 create ads with title, description, image, and click-through URL
  • Placement targeting \u2014 assign ads to specific placements (gallery sidebar, gallery feed, docs sidebar)
  • Scheduling \u2014 set start and end dates for time-limited promotions
  • Click tracking \u2014 view impressions and click-through rates per ad
  • Priority ordering \u2014 control which ads appear first when multiple are active
","tags":["guide","admin","media"]},{"location":"docs/admin/media/ads/#admin-routes","title":"Admin Routes","text":"
  • /app/media/ads \u2014 gallery ad management and analytics
","tags":["guide","admin","media"]},{"location":"docs/admin/media/analytics/","title":"Analytics","text":"

Track video engagement with GDPR-compliant analytics (IP hashing, 90-day retention).

","tags":["guide","admin","media","analytics"]},{"location":"docs/admin/media/analytics/#per-video-metrics","title":"Per-Video Metrics","text":"

Each video tracks:

  • View count and unique viewers
  • Average watch time and completion rate
  • Traffic sources \u2014 direct, embedded, shared
  • Registered viewer activity (when logged in)
","tags":["guide","admin","media","analytics"]},{"location":"docs/admin/media/analytics/#global-dashboard","title":"Global Dashboard","text":"

The analytics dashboard at /app/media/analytics provides:

  • Aggregate view counts across all videos
  • Top-performing content by views and completion rate
  • Viewer trends over time
  • Traffic source breakdown
","tags":["guide","admin","media","analytics"]},{"location":"docs/admin/media/analytics/#tracking","title":"Tracking","text":"

Public endpoints record engagement:

  • View initiation
  • 10-second heartbeat intervals
  • navigator.sendBeacon for reliable end-of-session reporting
","tags":["guide","admin","media","analytics"]},{"location":"docs/admin/media/analytics/#admin-routes","title":"Admin Routes","text":"
  • /app/media/analytics \u2014 global analytics dashboard
","tags":["guide","admin","media","analytics"]},{"location":"docs/admin/media/curated/","title":"Curated Gallery","text":"

Curate the public gallery experience with playlists, a shorts feed, and featured content.

","tags":["guide","admin","media","gallery"]},{"location":"docs/admin/media/curated/#playlists","title":"Playlists","text":"

From /app/media/curated:

  • Three types \u2014 admin playlists (managed), user playlists (personal), and public playlists (community)
  • Drag-reorder \u2014 arrange videos within a playlist
  • Featured carousel \u2014 feature playlists on the gallery homepage
  • Dedicated viewer \u2014 full playlist playback page with up-next queue
","tags":["guide","admin","media","gallery"]},{"location":"docs/admin/media/curated/#shorts-feed","title":"Shorts Feed","text":"

TikTok-style vertical video feed for clips under 60 seconds:

  • Automatic classification \u2014 videos under 60 seconds are flagged as shorts
  • Vertical feed \u2014 mobile-optimized swipeable interface at /gallery/shorts
  • Autoplay \u2014 continuous playback as viewers scroll
","tags":["guide","admin","media","gallery"]},{"location":"docs/admin/media/curated/#admin-routes","title":"Admin Routes","text":"
  • /app/media/curated \u2014 playlist management
","tags":["guide","admin","media","gallery"]},{"location":"docs/admin/media/library/","title":"Library","text":"

The media library at /app/media/library is where you upload, organize, and publish video and photo content.

","tags":["guide","admin","media","videos"]},{"location":"docs/admin/media/library/#video-upload","title":"Video Upload","text":"
  • Drag-and-drop \u2014 single or batch upload (up to 10GB per file)
  • Supported formats \u2014 MP4, MOV, AVI, MKV, WebM, M4V, FLV
  • Automatic metadata \u2014 FFprobe extracts duration, dimensions, orientation, quality, and audio info
  • Quick actions \u2014 hover a video card for Edit (E), Preview (P), Analytics (A), Schedule (S) keyboard shortcuts
","tags":["guide","admin","media","videos"]},{"location":"docs/admin/media/library/#photo-management","title":"Photo Management","text":"
  • Albums \u2014 organize photos into named collections with cover images
  • Bulk uploads \u2014 drag-and-drop multiple photos with automatic metadata extraction
  • Photo picker \u2014 insert photos into landing pages and email templates via a modal picker
","tags":["guide","admin","media","videos"]},{"location":"docs/admin/media/library/#scheduled-publishing","title":"Scheduled Publishing","text":"
  • Publish/unpublish dates \u2014 set future dates for automatic state changes
  • Timezone support \u2014 11 supported timezones
  • Calendar view \u2014 visualize scheduled items on the Calendar tab
  • BullMQ automation \u2014 jobs fire at scheduled times
","tags":["guide","admin","media","videos"]},{"location":"docs/admin/media/library/#preview-links","title":"Preview Links","text":"

Generate 24-hour JWT-authenticated preview links for unpublished videos \u2014 useful for stakeholder review before publishing.

","tags":["guide","admin","media","videos"]},{"location":"docs/admin/media/library/#admin-routes","title":"Admin Routes","text":"
  • /app/media/library \u2014 video and photo management
  • /app/media/jobs \u2014 processing job queue monitoring
","tags":["guide","admin","media","videos"]},{"location":"docs/admin/media/moderation/","title":"Moderation","text":"

Admin tools for reviewing and managing comments across all media content at /app/media/moderation.

","tags":["guide","admin","media","moderation"]},{"location":"docs/admin/media/moderation/#moderation-dashboard","title":"Moderation Dashboard","text":"
  • Filter by status \u2014 pending, safe, flagged, hidden
  • Status counts \u2014 summary stats showing total, pending, flagged, hidden, and safe comments
  • Search \u2014 filter by video, date range, or text content
","tags":["guide","admin","media","moderation"]},{"location":"docs/admin/media/moderation/#moderation-actions","title":"Moderation Actions","text":"

For each comment, admins can:

  • Approve \u2014 mark as safe and unhide if previously hidden
  • Hide \u2014 remove from public view with a reason (manual, word filter, spam, or link)
  • Unhide \u2014 restore a previously hidden comment
  • Delete \u2014 permanently remove
  • Add notes \u2014 internal moderation notes (not visible to users)
","tags":["guide","admin","media","moderation"]},{"location":"docs/admin/media/moderation/#word-filter","title":"Word Filter","text":"

A configurable list of words with severity levels:

Severity Action High Auto-blocks the comment Medium Auto-hides for review Low Flags for moderator attention Custom User-defined severity

The filter list is cached with a 1-minute TTL and invalidated on changes.

","tags":["guide","admin","media","moderation"]},{"location":"docs/admin/media/moderation/#admin-routes","title":"Admin Routes","text":"
  • /app/media/moderation \u2014 comment moderation and word filter management
","tags":["guide","admin","media","moderation"]},{"location":"docs/admin/payments/","title":"Payments","text":"

Accept memberships, product sales, and donations through Stripe. Enable with enablePayments in Settings.

","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/#in-this-section","title":"In This Section","text":"
  • Products \u2014 manage merchandise and one-time purchase items with inventory tracking
  • Donations \u2014 donation pages with goals, suggested amounts, and branded thank-you messages
  • Plans \u2014 recurring subscription plans with monthly and yearly billing
  • Settings \u2014 Stripe API key configuration with encrypted storage
","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/#how-it-works","title":"How It Works","text":"
  1. Enable payments in Settings or .env (ENABLE_PAYMENTS=true)
  2. Configure Stripe API keys in Settings > Payments (stored encrypted with ENCRYPTION_KEY)
  3. Payment widgets become available on landing pages and MkDocs pages
","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/donations/","title":"Donations","text":"

Create custom branded donation landing pages with independent branding and goals.

","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/donations/#donation-pages","title":"Donation Pages","text":"

From /app/donation-pages:

  • Custom branding \u2014 each page has its own title, description, and cover image
  • Configurable amounts \u2014 set suggested donation amounts per page
  • Thank-you messages \u2014 customizable post-donation confirmation
  • Public slugs \u2014 shareable URL at /donate/:slug
  • Goal tracking \u2014 fundraising goals with progress indicators
  • Multiple campaigns \u2014 run several pages simultaneously with independent tracking
","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/donations/#donation-management","title":"Donation Management","text":"

From /app/donations:

  • View all donations with date, amount, donor info, and status
  • Filter by donation page, date range, or amount
  • Export to CSV for accounting and tax receipts
","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/donations/#admin-routes","title":"Admin Routes","text":"
  • /app/donations \u2014 donation management
  • /app/donation-pages \u2014 donation page CRUD
","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/plans/","title":"Plans","text":"

Create and manage recurring subscription plans for campaign supporters at /app/plans.

","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/plans/#key-features","title":"Key Features","text":"
  • Tiered plans \u2014 multiple subscription tiers with different pricing and benefits
  • Billing cycles \u2014 monthly and yearly billing options
  • Stripe integration \u2014 subscriptions managed through Stripe for reliable recurring payments
  • Subscriber tracking \u2014 view active subscribers, MRR, and churn metrics
  • Public pricing page \u2014 plans displayed at /pricing
","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/plans/#admin-routes","title":"Admin Routes","text":"
  • /app/plans \u2014 subscription plan management
","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/products/","title":"Products","text":"

Manage campaign merchandise and one-time purchase items at /app/products.

","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/products/#key-features","title":"Key Features","text":"
  • Product CRUD \u2014 create products with title, description, price, and images
  • Inventory management \u2014 track stock levels and set low-stock alerts
  • Stripe checkout \u2014 seamless payment flow via Stripe
  • Public shop \u2014 products displayed at /shop for public browsing and purchase
","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/products/#admin-routes","title":"Admin Routes","text":"
  • /app/products \u2014 product management
","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/settings/","title":"Payment Settings","text":"

Configure Stripe integration from Settings > Payments.

","tags":["guide","admin","payments","configuration"]},{"location":"docs/admin/payments/settings/#stripe-configuration","title":"Stripe Configuration","text":"
  • Publishable key \u2014 used by the frontend for Stripe Elements and Checkout
  • Secret key \u2014 used by the API for creating charges and managing subscriptions
  • Encrypted storage \u2014 both keys are stored encrypted in the database using the ENCRYPTION_KEY environment variable (AES encryption)
","tags":["guide","admin","payments","configuration"]},{"location":"docs/admin/payments/settings/#webhook","title":"Webhook","text":"

Stripe webhooks are automatically configured to handle:

  • Successful payments and subscription renewals
  • Failed payments and subscription cancellations
  • Refunds and disputes
","tags":["guide","admin","payments","configuration"]},{"location":"docs/admin/payments/settings/#admin-routes","title":"Admin Routes","text":"
  • /app/settings (Payments tab) \u2014 Stripe key configuration
","tags":["guide","admin","payments","configuration"]},{"location":"docs/admin/services/","title":"Services","text":"

Manage the platform's infrastructure services, monitoring stack, and third-party integrations.

","tags":["guide","admin","services"]},{"location":"docs/admin/services/#in-this-section","title":"In This Section","text":"
  • Tunnel \u2014 Pangolin tunnel management for public access without port forwarding
  • CrowdSec & Security \u2014 CrowdSec Manager, Tinyauth forward-auth, ISP whitelisting, and Turnstile captcha on the Pangolin server
  • Monitoring \u2014 Prometheus metrics, Grafana dashboards, and Alertmanager
  • Integrations \u2014 Chat, video conferencing, password manager, whiteboard, Git hosting, automation, and QR codes
  • User Provisioning \u2014 automatic account sync across integrated services
","tags":["guide","admin","services"]},{"location":"docs/admin/services/crowdsec/","title":"CrowdSec Manager & Security Configuration","text":"

This page covers the CrowdSec Manager web UI on the Pangolin server, protected behind Tinyauth authentication, along with tuning of CrowdSec security rules and enabling Cloudflare Turnstile captcha for the CrowdSec bouncer.

","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#architecture","title":"Architecture","text":"
graph LR\n    User -->|HTTPS| Traefik\n    Traefik -->|forwardAuth| Tinyauth\n    Tinyauth -->|authenticated| Traefik\n    Traefik -->|proxy| CrowdSec-Manager\n    CrowdSec-Manager -->|API| CrowdSec\n    Traefik -->|bouncer plugin| CrowdSec\n    CrowdSec -->|captcha decision| Turnstile[Cloudflare Turnstile]

All services run on the same Docker Compose stack and share the pangolin network. Traefik reaches them through Gerbil's network namespace.

","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#components-added","title":"Components Added","text":"","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#crowdsec-manager","title":"CrowdSec Manager","text":"

Image: hhftechnology/crowdsec-manager:1.1.0

A web UI for managing CrowdSec operations \u2014 viewing alerts, decisions, managing bouncers, and configuring scenarios. It has read-only access to Traefik and CrowdSec configs and read-write access to its own data and backups.

Accessible at: https://crowdsec.bnkserve.org

","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#tinyauth","title":"Tinyauth","text":"

Image: ghcr.io/steveiliop56/tinyauth:v4

A lightweight forward-auth middleware that protects the CrowdSec Manager dashboard with a login screen. Traefik's forwardAuth middleware checks every request to the manager against Tinyauth before allowing access.

Login page at: https://auth.bnkserve.org

User credentials are stored in a users file (/data/users) mounted from the host, using bcrypt-hashed passwords.

Special Characters in Passwords

Tinyauth v4 has a known issue where special characters (@, !, etc.) in passwords can cause login failures through the browser, even though the bcrypt hash verifies correctly via the CLI. Use alphanumeric passwords to avoid this.

","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#traefik-routing","title":"Traefik Routing","text":"","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#routers","title":"Routers","text":"Router Domain Middleware Purpose crowdsec-manager-router crowdsec.bnkserve.org security-headers, tinyauth Dashboard (HTTPS) crowdsec-manager-redirect crowdsec.bnkserve.org redirect-to-https HTTP \u2192 HTTPS redirect tinyauth-router auth.bnkserve.org security-headers Auth login page (HTTPS) tinyauth-redirect auth.bnkserve.org redirect-to-https HTTP \u2192 HTTPS redirect

No tinyauth middleware on the tinyauth router

The tinyauth-router must not have the tinyauth forwardAuth middleware applied \u2014 this would create an infinite redirect loop.

","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#middleware","title":"Middleware","text":"

The tinyauth forwardAuth middleware forwards every request to http://tinyauth:3000/api/auth/traefik. If the user has a valid session cookie (scoped to .bnkserve.org), the request passes through. Otherwise, the user is redirected to the Tinyauth login page.

tinyauth:\n  forwardAuth:\n    address: http://tinyauth:3000/api/auth/traefik\n    trustForwardHeader: true\n    authResponseHeaders:\n      - X-Forwarded-User\n
","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#crowdsec-tuning","title":"CrowdSec Tuning","text":"","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#relaxed-crawl-detection","title":"Relaxed Crawl Detection","text":"

The crowdsecurity/http-crawl-non_statics scenario was triggering on legitimate Canadian users browsing the site. The local override at /etc/crowdsec/scenarios/http-crawl-non_statics.yaml (replacing the hub symlink) has relaxed thresholds:

Parameter Before After Effect capacity 40 80 Twice as many distinct pages before triggering leakspeed 0.5s 0.25s Bucket drains twice as fast

Combined effect: 4x more lenient \u2014 a user must hit 80+ distinct non-static pages faster than 1 every 0.25 seconds to trigger a captcha.

","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#canadian-isp-whitelist","title":"Canadian ISP Whitelist","text":"

A whitelist expression in /etc/crowdsec/parsers/s02-enrich/mywhitelists.yaml exempts traffic from major Canadian ISPs from all CrowdSec scenarios:

expression:\n  - evt.Meta.ASNNumber in ['812', '852', '6327', '5645', '20365', '25668', '577']\n
AS Number ISP 812 Rogers Communications 852 TELUS Communications 6327 Shaw Communications 5645 TekSavvy 20365 Freedom Mobile 25668 CipherKey 577 Bell Canada

Field name

The GeoIP enricher populates evt.Meta.ASNNumber (not ASNumber). This can be verified by inspecting /etc/crowdsec/parsers/s02-enrich/geoip-enrich.yaml.

","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#cloudflare-turnstile-captcha","title":"Cloudflare Turnstile Captcha","text":"

Previously, CrowdSec captcha decisions resulted in a hard 403 block because no captcha provider was configured. Now, users with a captcha decision see a Cloudflare Turnstile challenge page and can proceed after solving it.

Configuration added to the CrowdSec bouncer plugin in dynamic_config.yml:

captchaProvider: turnstile\ncaptchaSiteKey: <site-key>\ncaptchaSecretKey: <secret-key>\ncaptchaHTMLFilePath: /etc/traefik/captcha.html\n

Captcha HTML template path

The captcha.html template is copied from the plugin source to /etc/traefik/captcha.html (the mounted config volume). Do not reference the /plugins-storage/ path directly \u2014 the hash in that path changes on every Traefik restart.

","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#dns-records","title":"DNS Records","text":"

Two A records pointing to 72.11.155.21:

Record Purpose crowdsec.bnkserve.org CrowdSec Manager dashboard auth.bnkserve.org Tinyauth login page","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#verification","title":"Verification","text":"
# Check containers are running and healthy\ndocker ps --filter name=crowdsec-manager --filter name=tinyauth\n\n# Check both are on the pangolin network\ndocker network inspect pangolin --format '{{range .Containers}}{{.Name}} {{end}}'\n\n# Verify no Canadian ISPs in active decisions\ndocker exec crowdsec cscli decisions list | grep \"CA\"\n\n# Check CrowdSec whitelist is loaded\ndocker exec crowdsec cscli parsers inspect mywhitelists\n\n# Check Traefik logs for captcha errors\ndocker logs traefik 2>&1 | grep -i captcha\n
","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/integrations/","title":"Integrations","text":"

Changemaker Lite integrates with several self-hosted services. Each runs as a Docker container and can be enabled independently.

","tags":["guide","admin","services","integrations"]},{"location":"docs/admin/services/integrations/#team-chat-rocketchat","title":"Team Chat (Rocket.Chat)","text":"

Self-hosted team chat for volunteer coordination. Enable with enableChat in Settings.

  • Channels & DMs \u2014 organize conversations by topic, team, or campaign
  • Iframe integration \u2014 embedded in the admin dashboard and volunteer portal
  • Floating widget \u2014 minimizable chat FAB on admin pages (toggleable in Settings)
  • SSO-ready \u2014 iframe authentication for seamless login
  • Mobile apps \u2014 native Rocket.Chat apps work with your instance
  • Routes: /app/services/rocketchat, /volunteer/chat
","tags":["guide","admin","services","integrations"]},{"location":"docs/admin/services/integrations/#video-conferencing-jitsi-meet","title":"Video Conferencing (Jitsi Meet)","text":"

Self-hosted video calls integrated with Rocket.Chat via JWT authentication. Enable with enableMeet in Settings.

  • One-click calls \u2014 start a call from any Rocket.Chat channel or DM
  • JWT auth \u2014 participants join automatically with no separate login
  • 4 containers \u2014 jitsi-web, jitsi-prosody (XMPP/JWT), jitsi-jicofo (conference focus), jitsi-jvb (video bridge)
  • Setup: Generate secrets, start containers, configure the Jitsi marketplace app in Rocket.Chat, set token expiration to now + 1hour

Token Expiration

Set the Jitsi app's Token Expiration to now + 1hour. A raw number like 120 is interpreted as Unix timestamp 120 (Jan 1970), causing all tokens to appear expired.

","tags":["guide","admin","services","integrations"]},{"location":"docs/admin/services/integrations/#password-manager-vaultwarden","title":"Password Manager (Vaultwarden)","text":"

Bitwarden-compatible password vault for secure team credential sharing.

  • Bitwarden client compatible \u2014 use official browser extensions, desktop apps, and mobile apps
  • Auto-invite \u2014 initial admin user invited on first startup
  • User provisioning \u2014 new platform users can be auto-invited when provisioning is enabled
  • Client setup: Point Bitwarden clients to https://vault.DOMAIN
","tags":["guide","admin","services","integrations"]},{"location":"docs/admin/services/integrations/#whiteboard-excalidraw","title":"Whiteboard (Excalidraw)","text":"

Collaborative whiteboard for brainstorming and campaign planning.

  • Real-time collaboration \u2014 multi-user drawing with WebSocket support
  • Embedded in admin \u2014 full-screen iframe at /app/services/excalidraw
  • Desktop only \u2014 requires a desktop browser for the drawing experience
  • Route: /app/services/excalidraw
","tags":["guide","admin","services","integrations"]},{"location":"docs/admin/services/integrations/#git-hosting-gitea","title":"Git Hosting (Gitea)","text":"

Self-hosted Git repository hosting for campaign code and configuration.

  • Lightweight Git forge \u2014 repositories, issues, pull requests, and wikis
  • User provisioning \u2014 platform users can be auto-provisioned as Gitea accounts
  • Embedded \u2014 accessible at git.DOMAIN or embedded in admin at /app/services/gitea
","tags":["guide","admin","services","integrations"]},{"location":"docs/admin/services/integrations/#workflow-automation-n8n","title":"Workflow Automation (n8n)","text":"

Self-hosted workflow automation for connecting platform events to external services.

  • Visual workflow editor \u2014 drag-and-drop automation builder
  • Webhook triggers \u2014 respond to platform events
  • Embedded \u2014 accessible at n8n.DOMAIN or embedded in admin at /app/services/n8n
","tags":["guide","admin","services","integrations"]},{"location":"docs/admin/services/integrations/#qr-code-generator-mini-qr","title":"QR Code Generator (Mini QR)","text":"

Built-in QR code generation for walk sheets, volunteer invites, and campaign links.

  • Public API \u2014 QR code PNG generation at /api/qr
  • Walk sheet integration \u2014 QR codes embedded in printable walk sheets
  • Volunteer quick join \u2014 QR codes for instant volunteer onboarding
  • Embedded \u2014 admin interface at /app/services/qr
","tags":["guide","admin","services","integrations"]},{"location":"docs/admin/services/monitoring/","title":"Monitoring","text":"

The monitoring stack runs as a Docker Compose profile and provides metrics collection, visualization, and alerting.

","tags":["guide","admin","services","monitoring"]},{"location":"docs/admin/services/monitoring/#starting-the-stack","title":"Starting the Stack","text":"
docker compose --profile monitoring up -d\n

This starts Prometheus, Grafana, Alertmanager, cAdvisor, Node Exporter, and Redis Exporter.

","tags":["guide","admin","services","monitoring"]},{"location":"docs/admin/services/monitoring/#custom-metrics","title":"Custom Metrics","text":"

The platform exposes 12 custom cm_* Prometheus metrics:

  • API request rates and latencies
  • BullMQ queue sizes (email, SMS, video scheduling)
  • Active canvass sessions
  • External service health gauges
","tags":["guide","admin","services","monitoring"]},{"location":"docs/admin/services/monitoring/#grafana-dashboards","title":"Grafana Dashboards","text":"

Three pre-configured dashboards auto-provisioned from configs/grafana/:

  • API Performance \u2014 request rates, latencies, error rates
  • Application Overview \u2014 queue sizes, active sessions, service health
  • System Health \u2014 container resources, host metrics, Redis stats
","tags":["guide","admin","services","monitoring"]},{"location":"docs/admin/services/monitoring/#alertmanager","title":"Alertmanager","text":"

Alert rules in configs/prometheus/alerts.yml cover:

  • API downtime and high error rates
  • Queue backlogs
  • Service connectivity failures
  • Resource utilization thresholds
","tags":["guide","admin","services","monitoring"]},{"location":"docs/admin/services/monitoring/#admin-routes","title":"Admin Routes","text":"
  • /app/observability \u2014 embedded Grafana dashboards, alert status, and service health (3 tabs)
","tags":["guide","admin","services","monitoring"]},{"location":"docs/admin/services/monitoring/#direct-access","title":"Direct Access","text":"
  • Grafana: localhost:3001 or grafana.DOMAIN
  • Prometheus: localhost:9090
  • Alertmanager: localhost:9093
","tags":["guide","admin","services","monitoring"]},{"location":"docs/admin/services/tunnel/","title":"Tunnel (Pangolin)","text":"

Pangolin provides secure tunneling to expose your self-hosted services to the internet without port forwarding or a static IP.

","tags":["guide","admin","services","networking"]},{"location":"docs/admin/services/tunnel/#setup","title":"Setup","text":"

From /app/pangolin:

  • Automated setup \u2014 one-command deployment that creates the Pangolin site, updates .env with credentials, and restarts the Newt tunnel container
  • Manual setup \u2014 step-by-step instructions for connecting to an existing Pangolin instance
","tags":["guide","admin","services","networking"]},{"location":"docs/admin/services/tunnel/#resource-management","title":"Resource Management","text":"

The platform defines 12+ service resources in configs/pangolin/resources.yml:

  • Each resource maps a subdomain (e.g., api.DOMAIN, app.DOMAIN) to an internal service
  • Hourly sync \u2014 nginx cron job pushes resource definitions to Pangolin automatically
  • Status dashboard \u2014 view tunnel connection status and resource health
","tags":["guide","admin","services","networking"]},{"location":"docs/admin/services/tunnel/#newt-container","title":"Newt Container","text":"

The Newt container runs alongside nginx and tunnels traffic to your services:

  • Configured via PANGOLIN_NEWT_ID and PANGOLIN_NEWT_SECRET environment variables
  • Depends on nginx (all resources route through nginx:80)
  • Auto-restarts on failure
","tags":["guide","admin","services","networking"]},{"location":"docs/admin/services/tunnel/#security","title":"Security","text":"

The Pangolin server runs CrowdSec for intrusion detection with a web management UI protected by Tinyauth forward-auth. See CrowdSec & Security for details on:

  • CrowdSec Manager dashboard (crowdsec.bnkserve.org)
  • Tinyauth authentication (auth.bnkserve.org)
  • Canadian ISP whitelisting and crawl detection tuning
  • Cloudflare Turnstile captcha integration
","tags":["guide","admin","services","networking"]},{"location":"docs/admin/services/tunnel/#admin-routes","title":"Admin Routes","text":"
  • /app/pangolin \u2014 tunnel status, setup wizard, and resource management
","tags":["guide","admin","services","networking"]},{"location":"docs/admin/services/user-provisioning/","title":"User Provisioning","text":"

Automatically create and sync user accounts across integrated services when new platform users are registered. Enable with enableUserProvisioning in Settings.

","tags":["guide","admin","services"]},{"location":"docs/admin/services/user-provisioning/#supported-services","title":"Supported Services","text":"Service Mode Notes Rocket.Chat Always lazy SSO on first access Gitea Eager or lazy Admin API provisioning Vaultwarden Eager or lazy Invite-based (no password management) Listmonk Eager or lazy Subscriber sync","tags":["guide","admin","services"]},{"location":"docs/admin/services/user-provisioning/#configuration","title":"Configuration","text":"

From Settings > User Provisioning:

  • Toggle provisioning per service
  • Choose eager (create immediately on user registration) or lazy (create on first access)
  • View provisioning status per user in the Service Accounts panel on the Users page
","tags":["guide","admin","services"]},{"location":"docs/admin/services/user-provisioning/#bulk-sync","title":"Bulk Sync","text":"

Trigger a bulk sync from /api/users/provisioning/sync to provision all existing users across enabled services. Useful after enabling a new service.

","tags":["guide","admin","services"]},{"location":"docs/admin/services/user-provisioning/#admin-routes","title":"Admin Routes","text":"
  • /app/users (edit drawer) \u2014 per-user service account status and actions
  • /app/settings (User Provisioning tab) \u2014 per-service toggle and timing
","tags":["guide","admin","services"]},{"location":"docs/admin/web/","title":"Web Content","text":"

Manage the public-facing web presence \u2014 landing pages, the dynamic homepage, navigation menu, and documentation site.

","tags":["guide","admin","content"]},{"location":"docs/admin/web/#in-this-section","title":"In This Section","text":"
  • Landing Pages \u2014 build campaign microsites with the GrapesJS drag-and-drop editor
  • Homepage \u2014 dynamic public landing page aggregating campaigns, shifts, media, and events
  • Navigation \u2014 customize the public navigation menu with toggles, custom links, and reordering
  • Documentation \u2014 MkDocs site management, page analytics, and comment moderation
","tags":["guide","admin","content"]},{"location":"docs/admin/web/#social-sharing","title":"Social Sharing","text":"

All public content (campaigns, landing pages, gallery videos) automatically generates Open Graph and Twitter Card meta tags for rich link previews when shared on social media, messaging apps, and search engines. OG responses are cached in Redis for 10 minutes.

","tags":["guide","admin","content"]},{"location":"docs/admin/web/documentation/","title":"Documentation","text":"

Manage the MkDocs documentation site, track page engagement, and moderate visitor comments.

","tags":["guide","admin","content"]},{"location":"docs/admin/web/documentation/#mkdocs-management","title":"MkDocs Management","text":"

From Docs (/app/docs):

  • View MkDocs build status and health
  • Browse the documentation file tree
  • Export landing pages to MkDocs as Jinja2 Material theme overrides
  • Configure documentation settings from MkDocs Settings (/app/docs/settings)
","tags":["guide","admin","content"]},{"location":"docs/admin/web/documentation/#documentation-analytics","title":"Documentation Analytics","text":"

Track how visitors interact with documentation pages using the MkDocs Material theme's custom analytics provider and navigation.tracking.

  • Navigation tracking \u2014 updates the browser URL as users scroll through sections, enabling section-level engagement tracking
  • Custom provider \u2014 integrates with any third-party analytics tool (Plausible, Umami, Google Analytics) via template overrides in docs/overrides/
","tags":["guide","admin","content"]},{"location":"docs/admin/web/documentation/#comments","title":"Comments","text":"

Visitors can leave comments on documentation pages using a Gitea-backed comment system.

  • Anonymous posting \u2014 visitors can comment without creating an account
  • Gitea-backed \u2014 comments stored as Gitea issues (one issue per page) for version control and searchability
  • Moderation \u2014 admin panel at /app/docs-comments for approving, hiding, or deleting comments
  • OAuth login \u2014 optional Gitea OAuth for authenticated commenting
  • Per-page threads \u2014 each documentation page gets its own comment thread
","tags":["guide","admin","content"]},{"location":"docs/admin/web/documentation/#admin-routes","title":"Admin Routes","text":"
  • /app/docs \u2014 MkDocs management (file tree, config, build triggers)
  • /app/docs/settings \u2014 documentation configuration
  • /app/docs-comments \u2014 moderate documentation comments
","tags":["guide","admin","content"]},{"location":"docs/admin/web/homepage/","title":"Public Homepage","text":"

A dynamic public landing page that showcases your organization and aggregates content from across the platform.

","tags":["guide","admin","content"]},{"location":"docs/admin/web/homepage/#sections","title":"Sections","text":"

The homepage assembles its content from enabled modules. Sections are only displayed when their corresponding module is active and has data to show.

  • Hero banner \u2014 organization name, logo, tagline (configurable via Settings), and call-to-action buttons for campaigns and volunteer signups
  • Stats counters \u2014 active campaigns, total emails sent, and volunteer signups (shown only when counts are greater than zero)
  • Featured campaigns \u2014 up to 3 active campaigns, sorted by highlight status then creation date, with email counts and descriptions
  • Upcoming shifts \u2014 up to 3 open shifts with date, time, location, and spots remaining
  • Latest videos \u2014 up to 4 recently published videos from the media library, displayed in a horizontal scroll strip with thumbnails and durations
  • Upcoming events \u2014 up to 3 future events from Gancio with date, location, and tags
  • Recent activity \u2014 a compact activity feed showing the latest platform actions
","tags":["guide","admin","content"]},{"location":"docs/admin/web/homepage/#data-caching","title":"Data & Caching","text":"

All homepage data is fetched from a single API endpoint (/api/homepage) and cached in Redis for 2 minutes. Individual section queries use Promise.allSettled so that a failure in one module (e.g., Gancio being offline) does not prevent the rest of the page from loading.

","tags":["guide","admin","content"]},{"location":"docs/admin/web/homepage/#configuration","title":"Configuration","text":"
  • Organization name and logo \u2014 set via Settings > Organization
  • Homepage tagline \u2014 set via the homepageTagline field in site settings
  • Module visibility \u2014 controlled by feature flags (enableInfluence, enableMap, enableMediaFeatures, enableEvents, enablePayments, enableLandingPages)
","tags":["guide","admin","content"]},{"location":"docs/admin/web/homepage/#public-routes","title":"Public Routes","text":"
  • /home \u2014 public homepage
","tags":["guide","admin","content"]},{"location":"docs/admin/web/landing-pages/","title":"Landing Pages","text":"

Build campaign microsites with a drag-and-drop visual editor.

","tags":["guide","admin","content","landing-pages"]},{"location":"docs/admin/web/landing-pages/#how-it-works","title":"How It Works","text":"
  1. Create a new page from the admin panel
  2. Open the GrapesJS visual editor \u2014 drag blocks, edit text, adjust styles
  3. Save and publish \u2014 the page goes live at /p/:slug
  4. Optionally export to MkDocs for inclusion in the documentation site
","tags":["guide","admin","content","landing-pages"]},{"location":"docs/admin/web/landing-pages/#admin-routes","title":"Admin Routes","text":"
  • /app/pages \u2014 list and manage landing pages
  • /app/pages/:id/edit \u2014 full-screen GrapesJS editor
","tags":["guide","admin","content","landing-pages"]},{"location":"docs/admin/web/landing-pages/#public-routes","title":"Public Routes","text":"
  • /p/:slug \u2014 view a published landing page
","tags":["guide","admin","content","landing-pages"]},{"location":"docs/admin/web/navigation/","title":"Navigation Settings","text":"

Customize the public-facing navigation menu from the admin panel. The navigation bar appears on all public pages, the admin header, the Gancio events page, and the MkDocs documentation site.

","tags":["guide","admin","content"]},{"location":"docs/admin/web/navigation/#key-features","title":"Key Features","text":"
  • Per-item toggle -- enable or disable each navigation item with a switch
  • Custom links -- add external links or internal paths to the navigation
  • Reorder -- move items up and down to arrange them in any order
  • Editable labels and paths -- rename any item or change its destination
  • Feature flag awareness -- builtin items tied to a feature flag (e.g., Campaigns requires enableInfluence) are automatically hidden when that feature is disabled
  • Visitor control -- determine exactly what public visitors can access
","tags":["guide","admin","content"]},{"location":"docs/admin/web/navigation/#builtin-items","title":"Builtin Items","text":"

The platform ships with 11 builtin navigation items that cover the main public routes:

Home, Campaigns, Map, Shifts, Events, Gallery, Pricing, Shop, Donate, Website (landing page), and Docs (documentation site).

Each builtin item has a default icon and path. Some paths use special $ tokens (e.g., $landing, $docs) that are automatically resolved to the correct external URL based on the deployment environment.

","tags":["guide","admin","content"]},{"location":"docs/admin/web/navigation/#custom-links","title":"Custom Links","text":"

Add any number of custom links via the \"Add Custom Link\" button. Custom links support:

  • Internal paths (e.g., /blog)
  • External URLs (e.g., https://example.com) -- automatically detected and opened in a new tab

Custom links can be deleted from the navigation; builtin items can only be toggled off.

","tags":["guide","admin","content"]},{"location":"docs/admin/web/navigation/#mobile-handling","title":"Mobile Handling","text":"

On mobile devices, the navigation collapses into a hamburger menu that opens a full-height drawer. On desktop, the nav bar also supports a collapse mode that hides labels and shows only icons, toggled via a fold/unfold button. The collapse state is persisted in local storage.

","tags":["guide","admin","content"]},{"location":"docs/admin/web/navigation/#admin-routes","title":"Admin Routes","text":"
  • /app/navigation -- navigation editor with per-item toggle, reorder, label editing, and custom link management
","tags":["guide","admin","content"]},{"location":"docs/api/","title":"API Reference","text":"

Changemaker Lite exposes two REST APIs sharing a single PostgreSQL database.

Server Framework Port Purpose Main API Express.js 4000 Auth, campaigns, map, shifts, canvassing, pages, email, settings Media API Fastify 4100 Video library, analytics, playlists, reactions, comments

Both APIs use JWT Bearer authentication and return JSON. All request/response bodies are application/json unless noted otherwise.

","tags":["reference","developer","API"]},{"location":"docs/api/#authentication","title":"Authentication","text":"","tags":["reference","developer","API"]},{"location":"docs/api/#token-flow","title":"Token Flow","text":"
sequenceDiagram\n    participant Client\n    participant API\n    participant DB\n\n    Client->>API: POST /api/auth/login {email, password}\n    API->>DB: Verify credentials\n    DB-->>API: User record\n    API-->>Client: {accessToken, refreshToken}\n    Note over Client: Store tokens\n\n    Client->>API: GET /api/campaigns (Authorization: Bearer <accessToken>)\n    API-->>Client: 200 OK\n\n    Note over Client: Access token expires (15 min)\n\n    Client->>API: POST /api/auth/refresh {refreshToken}\n    API->>DB: Rotate token (atomic transaction)\n    DB-->>API: New token pair\n    API-->>Client: {accessToken, refreshToken}
","tags":["reference","developer","API"]},{"location":"docs/api/#headers","title":"Headers","text":"

All authenticated requests require:

Authorization: Bearer <accessToken>\n

The Media API also accepts tokens via query parameter for SSE streams:

GET /api/public/:id/chat-stream?token=<accessToken>\n
","tags":["reference","developer","API"]},{"location":"docs/api/#roles","title":"Roles","text":"Role Access Level SUPER_ADMIN Full platform access INFLUENCE_ADMIN Campaign and advocacy management MAP_ADMIN Map, locations, shifts, canvassing USER Volunteer portal, public features TEMP Limited access (auto-created on public shift signup)","tags":["reference","developer","API"]},{"location":"docs/api/#middleware-reference","title":"Middleware Reference","text":"Middleware Effect authenticate Requires valid JWT. Sets req.user with id, email, role. Returns 401 if missing or invalid. optionalAuth Same as authenticate but continues without user if token is absent. requireRole(...roles) Checks user role against allowed list. Returns 403 if not authorized. requireNonTemp Blocks TEMP users. Returns 403. validate(schema, source) Validates request body/query/params against a Zod schema. Returns 400 on failure.","tags":["reference","developer","API"]},{"location":"docs/api/#error-responses","title":"Error Responses","text":"

All errors follow a consistent format:

{\n  \"error\": {\n    \"message\": \"Human-readable error description\",\n    \"code\": \"ERROR_CODE\",\n    \"statusCode\": 400\n  }\n}\n
Status Code Meaning 400 VALIDATION_ERROR Request body/query failed schema validation 401 UNAUTHORIZED Missing or invalid access token 403 FORBIDDEN Valid token but insufficient role 404 NOT_FOUND Resource does not exist 429 RATE_LIMITED Too many requests (see Rate Limits) 500 INTERNAL_ERROR Unexpected server error

Enumeration Prevention

Auth endpoints (/login, /register, /forgot-password) return generic success messages to prevent user enumeration. A 401 from /api/auth/me does not reveal whether the user exists.

","tags":["reference","developer","API"]},{"location":"docs/api/#rate-limits","title":"Rate Limits","text":"

Rate limits are Redis-backed and keyed by IP address.

Endpoint Group Window Max Requests Redis Prefix Auth (login, register, refresh) 15 min 10 rl:auth: Email sending 1 hour 30 rl:email: Response submission 1 hour 10 rl:response: Shift signup 1 hour 10 rl:shift-signup: Canvass visits 1 min 30 rl:canvass-visit: Canvass bulk visits 1 min 5 rl:canvass-visit-bulk: GPS tracking 1 min 6 rl:gps-tracking: Canvass geocode 1 min 10 rl:canvass-geocode: Observability 1 min 20 rl:observability: Health/metrics 1 min 30 rl:health-metrics: Global (all other) Configurable Configurable rl:global:

When rate-limited, the API returns:

{\n  \"error\": {\n    \"message\": \"Too many requests, please try again later\",\n    \"code\": \"RATE_LIMITED\",\n    \"statusCode\": 429\n  }\n}\n
","tags":["reference","developer","API"]},{"location":"docs/api/#main-api-express-port-4000","title":"Main API (Express \u2014 Port 4000)","text":"","tags":["reference","developer","API"]},{"location":"docs/api/#health-metrics","title":"Health & Metrics","text":"Method Path Auth Description GET /api/health Health check \u2014 PostgreSQL + Redis ping GET /api/metrics Prometheus metrics (text/plain) Health response
{\n  \"status\": \"healthy\",\n  \"checks\": {\n    \"database\": \"ok\",\n    \"redis\": \"ok\"\n  }\n}\n
","tags":["reference","developer","API"]},{"location":"docs/api/#auth","title":"Auth","text":"

Prefix: /api/auth

Method Path Auth Rate Limited Description POST /api/auth/login Email + password login POST /api/auth/register Create account (always USER role) POST /api/auth/verify-email Verify email with token POST /api/auth/resend-verification Resend verification email POST /api/auth/forgot-password Send password reset email POST /api/auth/reset-password Set new password with reset token POST /api/auth/refresh Rotate refresh token \u2192 new token pair POST /api/auth/logout Invalidate refresh token GET /api/auth/me Current user profile Login request & response

Request:

{\n  \"email\": \"admin@example.com\",\n  \"password\": \"SecurePass123!\"\n}\n
Response:
{\n  \"accessToken\": \"eyJhbG...\",\n  \"refreshToken\": \"eyJhbG...\",\n  \"user\": {\n    \"id\": \"uuid\",\n    \"email\": \"admin@example.com\",\n    \"name\": \"Admin\",\n    \"role\": \"SUPER_ADMIN\"\n  }\n}\n

Password Policy

Passwords must be at least 12 characters with at least one uppercase letter, one lowercase letter, and one digit.

","tags":["reference","developer","API"]},{"location":"docs/api/#users","title":"Users","text":"

Prefix: /api/users \u00b7 Auth: All routes require authentication

Method Path Role Description GET /api/users Admin Paginated user list with search, role, and status filters GET /api/users/:id Admin or self Single user profile POST /api/users Admin Create user PUT /api/users/:id Admin or self Update user (non-admins cannot change role/status) POST /api/users/:id/approve Admin Approve pending user; sends approval email POST /api/users/:id/reject Admin Reject pending user DELETE /api/users/:id Admin Delete user

Query parameters for GET /api/users:

Param Type Description page number Page number (default 1) limit number Items per page (default 20) search string Search by name or email role string Filter by role status string Filter by status","tags":["reference","developer","API"]},{"location":"docs/api/#dashboard","title":"Dashboard","text":"

Prefix: /api/dashboard \u00b7 Auth: Admin roles required

Method Path Role Description GET /api/dashboard/summary Any admin Platform-wide counts (users, campaigns, locations, shifts) GET /api/dashboard/system SUPER_ADMIN Hardware + OS info (CPU, memory, disk) GET /api/dashboard/containers SUPER_ADMIN Docker container statuses GET /api/dashboard/weather Any admin Current weather at map center coordinates GET /api/dashboard/api-metrics SUPER_ADMIN Prometheus API performance metrics GET /api/dashboard/time-series SUPER_ADMIN Prometheus time-series data GET /api/dashboard/container-resources SUPER_ADMIN cAdvisor CPU/memory/network per container

Query parameters for GET /api/dashboard/time-series:

Param Type Description metrics string Comma-separated metric keys (whitelist-validated) range string Time range (e.g., 1h, 24h, 7d) step string Sample interval (e.g., 5m, 1h)","tags":["reference","developer","API"]},{"location":"docs/api/#campaigns","title":"Campaigns","text":"","tags":["reference","developer","API"]},{"location":"docs/api/#admin-crud","title":"Admin CRUD","text":"

Prefix: /api/campaigns \u00b7 Auth: Admin roles

Method Path Description GET /api/campaigns Paginated campaign list GET /api/campaigns/:id Single campaign detail POST /api/campaigns Create campaign PUT /api/campaigns/:id Update campaign DELETE /api/campaigns/:id Delete campaign","tags":["reference","developer","API"]},{"location":"docs/api/#public","title":"Public","text":"Method Path Auth Description GET /api/campaigns/public List all active campaigns GET /api/campaigns/:slug/details Campaign detail by slug (ACTIVE only)","tags":["reference","developer","API"]},{"location":"docs/api/#user-submissions","title":"User Submissions","text":"

Auth: Authenticated, non-TEMP users

Method Path Description POST /api/campaigns/user/submit Submit campaign for moderation (5/hour limit) GET /api/campaigns/user/my-campaigns List own submitted campaigns PUT /api/campaigns/user/:id Edit own pending campaign","tags":["reference","developer","API"]},{"location":"docs/api/#moderation","title":"Moderation","text":"

Auth: Admin roles

Method Path Description GET /api/campaigns/moderation/queue Campaigns pending moderation GET /api/campaigns/moderation/stats Moderation queue statistics PATCH /api/campaigns/moderation/:id Approve or reject campaign","tags":["reference","developer","API"]},{"location":"docs/api/#campaign-emails","title":"Campaign Emails","text":"Method Path Auth Description POST /api/campaigns/:slug/send-email Send advocacy email to representatives (rate limited: 30/hour) POST /api/campaigns/:slug/track-mailto Track mailto link click GET /api/campaigns/:id/emails Admin Paginated emails for campaign GET /api/campaigns/:id/email-stats Admin Email statistics","tags":["reference","developer","API"]},{"location":"docs/api/#responses","title":"Responses","text":"

Prefix: /api/campaigns (public) and /api/responses (admin + actions)

","tags":["reference","developer","API"]},{"location":"docs/api/#public_1","title":"Public","text":"Method Path Auth Description GET /api/campaigns/:slug/responses List approved public responses GET /api/campaigns/:slug/response-stats Response statistics POST /api/campaigns/:slug/responses Submit response (rate limited: 10/hour) POST /api/responses/:id/upvote Optional Upvote a response DELETE /api/responses/:id/upvote Optional Remove upvote GET /api/responses/:id/verify/:token Verify response via email link","tags":["reference","developer","API"]},{"location":"docs/api/#admin","title":"Admin","text":"

Auth: Admin roles

Method Path Description GET /api/responses All responses with filters PATCH /api/responses/:id/status Approve or reject response POST /api/responses/:id/resend-verification Resend verification email DELETE /api/responses/:id Delete response","tags":["reference","developer","API"]},{"location":"docs/api/#representatives","title":"Representatives","text":"

Prefix: /api/representatives

Method Path Auth Description GET /api/representatives/by-postal/:postalCode Lookup representatives by postal code (cache-first) GET /api/representatives/test-connection Represent API health check GET /api/representatives/cache-stats Admin Cache statistics GET /api/representatives Admin Paginated cached representatives GET /api/representatives/:id Admin Single cached representative DELETE /api/representatives/by-postal/:postalCode Admin Clear cache for postal code DELETE /api/representatives/:id Admin Delete cached representative

Query parameters for postal code lookup:

Param Type Description refresh boolean Force API call, bypass cache","tags":["reference","developer","API"]},{"location":"docs/api/#email-queue","title":"Email Queue","text":"

Prefix: /api/email-queue \u00b7 Auth: Admin roles

Method Path Description GET /api/email-queue/stats BullMQ queue statistics (waiting, active, completed, failed) POST /api/email-queue/pause Pause email processing POST /api/email-queue/resume Resume email processing POST /api/email-queue/clean Clean completed jobs","tags":["reference","developer","API"]},{"location":"docs/api/#locations","title":"Locations","text":"

Prefix: /api/map/locations

","tags":["reference","developer","API"]},{"location":"docs/api/#public_2","title":"Public","text":"Method Path Description GET /api/map/locations/public All geocoded locations for map (no PII); optional ?bounds=","tags":["reference","developer","API"]},{"location":"docs/api/#admin_1","title":"Admin","text":"

Auth: SUPER_ADMIN or MAP_ADMIN

Method Path Description GET /api/map/locations Paginated locations with filters GET /api/map/locations/stats Location statistics GET /api/map/locations/all All geocoded locations for admin map GET /api/map/locations/export-csv CSV export GET /api/map/locations/:id Single location GET /api/map/locations/:id/history Edit history POST /api/map/locations Create location PUT /api/map/locations/:id Update location DELETE /api/map/locations/:id Delete location POST /api/map/locations/bulk-delete Bulk delete POST /api/map/locations/geocode Geocode single address POST /api/map/locations/geocode-missing Batch geocode all ungeocoded POST /api/map/locations/reverse-geocode Reverse geocode lat/lng to address POST /api/map/locations/import-csv Import from CSV (10 MB limit) POST /api/map/locations/import-bulk Bulk NAR or standard CSV import (100 MB limit)","tags":["reference","developer","API"]},{"location":"docs/api/#bulk-geocode","title":"Bulk Geocode","text":"

Prefix: /api/map/locations/bulk-geocode \u00b7 Auth: Map admins

Method Path Description POST /api/map/locations/bulk-geocode Start BullMQ bulk geocoding job GET /api/map/locations/bulk-geocode/:jobId Poll job status GET /api/map/locations/bulk-geocode/stats Queue statistics","tags":["reference","developer","API"]},{"location":"docs/api/#nar-import","title":"NAR Import","text":"

Prefix: /api/map/nar-import \u00b7 Auth: Map admins

Method Path Description GET /api/map/nar-import/datasets Available NAR datasets by province POST /api/map/nar-import Start province import (fire-and-forget) GET /api/map/nar-import/status/:importId Poll import progress NAR Import body
{\n  \"provinceCode\": \"24\",\n  \"filterType\": \"city\",\n  \"filterCity\": \"Edmonton\",\n  \"residentialOnly\": true,\n  \"deduplicateRadius\": 10,\n  \"batchSize\": 500\n}\n
","tags":["reference","developer","API"]},{"location":"docs/api/#area-import","title":"Area Import","text":"

Prefix: /api/map/area-import \u00b7 Auth: Map admins

Method Path Description POST /api/map/area-import/preview Preview bounds + estimated record counts POST /api/map/area-import Start area import (fire-and-forget) GET /api/map/area-import/status/:importId Poll import progress","tags":["reference","developer","API"]},{"location":"docs/api/#cuts-polygons","title":"Cuts (Polygons)","text":"

Prefix: /api/map/cuts

Method Path Auth Description GET /api/map/cuts/public All public cuts as GeoJSON GET /api/map/cuts Map admin Paginated cuts list GET /api/map/cuts/:id Map admin Single cut POST /api/map/cuts Map admin Create cut (polygon GeoJSON) PUT /api/map/cuts/:id Map admin Update cut DELETE /api/map/cuts/:id Map admin Delete cut GET /api/map/cuts/:id/locations Map admin All locations within cut polygon GET /api/map/cuts/:id/statistics Map admin Support level breakdown GET /api/map/cuts/export-geojson Map admin All cuts as GeoJSON FeatureCollection GET /api/map/cuts/:id/export-geojson Map admin Single cut as GeoJSON Feature POST /api/map/cuts/import-geojson Map admin Import cuts from GeoJSON file","tags":["reference","developer","API"]},{"location":"docs/api/#shifts","title":"Shifts","text":"

Prefix: /api/map/shifts

","tags":["reference","developer","API"]},{"location":"docs/api/#public_3","title":"Public","text":"Method Path Description GET /api/map/shifts/public List upcoming public shifts POST /api/map/shifts/public/:id/signup Public signup (creates TEMP user if needed; rate limited: 10/hour)","tags":["reference","developer","API"]},{"location":"docs/api/#volunteer","title":"Volunteer","text":"

Auth: Any authenticated user

Method Path Description GET /api/map/shifts/volunteer/upcoming Upcoming shifts with signup status GET /api/map/shifts/volunteer/my-signups Own confirmed signups POST /api/map/shifts/volunteer/:id/signup Sign up for shift DELETE /api/map/shifts/volunteer/:id/signup Cancel signup","tags":["reference","developer","API"]},{"location":"docs/api/#admin_2","title":"Admin","text":"

Auth: Map admins

Method Path Description GET /api/map/shifts Paginated shifts with filters GET /api/map/shifts/stats Statistics GET /api/map/shifts/calendar Calendar data (?startDate=&endDate=) GET /api/map/shifts/:id Single shift with signups POST /api/map/shifts Create shift PUT /api/map/shifts/:id Update shift DELETE /api/map/shifts/:id Delete shift POST /api/map/shifts/:id/signups Admin-add volunteer DELETE /api/map/shifts/:id/signups/:signupId Remove volunteer POST /api/map/shifts/:id/email-details Email details to all volunteers","tags":["reference","developer","API"]},{"location":"docs/api/#shift-series","title":"Shift Series","text":"

Auth: Map admins

Method Path Description POST /api/map/shifts/series Create recurring shift series GET /api/map/shifts/series/:id Get series PUT /api/map/shifts/series/:id Update series DELETE /api/map/shifts/series/:id Delete series","tags":["reference","developer","API"]},{"location":"docs/api/#canvassing","title":"Canvassing","text":"

Prefix: /api/map/canvass

","tags":["reference","developer","API"]},{"location":"docs/api/#volunteer_1","title":"Volunteer","text":"

Auth: Any authenticated user

Method Path Description GET /api/map/canvass/my/assignments Shift assignments GET /api/map/canvass/my/stats Personal canvass statistics GET /api/map/canvass/my/visits Visit history GET /api/map/canvass/my/session Active canvass session POST /api/map/canvass/sessions Start canvass session POST /api/map/canvass/sessions/:id/end End session GET /api/map/canvass/cuts/:cutId/locations Locations in cut with visit annotations GET /api/map/canvass/cuts/:cutId/route Walking route algorithm for cut GET /api/map/canvass/locations All locations with visit annotations PUT /api/map/canvass/locations/:id Edit address (role-gated fields) POST /api/map/canvass/locations Create location POST /api/map/canvass/reverse-geocode Reverse geocode lat/lng POST /api/map/canvass/geocode-search Geocode address for map (rate limited: 10/min) POST /api/map/canvass/visits Record door knock (rate limited: 30/min) POST /api/map/canvass/visits/bulk Record visit for all unvisited units (rate limited: 5/min)","tags":["reference","developer","API"]},{"location":"docs/api/#admin_3","title":"Admin","text":"

Auth: SUPER_ADMIN or MAP_ADMIN

Method Path Description GET /api/map/canvass/stats Platform-wide canvass statistics GET /api/map/canvass/stats/cuts/:cutId Statistics for specific cut GET /api/map/canvass/activity Recent activity feed GET /api/map/canvass/volunteers All volunteers with canvass activity GET /api/map/canvass/volunteers/:userId Individual volunteer statistics GET /api/map/canvass/visits All visits with filters","tags":["reference","developer","API"]},{"location":"docs/api/#gps-tracking","title":"GPS Tracking","text":"

Prefix: /api/map/tracking

","tags":["reference","developer","API"]},{"location":"docs/api/#volunteer_2","title":"Volunteer","text":"

Auth: Any authenticated user

Method Path Description POST /api/map/tracking/sessions Start GPS tracking session POST /api/map/tracking/sessions/:id/end End tracking session POST /api/map/tracking/sessions/:id/points Submit GPS point batch (rate limited: 6/min) POST /api/map/tracking/sessions/:id/link-canvass Link to canvass session GET /api/map/tracking/my/session Active tracking session GET /api/map/tracking/my/sessions Own historical sessions GET /api/map/tracking/my/sessions/:id/route Full route for own session","tags":["reference","developer","API"]},{"location":"docs/api/#admin_4","title":"Admin","text":"

Auth: Map admins

Method Path Description GET /api/map/tracking/live Live volunteer positions + trails GET /api/map/tracking/sessions All historical tracking sessions GET /api/map/tracking/sessions/:id/route Full route for any session","tags":["reference","developer","API"]},{"location":"docs/api/#map-settings","title":"Map Settings","text":"

Prefix: /api/map/settings

Method Path Auth Description GET /api/map/settings Public map settings (center, zoom, walk sheet config) PUT /api/map/settings Map admin Update map settings","tags":["reference","developer","API"]},{"location":"docs/api/#geocoding","title":"Geocoding","text":"

Prefix: /api/map/geocoding \u00b7 Auth: Map admins

Method Path Description GET /api/map/geocoding/search Geocode address search (?q=&limit=1-10)","tags":["reference","developer","API"]},{"location":"docs/api/#landing-pages","title":"Landing Pages","text":"

Prefix: /api/pages and /api/page-blocks

","tags":["reference","developer","API"]},{"location":"docs/api/#public_4","title":"Public","text":"Method Path Auth Description GET /api/pages/:slug/view Get published page by slug","tags":["reference","developer","API"]},{"location":"docs/api/#admin_5","title":"Admin","text":"

Auth: Admin roles

Method Path Description GET /api/pages Paginated landing pages GET /api/pages/:id Single page POST /api/pages Create page PUT /api/pages/:id Update page DELETE /api/pages/:id Delete page POST /api/pages/sync Sync MkDocs overrides from filesystem POST /api/pages/validate Validate and repair MkDocs exports","tags":["reference","developer","API"]},{"location":"docs/api/#block-library","title":"Block Library","text":"

Auth: Admin roles

Method Path Description GET /api/page-blocks List blocks GET /api/page-blocks/:id Single block POST /api/page-blocks Create block PUT /api/page-blocks/:id Update block DELETE /api/page-blocks/:id Delete block","tags":["reference","developer","API"]},{"location":"docs/api/#email-templates","title":"Email Templates","text":"

Prefix: /api/email-templates \u00b7 Auth: Admin roles (seed/cache require SUPER_ADMIN)

Method Path Description GET /api/email-templates List templates GET /api/email-templates/:id Single template POST /api/email-templates Create template PUT /api/email-templates/:id Update template DELETE /api/email-templates/:id Delete template GET /api/email-templates/:id/versions Version history GET /api/email-templates/:id/versions/:versionNumber Specific version POST /api/email-templates/:id/rollback Rollback to prior version POST /api/email-templates/validate Validate Handlebars syntax POST /api/email-templates/:id/test Send test email (rate limited: 10/15min) GET /api/email-templates/:id/test-logs Test send logs POST /api/email-templates/seed Seed templates from filesystem POST /api/email-templates/clear-cache Clear template cache","tags":["reference","developer","API"]},{"location":"docs/api/#qr-codes","title":"QR Codes","text":"Method Path Auth Description GET /api/qr Generate QR code PNG (?text=&size=50-500)

Cached for 1 hour. Returns image/png.

","tags":["reference","developer","API"]},{"location":"docs/api/#site-settings","title":"Site Settings","text":"

Prefix: /api/settings

Method Path Auth Description GET /api/settings Public site settings (SMTP credentials stripped) GET /api/settings/admin SUPER_ADMIN Full settings including SMTP credentials PUT /api/settings SUPER_ADMIN Update settings POST /api/settings/email/test-connection SUPER_ADMIN Test SMTP connection POST /api/settings/email/test-send SUPER_ADMIN Send test email","tags":["reference","developer","API"]},{"location":"docs/api/#listmonk-newsletter-sync","title":"Listmonk (Newsletter Sync)","text":"

Prefix: /api/listmonk \u00b7 Auth: SUPER_ADMIN

Method Path Description GET /api/listmonk Sync status + connection check GET /api/listmonk/stats Subscriber counts from Listmonk POST /api/listmonk/test-connection Health check POST /api/listmonk/sync/participants Sync campaign participants POST /api/listmonk/sync/locations Sync locations POST /api/listmonk/sync/users Sync users POST /api/listmonk/sync/all Run all sync operations POST /api/listmonk/reinitialize Reinitialize Listmonk lists GET /api/listmonk/proxy-url Proxy port + JWT for iframe","tags":["reference","developer","API"]},{"location":"docs/api/#documentation-management","title":"Documentation Management","text":"

Prefix: /api/docs \u00b7 Auth: Authenticated, non-TEMP (write operations require SUPER_ADMIN)

Method Path Description GET /api/docs/status MkDocs + Code Server availability GET /api/docs/config Port numbers for iframe URLs GET /api/docs/mkdocs-config Read raw mkdocs.yml PUT /api/docs/mkdocs-config Write mkdocs.yml POST /api/docs/build Trigger MkDocs build POST /api/docs/upload Upload asset (20 MB, whitelisted extensions) GET /api/docs/files File tree (?force=true bypasses cache) POST /api/docs/files/rename Rename or move file GET /api/docs/files/* Read file content PUT /api/docs/files/* Write file content POST /api/docs/files/* Create file or folder DELETE /api/docs/files/* Delete file or empty folder","tags":["reference","developer","API"]},{"location":"docs/api/#services","title":"Services","text":"

Prefix: /api/services \u00b7 Auth: SUPER_ADMIN

Method Path Description GET /api/services/status Health check all managed services (NocoDB, n8n, Gitea, MailHog, Mini QR, Excalidraw, Homepage) GET /api/services/config Port numbers + subdomain info","tags":["reference","developer","API"]},{"location":"docs/api/#pangolin-tunnel-management","title":"Pangolin (Tunnel Management)","text":"

Prefix: /api/pangolin \u00b7 Auth: SUPER_ADMIN

Method Path Description GET /api/pangolin/status Tunnel health + connection info GET /api/pangolin/config Current env configuration GET /api/pangolin/newt-status Newt container status POST /api/pangolin/newt-restart Restart Newt container GET /api/pangolin/sites List Pangolin sites GET /api/pangolin/exit-nodes Available exit nodes GET /api/pangolin/resource-definitions Resource definitions from YAML GET /api/pangolin/resources List resources POST /api/pangolin/setup Create site + all resources (rate limited: \u2157min) POST /api/pangolin/sync Sync resources (create missing, update changed) PUT /api/pangolin/resource/:id Update resource DELETE /api/pangolin/resource/:id Delete resource GET /api/pangolin/resource/:id/clients Connected clients GET /api/pangolin/certificate/:domainId/:domain Certificate info POST /api/pangolin/certificate/:certId Update certificate","tags":["reference","developer","API"]},{"location":"docs/api/#observability","title":"Observability","text":"

Prefix: /api/observability \u00b7 Auth: SUPER_ADMIN \u00b7 Rate limited: 20/min

Method Path Description GET /api/observability/status Check 7 monitoring services GET /api/observability/metrics-summary Key metrics from Prometheus GET /api/observability/alerts Active alerts from Alertmanager","tags":["reference","developer","API"]},{"location":"docs/api/#payments","title":"Payments","text":"

Prefix: /api/payments

","tags":["reference","developer","API"]},{"location":"docs/api/#public_5","title":"Public","text":"Method Path Auth Description GET /api/payments/config Stripe publishable key + donation settings GET /api/payments/plans Active subscription plans GET /api/payments/products Active products (?type=) POST /api/payments/subscribe Create subscription checkout POST /api/payments/purchase Optional Product checkout (guest or logged-in) POST /api/payments/donate Donation checkout GET /api/payments/my-subscription Current subscription POST /api/payments/my-subscription/cancel Cancel subscription POST /api/payments/webhook Stripe webhook (raw body)","tags":["reference","developer","API"]},{"location":"docs/api/#admin_6","title":"Admin","text":"

Auth: SUPER_ADMIN

Method Path Description GET /api/payments/admin/settings Payment settings (secrets masked) PUT /api/payments/admin/settings Update payment settings POST /api/payments/admin/settings/test-connection Test Stripe connection GET /api/payments/admin/dashboard Subscription + donation statistics GET /api/payments/admin/plans All subscription plans POST /api/payments/admin/plans Create plan PUT /api/payments/admin/plans/:id Update plan DELETE /api/payments/admin/plans/:id Delete plan POST /api/payments/admin/plans/:id/sync-stripe Sync plan to Stripe GET /api/payments/admin/subscriptions All subscriptions with filters POST /api/payments/admin/subscriptions/:id/cancel Cancel subscription GET /api/payments/admin/products All products POST /api/payments/admin/products Create product PUT /api/payments/admin/products/:id Update product DELETE /api/payments/admin/products/:id Delete product POST /api/payments/admin/products/:id/sync-stripe Sync product to Stripe GET /api/payments/admin/orders List orders POST /api/payments/admin/orders/:id/refund Refund order GET /api/payments/admin/donations List donations GET /api/payments/admin/export CSV export of completed orders","tags":["reference","developer","API"]},{"location":"docs/api/#media-api-fastify-port-4100","title":"Media API (Fastify \u2014 Port 4100)","text":"

The Media API is a separate Fastify server sharing the same PostgreSQL database. It handles all video-related functionality.

","tags":["reference","developer","API"]},{"location":"docs/api/#health","title":"Health","text":"Method Path Auth Description GET /health Media API health check","tags":["reference","developer","API"]},{"location":"docs/api/#videos-admin","title":"Videos (Admin)","text":"

Prefix: /api/videos \u00b7 Auth: Admin roles

","tags":["reference","developer","API"]},{"location":"docs/api/#crud-publishing","title":"CRUD & Publishing","text":"Method Path Description GET /api/videos List videos (?limit=&offset=&search=&orientation=&producers=&isShort=) GET /api/videos/producers Distinct producer list GET /api/videos/health Video count health check GET /api/videos/:id Single video detail PATCH /api/videos/:id Update metadata (title, producer, tags, quality, etc.) POST /api/videos/:id/publish Publish to category POST /api/videos/:id/unpublish Unpublish POST /api/videos/bulk-publish Bulk publish POST /api/videos/bulk-unpublish Bulk unpublish POST /api/videos/:id/lock Lock published video POST /api/videos/:id/unlock Unlock video POST /api/videos/:id/generate-thumbnail Generate thumbnail via FFmpeg POST /api/videos/bulk-generate-thumbnails Bulk thumbnail generation","tags":["reference","developer","API"]},{"location":"docs/api/#upload","title":"Upload","text":"Method Path Description POST /api/videos/upload Single video upload (multipart, 10 GB limit, streams to disk) POST /api/videos/upload/batch Batch upload (returns 207 multi-status)","tags":["reference","developer","API"]},{"location":"docs/api/#actions","title":"Actions","text":"Method Path Description POST /api/videos/:id/duplicate Duplicate video record POST /api/videos/:id/replace Replace video file, keep metadata GET /api/videos/:id/analytics Detailed analytics (?startDate=&endDate=) POST /api/videos/:id/reset-analytics Reset all analytics GET /api/videos/:id/preview-link Generate 24-hour JWT preview link GET /api/videos/analytics/top Top videos (?metric=views|watchTime&limit=) GET /api/videos/analytics/overview Global analytics overview","tags":["reference","developer","API"]},{"location":"docs/api/#scheduling","title":"Scheduling","text":"Method Path Description POST /api/videos/:id/schedule-publish Schedule future publish ({publishAt, timezone?}) POST /api/videos/:id/schedule-unpublish Schedule future unpublish DELETE /api/videos/:id/schedule/:action Cancel scheduled operation GET /api/videos/schedules/upcoming Upcoming scheduled operations GET /api/videos/:id/schedule-history Schedule history for video GET /api/videos/schedules/stats Schedule queue statistics POST /api/videos/schedules/pause Pause schedule queue POST /api/videos/schedules/resume Resume schedule queue POST /api/videos/schedules/cleanup Clean old completed jobs","tags":["reference","developer","API"]},{"location":"docs/api/#video-fetch","title":"Video Fetch","text":"Method Path Description POST /api/videos/fetch Submit fetch job ({urls: string[]}, 1\u201320 URLs) GET /api/videos/fetch/jobs List recent fetch jobs GET /api/videos/fetch/jobs/:jobId Job detail + log GET /api/videos/fetch/jobs/:jobId/log SSE log stream (Redis pub/sub) DELETE /api/videos/fetch/jobs/:jobId Cancel fetch job","tags":["reference","developer","API"]},{"location":"docs/api/#streaming-public","title":"Streaming (Public)","text":"

Prefix: /api/videos

Method Path Auth Description GET /api/videos/stream/health Streaming health check GET /api/videos/:id/stream Optional HTTP range-supporting video stream GET /api/videos/:id/thumbnail Optional Serve thumbnail image GET /api/videos/:id/metadata Public video metadata for embedding

Note

Admins can stream unpublished videos by providing a valid JWT.

","tags":["reference","developer","API"]},{"location":"docs/api/#public-gallery","title":"Public Gallery","text":"

Prefix: /api/public

Method Path Auth Description GET /api/public Optional Published videos (?limit=&offset=&search=&sort=recent|popular|oldest&category=) GET /api/public/categories Optional Categories with video counts GET /api/public/producers Optional Published producers GET /api/public/:id Optional Single published video GET /api/public/:id/thumbnail Optional Published thumbnail GET /api/public/:id/stream Optional Published video stream","tags":["reference","developer","API"]},{"location":"docs/api/#tracking","title":"Tracking","text":"

Prefix: /api/track \u00b7 Auth: None required

Method Path Description GET /api/track/health Tracking health check POST /api/track/view Record video view (returns {viewId}) POST /api/track/event Record play/pause/seek/complete event POST /api/track/heartbeat Update watch time (10s interval, sendBeacon) POST /api/track/batch Batch up to 50 tracking events Tracking is GDPR-compliant

IP addresses are hashed with a daily-rotating salt. Raw IPs are never stored. Tracking data is retained for 90 days.

","tags":["reference","developer","API"]},{"location":"docs/api/#reactions","title":"Reactions","text":"

Prefix: /api/reactions

Method Path Auth Description GET /api/reactions/config Available reaction types + emoji mappings GET /api/reactions List reactions (?mediaId=&userId=&limit=) GET /api/reactions/:mediaId/chat Reactions in chat timeline format POST /api/reactions Add reaction (30s cooldown per type)

Available types: like, love, laugh, wow, sad, angry

","tags":["reference","developer","API"]},{"location":"docs/api/#comments-chat","title":"Comments & Chat","text":"","tags":["reference","developer","API"]},{"location":"docs/api/#public-comments","title":"Public Comments","text":"Method Path Auth Description GET /api/public/:id/comments List comments (?limit=&offset=) POST /api/public/:id/comments Optional Create comment (word-filtered; rate limited: 5/min) GET /api/public/:id/chat-stream SSE stream for real-time chat (30s keepalive)","tags":["reference","developer","API"]},{"location":"docs/api/#comment-admin","title":"Comment Admin","text":"

Prefix: /api/media/admin/comments \u00b7 Auth: Admin roles

Method Path Description GET /api/media/admin/comments/stats Counts by status GET /api/media/admin/comments All comments with filters PATCH /api/media/admin/comments/:id/approve Approve comment PATCH /api/media/admin/comments/:id/hide Hide comment PATCH /api/media/admin/comments/:id/unhide Unhide comment PUT /api/media/admin/comments/:id/notes Update moderation notes DELETE /api/media/admin/comments/:id Delete comment","tags":["reference","developer","API"]},{"location":"docs/api/#word-filters","title":"Word Filters","text":"

Prefix: /api/media/admin/word-filters \u00b7 Auth: Admin roles

Method Path Description GET /api/media/admin/word-filters List filter entries grouped by level POST /api/media/admin/word-filters Add word ({word, level: low|medium|high|custom}) DELETE /api/media/admin/word-filters/:id Remove word","tags":["reference","developer","API"]},{"location":"docs/api/#chat-threads-notifications","title":"Chat Threads & Notifications","text":"

Auth: Authenticated

Method Path Description GET /api/media/chat/threads Videos with user's comments + unread counts POST /api/media/chat/threads/:mediaId/read Mark thread as read GET /api/media/notifications/stream Per-user SSE notification stream (?token=)","tags":["reference","developer","API"]},{"location":"docs/api/#shorts","title":"Shorts","text":"Method Path Auth Description GET /api/shorts Optional Shorts feed (?sort=recent|popular|random) POST /api/shorts/scan Admin Auto-classify short videos by duration","tags":["reference","developer","API"]},{"location":"docs/api/#upvotes","title":"Upvotes","text":"Method Path Auth Description POST /api/public/:id/upvote Toggle upvote (session-based via X-Session-ID header) GET /api/public/:id/upvote-status Check upvote status for current session","tags":["reference","developer","API"]},{"location":"docs/api/#playlists","title":"Playlists","text":"","tags":["reference","developer","API"]},{"location":"docs/api/#public_6","title":"Public","text":"

Prefix: /api/playlists

Method Path Auth Description GET /api/playlists/featured Optional Featured playlists GET /api/playlists/popular Optional Popular public playlists (?search=) GET /api/playlists/share/:token Optional Playlist by share token GET /api/playlists/:id Optional Playlist detail (public, owner, or share token) POST /api/playlists/:id/view Optional Record playlist view","tags":["reference","developer","API"]},{"location":"docs/api/#user-playlists","title":"User Playlists","text":"

Auth: Authenticated

Method Path Description GET /api/playlists/my Own playlists POST /api/playlists Create playlist PUT /api/playlists/:id Update playlist (ownership check) DELETE /api/playlists/:id Delete playlist POST /api/playlists/:id/videos Add video ({mediaId}) DELETE /api/playlists/:id/videos/:mediaId Remove video PUT /api/playlists/:id/videos/reorder Reorder videos POST /api/playlists/:id/share Generate share token DELETE /api/playlists/:id/share Revoke share token","tags":["reference","developer","API"]},{"location":"docs/api/#playlist-admin","title":"Playlist Admin","text":"

Prefix: /api/media/playlists \u00b7 Auth: Admin roles

Method Path Description GET /api/media/playlists All playlists GET /api/media/playlists/featured Featured playlists with admin info POST /api/media/playlists/:id/feature Feature a playlist DELETE /api/media/playlists/:id/feature Unfeature a playlist PUT /api/media/playlists/featured/reorder Reorder featured playlists PUT /api/media/playlists/:id Admin update any playlist POST /api/media/playlists/:id/duplicate Duplicate playlist DELETE /api/media/playlists/:id Admin delete any playlist","tags":["reference","developer","API"]},{"location":"docs/api/#user-profile","title":"User Profile","text":"

Prefix: /api/media/me \u00b7 Auth: Authenticated

Method Path Description GET /api/media/me/stats User stats + 30-day activity + achievements GET /api/media/me/watch-history Paginated watch history POST /api/media/me/stats/recalculate Recompute stats from raw data GET /api/media/me/settings Privacy settings PUT /api/media/me/settings Update privacy settings PUT /api/media/me/profile Update display name PUT /api/media/me/password Change password","tags":["reference","developer","API"]},{"location":"docs/api/#route-summary","title":"Route Summary","text":"API Module Endpoint Count Express Auth 9 Users 7 Dashboard 7 Campaigns (CRUD + public + user + moderation + emails) 16 Responses 10 Email Queue 4 Representatives 7 Locations (CRUD + geocode + import) 21 Cuts 11 Shifts (CRUD + series) 19 Canvassing 20 GPS Tracking 10 Map Settings + Geocoding 3 Pages + Blocks 12 Email Templates 13 QR Codes 1 Site Settings 5 Listmonk 9 Docs Management 11 Services 2 Pangolin 16 Observability 3 Payments (public + admin) 29 Health + Metrics 3 Express Total ~248 Fastify Videos (CRUD + upload + actions + schedule + fetch) 39 Streaming 4 Public Gallery 6 Tracking 5 Reactions 4 Comments + Chat 13 Shorts + Upvotes 4 Playlists (public + user + admin) 18 User Profile 7 Health 1 Fastify Total ~101 Grand Total ~349","tags":["reference","developer","API"]},{"location":"docs/architecture/","title":"Architecture","text":"

Changemaker Lite uses a dual-API architecture with a shared PostgreSQL database, a React single-page application, and Nginx for subdomain routing across 30+ services.

","tags":["reference","developer","architecture"]},{"location":"docs/architecture/#system-diagram","title":"System Diagram","text":"
graph LR\n    Browser[\"Browser\"] --> Nginx[\"Nginx<br/>(reverse proxy)\"]\n    Nginx --> Admin[\"React Admin GUI<br/>port 3000\"]\n    Nginx --> API[\"Express API<br/>port 4000\"]\n    Nginx --> MediaAPI[\"Fastify Media API<br/>port 4100\"]\n    Nginx --> MkDocs[\"MkDocs<br/>port 4003/4004\"]\n    Nginx --> Services[\"Other Services<br/>(Gitea, NocoDB, etc.)\"]\n\n    API --> PostgreSQL[(\"PostgreSQL 16<br/>30+ tables\")]\n    MediaAPI --> PostgreSQL\n    API --> Redis[(\"Redis<br/>cache + queues\")]\n    API --> BullMQ[\"BullMQ<br/>(email, video jobs)\"]\n    BullMQ --> Redis\n\n    subgraph Tunnel [\"Public Access\"]\n        Newt[\"Newt Client\"] --> Pangolin[\"Pangolin Server\"]\n    end\n    Newt --> Nginx
","tags":["reference","developer","architecture"]},{"location":"docs/architecture/#key-components","title":"Key Components","text":"Component Technology Role Main API Express.js + TypeScript + Prisma Auth, campaigns, map, shifts, pages, canvassing, email Media API Fastify + TypeScript + Prisma Video library, analytics, uploads, scheduling Admin GUI React 19 + Vite + Ant Design + Zustand Admin dashboard, public pages, volunteer portal, media gallery Database PostgreSQL 16 Shared by both APIs (30+ models via Prisma) Cache Redis 7 Rate limiting, BullMQ job queues, geocoding cache Proxy Nginx Subdomain routing, security headers, WebSocket upgrade Tunnel Pangolin + Newt Expose services without port forwarding Monitoring Prometheus + Grafana + Alertmanager Metrics collection, dashboards, alerting","tags":["reference","developer","architecture"]},{"location":"docs/architecture/#dual-api-design","title":"Dual API Design","text":"

The platform runs two independent API servers sharing one PostgreSQL database:

Express API (port 4000)Fastify Media API (port 4100)

The main API handles all core platform logic:

  • Authentication \u2014 JWT access/refresh tokens, RBAC middleware
  • Modules \u2014 Influence (campaigns, responses), Map (locations, cuts, shifts, canvassing), Pages, Email Templates, Settings, Users, Payments, Social, Calendar
  • Services \u2014 Email queue (BullMQ), geocoding queue, Listmonk sync, Pangolin client, user provisioning
  • ORM \u2014 Prisma with 30+ models and migration history

A separate server optimized for media handling:

  • Video CRUD \u2014 Upload with FFprobe metadata extraction
  • Scheduled Publishing \u2014 BullMQ queue with timezone support
  • Analytics \u2014 View tracking, watch time, completion rates (GDPR-compliant)
  • Public Gallery \u2014 Playlists, reactions, comments, SSE chat
  • ORM \u2014 Prisma (migrated from Drizzle, Feb 2026)

Both servers connect to the same database and share the same Prisma schema. This separation allows the media API to handle large file uploads and streaming independently from the main API's request/response cycle.

","tags":["reference","developer","architecture"]},{"location":"docs/architecture/#authentication-flow","title":"Authentication Flow","text":"
sequenceDiagram\n    participant Client\n    participant API\n    participant DB\n    participant Redis\n\n    Client->>API: POST /api/auth/login {email, password}\n    API->>Redis: Check rate limit (10/min per IP)\n    Redis-->>API: OK\n    API->>DB: Verify bcrypt password\n    DB-->>API: User record\n    API->>DB: Create refresh token\n    API-->>Client: {accessToken (15min), refreshToken (7d)}\n\n    Note over Client: Authenticated requests\n    Client->>API: GET /api/campaigns<br/>Authorization: Bearer <accessToken>\n    API->>API: Verify JWT + check role (RBAC)\n    API-->>Client: 200 OK\n\n    Note over Client: Token expired\n    Client->>API: POST /api/auth/refresh {refreshToken}\n    API->>DB: Atomic rotation (delete old, create new)\n    API-->>Client: {new accessToken, new refreshToken}
","tags":["reference","developer","architecture"]},{"location":"docs/architecture/#security-features","title":"Security Features","text":"
  • Password policy \u2014 12+ characters, uppercase, lowercase, digit (schema-enforced)
  • Refresh token rotation \u2014 Atomic Prisma transaction prevents race conditions
  • User enumeration prevention \u2014 Returns 401 (not 404) for missing users
  • Rate limiting \u2014 10 requests/minute on auth endpoints via Redis
  • 11 roles \u2014 SUPER_ADMIN (implicit bypass), 8 module-specific admin roles, USER, TEMP
  • Encryption \u2014 AES-256-GCM for sensitive DB fields (ENCRYPTION_KEY env var)
","tags":["reference","developer","architecture"]},{"location":"docs/architecture/#request-lifecycle","title":"Request Lifecycle","text":"
graph TD\n    A[\"Incoming Request\"] --> B[\"Nginx\"]\n    B -->|\"Host: api.domain\"| C[\"Express API\"]\n    B -->|\"Host: media.domain\"| D[\"Fastify Media API\"]\n    B -->|\"Host: app.domain\"| E[\"React Admin GUI\"]\n    C --> F[\"Rate Limiter (Redis)\"]\n    F --> G[\"Auth Middleware (JWT)\"]\n    G --> H[\"Role Check (RBAC)\"]\n    H --> I[\"Validation (Zod)\"]\n    I --> J[\"Route Handler\"]\n    J --> K[\"Service Layer\"]\n    K --> L[\"Prisma ORM\"]\n    L --> M[(\"PostgreSQL\")]\n    J --> N[\"Response + Metrics\"]
","tags":["reference","developer","architecture"]},{"location":"docs/architecture/#database-schema","title":"Database Schema","text":"

The database contains 30+ Prisma models organized by module:

Module Key Models Auth User, RefreshToken Influence Campaign, CampaignEmail, CampaignResponse, Representative, PostalCode Map Location, Address, Cut, Shift, ShiftSignup Canvass CanvassSession, CanvassVisit, TrackingSession, TrackingPoint Pages Page, PageBlock, EmailTemplate Media Video, VideoReaction, VideoComment, VideoView, Playlist, PlaylistVideo Payments StripeProduct, StripePrice, StripeDonationPage, StripeOrder Social Friendship, SocialNotification, CalendarLayer, CalendarItem SMS SmsContactList, SmsCampaign, SmsMessage, SmsConversation People Contact, ContactAddress, ContactEmail, ContactPhone, ContactConnection Settings SiteSettings, MapSettings","tags":["reference","developer","architecture"]},{"location":"docs/architecture/#docker-compose-architecture","title":"Docker Compose Architecture","text":"

Services are organized into categories with dependency management:

graph TD\n    subgraph Core [\"Core (always started)\"]\n        PG[\"PostgreSQL\"] --> API[\"Express API\"]\n        Redis --> API\n        PG --> Media[\"Fastify Media API\"]\n        API --> Admin[\"React Admin\"]\n        Admin --> Nginx\n        API --> Nginx\n        Media --> Nginx\n    end\n\n    subgraph Communication [\"Communication (optional)\"]\n        RC[\"Rocket.Chat\"] --> MongoDB\n        Jitsi[\"Jitsi Meet (4 containers)\"]\n        Gancio[\"Gancio Events\"]\n    end\n\n    subgraph Monitoring [\"Monitoring (profile)\"]\n        Prometheus --> Grafana\n        Prometheus --> Alertmanager\n        cAdvisor --> Prometheus\n        NodeExporter --> Prometheus\n    end\n\n    subgraph Tunnel [\"Tunnel\"]\n        Newt --> Nginx\n    end

Docker healthchecks ensure proper startup order: PostgreSQL and Redis must be healthy before the API starts. The API runs migrations and seeding automatically via its entrypoint script.

","tags":["reference","developer","architecture"]},{"location":"docs/architecture/#subdomain-routing","title":"Subdomain Routing","text":"

Nginx routes requests based on the Host header. All services run on the changemaker-lite Docker bridge network.

Pattern Target app.DOMAIN Admin GUI (admin + public + volunteer + gallery) api.DOMAIN Express API media.DOMAIN Fastify Media API DOMAIN (root) MkDocs static site *.DOMAIN 15+ additional service subdomains

See Services for the complete subdomain table.

","tags":["reference","developer","architecture"]},{"location":"docs/deployment/","title":"Deployment","text":"

This guide covers how to take Changemaker Lite from a local development setup to a publicly accessible production deployment. The main decision is how to expose your services to the internet.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#architecture-overview","title":"Architecture Overview","text":"

Regardless of which exposure method you choose, the internal architecture is the same:

Internet \u2192 [Your exposure method] \u2192 Nginx (port 80) \u2192 Backend Services\n

Nginx handles all subdomain routing internally. Every service is accessed through nginx on port 80, which proxies to the correct container based on the Host header.

Subdomain Service Container Port app.DOMAIN Admin GUI + public pages 3000 api.DOMAIN Express API 4000 media.DOMAIN Fastify Media API 4100 DOMAIN (root) MkDocs documentation site 4004 db.DOMAIN NocoDB 8091 docs.DOMAIN MkDocs live preview 4003 code.DOMAIN Code Server 8888 git.DOMAIN Gitea 3030 n8n.DOMAIN Workflow automation 5678 home.DOMAIN Homepage dashboard 3010 listmonk.DOMAIN Newsletter manager 9001 mail.DOMAIN MailHog (dev email) 8025 qr.DOMAIN Mini QR generator 8089 draw.DOMAIN Excalidraw whiteboard 8090 vault.DOMAIN Vaultwarden password manager 8445 chat.DOMAIN Rocket.Chat team chat \u2014 events.DOMAIN Gancio event management 8092 grafana.DOMAIN Monitoring dashboards 3005","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#exposure-methods","title":"Exposure Methods","text":"","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#pangolin","title":"Option 1: Pangolin + Newt Tunnel (Recommended)","text":"

Admin GUI: Tunnel Management Page

The admin dashboard includes a dedicated Tunnel Management page at Admin \u2192 Settings \u2192 Tunnel. This page provides:

  • Live status of the Pangolin connection and Newt container health
  • Step-by-step setup instructions if credentials aren't configured yet
  • Full resource table listing every service, its domain, and target \u2014 useful as a reference when creating resources in the Pangolin dashboard
  • API-based site creation as an alternative to the Pangolin dashboard UI
  • Restart Newt button for quick container restarts without the terminal

If you're unsure about any step above, the Tunnel page walks you through the same process interactively.

Pangolin is a self-hosted tunnel server. The Newt client container runs alongside your stack and establishes an outbound connection to your Pangolin server, which then routes public traffic back through the tunnel. No port forwarding or static IP required.

Advantages:

  • No port forwarding needed on your router/firewall
  • Works behind CGNAT, double NAT, or restrictive networks
  • SSL/TLS handled by the Pangolin server
  • Self-hosted \u2014 you control the tunnel infrastructure
  • Built-in access control (optional per-resource authentication)

Requirements:

  • A Pangolin server (self-hosted on a VPS with a public IP)
  • A domain with DNS pointing to the Pangolin server
  • Pangolin API key and organization ID
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#step-1-configure-pangolin-credentials","title":"Step 1: Configure Pangolin Credentials","text":"

If you used config.sh, you may have already set these. Otherwise, add to your .env:

PANGOLIN_API_URL=https://api.your-pangolin-server.org/v1\nPANGOLIN_API_KEY=your_api_key_here\nPANGOLIN_ORG_ID=your_org_id\n
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#step-2-create-a-site-in-pangolin","title":"Step 2: Create a Site in Pangolin","text":"

Log in to your Pangolin dashboard and create a new site:

  1. Navigate to Sites \u2192 Create New Site
  2. Choose type: Newt
  3. Enter a name (e.g., changemaker-yourdomain.org)
  4. Choose a subnet (e.g., 100.90.128.3/24)
  5. Select an exit node (if applicable)
  6. Click Create Site
  7. Copy the credentials \u2014 you'll need the Site ID, Newt ID, and Newt Secret

Save the credentials

The Newt Secret is only shown once during site creation. Copy it immediately.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#step-3-update-env-with-site-credentials","title":"Step 3: Update .env with Site Credentials","text":"
PANGOLIN_SITE_ID=your_site_id\nPANGOLIN_ENDPOINT=https://your-pangolin-server.org\nPANGOLIN_NEWT_ID=your_newt_id\nPANGOLIN_NEWT_SECRET=your_newt_secret\n
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#step-4-start-the-newt-container","title":"Step 4: Start the Newt Container","text":"
docker compose up -d newt\n

The Newt container connects to nginx (its only dependency) and establishes the tunnel:

# From docker-compose.yml\nnewt:\n  image: fosrl/newt\n  container_name: newt-changemaker\n  restart: unless-stopped\n  environment:\n    - PANGOLIN_ENDPOINT=${PANGOLIN_ENDPOINT}\n    - NEWT_ID=${PANGOLIN_NEWT_ID}\n    - NEWT_SECRET=${PANGOLIN_NEWT_SECRET}\n  depends_on:\n    - nginx\n

Verify the connection:

docker compose logs newt --tail 20\n

You should see a successful connection message.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#step-5-create-public-http-resources","title":"Step 5: Create Public HTTP Resources","text":"

In the Pangolin dashboard, create an HTTP resource for each service you want exposed. All resources point to nginx:80 \u2014 nginx handles the routing internally.

Required resources (minimum for a working deployment):

Resource Name Domain Target Auth Admin GUI app.yourdomain.org nginx:80 Not Protected API Server api.yourdomain.org nginx:80 Not Protected Public Site yourdomain.org nginx:80 Not Protected

Optional resources (add as needed):

Resource Name Domain Target Media API media.yourdomain.org nginx:80 NocoDB db.yourdomain.org nginx:80 Documentation docs.yourdomain.org nginx:80 Code Server code.yourdomain.org nginx:80 Gitea git.yourdomain.org nginx:80 Grafana grafana.yourdomain.org nginx:80

Set resources to Not Protected

By default, Pangolin may enable authentication on new resources. This causes 302 redirects to the Pangolin login page instead of reaching your services. Set each resource to Not Protected (public access) unless you intentionally want Pangolin SSO in front of it.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#step-6-update-cors-for-production","title":"Step 6: Update CORS for Production","text":"

Add your production domain to CORS_ORIGINS in .env:

CORS_ORIGINS=https://app.yourdomain.org,http://localhost:3000,http://localhost\n

Then restart the API:

docker compose restart api\n
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#step-7-verify","title":"Step 7: Verify","text":"
# Should return JSON (not a 302 redirect)\ncurl https://api.yourdomain.org/api/health\n\n# Admin GUI should load\ncurl -I https://app.yourdomain.org\n
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#cloudflare","title":"Option 2: Cloudflare Tunnel","text":"

Cloudflare Tunnel (cloudflared) provides a similar zero-trust tunnel approach using Cloudflare's network. No port forwarding needed, and you get Cloudflare's CDN and DDoS protection.

Advantages:

  • Free tier available
  • Built-in CDN and DDoS protection
  • No port forwarding needed
  • Managed SSL certificates

Disadvantages:

  • Proprietary service (not self-hosted)
  • Cloudflare sees all traffic (no end-to-end encryption to your origin)
  • Subject to Cloudflare's Terms of Service
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#setup","title":"Setup","text":"
  1. Create a Cloudflare Tunnel in the Zero Trust dashboard

  2. Add a cloudflared service to your docker-compose.yml:

    cloudflared:\n  image: cloudflare/cloudflared:latest\n  container_name: cloudflared-changemaker\n  restart: unless-stopped\n  command: tunnel run\n  environment:\n    - TUNNEL_TOKEN=${CLOUDFLARE_TUNNEL_TOKEN}\n  depends_on:\n    - nginx\n  networks:\n    - changemaker-lite\n
  3. Add your tunnel token to .env:

    CLOUDFLARE_TUNNEL_TOKEN=your_tunnel_token_here\n
  4. Configure public hostnames in the Cloudflare dashboard, all pointing to http://nginx:80:

    Hostname Service app.yourdomain.org http://nginx:80 api.yourdomain.org http://nginx:80 yourdomain.org http://nginx:80 (add more as needed) http://nginx:80
  5. Start the tunnel:

    docker compose up -d cloudflared\n

Note

The cloudflared service is not included in the default docker-compose.yml. Add it manually if you choose this method. The Newt service can be removed or left stopped.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#direct","title":"Option 3: Direct DNS + Reverse Proxy","text":"

If your server has a public IP address (e.g., a VPS or dedicated server), you can point DNS directly to it and use nginx with SSL certificates.

Advantages:

  • No tunnel overhead or third-party dependency
  • Full control over the network path
  • Lowest latency

Disadvantages:

  • Requires a public IP and open ports (80, 443)
  • You manage SSL certificates yourself
  • Server IP is exposed
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#setup_1","title":"Setup","text":"
  1. Point DNS for your domain and all subdomains to your server's IP:

    A     yourdomain.org        \u2192 YOUR_SERVER_IP\nA     *.yourdomain.org      \u2192 YOUR_SERVER_IP\n

    Or use individual A records for each subdomain if your DNS provider doesn't support wildcards.

  2. Open ports 80 and 443 on your server's firewall.

  3. Install Certbot (or another ACME client) for SSL certificates:

    # Ubuntu/Debian\nsudo apt install certbot\n\n# Get a wildcard certificate with DNS challenge\nsudo certbot certonly --manual --preferred-challenges dns \\\n  -d yourdomain.org -d '*.yourdomain.org'\n

    Alternatively, use the Certbot Docker image or a Let's Encrypt companion container.

  4. Update nginx to listen on 443 with your certificates. Add an SSL server block to nginx/conf.d/ssl.conf:

    server {\n    listen 443 ssl;\n    server_name app.yourdomain.org;\n\n    ssl_certificate /etc/nginx/ssl/fullchain.pem;\n    ssl_certificate_key /etc/nginx/ssl/privkey.pem;\n\n    location / {\n        proxy_pass http://changemaker-v2-admin:3000;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection \"upgrade\";\n    }\n}\n\n# Repeat for api.yourdomain.org, media.yourdomain.org, etc.\n# Or use a single server block with $host matching\n
  5. Mount certificates into the nginx container via docker-compose.yml:

    nginx:\n  volumes:\n    - /etc/letsencrypt/live/yourdomain.org:/etc/nginx/ssl:ro\n
  6. Set up auto-renewal with a cron job or systemd timer:

    0 3 * * * certbot renew --quiet && docker compose restart nginx\n

Traefik alternative

If you prefer automatic SSL and don't want to manage nginx SSL config manually, consider replacing nginx with Traefik. Traefik can auto-discover Docker containers and provision Let's Encrypt certificates automatically. This would require adapting the container labels and removing the nginx service.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#tailscale","title":"Option 4: Tailscale / WireGuard (Private Access)","text":"

For deployments that should only be accessible to specific people (not the general public), a mesh VPN like Tailscale or plain WireGuard gives you private networking without exposing anything to the internet.

Use cases:

  • Internal team deployments
  • Development/staging servers
  • Access from mobile devices without public exposure
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#tailscale-setup","title":"Tailscale Setup","text":"
  1. Install Tailscale on your server and client devices
  2. Access services via Tailscale IP (e.g., http://100.x.x.x:3000)
  3. Optionally use Tailscale Funnel to selectively expose specific services publicly
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#wireguard-setup","title":"WireGuard Setup","text":"
  1. Set up a WireGuard server on your host
  2. Connect client devices via WireGuard config
  3. Access services via the WireGuard interface IP

Note

With private access methods, you may not need subdomain routing at all. Access services directly by port: http://server-ip:3000 (admin), http://server-ip:4000 (API), etc.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#production-checklist","title":"Production Checklist","text":"

Before going live, verify each item:

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#security","title":"Security","text":"
  • All placeholder passwords changed (grep -c \"REQUIRED_STRONG\" .env should return 0)
  • NODE_ENV=production set in .env
  • ENCRYPTION_KEY set and differs from JWT secrets
  • EMAIL_TEST_MODE=false (unless you want MailHog in production)
  • CORS_ORIGINS includes your production domain
  • Admin password changed after first login
  • Redis password set (REDIS_PASSWORD)
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#networking","title":"Networking","text":"
  • DNS records configured for your domain and subdomains
  • SSL/TLS working (tunnel handles this, or manual certs)
  • All Pangolin resources set to \"Not Protected\" (if using Pangolin)
  • curl https://api.yourdomain.org/api/health returns JSON
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#services","title":"Services","text":"
  • Core services running: docker compose ps shows api, admin, v2-postgres, redis, nginx healthy
  • Database migrated: docker compose exec api npx prisma migrate deploy
  • Database seeded: docker compose exec api npx prisma db seed
  • Admin GUI accessible at https://app.yourdomain.org
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#backups","title":"Backups","text":"
  • Backup script tested: ./scripts/backup.sh
  • Backup cron job configured (see Backups below)
  • Restore procedure tested at least once
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#monitoring-optional","title":"Monitoring (Optional)","text":"
  • Monitoring stack started: docker compose --profile monitoring up -d
  • Grafana accessible and dashboards loading
  • Alert rules configured in Alertmanager
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#backups_1","title":"Backups","text":"

The included backup script dumps PostgreSQL databases, archives uploads, and optionally uploads to S3.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#running-a-backup","title":"Running a Backup","text":"
./scripts/backup.sh\n

This creates a timestamped directory under ./backups/ containing:

  • changemaker_v2.sql.gz \u2014 Main PostgreSQL dump (compressed)
  • listmonk.sql.gz \u2014 Listmonk database dump (if running)
  • uploads.tar.gz \u2014 Media uploads archive
  • manifest.json \u2014 Backup metadata
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#options","title":"Options","text":"
# Upload to S3 (requires AWS CLI + S3_BUCKET env var)\n./scripts/backup.sh --s3\n\n# Custom retention (delete local backups older than N days)\n./scripts/backup.sh --retention 14\n
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#automated-backups","title":"Automated Backups","text":"

Add a cron job for daily backups:

# Edit crontab\ncrontab -e\n\n# Add daily backup at 3 AM\n0 3 * * * /path/to/changemaker.lite/scripts/backup.sh >> /var/log/changemaker-backup.log 2>&1\n\n# With S3 upload\n0 3 * * * /path/to/changemaker.lite/scripts/backup.sh --s3 >> /var/log/changemaker-backup.log 2>&1\n
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#restore","title":"Restore","text":"
# Restore main database\ngunzip -c backups/changemaker-v2-backup-TIMESTAMP/changemaker_v2.sql.gz | \\\n  docker compose exec -T v2-postgres psql -U changemaker changemaker_v2\n\n# Restore Listmonk database\ngunzip -c backups/changemaker-v2-backup-TIMESTAMP/listmonk.sql.gz | \\\n  docker compose exec -T listmonk-db psql -U listmonk listmonk\n\n# Restore uploads\ntar xzf backups/changemaker-v2-backup-TIMESTAMP/uploads.tar.gz -C ./\n
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#monitoring","title":"Monitoring","text":"

The monitoring stack runs behind a Docker Compose profile and is not started by default.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#starting-the-monitoring-stack","title":"Starting the Monitoring Stack","text":"
docker compose --profile monitoring up -d\n

This starts:

Service Port Purpose Prometheus 9090 Metrics collection and queries Grafana 3005 Dashboards and visualization Alertmanager 9093 Alert routing and notifications cAdvisor 8086 Container resource metrics Node Exporter 9100 Host system metrics Redis Exporter 9121 Redis metrics Gotify 8889 Push notifications","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#pre-configured-dashboards","title":"Pre-configured Dashboards","text":"

Grafana includes 3 auto-provisioned dashboards:

  1. API Overview \u2014 HTTP request rates, latency, error rates, active sessions
  2. Infrastructure \u2014 Container CPU/memory, PostgreSQL connections, Redis memory
  3. Campaign Activity \u2014 Email queue size, campaign sends, response submissions
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#custom-metrics","title":"Custom Metrics","text":"

The API exposes 12 custom Prometheus metrics with the cm_ prefix:

  • cm_api_uptime_seconds \u2014 API uptime
  • cm_email_queue_size \u2014 BullMQ pending emails
  • cm_active_canvass_sessions \u2014 Active canvassing sessions
  • cm_locations_total \u2014 Total locations in database
  • And more \u2014 see api/src/utils/metrics.ts
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#alert-rules","title":"Alert Rules","text":"

Pre-configured alerts in configs/prometheus/alerts.yml:

  • API down for more than 5 minutes
  • High error rate (>5% of requests returning 5xx)
  • Database connection failures
  • Redis connection failures
  • Email queue backlog
  • Disk space warnings
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#upgrading","title":"Upgrading","text":"","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#pulling-updates","title":"Pulling Updates","text":"
# Pull latest code\ngit pull origin v2\n\n# Rebuild and restart containers\ndocker compose build api admin\ndocker compose up -d api admin\n\n# Run any new migrations\ndocker compose exec api npx prisma migrate deploy\n
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#database-migrations","title":"Database Migrations","text":"

Always run migrations after pulling updates:

docker compose exec api npx prisma migrate deploy\n

Back up first

Always run ./scripts/backup.sh before applying migrations in production. Migrations may alter table structures and are not easily reversible.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#troubleshooting-production-issues","title":"Troubleshooting Production Issues","text":"","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#pangolin-302-redirects-instead-of-content","title":"Pangolin: 302 Redirects Instead of Content","text":"

Symptom: API returns 302 redirects to the Pangolin authentication page.

Fix: In the Pangolin dashboard, edit each resource and set Authentication to Not Protected.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#cors-errors","title":"CORS Errors","text":"

Symptom: Browser console shows CORS errors when accessing the production domain.

Fix: Add your production app. subdomain to CORS_ORIGINS in .env, then docker compose restart api.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#newt-wont-connect","title":"Newt Won't Connect","text":"

Check in order:

  1. Credentials: Verify PANGOLIN_NEWT_ID and PANGOLIN_NEWT_SECRET in .env
  2. Endpoint: Confirm PANGOLIN_ENDPOINT matches your Pangolin server URL
  3. Logs: docker compose logs newt --tail 50
  4. Nginx running: Newt depends on nginx \u2014 docker compose ps nginx
  5. Network: Ensure outbound HTTPS is not blocked by your firewall
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#services-unreachable-via-tunnel","title":"Services Unreachable via Tunnel","text":"
  1. Verify nginx is running: docker compose ps nginx
  2. Test locally first: curl http://localhost:4000/api/health
  3. Check nginx logs: docker compose logs nginx --tail 50
  4. Verify DNS: dig app.yourdomain.org should point to your Pangolin server

See Troubleshooting for more common issues.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/getting-started/","title":"Getting Started","text":"

This guide walks you through installing Changemaker Lite, running your first deployment, and logging into the admin dashboard.

","tags":["guide","getting-started","operator"],"boost":2},{"location":"docs/getting-started/#prerequisites","title":"Prerequisites","text":"
  • Docker 24+ and Docker Compose v2
  • OpenSSL (for secret generation)
  • A Linux server (Ubuntu 22.04+ recommended) or macOS for development
  • At least 2 GB RAM and 10 GB disk space
  • A domain name (optional, but recommended for production)
","tags":["guide","getting-started","operator"],"boost":2},{"location":"docs/getting-started/#quick-install-pre-built-images","title":"Quick Install (Pre-built Images)","text":"

The fastest way to deploy \u2014 no source code, no compilation:

curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/v2/scripts/install.sh | bash\n

This downloads a lightweight release package (~2 MB), runs the configuration wizard, and pulls pre-built Docker images. First startup takes ~2 minutes. See Installation for details.

","tags":["guide","getting-started","operator"],"boost":2},{"location":"docs/getting-started/#quick-start-from-source","title":"Quick Start (From Source)","text":"

For development or customization, clone the full repository:

git clone https://gitea.bnkops.com/admin/changemaker.lite\ncd changemaker.lite\ngit checkout v2\n
bash config.sh\n
docker compose up -d\n

Open http://localhost:3000 and sign in with the admin email and password you configured. The API container automatically runs database migrations and seeding on first startup \u2014 no manual steps needed.

Change your password

If you used the wizard's generated password, change it immediately from the admin dashboard.

For the full setup walkthrough, see Installation.

","tags":["guide","getting-started","operator"],"boost":2},{"location":"docs/getting-started/#configuration-wizard","title":"Configuration Wizard","text":"

The config.sh wizard produces a fully populated .env file in 14 steps:

Step What It Does 1. Prerequisites Verifies Docker, Docker Compose, and OpenSSL 2. Environment file Creates .env from .env.example (backs up existing) 3. Domain Sets root domain + 14 derived variables, updates mkdocs.yml 4. Admin credentials Email + password (enforces 12+ chars, mixed case, digit) 5. Secrets Auto-generates 21 unique secrets (JWT, encryption, database, service passwords) 6. Email MailHog (dev) or production SMTP, optionally shared with Listmonk 7. Feature flags 9 toggles: Media, Listmonk, Payments, Chat, Events, Meet, SMS, Docs Comments, Bunker Ops 8. Tunnel Pangolin credentials for secure public access 9. CORS Auto-calculated allowed origins from domain 10. Nginx Renders .conf.template files with domain substitution 11. Homepage Generates services.yaml with 27 service entries 12. Permissions Creates 12 directories with container-friendly permissions 13. Upgrade watcher Installs systemd units for GUI-triggered upgrades (optional, requires sudo) 14. Summary Displays configuration summary + next steps

See Installation for detailed documentation of each step.

","tags":["guide","getting-started","operator"],"boost":2},{"location":"docs/getting-started/#services","title":"Services","text":"

Changemaker Lite includes 30+ Docker services organized into 8 categories:

Category Services Startup Core API, Admin, PostgreSQL, Redis, Nginx docker compose up -d v2-postgres redis api admin nginx Media Fastify media API docker compose up -d media-api Communication Rocket.Chat, Gancio, Jitsi Meet Individual docker compose up -d commands Newsletter & Email Listmonk, MailHog docker compose up -d listmonk-app Developer Tools Code Server, MkDocs, Gitea, NocoDB, n8n Individual docker compose up -d commands Utilities Mini QR, Excalidraw, Vaultwarden, Homepage docker compose up -d mini-qr excalidraw vaultwarden homepage Monitoring Prometheus, Grafana, Alertmanager, exporters docker compose --profile monitoring up -d Infrastructure Newt tunnel, Docker socket proxy Auto-starts with tunnel configuration

See Services Overview for the complete catalog with ports, feature flags, and detailed descriptions.

","tags":["guide","getting-started","operator"],"boost":2},{"location":"docs/getting-started/#next-steps","title":"Next Steps","text":"
  • Installation \u2014 detailed setup walkthrough and manual configuration
  • Services Overview \u2014 complete service catalog (30+ containers)
  • Environment Variables \u2014 complete .env reference
  • First Steps \u2014 create your first campaign and add locations
  • Updates & Upgrades \u2014 keep your installation current
  • Control Panel (CCP) \u2014 multi-instance management
  • Features at a Glance \u2014 visual overview of every module
  • Admin Guide \u2014 full administration reference
  • Deployment \u2014 production setup with SSL and tunneling
","tags":["guide","getting-started","operator"],"boost":2},{"location":"docs/getting-started/control-panel/","title":"Changemaker Control Panel (CCP)","text":"

The Changemaker Control Panel is a multi-tenant management layer for operators who run multiple Changemaker Lite instances from a single server. It provides a web UI to provision, monitor, and maintain a fleet of instances without manual configuration.

Single instance?

If you're running a single Changemaker Lite instance, you don't need CCP. Skip this page and continue with First Steps.

","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#when-to-use-ccp","title":"When to Use CCP","text":"

CCP is designed for:

  • Campaign organizations managing instances for multiple chapters or regions
  • Hosting providers offering Changemaker Lite as a managed service
  • Development teams spinning up isolated test instances

CCP handles the entire instance lifecycle: provisioning, configuration, health monitoring, backups, and upgrades \u2014 all from a single dashboard.

","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#architecture","title":"Architecture","text":"

CCP runs as 4 Docker containers alongside (but independent from) your CML instances:

\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502   CCP Admin GUI (5100)   \u2502  React + Vite + Ant Design\n\u2502   Dark theme, SPA        \u2502  Zustand auth store\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n             \u2502\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25bc\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502   CCP API (5000)         \u2502  Express + TypeScript\n\u2502   JWT auth, RBAC         \u2502  Prisma ORM \u2192 PostgreSQL\n\u2502   Docker socket access   \u2502  Winston logger\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n             \u2502\n    \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n    \u25bc        \u25bc        \u25bc\nccp-postgres ccp-redis  Docker Socket\n(port 5480)  (port 6399)\n
Service Container Port Description CCP API ccp-api 5000 Express API with Docker CLI access CCP Admin ccp-admin 5100 React admin GUI CCP PostgreSQL ccp-postgres 5480 CCP metadata database CCP Redis ccp-redis 6399 Rate limiting, caching

Each managed CML instance gets its own isolated set of containers and PostgreSQL database, with ports allocated from non-overlapping ranges.

","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#setup","title":"Setup","text":"","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#1-run-the-setup-script","title":"1. Run the Setup Script","text":"
cd changemaker-control-panel\nchmod +x setup.sh\n./setup.sh\n

The setup script:

  • Detects the installation directory and resolves absolute paths
  • Creates instances/ and backups/ directories
  • Copies .env.example to .env if not present
  • Sets INSTANCES_BASE_PATH, BACKUP_STORAGE_PATH, and CML_SOURCE_PATH
  • Generates random secrets for any placeholder values
","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#2-review-environment","title":"2. Review Environment","text":"

Edit .env and verify the key settings:

Variable Default Description JWT_ACCESS_SECRET Auto-generated JWT signing key JWT_REFRESH_SECRET Auto-generated Refresh token signing key ENCRYPTION_KEY Auto-generated AES-256 key for instance secrets at rest INITIAL_ADMIN_EMAIL admin@example.com Bootstrap admin email INITIAL_ADMIN_PASSWORD ChangeMe2025!! Bootstrap admin password INSTANCES_BASE_PATH ./instances Where instance directories are created CML_SOURCE_PATH Auto-detected Path to CML source repo for provisioning BACKUP_STORAGE_PATH ./backups Backup archive storage PANGOLIN_API_URL \u2014 Pangolin API for tunnel management PANGOLIN_API_KEY \u2014 Pangolin authentication PANGOLIN_ORG_ID \u2014 Pangolin organization","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#3-start-ccp","title":"3. Start CCP","text":"
docker compose up -d\n\n# Run database migrations and seed the admin user\ndocker compose exec ccp-api npx prisma migrate deploy\ndocker compose exec ccp-api npx prisma db seed\n
","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#4-log-in","title":"4. Log In","text":"

Open http://localhost:5100 and sign in with the admin credentials from .env.

","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#creating-an-instance","title":"Creating an Instance","text":"

The Create Instance wizard walks through 5 steps:

","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#step-1-basic-information","title":"Step 1: Basic Information","text":"
  • Instance name \u2014 human-readable label (e.g., \"Edmonton Chapter\")
  • Slug \u2014 URL-safe identifier (e.g., edmonton), used for directory names and compose project
  • Domain \u2014 the domain this instance will serve (e.g., edmonton.example.org)
","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#step-2-features","title":"Step 2: Features","text":"

Toggle which platform features to enable for this instance:

  • Media Manager
  • Listmonk newsletter sync
  • Payments
  • Rocket.Chat
  • Gancio events
  • Jitsi Meet
  • SMS Campaigns
","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#step-3-email","title":"Step 3: Email","text":"

Configure SMTP for the instance, or use MailHog for testing.

","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#step-4-tunnel","title":"Step 4: Tunnel","text":"

Optionally configure Pangolin tunnel credentials for public access.

","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#step-5-review","title":"Step 5: Review","text":"

Review all settings, then click Create to start provisioning.

","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#provisioning-flow","title":"Provisioning Flow","text":"

When you create an instance, CCP runs a 13-step async provisioning process:

Step What Happens 1 Validate uniqueness (slug + domain) 2 Allocate 4 ports from ranges 3 Generate 14 secrets (passwords, JWT keys, encryption keys) 4 Create Instance record (status: PROVISIONING) 5 Create instance directory 6 Copy CML source code (rsync, excluding node_modules/.git/.env) 7 Decrypt secrets and build template context 8 Render 7 config files from Handlebars templates (docker-compose.yml, .env, nginx configs, Pangolin, Prometheus) 9 Copy static files (nginx.conf) 10 docker compose pull (non-fatal if images are cached) 11 docker compose build 12 Start infrastructure (PostgreSQL + Redis), wait for healthy 13 Start API (runs migrations + seed), then start all remaining services

The admin GUI polls every 3 seconds during provisioning to show progress. When complete, the instance status changes to RUNNING.

","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#port-allocation","title":"Port Allocation","text":"

CCP allocates ports from 4 non-overlapping ranges to prevent conflicts between instances:

Range Start End Purpose API 14000 14999 Express API server Admin 13000 13999 React admin GUI PostgreSQL 15400 15499 Database Nginx 10000 10999 Reverse proxy

Each new instance receives one port from each range. Ports are tracked in the database and released when instances are deleted.

","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#pages-overview","title":"Pages Overview","text":"","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#dashboard","title":"Dashboard","text":"

At-a-glance fleet status:

  • Total instances, running, healthy, degraded, stopped, error counts
  • Instance cards with status indicators and quick actions
","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#instance-list","title":"Instance List","text":"

Searchable, filterable table of all instances with status, domain, health, and creation date.

","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#instance-detail","title":"Instance Detail","text":"

5-tab view for each instance:

Tab Content Overview Status, domain, ports, features, health summary Services Per-container status grid with restart and log-view actions Logs Real-time log viewer with service filter, tail count, and time range Backups Backup list with create, download, and delete actions Tunnel Pangolin tunnel status and configuration","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#backups","title":"Backups","text":"

Cross-instance backup management:

  • All backups in one table with instance filter
  • Stats: total count, total size, last backup time
  • \"Backup All Running\" bulk action
  • Download and delete individual archives
","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#audit-log","title":"Audit Log","text":"

Filterable activity trail with 18 action types:

  • Instance lifecycle: CREATE, UPDATE, DELETE, START, STOP, RESTART, UPGRADE
  • Backups: CREATE, DELETE
  • Tunnel: PANGOLIN_SETUP, PANGOLIN_SYNC
  • Users: LOGIN, CREATE, UPDATE, DELETE
  • Settings: UPDATE

Each entry includes timestamp, user, action, instance, IP address, and details (expandable JSON).

","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#settings","title":"Settings","text":"

CCP-level configuration:

  • Port ranges
  • Pangolin credentials
  • Default feature flags for new instances
  • Health check interval
  • Backup retention period
","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#roles","title":"Roles","text":"Role Capabilities SUPER_ADMIN Full access: create/delete instances, manage users, view secrets, delete backups OPERATOR Manage instances: create, start/stop/restart, backups, health checks VIEWER Read-only: view instances, logs, health, backups, audit log","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#security","title":"Security","text":"
  • JWT authentication with 15-minute access tokens and 7-day refresh tokens (atomic rotation)
  • AES-256-GCM encryption for instance secrets stored in the database
  • Audit logging on all operations with IP address capture
  • Role-based access control on all API endpoints
  • Docker socket access restricted to the CCP API container only
","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#next-steps","title":"Next Steps","text":"
  • Services Overview \u2014 learn about the services CCP provisions for each instance
  • Updates & Upgrades \u2014 upgrading CML instances
  • Deployment \u2014 production setup with tunneling and SSL
","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/environment-variables/","title":"Environment Variables","text":"

Changemaker Lite uses a single .env file at the project root to configure all services. Copy the example file to get started:

cp .env.example .env\n

Security Essentials

  • Change every REQUIRED_STRONG_PASSWORD_CHANGE_THIS value before starting services
  • Generate secrets with openssl rand -hex 32 (or -hex 16 where noted)
  • Never commit .env to version control
  • Use unique values for each secret \u2014 do not reuse JWT secrets as encryption keys
","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#quick-reference","title":"Quick Reference","text":"

Variables are grouped by service. Each table marks whether a variable is required for a basic deployment or optional (has a sensible default or only needed for specific features).

Symbol Meaning Must be set before first run Has a working default; change for production Feature flag \u2014 opt-in","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#general","title":"General","text":"Variable Default Description NODE_ENV development Set to production for production deployments. Controls logging, error detail, and security checks. DOMAIN cmlite.org Root domain. Used for nginx subdomain routing (app.DOMAIN, api.DOMAIN, etc.). The root domain serves the MkDocs documentation site; all application routes live under app.DOMAIN. USER_ID 1000 UID for container file ownership. Match your host user's UID (id -u). GROUP_ID 1000 GID for container file ownership. Match your host user's GID (id -g). DOCKER_GROUP_ID 984 GID of the docker group on the host. Needed for containers that access the Docker socket. Find with getent group docker.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#postgresql-main-database","title":"PostgreSQL (Main Database)","text":"

The primary database for both the Express API and the Fastify Media API (shared).

Variable Default Description V2_POSTGRES_USER changemaker Database username. V2_POSTGRES_PASSWORD \u2014 Must change. Database password. V2_POSTGRES_DB changemaker_v2 Database name. V2_POSTGRES_PORT 5433 Host port mapping. The container listens on 5432 internally.

Connection string

The DATABASE_URL is constructed automatically inside Docker. If running locally, set:

DATABASE_URL=postgresql://changemaker:YOUR_PASSWORD@localhost:5433/changemaker_v2\n

","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#jwt-authentication","title":"JWT Authentication","text":"Variable Default Description JWT_ACCESS_SECRET \u2014 Secret for signing access tokens. Generate with openssl rand -hex 32. JWT_REFRESH_SECRET \u2014 Secret for signing refresh tokens. Must differ from the access secret. JWT_ACCESS_EXPIRY 15m Access token lifetime. Short-lived by design. JWT_REFRESH_EXPIRY 7d Refresh token lifetime. Tokens are rotated atomically on each refresh.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#encryption-key","title":"Encryption Key","text":"Variable Default Description ENCRYPTION_KEY \u2014 AES key for encrypting secrets stored in the database (SMTP passwords, API keys, etc.). Generate with openssl rand -hex 32. Must not reuse a JWT secret. Required in production (NODE_ENV=production).","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#initial-admin-account","title":"Initial Admin Account","text":"

These credentials create the first super-admin user during database seeding (npx prisma db seed).

Variable Default Description INITIAL_ADMIN_EMAIL admin@cmlite.org Email address for the initial admin. INITIAL_ADMIN_PASSWORD \u2014 Must change. Must be 12+ characters with uppercase, lowercase, and a digit. Change this password after first login.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#api-server","title":"API Server","text":"Variable Default Description API_PORT 4000 Host port for the Express API. API_URL http://localhost:4000 Public URL of the API. Used for generating links in emails and QR codes. CORS_ORIGINS http://localhost:3000,http://localhost Comma-separated list of allowed CORS origins. Add your production domain (e.g., https://app.yourdomain.org) for production.

Production CORS

If you deploy behind a tunnel (Pangolin, Cloudflare) and API requests fail with CORS errors, add your production app. subdomain here:

CORS_ORIGINS=https://app.betteredmonton.org,http://localhost:3000,http://localhost\n
Then restart the API: docker compose restart api

","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#admin-gui","title":"Admin GUI","text":"Variable Default Description ADMIN_PORT 3000 Host port for the React admin dashboard. ADMIN_URL http://localhost:3000 Public URL of the admin GUI.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#nginx-reverse-proxy","title":"Nginx Reverse Proxy","text":"Variable Default Description NGINX_HTTP_PORT 80 HTTP port. All subdomains route through nginx. NGINX_HTTPS_PORT 443 HTTPS port. SSL is typically handled by the tunnel provider (Pangolin/Cloudflare).","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#redis","title":"Redis","text":"

Shared by rate limiting, BullMQ job queues, geocoding cache, and session data.

Variable Default Description REDIS_PASSWORD \u2014 Must change. Redis requires authentication. REDIS_URL redis://:${REDIS_PASSWORD}@redis-changemaker:6379 Full connection URL. Uses the password variable automatically.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#payments-stripe","title":"Payments (Stripe)","text":"Variable Default Description ENABLE_PAYMENTS false Set to true to enable the payments feature (memberships, products, donations). Stripe API keys are stored encrypted in the database via the admin settings page.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#email-smtp","title":"Email / SMTP","text":"Variable Default Description SMTP_HOST mailhog-changemaker SMTP server. Default points to the MailHog dev container. SMTP_PORT 1025 SMTP port. 1025 for MailHog, 587 for most production SMTP. SMTP_USER (empty) SMTP username. Not needed for MailHog. SMTP_PASS (empty) SMTP password. SMTP_FROM noreply@cmlite.org \"From\" address on outgoing emails. SMTP_FROM_NAME Changemaker Lite Display name for the \"From\" header. EMAIL_TEST_MODE true When true, all emails go to MailHog instead of real SMTP. Set to false in production. TEST_EMAIL_RECIPIENT admin@cmlite.org Catch-all recipient when test mode is on.

Development email

With EMAIL_TEST_MODE=true, all outgoing email is captured in MailHog at http://localhost:8025. No real emails are sent.

","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#listmonk-newsletters","title":"Listmonk (Newsletters)","text":"

Listmonk handles newsletter/marketing campaigns. Sync with the main platform is opt-in.

Variable Default Description LISTMONK_PORT 9001 Listmonk web UI port. LISTMONK_DB_PORT 5434 Listmonk's own PostgreSQL port (separate from the main DB). Uses 5434 to avoid conflict with the main PostgreSQL (5432 internal / 5433 host). LISTMONK_DB_USER listmonk Listmonk database user. LISTMONK_DB_PASSWORD \u2014 Listmonk database password. LISTMONK_DB_NAME listmonk Listmonk database name. LISTMONK_WEB_ADMIN_USER admin Login for the Listmonk web dashboard. LISTMONK_WEB_ADMIN_PASSWORD \u2014 Password for the Listmonk web dashboard. LISTMONK_API_USER v2-api API user for programmatic access (auto-created by init container). LISTMONK_API_TOKEN \u2014 Token for API user. Generate with openssl rand -hex 16. LISTMONK_ADMIN_USER v2-api Same as LISTMONK_API_USER (used by the sync service). LISTMONK_ADMIN_PASSWORD \u2014 Same as LISTMONK_API_TOKEN. LISTMONK_SYNC_ENABLED false Set to true to sync participants/locations/users to Listmonk lists. LISTMONK_WEBHOOK_SECRET (empty) Shared secret for Listmonk webhook callbacks. LISTMONK_PROXY_PORT 9002 Nginx proxy port for Listmonk. Listmonk SMTP settings

Listmonk has its own SMTP configuration, separate from the main platform's:

Variable Default Description LISTMONK_SMTP_HOST mailhog-changemaker SMTP host for Listmonk. LISTMONK_SMTP_PORT 1025 SMTP port. LISTMONK_SMTP_USER (empty) SMTP username. LISTMONK_SMTP_PASSWORD (empty) SMTP password. LISTMONK_SMTP_TLS_TYPE none TLS mode: none, STARTTLS, or TLS. LISTMONK_SMTP_FROM Changemaker Lite <noreply@cmlite.org> From address for newsletters.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#represent-api-canadian-electoral-data","title":"Represent API (Canadian Electoral Data)","text":"Variable Default Description REPRESENT_API_URL https://represent.opennorth.ca OpenNorth Represent API endpoint. Used for postal code \u2192 representative lookups. No API key required.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#nocodb-data-browser","title":"NocoDB (Data Browser)","text":"

Read-only database browser. Useful for inspecting data without SQL.

Variable Default Description NOCODB_V2_PORT / NOCODB_PORT 8091 Host port for the NocoDB web UI. NOCODB_URL http://changemaker-v2-nocodb:8080 Internal Docker URL. NC_ADMIN_EMAIL admin@cmlite.org NocoDB admin email. NC_ADMIN_PASSWORD \u2014 NocoDB admin password.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#media-manager","title":"Media Manager","text":"

Video library with upload, analytics, scheduling, and a public gallery.

Variable Default Description ENABLE_MEDIA_FEATURES false Set to true to enable the media system. MEDIA_API_PORT 4100 Fastify media API port. MEDIA_API_PUBLIC_URL http://media-api:4100 Internal URL for the media API container. MEDIA_ROOT /media/library Path to the video library inside the container. MEDIA_UPLOADS /media/uploads Path for upload processing. MAX_UPLOAD_SIZE_GB 10 Maximum single-file upload size in gigabytes. PUBLIC_MEDIA_PORT 3100 Public media gallery server port. VIDEO_PLAYER_DEBUG false Enable verbose video player logging. Analytics & scheduling settings Variable Default Description VIDEO_ANALYTICS_RETENTION_DAYS 90 Days to retain analytics data. GDPR-compliant with IP hashing. VIDEO_ANALYTICS_IP_HASHING_ENABLED true Hash viewer IPs for privacy. VIDEO_SCHEDULE_DEFAULT_TIMEZONE UTC Default timezone for scheduled publishing. VIDEO_SCHEDULE_NOTIFICATION_ENABLED true Notify on scheduled publish/unpublish. VIDEO_PREVIEW_LINK_EXPIRY_HOURS 24 Preview link JWT expiry (hours).","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#gitea-git-hosting","title":"Gitea (Git Hosting)","text":"

Self-hosted Git repository. Optional service.

Variable Default Description GITEA_URL http://gitea-changemaker:3000 Internal container URL for Gitea. GITEA_PORT / GITEA_WEB_PORT 3030 Gitea web UI port. GITEA_SSH_PORT 2222 Gitea SSH port for git operations. GITEA_DB_TYPE mysql Database type (Gitea uses its own MySQL). GITEA_DB_HOST gitea-db:3306 Internal database host. GITEA_DB_NAME gitea Database name. GITEA_DB_USER gitea Database user. GITEA_DB_PASSWD \u2014 Gitea database password. GITEA_DB_ROOT_PASSWORD \u2014 MySQL root password for Gitea. GITEA_ROOT_URL https://git.cmlite.org Public-facing URL for Gitea. GITEA_DOMAIN git.cmlite.org Domain used in git clone URLs. Gitea Docs Comments

Enable comments on MkDocs documentation pages, backed by Gitea Issues.

Variable Default Description GITEA_COMMENTS_ENABLED false Enable comments on MkDocs pages. GITEA_API_TOKEN (empty) Personal access token with repo write scope. Create in Gitea \u2192 Settings \u2192 Applications. GITEA_COMMENTS_REPO_OWNER (empty) Gitea username that owns the docs-comments repo. GITEA_COMMENTS_REPO_NAME docs-comments Repository name (auto-created via admin setup). GITEA_OAUTH_CLIENT_ID (empty) OAuth2 application client ID (create in Gitea \u2192 Settings \u2192 Applications \u2192 OAuth2). GITEA_OAUTH_CLIENT_SECRET (empty) OAuth2 application client secret.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#n8n-workflow-automation","title":"n8n (Workflow Automation)","text":"Variable Default Description N8N_PORT 5678 n8n web UI port. N8N_HOST n8n.cmlite.org Public hostname for n8n. N8N_ENCRYPTION_KEY \u2014 Encryption key for n8n credentials storage. N8N_USER_EMAIL admin@example.com Initial n8n admin email. N8N_USER_PASSWORD \u2014 Initial n8n admin password. GENERIC_TIMEZONE UTC Timezone for n8n cron triggers.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#mkdocs-documentation","title":"MkDocs (Documentation)","text":"Variable Default Description MKDOCS_PORT 4003 MkDocs dev server port (live preview). MKDOCS_SITE_SERVER_PORT 4004 MkDocs static site server port. BASE_DOMAIN https://cmlite.org Base URL for generated documentation links. MKDOCS_PREVIEW_URL http://mkdocs:8000 Internal container URL. MKDOCS_DOCS_PATH /mkdocs/docs Documentation source directory inside the container.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#code-server-web-ide","title":"Code Server (Web IDE)","text":"Variable Default Description CODE_SERVER_PORT 8888 Code Server web UI port. CODE_SERVER_URL http://code-server:8080 Internal container URL. USER_NAME coder User account inside the Code Server container.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#homepage-service-dashboard","title":"Homepage (Service Dashboard)","text":"Variable Default Description HOMEPAGE_PORT 3010 Homepage web UI port. HOMEPAGE_EMBED_PORT 8887 Port for iframe embedding in admin. HOMEPAGE_VAR_BASE_URL http://localhost Base URL used in Homepage service links.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#mini-qr-qr-code-generator","title":"Mini QR (QR Code Generator)","text":"Variable Default Description MINI_QR_PORT 8089 Mini QR direct access port. MINI_QR_URL http://mini-qr:8080 Internal container URL. MINI_QR_EMBED_PORT 8885 Port for iframe embedding (walk sheets, cut exports).","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#excalidraw-whiteboard","title":"Excalidraw (Whiteboard)","text":"Variable Default Description EXCALIDRAW_PORT 8090 Excalidraw web UI port. EXCALIDRAW_URL http://excalidraw-changemaker:80 Internal container URL. EXCALIDRAW_EMBED_PORT 8886 Port for iframe embedding. EXCALIDRAW_WS_URL wss://draw.cmlite.org WebSocket URL for real-time collaboration.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#vaultwarden-password-manager","title":"Vaultwarden (Password Manager)","text":"

Self-hosted Bitwarden-compatible password manager. Optional service.

Variable Default Description VAULTWARDEN_PORT 8445 Vaultwarden web UI port. VAULTWARDEN_URL http://vaultwarden-changemaker:80 Internal container URL. VAULTWARDEN_EMBED_PORT 8890 Port for iframe embedding in admin. VAULTWARDEN_ADMIN_TOKEN (empty) Admin panel token (access at /admin). Generate with openssl rand -hex 32. VAULTWARDEN_DOMAIN https://vault.cmlite.org Public-facing URL. Must use HTTPS \u2014 Bitwarden web vault enforces HTTPS for account creation. Set to your Pangolin tunnel URL. VAULTWARDEN_SIGNUPS_ALLOWED false Allow new user self-registration. Keep false and use admin panel invites. VAULTWARDEN_WEBSOCKET_ENABLED true Enable WebSocket notifications for real-time sync. VAULTWARDEN_SMTP_SECURITY off SMTP security mode: off for MailHog, starttls or force_tls for production. Uses the main SMTP_* variables for host/credentials.

Initial setup

The vaultwarden-init container automatically invites the INITIAL_ADMIN_EMAIL user when starting. Check MailHog (or your SMTP) for the invitation email.

","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#rocketchat-team-chat","title":"Rocket.Chat (Team Chat)","text":"

Self-hosted team chat for volunteer coordination. Requires MongoDB (auto-configured).

Variable Default Description ENABLE_CHAT false Set to true to enable the Rocket.Chat integration. The initial default; once saved in admin Settings, the DB value is authoritative. ROCKETCHAT_ADMIN_USER rcadmin Rocket.Chat admin username. ROCKETCHAT_ADMIN_PASSWORD \u2014 Rocket.Chat admin password. ROCKETCHAT_URL http://rocketchat-changemaker:3000 Internal container URL. ROCKETCHAT_EMBED_PORT 8891 Port for iframe embedding in admin.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#gancio-event-management","title":"Gancio (Event Management)","text":"

Self-hosted event management platform. Uses the shared PostgreSQL database (auto-created by init-gancio-db.sh).

Variable Default Description GANCIO_PORT 8092 Gancio web UI port. GANCIO_URL http://gancio-changemaker:13120 Internal container URL. GANCIO_EMBED_PORT 8892 Port for iframe embedding in admin. GANCIO_BASE_URL https://events.cmlite.org Public-facing URL for Gancio. Used in event links. GANCIO_ADMIN_USER admin Gancio admin username for shift-to-event sync (OAuth login). GANCIO_ADMIN_PASSWORD \u2014 Gancio admin password. GANCIO_SYNC_ENABLED false Set to true to enable automatic shift \u2192 Gancio event synchronization.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#jitsi-meet-video-conferencing","title":"Jitsi Meet (Video Conferencing)","text":"

Self-hosted video conferencing with JWT authentication. Integrates with Rocket.Chat for in-channel video calls.

Variable Default Description ENABLE_MEET false Set to true to enable the Jitsi Meet integration. The initial default; once saved in admin Settings, the DB value is authoritative. JITSI_APP_ID changemaker JWT application ID. Must match across Jitsi Prosody, Rocket.Chat app settings, and JWT_ACCEPTED_ISSUERS/JWT_ACCEPTED_AUDIENCES. JITSI_APP_SECRET \u2014 JWT secret for signing Jitsi tokens. Generate with openssl rand -hex 32. Shared between Jitsi Prosody, Rocket.Chat, and the API. JITSI_JICOFO_AUTH_PASSWORD \u2014 Internal XMPP password for Jicofo (conference focus). Generate with openssl rand -hex 16. JITSI_JVB_AUTH_PASSWORD \u2014 Internal XMPP password for JVB (video bridge). Generate with openssl rand -hex 16. JITSI_EMBED_PORT 8893 Port for iframe embedding in admin. JITSI_URL http://jitsi-web-changemaker:80 Internal container URL. JVB_ADVERTISE_IP (empty) Server's public IP address. Required in production for NAT traversal so remote participants can connect. JVB_PORT 10000 UDP port for media traffic. Must be open in your firewall.

Production requirements

  • JVB_ADVERTISE_IP must be set to your server's public IP for calls to work outside the local network.
  • Port 10000/udp must be open in your firewall for media traffic.
  • Calls must go through the production domain (not localhost) for SSL/JWT to work.
","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#sms-campaigns-termux-android-bridge","title":"SMS Campaigns (Termux Android Bridge)","text":"

Send SMS messages via an Android phone running the Termux API server. The phone acts as an SMS gateway.

Variable Default Description ENABLE_SMS false Set to true to enable SMS campaigns. The initial default; once saved in admin Settings, the DB value is authoritative. TERMUX_API_URL http://10.0.0.193:5001 URL of the Termux API server running on the Android phone. TERMUX_API_KEY (empty) API key for authenticating with the Termux server (HMAC auth via X-API-Key header). SMS_DELAY_BETWEEN_MS 3000 Delay between sending individual SMS messages (ms). Prevents carrier throttling. SMS_MAX_RETRIES 3 Maximum retry attempts for failed SMS sends. SMS_RESPONSE_SYNC_INTERVAL_MS 30000 How often to poll the phone's inbox for responses (ms). SMS_DEVICE_MONITOR_INTERVAL_MS 30000 How often to check device health \u2014 battery, connectivity (ms).

GUI configuration

The Termux API URL and API key can also be configured from Admin \u2192 Settings \u2192 SMS. Database values override these env vars when set.

","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#mailhog-development-email","title":"MailHog (Development Email)","text":"Variable Default Description MAILHOG_SMTP_PORT 1025 SMTP port for capturing emails. MAILHOG_WEB_PORT 8025 Web UI to view captured emails.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#nar-national-address-register","title":"NAR (National Address Register)","text":"

Canadian address data import for geographic canvassing.

Variable Default Description NAR_DATA_DIR /data Path to extracted NAR data inside the container. Expects YYYYMM/Addresses/ and YYYYMM/Locations/ subdirectories. Mount via ./data:/data:ro in Docker Compose.

Download NAR data from Statistics Canada.

","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#geocoding","title":"Geocoding","text":"

Multi-provider geocoding for address resolution. Works out of the box with free providers; optional paid providers improve accuracy.

Variable Default Description MAPBOX_API_KEY (empty) Mapbox API key for improved geocoding accuracy. Free tier: 100k requests/month. Sign up. GEOCODING_RATE_LIMIT_MS 1100 Delay between requests to free providers (ms). Respects rate limits. GEOCODING_CACHE_ENABLED true Enable Redis-backed geocoding cache. GEOCODING_CACHE_TTL_HOURS 24 Cache lifetime in hours. GOOGLE_MAPS_API_KEY (empty) Google Maps API key. Most accurate but $0.005/request after free tier. GOOGLE_MAPS_ENABLED false Enable Google Maps as a geocoding provider. GEOCODING_PARALLEL_ENABLED true Enable parallel geocoding for bulk imports (~10x speedup). GEOCODING_BATCH_SIZE 10 Number of concurrent geocoding requests during bulk operations. BULK_GEOCODE_ENABLED true Enable bulk re-geocoding from the admin UI. BULK_GEOCODE_MAX_BATCH 5000 Maximum locations per bulk geocoding run.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#overpass-area-import","title":"Overpass / Area Import","text":"

OpenStreetMap data import for map enrichment.

Variable Default Description OVERPASS_API_URL https://overpass-api.de/api/interpreter Overpass API endpoint. Use a private instance for heavy usage. OVERPASS_MIN_DELAY_MS 30000 Minimum delay between requests (ms). The public API requires 30 seconds. AREA_IMPORT_MAX_GRID_POINTS 500 Maximum reverse-geocode grid points per area import.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#pangolin-tunnel","title":"Pangolin Tunnel","text":"

Expose services to the internet without port forwarding, using a self-hosted Pangolin instance.

Variable Default Description PANGOLIN_API_URL https://api.bnkserve.org/v1 Pangolin server API endpoint. PANGOLIN_API_KEY (empty) API key for Pangolin management. PANGOLIN_ORG_ID (empty) Organization ID in Pangolin. PANGOLIN_SITE_ID (empty) Site ID (populated after setup via admin GUI). PANGOLIN_ENDPOINT https://pangolin.bnkserve.org Pangolin tunnel endpoint. PANGOLIN_NEWT_ID (empty) Newt client ID (populated after setup). PANGOLIN_NEWT_SECRET (empty) Newt client secret (populated after setup).

Setup flow

Configure the tunnel from Admin \u2192 Settings \u2192 Pangolin. The setup wizard walks you through creating a site, copying credentials, and connecting the Newt container. See Deployment for the full guide.

","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#monitoring","title":"Monitoring","text":"

These services are behind the monitoring Docker Compose profile. Start them with:

docker compose --profile monitoring up -d\n
Variable Default Description PROMETHEUS_PORT 9090 Prometheus web UI / query port. GRAFANA_PORT 3005 Grafana dashboard port. GRAFANA_ADMIN_PASSWORD admin Change in production. GRAFANA_ROOT_URL http://localhost:3005 Public URL for Grafana (used in links). CADVISOR_PORT 8086 cAdvisor container metrics port. NODE_EXPORTER_PORT 9100 Prometheus node exporter port. REDIS_EXPORTER_PORT 9121 Redis metrics exporter port. ALERTMANAGER_PORT 9093 Alertmanager web UI port. GOTIFY_PORT 8889 Gotify push notification port. GOTIFY_ADMIN_USER admin Gotify admin username. GOTIFY_ADMIN_PASSWORD admin Change in production. GRAFANA_EMBED_PORT 8894 Port for iframe embedding Grafana in admin. ALERTMANAGER_EMBED_PORT 8895 Port for iframe embedding Alertmanager in admin.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#bunker-ops-fleet-management","title":"Bunker Ops (Fleet Management)","text":"

Remote metrics push for managing multiple Changemaker Lite instances from a central monitoring server.

Variable Default Description INSTANCE_LABEL (empty) Unique label for this instance (used as a Prometheus metric label). Falls back to DOMAIN if empty. BUNKER_OPS_ENABLED false Enable remote metrics push to a central VictoriaMetrics server. BUNKER_OPS_REMOTE_WRITE_URL (empty) VictoriaMetrics remote_write endpoint (e.g., https://ops.example.com/api/v1/write).","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#generating-secrets","title":"Generating Secrets","text":"

Use these commands to generate all required secrets at once:

# JWT secrets (two separate values)\necho \"JWT_ACCESS_SECRET=$(openssl rand -hex 32)\"\necho \"JWT_REFRESH_SECRET=$(openssl rand -hex 32)\"\n\n# Encryption key (must differ from JWT secrets)\necho \"ENCRYPTION_KEY=$(openssl rand -hex 32)\"\n\n# Database and Redis passwords\necho \"V2_POSTGRES_PASSWORD=$(openssl rand -hex 24)\"\necho \"REDIS_PASSWORD=$(openssl rand -hex 24)\"\n\n# Listmonk\necho \"LISTMONK_DB_PASSWORD=$(openssl rand -hex 24)\"\necho \"LISTMONK_WEB_ADMIN_PASSWORD=$(openssl rand -hex 16)\"\nLISTMONK_TOKEN=$(openssl rand -hex 16)\necho \"LISTMONK_API_TOKEN=$LISTMONK_TOKEN\"\necho \"LISTMONK_ADMIN_PASSWORD=$LISTMONK_TOKEN\"\n\n# Supporting services\necho \"GITEA_DB_PASSWD=$(openssl rand -hex 24)\"\necho \"GITEA_DB_ROOT_PASSWORD=$(openssl rand -hex 24)\"\necho \"N8N_ENCRYPTION_KEY=$(openssl rand -hex 32)\"\necho \"N8N_USER_PASSWORD=$(openssl rand -hex 16)\"\necho \"NC_ADMIN_PASSWORD=$(openssl rand -hex 16)\"\necho \"INITIAL_ADMIN_PASSWORD=$(openssl rand -base64 18)\"\n\n# Vaultwarden\necho \"VAULTWARDEN_ADMIN_TOKEN=$(openssl rand -hex 32)\"\n\n# Rocket.Chat\necho \"ROCKETCHAT_ADMIN_PASSWORD=$(openssl rand -hex 16)\"\n\n# Gancio\necho \"GANCIO_ADMIN_PASSWORD=$(openssl rand -hex 16)\"\n\n# Jitsi Meet\necho \"JITSI_APP_SECRET=$(openssl rand -hex 32)\"\necho \"JITSI_JICOFO_AUTH_PASSWORD=$(openssl rand -hex 16)\"\necho \"JITSI_JVB_AUTH_PASSWORD=$(openssl rand -hex 16)\"\n

Tip

Copy the output and paste the values into your .env file. The INITIAL_ADMIN_PASSWORD uses base64 encoding to ensure it contains uppercase, lowercase, and digits (meeting the password policy).

","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#minimal-vs-full-deployment","title":"Minimal vs Full Deployment","text":"Minimal (Core Only)Full Stack

For a basic deployment with campaigns, map, and admin:

Required variables
V2_POSTGRES_PASSWORD=...\nREDIS_PASSWORD=...\nJWT_ACCESS_SECRET=...\nJWT_REFRESH_SECRET=...\nENCRYPTION_KEY=...\nINITIAL_ADMIN_PASSWORD=...\n
Start services
docker compose up -d v2-postgres redis api admin\n

For the complete platform including media, newsletters, monitoring, and all services:

Additional variables needed
# Everything above, plus:\nENABLE_MEDIA_FEATURES=true\nENABLE_PAYMENTS=true\nENABLE_CHAT=true\nENABLE_MEET=true\nENABLE_SMS=true\nLISTMONK_SYNC_ENABLED=true\nGANCIO_SYNC_ENABLED=true\nLISTMONK_DB_PASSWORD=...\nLISTMONK_WEB_ADMIN_PASSWORD=...\nLISTMONK_API_TOKEN=...\nNC_ADMIN_PASSWORD=...\nGITEA_DB_PASSWD=...\nGITEA_DB_ROOT_PASSWORD=...\nN8N_ENCRYPTION_KEY=...\nN8N_USER_PASSWORD=...\nVAULTWARDEN_ADMIN_TOKEN=...\nROCKETCHAT_ADMIN_PASSWORD=...\nGANCIO_ADMIN_PASSWORD=...\nJITSI_APP_SECRET=...\nJITSI_JICOFO_AUTH_PASSWORD=...\nJITSI_JVB_AUTH_PASSWORD=...\nJVB_ADVERTISE_IP=your.public.ip.here\nEMAIL_TEST_MODE=false\nSMTP_HOST=smtp.your-provider.com\nSMTP_PORT=587\nSMTP_USER=you@example.com\nSMTP_PASS=your-smtp-password\n
Start services
docker compose up -d\ndocker compose --profile monitoring up -d\n
","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/features/","title":"Features at a Glance","text":"

Changemaker Lite bundles advocacy campaigns, geographic mapping, volunteer management, media hosting, and landing pages into a single self-hosted platform. Every feature can be toggled on or off from Settings in the admin panel.

","tags":["reference","getting-started"],"boost":2},{"location":"docs/getting-started/features/#core-features","title":"Core Features","text":"
  • Advocacy Campaigns

    Help supporters contact elected representatives through email campaigns with postal code lookup and a public response wall.

    Campaign guide

  • Map & Canvassing

    Manage locations, draw canvassing territories, schedule volunteer shifts, and run GPS-tracked door-to-door outreach.

    Map guide

  • Media Manager

    Upload videos and photos, curate playlists, publish a shorts feed, and track engagement with built-in analytics.

    Media guide

  • Landing Pages

    Build campaign microsites with a drag-and-drop GrapesJS visual editor and publish at custom slugs.

    Landing pages guide

  • Payments (Stripe)

    Accept memberships, product sales, and donations with encrypted Stripe integration and branded donation pages.

    Payments guide

  • SMS Campaigns

    Text message outreach via a Termux Android bridge with contact lists, templates, and response tracking.

    SMS guide

  • Public Homepage

    Customizable landing page with hero section, live stats, featured campaigns, upcoming shifts, and activity feed.

    Homepage guide

","tags":["reference","getting-started"],"boost":2},{"location":"docs/getting-started/features/#communication-collaboration","title":"Communication & Collaboration","text":"
  • Newsletter (Listmonk)

    Opt-in mailing lists and newsletter campaigns with automatic subscriber sync from shifts and contacts.

    Newsletter guide

  • Email Templates

    Reusable email templates with variable substitution for campaign communications.

    Email templates guide

  • Team Chat (Rocket.Chat)

    Self-hosted team chat with iframe integration, floating widget, and native mobile app support.

    Chat guide

  • Video Conferencing (Jitsi)

    Self-hosted video calls integrated with Rocket.Chat via JWT authentication \u2014 no separate login required.

    Video conferencing guide

","tags":["reference","getting-started"],"boost":2},{"location":"docs/getting-started/features/#integrations-services","title":"Integrations & Services","text":"
  • Events (Gancio)

    Self-hosted event management with automatic shift-to-event sync and an embeddable calendar widget.

    Events guide

  • Password Manager (Vaultwarden)

    Bitwarden-compatible password vault for secure team credential sharing.

    Password manager guide

  • User Provisioning

    Automatic account creation and sync across Rocket.Chat, Gitea, Vaultwarden, and Listmonk.

    User provisioning guide

  • People / Contacts

    Centralized contact management for supporters, donors, and community members with cross-module linking.

    People guide

  • Whiteboard (Excalidraw)

    Self-hosted collaborative whiteboard for brainstorming, planning, and visual collaboration.

    Whiteboard guide

","tags":["reference","getting-started"],"boost":2},{"location":"docs/getting-started/features/#volunteer-portal","title":"Volunteer Portal","text":"
  • Social Connections

    Friend system, activity feed, groups, profiles, pokes, and privacy controls for volunteer community building.

    Social guide

  • Achievements & Leaderboard

    Badge system with 11 achievements across 4 categories, progress tracking, and competitive leaderboards.

    Achievements guide

  • Volunteer Quick Join

    QR code invite links for instant volunteer onboarding \u2014 scan, fill a short form, and start canvassing.

    Quick join guide

","tags":["reference","getting-started"],"boost":2},{"location":"docs/getting-started/features/#automation-analytics","title":"Automation & Analytics","text":"
  • Email Automation

    Automated volunteer lifecycle emails \u2014 thank-you notes, shift reminders, weekly summaries, and re-engagement campaigns.

    Automation guide

  • Data Quality Dashboard

    Geocoding quality metrics with per-provider stats, confidence tiers, and coverage analysis.

    Data quality guide

  • Documentation Analytics

    Page view tracking and engagement metrics for MkDocs documentation pages.

    Docs analytics guide

","tags":["reference","getting-started"],"boost":2},{"location":"docs/getting-started/features/#admin-tools","title":"Admin Tools","text":"
  • Docs Comments

    Gitea-backed comment system for documentation pages with anonymous posting and moderation.

    Docs comments guide

  • Command Palette

    Global Ctrl+K search across pages, campaigns, locations, users, settings, and media.

    Command palette guide

  • Navigation Settings

    Customize the public navigation menu with feature toggles, custom links, and drag-and-drop reordering.

    Navigation guide

  • Platform Settings

    Five-tab settings page covering organization details, theme colors, email configuration, feature flags, and notifications.

    Settings guide

  • Social Sharing (OG Tags)

    Open Graph meta tags for campaigns, landing pages, and gallery videos \u2014 rich link previews on social media.

    OG sharing guide

  • Gallery Ads

    Internal ad system with 5 ad types, audience targeting, scheduling, frequency caps, and CTR analytics.

    Gallery ads guide

  • Self-Service Contact Profile

    Token-based public profile pages where contacts can view and update their information and preferences.

    Contact profile guide

","tags":["reference","getting-started"],"boost":2},{"location":"docs/getting-started/first-steps/","title":"First Steps","text":"

You've installed Changemaker Lite \u2014 here's what to do next.

","tags":["tutorial","getting-started","admin"],"boost":2},{"location":"docs/getting-started/first-steps/#1-log-in","title":"1. Log In","text":"

Open the admin panel at http://localhost:3000 (or app.DOMAIN in production) and sign in with the admin email and password you configured during setup.

Change your password

If you used the wizard's generated password, change it immediately from Settings > Organization.

","tags":["tutorial","getting-started","admin"],"boost":2},{"location":"docs/getting-started/first-steps/#2-explore-the-dashboard","title":"2. Explore the Dashboard","text":"

The dashboard gives you an at-a-glance view of platform activity. Initially it will be empty \u2014 that's normal.

","tags":["tutorial","getting-started","admin"],"boost":2},{"location":"docs/getting-started/first-steps/#3-configure-settings","title":"3. Configure Settings","text":"

Visit Settings (/app/settings) to:

  • Set your organization name, logo, and tagline
  • Choose theme colors for admin and public interfaces
  • Enable feature modules (campaigns, map, media, payments, etc.)
  • Configure email delivery (MailHog for testing, production SMTP for live use)
  • Check the System tab to verify your installation and check for updates

","tags":["tutorial","getting-started","admin"],"boost":2},{"location":"docs/getting-started/first-steps/#4-create-your-first-campaign","title":"4. Create Your First Campaign","text":"

Go to Campaigns (/app/campaigns) and click Create Campaign:

  1. Write a title and description
  2. Compose the email template supporters will send
  3. Select government levels to target
  4. Publish \u2014 the campaign appears at /campaigns

","tags":["tutorial","getting-started","admin"],"boost":2},{"location":"docs/getting-started/first-steps/#5-add-locations","title":"5. Add Locations","text":"

Go to Locations (/app/map) and add addresses:

  • Click on the map to drop a marker
  • Import a CSV of addresses
  • Use the NAR (National Address Register) import for Canadian data

","tags":["tutorial","getting-started","admin"],"boost":2},{"location":"docs/getting-started/first-steps/#6-schedule-a-shift","title":"6. Schedule a Shift","text":"

Go to Shifts (/app/map/shifts) and create your first volunteer shift:

  1. Set a date, time, and location description
  2. Optionally link it to a canvassing area
  3. Share the public shifts page (/shifts) with volunteers

","tags":["tutorial","getting-started","admin"],"boost":2},{"location":"docs/getting-started/first-steps/#7-invite-volunteers","title":"7. Invite Volunteers","text":"

Share the shifts page link or generate QR codes for in-person events. Volunteers sign up with just an email address.

","tags":["tutorial","getting-started","admin"],"boost":2},{"location":"docs/getting-started/first-steps/#next-steps","title":"Next Steps","text":"
  • Services Overview \u2014 complete catalog of all 30+ Docker services
  • Updates & Upgrades \u2014 keep your installation current
  • Features at a Glance \u2014 visual overview of every module
  • Admin Guide \u2014 full administration reference
  • Deployment \u2014 production setup with tunneling and SSL
","tags":["tutorial","getting-started","admin"],"boost":2},{"location":"docs/getting-started/installation/","title":"Installation","text":"

Changemaker Lite runs as a set of Docker containers orchestrated by Docker Compose. The config.sh wizard handles all configuration \u2014 or you can set things up manually.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#prerequisites","title":"Prerequisites","text":"
  • Docker 24+ and Docker Compose v2
  • OpenSSL (for secret generation)
  • A Linux server (Ubuntu 22.04+ recommended) or macOS for development
  • At least 2 GB RAM for core services, 4 GB for the full stack
  • A domain name (optional for development, recommended for production)
","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#quick-start","title":"Quick Start","text":"

Clone the repository:

git clone https://gitea.bnkops.com/admin/changemaker.lite\ncd changemaker.lite\ngit checkout v2\n

Run the configuration wizard:

bash config.sh\n

Start all services:

docker compose up -d\n

Open http://localhost:3000 and sign in with the admin credentials you configured. Database migrations and seeding run automatically on first startup.

Change your password

If you used the wizard's generated password, change it immediately from the admin dashboard.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#pre-built-image-installation","title":"Pre-built Image Installation","text":"

For production deployments, you can skip cloning the source repository entirely. Pre-built Docker images are pulled from the Gitea container registry.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#one-line-install","title":"One-Line Install","text":"
curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/v2/scripts/install.sh | bash\n

This script:

  1. Checks prerequisites (Docker, Docker Compose, OpenSSL)
  2. Downloads the latest release package from Gitea
  3. Extracts to ~/changemaker.lite/
  4. Launches the configuration wizard (config.sh)

After the wizard completes, start everything with docker compose up -d.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#manual-download","title":"Manual Download","text":"

If you prefer not to pipe to bash:

# Download latest release\ncurl -LO https://gitea.bnkops.com/admin/changemaker.lite/releases/latest/download/changemaker-lite-latest.tar.gz\ntar xzf changemaker-lite-latest.tar.gz\ncd changemaker-lite\nbash config.sh\ndocker compose up -d\n
","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#whats-different-from-source-install","title":"What's Different from Source Install","text":"Source Install Pre-built Install Download size ~200 MB (full repo) ~2 MB (config + scripts) First startup 10+ min (TypeScript compile + Docker build) ~2 min (image pull only) Requires Git, full repo Docker only Upgrades git pull + rebuild Download new release tarball Development Edit source, hot-reload Not for development

When to use which

Use pre-built install for production deployments and quick evaluation. Use source install when you want to modify the platform code or contribute to development.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#configuration-wizard-configsh","title":"Configuration Wizard (config.sh)","text":"

The wizard performs 14 steps to produce a fully configured .env file and prepare the system for startup. Each step is interactive with sensible defaults.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-1-prerequisites-check","title":"Step 1: Prerequisites Check","text":"

Verifies that Docker, Docker Compose v2, and OpenSSL are installed. Exits immediately if any are missing, with links to installation guides.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-2-environment-file-setup","title":"Step 2: Environment File Setup","text":"
  • If no .env exists, copies .env.example as the starting point
  • If .env already exists, offers to back it up (timestamped copy) and create a fresh one, or update values in place
","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-3-domain-configuration","title":"Step 3: Domain Configuration","text":"

Prompts for your root domain (default: cmlite.org) and derives 14 environment variables from it:

Variable Example Value DOMAIN example.org BASE_DOMAIN https://example.org GITEA_ROOT_URL https://git.example.org GITEA_DOMAIN git.example.org N8N_HOST n8n.example.org SMTP_FROM noreply@example.org INITIAL_ADMIN_EMAIL admin@example.org NC_ADMIN_EMAIL admin@example.org EXCALIDRAW_WS_URL wss://draw.example.org LISTMONK_SMTP_FROM Changemaker Lite <noreply@example.org> HOMEPAGE_VAR_BASE_URL https://example.org VAULTWARDEN_DOMAIN https://vault.example.org GANCIO_BASE_URL https://events.example.org TEST_EMAIL_RECIPIENT admin@example.org

Also updates mkdocs/mkdocs.yml with the new site_url and repo_url, and asks whether this is a production deployment (sets NODE_ENV=production).

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-4-admin-credentials","title":"Step 4: Admin Credentials","text":"

Prompts for the initial super-admin email and password. The password is validated against the security policy:

  • Minimum 12 characters
  • At least one uppercase letter
  • At least one lowercase letter
  • At least one digit
  • Requires password confirmation
","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-5-secret-generation","title":"Step 5: Secret Generation","text":"

Auto-generates 21 unique secrets \u2014 no placeholder passwords remain after this step:

Category Count Secrets JWT & Encryption 4 JWT_ACCESS_SECRET, JWT_REFRESH_SECRET, JWT_INVITE_SECRET (each 64-char hex), ENCRYPTION_KEY (64-char hex, must differ from JWT secrets) Database 2 V2_POSTGRES_PASSWORD, REDIS_PASSWORD (24-char alphanumeric) Listmonk 3 LISTMONK_DB_PASSWORD, LISTMONK_WEB_ADMIN_PASSWORD, LISTMONK_API_TOKEN NocoDB 1 NC_ADMIN_PASSWORD Gitea 2 GITEA_DB_PASSWD, GITEA_DB_ROOT_PASSWORD n8n 2 N8N_ENCRYPTION_KEY, N8N_USER_PASSWORD Monitoring 2 GRAFANA_ADMIN_PASSWORD, GOTIFY_ADMIN_PASSWORD Vaultwarden 1 VAULTWARDEN_ADMIN_TOKEN (64-char hex) Rocket.Chat 1 ROCKETCHAT_ADMIN_PASSWORD Gancio 1 GANCIO_ADMIN_PASSWORD Jitsi Meet 3 JITSI_APP_SECRET (64-char hex), JITSI_JICOFO_AUTH_PASSWORD, JITSI_JVB_AUTH_PASSWORD","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-6-email-configuration","title":"Step 6: Email Configuration","text":"

Choose between:

  • MailHog (default) \u2014 captures all outgoing emails at http://localhost:8025 for development
  • Production SMTP \u2014 configures host, port, user, and password. Optionally shares credentials with Listmonk for newsletter delivery
","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-7-feature-flags","title":"Step 7: Feature Flags","text":"

Enable or disable 9 optional platform features:

Flag Environment Variable What It Enables Media Manager ENABLE_MEDIA_FEATURES=true Video library, analytics, scheduled publishing Listmonk Sync LISTMONK_SYNC_ENABLED=true Newsletter subscriber sync from platform participants Payments ENABLE_PAYMENTS=true Stripe-based products, donations, and plans Rocket.Chat ENABLE_CHAT=true Team communication platform Gancio Events GANCIO_SYNC_ENABLED=true Shift-to-event sync with Gancio Jitsi Meet ENABLE_MEET=true Video conferencing (also prompts for server public IP) SMS Campaigns ENABLE_SMS=true Termux Android bridge for SMS (also prompts for API URL) Docs Comments GITEA_COMMENTS_ENABLED=true Gitea-backed page comments on documentation Bunker Ops BUNKER_OPS_ENABLED=true Fleet metrics push to central server (also prompts for remote write URL)","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-8-tunnel-configuration-pangolin","title":"Step 8: Tunnel Configuration (Pangolin)","text":"

Optionally configures Pangolin tunnel credentials for secure public access:

  • PANGOLIN_API_URL \u2014 API endpoint (default: https://api.bnkserve.org/v1)
  • PANGOLIN_API_KEY \u2014 Authentication key
  • PANGOLIN_ORG_ID \u2014 Organization identifier

Complete tunnel setup is done from the admin GUI at Settings > Tunnel after services are running.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-9-cors-origins","title":"Step 9: CORS Origins","text":"

Automatically calculates allowed origins from your domain:

http://app.DOMAIN,https://app.DOMAIN,http://DOMAIN,https://DOMAIN,http://localhost:3000,http://localhost,http://localhost:4003\n
","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-10-nginx-config-generation","title":"Step 10: Nginx Config Generation","text":"

Renders all .conf.template files in nginx/conf.d/ by substituting ${DOMAIN} with your configured domain. This produces the nginx configuration files that handle subdomain routing.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-11-homepage-services-yaml","title":"Step 11: Homepage Services YAML","text":"

Generates configs/homepage/services.yaml with 27 service entries (both production and local development URLs) for the Homepage service dashboard.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-12-container-directory-permissions","title":"Step 12: Container Directory Permissions","text":"

Creates and sets permissions (775) on 12 directories needed by containers:

Directory Purpose configs/code-server/.config Code Server configuration configs/code-server/.local Code Server local data mkdocs/.cache MkDocs build cache mkdocs/site MkDocs built site output assets/uploads Listmonk uploads assets/images Shared images assets/icons Homepage icons media/local/inbox Media upload inbox media/local/thumbnails Video thumbnails media/public Public media files local-files n8n local files data NAR import data","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-13-upgrade-watcher-optional","title":"Step 13: Upgrade Watcher (Optional)","text":"

Installs a systemd path watcher that enables the admin GUI's \"Check for Updates\" and \"Start Upgrade\" buttons. This step requires sudo and is optional \u2014 you can install it later or use the CLI upgrade script directly.

The watcher installs two systemd units:

  • changemaker-upgrade.path \u2014 watches for data/upgrade/trigger.json
  • changemaker-upgrade.service \u2014 runs scripts/upgrade-watcher.sh when triggered
","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-14-summary-next-steps","title":"Step 14: Summary & Next Steps","text":"

Displays a configuration summary showing all choices made, then prints startup commands.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#what-gets-modified","title":"What Gets Modified","text":"

After the wizard completes, the following files have been created or modified:

File Action .env Created (or updated) with all configuration values mkdocs/mkdocs.yml Updated site_url and repo_url with domain nginx/conf.d/*.conf Generated from .conf.template files configs/homepage/services.yaml Generated with all service URLs 12 directories Created with container-friendly permissions systemd units (optional) Installed to /etc/systemd/system/","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#manual-setup-alternative","title":"Manual Setup (Alternative)","text":"

If you prefer to configure by hand instead of using the wizard:

cp .env.example .env\n

At minimum, set these required secrets:

# Generate cryptographic secrets\nV2_POSTGRES_PASSWORD=$(openssl rand -base64 48 | tr -dc 'a-zA-Z0-9' | head -c 24)\nREDIS_PASSWORD=$(openssl rand -base64 48 | tr -dc 'a-zA-Z0-9' | head -c 24)\nJWT_ACCESS_SECRET=$(openssl rand -hex 32)\nJWT_REFRESH_SECRET=$(openssl rand -hex 32)\nJWT_INVITE_SECRET=$(openssl rand -hex 32)\nENCRYPTION_KEY=$(openssl rand -hex 32)   # must differ from all JWT secrets\n

Set your admin credentials (password must meet the 12+ char complexity requirement):

INITIAL_ADMIN_EMAIL=admin@yourdomain.org\nINITIAL_ADMIN_PASSWORD=YourStrongPassword1\n

Then configure optional sections:

  • Domain: Set DOMAIN and all derived variables (see Step 3 table above)
  • SMTP: Set SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS, EMAIL_TEST_MODE=false
  • Feature flags: Enable features as needed (see Step 7 table above)
  • Tunnel: Set PANGOLIN_API_URL, PANGOLIN_API_KEY, PANGOLIN_ORG_ID

See Environment Variables for every available option.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#full-stack-startup","title":"Full Stack Startup","text":"

After configuration, start the entire platform:

docker compose up -d\n

That's it. Docker handles the startup order automatically:

  1. PostgreSQL and Redis start first (with healthchecks)
  2. API waits for both to be healthy, then auto-runs database migrations and seeding
  3. Admin GUI waits for the API
  4. Nginx, media, communication, and all other services start in parallel
  5. Init containers (nocodb-init, listmonk-init, etc.) run once and exit

Watch the startup progress:

docker compose logs -f api --tail 20\n

Once you see Starting server on port 4000, open http://localhost:3000 and log in.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#include-monitoring","title":"Include Monitoring","text":"

The monitoring stack (Prometheus, Grafana, Alertmanager) uses a Docker Compose profile and isn't included by default:

docker compose --profile monitoring up -d\n
","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#start-only-core-services","title":"Start Only Core Services","text":"

If you prefer a minimal startup (lower resource usage):

docker compose up -d v2-postgres redis api admin nginx\n

Manual migrations

The API container runs migrations and seeding automatically on startup via its entrypoint script. You only need to run them manually if you're developing locally without Docker:

cd api && npx prisma migrate deploy && npx prisma db seed\n

See Services Overview for the complete service catalog.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#verifying-installation","title":"Verifying Installation","text":"

After starting services, verify everything is healthy:

# Check running containers\ndocker compose ps\n\n# API health check\ncurl -s http://localhost:4000/api/health | python3 -m json.tool\n\n# View API logs\ndocker compose logs api --tail 20\n\n# Check for containers in restart loops\ndocker compose ps | grep -i restarting\n

You should see the API return {\"status\":\"ok\"} and all started containers in a \"running\" state.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#next-steps","title":"Next Steps","text":"
  • Services Overview \u2014 complete service catalog with ports and startup commands
  • Environment Variables \u2014 complete .env reference
  • First Steps \u2014 create your first campaign and add locations
  • Updates & Upgrades \u2014 keep your installation up to date
","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/services/","title":"Services Overview","text":"

Changemaker Lite runs as 30+ Docker containers orchestrated by Docker Compose. This page catalogs every service, organized by category.

Quick reference

Use docker compose ps to see which services are currently running, or docker compose ps -a to include stopped containers.

","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#core-required","title":"Core (Required)","text":"

These services form the minimum viable platform. Start them first.

Container Port Description changemaker-v2-api 4000 Express.js REST API (Prisma ORM) changemaker-v2-admin 3000 React admin GUI (Vite + Ant Design) changemaker-v2-postgres 5433 PostgreSQL 16 \u2014 primary database redis-changemaker 6379 Redis 7 \u2014 cache, rate limiting, job queues changemaker-v2-nginx 80 Nginx reverse proxy \u2014 subdomain routing
# Start core services only (minimal)\ndocker compose up -d v2-postgres redis api admin nginx\n\n# Or start everything at once\ndocker compose up -d\n

The API container automatically runs database migrations and seeding on startup via its entrypoint script.

Note

Nginx is technically optional for local development (you can access services directly by port), but required for production subdomain routing.

","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#media","title":"Media","text":"Container Port Description Feature Flag changemaker-media-api 4100 Fastify media API \u2014 video library, analytics, scheduling ENABLE_MEDIA_FEATURES=true
docker compose up -d media-api\n

The media API runs as a separate Fastify server sharing the same PostgreSQL database. It handles video upload (FFprobe metadata extraction), scheduled publishing via BullMQ, and GDPR-compliant view analytics.

","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#communication","title":"Communication","text":"","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#rocketchat-team-chat","title":"Rocket.Chat (Team Chat)","text":"Container Port Description Feature Flag rocketchat-changemaker 8891 Rocket.Chat server ENABLE_CHAT=true mongodb-changemaker \u2014 MongoDB (Rocket.Chat data store) \u2014 nats-changemaker \u2014 NATS (Rocket.Chat message bus) \u2014
docker compose up -d rocketchat mongodb nats\n
","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#gancio-events","title":"Gancio (Events)","text":"Container Port Description Feature Flag gancio-changemaker 8092 Gancio event platform GANCIO_SYNC_ENABLED=true gancio-init \u2014 Init container \u2014 creates Gancio database \u2014
docker compose up -d gancio\n

Init containers

gancio-init runs once on first start to create the Gancio database in PostgreSQL, then exits. This is normal \u2014 don't worry about seeing it in a \"stopped\" state.

","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#jitsi-meet-video-conferencing","title":"Jitsi Meet (Video Conferencing)","text":"Container Port Description Feature Flag jitsi-web-changemaker 8893 Jitsi web interface ENABLE_MEET=true jitsi-prosody-changemaker \u2014 XMPP server (Prosody) \u2014 jitsi-jicofo-changemaker \u2014 Jitsi conference focus \u2014 jitsi-jvb-changemaker 10000/udp Jitsi video bridge \u2014
docker compose up -d jitsi-web jitsi-prosody jitsi-jicofo jitsi-jvb\n

Firewall requirement

Jitsi requires UDP port 10000 open in your firewall for video/audio media traffic. Set JVB_ADVERTISE_IP in .env to your server's public IP address.

","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#newsletter-email","title":"Newsletter & Email","text":"Container Port Description Feature Flag listmonk-app 9001 Listmonk newsletter platform LISTMONK_SYNC_ENABLED=true listmonk-db 5432 PostgreSQL (Listmonk's own database) \u2014 listmonk-init \u2014 Init container \u2014 creates API user \u2014 mailhog-changemaker 8025 MailHog email capture (development) EMAIL_TEST_MODE=true
# Newsletter platform\ndocker compose up -d listmonk-app\n\n# Email testing (captures all outgoing emails)\ndocker compose up -d mailhog\n

Listmonk has its own PostgreSQL instance separate from the main database. The listmonk-init container auto-creates the API user for platform integration.

","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#developer-tools","title":"Developer Tools","text":"Container Port Description code-server-changemaker 8888 VS Code in the browser mkdocs-changemaker 4003 MkDocs live preview (hot reload) mkdocs-site-server-changemaker 4004 MkDocs static site server gitea-changemaker 3030 Gitea \u2014 self-hosted Git repository gitea-db \u2014 PostgreSQL (Gitea's database) changemaker-v2-nocodb 8091 NocoDB \u2014 read-only database browser nocodb-init \u2014 Init container \u2014 registers database n8n-changemaker 5678 n8n \u2014 workflow automation
# Start individual tools\ndocker compose up -d code-server\ndocker compose up -d mkdocs mkdocs-site-server\ndocker compose up -d gitea\ndocker compose up -d nocodb\ndocker compose up -d n8n\n

Tip

mkdocs (port 4003) provides live editing with hot reload for documentation authors. mkdocs-site-server (port 4004) serves the built static site for production visitors.

","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#utilities","title":"Utilities","text":"Container Port Description mini-qr 8089 QR code PNG generator excalidraw-changemaker 8090 Collaborative whiteboard vaultwarden-changemaker 8445 Vaultwarden \u2014 Bitwarden-compatible password manager vaultwarden-init \u2014 Init container \u2014 configures admin settings homepage-changemaker 3010 Homepage \u2014 service dashboard
docker compose up -d mini-qr excalidraw vaultwarden homepage\n

Mini QR is used internally by walk sheets and cut export pages to generate printable QR codes.

","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#monitoring-docker-profile","title":"Monitoring (Docker Profile)","text":"

Monitoring services are behind a Docker Compose profile and are not started by default.

Container Port Description prometheus-changemaker 9090 Prometheus \u2014 metrics collection grafana-changemaker 3005 Grafana \u2014 monitoring dashboards alertmanager-changemaker 9093 Alertmanager \u2014 alert routing cadvisor-changemaker 8086 cAdvisor \u2014 container metrics node-exporter-changemaker 9100 Node Exporter \u2014 host system metrics redis-exporter-changemaker 9121 Redis Exporter \u2014 Redis metrics gotify-changemaker 8889 Gotify \u2014 push notifications
# Start the entire monitoring stack\ndocker compose --profile monitoring up -d\n

The monitoring stack includes 3 pre-configured Grafana dashboards and 12 custom cm_* Prometheus metrics. See Monitoring for details.

","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#infrastructure","title":"Infrastructure","text":"Container Port Description newt \u2014 Pangolin tunnel connector (Newt) docker-socket-proxy \u2014 Docker socket proxy for secure container access
# Newt starts automatically if PANGOLIN_NEWT_ID and PANGOLIN_NEWT_SECRET are set\ndocker compose up -d newt\n

The Newt container connects to a Pangolin tunnel server for secure public access without opening inbound ports. See Tunnel for setup.

","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#subdomain-routing","title":"Subdomain Routing","text":"

When Nginx is running, services are accessible via subdomains. The root domain serves documentation only; all application routes are at app.DOMAIN.

Subdomain Target Purpose app.DOMAIN Admin (3000) All application routes (admin, public pages, campaigns, map, shifts, media gallery) api.DOMAIN Express API (4000) REST API media.DOMAIN Fastify Media API (4100) Media API DOMAIN MkDocs Static (4004) Documentation / marketing site db.DOMAIN NocoDB (8091) Database browser docs.DOMAIN MkDocs Live (4003) Live documentation preview code.DOMAIN Code Server (8888) Web IDE n8n.DOMAIN n8n (5678) Workflow automation git.DOMAIN Gitea (3030) Git hosting home.DOMAIN Homepage (3010) Service dashboard grafana.DOMAIN Grafana (3005) Metrics visualization listmonk.DOMAIN Listmonk (9001) Newsletter platform qr.DOMAIN Mini QR (8089) QR code generator draw.DOMAIN Excalidraw (8090) Collaborative whiteboard vault.DOMAIN Vaultwarden (8445) Password manager events.DOMAIN Gancio (8092) Event platform chat.DOMAIN Rocket.Chat (8891) Team chat meet.DOMAIN Jitsi Meet (8893) Video conferencing mail.DOMAIN MailHog (8025) Email capture (dev)","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#init-containers","title":"Init Containers","text":"

Several services use init containers \u2014 lightweight containers that run once on first startup to bootstrap databases or configuration, then exit with code 0. This pattern is borrowed from Kubernetes.

Init Container Purpose listmonk-init Creates the Listmonk API user for platform integration gancio-init Creates the Gancio database in the shared PostgreSQL instance vaultwarden-init Configures Vaultwarden admin settings nocodb-init Registers the main database with NocoDB for browsing

Seeing these containers in a \"stopped\" or \"exited (0)\" state is completely normal.

","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#starting-everything","title":"Starting Everything","text":"

To start all services at once (excluding monitoring):

docker compose up -d\n

To start everything including monitoring:

docker compose up -d && docker compose --profile monitoring up -d\n

To see what's running:

docker compose ps\n

Warning

Starting all services at once requires at least 4 GB RAM. For resource-constrained environments, start only the services you need.

","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#next-steps","title":"Next Steps","text":"
  • Installation \u2014 setup walkthrough and configuration wizard details
  • Environment Variables \u2014 complete .env reference
  • First Steps \u2014 create your first campaign and volunteer shift
","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/upgrades/","title":"Updates & Upgrades","text":"

Changemaker Lite includes a built-in upgrade system that pulls code updates, rebuilds containers, runs database migrations, and restarts services \u2014 all while preserving your customizations.

There are two ways to upgrade:

  1. Admin GUI \u2014 Check for updates and run upgrades from Settings > System
  2. CLI \u2014 Run ./scripts/upgrade.sh directly from the command line

Both methods execute the same 6-phase upgrade process.

","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#prerequisites","title":"Prerequisites","text":"","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#upgrade-watcher-required-for-gui-method","title":"Upgrade Watcher (Required for GUI Method)","text":"

The admin GUI triggers upgrades via a systemd path watcher that monitors for trigger files. This must be installed on the host system.

Install during initial setup:

The config.sh wizard offers to install the watcher automatically (Step 13). If you skipped it, install manually:

# Edit the systemd units to set your project path and user\nsed -e \"s|__PROJECT_DIR__|$(pwd)|g\" scripts/systemd/changemaker-upgrade.path > /tmp/changemaker-upgrade.path\nsed -e \"s|__PROJECT_DIR__|$(pwd)|g\" -e \"s|__USER__|$(whoami)|g\" scripts/systemd/changemaker-upgrade.service > /tmp/changemaker-upgrade.service\n\n# Install and enable\nsudo cp /tmp/changemaker-upgrade.path /tmp/changemaker-upgrade.service /etc/systemd/system/\nsudo systemctl daemon-reload\nsudo systemctl enable --now changemaker-upgrade.path\n

Verify it's running:

sudo systemctl status changemaker-upgrade.path\n

How the watcher works

The API container writes a trigger.json file to a shared data/upgrade/ volume. The systemd path watcher detects the file and runs scripts/upgrade-watcher.sh on the host, which dispatches to the appropriate script (check or upgrade). Progress and results are communicated back via JSON files that the API reads.

","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#method-1-admin-gui","title":"Method 1: Admin GUI","text":"","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#checking-for-updates","title":"Checking for Updates","text":"
  1. Navigate to Settings (/app/settings)
  2. Click the System tab
  3. Click Check for Updates

The system fetches from the git remote and shows:

  • Current commit hash and message
  • Remote commit hash (if different)
  • Number of commits behind
  • Changelog of incoming changes
","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#starting-an-upgrade","title":"Starting an Upgrade","text":"
  1. Review the changelog to understand what's changing
  2. Click Start Upgrade
  3. Optionally configure:
    • Skip backup \u2014 skip the database backup phase (not recommended)
    • Pull images \u2014 also update third-party Docker images (PostgreSQL, Redis, etc.)
    • Use registry images \u2014 pull pre-built images from Gitea instead of compiling from source (faster \u2014 requires scripts/build-and-push.sh to have been run first)
    • Dry run \u2014 preview what would happen without making changes
  4. Monitor the 6-phase progress indicator

The GUI polls for progress updates and displays the current phase, percentage, and status message in real time.

","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#the-6-upgrade-phases","title":"The 6 Upgrade Phases","text":"

Both the GUI and CLI methods execute the same 6-phase process:

Phase % Name What Happens 1 5% Pre-flight Checks Verifies Docker, git, disk space (2 GB minimum), remote reachability, and clean working directory 2 15% Backup Runs scripts/backup.sh (pg_dump + archive), backs up user-modifiable content, saves pre-upgrade commit hash 3 30% Code Update Saves user paths, stashes local changes, git pull, pops stash with auto-conflict resolution, detects new .env variables 4 50% Container Rebuild Rebuilds api, admin, media-api from source (default) or pulls pre-built images from the Gitea registry (--use-registry); conditionally rebuilds nginx and code-server if their configs changed; optionally pulls third-party images 5 70% Service Restart Stops app containers, force-recreates LSIO containers, verifies Gancio config, starts infrastructure, waits for PostgreSQL, starts API (runs migrations), starts everything else, restarts Newt tunnel and monitoring if they were running 6 90% Verification Health checks for API, Admin, Media API, Gancio, MkDocs; detects containers in restart loops","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#what-gets-preserved","title":"What Gets Preserved","text":"

The upgrade script automatically preserves user-modifiable paths that you may have customized:

Path What It Contains mkdocs/docs/ Your documentation content mkdocs/mkdocs.yml MkDocs configuration mkdocs/site/ Built documentation site configs/ Prometheus, Grafana, Alertmanager, Homepage configs nginx/conf.d/services.conf Custom nginx service proxies

These files are saved before git pull and unconditionally restored afterward, even if the pull introduces changes to them. Your versions always win.

Tip

The .env file is never touched by git pull (it's in .gitignore). However, if new environment variables are added in .env.example, the upgrade script automatically appends them to your .env with their default values and warns you to review them.

","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#method-2-cli","title":"Method 2: CLI","text":"

Run the upgrade script directly:

./scripts/upgrade.sh\n
","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#options","title":"Options","text":"Flag Description --skip-backup Skip the backup phase (requires --force) --pull-services Also pull new third-party Docker images --use-registry Pull pre-built images from Gitea instead of compiling from source --dry-run Show what would happen without executing --force Continue past non-critical warnings --branch BRANCH Git branch to pull (default: current branch) --rollback Rollback to pre-upgrade commit --api-mode Write progress/result JSON for admin GUI (used internally)","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#examples","title":"Examples","text":"
# Standard upgrade\n./scripts/upgrade.sh\n\n# Preview changes without executing\n./scripts/upgrade.sh --dry-run\n\n# Full upgrade including third-party image updates\n./scripts/upgrade.sh --pull-services\n\n# Upgrade using pre-built images from Gitea registry (faster, no TypeScript compile)\n./scripts/upgrade.sh --use-registry --force --skip-backup\n\n# Rollback to the last pre-upgrade state\n./scripts/upgrade.sh --rollback\n
","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#registry-mode-fast-upgrades","title":"Registry Mode (Fast Upgrades)","text":"

By default, the upgrade script compiles TypeScript from source (npm run build) and rebuilds Docker images on the deployment server. Registry mode skips this by pulling pre-built production images from the Gitea container registry \u2014 faster and requires no build tooling on the server.

","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#how-it-works","title":"How It Works","text":"
  1. Run scripts/build-and-push.sh on a machine with Docker (usually your dev machine) to build and push production images tagged with the current commit SHA
  2. During the next upgrade, pass --use-registry (CLI) or enable the checkbox (GUI)
  3. The upgrade script pulls gitea.bnkops.com/admin/changemaker-{service}:{sha} instead of rebuilding from source
  4. If a registry image is unavailable (e.g., the SHA wasn't pushed), it automatically falls back to a source build
","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#building-and-pushing-images","title":"Building and Pushing Images","text":"
# Build and push all core services (api, admin, media-api, nginx)\n./scripts/build-and-push.sh\n\n# Skip code-server (9 GB \u2014 push only when Dockerfile changes)\n./scripts/build-and-push.sh --services api,admin,media-api,nginx\n\n# Build only, no push (verify locally first)\n./scripts/build-and-push.sh --no-push\n\n# Also mirror third-party images (postgres, redis, etc.) to Gitea\n./scripts/mirror-images.sh\n

Registry prerequisites

  • Run docker login gitea.bnkops.com once per machine before pushing
  • Set GITEA_REGISTRY_USER and GITEA_REGISTRY_PASS in .env for the admin GUI's Registry status endpoint
  • gitea.bnkops.com must be reachable without proxies that limit upload size (Cloudflare free plan blocks blobs >100 MB)

Release installs upgrade automatically via registry

If you installed from a release tarball (not git clone), the upgrade script automatically uses registry mode. It downloads the latest release package from Gitea instead of running git pull. No additional configuration needed.

","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#rollback","title":"Rollback","text":"","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#automatic-rollback","title":"Automatic Rollback","text":"

If the upgrade fails at any phase, the script prints detailed rollback instructions including the pre-upgrade commit hash. Use the --rollback flag:

./scripts/upgrade.sh --rollback\n

This:

  1. Finds the latest backup archive
  2. Extracts the pre-upgrade commit hash from git-commit.txt inside the archive
  3. Checks out that commit
  4. Rebuilds and restarts all containers

Warning

--rollback restores the code to the pre-upgrade state but does not automatically restore the database. If database migrations were applied during the failed upgrade, you may need to manually restore from the backup archive.

","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#manual-rollback","title":"Manual Rollback","text":"
# 1. Restore code\ncd /path/to/changemaker.lite\ngit checkout <pre-upgrade-commit-hash>\n\n# 2. Rebuild and restart\ndocker compose build api admin media-api\ndocker compose up -d\n\n# 3. Database restore (if needed \u2014 destructive!)\nls -lt backups/changemaker-v2-backup-*.tar.gz | head -5\ntar xzf backups/<backup>.tar.gz -C /tmp\ngunzip -c /tmp/<backup>/v2-postgres.sql.gz | \\\n  docker exec -i changemaker-v2-postgres psql -U changemaker -d changemaker_v2\n
","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#new-environment-variables","title":"New Environment Variables","text":"

When upstream code adds new environment variables to .env.example, the upgrade script automatically:

  1. Compares .env.example against your .env
  2. Appends any missing variables with their default values
  3. Warns you to review the new additions
[WARN] New env vars added to .env (review defaults):\n    NEW_FEATURE_FLAG\n    NEW_API_KEY\n

Always review new variables after an upgrade \u2014 some may need manual configuration.

","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#update-checker","title":"Update Checker","text":"

A separate lightweight script checks for available updates without performing any changes:

./scripts/upgrade-check.sh\n

This writes data/upgrade/status.json with:

  • Current and remote commit hashes
  • Number of commits behind
  • Changelog (last 30 commits)
  • Timestamp of last check

The admin GUI reads this file to display update availability.

","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#troubleshooting","title":"Troubleshooting","text":"","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#stale-progress-indicator","title":"Stale Progress Indicator","text":"

If the GUI shows an upgrade \"in progress\" but nothing is happening, the upgrade script may have crashed. The system automatically detects stale progress (no update for 10+ minutes) and treats it as not running.

To manually clear:

rm -f data/upgrade/progress.json\n
","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#merge-conflicts","title":"Merge Conflicts","text":"

If git pull encounters merge conflicts in user-modifiable paths (docs, configs), the upgrade script auto-resolves by keeping your version. If conflicts occur in project-owned files (api/, admin/), the upgrade fails and asks you to resolve manually.

","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#lock-file","title":"Lock File","text":"

The upgrade script uses .upgrade.lock to prevent concurrent upgrades. If a previous upgrade crashed without cleaning up:

# Verify no upgrade is actually running\nps aux | grep upgrade.sh\n\n# Remove stale lock\nrm -f .upgrade.lock\n
","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#health-check-failures","title":"Health Check Failures","text":"

If Phase 6 health checks fail, services may still be starting. Wait 1-2 minutes and check manually:

# API health\ncurl -s http://localhost:4000/api/health\n\n# Container status\ndocker compose ps\n\n# Recent logs\ndocker compose logs api --tail 50\ndocker compose logs admin --tail 50\n
","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#systemd-watcher-not-triggering","title":"Systemd Watcher Not Triggering","text":"
# Check watcher status\nsudo systemctl status changemaker-upgrade.path\n\n# Check service logs\nsudo journalctl -u changemaker-upgrade.service --tail 20\n\n# Re-enable if stopped\nsudo systemctl enable --now changemaker-upgrade.path\n
","tags":["guide","operator","upgrades"]},{"location":"docs/services/","title":"Services","text":"

Changemaker Lite orchestrates 20+ services via Docker Compose. This page is your map to every service: what it does, how to reach it, and where to find its upstream documentation.

","tags":["reference","operator","services","docker"]},{"location":"docs/services/#core-platform","title":"Core Platform","text":"

The essential services that power the application.

  • Express API

    Main V2 API server. Handles authentication, campaigns, map, shifts, pages, email, and all business logic. Prisma ORM with PostgreSQL.

    Port: 4000 \u00b7 Container: changemaker-v2-api

    API Reference

  • Fastify Media API

    Video library server. Upload, metadata extraction (FFprobe), analytics, scheduled publishing, and public gallery. Shares the same PostgreSQL database.

    Port: 4100 \u00b7 Container: changemaker-media-api

    Media Guide

  • Admin GUI

    React single-page application (Vite + Ant Design + Zustand). Serves the admin dashboard, public campaign pages, volunteer portal, and media gallery \u2014 all from one build.

    Port: 3000 \u00b7 Container: changemaker-v2-admin

    Feature Guides

  • PostgreSQL 16

    Primary database shared by both APIs. Managed by Prisma migrations. Contains 30+ tables covering users, campaigns, locations, shifts, media, and more.

    Port: 5433 (host) / 5432 (container) \u00b7 Container: changemaker-v2-postgres

    PostgreSQL Docs

  • Redis

    In-memory store for rate limiting, BullMQ job queues (email, video scheduling), geocoding cache, and session data. Requires authentication.

    Port: 6379 \u00b7 Container: redis-changemaker

    Redis Docs

  • Nginx

    Reverse proxy handling all subdomain routing (app., api., media., docs., etc.). Includes security headers (HSTS, CSP, Permissions-Policy) and WebSocket support.

    Port: 80 / 443 \u00b7 Container: changemaker-v2-nginx

    Nginx Docs

","tags":["reference","operator","services","docker"]},{"location":"docs/services/#communication-email","title":"Communication & Email","text":"
  • Listmonk

    Self-hosted newsletter and mailing list manager. Drop-in replacement for Mailchimp. Opt-in sync with the main platform imports participants, locations, and users as subscriber lists.

    Port: 9001 \u00b7 Container: listmonk-app \u00b7 Subdomain: listmonk.DOMAIN

    Listmonk Docs

  • MailHog

    Email capture for development. All outgoing email is intercepted and displayed in a web UI when EMAIL_TEST_MODE=true. No real emails are sent.

    Port: 8025 (web) / 1025 (SMTP) \u00b7 Container: mailhog-changemaker \u00b7 Subdomain: mail.DOMAIN

    MailHog GitHub

","tags":["reference","operator","services","docker"]},{"location":"docs/services/#content-editing","title":"Content & Editing","text":"
  • MkDocs

    Material-themed documentation site with full-text search, blog, social cards, and Jinja2 template overrides. Two containers: live preview (dev) and static site (production).

    Port: 4003 (dev) / 4004 (static) \u00b7 Container: mkdocs-changemaker \u00b7 Subdomain: docs.DOMAIN

    MkDocs Material

  • Code Server

    Full VS Code in the browser. Edit configuration files, templates, and documentation from anywhere without SSH. Supports extensions.

    Port: 8888 \u00b7 Container: code-server-changemaker \u00b7 Subdomain: code.DOMAIN

    Code Server Docs

","tags":["reference","operator","services","docker"]},{"location":"docs/services/#data-automation","title":"Data & Automation","text":"
  • NocoDB

    Airtable-alternative database browser. Provides a spreadsheet-like interface to browse, filter, sort, and export campaign data. Read-only access to the main database.

    Port: 8091 \u00b7 Container: changemaker-v2-nocodb \u00b7 Subdomain: db.DOMAIN

    NocoDB Docs

  • n8n

    Visual workflow automation platform. Connect APIs, trigger actions on events, schedule tasks, and build custom integrations \u2014 all without code. 400+ built-in integrations.

    Port: 5678 \u00b7 Container: n8n-changemaker \u00b7 Subdomain: n8n.DOMAIN

    n8n Docs

  • Gitea

    Self-hosted Git repository hosting. Version control for campaign code, configuration, templates, and documentation. Includes issues, pull requests, and CI/CD.

    Port: 3030 (web) / 2222 (SSH) \u00b7 Container: gitea-changemaker \u00b7 Subdomain: git.DOMAIN

    Gitea Docs

","tags":["reference","operator","services","docker"]},{"location":"docs/services/#utilities","title":"Utilities","text":"
  • Mini QR

    Lightweight QR code generator. Produces PNG images for walk sheets, campaign materials, and event signage. Embedded in the admin dashboard via iframe.

    Port: 8089 \u00b7 Container: mini-qr \u00b7 Subdomain: qr.DOMAIN

  • Homepage

    Service dashboard showing the status of all containers at a glance. Auto-generated services.yaml from config.sh provides both production and local links.

    Port: 3010 \u00b7 Container: homepage-changemaker \u00b7 Subdomain: home.DOMAIN

    Homepage Docs

  • Excalidraw

    Collaborative whiteboard for brainstorming, diagramming, and visual planning. Real-time collaboration via WebSocket.

    Port: 8090 \u00b7 Container: excalidraw-changemaker \u00b7 Subdomain: draw.DOMAIN

    Excalidraw

  • Vaultwarden

    Self-hosted Bitwarden-compatible password manager. Secure credential sharing for campaign teams. Requires HTTPS for account creation; local browsing works on HTTP.

    Port: 8445 \u00b7 Container: vaultwarden-changemaker \u00b7 Subdomain: vault.DOMAIN

    Vaultwarden Wiki

","tags":["reference","operator","services","docker"]},{"location":"docs/services/#team-communication","title":"Team Communication","text":"
  • Rocket.Chat

    Self-hosted team chat for volunteer coordination. Supports channels, direct messaging, threads, and file sharing. Embeddable in the admin dashboard via iframe. Enable with ENABLE_CHAT=true.

    Port: 3000 (internal) \u00b7 Container: rocketchat-changemaker \u00b7 Subdomain: chat.DOMAIN

    Rocket.Chat Docs

  • Jitsi Meet

    Self-hosted video conferencing with JWT authentication. Four containers (web, Prosody, Jicofo, JVB) provide the full video call stack. Integrated with Rocket.Chat for one-click calls from channels and DMs. Enable with ENABLE_MEET=true.

    Containers: jitsi-web, jitsi-prosody, jitsi-jicofo, jitsi-jvb \u00b7 Subdomain: meet.DOMAIN

    Setup Guide \u00b7 Jitsi Docs

  • Gancio

    Self-hosted event management platform. Automatic shift-to-event sync (when GANCIO_SYNC_ENABLED=true) publishes shifts as public events. Uses the shared PostgreSQL database. Embeddable calendar widget available for MkDocs pages.

    Port: 8092 \u00b7 Container: gancio-changemaker \u00b7 Subdomain: events.DOMAIN

    Gancio Docs

","tags":["reference","operator","services","docker"]},{"location":"docs/services/#networking-tunneling","title":"Networking & Tunneling","text":"
  • Pangolin + Newt

    Self-hosted tunnel server with the Newt client container. Exposes your services to the internet without port forwarding. Handles SSL/TLS, works behind CGNAT and double NAT.

    Container: newt-changemaker \u00b7 Managed from Admin \u2192 Settings \u2192 Tunnel

    Deployment Guide \u00b7 Pangolin GitHub

","tags":["reference","operator","services","docker"]},{"location":"docs/services/#monitoring-stack","title":"Monitoring Stack","text":"

These services run behind the monitoring Docker Compose profile. Start them with:

docker compose --profile monitoring up -d\n
  • Prometheus

    Metrics collection and time-series database. Scrapes 12 custom cm_* application metrics plus container, host, and Redis metrics. Pre-configured alert rules.

    Port: 9090 \u00b7 Container: prometheus-changemaker

    Prometheus Docs

  • Grafana

    Metrics visualization with 3 auto-provisioned dashboards: API Overview, Infrastructure, and Campaign Activity. Supports custom dashboards and alerting.

    Port: 3005 \u00b7 Container: grafana-changemaker \u00b7 Subdomain: grafana.DOMAIN

    Grafana Docs

  • Alertmanager

    Alert routing and notification delivery. Receives alerts from Prometheus and dispatches to Gotify, email, or webhooks based on configurable rules.

    Port: 9093 \u00b7 Container: alertmanager-changemaker

    Alertmanager Docs

  • cAdvisor

    Container resource metrics. Exposes CPU, memory, network, and filesystem usage per container for Prometheus to scrape.

    Port: 8086 \u00b7 Container: cadvisor-changemaker

    cAdvisor GitHub

  • Node Exporter

    Host system metrics. Reports CPU, memory, disk, and network stats for the underlying server.

    Port: 9100 \u00b7 Container: node-exporter-changemaker

    Node Exporter

  • Redis Exporter

    Redis metrics for Prometheus. Exposes connection counts, memory usage, command stats, and keyspace info.

    Port: 9121 \u00b7 Container: redis-exporter-changemaker

    Redis Exporter GitHub

  • Gotify

    Self-hosted push notification server. Receives alerts from Alertmanager and delivers them to mobile/desktop clients.

    Port: 8889 \u00b7 Container: gotify-changemaker

    Gotify Docs

","tags":["reference","operator","services","docker"]},{"location":"docs/services/#quick-reference","title":"Quick Reference","text":"

All services at a glance with their default ports and subdomains.

Service Port Subdomain Docker Profile Express API 4000 api. default Media API 4100 media. default Admin GUI 3000 app. default PostgreSQL 5433 \u2014 default Redis 6379 \u2014 default Nginx 80/443 (all) default Listmonk 9001 listmonk. default MailHog 8025 mail. default MkDocs (dev) 4003 docs. default MkDocs (static) 4004 (root) default Code Server 8888 code. default NocoDB 8091 db. default n8n 5678 n8n. default Gitea 3030 git. default Mini QR 8089 qr. default Homepage 3010 home. default Excalidraw 8090 draw. default Vaultwarden 8445 vault. default Rocket.Chat \u2014 chat. default Jitsi Meet \u2014 meet. default Gancio 8092 events. default Newt (tunnel) \u2014 \u2014 default Prometheus 9090 \u2014 monitoring Grafana 3005 grafana. monitoring Alertmanager 9093 \u2014 monitoring cAdvisor 8086 \u2014 monitoring Node Exporter 9100 \u2014 monitoring Redis Exporter 9121 \u2014 monitoring Gotify 8889 \u2014 monitoring

Starting services selectively

You don't need to run everything. Start only what you need:

# Core only\ndocker compose up -d v2-postgres redis api admin\n\n# Add nginx for subdomain routing\ndocker compose up -d nginx\n\n# Add monitoring\ndocker compose --profile monitoring up -d\n

See Getting Started for the recommended startup order.

","tags":["reference","operator","services","docker"]},{"location":"docs/troubleshooting/","title":"Troubleshooting","text":"

Common issues and their solutions when running Changemaker Lite.

","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#cors-errors-in-production","title":"CORS Errors in Production","text":"

Symptom: Browser console shows CORS errors when accessing production domain.

Fix: Add your production domain to CORS_ORIGINS in .env:

CORS_ORIGINS=https://app.yourdomain.org,http://localhost:3000\n

Then restart the API: docker compose restart api

","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#pangolin-tunnel-403302-errors","title":"Pangolin Tunnel \u2014 403/302 Errors","text":"

Symptom: All API endpoints return 302 redirects to Pangolin auth page, or 403 Forbidden.

Fix: In the Pangolin dashboard, set each resource to Not Protected (public access). Critical resources to fix first:

  1. api.yourdomain.org \u2014 Main API
  2. app.yourdomain.org \u2014 Admin GUI + public pages
  3. media.yourdomain.org \u2014 Media API

Verify:

# Should return JSON, NOT a 302 redirect\ncurl -I https://api.yourdomain.org/api/health\n
","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#database-connection-failures","title":"Database Connection Failures","text":"

Symptom: API logs show database connection errors.

Checklist:

  1. Check PostgreSQL: docker compose ps v2-postgres
  2. Verify DATABASE_URL in .env matches container name and port
  3. View logs: docker compose logs v2-postgres --tail 50
  4. Test connection: docker compose exec api npx prisma db execute --stdin <<< \"SELECT 1\"
","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#redis-connection-failures","title":"Redis Connection Failures","text":"

Symptom: API logs show Redis connection errors, rate limiting doesn't work.

Checklist:

  1. Check Redis: docker compose ps redis-changemaker
  2. Verify REDIS_PASSWORD and REDIS_URL format (redis://:password@host:port)
  3. View logs: docker compose logs redis-changemaker --tail 50
  4. Test: docker compose exec redis-changemaker redis-cli -a $REDIS_PASSWORD ping
","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#api-not-starting","title":"API Not Starting","text":"

Symptom: API container keeps restarting or won't start.

Checklist:

  1. Check logs: docker compose logs api --tail 100
  2. Verify all required env vars are set (compare with .env.example)
  3. Check database is ready: docker compose ps v2-postgres (should show \"healthy\")
  4. Run migrations manually: docker compose exec api npx prisma migrate deploy
  5. Check for port conflicts: ss -tlnp | grep 4000
","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#containers-in-restart-loops","title":"Containers in Restart Loops","text":"

Symptom: docker compose ps shows containers with \"restarting\" status.

Diagnosis:

# Find restarting containers\ndocker compose ps | grep -i restarting\n\n# Check recent logs for the problem container\ndocker compose logs <service-name> --tail 50\n\n# Check container exit code\ndocker inspect <container-name> --format='{{.State.ExitCode}}'\n

Common causes:

  • Missing environment variables (check .env)
  • Database not ready (healthcheck dependencies)
  • Port already in use by another process
  • Insufficient memory (check with free -h)
","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#newt-tunnel-wont-connect","title":"Newt Tunnel Won't Connect","text":"

Checklist (in order):

  1. Credentials: Verify PANGOLIN_NEWT_ID and PANGOLIN_NEWT_SECRET in .env
  2. Endpoint: Confirm PANGOLIN_ENDPOINT matches your Pangolin server URL
  3. Logs: docker compose logs newt --tail 50
  4. Nginx running: Newt depends on nginx \u2014 docker compose ps nginx
  5. Network: Ensure outbound HTTPS is not blocked by your firewall
","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#migration-errors","title":"Migration Errors","text":"

Symptom: prisma migrate deploy fails.

Common fixes:

# Check migration status\ndocker compose exec api npx prisma migrate status\n\n# If migrations are out of sync, reset (DESTRUCTIVE \u2014 dev only)\ndocker compose exec api npx prisma migrate reset\n\n# If shadow database errors, create one\ndocker compose exec -T v2-postgres createdb -U changemaker prisma_shadow_diff\n

Never use prisma db push in production

Always use prisma migrate dev (development) or prisma migrate deploy (production) to keep migration history in sync.

","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#media-api-upload-failures","title":"Media API Upload Failures","text":"

Symptom: Video uploads fail with permission errors or 500 status.

Checklist:

  1. Verify inbox volume is writable: check media/local/inbox has :rw mount
  2. Check disk space: df -h
  3. Verify FFmpeg is installed in container: docker compose exec media-api ffprobe -version
  4. Check upload size limit: default is 10 GB in Fastify multipart config
","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#email-not-sending","title":"Email Not Sending","text":"

Symptom: Advocacy emails or notifications aren't delivered.

Checklist:

  1. Check EMAIL_TEST_MODE \u2014 if true, all emails go to MailHog (http://localhost:8025)
  2. Verify SMTP credentials in .env (SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS)
  3. Check BullMQ queue: visit Admin > Email Queue or check logs
  4. Test SMTP from Settings: Admin > Settings > Email > Test Connection
","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#services-unreachable-via-tunnel","title":"Services Unreachable via Tunnel","text":"

Checklist:

  1. Verify nginx is running: docker compose ps nginx
  2. Test locally first: curl http://localhost:4000/api/health
  3. Check nginx logs: docker compose logs nginx --tail 50
  4. Verify DNS: dig app.yourdomain.org should point to your Pangolin server
  5. Check Pangolin resources are all set to \"Not Protected\"
","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#slow-map-performance","title":"Slow Map Performance","text":"

Symptom: Map page is slow or returns 500 errors with many locations.

Causes and fixes:

  • Too many locations loaded at once \u2014 the API limits by address count with debounced bounds queries
  • Missing indexes \u2014 verify database has the 5 performance indexes on Location/Address tables
  • Browser memory \u2014 marker clustering activates above zoom level 18; below that, addresses are grouped
","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#docker-disk-space","title":"Docker Disk Space","text":"

Symptom: Builds fail, containers can't start, or images won't pull.

# Check disk usage\ndf -h\n\n# Clean unused Docker resources\ndocker system prune -f\n\n# Clean old images (keep only last 2 days)\ndocker image prune -a --filter \"until=48h\"\n\n# Check what's using space\ndocker system df\n
","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#getting-help","title":"Getting Help","text":"

If your issue isn't listed here:

  1. Check the API logs: docker compose logs api --tail 200
  2. Search the Gitea issues
  3. Review the Deployment guide for production-specific issues
  4. File a new issue with your logs and .env (redact passwords)
","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/user-guide/","title":"User Guide","text":"

This guide covers everything you can do as a visitor or registered supporter \u2014 from contacting representatives to signing up for volunteer shifts.

","tags":["guide","user"]},{"location":"docs/user-guide/#what-you-can-do","title":"What You Can Do","text":"
  • Campaigns

    Find active advocacy campaigns, look up your representatives, and send emails.

  • Map

    Explore the interactive map showing locations across your community.

  • Shifts

    Sign up for volunteer shifts and join canvassing teams.

  • Events

    Browse upcoming events and RSVP through the event calendar.

  • Gallery

    Watch campaign videos, browse photos, and explore playlists.

  • Shop & Pricing

    Purchase campaign merchandise or subscribe to a membership plan.

  • Donations

    Support the cause with one-time donations on branded pages.

  • Your Profile

    View and manage your contact profile, preferences, and activity history.

","tags":["guide","user"]},{"location":"docs/user-guide/campaigns/","title":"Campaigns","text":"

Browse active advocacy campaigns and contact your elected representatives.

","tags":["guide","user","influence","campaigns"]},{"location":"docs/user-guide/campaigns/#how-it-works","title":"How It Works","text":"
  1. Browse campaigns at /campaigns \u2014 see active campaigns with descriptions and email counts
  2. Pick a campaign \u2014 read about the issue and who it targets
  3. Enter your postal code \u2014 the system looks up your federal, provincial, municipal, and school board representatives
  4. Send the email \u2014 use \"Send Now\" to send through the platform, or open it in your own email app (Gmail, Outlook, etc.)
  5. Share the response \u2014 if a representative replies, submit it to the public Response Wall
","tags":["guide","user","influence","campaigns"]},{"location":"docs/user-guide/campaigns/#response-wall","title":"Response Wall","text":"

Each campaign has a public response wall where supporters share how their representatives responded. Responses can be upvoted and are moderated by admins. Verified responses display a trust badge.

","tags":["guide","user","influence","campaigns"]},{"location":"docs/user-guide/campaigns/#submit-your-own-campaign","title":"Submit Your Own Campaign","text":"

Registered users can draft and submit their own advocacy campaigns at /campaigns/create. Submissions go through admin review before being published.

","tags":["guide","user","influence","campaigns"]},{"location":"docs/user-guide/campaigns/#public-routes","title":"Public Routes","text":"
  • /campaigns \u2014 browse active campaigns
  • /campaign/:slug \u2014 take action on a specific campaign
  • /campaign/:slug/responses \u2014 view the response wall
  • /campaigns/create \u2014 submit a user-generated campaign (requires login)
  • /campaigns/mine \u2014 manage your submitted campaigns (requires login)
","tags":["guide","user","influence","campaigns"]},{"location":"docs/user-guide/donations/","title":"Donations","text":"

Make one-time contributions on branded donation pages.

","tags":["guide","user","payments"]},{"location":"docs/user-guide/donations/#how-it-works","title":"How It Works","text":"
  1. Browse donation pages at /donate
  2. Choose a campaign to support
  3. Select a suggested amount or enter a custom amount
  4. Complete payment securely through Stripe
  5. Receive a confirmation with a thank-you message
","tags":["guide","user","payments"]},{"location":"docs/user-guide/donations/#donation-pages","title":"Donation Pages","text":"

Each donation page has:

  • Custom branding \u2014 unique title, description, and cover image
  • Suggested amounts \u2014 pre-set donation tiers for quick selection
  • Goal tracking \u2014 progress bar showing how close the campaign is to its fundraising goal
  • Anonymous giving \u2014 option to donate without displaying your name
","tags":["guide","user","payments"]},{"location":"docs/user-guide/donations/#public-routes","title":"Public Routes","text":"
  • /donate \u2014 browse donation pages
  • /donate/:slug \u2014 donate on a specific campaign page
","tags":["guide","user","payments"]},{"location":"docs/user-guide/events/","title":"Events (Gancio)","text":"

Integrated with Gancio for self-hosted event management. When enabled, volunteer shifts are automatically published as public events.

","tags":["guide","user","events"]},{"location":"docs/user-guide/events/#shift-to-event-sync","title":"Shift-to-Event Sync","text":"

When GANCIO_SYNC_ENABLED=true, the platform:

  1. Creates a Gancio event whenever a new shift is published
  2. Updates the event if the shift time, location, or details change
  3. Deletes the event if the shift is cancelled

Sync uses OAuth authentication with the Gancio admin account.

","tags":["guide","user","events"]},{"location":"docs/user-guide/events/#key-features","title":"Key Features","text":"
  • Automatic sync \u2014 shifts appear as public events without manual entry
  • Embeddable calendar \u2014 GrapesJS block and MkDocs widget for embedding the event calendar on pages
  • Public events page \u2014 linked from the public navigation when enableEvents is enabled in settings
","tags":["guide","user","events"]},{"location":"docs/user-guide/events/#admin-routes","title":"Admin Routes","text":"
  • /app/gancio \u2014 Gancio service status and iframe embed
","tags":["guide","user","events"]},{"location":"docs/user-guide/events/#public-routes","title":"Public Routes","text":"
  • /events \u2014 public events navigation link (when enabled)
  • events.DOMAIN \u2014 Gancio web interface for browsing and RSVPs
","tags":["guide","user","events"]},{"location":"docs/user-guide/gallery/","title":"Gallery","text":"

The public gallery at /gallery showcases campaign videos, photos, and curated playlists.

","tags":["guide","user","media","gallery"]},{"location":"docs/user-guide/gallery/#videos","title":"Videos","text":"
  • Browse by category \u2014 videos organized into categories with thumbnails and durations
  • Video player \u2014 full playback with engagement features (reactions, comments)
  • Shorts feed \u2014 TikTok-style vertical video feed for clips under 60 seconds at /gallery/shorts
","tags":["guide","user","media","gallery"]},{"location":"docs/user-guide/gallery/#photos","title":"Photos","text":"
  • Photo albums \u2014 browse photos organized into named collections
  • Reactions and comments \u2014 engage with individual photos
","tags":["guide","user","media","gallery"]},{"location":"docs/user-guide/gallery/#playlists","title":"Playlists","text":"
  • Curated playlists \u2014 admin and community-created video collections
  • Featured carousel \u2014 highlighted playlists on the gallery homepage
  • Playlist viewer \u2014 continuous playback with up-next queue at /gallery/playlist/:id
","tags":["guide","user","media","gallery"]},{"location":"docs/user-guide/gallery/#public-routes","title":"Public Routes","text":"
  • /gallery \u2014 public video and photo gallery
  • /gallery/watch/:id \u2014 watch a specific video
  • /gallery/playlist/:id \u2014 view a playlist
  • /gallery/shorts \u2014 browse the shorts feed
","tags":["guide","user","media","gallery"]},{"location":"docs/user-guide/map/","title":"Map","text":"

The public map at /map shows locations across your community on an interactive Leaflet map.

","tags":["guide","user","map"]},{"location":"docs/user-guide/map/#features","title":"Features","text":"
  • Interactive map \u2014 zoom, pan, and click markers to see address details
  • Color-coded markers \u2014 locations are color-coded based on their status
  • Cluster groups \u2014 markers group together when zoomed out for better performance
  • Fullscreen mode \u2014 expand the map to fill your screen
","tags":["guide","user","map"]},{"location":"docs/user-guide/map/#public-routes","title":"Public Routes","text":"
  • /map \u2014 public interactive map
","tags":["guide","user","map"]},{"location":"docs/user-guide/profile/","title":"Self-Service Contact Profile","text":"

Give supporters a private, token-based link to view and manage their own contact profile -- no login required.

","tags":["guide","user","CRM"]},{"location":"docs/user-guide/profile/#how-it-works","title":"How It Works","text":"
  1. An admin generates a profile link from the People CRM -- each link contains a unique 64-character hex token with a configurable expiration (24 hours to 1 year).
  2. The supporter opens the link -- if the link is password-protected, they enter the password first. If expired, they see a branded expiration notice.
  3. The supporter views and edits their profile -- they can update their name, email, phone, address, and cover photo.
  4. Communication preferences -- supporters can opt out of email and/or SMS communications with simple toggle switches.
","tags":["guide","user","CRM"]},{"location":"docs/user-guide/profile/#profile-tabs","title":"Profile Tabs","text":"
  • Profile -- edit display name, first/last name, email, phone, and address
  • Preferences -- toggle email and SMS opt-out switches
  • Activity -- paginated timeline of all engagement: emails sent, responses submitted, shift signups, canvass visits, donations, video views, and profile edits
  • Social tabs -- if the viewer is a logged-in user viewing their own profile and the social feature is enabled, additional tabs appear: Friends, Feed, Achievements, Notifications, and Discover
","tags":["guide","user","CRM"]},{"location":"docs/user-guide/profile/#security","title":"Security","text":"
  • Token-based access -- no account or login needed; the URL token grants access
  • Password protection -- admins can optionally set a password on the profile link
  • Expiration -- links expire after a configurable duration, showing a branded message with the expiration date
  • Rate limiting -- separate rate limits on profile views, edits, photo uploads, and password attempts
  • Cover photo -- supporters can upload a JPEG, PNG, or WebP cover photo (max 5 MB), automatically resized to 800x400
","tags":["guide","user","CRM"]},{"location":"docs/user-guide/profile/#engagement-score","title":"Engagement Score","text":"

Each profile shows a circular engagement score (0-100) calculated from the contact's activity across the platform -- emails, shifts, canvass visits, donations, and video views.

","tags":["guide","user","CRM"]},{"location":"docs/user-guide/profile/#public-routes","title":"Public Routes","text":"
  • /profile/:token -- self-service contact profile page
","tags":["guide","user","CRM"]},{"location":"docs/user-guide/shifts/","title":"Shifts","text":"

Browse available volunteer shifts and sign up to participate in canvassing and other campaign activities.

","tags":["guide","user","shifts"]},{"location":"docs/user-guide/shifts/#signing-up","title":"Signing Up","text":"
  1. Visit /shifts to see available time slots
  2. Pick a shift that works for your schedule
  3. Fill in your name and email
  4. You'll receive a confirmation email with login credentials
","tags":["guide","user","shifts"]},{"location":"docs/user-guide/shifts/#quick-join","title":"Quick Join","text":"

Organizers may share a QR code at events for instant onboarding:

  1. Scan the QR code \u2014 it opens a Quick Join page
  2. Enter your email (and optionally your name and phone)
  3. Start immediately \u2014 you're logged in and redirected to the volunteer portal with your area pre-loaded

Quick Join creates a temporary 24-hour account. Your organizer can upgrade it to a permanent account afterward.

","tags":["guide","user","shifts"]},{"location":"docs/user-guide/shifts/#after-signing-up","title":"After Signing Up","text":"

Once you have an account, log in to access the Volunteer Portal where you can:

  • View your assigned shifts and canvassing areas
  • Open the canvass map for GPS-guided door-to-door outreach
  • Track your activity and visit history

See the Volunteer Guide for the full volunteer experience.

","tags":["guide","user","shifts"]},{"location":"docs/user-guide/shifts/#public-routes","title":"Public Routes","text":"
  • /shifts \u2014 browse and sign up for volunteer shifts
  • /join?token=... \u2014 quick join via invite link or QR code
","tags":["guide","user","shifts"]},{"location":"docs/user-guide/shop/","title":"Shop & Pricing","text":"

Support the campaign by purchasing merchandise or subscribing to a membership plan.

","tags":["guide","user","payments"]},{"location":"docs/user-guide/shop/#shop","title":"Shop","text":"

Browse available products at /shop:

  • Campaign merchandise and branded items
  • One-time purchases with Stripe checkout
  • Product details with images and descriptions
","tags":["guide","user","payments"]},{"location":"docs/user-guide/shop/#membership-plans","title":"Membership Plans","text":"

View subscription options at /pricing:

  • Tiered membership plans with different benefits
  • Monthly and yearly billing options
  • Secure recurring payments through Stripe
","tags":["guide","user","payments"]},{"location":"docs/user-guide/shop/#public-routes","title":"Public Routes","text":"
  • /shop \u2014 browse products
  • /pricing \u2014 view subscription plans
","tags":["guide","user","payments"]},{"location":"docs/volunteer/","title":"Volunteer Guide","text":"

Welcome! This guide walks you through everything you need as a campaign volunteer.

","tags":["guide","volunteer"]},{"location":"docs/volunteer/#getting-started","title":"Getting Started","text":"","tags":["guide","volunteer"]},{"location":"docs/volunteer/#1-sign-up-for-a-shift","title":"1. Sign Up for a Shift","text":"

Visit the Shifts page (your organizer will share the link, or find it at /shifts). Browse available time slots, pick one that works, and fill in your name and email. You'll receive a confirmation email with login credentials.

","tags":["guide","volunteer"]},{"location":"docs/volunteer/#2-log-in","title":"2. Log In","text":"

Sign in with the email and password from your confirmation at the login page.

","tags":["guide","volunteer"]},{"location":"docs/volunteer/#3-explore-the-volunteer-portal","title":"3. Explore the Volunteer Portal","text":"

After logging in, you'll land on the volunteer portal. Use the bottom navigation to access:

  • Map \u2014 your canvassing area with GPS tracking
  • Shifts \u2014 your upcoming and past shifts
  • Friends \u2014 social connections with other volunteers
  • Achievements \u2014 badges and leaderboards
","tags":["guide","volunteer"]},{"location":"docs/volunteer/#in-this-section","title":"In This Section","text":"
  • Canvassing \u2014 the GPS-guided canvass map, recording visits, and walking routes
  • Shifts \u2014 viewing your assigned shifts, activity log, and route history
  • Social \u2014 friend connections, activity feed, groups, profiles, and privacy settings
  • Achievements \u2014 unlockable badges, progress tracking, and competitive leaderboards
","tags":["guide","volunteer"]},{"location":"docs/volunteer/#browsing-public-pages","title":"Browsing Public Pages","text":"

Tap your name/avatar in the header and select Browse Site to visit the public pages \u2014 campaigns, the public map, and shift signups.

","tags":["guide","volunteer"]},{"location":"docs/volunteer/#faq","title":"FAQ","text":"

Q: I can't find my assigned area on the map. A: Make sure your shift has an area assigned. Check with your organizer.

Q: My GPS isn't working. A: Allow location access in your browser. Try moving near a window for better signal.

Q: I recorded the wrong outcome. A: Visit the same address again and record the correct outcome. The most recent visit counts.

Q: How do I sign up for more shifts? A: Visit the public shifts page at /shifts.

","tags":["guide","volunteer"]},{"location":"docs/volunteer/achievements/","title":"Achievements & Leaderboard","text":"

Recognize volunteer contributions with unlockable achievement badges and competitive leaderboards.

","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/achievements/#how-it-works","title":"How It Works","text":"

Achievements are checked automatically when relevant actions occur (e.g., signing up for a shift, completing a canvass session, accepting a friend request). When a user's progress meets the threshold, the badge is unlocked and an in-app notification is sent.

","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/achievements/#badge-categories","title":"Badge Categories","text":"","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/achievements/#shifts","title":"Shifts","text":"Badge Name Threshold Description FIRST_SHIFT First Steps 1 confirmed signup Sign up for your first volunteer shift SHIFT_STREAK_3 Reliable Volunteer 3 confirmed signups Sign up for 3 volunteer shifts SHIFT_STREAK_10 Shift Champion 10 confirmed signups Sign up for 10 volunteer shifts","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/achievements/#canvassing","title":"Canvassing","text":"Badge Name Threshold Description FIRST_CANVASS Door Knocker 1 completed session Complete your first canvass session CANVASS_50_DOORS Neighbourhood Explorer 50 visits Record 50 canvass visits CANVASS_100_DOORS Community Connector 100 visits Record 100 canvass visits CANVASS_500_DOORS Door-to-Door Legend 500 visits Record 500 canvass visits","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/achievements/#campaigns","title":"Campaigns","text":"Badge Name Threshold Description FIRST_CAMPAIGN_EMAIL Voice Heard 1 email sent Send your first advocacy email CAMPAIGN_CHAMPION Campaign Champion 5 distinct campaigns Participate in 5 different campaigns","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/achievements/#social","title":"Social","text":"Badge Name Threshold Description SOCIAL_BUTTERFLY Social Butterfly 10 accepted friends Make 10 friends on the platform TEAM_PLAYER Team Player 3 group memberships Be a member of 3 groups","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/achievements/#progress-tracking","title":"Progress Tracking","text":"

Each badge displays a progress bar showing current progress toward the threshold. Already-unlocked badges show the unlock date and the progress value at unlock time or the current count (whichever is higher).

","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/achievements/#leaderboards","title":"Leaderboards","text":"

The Achievements page includes a leaderboard tab with three ranking types:

  • Canvass \u2014 ranked by total canvass visits recorded
  • Shifts \u2014 ranked by total confirmed shift signups
  • Campaigns \u2014 ranked by number of distinct campaigns participated in

Leaderboard entries show rank, user name, and score. Users who have disabled \"Show in Friend Activity\" in their privacy settings are excluded from leaderboard rankings to respect their privacy choices.

","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/achievements/#volunteer-stats","title":"Volunteer Stats","text":"

The Achievements page also displays aggregate stats for the current user:

  • Confirmed shift signups
  • Completed canvass sessions
  • Total canvass visits
  • Advocacy emails sent
  • Campaigns participated in
  • Friend count
  • Group memberships
","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/achievements/#volunteer-routes","title":"Volunteer Routes","text":"
  • /volunteer/achievements \u2014 badge gallery, progress bars, leaderboard tabs, and personal stats
","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/canvassing/","title":"Canvassing","text":"

The volunteer canvass map is your main tool for door-to-door outreach \u2014 a full-screen GPS-tracked experience.

","tags":["guide","volunteer","map","canvassing"]},{"location":"docs/volunteer/canvassing/#the-volunteer-map","title":"The Volunteer Map","text":"","tags":["guide","volunteer","map","canvassing"]},{"location":"docs/volunteer/canvassing/#what-you-see","title":"What You See","text":"
  • Colored markers \u2014 each marker is an address. Colors indicate the outcome of the last visit (green = supportive, red = opposed, grey = not yet visited)
  • Clusters \u2014 when zoomed out, markers group together showing the address count. Tap a cluster to zoom in.
  • Blue dot \u2014 your current GPS position
  • Walking route \u2014 a suggested path through the addresses (dotted line)
","tags":["guide","volunteer","map","canvassing"]},{"location":"docs/volunteer/canvassing/#recording-a-visit","title":"Recording a Visit","text":"
  1. Tap a marker to select an address
  2. A bottom panel slides up showing address details
  3. Tap Record Visit to log what happened:
    • Not Home \u2014 nobody answered
    • Supportive \u2014 positive interaction
    • Opposed \u2014 not supportive
    • Undecided \u2014 hasn't made up their mind
    • Moved \u2014 no longer lives there
    • Refused \u2014 declined to talk
  4. Optionally add a note about the visit
  5. Tap Save \u2014 the marker color updates immediately
","tags":["guide","volunteer","map","canvassing"]},{"location":"docs/volunteer/canvassing/#sessions","title":"Sessions","text":"
  • Start a session before you begin knocking on doors \u2014 this tracks your route and time
  • End your session when you're done for the day
  • The map works offline for basic viewing, but you need a connection to save visits
  • If GPS is inaccurate, manually tap the correct marker on the map
","tags":["guide","volunteer","map","canvassing"]},{"location":"docs/volunteer/canvassing/#routes","title":"Routes","text":"

The Routes tab shows your past canvassing routes on a map, helping you see which areas you've covered and plan your next outing.

","tags":["guide","volunteer","map","canvassing"]},{"location":"docs/volunteer/canvassing/#volunteer-routes","title":"Volunteer Routes","text":"
  • /volunteer \u2014 full-screen canvass map with GPS and visit recording
  • /volunteer/activity \u2014 visit history and outcome breakdown
  • /volunteer/routes \u2014 past canvassing routes
","tags":["guide","volunteer","map","canvassing"]},{"location":"docs/volunteer/shifts/","title":"Your Shifts","text":"

View your upcoming and past volunteer shifts from the Shifts tab in the bottom navigation.

","tags":["guide","volunteer","shifts"]},{"location":"docs/volunteer/shifts/#shift-details","title":"Shift Details","text":"

Each shift shows:

  • Date and time
  • Assigned area (if linked to a canvassing territory)
  • A button to open the canvass map for that area
","tags":["guide","volunteer","shifts"]},{"location":"docs/volunteer/shifts/#activity-log","title":"Activity Log","text":"

The Activity tab shows your complete visit history:

  • Outcome breakdown \u2014 pie chart of your visit outcomes
  • Visit list \u2014 each visit with address, outcome, time, and notes
  • Stats \u2014 total visits, addresses covered, and sessions completed
","tags":["guide","volunteer","shifts"]},{"location":"docs/volunteer/shifts/#volunteer-routes","title":"Volunteer Routes","text":"
  • /volunteer/shifts \u2014 view assigned shifts
  • /volunteer/activity \u2014 visit history and outcome breakdown
","tags":["guide","volunteer","shifts"]},{"location":"docs/volunteer/social/","title":"Social Connections","text":"

Connect with fellow volunteers through friend requests, activity feeds, team groups, and real-time notifications. Enable via Settings > Feature Toggles > Social Connections.

","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/social/#friends","title":"Friends","text":"
  • Send requests \u2014 search for other volunteers and send friend requests
  • Accept / decline / cancel \u2014 manage requests from the Friends page
  • Mutual friends \u2014 view shared connections between users
  • Block / unblock \u2014 blocked users cannot send requests or appear in suggestions
","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/social/#discover","title":"Discover","text":"

The Discover page suggests potential friends using a ranked scoring algorithm based on:

  • Household/family connections (highest priority)
  • Mutual friends
  • Shared shifts (co-volunteers from the last 90 days)
  • Shared campaigns (co-participants from the last 90 days)
","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/social/#activity-feed","title":"Activity Feed","text":"

The Social Feed at /volunteer/feed shows recent activity from your friends:

  • Shift signups, campaign emails, canvass sessions, and response submissions
  • Limited to the last 30 days (max 50 items)
","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/social/#groups","title":"Groups","text":"

Groups are automatically created based on platform activity:

  • Shift teams \u2014 created when 2+ volunteers share a shift
  • Campaign teams \u2014 created when 2+ users participate in the same campaign
","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/social/#profiles","title":"Profiles","text":"

Each volunteer has a social profile showing volunteer stats, achievement badges, friendship status, and recent activity.

","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/social/#pokes","title":"Pokes","text":"

Send a friendly nudge to any accepted friend (24-hour cooldown per pair).

","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/social/#privacy-settings","title":"Privacy Settings","text":"Setting Default Description Show online status On Whether friends see you as online Show in friend activity On Whether your actions appear in feeds Allow friend requests On Whether others can send you requests","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/social/#digest-emails","title":"Digest Emails","text":"

Opt into periodic social digest emails with friend activity, unread notifications, and pending requests. Choose daily or weekly frequency.

","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/social/#volunteer-routes","title":"Volunteer Routes","text":"
  • /volunteer/feed \u2014 social activity feed
  • /volunteer/friends \u2014 friends, requests, blocked, and groups
  • /volunteer/discover \u2014 ranked friend suggestions
  • /volunteer/profile \u2014 your social profile
  • /volunteer/profile/:userId \u2014 another volunteer's profile
  • /volunteer/notifications \u2014 notification center and preferences
  • /volunteer/groups/:id \u2014 group detail with member list
","tags":["guide","volunteer","social"]},{"location":"blog/archive/2026/","title":"2026","text":""},{"location":"blog/category/announcements/","title":"Announcements","text":""},{"location":"blog/category/platform/","title":"Platform","text":""}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\u200b\\-_,:!=\\[\\]()\"`/]+|\\.(?!\\d)|&[lg]t;|(?!\\b)(?=[A-Z][a-z])","pipeline":["stopWordFilter"],"fields":{"title":{"boost":1000.0},"text":{"boost":1.0},"tags":{"boost":1000000.0}}},"docs":[{"location":"test-page/","title":"Test Page","text":"

Testing

testing testing one two

hello is this content going to show?

"},{"location":"test/","title":"test","text":"

Hello!

"},{"location":"blog/","title":"Blog","text":""},{"location":"blog/2026/03/27/test-blog-post---version-7/","title":"Test Blog Post - Version 7","text":"

This version uses the auto-setup token.

"},{"location":"blog/2026/03/22/introducing-changemaker-lite-v2/","title":"Introducing Changemaker Lite v2","text":"

Changemaker Lite v2 is a ground-up rebuild of the platform \u2014 same mission, entirely new architecture. After 14 phases of development, the platform is ready for production use.

","tags":["v2","release","self-hosted","FOSS"]},{"location":"blog/2026/03/22/introducing-changemaker-lite-v2/#what-changed","title":"What Changed","text":"

V1 was two independent Express apps stitched together with NocoDB as a data layer. It worked, but scaling features meant fighting the architecture at every turn.

V2 is a unified TypeScript stack:

  • Dual API architecture \u2014 Express.js for the main platform, Fastify for the media library, sharing a single PostgreSQL 16 database via Prisma ORM
  • React admin GUI \u2014 Vite + Ant Design + Zustand, serving admin, public, and volunteer interfaces from one build
  • 30+ Docker services \u2014 from core infrastructure to monitoring, communication, and developer tools
  • JWT authentication with refresh token rotation, role-based access control (11 roles), and a comprehensive security audit
","tags":["v2","release","self-hosted","FOSS"]},{"location":"blog/2026/03/22/introducing-changemaker-lite-v2/#whats-new","title":"What's New","text":"

The feature set has grown substantially:

  • Advocacy campaigns with postal code \u2192 representative lookup, email sending, response walls, and moderation
  • Map & canvassing with multi-provider geocoding, polygon territories, GPS-tracked volunteer sessions, and walking route generation
  • Media manager with video upload, FFprobe metadata extraction, scheduled publishing, analytics, and a public gallery
  • Landing page builder powered by GrapesJS with drag-and-drop editing
  • Payments via encrypted Stripe integration \u2014 products, donations, and subscription plans
  • SMS campaigns via a Termux Android bridge
  • Team communication with self-hosted Rocket.Chat and Jitsi Meet
  • People CRM aggregating contacts across all modules with duplicate detection and merge
  • Volunteer social features \u2014 friend system, achievements, leaderboards, and a personal calendar
  • One-command install \u2014 curl | bash pulls a release tarball and runs the config wizard
","tags":["v2","release","self-hosted","FOSS"]},{"location":"blog/2026/03/22/introducing-changemaker-lite-v2/#why-self-hosted","title":"Why Self-Hosted","text":"

Every subscription to corporate campaign software funds infrastructure you don't control. Your voter lists, canvassing outcomes, and communication patterns become assets on someone else's balance sheet.

Changemaker Lite costs roughly the price of a VPS \u2014 often under $50/month for the full stack. But the real value isn't cost savings. It's control. No vendor can cut off your access. No acquisition can change your terms.

Read more in our Philosophy page.

","tags":["v2","release","self-hosted","FOSS"]},{"location":"blog/2026/03/22/introducing-changemaker-lite-v2/#get-started","title":"Get Started","text":"
curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/main/scripts/install.sh | bash\n

Or follow the Getting Started guide for a walkthrough.

","tags":["v2","release","self-hosted","FOSS"]},{"location":"blog/2026/03/22/introducing-changemaker-lite-v2/#whats-next","title":"What's Next","text":"

Phase 15 (Testing & Polish) is underway. We're also working on:

  • Social Calendar Phase B (shared views, availability finder)
  • Expanded test coverage
  • Performance optimization for large location datasets

Follow this blog for updates, or subscribe to the newsletter.

","tags":["v2","release","self-hosted","FOSS"]},{"location":"comments/callback/","title":"Signing in...","text":"

Completing sign in...

You will be redirected back to the page you were on.

"},{"location":"docs/","title":"Documentation","text":"

Welcome to the Changemaker Lite documentation. Whether you're a campaign volunteer, an admin managing operations, or a sysadmin deploying the platform \u2014 start here.

","tags":["guide","getting-started"],"boost":2},{"location":"docs/#use-the-platform","title":"Use the Platform","text":"
  • Getting Started

    Install Changemaker Lite, create your first admin account, and explore the dashboard.

    Getting Started

  • Feature Guides

    Campaigns, email advocacy, response walls, map locations, landing pages, and media.

    Feature Guides

  • Administration

    User management, roles and permissions, site settings, email templates, and newsletters.

    Administration

  • Volunteer Guide

    Sign up for shifts, use the canvassing map, record visits, and track your activity.

    Volunteer Guide

","tags":["guide","getting-started"],"boost":2},{"location":"docs/#deploy-operate","title":"Deploy & Operate","text":"
  • Deployment

    Docker Compose setup, environment variables, SSL/TLS, backups, and production checklist.

    Deployment

  • Architecture

    Dual API design, database schema, authentication flow, and system diagram.

    Architecture

  • Services

    Nginx routing, Redis, PostgreSQL, Listmonk, MkDocs, Gitea, NocoDB, and more.

    Services

  • Monitoring

    Prometheus metrics, Grafana dashboards, Alertmanager rules, and health checks.

    Monitoring

","tags":["guide","getting-started"],"boost":2},{"location":"docs/#reference","title":"Reference","text":"
  • API Reference

    REST endpoints for auth, campaigns, locations, shifts, media, and more.

    API Reference

  • Troubleshooting

    Common errors, CORS issues, database problems, tunnel debugging, and FAQ.

    Troubleshooting

  • Security

    Password policy, rate limiting, token rotation, encryption, and audit report.

    Security See Deployment

  • Contributing

    Development setup, code style, git workflow, and pull request guidelines.

    Contributing

","tags":["guide","getting-started"],"boost":2},{"location":"docs/#platform-at-a-glance","title":"Platform at a Glance","text":"Component Technology Purpose Main API Express.js + Prisma Auth, campaigns, map, shifts, pages, email Media API Fastify + Prisma Video library, analytics, upload, scheduling Admin GUI React + Ant Design + Zustand Dashboard for admins and organizers Database PostgreSQL 16 Single shared database for both APIs Cache Redis Rate limiting, BullMQ jobs, geocoding queue Proxy Nginx Subdomain routing, security headers, SSL Tunnel Pangolin + Newt Expose services without port forwarding Monitoring Prometheus + Grafana Metrics, dashboards, alerts

New here?

Start with the Getting Started guide to have the platform running in under 30 minutes.

Looking for the source?

Changemaker Lite is 100% open source. Browse the code on Gitea.

","tags":["guide","getting-started"],"boost":2},{"location":"docs/phil/","title":"Philosophy","text":"","tags":["concept","philosophy","FOSS"]},{"location":"docs/phil/#software-is-political","title":"Software Is Political","text":"

Every tool your movement adopts shapes how you organize. Proprietary platforms reinforce hierarchy \u2014 the vendor decides what features you get, what data you can export, and what happens when you stop paying. Community-controlled tools support democratic autonomy because the people using them decide how they work.

If you do politics, who is reading your secrets? Corporate platforms harvest political intelligence systematically. Facebook chat data has been used in criminal prosecutions. Social media platforms are leveraged for political coordination and surveillance. When you organize on corporate infrastructure, you hand your strategies, your voter data, and your movement's internal conversations to entities that may have every reason to work against you.

Changemaker Lite exists because we believe organizational independence requires technological independence.

","tags":["concept","philosophy","FOSS"]},{"location":"docs/phil/#the-extractive-model","title":"The Extractive Model","text":"

Most campaign and political software is extractive by design. The pattern is familiar:

  1. Free trial hooks you in
  2. Paid features gate the tools you actually need
  3. Data export becomes difficult or impossible
  4. Pricing escalates as you grow and become dependent
  5. Your usage patterns are monetized through data partnerships, behavioral analytics, and enterprise contracts

This isn't a side effect \u2014 it's the business model. You pay with money and with data. Your voter lists, canvassing outcomes, donor records, and communication patterns become assets on someone else's balance sheet.

Every subscription to corporate software funds the machine you're fighting.

","tags":["concept","philosophy","FOSS"]},{"location":"docs/phil/#the-alternative-grow-power-dont-rent-it","title":"The Alternative: Grow Power, Don't Rent It","text":"

Changemaker asks a different question than most political tech: instead of \"how do we extract more data from a community?\" we ask \"what tools are needed to grow change in a community?\"

Growing change means:

  • Making real connections between organizers, volunteers, and community members \u2014 not just collecting their contact info
  • Providing access to the same caliber of tools that well-funded campaigns use \u2014 without the price tag or the surveillance
  • Deeply understanding the wants and needs of your movement \u2014 on infrastructure you control, with data you own
","tags":["concept","philosophy","FOSS"]},{"location":"docs/phil/#distributed-organizing-is-the-way-out","title":"Distributed Organizing Is The Way Out","text":"

Socialist movements will never outspend capital. Progressive organizations cannot compete financially with well-funded conservative movements, and chasing big-donor dollars leads to mission drift and organizational capture \u2014 what some call the Political Industrial Complex.

A thousand neighborhood mailing lists has more potential impact than any single organization. When organizing knowledge and digital tools are widely distributed \u2014 not gatekept by leadership or locked behind vendor paywalls \u2014 movements become genuinely resilient.

The historical pattern is clear: worker victories occurred when organizing knowledge was widely distributed, not concentrated at the top. Changemaker Lite is built on this premise \u2014 provide the tools freely, train people to use them, and get out of the way.

Workers, with the right tools, will build the future.

","tags":["concept","philosophy","FOSS"]},{"location":"docs/phil/#de-corp-your-stack","title":"De-Corp Your Stack","text":"

The practical work of digital sovereignty starts with replacing corporate services one at a time:

Corporate Tool Changemaker Alternative What You Gain Mailchimp Listmonk Unlimited subscribers, no per-send charges, your data stays local NationBuilder Changemaker Lite Full campaign platform without the $50-500/month ransom Google Docs Gitea + Code Server Version control, collaboration, no algorithmic scanning Slack Rocket.Chat Team chat with SSO, no message limits, no corporate eavesdropping SurveyMonkey Response Wall Supporter voices on your terms, with moderation you control Google Maps Self-hosted Leaflet No API fees, no tracking, offline-capable canvassing

The cost reduction is dramatic. Organizations spending thousands monthly on SaaS tools can replace them with a single self-hosted server running Changemaker Lite for roughly the cost of hosting \u2014 often under $50/month.

But the real value isn't cost savings. It's control. No vendor can cut off your access. No acquisition can change your terms. No government can compel a foreign company to hand over your data. Your movement's digital infrastructure belongs to your movement.

","tags":["concept","philosophy","FOSS"]},{"location":"docs/phil/#security-culture-starts-with-infrastructure","title":"Security Culture Starts With Infrastructure","text":"

Security culture isn't just about who knows what \u2014 it's about who can know what. When your communications run through corporate servers, you've made a structural decision about who has access before you've even thought about operational security.

Key principles:

  • Compartmentalization by design \u2014 Self-hosted systems let you control exactly who has access to what, at the infrastructure level
  • No third-party access \u2014 No corporate subpoenas for your data, no partnership agreements sharing your information
  • Audit everything \u2014 When you run the servers, you can verify that your security promises are real, not just marketing
  • Consent and autonomy \u2014 Your community sets its own security boundaries rather than accepting whatever a vendor's privacy policy allows

You wouldn't hold a sensitive strategy meeting in a room wired by someone else. Why would you plan your campaign on someone else's servers?

","tags":["concept","philosophy","FOSS"]},{"location":"docs/phil/#our-principles","title":"Our Principles","text":"

Liberation First Technology should center marginalized voices. The tools we build reflect the values we hold, and they shape the movements that use them.

Community Over Profit Changemaker Lite is free and open source software, built by a cooperative \u2014 not a startup looking for an exit. There are no shareholders to satisfy, no venture capitalists to answer to. The software serves the community because that's the only thing it's designed to do.

Data Sovereignty Communities should own their complete digital infrastructure. Not just the content \u2014 the servers, the databases, the encryption keys, and the ability to pack up and leave at any time.

Radical Accessibility Self-hosted doesn't have to mean self-excluding. Changemaker Lite is designed for organizers, not sysadmins. If you can follow a guide to set up a WordPress site, you can run this platform.

","tags":["concept","philosophy","FOSS"]},{"location":"docs/phil/#further-reading","title":"Further Reading","text":"

These articles explore the ideas behind Changemaker Lite in depth:

  • If You Do Politics, Who Is Reading Your Secrets? \u2014 Why you should de-corp your software stack
  • Distributed Digital Organizing Is The Way Out \u2014 Why decentralized power structures outperform centralized ones
  • How Not To Get Got Making Content \u2014 Platform independence for political content creators
  • What Is Security Culture? \u2014 The foundations of security culture for movements
","tags":["concept","philosophy","FOSS"]},{"location":"docs/admin/","title":"Admin Guide","text":"

The admin panel at /app is your command center for managing the entire platform. Use the sidebar to navigate between modules, or press Ctrl+K to open the command palette for quick access to any page, setting, or action.

","tags":["guide","admin"]},{"location":"docs/admin/#sections","title":"Sections","text":"
  • Dashboard

    Live overview of platform activity, upcoming shifts, email stats, and service health.

  • People & Access

    User management, roles, the People CRM, and contact merging.

  • Advocacy

    Campaigns, response moderation, representative lookup, and email queue monitoring.

  • Broadcast

    Newsletter sync, email templates, and SMS campaigns.

  • Web Content

    Landing pages, homepage, navigation menu, and documentation management.

  • Map & Canvassing

    Locations, areas, shifts, canvassing dashboard, data quality, and map settings.

  • Media

    Video/photo library, analytics, playlists, comment moderation, and gallery ads.

  • Payments

    Products, donations, subscription plans, and Stripe configuration.

  • Services

    Tunnel management, monitoring, and third-party integrations.

  • Settings

    Organization branding, theme colors, email config, feature toggles, and notifications.

","tags":["guide","admin"]},{"location":"docs/admin/#roles-reference","title":"Roles Reference","text":"Role Access Level SUPER_ADMIN Full platform access \u2014 implicitly bypasses all role checks INFLUENCE_ADMIN Campaigns, responses, representatives, email queue MAP_ADMIN Locations, areas, shifts, canvassing, data quality BROADCAST_ADMIN Newsletter sync, email templates CONTENT_ADMIN Landing pages, homepage, navigation, documentation MEDIA_ADMIN Video library, analytics, gallery, moderation, ads PAYMENTS_ADMIN Products, donations, plans, Stripe configuration EVENTS_ADMIN Gancio event sync and calendar management SOCIAL_ADMIN Social connections, achievements, calendar layers USER Volunteer portal only TEMP Limited volunteer access (auto-created on shift signup)","tags":["guide","admin"]},{"location":"docs/admin/dashboard/","title":"Dashboard","text":"

The admin dashboard (/app) provides a real-time overview of platform activity.

","tags":["guide","admin"]},{"location":"docs/admin/dashboard/#dashboard-cards","title":"Dashboard Cards","text":"
  • Platform Stats \u2014 active campaigns, total emails sent, registered users, and location count
  • Activity Feed \u2014 recent events across all modules (signups, emails, visits, responses)
  • Upcoming Shifts \u2014 next scheduled volunteer shifts with signup counts
  • Newsletter Stats \u2014 Listmonk subscriber counts and recent campaign performance
  • Chat Activity \u2014 Rocket.Chat channel activity and online users (when chat is enabled)
  • Service Health \u2014 connectivity status for integrated services (Gitea, Gancio, Vaultwarden, etc.)

All cards auto-refresh and gracefully degrade when their associated module is disabled.

","tags":["guide","admin"]},{"location":"docs/admin/people-access/","title":"People & Access","text":"

Manage platform user accounts and roles, and use the People CRM to get a unified view of every supporter, donor, and volunteer across all modules.

","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#user-management","title":"User Management","text":"","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#creating-users","title":"Creating Users","text":"

Navigate to Users (/app/users) and click Add User. Fill in name, email, and role. The user will receive a welcome email with login instructions.

","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#roles","title":"Roles","text":"Role Access Use Case SUPER_ADMIN Full platform access Campaign managers INFLUENCE_ADMIN Campaigns, responses, email queue Advocacy coordinators MAP_ADMIN Locations, areas, shifts, canvassing Field organizers USER Volunteer portal only Active volunteers TEMP Limited volunteer access Shift signups (auto-created)","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#password-policy","title":"Password Policy","text":"

Passwords must be at least 12 characters with uppercase, lowercase, and a digit. This is enforced at the API schema level.

","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#deactivating-users","title":"Deactivating Users","text":"

Edit a user from the Users page and toggle their active status. Deactivated users cannot log in but their data is preserved. Banned users have their sessions invalidated immediately.

","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#service-accounts-panel","title":"Service Accounts Panel","text":"

When editing a user, the Service Accounts panel shows provisioning status for each integrated service (Rocket.Chat, Gitea, Vaultwarden, Listmonk). You can provision, deprovision, or re-sync individual services per user.

","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#people-crm","title":"People CRM","text":"

Enable with enablePeople in Settings. The People module serves as the platform's CRM, aggregating data from all other modules into a unified view.

","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#virtual-aggregation","title":"Virtual Aggregation","text":"

The People page does not store a separate \"people\" table. Instead, it aggregates records in real time from seven data sources:

Source Data Users Platform accounts (name, email, phone, last login) Address Occupants Named residents from the map/canvassing module Campaign Senders People who sent advocacy emails Shift Signups Volunteer shift registrants SMS Contacts Contacts from SMS campaign lists Donations/Orders Buyers from the payments module Manual Contacts created directly in the CRM

Records are deduplicated by normalized email or phone number, with Users taking highest priority.

","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#managed-contacts","title":"Managed Contacts","text":"

Any virtual person can be \"promoted\" to a managed Contact record. This creates a persistent Contact entity in the database with:

  • Display name, first/last name \u2014 editable independently of the source
  • Tags \u2014 custom CRM tags for segmentation and filtering
  • Notes \u2014 free-text notes field
  • Support level \u2014 LEVEL_1 (Strong) through LEVEL_4 (Opposition)
  • Opt-out flags \u2014 email opt-out, SMS opt-out, and do-not-contact
  • Sign requested \u2014 track yard sign status
","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#contact-details","title":"Contact Details","text":"

Each managed contact supports multiple structured data entries:

  • Addresses \u2014 link to map locations with optional unit numbers and primary flag; new addresses can be auto-added to the map for geocoding
  • Emails \u2014 multiple email addresses with labels (e.g., Personal, Work) and primary designation
  • Phones \u2014 multiple phone numbers with labels and primary designation
","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#activity-timeline","title":"Activity Timeline","text":"

View a chronological timeline of all interactions for a person, across every module:

  • Advocacy emails sent and responses submitted
  • Shift signups and canvass visits
  • Donations and product purchases
  • SMS messages sent and received
  • Video views
  • Notes added and contact merges
","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#duplicate-detection-and-merge","title":"Duplicate Detection and Merge","text":"

The platform identifies potential duplicates by matching normalized email addresses and phone numbers across sources. The merge workflow lets you:

  • Select which fields to keep from the source vs. target contact
  • Merge tags, addresses, emails, and phones
  • Preserve the full audit trail (merged contacts are soft-linked, not deleted)
","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#connection-graph","title":"Connection Graph","text":"

Build a relationship graph between contacts using typed connections:

  • Connection types \u2014 Household, Family, Colleague, Referred By, and Custom
  • Bidirectional \u2014 connections can be one-way or mutual
  • Visual graph \u2014 interactive force-directed graph visualization showing contacts as nodes and connections as edges
  • Configurable depth \u2014 explore up to 3 degrees of separation
","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#profile-links","title":"Profile Links","text":"

Generate shareable public profile pages for contacts:

  • Unique token URLs at /profile/:token
  • Configurable expiration \u2014 24 hours, 7 days, 30 days, 90 days, 1 year, or never
  • Optional password protection \u2014 require a PIN or password to view
","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#household-detection","title":"Household Detection","text":"

The Household panel groups contacts who share the same physical address, making it easy to see all members of a household and their combined engagement.

","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#create-user-from-contact","title":"Create User from Contact","text":"

Promote a CRM contact to a full platform user account directly from the People interface, with role assignment and optional welcome email.

","tags":["guide","admin","CRM"]},{"location":"docs/admin/people-access/#admin-routes","title":"Admin Routes","text":"
  • /app/users \u2014 user CRUD, role assignment, service accounts
  • /app/people \u2014 contact list with search, filters, source/tag filtering, and bulk actions
","tags":["guide","admin","CRM"]},{"location":"docs/admin/settings/","title":"Platform Settings","text":"

Centralized configuration for organization identity, theming, email delivery, feature modules, and automated notifications.

","tags":["guide","admin","configuration"]},{"location":"docs/admin/settings/#settings-tabs","title":"Settings Tabs","text":"","tags":["guide","admin","configuration"]},{"location":"docs/admin/settings/#organization","title":"Organization","text":"

Configure your organization's public identity:

  • Organization Name \u2014 displayed in the admin sidebar, public pages, and emails
  • Short Name \u2014 shown when the admin sidebar is collapsed (max 10 characters)
  • Logo URL \u2014 displayed on the login page, homepage hero, and public navigation
  • Favicon URL \u2014 browser tab icon
  • Footer Text \u2014 shown in public page footers
  • Login Subtitle \u2014 displayed below the organization name on the login page
","tags":["guide","admin","configuration"]},{"location":"docs/admin/settings/#theme-colors","title":"Theme Colors","text":"

Customize the look of admin and public interfaces:

Admin theme:

  • Primary color (accent color for buttons, links, active states)
  • Background color (page background)

Public theme:

  • Primary color
  • Background color
  • Container color (card and section backgrounds)
  • Header gradient (CSS gradient string for the public navigation bar)

A live preview panel shows color swatches and a gradient preview as you configure.

","tags":["guide","admin","configuration"]},{"location":"docs/admin/settings/#email","title":"Email","text":"

Configure how the platform sends emails:

  • Sender \u2014 from name and from address for all outgoing emails
  • Active SMTP provider \u2014 toggle between MailHog (testing) and Production SMTP with a single click
  • Production SMTP \u2014 host, port, username, and password (collapsible panel, disabled when MailHog is active)
  • Test mode \u2014 when enabled, all emails redirect to a single test recipient address
  • Test actions \u2014 \"Test Connection\" verifies SMTP connectivity; \"Send Test Email\" delivers a test message through the active provider

A configuration summary card at the top displays the current provider, server, authentication status, and test mode state.

","tags":["guide","admin","configuration"]},{"location":"docs/admin/settings/#feature-toggles","title":"Feature Toggles","text":"

Enable or disable platform modules. Disabling a module hides it from navigation but does not delete data.

Category Flag Description Core Platform enableInfluence Advocacy campaigns, email sending, response wall enableMap Map, locations, canvassing, volunteer shifts enableNewsletter Listmonk newsletter sync enableLandingPages GrapesJS landing page builder Media & Content enableMediaFeatures Video library, public gallery, analytics enableGalleryAds Promotional cards in the video gallery enableEvents Gancio event calendar integration Communication enableChat Rocket.Chat team coordination enableMeet Jitsi video meetings (integrates with Rocket.Chat) enableSms Termux Android SMS campaigns People & Engagement enablePeople Unified contacts CRM enableSocial Volunteer social connections and activity feeds autoSyncPeopleToMap Auto-create map locations from contact addresses Commerce enablePayments Stripe subscriptions, products, and donations","tags":["guide","admin","configuration"]},{"location":"docs/admin/settings/#notifications","title":"Notifications","text":"

Control which automated email notifications the platform sends. Disabling a notification stops future emails but does not affect already-queued jobs.

Admin alerts:

  • New shift signup
  • Response wall submission
  • Yard sign request (from canvassing)
  • Shift cancellation

Volunteer emails:

  • Canvass session summary (sent after completing a session)
  • Signup cancellation confirmation
  • 24-hour pre-shift reminder
  • Post-shift thank-you (sent 2 hours after shift ends)

Re-engagement:

  • Re-engagement emails for inactive volunteers
  • Configurable inactivity threshold (days without activity)
  • Configurable cooldown period (minimum days between re-engagement emails)
","tags":["guide","admin","configuration"]},{"location":"docs/admin/settings/#admin-routes","title":"Admin Routes","text":"
  • /app/settings \u2014 multi-tab settings page (supports deep-linking to a specific tab via router state)
","tags":["guide","admin","configuration"]},{"location":"docs/admin/advocacy/","title":"Advocacy","text":"

The advocacy module helps supporters contact their elected representatives through email campaigns.

","tags":["guide","admin","influence"]},{"location":"docs/admin/advocacy/#in-this-section","title":"In This Section","text":"
  • Campaigns \u2014 create and publish advocacy campaigns with postal code lookup and response tracking
  • Responses \u2014 moderate the public response wall where supporters share representative replies
  • Representatives \u2014 manage the representative lookup cache powered by the Represent API
  • Email Queue \u2014 monitor outgoing advocacy emails, retry failures, and view delivery stats
","tags":["guide","admin","influence"]},{"location":"docs/admin/advocacy/campaigns/","title":"Advocacy Campaigns","text":"

Help supporters contact their elected representatives through email campaigns.

","tags":["guide","admin","influence","campaigns"]},{"location":"docs/admin/advocacy/campaigns/#how-it-works","title":"How It Works","text":"
  1. An admin creates a campaign \u2014 writes the email subject and body, selects which government levels to target (federal, provincial, municipal, school board), and publishes it.
  2. A supporter visits the campaign page \u2014 enters their postal code to look up their representatives.
  3. The supporter sends the email \u2014 either directly through the platform (\"Send Now\") or by opening it in their own email app (Gmail, Outlook, etc.).
  4. Responses get tracked \u2014 supporters and admins can share representative responses on the Response Wall, with upvoting and moderation.
","tags":["guide","admin","influence","campaigns"]},{"location":"docs/admin/advocacy/campaigns/#key-features","title":"Key Features","text":"
  • Postal code lookup \u2014 powered by the Represent API, returns representatives at all government levels
  • Two send methods \u2014 server-sent SMTP (tracked) or mailto link (opens user's email app)
  • Email editing \u2014 optionally let supporters personalize the email before sending
  • Response Wall \u2014 public wall where people share how their representatives responded, with moderation and verification
  • Campaign stats \u2014 track emails sent, responses received, and upvotes
  • Featured campaigns \u2014 highlight important campaigns on the public listing page
","tags":["guide","admin","influence","campaigns"]},{"location":"docs/admin/advocacy/campaigns/#user-submitted-campaigns","title":"User-Submitted Campaigns","text":"

Registered (non-temporary) users can create their own advocacy campaigns and submit them for admin review.

  • Public submission route \u2014 users visit /campaigns/create to draft a campaign through a guided wizard
  • 3-step wizard \u2014 the submission flow walks users through campaign details (title, description, government levels), email template (subject and body), and a final review step before submitting
  • My campaigns dashboard \u2014 users can view and manage their submitted campaigns at /campaigns/mine, including checking moderation status and editing campaigns that have been sent back for changes
  • Restricted fields \u2014 user-submitted campaigns have limited options compared to admin-created ones (no SMTP sending, no highlight, no custom recipients); only the mailto link fallback is enabled by default
  • Auto-moderation status \u2014 newly submitted campaigns start in PENDING_REVIEW status and remain in DRAFT until an admin approves them
  • Edit restrictions \u2014 users can only edit their own campaigns, and only when the moderation status is PENDING_REVIEW or CHANGES_REQUESTED; editing automatically resets the status back to PENDING_REVIEW
  • Rate limiting \u2014 campaign submissions are rate-limited to 5 per hour per IP to prevent abuse
  • XSS protection \u2014 all user-supplied text (title, description, email subject, email body) is HTML-escaped before storage
","tags":["guide","admin","influence","campaigns"]},{"location":"docs/admin/advocacy/campaigns/#campaign-moderation","title":"Campaign Moderation","text":"

Admins review user-submitted campaigns before they go live.

  • Moderation queue \u2014 accessible at /app/campaign-moderation, showing all user-generated campaigns filtered by moderation status (pending, approved, rejected, changes requested)
  • Moderation actions \u2014 for each campaign in the queue, admins can:
    • Approve \u2014 sets the moderation status to APPROVED and the campaign status to ACTIVE, making it publicly visible
    • Reject \u2014 marks the campaign as REJECTED with an optional reason visible to the submitter
    • Request changes \u2014 sets the status to CHANGES_REQUESTED with feedback, allowing the user to revise and resubmit
  • Moderation stats \u2014 the queue page displays counters for total user-generated campaigns, pending reviews, approved, rejected, and changes-requested counts
  • Reviewer tracking \u2014 each moderation action records the reviewer's user ID and timestamp
  • Search and filter \u2014 the moderation queue supports searching by campaign title, submitter name, or email, and filtering by moderation status
","tags":["guide","admin","influence","campaigns"]},{"location":"docs/admin/advocacy/campaigns/#campaign-analytics","title":"Campaign Analytics","text":"

The Campaign Effectiveness dashboard provides cross-campaign performance analytics at /app/influence/effectiveness.

  • Performance tab \u2014 per-campaign KPIs including total emails sent, email delivery status breakdown, response counts, response rates, and call counts; top campaigns visualized as a horizontal bar chart
  • Representatives tab \u2014 tracks individual representative responsiveness across all campaigns; shows emails received, responses given, verified response count, and response rate per representative; sortable by response count, response rate, or name; includes government level distribution
  • Geography tab \u2014 engagement breakdown by geographic area; group results by postal code, city, or province; enriched with city/province data from the postal code cache
  • Funnel tab \u2014 conversion funnel visualization showing progression from emails sent to unique participants to responses received to verified responses, plus calls made; includes percentage-of-first and stage-to-stage dropoff rates
  • Trends tab \u2014 time-series activity chart showing daily or weekly email and response volumes; default view covers the last 30 days; merged email and response series for side-by-side comparison
  • Global filters \u2014 all tabs share campaign and date range filters; select a specific campaign or view aggregate data across all campaigns
","tags":["guide","admin","influence","campaigns"]},{"location":"docs/admin/advocacy/campaigns/#admin-routes","title":"Admin Routes","text":"
  • /app/campaigns \u2014 create, edit, and manage campaigns
  • /app/campaign-moderation \u2014 review and moderate user-submitted campaigns
  • /app/influence/effectiveness \u2014 campaign effectiveness analytics dashboard
  • /app/responses \u2014 moderate submitted responses
  • /app/email-queue \u2014 monitor outgoing email delivery
","tags":["guide","admin","influence","campaigns"]},{"location":"docs/admin/advocacy/campaigns/#public-routes","title":"Public Routes","text":"
  • /campaigns \u2014 browse active campaigns
  • /campaigns/create \u2014 submit a new user-generated campaign (requires login)
  • /campaigns/mine \u2014 view and manage your submitted campaigns (requires login)
  • /campaign/:slug \u2014 take action on a specific campaign
  • /campaign/:slug/responses \u2014 view the response wall
","tags":["guide","admin","influence","campaigns"]},{"location":"docs/admin/advocacy/email-queue/","title":"Email Queue","text":"

Monitor outgoing advocacy emails processed through the BullMQ queue.

","tags":["guide","admin","influence","email"]},{"location":"docs/admin/advocacy/email-queue/#key-features","title":"Key Features","text":"
  • Queue dashboard \u2014 view pending, active, completed, and failed jobs at /app/email-queue
  • Job details \u2014 inspect individual email jobs with recipient, subject, status, and timestamps
  • Retry failed jobs \u2014 re-queue emails that failed due to SMTP errors or timeouts
  • Clear completed \u2014 bulk-remove completed jobs to keep the queue clean
  • Stats \u2014 total sent, delivery rate, and average processing time
","tags":["guide","admin","influence","email"]},{"location":"docs/admin/advocacy/email-queue/#admin-routes","title":"Admin Routes","text":"
  • /app/email-queue \u2014 email queue monitoring and management
","tags":["guide","admin","influence","email"]},{"location":"docs/admin/advocacy/representatives/","title":"Representatives","text":"

The platform uses the Represent API to look up elected representatives by postal code across all government levels.

","tags":["guide","admin","influence"]},{"location":"docs/admin/advocacy/representatives/#how-it-works","title":"How It Works","text":"
  • Postal code lookup \u2014 enter a Canadian postal code to retrieve federal, provincial, municipal, and school board representatives
  • Redis cache \u2014 lookup results are cached to reduce API calls and improve response times
  • Cache management \u2014 view cache status and clear entries from /app/representatives
  • Government levels \u2014 campaigns can target specific levels (federal, provincial, municipal, school board)
","tags":["guide","admin","influence"]},{"location":"docs/admin/advocacy/representatives/#admin-routes","title":"Admin Routes","text":"
  • /app/representatives \u2014 representative cache management and lookup testing
","tags":["guide","admin","influence"]},{"location":"docs/admin/advocacy/responses/","title":"Response Moderation","text":"

Review and moderate representative responses submitted by supporters on the public response wall.

","tags":["guide","admin","influence","moderation"]},{"location":"docs/admin/advocacy/responses/#key-features","title":"Key Features","text":"
  • Moderation queue \u2014 review submissions at /app/responses with filtering by campaign and status
  • Verification \u2014 mark responses as verified to display a trust badge on the public wall
  • Upvoting \u2014 supporters can upvote responses; counts are visible on the public wall
  • Approve / reject \u2014 control which responses appear publicly
  • Response stats \u2014 track response counts per campaign and per representative
","tags":["guide","admin","influence","moderation"]},{"location":"docs/admin/advocacy/responses/#admin-routes","title":"Admin Routes","text":"
  • /app/responses \u2014 response moderation dashboard
","tags":["guide","admin","influence","moderation"]},{"location":"docs/admin/broadcast/","title":"Broadcast","text":"

Reach supporters through multiple channels \u2014 email newsletters, templated campaigns, and SMS text messages.

","tags":["guide","admin","broadcast"]},{"location":"docs/admin/broadcast/#in-this-section","title":"In This Section","text":"
  • Newsletter \u2014 Listmonk integration with automatic subscriber sync from shifts, campaigns, and contacts
  • Email Templates \u2014 reusable templates with variable substitution, version history, and test sending
  • SMS \u2014 text message campaigns via a Termux Android bridge with contact lists and response tracking
","tags":["guide","admin","broadcast"]},{"location":"docs/admin/broadcast/email-templates/","title":"Email Templates","text":"

Create reusable email templates with variable substitution for campaign communications. Templates are used by advocacy campaigns, shift confirmations, volunteer re-engagement emails, and other automated communications.

","tags":["guide","admin","broadcast","email"]},{"location":"docs/admin/broadcast/email-templates/#template-categories","title":"Template Categories","text":"

Each template belongs to a category that determines where it can be used:

  • INFLUENCE -- advocacy campaign emails sent to representatives
  • MAP -- shift confirmation, volunteer thank-you, and canvassing-related emails
  • SYSTEM -- account verification, password reset, and platform notifications
  • PAYMENT -- donation receipts, subscription confirmations, and purchase orders
","tags":["guide","admin","broadcast","email"]},{"location":"docs/admin/broadcast/email-templates/#variable-system","title":"Variable System","text":"

Templates use Handlebars-style {{VARIABLE_NAME}} placeholders that are replaced at send time. Variables must use uppercase letters and underscores (e.g., {{RECIPIENT_NAME}}, {{CAMPAIGN_TITLE}}).

  • Text variables -- simple string substitution for names, dates, URLs, and other text
  • Video variables -- embed a media library video by referencing its ID
  • Conditional blocks -- show or hide content with {{#if VARIABLE}}...{{/if}} syntax
  • Required vs optional -- each variable can be marked as required, with sample values for test emails

The template validator automatically extracts all variables from the HTML, text, and subject line content and checks for unmatched conditional blocks.

","tags":["guide","admin","broadcast","email"]},{"location":"docs/admin/broadcast/email-templates/#version-history","title":"Version History","text":"

Every change to a template's subject line, HTML content, or text content creates a new version. The full version history is preserved, and any previous version can be restored:

  • Version browsing -- view the subject, HTML, and text content of any past version
  • Rollback -- restore a previous version (creates a new version entry, preserving the audit trail)
  • Change notes -- each version includes a description of what changed
  • Author tracking -- versions record which admin made each change
","tags":["guide","admin","broadcast","email"]},{"location":"docs/admin/broadcast/email-templates/#test-emails","title":"Test Emails","text":"

Before activating a template, send a test email to verify rendering:

  • Variable substitution -- provide test data for each variable to preview the final output
  • Recipient selection -- send the test to any email address
  • Test log -- all test sends are logged with success/failure status and message IDs
  • Rate limited -- 10 test emails per 15 minutes per user to prevent abuse
","tags":["guide","admin","broadcast","email"]},{"location":"docs/admin/broadcast/email-templates/#template-caching","title":"Template Caching","text":"

Rendered templates are cached in memory for performance. The cache is automatically cleared when a template is created, updated, or deleted. Admins can also manually clear the cache from the admin interface.

","tags":["guide","admin","broadcast","email"]},{"location":"docs/admin/broadcast/email-templates/#admin-routes","title":"Admin Routes","text":"
  • /app/email-templates -- create and manage email templates with a visual editor
","tags":["guide","admin","broadcast","email"]},{"location":"docs/admin/broadcast/newsletter/","title":"Newsletter (Listmonk)","text":"

Integrated with Listmonk for opt-in mailing lists and newsletter campaigns. Enable with LISTMONK_SYNC_ENABLED=true.

","tags":["guide","admin","broadcast","email"]},{"location":"docs/admin/broadcast/newsletter/#managed-lists","title":"Managed Lists","text":"

The platform automatically creates and maintains 13 subscriber lists in Listmonk:

List Name Source Tags All Contacts All synced records v2 Campaign Participants Users who sent advocacy emails v2, influence Locations - All Address occupants with email v2, map Support Level 1-4 Addresses by canvass support level v2, map, support Has Campaign Sign Addresses with a yard sign v2, map, signs Users Active non-temp platform accounts v2, users Volunteers Shift signups v2, map, shifts Canvassers Users who completed canvass sessions v2, map, canvass Subscribers Active paid subscribers v2, payments Donors Users who completed a donation v2, payments","tags":["guide","admin","broadcast","email"]},{"location":"docs/admin/broadcast/newsletter/#bulk-sync","title":"Bulk Sync","text":"

The admin panel provides a manual \"Sync All\" action that synchronizes four data sources to Listmonk:

  1. Campaign participants -- distinct email senders from advocacy campaigns
  2. Location contacts -- address occupants with email, mapped to support level and sign lists
  3. Users -- active platform accounts (excludes TEMP users)
  4. CRM tags -- contacts tagged in the People module, synced to tag-linked Listmonk lists

Each source upserts subscribers (creates new or merges into existing), preserving existing list memberships and merging metadata attributes.

","tags":["guide","admin","broadcast","email"]},{"location":"docs/admin/broadcast/newsletter/#event-driven-sync","title":"Event-Driven Sync","text":"

In addition to bulk sync, the platform fires real-time subscriber upserts on application events:

  • Shift signup -- adds to Volunteers list
  • Canvass session completed -- adds to Canvassers list
  • Campaign email sent -- adds to Campaign Participants list
  • Subscription activated -- adds to Subscribers list
  • Donation completed -- adds to Donors list
  • Product purchased -- adds to Donors list
  • Address updated (canvass visit) -- updates support level list membership
  • Re-engagement email sent -- updates Volunteers list metadata
  • CRM tag changed -- adds/removes from tag-linked Listmonk lists

All event-driven syncs are fire-and-forget and silently fail if Listmonk is unreachable.

","tags":["guide","admin","broadcast","email"]},{"location":"docs/admin/broadcast/newsletter/#admin-routes","title":"Admin Routes","text":"
  • /app/listmonk (sidebar: \"Newsletter\") -- sync status, subscriber counts, campaign stats, and manual sync trigger
","tags":["guide","admin","broadcast","email"]},{"location":"docs/admin/broadcast/sms/","title":"SMS Campaigns","text":"

Text message outreach via a Termux Android bridge. Uses a real Android phone to send and receive SMS \u2014 no third-party SMS gateway or Twilio account needed.

Enable with ENABLE_SMS=true or via the setup wizard.

","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#architecture-overview","title":"Architecture Overview","text":"

The SMS system uses a three-tier architecture where your server communicates with a lightweight Python Flask API running on an Android phone:

graph LR\n    A[Admin Dashboard<br/>Campaign UI] -->|API calls| B[Express API<br/>BullMQ Queue]\n    B -->|HTTP + API Key| C[Android Phone<br/>Flask on Termux]\n    C -->|termux-sms-send| D[Android SMS]\n    D -->|Carrier Network| E[Recipients]\n    E -->|Reply SMS| D\n    D -->|termux-sms-list| C\n    C -->|HTTP response| B

Why this approach?

  • No SaaS dependency \u2014 your phone is the SMS gateway, no Twilio/MessageBird/etc.
  • Real phone number \u2014 recipients see a real number, not a short code
  • Two-way messaging \u2014 incoming replies sync automatically
  • Low cost \u2014 just your phone plan's SMS allowance
  • Full control \u2014 FOSS stack end-to-end
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#prerequisites","title":"Prerequisites","text":"

Before starting setup, you'll need:

Item Details Android phone Any Android 7+ device with an active SIM card and SMS plan Termux Terminal emulator \u2014 install from F-Droid (not Play Store) Termux:API Termux plugin for SMS/contacts/battery \u2014 install from F-Droid Tailscale (recommended) VPN mesh for stable IP \u2014 install from Play Store Network access Phone must be reachable from the server (Tailscale, LAN, or port forwarding)

Both Apps MUST Come from F-Droid

The Play Store version of Termux is abandoned and incompatible with the API plugin. If you install Termux from the Play Store and Termux:API from F-Droid (or vice versa), SMS commands will fail with:

Termux:API is not yet available on Google Play

Fix: Uninstall both apps, then reinstall both from F-Droid. They must come from the same source because Android verifies matching app signatures for inter-process communication.

","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#phone-setup","title":"Phone Setup","text":"","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#step-1-install-apps-from-f-droid","title":"Step 1: Install Apps from F-Droid","text":"

On your Android phone:

  1. Install F-Droid \u2014 download from f-droid.org if you don't have it
  2. Install Termux \u2014 search in F-Droid and install
  3. Install Termux:API \u2014 search in F-Droid and install
  4. Install Termux:Boot (optional) \u2014 for auto-start on phone reboot. Open once after install to register.
  5. Install Tailscale (recommended) \u2014 from Play Store, connect to your tailnet for a stable IP

termux-api package

You need two things called \"termux-api\": the F-Droid app (Termux:API) and the Termux package (pkg install termux-api). The setup script installs the package automatically, but the F-Droid app must be installed manually.

","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#step-2-generate-api-key","title":"Step 2: Generate API Key","text":"

Go to the admin dashboard SMS Setup page (/app/sms/setup) and click Generate API Key. Copy the key \u2014 you'll paste it into the setup command.

","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#step-3-run-the-setup-script","title":"Step 3: Run the Setup Script","text":"

Open Termux on the phone and run:

# Clone the SMS server (first time only)\npkg install -y git && git clone https://gitea.bnkops.com/admin/campaign_connector.git ~/sms-server\n\n# Run the setup script \u2014 paste your API key at the end\nbash ~/sms-server/android/setup.sh YOUR_API_KEY_HERE\n

The setup script automatically:

  • Installs Python, Flask, termux-api, and openssh
  • Saves the API key to ~/.bashrc
  • Requests SMS and Contacts permissions (tap Allow when prompted)
  • Creates a Termux:Boot auto-start script (if Termux:Boot is installed)
  • Starts the SMS server

When done, note the Phone URL displayed (e.g. http://100.64.0.5:5001).

","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#recommended-install-service-supervisor","title":"Recommended: Install Service Supervisor","text":"

After initial setup, install termux-services for reliable process management. This uses runit, a proper UNIX service supervisor that automatically restarts the server if it crashes:

cd ~/sms-server && bash android/setup-services.sh\n

This registers two supervised services:

  • sms-api \u2014 Flask SMS API server (port 5001)
  • sshd-custom \u2014 SSH daemon for remote management (port 8022)
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#step-4-prevent-android-from-killing-termux","title":"Step 4: Prevent Android from Killing Termux","text":"

This is required for the server to run reliably in the background:

  1. Open Android Settings \u2192 Apps \u2192 Termux \u2192 Battery \u2192 set to Unrestricted
  2. Lock Termux in the recent apps view (long-press the app card \u2192 Lock/Pin)
  3. Samsung phones: also add Termux to Settings \u2192 Device Care \u2192 Battery \u2192 Never Sleeping Apps
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#updating","title":"Updating","text":"

To pull the latest server code and re-run setup:

cd ~/sms-server && git pull && bash android/setup.sh YOUR_API_KEY_HERE\n
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#service-management","title":"Service Management","text":"

If you installed termux-services (recommended):

# Check status\nsv status sms-api\n\n# Restart\nsv restart sms-api\n\n# Stop\nsv down sms-api\n\n# Start\nsv up sms-api\n\n# View logs\ntail -f ~/logs/sms-api.log\n\n# Health check\ncurl http://127.0.0.1:5001/health\n

Without termux-services (legacy watchdog):

# Check if the server is running\ncurl http://127.0.0.1:5001/health\n\n# Restart manually\ncd ~/sms-server/android && bash sms-watchdog.sh\n
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#accessing-the-phone","title":"Accessing the Phone","text":"

There are several ways to run commands on the phone:

","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#direct-on-phone","title":"Direct (on phone)","text":"

Simply open the Termux app and type commands. Best for initial setup.

","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#ssh-remote-access","title":"SSH (remote access)","text":"

Start the SSH server in Termux, then connect from your computer:

# On the phone (first time only):\npkg install openssh\npasswd  # Set a password\nsshd    # Start SSH server on port 8022\n\n# From your computer:\nssh -p 8022 your-phone-ip\n# Or with Tailscale:\nssh -p 8022 100.x.x.x\n
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#scrcpy-screen-mirror","title":"scrcpy (screen mirror)","text":"

Mirror the phone screen to your computer \u2014 great for setup:

# Install scrcpy on your computer (Ubuntu)\nsudo apt install scrcpy\n\n# Connect via USB\nscrcpy\n\n# Or wireless (phone must be on same network)\nscrcpy --tcpip=phone-ip:5555\n
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#setup-wizard","title":"Setup Wizard","text":"

The admin panel provides a guided three-step wizard at /app/sms/setup:

","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#step-1-prepare-phone","title":"Step 1: Prepare Phone","text":"

Walks you through installing apps, cloning the server, setting the API key, and starting the Flask server. Generates a shared API key that both the server and phone use for authentication.

","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#step-2-connect","title":"Step 2: Connect","text":"

Choose how to find your phone's IP address:

Tailscale Auto-Discovery (Recommended)Manual URL Entry
  1. Enter your Tailscale API key (tskey-api-...)
  2. Click Discover Devices
  3. The wizard queries the Tailscale API and lists all devices on your tailnet
  4. Select your Android phone \u2014 the URL auto-fills with its stable 100.x.x.x IP

Getting a Tailscale API Key

Go to Tailscale Admin Console \u2192 Settings \u2192 Keys \u2192 Generate auth key or API access token.

Enter the phone's URL directly:

  • With Tailscale: http://100.x.x.x:5001 (stable IP, works across networks)
  • On same LAN: http://192.168.x.x:5001 (changes if phone reconnects)
  • Via port forward: http://your-public-ip:5001 (requires router config)
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#step-3-test-save","title":"Step 3: Test & Save","text":"
  1. Click Test Connection \u2014 the wizard calls the phone's /health endpoint
  2. On success, you'll see device uptime and message count
  3. Click Save Configuration \u2014 stores the URL and key encrypted in the database
  4. The enableSms feature flag is automatically enabled
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#how-it-works","title":"How It Works","text":"","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#sending-messages","title":"Sending Messages","text":"
  1. Admin creates an SMS campaign with a message template and contact list
  2. Campaign is started \u2192 messages are queued in BullMQ (one at a time, serial delivery)
  3. For each message, the Express API calls POST /api/sms/send on the phone
  4. The Flask server on the phone executes termux-sms-send to send via Android's native SMS
  5. A notification appears on the phone for each sent message
  6. Results are tracked in the database (success/failure per recipient)
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#receiving-responses","title":"Receiving Responses","text":"

A background service (sms-response-sync.service.ts) polls the phone's inbox at a configurable interval:

  1. Calls GET /api/sms/inbox?since=<last_sync_timestamp> on the phone
  2. The Flask server runs termux-sms-list to get new messages
  3. Incoming messages are matched to contacts and classified by keyword
  4. Threaded conversations are maintained per contact
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#device-monitoring","title":"Device Monitoring","text":"

A background service (sms-device-monitor.service.ts) checks phone health periodically:

  • Battery level, charging status, temperature
  • Server uptime and total messages sent
  • Connection status (available/unreachable)
  • Results displayed on the SMS Dashboard
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#key-features","title":"Key Features","text":"
  • Contact lists \u2014 import, tag, and segment contacts for targeted outreach
  • Message templates \u2014 reusable templates with {name} variable placeholders
  • BullMQ queue \u2014 serial delivery with configurable delays between messages
  • Response sync \u2014 incoming SMS replies synced and classified automatically
  • Device monitoring \u2014 battery, uptime, and connectivity reported in real-time
  • Conversation view \u2014 threaded message history per contact
  • Retry logic \u2014 configurable retry attempts for failed deliveries
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#admin-routes","title":"Admin Routes","text":"Route Description /app/sms/setup Guided setup wizard with Tailscale auto-discovery /app/sms SMS dashboard \u2014 campaign overview and device status /app/sms/contacts Manage contact lists and entries /app/sms/campaigns Create and monitor SMS campaigns /app/sms/conversations View threaded conversations with contacts","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#configuration","title":"Configuration","text":"","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#environment-variables","title":"Environment Variables","text":"Variable Default Description ENABLE_SMS false Feature flag (also set via setup wizard) TERMUX_API_URL \u2014 Phone URL, e.g. http://100.x.x.x:5001 TERMUX_API_KEY \u2014 Shared API key for authentication SMS_DELAY_BETWEEN_MS 1000 Delay between messages in a campaign (ms) SMS_MAX_RETRIES 3 Retry attempts for failed sends SMS_RESPONSE_SYNC_INTERVAL_MS 10000 How often to check for incoming replies (ms) SMS_DEVICE_MONITOR_INTERVAL_MS 30000 How often to check device health (ms) TAILSCALE_API_KEY \u2014 Tailscale API key for auto-discovery TAILSCALE_TAILNET \u2014 Tailscale tailnet name (optional)

Note

When you use the setup wizard, configuration is stored in the database and takes priority over environment variables. You don't need to set env vars if you use the wizard.

","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#phone-side-configuration","title":"Phone-Side Configuration","text":"

On the phone, only one environment variable is needed:

export SMS_API_SECRET='your-64-char-hex-key'\n

The Flask server also accepts TERMUX_API_KEY as an alias for backwards compatibility.

","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#phone-api-endpoints","title":"Phone API Endpoints","text":"

The Flask server running on the phone exposes these endpoints on port 5001:

Method Endpoint Auth Description GET /health No Server status, uptime, messages sent GET / No Web dashboard with endpoint documentation POST /api/sms/send Yes Send an SMS message POST /api/sms/send-reply Yes Send a reply with conversation tracking GET /api/sms/inbox No Get incoming messages (with since filter) GET /api/sms/list No List messages with pagination GET /api/sms/history No Get SMS history for a phone number GET /api/device/battery No Battery level, health, temperature GET /api/device/location No GPS coordinates (requires permission) GET /api/device/info No Device info + battery + uptime GET /api/contacts/list No Phone address book (with search) POST /api/campaign/notify No Push notification to device

Authentication uses the X-API-Key header with the shared secret.

","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#troubleshooting","title":"Troubleshooting","text":"","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#phone-cant-be-reached","title":"Phone can't be reached","text":"

Symptoms: Test connection fails, \"Connection refused\" or timeout.

Checks:

  1. Is the Flask server running? Check Termux \u2014 you should see the startup banner
  2. Is the IP correct? Run ifconfig in Termux to find the current IP
  3. Are they on the same network? If not using Tailscale, both must be on the same LAN
  4. Is Tailscale connected? Check the Tailscale app on the phone \u2014 it should show \"Connected\"
  5. Firewall? Android rarely blocks incoming connections on Termux, but check if any firewall app is installed
# Quick test from your server\ncurl http://PHONE_IP:5001/health\n
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#authentication-required-errors","title":"\"Authentication required\" errors","text":"

Symptoms: API calls return 401 with \"Authentication required\".

Fix: The API key on the phone doesn't match the one in the admin panel.

# On the phone, check the current key\necho $SMS_API_SECRET\n\n# If it doesn't match, update it\nexport SMS_API_SECRET='correct-key-from-admin-panel'\necho 'export SMS_API_SECRET=\"correct-key-from-admin-panel\"' >> ~/.bashrc\n\n# Restart the server\nsv restart sms-api\n# Or without termux-services: pkill -f termux-sms-api-server.py && cd ~/sms-server/android && python termux-sms-api-server.py\n
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#sms-not-sending","title":"SMS not sending","text":"

Symptoms: Server responds successfully but messages don't arrive.

Checks:

  1. SMS permissions granted? Go to Android Settings \u2192 Apps \u2192 Termux:API \u2192 Permissions \u2192 SMS
  2. Active SIM card? The phone needs a working SIM with SMS capability
  3. Message too long? Maximum 1600 characters per message
  4. Rate limited? Minimum 1 second between messages (carrier may enforce longer delays)
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#termux-keeps-getting-killed","title":"Termux keeps getting killed","text":"

Symptoms: Server stops after some time, especially when phone screen is off.

Fix:

  1. Install termux-services (if not already): bash ~/sms-server/android/setup-services.sh \u2014 this uses runit, a proper service supervisor that auto-restarts the server immediately if it crashes
  2. Disable battery optimization: Android Settings \u2192 Apps \u2192 Termux \u2192 Battery \u2192 Unrestricted
  3. Lock Termux in recent apps \u2014 long-press the app card \u2192 Lock/Pin
  4. Samsung: also add Termux, Termux:API, and Termux:Boot to Settings \u2192 Device Care \u2192 Battery \u2192 Never Sleeping Apps
  5. Acquire wake lock: Run termux-wake-lock in Termux (included in boot script)
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#server-wont-start-missing-sms_api_secret","title":"Server won't start \u2014 \"Missing SMS_API_SECRET\"","text":"

Symptoms: Server exits immediately with a security error.

Fix: Set the API key environment variable:

# Generate a new key if you don't have one\npython -c \"import secrets; print(secrets.token_hex(32))\"\n\n# Set it\nexport SMS_API_SECRET='your-generated-key'\necho 'export SMS_API_SECRET=\"your-key\"' >> ~/.bashrc\n
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#rcs-chat-features-interfering-with-replies","title":"RCS / Chat Features interfering with replies","text":"

Symptoms: You send SMS messages successfully but some or all replies never appear in the system. Recipients say they replied, but the conversation shows no inbound messages.

Cause: Google Messages enables RCS (Rich Communication Services) by default. When RCS is active, replies from recipients who also have RCS may be sent over data/Wi-Fi instead of the carrier SMS channel. The Termux server only reads the SMS inbox via termux-sms-list, so RCS messages are invisible to it.

Fix: Disable RCS on the SMS phone:

  1. Open Google Messages on the phone
  2. Tap the profile icon (top right) \u2192 Messages settings
  3. Tap RCS chats (or \"Chat features\")
  4. Turn off \"Turn on RCS chats\"

This must be done on the phone running the SMS server

Disabling RCS on the server phone forces all outgoing messages to use plain SMS, and ensures replies also come back as SMS. You do not need recipients to change anything on their end \u2014 when the server phone sends a plain SMS, the reply will be plain SMS as well (unless the recipient's carrier forces RCS-only, which is rare).

Additional checks:

  • Some carriers (e.g. Google Fi, Jio) enable RCS at the carrier level. If disabling in the app doesn't help, contact the carrier to disable RCS on the SIM.
  • If the phone has Samsung Messages instead of Google Messages, go to Samsung Messages \u2192 Settings \u2192 Chat settings \u2192 turn off.
  • After disabling RCS, restart the phone and verify by sending a test message \u2014 the send button should show an SMS label, not \"Chat\".
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/broadcast/sms/#updating-the-sms-server","title":"Updating the SMS server","text":"

To pull the latest version of the server code:

cd ~/sms-server\ngit pull\n\n# Restart the server\nsv restart sms-api\n# Or without termux-services: pkill -f termux-sms-api-server.py && cd android && python termux-sms-api-server.py\n
","tags":["guide","admin","broadcast","sms"]},{"location":"docs/admin/map/","title":"Map & Canvassing","text":"

Manage locations, organize canvassing territories, schedule volunteer shifts, and coordinate door-to-door outreach.

","tags":["guide","admin","map"]},{"location":"docs/admin/map/#in-this-section","title":"In This Section","text":"
  • Locations \u2014 import addresses via CSV or NAR, geocode with multiple providers, and manage the location database
  • Areas \u2014 draw polygon territories on the map to organize canvassing regions
  • Shifts \u2014 schedule volunteer time slots with recurring patterns and calendar views
  • Canvassing \u2014 canvass dashboard, walk sheets, contact export, and session management
  • Data Quality \u2014 geocoding quality metrics, provider distribution, and confidence analysis
  • Map Settings \u2014 configure map center, zoom level, and QR code links
","tags":["guide","admin","map"]},{"location":"docs/admin/map/areas/","title":"Areas (Cuts)","text":"

Draw polygon regions on the map to define canvassing territories. Areas organize locations into manageable chunks for volunteers.

","tags":["guide","admin","map","canvassing"]},{"location":"docs/admin/map/areas/#key-features","title":"Key Features","text":"
  • Polygon drawing \u2014 use the map editor at /app/map/cuts to draw, edit, and delete area boundaries
  • Automatic association \u2014 locations within an area's polygon boundary are automatically linked
  • Area stats \u2014 total addresses, visited count, coverage percentage per area
  • Color coding \u2014 assign colors to visually distinguish areas on the map
","tags":["guide","admin","map","canvassing"]},{"location":"docs/admin/map/areas/#area-import-wizard","title":"Area Import Wizard","text":"

Bulk-import addresses into an area from multiple data sources:

  • OpenStreetMap (OSM) \u2014 pull building addresses from Nominatim within the area
  • NAR (National Address Register) \u2014 import from the Canadian federal address dataset
  • Reverse geocode grid \u2014 generate a grid of points and reverse-geocode to discover addresses
  • Deduplication \u2014 imported addresses are checked against existing locations to avoid duplicates
  • Progress tracking \u2014 real-time status per source during import
","tags":["guide","admin","map","canvassing"]},{"location":"docs/admin/map/areas/#admin-routes","title":"Admin Routes","text":"
  • /app/map/cuts \u2014 draw and manage canvassing areas
  • /app/map/cuts/:id/export \u2014 printable location report for a cut
","tags":["guide","admin","map","canvassing"]},{"location":"docs/admin/map/canvassing/","title":"Canvassing","text":"

Coordinate and monitor volunteer door-to-door outreach with the canvass dashboard, walk sheets, and contact export tools.

","tags":["guide","admin","map","canvassing"]},{"location":"docs/admin/map/canvassing/#canvass-dashboard","title":"Canvass Dashboard","text":"

From /app/map/canvass:

  • Active sessions \u2014 see which volunteers are currently canvassing and their real-time positions
  • Leaderboard \u2014 volunteer rankings by visit count
  • Activity feed \u2014 recent visit outcomes across all areas
  • Stats \u2014 total sessions, visits recorded, and outcome breakdowns
","tags":["guide","admin","map","canvassing"]},{"location":"docs/admin/map/canvassing/#walk-sheets-exports","title":"Walk Sheets & Exports","text":"
  • Walk sheet \u2014 printable form at /app/map/walk-sheet with space for recording visit outcomes; includes up to 3 configurable QR codes
  • Cut export \u2014 printable location report at /app/map/cuts/:id/export for a specific canvassing area
","tags":["guide","admin","map","canvassing"]},{"location":"docs/admin/map/canvassing/#canvass-contact-export","title":"Canvass Contact Export","text":"

Bridge canvassing data with advocacy campaigns:

  • Filter by outcome \u2014 include specific visit outcomes (spoke with, left literature, come back later)
  • Support level range \u2014 filter by recorded support level
  • Area selection \u2014 limit export to specific areas
  • Campaign targeting \u2014 export contacts as recipients for an advocacy campaign
","tags":["guide","admin","map","canvassing"]},{"location":"docs/admin/map/canvassing/#admin-routes","title":"Admin Routes","text":"
  • /app/map/canvass \u2014 canvass dashboard
  • /app/map/walk-sheet \u2014 printable walk sheet
","tags":["guide","admin","map","canvassing"]},{"location":"docs/admin/map/data-quality/","title":"Data Quality","text":"

Monitor geocoding accuracy and coverage from /app/map/data-quality.

","tags":["guide","admin","map","analytics"]},{"location":"docs/admin/map/data-quality/#key-metrics","title":"Key Metrics","text":"
  • Geocoding success rate \u2014 percentage of locations with valid coordinates
  • Provider distribution \u2014 breakdown of which geocoding provider was used per location
  • Confidence scores \u2014 distribution of geocoding confidence levels across the dataset
  • Missing data \u2014 locations without coordinates, postal codes, or province assignments
  • Bulk re-geocode \u2014 re-process failed or low-confidence locations with a different provider
","tags":["guide","admin","map","analytics"]},{"location":"docs/admin/map/data-quality/#admin-routes","title":"Admin Routes","text":"
  • /app/map/data-quality \u2014 geocoding quality dashboard
","tags":["guide","admin","map","analytics"]},{"location":"docs/admin/map/locations/","title":"Locations","text":"

Import addresses via CSV or the Canadian National Address Register (NAR), geocode them with multiple providers, and manage the location database.

","tags":["guide","admin","map","locations"]},{"location":"docs/admin/map/locations/#adding-locations","title":"Adding Locations","text":"
  • Click-to-add \u2014 click on the admin map to drop a new location marker
  • Form entry \u2014 manually enter address details
  • CSV import \u2014 upload a CSV with address columns; the system geocodes each row
  • NAR import \u2014 import Canadian National Address Register data with province, city, postal code, and residential-only filters
","tags":["guide","admin","map","locations"]},{"location":"docs/admin/map/locations/#geocoding","title":"Geocoding","text":"

Locations are geocoded automatically using a multi-provider system supporting Nominatim, ArcGIS, Photon, Mapbox, Google, and LocationIQ. Failed entries can be re-geocoded individually or in bulk.

","tags":["guide","admin","map","locations"]},{"location":"docs/admin/map/locations/#bulk-operations","title":"Bulk Operations","text":"

Select multiple locations for:

  • Re-geocoding with a different provider
  • Tagging or re-tagging
  • Deletion
  • CSV export
","tags":["guide","admin","map","locations"]},{"location":"docs/admin/map/locations/#admin-routes","title":"Admin Routes","text":"
  • /app/map \u2014 location CRUD, CSV import/export, geocoding, area import wizard
","tags":["guide","admin","map","locations"]},{"location":"docs/admin/map/settings/","title":"Map Settings","text":"

Configure the default map view and QR code links from /app/map/settings.

","tags":["guide","admin","map","configuration"]},{"location":"docs/admin/map/settings/#settings","title":"Settings","text":"
  • Map center \u2014 latitude and longitude for the default map center point
  • Default zoom \u2014 initial zoom level when maps load (1-18)
  • QR code links \u2014 up to 3 configurable URLs that appear as QR codes on printed walk sheets (e.g., campaign page, shift signup, volunteer portal)
","tags":["guide","admin","map","configuration"]},{"location":"docs/admin/map/settings/#admin-routes","title":"Admin Routes","text":"
  • /app/map/settings \u2014 map configuration
","tags":["guide","admin","map","configuration"]},{"location":"docs/admin/map/shifts/","title":"Shifts","text":"

Schedule volunteer time slots and let people sign up through a public page. Shifts can be linked to specific areas so volunteers know where they'll be canvassing.

","tags":["guide","admin","map","shifts"]},{"location":"docs/admin/map/shifts/#creating-shifts","title":"Creating Shifts","text":"
  • Single shifts \u2014 set date, time, location description, and optional area assignment
  • Recurring shifts \u2014 create series with daily, weekly, or monthly frequency; weekly allows specific day selection
  • Calendar view \u2014 dedicated calendar tab showing shifts by date; click any date to create a new shift pre-filled
","tags":["guide","admin","map","shifts"]},{"location":"docs/admin/map/shifts/#series-management","title":"Series Management","text":"
  • Edit modes \u2014 when editing a recurring shift, choose: this shift only, this and future, or all in series
  • Date range \u2014 define start and optional end date; generates up to 12 weeks (capped at 100 shifts)
  • Detach \u2014 remove a shift from its series to edit independently
","tags":["guide","admin","map","shifts"]},{"location":"docs/admin/map/shifts/#signups","title":"Signups","text":"
  • Signup drawer \u2014 view all signups for a shift in the admin panel
  • Capacity \u2014 optionally set maximum volunteer count per shift
  • Confirmation emails \u2014 automatic email sent when a volunteer signs up or cancels
","tags":["guide","admin","map","shifts"]},{"location":"docs/admin/map/shifts/#admin-routes","title":"Admin Routes","text":"
  • /app/map/shifts \u2014 shift CRUD, calendar view, signup management
","tags":["guide","admin","map","shifts"]},{"location":"docs/admin/media/","title":"Media","text":"

Upload, organize, and share campaign videos and photos with built-in analytics and engagement features. Enable with enableMediaFeatures in Settings.

","tags":["guide","admin","media"]},{"location":"docs/admin/media/#in-this-section","title":"In This Section","text":"
  • Library \u2014 upload videos and photos, manage metadata, schedule publishing, and generate preview links
  • Analytics \u2014 view counts, watch time, completion rates, traffic sources, and viewer activity
  • Curated Gallery \u2014 playlists, shorts feed, and featured content for the public gallery
  • Moderation \u2014 comment review, word filters, and content moderation tools
  • Gallery Ads \u2014 promotional cards with audience targeting, scheduling, and click-through analytics
","tags":["guide","admin","media"]},{"location":"docs/admin/media/ads/","title":"Gallery Ads","text":"

Create promotional cards that appear in the public media gallery and documentation site. Manage from /app/media/ads.

","tags":["guide","admin","media"]},{"location":"docs/admin/media/ads/#key-features","title":"Key Features","text":"
  • Ad CRUD \u2014 create ads with title, description, image, and click-through URL
  • Placement targeting \u2014 assign ads to specific placements (gallery sidebar, gallery feed, docs sidebar)
  • Scheduling \u2014 set start and end dates for time-limited promotions
  • Click tracking \u2014 view impressions and click-through rates per ad
  • Priority ordering \u2014 control which ads appear first when multiple are active
","tags":["guide","admin","media"]},{"location":"docs/admin/media/ads/#admin-routes","title":"Admin Routes","text":"
  • /app/media/ads \u2014 gallery ad management and analytics
","tags":["guide","admin","media"]},{"location":"docs/admin/media/analytics/","title":"Analytics","text":"

Track video engagement with GDPR-compliant analytics (IP hashing, 90-day retention).

","tags":["guide","admin","media","analytics"]},{"location":"docs/admin/media/analytics/#per-video-metrics","title":"Per-Video Metrics","text":"

Each video tracks:

  • View count and unique viewers
  • Average watch time and completion rate
  • Traffic sources \u2014 direct, embedded, shared
  • Registered viewer activity (when logged in)
","tags":["guide","admin","media","analytics"]},{"location":"docs/admin/media/analytics/#global-dashboard","title":"Global Dashboard","text":"

The analytics dashboard at /app/media/analytics provides:

  • Aggregate view counts across all videos
  • Top-performing content by views and completion rate
  • Viewer trends over time
  • Traffic source breakdown
","tags":["guide","admin","media","analytics"]},{"location":"docs/admin/media/analytics/#tracking","title":"Tracking","text":"

Public endpoints record engagement:

  • View initiation
  • 10-second heartbeat intervals
  • navigator.sendBeacon for reliable end-of-session reporting
","tags":["guide","admin","media","analytics"]},{"location":"docs/admin/media/analytics/#admin-routes","title":"Admin Routes","text":"
  • /app/media/analytics \u2014 global analytics dashboard
","tags":["guide","admin","media","analytics"]},{"location":"docs/admin/media/curated/","title":"Curated Gallery","text":"

Curate the public gallery experience with playlists, a shorts feed, and featured content.

","tags":["guide","admin","media","gallery"]},{"location":"docs/admin/media/curated/#playlists","title":"Playlists","text":"

From /app/media/curated:

  • Three types \u2014 admin playlists (managed), user playlists (personal), and public playlists (community)
  • Drag-reorder \u2014 arrange videos within a playlist
  • Featured carousel \u2014 feature playlists on the gallery homepage
  • Dedicated viewer \u2014 full playlist playback page with up-next queue
","tags":["guide","admin","media","gallery"]},{"location":"docs/admin/media/curated/#shorts-feed","title":"Shorts Feed","text":"

TikTok-style vertical video feed for clips under 60 seconds:

  • Automatic classification \u2014 videos under 60 seconds are flagged as shorts
  • Vertical feed \u2014 mobile-optimized swipeable interface at /gallery/shorts
  • Autoplay \u2014 continuous playback as viewers scroll
","tags":["guide","admin","media","gallery"]},{"location":"docs/admin/media/curated/#admin-routes","title":"Admin Routes","text":"
  • /app/media/curated \u2014 playlist management
","tags":["guide","admin","media","gallery"]},{"location":"docs/admin/media/library/","title":"Library","text":"

The media library at /app/media/library is where you upload, organize, and publish video and photo content.

","tags":["guide","admin","media","videos"]},{"location":"docs/admin/media/library/#video-upload","title":"Video Upload","text":"
  • Drag-and-drop \u2014 single or batch upload (up to 10GB per file)
  • Supported formats \u2014 MP4, MOV, AVI, MKV, WebM, M4V, FLV
  • Automatic metadata \u2014 FFprobe extracts duration, dimensions, orientation, quality, and audio info
  • Quick actions \u2014 hover a video card for Edit (E), Preview (P), Analytics (A), Schedule (S) keyboard shortcuts
","tags":["guide","admin","media","videos"]},{"location":"docs/admin/media/library/#photo-management","title":"Photo Management","text":"
  • Albums \u2014 organize photos into named collections with cover images
  • Bulk uploads \u2014 drag-and-drop multiple photos with automatic metadata extraction
  • Photo picker \u2014 insert photos into landing pages and email templates via a modal picker
","tags":["guide","admin","media","videos"]},{"location":"docs/admin/media/library/#scheduled-publishing","title":"Scheduled Publishing","text":"
  • Publish/unpublish dates \u2014 set future dates for automatic state changes
  • Timezone support \u2014 11 supported timezones
  • Calendar view \u2014 visualize scheduled items on the Calendar tab
  • BullMQ automation \u2014 jobs fire at scheduled times
","tags":["guide","admin","media","videos"]},{"location":"docs/admin/media/library/#preview-links","title":"Preview Links","text":"

Generate 24-hour JWT-authenticated preview links for unpublished videos \u2014 useful for stakeholder review before publishing.

","tags":["guide","admin","media","videos"]},{"location":"docs/admin/media/library/#admin-routes","title":"Admin Routes","text":"
  • /app/media/library \u2014 video and photo management
  • /app/media/jobs \u2014 processing job queue monitoring
","tags":["guide","admin","media","videos"]},{"location":"docs/admin/media/moderation/","title":"Moderation","text":"

Admin tools for reviewing and managing comments across all media content at /app/media/moderation.

","tags":["guide","admin","media","moderation"]},{"location":"docs/admin/media/moderation/#moderation-dashboard","title":"Moderation Dashboard","text":"
  • Filter by status \u2014 pending, safe, flagged, hidden
  • Status counts \u2014 summary stats showing total, pending, flagged, hidden, and safe comments
  • Search \u2014 filter by video, date range, or text content
","tags":["guide","admin","media","moderation"]},{"location":"docs/admin/media/moderation/#moderation-actions","title":"Moderation Actions","text":"

For each comment, admins can:

  • Approve \u2014 mark as safe and unhide if previously hidden
  • Hide \u2014 remove from public view with a reason (manual, word filter, spam, or link)
  • Unhide \u2014 restore a previously hidden comment
  • Delete \u2014 permanently remove
  • Add notes \u2014 internal moderation notes (not visible to users)
","tags":["guide","admin","media","moderation"]},{"location":"docs/admin/media/moderation/#word-filter","title":"Word Filter","text":"

A configurable list of words with severity levels:

Severity Action High Auto-blocks the comment Medium Auto-hides for review Low Flags for moderator attention Custom User-defined severity

The filter list is cached with a 1-minute TTL and invalidated on changes.

","tags":["guide","admin","media","moderation"]},{"location":"docs/admin/media/moderation/#admin-routes","title":"Admin Routes","text":"
  • /app/media/moderation \u2014 comment moderation and word filter management
","tags":["guide","admin","media","moderation"]},{"location":"docs/admin/payments/","title":"Payments","text":"

Accept memberships, product sales, and donations through Stripe. Enable with enablePayments in Settings.

","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/#in-this-section","title":"In This Section","text":"
  • Products \u2014 manage merchandise and one-time purchase items with inventory tracking
  • Donations \u2014 donation pages with goals, suggested amounts, and branded thank-you messages
  • Plans \u2014 recurring subscription plans with monthly and yearly billing
  • Settings \u2014 Stripe API key configuration with encrypted storage
","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/#how-it-works","title":"How It Works","text":"
  1. Enable payments in Settings or .env (ENABLE_PAYMENTS=true)
  2. Configure Stripe API keys in Settings > Payments (stored encrypted with ENCRYPTION_KEY)
  3. Payment widgets become available on landing pages and MkDocs pages
","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/donations/","title":"Donations","text":"

Create custom branded donation landing pages with independent branding and goals.

","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/donations/#donation-pages","title":"Donation Pages","text":"

From /app/donation-pages:

  • Custom branding \u2014 each page has its own title, description, and cover image
  • Configurable amounts \u2014 set suggested donation amounts per page
  • Thank-you messages \u2014 customizable post-donation confirmation
  • Public slugs \u2014 shareable URL at /donate/:slug
  • Goal tracking \u2014 fundraising goals with progress indicators
  • Multiple campaigns \u2014 run several pages simultaneously with independent tracking
","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/donations/#donation-management","title":"Donation Management","text":"

From /app/donations:

  • View all donations with date, amount, donor info, and status
  • Filter by donation page, date range, or amount
  • Export to CSV for accounting and tax receipts
","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/donations/#admin-routes","title":"Admin Routes","text":"
  • /app/donations \u2014 donation management
  • /app/donation-pages \u2014 donation page CRUD
","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/plans/","title":"Plans","text":"

Create and manage recurring subscription plans for campaign supporters at /app/plans.

","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/plans/#key-features","title":"Key Features","text":"
  • Tiered plans \u2014 multiple subscription tiers with different pricing and benefits
  • Billing cycles \u2014 monthly and yearly billing options
  • Stripe integration \u2014 subscriptions managed through Stripe for reliable recurring payments
  • Subscriber tracking \u2014 view active subscribers, MRR, and churn metrics
  • Public pricing page \u2014 plans displayed at /pricing
","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/plans/#admin-routes","title":"Admin Routes","text":"
  • /app/plans \u2014 subscription plan management
","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/products/","title":"Products","text":"

Manage campaign merchandise and one-time purchase items at /app/products.

","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/products/#key-features","title":"Key Features","text":"
  • Product CRUD \u2014 create products with title, description, price, and images
  • Inventory management \u2014 track stock levels and set low-stock alerts
  • Stripe checkout \u2014 seamless payment flow via Stripe
  • Public shop \u2014 products displayed at /shop for public browsing and purchase
","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/products/#admin-routes","title":"Admin Routes","text":"
  • /app/products \u2014 product management
","tags":["guide","admin","payments"]},{"location":"docs/admin/payments/settings/","title":"Payment Settings","text":"

Configure Stripe integration from Settings > Payments.

","tags":["guide","admin","payments","configuration"]},{"location":"docs/admin/payments/settings/#stripe-configuration","title":"Stripe Configuration","text":"
  • Publishable key \u2014 used by the frontend for Stripe Elements and Checkout
  • Secret key \u2014 used by the API for creating charges and managing subscriptions
  • Encrypted storage \u2014 both keys are stored encrypted in the database using the ENCRYPTION_KEY environment variable (AES encryption)
","tags":["guide","admin","payments","configuration"]},{"location":"docs/admin/payments/settings/#webhook","title":"Webhook","text":"

Stripe webhooks are automatically configured to handle:

  • Successful payments and subscription renewals
  • Failed payments and subscription cancellations
  • Refunds and disputes
","tags":["guide","admin","payments","configuration"]},{"location":"docs/admin/payments/settings/#admin-routes","title":"Admin Routes","text":"
  • /app/settings (Payments tab) \u2014 Stripe key configuration
","tags":["guide","admin","payments","configuration"]},{"location":"docs/admin/services/","title":"Services","text":"

Manage the platform's infrastructure services, monitoring stack, and third-party integrations.

","tags":["guide","admin","services"]},{"location":"docs/admin/services/#in-this-section","title":"In This Section","text":"
  • Tunnel \u2014 Pangolin tunnel management for public access without port forwarding
  • CrowdSec & Security \u2014 CrowdSec Manager, Tinyauth forward-auth, ISP whitelisting, and Turnstile captcha on the Pangolin server
  • Monitoring \u2014 Prometheus metrics, Grafana dashboards, and Alertmanager
  • Integrations \u2014 Chat, video conferencing, password manager, whiteboard, Git hosting, automation, and QR codes
  • User Provisioning \u2014 automatic account sync across integrated services
","tags":["guide","admin","services"]},{"location":"docs/admin/services/crowdsec/","title":"CrowdSec Manager & Security Configuration","text":"

This page covers the CrowdSec Manager web UI on the Pangolin server, protected behind Tinyauth authentication, along with tuning of CrowdSec security rules and enabling Cloudflare Turnstile captcha for the CrowdSec bouncer.

","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#architecture","title":"Architecture","text":"
graph LR\n    User -->|HTTPS| Traefik\n    Traefik -->|forwardAuth| Tinyauth\n    Tinyauth -->|authenticated| Traefik\n    Traefik -->|proxy| CrowdSec-Manager\n    CrowdSec-Manager -->|API| CrowdSec\n    Traefik -->|bouncer plugin| CrowdSec\n    CrowdSec -->|captcha decision| Turnstile[Cloudflare Turnstile]

All services run on the same Docker Compose stack and share the pangolin network. Traefik reaches them through Gerbil's network namespace.

","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#components-added","title":"Components Added","text":"","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#crowdsec-manager","title":"CrowdSec Manager","text":"

Image: hhftechnology/crowdsec-manager:1.1.0

A web UI for managing CrowdSec operations \u2014 viewing alerts, decisions, managing bouncers, and configuring scenarios. It has read-only access to Traefik and CrowdSec configs and read-write access to its own data and backups.

Accessible at: https://crowdsec.bnkserve.org

","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#tinyauth","title":"Tinyauth","text":"

Image: ghcr.io/steveiliop56/tinyauth:v4

A lightweight forward-auth middleware that protects the CrowdSec Manager dashboard with a login screen. Traefik's forwardAuth middleware checks every request to the manager against Tinyauth before allowing access.

Login page at: https://auth.bnkserve.org

User credentials are stored in a users file (/data/users) mounted from the host, using bcrypt-hashed passwords.

Special Characters in Passwords

Tinyauth v4 has a known issue where special characters (@, !, etc.) in passwords can cause login failures through the browser, even though the bcrypt hash verifies correctly via the CLI. Use alphanumeric passwords to avoid this.

","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#traefik-routing","title":"Traefik Routing","text":"","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#routers","title":"Routers","text":"Router Domain Middleware Purpose crowdsec-manager-router crowdsec.bnkserve.org security-headers, tinyauth Dashboard (HTTPS) crowdsec-manager-redirect crowdsec.bnkserve.org redirect-to-https HTTP \u2192 HTTPS redirect tinyauth-router auth.bnkserve.org security-headers Auth login page (HTTPS) tinyauth-redirect auth.bnkserve.org redirect-to-https HTTP \u2192 HTTPS redirect

No tinyauth middleware on the tinyauth router

The tinyauth-router must not have the tinyauth forwardAuth middleware applied \u2014 this would create an infinite redirect loop.

","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#middleware","title":"Middleware","text":"

The tinyauth forwardAuth middleware forwards every request to http://tinyauth:3000/api/auth/traefik. If the user has a valid session cookie (scoped to .bnkserve.org), the request passes through. Otherwise, the user is redirected to the Tinyauth login page.

tinyauth:\n  forwardAuth:\n    address: http://tinyauth:3000/api/auth/traefik\n    trustForwardHeader: true\n    authResponseHeaders:\n      - X-Forwarded-User\n
","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#crowdsec-tuning","title":"CrowdSec Tuning","text":"","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#relaxed-crawl-detection","title":"Relaxed Crawl Detection","text":"

The crowdsecurity/http-crawl-non_statics scenario was triggering on legitimate Canadian users browsing the site. The local override at /etc/crowdsec/scenarios/http-crawl-non_statics.yaml (replacing the hub symlink) has relaxed thresholds:

Parameter Before After Effect capacity 40 80 Twice as many distinct pages before triggering leakspeed 0.5s 0.25s Bucket drains twice as fast

Combined effect: 4x more lenient \u2014 a user must hit 80+ distinct non-static pages faster than 1 every 0.25 seconds to trigger a captcha.

","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#canadian-isp-whitelist","title":"Canadian ISP Whitelist","text":"

A whitelist expression in /etc/crowdsec/parsers/s02-enrich/mywhitelists.yaml exempts traffic from major Canadian ISPs from all CrowdSec scenarios:

expression:\n  - evt.Meta.ASNNumber in ['812', '852', '6327', '5645', '20365', '25668', '577']\n
AS Number ISP 812 Rogers Communications 852 TELUS Communications 6327 Shaw Communications 5645 TekSavvy 20365 Freedom Mobile 25668 CipherKey 577 Bell Canada

Field name

The GeoIP enricher populates evt.Meta.ASNNumber (not ASNumber). This can be verified by inspecting /etc/crowdsec/parsers/s02-enrich/geoip-enrich.yaml.

","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#cloudflare-turnstile-captcha","title":"Cloudflare Turnstile Captcha","text":"

Previously, CrowdSec captcha decisions resulted in a hard 403 block because no captcha provider was configured. Now, users with a captcha decision see a Cloudflare Turnstile challenge page and can proceed after solving it.

Configuration added to the CrowdSec bouncer plugin in dynamic_config.yml:

captchaProvider: turnstile\ncaptchaSiteKey: <site-key>\ncaptchaSecretKey: <secret-key>\ncaptchaHTMLFilePath: /etc/traefik/captcha.html\n

Captcha HTML template path

The captcha.html template is copied from the plugin source to /etc/traefik/captcha.html (the mounted config volume). Do not reference the /plugins-storage/ path directly \u2014 the hash in that path changes on every Traefik restart.

","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#dns-records","title":"DNS Records","text":"

Two A records pointing to 72.11.155.21:

Record Purpose crowdsec.bnkserve.org CrowdSec Manager dashboard auth.bnkserve.org Tinyauth login page","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/crowdsec/#verification","title":"Verification","text":"
# Check containers are running and healthy\ndocker ps --filter name=crowdsec-manager --filter name=tinyauth\n\n# Check both are on the pangolin network\ndocker network inspect pangolin --format '{{range .Containers}}{{.Name}} {{end}}'\n\n# Verify no Canadian ISPs in active decisions\ndocker exec crowdsec cscli decisions list | grep \"CA\"\n\n# Check CrowdSec whitelist is loaded\ndocker exec crowdsec cscli parsers inspect mywhitelists\n\n# Check Traefik logs for captcha errors\ndocker logs traefik 2>&1 | grep -i captcha\n
","tags":["guide","admin","services","security"]},{"location":"docs/admin/services/integrations/","title":"Integrations","text":"

Changemaker Lite integrates with several self-hosted services. Each runs as a Docker container and can be enabled independently.

","tags":["guide","admin","services","integrations"]},{"location":"docs/admin/services/integrations/#team-chat-rocketchat","title":"Team Chat (Rocket.Chat)","text":"

Self-hosted team chat for volunteer coordination. Enable with enableChat in Settings.

  • Channels & DMs \u2014 organize conversations by topic, team, or campaign
  • Iframe integration \u2014 embedded in the admin dashboard and volunteer portal
  • Floating widget \u2014 minimizable chat FAB on admin pages (toggleable in Settings)
  • SSO-ready \u2014 iframe authentication for seamless login
  • Mobile apps \u2014 native Rocket.Chat apps work with your instance
  • Routes: /app/services/rocketchat, /volunteer/chat
","tags":["guide","admin","services","integrations"]},{"location":"docs/admin/services/integrations/#video-conferencing-jitsi-meet","title":"Video Conferencing (Jitsi Meet)","text":"

Self-hosted video calls integrated with Rocket.Chat via JWT authentication. Enable with enableMeet in Settings.

  • One-click calls \u2014 start a call from any Rocket.Chat channel or DM
  • JWT auth \u2014 participants join automatically with no separate login
  • 4 containers \u2014 jitsi-web, jitsi-prosody (XMPP/JWT), jitsi-jicofo (conference focus), jitsi-jvb (video bridge)
  • Setup: Generate secrets, start containers, configure the Jitsi marketplace app in Rocket.Chat, set token expiration to now + 1hour

Token Expiration

Set the Jitsi app's Token Expiration to now + 1hour. A raw number like 120 is interpreted as Unix timestamp 120 (Jan 1970), causing all tokens to appear expired.

","tags":["guide","admin","services","integrations"]},{"location":"docs/admin/services/integrations/#password-manager-vaultwarden","title":"Password Manager (Vaultwarden)","text":"

Bitwarden-compatible password vault for secure team credential sharing.

  • Bitwarden client compatible \u2014 use official browser extensions, desktop apps, and mobile apps
  • Auto-invite \u2014 initial admin user invited on first startup
  • User provisioning \u2014 new platform users can be auto-invited when provisioning is enabled
  • Client setup: Point Bitwarden clients to https://vault.DOMAIN
","tags":["guide","admin","services","integrations"]},{"location":"docs/admin/services/integrations/#whiteboard-excalidraw","title":"Whiteboard (Excalidraw)","text":"

Collaborative whiteboard for brainstorming and campaign planning.

  • Real-time collaboration \u2014 multi-user drawing with WebSocket support
  • Embedded in admin \u2014 full-screen iframe at /app/services/excalidraw
  • Desktop only \u2014 requires a desktop browser for the drawing experience
  • Route: /app/services/excalidraw
","tags":["guide","admin","services","integrations"]},{"location":"docs/admin/services/integrations/#git-hosting-gitea","title":"Git Hosting (Gitea)","text":"

Self-hosted Git repository hosting for campaign code and configuration.

  • Lightweight Git forge \u2014 repositories, issues, pull requests, and wikis
  • User provisioning \u2014 platform users can be auto-provisioned as Gitea accounts
  • Embedded \u2014 accessible at git.DOMAIN or embedded in admin at /app/services/gitea
","tags":["guide","admin","services","integrations"]},{"location":"docs/admin/services/integrations/#workflow-automation-n8n","title":"Workflow Automation (n8n)","text":"

Self-hosted workflow automation for connecting platform events to external services.

  • Visual workflow editor \u2014 drag-and-drop automation builder
  • Webhook triggers \u2014 respond to platform events
  • Embedded \u2014 accessible at n8n.DOMAIN or embedded in admin at /app/services/n8n
","tags":["guide","admin","services","integrations"]},{"location":"docs/admin/services/integrations/#qr-code-generator-mini-qr","title":"QR Code Generator (Mini QR)","text":"

Built-in QR code generation for walk sheets, volunteer invites, and campaign links.

  • Public API \u2014 QR code PNG generation at /api/qr
  • Walk sheet integration \u2014 QR codes embedded in printable walk sheets
  • Volunteer quick join \u2014 QR codes for instant volunteer onboarding
  • Embedded \u2014 admin interface at /app/services/qr
","tags":["guide","admin","services","integrations"]},{"location":"docs/admin/services/monitoring/","title":"Monitoring","text":"

The monitoring stack runs as a Docker Compose profile and provides metrics collection, visualization, and alerting.

","tags":["guide","admin","services","monitoring"]},{"location":"docs/admin/services/monitoring/#starting-the-stack","title":"Starting the Stack","text":"
docker compose --profile monitoring up -d\n

This starts Prometheus, Grafana, Alertmanager, cAdvisor, Node Exporter, and Redis Exporter.

","tags":["guide","admin","services","monitoring"]},{"location":"docs/admin/services/monitoring/#custom-metrics","title":"Custom Metrics","text":"

The platform exposes 12 custom cm_* Prometheus metrics:

  • API request rates and latencies
  • BullMQ queue sizes (email, SMS, video scheduling)
  • Active canvass sessions
  • External service health gauges
","tags":["guide","admin","services","monitoring"]},{"location":"docs/admin/services/monitoring/#grafana-dashboards","title":"Grafana Dashboards","text":"

Three pre-configured dashboards auto-provisioned from configs/grafana/:

  • API Performance \u2014 request rates, latencies, error rates
  • Application Overview \u2014 queue sizes, active sessions, service health
  • System Health \u2014 container resources, host metrics, Redis stats
","tags":["guide","admin","services","monitoring"]},{"location":"docs/admin/services/monitoring/#alertmanager","title":"Alertmanager","text":"

Alert rules in configs/prometheus/alerts.yml cover:

  • API downtime and high error rates
  • Queue backlogs
  • Service connectivity failures
  • Resource utilization thresholds
","tags":["guide","admin","services","monitoring"]},{"location":"docs/admin/services/monitoring/#admin-routes","title":"Admin Routes","text":"
  • /app/observability \u2014 embedded Grafana dashboards, alert status, and service health (3 tabs)
","tags":["guide","admin","services","monitoring"]},{"location":"docs/admin/services/monitoring/#direct-access","title":"Direct Access","text":"
  • Grafana: localhost:3001 or grafana.DOMAIN
  • Prometheus: localhost:9090
  • Alertmanager: localhost:9093
","tags":["guide","admin","services","monitoring"]},{"location":"docs/admin/services/tunnel/","title":"Tunnel (Pangolin)","text":"

Pangolin provides secure tunneling to expose your self-hosted services to the internet without port forwarding or a static IP.

","tags":["guide","admin","services","networking"]},{"location":"docs/admin/services/tunnel/#setup","title":"Setup","text":"

From /app/pangolin:

  • Automated setup \u2014 one-command deployment that creates the Pangolin site, updates .env with credentials, and restarts the Newt tunnel container
  • Manual setup \u2014 step-by-step instructions for connecting to an existing Pangolin instance
","tags":["guide","admin","services","networking"]},{"location":"docs/admin/services/tunnel/#resource-management","title":"Resource Management","text":"

The platform defines 12+ service resources in configs/pangolin/resources.yml:

  • Each resource maps a subdomain (e.g., api.DOMAIN, app.DOMAIN) to an internal service
  • Hourly sync \u2014 nginx cron job pushes resource definitions to Pangolin automatically
  • Status dashboard \u2014 view tunnel connection status and resource health
","tags":["guide","admin","services","networking"]},{"location":"docs/admin/services/tunnel/#newt-container","title":"Newt Container","text":"

The Newt container runs alongside nginx and tunnels traffic to your services:

  • Configured via PANGOLIN_NEWT_ID and PANGOLIN_NEWT_SECRET environment variables
  • Depends on nginx (all resources route through nginx:80)
  • Auto-restarts on failure
","tags":["guide","admin","services","networking"]},{"location":"docs/admin/services/tunnel/#security","title":"Security","text":"

The Pangolin server runs CrowdSec for intrusion detection with a web management UI protected by Tinyauth forward-auth. See CrowdSec & Security for details on:

  • CrowdSec Manager dashboard (crowdsec.bnkserve.org)
  • Tinyauth authentication (auth.bnkserve.org)
  • Canadian ISP whitelisting and crawl detection tuning
  • Cloudflare Turnstile captcha integration
","tags":["guide","admin","services","networking"]},{"location":"docs/admin/services/tunnel/#admin-routes","title":"Admin Routes","text":"
  • /app/pangolin \u2014 tunnel status, setup wizard, and resource management
","tags":["guide","admin","services","networking"]},{"location":"docs/admin/services/user-provisioning/","title":"User Provisioning","text":"

Automatically create and sync user accounts across integrated services when new platform users are registered. Enable with enableUserProvisioning in Settings.

","tags":["guide","admin","services"]},{"location":"docs/admin/services/user-provisioning/#supported-services","title":"Supported Services","text":"Service Mode Notes Rocket.Chat Always lazy SSO on first access Gitea Eager or lazy Admin API provisioning Vaultwarden Eager or lazy Invite-based (no password management) Listmonk Eager or lazy Subscriber sync","tags":["guide","admin","services"]},{"location":"docs/admin/services/user-provisioning/#configuration","title":"Configuration","text":"

From Settings > User Provisioning:

  • Toggle provisioning per service
  • Choose eager (create immediately on user registration) or lazy (create on first access)
  • View provisioning status per user in the Service Accounts panel on the Users page
","tags":["guide","admin","services"]},{"location":"docs/admin/services/user-provisioning/#bulk-sync","title":"Bulk Sync","text":"

Trigger a bulk sync from /api/users/provisioning/sync to provision all existing users across enabled services. Useful after enabling a new service.

","tags":["guide","admin","services"]},{"location":"docs/admin/services/user-provisioning/#admin-routes","title":"Admin Routes","text":"
  • /app/users (edit drawer) \u2014 per-user service account status and actions
  • /app/settings (User Provisioning tab) \u2014 per-service toggle and timing
","tags":["guide","admin","services"]},{"location":"docs/admin/web/","title":"Web Content","text":"

Manage the public-facing web presence \u2014 landing pages, the dynamic homepage, navigation menu, and documentation site.

","tags":["guide","admin","content"]},{"location":"docs/admin/web/#in-this-section","title":"In This Section","text":"
  • Landing Pages \u2014 build campaign microsites with the GrapesJS drag-and-drop editor
  • Homepage \u2014 dynamic public landing page aggregating campaigns, shifts, media, and events
  • Navigation \u2014 customize the public navigation menu with toggles, custom links, and reordering
  • Documentation \u2014 MkDocs site management, page analytics, and comment moderation
","tags":["guide","admin","content"]},{"location":"docs/admin/web/#social-sharing","title":"Social Sharing","text":"

All public content (campaigns, landing pages, gallery videos) automatically generates Open Graph and Twitter Card meta tags for rich link previews when shared on social media, messaging apps, and search engines. OG responses are cached in Redis for 10 minutes.

","tags":["guide","admin","content"]},{"location":"docs/admin/web/documentation/","title":"Documentation","text":"

Manage the MkDocs documentation site, track page engagement, and moderate visitor comments.

","tags":["guide","admin","content"]},{"location":"docs/admin/web/documentation/#mkdocs-management","title":"MkDocs Management","text":"

From Docs (/app/docs):

  • View MkDocs build status and health
  • Browse the documentation file tree
  • Export landing pages to MkDocs as Jinja2 Material theme overrides
  • Configure documentation settings from MkDocs Settings (/app/docs/settings)
","tags":["guide","admin","content"]},{"location":"docs/admin/web/documentation/#documentation-analytics","title":"Documentation Analytics","text":"

Track how visitors interact with documentation pages using the MkDocs Material theme's custom analytics provider and navigation.tracking.

  • Navigation tracking \u2014 updates the browser URL as users scroll through sections, enabling section-level engagement tracking
  • Custom provider \u2014 integrates with any third-party analytics tool (Plausible, Umami, Google Analytics) via template overrides in docs/overrides/
","tags":["guide","admin","content"]},{"location":"docs/admin/web/documentation/#comments","title":"Comments","text":"

Visitors can leave comments on documentation pages using a Gitea-backed comment system.

  • Anonymous posting \u2014 visitors can comment without creating an account
  • Gitea-backed \u2014 comments stored as Gitea issues (one issue per page) for version control and searchability
  • Moderation \u2014 admin panel at /app/docs-comments for approving, hiding, or deleting comments
  • OAuth login \u2014 optional Gitea OAuth for authenticated commenting
  • Per-page threads \u2014 each documentation page gets its own comment thread
","tags":["guide","admin","content"]},{"location":"docs/admin/web/documentation/#admin-routes","title":"Admin Routes","text":"
  • /app/docs \u2014 MkDocs management (file tree, config, build triggers)
  • /app/docs/settings \u2014 documentation configuration
  • /app/docs-comments \u2014 moderate documentation comments
","tags":["guide","admin","content"]},{"location":"docs/admin/web/homepage/","title":"Public Homepage","text":"

A dynamic public landing page that showcases your organization and aggregates content from across the platform.

","tags":["guide","admin","content"]},{"location":"docs/admin/web/homepage/#sections","title":"Sections","text":"

The homepage assembles its content from enabled modules. Sections are only displayed when their corresponding module is active and has data to show.

  • Hero banner \u2014 organization name, logo, tagline (configurable via Settings), and call-to-action buttons for campaigns and volunteer signups
  • Stats counters \u2014 active campaigns, total emails sent, and volunteer signups (shown only when counts are greater than zero)
  • Featured campaigns \u2014 up to 3 active campaigns, sorted by highlight status then creation date, with email counts and descriptions
  • Upcoming shifts \u2014 up to 3 open shifts with date, time, location, and spots remaining
  • Latest videos \u2014 up to 4 recently published videos from the media library, displayed in a horizontal scroll strip with thumbnails and durations
  • Upcoming events \u2014 up to 3 future events from Gancio with date, location, and tags
  • Recent activity \u2014 a compact activity feed showing the latest platform actions
","tags":["guide","admin","content"]},{"location":"docs/admin/web/homepage/#data-caching","title":"Data & Caching","text":"

All homepage data is fetched from a single API endpoint (/api/homepage) and cached in Redis for 2 minutes. Individual section queries use Promise.allSettled so that a failure in one module (e.g., Gancio being offline) does not prevent the rest of the page from loading.

","tags":["guide","admin","content"]},{"location":"docs/admin/web/homepage/#configuration","title":"Configuration","text":"
  • Organization name and logo \u2014 set via Settings > Organization
  • Homepage tagline \u2014 set via the homepageTagline field in site settings
  • Module visibility \u2014 controlled by feature flags (enableInfluence, enableMap, enableMediaFeatures, enableEvents, enablePayments, enableLandingPages)
","tags":["guide","admin","content"]},{"location":"docs/admin/web/homepage/#public-routes","title":"Public Routes","text":"
  • /home \u2014 public homepage
","tags":["guide","admin","content"]},{"location":"docs/admin/web/landing-pages/","title":"Landing Pages","text":"

Build campaign microsites with a drag-and-drop visual editor.

","tags":["guide","admin","content","landing-pages"]},{"location":"docs/admin/web/landing-pages/#how-it-works","title":"How It Works","text":"
  1. Create a new page from the admin panel
  2. Open the GrapesJS visual editor \u2014 drag blocks, edit text, adjust styles
  3. Save and publish \u2014 the page goes live at /p/:slug
  4. Optionally export to MkDocs for inclusion in the documentation site
","tags":["guide","admin","content","landing-pages"]},{"location":"docs/admin/web/landing-pages/#admin-routes","title":"Admin Routes","text":"
  • /app/pages \u2014 list and manage landing pages
  • /app/pages/:id/edit \u2014 full-screen GrapesJS editor
","tags":["guide","admin","content","landing-pages"]},{"location":"docs/admin/web/landing-pages/#public-routes","title":"Public Routes","text":"
  • /p/:slug \u2014 view a published landing page
","tags":["guide","admin","content","landing-pages"]},{"location":"docs/admin/web/navigation/","title":"Navigation Settings","text":"

Customize the public-facing navigation menu from the admin panel. The navigation bar appears on all public pages, the admin header, the Gancio events page, and the MkDocs documentation site.

","tags":["guide","admin","content"]},{"location":"docs/admin/web/navigation/#key-features","title":"Key Features","text":"
  • Per-item toggle -- enable or disable each navigation item with a switch
  • Custom links -- add external links or internal paths to the navigation
  • Reorder -- move items up and down to arrange them in any order
  • Editable labels and paths -- rename any item or change its destination
  • Feature flag awareness -- builtin items tied to a feature flag (e.g., Campaigns requires enableInfluence) are automatically hidden when that feature is disabled
  • Visitor control -- determine exactly what public visitors can access
","tags":["guide","admin","content"]},{"location":"docs/admin/web/navigation/#builtin-items","title":"Builtin Items","text":"

The platform ships with 11 builtin navigation items that cover the main public routes:

Home, Campaigns, Map, Shifts, Events, Gallery, Pricing, Shop, Donate, Website (landing page), and Docs (documentation site).

Each builtin item has a default icon and path. Some paths use special $ tokens (e.g., $landing, $docs) that are automatically resolved to the correct external URL based on the deployment environment.

","tags":["guide","admin","content"]},{"location":"docs/admin/web/navigation/#custom-links","title":"Custom Links","text":"

Add any number of custom links via the \"Add Custom Link\" button. Custom links support:

  • Internal paths (e.g., /blog)
  • External URLs (e.g., https://example.com) -- automatically detected and opened in a new tab

Custom links can be deleted from the navigation; builtin items can only be toggled off.

","tags":["guide","admin","content"]},{"location":"docs/admin/web/navigation/#mobile-handling","title":"Mobile Handling","text":"

On mobile devices, the navigation collapses into a hamburger menu that opens a full-height drawer. On desktop, the nav bar also supports a collapse mode that hides labels and shows only icons, toggled via a fold/unfold button. The collapse state is persisted in local storage.

","tags":["guide","admin","content"]},{"location":"docs/admin/web/navigation/#admin-routes","title":"Admin Routes","text":"
  • /app/navigation -- navigation editor with per-item toggle, reorder, label editing, and custom link management
","tags":["guide","admin","content"]},{"location":"docs/api/","title":"API Reference","text":"

Changemaker Lite exposes two REST APIs sharing a single PostgreSQL database.

Server Framework Port Purpose Main API Express.js 4000 Auth, campaigns, map, shifts, canvassing, pages, email, settings Media API Fastify 4100 Video library, analytics, playlists, reactions, comments

Both APIs use JWT Bearer authentication and return JSON. All request/response bodies are application/json unless noted otherwise.

","tags":["reference","developer","API"]},{"location":"docs/api/#authentication","title":"Authentication","text":"","tags":["reference","developer","API"]},{"location":"docs/api/#token-flow","title":"Token Flow","text":"
sequenceDiagram\n    participant Client\n    participant API\n    participant DB\n\n    Client->>API: POST /api/auth/login {email, password}\n    API->>DB: Verify credentials\n    DB-->>API: User record\n    API-->>Client: {accessToken, refreshToken}\n    Note over Client: Store tokens\n\n    Client->>API: GET /api/campaigns (Authorization: Bearer <accessToken>)\n    API-->>Client: 200 OK\n\n    Note over Client: Access token expires (15 min)\n\n    Client->>API: POST /api/auth/refresh {refreshToken}\n    API->>DB: Rotate token (atomic transaction)\n    DB-->>API: New token pair\n    API-->>Client: {accessToken, refreshToken}
","tags":["reference","developer","API"]},{"location":"docs/api/#headers","title":"Headers","text":"

All authenticated requests require:

Authorization: Bearer <accessToken>\n

The Media API also accepts tokens via query parameter for SSE streams:

GET /api/public/:id/chat-stream?token=<accessToken>\n
","tags":["reference","developer","API"]},{"location":"docs/api/#roles","title":"Roles","text":"Role Access Level SUPER_ADMIN Full platform access INFLUENCE_ADMIN Campaign and advocacy management MAP_ADMIN Map, locations, shifts, canvassing USER Volunteer portal, public features TEMP Limited access (auto-created on public shift signup)","tags":["reference","developer","API"]},{"location":"docs/api/#middleware-reference","title":"Middleware Reference","text":"Middleware Effect authenticate Requires valid JWT. Sets req.user with id, email, role. Returns 401 if missing or invalid. optionalAuth Same as authenticate but continues without user if token is absent. requireRole(...roles) Checks user role against allowed list. Returns 403 if not authorized. requireNonTemp Blocks TEMP users. Returns 403. validate(schema, source) Validates request body/query/params against a Zod schema. Returns 400 on failure.","tags":["reference","developer","API"]},{"location":"docs/api/#error-responses","title":"Error Responses","text":"

All errors follow a consistent format:

{\n  \"error\": {\n    \"message\": \"Human-readable error description\",\n    \"code\": \"ERROR_CODE\",\n    \"statusCode\": 400\n  }\n}\n
Status Code Meaning 400 VALIDATION_ERROR Request body/query failed schema validation 401 UNAUTHORIZED Missing or invalid access token 403 FORBIDDEN Valid token but insufficient role 404 NOT_FOUND Resource does not exist 429 RATE_LIMITED Too many requests (see Rate Limits) 500 INTERNAL_ERROR Unexpected server error

Enumeration Prevention

Auth endpoints (/login, /register, /forgot-password) return generic success messages to prevent user enumeration. A 401 from /api/auth/me does not reveal whether the user exists.

","tags":["reference","developer","API"]},{"location":"docs/api/#rate-limits","title":"Rate Limits","text":"

Rate limits are Redis-backed and keyed by IP address.

Endpoint Group Window Max Requests Redis Prefix Auth (login, register, refresh) 15 min 10 rl:auth: Email sending 1 hour 30 rl:email: Response submission 1 hour 10 rl:response: Shift signup 1 hour 10 rl:shift-signup: Canvass visits 1 min 30 rl:canvass-visit: Canvass bulk visits 1 min 5 rl:canvass-visit-bulk: GPS tracking 1 min 6 rl:gps-tracking: Canvass geocode 1 min 10 rl:canvass-geocode: Observability 1 min 20 rl:observability: Health/metrics 1 min 30 rl:health-metrics: Global (all other) Configurable Configurable rl:global:

When rate-limited, the API returns:

{\n  \"error\": {\n    \"message\": \"Too many requests, please try again later\",\n    \"code\": \"RATE_LIMITED\",\n    \"statusCode\": 429\n  }\n}\n
","tags":["reference","developer","API"]},{"location":"docs/api/#main-api-express-port-4000","title":"Main API (Express \u2014 Port 4000)","text":"","tags":["reference","developer","API"]},{"location":"docs/api/#health-metrics","title":"Health & Metrics","text":"Method Path Auth Description GET /api/health Health check \u2014 PostgreSQL + Redis ping GET /api/metrics Prometheus metrics (text/plain) Health response
{\n  \"status\": \"healthy\",\n  \"checks\": {\n    \"database\": \"ok\",\n    \"redis\": \"ok\"\n  }\n}\n
","tags":["reference","developer","API"]},{"location":"docs/api/#auth","title":"Auth","text":"

Prefix: /api/auth

Method Path Auth Rate Limited Description POST /api/auth/login Email + password login POST /api/auth/register Create account (always USER role) POST /api/auth/verify-email Verify email with token POST /api/auth/resend-verification Resend verification email POST /api/auth/forgot-password Send password reset email POST /api/auth/reset-password Set new password with reset token POST /api/auth/refresh Rotate refresh token \u2192 new token pair POST /api/auth/logout Invalidate refresh token GET /api/auth/me Current user profile Login request & response

Request:

{\n  \"email\": \"admin@example.com\",\n  \"password\": \"SecurePass123!\"\n}\n
Response:
{\n  \"accessToken\": \"eyJhbG...\",\n  \"refreshToken\": \"eyJhbG...\",\n  \"user\": {\n    \"id\": \"uuid\",\n    \"email\": \"admin@example.com\",\n    \"name\": \"Admin\",\n    \"role\": \"SUPER_ADMIN\"\n  }\n}\n

Password Policy

Passwords must be at least 12 characters with at least one uppercase letter, one lowercase letter, and one digit.

","tags":["reference","developer","API"]},{"location":"docs/api/#users","title":"Users","text":"

Prefix: /api/users \u00b7 Auth: All routes require authentication

Method Path Role Description GET /api/users Admin Paginated user list with search, role, and status filters GET /api/users/:id Admin or self Single user profile POST /api/users Admin Create user PUT /api/users/:id Admin or self Update user (non-admins cannot change role/status) POST /api/users/:id/approve Admin Approve pending user; sends approval email POST /api/users/:id/reject Admin Reject pending user DELETE /api/users/:id Admin Delete user

Query parameters for GET /api/users:

Param Type Description page number Page number (default 1) limit number Items per page (default 20) search string Search by name or email role string Filter by role status string Filter by status","tags":["reference","developer","API"]},{"location":"docs/api/#dashboard","title":"Dashboard","text":"

Prefix: /api/dashboard \u00b7 Auth: Admin roles required

Method Path Role Description GET /api/dashboard/summary Any admin Platform-wide counts (users, campaigns, locations, shifts) GET /api/dashboard/system SUPER_ADMIN Hardware + OS info (CPU, memory, disk) GET /api/dashboard/containers SUPER_ADMIN Docker container statuses GET /api/dashboard/weather Any admin Current weather at map center coordinates GET /api/dashboard/api-metrics SUPER_ADMIN Prometheus API performance metrics GET /api/dashboard/time-series SUPER_ADMIN Prometheus time-series data GET /api/dashboard/container-resources SUPER_ADMIN cAdvisor CPU/memory/network per container

Query parameters for GET /api/dashboard/time-series:

Param Type Description metrics string Comma-separated metric keys (whitelist-validated) range string Time range (e.g., 1h, 24h, 7d) step string Sample interval (e.g., 5m, 1h)","tags":["reference","developer","API"]},{"location":"docs/api/#campaigns","title":"Campaigns","text":"","tags":["reference","developer","API"]},{"location":"docs/api/#admin-crud","title":"Admin CRUD","text":"

Prefix: /api/campaigns \u00b7 Auth: Admin roles

Method Path Description GET /api/campaigns Paginated campaign list GET /api/campaigns/:id Single campaign detail POST /api/campaigns Create campaign PUT /api/campaigns/:id Update campaign DELETE /api/campaigns/:id Delete campaign","tags":["reference","developer","API"]},{"location":"docs/api/#public","title":"Public","text":"Method Path Auth Description GET /api/campaigns/public List all active campaigns GET /api/campaigns/:slug/details Campaign detail by slug (ACTIVE only)","tags":["reference","developer","API"]},{"location":"docs/api/#user-submissions","title":"User Submissions","text":"

Auth: Authenticated, non-TEMP users

Method Path Description POST /api/campaigns/user/submit Submit campaign for moderation (5/hour limit) GET /api/campaigns/user/my-campaigns List own submitted campaigns PUT /api/campaigns/user/:id Edit own pending campaign","tags":["reference","developer","API"]},{"location":"docs/api/#moderation","title":"Moderation","text":"

Auth: Admin roles

Method Path Description GET /api/campaigns/moderation/queue Campaigns pending moderation GET /api/campaigns/moderation/stats Moderation queue statistics PATCH /api/campaigns/moderation/:id Approve or reject campaign","tags":["reference","developer","API"]},{"location":"docs/api/#campaign-emails","title":"Campaign Emails","text":"Method Path Auth Description POST /api/campaigns/:slug/send-email Send advocacy email to representatives (rate limited: 30/hour) POST /api/campaigns/:slug/track-mailto Track mailto link click GET /api/campaigns/:id/emails Admin Paginated emails for campaign GET /api/campaigns/:id/email-stats Admin Email statistics","tags":["reference","developer","API"]},{"location":"docs/api/#responses","title":"Responses","text":"

Prefix: /api/campaigns (public) and /api/responses (admin + actions)

","tags":["reference","developer","API"]},{"location":"docs/api/#public_1","title":"Public","text":"Method Path Auth Description GET /api/campaigns/:slug/responses List approved public responses GET /api/campaigns/:slug/response-stats Response statistics POST /api/campaigns/:slug/responses Submit response (rate limited: 10/hour) POST /api/responses/:id/upvote Optional Upvote a response DELETE /api/responses/:id/upvote Optional Remove upvote GET /api/responses/:id/verify/:token Verify response via email link","tags":["reference","developer","API"]},{"location":"docs/api/#admin","title":"Admin","text":"

Auth: Admin roles

Method Path Description GET /api/responses All responses with filters PATCH /api/responses/:id/status Approve or reject response POST /api/responses/:id/resend-verification Resend verification email DELETE /api/responses/:id Delete response","tags":["reference","developer","API"]},{"location":"docs/api/#representatives","title":"Representatives","text":"

Prefix: /api/representatives

Method Path Auth Description GET /api/representatives/by-postal/:postalCode Lookup representatives by postal code (cache-first) GET /api/representatives/test-connection Represent API health check GET /api/representatives/cache-stats Admin Cache statistics GET /api/representatives Admin Paginated cached representatives GET /api/representatives/:id Admin Single cached representative DELETE /api/representatives/by-postal/:postalCode Admin Clear cache for postal code DELETE /api/representatives/:id Admin Delete cached representative

Query parameters for postal code lookup:

Param Type Description refresh boolean Force API call, bypass cache","tags":["reference","developer","API"]},{"location":"docs/api/#email-queue","title":"Email Queue","text":"

Prefix: /api/email-queue \u00b7 Auth: Admin roles

Method Path Description GET /api/email-queue/stats BullMQ queue statistics (waiting, active, completed, failed) POST /api/email-queue/pause Pause email processing POST /api/email-queue/resume Resume email processing POST /api/email-queue/clean Clean completed jobs","tags":["reference","developer","API"]},{"location":"docs/api/#locations","title":"Locations","text":"

Prefix: /api/map/locations

","tags":["reference","developer","API"]},{"location":"docs/api/#public_2","title":"Public","text":"Method Path Description GET /api/map/locations/public All geocoded locations for map (no PII); optional ?bounds=","tags":["reference","developer","API"]},{"location":"docs/api/#admin_1","title":"Admin","text":"

Auth: SUPER_ADMIN or MAP_ADMIN

Method Path Description GET /api/map/locations Paginated locations with filters GET /api/map/locations/stats Location statistics GET /api/map/locations/all All geocoded locations for admin map GET /api/map/locations/export-csv CSV export GET /api/map/locations/:id Single location GET /api/map/locations/:id/history Edit history POST /api/map/locations Create location PUT /api/map/locations/:id Update location DELETE /api/map/locations/:id Delete location POST /api/map/locations/bulk-delete Bulk delete POST /api/map/locations/geocode Geocode single address POST /api/map/locations/geocode-missing Batch geocode all ungeocoded POST /api/map/locations/reverse-geocode Reverse geocode lat/lng to address POST /api/map/locations/import-csv Import from CSV (10 MB limit) POST /api/map/locations/import-bulk Bulk NAR or standard CSV import (100 MB limit)","tags":["reference","developer","API"]},{"location":"docs/api/#bulk-geocode","title":"Bulk Geocode","text":"

Prefix: /api/map/locations/bulk-geocode \u00b7 Auth: Map admins

Method Path Description POST /api/map/locations/bulk-geocode Start BullMQ bulk geocoding job GET /api/map/locations/bulk-geocode/:jobId Poll job status GET /api/map/locations/bulk-geocode/stats Queue statistics","tags":["reference","developer","API"]},{"location":"docs/api/#nar-import","title":"NAR Import","text":"

Prefix: /api/map/nar-import \u00b7 Auth: Map admins

Method Path Description GET /api/map/nar-import/datasets Available NAR datasets by province POST /api/map/nar-import Start province import (fire-and-forget) GET /api/map/nar-import/status/:importId Poll import progress NAR Import body
{\n  \"provinceCode\": \"24\",\n  \"filterType\": \"city\",\n  \"filterCity\": \"Edmonton\",\n  \"residentialOnly\": true,\n  \"deduplicateRadius\": 10,\n  \"batchSize\": 500\n}\n
","tags":["reference","developer","API"]},{"location":"docs/api/#area-import","title":"Area Import","text":"

Prefix: /api/map/area-import \u00b7 Auth: Map admins

Method Path Description POST /api/map/area-import/preview Preview bounds + estimated record counts POST /api/map/area-import Start area import (fire-and-forget) GET /api/map/area-import/status/:importId Poll import progress","tags":["reference","developer","API"]},{"location":"docs/api/#cuts-polygons","title":"Cuts (Polygons)","text":"

Prefix: /api/map/cuts

Method Path Auth Description GET /api/map/cuts/public All public cuts as GeoJSON GET /api/map/cuts Map admin Paginated cuts list GET /api/map/cuts/:id Map admin Single cut POST /api/map/cuts Map admin Create cut (polygon GeoJSON) PUT /api/map/cuts/:id Map admin Update cut DELETE /api/map/cuts/:id Map admin Delete cut GET /api/map/cuts/:id/locations Map admin All locations within cut polygon GET /api/map/cuts/:id/statistics Map admin Support level breakdown GET /api/map/cuts/export-geojson Map admin All cuts as GeoJSON FeatureCollection GET /api/map/cuts/:id/export-geojson Map admin Single cut as GeoJSON Feature POST /api/map/cuts/import-geojson Map admin Import cuts from GeoJSON file","tags":["reference","developer","API"]},{"location":"docs/api/#shifts","title":"Shifts","text":"

Prefix: /api/map/shifts

","tags":["reference","developer","API"]},{"location":"docs/api/#public_3","title":"Public","text":"Method Path Description GET /api/map/shifts/public List upcoming public shifts POST /api/map/shifts/public/:id/signup Public signup (creates TEMP user if needed; rate limited: 10/hour)","tags":["reference","developer","API"]},{"location":"docs/api/#volunteer","title":"Volunteer","text":"

Auth: Any authenticated user

Method Path Description GET /api/map/shifts/volunteer/upcoming Upcoming shifts with signup status GET /api/map/shifts/volunteer/my-signups Own confirmed signups POST /api/map/shifts/volunteer/:id/signup Sign up for shift DELETE /api/map/shifts/volunteer/:id/signup Cancel signup","tags":["reference","developer","API"]},{"location":"docs/api/#admin_2","title":"Admin","text":"

Auth: Map admins

Method Path Description GET /api/map/shifts Paginated shifts with filters GET /api/map/shifts/stats Statistics GET /api/map/shifts/calendar Calendar data (?startDate=&endDate=) GET /api/map/shifts/:id Single shift with signups POST /api/map/shifts Create shift PUT /api/map/shifts/:id Update shift DELETE /api/map/shifts/:id Delete shift POST /api/map/shifts/:id/signups Admin-add volunteer DELETE /api/map/shifts/:id/signups/:signupId Remove volunteer POST /api/map/shifts/:id/email-details Email details to all volunteers","tags":["reference","developer","API"]},{"location":"docs/api/#shift-series","title":"Shift Series","text":"

Auth: Map admins

Method Path Description POST /api/map/shifts/series Create recurring shift series GET /api/map/shifts/series/:id Get series PUT /api/map/shifts/series/:id Update series DELETE /api/map/shifts/series/:id Delete series","tags":["reference","developer","API"]},{"location":"docs/api/#canvassing","title":"Canvassing","text":"

Prefix: /api/map/canvass

","tags":["reference","developer","API"]},{"location":"docs/api/#volunteer_1","title":"Volunteer","text":"

Auth: Any authenticated user

Method Path Description GET /api/map/canvass/my/assignments Shift assignments GET /api/map/canvass/my/stats Personal canvass statistics GET /api/map/canvass/my/visits Visit history GET /api/map/canvass/my/session Active canvass session POST /api/map/canvass/sessions Start canvass session POST /api/map/canvass/sessions/:id/end End session GET /api/map/canvass/cuts/:cutId/locations Locations in cut with visit annotations GET /api/map/canvass/cuts/:cutId/route Walking route algorithm for cut GET /api/map/canvass/locations All locations with visit annotations PUT /api/map/canvass/locations/:id Edit address (role-gated fields) POST /api/map/canvass/locations Create location POST /api/map/canvass/reverse-geocode Reverse geocode lat/lng POST /api/map/canvass/geocode-search Geocode address for map (rate limited: 10/min) POST /api/map/canvass/visits Record door knock (rate limited: 30/min) POST /api/map/canvass/visits/bulk Record visit for all unvisited units (rate limited: 5/min)","tags":["reference","developer","API"]},{"location":"docs/api/#admin_3","title":"Admin","text":"

Auth: SUPER_ADMIN or MAP_ADMIN

Method Path Description GET /api/map/canvass/stats Platform-wide canvass statistics GET /api/map/canvass/stats/cuts/:cutId Statistics for specific cut GET /api/map/canvass/activity Recent activity feed GET /api/map/canvass/volunteers All volunteers with canvass activity GET /api/map/canvass/volunteers/:userId Individual volunteer statistics GET /api/map/canvass/visits All visits with filters","tags":["reference","developer","API"]},{"location":"docs/api/#gps-tracking","title":"GPS Tracking","text":"

Prefix: /api/map/tracking

","tags":["reference","developer","API"]},{"location":"docs/api/#volunteer_2","title":"Volunteer","text":"

Auth: Any authenticated user

Method Path Description POST /api/map/tracking/sessions Start GPS tracking session POST /api/map/tracking/sessions/:id/end End tracking session POST /api/map/tracking/sessions/:id/points Submit GPS point batch (rate limited: 6/min) POST /api/map/tracking/sessions/:id/link-canvass Link to canvass session GET /api/map/tracking/my/session Active tracking session GET /api/map/tracking/my/sessions Own historical sessions GET /api/map/tracking/my/sessions/:id/route Full route for own session","tags":["reference","developer","API"]},{"location":"docs/api/#admin_4","title":"Admin","text":"

Auth: Map admins

Method Path Description GET /api/map/tracking/live Live volunteer positions + trails GET /api/map/tracking/sessions All historical tracking sessions GET /api/map/tracking/sessions/:id/route Full route for any session","tags":["reference","developer","API"]},{"location":"docs/api/#map-settings","title":"Map Settings","text":"

Prefix: /api/map/settings

Method Path Auth Description GET /api/map/settings Public map settings (center, zoom, walk sheet config) PUT /api/map/settings Map admin Update map settings","tags":["reference","developer","API"]},{"location":"docs/api/#geocoding","title":"Geocoding","text":"

Prefix: /api/map/geocoding \u00b7 Auth: Map admins

Method Path Description GET /api/map/geocoding/search Geocode address search (?q=&limit=1-10)","tags":["reference","developer","API"]},{"location":"docs/api/#landing-pages","title":"Landing Pages","text":"

Prefix: /api/pages and /api/page-blocks

","tags":["reference","developer","API"]},{"location":"docs/api/#public_4","title":"Public","text":"Method Path Auth Description GET /api/pages/:slug/view Get published page by slug","tags":["reference","developer","API"]},{"location":"docs/api/#admin_5","title":"Admin","text":"

Auth: Admin roles

Method Path Description GET /api/pages Paginated landing pages GET /api/pages/:id Single page POST /api/pages Create page PUT /api/pages/:id Update page DELETE /api/pages/:id Delete page POST /api/pages/sync Sync MkDocs overrides from filesystem POST /api/pages/validate Validate and repair MkDocs exports","tags":["reference","developer","API"]},{"location":"docs/api/#block-library","title":"Block Library","text":"

Auth: Admin roles

Method Path Description GET /api/page-blocks List blocks GET /api/page-blocks/:id Single block POST /api/page-blocks Create block PUT /api/page-blocks/:id Update block DELETE /api/page-blocks/:id Delete block","tags":["reference","developer","API"]},{"location":"docs/api/#email-templates","title":"Email Templates","text":"

Prefix: /api/email-templates \u00b7 Auth: Admin roles (seed/cache require SUPER_ADMIN)

Method Path Description GET /api/email-templates List templates GET /api/email-templates/:id Single template POST /api/email-templates Create template PUT /api/email-templates/:id Update template DELETE /api/email-templates/:id Delete template GET /api/email-templates/:id/versions Version history GET /api/email-templates/:id/versions/:versionNumber Specific version POST /api/email-templates/:id/rollback Rollback to prior version POST /api/email-templates/validate Validate Handlebars syntax POST /api/email-templates/:id/test Send test email (rate limited: 10/15min) GET /api/email-templates/:id/test-logs Test send logs POST /api/email-templates/seed Seed templates from filesystem POST /api/email-templates/clear-cache Clear template cache","tags":["reference","developer","API"]},{"location":"docs/api/#qr-codes","title":"QR Codes","text":"Method Path Auth Description GET /api/qr Generate QR code PNG (?text=&size=50-500)

Cached for 1 hour. Returns image/png.

","tags":["reference","developer","API"]},{"location":"docs/api/#site-settings","title":"Site Settings","text":"

Prefix: /api/settings

Method Path Auth Description GET /api/settings Public site settings (SMTP credentials stripped) GET /api/settings/admin SUPER_ADMIN Full settings including SMTP credentials PUT /api/settings SUPER_ADMIN Update settings POST /api/settings/email/test-connection SUPER_ADMIN Test SMTP connection POST /api/settings/email/test-send SUPER_ADMIN Send test email","tags":["reference","developer","API"]},{"location":"docs/api/#listmonk-newsletter-sync","title":"Listmonk (Newsletter Sync)","text":"

Prefix: /api/listmonk \u00b7 Auth: SUPER_ADMIN

Method Path Description GET /api/listmonk Sync status + connection check GET /api/listmonk/stats Subscriber counts from Listmonk POST /api/listmonk/test-connection Health check POST /api/listmonk/sync/participants Sync campaign participants POST /api/listmonk/sync/locations Sync locations POST /api/listmonk/sync/users Sync users POST /api/listmonk/sync/all Run all sync operations POST /api/listmonk/reinitialize Reinitialize Listmonk lists GET /api/listmonk/proxy-url Proxy port + JWT for iframe","tags":["reference","developer","API"]},{"location":"docs/api/#documentation-management","title":"Documentation Management","text":"

Prefix: /api/docs \u00b7 Auth: Authenticated, non-TEMP (write operations require SUPER_ADMIN)

Method Path Description GET /api/docs/status MkDocs + Code Server availability GET /api/docs/config Port numbers for iframe URLs GET /api/docs/mkdocs-config Read raw mkdocs.yml PUT /api/docs/mkdocs-config Write mkdocs.yml POST /api/docs/build Trigger MkDocs build POST /api/docs/upload Upload asset (20 MB, whitelisted extensions) GET /api/docs/files File tree (?force=true bypasses cache) POST /api/docs/files/rename Rename or move file GET /api/docs/files/* Read file content PUT /api/docs/files/* Write file content POST /api/docs/files/* Create file or folder DELETE /api/docs/files/* Delete file or empty folder","tags":["reference","developer","API"]},{"location":"docs/api/#services","title":"Services","text":"

Prefix: /api/services \u00b7 Auth: SUPER_ADMIN

Method Path Description GET /api/services/status Health check all managed services (NocoDB, n8n, Gitea, MailHog, Mini QR, Excalidraw, Homepage) GET /api/services/config Port numbers + subdomain info","tags":["reference","developer","API"]},{"location":"docs/api/#pangolin-tunnel-management","title":"Pangolin (Tunnel Management)","text":"

Prefix: /api/pangolin \u00b7 Auth: SUPER_ADMIN

Method Path Description GET /api/pangolin/status Tunnel health + connection info GET /api/pangolin/config Current env configuration GET /api/pangolin/newt-status Newt container status POST /api/pangolin/newt-restart Restart Newt container GET /api/pangolin/sites List Pangolin sites GET /api/pangolin/exit-nodes Available exit nodes GET /api/pangolin/resource-definitions Resource definitions from YAML GET /api/pangolin/resources List resources POST /api/pangolin/setup Create site + all resources (rate limited: \u2157min) POST /api/pangolin/sync Sync resources (create missing, update changed) PUT /api/pangolin/resource/:id Update resource DELETE /api/pangolin/resource/:id Delete resource GET /api/pangolin/resource/:id/clients Connected clients GET /api/pangolin/certificate/:domainId/:domain Certificate info POST /api/pangolin/certificate/:certId Update certificate","tags":["reference","developer","API"]},{"location":"docs/api/#observability","title":"Observability","text":"

Prefix: /api/observability \u00b7 Auth: SUPER_ADMIN \u00b7 Rate limited: 20/min

Method Path Description GET /api/observability/status Check 7 monitoring services GET /api/observability/metrics-summary Key metrics from Prometheus GET /api/observability/alerts Active alerts from Alertmanager","tags":["reference","developer","API"]},{"location":"docs/api/#payments","title":"Payments","text":"

Prefix: /api/payments

","tags":["reference","developer","API"]},{"location":"docs/api/#public_5","title":"Public","text":"Method Path Auth Description GET /api/payments/config Stripe publishable key + donation settings GET /api/payments/plans Active subscription plans GET /api/payments/products Active products (?type=) POST /api/payments/subscribe Create subscription checkout POST /api/payments/purchase Optional Product checkout (guest or logged-in) POST /api/payments/donate Donation checkout GET /api/payments/my-subscription Current subscription POST /api/payments/my-subscription/cancel Cancel subscription POST /api/payments/webhook Stripe webhook (raw body)","tags":["reference","developer","API"]},{"location":"docs/api/#admin_6","title":"Admin","text":"

Auth: SUPER_ADMIN

Method Path Description GET /api/payments/admin/settings Payment settings (secrets masked) PUT /api/payments/admin/settings Update payment settings POST /api/payments/admin/settings/test-connection Test Stripe connection GET /api/payments/admin/dashboard Subscription + donation statistics GET /api/payments/admin/plans All subscription plans POST /api/payments/admin/plans Create plan PUT /api/payments/admin/plans/:id Update plan DELETE /api/payments/admin/plans/:id Delete plan POST /api/payments/admin/plans/:id/sync-stripe Sync plan to Stripe GET /api/payments/admin/subscriptions All subscriptions with filters POST /api/payments/admin/subscriptions/:id/cancel Cancel subscription GET /api/payments/admin/products All products POST /api/payments/admin/products Create product PUT /api/payments/admin/products/:id Update product DELETE /api/payments/admin/products/:id Delete product POST /api/payments/admin/products/:id/sync-stripe Sync product to Stripe GET /api/payments/admin/orders List orders POST /api/payments/admin/orders/:id/refund Refund order GET /api/payments/admin/donations List donations GET /api/payments/admin/export CSV export of completed orders","tags":["reference","developer","API"]},{"location":"docs/api/#media-api-fastify-port-4100","title":"Media API (Fastify \u2014 Port 4100)","text":"

The Media API is a separate Fastify server sharing the same PostgreSQL database. It handles all video-related functionality.

","tags":["reference","developer","API"]},{"location":"docs/api/#health","title":"Health","text":"Method Path Auth Description GET /health Media API health check","tags":["reference","developer","API"]},{"location":"docs/api/#videos-admin","title":"Videos (Admin)","text":"

Prefix: /api/videos \u00b7 Auth: Admin roles

","tags":["reference","developer","API"]},{"location":"docs/api/#crud-publishing","title":"CRUD & Publishing","text":"Method Path Description GET /api/videos List videos (?limit=&offset=&search=&orientation=&producers=&isShort=) GET /api/videos/producers Distinct producer list GET /api/videos/health Video count health check GET /api/videos/:id Single video detail PATCH /api/videos/:id Update metadata (title, producer, tags, quality, etc.) POST /api/videos/:id/publish Publish to category POST /api/videos/:id/unpublish Unpublish POST /api/videos/bulk-publish Bulk publish POST /api/videos/bulk-unpublish Bulk unpublish POST /api/videos/:id/lock Lock published video POST /api/videos/:id/unlock Unlock video POST /api/videos/:id/generate-thumbnail Generate thumbnail via FFmpeg POST /api/videos/bulk-generate-thumbnails Bulk thumbnail generation","tags":["reference","developer","API"]},{"location":"docs/api/#upload","title":"Upload","text":"Method Path Description POST /api/videos/upload Single video upload (multipart, 10 GB limit, streams to disk) POST /api/videos/upload/batch Batch upload (returns 207 multi-status)","tags":["reference","developer","API"]},{"location":"docs/api/#actions","title":"Actions","text":"Method Path Description POST /api/videos/:id/duplicate Duplicate video record POST /api/videos/:id/replace Replace video file, keep metadata GET /api/videos/:id/analytics Detailed analytics (?startDate=&endDate=) POST /api/videos/:id/reset-analytics Reset all analytics GET /api/videos/:id/preview-link Generate 24-hour JWT preview link GET /api/videos/analytics/top Top videos (?metric=views|watchTime&limit=) GET /api/videos/analytics/overview Global analytics overview","tags":["reference","developer","API"]},{"location":"docs/api/#scheduling","title":"Scheduling","text":"Method Path Description POST /api/videos/:id/schedule-publish Schedule future publish ({publishAt, timezone?}) POST /api/videos/:id/schedule-unpublish Schedule future unpublish DELETE /api/videos/:id/schedule/:action Cancel scheduled operation GET /api/videos/schedules/upcoming Upcoming scheduled operations GET /api/videos/:id/schedule-history Schedule history for video GET /api/videos/schedules/stats Schedule queue statistics POST /api/videos/schedules/pause Pause schedule queue POST /api/videos/schedules/resume Resume schedule queue POST /api/videos/schedules/cleanup Clean old completed jobs","tags":["reference","developer","API"]},{"location":"docs/api/#video-fetch","title":"Video Fetch","text":"Method Path Description POST /api/videos/fetch Submit fetch job ({urls: string[]}, 1\u201320 URLs) GET /api/videos/fetch/jobs List recent fetch jobs GET /api/videos/fetch/jobs/:jobId Job detail + log GET /api/videos/fetch/jobs/:jobId/log SSE log stream (Redis pub/sub) DELETE /api/videos/fetch/jobs/:jobId Cancel fetch job","tags":["reference","developer","API"]},{"location":"docs/api/#streaming-public","title":"Streaming (Public)","text":"

Prefix: /api/videos

Method Path Auth Description GET /api/videos/stream/health Streaming health check GET /api/videos/:id/stream Optional HTTP range-supporting video stream GET /api/videos/:id/thumbnail Optional Serve thumbnail image GET /api/videos/:id/metadata Public video metadata for embedding

Note

Admins can stream unpublished videos by providing a valid JWT.

","tags":["reference","developer","API"]},{"location":"docs/api/#public-gallery","title":"Public Gallery","text":"

Prefix: /api/public

Method Path Auth Description GET /api/public Optional Published videos (?limit=&offset=&search=&sort=recent|popular|oldest&category=) GET /api/public/categories Optional Categories with video counts GET /api/public/producers Optional Published producers GET /api/public/:id Optional Single published video GET /api/public/:id/thumbnail Optional Published thumbnail GET /api/public/:id/stream Optional Published video stream","tags":["reference","developer","API"]},{"location":"docs/api/#tracking","title":"Tracking","text":"

Prefix: /api/track \u00b7 Auth: None required

Method Path Description GET /api/track/health Tracking health check POST /api/track/view Record video view (returns {viewId}) POST /api/track/event Record play/pause/seek/complete event POST /api/track/heartbeat Update watch time (10s interval, sendBeacon) POST /api/track/batch Batch up to 50 tracking events Tracking is GDPR-compliant

IP addresses are hashed with a daily-rotating salt. Raw IPs are never stored. Tracking data is retained for 90 days.

","tags":["reference","developer","API"]},{"location":"docs/api/#reactions","title":"Reactions","text":"

Prefix: /api/reactions

Method Path Auth Description GET /api/reactions/config Available reaction types + emoji mappings GET /api/reactions List reactions (?mediaId=&userId=&limit=) GET /api/reactions/:mediaId/chat Reactions in chat timeline format POST /api/reactions Add reaction (30s cooldown per type)

Available types: like, love, laugh, wow, sad, angry

","tags":["reference","developer","API"]},{"location":"docs/api/#comments-chat","title":"Comments & Chat","text":"","tags":["reference","developer","API"]},{"location":"docs/api/#public-comments","title":"Public Comments","text":"Method Path Auth Description GET /api/public/:id/comments List comments (?limit=&offset=) POST /api/public/:id/comments Optional Create comment (word-filtered; rate limited: 5/min) GET /api/public/:id/chat-stream SSE stream for real-time chat (30s keepalive)","tags":["reference","developer","API"]},{"location":"docs/api/#comment-admin","title":"Comment Admin","text":"

Prefix: /api/media/admin/comments \u00b7 Auth: Admin roles

Method Path Description GET /api/media/admin/comments/stats Counts by status GET /api/media/admin/comments All comments with filters PATCH /api/media/admin/comments/:id/approve Approve comment PATCH /api/media/admin/comments/:id/hide Hide comment PATCH /api/media/admin/comments/:id/unhide Unhide comment PUT /api/media/admin/comments/:id/notes Update moderation notes DELETE /api/media/admin/comments/:id Delete comment","tags":["reference","developer","API"]},{"location":"docs/api/#word-filters","title":"Word Filters","text":"

Prefix: /api/media/admin/word-filters \u00b7 Auth: Admin roles

Method Path Description GET /api/media/admin/word-filters List filter entries grouped by level POST /api/media/admin/word-filters Add word ({word, level: low|medium|high|custom}) DELETE /api/media/admin/word-filters/:id Remove word","tags":["reference","developer","API"]},{"location":"docs/api/#chat-threads-notifications","title":"Chat Threads & Notifications","text":"

Auth: Authenticated

Method Path Description GET /api/media/chat/threads Videos with user's comments + unread counts POST /api/media/chat/threads/:mediaId/read Mark thread as read GET /api/media/notifications/stream Per-user SSE notification stream (?token=)","tags":["reference","developer","API"]},{"location":"docs/api/#shorts","title":"Shorts","text":"Method Path Auth Description GET /api/shorts Optional Shorts feed (?sort=recent|popular|random) POST /api/shorts/scan Admin Auto-classify short videos by duration","tags":["reference","developer","API"]},{"location":"docs/api/#upvotes","title":"Upvotes","text":"Method Path Auth Description POST /api/public/:id/upvote Toggle upvote (session-based via X-Session-ID header) GET /api/public/:id/upvote-status Check upvote status for current session","tags":["reference","developer","API"]},{"location":"docs/api/#playlists","title":"Playlists","text":"","tags":["reference","developer","API"]},{"location":"docs/api/#public_6","title":"Public","text":"

Prefix: /api/playlists

Method Path Auth Description GET /api/playlists/featured Optional Featured playlists GET /api/playlists/popular Optional Popular public playlists (?search=) GET /api/playlists/share/:token Optional Playlist by share token GET /api/playlists/:id Optional Playlist detail (public, owner, or share token) POST /api/playlists/:id/view Optional Record playlist view","tags":["reference","developer","API"]},{"location":"docs/api/#user-playlists","title":"User Playlists","text":"

Auth: Authenticated

Method Path Description GET /api/playlists/my Own playlists POST /api/playlists Create playlist PUT /api/playlists/:id Update playlist (ownership check) DELETE /api/playlists/:id Delete playlist POST /api/playlists/:id/videos Add video ({mediaId}) DELETE /api/playlists/:id/videos/:mediaId Remove video PUT /api/playlists/:id/videos/reorder Reorder videos POST /api/playlists/:id/share Generate share token DELETE /api/playlists/:id/share Revoke share token","tags":["reference","developer","API"]},{"location":"docs/api/#playlist-admin","title":"Playlist Admin","text":"

Prefix: /api/media/playlists \u00b7 Auth: Admin roles

Method Path Description GET /api/media/playlists All playlists GET /api/media/playlists/featured Featured playlists with admin info POST /api/media/playlists/:id/feature Feature a playlist DELETE /api/media/playlists/:id/feature Unfeature a playlist PUT /api/media/playlists/featured/reorder Reorder featured playlists PUT /api/media/playlists/:id Admin update any playlist POST /api/media/playlists/:id/duplicate Duplicate playlist DELETE /api/media/playlists/:id Admin delete any playlist","tags":["reference","developer","API"]},{"location":"docs/api/#user-profile","title":"User Profile","text":"

Prefix: /api/media/me \u00b7 Auth: Authenticated

Method Path Description GET /api/media/me/stats User stats + 30-day activity + achievements GET /api/media/me/watch-history Paginated watch history POST /api/media/me/stats/recalculate Recompute stats from raw data GET /api/media/me/settings Privacy settings PUT /api/media/me/settings Update privacy settings PUT /api/media/me/profile Update display name PUT /api/media/me/password Change password","tags":["reference","developer","API"]},{"location":"docs/api/#route-summary","title":"Route Summary","text":"API Module Endpoint Count Express Auth 9 Users 7 Dashboard 7 Campaigns (CRUD + public + user + moderation + emails) 16 Responses 10 Email Queue 4 Representatives 7 Locations (CRUD + geocode + import) 21 Cuts 11 Shifts (CRUD + series) 19 Canvassing 20 GPS Tracking 10 Map Settings + Geocoding 3 Pages + Blocks 12 Email Templates 13 QR Codes 1 Site Settings 5 Listmonk 9 Docs Management 11 Services 2 Pangolin 16 Observability 3 Payments (public + admin) 29 Health + Metrics 3 Express Total ~248 Fastify Videos (CRUD + upload + actions + schedule + fetch) 39 Streaming 4 Public Gallery 6 Tracking 5 Reactions 4 Comments + Chat 13 Shorts + Upvotes 4 Playlists (public + user + admin) 18 User Profile 7 Health 1 Fastify Total ~101 Grand Total ~349","tags":["reference","developer","API"]},{"location":"docs/architecture/","title":"Architecture","text":"

Changemaker Lite uses a dual-API architecture with a shared PostgreSQL database, a React single-page application, and Nginx for subdomain routing across 30+ services.

","tags":["reference","developer","architecture"]},{"location":"docs/architecture/#system-diagram","title":"System Diagram","text":"
graph LR\n    Browser[\"Browser\"] --> Nginx[\"Nginx<br/>(reverse proxy)\"]\n    Nginx --> Admin[\"React Admin GUI<br/>port 3000\"]\n    Nginx --> API[\"Express API<br/>port 4000\"]\n    Nginx --> MediaAPI[\"Fastify Media API<br/>port 4100\"]\n    Nginx --> MkDocs[\"MkDocs<br/>port 4003/4004\"]\n    Nginx --> Services[\"Other Services<br/>(Gitea, NocoDB, etc.)\"]\n\n    API --> PostgreSQL[(\"PostgreSQL 16<br/>30+ tables\")]\n    MediaAPI --> PostgreSQL\n    API --> Redis[(\"Redis<br/>cache + queues\")]\n    API --> BullMQ[\"BullMQ<br/>(email, video jobs)\"]\n    BullMQ --> Redis\n\n    subgraph Tunnel [\"Public Access\"]\n        Newt[\"Newt Client\"] --> Pangolin[\"Pangolin Server\"]\n    end\n    Newt --> Nginx
","tags":["reference","developer","architecture"]},{"location":"docs/architecture/#key-components","title":"Key Components","text":"Component Technology Role Main API Express.js + TypeScript + Prisma Auth, campaigns, map, shifts, pages, canvassing, email Media API Fastify + TypeScript + Prisma Video library, analytics, uploads, scheduling Admin GUI React 19 + Vite + Ant Design + Zustand Admin dashboard, public pages, volunteer portal, media gallery Database PostgreSQL 16 Shared by both APIs (30+ models via Prisma) Cache Redis 7 Rate limiting, BullMQ job queues, geocoding cache Proxy Nginx Subdomain routing, security headers, WebSocket upgrade Tunnel Pangolin + Newt Expose services without port forwarding Monitoring Prometheus + Grafana + Alertmanager Metrics collection, dashboards, alerting","tags":["reference","developer","architecture"]},{"location":"docs/architecture/#dual-api-design","title":"Dual API Design","text":"

The platform runs two independent API servers sharing one PostgreSQL database:

Express API (port 4000)Fastify Media API (port 4100)

The main API handles all core platform logic:

  • Authentication \u2014 JWT access/refresh tokens, RBAC middleware
  • Modules \u2014 Influence (campaigns, responses), Map (locations, cuts, shifts, canvassing), Pages, Email Templates, Settings, Users, Payments, Social, Calendar
  • Services \u2014 Email queue (BullMQ), geocoding queue, Listmonk sync, Pangolin client, user provisioning
  • ORM \u2014 Prisma with 30+ models and migration history

A separate server optimized for media handling:

  • Video CRUD \u2014 Upload with FFprobe metadata extraction
  • Scheduled Publishing \u2014 BullMQ queue with timezone support
  • Analytics \u2014 View tracking, watch time, completion rates (GDPR-compliant)
  • Public Gallery \u2014 Playlists, reactions, comments, SSE chat
  • ORM \u2014 Prisma (migrated from Drizzle, Feb 2026)

Both servers connect to the same database and share the same Prisma schema. This separation allows the media API to handle large file uploads and streaming independently from the main API's request/response cycle.

","tags":["reference","developer","architecture"]},{"location":"docs/architecture/#authentication-flow","title":"Authentication Flow","text":"
sequenceDiagram\n    participant Client\n    participant API\n    participant DB\n    participant Redis\n\n    Client->>API: POST /api/auth/login {email, password}\n    API->>Redis: Check rate limit (10/min per IP)\n    Redis-->>API: OK\n    API->>DB: Verify bcrypt password\n    DB-->>API: User record\n    API->>DB: Create refresh token\n    API-->>Client: {accessToken (15min), refreshToken (7d)}\n\n    Note over Client: Authenticated requests\n    Client->>API: GET /api/campaigns<br/>Authorization: Bearer <accessToken>\n    API->>API: Verify JWT + check role (RBAC)\n    API-->>Client: 200 OK\n\n    Note over Client: Token expired\n    Client->>API: POST /api/auth/refresh {refreshToken}\n    API->>DB: Atomic rotation (delete old, create new)\n    API-->>Client: {new accessToken, new refreshToken}
","tags":["reference","developer","architecture"]},{"location":"docs/architecture/#security-features","title":"Security Features","text":"
  • Password policy \u2014 12+ characters, uppercase, lowercase, digit (schema-enforced)
  • Refresh token rotation \u2014 Atomic Prisma transaction prevents race conditions
  • User enumeration prevention \u2014 Returns 401 (not 404) for missing users
  • Rate limiting \u2014 10 requests/minute on auth endpoints via Redis
  • 11 roles \u2014 SUPER_ADMIN (implicit bypass), 8 module-specific admin roles, USER, TEMP
  • Encryption \u2014 AES-256-GCM for sensitive DB fields (ENCRYPTION_KEY env var)
","tags":["reference","developer","architecture"]},{"location":"docs/architecture/#request-lifecycle","title":"Request Lifecycle","text":"
graph TD\n    A[\"Incoming Request\"] --> B[\"Nginx\"]\n    B -->|\"Host: api.domain\"| C[\"Express API\"]\n    B -->|\"Host: media.domain\"| D[\"Fastify Media API\"]\n    B -->|\"Host: app.domain\"| E[\"React Admin GUI\"]\n    C --> F[\"Rate Limiter (Redis)\"]\n    F --> G[\"Auth Middleware (JWT)\"]\n    G --> H[\"Role Check (RBAC)\"]\n    H --> I[\"Validation (Zod)\"]\n    I --> J[\"Route Handler\"]\n    J --> K[\"Service Layer\"]\n    K --> L[\"Prisma ORM\"]\n    L --> M[(\"PostgreSQL\")]\n    J --> N[\"Response + Metrics\"]
","tags":["reference","developer","architecture"]},{"location":"docs/architecture/#database-schema","title":"Database Schema","text":"

The database contains 30+ Prisma models organized by module:

Module Key Models Auth User, RefreshToken Influence Campaign, CampaignEmail, CampaignResponse, Representative, PostalCode Map Location, Address, Cut, Shift, ShiftSignup Canvass CanvassSession, CanvassVisit, TrackingSession, TrackingPoint Pages Page, PageBlock, EmailTemplate Media Video, VideoReaction, VideoComment, VideoView, Playlist, PlaylistVideo Payments StripeProduct, StripePrice, StripeDonationPage, StripeOrder Social Friendship, SocialNotification, CalendarLayer, CalendarItem SMS SmsContactList, SmsCampaign, SmsMessage, SmsConversation People Contact, ContactAddress, ContactEmail, ContactPhone, ContactConnection Settings SiteSettings, MapSettings","tags":["reference","developer","architecture"]},{"location":"docs/architecture/#docker-compose-architecture","title":"Docker Compose Architecture","text":"

Services are organized into categories with dependency management:

graph TD\n    subgraph Core [\"Core (always started)\"]\n        PG[\"PostgreSQL\"] --> API[\"Express API\"]\n        Redis --> API\n        PG --> Media[\"Fastify Media API\"]\n        API --> Admin[\"React Admin\"]\n        Admin --> Nginx\n        API --> Nginx\n        Media --> Nginx\n    end\n\n    subgraph Communication [\"Communication (optional)\"]\n        RC[\"Rocket.Chat\"] --> MongoDB\n        Jitsi[\"Jitsi Meet (4 containers)\"]\n        Gancio[\"Gancio Events\"]\n    end\n\n    subgraph Monitoring [\"Monitoring (profile)\"]\n        Prometheus --> Grafana\n        Prometheus --> Alertmanager\n        cAdvisor --> Prometheus\n        NodeExporter --> Prometheus\n    end\n\n    subgraph Tunnel [\"Tunnel\"]\n        Newt --> Nginx\n    end

Docker healthchecks ensure proper startup order: PostgreSQL and Redis must be healthy before the API starts. The API runs migrations and seeding automatically via its entrypoint script.

","tags":["reference","developer","architecture"]},{"location":"docs/architecture/#subdomain-routing","title":"Subdomain Routing","text":"

Nginx routes requests based on the Host header. All services run on the changemaker-lite Docker bridge network.

Pattern Target app.DOMAIN Admin GUI (admin + public + volunteer + gallery) api.DOMAIN Express API media.DOMAIN Fastify Media API DOMAIN (root) MkDocs static site *.DOMAIN 15+ additional service subdomains

See Services for the complete subdomain table.

","tags":["reference","developer","architecture"]},{"location":"docs/deployment/","title":"Deployment","text":"

This guide covers how to take Changemaker Lite from a local development setup to a publicly accessible production deployment. The main decision is how to expose your services to the internet.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#architecture-overview","title":"Architecture Overview","text":"

Regardless of which exposure method you choose, the internal architecture is the same:

Internet \u2192 [Your exposure method] \u2192 Nginx (port 80) \u2192 Backend Services\n

Nginx handles all subdomain routing internally. Every service is accessed through nginx on port 80, which proxies to the correct container based on the Host header.

Subdomain Service Container Port app.DOMAIN Admin GUI + public pages 3000 api.DOMAIN Express API 4000 media.DOMAIN Fastify Media API 4100 DOMAIN (root) MkDocs documentation site 4004 db.DOMAIN NocoDB 8091 docs.DOMAIN MkDocs live preview 4003 code.DOMAIN Code Server 8888 git.DOMAIN Gitea 3030 n8n.DOMAIN Workflow automation 5678 home.DOMAIN Homepage dashboard 3010 listmonk.DOMAIN Newsletter manager 9001 mail.DOMAIN MailHog (dev email) 8025 qr.DOMAIN Mini QR generator 8089 draw.DOMAIN Excalidraw whiteboard 8090 vault.DOMAIN Vaultwarden password manager 8445 chat.DOMAIN Rocket.Chat team chat \u2014 events.DOMAIN Gancio event management 8092 grafana.DOMAIN Monitoring dashboards 3005","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#exposure-methods","title":"Exposure Methods","text":"","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#pangolin","title":"Option 1: Pangolin + Newt Tunnel (Recommended)","text":"

Admin GUI: Tunnel Management Page

The admin dashboard includes a dedicated Tunnel Management page at Admin \u2192 Settings \u2192 Tunnel. This page provides:

  • Live status of the Pangolin connection and Newt container health
  • Step-by-step setup instructions if credentials aren't configured yet
  • Full resource table listing every service, its domain, and target \u2014 useful as a reference when creating resources in the Pangolin dashboard
  • API-based site creation as an alternative to the Pangolin dashboard UI
  • Restart Newt button for quick container restarts without the terminal

If you're unsure about any step above, the Tunnel page walks you through the same process interactively.

Pangolin is a self-hosted tunnel server. The Newt client container runs alongside your stack and establishes an outbound connection to your Pangolin server, which then routes public traffic back through the tunnel. No port forwarding or static IP required.

Advantages:

  • No port forwarding needed on your router/firewall
  • Works behind CGNAT, double NAT, or restrictive networks
  • SSL/TLS handled by the Pangolin server
  • Self-hosted \u2014 you control the tunnel infrastructure
  • Built-in access control (optional per-resource authentication)

Requirements:

  • A Pangolin server (self-hosted on a VPS with a public IP)
  • A domain with DNS pointing to the Pangolin server
  • Pangolin API key and organization ID
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#step-1-configure-pangolin-credentials","title":"Step 1: Configure Pangolin Credentials","text":"

If you used config.sh, you may have already set these. Otherwise, add to your .env:

PANGOLIN_API_URL=https://api.your-pangolin-server.org/v1\nPANGOLIN_API_KEY=your_api_key_here\nPANGOLIN_ORG_ID=your_org_id\n
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#step-2-create-a-site-in-pangolin","title":"Step 2: Create a Site in Pangolin","text":"

Log in to your Pangolin dashboard and create a new site:

  1. Navigate to Sites \u2192 Create New Site
  2. Choose type: Newt
  3. Enter a name (e.g., changemaker-yourdomain.org)
  4. Choose a subnet (e.g., 100.90.128.3/24)
  5. Select an exit node (if applicable)
  6. Click Create Site
  7. Copy the credentials \u2014 you'll need the Site ID, Newt ID, and Newt Secret

Save the credentials

The Newt Secret is only shown once during site creation. Copy it immediately.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#step-3-update-env-with-site-credentials","title":"Step 3: Update .env with Site Credentials","text":"
PANGOLIN_SITE_ID=your_site_id\nPANGOLIN_ENDPOINT=https://your-pangolin-server.org\nPANGOLIN_NEWT_ID=your_newt_id\nPANGOLIN_NEWT_SECRET=your_newt_secret\n
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#step-4-start-the-newt-container","title":"Step 4: Start the Newt Container","text":"
docker compose up -d newt\n

The Newt container connects to nginx (its only dependency) and establishes the tunnel:

# From docker-compose.yml\nnewt:\n  image: fosrl/newt\n  container_name: newt-changemaker\n  restart: unless-stopped\n  environment:\n    - PANGOLIN_ENDPOINT=${PANGOLIN_ENDPOINT}\n    - NEWT_ID=${PANGOLIN_NEWT_ID}\n    - NEWT_SECRET=${PANGOLIN_NEWT_SECRET}\n  depends_on:\n    - nginx\n

Verify the connection:

docker compose logs newt --tail 20\n

You should see a successful connection message.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#step-5-create-public-http-resources","title":"Step 5: Create Public HTTP Resources","text":"

In the Pangolin dashboard, create an HTTP resource for each service you want exposed. All resources point to nginx:80 \u2014 nginx handles the routing internally.

Required resources (minimum for a working deployment):

Resource Name Domain Target Auth Admin GUI app.yourdomain.org nginx:80 Not Protected API Server api.yourdomain.org nginx:80 Not Protected Public Site yourdomain.org nginx:80 Not Protected

Optional resources (add as needed):

Resource Name Domain Target Media API media.yourdomain.org nginx:80 NocoDB db.yourdomain.org nginx:80 Documentation docs.yourdomain.org nginx:80 Code Server code.yourdomain.org nginx:80 Gitea git.yourdomain.org nginx:80 Grafana grafana.yourdomain.org nginx:80

Set resources to Not Protected

By default, Pangolin may enable authentication on new resources. This causes 302 redirects to the Pangolin login page instead of reaching your services. Set each resource to Not Protected (public access) unless you intentionally want Pangolin SSO in front of it.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#step-6-update-cors-for-production","title":"Step 6: Update CORS for Production","text":"

Add your production domain to CORS_ORIGINS in .env:

CORS_ORIGINS=https://app.yourdomain.org,http://localhost:3000,http://localhost\n

Then restart the API:

docker compose restart api\n
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#step-7-verify","title":"Step 7: Verify","text":"
# Should return JSON (not a 302 redirect)\ncurl https://api.yourdomain.org/api/health\n\n# Admin GUI should load\ncurl -I https://app.yourdomain.org\n
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#cloudflare","title":"Option 2: Cloudflare Tunnel","text":"

Cloudflare Tunnel (cloudflared) provides a similar zero-trust tunnel approach using Cloudflare's network. No port forwarding needed, and you get Cloudflare's CDN and DDoS protection.

Advantages:

  • Free tier available
  • Built-in CDN and DDoS protection
  • No port forwarding needed
  • Managed SSL certificates

Disadvantages:

  • Proprietary service (not self-hosted)
  • Cloudflare sees all traffic (no end-to-end encryption to your origin)
  • Subject to Cloudflare's Terms of Service
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#setup","title":"Setup","text":"
  1. Create a Cloudflare Tunnel in the Zero Trust dashboard

  2. Add a cloudflared service to your docker-compose.yml:

    cloudflared:\n  image: cloudflare/cloudflared:latest\n  container_name: cloudflared-changemaker\n  restart: unless-stopped\n  command: tunnel run\n  environment:\n    - TUNNEL_TOKEN=${CLOUDFLARE_TUNNEL_TOKEN}\n  depends_on:\n    - nginx\n  networks:\n    - changemaker-lite\n
  3. Add your tunnel token to .env:

    CLOUDFLARE_TUNNEL_TOKEN=your_tunnel_token_here\n
  4. Configure public hostnames in the Cloudflare dashboard, all pointing to http://nginx:80:

    Hostname Service app.yourdomain.org http://nginx:80 api.yourdomain.org http://nginx:80 yourdomain.org http://nginx:80 (add more as needed) http://nginx:80
  5. Start the tunnel:

    docker compose up -d cloudflared\n

Note

The cloudflared service is not included in the default docker-compose.yml. Add it manually if you choose this method. The Newt service can be removed or left stopped.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#direct","title":"Option 3: Direct DNS + Reverse Proxy","text":"

If your server has a public IP address (e.g., a VPS or dedicated server), you can point DNS directly to it and use nginx with SSL certificates.

Advantages:

  • No tunnel overhead or third-party dependency
  • Full control over the network path
  • Lowest latency

Disadvantages:

  • Requires a public IP and open ports (80, 443)
  • You manage SSL certificates yourself
  • Server IP is exposed
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#setup_1","title":"Setup","text":"
  1. Point DNS for your domain and all subdomains to your server's IP:

    A     yourdomain.org        \u2192 YOUR_SERVER_IP\nA     *.yourdomain.org      \u2192 YOUR_SERVER_IP\n

    Or use individual A records for each subdomain if your DNS provider doesn't support wildcards.

  2. Open ports 80 and 443 on your server's firewall.

  3. Install Certbot (or another ACME client) for SSL certificates:

    # Ubuntu/Debian\nsudo apt install certbot\n\n# Get a wildcard certificate with DNS challenge\nsudo certbot certonly --manual --preferred-challenges dns \\\n  -d yourdomain.org -d '*.yourdomain.org'\n

    Alternatively, use the Certbot Docker image or a Let's Encrypt companion container.

  4. Update nginx to listen on 443 with your certificates. Add an SSL server block to nginx/conf.d/ssl.conf:

    server {\n    listen 443 ssl;\n    server_name app.yourdomain.org;\n\n    ssl_certificate /etc/nginx/ssl/fullchain.pem;\n    ssl_certificate_key /etc/nginx/ssl/privkey.pem;\n\n    location / {\n        proxy_pass http://changemaker-v2-admin:3000;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection \"upgrade\";\n    }\n}\n\n# Repeat for api.yourdomain.org, media.yourdomain.org, etc.\n# Or use a single server block with $host matching\n
  5. Mount certificates into the nginx container via docker-compose.yml:

    nginx:\n  volumes:\n    - /etc/letsencrypt/live/yourdomain.org:/etc/nginx/ssl:ro\n
  6. Set up auto-renewal with a cron job or systemd timer:

    0 3 * * * certbot renew --quiet && docker compose restart nginx\n

Traefik alternative

If you prefer automatic SSL and don't want to manage nginx SSL config manually, consider replacing nginx with Traefik. Traefik can auto-discover Docker containers and provision Let's Encrypt certificates automatically. This would require adapting the container labels and removing the nginx service.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#tailscale","title":"Option 4: Tailscale / WireGuard (Private Access)","text":"

For deployments that should only be accessible to specific people (not the general public), a mesh VPN like Tailscale or plain WireGuard gives you private networking without exposing anything to the internet.

Use cases:

  • Internal team deployments
  • Development/staging servers
  • Access from mobile devices without public exposure
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#tailscale-setup","title":"Tailscale Setup","text":"
  1. Install Tailscale on your server and client devices
  2. Access services via Tailscale IP (e.g., http://100.x.x.x:3000)
  3. Optionally use Tailscale Funnel to selectively expose specific services publicly
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#wireguard-setup","title":"WireGuard Setup","text":"
  1. Set up a WireGuard server on your host
  2. Connect client devices via WireGuard config
  3. Access services via the WireGuard interface IP

Note

With private access methods, you may not need subdomain routing at all. Access services directly by port: http://server-ip:3000 (admin), http://server-ip:4000 (API), etc.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#production-checklist","title":"Production Checklist","text":"

Before going live, verify each item:

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#security","title":"Security","text":"
  • All placeholder passwords changed (grep -c \"REQUIRED_STRONG\" .env should return 0)
  • NODE_ENV=production set in .env
  • ENCRYPTION_KEY set and differs from JWT secrets
  • EMAIL_TEST_MODE=false (unless you want MailHog in production)
  • CORS_ORIGINS includes your production domain
  • Admin password changed after first login
  • Redis password set (REDIS_PASSWORD)
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#networking","title":"Networking","text":"
  • DNS records configured for your domain and subdomains
  • SSL/TLS working (tunnel handles this, or manual certs)
  • All Pangolin resources set to \"Not Protected\" (if using Pangolin)
  • curl https://api.yourdomain.org/api/health returns JSON
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#services","title":"Services","text":"
  • Core services running: docker compose ps shows api, admin, v2-postgres, redis, nginx healthy
  • Database migrated: docker compose exec api npx prisma migrate deploy
  • Database seeded: docker compose exec api npx prisma db seed
  • Admin GUI accessible at https://app.yourdomain.org
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#backups","title":"Backups","text":"
  • Backup script tested: ./scripts/backup.sh
  • Backup cron job configured (see Backups below)
  • Restore procedure tested at least once
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#monitoring-optional","title":"Monitoring (Optional)","text":"
  • Monitoring stack started: docker compose --profile monitoring up -d
  • Grafana accessible and dashboards loading
  • Alert rules configured in Alertmanager
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#backups_1","title":"Backups","text":"

The included backup script dumps PostgreSQL databases, archives uploads, and optionally uploads to S3.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#running-a-backup","title":"Running a Backup","text":"
./scripts/backup.sh\n

This creates a timestamped directory under ./backups/ containing:

  • changemaker_v2.sql.gz \u2014 Main PostgreSQL dump (compressed)
  • listmonk.sql.gz \u2014 Listmonk database dump (if running)
  • uploads.tar.gz \u2014 Media uploads archive
  • manifest.json \u2014 Backup metadata
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#options","title":"Options","text":"
# Upload to S3 (requires AWS CLI + S3_BUCKET env var)\n./scripts/backup.sh --s3\n\n# Custom retention (delete local backups older than N days)\n./scripts/backup.sh --retention 14\n
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#automated-backups","title":"Automated Backups","text":"

Add a cron job for daily backups:

# Edit crontab\ncrontab -e\n\n# Add daily backup at 3 AM\n0 3 * * * /path/to/changemaker.lite/scripts/backup.sh >> /var/log/changemaker-backup.log 2>&1\n\n# With S3 upload\n0 3 * * * /path/to/changemaker.lite/scripts/backup.sh --s3 >> /var/log/changemaker-backup.log 2>&1\n
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#restore","title":"Restore","text":"
# Restore main database\ngunzip -c backups/changemaker-v2-backup-TIMESTAMP/changemaker_v2.sql.gz | \\\n  docker compose exec -T v2-postgres psql -U changemaker changemaker_v2\n\n# Restore Listmonk database\ngunzip -c backups/changemaker-v2-backup-TIMESTAMP/listmonk.sql.gz | \\\n  docker compose exec -T listmonk-db psql -U listmonk listmonk\n\n# Restore uploads\ntar xzf backups/changemaker-v2-backup-TIMESTAMP/uploads.tar.gz -C ./\n
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#monitoring","title":"Monitoring","text":"

The monitoring stack runs behind a Docker Compose profile and is not started by default.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#starting-the-monitoring-stack","title":"Starting the Monitoring Stack","text":"
docker compose --profile monitoring up -d\n

This starts:

Service Port Purpose Prometheus 9090 Metrics collection and queries Grafana 3005 Dashboards and visualization Alertmanager 9093 Alert routing and notifications cAdvisor 8086 Container resource metrics Node Exporter 9100 Host system metrics Redis Exporter 9121 Redis metrics Gotify 8889 Push notifications","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#pre-configured-dashboards","title":"Pre-configured Dashboards","text":"

Grafana includes 3 auto-provisioned dashboards:

  1. API Overview \u2014 HTTP request rates, latency, error rates, active sessions
  2. Infrastructure \u2014 Container CPU/memory, PostgreSQL connections, Redis memory
  3. Campaign Activity \u2014 Email queue size, campaign sends, response submissions
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#custom-metrics","title":"Custom Metrics","text":"

The API exposes 12 custom Prometheus metrics with the cm_ prefix:

  • cm_api_uptime_seconds \u2014 API uptime
  • cm_email_queue_size \u2014 BullMQ pending emails
  • cm_active_canvass_sessions \u2014 Active canvassing sessions
  • cm_locations_total \u2014 Total locations in database
  • And more \u2014 see api/src/utils/metrics.ts
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#alert-rules","title":"Alert Rules","text":"

Pre-configured alerts in configs/prometheus/alerts.yml:

  • API down for more than 5 minutes
  • High error rate (>5% of requests returning 5xx)
  • Database connection failures
  • Redis connection failures
  • Email queue backlog
  • Disk space warnings
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#upgrading","title":"Upgrading","text":"","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#pulling-updates","title":"Pulling Updates","text":"
# Pull latest code\ngit pull origin main\n\n# Rebuild and restart containers\ndocker compose build api admin\ndocker compose up -d api admin\n\n# Run any new migrations\ndocker compose exec api npx prisma migrate deploy\n
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#database-migrations","title":"Database Migrations","text":"

Always run migrations after pulling updates:

docker compose exec api npx prisma migrate deploy\n

Back up first

Always run ./scripts/backup.sh before applying migrations in production. Migrations may alter table structures and are not easily reversible.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#troubleshooting-production-issues","title":"Troubleshooting Production Issues","text":"","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#pangolin-302-redirects-instead-of-content","title":"Pangolin: 302 Redirects Instead of Content","text":"

Symptom: API returns 302 redirects to the Pangolin authentication page.

Fix: In the Pangolin dashboard, edit each resource and set Authentication to Not Protected.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#cors-errors","title":"CORS Errors","text":"

Symptom: Browser console shows CORS errors when accessing the production domain.

Fix: Add your production app. subdomain to CORS_ORIGINS in .env, then docker compose restart api.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#newt-wont-connect","title":"Newt Won't Connect","text":"

Check in order:

  1. Credentials: Verify PANGOLIN_NEWT_ID and PANGOLIN_NEWT_SECRET in .env
  2. Endpoint: Confirm PANGOLIN_ENDPOINT matches your Pangolin server URL
  3. Logs: docker compose logs newt --tail 50
  4. Nginx running: Newt depends on nginx \u2014 docker compose ps nginx
  5. Network: Ensure outbound HTTPS is not blocked by your firewall
","tags":["guide","operator","deployment","docker"]},{"location":"docs/deployment/#services-unreachable-via-tunnel","title":"Services Unreachable via Tunnel","text":"
  1. Verify nginx is running: docker compose ps nginx
  2. Test locally first: curl http://localhost:4000/api/health
  3. Check nginx logs: docker compose logs nginx --tail 50
  4. Verify DNS: dig app.yourdomain.org should point to your Pangolin server

See Troubleshooting for more common issues.

","tags":["guide","operator","deployment","docker"]},{"location":"docs/getting-started/","title":"Getting Started","text":"

This guide walks you through installing Changemaker Lite, running your first deployment, and logging into the admin dashboard.

","tags":["guide","getting-started","operator"],"boost":2},{"location":"docs/getting-started/#prerequisites","title":"Prerequisites","text":"
  • Docker 24+ and Docker Compose v2
  • OpenSSL (for secret generation)
  • A Linux server (Ubuntu 22.04+ recommended) or macOS for development
  • At least 2 GB RAM and 10 GB disk space
  • A domain name (optional, but recommended for production)
","tags":["guide","getting-started","operator"],"boost":2},{"location":"docs/getting-started/#quick-install-pre-built-images","title":"Quick Install (Pre-built Images)","text":"

The fastest way to deploy \u2014 no source code, no compilation:

curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/main/scripts/install.sh | bash\n

This downloads a lightweight release package (~2 MB), runs the configuration wizard, and pulls pre-built Docker images. First startup takes ~2 minutes. See Installation for details.

","tags":["guide","getting-started","operator"],"boost":2},{"location":"docs/getting-started/#quick-start-from-source","title":"Quick Start (From Source)","text":"

For development or customization, clone the full repository:

git clone https://gitea.bnkops.com/admin/changemaker.lite\ncd changemaker.lite\n
bash config.sh\n
docker compose up -d\n

Open http://localhost:3000 and sign in with the admin email and password you configured. The API container automatically runs database migrations and seeding on first startup \u2014 no manual steps needed.

Change your password

If you used the wizard's generated password, change it immediately from the admin dashboard.

For the full setup walkthrough, see Installation.

","tags":["guide","getting-started","operator"],"boost":2},{"location":"docs/getting-started/#configuration-wizard","title":"Configuration Wizard","text":"

The config.sh wizard produces a fully populated .env file in 14 steps:

Step What It Does 1. Prerequisites Verifies Docker, Docker Compose, and OpenSSL 2. Environment file Creates .env from .env.example (backs up existing) 3. Domain Sets root domain + 14 derived variables, updates mkdocs.yml 4. Admin credentials Email + password (enforces 12+ chars, mixed case, digit) 5. Secrets Auto-generates 21 unique secrets (JWT, encryption, database, service passwords) 6. Email MailHog (dev) or production SMTP, optionally shared with Listmonk 7. Feature flags 9 toggles: Media, Listmonk, Payments, Chat, Events, Meet, SMS, Docs Comments, Bunker Ops 8. Tunnel Pangolin credentials for secure public access 9. CORS Auto-calculated allowed origins from domain 10. Nginx Renders .conf.template files with domain substitution 11. Homepage Generates services.yaml with 27 service entries 12. Permissions Creates 12 directories with container-friendly permissions 13. Upgrade watcher Installs systemd units for GUI-triggered upgrades (optional, requires sudo) 14. Summary Displays configuration summary + next steps

See Installation for detailed documentation of each step.

","tags":["guide","getting-started","operator"],"boost":2},{"location":"docs/getting-started/#services","title":"Services","text":"

Changemaker Lite includes 30+ Docker services organized into 8 categories:

Category Services Startup Core API, Admin, PostgreSQL, Redis, Nginx docker compose up -d v2-postgres redis api admin nginx Media Fastify media API docker compose up -d media-api Communication Rocket.Chat, Gancio, Jitsi Meet Individual docker compose up -d commands Newsletter & Email Listmonk, MailHog docker compose up -d listmonk-app Developer Tools Code Server, MkDocs, Gitea, NocoDB, n8n Individual docker compose up -d commands Utilities Mini QR, Excalidraw, Vaultwarden, Homepage docker compose up -d mini-qr excalidraw vaultwarden homepage Monitoring Prometheus, Grafana, Alertmanager, exporters docker compose --profile monitoring up -d Infrastructure Newt tunnel, Docker socket proxy Auto-starts with tunnel configuration

See Services Overview for the complete catalog with ports, feature flags, and detailed descriptions.

","tags":["guide","getting-started","operator"],"boost":2},{"location":"docs/getting-started/#next-steps","title":"Next Steps","text":"
  • Installation \u2014 detailed setup walkthrough and manual configuration
  • Services Overview \u2014 complete service catalog (30+ containers)
  • Environment Variables \u2014 complete .env reference
  • First Steps \u2014 create your first campaign and add locations
  • Updates & Upgrades \u2014 keep your installation current
  • Control Panel (CCP) \u2014 multi-instance management
  • Features at a Glance \u2014 visual overview of every module
  • Admin Guide \u2014 full administration reference
  • Deployment \u2014 production setup with SSL and tunneling
","tags":["guide","getting-started","operator"],"boost":2},{"location":"docs/getting-started/control-panel/","title":"Changemaker Control Panel (CCP)","text":"

The Changemaker Control Panel is a multi-tenant management layer for operators who run multiple Changemaker Lite instances from a single server. It provides a web UI to provision, monitor, and maintain a fleet of instances without manual configuration.

Single instance?

If you're running a single Changemaker Lite instance, you don't need CCP. Skip this page and continue with First Steps.

","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#when-to-use-ccp","title":"When to Use CCP","text":"

CCP is designed for:

  • Campaign organizations managing instances for multiple chapters or regions
  • Hosting providers offering Changemaker Lite as a managed service
  • Development teams spinning up isolated test instances

CCP handles the entire instance lifecycle: provisioning, configuration, health monitoring, backups, and upgrades \u2014 all from a single dashboard.

","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#architecture","title":"Architecture","text":"

CCP runs as 4 Docker containers alongside (but independent from) your CML instances:

\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502   CCP Admin GUI (5100)   \u2502  React + Vite + Ant Design\n\u2502   Dark theme, SPA        \u2502  Zustand auth store\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n             \u2502\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25bc\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502   CCP API (5000)         \u2502  Express + TypeScript\n\u2502   JWT auth, RBAC         \u2502  Prisma ORM \u2192 PostgreSQL\n\u2502   Docker socket access   \u2502  Winston logger\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n             \u2502\n    \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n    \u25bc        \u25bc        \u25bc\nccp-postgres ccp-redis  Docker Socket\n(port 5480)  (port 6399)\n
Service Container Port Description CCP API ccp-api 5000 Express API with Docker CLI access CCP Admin ccp-admin 5100 React admin GUI CCP PostgreSQL ccp-postgres 5480 CCP metadata database CCP Redis ccp-redis 6399 Rate limiting, caching

Each managed CML instance gets its own isolated set of containers and PostgreSQL database, with ports allocated from non-overlapping ranges.

","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#setup","title":"Setup","text":"","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#1-run-the-setup-script","title":"1. Run the Setup Script","text":"
cd changemaker-control-panel\nchmod +x setup.sh\n./setup.sh\n

The setup script:

  • Detects the installation directory and resolves absolute paths
  • Creates instances/ and backups/ directories
  • Copies .env.example to .env if not present
  • Sets INSTANCES_BASE_PATH, BACKUP_STORAGE_PATH, and CML_SOURCE_PATH
  • Generates random secrets for any placeholder values
","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#2-review-environment","title":"2. Review Environment","text":"

Edit .env and verify the key settings:

Variable Default Description JWT_ACCESS_SECRET Auto-generated JWT signing key JWT_REFRESH_SECRET Auto-generated Refresh token signing key ENCRYPTION_KEY Auto-generated AES-256 key for instance secrets at rest INITIAL_ADMIN_EMAIL admin@example.com Bootstrap admin email INITIAL_ADMIN_PASSWORD ChangeMe2025!! Bootstrap admin password INSTANCES_BASE_PATH ./instances Where instance directories are created CML_SOURCE_PATH Auto-detected Path to CML source repo for provisioning BACKUP_STORAGE_PATH ./backups Backup archive storage PANGOLIN_API_URL \u2014 Pangolin API for tunnel management PANGOLIN_API_KEY \u2014 Pangolin authentication PANGOLIN_ORG_ID \u2014 Pangolin organization","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#3-start-ccp","title":"3. Start CCP","text":"
docker compose up -d\n\n# Run database migrations and seed the admin user\ndocker compose exec ccp-api npx prisma migrate deploy\ndocker compose exec ccp-api npx prisma db seed\n
","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#4-log-in","title":"4. Log In","text":"

Open http://localhost:5100 and sign in with the admin credentials from .env.

","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#creating-an-instance","title":"Creating an Instance","text":"

The Create Instance wizard walks through 5 steps:

","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#step-1-basic-information","title":"Step 1: Basic Information","text":"
  • Instance name \u2014 human-readable label (e.g., \"Edmonton Chapter\")
  • Slug \u2014 URL-safe identifier (e.g., edmonton), used for directory names and compose project
  • Domain \u2014 the domain this instance will serve (e.g., edmonton.example.org)
","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#step-2-features","title":"Step 2: Features","text":"

Toggle which platform features to enable for this instance:

  • Media Manager
  • Listmonk newsletter sync
  • Payments
  • Rocket.Chat
  • Gancio events
  • Jitsi Meet
  • SMS Campaigns
","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#step-3-email","title":"Step 3: Email","text":"

Configure SMTP for the instance, or use MailHog for testing.

","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#step-4-tunnel","title":"Step 4: Tunnel","text":"

Optionally configure Pangolin tunnel credentials for public access.

","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#step-5-review","title":"Step 5: Review","text":"

Review all settings, then click Create to start provisioning.

","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#provisioning-flow","title":"Provisioning Flow","text":"

When you create an instance, CCP runs a 13-step async provisioning process:

Step What Happens 1 Validate uniqueness (slug + domain) 2 Allocate 4 ports from ranges 3 Generate 14 secrets (passwords, JWT keys, encryption keys) 4 Create Instance record (status: PROVISIONING) 5 Create instance directory 6 Copy CML source code (rsync, excluding node_modules/.git/.env) 7 Decrypt secrets and build template context 8 Render 7 config files from Handlebars templates (docker-compose.yml, .env, nginx configs, Pangolin, Prometheus) 9 Copy static files (nginx.conf) 10 docker compose pull (non-fatal if images are cached) 11 docker compose build 12 Start infrastructure (PostgreSQL + Redis), wait for healthy 13 Start API (runs migrations + seed), then start all remaining services

The admin GUI polls every 3 seconds during provisioning to show progress. When complete, the instance status changes to RUNNING.

","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#port-allocation","title":"Port Allocation","text":"

CCP allocates ports from 4 non-overlapping ranges to prevent conflicts between instances:

Range Start End Purpose API 14000 14999 Express API server Admin 13000 13999 React admin GUI PostgreSQL 15400 15499 Database Nginx 10000 10999 Reverse proxy

Each new instance receives one port from each range. Ports are tracked in the database and released when instances are deleted.

","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#pages-overview","title":"Pages Overview","text":"","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#dashboard","title":"Dashboard","text":"

At-a-glance fleet status:

  • Total instances, running, healthy, degraded, stopped, error counts
  • Instance cards with status indicators and quick actions
","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#instance-list","title":"Instance List","text":"

Searchable, filterable table of all instances with status, domain, health, and creation date.

","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#instance-detail","title":"Instance Detail","text":"

5-tab view for each instance:

Tab Content Overview Status, domain, ports, features, health summary Services Per-container status grid with restart and log-view actions Logs Real-time log viewer with service filter, tail count, and time range Backups Backup list with create, download, and delete actions Tunnel Pangolin tunnel status and configuration","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#backups","title":"Backups","text":"

Cross-instance backup management:

  • All backups in one table with instance filter
  • Stats: total count, total size, last backup time
  • \"Backup All Running\" bulk action
  • Download and delete individual archives
","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#audit-log","title":"Audit Log","text":"

Filterable activity trail with 18 action types:

  • Instance lifecycle: CREATE, UPDATE, DELETE, START, STOP, RESTART, UPGRADE
  • Backups: CREATE, DELETE
  • Tunnel: PANGOLIN_SETUP, PANGOLIN_SYNC
  • Users: LOGIN, CREATE, UPDATE, DELETE
  • Settings: UPDATE

Each entry includes timestamp, user, action, instance, IP address, and details (expandable JSON).

","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#settings","title":"Settings","text":"

CCP-level configuration:

  • Port ranges
  • Pangolin credentials
  • Default feature flags for new instances
  • Health check interval
  • Backup retention period
","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#roles","title":"Roles","text":"Role Capabilities SUPER_ADMIN Full access: create/delete instances, manage users, view secrets, delete backups OPERATOR Manage instances: create, start/stop/restart, backups, health checks VIEWER Read-only: view instances, logs, health, backups, audit log","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#security","title":"Security","text":"
  • JWT authentication with 15-minute access tokens and 7-day refresh tokens (atomic rotation)
  • AES-256-GCM encryption for instance secrets stored in the database
  • Audit logging on all operations with IP address capture
  • Role-based access control on all API endpoints
  • Docker socket access restricted to the CCP API container only
","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/control-panel/#next-steps","title":"Next Steps","text":"
  • Services Overview \u2014 learn about the services CCP provisions for each instance
  • Updates & Upgrades \u2014 upgrading CML instances
  • Deployment \u2014 production setup with tunneling and SSL
","tags":["guide","operator","multi-tenant"]},{"location":"docs/getting-started/environment-variables/","title":"Environment Variables","text":"

Changemaker Lite uses a single .env file at the project root to configure all services. Copy the example file to get started:

cp .env.example .env\n

Security Essentials

  • Change every REQUIRED_STRONG_PASSWORD_CHANGE_THIS value before starting services
  • Generate secrets with openssl rand -hex 32 (or -hex 16 where noted)
  • Never commit .env to version control
  • Use unique values for each secret \u2014 do not reuse JWT secrets as encryption keys
","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#quick-reference","title":"Quick Reference","text":"

Variables are grouped by service. Each table marks whether a variable is required for a basic deployment or optional (has a sensible default or only needed for specific features).

Symbol Meaning Must be set before first run Has a working default; change for production Feature flag \u2014 opt-in","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#general","title":"General","text":"Variable Default Description NODE_ENV development Set to production for production deployments. Controls logging, error detail, and security checks. DOMAIN cmlite.org Root domain. Used for nginx subdomain routing (app.DOMAIN, api.DOMAIN, etc.). The root domain serves the MkDocs documentation site; all application routes live under app.DOMAIN. USER_ID 1000 UID for container file ownership. Match your host user's UID (id -u). GROUP_ID 1000 GID for container file ownership. Match your host user's GID (id -g). DOCKER_GROUP_ID 984 GID of the docker group on the host. Needed for containers that access the Docker socket. Find with getent group docker.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#postgresql-main-database","title":"PostgreSQL (Main Database)","text":"

The primary database for both the Express API and the Fastify Media API (shared).

Variable Default Description V2_POSTGRES_USER changemaker Database username. V2_POSTGRES_PASSWORD \u2014 Must change. Database password. V2_POSTGRES_DB changemaker_v2 Database name. V2_POSTGRES_PORT 5433 Host port mapping. The container listens on 5432 internally.

Connection string

The DATABASE_URL is constructed automatically inside Docker. If running locally, set:

DATABASE_URL=postgresql://changemaker:YOUR_PASSWORD@localhost:5433/changemaker_v2\n

","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#jwt-authentication","title":"JWT Authentication","text":"Variable Default Description JWT_ACCESS_SECRET \u2014 Secret for signing access tokens. Generate with openssl rand -hex 32. JWT_REFRESH_SECRET \u2014 Secret for signing refresh tokens. Must differ from the access secret. JWT_ACCESS_EXPIRY 15m Access token lifetime. Short-lived by design. JWT_REFRESH_EXPIRY 7d Refresh token lifetime. Tokens are rotated atomically on each refresh.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#encryption-key","title":"Encryption Key","text":"Variable Default Description ENCRYPTION_KEY \u2014 AES key for encrypting secrets stored in the database (SMTP passwords, API keys, etc.). Generate with openssl rand -hex 32. Must not reuse a JWT secret. Required in all environments (no longer falls back to JWT secret in development).","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#initial-admin-account","title":"Initial Admin Account","text":"

These credentials create the first super-admin user during database seeding (npx prisma db seed).

Variable Default Description INITIAL_ADMIN_EMAIL admin@cmlite.org Email address for the initial admin. INITIAL_ADMIN_PASSWORD \u2014 Must change. Must be 12+ characters with uppercase, lowercase, and a digit. Change this password after first login.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#api-server","title":"API Server","text":"Variable Default Description API_PORT 4000 Host port for the Express API. API_URL http://localhost:4000 Public URL of the API. Used for generating links in emails and QR codes. CORS_ORIGINS http://localhost:3000,http://localhost Comma-separated list of allowed CORS origins. Add your production domain (e.g., https://app.yourdomain.org) for production.

Production CORS

If you deploy behind a tunnel (Pangolin, Cloudflare) and API requests fail with CORS errors, add your production app. subdomain here:

CORS_ORIGINS=https://app.betteredmonton.org,http://localhost:3000,http://localhost\n
Then restart the API: docker compose restart api

","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#admin-gui","title":"Admin GUI","text":"Variable Default Description ADMIN_PORT 3000 Host port for the React admin dashboard. ADMIN_URL http://localhost:3000 Public URL of the admin GUI.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#nginx-reverse-proxy","title":"Nginx Reverse Proxy","text":"Variable Default Description NGINX_HTTP_PORT 80 HTTP port. All subdomains route through nginx. NGINX_HTTPS_PORT 443 HTTPS port. SSL is typically handled by the tunnel provider (Pangolin/Cloudflare).","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#redis","title":"Redis","text":"

Shared by rate limiting, BullMQ job queues, geocoding cache, and session data.

Variable Default Description REDIS_PASSWORD \u2014 Must change. Redis requires authentication. REDIS_URL redis://:${REDIS_PASSWORD}@redis-changemaker:6379 Full connection URL. Uses the password variable automatically.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#payments-stripe","title":"Payments (Stripe)","text":"Variable Default Description ENABLE_PAYMENTS false Set to true to enable the payments feature (memberships, products, donations). Stripe API keys are stored encrypted in the database via the admin settings page.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#email-smtp","title":"Email / SMTP","text":"Variable Default Description SMTP_HOST mailhog-changemaker SMTP server. Default points to the MailHog dev container. SMTP_PORT 1025 SMTP port. 1025 for MailHog, 587 for most production SMTP. SMTP_USER (empty) SMTP username. Not needed for MailHog. SMTP_PASS (empty) SMTP password. SMTP_FROM noreply@cmlite.org \"From\" address on outgoing emails. SMTP_FROM_NAME Changemaker Lite Display name for the \"From\" header. EMAIL_TEST_MODE true When true, all emails go to MailHog instead of real SMTP. Set to false in production. TEST_EMAIL_RECIPIENT admin@cmlite.org Catch-all recipient when test mode is on.

Development email

With EMAIL_TEST_MODE=true, all outgoing email is captured in MailHog at http://localhost:8025. No real emails are sent.

","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#listmonk-newsletters","title":"Listmonk (Newsletters)","text":"

Listmonk handles newsletter/marketing campaigns. Sync with the main platform is opt-in.

Variable Default Description LISTMONK_PORT 9001 Listmonk web UI port. LISTMONK_DB_PORT 5434 Listmonk's own PostgreSQL port (separate from the main DB). Uses 5434 to avoid conflict with the main PostgreSQL (5432 internal / 5433 host). LISTMONK_DB_USER listmonk Listmonk database user. LISTMONK_DB_PASSWORD \u2014 Listmonk database password. LISTMONK_DB_NAME listmonk Listmonk database name. LISTMONK_WEB_ADMIN_USER admin Login for the Listmonk web dashboard. LISTMONK_WEB_ADMIN_PASSWORD \u2014 Password for the Listmonk web dashboard. LISTMONK_API_USER v2-api API user for programmatic access (auto-created by init container). LISTMONK_API_TOKEN \u2014 Token for API user. Generate with openssl rand -hex 16. LISTMONK_ADMIN_USER v2-api Same as LISTMONK_API_USER (used by the sync service). LISTMONK_ADMIN_PASSWORD \u2014 Same as LISTMONK_API_TOKEN. LISTMONK_SYNC_ENABLED false Set to true to sync participants/locations/users to Listmonk lists. LISTMONK_WEBHOOK_SECRET (empty) Shared secret for Listmonk webhook callbacks. LISTMONK_PROXY_PORT 9002 Nginx proxy port for Listmonk. Listmonk SMTP settings

Listmonk has its own SMTP configuration, separate from the main platform's:

Variable Default Description LISTMONK_SMTP_HOST mailhog-changemaker SMTP host for Listmonk. LISTMONK_SMTP_PORT 1025 SMTP port. LISTMONK_SMTP_USER (empty) SMTP username. LISTMONK_SMTP_PASSWORD (empty) SMTP password. LISTMONK_SMTP_TLS_TYPE none TLS mode: none, STARTTLS, or TLS. LISTMONK_SMTP_FROM Changemaker Lite <noreply@cmlite.org> From address for newsletters.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#represent-api-canadian-electoral-data","title":"Represent API (Canadian Electoral Data)","text":"Variable Default Description REPRESENT_API_URL https://represent.opennorth.ca OpenNorth Represent API endpoint. Used for postal code \u2192 representative lookups. No API key required.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#nocodb-data-browser","title":"NocoDB (Data Browser)","text":"

Read-only database browser. Useful for inspecting data without SQL.

Variable Default Description NOCODB_V2_PORT / NOCODB_PORT 8091 Host port for the NocoDB web UI. NOCODB_URL http://changemaker-v2-nocodb:8080 Internal Docker URL. NC_ADMIN_EMAIL admin@cmlite.org NocoDB admin email. NC_ADMIN_PASSWORD \u2014 NocoDB admin password.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#media-manager","title":"Media Manager","text":"

Video library with upload, analytics, scheduling, and a public gallery.

Variable Default Description ENABLE_MEDIA_FEATURES false Set to true to enable the media system. MEDIA_API_PORT 4100 Fastify media API port. MEDIA_API_PUBLIC_URL http://media-api:4100 Internal URL for the media API container. MEDIA_ROOT /media/library Path to the video library inside the container. MEDIA_UPLOADS /media/uploads Path for upload processing. MAX_UPLOAD_SIZE_GB 10 Maximum single-file upload size in gigabytes. PUBLIC_MEDIA_PORT 3100 Public media gallery server port. VIDEO_PLAYER_DEBUG false Enable verbose video player logging. Analytics & scheduling settings Variable Default Description VIDEO_ANALYTICS_RETENTION_DAYS 90 Days to retain analytics data. GDPR-compliant with IP hashing. VIDEO_ANALYTICS_IP_HASHING_ENABLED true Hash viewer IPs for privacy. VIDEO_SCHEDULE_DEFAULT_TIMEZONE UTC Default timezone for scheduled publishing. VIDEO_SCHEDULE_NOTIFICATION_ENABLED true Notify on scheduled publish/unpublish. VIDEO_PREVIEW_LINK_EXPIRY_HOURS 24 Preview link JWT expiry (hours).","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#gitea-git-hosting","title":"Gitea (Git Hosting)","text":"

Self-hosted Git repository. Optional service.

Variable Default Description GITEA_URL http://gitea-changemaker:3000 Internal container URL for Gitea. GITEA_PORT / GITEA_WEB_PORT 3030 Gitea web UI port. GITEA_SSH_PORT 2222 Gitea SSH port for git operations. GITEA_DB_TYPE mysql Database type (Gitea uses its own MySQL). GITEA_DB_HOST gitea-db:3306 Internal database host. GITEA_DB_NAME gitea Database name. GITEA_DB_USER gitea Database user. GITEA_DB_PASSWD \u2014 Gitea database password. GITEA_DB_ROOT_PASSWORD \u2014 MySQL root password for Gitea. GITEA_ROOT_URL https://git.cmlite.org Public-facing URL for Gitea. GITEA_DOMAIN git.cmlite.org Domain used in git clone URLs. Gitea Docs Comments

Enable comments on MkDocs documentation pages, backed by Gitea Issues.

Variable Default Description GITEA_COMMENTS_ENABLED false Enable comments on MkDocs pages. GITEA_API_TOKEN (empty) Personal access token with repo write scope. Create in Gitea \u2192 Settings \u2192 Applications. GITEA_COMMENTS_REPO_OWNER (empty) Gitea username that owns the docs-comments repo. GITEA_COMMENTS_REPO_NAME docs-comments Repository name (auto-created via admin setup). GITEA_OAUTH_CLIENT_ID (empty) OAuth2 application client ID (create in Gitea \u2192 Settings \u2192 Applications \u2192 OAuth2). GITEA_OAUTH_CLIENT_SECRET (empty) OAuth2 application client secret.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#n8n-workflow-automation","title":"n8n (Workflow Automation)","text":"Variable Default Description N8N_PORT 5678 n8n web UI port. N8N_HOST n8n.cmlite.org Public hostname for n8n. N8N_ENCRYPTION_KEY \u2014 Encryption key for n8n credentials storage. N8N_USER_EMAIL admin@example.com Initial n8n admin email. N8N_USER_PASSWORD \u2014 Initial n8n admin password. GENERIC_TIMEZONE UTC Timezone for n8n cron triggers.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#mkdocs-documentation","title":"MkDocs (Documentation)","text":"Variable Default Description MKDOCS_PORT 4003 MkDocs dev server port (live preview). MKDOCS_SITE_SERVER_PORT 4004 MkDocs static site server port. BASE_DOMAIN https://cmlite.org Base URL for generated documentation links. MKDOCS_PREVIEW_URL http://mkdocs:8000 Internal container URL. MKDOCS_DOCS_PATH /mkdocs/docs Documentation source directory inside the container.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#code-server-web-ide","title":"Code Server (Web IDE)","text":"Variable Default Description CODE_SERVER_PORT 8888 Code Server web UI port. CODE_SERVER_URL http://code-server-changemaker:8443 Internal container URL.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#homepage-service-dashboard","title":"Homepage (Service Dashboard)","text":"Variable Default Description HOMEPAGE_PORT 3010 Homepage web UI port. HOMEPAGE_EMBED_PORT 8887 Port for iframe embedding in admin. HOMEPAGE_VAR_BASE_URL http://localhost Base URL used in Homepage service links.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#mini-qr-qr-code-generator","title":"Mini QR (QR Code Generator)","text":"Variable Default Description MINI_QR_PORT 8089 Mini QR direct access port. MINI_QR_URL http://mini-qr:8080 Internal container URL. MINI_QR_EMBED_PORT 8885 Port for iframe embedding (walk sheets, cut exports).","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#excalidraw-whiteboard","title":"Excalidraw (Whiteboard)","text":"Variable Default Description EXCALIDRAW_PORT 8090 Excalidraw web UI port. EXCALIDRAW_URL http://excalidraw-changemaker:80 Internal container URL. EXCALIDRAW_EMBED_PORT 8886 Port for iframe embedding. EXCALIDRAW_WS_URL wss://draw.cmlite.org WebSocket URL for real-time collaboration.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#vaultwarden-password-manager","title":"Vaultwarden (Password Manager)","text":"

Self-hosted Bitwarden-compatible password manager. Optional service.

Variable Default Description VAULTWARDEN_PORT 8445 Vaultwarden web UI port. VAULTWARDEN_URL http://vaultwarden-changemaker:80 Internal container URL. VAULTWARDEN_EMBED_PORT 8890 Port for iframe embedding in admin. VAULTWARDEN_ADMIN_TOKEN (empty) Admin panel token (access at /admin). Generate with openssl rand -hex 32. VAULTWARDEN_DOMAIN https://vault.cmlite.org Public-facing URL. Must use HTTPS \u2014 Bitwarden web vault enforces HTTPS for account creation. Set to your Pangolin tunnel URL. VAULTWARDEN_SIGNUPS_ALLOWED false Allow new user self-registration. Keep false and use admin panel invites. VAULTWARDEN_WEBSOCKET_ENABLED true Enable WebSocket notifications for real-time sync. VAULTWARDEN_SMTP_SECURITY off SMTP security mode: off for MailHog, starttls or force_tls for production. Uses the main SMTP_* variables for host/credentials.

Initial setup

The vaultwarden-init container automatically invites the INITIAL_ADMIN_EMAIL user when starting. Check MailHog (or your SMTP) for the invitation email.

","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#rocketchat-team-chat","title":"Rocket.Chat (Team Chat)","text":"

Self-hosted team chat for volunteer coordination. Requires MongoDB (auto-configured).

Variable Default Description ENABLE_CHAT false Set to true to enable the Rocket.Chat integration. The initial default; once saved in admin Settings, the DB value is authoritative. ROCKETCHAT_ADMIN_USER rcadmin Rocket.Chat admin username. ROCKETCHAT_ADMIN_PASSWORD \u2014 Rocket.Chat admin password. ROCKETCHAT_URL http://rocketchat-changemaker:3000 Internal container URL. ROCKETCHAT_EMBED_PORT 8891 Port for iframe embedding in admin. MONGO_ROOT_USER rocketchat MongoDB admin username. MONGO_ROOT_PASSWORD \u2014 MongoDB admin password. MongoDB runs with --auth enabled.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#gancio-event-management","title":"Gancio (Event Management)","text":"

Self-hosted event management platform. Uses the shared PostgreSQL database (auto-created by init-gancio-db.sh).

Variable Default Description GANCIO_PORT 8092 Gancio web UI port. GANCIO_URL http://gancio-changemaker:13120 Internal container URL. GANCIO_EMBED_PORT 8892 Port for iframe embedding in admin. GANCIO_BASE_URL https://events.cmlite.org Public-facing URL for Gancio. Used in event links. GANCIO_ADMIN_USER admin Gancio admin username for shift-to-event sync (OAuth login). GANCIO_ADMIN_PASSWORD \u2014 Gancio admin password. GANCIO_SYNC_ENABLED false Set to true to enable automatic shift \u2192 Gancio event synchronization.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#jitsi-meet-video-conferencing","title":"Jitsi Meet (Video Conferencing)","text":"

Self-hosted video conferencing with JWT authentication. Integrates with Rocket.Chat for in-channel video calls.

Variable Default Description ENABLE_MEET false Set to true to enable the Jitsi Meet integration. The initial default; once saved in admin Settings, the DB value is authoritative. JITSI_APP_ID changemaker JWT application ID. Must match across Jitsi Prosody, Rocket.Chat app settings, and JWT_ACCEPTED_ISSUERS/JWT_ACCEPTED_AUDIENCES. JITSI_APP_SECRET \u2014 JWT secret for signing Jitsi tokens. Generate with openssl rand -hex 32. Shared between Jitsi Prosody, Rocket.Chat, and the API. JITSI_JICOFO_AUTH_PASSWORD \u2014 Internal XMPP password for Jicofo (conference focus). Generate with openssl rand -hex 16. JITSI_JVB_AUTH_PASSWORD \u2014 Internal XMPP password for JVB (video bridge). Generate with openssl rand -hex 16. JITSI_EMBED_PORT 8893 Port for iframe embedding in admin. JITSI_URL http://jitsi-web-changemaker:80 Internal container URL. JVB_ADVERTISE_IP (empty) Server's public IP address. Required in production for NAT traversal so remote participants can connect. JVB_PORT 10000 UDP port for media traffic. Must be open in your firewall.

Production requirements

  • JVB_ADVERTISE_IP must be set to your server's public IP for calls to work outside the local network.
  • Port 10000/udp must be open in your firewall for media traffic.
  • Calls must go through the production domain (not localhost) for SSL/JWT to work.
","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#sms-campaigns-termux-android-bridge","title":"SMS Campaigns (Termux Android Bridge)","text":"

Send SMS messages via an Android phone running the Termux API server. The phone acts as an SMS gateway.

Variable Default Description ENABLE_SMS false Set to true to enable SMS campaigns. The initial default; once saved in admin Settings, the DB value is authoritative. TERMUX_API_URL http://10.0.0.193:5001 URL of the Termux API server running on the Android phone. TERMUX_API_KEY (empty) API key for authenticating with the Termux server (HMAC auth via X-API-Key header). SMS_DELAY_BETWEEN_MS 3000 Delay between sending individual SMS messages (ms). Prevents carrier throttling. SMS_MAX_RETRIES 3 Maximum retry attempts for failed SMS sends. SMS_RESPONSE_SYNC_INTERVAL_MS 30000 How often to poll the phone's inbox for responses (ms). SMS_DEVICE_MONITOR_INTERVAL_MS 30000 How often to check device health \u2014 battery, connectivity (ms).

GUI configuration

The Termux API URL and API key can also be configured from Admin \u2192 Settings \u2192 SMS. Database values override these env vars when set.

","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#mailhog-development-email","title":"MailHog (Development Email)","text":"Variable Default Description MAILHOG_SMTP_PORT 1025 SMTP port for capturing emails. MAILHOG_WEB_PORT 8025 Web UI to view captured emails.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#nar-national-address-register","title":"NAR (National Address Register)","text":"

Canadian address data import for geographic canvassing.

Variable Default Description NAR_DATA_DIR /data Path to extracted NAR data inside the container. Expects YYYYMM/Addresses/ and YYYYMM/Locations/ subdirectories. Mount via ./data:/data:ro in Docker Compose.

Download NAR data from Statistics Canada.

","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#geocoding","title":"Geocoding","text":"

Multi-provider geocoding for address resolution. Works out of the box with free providers; optional paid providers improve accuracy.

Variable Default Description MAPBOX_API_KEY (empty) Mapbox API key for improved geocoding accuracy. Free tier: 100k requests/month. Sign up. GEOCODING_RATE_LIMIT_MS 1100 Delay between requests to free providers (ms). Respects rate limits. GEOCODING_CACHE_ENABLED true Enable Redis-backed geocoding cache. GEOCODING_CACHE_TTL_HOURS 24 Cache lifetime in hours. GOOGLE_MAPS_API_KEY (empty) Google Maps API key. Most accurate but $0.005/request after free tier. GOOGLE_MAPS_ENABLED false Enable Google Maps as a geocoding provider. GEOCODING_PARALLEL_ENABLED true Enable parallel geocoding for bulk imports (~10x speedup). GEOCODING_BATCH_SIZE 10 Number of concurrent geocoding requests during bulk operations. BULK_GEOCODE_ENABLED true Enable bulk re-geocoding from the admin UI. BULK_GEOCODE_MAX_BATCH 5000 Maximum locations per bulk geocoding run.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#overpass-area-import","title":"Overpass / Area Import","text":"

OpenStreetMap data import for map enrichment.

Variable Default Description OVERPASS_API_URL https://overpass-api.de/api/interpreter Overpass API endpoint. Use a private instance for heavy usage. OVERPASS_MIN_DELAY_MS 30000 Minimum delay between requests (ms). The public API requires 30 seconds. AREA_IMPORT_MAX_GRID_POINTS 500 Maximum reverse-geocode grid points per area import.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#pangolin-tunnel","title":"Pangolin Tunnel","text":"

Expose services to the internet without port forwarding, using a self-hosted Pangolin instance.

Variable Default Description PANGOLIN_API_URL https://api.bnkserve.org/v1 Pangolin server API endpoint. PANGOLIN_API_KEY (empty) API key for Pangolin management. PANGOLIN_ORG_ID (empty) Organization ID in Pangolin. PANGOLIN_SITE_ID (empty) Site ID (populated after setup via admin GUI). PANGOLIN_ENDPOINT https://pangolin.bnkserve.org Pangolin tunnel endpoint. PANGOLIN_NEWT_ID (empty) Newt client ID (populated after setup). PANGOLIN_NEWT_SECRET (empty) Newt client secret (populated after setup).

Setup flow

Configure the tunnel from Admin \u2192 Settings \u2192 Pangolin. The setup wizard walks you through creating a site, copying credentials, and connecting the Newt container. See Deployment for the full guide.

","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#monitoring","title":"Monitoring","text":"

These services are behind the monitoring Docker Compose profile. Start them with:

docker compose --profile monitoring up -d\n
Variable Default Description PROMETHEUS_PORT 9090 Prometheus web UI / query port. GRAFANA_PORT 3005 Grafana dashboard port. GRAFANA_ADMIN_PASSWORD admin Change in production. GRAFANA_ROOT_URL http://localhost:3005 Public URL for Grafana (used in links). CADVISOR_PORT 8086 cAdvisor container metrics port. NODE_EXPORTER_PORT 9100 Prometheus node exporter port. REDIS_EXPORTER_PORT 9121 Redis metrics exporter port. ALERTMANAGER_PORT 9093 Alertmanager web UI port. GOTIFY_PORT 8889 Gotify push notification port. GOTIFY_ADMIN_USER admin Gotify admin username. GOTIFY_ADMIN_PASSWORD admin Change in production. GRAFANA_EMBED_PORT 8894 Port for iframe embedding Grafana in admin. ALERTMANAGER_EMBED_PORT 8895 Port for iframe embedding Alertmanager in admin.","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#bunker-ops-fleet-management","title":"Bunker Ops (Fleet Management)","text":"

Remote metrics push for managing multiple Changemaker Lite instances from a central monitoring server.

Variable Default Description INSTANCE_LABEL (empty) Unique label for this instance (used as a Prometheus metric label). Falls back to DOMAIN if empty. BUNKER_OPS_ENABLED false Enable remote metrics push to a central VictoriaMetrics server. BUNKER_OPS_REMOTE_WRITE_URL (empty) VictoriaMetrics remote_write endpoint (e.g., https://ops.example.com/api/v1/write).","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#generating-secrets","title":"Generating Secrets","text":"

Use these commands to generate all required secrets at once:

# JWT secrets (two separate values)\necho \"JWT_ACCESS_SECRET=$(openssl rand -hex 32)\"\necho \"JWT_REFRESH_SECRET=$(openssl rand -hex 32)\"\n\n# Encryption key (must differ from JWT secrets)\necho \"ENCRYPTION_KEY=$(openssl rand -hex 32)\"\n\n# Database and Redis passwords\necho \"V2_POSTGRES_PASSWORD=$(openssl rand -hex 24)\"\necho \"REDIS_PASSWORD=$(openssl rand -hex 24)\"\n\n# Listmonk\necho \"LISTMONK_DB_PASSWORD=$(openssl rand -hex 24)\"\necho \"LISTMONK_WEB_ADMIN_PASSWORD=$(openssl rand -hex 16)\"\nLISTMONK_TOKEN=$(openssl rand -hex 16)\necho \"LISTMONK_API_TOKEN=$LISTMONK_TOKEN\"\necho \"LISTMONK_ADMIN_PASSWORD=$LISTMONK_TOKEN\"\n\n# Supporting services\necho \"GITEA_DB_PASSWD=$(openssl rand -hex 24)\"\necho \"GITEA_DB_ROOT_PASSWORD=$(openssl rand -hex 24)\"\necho \"N8N_ENCRYPTION_KEY=$(openssl rand -hex 32)\"\necho \"N8N_USER_PASSWORD=$(openssl rand -hex 16)\"\necho \"NC_ADMIN_PASSWORD=$(openssl rand -hex 16)\"\necho \"INITIAL_ADMIN_PASSWORD=$(openssl rand -base64 18)\"\n\n# Vaultwarden\necho \"VAULTWARDEN_ADMIN_TOKEN=$(openssl rand -hex 32)\"\n\n# Rocket.Chat + MongoDB\necho \"ROCKETCHAT_ADMIN_PASSWORD=$(openssl rand -hex 16)\"\necho \"MONGO_ROOT_PASSWORD=$(openssl rand -hex 24)\"\n\n# Gancio\necho \"GANCIO_ADMIN_PASSWORD=$(openssl rand -hex 16)\"\n\n# Jitsi Meet\necho \"JITSI_APP_SECRET=$(openssl rand -hex 32)\"\necho \"JITSI_JICOFO_AUTH_PASSWORD=$(openssl rand -hex 16)\"\necho \"JITSI_JVB_AUTH_PASSWORD=$(openssl rand -hex 16)\"\n

Tip

Copy the output and paste the values into your .env file. The INITIAL_ADMIN_PASSWORD uses base64 encoding to ensure it contains uppercase, lowercase, and digits (meeting the password policy).

","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/environment-variables/#minimal-vs-full-deployment","title":"Minimal vs Full Deployment","text":"Minimal (Core Only)Full Stack

For a basic deployment with campaigns, map, and admin:

Required variables
V2_POSTGRES_PASSWORD=...\nREDIS_PASSWORD=...\nJWT_ACCESS_SECRET=...\nJWT_REFRESH_SECRET=...\nENCRYPTION_KEY=...\nINITIAL_ADMIN_PASSWORD=...\n
Start services
docker compose up -d v2-postgres redis api admin\n

For the complete platform including media, newsletters, monitoring, and all services:

Additional variables needed
# Everything above, plus:\nENABLE_MEDIA_FEATURES=true\nENABLE_PAYMENTS=true\nENABLE_CHAT=true\nENABLE_MEET=true\nENABLE_SMS=true\nLISTMONK_SYNC_ENABLED=true\nGANCIO_SYNC_ENABLED=true\nLISTMONK_DB_PASSWORD=...\nLISTMONK_WEB_ADMIN_PASSWORD=...\nLISTMONK_API_TOKEN=...\nNC_ADMIN_PASSWORD=...\nGITEA_DB_PASSWD=...\nGITEA_DB_ROOT_PASSWORD=...\nN8N_ENCRYPTION_KEY=...\nN8N_USER_PASSWORD=...\nVAULTWARDEN_ADMIN_TOKEN=...\nROCKETCHAT_ADMIN_PASSWORD=...\nMONGO_ROOT_PASSWORD=...\nGANCIO_ADMIN_PASSWORD=...\nJITSI_APP_SECRET=...\nJITSI_JICOFO_AUTH_PASSWORD=...\nJITSI_JVB_AUTH_PASSWORD=...\nJVB_ADVERTISE_IP=your.public.ip.here\nEMAIL_TEST_MODE=false\nSMTP_HOST=smtp.your-provider.com\nSMTP_PORT=587\nSMTP_USER=you@example.com\nSMTP_PASS=your-smtp-password\n
Start services
docker compose up -d\ndocker compose --profile monitoring up -d\n
","tags":["reference","getting-started","operator","configuration"]},{"location":"docs/getting-started/features/","title":"Features at a Glance","text":"

Changemaker Lite bundles advocacy campaigns, geographic mapping, volunteer management, media hosting, and landing pages into a single self-hosted platform. Every feature can be toggled on or off from Settings in the admin panel.

","tags":["reference","getting-started"],"boost":2},{"location":"docs/getting-started/features/#core-features","title":"Core Features","text":"
  • Advocacy Campaigns

    Help supporters contact elected representatives through email campaigns with postal code lookup and a public response wall.

    Campaign guide

  • Map & Canvassing

    Manage locations, draw canvassing territories, schedule volunteer shifts, and run GPS-tracked door-to-door outreach.

    Map guide

  • Media Manager

    Upload videos and photos, curate playlists, publish a shorts feed, and track engagement with built-in analytics.

    Media guide

  • Landing Pages

    Build campaign microsites with a drag-and-drop GrapesJS visual editor and publish at custom slugs.

    Landing pages guide

  • Payments (Stripe)

    Accept memberships, product sales, and donations with encrypted Stripe integration and branded donation pages.

    Payments guide

  • SMS Campaigns

    Text message outreach via a Termux Android bridge with contact lists, templates, and response tracking.

    SMS guide

  • Public Homepage

    Customizable landing page with hero section, live stats, featured campaigns, upcoming shifts, and activity feed.

    Homepage guide

","tags":["reference","getting-started"],"boost":2},{"location":"docs/getting-started/features/#communication-collaboration","title":"Communication & Collaboration","text":"
  • Newsletter (Listmonk)

    Opt-in mailing lists and newsletter campaigns with automatic subscriber sync from shifts and contacts.

    Newsletter guide

  • Email Templates

    Reusable email templates with variable substitution for campaign communications.

    Email templates guide

  • Team Chat (Rocket.Chat)

    Self-hosted team chat with iframe integration, floating widget, and native mobile app support.

    Chat guide

  • Video Conferencing (Jitsi)

    Self-hosted video calls integrated with Rocket.Chat via JWT authentication \u2014 no separate login required.

    Video conferencing guide

","tags":["reference","getting-started"],"boost":2},{"location":"docs/getting-started/features/#integrations-services","title":"Integrations & Services","text":"
  • Events (Gancio)

    Self-hosted event management with automatic shift-to-event sync and an embeddable calendar widget.

    Events guide

  • Password Manager (Vaultwarden)

    Bitwarden-compatible password vault for secure team credential sharing.

    Password manager guide

  • User Provisioning

    Automatic account creation and sync across Rocket.Chat, Gitea, Vaultwarden, and Listmonk.

    User provisioning guide

  • People / Contacts

    Centralized contact management for supporters, donors, and community members with cross-module linking.

    People guide

  • Whiteboard (Excalidraw)

    Self-hosted collaborative whiteboard for brainstorming, planning, and visual collaboration.

    Whiteboard guide

","tags":["reference","getting-started"],"boost":2},{"location":"docs/getting-started/features/#volunteer-portal","title":"Volunteer Portal","text":"
  • Social Connections

    Friend system, activity feed, groups, profiles, pokes, and privacy controls for volunteer community building.

    Social guide

  • Achievements & Leaderboard

    Badge system with 11 achievements across 4 categories, progress tracking, and competitive leaderboards.

    Achievements guide

  • Volunteer Quick Join

    QR code invite links for instant volunteer onboarding \u2014 scan, fill a short form, and start canvassing.

    Quick join guide

","tags":["reference","getting-started"],"boost":2},{"location":"docs/getting-started/features/#automation-analytics","title":"Automation & Analytics","text":"
  • Email Automation

    Automated volunteer lifecycle emails \u2014 thank-you notes, shift reminders, weekly summaries, and re-engagement campaigns.

    Automation guide

  • Data Quality Dashboard

    Geocoding quality metrics with per-provider stats, confidence tiers, and coverage analysis.

    Data quality guide

  • Documentation Analytics

    Page view tracking and engagement metrics for MkDocs documentation pages.

    Docs analytics guide

","tags":["reference","getting-started"],"boost":2},{"location":"docs/getting-started/features/#admin-tools","title":"Admin Tools","text":"
  • Docs Comments

    Gitea-backed comment system for documentation pages with anonymous posting and moderation.

    Docs comments guide

  • Command Palette

    Global Ctrl+K search across pages, campaigns, locations, users, settings, and media.

    Command palette guide

  • Navigation Settings

    Customize the public navigation menu with feature toggles, custom links, and drag-and-drop reordering.

    Navigation guide

  • Platform Settings

    Five-tab settings page covering organization details, theme colors, email configuration, feature flags, and notifications.

    Settings guide

  • Social Sharing (OG Tags)

    Open Graph meta tags for campaigns, landing pages, and gallery videos \u2014 rich link previews on social media.

    OG sharing guide

  • Gallery Ads

    Internal ad system with 5 ad types, audience targeting, scheduling, frequency caps, and CTR analytics.

    Gallery ads guide

  • Self-Service Contact Profile

    Token-based public profile pages where contacts can view and update their information and preferences.

    Contact profile guide

","tags":["reference","getting-started"],"boost":2},{"location":"docs/getting-started/first-steps/","title":"First Steps","text":"

You've installed Changemaker Lite \u2014 here's what to do next.

","tags":["tutorial","getting-started","admin"],"boost":2},{"location":"docs/getting-started/first-steps/#1-log-in","title":"1. Log In","text":"

Open the admin panel at http://localhost:3000 (or app.DOMAIN in production) and sign in with the admin email and password you configured during setup.

Change your password

If you used the wizard's generated password, change it immediately from Settings > Organization.

","tags":["tutorial","getting-started","admin"],"boost":2},{"location":"docs/getting-started/first-steps/#2-explore-the-dashboard","title":"2. Explore the Dashboard","text":"

The dashboard gives you an at-a-glance view of platform activity. Initially it will be empty \u2014 that's normal.

","tags":["tutorial","getting-started","admin"],"boost":2},{"location":"docs/getting-started/first-steps/#3-configure-settings","title":"3. Configure Settings","text":"

Visit Settings (/app/settings) to:

  • Set your organization name, logo, and tagline
  • Choose theme colors for admin and public interfaces
  • Enable feature modules (campaigns, map, media, payments, etc.)
  • Configure email delivery (MailHog for testing, production SMTP for live use)
  • Check the System tab to verify your installation and check for updates

","tags":["tutorial","getting-started","admin"],"boost":2},{"location":"docs/getting-started/first-steps/#4-create-your-first-campaign","title":"4. Create Your First Campaign","text":"

Go to Campaigns (/app/campaigns) and click Create Campaign:

  1. Write a title and description
  2. Compose the email template supporters will send
  3. Select government levels to target
  4. Publish \u2014 the campaign appears at /campaigns

","tags":["tutorial","getting-started","admin"],"boost":2},{"location":"docs/getting-started/first-steps/#5-add-locations","title":"5. Add Locations","text":"

Go to Locations (/app/map) and add addresses:

  • Click on the map to drop a marker
  • Import a CSV of addresses
  • Use the NAR (National Address Register) import for Canadian data

","tags":["tutorial","getting-started","admin"],"boost":2},{"location":"docs/getting-started/first-steps/#6-schedule-a-shift","title":"6. Schedule a Shift","text":"

Go to Shifts (/app/map/shifts) and create your first volunteer shift:

  1. Set a date, time, and location description
  2. Optionally link it to a canvassing area
  3. Share the public shifts page (/shifts) with volunteers

","tags":["tutorial","getting-started","admin"],"boost":2},{"location":"docs/getting-started/first-steps/#7-invite-volunteers","title":"7. Invite Volunteers","text":"

Share the shifts page link or generate QR codes for in-person events. Volunteers sign up with just an email address.

","tags":["tutorial","getting-started","admin"],"boost":2},{"location":"docs/getting-started/first-steps/#next-steps","title":"Next Steps","text":"
  • Services Overview \u2014 complete catalog of all 30+ Docker services
  • Updates & Upgrades \u2014 keep your installation current
  • Features at a Glance \u2014 visual overview of every module
  • Admin Guide \u2014 full administration reference
  • Deployment \u2014 production setup with tunneling and SSL
","tags":["tutorial","getting-started","admin"],"boost":2},{"location":"docs/getting-started/installation/","title":"Installation","text":"

Changemaker Lite runs as a set of Docker containers orchestrated by Docker Compose. The config.sh wizard handles all configuration \u2014 or you can set things up manually.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#prerequisites","title":"Prerequisites","text":"
  • Docker 24+ and Docker Compose v2
  • OpenSSL (for secret generation)
  • A Linux server (Ubuntu 22.04+ recommended) or macOS for development
  • At least 2 GB RAM for core services, 4 GB for the full stack
  • A domain name (optional for development, recommended for production)
","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#quick-start","title":"Quick Start","text":"

Clone the repository:

git clone https://gitea.bnkops.com/admin/changemaker.lite\ncd changemaker.lite\n

Run the configuration wizard:

bash config.sh\n

Start all services:

docker compose up -d\n

Open http://localhost:3000 and sign in with the admin credentials you configured. Database migrations and seeding run automatically on first startup.

Change your password

If you used the wizard's generated password, change it immediately from the admin dashboard.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#pre-built-image-installation","title":"Pre-built Image Installation","text":"

For production deployments, you can skip cloning the source repository entirely. Pre-built Docker images are pulled from the Gitea container registry.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#one-line-install","title":"One-Line Install","text":"
curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/main/scripts/install.sh | bash\n

This script:

  1. Checks prerequisites (Docker, Docker Compose, OpenSSL)
  2. Downloads the latest release package from Gitea
  3. Extracts to ~/changemaker.lite/
  4. Launches the configuration wizard (config.sh)

After the wizard completes, start everything with docker compose up -d.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#manual-download","title":"Manual Download","text":"

If you prefer not to pipe to bash:

# Download latest release\ncurl -LO https://gitea.bnkops.com/admin/changemaker.lite/releases/latest/download/changemaker-lite-latest.tar.gz\ntar xzf changemaker-lite-latest.tar.gz\ncd changemaker-lite\nbash config.sh\ndocker compose up -d\n
","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#whats-different-from-source-install","title":"What's Different from Source Install","text":"Source Install Pre-built Install Download size ~200 MB (full repo) ~2 MB (config + scripts) First startup 10+ min (TypeScript compile + Docker build) ~2 min (image pull only) Requires Git, full repo Docker only Upgrades git pull + rebuild Download new release tarball Development Edit source, hot-reload Not for development

When to use which

Use pre-built install for production deployments and quick evaluation. Use source install when you want to modify the platform code or contribute to development.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#configuration-wizard-configsh","title":"Configuration Wizard (config.sh)","text":"

The wizard performs 14 steps to produce a fully configured .env file and prepare the system for startup. Each step is interactive with sensible defaults.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-1-prerequisites-check","title":"Step 1: Prerequisites Check","text":"

Verifies that Docker, Docker Compose v2, and OpenSSL are installed. Exits immediately if any are missing, with links to installation guides.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-2-environment-file-setup","title":"Step 2: Environment File Setup","text":"
  • If no .env exists, copies .env.example as the starting point
  • If .env already exists, offers to back it up (timestamped copy) and create a fresh one, or update values in place
","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-3-domain-configuration","title":"Step 3: Domain Configuration","text":"

Prompts for your root domain (default: cmlite.org) and derives 14 environment variables from it:

Variable Example Value DOMAIN example.org BASE_DOMAIN https://example.org GITEA_ROOT_URL https://git.example.org GITEA_DOMAIN git.example.org N8N_HOST n8n.example.org SMTP_FROM noreply@example.org INITIAL_ADMIN_EMAIL admin@example.org NC_ADMIN_EMAIL admin@example.org EXCALIDRAW_WS_URL wss://draw.example.org LISTMONK_SMTP_FROM Changemaker Lite <noreply@example.org> HOMEPAGE_VAR_BASE_URL https://example.org VAULTWARDEN_DOMAIN https://vault.example.org GANCIO_BASE_URL https://events.example.org TEST_EMAIL_RECIPIENT admin@example.org

Also updates mkdocs/mkdocs.yml with the new site_url and repo_url, and asks whether this is a production deployment (sets NODE_ENV=production).

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-4-admin-credentials","title":"Step 4: Admin Credentials","text":"

Prompts for the initial super-admin email and password. The password is validated against the security policy:

  • Minimum 12 characters
  • At least one uppercase letter
  • At least one lowercase letter
  • At least one digit
  • Requires password confirmation
","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-5-secret-generation","title":"Step 5: Secret Generation","text":"

Auto-generates 21 unique secrets \u2014 no placeholder passwords remain after this step:

Category Count Secrets JWT & Encryption 4 JWT_ACCESS_SECRET, JWT_REFRESH_SECRET, JWT_INVITE_SECRET (each 64-char hex), ENCRYPTION_KEY (64-char hex, must differ from JWT secrets) Database 2 V2_POSTGRES_PASSWORD, REDIS_PASSWORD (24-char alphanumeric) Listmonk 3 LISTMONK_DB_PASSWORD, LISTMONK_WEB_ADMIN_PASSWORD, LISTMONK_API_TOKEN NocoDB 1 NC_ADMIN_PASSWORD Gitea 2 GITEA_DB_PASSWD, GITEA_DB_ROOT_PASSWORD n8n 2 N8N_ENCRYPTION_KEY, N8N_USER_PASSWORD Monitoring 2 GRAFANA_ADMIN_PASSWORD, GOTIFY_ADMIN_PASSWORD Vaultwarden 1 VAULTWARDEN_ADMIN_TOKEN (64-char hex) Rocket.Chat 1 ROCKETCHAT_ADMIN_PASSWORD Gancio 1 GANCIO_ADMIN_PASSWORD Jitsi Meet 3 JITSI_APP_SECRET (64-char hex), JITSI_JICOFO_AUTH_PASSWORD, JITSI_JVB_AUTH_PASSWORD","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-6-email-configuration","title":"Step 6: Email Configuration","text":"

Choose between:

  • MailHog (default) \u2014 captures all outgoing emails at http://localhost:8025 for development
  • Production SMTP \u2014 configures host, port, user, and password. Optionally shares credentials with Listmonk for newsletter delivery
","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-7-feature-flags","title":"Step 7: Feature Flags","text":"

Enable or disable 9 optional platform features:

Flag Environment Variable What It Enables Media Manager ENABLE_MEDIA_FEATURES=true Video library, analytics, scheduled publishing Listmonk Sync LISTMONK_SYNC_ENABLED=true Newsletter subscriber sync from platform participants Payments ENABLE_PAYMENTS=true Stripe-based products, donations, and plans Rocket.Chat ENABLE_CHAT=true Team communication platform Gancio Events GANCIO_SYNC_ENABLED=true Shift-to-event sync with Gancio Jitsi Meet ENABLE_MEET=true Video conferencing (also prompts for server public IP) SMS Campaigns ENABLE_SMS=true Termux Android bridge for SMS (also prompts for API URL) Docs Comments GITEA_COMMENTS_ENABLED=true Gitea-backed page comments on documentation Bunker Ops BUNKER_OPS_ENABLED=true Fleet metrics push to central server (also prompts for remote write URL)","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-8-tunnel-configuration-pangolin","title":"Step 8: Tunnel Configuration (Pangolin)","text":"

Optionally configures Pangolin tunnel credentials for secure public access:

  • PANGOLIN_API_URL \u2014 API endpoint (default: https://api.bnkserve.org/v1)
  • PANGOLIN_API_KEY \u2014 Authentication key
  • PANGOLIN_ORG_ID \u2014 Organization identifier

Complete tunnel setup is done from the admin GUI at Settings > Tunnel after services are running.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-9-cors-origins","title":"Step 9: CORS Origins","text":"

Automatically calculates allowed origins from your domain:

http://app.DOMAIN,https://app.DOMAIN,http://DOMAIN,https://DOMAIN,http://localhost:3000,http://localhost,http://localhost:4003\n
","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-10-nginx-config-generation","title":"Step 10: Nginx Config Generation","text":"

Renders all .conf.template files in nginx/conf.d/ by substituting ${DOMAIN} with your configured domain. This produces the nginx configuration files that handle subdomain routing.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-11-homepage-services-yaml","title":"Step 11: Homepage Services YAML","text":"

Generates configs/homepage/services.yaml with 27 service entries (both production and local development URLs) for the Homepage service dashboard.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-12-container-directory-permissions","title":"Step 12: Container Directory Permissions","text":"

Creates and sets permissions (775) on 12 directories needed by containers:

Directory Purpose configs/code-server/.config Code Server configuration configs/code-server/.local Code Server local data mkdocs/.cache MkDocs build cache mkdocs/site MkDocs built site output assets/uploads Listmonk uploads assets/images Shared images assets/icons Homepage icons media/local/inbox Media upload inbox media/local/thumbnails Video thumbnails media/public Public media files local-files n8n local files data NAR import data","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-13-upgrade-watcher-optional","title":"Step 13: Upgrade Watcher (Optional)","text":"

Installs a systemd path watcher that enables the admin GUI's \"Check for Updates\" and \"Start Upgrade\" buttons. This step requires sudo and is optional \u2014 you can install it later or use the CLI upgrade script directly.

The watcher installs two systemd units:

  • changemaker-upgrade.path \u2014 watches for data/upgrade/trigger.json
  • changemaker-upgrade.service \u2014 runs scripts/upgrade-watcher.sh when triggered
","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#step-14-summary-next-steps","title":"Step 14: Summary & Next Steps","text":"

Displays a configuration summary showing all choices made, then prints startup commands.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#what-gets-modified","title":"What Gets Modified","text":"

After the wizard completes, the following files have been created or modified:

File Action .env Created (or updated) with all configuration values mkdocs/mkdocs.yml Updated site_url and repo_url with domain nginx/conf.d/*.conf Generated from .conf.template files configs/homepage/services.yaml Generated with all service URLs 12 directories Created with container-friendly permissions systemd units (optional) Installed to /etc/systemd/system/","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#manual-setup-alternative","title":"Manual Setup (Alternative)","text":"

If you prefer to configure by hand instead of using the wizard:

cp .env.example .env\n

At minimum, set these required secrets:

# Generate cryptographic secrets\nV2_POSTGRES_PASSWORD=$(openssl rand -base64 48 | tr -dc 'a-zA-Z0-9' | head -c 24)\nREDIS_PASSWORD=$(openssl rand -base64 48 | tr -dc 'a-zA-Z0-9' | head -c 24)\nJWT_ACCESS_SECRET=$(openssl rand -hex 32)\nJWT_REFRESH_SECRET=$(openssl rand -hex 32)\nJWT_INVITE_SECRET=$(openssl rand -hex 32)\nENCRYPTION_KEY=$(openssl rand -hex 32)   # must differ from all JWT secrets\n

Set your admin credentials (password must meet the 12+ char complexity requirement):

INITIAL_ADMIN_EMAIL=admin@yourdomain.org\nINITIAL_ADMIN_PASSWORD=YourStrongPassword1\n

Then configure optional sections:

  • Domain: Set DOMAIN and all derived variables (see Step 3 table above)
  • SMTP: Set SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS, EMAIL_TEST_MODE=false
  • Feature flags: Enable features as needed (see Step 7 table above)
  • Tunnel: Set PANGOLIN_API_URL, PANGOLIN_API_KEY, PANGOLIN_ORG_ID

See Environment Variables for every available option.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#full-stack-startup","title":"Full Stack Startup","text":"

After configuration, start the entire platform:

docker compose up -d\n

That's it. Docker handles the startup order automatically:

  1. PostgreSQL and Redis start first (with healthchecks)
  2. API waits for both to be healthy, then auto-runs database migrations and seeding
  3. Admin GUI waits for the API
  4. Nginx, media, communication, and all other services start in parallel
  5. Init containers (nocodb-init, listmonk-init, etc.) run once and exit

Watch the startup progress:

docker compose logs -f api --tail 20\n

Once you see Starting server on port 4000, open http://localhost:3000 and log in.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#include-monitoring","title":"Include Monitoring","text":"

The monitoring stack (Prometheus, Grafana, Alertmanager) uses a Docker Compose profile and isn't included by default:

docker compose --profile monitoring up -d\n
","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#start-only-core-services","title":"Start Only Core Services","text":"

If you prefer a minimal startup (lower resource usage):

docker compose up -d v2-postgres redis api admin nginx\n

Manual migrations

The API container runs migrations and seeding automatically on startup via its entrypoint script. You only need to run them manually if you're developing locally without Docker:

cd api && npx prisma migrate deploy && npx prisma db seed\n

See Services Overview for the complete service catalog.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#verifying-installation","title":"Verifying Installation","text":"

After starting services, verify everything is healthy:

# Check running containers\ndocker compose ps\n\n# API health check\ncurl -s http://localhost:4000/api/health | python3 -m json.tool\n\n# View API logs\ndocker compose logs api --tail 20\n\n# Check for containers in restart loops\ndocker compose ps | grep -i restarting\n

You should see the API return {\"status\":\"ok\"} and all started containers in a \"running\" state.

","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/installation/#next-steps","title":"Next Steps","text":"
  • Services Overview \u2014 complete service catalog with ports and startup commands
  • Environment Variables \u2014 complete .env reference
  • First Steps \u2014 create your first campaign and add locations
  • Updates & Upgrades \u2014 keep your installation up to date
","tags":["guide","getting-started","operator","docker"],"boost":2},{"location":"docs/getting-started/services/","title":"Services Overview","text":"

Changemaker Lite runs as 30+ Docker containers orchestrated by Docker Compose. This page catalogs every service, organized by category.

Quick reference

Use docker compose ps to see which services are currently running, or docker compose ps -a to include stopped containers.

","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#core-required","title":"Core (Required)","text":"

These services form the minimum viable platform. Start them first.

Container Port Description changemaker-v2-api 4000 Express.js REST API (Prisma ORM) changemaker-v2-admin 3000 React admin GUI (Vite + Ant Design) changemaker-v2-postgres 5433 PostgreSQL 16 \u2014 primary database redis-changemaker 6379 Redis 7 \u2014 cache, rate limiting, job queues changemaker-v2-nginx 80 Nginx reverse proxy \u2014 subdomain routing
# Start core services only (minimal)\ndocker compose up -d v2-postgres redis api admin nginx\n\n# Or start everything at once\ndocker compose up -d\n

The API container automatically runs database migrations and seeding on startup via its entrypoint script.

Note

Nginx is technically optional for local development (you can access services directly by port), but required for production subdomain routing.

","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#media","title":"Media","text":"Container Port Description Feature Flag changemaker-media-api 4100 Fastify media API \u2014 video library, analytics, scheduling ENABLE_MEDIA_FEATURES=true
docker compose up -d media-api\n

The media API runs as a separate Fastify server sharing the same PostgreSQL database. It handles video upload (FFprobe metadata extraction), scheduled publishing via BullMQ, and GDPR-compliant view analytics.

","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#communication","title":"Communication","text":"","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#rocketchat-team-chat","title":"Rocket.Chat (Team Chat)","text":"Container Port Description Feature Flag rocketchat-changemaker 8891 Rocket.Chat server ENABLE_CHAT=true mongodb-changemaker \u2014 MongoDB (Rocket.Chat data store) \u2014 nats-changemaker \u2014 NATS (Rocket.Chat message bus) \u2014
docker compose up -d rocketchat mongodb nats\n
","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#gancio-events","title":"Gancio (Events)","text":"Container Port Description Feature Flag gancio-changemaker 8092 Gancio event platform GANCIO_SYNC_ENABLED=true gancio-init \u2014 Init container \u2014 creates Gancio database \u2014
docker compose up -d gancio\n

Init containers

gancio-init runs once on first start to create the Gancio database in PostgreSQL, then exits. This is normal \u2014 don't worry about seeing it in a \"stopped\" state.

","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#jitsi-meet-video-conferencing","title":"Jitsi Meet (Video Conferencing)","text":"Container Port Description Feature Flag jitsi-web-changemaker 8893 Jitsi web interface ENABLE_MEET=true jitsi-prosody-changemaker \u2014 XMPP server (Prosody) \u2014 jitsi-jicofo-changemaker \u2014 Jitsi conference focus \u2014 jitsi-jvb-changemaker 10000/udp Jitsi video bridge \u2014
docker compose up -d jitsi-web jitsi-prosody jitsi-jicofo jitsi-jvb\n

Firewall requirement

Jitsi requires UDP port 10000 open in your firewall for video/audio media traffic. Set JVB_ADVERTISE_IP in .env to your server's public IP address.

","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#newsletter-email","title":"Newsletter & Email","text":"Container Port Description Feature Flag listmonk-app 9001 Listmonk newsletter platform LISTMONK_SYNC_ENABLED=true listmonk-db 5432 PostgreSQL (Listmonk's own database) \u2014 listmonk-init \u2014 Init container \u2014 creates API user \u2014 mailhog-changemaker 8025 MailHog email capture (development) EMAIL_TEST_MODE=true
# Newsletter platform\ndocker compose up -d listmonk-app\n\n# Email testing (captures all outgoing emails)\ndocker compose up -d mailhog\n

Listmonk has its own PostgreSQL instance separate from the main database. The listmonk-init container auto-creates the API user for platform integration.

","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#developer-tools","title":"Developer Tools","text":"Container Port Description code-server-changemaker 8888 VS Code in the browser mkdocs-changemaker 4003 MkDocs live preview (hot reload) mkdocs-site-server-changemaker 4004 MkDocs static site server gitea-changemaker 3030 Gitea \u2014 self-hosted Git repository gitea-db \u2014 PostgreSQL (Gitea's database) changemaker-v2-nocodb 8091 NocoDB \u2014 read-only database browser nocodb-init \u2014 Init container \u2014 registers database n8n-changemaker 5678 n8n \u2014 workflow automation
# Start individual tools\ndocker compose up -d code-server\ndocker compose up -d mkdocs mkdocs-site-server\ndocker compose up -d gitea\ndocker compose up -d nocodb\ndocker compose up -d n8n\n

Tip

mkdocs (port 4003) provides live editing with hot reload for documentation authors. mkdocs-site-server (port 4004) serves the built static site for production visitors.

","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#utilities","title":"Utilities","text":"Container Port Description mini-qr 8089 QR code PNG generator excalidraw-changemaker 8090 Collaborative whiteboard vaultwarden-changemaker 8445 Vaultwarden \u2014 Bitwarden-compatible password manager vaultwarden-init \u2014 Init container \u2014 configures admin settings homepage-changemaker 3010 Homepage \u2014 service dashboard
docker compose up -d mini-qr excalidraw vaultwarden homepage\n

Mini QR is used internally by walk sheets and cut export pages to generate printable QR codes.

","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#monitoring-docker-profile","title":"Monitoring (Docker Profile)","text":"

Monitoring services are behind a Docker Compose profile and are not started by default.

Container Port Description prometheus-changemaker 9090 Prometheus \u2014 metrics collection grafana-changemaker 3005 Grafana \u2014 monitoring dashboards alertmanager-changemaker 9093 Alertmanager \u2014 alert routing cadvisor-changemaker 8086 cAdvisor \u2014 container metrics node-exporter-changemaker 9100 Node Exporter \u2014 host system metrics redis-exporter-changemaker 9121 Redis Exporter \u2014 Redis metrics gotify-changemaker 8889 Gotify \u2014 push notifications
# Start the entire monitoring stack\ndocker compose --profile monitoring up -d\n

The monitoring stack includes 3 pre-configured Grafana dashboards and 12 custom cm_* Prometheus metrics. See Monitoring for details.

","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#infrastructure","title":"Infrastructure","text":"Container Port Description newt \u2014 Pangolin tunnel connector (Newt) docker-socket-proxy \u2014 Docker socket proxy for secure container access
# Newt starts automatically if PANGOLIN_NEWT_ID and PANGOLIN_NEWT_SECRET are set\ndocker compose up -d newt\n

The Newt container connects to a Pangolin tunnel server for secure public access without opening inbound ports. See Tunnel for setup.

","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#subdomain-routing","title":"Subdomain Routing","text":"

When Nginx is running, services are accessible via subdomains. The root domain serves documentation only; all application routes are at app.DOMAIN.

Subdomain Target Purpose app.DOMAIN Admin (3000) All application routes (admin, public pages, campaigns, map, shifts, media gallery) api.DOMAIN Express API (4000) REST API media.DOMAIN Fastify Media API (4100) Media API DOMAIN MkDocs Static (4004) Documentation / marketing site db.DOMAIN NocoDB (8091) Database browser docs.DOMAIN MkDocs Live (4003) Live documentation preview code.DOMAIN Code Server (8888) Web IDE n8n.DOMAIN n8n (5678) Workflow automation git.DOMAIN Gitea (3030) Git hosting home.DOMAIN Homepage (3010) Service dashboard grafana.DOMAIN Grafana (3005) Metrics visualization listmonk.DOMAIN Listmonk (9001) Newsletter platform qr.DOMAIN Mini QR (8089) QR code generator draw.DOMAIN Excalidraw (8090) Collaborative whiteboard vault.DOMAIN Vaultwarden (8445) Password manager events.DOMAIN Gancio (8092) Event platform chat.DOMAIN Rocket.Chat (8891) Team chat meet.DOMAIN Jitsi Meet (8893) Video conferencing mail.DOMAIN MailHog (8025) Email capture (dev)","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#init-containers","title":"Init Containers","text":"

Several services use init containers \u2014 lightweight containers that run once on first startup to bootstrap databases or configuration, then exit with code 0. This pattern is borrowed from Kubernetes.

Init Container Purpose listmonk-init Creates the Listmonk API user for platform integration gancio-init Creates the Gancio database in the shared PostgreSQL instance vaultwarden-init Configures Vaultwarden admin settings nocodb-init Registers the main database with NocoDB for browsing

Seeing these containers in a \"stopped\" or \"exited (0)\" state is completely normal.

","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#starting-everything","title":"Starting Everything","text":"

To start all services at once (excluding monitoring):

docker compose up -d\n

To start everything including monitoring:

docker compose up -d && docker compose --profile monitoring up -d\n

To see what's running:

docker compose ps\n

Warning

Starting all services at once requires at least 4 GB RAM. For resource-constrained environments, start only the services you need.

","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/services/#next-steps","title":"Next Steps","text":"
  • Installation \u2014 setup walkthrough and configuration wizard details
  • Environment Variables \u2014 complete .env reference
  • First Steps \u2014 create your first campaign and volunteer shift
","tags":["reference","getting-started","operator","docker"]},{"location":"docs/getting-started/upgrades/","title":"Updates & Upgrades","text":"

Changemaker Lite includes a built-in upgrade system that pulls code updates, rebuilds containers, runs database migrations, and restarts services \u2014 all while preserving your customizations.

There are two ways to upgrade:

  1. Admin GUI \u2014 Check for updates and run upgrades from Settings > System
  2. CLI \u2014 Run ./scripts/upgrade.sh directly from the command line

Both methods execute the same 6-phase upgrade process.

","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#prerequisites","title":"Prerequisites","text":"","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#upgrade-watcher-required-for-gui-method","title":"Upgrade Watcher (Required for GUI Method)","text":"

The admin GUI triggers upgrades via a systemd path watcher that monitors for trigger files. This must be installed on the host system.

Install during initial setup:

The config.sh wizard offers to install the watcher automatically (Step 13). If you skipped it, install manually:

# Edit the systemd units to set your project path and user\nsed -e \"s|__PROJECT_DIR__|$(pwd)|g\" scripts/systemd/changemaker-upgrade.path > /tmp/changemaker-upgrade.path\nsed -e \"s|__PROJECT_DIR__|$(pwd)|g\" -e \"s|__USER__|$(whoami)|g\" scripts/systemd/changemaker-upgrade.service > /tmp/changemaker-upgrade.service\n\n# Install and enable\nsudo cp /tmp/changemaker-upgrade.path /tmp/changemaker-upgrade.service /etc/systemd/system/\nsudo systemctl daemon-reload\nsudo systemctl enable --now changemaker-upgrade.path\n

Verify it's running:

sudo systemctl status changemaker-upgrade.path\n

How the watcher works

The API container writes a trigger.json file to a shared data/upgrade/ volume. The systemd path watcher detects the file and runs scripts/upgrade-watcher.sh on the host, which dispatches to the appropriate script (check or upgrade). Progress and results are communicated back via JSON files that the API reads.

","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#method-1-admin-gui","title":"Method 1: Admin GUI","text":"","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#checking-for-updates","title":"Checking for Updates","text":"
  1. Navigate to Settings (/app/settings)
  2. Click the System tab
  3. Click Check for Updates

The System tab shows your current version, last commit message, and auto-upgrade settings:

The system fetches from the git remote and shows:

  • Current commit hash and message
  • Remote commit hash (if different)
  • Number of commits behind
  • Changelog of incoming changes

When updates are available, the panel highlights how many commits are behind and lists the incoming changes:

","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#starting-an-upgrade","title":"Starting an Upgrade","text":"
  1. Review the changelog to understand what's changing
  2. Click Start Upgrade
  3. Optionally configure:
    • Skip backup \u2014 skip the database backup phase (not recommended)
    • Pull images \u2014 also update third-party Docker images (PostgreSQL, Redis, etc.)
    • Use registry images \u2014 pull pre-built images from Gitea instead of compiling from source (faster \u2014 requires scripts/build-and-push.sh to have been run first)
    • Dry run \u2014 preview what would happen without making changes
  4. Monitor the 6-phase progress indicator

The GUI polls for progress updates and displays the current phase, percentage, and status message in real time.

","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#upgrade-results","title":"Upgrade Results","text":"

After the upgrade completes, the System tab shows the result \u2014 including the new version, health check status, and any warnings:

Tip

If health checks show warnings immediately after an upgrade, wait 1-2 minutes for services to fully start before investigating.

","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#the-6-upgrade-phases","title":"The 6 Upgrade Phases","text":"

Both the GUI and CLI methods execute the same 6-phase process:

Phase % Name What Happens 1 5% Pre-flight Checks Verifies Docker, git, disk space (2 GB minimum), remote reachability, and clean working directory 2 15% Backup Runs scripts/backup.sh (pg_dump + archive), backs up user-modifiable content, saves pre-upgrade commit hash 3 30% Code Update Saves user paths, stashes local changes, git pull, pops stash with auto-conflict resolution, detects new .env variables 4 50% Container Rebuild Rebuilds api, admin, media-api from source (default) or pulls pre-built images from the Gitea registry (--use-registry); conditionally rebuilds nginx and code-server if their configs changed; optionally pulls third-party images 5 70% Service Restart Stops app containers, force-recreates LSIO containers, verifies Gancio config, starts infrastructure, waits for PostgreSQL, starts API (runs migrations), starts everything else, restarts Newt tunnel and monitoring if they were running 6 90% Verification Health checks for API, Admin, Media API, Gancio, MkDocs; detects containers in restart loops","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#what-gets-preserved","title":"What Gets Preserved","text":"

The upgrade script automatically preserves user-modifiable paths that you may have customized:

Path What It Contains mkdocs/docs/ Your documentation content mkdocs/mkdocs.yml MkDocs configuration mkdocs/site/ Built documentation site configs/ Prometheus, Grafana, Alertmanager, Homepage configs nginx/conf.d/services.conf Custom nginx service proxies

These files are saved before git pull and unconditionally restored afterward, even if the pull introduces changes to them. Your versions always win.

Tip

The .env file is never touched by git pull (it's in .gitignore). However, if new environment variables are added in .env.example, the upgrade script automatically appends them to your .env with their default values and warns you to review them.

","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#method-2-cli","title":"Method 2: CLI","text":"

Run the upgrade script directly:

./scripts/upgrade.sh\n
","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#options","title":"Options","text":"Flag Description --skip-backup Skip the backup phase (requires --force) --pull-services Also pull new third-party Docker images --use-registry Pull pre-built images from Gitea instead of compiling from source --dry-run Show what would happen without executing --force Continue past non-critical warnings --branch BRANCH Git branch to pull (default: current branch) --rollback Rollback to pre-upgrade commit --api-mode Write progress/result JSON for admin GUI (used internally)","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#examples","title":"Examples","text":"
# Standard upgrade\n./scripts/upgrade.sh\n\n# Preview changes without executing\n./scripts/upgrade.sh --dry-run\n\n# Full upgrade including third-party image updates\n./scripts/upgrade.sh --pull-services\n\n# Upgrade using pre-built images from Gitea registry (faster, no TypeScript compile)\n./scripts/upgrade.sh --use-registry --force --skip-backup\n\n# Rollback to the last pre-upgrade state\n./scripts/upgrade.sh --rollback\n
","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#registry-mode-fast-upgrades","title":"Registry Mode (Fast Upgrades)","text":"

By default, the upgrade script compiles TypeScript from source (npm run build) and rebuilds Docker images on the deployment server. Registry mode skips this by pulling pre-built production images from the Gitea container registry \u2014 faster and requires no build tooling on the server.

","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#how-it-works","title":"How It Works","text":"
  1. Run scripts/build-and-push.sh on a machine with Docker (usually your dev machine) to build and push production images tagged with the current commit SHA
  2. During the next upgrade, pass --use-registry (CLI) or enable the checkbox (GUI)
  3. The upgrade script pulls gitea.bnkops.com/admin/changemaker-{service}:{sha} instead of rebuilding from source
  4. If a registry image is unavailable (e.g., the SHA wasn't pushed), it automatically falls back to a source build
","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#building-and-pushing-images","title":"Building and Pushing Images","text":"
# Build and push all core services (api, admin, media-api, nginx)\n./scripts/build-and-push.sh\n\n# Skip code-server (9 GB \u2014 push only when Dockerfile changes)\n./scripts/build-and-push.sh --services api,admin,media-api,nginx\n\n# Build only, no push (verify locally first)\n./scripts/build-and-push.sh --no-push\n\n# Also mirror third-party images (postgres, redis, etc.) to Gitea\n./scripts/mirror-images.sh\n

Registry prerequisites

  • Run docker login gitea.bnkops.com once per machine before pushing
  • Set GITEA_REGISTRY_USER and GITEA_REGISTRY_PASS in .env for the admin GUI's Registry status endpoint
  • gitea.bnkops.com must be reachable without proxies that limit upload size (Cloudflare free plan blocks blobs >100 MB)

Release installs upgrade automatically via registry

If you installed from a release tarball (not git clone), the upgrade script automatically uses registry mode. It downloads the latest release package from Gitea instead of running git pull. No additional configuration needed.

","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#rollback","title":"Rollback","text":"","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#automatic-rollback","title":"Automatic Rollback","text":"

If the upgrade fails at any phase, the script prints detailed rollback instructions including the pre-upgrade commit hash. Use the --rollback flag:

./scripts/upgrade.sh --rollback\n

This:

  1. Finds the latest backup archive
  2. Extracts the pre-upgrade commit hash from git-commit.txt inside the archive
  3. Checks out that commit
  4. Rebuilds and restarts all containers

Warning

--rollback restores the code to the pre-upgrade state but does not automatically restore the database. If database migrations were applied during the failed upgrade, you may need to manually restore from the backup archive.

","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#manual-rollback","title":"Manual Rollback","text":"
# 1. Restore code\ncd /path/to/changemaker.lite\ngit checkout <pre-upgrade-commit-hash>\n\n# 2. Rebuild and restart\ndocker compose build api admin media-api\ndocker compose up -d\n\n# 3. Database restore (if needed \u2014 destructive!)\nls -lt backups/changemaker-v2-backup-*.tar.gz | head -5\ntar xzf backups/<backup>.tar.gz -C /tmp\ngunzip -c /tmp/<backup>/v2-postgres.sql.gz | \\\n  docker exec -i changemaker-v2-postgres psql -U changemaker -d changemaker_v2\n
","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#new-environment-variables","title":"New Environment Variables","text":"

When upstream code adds new environment variables to .env.example, the upgrade script automatically:

  1. Compares .env.example against your .env
  2. Appends any missing variables with their default values
  3. Warns you to review the new additions
[WARN] New env vars added to .env (review defaults):\n    NEW_FEATURE_FLAG\n    NEW_API_KEY\n

Always review new variables after an upgrade \u2014 some may need manual configuration.

","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#update-checker","title":"Update Checker","text":"

A separate lightweight script checks for available updates without performing any changes:

./scripts/upgrade-check.sh\n

This writes data/upgrade/status.json with:

  • Current and remote commit hashes
  • Number of commits behind
  • Changelog (last 30 commits)
  • Timestamp of last check

The admin GUI reads this file to display update availability.

","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#troubleshooting","title":"Troubleshooting","text":"","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#stale-progress-indicator","title":"Stale Progress Indicator","text":"

If the GUI shows an upgrade \"in progress\" but nothing is happening, the upgrade script may have crashed. The system automatically detects stale progress (no update for 10+ minutes) and treats it as not running.

To manually clear:

rm -f data/upgrade/progress.json\n
","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#merge-conflicts","title":"Merge Conflicts","text":"

If git pull encounters merge conflicts in user-modifiable paths (docs, configs), the upgrade script auto-resolves by keeping your version. If conflicts occur in project-owned files (api/, admin/), the upgrade fails and asks you to resolve manually.

","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#lock-file","title":"Lock File","text":"

The upgrade script uses .upgrade.lock to prevent concurrent upgrades. If a previous upgrade crashed without cleaning up:

# Verify no upgrade is actually running\nps aux | grep upgrade.sh\n\n# Remove stale lock\nrm -f .upgrade.lock\n
","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#health-check-failures","title":"Health Check Failures","text":"

If Phase 6 health checks fail, services may still be starting. Wait 1-2 minutes and check manually:

# API health\ncurl -s http://localhost:4000/api/health\n\n# Container status\ndocker compose ps\n\n# Recent logs\ndocker compose logs api --tail 50\ndocker compose logs admin --tail 50\n
","tags":["guide","operator","upgrades"]},{"location":"docs/getting-started/upgrades/#systemd-watcher-not-triggering","title":"Systemd Watcher Not Triggering","text":"
# Check watcher status\nsudo systemctl status changemaker-upgrade.path\n\n# Check service logs\nsudo journalctl -u changemaker-upgrade.service --tail 20\n\n# Re-enable if stopped\nsudo systemctl enable --now changemaker-upgrade.path\n
","tags":["guide","operator","upgrades"]},{"location":"docs/services/","title":"Services","text":"

Changemaker Lite orchestrates 20+ services via Docker Compose. This page is your map to every service: what it does, how to reach it, and where to find its upstream documentation.

","tags":["reference","operator","services","docker"]},{"location":"docs/services/#core-platform","title":"Core Platform","text":"

The essential services that power the application.

  • Express API

    Main V2 API server. Handles authentication, campaigns, map, shifts, pages, email, and all business logic. Prisma ORM with PostgreSQL.

    Port: 4000 \u00b7 Container: changemaker-v2-api

    API Reference

  • Fastify Media API

    Video library server. Upload, metadata extraction (FFprobe), analytics, scheduled publishing, and public gallery. Shares the same PostgreSQL database.

    Port: 4100 \u00b7 Container: changemaker-media-api

    Media Guide

  • Admin GUI

    React single-page application (Vite + Ant Design + Zustand). Serves the admin dashboard, public campaign pages, volunteer portal, and media gallery \u2014 all from one build.

    Port: 3000 \u00b7 Container: changemaker-v2-admin

    Feature Guides

  • PostgreSQL 16

    Primary database shared by both APIs. Managed by Prisma migrations. Contains 30+ tables covering users, campaigns, locations, shifts, media, and more.

    Port: 5433 (host) / 5432 (container) \u00b7 Container: changemaker-v2-postgres

    PostgreSQL Docs

  • Redis

    In-memory store for rate limiting, BullMQ job queues (email, video scheduling), geocoding cache, and session data. Requires authentication.

    Port: 6379 \u00b7 Container: redis-changemaker

    Redis Docs

  • Nginx

    Reverse proxy handling all subdomain routing (app., api., media., docs., etc.). Includes security headers (HSTS, CSP, Permissions-Policy) and WebSocket support.

    Port: 80 / 443 \u00b7 Container: changemaker-v2-nginx

    Nginx Docs

","tags":["reference","operator","services","docker"]},{"location":"docs/services/#communication-email","title":"Communication & Email","text":"
  • Listmonk

    Self-hosted newsletter and mailing list manager. Drop-in replacement for Mailchimp. Opt-in sync with the main platform imports participants, locations, and users as subscriber lists.

    Port: 9001 \u00b7 Container: listmonk-app \u00b7 Subdomain: listmonk.DOMAIN

    Listmonk Docs

  • MailHog

    Email capture for development. All outgoing email is intercepted and displayed in a web UI when EMAIL_TEST_MODE=true. No real emails are sent.

    Port: 8025 (web) / 1025 (SMTP) \u00b7 Container: mailhog-changemaker \u00b7 Subdomain: mail.DOMAIN

    MailHog GitHub

","tags":["reference","operator","services","docker"]},{"location":"docs/services/#content-editing","title":"Content & Editing","text":"
  • MkDocs

    Material-themed documentation site with full-text search, blog, social cards, and Jinja2 template overrides. Two containers: live preview (dev) and static site (production).

    Port: 4003 (dev) / 4004 (static) \u00b7 Container: mkdocs-changemaker \u00b7 Subdomain: docs.DOMAIN

    MkDocs Material

  • Code Server

    Full VS Code in the browser. Edit configuration files, templates, and documentation from anywhere without SSH. Supports extensions.

    Port: 8888 \u00b7 Container: code-server-changemaker \u00b7 Subdomain: code.DOMAIN

    Code Server Docs

","tags":["reference","operator","services","docker"]},{"location":"docs/services/#data-automation","title":"Data & Automation","text":"
  • NocoDB

    Airtable-alternative database browser. Provides a spreadsheet-like interface to browse, filter, sort, and export campaign data. Read-only access to the main database.

    Port: 8091 \u00b7 Container: changemaker-v2-nocodb \u00b7 Subdomain: db.DOMAIN

    NocoDB Docs

  • n8n

    Visual workflow automation platform. Connect APIs, trigger actions on events, schedule tasks, and build custom integrations \u2014 all without code. 400+ built-in integrations.

    Port: 5678 \u00b7 Container: n8n-changemaker \u00b7 Subdomain: n8n.DOMAIN

    n8n Docs

  • Gitea

    Self-hosted Git repository hosting. Version control for campaign code, configuration, templates, and documentation. Includes issues, pull requests, and CI/CD.

    Port: 3030 (web) / 2222 (SSH) \u00b7 Container: gitea-changemaker \u00b7 Subdomain: git.DOMAIN

    Gitea Docs

","tags":["reference","operator","services","docker"]},{"location":"docs/services/#utilities","title":"Utilities","text":"
  • Mini QR

    Lightweight QR code generator. Produces PNG images for walk sheets, campaign materials, and event signage. Embedded in the admin dashboard via iframe.

    Port: 8089 \u00b7 Container: mini-qr \u00b7 Subdomain: qr.DOMAIN

  • Homepage

    Service dashboard showing the status of all containers at a glance. Auto-generated services.yaml from config.sh provides both production and local links.

    Port: 3010 \u00b7 Container: homepage-changemaker \u00b7 Subdomain: home.DOMAIN

    Homepage Docs

  • Excalidraw

    Collaborative whiteboard for brainstorming, diagramming, and visual planning. Real-time collaboration via WebSocket.

    Port: 8090 \u00b7 Container: excalidraw-changemaker \u00b7 Subdomain: draw.DOMAIN

    Excalidraw

  • Vaultwarden

    Self-hosted Bitwarden-compatible password manager. Secure credential sharing for campaign teams. Requires HTTPS for account creation; local browsing works on HTTP.

    Port: 8445 \u00b7 Container: vaultwarden-changemaker \u00b7 Subdomain: vault.DOMAIN

    Vaultwarden Wiki

","tags":["reference","operator","services","docker"]},{"location":"docs/services/#team-communication","title":"Team Communication","text":"
  • Rocket.Chat

    Self-hosted team chat for volunteer coordination. Supports channels, direct messaging, threads, and file sharing. Embeddable in the admin dashboard via iframe. Enable with ENABLE_CHAT=true.

    Port: 3000 (internal) \u00b7 Container: rocketchat-changemaker \u00b7 Subdomain: chat.DOMAIN

    Rocket.Chat Docs

  • Jitsi Meet

    Self-hosted video conferencing with JWT authentication. Four containers (web, Prosody, Jicofo, JVB) provide the full video call stack. Integrated with Rocket.Chat for one-click calls from channels and DMs. Enable with ENABLE_MEET=true.

    Containers: jitsi-web, jitsi-prosody, jitsi-jicofo, jitsi-jvb \u00b7 Subdomain: meet.DOMAIN

    Setup Guide \u00b7 Jitsi Docs

  • Gancio

    Self-hosted event management platform. Automatic shift-to-event sync (when GANCIO_SYNC_ENABLED=true) publishes shifts as public events. Uses the shared PostgreSQL database. Embeddable calendar widget available for MkDocs pages.

    Port: 8092 \u00b7 Container: gancio-changemaker \u00b7 Subdomain: events.DOMAIN

    Gancio Docs

","tags":["reference","operator","services","docker"]},{"location":"docs/services/#networking-tunneling","title":"Networking & Tunneling","text":"
  • Pangolin + Newt

    Self-hosted tunnel server with the Newt client container. Exposes your services to the internet without port forwarding. Handles SSL/TLS, works behind CGNAT and double NAT.

    Container: newt-changemaker \u00b7 Managed from Admin \u2192 Settings \u2192 Tunnel

    Deployment Guide \u00b7 Pangolin GitHub

","tags":["reference","operator","services","docker"]},{"location":"docs/services/#monitoring-stack","title":"Monitoring Stack","text":"

These services run behind the monitoring Docker Compose profile. Start them with:

docker compose --profile monitoring up -d\n
  • Prometheus

    Metrics collection and time-series database. Scrapes 12 custom cm_* application metrics plus container, host, and Redis metrics. Pre-configured alert rules.

    Port: 9090 \u00b7 Container: prometheus-changemaker

    Prometheus Docs

  • Grafana

    Metrics visualization with 3 auto-provisioned dashboards: API Overview, Infrastructure, and Campaign Activity. Supports custom dashboards and alerting.

    Port: 3005 \u00b7 Container: grafana-changemaker \u00b7 Subdomain: grafana.DOMAIN

    Grafana Docs

  • Alertmanager

    Alert routing and notification delivery. Receives alerts from Prometheus and dispatches to Gotify, email, or webhooks based on configurable rules.

    Port: 9093 \u00b7 Container: alertmanager-changemaker

    Alertmanager Docs

  • cAdvisor

    Container resource metrics. Exposes CPU, memory, network, and filesystem usage per container for Prometheus to scrape.

    Port: 8086 \u00b7 Container: cadvisor-changemaker

    cAdvisor GitHub

  • Node Exporter

    Host system metrics. Reports CPU, memory, disk, and network stats for the underlying server.

    Port: 9100 \u00b7 Container: node-exporter-changemaker

    Node Exporter

  • Redis Exporter

    Redis metrics for Prometheus. Exposes connection counts, memory usage, command stats, and keyspace info.

    Port: 9121 \u00b7 Container: redis-exporter-changemaker

    Redis Exporter GitHub

  • Gotify

    Self-hosted push notification server. Receives alerts from Alertmanager and delivers them to mobile/desktop clients.

    Port: 8889 \u00b7 Container: gotify-changemaker

    Gotify Docs

","tags":["reference","operator","services","docker"]},{"location":"docs/services/#quick-reference","title":"Quick Reference","text":"

All services at a glance with their default ports and subdomains.

Service Port Subdomain Docker Profile Express API 4000 api. default Media API 4100 media. default Admin GUI 3000 app. default PostgreSQL 5433 \u2014 default Redis 6379 \u2014 default Nginx 80/443 (all) default Listmonk 9001 listmonk. default MailHog 8025 mail. default MkDocs (dev) 4003 docs. default MkDocs (static) 4004 (root) default Code Server 8888 code. default NocoDB 8091 db. default n8n 5678 n8n. default Gitea 3030 git. default Mini QR 8089 qr. default Homepage 3010 home. default Excalidraw 8090 draw. default Vaultwarden 8445 vault. default Rocket.Chat \u2014 chat. default Jitsi Meet \u2014 meet. default Gancio 8092 events. default Newt (tunnel) \u2014 \u2014 default Prometheus 9090 \u2014 monitoring Grafana 3005 grafana. monitoring Alertmanager 9093 \u2014 monitoring cAdvisor 8086 \u2014 monitoring Node Exporter 9100 \u2014 monitoring Redis Exporter 9121 \u2014 monitoring Gotify 8889 \u2014 monitoring

Starting services selectively

You don't need to run everything. Start only what you need:

# Core only\ndocker compose up -d v2-postgres redis api admin\n\n# Add nginx for subdomain routing\ndocker compose up -d nginx\n\n# Add monitoring\ndocker compose --profile monitoring up -d\n

See Getting Started for the recommended startup order.

","tags":["reference","operator","services","docker"]},{"location":"docs/troubleshooting/","title":"Troubleshooting","text":"

Common issues and their solutions when running Changemaker Lite.

","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#cors-errors-in-production","title":"CORS Errors in Production","text":"

Symptom: Browser console shows CORS errors when accessing production domain.

Fix: Add your production domain to CORS_ORIGINS in .env:

CORS_ORIGINS=https://app.yourdomain.org,http://localhost:3000\n

Then restart the API: docker compose restart api

","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#pangolin-tunnel-403302-errors","title":"Pangolin Tunnel \u2014 403/302 Errors","text":"

Symptom: All API endpoints return 302 redirects to Pangolin auth page, or 403 Forbidden.

Fix: In the Pangolin dashboard, set each resource to Not Protected (public access). Critical resources to fix first:

  1. api.yourdomain.org \u2014 Main API
  2. app.yourdomain.org \u2014 Admin GUI + public pages
  3. media.yourdomain.org \u2014 Media API

Verify:

# Should return JSON, NOT a 302 redirect\ncurl -I https://api.yourdomain.org/api/health\n
","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#database-connection-failures","title":"Database Connection Failures","text":"

Symptom: API logs show database connection errors.

Checklist:

  1. Check PostgreSQL: docker compose ps v2-postgres
  2. Verify DATABASE_URL in .env matches container name and port
  3. View logs: docker compose logs v2-postgres --tail 50
  4. Test connection: docker compose exec api npx prisma db execute --stdin <<< \"SELECT 1\"
","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#redis-connection-failures","title":"Redis Connection Failures","text":"

Symptom: API logs show Redis connection errors, rate limiting doesn't work.

Checklist:

  1. Check Redis: docker compose ps redis-changemaker
  2. Verify REDIS_PASSWORD and REDIS_URL format (redis://:password@host:port)
  3. View logs: docker compose logs redis-changemaker --tail 50
  4. Test: docker compose exec redis-changemaker redis-cli -a $REDIS_PASSWORD ping
","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#api-not-starting","title":"API Not Starting","text":"

Symptom: API container keeps restarting or won't start.

Checklist:

  1. Check logs: docker compose logs api --tail 100
  2. Verify all required env vars are set (compare with .env.example)
  3. Check database is ready: docker compose ps v2-postgres (should show \"healthy\")
  4. Run migrations manually: docker compose exec api npx prisma migrate deploy
  5. Check for port conflicts: ss -tlnp | grep 4000
","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#containers-in-restart-loops","title":"Containers in Restart Loops","text":"

Symptom: docker compose ps shows containers with \"restarting\" status.

Diagnosis:

# Find restarting containers\ndocker compose ps | grep -i restarting\n\n# Check recent logs for the problem container\ndocker compose logs <service-name> --tail 50\n\n# Check container exit code\ndocker inspect <container-name> --format='{{.State.ExitCode}}'\n

Common causes:

  • Missing environment variables (check .env)
  • Database not ready (healthcheck dependencies)
  • Port already in use by another process
  • Insufficient memory (check with free -h)
","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#newt-tunnel-wont-connect","title":"Newt Tunnel Won't Connect","text":"

Checklist (in order):

  1. Credentials: Verify PANGOLIN_NEWT_ID and PANGOLIN_NEWT_SECRET in .env
  2. Endpoint: Confirm PANGOLIN_ENDPOINT matches your Pangolin server URL
  3. Logs: docker compose logs newt --tail 50
  4. Nginx running: Newt depends on nginx \u2014 docker compose ps nginx
  5. Network: Ensure outbound HTTPS is not blocked by your firewall
","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#migration-errors","title":"Migration Errors","text":"

Symptom: prisma migrate deploy fails.

Common fixes:

# Check migration status\ndocker compose exec api npx prisma migrate status\n\n# If migrations are out of sync, reset (DESTRUCTIVE \u2014 dev only)\ndocker compose exec api npx prisma migrate reset\n\n# If shadow database errors, create one\ndocker compose exec -T v2-postgres createdb -U changemaker prisma_shadow_diff\n

Never use prisma db push in production

Always use prisma migrate dev (development) or prisma migrate deploy (production) to keep migration history in sync.

","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#media-api-upload-failures","title":"Media API Upload Failures","text":"

Symptom: Video uploads fail with permission errors or 500 status.

Checklist:

  1. Verify inbox volume is writable: check media/local/inbox has :rw mount
  2. Check disk space: df -h
  3. Verify FFmpeg is installed in container: docker compose exec media-api ffprobe -version
  4. Check upload size limit: default is 10 GB in Fastify multipart config
","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#email-not-sending","title":"Email Not Sending","text":"

Symptom: Advocacy emails or notifications aren't delivered.

Checklist:

  1. Check EMAIL_TEST_MODE \u2014 if true, all emails go to MailHog (http://localhost:8025)
  2. Verify SMTP credentials in .env (SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS)
  3. Check BullMQ queue: visit Admin > Email Queue or check logs
  4. Test SMTP from Settings: Admin > Settings > Email > Test Connection
","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#services-unreachable-via-tunnel","title":"Services Unreachable via Tunnel","text":"

Checklist:

  1. Verify nginx is running: docker compose ps nginx
  2. Test locally first: curl http://localhost:4000/api/health
  3. Check nginx logs: docker compose logs nginx --tail 50
  4. Verify DNS: dig app.yourdomain.org should point to your Pangolin server
  5. Check Pangolin resources are all set to \"Not Protected\"
","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#slow-map-performance","title":"Slow Map Performance","text":"

Symptom: Map page is slow or returns 500 errors with many locations.

Causes and fixes:

  • Too many locations loaded at once \u2014 the API limits by address count with debounced bounds queries
  • Missing indexes \u2014 verify database has the 5 performance indexes on Location/Address tables
  • Browser memory \u2014 marker clustering activates above zoom level 18; below that, addresses are grouped
","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#docker-disk-space","title":"Docker Disk Space","text":"

Symptom: Builds fail, containers can't start, or images won't pull.

# Check disk usage\ndf -h\n\n# Clean unused Docker resources\ndocker system prune -f\n\n# Clean old images (keep only last 2 days)\ndocker image prune -a --filter \"until=48h\"\n\n# Check what's using space\ndocker system df\n
","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/troubleshooting/#getting-help","title":"Getting Help","text":"

If your issue isn't listed here:

  1. Check the API logs: docker compose logs api --tail 200
  2. Search the Gitea issues
  3. Review the Deployment guide for production-specific issues
  4. File a new issue with your logs and .env (redact passwords)
","tags":["troubleshooting","operator"],"boost":2},{"location":"docs/user-guide/","title":"User Guide","text":"

This guide covers everything you can do as a visitor or registered supporter \u2014 from contacting representatives to signing up for volunteer shifts.

","tags":["guide","user"]},{"location":"docs/user-guide/#what-you-can-do","title":"What You Can Do","text":"
  • Campaigns

    Find active advocacy campaigns, look up your representatives, and send emails.

  • Map

    Explore the interactive map showing locations across your community.

  • Shifts

    Sign up for volunteer shifts and join canvassing teams.

  • Events

    Browse upcoming events and RSVP through the event calendar.

  • Gallery

    Watch campaign videos, browse photos, and explore playlists.

  • Shop & Pricing

    Purchase campaign merchandise or subscribe to a membership plan.

  • Donations

    Support the cause with one-time donations on branded pages.

  • Your Profile

    View and manage your contact profile, preferences, and activity history.

","tags":["guide","user"]},{"location":"docs/user-guide/campaigns/","title":"Campaigns","text":"

Browse active advocacy campaigns and contact your elected representatives.

","tags":["guide","user","influence","campaigns"]},{"location":"docs/user-guide/campaigns/#how-it-works","title":"How It Works","text":"
  1. Browse campaigns at /campaigns \u2014 see active campaigns with descriptions and email counts
  2. Pick a campaign \u2014 read about the issue and who it targets
  3. Enter your postal code \u2014 the system looks up your federal, provincial, municipal, and school board representatives
  4. Send the email \u2014 use \"Send Now\" to send through the platform, or open it in your own email app (Gmail, Outlook, etc.)
  5. Share the response \u2014 if a representative replies, submit it to the public Response Wall
","tags":["guide","user","influence","campaigns"]},{"location":"docs/user-guide/campaigns/#response-wall","title":"Response Wall","text":"

Each campaign has a public response wall where supporters share how their representatives responded. Responses can be upvoted and are moderated by admins. Verified responses display a trust badge.

","tags":["guide","user","influence","campaigns"]},{"location":"docs/user-guide/campaigns/#submit-your-own-campaign","title":"Submit Your Own Campaign","text":"

Registered users can draft and submit their own advocacy campaigns at /campaigns/create. Submissions go through admin review before being published.

","tags":["guide","user","influence","campaigns"]},{"location":"docs/user-guide/campaigns/#public-routes","title":"Public Routes","text":"
  • /campaigns \u2014 browse active campaigns
  • /campaign/:slug \u2014 take action on a specific campaign
  • /campaign/:slug/responses \u2014 view the response wall
  • /campaigns/create \u2014 submit a user-generated campaign (requires login)
  • /campaigns/mine \u2014 manage your submitted campaigns (requires login)
","tags":["guide","user","influence","campaigns"]},{"location":"docs/user-guide/donations/","title":"Donations","text":"

Make one-time contributions on branded donation pages.

","tags":["guide","user","payments"]},{"location":"docs/user-guide/donations/#how-it-works","title":"How It Works","text":"
  1. Browse donation pages at /donate
  2. Choose a campaign to support
  3. Select a suggested amount or enter a custom amount
  4. Complete payment securely through Stripe
  5. Receive a confirmation with a thank-you message
","tags":["guide","user","payments"]},{"location":"docs/user-guide/donations/#donation-pages","title":"Donation Pages","text":"

Each donation page has:

  • Custom branding \u2014 unique title, description, and cover image
  • Suggested amounts \u2014 pre-set donation tiers for quick selection
  • Goal tracking \u2014 progress bar showing how close the campaign is to its fundraising goal
  • Anonymous giving \u2014 option to donate without displaying your name
","tags":["guide","user","payments"]},{"location":"docs/user-guide/donations/#public-routes","title":"Public Routes","text":"
  • /donate \u2014 browse donation pages
  • /donate/:slug \u2014 donate on a specific campaign page
","tags":["guide","user","payments"]},{"location":"docs/user-guide/events/","title":"Events (Gancio)","text":"

Integrated with Gancio for self-hosted event management. When enabled, volunteer shifts are automatically published as public events.

","tags":["guide","user","events"]},{"location":"docs/user-guide/events/#shift-to-event-sync","title":"Shift-to-Event Sync","text":"

When GANCIO_SYNC_ENABLED=true, the platform:

  1. Creates a Gancio event whenever a new shift is published
  2. Updates the event if the shift time, location, or details change
  3. Deletes the event if the shift is cancelled

Sync uses OAuth authentication with the Gancio admin account.

","tags":["guide","user","events"]},{"location":"docs/user-guide/events/#key-features","title":"Key Features","text":"
  • Automatic sync \u2014 shifts appear as public events without manual entry
  • Embeddable calendar \u2014 GrapesJS block and MkDocs widget for embedding the event calendar on pages
  • Public events page \u2014 linked from the public navigation when enableEvents is enabled in settings
","tags":["guide","user","events"]},{"location":"docs/user-guide/events/#admin-routes","title":"Admin Routes","text":"
  • /app/gancio \u2014 Gancio service status and iframe embed
","tags":["guide","user","events"]},{"location":"docs/user-guide/events/#public-routes","title":"Public Routes","text":"
  • /events \u2014 public events navigation link (when enabled)
  • events.DOMAIN \u2014 Gancio web interface for browsing and RSVPs
","tags":["guide","user","events"]},{"location":"docs/user-guide/gallery/","title":"Gallery","text":"

The public gallery at /gallery showcases campaign videos, photos, and curated playlists.

","tags":["guide","user","media","gallery"]},{"location":"docs/user-guide/gallery/#videos","title":"Videos","text":"
  • Browse by category \u2014 videos organized into categories with thumbnails and durations
  • Video player \u2014 full playback with engagement features (reactions, comments)
  • Shorts feed \u2014 TikTok-style vertical video feed for clips under 60 seconds at /gallery/shorts
","tags":["guide","user","media","gallery"]},{"location":"docs/user-guide/gallery/#photos","title":"Photos","text":"
  • Photo albums \u2014 browse photos organized into named collections
  • Reactions and comments \u2014 engage with individual photos
","tags":["guide","user","media","gallery"]},{"location":"docs/user-guide/gallery/#playlists","title":"Playlists","text":"
  • Curated playlists \u2014 admin and community-created video collections
  • Featured carousel \u2014 highlighted playlists on the gallery homepage
  • Playlist viewer \u2014 continuous playback with up-next queue at /gallery/playlist/:id
","tags":["guide","user","media","gallery"]},{"location":"docs/user-guide/gallery/#public-routes","title":"Public Routes","text":"
  • /gallery \u2014 public video and photo gallery
  • /gallery/watch/:id \u2014 watch a specific video
  • /gallery/playlist/:id \u2014 view a playlist
  • /gallery/shorts \u2014 browse the shorts feed
","tags":["guide","user","media","gallery"]},{"location":"docs/user-guide/map/","title":"Map","text":"

The public map at /map shows locations across your community on an interactive Leaflet map.

","tags":["guide","user","map"]},{"location":"docs/user-guide/map/#features","title":"Features","text":"
  • Interactive map \u2014 zoom, pan, and click markers to see address details
  • Color-coded markers \u2014 locations are color-coded based on their status
  • Cluster groups \u2014 markers group together when zoomed out for better performance
  • Fullscreen mode \u2014 expand the map to fill your screen
","tags":["guide","user","map"]},{"location":"docs/user-guide/map/#public-routes","title":"Public Routes","text":"
  • /map \u2014 public interactive map
","tags":["guide","user","map"]},{"location":"docs/user-guide/profile/","title":"Self-Service Contact Profile","text":"

Give supporters a private, token-based link to view and manage their own contact profile -- no login required.

","tags":["guide","user","CRM"]},{"location":"docs/user-guide/profile/#how-it-works","title":"How It Works","text":"
  1. An admin generates a profile link from the People CRM -- each link contains a unique 64-character hex token with a configurable expiration (24 hours to 1 year).
  2. The supporter opens the link -- if the link is password-protected, they enter the password first. If expired, they see a branded expiration notice.
  3. The supporter views and edits their profile -- they can update their name, email, phone, address, and cover photo.
  4. Communication preferences -- supporters can opt out of email and/or SMS communications with simple toggle switches.
","tags":["guide","user","CRM"]},{"location":"docs/user-guide/profile/#profile-tabs","title":"Profile Tabs","text":"
  • Profile -- edit display name, first/last name, email, phone, and address
  • Preferences -- toggle email and SMS opt-out switches
  • Activity -- paginated timeline of all engagement: emails sent, responses submitted, shift signups, canvass visits, donations, video views, and profile edits
  • Social tabs -- if the viewer is a logged-in user viewing their own profile and the social feature is enabled, additional tabs appear: Friends, Feed, Achievements, Notifications, and Discover
","tags":["guide","user","CRM"]},{"location":"docs/user-guide/profile/#security","title":"Security","text":"
  • Token-based access -- no account or login needed; the URL token grants access
  • Password protection -- admins can optionally set a password on the profile link
  • Expiration -- links expire after a configurable duration, showing a branded message with the expiration date
  • Rate limiting -- separate rate limits on profile views, edits, photo uploads, and password attempts
  • Cover photo -- supporters can upload a JPEG, PNG, or WebP cover photo (max 5 MB), automatically resized to 800x400
","tags":["guide","user","CRM"]},{"location":"docs/user-guide/profile/#engagement-score","title":"Engagement Score","text":"

Each profile shows a circular engagement score (0-100) calculated from the contact's activity across the platform -- emails, shifts, canvass visits, donations, and video views.

","tags":["guide","user","CRM"]},{"location":"docs/user-guide/profile/#public-routes","title":"Public Routes","text":"
  • /profile/:token -- self-service contact profile page
","tags":["guide","user","CRM"]},{"location":"docs/user-guide/shifts/","title":"Shifts","text":"

Browse available volunteer shifts and sign up to participate in canvassing and other campaign activities.

","tags":["guide","user","shifts"]},{"location":"docs/user-guide/shifts/#signing-up","title":"Signing Up","text":"
  1. Visit /shifts to see available time slots
  2. Pick a shift that works for your schedule
  3. Fill in your name and email
  4. You'll receive a confirmation email with login credentials
","tags":["guide","user","shifts"]},{"location":"docs/user-guide/shifts/#quick-join","title":"Quick Join","text":"

Organizers may share a QR code at events for instant onboarding:

  1. Scan the QR code \u2014 it opens a Quick Join page
  2. Enter your email (and optionally your name and phone)
  3. Start immediately \u2014 you're logged in and redirected to the volunteer portal with your area pre-loaded

Quick Join creates a temporary 24-hour account. Your organizer can upgrade it to a permanent account afterward.

","tags":["guide","user","shifts"]},{"location":"docs/user-guide/shifts/#after-signing-up","title":"After Signing Up","text":"

Once you have an account, log in to access the Volunteer Portal where you can:

  • View your assigned shifts and canvassing areas
  • Open the canvass map for GPS-guided door-to-door outreach
  • Track your activity and visit history

See the Volunteer Guide for the full volunteer experience.

","tags":["guide","user","shifts"]},{"location":"docs/user-guide/shifts/#public-routes","title":"Public Routes","text":"
  • /shifts \u2014 browse and sign up for volunteer shifts
  • /join?token=... \u2014 quick join via invite link or QR code
","tags":["guide","user","shifts"]},{"location":"docs/user-guide/shop/","title":"Shop & Pricing","text":"

Support the campaign by purchasing merchandise or subscribing to a membership plan.

","tags":["guide","user","payments"]},{"location":"docs/user-guide/shop/#shop","title":"Shop","text":"

Browse available products at /shop:

  • Campaign merchandise and branded items
  • One-time purchases with Stripe checkout
  • Product details with images and descriptions
","tags":["guide","user","payments"]},{"location":"docs/user-guide/shop/#membership-plans","title":"Membership Plans","text":"

View subscription options at /pricing:

  • Tiered membership plans with different benefits
  • Monthly and yearly billing options
  • Secure recurring payments through Stripe
","tags":["guide","user","payments"]},{"location":"docs/user-guide/shop/#public-routes","title":"Public Routes","text":"
  • /shop \u2014 browse products
  • /pricing \u2014 view subscription plans
","tags":["guide","user","payments"]},{"location":"docs/volunteer/","title":"Volunteer Guide","text":"

Welcome! This guide walks you through everything you need as a campaign volunteer.

","tags":["guide","volunteer"]},{"location":"docs/volunteer/#getting-started","title":"Getting Started","text":"","tags":["guide","volunteer"]},{"location":"docs/volunteer/#1-sign-up-for-a-shift","title":"1. Sign Up for a Shift","text":"

Visit the Shifts page (your organizer will share the link, or find it at /shifts). Browse available time slots, pick one that works, and fill in your name and email. You'll receive a confirmation email with login credentials.

","tags":["guide","volunteer"]},{"location":"docs/volunteer/#2-log-in","title":"2. Log In","text":"

Sign in with the email and password from your confirmation at the login page.

","tags":["guide","volunteer"]},{"location":"docs/volunteer/#3-explore-the-volunteer-portal","title":"3. Explore the Volunteer Portal","text":"

After logging in, you'll land on the volunteer portal. Use the bottom navigation to access:

  • Map \u2014 your canvassing area with GPS tracking
  • Shifts \u2014 your upcoming and past shifts
  • Friends \u2014 social connections with other volunteers
  • Achievements \u2014 badges and leaderboards
","tags":["guide","volunteer"]},{"location":"docs/volunteer/#in-this-section","title":"In This Section","text":"
  • Canvassing \u2014 the GPS-guided canvass map, recording visits, and walking routes
  • Shifts \u2014 viewing your assigned shifts, activity log, and route history
  • Social \u2014 friend connections, activity feed, groups, profiles, and privacy settings
  • Achievements \u2014 unlockable badges, progress tracking, and competitive leaderboards
","tags":["guide","volunteer"]},{"location":"docs/volunteer/#browsing-public-pages","title":"Browsing Public Pages","text":"

Tap your name/avatar in the header and select Browse Site to visit the public pages \u2014 campaigns, the public map, and shift signups.

","tags":["guide","volunteer"]},{"location":"docs/volunteer/#faq","title":"FAQ","text":"

Q: I can't find my assigned area on the map. A: Make sure your shift has an area assigned. Check with your organizer.

Q: My GPS isn't working. A: Allow location access in your browser. Try moving near a window for better signal.

Q: I recorded the wrong outcome. A: Visit the same address again and record the correct outcome. The most recent visit counts.

Q: How do I sign up for more shifts? A: Visit the public shifts page at /shifts.

","tags":["guide","volunteer"]},{"location":"docs/volunteer/achievements/","title":"Achievements & Leaderboard","text":"

Recognize volunteer contributions with unlockable achievement badges and competitive leaderboards.

","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/achievements/#how-it-works","title":"How It Works","text":"

Achievements are checked automatically when relevant actions occur (e.g., signing up for a shift, completing a canvass session, accepting a friend request). When a user's progress meets the threshold, the badge is unlocked and an in-app notification is sent.

","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/achievements/#badge-categories","title":"Badge Categories","text":"","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/achievements/#shifts","title":"Shifts","text":"Badge Name Threshold Description FIRST_SHIFT First Steps 1 confirmed signup Sign up for your first volunteer shift SHIFT_STREAK_3 Reliable Volunteer 3 confirmed signups Sign up for 3 volunteer shifts SHIFT_STREAK_10 Shift Champion 10 confirmed signups Sign up for 10 volunteer shifts","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/achievements/#canvassing","title":"Canvassing","text":"Badge Name Threshold Description FIRST_CANVASS Door Knocker 1 completed session Complete your first canvass session CANVASS_50_DOORS Neighbourhood Explorer 50 visits Record 50 canvass visits CANVASS_100_DOORS Community Connector 100 visits Record 100 canvass visits CANVASS_500_DOORS Door-to-Door Legend 500 visits Record 500 canvass visits","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/achievements/#campaigns","title":"Campaigns","text":"Badge Name Threshold Description FIRST_CAMPAIGN_EMAIL Voice Heard 1 email sent Send your first advocacy email CAMPAIGN_CHAMPION Campaign Champion 5 distinct campaigns Participate in 5 different campaigns","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/achievements/#social","title":"Social","text":"Badge Name Threshold Description SOCIAL_BUTTERFLY Social Butterfly 10 accepted friends Make 10 friends on the platform TEAM_PLAYER Team Player 3 group memberships Be a member of 3 groups","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/achievements/#progress-tracking","title":"Progress Tracking","text":"

Each badge displays a progress bar showing current progress toward the threshold. Already-unlocked badges show the unlock date and the progress value at unlock time or the current count (whichever is higher).

","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/achievements/#leaderboards","title":"Leaderboards","text":"

The Achievements page includes a leaderboard tab with three ranking types:

  • Canvass \u2014 ranked by total canvass visits recorded
  • Shifts \u2014 ranked by total confirmed shift signups
  • Campaigns \u2014 ranked by number of distinct campaigns participated in

Leaderboard entries show rank, user name, and score. Users who have disabled \"Show in Friend Activity\" in their privacy settings are excluded from leaderboard rankings to respect their privacy choices.

","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/achievements/#volunteer-stats","title":"Volunteer Stats","text":"

The Achievements page also displays aggregate stats for the current user:

  • Confirmed shift signups
  • Completed canvass sessions
  • Total canvass visits
  • Advocacy emails sent
  • Campaigns participated in
  • Friend count
  • Group memberships
","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/achievements/#volunteer-routes","title":"Volunteer Routes","text":"
  • /volunteer/achievements \u2014 badge gallery, progress bars, leaderboard tabs, and personal stats
","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/canvassing/","title":"Canvassing","text":"

The volunteer canvass map is your main tool for door-to-door outreach \u2014 a full-screen GPS-tracked experience.

","tags":["guide","volunteer","map","canvassing"]},{"location":"docs/volunteer/canvassing/#the-volunteer-map","title":"The Volunteer Map","text":"","tags":["guide","volunteer","map","canvassing"]},{"location":"docs/volunteer/canvassing/#what-you-see","title":"What You See","text":"
  • Colored markers \u2014 each marker is an address. Colors indicate the outcome of the last visit (green = supportive, red = opposed, grey = not yet visited)
  • Clusters \u2014 when zoomed out, markers group together showing the address count. Tap a cluster to zoom in.
  • Blue dot \u2014 your current GPS position
  • Walking route \u2014 a suggested path through the addresses (dotted line)
","tags":["guide","volunteer","map","canvassing"]},{"location":"docs/volunteer/canvassing/#recording-a-visit","title":"Recording a Visit","text":"
  1. Tap a marker to select an address
  2. A bottom panel slides up showing address details
  3. Tap Record Visit to log what happened:
    • Not Home \u2014 nobody answered
    • Supportive \u2014 positive interaction
    • Opposed \u2014 not supportive
    • Undecided \u2014 hasn't made up their mind
    • Moved \u2014 no longer lives there
    • Refused \u2014 declined to talk
  4. Optionally add a note about the visit
  5. Tap Save \u2014 the marker color updates immediately
","tags":["guide","volunteer","map","canvassing"]},{"location":"docs/volunteer/canvassing/#sessions","title":"Sessions","text":"
  • Start a session before you begin knocking on doors \u2014 this tracks your route and time
  • End your session when you're done for the day
  • The map works offline for basic viewing, but you need a connection to save visits
  • If GPS is inaccurate, manually tap the correct marker on the map
","tags":["guide","volunteer","map","canvassing"]},{"location":"docs/volunteer/canvassing/#routes","title":"Routes","text":"

The Routes tab shows your past canvassing routes on a map, helping you see which areas you've covered and plan your next outing.

","tags":["guide","volunteer","map","canvassing"]},{"location":"docs/volunteer/canvassing/#volunteer-routes","title":"Volunteer Routes","text":"
  • /volunteer \u2014 full-screen canvass map with GPS and visit recording
  • /volunteer/activity \u2014 visit history and outcome breakdown
  • /volunteer/routes \u2014 past canvassing routes
","tags":["guide","volunteer","map","canvassing"]},{"location":"docs/volunteer/shifts/","title":"Your Shifts","text":"

View your upcoming and past volunteer shifts from the Shifts tab in the bottom navigation.

","tags":["guide","volunteer","shifts"]},{"location":"docs/volunteer/shifts/#shift-details","title":"Shift Details","text":"

Each shift shows:

  • Date and time
  • Assigned area (if linked to a canvassing territory)
  • A button to open the canvass map for that area
","tags":["guide","volunteer","shifts"]},{"location":"docs/volunteer/shifts/#activity-log","title":"Activity Log","text":"

The Activity tab shows your complete visit history:

  • Outcome breakdown \u2014 pie chart of your visit outcomes
  • Visit list \u2014 each visit with address, outcome, time, and notes
  • Stats \u2014 total visits, addresses covered, and sessions completed
","tags":["guide","volunteer","shifts"]},{"location":"docs/volunteer/shifts/#volunteer-routes","title":"Volunteer Routes","text":"
  • /volunteer/shifts \u2014 view assigned shifts
  • /volunteer/activity \u2014 visit history and outcome breakdown
","tags":["guide","volunteer","shifts"]},{"location":"docs/volunteer/social/","title":"Social Connections","text":"

Connect with fellow volunteers through friend requests, activity feeds, team groups, and real-time notifications. Enable via Settings > Feature Toggles > Social Connections.

","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/social/#friends","title":"Friends","text":"
  • Send requests \u2014 search for other volunteers and send friend requests
  • Accept / decline / cancel \u2014 manage requests from the Friends page
  • Mutual friends \u2014 view shared connections between users
  • Block / unblock \u2014 blocked users cannot send requests or appear in suggestions
","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/social/#discover","title":"Discover","text":"

The Discover page suggests potential friends using a ranked scoring algorithm based on:

  • Household/family connections (highest priority)
  • Mutual friends
  • Shared shifts (co-volunteers from the last 90 days)
  • Shared campaigns (co-participants from the last 90 days)
","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/social/#activity-feed","title":"Activity Feed","text":"

The Social Feed at /volunteer/feed shows recent activity from your friends:

  • Shift signups, campaign emails, canvass sessions, and response submissions
  • Limited to the last 30 days (max 50 items)
","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/social/#groups","title":"Groups","text":"

Groups are automatically created based on platform activity:

  • Shift teams \u2014 created when 2+ volunteers share a shift
  • Campaign teams \u2014 created when 2+ users participate in the same campaign
","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/social/#profiles","title":"Profiles","text":"

Each volunteer has a social profile showing volunteer stats, achievement badges, friendship status, and recent activity.

","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/social/#pokes","title":"Pokes","text":"

Send a friendly nudge to any accepted friend (24-hour cooldown per pair).

","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/social/#privacy-settings","title":"Privacy Settings","text":"Setting Default Description Show online status On Whether friends see you as online Show in friend activity On Whether your actions appear in feeds Allow friend requests On Whether others can send you requests","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/social/#digest-emails","title":"Digest Emails","text":"

Opt into periodic social digest emails with friend activity, unread notifications, and pending requests. Choose daily or weekly frequency.

","tags":["guide","volunteer","social"]},{"location":"docs/volunteer/social/#volunteer-routes","title":"Volunteer Routes","text":"
  • /volunteer/feed \u2014 social activity feed
  • /volunteer/friends \u2014 friends, requests, blocked, and groups
  • /volunteer/discover \u2014 ranked friend suggestions
  • /volunteer/profile \u2014 your social profile
  • /volunteer/profile/:userId \u2014 another volunteer's profile
  • /volunteer/notifications \u2014 notification center and preferences
  • /volunteer/groups/:id \u2014 group detail with member list
","tags":["guide","volunteer","social"]},{"location":"blog/archive/2026/","title":"2026","text":""},{"location":"blog/category/testing/","title":"Testing","text":""},{"location":"blog/category/announcements/","title":"Announcements","text":""},{"location":"blog/category/platform/","title":"Platform","text":""}]} \ No newline at end of file diff --git a/mkdocs/site/sitemap.xml b/mkdocs/site/sitemap.xml index ee5bc226..7fee9687 100644 --- a/mkdocs/site/sitemap.xml +++ b/mkdocs/site/sitemap.xml @@ -2,338 +2,350 @@ https://cmlite.org/ - 2026-03-23 + 2026-03-31 https://cmlite.org/404/ - 2026-03-23 + 2026-03-31 https://cmlite.org/lander/ - 2026-03-23 + 2026-03-31 https://cmlite.org/main/ - 2026-03-23 + 2026-03-31 https://cmlite.org/test-page/ - 2026-03-23 + 2026-03-31 + + + https://cmlite.org/test/ + 2026-03-31 https://cmlite.org/blog/ - 2026-03-23 + 2026-03-31 + + + https://cmlite.org/blog/2026/03/27/test-blog-post---version-7/ + 2026-03-31 https://cmlite.org/blog/2026/03/22/introducing-changemaker-lite-v2/ - 2026-03-23 + 2026-03-31 https://cmlite.org/comments/callback/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/phil/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/dashboard/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/people-access/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/settings/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/advocacy/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/advocacy/campaigns/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/advocacy/email-queue/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/advocacy/representatives/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/advocacy/responses/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/broadcast/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/broadcast/email-templates/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/broadcast/newsletter/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/broadcast/sms/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/map/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/map/areas/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/map/canvassing/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/map/data-quality/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/map/locations/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/map/settings/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/map/shifts/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/media/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/media/ads/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/media/analytics/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/media/curated/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/media/library/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/media/moderation/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/payments/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/payments/donations/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/payments/plans/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/payments/products/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/payments/settings/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/services/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/services/crowdsec/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/services/integrations/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/services/monitoring/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/services/tunnel/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/services/user-provisioning/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/web/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/web/documentation/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/web/homepage/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/web/landing-pages/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/admin/web/navigation/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/api/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/architecture/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/deployment/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/getting-started/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/getting-started/control-panel/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/getting-started/environment-variables/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/getting-started/features/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/getting-started/first-steps/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/getting-started/installation/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/getting-started/services/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/getting-started/upgrades/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/services/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/troubleshooting/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/user-guide/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/user-guide/campaigns/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/user-guide/donations/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/user-guide/events/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/user-guide/gallery/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/user-guide/map/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/user-guide/profile/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/user-guide/shifts/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/user-guide/shop/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/volunteer/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/volunteer/achievements/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/volunteer/canvassing/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/volunteer/shifts/ - 2026-03-23 + 2026-03-31 https://cmlite.org/docs/volunteer/social/ - 2026-03-23 + 2026-03-31 https://cmlite.org/includes/abbreviations/ - 2026-03-23 + 2026-03-31 https://cmlite.org/partials/integrations/analytics/custom/ - 2026-03-23 + 2026-03-31 https://cmlite.org/blog/archive/2026/ - 2026-03-23 + 2026-03-31 + + + https://cmlite.org/blog/category/testing/ + 2026-03-31 https://cmlite.org/blog/category/announcements/ - 2026-03-23 + 2026-03-31 https://cmlite.org/blog/category/platform/ - 2026-03-23 + 2026-03-31 \ No newline at end of file diff --git a/mkdocs/site/sitemap.xml.gz b/mkdocs/site/sitemap.xml.gz index 49ba88e9b35782357fdbd7f33ba6d7e0b0bef15f..52d48cfd9cfd21f1e81de521fbf1b0171e0796b6 100644 GIT binary patch delta 846 zcmV-U1F`(T2HXY*ABzYGfDX%%2OWQDTCCfUrnf!8_5ifR*g|E|lVoRk`%!k$q(Kh@ z29UnQABui|$s$Ej-oO0m{c6IP9EIog{bsvfVK8J}XrI@=e*UPwu3rv!`!V{2dBuf8 zdR})q58vzhbUJO4%h^+%7sU?4LHKzAm zey(6&mj~D7AmyIyVYl6VskRT*!#x*yySG$azt{YajK}Sx2**RP7)4M$xF7<`m~u5h zi()hpP~)kU1C{#f?L)nLTKcoxtOnwPbP)u67|uvZG<+uS^G_Wh;KgSd~9i z(@sQ_p}xnEQ*FTe2F$An)slZna-gAeUXBK~7jh3*I18z32%?n+4@iT@3XH*&q~SbA zW;PyiF4&0-n6nz!KtF(MgI>$oRXJb%9&to94H1WkiMD$UO^KHtO22E z`%~~T4mkcCJY>xt2zW}K{ee&n_^F1}i+4bY`xTH75mef0AWV=FdwqWmx`hnv^njnA zHTYbLeH{gruGgAvXLjd~S)Pp6fesX`QfncAKWAr@@MerWk60bJcTI$N)`4?f7-#Di zkKy6GtO2#SmV%C3dso2GizaG+1pV-$SD76(uB%qGWdml?E58KP+XdJ8sGb`?AiYEgfBD+9yi zB8Bo2stKZl#!K4Rt(+r58H1V%Tuhm-a8MNC0-t#=>~d~Z$VY#Dw+hCAV=gPHK)%iF z1;%1@9Z?nyXy#a|9i2rLro!IH6Jn_^~KF^XG=^x1u0*%24+WAL* Y**rf|{Et^X|0K+Zzp_IVg<~oJ0Jy)KAOHXW delta 818 zcmV-21I_&02EYafABzYGfP%o02OWP|S`6Eernf!8_5ifR+CpW~(}%OX{V1nM(qM-H z1IS!zJ1T#F$s$Ej*}wcA{c6UT9EIogr_FY~!eGd{&_Az#{`lT}S-%_}_9gm+dBu%G zdR`AXPv6@1csy>B%Q(W6HWd3dnSpOo`~I-qZoaM$4=esu1Lv#dv-e~U)k=S2GiLPM zelf6b>le4}Amx$lVYl6VZnlrj?vb0kKRX+4FP8t2@w9ys;dlrZqX=pQ7eqiAQ*I{c zQH0ic>g7PyUb}s4ce~bw9LW~LPSBVELeI1L4P#UPp_z9gnhcF2hMZah-gjW$M5vZb zk^@bH^Kvw>qmY~2;4Gw}BZz-i8ayFQ9vd(QQ<8@BT9Mg##JON+GGI<>Tm$0-t`B-W z=TPN*^Q&M%H4PD`h>4>YWH)0{)R86%NnSx039Mmrdf@Xs;5=;dkTpjj;4yiQ2ST~f zUp1srd;n_xtAK=vpwd?ZVTP1A>TA#~WZ<9&{QXIT&#gGtQBWCrt<`^aVGr&#%ahSM z(1C(g>MaEDr|gUp-jvAeh}D66*F}gY9XQ*c?ivrGGH0etj zK=B1=h4zGTb_VshCeqO+G-?7|$k<1n*?$o+QgE4~LQ-{+kV^>Y)$oO{8g|3k)e5!3 zKpe5tK=N%F&pT-Ob*Fy{7-&SXO79)Jmd`WrH6iUg0N@?eqeHmf^XR3 zD4M_CgALVF1<#XOG@jnez%aW=p}vG>hUlR4l0J4X=M|yOK}`iN zrp$LZDT;7`ue=uyIrl2$v%Y%;W#XL6N-B`=Ge?0^oo*n?q6vS^l1uf)SyW*voQ>Sj z6}GZBbev`P@i*w6;|faFPHxzuMerLgZx~*k*O}(h710l95*+WDeBn*9U0AtjZGXMYp diff --git a/mkdocs/site/test-page/index.html b/mkdocs/site/test-page/index.html index bfe8fb55..173dcc80 100644 --- a/mkdocs/site/test-page/index.html +++ b/mkdocs/site/test-page/index.html @@ -1546,6 +1546,8 @@ body.cm-search-active .md-header--cm-hidden .md-search__output { + + diff --git a/mkdocs/site/test/index.html b/mkdocs/site/test/index.html new file mode 100644 index 00000000..d458733c --- /dev/null +++ b/mkdocs/site/test/index.html @@ -0,0 +1,1590 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + test - Changemaker Lite + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + +
+
+ + +
+ + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+ + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + +

test

+

Hello!

+ + + + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nginx/conf.d/services.conf.template b/nginx/conf.d/services.conf.template index a37351d8..d192a2c7 100644 --- a/nginx/conf.d/services.conf.template +++ b/nginx/conf.d/services.conf.template @@ -1,4 +1,5 @@ # Gitea — allows iframe embedding from admin (app.${DOMAIN}) +# SSO: nginx validates cml_session cookie via API auth_request, injects X-WEBAUTH-USER server { listen 80; server_name git.${DOMAIN}; @@ -7,7 +8,20 @@ server { # Increase max body size for large git pushes (2GB) client_max_body_size 2048M; + # Internal: validate SSO session cookie via API + location = /_auth { + internal; + set $upstream_api http://changemaker-v2-api:4000; + proxy_pass $upstream_api/api/auth/gitea-sso-validate; + proxy_pass_request_body off; + proxy_set_header Content-Length ""; + proxy_set_header Cookie $http_cookie; + } + location / { + auth_request /_auth; + auth_request_set $gitea_user $upstream_http_x_gitea_user; + set $upstream_gitea http://gitea-changemaker:3000; proxy_pass $upstream_gitea; proxy_hide_header X-Frame-Options; @@ -15,6 +29,8 @@ server { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; + # SSO header — empty string if not authenticated (Gitea ignores it) + proxy_set_header X-WEBAUTH-USER $gitea_user; } } @@ -300,11 +316,26 @@ server { } } +# Gitea embed proxy — SSO via auth_request (same as subdomain block) server { listen ${GITEA_EMBED_PORT}; # Increase max body size for large git pushes (2GB) client_max_body_size 2048M; + + # Internal: validate SSO session cookie via API + location = /_auth { + internal; + set $upstream_api http://changemaker-v2-api:4000; + proxy_pass $upstream_api/api/auth/gitea-sso-validate; + proxy_pass_request_body off; + proxy_set_header Content-Length ""; + proxy_set_header Cookie $http_cookie; + } + location / { + auth_request /_auth; + auth_request_set $gitea_user $upstream_http_x_gitea_user; + set $upstream_gitea http://gitea-changemaker:3000; proxy_pass $upstream_gitea; proxy_hide_header X-Frame-Options; @@ -314,6 +345,8 @@ server { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; + # SSO header — empty string if not authenticated (Gitea ignores it) + proxy_set_header X-WEBAUTH-USER $gitea_user; } } diff --git a/scripts/install.sh b/scripts/install.sh index 120236c6..dc63d2f2 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -5,7 +5,7 @@ # Downloads the latest release tarball and runs the configuration wizard. # # Usage: -# curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/v2/scripts/install.sh | bash +# curl -fsSL https://gitea.bnkops.com/admin/changemaker.lite/raw/branch/main/scripts/install.sh | bash # bash install.sh [OPTIONS] # # Options: