From cc309da062190dba2ad7a7be381ee1892986421e Mon Sep 17 00:00:00 2001 From: Miles Ward Date: Wed, 29 Apr 2026 02:47:00 -0400 Subject: [PATCH] Initial commit: PXEForge Phases 1-4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Container-native PXE boot server in Rust, designed as a clean-room alternative to iVentoy that never touches the client OS trust store. This is the first commit of the project; it lands the full output of Phases 1, 2, 3, and 4 in one shot. ## Phase 1 — protocol stack - 8-crate workspace (core, dhcp-proxy, tftp, http-api, iso-store, ipxe-assets, webui, pxeforge bin). - DHCP proxy (RFC 4578): replies with boot info only, never leases — sidesteps CAP_NET_RAW. Architecture-aware bootfile selection from option 93 (BIOS, IA32, x64-UEFI alias 0x0007/0x0009, ARM64). - TFTP server with full OACK negotiation: blksize, tsize, windowsize. Without it a 1 MiB iPXE binary takes 2000 packets and unusably long. - Two-stage iPXE chain: firmware PXE -> TFTP iPXE binary -> iPXE re-DHCPs with user-class iPXE -> HTTP /boot.ipxe -> kernel+initrd. - HTTP server (axum) with byte-Range ISO streaming and an in-place ISO9660 lookup so kernel/initrd are served from inside the ISO without ever extracting it to disk. - Linux ISOs boot via kernel+initrd extraction (memdisk/sanboot fail for >1-2 GiB modern distros). Distro-family detection drives the cmdline (Debian/Ubuntu, RHEL/Fedora, openSUSE, Arch, Alpine). ## Phase 2 — UX + Windows - Hierarchical PXE menu (Default / Installers / Tools / Gated Deployment) generated from settings — no hand-written .ipxe paths surface in the UI. Number-key + letter hotkeys, BIOS+UEFI variants for some RHEL ISOs. - Gated Deployment "horse-race" queue: clients join, operator picks one ISO, every gate launches simultaneously via tokio::sync::Notify. - Bootimus-pattern Windows: WimPatcher injects a CRLF startnet.cmd into boot.wim so vanilla WinPE net-uses an SMB share and runs setup.exe. All Microsoft-signed; no test certs, no testsigning, no httpdisk.sys. SmbManager supervises smbd start/stop/SIGHUP. - Netbox-style dark UI, fully offline (no CDN, no external fonts). ## Phase 3 — MVP hardening - TFTP retransmit rewrite with explicit window tracking — UEFI SNP clients no longer hang on files that end mid-window. 4 new tests. - DHCP broadcast-flag honored per RFC 2131 §4.1. - Multi-arch container (linux/amd64 + linux/arm64). Entrypoint chowns bind-mounts as root then drops to uid 10001 via gosu. - /healthz + /readyz split from /api/status — readyz fails if no iPXE binaries are bundled. - pxeforge seed --from CLI: same pipeline as web upload (slug, sha256, introspection, boot-entry). - All timestamps RFC 3339 (browser Date couldn't parse the 9-tuple). - Gate poll retains assignment until operator releases — clients that retry on transient network errors reuse the assignment instead of falling back to the menu. - Custom OpenShift SCC: hostNetwork + NET_BIND_SERVICE only, no NET_RAW. ## Phase 4 — UI restructure + remote storage - Web UI rebuilt around six tabs inspired by the iVentoy layout: Dashboard / Network / Forge Gate / Storage / Terminal / About. Old "Monitoring/Content/Configuration" sidebar groups are gone. - NFS share manager (crates/iso-store/src/nfs.rs): mount NFSv3 or NFSv4.1 shares as ISO sources instead of uploading every file into the PVC. New IsoSource enum on IsoMeta lets the store resolve Local vs NFS lazily. Persisted to /nfs.json; failed mounts surface in the UI rather than blocking startup. - Dockerfile gains nfs-common + iproute2; mounting NFS in-container also requires CAP_SYS_ADMIN. Documented in docs/architecture.md. - LogBus + tracing layer in core: 500-line ring buffer + broadcast channel feed an SSE endpoint at /api/log/stream. - Operator terminal at /api/terminal: whitelisted commands (status, isos, clients, gate, nfs, smb, log) — deliberately not a shell. Output mirrored onto the LogBus so the live tail and the terminal pane share one timeline. - Network tab: read-only nic_name / subnet_mask / gateway probed from `ip` at startup; only DNS server is editable. Editing IP/mask on a hot UI would silently break PXE for every client mid-boot. - Bootimus parity (releases v0.1.55 -> v0.1.62): amber row tint on un-bootable ISOs with inline reasons, dashboard "won't boot" panel. ## Tests 56 tests passing across the workspace: - 16 core (LogBus, gate, settings, arch, client) - 1 dhcp-proxy (raw option-93 extraction) - 8 http-api unit (range parsing, terminal split/format) - 13 http-api integration (gated deployment, range, settings, NFS, terminal, log SSE, network endpoint, ui assets, no-external-urls) - 12 iso-store (introspect, slugify, smb, windows wim, NFS options) - 6 tftp (RRQ parsing, plan_window edges) cargo build --workspace and cargo clippy --workspace --all-targets both finish clean (warnings only, no errors). --- .claude/settings.json | 16 + .dockerignore | 38 ++ .gitignore | 13 + Cargo.toml | 90 ++++ README.md | 290 +++++++++++ assets/ipxe/.gitkeep | 1 + assets/ipxe/ipxe.efi | Bin 0 -> 1148928 bytes assets/ipxe/snponly-arm64.efi | Bin 0 -> 329728 bytes assets/ipxe/snponly-i386.efi | Bin 0 -> 241152 bytes assets/ipxe/snponly.efi | Bin 0 -> 287744 bytes assets/ipxe/undionly.kpxe | Bin 0 -> 71154 bytes assets/ipxe/wimboot | Bin 0 -> 66560 bytes crates/core/Cargo.toml | 26 + crates/core/src/arch.rs | 151 ++++++ crates/core/src/client.rs | 100 ++++ crates/core/src/config.rs | 168 ++++++ crates/core/src/error.rs | 17 + crates/core/src/gate.rs | 254 +++++++++ crates/core/src/lib.rs | 19 + crates/core/src/log_bus.rs | 200 +++++++ crates/core/src/settings.rs | 187 +++++++ crates/dhcp-proxy/Cargo.toml | 20 + crates/dhcp-proxy/src/lib.rs | 23 + crates/dhcp-proxy/src/reply.rs | 122 +++++ crates/dhcp-proxy/src/server.rs | 236 +++++++++ crates/http-api/Cargo.toml | 40 ++ crates/http-api/src/app.rs | 680 ++++++++++++++++++++++++ crates/http-api/src/ipxe_script.rs | 327 ++++++++++++ crates/http-api/src/iso_fs.rs | 112 ++++ crates/http-api/src/lib.rs | 24 + crates/http-api/src/log_stream.rs | 66 +++ crates/http-api/src/state.rs | 38 ++ crates/http-api/src/terminal.rs | 524 +++++++++++++++++++ crates/http-api/tests/full_flow.rs | 470 +++++++++++++++++ crates/ipxe-assets/Cargo.toml | 16 + crates/ipxe-assets/src/lib.rs | 70 +++ crates/iso-store/Cargo.toml | 31 ++ crates/iso-store/src/entry.rs | 39 ++ crates/iso-store/src/introspect.rs | 155 ++++++ crates/iso-store/src/lib.rs | 31 ++ crates/iso-store/src/nfs.rs | 564 ++++++++++++++++++++ crates/iso-store/src/smb.rs | 343 ++++++++++++ crates/iso-store/src/store.rs | 430 +++++++++++++++ crates/iso-store/src/windows.rs | 209 ++++++++ crates/pxeforge/Cargo.toml | 32 ++ crates/pxeforge/src/main.rs | 372 +++++++++++++ crates/tftp/Cargo.toml | 20 + crates/tftp/src/lib.rs | 17 + crates/tftp/src/server.rs | 443 ++++++++++++++++ crates/webui/Cargo.toml | 12 + crates/webui/src/app.css | 371 +++++++++++++ crates/webui/src/app.js | 696 +++++++++++++++++++++++++ crates/webui/src/index.html | 54 ++ crates/webui/src/lib.rs | 29 ++ crates/webui/src/logo.svg | 14 + deploy/docker/.dockerignore | 8 + deploy/docker/Dockerfile | 97 ++++ deploy/docker/entrypoint.sh | 32 ++ deploy/openshift/00-namespace.yaml | 11 + deploy/openshift/10-scc.yaml | 80 +++ deploy/openshift/20-sa-pvc-config.yaml | 35 ++ deploy/openshift/30-deployment.yaml | 104 ++++ deploy/openshift/40-service-route.yaml | 43 ++ docker-compose.yml | 66 +++ docs/architecture.md | 270 ++++++++++ rust-toolchain.toml | 3 + scripts/fetch-ipxe.sh | 83 +++ 67 files changed, 9032 insertions(+) create mode 100644 .claude/settings.json create mode 100644 .dockerignore create mode 100644 .gitignore create mode 100644 Cargo.toml create mode 100644 README.md create mode 100644 assets/ipxe/.gitkeep create mode 100644 assets/ipxe/ipxe.efi create mode 100644 assets/ipxe/snponly-arm64.efi create mode 100644 assets/ipxe/snponly-i386.efi create mode 100644 assets/ipxe/snponly.efi create mode 100644 assets/ipxe/undionly.kpxe create mode 100644 assets/ipxe/wimboot create mode 100644 crates/core/Cargo.toml create mode 100644 crates/core/src/arch.rs create mode 100644 crates/core/src/client.rs create mode 100644 crates/core/src/config.rs create mode 100644 crates/core/src/error.rs create mode 100644 crates/core/src/gate.rs create mode 100644 crates/core/src/lib.rs create mode 100644 crates/core/src/log_bus.rs create mode 100644 crates/core/src/settings.rs create mode 100644 crates/dhcp-proxy/Cargo.toml create mode 100644 crates/dhcp-proxy/src/lib.rs create mode 100644 crates/dhcp-proxy/src/reply.rs create mode 100644 crates/dhcp-proxy/src/server.rs create mode 100644 crates/http-api/Cargo.toml create mode 100644 crates/http-api/src/app.rs create mode 100644 crates/http-api/src/ipxe_script.rs create mode 100644 crates/http-api/src/iso_fs.rs create mode 100644 crates/http-api/src/lib.rs create mode 100644 crates/http-api/src/log_stream.rs create mode 100644 crates/http-api/src/state.rs create mode 100644 crates/http-api/src/terminal.rs create mode 100644 crates/http-api/tests/full_flow.rs create mode 100644 crates/ipxe-assets/Cargo.toml create mode 100644 crates/ipxe-assets/src/lib.rs create mode 100644 crates/iso-store/Cargo.toml create mode 100644 crates/iso-store/src/entry.rs create mode 100644 crates/iso-store/src/introspect.rs create mode 100644 crates/iso-store/src/lib.rs create mode 100644 crates/iso-store/src/nfs.rs create mode 100644 crates/iso-store/src/smb.rs create mode 100644 crates/iso-store/src/store.rs create mode 100644 crates/iso-store/src/windows.rs create mode 100644 crates/pxeforge/Cargo.toml create mode 100644 crates/pxeforge/src/main.rs create mode 100644 crates/tftp/Cargo.toml create mode 100644 crates/tftp/src/lib.rs create mode 100644 crates/tftp/src/server.rs create mode 100644 crates/webui/Cargo.toml create mode 100644 crates/webui/src/app.css create mode 100644 crates/webui/src/app.js create mode 100644 crates/webui/src/index.html create mode 100644 crates/webui/src/lib.rs create mode 100644 crates/webui/src/logo.svg create mode 100644 deploy/docker/.dockerignore create mode 100644 deploy/docker/Dockerfile create mode 100644 deploy/docker/entrypoint.sh create mode 100644 deploy/openshift/00-namespace.yaml create mode 100644 deploy/openshift/10-scc.yaml create mode 100644 deploy/openshift/20-sa-pvc-config.yaml create mode 100644 deploy/openshift/30-deployment.yaml create mode 100644 deploy/openshift/40-service-route.yaml create mode 100644 docker-compose.yml create mode 100644 docs/architecture.md create mode 100644 rust-toolchain.toml create mode 100755 scripts/fetch-ipxe.sh diff --git a/.claude/settings.json b/.claude/settings.json new file mode 100644 index 0000000..b9a1991 --- /dev/null +++ b/.claude/settings.json @@ -0,0 +1,16 @@ +{ + "permissions": { + "allow": [ + "Bash(cargo check *)", + "Bash(cargo build *)", + "Bash(cargo clippy *)", + "Bash(cargo fmt *)", + "Bash(cargo tree *)", + "Bash(cargo doc *)", + "Bash(cargo test --workspace --lib)", + "Bash(cargo test --workspace)", + "Bash(cargo --version)", + "Bash(rustc --version)" + ] + } +} diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..e5fd138 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,38 @@ +# Keep the Docker build context small and fast. +# Anything the multi-stage Dockerfile actually needs is explicitly COPYed. + +# Cargo output (huge — ~1.5 GB locally). +target/ +**/target/ + +# Uploaded ISOs and per-iso scratch (runtime-only, huge). +data/ +/tmp/ + +# VCS + editor noise. +.git/ +.github/ +.idea/ +.vscode/ +.DS_Store +*.swp + +# Claude / local tooling state. +.claude/ +MEMORY.md + +# Local operator metadata. +/private/ + +# Never include iPXE binaries pre-fetched on the host — the `fetch` stage +# in the Dockerfile downloads them fresh inside the container so CI/prod +# builds are hermetic. +assets/ipxe/*.kpxe +assets/ipxe/*.efi +assets/ipxe/wimboot + +# Docs & meta. +docs/ +*.md +!README.md +LICENSE* diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..960fcc7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +/target +Cargo.lock +data/isos/*.iso +data/isos/*.partial +data/isos/*.meta.json +data/work/ +*.swp +.DS_Store + +# Per-user Claude Code state (project-shared settings.json is committed, +# settings.local.json is your personal allowlist history and shouldn't be). +.claude/settings.local.json +.claude/worktrees/ diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..b74258e --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,90 @@ +[workspace] +resolver = "2" +members = [ + "crates/core", + "crates/dhcp-proxy", + "crates/tftp", + "crates/http-api", + "crates/iso-store", + "crates/ipxe-assets", + "crates/webui", + "crates/pxeforge", +] + +[workspace.package] +version = "0.1.0" +edition = "2021" +rust-version = "1.80" +license = "MIT OR Apache-2.0" +repository = "https://github.com/casperadmin/PXEForge" +authors = ["PXEForge contributors"] + +[workspace.dependencies] +tokio = { version = "1.40", features = ["full"] } +tokio-util = { version = "0.7", features = ["io"] } +tokio-stream = { version = "0.1", features = ["sync"] } +futures = "0.3" +async-trait = "0.1" + +dhcproto = "0.12" +socket2 = { version = "0.5", features = ["all"] } +bytes = "1.7" +nom = "7.1" + +axum = { version = "0.7", features = ["macros", "multipart", "http2"] } +tower = "0.5" +tower-http = { version = "0.6", features = ["fs", "trace", "cors", "limit"] } +hyper = "1.4" +reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "stream"] } +mime = "0.3" +mime_guess = "2.0" + +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0" +toml = "0.8" + +tracing = "0.1" +tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] } + +anyhow = "1.0" +thiserror = "1.0" +clap = { version = "4.5", features = ["derive", "env"] } +uuid = { version = "1.10", features = ["v4", "serde"] } +time = { version = "0.3", features = ["serde", "serde-human-readable", "formatting", "macros"] } +sha2 = "0.10" +hex = "0.4" +once_cell = "1.19" +parking_lot = "0.12" +rust-embed = { version = "8.5", features = ["include-exclude"] } + +pxeforge-core = { path = "crates/core" } +pxeforge-dhcp-proxy = { path = "crates/dhcp-proxy" } +pxeforge-tftp = { path = "crates/tftp" } +pxeforge-http-api = { path = "crates/http-api" } +pxeforge-iso-store = { path = "crates/iso-store" } +pxeforge-ipxe-assets = { path = "crates/ipxe-assets" } +pxeforge-webui = { path = "crates/webui" } + +[workspace.lints.rust] +unsafe_code = "deny" +rust_2018_idioms = { level = "warn", priority = -1 } + +[workspace.lints.clippy] +pedantic = { level = "warn", priority = -1 } +module_name_repetitions = "allow" +missing_errors_doc = "allow" +missing_panics_doc = "allow" +must_use_candidate = "allow" +doc_markdown = "allow" +items_after_statements = "allow" +cast_possible_truncation = "allow" +cast_lossless = "allow" +cast_sign_loss = "allow" +similar_names = "allow" +too_many_lines = "allow" + +[profile.release] +lto = "thin" +codegen-units = 1 +strip = "symbols" +opt-level = 3 diff --git a/README.md b/README.md new file mode 100644 index 0000000..fdc2d02 --- /dev/null +++ b/README.md @@ -0,0 +1,290 @@ +# PXEForge + +Container-native PXE boot server. A Rust reimplementation of +[iVentoy (ventoy/PXE)](https://github.com/ventoy/PXE), designed from scratch +for Docker/OCI and OpenShift. Upload `.iso` files via the web UI; network +clients PXE-boot them. + +> **Status:** Phase 3 MVP. Container image builds and runs, gate flow +> validated end-to-end (two clients join queue → operator assigns in UI → +> both wake within 1 s with the correct boot script). Ready for real +> hardware validation. + +## Design non-negotiables + +1. **Fully offline / air-gap deployable.** Zero CDN assets. Zero external + HTTP calls from the server, the browser, or the generated iPXE scripts. + Build the container once, run forever disconnected. +2. **iPXE is a backend implementation detail.** No `.ipxe` upload path, no + manual script editing, no iPXE terminology in the UI. Every knob in the + web UI maps to a specific script-generation behavior inside the binary. +3. **The client trust store is off-limits.** No test-signed drivers, no + `bcdedit /set testsigning on`, no certificates injected into WinPE or + the target OS. + +## What it does + +1. **DHCP proxy** (RFC 4578). Coexists with your existing DHCP server — + never assigns IPs. Listens on UDP 67 + UDP 4011. +2. **TFTP server** (RFC 1350 + RFC 2347/2348/2349/7440 option negotiation) + that serves architecture-specific iPXE binaries to firmware PXE ROMs. +3. **HTTP server** that serves the web UI, the generated iPXE boot scripts, + raw ISOs (with Range), and files inside ISOs without prior extraction. +4. **ISO introspection**: auto-detects the distro family and generates the + appropriate kernel+initrd or wimboot chain. No manual config. +5. **Hierarchical PXE menu** mirroring the Phase 2 spec: + ``` + Default > Boot from Local HDD + Installers > Linux Installers / Windows Installers + Tools > Utilities / PXEForge Shell / Network Card Info + Gated Deployment + ``` +6. **Gated Deployment queue** — the "horse race gate" flow. A client that + selects *Gated Deployment* gets a numbered position and waits. The + operator picks an ISO in the web UI and fires it to every waiting + client simultaneously. +7. **Web UI** (Netbox-style): sidebar nav (Dashboard / Clients / Gated + Deployment / Images / Settings / About), top tabs, dark theme, teal + accents. All assets served from the binary — no external requests. +8. **Settings API** lets you change the default boot-menu timeout (default + 600s), the timeout action (stay / Local HDD / Gated Deployment), and + feature toggles like Windows ISO support. The iPXE scripts regenerate + on every request using current settings. + +### Architectures supported on day one + +| DHCP option 93 | Architecture | Binary served | +|----------------|-----------------|-------------------------| +| `0x0000` | Legacy x86 BIOS | `undionly.kpxe` | +| `0x0006` | IA32 UEFI | `snponly-i386.efi` | +| `0x0007`/`0x0009` | x86_64 UEFI | `snponly.efi` | +| `0x000B` | ARM64 UEFI | `snponly-arm64.efi` | + +UEFI firmware that sends `HTTPClient` in option 60 is handled too — we +skip TFTP and respond with an HTTP URL. + +## Quick start — MVP container (recommended) + +```bash +# 1. Pull bundled iPXE binaries (~2 MB, one-time). +./scripts/fetch-ipxe.sh + +# 2. Build the container image (~3 min first time). +docker buildx build -f deploy/docker/Dockerfile -t pxeforge:0.1.0 --load . + +# 3. Run it on the box plugged into your PXE network. Set PUBLIC_IP to +# this host's LAN address so advertised iPXE URLs are reachable. +docker run -d --name pxeforge \ + --network host \ + -e PXEFORGE_PUBLIC_IP=10.0.0.5 \ + -e PXEFORGE_DHCP_MODE=proxy \ + -v $PWD/data/isos:/var/lib/pxeforge/isos \ + -v $PWD/data/work:/var/lib/pxeforge/work \ + pxeforge:0.1.0 + +# 4. Open the UI and drop an ISO in. +open http://10.0.0.5 +``` + +Host networking is required in proxy mode so the container sees DHCPDISCOVER +broadcasts from the PXE VLAN. On macOS/Windows hosts Docker runs in a Linux +VM, so "host" means the VM — use `pxeforge-dev` in `docker-compose.yml` for +API-only testing on a laptop. + +### Quick start — docker compose + +```bash +# MVP / API testing on a laptop (no DHCP, high ports): +PXEFORGE_PUBLIC_IP=127.0.0.1 docker compose up pxeforge-dev +# Real PXE deployment on a Linux host (host network, DHCP proxy on): +PXEFORGE_PUBLIC_IP=10.0.0.5 docker compose up pxeforge +``` + +### Multi-arch build + push + +For deploying to x86_64 servers, build both arches in one manifest: + +```bash +# One-time: bootstrap a multi-arch builder. +docker buildx create --name pxeforge-multi --driver docker-container --use + +# Build + push both linux/amd64 and linux/arm64 under one tag. +docker buildx build --builder pxeforge-multi \ + --platform linux/amd64,linux/arm64 \ + -t ghcr.io/YOUR-ORG/pxeforge:0.1.0 \ + --push \ + -f deploy/docker/Dockerfile . +``` + +On an Apple Silicon host, the amd64 stage runs under QEMU emulation (~10-15 min for a cold cache). On a Linux x86_64 host, both arches build natively at normal speed. CI runners on GitHub Actions with `docker/build-push-action@v5` handle this cleanly. + +### Build from source (no container) + +```bash +./scripts/fetch-ipxe.sh +cargo run --release # needs NET_BIND_SERVICE or root for :80/:69 +``` + +### Container health probes + +| Endpoint | Purpose | +|-------------|---------------------------------------------------------------| +| `/healthz` | Liveness — HTTP stack alive. Always 200. | +| `/readyz` | Readiness — 200 only if iPXE binaries bundled + ISO dir OK. | +| `/api/status` | Full JSON status: versions, assets, counts, live settings, SMB state. | + +### Pre-seeding ISOs from a directory + +For CI, pre-baked homelab deployments, or a fresh PVC, the binary has a +`seed` subcommand that imports every `*.iso` from a host path through the +same pipeline the web UI uses (introspection + boot-entry generation): + +```bash +docker run --rm \ + -v /my/iso-library:/seed:ro \ + -v pxeforge-data:/var/lib/pxeforge/isos \ + -e PXEFORGE_PUBLIC_IP=10.0.0.5 \ + pxeforge:0.1.0 seed --from /seed + +# Dry run first to see what would be imported: +docker run --rm -v /my/iso-library:/seed:ro pxeforge:0.1.0 seed --from /seed --dry-run +``` + +### Environment overrides + +| Var | Default | Meaning | +|------------------------|-----------------------------|----------------------------------------| +| `PXEFORGE_HTTP_PORT` | `80` | Web UI + boot script HTTP port | +| `PXEFORGE_TFTP_PORT` | `69` | TFTP port | +| `PXEFORGE_DHCP_PORT` | `67` | DHCP server-side port | +| `PXEFORGE_DHCP_MODE` | `proxy` | `proxy` or `disabled` | +| `PXEFORGE_PUBLIC_IP` | auto-detect | Advertised IP for clients. Startup **fails** if unset and auto-detect returns loopback. | +| `PXEFORGE_ISO_DIR` | `/var/lib/pxeforge/isos` | Where uploaded ISOs live | +| `PXEFORGE_WORK_DIR` | `/var/lib/pxeforge/work` | Scratch + runtime settings | +| `PXEFORGE_LOG` | `info,pxeforge=debug` | `tracing` filter | + +## What the boot menu looks like on a real client + +``` + PXEForge - network boot menu + + ------------------------- Default ------------------------- + Boot from Local HDD + ----------------------- Installers ----------------------- + Linux Installers > + Windows Installers > (only if enabled in Settings) + -------------------------- Tools -------------------------- + Tools > Utilities / Shell / + NIC Info / Reboot / + Exit and continue BIOS + ---------------------- Gated Deployment ------------------ + Gated Deployment (join queue) +``` + +Linux/Windows submenus show file sizes iVentoy-style: + +``` + PXEForge - Linux Installers + + [ 4376 MB] CentOS-7-x86_64-DVD-1810 + [ 2002 MB] Fedora-Workstation-Live-x86_64-38-1.6 + [ 4699 MB] ubuntu-22.04.2-desktop-amd64 + < Back to main menu +``` + +iPXE never appears in the UI — the whole hierarchy above is generated from +ISOs you upload via drag-and-drop in the web UI plus toggles in Settings. + +## OpenShift + +```bash +oc apply -f deploy/openshift/ +oc -n pxeforge get all +oc -n pxeforge get route pxeforge -o jsonpath='{.spec.host}' +``` + +### Why a custom SCC? + +The default `restricted-v2` blocks `hostNetwork` and all capabilities. PXE +cannot work without host network (CNI overlays don't deliver L2 broadcast +into pod netns), and we need `NET_BIND_SERVICE` to bind <1024. The custom +`pxeforge-scc` grants exactly those two and nothing else. No raw sockets, +no privileged mode — proxy-mode DHCP sidesteps the usual requirements. + +### What's on host ports + +| Port | Proto | Purpose | +|----------|-------|---------------------------------| +| 67 | UDP | DHCP server (proxy replies) | +| 69 | UDP | TFTP | +| 4011 | UDP | PXE Boot Server discovery | +| 80 | TCP | Web UI + HTTP boot assets | + +The OpenShift Route only covers 80/TCP. Clients on the PXE network talk to +the node's host IP directly for UDP. + +## Windows support + +Enabled by toggling **Windows ISO support** under Settings. The flow: + +1. Upload a stock Microsoft Windows install ISO (vanilla, no pre-processing). +2. On upload, PXEForge extracts the ISO and uses `wimlib-imagex` to rewrite + image index 2 (WinPE) of `sources/boot.wim`. It injects exactly two + plain-text files: + - `Windows/System32/winpeshl.ini` — tells WinPE to run `startnet.cmd`. + - `Windows/System32/startnet.cmd` — runs `wpeinit`, waits for the SMB + host to be reachable, `net use Z: \\\ /user:guest`, + then `Z:\setup.exe`. +3. The container's Samba `smbd` serves the extracted install tree on :445. +4. The client gets chainloaded into wimboot → patched WinPE → Windows Setup + running off the SMB share. **Every binary the client executes is stock + Microsoft-signed.** + +### What we never do + +- Ship drivers — signed, test-signed, or otherwise — that load on the client. +- Install certificates into the target's trust store or WinPE boot policy. +- Recommend `bcdedit /set testsigning on` or any equivalent signing-policy + weakening. + +### Credit & limitations + +The SMB-based approach is adapted from [Bootimus](https://github.com/garybowers/bootimus) +(Apache-2.0). Re-implemented in Rust; no code was copied verbatim. Known +operational constraints inherited from the design: + +- **Port 445 must be directly reachable from PXE clients.** `net use` + ignores alternate ports. In OpenShift this means `hostPort: 445` on the + deployment; on a host that already runs SMB it will collide. +- Windows 10/11 client SKUs are the tested target. Server SKUs untested. +- Hardware with NICs/storage controllers missing from WinPE's bundled + drivers will need a driver-pack injection step (not yet implemented). + +## Gated Deployment + +The "horse race gate" flow, end to end: + +1. A client boots and picks **Gated Deployment** in the PXE menu (or falls + through on timeout with the default `timeout_action`). +2. The client joins the queue, gets a numbered gate position, and enters a + long-poll loop (25s per request, auto-renewed). +3. In the web UI's **Gated Deployment** tab, the operator sees each waiting + client with its MAC, IP, arch, and position. +4. The operator selects an image and clicks **Launch for all waiting**. + The server broadcasts the assignment to every gated client via a + `tokio::sync::Notify`; each client's next poll returns the boot script + for the chosen image. +5. Every client chains the same image at effectively the same moment — the + gate opens and the horses run together. + +No user-facing iPXE anywhere in this flow. The client only ever runs +scripts we generate; the operator only interacts with the web UI. + +## Architecture + +See [`docs/architecture.md`](docs/architecture.md) for the protocol stack, +crate layout, and the full decision log. + +## Licence + +MIT OR Apache-2.0. diff --git a/assets/ipxe/.gitkeep b/assets/ipxe/.gitkeep new file mode 100644 index 0000000..4c4994d --- /dev/null +++ b/assets/ipxe/.gitkeep @@ -0,0 +1 @@ +# Placeholder — real iPXE binaries fetched by scripts/fetch-ipxe.sh or built from source. diff --git a/assets/ipxe/ipxe.efi b/assets/ipxe/ipxe.efi new file mode 100644 index 0000000000000000000000000000000000000000..5064a719332e8bb2b92a95324fc926f8e50cca50 GIT binary patch literal 1148928 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

E0&OnfG!9F0qfkHl$I+ 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 =1N6GTBARDlH`GC9r-2sqbIEi#oQQy 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¬b=+%mfA2PhvRm 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%0AK%6C2?Eh1z4ur3(4g|BPSFhp8Uxr-fSptJA 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νI+HmiE<0 z@^QI@lH@LX)#Kw9`M@-3KT5IKA{vnFJox1wXOl4Hg+B@*L=-cySNvLEkMTm#Y2ch? z*4dBYw=eu1f5o=N-0bE9Su!Q!f-rg=KwNZg2=~vOH+RwVqk^v(s~~O6}0x20AjBYeQW=O4ZOmAo@3d#Wg~y+4&xe{ zSOyua2)4W~9wX!!pQqry_cEcqr!^`XFXf)XFYx28#d47RKGTA9HVth>5>Is$FnCMb zZwM@J#1#E$S@L5o2oTE=!Z-0D$O&_p|GLM_<{df6Y+gud=V7E&a_#vto}SD0eVeJO zxIr#Fueozylf!}_!xuey(NIlQyz;)bTwZQ*KUkxeq&U>c?D%#qM{7h74|PpeT^D;* zeLh`Pz2Od}Dx;A**I3G^=X6ugF82XbPjnC(hkGy5b}zd4Qhs0@3tF0bRpbzB)Dust zvg9YYRr-x(+sj^js3{ojw`oMkM-CV*wCOH4)gscwD`%TNY;m78k21rl^@dZoRKsEG ze|I>>#7FX-wC*upG>G+1Z&;-pY}5DXIsQOrae6U;MEt*Q4G4>s63K$Sl;S5HAKi3h z$gV$uBQ0b0LT?jO;qy{MK6U?GEGq{ele`z_ta_s33Sw^{ttmb~?!}V6RH6=)uM@)& zP^`1mM~cCl!jR`)j47H#j`mLX8YsDVy*u?eb@F-wA*=Dqug3wuPD6!-5%(dqRF! z7LMqK#UOnR_l=#s;!iB;K=||XoU~%Cd2+R!<^c!}_JQ&aaGv&aH zr<-Ah?R3m7=^r1`RCReT5vih^M|ha*5yF5uwz?zwuod&l!zWx03S()KmfD}kN{APt)RK8zX%?nzOF*SKHm&hQZ%BaEF&l-$B z@rW9jGUZ~O5USc#RaZa=Bl&*fEqDekxf= zcA*#kZ8^Dk#d$7DJs;Nc67$1!JwXk6PN&jm<#J;wbOw<$?Ll{VcMtPPFKGRP`S?iH z%n@BSta3Uf0N!3^rRjEz?@-S%7gJbZGB`!k6Gux8rl$rKXaw}8gq558yF=)U3~eU! zAbOwFJr##dUp6u2^tqYZAvXH7BC!=|3BXQVnEsXjobE3d_oD^`xiF%pbE%bylkgP; z*4*0bAyVeO;r+vD;jlaG~6$hCv zD(D}-G*qNI$6(;9rX4U?+nbm7fF|&#Z(YT#hSMN=fU1z|n*m9Pd z6?gnsP*(GbJ;AxNnK`wW4SKMZ-GQKE zdwn*_!X-Xnc6_kj^5Ao+Zrv-VG6V=~p~%L|>XUl7HaQT}DDeQXM*7Z=>8#UaZl2S) zEaNaME=GFD|5$ZSy6SvYJv-pldrG=qOKWD=1Z+-w)YWrl5&zGX{`K0!`#YbWc=ev^ zNzA5at8M2YE?&|A>ANYE0^H=(8oP%#L-yLw3G5FI!f;-T0epE5rj0}W@A>Z|ceL|M z^O0j}4982?1<{U?z!bfwQV-p~iuCa)TLZ0Y3tEq2P05{K(3;IfyW1~v1$if<6P%cU zp*B7vE7%uzFRb8ttI-d{Qu=z>}VqGmK+mCw)e`O!E!oE^N1&_qdChN9Nlk zoLO>)6Pv<^_QoNvwtsqb?4vBwF9TQXv4Z>BYvms|B-NwCakRl=ThFiU0iZ-)v)JJL zafU^DEqW-hvWFYpg=wE4N%M|LT9){ykO7=tu6&uyHob>=){{T0-k1Nv*S^RpneBGMLxd(^2V8-W zXwHaHnt9QX|KTi+j>}}fJIas60*Mu z=>)K0!IlpdLN&I0s~%Oq8ZH?9Dgty#D7HMe&c2#stltcmznWaL`??r8O04RCMNVXJmfhQH8PZgSgQQm?`5yZ5D!b5o1v#G_ zkhX1Pl{0cEXL67X|9p&Cv^$b>5Q8VMaf9iyL)umai!sKV*zBU^_h~zbQ@202h~<*j zr`Uo&$%AJ4_$>qy==OP*GZN}EhJ0H(IV87qssr0Tref;AW*@T?IYkHk%6eE_cRc-o zeG9g|ablTW(8mPZnF%z}>P(`)RW?g?g7G%)9Mwr2OZu#cTh zB8F{Qk#f6z(R=k1FHjuEQTVWd(~q%9~L*Wc|LC^b*(1pYb=@cPX{_+!3lF^?G#8q8~5a z^IYv)C&2sJ=mRk*q{5>(J+tf?YPzE0zt zWH)mz9(s2D(Aa_QvpAkB5C8yoStEQXQlikTx@qvGO2_EjScSrZZinZ3k1HR|RekfSwM@IUm)CrWT$qb2xU7b6WhqVNrkc z>m|uPEnoElSx0zPNM1-k{HiaHvqD|}b}|jm!9u*ssVk1{$Vs)ecb*hWOztb$ed{y&6Py7;H;+XS^syH`6yTPF4r{-03N_b{7>;mdxN=$qfEF ziAqEE)?hU$C13IZgJbQJF(=pAmlP5Tye1TDFAk>KLUw3(DC>22@#Mx}OL)ZoW)?u< z-U^XGtvR#8-A23@ab=spTNCLhc&nl>cU!Ptkn1+B%rGTO;R53cx<_@6lz(SN%wa(ae|wtpMldWBOnw7RCE zpp|3Od>%N~Iu{HLLZ3qITf33NroQg3U|wBoThkp1{v0MsZ?6jOYYXr}q%sI43AS|l zppwCsj)ww0`v>=JQqXz6O6Pl}lb>NE$*V;UE#1s&R!$8%!JY$CbLmzNsakZ<5sIMJ zn?)zrTjiswR2<8C6)ec-?;cDgCiBK}E-O?}USb3{B)SecV*}Ro^;NLbMfF{1J6P=G z?QK6T(${_ySJ7aP+lwxj>A|w|+99|^)Ij(=I`p-SiS4#H+us+CR>A zhh2i?;moO8QcvXwK8e$K;58?NJ`2urZOr9_opb; zGHlz%yAAw3d#s_GV%roEB}0(&a2vhDMc-`TXFt|~hCAHz-Ut1|`kl@goY^${nL9

-5T?RV% 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

DkO}BzsS{?@Va*q3QPfGPi@7Uh|1eY91U%fwXW^ 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ⅇwgy$ik+?*r} zAM#nabBm}+>D+W&>Edz8FcdIp%h2X+^&2$VvToO1!_n=cw^QV>{w^xi?TB1nM@N(q z7A{qosf6$;YawW{S2MYD6;sN&x(_8T{mQAAVy-F{y0;?~07o*OM}j-m#!6PS%uz+d95KjxV3vLIkuCfQ}4D8r7T3UTr;zo+nMxe_f|5u z*r;t-Yu43qVaaxN$tBwGE2q}3RckLktYU7-g=68yix7Ov}ruIxs@)`|_t&fIA4(5hh z!|ffNU7J*!80&9Pd$1mq}*>^o|M)58}-mo&z7#O+lI)YsP(U;7j=UO(J`mX zDzU5?3mO|#Ffm6<*4W=#r9RgUF<{t3u0xo&c7NL)D$N#y7gAAOHF}|puu|&F_s~bt zog#D+x$b02TV)C}akUG>w~ybw41P>7-L#!1`gIWw7 z9M7E-veiv>iYmv*7bj<6cEd&Xs0_14ZzhkyU5QMFq|9xFT2`r~7mF#^n(379A~nW_ zzNB(;+&+4XRUDZdH`z^n^F+Oxt7MdYC-Xj1-PlkUu*`G!_icGSmH-CRGlt!b`gj>Vk2ziVJixR2Xv^u&aMG-Ii~DoOiqaf3bM350HCy8D0AWzSE59zU1MLO zjZ`cwc+QN_Dt03=&L*I1^q{)J{pnu$-rCEJV=)Y!;?d%{Zi5kmpya;xDu`VI%yoa07sw7G^n-ZxJ_MsgVzsgixPde9W6y22v~x|tXSqB)z-14 zv$vx z%&bw}{i;)}67)k4k`7{pGq@(qZ$mI;_hcGb1>`>2?tW+cIL3=6va^jW`zPb=+^Z8BY$u&EX(`|EL~?Ri zY?D~GPDy0*H(bH+%fFH()b+~2%Tp&hike8~#bKMeE~^|%m1Cu{biA@?vX1B?=`*b_ z^9K4j8i=})oi+zTp#i)a@igIyRmcxi6deQ6Y*rG3W z5U*J|auFEIUCf!(cYWRH<>xfNsDt4Loca-lId=fA5=&<}JZC~UdL@06RTD)6-*O+T zzFmw%Q9EQe5u;J5)S>N2jeK{BH=rK|^aEL1O3U-h>I)K5b^*GIKY1cdu4uY_g^bBc z-RO9D1Ne>N6|fF=!6ah1gA#x0C2_+{B=ZJRP`S}sZj@yOcFC=(UtbS_y{hb%bNHSM z(e}#i%Xqq8lS#A&y}hUn>?mUHHivdu3wIA^#;1m5k#R1UpNV07TIscNW-CROSp`!H znS)K|KRu}^^2?JQE}p_XeJry@QC6DMM=PK4cw^=zgFDTTEWL;+ojzvIiK$UB0I8VH zPfhFYKvYtf7eyv77b9m;Y+9$y0Uk`B#;}Ed1r6aXKPmu>b7Qc|C#^}RehF0Ah~od1 z7|h=!{$I#KjDv^Ia2tZR{F;^%d4oo}wzoK(rs&2TVmLcFoJr{Q^%X^9$9@>)+Hi)W zk%on+h}JV0?&q*|7e4pdhSdVD?N? zi~`U~aVSvp9b(c3P8KkY)WG;&8EhC{*h`#U{!S(kO&~LqFR2aV^fM_S#!I3-ok}*u z+!%c&L+}Xq-!(P+q9f?l<5=Pbi(oM1f4DX;>aTH|C zOGEMv>!eN31@Ec=SyM6jr6{51O4Xs0%NjaJwq*;N%>ckLM> z+^(r4=i<#nhGPV@&9H5lVcVF)@#u))RV2+3_;eRKmJV({;u6fEo=w+FEzv0Q+XVtO zHCu?fun=!AkeEGlVZbg7m)7emWsv!A((8x1?z-!I;nJyj?qV82O3HHlWxSA=n>>|X zuu%50d}F~?v8-w)jFnTC*W!Y?j-?PuRF-dhNs>g>@k^`fI!SyrKW@ZHI9aLUkn7NE z`up^eFZ3SFP`cJ=py(b8if)I6*&Nn)ls;*9X2Rv|`jX^0Y zM6HsuIu*CnnxKF1YIFa=cDV#g%%f83x~_glUDqGhUqQh;Y+W`g!@+Q|JDiUwB*yk? zuU_tc5EW(uxo4H7k}mIXCeWR?R_PnV_Ht3ToLqA_OUMn(GF2iDYe5@7OGRg6SY^kQ znpa)5{e~0z2Ndm>{Ep(HMf1FUAxu>im?dTG6KFo%LolZ|S6(SNnjP z_p0aByv5^H^Ui*@YF^ES)$^7tSJiK5QPr{I+E-Qb3#n)L%wIfTsHuecCZYNB%=0{IM(|aH>-dC=|7*g<|CQ7npO>o5^DoWg zN#B1|!pyhuMo={t-UqzI!ncs{G7EnWc)5iozZDh^17GOU13MPJ4WgA6ehj$Y!ZpyW zws1GF-=zm`wD2_aAq#&IxXr@SCpKER2e{Lv2ky4;{m}PX_<7)d3;UrNvTz1?yM=c{ zbAyFH4!qOCKLL(eH~{^)OAnm1@F8e27CsJ~w{QrWNej!*qTcM%1Mjo2{Nnuq3;zQ6 zHVd~xbGwD7fbVeWf#2`a10VFjcY5HvJ@7pq_+Afup9j9*13%z_4|(8+J@8=<{HOe^1K2#0xZuL0!x3FX9rmNyW9Vzzq|ck`n%izZv&QR zKlFbg^uUe4M}ZT#5b!E+64nNs0G6ySSRo@dDLk`2`v3u;$(n7Nccfq9{6ee zr*MHJn*v~ z_Gr_A7S4e0xA6VI zLl%A>c)Lqanm4%gz&l-f;FwDfJnn&$9ysHH^B#E81K;d{_j%w09{4s7e7gs}!vnwH z10VFjcY5HvJ@7pq_+Afup9j9*13%z_4|(8+J@8=<{HOx6n_PS@?6n%PkD} zviy(q`IVMl`h2~GrO&Una6RexEj$j~XyIvSLKglaaGQk}L$lGsJ;0qVJ#e>$?|{D7 z!cPGATiBidAuZ1T0=x6S!0&~Ar=|ZV;FyKaA#B{j*8nFi{9fRUg(soUTlf(0q=k=9s0V(`13&J8pYXs>df=x#@G~CxSr7a@4?O3Af8c?i_rNcB z;Nu?nB@e8C7g0~*<^ylW7gq!PE_`uIfbXUq#4Q7U7GKLuA;9d9wxP3y8|NFQDz>>!MaJKbYM$3K8u3H%XgyK(iv{~iA} z+-l%D!XE?n1B);1)d*aJ-;N6bcjNyqt_}D$e3@f60w2VeIkpq{Dg5KOZeZcHrN8w8 z3$HExtzYQzrN0dU-vjN2g&P-o{CDG$z_rl6 z8J7XR3jdFAdEj^Be-k$e{15oAg8pWq$M3`K6MFpj;0_2q{_j9{8}O&`{{(kC@GtTI z6?X^lI%s6=dq40^__FpL1b!#s)4+EEe*t(3cQ>%;k3I!_5AY`7UjW}L^uVpS`-C2U z3U|MSKLz}Ng+BxRAq)Qs_+bmLhvu+_-v<1sOAq{*OAq|G2Y$i>Kk0#=^1#n{;AcJX z_dM{N2mXNve%=GW;DL{O;Fmmbm3s1^Lm4YwwR+-U4a&MoH%~ot@UU~YGVWP?;})tr zrCUk&FLM?Ty8QEhH~unSw%q+@?^{-tq`6F)bgF^Nox$h8mpg+$4!+zO{J(?OZXdol zo4(9GHRkJ|I5Y~S(~w@^Q~fRRXD*{jxBi>yk~s5*{r|KrA2#o8rn+5Z*e>wm-gwNTAdpQCFmWM%s7$=!u@ z^9=kW^cBk_slh+0yOnXz;u~lCV*^pjoW)lz&sAsczb6;;W$52Xj52p-`a_VHJ463T z@a4|n4}dRs27eHIxik2~;LDxC%l3S^`|aZYne@w@Nk0O<+!_3@!IwLO|5xzk&fwnx zzT6r7`uR$gJA>Z~eYrFEPVnW<;LGb$>Q?ak;F~L*;2RGwP?b*b&$Fvl=>-4AswJw@ z34Wux2EMr53I3aCRx6$0Df~$v!FO)ttt#A^=nwCtmsB`SFUlfu&DH@gRF54LlL6!A z;~V$e;&aLAlpmQtenN=MA3qYmYM%PJ`19te7sP+{JhdO1g|DwtmsE*NQ~o*Q{G#R4 z{}TUPo;Xjoeh&kdIg4KkzRX#?6tv7)Jm~VzZyA4_)XUtN(?9nEN|ifHFH?G%J99df zvv`fIx37~-xijfhN*hoi!o^cCrsJHc0ht8_Y@vk0hgf}aCd=@zQP%nOyNR3SqCYYo{{~3L^Yb0+-- zaiz-LZ~}JA*H)8fcg&r9bEyRA$kVGx+}ouG|^?#o)`G#j_$@T;>G7 zf}N5|XXxumr=BrTa)Lk1Iw$TCj}!bm)O=R^awquh}?ApLS@=y!q_mnu4gKf-glGx)2)mpg;+rYDp;gYSjD+!_4$z?VCN2VL?hJkKuu|pD;PZ5da%b?Yf2!OWeEmBa|7FhL4+M~J%ADZ$ssB)wPVnceOW7+c zcY;58wmb9uF6&sOlXMO^_p3@L_DE>lxaD^?}NV53I1vDl}_+G!B;xLKM%gr3I4<2E1lp6z*joKKMB6l z3I6fr>}^#z!QVcgJ-Z6G2tE6$+jkx^m6=~J79aWGwc;ZmyiWZ2Rq8zP7gVWp#a~pV z)`-8jTD?mA+GnX7_bk3~x<9MCNxR$`d@cBLXYimaK4->{LS60*{l9=OcLx6x@a4|nPaYX(#+UDT z$sU-YuP8i^246mx%iM18r&||Jho2$Ea%a-n3BKH&Io|`&mpelr17Ge8-T`0k41Oi} za%b>$;LDxCp98+!of&@(^ySXb&%Y3XsmvLCd7qL#X7C>(opNXJ8^M=5gI~jb}s=SnB|@Ks4A?kBj2b%MWax?hRA+~WkVRvw_5%bmvm{ueN; zD0d6lM_bb@~`_(~^uw>G__L-6~cuXKX{9QaBn_?_S@o!~3i3V9a% z#rTy@@V^hf(h2@a@Rd&Rm1~7O3%+u#kmu8_7bIQw5qb9PDmnoC`7-fYKUgaC`cWf3 z>j(dO{g@{{>jzW5TF4&rOQa<0#(ktA>&9P-&$^-43)YQ4lV{eAkBHB@aS#4)f4&!a z?o^-uKjK4FM5X)9>)|k|?XwQ6po70q^Ep#6A8vm>$Fq#1rxxp}k&I}eI2SEUpByTMmF!7rlqD&0cb7Y?3%^KvKi&PH(EIPqO4__7KkOr8Z_ zgJ0Aq^tfK@3oQ6IGqH>NBkK$7wJQR-N8`?2NAv_HB09PQt} z{MFjOd--d$|G@I)+J9{Mx!S+^-1D@5$GNZ7{ypce(Eg!w&)5Fr=e|z+&z^gM_Fp*n zLhaX__j>JLc-|Yd??3O2+V4Ei(f;o9F4F$3=UuG*51x04_W$aN@d3E?$H!e1# zefQ!j{k#XsL-22fArXJy;`!RYb@2l2zkBgQ?f>55McRM=;u`ILaPea8|H)!Gp^BCA z;-c{IVM%5nP-w?r1?SNnrII0gl_mwm}8iS2i?iM_D*#E@FpC^mZR5;s;XtARea!I^uUu&QW-3w zjeH!ObhBkR?*}ej4`i9hB<@OY;K^`nLq}J8N3eyfM4MWCjUj)dk9&ASzDn8Ey*1bw^aUG3VP9i&YuFd=XdscGzp<&)-_q6G+T@MgwlU6l@Z*a&VjkRmL`Yv`ZmYWmTtzEl!@7^^L zp<2VunnIXc%gugV&Xk|(rHnoztcm4g7n6-i-ChlAiUZcZ636g2^vW-KwyhPgw$1!p z;|96dsco%&sBM$50drrVCG@_G{+Wk!-}(GsU+}IwR$MlI;;(zY zee;RA&U-iXZGG{V*ZjeunxC%t#=y7Nz59pX{PF_}KN$YfC9nP1BO8AG?LYkKH&(oT z-p5A%=CLnUl&Ji%`j%VN7Y~2y&%XYP1sh)frLmfO`!9`t;9c!+|IZWKwjDa0e$AJD z{`VJrv$O5t*FAUc8~*azeD%!Ve!2bHFW>pdx!-B{!->7$a@OTP-ut6tb02kfzxl&E zj=%0pUw!Kze4_nB_TC3Dj=E0&pZ$~U(k|_`U1(ZDyDdQi23Q~-!EcUkA!xvy z1c(|SLXaqt3lcEi#WTXTT_ltMu>=heCD0(Dlp|=shyj9D2vTXl0!8|R=v9qpPvTt< z0z~%rJTsqn`krkD3&Qy?A9(sa^V-?X{+XG5&wOS-bIZei>^N|hV@u3CYHniR+`z|z zfk^IWE9*H#wQh;IN9~)K?c5&Z2di)7{q^k}Gc@b=?8(IPytzjmcPy?KjM3hCsoum{ zd2^3G?l@eajU&_BK;Neu!#Mc;J`2xrpToXV{*_m;C7PY1=Wyrs1&QT}xp=+@Vyl%2 z<|H_LfCJ{*AP@+3tGldUkeHV}KR1Bce@{>Q)Zaf1^HxH#2@6H$?Vq#HoLF#nbYbqS zx%;U5uV+@ha>bY~viyx`|$oF4q9DMkpM=!g%@byD({m&~B zFK^8`ur+wx$kyk7dE*PenrOLg>8C%waZ}myLw9{WbJ&S@9Mo~waoyKX{_xDRKfP{q zINWK=MABfv-5W%enTbY;uEfeLKe!%evV$)aBHud!N2!YBqg;d+OdA@n}ZMDYh zjMobfIJegsuQ%RcywJ?oXuQdIvv4zClksNbEyhp7U)Sq<(C_0*pK92MVM|r}m2%&w z1Gp{63dW~ylOUxEOB?QQ@S83d;=T~KBPh@2TkP55{tPZRRqytw3 zS_4-F)&{N)v<0pSv6Tfa8uysKv&=!f$qSqf!hM>13iJ;1HFMe z0~-Q&1vUom4)g`?4SYNBoj`x!zQ91>dw~Z6-^YJAh3o@I9GpLYpWrb^zyF}c^TNTz zk%ul@6b%Q#`F2`0_;9vEHF(Y2p&EQR+o2kK2-~3=d;r^_8hkk0p&EQ>m*Rs-wcmE% z6FX3fF5HhFk#)f0h5R_JrArp`W3!eoJJ4P*-*@n`1)P5WVF&N=-9V1}&x?eEe%yb- zoPC0R+<(95tQqUL;m3dxY{T##c{;pMejfC z(85FBcW}W$%a_HME;%s&fW?dQ7Vf`aY{C3_(YbT>jm)04PdJpD6T}ztTQqD7g8m@R z#tY^I!x-#mR&aLEpA*Ol=H%ogb5`b@kaJ>AS=mq;sywY0bGRXKl{a zIVa|p<(`zA%3YPaI(JQOI`@j)*4(Rd*XCZG+m?Gm=)_Q2=%i38v?{bZv?i1eT@h*x zT@_jzx;oSrx+c^f`f6xh==xAc=!Q^d=*G}Zp_@Zpp>Kq`L$`)*3#||Jgl-S@hVBe) z2;CLh7`i*u7rHm}?a+5Z{h|9p1EKGQ9teFO|7EYu@~-Z7?&}_lJ+o5ut~I0Yd)%t` zjr#JZ4jUY_>;hhB`=DjK=pTosvYJc&;aps~)wC~Qj5;0>q~n^mw&Qv?Q|-cies#h3 zFZlN>N6Gnv_SO8X^|gOF{j}pdFM9N- z-r++6eUDv!=EMIpd-Tx{fAx-MPCNg{xfdLIXzYqv-#w&c*#SpPUR3l?3-&EJqw4ds zKK=b!7yio;kN;rR6-Ae>yLIg0+dlG{#l4MJf8+=2PiuH=(b&4D3UY6J_KFY8+11#6 zVRZjTdKQHnj$KmmujPl_H`rJFok;$1r)=2v(Nllib@u;Ud_?{4R$te2@%gtm$C`)J zVgF-ouV)@=|7}BM&#UWSd+5KLFL{(D=<)HXw`-4(XT>86an8VgIN@y}j`YBT3$5JL ze%8@Gz0|JO3=B1slXa2+ZqTf2xWZ7!NZMT5`8v4S2?Rh)r ze*m0|!X3UhGFIS?%+HjcI_r(h3$x$I8~{HPItzKV(GTGi=eY;Y+isr!M&<Mgz56M)<{T zWimOT9267(csXuF@Gol;woK*^um0iH6_?BHzL)pGfBe_E-H$IPE|_fM&eYVu z(ZGUe-T}c74j(Rz#g?g-}AHUOf4q=>so;{rZ5f@*2fjyYN z^)GgfjUi6Y#nsd?pEJ!0)tS!x?2XL(UU(z(Rp=t)FTyGNf#si@CE)cTJAV~V0a-Tk z5o9i-Y*A!+A7aR6p|tXl)gYTq zja7>rw<&t^k(ZfVkG$OE24wT`S&hgAhBqM}Y;rSlp~)@Chnk#1#;R|(H1hjRZbdFK zxefVnliQIKCU+noWpXF7e64mNV>4p6Ze;l~?m_;5;k_zvRJl*(ew7DQ9#nZqXp?|Bqi zmh%|0e5QHGvR>pP%Q6s0mgTbmSw4$GWWD^$XPp3-^{yCMma!6Kz5L5(odlQls|;C| zrE+BMW3g2r^QbyoB{KJ=*s75E6BD*-WV?Vzu0h7vkKJmKWt&ikte1aTHyglZIc!9h zb-xK&mh)z0*;ce5%X*PQmUT9bEX!vrvTPIDkoEE}+oBF|S?@ZLWt-52te1b;=JbHe z`qiuQMwRsC2$l~8OiRgSA%pmL$gMJgv$E>^ijr_7?=~O3Q#hdx2xjJ!H`oBiIl zFb793Cr=?i@TF2ar;*1mPy7!#8^3qBeau#V3bpz5*UaCtpmm=c7K{e(S}G1(fB#Dt9GrjYg5?XLn3K!F z&wD-3)~9b;WQi)lNBcV?)X(~Ms~Y@>eTOg0Rt@+$wZ|Qmtp@N_eUY4O#ju`?puVRn zf;g6krH{D`+=>poYHMHPm=0oDoUVnzTQ7L%Sx3i@v|ivS0-nU1Y3q^Gt)x*t_^i~L zJV)mnUz1mW&u_~ed;VAG!HYb2!h;uk@abL?nb-FH&$%7%HJjbCRlA?{d$t`ne`0U8 zHAu*+X=qjQfBO>LuRRm}c4=ixSbZtdba zW^SVo_}r<@%-lww)pFfen7NHU`zu?nW#%?|?$=NK1~b=}>u%k0J2TgjrT3hBA2ZjB zTfXtQQYQ_?dxpsQ`p{9V`jUb zy3F3*f9BYu&Jl6jkNoG|-WOqe4?S|il)Se0diz?R#JYg@h^;n-W!z3Pwe;JmrT>n$ z!KhSF6QYiou1=oWwmB=$pR|43%Q_e3qD4uKOXv1Y>e=%bFSbN~3-#>iBS%!5j+m-g=|Uf!1_T;>Il{nT2fQ6uFx{|MLTK? z>ROT18mu>MaC`krVgEBr`Iw$=|I<}p{E6$I)E8g)ah@g8^#yAT z(Vq1MYm8~?3sYyjllmf#{YNT_{mCdjYk!g(^eJJx?!7-*REPSauJ(}=rsQ7#K0mcT z`KK-)Yu?84!DCK&cnxfNKiSzgK7NG!?Jh%ax%^y*;}>&r{9-PSU(Chv3uO25gOhCb z;y8uZ_WLZ2?sLoLm?#OF-;Afy)GKxBL@<>}tjdQxpgO_{o3J+fC!K*xYwFj^9;I$sS z&Vwhw6WA1vVmsD{H=-8K+z4K8@<eW$H`m9tn zG9HXMmg4#RV}a4!(cE}29!!RlVP-k57Eo_KbDY~|USP}?Hqs^+fXgwp5Ef9$*~iar zGsn_uF@F?$#8jRUa~&W5NxYaW)q}UMyeXNjJS=B?{ZtxvmN3&3&GQ8Zf#EPuLj ze%T6h0|naOa)aAs~k}|s&Y)_ zJeBiRj;matvfi#Xs_)m1(Tg@sDs63%^iTZ|a zR(U|>36)Ev(}2%kvW2y*@sPUF|QDfWqB1CF*0 z8Rt*g6WfucjUwYXU53*;?97Dia>_RQpPed?tGr9)36&?2TP@SBlz?pxa+{e9BkwRd zg8Yp0G_9zbKc;dXa<`d3ADP$oVT&UdIngRmxez&FcoA}`$q6-2vC1WC{!%r65?NZA z%H=9os9dRXmCDsB*Qi{J{EYbnb;vK7T#t;Orr50k`GY1mB7ecm(}aAv$<4^OncRXr z)mHI%qI2gUvUwOQj67s!iXcmiBJ;bQEvEPoACp6_qisSC=H!N$hmphk%;IjmwHZ0G z?;Lx<9YK!Hn{ThJTajb??Qd^+wjt*&T5KN_-;SJr;1YWo9z~YN-+?TTKZY!izY|#= ze;ipJe;2Ym{sgi-{v@(IexwuUC0(1oo6j?fY>gIvnK_31&$rC#V$LTwEs6YZz6;}= ztU^9BY;M4JyR@LnVU;6xPT8|Xk!arAqUMLC`Mk6^QAdi zg3R-znM;vZFrbwq&;NF69di|O>(47c$y|ec?S&sm@Mh@kgN7-#$pZWDj9cUb8O;?wbPgj?dPgj?dPgj?dSK{So*Zt(v z)#c>X9`o0D@agJuKF)M?IeB*dE$eFnkFV=>X0|@?PMqMwTD%-<8#CKD_-MDP%aPe) zDf|<}e>`)n)3oyUb=u)q9e%Jn} z#tRskdro(`3(5h=04f(){!G_iGCp zb1`H;I6MhSD?^Y?WVy-}$ntk9WoCF4WN-M%t4BII{k8zymIX=N#=ACS}K$kM7*u2wnBWy~~w*InP9KAe-zciqunX12fU%+^(Z z*A-#@H!pTJ776t@`dFy`KCHkzrRKP({%(~0Wd5xN%)|3Xm>ZF0quzv^B1CIOjyTa7 z($VC1^1XVPIcLlHUUeSG?1$SE+2679XL(##8ozI)@%vVq{=U`6e)-)itwQBWmHC}q z@q6bxxf(go+(Caor@8*-WbE^wTA4%6&P5w@IAgCJ?acdR>{r>rJS$_@0-emWGxnyh zi#d|9-_ma8eKYo!zK3~^^S#>3JU?Uab!}u`kcsgr^)c_4vG*qXnHOdjkq{S%F6*N>ALNfT`wy9Urq&Tmt4-z9 zIrMyjaWgNiKxO-bz%=LKHcGbLdOPksOXp5yF!>whD%)?4GmAaitcg}6DarkPP`w*l z6{+15l`4B}%WBj-wJO&k^L4P*r);zT;dXhInQTCoR-|$QS@v^_RW3o6$1GR#7piPw zJN049Y1!M^Z(WsTySSRcQa7=1?-|kLN>bzRx`3)OyIT_WO@Hn$OoDE)5vmYt`+$h!`qOh zE^kMEzu_IoW)-nIkq~?@)P6<((>ztGr9)36&>Rwr<+}+o>S(C(U~jM*fD$5#;~R z1ZvTWBN%d%aI{AqLFI^^3;u1A)2 zzX7@4@J3|WCuu@9hf(e8vC8(U1-#nKpF+l_%x-C9Sua|VWgF6lTxRBJM^2mEfh_Aw zC$el4x{yyd^K>JxGr0%(X_I@AWj)%6EZd4cW%4Fu z{BO5mgrAwb8QCsOF+HO4R+YD@yj|r{m3OE-rt(ge$5q~?@`TEhDsRP`AD8EeEbsX+ zaxSiV#ny#*A|Z!cuBLfo#D1ds{lN6$F@Dx z0Dk{BYs1t7M$B<=yGUZ8q{QDao&K%mvuu56*{stkO!GX=Uw3_ePPSUW&rkVs&QAp( zx}y#}|MT09%FR|MIsRm}wtLJ!>M=ha!fCjDy5?FxxWP6X?Xa3Z?Dyevz0PtS(fn)R z5Sv~&IEo1uTk9uOBrFgBHbB zsGjFJp9oqMTan_od_8DUYA9dqvHdNtAFOM#Wv?H1Vg1Mw*N^^h)|O|B>qijl zMYinq<58>=)K`qm`tjhaFaE!5as7C3&77QUas9}im(yH79t`X$t{>CQ&-G)v`RxxG z|8Rfu7gqA3Y}xyeQ@=CAar0X0xTEaj>;E*2^S|7(j~$k@=dQ{U_cKS5kDiq+o-;RG ze|#!iJpLC-%^IQhRT=`{`mNvPWQ%=u^A5tWg;^@Z-<5OYwDUL<8;>#h0-2Y2eCcwfG|^vGj6^Jd1rJ@eZCTD<*`x?8?0w`V&yjclxIPr^4o_c8fBo`l%SAbw|;8?S(K zKerNMtAgzM)qJtbv2;1VN6zh$^Lpf*9yy;!&gF@l`^z~zN&FFgo}2WaNq;EBj@kPxjS;+j-0b2=j+J1I&z+loTDS>=g7G^a$b&{lOyNj$hkPB z=5@9hA2dE`T+X|Zb8h5(8#&jebiVWcwHO~XK51OetC4eRzA78GB}@iy_s$>-UyE$6Fa&IUio^@>&@go9J`^T z4H+MS&%*QAX{N`G?=n7NeA2kJ+PQzwxcMo%6*1FM<1yoT#`BHGjTaa%G+typVZ7LQ ziSbh7N!z1V8GTpODyRE!jDS9dQPb_)u^lvCZM+7a!3SLnUykty>);rHu(i?L-sE_) z8J=2sywzfO8eW8lZZ+O!c!%*$<6XvaaaJpd`D1XlLgPhnJWVSB=NUA`J zwH^0`r!anQ8T`a(wH0l2z6*-se#}_{|3MI;nfHrXLHM@vljelsv6GfnMd0yjzds6Z z{prvpF?etB$?NjrY=!g_zxJ6T_<7IYe@z130567LZ6(hugk&)j@bCH#Sl+AgYsbFZ@+K0jf-Py>&hye?P^kDd@-RtJAE^W3ZT z@KiGJgGRVj6pMyCc|WWl@Wi#hx+lu%(bymCr2mNe_m#1*jEqd`87PZCU)QZ7d64zn&JH1Tg-IIc-nZY z@iyb_#ygC68t*dRZM+B0$L-~GW@&sQJ^1qBee`HfpdZff@a>#N8#TTI&M`8^;2a-g zC#NIBk#Tdo)KT{NKkHLTyU(j3ZufWbydU;&otIqWW8W4&cBfwpuUpRfDF%{pNu=t?TWFiL}A_`0d8K z;Cvsto!hM*V0c|YFRJiWPn=uuQQpsb?{$iG7IbBJ2IK24e~}@|Bj^9r;BvAKJwIZIM***>_c0!|D^#cZqyAg2mcJ-Q|b((GvVdE({r!=BCq`) zul=Q3{N223aBYz+)qzi4T3(%JR1coLuf%D4|0;p~D@yHSMX?=-V&5lQF>rk1RyT^W z1eOmO_ahH{7XEY$;)w&ZjTeAVx8GI9$BzzXsJIbxE%gi@PEDdnA~g)gCBXuD;H*KGx+dVejm=(2zdJZ;2zovK3&`9!KV(u<4);R zjxF9lh-2Q;TEQu{u;OiC6k9}bYZVxU7F9e5MzO^d4}(!`d5TBCD7JjXqhJ(UT=5tf z#a5tr3XEbaR6Gqvu@x!a3P!Od6mJ8g*oqZz2cy_Z6z>3|*h&@e2BX-Libq!C^+IfA ziuYn(imhDnH0Gt)Dim)8qu44HF94(1suXVrqu8nyx7L7BXf=ul!6>#`#lv6}Tb<$& zFp8~S@e~-v)}VMAjACn4+`1Ag8HLuQco2+YYgRlAMzOUh9s#4+Qi`X*D7LiXX)ubd zRdMTTY@jH#HpPQr6kEIEVK9oVL-7b0#n!2K3XEdwQalYtv2`on3P!Q@DBcD}vGpq6 z4o0zUR6KQ0#G=^x6iCS(inoDLY=erogHdclibuY)uSKzKQalPqu?;Jp z2BX+EE8Yr5v5hER07kKGRXq6JITppXP4S-l=U5cmcEx+aD7I0>qj(I8ZHMA9Fp6zV z@i-X8wo~x}Fp6zl@j@_)ZI|LjU=-Vg;@w~r+oa+>V3gg^w=b<1jA9Ea-Umjpg%$4y zqu3&f4}ei@QN?cuqu64K-w8&s8Rd+-hq-s!=+Jb1SU@A2Th9(VG+r2i#Tv zEAFcQ6}MQcntC;=xU2qGJdAlMwmijM^}ph-`d@KZ{jYcmk4>=^D(r776k9@Z zSN*TJtNvHqRsSpAjmM_gl8U?Pf5m$-FU3}_xU2qG+*SW8?yCP4ch&!jyXt?%UG=}> zuKHhbSN*TJtNvHqRsSpQs{a*t)&GjS>VL&u^}ph-`d@KZ{ja#I{#V>p|10jQ{}p%D z|BAcnf5lz(zv8a?UvXFcuehuJSKL+qEAFcQ6?fJDio5E6#a;Ek;;#B%aaaAXxU2qG z+*SW8?yCP4527}q*tRL|s{a*t)&GjS>VL&u^}ph-`d{$^JQs>>TyauKHhbSN*TJtNvHq zRsSpQs{cKBg9mT);7uO9*@L%u@RSEnd+=5d-sZvEJ$Q!)@ATkZ9=zLw_jvGL55CcZ z_j&Ms4?f_*2R-OE=noh4lYV7-T^LZRlE~i z)TVe3xTsz6UT{%|;=w2I{up&C9tIP2DINhAbt@hP7xgF}0~hrwo(C@4sCXN=s88{B za8bYFd0X%}Mgxi$fQbebF9a72DIUYQ9->W(=Yflc6>kFKX6)N5XE-F&I7hIH3d?UE1Sn)n^QHkRH;G$B+Zv_`66~7%^RHpcy;G%NH z?*ny?7u75N47jL4@gIPT z8Wn#OT-2oakHJOFia!Z1YEk@Ya8XL}XTe2j#eW7aYE}F(a8aA$Pk@Ws72g6b>QMZr z;G#~&p92?lDgFYusM~}0c<^2izR`pCdGLM@KH$LzJ@}9Z-{irEJ@{r1KH|Z*dhl%? ze7gr9_24@^_?QRZ>A}Z6_%07V;lU?8xbAqKv`F{Aw1bO^)%;TX z(@PYW+Miykcn_vUy8lILe|njkeaFPj66MYJYm8;!^w5n-rJYpWdvv)c*7q#ijPArxcgk zpPp7+YJYmG;!^w5+Z31DpWd#x)c*7i#ijPAcPcKmKfOzFsr~8Qic9TJ?@?T8e|oRt zQv1_4DlWA@y-#te{ptOROYKh|P+V$%`k>-c`_qRMm)f7cNpY$D>BEXk?N8sVxYYji z5yhqUr*BnUYJd7R#ijPAZ&zGufBLB6Qv1_)C@!@>eN1tw{pmXum)f5`uDI0x^j(Te z?N6UjTxx&%q~cQh)2+L9A9a%2pU!nvn$-SuuB+0d_NQ}Ql_s@6o$IPJsr~6(SEWhq zPv^QSO=^F7zT#5*)8mRu?N2XITxx%Mq2f~e(~A_B+Mk|KTxx%MvEowu(@PYW+Miyk zxYYjiq~cQh)5{c>+MiyoxYYji3dN=Nr&lU2wLiT|ajE_3)rw2)Pp?s2YJYmI;!^w5 z>lByTpI)!H)c*7a#ijPAH!3c*KfOtDsr~8Aic9TJZ&6%oe|k!Bsr~6`#ijPAw<<2R zKfO(Hsr~8gic9TJ?@(N7e|o3lQv1`p6qnkc-tEDAJb14M-{`^nJb1qcAMoIV9(>4y zZ}Q;79(=P0AMxN@J@_^czTJb5dhi_{e9VLI^x)$je3u8G@ZggkoWJXlb^(6RBjWFR zqzR+%(a>KqT?;DiPohu7D6Dueh3^@oh~l$`_}fEAQN<&c4?l5n6jOZm2|i1dr}!xt zn@6O_2RUUExRD+o(VqH@Jwyf$cwDimL`C1{B%6+dTgjwPy6{F|rd zSfUhae`%jW5TzBbOXB;%s8#Wv6zW!^HpMp#;WwK`?TT;2vLNbEyg%u)M4gK7O8G2N zm*T~b_$*Pk;!QrkCF)VUWu@N|^(ubZD!(P#sQ5#V_$^VN;&1u_mZ;x@4|woF4?g6< zH+k@355C!hk9hE{9=r+rmZ<7x+3H?A%MuZz?ZUo2+XVcbj3*Lt?rx7CvY$0Ge#p%D zA%O2+-m?Fh~R?0RjVmyx?!u`y2iSbh7<&Gz-%yhN!8u(j{ zFEWJN|C+`RDOhFM?Oh!=md7$T8h)rdy1s$kEcq+Z~_VVZ0O0)@8igc-Yj>f9kj% z6{xpM4@&O!_#WnW>(PAtu3C@t5w{1I-E+K;g!%n-!VErJjOppd|0oB4t8qV)xSivJ z)I9E7Yo`&@vHND<*aT;5hWp?xX1d#WkKwNIJFJT%eY{PetL!>>lSMnTP2=HqJ-tk`)IPW4<_AiSbhSJy#7cNOBt2 z^(lk1mBTTP%=F`a{PYE9+>g0)=hk9A-_ko@s)Ns4yV9z|d2RH1^EeIgM}PUnISt@+ zGrq>u^}IRm-IKmh&U-c9M(cX}WK*AZzIUi#Q%o z;)(k&;&?y}aE=FL{lb@%2ft>1hsAM$*8Rulz8;59zH;uX1-#t~+T#RqJRgn|#PNJM zP7ufQ;W$Ac7RLqUxI-K-h~o}%yr2Ze9pZRF9CwK01!3Hw>p4ykn>|hto*%~v;`8G; zL41B3Cy39F;{@^fahxDNzXmv;AIA&g^J{|h`8D%)Jiit=pI-{j=a+`_`L)9PE;_(! zgP;G;$6D?1`!9MSw*zjaF0wl57;&r1b{sEqJlq4{hD&br8s7+yV zp>w-?i#`4df5Jg!jlVLK#G(%AaacJ1N(!@5di)iR zvmz~foE72OoJS>Ylnsx{w({2RjPb?W)>d|^>N zzVEPmX$yy6?6I%t9G68}K7wdaaU8Tl2Zoj zdC&n|-<#UY^PuH{y77mNyv~E(wq9o5J5MGt-(U0j(H^fisQIVx8Y#4};=a}Rj)&Ov z@y#SYJBm#o-(2}L&JBmyV(M|MR{$uqJk1NSp{3CD@lAg{wlol%KE9bV;Ik;U0`)kl z#eR!oD^%RN8jM2I$2XIA`O$CXaD99;^%Fb}#8#{xXZ1e@EQ+lJ{I7X@@K`gx=UYx* zm#sqZ15SSW6r;l=C%`}Vv-|%mTP5Hp#vc1wwpd@h`O2z-Y_Z;GJOA7VvcBvpTYRb)E^mt{MV^KPPRJmIcASl&go8a{ON45?wf9Y)`8jca(b%a z_UW2y{ac4QC^WtPz1{K0^WNvTC^o(RJ^n4fMX}|n=M!BRuqZaY{^fllU{P#({j0tb zQCAALPr_WFlQ%fFc=e*eW6|2C5?e*gX5uYaGy8cLz*@4uP)(|J$+ z=IYO^b&u=eJ6Zn%SpTy1PS(Hd+LP0NEA=OL+u0J(%=IbIPtSuSXfxNRaNdW%wChu_ zfB7gpwRgE+*{Vu8ulH}YUzx{^XRb?u{mj+Q=R9*=3LLARx-Lbz^=|d^R(0aoF5hBv z95`q^Y&>E-3XdLS`SRhqf430RJc3sQ=N^bxKW>t@|MBZMEUU+SJdW-3MN z>$3cvUO!?MdI((ld$@kY9{rbZV$r0s`Y(0ArDU(`N3j2L<~k9tTqx)1%v>je+dHSZ z#)(zqZ@9*ZRopdBtm3Y5Vik9d6RWsuoLI$O%RopdBtm3Y5 zVik9d6RWsuoLI$O%RopdBtm3Y5Vik9d6RWsuoLI$O z34#9;ZliJx-D4Z61%`?!h}e zc&7*N^5Cv3_SoFc_HdOUug2k-ab10HuKHhbSN*TJtNvHqRsSpQs{a*t)&GjS>VL&u^}ph-`d@KZ{ja#I{#V>p|10jQ z{}p%D|BAcnf5lz(zv8a?UvXFcuehuJSKL+qEAFcQ6?fJDio5E6#a;Ek;;#B%aaaAX zxU2qG+*SW8?yCP4ch&!j&s-L8PtNvHqRsSpQs{a*t)&GjS>VL&u^}ph- z`d@KZ{ja#I{#V>p|10jQ{}p%D|BAcnf5lz(zv8a?UvXFcuehuJSKL+qEAFcQ6?fJD zio5E6#a;Ek;;#B%aa||Zd+-Ji-sr)bJb1GQZ}H%IoFe@^^*BYEw|YEIn+I?A;2j>k z(}Q<;aMw6Rs-AR>Q>1vW$K!1D;C&vv--8c$@Iepm8mCA-PuDm_iVu4{&Snoj;=#9i z@NFJ^y9alTQ>31!Yn&p*$2=Zqrw1SR;JZBdga@DW;QW0Q`@6Hn-$(r=Une4&#FO63 z-#@*R>o>fe$A2f+pK#7sUxf43p>HjolKlRdzd_crOh2&mjlBC`o-gjlNp#ub`KrNM zNBg8KOB4am?RGS~57${Y;_s#AkM5}$cr5C(RUY?QBK}_EluC^EMAhyVf3H!|?z1)T zHlHPmgMW0$XKTSPe3qyHd>wuONF6YLw+g{$t@PWPU*@+&{Jlox62Glj+HZ;YdyT8_ z_1ik7ALB$B6@zd7x!=~wxdBVW-)rn#7O?e^e+XEjQpHbRi}{U`ikCkWuta5wpYl75 zLuFL1c(t)RdD9IZ1FsTY{qFk%Cya1{(psKpUPhTkHfN`rM+7IlUNUo z^zt8W#QEDsdijqI;angQ-p{G!-||`Wjr8&#OJF@P(#!uWjE5$2E&t!f@^AE(%Rhb$ zyAGOHuv_->e;Ss5XhGF(*~|Y|vHU~xI(N%n{vW~e4=otpEqnR@J(hncHY+eCF8{y9 z@=sNswOjV`zY^;ORDmC?i0tLx@U<^uTs5OIE}w?4!*VXNmw&^b#&RyQmw&^bc_?U! z?B(C^s!Y(Dl6w4S&dsqzZ@K(mi{(E{_VS;_IFGaZFT}F$mb3i38RxN=|DNjqPG!kn z{<9e8vAi1kpVBxtl4|$wRuH@ujGFqvdH~BWcpDfM#Iz^^-VR2EIiFD!yaSAifQe$@ z)@q{^+$aw`2yP23Xp|2g2Db$kHj0Bsz-@tXJSD0CJPJ;wFfA$skAYEXa8VI>it|FP z;GzV0n)5X|fr~1@BVbetTvQ1j1*7D1rdNT-z$p2g>DAyVFiJjWdJT9QjFQipUJKp|M#<+) zuLExbqq;FIst4!TJJi(YhWDfaoMZ7&y_jFr2%cK+NInO86L=b&lFxzO4Bkox6<}J_ z0^SBj$>%^%fwz-E@;T7c;2mHTKLb%KILAPwILUMB9#IcZ3O2& zB9#Ug^?`FAk+QDdt$y&-J&uClq5<$UI28sL4T86VQ4w&_5O^CHl>!%S0&fSS(%_1#bnTQrGR)Ht;quDh)2$4&Dw%wStRA!8^dH zHgM4naE_frwS$Ysz*FCK6ulnnrO{6CG&mIl6ODtnf>CjB(Jt^dFscAtGy&cYMiqjK zCc!(vs3LHYh5ndMFe(8q3WBGfb5sm23WK+TQ_H|b5%4xJ>R@nD6ucdbIuu+K15dr` z=x}gR9(Wp@ItpBr58et!eE?h(2X6zTmV=85z}vy7_koKF!8^dH!@xyF;5}f}5#XW( zcrO@rG`Of3d?Oh358$E_@IEl=AaGGBct03*2)HN-ek&ODesED4`0ZfSk>H|o@H@e% zW57if;CF*j$AXJ0!S4m5P6QWKf!_y4eHdI+4gMoA>LcKy8t})#s8hj3wctMiqs{;q z)qy_+MtuTYR1f|P7TZw7x7jMBUX{An;s^Az~A zV3g)*@E?Lvnzw>K21aS#2L1#XrFlE}Pr)e7JHVd|9qflJLQ`wsMSaH(5m-+^8ME_JKyJJ2h^XZ9a3-X-3Lnf(XU zL3|(XawPi>^o`&%`wz}}yZ=}F4-wQyBEA10`xJD&|B%MCNbf(if{XP2gX~k#_5MTf z>)5s!S@>R&{fC~fp?)?Bf~TKz)C(pGgSUcHQ9Ony0^SBj#lS^T@OCgN4las;%l<e|4;-jii6AkLpQjn09^JTdcZ}6;IjYF3oa@Gm;Hx6a8UwW_88&cY}+{z`5^0-3u-%2fq`Hx({4b0e&|a z^*wM=CHTEy)Q`YLRp7G!@Hn`r8l3wM)KlQ18t})#sAs@MwctMiqn-yB)qy_+Mm-8H zst1?-haZEB8o*`$;Yn~&Blx3y4CrZaQ4{!&!Ki1!Ma|%{|L{X_Q49Ffn3sACT$BQT z7L0lVT$Bd?AsDpM2{7sfa8Wz>Pr)c*^bYXnz$nc-!DatJ^DYnG z?ZJCIc&`WF=)wCuc)tf9@Zf_Ue8_`u^5DZBe6t51@!(rM_%;u|-Gh&M@Esm}%!BXr z;Nu>Amj|El;FBI)??0T6{RffWe-K9BqoHn){fC+U2YjdDn6&gg&=Y)rz$oc^pcjM7 zac>KCx~K$vrvG84|3UWU+PR$E;b^A+0q?^-yZav42ci2PqL>!x{s-xkpbz8yl>P_l zlb~+~m;MLolc0})OaFuPNzk|QbNP-V>64)A{)Y}si*)}(C%8!WKlFf$bpJyyxM+;e z^Sh2Vf{XP2Lm#+E??3c|i}e1(t>7ZP|8P6FNbf(~2`;kmz0!&2L){H73WBGfb967b zC=A{TPTdDCih#F)QMZAMqTuad)VIJzF>u*`*Z?ld1DE}We+L)kgUkNIx4}hmaM^#j zA6!%bF8dGb!9|7Ovj1=gxTpwR_8;y77bU=D|KT2RQ8BpeKYRyVR01yh58nkBm4eIu z!wus0v*6A6@_# zRfGQs^HRd-HQ@4~ln!PwhV_ z-sQo&J$R1?@AcptJ$Ro7@Au#X9(>S)4|(uS9(>q?Z}#9L9(=0@-{!%$d+<>YzQco$ zdGMVceB6WY^57F5eA0vK{fCcX|3IYoAB54f8^`yl_v3puh`vJPHXp|D4qzLIJTe!@ zbC%**QVPengB8KfaA!Cl`TaxJ#y$b%;h6bQ8NLUu!f_?^gIMNzAH3Gb+_{#IDn!Ou zIlSh!9j(N8sqr#6uS-{NrW=em!sExpj&6cizTWeCGr14_P;|5*<2#Ly8{cJo z!uX_dyRQ`Y3*tBeTi7_y!DEXW=XsHAdB*dN$Bh>lFEn0cJYl@pc!}{+<4N12RvCR) z)GDX@uwAB)`K(I&cAS@JyxMpT9M|(p*20(X6SnH$QLDSP(cIqT_+DM75P#|a=sJbj z<4Jz&o+!RAtkKvXV(@>yWmZ={r_qY&-T3Y>)1~xa+^T@{dV%lox`BI)E9rIJK(Fy7 z%ke$-7S{<}CgV@KuM;?TQ4{XRmVKSTl;LUPt;XAow;S&;-f6tcc(?H$I2IeLm(!W0 z@r^dW*y^Ldjq40ZCLNk z^#kGbD*A-+RImeIW`LuMNKdY}N*oA3+e%)}k z9^<{nHyZCV-fw)s_@MD2fx1z(V+(N6IV}X$nMp4{96}4t3!=t&Qx%nxa1DU#J{;AO3Uf(ZzG~Qb% z`}%&VopEnm8`Mh1PA43?~95awR zBZFaPHUA&aqnKsXJU*^sYMo>9eB}8ie+v0iCSxVB{3c@$0(%k8bMwqe%#(EHIT!Pv zYv#wvZPt}0zlQvp$tcdOFPW?#^MAqr*YNGg+fBy7A#0wUd#&>*<${096h3#_s8h+6m!yAX^Z)sl+PCPT|eK%YNY=3*7&u!5YEQ+rkpN%c%06rgz`A_+LevfyJ;^VA}J7V_we8zEGo|W|F zSwr?WKp&6duP4$?0Y3sDCG%>!XGKK50BBJBbM@%zi*P6+ylgkG2wuBL5t| z3W^~w!|jhC=OLemjA-Q}vo>6b97pa&rV5b9;8Y=UA#SINI6s_9AYaA#k$Dco8{{PCM?MrPLvG~!$mPg=$n8)CGQK*k5vUS5f!nz>S8;xLB~*?4 zRnCuGgZvcoX;3XP*G%44hkP0`Z>#70$h@rqnU_`NZH>qi$emCVatYWr^a4}b3C^SsVe98aYL{sU~+gDFg) zg;TcKzj0^E<8%n~($Pv%wppdd%N^hA@7T+YIk8-f7(a%@S@8u5s?i-z2f|yfrrd=7^2s6R@$bmaWiu5gd!Xm4N#L zs3pj;V^Km!tzT+8mP~ji3cm!Sq-xr>MN8!bA)^;Uu?m?Eq7r>M7 z7`zO=AG{o%2d{uHf>**9!>iy2z^mc;@EZ7m@LG5rUI$+WuZJ&(H^2{qH^K|xP4I)^ z&G15a3!F7>3Vs+o4Szqp6>hIb@WV0P4o|>4;77qb;n)mXUGQVz-SA>~5Bvl0UgH~$ z_ZjauK45&%_>l2U#)pk>Ha=o}tMP5dw;LZdzQg#K@twxUjqfr(0q5s23FrG7y$!G9 z{8Taqk2XZDJa}!g%ZkGvO|<$7;9LL-;rGp6Y!z`Dtr#9hlk0o&xY#{c4KH}B{uC}> z_HnY&tbUa<9*flA{x|_-ZY_Q3oiDLph4VMSAN}PQ=QMoV_zxU6*8#JdaXb4vTId)% zjpG}!aXce7j$g!9X1pAZugw(|#w(3i*^cYU!vh;0{^EPpUn9r;{#yENoOf^czwc`Q zMK>NdiBGu}>ce&gIhH~#XG zkIBu}F!-ToymDc-HiKthBaG7{;OX;&dr11>u@<gu@-g3Jr4t~qGmflA#z2~I| zMFrrY2Uk4t@ZgFkRy>}0N>m8`@N&id%@3J3-&3>Gj{uR6vtmbF>SN??lFT8)!NA`c$|E2p^=3>u_;xheq`@fz|`7Da} z-7w^c`Chy#%3e?62oUpDL}~x?IO5DBf(cnOOOv}WTo{VUG3QLyXe@w*fswg>O1ALTa>IQ=Me z9Cv#Z{$BQ@9J8T!rXOWJ`=#tnxc$#e|B2I&GSh$J{6?g17>kAH??T*tC+tgkulrAu z`2G#%e!&WU2%0~U5tV_XPvxa-$$1exH)6@{mA??lc@jKVB9m!7M#O%Yp@)5Yi2X3r z^6yR0z4~DWQAgN)E$nZJ&h)pi&qexR=#iQJ7Q4^oucg0b_cw==?BlA4bd<}^aaQ9z z??&IA$ePBa>-KkRy7oPK-0bI9y%&E+`e}GyHv9c}i~bsCuHFC2`!{u8bJL!D6t|3; z_w#S__c1Tww=oo7``hgw*qh(StZKx$01zMFtAD_}{ZqE*=iuD5Cm+QPe|w*g?!TG& zeT;LCSpH4Uxymc?iN}$9QEyWP$YXG-5Si!wQAL~|P9>19;{3?P$d4m`7AisB2kcJd zQsk47e}kOl{K$twWyp=3AGsX454jzxKpuyWK$Xbc4o9IX&JVAIs*(8{n0DkEWc~)` zG^iGtJ*&K}4*4`>-d4}~k$GDK@&M;YZbY6y?u43NNRA13&nJK7%oJMAlPN@nYw^zZOkKqC$YbKI|DWU2t)d$ZT(VB9aa%D}UK8^dY#%h(4z z_Q5fN!+ld?zs$7!d(-neK8|T|YzRg6?_g$Oi<+e&%%A-m7*1~j&;AVzr};aWBK!^} zTYrhagBg9~2#a#{zu_`53phAIW6p+5Bc z%UGIqGBdmOca%CXfyk!>i;a3OR0!jEaf%ZTd{HuX=fpYlufsQ~0{D#2S0+n#Ks&3n?YU4G=YmL_#uQ%Rc zywP}*@n+*K##8V^(bC3Sjkg(ZcYJvVeEISN5A1|5oHsAh1rK0A%5FGYPq%GWuknq> z`;7M+A22>>e8~2t)+V^mXZeQVOMOdxo8brg@_i%lpg-W>3itbc{%vr}ztq1SzQpej zjKX~ZE3gB;G_WKv20t+15AGz#aH!+t!6m_6 zIA4DSoUgwU&evZB=j*SA^Yz!j`TA?&eEoHBzW#bRUw;ERUVkGwUVjrgUVk$=UVjTY zUVjSC*Pn*-^|!+L`rF`q{q1nR{tn)b)@i)Uc(?H$y0-UZ#3RyyxDk*@f7@Mw6yI<9@z>%{IJ4< z+TaH*Taw=nU$kgptOFjKKW9!SJQT_abiwWQAI{ceyw~_f<9){ajSmbcT35Yh52q?6oMu z8-dJ!6Oj4e3gp$SaEHR33U?{ot*}+$UWNM6qYJ1 zQ#eIoT7*g)*> zHR2eM*Ku7!aDT6p(yc+*4Za;X0Y8(Ko9`=lr2zwwd*i(Y_R@j-pWW9hfNfX{86U1_ z-=BzzqV#IUpE+#U5+JXo61CuY8hh3Ked_*xg$ETLQ+QnAX9`a!JgG4BybHH^-i00V z@5j4&EC4v$c^61l#CaFK`(`5?^EFo@Ve1FHl%b zKAyisxtA)`$;VZzutDKEg&TmpHY#jX*aS@b9D0@Ro}wJO}J zaG%2cL=9^xfB_heqLIG;RpXz#EFQ$a#<>GnJz+8oS3cU(_5@X|^*!U+l z{)vr$V&k80di>*P!aQq7@A0W( z9BF#G7)~kzuj4c^k+i(KxP(*;-V;-`$)uX@BA-+u{b^G>PSd8=W{5&kDS6AZ>7=(a zL=mZsyyvu8q(5eeV$u}w(w@_++m7pY%b7C?(AZ;T`KGt|ZNl!kZg~ zw;&3yItp(|6yDM(JRLk|rY=bc9U`cUTJSP6b;zF%*)wPrcrLdN`O_hPI^<8c*OAvp zhy3Y~KOOR?w`*X0qjkui4*Am|e|m>?&t(hy3ZO8^{}{L;iHgpAPxcJ8vYf zREPZOkUt&rr*~^4Z>kRY(;1fFlI4*Am|e>&t(@4Xeg{HZ$RPlx>JkUu@E z8N9-&I^<7>{2>m|4)Cg`>X1Jj@~1=o^!_`+n=@61{OOQC9rCB2w+p=Mr|OVD9rC9` z{`4Wc!MkCq4*Am|e>&t(&us;7;Zz;+r$hd9$e*6K7re)(>X1Jj@~1=o^x^x!>o`q^ z{OOQC9rCANvS0f1Pkwx=AM&R|{`C9<(w`sl=ZF01kUzcfAbHFDkUu}JMTf|H z&JX$XL;iHgpI&?zytL>1kUu}JB}c&P@|+*?=ZF01kUzcjXbA6EFCFryU-@1X z-mxgW<575@Md6)@!aEs-S6FTlM}PUGHI$0Lo7u5wbto0ih~f{tP(S=F&US6UdiK@t zwAg?=U(pWa`HIPOiv}C_cg8t}kEcsF#Ev55Z?q^yu2TOQ<_f1xq`L8 zdGl59mzq)4mvJLw-wu zpI8H;6v(Uf0n8zcxkTR!eBxt^*bl_inePB_?eK0E?yty;`}6X0E9CyXjx6Ee`lDXg zSuI?D#C@>6>VBbt$&Ek@!nG>gr|$0u4$Iw}eo(m&D?Fm`sKWOY9#eQ+;b#g@C@kD8 zlP8K5a-Ut%h;JH{dx63RAk(uBSZKrh8eoT%-eMzg#6>sBa|`>4 zAkT?x1v+uj|k3w#Xq3%pu$564=X&P@TkJ~6dqG}9LVc4AkRBI0pvN5CxJY$ zS~LNB|G3@;W|HJ4d+(Dz`^rE|6Cq(2|aC zQIy-Kuux$UP=`nr16iIWl5Y`Z62W*Fgv+MTt}t1lLt&c2bcGoToeJFwa}*9#=uw!f zFi)XZp-*8Uu=>7jBZ`1Y@kOE-cws!|*MP#JS*wAzID6s}U{br}_Dg||)Q+8WU|MI- zkXqo-VY%n80$zY14Zu9;h1M<19rpDFp2WP>KIPu8@PNXDKpXrWHu+nXegR7T0_1gE z;b#gDVBLle{y`wG!wQcmJgV?Lg~t>gSNNI26AJA+k!H#XkaFS#@^V0*#py{0NU4gP z;K_3gd6uCfH+Z4v1@bq)sbB7Ch?kTH1PuhwJTuQk4|p5n6r}<|0{XBJuvZa(3+SZC zy@_q$Ii2ZYlnmZm5oaelzzd$6c&BlGVj6gnYp2q|i@Y+x+xQFYElBE(GsQqo@Sd<5 zWS%8B5WEZoCb<+9g4eg#P|cuzziJ+`=C$7aYRUJM2i90pu1W}pbQl8 zw;eniZc9QC8;E<*a?g9{Wx;djx$iyqK~Kjzs!)=9bl@H@^9;dK_>0`8x310f0ox|t=c+0yb1j&!zhrqjd>kt1PN@dWKk(UQ;Y9pQ%O1ACvl^#av zk{2F21H901{Ottq2_VT_YFDe;8AF@-fET%6d3p_W&L!}BD{wZ9fL!Fg z+#)WXf2Gz86ia6`?EqdqZ515qf*a@3USI?I-gxo`JN=2{i;^WG4&aG^zKk~G8?YIr zoj75QyBO{zS_cfaEMhLgl>&LftuE0nYJqjOqLfuYoTHmo2h6ZPklFxjn6bva4#;Z* zu=a!0gG}epWk;=zz*F^(Jx#y`FAQG36)1FXzD)mYBmJY7of13A7e#AYfq1;w3oOTv zeL$vXzr=TLH~@5C`nxB^bSyp*KeO3@=#>L@paX9_lcgK^1loOiNg+`8t+EsWTXj6T z!Xi4O8Px)Xm>9Q;s1Ff!(k)6FfaCk=KE0CnX)_wQikP5_I)x1i*Qxs(6mC@52xQ16 zgXuo2<+N_Vo@2h`HEwEYqxi;@rBu28^^m-P;m^$wKvE)nGc zl=Tjj^$wi55cLj}^$wKv4rINHDpkHfS-wD7zS52OfU`WW?w=5zrl_^gne$5i}PFNyq1aLq0>Fuz(ca)Nl0#Re#?ojiG<__=eM$; zT1X;veoGTwoFFY^ek)5886;s79ZBhUhEvmAB+UlDpbYS`G_5a*b6X@Q{bgzcNSNEo zAi2Rq-!Yh^B?%WP2fXY|EtiD3t!&aj@cL(J7n7VxB8TJwZ(yc&3CWov29k2=&#mQ? zGE;E}^xvgB17rbJ(b{WZsc`Qlb&2?+zNabCGmsChzA8jHDb6X=wMdamZ zSCKHcRX{2R@A@3u6cXmP#*j+rufJ_N33FRxNu`n(KXY#X_?ej78b>N4@4WcyNtoN3 zK$-$xohN<)33FRllFGrm!;`d#gt@J&Ni(Fsq{Vffq{W!qx|TFM3U6){-hwE+>L|P= zQFu$E@O1DX)nQZ%o>l0OKOOSdHoxT*I^<7>{I$(*WeFYfr$heqw)rhhhy3Y~zqa|U zEKP^}>5xAi@~3y)fM+;0KjhC3`Ga53M)0yUKjhC3`3srf%Jf72{E$B#@~3As!Cz*k zAM)pi{OOQC-L)0G>`Xu8&ky<2A%A*yGkEb{P`h&I^<6u zxRd_ee#oC6@~1=obk8pE#=8BGKR@J8hy3ZeyTL1V`yqdR$e#}R)AL%vo9p&N{``t74` ztA+gOkUxFwLCISQ`CAG3(;JS09!B?tuK=0r}G*fBLoWMd2Nb!aE*?_gNI)i7332QFzi;dHjaB zH$up?TV}#`F^ThAp?>(g2t4z?i4f#7UZ!0lV4IkvYzk;?xui;lrF|iMkZFTTfF;RB z-x%(Xya<11d^m43@|>-BVFT)7xv&Gdo--L(ixpoE;Bt%Kk_N1?)XMeUD=e$z`tI8; zcUYYChxMFpAlGx|0J)xXAo+N!V_Z`+B$o1WI);s0;?gr~!Rv-MWv97fi z0@qpZmg~E@9<3N|UL}nZ{-x`?b8yw-IYh2+Al515`Ubk!5#4V024JsVy}ELJL%VjG z)(FH%N^1i0`e)WR*fSF{_co$q&5X<32ef5cGxr0vOiShgpvdfOEQm;u|-`#VP zHd8zZ{!B5`2JAhv*GxOG=S=J3WT3X#ve*F>i(!KhaiuHFQ0P?XR+yu3pu%%m-yl+Z zrxqbxuhgEY#lVcz9;qcjmPaX& zR0Fk1mPt#1Vp8u(OM$(Re;vsD*8-XURY2yy4#@mB0Ga=FL|hvbZdBN)uu0)oh0O|g zDBP)Vm%`l&TNUnAxKH7Jg$EQKRCq|?VTDH&9##0B!ea`L1JAg=8;0C&%*_D8DAXo2 z-+cz>^<*iiKMw&hUYDd;Ht;lOe4L~ZJ5ij6WBNd$cA}OUpGv~R+mjrO?>wz533g&C zDGj_mDWWGy;C&}49lX{QEt{ml9wcRe_d<#`fCL+{C&>w(tvB9nf?y-MNN(`<_7>-p z;^IX%DTn?BYhIEyN%SWT1aHM9+DH=Y#(^XccrRU|6_H>g=8|&3vy9L#C%IC@`J_DX zE*qguBvqt{0+JWJ#AVvmq{tLR z(x@)ta#FGMXI=Q}DeJtfQ%?qU+D6uh4W;%_Cv_PdHyCjBMUwhJWG zn)crm=`Z2-p9K5~yn#`8 zo+!NBD7?HVJZ}`9FAA?P3a=;%uQ&>?Bnq!I3a=~*Z%Pzic@*A^D7@KGcypuh7DVAy zN8v4r!dn`JXV{6qft}b!v=hto*USy25b-?iXPOTzTh4zq03UHYBAS4&ywWJ=4Ks1; zOyBDjEiiO8Ck&=uVsY4jhb(qs2PV@ZRF{r+!>d-|Dus0l8x*cnxIy7Yg^dcE6mC`6 ztZ;|IoeFm;+-+j4e~I-km|uwXFPIREqC;Z+3ufV?luN9C!TVA4C82!_f1hjrA`r*v z?`QPW-p>@npZPwf?u{oe|0?fedWF1?;d>a*upj*LOz&U#z6GmSBi^^Hw1mEIIr4?^ zzQy~C-~TQ2eM{$%_bs9CSA4nc~IQF1}yzV2D zHRiy&n(x(+;^H=y9%H3pqL&5JT zO!@}b`O5XZT;u!CuJdig_>#nRzL6K#`9@xQ!8_YJU#{^zmvz3jXHl0C?V1syDwc(#`LS*8DrZFJij+eGzi?b$wry9{PQeu(bxiFUq)&&%yK19=yTtjQSei z8EGGPJkxhZKDM7I-xsw$!0(ElJ?*=qWF-d+~%I}DVS6-x0;*`Txv!M87b;Jcj} zKz_F~8_4f=<^uWM&H^C6+o=ZfyPYM#3lKyH{%^k9K@?Fh^HrM%cVqiwVJ=@cim4dL z{d`K5yG-E}V6=187l7};y02=WQ^1A-^4h5X>-NXWjO~wg#{IDlE|)iIkYTWoAx*yi2|Lgl<`F!}Mu8+%39FFCwg}}32ay`TIjbFO|FxNAfx-=}l zM!N8=95A;3aKC^@J6Nq~|G?P(!?FE`?T^LwACB!mEQF700T<^Uc@=?ZKNN!;pb`)- z9~`m$hq2~E|K`V6|3B?N+`3$fo7fBF{rw>E(k`aO4pTbo1*{hoV`TboP@{hoVGAMILF z==a=far~k))&%MCy zhy3{=e{J7$H@N+fKR@KJ?R)MuZa?Ht?pGN6o_kFnKjhC3`D^>0drgiX@+bEz41Uku zP~?aF`5}L8-*c}i@d$tXPWu&E>4&=!Sf?orm}3tQ<$@n`N`7V1y#W9GvURg%vld_D{JG_w>5 zP0}cz#RB5~X4)OPMzY|A0m%uT^)=lp=~Z2`g52QQQb*b(C0ndE5cfa}@`^1s8;JX% znY_3Xi;cv+(IR==CoPi4J<}q2+&?XnC-)wU?4!8fQDh$__dts1qa@EPDWi`%ya(>c z_{fWlkG#k}Px8p;WyHsI@(0(rEuqA9@)l7vGn8h7$3164iQn*thU0I3!yg)szh{FN z8jimUXGaMO-f3aMiwtX|AAcM9>t8j$89QHKhb&*5o1$=+!rcm6CC1KID|`@A2+=J9 z#?Dt0;v4z?-Xdc2o0!)fI(Sh3T3}9AmW$`B^~&hhjpwU%O-t+808B|qNZ|QuaX3(I z0}ulp!SmI4H7aaU7&~9hD3^hlC*|c)n5!^Pp;w^~=oGQ@)&5=QtI6^IN2e?T6gK`p zj>-dtkN*SE7@#j1|C@VugpU6)1{WmrvcXQy#90L-4JIGS4xTG^UcuLXUcuuytANC_ z3P>d=XP#9MJFg&iUP0`<0<3>lXC3fN0}{vokvxw7BY7PENAfuSkL3MJ#{WJYFPA{- z;`rZ^uS??C-yHvI`!LoAaqMr7|2e)Vg^vGiS3GYcnfEyUkDK_sjl{9PIsOmwLdO3l zFLeAL$>aDxlE?9XB#-0&NS+-3NA^)1*GKkIa;zWGN1bW>9~s}CDDjcU{w}o7lRWZy zwT=IeV(-0BQse*C7>ft#OymF1aQv;t|G{vK<4oiK)503#|M0M98UM5YKl!q5C583> zCy+f*ME@`6_+$P5f7W?LvHqX7r!L8S2f+FN%-DHFvGacJ$prQvLrt%*6+Z^Z%jY z_*?b=!ElU2_5Zxizj0QNBMr{d}va-=8&X5;MZjw-W7j z#3#;pzE$ne1GxWx;e4wzeRuYCoonTVUB;`>z^{CcRqUK9jD!Ad=Tu>P>?T!j3e`DP z@n<@x%7^g|uR`Ey=R|q2ZjSfA;d7$+THwIef9{;9fA$=x1H07ofKDu=JPhP@T;XR5 z4?zFw;2%_a_?W`u3O`eLLZN*xUhDGQDWE)e3K)8Ye!m{|{3#2*VF!I}->;|Q-2sT- zuQMs3#P8R;r!KUT8oL-|oIjNzoX$4-((|V-$M@?XQg1X_sdMs&Cr=W6!QK&#W?$ z-?Zbrkucf|-r2rs=NVQZ-?V=hXIBO3+|I7bfb_P}*L`-C2ko6_U4;_AuMd4De@FYi zJ_G(j!|}HhyeEL9*A&(6VSL7Ao|*M!=Vh7xP5id+Zx?<4#naEn;{J{JFE_{tT@Q-CJ}PkpCcVjwUB$o(4U0^82b!h8|jA?Ie5*1_GYsO{V= z?$fwx)hctJ#-t{=L(j?LK8?ECr}4m(+oGO}C0gIH$o(0g4UC9956jq}(XR3QD_-1x z(IW1M_2Zyj*_gLjPjPuqv_tDb|!bFXCm0%iRI zW&HwW{Q_nEN<{qvW&Hw!=VP(FtLVo0V?dsdRS495C~wI}d8>1#{$tL=!q`aePYRUh zhymp}ViGaM4&*sv#XwnpKv{l3S$;rSen44%5>b9YS$;rSesds)EI*(uKcFl>pe#Sh zNBLdP`)EfBR}m9%o|wW0h3nM)4GK3ZYy>ifCWTuSzggi9g*z4QQn*`TE3gsa_ewX; z69dZg#3aHllziA<3aS6TuJgk(IxV!4&gJ~D*!uPV-1Ep{>(^uJ*SU}Xzw11**!p$K zU-;Vh*!uO@`gOSm9d*zU?@}4pc%4Ip?m;AM9P_ zr_G;X!|^lV;N=4^(qHfL3e}h z13d)V2KqdLo`Cyl(DNbu*F%1r{$By_x1jeydvE+a&;%k5TWHWx{3dmVn{>8x&RYI? zU_R(hkPcc5x(9SW=wZ-y(37BNK`((`1N{c{Cg=mur=TxDR{!ULPM~(6JWwfU0qD^X zs>APJt@%9g6A&?ftwEpSH^~h*NlJolM_WE~`O4xx!=I7)1%;zVk14uz>}AE5j~icd z#e|8aldim~Z1UC9D=KGH&73uR&UM$%yS^=l&zLu-a@vCV3#%7R zTUa$~&Z6q7h0|tK-5e!Q2rDvtFyy?dY6gzHzo@EOJ)`=&3#!m|Bc5M9d(OORbLP!a zzD~Pexv*+_b=9=W8&w)2!>ju@E;z&e1@q_5omORrKK=Ps)w8F~Ur;sA%wlBx3l`3= zs1g^8%L~sRw5V#)BK{B*SrtGPBeFiHvTE8a6Iubb%lp#{3d65^>ouy2v*Lns=VIx!`K!wx@n7UTELpFni1kv z{xoAV(!Z#B`a<&whR^W(tf|@B>-PL%U7z$gAl?!em*BytJ;oIu zHz38Tb&pd{xkn#=qx+KA?sq=lwx#R+wVyuy>YkI8*;icO_4PmhVPO846T9E}V`Y=? z&x@_ME+6#4u*T0GylB*+4SVhx|91Xcr@Ak@clEm;j9uE{{w@Pv8+O(8L#Dp=vnPGC zFMRHbzg+#&`G+34cdA9o@Uc-OBTzUEO&n_JF`?BusA1~Um<(6Z|x?Q*b#eR$A148~ha@(t!&;B6p z!qtzx-0M^4w(5C3hgbYy%e@;W|83+Ee`)``N!p*UeQr{}xfhpC&0BbL(o+|7eRJ$R zeFo0I_Wljetyy!p--*w9K9lpKw55Og-H=XC9N*QNRQ}j&J-@&FzFP`q|P_cJ)hFUUcUj=e>Sk{}uZ_{ME7k zABQ9@vMj_<8bw89pE^X8&)*^gzpv-&F?g`x!*m}Jn636ubugN zVE9Ls>$kM;_tMl4yPFl~ad{GhvSmvPCc`tx(>^}2d}WcP%4*YWal*!T7HyYjWaxbj z_dRVl@yl~X=zS~h`z!^89?uZv>-o6*4_&bI*9o2l|I_tvDU&Y>w6+^EyR38SjK9}! zdG_=1O+WkTeb>@Y#gF>+r@y-a{=Gj}U;FIB$L{Ge{M2J_>gRWS zIeSa|;d|Hhne&V4PwsvGmt#M<|M@xh9(_A|eBR12&wl*Guj_vB(tXc&sM^@Pc>jaR z?whm$ljjfo)1aE856^p~wtDPAB>wP^cT9O=VrtFrR{j0vM}I%_qX}1BvcWNQ=b#&2 z8nShS>x&Kh`dW7!P5JoQmzPa`ZcqKz?|jjW=sC+ek!Mv2D zS^fH@ogDnj(JPXk>f7g)K2!2sJz*caLo+sC&drG_uM9nCx7>4GrMoSYyF7>3x06f z9?!F-@td!h`*Qk(kAKtcy)~~peq1%l9sk4M^mpEP)r#{|KHK&BPlqmOyw0)jz%O@o zdA_OJ#79S7VV`?puOEJ}`uD|)i~4RYy7v!H?B0=EdG#wV{v`J~;C8-`x7U_m{jr@1teoZ~e=E&F{MKky*#%AKtKU(~GxOCT(y3_h)SzMx^!_ zlhNt?b~pB@z15cWm&I@7taZQa``)9k4&D9iE1i>`z295h-m!7-teyo==3nx&XAizu z-2eMkCpY$6Hu>1+zq$C)`9GW1wQS7Tx^9JY!x|GDnMJ}|m*+1UR$Q093cr@;)fQpY zVm9MQ?;$2?2FBmsw{C$b{_uHP-(*L=3&kSf+)Vp|} z_gLPs^Nx>y?6TkYY+wBQ@9ZA_j}ia#o!@^)A8{b>{>wie_xbooix2nwLGiImHWZ&6 z(e{{!UaCFu!;kL#Yx}@6zj^G<(z{B^t=f-YyYULio8#(JI|CsjvsOPf&Hu0XL*WA13ri?#q|IT&ASI-^!eeEyfYo^Tp?26pi z?SEhU)}luzR*dMMY@cv<)#$1B<#-;vutU-lgA-FOaNpbGJHPMq^Eu;wzU+bbdvv_N zXLZ?mxq~iv{P0IRzqsbFO_$$1{i)Y({oaI2{^!Q2>pT7B;n`2a%6q=t*Zb{#-~I5( zXAh3P^S84uTlnU>gB#x4F?PlEKkfhGAIEq3@Wqw?{i8`U*QNgA4#%J3ZOcy`Z!BE$ zU)gV8_UWcm*S6|+#BCd~+f}r{_Q~%npI>}aOJ%;t+5L|x|G43~;^k@S=l2=>!XKX9 zbpHNT7oB(2+CNY7pB!^b^S*cgYrxRE-)U^!(Czj6mu;R|`2EsHhu5@wwXWaGzq;O= z^W80P?e5v-=552@xN^q0>RxGYtVv3qTXb~SwGYgD=Hr5g_inwYX~>1Y`oW)v{<`1? zljlA4yE@B^$9}o-$fY|Eecqh#Y4$H#US0j!pT?v+em#HH@%dvHPI2dba@EU=u2`S- zv!xGie9v{s|J-wU`pWhzIy4-~U%L0kNA@3Th>N%Utz*XKJ=3oH`}PBK?&@0h!@d_k z-8b*Ioj&-Rb<8g?*28%2VLX@XdXf&F4E*C) zCj*~>I^lN@P!?zaXc*|uC^Q_rqA2`meofv4_`e!76Lf1mE$AayU?)um%fFOa$y;>yU# zKrAHQJI#eykN_Dc?uEM$ONNRQ_rhIij^qrGiZjIJ=#uUmUF5kSuXsv1>J0@0YyghC za_Y?0_iTTzxMa%gx}AYQ@f7|I1jd1V|8}@bN~bVDF>Y@#{L}l(5G-C^`PYy<`4bGU z6iD)L8BB$y59x;v?^29Nr2bekWXRBH`eSi~{$SPw^#>P*8Tz9~j~<;ncOLp}&>ww* zmpijhA5x~%%?rw;7iue`yWw)fNj-7;Jt!UUaiz;(P8CkM%zNLY{xAz$mb~cHtt(W> z=nm3#F8ZTrjw8*1pgo;#hr{u$)gMx?J^gbdeQk*4somSCd%Dv}O7GIEmqF|n;3K1Z zdU|@7E?>db9p1X6r753qrFC>Tlnd>>qa!7S9Y{uZ>Xy@8@X32^&-*f0+w1uU{^p9F|3i(T@)C@ z{($~~Xr9^iP3n(u`@<+~HJ^Vj`XeWr{qb`nx^K_l|GoVI>&(H5GwcuLQWgiyWZnyR zK|fGO;G)I|cPWb_B_$;p_d;CkiVXV$ai*N+LM*g8a3xdB!d%MYK%7aq7w%FPM{;tq z9rr?9-(LL@AGAM)4e|^f7CC-dEN5=o#xE|)nmK+sSN-wt8^2_PjbF~-f`};n!Azdb z^-b%K)Kr{sBgZdH8OAfBju4?gI&iRfrtwSB9ELD2qn$qU?Hj*H`{S7x&GE~)D`(%b zdi!%f@1K*Cc{a+y<;+l&_Vu`E%Q`a@NmJFC;dV>vjwkf#g};*0zaAG2-d=c)q;!tN zdv#Zo{_WKt8a`gL#c|3i%GF!6*&oT6J+nh%ahWD{s7Skw;P7yU`H$0w|5P z(Pn?h@d*CFn1!Wb5`Mu@HL2|vIscsNo75j>VVmVdEHoSu`XgliUKVZ@ry#(5lLsKB+Sg31keA+T;E>(VNI}F+qH=f&R7)ogv9uyxOTQ=YkMul zVhpu|KJ2z+Eh#?5k{H+C+Ag7kHKAQ6Yg}S`Yht?ykHHYJAOFr0;0uimk&rl2&dM2! z7n4OoZ_`ctGF{ltS8knYwF}!=<@V8?CT!D`+ex=g*cO@LmHRg3uCIRd09nr`{7D)- zMu$UA^lPfcNY_&iEY1qKX14Jshp@%mAipGxzc9$ZB8-1akUt@e?+@}vhpo`ME65iO zq0hZH$hU;?n}U2>7{4XRj|=1P4)Wu}`1^wVq%i(3gM5KEJZ;xoL4I5qzs-m7i`CET z1LfZ-T|(UKQu3hOnQ?~Oq1+!U|9pSOtA}RXw;4{cS-E}6{i*V=oWhJRal8@2ts;KA zv*E*`+<#Nyo^n{^RJ0lXRFJQQ@#EBUBju%CkUy#1jDwgOjK=Sze9@OqvU?AEtp4W)`B#MTmjwBf!uTtL{42xw4MBcc7=L4s ze{~rD;UHhE2`$gZf_yEE-x}mQ!uY=k^26o#*FpZ-<#(`JPUMvDv~d1YS0gpA^irux z4^183f2w%-4k7%G;rip3+>Z=1Ak*OVQn*(Rz_Go(a-XN%7b~n(XvXuo)o3@Fj*6%& z{ml09V73t=wZDOjvJAw=fbz$6JuMQAzj$vJjOhlMB6~@NWzCpBRisgvHaw ze=O{|A$&bFo({oy>|yb=@gI|_$V^WNe^qEaorCc_mU;&MU7`FQLH~(i&u!yBhE@M< z{T-&_{YmHQicmkpgM5D&KhzI@7vT*t zul9Kc9vW%j;;{x=FEy~sa0B}dGjP=<2A)viyrqUaev*MBux|yg+lmZ4esMS&E_`R} zGk%%)q6px_%-5lf_9j%$3!M1b!Nv56|Plz zG2KU$dycw)K)L5B_i^Q3q}<9Gg!by!2dX@b-ckr(SL2t_I)wO9nc?;+|9@8gb>;rM zaoz?pEdQY~EJ_n4#R5$B-ALpJ}0z?=E@?sxSWTCVC2fzQEt< z7^o?ADL5p*8pMkO>m~A+vH#9a^_%ND%<@UZZ@Co$kY#d2rHh?zhDwuJHedy>U%3pA zzw2+{e`OljL%BVf;`({C)YAM*M#(HE`l213#Q-U_Zr=3}?ERO*Z`fRmBs3mElfP_?N2Vb~*fDgJvl@nGnU7Zv~Gu9ta2 z`H{b?rWxrUJk`JluQkx3_@@86uQB+^QnJ@|(l>ru}~8`$l@oYYkkk(#^-|)*9b(@qn1vSoTf&i z7bF~-nADd3VTgaxm&HG~E&apc|9fBNe{oy-FGPB7K5KfAB!64_N5KF0&+6Z46L%~B z1KZ0j;}C<!e*YQSd zvFGsa$aVA)_6&sC*!P+aLT9A^h?;dBQwp{;3x8dDN`8wYrC@y;+#OT$*SmBfy1-9*NUt^6Yw}bJG7xPHB zPiXG(q9RQ+`aKtjJ3Pr^72>2T6Ub6?{GQutsRAbZ35Ei>!`u+m|T&D zucj?lZ#Lq^7i-Pw2%DYvKE9uJrrJbJa}vri8Fi4I_Yo>Zb7!Y75#^SGmUvNt^{Bt~X<|jaNYg}idWG03HaD~WQJ<)9e>20O-s%fc9z{sQ1j}WcOD$tszDN;C zODyABsw}GPQFnIXE3u1*Av3JIP55Ti=kTE(rUd=)UhNi}Skc0|o`$-$i{`$`q8xnx zdg06WXb6)ctnMzLBvH9J!Dn@+iOLq1A+X*oN2Zm0h9lpB@(txtE>e&lR}SU5qCVR( zj@ZJoHOth7@S3RDjOVO98Hme;+Z~U5@wqmnNfYIp89(m})V)7d6FI0~7oMF6KglRR z7l$Zo$U~JqL{IkFF}+$0)bJU0gfL_ zIUnH2wg^4mdoj}BDieb4mxZsC?FaR+o^7rR($6-RfqG$^6DgyjwgXpDBb0-Gi;e9M zUtU{8J2zwtC(E`m8lU%WLR&w3ewn|vJQpF)HEfUBZpUQNmhVg3@{Q-1 zI*55T^)Y4Txq#K}hFnlym`&M>%yhHg;5E=H+`NxIqMms`|6}w~@Gs&Fc`LT$x3D}zWrccFI5ju*sBl=l z6D+>XS6h6L7a!!shjPn@ycD1eYU-H|BmP1oex$LBsE~al^9p?|b-`%JBJ;=iiV*$^ z^l?5-bGMZT+F($(*PsoqfIiQceR4DE+$@t~q#=R%#>IYt@w0DW{NoTO`-5oDEC?C(#A&Yv;WOhuuO&d2oWO7PU8WwRAEu9XVzjz+pf1m?zWjB|luk&_%SXLfQ7?YfOTiiI1O=DL;E(--nCu7DO22!-!{)PITj{&Nc&~HPOTaj9UMb_UA}stOY|bQx zy$w2cCHj{Y&Cbacph~8xp7(vYZxa>LuU*W7znSn?)m#L--E1qrODtILf|#u%)2Xb)LP+7K>7-^VHY5ME7wu(MHkS(IFX&R z1$N3PnKr{N*R~CWz4kuJhV~xwj3eB@^RK6kA6S;}!S5~3!~(Q!%`1Ar&VfJH%Rtl< z%h7{+Vj1Nn7Q%M0W9LNMHYeJXP1^a|HXr;wi1MS2!{5+@+lt_qzb`<%SsuTL_sm4! zujLMKj7FdCD-8tVb1y`Gm=DNx1Itx()dXy{T+^<}hF?A({Yc#q^riCIkhdaHP&WuR zCxl6~v*fSE?k?K|`kEc0qKEQ2H{AN7-y%)b7>i0hUmURjKe*Bi@kKae| zJ45+-55Jx2_i_AAfnIjQeE?&{9NxO@Z?)d(Y8y(vn|Eqsg@%28-?gMeCRj4=r{7vZ{%Y9>cRL`h?U@@ zPqbrD`+DT$-%bA=x|yaxSEE&Q*5|2+*(=%0WnMBiWIK-%1yvdvh% z7p01%fymD)@X`?<+wps4`EIA!)RGAOPj@2Ac=AbNPQ&7yf(|I`c){OER0d0N6H#ePG*`PgMYf^+(DUj zdlUSj-0F9f+4>v^+~v*{ncEpIM`Ue35b!rU#pZf}vPwMR6RsUXb2a!Nr-ef`kv}v6 zI?64YQ0|$lePZHJ(;h^xhqPvHcft>Cah9hOWr?&ijO-IRjzzh(>?nI-HO3mK=gid{ z3$;VJ#G!4_jz>oieOL{Rk3(}I_erAMCJX*7b@CzdNB`dwg$+rFtFNd@W7=GK269_N?Afwio%Yb;D*tTKsh!+tV%@0~slXJvYIUzu6-jv7=!ZKB=eQdF%j$y*3Z4PPb>-O#|(X2(vf9W zPzT*Vw1j1b>uLC5+C_uai)X;b@=KeN@uF-|?zCN%Z7B<;ran$oG@$HqfsHun66J=x zz|LhD{BDLGK)cY`XUS)na?#Evr2Q;(4bRHYr5;3jTD~W0QI7d*(Z(U)R_{Msj-$`9 z97msXIa<*#RJhG@v?I-&Pq-5E2P2?|p+D-EK_@J+yigYqMHnkv<))Qp{}03vPh{G}E#ifSB=KTHHp)6j#HD8ERiF{?YjpWg=;dEsrYKJnWI2q9kSC5a zqs!BT)5@XfGQ2CbfuG^%%o+jgvP0F+#ws8si7b&MXn;@q(Eek|V^AwO%jDkLA zn`)BJ4A)8i=2qD6ZnPafS4Y`e(XPl#Mn3@E-f|55Cg?}n1=L$iJ8Xz%_Sd<{Gv_L3 zOThkUIs{&xSTQsQ?VY^tibsFK-plLSpi8|DImEcn-vk>2X{y+sgLx6otGTvfPeqi8 zU37GpDLw2#{y6uP1)Iu>0VLY#cB>d^8{qJZ-SBG@<=bgP*u;$OLcFz_dYKpXGWBaO zdGD>&7=y1Kz&@;1Ls`Q1;XD)c1@&s^T&p?1WET~yZ74?@p3nJ-c1WK^VBBS4pJqY7 zmx;PZ`K#Y%yZJffiT-RMX~}NL*VsSwMBDQvj;W6qjUB0DDHmHQ6LXmvC65$3dq zc2fRW-nWXHp$<#A!{{&kL*sEz6B91TMOfNYi55d|kp~+BHfj089Yw{%m~YsQgl^*V zD6e|iY}A`}r(ML|2^;e6BoTjiA7Q=QMf=dX5_LF3-CZjx>s+X_ zEXW1wEQ5T;O_^o9raqVPoJrng&DPeBfX>Fa$PJzDfGy{yn|a5)C+tGH{f)+aL%8lX z#!xF!MtjzE7cZ={i@kNOoC3^?>1i3_#U_?F?Mcj$B0seG_cZBc2l{3R+dXL8_qd#X z>>XI^#^iGf$C2r1cdqnCku9v7?Bbo(E+=K~AyCz;P-aO z)db1`Y&+Nx?2E0iAqp_(OWA0gfVsYVSVy=Ql)K=ZIPST{>@_~bPn!}tq&@@vs|#bA zEVLK6TObqZGE?AZz+EZ|n&ZTgQXgcZ5owqLdBkbqrG;?wH}WwAveeRD+2@pVr^Vmk zveYyL#Ar`e`U{vJQ0 zw`Fr9!%&VG#ww0r9!wiD1Tv|KDrju&LPe{TfDt)xj5QD*>Q`}kf$nP%UOYW?ib+)^V}X} z1NU-7VcmfAz2KFXx}2@BJqqeian2^kkG8iNW1F`zKCXd16E3spC(wSWzjwHEP{$4> zLre>75at1Ve+%9Rbu31?vu;uU+xdf(F>T|{C2iIO?+;-2yV1A7P955Z^5cwi%d~z~n_Dx|dD%Ip^RjbEr$6l@+A$-Dy z{{1${bojioF}`>K#T{g3hcK4++Z%rZNiBTeQ zJYm{@Ob5o&u)UtD$5^@^V`<3y&U%cc>oJx_J9rFj#hAk_!`z@6kIVL|mldE7uY!%o zcDq8bPjGoK=F8EAH?a`!0-KEX?Q9h62M461hlF;auHgJR-XS@lyD|1!fwoqIK5-NJ zMEMTQMn2u_bIC)PoGkP$M>w5>zLyW_OEGp?`n=aIM#@)XLH<`EBf4t zbV4?dSaVR1?J2Oh?z3#DTR2y^e}9x!e%?(Y4E+R%lWXJ)8p6{ z_1TPh1o+X>w-n$#SRv%4u$lcrK-giE6*On0jKRA<`}r2p5A%m(FlU?Koh#l(J1bnv zc^i)7;cn)9)iTjePHCK&zA4onEwpCb90Dh%m;46JIw9quiAOb#dS!x z-K%4c(06GP(w$>*r6*dLc9)|Z>86a1#{BRsge}H9oEw@&xz(F4#^HHYb+pxHK-XBr z*zAB9JH+Knv>?uHloRl!d}oNbZEP2u!&o4)@7&?3gnd4`UR)H1=e><`8r^Ke{DR9d z%P1$@9*lF)UPdARR?LwVU_DF$-W6kx4eiox*cGtLFy9oIYS6Lo* z{D%I=m@(h&_h~{;w+mO^3N!?$ zrH{fm$=@=-F++Gn4gC1hvgB_+=Cm;;(6wBSDfyn2eGJy3wCH$mNu9+01@98-kDxD0 zM<2%btwO6{S>dpf9mbq8@(o#b`@7>Hd5jNQ@g|953>{@;BJ zJ+j;`M|ivkgHAzzfjM5g*ix4uoSR@fLDzWtxG*r&(lnHJ<|dAL;>1htMe!oV?}-Pm z0&<`EFy67^T{p%Ls27aeW&Acv{`v%wwdNStXrWBdSLeE{A_=@rymwsj83)&pbwd9S z`7ULc1d+Lh?E<)oZl(=uGmxu_oHXR0Z2~p~a;srIk}-dP5|ndg)C(Lh1p;`t0sAC7 zy-M&N`w-r9MBIZLa~4J#Fc;vi!BgU7UPpQ8pYiB;d*{Nult9@azxPnrxSdB~f8@J4 zACR3_!+Xtf!o5a!;9Z(SgYGP7_-i1}3mL`|w@Q!8S%dcMMj84&R)jO^i2g=n{<20s zYXqMKo#W1XQO-#vi$2@gza(QWJs#x%nDUF{khVun1DKp{xNgAz_=$KzjYSy_ys!5@q{`paMbKGk-Jp9O0H5*Q4@`u+8~ldqAv2tzmrmC~ zkh?V)hr^%wp+8EvhIWr zYm*M;Te)s1K~z9CeQ3KCXuAa=ZMWb{+b-HA+K91^B3e6U8)jQ}!lwHwZTaX|ZOb~_ zvW;z7>R8#Yg7YVYr!3pWNL!kS>w`XF4Nh)e-6n6F;H!Z4z;;;AY-37RBp1?;-qe_L0gD}yyAU4 z{2T4(F~qyMj`C#}@%Ol4t5D}=;k_u^Kl?k}Z%zw)t-0vCU(S z+CknJo6+VWhih1`$TsucKT%))2~DM<$LK+zu<4DKemgG!iqVi z+WLI93p}F`JlYI=7W-!EC9E4l8_C}i(N724#z@HfT$Rqyws8g8!c6el7OH?F;l3iG zZJ6QC)HXP`!u|#)^l& zXsaj6Q3d-ORZry(*3)l-^;9A4srInxSWgF3J^kVg^<;)STRmaD3g=a2U15CXiDpwp z(?>4HW?5IJ-QmLATLStEtS5@FJ&bim9>@g8?5^}erN62|Y!Ci!vpr}V+{BE;P@GPHPi-&PA?NsAR!SIT1>OYKM(B7@E z%L`iAkI>$uyaoa*pm%APZ+6oz?-M7I*p^tAlJ4)W{+2S> zS4K%1Yumms*V5C@!gx?PD?E^M*o3w4?{f^aYpbctUqTt;_jcNecpoLlGky7|V8 z^e*1dIZ%$lwUdK2<2gS?I6efbEQB#JME&9cV9< zb)%irzF`|T+QtmDjY2E!9j>otIJS*w;SBvyQ}1$``k@9op_c6kV-x?mf34S)mJHWPa zsXuI7YKEo1X!_JF6ZU4*A8u7xyo6vj=@wG3ABdL`0etW`W+=FtwM%wrCe zVd_KWp5a(0rrewHm~wB#X{@QufgbC?@fLJ}HyLA+4wabOtZ7NbTm$5u?a*;tjt7vB z4jfU1%VKv7D9pT=ZKrn#F9&g%_rL1=T`ki8Rp;;cOf!Dw`3zTo+3>_cc}TBSlxoIH zHk%-#u=G%bVw3JG6+Ue-+<#Dbufo48d_dvD3K6BAj6ZOihh6rk8|;2YIwm^#ypIBH z{tW(`cNy4Q`WBDqgN+}ezk$4UZY&jptwt)4|BU$Rs8UeV~D2P}p;jPBT65 zhAR#4MtR+>u*)#%Jn!ux3=hSi!W;6?jC9ERLSz~EPB#6aax#s0C(JS9H=b*Rdnk$= z8R36D*vyCFUZCWp!jL0-^g;9o`HDBn zFMm3mxO|3O)E!Xqi!2-2jW<9+5^XgSlV8k~h*ga8e$q*-o&3ET zOlCt6;)DL={gf4c`tKrEKE?;9i|Jz|U#yO&8}kNZ41CMr_e!~q{vF*@o+74*ccnZd zFDgAZESIGyjoBLP#vo8SLgW4l z^SQ(5&kcWke&T8I++dV*@;sUE-pL=`Wu{j?FZtuJ=iv<3;PV(?T+&A}Txa|Ir)9a= z=RIYl^W&%Z+|KH`$^Xmp?2Pg}d-=8H8;`|xgH@&{`IB8t2hyaIi}_4V3SfG^i}`FT zH?w{}tdepbxIyUw4DI3TJE}e)*A^pxpX`$HC*3UN@}gwhF8WKdzw;Dh6{1al8u86e zHgJ~GqwgrJO=h@c=rPI#ve|*@Wq$*}b)C|`A1D+mp1CUgpTgp?M#O`*p~_A57h@eL2k?OkR)8}YR1**G!=zPm`GXLhx5 zzpHE~7{JK#vWb`OV)>x16J&fDdu4mHAzr5Q1?7+JS%z2nSq(X1{_&o`#c*i%$x3e& zNPo$nTFEc5-*%V5KQ@}~amjZY?JW7u8tKm-x7pBZqc=-;ozYK+=8NIXevbO&tmTw^ zlj?szn;BX^kC^pS7q8mO?9YsN+w#Ty{?V)#aq~s;v7+`O#sj@K%uI*D$AF91sbD{0 z$d`SEkuPzplH*efmnr$Z#WW37@=hB3l=V^%Q%;TYnl*;?Vi73`^nhgHRSU1%3XJl4 zcbMUCwN>&{-ZlDD@oA2c&IhD#0r{dkv^*Jad{Eyjxfg*fBR~)LS<6=h<-bp8`Qk`i zU52}0_Gd;sj*AVv>te}w8~q6Dk?FBrutw?u+7pJqwsvW_yIx}8I)$A_818#Ugx5oS z2g9xE@q!mKS&y_I!u_fGLj6en)YiY7&sW*`vU>Zv>#O!6Sw8lK$}ash*#8>oKYKkU ze9iSZ>RVQii&Q7jCP|T7pDA7ljDh=W_uUCq}{el*>5OQX}=Yn7Vb@{ z@2)-7HV#qos_~NQS9Brm-vrfvp&dy(0gvk!>7Rm?AjU}lcICetJR0?C*sJ41o@ek) zyYJV7&G?M|bh<{xVG(~=K>4-=^XHTK+pF@Iq4I~@gQVWK|6zd{FT;&I%kvC>Dxc!a z_OX#JW#?kt#fH;E*?qJpjr*tD8GQa6l$Yvnq+YVx_sVkrYq0+|%H@yBU$lB-Jjk1j zCtALZ=eNlNpZEXR`xf{pi>vS1XE({_LRgjn0TFhS4TMW|iKr1HEV%$$)PPa(QjH`a zDq_T-h!)m_AZjF0BH*PqCMdKyI!(zDqj30bGRdneRnApW_j( z;QNCIqWSn-E|##~2^Oc{pQN9S7JNO8%iWQzn$J66JDW;;ifzSlL^mf~k-pG-FlNO= zR$=1gj^_#8{n{VM%No`u3VhH{DP22TBgV@Iuw|Tn_pvi5JsWdZ@Nv&MNb(nU!_Y5P zjGLhl>qFtN#wh2(Y?O#6=QWsbiSh`&FELv0bLw$zF41?rrei9nuhxGszC_lG@}uxw zQchXyR<2K>@M(bYljCbt`s-x-AskQNf%cH3W#++MDC`?3~p7XEyEm(2TyEZ=K(qPvUDng zlxKb(e-AxUgp+Ray>cEb=gXK6^8iWnAwuv={-@B}lDnk-QNBdhPwGw4@sz%Db*9MY z3a+;nCGC~=mhikp$YC`ff$4+)K2PNN*YB++0P~u7QGdZ_@mYf;-BV5!;qN&SvI~0o z{Og5(?RZYN2N-#Lu9iEZ-OD0vGKVmo#^? zY&Twg%rmpZ`+sEddL}7;zCzcV%1d%KG95Sgf#}gMX$PP8V1F3z4+zKSQ)DL<^t$}G z$ask|UIO9?T=YNWaR@!By~&Os^Oy4tsn@bt8D7vYygDP~0NRP$Pssit@)7+v;lZng zUiskF8wDLM<9rmCRQMdx4Q-dE+E2t2{TcM+<-oYE%R%Lf$af6Y_jtCG^Wkx9CTygn z@0=Aw_*izksBd*b4CUiw2~~uTVz=ML8)7BfPPmOtX(T+3y~5`Mknz&K7q$=MHSD@) zNqOp|0EAsa$ zy;a-)<@9B_8-#n-2JW&qJ`wa!m@VnS?Xe)gwvWql>3$>pLGEYle31F;q4y|059dQRRL0&zJ~IDNW;s3_P5DE1jHYmJ%kubf zIFRTcVjYG0G5H5cm+Xn;pDx{M>7ouCSL-a$H@P2qa(AnAp(k)Z`WSan2JRk^F3m$I zeUyv4A?Z562!x}ZxVuiefO!4zS}FXD!u?kA1<{S_jrY9%6i(8e*ZUb6&b_HVihn$Z zyYec9ct$?v{V492CC0{8YJk z^a%T=@T>J9z5ZmW{KWhF{K9pN<8JC2X~(=b3B1PG_hDy1`ic0Wzf-#j z^w4%w;l%r}omlvleORu)q<-2hojehAqIMqELp%3Wzp?*vJ4cm|l~}|tE;d`#7v(kE zeTZmpwtO7n=zm+$=kRmnih0ZIaUy=Qu**AV}T5G`-wWW7d8{vLP;f2;9I$erkVEBXIp_*~Xs%wLCo@C?;cjZY+pjdHU% zRqo-6--&MhdT0k#9_mlBUA25w@ev(A(XPmkw`&~I?`8O{gl7Qe}wCK`NeWxejz)9zfTCu zH_DIZ;hbKw-^R%Kt4FE3Yy+R)TC7UQKTDR64^fojBRJm->jaAL*qAupe}-1yN^cp~ zFNK@5Lb$QK{C2kL35qur@yPvN@{65SbH2yCoWIY*dqL;$_{P&=D@F@9DP6d6T)$05 zJgOJ|csraL5ub;v{$r*He`tIv$G5T^s^1ZRi|~(%{LUNEDEw@U>gSR9y$U;1ba^Ag zL5A>hwH_v%NI#d4Balfv{EG-r<$FQK8@TC(sBv8Ns~kRl{!jHQklW~2kD$CnpPtI2 z`W52I@iQD>&_VPo=u4aq56JW!EXEED3zUvZN}pL(LVPF1tl<2YoV0>)?2i_Bs&a3w zBsvoNR!?Eh>H_BU!<~k|V*CXOlYe!1$Ak9p-(^W+uM)k69>_dpix(bu(s49j9cQ=2 z@_Y&J{q<6ymjb;M=%qj}1$rsaOMzYr^irUg0=*RIr9dwQdMVILfnEyqQlOUty%gxB zKraP)DbP!SUJCS5pqB!@6zHWuF9muj&`W_{3iMK-mjb;M=%qj}1$rsaOMzYr^irUg z0=*RIr9dwQdMVILf&bqrV3(gb(zh1;dkfq-(}p{(==|;V^GkfJyE|}}h3~*wK2F?$ z(>CjYk!Rp8MxrOBLucF4`P6hy^|3f8#TyI)7iY-2)cLpwHx%d955xJ&x6$_?xIJSS z{6pcVXF7Ku=lA0r+2u7JoZXA_yvO@eD}c=|B7X|fxsT$x=&nKij-Q!K?+Am7__%KY z>3aPE)RxY)7I*J>*j7KzXikY?aXx-Wh-)jp>&Lr3cAWQ)bCZ*CZwRn4yd1@aHiUbU z@&k?NncVTXv*TEtnd_YuU_4Kp=Q{*x(pkf{;fNpDiahN(18@g0Va!S!M|V%sb282! zr#l1gzvfIAgR{J7@^cWPNVxZ580 zE9|EFH{Il%cH+Kp@VblHwsP5|>d0_MCGG~|e4dT=#$9$e&mZS? zbG|L{`EYNK7yQj|N3R2SX?)a&CA5r!M90q>7>jRNbNwx&EXMZZ?iAc-!f-by$uiuN zT8Mk^d_=EMXxg|V)2kA4V>y=_B%^|m2_&C{yiolhPs)q@|G2z>EWlj@x&C*EW}t@; z_b1X_CAbqJ#akHQa?oO*M)dK59^|2_*9v}aypp@CAZJ(FrlNmug&h2`_1gL`%Rw8? zTR#qUa+*uHDI6Y71-Jj~|mP z+m9WSR6R)M{Dk-mKdQ%(`-mD_SJnjohwCtz6%Qc&AZW`UN#%~z1(-+B7dp}UL{?ev zV!`#%@1Bc(+&_}|p0sLaqkYoLSH&^-aExaX>j{j|mnU4rzFYO_F8-3)5>={Y-*D-c_^*~!5=_MogGu)xZu`{X* zpqml>n5V-3cifF)#_2vCZy}PSIJS8{YhWBcg12!0)HHxosw<9(WBct$Kh=&auu7{d z`jMY>G0VoB1-PH>W53XS>^5s)yo_tvM)A64lY^~*PTvNC zSUxe&*wUPd`$y?6M-Q8VdwmLMd_cN%w`>*WAQjD*~ahDb@=H0J7{D0n`mC)V&Z;D%o|dMlYWn|9)$IJ zz+MQuIEf|0-$Ze|o&XMw$Q>Wgwx)!(*!dib!lGe$y3t`tFD4yc-MujlclG?LA4?9v zRq2%s5OXd{8(J{wgE>B1UX7=i=0|x=h`i94U@4y?Rpr_-@21NR6zasQIw$zt5+MEAli9~*hE6WyP~!0$-|MOiOX zWpr53J#)v0LiU_kXUX_!gRRG>54JxZ9E|j=-0^T9XRNRWG|$2ulkV2Za-a=BudKT< z-zOT=^ImyBRGY-EmF@8VV!dd*P<4wOH@wq=n8VV2udm?mQ?8Rmj;X|VG>1=MN}nVh z;B@H71yV;=`pb{iC4apBLOevY@3!xGdLH`^8xQHJ{&%E4OX*O*h?XxZ{?Yc|LH*4B zi_1K@tWo`U0Q~=s{+o$(s1HW=-|qS(*)VSFUojRoEEm@kXuQ6l#Fsk?rw1h8ZT7psCn_Df8|-lD@Owy+7Ns*1dI!z*qSL}SRR>#+ z&+3m8{YYmBRKQmC89STCEdKkr7P5NmROChDSuN~(LRXlLx22d@2YIOVpn;8jiZSTp zTDo7-2m6{go7vJ`akd29{pP{lx8&z{rO$7uh8~E!z;nm1o8QpH5XZ)L*IKN-*3Leu zb>Q8)`49UT9YHT`cr48UTOQqaI~TUQM#R~TI3F8v=q`G)7190bJUr&B8MuFw%I0JZ zO%$H)@k+)RLwB4%NbQdqGvU<#oZa9gyK$Fd3WcLMUf8H8J#TgZmDyb@o_FKUXJ#AY z`iwmt3KUU&h|Z*2)I#=>?3@o9<~;UNb18eSxtKlMd@*~bc@}%Rxrja0T*#hmo{syE zr(q0TH@~uc0E zfi>1U5H=un72I12wcnmY=|;*iVur{xq1zZ~QaY56O54R6*SlGLeSiF=u=*w+{xb15 z7JsR@x1Q=qW0lan=O13F#iVV+;4p zIR;WW=*~pkcZPmn;>+yM67bxVk8W%6XUDg!sL7Jl#uBeoFUn`9zkdr#z_+ zlt+5!YHJ{CIcBu$5)1d$7ae5#vih=}=X=*J#pGjm7VN`C^h~(7GXO=-k@G6(;H@Ry zSJaitLv*P?+3>C@9cj^XC^XaW?W8l*8gNf_nl+pir;c_l#F^Vjb7egPoz_x%uOmH? zM(%h@hv+xLRgU~~$KoC2LhD%4ffAs9ds73}(bSL9$6c)!mEm!eWiQH~jx;g%NLBg1 z&GUV#8AlrGe1SDts5jkJ>4HmbgL?*f8&f>h&Z@jr)}CnmW5Z*fTI6K!tWs@L#7c1g zcf$y}a~Az4mFlg^z5`_!Wr+h{68*z4nu#$d z;G%ThZ08!3!A_24&J4>pdsfiiWfw9 z%8%Yd2XPOOb2`u!a@KN_ymZ)nrDwgoykw}y;1RTH}fI!k*#(Y^Pi(@}qeod)*Eih2)hYF>; zNSQ(DkjzL!JCV#t2aQN(_z;g|#(36HLoy>9ev%nE@C$j-z~zP4)xt=RgPvFeJ+TIQ zVh!}f8t94O^`~l}C!+s6Q3E{@x>}pP4D@8R)w#LT7uF>cp44Qn3 zzCm;vg8Pk!qkeS1_)EZ`&u7vcgyhu}_;FS%W*>n3(?8cKm*LuHQM)-ZWO=9x&Maf{^nS^}=So0(K(UslX$d zz;W+y6Ww1;yg{^eI*XfdR%k!Uljc2?#>)A5^(*J+q909dqPP^!LH4nze2FJ8dq#e@ zHc|c}&kBqwE5M6E#1;0bOjdzBX&sw*m+}lWF{cxEZJYHV9;EWGoNwLb%_N&hz_oII zT!xc%RAVik=dp6W{Vu_aA|H$=<6%pvr@Y7xCf=iMU34brZj4#T8+E7pQW;jxXAkKz zMCGs2rMgfZRQcVoxltS{e<-xop9wild=SI+++08UR0^x5eGa+fGca$$n9xjf2DnE5 zqVR-MnKM#9M)`8b1B0x{YgTEIjh(`9{Tps%AB`b;W85VgQU9m%^a1};StvY}ktj(1 zXxdUA_%S>p>Pz)7+vvx%xuV&T%0qlZZKQZt@h$NX@vJHf=h1GvW@|$V@MicgvsQe;nN*K`=dQHtl$Z6<)yx&cO z-a}YRT&}Q>Bgk~A4^bSVyP9WFIF_C3w?RK8ok_HbOt;5!=0}yY0Og#5a!%Fd)V$}Z z0Pp2@%X_-~ke{4S5tc9tAA&9BNMl0aF!SaF_6Yj?;pexM7xh7^Gh^F$o8nf*_2eg7 z(ECETUVjkwxPrsZ;s5+{ktkqBU0*s@O-))d!>mgfr)0oA1jrxBK z+g+3Z8v>OxejwQ^8tTbUe5`0pF3G>6y-R#J(mC3@#HkL^zf8>PFYe|qm@e>k=?;~y z3Y!T(r4`6x&NBSf<8KH4*a-qx`TWEZV>J1xPkOGtrsTL2`T57$mNUj8oH{3MfTBZ@ zMMuR$)DI+KpW$Wk-)YW$d3KjM3Vr=8+^fdIZ2*k_4-0+bHv zqbxWC`ks|T`xacqWEP8{yl?ViUVSoj z$6yle_sN9~G7ozieh0nxVc$U3Fm^xoz~k$9*|uyQ*v&D&OVz#a>+bt_g9*O8oV_64-!6 zoX*@_-*|~HKCQ%;Bk{LU78mRQ9{dIH{yFI5g?JaKgVS0%?a^Vj!jV{;#(t(JniHA* zZaeA>8&8Up^;=_OX<1~W39`JAm@ThLVU9Ih`;oN)>%y=}Ggi8O2kD%sEB#@9UOgK2 zBB~n#CsUg`VXsZa_W?=Rzfbc)y?zVbJr#SaXs$=}!oIh)v>%XTa?KWdc$!?m-T0<~ z(%@^kShG%ozMmq)hG6r=w;xEW5;nDBxD{j%%t-~$yg6%j9Z%0=&!IKop$PXn%0+vl zC`^FwlgjnMsNv?eqNtKaZ9ZMJf2;#eMR+O+4zkyFfQP0qr)c8TvB)E$1r zjm^0j_Wq!ii*FU|YiLff+{)YFU@@z(H-_6HR$2wko2|TNii5D2%cNz|GubrB-a@t> z;#rE@-CluL(O%=xPJXNzkHwmCCf1C}=Ig;)%uv|bQ?X`DZI}=K=k4kogfFn{AUZklzOp)o<+;|g-K*%knALI(nf&#v6VR(#Ww6!OXK|v`{ApzZ8K@j3jJj^%_Fn0_UVG1I4dB_99d3EjLJ#w&s3hQuK5!E zygK4J*nAV_xD=M?nawJy7t6fxjCrY*wO;O53LYV^#X9}E<{S0%>WJrHa}cz}UVhAP zXVWx}twfp+pj~c7_#CzsYxlIKJR^mkA4?SFqUX)BOt@^9!tp&|Bnzp3GC%C0W%>A4 zrqX5eS7c&c*2My}_7!w7k43VJ)8Z*vCiFMjo9BbQ&%lX)pFtSn;arEv`&sx&?hKKB z_5O-j@m~2am-0gSRbPmdSyVR}Eku5(~rV-V--+5WH$sHl#X0Thp9fav>`btDT!-><4BnLxB4n+eGQ zB?Bl9$pCJ{1kb3vmq*AJ!r*UWWaB}YmEbGvWvC+__NFdj@Y8;XY8IGVn+@C4P}WfW zZ3yjnQY@pjYhg3B({~+^88miFpQlE5MHAzA(AtWwBwi~%Y5h7XdNWH`xk)VnEqPj+Ovs7zRsz_~+e3&C!nS z`&fw&Zd00VHfWgZr!_^~NA0KdLAUYDHg{wYqk|XU#xd|odTP4mV8z%YQvrFC@Bc1T zl|t|1*sXlLLEepZ$TtQ&N%>Mb@I&@Hd|2ydw9kiR7UXL-^akAfSOHh8>nCAdpY#dH z9R3dapngaDy6Bx7e;9vh&l&h0_Dqt`_+fo%mtdzObK`)7LU^=vek5h5K$3fZG`<;)jpSHji7o+ zS>i)qgv`x~?28Ozo01>24+ra#Sq@gqeI$~Ou%n_i|3YpS~wws+*LVTGGLe~oUNNXe+t_tgBR@_K> z4*raFE83?Q1P#=Fmy5AijP@nuu+p`q#IxAX>CLQSV_Xfi_q`}I32njqD0mR-TczyU zX2OD?9rW7q7fU`zdJbxDO0QI=N8u<8#R;cdfPPQ1I>QQ0ioyGb$I~;?f$kIMn~tzW zNHd0|@x2_BcL3$3agN&gN;Z3KFw+8$)fd`WjBg(H!rel018p=N-;H=P=P(B^|8|4{ z{r&YA6s(*=d@DC5bsMnaBJ9Os<)F(!j77dod`pPBqFtIRByA9{@D|XI)~C@2unt&Z z5iOTO_AEgd(4F)4w*Ept5c?|Iifn8c^z^bCYFj&-nUaouL|Z^7(I;{o*YUEKvXSU(Ww-JTGI0s&Q34Qyy8jN){82@T8-qm1S z#9odkQKu(rFy__dqHTx=Y3!Va{TXTxJL%nnr7k-My6g~Ekx6qBtnp^{g$unkGXR%( zVFGkq$bY>jBa8HM$g&?$UWf&Dn$&@npY~+r1H;;G=1;-UF&@ckHhQE~7slCLlddl^_Ru&pv)5Pqb|`AwB)D=;b}?a?@$RTPpQpx%{W z{~pbK4{+YWw-Q`N=R?o7=afS4q4!kBNPIuS&ci!~HNudbM?}A$kN0=UxH@fwe?AJs zmpnXu6^6z_^*q99zN7p~qr#sh`Jqd$={>6N9B!`#jRBKk&rK3u((d@yCh$5FDOjmw5}9WlPkP!`Iwd)Y8m%Lc`-k@MDf zp)dQO7f0J_$WBB1_(?~kxvU>{k|yYCUMy47SVVJ_N2KgF^dfd$(>Aml>02c4Nk-5- zYPl>UJ==j{ENyxp@|AQ%(hm{V(5d5N7~(Cjp)im)T#tf23YWe?6mzrbc*mSB*iuNh z3hPiUv)m)R9^%2qrev18hTgdX!p^4VWmFD^veGy_3H9W*IJZ87rRf&n6$&3{>2Ebu zS!k?>?!a|A8Yf7ngARjvLj`PoGnxv4QNGX(q5q~~|90SFZ>q~iUSuWCns4UU( z7}q72V}D%<#!>7mmwkh1%YlKw>fgV$Ty zG|Aq}%M9A#oD*NmEc*zIhoB+ZDq$y$Dl5fJMR}-fs?DK0^76dO)2_sxZRp)jn!8Y0 zDo6+5Wty+cC)${7&{S5MZ_|8|o@tJk;VNR$?MwZxWtN4qQTqxVxlh2Y+ z#B8YnZ)5-PQz+|`XqzXHhuD*tDaSl+lZ>!6<2%bWG;eK$O=t8mkyXVX5=M%3@6m^g0Vr@oj3n>fzp z0qtF@!u_!VZBq!k!fuh$4}DC~xO*GN@|u@pEN=6swiaVn9_+~uo=4<-WN;L%yR!*z zf?UbLyxY4G-_kKL56{Qk+q;?O<7$5XY_oS$5Od}&n3F$^Ir)>YA3uS4xtNbrAHyDY z%$@$YhGawr_HW~^^;I@UT2_)Be5Pfo(9;j64fSm75Kjmwfg$vd$jYZPe5k2oS*CK?t3&hYskjLIbqC3S|B3X z*pNbdqHVB^6YfHLpUxUEhiK&UaIEp@dH9)_8xW0YANUyvLwrc%FZ~{XxsBq}d)h-D z6Ok^ZN$(DX#${ziq@5g*_DK0}17N)3`}p~LlKV97 z!)+#yLDEv*w{J-fUD0a)xM*@=E#tpR}{g<#v|8 zfWBcn%U1fP-#L;7 zURFGiIo)JSSv4JYoMFI;2TYzT;^XMi@f?l0N5^yM+j8BvzmM{#Z|#Wh&AchSO6X2P z|8+_oDq0_27f0ha=~;)*J9_*+(l|4rH14+%{xwo{f3^Yo#|YolVJ}eznZtCqnuRdFpZ%ffoDjMrEp63 z6gum2F7t)nU&U>vSnFycyE*Aqv-<$Uv_{mO?ldGycRCX7sgFj}-N{PE zE4ov8X^dJWX+U)b?dkkDZZjk~`oF!tWWQAPReg7+tgk1k@8Vy9#Gl(|7c6wLS3Mc;-`l2|DR-&4`}p18lKvPV*8rhmWP8v$1xk`ij|4TBGcN zE!-Yh5+CEc5i}+nU-$iFina%;aI_Ym%nCS9FNXankri-$rSmJOT#IdU@l8xV#=bd_ zrFq!XRE%$5Uh%8=6eiN9sOUudmcU+o{sv;g5cQww(!TU;_*@C`8 zYh2hnrOrSDeXG@(E%Xf|bdZ`@#8vvp1${)n{-dlfy?+hQl#>hgt$egoEE8vE;B1Nw zOQbzqg$K4)g~xi85uVn#?uiNyOova23J<+&!}C$$f$8uAqrwkF_?M!>16zx^9H$NG zNM&-K2=|cvkt7R-LN=+rbtIz#kWtiE1y70o8p%r}6N6aSK|g9le`-`?DebB9t|UE! zbccTU)>W+eb`mXvXcPSLbZdoNq5e(sAS0E_7wFk}_#>XpKV*#yc+?sf#fe_CF%Q=2mA-y0*IjZi;Cj%R`X7ZuyZT7?#&hG9;L%_vtn;iM zYcv6@Y5aTF*}e2V9QZcyAF!p~4gOK}>YjhXw$w;jMe855N0r&m(d!_QeagvZV~-cM zEZSyL-}3*3#zg#5S(&uKSUv6u`a9@M{c1Yo64t@Ro*?)SYlFes*wO9@qV%z!vYS0Y z_M_Yr)Q{U>D4jZPgCT!f7U{AcR0%=uc)!>Rudm;II6Aj2iXcc=e#ub<>a$@u`6^QR@o`0fOqi4NWO)0tY% z(;jWw^F_SKus##ZO0q|Bnq50K%#&CrirC9ZdoqkM` z!MM!;KF)P5ze$;-Tj6?PV9l33&4Nd*A`}U#zKzmVE z;>#no4}~E;=^(y} z+0Y)|il!%^S8m5x#&vyp4j;pLed0b1(cU<_1H2&S;M349&=sTjppx5pMBAA>!`E(R z&7l2-SZ_?{>&XLUn=846b7;U%C4RD3lWsu!Wx8LBJF*>5*^uark7@ZO+>RvjPUCqG z2$*Ze#8*A(1Y%E5_cWb+2u;ntgt@D>uM7GKn$g~AwO%Xwk-(|%sWs&2^~07Z`VIPD zLcdPv2egmHh56qOJQELkR|YZndb-(L--30OE!ac+3~bKgI~U?vlJDM)Z7cwNVIpW8 z3O(glJWYL{Y|LRkrui-DpGP;Q3jQ?5Rl%Qyl0Qj)(S8SWJsdjss$*!5gQNG z<%>{f+@~XL?zBHa?D0^xh3;u_OcX7`wwp9Q?shkhns#2=L%s!j^`61_bm;ztUqaR> zn<(+8U+!ff{$w~KTIEOl=nV$3j{;kigY@kg?e#fy?*iHM!OPY3 zO$Y5e2)7@}t}=|_BqPQ6t@MEIZLUXW9~vIjkGk9IKxN9AF3wS>wxB*1{hbHNPqMpF zSh6jtdcb~t$afx*`V7T0>p^>Nl>DuddQ1a&67?@u>krHM`UB+wT<#->&Lis*si)A` z5pCz9c#E;8_c)ecNAK01ULgldHjqptT**a@wcPHo9(+X@y;FNhi64mv$;K37JN)Bt zjvdKQvNIirXClQiyc;8*#Xf6+b2{PuPT0;qk+u>RX@kJG4@+1X*%yg7yX8Ss=Sh#! zNj+RA{Tpm%**G_r+O~WCo1t}56;73HH_Fx>Pf+{QHy)}V(w;}!^GAIU^UrSkpwgph z@32|!?)UzAGh5hYC^yY#yDxWm?_cDcSMgpXkNUue;DZSL%G3oM5qwDeC-my&*jHtT zE>OvJXPga*wX?A9eCWEE;7j7kf92b$?#fO5$1FFErzD%Z*R#6Q@&DcBjHD}-jq>zi ztn+3Db-$-`b*bNl(8Vw4OEfoCXhS}Sm2d>%k@ z31gv{=ZU>--HlI#Q5;%Z@OtWTzI7v;IV%QxXT%x# zV(t*thRd<;By@Y)i#HZ_QBDuJPx0SDljJCx(0)PM>vu?bQRl_@&YHekq`T$RcM$zFCZSpSdQ=Pi9Z|bUdCJw>sKjWTG!CLuoZf4?xAZwL1hnifM=FN7l_HB zb3bVvBg3-|d*H;L09xk}a#@^l2zJnWB!NfGN4sCoh=pu^2%whi9Y(J_`t>={X3?^V__VO;UtfcRY%3P>DVk^1`kSJI znBR0SGY;)r^`dVBm% zvfQ;dvqruT(uaEw=$k35$88{a3cM*>%G`fK=2E->)dk<9F`Q#TVUQ0$CxG~$WY~{c zQ#jgr$?veH@Ee>3+_UTn&r2fZ3yphJMv`}t&txwnoa#wy+4S9QayQ@I+F{>=T?PA{ zDmbku4(Zg&R!eK3ls5S(O`;uzfgk&=X7g{VXhBun^n zapU32HHh{DW2Y&V4R#*H2$v~Nmx=TPJ6~5oS!6!NC~LS}IMaitLwT#Pc-CPR?MN0R zvC`)EF)w``d~0K~3tg;qgByP-_@i(G;VOAfV;b2wh#$-`wr72i=JM)$k}&^wKY#Lc z({Cf&U6q66lo(gUc;a2z0y{G40&R@ut)`snuAf#wUm`mQ$*P6C-}11IWpwL&azk<&P#2hqIwo>`kxi@s?4cSO3 zuQzAq^Y2OcnK`f(Q#&g=YP39|Gb>tVZKpHRbLc+YSXPSdfDLu&SZgL5y?v;K{m+*< zV%d5u|B2s)*aqH+Gqb60fKO}2xMpKb6MJ63v4m0I;QK5cXN*i>aeS{z%d7(A@vFKN zwz9_Snu>h#>b#x+(r#QIi}Ph-aaK0Imu`fN#+@y*B6jslxEAU zZIE#l)!ERgQW%|WLwB3z;k$=ijO{_J<=@U_8`VPaPzC1tpfAo`XqokykNAf8NX@A+ z-?|6;-|wV--XT`&_pWS1{c^Df>tQYvkQc&NH6z@^9@gq(K`SSYz3jl|q{n=q3GKaX znUyxe#jHCi9^A*spMZIPDl4cPgPt@Zbv?;ue$GGH%wieMUn|fT-M&CS`aUO*QTZk5 zh2y}vAefKS+=9;M2&b8cdkUzYRn2bPUD`5hgZe6cn@M4k+3va|_A&ImTzm_#dp&(~WMg@S$*gUC48#@jP6EO- z;4GRVr0a$973QVg-SASo!AmD0&f$3J7_wu6uM-&YD)G@q@X@W{qbWV`krl;9Qw=^U zl=*efM^i8s1bWmJsT@=WoWEb^!x=1Ie}J{%J|(ZGlI3uHyn*vyA!tH(SRB%JXgBEQ zyxn+XI`V2-X1xO5Xl-&h=$##VT(>sSxh<(|TOIaV*A2n_6T{ec^p{G`fAI4*u&}2H zVb%{}E$fv`C*C0*>X~=wJg+eCP#FZzRO-H=e#eKH8&){@09e(fAmq`fwiPhT_L)Idrt=@V?CXs~)9Z z(S-l_4|fUs=xpBaxi0fCAFKI`V%Sy3lvdN(Z~M=gQ(Z9t5;onzLiXkUil4-=5s-0o z2GV^BEbl;KgAEdiqx@#U1;ZD6zxZg?t z>|Y80<_6)u`LuB7zaZS`qD+2N;14tk*WV=Eze@jQ>xF;u!@_+PAb#!sd5jmA?rE|X{bHU6RzJ`o#F>DQjpVuT-{@t2M8!!^F$z>m}Tt42E6 z8vnh4=W6^l1D~$(*A4tUjlW^w#TtLpz^~N!TLxaP@f`-fRO5d%@Rb_hY2bHj{A~k& zK;!Qi_#+zslYwv2_@52@w;F%fz_)4qJp+GJ<9{*mcQyW31K+Lj_cNP&Yz<;grnFju} z#)}R7C5>ZB7V&#k<2D1|sd0Rk6!CjsAI3B2*|1xws;-yMwjKmj4r5}{($7gqw zSU1qB6GZtJN0tA^5dyz4D*fYSzVmJ3y(-UmT^>^UX+=KsunAOqGF5B}G8J>gquT=WyNI=D( zC-KXo@c9xi!Kw!RRCpQesGVZXO_Wo)0qHM)T+sPQ2@iThHlPeRG0NXl{B^QE z74G=j$S~_Q&hCoDH)-55@E0_mW#I8=3pzc&LzHj(Tf$u>T{cnFTe%x`|HQry`X!t7 zFO=bJejC35m)hu_L}?Y~O2+?noNZ0yyBj4wCBejl8ecg#GW@L? zpC`&KU*4(l0acOV?~(Y_sPr2p{z+fkEs^1yHO|&X;?L{!nbCf&8uu9WdQIbA1K+9f zGy{K6<5w8<`Y4RMBg+&0y!mgUA^!BfaQFOGxX(#fg+E*RFOu%{GTw&1qCKPebCbqR z{``%`P5#`fag#rVlu@NP)K&cZ&2CZdgC7a^80l`j+T>61Hk^*+ZrFC@Z?Zy!|BnTt ze_YTdVjlkiH?On&uZ7<)qpA3TsQBOCB5E-1do%t589yk)TV}SZG%Pq#lwXZshssrv zzLIloGQF5gF+RF+3*F&ce0xy^H{~;;ohstyo+C)VZ z9+v+eo}MZv_u#)^t_Tk;gv*N&QRVHad_B=6@l;X1t7Q59CdV6HA6YL|j%7t6{B^MQ z&`;snvK*JgViSo6@0T)FTM-;3DkdXbrg3~`9`T!}@o@%zt;Vwqe3`~i zFz`DyKHk9Z*Z7GB{ws~2WZ=(f{A2^)uJLRGe_i9J82H;7mkOq=^ItVC6*q~uYg{S{ z68}cyQbAC(>nHeNMNkc>;zhE?vBVVd8>sOa20m2dI4v*Y=hOI{9`L&je5?+C(7>}a z9&d~r6Er^3zylh`t=Iq6cKhx#6H{+89z0Z*TtEB&G>93Ohd6NV%x~~X7 zU;0m%ei>Xlar#L;KM^8IF?~&h~dba!NRgYixVf!7gt=`%1 z*L_&qI{TRF)eFv#pLF%keydJl^}oMj;i-2=`M3P0?=io);%{efXw8^1@0h)(&iixv zga6z)H}99N6PEmTMPB)z<{dv~XVP2wtL}KdA@P`t7L8x@;NNE7ux?6qN>|mOM>2l> zo2+#YWi;*Tci&G~?Z`iS!*sR4d++*=+BC$w6VNLpFQne*Wd0)w|}zDo*5DT z`K4vY4>{xQe)naI`0UB9>6_<0JpI8ho}4(T(7JE#J8us8^7_==7jC(J+3>YXZhK>L z)ko*IcpC4^_EBC>j=XHK_?SDd+g!g>(Cbpd&)^NygkXmtCD#LK8WM*UJxC=KgTErYfO8 zHb?nYxTAH~$$XT%QTmk|kp6cc7xYu|8Kh$ zRc5)*TOs^2qM4zzeD$)%O?J5GRZ))3 zt-@`6S-90(&GN-LlHy__<}11&Q4gzR{3X&|e812S(CVBJ-^g;PXyNx3&(JnN^p`{5 zi};=6dU`KdY*vQaWT*-{Bj+B zAy4Aq$?-hBFn*nZU#-J;aQuuL1V4rGPkO+=>H*(l;MeK&3wcL9>xNOhJYjrB5BSU; z@N*3OMxFk2-r>)2Km^d|dM3&Aj|!{D~g$Cwsu3GVr@}`akDV z@RAQpskm%OhmZra_X+o;_l29@F5J^3&I5Pz-xULe{CR3XKSS}pPUHOze5u9<82B9; zA7tQbG(OnC8#R86fj_SCV-5UyjSn~QS2gZ6@Ld|;*$`RnziIqW2L8Fm-#75fZM>T? zOS;3Q8<}Qz&tE%4yvd_@GqQ{x;RtcMcH#FQk82n(%ir(^X|&CDZ*}zK@R=;ne$-L4rTphU6;9a8u>`fQ;rj-i+^) z?-TG<2mNNvd_2__a0Wb{SU%8PFiWI=iF#l3cq;C;U@m72?_cMgDB_)Ul5oG0;nK#L z`51+Y@QjrCKQ#cKpG5qQ(|DYLpQ!ObNknjVn#RvC@B)p`Gw?GtzRWTT;gze(v3#m{uiQsfeiH;f zUAiiKw7Vu%^p9HkV*Ax1o(fkcANXL6=fI_co!i93A*Adtldcl+l)X=-bIGNA7-sQh z;=Qt`TynYa7s~YcV20;ZkCeWs zEyFh*;uk0uh)4R}SH$zD7v_lcv#%8XpUxHjXnI8FccHXf{y~(*2cmWp;-+ zkIVNng_@|}w_hvrZ;irLfU70$k?p2%6ugHICb`BYu-Key@T5RO9y< z_yroj-@xZ;{C2)CP-StA#_urjB^s|b@Z}o6)4*#qj-&b`e(N+|Yv2!Q{4N7;(m0Ns zi14O;i_Jx=W<5e` zx!>ey%dt+|N6h-2A@h&UFWTQz{J?)R{;5Y9f0C^Kir{Moe-vokWAyXr@()`p+Ogjn z;r3rG+}ou4m%D{u#jBkwvQch*6#Xud``%ReP8oj0Mv+da(M(T;Q*L0MNZ+0+_Aib; zM(~?@AMF-iF2bwy)%$m4K8|8DzDggvv^hUdJwp1MdPsklOg||qzDoaS%kPr){d~jW z>7wcto&MaY{8c#R_O$;g+&_fAq5A31WqOxI?Ymkb@r6bm-T*PmR#sdaEL*vuA-9YRnW9%Z0pK0Kw8b8ax z7ij!!1HVDz=NR}c8b8;-Z`b%QIqs2lxJ%>PjqvwtToPV}Z`8Ql@F(%dG%nVMCCr}D zxYLjmFKRsAz<;OlBm;j-<9!VLJ&h+D_(vM=%W*Z%eXenr5&mn9oA#I=H10OS#~ds8 zZ$;3w)AZ3e4%mtK4bZr0zZtIafkyaI8aM4a;e1n#@Z)rN)82E6#)lZ;!*nq1J>l{U zGs5TTbny9h#P6pX#}Nb(zjHO7Y2cS?{B(}1{(8B_&oJ<7G%hw!sPH#ve7X^Ssm8^E zxC*~Q&sH!N9|Ove>|1(BW@1@NF7j zV&HFT{3Zi`SK~Juc$>z5Zs4D3e5rwl!!I-NZ*=(E4Sc`G?=W!tFx6kG4Lm{PYYcp# z#@89RPviF*_;DJ)&%nd&zP<ewoHw4g4yNZ{xV?U)O1TyMZs!`0tH$f*SvW zf#0g}*A4tGjlW^w_iOx317EN4T?YQB#@{jUr!@X21AkuQ?-}@ZjsL~K-_rO82L7JL zKQ!=Og0~-IkfyWG2{qY|L-bdqm419pbI}Q9;jdvM% znErbWJVS@Sh}$bXQm&5G_{9dErSYE`_$eB<@p*>g!(5G999K%&85*}6^O6}FPcZNc zG@fMO#TxHp;PW(|Y~Twt-q*md*SO2TmukG9fv?c`Km!k#Kh?lj>F{0yU#;;p1HVt> z=^Pi@Ib#oL+-HQ}sPPN~e?sFU4E#45A8FuQHGTre6+iq=HwJ!^#-BIvNg98_z^7{bMFTI?_)7*pOXGhs z@M4Ys*}$*R_`3#vt;Rnz@Ff~=Gw=$He`MfyXnePUuh#g-2L6D?zu~xtw-#fK8vmz( z|4QTkWu)_z#=8vs1&x1a;IC->djo$<<3AYqdm7(w;JY3Gi@~u}qEE^9?Sl{8<`* z$iQVZcKmOJJ>c5sh5M7Igju#;*d6e{0|uY5Y3_pQG^~4E!36 z?>F!z8XwBrQI)Gw&g?1OJ1@I}H4nFN$_@Y%$v}OX6S1c2x9zZDEB1N>Fvv$(xO#rsU-as#n^ z@lTDPZM4$?jW0CH9h;{5L%D(X(|FLphid#510SjJN(0Z*_;Le3P2*JtK2_r@419*h zZ#D1>HNMio=V<&k125C~?FN2>#_urj z_|qESY2Ytue3yY2y(ReWgB`-{Y5gR!tdY;Z*Xd3->bXcLA(%}1$#s?VXk4sm4KgYoPYJ8)C57PK{16SoA@mEpq zl=p&?Y5X^4Av(7%2najyn&hK4W`zkWBw-c*^wdY*A#QOUBN0< z#x{K~;?;dF+yb%9kmdi~EcYJy{s-x*6co`_==!Mgsr?0?e+Uu8~2R} z?|MqmyT2reU;5Rq;=(9@oAi&6;ayLQ_}wy>A~M|I!*U11E28|Wel6kkB_7&!i+HbG zkMt{d-4BWqBJmfc|Ga}HuCji2zrZgNpJlOE<#{f*M5Uv`*UJ2qi!T&IA$Q;y^`5-y zncNl`Ub*MQiW$x(=`NNoK0xKsI%Rm}saikaw-&5F>3@9on1tlhEFN_P#v58UE1TV*{ameH@{^!yVnmQE|I-U1Iw@`&yn$259( z^!lV&xK+}hA-2o2(K6iS7mN4bi0$?4MT!4Ox?f7SQ@U5m^!iG_Dw~xs%1XGk;}icU zj%Bu>wTyM__P0Bh;&Cba>e6E8Ip6JT?>ZQCE=zC^8s|=KShU~S-gThkQ_rXNyziW8 z%;xFG93Hl4hOND8X4g6RTe{3)IkLB&6f?79=B~P=K+K|^`(I_yJi33obSG^tt)HqZ0mA0 z$Ge9;)$H7p@9e5rR2gjR8nq`s&OIcjE3GK7tBwVRb&M+NEb~(I{9tECT9JQ_vn-yc zwxu&j59NVQB(z?V`$cZC#n}A?bl6 zp0>?BB+IhzrP$@cH}<@7XGK?Ko4+lAzx41Ns0JT)ewF{Ydq|$Yo$68kpnFJ+r;Q$K zDppmtiANsA)!Ff}=TlJ8J!C?@LzD`Sp55d5YiDOiJDT_BXw#pwj-{=2jzY)H@Z8M4 zII}or>xoG5tNfkFC|}f$^4{0UE4j0+XbZI!YSOW^%)V%;jS5XQam$(v{-&+S;`RA~ zBbJ+xgPmJX{3`$U8md^=prRV2Twc4s!&YFiqGd#hPJh1NJ;YuVq$YIi zJO%Gg;S@p}63&~}v2z0O2?9r9?p6uz#(AkmD3YMFa_mPuVA9QN>d^%bY4}6U>$&STCN_O6J zNpXz(*gppc$&mR@%~+s0s6TAVGADXm`Kp5mf#&XVfv6p>d|Rl)dEiUpxjpa}9Sn(Q z_mF;zDp$1SyYPVjJ9+62AT%EKpn3dRNuVI-`-<|I&gMjS>YvM98O|=J#j0ZBJK}fM z#TD8uR?)FEvdCbT?+e2{(27~=KQS@yBipigl+9wZ&iUvd{$F)v%~jR&@4R}^0^6c% zY>Ubu3a;xa?^;wFcYJ48PS?b)DP2>$PV1V~bxp@LWqmuYD!9@eHyRzVd;;|<@i+u> zVL@y8qG+|D_RDp5W6kTc!RS2|AUbUVLyJD&)AgxHBP_(|cI13Qr~hoA0PK#|HP zWh|g>$hs;KxqOTCQ4;UAca`zdEI^vz&4b9G?Plgr2rV*+Ab(i_WqI({#*z*3}F;&+u3EHb}T+(qv>phDLW2$br3Essw zb=+BJKBo+ z9(*jP%vu`vQeSIn@T(v8?7F`^`0cvDa4PUb8QzWX9nK&AK|N$qiV7c7R@;2p3>&P8-p#6mXsPr$sC=GsF9$c3OwyTXxD;j>F?R!e)_R23i(*U&X zCtr0Xo_*A*-|B2c*{ZU$t4=wkYQltY1_&@B9H6tjUT0R`lF^SC-_})`R?ft;MbE|J z*-p>Fi08J5=YV*Q-V%`ri%7&1epVtYtz&X$$DC4I zL224j_QMi(;AWOqF2h-A<@GY9w5o}@Rg)&y1k$Qi_ zb%8W$uGp>$s;%nsX~fu&JZbIUb>!^2XCi8R91#U&Z9^6j&p{a{EhCrODBPH7UrsN! zTk#!x&MG?@#CFHs)^@-h_d1Q~nbPwv_$O{f8(Puryrm0Gh*qOl960gI&ON0LBXWCW zjyJ3jGznz%UBzW3b&=X`Q77{Ayl9~a#cZ138*bK}-u?QHIVW)|c51jA_F zM;1J7$+dJjWrus{r#p7+sMt}tqjN{wIo}`5 zvW_{oeRbov_}lCJ@VnqB@)X7Sl3r~+VOvq(e9x9p> z%O2(D7t5>A^YA{)(M?qqd96Da}6-(J;mp9FIJMwvQ zueD*YE=-D<*Dz!PJh4t@mUHj;)%QjqxC+YSJl?=BJ!eGr{dlpOMdTU7b<9(S^xrYKOq{U;-@yB1Z}(WJzmEj)Mg8A_(V zeTe52QIwT!P+mO~v}a3ac{NdvGVRM#gSgtl1*W^t0T8XdGmS>Qigr2XrFE-irgaS1 zRum_cPN6=gQMsVdD}D0zw2py%D%MP5b_nFi>aIR%c^|p*J_?@m(SfRuTq?kmIzU?0 zxfNAKl^p}XD!Yq3;9_z~Q>W3GB>Dk0h;zYn(4U6x2}%5V8|Vl3CP*`Sggm|pGR+;g z5F!oZs?Qy_n9E*t()MuJ&T!Z}c-YA#sd@054kK+(gp_Ry@eFT+KI(LmhlT+1oXN#) z+zNWWfS$z=0CC&ib&fmv7Nz&QlWz+s75Z$5n7(^K5(vU`KI)5y_O2Nn9~VvPnn}Tq zeQaj)40pfOJ;hEQCJ;v9vD@X{EOdC2x$bN6SlypG!ZlkVgsT9RGLkLf(BU(n>HXCM#L6^1~*y+ zCMrU!Fvh*J63D8eMn$GwW{i7WC+@97#;7cDiN+0Hol~E>>3c~7Gw=Q0`~C544WCeSil)~R#uc2{a#k`YIry>XF8)<1{a;ojA9adNNcl6y_qmF$|C+~X|<+jymU8rR@uJSk+@6o#4}V{gT`@WyP%+NY?d-3YEGiibSFGr{20`I+W+Se~`p6-o%=d@J% z+El8?lN59rWU{WH%cUUM6--XbOx^YSi+djVbzjS^D^?pT5A3?<^(C(tec1ZZPilK4 zZhhmP0S6B3Te13pvi2qZ_*IV7RYqzmZNa5($l5q-{p>sE+&=e?c`GiVrO>4h9FVR!LPB{qEL38z`jlN`O zZt_tFsuxf{&#RbA{oFXe`jVTC?ePi8$Mp{+YG(J|375nrT`#J5HX&7fK&mKkQ$!mRJG@jlH+`Vo;YB0 zYMi8u=ltefe^igy|9f($o~ddsrkRT-rbQDk^SfwXqIE`c;^Me&O&B-au2tAXvc(}2|WWHdeV>C{WZG- zG2?{QHM#3`tRbN%9X9sd?vy=>p4$`K#xyQrRhy%x4AeukY^RMcvQn~|meaJ&w2T~G?o>6IGo%UqTODe4{ z;9fCwgi5PbX*<<4Na=bBl=Fg;_=jQ@@tSDGX^wWzvV%^liyP-noa^`KI^W&MXVyP} zb-*C-1>j48cok`>lg>QV)QP4~u+DGO3D)DS@_F0lR?exIT|KKREACIft)F}6yxT9i zx^KUj9 z7bH8cr*kFHhhujnZ&1-?4()E7w5z##A=Ts3ic6H2_2Dr2js#y^&#cs7(v)5I1QUnQ zRMd|~NDq$x3T!^U89C6sJDuDur%&&u9A(Gk9;YP#X=@{qG-_RXsQ>#6i1(inaK#;W zS2F#thWX9N^nJ~7$5th~XiYvN`Pj7yGa6@5l)$WcehgRLRkfAQ26*nKyYMT#ssQoNX!a-QA=c}_C zXOTmUJL&)xe3OHUW(UF@oWogafzJSU0Cxhzz=HyORo+3deRbA;Rp#|nrkVhjG=4Qb zO#921HFkPwx`)nA75_{RU$B4Q^f4Fw(Kx8;54z;X(xAEeK8fQM}{jl+^m+dap3Qo`6k+KY{2H;)uCY>tif!I98bXNR6+)hc4_+EHGL^E|tJjbC`aoYP2~ z`w*rLfAf;Vc-pa7LZg+?knz99P5bq?T{Jy!@;B064)MOC!^k4~xZC(&J0yVb|F;T} zzL@swA0!pJ?VNtstVI-OD&SRUklLcA$3wq8f_C9u zziYpwEVOShaS-M9cO+3l_3w7q7e$fn#wU9xl>V+&DGMLAcS4z|xMg@Mt}_JV7CX26S_TYoY*Zy@oS-@zoXcZ>L_&_?m*9$h%En6|azN_e;-Lo#;_Kk0(BvLUiL?-GlWJa;<-?81Gmyfnv68 zIUSl;jCSnN9=vl8UpI2%odcZ$MzV8Dhvq;>0+QG}VYPH*maZ?Iy1I$VZblBIS zW!Bp9v#YacQk-?8Q9kE-BbingvnlFKIZDNxaebB7{;F%TEB*zK>QL7K_wcmFuRLER z&=t+V(T)3GB-hxHj_HzSBNn6$5b{y#yiPbkK1iR)vIX*Qx=`445H0`pyxlVU!2ZfC6@ahmKpmJx zW=@B6^;aFnb?Vu8=D@RmZyYzk_-)tlUw6Owz&FZBI88=Lov+!@Zp-KB8QPV1Q=_wJaA_$|`;?@J!Y+lh(>pUxtv`?b zU0NU4VZyGKaV=w8ye;W1BU?tL?o;~_zf5nvu;rIjI&=4T>$>y6Z{#2h2VIE%pWl)7 z0Q~7KDG#@Q-^h_^q4)LR@j)Lj&X&;&zR2B!`)z7)pNG1S$DSuzh3FMM#mN6O@<+?I zcN{_af^G=O{rm0ZQM{yue1Ao(bm9LC^~eIl3zWN{9>1LRybm0gZPj}V_;NqfM$idh zJOnx(x9@EMorrQyTE_Z%0@YhW12H;O%1~LOMWXNAQ`!Rb7pA}HpW>_h>W}Y`GW4x^ zN{{rVx-(DdT0(#7H-`SWc81Z9j#XaOjA)+Rw?=HE8~v$vsdSN7x)psK{i*!w?MgZH zr+(^QK=t-JzowY(OvkExRmTGdx@pXgN|&4AMPFA+Q~HmkKc!#QLER9g%2l@-s&Q25 z$IzcjS7(b;9nepeuO8Ox5=E=~I8)kaC5E3v{j?6@C=72@+709D^^7@pGTyO)Q70ba zpM&oI-Nu#|0ZLX>$uP>rGC4)=w|nWH_REV{ALkHtM~vqeu->Obj8{IwxbGpxGwx*+ zg$eln((^sUswAa->;K^?#u30jp0t*G{1Z%{3j8b5y-+Il7pQFC{$Af{)hBgv+wzAGlfNG6f}*F# zGgkc<#VAkY1?9UC%aC8b2XO*u`3}T5n|{eJ7-vgA2*kV2@L~_13ekz8{Wb4%~jn0f@kCX&>`sA^DmZ@@mlmT)2F<{IQ(_SEp?1Lfl}|x zYSu6KBJ@l8{#MQ>`cse~bO`xHUi?$lUd~s8bipuaLCGihXaY~1U4b+HU_EPPLKQ)v ztA^_@`03G{|A}sl`;TJ$1XvEVsWHi{PAuOKdb)OD`V#Q{4^M?GO%C+iXnX(nZoF6j zd*BbiUxB{>%>rW_{06xfleqj8pj|wwKHAdWwACm0DEE&8-!rv;e^1hBlGN=vM7s7j z|F-FGdv6lgOx~L$^^B@tyZVjCxPEaie!tazn|{$Fm^h0)uO9{|-vR78jQJUuR^+|u zK2yJFI5ft3KUA#m;{~B#aPA-;ug<{WaIRM@e_fCKg7-o`)n&M&Yx;=EcUbt_O#Z+V zqUB>9|8^$VFMcB9u91xEM>DP&#TYC9U66kmSOa_x_!jVe;AcS5cRJ{az%1Yu!0Umx z0B;9M{&&${ulJzPOhh#9nab_x4!j9y5o(8cd?x2RXBOk97cu5dXM7}sQL+vm!Q;Ds z|Gs^~I}{er=KNcLqvkO^YcAuHbFBJvO@GtA)*nZ5`M%`k>FrBcx$^yvcNTCt!xu4j zo6q>*DAxCs%YR*T&TZiLO*)=WSR_6Q{*q)*AX@%e@Yi-X#zym>2fwMO2WK#+z5;%F zFCDU*S>6G^+{XXdzba(~_B zXPmf%v2C>#O9S)G=ex|+8S^7ga`y`M9?j!%ohxql-5jbQu)5{>2dNb3H-o)4q`py8(1Nwjqpyy)bm)iA1dw%Hc^$9N;v+rU39e~#a znf@B|PaBz*JZtY}dNgn_^gE2~TSP|T>EPe)=xDJ!FZh3o8)=b07yOF2WQ)B|0srE7 zeviA9F&+Hfu9GZ!=9>J|E&R(&e!7Lf#N=D+lVkF)u*lzN@~!P%WAYbUQ4$FM z@9x#h5v{)u_-FJUX0e}v;E(TZ9p6*HAMUm4PY3_N0jqp;S<%PdhxvTi{19Wo{fr+J zGB(}ED0!wKeLwhXfSZ8N0*iqmyao)Pg%LF-o`?F%L~^M8RTLUdlgJ5fNBxKVjrCo;lX2&Bj0biwe)BBj$?G!K{d}~;q4qJ=uO9h# zy8^c`hyQH=pZx3aX#VHm-`CsWi{^i2^4%7G%317(cDvSE^t-{ouXi_pw4OAR-_OF2 zmWe)oc^|hc4*0}wrW3zq{PkSjLf(zn{5ibsNgIZwCwlpP#22Cd zA}#50US2QyZ0WwG+&`D$ggCPwm%jvZOKtwA?R)UNy(s=_*cjGxxx=N4mUU(>^enP{ zhyG^pmpI%O`8D9LaHMJezfd1dsDGYk{c$dCZwchhblXAO_vAT2z9-+d4(E2rI=sQO ze_r1|ei;2PAU%L`-*rUq_#1`?eDSX#)L;CwJTET!#9uDN6YoCc$M6^tQf z|233drbU;gjhPLcl{=>w2q0n%Sa`}WxKKV-}Q zgDriZEnVti$NU$090bci3r0ZO^TndKcd(BCtv#%CtbD?^e+N9BUkhpoW`Gt9fR_A% ze((i_FWB>FuGeR%-?qd<*E8G8euch|$sZnpBEQK$-ono{`PKzTpp7q6kJj|~@rN$| z{!=;q+>;pl9N^-{3}U)C&bqFVb_%{Yo$Egr3@=dLe>QhG>$(3l#*cuKe;Cs5Te*6+ z;(0+AeEXsP+Vtq4(j7i?WEd`B`R*pKV0Fme}?me>CgM{U-Cve(;y;E0%5X@YQ3u-p;X% zX`>lOfgV4KX-lP|2(kN-u0<9*YU5uXgP(2TN2#gYCVeA5bb)2g?TK`Yrk9CB* zD88f}HICautkuF(dSd<7Pn7oSOWUT{Jtn`Gn5LN)eeeL}==ya)@i$NA@!Sr6FT>Ls z&3_+!)y`;sGx&5h{Yu6E`}wTLd5*LvXyNw*zo+5-QOSECf0ik4tXBMu=dqqS;5!^{ zeID+ebZEO%dDTz$#~LqS`6s3@?!1t3CG>tV_X}|$oDu(yoWXKqfL>sSnan>2v?Ws% zQN4`iu3gF)yo&LOD;S@Ko~SIA!<$jRr(8zw=!7*U|Jy(`{|@jolC1k68%)02vOjVc z__Pj~9IfX*lkYe`nqL5Zd6HF6naNMcjFztk|C;U>Sjw#h|BT+3@kEVGe>3^*Ur&zK zt&YFChx>8(9gO<}j4K{s+Z=Ue!tCVzp2Uv2UiTKKgl|1t~zd6U1$!hhA|UvA;QYx1wK z@INv6*%p4I$zN>Y?=|^oiaZiTI(H;SpCRjHab@BhtM8+f7Xg&i57l_$#+`#(@lOS3;$A+ z@3Hh}b{qfR=zh4y87-rZSC{d)W&^L=!t`6E*705r`rHcUCjg(SX8Ho4UH^wq za{8j}j2}GC*!u}ayS$xFo6O_3E{S%GqJG1`Z|-h}wmNmB$#)z{cx%RQ*ZiI9Gvy`5 z!T(^Kzar=A<%^asUxc!2@EHqyZZ4`ud>CuJbdVqzfsl25769M{ePrGgM0ajxe*3W(j_aKz^ZG5}^mbA}pQ)6$R z59JDqq%i6yEKNkIU**Ba%5VQ;Q zAkbZ#+Rv}b?fkT1>^s2w)%N<0LjEgV6MIFcO#q+P6%(TQ7qsywM)R}4-_^sg=viR$ z9Txr)lRv@2zt-ei>k}~f=UC)#H~HsU_?t|AhK2vI$)9B5mzn%27XD)vxyG?$!g@3ZiUu@x@X7c}R;h$~tue9(pO#V^}|00vW%)*~*@|Roqmz(??3*T?@ zue0#4H~G01{u-0N(!$?h@~^k>^G*H@7Ji}0zsbU{F!?uI_)nVrRTh5O{lYh5`KfvVQ zW8n`m`I{{Kbd&#A3xAx+&$sX=oBaDM{Fx^Iehc4c@*lA9|7`LfwD5CG{zDf2%_cu& z;pdtBQVaiXlfT8nf6(NYS@@+UzsAC^G5L>L_|KU9$1MDpO#XHY|4ozsgoWQ=@}IQu zzcl&(u<&=A{Fg2KpG^Lz7Cyb^OHVhudi-qRA7%3Yu<(1B{QVaGaVGz0%YI~<$?t06 z4>S467XFzgzq^Hh4)~*csQ8C ze`I{(2gW@y;tJ8TtH*?1nE}JMtB1pI-J&qg@H!lXT8&=N1- zZj;{x`ljB;g(%Bmf2G%Oe_oW$`1IwBoBfP-1vOuA{3;j*Eohg&w?5JB-2i#zjgq>0+m(;jUkiEFyGdP>YTB!RwEUNlS7qMm>aL$j zRq4?`)i!DGPmos^XO)e#r(cbYzGz68fa~+>D*m0W9_`92{UYB3@|}rC{oii=qx)wB zZ+ype1K zte-hG?@vmrwdRxj0UU_G4I{tYA0+GVxTiS3tmkiA&$R5Xq~FD~?0dGXQ}xsqxab}MR(~5Y`F+}y(@_)n=ecgNDEh(V=bRXwA#n!#SBgLGiRSkN|7q9!i=z3*g8!i_ zSxi7D4>b8hE&Nl!@1E4lGQkWt`MoXtvrT@IWnX;~`16vKH*WjQ0DoQ5{GM%G!|;J$ znPlzfD@=aR=cDEQ;Qy3#OMWyz7yMbt?t*Ckt>DwwdMyKU2l%U#I|ZZV?>70yUD5pe zOn#h&A2RvFEc`9t_wH^T-%69e)-vu-wec;6^1R8n_H!NhZ+DL?kFMvtCO_W7|IFk& zE&Q*+|E@=TO0=FIz(1jvYfUtNKlo?#w(99RlkM}2-kmJ^`+&bLFfv+=dHvw*zp;N9 zzLRm+bBqI!&oDOeOCp?xW4(5^xe<2(cC^U$kZ2xzJBC-AEx_+9ya1TU1cQD z-+%Hu-PCtC^o{A5=;$AC(w{+>;yTb@yo2=8-;w;roBEoduX}>Sr7l6Cj`5_6{*Lr_ z(Lwt9B{7&2@S3jRwKd!;GpvR#?>p``-3!AIdpw-H*q7L+n#ZE+qoTU#@lr9b`iXtpT4OChh~rbEehh5Rj$U!5Fx*P-O){0*A&#u3Rs0{QMq zy$?BFV$VAuuj11~)ko|h0{Qb?IVZ-FSN10IX!a3P&3=1wae7rSMS_uK#AtV~gnnTCksu?h9J){pH>S_)%qV&OngqFI#t8KP z*cT5DK(LKJR+=CxEEw#`dK$YkIzcCQN(}9wuwQwp9 z`Fj4Xv&EBwjnCD`;r%n4?CGKicros0%Ynhj^L<_Myq+K5s};UsR9Ti3<+(e@An>_WmDBIdHw~Q|NJS8lO{8E1@1kc z>2@;{GjA@Jm+3-9Ab1b>KP4r(W93zR*&lx45-uk&k8#8-#zN@n^(&i^_`z`tIsI{@ zceka-&FAzTNO#%Na~E)W9nzghXD&T=fc&2z-LU0<-N%wMj!n|d8`RN}kdWwb%s6)7 zjAOgaI97Ja<^1;A^nZo?oX`61k?8*V7Uh@O@{51^8R;Qgy7&v$AKwWWAGWn)MhEWE zJJ)b~PF~A+F)$st{V&op(Y1?xoPziM38sM-^nw2AdE5CHL**TL*76^-(UQ%Jc~0U5 z|83TM=OJB6ed%^RgKm92m{vG{IrN8;~cgu zGt(g;mDTQV=Wv#r-=Fb;5sc@8o&n79Fu#8);~ZcruwCWEykrc^r<~5%YX;+fl+y+L zoo6t=ZY*QMc*g6&kEK6ttLjSq)7PE)_hrlYY#!&A#8~J-g7_u(e)dxl6}Zq(=Kpn9 zvc4eBvv|-F4>&>F%VBM8&*ui9-wi=~{$`}t18aby_t&Gv@`Yo?(|R5{{m;IG)5RBA zH8B-9z%6h{Lm>3hHQXPPPInJ$HJ?HMw^v)!?fJh)`fkWCM{ zQD4CqmT^7QW@#q<+1ol~KKDoQwJi4>a0~Dmpem!ipX8S`(Jv_c0_X_?w*j93J`WUm z!C3kw{bA&L1Q@dEvDZWL2_7z8hF#>m*4Ja1*RL+Wk^4{d3VLuL`2)86a(?}h+kXBt zFg_&c#7p8G@kgEM&di!Pe#zoROLInz zUA8cL6ur>ibH=C{7fhH$hr>NXJySX?CXqAxIO01dcIlSX_vArmjvIg7%D^qFZ(Xx? z-CwF-JLvknD)5^-xLzC9GY-F#QTibk##I}%aOhw(Ab&j3J)-DwlyR`(H5!pVp6DgC zBPq1qK0@)_eko7vBQe;1eeCubvE>*4`q4(t-`N(WJK}g}#npk!jZd`gBy=>K^yFrW zG1@qj8hQeGkc*AOj)8F&JvEVNoK0K%*2nCnSqI@JTYo>kq5bySGs^pE^U*$eKW#1a z$@^(nAl;r{`cL9bcY?M5Wqo?({ahdE&r9!PTEo2umj@Vx)(VAcE=Og43 z`#2x^o~x=l`>oGLPkP|(Hy-=!)vx+o`ZDY9TgSNY8f(1M4E=)dL2k*bsFz@@1|ov! z@h;2v1I84Ge8|b|DtVLhl>s{;|H(1*Ow7t$Oe*yBDRXG-vQ!F7t*hs9I>h%dPTZ9} z&cI&4{=m0^gMps_&j3pK2P4~S z0P8p>%KZlAZbW_`_$8qK0sLI*2gT2V{|fl_aVP`-ao|o{{{9p@xoPr_=W2NmuCJZL zg2SNaJk;|n&>6rP;77uNhxK`scvA zk$w$msmnIh@4KHk-*(Wqg5Cjo6zDe&(;m?)__B-F2M;GR<|Qy*b`;|?pqGOFOGoAp z>csdPaAS9-KkdReu`}aCkPiVfoXjr(Jvfo+YS6C%`++~WKc}Yve|9r1_1`g&=?hXB zE01A(7$|ar&mYU_`M`=VWoJVqtQhXc@*9Dl9mn)9eHpia{vGr$e`5Y)$1~QU9xdRv z0?$Ie_fe0h(GEeWg%=0r{NIh|N!fq7=u*CNUU>$WC-eWA=}fzA`6I|Le2E{Pu;q6l zzu`i>Aqaf}W3J%%!HWt`1kG2w3}X`LOr%c(odtRpXrDAt6a$wbeOea#5lOz*3WPIHyXZB!j|BT_*en56Z;!)|n2=t5n*!2arO_i(~ z?el{rk%)tyZ>F#DshKCx(ll4_Fo7-{&2S4A&9}4~r8@Zf0cQVchGS+~W`o}`?A9DVLdvZJ6$ROwU zOZT&0yB_fm<}BEY^NW9w`C%{e%l-0CgSP8$ewy#B;b?{K=d#hhbs3ID@f{o|qas4f zLwG`qHxqh@O}?*h=t=|{y7}PaBjxs@CoUHJKmi`mkR(@Rk zphZhjqy;u!h4~L$x8O6l!wC597ViI@z^y>(C($GML&z5Z`hafX!%r6j>ui1-)rbkZ zA@3@ms%1_CW&v*mZbJKf&?NR^Jj?A1qdr~AxP3pPU0(v_zAVur`6I|50{VcWH-z%v z13D|Xo-rF_OE?qqeqb@M0obLI^?8A`&eJAf{~nJ`tx2Zz;qyc=4YZ&Sv}*_Kz|7hH z!OX4J^YbPf-F_~LuQDd+=M_AUasJH7(xsbAJKv^OW<+jrPlVDED~^ExjW&pG|G&t=Ny0W5?^3 za*hlnls#pwVjB43-y(f^+(eJ~ui3~a&j-Ew1nUuhXV)wFMZfq9@1NS&Kk7-=SM+B- z<99&6wYKzjN#qw?j`Pot0=+=>y+!pqekW^)_5RiCk-whBjQ~*2!_$zzTbT7+2!xn% zON{(p2y}g(^To>Vf}Hff?-=eMH~3@!V2k+WMb;zzKlBBrWqgW3Bby1*4(b0e^xNmJ zWazi+lkpRKHE_R+6d>}8W0Y@?f4#^rD0)P{&!%7E+m^08!chK&t zsi^9I=3jG=Pd11%T^9r>Gh5b2Tjane7zUXtp!(ZYY^KkR?`mZ`)O-hS5eU+nvf zkGXuY@9GAo#lD{VkZD=ZH9$Tch9mY9vgw!nHzL2ZL$DO>k>&G=pL02)Z}?|SfAT3~ zGxQ7Q;rw?)p`h1oZRZ=k_`2YaeHl0RV3hbq>SM<+>bEX%>O(3`{KOk3pZDdYzR&)L z- zbH;JG(w<+&Fufo3*$I^N8t51N72_k{WR`vulzc-oSg(xFdeDNg#>WE%qR%^k+b8p{ z^xx$3tnH9;#SSGd3?RQ70`fhHKTqNO@;!<3K+E?e279#RMl2}$Fm3BSG|HB;4_Z{@8^yvKdbbI;F-p={mcQC$kFXQV#e-YF5`Ha_=GG6u|V*~i# zZDG0__*9K{f06e&esRCT7HYTQZGT-U%m+UA@ndf1Bw+3**8Y3PU|XL@=T*ngA-{q9gY5YaSN}JV-x(u+_%P*viu|q^ z`3=r1vT8Q7E^@o098{D zhVJEgY}R|Mf8%lL?B@vK#i2|Op!Y4R-_Ko`9{3uk&jWqwD@<=n;`IHXze9RGvM%D@+H@=KQn&;QUo*G5zhYT)&mWnf@N%1A86!YZPA2 z@kKJ)doRlC09wlbr4Q$?MtWbQ-vPQa=pxX&K);Os{~omTXa7I3z9OW*hxD>iZm$FB z)kyDTqd$TCgOGm)<57e0=x)>hdk-#e+^gJQ-O+#FqW_#2-|x|X$1Z01A-IoV0O(ZE zzoLAp-?o!j{>lYxj~8}jy8FjG9!EpJj89)%{q8{hXSjI0T0v(W!*n8^d+vQK)Azxz zbisA0^G0xaAK?C@U%D|(?-AGb`7rF^^WQkXJeT#?22S6J^3Fj2jYr(LznJB#K>KT% z9tVAETA4l%v>$Xj=zP!v&g1$dLI1hvpMK~cC)Q1uJi~EwGUz{pJ_hu)picn38uUkA z*573$`-uqX3qZeu_Px=Q>$@BFPzZZiIGOWTzRCITf!{p)13o`)n9b?mp288tGSI7r zSR;yi@Lsh?y0M)t0_s7aesY}yR)363qC~ebyYvR{8=%+dm#B_btL*nzRT^A zbUTXtxA9b7Z-?VVhhu=l(cR(b;cz5596cS56C92|IULDY5wW!x#+;WqCtEwcm*of1 z#3c-WnEf>OwqY#(n$ta}JoIheDeorH+nR$Xj(L7cM%(j{I^%?%e|*2`-ofYHH>B~| zx7`2Q6b?_dRC%Z^f1NE|?%RnQ$^Dn*W!yA|aRc}p@I92}ck%eXfbWp30^Pcq`73cB z(ATxxkB>sG|p$M2-}BL_WkwTGw%c$|8+Ox>g!JZafl;%@_jQW{W8A8&;9H2 zdH$4q%btH^-(v;$ob&jJR}K4ptZ!V(1J?BADTAKxU2*N$itBEEZOXm_yNyC?|9pC7 zTa(&%QZp{JJ6GV?H^l--On8togsZ#@Y_4*Wqx_ z@7D2u2lU7PrM@(*qov&Z7S{jnf2pq*^6&YP^}GPw@Wqr>sthN_dBglJr$p2Fmvx~} z6&l7Gj^Xr83z+UN^w@KC`tE_8zWVZh`cm=iQ<>g8zh5_{ zf0@viF}+sktC=nl`Z}hc109^-Pj5(lF7y(ne-QdAru%qMzxhsGpVvX(GvAr6%70JN z7jXKALN8=G0$Rzc-`hBUHexIBd(iaKMBTw1;O~jn?duJCwPEP?r-9Bl4BfvYK?e;Z zP3fNu`Y-BnJo@=SZ!io!K39Xj#h?d{=yx0F+xVGv;{nij81zUI{VG7yOD1)DUjlur zLC?w2F9Mp{Ggi^9pw}AoxD)+c=X3wjTk$3E5TkzoLcV7)0ajnn`a6MN0DY3>oTZ%ZM!Wuv^Z(cco(DpIaQf#!nqIY| zKlftpccS&e{>3)Bhti$YM(g*DdS{vP`j)-AET$9V4E;)w8NYG6h}QDgwleLY$3)dH zYms$+i8BIpO3{5U;G?+)orn6j`Z=zDo{e4yy7S*ST`M789_|wkAbln1S@5@D8y6v- z7J9ag{?2y)tegiortrLeTOUTrZ^yk!Y*(j4?r`$2VZG!&MzzK>Mfck{t+ZjwOv&egW18qi|oDNcX5@`w&|2F7!_y zys!2%_@l*_^LRdz$^Ex_1xKW^UOnjzwvY)J&!UTX9HyeaudQXe+i1>z=SuE32iB{% zcIWtMAl_^A5WaJG(ma-b2=86_Z6wp#SnoUle>mr#+#cEIDeTVnJ+(W_C;o-Ym-YSg zc)!9R)Nfvx`>hu9+l_gwk6TT>^B|ueTuZ}nKg9G1=-&?dF<>^<6}5lka(4lzg_+&} z`~Y|<@G79;=-833F!9KU->~cZ?pO97hu7!S`s6&GiFPh|i(B}99piseKereSq3FGr zr+wpT;IaeUk8Tk_92mnys`?If(57h#`Gs&tmumFb>$B`}h)c z0{Z3hqq+VIU5rk8_k;RLzjf}x^zP#r*L|v|VME%Nc`~;P#TmEYK;Db=^hQpv#`}@5 z&1q~#dp15~ZEqe0wCeW`{836ztAEaexU}=D99#P9od0(C!)tKg;$q;qahxvkWAAgV z_McbC>7fXFooL^qQa;0r#ge!ijL?@XAp;rHOnQpiRh!vK4x4uo6+|z%UOGazJK~T zr+@J&V`y*t`mL-j6^fj}b_&3gN7(ZOW>6ureC%$7jwl0w}jLl0qeKjy}8h7}Z zHW7XF;&Uu_!ZVD4vsliqukbBS-w1Sj+n4+J3zjx+;253w_ysy-#m^-($$GEFo)&1x7y_HK8e%gPh|AYWjP+@Hn}xuUD4VcgANkAXu?EZB25|%p`*!*Ps`V!Z$TEe6V>zbUgge$S=h+Iz5blfN(P@**`hnBG{0SQV z#`^5zVV4WP#Bz3h_YUF}#e`EC1240j-JbKuar*oWMmOZ_<@OuJ>8Zd#UHkg(p2Bh; zPht$e!gBV0&X@r?pzl?dvyboNm#|#(Oz3-!v;v=%d3yH-;TLg@p{#f!Ui}Bvx zOT8=~j3M`z3pstkMU2KT?U#Go98SL$SaUS5e^t5e_%7;RINkENt{j&>e>7tN?cH%jc zVrBim!mmM`CxvB>|9@Mb5avOtPsU3BqGhMd6!QN%*4W;|G2v6T!;PQ8Q{w(gUoA(N zSWX#{udH?_6_@*oGVq+HzIZ~3a-WtDe9_m zr9QtwUgocszq8z}z%4+L?}U9&@#~Mj%<^TgGS&h`-UE3obB(v(VY&VFjB7xTevRqZ zx>+Oj;4gL$$eLH-edtoonH@3j2m_c0xuir+-*!~{a%)h}!^zzVeeuw@FGjhWAlHQS zS7XRM0J+bQ{#*>XLdd;`^qLrQ!5!Rx|HS=UO$prIGtusQaUWLR5y}OQQ0^|9+@=`i z-gbm?w;Z9I?8jZBK8r=aPkCD0VWK{@1ZMg3O-?Q&I+8-w(JpkM8B z-z?$rXa=Utb8I1@A(CWZ2}?du^kCry>1Jo1EQSI+5NBDE+)LS{WU; z!0&zol=|7drQF9BkLyn&cd||2B9ylj=&|*4#&#aJdyszbVdQQ=dH`r2H__KKEx)s!=~>zT#p<38f2fl}@~o7``sxV`b1=S1IJo7|IEvD^-z$j!FNtwsNC zwDq%e@k;pJ?nv)@7`b$$pM4m)S?G^NK=D_nOToZG(F3%{S5m*_NWW3!ZS$7M$@iEN zUm0Ra;|L+2mw?lV=vik3R^xVxW{e!&dGP z#9;{RvRYwd?Et1E0^Q;5o*DeK>w!^ATf9F0Th?y~Pp8 z4%`>Li2GPZ zfWOoBe)O$4KZ~~WzEm3UWsJY*`QS6|zpGKt64Z1060VoL&sO9ICbGUt=>HXZC0*VR zBJ@?qVP6Dsn)I)}xs8P6`PFfqxxaqL_{;Tq>Hjn+%$mp%#qE7rej@Nav@7p(iBK7T z&EoTD`v*LJ2M%!lcX1zN$`!J2$2I#1{PiY(lrH%O@E^cF->2trzMp_{|C6-)EsSRx z-Y4wG{*OEdYd$|I&*K8agIpa{h$!;%+*wTdQ?2rL{jy(V;$Zh7^_y~dPA%-Q%8UMR ze?)fn`XBEyT<(MGA5;EBtGr$RLG>BnHe8un_+RK0f}JUO8Vnf-mhAJEu>f=%17;e7yhO)GvH2ALywA_D{m^2t7aIzSm&`cxI9N zzrS3`6_ESBh0Z}7KI2rLZ)E-~{($F~}$sQXu19R8|hj@Xcwpd^dn;=>i!UFt*Niac|2}g&t)_! z+saj+R+4fjJkIII0NwR0r)nLoZ$c4|b4ej%2y*KFvuL@?wsQJ~rHtN|HhuJ^dMcM6 zq*;LP2;YtG2RGxrda7TX9W%}PP5g-CjoIJ7>HGlEaQ&r|6S6z10Vt?);(xpDXHdq}G zS#J#Hb4FHlLm`cEpYWRGYme`3jdGX|Ir?}A$95es}`k>N>!tl zIym+6#Y+|~PaQR9-r&?_i ze)>e;GETde&1%xp%daMe%^p&3ns?Lx(FXmGvj40Hd`ZUZ$|;9ZLhevn$Q#NCWrngt z{!nfx7|IWYLbaiAs4mnHiiDa%%^{<}S>P&2DM%~u6r>k;3$hA)1=$6;1%ZORf?z?Y zpsb*#pthjCprIgA&{|*=It$%}X@#CbZ(&AZW?@#Lzc9BjP#7%CFANoy71kDp3+oE& z3nPV1h0TSng+`IH$W@e5XCvZC6ea8X@RLs6ut zsi?WAwa6%T7N-=ui_?nJi@n7e#hJyv;_PC7ac*&-I9Qxt94f9U4j0!IM~a(@n~PhE zT_q_c?vk_;Pl>lAqa>@uSK=?pEy*hhmgJX&O3F%VOTr~}CG{l@C6SV*lGYNV)LH5( zO({()^^~TUdP_4(vr2uX*`@x{+|s<#U}=77sI;uKwlrK?S6W}%P})@5T-sV{Y;kT$ z+2Y=kw#Bn0eM`oc%q>}4d|R@&`HBDRY;lm8F+?%QDI`%d*O{%lu`zWr4E1vi!18Sy@?4S#4QeS$$bUS){C~thLP8 z>fGwunzA)*t7mKaR`1q~tyx=rTeG+Nx8`om+Zx=OzcsYAY-{b-@YcGm^;;XZHf?R* z+Pc-)=G>OD&Alycn`c}4wv26A+p@RiZVPM+Zp+_RwykDccw61JhHa5;&D&bHIm=z; z?(($q^m1=`W_eb*uROclU!GeYD9|%1C8XWpkyo%2kz8<*7=q@>XS4`Kq$3a;pMW!K(bKP*qt~ zO;v3b*>Gl(k*jUlscqS#Z8=NZazNX1nYQJ6ZON@6Wyfx9$=-sDf=q46{wPakD{dnl=OW8XEB27xWfo_V-TBGp^2q9x&DE0C)tgpll(@*|(n~V6#pRX+ z$l^j|Z8fm9W^HLHrEan_Wn-C9Ru+h|vzjPNi$vL)E6Uouur;+sTIY1hw_lYU_z;>v3x9@o4MG($*8u z)>Edfr(Ro6E9}P&3(9~E`N@Xzv=y-pg{$hT8mb~yO;xQ`MzyorRqd`$tM*iYD1h>iX)2>gMX!YQvjkkDtggZo?Ona_t-iu+?O)lq){$RrfKN>; z@{$+zlOGL`Ck+*`9oLg3w-!0I9lObnGvGS|yPL0&Dp!cSf;SdmX&t+paeUM*75L|)BV=_0S@ zsZ1xYmR0E^uNJ7xBd=CgSwmi}zOsS5T5F|2Ud>&VMqVwWDwDjLpZpqowc4t1Rh_oQ z<|<{0DcTOb+77d|9R{@>)@nP9C_D5d8TDj`&X9|&FkO2;Kh5L+y$xoQ73RVt9&Cq^ zf~EqyEqV&m&ADFeF;JLi&iFOvoZk?0*7xdpKTFU2Vza@bd_Dgw%T*CTy)6b%zF0*8 z9y1Qeii!l3S5~orSaluw=7uQm>?He6L0rH#o~b=`wvG-0Iz9+#e_c;efkClA9@({; z_v>lCcbPN2vgl0sU;ja~eLcH)R?edtxh&>vtn4-oUNr-=va;V?Ju@pC=Gj@!#Zo^Tw>W=c4K^=$2 zjzBs7WGiGFWD9IEqfa&eXP9%p)ykU5b2<@g`n1PX^M0+4G1*@_b#&>W*fJ9yGf0-D z=J|SxCYupUx-9cM`^;R5B|{WN)|>Go`^*%Y;g#3)l9gqf(PL1@k6|4(Hj~$M(frPS zvTSQjRD8((vK4cCN>q%Pxy?`Wd!F`~b>uUf5gU3aGF1N3udOerW5EW*fGM!HEbS$8 z$-c_8muw&p*-W!{3OuAw&)XqwL3P?My7Ww)34d5a@m+mYGtJ5_?FD^gFS%qfL7Ina z^-SEXEQao#)~{~}srXOL!tH`g$vWhXVhH;y#80%bHPivPZ@@xjpuF9YJX~mL9 zc2YyWE27saX|y(Jn@`y;%Ji(-V6IHuScQn!Q9dU^tB_Vbo2FRSAlcf_)M&eCHrE^~ z8uZXi>ZUb>c$VljM2J=qJXcPO;L5+Qeo-x}-zqTxFt{R%lRBV@q=uY_@wLVb( zrfuxgXs+~999Ki*95G`!XSs*g0BWpdZVc(zKa7~)fOpBntjJ!a#`Go4dRBB}PW0(m zKcweF@f!_@_SL-T)Dgd$8$CMe&(slr9%e`7MVhNT+IwVTPE4iQ-SV3C9I`v95qbN(SPlI}P zQV~@XMO1k-+o)Bi%rYu^O4IRECapMmw0Ty^*Xw|A)SA=22B_1Xz)5S#OhijTI`7N$ z`jO*$9(^apOX{p|8})`VC!!+{)`ppSb(lx-kvi+GWA4;3l3T9^13Eg&M-B1|S+50S&o&XnO6|=p+2j{g)D%QSUvmii$e?*9ORo(5rlo|i zHmuiCy`dxe6f>q*Gf$iCu;nO!VzHfOm+>BLPP@pP_-Qw!o+5S+Md!hSFnI_!?P&za zFGLDm6k+?x2BKpSzg`c@`Oo$cp%5+vlY*t*0FTH;ty3 zR$KwSf0eIyuhcqA?OwU)toQ0YE9L!bX+70MI{|L&P4Rfw(>{QQBF!M3@6E+-THyz1 zRUaww(tOUNRb%cAMX+Lb9X4K+^E;wf>@K}#_mWTd(>_p$c7W<>??;W8hepgtV-=+H zIZPg0t#sTJEoSP`$=9Q!RyHn*5xv@L=SA(;xX4e}(AlTvUDdPpsLiMQHb^m>>eEbG zbJUPmrT(L9QUU5eH?1*z@T7Tqr%>&z7__V6p;fGpRt`b(qhZ<$Y%WmyfNlOW&s-0L z_5NQ2^=k_4`1vra25Bx0>(yzR-dD-h{o7FNr1fVeMdp67iLutuliYnTKhAt(m;1oBXC)RR-uxQ2sJP zduM9L!%M43KUsfBuO6Fd<(NWqV+QSND620cn{Obicj{GQCdEDhy*jL;m0@dzS`~U} zMd;V7!CLC~CcO&u&C z61f!Z1S#GrqlhO=zA8ea;lggMSMMnV&E1509p$*NKbvk@wFPxlT%&D1qOIPgcV#^k z_jqYfHj75ePrC_iYqBQVNod=H&C;LR?jhK6&%9DBMZ1L)yt03(LglUdzrX5c=#k84GJDmS#$1@*0NVPPk zdZkn2GJe-{ObYfb(`mMmGfRzVNRMbOjcF6@!M8^FEuY>eQlnZ!XPO#QqtHeBLTMDa z`t)v4+qqVwcZ4FeC*-10%)mGX^xnFRWZ1H{Hn5`hMeV7F&A6ty*cCOVxwMB~MsrsK z&0J0zPqm^6n6s6NVt6DyQPHeV@BXNjOrG8q=W{X~wW4w9s5YI}%-OUHo=^MVb+m?Q zEpt%>>!oPMPqS2r#N*X!XLJv&8crDD+9m-ndUybWUyNBPWFGg|dn;*XGCwKUOAVhXKVe0r6et9Ncx zlo2Lh+FVWNu(6v?Wg}`gEZ2s?Y; zR6NDelpj$zx3aD+5)ZhHF7R6(vhWOApJmzXT=^|!${g`#$mBD9*5$i6ME50?1p z>QI~QD_>S?ivkQk&!OtNo4QWn(>ojL`a}b@-bryuIz=Vf6ql%&TWGD0g%7wyNkMIp)x>-BZ0!$%@{`pQzs=3leP!{*ajSV!x})^ZnF zs#l+Td1R-xwENU#t_-~9d?~hR=&M0$#%zoJ!g}|bS8t zji|h7zTO*RPpaZauX!~wfNP2DM|cGP6MrhRu}mh#n*oYqYH(GrnW7kv-a*dPac2Nm^TK-X zMny4d-zJ@|9Q$ZD@8J0^o6dT*dsjzuT`TPir;%6B($_aabhWphytxrG(v%&U*zvqN zi)!^+JQB4hV7JamJ2h^^t=W2&US?haYtX9<7sWYVx`ykgotqF{ zyRD~vI)ldAa|9#ZY}upDrqQ;?GYwJkjM}A1(dT2Hz6PMK=DR6Akx|Pfj~FJ8*g&JE z*3D|w>?Y5cPQFn^CfO95w9VpmQxz%?CNzeU=)gTrgan5x%v^|i+!)(qhoGp$$O!;wX2-~V?r zSM3q3pZ)r72sLBX<0`g6@s&Eq)EO4gcRrNq-Hljd<W%34!V3iW?(G3lfCH>&y3sjt1L6=oK#FGIACULRwPucELt(wRX!CfWKf zA6a?SV&^2~u#rkQ#@ZrVulPfH%~)$&V;qUkZ9D6-^u07eeKn*^-%ZmN$H?l@W!p84 z?UD1%9Tv65@WxpG=V=?Lr7LPpWCc#LfHWO*XVDILt|h|u;R(ApPzS_szmczW(m5`1ZCt0-ayF>`-^d(V&% zuK+;r2C`8nZGn%53=N{t5Y3 z+f7w)j9p#bT~}a!6gMU^$1%Trgr_H3#b? zYNnSO^X-5!(}z92;MN=0-pY5u?7MTy?1JVNweWCcf`z&~uCfW33soZ z(%%)dyZN&`+Msr~5p{q45d-aE=<2A2flM`oDJ zk$|bLFRsh(K?_Xiuuw&e#A2VHV@H}dpdHioTkA{<5Y_sYwwrT7gJ6AgQ17RV`-{z{OMUf~I~j{{!^S#f zF>cJ5#x-M17wuj%$49w;%4W-t%y2U4Kxy^hlKMEXyE~afDzN-{Z!R7FTn3jE#y$AY z9R`0r@TYAz%RGOQn?ss8q${0Fs=##j%`mRUJaCZ@r_nR!)4RvGZ{^xMwyF8haM;&c z?nA(?c2UGfZ@rVOGiKiRYjX2Bcf@=GrtuQy13r?ppO>EIWXuF7nJzWSbosD*W!x+0 z9xyM8`|t!UQ}e#zV;{8KbsC#K{_=6t^#^cs=Ku6?wcXrgySMQy!#y8Ym&UUlBXAYS znp^+g3yo_YZBIt;hzxA~ zh!1N-YyQQ$S*&NW5STpuQuJb|0WBcn~%e?Dxw2DIkP(Vs^+ zo(=pzo=1Z}2YZ$`hnR7n_#1P$A_|@<^9Jk$Re`5}Nn8P>!fjJB=`BA*Z zHv3w_bKN7$toW^5e;9ms?Y_v}v8~8mZ1?+r{!M4Byk)fJ{I zvdwZM?M3lO7+e|;Ux}bu_&m6*X==YT9xO22H<^~O?fw~@`ut+{w=vG(5-VN>-}S*8 zHatMPjeP;*hF%-*4*L9%h(X`!fRp(zzDMkZ&x4PIzJH7FQSmN3Fr0TC;O$`ktXpDm zNgecOPVnmTnStNv9b=qiBw*&jSK9@T@KE}klMxOk#fscp@A>FJSF^QWbF4Iz4sAUR z4!rpm49zz`*Ea%X3C%Zpfs-kVSo>dP&L`x=aN1vn%o{=bp1hkOc~Rs(oud`Oc^`20 z!Vj^3_vw8>j#ik{o^58&w$6bTM8wY_dhVs$;9?ddrC6pk&em%>5=v#C-X?Z*&n_b-2QpprtFHUy?vMX z*GK7B-#s36M!7fS@SZLNw}DR#9OHS^m>m(|H<63oSm3OIDC2*C?-%oV=d1JGNywpx zD@VDpJs*1tdRcX5foTlhdE3A?)?0JCVV>zSMP^=GiRfjr#~-o44FesMMZ1f@>*PcP zo@uY}pZ5kT5)R*E9XAXZbVPrkJkiI!t$WP=hdza@4VW6qg`a=UbZrfMd_e07{t~E5P7ogrltkUkDJw> zwoGGHv2oWM`%qZ?$a9{p4Hu+d2-i597IOcJ!EEDSx!>+ob>`a%<}|da&pfY-PK{%^ zN6;_uV09OItT#|r9ocQ%vym&_b=dIS!8Y;bUgbrmOmk?0ZkztHxnbAGf3)U=JlkXK zA6!xtSHGeS;l1~Ll6%pfNZ4{$(|) z%d#|dbPa2^vMQWx8Xa(>#k(uaMtj-@+P0%l!o^Oq(%7rEv9@8>sjtPfwzG!LHNnn; zGADkpyda)kZ^!$yc06)VU2Ar|6^{YGY_2~+=dzn3_gJmXgHA@eO7lPWYo_bJ!4<~- z;&#TFNxui_H$0tw*G8VgHb@@g`QVbv;@LezI#IX*r~BKG`@4jnFFd*CQQBD>>RNTr z3Wk%R0yEJH+Q}!lul7}Aop=a3s5gPmMaJsv4FnR>1FU=P+2DkA?&ckLp(*gze4#P5 z=o8nNz~VFHJ#fAADYLo>+E{MP;hCoX7`%ECEfvw%v+rbUcEiKR7&pv2%Z+uIb!MSSo?B%8_27mvU&p(`HGEK<0K6FFKIn&)a*<=ju){i#HE&R9Nh;B0j^Ub>O z<|yC&wxx+sWCC-I_S|ve`J&AcJs<5P1w)k2C#r-GYmD@1Fldr7WZgFybNyW=exje) zM6Vyl%Y2Hy97|(4>MP^X-3T3Ouou5qjNFFT)rVjRMN8d}^R9GnWH8$;Sq@)6puWoJ zE6v>Q)|`t>1{(8pw%Xjv7? zSr2bLUl?r|_*5W1fP6T1b3wec*hx;qjy-<9$vgyIA3%m2K!%KmHk$4dOy!A}2D1-H zb_ve3?PR9@tYv|fy0CLPpZ{r@9e*%WJlevSsC^?)RDJw>Pp4PQ<~h1N93S{pef-$X zi?Dx&WSi*a&Qa#t%WTvA0@wLI?w@QHEDuaMv>SSy6sXv{)1G>0$EJUKP`K&CW@;%i z6X!i-y1ML1otFiscDC5l$Mk@Y3g-GcpOg4}Ge>iSOLoRhWR&{`^Y06Qe|(^%@NEVz zS|2vGgG+XKvQ~JM%oIQUiMD5e57DdzZe9UrgX1d)EYUE-&px@}+*GhL^s~qUWbLXn{Bzk~ z>F?uDuNfRwH?Wg2)8J3A$QFRV=COtilH-qoqnG&?Z#;rLUs+&XyJe+WeFc52h?M-S1={856V?9it@ zd0V!3xhX#s-uS?SDcaIa=Z_vVT}^iRm@d1#Gjlw<;{aoBwo4aFUk<0I!6iRFp(iDO zUITVJSnT@n@AUMD13w#6?AC8^;_I1vlU^D~(Twg`(O%c;AY&uPOs4*(&{{hfZLkZ_Mfh8x3FuYyK*Z}m+R!v;GJ;7o z)d3tnTtA4fKvxN;!mn_844-`ka=P(5n;V|{;8Sak%@FUDjhO3CPRw zt>diB`a23A4`IhIVeOEG8?9(ZgP9|}YE~O?WK3H{q}^%_Ld$L7$^>I;BF~y+1e`|h zc~3kNLdPFPzOyEp&sETn~;0rkS$u8B}TVK00DZTsE zMr>?7hc;z1h*v&@|KBUyFl^in7y3TU1oZa5=hmhOdVU!^YJG~KYw`NM!}y#SW!Wx| zr$;3oeFu7h$Nyl=suXncY_XX*l5f-4TgC8}f!Ci!S3hganCLs%dD4^OG1*)mEild> z85f@O=jCUyFCc*=$XIEYYL-kgYC!4=%CerOfpR{?MD~ zf7$m(p{t{Tf`l#Kkhp;G)En@1t8BI{wsq({WUTl~>)emeB0q8kHlW(3;7@xLI?$ec zXt!OuH#}zxGT6A%&s*)%&QGyM&R}+a%kE&O?(bzDf`7~I;Gy6<*~UNErH4Mv985v9 zA@-RI7a+IYe&&7@`W{>oMrWNS2ISd*cHRcusQDaSUf{{0fln2pLyF>_jlg`gw*Pfq zeSC*KZST$t%;9^P%X7%)=a9|v1%B_xaW?ji^uhxG}!1F9|w#XRMn6(R5r}^9ktfJ{%zCHFkVbDxKd`_HUT^zH1t$f{e{ zR+_TaG3=2_Q{mCA=D77(wlRCAIeZ1{{5{^wevoU%_%7Fv&oZt9uQHF;SfPX6J35YR zaK%GQ@tXxV_-}aUIB@bQ8&$mRwcqMI6-k(+=sa>xIBDR4$T@bhGHO^s`y*$JJ#bqph4AFz#Q$#SP3uc9xlqZJmXS|+)?AQqMT(~j#ZcU>ZoAIHCLl$t>{c3YVBmW+p z$YsgqUG(v3y;oK2j%SU0`_Gq6O?jA(XKVh8HllG~j@LuOi;(q~Lcb^5`yLNt7vm#% zJbb!XURb<21OCU3z2`bV1`+gqosC}XZk*|?4ta7f;b4os@z;)qr7tAcNG^<|edK22 znb1CRAfdQt=zFFsg>J~dBOB|Fi%gezp_e#k8#3pQ|I2gJ-`!lvuN&w`W42)sQ6-sI~X&Dp++aUWT>=+xM4y`5X{ zQSl@7!(zAdPsF=@97V^tqjNZNh@%KUz5VzpkNWYe$shLT5Gh~|_}Hwe`>ou(nESlm z&bs(P=9Oj)vsFV_n!tI(a(5( zOrjUr9Rv==NPhW0kOLPI14LJ9jOE}&F!s%tjX0DCaF8jtuntG+W!EV7e>pKG`$Rm^ z;{jqac^()Z#~z~n(e6)k^JU%r*go^UIX7RUd%$qx%pAUx_4x9-zjk_w`1VU{&9w{9HmhIZ-b~he z!_OwTD{gsD$%dbOdO?Q?REyU)#LTr@X3_?|eKu_#i>b}jl1G2Ga)IJj>c5|V`4O^b zHOEj6e!))sg?ak$<)2GGejW#1~o?ww_ z{7HdN$I3Nj$?fFfQQu}ZG>l(vW9#<9TMlpqEz@m)LvgJ7-2F7Ti0};B@0RaIeyG)u zf9fTUybIrRVZm8z#25G`bL&iyOmyK~$=mh`(T0$*N6R;?)ANE+bN^gtx}>*w-n#Gx zv-+FFSAybOLp1kJ=1(@n`DVqY`(@2zA_&)ZWGhW3V5pj?d`J2A6=)%CL1a_rt`FW`V?%~Jw!XtaQ7sGE!;UD#tagVt1k7V=c z9%J`aa&MX+Pl+7Q&Py}D-f7Gce?zED5(N_?#vynB9RA+jb0O>sYwhTg2>YYzmCskY3+4HTV} zwEgkBYnTW9n8l~VuhwEmKsrUV2)_o+>YuaDz32EcEak1uGi$WI7Ia!#;9#3Nne}#H z)hz6lcHmu3%;x9VI)?W}E5TyZITjyu(b~$T?bE|!W`gH1usn+1oe7>->JvOeZ#7|K z<|+;$8@5ex9y95x-JhAUU>5@Y7!kj~pDoabVPN0;M^4a?0+h6`U2FK%hO$AYFz z*H+B(<13QWHRwV7URJ7qH?sb*ib)efW>)c#nCEws# zA2{*(&W7%=W0w_TyBFbqnuO**@TpPp>-ju(b8-CmV&mC4W}2x< z6*j9!2f1e^RJbd)5l5B`gjP$TRr1i)23l=7%alZ+RegUW zP`X$!kUu=hE(=aEjiaGe_3?S0tIi{Rk;%Nt`lx@6X*N#v#?=@O>nr`QcJld%w>HFz zOlGHTC7lj)ZRJ{P^-Zi_I#3}T<99_H7^tZQ4eLcXD{mj~?Cibr-q z!%Oj7TCRI~jdYzUi#BxAZx`!tm^VIN;?)Y`;$JqN-70^j<@w|q#Vz$r@cbM+M%#Tj zehweXFU+rX7j*Gw{Ie~#y}Fn2tO>-MghNy0{($!kIdc=W-Pk<_93Vf4p&4Xhti&W! zpL1rVN13E>|9f%;Q^CJr)%?rM_7cGyBX()=P6(O0JYcP=hnHK>pPron{W)5rqQAXH zqu_Dhm-XOoNCB^KC%P36X#Kwf4*myo)_jOvdbz#+N2u}GBRN(<+l9|ZSSR6DvQ{-Y zy(@T*EhC#`6@5x4OSjiCzkYP5Voi#j)FbED2Lh|k<9bWLtdhMLS{ImxJYT%fl&xy! z`x}g*Twmy1XodcQjQ1krWWbqdsJFe)4Ps}PA=~6jF3HWo2@K3Hoo*&Zq3KwkNxq02 zZn-N^+E07sUsm#N>?PuXE@EX3AE4dw#e!2l$s&0DQh5C` z{PfH5)33m9JJm;NqF?L)*UMoc!-nf)J(EtU;!`$Nc*1lyFkw+#u-3?y4dN3p?meHR zW(mBd$a{!qt>DH6@o8HceuZyaY^%DCT!r}7GOxXkopq=U+)Gcit?~7U`W$InrD-$S z_H~cumv8$f^E@Kn_U1_~2eh&iTRRo-^BvYqC$sQ4@iUF_>Q@^g3!h%2XR_I2S9Uhk zqleb#Vq~i4aW2O0K)-a*9@^NuaC(6kH?wv#256!{;1*V0w zi&rZ)C|%^q**%i8g7q{L`(E}IjL*_jt zk-5~h@l5q8->NoU$HjMJj8_Zyl^^=wW24Qy?la5|)wcccDgT}si(Vw3Yi0cJj@|(d z%3IY(!a+{`^^>d_Hf|epr@cFEVEut$f$6*gSSdhBIA>7jM_q+tF!R7&L121kG>YC_ zb@5soTqy?f5V@Fe@B{8a`l+W+3mYMdJ@ijg$eHq7coYts$tg!~`oL2wf$7mvX2%Tj zGb@Pi9K?^e)EBl;=!!9JEAN?60~cjyn9LAeOi2WR={(76ueNP+;Ljqd#lyb9+o z?|AD$yb2riDy_wn_jFSjF$EhBnA=TlDR#eU<~moB0vX-Xn5yHd=<&`$B8zDJDf)BP0p0%%+? zM@JEN0`Ecb0P!V_85|33YK-Y7^Zsj`u+G8Eo3%9DHnSvWH87mwwMg$ML=A z&9D34#a}a4`Meup{4}*ZC+OQbmA>Bw4?$$jz4SMoIM{snq3}%8<>^=8A+L&$TAp}( ztPgW!06YWVw-%bNFM$vBEt&i<^N~yz|2&M&lS~%>^KHGh(ufVkmEbPScLyzFsEX}oPX}-kW(M-Lbvm8 zQ-gXpGWf^M#ja#ntitl-hK=wRJ%s1H&kZ`*+PQvWvSIKiV-0l}Tg+u^Gle zzMI7@70xCz{fYy|)NN{eKYpeuO{BAJ%>M|?gCtXW_D_$2Wi1tX%8SESJs`w+yIP_npf3F?2jozB@p7ghYZj^(p z;d|RX^_eF82-$T(J-@f!gOf2b(R%{48>$~m1$>*OiFUHHSd)1DhCoL47B+_b(G&4j z-@Y*W1*`aAcsx+|1c!X7G;0YRJz!X?ADnNx!r<~SGE;4uz?~WEYzX_v6msgqR>W$m0Th=3~zuF6ybprHyd$2DZE8!aTk&3Obpi=(j%Rb5#0|cuH?B zzp5DM)}Asirl&QIYTnTL4VM_|pK^I4{4n)95(fq!OnK6k@B_KJgkmZhBj2C;lC3h* zZ;cJ}TV;b?%2=;Jvle5tZ-Vd4nQpq?xZhPA2j57(;8I|ao%<$ulH3sQ{m057zd-)l zQv5W@iGQL$)iEj$?c2ns&qb?tNHlBCb20@D$P09Ez8)la$;otWQt&%AQQ{hOF#0({ zp7bEJ6oG!C@T-M=s&!odeq;{5(nH{drPSuZI~P z7ZJ>piSOOETedCnUD5h2)F)H#5xK|2p(AoW)7=B@CY~Axed&8-y1U~#6OVn!QqD55 z`&!d=Yc>2=k%N_(6E^>9GhxevkqfvFjY8u)qO2`;h$nxq(%jLj!hbb$7rvgPAMw@m z;9E3!at*Ra`}>C1AisUSAuea_7Y%Nu?pX3X3NBy$3jK{W-S>mLC$U*YZ}a*8w+o!i zTbmTqt;J!1AhvI2bxJd#NcFvP&WQ~0;(Z4UBEeLvA*_6L^BR-o1z zevfrbAK2P&_RDUFs2|o;HL^kaexl<&1Nd7#v5vC_CVQWs82E#24sAo%#X3Gdu&v&Q z!>ql1Ky}ak=+6}Kj#yy%fNGKR@iXpqKTnN>ayX@|Tg&&T1>pJ();mUhauhoGH`=IA z>s+6ngpZ4CboL4Qo}BplY^_6S^;G7vjraNkQxjXM!PdH}_Mez;jrz;eq-rvv&}jU2_!Qo!ns#C@<%t)`_369TqmS#~PBc5XZcv|>_%d+c$XaQnf8!ebap4m? z*Cp`1@1ub;Js)Wba$0phuj50N9fAi5AMY`b5VlG9pf%_MN3l>4Bn+U zT)GhYr|!Cs`X>vzY*S76T=h3C@s0KDo1smVSWEjD|M^y)r@_JVD@>P#-H9*Z3MW*@*mEg#C*YRAK$mKeu@vz;J=W#hUh4U4SGUu1^sy2aJf~Y z9PkVN4Lk?%Z8T3kQ!V-cyfTWsO6{ItXUp#3-e+mE@D^(|esm-Hzt#ZnPr0W)@^WsL zbm}waq&9j_^d!GOij0x1vzav&?MZHnSHzFKC6ipqUyLHR6Mh(^slUwg)g>Vls*yWQ&}`qN4%oIeS^tX82lb zsB)H1ZU1MsoaC!t<@btGZzPpU%`-27hUCLjC=eevo_B4ta>T>?wP% zr!DrF`}X-xW@L^1$ol#f;6}1(aLF@qVit#2AWI~Br6cbKcCGzw$QHFztoK&zoO2#&NYlD{U$$Q2;QCXOS!)icyv$j3icJi`pK_o4GTPYqB&SJUeL>BoC;4~ucZRZ zvD=~z$8%#f({DZf>oZK>VftRQQSb#4uhD^|V+N_{2;pqPs zCei0`cs%&%I}ek;p3>iegvLDxENUaT3dyhKVba_rU2dUC=+VzbU) zA8Lqx^yxJN__9O#f2cl`oKUOi(OluwUPzp41M%Ap)G2)J_@Vhn!mN zOKU>T1lLWOrdqe1;m{$~9EXGV!JCp%?3W?#_QF?9R|`DWht7G+wmWy&_Fn0zAsi!< zHDCH%d6ni7pq{tm!H_BF+{?QW?hmIgy_fAU`(>{xjygPsYN7Web3^HBcgZY|rxP)F zB^_`wv-v)J@7nS6JR5!A$T%pnr13fGw0wK*)V*sd`jg&RNM0&RTMK-7^2De8p1~7y zdnQ*?X~pqV_I0(N<@z=BR$>yl_IwR}hP9lGjTpIW$3tzOi44?XV+ePR*Q2+n&3O}D z9Kf#MaaZ7>c52pTA06ahzJt~Y7bP}??4cHvVv$s}lC0Ef#j?Y=-e^;*LQgl$H z;gN@Wp)Kh##b;vhREj$0Ui{lO`fK~lZ37`_sCTqEK_jZcA1-H9kGa0e9Im4dQ2Ii$ zrJr20x32hgtV5z37%N%Nt<=Zmb9-8A$qBWWJ@9%SU%VsUr{)A-s$g%veZK9&v3`s> z^(ypx$1`4xdE|Is<6UUH+h*?w^nR$Bar5nm_m`JZ!(kqoI0h%;BWkz!MgEH?e0}5R zQJX(v%JfY59DZMGCj5v7v_|st7a?~xAa}I>7ciF?be6{nbEwuk9_}Y#n_&BTxTij$ z7nxP}DCz;`m2p_-YKuG)0_-`sE4nEejYJBjP zlQlo`WT*U_af}~jt()wjwQefnI^wU_ZADINY@FGje19%S0Iagnhvq-D54VXNz_t>z zKlZP(Gs_Zh-Ra96UH?1pzmXfCe2|wD*7&k%l^Z_NVY$7XMe+X4qv9_@f%kx$$H>Frj~(gRup;X*mYW#CBtO6IEXF7(0Q>%Wx#RcoNUalU`$ z+vJNY=Qc9WrkVlqlz7S0V?ig=*bRRmSIe$oTwpnfUm={CXN>D;jdTrfDSocl+O5dh z*}xi!v^7LNGjDB-`jcJaxzVOJmE*f8>pp`v`fj4=0O&5d$-s}36KkR#53XsuA3Gj= zHAmYU+8gY(yP;e5Pu5bC(c1PMp5@jg2n~ymhUjakP66Gqy{kRs_T=bD{;1|C**Sck zS?Er25;N1dV{&s6jo&vJz9vV+nzyzivu`Uht)f}M`8x09VPKw5y&DXkti!(b#>?#k zGiH=4+vCAcAxH2r#UHXM@^jF>t>O9t|Hac+iu-N=|AIAr8Gd4feA?B<)p`i0%BTHT zt-mHw_)c&>$9KhWWY@}O{|P>%_Qp0*dl8AWvqm***^|>ya|Lz=>qpL@HT}AiSs+{^ zC$#3hjP-rq>jmfPvyD7X8*~04edlqj*nuD4@_2N+>Zymvvm)rnPce`De8K7Vk#VaC zGWW;FvJW&l?G4nLwbo%T_MUHQo7On3nsfFEGoUr3_Nle$Pt-hBnpWxwN_x+QCZLbr zrPO@QU_bOSQ~Nr25^W0p7I3i%SXE=Pkx%7nay8Xn%yoGEjlW*Lyjxgi4!;5os*c&` znUl{En1}zY{e3%-cN$BvFEhosV>^^%nskV`d}CLY*>B>dkF@QT zT;qET8WAqlhx}IEn~`5LYPyB1)1F}h{fVXq^K=Ie#OJ!F7?s7`jpA{p%srdDdq}t; zhTS*biib9qxdxk!^F)ZPvDV<`;EG^p9_~EM;Gr9R?cr5*-NJQ#&rVEq;^U$90p_6E z-9dPIIBm&pGp{seq_1_I9#i+d{586`JB0mY{m!aw=DJSTzqe{vaNVTq0$cTF-EF!q zwrg+XdaJIDT`QRK{a}N3&t&hkHNkdgmYH}v-_13)8)mNdSmVXS)izJ(p8TG7xA4@N z-%tL@bBIB{Fe`bw_D}xP`UN%Zm5f=Y^U|r8_|c*d^dCJ z_Uckg6JI{pbj^TZr;hb?!@N~a?bZtH2js~EJcHM&(FyY+#B3zHcU4ITOxhc%Fqy@~ zWpuxndwQ0?e<}ByxF4Kj_N!g3Q#pX|(i%bsTN6y{uKabGX*JH>JyyWrHsIY2c{io& zqgL%VxK`b5WRvZBFae8~`}6KouL4YwO;g>sJGqaY6+7wv9QRG#$KGJAx;I>`7;Wwy zyP)&0dWKxkvyLOfp9MN!)-&XRp5@<(e!IityEM=8ILPy|=H9V#LyuRN4{x=TgLq!; za(k7Bx6}D0US5g3p5*Ux=y>@$D{h`@%-9oD=USSuH<-2UKWb!8qf`51`ia6HhWu(| zoM|1&=Nda3$lKh?R~35ukR$M$Uz2H74}1U}gZ!fw+0!*aYO%%dGw;3Z4ucQ!1a$m_ zPsiksOTGMYJ}-*TpJ3g$_YF&(EkJ22FL*%T1yTMzB%THd12YIQaombEZfHrd~s$Wvx*vs!ZaO=5qM-RxT~zq<$fcw!kma{CKbtzq9mq@;MQ8MndXRq_jm zd$CKceWPpBdgocIHu4Lr7W=UJF8Ygn9a_kN6SqIPMm1WJ2mcM6vSsv4-y48c`adrZWsDDFt9#g4%M-?f8^}5 zB;OYXrX6zlo+Kuc$3eQ@$ym%yFg`&$*6S4f>YR~0j`Q|_f6mA+PV5u-0QxQzaN@_v z4~}}IF%yJtEa=AhsWUJMJyZuwy$gv&jhfUMf*&i*s6#1WIROVT)+?d0--DCmX3G30 z(Ve@nl_J`Ym8)?TzK)yX`Q1Eg(=+ya<)0}}e1m1?r;(Rwp34r>m@h9jnUCCHx?W!F z<BpkJq&+`d}KlD*x>j+6Tb}rd(%`c^*Nwro(G5LCfk0=7S^ zI!)TVRJn9kh*}BuPEPdpHh}lE=kHF!kFH1@rfo$2F!!}?x_3V~d60g^AK8w;{{AtB zI7u;lat8KEA!jcX!7HQLGcpQ38537N8XDbr?B=oY3*m+1t9)KLb|>_$I3cu$9O`*{ z#fLn`_1L73${B8LA7B;{|JWoL@A!3D+LD>zy-y92=9dA)j@O|n_4EzV| zod+%#|CM7ym7mUr+Sm_G4!5Dw*hDQyvkz3kx5k_`*IaB$G=3Sl6)aKcRWV0oXOC=( zqtNkgU@_F(NtU&Fx!q}r4}fbMSfk{8hwfJ-=5b%=aP`&84xp|9*_c0m)DsK zH3yQ-Js(A<{E9L39a&#~e3k5$D_E~9sdKxEdd$VtV_uDY5Ex+}yo(<(r~M>9q6Anp z&OhQuC}twR9-MB>*Jk=>GZl=iPur+?!DRBS4)p(}X1|WzTy}R)!93&DUL9eLy8YU# zQ}+2A&X*_!|I*3e_cb#o=tiiqlMdO-n&92&OqIAjPH_fg4L(>1n6L}Ty@lNWz8AXR zX1kFFqj<$W{5ID@hOdBj3b1XfXlu~Hk%Eij;o#YB1izyYTA`2asxxYOzARH(JT2bb zSC+A(qqLuBqY2J*n_e%=ERCADGgde#lwC@Gc2Z_V(WH#l(ipEki9M(@+~Cz#TzQT< z#+UE>jB2p(gJpLM&V!?!W4+iu;)|l$clWHci#nhEcPBH0u{4(z`=+_gn$LuCH$B6+ zip{66A0x=gGHQIga(kt^*mL1fbEfa&wIhMD#rJ}v1hf)q=Y9Ip{-RLi9QPj1k9m~) z^1s0)eyD%8!^m1mz2oc8XW|$Ba#2R_%9fzUbie0!L#NI3z1&!bdeJrSW`8x~BUhr! zqqJ!$!T#WV<=Ye&7Y$KEy75-#C|db`RX8~XdeIv11}8DTTi`|f9>eA<`j+Bgk`aDw zf$%XLSHhF<1AY&`RkVdYy=93Ph`WoQ4)WP#hfkbC`oOX5ymyNg*Iwb*D~Be)&!Qb? zlDDrQzh_(anc{(xdEsZ~`LyAj>+WQ?xNxQ#G0iQ1R%Hv<;*orv*jv~jI_3+{q%FqxEmF>P>oNJ97w+2NdClmW1)H8o9exX zPWVE;HicLubzA4ucs81MR>pD(XYqij7a*7Aa7OMqds+R4M|gkR zX8cap;&idm7=6BxrH``hYlORzwOEm2(>VUk>;r;HJSR8>+YnsSygf#$BfGHi=`}jX zA_$+HsBy~eDNG$2+Ee%&+Vp`_%};Qh1D<88I@D52-s;@X9{5GH>Y%5-$34wSvDo~4 zG&j8)%kkyAji+^#ZM~cRc#V#EOLn#ZI(0LU_^HP>fZxo^wd3#XM$V18IHD zP2pq=+ez2f72zZ@q^9x;J1L$W=_~PWt)y#5^p5;vJ@U{1IN;T%6;$Xnd}~{r*3bB^!=p7PrmMW@gC_$;VejQut|A5 z)wHMP`1_xcnI5i~XXFC%4CDd)=NFv(oHdA?vAijw52mRQS zIwMAQ+p(K3k1O^wVUG5Vm18?W_2^l1_u);$`$P3>4}0}%Tj70tF?6I^ ztiISgdXmkTLIxduBm2M}Y_;8!oy;EgUS6SmAf+chCQ1_v6SG1=z}NvNLkQ~2lt7*iE(T1kOB1KdKix)K z)qKusHC?I`^YUbYp}iy?d>z()!8Uv^!kf^q`qg=FHN3A_Lpd-GoNqGe8OHVKI=630 z?UYMgfPA=#@sM$?_u)gt@O6kAt&*I?FMw9d6Em3;IPH#jevp~S+O&#Kw+t>^-2{&Y zX2`cwE*d|YaYIM$IuL2evNOi&)0u~=M(RS6XNy5eIY~4cMffjK<^jQ z|8vm$5Ui!%nFoH1wLFpeJbVGH4ZzGf1}^khV%D9xv~73g+Gt;;&d{5<9=I*w7LKK- z2hi!VM^D(I9V2j!jpWe*F-OrvJ-8DsX#M*}S+lghO~dG-3|RX{)y)z;TnQY~>1tEO zeeRt$j;{3>Ned2i`ugjNt(|T>XU8MXdBMFh+Gm#QfKJNTJ3Mj^FY29z#m6vBU&fzZ_$16r=v5pSW}&w z*s{&+KLFgCKQ_(-S}TneqwZ!soz}eKP^x;Cze-=f^i) zR*;Oc&g%0y`jU+Ba5RE8SnI|(&xzG!6hlhUPI)I?=ht+&%<^$3+rh?;=bT4yS2NwL zG0{&9OhRXFrN0PyPW|@Bn=`02K%eF37$Fw-C~}#xRx4(#n7RS(D74;-Oos;+%YF&5 zZ!Am$;7)An)6?v7 z?DuHoh7E00>=l`x6YZQ%?-3s z>}Y*}b8LAg9e+J^tK9oX_|#f1<#Y44(QYJQ_EIa-gHLzZ1lt}&pStG;{kTh%Hu3`w za7L^4C)F{gA?{C`#ciYOz4K`u&ZxD`w9dBC0c?h8*xu9t5$h<|9uas(v5?#R+992n zQ-jUXGhXw=kL+i?)u-x3FGY7Nt{TPf*E@Q5Cg)*pAT|?&9>nue_KC=z91VQW0#6K@ z-wMr>KV7_Vomu@Q=IX)w!>8B0#Pi`iur*weeDaRqKn%VyoWBr*Z-lFfe}fks`g`fH zzh^El%ii_O#EyJkFfT*=b6Rvhi+;!8bmz0=X~Te*zegJ$ubw6^_#@zpKr`#0iKEbs z?AT+_jAG)RzxfC@Dz?`i+R2yu3Hg>=OTzf=6WlGFhZnZBCYB4GDh_!YYu;wp$6s7(+#>ApgNqrrgB<$`#ZauhDdb6% z`&!#nZavfRe=D-gKm$SYfj{87m)wf>&Di7NN&0+R_mEMFm+IcfxQFoSPM@2LA)-44 zS3Z~1;_=w`;jywrw9<6_2XoMw8pHE~r#nx>T2P-1!K1P_L-%s-tz|CqbULyFnYy|c zA1Z`wvcAdrE69Qny6zqNmThHXW`AC;=)ScekYt~fCu8$@X}zPi`9ABAN5kK%8EHJ`6X z)~saf3&7DhY?tvv^1Z`kE<&GpxVqW5Rr6yz?B$Z~)BXvKX;nmf_IAJv;4K)eOQOT7 zsdLR#&8$Q2*kjV~GnwEObxGJpu4@2G2$h;b-|6V%B4cS)Um{-U5DPyOC43 z7}LWOwv^6CF;7N&THoi#it~EKTc69FlYQK?P2;`5#GX5R$g)H|xyZBNgGRe1~7sCQ~g-auQwe|t6(?i$4J%a+MwP)XLN1IRJ)N2M%Tvv)k)sAVj}*T zAODHW9bIeG-kIfAu5}*AHq69IOlIdD=J6TRsR063o4OZ69RbJXxxr%S^gPaWqkg67 zLOav^c5!PY$l1Br>y^Q(RrvA^CfHFCoX(!Wb;V1A=TR4X)9nisf5he(^M`hGxD6jL zSmxBO4V1XV4_|BfjC6s$I9SFzf+c;PE8MEy&>l|>9x_dQ-@)NIJ;zpL({u%SmLN~IMYsNA+Om`#8Y{ikc zcaXEtd*)~1jN-SEk8y@4Fhus0y2%`@w-Bp|{MOD$W=F7z@^nw_Y(wY+%xj4c+izaZ z&btnp$@W{ds!jLs!+8$K6ph6>_mkc9xh50YQ{txA^P4l?y{YcH6(z)Y?RYugC-bj! zbG>I1rm?ToioexUj{aX1m)!CDoTR$w`12)G+?T<{tZ$HWM3x92&G1ATSrzFpZqV}c z5+mcE!)ZM7+i<4+0$<0H6VCMQQO=LwLBghzy%s~i58W?MROIeQ(R~r&mn-|Qs)dy^Aq^F2R*!JCFxHFwP;{XYD1=Bv4+FXW7L=BW8- z?s|XLx17vM;MKgmTm{em^*f>`}N=?i*P* z8o`%5`&G_V$HtL<`zNlW=-~Sn_;7p=J7h2RfbLP#>G|f!WUn^lTRhV{3wTHJ@Nen+ zJp8AFy$L!h&5b{izGMU3=8a#P*u)s$%Go1l@hqq3PML@F+#7#ASCgokv&VSWn(P+#gfQHrq!W+A2LL622`!4e+Htu=&_$c(vD;`pxI1Id8~&SI@6x9b#{1 zyYqHL(?!(I))3!uCeCdF&fd4ye^35h<@M|xm`Z#?@l1X*E_hR9L1eCJRenZrw1GF^ zTN1?I-FcUJeCO+J7uyr+YD2e>ySl`*;{Pw+iVn5V^Z7k8vG1AMtzpv|VN6qC=02V4 zOK>UX?9B)GB5!ARq|l2I&av{^5~um@u(q^om<=rjk7ai#*XrS%K9+Is=lSo)zgV&@ zciqIEE^P0^id}>VX#Gz12l41A_Vb6|;Cw4&i#0adb2xYX?5= zpTqZ&_zxXneU6BVG2&3-e}gX)J(S07#oX(GMg4W)r?-24`n0*GVESC*!>fW5q7@oLaRm?0 zynk5~SixyPaU&c5E464~(Y;RVjjX@+u7ylt=Zyu>=_r0<4I7F*FxW^%iC*R!L%+vf zriO-?QJVh{@uJ~%wVjMp7bNEMHK!Hd%p0>FnJfH+iyhRpcm8>ga+#u+yTRFA!`i*X zxxxE$ILD z=83KYUqDaDx2c?^VatZuXRuR_p|`#3eUmuv2Ro4aqj;C1JoNeG#AA%1KAXYuD+%hF zdA{=baApPe5prZ-2;0b@*RgdEcTp!0q1^-DmVTO?*y?>&B);K&PE9=SeNIU{!RM{$ zsR;dCI~#s@KlA&LZ;N%wK7k(3chraWr(Q}u)gt8Ru(LSp{Tx`Bv(Qc(TgW}n``+@~ z>)0zGzRCOLk7rKx(Q|R=YUM#2nOpSB;Uw?ObGSC?Gu&(cg0AJB<~;+wLoQ&<<}cex z$! z=uR;G7Fj6%D5LMLzV|}cWr>P9A5UxU8PflTHnXS|*7LbM=X(ix^3%ra1qX73{NvD` zm*IPW^4Fs6!6ixbkj^V0M(XVwRNR%{3nj+JZ(8;o!(KiHU8m8p&}&WQ*VyArzC-oN zrDM$gmXZe^Ji>V#E%wyC{hJHpU4wO-TlnuP;T)mS#(i2xrt;aYf_9Ajf=Syf^BA#!o9GUNEwjK6K z!;8b<&_1|)?*2;7go@^VUy0we^ZdY(wC2mH{8{SSOF`b4^V5ZI(d_{1sF=EEZxO!~ z&FQ}KGLw*1%!}M7ItX8I3TM&?cQ*A{Q`qaN99x!ip2~pnkt)@ZPU%!WEeZ{{Q413R z??Lq1$b53>rJ;PXWaP+vGV-gj`On!0L}#jvRbDqu4s8ZC!pNkJD{jI^B@XlwCDr2W=h{$1}ySaa5;LFW}0@cxEKnX6pUzzo@L{%qq?+1Xxz_*?~jqa2k)C(-3Uvl0Nd%IRqKk3zVa8J4^^!qd2 z$G};Hc#_(A_g*{Gjd3ppADy^YFwT95d#r^glSc0OhL#(rf+NX9#r1t!p9HU72H#$a zPsDGn1bo@Kp1HO_qd{;0E|N9i(Tmx%KDCDaPuWkd^DWhf?`I9k<9vUTwSwDO?8zbT z9E%GT18RNR`%PEqJE0o0;j}Nj{0Ur`BK@`m`D65X-we@Hnb%f4a@AEix%PH;z9}X` z!EdY?&M$ekdPJTC+0etBZsg2p`TLJSmk{p0$=EHjQPRZOYp0F#&dJrdI?wh(`d)9B zubPeA9*(aC@T6pe;D|HMGxXc>na?jsT{RzCo~nHUo8CgMJlx{vwDJ8_6WH_o;3)U6 zw9WI^L1@D}8`}Gw0-v|UXX3BnytUqN&KYNluPip*QDjE2*wmC0`||crK}%2emF(B~ z9&c@$=aM(0rpb}-!EaEMCl0cQRc8(Pa%FPje&Vl2bd#&hkUM@m*ry`2ul*DGAZ?Q zvtRimhxe5G)EUWtmnS=h=LJ1}-0tTE#gBzvY-_l03qNho^Wwe0FS)0CT5s{ir#Y8l4*1mjw?Ti}H^F;5^1Pxw zE0Uq#q0dRj!w0bcJ$fH~8hV!w$dL1q{Liw_e5YNy>d(jke}6Xn##n>jU+K?9`X_xy z%TvAZmu*KI*jJoP!xv+aCwYA#9;q}_52fJs10L^^(*({}X8Ca@<>7q(_s;}XJ}%oa zLO$;CW7M*5p;7jKQ~REaQS(~~+fNs#HjC>r;MCh^`kXI+w)c&QOQ&WruRnP?h3&WZ zmAG%RUON=iL?>mlc3i&&t>5@y&97vzbUST#k2CSIb+ljS)ZT%8sn~3{ z-SuF4h2?$(nV;piqh~93@rdPC>$Bf-&*Re}wxw96!~Gz-tDkv!HM5W4M~IGQk8^i_ zgWp7hUX+VV=kH%V&V7dawC8?Bbs=z}XSP2Ue6PD9@?KXyPcMC{ebqPFVL!ZF1FZBD6yM^z9OYnrE*D1E=3gTtHK@5Z^Ex&F{s)u92uzk9f+{_}mIXSav(AEVsQ z&lmmc!S_|c>%+G_bn$ri^TYeQe!K_Ynp}TX)FY2r;kSnSiRTFZ z|H=FMd?@$n;iqweThDj-nBKf|xC`IPZ}ZW&biCdvD>6H7iH#)U!V@S9a)-(e-`7s2+rG!hVH${8KX0}ueI>oPV>e)i+kBI z&8|T;h7-NlswzQw75ZJnq?>`16?P(Fue-n5NdtFr1aT(8V z1$OysU&05{yi5dp{XA@zHN@tTU-@}OJ`>LTp8J~XINojI9nsw{*Qsroy0vJ-By4=^ zrkb@;=U~DgKf*hL zPjKkn)C<`iPri_yCmT{QP6giD15?@CF8gz8La_StAwKeV;1zsLw}%x6z`kDiylNHY zcQ-L+J?Bb`|D4}uYkXMfoBJ9k-#>tP^1hd~N^-vYMZhh4$d8Se{e!V_e{ZUMJ7S^R z(^vWR$mDyvCCfj|zu=L~?XC(ZRgWte=K^1h@6E{N2>$Pn!I$6?jQGmiL;Ju9cCc`! zIDza|#R_zG)DGb7R?M2QhRlS6ej@Rm*>_}^tDLW(3kf3L95lik2JJTRpV=1 zjjwaLwO)BVQODA)dP3Ry*lZ2*=j3|}?}4#SW;uR*Gdfhd!&+OlHWe6Nd!*l{uvlAs zCUQ061L4Ic{@X`>NVbkqZR%??-84DmBfnN%4z?#U;I4Jf`Ue4se|PNBE7Liq4MD?irzLl`kg_*S~pO92(jF;zQ%(FMknz zH!ARW-}r*Z50)1`{!(Sp<12yhAn?f^>nEq&|5ZEQ-w|-L9lI~?XI=UWq9xeg$^P+t zUT%`vK=gyiGoJ6cI6Er(!4&q}yTSL)EBG7dqd!OHssr|Z`g8}E6nXV&N0#yXmf%bN zl5pnPzvRU%4`ky>Hg7-`tBYy6ar*6?`}C zhjXwQ(wsw<;`dEG_|Vm|^YZ7P80`Ar0N-7AIgbmLeE(meU*&HGm&h*~@`+BYbq=q6 z{A;R{dHBcFlo*G-H~HaoUo z&#evLe@HU^hyRR>hhL-Up?BMJq#9H0tMq)DoSp6YCAr^X&ez`MVe!_LdH}7fV4I4s zov-IiBNKnkoMmrE6hB}MgUAH!cc7-}@JjYHMEK3cjwKhNw4$H+v+2`_M@TjwrWGlsPlILvY67~cH6-vGiF{RPhJVPr$NpuIw}s*jqUHs)#g zkBVMcFRi;r7vSL}x*(SH>zCz&5l1g@@So64$m7bf=6~Ibe;dUIl`S^etYsdP68g>a z=1uoM_|P5Lkkn4@V*EcaezeHh9|DGSfc!{78#S~R@kDa>+A|Ek8Gn;}q&J=Ws_f-;;PFcmDM&L%b^A@YnSaX5 zy@LJp-!Qmjd`_25$jALQ9_{pU1sf&Pyfyl~ZwIIkZ;dvVyI+J~Vu~fu2l>`y`t!tJ zM&x_X2cCXt#LszL6W5urgG-jg@vRuc$%MZ$0liV+T7}V`oy6kb`5gW{Yt+j+EX0Ni zvcElBn);yjMfGAYG*z3-`f0 zV;@;|4gUR54Vv&{n1|>_`apRV;oY-)phfYwfgTH@$b7CnK143$b1tdC^5^xhezY!L zADmAiI=)bJ%wFP`sCR5T@7^B8bXT?$v%UA5uWv2h`}&I5d)+YgJy!K!UXPwVtnXoG zSg7B8|M|}ouyQVmeveBstqeO)_jMLYDd)4^N6b{~_b2E@x(NE{o=-ixc=k)2^CtfJ z#@X`E{Mh~HzczIJKOfff(!_u9t{3y*-Sc?&bZ0N#UhD6LeQzvx{+8-V>1#$}sP?@o z|I9l-$v;n4Fa=)nX*pPIp_>H9q{L|Md1K-$2B9tTLK{ECIb-?Ukk(@p`26BbU?et0 zTQ5KB?c2%y9!x2}1tVVkChb_Wl1q4BxDl=_a={uW2#*)U{CSSdM-0cgVk*P;^?KjQ z&*#@dFzVW0cmFqFv>w{ei>xFL?bPn0#yE=n(sc^^zY%1Yq*U z?)ZN(cItiZO^ofFzzJiIGo9M!62gc22=V_2v=-r9=h(vUzbg!{zW6RM3|k|AeXPW3 zaS(Z*dl_&@-^FsU2*(CoM1f_s_D%CFCEt?udGI4){tn5ZE8?qidT7I0Ik@bKU{}45RPdxwT%NG*I0S96Gx?w*Hwl;VQEc z`*LyJd1pXRrYvXsphI*{9W?c*ofLgxb8Xaq*OtEXh>O49t&G{6$2I9t0Q!@Cl17%B zvWf0rJ_~Pp_TbDGi2okV4ubFAeinX}ek-CF_{QERJBmLB{3_G; zh0Ds_*E3%3zUJxW?c1DvbXU$Q+b_PkmGfN$SJA8i?5;lKDy^U9L2crLeUZ5 zg!bMDj)jq9-UiRRIh#?i8kyrxTuAL=*76iE!pE=y`=@hi)kJ4<^F*B`f)0RP4jBA5 zeaTib^xGK&@ABM|wuz2tQPZdH9M}k5i9&NqzDf=PGNbJ5$m}!Y&?0PZdjEh~`=yO0 zqjms%#M$XDX#5y<{v$8XvU%w#)?;N_X4Y@s?^()oqK7}^dMew@dK}sI&KGClKP@Q# zNvUyE+n%<{WxG;Lrg+RcttWVdyt<(&l4s8+v-RP)cVFf`VnGhu_hieOCZ(W{) z4pt<3`g6Xc_pKf{Jr6(Qy)y@*%oks`qZrtB{Aj6rR}aYd{f9Es-jQQIte9fKTw@p9 zrML8PPjOF&8T0S?{T#n{a$ocKf1S7C@&RgM07sV(7#mL@T~fMi3|N7`#PsBMy+GT- z9|NxwPI$O`t~&NhnQuGefw#4ZA2jvHQ1jYc?H>!S|`1XO}2K!*_6%j z+Q>hXKWE4T(zQc{j>hvR<|MiBKHw$25ZGb+dw+dUY)R-G?wQtB=3(6OVG|!;E;=+5 z+_ZWab`0%F^{svtZ#6XJ!{6dhY%DD*Z~h_mSJ?N>&-hoe*YQ2&mwSF^{CHL$c^sSt zkI1nN*c@BwquR6Y^I!A+XPK+UEZJGIt?X!$zs4!f*JI@eZK7N4Kg8lm4giykyO zt9!%I>&~_@g_-+RjQR8e=@PDQ-IH>dFo+EYRHR6jCQh**Ub zuux5)$Q8zUg19jX{`KGoc;7hs&}}pZcTb$%zt+t9TIfr#o&!w5x0&ioK7Gq?)Az36 zp8O)&7gSGcrS4)@ZFn%3n)0PMJ?Y1pL#2r5hpH{o)eKMSU7Jl{>blmlf z@w{8Z$*%+}ryVibjUi}igc^w<@jKeo*);OWC~wrIk4bdS0P?KlWZ6&IpU_6_QN>;n z4^yL>d&Kc|naj|jkik-;!%5ZP3nI7oVyFJpC&D{oIgv!q{bozkV&9gQQu1u51Jr`u zui{WR(c?FJgX7QVEEm%jE0^x3x=NGn+25+Emq}~gdV0h0R?VZ#hkeYmWeKzzI=T*j zfYF&U*o#7Z-*^}M7Jc*-czu;%HUFNu^ZawEyUbZlJTF_qE94s(Q`A@#&7kF9)K)V+;zrAiTs!~nOIS5G2q7W z2k7%Oa(<@$#K(I1zxuIh%W|`(v}Ap6%Qfg3*%KB_dzHEf9n_wy0$@>ZXshj=h zh<4Sco>`>!7DGe%ADzk>@5pYg(B0&Y^p(pdDj4G{<*aRA`5)5zX*9a+5%y#No3Pqc9KQ6pcyom~&r zbdHX%Le7P@mh8}8RgJ-;*rGFS7sSu642~jx{vNZi@&dE+QPy4Wv#y)sv8g*0D`;aL zX*Ury`%?w@E`Y@l@af+WD?UQ(bt`hD-bwNfG%P88Rq}1*%XC{+H-Dq1YEpdFkJ4>k zh<@OUpWWZnx|f=|Lo!}TinDEaH*u5MFZ)`_Psvf>3?JnCJmnMm|LJx+pQ@m*T=9^W zreJq4T<<+KG)rUg`fOLbmwj~FPGCSi*fjl7eF5aIl+V^I6YWW^M&=u@m@QKtt@k@m zEkj2hPrT=4W@Q}sl*|N9%(EnDRvO@a$LNnuYhfQ^-%mEI2q$j`|30%MOuSRpl<%5R z*;Wb^3loVUw+M!0snfiC$P_b^}8+w%5`pK&*H zPxxF%`;}>&UQItS`n{9)<;U%*iEq&}w6*XEd#9SQN!EuJAxq?UeO3MOtoGG5<`JbW zJsVwNlGk9Uz*q%xsIJVZm(<;V;1Z(z6IH9eTy#Qvu#30u`$^TruhP6w&jr%WU>~#Zq8c(-P8G{#U;GoV9b~p zzjJ+NOq_Li-2@hVc3jT15}pa!_kClQ`$tV10-t{Y+@CeM3y!f4&(c@3FQ@V2z+bw3 zbnVltG{2E~T;U1S9`764^t0T(#pU4RpT@pW{K&V)OgR=9Q(pCf(PKCtYs~A6IX8RW zmU#ZJ!RUL%oc+_ zk$bU!OY|S9dCB@MFExYk%}voICaHbb+Z_IJba(cEL4K_IQs3qR*vw=}Aka8@V{7pdc-g;=Jyd-7;g;g>eKU+~SlqRG z{GnpS-jp^cM@NwJH{IXOcg~hm=%c4bXKz`=m|h8lEuS9z{=Y4e3~==O?Ms#h3L9Hl zhdSgC=wWwsbU1N2&l-Fq^*Pnk`~_o@`t6&*H)HxHylA!ymb`+7ULgmxi-AxD6+zQV2pl}+$#GDad=VsHq_&o zNWXEeG0wsJII94BNJ>6=kDODlj*HIJK2y&kaJJsyoiz;aIDn;baHfSZvK{}uT5^|@ zzu@VjrQn>Gub-)lqAMOhitG{z&T!->y!XS%V(1Q%VWfx3W*3&c4o{zGO#8WTm*;D< zz+LIC{m8%fkHrR&wqcIcE5&zdV?!_)5N>t*$Y~Cl3#a?8Kn4QlmX~7}QXWA*=Y+d* ztXn5sI)&s}$+CyWMFu3lcHnpOA)5#~)2a~HLo664M(IwdeM#`r# z)>e4l6!AOl$eWT+ny&Rbi;4S`eL(i(>P~0r6`l4_<-qvIm@BJq}uPQ+&%2>}|X7 ziIKRmVJ`S{%8w1{XuuIaIiKgFw299nDSonz=L)z!DSe&#o5>FU6oj#mB)$miZkah zaN3b)2E`X%;9cb%#r!>6d{=?r^brV45A!<)9itEW&Rh z`LclrE~rYpj{Jx0vr<0VOYjlW{;aw@bfAk|em;*JxCZ_=z}p+h!w)fb@tH#49L_Rh z4&^OKwik1TgDGf4cdA`2*vxox6|z$i`rQIEO7gI2Y#6KjPP5=DV78QJsolwc|AG+z zwddRK_bpOvR{J<&X$ux4KSF;Mdnz5pfCqqa7JPy^Ettf2Nua24`Dj!7#&Y6s!DY=+ z?evsVHx_%t%UpkpTA=#fV&XN=^IteXyy@UpV6=-p7v%X6Iq8puO#4gxpIr74Yiks~ zc<=S3-xKa=4%_H6#e8@3yxNEibV+2MDP2Ps*!bu2j(U7I@TspN z6LpL;D`WaDH!H)Of1&vy7nIl2*P^d7-w&|2gRCJjQd-YmYLm-`%K1M97x3M|`hf2> zoqX3b#=iTvZ3&ZqTD81xpcFVozzbrmW){pf$#(ygF{QMFKesysUKCRU>HMJb4NLM0 zYR{V%B2P3cYxFc9c<1|&88l(^Tj2akqe*^-7{yl_!%3}SxQw<&Bd_=`7^B$yuhDk{ zeXqMex#e#1e|oP(j-t=H<@I(9vYTE5TzlCUT<;zUKjHMZXrto`$kWs!UrjCk_KnZ1 z^6)|HcnfQI51&aq_x3~KCat4HY_T~kenj)1?B{ZU){9=V3}5p!+#2eOzmek#sU@Hh6eH=rTt z{*P>-Z$~wBuq({e-a5(o%dUJorK>x=*4o$P5+;L&@vyg%Tf0BU91JwxCmTm~c<@G@ zE#F4H9b{AK8KP^FNi*jWWz9?*@Lv#4-pif}VjCBHI(b&`84ql9e>L`H;-0$t$mt^Y zs{Hk!yMH`bX7ik2v4{3`KZkXBkKY<+-2cQD$)Q^JYo{WQr1LDjnsJIp$R<`^wvk29 z7(c%O_g>}mOHXj~+hTd1PAeYt;uWU-pV-5~hs@lld0!$&>)%bg>^-jS#Xa)@y~@VB zlzh(B8BH*DK=p!xzJWQuEZ@S)WoBi9zI^N5-+zE-nV4BvV0;Tb{*>9jF9m*FMBX{? zVB46|wA(CHo6y`%!J(nqvICX8XI6e5+faTmf6VI0Jn%Zp#$m~JdNVTJ+h@l3l;xRM zVh3CF{Rn!Bd!~qZsd#8JwB-f*x%j1~0m7 zyKcMgTbI~O?fx!<$SI6vdwrL=K09+CZI<>!EJ8SfvB z`;&FZtdFG1+QRg2sFM<5KgymL;9c1j^nX70O8y9qWqlviZ9oP8G$0j*{z8zaJ@WmEv;p;trJ3QCNd}N#G2;?_D zMxS-RZ5r_41HRRI>mlD^Df6lVHuv(ob9vod!OB}pb7+!tfPO?sHX8%3D33Iy3jZ-+j`k=|5cTn+& zhsn#GO}_I>S-G>DbIghP&`-hN{s!-N(|7&-Pp@)ydf8JW$l_<8ha4{qubHvPjnR!T zUhT;OY+l40?(OEBO5w3<%P#0jRuhj*EN>Oh35Gs*&GsWlE#w@HHoYTT0Q|`T5BK+g z!-_fV+`V+ib)zh8ERX+{8tRPUDA$$CrG2AuX^h^PW-E#Lu`++PZ-3;ayAKY>jNvzC zolcThX3u6}pUc-!Cf`EZFV(-vB%}-Y9|hK|ndoyURpCs`cJ1k5+0*G$`%w4B67Pk) zT^@r*3eR-y%cHUL(9gN-pMU*tVra@l-(7!`;IQ?*aa6T%q0y z=g(QgV-hX!hh4w$>(r1vdrUg(0osrL;`Tcn?_u$6tZz{GBplO!@3)0vtIqUO-DJ@l z7k<`8j88;-iC81-LdMy{+D2FSv8mu|V6U?OR(8^+F)hWqPK-IUW9szi7yL;J8}U%! z?$rYcgA?7rM)4Nvf2j5Bm9dlEKb&;TFWnZMvISaK z2dx#|oUF02ZX1hzoU4QkLHjPg4Eys1zaTPSRPi$P#*rTCt%2q)yB_r&lH-75^jhkx zl!TN1TnkTpG%h@kW5e<4O`raRcV@k>tAMe(I-I`?xpklRrf7I%ZJ{GQ4%v6#vopM{ z6?n>rt@Rd-i~=Wg+c{C_ZYwZWTdJ$6_7HCE81&9=YBxrL9h*D3uJ`qx#^?2|aa@~z zzCB{>S--JT{I}HjXw9oi3_o{%*Hzwg^!Lj%Yx9${aN-^OZyc^|&zna#I{s^Pfy2P? z)Zs!$Fjt(YVnhY=zXE?`wFBr2`xLiY2Htowh)3sK9eEfI!mB#)N`7#~3Wfp&drhE# zT-Tzmo8KyQ@)={h)&cyH{w%#gI0dX`Nq=_nDQzb%Kn6i3Q%qM3+~h0}r*C}IkNffC z{spJX8P`F)M1fjtHfF9JV9)LxD4_Bpc}U4Lj0_`UT%8*7?=uegZe`UIJC=$tBlmtr{zx@M$i zv^_r641SRI<6K`y+vqrLom^{q7QLH15gY$b9~_i&Szfw_KlAn z_$u%8vhK!w#ED(&8$4t0x3Prm^)Tm&yK7S(_(#FT?{u*yTBAq#UdDPf>^4q)gj#p> zE4+~`lqn;(pXbIfY8~p{*jQ8d%#*7$7SY#T{KuBLzwZ7gRw@43!wa`hoh4ufds%;Y zO1D3&Isu=zH8UjBu0D&757Vz0G%0GIN2UYD`M&_h-=W4R?cBjTZX7^C*R#M;vE_Z+ zh#3IBVer$!482M5b{Zf0lBM;^-x0l1-MEJC@L>5ecTU2;JzUrQ2JAuhnfD5v(v16O z-o2p6xgdQ#>*?^IWK7-5LI(-#fJV?xFLvn6_RCutJ zd3xi@{@+#f!~Eb=)Cx2*q+s!`ufJ2DDt0VrjhyXy};nP-(u6Ye4ScM@O6zxICQR<$us-AY%eX$;NJzuSlin8|53j?R^=dz)-f0H@JksVea?D3&*kAG`FGP+;|Q;< zJTs5;FyNO}CXdm@LLUv779jn#fm2xK2y-HQ^2b; zLfuYmaLV;i4p{w-{V3_#B}{wdkb#eHWO)Zr+dOP#@cvy`nGMcrQwBp~k$^FaHs-syFxs z>u&@nkkxi&#No%#6Rv0Nm6v$Ud9FhZKu>&M2NM4`oMSM94W zul;c=z#;e=HY#hI2%NmoYVUt#`+)nBJ*M& zSX(deKES&ggT|#XsqYml(%1NX2fuYMb&9$XiaCp4=|tf(ve}NrNAU*XVcmD0S#>u$ zj&QLK{=4G4jPD${w^)8uwHc+BCv8e*5MSySpTd^y;pI$fK3Q2lMSkI#eqGr^G|qf3 zl8mah8vN^l5ArVG;8o3H#<02&eVw*3#?R8+bp3v=%eJL89J%+RX;e@fWGKh4yHO|B{LBWPc)Sl#8Ez zf#;>Ci}u9+S~NR4wMw-MdZLV5JXtzY9sGG*E^ETK=5R0v-4lE!uQ>@Fw|)IPII)*@ ze8}<9U&3?gKL|fmKXGE3WWNa27A_M1e@O5Z|L6M|t_!xxfyvzWqB&)@-dtdB1NfnH z)f*V2_EDKHcXk8kWZ{!O_B{L0JO+)s?desSbYQ75$a=^W%oV+U7CFR8-_ZEkb-Y(k zd)lY6e`LyK52eTAXFb>Hd`NOcs(}A`u8Y=)K6yB&br;PQed+{{q4R?WfVG`3Fo|>R znIigz4vGhu^tBhb=J7fYzhnm;#)V;hG7}!1vZ*kxK8cl9MH8GPiDY%fTpgL1X;dJ*NFmezX3w;)+4uj=cz4CYzG{^?I(5 z=N8*FALiGY@}~IlozOg2W-lyXLz{KH7iIiMevD0x^&&`T<`8E*r_if{@Y`B!y6bqx zkDu+xN$9NTCvEg2LomJy^()#^`5@F1 zeysz;JlxHDlOC$IQ|v$pe&FT58H3D+F5M3u5nZf9&b>9gt_J%~l>hTt!?^6wjER0` z-FaH{n6rfOOR?t;D4wym3>zi<1%Je*Q~D3Aw{nlUZ4bqYoT+I)SP;GM(2Fij&Y{H(v9-`N%mbuWsJ6f@yo!j4?Mu8gnzHFt@1fyZMa_fUv5p(L*h|WpI9{+nP&2y z0_S|bR~Py@rv$i+F*5~|DrCMX?p(W|YdwdMM??!s=H;x^I?nthZ9KDcm13q#K9+Iq z_fOh0C`xW}uhr_g+n!pb*rm#S*u;6a;Pbln^r~K6JLK}@f{$;kk$zb4i;Xs(QDYdu zub?&PC^U0pjP20fR&JR!8+*VJ;u2BCy#Nh8+g3DOH$gCN70jUznK)|WVv$wX>K^>e-n*wHPqMLc zHZ_)^*6jU#ttO#;bNUk#kcB3qL#s|;9x*_Q|H;QsQIL4=KXl%0z^yIU?8PbnD{qq#X;vVQFRw!03y2I~E=EU<){uAe%KwI=)Z?)g~1@Gz%3_af$ z7@N>FJ^vWb74uxLzqk$CN%wC@BZst(c7n(^JB++uY@jhKN6kk%;5ZjQu==p+o|NGKCXv)XTS?h!pGUEuT2v@Bv)+v7)Rs4t?Ja> zI6e`*vB1U*U5~6J`F6E`QsPx`?lX%E6KlcM*r;$Knp2cG$#3>yA`Tqu{gbI{F{SIi z7tG*d;BLq4$!&I@p5JwRYg(?!koEqX`j^@hGwJJlz|pe}efC2x%@h42{uH7!U=Sa9t$7r z-?Eiqe?aD@u3*5e5g|FN_YYOm})D{FK`sVyQt zSdzx8@JPG@u9rU zIT|~@N4sxA=oXLM?Af>QWm?-0dCJt9UGS)DQ;M=awA&TK=lb{T=s){@x((t+4}E_) zR~48I%VFGm@f`OwF8J6PyMHO~c;m<(F@~joXAGh*f4lGLL>cSo<&r6n%*GZr1n@JM z{qU4>Fa7BH>+WS^2W;cVsCLOE_3k`*v}GPAU8VskDwP&2QZ9} zv57b{&1;BSYN`t;8B))U%r8s96Q21s^-1n)8tA0|M=!zNELknEl$@_gUAxCAo(8)+ zv@|8#FLV>zi1R1bQna9qSe8Y-7dX{x$C~=iX=`oR44v+-!P50@;&zCNa`x5i|5b$ zk5)R`lV|>?u6DL&{tsU5d?)jN>LbqP^nV}l(Hez<=cA{kZLeH2!O6B}bt|$Zakqnu z3!zQK8OxM5ItKVPQ*#}J?rMLX;9GdLn)s@b{l=IpYuXcI zo$=FjA6Y3LBAGb93!lKIl+NBtk6HZ3>)X?N40X=^j8$_JJyUG zFTq4}{S|!)uZZi|M8D91{H|XxPRW1517h)2W5=~MvA=g^$7S6? zxojVO(A(ckLO;d!(Fg78WPE~wr)%jQ$^9?WW|U`wug2LpF(KNe3bBi?&AE6ob%;#}C`wkqx`G_t^J=?da?H5`5eJ zoOh))GtPsz*>#5xp_SD54t(@a6; zx_bE53vVg_4*Agarij@uI1raKbkXkb1!bn z03YqAf(g}wZ}Z;Y-BTGbh^c+;JzyZ1$LM31opXLyl5gSvM*8yThwn0EZQvIIek~dA zY8}Nhf|CR2HST%X?)s&3=E>J8gnkqPH{p}?70qj;eNJ}dw~(2HSGs>cxMgWLbWL;r zH2*i^KRDtqI0pZ%jlH>a?p)RdzvWEXM1*&;N$5K?fioGP+3q-YCVGG&bkg$LFk=i; zOP@Zl^A6j$8`AGe2Hcg7OH(bMw{OY99z{+m_@=W}t&Qh{_FQJS)&zDx$!S~t_(`hC zBS&^nU#y8_k`4Yxlv7{W_z?0)g#7YvuBab~1dS8(``g<2-3?9t5#!NZq0hFS&*Rvq z^{)J@nKEWCv0ClF8rp=NsCygu-CsuRFSJ;)W)wQYUY@DGM2JufEddXSSUOFLZX% zj&$_Z>1U;PuHC3^NYR zM{$dbX-9Th#dF)fmrb=b#X9L9zFKtB%G6rZYIKZwXVtRxXi_8|a6DV2)wSY&=KdHxHJyc$=o&%?!sbe;8b#VOfXePAqHP}|TyClWT!hKpSp6`Eu5LGtMl z7*K@#|ICTi>SZD388PH_OK9XZ~UH)b973n4NQH-o@B^dc7 zckG+)D9>p4{{&};2cuTiQy*pNw#M=HExFci;76}Nx%51HwyWjKbBwG110%&Fj3;yIL;AH^5warLS?O&div*mxJK`6BQYF|A&whU|nMD z`PIB5zUS6;nAFvS>?WK={+XrwFVUa=$Dvc-&1@rDYU|s)ean1cF1)=Cm|qXxj?5pC zeHnWy^j$uNXKUF9&;^qLpJ82Z*w-$&il!jf+x{g-UZ0+yOBdBHwJ&K`&&i)Z$XKI- z4ej>=Kks}4SH^YQ{w;IWf6@9(`}A;|ZVreKdDDMUdau4zYHe6g;9C*Di$iC8;BQK_ zsG!W*&UH`DIn1^8(#h0FIo~;4SY~CRR%mCMht9U|e5lOXrnW3!o#0;kWSR4wGuI}& z*B&f${*7yO=qvCn#eb6fUgorOO?-&|_%Mm(qV|F}mw&z06vUvdiaF+;+7{MO^z~nO zrybcyv48Gd$?=80HX)N)-plXy(u=68UT|z1?~T+8qO{3gMc%ADoGA}W4x7bZi9Z!d z2GKcbb04tS*R=I=r+xPf+ul*y3j*)>Q+}Jfm??9s-7s@gyNc-%ef8EtF=yCE*oVHv zF4~8l&-B_yS1xa=pW(FAkH%aIjWE!zajQ)G5&98)M)GLU4$C9REfkNSzcVslD&WTT zh(3klIgT&a4CL1_llMn?sZ-=Y~NtdsQv(YXO4w0aR$f0N%UyN z82Y-9p~2PgAbW4qYH)TWyuCH@_Kt9zcuwpyuI)MVdC6mEjT77i&o_DfYfp?EuVl6m z&*9(QJ3LP}#$2{i$us%f*ZO>hIY)sVv3NGmVk7O?acj zA0*#IG5f@1o;7zp-@X-%G+TY-l)&*WR_!i?u#!K{;8RrH1uwxk^bFsH-=P(wx@8Noni@bi35wYuT zSWh2b4Hn^=+Vacah235-iLn;np?2*$;?z%5llOFM3w3eVUG?e=&U8nH`>q+7{k@=> z_}UDUJVIRRW5@)b!QS=V<6nAMw&(`NOgvMMKQJ&SpX;g}(e&n*9yVMDwmo+2)MCzr zV=rywGWKQ6T{aczvJI(=+Y~nn|4aVZt^+zF`&si-yz|YBf!K}mI;a1zmEJlqL#76nM+;x^ii9z z?_d0hzE-!EvHTrqFBGyE@)w)tMaVhI9c&k0NrS;KzG^J*?$yT6x z(Qn^!?fYv+|Nji@AN?<|{=(mZwPLDVI)$vkytVfvYiNFJkaw-D0Zne#Z>~w#bEH4; zJCpz1eMTpvW}DsTK6jt9hpo)bnk9M9(i&);M{B;pwZBJagd<_bt-d7tdhy)&rLBBh zjbF*7iT_C~Kk*Wrg{QgH@-5yqCk*Exhk~)qA>so=6H+e+q1(#+ z`2+F`^<)Vn{)+srY@U}7(8fxL|DP8-@Wuq>W@=x#aHQrA&xpsIi;hELg8 zV)FSklk2yOd1H@SgH2@(aA@@EZSt<2zkOHlja4qqlsv)iD7>aVi@NB+TxY2Xc=j~w zyO~En9l*1NcIQzyr-R&^D8D1@Iq5Y)+7%x?t6k2$HdlP<;2HXjEtRv5EKffTtSya( z{|Hu!^Q|V1L2$e#RyB<{*=Y@9r!K;0QxV2T6Qb6_I@v$3GZi7)?G0p=_g%`FrSR8> zfRp71@H(~W)pge%T)O}L^>!?shNpXHF3ASkQ$NO0oT2buG~4Qu?0?y8kkvL6V2jO1 z2b4}6P1`Z+1Y_o{eIwhFhL^-+5OSk3b6my)l9Ln-v(D0WRdUU=rn@y=kp zir+h9hYg%v%U^ZfWw+EgqglCm#8G1-C?mg5QOI(}|l)nRv(sBRg#Qm4Q zH=Y;@_((4?AYu76(sdn2<}_LP7@Yehb<#BVdu|U*TfI1In(Aoyzz+j{++A*x+FvnX zP)d$(hre`1oZp(`3*#(psFBY<1bzrFEX2KD|thsY~IkN;_n(Sx&d%fpUqn#Ab^;c(Hi;s1_!ZqcJ9OZq< zhO)Qf`>R>!4~+f~_LcON6fr&T0GFGk)1!m-04t4YWDZjt+rSI^(DQSO^T?^SF{Qmj z9W}_sMX}LSxJKW7)$oq5#zDay|pm~)c$CKDHRKJ^4=;QQS}JWCz%&(RCWR}EGl z^iPnD#eZxa@cY$Y7z4FGWuI@w&J~~@Mp@aO%?-J!mwot*cjtw7{7kuGg`AT}taH8b zkN)Y3x*eL6=Jo__-Nl?z_yqooHeMM+ovcB{ce?Y2pOHTotNFa185o+mhiBYaCDp>M z2DjXL6C-7>)8nTOyvjQDai-8o@le*`XajK-=z#siX@ty&@JD2Kz1!ff{pnGWft|?n z-rkp9VX*O-eOFjpdkOv9eFZM%gHv}x+eAD2fPwH*&w9G3>7C}}GfwF_mxGga8FW+l zCY$*6tXB_hcs6D5E-9Q-?dca7Z;J7Th4<9E&GbiU|9X5#GCXrE4>O(!<6?b18hBs~ zdprvo*hODs)u1pOBmGC*t1SaJ zN7gI1doSR(_GV9ikS>!?8%+`D-qP%J>`e}NS=n8ih}C|VSQ^!ev-=U5O8fDh8gRCp z+?Zmc{1zu#Zgl>0BAy$o*_lUv|L&=C6uVLC8i?EoZ@~*5n0)rhM0p`hCG7#!Flx z;~j0*RG>?S0^v34XAyW~uHxB%SrZlhlyT-Bzr~YVI3MG_t4w>mkpCKcAh@DVwxny( zr6TEZUkhK)xi(?vFx?EUv#{~+MaJA9Ss^+bKN|Z6dv5nnw~}86%~ikE#a3REo&UJ( zahZBoj6OIVW0L{*O2EBclJTy_USEy96Ij^3uEstB>;lM9LGU|@E-V@sJUKM$D9_2x zCb?Gem#>zZ{YQDv>)Yy^u}hq-*cwHH-lY}|^Tmef+P+UN)%lR<3xQ!zI9|%W z30c{}=j|ISJ5;kK&F~6fXyparzs4nhqlcT)nXH_IeM-8M>{RU*H%Eb+KGlXQx44KN zC0x7{Shi5R$CycbL*Qb>80r+7#3^!lTY$f=wM3BTK4wn*kvbop(A-jBw$%7m*73g- z*&;Od{)6nR!KEKFE1xHJOZ@CXzO}wttZm6vW|fcs{jxD|=CyEy8Yd4g4F-?RCttkY z#*sF{)F!Y?Z3!ePzsM#%7rpI=r8~^Ibjq+=s@|ijD zJa-?&Xiv7m1h^fv7GPtikWj$D^|~~Qamj(^DgjJ@uD4h=0ueHi&$Ivqclc4 zrxEg7jOX_-C&5-Y{=dm_!+A;e9Ep9IbYJ6qRy2)u??q;bj&|co&ebQlQ2Ral^zcmf z-%NdTnE&of2jR^sE(e^1}i`&Ooh z-)ZjlH#A#*QFrgE7Nt9fqrlqAcC3NyhIUSA`5s$~rPJbBVQkUfc>=*a*!uQ8DJM`U&3W8w@A zWEt8O&dOe^`Frw)^8GGfj6Rv(yMlpFIPqS<#xSEBRv37Qt{Z9*>@L|*W0vLRiB}*q zG%~;1-6h|u(eEI?Lz7GL3~}3)$3?H*oN(!JVemveD$cj;G8VS%P4Na3UwV%*lWiZm zj^Ek!X+#Tc+^?t4z3&}p6gt<#8e3Krez4t*@w<3={f<^X4JP}BZ2Nt2xn#;c$e7^? zW+66+@&@b*(XnQX-i;tfE)AO#RpeWsuiN-+D^H!VxgfJc*Jm)^0zT1Flg?xFceU`_ z4}ZLT2K-U6ZqTYGV$s|2u}7(8(85RiOLI7vPObg*F7WX1i}Nt|g&6B;@aoI#=~t0Q zly3^ZOJ=o)6R#8*YQj--s$D+DK=~_0)SX@cP1|BB`a4X8pR-MT;ElyK_-Q5`3bTI> z{{opQBWFtU7hHuS!tD@n+>LA)0ru2xN%-Q(z3cr6@w`wpmwX#|(t`nVGh%tdBj0?J zjLf^(spGuHq7S-$2WlLkZ@OpqxHf$E?B|ojnTWq>Y?=Ed)cf_kp&{l4efFiY_nTnW z{?LaQJMj+M2Vuk6MZ^L0R);I{k+F;^sp&;mrkxGq6QSUEhYCaOdM2N>;LO)!TOVc* zm5Bxxbghb-cE()*4J}7@nr-NRq^^?!cfSs7&a{~t?|g_h#eZ%_cH8JT6*E{X;qoHn zvl+m=k^;zQY&G0ulwPcBm|E#t+IF)F`JtrEuds~0!c%!1cv^0Y$f4MU@5$Kd;F zBX%XUkuk;nlIivX*W}@@cIzl`Y>_QD`-Cee%B#$ z2ZO=3qv#Nlh3b(fmLX4c0wdwWR%jkDJ4`o@|h z*XV0j1Q^QR6z07M{rQnM1T*y!f>v3%hy5Xa_|^8aWght;B=hX453jiv+#p{liBDwB zYfX}WT%XA!)R!FE)_T<|MZ^nmw%{Y*tV&3p@d01Sg-0vRnxoBTjr8bOin0>FMn_=Z zP)FL7OCEaVD6&w4Cr{^hjlwT4+1u`~%fn~O^33hY|FY-KS$Sb#fhTLb=MA1*I{zF# zd$-07IUKhB$KzL44fc??=GufLCkMLRGynYMst3{u{!q2_!1^&REMn+Yvi}6JbNs!t z{Iu6PuzmJ1K36Zu@A^FRtSd)0#qJj&R!DnH`m1Qkyb{x%BIds&K#kNNvnQcP{`_^t z(FgEySu5Swaex@JZNG`>KK5RRo;O^qO z<-xhabJ^A|A8p#}Y1=^etCvT2>{=0phm@^IF~&OR!A}dr3Git8vTynlbv4LK@UIg1 zS0^}u&dRv`mUoMG7{z7sjOfQ`<`uosB!5jz0&Uj_Uro>~yr{s;JoV*Rde+jJJ+A-9`i9YC()#wkvvilO#KSUKR7xm_E*Ug2Y~VxcDODq5f=z*6BQKEjoF zBF4$Wx}AL?na(|Tf%8_l9)oUqc3|-%Z_av7az;7*+VNnkdIMVVN92Lt!04_9bgeh} zud$3_oMY)Xhq2}YkMZPcA2DNWO@`-WNAZbX23AH{FLS~;K_9aCs48oN>kZ^~X^bi0 z<9m=ZsHn^E%bUWR1;(-KGI#GI z-_%yomt^5EefaczW49jy3+Qo?M?7^H_p=XeR4)KZC%v9kj?Uo zqY{6W3?|;6wspzQW#Bckahb8PnkQFa|JZ8wcf$*YPJcA9Bv3@nAM%jy_a!>=(D&C} zxFb9&^>PdwQWRTPtk__pisi+onu_T9a3Y+wGvV2*be_gK@Pf7Kmc7bA17>5Fk7n4r z3ZT(5t-XtyN7VJ53!h(uZK{-7$-6SaO>Ubhh!Z1! z56=g%WvO0rJ!8_o`ygv6J;kJLT2X9T`aOVNW&$n_wLqKC*p$d^vT(?-DTTqqDDo$? zt=y1Xg52rUjk`7x0$z34xja7>HTT=rXIF+P3n4(xPRLYYurE5 z)&;Kp7{%vS$A+VJU?|W~kRy1)nYg_LxpjJx$Ug@zh&c4_~+@KrdT+p?V-@vU#F=cuW ze5lo494H(1E!jBC>a+bznR-fwZn8a7H@Sy-hrw6*OJ*TQ2u|>0^Y zG2&gDn7??=r-?C+BGb$Q{RbtG_$=I%!(AV}AK{txPfvGVW&K4@1m{kCpRor%AUoFf$ow(R&V{C3|3~s^t&Q{@`Z?Z2 zt+ZEYUZMJhtjX^r6PXj(YBuY6-lJrOyVj+|Nc3yZ z+yn2(-MzVVf_uh`bj9EVlRVRYe3aw;4(uD2bsFN?$n$}=PXH@VR`JHA`6`#w%i|Oc z5uH&!r{W)NPAB#t{1E%aw>!z_WIr5;JuH7xc=oy*iKhS;;(S6sxWqBvx`dbpB%=u} zn_CvUv8K9bQkOu_U3)dP@3C=D>KX-XRExD0on3z7FXPj(cy;I!X9;*En~C}{zWK9v zMP}@cM`pB1AGFW>;ZkQI&ooh6)IJlqX?Dx#8^u?gc>~P{WAK{w&~o!<<(dYG8Hv@r z+Uj$@+d6gND6+_C{HNb-y=_44wlW8`t+8kvw*7+3oQib&Lw@WDj3ed$)+KvXIvx6pH(~GSw#Tt)Bp3_&?fe6%{K7P&0EbcKZU){%U#XPTXpxzaJ>WR#pb4YoEL;`b}Y3~ zi0vsU0Jk}}<<2k6tFXE9#Z}1&_QlAp;fLP|Oj^*B6Mp!vtE-aOecBXbdF?H3zL3tL zJ3Jcusux2+E{#W9Gi#q2Y;->C5-r$Z>VA*DMQmOuJiF~1pEB(+;(UCxt9#bS)eWR6i|(>OK0TNrB}JijD8wlMmuc%F~?JCaLvP8PD~pm^jzKqI8@2@i;w zwRGBdQA?e!~y#y$ejTRL@+*^&Hmg zBHtL{j}r7_Czg^O;PL=jHe>X9$L+~{Ll~45Ci=)(etNA7iS?e z6Y~tM_wj7svPV`K+K)Y8rirga->h0=B-2IwYod%-_oA2hlGKB8fBz%D8Lwfy_TF?~ z(xb~7Q{bgEElk&4+y-8mL)dr6_!1LGagMs^`k1Oj^kw|HtgrOOFgTalM)ZKSdA6Ni z;>vrTPu0_j#VT>V?ecv`A2y83jiVEe48toOTR)e$vmE3j z{LFvRH}vogeM6s)>ANO8_(y$1S6|on66zf4I}&gt$o#i)Hy1mMk+X=R*V5$IQfz2YoBqd$k?CzLh?{b+)d?t2$Jw zuW_Qz6etFzrk>sYufU4>kKSA|bF4gG;>LTW^*;E$j`bcv6q z9>g~nuvNobd*1IfsNmfAkDZ^gh9W5!L7fgiHJ$e+m= zk$vA^!_K1#+F!ys(FCt9aW?ZSApS}+(x>P@2%f7}UM+Kz|A*`7Y^q;9oMYtX9He7V zncF?gjdjBoGB9Ty;}-3V0!yvspKP3DLDzA2-{`4tzw0QLa0@in<8&{fg*d zR^jy3{eGwEl7JIkb-|9D^I327j1Kf9YCqM=KA%Z1%vInoe#|R)Uv+loGN0(xe}7N5 zv}~%WTW6Azk)H>)(X?$*avr>AE_4RjnffAXhv$a(?C@FVl5xI`uHMVLarBSyRPxv@ zjD~adC6}5}u>(1bEBbqC-(=7TtzXCJ)JI#2$ql$G{FrYt_>FzBBsccasjJOn!T5Y= z7jy}kJQ&Yivuo0}8cPdKyMF#=XkO~b*Yl#~&^GpLDLz0S@g$YVP@&1P)3y}XLm%s) zn*sP+1GpbCQ>K@Sp8Mq!3lCPOCJqF!H+rCoOqS%Dl|l6PN1->Y#Y~<%-kx`bb2Dow zo_)9$nksx|ZKCw)wL5FFDUiIe3wh&CHRzT-JTb8RKYB|zpG4qVp49hrC+Lnx?^ZlZWe_D|m z9GX*iWmQsbi$8`~_wlT++Sh(Dw@%0t572(Pls&Xt{f)pi?FXF&toYpy=9S?~+hFZx zX`k8Bd%};UDsyk#RXO>_PR60UhW^0q-#LvhWf%D+kq_awArGON{Er5{k0M`*@87mM z{Mh|>jeD%W8aZ}U?4u>-j_(M*l^0CDu`iHSJ~Srw(Fy42f>E4x&|KJ)$!6#RdCEGo zYr|3eE3(yi@xQD~?b2t5HkAd<#G}ZZ&FIo&(N%+dE)JWCuX1fC*M2~}W`dn_-DiCpkPRCSGd5%c+2Yun_^$H1uoY74G;l1kp>?z5THv%dW?Va73|#7j zR!GLxdy3-;f;@Yd!{e)LCf4A1Rhx_LV2idFMfAMiEqt?3bTl$Q> z{5onxMS)@Pm(WP~mZwMR`Lkpho=wX_8$zq6I~D2o%r9IyA@e

#f6eKlGkxr?r7) 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

I4x(c8o&CwpZVyw2J)!k%<)7v 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

~np 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≈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 VLrdzAzAAl>=;Qwl|Gyl8{{<++cCY{d literal 0 HcmV?d00001 diff --git a/assets/ipxe/snponly.efi b/assets/ipxe/snponly.efi new file mode 100644 index 0000000000000000000000000000000000000000..51e1cc5458c7905aef35a1507033bfbcf0397908 GIT binary patch literal 287744 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

j4tLw54vO5ki57+7TjUntfi@b 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 M|LV{6QYqKeJ*n|v8UO$Q literal 0 HcmV?d00001 diff --git a/assets/ipxe/wimboot b/assets/ipxe/wimboot new file mode 100644 index 0000000000000000000000000000000000000000..3a5cb4a338bb4e13fd94cab6dcb89f38f21001eb GIT binary patch literal 66560 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 z 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 Q8|}WivgG+)T8(A=KU>xdF8}}l literal 0 HcmV?d00001 diff --git a/crates/core/Cargo.toml b/crates/core/Cargo.toml new file mode 100644 index 0000000..d63f52d --- /dev/null +++ b/crates/core/Cargo.toml @@ -0,0 +1,26 @@ +[package] +name = "pxeforge-core" +version.workspace = true +edition.workspace = true +license.workspace = true +authors.workspace = true +description = "Shared types, config, and arch detection for PXEForge" + +[lints] +workspace = true + +[dependencies] +serde.workspace = true +serde_json.workspace = true +toml.workspace = true +thiserror.workspace = true +anyhow.workspace = true +tracing.workspace = true +tracing-subscriber.workspace = true +time.workspace = true +uuid.workspace = true +parking_lot.workspace = true +tokio = { workspace = true, features = ["sync", "rt", "macros", "time"] } + +[dev-dependencies] +tempfile = "3.12" diff --git a/crates/core/src/arch.rs b/crates/core/src/arch.rs new file mode 100644 index 0000000..2779741 --- /dev/null +++ b/crates/core/src/arch.rs @@ -0,0 +1,151 @@ +//! Client architecture detection from DHCP options. +//! +//! Primary source is DHCP option 93 (Client System Architecture, RFC 4578/5970). +//! Some firmwares report `0x0009` ("EFI BC") instead of `0x0007` — aliased here. +//! Secondary: option 60 vendor-class with `HTTPClient` signals native UEFI HTTP +//! boot, in which case we can skip TFTP and return an http:// URL directly. + +use serde::{Deserialize, Serialize}; + +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)] +pub enum ClientArch { + /// Legacy x86 BIOS PXE (option 93 = 0x0000). + LegacyX86, + /// IA32 UEFI (option 93 = 0x0006). + Ia32Uefi, + /// x86_64 UEFI (option 93 = 0x0007 or 0x0009). + X64Uefi, + /// ARM32 UEFI (option 93 = 0x000A). + Arm32Uefi, + /// ARM64 UEFI (option 93 = 0x000B). + Arm64Uefi, + /// Unknown / unsupported architecture; caller should log and skip. + Unknown(u16), +} + +impl ClientArch { + #[must_use] + pub fn from_option_93(value: u16) -> Self { + match value { + 0x0000 => Self::LegacyX86, + 0x0006 => Self::Ia32Uefi, + 0x0007 | 0x0009 => Self::X64Uefi, + 0x000A => Self::Arm32Uefi, + 0x000B => Self::Arm64Uefi, + other => Self::Unknown(other), + } + } + + /// Default iPXE binary filename to return via TFTP for this architecture. + /// Uses `snponly` variants which reuse the firmware's UNDI/SNP network + /// stack — smaller binaries and broader hardware compatibility than the + /// all-drivers-included `ipxe.efi`. + #[must_use] + pub fn ipxe_bootfile(self) -> Option<&'static str> { + Some(match self { + Self::LegacyX86 => "undionly.kpxe", + Self::Ia32Uefi => "snponly-i386.efi", + Self::X64Uefi => "snponly.efi", + // ARM32 UEFI: upstream boot.ipxe.org does not publish a prebuilt + // snponly variant for this arch. We return None so the DHCP + // proxy declines rather than advertising a file we can't serve. + Self::Arm32Uefi => return None, + Self::Arm64Uefi => "snponly-arm64.efi", + Self::Unknown(_) => return None, + }) + } + + #[must_use] + pub fn as_str(self) -> &'static str { + match self { + Self::LegacyX86 => "bios", + Self::Ia32Uefi => "uefi-ia32", + Self::X64Uefi => "uefi-x64", + Self::Arm32Uefi => "uefi-arm32", + Self::Arm64Uefi => "uefi-arm64", + Self::Unknown(_) => "unknown", + } + } +} + +/// Which firmware class issued the DHCP request. Used to decide the reply +/// path — PXEClient gets TFTP/iPXE chainload, HTTPClient gets an HTTP URL, +/// iPXE itself gets the boot script URL. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum FirmwareClass { + /// Firmware PXE ROM (option 60 = "PXEClient"). + PxeClient, + /// UEFI HTTP boot (option 60 = "HTTPClient"). + HttpClient, + /// iPXE (option 77 user-class = "iPXE"). + IpxeUserClass, + /// No recognised signature — likely not a PXE client at all. + Other, +} + +impl FirmwareClass { + /// Classify a DHCP request. `vendor_class_60` is option 60 (vendor class + /// identifier); `user_class_77` is option 77 (user class). Check user-class + /// first because iPXE-that-we-chainloaded will set option 60 to PXEClient + /// *and* option 77 to iPXE, and the iPXE classification wins. + #[must_use] + pub fn classify(vendor_class_60: Option<&[u8]>, user_class_77: Option<&[u8]>) -> Self { + if let Some(uc) = user_class_77 { + if uc.windows(b"iPXE".len()).any(|w| w == b"iPXE") { + return Self::IpxeUserClass; + } + } + match vendor_class_60 { + Some(v) if v.starts_with(b"PXEClient") => Self::PxeClient, + Some(v) if v.starts_with(b"HTTPClient") => Self::HttpClient, + _ => Self::Other, + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn arch_aliases_0x0009_to_x64() { + assert_eq!(ClientArch::from_option_93(0x0007), ClientArch::X64Uefi); + assert_eq!(ClientArch::from_option_93(0x0009), ClientArch::X64Uefi); + } + + #[test] + fn legacy_and_arm() { + assert_eq!(ClientArch::from_option_93(0x0000), ClientArch::LegacyX86); + assert_eq!(ClientArch::from_option_93(0x000B), ClientArch::Arm64Uefi); + assert!(matches!( + ClientArch::from_option_93(0x1234), + ClientArch::Unknown(0x1234) + )); + } + + #[test] + fn bootfile_names_stable() { + assert_eq!(ClientArch::LegacyX86.ipxe_bootfile(), Some("undionly.kpxe")); + assert_eq!(ClientArch::X64Uefi.ipxe_bootfile(), Some("snponly.efi")); + assert_eq!(ClientArch::Arm64Uefi.ipxe_bootfile(), Some("snponly-arm64.efi")); + assert_eq!(ClientArch::Unknown(0xFFFF).ipxe_bootfile(), None); + } + + #[test] + fn firmware_class_detects_ipxe_over_pxeclient() { + let c = FirmwareClass::classify(Some(b"PXEClient:Arch:00007"), Some(b"iPXE")); + assert_eq!(c, FirmwareClass::IpxeUserClass); + } + + #[test] + fn firmware_class_http() { + let c = FirmwareClass::classify(Some(b"HTTPClient:Arch:00016"), None); + assert_eq!(c, FirmwareClass::HttpClient); + } + + #[test] + fn firmware_class_plain_pxe() { + let c = FirmwareClass::classify(Some(b"PXEClient"), None); + assert_eq!(c, FirmwareClass::PxeClient); + } +} diff --git a/crates/core/src/client.rs b/crates/core/src/client.rs new file mode 100644 index 0000000..b9fcd55 --- /dev/null +++ b/crates/core/src/client.rs @@ -0,0 +1,100 @@ +//! In-memory client state registry — the "who has contacted us" table the +//! web UI displays. Not persisted: PXE sessions are ephemeral by nature. + +use crate::arch::ClientArch; +use parking_lot::RwLock; +use serde::{Deserialize, Serialize}; +use std::collections::HashMap; +use std::net::IpAddr; +use std::sync::Arc; +use time::OffsetDateTime; + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub enum ClientEvent { + DhcpDiscover, + DhcpRequest, + PxeBootServerRequest, + TftpRead { file: String }, + HttpScriptFetch { target: String }, + HttpIsoAsset { file: String }, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct ClientSnapshot { + pub mac: String, + pub last_ip: Option, + pub arch: Option, + pub hostname: Option, + #[serde(with = "time::serde::rfc3339")] + pub first_seen: OffsetDateTime, + #[serde(with = "time::serde::rfc3339")] + pub last_seen: OffsetDateTime, + // Events are left with default serialization (9-tuple) — they're + // diagnostic only and not consumed by the UI today. + pub events: Vec<(OffsetDateTime, ClientEvent)>, + /// The boot target (ISO id) last selected via the iPXE menu, if any. + pub selected_target: Option, +} + +#[derive(Debug, Default)] +pub struct ClientRegistry { + inner: RwLock>, +} + +impl ClientRegistry { + #[must_use] + pub fn new() -> Arc { + Arc::new(Self::default()) + } + + pub fn record( + &self, + mac: &str, + ip: Option, + arch: Option, + event: ClientEvent, + ) { + let mut guard = self.inner.write(); + let now = OffsetDateTime::now_utc(); + let entry = guard.entry(mac.to_string()).or_insert_with(|| ClientSnapshot { + mac: mac.to_string(), + last_ip: ip, + arch, + hostname: None, + first_seen: now, + last_seen: now, + events: Vec::new(), + selected_target: None, + }); + entry.last_seen = now; + if ip.is_some() { entry.last_ip = ip; } + if arch.is_some() { entry.arch = arch; } + entry.events.push((now, event)); + // Cap event history per client to keep memory bounded. + const MAX_EVENTS: usize = 64; + if entry.events.len() > MAX_EVENTS { + let drop_n = entry.events.len() - MAX_EVENTS; + entry.events.drain(..drop_n); + } + } + + pub fn set_selected_target(&self, mac: &str, target: Option) { + let mut guard = self.inner.write(); + if let Some(c) = guard.get_mut(mac) { + c.selected_target = target; + } + } + + #[must_use] + pub fn list(&self) -> Vec { + let guard = self.inner.read(); + let mut v: Vec<_> = guard.values().cloned().collect(); + v.sort_by(|a, b| b.last_seen.cmp(&a.last_seen)); + v + } + + #[must_use] + pub fn get(&self, mac: &str) -> Option { + self.inner.read().get(mac).cloned() + } +} diff --git a/crates/core/src/config.rs b/crates/core/src/config.rs new file mode 100644 index 0000000..7d9c420 --- /dev/null +++ b/crates/core/src/config.rs @@ -0,0 +1,168 @@ +use serde::{Deserialize, Serialize}; +use std::net::{IpAddr, Ipv4Addr}; +use std::path::{Path, PathBuf}; + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(default)] +pub struct Config { + pub server: ServerConfig, + pub network: NetworkConfig, + pub paths: Paths, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(default)] +pub struct ServerConfig { + /// Address the web/API server binds to. + pub http_bind: IpAddr, + /// Port for the web/API + ISO/iPXE HTTP server (single port, multiplexed by path). + pub http_port: u16, + /// Address the TFTP server binds to. + pub tftp_bind: IpAddr, + /// Port for TFTP (RFC 1350 default is 69). + pub tftp_port: u16, + /// External hostname/IP clients should use to reach this server. If + /// `None`, auto-detect from the interface that received the DHCP request + /// (via IP_PKTINFO). This is what ends up in DHCP option 54 / siaddr, + /// option 66 (TFTP server), and the base of generated iPXE URLs. + pub public_ip: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(default)] +pub struct NetworkConfig { + pub dhcp_mode: DhcpMode, + /// Address the DHCP proxy/server binds to. For proxy mode, usually 0.0.0.0. + pub dhcp_bind: IpAddr, + /// UDP port for DHCP server-side receive. Standard is 67. + pub dhcp_port: u16, + /// UDP port for PXE Boot Server discovery. Standard is 4011. + pub pxe_port: u16, + /// Optional allowlist of client MAC prefixes (OUI). Empty = serve everyone. + pub mac_allowlist: Vec, + /// Optional allowlist of subnets (CIDR). Empty = serve everyone. + pub subnet_allowlist: Vec, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)] +#[serde(rename_all = "lowercase")] +pub enum DhcpMode { + /// Run as DHCP proxy (RFC 4578): reply with boot info only, don't lease + /// IPs. Coexists with an existing DHCP server on the network. Default + /// because it's the only mode that works in most real deployments without + /// taking over address assignment. + #[default] + Proxy, + /// Disabled — rely on an external DHCP server that has been manually + /// configured with `next-server` / `filename`. PXEForge only serves TFTP + /// + HTTP in this mode. Useful for home routers that can be pre-set. + Disabled, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(default)] +pub struct Paths { + /// Directory holding uploaded ISO files. + pub iso_dir: PathBuf, + /// Directory for extracted kernel/initrd and other per-ISO derived assets. + pub work_dir: PathBuf, + /// Directory containing bundled iPXE binaries (undionly.kpxe, snponly.efi, ...). + pub ipxe_dir: PathBuf, + /// Path to the wimboot binary for Windows ISOs (optional — feature-gated). + pub wimboot_path: Option, + /// Directory under which Windows ISOs are extracted and served via SMB. + /// Only used when `settings.windows_enabled = true`. Defaults to + /// `/var/lib/pxeforge/smb` in the container image. + pub smb_dir: PathBuf, +} + +impl Default for ServerConfig { + fn default() -> Self { + Self { + http_bind: IpAddr::V4(Ipv4Addr::UNSPECIFIED), + http_port: 80, + tftp_bind: IpAddr::V4(Ipv4Addr::UNSPECIFIED), + tftp_port: 69, + public_ip: None, + } + } +} + +impl Default for NetworkConfig { + fn default() -> Self { + Self { + dhcp_mode: DhcpMode::Proxy, + dhcp_bind: IpAddr::V4(Ipv4Addr::UNSPECIFIED), + dhcp_port: 67, + pxe_port: 4011, + mac_allowlist: Vec::new(), + subnet_allowlist: Vec::new(), + } + } +} + +impl Default for Paths { + fn default() -> Self { + Self { + iso_dir: PathBuf::from("/var/lib/pxeforge/isos"), + work_dir: PathBuf::from("/var/lib/pxeforge/work"), + ipxe_dir: PathBuf::from("/usr/share/pxeforge/ipxe"), + wimboot_path: None, + smb_dir: PathBuf::from("/var/lib/pxeforge/smb"), + } + } +} + +impl Default for Config { + fn default() -> Self { + Self { + server: ServerConfig::default(), + network: NetworkConfig::default(), + paths: Paths::default(), + } + } +} + +impl Config { + pub fn from_toml_file(path: &Path) -> crate::Result { + let text = std::fs::read_to_string(path)?; + toml::from_str(&text).map_err(|e| crate::Error::Config(e.to_string())) + } + + /// Apply environment variable overrides. Env var names follow the pattern + /// `PXEFORGE_

_`, uppercase. Unknown vars are ignored. + /// Call this after loading the TOML file so env takes precedence. + pub fn apply_env(&mut self) { + if let Ok(v) = std::env::var("PXEFORGE_HTTP_PORT") { + if let Ok(p) = v.parse() { self.server.http_port = p; } + } + if let Ok(v) = std::env::var("PXEFORGE_TFTP_PORT") { + if let Ok(p) = v.parse() { self.server.tftp_port = p; } + } + if let Ok(v) = std::env::var("PXEFORGE_DHCP_PORT") { + if let Ok(p) = v.parse() { self.network.dhcp_port = p; } + } + if let Ok(v) = std::env::var("PXEFORGE_PUBLIC_IP") { + if let Ok(ip) = v.parse() { self.server.public_ip = Some(ip); } + } + if let Ok(v) = std::env::var("PXEFORGE_DHCP_MODE") { + self.network.dhcp_mode = match v.to_ascii_lowercase().as_str() { + "proxy" => DhcpMode::Proxy, + "disabled" | "off" | "none" => DhcpMode::Disabled, + _ => self.network.dhcp_mode, + }; + } + if let Ok(v) = std::env::var("PXEFORGE_ISO_DIR") { + self.paths.iso_dir = PathBuf::from(v); + } + if let Ok(v) = std::env::var("PXEFORGE_WORK_DIR") { + self.paths.work_dir = PathBuf::from(v); + } + if let Ok(v) = std::env::var("PXEFORGE_IPXE_DIR") { + self.paths.ipxe_dir = PathBuf::from(v); + } + if let Ok(v) = std::env::var("PXEFORGE_SMB_DIR") { + self.paths.smb_dir = PathBuf::from(v); + } + } +} diff --git a/crates/core/src/error.rs b/crates/core/src/error.rs new file mode 100644 index 0000000..9f2e239 --- /dev/null +++ b/crates/core/src/error.rs @@ -0,0 +1,17 @@ +use thiserror::Error; + +#[derive(Debug, Error)] +pub enum Error { + #[error("io: {0}")] + Io(#[from] std::io::Error), + #[error("config: {0}")] + Config(String), + #[error("not found: {0}")] + NotFound(String), + #[error("invalid input: {0}")] + Invalid(String), + #[error(transparent)] + Other(#[from] anyhow::Error), +} + +pub type Result = std::result::Result; diff --git a/crates/core/src/gate.rs b/crates/core/src/gate.rs new file mode 100644 index 0000000..acfd13f --- /dev/null +++ b/crates/core/src/gate.rs @@ -0,0 +1,254 @@ +//! Gated Deployment queue. +//! +//! When a client selects "Gated Deployment" at the PXE menu, iPXE POSTs to +//! `/api/gate/join` and receives a gate position. It then enters a poll +//! loop hitting `/api/gate/poll/`; the server holds the request open +//! until either (a) the operator assigns an ISO from the WebUI, in which +//! case the poll returns an iPXE `chain` URL, or (b) the poll times out +//! (iPXE's HTTP client has its own timeout), in which case iPXE re-POSTs. +//! +//! The WebUI shows the queue (`GET /api/gate`) and issues +//! `POST /api/gate/assign { iso_id, gate_ids: [...] }` to launch a single +//! ISO across many gated clients at once. This is the "horse-race gate" +//! UX the user asked for — every horse leaves the line simultaneously. + +use parking_lot::RwLock; +use serde::{Deserialize, Serialize}; +use std::collections::HashMap; +use std::net::IpAddr; +use std::sync::Arc; +use time::OffsetDateTime; +use tokio::sync::Notify; +use uuid::Uuid; + +use crate::ClientArch; + +/// Per-gate state visible to the WebUI. +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct Gate { + pub id: String, + /// 1-based race-gate position — position 1 is whoever got there first. + pub position: u32, + pub mac: String, + pub ip: Option, + pub arch: Option, + #[serde(with = "time::serde::rfc3339")] + pub joined_at: OffsetDateTime, + #[serde(with = "time::serde::rfc3339")] + pub last_poll_at: OffsetDateTime, + pub assigned_target: Option, +} + +#[derive(Debug)] +struct GateInner { + id: String, + position: u32, + mac: String, + ip: Option, + arch: Option, + joined_at: OffsetDateTime, + last_poll_at: OffsetDateTime, + assigned_target: Option, + /// Broadcast primitive that wakes the long-poll as soon as an + /// assignment lands — no polling on our side, no sleep-loops. + notify: Arc, +} + +impl GateInner { + fn snapshot(&self) -> Gate { + Gate { + id: self.id.clone(), + position: self.position, + mac: self.mac.clone(), + ip: self.ip, + arch: self.arch, + joined_at: self.joined_at, + last_poll_at: self.last_poll_at, + assigned_target: self.assigned_target.clone(), + } + } +} + +#[derive(Debug, Default)] +pub struct GateQueue { + inner: RwLock>, +} + +impl GateQueue { + #[must_use] + pub fn new() -> Arc { + Arc::new(Self::default()) + } + + /// Add a client to the gate. Returns the new `Gate` snapshot. If the + /// MAC is already queued, the existing gate is returned unchanged — + /// retrying iPXE clients don't duplicate their slot. + pub fn join(&self, mac: &str, ip: Option, arch: Option) -> Gate { + let now = OffsetDateTime::now_utc(); + let mut guard = self.inner.write(); + + if let Some(existing) = guard.values_mut().find(|g| g.mac == mac) { + existing.last_poll_at = now; + if ip.is_some() { existing.ip = ip; } + if arch.is_some() { existing.arch = arch; } + return existing.snapshot(); + } + + // Race position = max(position) + 1, or 1 if empty. + let next_pos = guard.values().map(|g| g.position).max().unwrap_or(0) + 1; + let id = Uuid::new_v4().to_string(); + let inner = GateInner { + id: id.clone(), + position: next_pos, + mac: mac.to_string(), + ip, + arch, + joined_at: now, + last_poll_at: now, + assigned_target: None, + notify: Arc::new(Notify::new()), + }; + let snap = inner.snapshot(); + guard.insert(id, inner); + snap + } + + /// Look up the `Notify` primitive for a given gate id, for long-polling. + #[must_use] + pub fn notifier(&self, gate_id: &str) -> Option> { + self.inner.read().get(gate_id).map(|g| g.notify.clone()) + } + + /// Update the last-poll timestamp (keeps the gate's "live" indicator + /// fresh in the UI) and return the current snapshot. Returns None if + /// the gate was released/expired between requests. + pub fn touch(&self, gate_id: &str) -> Option { + let mut guard = self.inner.write(); + let g = guard.get_mut(gate_id)?; + g.last_poll_at = OffsetDateTime::now_utc(); + Some(g.snapshot()) + } + + /// Operator assigns an ISO entry (boot_entry id) to one or more gates. + /// Returns the number of gates that were updated. Gates not in the + /// queue are silently skipped. + pub fn assign(&self, gate_ids: &[String], target: &str) -> usize { + let mut guard = self.inner.write(); + let mut updated = 0; + for id in gate_ids { + if let Some(g) = guard.get_mut(id) { + g.assigned_target = Some(target.to_string()); + g.notify.notify_waiters(); + updated += 1; + } + } + updated + } + + /// Remove a gate and return its final snapshot. Called after the client + /// has successfully chained onto its assignment. + pub fn release(&self, gate_id: &str) -> Option { + let mut guard = self.inner.write(); + let g = guard.remove(gate_id)?; + g.notify.notify_waiters(); + // Renumber positions so the display stays contiguous (1..N). This + // is O(N) but the queue is expected to be small (dozens of hosts). + let mut remaining: Vec<_> = guard.values_mut().collect(); + remaining.sort_by_key(|g| g.position); + for (i, g) in remaining.iter_mut().enumerate() { + g.position = (i + 1) as u32; + } + Some(g.snapshot()) + } + + #[must_use] + pub fn list(&self) -> Vec { + let guard = self.inner.read(); + let mut v: Vec<_> = guard.values().map(GateInner::snapshot).collect(); + v.sort_by_key(|g| g.position); + v + } + + #[must_use] + pub fn len(&self) -> usize { + self.inner.read().len() + } + + #[must_use] + pub fn is_empty(&self) -> bool { + self.len() == 0 + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn join_assigns_sequential_positions() { + let q = GateQueue::new(); + let g1 = q.join("aa:bb:cc:00:00:01", None, None); + let g2 = q.join("aa:bb:cc:00:00:02", None, None); + let g3 = q.join("aa:bb:cc:00:00:03", None, None); + assert_eq!(g1.position, 1); + assert_eq!(g2.position, 2); + assert_eq!(g3.position, 3); + } + + #[test] + fn rejoining_same_mac_is_idempotent() { + let q = GateQueue::new(); + let g1 = q.join("aa:bb:cc:00:00:01", None, None); + let g2 = q.join("aa:bb:cc:00:00:01", None, None); + assert_eq!(g1.id, g2.id); + assert_eq!(g1.position, g2.position); + assert_eq!(q.len(), 1); + } + + #[test] + fn assign_broadcasts_target() { + let q = GateQueue::new(); + let g1 = q.join("aa:bb:cc:00:00:01", None, None); + let g2 = q.join("aa:bb:cc:00:00:02", None, None); + let n = q.assign(&[g1.id.clone(), g2.id.clone()], "ubuntu-24-04-linux"); + assert_eq!(n, 2); + for g in q.list() { + assert_eq!(g.assigned_target.as_deref(), Some("ubuntu-24-04-linux")); + } + } + + #[test] + fn release_renumbers() { + let q = GateQueue::new(); + let a = q.join("aa:00:00:00:00:01", None, None); + let _b = q.join("aa:00:00:00:00:02", None, None); + let c = q.join("aa:00:00:00:00:03", None, None); + q.release(&a.id); + let list = q.list(); + assert_eq!(list.len(), 2); + assert_eq!(list[0].position, 1); + assert_eq!(list[1].position, 2); + // c had position 3, now renumbered to 2. + assert_eq!(list[1].id, c.id); + } + + #[tokio::test] + async fn assign_wakes_waiter() { + let q = GateQueue::new(); + let g = q.join("aa:00:00:00:00:01", None, None); + let notify = q.notifier(&g.id).unwrap(); + + let q2 = Arc::new(q); + let q3 = q2.clone(); + let id = g.id.clone(); + let fut = tokio::spawn(async move { + notify.notified().await; + q3.touch(&id) + }); + tokio::time::sleep(std::time::Duration::from_millis(10)).await; + q2.assign(&[g.id.clone()], "x"); + let result = fut.await.unwrap(); + assert!(result.is_some()); + assert_eq!(result.unwrap().assigned_target.as_deref(), Some("x")); + } +} diff --git a/crates/core/src/lib.rs b/crates/core/src/lib.rs new file mode 100644 index 0000000..fc80e82 --- /dev/null +++ b/crates/core/src/lib.rs @@ -0,0 +1,19 @@ +//! PXEForge shared core: config, arch detection, client state registry, +//! runtime settings, and the Gated Deployment queue. +#![forbid(unsafe_code)] + +pub mod arch; +pub mod client; +pub mod config; +pub mod error; +pub mod gate; +pub mod log_bus; +pub mod settings; + +pub use arch::{ClientArch, FirmwareClass}; +pub use client::{ClientEvent, ClientRegistry, ClientSnapshot}; +pub use config::{Config, DhcpMode, NetworkConfig, Paths, ServerConfig}; +pub use error::{Error, Result}; +pub use gate::{Gate, GateQueue}; +pub use log_bus::{LogBus, LogBusLayer, LogLine}; +pub use settings::{Settings, SettingsStore, TimeoutAction}; diff --git a/crates/core/src/log_bus.rs b/crates/core/src/log_bus.rs new file mode 100644 index 0000000..0ef49e9 --- /dev/null +++ b/crates/core/src/log_bus.rs @@ -0,0 +1,200 @@ +//! In-process log bus. +//! +//! The web UI's Terminal tab streams live server logs over SSE. To feed it +//! we install a `tracing_subscriber::Layer` that captures formatted lines +//! and pushes them onto: +//! +//! 1. A bounded `tokio::sync::broadcast` channel for live subscribers. +//! 2. A small in-memory ring buffer (default 500 lines) so a UI that +//! connects mid-session sees recent context, not a blank pane. +//! +//! No file logging happens here — Docker/OpenShift already capture stdout. +//! This is purely an extra fan-out for the UI. + +use parking_lot::Mutex; +use serde::{Deserialize, Serialize}; +use std::collections::VecDeque; +use std::sync::Arc; +use time::OffsetDateTime; +use tokio::sync::broadcast; +use tracing::field::{Field, Visit}; +use tracing::{Event, Level, Subscriber}; +use tracing_subscriber::layer::Context; +use tracing_subscriber::registry::LookupSpan; +use tracing_subscriber::Layer; + +/// One captured log line. Cheap to clone (small struct, short strings). +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct LogLine { + #[serde(with = "time::serde::rfc3339")] + pub timestamp: OffsetDateTime, + /// Lowercase: `error`, `warn`, `info`, `debug`, `trace`. + pub level: String, + pub target: String, + pub message: String, +} + +impl LogLine { + /// Compact one-line "tail -f"-style render. + #[must_use] + pub fn render(&self) -> String { + // 2026-04-29T12:34:56Z [info] pxeforge::http: HTTP listening on 0.0.0.0:80 + let ts = self + .timestamp + .format(&time::format_description::well_known::Rfc3339) + .unwrap_or_else(|_| "?".into()); + format!( + "{ts} [{:>5}] {}: {}", + self.level, self.target, self.message + ) + } +} + +#[derive(Debug)] +pub struct LogBus { + tx: broadcast::Sender, + buf: Mutex>, + cap: usize, +} + +impl LogBus { + #[must_use] + pub fn new(capacity: usize) -> Arc { + // 256 = upper bound on concurrent live subscribers' lag tolerance. + // If a slow client falls behind it'll get a Lagged error and skip + // ahead — which is what we want for a live tail. + let (tx, _) = broadcast::channel(256); + Arc::new(Self { + tx, + buf: Mutex::new(VecDeque::with_capacity(capacity)), + cap: capacity, + }) + } + + /// Subscribe to new log lines as they're emitted. + #[must_use] + pub fn subscribe(&self) -> broadcast::Receiver { + self.tx.subscribe() + } + + /// Snapshot of the recent ring buffer (oldest → newest). + #[must_use] + pub fn recent(&self) -> Vec { + self.buf.lock().iter().cloned().collect() + } + + /// Drop everything in the recent ring buffer. + pub fn clear(&self) { + self.buf.lock().clear(); + } + + /// Manually push a synthetic log line (used by the terminal-command + /// handler so operator commands appear inline in the live tail). + pub fn push(&self, level: &str, target: &str, message: impl Into) { + let line = LogLine { + timestamp: OffsetDateTime::now_utc(), + level: level.to_string(), + target: target.to_string(), + message: message.into(), + }; + self.record(line); + } + + fn record(&self, line: LogLine) { + { + let mut g = self.buf.lock(); + if g.len() == self.cap { + g.pop_front(); + } + g.push_back(line.clone()); + } + // Send errors are fine — just means no live subscribers right now. + let _ = self.tx.send(line); + } +} + +/// `tracing_subscriber::Layer` that funnels every event into the LogBus. +/// +/// Install once in `main` alongside the existing `fmt::layer()` so console +/// output and the UI tail see the same stream. +pub struct LogBusLayer { + bus: Arc, +} + +impl LogBusLayer { + #[must_use] + pub fn new(bus: Arc) -> Self { + Self { bus } + } +} + +impl Layer for LogBusLayer +where + S: Subscriber + for<'a> LookupSpan<'a>, +{ + fn on_event(&self, event: &Event<'_>, _ctx: Context<'_, S>) { + let meta = event.metadata(); + let level = match *meta.level() { + Level::ERROR => "error", + Level::WARN => "warn", + Level::INFO => "info", + Level::DEBUG => "debug", + Level::TRACE => "trace", + }; + let mut visitor = MessageVisitor::default(); + event.record(&mut visitor); + let line = LogLine { + timestamp: OffsetDateTime::now_utc(), + level: level.to_string(), + target: meta.target().to_string(), + message: visitor.message, + }; + self.bus.record(line); + } +} + +#[derive(Default)] +struct MessageVisitor { + message: String, +} + +impl Visit for MessageVisitor { + fn record_str(&mut self, field: &Field, value: &str) { + if field.name() == "message" { + self.message = value.to_string(); + } + } + fn record_debug(&mut self, field: &Field, value: &dyn std::fmt::Debug) { + if field.name() == "message" { + self.message = format!("{value:?}").trim_matches('"').to_string(); + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[tokio::test(flavor = "current_thread")] + async fn push_and_recent() { + let bus = LogBus::new(3); + bus.push("info", "test", "first"); + bus.push("info", "test", "second"); + bus.push("info", "test", "third"); + bus.push("info", "test", "fourth"); + let r = bus.recent(); + assert_eq!(r.len(), 3); + assert_eq!(r[0].message, "second"); + assert_eq!(r[2].message, "fourth"); + } + + #[tokio::test(flavor = "current_thread")] + async fn subscribe_sees_new_lines() { + let bus = LogBus::new(8); + let mut rx = bus.subscribe(); + bus.push("info", "test", "live"); + let l = rx.recv().await.unwrap(); + assert_eq!(l.message, "live"); + assert_eq!(l.level, "info"); + } +} diff --git a/crates/core/src/settings.rs b/crates/core/src/settings.rs new file mode 100644 index 0000000..f823807 --- /dev/null +++ b/crates/core/src/settings.rs @@ -0,0 +1,187 @@ +//! Runtime-mutable settings, distinct from the static `Config`. +//! +//! Rationale: `Config` holds bind addresses, paths, and other things that +//! can only reasonably change at process start. `Settings` holds everything +//! the web UI can flip at runtime: timeouts, default boot action, Windows +//! feature toggles, etc. Persisted to `/settings.json` so they +//! survive pod restarts without requiring a ConfigMap edit. +//! +//! **Crucial property:** every UI-facing "feature flag" in here maps to a +//! specific iPXE script-generation behavior elsewhere in the codebase. The +//! user never writes iPXE; they toggle a setting and we translate. + +use parking_lot::RwLock; +use serde::{Deserialize, Serialize}; +use std::path::{Path, PathBuf}; +use std::sync::Arc; + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(default)] +pub struct Settings { + /// Seconds to wait at the top-level boot menu before falling through + /// to `timeout_action`. Default 600s per the Phase 2 spec. + pub boot_menu_timeout_secs: u32, + + /// What happens if the boot-menu timer hits zero with no selection. + pub timeout_action: TimeoutAction, + + /// Master enable for Windows ISO support. When off, Windows ISOs are + /// listed in the UI as "Windows — disabled" and not exposed in the + /// PXE menu. Off by default: Windows support requires bundling Samba + /// and wimlib in the runtime image (see deploy/docker/Dockerfile). + pub windows_enabled: bool, + + /// SMB share hostname/IP the patched WinPE's startnet.cmd will + /// `net use` against. Empty string = auto-fill with the public IP at + /// script-generation time. + pub smb_host_override: String, + + /// Global kernel-args append (added to every Linux entry's cmdline). + /// Useful for things like `console=ttyS0,115200` on serial-only boxes. + /// Do NOT accept raw iPXE script fragments here; this is literal kernel + /// args only. + pub extra_kernel_args: String, + + /// If true, the "Default → Boot from Local HDD" menu item is the + /// pre-selected entry (and is what the timeout falls to if + /// `timeout_action = LocalHdd`). + pub default_local_hdd: bool, + + /// When a client hits the Gated Deployment item, how long (seconds) to + /// hold it at the gate before giving up and falling back to the menu. + /// 0 = forever. + pub gate_wait_max_secs: u32, + + /// Optional DNS server advertised on the Network tab. Purely + /// informational today — PXEForge does not run a DNS server, but + /// operators expect to be able to record what the upstream DNS is. + /// Empty string = unset (UI shows placeholder). + pub dns_server: String, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)] +#[serde(rename_all = "snake_case")] +pub enum TimeoutAction { + /// Sit at the menu forever (no fallthrough). + Stay, + /// Chain the "Boot from Local HDD" entry. + LocalHdd, + /// Put the client into the gate queue, waiting for operator assignment. + #[default] + GatedDeployment, +} + +impl Default for Settings { + fn default() -> Self { + Self { + boot_menu_timeout_secs: 600, + timeout_action: TimeoutAction::GatedDeployment, + windows_enabled: false, + smb_host_override: String::new(), + extra_kernel_args: String::new(), + default_local_hdd: true, + gate_wait_max_secs: 0, + dns_server: String::new(), + } + } +} + +#[derive(Debug)] +pub struct SettingsStore { + path: PathBuf, + inner: RwLock, +} + +impl SettingsStore { + /// Load from `work_dir/settings.json`, or create with defaults if the + /// file is missing/corrupt. Never fails — a bad settings file on disk + /// is not a reason to refuse to start. + pub fn load_or_default(work_dir: &Path) -> Arc { + let path = work_dir.join("settings.json"); + let initial = match std::fs::read_to_string(&path) { + Ok(text) => match serde_json::from_str::(&text) { + Ok(s) => s, + Err(e) => { + tracing::warn!( + target: "pxeforge::settings", + "settings.json present but unreadable ({e}); falling back to defaults" + ); + Settings::default() + } + }, + Err(_) => Settings::default(), + }; + Arc::new(Self { path, inner: RwLock::new(initial) }) + } + + #[must_use] + pub fn snapshot(&self) -> Settings { + self.inner.read().clone() + } + + /// Atomically replace settings and persist. The caller supplies the full + /// `Settings` struct — partial updates happen at the HTTP layer via + /// merge-then-store. Persistence errors are logged but not returned; + /// settings live in memory authoritatively and only SHOULD be on disk. + pub fn replace(&self, new: Settings) { + { + let mut g = self.inner.write(); + *g = new; + } + let snap = self.snapshot(); + if let Err(e) = self.persist(&snap) { + tracing::warn!(target: "pxeforge::settings", "failed to persist settings: {e}"); + } + } + + fn persist(&self, s: &Settings) -> std::io::Result<()> { + let tmp = self.path.with_extension("json.tmp"); + if let Some(parent) = self.path.parent() { + std::fs::create_dir_all(parent)?; + } + let body = serde_json::to_vec_pretty(s) + .map_err(|e| std::io::Error::new(std::io::ErrorKind::InvalidData, e))?; + std::fs::write(&tmp, body)?; + std::fs::rename(tmp, &self.path) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use tempfile::tempdir; + + #[test] + fn defaults_roundtrip() { + let dir = tempdir().unwrap(); + let store = SettingsStore::load_or_default(dir.path()); + let s = store.snapshot(); + assert_eq!(s.boot_menu_timeout_secs, 600); + assert_eq!(s.timeout_action, TimeoutAction::GatedDeployment); + assert!(!s.windows_enabled); + } + + #[test] + fn replace_persists() { + let dir = tempdir().unwrap(); + let store = SettingsStore::load_or_default(dir.path()); + let mut new = store.snapshot(); + new.boot_menu_timeout_secs = 30; + new.windows_enabled = true; + store.replace(new); + // Reload from disk. + drop(store); + let reloaded = SettingsStore::load_or_default(dir.path()); + let s = reloaded.snapshot(); + assert_eq!(s.boot_menu_timeout_secs, 30); + assert!(s.windows_enabled); + } + + #[test] + fn corrupt_file_falls_back_to_default() { + let dir = tempdir().unwrap(); + std::fs::write(dir.path().join("settings.json"), b"{ not json }").unwrap(); + let store = SettingsStore::load_or_default(dir.path()); + assert_eq!(store.snapshot().boot_menu_timeout_secs, 600); + } +} diff --git a/crates/dhcp-proxy/Cargo.toml b/crates/dhcp-proxy/Cargo.toml new file mode 100644 index 0000000..34017fe --- /dev/null +++ b/crates/dhcp-proxy/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "pxeforge-dhcp-proxy" +version.workspace = true +edition.workspace = true +license.workspace = true +authors.workspace = true +description = "DHCP proxy (RFC 4578) for PXEForge — serves boot info, does not lease IPs" + +[lints] +workspace = true + +[dependencies] +pxeforge-core.workspace = true +tokio.workspace = true +socket2.workspace = true +dhcproto.workspace = true +tracing.workspace = true +thiserror.workspace = true +anyhow.workspace = true +bytes.workspace = true diff --git a/crates/dhcp-proxy/src/lib.rs b/crates/dhcp-proxy/src/lib.rs new file mode 100644 index 0000000..21f83dc --- /dev/null +++ b/crates/dhcp-proxy/src/lib.rs @@ -0,0 +1,23 @@ +//! DHCP proxy (RFC 4578 "PXE Boot Server Discovery"). +//! +//! Listens on UDP/67 (broadcast) and UDP/4011 (PXE boot server). Never +//! assigns IPs — only returns boot parameters (siaddr, option 66 TFTP server, +//! option 67 boot filename, and the mandatory option 60 "PXEClient" echo). +//! +//! Key decisions (see architecture memory for rationale): +//! - Single code path handles both 67 and 4011; distinguished by port. +//! - We set `SO_REUSEADDR` + `SO_BROADCAST` and enable `IP_PKTINFO` so we can +//! (a) learn the destination interface for multi-homed pods and (b) reply +//! back through the correct interface. This lets us run behind host-network +//! in OpenShift without needing `SO_BINDTODEVICE` (which requires NET_RAW). +//! - Classification is: option 77 user-class `iPXE` → serve HTTP script URL; +//! option 60 starts `HTTPClient` → serve HTTP URL directly (UEFI HTTP boot); +//! otherwise → TFTP + arch-specific iPXE binary. +//! - We MUST echo `option 60 = "PXEClient"` (or `"HTTPClient"`) in replies or +//! clients silently drop them. +#![forbid(unsafe_code)] + +pub mod reply; +pub mod server; + +pub use server::DhcpProxyServer; diff --git a/crates/dhcp-proxy/src/reply.rs b/crates/dhcp-proxy/src/reply.rs new file mode 100644 index 0000000..42ef8a0 --- /dev/null +++ b/crates/dhcp-proxy/src/reply.rs @@ -0,0 +1,122 @@ +//! Build DHCP proxy replies. +//! +//! Proxy replies look like a normal DHCPOFFER/ACK except: +//! - `yiaddr` (your IP) is 0 — we don't lease. +//! - `siaddr` (server IP) is us — the client will TFTP from here. +//! - option 60 (vendor class) MUST be echoed as `PXEClient` or clients drop. +//! - option 66 (TFTP server name) points at us. +//! - option 67 (bootfile name) is per-architecture iPXE binary on first +//! pass, or the HTTP URL of the boot script once iPXE has chained. + +use dhcproto::v4::{DhcpOption, Message, MessageType, Opcode, OptionCode}; +use pxeforge_core::{ClientArch, FirmwareClass}; +use std::net::Ipv4Addr; + +/// Where the reply directs the client next. +#[derive(Debug, Clone)] +pub enum BootDirective { + /// Serve an iPXE binary over TFTP (first-stage chainload). + TftpIpxe { filename: String }, + /// Serve an iPXE boot script directly over HTTP. Used when the client is + /// iPXE itself (option 77 = "iPXE") or UEFI HTTP boot (option 60 starts + /// with "HTTPClient"). + HttpScript { url: String }, + /// Refuse to respond (architecture we don't have a binary for, or + /// not-a-PXE-client). Caller should skip sending anything. + Ignore, +} + +pub struct ReplyContext<'a> { + pub request: &'a Message, + pub our_ip: Ipv4Addr, + pub arch: ClientArch, + pub class: FirmwareClass, + /// Public base URL (scheme://host[:port]) used in HTTP directives. + pub public_base_url: &'a str, +} + +/// Decide what to do for an incoming request. Pure function — easy to unit +/// test. Does NOT send anything. +#[must_use] +pub fn decide(ctx: &ReplyContext<'_>) -> BootDirective { + match ctx.class { + FirmwareClass::IpxeUserClass => BootDirective::HttpScript { + url: format!("{}/boot.ipxe", ctx.public_base_url.trim_end_matches('/')), + }, + FirmwareClass::HttpClient => { + // UEFI HTTP boot: client wants an http:// URL in option 67 + // pointing at an EFI executable. We serve ipxe.efi over HTTP; + // it'll then do the same script-fetch the iPXE path does. + let name = ctx.arch.ipxe_bootfile().unwrap_or("snponly.efi"); + BootDirective::HttpScript { + url: format!("{}/ipxe/{}", ctx.public_base_url.trim_end_matches('/'), name), + } + } + FirmwareClass::PxeClient => match ctx.arch.ipxe_bootfile() { + Some(name) => BootDirective::TftpIpxe { filename: name.to_string() }, + None => BootDirective::Ignore, + }, + FirmwareClass::Other => BootDirective::Ignore, + } +} + +/// Build the outgoing DHCPOFFER (or ACK, matching request type) for a +/// directive. Caller is responsible for sending the bytes on the wire. +pub fn build_reply(ctx: &ReplyContext<'_>, directive: &BootDirective) -> Option { + let reply_type = match request_message_type(ctx.request)? { + MessageType::Discover => MessageType::Offer, + MessageType::Request | MessageType::Inform => MessageType::Ack, + _ => return None, + }; + + let mut msg = Message::default(); + msg.set_opcode(Opcode::BootReply) + .set_htype(ctx.request.htype()) + .set_hops(0) + .set_xid(ctx.request.xid()) + .set_secs(0) + .set_flags(ctx.request.flags()) + .set_ciaddr(Ipv4Addr::UNSPECIFIED) + .set_yiaddr(Ipv4Addr::UNSPECIFIED) // proxy does not lease + .set_siaddr(ctx.our_ip) + .set_giaddr(ctx.request.giaddr()) + .set_chaddr(ctx.request.chaddr()); + + // Set the BOOTP `file` field for legacy PXE stacks before we take the + // options borrow (the two borrows can't overlap). + if let BootDirective::TftpIpxe { filename } = directive { + msg.set_fname_str(filename); + } + + let class_echo: &[u8] = match ctx.class { + FirmwareClass::HttpClient => b"HTTPClient", + _ => b"PXEClient", + }; + let opts = msg.opts_mut(); + opts.insert(DhcpOption::MessageType(reply_type)); + opts.insert(DhcpOption::ServerIdentifier(ctx.our_ip)); + // Echo the vendor class — REQUIRED by spec for the client to accept. + opts.insert(DhcpOption::ClassIdentifier(class_echo.to_vec())); + + match directive { + BootDirective::TftpIpxe { filename } => { + opts.insert(DhcpOption::TFTPServerName(ctx.our_ip.to_string().into_bytes())); + opts.insert(DhcpOption::BootfileName(filename.as_bytes().to_vec())); + } + BootDirective::HttpScript { url } => { + opts.insert(DhcpOption::BootfileName(url.as_bytes().to_vec())); + opts.insert(DhcpOption::TFTPServerName(ctx.our_ip.to_string().into_bytes())); + } + BootDirective::Ignore => return None, + } + + opts.insert(DhcpOption::End); + Some(msg) +} + +fn request_message_type(m: &Message) -> Option { + m.opts().get(OptionCode::MessageType).and_then(|o| match o { + DhcpOption::MessageType(t) => Some(*t), + _ => None, + }) +} diff --git a/crates/dhcp-proxy/src/server.rs b/crates/dhcp-proxy/src/server.rs new file mode 100644 index 0000000..c64f834 --- /dev/null +++ b/crates/dhcp-proxy/src/server.rs @@ -0,0 +1,236 @@ +//! UDP listener loop for the DHCP proxy. Accepts on :67 (and :4011 on a +//! second socket) and dispatches each datagram through the pure reply logic. + +use crate::reply::{build_reply, decide, BootDirective, ReplyContext}; +use dhcproto::v4::{DhcpOption, Message, OptionCode}; +use dhcproto::{Decodable, Decoder, Encodable, Encoder}; +use pxeforge_core::{ + ClientArch, ClientEvent, ClientRegistry, FirmwareClass, +}; +use socket2::{Domain, Protocol, Socket, Type}; +use std::net::{IpAddr, Ipv4Addr, SocketAddr, SocketAddrV4}; +use std::sync::Arc; +use tokio::net::UdpSocket; + +pub struct DhcpProxyServer { + bind: IpAddr, + dhcp_port: u16, + pxe_port: u16, + our_ip: Ipv4Addr, + public_base_url: String, + clients: Arc, +} + +impl DhcpProxyServer { + pub fn new( + bind: IpAddr, + dhcp_port: u16, + pxe_port: u16, + our_ip: Ipv4Addr, + public_base_url: String, + clients: Arc, + ) -> Self { + Self { bind, dhcp_port, pxe_port, our_ip, public_base_url, clients } + } + + pub async fn run(self) -> anyhow::Result<()> { + let dhcp_sock = bind_udp(self.bind, self.dhcp_port, true)?; + let pxe_sock = bind_udp(self.bind, self.pxe_port, false)?; + tracing::info!( + target: "pxeforge::dhcp", + "DHCP proxy listening on {}:{} and :{}", + self.bind, self.dhcp_port, self.pxe_port + ); + + let ctx = Arc::new(self); + let c1 = ctx.clone(); + let c2 = ctx.clone(); + let a = tokio::spawn(async move { c1.serve_loop(dhcp_sock, "67").await }); + let b = tokio::spawn(async move { c2.serve_loop(pxe_sock, "4011").await }); + let _ = tokio::try_join!(a, b)?; + Ok(()) + } + + async fn serve_loop(&self, sock: UdpSocket, label: &'static str) -> anyhow::Result<()> { + let mut buf = vec![0u8; 4096]; + loop { + let (n, from) = match sock.recv_from(&mut buf).await { + Ok(v) => v, + Err(e) => { + tracing::warn!(target: "pxeforge::dhcp", port=label, "recv error: {e}"); + continue; + } + }; + if let Err(e) = self.handle_datagram(&sock, &buf[..n], from, label).await { + tracing::warn!(target: "pxeforge::dhcp", port=label, "handle error: {e}"); + } + } + } + + async fn handle_datagram( + &self, + sock: &UdpSocket, + data: &[u8], + from: SocketAddr, + label: &'static str, + ) -> anyhow::Result<()> { + let request = Message::decode(&mut Decoder::new(data))?; + + let vendor_class = request.opts().get(OptionCode::ClassIdentifier).and_then(|o| { + if let DhcpOption::ClassIdentifier(v) = o { Some(v.as_slice()) } else { None } + }); + let user_class = request.opts().get(OptionCode::UserClass).and_then(|o| { + if let DhcpOption::UserClass(v) = o { Some(v.as_slice()) } else { None } + }); + let class = FirmwareClass::classify(vendor_class, user_class); + if matches!(class, FirmwareClass::Other) { + // Not a PXE client (e.g. a regular DHCP DISCOVER from a phone). + // Silently ignore — we are a proxy, we only speak to PXE clients. + return Ok(()); + } + + // dhcproto types option 93 as an enum that drops unknown codes; + // re-parse from the raw wire bytes so firmware quirks like 0x0009 + // come through intact. + let raw_arch = extract_raw_arch(data).unwrap_or(0); + let arch = ClientArch::from_option_93(raw_arch); + + let chaddr = request.chaddr(); + let mac = format_mac(chaddr); + self.clients.record( + &mac, + None, + Some(arch), + match label { + "4011" => ClientEvent::PxeBootServerRequest, + _ => ClientEvent::DhcpDiscover, + }, + ); + + let ctx = ReplyContext { + request: &request, + our_ip: self.our_ip, + arch, + class, + public_base_url: &self.public_base_url, + }; + let directive = decide(&ctx); + if matches!(directive, BootDirective::Ignore) { + tracing::debug!( + target: "pxeforge::dhcp", + mac=%mac, arch=?arch, "ignoring — no bootfile for arch" + ); + return Ok(()); + } + + let Some(reply) = build_reply(&ctx, &directive) else { return Ok(()); }; + let mut out = Vec::with_capacity(512); + reply.encode(&mut Encoder::new(&mut out))?; + + let dest = reply_destination(&request, from); + sock.send_to(&out, dest).await?; + tracing::info!( + target: "pxeforge::dhcp", + mac=%mac, arch=arch.as_str(), class=?class, dest=%dest, directive=?directive, + "PXE reply sent" + ); + Ok(()) + } +} + +/// Choose where to send the reply. DHCP semantics (RFC 2131 §4.1): +/// 1. If the request came via a relay agent (`giaddr` != 0), reply to +/// that agent on port 67. The relay will forward to the client. +/// 2. If the client already has an IP (`ciaddr`), unicast there on :68. +/// 3. If the broadcast flag is set in the BOOTP flags (bit 15), the +/// client cannot receive unicast frames yet — we MUST broadcast. +/// 4. Otherwise, per the spec we MAY unicast to `chaddr` if we ARP-inject, +/// but since we don't craft raw frames (proxy mode, no NET_RAW), we +/// fall back to broadcast which every client accepts. +/// 5. Special case for the PXE Boot Server port 4011: reply to the +/// source address/port exactly — this is a unicast query and the +/// client expects a unicast answer there. +fn reply_destination(request: &Message, from: SocketAddr) -> SocketAddr { + // (1) relayed request + let giaddr = request.giaddr(); + if giaddr != Ipv4Addr::UNSPECIFIED { + return SocketAddr::V4(SocketAddrV4::new(giaddr, 67)); + } + // (5) PXE Boot Server discovery is unicast + if from.port() == 4011 { + return from; + } + // (2) client has an IP and has NOT requested broadcast-only + let ciaddr = request.ciaddr(); + let bflag = request.flags().broadcast(); + if ciaddr != Ipv4Addr::UNSPECIFIED && !bflag { + return SocketAddr::V4(SocketAddrV4::new(ciaddr, 68)); + } + // (3, 4) broadcast to 255.255.255.255:68 + SocketAddr::V4(SocketAddrV4::new(Ipv4Addr::BROADCAST, 68)) +} + +fn bind_udp(bind: IpAddr, port: u16, broadcast: bool) -> anyhow::Result { + let domain = match bind { + IpAddr::V4(_) => Domain::IPV4, + IpAddr::V6(_) => Domain::IPV6, + }; + let sock = Socket::new(domain, Type::DGRAM, Some(Protocol::UDP))?; + sock.set_reuse_address(true)?; + #[cfg(unix)] + sock.set_reuse_port(true)?; + if broadcast { + sock.set_broadcast(true)?; + } + sock.set_nonblocking(true)?; + let addr: SocketAddr = SocketAddr::new(bind, port); + sock.bind(&addr.into())?; + let std_sock: std::net::UdpSocket = sock.into(); + Ok(UdpSocket::from_std(std_sock)?) +} + +fn format_mac(chaddr: &[u8]) -> String { + let take = chaddr.iter().take(6).copied().collect::>(); + take.iter().map(|b| format!("{b:02x}")).collect::>().join(":") +} + +/// Walk raw DHCP options looking for option 93 (Client System Architecture) +/// and return the first 2-byte big-endian value. This bypasses dhcproto's +/// typed decoding because some firmwares emit values outside the IANA table +/// that the typed decoder may drop. +fn extract_raw_arch(packet: &[u8]) -> Option { + // DHCPv4 fixed header is 240 bytes including the 4-byte magic cookie. + // Options start at offset 240. + let opts = packet.get(240..)?; + let mut i = 0; + while i < opts.len() { + let code = opts[i]; + if code == 0xff { return None; } // END + if code == 0x00 { i += 1; continue; } // PAD + i += 1; + if i >= opts.len() { return None; } + let len = opts[i] as usize; + i += 1; + if code == 93 && len >= 2 && i + 2 <= opts.len() { + return Some(u16::from_be_bytes([opts[i], opts[i + 1]])); + } + i += len; + } + None +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn extracts_arch_from_raw_options() { + // Minimal BOOTP header + magic cookie + option 93 (arch)=0x0007 + END. + let mut pkt = vec![0u8; 240]; + pkt[236..240].copy_from_slice(&[99, 130, 83, 99]); // magic cookie + pkt.extend_from_slice(&[53, 1, 1]); // option 53 DHCPDISCOVER + pkt.extend_from_slice(&[93, 2, 0x00, 0x07]); + pkt.push(0xff); + assert_eq!(extract_raw_arch(&pkt), Some(0x0007)); + } +} diff --git a/crates/http-api/Cargo.toml b/crates/http-api/Cargo.toml new file mode 100644 index 0000000..5c4f1b8 --- /dev/null +++ b/crates/http-api/Cargo.toml @@ -0,0 +1,40 @@ +[package] +name = "pxeforge-http-api" +version.workspace = true +edition.workspace = true +license.workspace = true +authors.workspace = true +description = "HTTP server: ISO uploads, iPXE script generation, ISO streaming" + +[lints] +workspace = true + +[dependencies] +pxeforge-core.workspace = true +pxeforge-iso-store.workspace = true +pxeforge-ipxe-assets.workspace = true +pxeforge-webui.workspace = true +tokio.workspace = true +tokio-util.workspace = true +tokio-stream.workspace = true +time.workspace = true +axum.workspace = true +tower.workspace = true +tower-http.workspace = true +hyper.workspace = true +serde.workspace = true +serde_json.workspace = true +tracing.workspace = true +thiserror.workspace = true +anyhow.workspace = true +bytes.workspace = true +futures.workspace = true +mime.workspace = true +mime_guess.workspace = true + +[dev-dependencies] +tokio = { workspace = true, features = ["macros", "rt", "rt-multi-thread", "time"] } +tower = { workspace = true } +tempfile = "3.12" +serde_json = { workspace = true } +time = { workspace = true } diff --git a/crates/http-api/src/app.rs b/crates/http-api/src/app.rs new file mode 100644 index 0000000..f91ab23 --- /dev/null +++ b/crates/http-api/src/app.rs @@ -0,0 +1,680 @@ +//! Axum router, handlers, and API endpoints. +//! +//! Route groups: +//! +//! | Group | Purpose | +//! |------------------|-------------------------------------------------------| +//! | `/` | Web UI (served from `pxeforge-webui`) | +//! | `/boot.ipxe` | Top-level iPXE menu | +//! | `/boot/_*.ipxe` | Submenu scripts (hierarchy: linux, windows, tools, …) | +//! | `/boot/.ipxe`| Per-entry boot script | +//! | `/ipxe/` | Bundled iPXE binaries + wimboot + memtest | +//! | `/iso/.iso` | Raw ISO with Range support | +//! | `/iso//*` | Files inside the ISO (for wimboot & kernel/initrd) | +//! | `/api/*` | JSON/HTML API for the web UI | + +use crate::ipxe_script::{ + render_entry, render_family_menu, render_gate_entry, render_local_hdd, + render_menu, render_nic_info, render_shell, render_tools_menu, render_util, +}; +use crate::iso_fs; +use crate::log_stream; +use crate::state::AppState; +use crate::terminal; +use axum::{ + body::Body, + extract::{DefaultBodyLimit, Multipart, Path as AxumPath, Query, State}, + http::{header, HeaderMap, HeaderValue, StatusCode}, + response::{IntoResponse, Response}, + routing::{delete, get, post}, + Json, Router, +}; +use pxeforge_core::{ClientEvent, Settings}; +use pxeforge_ipxe_assets::asset_bytes; +use pxeforge_iso_store::{IsoMeta, NfsAddRequest}; +use serde::Deserialize; +use serde_json::json; +use std::time::Duration; +use tokio::io::{AsyncReadExt, AsyncSeekExt}; +use tower_http::trace::TraceLayer; + +pub fn build_router(state: AppState) -> Router { + Router::new() + // Web UI (fully offline — no CDN, no external fonts/images). + .route("/", get(index)) + .route("/assets/app.js", get(ui_js)) + .route("/assets/app.css", get(ui_css)) + .route("/assets/logo.svg", get(ui_logo)) + // iPXE script endpoints. + .route("/boot.ipxe", get(boot_top_menu)) + .route("/boot/:filename", get(boot_sub)) + // Bundled binaries and raw ISO access. + .route("/ipxe/:name", get(ipxe_binary)) + .route("/iso/:filename", get(iso_raw)) + .route("/iso/:id/*path", get(iso_file)) + // Container health/readiness probes. `/healthz` is always 200 OK + // while the HTTP task is alive. `/readyz` additionally requires at + // least one bundled iPXE binary (without one, no client can PXE). + .route("/healthz", get(healthz)) + .route("/readyz", get(readyz)) + // JSON API. + .route("/api/isos", get(api_list_isos).post(api_upload_iso)) + .route("/api/isos/:id", delete(api_delete_iso)) + .route("/api/clients", get(api_list_clients)) + .route("/api/status", get(api_status)) + .route("/api/settings", get(api_get_settings).put(api_put_settings)) + .route("/api/gate", get(api_list_gates)) + .route("/api/gate/join", get(api_gate_join)) + .route("/api/gate/poll/:gate_id", get(api_gate_poll)) + .route("/api/gate/assign", post(api_gate_assign)) + .route("/api/gate/:gate_id", delete(api_gate_release)) + // Phase 4: NFS share manager. + .route("/api/nfs", get(api_nfs_list).post(api_nfs_add)) + .route("/api/nfs/:id", delete(api_nfs_remove)) + .route("/api/nfs/:id/scan", post(api_nfs_scan)) + // Phase 4: Network info (read-only) + DNS edit. + .route("/api/network", get(api_network).put(api_network_put)) + // Phase 4: live-log stream + recent buffer for the Terminal tab. + .route("/api/log/stream", get(log_stream::stream)) + .route("/api/log/recent", get(log_stream::recent)) + .route("/api/log/clear", post(log_stream::clear)) + // Phase 4: operator terminal commands (whitelisted). + .route("/api/terminal", post(terminal::run_command)) + .layer(TraceLayer::new_for_http()) + // 16 GiB upload cap — ISOs are big; chunks stream so this isn't memory use. + .layer(DefaultBodyLimit::max(16 * 1024 * 1024 * 1024)) + .with_state(state) +} + +// ─── UI ──────────────────────────────────────────────────────────────────── + +async fn index(State(state): State) -> Response { + let html = pxeforge_webui::index_html(&state.public_base_url); + ([(header::CONTENT_TYPE, HeaderValue::from_static("text/html; charset=utf-8"))], html) + .into_response() +} + +async fn ui_js() -> Response { + ( + [(header::CONTENT_TYPE, HeaderValue::from_static("application/javascript"))], + pxeforge_webui::app_js(), + ).into_response() +} + +async fn ui_css() -> Response { + ( + [(header::CONTENT_TYPE, HeaderValue::from_static("text/css"))], + pxeforge_webui::app_css(), + ).into_response() +} + +async fn ui_logo() -> Response { + ( + [(header::CONTENT_TYPE, HeaderValue::from_static("image/svg+xml"))], + pxeforge_webui::logo_svg(), + ).into_response() +} + +// ─── iPXE scripts ────────────────────────────────────────────────────────── + +fn text_plain(body: String) -> Response { + ([(header::CONTENT_TYPE, HeaderValue::from_static("text/plain; charset=utf-8"))], body) + .into_response() +} + +async fn boot_top_menu(State(state): State) -> Response { + let isos = state.iso_store.list(); + let settings = state.settings.snapshot(); + text_plain(render_menu(&isos, &settings, &state.public_base_url)) +} + +async fn boot_sub( + State(state): State, + AxumPath(filename): AxumPath, +) -> Response { + // `/boot/.ipxe` where `` is either one of our reserved + // submenu names (prefixed `_`) or a boot entry id. + let name = filename.strip_suffix(".ipxe").unwrap_or(&filename); + let isos = state.iso_store.list(); + let settings = state.settings.snapshot(); + let base = &state.public_base_url; + let script = match name { + "_local" => render_local_hdd(base), + "_linux_menu" => render_family_menu(&isos, base, false), + "_windows_menu" => render_family_menu(&isos, base, true), + "_tools_menu" => render_tools_menu(base), + "_util" => render_util(base), + "_shell" => render_shell(base), + "_nic" => render_nic_info(base), + "_gate" => render_gate_entry(base), + other => { + for iso in &isos { + for entry in &iso.boot_entries { + if entry.id == other { + return text_plain(render_entry(entry, &settings, base)); + } + } + } + return (StatusCode::NOT_FOUND, "no such boot entry").into_response(); + } + }; + text_plain(script) +} + +// ─── bundled iPXE binaries (memtest lives here too) ─────────────────────── + +async fn ipxe_binary(AxumPath(name): AxumPath) -> Response { + if name.contains('/') || name.contains('\\') { + return (StatusCode::BAD_REQUEST, "invalid name").into_response(); + } + let Some(bytes) = asset_bytes(&name) else { + return (StatusCode::NOT_FOUND, "no such ipxe asset").into_response(); + }; + ( + [ + (header::CONTENT_TYPE, HeaderValue::from_static("application/octet-stream")), + (header::CONTENT_LENGTH, HeaderValue::from(bytes.len())), + ], + bytes, + ).into_response() +} + +// ─── ISO streaming (raw + in-ISO) ───────────────────────────────────────── + +async fn iso_raw( + State(state): State, + AxumPath(filename): AxumPath, + headers: HeaderMap, +) -> Response { + let id = filename.strip_suffix(".iso").unwrap_or(&filename); + let Some(path) = state.iso_store.iso_path_for(id) else { + return (StatusCode::NOT_FOUND, "no such iso").into_response(); + }; + match stream_file_range(&path, headers.get(header::RANGE)).await { + Ok(r) => r, + Err(e) => (StatusCode::INTERNAL_SERVER_ERROR, format!("{e}")).into_response(), + } +} + +async fn iso_file( + State(state): State, + AxumPath((id, path)): AxumPath<(String, String)>, +) -> Response { + let Some(iso_path) = state.iso_store.iso_path_for(&id) else { + return (StatusCode::NOT_FOUND, "no such iso").into_response(); + }; + let p = iso_path.clone(); + let in_path = format!("/{}", path); + let loc = tokio::task::spawn_blocking(move || iso_fs::lookup(&p, &in_path)) + .await.ok().flatten(); + let Some(loc) = loc else { + return (StatusCode::NOT_FOUND, "not found inside iso").into_response(); + }; + match stream_byte_range(&iso_path, loc.offset, loc.length).await { + Ok(r) => r, + Err(e) => (StatusCode::INTERNAL_SERVER_ERROR, format!("{e}")).into_response(), + } +} + +async fn stream_file_range( + path: &std::path::Path, + range: Option<&HeaderValue>, +) -> anyhow::Result { + let meta = tokio::fs::metadata(path).await?; + let total = meta.len(); + let (start, end, partial) = parse_range(range, total); + let len = end - start + 1; + let mut file = tokio::fs::File::open(path).await?; + file.seek(std::io::SeekFrom::Start(start)).await?; + let reader = file.take(len); + let stream = tokio_util::io::ReaderStream::new(reader); + let body = Body::from_stream(stream); + let status = if partial { StatusCode::PARTIAL_CONTENT } else { StatusCode::OK }; + let mut builder = Response::builder() + .status(status) + .header(header::CONTENT_TYPE, "application/octet-stream") + .header(header::ACCEPT_RANGES, "bytes") + .header(header::CONTENT_LENGTH, len); + if partial { + builder = builder.header(header::CONTENT_RANGE, format!("bytes {start}-{end}/{total}")); + } + Ok(builder.body(body).unwrap()) +} + +async fn stream_byte_range( + path: &std::path::Path, + offset: u64, + length: u64, +) -> anyhow::Result { + let mut file = tokio::fs::File::open(path).await?; + file.seek(std::io::SeekFrom::Start(offset)).await?; + let reader = file.take(length); + let stream = tokio_util::io::ReaderStream::new(reader); + let body = Body::from_stream(stream); + Ok(Response::builder() + .status(StatusCode::OK) + .header(header::CONTENT_TYPE, "application/octet-stream") + .header(header::CONTENT_LENGTH, length) + .body(body) + .unwrap()) +} + +fn parse_range(h: Option<&HeaderValue>, total: u64) -> (u64, u64, bool) { + let Some(h) = h else { return (0, total.saturating_sub(1), false); }; + let Ok(s) = h.to_str() else { return (0, total.saturating_sub(1), false); }; + let Some(spec) = s.strip_prefix("bytes=") else { return (0, total.saturating_sub(1), false); }; + let spec = spec.split(',').next().unwrap_or("").trim(); + if let Some(suffix) = spec.strip_prefix('-') { + if let Ok(n) = suffix.parse::() { + let n = n.min(total); + return (total.saturating_sub(n), total.saturating_sub(1), true); + } + } + let mut parts = spec.splitn(2, '-'); + let start = parts.next().and_then(|s| s.parse::().ok()).unwrap_or(0); + let end = parts.next().and_then(|s| s.parse::().ok()).unwrap_or(total.saturating_sub(1)); + (start, end.min(total.saturating_sub(1)), true) +} + +// ─── ISO upload / list / delete ─────────────────────────────────────────── + +async fn api_list_isos(State(state): State) -> Json> { + Json(state.iso_store.list()) +} + +async fn api_delete_iso( + State(state): State, + AxumPath(id): AxumPath, +) -> StatusCode { + match state.iso_store.delete(&id).await { + Ok(()) => StatusCode::NO_CONTENT, + Err(_) => StatusCode::INTERNAL_SERVER_ERROR, + } +} + +async fn api_upload_iso( + State(state): State, + mut multipart: Multipart, +) -> Response { + while let Ok(Some(mut field)) = multipart.next_field().await { + if field.name() != Some("file") { continue; } + let filename = field.file_name().unwrap_or("uploaded.iso").to_string(); + if !filename.to_ascii_lowercase().ends_with(".iso") { + return (StatusCode::BAD_REQUEST, "only .iso uploads accepted").into_response(); + } + let mut handle = match state.iso_store.begin_upload(&filename).await { + Ok(h) => h, + Err(e) => return (StatusCode::CONFLICT, format!("{e}")).into_response(), + }; + while let Ok(Some(chunk)) = field.chunk().await { + if let Err(e) = handle.write_chunk(&chunk).await { + let _ = handle.abort().await; + return (StatusCode::INTERNAL_SERVER_ERROR, format!("{e}")).into_response(); + } + } + let meta = match handle.finish(&state.iso_store).await { + Ok(m) => m, + Err(e) => return (StatusCode::INTERNAL_SERVER_ERROR, format!("{e}")).into_response(), + }; + return (StatusCode::CREATED, Json(meta)).into_response(); + } + (StatusCode::BAD_REQUEST, "no 'file' part").into_response() +} + +// ─── health / readiness ─────────────────────────────────────────────────── + +async fn healthz() -> Response { + // Simple liveness — HTTP task is responsive. Does not touch storage or + // other subsystems so we never fail for downstream reasons. + ([(header::CONTENT_TYPE, HeaderValue::from_static("text/plain"))], "ok\n").into_response() +} + +async fn readyz(State(state): State) -> Response { + // Readiness — can we actually serve clients? + // 1. At least one iPXE binary must be bundled (without one, TFTP 404s + // and no client boots). + // 2. The ISO directory must exist and be readable. + let assets = pxeforge_ipxe_assets::list_assets(); + let mut problems: Vec<&str> = Vec::new(); + if assets.is_empty() { + problems.push("no iPXE binaries bundled (run scripts/fetch-ipxe.sh before building)"); + } + let iso_dir_ok = state.iso_store.list_ok(); + if !iso_dir_ok { + problems.push("iso directory not readable"); + } + if problems.is_empty() { + ([(header::CONTENT_TYPE, HeaderValue::from_static("text/plain"))], "ready\n").into_response() + } else { + let body = format!("not ready:\n- {}\n", problems.join("\n- ")); + (StatusCode::SERVICE_UNAVAILABLE, body).into_response() + } +} + +// ─── clients + status + settings ────────────────────────────────────────── + +async fn api_list_clients(State(state): State) -> Json { + Json(json!({ "clients": state.clients.list() })) +} + +async fn api_status(State(state): State) -> Json { + let smb = state.smb.as_ref().map(|s| s.snapshot()); + let nfs = state.nfs.list(); + let nfs_active = nfs.iter().filter(|m| m.mounted).count(); + let isos = state.iso_store.list(); + let gates = state.gates.list(); + // Phase 4: dashboard tracks "imaging" as gates with an assignment + // already issued — they're the ones actively chaining a boot script. + let imaging = gates.iter().filter(|g| g.assigned_target.is_some()).count(); + let waiting = gates.len() - imaging; + let now = time::OffsetDateTime::now_utc(); + let uptime_secs = (now - state.started_at).whole_seconds().max(0); + Json(json!({ + "version": env!("CARGO_PKG_VERSION"), + "public_base_url": state.public_base_url, + "iso_count": isos.len(), + "client_count": state.clients.list().len(), + "gate_count": gates.len(), + "imaging_count": imaging, + "waiting_count": waiting, + "ipxe_assets": pxeforge_ipxe_assets::list_assets(), + "settings": state.settings.snapshot(), + "smb": smb, + "nfs_count": nfs.len(), + "nfs_active": nfs_active, + "uptime_secs": uptime_secs, + "started_at": state.started_at, + "nic_name": state.nic_name, + "subnet_mask": state.subnet_mask, + "gateway": state.gateway, + })) +} + +async fn api_get_settings(State(state): State) -> Json { + Json(state.settings.snapshot()) +} + +async fn api_put_settings( + State(state): State, + Json(mut new): Json, +) -> Response { + // Guardrail: Windows boot requires the wimboot shim to be bundled. + // Without it, clients chain a non-existent /ipxe/wimboot and stall. + if new.windows_enabled { + let assets = pxeforge_ipxe_assets::list_assets(); + if !assets.iter().any(|n| n == "wimboot") { + return ( + StatusCode::BAD_REQUEST, + "cannot enable Windows: 'wimboot' binary is not bundled. \ + Place a signed wimboot build at assets/ipxe/wimboot and rebuild \ + the container. See docs/architecture.md for details.", + ).into_response(); + } + } + new.smb_host_override = new.smb_host_override.trim().to_string(); + + // Detect whether this PUT changes the Windows toggle, so we only + // restart smbd when it actually flipped. + let was_enabled = state.settings.snapshot().windows_enabled; + let want_enabled = new.windows_enabled; + state.settings.replace(new); + + if let Some(smb) = &state.smb { + match (was_enabled, want_enabled) { + (false, true) => { let _ = smb.start(); } + (true, false) => { smb.stop(); } + (true, true) => { let _ = smb.reconcile(); } + (false, false) => {} + } + } + StatusCode::NO_CONTENT.into_response() +} + +// ─── Gated Deployment API ───────────────────────────────────────────────── + +async fn api_list_gates(State(state): State) -> Json { + Json(json!({ + "gates": state.gates.list(), + "count": state.gates.list().len(), + })) +} + +#[derive(Debug, Deserialize)] +struct GateJoinParams { + /// Client MAC from iPXE's `${mac}` variable. iPXE substitutes before + /// the HTTP request so we receive a plain colon-separated MAC. + mac: Option, +} + +/// Called by iPXE via `chain --replace`. We respond with a tiny iPXE +/// script that hard-loops on `/api/gate/poll/`. iPXE keeps fetching +/// until poll returns an actual boot script. +async fn api_gate_join( + State(state): State, + Query(p): Query, + headers: HeaderMap, +) -> Response { + let mac = p.mac.unwrap_or_else(|| "unknown".to_string()); + let ip = headers + .get("x-forwarded-for") + .and_then(|h| h.to_str().ok()) + .and_then(|s| s.split(',').next()) + .and_then(|s| s.trim().parse().ok()); + + let gate = state.gates.join(&mac, ip, None); + state.clients.record( + &mac, ip, None, + ClientEvent::HttpScriptFetch { target: "gate-join".into() }, + ); + + let base = &state.public_base_url; + // ASCII only - some iPXE builds on firmware consoles mangle non-ASCII. + let script = format!( + "#!ipxe\n\ + echo\n\ + echo ==========================================\n\ + echo Gated Deployment - Gate Position {}\n\ + echo Waiting for operator to assign an image\n\ + echo (Ctrl-B returns to the iPXE shell)\n\ + echo ==========================================\n\ + chain {base}/api/gate/poll/{}\n", + gate.position, gate.id + ); + text_plain(script) +} + +/// Long-poll endpoint. Waits up to 25s for an assignment; if none, returns +/// a script that loops back to itself. 25s keeps us well inside typical +/// HTTP idle timeouts for iPXE and intermediaries. +async fn api_gate_poll( + State(state): State, + AxumPath(gate_id): AxumPath, +) -> Response { + let Some(notify) = state.gates.notifier(&gate_id) else { + // Gate was released; send client back to the main menu. + let base = &state.public_base_url; + return text_plain(format!("#!ipxe\nchain {base}/boot.ipxe\n")); + }; + + // Wait for an assignment or timeout. + let _ = tokio::time::timeout(Duration::from_secs(25), notify.notified()).await; + + let snap = state.gates.touch(&gate_id); + let base = &state.public_base_url; + match snap { + // Bind `target` directly so we can't observe an Option::None between + // the guard and the unwrap (the old code had a race with concurrent + // `release`). We also do NOT release the gate here — the web UI + // operator releases it explicitly, which keeps a record of "this + // machine was assigned image X" visible until the client is known + // to have started. Clients that retry on transient network errors + // still get a valid boot script instead of falling back to the + // menu. + Some(g) if g.assigned_target.is_some() => { + let target = g.assigned_target.clone().unwrap_or_default(); + tracing::info!( + target: "pxeforge::gate", + gate_id=%gate_id, mac=%g.mac, target=%target, + "gate assignment delivered" + ); + text_plain(format!( + "#!ipxe\n\ + echo Gate assignment received: {target}\n\ + chain {base}/boot/{target}.ipxe || chain {base}/api/gate/poll/{gate_id}\n" + )) + } + Some(g) => { + // No assignment yet - loop and re-poll. Repaint position so the + // UI count stays accurate if other gates were released meanwhile. + text_plain(format!( + "#!ipxe\n\ + echo Gate Position {} - still waiting\n\ + chain {base}/api/gate/poll/{gate_id}\n", + g.position + )) + } + None => text_plain(format!("#!ipxe\nchain {base}/boot.ipxe\n")), + } +} + +#[derive(Debug, Deserialize)] +struct GateAssignBody { + /// Boot entry id (from `BootEntry::id`). Same one used in + /// `/boot/.ipxe`. + target: String, + /// Gate ids to assign. Empty = assign to all currently queued gates. + gate_ids: Vec, +} + +async fn api_gate_assign( + State(state): State, + Json(body): Json, +) -> Json { + let ids = if body.gate_ids.is_empty() { + state.gates.list().into_iter().map(|g| g.id).collect::>() + } else { + body.gate_ids + }; + // Guard: target must exist as a BootEntry id. + let found = state.iso_store.list().into_iter().any(|i| { + i.boot_entries.iter().any(|e| e.id == body.target) + }); + if !found { + return Json(json!({ "ok": false, "error": "unknown target" })); + } + let n = state.gates.assign(&ids, &body.target); + Json(json!({ "ok": true, "assigned": n, "target": body.target })) +} + +async fn api_gate_release( + State(state): State, + AxumPath(gate_id): AxumPath, +) -> StatusCode { + match state.gates.release(&gate_id) { + Some(_) => StatusCode::NO_CONTENT, + None => StatusCode::NOT_FOUND, + } +} + +// ─── NFS share API ───────────────────────────────────────────────────────── + +async fn api_nfs_list(State(state): State) -> Json { + Json(json!({ "mounts": state.nfs.list() })) +} + +async fn api_nfs_add( + State(state): State, + Json(req): Json, +) -> Response { + match state.nfs.add(req).await { + Ok(m) => (StatusCode::CREATED, Json(m)).into_response(), + // Anything from the manager surfaces as a user-fixable validation + // error — bad host, kernel without NFS support, missing + // `mount.nfs`, dead server. We pass the message through verbatim + // so the UI can show it to the operator. + Err(e) => (StatusCode::BAD_REQUEST, format!("{e}")).into_response(), + } +} + +async fn api_nfs_remove( + State(state): State, + AxumPath(id): AxumPath, +) -> Response { + match state.nfs.remove(&id).await { + Ok(()) => StatusCode::NO_CONTENT.into_response(), + Err(e) => (StatusCode::INTERNAL_SERVER_ERROR, format!("{e}")).into_response(), + } +} + +async fn api_nfs_scan( + State(state): State, + AxumPath(id): AxumPath, +) -> Response { + match state.nfs.rescan(&id).await { + Ok(n) => Json(json!({ "ok": true, "iso_count": n })).into_response(), + Err(e) => (StatusCode::BAD_REQUEST, format!("{e}")).into_response(), + } +} + +// ─── Network info API ────────────────────────────────────────────────────── + +async fn api_network(State(state): State) -> Json { + Json(json!({ + "server_ip": state.public_base_url + .strip_prefix("http://") + .unwrap_or(&state.public_base_url), + "nic_name": state.nic_name, + "subnet_mask": state.subnet_mask, + "gateway": state.gateway, + "dns_server": state.settings.snapshot().dns_server, + "public_base_url": state.public_base_url, + })) +} + +#[derive(Debug, Deserialize)] +struct NetworkPut { + /// Operators can set or clear an informational DNS hint. Server IP / + /// NIC / mask / gateway are auto-detected and not editable from the + /// UI — changing them in the wrong direction would silently break + /// PXE for every client. + dns_server: String, +} + +async fn api_network_put( + State(state): State, + Json(body): Json, +) -> StatusCode { + let mut s = state.settings.snapshot(); + s.dns_server = body.dns_server.trim().to_string(); + state.settings.replace(s); + StatusCode::NO_CONTENT +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn range_full() { + let (s, e, p) = parse_range(None, 1000); + assert_eq!((s, e, p), (0, 999, false)); + } + #[test] + fn range_open_ended() { + let h = HeaderValue::from_static("bytes=500-"); + let (s, e, p) = parse_range(Some(&h), 1000); + assert_eq!((s, e, p), (500, 999, true)); + } + #[test] + fn range_suffix() { + let h = HeaderValue::from_static("bytes=-100"); + let (s, e, p) = parse_range(Some(&h), 1000); + assert_eq!((s, e, p), (900, 999, true)); + } + #[test] + fn range_explicit() { + let h = HeaderValue::from_static("bytes=10-99"); + let (s, e, p) = parse_range(Some(&h), 1000); + assert_eq!((s, e, p), (10, 99, true)); + } +} diff --git a/crates/http-api/src/ipxe_script.rs b/crates/http-api/src/ipxe_script.rs new file mode 100644 index 0000000..29286ca --- /dev/null +++ b/crates/http-api/src/ipxe_script.rs @@ -0,0 +1,327 @@ +//! iPXE script generator. +//! +//! ## Menu hierarchy (per Phase 2 spec) +//! +//! ```text +//! Top level: +//! Default +//! > Boot from Local HDD +//! Installers +//! > Linux Installers -> submenu of Linux ISOs +//! > Windows Installers -> submenu of Windows ISOs (gated by Settings::windows_enabled) +//! Tools +//! > Utilities -> memtest, etc. (embedded assets only) +//! > PXEForge Shell -> drop to iPXE shell with branded prompt +//! > Network Card Info -> ifstat / config / route dump +//! Gated Deployment -> join the gate queue +//! ``` +//! +//! ## iPXE is entirely backend — users do not see or write iPXE +//! +//! All user-facing knobs live in `Settings`. Script generation translates +//! those knobs into iPXE primitives (chain, menu, item, choose, etc.). +//! There is intentionally no UI path to upload a custom `.ipxe` script. + +use pxeforge_core::{Settings, TimeoutAction}; +use pxeforge_iso_store::{BootEntry, BootKind, IsoMeta}; +use pxeforge_iso_store::introspect::DistroFamily; +use std::fmt::Write as _; + +/// Top-level PXEForge boot menu. Serialized identically for BIOS and UEFI +/// clients because iPXE normalises the menu primitives across firmwares. +#[must_use] +pub fn render_menu(isos: &[IsoMeta], settings: &Settings, base_url: &str) -> String { + let mut s = String::new(); + let base = base_url.trim_end_matches('/'); + let timeout_ms = settings.boot_menu_timeout_secs.saturating_mul(1000); + let default_item = match settings.timeout_action { + TimeoutAction::LocalHdd => "local", + TimeoutAction::GatedDeployment => "gate", + // Stay -> iPXE's `--timeout 0` is "no timeout". Pick any default + // label; the client waits for keypress. + TimeoutAction::Stay => "local", + }; + + let _ = writeln!(s, "#!ipxe"); + let _ = writeln!(s, "# PXEForge top-level menu - auto-generated, do not edit"); + let _ = writeln!(s, "set base-url {base}"); + let _ = writeln!(s, "set esc:hex 1b"); + let _ = writeln!(s, "set cls ${{esc:string}}[2J"); + let _ = writeln!(s, ":menu"); + let _ = writeln!(s, "menu PXEForge - network boot menu"); + let _ = writeln!(s, "item --gap -- ------------------------- Default -------------------------"); + let _ = writeln!(s, "item local Boot from Local HDD"); + let _ = writeln!(s, "item --gap -- ----------------------- Installers -----------------------"); + if has_family(isos, is_linux_family) { + let _ = writeln!(s, "item linux Linux Installers >"); + } else { + let _ = writeln!(s, "item --gap -- (no Linux ISOs uploaded)"); + } + if settings.windows_enabled && has_family(isos, is_windows_family) { + let _ = writeln!(s, "item windows Windows Installers >"); + } else if settings.windows_enabled { + let _ = writeln!(s, "item --gap -- (no Windows ISOs uploaded)"); + } else { + let _ = writeln!(s, "item --gap -- (Windows support disabled in Settings)"); + } + let _ = writeln!(s, "item --gap -- -------------------------- Tools --------------------------"); + let _ = writeln!(s, "item tools Tools >"); + let _ = writeln!(s, "item --gap -- ---------------------- Gated Deployment ---------------------"); + let _ = writeln!(s, "item gate Gated Deployment (join queue)"); + let _ = writeln!(s, "item --gap"); + let _ = writeln!(s, "item --key x exit Exit iPXE"); + + if matches!(settings.timeout_action, TimeoutAction::Stay) { + let _ = writeln!(s, "choose --default {default_item} target || goto menu"); + } else { + let _ = writeln!(s, "choose --default {default_item} --timeout {timeout_ms} target || goto menu"); + } + + // iPXE's `||` is strict about what follows. Each test uses `goto menu` + // as the fallthrough target so the parser never sees a bare `||` with + // trailing whitespace — some iPXE builds reject that. + let _ = writeln!(s, "iseq ${{target}} local && chain {base}/boot/_local.ipxe || goto menu"); + let _ = writeln!(s, "iseq ${{target}} linux && chain {base}/boot/_linux_menu.ipxe || goto menu"); + let _ = writeln!(s, "iseq ${{target}} windows && chain {base}/boot/_windows_menu.ipxe || goto menu"); + let _ = writeln!(s, "iseq ${{target}} tools && chain {base}/boot/_tools_menu.ipxe || goto menu"); + let _ = writeln!(s, "iseq ${{target}} gate && chain {base}/boot/_gate.ipxe || goto menu"); + let _ = writeln!(s, "iseq ${{target}} exit && exit || goto menu"); + let _ = writeln!(s, "goto menu"); + s +} + +/// Per-family submenu (Linux or Windows). Each item shows the ISO size +/// in MiB, iVentoy-style (`[ 4376 MB] ubuntu-22.04-desktop-amd64`). +#[must_use] +pub fn render_family_menu(isos: &[IsoMeta], base_url: &str, is_windows: bool) -> String { + let base = base_url.trim_end_matches('/'); + let title = if is_windows { "Windows Installers" } else { "Linux Installers" }; + let label = if is_windows { "windows" } else { "linux" }; + let mut s = String::new(); + let _ = writeln!(s, "#!ipxe"); + let _ = writeln!(s, "set base-url {base}"); + let _ = writeln!(s, ":menu"); + let _ = writeln!(s, "menu PXEForge - {title}"); + let filter: fn(DistroFamily) -> bool = + if is_windows { is_windows_family } else { is_linux_family }; + let mut count = 0; + for iso in isos { + if !filter(iso.introspection.family) { continue; } + for entry in &iso.boot_entries { + let size_label = fmt_size_mib(iso.size_bytes); + let key = hotkey_for_index(count); + let _ = writeln!( + s, "item {}{} [{:>6}] {}", + key, + entry.id, + size_label, + escape_label(&entry.title), + ); + count += 1; + } + } + if count == 0 { + let _ = writeln!(s, "item --gap -- (no {label} images uploaded yet)"); + } + let _ = writeln!(s, "item --gap"); + let _ = writeln!(s, "item --key b back < Back to main menu"); + let _ = writeln!(s, "choose target || goto menu"); + let _ = writeln!(s, "iseq ${{target}} back && chain {base}/boot.ipxe || goto menu"); + let _ = writeln!(s, "chain {base}/boot/${{target}}.ipxe || goto menu"); + s +} + +/// Format a byte count as `NNNN MB` (iVentoy-style — MB not MiB, to match +/// operator expectations from the original tool). +fn fmt_size_mib(bytes: u64) -> String { + let mib = bytes / (1024 * 1024); + format!("{} MB", mib) +} + +/// Assign `--key N ` hotkeys 1..9, then nothing for positions >=9. +/// iPXE's menu needs the --key prefix as a separate token before the id. +fn hotkey_for_index(i: usize) -> String { + if i < 9 { + format!("--key {} ", i + 1) + } else { + String::new() + } +} + +/// Tools submenu — Utilities, Shell, NIC Info, Reboot, Exit to firmware. +#[must_use] +pub fn render_tools_menu(base_url: &str) -> String { + let base = base_url.trim_end_matches('/'); + let mut s = String::new(); + let _ = writeln!(s, "#!ipxe"); + let _ = writeln!(s, "set base-url {base}"); + let _ = writeln!(s, ":menu"); + let _ = writeln!(s, "menu PXEForge - Tools"); + let _ = writeln!(s, "item --key u util Utilities (memtest, ...)"); + let _ = writeln!(s, "item --key s shell PXEForge Shell"); + let _ = writeln!(s, "item --key n nic Network Card Info"); + let _ = writeln!(s, "item --gap"); + let _ = writeln!(s, "item --key r reboot Reboot Computer"); + let _ = writeln!(s, "item --key e firmware Exit and continue BIOS boot"); + let _ = writeln!(s, "item --gap"); + let _ = writeln!(s, "item --key b back < Back to main menu"); + let _ = writeln!(s, "choose target || goto menu"); + let _ = writeln!(s, "iseq ${{target}} util && chain {base}/boot/_util.ipxe || goto menu"); + let _ = writeln!(s, "iseq ${{target}} shell && chain {base}/boot/_shell.ipxe || goto menu"); + let _ = writeln!(s, "iseq ${{target}} nic && chain {base}/boot/_nic.ipxe || goto menu"); + let _ = writeln!(s, "iseq ${{target}} reboot && reboot || goto menu"); + let _ = writeln!(s, "iseq ${{target}} firmware && exit 0 || goto menu"); + let _ = writeln!(s, "iseq ${{target}} back && chain {base}/boot.ipxe || goto menu"); + let _ = writeln!(s, "goto menu"); + s +} + +/// "Boot from Local HDD". On BIOS, we sanboot the first local drive; on +/// UEFI we `exit` so the firmware moves to the next boot entry (normally +/// the internal disk). +#[must_use] +pub fn render_local_hdd(base_url: &str) -> String { + let base = base_url.trim_end_matches('/'); + let mut s = String::new(); + let _ = writeln!(s, "#!ipxe"); + let _ = writeln!(s, "# Boot from Local HDD - platform-sensitive"); + let _ = writeln!(s, "iseq ${{platform}} pcbios && sanboot --no-describe --drive 0x80 || "); + let _ = writeln!(s, "# UEFI path: fall through to the firmware's next boot entry"); + let _ = writeln!(s, "exit 0"); + let _ = writeln!(s, "# If the above exit returns, loop back to the main menu"); + let _ = writeln!(s, "chain {base}/boot.ipxe"); + s +} + +/// Utilities submenu. For Phase 2 we bundle memtest86+ as an optional +/// asset (if absent, the item is listed but errors gracefully). No third- +/// party tools are fetched at runtime. +#[must_use] +pub fn render_util(base_url: &str) -> String { + let base = base_url.trim_end_matches('/'); + let mut s = String::new(); + let _ = writeln!(s, "#!ipxe"); + let _ = writeln!(s, ":menu"); + let _ = writeln!(s, "menu PXEForge - Utilities"); + let _ = writeln!(s, "item memtest MemTest86+ (RAM diagnostic)"); + let _ = writeln!(s, "item --gap"); + let _ = writeln!(s, "item back < Back"); + let _ = writeln!(s, "choose target || goto menu"); + let _ = writeln!(s, "iseq ${{target}} memtest && chain {base}/ipxe/memtest.bin || "); + let _ = writeln!(s, "iseq ${{target}} back && chain {base}/boot/_tools_menu.ipxe || "); + let _ = writeln!(s, "goto menu"); + s +} + +/// "PXEForge Shell" — iPXE shell, branded. +#[must_use] +pub fn render_shell(base_url: &str) -> String { + let base = base_url.trim_end_matches('/'); + let mut s = String::new(); + let _ = writeln!(s, "#!ipxe"); + let _ = writeln!(s, "echo =========================================="); + let _ = writeln!(s, "echo PXEForge Shell"); + let _ = writeln!(s, "echo 'exit' returns to the main menu"); + let _ = writeln!(s, "echo =========================================="); + let _ = writeln!(s, "shell"); + let _ = writeln!(s, "chain {base}/boot.ipxe"); + s +} + +/// "Network Card Info" — print ifstat + route + config. +#[must_use] +pub fn render_nic_info(base_url: &str) -> String { + let base = base_url.trim_end_matches('/'); + let mut s = String::new(); + let _ = writeln!(s, "#!ipxe"); + let _ = writeln!(s, "echo =========================================="); + let _ = writeln!(s, "echo Network Card Info"); + let _ = writeln!(s, "echo =========================================="); + let _ = writeln!(s, "ifstat"); + let _ = writeln!(s, "echo"); + let _ = writeln!(s, "route"); + let _ = writeln!(s, "echo"); + let _ = writeln!(s, "echo 'Press any key to return to menu'"); + let _ = writeln!(s, "prompt --timeout 30000"); + let _ = writeln!(s, "chain {base}/boot.ipxe"); + s +} + +/// Gated Deployment entry point. Joins the queue, then enters a long-poll +/// loop (iPXE repeats the chain on 3xx redirects / HTTP errors until a +/// real script comes back). +#[must_use] +pub fn render_gate_entry(base_url: &str) -> String { + let base = base_url.trim_end_matches('/'); + let mut s = String::new(); + let _ = writeln!(s, "#!ipxe"); + let _ = writeln!(s, "# Gated Deployment - join the queue and wait for operator"); + let _ = writeln!(s, "echo Joining gate queue..."); + // imgfetch writes the body to a file in iPXE's transient FS; we read + // the gate id out of the Location-style header by asking the server + // to put it in the response body as a single token. + let _ = writeln!(s, "chain --replace {base}/api/gate/join?mac=${{mac}}"); + s +} + +/// Per-entry boot script (same as Phase 1, with extra_kernel_args appended). +#[must_use] +pub fn render_entry(entry: &BootEntry, settings: &Settings, base_url: &str) -> String { + let mut s = String::new(); + let base = base_url.trim_end_matches('/'); + let _ = writeln!(s, "#!ipxe"); + let _ = writeln!(s, "set base-url {base}"); + match &entry.kind { + BootKind::LinuxKernel { kernel_url, initrd_urls, args } => { + let mut cmdline = args.cmdline.replace("${base-url}", base); + if !settings.extra_kernel_args.trim().is_empty() { + cmdline.push(' '); + cmdline.push_str(settings.extra_kernel_args.trim()); + } + let _ = writeln!(s, "kernel {base}/{kernel_url} {cmdline}"); + for u in initrd_urls { + let _ = writeln!(s, "initrd {base}/{u}"); + } + let _ = writeln!(s, "boot || goto failed"); + } + BootKind::Wimboot { wimboot_url, files } => { + let _ = writeln!(s, "kernel {base}/{wimboot_url}"); + for (tag, url) in files { + let _ = writeln!(s, "initrd --name {tag} {base}/{url} {tag}"); + } + let _ = writeln!(s, "boot || goto failed"); + } + BootKind::SanBootIso { iso_url } => { + let _ = writeln!(s, "sanboot --no-describe {base}/{iso_url} || goto failed"); + } + } + let _ = writeln!(s, ":failed"); + let _ = writeln!(s, "echo Boot failed - returning to menu in 5s"); + let _ = writeln!(s, "sleep 5"); + let _ = writeln!(s, "chain {base}/boot.ipxe"); + s +} + +fn is_linux_family(f: DistroFamily) -> bool { + matches!( + f, + DistroFamily::DebianUbuntu + | DistroFamily::RhelFedora + | DistroFamily::OpenSuse + | DistroFamily::Arch + | DistroFamily::Alpine + | DistroFamily::Unknown + ) +} + +fn is_windows_family(f: DistroFamily) -> bool { + matches!(f, DistroFamily::WindowsPe) +} + +fn has_family(isos: &[IsoMeta], pred: fn(DistroFamily) -> bool) -> bool { + isos.iter().any(|i| pred(i.introspection.family)) +} + +fn escape_label(s: &str) -> String { + s.chars().map(|c| match c { '\n' | '\r' => ' ', c => c }).collect() +} diff --git a/crates/http-api/src/iso_fs.rs b/crates/http-api/src/iso_fs.rs new file mode 100644 index 0000000..0ddaf76 --- /dev/null +++ b/crates/http-api/src/iso_fs.rs @@ -0,0 +1,112 @@ +//! Minimal read-only ISO9660 lookup. Given an uploaded ISO file and an +//! in-ISO path (e.g. `/casper/vmlinuz`), locate the file and return a +//! `(start_byte, length_bytes)` pair so the HTTP handler can stream just +//! that range from the on-disk ISO without full extraction. +//! +//! We only implement what we need: the Primary Volume Descriptor and Rock +//! Ridge / Joliet extensions are ignored. Paths are matched case-insensitive +//! against plain ISO9660 filenames (uppercase, `;1` version suffix stripped). +//! This is sufficient for the kernel/initrd and wimboot files we serve; +//! if a requested path isn't found, the handler returns 404 and the user +//! can still download the whole ISO via `/iso/.iso`. + +use std::io::{Read, Seek, SeekFrom}; +use std::path::Path; + +const SECTOR: u64 = 2048; + +#[derive(Debug, Clone)] +pub struct FileLocation { + pub offset: u64, + pub length: u64, +} + +/// Look up `in_iso_path` (leading slash optional, case-insensitive) in the +/// ISO at `iso_path`. Returns None on any parsing or IO failure. +pub fn lookup(iso_path: &Path, in_iso_path: &str) -> Option { + let mut f = std::fs::File::open(iso_path).ok()?; + let root = read_root_directory(&mut f)?; + let components: Vec<&str> = in_iso_path + .trim_start_matches('/') + .split('/') + .filter(|c| !c.is_empty()) + .collect(); + if components.is_empty() { return None; } + walk(&mut f, root.offset, root.length, &components) +} + +fn read_root_directory(f: &mut std::fs::File) -> Option { + // Primary Volume Descriptor at LBA 16. + let mut pvd = [0u8; 2048]; + f.seek(SeekFrom::Start(16 * SECTOR)).ok()?; + f.read_exact(&mut pvd).ok()?; + if pvd[0] != 0x01 || &pvd[1..6] != b"CD001" { return None; } + // Root directory record is at offset 156, length 34. + let rec = &pvd[156..156 + 34]; + let (offset, length) = parse_dir_record_ext(rec)?; + Some(FileLocation { offset: offset * SECTOR, length }) +} + +/// Walk components down the directory tree starting at `dir_offset`. +fn walk( + f: &mut std::fs::File, + dir_offset: u64, + dir_len: u64, + components: &[&str], +) -> Option { + let mut dir = vec![0u8; dir_len as usize]; + f.seek(SeekFrom::Start(dir_offset)).ok()?; + f.read_exact(&mut dir).ok()?; + + let target = components[0]; + let rest = &components[1..]; + let mut i = 0; + while i < dir.len() { + let len = dir[i] as usize; + if len == 0 { + // Padding to sector boundary. + let next = (i / SECTOR as usize + 1) * SECTOR as usize; + if next <= i { break; } + i = next; + continue; + } + if i + len > dir.len() { break; } + let rec = &dir[i..i + len]; + let name = dir_record_name(rec); + let is_dir = (rec.get(25).copied().unwrap_or(0) & 0x02) != 0; + // Skip "." (0x00) and ".." (0x01) pseudo-entries. + let is_pseudo = matches!(rec.get(32).copied(), Some(1)) && rec.get(33).copied() == Some(0x00) + || matches!(rec.get(32).copied(), Some(1)) && rec.get(33).copied() == Some(0x01); + if !is_pseudo && name.eq_ignore_ascii_case(target) { + let (child_off, child_len) = parse_dir_record_ext(rec)?; + if rest.is_empty() && !is_dir { + return Some(FileLocation { offset: child_off * SECTOR, length: child_len }); + } else if !rest.is_empty() && is_dir { + return walk(f, child_off * SECTOR, child_len, rest); + } + } + i += len; + } + None +} + +/// Extract (extent LBA, data length in bytes) from a directory record. +/// Layout per ISO9660: bytes 2..10 extent LBA (LE+BE duplicate), 10..18 +/// data length (LE+BE duplicate). We trust the little-endian copy. +fn parse_dir_record_ext(rec: &[u8]) -> Option<(u64, u64)> { + if rec.len() < 34 { return None; } + let lba = u32::from_le_bytes(rec[2..6].try_into().ok()?) as u64; + let len = u32::from_le_bytes(rec[10..14].try_into().ok()?) as u64; + Some((lba, len)) +} + +/// Extract the identifier from a directory record, stripping ISO9660's +/// `;1` version suffix. +fn dir_record_name(rec: &[u8]) -> String { + let name_len = *rec.get(32).unwrap_or(&0) as usize; + if name_len == 0 || rec.len() < 33 + name_len { return String::new(); } + let raw = &rec[33..33 + name_len]; + let s = String::from_utf8_lossy(raw).to_string(); + // Strip `;N` version suffix. + if let Some(i) = s.rfind(';') { s[..i].to_string() } else { s } +} diff --git a/crates/http-api/src/lib.rs b/crates/http-api/src/lib.rs new file mode 100644 index 0000000..063a28a --- /dev/null +++ b/crates/http-api/src/lib.rs @@ -0,0 +1,24 @@ +//! HTTP server — single axum app that serves: +//! - `/` the web UI (static assets from `pxeforge-webui`) +//! - `/api/*` JSON API for the web UI +//! - `/boot.ipxe` the generated top-level iPXE boot menu +//! - `/boot/.ipxe` per-entry iPXE scripts (one per boot target) +//! - `/ipxe/` bundled iPXE binaries (for UEFI HTTP boot) +//! - `/iso/.iso` raw ISO file (with Range support) +//! - `/iso//` files inside the ISO (for wimboot WIM fetches +//! and Linux kernel/initrd, without having to +//! re-extract on every request) +//! +//! The `/` handler uses a read-only ISO9660 shim (see `iso_fs`) +//! that lseeks into the ISO on disk — so we never keep extracted copies. +#![forbid(unsafe_code)] + +pub mod app; +pub mod ipxe_script; +pub mod iso_fs; +pub mod log_stream; +pub mod state; +pub mod terminal; + +pub use app::build_router; +pub use state::AppState; diff --git a/crates/http-api/src/log_stream.rs b/crates/http-api/src/log_stream.rs new file mode 100644 index 0000000..e1d347c --- /dev/null +++ b/crates/http-api/src/log_stream.rs @@ -0,0 +1,66 @@ +//! Server-Sent Events stream for the Terminal tab's live log pane. +//! +//! On connection we emit the recent ring buffer (so the UI doesn't open +//! to a blank pane), then forward every new line from the broadcast +//! channel. Slow clients that fall behind get a `lagged` event and +//! resume — better than dropping the connection mid-tail. + +use crate::state::AppState; +use axum::{ + extract::State, + response::sse::{Event, KeepAlive, Sse}, + Json, +}; +use futures::stream::{Stream, StreamExt}; +use pxeforge_core::LogLine; +use serde_json::json; +use std::convert::Infallible; +use std::time::Duration; +use tokio_stream::wrappers::BroadcastStream; + +/// SSE handler. Each `data:` payload is a JSON object matching `LogLine`. +pub async fn stream( + State(state): State, +) -> Sse>> { + // 1. Snapshot the recent buffer first so a fresh UI sees context. + let recent = state.log_bus.recent(); + let recent_stream = futures::stream::iter( + recent + .into_iter() + .map(|l| Ok(Event::default().data(line_json(&l)))), + ); + + // 2. Then live updates. BroadcastStream yields Result; on + // a lagged client we send a synthetic event so the UI can flag it + // rather than silently dropping data. + let rx = state.log_bus.subscribe(); + let live = BroadcastStream::new(rx).map(|res| match res { + Ok(line) => Ok(Event::default().data(line_json(&line))), + Err(tokio_stream::wrappers::errors::BroadcastStreamRecvError::Lagged(n)) => Ok(Event::default() + .event("lagged") + .data(json!({ "skipped": n }).to_string())), + }); + + Sse::new(recent_stream.chain(live)) + .keep_alive(KeepAlive::new().interval(Duration::from_secs(15))) +} + +/// Plain JSON snapshot of the recent buffer, for clients that prefer a +/// pull-based fetch over an SSE subscription. +pub async fn recent(State(state): State) -> Json { + Json(json!({ "lines": state.log_bus.recent() })) +} + +/// Drop the in-memory ring buffer. Live subscribers are unaffected (they +/// keep streaming new lines as they arrive). +pub async fn clear(State(state): State) -> Json { + state.log_bus.clear(); + state + .log_bus + .push("info", "pxeforge::terminal", "log buffer cleared by operator"); + Json(json!({ "ok": true })) +} + +fn line_json(l: &LogLine) -> String { + serde_json::to_string(l).unwrap_or_else(|_| "{}".to_string()) +} diff --git a/crates/http-api/src/state.rs b/crates/http-api/src/state.rs new file mode 100644 index 0000000..a57726b --- /dev/null +++ b/crates/http-api/src/state.rs @@ -0,0 +1,38 @@ +use pxeforge_core::{ClientRegistry, GateQueue, LogBus, SettingsStore}; +use pxeforge_iso_store::{IsoStore, NfsManager, SmbManager}; +use std::sync::Arc; +use time::OffsetDateTime; + +#[derive(Clone)] +pub struct AppState { + pub iso_store: IsoStore, + pub clients: Arc, + pub settings: Arc, + pub gates: Arc, + /// Optional SMB manager. Present when the binary was given a writable + /// `smb_dir` at startup; `None` in pure-Linux-only deployments where + /// Windows support is not wired in. Settings toggle drives start/stop. + pub smb: Option>, + /// NFS share manager. Always present (mounting is opt-in by the + /// operator from the Storage tab); `add()` requires `mount.nfs` to be + /// available in the runtime image. Surfaces errors per-mount rather + /// than failing the global state. + pub nfs: NfsManager, + /// Live log bus consumed by the Terminal tab via SSE. Operator-issued + /// terminal commands also push synthetic lines onto it so the tail + /// shows them inline. + pub log_bus: Arc, + /// Wall-clock instant the server bound — used for the uptime chip. + pub started_at: OffsetDateTime, + /// Base URL advertised to PXE clients (e.g. `http://10.0.0.5`). Used when + /// rendering iPXE scripts so every URL resolves offline. + pub public_base_url: String, + /// Name of the network interface auto-detected at startup (e.g. + /// `enp1s0`). Surfaced read-only on the Network tab. Empty if the + /// interface couldn't be identified. + pub nic_name: String, + /// Subnet mask of the public interface in dotted-quad form. + pub subnet_mask: String, + /// Default gateway IPv4 address. + pub gateway: String, +} diff --git a/crates/http-api/src/terminal.rs b/crates/http-api/src/terminal.rs new file mode 100644 index 0000000..83bf041 --- /dev/null +++ b/crates/http-api/src/terminal.rs @@ -0,0 +1,524 @@ +//! Operator terminal — typed commands over HTTP. +//! +//! The Terminal tab posts a single command line per request. We split it +//! into argv, dispatch to a whitelisted handler, and return plain-text +//! output. The handler also pushes the input line and any output onto +//! the LogBus so commands and their results show up inline in the live +//! tail (Minecraft-server-style). +//! +//! ## Why a whitelist +//! +//! Exposing a real shell would be a remote-code-execution endpoint. We +//! keep the surface tiny and read-mostly; mutations are limited to the +//! same operations the rest of the UI already exposes. + +use crate::state::AppState; +use axum::{extract::State, http::StatusCode, response::IntoResponse, Json}; +use serde::Deserialize; +use serde_json::json; +use std::fmt::Write as _; + +#[derive(Debug, Deserialize)] +pub struct CommandRequest { + /// Raw input as typed by the operator. Empty / all-whitespace is OK + /// (returns the help banner). + pub command: String, +} + +pub async fn run_command( + State(state): State, + Json(req): Json, +) -> impl IntoResponse { + let line = req.command.trim(); + if line.is_empty() { + return (StatusCode::OK, Json(json!({ "output": HELP_TEXT, "ok": true }))); + } + + // Echo the typed command into the live log so the Terminal tab shows + // operator activity in-band with server-emitted log lines. + state.log_bus.push("info", "pxeforge::terminal", format!("> {line}")); + + let argv = shell_split(line); + if argv.is_empty() { + return ( + StatusCode::OK, + Json(json!({ "output": HELP_TEXT, "ok": true })), + ); + } + + let result = dispatch(&state, &argv).await; + let (ok, output) = match result { + Ok(s) => (true, s), + Err(s) => (false, s), + }; + // Mirror command output to the log bus (truncated for noisy commands) + // so reading the live tail tells the same story as scrolling the + // terminal pane. + let mirror = if output.len() > 1024 { + format!("{}\n... ({} bytes truncated)", &output[..1024], output.len() - 1024) + } else { + output.clone() + }; + if ok { + state.log_bus.push("info", "pxeforge::terminal", mirror); + } else { + state.log_bus.push("warn", "pxeforge::terminal", mirror); + } + + (StatusCode::OK, Json(json!({ "output": output, "ok": ok }))) +} + +async fn dispatch(state: &AppState, argv: &[String]) -> Result { + let head = argv[0].as_str(); + let tail = &argv[1..]; + match head { + "help" | "?" => Ok(HELP_TEXT.to_string()), + "version" => Ok(format!("pxeforge {}", env!("CARGO_PKG_VERSION"))), + "uptime" => Ok(uptime_string(state)), + "status" => Ok(status_text(state)), + "isos" | "images" => Ok(isos_text(state)), + "clients" => Ok(clients_text(state)), + "gate" => gate_command(state, tail).await, + "nfs" => nfs_command(state, tail).await, + "smb" => smb_command(state, tail).await, + "log" => log_command(state, tail), + "whoami" => Ok("operator".to_string()), + "echo" => Ok(tail.join(" ")), + "clear" => Ok("\x0c".to_string()), // form feed — frontend clears panel + other => Err(format!( + "unknown command: {other}\ntype 'help' for the list" + )), + } +} + +// ── status / lists ───────────────────────────────────────────────────── + +fn status_text(s: &AppState) -> String { + let isos = s.iso_store.list(); + let clients = s.clients.list(); + let gates = s.gates.list(); + let smb = s.smb.as_ref().map(|m| m.snapshot()); + let nfs = s.nfs.list(); + let nfs_active = nfs.iter().filter(|m| m.mounted).count(); + format!( + "PXEForge {ver}\n\ + base url: {base}\n\ + interface: {nic}\n\ + uptime: {up}\n\ + isos: {n_isos} (local: {n_local}, nfs: {n_nfs})\n\ + clients: {n_clients}\n\ + gates: {n_gates}\n\ + smb: {smb}\n\ + nfs mounts: {n_total} configured ({n_active} active)\n", + ver = env!("CARGO_PKG_VERSION"), + base = s.public_base_url, + nic = if s.nic_name.is_empty() { "?" } else { s.nic_name.as_str() }, + up = uptime_string(s), + n_isos = isos.len(), + n_local = isos.iter().filter(|i| matches!(i.source, pxeforge_iso_store::IsoSource::Local)).count(), + n_nfs = isos.iter().filter(|i| !matches!(i.source, pxeforge_iso_store::IsoSource::Local)).count(), + n_clients = clients.len(), + n_gates = gates.len(), + smb = smb.map_or_else(|| "(disabled)".into(), |s| format!("{s:?}")), + n_total = nfs.len(), + n_active = nfs_active, + ) +} + +fn isos_text(s: &AppState) -> String { + let isos = s.iso_store.list(); + if isos.is_empty() { + return "(no isos)".into(); + } + let mut out = String::new(); + let _ = writeln!( + out, + "{:<32} {:<10} {:<10} {:<8}", + "ID", "FAMILY", "SIZE", "SOURCE" + ); + for i in isos { + let src = match i.source { + pxeforge_iso_store::IsoSource::Local => "local".to_string(), + pxeforge_iso_store::IsoSource::Nfs { mount_id, .. } => format!("nfs:{mount_id}"), + }; + let _ = writeln!( + out, + "{:<32} {:<10} {:<10} {:<8}", + truncate(&i.id, 32), + format!("{:?}", i.introspection.family), + human_bytes(i.size_bytes), + src, + ); + } + out +} + +fn clients_text(s: &AppState) -> String { + let clients = s.clients.list(); + if clients.is_empty() { + return "(no clients yet)".into(); + } + let mut out = String::new(); + let _ = writeln!( + out, + "{:<19} {:<16} {:<8} {}", + "MAC", "IP", "EVENTS", "LAST SEEN" + ); + for c in clients { + let ip = c.last_ip.map_or_else(|| "-".into(), |i| i.to_string()); + let _ = writeln!( + out, + "{:<19} {:<16} {:<8} {}", + c.mac, + ip, + c.events.len(), + c.last_seen + .format(&time::format_description::well_known::Rfc3339) + .unwrap_or_default() + ); + } + out +} + +// ── gate ─────────────────────────────────────────────────────────────── + +// `async` for symmetry with the other dispatch helpers — gate operations +// are sync today but might grow to await on a database in a future phase. +#[allow(clippy::unused_async)] +async fn gate_command(s: &AppState, args: &[String]) -> Result { + match args.first().map(String::as_str) { + None | Some("list") => { + let gs = s.gates.list(); + if gs.is_empty() { + return Ok("(no gates)".into()); + } + let mut out = String::new(); + for g in gs { + let _ = writeln!( + out, + "#{:<3} {:<19} {:<16} target={}", + g.position, + g.mac, + g.id, + g.assigned_target.unwrap_or_else(|| "-".into()) + ); + } + Ok(out) + } + Some("assign-all") => { + let target = args.get(1).ok_or_else(|| { + "usage: gate assign-all ".to_string() + })?; + let found = s + .iso_store + .list() + .into_iter() + .any(|i| i.boot_entries.iter().any(|e| &e.id == target)); + if !found { + return Err(format!("no such boot entry: {target}")); + } + let ids: Vec<_> = s.gates.list().into_iter().map(|g| g.id).collect(); + let n = s.gates.assign(&ids, target); + Ok(format!("assigned {n} gates -> {target}")) + } + Some("assign") => { + let gate_id = args + .get(1) + .ok_or_else(|| "usage: gate assign ".to_string())?; + let target = args + .get(2) + .ok_or_else(|| "usage: gate assign ".to_string())?; + let n = s.gates.assign(std::slice::from_ref(gate_id), target); + if n == 0 { + return Err(format!("no such gate: {gate_id}")); + } + Ok(format!("assigned 1 gate -> {target}")) + } + Some("release") => { + let gate_id = args.get(1).ok_or_else(|| "usage: gate release ".to_string())?; + match s.gates.release(gate_id) { + Some(_) => Ok(format!("released {gate_id}")), + None => Err(format!("no such gate: {gate_id}")), + } + } + Some(other) => Err(format!( + "unknown gate subcommand: {other}\ntry: gate [list|assign-all|assign|release]" + )), + } +} + +// ── nfs ──────────────────────────────────────────────────────────────── + +async fn nfs_command(s: &AppState, args: &[String]) -> Result { + match args.first().map(String::as_str) { + None | Some("list") => { + let mounts = s.nfs.list(); + if mounts.is_empty() { + return Ok("(no NFS mounts configured)".into()); + } + let mut out = String::new(); + let _ = writeln!( + out, + "{:<24} {:<6} {:<7} {:<6} {}", + "ID", "VER", "STATUS", "ISOS", "TARGET" + ); + for m in mounts { + let status = if m.mounted { "ok" } else { "down" }; + let _ = writeln!( + out, + "{:<24} {:<6} {:<7} {:<6} {}:{}", + truncate(&m.id, 24), + match m.version { + pxeforge_iso_store::NfsVersion::V3 => "v3", + pxeforge_iso_store::NfsVersion::V41 => "v4.1", + }, + status, + m.iso_count, + m.server, + m.export, + ); + if let Some(e) = m.last_error { + let _ = writeln!(out, " error: {e}"); + } + } + Ok(out) + } + Some("mount") => { + // nfs mount : [v3|v41] [ro|rw] + let target = args + .get(1) + .ok_or_else(|| "usage: nfs mount : [v3|v41] [ro|rw]".to_string())?; + let (server, export) = target + .split_once(':') + .ok_or_else(|| "target must be 'server:/export'".to_string())?; + let version = match args.get(2).map(String::as_str) { + Some("v3") => pxeforge_iso_store::NfsVersion::V3, + Some("v41") | None => pxeforge_iso_store::NfsVersion::V41, + Some(other) => return Err(format!("unknown nfs version: {other} (expect v3 or v41)")), + }; + let read_only = !matches!(args.get(3).map(String::as_str), Some("rw")); + let req = pxeforge_iso_store::NfsAddRequest { + server: server.to_string(), + export: export.to_string(), + version, + read_only, + }; + match s.nfs.add(req).await { + Ok(m) => Ok(format!("mounted {} ({} isos)", m.id, m.iso_count)), + Err(e) => Err(format!("mount failed: {e}")), + } + } + Some("unmount") => { + let id = args.get(1).ok_or_else(|| "usage: nfs unmount ".to_string())?; + match s.nfs.remove(id).await { + Ok(()) => Ok(format!("unmounted {id}")), + Err(e) => Err(format!("unmount failed: {e}")), + } + } + Some("scan") => { + let id = args.get(1).ok_or_else(|| "usage: nfs scan ".to_string())?; + match s.nfs.rescan(id).await { + Ok(n) => Ok(format!("re-scanned {id}: {n} isos")), + Err(e) => Err(format!("scan failed: {e}")), + } + } + Some(other) => Err(format!( + "unknown nfs subcommand: {other}\ntry: nfs [list|mount|unmount|scan]" + )), + } +} + +// ── smb ──────────────────────────────────────────────────────────────── + +#[allow(clippy::unused_async)] +async fn smb_command(s: &AppState, args: &[String]) -> Result { + let smb = s + .smb + .as_ref() + .ok_or_else(|| "SMB manager not configured (Windows support disabled)".to_string())?; + match args.first().map(String::as_str) { + None | Some("status") => Ok(format!("{:#?}", smb.snapshot())), + Some("start") => { + // start/reconcile return the new SmbState — there's no + // separate Result type. The state itself indicates success + // or failure via its variant. + let st = smb.start(); + Ok(format!("smbd start requested -> {st:?}")) + } + Some("stop") => { + smb.stop(); + Ok("smbd stop requested".into()) + } + Some("reload") => { + let st = smb.reconcile(); + Ok(format!("smbd reload (SIGHUP) sent -> {st:?}")) + } + Some(other) => Err(format!( + "unknown smb subcommand: {other}\ntry: smb [status|start|stop|reload]" + )), + } +} + +// ── log ──────────────────────────────────────────────────────────────── + +fn log_command(s: &AppState, args: &[String]) -> Result { + match args.first().map(String::as_str) { + Some("clear") => { + s.log_bus.clear(); + Ok("log buffer cleared".into()) + } + Some("tail") => { + let n: usize = args + .get(1) + .and_then(|v| v.parse().ok()) + .unwrap_or(20); + let lines = s.log_bus.recent(); + let start = lines.len().saturating_sub(n); + let mut out = String::new(); + for l in &lines[start..] { + let _ = writeln!(out, "{}", l.render()); + } + if out.is_empty() { + Ok("(empty)".into()) + } else { + Ok(out) + } + } + _ => Err("usage: log [clear|tail [n]]".into()), + } +} + +// ── helpers ──────────────────────────────────────────────────────────── + +fn uptime_string(s: &AppState) -> String { + let now = time::OffsetDateTime::now_utc(); + let secs = (now - s.started_at).whole_seconds().max(0); + let h = secs / 3600; + let m = (secs % 3600) / 60; + let s = secs % 60; + format!("{h}h {m}m {s}s") +} + +fn truncate(s: &str, max: usize) -> String { + if s.len() <= max { + s.to_string() + } else { + format!("{}…", &s[..max.saturating_sub(1)]) + } +} + +fn human_bytes(n: u64) -> String { + const U: &[&str] = &["B", "KB", "MB", "GB", "TB"]; + // Loss-of-precision past 2^52 is academic for ISO file sizes — even + // a 4 PiB file still rounds to the right unit. + #[allow(clippy::cast_precision_loss)] + let mut x = n as f64; + let mut i = 0; + while x >= 1024.0 && i < U.len() - 1 { + x /= 1024.0; + i += 1; + } + if i == 0 || x >= 10.0 { + format!("{:.0} {}", x, U[i]) + } else { + format!("{:.1} {}", x, U[i]) + } +} + +/// Tiny shell-like splitter — splits on whitespace, honoring `'…'` and +/// `"…"` quoted segments. We deliberately don't expand `$VAR` or any +/// other shell metacharacters; this is a parser for our own command +/// vocabulary, not a real shell. +pub fn shell_split(input: &str) -> Vec { + let mut out = Vec::new(); + let mut current = String::new(); + let mut in_single = false; + let mut in_double = false; + for ch in input.chars() { + match ch { + '\'' if !in_double => in_single = !in_single, + '"' if !in_single => in_double = !in_double, + c if c.is_whitespace() && !in_single && !in_double => { + if !current.is_empty() { + out.push(std::mem::take(&mut current)); + } + } + c => current.push(c), + } + } + if !current.is_empty() { + out.push(current); + } + out +} + +const HELP_TEXT: &str = "\ +PXEForge terminal — available commands: + + help show this help + version print server version + status high-level server status + uptime time since startup + + isos list registered ISOs + clients list PXE clients seen this session + gate list list gated-deployment queue + gate assign assign one gate to a boot entry + gate assign-all assign every waiting gate + gate release release one gate + + nfs list list NFS mounts + nfs mount : [v3|v41] [ro|rw] add and mount an NFS share + nfs unmount unmount and forget a share + nfs scan re-scan a share for new ISOs + + smb status SMB (Samba) state + smb start | stop | reload control smbd + + log clear drop the in-memory log ring buffer + log tail [n] show the last n buffered lines (default 20) + clear clear the terminal pane + +Tab to autocomplete is not implemented (sorry).\n"; + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn shell_split_basic() { + assert_eq!(shell_split(""), Vec::::new()); + assert_eq!(shell_split("nfs list"), vec!["nfs", "list"]); + assert_eq!( + shell_split("nfs mount 10.0.0.5:/srv v41 ro"), + vec!["nfs", "mount", "10.0.0.5:/srv", "v41", "ro"] + ); + } + + #[test] + fn shell_split_quoted() { + assert_eq!( + shell_split("echo 'hello world' done"), + vec!["echo", "hello world", "done"] + ); + assert_eq!( + shell_split(r#"echo "double quotes" 'and singles'"#), + vec!["echo", "double quotes", "and singles"] + ); + } + + #[test] + fn human_bytes_units() { + assert_eq!(human_bytes(0), "0 B"); + assert_eq!(human_bytes(1023), "1023 B"); + assert_eq!(human_bytes(1024), "1.0 KB"); + assert_eq!(human_bytes(2 * 1024 * 1024), "2.0 MB"); + assert_eq!(human_bytes(5 * 1024u64.pow(3)), "5.0 GB"); + } + + #[test] + fn truncate_keeps_short() { + assert_eq!(truncate("hi", 10), "hi"); + assert_eq!(truncate("longerthanfive", 5), "long…"); + } +} diff --git a/crates/http-api/tests/full_flow.rs b/crates/http-api/tests/full_flow.rs new file mode 100644 index 0000000..dd67e53 --- /dev/null +++ b/crates/http-api/tests/full_flow.rs @@ -0,0 +1,470 @@ +//! End-to-end HTTP integration test. +//! +//! Spins up the real axum router against a temp ISO store + settings store, +//! then walks an imaginary iPXE client through: dashboard status → upload +//! ISO → fetch top-level boot menu → fetch per-entry script → Range-GET the +//! ISO. Also drives the Gated Deployment flow end-to-end: two clients join, +//! operator assigns, both polls return the chain script with retry fallback. +//! +//! This is the closest we can get to "real PXE client" without QEMU; the +//! TFTP leg is separately unit-tested in `crates/tftp`. Between the two, +//! every HTTP endpoint a real client touches is covered by a test. + +use axum::body::Body; +use axum::http::{header, Request, StatusCode}; +use pxeforge_core::{ClientRegistry, GateQueue, LogBus, SettingsStore}; +use pxeforge_http_api::{build_router, AppState}; +use pxeforge_iso_store::{IsoStore, NfsManager}; +use tempfile::tempdir; +use tower::ServiceExt; + +/// Build a tiny valid ISO9660 blob with volume label "ALPINE-TEST" so +/// introspection identifies it as Alpine. +fn fake_alpine_iso() -> Vec { + let mut buf = vec![0u8; 32 * 2048]; + let off = 16 * 2048; + buf[off] = 0x01; + buf[off + 1..off + 6].copy_from_slice(b"CD001"); + buf[off + 6] = 0x01; + let label = b"ALPINE-TEST".to_vec(); + let mut padded = label.clone(); + padded.resize(32, b' '); + buf[off + 40..off + 40 + 32].copy_from_slice(&padded); + let term = 17 * 2048; + buf[term] = 0xFF; + buf[term + 1..term + 6].copy_from_slice(b"CD001"); + buf[term + 6] = 0x01; + buf +} + +fn multipart_iso_body(filename: &str, bytes: &[u8]) -> (String, Vec) { + let boundary = "----PxeForgeTestBoundary1234"; + let mut body = Vec::new(); + body.extend_from_slice(format!("--{boundary}\r\n").as_bytes()); + body.extend_from_slice( + format!( + "Content-Disposition: form-data; name=\"file\"; filename=\"{filename}\"\r\n" + ).as_bytes(), + ); + body.extend_from_slice(b"Content-Type: application/octet-stream\r\n\r\n"); + body.extend_from_slice(bytes); + body.extend_from_slice(format!("\r\n--{boundary}--\r\n").as_bytes()); + let ct = format!("multipart/form-data; boundary={boundary}"); + (ct, body) +} + +async fn get(router: &axum::Router, path: &str) -> (StatusCode, Vec) { + let res = router + .clone() + .oneshot(Request::builder().uri(path).body(Body::empty()).unwrap()) + .await + .unwrap(); + let status = res.status(); + let body = axum::body::to_bytes(res.into_body(), usize::MAX).await.unwrap().to_vec(); + (status, body) +} + +async fn post_json(router: &axum::Router, path: &str, body: &str) -> (StatusCode, Vec) { + let res = router + .clone() + .oneshot( + Request::builder() + .method("POST") + .uri(path) + .header("content-type", "application/json") + .body(Body::from(body.to_owned())) + .unwrap(), + ) + .await + .unwrap(); + let status = res.status(); + let body = axum::body::to_bytes(res.into_body(), usize::MAX).await.unwrap().to_vec(); + (status, body) +} + +async fn build_state() -> (AppState, tempfile::TempDir) { + let dir = tempdir().unwrap(); + let iso_store = IsoStore::new(dir.path().join("isos")); + iso_store.ensure_dirs().await.unwrap(); + let clients = ClientRegistry::new(); + let gates = GateQueue::new(); + let settings = SettingsStore::load_or_default(dir.path()); + let nfs = NfsManager::new(dir.path(), iso_store.clone()); + iso_store.set_nfs_root(nfs.mount_root()); + let log_bus = LogBus::new(64); + let state = AppState { + iso_store, + clients, + gates, + settings, + smb: None, + nfs, + log_bus, + started_at: time::OffsetDateTime::now_utc(), + public_base_url: "http://127.0.0.1".into(), + nic_name: "lo".into(), + subnet_mask: "255.0.0.0".into(), + gateway: "127.0.0.1".into(), + }; + (state, dir) +} + +#[tokio::test] +async fn health_and_ready_endpoints() { + let (state, _dir) = build_state().await; + let app = build_router(state); + let (s, b) = get(&app, "/healthz").await; + assert_eq!(s, StatusCode::OK); + assert_eq!(b, b"ok\n"); + // /readyz should 503 when no iPXE binaries bundled at test time — this + // actually depends on whether CI has fetched them. Accept either. + let (s2, _) = get(&app, "/readyz").await; + assert!( + s2 == StatusCode::OK || s2 == StatusCode::SERVICE_UNAVAILABLE, + "unexpected readyz status: {s2}" + ); +} + +#[tokio::test] +async fn upload_introspects_and_generates_boot_entry() { + let (state, _dir) = build_state().await; + let app = build_router(state.clone()); + + let iso = fake_alpine_iso(); + let (ct, body) = multipart_iso_body("fake-alpine.iso", &iso); + let res = app + .clone() + .oneshot( + Request::builder() + .method("POST") + .uri("/api/isos") + .header("content-type", ct) + .body(Body::from(body)) + .unwrap(), + ) + .await + .unwrap(); + assert_eq!(res.status(), StatusCode::CREATED, "upload failed"); + + // Confirm the ISO shows up in the menu. + let (_, menu) = get(&app, "/boot.ipxe").await; + let menu = String::from_utf8(menu).unwrap(); + assert!(menu.contains("Linux Installers"), "menu missing Linux submenu:\n{menu}"); + + let (_, linux) = get(&app, "/boot/_linux_menu.ipxe").await; + let linux = String::from_utf8(linux).unwrap(); + assert!(linux.contains("fake-alpine-linux"), "linux submenu missing entry:\n{linux}"); + assert!(linux.contains("[ 0 MB]") || linux.contains("[ 0 MB]"), + "size label missing in {linux}"); + + // Per-entry boot script should include kernel + initrd URLs + boot. + let (_, entry) = get(&app, "/boot/fake-alpine-linux.ipxe").await; + let entry = String::from_utf8(entry).unwrap(); + assert!(entry.contains("kernel http://127.0.0.1/iso/fake-alpine/boot/vmlinuz-lts")); + assert!(entry.contains("initrd http://127.0.0.1/iso/fake-alpine/boot/initramfs-lts")); + assert!(entry.contains("boot || goto failed")); +} + +#[tokio::test] +async fn iso_range_request_slices_correctly() { + let (state, _dir) = build_state().await; + let app = build_router(state.clone()); + let iso = fake_alpine_iso(); + let (ct, body) = multipart_iso_body("fake-alpine.iso", &iso); + app.clone() + .oneshot( + Request::builder() + .method("POST").uri("/api/isos") + .header("content-type", ct) + .body(Body::from(body)).unwrap()).await.unwrap(); + + // Range bytes=0x8000-0x8005 should return the PVD signature byte. + let res = app + .clone() + .oneshot( + Request::builder() + .uri("/iso/fake-alpine.iso") + .header(header::RANGE, "bytes=32768-32773") + .body(Body::empty()).unwrap()) + .await.unwrap(); + assert_eq!(res.status(), StatusCode::PARTIAL_CONTENT); + let slice = axum::body::to_bytes(res.into_body(), usize::MAX).await.unwrap(); + assert_eq!(slice[0], 0x01); // PVD type + assert_eq!(&slice[1..6], b"CD001"); +} + +#[tokio::test] +async fn gated_deployment_full_flow() { + let (state, _dir) = build_state().await; + let app = build_router(state.clone()); + + // Upload an ISO so the target exists. + let (ct, body) = multipart_iso_body("fake-alpine.iso", &fake_alpine_iso()); + app.clone() + .oneshot(Request::builder().method("POST").uri("/api/isos") + .header("content-type", ct).body(Body::from(body)).unwrap()) + .await.unwrap(); + + // Two clients join. + let (_, join1) = get(&app, "/api/gate/join?mac=aa:bb:cc:00:00:01").await; + let (_, join2) = get(&app, "/api/gate/join?mac=aa:bb:cc:00:00:02").await; + let s1 = String::from_utf8(join1).unwrap(); + let s2 = String::from_utf8(join2).unwrap(); + assert!(s1.contains("Gate Position 1")); + assert!(s2.contains("Gate Position 2")); + + let gate1_id = s1.lines().find_map(|l| l.strip_prefix("chain http://127.0.0.1/api/gate/poll/")) + .unwrap().to_string(); + let gate2_id = s2.lines().find_map(|l| l.strip_prefix("chain http://127.0.0.1/api/gate/poll/")) + .unwrap().to_string(); + + // Kick off a long-poll for client 1 in the background. Then assign. + let app2 = app.clone(); + let poll_future = tokio::spawn(async move { + let uri = format!("/api/gate/poll/{gate1_id}"); + get(&app2, &uri).await + }); + + // Give the poll a moment to register its notify subscription. + tokio::time::sleep(std::time::Duration::from_millis(50)).await; + + // Operator assigns. + let body = format!(r#"{{"target":"fake-alpine-linux","gate_ids":["{gate2_id}"]}}"#); + let (s, b) = post_json(&app, "/api/gate/assign", &body).await; + assert_eq!(s, StatusCode::OK); + let assign_json = String::from_utf8(b).unwrap(); + assert!(assign_json.contains(r#""assigned":1"#), "assign response: {assign_json}"); + + // Now assign to gate 1 too so the background poll wakes. + let body = format!(r#"{{"target":"fake-alpine-linux","gate_ids":[]}}"#); + post_json(&app, "/api/gate/assign", &body).await; + + let (poll_status, poll_body) = poll_future.await.unwrap(); + assert_eq!(poll_status, StatusCode::OK); + let poll_s = String::from_utf8(poll_body).unwrap(); + assert!( + poll_s.contains("chain http://127.0.0.1/boot/fake-alpine-linux.ipxe"), + "poll response should chain the boot script:\n{poll_s}" + ); + // Retry-on-error fallback must be present. + assert!(poll_s.contains("|| chain http://127.0.0.1/api/gate/poll/"), + "retry fallback missing"); + + // Bad target must be rejected. + let (_, bad) = post_json(&app, "/api/gate/assign", + r#"{"target":"does-not-exist","gate_ids":[]}"#).await; + let bad_s = String::from_utf8(bad).unwrap(); + assert!(bad_s.contains(r#""ok":false"#), "expected rejection: {bad_s}"); +} + +#[tokio::test] +async fn settings_put_persists_across_reads() { + let (state, _dir) = build_state().await; + let app = build_router(state); + let body = serde_json::json!({ + "boot_menu_timeout_secs": 42, + "timeout_action": "local_hdd", + "windows_enabled": false, + "smb_host_override": "", + "extra_kernel_args": "console=ttyS0", + "default_local_hdd": true, + "gate_wait_max_secs": 0 + }).to_string(); + + let res = app + .clone() + .oneshot( + Request::builder() + .method("PUT") + .uri("/api/settings") + .header("content-type", "application/json") + .body(Body::from(body)) + .unwrap()) + .await + .unwrap(); + assert_eq!(res.status(), StatusCode::NO_CONTENT); + + let (_, g) = get(&app, "/api/settings").await; + let got: serde_json::Value = serde_json::from_slice(&g).unwrap(); + assert_eq!(got["boot_menu_timeout_secs"], 42); + assert_eq!(got["timeout_action"], "local_hdd"); + assert_eq!(got["extra_kernel_args"], "console=ttyS0"); + + // And the menu should now use the new timeout. + let (_, menu) = get(&app, "/boot.ipxe").await; + let menu = String::from_utf8(menu).unwrap(); + assert!(menu.contains("--timeout 42000"), + "menu should reflect 42s timeout:\n{menu}"); + assert!(menu.contains("--default local"), + "menu should default to local:\n{menu}"); +} + +#[tokio::test] +async fn reboot_and_firmware_exit_in_tools_menu() { + let (state, _dir) = build_state().await; + let app = build_router(state); + let (_, tools) = get(&app, "/boot/_tools_menu.ipxe").await; + let tools = String::from_utf8(tools).unwrap(); + assert!(tools.contains("Reboot Computer"), + "tools menu missing Reboot item:\n{tools}"); + assert!(tools.contains("Exit and continue BIOS boot"), + "tools menu missing firmware-exit item:\n{tools}"); + assert!(tools.contains("&& reboot"), + "reboot command not wired:\n{tools}"); + assert!(tools.contains("&& exit 0"), + "firmware exit command not wired:\n{tools}"); +} + +#[tokio::test] +async fn ui_assets_served_offline() { + let (state, _dir) = build_state().await; + let app = build_router(state); + + for (path, ct) in [ + ("/", "text/html"), + ("/assets/app.js", "application/javascript"), + ("/assets/app.css", "text/css"), + ("/assets/logo.svg", "image/svg+xml"), + ] { + let res = app + .clone() + .oneshot(Request::builder().uri(path).body(Body::empty()).unwrap()) + .await.unwrap(); + assert_eq!(res.status(), StatusCode::OK, "{path} not 200"); + let got = res.headers() + .get(header::CONTENT_TYPE).unwrap() + .to_str().unwrap(); + assert!(got.starts_with(ct), "{path} ct={got}, expected {ct}"); + } +} + +#[tokio::test] +async fn no_external_urls_in_generated_ipxe() { + // Sanity check that nothing we serve points off-server. + let (state, _dir) = build_state().await; + let app = build_router(state); + for path in ["/boot.ipxe", "/boot/_tools_menu.ipxe", "/boot/_linux_menu.ipxe", + "/boot/_shell.ipxe", "/boot/_nic.ipxe", "/boot/_local.ipxe"] { + let (_, body) = get(&app, path).await; + let s = String::from_utf8(body).unwrap(); + // The only URLs we should emit are relative to our own public_base_url. + for url in ["github.com", "googleapis", "cdn.", "cdnjs", "unpkg", "jsdelivr"] { + assert!(!s.contains(url), "{path} references external host {url}:\n{s}"); + } + // Confirm URLs are all ours. + for line in s.lines() { + if let Some(idx) = line.find("http://") { + let rest = &line[idx..]; + assert!(rest.starts_with("http://127.0.0.1"), + "{path} references non-public-base URL: {line}"); + } + } + } +} + +// ── Phase 4 integration tests ──────────────────────────────────────────── + +#[tokio::test] +async fn nfs_add_with_bad_export_is_rejected() { + // Validation must happen before we shell out to /bin/mount — + // otherwise the operator sees opaque kernel errors instead of a + // clear "your export must start with /" hint. + let (state, _dir) = build_state().await; + let app = build_router(state); + let (s, b) = post_json( + &app, + "/api/nfs", + r#"{"server":"10.0.0.5","export":"isos","version":"v41","read_only":true}"#, + ) + .await; + assert_eq!(s, StatusCode::BAD_REQUEST); + let msg = String::from_utf8_lossy(&b); + assert!(msg.contains("export"), "expected validation hint, got: {msg}"); +} + +#[tokio::test] +async fn nfs_list_starts_empty() { + let (state, _dir) = build_state().await; + let app = build_router(state); + let (s, b) = get(&app, "/api/nfs").await; + assert_eq!(s, StatusCode::OK); + let v: serde_json::Value = serde_json::from_slice(&b).unwrap(); + assert_eq!(v["mounts"].as_array().unwrap().len(), 0); +} + +#[tokio::test] +async fn terminal_help_and_status_round_trip() { + let (state, _dir) = build_state().await; + let app = build_router(state); + + // Empty command -> help banner. + let (s, b) = post_json(&app, "/api/terminal", r#"{"command":""}"#).await; + assert_eq!(s, StatusCode::OK); + let v: serde_json::Value = serde_json::from_slice(&b).unwrap(); + assert!(v["output"].as_str().unwrap().contains("PXEForge terminal")); + + // status -> contains the version banner. + let (s, b) = post_json(&app, "/api/terminal", r#"{"command":"status"}"#).await; + assert_eq!(s, StatusCode::OK); + let v: serde_json::Value = serde_json::from_slice(&b).unwrap(); + let out = v["output"].as_str().unwrap(); + assert!(out.starts_with("PXEForge"), "unexpected status output: {out}"); + assert!(out.contains("isos:"), "status missing iso line: {out}"); + + // Unknown command -> ok=false plus help hint. + let (_, b) = post_json(&app, "/api/terminal", r#"{"command":"frobnicate"}"#).await; + let v: serde_json::Value = serde_json::from_slice(&b).unwrap(); + assert_eq!(v["ok"], false); + assert!(v["output"].as_str().unwrap().contains("unknown command")); +} + +#[tokio::test] +async fn log_recent_returns_buffered_lines() { + // The terminal command we issued seeds the log bus, so a follow-up + // /api/log/recent must surface those lines as JSON. + let (state, _dir) = build_state().await; + let app = build_router(state); + let _ = post_json(&app, "/api/terminal", r#"{"command":"version"}"#).await; + let (s, b) = get(&app, "/api/log/recent").await; + assert_eq!(s, StatusCode::OK); + let v: serde_json::Value = serde_json::from_slice(&b).unwrap(); + let lines = v["lines"].as_array().expect("lines array"); + assert!(!lines.is_empty(), "log buffer should have at least one line"); + // Every entry should have the canonical timestamp/level/target/message. + for l in lines { + for k in ["timestamp", "level", "target", "message"] { + assert!(l.get(k).is_some(), "missing field {k} in log line: {l}"); + } + } +} + +#[tokio::test] +async fn network_endpoint_exposes_dns_round_trip() { + let (state, _dir) = build_state().await; + let app = build_router(state); + + // GET starts blank. + let (_, b) = get(&app, "/api/network").await; + let v: serde_json::Value = serde_json::from_slice(&b).unwrap(); + assert_eq!(v["dns_server"], ""); + assert_eq!(v["nic_name"], "lo"); + + // PUT updates only the DNS field. + let res = app + .clone() + .oneshot( + Request::builder() + .method("PUT") + .uri("/api/network") + .header("content-type", "application/json") + .body(Body::from(r#"{"dns_server":"10.0.0.1"}"#)) + .unwrap(), + ) + .await + .unwrap(); + assert_eq!(res.status(), StatusCode::NO_CONTENT); + + let (_, b) = get(&app, "/api/network").await; + let v: serde_json::Value = serde_json::from_slice(&b).unwrap(); + assert_eq!(v["dns_server"], "10.0.0.1"); +} diff --git a/crates/ipxe-assets/Cargo.toml b/crates/ipxe-assets/Cargo.toml new file mode 100644 index 0000000..577de9c --- /dev/null +++ b/crates/ipxe-assets/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "pxeforge-ipxe-assets" +version.workspace = true +edition.workspace = true +license.workspace = true +authors.workspace = true +description = "Bundled iPXE binaries and default chain scripts for PXEForge" + +[lints] +workspace = true + +[dependencies] +pxeforge-core.workspace = true +rust-embed.workspace = true +tracing.workspace = true +thiserror.workspace = true diff --git a/crates/ipxe-assets/src/lib.rs b/crates/ipxe-assets/src/lib.rs new file mode 100644 index 0000000..67225ba --- /dev/null +++ b/crates/ipxe-assets/src/lib.rs @@ -0,0 +1,70 @@ +//! Bundled iPXE boot binaries and default chain script. +//! +//! At build time, we expect the iPXE binaries to live at `assets/ipxe/` at +//! the workspace root. They are embedded into the PXEForge binary via +//! `rust-embed` so the container image is self-contained. If a binary is +//! missing, that architecture simply won't have PXE support — we log at +//! startup and serve what we have. +//! +//! Filename convention (matches `ClientArch::ipxe_bootfile`): +//! - `undionly.kpxe` — Legacy x86 BIOS +//! - `snponly-i386.efi` — IA32 UEFI +//! - `snponly.efi` — x86_64 UEFI +//! - `snponly-arm32.efi` — ARM32 UEFI +//! - `snponly-arm64.efi` — ARM64 UEFI +//! - `ipxe.efi` (fallback) — UEFI with bundled drivers, if snponly fails on a NIC +//! - `wimboot` — Windows boot shim (fetched separately for WIM chains) +#![forbid(unsafe_code)] + +use pxeforge_core::ClientArch; +use rust_embed::Embed; + +#[derive(Embed)] +#[folder = "../../assets/ipxe/"] +#[include = "*.kpxe"] +#[include = "*.efi"] +#[include = "wimboot"] +pub struct IpxeAssets; + +/// Return the embedded iPXE binary for `arch`, or `None` if we didn't bundle +/// one for that architecture. +#[must_use] +pub fn bootfile_bytes(arch: ClientArch) -> Option> { + let name = arch.ipxe_bootfile()?; + IpxeAssets::get(name).map(|f| f.data.into_owned()) +} + +/// Return a named asset directly (e.g. `wimboot`, or a fallback `ipxe.efi`). +#[must_use] +pub fn asset_bytes(name: &str) -> Option> { + IpxeAssets::get(name).map(|f| f.data.into_owned()) +} + +/// Enumerate embedded asset filenames. Useful for startup logging so the +/// operator can immediately tell which architectures will work. +pub fn list_assets() -> Vec { + IpxeAssets::iter().map(|c| c.into_owned()).collect() +} + +/// Log at startup which iPXE binaries are present and which are missing. +pub fn log_availability() { + let have: std::collections::HashSet = list_assets().into_iter().collect(); + let needed = [ + (ClientArch::LegacyX86, "undionly.kpxe"), + (ClientArch::Ia32Uefi, "snponly-i386.efi"), + (ClientArch::X64Uefi, "snponly.efi"), + // ARM32 UEFI deferred — no upstream snponly binary published. + (ClientArch::Arm64Uefi, "snponly-arm64.efi"), + ]; + for (arch, name) in needed { + if have.contains(name) { + tracing::info!(target: "pxeforge::ipxe", "bundled iPXE for {}: {}", arch.as_str(), name); + } else { + tracing::warn!( + target: "pxeforge::ipxe", + "MISSING iPXE binary for {}: {} — clients of this arch will not PXE boot", + arch.as_str(), name + ); + } + } +} diff --git a/crates/iso-store/Cargo.toml b/crates/iso-store/Cargo.toml new file mode 100644 index 0000000..6a24220 --- /dev/null +++ b/crates/iso-store/Cargo.toml @@ -0,0 +1,31 @@ +[package] +name = "pxeforge-iso-store" +version.workspace = true +edition.workspace = true +license.workspace = true +authors.workspace = true +description = "ISO upload, storage, introspection, and boot-entry generation for PXEForge" + +[lints] +workspace = true + +[dependencies] +pxeforge-core.workspace = true +tokio = { workspace = true } +tokio-util = { workspace = true } +serde.workspace = true +serde_json.workspace = true +tracing.workspace = true +thiserror.workspace = true +anyhow.workspace = true +sha2.workspace = true +hex.workspace = true +uuid.workspace = true +time.workspace = true +parking_lot.workspace = true +bytes.workspace = true +tempfile = "3.12" +libc = "0.2" + +[dev-dependencies] +tempfile = "3.12" diff --git a/crates/iso-store/src/entry.rs b/crates/iso-store/src/entry.rs new file mode 100644 index 0000000..0f832af --- /dev/null +++ b/crates/iso-store/src/entry.rs @@ -0,0 +1,39 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct BootEntry { + /// Stable id (also the URL slug in generated iPXE scripts). + pub id: String, + /// Display label shown in the iPXE boot menu. + pub title: String, + pub kind: BootKind, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(tag = "kind", rename_all = "snake_case")] +pub enum BootKind { + /// Linux kernel + initrd chainload. Kernel args carry the distro-specific + /// pointer back to the ISO contents served over HTTP. + LinuxKernel { + kernel_url: String, + initrd_urls: Vec, + args: KernelArgs, + }, + /// Windows WinPE boot via wimboot shim. `files` maps in-memory tags to + /// HTTP URLs the client fetches. See https://ipxe.org/wimboot . + Wimboot { + wimboot_url: String, + files: Vec<(String, String)>, + }, + /// Last-resort: SAN-boot the ISO as an emulated CD. Only works for small + /// ISOs (<~1 GiB) and older distros. Kept for completeness, not the + /// default. + SanBootIso { iso_url: String }, +} + +#[derive(Debug, Clone, Default, Serialize, Deserialize)] +pub struct KernelArgs { + /// Raw kernel command line, already distro-adapted. Do not quote — iPXE + /// takes a single space-separated command line. + pub cmdline: String, +} diff --git a/crates/iso-store/src/introspect.rs b/crates/iso-store/src/introspect.rs new file mode 100644 index 0000000..531d406 --- /dev/null +++ b/crates/iso-store/src/introspect.rs @@ -0,0 +1,155 @@ +//! ISO introspection — identify the distro family and locate kernel/initrd. +//! +//! We avoid a full ISO9660/Joliet/Rock-Ridge parser by reading a small number +//! of well-known files via `isoinfo` (from cdrtools/genisoimage) when it's on +//! the path. As a pure-Rust fallback we do a crude scan: read the volume +//! descriptor at offset 0x8000 to grab the volume label, and grep for known +//! filenames by scanning raw sectors — good enough to tell Debian from RHEL +//! most of the time, without shelling out. +//! +//! The returned `IntrospectionReport` is what `BootEntry`s get generated from. + +use serde::{Deserialize, Serialize}; +use std::io::{Read, Seek, SeekFrom}; +use std::path::Path; + +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "snake_case")] +pub enum DistroFamily { + DebianUbuntu, + RhelFedora, + OpenSuse, + Arch, + Alpine, + WindowsPe, + Unknown, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct IntrospectionReport { + pub family: DistroFamily, + pub volume_label: Option, + /// Kernel path inside the ISO (e.g. `/casper/vmlinuz`, `/isolinux/vmlinuz`). + pub kernel_path: Option, + /// Initrd path(s) inside the ISO. May be multiple for multi-initrd setups. + pub initrd_paths: Vec, + /// True if `sources/boot.wim` present — Windows install media. + pub has_boot_wim: bool, +} + +/// Probe an ISO file on disk. Never fails — on unrecoverable IO error we log +/// and return an `Unknown` family so the uploader still sees a record. +pub fn introspect(path: &Path) -> IntrospectionReport { + let mut report = IntrospectionReport { + family: DistroFamily::Unknown, + volume_label: None, + kernel_path: None, + initrd_paths: Vec::new(), + has_boot_wim: false, + }; + + let Ok(mut f) = std::fs::File::open(path) else { + tracing::warn!(target: "pxeforge::iso", "cannot open ISO for introspection: {}", path.display()); + return report; + }; + + // ISO9660 Primary Volume Descriptor at LBA 16 (offset 0x8000), 2048 bytes. + // Bytes 40..72 are the Volume Identifier (space-padded, d-characters). + let mut pvd = [0u8; 2048]; + if f.seek(SeekFrom::Start(0x8000)).is_ok() && f.read_exact(&mut pvd).is_ok() { + // Byte 0 must be 0x01 (primary descriptor), bytes 1..6 = "CD001". + if pvd[0] == 0x01 && &pvd[1..6] == b"CD001" { + let label_raw = &pvd[40..72]; + let label = String::from_utf8_lossy(label_raw).trim().to_string(); + if !label.is_empty() { + report.volume_label = Some(label.clone()); + report.family = family_from_label(&label); + } + } + } + + // Cheap content scan: read the first ~64 MiB, look for signature filenames. + // This is enough to identify `sources/boot.wim` (Windows) and common + // kernel/initrd paths for the major Linux distros. + let _ = f.seek(SeekFrom::Start(0)); + let scan_bytes = 64 * 1024 * 1024; + let mut buf = vec![0u8; 1024 * 1024]; + let mut read_total = 0usize; + let mut haystack = Vec::with_capacity(scan_bytes.min(32 * 1024 * 1024)); + while read_total < scan_bytes { + let n = f.read(&mut buf).unwrap_or(0); + if n == 0 { break; } + haystack.extend_from_slice(&buf[..n]); + read_total += n; + } + + if contains_ascii(&haystack, b"sources/boot.wim") + || contains_ascii(&haystack, b"SOURCES/BOOT.WIM") + || contains_ascii(&haystack, b"SOURCES\\BOOT.WIM") + { + report.has_boot_wim = true; + if report.family == DistroFamily::Unknown { + report.family = DistroFamily::WindowsPe; + } + } + + // Best-effort kernel/initrd path guess from family. These paths are what + // distro ISOs conventionally ship at — we don't verify extraction here; + // that happens in the store after introspection. + let (k, i) = guess_kernel_initrd(report.family); + report.kernel_path = k.map(str::to_string); + report.initrd_paths = i.iter().map(|s| s.to_string()).collect(); + + report +} + +fn family_from_label(label: &str) -> DistroFamily { + let l = label.to_ascii_lowercase(); + if l.contains("ubuntu") || l.contains("debian") || l.contains("mint") { + DistroFamily::DebianUbuntu + } else if l.contains("rhel") || l.contains("centos") || l.contains("fedora") + || l.contains("rocky") || l.contains("alma") + { + DistroFamily::RhelFedora + } else if l.contains("suse") || l.contains("opensuse") { + DistroFamily::OpenSuse + } else if l.contains("arch") { + DistroFamily::Arch + } else if l.contains("alpine") { + DistroFamily::Alpine + } else if l.contains("windows") || l.contains("winpe") { + DistroFamily::WindowsPe + } else { + DistroFamily::Unknown + } +} + +fn guess_kernel_initrd(family: DistroFamily) -> (Option<&'static str>, Vec<&'static str>) { + match family { + DistroFamily::DebianUbuntu => (Some("/casper/vmlinuz"), vec!["/casper/initrd"]), + DistroFamily::RhelFedora => (Some("/images/pxeboot/vmlinuz"), vec!["/images/pxeboot/initrd.img"]), + DistroFamily::OpenSuse => (Some("/boot/x86_64/loader/linux"), vec!["/boot/x86_64/loader/initrd"]), + DistroFamily::Arch => (Some("/arch/boot/x86_64/vmlinuz-linux"), vec!["/arch/boot/x86_64/initramfs-linux.img"]), + DistroFamily::Alpine => (Some("/boot/vmlinuz-lts"), vec!["/boot/initramfs-lts"]), + DistroFamily::WindowsPe | DistroFamily::Unknown => (None, Vec::new()), + } +} + +fn contains_ascii(haystack: &[u8], needle: &[u8]) -> bool { + if needle.is_empty() || haystack.len() < needle.len() { return false; } + haystack.windows(needle.len()).any(|w| w.eq_ignore_ascii_case(needle)) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn label_matching() { + assert_eq!(family_from_label("Ubuntu 24.04"), DistroFamily::DebianUbuntu); + assert_eq!(family_from_label("Rocky-9-x86_64-dvd"), DistroFamily::RhelFedora); + assert_eq!(family_from_label("openSUSE-Leap-15.6"), DistroFamily::OpenSuse); + assert_eq!(family_from_label("ARCH_202604"), DistroFamily::Arch); + assert_eq!(family_from_label("weird-custom"), DistroFamily::Unknown); + } +} diff --git a/crates/iso-store/src/lib.rs b/crates/iso-store/src/lib.rs new file mode 100644 index 0000000..19e6bc1 --- /dev/null +++ b/crates/iso-store/src/lib.rs @@ -0,0 +1,31 @@ +//! ISO store: uploads, listing, introspection, boot-entry generation. +//! +//! An ISO goes through three states: +//! 1. **Uploading** — bytes streaming to a `.partial` file under `iso_dir`. +//! 2. **Introspecting** — once upload completes, we probe the ISO to detect +//! the distro family and extract kernel/initrd if applicable. Metadata +//! persisted as a sibling `.meta.json` file. +//! 3. **Ready** — listed in the menu, servable over HTTP. +//! +//! Introspection is best-effort. If we can't identify the distro, the ISO is +//! still bootable via a generic `memdisk`/`sanboot` fallback path (not +//! recommended but better than nothing). +//! +//! The `smb` submodule needs exactly one `unsafe` call to `libc::kill` for +//! SIGHUP-based Samba reload — the call is documented inline and every +//! other file in this crate is `#![forbid(unsafe_code)]`-equivalent via +//! the workspace lints. + +pub mod entry; +pub mod introspect; +pub mod nfs; +pub mod smb; +pub mod store; +pub mod windows; + +pub use entry::{BootEntry, BootKind, KernelArgs}; +pub use introspect::{DistroFamily, IntrospectionReport}; +pub use nfs::{NfsAddRequest, NfsManager, NfsMount, NfsVersion}; +pub use smb::{extract_windows_iso, SmbManager, SmbState}; +pub use store::{generate_boot_entries_for, slugify_str, IsoMeta, IsoSource, IsoStore, UploadHandle}; +pub use windows::{WimPatcher, WinPatchState}; diff --git a/crates/iso-store/src/nfs.rs b/crates/iso-store/src/nfs.rs new file mode 100644 index 0000000..a105a66 --- /dev/null +++ b/crates/iso-store/src/nfs.rs @@ -0,0 +1,564 @@ +//! NFS share manager. +//! +//! Lets an operator mount a remote NFS export as an ISO source instead of +//! uploading every ISO into the container's PVC. Supports NFSv3 and +//! NFSv4.1 — the two versions the user explicitly asked for. +//! +//! ## How it works +//! +//! 1. Operator submits a mount spec via the Storage tab: +//! `{ server: "10.0.0.20", export: "/srv/isos", version: "v41" }`. +//! 2. We slugify a stable id, mkdir `/nfs//`, then shell out +//! to `/bin/mount -t nfs -o vers=...,ro,nolock server:export local`. +//! 3. On success we walk the mount point looking for `*.iso` files and +//! register each one with the `IsoStore` as an external source — same +//! introspection pipeline as a web upload, but no sha256 (the bytes +//! live on a remote machine; hashing them would suck them through the +//! network on every restart). +//! 4. On failure we record `last_error` on the spec and persist anyway +//! so the UI can show a row in red rather than silently dropping it. +//! +//! ## Operational notes +//! +//! - Mounting NFS inside a container needs `CAP_SYS_ADMIN` and the +//! `nfs-common` package. The default image ships these (see Dockerfile). +//! - On OpenShift, the SCC must allow `CAP_SYS_ADMIN`. The bundled SCC +//! doesn't — operators have to opt in by switching to a more privileged +//! SCC or running NFS mounts as a CSI driver outside the pod. +//! - Mount commands are issued sequentially under a single mutex to avoid +//! `mount` racing on the same target dir. +//! +//! ## Persistence +//! +//! Mount specs (without runtime state) live at `/nfs.json`, +//! re-mounted on startup. Mounts that fail to come back online keep their +//! spec and their `last_error` so the operator sees what happened. + +use crate::introspect::{introspect, IntrospectionReport}; +use crate::store::{generate_boot_entries_for, slugify_str, IsoSource, IsoStore}; +use parking_lot::Mutex; +use pxeforge_core::{Error, Result}; +use serde::{Deserialize, Serialize}; +use std::collections::HashMap; +use std::path::{Path, PathBuf}; +use std::sync::Arc; +use time::OffsetDateTime; +use tokio::process::Command; + +/// Wire-protocol versions we support. Keep this enum closed — silently +/// accepting "auto" or letting the kernel negotiate would mean operators +/// could never confirm which version is in use. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "lowercase")] +pub enum NfsVersion { + /// NFSv3 — UDP/TCP, separate `mountd` protocol. Required for many + /// older NAS appliances. + V3, + /// NFSv4.1 — single TCP port (2049), session-based. Modern default. + V41, +} + +impl NfsVersion { + fn vers_arg(self) -> &'static str { + match self { + Self::V3 => "vers=3", + Self::V41 => "vers=4.1", + } + } +} + +/// One configured mount. The id is generated from server+export so the +/// operator can re-add the same export idempotently. +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct NfsMount { + pub id: String, + pub server: String, + pub export: String, + pub version: NfsVersion, + /// Read-only by default — most ISO libraries are. Operators that need + /// write can flip this off but PXEForge itself never writes. + pub read_only: bool, + /// Local mount point under `/nfs/`. + pub local_path: PathBuf, + /// Whether the mount is currently active. + pub mounted: bool, + /// Last error encountered on a `mount` or `umount` attempt; cleared on + /// success. + pub last_error: Option, + #[serde(with = "time::serde::rfc3339::option")] + pub last_attempt: Option, + /// Number of `.iso` files found on the share (re-counted on each scan). + pub iso_count: u32, +} + +/// Spec submitted by the UI. Server and export are normalized before use. +#[derive(Debug, Clone, Deserialize)] +pub struct NfsAddRequest { + pub server: String, + pub export: String, + #[serde(default = "default_version")] + pub version: NfsVersion, + #[serde(default = "default_ro")] + pub read_only: bool, +} + +fn default_version() -> NfsVersion { + NfsVersion::V41 +} +fn default_ro() -> bool { + true +} + +#[derive(Debug, Default)] +struct Inner { + mounts: HashMap, +} + +/// Manages NFS mounts and surfaces them as ISO sources. +/// +/// Cheap to clone — internal state is `Arc>`. +#[derive(Debug, Clone)] +pub struct NfsManager { + work_root: Arc, + state_path: Arc, + inner: Arc>, + iso_store: IsoStore, + /// Single-writer lock around the actual `mount`/`umount` shell-outs; + /// avoids racing on the same target directory. + mount_lock: Arc>, +} + +impl NfsManager { + /// Construct a manager rooted at `work_dir`. Mount points live under + /// `/nfs//`. State persists to `/nfs.json`. + #[must_use] + pub fn new(work_dir: &Path, iso_store: IsoStore) -> Self { + let work_root = work_dir.join("nfs"); + let state_path = work_dir.join("nfs.json"); + Self { + work_root: Arc::new(work_root), + state_path: Arc::new(state_path), + inner: Arc::new(Mutex::new(Inner::default())), + iso_store, + mount_lock: Arc::new(tokio::sync::Mutex::new(())), + } + } + + /// Where this manager mounts shares. Used by `IsoStore` to resolve + /// NFS-backed `IsoMeta`s to their on-disk path. + #[must_use] + pub fn mount_root(&self) -> PathBuf { + self.work_root.as_ref().clone() + } + + /// Load persisted state and re-attempt every mount. Errors are logged + /// per-mount but never fail the call — startup must not block on a + /// remote NFS server being slow. + pub async fn load_and_remount(&self) -> Result<()> { + tokio::fs::create_dir_all(self.work_root.as_path()).await?; + let mounts = match tokio::fs::read_to_string(self.state_path.as_path()).await { + Ok(text) => serde_json::from_str::>(&text).unwrap_or_default(), + Err(_) => Vec::new(), + }; + for mut m in mounts { + // Always start from "not mounted" — the kernel state was lost + // when the process died. We'll try to remount each one. + m.mounted = false; + m.last_error = None; + self.inner.lock().mounts.insert(m.id.clone(), m.clone()); + if let Err(e) = self.try_mount(&m.id).await { + tracing::warn!( + target: "pxeforge::nfs", + id = %m.id, error = %e, + "could not remount NFS share on startup" + ); + } + } + Ok(()) + } + + /// Add a new mount. Returns the resulting `NfsMount` (with `mounted` + /// reflecting reality) or an error if the spec was invalid. + pub async fn add(&self, req: NfsAddRequest) -> Result { + let server = req.server.trim().to_string(); + let export = req.export.trim().to_string(); + if server.is_empty() { + return Err(Error::Invalid("server is required".into())); + } + if !export.starts_with('/') { + return Err(Error::Invalid("export path must start with '/'".into())); + } + + let id = mount_id(&server, &export); + let local_path = self.work_root.join(&id); + tokio::fs::create_dir_all(&local_path).await?; + + let mount = NfsMount { + id: id.clone(), + server, + export, + version: req.version, + read_only: req.read_only, + local_path, + mounted: false, + last_error: None, + last_attempt: None, + iso_count: 0, + }; + self.inner.lock().mounts.insert(id.clone(), mount); + self.persist_locked(); + self.try_mount(&id).await?; + Ok(self.get(&id).expect("mount just inserted")) + } + + /// Unmount and forget a share. Removes any ISOs it contributed from + /// the IsoStore and deletes the local mount point. Idempotent. + pub async fn remove(&self, id: &str) -> Result<()> { + // Best-effort umount; even if it fails (e.g. server unreachable) + // we still want to drop the in-memory record. + let _ = self.umount_one(id).await; + let local_path = { + let mut g = self.inner.lock(); + g.mounts.remove(id).map(|m| m.local_path) + }; + self.persist_locked(); + self.iso_store.drop_external_source(id); + if let Some(p) = local_path { + // rmdir only — never recurse, the mount could still be live + // on some kernel error path and we don't want to nuke a + // remote filesystem. + let _ = tokio::fs::remove_dir(&p).await; + } + Ok(()) + } + + /// Re-scan a mounted share for ISOs, refreshing the IsoStore. + pub async fn rescan(&self, id: &str) -> Result { + let mount = self + .get(id) + .ok_or_else(|| Error::Invalid(format!("no such mount '{id}'")))?; + if !mount.mounted { + return Err(Error::Invalid(format!("mount '{id}' is not active"))); + } + let count = self.scan_and_register(&mount).await?; + if let Some(m) = self.inner.lock().mounts.get_mut(id) { + m.iso_count = count; + } + self.persist_locked(); + Ok(count) + } + + /// Snapshot of every configured mount. + #[must_use] + pub fn list(&self) -> Vec { + let g = self.inner.lock(); + let mut v: Vec<_> = g.mounts.values().cloned().collect(); + v.sort_by(|a, b| a.id.cmp(&b.id)); + v + } + + /// Look up a single mount by id. + #[must_use] + pub fn get(&self, id: &str) -> Option { + self.inner.lock().mounts.get(id).cloned() + } + + // ── internals ───────────────────────────────────────────────────── + + async fn try_mount(&self, id: &str) -> Result<()> { + let _g = self.mount_lock.lock().await; + + let m = self + .get(id) + .ok_or_else(|| Error::Invalid(format!("no such mount '{id}'")))?; + let now = OffsetDateTime::now_utc(); + + // Already mounted? Skip — `mount` would error on a busy target + // and confuse the operator's UI status. + if is_mountpoint(&m.local_path).await { + self.update_status(id, true, None, now); + // Even though already mounted, we still want a fresh ISO count. + let count = self.scan_and_register(&m).await.unwrap_or(0); + self.update_iso_count(id, count); + return Ok(()); + } + + let opts = mount_options(&m); + let target = format!("{}:{}", m.server, m.export); + + let output = Command::new("mount") + .arg("-t") + .arg("nfs") + .arg("-o") + .arg(&opts) + .arg(&target) + .arg(&m.local_path) + .output() + .await; + + match output { + Ok(out) if out.status.success() => { + tracing::info!( + target: "pxeforge::nfs", + id = %id, server = %m.server, export = %m.export, + version = ?m.version, + "NFS mount succeeded" + ); + self.update_status(id, true, None, now); + let count = self.scan_and_register(&m).await.unwrap_or(0); + self.update_iso_count(id, count); + Ok(()) + } + Ok(out) => { + let err = format!( + "mount exit {}: {}", + out.status.code().unwrap_or(-1), + String::from_utf8_lossy(&out.stderr).trim() + ); + tracing::warn!(target: "pxeforge::nfs", id = %id, "{err}"); + self.update_status(id, false, Some(err.clone()), now); + Err(Error::Invalid(err)) + } + Err(e) => { + let err = format!("could not exec /bin/mount: {e}"); + tracing::error!(target: "pxeforge::nfs", id = %id, "{err}"); + self.update_status(id, false, Some(err.clone()), now); + Err(Error::Invalid(err)) + } + } + } + + async fn umount_one(&self, id: &str) -> Result<()> { + let _g = self.mount_lock.lock().await; + let Some(m) = self.get(id) else { return Ok(()) }; + if !is_mountpoint(&m.local_path).await { + self.update_status(id, false, None, OffsetDateTime::now_utc()); + return Ok(()); + } + // -l = lazy: detach immediately, finish when no process has a + // handle. Important if a stale ISO read is still in flight. + let out = Command::new("umount") + .arg("-l") + .arg(&m.local_path) + .output() + .await; + match out { + Ok(o) if o.status.success() => { + self.update_status(id, false, None, OffsetDateTime::now_utc()); + Ok(()) + } + Ok(o) => { + let e = format!( + "umount exit {}: {}", + o.status.code().unwrap_or(-1), + String::from_utf8_lossy(&o.stderr).trim() + ); + self.update_status(id, false, Some(e.clone()), OffsetDateTime::now_utc()); + Err(Error::Invalid(e)) + } + Err(e) => { + let e = format!("could not exec /bin/umount: {e}"); + self.update_status(id, false, Some(e.clone()), OffsetDateTime::now_utc()); + Err(Error::Invalid(e)) + } + } + } + + /// Walk the mount point for `*.iso` files, introspect each one, and + /// register it with the IsoStore as an NFS-sourced entry. Returns the + /// count of ISOs registered. + async fn scan_and_register(&self, m: &NfsMount) -> Result { + // Drop any prior entries from this mount before re-registering, so + // a removed file disappears from the store. + self.iso_store.drop_external_source(&m.id); + + let mut walker = tokio::fs::read_dir(&m.local_path).await?; + let mut count = 0u32; + while let Some(entry) = walker.next_entry().await? { + let p = entry.path(); + if p.extension() + .and_then(|e| e.to_str()) + .map(str::to_ascii_lowercase) + .as_deref() + != Some("iso") + { + continue; + } + let filename = match p.file_name().and_then(|s| s.to_str()) { + Some(f) => f.to_string(), + None => continue, + }; + let size = tokio::fs::metadata(&p).await?.len(); + // Introspection is sync + IO-bound (reads ISO9660 PVD). Push + // it to a blocking thread so the runtime stays responsive on + // a slow share. + let p_owned = p.clone(); + let report: IntrospectionReport = + tokio::task::spawn_blocking(move || introspect(&p_owned)) + .await + .map_err(|e| Error::Other(e.into()))?; + let id = format!("nfs-{}-{}", m.id, slugify_str(&filename)); + let boot_entries = generate_boot_entries_for(&id, &filename, &report); + let source = IsoSource::Nfs { + mount_id: m.id.clone(), + relative_path: filename.clone(), + }; + self.iso_store.register_external( + id, + filename, + size, + report, + boot_entries, + source, + ); + count += 1; + } + Ok(count) + } + + fn update_status(&self, id: &str, mounted: bool, err: Option, ts: OffsetDateTime) { + if let Some(m) = self.inner.lock().mounts.get_mut(id) { + m.mounted = mounted; + m.last_error = err; + m.last_attempt = Some(ts); + } + self.persist_locked(); + } + + fn update_iso_count(&self, id: &str, count: u32) { + if let Some(m) = self.inner.lock().mounts.get_mut(id) { + m.iso_count = count; + } + self.persist_locked(); + } + + /// Atomically replace the on-disk JSON with the current state. + /// Persistence errors are logged, never propagated — settings live in + /// memory authoritatively, matching the SettingsStore policy. + fn persist_locked(&self) { + let mounts: Vec = self.inner.lock().mounts.values().cloned().collect(); + let path = self.state_path.as_path(); + let tmp = path.with_extension("json.tmp"); + let body = match serde_json::to_vec_pretty(&mounts) { + Ok(b) => b, + Err(e) => { + tracing::warn!(target: "pxeforge::nfs", "serialize NFS state: {e}"); + return; + } + }; + if let Some(parent) = path.parent() { + let _ = std::fs::create_dir_all(parent); + } + if let Err(e) = std::fs::write(&tmp, body) { + tracing::warn!(target: "pxeforge::nfs", "write NFS state tmp: {e}"); + return; + } + if let Err(e) = std::fs::rename(&tmp, path) { + tracing::warn!(target: "pxeforge::nfs", "rename NFS state: {e}"); + } + } +} + +fn mount_options(m: &NfsMount) -> String { + let mut opts = vec![m.version.vers_arg().to_string()]; + if m.read_only { + opts.push("ro".into()); + } else { + opts.push("rw".into()); + } + // `nolock` for v3 — many storage appliances disable lockd; we don't + // need locking for read-only ISO access anyway. + if matches!(m.version, NfsVersion::V3) { + opts.push("nolock".into()); + } + // Soft mount with a generous timeout — better to surface a hung share + // as a user-visible error than to wedge the iPXE client forever on a + // dead NFS server. + opts.push("soft".into()); + opts.push("timeo=100".into()); + opts.push("retrans=3".into()); + opts.join(",") +} + +fn mount_id(server: &str, export: &str) -> String { + let raw = format!("{server}{export}"); + slugify_str(&raw) +} + +/// Detect whether `path` is currently a mount point. We don't have +/// `is_mountpoint(2)`, so compare the parent's device id to the dir's; +/// if they differ the dir is a mount. +async fn is_mountpoint(path: &Path) -> bool { + let Some(parent) = path.parent() else { + return false; + }; + let Ok(m1) = tokio::fs::metadata(path).await else { + return false; + }; + let Ok(m2) = tokio::fs::metadata(parent).await else { + return false; + }; + use std::os::unix::fs::MetadataExt; + m1.dev() != m2.dev() +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn version_arg() { + assert_eq!(NfsVersion::V3.vers_arg(), "vers=3"); + assert_eq!(NfsVersion::V41.vers_arg(), "vers=4.1"); + } + + #[test] + fn mount_options_v3_includes_nolock() { + let m = NfsMount { + id: "x".into(), + server: "s".into(), + export: "/e".into(), + version: NfsVersion::V3, + read_only: true, + local_path: PathBuf::from("/tmp/x"), + mounted: false, + last_error: None, + last_attempt: None, + iso_count: 0, + }; + let opts = mount_options(&m); + assert!(opts.contains("vers=3")); + assert!(opts.contains("ro")); + assert!(opts.contains("nolock")); + assert!(opts.contains("soft")); + } + + #[test] + fn mount_options_v41_no_nolock() { + let m = NfsMount { + id: "x".into(), + server: "s".into(), + export: "/e".into(), + version: NfsVersion::V41, + read_only: false, + local_path: PathBuf::from("/tmp/x"), + mounted: false, + last_error: None, + last_attempt: None, + iso_count: 0, + }; + let opts = mount_options(&m); + assert!(opts.contains("vers=4.1")); + assert!(opts.contains("rw")); + assert!(!opts.contains("nolock")); + } + + #[test] + fn mount_id_is_stable_and_safe() { + let a = mount_id("10.0.0.5", "/srv/isos"); + let b = mount_id("10.0.0.5", "/srv/isos"); + assert_eq!(a, b); + assert!(!a.contains('/')); + assert!(!a.contains('.')); + } +} diff --git a/crates/iso-store/src/smb.rs b/crates/iso-store/src/smb.rs new file mode 100644 index 0000000..93290c9 --- /dev/null +++ b/crates/iso-store/src/smb.rs @@ -0,0 +1,343 @@ +//! SMB share manager. Spawns and supervises `smbd` for serving extracted +//! Windows install trees on port 445. This is the server side of the +//! Bootimus-pattern Windows boot: WinPE does `net use Z: \\server\` +//! and runs Setup from there. +//! +//! Lifecycle: +//! +//! 1. Web UI toggles `windows_enabled = true` → `SmbManager::start()`. +//! We write an `smb.conf` that declares one share per extracted +//! Windows ISO, then `smbd --foreground --no-process-group`. +//! 2. When a Windows ISO is uploaded, `extract_windows_iso()` unpacks +//! it under `smb_dir//` and `SmbManager::reconcile_shares()` +//! rewrites `smb.conf` and signals smbd to reload (SIGHUP). +//! 3. When the toggle flips off, `stop()` sends SIGTERM to smbd and +//! leaves the extracted trees in place (in case the toggle comes +//! back on). +//! +//! Safety posture: +//! - Guest-mode SMB, read-only (`writable = no`, `guest ok = yes`). +//! - SMB2 minimum (no SMB1 legacy, not needed for WinPE). +//! - Bound to 0.0.0.0:445; operator MUST put this on a trusted install +//! VLAN — guest SMB is not for the general internet. +//! - smbd runs as the same non-root uid as pxeforge (10001). +//! - If `smbd` isn't on PATH (e.g. lightweight container build without +//! Samba), we return `SmbState::SmbdMissing` and the UI surfaces the +//! gap. No panics, no retries, no silent failure. + +use serde::{Deserialize, Serialize}; +use std::path::{Path, PathBuf}; +use std::process::{Child, Command, Stdio}; +use std::sync::Arc; +use parking_lot::Mutex; + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[serde(rename_all = "snake_case", tag = "state")] +pub enum SmbState { + /// Windows support is off — smbd not running. + Disabled, + /// `smbd` is missing from the image. Operator enabled Windows but the + /// runtime container didn't include Samba. + SmbdMissing, + /// Started and healthy. + Running { pid: u32, shares: Vec }, + /// Tried to start but smbd exited. Reason is captured for the UI. + Failed { reason: String }, +} + +pub struct SmbManager { + smb_dir: PathBuf, + conf_path: PathBuf, + child: Arc>>, + state: Arc>, +} + +impl SmbManager { + pub fn new(smb_dir: PathBuf) -> Self { + let conf_path = smb_dir.join("smb.conf"); + Self { + smb_dir, + conf_path, + child: Arc::new(Mutex::new(None)), + state: Arc::new(Mutex::new(SmbState::Disabled)), + } + } + + #[must_use] + pub fn snapshot(&self) -> SmbState { + self.state.lock().clone() + } + + /// Enumerate `/*/` sub-dirs as shares. An extracted Windows + /// ISO under `smb_dir//` becomes a share named ``. Returns + /// the sorted list. + pub fn discover_shares(&self) -> Vec { + let Ok(rd) = std::fs::read_dir(&self.smb_dir) else { return vec![]; }; + let mut out: Vec = rd + .flatten() + .filter(|e| e.path().is_dir()) + .filter_map(|e| e.file_name().to_str().map(str::to_owned)) + // Ignore hidden / internal dirs. + .filter(|n| !n.starts_with('.') && n != "tmp") + .collect(); + out.sort(); + out + } + + /// Write out `smb.conf` for the currently-discovered shares. Safe to + /// call while smbd is running — smbd reloads on SIGHUP. + pub fn write_conf(&self) -> std::io::Result> { + std::fs::create_dir_all(&self.smb_dir)?; + let shares = self.discover_shares(); + let mut conf = String::new(); + conf.push_str(SMB_CONF_GLOBAL); + for name in &shares { + let path = self.smb_dir.join(name); + conf.push_str(&format!( + "\n[{name}]\n\ + path = {}\n\ + comment = PXEForge Windows install media ({name})\n\ + read only = yes\n\ + guest ok = yes\n\ + guest only = yes\n\ + browseable = yes\n\ + available = yes\n", + path.display(), + )); + } + let tmp = self.conf_path.with_extension("conf.tmp"); + std::fs::write(&tmp, conf)?; + std::fs::rename(tmp, &self.conf_path)?; + Ok(shares) + } + + /// Start smbd. No-op if already running. + pub fn start(&self) -> SmbState { + let mut g = self.child.lock(); + if g.as_ref().map_or(false, |c| c.id() > 0) { + return self.state.lock().clone(); + } + if !smbd_present() { + let s = SmbState::SmbdMissing; + *self.state.lock() = s.clone(); + return s; + } + let shares = match self.write_conf() { + Ok(v) => v, + Err(e) => { + let s = SmbState::Failed { reason: format!("write smb.conf: {e}") }; + *self.state.lock() = s.clone(); + return s; + } + }; + let child = Command::new("smbd") + .args([ + "--foreground", + "--no-process-group", + "--configfile", self.conf_path.to_str().unwrap_or(""), + "--log-stdout", + ]) + .stdin(Stdio::null()) + .stdout(Stdio::inherit()) + .stderr(Stdio::inherit()) + .spawn(); + match child { + Ok(c) => { + let pid = c.id(); + *g = Some(c); + let s = SmbState::Running { pid, shares }; + *self.state.lock() = s.clone(); + tracing::info!(target: "pxeforge::smb", pid, shares=?self.state.lock(), "smbd started"); + s + } + Err(e) => { + let s = SmbState::Failed { reason: format!("spawn smbd: {e}") }; + *self.state.lock() = s.clone(); + s + } + } + } + + /// Rewrite smb.conf and SIGHUP smbd so it picks up new/removed shares. + /// No-op if smbd isn't running. + #[allow(unsafe_code)] + pub fn reconcile(&self) -> SmbState { + let mut g = self.child.lock(); + if g.is_none() { return self.state.lock().clone(); } + let shares = match self.write_conf() { + Ok(v) => v, + Err(e) => { + let s = SmbState::Failed { reason: format!("write smb.conf: {e}") }; + *self.state.lock() = s.clone(); + return s; + } + }; + if let Some(c) = g.as_mut() { + let pid = c.id() as i32; + // SAFETY: libc::kill is FFI-safe; we pass a pid we own (returned + // from `Child::id` above, the child is alive because we hold the + // Mutex guard `g`) and a well-defined signal constant. Return + // value ignored because there's no meaningful recovery if SIGHUP + // fails — the next reconcile will retry. + // Rationale for not using a safe wrapper: the only crate that + // covers this is `nix`, which pulls ~40 transitive deps for a + // single signal send. One documented unsafe call is the better + // tradeoff for a container-first project. + unsafe { libc::kill(pid, libc::SIGHUP); } + let s = SmbState::Running { pid: pid as u32, shares }; + *self.state.lock() = s.clone(); + s + } else { + self.state.lock().clone() + } + } + + /// Stop smbd. Safe to call repeatedly. + pub fn stop(&self) { + let mut g = self.child.lock(); + if let Some(mut c) = g.take() { + let _ = c.kill(); + let _ = c.wait(); + } + *self.state.lock() = SmbState::Disabled; + } +} + +fn smbd_present() -> bool { + let Ok(paths) = std::env::var("PATH") else { return false; }; + for dir in std::env::split_paths(&paths) { + if dir.join("smbd").is_file() { return true; } + } + false +} + +const SMB_CONF_GLOBAL: &str = r#"[global] +workgroup = PXEFORGE +server min protocol = SMB2 +smb ports = 445 +log level = 1 +max log size = 1024 +disable netbios = yes +server role = standalone +map to guest = Bad User +guest account = nobody +# Anchor to container-friendly paths; tdb + log files under the data dir +# so a read-only rootfs in OpenShift doesn't block Samba. +lock directory = /tmp +state directory = /tmp +cache directory = /tmp +pid directory = /tmp +"#; + +/// Extract a Windows ISO at `iso_path` into `smb_dir//`. Uses +/// `7z` when available (most reliable for UDF + ISO9660 hybrid images); +/// falls back to `bsdtar -xf` which also handles UDF on many distros. +/// Returns the share name (i.e. the slug) on success. +/// +/// Idempotent: if the target dir already contains `sources/boot.wim`, we +/// skip extraction. Callers who want a forced re-extract should remove the +/// dir first. +pub fn extract_windows_iso(iso_path: &Path, smb_dir: &Path, slug: &str) -> std::io::Result { + let target = smb_dir.join(slug); + if target.join("sources").join("boot.wim").is_file() { + tracing::debug!(target: "pxeforge::smb", slug, "ISO already extracted, skipping"); + return Ok(target); + } + std::fs::create_dir_all(&target)?; + + // Try 7z first. + if which("7z").is_some() { + let out = Command::new("7z") + .args(["x", "-y", "-bd", "-bb0"]) + .arg(format!("-o{}", target.display())) + .arg(iso_path) + .stdin(Stdio::null()) + .stdout(Stdio::null()) + .stderr(Stdio::piped()) + .output()?; + if out.status.success() { return Ok(target); } + tracing::warn!( + target: "pxeforge::smb", + stderr=%String::from_utf8_lossy(&out.stderr), + "7z extract failed, trying bsdtar" + ); + } + // bsdtar fallback. + if which("bsdtar").is_some() { + let out = Command::new("bsdtar") + .args(["-xf"]) + .arg(iso_path) + .args(["-C"]) + .arg(&target) + .output()?; + if out.status.success() { return Ok(target); } + return Err(std::io::Error::new( + std::io::ErrorKind::Other, + format!("bsdtar failed: {}", String::from_utf8_lossy(&out.stderr)), + )); + } + Err(std::io::Error::new( + std::io::ErrorKind::NotFound, + "neither 7z nor bsdtar available for ISO extraction", + )) +} + +fn which(cmd: &str) -> Option { + let paths = std::env::var_os("PATH")?; + for dir in std::env::split_paths(&paths) { + let p = dir.join(cmd); + if p.is_file() { return Some(p); } + } + None +} + +#[cfg(test)] +mod tests { + use super::*; + use tempfile::tempdir; + + #[test] + fn disabled_by_default() { + let dir = tempdir().unwrap(); + let m = SmbManager::new(dir.path().into()); + assert_eq!(m.snapshot(), SmbState::Disabled); + } + + #[test] + fn start_without_smbd_reports_missing() { + // Drop smbd from PATH for this test. + let saved = std::env::var_os("PATH"); + std::env::set_var("PATH", "/usr/nowhere-pxeforge-test"); + let dir = tempdir().unwrap(); + let m = SmbManager::new(dir.path().into()); + let st = m.start(); + // Restore PATH before asserting so any subsequent failure is legible. + if let Some(p) = saved { std::env::set_var("PATH", p); } + assert_eq!(st, SmbState::SmbdMissing); + } + + #[test] + fn discover_shares_lists_iso_subdirs() { + let dir = tempdir().unwrap(); + std::fs::create_dir_all(dir.path().join("win10-pro")).unwrap(); + std::fs::create_dir_all(dir.path().join("win11")).unwrap(); + std::fs::create_dir_all(dir.path().join(".hidden")).unwrap(); + let m = SmbManager::new(dir.path().into()); + assert_eq!(m.discover_shares(), vec!["win10-pro", "win11"]); + } + + #[test] + fn write_conf_emits_share_blocks() { + let dir = tempdir().unwrap(); + std::fs::create_dir_all(dir.path().join("win10")).unwrap(); + let m = SmbManager::new(dir.path().into()); + let shares = m.write_conf().unwrap(); + assert_eq!(shares, vec!["win10"]); + let conf = std::fs::read_to_string(dir.path().join("smb.conf")).unwrap(); + assert!(conf.contains("[global]")); + assert!(conf.contains("[win10]")); + assert!(conf.contains("guest ok = yes")); + assert!(conf.contains("read only = yes")); + assert!(conf.contains("server min protocol = SMB2")); + } +} diff --git a/crates/iso-store/src/store.rs b/crates/iso-store/src/store.rs new file mode 100644 index 0000000..7cda264 --- /dev/null +++ b/crates/iso-store/src/store.rs @@ -0,0 +1,430 @@ +//! On-disk ISO store with sidecar metadata files. + +use crate::entry::{BootEntry, BootKind, KernelArgs}; +use crate::introspect::{introspect, DistroFamily, IntrospectionReport}; +use bytes::Bytes; +use parking_lot::RwLock; +use pxeforge_core::{Error, Result}; +use serde::{Deserialize, Serialize}; +use sha2::{Digest, Sha256}; +use std::collections::HashMap; +use std::path::{Path, PathBuf}; +use std::sync::Arc; +use time::OffsetDateTime; +use tokio::io::AsyncWriteExt; + +/// Where the bytes for an ISO actually live. +/// +/// The default is `Local` — uploaded ISOs sit in `/.iso`. +/// `Nfs` entries point at a file inside a remote share that the +/// `NfsManager` is keeping mounted. We resolve the on-disk path lazily +/// in [`IsoStore::iso_path_for`] using the `nfs_root` set at startup. +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(tag = "kind", rename_all = "snake_case")] +pub enum IsoSource { + Local, + Nfs { + mount_id: String, + /// Path relative to the mount point — typically just the filename. + relative_path: String, + }, +} + +impl Default for IsoSource { + fn default() -> Self { + Self::Local + } +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct IsoMeta { + /// Stable slug used in URLs (derived from the uploaded filename). + pub id: String, + pub filename: String, + pub size_bytes: u64, + pub sha256_hex: Option, + #[serde(with = "time::serde::rfc3339")] + pub uploaded_at: OffsetDateTime, + pub introspection: IntrospectionReport, + /// Boot entries this ISO currently exposes in the PXE menu. Usually one, + /// occasionally two (BIOS + UEFI variant for some RHEL ISOs). + pub boot_entries: Vec, + /// Source of the bytes — local upload (default) or NFS mount. + /// Old `meta.json` files without this field deserialize as `Local`. + #[serde(default)] + pub source: IsoSource, +} + +pub struct UploadHandle { + pub id: String, + pub partial_path: PathBuf, + final_path: PathBuf, + filename: String, + hasher: Sha256, + bytes_written: u64, + file: tokio::fs::File, +} + +impl UploadHandle { + pub async fn write_chunk(&mut self, chunk: &Bytes) -> Result<()> { + self.file.write_all(chunk).await?; + self.hasher.update(chunk); + self.bytes_written += chunk.len() as u64; + Ok(()) + } + + /// Flush, close, and atomically rename to the final path. Returns the + /// final `IsoMeta` including introspection results. + pub async fn finish(mut self, store: &IsoStore) -> Result { + self.file.flush().await?; + self.file.sync_all().await?; + drop(self.file); + tokio::fs::rename(&self.partial_path, &self.final_path).await?; + + let hash = hex::encode(self.hasher.finalize()); + let introspection = { + let p = self.final_path.clone(); + tokio::task::spawn_blocking(move || introspect(&p)) + .await + .map_err(|e| Error::Other(e.into()))? + }; + + let boot_entries = generate_boot_entries(&self.id, &self.filename, &introspection); + let meta = IsoMeta { + id: self.id.clone(), + filename: self.filename, + size_bytes: self.bytes_written, + sha256_hex: Some(hash), + uploaded_at: OffsetDateTime::now_utc(), + introspection, + boot_entries, + source: IsoSource::Local, + }; + store.persist_meta(&meta).await?; + store.insert(meta.clone()); + Ok(meta) + } + + pub async fn abort(self) -> Result<()> { + drop(self.file); + let _ = tokio::fs::remove_file(&self.partial_path).await; + Ok(()) + } +} + +#[derive(Debug, Default)] +struct Inner { + isos: HashMap, +} + +#[derive(Debug, Clone)] +pub struct IsoStore { + iso_dir: Arc, + /// Where NFS mounts land on disk. Set at startup via + /// [`IsoStore::set_nfs_root`]; required for resolving any + /// `IsoSource::Nfs` entry. + nfs_root: Arc>>, + inner: Arc>, +} + +impl IsoStore { + pub fn new(iso_dir: PathBuf) -> Self { + Self { + iso_dir: Arc::new(iso_dir), + nfs_root: Arc::new(RwLock::new(None)), + inner: Arc::new(RwLock::new(Inner::default())), + } + } + + /// Tell the store where NFS mounts live. Without this set, + /// `IsoSource::Nfs` entries cannot be resolved to a file path. + pub fn set_nfs_root(&self, root: PathBuf) { + *self.nfs_root.write() = Some(root); + } + + pub async fn ensure_dirs(&self) -> Result<()> { + tokio::fs::create_dir_all(self.iso_dir.as_path()).await?; + Ok(()) + } + + /// Scan the ISO directory on startup and load any sidecar `.meta.json` + /// files. ISOs without metadata are introspected lazily — we don't block + /// startup on potentially many GB of scanning. + pub async fn load_from_disk(&self) -> Result<()> { + self.ensure_dirs().await?; + let mut entries = tokio::fs::read_dir(self.iso_dir.as_path()).await?; + while let Some(e) = entries.next_entry().await? { + let p = e.path(); + if p.extension().and_then(|s| s.to_str()) != Some("json") { continue; } + if !p.file_name().and_then(|s| s.to_str()).map_or(false, |n| n.ends_with(".meta.json")) { + continue; + } + if let Ok(text) = tokio::fs::read_to_string(&p).await { + if let Ok(meta) = serde_json::from_str::(&text) { + self.insert(meta); + } + } + } + Ok(()) + } + + fn insert(&self, meta: IsoMeta) { + self.inner.write().isos.insert(meta.id.clone(), meta); + } + + async fn persist_meta(&self, meta: &IsoMeta) -> Result<()> { + let path = self.meta_path(&meta.id); + let text = serde_json::to_string_pretty(meta).map_err(|e| Error::Other(e.into()))?; + tokio::fs::write(path, text).await?; + Ok(()) + } + + fn meta_path(&self, id: &str) -> PathBuf { + self.iso_dir.join(format!("{id}.meta.json")) + } + + fn iso_path(&self, id: &str) -> PathBuf { + self.iso_dir.join(format!("{id}.iso")) + } + + pub async fn begin_upload(&self, filename: &str) -> Result { + self.ensure_dirs().await?; + let id = slugify(filename); + let final_path = self.iso_path(&id); + if final_path.exists() { + return Err(Error::Invalid(format!("iso '{id}' already exists"))); + } + let partial_path = self.iso_dir.join(format!("{id}.partial")); + let file = tokio::fs::File::create(&partial_path).await?; + Ok(UploadHandle { + id, + partial_path, + final_path, + filename: filename.to_string(), + hasher: Sha256::new(), + bytes_written: 0, + file, + }) + } + + /// Readiness probe — is the backing directory reachable? Distinct from + /// "is there content in it", to avoid an empty store failing health. + #[must_use] + pub fn list_ok(&self) -> bool { + std::fs::read_dir(self.iso_dir.as_path()).is_ok() + } + + #[must_use] + pub fn list(&self) -> Vec { + let g = self.inner.read(); + let mut v: Vec<_> = g.isos.values().cloned().collect(); + v.sort_by(|a, b| b.uploaded_at.cmp(&a.uploaded_at)); + v + } + + #[must_use] + pub fn get(&self, id: &str) -> Option { + self.inner.read().isos.get(id).cloned() + } + + /// Resolve an ISO id to its on-disk path, if any. For local entries + /// this is `/.iso`; for NFS entries it's + /// `//`. Returns None if the file + /// is missing or the source isn't resolvable (e.g. NFS share + /// unmounted). + pub fn iso_path_for(&self, id: &str) -> Option { + let meta = self.get(id)?; + let path = match &meta.source { + IsoSource::Local => self.iso_path(id), + IsoSource::Nfs { + mount_id, + relative_path, + } => { + let root = self.nfs_root.read().clone()?; + root.join(mount_id).join(relative_path) + } + }; + if path.exists() { + Some(path) + } else { + None + } + } + + /// Delete an ISO and its sidecar metadata. Only acts on local ISOs; + /// for NFS-backed ISOs the operator must remove the file from the + /// share or unmount the NFS share entirely. + pub async fn delete(&self, id: &str) -> Result<()> { + let meta = self.get(id); + let is_local = matches!(meta.as_ref().map(|m| &m.source), Some(IsoSource::Local) | None); + if is_local { + let iso = self.iso_path(id); + let meta_path = self.meta_path(id); + let _ = tokio::fs::remove_file(&iso).await; + let _ = tokio::fs::remove_file(&meta_path).await; + } + self.inner.write().isos.remove(id); + Ok(()) + } + + /// Register an externally-sourced ISO (e.g. NFS-mounted). Used by + /// `NfsManager` after walking a freshly-mounted share. We do **not** + /// persist a `meta.json` on disk for these — the source of truth is + /// the share itself, and the NFS manager re-scans on startup. + pub fn register_external( + &self, + id: String, + filename: String, + size_bytes: u64, + introspection: IntrospectionReport, + boot_entries: Vec, + source: IsoSource, + ) { + let meta = IsoMeta { + id: id.clone(), + filename, + size_bytes, + sha256_hex: None, + uploaded_at: OffsetDateTime::now_utc(), + introspection, + boot_entries, + source, + }; + self.inner.write().isos.insert(id, meta); + } + + /// Drop every entry that belongs to `mount_id`. Used by the NFS + /// manager when an operator removes a share, or before re-scanning + /// to clean out stale entries. + pub fn drop_external_source(&self, mount_id: &str) { + let mut g = self.inner.write(); + g.isos.retain(|_, m| { + !matches!(&m.source, IsoSource::Nfs { mount_id: mid, .. } if mid == mount_id) + }); + } +} + +fn slugify(filename: &str) -> String { + let stem = Path::new(filename) + .file_stem() + .and_then(|s| s.to_str()) + .unwrap_or("iso"); + slugify_str(stem) +} + +/// Slugify an arbitrary string to lowercase ASCII alphanumerics, hyphens, +/// and underscores. Public so the NFS manager can mint ids that follow the +/// same rules as upload-time ISO ids. +#[must_use] +pub fn slugify_str(input: &str) -> String { + input + .chars() + .map(|c| { + if c.is_ascii_alphanumeric() || c == '-' || c == '_' { + c.to_ascii_lowercase() + } else { + '-' + } + }) + .collect::() + .trim_matches('-') + .to_string() +} + +/// Public wrapper around [`generate_boot_entries`] so the NFS manager can +/// build entries for shares it just scanned, using the same logic as the +/// upload pipeline. Re-exported via the crate root. +#[must_use] +pub fn generate_boot_entries_for( + id: &str, + filename: &str, + r: &IntrospectionReport, +) -> Vec { + generate_boot_entries(id, filename, r) +} + +/// Build `BootEntry`s from the introspection report. URLs are relative — +/// the HTTP layer rewrites them with the public base URL per request. +fn generate_boot_entries(id: &str, filename: &str, r: &IntrospectionReport) -> Vec { + let title = r.volume_label.clone().unwrap_or_else(|| filename.to_string()); + match r.family { + DistroFamily::WindowsPe if r.has_boot_wim => { + // Standard wimboot chain. Paths are in-ISO; the HTTP layer maps + // `iso//` to on-disk extraction via ISO9660 lookup. + let base = format!("iso/{id}"); + vec![BootEntry { + id: format!("{id}-winpe"), + title: format!("{title} (Windows / wimboot)"), + kind: BootKind::Wimboot { + wimboot_url: "ipxe/wimboot".to_string(), + files: vec![ + ("bootmgr".into(), format!("{base}/bootmgr")), + ("bootmgr.efi".into(), format!("{base}/bootmgr.efi")), + ("bcd".into(), format!("{base}/boot/bcd")), + ("boot.sdi".into(), format!("{base}/boot/boot.sdi")), + ("boot.wim".into(), format!("{base}/sources/boot.wim")), + ], + }, + }] + } + fam if r.kernel_path.is_some() => { + let base = format!("iso/{id}"); + let kernel_url = format!("{base}{}", r.kernel_path.as_deref().unwrap_or("")); + let initrd_urls = r.initrd_paths.iter().map(|p| format!("{base}{p}")).collect(); + let args = KernelArgs { cmdline: linux_cmdline(fam, id) }; + vec![BootEntry { + id: format!("{id}-linux"), + title, + kind: BootKind::LinuxKernel { kernel_url, initrd_urls, args }, + }] + } + _ => { + // Last-resort SAN boot. Won't work for large modern ISOs, but + // lets the ISO at least appear in the menu. + vec![BootEntry { + id: format!("{id}-sanboot"), + title: format!("{title} (SAN boot — may fail for >1GiB ISOs)"), + kind: BootKind::SanBootIso { iso_url: format!("iso/{id}.iso") }, + }] + } + } +} + +fn linux_cmdline(family: DistroFamily, id: &str) -> String { + // The HTTP layer resolves `${base-url}` at render time. + let iso_url = format!("${{base-url}}/iso/{id}.iso"); + match family { + DistroFamily::DebianUbuntu => format!( + "boot=casper netboot=url url={iso_url} ip=dhcp ---" + ), + DistroFamily::RhelFedora => format!( + "inst.repo={iso_url} inst.stage2={iso_url} ip=dhcp" + ), + DistroFamily::OpenSuse => format!( + "install={iso_url} netsetup=dhcp" + ), + DistroFamily::Arch => format!( + "archiso_http_srv=${{base-url}}/iso/ archisobasedir=arch ip=dhcp copytoram" + ), + DistroFamily::Alpine => format!( + "alpine_repo=${{base-url}}/iso/{id}/ modloop=${{base-url}}/iso/{id}/boot/modloop-lts ip=dhcp" + ), + _ => "ip=dhcp".into(), + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn slugify_basic() { + // Upload filenames come from multipart parts (no path components); + // file_stem drops the extension, then non-alphanumerics become `-`. + assert_eq!(slugify("Ubuntu 24.04 Desktop.iso"), "ubuntu-24-04-desktop"); + assert_eq!(slugify("Rocky-9.4-x86_64-dvd.iso"), "rocky-9-4-x86_64-dvd"); + assert_eq!(slugify("arch.iso"), "arch"); + // If a path sneaks in, file_stem strips the directory — OK, not a hazard. + assert_eq!(slugify("/etc/passwd"), "passwd"); + } +} diff --git a/crates/iso-store/src/windows.rs b/crates/iso-store/src/windows.rs new file mode 100644 index 0000000..4e153bc --- /dev/null +++ b/crates/iso-store/src/windows.rs @@ -0,0 +1,209 @@ +//! Windows ISO post-processing. Patches `boot.wim` (image index 2, WinPE) +//! with two plain-text files so the client hits our SMB share and runs +//! Windows Setup from there. +//! +//! Credit: the *technique* (not the code) is adapted from Bootimus +//! (Apache-2.0, https://github.com/garybowers/bootimus). We reimplement in +//! Rust and shell out to `wimlib-imagex` at container runtime because +//! there is no maintained pure-Rust wimlib binding. +//! +//! What we inject — and why these are safe: +//! +//! * `Windows/System32/winpeshl.ini`: a plain INI that WinPE reads at +//! startup and uses to launch `startnet.cmd` instead of the default +//! interactive shell. No driver, no executable, no signed code. +//! +//! * `Windows/System32/startnet.cmd`: a batch file that runs `wpeinit`, +//! waits for a DHCP lease, then `net use Z: \\\ /user:guest` +//! and invokes `Z:\setup.exe`. Everything the client executes is stock +//! Microsoft-signed WinPE + `setup.exe`. We add zero native code to +//! the client's boot path. The trust store is untouched. +//! +//! What we *do not* inject: +//! * No `.sys` drivers, signed or otherwise. +//! * No `.cer`, no registry hive edits, no `bcdedit` changes. +//! * No `bypass*` Windows 11 tweaks (operators who want those can use an +//! unattend.xml; they will never be injected silently by us). + +use std::path::{Path, PathBuf}; +use std::process::Command; + +/// Public identifier of whether/how Windows patching ran for an ISO. +/// Stored on `IsoMeta` so the UI can show a clear "SMB ready" indicator. +#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq, Eq)] +#[serde(rename_all = "snake_case")] +pub enum WinPatchState { + /// Not a Windows ISO, nothing to do. + NotApplicable, + /// Windows ISO detected but Windows support is disabled in settings. + DisabledBySettings, + /// wimlib-imagex isn't on PATH — operator needs to install the runtime + /// dependency before Windows ISOs can be patched. + WimlibMissing, + /// Patching succeeded; the ISO's boot.wim was rewritten in-place. + Patched { smb_host: String, smb_share: String }, + /// wimlib returned an error. + Failed { reason: String }, +} + +pub struct WimPatcher { + pub smb_host: String, + pub smb_share: String, +} + +impl WimPatcher { + #[must_use] + pub fn new(smb_host: String, smb_share: String) -> Self { + Self { smb_host, smb_share } + } + + /// Apply WinPE patches to `boot.wim` inside `extracted_iso_dir`. Returns + /// a state enum — never panics. Designed to be safely re-runnable; each + /// call rebuilds image 2 from scratch via `wimlib-imagex update`. + pub fn patch(&self, extracted_iso_dir: &Path) -> WinPatchState { + if !wimlib_present() { + return WinPatchState::WimlibMissing; + } + let boot_wim = extracted_iso_dir.join("sources").join("boot.wim"); + if !boot_wim.exists() { + // Not a standard Windows install ISO layout. + return WinPatchState::NotApplicable; + } + + let work = match tempfile::tempdir() { + Ok(d) => d, + Err(e) => return WinPatchState::Failed { reason: format!("tempdir: {e}") }, + }; + + // Stage the two files we want present at /Windows/System32/. + let staging = work.path().join("stage/Windows/System32"); + if let Err(e) = std::fs::create_dir_all(&staging) { + return WinPatchState::Failed { reason: format!("staging mkdir: {e}") }; + } + if let Err(e) = std::fs::write(staging.join("winpeshl.ini"), WINPESHL_INI) { + return WinPatchState::Failed { reason: format!("write winpeshl.ini: {e}") }; + } + let startnet = render_startnet(&self.smb_host, &self.smb_share); + if let Err(e) = std::fs::write(staging.join("startnet.cmd"), startnet) { + return WinPatchState::Failed { reason: format!("write startnet.cmd: {e}") }; + } + + // Build a wimlib update command file: + // add /Windows/System32 /Windows/System32 + let update_file = work.path().join("update.cmd"); + let update_cmd = format!( + "add \"{}\" \"/Windows/System32\"\n", + staging.display() + ); + if let Err(e) = std::fs::write(&update_file, update_cmd) { + return WinPatchState::Failed { reason: format!("write update.cmd: {e}") }; + } + + // Run wimlib-imagex update against image index 2 (WinPE). + let output = Command::new("wimlib-imagex") + .arg("update") + .arg(&boot_wim) + .arg("2") + .arg("--rebuild") + .arg("--command-file") + .arg(&update_file) + .output(); + match output { + Ok(o) if o.status.success() => WinPatchState::Patched { + smb_host: self.smb_host.clone(), + smb_share: self.smb_share.clone(), + }, + Ok(o) => WinPatchState::Failed { + reason: format!( + "wimlib-imagex update failed (exit {:?}): {}", + o.status.code(), + String::from_utf8_lossy(&o.stderr) + ), + }, + Err(e) => WinPatchState::Failed { reason: format!("spawn wimlib-imagex: {e}") }, + } + } +} + +fn wimlib_present() -> bool { + which("wimlib-imagex").is_some() +} + +fn which(cmd: &str) -> Option { + let paths = std::env::var_os("PATH")?; + for dir in std::env::split_paths(&paths) { + let p = dir.join(cmd); + if p.is_file() { return Some(p); } + } + None +} + +/// The winpeshl.ini contents. This file tells WinPE "don't run cmd.exe +/// interactively; run startnet.cmd and exit when it returns". +const WINPESHL_INI: &str = "[LaunchApps]\r\n\ +\"%SYSTEMROOT%\\system32\\startnet.cmd\"\r\n"; + +/// Render startnet.cmd. The script: +/// 1. Loads WinPE networking (`wpeinit`) and renews DHCP. +/// 2. Waits until the SMB server is reachable. +/// 3. Maps the install share to Z: as guest. +/// 4. Runs setup.exe from the share. +/// +/// Uses CRLF line endings because WinPE cmd.exe requires them for .cmd files +/// created on unix hosts. +fn render_startnet(host: &str, share: &str) -> String { + let mut s = String::new(); + let host = host.trim(); + let share = share.trim_matches('/'); + s.push_str("@echo off\r\n"); + s.push_str("echo PXEForge WinPE bootstrap\r\n"); + s.push_str("wpeinit\r\n"); + s.push_str("ipconfig /renew\r\n"); + s.push_str(&format!("echo Waiting for SMB server {host} to be reachable...\r\n")); + s.push_str(&format!(":waitsmb\r\nping -n 1 -w 500 {host} >nul && goto havenet\r\ntimeout /t 2 /nobreak >nul\r\ngoto waitsmb\r\n")); + s.push_str(":havenet\r\n"); + s.push_str(&format!("echo Mapping install media from \\\\{host}\\{share}...\r\n")); + s.push_str(&format!(":mapshare\r\nnet use Z: \\\\{host}\\{share} /user:guest \"\" /persistent:no && goto mapped\r\ntimeout /t 3 /nobreak >nul\r\ngoto mapshare\r\n")); + s.push_str(":mapped\r\n"); + s.push_str("echo Starting Windows Setup\r\n"); + s.push_str("Z:\\setup.exe\r\n"); + s.push_str("echo Setup exited; dropping to cmd for diagnosis\r\n"); + s.push_str("cmd\r\n"); + s +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn startnet_has_crlf_and_no_testsigning() { + let s = render_startnet("10.0.0.5", "win11"); + assert!(s.contains("\r\n")); + // Hard guard: must never include trust-store or driver-policy mutations. + assert!(!s.to_lowercase().contains("bcdedit")); + assert!(!s.to_lowercase().contains("testsigning")); + assert!(!s.to_lowercase().contains("certutil")); + assert!(s.contains("net use Z:")); + assert!(s.contains("setup.exe")); + } + + #[test] + fn patcher_reports_wimlib_missing_gracefully() { + // We don't assume wimlib is present in CI; this checks the missing + // branch is the noisy-but-survivable one we expect. + let patcher = WimPatcher::new("10.0.0.5".into(), "win11".into()); + let dir = tempfile::tempdir().unwrap(); + // Construct a fake "sources/boot.wim". + std::fs::create_dir_all(dir.path().join("sources")).unwrap(); + std::fs::write(dir.path().join("sources/boot.wim"), b"placeholder").unwrap(); + let result = patcher.patch(dir.path()); + // Depending on whether wimlib is installed on the runner, we get + // either WimlibMissing or Failed(...). Both mean "no silent + // success with trust-store mutation" — that's the invariant. + assert!(matches!( + result, + WinPatchState::WimlibMissing | WinPatchState::Failed { .. } + )); + } +} diff --git a/crates/pxeforge/Cargo.toml b/crates/pxeforge/Cargo.toml new file mode 100644 index 0000000..3061814 --- /dev/null +++ b/crates/pxeforge/Cargo.toml @@ -0,0 +1,32 @@ +[package] +name = "pxeforge" +version.workspace = true +edition.workspace = true +license.workspace = true +authors.workspace = true +description = "Container-native PXE boot server — a lightweight Rust clone of iVentoy" + +[lints] +workspace = true + +[[bin]] +name = "pxeforge" +path = "src/main.rs" + +[dependencies] +pxeforge-core.workspace = true +pxeforge-dhcp-proxy.workspace = true +pxeforge-tftp.workspace = true +pxeforge-http-api.workspace = true +pxeforge-iso-store.workspace = true +pxeforge-ipxe-assets.workspace = true +tokio.workspace = true +axum.workspace = true +tracing.workspace = true +tracing-subscriber.workspace = true +anyhow.workspace = true +clap.workspace = true +serde.workspace = true +toml.workspace = true +bytes.workspace = true +time.workspace = true diff --git a/crates/pxeforge/src/main.rs b/crates/pxeforge/src/main.rs new file mode 100644 index 0000000..85518d2 --- /dev/null +++ b/crates/pxeforge/src/main.rs @@ -0,0 +1,372 @@ +//! PXEForge entry point. Wires the three protocol servers (DHCP proxy, +//! TFTP, HTTP) to the shared ISO store and client registry, then runs +//! them concurrently. + +use clap::{Parser, Subcommand}; +use pxeforge_core::{ClientRegistry, Config, DhcpMode, GateQueue, LogBus, LogBusLayer, SettingsStore}; +use pxeforge_dhcp_proxy::DhcpProxyServer; +use pxeforge_http_api::{build_router, AppState}; +use pxeforge_iso_store::{IsoStore, NfsManager, SmbManager}; +use std::sync::Arc; +use pxeforge_tftp::TftpServer; +use std::net::{Ipv4Addr, SocketAddr}; +use std::path::PathBuf; +use tokio::io::AsyncReadExt; + +#[derive(Debug, Parser)] +#[command(name = "pxeforge", about = "Container-native PXE boot server", version)] +struct Cli { + /// Path to a TOML config file. All fields have sensible defaults and can + /// also be overridden with env vars (PXEFORGE_*). + #[arg(long, env = "PXEFORGE_CONFIG")] + config: Option, + + #[command(subcommand)] + command: Option, +} + +#[derive(Debug, Subcommand)] +enum Command { + /// Import every `.iso` from a host directory into the ISO store, running + /// the same introspection + boot-entry generation pass the web upload + /// does. Useful for pre-populating the store before starting the server + /// (e.g. in a CI setup or after copying ISOs to a fresh PVC). + /// + /// Example: + /// docker run --rm \ + /// -v /my/isos:/seed:ro \ + /// -v pxeforge-data:/var/lib/pxeforge/isos \ + /// pxeforge:0.1.0 seed --from /seed + Seed { + /// Source directory containing one or more `.iso` files. + #[arg(long)] + from: PathBuf, + /// Don't actually import — print what would happen. + #[arg(long)] + dry_run: bool, + }, +} + +#[tokio::main] +async fn main() -> anyhow::Result<()> { + // The LogBus has to exist before we install tracing layers, since one + // of those layers fans out into it. The web UI's Terminal tab + // subscribes to this bus over SSE. + let log_bus = LogBus::new(500); + init_tracing(log_bus.clone()); + + let cli = Cli::parse(); + let mut config = match &cli.config { + Some(p) if p.exists() => Config::from_toml_file(p)?, + _ => Config::default(), + }; + config.apply_env(); + + // Dispatch subcommands before bringing up the server. + if let Some(cmd) = cli.command { + return run_command(cmd, config).await; + } + + pxeforge_ipxe_assets::log_availability(); + + let our_ip = match config.server.public_ip { + Some(ip) => { + tracing::info!("using configured public IP: {ip}"); + ip + } + None => match detect_primary_ipv4() { + Some(ip) => { + tracing::info!("auto-detected public IPv4: {ip}"); + ip + } + None => { + // Without a reachable IP, every generated iPXE URL would + // be unreachable from real clients. Exit with a clear + // message instead of serving a broken deployment. + anyhow::bail!( + "could not detect a non-loopback IPv4 address for this host. \ + Set PXEFORGE_PUBLIC_IP= (e.g. `-e PXEFORGE_PUBLIC_IP=10.0.0.5` \ + in docker, or the env block in OpenShift Deployment) to advertise \ + a specific IP to PXE clients." + ); + } + }, + }; + let public_base_url = format!("http://{our_ip}"); + + let iso_store = IsoStore::new(config.paths.iso_dir.clone()); + iso_store.load_from_disk().await?; + let clients = ClientRegistry::new(); + let gates = GateQueue::new(); + let settings = SettingsStore::load_or_default(&config.paths.work_dir); + + // Build the SMB manager unconditionally — it starts/stops on the + // Windows toggle, not at process start. If the `smb_dir` isn't + // writable (e.g. read-only filesystem), the manager will surface that + // as `SmbState::Failed` when the operator flips the toggle. + let smb = Arc::new(SmbManager::new(config.paths.smb_dir.clone())); + if settings.snapshot().windows_enabled { + let _ = smb.start(); + } + + // NFS manager. The mount root has to be set on the IsoStore *before* + // we replay any persisted mounts, otherwise an in-memory IsoMeta + // pointing at an NFS source can't resolve to a path. + let nfs = NfsManager::new(&config.paths.work_dir, iso_store.clone()); + iso_store.set_nfs_root(nfs.mount_root()); + if let Err(e) = nfs.load_and_remount().await { + tracing::warn!(target: "pxeforge::nfs", "could not reload NFS mounts: {e}"); + } + + // Sniff network details for the Network tab. None of these are + // required for PXE to work — they're informational, surfaced in the + // UI so an operator doesn't have to drop to a shell to find their + // own gateway. + let net = detect_network_info(our_ip); + tracing::info!( + target: "pxeforge::net", + nic = %net.nic_name, mask = %net.subnet_mask, gateway = %net.gateway, + "network info" + ); + + let state = AppState { + iso_store: iso_store.clone(), + clients: clients.clone(), + settings: settings.clone(), + gates: gates.clone(), + smb: Some(smb.clone()), + nfs: nfs.clone(), + log_bus: log_bus.clone(), + started_at: time::OffsetDateTime::now_utc(), + public_base_url: public_base_url.clone(), + nic_name: net.nic_name, + subnet_mask: net.subnet_mask, + gateway: net.gateway, + }; + + let http_addr = SocketAddr::new(config.server.http_bind, config.server.http_port); + let router = build_router(state); + let http_task = tokio::spawn(async move { + let listener = tokio::net::TcpListener::bind(http_addr).await?; + tracing::info!(target: "pxeforge::http", "HTTP listening on {http_addr}"); + axum::serve(listener, router).await?; + Ok::<_, anyhow::Error>(()) + }); + + let tftp = TftpServer::new(config.server.tftp_bind, config.server.tftp_port, clients.clone()); + let tftp_task = tokio::spawn(tftp.run()); + + let dhcp_task: tokio::task::JoinHandle> = match config.network.dhcp_mode { + DhcpMode::Proxy => { + let s = DhcpProxyServer::new( + config.network.dhcp_bind, + config.network.dhcp_port, + config.network.pxe_port, + our_ip, + public_base_url.clone(), + clients.clone(), + ); + tokio::spawn(s.run()) + } + DhcpMode::Disabled => { + tracing::info!(target: "pxeforge::dhcp", "DHCP disabled — external DHCP must set next-server + filename"); + tokio::spawn(async { futures_forever().await }) + } + }; + + tokio::select! { + r = http_task => { tracing::error!("http task exited: {:?}", r); r??; } + r = tftp_task => { tracing::error!("tftp task exited: {:?}", r); r??; } + r = dhcp_task => { tracing::error!("dhcp task exited: {:?}", r); r??; } + } + Ok(()) +} + +async fn futures_forever() -> anyhow::Result<()> { + std::future::pending::<()>().await; + Ok(()) +} + +async fn run_command(cmd: Command, config: Config) -> anyhow::Result<()> { + match cmd { + Command::Seed { from, dry_run } => seed_from_dir(&from, &config, dry_run).await, + } +} + +/// Walk `src` for `*.iso`, stream each file through the normal upload path. +/// Reuses `IsoStore::begin_upload` / `finish` so the resulting meta on disk +/// is identical to a web upload — same slug rules, same introspection, same +/// sha256. +async fn seed_from_dir(src: &std::path::Path, config: &Config, dry_run: bool) -> anyhow::Result<()> { + let store = IsoStore::new(config.paths.iso_dir.clone()); + store.load_from_disk().await?; + let mut entries = tokio::fs::read_dir(src).await?; + let mut imported = 0u32; + let mut skipped = 0u32; + while let Some(entry) = entries.next_entry().await? { + let p = entry.path(); + if p.extension().and_then(|e| e.to_str()).map(str::to_ascii_lowercase).as_deref() != Some("iso") { + continue; + } + let filename = p + .file_name() + .and_then(|s| s.to_str()) + .ok_or_else(|| anyhow::anyhow!("non-utf8 filename: {}", p.display()))? + .to_string(); + println!(" {} ({} bytes)", filename, tokio::fs::metadata(&p).await?.len()); + if dry_run { continue; } + + let mut handle = match store.begin_upload(&filename).await { + Ok(h) => h, + Err(pxeforge_core::Error::Invalid(e)) => { + eprintln!(" skip: {e}"); + skipped += 1; + continue; + } + Err(e) => return Err(e.into()), + }; + let mut file = tokio::fs::File::open(&p).await?; + let mut buf = vec![0u8; 1024 * 1024]; + loop { + let n = file.read(&mut buf).await?; + if n == 0 { break; } + let chunk: bytes::Bytes = buf[..n].to_vec().into(); + handle.write_chunk(&chunk).await?; + } + let meta = handle.finish(&store).await?; + println!(" -> id={} family={:?}", meta.id, meta.introspection.family); + imported += 1; + } + println!("\nimported={imported} skipped={skipped} {}", if dry_run { "(dry run)" } else { "" }); + Ok(()) +} + +/// Pick the first non-loopback IPv4 address on this host. Returns `None` if +/// detection fails — callers should fail startup rather than silently using +/// a loopback address (which would give every PXE client an unreachable +/// `http://127.0.0.1/...`). Users in multi-homed setups should set +/// `PXEFORGE_PUBLIC_IP` explicitly. +fn detect_primary_ipv4() -> Option { + // First try: route to the public internet. `UdpSocket::connect` to a + // well-known external address causes the OS to populate `local_addr` + // with the source IP it would use — this is the standard "which of my + // interfaces is the internet-facing one" idiom. + if let Ok(sock) = std::net::UdpSocket::bind("0.0.0.0:0") { + if sock.connect("8.8.8.8:80").is_ok() { + if let Ok(std::net::SocketAddr::V4(addr)) = sock.local_addr() { + let v4 = *addr.ip(); + if !v4.is_loopback() && !v4.is_unspecified() { + return Some(v4); + } + } + } + } + // Fallback: hostname resolution. + if let Ok(hostname) = hostname() { + if let Ok(addrs) = std::net::ToSocketAddrs::to_socket_addrs(&format!("{hostname}:0")) { + for a in addrs { + if let std::net::IpAddr::V4(v4) = a.ip() { + if !v4.is_loopback() && !v4.is_unspecified() { + return Some(v4); + } + } + } + } + } + None +} + +fn hostname() -> std::io::Result { + // Tiny shim: read /proc/sys/kernel/hostname on Linux, fall back to `uname -n` via env. + if let Ok(h) = std::fs::read_to_string("/proc/sys/kernel/hostname") { + return Ok(h.trim().to_string()); + } + std::env::var("HOSTNAME").map_err(|_| std::io::Error::new( + std::io::ErrorKind::NotFound, "no hostname", + )) +} + +fn init_tracing(bus: Arc) { + use tracing_subscriber::{fmt, prelude::*, EnvFilter}; + let filter = EnvFilter::try_from_env("PXEFORGE_LOG") + .unwrap_or_else(|_| EnvFilter::new("info,pxeforge=debug")); + tracing_subscriber::registry() + .with(filter) + .with(fmt::layer().with_target(true)) + .with(LogBusLayer::new(bus)) + .init(); +} + +#[derive(Debug, Default)] +struct NetworkInfo { + nic_name: String, + subnet_mask: String, + gateway: String, +} + +/// Best-effort population of the Network tab's read-only fields. We shell +/// out to standard Linux tools (`ip route`) instead of pulling in a +/// netlink crate — these calls run once at startup, so the cost of +/// spawning a process is negligible. Empty strings are perfectly fine +/// fallbacks; the UI shows a `?` placeholder. +fn detect_network_info(our_ip: Ipv4Addr) -> NetworkInfo { + use std::process::Command; + let mut info = NetworkInfo::default(); + + // `ip -o -f inet addr show` lists every interface with its + // `inet a.b.c.d/mask`. We match the line that mentions our IP. + if let Ok(out) = Command::new("ip").args(["-o", "-f", "inet", "addr", "show"]).output() { + if let Ok(text) = String::from_utf8(out.stdout) { + for line in text.lines() { + if !line.contains(&our_ip.to_string()) { + continue; + } + // Format: "2: enp1s0 inet 10.0.0.5/24 brd ..." + let mut parts = line.split_whitespace(); + let _idx = parts.next(); + if let Some(name) = parts.next() { + info.nic_name = name.trim_end_matches(':').to_string(); + } + if let Some(addr) = line.split_whitespace().find(|p| p.contains('/')) { + if let Some((_, prefix_str)) = addr.split_once('/') { + if let Ok(prefix) = prefix_str.parse::() { + info.subnet_mask = prefix_to_dotted(prefix); + } + } + } + break; + } + } + } + + // `ip route show default` -> "default via 10.0.0.1 dev enp1s0 ..." + if let Ok(out) = Command::new("ip").args(["route", "show", "default"]).output() { + if let Ok(text) = String::from_utf8(out.stdout) { + if let Some(line) = text.lines().next() { + let mut parts = line.split_whitespace(); + while let Some(p) = parts.next() { + if p == "via" { + if let Some(gw) = parts.next() { + info.gateway = gw.to_string(); + } + break; + } + } + } + } + } + + info +} + +fn prefix_to_dotted(prefix: u8) -> String { + let prefix = prefix.min(32); + let mask: u32 = if prefix == 0 { 0 } else { u32::MAX << (32 - prefix) }; + format!( + "{}.{}.{}.{}", + (mask >> 24) & 0xff, + (mask >> 16) & 0xff, + (mask >> 8) & 0xff, + mask & 0xff + ) +} diff --git a/crates/tftp/Cargo.toml b/crates/tftp/Cargo.toml new file mode 100644 index 0000000..8068b10 --- /dev/null +++ b/crates/tftp/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "pxeforge-tftp" +version.workspace = true +edition.workspace = true +license.workspace = true +authors.workspace = true +description = "TFTP server (RFC 1350/2347/2348/2349/7440) for iPXE chainload" + +[lints] +workspace = true + +[dependencies] +pxeforge-core.workspace = true +pxeforge-ipxe-assets.workspace = true +tokio.workspace = true +socket2.workspace = true +tracing.workspace = true +thiserror.workspace = true +anyhow.workspace = true +bytes.workspace = true diff --git a/crates/tftp/src/lib.rs b/crates/tftp/src/lib.rs new file mode 100644 index 0000000..53f2c91 --- /dev/null +++ b/crates/tftp/src/lib.rs @@ -0,0 +1,17 @@ +//! Minimal TFTP server sufficient to deliver iPXE binaries (~1 MiB each) +//! to firmware PXE ROMs. Only implements RRQ (read requests) because we +//! never receive WRQs in our use case. +//! +//! Implements RFC 1350 base protocol plus: +//! - RFC 2347 option negotiation (OACK) +//! - RFC 2348 `blksize` (critical — default 512 makes transfers unusably slow) +//! - RFC 2349 `tsize` (some PXE ROMs require it) +//! - RFC 7440 `windowsize` (huge throughput improvement for supporting clients) +//! +//! Files served are backed by the embedded iPXE asset store; there is no +//! filesystem path traversal surface because we only look up by asset name. +#![forbid(unsafe_code)] + +pub mod server; + +pub use server::TftpServer; diff --git a/crates/tftp/src/server.rs b/crates/tftp/src/server.rs new file mode 100644 index 0000000..9e17abf --- /dev/null +++ b/crates/tftp/src/server.rs @@ -0,0 +1,443 @@ +//! TFTP server implementation. +//! +//! Design: the main socket on :69 accepts RRQ packets. For each RRQ we spawn +//! a task that creates a new ephemeral UDP socket and handles the full +//! transfer there (per RFC 1350 — each transfer uses its own port pair so +//! multiple clients can download concurrently). This matches exactly how +//! `tftpd`/`in.tftpd` works and is why TFTP is awkward behind stateful NAT: +//! the ephemeral ports must be reachable from the client. +//! +//! We only serve files from `pxeforge_ipxe_assets::asset_bytes` — that is, +//! the bundled iPXE binaries and wimboot. No filesystem is ever opened, so +//! `../` path traversal attempts simply return ENOENT. + +use pxeforge_core::{ClientEvent, ClientRegistry}; +use pxeforge_ipxe_assets::asset_bytes; +use socket2::{Domain, Protocol, Socket, Type}; +use std::net::{IpAddr, SocketAddr}; +use std::sync::Arc; +use std::time::Duration; +use tokio::net::UdpSocket; + +// TFTP opcodes. +const OP_RRQ: u16 = 1; +const OP_DATA: u16 = 3; +const OP_ACK: u16 = 4; +const OP_ERROR: u16 = 5; +const OP_OACK: u16 = 6; + +// Error codes (RFC 1350). +const ERR_NOT_DEFINED: u16 = 0; +const ERR_FILE_NOT_FOUND: u16 = 1; +const ERR_ILLEGAL_OP: u16 = 4; + +pub struct TftpServer { + bind: IpAddr, + port: u16, + clients: Arc, +} + +impl TftpServer { + pub fn new(bind: IpAddr, port: u16, clients: Arc) -> Self { + Self { bind, port, clients } + } + + pub async fn run(self) -> anyhow::Result<()> { + let sock = bind_udp(self.bind, self.port)?; + tracing::info!(target: "pxeforge::tftp", "TFTP listening on {}:{}", self.bind, self.port); + let clients = self.clients.clone(); + let mut buf = vec![0u8; 2048]; + loop { + let (n, from) = match sock.recv_from(&mut buf).await { + Ok(v) => v, + Err(e) => { + tracing::warn!(target: "pxeforge::tftp", "recv error: {e}"); + continue; + } + }; + let data = buf[..n].to_vec(); + let clients = clients.clone(); + let bind_ip = self.bind; + tokio::spawn(async move { + if let Err(e) = handle_rrq(data, from, bind_ip, clients).await { + tracing::warn!(target: "pxeforge::tftp", peer=%from, "handler error: {e}"); + } + }); + } + } +} + +async fn handle_rrq( + packet: Vec, + peer: SocketAddr, + bind_ip: IpAddr, + clients: Arc, +) -> anyhow::Result<()> { + let req = match parse_rrq(&packet) { + Some(r) => r, + None => return Ok(()), + }; + let Request { filename, options, .. } = req; + + // Per-transfer ephemeral socket. + let sock = bind_udp(bind_ip, 0)?; + + let Some(file_bytes) = asset_bytes(&filename) else { + let _ = send_error(&sock, peer, ERR_FILE_NOT_FOUND, "no such file").await; + tracing::info!(target: "pxeforge::tftp", peer=%peer, file=%filename, "404"); + clients.record( + &peer.ip().to_string(), + Some(peer.ip()), + None, + ClientEvent::TftpRead { file: filename.clone() }, + ); + return Ok(()); + }; + + tracing::info!( + target: "pxeforge::tftp", + peer=%peer, file=%filename, size=file_bytes.len(), + "serving" + ); + clients.record( + &peer.ip().to_string(), + Some(peer.ip()), + None, + ClientEvent::TftpRead { file: filename.clone() }, + ); + + // Negotiate options. + let mut blksize: usize = 512; + let mut window: u16 = 1; + let mut accepted_opts: Vec<(String, String)> = Vec::new(); + + for (k, v) in &options { + match k.as_str() { + "blksize" => { + if let Ok(n) = v.parse::() { + blksize = n.clamp(8, 65464); + accepted_opts.push(("blksize".into(), blksize.to_string())); + } + } + "tsize" => { + accepted_opts.push(("tsize".into(), file_bytes.len().to_string())); + } + "windowsize" => { + if let Ok(n) = v.parse::() { + window = n.clamp(1, 64); + accepted_opts.push(("windowsize".into(), window.to_string())); + } + } + _ => {} + } + } + + if !accepted_opts.is_empty() { + let oack = encode_oack(&accepted_opts); + // Loop until client ACKs block 0 (the OACK). + if !wait_for_ack(&sock, peer, 0, &oack).await? { + return Ok(()); + } + } + + // DATA transfer. Block numbers are u16 and may wrap at 65535 — we handle + // that via `wrapping_add`. For each window we remember the starting + // (offset, block_no) explicitly; on retransmit we replay from there + // instead of trying to compute it back from `last_block_in_window` which + // is wrong when a window short-sends at EOF (previous bug: window=8 but + // only 3 blocks sent, then rewind subtracted 7 landing in the wrong id). + let total = file_bytes.len(); + let mut offset: usize = 0; + let mut block_no: u16 = 1; + let mut needs_zero_final = false; // spec: if last data block == blksize, follow with empty DATA + + 'transfer: loop { + let window_start_offset = offset; + let window_start_block = block_no; + let mut last_block_in_window = block_no; + let mut window_reached_eof = false; + let mut last_chunk_len = 0usize; + + // Send one window worth of DATA. + for _ in 0..window { + if offset >= total { break; } + let end = (offset + blksize).min(total); + let chunk = &file_bytes[offset..end]; + let pkt = encode_data(block_no, chunk); + sock.send_to(&pkt, peer).await?; + last_block_in_window = block_no; + last_chunk_len = chunk.len(); + offset = end; + block_no = block_no.wrapping_add(1); + if end == total { + window_reached_eof = true; + break; + } + } + + // Wait for an ACK of the last block we actually sent (not the + // nominal last block of a theoretical full window). + let mut tries = 0u8; + loop { + match tokio::time::timeout(Duration::from_secs(3), recv_ack(&sock, peer)).await { + Ok(Ok(acked)) if acked == last_block_in_window => break, + Ok(Ok(_)) => continue, // stale ACK from an earlier block — ignore + Ok(Err(e)) => return Err(e), + Err(_) => { + tries += 1; + if tries > 5 { + tracing::warn!( + target: "pxeforge::tftp", + peer=%peer, last_block=last_block_in_window, + "timeout after {tries} retries, aborting transfer" + ); + return Ok(()); + } + // Rewind to the start of this window and resend exactly + // the same blocks (same count, same block numbers). This + // is cheap and correct even for short final windows. + offset = window_start_offset; + block_no = window_start_block; + let mut resent = 0; + while resent < window && offset < total { + let end = (offset + blksize).min(total); + let pkt = encode_data(block_no, &file_bytes[offset..end]); + sock.send_to(&pkt, peer).await?; + last_block_in_window = block_no; + last_chunk_len = end - offset; + offset = end; + block_no = block_no.wrapping_add(1); + resent += 1; + } + } + } + } + + if window_reached_eof || offset >= total { + // If the very last DATA was exactly blksize, RFC 1350 requires a + // following zero-length DATA to signal end-of-transfer. If it + // was shorter, the short block already signals EOF. + needs_zero_final = last_chunk_len == blksize; + break 'transfer; + } + } + + if needs_zero_final { + let pkt = encode_data(block_no, &[]); + sock.send_to(&pkt, peer).await?; + let _ = tokio::time::timeout(Duration::from_secs(3), recv_ack(&sock, peer)).await; + } + + tracing::debug!(target: "pxeforge::tftp", peer=%peer, bytes=total, "transfer complete"); + Ok(()) +} + +#[derive(Debug)] +struct Request { + filename: String, + #[allow(dead_code)] + mode: String, + options: Vec<(String, String)>, +} + +fn parse_rrq(pkt: &[u8]) -> Option { + if pkt.len() < 4 { return None; } + let op = u16::from_be_bytes([pkt[0], pkt[1]]); + if op != OP_RRQ { return None; } + let mut rest = &pkt[2..]; + let filename = read_cstr(&mut rest)?; + let mode = read_cstr(&mut rest)?; + let mut options = Vec::new(); + while !rest.is_empty() { + let k = match read_cstr(&mut rest) { Some(s) => s, None => break }; + if k.is_empty() { break; } + let v = read_cstr(&mut rest).unwrap_or_default(); + options.push((k.to_ascii_lowercase(), v)); + } + Some(Request { filename, mode, options }) +} + +fn read_cstr(buf: &mut &[u8]) -> Option { + let pos = buf.iter().position(|b| *b == 0)?; + let s = std::str::from_utf8(&buf[..pos]).ok()?.to_string(); + *buf = &buf[pos + 1..]; + Some(s) +} + +fn encode_data(block: u16, chunk: &[u8]) -> Vec { + let mut v = Vec::with_capacity(4 + chunk.len()); + v.extend_from_slice(&OP_DATA.to_be_bytes()); + v.extend_from_slice(&block.to_be_bytes()); + v.extend_from_slice(chunk); + v +} + +fn encode_oack(opts: &[(String, String)]) -> Vec { + let mut v = Vec::new(); + v.extend_from_slice(&OP_OACK.to_be_bytes()); + for (k, val) in opts { + v.extend_from_slice(k.as_bytes()); + v.push(0); + v.extend_from_slice(val.as_bytes()); + v.push(0); + } + v +} + +async fn send_error( + sock: &UdpSocket, + peer: SocketAddr, + code: u16, + msg: &str, +) -> std::io::Result<()> { + let mut v = Vec::with_capacity(5 + msg.len()); + v.extend_from_slice(&OP_ERROR.to_be_bytes()); + v.extend_from_slice(&code.to_be_bytes()); + v.extend_from_slice(msg.as_bytes()); + v.push(0); + sock.send_to(&v, peer).await.map(|_| ()) +} + +async fn recv_ack(sock: &UdpSocket, peer: SocketAddr) -> anyhow::Result { + let mut buf = [0u8; 32]; + loop { + let (n, from) = sock.recv_from(&mut buf).await?; + if from.ip() != peer.ip() { continue; } + if n < 4 { continue; } + let op = u16::from_be_bytes([buf[0], buf[1]]); + match op { + OP_ACK => return Ok(u16::from_be_bytes([buf[2], buf[3]])), + OP_ERROR => { + let code = u16::from_be_bytes([buf[2], buf[3]]); + anyhow::bail!("client error {code}"); + } + _ => continue, + } + } +} + +async fn wait_for_ack( + sock: &UdpSocket, + peer: SocketAddr, + expect_block: u16, + to_retx: &[u8], +) -> anyhow::Result { + let mut tries = 0; + loop { + sock.send_to(to_retx, peer).await?; + match tokio::time::timeout(Duration::from_secs(3), recv_ack(sock, peer)).await { + Ok(Ok(b)) if b == expect_block => return Ok(true), + Ok(Ok(_)) => continue, + Ok(Err(_)) | Err(_) => { + tries += 1; + if tries > 5 { return Ok(false); } + } + } + } +} + +fn bind_udp(bind: IpAddr, port: u16) -> anyhow::Result { + let domain = match bind { IpAddr::V4(_) => Domain::IPV4, IpAddr::V6(_) => Domain::IPV6 }; + let sock = Socket::new(domain, Type::DGRAM, Some(Protocol::UDP))?; + sock.set_reuse_address(true)?; + sock.set_nonblocking(true)?; + let addr: SocketAddr = SocketAddr::new(bind, port); + sock.bind(&addr.into())?; + let std_sock: std::net::UdpSocket = sock.into(); + Ok(UdpSocket::from_std(std_sock)?) +} + +#[allow(dead_code)] +const _UNUSED: (u16, u16) = (ERR_NOT_DEFINED, ERR_ILLEGAL_OP); + +/// Pure-logic helper used by the unit tests below and (in a refactor) by +/// `handle_rrq`. Given a position in the file and the window, return the +/// (block_no, chunk_len) list this window will emit. Useful as a sanity +/// check that our windowing math matches the wire behavior the spec +/// requires — tested against edge cases (exact-blksize tail, short tail, +/// single-block window). +#[must_use] +pub fn plan_window( + total: usize, + offset: usize, + blksize: usize, + window: u16, + starting_block: u16, +) -> Vec<(u16, usize)> { + let mut out = Vec::new(); + let mut o = offset; + let mut b = starting_block; + for _ in 0..window { + if o >= total { break; } + let end = (o + blksize).min(total); + out.push((b, end - o)); + o = end; + b = b.wrapping_add(1); + } + out +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn parses_rrq_with_options() { + // RRQ "snponly.efi" mode "octet" blksize=1468 tsize=0 + let mut pkt = vec![0, OP_RRQ as u8]; + pkt.extend_from_slice(b"snponly.efi\0octet\0blksize\01468\0tsize\00\0"); + let r = parse_rrq(&pkt).unwrap(); + assert_eq!(r.filename, "snponly.efi"); + assert_eq!(r.mode, "octet"); + assert_eq!(r.options.len(), 2); + assert_eq!(r.options[0].0, "blksize"); + assert_eq!(r.options[0].1, "1468"); + } + + #[test] + fn encode_decode_data() { + let p = encode_data(7, b"hello"); + assert_eq!(&p[0..2], &OP_DATA.to_be_bytes()); + assert_eq!(&p[2..4], &7u16.to_be_bytes()); + assert_eq!(&p[4..], b"hello"); + } + + #[test] + fn plan_window_full_blocks() { + // 4 KB file, 1024 blksize, window 4 → one window of 4 full blocks. + let p = plan_window(4096, 0, 1024, 4, 1); + assert_eq!(p, vec![(1, 1024), (2, 1024), (3, 1024), (4, 1024)]); + } + + #[test] + fn plan_window_short_tail_at_eof() { + // 3.5 KB file, 1024 blksize, window 8 starting at offset 0. + // Expect 3 full + 1 half, then stop (below 8 blocks). + let p = plan_window(3584, 0, 1024, 8, 1); + assert_eq!(p, vec![(1, 1024), (2, 1024), (3, 1024), (4, 512)]); + } + + #[test] + fn plan_window_exact_boundary_needs_zero_final() { + // 2 KB file, 1024 blksize, window 8 — last block is exactly blksize. + // `handle_rrq` checks `last_chunk_len == blksize` to decide whether to + // emit the terminating zero-length DATA. Assert that condition here. + let p = plan_window(2048, 0, 1024, 8, 1); + assert_eq!(p, vec![(1, 1024), (2, 1024)]); + let last = p.last().unwrap(); + assert_eq!(last.1, 1024); // => needs zero final per RFC 1350 + } + + #[test] + fn plan_window_wraparound() { + // Block number wraps from u16::MAX to 0 on next window — 2 blocks, + // starting at 65534. + let p = plan_window(2048, 0, 1024, 2, 65534); + assert_eq!(p, vec![(65534, 1024), (65535, 1024)]); + let p2 = plan_window(2048, 2048, 1024, 2, 0); + assert!(p2.is_empty()); // nothing past EOF + // And a cross-boundary case: + let p3 = plan_window(3072, 0, 1024, 3, 65535); + assert_eq!(p3, vec![(65535, 1024), (0, 1024), (1, 1024)]); + } +} diff --git a/crates/webui/Cargo.toml b/crates/webui/Cargo.toml new file mode 100644 index 0000000..dff7073 --- /dev/null +++ b/crates/webui/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "pxeforge-webui" +version.workspace = true +edition.workspace = true +license.workspace = true +authors.workspace = true +description = "Embedded single-file web UI for PXEForge" + +[lints] +workspace = true + +[dependencies] diff --git a/crates/webui/src/app.css b/crates/webui/src/app.css new file mode 100644 index 0000000..8f740d9 --- /dev/null +++ b/crates/webui/src/app.css @@ -0,0 +1,371 @@ +/* PXEForge web UI — Netbox-style layout, fully offline. + * Design tokens are CSS variables so a later phase can re-theme without + * touching markup or JS. */ + +:root { + --bg: #0b1018; + --bg-panel: #121826; + --bg-panel-2: #1a2334; + --bg-elev: #223047; + --fg: #e4e8ef; + --fg-dim: #8a94a7; + --fg-dimmer: #5a6379; + --accent: #00d4b4; /* Netbox-ish teal */ + --accent-dim: #07a38c; + --warn: #ffb347; + --err: #ef6e6e; + --ok: #4ade80; + --border: #223047; + --border-soft: #172033; + --radius: 6px; + --radius-lg: 10px; + --sidebar-w: 240px; + --topbar-h: 54px; + --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; + --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, system-ui, sans-serif; +} + +* { box-sizing: border-box; } +html, body { height: 100%; } +body { + margin: 0; font-family: var(--sans); font-size: 14px; line-height: 1.5; + background: var(--bg); color: var(--fg); +} +a { color: var(--accent); text-decoration: none; } +a:hover { text-decoration: underline; } +code, kbd { font-family: var(--mono); font-size: 12.5px; + background: var(--bg-panel-2); padding: 1px 5px; border-radius: 3px; } + +/* ── Shell ─────────────────────────────────────────────────────────── */ + +.shell { + display: grid; + grid-template-columns: var(--sidebar-w) 1fr; + grid-template-rows: var(--topbar-h) 1fr; + grid-template-areas: + "sidebar topbar" + "sidebar main"; + height: 100vh; +} +.sidebar { + grid-area: sidebar; + background: var(--bg-panel); + border-right: 1px solid var(--border); + display: flex; flex-direction: column; +} +.sidebar .brand { + display: flex; align-items: center; gap: 12px; + padding: 14px 18px; + border-bottom: 1px solid var(--border); +} +.sidebar .brand img { width: 40px; height: auto; } +.sidebar .brand strong { font-size: 16px; letter-spacing: 0.4px; } +.sidebar .brand .sub { color: var(--fg-dim); font-size: 11px; } +.sidebar nav { padding: 10px 0; flex: 1; overflow-y: auto; } +.sidebar nav .group { + padding: 10px 18px 6px; + font-size: 10.5px; color: var(--fg-dimmer); text-transform: uppercase; + letter-spacing: 1px; +} +.sidebar nav a { + display: flex; align-items: center; gap: 10px; + padding: 7px 18px; color: var(--fg); font-size: 13.5px; + border-left: 2px solid transparent; +} +.sidebar nav a:hover { background: var(--bg-panel-2); text-decoration: none; } +.sidebar nav a.active { + background: var(--bg-panel-2); + border-left-color: var(--accent); + color: var(--accent); +} +.sidebar nav a .count { + margin-left: auto; + background: var(--bg-elev); color: var(--fg-dim); + padding: 1px 7px; font-size: 11px; border-radius: 10px; + font-variant-numeric: tabular-nums; +} +.sidebar nav a.active .count { background: var(--accent); color: #002923; } +.sidebar .footer { + padding: 10px 18px; border-top: 1px solid var(--border); + color: var(--fg-dimmer); font-size: 11px; +} +.sidebar .footer code { background: transparent; color: var(--fg-dim); padding: 0; } + +/* ── Top bar ───────────────────────────────────────────────────────── */ + +.topbar { + grid-area: topbar; + display: flex; align-items: center; + padding: 0 20px; gap: 18px; + background: var(--bg-panel); + border-bottom: 1px solid var(--border); +} +.topbar h1 { + margin: 0; font-size: 15px; font-weight: 600; + color: var(--fg); letter-spacing: 0.2px; +} +.topbar .tabs { display: flex; gap: 4px; margin-left: 24px; } +.topbar .tabs button { + background: transparent; border: 0; + color: var(--fg-dim); font: inherit; + padding: 10px 14px; cursor: pointer; + border-bottom: 2px solid transparent; +} +.topbar .tabs button:hover { color: var(--fg); } +.topbar .tabs button.active { color: var(--accent); border-bottom-color: var(--accent); } +.topbar .spacer { flex: 1; } +.topbar .chip { + background: var(--bg-panel-2); border: 1px solid var(--border); + color: var(--fg-dim); font-size: 12px; + padding: 4px 10px; border-radius: 12px; +} +.topbar .chip strong { color: var(--fg); font-weight: 600; } + +/* ── Main content ─────────────────────────────────────────────────── */ + +.main { + grid-area: main; + overflow: auto; + padding: 22px 26px 40px; +} +.grid { display: grid; gap: 20px; } +.grid.cols-3 { grid-template-columns: repeat(3, 1fr); } +.grid.cols-2 { grid-template-columns: repeat(2, 1fr); } +@media (max-width: 1024px) { + .grid.cols-3, .grid.cols-2 { grid-template-columns: 1fr; } +} + +/* ── Cards / panels ───────────────────────────────────────────────── */ + +.card { + background: var(--bg-panel); + border: 1px solid var(--border); + border-radius: var(--radius-lg); + overflow: hidden; +} +.card > header { + padding: 12px 16px; + background: var(--bg-panel-2); + border-bottom: 1px solid var(--border); + display: flex; align-items: center; gap: 10px; +} +.card > header h2 { margin: 0; font-size: 13.5px; font-weight: 600; color: var(--fg); } +.card > header .sub { color: var(--fg-dim); font-size: 12px; margin-left: auto; } +.card .body { padding: 16px; } + +.stat { + padding: 16px; +} +.stat .label { color: var(--fg-dim); font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.8px; } +.stat .value { font-size: 28px; font-weight: 600; line-height: 1.1; margin-top: 4px; color: var(--fg); } +.stat .trend { font-size: 12px; color: var(--fg-dim); margin-top: 4px; } + +/* ── Tables ───────────────────────────────────────────────────────── */ + +table { width: 100%; border-collapse: collapse; } +th, td { text-align: left; padding: 9px 16px; border-bottom: 1px solid var(--border-soft); } +th { + color: var(--fg-dim); font-weight: 500; font-size: 11px; + text-transform: uppercase; letter-spacing: 1px; + background: var(--bg-panel-2); +} +tr:hover td { background: var(--bg-panel-2); } +td.mono { font-family: var(--mono); font-size: 12.5px; } +td.num { text-align: right; font-variant-numeric: tabular-nums; } + +/* ── Tags / pills ─────────────────────────────────────────────────── */ + +.tag { + display: inline-block; + padding: 2px 8px; border-radius: 10px; + font-size: 11px; font-weight: 600; + background: #1b3148; color: #a2c5e8; +} +.tag.ok { background: #103428; color: var(--ok); } +.tag.warn { background: #3a2a10; color: var(--warn); } +.tag.err { background: #3a1515; color: var(--err); } +.tag.accent { background: #072f29; color: var(--accent); } +.tag.arch { text-transform: uppercase; } + +/* ── Forms ────────────────────────────────────────────────────────── */ + +button, .btn { + background: var(--accent); color: #002923; + border: 0; border-radius: var(--radius); + padding: 7px 14px; font: inherit; font-weight: 600; + cursor: pointer; +} +button:hover, .btn:hover { background: var(--accent-dim); color: #fff; } +button.ghost { background: transparent; color: var(--fg); border: 1px solid var(--border); } +button.ghost:hover { background: var(--bg-panel-2); color: var(--fg); } +button.danger { background: transparent; color: var(--err); border: 1px solid #4a1f1f; } +button.danger:hover { background: #2a0b0b; color: var(--err); } + +label.field { + display: grid; gap: 4px; margin-bottom: 14px; +} +label.field .name { color: var(--fg-dim); font-size: 12px; } +label.field .hint { color: var(--fg-dimmer); font-size: 11px; } +label.field input[type="text"], +label.field input[type="number"], +label.field select, +label.field textarea { + width: 100%; background: var(--bg); color: var(--fg); + border: 1px solid var(--border); border-radius: var(--radius); + padding: 7px 10px; font: inherit; +} +label.field input:focus, label.field select:focus, label.field textarea:focus { + outline: none; border-color: var(--accent); +} +label.check { + display: flex; gap: 10px; align-items: center; + padding: 8px 10px; margin-bottom: 6px; + border: 1px solid var(--border-soft); border-radius: var(--radius); +} +label.check input { accent-color: var(--accent); } + +/* ── Drop zone ────────────────────────────────────────────────────── */ + +.drop { + border: 2px dashed var(--border); + border-radius: var(--radius-lg); + padding: 32px; text-align: center; + color: var(--fg-dim); cursor: pointer; + transition: border-color .15s, color .15s, background .15s; +} +.drop.hover, .drop:hover { + border-color: var(--accent); color: var(--fg); + background: var(--bg-panel-2); +} +.drop strong { color: var(--accent); } +.progress { height: 6px; background: var(--bg-panel-2); border-radius: 3px; overflow: hidden; margin-top: 12px; display: none; } +.progress.active { display: block; } +.progress .bar { height: 100%; width: 0%; background: var(--accent); transition: width .25s; } + +/* ── Gate queue "horse race" visual ───────────────────────────────── */ + +.gate-track { + display: grid; gap: 6px; + padding: 10px 0; +} +.gate-row { + display: grid; grid-template-columns: 32px 1fr auto auto; align-items: center; + gap: 14px; + padding: 8px 14px; + background: var(--bg-panel-2); border-radius: var(--radius); + border-left: 3px solid var(--accent); +} +.gate-row.assigned { border-left-color: var(--ok); } +.gate-row .pos { font-family: var(--mono); font-size: 15px; color: var(--accent); font-weight: 600; } +.gate-row.assigned .pos { color: var(--ok); } +.gate-row .mac { font-family: var(--mono); font-size: 13px; } +.gate-row .meta { color: var(--fg-dim); font-size: 12px; } + +.empty { color: var(--fg-dim); padding: 30px; text-align: center; } +.msg { color: var(--fg-dim); font-size: 12.5px; margin-top: 8px; } +.msg.err { color: var(--err); } +.msg.ok { color: var(--ok); } + +/* ── Top bar readiness chip ──────────────────────────────────────── */ +.chip.ready { background: #103428; color: var(--ok); border-color: #1a4f3c; } +.chip.notready { background: #3a1515; color: var(--err); border-color: #5a1f1f; } +.chip.warming { background: #3a2a10; color: var(--warn); border-color: #4a3a18; } + +/* ── Dashboard stat strip ────────────────────────────────────────── */ +.statstrip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; } +@media (max-width: 1100px) { .statstrip { grid-template-columns: repeat(2, 1fr); } } + +.kv { display: grid; grid-template-columns: 160px 1fr; gap: 6px 14px; + padding: 4px 0; font-size: 13px; } +.kv .k { color: var(--fg-dim); } +.kv .v { font-family: var(--mono); color: var(--fg); word-break: break-all; } +.kv .v.warn { color: var(--warn); } +.kv .v.err { color: var(--err); } +.kv .v.ok { color: var(--ok); } + +/* ── Image rows: amber tint on un-bootable images (Bootimus pattern) ── */ +tr.unbootable td { background: rgba(255, 179, 71, 0.07) !important; } +tr.unbootable td:first-child { border-left: 3px solid var(--warn); } +.row-warn { color: var(--warn); font-size: 11.5px; margin-top: 2px; } + +/* ── Table source badge ──────────────────────────────────────────── */ +.src-badge { font-family: var(--mono); font-size: 11px; padding: 1px 6px; + border-radius: 4px; background: var(--bg-elev); color: var(--fg-dim); } +.src-badge.nfs { background: #122a3a; color: #7cd3ff; } + +/* ── NFS modal-ish add form ──────────────────────────────────────── */ +.nfs-row { display: grid; grid-template-columns: 32px 1fr auto auto auto; align-items: center; + gap: 14px; padding: 10px 14px; background: var(--bg-panel-2); + border-left: 3px solid var(--accent); border-radius: var(--radius); } +.nfs-row.down { border-left-color: var(--err); } +.nfs-row .id { font-family: var(--mono); font-size: 12.5px; color: var(--fg); } +.nfs-row .meta { color: var(--fg-dim); font-size: 12px; } +.nfs-row .err { color: var(--err); font-size: 11.5px; word-break: break-all; } +.dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; } +.dot.ok { background: var(--ok); } +.dot.err { background: var(--err); } +.dot.warn { background: var(--warn); } + +/* ── Inline form rows (used by Network + NFS add) ───────────────── */ +.form-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px 14px; } +@media (max-width: 900px) { .form-row { grid-template-columns: 1fr; } } + +/* ── Terminal pane ──────────────────────────────────────────────── */ +.terminal { + display: flex; flex-direction: column; + border: 1px solid var(--border); + border-radius: var(--radius-lg); + background: #06090e; + overflow: hidden; + height: calc(100vh - var(--topbar-h) - 90px); + min-height: 480px; +} +.terminal .pane { + flex: 1; overflow: auto; + padding: 10px 14px; + font-family: var(--mono); font-size: 12.5px; line-height: 1.5; + color: #cfd6e2; + white-space: pre-wrap; word-break: break-word; +} +.terminal .pane .lvl-error { color: var(--err); } +.terminal .pane .lvl-warn { color: var(--warn); } +.terminal .pane .lvl-info { color: #cfd6e2; } +.terminal .pane .lvl-debug { color: var(--fg-dim); } +.terminal .pane .lvl-trace { color: var(--fg-dimmer); } +.terminal .pane .ts { color: var(--fg-dimmer); } +.terminal .pane .tg { color: #7cd3ff; } +.terminal .pane .echo { color: var(--accent); } +.terminal .input-row { + display: flex; align-items: center; gap: 8px; + padding: 8px 14px; + background: #0a0e15; + border-top: 1px solid var(--border); +} +.terminal .input-row .prompt { color: var(--accent); font-family: var(--mono); } +.terminal .input-row input { + flex: 1; background: transparent; border: 0; color: var(--fg); + font: inherit; font-family: var(--mono); font-size: 13px; + outline: none; padding: 4px 0; +} +.terminal .toolbar { + display: flex; gap: 8px; align-items: center; + padding: 8px 14px; + background: var(--bg-panel-2); + border-bottom: 1px solid var(--border); + font-size: 12px; color: var(--fg-dim); +} +.terminal .toolbar .right { margin-left: auto; display: flex; gap: 6px; } +.terminal .toolbar button { + padding: 3px 9px; font-size: 11px; + background: transparent; color: var(--fg-dim); border: 1px solid var(--border); + font-weight: 500; +} +.terminal .toolbar button:hover { color: var(--fg); background: var(--bg-elev); } + +/* ── About card ─────────────────────────────────────────────────── */ +.about-hero { padding: 20px 24px; } +.about-hero h2 { font-size: 22px; margin: 0 0 8px; color: var(--fg); } +.about-hero .lead { color: var(--fg-dim); font-size: 14px; max-width: 60ch; } +.about-hero .who { margin-top: 18px; font-size: 13px; } +.about-hero .who span { color: var(--fg-dim); } +.about-hero .who strong { color: var(--accent); } diff --git a/crates/webui/src/app.js b/crates/webui/src/app.js new file mode 100644 index 0000000..0fa6aa8 --- /dev/null +++ b/crates/webui/src/app.js @@ -0,0 +1,696 @@ +// PXEForge web UI — vanilla JS, no build step, no framework, no network +// dependencies. Uses fetch() + EventSource only. +// +// Tabs (Phase 4): Dashboard / Network / Forge Gate / Storage / Terminal / +// About. The shell swaps a single view into #view-root. +// +// Keep this readable — nobody wants to debug a clever vanilla-JS +// framework at 3 AM. Plain dumb DOM construction is the design. + +(function () { + const $ = (sel, root = document) => root.querySelector(sel); + const $$ = (sel, root = document) => Array.from(root.querySelectorAll(sel)); + const el = (tag, attrs = {}, children = []) => { + const e = document.createElement(tag); + for (const [k, v] of Object.entries(attrs)) { + if (k === 'class') e.className = v; + else if (k === 'html') e.innerHTML = v; + else if (k.startsWith('on') && typeof v === 'function') e.addEventListener(k.slice(2), v); + else if (v !== false && v != null) e.setAttribute(k, v); + } + for (const c of [].concat(children)) { + if (c == null || c === false) continue; + if (typeof c === 'string') e.appendChild(document.createTextNode(c)); + else e.appendChild(c); + } + return e; + }; + const fmtBytes = (n) => { + const u = ['B','KB','MB','GB','TB']; let i = 0; + while (n >= 1024 && i < u.length-1) { n /= 1024; i++; } + return n.toFixed(n >= 10 || i === 0 ? 0 : 1) + ' ' + u[i]; + }; + const fmtAgo = (ts) => { + const d = (ts instanceof Date) ? ts : new Date(ts); + if (isNaN(d.getTime())) return '-'; + const ds = Math.floor((Date.now() - d.getTime()) / 1000); + if (ds < 0) return 'in ' + Math.abs(ds) + 's'; + if (ds < 60) return ds + 's ago'; + if (ds < 3600) return Math.floor(ds/60) + 'm ago'; + if (ds < 86400) return Math.floor(ds/3600) + 'h ago'; + return d.toLocaleString(); + }; + const fmtUptime = (secs) => { + secs = Math.max(0, Math.floor(secs || 0)); + const h = Math.floor(secs/3600), m = Math.floor((secs%3600)/60), s = secs%60; + if (h) return h + 'h ' + m + 'm'; + if (m) return m + 'm ' + s + 's'; + return s + 's'; + }; + const familyLabel = (f) => ({ + debian_ubuntu: 'Debian / Ubuntu', rhel_fedora: 'RHEL family', + open_suse: 'openSUSE', arch: 'Arch', alpine: 'Alpine', + windows_pe: 'Windows', unknown: 'Unknown', + }[f] || f); + const archLabel = (a) => { + if (!a) return '—'; + if (typeof a === 'string') return a; + if (a && typeof a === 'object') { + if ('Unknown' in a) return 'unknown(0x' + a.Unknown.toString(16) + ')'; + return JSON.stringify(a); + } + return String(a); + }; + + // ── network helpers ────────────────────────────────────────────── + async function getJSON(url) { + const r = await fetch(url); + if (!r.ok) throw new Error(url + ': ' + r.status); + return r.json(); + } + async function putJSON(url, body) { + return fetch(url, {method:'PUT', headers:{'Content-Type':'application/json'}, body: JSON.stringify(body)}); + } + async function postJSON(url, body) { + return fetch(url, {method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(body)}); + } + + // Categorize an ISO row's "bootable now" status — drives the amber + // tint borrowed from Bootimus v0.1.62. Returns {ok, reason}. + function bootability(iso, settings) { + const fam = iso.introspection.family; + const isWin = fam === 'windows_pe'; + if (isWin && !settings.windows_enabled) { + return { ok: false, reason: 'Windows boot disabled in Settings' }; + } + if (!isWin && !iso.introspection.kernel_path && fam !== 'windows_pe') { + // Linux without a detected kernel falls through to sanboot which + // rarely works for >1 GiB ISOs. + if (iso.size_bytes > 1.5 * 1024 * 1024 * 1024) { + return { ok: false, reason: 'no kernel/initrd detected; ISO too large for sanboot fallback' }; + } + return { ok: true, warn: 'no kernel detected — sanboot fallback may not work' }; + } + return { ok: true }; + } + + // ── views ──────────────────────────────────────────────────────── + const views = { + dashboard: async () => { + const status = await getJSON('/api/status'); + const isos = await getJSON('/api/isos'); + const clients = (await getJSON('/api/clients')).clients || []; + const gates = (await getJSON('/api/gate')).gates || []; + + const ipxeOk = (status.ipxe_assets || []).length > 0; + const stats = el('div', {class: 'statstrip'}, [ + el('div', {class: 'card'}, el('div', {class: 'stat'}, [ + el('div', {class: 'label'}, 'Server status'), + el('div', {class: 'value', style: 'font-size:18px;color:' + (ipxeOk ? 'var(--ok)' : 'var(--err)')}, + ipxeOk ? 'Ready' : 'Not ready'), + el('div', {class: 'trend'}, + ipxeOk ? 'Bootloaders bundled, accepting clients' + : 'No iPXE binaries bundled'), + ])), + el('div', {class: 'card'}, el('div', {class: 'stat'}, [ + el('div', {class: 'label'}, 'Imaging now'), + el('div', {class: 'value'}, String(status.imaging_count || 0)), + el('div', {class: 'trend'}, (status.waiting_count || 0) + ' waiting at gate'), + ])), + el('div', {class: 'card'}, el('div', {class: 'stat'}, [ + el('div', {class: 'label'}, 'Images available'), + el('div', {class: 'value'}, String(isos.length)), + el('div', {class: 'trend'}, + isos.filter(i => i.introspection.family === 'windows_pe').length + ' Windows · ' + + isos.filter(i => i.introspection.family !== 'windows_pe').length + ' Linux · ' + + (status.nfs_active || 0) + ' NFS active'), + ])), + el('div', {class: 'card'}, el('div', {class: 'stat'}, [ + el('div', {class: 'label'}, 'Uptime'), + el('div', {class: 'value', style: 'font-size:22px'}, fmtUptime(status.uptime_secs)), + el('div', {class: 'trend'}, 'PXEForge ' + status.version), + ])), + ]); + + // Recent connections — the operator's at-a-glance "who tried to + // boot" log. Use last_seen desc (already sorted by API). + const recent = clients.slice(0, 8); + const recentRows = recent.map(c => { + const g = gates.find(g => g.mac === c.mac); + let status = el('span', {class: 'tag ok'}, 'active'); + if (g && g.assigned_target) status = el('span', {class:'tag ok'}, 'assigned: ' + g.assigned_target); + else if (g) status = el('span', {class:'tag accent'}, '#' + g.position + ' at gate'); + return el('tr', {}, [ + el('td', {class: 'mono'}, c.mac), + el('td', {}, c.last_ip ? String(c.last_ip) : '-'), + el('td', {}, el('span', {class:'tag arch'}, archLabel(c.arch))), + el('td', {}, fmtAgo(c.last_seen)), + el('td', {}, status), + ]); + }); + const recentBlock = el('div', {class: 'card'}, [ + el('header', {}, [ + el('h2', {}, 'Recent connections'), + el('span', {class: 'sub'}, clients.length + ' total'), + ]), + recent.length + ? el('table', {}, [ + el('thead', {}, el('tr', {}, [ + el('th',{},'MAC'), el('th',{},'IP'), el('th',{},'Arch'), + el('th',{},'Last seen'), el('th',{},'Status'), + ])), + el('tbody', {}, recentRows), + ]) + : el('div', {class: 'empty'}, 'No PXE clients have contacted this server yet.'), + ]); + + // At-a-glance pool of problem images — Bootimus-style early warning. + const settings = status.settings; + const problems = isos.map(i => ({i, b: bootability(i, settings)})).filter(x => !x.b.ok); + const problemsBlock = problems.length ? el('div', {class:'card'}, [ + el('header', {}, [el('h2', {}, 'Images that won\'t boot with current settings')]), + el('div', {class:'body'}, + problems.map(({i, b}) => el('div', {class:'row-warn'}, + '⚠ ' + i.filename + ' — ' + b.reason))) + ]) : null; + + return el('div', {class:'grid'}, [stats, recentBlock, problemsBlock].filter(Boolean)); + }, + + network: async () => { + const net = await getJSON('/api/network'); + const dns = el('input', {type:'text', value: net.dns_server || '', + placeholder: 'Optional, e.g. 8.8.8.8 or 1.1.1.1'}); + const msg = el('div', {class:'msg'}); + + const save = el('button', {onclick: async () => { + const r = await putJSON('/api/network', { dns_server: dns.value }); + if (r.status === 204) { msg.textContent = 'Saved.'; msg.className = 'msg ok'; } + else { msg.textContent = 'Save failed: ' + r.status; msg.className = 'msg err'; } + }}, 'Save'); + + const networkCard = el('div', {class:'card'}, [ + el('header', {}, el('h2', {}, 'Network')), + el('div', {class:'body'}, [ + el('div', {class:'kv'}, [ + el('div', {class:'k'}, 'Server IP'), + el('div', {class:'v'}, net.server_ip || '?'), + el('div', {class:'k'}, 'NIC name'), + el('div', {class:'v'}, net.nic_name || '(auto-detect failed)'), + el('div', {class:'k'}, 'Subnet mask'), + el('div', {class:'v'}, net.subnet_mask || '?'), + el('div', {class:'k'}, 'Gateway'), + el('div', {class:'v'}, net.gateway || '?'), + el('div', {class:'k'}, 'Public base URL'), + el('div', {class:'v'}, net.public_base_url), + ]), + el('p', {class:'msg'}, + 'Server IP, NIC, mask, and gateway are auto-detected at startup. ' + + 'To change them, set PXEFORGE_PUBLIC_IP and restart — editing them ' + + 'from a hot UI would silently break PXE for every client mid-boot.'), + el('label', {class:'field', style:'margin-top:18px'}, [ + el('span', {class:'name'}, 'DNS server (optional, informational)'), + dns, + el('span', {class:'hint'}, + 'PXEForge does not run a DNS server itself; this field records ' + + 'what your upstream DNS is so you don\'t have to dig it out at ' + + '3 AM during a deployment.'), + ]), + save, msg, + ]), + ]); + + return el('div', {class:'grid'}, [networkCard]); + }, + + gate: async () => { + const [{ gates = [] }, isos] = await Promise.all([ + getJSON('/api/gate'), getJSON('/api/isos'), + ]); + const targets = isos.flatMap(i => i.boot_entries.map(e => ({ + id: e.id, title: e.title + ' — ' + familyLabel(i.introspection.family) + }))); + const pick = el('select', {}, + [el('option', {value: ''}, '— choose an image —')] + .concat(targets.map(t => el('option', {value: t.id}, t.title))) + ); + const launch = el('button', {}, 'Launch for all waiting'); + const msg = el('div', {class:'msg'}); + launch.onclick = async () => { + if (!pick.value) { msg.textContent = 'Pick an image first.'; msg.className='msg err'; return; } + const r = await postJSON('/api/gate/assign', { target: pick.value, gate_ids: [] }); + if (!r.ok) { msg.textContent = 'Assign failed: ' + r.status; msg.className='msg err'; return; } + const j = await r.json(); + if (!j.ok) { msg.textContent = 'Assign failed: ' + (j.error || 'unknown'); msg.className='msg err'; return; } + msg.textContent = 'Launched ' + j.assigned + ' client' + (j.assigned===1?'':'s') + ' → ' + j.target; + msg.className = 'msg ok'; + render('gate'); + }; + + const track = gates.length + ? el('div', {class:'gate-track'}, + gates.map(g => el('div', {class:'gate-row' + (g.assigned_target ? ' assigned' : '')}, [ + el('div', {class:'pos'}, '#' + g.position), + el('div', {}, [ + el('div', {class:'mac'}, g.mac), + el('div', {class:'meta'}, + (g.ip ? String(g.ip) + ' · ' : '') + archLabel(g.arch) + ' · joined ' + fmtAgo(g.joined_at)), + ]), + el('div', {}, g.assigned_target + ? el('span', {class:'tag ok'}, '→ ' + g.assigned_target) + : el('span', {class:'tag accent'}, 'waiting')), + el('button', {class:'ghost', onclick: async () => { + await fetch('/api/gate/' + encodeURIComponent(g.id), {method:'DELETE'}); + render('gate'); + }}, 'Release'), + ])) + ) + : el('div', {class:'empty'}, + 'No clients at the gate. Boot a client and choose "Gated Deployment" in the PXE menu.'); + + return el('div', {class:'grid'}, [ + el('div', {class:'card'}, [ + el('header', {}, el('h2', {}, 'Launch an image across the gate')), + el('div', {class:'body'}, [ + el('label', {class:'field'}, [ + el('span', {class:'name'}, 'Target image'), + pick, + el('span', {class:'hint'}, + 'Selecting "Launch" starts every waiting client on the chosen image simultaneously.'), + ]), + launch, msg, + ]), + ]), + el('div', {class:'card'}, [ + el('header', {}, [ + el('h2', {}, 'Gate positions'), + el('span', {class:'sub'}, gates.length + ' waiting'), + ]), + el('div', {class:'body'}, track), + ]), + ]); + }, + + storage: async () => { + const [isos, settings, nfsRes] = await Promise.all([ + getJSON('/api/isos'), getJSON('/api/settings'), getJSON('/api/nfs'), + ]); + const mounts = nfsRes.mounts || []; + + // ── Upload card ── + const drop = el('div', {class:'drop', id:'drop'}, [ + el('div', {}, ['Drop an ', el('strong', {}, '.iso'), ' here, or click to choose.']), + el('div', {style:'font-size:12px;margin-top:6px'}, + 'Linux + Windows installers auto-detected on upload. Streaming, no 502s on big files.'), + ]); + const file = el('input', {type:'file', accept:'.iso,application/octet-stream', + style:'display:none', id:'file'}); + const prog = el('div', {class:'progress', id:'prog'}, el('div', {class:'bar', id:'bar'})); + const upMsg = el('div', {class:'msg', id:'upmsg'}); + + drop.onclick = () => file.click(); + drop.addEventListener('dragover', e => { e.preventDefault(); drop.classList.add('hover'); }); + drop.addEventListener('dragleave', () => drop.classList.remove('hover')); + drop.addEventListener('drop', e => { + e.preventDefault(); drop.classList.remove('hover'); + if (e.dataTransfer.files[0]) upload(e.dataTransfer.files[0]); + }); + file.onchange = () => { if (file.files[0]) upload(file.files[0]); }; + + function upload(f) { + upMsg.textContent = 'Uploading ' + f.name + ' (' + fmtBytes(f.size) + ')…'; + upMsg.className = 'msg'; + prog.classList.add('active'); + const fd = new FormData(); fd.append('file', f); + const xhr = new XMLHttpRequest(); + xhr.upload.onprogress = e => { + if (e.lengthComputable) $('#bar').style.width = (e.loaded/e.total*100).toFixed(1) + '%'; + }; + xhr.onload = () => { + prog.classList.remove('active'); + $('#bar').style.width = '0'; + if (xhr.status >= 200 && xhr.status < 300) { + upMsg.textContent = 'Uploaded & analyzed.'; upMsg.className = 'msg ok'; + render('storage'); + } else { + upMsg.textContent = 'Upload failed: ' + xhr.status + ' ' + xhr.responseText; + upMsg.className = 'msg err'; + } + }; + xhr.onerror = () => { upMsg.textContent = 'Network error.'; upMsg.className = 'msg err'; }; + xhr.open('POST', '/api/isos'); + xhr.send(fd); + } + + // ── ISO table (mixed local + NFS) ── + const rows = isos.map(i => { + const b = bootability(i, settings); + const isNfs = i.source && i.source.kind === 'nfs'; + const tr = el('tr', b.ok ? {} : {class: 'unbootable'}, [ + el('td', {}, [ + el('div', {}, i.filename), + !b.ok ? el('div', {class:'row-warn'}, '⚠ ' + b.reason) + : (b.warn ? el('div', {class:'row-warn'}, '⚠ ' + b.warn) : null), + ]), + el('td', {}, el('span', {class:'tag'}, familyLabel(i.introspection.family))), + el('td', {class:'num'}, fmtBytes(i.size_bytes)), + el('td', {}, + el('span', {class:'src-badge' + (isNfs ? ' nfs' : '')}, + isNfs ? ('nfs:' + i.source.mount_id) : 'local')), + el('td', {}, fmtAgo(i.uploaded_at)), + el('td', {style:'text-align:right'}, + isNfs + ? el('span', {class:'tag', style:'opacity:.6'}, 'manage on NFS share') + : el('button', {class:'danger', onclick: async () => { + if (!confirm('Remove this image?')) return; + await fetch('/api/isos/' + encodeURIComponent(i.id), {method:'DELETE'}); + render('storage'); + }}, 'Remove')), + ]); + return tr; + }); + const isoTable = isos.length + ? el('table', {}, [ + el('thead', {}, el('tr', {}, [ + el('th',{},'Name'), el('th',{},'Type'), + el('th',{class:'num'},'Size'), + el('th',{},'Source'), el('th',{},'Uploaded'), el('th',{},''), + ])), + el('tbody', {}, rows), + ]) + : el('div', {class:'empty'}, 'No images yet. Upload an ISO or mount an NFS share.'); + + // ── NFS section ── + const nfsMsg = el('div', {class:'msg'}); + const nfsServer = el('input', {type:'text', placeholder:'10.0.0.20'}); + const nfsExport = el('input', {type:'text', placeholder:'/srv/isos'}); + const nfsVer = el('select', {}, [ + el('option', {value:'v41'}, 'NFSv4.1 (default)'), + el('option', {value:'v3'}, 'NFSv3'), + ]); + const nfsRo = el('input', {type:'checkbox'}); nfsRo.checked = true; + const addNfs = el('button', {onclick: async () => { + if (!nfsServer.value || !nfsExport.value) { + nfsMsg.textContent = 'Server and export are required.'; nfsMsg.className='msg err'; return; + } + nfsMsg.textContent = 'Mounting…'; nfsMsg.className = 'msg'; + const r = await postJSON('/api/nfs', { + server: nfsServer.value, export: nfsExport.value, + version: nfsVer.value, read_only: nfsRo.checked, + }); + if (r.ok) { + nfsMsg.textContent = 'Mounted.'; nfsMsg.className = 'msg ok'; + render('storage'); + } else { + const t = await r.text(); + nfsMsg.textContent = 'Mount failed: ' + t; nfsMsg.className = 'msg err'; + } + }}, 'Mount share'); + + const nfsRows = mounts.length ? mounts.map(m => el('div', {class: 'nfs-row' + (m.mounted ? '' : ' down')}, [ + el('span', {class: 'dot ' + (m.mounted ? 'ok' : 'err')}), + el('div', {}, [ + el('div', {class:'id'}, m.server + ':' + m.export), + el('div', {class:'meta'}, + (m.version === 'v3' ? 'NFSv3' : 'NFSv4.1') + ' · ' + + (m.read_only ? 'read-only' : 'read-write') + ' · ' + + (m.mounted ? m.iso_count + ' isos' : 'not mounted')), + m.last_error ? el('div', {class:'err'}, '⚠ ' + m.last_error) : null, + ]), + el('button', {class:'ghost', onclick: async () => { + const r = await postJSON('/api/nfs/' + encodeURIComponent(m.id) + '/scan', {}); + if (r.ok) render('storage'); + }}, 'Re-scan'), + el('button', {class:'danger', onclick: async () => { + if (!confirm('Unmount ' + m.server + ':' + m.export + '?')) return; + await fetch('/api/nfs/' + encodeURIComponent(m.id), {method:'DELETE'}); + render('storage'); + }}, 'Unmount'), + el('span'), + ])) : [el('div', {class:'empty'}, 'No NFS shares mounted.')]; + + return el('div', {class:'grid'}, [ + el('div', {class:'card'}, [ + el('header', {}, el('h2', {}, 'Upload ISO')), + el('div', {class:'body'}, [drop, file, prog, upMsg]), + ]), + el('div', {class:'card'}, [ + el('header', {}, [ + el('h2', {}, 'NFS shares'), + el('span', {class:'sub'}, mounts.length + ' configured'), + ]), + el('div', {class:'body'}, [ + el('div', {class:'form-row'}, [ + el('label', {class:'field'}, [ + el('span', {class:'name'}, 'NFS server'), + nfsServer, + ]), + el('label', {class:'field'}, [ + el('span', {class:'name'}, 'Export path'), + nfsExport, + ]), + el('label', {class:'field'}, [ + el('span', {class:'name'}, 'Version'), + nfsVer, + ]), + el('label', {class:'check', style:'margin-top:18px'}, [ + nfsRo, el('span', {}, 'Read-only'), + ]), + ]), + addNfs, nfsMsg, + el('div', {style:'margin-top:18px;display:grid;gap:8px'}, nfsRows), + el('p', {class:'msg', style:'margin-top:14px'}, + 'Mounting NFS inside a container requires CAP_SYS_ADMIN and the ' + + 'mount.nfs binary (bundled in the default Docker image). On ' + + 'OpenShift, your SCC must allow CAP_SYS_ADMIN or you can run ' + + 'NFS mounts as a CSI driver outside the pod.'), + ]), + ]), + el('div', {class:'card'}, [ + el('header', {}, [ + el('h2', {}, 'Available images'), + el('span', {class:'sub'}, isos.length + ' image' + (isos.length === 1 ? '' : 's')), + ]), + isoTable, + ]), + ]); + }, + + terminal: async () => { + // Two-pane layout: live log on top (auto-scrolling), command line + // on bottom. Mirrors the Minecraft-server console feel from the + // brief — output and input share one continuous timeline. + const pane = el('div', {class:'pane'}); + const input = el('input', {type:'text', placeholder:'type a command, or "help"', spellcheck:'false', autocapitalize:'off', autocomplete:'off'}); + const auto = el('input', {type:'checkbox'}); auto.checked = true; + const clearBtn = el('button', {onclick: () => { pane.innerHTML = ''; }}, 'Clear pane'); + const tailBtn = el('button', {onclick: () => { auto.checked = !auto.checked; }}, 'Auto-scroll'); + + const term = el('div', {class:'terminal'}, [ + el('div', {class:'toolbar'}, [ + el('span', {}, 'Live log + operator console'), + el('div', {class:'right'}, [ + el('label', {class:'check', style:'border:0;padding:0;margin:0;background:transparent'}, + [auto, el('span', {style:'color:var(--fg-dim);font-size:11px'}, 'Auto-scroll')]), + clearBtn, + ]), + ]), + pane, + el('div', {class:'input-row'}, [ + el('span', {class:'prompt'}, '>'), + input, + ]), + ]); + + function append(line, kind) { + const lvl = (line.level || 'info').toLowerCase(); + const ts = (line.timestamp || new Date().toISOString()).replace(/\.\d+/, '').replace('T', ' ').replace('Z', ''); + const span = el('span', {class: 'lvl-' + lvl}, [ + el('span', {class:'ts'}, ts + ' '), + el('span', {class:'tg'}, '[' + (line.target || 'pxeforge') + '] '), + line.message, + '\n', + ]); + if (kind === 'echo') { + span.firstChild.nextSibling.textContent = ''; + span.firstChild.textContent = ''; + span.classList.add('echo'); + } + pane.appendChild(span); + if (auto.checked) pane.scrollTop = pane.scrollHeight; + } + + // Initial fetch — show recent buffer in case SSE is slow to open. + try { + const r = await getJSON('/api/log/recent'); + for (const l of (r.lines || [])) append(l); + } catch (e) { + append({timestamp: new Date().toISOString(), level:'warn', target:'pxeforge::ui', + message: 'failed to load recent logs: ' + e.message}); + } + + // Live SSE stream. EventSource auto-reconnects on disconnect. + const es = new EventSource('/api/log/stream'); + es.onmessage = (ev) => { + try { append(JSON.parse(ev.data)); } + catch { append({timestamp: new Date().toISOString(), level:'debug', target:'pxeforge::ui', message: ev.data}); } + }; + es.addEventListener('lagged', (ev) => { + const j = JSON.parse(ev.data || '{}'); + append({timestamp: new Date().toISOString(), level:'warn', + target:'pxeforge::ui', + message: 'log stream lagged: ' + (j.skipped || '?') + ' lines skipped'}); + }); + es.onerror = () => { + // EventSource quietly retries; surface a hint without spamming. + // We only append once, on transition from connected → erroring. + if (!term._notedErr) { + term._notedErr = true; + append({timestamp: new Date().toISOString(), level:'warn', target:'pxeforge::ui', + message: 'log stream connection lost — auto-reconnecting'}); + setTimeout(() => { term._notedErr = false; }, 5000); + } + }; + // Close the SSE when the view changes — avoids piling up streams. + term._cleanup = () => es.close(); + + // Command history (in-memory only, ↑/↓ to recall). + const history = []; + let hi = -1; + + input.addEventListener('keydown', async (e) => { + if (e.key === 'Enter') { + const cmd = input.value; + if (!cmd.trim()) return; + input.value = ''; + history.unshift(cmd); if (history.length > 100) history.pop(); + hi = -1; + // The echo also comes back from the server in the live tail, + // so we don't append it locally — keeps the order consistent. + try { + const r = await postJSON('/api/terminal', {command: cmd}); + const j = await r.json(); + const out = j.output || ''; + if (out === '\f') { pane.innerHTML = ''; return; } + // Output also gets pushed onto the LogBus by the server, but + // include it locally so even if the SSE stream dropped we + // see it. Tagged "echo" so it stands out from regular logs. + append({timestamp: new Date().toISOString(), level: j.ok ? 'info' : 'warn', + target: 'terminal-output', message: out}); + } catch (err) { + append({timestamp: new Date().toISOString(), level:'error', + target:'pxeforge::ui', message: 'command failed: ' + err.message}); + } + } else if (e.key === 'ArrowUp') { + if (history.length === 0) return; + hi = Math.min(hi + 1, history.length - 1); + input.value = history[hi]; + e.preventDefault(); + } else if (e.key === 'ArrowDown') { + hi = Math.max(hi - 1, -1); + input.value = hi < 0 ? '' : history[hi]; + e.preventDefault(); + } + }); + + // Welcome banner. + append({timestamp: new Date().toISOString(), level:'info', target:'pxeforge::terminal', + message: 'Connected. Type "help" for available commands.'}); + + // Focus the input on next tick (after view swap completes). + setTimeout(() => input.focus(), 50); + + return term; + }, + + about: async () => { + const status = await getJSON('/api/status'); + return el('div', {class:'card'}, [ + el('div', {class:'about-hero'}, [ + el('h2', {}, 'PXEForge'), + el('p', {class:'lead'}, + 'Air-gapped network PXE boot, container-native, that anyone can run. ' + + 'No CDN calls, no telemetry, no surprise external dependencies — ship ' + + 'the image once, run it forever.'), + el('div', {class:'who'}, [ + el('span', {}, 'Developer: '), el('strong', {}, 'Miles Ward'), el('br'), + el('span', {}, 'Version: '), el('strong', {}, status.version || '?'), el('br'), + el('span', {}, 'Base URL: '), el('strong', {}, status.public_base_url), + ]), + el('p', {class:'msg', style:'margin-top:18px'}, + 'iPXE is an internal implementation detail. Everything the firmware ' + + 'executes is generated from the settings on these tabs — there is no ' + + 'hand-written .ipxe path anywhere in this product.'), + el('p', {class:'msg'}, + 'Vision: a deployment-grade tool that works on first try in the most ' + + 'awkward environments — air-gapped labs, customer sites without ' + + 'internet, OpenShift clusters with strict SCCs — without ever asking ' + + 'an operator to install drivers signed with test certificates or to ' + + 'flip "testsigning" on a target machine.'), + ]), + ]); + }, + }; + + // ── shell ──────────────────────────────────────────────────────── + const viewTitles = { + dashboard: 'Dashboard', + network: 'Network', + gate: 'Forge Gate', + storage: 'Storage', + terminal: 'Terminal', + about: 'About', + }; + + let currentBody = null; + + async function render(view) { + view = view || 'dashboard'; + $$('.sidebar nav a').forEach(a => a.classList.toggle('active', a.dataset.view === view)); + $('[data-bind=view_title]').textContent = viewTitles[view] || view; + const root = $('#view-root'); + // Clean up any per-view resources (e.g. terminal SSE) before swap. + if (currentBody && typeof currentBody._cleanup === 'function') { + try { currentBody._cleanup(); } catch (e) { /* ignore */ } + } + root.innerHTML = ''; + root.appendChild(el('div', {class:'msg'}, 'Loading…')); + try { + const body = await views[view](); + root.innerHTML = ''; + root.appendChild(body); + currentBody = body; + } catch (e) { + root.innerHTML = ''; + root.appendChild(el('div', {class:'msg err'}, 'Error: ' + e.message)); + } + } + + async function refreshChips() { + try { + const s = await getJSON('/api/status'); + const r = await fetch('/readyz'); + $$('[data-bind=version]').forEach(n => n.textContent = s.version); + $$('[data-bind=iso_count],[data-bind=iso_count2]').forEach(n => n.textContent = String(s.iso_count)); + $$('[data-bind=client_count],[data-bind=client_count2]').forEach(n => n.textContent = String(s.client_count)); + $$('[data-bind=gate_count],[data-bind=gate_count2]').forEach(n => n.textContent = String(s.gate_count)); + const chip = $('[data-bind=ready_chip]'); + if (chip) { + if (r.ok) { chip.textContent = '● ready'; chip.className = 'chip ready'; } + else { chip.textContent = '● not ready'; chip.className = 'chip notready'; } + } + } catch { + const chip = $('[data-bind=ready_chip]'); + if (chip) { chip.textContent = '● unreachable'; chip.className = 'chip notready'; } + } + } + + document.addEventListener('click', (e) => { + const a = e.target.closest('.sidebar nav a[data-view]'); + if (a) { e.preventDefault(); render(a.dataset.view); } + }); + + render('dashboard'); + refreshChips(); + setInterval(refreshChips, 3000); +})(); diff --git a/crates/webui/src/index.html b/crates/webui/src/index.html new file mode 100644 index 0000000..e007239 --- /dev/null +++ b/crates/webui/src/index.html @@ -0,0 +1,54 @@ + + + + + + PXEForge + + + + + + + + + diff --git a/crates/webui/src/lib.rs b/crates/webui/src/lib.rs new file mode 100644 index 0000000..dad5b1a --- /dev/null +++ b/crates/webui/src/lib.rs @@ -0,0 +1,29 @@ +//! Offline-only web UI. Everything the browser needs (HTML, CSS, JS, SVG +//! logo) is embedded in the compiled binary via `include_str!` / +//! `include_bytes!`. No CDN, no external fonts, no remote images — +//! PXEForge renders identically on an air-gapped network. +//! +//! Layout follows the Netbox Labs pattern: dark left sidebar with primary +//! nav, top bar with secondary tabs, card-dense content panels. +#![forbid(unsafe_code)] + +/// Render the top-level page. `base_url` is interpolated into the footer +/// so operators can see at a glance what URL clients are PXE-booting from. +#[must_use] +pub fn index_html(base_url: &str) -> String { + INDEX_HTML.replace("{{BASE_URL}}", base_url) +} + +#[must_use] +pub fn app_js() -> &'static str { APP_JS } + +#[must_use] +pub fn app_css() -> &'static str { APP_CSS } + +#[must_use] +pub fn logo_svg() -> &'static str { LOGO_SVG } + +const INDEX_HTML: &str = include_str!("index.html"); +const APP_CSS: &str = include_str!("app.css"); +const APP_JS: &str = include_str!("app.js"); +const LOGO_SVG: &str = include_str!("logo.svg"); diff --git a/crates/webui/src/logo.svg b/crates/webui/src/logo.svg new file mode 100644 index 0000000..1a973ad --- /dev/null +++ b/crates/webui/src/logo.svg @@ -0,0 +1,14 @@ + + PXEForge + + + + + + + + + + + + diff --git a/deploy/docker/.dockerignore b/deploy/docker/.dockerignore new file mode 100644 index 0000000..30b612a --- /dev/null +++ b/deploy/docker/.dockerignore @@ -0,0 +1,8 @@ +target +data/isos +data/work +.git +.github +docs +*.md +.claude diff --git a/deploy/docker/Dockerfile b/deploy/docker/Dockerfile new file mode 100644 index 0000000..54255f5 --- /dev/null +++ b/deploy/docker/Dockerfile @@ -0,0 +1,97 @@ +# syntax=docker/dockerfile:1.7 +# +# PXEForge — multi-stage build. +# +# Design: +# - stage `fetch`: runs scripts/fetch-ipxe.sh to pull official iPXE binaries +# into assets/ipxe/ so the rust build can embed them via rust-embed. +# - stage `build`: compiles the workspace with cargo in release mode. +# - stage `runtime`: Debian slim image with setcap for NET_BIND_SERVICE, +# running as a non-root UID. No shell in PATH for the service user; +# attacker surface is just the pxeforge binary + libc. +# +# Why not distroless? We want setcap support and easy debug (`oc rsh`). +# Debian slim at ~75 MB + binary ~25 MB is fine for a PXE server that +# spends most of its life idle. + +ARG RUST_VERSION=1.82 + +########## fetch iPXE binaries ########## +FROM debian:12-slim AS fetch +RUN apt-get update && apt-get install -y --no-install-recommends curl ca-certificates \ + && rm -rf /var/lib/apt/lists/* +WORKDIR /src +COPY scripts/fetch-ipxe.sh scripts/fetch-ipxe.sh +RUN mkdir -p assets/ipxe && bash scripts/fetch-ipxe.sh + +########## build pxeforge ########## +FROM rust:${RUST_VERSION}-bookworm AS build +WORKDIR /src + +# Copy the whole workspace in one go. We used to do a two-pass "cache-prime +# with stubs, then real build" dance for dep-compile reuse; that turned out +# to silently serve stale stub binaries when cargo's fingerprint didn't +# notice the source swap. A single build is ~1.5 min longer on cold cache +# but guarantees the binary reflects the sources we copied. +COPY Cargo.toml rust-toolchain.toml ./ +COPY crates/ crates/ +COPY --from=fetch /src/assets/ipxe /src/assets/ipxe + +# Cache cargo registry + target across builds. The `--no-edit` touch is +# belt-and-suspenders: cargo occasionally misses mtime-only changes on +# networked FS; this forces a fingerprint check. +RUN --mount=type=cache,target=/usr/local/cargo/registry \ + --mount=type=cache,target=/src/target,sharing=locked \ + find crates -name '*.rs' -exec touch {} + && \ + cargo build --release --bin pxeforge && \ + cp target/release/pxeforge /pxeforge && \ + ls -l /pxeforge + +########## runtime ########## +FROM debian:12-slim AS runtime +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + ca-certificates libcap2-bin tini gosu iproute2 \ + wimtools samba nfs-common \ + && rm -rf /var/lib/apt/lists/* \ + && useradd --system --uid 10001 --home-dir /var/lib/pxeforge --shell /usr/sbin/nologin pxeforge \ + && mkdir -p /var/lib/pxeforge/isos /var/lib/pxeforge/work /var/lib/pxeforge/smb \ + && chown -R pxeforge:pxeforge /var/lib/pxeforge +# Runtime deps explained: +# wimtools - provides `wimlib-imagex`, used to inject startnet.cmd into boot.wim. +# samba - `smbd` serves extracted Windows install media on :445 for WinPE +# to `net use`. Guest read-only, scoped to /var/lib/pxeforge/smb. +# nfs-common - provides `mount.nfs` / `mount.nfs4` for the Storage tab's +# NFS share manager. Mount also requires the container to run +# with CAP_SYS_ADMIN — without it, mount(2) returns EPERM and +# the manager surfaces a clear error in the UI instead of +# failing silently. +# iproute2 - `ip addr` / `ip route` for the auto-detected Network tab +# fields (NIC name, subnet mask, default gateway). Tiny, +# always available; we don't pull in netlink crates for +# this one-shot startup probe. +# gosu - drops privileges cleanly from root after the entrypoint fixes +# bind-mount ownership (common OpenShift/Docker UX issue). +# Windows-specific tools only activate when the WebUI toggle is on. + +COPY --from=build /pxeforge /usr/local/bin/pxeforge +COPY deploy/docker/entrypoint.sh /usr/local/bin/entrypoint.sh +RUN chmod +x /usr/local/bin/entrypoint.sh + +# Grant the binary the ability to bind <1024 ports as a non-root user. +# This is the only capability PXEForge needs for proxy-mode DHCP + TFTP + HTTP. +RUN setcap cap_net_bind_service=+ep /usr/local/bin/pxeforge + +# IMPORTANT: we do NOT `USER pxeforge` here. The entrypoint runs as root, +# chowns the mounted data dirs, then execs the binary via gosu as pxeforge. +# OpenShift ignores USER directives anyway (it injects its own uid), and +# there entrypoint.sh's non-root branch just execs directly. +WORKDIR /var/lib/pxeforge + +ENV PXEFORGE_ISO_DIR=/var/lib/pxeforge/isos \ + PXEFORGE_WORK_DIR=/var/lib/pxeforge/work \ + PXEFORGE_LOG=info,pxeforge=info + +EXPOSE 67/udp 69/udp 4011/udp 80/tcp 445/tcp + +ENTRYPOINT ["/usr/bin/tini", "--", "/usr/local/bin/entrypoint.sh"] diff --git a/deploy/docker/entrypoint.sh b/deploy/docker/entrypoint.sh new file mode 100644 index 0000000..7c10bfe --- /dev/null +++ b/deploy/docker/entrypoint.sh @@ -0,0 +1,32 @@ +#!/bin/sh +# Container entrypoint that handles the common bind-mount-as-root case. +# +# When volumes are bind-mounted into the container (e.g. `-v ./data/isos:...`), +# they come up owned by the host uid:gid — often root:root. The pxeforge +# binary runs as uid 10001 and can't write there. This script, when started +# as root, chowns the two state dirs to the pxeforge user, then drops +# privileges via gosu before execing the binary. +# +# If the container is already running as non-root (OpenShift does this via +# its own uid assignment from the SCC), we skip the chown attempt and just +# exec the binary — OpenShift either preconfigures the volume with fsGroup +# or the operator is on their own for permissions. +set -e + +PXEFORGE_UID=${PXEFORGE_UID:-10001} +PXEFORGE_GID=${PXEFORGE_GID:-10001} +DATA_DIRS="/var/lib/pxeforge/isos /var/lib/pxeforge/work /var/lib/pxeforge/smb" + +if [ "$(id -u)" = "0" ]; then + for d in $DATA_DIRS; do + if [ -d "$d" ]; then + chown -R "${PXEFORGE_UID}:${PXEFORGE_GID}" "$d" 2>/dev/null || true + fi + done + # Re-exec ourselves under the pxeforge user so the binary inherits a + # clean process environment and a predictable umask. + exec gosu "${PXEFORGE_UID}:${PXEFORGE_GID}" /usr/local/bin/pxeforge "$@" +fi + +# Non-root: straight exec, no chown attempt. +exec /usr/local/bin/pxeforge "$@" diff --git a/deploy/openshift/00-namespace.yaml b/deploy/openshift/00-namespace.yaml new file mode 100644 index 0000000..08e2a35 --- /dev/null +++ b/deploy/openshift/00-namespace.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: pxeforge + labels: + # Allow privileged pods (host-network) in this namespace only. The pod + # itself still runs non-root with only NET_BIND_SERVICE — privileged + # here is about namespace pod-security, not container privileges. + pod-security.kubernetes.io/enforce: privileged + pod-security.kubernetes.io/warn: privileged + pod-security.kubernetes.io/audit: privileged diff --git a/deploy/openshift/10-scc.yaml b/deploy/openshift/10-scc.yaml new file mode 100644 index 0000000..f8ab8d2 --- /dev/null +++ b/deploy/openshift/10-scc.yaml @@ -0,0 +1,80 @@ +--- +# Custom SCC for PXEForge. +# +# The default `restricted-v2` SCC blocks host network and all capabilities, +# which PXE cannot tolerate: DHCPDISCOVER is an L2 broadcast that CNI overlays +# do not deliver into pod netns. We grant the minimum set needed: +# +# - allowHostNetwork: true — required to receive broadcast DHCP +# - allowHostPorts: true — exposes 67/69/4011/80 on the node +# - requiredDropCapabilities strips the usual dangerous caps +# - allowedCapabilities: +# NET_BIND_SERVICE — bind <1024 as non-root +# - runAsUser.type: MustRunAsRange — force non-root uid mapped via setcap +# - readOnlyRootFilesystem: true — binary is in / (set by image), data +# dirs are mounted elsewhere +# +# We do NOT grant NET_RAW / NET_ADMIN / SYS_ADMIN. Proxy-mode DHCP does not +# need raw sockets (see architecture memory). +apiVersion: security.openshift.io/v1 +kind: SecurityContextConstraints +metadata: + name: pxeforge-scc + annotations: + kubernetes.io/description: >- + Minimal SCC for PXEForge: host network + NET_BIND_SERVICE only, no raw + sockets, no privileged mode. +allowPrivilegedContainer: false +allowPrivilegeEscalation: false +allowHostNetwork: true +allowHostPorts: true +allowHostPID: false +allowHostIPC: false +allowedCapabilities: + - NET_BIND_SERVICE +requiredDropCapabilities: + - ALL +defaultAddCapabilities: [] +readOnlyRootFilesystem: true +runAsUser: + type: MustRunAsRange +seLinuxContext: + type: MustRunAs +fsGroup: + type: MustRunAs +supplementalGroups: + type: RunAsAny +volumes: + - configMap + - downwardAPI + - emptyDir + - persistentVolumeClaim + - projected + - secret +users: [] +groups: [] +--- +# Bind the SCC to the pxeforge service account. +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: pxeforge-scc-use +rules: + - apiGroups: ["security.openshift.io"] + resources: ["securitycontextconstraints"] + resourceNames: ["pxeforge-scc"] + verbs: ["use"] +--- +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: pxeforge-scc-use + namespace: pxeforge +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: pxeforge-scc-use +subjects: + - kind: ServiceAccount + name: pxeforge + namespace: pxeforge diff --git a/deploy/openshift/20-sa-pvc-config.yaml b/deploy/openshift/20-sa-pvc-config.yaml new file mode 100644 index 0000000..e6fbfbb --- /dev/null +++ b/deploy/openshift/20-sa-pvc-config.yaml @@ -0,0 +1,35 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: pxeforge + namespace: pxeforge +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: pxeforge-config + namespace: pxeforge +data: + # Toggle DHCP proxy on or off. "proxy" = answer PXE clients alongside an + # existing DHCP server. "disabled" = require operator to point an external + # DHCP at us via next-server/filename. + PXEFORGE_DHCP_MODE: "proxy" + # Override if auto-detection picks the wrong NIC in multi-homed pods. + # Leave unset to auto-detect from the node's primary IPv4. + # PXEFORGE_PUBLIC_IP: "10.0.0.5" + PXEFORGE_LOG: "info,pxeforge=info" +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: pxeforge-isos + namespace: pxeforge +spec: + # ReadWriteOnce is fine — we deploy as a single replica since DHCP proxy + # coordination across replicas is not useful (clients hit whichever node + # hostNetwork catches their broadcast). + accessModes: ["ReadWriteOnce"] + resources: + requests: + storage: 200Gi diff --git a/deploy/openshift/30-deployment.yaml b/deploy/openshift/30-deployment.yaml new file mode 100644 index 0000000..8250bd8 --- /dev/null +++ b/deploy/openshift/30-deployment.yaml @@ -0,0 +1,104 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: pxeforge + namespace: pxeforge + labels: + app.kubernetes.io/name: pxeforge +spec: + # Single replica by design (see PVC comment). If HA is needed later, split + # the HTTP/web plane (scalable, stateless) from the DHCP-proxy/TFTP plane + # (anycast / per-node daemonset). + replicas: 1 + strategy: + type: Recreate + selector: + matchLabels: + app.kubernetes.io/name: pxeforge + template: + metadata: + labels: + app.kubernetes.io/name: pxeforge + spec: + serviceAccountName: pxeforge + # L2 broadcast (DHCPDISCOVER) does not cross most CNI overlays into + # pod netns. Host network is the working path. + hostNetwork: true + dnsPolicy: ClusterFirstWithHostNet + securityContext: + # setcap on the binary allows non-root <1024 binding. No need to + # run as root. + runAsNonRoot: true + runAsUser: 10001 + fsGroup: 10001 + containers: + - name: pxeforge + image: ghcr.io/casperadmin/pxeforge:0.1.0 + imagePullPolicy: IfNotPresent + ports: + - name: dhcp + containerPort: 67 + hostPort: 67 + protocol: UDP + - name: tftp + containerPort: 69 + hostPort: 69 + protocol: UDP + - name: pxe + containerPort: 4011 + hostPort: 4011 + protocol: UDP + - name: http + containerPort: 80 + hostPort: 80 + protocol: TCP + - name: smb + containerPort: 445 + hostPort: 445 + protocol: TCP + envFrom: + - configMapRef: + name: pxeforge-config + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + runAsNonRoot: true + runAsUser: 10001 + capabilities: + drop: ["ALL"] + add: ["NET_BIND_SERVICE"] + volumeMounts: + - name: isos + mountPath: /var/lib/pxeforge/isos + - name: work + mountPath: /var/lib/pxeforge/work + - name: tmp + mountPath: /tmp + readinessProbe: + httpGet: + path: /api/status + port: 80 + initialDelaySeconds: 3 + periodSeconds: 5 + livenessProbe: + httpGet: + path: /api/status + port: 80 + initialDelaySeconds: 15 + periodSeconds: 15 + resources: + requests: + cpu: 100m + memory: 128Mi + limits: + cpu: 1000m + memory: 512Mi + volumes: + - name: isos + persistentVolumeClaim: + claimName: pxeforge-isos + - name: work + emptyDir: {} + - name: tmp + emptyDir: {} diff --git a/deploy/openshift/40-service-route.yaml b/deploy/openshift/40-service-route.yaml new file mode 100644 index 0000000..71b4e5b --- /dev/null +++ b/deploy/openshift/40-service-route.yaml @@ -0,0 +1,43 @@ +--- +# Service for the web UI / API. Using host network means the pod IP is the +# node IP, so this Service is mostly useful for cluster-internal ingress to +# the management UI via Route below. +apiVersion: v1 +kind: Service +metadata: + name: pxeforge + namespace: pxeforge + labels: + app.kubernetes.io/name: pxeforge +spec: + type: ClusterIP + selector: + app.kubernetes.io/name: pxeforge + ports: + - name: http + port: 80 + targetPort: 80 + protocol: TCP + - name: smb + port: 445 + targetPort: 445 + protocol: TCP +--- +# Expose the web UI through an OpenShift Route. Clients on the PXE network +# still talk to the node directly on UDP 67/69/4011 — the Route only covers +# the TCP/80 management plane. +apiVersion: route.openshift.io/v1 +kind: Route +metadata: + name: pxeforge + namespace: pxeforge +spec: + to: + kind: Service + name: pxeforge + weight: 100 + port: + targetPort: http + tls: + termination: edge + insecureEdgeTerminationPolicy: Redirect diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..9c90768 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,66 @@ +# docker-compose for local / homelab deployment. +# +# Two usage patterns: +# +# 1. Local MVP test — host network, proxy-DHCP off (don't fight your +# existing DHCP server on the LAN), TFTP + HTTP exposed on the host: +# +# docker compose up pxeforge-dev +# +# 2. Real PXE deployment — host network, proxy-DHCP on, runs on a box +# plugged into the PXE network: +# +# # First set PXEFORGE_PUBLIC_IP to this host's LAN address in .env +# docker compose up pxeforge +# +# On Linux hosts, `network_mode: host` gives the container direct access to +# the physical NIC — required for DHCP proxy because CNI overlays and Docker +# bridges do not forward DHCPDISCOVER broadcasts into containers. +# +# On macOS / Windows hosts, `network_mode: host` is limited — the daemon +# runs in a Linux VM (Colima/Docker Desktop) so the "host" network is the +# VM, not your Mac. Proxy-DHCP is not feasible on macOS; use `pxeforge-dev` +# with published ports and set DHCP-MODE=disabled. + +services: + # Real PXE deployment (Linux hosts). + pxeforge: + image: pxeforge:0.1.0 + build: + context: . + dockerfile: deploy/docker/Dockerfile + restart: unless-stopped + network_mode: host + environment: + # REQUIRED on multi-homed hosts. Set to this machine's LAN IP so the + # advertised iPXE URLs actually resolve from the PXE clients. Without + # this, PXEForge will refuse to start rather than advertise a + # loopback address that can't be reached. + PXEFORGE_PUBLIC_IP: ${PXEFORGE_PUBLIC_IP:?set this to the host LAN IP} + PXEFORGE_DHCP_MODE: proxy + PXEFORGE_LOG: info + volumes: + - ./data/isos:/var/lib/pxeforge/isos + - ./data/work:/var/lib/pxeforge/work + + # Dev / MVP container: published ports, DHCP disabled, HTTP on 8080. + # Use this on laptops where you want to curl the API or UI without + # running an actual PXE chain. + pxeforge-dev: + image: pxeforge:0.1.0 + build: + context: . + dockerfile: deploy/docker/Dockerfile + environment: + PXEFORGE_PUBLIC_IP: ${PXEFORGE_PUBLIC_IP:-127.0.0.1} + PXEFORGE_DHCP_MODE: disabled + PXEFORGE_HTTP_PORT: "8080" + PXEFORGE_TFTP_PORT: "6969" + PXEFORGE_DHCP_PORT: "6767" + PXEFORGE_LOG: info,pxeforge=debug + ports: + - "8080:8080/tcp" + - "6969:6969/udp" + volumes: + - ./data/isos:/var/lib/pxeforge/isos + - ./data/work:/var/lib/pxeforge/work diff --git a/docs/architecture.md b/docs/architecture.md new file mode 100644 index 0000000..891c514 --- /dev/null +++ b/docs/architecture.md @@ -0,0 +1,270 @@ +# PXEForge architecture + +## Protocol stack + +``` +Client firmware PXE ROM + │ + │ DHCPDISCOVER (UDP/67 broadcast, option 60 "PXEClient", option 93 arch) + ▼ +┌─────────────────────────────────────────────────────────────────────────┐ +│ PXEForge │ +│ │ +│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────┐ │ +│ │ DHCP proxy │ │ TFTP server │ │ HTTP server (axum) │ │ +│ │ :67, :4011 │ │ :69 │ │ :80 │ │ +│ │ (dhcproto) │ │ (custom) │ │ │ │ +│ └──────┬───────┘ └──────┬───────┘ └──────┬───────────────┘ │ +│ │ │ │ │ +│ └────────────────────┼─────────────────────┘ │ +│ │ │ +│ ┌──────────▼────────────┐ │ +│ │ IsoStore (on disk) │ │ +│ │ + ClientRegistry │ │ +│ └───────────────────────┘ │ +└─────────────────────────────────────────────────────────────────────────┘ + │ + ▼ reply with option 60, option 66 tftp-server, option 67 bootfile +Client firmware PXE ROM + │ + │ TFTP RRQ: snponly.efi (or undionly.kpxe for BIOS) + ▼ +Client runs iPXE + │ + │ DHCPDISCOVER with option 77 "iPXE" + ▼ +PXEForge sees user-class "iPXE" → replies with HTTP URL: /boot.ipxe + │ + │ HTTP GET /boot.ipxe (iPXE menu, auto-generated from IsoStore) + ▼ +User picks entry; iPXE chains /boot/.ipxe + │ + │ HTTP GET kernel + initrd (or wimboot + WIM files) + ▼ +Kernel boots with distro-specific args pointing back at /iso/.iso +``` + +## Crate layout + +| Crate | Responsibility | +|---------------------|-------------------------------------------------------------------| +| `pxeforge-core` | Shared types: `Config`, `ClientArch`, `FirmwareClass`, `ClientRegistry` | +| `pxeforge-ipxe-assets` | Embeds bundled iPXE binaries via `rust-embed` | +| `pxeforge-iso-store` | On-disk ISO store, introspection, boot-entry generation | +| `pxeforge-dhcp-proxy` | UDP listener + `dhcproto` reply builder; pure `decide()` unit-testable | +| `pxeforge-tftp` | RFC 1350 + OACK (blksize / tsize / windowsize). Serves only embedded assets — no filesystem | +| `pxeforge-http-api` | `axum` router: web UI, API, iPXE script generation, ISO streaming | +| `pxeforge-webui` | Single `index.html` served as static string | +| `pxeforge` (bin) | Wires everything together, runs the three servers concurrently | + +## Key decisions and why + +### DHCP proxy only, not a full DHCP server + +Proxy mode (RFC 4578) replies with boot parameters (`siaddr`, option 66, 67) +but never sets `yiaddr` — it does not lease IPs. The client merges proxy +replies with its normal DHCP lease from the network's existing DHCP server. + +This sidesteps needing `CAP_NET_RAW` or AF_PACKET. A full DHCP server has +to craft Ethernet frames to a client that doesn't yet have an IP — that +requires raw sockets and elevated privileges. A proxy replies on UDP to a +client that already has an IP (or will shortly, from the other DHCP server), +so plain `SOCK_DGRAM` is enough. + +### Two-stage iPXE chain + +1. Firmware PXE ROM sends DHCPDISCOVER with option 60 = `PXEClient`, + option 93 = arch. +2. PXEForge replies with TFTP server + arch-specific iPXE binary + (`undionly.kpxe` for Legacy BIOS, `snponly.efi` for x86_64 UEFI, etc.). +3. Client TFTPs the iPXE binary and runs it. +4. iPXE does its own DHCP, setting option 77 (user-class) to `iPXE`. +5. PXEForge detects the user-class and this time replies with an HTTP URL + in option 67 pointing at `/boot.ipxe`. +6. iPXE fetches and executes that script, which chains the selected OS. + +The split is essential because firmware PXE ROMs only speak TFTP; they +don't do HTTP. iPXE adds HTTP (and a lot more), and is small enough to fit +in the TFTP hop. + +### TFTP option negotiation is mandatory + +Default 512-byte blocks means an ~1 MiB iPXE binary is ~2000 packets. +On anything less than pristine wired Ethernet this is unusably slow or +outright fails. We negotiate: + +- `blksize` (RFC 2348): up to ~1468 bytes for Ethernet MTU +- `tsize` (RFC 2349): file size; some PXE ROMs require it present +- `windowsize` (RFC 7440): 8–16 gives order-of-magnitude throughput gains + +### Do not touch the client OS trust store + +Whatever we do for Windows, we never: + +- ship drivers signed with test/development certificates +- instruct users to enable `bcdedit /set testsigning on` +- install any certificate into the target's root/trust store + +iVentoy's `httpdisk.sys` approach broke this rule. PXEForge doesn't. + +### Linux ISO boot uses kernel+initrd extraction, not sanboot + +Loading a full ISO into RAM via `memdisk` or `sanboot` fails: +- Above ~1–2 GiB, RAM emulation is too slow or too large. +- Most modern distros can't find the emulated CD device from the initramfs. + +We instead extract `vmlinuz` + `initrd` at upload time (well, look up their +locations — we serve them via ISO9660 byte-range lookup, no extraction on +disk) and pass distro-specific kernel args that point the installer back at +the HTTP-served ISO. + +### No iPXE UX + +iPXE is an implementation detail. The web UI only accepts `.iso` uploads +and shows distros, not `.ipxe` scripts or boot targets. If someone who +knows iPXE wants to peek, they can `curl /boot.ipxe` — that's fine. But +the UI never surfaces it. + +## Unit tests + +Run with `cargo test --workspace --lib`. Current coverage: + +- `ClientArch` alias handling (0x0009 → x86_64 UEFI) +- `FirmwareClass` classification (iPXE wins over PXEClient echo) +- Raw option-93 extraction from the wire +- TFTP RRQ parsing with options +- HTTP Range header parsing (full, open-ended, suffix, explicit) +- Distro family detection from volume label +- ISO id slugification + +## Phase 3 hardening + +A code-review pass after Phase 2 turned up 16 issues across the protocol +stack and container surface. Everything P0/P1/P2 is addressed in this +release: + +**Protocol reliability** (review P1 #10/#12): +- TFTP retransmit loop rewritten with explicit window tracking so UEFI SNP + clients no longer hang on files that end mid-window. Covered by 4 new + unit tests (`plan_window_*` in `crates/tftp`). +- DHCP proxy now honors the broadcast-flag bit (RFC 2131 §4.1) when + choosing unicast vs broadcast reply destination. + +**Container posture** (review P1 #2/#13/#14/#15): +- Multi-arch container (linux/amd64 + linux/arm64) via `buildx`. +- New entrypoint (`deploy/docker/entrypoint.sh`) chowns data dirs as root, + then drops to uid 10001 via `gosu` — fixes the "bind-mount comes up + root-owned" problem that breaks ISO upload on standard Docker hosts. +- `/healthz` and `/readyz` split from `/api/status` — readyz fails if no + iPXE binaries are bundled, giving K8s probes a real signal. +- Startup aborts with a clear error if `PXEFORGE_PUBLIC_IP` can't be + auto-detected (no more silent `127.0.0.1` advertisement). +- `scripts/fetch-ipxe.sh` fails non-zero if zero binaries download; the + Dockerfile uses arch-scoped paths (`x86_64-efi/snponly.efi` etc.). + +**Windows boot plumbing** (new): +- `pxeforge-iso-store::smb::SmbManager` supervises `smbd` on the Windows + toggle: `start` → spawn + write `smb.conf`; `reconcile` → SIGHUP on + share changes; `stop` → SIGTERM. `SmbState` surfaced to the UI for + visibility. +- `extract_windows_iso` shells out to `7z` (or `bsdtar` fallback) to + unpack the ISO tree into `smb_dir//` as the SMB share root. +- `WimPatcher` (from Phase 2) is still in place for `boot.wim` injection. +- Guardrail: flipping the Windows toggle in `/api/settings` is rejected + with a 400 if `wimboot` isn't bundled. + +**iVentoy/Bootimus parity** (P2): +- ISO sizes in menu labels (`[ 4376 MB]`), iVentoy format. +- `Reboot Computer` + `Exit and continue BIOS boot` in Tools menu. +- Number-key hotkeys (1..9) on boot entries, letter hotkeys on tools. +- Clients tab cross-joins the gate queue so an operator sees "at gate #2" + or "assigned: ubuntu-linux" status inline. + +**Developer ergonomics** (new): +- `pxeforge seed --from ` CLI to import ISOs from a directory. + Same pipeline as web upload (slug, sha256, introspection, boot-entry). +- `docker-compose.yml` with `pxeforge` (host network, real PXE) and + `pxeforge-dev` (published ports, DHCP disabled, for API testing). + +**API cleanliness**: +- All timestamps now serialized as RFC 3339 strings (the `time` crate's + default 9-tuple broke browser `Date` parsing). +- Gate poll retains assignment until the operator releases it; if the + client's chain fails, it reuses the assignment instead of falling back + to the menu. + +## Phase 4 — UI restructure + remote storage + +The web UI was rebuilt around six tabs (Dashboard / Network / Forge Gate / +Storage / Terminal / About) inspired by the iVentoy layout the user +attached and Netbox Labs's compact-card pattern. The old hierarchical +"Monitoring / Content / Configuration" sidebar grouping is gone — every +tab is one click from the brand bar. + +**NFS share manager** (`crates/iso-store/src/nfs.rs`): +- Operators add a remote share via Storage → NFS shares; PXEForge mounts + it under `/nfs//` and walks it for `*.iso` files. +- Each ISO found is registered with `IsoStore::register_external` using + a new `IsoSource::Nfs { mount_id, relative_path }` variant. The store + resolves these to disk lazily via `set_nfs_root`, so adding NFS + required exactly one new field on `IsoMeta` (with a serde default for + forward compatibility with old `meta.json` files). +- Versions: `vers=3` and `vers=4.1` only. v3 also gets `nolock` since + appliances commonly disable `lockd`. All mounts use `soft,timeo=100` + so a dead server surfaces as a UI error rather than wedging iPXE. +- State persists to `/nfs.json`. On startup the manager + re-attempts every spec; failures are logged per-mount and surfaced in + the UI rather than blocking startup. +- Container requirement: `mount.nfs` binary plus `CAP_SYS_ADMIN`. The + default Dockerfile bundles `nfs-common`. OpenShift operators must + swap to a more permissive SCC or use a CSI driver. + +**Live log + operator terminal** (`crates/core/src/log_bus.rs`, +`crates/http-api/src/{log_stream,terminal}.rs`): +- A `LogBusLayer` feeds every tracing event into a 500-line ring buffer + plus a `tokio::sync::broadcast` channel. +- `/api/log/stream` is an SSE endpoint that emits the recent buffer + followed by live updates. Slow clients see a `lagged` event rather + than dropping the stream. +- `/api/terminal` accepts a single command line and dispatches to a + whitelist (`status`, `isos`, `clients`, `gate {list,assign,release}`, + `nfs {list,mount,unmount,scan}`, `smb {status,start,stop,reload}`, + `log {clear,tail}`). Output is mirrored onto the LogBus so reading the + live tail tells the same story as scrolling the terminal pane. +- The whitelist exists deliberately — exposing a raw shell to the web + would be an RCE endpoint. + +**Network tab**: +- `/api/network` exposes auto-detected `nic_name`, `subnet_mask`, and + `gateway` (parsed from `ip route` / `ip addr` at startup). These are + read-only by design — silently changing the public IP on a hot UI + would break PXE for every client mid-boot. +- The only writable network field is `dns_server`, an optional + informational hint stored in `Settings`. PXEForge does not run a DNS + server; the field exists so operators don't have to dig out the + upstream DNS at 3 AM. + +**Bootimus parity nicks** (Bootimus v0.1.55 → v0.1.62): +- Storage table tints amber for ISOs that won't boot with current + settings (Windows ISO when Windows is disabled, Linux ISO with no + detected kernel + over the sanboot size threshold). Each row carries + an inline reason — same affordance as Bootimus's "Image Properties" + warning. +- Dashboard surfaces a "Images that won't boot" panel reusing the same + predicate, so the operator sees the problem before they pick the ISO + in the gate. +- Streaming uploads are already in place via axum multipart; the v0.1.62 + fix to "502 on big upload" doesn't apply. + +## What's deferred to Phase 5 + +- Full ISO9660 + Joliet + Rock Ridge parser (current lookup is plain ISO9660 — Debian ISOs with Rock Ridge extensions may miss some paths). +- Real-hardware Windows boot validation (plumbing tested; no MS ISO pushed through the full pipeline yet). +- Real-hardware NFS validation (mount manager tested; no real NAS pushed + through the full pipeline yet). +- UEFI HTTP Boot protocol (option 60 = `HTTPClient`) untested on real firmware. +- Raspberry Pi netboot quirks (option 43 vendor-specific, per-MAC prefixes). +- Multi-replica / daemonset deployment model (single replica for now). +- Pure-Rust SMB server (replace smbd) — slim image, no Samba. +- Auto-install / autounattend file library (Bootimus v0.1.58 pattern). +- Per-client / per-group menus (Bootimus v0.1.16 pattern). diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000..73cb934 --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,3 @@ +[toolchain] +channel = "stable" +components = ["rustfmt", "clippy"] diff --git a/scripts/fetch-ipxe.sh b/scripts/fetch-ipxe.sh new file mode 100755 index 0000000..34ce285 --- /dev/null +++ b/scripts/fetch-ipxe.sh @@ -0,0 +1,83 @@ +#!/usr/bin/env bash +# Fetch prebuilt iPXE binaries from the official distribution at +# https://boot.ipxe.org/ and place them under assets/ipxe/ with the filenames +# PXEForge's arch mapping expects. +# +# Why not build from source? +# - Building iPXE requires the toolchain + several megabytes of source, and +# the official binaries are rebuilt nightly from upstream master with the +# standard driver set. For Phase 1 we use those. A later iteration can +# add an optional Dockerfile build stage that compiles iPXE with custom +# driver or scripting patches if needed. +# +# Safety: +# - Upstream (boot.ipxe.org) serves over HTTPS. +# - We do NOT pin by sha256 because upstream is a nightly rolling build; +# pinning would mean stale binaries with known CVEs. If you need +# deterministic builds, mirror these to your own artifact store and +# point the Dockerfile there instead. +# - Each binary is boot firmware the client executes. Only fetch from +# upstream or a mirror you trust; never from random sources. + +set -euo pipefail + +ROOT="$(cd "$(dirname "$0")/.." && pwd)" +DEST="$ROOT/assets/ipxe" +mkdir -p "$DEST" + +# Map: local filename <- upstream path on boot.ipxe.org +# Upstream uses arch-scoped subdirectories; we flatten to the names our +# ClientArch::ipxe_bootfile() expects. +declare -a MAP=( + "undionly.kpxe=undionly.kpxe" + "snponly.efi=x86_64-efi/snponly.efi" + "snponly-i386.efi=i386-efi/snponly.efi" + "snponly-arm64.efi=arm64-efi/snponly.efi" + "ipxe.efi=x86_64-efi/ipxe.efi" # fallback with bundled drivers +) + +BASE="https://boot.ipxe.org" + +# wimboot lives in its own GitHub release. Fetching it enables the Windows +# toggle in the WebUI. Safe to leave disabled — the binary is vendor-signed +# for iPXE's own use; we never modify it and it only runs inside iPXE's +# memory space, never the target OS. +WIMBOOT_URL="https://github.com/ipxe/wimboot/releases/latest/download/wimboot" + +fetched=0 +for entry in "${MAP[@]}"; do + local_name="${entry%%=*}" + upstream_name="${entry#*=}" + url="$BASE/$upstream_name" + out="$DEST/$local_name" + echo ">> fetching $url -> $out" + if ! curl --fail --silent --show-error --location --output "$out.tmp" "$url"; then + echo " skip: upstream not available ($url)" + rm -f "$out.tmp" + continue + fi + mv "$out.tmp" "$out" + fetched=$((fetched+1)) +done + +if [ "$fetched" -eq 0 ]; then + echo + echo "ERROR: zero iPXE binaries were downloaded. The container would build" + echo " but no PXE client could boot. Check your network egress to" + echo " $BASE and re-run this script. Aborting." + exit 2 +fi + +echo +echo ">> fetching wimboot (optional, enables Windows ISO support)" +if curl --fail --silent --show-error --location --output "$DEST/wimboot.tmp" "$WIMBOOT_URL"; then + mv "$DEST/wimboot.tmp" "$DEST/wimboot" + echo " wimboot installed" +else + echo " skip: wimboot unreachable — Windows toggle will stay disabled in the WebUI" + rm -f "$DEST/wimboot.tmp" +fi + +echo +echo "iPXE assets now in $DEST:" +ls -lh "$DEST" | tail -n +2
+ + +
+

Dashboard

+
+ checking… + 0 images + 0 clients + 0 at gate +
+ +
+

^L6<#!v$_h2 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®tb*`5^Cibo~raqd4&-V#30i3 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�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