From c85df728b7041a14fcfac1ce730dd901d67881bc Mon Sep 17 00:00:00 2001 From: Aaron Date: Wed, 10 Dec 2025 18:51:31 -0500 Subject: [PATCH] Add dashboard UI updates and settings modal --- .gitignore | 28 + README.md | 21 + check-pikit-clean.sh | 49 + flash_sd.sh | 43 + pikit-api.py | 716 ++++++++ pikit-prep-spec.md | 391 ++++ pikit-prep.sh | 245 +++ pikit-services.json | 3 + pikit-web/LICENSE | 21 + pikit-web/LICENSE.txt | 21 + pikit-web/RESCUE.md | 41 + pikit-web/THIRD-PARTY-LICENSES.md | 21 + pikit-web/THIRD-PARTY-LICENSES.txt | 21 + pikit-web/assets/api.js | 89 + pikit-web/assets/fonts/Atkinson-Bold.woff2 | Bin 0 -> 17616 bytes pikit-web/assets/fonts/Atkinson-Regular.woff2 | Bin 0 -> 17184 bytes pikit-web/assets/fonts/Chivo-Bold.woff2 | Bin 0 -> 13420 bytes pikit-web/assets/fonts/Chivo-Regular.woff2 | Bin 0 -> 13572 bytes pikit-web/assets/fonts/DMSans-Bold.woff2 | Bin 0 -> 14312 bytes pikit-web/assets/fonts/DMSans-Medium.woff2 | Bin 0 -> 14276 bytes pikit-web/assets/fonts/DMSans-Regular.woff2 | Bin 0 -> 14132 bytes pikit-web/assets/fonts/Manrope-Regular.woff2 | Bin 0 -> 14136 bytes pikit-web/assets/fonts/Manrope-SemiBold.woff2 | Bin 0 -> 14152 bytes pikit-web/assets/fonts/OFL.txt | 101 ++ pikit-web/assets/fonts/PlexSans-Regular.woff2 | Bin 0 -> 19156 bytes .../assets/fonts/PlexSans-SemiBold.woff2 | Bin 0 -> 20356 bytes .../assets/fonts/RedHatDisplay-Bold.woff2 | Bin 0 -> 13428 bytes .../assets/fonts/RedHatDisplay-SemiBold.woff2 | Bin 0 -> 13380 bytes .../assets/fonts/RedHatText-Medium.woff2 | Bin 0 -> 13272 bytes .../assets/fonts/RedHatText-Regular.woff2 | Bin 0 -> 12840 bytes pikit-web/assets/fonts/Sora-Regular.woff2 | Bin 0 -> 13380 bytes pikit-web/assets/fonts/Sora-SemiBold.woff2 | Bin 0 -> 13592 bytes .../assets/fonts/SpaceGrotesk-Medium.woff2 | Bin 0 -> 11916 bytes .../assets/fonts/SpaceGrotesk-Regular.woff2 | Bin 0 -> 11932 bytes .../assets/fonts/SpaceGrotesk-SemiBold.woff2 | Bin 0 -> 11764 bytes pikit-web/assets/main.js | 635 +++++++ pikit-web/assets/services.js | 361 ++++ pikit-web/assets/settings.js | 130 ++ pikit-web/assets/status.js | 77 + pikit-web/assets/style.css | 1574 +++++++++++++++++ pikit-web/assets/update-settings.js | 344 ++++ pikit-web/data/mock-updates.json | 11 + pikit-web/favicon.ico | 0 pikit-web/index.html | 634 +++++++ pikit-web/package-lock.json | 1071 +++++++++++ pikit-web/package.json | 27 + pikit-web/playwright.config.js | 32 + pikit-web/tests/busy-overlay.spec.js | 49 + pikit-web/tests/service-path.spec.js | 18 + pikit-web/tests/services-flow.spec.js | 216 +++ pikit-web/tests/update-settings.spec.js | 114 ++ pikit-web/vite.config.js | 18 + set_ready.sh | 7 + start-codex.sh | 22 + 54 files changed, 7151 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100755 check-pikit-clean.sh create mode 100755 flash_sd.sh create mode 100644 pikit-api.py create mode 100644 pikit-prep-spec.md create mode 100644 pikit-prep.sh create mode 100644 pikit-services.json create mode 100644 pikit-web/LICENSE create mode 100644 pikit-web/LICENSE.txt create mode 100644 pikit-web/RESCUE.md create mode 100644 pikit-web/THIRD-PARTY-LICENSES.md create mode 100644 pikit-web/THIRD-PARTY-LICENSES.txt create mode 100644 pikit-web/assets/api.js create mode 100644 pikit-web/assets/fonts/Atkinson-Bold.woff2 create mode 100644 pikit-web/assets/fonts/Atkinson-Regular.woff2 create mode 100644 pikit-web/assets/fonts/Chivo-Bold.woff2 create mode 100644 pikit-web/assets/fonts/Chivo-Regular.woff2 create mode 100644 pikit-web/assets/fonts/DMSans-Bold.woff2 create mode 100644 pikit-web/assets/fonts/DMSans-Medium.woff2 create mode 100644 pikit-web/assets/fonts/DMSans-Regular.woff2 create mode 100644 pikit-web/assets/fonts/Manrope-Regular.woff2 create mode 100644 pikit-web/assets/fonts/Manrope-SemiBold.woff2 create mode 100644 pikit-web/assets/fonts/OFL.txt create mode 100644 pikit-web/assets/fonts/PlexSans-Regular.woff2 create mode 100644 pikit-web/assets/fonts/PlexSans-SemiBold.woff2 create mode 100644 pikit-web/assets/fonts/RedHatDisplay-Bold.woff2 create mode 100644 pikit-web/assets/fonts/RedHatDisplay-SemiBold.woff2 create mode 100644 pikit-web/assets/fonts/RedHatText-Medium.woff2 create mode 100644 pikit-web/assets/fonts/RedHatText-Regular.woff2 create mode 100644 pikit-web/assets/fonts/Sora-Regular.woff2 create mode 100644 pikit-web/assets/fonts/Sora-SemiBold.woff2 create mode 100644 pikit-web/assets/fonts/SpaceGrotesk-Medium.woff2 create mode 100644 pikit-web/assets/fonts/SpaceGrotesk-Regular.woff2 create mode 100644 pikit-web/assets/fonts/SpaceGrotesk-SemiBold.woff2 create mode 100644 pikit-web/assets/main.js create mode 100644 pikit-web/assets/services.js create mode 100644 pikit-web/assets/settings.js create mode 100644 pikit-web/assets/status.js create mode 100644 pikit-web/assets/style.css create mode 100644 pikit-web/assets/update-settings.js create mode 100644 pikit-web/data/mock-updates.json create mode 100644 pikit-web/favicon.ico create mode 100644 pikit-web/index.html create mode 100644 pikit-web/package-lock.json create mode 100644 pikit-web/package.json create mode 100644 pikit-web/playwright.config.js create mode 100644 pikit-web/tests/busy-overlay.spec.js create mode 100644 pikit-web/tests/service-path.spec.js create mode 100644 pikit-web/tests/services-flow.spec.js create mode 100644 pikit-web/tests/update-settings.spec.js create mode 100644 pikit-web/vite.config.js create mode 100755 set_ready.sh create mode 100755 start-codex.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ef8a0b3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,28 @@ +# Node +node_modules/ +pikit-web/node_modules/ +pikit-web/dist/ +pikit-web/test-results/ +pikit-web/.vite/ +pikit-web/coverage/ +pikit-web/playwright-report/ +pikit-web/.cache/ + +# Python +__pycache__/ +*.pyc + +# OS/Editor +.DS_Store +Thumbs.db +*.swp + +# Build artifacts +*.log + +# QEMU images / large artifacts +qemu-dietpi/ + +# Stock images (large) +images/stock/ + diff --git a/README.md b/README.md new file mode 100644 index 0000000..016c3f8 --- /dev/null +++ b/README.md @@ -0,0 +1,21 @@ +# Pi-Kit Dashboard + +Lightweight dashboard for DietPi-based Pi-Kit images. Two pieces live in this repo: + +- `pikit-api.py`: tiny Python HTTP API (status, services, auto updates, factory reset). Runs on localhost:4000 and writes to `/etc/pikit/services.json`. +- `pikit-web/`: static Vite site served by nginx from `/var/www/pikit-web`. Sources live in `pikit-web/assets/`; Playwright E2E tests in `pikit-web/tests/`. + +## Local development +- Dashboard: `cd pikit-web && npm install` (first run), then `npm run dev` for Vite, `npm test` for Playwright, `npm run build` for production bundle. +- API: `python pikit-api.py` to run locally (listens on 127.0.0.1:4000). + +## Deploying to a Pi-Kit box +1. Copy `pikit-api.py` to the device (e.g., `/usr/local/bin/`) and restart the service unit that wraps it. +2. Sync `pikit-web/index.html` and `pikit-web/assets/*` (or the built `pikit-web/dist/*`) to `/var/www/pikit-web/`. +3. The API surfaces clear errors if firewall tooling (`ufw`) is missing when ports are opened/closed. +4. Factory reset sets `root` and `dietpi` passwords to `pikit`. + +## Notes +- Service paths are normalized (leading slash) and URLs include optional subpaths. +- Firewall changes raise explicit errors when `ufw` is unavailable so the UI can surface what failed. +- Access the device UI at `http://pikit.local/` (mDNS). diff --git a/check-pikit-clean.sh b/check-pikit-clean.sh new file mode 100755 index 0000000..7719c48 --- /dev/null +++ b/check-pikit-clean.sh @@ -0,0 +1,49 @@ + #!/bin/bash + set -euo pipefail + + echo "== Identity files ==" + ls -l /etc/machine-id || true + cat /etc/machine-id || true + [ -e /var/lib/dbus/machine-id ] && echo "dbus machine-id exists" || echo "dbus machine-id missing (expected)" + ls -l /var/lib/systemd/random-seed || true + + echo -e "\n== SSH host keys ==" + ls /etc/ssh/ssh_host_* 2>/dev/null || echo "no host keys (expected)" + + echo -e "\n== SSH client traces ==" + for f in /root/.ssh/known_hosts /home/dietpi/.ssh/known_hosts /home/dietpi/.ssh/authorized_keys; do + if [ -e "$f" ]; then + printf "%s: size %s\n" "$f" "$(stat -c%s "$f")" + [ -s "$f" ] && echo " WARNING: not empty" + else + echo "$f: missing" + fi + done + + echo -e "\n== Ready flag ==" + [ -e /var/run/pikit-ready ] && echo "READY FLAG STILL PRESENT" || echo "ready flag absent (expected)" + + echo -e "\n== Logs ==" + du -sh /var/log 2>/dev/null + du -sh /var/log/nginx 2>/dev/null + find /var/log -type f -maxdepth 2 -printf "%p %s bytes\n" + + echo -e "\n== DietPi RAM logs ==" + if [ -d /var/tmp/dietpi/logs ]; then + find /var/tmp/dietpi/logs -type f -printf "%p %s bytes\n" + else + echo "/var/tmp/dietpi/logs missing" + fi + + echo -e "\n== Caches ==" + du -sh /var/cache/apt /var/lib/apt/lists /var/cache/debconf 2>/dev/null || true + + echo -e "\n== Temp dirs ==" + du -sh /tmp /var/tmp 2>/dev/null || true + find /tmp /var/tmp -maxdepth 1 -mindepth 1 ! -name 'systemd-private-*' -print + + echo -e "\n== DHCP lease ==" + ls -l /var/lib/dhcp/dhclient.eth0.leases 2>/dev/null || echo "lease file missing (expected)" + + echo -e "\n== Nginx cache dirs ==" + [ -d /var/lib/nginx ] && find /var/lib/nginx -maxdepth 2 -type d -print || echo "/var/lib/nginx missing" diff --git a/flash_sd.sh b/flash_sd.sh new file mode 100755 index 0000000..44ad4aa --- /dev/null +++ b/flash_sd.sh @@ -0,0 +1,43 @@ +#!/bin/bash +set -euo pipefail + +# Pi-Kit flashing helper (small wrapper around xzcat | dd). +# Usage: sudo ./flash_sd.sh /path/to/image.img.xz /dev/sdX +# Example: sudo ./flash_sd.sh images/output/DietPi_RPi5-ARMv8-Trixie-base.img.xz /dev/sdb +# Safety guardrails: +# - Requires root (sudo). +# - WILL wipe the target block device; prompt asks for YES before writing. +# - If a .sha256 sits next to the image, consider verifying it first. + +img="${1:-}" +dev="${2:-}" + +if [[ -z "$img" || -z "$dev" ]]; then + echo "Usage: sudo $0 image.img.xz /dev/sdX" + exit 1 +fi + +if [[ $EUID -ne 0 ]]; then + echo "Please run as root (sudo)." + exit 1 +fi + +if [[ ! -b "$dev" ]]; then + echo "Device $dev not found or not a block device." + exit 1 +fi + +echo "About to wipe and flash $dev with $img" +read -rp "Type YES to continue: " yn +[[ "$yn" == "YES" ]] || { echo "Aborted."; exit 1; } + +echo "Decompressing and writing... this may take several minutes." +xzcat "$img" | pv | dd of="$dev" bs=4M conv=fsync status=none + +echo "Syncing..." +sync + +echo "Flashed $img to $dev successfully." + +echo "Ejecting $dev..." +sudo eject "$dev" || true diff --git a/pikit-api.py b/pikit-api.py new file mode 100644 index 0000000..68cec02 --- /dev/null +++ b/pikit-api.py @@ -0,0 +1,716 @@ +#!/usr/bin/env python3 +import json, os, subprocess, socket, shutil, pathlib, datetime +from http.server import BaseHTTPRequestHandler, HTTPServer +import re + +HOST = "127.0.0.1" +PORT = 4000 +SERVICE_JSON = pathlib.Path("/etc/pikit/services.json") +RESET_LOG = pathlib.Path("/var/log/pikit-reset.log") +API_LOG = pathlib.Path("/var/log/pikit-api.log") +DEBUG_FLAG = pathlib.Path("/boot/pikit-debug").exists() +HTTPS_PORTS = {443, 5252} +CORE_PORTS = {80} +CORE_NAME = "Pi-Kit Dashboard" +READY_FILE = pathlib.Path("/var/run/pikit-ready") +APT_AUTO_CFG = pathlib.Path("/etc/apt/apt.conf.d/20auto-upgrades") +APT_UA_BASE = pathlib.Path("/etc/apt/apt.conf.d/50unattended-upgrades") +APT_UA_OVERRIDE = pathlib.Path("/etc/apt/apt.conf.d/51pikit-unattended.conf") +DEFAULT_UPDATE_TIME = "04:00" +DEFAULT_UPGRADE_TIME = "04:30" +SECURITY_PATTERNS = [ + 'origin=Debian,codename=${distro_codename},label=Debian-Security', + 'origin=Debian,codename=${distro_codename}-security,label=Debian-Security', +] +ALL_PATTERNS = [ + 'origin=Debian,codename=${distro_codename},label=Debian', + *SECURITY_PATTERNS, +] + + +class FirewallToolMissing(Exception): + """Raised when ufw is unavailable but a firewall change was requested.""" + pass + + +def normalize_path(path: str | None) -> str: + """Normalize optional service path. Empty -> "". Ensure leading slash.""" + if not path: + return "" + p = str(path).strip() + if not p: + return "" + if not p.startswith("/"): + p = "/" + p + return p + + +def dbg(msg): + if not DEBUG_FLAG: + return + API_LOG.parent.mkdir(parents=True, exist_ok=True) + ts = datetime.datetime.utcnow().isoformat() + with API_LOG.open("a") as f: + f.write(f"[{ts}] {msg}\n") + + +def set_ssh_password_auth(allow: bool): + """ + Enable/disable SSH password authentication without requiring the current password. + Used during factory reset to restore a predictable state. + """ + cfg = pathlib.Path("/etc/ssh/sshd_config") + text = cfg.read_text() if cfg.exists() else "" + + def set_opt(key, value): + nonlocal text + pattern = f"{key} " + lines = text.splitlines() + replaced = False + for idx, line in enumerate(lines): + if line.strip().startswith(pattern): + lines[idx] = f"{key} {value}" + replaced = True + break + if not replaced: + lines.append(f"{key} {value}") + text_new = "\n".join(lines) + "\n" + return text_new + + text = set_opt("PasswordAuthentication", "yes" if allow else "no") + text = set_opt("KbdInteractiveAuthentication", "no") + text = set_opt("ChallengeResponseAuthentication", "no") + text = set_opt("PubkeyAuthentication", "yes") + text = set_opt("PermitRootLogin", "yes" if allow else "prohibit-password") + cfg.write_text(text) + subprocess.run(["systemctl", "restart", "ssh"], check=False) + return True, f"SSH password auth {'enabled' if allow else 'disabled'}" + + +def load_services(): + if SERVICE_JSON.exists(): + try: + data = json.loads(SERVICE_JSON.read_text()) + # Normalize entries: ensure url built from port if missing + host = socket.gethostname() + for svc in data: + svc_path = normalize_path(svc.get("path")) + if svc_path: + svc["path"] = svc_path + if svc.get("port"): + scheme = svc.get("scheme") + if not scheme: + scheme = "https" if int(svc["port"]) in HTTPS_PORTS else "http" + svc["scheme"] = scheme + svc["url"] = f"{scheme}://{host}:{svc['port']}{svc_path}" + return data + except Exception: + dbg("Failed to read services.json") + return [] + return [] + + +def save_services(services): + SERVICE_JSON.parent.mkdir(parents=True, exist_ok=True) + SERVICE_JSON.write_text(json.dumps(services, indent=2)) + + +def auto_updates_enabled(): + if not APT_AUTO_CFG.exists(): + return False + text = APT_AUTO_CFG.read_text() + return 'APT::Periodic::Unattended-Upgrade "1";' in text + + +def set_auto_updates(enable: bool): + """ + Toggle unattended upgrades in a way that matches systemd state, not just the + apt config file. Assumes unattended-upgrades is already installed. + """ + units_maskable = [ + "apt-daily.service", + "apt-daily-upgrade.service", + "apt-daily.timer", + "apt-daily-upgrade.timer", + "unattended-upgrades.service", + ] + timers = ["apt-daily.timer", "apt-daily-upgrade.timer"] + service = "unattended-upgrades.service" + + APT_AUTO_CFG.parent.mkdir(parents=True, exist_ok=True) + if enable: + APT_AUTO_CFG.write_text( + 'APT::Periodic::Update-Package-Lists "1";\n' + 'APT::Periodic::Unattended-Upgrade "1";\n' + ) + for unit in units_maskable: + subprocess.run(["systemctl", "unmask", unit], check=False) + # Enable timers and the service; start them so state matches immediately + for unit in timers + [service]: + subprocess.run(["systemctl", "enable", unit], check=False) + for unit in timers: + subprocess.run(["systemctl", "start", unit], check=False) + subprocess.run(["systemctl", "start", service], check=False) + else: + APT_AUTO_CFG.write_text( + 'APT::Periodic::Update-Package-Lists "0";\n' + 'APT::Periodic::Unattended-Upgrade "0";\n' + ) + # Stop/disable and mask to mirror DietPi defaults + for unit in timers + [service]: + subprocess.run(["systemctl", "stop", unit], check=False) + subprocess.run(["systemctl", "disable", unit], check=False) + for unit in units_maskable: + subprocess.run(["systemctl", "mask", unit], check=False) + + +def _systemctl_is(unit: str, verb: str) -> bool: + try: + out = subprocess.check_output(["systemctl", verb, unit], text=True).strip() + return out == "enabled" if verb == "is-enabled" else out == "active" + except Exception: + return False + + +def auto_updates_state(): + config_on = auto_updates_enabled() + service = "unattended-upgrades.service" + timers = ["apt-daily.timer", "apt-daily-upgrade.timer"] + state = { + "config_enabled": config_on, + "service_enabled": _systemctl_is(service, "is-enabled"), + "service_active": _systemctl_is(service, "is-active"), + "timers_enabled": {}, + "timers_active": {}, + } + for t in timers: + state["timers_enabled"][t] = _systemctl_is(t, "is-enabled") + state["timers_active"][t] = _systemctl_is(t, "is-active") + # Consider overall enabled only if config is on and both timers & service are enabled + state["enabled"] = ( + config_on + and state["service_enabled"] + and all(state["timers_enabled"].values()) + ) + return state + + +def reboot_required(): + return pathlib.Path("/run/reboot-required").exists() + + +def _parse_directive(text: str, key: str, default=None, as_bool=False, as_int=False): + text = _strip_comments(text) + pattern = rf'{re.escape(key)}\s+"?([^";\n]+)"?;' + m = re.search(pattern, text) + if not m: + return default + val = m.group(1).strip() + if as_bool: + return val.lower() in ("1", "true", "yes", "on") + if as_int: + try: + return int(val) + except ValueError: + return default + return val + + +def _parse_origins_patterns(text: str): + text = _strip_comments(text) + m = re.search(r"Unattended-Upgrade::Origins-Pattern\s*{([^}]*)}", text, re.S) + patterns = [] + if not m: + return patterns + body = m.group(1) + for line in body.splitlines(): + ln = line.strip().strip('";') + if ln: + patterns.append(ln) + return patterns + + +def _read_timer_time(timer: str): + try: + out = subprocess.check_output( + ["systemctl", "show", "--property=TimersCalendar", timer], text=True + ) + # Example: TimersCalendar={ OnCalendar=*-*-* 03:10:00 ; next_elapse=... } + m = re.search(r"OnCalendar=[^0-9]*([0-9]{1,2}):([0-9]{2})", out) + if m: + return f"{int(m.group(1)):02d}:{m.group(2)}" + except Exception: + pass + return None + + +def _strip_comments(text: str): + """Remove // and # line comments for safer parsing.""" + lines = [] + for ln in text.splitlines(): + l = ln.strip() + if l.startswith("//") or l.startswith("#"): + continue + lines.append(ln) + return "\n".join(lines) + + +def _validate_time(val: str, default: str): + if not val: + return default + m = re.match(r"^(\d{1,2}):(\d{2})$", val.strip()) + if not m: + return default + h, mi = int(m.group(1)), int(m.group(2)) + if 0 <= h < 24 and 0 <= mi < 60: + return f"{h:02d}:{mi:02d}" + return default + + +def read_updates_config(state=None): + """ + Return a normalized unattended-upgrades configuration snapshot. + Values are sourced from the Pi-Kit override file when present, else the base file. + """ + text = "" + for path in (APT_UA_OVERRIDE, APT_UA_BASE): + if path.exists(): + try: + text += path.read_text() + "\n" + except Exception: + pass + scope_hint = None + m_scope = re.search(r"PIKIT_SCOPE:\s*(\w+)", text) + if m_scope: + scope_hint = m_scope.group(1).lower() + cleaned = _strip_comments(text) + patterns = _parse_origins_patterns(cleaned) + scope = ( + scope_hint + or ("all" if any("label=Debian" in p and "-security" not in p for p in patterns) else "security") + ) + cleanup = _parse_directive(text, "Unattended-Upgrade::Remove-Unused-Dependencies", False, as_bool=True) + auto_reboot = _parse_directive(text, "Unattended-Upgrade::Automatic-Reboot", False, as_bool=True) + reboot_time = _validate_time(_parse_directive(text, "Unattended-Upgrade::Automatic-Reboot-Time", DEFAULT_UPGRADE_TIME), DEFAULT_UPGRADE_TIME) + reboot_with_users = _parse_directive(text, "Unattended-Upgrade::Automatic-Reboot-WithUsers", False, as_bool=True) + bandwidth = _parse_directive(text, "Acquire::http::Dl-Limit", None, as_int=True) + + update_time = _read_timer_time("apt-daily.timer") or DEFAULT_UPDATE_TIME + upgrade_time = _read_timer_time("apt-daily-upgrade.timer") or DEFAULT_UPGRADE_TIME + + state = state or auto_updates_state() + return { + "enabled": bool(state.get("enabled", False)), + "scope": scope, + "cleanup": bool(cleanup), + "bandwidth_limit_kbps": bandwidth, + "auto_reboot": bool(auto_reboot), + "reboot_time": reboot_time, + "reboot_with_users": bool(reboot_with_users), + "update_time": update_time, + "upgrade_time": upgrade_time, + "state": state, + } + + +def _write_timer_override(timer: str, time_str: str): + time_norm = _validate_time(time_str, DEFAULT_UPDATE_TIME) + override_dir = pathlib.Path(f"/etc/systemd/system/{timer}.d") + override_dir.mkdir(parents=True, exist_ok=True) + override_file = override_dir / "pikit.conf" + override_file.write_text( + "[Timer]\n" + f"OnCalendar=*-*-* {time_norm}\n" + "Persistent=true\n" + "RandomizedDelaySec=30min\n" + ) + subprocess.run(["systemctl", "daemon-reload"], check=False) + subprocess.run(["systemctl", "restart", timer], check=False) + + +def set_updates_config(opts: dict): + """ + Apply unattended-upgrades configuration from dashboard inputs. + """ + enable = bool(opts.get("enable", True)) + scope = opts.get("scope") or "all" + patterns = ALL_PATTERNS if scope == "all" else SECURITY_PATTERNS + cleanup = bool(opts.get("cleanup", False)) + bandwidth = opts.get("bandwidth_limit_kbps") + auto_reboot = bool(opts.get("auto_reboot", False)) + reboot_time = _validate_time(opts.get("reboot_time"), DEFAULT_UPGRADE_TIME) + reboot_with_users = bool(opts.get("reboot_with_users", False)) + update_time = _validate_time(opts.get("update_time"), DEFAULT_UPDATE_TIME) + upgrade_time = _validate_time(opts.get("upgrade_time") or opts.get("update_time"), DEFAULT_UPGRADE_TIME) + + APT_AUTO_CFG.parent.mkdir(parents=True, exist_ok=True) + set_auto_updates(enable) + + lines = [ + "// Managed by Pi-Kit dashboard", + f"// PIKIT_SCOPE: {scope}", + "Unattended-Upgrade::Origins-Pattern {", + ] + for p in patterns: + lines.append(f' "{p}";') + lines.append("};") + lines.append(f'Unattended-Upgrade::Remove-Unused-Dependencies {"true" if cleanup else "false"};') + lines.append(f'Unattended-Upgrade::Automatic-Reboot {"true" if auto_reboot else "false"};') + lines.append(f'Unattended-Upgrade::Automatic-Reboot-Time "{reboot_time}";') + lines.append( + f'Unattended-Upgrade::Automatic-Reboot-WithUsers {"true" if reboot_with_users else "false"};' + ) + if bandwidth is not None: + lines.append(f'Acquire::http::Dl-Limit "{int(bandwidth)}";') + APT_UA_OVERRIDE.parent.mkdir(parents=True, exist_ok=True) + APT_UA_OVERRIDE.write_text("\n".join(lines) + "\n") + + # Timer overrides for when upgrades run + _write_timer_override("apt-daily.timer", update_time) + _write_timer_override("apt-daily-upgrade.timer", upgrade_time) + return read_updates_config() + + +def detect_https(host, port): + try: + import ssl + ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) + ctx.check_hostname = False + ctx.verify_mode = ssl.CERT_NONE + with socket.create_connection((host, int(port)), timeout=1.5) as sock: + with ctx.wrap_socket(sock, server_hostname=host): + return True + except Exception: + return False + + +def factory_reset(): + # Restore services config + if pathlib.Path("/boot/custom-files/pikit-services.json").exists(): + shutil.copy("/boot/custom-files/pikit-services.json", SERVICE_JSON) + else: + SERVICE_JSON.write_text(json.dumps([ + {"name": "Pi-Kit Dashboard", "port": 80}, + {"name": "DietPi Dashboard", "port": 5252}, + ], indent=2)) + # Reset firewall + reset_firewall() + # Reset SSH auth to password and set defaults + set_ssh_password_auth(True) + for user in ("root", "dietpi"): + try: + subprocess.run(["chpasswd"], input=f"{user}:pikit".encode(), check=True) + except Exception: + pass + # Ensure dietpi exists + if not pathlib.Path("/home/dietpi").exists(): + subprocess.run(["useradd", "-m", "-s", "/bin/bash", "dietpi"], check=False) + subprocess.run(["chpasswd"], input=b"dietpi:pikit", check=False) + # Log and reboot + pathlib.Path("/var/log/pikit-reset.log").write_text("Factory reset triggered\n") + subprocess.Popen(["/bin/sh", "-c", "sleep 2 && systemctl reboot >/dev/null 2>&1"], close_fds=True) + + +def port_online(host, port): + try: + with socket.create_connection((host, int(port)), timeout=1.5): + return True + except Exception: + return False + + +def ufw_status_allows(port: int) -> bool: + try: + out = subprocess.check_output(["ufw", "status"], text=True) + return f"{port}" in out and "ALLOW" in out + except Exception: + return False + + +def allow_port_lan(port: int): + """Open a port to RFC1918 subnets; raise if ufw is missing so callers can surface the error.""" + if not shutil.which("ufw"): + raise FirewallToolMissing("Cannot update firewall: ufw is not installed on this system.") + for subnet in ("10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "100.64.0.0/10", "169.254.0.0/16"): + subprocess.run(["ufw", "allow", "from", subnet, "to", "any", "port", str(port)], check=False) + + +def remove_port_lan(port: int): + """Close a LAN rule for a port; raise if ufw is missing so callers can surface the error.""" + if not shutil.which("ufw"): + raise FirewallToolMissing("Cannot update firewall: ufw is not installed on this system.") + for subnet in ("10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "100.64.0.0/10", "169.254.0.0/16"): + subprocess.run(["ufw", "delete", "allow", "from", subnet, "to", "any", "port", str(port)], check=False) + + +def reset_firewall(): + subprocess.run(["ufw", "--force", "reset"], check=False) + subprocess.run(["ufw", "default", "deny", "incoming"], check=False) + subprocess.run(["ufw", "default", "deny", "outgoing"], check=False) + # Outbound essentials + LAN + for port in ("53", "80", "443", "123", "67", "68"): + subprocess.run(["ufw", "allow", "out", port], check=False) + subprocess.run(["ufw", "allow", "out", "on", "lo"], check=False) + for subnet in ("10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "100.64.0.0/10", "169.254.0.0/16"): + subprocess.run(["ufw", "allow", "out", "to", subnet], check=False) + for subnet in ("10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "100.64.0.0/10", "169.254.0.0/16"): + for port in ("22", "80", "443", "5252", "5253"): + subprocess.run(["ufw", "allow", "from", subnet, "to", "any", "port", port], check=False) + subprocess.run(["ufw", "--force", "enable"], check=False) + + +class Handler(BaseHTTPRequestHandler): + """Minimal JSON API for the dashboard (status, services, updates, reset).""" + def _send(self, code, data): + body = json.dumps(data).encode() + self.send_response(code) + self.send_header("Content-Type", "application/json") + self.send_header("Content-Length", str(len(body))) + self.end_headers() + self.wfile.write(body) + + def log_message(self, fmt, *args): + return + + def do_GET(self): + if self.path.startswith("/api/status"): + uptime = float(open("/proc/uptime").read().split()[0]) + load1, load5, load15 = os.getloadavg() + meminfo = {} + for ln in open("/proc/meminfo"): + k, v = ln.split(":", 1) + meminfo[k] = int(v.strip().split()[0]) + total = meminfo.get("MemTotal", 0)//1024 + free = meminfo.get("MemAvailable", 0)//1024 + disk = shutil.disk_usage("/") + # CPU temperature (best-effort) + cpu_temp = None + for path in ("/sys/class/thermal/thermal_zone0/temp",): + if pathlib.Path(path).exists(): + try: + cpu_temp = float(pathlib.Path(path).read_text().strip())/1000.0 + break + except Exception: + pass + # LAN IP (first non-loopback) + ip_addr = None + try: + out = subprocess.check_output(["hostname", "-I"], text=True).strip() + ip_addr = out.split()[0] if out else None + except Exception: + pass + # OS version + os_ver = "DietPi" + try: + for line in pathlib.Path("/etc/os-release").read_text().splitlines(): + if line.startswith("PRETTY_NAME="): + os_ver = line.split("=",1)[1].strip().strip('"') + break + except Exception: + pass + updates_state = auto_updates_state() + updates_config = read_updates_config(updates_state) + services = [] + for svc in load_services(): + svc = dict(svc) + port = svc.get("port") + if port: + svc["online"] = port_online("127.0.0.1", port) + svc["firewall_open"] = ufw_status_allows(port) + services.append(svc) + data = { + "hostname": socket.gethostname(), + "uptime_seconds": uptime, + "load": [load1, load5, load15], + "memory_mb": {"total": total, "free": free}, + "disk_mb": {"total": disk.total//1024//1024, "free": disk.free//1024//1024}, + "cpu_temp_c": cpu_temp, + "lan_ip": ip_addr, + "os_version": os_ver, + "auto_updates_enabled": updates_state.get("enabled", False), + "auto_updates": updates_state, + "updates_config": updates_config, + "reboot_required": reboot_required(), + "ready": READY_FILE.exists(), + "services": services + } + self._send(200, data) + elif self.path.startswith("/api/services"): + services = [] + for svc in load_services(): + svc = dict(svc) + port = svc.get("port") + if port: + svc["online"] = port_online("127.0.0.1", port) + svc["firewall_open"] = ufw_status_allows(port) + services.append(svc) + self._send(200, {"services": services}) + elif self.path.startswith("/api/updates/auto"): + state = auto_updates_state() + self._send(200, {"enabled": state.get("enabled", False), "details": state}) + elif self.path.startswith("/api/updates/config"): + cfg = read_updates_config() + self._send(200, cfg) + else: + self._send(404, {"error": "not found"}) + + def do_POST(self): + length = int(self.headers.get("Content-Length", 0)) + payload = json.loads(self.rfile.read(length) or "{}") + if self.path.startswith("/api/reset"): + if payload.get("confirm") == "YES": + self._send(200, {"message": "Resetting and rebooting..."}) + dbg("Factory reset triggered via API") + factory_reset() + else: + self._send(400, {"error": "type YES to confirm"}) + return + if self.path.startswith("/api/updates/auto"): + enable = bool(payload.get("enable")) + set_auto_updates(enable) + dbg(f"Auto updates set to {enable}") + state = auto_updates_state() + return self._send(200, {"enabled": state.get("enabled", False), "details": state}) + if self.path.startswith("/api/updates/config"): + try: + cfg = set_updates_config(payload or {}) + dbg(f"Update settings applied: {cfg}") + return self._send(200, cfg) + except Exception as e: + dbg(f"Failed to apply updates config: {e}") + return self._send(500, {"error": str(e)}) + if self.path.startswith("/api/services/add"): + name = payload.get("name") + port = int(payload.get("port", 0)) + if not name or not port: + return self._send(400, {"error": "name and port required"}) + if port in CORE_PORTS and name != CORE_NAME: + return self._send(400, {"error": f"Port {port} is reserved for {CORE_NAME}"}) + services = load_services() + if any(s.get("port") == port for s in services): + return self._send(400, {"error": "port already exists"}) + host = socket.gethostname() + scheme = payload.get("scheme") + if scheme not in ("http", "https"): + scheme = "https" if detect_https(host, port) else "http" + notice = (payload.get("notice") or "").strip() + notice_link = (payload.get("notice_link") or "").strip() + self_signed = bool(payload.get("self_signed")) + path = normalize_path(payload.get("path")) + svc = {"name": name, "port": port, "scheme": scheme, "url": f"{scheme}://{host}:{port}{path}"} + if notice: + svc["notice"] = notice + if notice_link: + svc["notice_link"] = notice_link + if self_signed: + svc["self_signed"] = True + if path: + svc["path"] = path + services.append(svc) + save_services(services) + try: + allow_port_lan(port) + except FirewallToolMissing as e: + return self._send(500, {"error": str(e)}) + return self._send(200, {"services": services, "message": f"Added {name} on port {port} and opened LAN firewall"}) + if self.path.startswith("/api/services/remove"): + port = int(payload.get("port", 0)) + if not port: + return self._send(400, {"error": "port required"}) + if port in CORE_PORTS: + return self._send(400, {"error": f"Cannot remove core service on port {port}"}) + services = [s for s in load_services() if s.get("port") != port] + try: + remove_port_lan(port) + except FirewallToolMissing as e: + return self._send(500, {"error": str(e)}) + save_services(services) + return self._send(200, {"services": services, "message": f"Removed service on port {port}"}) + if self.path.startswith("/api/services/update"): + port = int(payload.get("port", 0)) + new_name = payload.get("name") + new_port = payload.get("new_port") + new_scheme = payload.get("scheme") + notice = payload.get("notice") + notice_link = payload.get("notice_link") + new_path = payload.get("path") + self_signed = payload.get("self_signed") + services = load_services() + updated = False + for svc in services: + if svc.get("port") == port: + if new_name: + # Prevent renaming core service to something else if still on core port + if port in CORE_PORTS and new_name != CORE_NAME: + return self._send(400, {"error": f"Core service on port {port} must stay named {CORE_NAME}"}) + svc["name"] = new_name + target_port = svc.get("port") + port_changed = False + if new_port is not None: + new_port_int = int(new_port) + if new_port_int != port: + if new_port_int in CORE_PORTS and svc.get("name") != CORE_NAME: + return self._send(400, {"error": f"Port {new_port_int} is reserved for {CORE_NAME}"}) + if any(s.get("port") == new_port_int and s is not svc for s in services): + return self._send(400, {"error": "new port already in use"}) + try: + remove_port_lan(port) + allow_port_lan(new_port_int) + except FirewallToolMissing as e: + return self._send(500, {"error": str(e)}) + svc["port"] = new_port_int + target_port = new_port_int + port_changed = True + host = socket.gethostname() + if new_path is not None: + path = normalize_path(new_path) + if path: + svc["path"] = path + elif "path" in svc: + svc.pop("path", None) + else: + path = normalize_path(svc.get("path")) + if path: + svc["path"] = path + if new_scheme: + scheme = new_scheme if new_scheme in ("http", "https") else None + else: + scheme = svc.get("scheme") + if not scheme or scheme == "auto": + scheme = "https" if detect_https(host, target_port) else "http" + svc["scheme"] = scheme + svc["url"] = f"{scheme}://{host}:{target_port}{path}" + if notice is not None: + text = (notice or "").strip() + if text: + svc["notice"] = text + elif "notice" in svc: + svc.pop("notice", None) + if notice_link is not None: + link = (notice_link or "").strip() + if link: + svc["notice_link"] = link + elif "notice_link" in svc: + svc.pop("notice_link", None) + if self_signed is not None: + if bool(self_signed): + svc["self_signed"] = True + else: + svc.pop("self_signed", None) + updated = True + break + if not updated: + return self._send(404, {"error": "service not found"}) + save_services(services) + return self._send(200, {"services": services, "message": "Service updated"}) + self._send(404, {"error": "not found"}) + + +def main(): + load_services() + server = HTTPServer((HOST, PORT), Handler) + server.serve_forever() + + +if __name__ == "__main__": + main() diff --git a/pikit-prep-spec.md b/pikit-prep-spec.md new file mode 100644 index 0000000..96b6643 --- /dev/null +++ b/pikit-prep-spec.md @@ -0,0 +1,391 @@ +# Pi-Kit DietPi Image Prep Spec + +This file defines how to design a **prep script** for a DietPi-based Pi-Kit image. + +The script’s job: +Prepare a running Pi-Kit system to be cloned as a “golden image” **without** removing any intentional software, configs, hostname, or passwords. + +--- + +## 0. Context & Goals + +**Starting point** + +- OS: DietPi (Debian-based), already installed. +- Extra software: web stack, Pi-Kit dashboard, DNS/ad-blocker, DBs, monitoring, etc. +- System has been used for testing (logs, histories, test data, junk). + +**Goal** + +- Prepare system for cloning as a product image. +- **KEEP**: + - All intentionally installed packages/software. + - All custom configs (web, apps, DietPi configs, firewall). + - Current hostname. + - Existing passwords (system + services) as shipped defaults. +- **RESET/CLEAR**: + - Host-unique identity data (machine-id, SSH host keys, etc.). + - Logs, histories, caches. + - Test/personal accounts and data. + +--- + +## 1. Discovery Phase (MUST HAPPEN BEFORE SCRIPT DESIGN) + +Before writing any code, inspect the system and external docs. + +The AI MUST: + +1. **Detect installed components** + - Determine which key packages/services are present, e.g.: + - Web server (nginx, lighttpd, apache2, etc.). + - DNS/ad-blocker (Pi-hole or similar). + - DB engines (MariaDB, PostgreSQL, SQLite usage). + - Monitoring/metrics (Netdata, Uptime Kuma, etc.). + - Use this to decide which cleanup sections apply. + +2. **Verify paths/layouts** + - For each service or category: + - Confirm relevant paths/directories actually exist. + - Do not assume standard paths without checking. + - Example: Only treat `/var/log/nginx` as Nginx logs if: + - Nginx is installed, AND + - That directory exists. + +3. **Consult upstream docs (online)** + - Check current: + - DietPi docs and/or DietPi GitHub. + - Docs for major services (e.g. Pi-hole, Nginx, MariaDB, etc.). + - Use docs to confirm: + - Data vs config locations. + - Safe cache/log cleanup methods. + - Prefer documented behavior over guesses. + +4. **Classify actions** + - For each potential cleanup: + - Mark as **safe** if clearly understood and documented. + - Mark as **uncertain** if layout deviates or docs are unclear. + - Plan to: + - Perform safe actions. + - Skip uncertain actions and surface them for manual review. + +5. **Fail safe** + - If something doesn’t match expectations: + - Do NOT plan a destructive operation on it. + - Flag it as “needs manual review” in the confirmation phase. + +--- + +## 2. Identity & Host-Specific Secrets + +**DO NOT CHANGE:** + +- Hostname (whatever it currently is). +- Any existing passwords (system or service-level) that are part of the appliance defaults. + +**RESET/CLEAR:** + +1. **Machine identity** + - Clear: + - `/etc/machine-id` + - `/var/lib/dbus/machine-id` (if present) + - Rely on OS to recreate them on next boot. + +2. **Random seed** + - Clear persisted random seed (e.g. `/var/lib/systemd/random-seed`) so each clone gets unique entropy. + +3. **SSH host keys** + - Remove all SSH **host key** files (server keys only). + - Leave user SSH keypairs unless explicitly identified as dev/test and safe to remove. + +4. **SSH known_hosts** + - Clear `known_hosts` for: + - `root` + - `dietpi` (or primary DietPi user) + - Any other persistent users + +5. **VPN keys (conditional)** + - If keys are meant to be unique per device: + - Remove WireGuard/OpenVPN private keys and per-device configs embedding them. + - If the design requires fixed server keys: + - KEEP server keys. + - REMOVE test/client keys/profiles that are tied to dev use. + +6. **TLS certificates (conditional)** + - REMOVE: + - Let’s Encrypt/ACME certs tied to personal domains. + - Per-device self-signed certs that should regenerate. + - KEEP: + - Shared CAs/certs only if explicitly part of product design. + +--- + +## 3. Users & Personal Traces + +1. **Accounts** + - KEEP: + - Accounts that are part of the product. + - REMOVE: + - Test-only accounts (users created for dev/debug). + +2. **Shell histories** + - Clear shell histories for all remaining users: + - `root`, `dietpi`, others that stay. + +3. **Home directories** + - For users that remain: + - KEEP: + - Intentional config/dotfiles (shell rc, app config, etc.). + - REMOVE: + - Downloads, random files, scratch notes. + - Editor backup/swap files, stray temp files. + - Debug dumps, one-off scripts not part of product. + - For users that are removed: + - Delete their home dirs entirely. + +4. **SSH client keys** + - REMOVE: + - Clearly personal/test keys (e.g. with your email in comments). + - KEEP: + - Only keys explicitly required by product design. + +--- + +## 4. Logs & Telemetry + +1. **System logs** + - Clear: + - Systemd journal (persistent logs). + - `/var/log` files + rotated/compressed variants, where safe. + +2. **Service logs** + - For installed services (web servers, DNS/ad-blockers, DBs, etc.): + - Clear their log files and rotated versions. + +3. **Monitoring/metrics** + - For tools like Netdata, Uptime Kuma, etc.: + - KEEP: + - Config, target definitions. + - CLEAR: + - Historical metric/alert data (TSDBs, history files, etc.). + +--- + +## 5. Package Manager & Caches + +1. **APT** + - Clear: + - Downloaded `.deb` archives. + - Safe APT caches (as per documentation). + +2. **Other caches** + - Under `/var/cache` and `~/.cache`: + - CLEAR: + - Caches known to be safe and auto-regenerated. + - DO NOT CLEAR: + - Caches that are required for correct functioning or very expensive to rebuild, unless docs confirm safety. + +3. **Temp directories** + - Empty: + - `/tmp` + - `/var/tmp` + +4. **Crash dumps** + - Remove crash dumps and core files (e.g. `/var/crash` and similar locations). + +--- + +## 6. Service Data vs Config (Per-App Logic) + +General rule: + +> Keep configuration & structure. Remove dev/test data, history, and personal content. + +The AI must apply this using detected services + docs. + +### 6.1 Web Servers (nginx / lighttpd / apache2) + +- KEEP: + - Main config and site configs that define Pi-Kit behavior. + - App code in `/var/www/...` (or equivalent Pi-Kit web root). +- CLEAR: + - Access/error logs. + - Non-critical caches if docs confirm they’re safe to recreate. + +### 6.2 DNS / Ad-blockers (Pi-hole or similar) + +- KEEP: + - Upstream DNS settings. + - Blocklists / adlists / local DNS overrides. + - DHCP config if it is part of the product’s behavior. +- CLEAR: + - Query history / statistics DB. + - Log files. +- DO NOT: + - Change the current admin password (it is the product default). + +### 6.3 Databases (MariaDB, PostgreSQL, SQLite, etc.) + +- KEEP: + - DB schema. + - Seed/default data required for every user. +- REMOVE/RESET: + - Dev/test user accounts (with your email, etc.). + - Test content/records not meant for production image. + - Access tokens, session records, API keys tied to dev use. +- For SQLite-based apps: + - Decide per app (based on docs) whether to: + - Ship a pre-seeded “clean” DB, OR + - Let it auto-create DB on first run. + +### 6.4 Other services (Nextcloud, Jellyfin, Gotify, Uptime Kuma, etc.) + +For each detected service: + +- KEEP: + - Global config, ports, base URLs, application settings needed for Pi-Kit. +- CLEAR: + - Personal/dev user accounts. + - Your media/content (unless intentionally shipping sample content). + - Notification endpoints tied to your own email / Gotify / Telegram, unless explicitly desired. + +If docs or structure are unclear, mark cleanup as **uncertain** and surface in confirmation instead of guessing. + +--- + +## 7. Networking & Firewall + +**HARD CONSTRAINTS:** + +- Do NOT modify hostname. +- Do NOT weaken/remove the product firewall rules. + +1. **Firewall** + - Detect firewall system in use (iptables, nftables, UFW, etc.). + - KEEP: + - All persistent firewall configs that define Pi-Kit’s security behavior. + - DO NOT: + - Flush or reset firewall rules unless it’s clearly a dev-only configuration (and that’s confirmed). + +2. **Other networking state** + - Safe to CLEAR: + - DHCP lease files. + - DNS caches. + - DO NOT ALTER: + - Static IP/bridge/VLAN config that appears to be part of the intended appliance setup. + +--- + +## 8. DietPi-Specific State & First-Boot Behavior + +1. **DietPi automation/config** + - Identify DietPi automation configuration (e.g. `dietpi.txt`, related files). + - KEEP: + - The intended defaults (locale, timezone, etc.). + - Any automation that is part of Pi-Kit behavior. + - AVOID: + - Re-triggering DietPi’s generic first-boot flow unless that is intentionally desired. + +2. **DietPi logs/temp** + - CLEAR: + - DietPi-specific logs and temp files. + - KEEP: + - All DietPi configuration and automation files. + +3. **Pi-Kit first-boot logic** + - Ensure any Pi-Kit specific first-run services/hooks are: + - Enabled. + - Not dependent on data being cleaned (e.g., they must not require removed dev tokens/paths). + +--- + +## 9. Shell & Tooling State + +1. **Tool caches** + - For root and main user(s), CLEAR: + - Safe caches in `~/.cache` (pip, npm, cargo, etc.), if not needed at runtime. + - Avoid clearing caches that are critical or painful to rebuild unless doc-backed. + +2. **Build artifacts** + - REMOVE: + - Source trees, build directories, and other dev artifacts that are not part of final product. + +3. **Cronjobs / timers** + - Audit: + - User crontabs. + - System crontabs. + - Systemd timers. + - KEEP: + - Jobs that are part of Pi-Kit behavior. + - REMOVE: + - Jobs/timers clearly used for dev/testing only. + +--- + +## 10. Implementation Requirements (For the Future Script) + +When generating the actual script, the AI MUST: + +1. **Error handling** + - Check exit statuses where relevant. + - Handle missing paths/directories gracefully: + - If a path doesn’t exist, skip and log; do not fail hard. + - Avoid wide-destructive operations without validation: + - No “blind” deletions on unverified globs. + +2. **Idempotency** + - Script can run multiple times without progressively breaking the system. + - After repeated runs, image should remain valid and “clean”. + +3. **Conservative behavior** + - If uncertain about an operation: + - Do NOT perform it. + - Log a warning and mark for manual review. + +4. **Logging** + - For each major category (identity, logs, caches, per-service cleanup, etc.): + - Log what was targeted and outcome: + - `cleaned` + - `skipped (not installed/not found)` + - `skipped (uncertain; manual review)` + - Provide a summary at the end. + +--- + +## 11. Mandatory Pre-Script Confirmation Step + +**Before writing any script, the AI MUST:** + +1. **Present a system-specific plan** + - Based on discovery + docs, list: + - Exactly which paths, files, DBs, and data types it intends to: + - Remove + - Reset + - Leave untouched + - For each item or group: a short explanation of **why**. + +2. **Highlight conflicts / ambiguities** + - If any cleanup might: + - Affect passwords, + - Affect hostname, + - Affect firewall rules, + - Or contradict this spec in any way, + - The AI must: + - Call it out explicitly. + - Explain tradeoffs and propose a safe option. + +3. **Highlight extra opportunities** + - If the AI finds additional cleanup opportunities not explicitly listed here (e.g., new DietPi features, new log paths): + - Describe them clearly. + - Explain pros/cons of adding them. + - Ask whether to include them. + +4. **Wait for explicit approval** + - Do NOT generate the script until: + - The user (me) has reviewed the plan. + - Conflicts and extra opportunities have been discussed. + - Explicit approval (with any modifications) has been given. + +Only after that confirmation may the AI produce the actual prep script. + +--- diff --git a/pikit-prep.sh b/pikit-prep.sh new file mode 100644 index 0000000..be340e1 --- /dev/null +++ b/pikit-prep.sh @@ -0,0 +1,245 @@ +#!/bin/bash +# Pi-Kit DietPi image prep script +# Cleans host-unique data, logs, caches, and temp files per pikit-prep-spec. + +set -euo pipefail + +status() { printf '[%s] %s\n' "$1" "$2"; } + +clean_logs_dir() { + local dir="$1" pattern="${2:-*}" + if [ -d "$dir" ]; then + find "$dir" -type f -name "$pattern" -print -delete 2>/dev/null | sed 's/^/[CLEANED] /' || true + status CLEANED "logs $pattern in $dir" + else + status SKIP "$dir (missing)" + fi +} + +truncate_file() { + local file="$1" + if [ -e "$file" ]; then + :> "$file" && status CLEANED "truncated $file" || status FAIL "truncate $file" + else + status SKIP "$file (missing)" + fi +} + +clean_file() { + local path="$1" + if [ -e "$path" ]; then + rm -f "$path" && status CLEANED "$path" || status FAIL "$path" + else + status SKIP "$path (missing)" + fi +} + +clean_dir_files() { + local dir="$1" pattern="$2" + if [ -d "$dir" ]; then + find "$dir" -type f -name "$pattern" -print -delete 2>/dev/null | sed 's/^/[CLEANED] /' || true + status CLEANED "files $pattern in $dir" + else + status SKIP "$dir (missing)" + fi +} + +truncate_dir() { + local dir="$1" + if [ -d "$dir" ]; then + # keep systemd-private dirs intact while services run + find "$dir" -mindepth 1 -maxdepth 1 ! -path "$dir/systemd-private-*" -exec rm -rf {} + 2>/dev/null + status CLEANED "$dir" + else + status SKIP "$dir (missing)" + fi +} + +clean_backups() { + local dir="$1" + if [ -d "$dir" ]; then + find "$dir" -type f \( -name '*~' -o -name '*.bak*' -o -name '*.orig*' \) -print -delete 2>/dev/null | sed 's/^/[CLEANED] /' || true + status CLEANED "backup/editor files in $dir" + else + status SKIP "$dir (missing)" + fi +} + +# --- Identity --- +# Keep machine-id file present but empty so systemd regenerates cleanly on next boot. +truncate -s 0 /etc/machine-id && status CLEANED /etc/machine-id || status FAIL /etc/machine-id +mkdir -p /var/lib/dbus || true +rm -f /var/lib/dbus/machine-id +ln -s /etc/machine-id /var/lib/dbus/machine-id && status CLEANED "/var/lib/dbus/machine-id -> /etc/machine-id" || status FAIL "/var/lib/dbus/machine-id" +clean_file /var/lib/systemd/random-seed + +# --- SSH host keys --- +if ls /etc/ssh/ssh_host_* >/dev/null 2>&1; then + rm -f /etc/ssh/ssh_host_* && status CLEANED "SSH host keys" || status FAIL "SSH host keys" +else + status SKIP "SSH host keys (none)" +fi + +# --- SSH client traces --- +:> /root/.ssh/known_hosts 2>/dev/null && status CLEANED "/root/.ssh/known_hosts" || status SKIP "/root/.ssh/known_hosts" +:> /home/dietpi/.ssh/known_hosts 2>/dev/null && status CLEANED "/home/dietpi/.ssh/known_hosts" || status SKIP "/home/dietpi/.ssh/known_hosts" +:> /home/dietpi/.ssh/authorized_keys 2>/dev/null && status CLEANED "/home/dietpi/.ssh/authorized_keys" || status SKIP "/home/dietpi/.ssh/authorized_keys" +:> /root/.ssh/authorized_keys 2>/dev/null && status CLEANED "/root/.ssh/authorized_keys" || status SKIP "/root/.ssh/authorized_keys" + +# --- Shell history --- +:> /root/.bash_history 2>/dev/null && status CLEANED "/root/.bash_history" || status SKIP "/root/.bash_history" +:> /home/dietpi/.bash_history 2>/dev/null && status CLEANED "/home/dietpi/.bash_history" || status SKIP "/home/dietpi/.bash_history" + +# --- Ready flag --- +clean_file /var/run/pikit-ready + +# --- Backup/editor cruft --- +clean_backups /var/www/pikit-web +clean_backups /usr/local/bin + +# --- Logs --- +clean_dir_files /var/log "*" +clean_dir_files /var/log/nginx "*" +# systemd journal (persistent) if present +if [ -d /var/log/journal ]; then + find /var/log/journal -type f -print -delete 2>/dev/null | sed 's/^/[CLEANED] /' || true + status CLEANED "/var/log/journal" +else + status SKIP "/var/log/journal (missing)" +fi +# crash dumps +if [ -d /var/crash ]; then + find /var/crash -type f -print -delete 2>/dev/null | sed 's/^/[CLEANED] /' || true + status CLEANED "/var/crash" +else + status SKIP "/var/crash (missing)" +fi + +# Service-specific logs (best-effort, skip if absent) +if command -v pihole >/dev/null 2>&1; then + pihole -f >/dev/null 2>&1 && status CLEANED "pihole logs via pihole -f" || status FAIL "pihole -f" + clean_logs_dir /var/log/pihole '*' + clean_file /etc/pihole/pihole-FTL.db # resets long-term query history; leave gravity.db untouched +fi + +if [ -x /opt/AdGuardHome/AdGuardHome ]; then + clean_logs_dir /var/opt/AdGuardHome/data/logs '*' + clean_file /opt/AdGuardHome/data/querylog.db +fi + +if command -v ufw >/dev/null 2>&1; then + truncate_file /var/log/ufw.log +fi + +if command -v fail2ban-client >/dev/null 2>&1; then + truncate_file /var/log/fail2ban.log +fi + +clean_logs_dir /var/log/unbound '*' +clean_logs_dir /var/log/dnsmasq '*' +clean_logs_dir /var/log/powerdns '*' +clean_logs_dir /var/lib/technitium-dns/Logs '*' + +clean_logs_dir /var/log/jellyfin '*' +clean_logs_dir /var/lib/jellyfin/log '*' +clean_logs_dir /var/log/jellyseerr '*' +clean_logs_dir /opt/jellyseerr/logs '*' +clean_logs_dir /var/log/ustreamer '*' +clean_logs_dir /var/log/gitea '*' +clean_logs_dir /var/lib/gitea/log '*' +clean_logs_dir /var/log/fmd '*' +clean_logs_dir /var/log/uptime-kuma '*' +clean_logs_dir /opt/uptime-kuma/data/logs '*' +clean_logs_dir /var/log/romm '*' +clean_logs_dir /var/log/privatebin '*' +clean_logs_dir /var/log/crafty '*' +clean_logs_dir /var/log/rustdesk '*' +clean_logs_dir /var/log/memos '*' +clean_logs_dir /var/lib/memos/logs '*' +clean_logs_dir /var/log/traccar '*' +clean_logs_dir /var/log/webmin '*' +clean_logs_dir /var/log/homarr '*' +clean_logs_dir /var/log/termix '*' +clean_logs_dir /var/log/syncthing '*' +clean_logs_dir /var/log/netdata '*' +clean_logs_dir /var/lib/netdata/dbengine '*' +clean_logs_dir /var/log/AdGuardHome '*' + +# DB / metrics / web stacks +clean_logs_dir /var/log/mysql '*' +clean_logs_dir /var/log/mariadb '*' +clean_logs_dir /var/log/postgresql '*' +truncate_file /var/log/redis/redis-server.log +clean_logs_dir /var/log/influxdb '*' +clean_logs_dir /var/log/prometheus '*' +clean_logs_dir /var/log/grafana '*' +clean_logs_dir /var/log/loki '*' +clean_logs_dir /var/log/caddy '*' +clean_logs_dir /var/log/apache2 '*' +clean_logs_dir /var/log/lighttpd '*' +clean_logs_dir /var/log/samba '*' +clean_logs_dir /var/log/mosquitto '*' +clean_logs_dir /var/log/openvpn '*' +clean_logs_dir /var/log/wireguard '*' +clean_logs_dir /var/log/node-red '*' +truncate_file /var/log/nodered-install.log +clean_logs_dir /var/log/transmission-daemon '*' +clean_logs_dir /var/log/deluge '*' +clean_logs_dir /var/log/qbittorrent '*' +clean_logs_dir /var/log/paperless-ngx '*' +clean_logs_dir /var/log/photoprism '*' +clean_logs_dir /var/log/navidrome '*' +clean_logs_dir /var/log/minio '*' +clean_logs_dir /var/log/nzbget '*' +clean_logs_dir /var/log/sabnzbd '*' +clean_logs_dir /var/log/jackett '*' +clean_logs_dir /var/log/radarr '*' +clean_logs_dir /var/log/sonarr '*' +clean_logs_dir /var/log/lidarr '*' +clean_logs_dir /var/log/prowlarr '*' +clean_logs_dir /var/log/bazarr '*' +clean_logs_dir /var/log/overseerr '*' +clean_logs_dir /var/log/emby-server '*' + +# App-specific logs stored with app data (truncate, keep structure) +truncate_file /home/homeassistant/.homeassistant/home-assistant.log +clean_logs_dir /home/homeassistant/.homeassistant/logs '*' +truncate_file /var/www/nextcloud/data/nextcloud.log +truncate_file /var/www/owncloud/data/owncloud.log + +# Docker container JSON logs +if [ -d /var/lib/docker/containers ]; then + find /var/lib/docker/containers -type f -name '*-json.log' -print0 2>/dev/null | while IFS= read -r -d '' f; do + :> "$f" && status CLEANED "truncated $f" || status FAIL "truncate $f" + done +else + status SKIP "/var/lib/docker/containers (missing)" +fi +clean_file /var/log/wtmp.db +clean_dir_files /var/tmp/dietpi/logs "*" + +# --- Caches --- +apt-get clean >/dev/null 2>&1 && status CLEANED "apt cache" || status FAIL "apt cache" +rm -rf /var/lib/apt/lists/* /var/cache/apt/* 2>/dev/null && status CLEANED "apt lists/cache" || status FAIL "apt lists/cache" +find /var/cache/debconf -type f -print -delete 2>/dev/null | sed 's/^/[CLEANED] /' || true +status CLEANED "/var/cache/debconf files" + +# --- Temp directories --- +truncate_dir /tmp +truncate_dir /var/tmp + +# --- DHCP leases --- +clean_file /var/lib/dhcp/dhclient.eth0.leases + +# --- Nginx caches --- +if [ -d /var/lib/nginx ]; then + find /var/lib/nginx -mindepth 1 -maxdepth 1 -type d -exec rm -rf {} + 2>/dev/null + status CLEANED "/var/lib/nginx/*" +else + status SKIP "/var/lib/nginx" +fi + +status DONE "Prep complete" + +# Self-delete to avoid leaving the prep tool on the image. +rm -- "$0" diff --git a/pikit-services.json b/pikit-services.json new file mode 100644 index 0000000..792bd27 --- /dev/null +++ b/pikit-services.json @@ -0,0 +1,3 @@ +[ + { "name": "DietPi Dashboard", "port": 5252, "scheme": "http" } +] diff --git a/pikit-web/LICENSE b/pikit-web/LICENSE new file mode 100644 index 0000000..2104127 --- /dev/null +++ b/pikit-web/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 Pi-Kit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/pikit-web/LICENSE.txt b/pikit-web/LICENSE.txt new file mode 100644 index 0000000..2104127 --- /dev/null +++ b/pikit-web/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 Pi-Kit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/pikit-web/RESCUE.md b/pikit-web/RESCUE.md new file mode 100644 index 0000000..e913617 --- /dev/null +++ b/pikit-web/RESCUE.md @@ -0,0 +1,41 @@ +# Pi-Kit quick rescue (offline note) + +Keep this handy if the web dashboard is down. You’re already in via SSH, so here’s what to check next. + +## Where to find this note +- `/root/RESCUE.md` +- `/home/dietpi/RESCUE.md` +- `/var/www/pikit-web/RESCUE.md` + +## Fast service reset +```bash +sudo systemctl status nginx pikit-api # check +sudo systemctl restart nginx pikit-api # restart both +``` + +## Logs to inspect +```bash +sudo tail -n 100 /var/log/nginx/error.log +sudo tail -n 100 /var/log/pikit-api.log +``` + +## Check system health +```bash +df -h # disk space +free -h # memory +sudo systemctl status unattended-upgrades # auto-update service +sudo systemctl status apt-daily.timer apt-daily-upgrade.timer +``` + +## If services won’t start +```bash +sudo nginx -t # validate nginx config +sudo journalctl -u nginx -u pikit-api -n 100 # detailed service logs +``` + +## Licenses (for distribution) +- `/var/www/pikit-web/LICENSE` (MIT for Pi-Kit) +- `/var/www/pikit-web/THIRD-PARTY-LICENSES.md` +- `/var/www/pikit-web/assets/fonts/OFL.txt` + +Tip: after any change, `sudo systemctl restart nginx pikit-api` then re-check logs above. diff --git a/pikit-web/THIRD-PARTY-LICENSES.md b/pikit-web/THIRD-PARTY-LICENSES.md new file mode 100644 index 0000000..88a5393 --- /dev/null +++ b/pikit-web/THIRD-PARTY-LICENSES.md @@ -0,0 +1,21 @@ +# Third-Party Licenses + +## Fonts (SIL Open Font License 1.1) +- Red Hat Display +- Red Hat Text +- Space Grotesk +- Manrope +- DM Sans +- Sora +- Chivo +- Atkinson Hyperlegible +- IBM Plex Sans + +Full text: assets/fonts/OFL.txt + +## Frontend tooling +- Vite — MIT License +- @fontsource packages — MIT License + +## Test/dev +- Playwright — Apache License 2.0 diff --git a/pikit-web/THIRD-PARTY-LICENSES.txt b/pikit-web/THIRD-PARTY-LICENSES.txt new file mode 100644 index 0000000..88a5393 --- /dev/null +++ b/pikit-web/THIRD-PARTY-LICENSES.txt @@ -0,0 +1,21 @@ +# Third-Party Licenses + +## Fonts (SIL Open Font License 1.1) +- Red Hat Display +- Red Hat Text +- Space Grotesk +- Manrope +- DM Sans +- Sora +- Chivo +- Atkinson Hyperlegible +- IBM Plex Sans + +Full text: assets/fonts/OFL.txt + +## Frontend tooling +- Vite — MIT License +- @fontsource packages — MIT License + +## Test/dev +- Playwright — Apache License 2.0 diff --git a/pikit-web/assets/api.js b/pikit-web/assets/api.js new file mode 100644 index 0000000..5aa27cc --- /dev/null +++ b/pikit-web/assets/api.js @@ -0,0 +1,89 @@ +// Lightweight fetch wrapper for the Pi-Kit API endpoints exposed by the mock server +// and on-device Python API. All helpers below return parsed JSON or throw the +// JSON error body when the response is not 2xx. +const headers = { "Content-Type": "application/json" }; + +export async function api(path, opts = {}) { + // When running `npm run dev` without the backend, allow mock JSON from /data/ + const isMock = import.meta?.env?.MODE === 'development' && path.startsWith('/api'); + const target = isMock + ? path.replace('/api/status', '/data/mock-status.json').replace('/api/updates/config', '/data/mock-updates.json') + : path; + + const res = await fetch(target, { headers, ...opts }); + + // If mock files are missing, surface a clear error instead of JSON parse of HTML + const text = await res.text(); + let data; + try { + data = JSON.parse(text); + } catch (e) { + throw new Error(`Expected JSON from ${target}, got: ${text.slice(0, 120)}...`); + } + + if (!res.ok) throw data; + return data; +} + +export const getStatus = () => api("/api/status"); +export const toggleUpdates = (enable) => + api("/api/updates/auto", { + method: "POST", + body: JSON.stringify({ enable }), + }); +export const getUpdateConfig = () => api("/api/updates/config"); +export const saveUpdateConfig = (config) => + api("/api/updates/config", { + method: "POST", + body: JSON.stringify(config), + }); + +export const triggerReset = (confirm) => + api("/api/reset", { + method: "POST", + body: JSON.stringify({ confirm }), + }); + +export const addService = ({ + name, + port, + scheme, + path, + notice, + notice_link, + self_signed, +}) => + api("/api/services/add", { + method: "POST", + body: JSON.stringify({ name, port, scheme, path, notice, notice_link, self_signed }), + }); + +export const updateService = ({ + port, + name, + new_port, + scheme, + path, + notice, + notice_link, + self_signed, +}) => + api("/api/services/update", { + method: "POST", + body: JSON.stringify({ + port, + name, + new_port, + scheme, + path, + notice, + notice_link, + self_signed, + }), + }); + +export const removeService = ({ port }) => + api("/api/services/remove", { + method: "POST", + body: JSON.stringify({ port }), + }); diff --git a/pikit-web/assets/fonts/Atkinson-Bold.woff2 b/pikit-web/assets/fonts/Atkinson-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..16ab6eb8392dc9f099fa6b8c62888d4d4f2b0935 GIT binary patch literal 17616 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 Dhdl$< literal 0 HcmV?d00001 diff --git a/pikit-web/assets/fonts/Atkinson-Regular.woff2 b/pikit-web/assets/fonts/Atkinson-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..7f0ce7c2ddeb00345af92b74a1f9f3e63db0bbea GIT binary patch literal 17184 zcmV)AK*YayPew8T0RR9107D=E5dZ)H0F`V207AY10RR9100000000000000000000 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�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 D69wI* literal 0 HcmV?d00001 diff --git a/pikit-web/assets/fonts/Chivo-Regular.woff2 b/pikit-web/assets/fonts/Chivo-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..0a89ebcec7ff262d17d26f25c24c12990812328b GIT binary patch literal 13572 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 literal 0 HcmV?d00001 diff --git a/pikit-web/assets/fonts/DMSans-Bold.woff2 b/pikit-web/assets/fonts/DMSans-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8a1d2e0b0b510a8c1bbf06548edf4be6b9f84ed7 GIT binary patch literal 14312 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 literal 0 HcmV?d00001 diff --git a/pikit-web/assets/fonts/DMSans-Medium.woff2 b/pikit-web/assets/fonts/DMSans-Medium.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e0927e7648bb11cd70ad03ddc0e40e1ef3d11f2a GIT binary patch literal 14276 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 literal 0 HcmV?d00001 diff --git a/pikit-web/assets/fonts/DMSans-Regular.woff2 b/pikit-web/assets/fonts/DMSans-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..63f6aea5406cb60e52c2a9ae75dfa52ec8497855 GIT binary patch literal 14132 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 J{oe`8{{`+%4L|?@ literal 0 HcmV?d00001 diff --git a/pikit-web/assets/fonts/Manrope-Regular.woff2 b/pikit-web/assets/fonts/Manrope-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a5c0779d321f752cec87454860c2c73f89d5318d GIT binary patch literal 14136 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 ChFBE< literal 0 HcmV?d00001 diff --git a/pikit-web/assets/fonts/Manrope-SemiBold.woff2 b/pikit-web/assets/fonts/Manrope-SemiBold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..45cc90802d0c022d7553d4beb1fd2e2ded77c75a GIT binary patch literal 14152 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

Mx!xk!7!NSdO#8FApTeEbvYMv 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 S({L<01eyQ**QC$|0002x4Mgbx literal 0 HcmV?d00001 diff --git a/pikit-web/assets/fonts/OFL.txt b/pikit-web/assets/fonts/OFL.txt new file mode 100644 index 0000000..72a3f60 --- /dev/null +++ b/pikit-web/assets/fonts/OFL.txt @@ -0,0 +1,101 @@ +This package includes open fonts licensed under the SIL Open Font License, Version 1.1. + +Fonts covered (used by Pi-Kit): +- Red Hat Display +- Red Hat Text +- Space Grotesk +- Manrope +- DM Sans +- Sora +- Chivo +- Atkinson Hyperlegible +- IBM Plex Sans + +Full license text: + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/pikit-web/assets/fonts/PlexSans-Regular.woff2 b/pikit-web/assets/fonts/PlexSans-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..93bcd6430c8ac016e88aa259017395fef162b673 GIT binary patch literal 19156 zcmV)3K+C^(Pew8T0RR9107}#V5dZ)H0N5Y^07`QJ0RR9100000000000000000000 z0000QMjP{F9EJ=AU;u<{2tEmda}f{7AOs)=t9U1FU=RejQJa>uyJy62z~Wjj)ooBv$tSXCxg%#^`MT>b+G)Pm%>8BBR(N z%M#|g6H09}ZQRD$Y4@&28L-ZZ`SHhP;&sR0#g?^oW=_nU=|suXEA8-t!cF7%9PM9O zl#Txbnal2>uT7XkHgIq2%;{<3fd@!Td1Z8iFP>%cwzVJwDILi7?|{ERHYkUpBO*a4 zdc0^6*tm?5tem_&!S4^gGjrb;7E&Y}67!a_kr~VzjRffaJipC9_q|7kjrs^3781@e zKQnP*G*%-E6Lpd7$09;qm!DPZB2!(p9JN_hn?vIbfrN;Tt&Ob9J^nX9+iV+P3~PZP z2!aR-Evbam6@9=_DrsV@Qy1;lF7tnGjjM1K-|2Tq5#4s~BlrxWfMW?Tpy2=ei=EvC zi&iiVuVCU~p)`%3cads5{s{mG-t_+a0DXFO*8BPj2qY8|LI@#1gd{oQ44YGJUoPzn zX z@Xo^o-?1VY2(AGBr`Fot&?F>0kxfG9n@lGpQg=IXdtcG%oLJ_rd`n?a`RCTRUsiv2 zJ5YfR)WHPifW8hse{2Mx4mb<`gjr*ml^7oC?|siqux_kju-z1^lz`W3q1ZkTLCBIX zwBsxIe81`P+nwtP%fp$mT(1L=NQ_DBkHwGPsm;iCVV-pyC;~6Y+FVpuWgUa_D}NUO z0|d{%d!7Axm$1SLa~xmcUtM53*|AgR@?#m>gF<+O*~jBR)@Y2x8oY*w>c;Z{zVQSW zEXA8934%1R#W1x1Ytn)+3_k1k|1;IEv~Lv}AjYZ&;$SBGJ^gu(IK~ALKEyTFMLq;x zKcH1zD3m}oQOOs2D;4>F%k5^j`ixD#ZXZW3jC zrL#(<_2~fZsz2uNDLv-slaN}Y@k-WMhDF1B5oH~r);^HE`-EsOY7c$;gcM!&kljUh z;Rn%&AAb5_NEoE~o7mDa5}=TqC{(D%aa`l_?Vjh(_d_eEz4W#1jw5}C5P~tnct!}J z2_cO8{M#a%BDURx@vq2Pp()m2(tZ%8&b(XzcF2JO>pD!`fc|`EIo{k|%fCrV&IXKf zETSi}RQj_8SPwuk5I7JXJ!Gn>Fw?AsY|sj^YlEC|0rJUjcyL4o90JzLw+wO0X$cu% zym^GR5<+jcnumb$o|1-Ya7O^91BRpR)?%n@5z23X1^w<@t<@0rSMFcA2xxZ!M(IDa z|7$F3n}Lo1f(}(>29yqLy)!z~G9hhgOJkx5#T!SU7^4wFMM*}&86Oi7&>aH4`>4YU zkKA$11#OOb;eZz*pw)I8eYZLUG-BCt2t*0ZX^W*m89}H?LnqO@Ue%YMPIt6@fzSbIhf(7}T0*tfsX#>g>@f zgk7jpdTERQWA!+|F>Cr^rwGtsASYD+$@lBO{YI5~BSS`g#{Aq-eX~RIQSRhgE~G8T zav-hQo{d@U%{OIH=44tX#Fmknl5uHGGW7{)6)k)h7a%qCv;z4eqhl)Znqw}amo7%2 ze7}bvk5YWiwY0Ui=BgB6+j}{GlL=s|RWijh50YYQauv%k=~n2OV@|3*kl(n$BP2B8 z$01Vj!ibC#7T_-_&SPnFDNXWo^6U&e-~%4WFJ@8}9`HaO#M!&fd(Rn%tF(HnxhNPT z-p&#{5FjSRd^z)XS1beuupS2$j|iPJ6%I8$U(?JHY@X#pHCrpv27C0kO=-He0s>ZU zaCeX&Fkm_O+tr_X3>UWKBf!eDmM+Rhmyl%mKY;Xd>WF)g9z>gdWiB;2`(XcxBVCuk z*!Ezee79+#@M|WKF=vYLxt()1*Y}1`XDY*xtpFJHBwJMOZhCfJffTP8cwH{(g3TBC&>0L#SnG+b)7b#vPjw&Q!g-HC81J7}$ zZK&Z1onl0qLcCO52|X}lV!FIZ0>0mtkPH0bo`V-4DTv?YqSj!jVj+g%qFQ(*5=h?C zpwN3-k$q&EA_UE--Uhh)KcFQ47Qe6%3RCDzrEsTFH!#mZI4$;2~D)SlNGBM$X{ArD<;E1`)< zhXN>pjF2~M?y?I2&{>I;mL1=Y2Y6&#%v2uko?S}&$hF`8wQ|RmjB=;0(2rfx+G~)(f1a4o(uaRGr!svDKWk)OUII3fF#2 zqRSJX&8({%2aiuKc##57=#9WL(qR&HN95a)aK%2i&l$|ig8UGzVKaH=%Dvq|ND%txnL8!2ZI7B|xdI}6FE*o~e#uvA&>0O&&A(K{Q{q(inZ zUqg;9zm6z*9r7!fCqW+b!501i##Ts>;eG(DmWB=ZAgNx^9_pY;VvZ-ew+Dl0`ouTqR#W54_j0tTsxo$ z_P6KOY41+ZX2WkcOmmjtbTI9`4HBy`7a@swQt&)rzoTyMKVt-5^FvL-c$nw*c}E}T zq$W(sK~^q*{M})m=eev(Du6<9QUT`i#ZLw@dVX6r;`z<&3AU77W-|hx#=M8xhz9|T zJ$=D*5dO@V*>h=n&*y=T_K%S3ea787+*!^KRJID0Qf6cv)<*1-DP>2a7HK&9(Jcb@ zAjJ^Tn!)GPjfO-WMy-PV^Y0-oTiRPcrR0qXxh+HwhQ2;7c=vK7+5yQh&f2S4?3RpA zg~PErIo<_5pRj{jn@gaWM_%HJTjFkT3QeaXuV z2>Mf}-XU6{SK?{+X1l4D5y=%pc-T1hhmvc38ED#eZow0i&!&xMBe~HTaa2grNF>v+ zmL|f`u%;aG{s%0f7lu;-r}xus%-?HDX)(!!lo6(t2Sv}YqjpD0s@g1E1zbwULy-|dGOF- zIC~$MJ3~SFv=cu7Kh;1@W%iH)U?%)Hf@khg-hMzitNG^9(MYwXJnxYL{BZ^L*rKI7 zAIL4I3;-XE7vu)#hpB3~)l!SdtpB}!l=S~|353DNq5`D2p*(mjzJM)M;fh2G>RNnV zU7^^FvN?0=`W7@iwU)n+wd(7lBTQ~;Q|N&U%!VU8(#M>Zww6Fg$DDb6a~7Op!FQU# zDJD#7JRBvSlmM^-0Du)hSr_*7{CM}IL?e=`5;4<-*Z}iT?x=}PW_V-93+SZuGz2va zi&(~zoLy#N-dg9(Ligo zXA&1OS6OZp9#lR}kuG2enaV5`wuqxHr@_^f*W&3ah!rG!Q;MbqW|Yhc^_4BCc#3Kc z++3J>k!8L`aEl|&63bCFp=pjxE!JRJ3%C9mvcYCNTWlq;Yd4WEH=KP%?3;A*tpmyN zkB)Hlv(qGgL3H+;^GJVP%P_Tr0P-tx(TrWA5rBfEfe^mm_ssCD%(l8~v$c)P+P1lg z!N)o$C}g6h=JNobmyhR-3@hLpSY=CD*(N4>TWj=L@(9EcYwuN5s>(Bw9KeIycS0DKne=Bor};i-vHiHt{Pg{3lS#asC+|Jd5Y%0~L6b~Xv4 zjL#b*Tb0`cvk69d3^tw*Nt+mTCl=*Kqvd>M;_mM!r9QHz4C)#kP!7C=$j54BOc{mC z{!a#$nhmf!y$wOZAz$gSfNeSe4}BRxPOey0EDp=%dn&zir)F|_8~IB8+L;ynxB?K` zfDr4x{W{eP1E*L+zYs>#adPo&@bwjtnL%+9)`nu)tO=vID-y|AznFT8L>? z7)%BRMFAlTP-U|j0F%wZ$^ke4&m{oz0DMdjq>_|>mKKRh#GJAWKS|2N1P~%E!^>nU zZFqvnDrf;x1tg510h2)<7nqr$V^T15w1vb16%1qmxd0>c$ayJ%nSp#qpfrDmhfzOq zR~0aiNEOk;n8ljMIfZwc0MY<*d6){gDCDe&n3<ICKqw%LpcDL`bP)dx{{Vj(*5~mj@Q3g_@JpoT*R$}A zcrWgwj2~C_kJgk1x0x{bdrTNUdIW}JXqM}I?4>U0@YWV->F{;uSx#krMy5WhP(b2j zV0=9m{J(wl0r#6o6V3&qez(ov!aHBftZvYBE;Xe(Ya z%f!(IU`bP;3kg6bH?5!@t7ZiyaTC(ac3p{^8Xw9dJSi`*Pc4y%S$hL2)hyRG{K|&H z&93kvbUo26-RT_a+K2Z}tT~_>TSyJ+XrhbWy;~GpRQEOS0JWxpmTBWfXe(Ya{lp}I zf-`D^?jNewtHSw`VPNPJh7B39C$2?``lbZb7B~E6S2z$pSEp80Jq9E@aZ}AoEGb4& zw0DZxmEOKT{p|z4=GUkEE3S3fUbBW8sC8{O^jO<^qIy;?=H*)sR?U^`i*M-r^r~U1 zZi2p5U1MrcHwaDBB4Yw#hlC#bdT_u{j|}4voQS4mMp$53mYfjqyX7uPg_slZV9rm# zW0bvpk@anC`@{b|?anLrau1}yy2*I51^G{tjHghnM7%O8za>L?-^#d~9E^@wuv7UD zThy7*3=XT-KUPJsWo%aEF~6|Hp-8vqfs=w@1Qo;u_hq6kA$ZHvMdIh*(GTv_Y)-x zOSQEP2_|UbvVSBpzPqT-G*u3+T9O{s>#^-lE|^*rG5|4J@tFtqY!{#!7m|NX6&9ME zQNuh~4PZ=g*SIsO0Fvs8B4#ADWO|wbty%Ako)!|_h}scHD}W$GL}LAd45C*MfB+B> zx&sB5J4x5d4`E@c&ASf{LED z*fKD+(O^P3Ap`^+MoEBWv8EXCA;A%WD2R&jFO`W2Y`}$FavScu?>K(?jf)B_#;TBn z3x{|?gg}5*5W;sq{qh@z!kZp=S}S*Ub`qzY;;BtLFE|iFNOb8l5$;*9f6Rd_7T$uv z{tz-t2bi!$_A$YUaeuX6FyH)y`P!QKoZI`w3e&ZOsW6 zVG}@30zi)WxW&j(!UN~GbI6xsn8^l-k*r9up+-s+D~?%$BsSxWSIDSDg;K)}(1}1n zMMKBHRA#VpBa#VuCYa zLxdgtLkFHgcH`F~#y&j9XCFpsS`n5o`-aVX>acj( zS$)PZ?Pr;$a9AU{IIMv%;Gq&Inc0@x(8f0M|3nvuwHG^L#c|P)C)Bq9p!FGnFpb4x zf_>M~kP1L>hQk&1u9B?z=B6msrF&<0YODi*;OhiqlQZna6+{M`)wiI_qpe_vpH7Mh zc1P?<2AIf1fz7{sE<4)=@q!JahY3$0jvSAx+!!Rr!FPot))+xcf>xlHmX3*!G93aS zs{!cdAbSQ|odK}@=K$k=&|ARCyMh5w81$8n!+-Ic0UI@vFsg7!XRrWCypIdw00v^v zbg+(G{K1ndBPdvuz9DOZouI-wd1}5;-iU|7joEO%RuDN#D8T6|nt-pz7*65yYp@dp zQURmb2#ha<)L^)4L*W!Sdf(v7P`dPWT-I?k`77t|ysJG`-m7z6K7^(qT*_9{eU4hv zTI+@LR$r_wJS} zx~9^gr*J@s*fA2<&4u0YnIc9&sz4i}yeBgHWl3xlB@fr);bJ5M5rhLFv1QD!qEPkO zZH^d!=S7jIjhWa^_f?Nk2gkzdzC;WnhAS?ESX-9=UI0tTiYZ1}C)|B01e834xj4B@ zRFWUOIXUsD)*3PtGK!H?M(N!oq&c2^TWU^5IEkIsG8qvBT`!y)5oyFT)u-P#wtL*7 zbfhv=9*EB9Q85l8g(^s>NRS5HA`3!Jv-gSjZVA)=4o#4){z10|C|r%SxpO7c zt+*>rI!e^_v-ZRV=vtZ_b;wnLI+TzoaXaSBS^ymX_!VjU&=*3Qe?vW|8wLPapj6S$N;eVPw^S zVxy~5e~pANJo!2ANzRCmfIlNA>=R{B(v)fuK&IIa%=So(o-K;#kWgG3HwjuI+sN;# zg3w4-awx#DwB<_FY2jtC@a0#Rh_pxnL$^T&6F8q`z<8Pelqi8Msg3%5ir5Dw6^Z7~ zPioD^iRR2IuHG}}c`+}$P1Gm0H8!*)jpT$srKm!m8zgWx3)50lpF#o7@qw9?OK3y| zpPq^(5Emlh3y^s#@;=RT(mztR=59s>Wt*5hYe37VAKP?~6Q6wOg05<<1-mBM)=wPD z%C0v1(o&0!Sr>cUFj@IqMqknJmHWbXe~=G-j($zo=2l$!I6v($T_E>_o_bchA!o(cbjrsy6d9Y9ehjE=%O4Z0*#P@WhG zH)PoQji(!sq{0(Et(HWN9Z8<7?|zfmK#X-!|HdE1zwoCd*b3E#Q;yxj_Us9EosiY< zhz_`0YSa^#q%FG`O`Uh9UUhQD3-4`%IOT4#@${H7`)t!@!R^aiEO(&s`O^E&yUNoM z*=)&e$8E*A)D2u&Cg~s@HK-XfO#4u>*@`MhEZ*w~qk#+21;cJD&I6|WI4qo5ZXc=Q zQy#uOTA`hh*mu>b!KbMHT8vDq@q9`S!UoA~a$P)O3w_<1wrJ|G?(T&1!ykCIRXy|h ztdwL@i>#v;KDUqIkhG+&lvEJ1?2lNQi?bF$ak!RnF)1I1XuabUf zX6bswrJbR!5bf#d=KYeFs4)bpwE(?j|rRI zAH8n@?qT+)N+EG@D5%%C!Y&|WPpdPSd@7<1&7Cj61vR5y%#C@{dZTY5Rcx}Gc0M=q z3U9XA0z3z?2!5=ZH#Kg!XlQSp>1QP)+C(VcxaIvc#fLi*H zFEmq)v}e&&+}ZL^ChC^hW8sCKiXEj71h)gRSLd*^i{JZ8EE5O^*~-%V)i{t5 zHPgZaZJF4f3(u5O>{Tz_$4XS}^7$q!L}fP?Es%-q@YgxMqIZj!os_`i_x;74JW{(=K3F0Mtzup|jn9Y}Q-2)UQJ^Z$I`*XX<`~08 zjf&l(RrM?5Tjl53X6{$olZ>sLt>#)gPtU0`8F;EPU*+hgV373&xwMT}m8 z7fgqN;;K(%KP#~)PT3&`S1F?`g-RdRzK5v-|S57_I?(Pw-EB35|y{shgjR36PxAgbdBU| z^S{BN(P{?0x^k?)4g8Wz;-=1FpP~x9)FD<$og5Wd+)z`aU=SV~X-X8s zW9VyIz=?q&(1`)GylQ}Sy$I6eE*wi#`8gVpQ3(tTya!Y{>&;DO)|>yR%K}xD(hz_I z-~>Osd1=yQ+2zBFW38<3rph6f;uYv;XqT3jtAUEHlYr_x8Yi8(g+wLB(Lu~)jh@-S z!0#KS!o#UHGwRgb$rKinT3S|#h&0Q(Qby!0Rv;BB&7>1Sn|IQLD;R{es??@x7c{tZ$Y;u-Ay{Il0yertVBXRZNb9LfahQoCcZ8*k%wX6r-<$#oaJc{8LC$q0IBEd4c+<*ywcW0WoG8v!4W&JVLp93RWdz0Tc zz<-sS@JW)W@SvvYmjl!$6ptnb&f?JUkoqLy8e`p% z^BfLf;9RN?R3DG1`PldYZ2rLDuTI6s>JRM8a1HPu!W|<7JK#SO(@0lw=Z9(+UBfNC z7C!e^ni1{3k6U-YX+6&U#q1@Fo|a-Biem+K3x(_CcNeT(Gx~wFhAb>NFbnEe={-4^*-xU)f>uE1Gk^Vh4 z$DqU}(FK@Ixa*BZ)YvAr*YcNyg1jZp+D?fjI@iYn0N(Vd!7R2j+vz^VL&Fxc#bIyTbx=~AgeZ@J{a~6PEQU>1s?d`RU%R8*D&M7Ultsnw5HV)>BlDUY|1%yf@aDg$p91+!Qt(nFfg5P zZ+b_+cOv1auNMae4z-jYy=*X^haF2K?mo9cMo!jc?Nk=Z7)msFgZ z;_$WaLWr)Hv_$#~qm6Bmi0+)xoBSy^Werk=v_W=r%|H7s{9SDLTtaTCEnDCPKJfQ; zpPiKNZ{N1V6*+~qTd!|!iaVhskiT0V+br0B1BU-^^Y1#6=$~%f`qCJd>Fq99Cp!n^ zuZocxLmn{;eu`1#?g`Z`-wk*~dW)l~T4t1)@>Vq$)-3O1KfKB+oR$$W~ zPxm!inH6lGUiDdQbGpntzi*G`H#2m}{lax6HQ2Cg1Whi&d^ z{0JjH=#FDqnS_@OtzGKKUg1_C)#~ z-qpL?60+TrWuDxRzj$KtgtN9V=|SMr=Q*ZEd5*>ao0vaI+FEVJyZBBUO)huS{l!)h zuMnKKGWXJv@j-kK3>oE_YCu(`vWSBp-bPAHWB5X6;VPzyUka*;=ke!kD^`_@Shm-K zbfpL!<5~Xu54S%K{>!x4%{5sy(6f21m!>cG*w|mp{iX?O@^{;l5yuEEKaH1-$NM8L4#2{W{a)os*~bg)_V zB@oPPQLFM*u$lE!`gm-*M6F#iAI4Ia{;0n?QnJ4)6TkADC?J~0@D*-4MguF#XRl$u zs^q&Q?4945i+G&Z&o5=Mmt5IAe8-W`^Zmuk0Jxp(7`Aj>>)(q4nksS_j^}e8u`p5& zZ)G(iw{q9@-`Bu>BkB2So8jJ}8D9lfRX4P$Hb)}rZB66W>cdbszqzhveT!mr9S<;7 zNTfrtc=b*(d+;|8Z&ek|``aK}T>l{+0Hx)}iY1a5CN_)PJ@)ZDBQmwp9}-UkwXkTa z*FRYdfBDlfB}+VuJ4U6VD^LafH2@zV1W4>`2i`#*soR^QAAtUX$V-XLr_@~PQ>ML( zl`fsayiU#INss;(11)(q&e;t1`tG~!p%;!k=63AvYWVI(q`fI9WkQuEI-$dP zz=NxY4SDi^RT{u_+Dco?cfdu3DE-MBPd~jyBLO)w=UpR4k5`S*x}}p$5!A8C922(} zjaLMeH+@OFIkwp0GDW15it~`a3wzgDQk16a|VzZ%#hXt@?n+ZO{7zCBsg+w92Z;B&-#crK?k^;7DH@ zkUIiosJKSKoBXc6XA^&$^ct7VpAzW4uAKFofCrXK2cL zW>$vl<=sBt1`I+dh>QqoHHiuc<|Z{d%?&1)ok*jNhX8VO$`xo0hc&uOZj@xKJ*uY* z?+Q&C0}~ze5P-^)-|=`bBgn7`g(?Ky$*YLylDLvjHNABCiWWv8qh-bNQt#cEUGcn@ zF}j!%$&g|qftx+#LMkMYrN&z`_YKyHJ{N@tSCb7u7tYe9Ba7z^^ERGdZ!dnhciya) zNGUy=hCk#JE2j!oj!FbBcG*kcJJj>FNuV~sCjD{Fi3sm7d8AY~ree?U`Md*ngH}(} z?`O&CuZYNn2L&~PgF>re@axX9`;T{VIJ+L-FAMSvBA4iW2%UPS+F;XTtXVvxcJgX2 z$-G=fSPyN0;2Gv{A7O@P7Gu++UiKs7RklF4f_8Ym2&FTjl({bewUSyuu^pl;7kYcy zz*pt{F#g)*>63|p9V*@T4QDa)im#+d94A(FiuC2J1pV_{z^&(wmnh}tJm3XDCTtmq z5(gZ*GjGei%qAFW`WkjpyW~K*;#cpmkB==Jdz}4rdYk6*(?5T3VyZSLzIwvM#Hw&k3TpYxZFK)kg{&i2IkVWV z&0fFZvzFs zU|ee~%R7Ip{2*BH`vs#>K3l%;+WP^ceCU~7*W>Hyv-HLLEX(@M(N{Huqnb#+d08aH zEcLg5g-5SGmk@}&sMw494jBHG^1rN#Ljym!w7c10;h76Z zyd}+G4*VQL7P#uYu)Px<*DO`1wX!#T|5Vj$Vc`)oxh6yU=FgFZ<&`du+Duo^Z~C8O z^PTnPMsw*sfu|@LG#c?erJS+!1d~+q>C8gj;47gO&kDz^DahNn=}e9(p53~3@;?i@ zZF>it>hHBqQH(ax46#zXh(5MViE%WRl4y0cf`yUHU#>%T7bS77B|CIN2t zSL8fQ*Kxt*^dV;CWHUY2am0^D@seSVEs>TNRdUQe8Put)*3E~C?&=*k%-BR~tx9H{ zU*S8cw?9liY=kmB{yEL)-z)w2^WwNReA2tg8in?V(D%apT(>E?H->zOkZ3TPq~mRx z6PoE6SWFMfJ!Kj*qyFy38&U>~Y%{tVjrSTi+GBpd&M){fW^hUb6^!)OFTMa0i83%| z^9(1TW(N!#9cVs!6@xH>qS)W=W-8<;v%T1_&`S(JnSi@6^oF&-VClV|uukRdU1HCp zkDDF^8q=THf`b;D<>#R7SkCyq(A99-J4+F~ugD!A#)_Lsbf^keI8MjPAf>oqHS zv-fkUEl$?>actlbst2`THRWLyKy5_-T7vEj=zdsYJ%h`@w$Hh2wu8yKdY0_|iZ+>m zS81x`39O%biwco-=46CJil*j>At^Jdkb>%ktpjxU)WB)R=Tqp~AR3 zZhP$OWpN#3d=Z~PpZ?n3tXr~bq*7G&_U|}}R#EBDnALCcK7M^Rn>(JKp>~So%bp>~ z6~+Ev{eM+Ss}QXkzwp|USn1L;BfIdgYf2TMPE}m?OM z;0o~?tdJLV&Zsc!m$CyUv(>R`QftXjY@V74mkELmp|*(Hn!u|nGp=yd z$il6(IA2M;7%5XfS&l9+Ixfpc7pprR_x;<+9daq$&@uOo>XvDBN2$w5MA9;<@fnH4 zbOv@5WW9wet@Z>Vvt%}eLDrH}nh|KUZdpUttx5_&so3J2Gb`DbhhlB3a(*ePGf6q5 znbdFX9>Qyp{Vc$2D)G#E`wUc)hxT-xJ$FyQ?@UFUQb zmr3tRe``DI!p+HVEux0+M0e@8x|7$q1sy-=F8!8HJcEu`d5d?i!#M~FbcX?jb@-Dx z`2PX&LkB?+6zFyV=`q5wJO~POyFfjV+My8C>j({k9_tR$z@Mn2*WnWcJ=P6CuTe)g zh?j4J0ZXPmaj#rx3_Qped)3C`gYm%Y|DkH;cYJRE+XArZm6weh{&U=5 zBX0nwhJfNyCw}TJjZBk^<)@jW_}r97N$O|%WiZ>U`M`Y6+;)-AY1(qu9`>u zOf4cv?r6UPy{g0#uXAH%#{hB(prkyLFpw))IL!y%HWmq+pF1VyalEc-tWkf<)=9(? zA9nL(r{59>%rjng3G`*(;12EGIo+cb?iZg_*3|y+yi03xzj@iO>$TqaU~7AgEb86O zqEf_z%S|){W4-}rUcUkH$pC0i_ivyU6f_0UTSQ;EDs_5dxYk~Ds^c!|RDgSby{#)QyImez#oYoqe zs9TwUF2EPO%ekULH4cfak!gOCi(-S9XUeT_Zm1yy^ zv8k&L$w3`0fqStqOH6ND?za;#5cfNy0~qUhC9NB7ewf+z4ovpEmeNE4>V#Qx1$nO@n^8LeFS z+I~=oypivU5X@_-;>ba@umAymuL?9GG6rWUcC(NI{LxgFA_Bpx*_a88-j*hmP#3;~ zag+3oIOL+7AI*u<>;?V&D4$2W6>a!ecZ6#~9`n^r@xq5!#31I2S z#!1=uMcu(C&E2^1g_GHg$%jK_5L2Y1$*XBdS{>bhK?_ks3bdF=+o%9;tgRejx-@69 zZe<2_LZk_!3GNu2FxeHbnQJ-P+}xI3ln2WX(eyTg3qICxKrT(>FPXH=HZ2^44ebnhW-%RXBNi^P_F_yGv0&m0>8YEdYn;c=G8 zgn%4Q;t1K?7cb*UWN~c$FV?gSuiAsE$&6LhTnb;?i2Jvkwf3Zs=vSXf;ZB0EOuZCO$7 zvsL9*gGY(t&IM0nv)H0&#qV^Mf+3-Lm2f9_G}%uB!4m|BM(_q4385BPu%_piFeUk9 zol$|@Cha9_9yKCVAR-Alv~*EzFmw>(tbg0yP!{y{r!ik~N#aM&JvbA_^?9r~VcoOAeGgI~g!;Axaj!Bl{vfu2dY{dgeg{ZN`Zq5b{iMQ;_=bAm3X_#Qt; zEShD(w`RS};S3BouvA|=)6^3CI(u2$-UmaOOtMdBgtt8p7DBzrf3c$(EH&ok7q@U` zoHpG`D^9i`aS~}=qh3tU1`9PxGLKJK`a8g<0>C55V;c}r#*GvPxF_2K!>WX&=D|F zS!X-jOGA(IBBI6dV~U+XF*S-@7vi_>C70vt);rPEZgj4=5?8~@B9ge^0N|K?=3PH| z$+0%8PY(u2gE=SN>gwiK^x4)z+lyyl z^&wyItA+*?C^QOscM?PpL>wpm^fmUQuAeOdqt-u+cMP zLBd9!HSgbqy^mLj`vY+>7RbKfnuAQ{SYXIifIC2lQ;&ilE*h?J{63DWjN>pq$1z?k zyN>=Aw7C8e+Zc|v(&fnZ42^2gB};jPj!3v*W_Ay;tU7C$oXG=(4(j=ir0I>TuHi{YPm|aQ{FYL3Pj`uVAWx1wb}>kmA74-Ym6l7c zROD4J0M0lY!L!LY^2y5?E{z&mPZpI_JXH*|sw1d~R@Bn7Vo-dR+m}})0?GPKi3gH$ z+~Xf7yt_~@^c|i3cx6;S@6ZYR>b&d$<=t;h(r!_ig5sHOyZ#LI+S&6c;>(9ERcaf~ zX~r#>LlObfpjQr7};Tf8D zIKWs;CbKz2W+j3I-B47YBo z(J~Qeglq;40R`vn#rG|M_p04uYn?yb0L|em{pJK<9KLZIo}QGKgk|&r>U_U~ITP?D8Hm6fTWLG7S@U2cdEw!<|u4R`m~d!&y_mV`c!X zfI?0m9>)zEBQsnfu;A{ywW3-&n^mCz2t2O}~}22m(zaYN*{BU5#Ox0aao)KQqK zK`i8xDLJbgdFraVrV$aVPsqHF-R01p910PKtm08~H;kN}2& z>i|A84gdfE0DuVWxB+G^|0$?TiUdPk#|F0W5F_kh4+j{J8s&J~3eY%`z%6M$ zl_1n7_5Xl43SFRxF~GHGozT8gv`O~>co}Wen;PY!cM1DA#1W41dLocZ>d3dts)AwS zy?$MAG98$j>4B$`+|Z=hAI}>l0$Jp6hDhK|%u6wWd>g~8ArOd#Ur<`_YLIJYrjqZL zg6dnt-+D)2#hdOMuK3>jU7WfnnwTcj zUv7L8<0a15RRWg*pbB60+?pet(`|YxN-7g7BaR0Oz~Q@zS980$sis7BfD`{!^{$R; zaZ16;DSa>}!AINThoAJFMN4fd;;wT?8*O{QxQjDlC7n6a#!Ycd1gS%s6#rPZAZzEn zVwl?;iXaKTpV3|Bm%_?#9q@L(Qr3VPQAPSu)man}pRL`WAS?A`UN?Df0^FAlZq$Cs;^sf_Pd(g zhc&OfxmFKSFC%nwXZL+VEuEZm9uo+rRx2*O7xCOZ|23y5G%wiTkJry3#<)mfp9?ex z8R`QLPjWbUs#wO7S&{>^w8a_FF>s}zd@Vm)8o*wKTCsYV%8Q$YN^Ioc zRngbZq)7nNW^S)#0Z6!wIOiIXfF%IpLi-uXS<3hr7y9W@3DQW>bmP^YUgnZcx2snL zXe}HohY?4Hg3*=jtYNg1Pa2+UHchA5G#lB-5(GWTH)9(Gre5cC-8wY<;>|2n!IL@s z2E8#x4bYm6@h4D3U^CL>!x?0d@gzt*z?745OB6_4|75rV->%JHyIE~0e%L8Vp5%CB z;OJm4kl_j7$5_Su=aRn21u6Fugk|(li|Z;Rb;aJpHDx(ACYFtbv`QE#jP4)o3ii$i zV;<}b97YJs_!DhO_m26VIuJ%hy^IIYh#E*en%0peg0Y?`UKyH>gp`zkM&R)MlV&4} zv-}Q+?#hvFI&2?L!$f1~ei&FAXaE%!rd34Z)LqI2j7RW6R>|{Eotk=83xMX~4YUIw z%3KlikUJyMj$-eAIyZMvs!ZRvf_ux#-r_N6o7FgNe3K(8H)$fPo=zi`=S0YB4?Hf| zuyiJpt4Lxi|0~>XlB+Luk*>L^>scuwZ6`$ ztk&20WY(mhcNlw`{{JBR_+%%2oli!sUlilA5%1JtlmH`R$`t8fviqhX95=M>|6W~i z{>8g~hj|c{Ngp8dIK->fhLEq^eKK72bw1^^ydV*_IevC{{^N^fUb@83^ZSLC;UunO zHb-*nthiV5pXfT?1|E~;087EyoeH!t;Fn0JCS??7M{?6Y(a+;1N#?tU!}VI>hNZx0yV2I5}?Zer_j{Q&p=gvWmuWyjc8 zI>dB@=@`>%C2mHfFa=C8(}0Oh`NhtJt$;8>RBr$^!{4@0GF6up35K|ijR~I)wW+<2 zFXAD`Q=^_4f6$wag`_|-xGH7Lj^E>cj`4~qwp(*J$*q7avZ&L`4QbX-*{nz*<#90Y zZm+$Fm@dto`Wu3~-&2Hzck$ti_f+sd0|i7cS@Aqv404(i~zBo3m z-&yqbQUt7l0R$}R{tmEW$HG7cxE0d*HM1JsLIQl-|7E*vfi*Ja55aa!Tc0RbdX`^6 zMOd%TA5`7_#j{g!_$B=H4j--|R)*eEAi}dZ1EgZvkH$eV1EB zRGbygZ;a-XI|kKKiI{m>~M7tn`(Rv zdOxdC^_vFfF5#W2FgXoKsZ%5&MW9GSA}RHkddVmExg=S-uA5Jv3KB!II46dT!+43( z+*z-+nngv^sJm2~gsu`Y=n$HFl%0djOv=mB<-4x9gKBvjoP1 zOfDJVx+6|LMS86=$-FZ>>LKxQxnc}Nj%0pmeXb*UM7Yj% zFmup|dR)USY{vO!y@z@6zc|7D)qY3{_bj6 zSp-YgSAqeeB}!4rY`AnKs?`gU#>}Eor4m+|%&e((P3cCGj*2#&Bg>8~_aoWW{Z;1a zf}8Z0=H1k_F>2Hraj3>}3N%UYtEQnxrXdGym4B@YDN3bEq%-X>tOJ8t5AAe0iGE=i zfVl#L&NGzN01^yvMzQ+pr@sN>f`fPo5+zBN@>Dl_Hj_+QvgOE?Ctm>tAHI4}^5ZW+ zpdc#2)HKhB^Z#;hVg6#!hlrRHXD(d1apysTL5?2+cG@MHz$Tt}yf9I;`rmGQoN&@1 zhi$OYDuk6}SlGfvDpX7;!hukLuE;ABOfuCJ(=6BIpHLAEIH;nO;Cg4S_v}dCq>h_t zwS)c*9sWbJz!8HCQE9MhRa(?|qn1^@IyW^KYM91k!*C;vGTKNhjIqOHUB}TvoF3z!n51%m|?mYx7?2x?;eCCB_pTc!&eVVe*6Up6htMMnueB6 zI#&o&#|=`e@zX5glFA0PcA0uv>#o(ZI;s^3+V6CVT0^R}>H{<+l{5q=H-t&1n9DRX z&D?IlkO@XiGR0h`nK8Jd#C)qzHOroLakIMv8ALFCzB2>VbNEEy)rbuEioyQeZ<+IaTbPew8T0RR9108fMf5dZ)H0NFSI08b(S0RR9100000000000000000000 z0000QMjQ4v9EJ=AU;u<{2tWyfa}f{7AOs)CZ zQ+Pr}fNStHXFqRuvxyU;MhvkeKuQrmO2q_DydpvksHg?0QK$TW6*HtNP-F{M_3Z5( z34#Qna0=zH2Biqef8LtcJ3!lPfxWr1i4u?_Br-*j5=FvB`}L=ece+Yf_0C1=QeD+o zt|A*i0Nnq|oXwT$frp^B6LHVl&Hr**y;gr3_^3gMmIH?Mj@4c+B?{toJ{sL+>C9GL zwihIm1n1?=|2nOTrrf5z?ushqdaFxua>nO*W*3JWusqlXgE0t;q%TWI{sHiRYV-e& zW=5kt$}7!|!e(iMwQCmg_X17uJPvy0AyI#p^v zY5R)6S73`f=C8Z<97SB19V{4vvaQo;mbn}E_(EY6`R7L3Yiy`%Ax6m6sJz=`HaoR-UN_OSj)mtZSsqsR^Z-|UA*2M_e+S}?Cm4?(w-?wjv4Lxe?fk>@ z-+rymfA_z&!3Hr2eYPRi;)>5A7R?%wO31{vk&rlqOo`M&&;0+s&T9XaEL)n$HP(cz z@!=dZSzA=VrUV;es-E6|LVEw{Axs$aB|~-)8rBFogTt4=mc*n4-ds%xK>~BqB*LV` z#+>?Xy6M_2>X_&v>S|*rJvCSt3$|y-Fb!d}i8Y3{|xUf7ZLZSWj)jf85`5FVS*Mk=dBoz<)wV(AB?z@ow zWG1760hJ)#kn8?z0mA_lK86?(#E+O^21=pzh)n{BGF6CbXAp0FLx(0TXao$^%~H(% z&vF~GF8I?K;xD1i3EWpMURTgzfWBeSxTXCRc0a-S4e0Q$_@XN$eiXj%7T`I9W|bdp z|5xj(=QlhI2p&>7Z9s~FNTZZAtEr7|WKGpnULbFdax$b!5-(rli^`oXL#m_+2!kI! zd85`7_uO#F8CA|W>VSZqj@oRk@NK@@3(f5}<1cDRYqm>2Kr3PYOL~D=p4^#TNLH#jp}$eUQ60 zCKA!&J~%XJcm#zQWYr)I7?G<0H$(}-bcBIO@QC9qAVQN;XV&tQC{irSB4CW=7;7zh ztatX>C%~r+8{6<23RhZjp6prDrAU-o`STRflbl)Zt#m1p z5FR-Y^$peA8sB`#rNq%fzY?5y)h=ITAw-kC;cGl{Cw){`=v{>|*P?42V6y{h=mr#X zj5ygsB)Qxql}<#{l78f~Pz;hD(aIrft2DNz zOPI9|eJ}w65+nBKiV%Yjh7)52k>gQ`A{N8XsZfzx|>nJ0Wea8D7lwD7ec;plN&0oS>H`|=d*xUQCqu^^m++5Id0nwkfx zbl~nV*5j8SFjOs)1D*&tn#dprcE7L7NzN4eZz#JX_wTcoAwIwJX9XR7H))zxHbyFV zUFEA^y@LY<3|)o`>h>?ZW%w|P`E#h?UZ=;Ua+_0i&33u;HZ+^|AH6%}#r}rdp$~)O zx_mQjc|xC{1v9hU(=o-)K?*BdE;yPDecusP@)b}UXfQ2;agQAg#Km&Z(*tG$ z*7IS-;qoyua05wIq^<`q6^p=Jq+wV5VOGmIS#N8`1yr}#bB9P6h_!#(PUG+JR-!35hhf$C~o0k zA{{LSISn=YXqJ z?h}&(aU2CB`cw{dh6`+mS22ngU#g;juBN*PxKk23ZdcL97g0rgJ&ht@H!X-thI@^azPUZ;A6c6*$en@a} zsantVVPT*3wW|Xe$u9#p+`dwOgVz%9O#&`tkiLDbr%)vTC%~a0696oDrr3U9sRm#q zY~U6Seq+s2fOQz$4%V47c?JE2|^C$^)6akMd8& z_`#sld|XFi?HNCNH}s$-${diD1D1XLgq0dYG6Yqe`ldr--JQ-xDAL>4?A3Zv6<~@E zSJ1)}D&{16{_RTU&9*_TlvPvw?l=qsvc5c8d{yg`Swd?;#jKc2ma#M8gdIc~c+Gir z8N=+<6EFimr)`QOmYfla2*tLJ|4nuwf8yCSXg9U1FRnHc3MHuFvVc>b;n$z~=GD`! z?Uq1QW|}BSnl|ejUNaxn9Sy|doCK8SP~=MHUdO$2CS^*x?;dVy?Y=9i8+SOV+u(-- zM5ScvDWrJ0Ct% zgR&!x&>&UMV7doa&phgc15afqMSlWMT=FMMmabLhSN@R<^OZ5V@O`E% z$Z0JmDP;%Ln5TnlJ6pTKaBNk;;K&s>O<`+`1m;W#=?VmiboLdDwRn|YR#xCD=ckhS zL3{M8J;45p;J)PFEM0V8C)szjrS#rGr6o0bv$pNlG2inm`{ANNet-%y{qyU7; zkqp&Dm7W$xXqyZinPUg;XoJaHCuVFi6^2SIo2R9Mqtk>~I&P4hWu4pU!jIgN8(J*j z)YmU(svSSYbW$Z%;__)DHHj=r#Ha{+io3Y=qS>E&UXc;o^~6Z+_#R)5GFMa{PzO^q z2`$ps`t_Jv!dZ|Hzw+I=YdwVh#{-I{7+3(slHteBi=iDx?$9J(;cj#DOFcyXb)xcL zp9lBrR(_oP6FTQV<3D1a)&Hes7xM^@$QQo+i}HQ7c4hY57#J>qzQ;k(cByQ%bQ02m z_NJMzVR0toNpF||0S0r^f)E0sZs_5mmaXC1E&@hRN;W+cDu{B>Uq`4Q30c`eiRZ`~ z7Cj;t>JY2Bt8XwqR~j}OHYcM$Z@Gf90m7o2Cd^D(mdLbE$ab(WHz;<+?A~P)jFP0D zzsqjwWq|Ab$22rKeJx}oFu%kt&TwfsmtKn6vi9ib&qBtsaOa|9*rk_kH1&C}`*H2; zZFYii43|9HKTV!N14tL8c`gUD>S{Q6ej(3Iyoo>wvde*Pq^k)v3z2P|vP6A}Csac3 zH$83^iq*Pq?(qpN6WSxUxO`|;+?uCdP$f@Tu(BWQ+{MHRF?mRsEd3P+zsxr+>z}MUe@ zNQ%?J(v^|IWh1C8?MorVWzkP>6hx6LAr-+TIA|mQ3ra}<>`-eg7%-j?>{N2`9)yY_ z?e&2IgK5$9^puRuRIEa1IXD=&gfWT~$ts$cO`JF`3H;n*0XfQ4YVW8jJybiR zKZ0>jvN%z@%Qr-f7;)kyh~t+jQ?OA^p-KQ1%0f!z4%nFws-$t$DF#(= zR;l(Mi!&3op@yx*z=-=_-*Iz*U{^Mqc1`)wi*^{7J?S$0p*q^E(nrrjHp|!eKy(M^ zVbs5zjX`B^4JdknuHPFztW67L4DH19nXtiBWA77XFRXgTnfxDoyO4}vG5ef1ZS8JA z1`on*a$Qt=A0c9dXO|Q&>34^oPk80&h;g@ie@PwYg1}k^T-9X{H(eCfd=3~VoZ)d4 z=x?4iL8ELp#D;rbc&s8$&Ak;3veB>n_V>ud{mh)6n)%k3m!OBb+)` zw{J>8tJ>G~EMa8$%x())E=ruhv&VWEY!a0}M|vQ!4ICxvqnESUt>gg=nLvfg_@1O5 zziP>5YFBBc7q1jK5Z8X{af(auA`4^aQiVpDLuY=fJELd8e?=cG{u}7+9x+`Q>OwWO zj#VqUIAX3GFek3mEJCm&>+b}%ve@2fRJJPDn@i0|JdCW^b4_g%A*%JBC#xFnSPrd6 zyO`}H6*zS26`98oLw>4~pMCUnM~PdlVsWG*+@&Q8&r(g>CRCWNN;WdM5+U3N_pb5i zzgbu2{^B+EaAEioPl$P){{|L};E}Ou+cb3W(PHaswshJwl{;<)KMNq{{z@Y(^bO>pqx_)y%c9Z!3J_8JK*BO)EZi=_US_b zoaV&QB|(KxT+{F@10s#lo#rAA7(V_^=4A{YVgG2*ORRRlf-g}5y39meB5-q6y&4Qz z{LFu3X52k84W{dNER{l3`DoSNzpaS*W1@h>b&XCgpasPT81(kY9nmo#4ohSkdNlMj zs138J^GKncV?{9jS%;iJpvO!FgApd2o>Ke05a`WQo3TcZnsyV#7kGz~(GFe0{+Nyv zih6ha+lWkCEcoaL1`JVTnNId_A2eD3K0Ug(2~_Itghw?SRHz74o( zKW`z;{?K(SMK;P4j=3t-0Jfu5XTZXcA5$_@YoiES?0f|9zwvN8PA^}7m^WMP&db+t z-hTdm+Wq-wuRj=$#*^u6zF4l-o9%9YI12iw4EH7~NC`g`_*1P$a8zqlhXvM#4KDyM z@adpPv(LA8_cH8oo<({6jxdN~*uB=JaQ8y^X)-|mhW+c0uEb@yQ=sTrX7n(ySFef+ z7$BzrPoVPKg=1Jgi^7W?zM{RPaI4mGJx%{mOo&B2x{&9z#)B1Vsdh)ZgV$anzsA}d ztiDC_8Be}ri=k_f}mip9f+0EstS`OLrfB1MKR{zP_|)>*QLw z1~1D>q@GP+N@l=VhBb;_R8>*G#X~g3ClMmIwaa#K3l%9!G!HM|-bwo9xkhVkwAGGG z)yH4nlvrY^4ayvJ$YGU^I_9_&PCDhZYX9?p|2ZS&-$f!i$7m`|s@v9(3T= ziq5P(u?@V4VUEp|p$5%)6tnG(HT={cbRs$Ouwl(oN z;f=43UWtb~W@=LsCD$nOufZy&6}H^upix}dR*Xe*tSO;>VL(@ISQ%BuwaL~rnoYpU zRFc;K2w(_Pn87?$V%BlRwq=URKsob^UM{*e5PJ11HJTY$CfBCOEH`hu*-BUe3mW5& zyns3pBPI~Q31AFUn8BPjg^Hpo(fORlh~_o26^Fz?1E*w2>SQ%vi&!;<2IE zTyB@yV~5&_cq?D&w7n+12~Ov_SAL!NEz?W&6%1g=M-Gf(LW$=y@Ol0~Tu3a1R*bdK zMrO;{G4^~1#*smux+?d`3wQkI4$D)S+!fEoUa0#|o$z#*kTWbf?ejNh?mBnh4++U7 z&bGLAzAsh~C-Rr?>c0QwdnR)(bMYg>#jhy_i=Rmu`F%~sADCpQO0*yi0mQ5o)FHWH ze=*{f)>M0-!+2Bc(t1-AS~3LS`!rcL3ZT8T!q#ljPxR0@E)<-(?IO6!%)4tT0&0jA z{chI#6A*aE`25}})^+>(%kJE5Kd_4@dbB=mKpE1;v?*hT&2<7S-L|64>m8d%wjb@x z{`MV*w~ikOt6h;@URD?PWXwvsl-HU=t$}vX`N8LVx>(>x@IeAgwp-4XbCnh*P+&tJ z`Y?olpbtktp=a(#`-F2|LBzyyV+w;!M(P&nX(if1CDPX$?-OTc4*+mua7oUajA_6bxYmW0*Lm zl^K<*zMw>*a>P#^w7w(Q&bWrBjKV6Zpg|G^GqK^Wxrff6DoNtj@URfDoB(>?<66~mfgbrgzvwgvf%6}D$fKlje z@mognue0`n8Efuf&L}9#ypJgqL|%E;6qbO5>{$~Wd}6_$8|d(eNGUE@UG7klKNT1L zal62*wg1QZy91M-iYtHKEnw_ZarK}J!SLOIpnzdV8i4*;S~ys|R5iAOT=5d19~lCI zhvF7YXp!YUsa5eW)XwUBI`k+{+Uz_2?8i*J2+?x z68?21_eWn)J_IT6p7OqzvJlOffg(P&H6J;;!m3hc)&dlwkqk(H7AFC^U2PPgjV5k* z2q(ahUxw#gha~3DZo>vbuPgG0XT9m-l39SMUgN-lx`$@KvA;2Lwoc(f4dc=riU!rj z!X;oC07v##kfg!f3ACu;F5)6Y{sHm;P(!H-FdGF5G%y~Gfbp2>1P)8X!2=^iYa~q< z`Gy;<8=R|Q5`nb_LQfp!kijpogiTQnBKee+lvz5mqzUtF96w|osnc~DbnxGrkhrV znC54hTI#8n!G>!tTb}-!X<@7}#_1tTZv*r(R1zL@JbPkY9{73k>f?lqT5xjV%F0 zRY6pbh@ON=NGuJ2Uw8BqGHWnE8oERlbPylp%u5DM1pCLG-b2g$+TSwV#*>(Io&$F_nl($vAX{AZ$8PmBsG_vpZIzP$t7VF*yRNmdqz>-!zKsK6oWCqCC zdIRrRXkbMSq?J0syL1ZD06tT)Ig|>EZ0`sp1R!WU0#clQ-hd1SsL_zQFm41e`B9+V z40R#wyA3D+g+h*NX*7f5y`V-DOWC&(#8kjoX+@ugI@%-sV8W_oRj@ua>meikY%UHl z_TSx)2UX#FCn%y1_dAbg^7X>fvkvZl=&`AUj!e-YWXanzyX%whXHYDE{!dnAC zY?@nxo~Rmn_YxKjeg3|H0h>7%9 z2SSLVWT8$Olv5z-7ZhO^%|RbangH{6DhF+!GWmR%l2bZirEVe_gsqJaPTGM>`LNlN z{b?F*aqh>A{0#+3p z!)NiItq>#3LfCh#XS)FF9o>e<^=>=h-t;*vGErBJdfD|dx9S@MuelB_2VaE1kjCYA z*GYK@SO5|ts7Wj|G?Y2eZzHS=-Ujl+!2i)afM z?B(h&5o|NQrmzusRuKa;)@0&uZ& z79z92w7sc>EkIyC46C0nHD=Jc3=VQtKgg4z=&EBB*?16 zV}9%AN9ctC3%ZN7qu>WDCc9i>-e~$;GNgvGcpBAkHp-<)YRDe1tgH=bi#nPuBX}KC z?#-{T!LN`AmZW`y#}NajEaOqHjjre@kZo4Dt1;^mu0G;4b#wBfTv4Q^ppTMkKD+A3 z`{;HM+Aml>P>t z)lh7+9&u$%WWVt!iwj>&NVnEtVQS)DkUe=-V@5qplS3e3rFv23c~($w^v*(g@8itu zZvq{yeAQSYOjUG!)jlq5bSu@NvR4cZ^1PU;V@wv1G5E5Vi<*LkKI)HxSPa^8Ar}g zFW(0N1I<9xCm3il5&1z1YRYf`${94|Om9N9LuAA6C9jY4?mBtJV>kw_3?U^>Di#c#&p%1J*I=(x4|@csy)qqOi2B7}*+RP`>w@K`eoX zT0oJtqpk}m;%o@&A-$dq3xt(tyJ`-aU=cx9$leOJ1^%RJtFFJ1`_D-!`RfDtM`(Pq0;o zHuhZXWM<@524#C))Fp9w7=Gme7gu9YbIOsqO1h_(X~=}l@*V3}JbMUQrxNPf3p zW(7CVeT6aJ9Gm zw3)sHSlcU2yDLskYbMZ=ciJr9FtXNcZz$56wNw1Dt9X4XUlu!{=YdTy&JRrB$C|h! zq1Y&NZtcKHuX>F}sbo&EKDg2ah=_5Er~kwsh1o=>N%;c9I8Q21rCGMD##FRZpi+KP zq!gBFK=)PRs+yj@l@&#CGirXmZ^}2T*6qC)oHlnlDQP{SwugT?hS0&{^|bd?ZY+z{ ztGB-lYg5WCMGqy+DE~)8@pKAhZwch$ufU`jL0@K|6gyy-rR1r3)oA*vjH0bp7ez2T z>h@EBwx zTbi)`O7r54@!1$nwlW1Pp*eP!q>i_O>ZzA#8~ErsXR^eRR4``slI2<6FH?;nt`3CD z@1K{I$SSJ!I)_zWe24lwI=MFm@PPH3BPd}x72hdBe&rqcChZ@K=Y}B%RXS>K;7zYI z;ha{?rL!Yf=+nmRYSl2FpTV|f5m~z|H2E@+zT(wkkdG?$)=R=kb0a|`Xzn| zALbeF3s*$DDvg;5T7TbV@kOP%3HRv>iMaGAsg-Jd5q&(aFG$=n*n?p+X0i2oTFgyn zL?z_k17aWE&~oS9Du>&w(!=Vd37v%Hfc%Bzj=9e$KEpU~%lD1!-yK!W-lOx9ZwB{0 z_j$hn!=9+)W*Xm;XH!}0O%+Zo@fw{J0`&6V3R&jzszTRWMkvEV*o#r-1SI1Sa}H~7 zMJS-lMg}8LI%{%g>FfZ*zN8$k%L(VQ_Gh{3>>>nRFT~Vfx&$dThHZmFh(%GGpOK15RM#kkRO5}E= zqJVq}zX5xNOcTgBE{;Ij21($#up$*QAQmC~LX{KC6*}=;HN?vT+@rZ-g_v@tU19hf zrsf$5$QTL@>KFdhY9C0Z}AU5W7-Kr*c z0m;DT*Q8pDewX@ac`R}d*q)2F&{X(_()}xLIu46hqPo#r5J)F_jST*kXC8b zA5~yTTrD{`Z2li>JDXrp(Orem# zjiD^44(zO-TM?=d`9sA&*rWW#gfWPVkc+jHJVCoBeI!2O8`>V%uDMPdjM@#N|O>|zWG zvjjU(*^}9XhNGJ@duodklwqRDiSKkc@Y775aJJGr(VS_i;Xjpg_&U4a6?WT;bbOsS zv0Q{Pw%O&@!LM0ig2@haD95VbzSeBXk6z|CkzccPx1h>+;i7cE-Wv&TTrh5XYg$_Oy6aN(tQS^sruuyAskV~9ozm}`qCD?c$GiLOsAaC$Sisd>JQI}=_HQ|^rmfS z(XL!jU+&zYw%YWddfv!)_P+D~t`6bzCn&2)CO4tW=^#uYVsNGDY<2@v98RFiyquyz z@9?`SUHcM!btrkx5RYPjIlyKL6>M_wcOzwAeCrnM0G5p1kKN*((C<@9WI~{J?3BH$ zrJwT^ZT*!=(u$osu71JU&LKWU57j`-RE?xWk~{~z@P|=to5S;TzrFwxT&?00jyx{j zOj*MJNa%@W(zw46Te4AlDboYtn;Yp1oVjbXI1YCPF6;j+NkZB9Kv6yoWs&iU;1zy_ zvQv4wacraTkHPIZBCB36vgT~>SZRb*i?tz?Ru@3gkl%Ksw?|Eo;x8wM9SYJmMCi2EHiO>N89B#c~@Fz-h2 zoNf8Scl7qVITvif596P1>|To$2y; zrik4>ioC1+(AKT(hdRS@M!?=~X9VQspC9guqtD}ZcUu+Pem`SgTj50A{{G^T8oG%* zn%qZVwGP!1er*5K3TCqNU>jk25)rJmHr5vbUm?C9d_6c?YdNC)!4|cJ+%whd&VLOI%p}( zOl6|;rD6}7Tf%Jhc1R?H;?BwhdT(wV*fH{dcmN1FAEMY8h zQayI}z_$3+XYF;{h}z9fG|4-UiZ64QK8~M%aunVZKXyg^j^)^)3!y4J#^Gfgy-CiY zpbi?f>14bz8TT^=8ER$y)iU|-M1AtA3TdMJ-t_KOcZw0+@R-!!ZrX<-yBQqD} ztlpX#&P*Wg{b^nE`GN)fUa@E3guEUAEOms8WTdeU+~=b;sjN5#teMc)+=}auB+g;mg{~ z82q5u>~oL3y7%@z@OXriuGz||baYe)~1w z5uzCX6=Q2zWgd~k3AgREU^+O0V)Y+ zNl1LqW4Mv_v0o*Rm8<$cYHk=j(&g{m)QgSav3iKJP_sfF<4t9q5(DcLV+3gNxK|S^ z)EtzY>K=dwi!Qrh_S_n5Xf5aFIRZYP=y`ehM9?-@FDhgeitgqz=jU4ZaxD!QroU@? zM`cHH*Zfdrr~;fP7jr8P_q4*8l1=wPJ0+&27qO&V6zuq8b<&D8*pI0shT5Kp&61IE zPrf%K&-M#hBsDEL01zc;=&{Vk`kbW-jUG{M{0$x!swULFu9LTdVO2Gwh^nKv&UhKr zszbKG4MYOm*uu*ZstRS#{m+9ctzdeBzK!ZCpm*lxCPKt0)$2sMS#YP-iunF4wF+0n zk#Vl%NJfHRZ^|-frI9+wYG_J^Av;@nQ+OD%%)%At1DnN&%!!!>j0O?8U16zwXVI@Qd~XhDH?)&Yz&G`59l z5G12-ppnZ@2u5qN_)4=}){8r6SCU4hoXCK!02BBBtF^j{9S)IJt)oSWX$1s8D<&Vp z{m_n;f}exsI2>5^oCTHx8OU!vOkUPI0C<~)zY75Ol=x!4y@79s^`|?9^|QB7k^UZO zY+p@G-;dH0xso@dbPD{7VBhau4d0sw+gp{>3f^3qGZA(pXJrkeEXd|6f>yc280hBJ zyX(FARL0WO=w+!zl%K1@XR1(ZFJkJ(ZkNMTpAeY`f5jCe`){Dnw@E=KE#gFe@b<%A5bKL%cp_*VKV3ZmSaeRCDJKNA0-$t#OFtzt`e? zh{s?g_%XtV8`#Evz80Uy`jWR8`|3-sq^7dN7Hff5tt>2jYcjpngo$-nR*Rvd*-M+w z;c=$ZDzDB-k7~=^V*@k7;ouC{*m8f_8I#29p>0-dG@e;}$;Bwjk=!fWpdl4{bZ(4< z)Zes52BCpO;QdAJ{^1JT3veT_9w*R}K@-)B0Wb}u9qdhwf=&oNk z=Oun=fEl0zOOJo+DVR3BYx)-37Q+@>(+<(1ZrI2LusQvrCO*ZivF}1ze5ChyOYy^q zam01;x1UoGV-dAkz+Q~jZkjR++W7h97de;x&Z97VuA-^2(s3kaXSDy+m79Rso~Oir zS!zw9I}yZdG;)yeH-qmZ0yTvZ&2Uo0!hAeOo#ABxp3xk+{AOzM59&SX^w zSgVVV#AiqOER_@GrI`$wjUX?Ztfn{Td6@HEr^V3y89bXzl0;i zW}`ZOq-2FautG9E(rXMFqZlaL2M3JJ&WGJc+8A~w;{hC!7Wbe}s965To32i-zpHlk zpUv&>at@*zwVTn6=v~^z-zF$#q1K^i6t^i!{3Y~g z&-^pmA9a4zxgi?7bYWCVb4|yf%&hmj-TGp)MY$-W->gM86C=}*5?eFkx4@Td>h2PgrVEGO86txveh!$=>j<9Lh{HY6f9G-@vug{UBC2d`8}$f zs?Hl9?VT1Z%&yuO69yeX;nM$v5+FRYPS2MC5DD#+2oAlP4obZUPW`Jy8<+U^`z5<& zT9ZYNO_NV2&1=(A9Xa!*-Njg{RLJC7v`QJ58Jlq-1Np%8fH1hSp5s zZkgK1r=V75fdBS6jy6{+=T?nF0- zUU5yOlFO?opxnLXdqKIBsu3BVfID}x|GZ!vuF0KhOf4gh8@KXvjb_8j=H-M-ty=sS zPylF-dvMRwlhdE$D#=^9v}%sRkm((&U=Y_nyOARqEl*7Gk8fM{Vn|*0zM%AK0u73` zNuf}w4Gm?h+}ej#j)usY3>bsCc@=1hN(px~A=A9y*tlh42PG+iD;|}c8}s`N80Q~K z>){_)e2Z$I6cmlMq4Lt8KY?z{&*4#N?EbP2s#c{R(PypZuW&v%}w}>hP$BNG{ z^qjTo8aqbOhub#3z~Nq8Od}U6;M_A{u#l;bpRiE7u2zg**;n;)NPYLd#EcN(>=elq zO9xrT)--t9){IKKlIVXAbkQB)xP0EiNQKSZVYWL}DDO~!_L4mOI%;eua*|9xtSVID z!)YasFs40Hos%pqc42daG+gu_R zpQA-@2dV7~fwJqfYqYK@>$<LOxLYJ^XsV#;-Ha3tr2gvGzT*rhr&0e+DB4YTpMn zm^&M6>q6G~u|DvqwC}l_D+LL08bmH4D)3b!KYWPmTEj+_3aP^XVPN3CZ{s3BBCj?0 zkqW88|KWr0;=R@ofmBEp{trOHR~v$1kz2(87CH|G$xp?aMTJ$*oz&|^^@jUe&-4E; z>kF;X+NiF&`>~q({SIS0VAQjJ-i_Ie*$E?=0k(RbPSwcnc{5wAWzW4VrKtXIv~H4Z z&6-EjbEdm#u`}m8KJ}@7MoXJGB<5vxJjs0f66)S{8gbyb8Au;NFt}qXw9zv|OmV=?ps&Y4t_KYIzC5r)?q*_VeTzBp_3x^L zwK!0ziqIVWnc{sF<=*M5<+@U6duIsiA^6uUn#!Ziqr9G-${NhC^T%3&UG?M~D_dc6 zoWZG+{;&K6gNHxny-^vM(Lcaz%HY7M9#%~&2aMg>*(2}%01?dq8 zAWbQiDZ%x``ixHy!Hd{wNnL-srBtU5eAUyAkNu5?9vL_>pwtML$vg0lNDK7eF%|ZDxob$1OqN$sbLHN3Z+Gg zj5jxkSiykDf!uJC65_;zJ%mAoNa-;U2oHe+>)H&3%rG#7A>`)4q!Q6nSCXRQa@nhk zGAU6Ob-1CgI)9S<3hRVyqjxn1b zOmhz}24%w;(f3i|pZVCM8X`9#yZQ{>42pvfZqKv4gTJ)bVAme>j&yN8qjE{j97}tD zVRm5`Gj9~$Uc@!V6|U)avML{4f7a7<+1?vmOu*ehlJ*Xo3#eeVb1@>8lS4 z>PVla9LWpLXBW=0$D{k3#e%3Hj)g{z|u!9Jq>$ko}SyP{amLSM27WX2`En$R;)I|Yf9m5*(@4tJ3L)dLK?ouk5DFM`Z1FCzgJ^~S z@PbL3YS!H9#)*%p!W|3w9GtTHo&q(o9fDm#4eiI4z(!@Zr?KogwC_jznt=2t8R=I} zAtIfybi0iLmyB~5_j{&h@6CG==V;GYAm{@~YEg?%wV5dEpktzS)lMDJ%}iaLQ>`Fr z3aW3cOda7k^FoHXr7bX7Llz>onKou<_0?XZDosQJ0#SRkL%^wMC8pDvKf(r+|H~qk z+H<#!4+4#7#K+6XDQZOJ#5xxk zuo9?C;L9k&1|Xox2xs(f6jsrZ!7tXRPe0TbIH5E3gGQ_tRo5^ee5FM}rId(c>8^B~ zb})TLZ>Ks2AH=jvt88pGCh(J49IM&3X4^>muuk@kvAZgr%_k7!0O0ZDUrIH ztFuUYw&b!M-juK{pCU^PjgY_&Z+Epq3~M?E#LGrx>7)!aY%xaW5ZZ83my}_J5KwTn zow6Wsp!##@FFesNxHr&m6|VjQ$zT8u{cg+WiWvH=c5ltzi|PwePL9b>M~?3+^;YDI zPH~cdwwU9@rVhrXp`MjVuA{(=COd^l$de8U4zKU@x}tL_srxG{H2MK9)*Alnt%-rd zX$hnX3hNuv5Q5_2nu5EL^2SQ?HyvnmOAwxlwMQESW`e1Y=-M9~i_A7t2|@=~Sue@Z zF~@pvl}Kq(O!f8>Fe*D!ptH)hI6S=1;|)o*mumN|qN;*eW}>>e;%0DDx4q@qn(zDT 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 literal 0 HcmV?d00001 diff --git a/pikit-web/assets/fonts/RedHatDisplay-Bold.woff2 b/pikit-web/assets/fonts/RedHatDisplay-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..af96eb37a524c981483bd94fecaba5d10222c8c9 GIT binary patch literal 13428 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 MX$?Gva~9zL1NS=SyZ`_I literal 0 HcmV?d00001 diff --git a/pikit-web/assets/fonts/RedHatDisplay-SemiBold.woff2 b/pikit-web/assets/fonts/RedHatDisplay-SemiBold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2ae32380629dd4cd4038d16c08d5a048012f2c5f GIT binary patch literal 13380 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 Vxs_&Mrwl*rJ8uzE>wmw4{vX-9weA1_ literal 0 HcmV?d00001 diff --git a/pikit-web/assets/fonts/RedHatText-Medium.woff2 b/pikit-web/assets/fonts/RedHatText-Medium.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f52ca258449f18134746a4561bc09f6ae573ca67 GIT binary patch literal 13272 zcmV;}GbhYhVS9D*JOU_Vn-K~zKlgia9%3ivGFKnsKr00A}vBm;;N1Rw>41P6!!3#mVy^Tc$WAT^83Rol~1`JTFz(P;^!Ya-)`of)Ot7Mw!6`~Tm~x(Rv6Baqhdnj2$c>^gYG;cLt}2X-B?j+m^N z5dUQNe06Tmyf3aYnUSn$H%LK8jA1t7;I5hwq&0!G|J7-0=k2BmryB`20`h@#{TlT!8i*4rhVCqpt&&_y3C( z<*Z+lG9d4r;mO<7I2+l_rpgp#N>dlPNI@7Yh(z@LvXXY5ANhgD^x(n)Ooo!)-aS*> za&FW&=h#2LacJcoHx7#+jf`UxT#j%-Ig2dSN_IZ8kI+oSVvI35op-~?CEoXJD~Btt z6p<1{L_!D>M7sC!m#>otiK`o1dXkQP|N6I|nnAjkF&hz{tgY$wuP+J=kh}RG-bh9e z7{y?m6q743wGJ~FFq0XRTot)IHI(wyf#hkRlc$AIo^}>_y1C?;rd6I9eDW+3k%s`L zi^q|_?e=CjC_mxQp$sTT0s4dhIsV9O2Ec#-K_PLGb6!)7oN<8yFzdq^k5OT~y4P_U z<>9yp(OqDGpd>8Jbz7PAFgIR5sDp!EKy*hngm4Sk3AYgpiUL|>rfI}<9=mxkBhhYU zi#=Qy@xwXO)Q|yhU!yOyF@$X{OT?!lHoeZ>!Q+(BGC7u3+uXvfIrgF?QMe7q-UUfB zILgNlGP-G*7>jU$MxWeih6jMc2)S2 zEaNdgBmnAQ>JG9`7>rC)y6=m=)UMez+O!UVrPsi9SHM$$KLK3$7Wf2?AQ2OmBo{hS zb&2#{zyxrIX!eEPsmmT?PI}k5PweOyGih(OccA4G-a4C5td$T4Aaap`w8YC-(2|xy zv^jU_K$~CBlpRLzNaDbZ49?c!oV91by_6hOflgTh09=ZwH*TjsW&B0p(*o0NAjxnw zfC2gT#(7||1wFO^hBez~`ORwJ6`XoSuof_bJ2nuz_yoiRF1;{_#~IbZAzE3h0xiR)Z9+}QXJ(_bIcCs$DxA0d?A}`r&(wN6@gjTwE#Sd+WFhFbFbnb)9IV$a&`VsBeJAFi z8s%ZRO{{kod59WYgn<=1StwnvEuVzSXz zih=cheM~y$s0<(-`z%D_b})ZXTjtKg)Yn|YOg~1v*+{@Sbu_8+E-{eN=@Px8e>8WC zj0xPc36?)h^^|R+drutY5791P9H$E5uq{1%=}Vj&&IND9DM1A3f4RL02@?k+dFwg* zi#44a!o}hzg!gnPN;okAsYD@?6;mj+PZl-3Ee1^5>43vtcl0;-w&OvyldU!E-lgRT z8n{2yMqWN90aFIt@TnnR`^FJJ`*}1e0O6m+a18T(Beqo+JCQd)if1jgczQkg&xM>_|Naz@(BGd8;Xh$l0u`XT! zIqd@mm?Ez?FD7rsjB1z~9un-;I-FB2Zh#rY%^N^+6%?R?FxjO9mp{tX2+-KICbmrF z`w|e&n>(r!kkDwa=E_Oh4It8pm~BMS>n8xKpa+x&v(hG&sXZJLus7!*1Tm2+*$^=m zDM(3t#~>X!F7JRYq_Z!s7B7HY^c?`E$m`9E$=CT4;2gOAC0vV(l@Jif2(f&0B7cpd zxek9^wW>n3p}11yid_XIG${O7Hs8DB8JS%!J_%ZnD?6LD&U^R5%p*vaDasfElAy5kYx>nGPol5T2QDKS9jPc?S30}2y;OA_Lf7&CELr-9F7Vnc z^n!6>7QVTuqO`pv+*n3JG6Kd_fL0Wwx<Z;?f4?c$UbdD>u=V2zfQ`^`yZGeLS99r9X3NNU#OnncOyQ6 zP!O0<1SOKuG~v*+N<1~aO^htITeAF?td(^cJ!`Z!uz8n}W9~sNQ-(b9DYF^Nhd?c~ z8A+1yw+g8$>Q`x8+C&%qIB3EcKpMo5;Tn0>=)tkV_`*b*JZSDXP&tT0bp&$EiOp=M zIRYn|3+DNqZ*G190ks>#+>~2xyW_5V?t9>2Jt{r+#8b~a_rgn`__V&ReDg;D2T(v=Ae)?5?U5Y{l^Xl7|r{#ZXdKQLP%WPTk3%r=J0aM#hU1VzV*k z{PJXaNiOdAXN}!~yQ!gKWORY1@cS(Dl44V~*|8I6?eY^>jduOFn{0RAdw2&G&@ixY z@I@$vghfQf#3c%>Kw!vv^m|xDTtyny=nNCZdyNu}nCr`}z+U38wKba$;+K??mPr=5 z5{+0d@`q=6~kJ-qM z+x{V;nKKqIW^R-FdidF+C(mBIdaL(bNLWNvOk83S>mt5Fq8hz{p-F3Gq6}&@(VKCC zS+BR2*#)QK&duB6S1ssDT1r|*R<7m0Qiv2YB`K?@RzsXFJ?WLMp1y%$Mi|$0+05Lc zmRnYv!)m^tJ?E&n0(Z^xJ#UOY15vx6@szt?IWfHee>w8N{Qn-nS*E75YYh|dSpKpQ zxc?d-E0TyKBc;Tcp7h_tNnq1w-!*3xWi7!D=M!$=1v~s1P0)lDMhQZ2LL#A+u!N_G zKaadl^f7Tp@+qlp%qGj*3=wLikU>EWEzmJAv9QDGg=;)~0z#sQX+psa1Q@a&eH(TO zQ6Y_L^eQH!K#Mt-RkP#hpgZC12u_j=DQOv5x#UR^C1n*=T|IpRLnGsw)@J4wwcN4V zdFFN*=wYTV=NX=%eCO(5f%+gc5uun%67K(7 zFz$wCQFT)Ho*-nwIjFlKCyy)QRFoRt+)yxe~ zK13NN)P5PC9WPr2CF*o=r?@@qs6NfY+c(p1nLlp@#N&M2f$eVf4{?kGzJOnsm8-UG z+?kmy%6m0^G+zoOmtP?$|2jnp$1~WCA(O@*Wh5L{Ii&j6ERK@Ai6JIm(hN5jwlriv z4WHkJfjB1Sm03319COVx--1&APD5VjT*;HKK%pYV zRnw?d*Xq|bphK75y}s_ab1JsB7=~dOhGBk6Gu&p{VQz0kkq1p(wO_@lmMlu| zX!z-|tb^{?ZHL~*8R170z9uviPKhuids1SrE#x9xJu*$*JccLFUc7p%_mPmWh^Uyj z#ClW>`4Dj&X;h;FCL#qn%AiIQy&3Dwde7>@ZEfbX+%YfkM}ncGrKDwK%hq*uCn`UZv>VO-PP%-o`u!K$Fyi?(l3)lh##Q`!Yx^rIPDBbiYSj#b8| zCNMdf`zm|W$#iuRZAiTr?IZ7?y<3kmk3I3!Gta&7(kDJWeY(8_7RZ(x`a#x;#*<`%U?Fl^7Fs-S+DhQ0Zv0W z$DEj~9SyWcLyz&qQ_np2!b_j{w7yQh8D#1XKKt!(_A0yhQcZ4S@7}`3zDd6GFJWvS z*XdhL^dYNOcdFETNix1D*ieM$RirDI`8Pcpb3Oty$qc6_Hvd!?G{cGbC%8EX6&}%8Nya8~ zGzPLh#E2CqUc#7oGJ_C82uC!bx0vA{46B|bJ%k^`A@te9y#CgPa(bwosCGW~$@Hcl zO@oB#G5+}EM-P|G$zHQZ?}T^#JWO@n?U{(KG{ZohKf{a{CE3p*0&IKLCmJ+lnD*4K zty|vBMDu6N=14VZtNk=6P_vEG{SNNyG#vr-3FDUnZ$o_rUfsZUFB~0lQeQ6+{i~(( z0nQ11u^vD>X}C8F2xt7I0BT(vj*0Iw$i$l_A$uv1G$`GE;ar4R#jVINRaeHQkdNSS z4KVC0q{|mUa(v2{CNaAxpAg&Ui`*-|+k=pg>U4o#FkaquX;M)0^S8;Mt}7p4m(Q9x z2q!Y2(%Mj@2MtN=J3up+>2ugMH9K=uFIKmX5x+qDcEa1%g2svKZRlMrA95?DBw zmK}HY(Vati0Q?_!Dz8LVqW~*JW+pK6T97fnZjmAlfEPMo{~4`~0ozlUj4g|pLO|GT z^G)PE$5pwyRv*^KOBQMxY6fZ{ssV*WVNe7V7bQWdQA4Q1F|p|NF~hMTnCiz9JGbv( zNh}gdZ6fB_6+6y4N8@G-P<1Hy9mhe5|75!n=vRRLDL`ih{@?8XbAR%W*k+5()&=n4 z`4Vn?-eI?hlFx45?(LcnKK&sd5DlRba2VhOz!_!(S>My$kQGDo|A!iblX710gZWO_ z?||q0XoWqNd&Wwu{O&h@c)}?MZ8h$w;}&?yUQrFBW_m6g$FNWWhVnq`KWM$9&B4!!~FthdPq8*P?{=o97u zG6hhxf!~2S&jE{^4#036Q2zo502CGiiC9sx1H$O@rK%&&^!gm{nzZr@l^%cR-<5Fd zLo_r(s12zpAUkgS(t{r zB}mR0zpU89wdio1;dp@bwO?z}JTvC#g11+mGAC^jWf@G{Cgx7pDtKd4{*@(NI(k2? zF^3|Vi=;E{l2jDWoH{yJX$mxu-?Y`ynx%a<@hk1==P5P4b2qCGtHswL5UKjU-`AdO zVD*wjDSau`ulaMCkx~79_fI;P<_?)EHy79sBjV(1zM|-cj zE61nSz#(&J>jWUY9VAnKOi8TDM1)85R{W|UUHsh4jbsIhIpTbf;U552zj^olP7!Bo zOjbnRQ=$?{SEi&2U_u4&OHYv6)Jg#XfR*j^A{7(idc;(MQ9_ON1VQ5@3k7(MHPs$9 z&n>9%YZzhB6=VkX0-tl_7d#iaD?R3}9M^C`cp0LSdakLZI)wByT#R=QnC_M4%B1M;s^SU3}v)rDU z^@b?3K|Y?f2KOa9U7^rpf;?d-pd8msPDa8-9vw7sX*oA=S%LpCCq(&; z%M1_nNI-#}v`)x8z(b}-9ESM;w4D-9X=;`Efw_xW_mJhjIm?hdFimg$*%5P7&2;qG z8g9sW1~$+sfZH@xr5N+?D(8~3ZEYls@HE)}Q@@h&I6T>-bi#S(U7|g}slJKu##MeW z8n~hGo>B{h2gWOQe`Kw|k+EZZmm@q6)^piO7MnX8~u-W30y z+C6bc*4}!a7Ir?=u@uSRD{|)ySh^=rtXpl};cfJ*-n{{^Qe0hV>2sug6n%o8^@HXa z6n^{0dU3TcEE(f;flQ@qhwRAq0G~aR9`9+=7klMknpvbWmWgX>3mWr9XBp56ddHg5QLrWTD)+ zlcSMt?KzKe*Yd?KaJa^+`+~AMCj3mZYZt9wxp(hUR8|czFE?qwdjIxmwz&~&>I7$U zjB-8rsh1zSs^wHJ9vC~Gbr)^DeG-xjLlf@DvQtx0C4BK>eZ^~O`-shs^~#-wXC5sE zize-&g>0xZ+sd&oHSYau=8VFVwl_TZV(g`j<7;)gbh%3l{0DIlG2WA_S3kfDF3~{> zF#gPRjPSFu-=lfw6ijNAR)AE@=(vwR7v8R%$B1TQEq5%I5pvHWJGSO*XvPtPG_jy` zbXT9HP>un_rJEbAc|Cs>6XV^5qANgsz0@!&h*#Am;%s%d5+0;6hb~gLY!|tM>1X2> zSyY$(X4`nXdl8>!k1nVK@REV~crE#hf3N(L|Iqf_&ZVmjX)P@uWZ@`gF@V=xC#cN$ zo1G?XxKb1V;0W=JbPxB@D7>G311H#D0?9igvV1Sin6ZCP5)0!iP2kjW6gS)mBo3RO84{!pYG_^KB+d~^Yy&GELC@Ty@8)w27?^= zWjTW+3Q%NX9CMMPFgD)On$3172W<4%BP~5+Xg~Ql;&38?$E~CLYREZ<`R2ab+L4t^GBZ}4h>zKk-l;?e z82dl|Fv34Rxm>CEI^X5mB|7UIllYDfCFH%ay>bqz93{3J8$2+8feu9X$cKq}@LXX- z9(;}FavKQd%N$_~OAAmVIT6n~*D)tGF2H#~$GHFtSkE4{optOtXC)QkgjLixI`U8Kg*^d*!eR| zS|7Q&FwNxnsabD7Dxq=of_RwyQ3t;CfRBf?H+8!osCFogW5NK!)3WthC$rJE;R9BNVW>67t&LGm1!(YcS=O57*{25t zq-^JU9jxIViyG>Ay?A42dtPtdP_5^Uss(Q51{b3$ANd#qP<7k(m+!VZ+oo=d=w_=g zJ?^j(cD%p3u3ontvtWGb+3ZEr1z5VRlZ~NC_N1!Fj&ToTj>2fYx6@M!FBj_h*k>

eh52bs6@?w2_rxMT$B*9sg?H-Vc`+nmvs4nvd9V$emk6R! z!D6#n!NB2lm0}2w;DOCzjWI=B4_=|hwh06b47{5wim@z<>H8kxwm-O?8j~j!(mst= zn&DdVv6-$MFfZT-gWUN>qXL1?V+P9Hz2v;h#qr{suO-6*50VRRz~V3pJcG@Pge)6P zCMy!fWtrWZgK$eAr0Ep~s`PNr7Z&bWs=yV?#lU{FnFNK(2d6ab7XljExHg;V6Hx*{opTUdFbcp_}c(x2Q2~ z0s#X93pP_Zk^2F6POR$`h$G4t2L5@ayI9hDQ~@dYJV-7-26}LOCC6Sx1Nix95iLVm zf>5&Vmc-lDgKRPFLbh^14iak8d`U2=ZH(XFNE}^Od!TOQv1obQ;L8bDc;f zRCpml7emI-!Xs$vYE8+)>Oh4rpp(mkS)R?dhJLQuuj?a8DL>HR1k%d6Rq1K*4!c4d znQF^Q|1Rza?LENISN~1R|Joi{4efubeye z95_F5ZgvWcLU!{+eV>8!yr(MbMT3&kuK(<7&ptZ+XzV{%X=>e-sn@0gcv$tpv77SS z@+DTI3ZT1Jz((_vNc(cw8bSB2*_l43J^y3!s^Q9`v|V=@+5EHbtpOd&pDi8Cfz z0Ay)3L!c`Hqgb>Qwe3u&xAQgje1qZV5XO<)_oY3ZuW+{CTqwFoFmY#{?C!s?)*er9 zu-#d}cH?Dh#r5_KZ{XzD{_Hn;QP(LHM-*~#*ameMN5A*879RiK-cMk>ZURkBr!$nT zSSc1N|6RmcBx%x4J4JN#a-z|$pjX$=du%{tpTW*#V)iX{Y@LHMW*6EHooEi1W>uUtXeg!H>ifPYMrE$s@LeZ z{f{FnD0m&6j@K*5WZeH-H9CDK6;x94W$NavPA|)LK}xC-^-6XB^e_5VyKT7AAns$s zTmFx*R27M+W73Iw6&Wyi`av}`WHibLGitTA3u+!THD-NJD6jseg_jtrx%vP^x39I=I_LthLe|(sa#za zQVto7x^Do|>-(2rHFP2J4_G6EiPir|CjS#PX8zSMJOY~6ul4En+6jifyNsx#r8CKW zhi*()8@C|POYlld|Ml;vw!R^{S7TQvSEeYa1S9yNNRh$x^NdJ+J%K)q ztS#1h%k^bCNW^5RJp>6ag7}4J^ciai#9tfhzEAinjiq|En87!+Q2>HxwrDl=@j!f4 zf9;;Jz!<>)Pndee6VhtIk5hOZbefHC%#uYC1sBsROAg!{aNM@hzmwz| zId@XINAnhBS7qn^W@0{4)B|E)o?;@eH0H`z!axMPfC;(@G!27BSGciKtpX_wv#&_% zA|}4}k$9RkBy-+?UUhX2i7d{R?ugJY(Vh6WDNKg=Yd*CZyKcPg{Bs!gG7KgS;(sDu zf{aoM;@g_4Y9y|v<9=K#?t`MOc#@xjJ@tkuxuF&QA>9Kgp1M~l?^8qK&bX{a*L;z%HCN zwD7ch6r=|j_-7fY9)4Whh`Y1%nTz$fU)eH^Rr&Y8?*>VCx74VNQut;z{^a6SFHM`u zz4gH(v4*ct`9LaHKL9C*4IcW{ZHbE>{~8lDYr0g;L&5#+i4~pV-+$jNl7}fj;0z2V z&UfFp`bUI2g)V&`8r>%Z6fUW$=BpESnc))J$1^I2vXG9ft$F*hU2c2>?dP#6J$K;3 zH~;ojlg`@k>HL0Pe`hu!R#D&#&ZrMRJy%wd{cGy&H}VrUsmj>*QD zZnca;2>04pMVW%!bNl%@i`Die{sUgi;@pp4-fBeOL}6dW*M~@p397mm;T;{_)0WgU z@GLS=-L-$|ra4Q&hqgjn^V$s-w|QMfzi;NsY^ViJH>=D4ol8bqewkiL-Q?+?=8~>0 z{7Kccb}+WeNHKz`j>gtT_(FsC^+&tm8ukNeHR#aaDD+<;v>oyn8ufQ*(xGId=LL_X zek0WCCisKHnsD_g(I-XMZ!Qd>Lo}^KAXYZ@*9g=cR!zxQVp44?g=3u&>uoT9c`tz6PAV4l$^U1wF5?Nv;8>KBZ4Em=iSmuPo-T zVE)^PXOPIJ5r~!4Y84QE6YdBDIY*2mpIBMlW5Q#}B!PkZNc16D>eiw~soV5d3#i}S zSQgm-+5P|!J#4n{YB~&mH6tp0t?p4oAD8WuW*qKnS$*B9(Yg16(93aYz zdbkwba!qX$VK=h&d}9J@u5VF^7#!7Si=|M^;bgQo-lXV8w5!sI3w>4`$66X%lVV2?933@z==N#s*qOF! z_awq)SYCZ_=tQ)>{<)n9@>}5P13VX->E;PoZYP^ZF{6&A@mK2Lx7Rl{?YaZ6+r;y~ zY(%k+80QH>lX5U{U!!4xAQ<5-wwQTK2&k4`Bug=@PFhATr}bK0o{=?o4hfY|fqcLN zuD~bYwu{9ImJAjfjbYr4sd_t2EGO_Vaq&4>u{wtr1Zclii#>=9%ZP~ z+B!T>VKL8^ziN_x>|yeZDSwsaagE|HSS7EhlKWAF;)N=6Dq!S!SRa|Bug;c(e^tIs z{rJy0?l~^h{>!f#tMpEVt1lWZ@V59gF~U)nQ^PTrzVwQ<+F+9lx$Y20G089c^w`uV z@J%!RvoogeB%orbYEU-N{cWNkrPbmLMts{V>BV`;lgfU*^m23k`K8t9CV45??t|UL zMn%Iz(F6D^;Pv{-D%^AA4Q!Y+M&;%oQ*+NaPzA_WH$|iVo>x&{D zLK2>|StWxJ)^xsTJ=E%%TF7x6AnxWAi@$Mk#3>+q^N{M0@({HA&w;ZE;Hx?cjVs4h z<4b|8{+7o*NSW8?Uah$mO~lR&8qGVdqf&J`g50(4zZ2MtS{DZNd%Ak`yG^wEnRL5* zx^#O+y2Apif;wz>C_o4hq76Ijv`;6nzhw?DvRA9gfxV{}1^Q1fJl-B^Kawe#U;)gO zXOYM7bRz3Gw7w(Ci8oQDwzpMP1ZA6&Jr7K0CHO*3S||<6A$h7_YD}?xw8CW!hla)= zD==mv!K6R|Dz?t_sCM@csCLmRt8IqI8t5MaEqwR-YbzNHrba=SVP{o1#zwE3h8^P7 z*?&ubHhAKvb8;;A$#mbg`nX*}Zn^cyRf z52CPjRPcpfv(<%>Fw}4twrOJaa-Mbz_d2TylOyo0xa|h@y~QHEwwvAT6N~hoU7B*Y zM=FKdhj?Jg={|qt%*+%1p#Mmy_&ysn;wMr;rSZB4%cHB%R+7}Mhp?)t9CJ-Y`q`iX zcB5Baifc^q#6h`EnVum9sv^&#R>RZDtmD}Y!3a0jM3vg#QC1O^?Ml{MFjH4Va6Xm1 zvrlR|NJpcQ|7@3clkpEQsBPO2hPkAjAPt*`xT1oLVnb@}Z}tdz z!)uyVR=PTxrONhUu4xB;TV+#I!;5)oSLRWrqI}Aybz5FArn|^(ifbZ3Av&U zrz-+MY&jk7qmtq8ibSvC@vq{ask^|}Q4KZ9f<#&n$mj8%7_I!bqKaQ1xo7$Ok5q7+ zNG+x}Zu=_G~&cs0liWDkT~8% zH;cjh9gYi<({DQ7ridwymsgIAfz30aeO1SI)HL-q)LWaTep~ws?D;Px&rb4`qX!@f zi*J>KQ!_QLpv~Qpun6uJHndG;uoRMl8aYoPVzLcN>46%@Zv)E^jmX+sI*`rV)^x3< ziob;f4$N$}h^S3-VK3CfDS81Px3aMjPJRJ4w~1yFO5dn0t_mxz70<43-2~iRU2B3P zO|{kSVA8F22W_s7B&#MmyNMuMi^0(=n-5e+B*s%O11BjBCj97rP@s)Pd4GU5klIL; zs|9U*>bO9pJLeud2Ocjwx!=40WZ?Zwz%TLc^AeDG{PO;BW?x_*9lRerGooAjbglcY zC0%;mGo5iQK>Zf65`kEeSqXnSXKe|Y{PjB;i#ph5uCP{!>n3jYiJQAADgqHAl8H(c zkwVb`K}8w^sR%nT027Da&DdA~irkToj{XJ*jnQCR7!0ilg&)}JsdQ`ogK#Jr3N383 zGiVKt1;Nk=U)B5820GQ=@L(&0uA`An3>Mj_qtR*TCmUG|0viQ-klWMSJAZo=gO`4r z>wVY!+tV00bA4yAz4T=EUedX zdFZmMQ~lAY{nB=9&iAsnQ+?Vzen^&!DNi2c>>{RA1pCuyJ^*Be_`US({Q#K5;C_C5 zeqC-_Nk~(E?I=w-!n9hAxnoYgNLCuk)~Wwita2YvK;G>e&jvXAnRsph!}s~xwIq?VP{|8h zAAkv{huSuz+r7qPiN8|BEp~&s*fueaq;BL}mD2)b2M+2V0@<{4rv5dMwGQjI0B=*t zEqPwQR}aN}47|rp}TA|YRB-`b=*#-s2pC$TN>+i{g7Dw3J28euj`n8uP6|7r?~xo znHn0Xl@$IiG6DzxU|s(=+{9E@ZqP(ePtCkhmpZ@L|JDz6QNSm8obQb=FRxA@@^d!F z+!{v?AAfXzb*jqA12TTH#AZ%qsG|8dSV{X5;Qc%ML;xR5t=?kd{7y0dqx}V#AOQlt zSH&7uDH^v$k1EgW#?*^Y?h9a390MK}PFgCbW zObQ;ivQne^Onr7haqUz?Dya|ER*lkHLQy_OED>Fvq%FqSVp+_KP`MDtnX~x*!)fZX zHutcWu95N_x3uelgAuKLe?-?IGIwyG2GH2Q;{}A$Mt)Exc zS1;ZtfRj~1TIrdru#$6?U@OUEwK+dO1pgGh9{eKhX z)mhQIb0@Qdrl=XEDQ*tHY~|&Bl2U9vfL1=1O_+JT@A!+ZXX#EILBn+p{()cPDD@?i z1V-A+bHGYpdHrnv9-MgK_e)%bs;oBK56!|Y19T1GkDdIm(Fzkn6$128(tYqG*LXp7 z=%xkA^=;}SR~M_sh~~0D#F|9MIV@^()KBg8=I&BOXqW0*EPZ|-+hnrx3AmF;yvHAD zBYqu$iCXWhTDa^p&`P5O!eGUq0rL+5^!_graEg!2(QlbE@<68OR-nmbvoPAWXSOrz zq+uHHV7L$_Bzi2!n*JDODfU8JDvU_%2(!hS8x|_04F{>iI4xMI*zSNvxW^coK`}ne z2lm#dS44)vP`2)o7UPx3q;#&rGDQ3;4D02D42r%bhEllir6Yzwqx%h#U}7pCla*e? z&?Oj#A$n5uZ6>BL*=U(FMX&f(HN6z^7+GSbPli{{#=yeCU0X|8KupXRGaGS=6r!h| zUbdBL)bXPsefrIk<-M=!y_Pm7haBvc1>6aAs#+K zPDBjmBopx4om&yMCgkp{1i| zU}R!uVP#|I;N;@g%EQaYFQ84k4r$$b?9wHpSD*Lv%NjJ`M=K4PVP=K488OQobDc2T zZu9(VzJ(T9;Abz{Zigau)_C6sKJlf&FZ1P{v^wz*Y!-?lvEiXxmRI9m W&r&p$?uqYAksqUcA#Y;TDOdwxkG{|V literal 0 HcmV?d00001 diff --git a/pikit-web/assets/fonts/RedHatText-Regular.woff2 b/pikit-web/assets/fonts/RedHatText-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..af2c1972e85375218ff8d8c3c43e546483915edc GIT binary patch literal 12840 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 literal 0 HcmV?d00001 diff --git a/pikit-web/assets/fonts/Sora-SemiBold.woff2 b/pikit-web/assets/fonts/Sora-SemiBold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..10ee77390653558b659e604fff84bbaec0c4eabd GIT binary patch literal 13592 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 literal 0 HcmV?d00001 diff --git a/pikit-web/assets/fonts/SpaceGrotesk-Medium.woff2 b/pikit-web/assets/fonts/SpaceGrotesk-Medium.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..13ce8422afe9f7ec5d8811446337910da30d0d30 GIT binary patch literal 11916 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 SV}*ljO_`;B)c?cYa+3fZ-zO^o literal 0 HcmV?d00001 diff --git a/pikit-web/assets/fonts/SpaceGrotesk-Regular.woff2 b/pikit-web/assets/fonts/SpaceGrotesk-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2cc29e998a9c3e265a4bee502b3d4b6dc0338c63 GIT binary patch literal 11932 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