From 3517c678311460f0a14783d117115a030f37b4b1 Mon Sep 17 00:00:00 2001 From: Miles Ward Date: Wed, 29 Apr 2026 02:47:00 -0400 Subject: [PATCH] Name update --- .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 +++ 66 files changed, 9016 insertions(+) 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/.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 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

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

DkO}BzsS{?@Va*q3QPfGPi@7Uh|1eY91U%fwXW^ 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ⅇwgy$ik+?*r} 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

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

I4x(c8o&CwpZVyw2J)!k%<)7v z4$Gr%#6E5P3i)_tmsk|(!wF(>*q1M8A0ZDV7b~tJu-||0xBcZNlZBR$xA~aHq`b`n z*=fT`o_+8H&)(nrZ0P5YSo$eGqFhxoJhkVU1J*xo>%OMsTgdBjg?13ZCl z@zhzIZ-DHnYv~el)tojDxl{Qt4rd`4_}*#gwNGO+w)2KQ-##XFQB6_mqDS%n$oAqb zCNGb99eUB?OXhaqBAFxyF86~Uun1&ir)oNLJR)FQ zrGIK~BpLTA;=nYYkK%iRmR5PJx&A-LJMias^!tt8d4@K{z=jy|w=QIF*%SW`yu|m+ ze#id=Yt@0wvmfw1VEh1kancITBx?Ecg*DV5@__Lf zHSiSHLuc;_=27;n_;Cn#_WX3gyoB}r4Ra1;l`)y6z~$`|z`&m01zrjcZ^6@o{1vB4 ze))0CU$rX==O5TagZUTcjug)S%gjOZdKCOM<_!Nj=D(NuWi@ADa~<>6Gmn}ne%Tt+ zMxIjlvU+r6=KBzGb)5B0-fY@$Pki~p6^XBKb`$5?GRM`-Nw^ix@mJvd9}4DpLBBZ$ z^dQtHoe{*R!efK|bhiH#`On^&ZubvqBSwGTDAWGX#J~G}BJ=(AC^ z5?Hf1v^aS_dz3MS^4NXkJSt~^I-)zt%iI|&a$BWCN)8U6(b$6hv#sq5^hKP2mBTAj zXZx`c7vqPB9B78N7e24rGtMx4Z6>-CyTO5d@aG7*Mp5(SJ#o&5oo~z=i4iN;6;b=Z z&Tn|2Fns)_Ddry#2d(!GrPZBiC#iSZl;(ZeRT_ zIt(^&+U;lmt{^{D^(Vu+W`T_=S{2j)B-V!ZWTT??WJa|Bb+#DJ?y5pNRrdDV?lr1& zmOm>uJ=xh^ajW@$`eEuD@qL+3T|TY_b-Tx9(kmxym0VEG_+4_(bruHsVLtK4d)#j) z+6hj-{3Ybz&!KmuS5nV!UmH$0y z+Q)&*n#gHY53l^>R%&ZhJ@T;nA45E$&Rk9HIn3`@u$zc3A|REk-^0*EV@3}(zxTR6 z{~q9Z%Zx7KlKu4GdpJXVW&NA@-X%LP;atNq;speochoC{-k$@kbGIz%;@RDQRU95` zs(xhqk(~#-;k(wG6CR*b*FVEY>z&9=_3z8$$11Kx!|SQ3zG!y%d{cNmHq}>-yRKU~ zDPIpK+yj!MT%KL2^NCDZm7WRlQ8HDymt|{ec{b#I?Y;GpeiJvFwtX*gK zduDn!JVNytCIDmAW0=Ud>gGOw!<@ESWbtdFWjj;U##ViUNs2p#RsjB;=;5I*8Ubz^n4i`Ws@^9=@uPmtrp>?nb|5k3{}&P~UH}|8*^` zGqCv1@x6amFkaOF34Cs2Y#i^~tW_*p^8)$-e&X`Xa_0Xd<{ivWGLH^4}xPtRCl@F%cY5K1@{2Sk)Jb})<3Hf%l!zc04!G4@`ro<1HelXG90xwz0 zIuF$UgjdcK>7@fHvSPH)JkB;--3rubQ%>8~~tF?(S z$8Y_#XYDKeez&t*1@{*0urB){O|2EdLVbnsmmkVhC(zF#nT2`yhR=rkTkmY=o%1e? zbccSwK3D=rVAvaHg>E1?3U)TmDtC_m&w2R8fM3=jp6d}}tWKr2HMB(g)n&gPW_(Yu zUv+<=F3fuk``eHiksmsTy6s>1T43K4ZttKDjQsnm#|*BZuMw{q?H_*}@gi^&>`mZQ zwydQ-Ho`17=8^hX%-L#)!KzF}+BC;B_KsML+B(GZYo3B#4gYmdzv0i_k!6a5i?;4t z;XXd!L=W7_*fvs^r;_I)+)oVS?9;UAvd?kmQzd;w%q4A=DaZDaDCUfj@LAnYo2~X) z&c3TWXqJiYzgu6O|Es=&`9%H~eF+aFH^{ae?g`~#Z)Y6}bx!G<79V%T{J;JN*$x^A zPFkJw7yJ+NpQU#SS99o|4{+VC=b-+&XBye!M%MF*zpbr5JaX$|&H2dHlK=Di_A~wE z4b{QWcyz{|`aA-UC@&3s_Np-&0pEIhB5lpc@9e{FXF4(qHXxlLSjlr-^IcCxMm5aE8Wkf>;FMiSr3!3{2@v>DpDZOu6`p@U?G$TYaob zd$RE>eepMq8;KDE7V#GXy*1qHzy5n4o!3}RjQB)!_^&cPZzixrkJot!fjk=M{h@!Q zuuu65evGUZJQvui|LfJT?J(!x=0|2+bS>#g)LBEHFUc78tNgpFx7HOcstRf~IhkL) z${4K9xVHYtZt?a$eW|a;Szj!P#@`Gbx`nyMtuKV91P@w^U| zgGPgIR!?5fH9fPO_kRP92WOy-&%FA4&)VJjeO|)46!Ven7Shc`dU|i{GXBiW%h4k0 zP(`bBMuX)^u^GPjvDW{D_tP`{$G9J?N8WyejW)0UR~18#n_AHQ*$2r)AX~~G^N`l~ z?#sH$SADu`O(S__p6Wz!ZZS zzSBkHIj4iz@8|)|TX@bvO2oquqo(-ZJPp5+HXUfU))L=SH@3*><_dH-=&ZpPiw%)D zC}=yhl;8IJGWLLK$;qeG?y)cMm5V?7ikCXZZwFYPf&l51&YK$Ny#ychL}Ka4-yUk( z9P(e{JmajvUWp!?Dp=Dhttn$KthJ+hH77a`Knzd103H`suQFLvOun+;**hlC?{azhKA-^{z4P!Xe>V zAs(H{II{)g4)^z$7(@8Gk51%qBo*xSyTDKFa|eE{K4mLaKe7Xbx;vF8%LVrcaD$e# zS8y(v>U`Pf$w9TxMt|AlW{WIi$32@y|Op1XWmilzIFOPJvciG`|#{|dBv!jEV=;w znQ`uNw}`WCduem%3kqzR=&~6zmb^Y>De2AMfW~Ovxz`ydv`+S+KAUErFGu?#1y1B` zn&kPOYi*iI;sQNr7x&0fc|W$zk~WXpZXRp0gnDZ1!A!GzR)F6v+P5KjXMV{@;SF^NrrM2;_ zmb`W^`(E_9P=DDGH>>N;zO=oPcAB7T9Zl!y44C%65(k$hPIRD7;sS?L*grvE{e2yM zV-Mp6vE>erwB13i58++MaBH*0PZ>SXc+bjp&(p`r#vQ;gRsYhNW=$dNY#+AffUW64 z3{f<5_X(Z}WG$WL8qE+(uzElGS}`!U@dWU0)_%{vI_xgsP!_qa;~Q>UBRDSHOq4tR zLX9ZkgXp3R=YhLRQyO`Y!xHYqZG&-6Oa)ua5=XU`Qrk!JXe$d zU1OG)QCn~Y`&05!Bl}Tp4rPyMuUT9qC!vs+Y0auwvm=wGZ`2Xv*I$n{@TtN1IyPY~ zTkq71y8<74U|+Jb8tWDEY0)QQIeO!Zj#6t#<5>ee59PHm&da#Q$F^YUc_<^iwm+03 z1K(TV&u}uY54CnsY*J=30@Wt@;?_i};h|$P+gZC7?u$k+r_Hh_sZV?E0s5iU`MEw% z{0&>jo7~%F#}&l%2mX&fx<|Z2rZ-<4TA}#XB(ygEr_=p!(@#iG(%^~a8{$dtb1$Cm z|7*c>UcqyEM)P07UP`tY|6ZQ+_`XWd4~Vgm%_Gc373~e|9@gF%ob?VJLeATB!2)Ct za7DCO^f_VUNg}PH$&yn$<{@j0l`p(J^Ht(NwciKYJcJA1eiU3diCx3a(Z-3R4=Znr zzETg>Sv@KST<76eTk`2A7Yo<=zK;tNiD$_CwmI=az^bJYc>b@Kz67N&}wUQ?RS4{=0fgEc2Ya4#V0y^Au!dPyQuX6ZlEKTXX;sZ;i2|F zbZA$CnA!j6`@bo{nGMwH=+!HN{TrO=ZTBzolJ-*X{$&m9{;k7?M}PaMZyQIJsFm$U z{QhzC3&tG8VW!|G8sCZJd#wRR31Yc+J&G)`$`tRc1pnxxy@N5XI##!LUhJpi6MSS(Ql55V^~!bebE%mY;s&@h z(03nWtXkWF@dNbFv_`;@mgaqPyuqJ4=x{p*D8<)Cxo&-1|@cvVJwLF>=@u1*lY z^PlIC>j+FOjT>OAb7b=*?tC9UF3lyRbC$-X(cx_E&2k$HYS20H*{zkW&LdvT0P}~a zOSuAFJ=s#*7mEq4dw}bOHtDOW6(OASz}uAQyQ%h_iL(2nV?vw4_{&~;(wo!cWDe2i zhDeYnAR4!n+$8DCsYc~%1^G$vtUUvD=2VGrYjkEL_|JZ_w)w(mWRqV5{wdcpTt}^s zVy3XUuU5>|O^kKR3uAoCtMa)1YsRx8GHSN=;gZNGzlS=k#DS@P;g&4#52P(Q)^PPB z*zE9`fVmYC2b0=jZIzA}TwT(4ZTx*Oy5dQClF|_?b-nHw1YzHsf9Mbl1J;MKbN9!kB zR0MrtGT+)iywecn-AX-v>AaOw4fXRfOg{b<14}UTf|vB#hJG+fG0wK zI-oz|jp%L20mYe4#&b1m(GxMqDEIzQl(C{sa z;r7V4JrUjVO7XcpEZuZW=2N`umT;yUboWUFYOz}IhS zpZEy&gjw=oGz0Gqj44k21nf=Sg2Q3pa8q~B=AJLP-&f6q4S6^`N1s1@yJzze#_}@1 zU#749w6B<*Am2i~mD)oZ&s#k+ML&MQb8lY|$dIa^e02WB#L;2Nj`r12=v&Jo?Ec00 z!Xn6FTE~*MjriSEceRVP>td~}eu4S#O>_a7VfCY%sMiK8^j|qrVLQU*@ER~ZsOyj3IM!DmPv-Bv3@i%YspYz0 z7UbsXY=huDbMhT5?^oS~PH_Aj@ERTA4UKyr=k953I^nNP5uK;gS6ftmRofmkuZesI z_TF0DMzbo4+(Y17FMl3L?}SowmR;#T&QmINQb^*z+II`|gLgLE|@Tt+Ydt@^*OFT8(PaZF7ldXG+uH%alf7SRk z&ne7LV+r9`XeZO&Zln$In*=uP6u(VurvKgl1-{Lu{ddE)#K~}teH=w*dINuf-N!C5 z*(ce@Asq?i3e~KNWcEQjK4sxL8atuMe2?Ff%MCX8&G5XXpWcct7x=ph=W2Njevwts zWBVMuQ8Gsm+ZV`l;yvI?m7zuydkC8t`G&-TZK4mxh#Xp$na;c|oREX}9_!i6-naGd zzm8p3vbt)Ey`6`jXyCo<*CiW+I$r4ioFC(4)-;~oTQfwwRBI!CS~%V$Yp4D@u_Lag z|4wX(G3I!!m5qZlW28%k@2JkXgw3YjGX>F{}X>$}6F~T7*nYtRMG-dA;L4a_hU^N1iy@eZi)G zT`11DWo?4mP(>MQD@E>`ImB{~1zyWwjPn`ztif?=H?KkmpiPrB&ciRUXG-uJ9 zpMfWOMr+svO-a+fWY>ZE>9P&)UdQR3W6jGS$Q+^kVR-@L6)&>mWvo{2VB9B?JF@w) zr5JxP_WVZ~zvh)ghPi;TN(P~ZUH1v)kO6aG-!*)gIi$b|&0AxTeDH1hkUikt>JVA_ z!y4D2XRKs@h3`gs@%JZfx)#U~LEZbnt`^XA!CHMS4Pg!6l^hji4$?{3FTFApd-sI) z9e8J^3Hd2pwWZSWsKjzn4cz*DupvI70muF-@2<5^&4xMM=kM7y zsRM^52RO8my(HXlg+IVq_@n-XKZ4;U;e7c0JpEbR86f|;(9A!lndf=^WxRKu<<$p6 z(Vh@~I{PARadk{aFg!2pGY`YZ=~uk-{|1I(dokJyU?^LrXzSR_*Lz_|3?FTWx_jRL zwTbg@tlu3yB&hX=KTJ7N`u)m4%W`{?{A@`-3<5VNEC zOE&64rqSG#LuKs);J#pB`6+b01N=`i4&|jMjnVnF^_<1jw&Ix6Hio{0TPg6iqTEy; zg(j#i$wjr;$=*jLw-}=MErK&gkF4eflewoC7JtAd7p8t*4VZrX8Uh39_fxD zY(zi0tc|}G`80w4(%;svJ=j|VgnmN#pn>t)6bC*5PMg@fT+i@?!&^%{52xm-Cx=f@;-Un{Ui)>GPe?7?=GA4WHhFjj3xMXI|3Z ze)eE3eZ?;s>gVbV`n`GM;mDeG=aA%kt94!u{u z#TS~8Rp~RN*H^Q*#n-#)0$d2|5gwiYVSF?Fb?IQe!rD`UKRzmCx{H9DY=T;!GVK2v zv)1NLVnp-4(q37oPX-U_AE&f_$o-;i*jB2>mS5g3-Q}%%GuOM4_!;K2;!5O?Ms$>s zsXbq(%_QgEW>2Lqws9`^>J9a0uqz>xy^kD8Vl0x8VN+wY^~K03Q@uuF1RY0-Zzk$5ppjXCfC{``l?3_J?RAhAg~> zXO$NT?NR>v9uGV+v9Yqv<8&wv0ebE$cY6I0Guva|3K!zwLIvxcVlOH$ zQTU&wy{p(;+Y_(F>f`ibY%`s>ZfO771>GtSK2Fm25`Y{&K2@r?G-r}@tE zjG1EQs&38Cfpwq$(&xKVTdXU&PY!JbXW@!hN%z$EXJ|*c$dW};(1P=j8;|ij;4A%Y z3fsD|x6`)=|JJ)&@0VytK9pwW5+A{s84tRT-Rm*h^1zE1c~AP6)-wfel(L>1@QJv* zFaBaymkM7N$)6|tAp2;YV6J(_)205aF9o=ucMqQ_zhGJBQO2!rji=By@#DNNs3%&4 zTzZO)0T!+tx%$*L(Xuu4cXa;nwvW^P3zdU?Yj6InvG(Sxx&L?CSHC5+Z}^@Ku0<~l zt~u&+GW4@NwdW#m$<|xu{}!%q8DyrXv>xSVZs$wr0{T6|%zcU9s!?j7sj4gJq6>b6Ljtd*0{Fa@o9h z>G}AP;hdjl=6;iBHJ82Ix8o@_bAQaWjt4p8P~+pjQ*5T&_BRjqzpk-zPdJ(4y<8+U z{-?aFIqMuMwUyO>o;l3gzRCCK5^^k%zmdJVb1NM`hW)@mAD?=>I)l<;rQii4pg& zi?15udyF~c$%19)Jh%J1)D_F>j2LRaNVjR`{mI~_;1mC8neQ?0RlN5y?Q5()V-^3m z?g2d_(^aYdlz=ha3d`9jnO1II_H?IPM< zz?uu6J3kA|q5WY!WX9X@*uUB_cDsjrHVelDk5E4O0*|G8$IM{5|p7w+AT>SL- zRUaXTS$pY9WQeP<{|~4`GK~1ml*_(0m*I;Vg3NH4_>}Zl=MHx&JQ#WvxlH%N>(N#2 zRD5pjG2&La$2(EIR~6px_}(3Rl2g)$I)3uoL&+I$93oe+&6&4$PxJ4$9dZ)S9cuo? z>xZ0D^pH=itB+57da*N(`UmtW+SIeML~`h^<5!JoDwxVEmHd3p2) zfjkQQ_INiWw;FuW-VO1su?5q&#zzpZ{88tPT4Z!NjA6e0oq6pd2zh+ms|H99c5a@ zt2%B-cE!N=&M3Ll)V8esTuYhg`ZLtt(D%wAqg%JYQ=8N`|Kr9CRi35dk*WLJuG~x3 zvK`;gR8yKNL#}S$mT=zKe$3*9omY$IW+Fqw`2}+`Z^W6K#g!lQ#}#N$!vt`pYp47^ zA4jjanl=9fISVEIV%iGzis|?tZM_cO4P=!*9;3bAG{&v2EO+mTBdb%}uC?w)Gutty zyQbVdR12I`TlF4rO*HUz@XfBFjXenBGc1iprjguaX)Z2-#TRKHfXNT69 z*`oa&HJpRP+7d5s`AiSj$+WzuB4^%!RyTCi$?s5>iNNcB$uo_2yKUrtwYQvV+EV2G zTG(K_D%?kc&GX+v?`Mym&~J@B6P=*mg$9Yg!%ueI$7fCF+5VPF>arn!Ti$Z_VE<~a zn~6jHk;KiYhDV)jjl5@;4fTg{E!b~C9l22F5`H%`=iK-U{3y>XiI|})BF>^qc{l9W z+&I)fHU)n>@||Lxh(|^)8k2d8Yb#E54>dD)$tnSiqq{Xv)wtICs&l;*oL$pW5%9jN z0yv9~NiX>7`^jI1HgsCpaqb83)jB+=8ePzoG_u_2ALZ?O{QtaYAMKWM&85Dn+F8l7 z7PeQt6SlVrwx48v(7WSTy|XrT-oLYJpnnG*5Y(?S7x>RpCxmsHfjlmM(ykNvlbYz~ zM1CH{Wo@+Zh$0*0>wSZpny2l9@h7|s{2uHfPts3{n7)+OjI)b7p9KckGMuxa-?|n% z&C0nQN zI?xZK!~TGJWd@iY=GuwkUsf@ORB2Q-_BR(nt5%uQrxl$W;I(sO#Nv14bHR6XK?M2& z|IX9wIJRRCJTTv?uye@eb9hD16SS)}PZXWv^UOixUgUq4nEZh5Iu@T)hbQpiN6|^i z-5}mXHF=bu`yzTo;U0EYjGJfXkC?Y$rLlE@U2>gM)Zw(SVE+}uB0CuR@}R}9jOn># z?`U}NmPuxDvc#RelurykXNc(@U11g%3C5faejm7ip0Y5(-o5EEuiDZEbjaK2FK>t1 zqId<>$da9EJ9dziUB3(L+`(z-tOpghi5z+$P9N(N_+?p_X4>+6I1* z3v+c}9h`UMpJ59O>L~>}q}EIN1a0g&iY>5kz0%kc%*5L6G3eFU`>T@BBjKZHOiuOa z(Piy5_KNWPX?TgtHPxxV30!1;w(hcIH_83dFOnt3#ww}pfiXtx<%Tb^=0~laE0{-N zJge|dG2x!}SguC(8I{|$%cN=)|JQr=oV^yS@nuu9xcUrvM)}-b;JryUP>rXby;F0G z8vpCeK{8+#TuR|z(i~jiue`%28n!C_;2k--^w)4H<4%o&cN5={~CzS=4^xJ>olRR14Vph3tRkrZw)p&%Ac#|2Km-Ey5jgFcQ?5M@Kx+1Ps~V zd$hmFhggo?Z~1y^ayD~4j$9eWM8&b;$fjsv8v5qQwaD`_d~>W<<@>GOc_r`aeDd6~ zrxp*!CejH0YJRd+xyUrKQ{{kHW5iuvY0UCK59^Z)mNfRAF(aLVaoclN0?a>yj*37ujObU+g(+hIhi) z67e49a-df5X8q1s&{SQ-r+C5S>M4Ah3Z6aDSOzhcXBo$2K51a0J~gJ7!M(omq$n94 z;8WpT=(~Od@0alIv#XrB`=TXP+paZ>E}@NQQf98^_ie8CJCwwlEhgsO3$J)@AJ=ZRzC$G}RpTI%cUx_avFBw~G zzRf}O7ve)MIw+&QJEEmLJIJ1O8)Lt}N*{gWPVJezpt0J<0WGMkR{twGqe$mY>fNx< zm+6CddTEyYjp4jPJV-H*DHaDNSMLX2MJC#c?y*xm8Q9oZLcJrrQ2*-}#H-`{4rM<1 zleC|;mmi`p@jT}4AE!2t_#v>}9QynZ5w}U*xoYvuLOV)0Caq1F>r|0)7F{nGf6AGw z`>bp5{|{!aY(^FP!5hIjYvu~K0~!<9kb?2p_=PGD+fO6$%B*7*dT~&{f?T^eI zCWDhGy}|XYSyan)58iK^s2jHxHl=Q~&r?(H&1M*D-HLFp6l85fxU z;G6JWD>L`cyV9OvAGB`=W}>ks-8?=?|FLwRu3Q)wEnL6`S)GcYpQX&)nq|(S@6i5n zd>}6P3a_?wDF^L1kxg1YMU7E0<4-_C71L>D2Y7<;(|bJ8y#PFGY#Hr0GY;*?xHsN^ zKWC!r9&_3Jd)7(sdjFQ_{%1YgSnzDB%%7rXxu<7$@hm#lCfUc9Y~<`-=9zl!RBI!; ziEHX(1wOisJ2<~JUFBCSGv8OADmx-F`%(LF34U>-ezeFc!e(lQkTJ!{66HnYot}^xx zn_H!4w0Yj*i{CZI z{}}m81NEgjytk6~#5W$Hk1u~Op*pjhzfHRz;yvAej+~1g@J@ciRpu+}bp5%z2HU+= z*l%Av&^C)V$vtx{%)o!uN&!zC|5w*r{NJo~@b(n7>pD8~!Hx9YMEgz}d(20%-|2ba zngusj@LXZ;%}Mve0;fHsY4gLHL&%hW!k*@VXDQaVV%+fdkml=I3)4KlcY+I{o+Ekr zhm5IEW)>a^uj1}|{H2OFL-yVK!$fx$d+&M3{L;O3ZNq={tc3@b-%Fp;3sf^uyhQYO z9rrYjB+m-Bx9I#%#w3~Rr5{GLzv|Bg-wxBxz5l?5$2+z7kuRVP?Q489_S$>+kKLfv zJ2bz#VyUyppd%fYEvhc?n+G{o=p;NR`XjmBu%;g8eWj#h6>)YTZ42&+U1Kf0B{N9R zmY!2vYL+{@YVEi_f{rY?IR+h^{qBF_G7x%}t zSdl-i5Z4wLhq$)O;u`i9XF+XyV%O*Z*RsX_8NxN5E5x;;yWIBTyRM+7by3weLuImN8Wm+$ZdZV8`{r!M|&H6}po1=p_>sFtPMtE$ow^?R zFGoL;moMhKl05Sj;qM~T9>-Q%V~P)0yK+o6$Vt$xT;eEtO0K+8- zv%8$y+glpP*}BbR7{7=8N$03{&=0y{)rtI1-VNl)R7QEuvGBphZSxDM9Xyh;bw{3q zMx$>T%e1f{x{5A(C z6OTHs&0b$U+4p{3M(kh3;~x3)$zPw|cGI8XB`wrH=u|%Z&^C{`do9EGcKqYi2EDyy z)rA$*1pOqw?ku#ST;o1&bMG>@AS=M{#+r|s-5&mN^&uN_{Kkm?S)ON)S7nd)%vwr) zc<~0WGwMr+f0P=L-o`mE(miM6hn6EzwWW4ABwI zsfIDz93iXo_m6229wI~Sss;ZNj2)eC_he)#@VHk;n!G@MD)c{aPkw4WLw?uT)L$9z zL)#YXx7vv;LpO(hxF)^0!c^XnV($qCvM0o76J2nV1AkBaVXQyBqE83Z{?xt;zinHe za=V>e#Ku4X*9M2SD`{K4jT%$BXggyucew4&T6CV=s5i`NY&t<3dya>&k18jo*XF%i zb{N^x0^6BG{hE@tWw*HP$B1n#Va{azeY@ z?iyg_us){dlD*@iu^|MUkR(eSCEbzs*9% zG2Xiey0vuDDE+?_m?!Ts?e~FWFAgf5rFq4MA~++42DQ#?CXl*N!J<;&y61 zVf%+J;p@R>_spba-a2=At^{0d;hORlOSpe`{`U~mp5pzZGtKNRoMpdd%%pj5PBXJL z#-zqEWyg5&#Ewa3c{4dYabtFVF^Z46lK_y?#p5O>_ETH_daJZ!~nd-YDj8P;0KJM81>?9DwDQS?3S#anM9x0L;SeR6B< z^`F~{o@~!t88^txW|cC z@g5)KU$r!dvA{pRHhd?fgTZ@2%$a0^Fy2hDX5~d6oob+oobPsd4KXPjwJxr3D80DG z#BRtEM-=jtkUtNM?`r%S`^^~kF|sf7cpZLPjyx**GL$*p1Z_-z@RGe-BC#R(O&5#) zqqFW7|Epr$Z!yoCZyzx=clYI8r&-!E_CPK8b00dr$GgOeR^3F5nfGbYow33B8NexL z%uL-+)3;HrBt1i$!)Q};e;$}QrFCr|hyJ}pOzsQ!tXUT~V_KbY8ubpw?3~Shm9IU3p*?RWV~|HI9ElJ5?2d5F=$|#yc-)dZW=R&$MJHJq zBX#!`U8C*1$`2&5i|Ag8xrWy^$X3F*UtNM;!}rVjZjAb6s)q&)pOkz8Y`5yWvBdu& z-^mEF5^({sA}e!9rq0`f0$XmwpZcGdcpr0~5w%r)c<8hwlxH#a_=vcW(zL!h7418#dhj!^Pj^{#kqq_s1H> zS-5{Hdhb82S`eIvJJ_zF2RsaNh=W|AS`H3tF*=s2|8sHRcbdUI82C&Q+&rSSM@{whRCl*? zmgyeNen^jcH_P%xVq!MA_R=d(AL2Z=tkO8UvJSvVHC>^8`nbz(%WFU0vJr7U9 zR#Q*>1ibCh9kW`ScviJ*b#8>}*KWSYow{a7_IInG!;gVm9l-a=neOZ-&_f^O<4tyh zxRCqNflBJy#%5==rsHOH+>G7%U+}!hu)6NC-Z*={d1P3$JBM!*8K^afj_^b=^<7z$ zCysAjEZ^9FvVUJ^?v2P673f^Czhh^_XQFZMVP3LDS5hZzeoh#r3)buS ztubRS0p?|ykNl%&Ee`L@`NgrBjf;`BqD57@-iW-#d4y{{=&c!*+OwMZh(E9{TkhoD zv8Jx=$RYCfkl&U@qHXIXOWln;$y(*!Hp|o4&2q>2CblKlVz0O7kT=cOTIzG7oaG+y zjUykuA3yBAS?KQLo#ii2iy#-3^~y!fti5EV1Nh26N1va84s18WN4;Y1m?@b|_T3b7 z@(Os{x@hUl4rJP;jK!|0y+<87Xy^l4WBdPf`~NBar-owdSR9!hLw@mYj?7m7acIL? z#}xM!=nBtK{P8pJfFjm2>=)fjyk=yU@jMwBF*Az{;(cZA)D-o^C8tbfFNbtmdsXdj znDq4GRlszK@PywtGpARMUo}hkQU`o*s*L(KBlmt-{m6&dGIwgsn4y{{{+os!k-D~P zqGlBFJv-f~8M=~qkfd?c-y&*%Hz>}{rT$0O%4eK4nXRaHut_xB^}(q(0WZiHa zjp8rtqi0H~mvXN0e^32}MtFxY<1fc{-d&xYU;U-1vvWJV5!rrW9rmXjwK@ke->nXO zmbR|p+?e^uZW^0lFIfHT@9+WEJ8niyO9Fe*>lwiAGsuuHnb8Np!-mJGm2P>%?ZiPv zN)9;46ygo%zZ|@4ptmur>&0)_E^d?$~<* zTT-E1^7g;XfhP9V{EoS?)+}>+)l3+wHaen%s@5^)95K%wnxA`CtKj@9`S_1x%YPQw zc|&U3-M?c?#wMY6R?zPYy3U%v7Dr#_xA@Ve#58;r+*h5dJNQmW$gB#PTk9w==tS1;K*kqd9K^4tyiNVSec)U^y=`%? ze9N4bk7sBbd2DTty&TTj;p_y}iwOPP;q~5kk#)m&Sr_~QHjf7zeBaq8ITEGi<%Ot^SjYoMTEf#yqB#3pUML9~8*eU~9d)lwNZ#*n zKl3C*#Gd}~zV9FTWS-mJYp=cby6?56?@f=#t2^>nO zSUigJkw$I|7GC{b=3jm@o%Iz3|E=(pY4|#hfOim|D)+}OxTFur50;^ZRt%q!YJ}+8 zr|*O35BkNdK7{Vz<4Q3ezkV{bu*do#*vH3u#OI`(57T$gM%LRS_#o=Zd8Kx;{5lb8 zdDcF{J`(YC{JpBPJm(g}Um#hFzak<#nYw4S*i~illv>dl@sFRQgFttC4p&q8?fYbd z92)l!K6Oq+E{v*6VfXg2_b?Y;>7b3||6keb`3cka;veFi%)|8;<{Yh;=uf^2?Qhd} ztFraTzQXr0XeNE_@@nzK6863M{`BW~7Ux+Ed>GX;1qTB@b#%=1`O9s+l!S8Lk^gDM zGWj27p0tN3Gu12+oL$nL6(2u+c{Q=jqHgR*`3$5lucZ$I{xYf?2X0vd6}&qwJ!X0J zZ+JIW7jVTdPi9_X;B_bSB3=>zzk2q{tNkms@SgTc3ZJTl@zH&f+1jp7$kyQ`7qk2k z=0?0r^FD{R?Qhzf?f;HqzYst0b;lVSvp&XVd zUdTD$wb8RXGvvsYV7CK*%}d~7Cv#9L`eU!WYC*+m!;C$~{f~*VEwB%w`JK8K_+b^a zO-?)VxKZ;!yC!jjyZsE)%Dp{3;7c?ykSk65UuB;C_aq}XA@c;2mupv<=e$Og1^;%)63VDpZOYOnf_~Tuhehk zct*7Rme==C`yzucyK!WCrEI?3XA$heU!BHI2XLXe7+mX|0Z6R*Lj09p{UCduS9ve% zU2|;Ld^QH1hX3?81d{y?CYgaZCB9hfese#5ghJz{p=0HH&kM_sW$StE=^^HtOCK5N zV~6YMzJUb(9rT+*Q`mAHKDfYKv!RXl?xsD@mo+Y>Horl8+C!sQEwv}$vvX}t09#Lo zHRrFj6SHF)sG|rUyaj$Qf5b|ifsBse%cSpb_3co<2D-O*+14b%4vTm^wBto^ydIvG z%ij-IGmj9Q>(W`x(t&@J#Ujc3Wm^P3P<+8mbH|Nrp;+^dy;?>{F-g`FZ-m>hyJa_~6 zTG#VO{-=*}@8bSY+LqjjL(8IX(RD6O#~I&wj4ckWok^S`#{O5`J5%>2RxbHI--SmJ zzeTndg^~5-aU{uW2s~_DeS?$L=E8>AzpNaCO*uIR5q$5xRxV)QWotnB^eUY|{Rp?C z=u3Wwc+|KPX|EPPwe*x=n0jFJ7al=ujX5qQ7Z81*x)yqiLL4WAK*$25Wy@tNh%Ih{VQ(YLd~jr2p>?N|f8%w(Mjl>S4IJtd`+@hQaP)j@DH zjvC+MA^PS*zLA}7X(FT;k;m_((^!23nhWed$N_;)Y zrVi_mv3y~C>fvXg6TTnH>%xVm=6=R*^^D(~ySS9~bQb5o{b=)@HclDCrf1j-;$zsO zWr`OhuyISwXq!XTekpZNg268KZoPdjG?d%l-SoE{{ltse7p8XMb5O3a;`l-0Z7Fgj zh!0JZp7S^~yO_0cLvTWi^07F(cK0sE(HO<9%7b26_tX1r-S+C=^8O~qs`dCLZ4_bC z+!!osd6j(Y?;^uD1&esb+UMCZJnO?B|7!4<-K(*cCvG{?twbi*GB5Aq^M8Z3)XsL^ zg%?bZB9}eBQOMkRXOpDKzxT)RBx6wC!6j8*UaR1m1#f^ymS@=iB_GU1==^c$K{Re= zk1e`aaq5M{D$f>rkZ&)ZD$Ns+6JI_V+=a>if zgADSYp*85lYx91pJq~6{-cL>E4BF6Ik!~{132pPv7$moi^+}v+Mhu?lpbu((yRf-g zkLAdUY0_17&(~L@)b@-$=FL~^G1IAih*v`64)~BBFTBKi0^6#8?yV87xBqG<_-nef z_YuwoUUl%SWCGqVnIzr_KBrk<@~uxS)b-H*nu*tFETeu{c}gWTAK6;s)(rIVCbSG>QFglgt@+Rm(pUq27y=7k>a z>ayk1Dbh3W_0F_5NNdDwjZX=ob5gsW@fpShE%v3c{S9k04!+}4s`^aa%L~u7MF!f& zZ*b)&Osn4gGXFKl+V7IC2o^W%tv_U%m$(F297@(ep;0M|jR0uaAr#%&8yf zCmT=m+sVLZd|giOVEb<~x5l@lC$1o`sY5!1Ps8FNqG94G*8ZHwy3NuK>tfI^|5Nte zvJXHxW7D7ef@#ICyn^G+yXN4}KLwwF{0q|OhPJD{Qj#O@!i$FDXa#LPPFovu+PX5^ zmUQqyJlfgDcjiD8`^>|g#$%uhKdiw$V{6VKpN9OGtgl5l z)i+fG-*|Rs{rYHM&+tGpmi?}0cx7_z#s0S*4*YMC@!9^oZ=)NceX1wxWWViZU(wjF z9r|qqy;a{^+&~kd_!pA(_>I(`PYW7TI^@lF7`YuTmVWBp3oga?#@?>*fjKVgtF8$wqvKvMt-2 zOL}Enj$8VLWL-YFJUQoQB0t>gu+i$^>#~J(ExfV*K2lS`Va+YOhqKOkM>P*Vym^oo zeLNzsQa3UNV4mjV(TN9Kcd{w;ufgGc!fWm~R}KA!u`fOJ8|!oQ#`=^U>j#U5kxydv zaCwbmW!swM`!W8I?QNLS~HdS{6SxBY;7H^TGVIODUT%G>Yn*UOOKHuG-( z3UUvycZ|!qp}pW>o#Bi^&im}jyc>8dcH#HlxszB+>%pq!_}|vmo#gbL65#o5=7ILm zF}>$M$UePLQE$s_&V9ARjC=Kw#!a0*J$d1$*0hVEQhdvNaZw$O3CwfD^3(bjxy?+K&H6R0q5Tj}3*ECP)B|oI4?NaV>R;l0SDS<%ODId;Vo@_4eokQ;76P(Zd4{|EjR!!Kj>HUTs zZJck)yUQZZOt%96{1f>TS}OYIF0W`X56qie(V`r+Z#`snkCtm5!B##?`p1Nn&RxCb z3H*HZ;jTv>pNWlT+z+vL-{*g_WpOeRDjdamsT(TJESZ-IUD#_zo1;@%7|hsJ6Ln4e zX%w(;s2HC9LpaZjsvH|QnzJBD$1dhCFsgPnYg0KS$amWBjK$D%Mwuls@O@i<^;-7H zS7cV9m)FN<_t!VhewO~%R$a6qMgPp%vY#|xXz^eeoAA44;|QBx}0AFYGrHcu*MDQNw4$vk{`^GdG;=5RSOOz;Iq zl@@Z1{^MMI+F~a(xn=&}KbCtD|ACbtByn7tv+@9D|JA?ZbLW({jJ-gpUljOM%~-s$)jInGWaFpST|t%pC(_KmW( zvAbO8b@3w2wU0+|YVoMG$=pn3oWf@*=XI&ieBvGv@~{jtME$A%6X|n5efqpn^8b*bnmBSo<)y z@h`*?i9h>sh+uD2c|g-lY?S-}M~q(3qjRJ!ev7(HUc(Npn{(0cmtG_vYQv5Qwt2HDYN@-T&aQ#8XFK=J z3776hCfB6LF#qHL9BzISqfE_*cVlZw&OLBeQhj}nIjNbiT6gJarIdb9%M5P zL+1<4)!w<_)wSru#}UWe7&LERHqm)Mz;)u@X5ibf z@D=bR+K~;Y|8Mg@zS7z`=$hkgE%@*!dG{|*E|krwXN%x7i=yLQ^^e~}weXdjFmNt) zj58BeM=AH7d{ANNo%#rUjnO0Q9$MMIS_Af8>Bx`VQ=O$oaIJ6ko+qaj3z%T-(g)!$ ztLx1+*@@O)Q98D2y8tA|B?}pOmN9z@3_h+GdS~|JM>0R7KuKPiJbBuS@ zZTNiSh1SO(3z`8xe>#+v<>>9&N3WQczMqcnBYh_Jgj3Nb{D`kSf{w)hZ_sWAojCKn z@Y=aB*YB(L;`j{xZ{qk2YiVOSed=54HCR1N`e+cHtyXdjxaLDAjnGNrQEy%c;qvs* zUjj>TSbV!|zS>~0<-xZ%`L>pS96cEu@xI!BQUeoMeYga->8JQ%uU!%lE@eApbl3R~vCm{)zH_vIH?+)ro1n{=c_c2pzpq4V4K1gBt>&#Ikw zv>q=?AK$WrYvI9%_3Z3isn)+g25NGwu(F@LUA@)v|DMrgM7m_=^9q%k{81J@-MZ4 zqdeM{e_$zN$;Hu{EyeUdvG*bmPrYllT)aX4x)Z>`#w-r>t-gDQ`--RgxYGW~wj5ju ze&K2x_dQ(YrRJtjXb~?R%99Q!FFjg*Y(Rz$)Vzac*E}#fc{}|7$JbIvba-%W`I{BX7SQ7}i+2J)vt&bI4t@;>_fl5dYDqUk}C$)`X7T@H+Km z)>Iw4VVG07WMlImXGTA7xzBX zKYQ)byl;S+yr10(Q%$AXtHR`Nd;5DghJG+x?W(8YvyC%PBZ>@@9JNX z7ar*bkd@uzOmaAS*+b%a_}kT<fz1 z)28Yvsx9$IwYBEliPnA;k5oLPkNti9Tg%(>2#kU|08aix^Za9vk82F~Ve6YWk!Qie7V-8) z`Gqb2rF#$Ponzn?<5KcPg^+n>wdbpV2eXG7f6O1fcWUu*54^K;@Ez!Ky7`G>5693p zbsK2w2DQCg-;GBej&E7W^~cf9eawMyia)o!uWYd9p>*62Zyr2n=A&{aP;O~Rbt<#A zxRp21?E%(PF@BU>+{&I0JnmGCA61#ep4||56x{*)SNCKSw~e_KKS&6BdU9_>crNtt z?8%_Xy_L|Ty`Pm)_CB)b2lJ|ut-)iu8ZN;<&06sGymS5vIa?mDo|J0gcO$tmVRYJf zD3naxaZB>?EfY6L=a4@j(Q-?&b_HjIf~VE+Q`wOZVn-n3w`;wgdUe+KKGsZcAAU=6 zRlf7KF-_Z--xpuG8vjb{UT;2Pk1~JMu+mydY`J7sB2+RfR#jWOhBi(}XviK*;f zev%v!{M4~K?0FMzJ9?gBdGSCN`#6Gqv4XK)YPwOjn5SCCUA8MSS) zX3I*n&;WLd`cYix4eqz!u_UP);}0`tjn@R`yxa~R8hKyW?5}KT;{Em$v1_GM zGjFZLqr`t>k5cFIE!B&goQj2lZYQxt`EBFiP`Sq1lk@zOhv&t-Q}fJsIpc$|NG5vg zYFxQrNA%J0Qix%OZAXBg;Qg1=LvR%hd6$g`8qr+A}qQhS`nJt4J( zaVtOG!{zvL#b-R-+sgqP3p|-`HCOAMLB0IY{4kv-uDrKR2G zw>E|N)4}uelkcroeZLXZAEzc6a=!a?V#lIYY_lS4GWm?&`y)BYbH!$gF~6F>47{|Pv2W&mV%SF;>xY_b{ZOLYjK0AaW!IM%M=y62 zS8J)X`3mF}*ce~}-QV+bs2+J?>J-LEEx*3w|JS35p3|8Z;P&&79B85fn%Mj0b7)6+ zI-C78=O%~Ni|*eN+!g}1H>))M;j%H6Cjd@3i|NappLO|& zC}54kCy8Ga8DjnQtO??AEe*tfD~T7Nt8_)UmR|fSd{wwjP#xYAbLSQ=4NM^s=lK--diQ(qF51PquGUfwKhr{OUA$ zm950974K@7yeV)hR^iJL{cAteW#~7){N5ijZj)?>3&^8Go}00f^`%{+9pAQ;??t}o zo!B-$J)uLm=VoaNUOhdI9l5gz8?`|8U~#J6NC%oop8qi|o2O;xmUW*1H@ttyn%6yI z?-lWKWU=PI$W*j*ubX++Tq?Fho#BBs-}Fg6)4uBosneL}eq`&zjH?+KnrK7q)xw|V zV?*_E&e!pIjVnt`-tNTy{+b{1o-YeNIQ38+OLkGN57Cze0W-qxH+qk`Ro-wBd)Uph zPT$mTm*aE)*<%jj zl}Rlz(XrK4!(EQ%gZFdwH|B$w)3Ln{eD5Ro(SI}OkMPs3hEQPlmEgSrx_ar+rs@l` zJbLK*jU8ud*4#mDcJ!GZa_VQ7$%j~+dI(+k$6F?CSY0+dc>}q#;#Uvjzv!lY6B^O7 zK>4)%en|Qud@@6BiePHwtcf3Q`Ra!5V8HGHZ(_Z^bbeE{;Lx6t{m?`V-~R`|DEbe- z<@AwfHlXK*m!DH1JvTkpS=^3aLwfGn=-M%GBwaU+ewjuFtFH{}OxMyw&&Jm9^-w*Z zW#^&T)@5|?eKpaBbkZxyL6zQiB626ZXa1}Z>-bd@+PxE8skYpSCUoAb?8^!9p4K>l zoWkIks-*f+AJ7?a2UF^!IOOeTPv7hLugxuqkvDG%cSX|SF6oc=(@z3_WH1!$YU4j^ zd3O)^_&Ip^W@f%>v~4Rf`F3xO_OKPR)^6rcGNOFpJ3b9E-)iZ9;E zea-Pkd;}$5qoyTz&LDgDk{in!oZf*hC|bD?eXxdiOO2zmWBY=}^o6Md{@3yN^rU}r z_GZM+abP#?){u+cAzIS6b9Ta?&@;ks@l6qX0SnExa8aO-xIpzB+AOK@YHOEVOkM)t zmRvw=4>-^%w{|p*cAscA+wz(B@JW?@Gs=$8`EDKK$v5pN9V5FoW#A|2p!8&uO7rZ! ze|q$NAv(rMv@c$8-?Q*~e)HYBj^Gil>Q>nHr%ZEq@mpg~u+KtcNyC>qz|C*g_pf-B zb~T3ayrWpYeAShG{WZVHKEpQ+?qx?Zm$!yrw7x>y&`EaBqY)W2UMQltwT{+qYpHb{@nwaFI*G-t1xS z)4zj;iTAI*4Bz-Wque(Bt1ZF)1>V)~k~_T`JkQ>Ru6B>vwu*K8Fm%G^m(A{7 zeUZ3O4SaPD-~H@IoRhKAyd4YWwZyPP=fG=3TdnP8TM#}Um3@njxT=(x7xxuAf-XsS zh;N_B-!NjJ5ojqf(izN|%NxDm3fBMnYt_$&g(uLDa4lU;cnpzWS5Lcjv^ytUX4{pW zg@1NQ!-3(Jwj0c_s}syk75bTUZR&-$NCx(xi{_7YDyrZ?;(u4r=0x6+4)$yQCi7eL z>%;d4e%BKFW2{%>Yp*H%EinD)$%P5@yaagn{7$lA#-*k+CojH5jYr7}bSKG%>-jzw z4J^41x~e4)r4k9>0Y*2F*Q z#=d3xVhf$VKeEQmaMt`n)Au63WBiYy@9#z5KLT6@;5&Vb(?0d3YoX@ zysXWTD-rvr>3k7dc~L$Xd;pwnRbJvuv$99FU2VJkVUtqtQ;UH0VcXvYpH#bMAN4%o zx3$o%N!Yv(Tc30qde8;Hh7R^6{Qd>(n_cj~%+U=e8sxNiJ27$Ey%&FiXrFeceHvTd z!M-So8CzGTb~CYgY>!|lzWtB%o!-?yZQ2)`t3OSgW@d6ssK{LOTJhTnD# z6q*Is(BF%vH&ve_I3}`RG)tQkEFFg}y=iV@<=`3oH{3Q1n{+~If##wdeSo?6Z=MU@ zwsPZM2CO%H()1ng_d!mm?F0MZliW+oHaN;`djehGK-cIu1rwYJMHv_{R;io1^PZb8a(hHJgoouamKx&yMO(wBgsdFR$sL1=jRLkZ$6Rz z=1a7-_nzkJ+xWjycG);*vET1RXJUC8ST1RBmd|I;r}~yHraom8G>$Ruci2~;IdrgB zFX8%!p@}Uo2PbxEf2MF4!?vCxyj&7Mrz%XHD!g12uz2}0?|8n&38~}2%XPfNd3oM< zXI1v)3C6PmeZSPW_%B@I2QI4pH1Z67@jvwK{GornWKfLvf6aS>B?Ir%btP*hk~r1< zO%}$?EB(`S|DW(bwOioB$o#)}dUN&j^j&vpB{_Ga+*-zX>JeUhrW^X~8RdSt-n0(O zej~j?c}cb3a{6w9cF#nosLhGzm7L+lK3^Q;@y7&tAJQ$}qmS+?t%Y%^ud~nK1Ljcv ziTZa!E{|&vI&F?z$7%CZStWNb)`QH?BfL&< zEe0Oh_6c-|y>>lxF4Vl)XZV-?OdISq?t{PLb3wm9Sw8Aui+EZP-)}8@jhxBYmiT|; zI^WIuGvzl9ro!xBiyypThePg{a?r#_rs1nEq&@vMj(1)dv`f6i(*ZU?TX(Q#wMH3d z7DvYwJV}3z%++dq>7~FR-|pN47wpKJW@gQW=SPm`oHg1GnPAImVEG;OAY0LowYD?b zud`A*1%Adn>l3qiGU_9NeAZYCvVDfR_U7f-f|Yz59#w4dr&#NC-y(LC#bK;~e2oIL zUa_zx;;oL;SIk_*kD?#h;x;}MwtGkR!>cy-e+GM}DD?^O9YY_|y4{7or<|ia{I;UG z)vJ|fQt z#VhSRj3&R4vt8g>HHlJZNtnE|rQnJ>--{FUbso03`f$)c`h)The7(07KJzNS_o9b+ zc$i#pF?eXp#}39f&`4Wt;8nVpL%v!E>lXNShw#a+zgK*F!$Q%<_2_Cb{yN|hh8(N? zYNO@Wr1}xQ^Rs%4@*_+zJVW=&z(pziyb&6Rz7lr-l%13KZeS_RbB~4hIoNN4tKkvT zXBJN?_!QrV-#C3njJbi1-6G~7L%cW_|H8)$dx?kezaHIYKk}oNb*esnxuLizvSits z^hEan{ltMGh`-6i+ZGZ>+faKG{(>#X^~TX3)U~f2=dhb<|`&Ww|ZGD^MC3cLTe*~ zEqWpPKnMIwd+#@4lN65`SbNaT2)8kx{WAA_J{i1wbg~ZKC>jcwKzS{)fiUwZU-ZtS)f&@tpReb>)6bryq2n8`ah;4k z!WeI0e(t4ChSuL0bT8RLN9sR0Xrt_PzI%lJqqE+w_pq;;^`E&dgx{8!3D!RwJCS_? z>$nfE{3^-z6TK4(8Hx4hi zE?@?ADCK0Gr9Pn3+4?`l>AM6N)xIAuyok2F@1M%9t?aqq_`Ll+&>!I6P(3QuK{B!U z_RrEr-1>2vtL4M->be|yo~T#XWiU5a{_FtXE`}GJ!`d<0j~qYBU4kxh6TCE*kNpE5 zQq9<#{uW3g8`s6A7<{t@?zlTl@&@KO%DuoC=v~jEJd2NYr}8YC9^*#1ANy9o>f^!D zrf=MxCP{nij5Ef4`4W>%e=(4}9v${V^u>;zQ{jQ*Q*XaW-0RZ;)l2TE;eKn~Y1}VN z?dEjR~T6jt9zTs}&L&M#A zVmFGzJD*!U{@0<4{~2R#ygUT%n+d>Q!nJ{RrVUpm1hwzDlB zRqk?;)njBI-$k7r^IFi|m9~0A%1|roy?=UhqB-8kIDWtyXk^{#{V(%=9Jv~YE^48> zIrwP;tWohX*-5%?R7?RJr1yAEO=RS;$<^c#}K}MYz)4S9z2Qv zo=-zDn#rj}@B{I>R@S~?S3KU%dE#j5lA<&9$X=P0QeFy&S*&=V!1Ub=OoFq8z8{#t zH8AP=4zA1`Zo8lN+TqCqRqUIV zZcpx~bo+6(_UgEsV3pz_KX09{DP%HRf(I0ki z!sqt~uE%{4?JM3=Wb3j)^UQy-&SsRX+n!+FR5QVZ(P64X$$9JpP_49a_<~)morf(``?Ue?s&*MkbA&J>N`NyREdq3b_nmQ_ejWx}w z;=8dX?YY433LM&(y`S9XedGijfWJ%bJ<59rsw^)f4twaH)Az4E+1J-8iWQT#&m6F{_EOH z7PsqvQ_12|`4u;pEN-CI>(+m;hoAMQv#=HOQ!Y&6?pUB6Ig6L6+OWipbOPOd?e zJ!f7l@Q#1<7YTQQWjt``TgINFs|>~r4;>SAyOCMahs;=VJ7!YLfp|y{>!X{P%Fdb8 z>y@3uKH)<6wI^e|Iz@ip!jpLPc<}FJ`7pY^crrY+XrN|yEx4Yu*jd|fQ)n%GbNwpL zg=n}bxVG8)>9oh0obmMOE`>U>{)S$wI@_6xq#c)glQ-kEZH$sa_APeH?n)FqLu17=%O+pw0w^`67k)LtL= z}w#HpgTRmmQRec|7Es%Run7RsH^sj1aOGZ`pM*E_SBjOC! z)XuQpj=z&LqiBCsxa{giu2o0dP+Lm4kDz<#edR}M+}H%w;!(i2{r2qm2kM!e;q;vg zK6BT_WgC4t{xh9HxLx|%G}glSEUha>F#%ml@#h?qG7w-+N zr5#3wIn1Zdn_2aJvmk&B^K4wdhmZ#vDzi+kBqt_XP3@5r;0+^^79oN)xg_|1<; zrhdC*)||bJ+pJpohu?bgB$(&<=d5pTim`KF%Q^99@NEpfS3+&F*eAXFLF}(eY~Dy- z;7bv3I_EO8Ajy2qUr+4@{l6u!0KTdCxGR7B{9R^2H@Fu6x&a+)74^>yHd={l1#$nn zqc}elet11{IgZc4p}#AkpH|kL&N!{b=a7{RIqPmvHte;$m9t2w6Ofk+Z#nuCYblJ3 zmp{>fy8yJLbspI@$&IpB(yw{GhVM}$q?_7oS}X5z4?j#wbARKB(w)W=(;uJu9_tNV z&Rqb0``@7k`ib}ofc0he(+by<>HCIK)5j)!_zd-bsNs;Itps&-guhDQyB--6L#FEa z?|BBkJlvxHT@U}&J9_pR z1wN?t#o&{*xNJW>3_U(I5nfxody-qxKV0WXY!`2KZoaM;U41>fcHeGez7yargYI6* z{hj3PY$orQv6P?Aoa29JS&v>PU9Vd?J=iJJXrlz45dG;V+%)f&h3;QDCc6%m2ehhy zcA+=r9;45#4}o{>?_<2n%-14r=!)xRtwyI)d-`5&Mlbk;dobTy%YUH_;%M%wa@xVy z^*(%GYdx2z96W!J&+i2u>LnCuY@%;(4L_Zf?2-)g_h6zEt{BG}P+RMtmT#Q(3-07k z(cE>zA0FZz?YR=q@M9<;~j0UqxyOnsVnTCsiA z$93D#-C56STX5voeNg+_kKxHH>a~NHz3?7uGhkn8EVZm3)%4l~kEFk?LuC@|SvpSROTX|K*-R!SpH+-le=Rs?O->UZ*hD+3(-Wh=k`3@C z)_jQf^gD)6OF80-Q5->giW!tKw>rP+HO2%CEdg?M476zeKFJlltn;n)CcZLq?kG2d z{QX~SaL4q{=tplCUTVOhaB{dYHIh#uxu^GX$D?%-*1l4FfPz&pi4FvR!1}?0sYUqD zCuPT}eM#E;qIWE=n^l8pcy@2&h@|#4?mN%ZV+DuJu_ZR7IhQ_ugM1E_R>+HE9xbdh z@e5(o`T4#H_PTxs{CoN(@*e%C0N>+vtg-9hJ8AyMXv@cqWJD7*C*BfgtxN`=(xVwu zhsJvpczFYOkAQ~u&C5&H20x4aIV>q(N(OxeTfx1A@3q#&^MbsueOq<;pSAC77JcJ8 zQ69D4_jB|bsZA2+?*Q-aJCC;DaR<*o2OkW%$<2r6sB#USM)2$id)}aGPz>N_j)$MU zoJAIgRubfP2<}e;uhv9@{tb9#%)!Kdxw6_{trwUv4U34Dt47C$=j&wKiTzM6$3;uIzpT7%F6ursbjf^gW zE{uB`^p^gxe`Y2G49$5-^*tKA2}a#pPwgL#sb|ii^Xae-eswGJ^X1P;R{%$c;z#_P zdSA%ii3NGoQr<~>=wD@hnTEQ`(Lz(Ol$t+IG4X}5=9Jg)vD8vKhuF~7 zJ>=4ecg-aRir=_18k{x5AQPg+CG+4@<(xTLZpd$2+COKeYBHUR?i)QhJuxhv8ZUM0 z^2{j_+BS=8H^fGuGx4qL9o9s-^dg_PfVVx-b0@pdhQeYN2uaiutVi$pFPQ_C2+f7_!jjqpdD%R+lGeDlx^=VGUbGoLk1MB6! z;U`nOwEYCXh5DJ_msCD!r#w#DQ9H7;N~LJs`LCxoa}zww;rfY+{Av| z9D7=06WwY|Ufs%ot*fIo)P|03mY$nz`l8eKk1u<^0K>gM%%LtFG7i^5llMuYY&a z=QZN%-hN%tna(WUH(%#zqhnt?%sXEZehTik-w<{B9?8Nho?m|!wpkW#t?|E(gm*$a zYUgnA+GC+t+Tkog@yv1P^i|mSmGm{2zNiU{KVc)dQ{GVRLZ`D*F%-uB;!%~HF`@m5 z6YRM{EAol4L0=Q4QiKerccaTl!(Cl*pru%;{9!I@$WNZRH<1nW$ zzSUek4cf?X|Jk1*R~f^8V3tpAI&gPH%UJvPir^)M@VHvqX+=)7j@-1ea71BC>!p$z zg{cjED?eZyUZY&3X@BTkC>uM_axQ9gyueH{t?Yv(wpy6-YDs!EF4{P+t9f&{t8PoU z#oWQW(C&@jB!5Y3(v-Qx<>A%j{Xido{*~qNHbKkyfIzVk5OT?+gqPABmO zi-^TUSs1cCZa!7t@&qi+K;8Zu3mUH#NVnOTK#g7Pj7Cy$$j1 z;Mb^YkL;=w_VVvPBt((|zL<@lz9_j|xeP-v;uwy#V% zBOg7tQF!M&d}PhlVb-sYuiW_Rd+2hWokM#Q(NmOb)h=ChS14I`qG6qwWZ?6GWC?b- z@OCG7y#6fdB!#Kl`Hfv{@#JWYJFJ;Y&{3d^eLvRw<5Eq$BO3TU)S!LYsGY@B@SIIw^ zW{qf_rtuqRnD5t`*&|vHts=|Oy_RHDPn@}yEcfq8#@AxgWzI88!sMpP25t&gp5jb1 z_H1>7Ob@3^7Dvq|ROfw3I8(B?Hs}oa#6A6XTx#5NmT#@=!Dh(2AR`?5!Km5Yzp!AI`(FSrgcet%5{?{+%1&ZVzS1D}oe=xq3a^_k5lpR1AD^TZa= zd(c5R=P3?f%dUBJHgC|8^HBo zj60XUHoiY+!FPe1fIrE@Mshr( zUpvnIS`hgGy&LHej4jTZjGN*a-rD4Rp1Zud-giCg=@#@q%@Hq+M_j=mdis>*y@jdM z`M(7ib?-y$N#$K?zG@@hS=hcGX4+Otk9pn?b!s^r-zA zmNtPUB3=*-Sbp&v@T0Xan_T%~!e<@0ih?KEev%i?2x`Z1ugV}VmgRT)V-&AIR+BZ)@n39$-V5?R$iAoo}IF;o3(BpZ0d~P6zlC_uQa%lt}@-q zrBRiq%mgmoOT(Z4@fX=r$bE2N?mW)@G&IG#hh5t}OTc3`PN_AXyS9bPe;elTBzI;O z=I~))?#RN-oLZP~%7J%NF1%w)+@t;lyifcKc!SK7H~*eaEnmI^uZ!g~=lCsS`Krw| zxX<45F8E?-w0M7LcOA5#c@11qI!kk==kgyfVCTv=%;bXM;Byyvz06E1SYswldGngE zd*W#4zQ}>OJKnhBo3p-S^2_rN;73O%jIzfk5HRcs4DLP^nX=Q2m=PEiuQu!}UrHWS z0G%^nOhsOvsZd|T_)fgt!@2xL=)CAK{y7esKjlHpghuv1GTD8fd+b49AZYiSEGH~#7V0i?Wwrit5>}g zyGQrM2m9bzIwM^+^cv<*_uu23Qk}1ejZjpQ_RefuY9>$7UK;U-O6A$o9yZFCN{%-R z?gYp9`X=ey_j!kY_e35>F00Q(U_m3#u?x2OeU_~AVlUjYFqG`_t^-d_wz--8s|>L6 z9eVv7a%+Ob5?`Wz)ACP}j|jYrs9DvBy}OsXn1cI8;MR47TI9NxpL`+rG``MK>R5%m zI#&8#-)i5I#(dqD={9$G`jEEcLG&utY^KaqP-nbC_W9x3kxcR15pGI;6Ijp&%wfiF zemdF8y*gqEwtezIeb~kOTHo*QAa=U7^|7$4Je)(?=Uu@$wEYgjIi#Jv_(vK0lFE0o zW5pndAjp2|JnMzQC)Tz)pbGV+8%Lww;|?*H7^LrL! zl-{Cw)*OF^IkxyB2Wseiu2*09M`-&HeDybbc<639%GzK%myb!l{=nGeoA-WnKCOM0 zrMK>8>O|cU#3$swLXxT)4MJVl^XaI|1$j+3zFY9_7}cXU5+EK6E<4cQ_j%h;8MMNAXPXzuw{9 zp>PVvrK26-q;^Oq&n>-sYEpXJe~$9bGt{%-=z`>?vFLU2Joj?$tKI%BIsvf`*Q`n2$~9yB*T+=5xSC{dIo-4f>;|OkX$8 zq^oI;!aDy|csLACcoaPRtF!wC^AEjoNx#;3@kwp9V}uWBjIDKHSL5vH3A>sjf2?m2 zH_})QK2!?>KD*qxh@*Sn0}Q!%(3rdVF3z4e#XmI8#~520J54@fT|dILgPtzhFy`hR z*nwN4PMCZi)4~}oot5bH)U_**O(b`_%(xSHUpXGWy!{9d40$;ao{gC^hdvEvY0n>5 zXLek1aKCC~pp$rU^>O&4)b+c3yPR(paRw0Z7sQVO zMsSot*BtnsJuS7wTYXypY_<)pUEb+*0=+YK;LD!MIZUFrp*|?!s+k2|)wcY?|H@wV z^Y@e=^cK7zcTJD#7>s%N^_UB5oa9EG358A@$1W&&*vmg`B%fmrxf*S(FSXJBN7@2E zj(q2w-!s%_ptxAaNVCn)k6F(9@>y;IcCW^j?51(4E4d#ASMnX$HCQEEFCSaatK+8e ztA3lM$I}PbT>Lx4+;eF0^P01q^+x}8t;O?)53Ii`-NT;>U9MM+wE%NDCmvi7fKGev zWnGp9+@5>$k`=tyy^}S@^`S3*a@(cej)lWo(m2K3H1xo!*+N8|T}Sy~7aBhmGIo{49~zcV5kC)Oq&Gt>Vb zf2H2JDEm(44&@<`FU~t7)Mg!Ra=j_rX8e8L=lVbNtjT-!luvtoURxGNw!e{<4{D#n zqNa%J4D{jgF7@#i@th34l7!`T_(SgqB{Mtm!SZYu&-9M2U)OtgRPh}6xE2q{aL?ix z8hDJhq3LPjiDmp&tW_09Rowp|BU$0XxDAz~}> z?SJE*#(9;-e}{)p#m|K^wZGhclf@%=5gza1UN^rp!SO9I`Y`MP?Px--H3e;bJ^%aP z>Ra@~1hL5svcl(M5!SidALhgNS8`go-o*RY!`F9+C#^Q_(_Ew96;UI)MSkALAJrPz zuu%1M#&hPezG(!Wt9Vai2*24s-O4KN%RebuW!Dk8n%LJx|5yFO4{shki$J`|t4Z$h zZqNAU<3U`W!=Hf3VpBVX-8rR^S zTjPf5ukkLe5%%0>$KjnVpncxnIMn9Qnm-O>xfdJ@&X2FJ{ETdpWvaubIz)nt93oq< zz(0#9f-W1O?)4&k)v8a|ge|Wcf406~%;^h4&+`wMx4VbOx7RFdTp1w#t~@QtmUD@< zH(WJs*5TmeUd`peC%mplulDlm$=T#OZ-ngac=e2n9yzFNXy9Jun0&OlsOfwO`y&xW$HS(X&t5OZonqV{s$=-=t8KNr6TXY?zGo5p z9s|JAK#U>*j;vn=`u_#^b%rTsseE1WU%|73dm87^zO<)7a!LBQ&iD{- z+0S)?ItKE$z(;DrM>SW=UbT8GZBbKYMH)G-vG9C)_>0Ze^6$mTr(vzHkCRVh??2yE zEuNaKwVRSIEBwF7e~r=Gb0Qy6R!_G+qCm>(L|J=XXCnXChv1aB)gtyG$G)@3(~rtCXMg|w~UQNSs!3Ak>Hcsz}rs_E>Q|*E$;RTx9 zGt|Bhqd&DS;vINZ33ghBcINReId^X-_$_(&3Hp!^aw_*ddx!HLsd0n-GCea-=Y@{5 zv3K!dTO)T1vX$pC^18JT@#B0|2g&&})c^hJW8fN`28m+@@S{YWd^f;yJ)l!*dk+FSAz4t>+z8`P}8Ul{0!|Q2A{~I{o0)T2+M!4kB$Sr4!#v%^4i~M z^U_5duR*(d&-X2id(3~wixn&XMf;`_$aU7qx<&1$60ab4ojg75!(bg-Sb(4Xgxbe9 zn5(Y#H8f^K5j%@8@sie)qQz$h!wt#Q-cFA7Y0EQ&DIsH{R##^K0PS z-O!BS*s3)eG@{}4oxkwTa~&aDOm=5@nEPk&uICP8Qk~za%o)G;47HgO=sCL=5(gxo zK9Zh5-W7YQ`Cj&zGRO0 z!8qU!Qv*^m;c)pnwdkh%=u`P$ZQh*fJdgG0c=pUFbPk>srhbpSknHw(kFA*vFOl5w z;nF(v<(=rs%O?t@w$rX5U+X%%mdDvVo$x&#Oa-i$IJnWiUD@7}b)TXyaDtvdei7~G zJ}(y>$g9@xILTGiv5z3{#nTQqHoLC3$iK%~PT*;8E{#LO@@q@CIVo!w;M%gQ4)~QVOwDGS zWR>8O4(8Xtl57w>k;FuI-jA$YTQ8id|1-Fbd38?gwc+~X;CKZ%(9>+3(c`(m&^!o( zbR#Q=)=hR7uk!hyd>fME#CfQ}uDl$-$gP*XbXeGymARYfH=G08kFv07t!3e}^nK08z$d;kHw)i+z_;ih4^&Tm z=E;SMi)VB04^QLS7+24jqmq&o|a&;CmYx4!H?ZD zEM9;d>g*w|)02(shz|TX-IthW&CgK1&jIcUz&$ihC)$rj$d@H==ckN8I302x1@_7y z?-C5R(8tH0M=?J2QV3rS{7ZA5-S2Pr@A>=vv7L%C|9rsms4z7FJe}%LJEsbm>VZk| zT5q1c*sC9N743xJ6+5%I$}}7IQetqzh1S8r=BC;G)c-q(jFY@J@Um{`C`e3N{2P7U z%5klc^^YEY4GL$!`nDH)^?29E$6x=yp4W~4VqO!#ICNeu&d_T_YhGTl@$$9cAC|U= z-OT6AdG-ecqBX8Gi*3WNwY8gEB+f&>Ze`x0_CEe;Ve#;K9&#QROn$~=F z=^bQ!ce7*bxObx;ONI}~2z0d@c}Hzr&wtB%nOWF0vqCJXe^Dbk^rBXTRIOpV=#uUD%>cK zXXtkocm8|d38oU}vxNB+j&&V4BvxorrNE(aI{1kiZZpXS&VKam4}V^K9dEh`{Y3g^ z54yNyu5!yZq65jkzaASZh7U^hWwh5=xqy0h1UQf3Gm%Xlq%Yx4eHmoY_2hKL&|gGT z8fyqW$Kve(dBNFw0l7Ae$3KdQHy5^SBBxIL)x*uuT-rb?TvL^-B!7`T*nsgobnht(<1yX%a1Zv?|cP*kF7+Guvfbv7Z%ZjY<`Q= ziAht**wrdSTS32#lC$^fgyLVgcx-Id_>5L?g+p!p z6V1}#q!_xRY-Np!ym-(4P<;w;s`?b@5aqJ}ddck&t@eUv(P}sALvv_;OP$q6yfymn zKkuzx&Kf-&O&juV?!VURZSdm>$hN}NdDuj4!MQry2VYiks+$@*_IwlK*?Rs8zBKX7 z1UQN_XKB{e4#v9N)+Z`VT|vLfnUilKaU%F2@7Ym|4Vx(hJa96gQ#23i6q;jdb$1HK#8a#1;A3m!{lM|$-I?Hdf#bcL$2?-z5#rTR zlQ&AfC4EJ4E^dWfWh!vKA{-|&@~AhSH%d9D;(HnkwtRNIdHb~deO9sj%HGY? z7;9wx3xB!oJ@-@ZTh*^Htp7^v_EKZ|em+p=?HMm#UpLy%ZQd$guJhgHU)kb~@gx4c zTGq2@D-17@4{8xH6Cch9JkEf3lPGgVhrT~kW9TvDmx71rWu|~hEWO3KZ2O2yVihlk6;LiiKGc1gMDs_M2j}v%+rH``! zI_Rv+-ybW20!b^m{{P8pcn_w<2KCiQk z{wsmYhre{h@J_=R7G=kf&lr4|{jprb*wv9-N*&r+io9L!Fz@Yf7&1^3TJ3PfWM7r-c7gh_ABmW;3{L zD7ATS1wL-oe#td~1u^7hFip&a@trI^f%r)k{nd^Pw1h_!PvLwTGa@u8%-$fuT=I9X zE(h-&J*SX9m#vyuOMmil)|GM|Yn&YQ1JvgzKL4g5`EZgKb@Yu7RW<(l8hBUNA>(v5 zv!@riaP=nML00tD0k3#@4F38O?;HGS$|Ls1?DI*^u0Gl0k#)%1DE>O;s^f9=g2$;p z?Adu)YP2WlqVEs*hw=aN9XgAA?>B@@M;r0VBA!d{2;&>O0p1q}?mF%z z%GvYBZ_h`_`MSWV_cGvL?<~uH7vs8Z3VV*Y*Qh-UXRr?00}wdFbWWm9rSgd7`bcZBFkH!Dakk8D{@ZuZVlUP||mFWmHSUSZ?I_3Rze{dVq^@otEBk^S4+x#!b8`f``r zgE#Mv5~Ec-v5Y>5d*9c@cO}_xHuH_nIJft1X?!?J+q#F`uI zXTd8XvvQvYO|T^d-|^u>2JLQRjred0X2Dv9z7k@OOD@dt*WKqr%aVJNy_WBxYd0Oi z*loLewx3|~e!XTabwW=5#Y%Du@A`%boY!nZ=RGvq6kN{V8pbEwt}!9b{MC77!@8n{ zdGm;|SNDfXe)16eN(GzAOJ7pYA7`^X^-XB3j57wk-(zQ#&2`{wx?en_Y^l?$-=Uxx zTR%G3RX-xw72_0(688$It;xl$qlZ5-{IsDfDv-w72(l~uwXCx1=D06k~@c^&(l>B+}qkD0P zU~0l?=w1c!?W&R13oYET68$^hJEL?n^*;?YPM5L|PkHC$0J_>|TpDN3aX8>^KB}^! zbZnqv^%Q4G*;2D)^;J$qSz(|e6pmMy-OWBwr!;%MXoLNxvfbW-iz^=eD~=?VF$ zmfLgl(y!+3Hy^A$btr%I_jU$SxwTzo6W4J@3i%injtPx2i%aGioulrAch~VubzgTh zXfJJHY9{!Tj&nF0^fGF)PKR%V`RhPmHi;u$+1$<0{o}TcCl@OJr47Dz!WqtzjVAAE z=Ax#9xTkn|G)zuNsd4LqLF#)=NX>s7oKho}a|##0n^e=aTJ=@i(d)@Asi1yy1#r57 zxe@z*E%vhm-%acM0|z;!caCDOAn%nLGb-RjTB2d+z6jsM=tu8YZX;hn?{U2eI(XqA zee(XZ{I2J|crh{r-{U9TdUOflpq}qltE@g4YPtCdk9QJtD@uRT>H7xzfAZqq*t&t) zun*VQRl`@1|7b#2bM{ZoPk3K)O}2jnwmJ*0hCI-|^b5_^8E}0Be8ym(V8?$7TCc&D zs+a@5;`~+)M`q3j&!)#Nx(uFEIo2fe^3oLn>P=l1>YZV9HY$7J9Ao;z#p1_i_iDb4 z6q|x7`jKukQaY6SB=>43@XVz@$$0VR+u0QbzyH^cw*l$-(Z!%$Mduc+@=P`cf6U^W*gq z`nZNZ6q7HZefqL_Y+4tGn}Y=Xk6;euH)YLK9Bv+bI(QQt|6l!UjGxcqU-5I^?@%7y z$Mx@E6YRQ*oG<#9zHu3R{){nz;0DG!{ zajr*iQLb}5pIm(S+eN}X>tYjl7|CyR&GH0!pf8Bd3YtKD1bkuXm=I*lYEyuf~IdOc2nuS3rEe872QJkxrV&k-87{&9Ff&F##E`uB3!*av}M()aE8Fb(>@HYS7e zRe-BUfGrLE)*_#jLs=_dIPhfVZ#cvkZut&2s{dUg=ettA+x#)#$*wWln}EHK z5BDJ-8_De%2hMBVR>_iw-5e*<$B*52K(_!JT(_PPjeJ)D}SqrXH&r;$?F(v2ee~O68tzH3HYg| zkLWm)kLq2=(`%yV)sLPReOy8xep_8r-xqL}mWAo|%y?f0t)WW_H+-J975Z}EOEa!F z3u5rH8BuItV(0CbH`g5U>FEp)kNr4L8+&5gztX#Ah~@&^&SV_c-;HjwpZV`K=={W3 zFNB|qcBzZBWJ|HpIVbPD$~+sX{SgE1qN6kDLwc8da8+r0{$kpsxJFIDisf8etG(mU zV%3P8G148@-!e`%nj1!kKsGF>WPiyo!NtxYl@+zGngyL_tSzbfqRu{d>^qz2PrSGE z7H2_(-^BFcPn8wRhLfMiGvH#TV@OR{(GMAp8(5LeDJRjRfm z#3yQ=weogT6x#nXzwv+d$nLMtA*Y((9mqbzx$fUOj!!Yi)1UC?d3sCVxjUZip;)wX zApQVeXT~TLbLu2MIfXu?KYR1&&xx}*RqfNMYF>MFxx89aS@yh+K!)xD{Zup_ciz#N zrj@KQapnr*F*bfuR~2sgDeqT|20m$h5UM>bnk(e}G3M##hZkulJlu@LesVi`zxrG@3x6Byt9EJw94zgk)1Oc_*m=XB z{P}7e;#Gs^8e=U=neQ!(X^!ZE_Yp6%^NlfAE2qHG^xVod*FU^};(3MWqdn!1qDH zFHpKCZuyU=yL{5(Nc|2YYkEf?9hez^T`A;^c22Wv}yIF(XUJe1Z)-!Slnhx69 z!6T!bZTSqfzT)64aI~>;;lAa|@R&@#9D*0U2n?PiFGpigJhP7H)$jkJKk1FixzV2P z!&hJU(Y@va^F=oNKb0>6-78;Y!-?`m9%TF{$}8~qsa1x}27?bEeA`$zfGwt)J3pXq zPZXMvef{iz(YI|wjnv|cT9Fg;6`#rUg#z;d@&TT*)36uzC16y=J;yZdw%3UBADT5N zrjX8Emz>ht$B>Z&bvE+c@aG*ymwPXmU9Os&#D1-<(#?MEBlyQ~*o?AyBx&8Clbr0m z!D8Wkc_XzSEstT3-$l$ze9Dex+IV+0hPF)N=F3Gu%bA zm(6}PJ{M>WA8wJ&7d(4anm1}+8v0F=|N8d)p{H7Z=w{bzW3tSo5t-xIe46{u^!vN_ zPnr6N5Uwv(9j*(C&rwa~2NQoaz3Y z|J~z!+0|b!)7MA)aH84foNUMjwyJ|5T`Hplqkr*Y`l2({ z{%HQ5*GCiI5#c5K#>CrvohO3c@ZFnv<}Ao+=i4Wu_FXg|!1yk|a z4gUS%X7ab7>E1>s5o1qK=U#`i=g41)-isL@Ob`#Tx_YWHD-o*WT4PQ^=ly6MdKgIG&0KqpN6%cU`f)??>+t(d z_+cmQ6a!#Acj{W$6uL)ga|qZi8g4e}e&4-#p?e5@N(oK z-P*f`NKKD^uM6PU7-}}n`E7GegwLwl7Z=9(lrZl!&)Q&imb*9WS>E6MjMv8=`cPc` zHGN+c>DfAzGd0t;9o8VSzT!Y>(eEsW9vbR)wo7(TZU*qw|(2Sj6 z-~EcW-tmDn1Dv6mUr%t$?VR(HC%rw8US1Fkfd3}GA7adH_(S9G^=|qezf0Kza)@~K z558ztBfHBxfHAsP`99WN@IsEgvtP6f&OKw+mds1r4ds zL(p18!sH&=tZ=t`*mX+POsQzU9)B)}N z-|!y!(MRyTqlZeStysP66waT5R^e%)vrVU-??MMF1m|!J`WSzfd*JWVzw^8HqN926 zALe#&&Cs7?L__F-;6NSs$1txHz6td`Sk8sH-&dO$zq+rZ{oz;GnD<4x1*aYKD}Prd z&&z+4sUK;57uxkDSA^J+t#O>u&xjS;V+AkuX)rp$EriBW$gv3d6My5(9m!_>pUE1Y zXp9ba)e-sxPi#C*@9@Vd*iNyuTA19LUca|K@NDJeue`qHLo&c+BD#fm-m1nI7v{tF zu42trgX^(0?^`E25Pfd=jQefotT@!x2djI4{U+gVBHjOLXhhG+_R;ka{&a)yS8;IZ zF!&R9R<)h(&ic0Z|8d_IMs8{Sz1XDk!@SzzJ;+Dpg{g+PV0;XH#>y|&U$n;BarB3& zpsxJJM(VX4L6#h4oYcE^_k4(aU4OQG?KSc>lvYpb%7x#Y2#ztX4`Hpw&%S*cw%a?E z!Mq)D&hFSAc>FQRf9jBpJehef;w&D`JsrcuFQi<$6W6Ww=);~D#W_sD#OPwPup64w zehK9h9ddB@Pzj-lhnsBsX*2GM$sz`xE|7G#a_>Q0rK(eoX~shVhN_v;;= z%~Cp@90sljXn$32?^NY7w6SMb=Zg4o7M)Y%$9;qsG4df^;(0wQTVA@lY9z=Ws;!>b z^%braj3_97k9-^Qu13C@Uca}2?}UTjXn*_Zajt6Z{Rgm>{1}EGA#3T-F*7R1+uWXY zoGY_7H}Y;Jwk0u(u5EnRl1D*2x25)A=``hE+?#7g-M2J2XE~o&u$!{JGH=@Q&@W16 zL{9HQ=*`W!_@-$$I@z;-apo^dmYeKy^|OrY%g0u=@4IE*w3*7wz{encO82U`SIM>I z#b%_g!*7b3k9%?7%(bxlRhY-7?~UV}tU#iOu}h9=4N91gcRm#B1K!CNPZ5V(*v(mw zz`T{UiQW^O(>OHpZWNg3GLIBB_TC~N+@Sl;IO^4>s2u`axv#ZI{WohtExnP8hMFt2 zuJX4Kc%3Brp*B3UUy$tj4`?4cQ=CL+12ypes@qSU^Hw0(^(*G=%x{=RUdE^h=Ow5P ziJ9;DUUdI2+}FKSz|5`+ai6xpsXRcNMJ3p%^y%~Q4(gRjuXw|I-^M(_5EVf!L}FXHXe*D$X z_flWVhZcX^#~ebm)!fQxZ})>jFI7C(%$VzLiFT83kR+#w{IN(Y`EKA?b~)>?CI)W# zzCw-r8EAqWv(_W&HS&D)zP+cMKKbc`mM@a0TrPX>DE)N@vj^}%&QfGQ7H4RBd$-d$rdIZJt~jymi37(M=TYYk9RKmBH!l=C|3@}T zbw95cAN)U_$Ii3e+(Gl$&lvx^d2INEc|7ocXCB0&tjx0e%&h;`)(YrM%cefKAN;KQ zN8W8R;NHrA>B*UJe&7?v7acUd^nM{L^NES|>8!##{{PR$b;Tt2C%m%_+3DlMs*G_7 zKN>z}OcB=pe8!}44Bqc1Ixw6g;`0mbgYaVq5oEaMr=!NI^tg1c_wCp&(Jx>Jz(eYY zgNJk5q)Q?OsO^R5V6`Tjlr(|^{L z#vD5A=|wSkFz*Hb^OOG%Z8htdgdA>uY~(MP4o%rd}6M_5!g)l;%tbzjoqZ z4`k$CX5LdBfNIt=v!=g%sF~*i+nS8naI%l~HsEJ~HVQUcJEc6vdFH|g^K?}!_VxVP z*ki@aqxh+_Tszm)S+45EjAlFz@SlPXja|~UXVluq4xwu=;*7WG>C)v3y1qGtnn~4m z{~>%WFL}>9@GSBekn80j4LD={S}V*;XS;vu0xmqy8gJ~tZ&3-~J@$}bm0zBNJdeIf z4d-#%x6eMIZ(}!;OBlxQF}Oajq1NbK4ZUj$$VuoB-a+5;alC*%7RMK&-&277?||_U z{3~~Iza9NpYa=_dF;LufB)ICaGiamyN44)b85%%m1~1C>e-(HrKihcPw9}>nT|qj# z-q*pof4^6qB>20DoZ~*ryyg+V=fV zO>n=N`5&8vc)h11d;%`0zKdYw*G>^$tL}(us7PP;YmPXqx9X=1uAQ>%SY!KD=o?kg z0yxxHQ$_OVHuUa&zzjPTUz}>96xdk8yTlx{)-Lz8zSch|SS&u*y%AVMl_yE=mxa$G z=ep6pYq{RFU!Ut?o`5j_@C#oycQ}5N4@$27w zaCbj_3$CIied{c!aqJtYgGR?0>{sR*;q(2t9}hIU^bXC#mn)gJZYYe;5FU}=hHvVT zYR+dbb4woyD%QEXd5gx{JyrQJUcH$}&o8ZC0Q-NPH^)_*yg3ZEb0hG`SDAx&x#)W^ zKlk`#dY>13<8Jy9&t)x%vv~G=7+PJzJS-lOle*rRshMYd-cD^d9}aph96!q?2e`*T z)7BPe3_foOkiT0?Uj4sF_oA=btjN1OGuMto@m2V-uP24lyvop5UmlUoUw1gC0s9BK zlWtEQ7<6S?zA9LxV|q5{4I0ag=@E-g)DtIC4qg*HSo<=XPUf3EU!qHmQMQui8AP9Z zO1>}N(?AT_kJ0qall$wqUslXKmq!xHBTx)S_Xog~=fB9fK5@Sq^T_{o)dYuHgT(UZ zgD2Fj%P*I`b}qgF$tQ2^`f(5YxW=LGvugAXlP?G#kNAwnZlFVlTA@BnRWme~r>vFyf;JSC@U>?rUja{bXaGB>u_XfGBjg2)U(P1;IW} zO)f*fQR+jcWhr*WiDjvHw)Ux%p6S&qk7J*qm#@*g3)1i3#Cr?DBjpn8<=yE$xWoqs zolU}6LQd|~wvyScb>)JcxiwDvI@Y+3wGqz`F)od@4}ZY1mw6v^uxI~OeYfob8^|f{_ zN@M&ce)a)<`S>fjWNX@n%|Y;BqvS^H$?Bd-dp#ekeqW4!vg*m8J;O8;N5}C@L+n&{ z2k%=|Y>g)?zcR7bWOv1Y%e}xQJJMcm^*Ua)nyjukxooH7yZPQNHWwt z|D75Wc?d=RfA#OvkaDh^Q@yj;#pAIf(bw~md&v>WL66^ij^?I4Mg{Zh@IQt4t@B&S zLo7$$*N8vnum|fG#>{5DDxmX?u~)$7XJ6#%h^2Zj5Dm% zaprHsH>_Nswy(dG-rL{LcO4TPR<_ic6E>&LSw=4M%n?^tEI)H=$@1Z5VH@yb-dD~W zmDSQje_?F=rYu7qxf#j273n)n{xrGy!Uj2D=@ZKnXqD9++Hs*kQ+>9Km z$Q}_{Ts@w;!X~>V`?g4T)zXvZJe3vP5xmWG*B*BkOkn!3boL?R0e zXAu8}cV{#1^^E(O0prH^#<)`%<6g#kUqFtJU=lIj*niLS^KLD(`z)#ZWa&+IUm18I zT}E^lg0H1x)k*pEGh@bJ?G^zznx*Fj?|MVRFS)>{v3B5{@0FNGue!1FV)a2_R;aZExYxOp)*_S>K*saZ5P3upQfF1>r%lGGSmDAzT<^4#^KX}?%Q__txQB| z2jAL(9>*S=*kiJz5Akl+l{E{fHYn$kNATeXcGUCU&SI@Q>w3i$_zCXyz<3|;NOkv4)^mF1A3W1og+D@T z#d^R$hpAsX_cZJu6P%StZ*8;BxnE*j8nf{1<;*dMD%{JsSD9@_)_sn>Y>H#Gjd#mt z-8!vuY-M{Dw5WXs2KiA29|3mdp%FzDvIXV4{{i?Oy(f1<2>u#9-CMu93nQ&{2X{!-JQsD@PI4rd&t=czZ&ISdGgcr-e=SQFEp*nr_>ykqb5F4cRIP^U$C-b zSl#EOM`g`l|JUBR(eBX}1*mG-2aI>*50Dv?+9j2rn-UdOmqC$98( zaKYce8}>K4$h6($>#^4P$@z>`a4OY)4e}RFR@Rl;d-yM`iL*2?2idnq9{j z!(s9>Mx5$~W<{rE&b?B$H*>#LYd~I$w+84b#F`=@Cryaw^^b_}a$`t{(oqp_l%dsbTZ&OaBhdyoW z;%vqgHfBc*URV#jb&l_gT#KF^X>EIR$Q1F!ICIP7JDeHQ&v)PT2$ zzK8QTiWDdGsRp zYgyxl5#)vSD$nYDdLAEpd3eO9UG;I{SZ7XXaoOVSJo{G0v(5gq zi@j%`ju3waCmd=@^x_-3omjx&{mGiYe5c5borCumIEH-i^m(KXdA$qZNpbu}%I~j} z9l;*a6m>H6?BG2fg3ZAjuvrJ~?daEIl&h(jAT^!fhl+zlkkg&mZQH2XAvxEH?Uu53 zEAL6iIWqU4D()cJzAlj85@X-QbIdUc9^J_}^=**Zh{<7!D`~y=@-F!!OxDcApVHUB z%TbYB~ES9>M;z=T{PU zlnlKV-=_K)yyqg0&-4;t(^gZRSWR6S)pP$R@J+fJaO13K&a|X{rS$!+$ZA_7FBEVK z!7cq(9YHH&m`mpjYNa#(b>M=o-KJ~RUi?sNCLEd1HEJ)nZURrD=m7=5?@RnH7zP}_ zjV`s!+UN7zShN1|b9UK=-Zj5v4E5xCS3c#q(Uk#rHhB`VcO&rG_qdlLcCa7)XYY&% zImE=Xc#ra9a)6a`2HVVxJ+kk;oZEc-1l}H#?wc;;e9%6ap$O}6*Q8@w7={S6C8L^VyG1w}=uZb9YFS4_Eg!It-WS(#;WENbC zU%G>5%IE`F9yH{Kl>sl|H|CbjlxvKlpK|@(0tu@rh>gyYUbDeg`kc-M_CGUOg_hyXFZ? zmwj{w{H_0LaQs^ISO{--&?UnoM!G4jDKVnDWhUVWrtx##_WMj?D}GAbCO*NB7p+j9 z)uLs=g!CKb64d?nl*BN>tK8tv#BTTzd_ML-P4q>xMx=EM z_bP>x;P7{OE`^@7jU10yC$WSLqiihaW}S7E9&>vC1pL*r+wTJxpjlh5W3UfV@{+aR z)x@(~Ip??I8$Vfim)hr6wxa8dbaI_mXF4(qAM`=y(!Vz>LuRIPek9weUEyxEd@?`z zU*wHM!Tt54#7oI>h5jnJhmXR_Q^q7Y+A8^H<*D^=_WMl(jG=aCV8H{>pD&w)6T+D= zu>TFP5KnSq;zypZ{y#SK`{FMEt^xYq!v4VUNq!$5?+ZM@*@@tLExP_zWQE;($iAR; z@aIfCSAKRQyk%bT1$Q;EA3Frk4ZxE`&$X;eht5$@_!GX{xNiQO?LMEr_CvnK3xMTD@f>u4$@$DZ z1Rm(Rsh zGWa?8f#jXwvgO<9Tt#1R@z=SRdW7F&ol`?2OSHb?qta8dMpWMAfah-&QV#{3?g&Pf zL@%kd_+KfUzc$j-hK%pSZ{VQ0J+x80 zC5;a|-R^yiv91?hZ}%dnYsgfRk5^^$+cND156`@M3Cf>RzEtN7r(%6ukn^R7bSY;h zj_#29Mt@C#!TD#0f;qOPo@Cuo@>ROg;W~mt(0PUcL*=IABnyaNMZdVBrej8BMfBDm zER6o$w8qYk^eo9iM`e$^q263H2is9LcJwsYP_L|MJ^Dca`A9qMoyX5$f7`tq3(2n{ z#uvqRX7@6oC+y|FZ9B`06|#39y?69^(L(8!`N^f|PQZmTI5MwOvv_1|_kZ!MUjtOU z^=8%*IDo4KR*tTNj^CrM-xhF8Fr(fqc@W+{9nW8>9Ka#$v&|~!9Q2*{vlefkVS3oJ zw>t|Oej6Ap$47Gj_}n`*wtGE%6uK@q_>Cn0Z7e_jd3!!}M}d69#6-v!GW2EmjXgG7 zb9ha)1*I!t$4QrXivHuuRfeVdVcW)6c~5IjsYh6Ma)k{6dTt~frFIDJp%8ooEr4wNo?#z5R{gI?BL2Y+8xxw*4} zKB#Lpj-2E$`v+62oXx5B%Eflf?at!Vq4e)V{ASJ%G1fL>{DRS6SgTI>K~OP$&c4w7 z<=jUfxAFLT>Q`_WEp3a+WjASG6SRgdcL8*AqVqJh-(a}!|J-o+>Q5!!Lw;{sc@DXU zCnqd_sFmEt9+r>pbte&pM=EBge3;%|lPHRzQ^CU*AX_DWoeN^SUt@0s>%0m6wxP3j zAS~kW+qu9(I5w|7(wc3mIiItrT)ejd9s9nrNY5+y8CXB}T5t;3P4;*s`T=LqloGd6 zyb8HiE*{SR1^OS#B2S#0Qo%7a!Yt|Fd5tlMZ7F^eMaPc9cRS94-;N_k^;BdcJOQ1H zx|Ez1L+uh`SGzTb|6u%r?L_ne@@vq`zX-3n6c}EH{?(s@@5?mFvsZVZPd@1DaOb{r zv3TKC%pJalecM`hm645Xbl&P0vS;JH6$!(>lr6pIC*qCM6DfQD3yCd_(-K>HKgajy6Y<_J zC{JtmSCPTWg*gKM+w|e42jeTV+(#cpW`n1`Eva`8&Y?gq&3*P-&+aTj&s_q3u#P)B z*e@VGS30kBUBO4X?jdyD4s>1JkK#KHqwmuGpmg1d_-I1plnJ+_>t693_CSWNTffY4 zWAHwQ*g!Zs%)Oa0-*t)8rvtA8Cb!pTSswIR_z(5}u)!3c&7CS8Vjcb=&GpODH#qw* z!g}1kFw4D*d**f%L&oNTX*4~ED4#Af_4e(Nr z-<8rIdacEUtwSRf+xdhK-_u?;oZP-Zz}C^JrLDzxWH|c4WZy=X9U}bs9r-Y)Bky0P zhK%%uwbF@^#V?=iy(5cz_b!fZzV|L_)8Suhbhm@D31kb9_nchxZ)scLeeJ{Za9H$q4r5XMBH7+I-zQpU57!TnrGxs{ zzWgoBi}fn^^Jk7WR401o&rE!9cYhrs^x-6W=cK*XkA>dGn97(>1U)0pKA<7|9uH08 zFwEbAf4K=doxyh)xgfgOf^OBuT+dvZJLg$+q%9_QejRI5g+9p|wuaHwkgFs2B6If< zzq}Wp@_ms|%hU2-a&Ij)H*(o)@v`>2)9yf!vpY>r*E7_!u`n}P!?aJ?m-E2(9o81x z(yOT<`~K_1%#M<~CL6yS8xpy=LH?ZM?A5h<8qzgo;4Py%icIS@@X|PSkK)viP}{+N zMZ@I-jXUQkH%@y#^ODbTPrj4b@b0Nm ze1lHgq!#n)?RL+#VXmdj6&TH(%v_1TjC>J(MeYcB6x~xgf+e<(anJzz=fSGwr@7nd z4|&y^Vn^3p-j@%2dOr-lb5dFlj5oF}+zD(X!{vh^US(?yFMTkQct23Eqldni2FJFn z4FG(5rED75wVU z=qAERbgrWMjPXP?7IIjq^;1;Gd!_${c;B>J&YuSU0OLqcA^RIHrC<5Y?ARDrXb80p z@QdG~b2ig36pt2zjEDMYpsouy5Gx>u(Fk0l{viMER7BQXpDVJ;;;Chx}d$kr19%i z+D3tOog>*EqMp@I#XsG$gSFEp@~Jf^5%2rvW1nLFtRH%jXLD*i8f#FtA>#rTJ=ORa zbsd|eXZ)=CX{S*St%-4p7H6o&4Y;sQ>j^$JP%{>P0QBk%n@L^iO5}_~AA)h1{`|as z$FMJGxRVe(Eo|VGY5nCf13&f0@y(xm_e08ek{+eJD*1N%b9X*c*H!S;^PW!fv&4Sz z|C#s{8;6(wLblL-OP994X0ltpcgsziXPBJ%^ljtrYdME14F8dD!9=N7mT}(8lZ=`gjK~UZXk54<=ZJfq_YxUCJHx=J=AG6MkrHH1@(U-!SvlTxFy2?Cvb) zyA1tq{4Mh~zZIaq7~==m+|u-XJv*zgJkEPHXV16dor7>Q@0kfd*V*hF8FS_E$dU;D z2z=4tm3OwF&Jos}iAS=xB-kZAGO(hVcydwlcIG4;Q=c9@2cECs&quip-h4bie^py> zm)0PN?SW6Fr(pzfPxRE=fX5YvJhneEm-7{oBEqMzw@TU#9 zm}sG`&1`?qJJlUOB63W*M?SvQD@Me579ny>LTNlQ)F-PQZr-^CJ|$SHZPf^~3w?S? z13GqXXq>HYludp0@%-Ns8b3dkw&SZp<91N@wdJ5cH}G~HaXI{**j3bvvAHE)J$7O! z3tr_NZOD??;z6}*fVcE{Lo7c<8z=9f8Z*3jPTkGVE<|sK*PGdXtW>chpGFRV4{w8i z=DJso!As8*|CLndH_69P03Z@@>tgA z(eg;oHJtVF!YH$AStmC1IOA5!_Lp3E%OoV)G0zKCVuQW^aI{$=o+V5B02e3^kB z97W$zjmcHlY__^&^JUny^ixS6%DvI^QJsawn%sA<#hVrKO=tSgWXIfjHL&ElG5#~? ztTE2t7VV^RvEy@!r|5ni{h~+6x70^Fxy;3u{67G^X>V)L40zx5=ABvevrqj* z>F2ioe%|IegU|F8aI`HeLan!<3C$-K7-8olIQ^P7vX#{LBlLkyp5`r)l`r+ky>&fkeDh-@!ymK4Ejd8$X>qME!;jqrdjV%hCPNspHq0))%V+eZId`uq3$`Kg5eS z*Rt=F#4ueHR(}n#Z$##<>)Z_AA(2RN=q)KRSPpgKsO`cB=b0yh-~_+Q@}eZkFeV z?$0q?Mf*le`}xUwXn!m74L@+2`@Hq5kmtpCymt-s(|Y@isly206JLUUEk6=(s=O}J zsy)O0KH(htcr6M31aIh$Q{&^R<{P^AjAG9M{+;%3JNVcl6``P+QfeCCeV8*Z4K%lD zRO~T_v1vZP04~MF_^W~iEj`RJZ1P$n!N9K5_Iox9y27SU+M`@ZAJXHb4=ax6j3s9V z{EH%^H3s$xREYNlsMlQGeBI)zr>>heZiHDJ$TbzJr3=q;>uBqQ$XSW3U+By4 zu;bbxNc5 zcqK|Bfo_eXp0j?P;piQVyF+W5s&GHYd%ZCh+jkb{F~(F=P4STQ7=dw^-^FdEiyg+w zzTxCe!2S;UinA7!!KqaN<} z4XuV3sLf!%Zj4$(;j27+DTc3g;PZjbH-xX4>iRKI3#aHbH}8Jd6dPJTA_wUGiyn-#m-+Z2E0ZkFRXj8C35`@0vUo8P8|aht=)Uy*3rD zEm_U)UhYf(TFw7sU&~4yKg;yYK!>l#Mo`XZ{Pvd?9*0gc^`~QBn~9G7>a$zWbF8gp zvTbgh_*pMD?#0L_}kJW6vz@V1*#nc;G6o&9F)*g9lK*8xyf)O#ZJEKD z>K(*UZw!uZSwcTs%;+wMHrvwuyh59|=w}^m&IlH^goF9K%jr_=^=aUFFQ1ZAN?OL^ zD|s)Nh22+73@y9-0KSsFtYas1KbKlVscQTu^qIxjpz)U8KvtJxu)6R0v1x z)V>d62kKg5p_%p)-{hO^SawVOwEFaOy0(SqexAO!jeBM3d%C7R+xW)5-BC54+7R@o zn)<)C*8)4L=X>Y+=v}|#n(Q%brJj4y9iHL)Aow8NI>i3;(B0k{R%#>t8Qnzkqeu3q z^58nanS;SB+g@!<)al#5?ECL^ZSOwl5q+}_-XS{j?U6sO^5tz>FQ%=p7uOBFAW;^= zFTuOY#+#ns(uaJuii123-PzxR^yG(|GWFyf^yDE{PnNyk$4k%gciWsX z@2n>FLf;?un&<9h536O!B_gq+}<^{izCndVn*?0;%#r0 z{`}-EWA%Ia^c(T*Z5eAm`+ev)rP^E5kvj*!v64Jqcsg*zR~G{|cYecrr}ftnE9+!! zQi>b3oz@~9_3+gfrDJ9vtqG_aoF3d*BVhOvu<9Sb^soHn_ZWXVW)Gk0&xP>#lHgB1 ziOtiYk2d38=UVb9Ug(8^S9l43t;#^ZRmk`sLO10rDygjww%P9s9h*-%Y5DcpLJK zwQXR(pyUPD`*?d4xCkdl^W2-3Ms&7tVe)?J2p!}9V0}52iKlmt=&KPe><_8Hss{ua&#c_XSSYaTBA2*P1w3j{pThBi}jN3q2E4i2j>r{ zW`y>f$gcPO?wR#l*)vUyE|LhLdm+PnVkcL17l5OsCckSdGDQ7)^y{tr-&Rsv1-qt_ z_GPsH^Gd;zI934vQy=WW&9v`J>yaP&f}8j9MfTiuWV7A>=#M!QpQ1zc-h!?W{sqC| zQee=AExCxk`_D}uh;LdOa#PksfaS0Fz5_YsuL=94S(CzKJ^lD=Qp<0d6K5 zpOcSR?X%BRZkKnqRCY+e1M>sGQGNFLqo~24`TBWe!i~f9+sQ}po=5KLUTmwFnXxC1 z-zIAP`Cctu-P3i}b8;Q$^9V;n{Esrm5PCssw|919=DalryT_z8Ozc`%8Hb@UAG01*C)azo)^tZ=~D*p6^NN_l5IgH4pLMVV>$sZFtV^YY%g# zhkOxTe+K7Ri&PM~!F!xyY&+zm__Be|)S_bp3_-K1m= z<75utB6X~tgx>cPy${^cxMd^OjzB&#?zZnV+p{LZ`OJrRMB)AZTB|<)0iL;Cv3cmS zlf4qyY~;QFiVS9gC)P&P`z~k|+q_!_P85%qRXVylD4LL%%K> zUeppqH!U{BE%kgi49(*F38$r+PyNZ+i3WY!>p6Yb3$f9ofnY*>?v4`n8J#@DwrjwD zv-sMR644rP2Rx9z;mNvI%dh2M@qEIbtdlKLpjZd55+6uQr7r=2!#I68UCO!Ca=+pbHXWVR=3i<9T_F2U9W$Fy9??@n@?(e2AUoqu%lKY6YR z+-`&a3Agu7jbM+Nt}y%a#COY>>vwYkiLV=M6|QfE{+fbL%Ms{E%YKu6#T*XhU5GyKY{cE9J&} zbfcX4g0b*I*6axSiQO-Pov%2S1FWVnmq-Rb-FLvoBqocm)SAMsi=hvlQPamqsGX9@ zM+~-6F7&exn!5lPGy_AeFE!^{ME@N;uQP?}*x#oA4sfV{pt@c5)s1(}>;45eFWW?U zvQ5aQ=s$SZc`q!~yr{Lme_DkXJ(6!qXXzHjUm~I6ujF(M|c66?!FnG#ecOG zT~9(@sL#+S`sDgi+VsrNY%@A}R=N#4U?(4gCun_-d>xuOME~eTDfj?qCG@23j%r&MbLg#06B>tn^eJdc{sq;M%RgS-o&s-F zGh4RpdwgD~!oL80>6-FK#j{$$!6?2A^$8!?rM%a*!6DXH5wZOhCaaMl9q>Bk#YWM~ zG}pGFX0lhWPWzqZ(?GWY7Eh+%p}xJn(0R!?@8~F%E~?Qtq-Xp04EHLLt-2QS$AZ4_N9g^J=qTqRn8;z?QGe^r)7}Q3d|!q5 zUBj(W%j?Fm&r$Ik)nXBkF~=+01B^@gSCStNyr_e@M~Q)J->>+vuBq0wKWA^gdCB@d zm~2LoLAnCED3cT2!nz9rou`5o*C z@VWDT#s?nrY?sC+u+^xX@1tuT*Tk;DHQ$j^5z=(ZH^=V|A_n-kNfcQ zE1~G^b;<|4%Y;6LtG{-;j$etUG6mwZpxL~}vo z;X1UJLNATM*I&}wqUQ@X4L)qv41&#A_C5id!_`_N>~2R@x6kF$3T+LE5p!8+^_Pli4XxYF?*+CY!WkNnzkN~@Y?CQFRSfD#wp&xdg=_&ndqPLp;EKu#q13I^P}%C zN>&Yk;TZAZHj86-HT6r<> zOH~oizHRAB<@&Y-@@5mac2zs%A=Z`{!7$E;xpL7xKOVXY-hIRm{&j5Yqh&>|XuC;vF!=Ug zuVeoYt(>6WXW|cP!=_w^Z$~^Y96BH0PEm3}oHl{V3EKi@nEqFpyxE_ot@;V4`}qU? zX#Rt9wo}N1^Dmdr$(aq^jx1%5z;ivla~ILq4q)%lhkWw#t!u2#_K7XIj8)f^@0*$H z`@!A)IWvO4blObY)XND`?z-xLXC;bqBdtZ(2PPQcjDMu(u=P>qC!YjX$`5!yScJYY zbw_WYu=@kP`IPmwkb|NOdI7WC@-g#>sztKVtkt59~HrpmeUwxc!>Ov`N{wM z7WoLoz3Z@fMQr*obK{K1$Jl@EklLev7pqp!^kgMa$n!Jb}?V=p=xy8M;RzTfaUnMXsyp>pgt5b>uUv z&xd)p;* z{Hfl5WHx(9>yY=dO^aXi_{-qh1dMO)IPk{XukW1+nK>6b=IsOP96R8j9W(FLn32;=KhKB7N5@CAn#Y3Yso#-yke}Iw~zEYyW`6F zTrtW0`V#LReM}l~@1aTVZQK)I)Hxd_M*UmPgpq!vzV!WZHJr6h*v31n#-e`@mk-0( z+)4QWqm0{MGsPuE_wtiyJdXL!Zu6N*ZVm7C#-kX>cl!4I+A%Ml@Mc<3083#5S-KqF;JZzTJ=1OyNCqpSslZDa$Xr2zk1eIH&w8 zo=;P`#MJ}Ny0G}o82jPl#bV{-EFfRb1Y^7Jc*w$r{4;8nQBhD z-*FP1*jNrV&^o_UnV84BJwo)kS0GQt~GewR`L9RbxWOO*KKic|GGW+iSOvoA@s)U z#U14zFCz|NYx!R%-k6zJ-~SA8N#N+o2+6{5er3FKsrFA+^xFpEY3I~Mn5#W|N4sY zZdD}YHVw^z@5#4WSbii8+fX(&6atqd*1ZUwbJjxaRMQ&272n7Bt&deRj6p9@{^-A=!^X(>QvIX|_q!SEf$!Nfvv+O<_ZoJVxXS{Zg|%Xg8!MxxCpgk3 zTma89Y1+~=bS;{WkzXL1xf5l6)ZYZmYUN^y ze+fVRbrEd+_)HS>& zWYRmEa@Lk$GrNxsGpip)cZu@MS&X;QjyFG9!g$eVCM#E6JWBpupXQyl(lh)$7yY>5 zk6Sfu3&W~e#5rfz&g_Xww}hth;b(d9#5<4~I-iNT+Pb}lHCKP;wvg+;@z*_^}S|2WZ{tCbsbl;8n#Lw3Tifw(RwSmBb zZ%PLnhdvgW()B8_R0EBURt%APD(YMBTRtjsS0y^O<}O?v%lx(PlliQcU#W8(zG(jc z9sVi3CIubd3oPsyRusBAPfT#x+mMC{zBL~vF~*chLxW+W+FFt8whM64!%-0G5_@?WqQj4jOZE0sp3b^S$gdHgM^ zeIR&@zGiVZ@B>Do`_ai~({SOvHr9OzAJ%*5mDp0)ifWgae1v*Dar9%K_ZCy*U$sZ$ z_!Zg|f9IKwy^ec5yh<=O_;7Vk*8=2RKfv=bp4a#^Hs!`k-}2#be|iiNos}v7RWr{q zcS}>BpqmIUB@fpD=M;XT9DG)KKWjUA9lWM4%WR56pPFl&-)iH_%0u`Tn*;}769WGy zzSldsm41XriVGK7JSt8;4=jpI@s3B8?*P1>V=jt0ujV{}6uIUsRZA}PEtwMMj8I>u z2oLJ$Uwwa;G3woa!Z#F4*Kx3NoNGE`u=6R$ML)&Hqh=_yGp~%b-v#4Gz~I&5&L4WvKmL#-@JMhn{0SKM{8|m)Gf6c(aav%T{4K8FC-CJ8mWZ0@Y~r z=OX(s1uk@GZP3kXfq~#Gy)2rsu9Cak=umMNXhYZP56oLqWqU|Gf@g@{hGO`x#5j#21?RlQtXn-^e%g%1yuw-?0;_ zM1S?pG&JCR8*`4p$3?Hwt0d>7SBYjhcfGt4IWBx5bnvcxuc9g8+SY~M8cFu8V(cq5 zW-H^3`+4#VXQZ}H|8#Y1`l(s5&zGi}rpw;dbH7H<)3@xn?Z|QQo+x8roSz8ymv~No z*yD>VZD9v{=Q*|_(VxH(Ok`?_n(gvM#qL`jRh8L0tFTDB1>BuGKu#UcbIPs3T7WVKC z_0bn^f#)_{0u111mB3B-9|13gE9yu3ia$0RJEVX09kG6{g5)%w5f9s2EuT$6@{!?Q z4U-V(!^vicPOV&Df`3oA7J@J8dO6SKeb_rye6*gkoM*I6?D{i%mL*$b(0VEH^b})` z!G9Q!t&b0W9}JtzTlt>U2^_UnRngD5jSJr2|E2p?(>xO=J` z^aA!Kaovw|s}|efSa)yQ-eBh@Bo`ualV^E00vrZj$h2+3vHEZ3X2f zKHUv&j_tnU3ubjhZO)5S#HpVfJFpBNL;+`Gnik#HGbS?Ky^wafl5Mt+BCikgdE3Vf z?xl`UlF|zi+65k3F^v-L^hU z`|&G6#NXSPw|+;#fwBAtR+IF9G{2+V(|WI7@A1!7Wt?sFykKg?-{AZC$v2pX)iX2R zd-D_6{p`(DUWmRW6ZI{;wz?cX3*ToYUxjEyYdDw|MT7asn?uynnZx@ILDR@A_fHr1 zu33H`JQqB{eykC%5v|0aBM--T7i|s!x9ErPy%6@K$tw>Zz@Ege%&;jxQkx+L|69bf z;+?W7e7ydM4~sc;z$?6Yc;i2euK96uNL3qm1O19VHQwe2J>C-a$IShoaUcKcJ8k$W zAkBB@jfxygL9=!a=KpLCRT*ZjC&T2QNawWBwll1|Ob;cg$ zFo>6IxWmgkXH7@>{-Wov^ZFDm2@aLWN9_>~m?vtsG0re}qW|i@0~`IsFnS3$rOsaT z>L5}>E}gHYeJq^k2RjbzhijqqI)7Zg-2rItl~~Z-hFwra zJ)OW(W8(tyq2v@hiAvsm0edSY2V&xFti!XsL;ZhUHMM{G6r4K$hcH2B-Veg)vnoHBejPgvj0 zR?%A8ck|(ps_re=aKbI#S#z9sS@})B>QnF2yJR3jUM&^FifPJeI5UXMp?RNG44 zT@}i9Ls4g!!(M|KW?=5J6Tv>f#}>!u=*;wfNAw$cu4j}NuJ^~`iB6Py0_R4S=(oYn zZNz?J&)s9-I5^l(575po(e1u**on}p=>C7gyENZ>pY-$x@ump&q_MgfaDpdw{7-li zJm9iftn1=M-QuJ10Q5!fEU}TU2Ikd-UJ+s)^e)*DpTx7YmUismrs_*&@+wug*jI$x@S9?{H1c2b8tnHL%{r{dztARwHfw}q9irkq)(9?T-7S)p@OMN!wAnS~taln~4-U7kEn6;0|ACc)lQQz`wDBiYc zy>SI|+1slNSCE^VZTY!12I)P5r9BfY9n;Iyc`O`*z!95&IPi;88!Cl8aUDJb zD-$;a+!yZiyX{aSfko^u|DA5US)dLV{1h(p?>|F@D}8BbeXMtu|hTJ!qCXF zd%+vV@R9f)a<26v8#mi6IhT1Za;Cl_IteVlpl^T0iu?NKCir^u!v~2D+?kF!6#(ZL z>+$3>^0*)V_b2fSkema37^4%-I?RE@U6D7j}<;G zD#uhY=S-Z|TD=2~m>h7MceUtUVf4A3vs&ATFX{fnj6*)TI5ro!u>suREOQSx{Bx=f zffM4dFQv!)E&BNsLdwSn&B>rI)uCUjo&E!Z$*V52GR)@F$3AABw3~Ys_k>g8&F#!J z4?L0|dm=L81HM;*Te>DZQ(mdy*GK2oAI%Z(U_Rnk^5tRg99&(WjlC1Fx|YT#+4Kne zCMGirmn(e4Mv%>a zFbIB24pkAytoP)q)nBxir7eTsdoqHvvA8B(B8CijKiwDaU9pY6gilq`Y*&0mGVW!r z$rro44Y`L*;(aTuFY5S(?U7>Zhg>0ByE031^d$Et#sNLA*e>36MTy%0Z){`SQRdYj z*YISc<@tTGvGRnnQRCA4H4gQuF=;I7SL4;YG+x8l^u8Qqrk*j3>7eSfuz%9hh~yU6 zeLYn=YBjXF7h09<)ji3xD*B&GU!Bm%^6z>&9QeG6ytPCY=VmoVLiSARz|yB5Kg|SM zo*@SPi$G{f_?G(at+bP#CY!e@EsJC)_4^1t{V&D3`}&{8I+)(MHh1-f;3F|{(SdOM zG;m4!jeIAPA6&yXP<4X%A#=Yi+htF+#gUY15S}|t`C9$|O@;d@{`+u&cdhskcv#+r zT_rqq=91IJnx(Kg#4mb#9dtbS6>?4O2cIPxgOA>kE(yFx_o5MqwRl|czD)=1d%k98k=~}ch_LzJOmFPB- z{b3VqdH)UM8PB5Qw8R;AEQdG&zo{j$BbLK{AKH1cwSWI6IJDd58geh|_ukp6cCD&| zyN=WjO}q~O`S9}G#G!!X@=1xK0nYutd6?yCi>l17V_zGd5MCkAcUu`izMyo3NBKmn z$m3Ej7C2^cZwBj`;kSvCWAfew$SHEcip{4-MFYiC*Qfc9`sfS>c2s>PvXXrfYwpIz z$;Unst-$xJjZu5PSxt;hcI>9Qp);9ZL6W?~HEOpA*l2vxu{(HX+owExmDtgmZ7(|1 z@{~_m`Ev!ywOlJ9M`>G*>Ih*Y@m@OzuFEFM=brq`*d*wAv#c-Z@YNTSBX-QiJ+{r2J<$t|mCw_7KRJ0lw+BuF zFL{2$r`?}0?&wwC*iWSUh0?S_lCp(iX6)Rf1`OdV?ASdiaIUw(I6LH=H;G4J3ANrF{QUT3*yjS8@YpZ z{GY-9@gpL40qeOI?yLdyH#v~84z#y6jQG~z*m;QfM+NvUdtwsL`o0?RS#)5Vx6+oL zuXK*La;V`9jqt7wh1f~?;M8hxI%esr(C+Q9dItGJTGuA@y~mUA02@EaPyUfy91lNo zUHOUyd--ox(k9Az6|12U^{0I{>v)Iy2tPg9T?Wh+s-JY7(yh$@N&bi4@7<_&;mwoX zCfz@V?ZJN&FLu{_mHWqf(U%LX&W|ooWSEQc!+f3O7{4>~88h<%2IJw0{)->`w9s3v zdMY`7?mIEjAzto#we(SwwDRQ~PrlTliwc*WVd4SQQ^t?$uisn1J%paO2iTdcwT~Tc zM+TiCd@W3Vi8H(W*TI{VR?+lG1TBdtO3#eg>rw7U`9-=h3)WZVqoRvwJ)#&aXB zH=5$9PveJNP7Yv0E_wU3mA)3uCyvuRw2w~lJM{2z*TEC%e^XR)MzBH7XkCKzHvkql z4}?V&Slk6HLX7DU^1ZW}eYEr^e_j+>FCSfqaVh`d!^?>~H23pU%RBA9W&i9a@ujS! zc#;VPc2N(0K3MbiARYXSfw+(wNOwSqrK~#fy#crxhZU3 z8><&iBex8=tbHYxpL0*L_2r~zx5TkC2iqQ*^A13R6J@V3N6l|E^JCvs;sCK$UE5D= z_JQv!R;T@F`AO|>6Fik;p!s8y?W|&+;4U@>IMp^3yKFSDDoDy^%X!+a)lL%|=C(2a zw!^&}6%#r>M=Td!7+_T%Ozx@W_CP8pThSCp4H zP@1p(oX>ThlJnfYq9M;6D9wG&(ke1tv>H8|dB}HHoz4DE_B%9ZxxLNXrytFZje3vT zvE9)0(W{3}ke%H-B=&j5OT<%pn_r&ZJ1qA3RbRHeZ)BA7SEo=junIm{`Es~L@+b)$ zB#$!Tz_T?StjFF#GTxB;{Bl+AntE)rC^l9TXP{-pl9Az{qqnYH*Do&0W45yM96GUF@6Y znpcmMdQiYc^+?|%#}Rxg-&d5A*dGkIN0DI%N{4uU%CxOd?xWj5?YWL%Y}8Tsct>N_ zgpRE4sZUcM37%HIoZ1NM;8|OP1~)Nw1+^Bcu9(>JMaD1M)A;qAKYoXL+U9!X*2xiD z8&LgYH@bxzN*5RGEM1&OeR2PNdRIFxwc}(oOhIK?YAGsghLOGh!nae_EWG(*Y zZy~QWMvd|v&uY(tFGG*iQX_+R_-ifLD_?d!Fu?{a?_mGa5MUBwP2m$8 z!jUsvYB{>&^CO9w`6f}v`Z%*pMc%p2;uG0~nf<(ne*AI$G<{+};x9vpC5l&Ommd!1 zuxEz7UltE^KA&nOIn+uDlsD-dc*g!F?}{eBsQEYDRD2xo@n9mqPB1+NhcR$=E@M{S`4+tk-l)2g!tFfzKQW*Dd19G` zYah)d*HI_$d7h6m*1FT7Nore$p_RJRsl!CwNa0(6T9l#xhF<#Wp|RdiQd=rIG}7|~ z-;MW}MB_aUpTK}R+1{MIS{#CxPO$+7^ zd-_f@@+bA+xG5ecJ=wY5Oq`b!m=FP;@c4?lAUuxy@`Y?Faon$yOLYT#QtEEKb8}31 zQfnqIW?yODty4Ddp^j31yP054VU5WxOZ_3T#8BHY8YpO~V61h+=!>?}wJxQP()pj8 zranySrwdanoz1G9A$v4)?Y;e6{q-~CyE+2Rh!2XUO{l6hf)Bef;+Hjg%mW%ApLf22@jlCZq>6Q(TB*N&+qI=}d!26Mpzwgj*xb1Y8?}5*xMtpLg zp%Lzk+_uku;r7ULrMa=spL)A_PGcG{NBo+0e9@ELyEVrt$~!X^{yhCTtdoq0onhan z@%#Ps*N>qNn9U24jT=NC%c8!xr=wZD3z_RcZ?Bhg_6K{!+wHTjb&_axmv$GGYGRc<@6WmC zPKK!6=XqY=Kk~{w_m6X~bDis4zs_}ChrNi`&~=Ep^ZKhK)2Y>jZka(pc6mN}U&iSh ziCO5Ceg*%^w=J{So?mlqeXM%<%b3@}A=z8-B7EEXsZ*WOK0$J<;di25dS({hCx05Y zeS>0q)qfvwyTG8luMTVF&nRouwhUMM#myhE-Sp*&> z4|QgAxU-aR@ULxZJhlK__4wZu%%!Br{7rwv1 zQyoIZ^ELnUibHLT`6b3?=ZHDb9BFT3?K!fCut|_#A>9*h!HeFbUesZ|7YDbKz^!n3 z$FVC8ZN0K|VHg_f}!8-=~li)yDydmx6t)2z55}36`#Qm7Ra|axw?iNZ1&*onR^Su z=5S1L_RRHp)bZ_WmOp`h7T+~+pcZ{d@gl6T-gf-<7y9&^{a~o;5BJxmpp$y+?)vE_ zQ&WW>;8D&KTzzI}X)AP6HQudR&3cdOI_nPne7&14c+yQbe|gHno7^$gRq@yWHJ~on z@71PYN!$8M?)oJ&|d?2^V3D3w$CCeY_{%e$1WjT}yv)>~gLB1b7hN zfvyikuP&n<d2pIv?EHReHa1geiwC7u)>(@CDDV&Kjc3`HUxXu z7JtyKaGsC9*Dm0U_hlm z{8sYZ+L2++jH{0MtRkOnz8_bW1=jyYjvW}iXYFENJ_W3bArp`5BhD$xT8X&iE-e$Gh z6|Lv*mHWIgsHf`J{wsq&nyJ_j_gK4-Jd*bMw>jHhezZUz&yRQRWlrTclAP84s@6#y z-^>%>_T`7lytY^v9^}_kHQ?Ajw|Fk?d}ykl@0q|Sr8@2pU%`AK%XihALFM~vT*_Y)tsYxu{CES_s-@Mi@$Lf7jN;p0h}Bd~ zao?hSTQ@TMmF^aO)6ZJX*F%!5vCA}ne0vixy(?TU!%x5O_ew=Kk zZR<}YE^;Sl9NdSTjxd+BD}UhuVA>(MA6;MSnfN3xj2+v@97`5N&_mXs-@)4^Y8;Z` zq6144d^}?`D^Kkwgj8n#ZNd`K-|Ae-)cYpr}p|l z4oANGvzAPF(aX|N&NO58SNyGi&P?XN9;|ooeWs-fzFtHZX5ryE(YPDLUK^|9|~<U;LhvZfi}-4Pv+=aHv<`x{ZU3Y8Vj}3}N&1(JpDw)t zp1TIVuR4eFt7m~_8THd*>;(|BTf;u>dSk|U3o_{P$d5G>bWXxpyN6(?^|yL&IUZ1N_a^vWZRy*O>PL0l)kj1)9va%E zwP@$3omeQwWozEh_J?>?B$iG>bMc3Ke8e9jkA-VHKhReG{FpcHK15p$Msvh`UX%NO zBmWiuZFx}p@jOWFSe(Lxf>`wEDqmNNfUkh(WWv4=hyBT2&HVZEushWXjcb2awny~p zxnAwIApW7GvyHsJt+KtZp5cwEJ{D~eolRVKx&ylTu9&Ltq_wX0G8QnE;t{3I6%}KT>->)AWS^v4U zO|>^Q5|0%g@1|Fq(2}_Dn54D?FwFwCfEL=Yp_};&;1o===2n=7 zThEtnO^&qS&Q9|te~-E5U2|ZHR|bx>4{LuDuW9qS`|CI>Xx`yBz@_SgU2wPM9fP%J z`1BL#ffE> z?$+1tfcwdvE4b(9y-v>Q+f%(|+*7_SaCK$p(O1}XDQ8q?<%N-9%+CSk9!I}C&C}Y& zXVH~rd^J_o-c*gL=pyPjaHa@rtsh$@!8@A6yYa!+)UjWFGJG3Z^e+1r&oQ1{n@4P$ zf1GREOuRqTWpe@GDZ={{aIW0iTfnE_c9!}0Kndv7{T1B*E@w#U-B-7BjtBR0yrxGv z{h|rw@F#%g3%|q=_3^Fl z7yL-LEmeJ-9*q;ev+G61ge)%W6YlIh)$Er|;WAHmzh%#-sb=qa4mR*9iuJQFR{?X~ z$HSZHani5%THY9W}nAmbMCTZ%+XSk zzKJ6&>-|*FPR)MdP4r;fLdL7DG2rht^p9*2ah@Cf`FstToGJ2ciYPJKhJ2_fxlrzZ zkQ2pk<)Rw#+|<3o>2w9D#;IvERGMz7Zzs? zC^lvf`hofu40Q$2F1Y-`diLEvC7XkKk-+lmr>N5h-;<5=aqw&-uA_Gx@X(KiXB@U3 zbE$a{y^9uph&_(1uRjQU#2207)5!G0Kcohi?#owKz<=>w(U5XD-d`g5cqy?@qv9*u zNAzsT#K@Go6#M1-UpYU}Jvmcz^)ps4Eu3$>)2E=*q5p+A@2koFcUQITURp&AG%!l$xcth(81K ztH2zY!kim-WrFsD7roNH_!l~6bGv?! z8E~WejRszzGr1G1yIaP?@0gF38TKt*;ET|nnF5WE=bHB23H+xow-k7DxQO4pwqDcSuP0Dshc(sRx>HWwgzV3ODNG`5io-k()$)=8;+9U_pMHh<8{ zO2v7@TkGM4;?dNFaH(}QS`H?zG^u4{Gruq4ygI=b=ugTUMi;>UC!ep~f3$IF)TUQ0 z{{4$ML#3ZJ*Npz0h|TF}8Y})my<&F`I{2LZFA;AV=b3n#;of%r<{i-05y!_IFXtQ& zY7T#sHsb8t>-rbqw~=pnXIz}Ud&4<;k@3V&o##LQcknJ4$M8ZZf__arhibjJ)Oq=+ z7~A&H1h3IJ9a_hk_l9Q6W*Kh3Jl8&T6SMjE&&%DPVA6`y3h=sc8t1aUbtCaHG$_v4fMY!)j zb{sSk0j_wVu`>AEj4uo>cZb4zK6>v%8tcYTc--;vJylDr(9#L#O@tgPTtxk2#{e&q>yv-^Y6e@XKg1K26@) z!ujRu`&qSnCUVY=cCeN@nt)LbBReA}V7NNd863%*m|;+J10-Mk2$3BD#>vlo6OKiB0vPoT?Z zk@?VUTJxBt-Vnagvwlv!3DvS$NG%)1Nh%K0k9YIWRn3pZ^zk<0>$CfO=mB<2*bJTY zL*K(=5U&V)e);~sR`4XfLF?!ezL6~y2mS1m|!~ zf_;HsR{WFwM)pmJ9qD|B_#5q=^n*jikJuPz?0IyB9_4n!PrV^z)URkCx}75*%oyle zym9~>-AIg06MSXOn%E)Z&WCnP2lUy~0DWzQhg6t?!?moHy`k{_)zs*SoxA0c-xez- z#m_7GpU3>V7%u!lZHD5>dVS~6R-ATAphfD{ckelgbAh-Y?=dr?tcmzc}yM3#vC#Q)78KvV`|E4%$zvt#iO%5+CRQw0M-- z8+(CQHR*o?4SxX|#+P3WA7-qUo} zdLc0=Ygo&#h6||M#@v0^q!xkqc51a$q2Gj_YOUY9``H%Ry1mqSu7baX%rHe9`;v28QH_+wMVV;sslIX{yuup zUFt(NadwI~v&qWZu3r3T&dI)CEp@do3nR+O7T-`^Pw}cz_IC0l)9~&2?7Ne{r1sZA zD;f5F1OBG5^^U7cJwjjCpE2M2GX1_yUZ25sHIeb2YU-=TdI7Yky#eyo+5hJJRN8XD z*FQkVtby6`Z3g!q;GXrX!0Up3RL_g|d+r8q`Sr24)4?}q@_t79nP>UD@RP{20ql^r z)BQFFIHOi;`d>cq+fAyb*X2AX{{}hcIT6-1XEIG;U8|oG&R1Hd`-|syYklav*V7r7 zWN7@>+1)E`y`WP&|M~wL+El=rJ<7UKtti3Y1|HBYs$=ea@0Yo8M6ic2aCQwa##8YH zCQs6OI2HaiMS4iJzKPv9-^P`zji+H>(c% zy~BIviE8GDT#*QRrubMS!v0Mgc?@}SHhX8#)-!=F`Bb z$FBQvHvSkDXY=9jg1#nMdT2v_stvU*8qmH+BWJmQzf+*K%NlR3oUdFKe~izj>P}Qm znqfPTz7+=>>MUh^f_t`dS95Ux5V)Ic`#N*fZ@)2b9L>3L1h$Ikvk97)PN8S|#@-v% zhL6KiJ8s{8@av79^x{xiYaZ;az^b)f7r{OM92Cu;|DM_m#(4K%8DlzcjDP-8 zEcI@49d(gM)?PqQ@{0xZO6JtNA^9o?_efuSy%w_!z{O-rEDxM)*N9+By4gR@r zKF<8JBf5vzxqp6~*0yh>gj3TK{`qlR%!H-N2Q}=I$De+pMQ6bUyw%T{899fd92%89 zDY#|N$mZc}^3FQhPT*uYx~A56KkMD6vyx85E5zH-@!>zhmw1ZyF9RNRBF`6vOApJR z|2G>pKBD`It$vyK?~R;&bo3W~jYIiPonP5~hc4%9v2@g&Hq-f9$hMaW`+mXvGhMXK zRNuv}Gi0;slxv;kudULC>upZ_H#ht8La?vp8vC>(ez9Ufi9drrwErynXdEkEV0ES) zu^pV__N;PZHP*?U=>GQExd)glXl`^4wfMvvb9_GWE_^;X8zp}Y*)jeQ|Mvv;Ri#x#pk1vRT^6qn^t4- z`3yCnfT_+gb2YX}z@cwK=05iG{5WaaJrXrjygF(S1^4#n;2=N6##IHmv9jND_R4zM z@AJUP=(xvsq4AfnHxBW)ac?PScu(@SpyL5ULl?f{-+ZH6_Q?8Pc$#<&^5(E)Q1(Rj z|Cskys{94@-0NC&&b!dJlE~Ov=LC#;`M@U75X-_Kdq^-fAO z0G@Y5$?r5&(H1A5*lQF$_^#C3>JXE!*kcsb-~Wto$B&g%4Hd#x?A3k{{wC z#voca2#oUM={kZu)caX%T=;0U?p+Gs(f=2C?;+k3zLIYbb^XT9DyAO& z343M_FiEFqh4)CGh?=vko*|m3fyQp<88VV_`g_p69P-z2fE)QHd$Iq5`a)VSiqTZe zK1%X|0sNFUjw2V})LREnW!`TguUhMq`RTDzbyt|J8fqCwvd&U6!`&Qf<8Q2)3ei!GCIN0IxMGoML6kk0q z&c1!bXCxjpgnr?VV?^%^YMO~AD!XHYy}<55d-@+DPfKS2PbbzwZJ+;Z=#TM_hTDZ7 z-T>UTZqdGxm=oJ)yL>I4Mq~}%E4!Yne10Bb|@r+^u*Y{t0 ze7uWz(na(UKZke0rD8PVo!}3-!~9yg6G!eSwym+p43;5#zQKLX(Ywcry!h$0gWutL zd0V0Pa-luLVON4Nn<=0168O6R?LNsx(m;Sn$>jZpHwTpYj z+qi$KeHR+yTI;=$@#^{_T?3b{V|nj9z_sp;xZM%mb)JX6XSn}Lu3LFW&nvhN+MdR>?lrQ8Z{%7u zBc62Zs>|_3T*175xYk4v_bi#64c1l=zm{85qK`QKpho69!hDNXBFK^C6T5v{VI4_F z3TlD4_$8m3HMD6CG=RT&@DAvJc|Gt2^bd3)c$e|MR%kYgPxOY-=d0u|o7DLQ&YZY0 zROB^pEA&MF@yZiyEXEJGuh>NC_`26lTg{2Hy*g@F$KNx98{soqp0~2!>W~AgasQri zD^@yKkNI(LzCLh#-5=E&ln#9tG! zJO9X@Cb+E5h6d(=&pEB|o~^W($nl;8yys;6G7ncegATmAjq!*dI*c)itkJi{JkKx} zCP7Y=@#~l*-t+ex6iX$&_hRZI{|jT>z*%J4Be83pILm-f^8FFz2Ss8usS=In&NSAir#Ju0gyyxb3hvrv& zzZJZ&eiU@1|Av9*SXSE7v);LT5i!?x%lGwXN=WaK!II+dcRWCf2QpcWbX1-{kD+ zA7GfbC~?25!Hr~ehJHTE53_#e$NOQF3#0R|_3g2%#==9#!9&NhA9NydekY~gzuOEx z!!xUYT;?|`FJ=4s-JV%3B*6vYq6_)=Sdm7+8 z#(lxrcNH=yPp5IuFb&r-M)N-YT~v_4@kFO^R{5u}iRTe#G#?p28}13omiVo6y5o#1a%AfKY_sEi4fi^<1w16+h@Bz_1lK-Topk3apAPjh65}ykRnX8Nz{df_HBBYujc{F}ot4Ux)v6 zN@r$WXA8NLGa|H=tTZ+HM*0A}v?oa)Z#)N$WA}&;N6@_lzpnp8TdUy3x}L*1~w< z>^zIJ%w%ApF5e&jjx}`#`f@pPkaky-*Cw2r(knu`qmYw(9-xh8{9Ox7 z`d#R706KgS9ZGc8zkpZ)c#>TY@FdAs@vCOFgH7<=Qb_p_v zac$0xE5TVgqBp_*F8gpAlg3%9b${BkEs8~nqW8e(4o2X0T0^bKftTR(%gIfVEvp(x z$Sdr2Y>shGN_*Ee21ylkeh; zN%;N&@5L697yBds`PXysnxjK=1gqMJgx1Y$eoU`!e|S z(7h>Gl3>5bK#STlFV;82NGA247)cjD(@qO(x24?$6Z~^K)t)J#z4#Ap zdy3_=_tZyro4tpB)t>91T$^QTW5JUx&v8wx=AeA38oTfb?s^jNaOu&{@Lc+j{P-GA zEHT-e3x0!pm*uV<_|g$@6ZjmCUG+?=gt!#Z$HRPAn#9(hdA{fS*g5}!n4n7LIUZtv z9)7g?Vc&Kot|0C2OHJzB-;M93Qu;@!&7T^HMI4zA!6EzEpXc4FS>IxBA3aSx^_?$^ z_LMK-`z8Y&D)1FaUlcr(uh2PslRJM-yg#^~gHF0j^Jm=CRVQ_S@7vDfjbC{9E%Sce z2Ke1nr-(IkowK?0jap#U`4y8o{}+AvG!xMJ$k}~9Pn_KOg4!qkpy8j}>u2BV+xenX z(Y+5pdMrGR_d7SP%-KNji}~P2e5U?hvxRLMIAK%Ej5`DUs;=;al&Vn+nZj8tm{Q4 z7k^OXHCAHT;K(E>J52#)%Zn=TED9K^C;iB zst3k8erko^UxM|KB(@XZi;w367kJh5w-sAC>Q3>c1pejnNYz_4C)VlG_Z{pCrY{sq%V)ne0n|5L6lm)M%Wr=5V#;>PZ(hkG7=~cf|+(1;3|wpHX}z`PU`J&p9S$ zCJkO}%;nFo^W&zpmwKG7fDE|eQ>;z=CjQzaf4Xjz4-;F>ht)~hxKM19FgzFBdpq~| zeFN9*^YUpw?s)fuM++~y_vk)9MW23uG>+{DzfM)0NsRu4E#+0%h0VO{E{@Jm0%v0zF$;XZ06$BZ z+@c6=P$%8$LgGi9NuD0zy+M4lJs-g4CT{o-?3HuLX<;r@lZiI%d8_d7o)EH0d}`}? zzf#$IC6`8H+XzoG zW?lV8&H_xn_m3_5eUvkm6sv`eIh?ybJjbRs9f59bU*JT2HEs)gA^5m$8`y=be3>YG zfV%@xa1cGg%nA5Yz%vcwHq3)VJdot2<{-|Tg?@z~^dzJfR>U~d9;a$%~& zz^(ZB?ZBnYWBbtA64(NL|GB9? z_VaYhVcs*0(IIA~^)&Xvkcl%{FF{;HA$`5ZJDITWi;*7Tu)hF*SnumKK21x`G~ts} z-t9}kBHCWV{Pu?n$k|BLKUOV2B)JpdYNUq6I(z<>#u(^n$LpXY`h>n;!lhyJ;`3tpB_GQ$|LDe958 zn-1|ipdaBuc-Fd>Z%{IAsD11~-`9ihmiaT$M9+6)_#fUz9$TOBruv1i_=_|2)wo{M=-wdhCa+fB9v{n{${kv5)1;$SK&LlRB3dIs@OUN56npwp~25 z=?Ug^*Twilky)~#wU@Ge32~zJQ@ms!_u7h5ZIvN!7QXwSo$q|o=lv0E?Zn0IAWpdh z?>;oe+lF2$d3D{nKEFn9n3DvT8k6Kn7(FV^d{mJ8(a8MhOv-`@weJ~p`@c5l>O<{* zg?8KQwe<2SosR&=*0zg><0$R;6H!lN)_(FbYW3{|_YrJMd|u@E)YdE_ZzF*`+WBAL z^rr3>`M6m-)sc4gZuXtv-JQWtAG|-_f8XVO`8@Sr@4jL$vfc5P@}BzmG4wCFm{lEj zelynk2k*c~%lphLK9Z4oAEWEO=JQ(7gla2k4c`InoJqSHcPqG!uAkza#@I7l2eKeB z_R^GncJ&nRx{tv_yxQk0`Mmy|L_mvy%yBx~U&E)8M`r=dfxebuZObmWDyMsazuD67 z|AFtcUze=6ylGH6yZEL9Z}i88?ZKRvR+^0(7j~88@o;PhjAK~Gm;c@JR&@PRzLC88 z4(?`9oW8}dN?7|62DW%Xura_^Xf(!ErVO!&NUtl;qD zk%F_{bSA;-O7muvd=h=@$6kt7C*{Qx`rn-15x`9R2=<8eqkxnmW=vNeaL?v^eI`S{KlQ&cM<2jOos=( zijF4#WNiJ0M+8gNxr*h+uUK%&jAr~%QT~WoU(q{@KlHdqcYnOD_T1Ta+}Ncb*3~`= zjtzeWjwpV=C^-h~^Q3#5XLYRoEB*f9WBL_c_2=Q*5zgQrQT`U-x2Rm-_J~8=PZoN( zjrO%>K0IF|b7jAWpG5f^{yyn{f5S(7Z|7JwW$1S+@~fHeR?{y$fc!T0)9-nvB|j(A z(AE{SW8go^@oX9o-{qd-rCfOKaNg%t|L<$$ed1HJMhtvCSR+~+H^SpzMK=l7i`Gi8 zPP8`s_zs`$|WAtm;YO zyP9;kk+~4Qr{Gtzd&v0hGvBm4t1CD=NBpr7yRZtqx2f<-{A*$IS*b6#KJiHW0rEHR z#AZHLG*|xATd)%Z)1Al<{lAX?8S+K)`F8-PVZHfq?oNeScfgGuezsS#qIuvD`kTxC zXx!E#8}ai5JmzuFZ~r#_D_$>XM>xtz#;B$Y`k907??6ZRZF?fnQ2Z{%%Z#)qTQ`1} z@8b&Y5Bs{H-HXvr#}t2YhG_uSf{GRwKV1>FZ(n#!HFb(oKLmFRO!2L~;lk=a6ea4T z6EeTwgPriYx$hCxkDktaX6ZM=eC5-6QNoW`6WsFW*qT4KcAyV`A-w4i?28ogy~d;S z8#Ja~d@B9KZM{}O9b?9qfNssD?#jLrCzZWiK6rDW@g(l8tF!vNl$SX{>PHsdgi$7L*5&&Jl2o~^ZhiOzdq9MZGp^Ei5z^ak-^&hkc| z+YNmL>jnRGCw}C^=s69m@g1W(HHg1cHyoKtTsXSj`_JavF}qVCw}ALT+0oRh;{AZe z)h6`=2UoLZTWL@9ExHM6n>LQh9SOesuUqgL;h&OyU}-n(z$Zh%i%nq9*;I_4U#k?l z_2&Q_X{=j}bapeS`jP8cN5nf<>--i&T*bfMVs+5Y402)&{)}4ik@+GxNAEx$v)+{Z zSax~gbk2<$t9@tRo)(XJk#E&k-zfhH_ZnWQW}h!sVEN?VFUFS(+>*~9SD#e;rG0ab zpFq2UL$OW~GcY%w{sMl}%X9IZ1-z5cJ9)e%&OB?}!M$I_0zL&_M!yVv!Wskk+=Rcy z#svnxj%^S9tmTg__&VCmV0^9Y4zp_){;Ab#q47~Vq@9cQLik9T^$80fN3WfNoH;dh zC%U+`&7Sn*n=|A zv&Hq3ew#sjV1|6pHQ*Y4Q$5K!bDs49B&-d(t0IAK8a!#7-Hc~B@ND9DLSrJvLjQ+O z=A45%YAbR!QW#zxV(&?`A{in789ZQrlrt5Gk+JLSalt}e(uyn0r=gjKe0~vvUqF+? zzJ#h}Lz~7R-x9aEgMS1565uaREu0KvPYw>vmQQ+4=-jzLVg1HBA6|PYt-#f{ko`J* z2RegK`BEB#?ho?L7TTfS&QhIw1K%oh-yMRNTK`4;0-ir%Y3*8Q?KOHSkaqcIP?xVD#(nnxFiq6_t18vax zY2Z&hz6|)4AJNL*jBxunb|T)Kv}i=I2#!W_>I(R;m?+UnFMLJ&ReX&VCCn5=k6dHWKeZQeI3a6 z_sl&T9}WENukl>@IyS(wx@cQIEa`}9FM6QNd!sMlzp6>=$FTZq-j87&`07dQ@1A^I zEUTHG=(#gS>;SlRN6SCWaMo4$Mxm=nKlMEs$9Z36Y&~UO zq$=b^+KW?_%;$G2{dV>JyU1VBGqBEyz}v0vi*20+_F4EocD6j#;_nkr?kvIvind>p z??)j1khFZOG-bfyB@N+8oJ%+$ki)?p&&?^8R{8RRQ=|AY?_f1Q43>0dg; zqx7+xF=QqCsGAcd-elHJldi?aiO`pl$YRKI3IMBg|eW z&$ls0_MLNyyM+JP>m+fhtW$fPE%bslr}Y-5cAWT1_VqC9o%0($@YmXCeMfNW`AqoH zMqt&xx5L>}vz|2Rm-+o_m2AjUJ71$#Kp<-xX}5;hPqaDSTJ9ZdfByWT_7~2-puOY#p+e3w;#Y3~-CAqhTc-Wh$9d+LjF)YA-pYiKtxyI~oGoi~X z`CZ8wEs+9~R;+wGb9wu&n9T(d?_2OpP~)q;K6A%2HjgWeu2^ujyRyz8KhAd37Z#&m zqSLZR-Jo3XEnI(&YsFkp3%tG)pfPt`g=NJ=eSBj;+*pN!F|C z?8w(Kx}ERwOtSviRac+~(mT2EdZMG5IN;VbXZ}jDoV#5Wu-;fB@(yJnXhr|#wXdze&xHYW#KA;OtiQ<$r%tH70Z|emp6fzJv`G` zLfB|u2Tu9jgWpT|t$aw~QSU#*`xOP|sz@YJZ|8t^)GlW`=q$pOtM|5^ufF0F@p16} z=SQ_K9jg&virR0(9$d)pJrB4k{k~eyw&k8No-1tM#A4?9UKY&ZDA}7}KK|(p$=;Cs z&ER+>M?vd*G@ccc^LDt<#zFXgVqTPW^DE?<^>xAyQ|owlkWO@L!Hvh`6it}KDKe@N#;y=>HR0p+&jJ?Wr{Oz zWin>qrLpKfO^&y5uklLg z`Ode$-dz}c@1M(D3%;mZv(kw_Sii_POB#{qO@*pWL0t-X*uSG2*1`v)#b%=7yc+pk zHw}O9i4W8}Kl)({{APk<<+sp}a4_o&BYt)9GV$1b5wpHF zLY*Ay=g4myZ#uhfu$FVj8qW^Pp0KqR?b>X&dieTdR~6{2!}WpR#OmVsOeBYU zWk=u_p|*zf>chg73tVHNP5CDhG3*!o6?=eBzKT6}KGCupJpKgymVh_WTY~f5uperM zHng5Uv>}1~YCC_`zq3YwH$+|DDDX+&at=ILUwg+6`Fh4dTffiFGU*8TFyN!Nig}&~ z9k!W+LtWrt6ilt?5`ts2&mA-#aJc2gFv{kw6B-$k{ZB3a@Fb_?TILsEs_!3B~Le-q({kiFF12 zG?k-s=v_Brb2OFLshm#fRE<}jka7~(GA9+KL^n1^8vCmkUmvpgfb6g6cP~nRowy!! z^6D)6SH1cVJzSHci^cHEL*PEpiC?ZC+9aR3Ukgm}pC7ITrgad(H=VinDJxI)TlDnT z?(4a5I~6r<0rX;m*_t-?{$mF%;JIK9d?H`E$zO}nWXO~M zKlyYZmz7g|Lh2~`wC0TUU~5tIU1EI+J!Z|toC|5teK^kyx_%bk(u)q9z()WLEvaSA zZD4MeRi5W%w}aoD9Bv(ZWlF!BflacoN%FW3`r@9;?_Tt3%gd25t2>}m`t85ucpK4W z4SWt7IJ!_Y_u=zHKe+qp;aVC2?0%gJ&J2bIRi|QbNdfUg=3oRrZ<6{Ntm7UtDbZ67 zo{}MC4f=%6TPXQ`x`iB;!S7o;Sh=Ib$3;$oKT_W$%(x28;HxYAS};2$_t4?8{C~mz^6w)HuyM%8CqJ5V&?Ecb%l+5+4H0l5UM)O1>vYyVb<6^M zseTi`g)iTqoO_@7x9=B&I?vV4K`yTg$>tE$v|1$6T`Mm3WTdrq{fWHm^1SQWT&o|=hx*A-tM_-3ftzISnXaA0 zqnBLY-GU8P_7b!hhYmJU7lHb0k0}4;5p*Brng895HjiC#bi;I^wcZCk_48aXzqVVt zjbeSvI<0+1TN!ZJ@tA*px%xEd;*e5Dg7z}fX{;Z>r!&pbH@IJd9h8C2M&|@Umkk}C z1n1-GQ%&9cr@aj83Z4C+>Jx<)H_c!43}=F|KKeL|w25;?!|?W3fvK5(RrgD<38tHY z=~dw04Nl+()j|CR)j=6tav`-)M(Si(KE5x6uZ%n+#!G&n&3_Y&;t|Ttvb-GLAQ_d! zcKRf9nSk%?#{P>jCh?r}`JXu542n;eq75_Ra5h`<%GuT)%t3<-OdapCi4% zVd9nERnQ#2XYV8)x#X_ymS3oCzI~SWT6tgBONZORcJKG;{A>0ebx-auNM)-WZe+!0Y?g=J6zn$yejtf(*4-}?kw^rh_n8nzV++V#mv^2}uS3eM1YLJ;b|FOMZ zc8B&kWcwL#Zmyo_C1#>i($)sxe^~wLTL16A5IE?!86Ay&FXEoX0l#DR`9(Z01V{e! z&)R#)gdAS6(8nm7D+=I}dP1z&o7XqR-Xpl|2(p$7YHKXuF> zEK2pU9)u&|2^_Sp=~8T>vtMEwBNVg@oxJk@Q+@* z4S6AX)jQ9RVYK=T*Nw!9CRw-Td^3v}BK36=uxb4W-ctS_z4o%4-{ZfNzt-MdAJnhO zm%SU%N3`a*B7cRGO~5mY{fO1n9m~S&;-|4z>A#ixs~N-UnBv(L3scfr#h$=5J1iYh z8?-k4F85rgcwXe&?e&JamfkSBW=(>6mY09tTgO84Tpy>q@J{f2I{s$lf!7|B|B>2Cm0>TzcZ;}}z&F))0dzU| zaL*p{`mjq5|1Ik?a$9@-OW?CL1}`TkVgdX5mvLWuV*)u9WxZ(3&bdxnc+j{@7`J$e zc=uo9+tML}vtXE8$*vj%3_3ddM+sx~*M8(qek}m-(ePxI-==tCurE2Z@Ax=x zejgN!wl+I39wio_bQk{2JUF+Eb>B(=PixC3COW%p-S&yp&+vLVcXtmu)3V$F?drHiw$yz&0s_iHwnbPCRfY2)UXqQf_F zfAz5wsMn=DoRZEB*f{Y5Gq;H~i!Rt@RA;xI`Uc>C%R^=BTgoQOf!l%G{5$HNzSU4kIU%RsLi?u7`g+((OX*>Q?asdhp zQt`d98ro0C@omK0#-!rNw|HA&%J7~12TfP{aD-T|O;=)1{-tcLVEI>`ebhNymgd;| zvhimT{D+k@*$?t*&f28xnIk*=d}(M;{HT%h{SxF+Dejzjt0jApqoOf~xon;1-z$riHG3K?Mn~If1w)awd6u__Toe*;#4<<+!^vMz$=z${;@&Qg8f7L@3cQu zDW6G6=Z=2xPP=Nmf;O2S#^O}BhR7ExbZ4-?db#e0*-M=ZZQcoOYR^mW8~TQ}(}{P7 z<|uDo>je9UIQ|%ZNA?)Q$Hz%P)9bhMr?YmN`8$DF$=8Oq5T_G9j8D12B`!R^=&6=Z zAp0xV*Ul*XvCi}=yo|cUxAJX6b+OIg?OEi6mMrFXG-*8fi_bLJx2sZ{3!I{kwG-Tx z)Csn6xZ|#_UAfvRT(T8Btu6KM_wt?dW#;jguMRk+#2DUatlv2kUi9*~2LFA7KQo42 zEV(9L>3kV}JANeJZus7Wk$a+}ky`SmbHleU9=K!e^#ff^&OyOBQ>&2=QpgMT|VG&XaCG1 zPv^&@pIMzR5gwQqBKJG+75$X^Q~8ZvLLAXlU{c+w$(^?EFBf^;x$iQ_4t-Z{$}bPz zxqh{~;qQ5l)3DR!4BEc9zi%A3Hr9jnhx|GW!{e8K)<462#Kx0txFJ6 zFoR!b1N*+ac@I0>*5pR_AFKg(J%cW+F8UouB_ zWbU40@V&yT9Ana3;qj66S6F(EtRJ7&y0`0@cO3MBZ9K2#IqzRn%k$i~*XUcl8^#}e zCOP=E{63w0{F}JOhQ6km|E*y&_ff7-XI-o@#g{)Hd9ECLzy9L&W(H>zqNaG9na;b@_m#VA zLNf%*89cj@KluI9`wK3)e7gFLyimS|oH5n+(zvP$Vgn{3yC+P|hw;=V3U$;Ov!7V6 zH*aCh>)aTlvwjaOn!kqgPTSpZb-|HE^P3Il0AFajE6f<13#_#s;41hppYX_aX!sgi zeVi$X4gbE_gfD-Nd-s{plE)hEyMB!cFIm&D=K5EF`}s%LUccKEEcu7^Ysz0SMN4jh zN9uQDq75<_Y5!GxjaAeZau`bjejhcaBfj2}F-`G_F{>x&`~dOFV$m-1v9}UEJ%TN9t~q!e{+HUtjor<(9mTJ%a}+9a z=V~Ai${g`rcuZ*3szY_AtfTMNrf%sPTan$((1*VcuqEIHapTwjF!-?I__NFe_Snp+ z9Zj??SQi;{xK3v}(PkvIu0He4AGSak_f`cI5&7wsv3TDGKJGt=F{1=IY!-z?vl1-`FZ^cL{RR{Vq7?~7*6@=l=!W1KY* zygQm#esK3wR@eH#+Aj_~pEHfAZyMN!e_1w0xt%tjDX>&rWb_G z66z5)oWQ+_$gbi0j#&~u!89;ew*JAk?dG7)bkMy2nfeK&OfnH=Z%M8Eb(BYAP< zyt^D4QEvO>Y37u!d(G76?hP-D154Lw=9HJY?&9yA@Z|kJpq>Odh#krBqHgTPCHsI; z^u@jX%YjYjdC7*qkG<&K*glJa@%#8DzZ;uF?Q*}?iO#93p!RGp-(JuA8$*R1qOqjK zTX)OjT(1rnEP*dHv@W@G{!`3RD9m}{xqD&my?*^o13w5)9Y}CrXWKnmHg5)Jn|a&E z&7ZNgeOh-G8cdX#`9BDMY2eYaZ_L;}ZUy(h+^tv$A15bRoa_K6KLaPHk^ihcf@J%& z0nwOvR~+217g+xfUtKlB`onKu_0T%-CLefm-&eYu%VRUJKfR@lzsMeKOxI0Zy&WV)Tp4 zobVF#nTE&c=P_c^e|+Ze%gSl$tX!HnWlQfF1>3+c`S(&CLFbu4lS6i?EA6$2`gJ z$9TJ2sb^udm&)Ijw`+YH>$lIs;|)AsG20JRx;3{>H0cLu=X2n1hBNk7t?}RRto3xa zrg1XySRpev0zS3R9cSH}$Y;D(`Wv^nasHCisFUHGu;dNK*9ec$obQ<@yNNySi6Q;2 zZygxw5^rB%R=*YJx9T5l{h(~FLEn&_BtD>h#NO};)o&`6hq}LU^bGd5(!EuTVO3~q zliFT2cB+Af&8qN1eH$rGZjP6S21SSRK`Xy~blj$RFfgw-?q@v9Z`miuU%O*j-&yFS zF7Y2uYFES@h!;Ak#FZBh-h6|t3$VVeX{Hy=RC&PPbLJ}fqzC4;^4y@0HF9PE_v=U7 zDSrDSXQ|0H79OZ8Qw>fJ2ye>Ced-@1^GZ9H16PGhT-jSip6uT^{3(KO@jHrBrUrNN z?k7I-tTV;5==&ei&fAQeJ+`HS=edbrxQkjI4RL+D`DeCfrw`Na)K12@tZk

~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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