From ad814c6a1246c43b3ce0f00299b3804586c433c6 Mon Sep 17 00:00:00 2001 From: drjones Date: Tue, 7 Apr 2026 19:06:06 -0700 Subject: [PATCH] docs: expand README with full feature catalog and API tables Include firmware/.cache/clangd index artifacts from the staged set. Made-with: Cursor --- README.md | 156 ++++++++++-------- .../index/app_net.c.8976D557EC300024.idx | Bin 0 -> 28100 bytes .../index/app_net.h.379D685E6D39744F.idx | Bin 0 -> 718 bytes .../board_rgb_off.c.E5DB1ADBEB9F6D6C.idx | Bin 0 -> 2842 bytes .../board_rgb_off.h.8BDAE08C64DBC352.idx | Bin 0 -> 334 bytes .../clangd/index/jobs.c.32B64D759D53BD2C.idx | Bin 0 -> 2384 bytes .../clangd/index/jobs.h.D44D4CC819830F66.idx | Bin 0 -> 1038 bytes .../index/led_strip.h.E0D4D2D09150BA23.idx | Bin 0 -> 1938 bytes .../led_strip_api.c.80D59D9DA237AC7D.idx | Bin 0 -> 4030 bytes ...led_strip_interface.h.8B72BB2EE00CD58B.idx | Bin 0 -> 1066 bytes .../led_strip_rmt.h.DE33DD21D038AD88.idx | Bin 0 -> 1368 bytes .../led_strip_rmt_dev.c.CB33455CF41A593B.idx | Bin 0 -> 7364 bytes ...d_strip_rmt_encoder.c.A3525046610D9ABF.idx | Bin 0 -> 5166 bytes ...d_strip_rmt_encoder.h.0329E7E84D4C47B8.idx | Bin 0 -> 986 bytes .../led_strip_spi.h.C0F97F46853CE2EE.idx | Bin 0 -> 1282 bytes .../led_strip_spi_dev.c.BDB71DF8902C03F1.idx | Bin 0 -> 8562 bytes .../led_strip_types.h.F69A980AB65DE6AB.idx | Bin 0 -> 1528 bytes .../clangd/index/main.c.B516995A6C0A4F7B.idx | Bin 0 -> 2394 bytes .../clangd/index/mdns.h.F79EBFE9494D08D5.idx | Bin 0 -> 13268 bytes .../index/mdns_browser.c.844EE27ECDD370B3.idx | Bin 0 -> 16996 bytes .../index/mdns_browser.h.4C9C0DA24E273588.idx | Bin 0 -> 2028 bytes .../index/mdns_console.c.4A45177451EC0E51.idx | Bin 0 -> 44094 bytes .../index/mdns_debug.c.AA7109521C3B6657.idx | Bin 0 -> 9776 bytes .../index/mdns_debug.h.1967329A83A6D539.idx | Bin 0 -> 422 bytes .../mdns_mem_caps.c.CC4B2BCBC4B12F44.idx | Bin 0 -> 2866 bytes .../mdns_mem_caps.h.CEFC184F87ECC745.idx | Bin 0 -> 1100 bytes .../index/mdns_netif.c.15DF3D448C6EF1FA.idx | Bin 0 -> 12246 bytes .../index/mdns_netif.h.5B3BB947FC74DB09.idx | Bin 0 -> 1330 bytes .../mdns_networking.h.A588D525E6316658.idx | Bin 0 -> 1428 bytes ...dns_networking_lwip.c.6F30427FB695AB47.idx | Bin 0 -> 12862 bytes .../index/mdns_pcb.c.7AEB4688ECE9D08A.idx | Bin 0 -> 12468 bytes .../index/mdns_pcb.h.95AD3ECE0DDA239D.idx | Bin 0 -> 2798 bytes .../index/mdns_private.h.F18457B0D1445EE2.idx | Bin 0 -> 17630 bytes .../index/mdns_querier.c.0578019256BDEEA7.idx | Bin 0 -> 24946 bytes .../index/mdns_querier.h.2D0ECFD0DB6BD816.idx | Bin 0 -> 2728 bytes .../index/mdns_receive.c.B5E60DD8BC9F0846.idx | Bin 0 -> 24760 bytes .../index/mdns_receive.h.7D5DBD82E2E64FE4.idx | Bin 0 -> 532 bytes .../mdns_responder.c.746A24B408E0043C.idx | Bin 0 -> 43912 bytes .../mdns_responder.h.C5FB523E342EF65B.idx | Bin 0 -> 1944 bytes .../index/mdns_send.c.59BD33003D102D61.idx | Bin 0 -> 36292 bytes .../index/mdns_send.h.4F6F65E6B9467994.idx | Bin 0 -> 3686 bytes .../index/mdns_service.c.3ED53626DAC5EF3D.idx | Bin 0 -> 10182 bytes .../index/mdns_service.h.C2CF3A06E06F9BB7.idx | Bin 0 -> 634 bytes .../index/mdns_utils.c.65695015EB907823.idx | Bin 0 -> 7340 bytes .../index/mdns_utils.h.F6BBFFB10960D7CE.idx | Bin 0 -> 3020 bytes .../index/nfc_brute.c.5CE5CA4075A21387.idx | Bin 0 -> 4894 bytes .../index/nfc_brute.h.357ACE396DF621D3.idx | Bin 0 -> 952 bytes .../index/nfc_deep.c.84695751986FA510.idx | Bin 0 -> 4884 bytes .../index/nfc_deep.h.CD94CBA950807F37.idx | Bin 0 -> 560 bytes .../index/nfc_engine.c.DF9FC1E131D8D184.idx | Bin 0 -> 7766 bytes .../index/nfc_engine.h.364F51431207B3F8.idx | Bin 0 -> 2638 bytes .../index/pn532_core.c.980577ACBAE216BC.idx | Bin 0 -> 5292 bytes .../index/pn532_core.h.9A8DA7CCA3043FA0.idx | Bin 0 -> 2414 bytes .../pn532_transport.c.95E12863800F8807.idx | Bin 0 -> 9280 bytes .../pn532_transport.h.B2B7FC24B3F82AF5.idx | Bin 0 -> 1116 bytes .../session_capture.c.530D7E003881BBF9.idx | Bin 0 -> 5820 bytes .../session_capture.h.07244A2452854F4F.idx | Bin 0 -> 1468 bytes 57 files changed, 88 insertions(+), 68 deletions(-) create mode 100644 firmware/.cache/clangd/index/app_net.c.8976D557EC300024.idx create mode 100644 firmware/.cache/clangd/index/app_net.h.379D685E6D39744F.idx create mode 100644 firmware/.cache/clangd/index/board_rgb_off.c.E5DB1ADBEB9F6D6C.idx create mode 100644 firmware/.cache/clangd/index/board_rgb_off.h.8BDAE08C64DBC352.idx create mode 100644 firmware/.cache/clangd/index/jobs.c.32B64D759D53BD2C.idx create mode 100644 firmware/.cache/clangd/index/jobs.h.D44D4CC819830F66.idx create mode 100644 firmware/.cache/clangd/index/led_strip.h.E0D4D2D09150BA23.idx create mode 100644 firmware/.cache/clangd/index/led_strip_api.c.80D59D9DA237AC7D.idx create mode 100644 firmware/.cache/clangd/index/led_strip_interface.h.8B72BB2EE00CD58B.idx create mode 100644 firmware/.cache/clangd/index/led_strip_rmt.h.DE33DD21D038AD88.idx create mode 100644 firmware/.cache/clangd/index/led_strip_rmt_dev.c.CB33455CF41A593B.idx create mode 100644 firmware/.cache/clangd/index/led_strip_rmt_encoder.c.A3525046610D9ABF.idx create mode 100644 firmware/.cache/clangd/index/led_strip_rmt_encoder.h.0329E7E84D4C47B8.idx create mode 100644 firmware/.cache/clangd/index/led_strip_spi.h.C0F97F46853CE2EE.idx create mode 100644 firmware/.cache/clangd/index/led_strip_spi_dev.c.BDB71DF8902C03F1.idx create mode 100644 firmware/.cache/clangd/index/led_strip_types.h.F69A980AB65DE6AB.idx create mode 100644 firmware/.cache/clangd/index/main.c.B516995A6C0A4F7B.idx create mode 100644 firmware/.cache/clangd/index/mdns.h.F79EBFE9494D08D5.idx create mode 100644 firmware/.cache/clangd/index/mdns_browser.c.844EE27ECDD370B3.idx create mode 100644 firmware/.cache/clangd/index/mdns_browser.h.4C9C0DA24E273588.idx create mode 100644 firmware/.cache/clangd/index/mdns_console.c.4A45177451EC0E51.idx create mode 100644 firmware/.cache/clangd/index/mdns_debug.c.AA7109521C3B6657.idx create mode 100644 firmware/.cache/clangd/index/mdns_debug.h.1967329A83A6D539.idx create mode 100644 firmware/.cache/clangd/index/mdns_mem_caps.c.CC4B2BCBC4B12F44.idx create mode 100644 firmware/.cache/clangd/index/mdns_mem_caps.h.CEFC184F87ECC745.idx create mode 100644 firmware/.cache/clangd/index/mdns_netif.c.15DF3D448C6EF1FA.idx create mode 100644 firmware/.cache/clangd/index/mdns_netif.h.5B3BB947FC74DB09.idx create mode 100644 firmware/.cache/clangd/index/mdns_networking.h.A588D525E6316658.idx create mode 100644 firmware/.cache/clangd/index/mdns_networking_lwip.c.6F30427FB695AB47.idx create mode 100644 firmware/.cache/clangd/index/mdns_pcb.c.7AEB4688ECE9D08A.idx create mode 100644 firmware/.cache/clangd/index/mdns_pcb.h.95AD3ECE0DDA239D.idx create mode 100644 firmware/.cache/clangd/index/mdns_private.h.F18457B0D1445EE2.idx create mode 100644 firmware/.cache/clangd/index/mdns_querier.c.0578019256BDEEA7.idx create mode 100644 firmware/.cache/clangd/index/mdns_querier.h.2D0ECFD0DB6BD816.idx create mode 100644 firmware/.cache/clangd/index/mdns_receive.c.B5E60DD8BC9F0846.idx create mode 100644 firmware/.cache/clangd/index/mdns_receive.h.7D5DBD82E2E64FE4.idx create mode 100644 firmware/.cache/clangd/index/mdns_responder.c.746A24B408E0043C.idx create mode 100644 firmware/.cache/clangd/index/mdns_responder.h.C5FB523E342EF65B.idx create mode 100644 firmware/.cache/clangd/index/mdns_send.c.59BD33003D102D61.idx create mode 100644 firmware/.cache/clangd/index/mdns_send.h.4F6F65E6B9467994.idx create mode 100644 firmware/.cache/clangd/index/mdns_service.c.3ED53626DAC5EF3D.idx create mode 100644 firmware/.cache/clangd/index/mdns_service.h.C2CF3A06E06F9BB7.idx create mode 100644 firmware/.cache/clangd/index/mdns_utils.c.65695015EB907823.idx create mode 100644 firmware/.cache/clangd/index/mdns_utils.h.F6BBFFB10960D7CE.idx create mode 100644 firmware/.cache/clangd/index/nfc_brute.c.5CE5CA4075A21387.idx create mode 100644 firmware/.cache/clangd/index/nfc_brute.h.357ACE396DF621D3.idx create mode 100644 firmware/.cache/clangd/index/nfc_deep.c.84695751986FA510.idx create mode 100644 firmware/.cache/clangd/index/nfc_deep.h.CD94CBA950807F37.idx create mode 100644 firmware/.cache/clangd/index/nfc_engine.c.DF9FC1E131D8D184.idx create mode 100644 firmware/.cache/clangd/index/nfc_engine.h.364F51431207B3F8.idx create mode 100644 firmware/.cache/clangd/index/pn532_core.c.980577ACBAE216BC.idx create mode 100644 firmware/.cache/clangd/index/pn532_core.h.9A8DA7CCA3043FA0.idx create mode 100644 firmware/.cache/clangd/index/pn532_transport.c.95E12863800F8807.idx create mode 100644 firmware/.cache/clangd/index/pn532_transport.h.B2B7FC24B3F82AF5.idx create mode 100644 firmware/.cache/clangd/index/session_capture.c.530D7E003881BBF9.idx create mode 100644 firmware/.cache/clangd/index/session_capture.h.07244A2452854F4F.idx diff --git a/README.md b/README.md index 436c84c..2524820 100644 --- a/README.md +++ b/README.md @@ -7,61 +7,112 @@ ESP32-S3 + PN532 + a serious web UI — no desktop app, no dongle software, no m ## Why this is the best tool for PN532 workflows -1. **Full remote control in the browser** — Dashboard, live scan, deep capture, read/write helpers, raw PN532 frames, and status — all over HTTP + WebSocket. You can stand across the room with your phone while the hardware sits on the bench. +1. **Full remote control in the browser** — Dashboard, live scan, deep capture, read/write helpers, dictionary attack, raw PN532 commands, and live status — all over **HTTP + WebSocket**. You can stand across the room with your phone while the hardware sits on the bench. -2. **“Deep capture” is actually deep (for a PN532)** — On each new tag we don’t stop at UID: we pull **PN532 general status bytes**, **full inventory (ATQA/SAK/UID)**, then either a **MIFARE Classic sector sweep** (default key set, Key A and Key B per sector trailer) with **every readable block as hex**, or an **Ultralight/NTAG-style page sweep** until the tag stops responding. Unknown SAKs still get inventory + controller status so nothing is silently dropped. +2. **“Deep capture” is actually deep (for a PN532)** — On each **new UID** the firmware doesn’t stop at inventory: it builds a **JSON profile** with **MIFARE Classic** sector sweeps (default keys, Key **A** then **B** per sector trailer, **1K and 4K layouts**) with **every readable block as hex**, or an **Ultralight/NTAG-style page sweep** (up to **240 pages** in firmware). Unknown or non-Classic paths still get solid **ATQA/SAK/UID** plus whatever the stack can return — nothing is silently dropped. -3. **RAM session buffer with hard stop + phone download** — Captures are stored in **on-chip RAM** (default **48 KB** of NDJSON lines). When the buffer is full, **RF polling pauses** so you never lose data to silent overflow. You tap **Download NDJSON** on your phone, get a single file with every profile, then **Clear** to resume. That workflow is purpose-built for field audits and clone/research sessions. +3. **RAM session buffer with a hard stop + phone download** — Captures live in **on-chip RAM** (**48 KB** buffer, NDJSON lines). When the buffer is full, **RF polling pauses** so you never lose data to silent overflow. You tap **Download NDJSON**, get one file with every profile, then **Clear** to resume. That workflow is built for field audits, bench sessions, and anything where “I need the dump on my phone, now” matters. -4. **Self-hosted on the device** — Default **open SoftAP** SSID `PN532-Toolkit` (no password, lab default), **mDNS** `pn532tool.local`. No cloud, no account, no telemetry. +4. **Self-hosted on the device** — Default **SoftAP**: SSID **`PN532-Toolkit`**, password **`nfc-toolkit`** (WPA2). **mDNS** hostname **`pn532tool.local`** (HTTP port **80**). No cloud, no account, no telemetry. -5. **Honest architecture** — ESP-IDF, explicit components (`pn532_host`, `nfc_engine`, `net_service`), embedded Vite/React UI flashed to SPIFFS. You can extend it like real firmware, not a black-box sketch. +5. **Honest architecture** — **ESP-IDF**, explicit components (`pn532_host`, `nfc_engine`, `net_service`), **Vite/React** UI embedded in **SPIFFS**. You extend it like real firmware, not a black-box sketch. PN532 talks **SPI, I2C, or UART (HSU)** — pins and bus are **menuconfig**, not guesses. -6. **Raw frame escape hatch** — When the high-level UI isn’t enough, hit **Raw** and send PN532 command bytes (frame wrapper handled in firmware). That’s how you stay aligned with the real chip, not a toy abstraction. +6. **Raw PN532 path** — When the high-level UI isn’t enough, **Raw** sends **command bytes**; the stack handles transport framing. **`GET /api/pn532/general-status`** exposes the controller’s **general status bytes** for debugging. That’s how you stay aligned with the real chip, not a toy abstraction. -This stack is **not** a Proxmark replacement (no LF, no raw carrier manipulation). For **hosted NFC with PN532**, it’s built to be the **most complete pocket operator**: remote UI, deep reads, session export, and a path to grow. +7. **UI that matches the ambition** — Live **WebSocket** stream (scan + capture), **browser-side log** (thousands of events, exportable JSON), optional **`apiBase`** for talking to the box from another host, **HashRouter** so refreshes don’t fight the server, and **lab fixtures** (synthetic card blobs, keys, SHA checks) so you can validate the UI without burning tags. + +This stack is **not** a Proxmark replacement (no LF, no raw carrier manipulation, no FPGA tricks). For **hosted NFC with a PN532**, it’s the **full pocket operator**: remote UI, deep reads, session export, Classic dictionary work, Ultralight read/write, card emulation hooks, and a straight line to the command set when you need it. + +--- + +## Every feature, in one pass + +### Firmware (what the chip actually does) + +| Capability | What you get | +|------------|----------------| +| **Transport** | PN532 over **SPI** (default pins in Kconfig), **I2C**, or **UART (HSU)** — bit rate and GPIOs set in `menuconfig`. | +| **Continuous scan** | Background task polls passive targets; **~65 ms** when not in deep mode, **~220 ms** when deep capture is on (more time per tag for heavy work). Toggle via **`POST /api/nfc/scan`** or the Dashboard. | +| **RF sensitivity** | On init, **high passive-activation retries** (`RFConfiguration` **0x05**) so marginal tags get more chances to answer. | +| **Deep profile** | Per new UID: Classic sector layout detection (1K / 4K), per-sector auth with built-in default keys, block hex arrays; Ultralight/NTAG page reads up to firmware limit; structured **JSON** for export. | +| **Session RAM** | **~48 KB** NDJSON capture buffer; mutex-protected; **full** flag stops polling until you clear. | +| **HTTP API** | JSON in/out on documented routes; **CORS** headers on API responses; **`OPTIONS /*`** preflight for cross-origin clients. POST bodies are read **completely** (chunked TCP-safe). | +| **WebSocket** | **`/ws`**: JSON envelopes `{"channel":"…","payload":…}` — **`scan`** (inventory / `present:false` when tag leaves), **`capture`** (`recorded`, `bufferFull`, etc.), **`pong`** for keepalive. | +| **OTA endpoint** | **`POST /api/ota`** returns **501** with a stub message — there is **no** in-field OTA in this repo yet; use **`idf.py flash`** (or the included scripts). | +| **Onboard RGB (DevKit-style)** | Optional **boot-time** shutdown of a **WS2812/SK6812** on **GPIO 48** (Kconfig) so the addressable LED isn’t left on a random color — **not** on all boards; power LEDs are hardware. | +| **Status** | **`/api/status`**: uptime, free heap, Wi‑Fi mode, **PN532 firmware version** (when reachable), scan flag, session stats. | + +### Web UI (each page) + +| Page | Purpose | +|------|---------| +| **Dash** | Live **status** poll, **continuous scan** on/off, **manual poll** (uses live tag from WebSocket when present), hero readout. | +| **Read-all (Capture)** | Toggle **deep capture**, **export** NDJSON from device RAM, **clear** buffer, progress vs **48 KB** budget. | +| **Read** | **MIFARE** block read with key + Key A/B; **Ultralight** page read; paste a **sector trailer** to decode **access bits** in the browser. | +| **Write** | **MIFARE** block write (16-byte hex, confirm dialog); **Ul** page write; **lab fixture** loader for offline testing flows; ties into **live UID** from WebSocket when available. | +| **Brute** | **Classic 1K / 4K** dictionary attack: firmware’s built-in key set + your lines, optional **bounded variations**; shows JSON result. | +| **Emu** | **`TgInitAsTarget`** and friends via **`POST /api/nfc/emulate-raw`** — you supply hex; **experimental** (bad sequences can require power cycle). | +| **KeyLab** | **XOR span** across up to three 6-byte base keys (all combinations → candidates for Brute/Keys); **Shannon entropy** on arbitrary hex blobs. **Stage for Keys** copies candidates into **sessionStorage** for the Keys page. | +| **Lib** | **Saved hex snippets** in localStorage; **seed** from built-in **lab catalog** samples; fixture loader for repeatable demos. | +| **Keys** | **Browser-local** key dictionary (defaults + your lines); **merge lab keys**; **import Key Lab stash** from staged session. Used when you copy keys into Brute manually — **not** auto-uploaded to flash. | +| **Raw** | Hex **command** payload → **`/api/raw/pn532`**; **general status** dump from **`/api/pn532/general-status`**; local TX/RX log. | +| **Set** | **`apiBase`** (empty = same host), **theme** (light/dark), reminder of SoftAP + mDNS. | + +### Browser extras (no extra server) + +- **Top bar** — **Download log JSON**: last **5 000** WebSocket messages from **sessionStorage** (scan + capture + anything else the firmware sends). +- **Scan feedback** — Visual/audio “hit” flourishes on new tag / capture events (debounced so it doesn’t spam). +- **Validation fixtures** — Shared **lab** blobs and notes (`validationFixtures.ts`) for UI testing and teaching. --- ## Remote deep capture (how to use it) -1. **Power on** → firmware starts **continuous scan** automatically (you can still toggle it on the Dashboard). -2. **Read-all** (Capture page) → enable **passive read-all** (`POST /api/session/deep`) when you want automatic full dumps per new tag into device RAM. +1. **Power on** → firmware starts **continuous scan** by default (toggle on the Dashboard). +2. Open **Read-all (Capture)** → enable **passive read-all** (`POST /api/session/deep`). 3. Present tags; each **new UID** appends one **NDJSON** line: full deep profile JSON. 4. When the **progress bar hits the end**, scanning **pauses** automatically. -5. Tap **Download NDJSON** on your phone (or laptop) — browser saves `pn532-deep-capture-*.ndjson`. -6. Tap **Clear buffer** to free RAM and **resume** scanning. +5. Tap **Download NDJSON** — browser saves `pn532-deep-capture-*.ndjson`. +6. Tap **Clear buffer** to free RAM and **resume**. -API (for automation): +### Session API (automation) | Method | Path | Purpose | |--------|------|---------| -| `GET` | `/api/status` | Includes `session.usedBytes`, `maxBytes`, `lines`, `full`, `deepCapture` | -| `POST` | `/api/session/deep` | Body `{"enable":true}` — toggle deep capture | -| `GET` | `/api/session/export` | Attachment: all captured lines | -| `POST` | `/api/session/clear` | Wipe buffer, clear `full` | +| `GET` | `/api/status` | App name, uptime, heap, Wi‑Fi mode, PN532 version, `scanning`, `session` (`usedBytes`, `maxBytes`, `lines`, `full`, `deepCapture`) | +| `POST` | `/api/session/deep` | Body `{"enable": true}` or `false` | +| `GET` | `/api/session/export` | `text/plain` / NDJSON attachment | +| `POST` | `/api/session/clear` | Clears RAM buffer | -WebSocket `/ws`: channels `scan` (inventory) and `capture` (recorded / bufferFull events). +### Live NFC API -### Browser memory log (nothing missed in the UI) +| Method | Path | Purpose | +|--------|------|---------| +| `POST` | `/api/nfc/poll` | One-shot poll; body may be `{}` — returns `present`, optional `tag` | +| `POST` | `/api/nfc/scan` | Body `{"enable": true}` or `false` — continuous background scan | +| `GET` | `/api/pn532/general-status` | Raw PN532 **general status** byte array | +| `POST` | `/api/mifare/read-block` | `block`, `key` (12 hex), `keyB` | +| `POST` | `/api/mifare/write-block` | `block`, `key`, `keyB`, `data` (32 hex) | +| `POST` | `/api/ul/read-page` | `page` | +| `POST` | `/api/ul/write-page` | `page`, `data` (8 hex) | +| `POST` | `/api/raw/pn532` | `frame` — hex command bytes | +| `POST` | `/api/mifare/dictionary-attack` | `readerType` (`classic1k` / `classic4k`), `variations`, optional `keysHex[]`, optional `sectorFirst` / `sectorLast` | +| `POST` | `/api/nfc/emulate-raw` | `hex` — raw command bytes (e.g. **0x8C** sequences) | +| `POST` | `/api/ota` | **Not implemented** — returns **501** | -The SPA keeps the **last 5 000** WebSocket events in **sessionStorage** (scan + capture + anything else the firmware pushes). Use the top bar **Download log JSON** to save a pretty file on your phone or PC without touching device RAM. Clear the log separately from the device capture buffer. +**WebSocket:** `GET /ws` — JSON text frames as above; send **`ping`**, receive **`pong`**. -### “Maximum sensitivity” (firmware) +### Browser memory log -On init the PN532 is configured for **high passive-activation retries** (`RFConfiguration` 0x05), and the poll loop runs at **~65 ms** when not doing deep capture — weak coupling / marginal tags get more chances to answer. +The SPA keeps the **last 5 000** WebSocket events in **sessionStorage**. **Download log JSON** saves a pretty file on your phone or PC **without** using device RAM. Clear that log separately from the device capture buffer. ### Dictionary “brute” (Classic) -**Brute** page → pick **Classic 1K / 4K map**, optional **variations**, paste extra keys. Firmware runs **`POST /api/mifare/dictionary-attack`**: built-in **public default keys** (subset of community lists such as the [Proxmark3 mfc_default_keys.dic](https://github.com/RfidResearchGroup/proxmark3/blob/master/client/dictionaries/mfc_default_keys.dic)) plus your lines, Key **A** then **B** per sector trailer. **Variations** add bounded XOR / nibble tweaks — **not** a full 2⁴⁸ keyspace search. You will **not** magically open every door; you will systematically try keys people actually leak online. ### Emulation +**Brute** page → **Classic 1K / 4K**, optional **variations**, paste extra keys. Firmware runs **`POST /api/mifare/dictionary-attack`**: built-in **public default keys** (same family as community lists like [Proxmark3 `mfc_default_keys.dic`](https://github.com/RfidResearchGroup/proxmark3/blob/master/client/dictionaries/mfc_default_keys.dic)) plus your lines, Key **A** then **B** per sector trailer. **Variations** add bounded XOR / nibble-style tweaks — **not** a full 2⁴⁸ search. You won’t magically open every sector; you **systematically** try keys people actually leak in the wild. -**Emulate** sends raw **`TgInitAsTarget` (0x8C)** payloads via **`POST /api/nfc/emulate-raw`**. You are responsible for correct bytes (NXP UM0701). This is **experimental**; bad sequences can require a power cycle. +### Card emulation (PN532 target mode) -| Method | Path | Purpose | -|--------|------|---------| -| `POST` | `/api/mifare/dictionary-attack` | Body: `readerType`, `variations`, optional `keysHex[]` | -| `POST` | `/api/nfc/emulate-raw` | Body: `{ "hex": "8C..." }` | -| `POST` | `/api/ul/write-page` | Body: `{ "page": 4, "data": "AABBCCDD" }` (8 hex) | +**Emulate** sends raw **`TgInitAsTarget` (0x8C)** payloads via **`POST /api/nfc/emulate-raw`**. You own the bytes (see NXP **UM0701**). This is **experimental**; a bad sequence can leave the front end wedged until **power cycle**. --- @@ -73,21 +124,11 @@ On init the PN532 is configured for **high passive-activation retries** (`RFConf ./start-firmware.sh ``` -What it does: +What it does (see script for flags): bootstraps ESP-IDF under a **local prefix** if needed, builds the web UI into **`firmware/data`**, targets **esp32s3**, auto-detects serial when possible, **builds and flashes**. -- bootstraps ESP-IDF locally if needed -- builds the web UI into `firmware/data` -- configures target `esp32s3` -- auto-detects the serial port -- builds and flashes the device +Options include **`--build-only`**, **`--monitor`**, **`--port`**, etc. -Useful options: - -- `./start-firmware.sh --build-only` -- `./start-firmware.sh --monitor` -- `./start-firmware.sh --port /dev/cu.usbmodemXXXX` - -### Web UI → flash image +### Web UI → SPIFFS image ```bash cd web @@ -100,35 +141,13 @@ npm run build:fw ```bash cd firmware idf.py set-target esp32s3 -idf.py menuconfig # PN532 Host: SPI / I2C / UART + pins +idf.py menuconfig # PN532 Host: SPI / I2C / UART + pins; Board indicators (RGB) if you use DevKitC-1 idf.py build flash monitor ``` -See [docs/FLASHING.md](docs/FLASHING.md) and [docs/PINOUT.md](docs/PINOUT.md). +From `firmware/`, with IDF already in your environment, you can also **`./flash.sh`** (uses **`ESPPORT`** or the first argument as the serial device). ---- - -## 9 meaningful upgrades we don’t have yet (roadmap) - -1. **FeliCa / Type B surfaces** — More first-class UI for non–Type A paths the PN532 can speak. - -2. **Configurable RAM budget + optional PSRAM** — Compile-time or NVS `maxBytes`, and external SPIRAM for **multi‑hundred‑KB** sessions on N8R8 modules. - -3. **Chunked / resumable export** — HTTP range or multipart export so **multi‑MB** captures don’t require one giant `httpd_resp_send`. - -4. **User-supplied key dictionary on device** — Upload common keys file to flash and run **automatic sector retries** without typing keys in the UI. - -5. **NDEF record editor** — Parse TLV/NDEF in the browser, edit records, write back through page/block APIs with lock-byte warnings. - -6. **ISO14443-4 / Type B automation** — Higher-layer APDU helpers where PN532 allows; clearer UI for “Type A only” vs “RATS/PPS” paths. - -7. **Wi-Fi STA onboarding** — Captive portal or dedicated SSID scan + save credentials to NVS (today defaults to AP). - -8. **Real OTA from the UI** — Replace `501` stub with signed `esp_https_ota` + rollback partition sanity checks. - -9. **Installable PWA + richer diagnostics** — `manifest.json`, icons, `theme-color`, and UI for **error histograms / timing** from the PN532 status path. - -10. **Magic UID / Gen2** — Not exposed; PN532 is a legitimate reader/writer, not a UID-spoofing modem. +See [docs/FLASHING.md](docs/FLASHING.md) and [docs/PINOUT.md](docs/PINOUT.md). Limitations and scope notes: [docs/LIMITATIONS.md](docs/LIMITATIONS.md). --- @@ -136,6 +155,7 @@ See [docs/FLASHING.md](docs/FLASHING.md) and [docs/PINOUT.md](docs/PINOUT.md). | Path | Role | |------|------| -| `firmware/` | ESP-IDF: PN532 transport, NFC engine, **session RAM buffer**, **deep profile**, HTTP/WS | -| `web/` | React UI: Dashboard, **Capture**, Read/Write, Library, Keys, Raw, Settings | +| `firmware/` | ESP-IDF: PN532 transport, NFC engine, **session buffer**, **deep profile**, HTTP/WebSocket, SPIFFS | +| `web/` | React UI: Dashboard, Capture, Read, Write, Brute, Emulate, KeyLab, Library, Keys, Raw, Settings | | `docs/` | Flashing, pinout, workflows, limitations | +| `start-firmware.sh` | One-shot IDF bootstrap + build + flash | diff --git a/firmware/.cache/clangd/index/app_net.c.8976D557EC300024.idx b/firmware/.cache/clangd/index/app_net.c.8976D557EC300024.idx new file mode 100644 index 0000000000000000000000000000000000000000..c045a06d22e3b02e806a563adcb8185957f50bce GIT binary patch literal 28100 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 H2=o5{kpKf8 literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/app_net.h.379D685E6D39744F.idx b/firmware/.cache/clangd/index/app_net.h.379D685E6D39744F.idx new file mode 100644 index 0000000000000000000000000000000000000000..d815fea35b185091e94a03423f8d277cfb5d180a GIT binary patch literal 718 zcmWIYbaOk##K7R3;#rZKT9U}Zz`!63#Kk2=nGTE$3^qWyiaDhLf!>D=1m5|-Jj|kg z`<$=Ki`h9G%`Ye0O*h%O>&%yRDw(0jzTMt?E>hj+gzC=U?|#2~Jn8hovRR^M^ipr} zPIg{3)5+&+)Xy(oc}gX_1FdeH`=>Dbz!djC9kRaX0$u9Te=Po@Q#xbCu5+BpaTQ^1 zs|7yuy*YiTYnoJ^liZeHYoj-9^glH7*g4-to0qyMUR0BKCA0T@a!^#eB*U7Vhg1Kz zux@*?!;QaqotA4_D(C!G`30PEb95c7UDq4zW%j;h%BJXY*>}d8>aEio>>55wtMM4D zeEBWStnbq2H02W?Hkztttjjv6*|tt)+3K#9;)v-aycn|V>c?k&wmA zco^6r@(hC9tlTmToXpG&Ts%MpiLUQtX5Cwtz{9`^Q^3W_1vG($kwJ(Ts9@qJjp~PH zJ-2umIA97mxj4nZCV;IdN=++X29%0Dyy)4}30ruXcm%l=xm2Nw8F&P_8Ms054+by? zGjc*43KNGq6DSOJ9#k0SIG`}tQBYx+lYqitr$B{&W}KM1Kz_n|paVD=I5}aecm#PE scsOAe7p3MTg47omB^N7$7=nf@Cp^D92Hay3;Aap3i9i59jKRPF0ALmD0{{R3 literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/board_rgb_off.c.E5DB1ADBEB9F6D6C.idx b/firmware/.cache/clangd/index/board_rgb_off.c.E5DB1ADBEB9F6D6C.idx new file mode 100644 index 0000000000000000000000000000000000000000..0bd47d0dee43817850a54d4560c84e1537c30c4e GIT binary patch literal 2842 zcmai$doWQc0=Em2WKqTkl-jjZ+xz`_pV#@A8ygy;MIn&=F2*5r*8oQ- z1OmbE9{&KpvyDO!h>;=$5^}A>=A`$i7HZLK2YhRl=$$(c-^U9?KK_2DWg(-EsrXJ* zKO^&D9Jx-xb@NL9MC*Qz>C9L0D^neX4E2epJ`9#)=Fq38+QNUaVvH_WuDBcQyXq+g z?lPjMw>U}+-{PKdoyF>HuMz9+np_Il=|FoOs3Wy|YFwS!`jPoxpM!Ru%lM&Z?+Mzw zBljHWTH;o{xY1|GtzUU4#_f1N2TjGXqWZtS?A*rPCXv%W+O<@<)**C0_=n>~)2Xf{ z0SfE=Tvzk5Q^TI9?C{X@K@8?Hr*PtaIRVGww);f);<*+fw5io^#>?u@e-i-=MM zb>9-^_Ozx9OOsQ+GU^rwuet3w<|_1MP+H2Q2pV>g$`0=epq;!$XwN=|M2%B+Tt4vp zd8cHVhdGJWMwuN>Ynr0&^nx^Cr*u{I3_jZ^y-&WYDdLzYu|;|NM9?ehV$xf2b9-Mb z;>kQS-fuwN?pr#Iq|knbT4Z8g{zT6jJ4CjYR3_6&R6B-&+RmIP2E!&uPigvQ*6HD+nnNQc9!s=Y~+{PM`Kdm_r*r?XRtBwX`Qhk1HJRd|0TVgQByzT4}6Wc znR~i&dZOcEJlQ&AV`Ak6LxN&;fFSWXO})5WZB9fu`B^Bs#ob12j+&#w_JMC~ zz1P1Z^g3r>8P}@qFyZEzM=jc=m3l%N+h0vL-DG8IZpb^ah_jBLiM*A(Q!w&EJ!R8HmOP1B4mJC9uMzotFrRkXVriJW`VHB)GM?5@ ziPe3BMOI~E`_w8Cw%-%IO^2G1V!E6P_CQ@V+ZZqnE%;YC`)L-tN8QPJo`|6!w*U2;7suL*uP(CO9RZF?SF;y7RF zRSoq>Hfb8o>2utl=M21H`xn;@w)8BGcp%J5$%-G;Vp^J^$pxhoD4Fr*ySQV9(4mI2 zE5Ro{PRit%ddd*oiYP;4cK2G_m~7^77+lk0#oVO-@vuyLP*z0=qR(}5jNxi+p(&!* zMyaXrRV=3#4LemOcs=c*b~eUce~<|H4s2z?o5eSe=GJxFI~7_&Tit(XEBUfl3IxWI zJ7WisMhQI(`whn*7&J(GHKq*y%&}Uz$;`Uhw45S5H&Q~djd--7ahrGI<-n5%dt68E zz>51%*&kF+Ez@W>c!s}%t-m?kUHWuZLSVTdUsSNND04JLT_2#9ygG#2n{dqZnbmPP z#a|#4?*9rlS$A6_+Ur$QaC3;@Jr@H@T4#ji14cfE$|^yjFfR-{D_+NrWrT(=-4-(K zw^#9$irkg{!A^2i_-sUqp-L;w<;XSUKiV&Qfob^w2ig1DA%Qn2Z~YP`(|ix5`5AmH zi%i+Hlo8l4Pb`6ZCI#e?vs~o{a}SGz6wF)=`jS;z?!p?-HEXIwHv7)6QFKPE>MWwW z*f;35s+=L3s+V=xj=i(Bw!!HYxofumMznc1&WNUF>iC+ZL$ySMqf^|4B-uK_-M$lr zX(rok397A$T*%M1sr3tTsOq2l*h3HNB~|@PwdkwJ)#5k22_8y!qVgvBm3Zen0yIwy0+InhAeRA{ z5KJlu5EK%Wg1`VE9moZk0FVO+`MJ9J{}6;g#>;$H&wD)<01%e}dAK|QjGwKWt`fp9 zk$jGZp~XQCz5)3EbMs36T6iC49ZR_Z9N%9YCXNUFqS&WNMIyK5`5X_!ujes79#Kx4 zyShby$DvRt5zNDrqEOM_GN__T%}Z2`AC84#QDEA;6FvKq=JC7u;b;RE(5+SY2 z)ra|2rRhF){BV>kN)-%`si7@4#z5SEaTsd-Fkd*x?JvIF=l++pYrxZPyLUPve{q|e z-xnU1<9UH!MG`Ja0;^9O#}d!2-b&z~i8N9g3vQMtiAdtQq%XJEd=B?c|4S7Ujuq2L zaPOtRxD6Lsg-7Z?%i$N5F_y6go8d{)E|MWA z=SUb*0`#{?M{2+OhG^n*JO(cV@)Z4ylp03O13s64NuWU+L4F>n ziEkp6k5h*UYCtM;in}-$?I)!C@LNw+{V~{3AdnUi}ijyI`Qiec-Q8SljmO> zP=@}8QBD=kp7_-~R)PXH*}8mpyCRFu<#RL!EeG;}>hwo3&WmsP9E-s!g50XpcBxah zb(+t`;9{~MUq16VE1#JDiO&g8f*8mrIYtRicHGZ=j({T8Z@ZtXmm|M7e?Mn`bH0(o z8yVor`oq5Rhn@M`7Q76Evtdc{ZxSC0W%Gtg7LW<>T(f_BIMZFc3V9jRfHWW#5QGW| zZxDgOMP1HVA2?{JZ?ON+7A0ls)@>?>P3>$?nHU*s?$SVOY43J&b~HPB%>0Cv#c@m5 z%{0Zmy8HChc5FXsuj+|7t+VHdgPXgUI7$Mkz7s2pBTHkXNH!bgCFM2|@d^YP%2|&@ zAnF1T84bh$=fgtj=Xig&zTUw>J_*1@z$*@j2xkDXKs=BF1SSEOfRJQB;2+?B87W`c literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/board_rgb_off.h.8BDAE08C64DBC352.idx b/firmware/.cache/clangd/index/board_rgb_off.h.8BDAE08C64DBC352.idx new file mode 100644 index 0000000000000000000000000000000000000000..088d8a4b398be0d2d10f8f77315c4f80c555375b GIT binary patch literal 334 zcmWIYbaQiKWMFVk@vO*AElFfyU|^=Njt|qNCXP)rfXO3Rnag~Y_o*Y@# z{ynz1_TGbcA6GGTHFR(LZ_{WLz_irEOn6UD{Pl!?O@80kbwAm?e&)&<`(k|_c<3ta zOTE++XRi`?jMsYWujc5&tMaDl<(JMYFP*e;`p1OjnwK7$oqDr+g`{rjWOhB#iOdhD z=;_b;-M)M_FWa?`x3wN-SU&vE&zWdD!}Z4O_|sLs>x(OMlN5n|nc14WhRG*en1_KG z$O8dZW>#hi22MssCN>sER#t|h)U;x8pg2q=BPT=!STT?&O3g_Gv5Sk6i@8Az)-TOH MPv-}FJYZk|0G-Zzm;e9( literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/jobs.c.32B64D759D53BD2C.idx b/firmware/.cache/clangd/index/jobs.c.32B64D759D53BD2C.idx new file mode 100644 index 0000000000000000000000000000000000000000..c8ae4bb6b0c47bbf33c9700db72cf0f4e2c1c5b1 GIT binary patch literal 2384 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 literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/led_strip.h.E0D4D2D09150BA23.idx b/firmware/.cache/clangd/index/led_strip.h.E0D4D2D09150BA23.idx new file mode 100644 index 0000000000000000000000000000000000000000..d42c653b54139b5ec221200712671cc1874c417f GIT binary patch literal 1938 zcmYjR3pkWn7(OQ9AHPClhU7L`kxO{&uQW>1PeLwJVjAN%a!Hm!7`NJKMMM`iLewUe zlp-NUF-lCr+NE;Yt({QPRVeJ3{F(DS|8vg!{qOgl^S;k{j_Y<5O_K&-tN-?xP-di$ zBmiKA@MA?r1kEi0V0JkGG5J02gJI7Q`3cr+8hbcd(ypvGsLQ%BId-a3<@3|~BTsF! zPdXvy_5{1ua+k6scIG9!95;QZE+TEld+PXu@l68>o1WHNP8ymiu2}D`3p*ICYb2tA z8;sLBOA53#Pe&xOZ`j_eF(zNL{uWh9GZ~J4Bf&jB^kLfZ-SkCnOO!a@1+rnmHckIszXW>m{uT%8?qADqwX zg9D{+)on;_?{zB}m6z1^)T@s?VM-f5iUh4OOgl+L!&Su>eA{pZz*q{?rG{AO2~(f=>&S6A0J3=zrW2yt9NsW zbz#1mMp?JasH8?~Si->V(3rTmVSh!){ZsQWA)oz3`c2357@vDToU69uxm44>*ZH!= zt1J^KWVfp8`rE5(M{C`4Z|~yLVt(%qGEV$_z)Xc9d12%j`%wSMH3csIPS)0~%ADM6 zy#O9Db~7&S!7t%QyGh(RXP%4wV0|c3=~393rIq^r!fI{*T^vTLukDVyWfP47(f8x~ zTWV7rRD*JQj~flBeoUNU5B6D^_YXyt1mf$y9$(|;8laG*#>DC8jSZRZuHI1=^tgkE zi|sOebu!x4f**yZaS~>8=v)eWld^hErF7J9CvKLH$Y{vudzU4f$s1=bH&3&1 zofEk|ikG@~!{}p+I>kE=OXaWb-BXvr->KPQk(}F2*tU;I+Zj=vKA6Pqtdt$21$1w% zs6NJ?YrS-co70)^Uu3L%Wnh+l!*52uFn;Cq#rCvQS{rJdfPg!p09J>&(Dza2IdktMk6QZO-fxbpo8x9E8!c7T zl_Wo88c-f3XuoI)M}4HbzAgLX$IyE zW`$BVL;S`+`d3b#bE&G)z7n!ABI#FJbov!$?&vvMSX)O*XoL3w5^W}cXvAg!;*qe+ zfE63++ai1q2CjzB#O;5Gg8@m1<_Cd+XQ%*3R$4-SxddUU^uZ~O&y)Zs7^r^#4+tn8 z)dCPKBPk+0<2R2KncPT)!77Y^;1M!_mf@vDgw-l@q!ddk4+bkS0vS(M1CSiFR7B9O zA5i`0>hni1P{s(s_+Zlf8E_&(qD9-pe`SvCFi^n=R6JF6p0Gqjh+qb=Y;cQiB%tpu z7TDI)Nc_uF&$dXw1k?egVwSL3$QD^zVB4Qb^=X(mnP6x0R_Vk+=qc9BNbxRmf5fDDQ41rSKA1)vbt0u!i!3Sll`0s}Ch zAJ>x*41ysnua|vxDZca<@8-qT$;M*htC63@#L1|cnD{EHk(l^OhJl#4a`0MAJc7C3 wXFgh1gdfXRIO7NzXtaR$S8@1K1x2M5M4-43yl_%jT>iKx01y|eN{h??0e9c{rvLx| literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/led_strip_api.c.80D59D9DA237AC7D.idx b/firmware/.cache/clangd/index/led_strip_api.c.80D59D9DA237AC7D.idx new file mode 100644 index 0000000000000000000000000000000000000000..31a26d698b3aacf20ebe59eee3968b6afbccb45b GIT binary patch literal 4030 zcmcJQi91wp8^_NumKg^b%NRpK6xo|*&>-tD8cUe6@5_uOX2vc`3qr3@C~uLikm~iL zMY0rr*;0`$w22m(;-`eX!+V{~`v)}Fb>@0L&-tGFe(w8xpYt5BwzO;z1pqUD>)5aW zmJb{N0CCR6WHD$&0RS-G4gj%5gRUNj$MERIsAN8!(0#m4)HgVqPfH82(>BW>DsV^G zEo|16ofkDMklQ6Yu?>?C%(~LwDW^)D04W(GWqFPpUoXBrgwp5z}F zD$DX!ji>1=C+?JxzJjnJI}%h^vxDXGOc9>8}LWrVSj65O2;a zWjvLQ-}@h#`Eli({^`meXYSb&F6w5h=vtQ_J#DTvu7+(kPEL5nt{E*YKZPH{e~?%e zIdtqHvY4MIsB=!p!pe1TpmcUf%~I7oSmm+D%;lk{mzECBbQ)uOGZD;D z;7WIs(j|j8kM+0sEHlf7&Mds>s$JYkh-|nJ;YM~TKO@*DnP-r*t188m1g>czHD(hj zOiB9n;eb{`g=Yz+@!MBj_EPZf_aPUAzQ_1!jca5URi2Fek$LB2NyeB%?>v3tqz88B z_#)-7-n|r`wJYev&u3hXv)N(C?0G|6xRK=R%7d(HMiS?n53D1vs}UACml;f9PT48dLj=XZ?*yVbb`UmD$+k zh14-`;(fWOmpg-`qsGwV4s6;$^RZ6v;W*>kxFc)ShwtB$J_@n4XNMdkqet19c`Lhi z8x3CTyfW++r59!m1I1MnRRo_X#_uGT4a+$nBk#AcG6)DbTT!|Ng+^$ghtEt2^pH7;r_EWYe zW6mlD=8`{8oTwVOk1P$T21#OdsR|zak*DJ%<+|GPB<%F@Y*aQp;QKArb{Zy5)5aNf z`4;1&&^II7=f}x&Vre%{T8mmT8-V zuiC59RySdWV|4NOL@9gBzk*{)!`?Sj)qAp(PVF$IKTKPEDZKTB&#AEL%=|#f5%K+b z3oYLZ#uE^>Zg#Gc8qLX16H-|97Ee=Rnx%Ps(5HObgw~45;W?-a*{ok_{7a){v|OV% z$5T+d-sG!W8^&nA&^NJ@6!&T>Y@^v~-%N;&?*I$K2b@BMa`zpv3Z8ydkJc66-K7Lv zFn>k*+;r-2?#`MxM82=@+`Nwn(dC!vCyV{{)Yiu0n7r;hwPq#pL+GbR5%Ii;r%4s( z4#$XGmDBlZH!;wXeszx+CUN}Y--$X)9ST!Ty>(0F#OOF9{p*B}ohEPZL`JW?|Iur9 zK0BS~@gmh`QRM{DX;t>f*TN`b{pxVt&`&i~WsNPJFxxFdTMX%z^RM=vMkbdVYCA8R z0Pd~$T7!XBykrz6=@uLI*ZGzK-=nmjNqh(6^l9YBLq8Y1huieWU$@5Y7!4dvqRY-v zWZA<5t)*2>p>pHN)rA=vwf6kGMw_3%3+whZR9RdLM!rq^)@C)e_S0eP+wxnytM*`w z+Xp(TkG=-*Nw@YhwP%=-)gb5Cs4%N2DW$;f3_V00#p$ z3A2VyHFRnRfmn_JM1pb*MWmt}fDlITZ3wnEO<-SFzw82mXpX=I>4Ij^k#zL>8hADY zNe11EQ#F(x5QyOjC`byH;e>R;t_yfK1gAxHWsFyPSA>C3jsPi+l-l^?)c3z1BOs7@ zn}4%f7;>Xj=yr5hGt9o=iV6&5kx}GrP(_~#@T=0t*#v%&B_c1P3#mbtguDb7S<72< zk)6C97dgv2bCH|8+ixYv&LgLm}ZT3Ah9rdKS*IhFhbd65%X6 zxE&hmFP!BJcSb{&fV14-ZfGbt^gO3^>n4DjG2|s@R#EjN=#S+51?%bdm?6ggk>II6 z9({0f_csGuho1%lz5gd(EMA*X^YDYz84 zNoY8li=^SwTqFaR;UX*?%SCcKp9E$S4N5xx0FJQV%*?lkMzn cDK?G=_WSu;dAl6)_3{aJ2n=@$5)A?V3m4m8CIA2c literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/led_strip_interface.h.8B72BB2EE00CD58B.idx b/firmware/.cache/clangd/index/led_strip_interface.h.8B72BB2EE00CD58B.idx new file mode 100644 index 0000000000000000000000000000000000000000..41e7163f6e92e381487ec17206cb6c17de361db4 GIT binary patch literal 1066 zcmWIYbaPW;VPJ4h@vO*AElC728H9njxTGjknvsFwC=gf7DV=EO&uqxkYWzL?&Y>Gp zT>?Ss0o+2D4zd(a*=?~_ak@*{y4I!pWrI7J*_K(nSDha(W1O95rN-l1y*+b@(bTpe zSH5+}k0mc~nOZcc+${FSYBFb6j=ZuKO-awO|V4`Sq3y4=h@;`t;L1T2Fel7EH1H$xtiT^=sv+ z=_#ewPfQH=tEBuB|26l!Vfm~1y64Sz%C`&qdb)>u9eHf^?BeQ$*9+FCr?`hs_h5V| z^6KBim)lw$Y-D7VUsT@}+xu6#H?XB?YvA0=A&IlJd}hrx>HV|#+WoItsS?eP%G@^G za(e%ZF*vpIw(J@8uM3wPW+<-AO}YyVtJs8)y5~t;N^A`53=C|-?7~7|f`OBP0T_CW zY^-Ic_A>^|Sfs|sz|FzHW-MSV2PPOefSQ58d8_4~nVNOBd<BZl8)%G%eTh7P836ypca1sX-FzKU}H^qyjB`@+ZFaf3g z1pGw71Welg+YV12CxK7gV7K#0^Qp0c2$0)>0O)pxqSUnF(?EZ~e96Sa#>dYm1=Gj{ z@hez40|U&bj9g$J!t}s=2owf+4<-!r8BiGHEtoLOM?hhacVNOWp8$nH-hc^nt@&`) zX4b!FoIGqw`by?7tAIRvC3hsAuTm%yFIFiP!80~7wt=~vht1f<*awLhWE_RWOES(v z;uRWK!gxP3PE1`OKjA$q&|(%PUL?a=jCo;-c-Wj+oOogW<6-k-@#BSgi-#?eC6X5w zB(UIR-nLm3$kZcw1~H5Y3wN37P47A za<#)JC9U-673LoWqc*p4Ezz2Kr>*TocusJ~$>=E?^%}IecsstHjcYfH@8{Fs|DpT5 z3$?7rB?WxBf1V-Bn)whiTWhJ#Fj%Oa1WN#BT@bGhKXrMt7HnF;o4|N0^uf)Q#%z_xP92(BY_&ne=CW3L5Vv)*yZnqzLCcvUI$Ae{DkE})yS^lb4 zJ`@$Y+O~x?OfhV?&~(w3wW4zU)sKqq)EEEBdyrCW?;QIyE@W!k@8GvVjnXsNxR12# z?AnnL%9JfKulL;V2kb-S3fmKD0Yh;q{Kz z+0XJ4YE>I^_8G9q>(0wo|0t#7+ZXJ+VcF%Cbpb#AsP7CcJjbnkLSMnp{~|+iWp2`4 zV0x>+nxL?lW0f2qg8&NypCX$gH<)1H0LlRYPuaQ+MmgL@d<+~wX=!n3IWPf}ekJRt zVSG#2hL1r6C@sS)BLya4(jPzB*Hq8QZs2ARVqoA?Vp5U-6AYXT48SDL$j2Hyf#2%I zcb;8*45F+IdcX5`_MW|0K>+|0_L|X|xbNHSIwl@I9u^)@)&>I} zJ_!~HI1d&;Ok9wFfh#ibH%Ntf4;Dy33qTo6d^l?}>)$h=A{iDL9+=N~_!Kx41YphxJ0AVxxZS>2 zz(6z5G_Z!*_cP oF}Ohl1aQF^3=F&oCJ%zi4`(v*>AeiwRZ$hcnU#y1pNE$L0L}!)XaE2J literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/led_strip_rmt_dev.c.CB33455CF41A593B.idx b/firmware/.cache/clangd/index/led_strip_rmt_dev.c.CB33455CF41A593B.idx new file mode 100644 index 0000000000000000000000000000000000000000..09eb15db127175aa6df50cc27b09e44a9e7d009d GIT binary patch literal 7364 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 E09k`?+W-In literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/led_strip_spi.h.C0F97F46853CE2EE.idx b/firmware/.cache/clangd/index/led_strip_spi.h.C0F97F46853CE2EE.idx new file mode 100644 index 0000000000000000000000000000000000000000..e96aeebd1d2003a8f3d3dea6acbb3f51c52042e5 GIT binary patch literal 1282 zcmWIYbaVT~!oc91;#rZKT9OE4G6(~4aY<3;5+(+QhinWC6?3kJ`ua;73fwKOYvm7V z)q23RO6%#Bjux#fg+Qjg>tx=)S=W7i+p)4m90&8?zhN`0;l2`FeDlqZv(@Jxi>trf zAkQ5#VY4ucU_);^^D}0x<6?)LkF81k{IX-N?=xjJ??j%AEW>FFYGu8oyC)e`ops`r zo)X43w?K8W=?!XD(u_43${8`|S77Oj8r4?iVvfo)sr>-`Ez#q*yFC_v-_G zE0wn_U0sAtM@%2~Wd#j$F;ogUApUw)ZVW++qBVksp*ceBKbKPevPRW5CQ zc+-7HF3;D+O{X3`4xIDN{c*W*W%R*V3xc;fk19`i0p8t9wSt7k!YF};kgX4R33pO`PT}gYLrhilP*sRi2&2J%HMsL1W z>5Ij)?K@sEeed<+>3cKF^(XEPRQekFDp2h~te3OD^Q6l&zgRp^-s;epZP%ch@tWah z=US~tl9xjZ64!pSsd^HnyW`3skv|`-!`)uZVEnEatR^!>_vTXeFE)qmuQfbpKUZUI zcZ=VpXepEW+uEs5V{V&8or*1dgR-Ay?J#D|A$>i z{(78y({#;VwpKRc<{zJ0-D2%ImkX*F<(|oCyp`Z75x>fTe{Io&-lLZ>ZoTTI zP$0EZW7gx^43U>T=D`dCeB)Tjv??=@G|Q8npjH zyyvE%g+80TRO%V;SrxbySLP<|1E$%76x7saS=H%0h3-k`)>OQ z^O?`N83chQOEO7HfC&ap1_oe80UBSs&a5fROyCC}13yr|1e*jmn1JawtVr&=87BLW zk3k41Eh;7|3npOFMX71U%8U#Qe;JIq#Mgx@G4k+=u!xAk9c5kA#<)0E4Ja(iA}R_q z4CZG>PKaM2K4F0Ql#vVKL#Qy!FrYBVdr(mZt~DRd+RXa*3~07EhqwStGt9$GTo8{! zmGkgw`fH}bEDk#!{o}aZzE?oKnwpx{FyWsWC#EitpYR?e%%I5$6Mk~jqdh71@duD_ zv1ThHOdJ+;K!<_C4dyVIFM-0K@PY|56s6`Qf;h!R$;H+n1`mjU0Jvrb1}>Nw0~7DZ Wc`1V8Cy(4^;o|1uW8j0!FaQA4rqd<> literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/led_strip_spi_dev.c.BDB71DF8902C03F1.idx b/firmware/.cache/clangd/index/led_strip_spi_dev.c.BDB71DF8902C03F1.idx new file mode 100644 index 0000000000000000000000000000000000000000..8eba94c216a7871511891e3e303bd673262ba982 GIT binary patch literal 8562 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 literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/main.c.B516995A6C0A4F7B.idx b/firmware/.cache/clangd/index/main.c.B516995A6C0A4F7B.idx new file mode 100644 index 0000000000000000000000000000000000000000..9d8cf81be227229f8a995b26ffac8ebbd9843eb4 GIT binary patch literal 2394 zcmah~c{r478-HJh%$PBjXtHEVwz6atvhOj3I41j8X2zanMhKC84Wk*FvK3`%87ex5 zL$>d9NVZP0h15`rLX=Y9Oy4z~zQ5ep^*q=8yWijMe(w8zpX+@ctt~Abp#We;u#O2O zQhXo)0En>{nGzY8zy|<^3IGsux!=`>JfQ<$w|`9`(_>$&z^k2;4JQTp3&(duZT#e}yt|?>Y>|v1s_eJ9`q@A5260Cf2B+f^6cyex?qgvV z*@iyWS;x#0N6`9bY7R*YQeK6NWcNN*(SLdJabVaJ-B#e1)xdOrn(~^nWdRRisQP7h0Yy| z!N2X6oZ7Q5S-d4)@a}(}yZn`m2yzgDolDn6HkYCbK=A`u?Uu)?L25~r4pL=1WZ!;4 z)jB|O(EGm|yDZKq%+2FutkU%hyyd9GBdl2zkD--febMKx96LmghpBC(`(9CB^VwvT6D^{{3%;|qmt|DEBDmA8qirp%PRTY& z*u9;3aLG%ctV^bAaZjHApVkbr(5^3&lnhc?-zFj6_rPQWVtZo46+c>l0 zdUtdrp!#iewjbf0JZoi_QsMn1bKTb0D3aQi2fym^B1Ly=9_A&zT|zD z7G05(2>0B2n0w;dMDFd%*r$Jj8tg?yN;wi|)$v;XPTMM$HrRY93fx<~iHmvwLTQ_UF zhAwYp;G=%!ztU1|XSY`)QaB9lAi3XCCCqHBLkTDjKhm-yoQ;fu{N!B*wQD(fi3dSXtOKiMh%xR zs1T#A`_z58`jnF1g!96gNIp+gOetaV)nzEmn2*nB<)wHojB$_ZsN^b~=~TjNkG|zh z6fo!2o|@>9VjdC0Y8I_KL!l;$4(S6vW+85_MVskJ-(wQ5KU|W~F=*=7%eFVyb&|_nGSt6+ zyn5Vi{?8E!bj7CCvncctv&3wpJ0c5rlueCqx{fnr^8(z7CvQr#zT1uzxCd=1^E{uZ z537(l^WA-ZA>$iwJ|6rOOW24oUhU&u9`K(|StpcJw7-^11|%pP$P##Z3)B9rSC^`p zhOoHyu%LIjzqzMf*%Y4J^@5A$l1A!NFs^s&I14!)BJAm*anM%@L~`Kf$icdhohwCa19g{ z9(EiKfpdNWKa359AVNPOw-jF3{};ff2_giAx!Kqdi9r5@2N?1#nCX9x^FY`%h#;Ix zV?!ha`4f)fWz4SC4ftsn@@hegq{)A_kr%Eg#m#Evj&tNfJB83(d9~TbOz^68GfOJkV}}m6Q)C9#m1q z9`|r_w?1ZdMC-7K_E8-lUvE2mhZ8twN2lKi3O4fk28Ko&htym=)q@1_db+k=L=v2R zU4<~3JEg?;?iSr8>xz~Ulis&SLJlRlKOis@Je!!11fBz9&%}g;Mv^1KPo0hmO9wN+ a;1n=EE)7fuQ^6dNk_8rm(b*uoIN-k@cdX6; literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/mdns.h.F79EBFE9494D08D5.idx b/firmware/.cache/clangd/index/mdns.h.F79EBFE9494D08D5.idx new file mode 100644 index 0000000000000000000000000000000000000000..e393428d36f55760dfbc74aebcb02e5fe5440e75 GIT binary patch literal 13268 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 literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/mdns_browser.c.844EE27ECDD370B3.idx b/firmware/.cache/clangd/index/mdns_browser.c.844EE27ECDD370B3.idx new file mode 100644 index 0000000000000000000000000000000000000000..a6c1d47b0ef9b8eb66ebcb0906786f18697bc36c GIT binary patch literal 16996 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 QZX& literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/mdns_browser.h.4C9C0DA24E273588.idx b/firmware/.cache/clangd/index/mdns_browser.h.4C9C0DA24E273588.idx new file mode 100644 index 0000000000000000000000000000000000000000..8cdd3713c016cb0322d8d313d0120ba790b3eab9 GIT binary patch literal 2028 zcmYk52~-nT6ow~A41qz!AnQ!9O^5*k2%!Q=ERe8esK{1jlN13PM689>CXr2>in6o{ z0WIPJ5sOL@LBuK*5L7$?frL-kh87{rA8BdlSm{^Ls)7 z0A2!LoRTPt(**#4gg$Aa)Fj0c0H`zs0CCy9P0?RHSZne+E%Sz?BinuQ`psV(B*>u( zuk7vgl8XaJy^8#u%?|VhAZIpRY|hA$Cj=fUtAwMrXB+m8vKuF2Ot#i7*?FN>KPtd~0Tck+g3HhXneX zWLzo@eL0jn-0dhE0>6g4$onlgjN%Ax%jQm7U4zN9ho_LdTfFJ&z0=IR3kK)TQcGOU z*so7iCG49GN;);L`|62h-HNLF2u9Jde@yNJeSCtX0dWOxA(_%xyB9_qY}4ba zf2^x#ITbGrtq8`$l*u|=E|s;MMk%;+zUm)4DW{YWFUVUa$TyWqV^3H;ny;acFxoM>BArB{;(*$Kh{dAw*ty6E?gremB<|BBuXP2PKxuUb}`+dZsEVb_;^|;Z~!nlw`*K|HHQQOH1rEz_`y^>l?)I~ zml5ceI2eCkWcjAn0&oU_kKX+cz>pC{1&C%wI@abW5GLi-sh@#-5TIZH7tf^tL=zCN zQFstkSllRQg@eGy7(l|4ECJ&3P!0I-9lXuW~^ekyiXS9Fgd>1UJ&MO<%zMr=-|7M{WxrLbI9|lZUCnVkDB&} zf-%z|Otq%c-(N_WoygwtfgY9T@PVEyvJR7D(c|(Q)>k#5h9CekT$E$kuv``exKyt5 zq5$89?}7<*SdDwrlts4|=C@(HVq2z9+paUdLA$-68x5r_>ar#5JRC-$le+VeMPVcW ziNb`j70p|79kqGuS5J0vO6NwFfH22~MG$lshA;7D$qGATmJK KQs@FLzWxs@{tvhS literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/mdns_console.c.4A45177451EC0E51.idx b/firmware/.cache/clangd/index/mdns_console.c.4A45177451EC0E51.idx new file mode 100644 index 0000000000000000000000000000000000000000..8c76c92a3ead700c86f60b401ae2eaa9fc579405 GIT binary patch literal 44094 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 B=<@&o literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/mdns_debug.c.AA7109521C3B6657.idx b/firmware/.cache/clangd/index/mdns_debug.c.AA7109521C3B6657.idx new file mode 100644 index 0000000000000000000000000000000000000000..75da87ece9520af9629facc477ef1e0dd116fb6d GIT binary patch literal 9776 zcmb7~30#fa`o~+(yD56rOQQxmNkkJuk)c!y4U{pGStz`v2}fz5D9JH4Xp+>)7$Gi6 z#*|QoOqJTwDP_o%{MY8J-sRrU|8qar=Qw+R*Y8>LTF-jc+NL?!*$vc}k(sdAA<%n? z-vW`0jEoZg>+8pRJ;qR>DI*h@cxToN-zVl=z4J}K`aThI4pj*W)uHeDE$QBO%P#%< zYB8&B+Qk?K>Gi%c=ELesD(YZ%KV$d(hHX1%798}SdC-4}hTL$MP29Yl4nKzK9+W+` z-0Y&>-jTZ$!)8nFc)kCS_c++~$lREMheZvm;8=Rc-N6CR^;%yvy=reydKi^CX6XK> zaXHP!AvWnIVNR=qEwtuobst<@(Ad0>T^6?K=BwJhxiwC5lU^;f{Cc;bpr5$lpzNy^ z8ZpiGX8Zh(jdfZU_Weu3>xPEgn!OxXFTMD&%5K4k*KM-H_|cm4ipm0?d{Z8NSMJ3u zAH${fIWwNtEKPl$e0t~oInU*{oHL5^G;s3sxO{5zaU={r(+jx_u+d!K>(Vl*NZs{vd4O4UfLpFHP%*s~JErb3H3!6E< z$DyODH$tLc+LSsj58U=3KHDV1+Q?SpscYMi;}5#+wzBWAT0ZsBoc3TFSGO-#aw}Gt zk92ak3@`jUSR>W>=|JQ8UGBTaTsvN@7&}<=LBCD@F-cZ;7mhD?TYUQSM!D%Z>xVCW zxGQ$3equ;b@6G0iPsWa@TL5?D9p+^_I$4{{^mPi0O@3fCC4O?xGwsP^+Uhb?xmCLd z|Iyp)`*Hnlv5l<<+FDu$dG0%~*uzBkL#^rMXGe1Tzm(yM_fEUIV}Oy&pqAQ&WtMt6 zib|de`3cdBWQc0}mqK~7(TveWxdZ0#|8ux0s)xb}==yM`X?2)S{|DmSj( z-T6&?p-8>8I4Vg#K-aeWNcT%^Yy2K-*ShW7;LzjxS_8eDIZty;_PE*(v;R>2{q~xb zwv+5j|9HS|x-__A%jJGXnQ^J^gQ_coZ^x8py2gkTQ(JP(YO+gu>iMGN39FBVuY5K! zx$iY4haU3+er()5ZMSM>?Y+LYwdc6>YfozIwmZ))YV@3x1Eccp#rJKT5&zcY{Qi@= zt~a(QHaxN)B;xKSj`q=z8#{lRopzT^@wcA++3kRVcapu~zT4|G_B@#R*srnjU%^gF z={>I|N6Y?sKka>*Qh8x|M@yH=k0;aahxhN>v%|$a)umlL@~g|A?=1~xytwIkNnuH) z%8Q2C%N{s=K3yW8_b=C~n9HRxE}xcrEkDuIe7WTfM7_(3J(6V7>`tsX z@-iN|T+@kFPAVF>Xf0DWEr%VOr&nU7cX{=^1ENPdQVd_CK*0RzVUFniQVjYEtBsW!&`Sh47B>*s(2-E?$SFMg*Dri&Cbat=We;I zvbWb=lS3<4Roxh3z1sTi7w+lleVmKV#O{tMg@r>MwKsWZc(y2BGfAEJ;K$fA7e77VLlB>iS!Y z_6u263+*eHeptWp^X&TXvyW;IuZzjq-Lm6$?XJ>2E~mz95%0P%=FW-o$+z>jeBB>Z zVcTUw1XS(!jAmq3>i=>5+JF-hpQL|@n5dp0ZMk4^S4UG^{o|M?&$-}bpS?)l?o z3M;b;n=}L44BG#E5R)QTnJ~rE1vglk0BrIMx;(=b{rVs#w=O=tJn!&1r z#4>vSd=L|U$x`1#mL;%G(V2}f2 ziM}m=QOcu^e)72BEEtdlMna3q!Jr&W1g?QmH87rL?;7wGIFzvrWvmJR?cYyEarqb) zk3k7&l)xY|msj|JZuib7vB2_az@uEj&;zQ7>*Bo^4Qu!RLglqT+&L3fJ=Ssos z^AXk)?%jKT+~YfElyGPKhxkt><(rMU+Wk?`9A!LsUWQ&nNyAzGC@3EV4S`PrcM?SnO;TtAkG(7QQnhHX3GtaYU2{th}Lu`-Dq6lmLH`d+Ycvu>v<0$$sder>^D|9 z>EYx6lYogNIsWwYd&|^Of1JF|Xx#*oY%?h2+LPL?(&X=;_#Ko;>qgAj5|WpHTOSLb z!Qe9(5y2p-r0C=O)InG%LYhU$m~_`a&P4Mw(Ne)a3wdPGdN!J$P3zTYel^Xt$fg!e7V_62n>v~s zk!>TIBIr%Xris>Dk!>rjhrzfouoLWa!8#Wl2rIv?*wfhMu`yoJLGnQ=B$?&6A+>F& zufS)}urp{3;T-=NSLTTfP4U3RG4tb?#l&Z6zI`2}xMP?pULiHGu?9jB@klH$fiNV2 zEuATO=4q#&W;PD_=@B%uK!?mQ%a?;jIbi?x>yNZ7ts3Y{vvCa!6F8L74P^!p-m_L# z*Q!=wIBwln(EbYgWFa&h-n+|n&3*GOB0d8QGGGYlkBF~?!IdzKxDF9+>{todk;Y3I z{}(K9Br`UWu_FcBo$KcC(BEY&uJH>D`2uD{AQdp(e>-ki{xOIig953K<==ql4JeTE zr%cWdF-xu(hs!I0u_Z8#bnV?G)ySh2O5-`aV>!QmqLi>eh&Jc12dA}`s;`duXa^gsk8h}#O_4OL}2-N#KzN{kL2;c>BD^7_N2I{NFIN^v5Dw2^Dp@`vykVqAD9zF%RN()%ynh|BWEG3}-Gd@_Ysw&tMQKc=c;Z@q#;}9kAfj(?^%|*Llb3S$@u4r{Ls7Mk$d|BeB$` z-1<{BL$5pibQgMfQ_U=3j()AmTux!tDW5?;Wl7hp|P{SV8BGSfquS)`Xqr{-rTO>CNhec>S_K7^R}DV{-8k>zMWxo{e@{C#A6UvMYonpw$5O<@^spx+?BF{Hz3 z=X>AVH@aM!9K|R_F=}M~1`Ml%ufxAASC$^y=832?zLOr>=E*dtAoCQO(~xl*qQa^S zG$cc42+L<8i%jA4!x1bp&!Y2ZBa3WWuSOQtzq4&M>O6E=z80C+()sI9QG`?UV%ygl zuk*qq{2ol-!)P+Xsh%S)_PG<~g*RIzSXY8ASxeIGI!6NYgv};_9r&=1r#4$8Gb@sD zCq-HFzU91Uv@hQI-@xu0I1oX~Grz$c!Vlgof8;iPhyTw|%sUbBq?OWH^-iWa1$n2? zoQZrgk*{E%g}k$9JsbIC(|R@XsiwIWxz?gtLjF4BT1Rsua%)7h1-%KmHqm-3a%-ja zFmMV3SHV6Prsl#7!VQLhHX8KJ@W+FD7v%5K!9h8gmBUD3uq!~mg4QcxWF?Fu`l1!+ z-edWEe>}81k;P8rKz0tx7b1&7fuAibZO-nR5rk_Dln3g=1Y9LBTdDs775T~H!@X88(Gtf09Xl&e9V z^qJ-BLAjph5JokG(I69v=ZH~_5ZJhQutsKmGY%DbACV7BhW>7kVQ=MA?f=9LF9X>! zP!k&Z5@cV}`~zfv2>c`eTz^jvg4f1g19$zy|n?WaP@*Q*hJD!M+@(2!meSQ`l0ZK} zmw>4Rs67$M=teS~yG{~Uoz*;N^9kH1UW3;m*_^>r*Xq>RlQ?;!&c+cWS$kvYnpX$z z5fhK{S$qVZZeE-S}KZlb` zVQMMNC9_?3)^Y1_ZG#I~xQfPHMN>!(qXsV6X5^S96=E5SSjLVltYhzo7`1HeeH9P> z2AvI~i9O4Qpn)N%^YJF9=X8?+1vbS>(ikl`5rrT!DbnLSIQh4P6cn8DTS6Kdm4?O( zIWo|g3^YODOtd}|g;GUkq2R3FO2|g*vwyRwM(eA8OQ=Pjwe)*T9rCQBS%NGj$Xckg z0gY=wwgNYz1&wH#z)i@riO%1O7PQiO7`TVQ0>OSe%-If}0_TE9E-WT|LzdYvV&U`a zc$n{@KKJND`4JL7LI%W;I7xi<`2BU+Vf3DR8=Ew5Vt1Q}Y!cB#l0!NHHpw)nAe$7L zGm&j3vKQ>LkWCh?XCvEeL0?i+#q1Bfej7&@)xcGQ5^0k3CN`-C90jfiuAbH<;4Fb@ zL{DFon(0;^Q;FA{&j23_va~E#7g`!tt*ydCkq%rss1kwY4+D2tV6sHm-nY0tHP0DIHDexB9K;u5Iy(>9em`Ty82ABfNY&DxEsQ?Wm$Wu8Yy*2i{{;O%ffeCV+?Ax$ z`vW>AiFjVbE0A?8;@6ATQxuBiLQ&_vL&V1*E(Ue}njzx%B6hFvULfN4BW^#fCn7G9 z=48Yr)0~316q?fzmqv32;xcH?L|i7#S%}M`IU8}=G#^FWQJRki2Y7;2q=dLVVsB$11?PXwF|#W zf^sCSZwGEWt;d6UJaoQ7iueRjPN40RKs|}pQ-DjM^Jf5;L30*xSv2Q@axPt79w_J0 zdxO>qVekMC--C71Meth)RWb0IBPhD~Dbrh?D-PAy-NB z3lO~!eq@lkX1N;ZMb262VIe1>`5lPffdbjoBK#U8dQbBQ5PhKeBZxlI+yW) z6V0DN^qJ-_Ao@b{H<0@#_&*UomDx~6RcKEn!$#5^$B5z>1#&`&_??VsC(Q>KxdTiu za$;<{d3NmfRYy9oqumB$w+TP8SR6O#SupQz2lkhTk@zru?fM&u{}xz=U$Sa})ZP2? zi+o-2C&PEQG{8N`DDLXBX7yTMKbbY;G{8o}*R{e|AK|N?@O8EDb&>btRrsG1$at+- z4veTvS6R7k-EC~`EC&rX95B$psAn%FPFY2D$k1_P#+n+NXlZM*eRRau6Rd`r4IeRj z)JSs+`SH4HihcX(_1EvMuFykc@f`QrbLUN;;b!mP$iU#7;#rZKT9U}Zz`!63#Kk2=nKyy7783(Q#hj}FzTVD`Ja6WI%-Ryf zl7C5wfg6{!uscP%(XQ6U1X-5>$FN{?&%1TSsxyy7foMvZhNZ0)cnwQg1#zSfm0JHs>&xf(SA& zgq-CQkkX&g3KX{Buuz5x?-Od?`Fz3axj3at-A&_gmO@m?ekU$X#_#a_I=+D0Xt~ zqGUNIspOKAODHKjbvh_H(ZSiA=6L#^XU~4W_j$kfd%ySlzGriD+P6;!4gwKFoanKk zv>-4D1d`@`s5D9>6aoSr!GJ*Y^2a_taT7SH<&W#IDz4B(RWqvYzG_o_RW;&C4z@2B*tTpo|(vPp-}RLTV#aab5E zd5O9EH14Hap->F=R+QzZ&@DNzjVO`1Q2XijKxn z>qJwBNchIpH_4{#;fjkQMDFYhVv^DO!u{P`^5>+ap%ltdf_0O!m9|Ger19ev-6)gX zHQdtoSnKfTa5cuthqjRm1ry!zbYywkRANTthI_}DQXyll;|s@b@k6I6lyUYiLifUC zUH*(0)VX`Yc4L0|b?8FVr%MXu`E_d#1IHEH`=|1?CMj#bE-k+ubTCj1I53_Z*=X=b zyTzo_Lc$Os>we(#R6=9&$ql=E_8)>j`M|2y7&`tHCU`ZCTUEblS$v8p|6Dw){q$bL z+X-Y*9==D$9+0^qV=aq(I3rr!lcSdnqd6Zd&c0wt#J(7j4Y`A${aEXUCcL?B*V-o240+EjMMy!)Vgp;MhB+2!q< zJ0bHEuWL|J0r0cdJGHwaWz9RHJ6vzwNtH2Bz7pZDt2!IJ_wM_vjWyj8m{VA^c#`pB zpl>n$uu)QE5i`LcYcfAK`P#+%>YnNw60<{>M2?75P`pdg1Eip~4_QVvd6fluM*b;j zFQx+<184op9$;B8166p<+*8ax>CrLY>D%k|rVG*ypHX{eve2Ok#WPBi==(xXDy#qg zJ0K^*^(^Ma;)ce(pAKEdLI32C5mrk`=Zknvmi61rus^W_C~0Lcw9g8 z#$S5}sW&CZ%e;v+#}c-Op+yE)@l&vbR1G*ziDD(lBP&R~~YeGJ_aZ#E6l zH1QKD+=8|mn_j{x6w%{x#w!<8a7Owej{#S5PPknZQBC{}cAlltekG>)lBd@k&TS~8 zU2AFl6)tuvdY{Q!YF(1#yQu0aAJOvz$V9iDI-LXSUSm5FIMuZ8h>%xp`oo&HFV*Fv z{9exG)%oA4`#n1S;vSu*&dZ!Xd;>9ybcU0w$#m||J*oIYjJ0}*P(<4fx3eS;8C3e~ zKtaz5vA7o8)#P#~!;B2M42uY{o{mQz;6WQt>O`_)Gv+{T{8WsKgtVFx$+kbpruC=D z*Aq3u*VMw+7t7>LRFC)DL)b|YvkbEp&HcXY=!=R0oHHrqg@@keuO1%2MRi&*s7r51 z8Z}kw&F>myPqgf|psnqUo>BX9{r+lj9MIz>_0r>6wJ&Y8Gd2!>z59pn-?3wjdM_oM z$YwiAmP8StHYzw$JrTT%QU7p(stc64Pj?-PKVUiEM(7!&GsfuR#GhYX!3Vbcu|Kh^ zR^*0XV}Dr>fu1rQ%gXps0&1>#t}C~l!0p;w@Yk-yfosB&g(of_RbGu*Tc(=hG5@6M zCW<~-Nqf)!{d`BWZl+DU{nYxo=Rdq33-+E7Z8PYa!A|bUwMt(jFw%;1VVExu+3oA| z-d`jk;w8n@ppVu*gqf$pzSpZ%HzXK$OL_i9GRDcDD)XvRf zyhmq(5TJrhmKV}Xg9VsD%;Z60QgERn;3S___T2B3WgLNu0Of769FdMHEI=QkF9#Bn z5Ceao!Y5_?c;)k=qXQiQ%HAXyA`LMtKprA53lfur0bix&47*~+>UC2Ppqxz>7K!Dt zP!JT4B?TA$%F>RSbW_TjoJN37Z?ep!%oJGwMg)W6n-~3RKFuMOl2Fw90RhV0WLY9D zd0JW!EuNM*ROCNfl+Z9LLiqnY0N8(7@P0Zshly1WY&6+dMijvWuqs%sErU$JP{mMd zYgfEh*U)%dYXi1{Z8=~9j)snVw{l_vu3%T#w$@A23oFQ4w!YO0RxGj;%v(_puBWhV zMO(D3_BPFf=!4qZM10^r3IY+GQjJ?i(<80`mCCmi;!Tu=0ZFv@;NUUvm68^1h-Po}dmx1zVfH&P3Zmb~4LEw(R9RF4b zmRkoNJv_$6)4$ab%;WR<7ev4pWWdMyS3-ctu5`C7q{J0{tK&T8b;eQH>g>0;9^s;Q zMTvC@-zPs7flfv&@}~HZY$G360xNCBqIj}Dezx>+D?b)%No)Qes?EV`T_jz$+Ck?( z-xb=UIQ;20NShskGhzU(V|M9hfBn|Rn1)`|yRhdY-{OszgwCf9=l;&uaYefB6vTJv z%f6-W!xBdMxExqcTVTUHt{ab?NSNT;BSMK10-V>9prox5 zpZdQJjtz;4<>@n`lBH#2<#y~u%PV+#dAnNTt#IZR)~agiDjJ$vc0|&_L$(APT|KO# zzM+A;hnu~_zWoPW9G#qZ9X8&LF)}eV+pD9kthDF5=$NS3<6+^UKE45g{>S`+$w#TQ VBk_?Dl(+lR`bZw>Zto!#aR$bp+7WB*U_F*q;WB>QICe53~ zKkWO!<-Oz5ElxSX9a9VX?=?C;{`0O$K=k{ahPAvp*})6g!+=F+57 zF*#N~O%**`w|}^(Dcz}H^B>)_ntxi`u)}tVPWiTwHf~Sx*;p@P=E-9$sbY>}y-4 z|Ao%nm06S>le0qQMBL-J9a-P^d}f}TQ~Rg!YrMfP^Op6tk0#IlcTpzvBLCGWgTGUc zd@8TY;tMxwacIRy~Kde||nG*`j)e&*hq@f;sIkAKj8+zEsvExon%Cr^LkV zQ!Fl7_8!0B8L%|mddcN$;kRBm)X(dDnK5meuI?ApC6Oyl{3MgPLo42u=k!HiS?6>< z?VLnav)HLe>d#9ON^WnOE<*bxGmL+_O{8tbD!mL8!v^W{a~v^2;kIAU zm0aFw-}N?7srNmn`{b<7AooqR(VO1uM)B=qD6Y&+dJar0dnE1D^o4yGc^G7YJP;7K zVYLxw;1uLxlNVtWXI=LEi9+~|M~OTPau9h2aWghEDF#jfZYBj`pn}r@ra+2KN|b?}%da5IAyXlC6Fl54+vpNBybra*yJK?vkXcCaHGTCvqSUnF4?sDXe;GL;{)8$wu|2|dqcTc_l}B7iOh^XqB5^4(DH*s2#HEy^ zG!Q&}HGLhp@5Rle%@kpQ1*3tsfCCF^3rsOk7#u`UVVH?PVQ|1eg<*~W3WI|KDhvw@ xpfETPpu(^q01AV>4izp+%}E3?i;I$r#ep=F_SbM352 zrykUCG?9rFx4WNsv*P!M`PT26?VovQdp?%9nP{YvdEn(kyKS!-2NtY3({LooAS2Kx zUCHfI!ZJpivqJiSfwTWLg||)LkJMN43!REk>-i@$>0PGW(`7mb8e{H9sa-RU-LULy z{Y*`}{0$m54_{Yq6B&S=^+r2R53k6-75e06r~2==KX3UG0XO=kd3ld8SPomYss(gk z)z96~AdpqKK~nUq-tyt!yb=TtyJYiFh)+RG!Ldg5L-%9XoHqcoiCgVBBV=K*Vu`j)>x8j>=>o(yjSMiL2>5K zy8HSucaJ=L-S3*Vv`o#Pao5@mh?D3YBe4io|8zq>3tylP3YGwIB zZcP2Jm39|IHi=#F^-;ef%oDdOv4-|h-+N9_Q~2L&y|%|c+uCg_ro-QEqcJYhF z?W*55;c6q|lOwnho0PXq>cr!b)3XzLb{8L3Zki{#+ub`?vF3GhP_Db(zIm#i3g@?N zRC8FOpC%>`rF`~ubzj!KXqlIO(cu(n|@!iWpuj8Z4Usa18*=Qf+vb+73 zZMAsq*@tZAX%(q2x=Vsy?weVBgekLP??C2~MSL%py-so&akB1y<)ORy{Ht!!D8rRX z;!V;sa@_X}L?+V%>%3!UYzQwAO_}jKv+ii#(OiM|PcG+uGf}1OE9MbP^{SSfsd+Tg zTan!|n^oi2DKqzUPUjxi2d$k~gA@*h-ILH>HBoJ&tf-!Nyl?;Nv89C<^G=J{tK^@o zY50;VY<1Z&K-v0lqqfaoT^|`%>pxnPzjf1wH5;RiRa*}$dYsKxmbb|5tcmtGsT8H3 zcm7$=pHn$>ug>qj*RQ@aIrwMI`L3HwS4Orye)&Ci&9i64Y1?i5WIiOW7J4A79)Cl8 z>&xgH8`GcXx$)WyDp@=fE0UJ34cH3ac6|7=VPTo>^|F@pF;|YpZd;JG{@R}WjLj>h zBzyK~47v{c`VaQnTl{z*zvuVIEwj(|UWuJ(QFCTT?QC9{{mkEaz%(v!)7$0GuQ$^E zXnNc;e;~RnakWiPOH14AQO)$d=fXYbUMkjV-N`Q0jeqkydN|y5|7g>SPcSU|UZ>{h zxoEF7TU+MMylN8~nEK(@mtk*V$!I}|EkouRxgGs0G*&ns$;;MN$oLiaym0W(>@{U^ zws8T`E~<$R1G3jlS&o6r+})*A%z5im+^n8-X5Fk7JMmG}JhrRjAE`k3&#em^t*%~r zUOfKswiCePMoyt>LyI;;uw{q}4De%(P!0>iS`=O9E zL89UXNo@ufxBC85IseI7LA&k+A0>o7Kks{D=oIg>lM%l!bK?8pl>mB5q-T5cpV8Z9 zH&&jTIIt(!&))0#DUFtv7{|LpiPd3abzwnU|4eB8TNPclzw$$n`Q@RrTi=x}e|2vn z*ih;$-|JI#eLshC&r0@6>fLy>|Cpwv=dHJIcbXsRu4&R-Vfl>V`Nxvq^;Sqipjz(G zR?{k`Zpfz}H9JOZ{}gy{&8Xit*j~C{;!NVtKSD=8{n1c&TAVIkwLs?Ap@TuQsy>Ad z^GW75^=qa7FZx#8Sg!vavqNT;VdK9H)8lpT-5YILE;aU-`fvXcFZ1vvEK?b|u=KrE zhr?nkYmPtl)Jz|}`S*y%tfYmZu(TG1w4DvA)&JApK?{=x=4SexbT zUBwL0Fq+#P?wu@hRHbD;Csn#$P^tDUc}L_G-%-Kbw!s3oafj zw|T#Yf+~R;tJ+S`Mo{n0_iK)RdnhqJssK?-hQd~Sgj75zDf0<)2C92RXTHY zr5|)_9MRWFv)i{j%~xY1V`}+fwu$eRfOX!=}p&27=Fvi3V>s*>ZHk1}4~ZF?B(P-Hr~d2E@c6?{Igv~sCh@`YxW+wy#0 zyRVfat3vgobH({b^Ni;$3o;Kr7^}QXqfty^@UF;(K*h3w?4vJZjq8qWOG|JlIo-BK zTI=oMj|O)>uRbkjvC~%ed*sPBzJH$ku9XcstSSZPM-9|wgt{&DJ+V6NXxEP!LchxF z+thB(TPdTeHTc@R*}QwrZrfJDhK928)kcAIBI;h7wr_32l4T9yb=EP$j8t0bs7Fuz z8C4NlvvRBQ=$4vx^V309M#XqGXxd_Qjr? zuV|Vs{#of{DIpglXE5ek^)_7e@#D=e_I!7-z0vzZChoNk4hvi1}i z7`zKH{1B9XYya7ik*>D#ljYwef!R-HJ@|EJc{pGqJ6ydKlMzQ;IE_1)dSPMm0k*FM|r80eoU-kISxaXIpJpU~d)$m|(m@=te+ z_ix<)?a}>_k>_>1<15vBmY9rJF232WVdm($^b-3`wU$r03&a%`OPvP@eFm|RZsPrz&*5{Y+2BXO6 z7g^@6ac>(Od;H6uEK6Ja#_5rNbYO3&SM3TNciWE9Ho5*;;`h!({HR*j7U|HG+wunp z!PO~&2Yj||Aj8d9l{vC&m*fcu(#`@JEdglH(bk`Ol40oNkJTq}{V+>goJlL3WVp+? z&rJZ-6EW6p?pvGw@E-*x?Vm};bs%;fC?|laH)1txh-*3#P^ZMCU7Tc90kJBelmMpQ zh*h$_TcG*MBNHa=!Xzt`5XdCv#Dg(jfid1WG{y`8;s^)_ARh2MFUUTb>wa&MFzqj@ z=IV6y8B!rkUKzWbzCtrwzQnJmn7wyA0Ypq_}q zG98QvdhWS}Nz0pLT!uWC;k;y^#G^Ei#t;%>Tm^>#NCrHa4Ly$+)JJcbK`Q`f09l%z zh@QmM6X`m1`_{J$YI?3rTJEGSI{`bLWS}pguR~+ZWb&V;nnh~bdDwcNjYtMbJ3mRQ zf&x`gJ{gD!h{;n$@=dm%Bp!RL{z<+&#aEaXN;OZ7u0}SGdZGgF8dy3K7aRPUwDd_$ zO@P@1v=YG78?jiQZ+2Vmh!17b&P}qy34w4zCLYA|3B>cs&=|sk5Lw)FZ+(lkm-G=P zEqjvs6$*TX3dulPKw5#S8V{%H+Izc(37 zTG6DgS|C;nR1(0{8?j7>cD|^&8&J!n6;HCx0g-c*YfZfo%X5y|!9!bw8<@1LNmh_h zkV-PJ6tYyIEXx}O!YIRTJ*2Z{mTlWzCaq+Wbry=9g+>Wr>Wy^S8F%fK_D-nJJu_&Rrj+Q*=#v!ci74;1@3>2fboL9JlKm}Kej>5#sxEvzk%7+rVm8wM_sS1U-Y0MZopdGeZ7mi1W}%Y8GH*0mbRwPXG@A z;~`L-_UHrtMlx~;;T#UbIv)lYd!J%RlM+)kQ!|XnTE*IqB`sE2 z;7Rr>HlAE6wp0xxFBe=s-Ib)~4N@DlF{z873ohL+wja+M4aA}W4kQDqWPs<-0D>6+ z*N_Davw#g&LIPAyfF>A_31u@Oc@Q%7Bde4JC9|Lw24q9|Y-oT1g;27Pi%|$o3!wwX zsD|>@Tv_^{cpp^97~i1OH;7k#9IA}N`4}UCkWV1+Vp9nD6fWQbA%B4bp!F0AaId0N z|M8hhp%sTgRg2us3jy&2DQuJ0t~2tb1R@Z2Gm27dbk7wnxIh= zT#NxN(6|LoJL1{SRYgA*#>}CrdKJ>ILWSw&o+^%B#sySBdIbkKapd{9&WG$dlxd5A zOc78=9k@gA#c(x4TY-`sg|m)A4P=^&E5EoNa}H7f^aPL(`164@%7Y>(KC(Nwqb5>G z4`B8HS)_yndI7VS3m5{-AuiwrV7}l2#=y)mpn&NZ2Q$Yx0E*41^10(NvbYW)-T{=c zy#0XL4`eXl3y}H()G;6eibp^^OEeUZ<^qzScoGNrSkkpjVu7m~WwSmY)W@mWN|j_4 z%?M3(Y98+eTD@GJ_X23X0OnY^<3M+u0ew8c~vN zAk+<}Js=Neg#CF@V??cn7l7~uAcr|;93dV@C?Nn15xAE5I|9 zK=~4g1Er8&3h^v;P`-|f(Fo~{T#PnIZ{q@nA$^zw0A-Cv+s~UVD8oGkLQjDz>L?=M zuLWjxudFD^eV~0G7$ONnG5(EIp&XkU#D9SNAE1ULBv1ww%b+GUs+*uz6Es8}g?13U zq>ZWV17;5k6ALz)tVu~8tS9@y zQqdVJ$eeCYhDlRDQgb6vX#`dn&@nQIgV|EzichlP8;wZv;uAgRq0l^d2q&I5VB4rUQI3spV{f zC4-s4QrIdQY!uAKk|E3xTpD5#Vvk8fg+pbqWDMYs0pip9k_3W1IrBPXSd7$brlpD21#{Ha7=q1K*r1eir&CN}vN17 zAP$s6dN~)+4C&1r0L^ez)H!uTfeqP@kp7V~=b?>|2uY>RD9~PytQAX!rGWgOOj^iT z;7PU&8&3u+2WwzX8loJ6CqvajwJ~W7m=gn3xLjB^1t?v?zm{FrWfjR=~{|P!H|up$BHQ zCb*;t?!bT+Xxjqa5fE6_mt&)6w~q=ZSmG=x)X`+pLfisRvc=ic$qDfAfy*27;Q#hu zWLoj~XFHoK^{O-&jY#hK#L2oJrC9* zAgsK;KjgxrILf?5K%|JXV4Y6&aq_>CR-t*H1hef@s48_szHT^uqDulVA>T_5 zfKGw=NmrXZ`u+c7MUu!`%vz2wHH$6qBzrL%PdcbM=%J~Z%v%JNil8=Elp$9P)i7Wj zN{vHBQ264eu(kgt>*3CN=#4R&phpwjg#j(lvjy(PfK*~}Dq)8Kg@j5W=LogV zRX0em?ALWBSwBf>NfV4{MYmGGlHStZxU>;iHv(5o{vJrb2RI`NN=I>>T9!iVQix|M zhtlO-j7DhP$i--e(#>3qHfY_(#TbUx!yI5~|Lw0AN6Ray?mrA?9p;=SMPEpb$&LGc zladqyW+5l=l#;c2OSdzxnn_9w=mtV)9Fj>pnjHfhN_M(-^Rc88pVLfi4-=#sq>BY{ zQ9v#Vs9{0ealm&R%*2AYb3o-B&_UyXEG{03$3r>fuq2QP>6uUn8>(55p2Y=ZLq;|f z#TeC)QO!97C3Peaj08dy3-eM4MhX{jfnZ!9L{XTB>O-A%a^D+~$|?Z80!W}pj0A22 z`fVVAmSPg92lRR%fd(oGL=b`zgdAF=k%6e$g}Qgb9B2S)4nX$wK&BQ3Z7XK8|pF&lnWGr9PLZm^hiCVL+1NL>W8f!}xu&M%%SX*kr z!dkEfwWa6sL;vhL_Xm^*$wS7Ev7u|*l zl9I_QFl?^pV~OB%J)Z@hWb?7{q_eEE8s>t*4#De?g~{5a0E-l0i+NlQl+EFq`tzV{ z9v6^G$fXkMn70%Vas`Asa*i%l-CgfJdfNZn2~ii_3EQXE9h4OYfzTl5I04m-}AX`zRn)_~)q{c&ycxZ;rY7vBd1fhp!gurq85?ALfAE+96347^c&E74% z8&CQQ`%WkKe_kBk_V~|7Dpx%eu7{eaE+o(dg`2p57AV}p0lx2SOwF2;^oa_s&jG%3 zoTY#SsvxZjGB9PgA^kQK!ho-k_7yTvxI|_NCurdW1GR?)q6k_P!9blr0&xUAju66t zOoEn4Fwm$X8F>Ufj}SrtI%S|@73v-tU6YaKr7o9IXQFFmYU0ChlmByJQj@+c>A>EO zZ&c6qKza|9MD4NT_cJ_orT8Z$sRU+~U?uXhe|WIjj=N z|H?Q)&grQj8juw^!O2HEhJ7bv-_h828ulHBeW!4~xBKky_95GPU{|oHnD{ISNvYY= zYu7m~V=XYBZ)#?tsHCi*qN=uV(aPm3*p^mvb+l!5_4QV-akO4+v&3Pkt)0EhDns=- z2J?)JO*A#+<+S$h+U@1-PUb4BYGt3>9;(h91n5HW#?Nd0$e3 zN`uIaw7Ciz51bPY`voy~Ngw%Cc~CW7^;S%gW09)0>*u$%cS^&Gt}J@7uw7!?9x1;2 z)yDa5T52U>tcOiwBc}CT>N>gO$U#rV7i6g}vC{IkVSva{l2?Il3-)E#rRv zTVHO*1~a<-Jok!ImUqV#8_z7}>?aF@{L7_S7 zWtuk6oHot#@w)u__RpGW`m04(|DH4b{G()_I}@%*d0jenr11%R-PNNlkKF!Q?^%9e zB{%b7xw{(6yJeIZ%M1)>o%&?KcI}Eo&WxJ9hkb(!!hEtVR(_mdcBWa`{pNx*>#J9% z-}LO6S3_7rl!-Hl%Ne{bH(_vuNLRQJor z&Zq7kxhvY<+quVDBmDnkfx4Gl-6JMnDB5tt{gUi4kCQAD>TfPRr*?VK-?eACGMGR5 z#LIbD`F6AGEZue9Sx+#x+1)E;@9DbNO!|p>yUci&6dsuO$dRe)+x%5)m_KjUax|&^ zc>Ltc3(dQH7B8&1-iy#c>C?-d zI(DvX;^}`h>3UA>X~&o!%N&iLt;l}3w|7yuV?;1#>eA@0$?>g)r^;rz`b5n5Rbkq6 z_nD=*)t$=Yg)RS{XwTVS^Y`@9@L1;4ivsrjRNMIT&)Y-4{2nu0ujrk#!-(_$r=X5& zduu=cI(+r(&zLJ}Cejs33ch-g(;W_|eNE8dsTK{4n0Z_IR>HLzEuVIu*_U4X)V}@7 za)l#(dE$>9cRmT}3ww8jJ-hvU%in_kwFj#|@?3kLZ`t=c?%aK*vd3amZtH4<&yeok zCzhRG@=<)=^V&9s;>z5lW5E1iW$~z~^j>-#4}%1d2Lb|0tV+fVoE#i%l01w8tabbL zeqFAnAJ4-e29akFFyJ!KW#HswXBFZGD#&PbE^`%}4OAcwQy|PGEC(`yg%_kCz2wL_ z=S-;<9tIJZ0x2#j1&{(Jhyr=bnz}gtqdedo3Q{9r$7`novVxh93uuCe>CFt(cvWf#LrCg2IE#%-I-u1nd~>xYMBq!#v5z3Gp1%5SZ71 z!eB2!g<&273WGfY6^3~OC=7N!R9HgB{w0ft%^nsW0Zmy=HMmm+3>XYJVK(px80Z<8 zBY1YIc6u3GUywl%Y8H^Ux1g1bSNsL2a98Q`c&O-;@4ptmL*nQ<`}Add|)*S6ZjecD*0o zBO_A#ezwzhtK`aBJ2BdYFeZRdVV zyFDMOuAJ&Q67>69Wb1_opDQ1`yD?2_OMZA{Vd~G!oZi%eC z>N!#iRxWXxpto|y3x%G*eGyZ2rd)fOmeQitU4FRUCq}_Ktmo>k6JC8=I+wHmjQ=NJ z^?X4`tlsLzo-;K?mvZ*XO>~Ur_7H9^lKH5%t@nv=jqt1qsWHvZc(W{TcHayUPtNzP zb6Ea^b$+gyAwzLxZqjpLTH37Dz5Hv5iWCon43Gx`qFU@)k_?Dk{#v$<4vYCkQm5(QV?C z=C;M9JPfih1(vLqQXmtUh>Q;UWNpIZvm+; z)2fB3hQ$R?H8>8SswHIXU$S`E>|p^0n}nz$%mqB6QZiDi@X!~Pmy=hAnE*6bN=q4L zF3h_?bHPyuHTU~6OWJDQnQI{Bgk-LfybF@KdRh)JbAM)>n7TlI!h0s5 zQy8Q;k+d+#bHcR1M1hurlLgfBqSTy35VN=_xmX#*5CahqAOd4BFo|Zk#>_hE_~`C@PEXLbH8n9&SbpJD5x{KbP*y;26fli#yp_H=N!1s$noH8~WF0##c zf4jc!NPHLH&+o;i*!B|c;U$&Z&P5-b9p`*&_tq<2O?5LIw(K3PFy~n%3IKSg+FsQR}gVSXP?#1a~Ey5 zN7aU|ad(fz{JV{>eLpl>{+F|{;M*Vf?N2Ro=XE9SuqpCc{q>GAav1PIv@M$lNkdnS zdGX|#e$dlS_Z4H_Jsy*I?AV>Z+x+LOUKttTr2FMa!=Pfvo9`Z*{m2^Y?d_d-Z*|r1 zpTF$%4+TY5U-`P|aP3JU%zJ6mg@;?`?p89zFx1t zZn(p>*qjqLr$lL`pFE%PX;o>(Fy)jd&PF3D`n<$Cm?NVCuIHy+NXUmSNk z3$BSCiN=j%7EZ6rHmIuhKHza>)5}_qpiW(@$=mN~4UfO)x}Q5rWzy;Ajn(@3zWdz_ z0*;1FxMujs_w=He6;t>wce7WlT(a9L;QhF>z7e|ze6S8oaMa?Q@b+wpS$gQyw6_h1 zm))CiL(Vm3_Vx!OVp|6HEznEY>=Uqj|9iRGE&8J1?E;s7{#uySRp|CeC4J}c?G|DF zJDMAP^Y>4l{bB#%&8H78?3Gq4w=BNa?UFV7McrVZ3*KAqB`;d;npL;(P1a58)S7`2 z6K5_I?EfcIJK1;H!HxY>H&~5L|JjhakjGmG$`{OP*YZQ$BiYj{8>SgXvi@FiD0hK# zt>Ixqp3bfodsRK%Z7s>oS6mz(f7;uUs_yx1)*e;68=SbYx?{_@;QXjb2abLxS%#eWdF7}tN z6xrN$EY*1Z`d!yJ|EwvSlCLKJDD8@hvHoXxu!c7K^$~{wv8TW6DC!E^^N+lpQ`d67 z?~FOHqJ?X_t*FRsTK$A{IVW@L-F5GO1*UA$QL6Jh!uD9{cq?^ZdYfWO=Ce^BtgNOs zo*AVt@8#e>EwEsYb-%x3mI(@GkG1B%UFq~NU@aKVRF7Dx(3xD*WHxX0&Dfd*s|AM| z7Vn*%_m_oD-pS{B7XF-P>uwrv;=X#PQ?Wg=Zcy>+;caV=9c^aqs^ZV{UvOvh>;8R8 z`dJ^-E7wU{;5ehvCF|3eq@FO5W3L z^iF>8xEHlQg|GZl-YV)vb}jwxkZ%2c%vip=dwS!JdmHy}dpdpIusgOc?Rnd>TAt2* z={@w4i+<;fQA^MMS{d{sGe7eC_mJ^+$Nnxo|M;5q4TYah33kFI&bt5*XwI&u8m+V}2{PMyi>&}Pi;Wg9yPO!=JkGVRtY-iJBJSCvDT8o3pfH*$&(Tky}EPf^VZ1|xvWECCK+t`47MNzT;yE@EJal% z_J5`~FmdOry+K`nsItz$ZosTe6-_ZK@}#V8lq(f*^4|ybV(k*MGU1u%iGVyQ#iMDN zCM6@|XR5MJiD!Qisa!;S5lG&Ys{it7RwIW7gm76$#C$qHt^;&ZKubfb|=R z!1JEn95Kr@VYV`BkC@CHnd1SGCuI~fI%VhPt;be!S;xc_nQXaCwtfl>lpCl|=7ugp zG!Rx-bsj5ao4Q1DSqH>~q5Mz-5s)Wk)ugd7y?NZ4Ra{nKsm<%=8c<*2ewOEhYxV5TAh@}wktG=C0z<#i#S%gPWlX+la($S4H_N&+LIiC$YI zwtpk-?7`rW+XYIJad&!$}uG_E4FO_dcR?(G~BoI|D}ki02X@doQLC5M*3Q(>JG^Rm>m6pDa6DMe6C z)RjR-8#}qI3t|cfz5})s@}v~+!`<9Wk1p-zvJQ(WYLHS5GDrb^C4B>;V7dP&I3Oi| zaIdPBm@ZpPw-536Awv;J-jo|_`P_LC^YPgt)YDZr=x_!LxFTqPK@H$XNnRP|ZLZ8+ z$ws*54rty1fz*qM;67;H?*X0`FI{%yc>i96NjN8*M;EF6f@zmtI0uOFXi$g-bz0+M zQL=Bc;~(OhGU!_d{V4N8L*ER$viq&PBIf1C^TR`w{Nds<-ZEw}k{8J=uH&s^7Gpst z7Hk=<<3J})2G|KYJ7s{qptDy7NJqSMBxRcH%O9)!PD7Ch#M{W*iorXuPoOI;jy#T* zyN2yimEBSL)}9W0P+|T&dd=K|A8KBSi{~tlF#oQ#(VK^jirUm7ve)w-W3s!G!|a zuWICr{Dbv~ST6wg0%*}147>sE8yVm&Qh1B_v>Qy(fjAvVg#jFAbB?oB=tfH=14=Yb zq9XU&Za=ADV5bogY%#JfMh=YmzC#-CkRF5Ud&GN>v?y@K=i|)ysVjwuBLY_iSAFW% zaPb^)&w(+WLeSEkj-xhr2-&zMkQ1mz{V^^|jEfpH9z+EQD|+-pgEu)ma7o}s2aZYK zBAvHLpN<9t?Z}}W^<@AZNTUO3GXN1=QN-p_anPVo0dtoP^f0sQNO&DtF{Dw3bjpx` zq5X$Q@gd?%U9||FBE_eOFWsE6;?S@+$dl238?tUgP7EM{t(d^((*fB(NcaG|!Yuw< zPEt7nynVi)}$?c%u>v(H(6T}Jqol1)-=Av#U#*4f<6op-v^WX;7VCN z?zd@W*t0J-WYKL0we4U|N&A!ynDBc3Qd?3pQEj3gRa@f#6OX6S4{ZN?lvtfcM z+yu3oph>5Kfilo616>AC4({bJk^xkKVHF4&KsC5m_fXIZY$!4TJLWw}Z<3J801s0V z)>C`T98{yVrBA98QNSAR8Z$a&T&xGpda$L8G4KW{y+J0_3bN3FjomMAxR93pc>Rnh zM_e4j8^SD(=Z%*ZbDvhY$A8r6PaM@_(0U9~FN%RJNO=oVV=xjSOA%u3k4dOc5|TRg z$X+pEyl_^3B2v5Yc7cqsCWAsU@ENnogz=fcq{u@`c}RnX*_gvG#QB9(sAcku2U-ax z)C?d4Ed}pVnYNYSR|!)X-E|>@E@VR6;wI^AopiP_4N+T9>`9xrv~~dTs8wKF1&*{W zwl&F?K>@k~I9OHWctrzm-10L_{tO|~6bKe~tLjZ~e=(#^GdYb~Ehe(XMeZ6J}%r6S#;t7ZH~pv@k^{n%{|*(3u`+dpIG> z&u64Ou5l1LI8tAVi)TRLjEqU20kbnbJBOIU`wYxr^uC`h+|PETLc@F`=A*P0)^!7 zwf@WAt~C0;#W$g#b4C2|FQbV!2v7?!plfSg!6CW8sH`yr_u_l$O7X_Kx=#X;Cs`=X z(7zen85Z6Q)0<(A3=q`}TX9q@`RlXays+=nhZBCgS#3PilJ~rCsW<8UGN@hd5xxCL zZS@Y5TfU^`BeMF494Yg~j$K=Wrz`psv&;vz{GK)#cmcXEdK}K`Rp{}_GjbEjB{CzY*EjfCotY~zxA03AT_0rR`FpH2uMT+2XM2BuW_7$}Ev z<>1W#n!&ai94J6D2xOsQ;Fh02@CnQq3q^zvw8)IHP;!t#4ieIZa>eOmns9>J zbRwZ|$mAPxq(dLwxPEc}mXqR|G*C+ese=?w>ixdU>4CV$jq9dHEuRj9O!oiERj@HG zo1eg)wxbd4Xf*Y#7)WL-CbOl!h|YveRg%4+0>q@dnB{twIknl6i9hKo@q4l_{qxozcuqC!TpMiE8-SP zJgHR`*id`GeOAM`>K=<(Q(w7Xeo$5@nL#HC=tLn@t7`@AFKy+yiwTov@N5Pj29stS zc{Jk;28G%a*4+B};ND{5Ezcq4bI6#Ur!i27%nQ)~8U)z}!>DQ*ie@lxmNDZP zwp9$b&H|IFH^glpWD-T4f|@Z@=FF^ZFw zCo^jgg7QIN09qadDQyEOn~%@Q-(A6}mUX5s&4>apE(q##z%NNAZ!9N21PX6Aet?pN(=vfBd>k^lH}j6z2cnW2KmdDDJ0sF|Agm{@jih~5y)c2aWPkYsGL?%%bNtRHp;G!g1LIJwvk=;P{>Hw2IM;gzOISml0 z2FcFGyg`_>EOJCtQsr^t&n|)5B~Yg(h=Ee@DuwY3pb{oj%52=}Y>jlb7UT4AgspLe ztwp0x%;Pv)`#4*dZme7UoKv54#^sPHZvnL}J+U3V%IJj$NbWCaOos^@K-d80jA48R z!DpFRGXWVSAR)sB6OkZMCiu)o2H8Eq=TPe-1z)1_PLg5#0^MI=OJh05%)TRb6fV9% zWIu^BiOVpIV1-~cs%zoB^`9@TdY?-e4AdBCN>yjH;r`N>`ztQ0V%*xynwbiAGISDB z#o=0CEnn%C0_n?Sk_DqS*eJL+vuGMD4FNFmY^~YMwqg2V#thaw_ zP%L%sKxzE1 zYv|s}@f>_j0k;S>43%c3aIph)JD@kiUBx5)cw|aD#T5IH(LQ8B-4zDTBhGoGLKA)% zs6mD`$eeNZYC^_M$dU>HQ*{~V7p{_^3KO!crUN$jC6d_#YI}O}n_rJx58;7fnk$O zfZq(gn|tCddMT`kXC!+OjAwKmDPEVkh$%*D#Ylr8o^qs!kU^)jiI7l`*l zCbjYosk}pKRFb&KN2K^s<}zm|o4b=OwP<=Ft%OG?dkKx(79mcN%z%oJVG*)njIb1O zN|6R*gr&%^6xlF<2Z-|kX)x^N3F16K8Vq}BMVwZo!5DHYGHgXQ3}6SFvx6-?XvD`U zrcdInctA|Q6y}yf7+r?cOy%)pWbeu`>2>6A9l0^aUWP2nkP~C5kC5Ucq{$fSGo<(o zX)=b|h6c2uk&KZgvK141t}E)z?L*tV2=TRuUd{`4O3dBo#@g;3CYJR%COk zj?|E(EXAosleNLT;>To}NGTJk(>43YuLe%Q7Uy~;vJ_-*rG9gbfms!RZ2|OU7<>VY zC;(3iV3v{$r3^qalrn%gLrD=bL$+Q_&yhn6jEZ4<(Y2hn%jE7?g^)(#A<99s9E=!k zt3k862N<~I#$emVWsPK0DgcE7kp7Sb169DS0(B}d40It*7gAyXF>Fo@TMA5kc3j9y zJKIFOw6&_W77hP#(ayrojxmT#u*d`{pr)>M>}*#>Gf|P7fm?4HQ2iNtN3U^~?h}Gn zfmc;es_9_(*TT&Wx#Ajc1#jt1p>=4pzwx%_r(^_!6$WcjPPo_x+%}oB-w8J71e;HT z)8x)18{w{^XQZzqY@H))eHzEo=#UtS?C(491z}PK{mWnw zo%7eofVWm-2Dg%dm4R6qSkW460+K5(3Sf$6aBS|$+|Rx1a&xMAcPqI^lTEY#ueKPd z7GH={W;At14s)_UKf&G9p+0rUp0PZiBirZ5k+D2e*_Nqn8){cHRY{yL^LHwkRRgFs z$Q+YDf$}HNVeE{bLHV-`kbpP|NR5gP^GHMriAa+Hh>(Iv2FOO7Y@|jPCT^00I5|DQ z_XTCU4hxb$kd4|w-a#57;-ZJVhtx=LF;qU3nJnFh?FU*6^a?HNwX zMeoZBH0dJeIb&^OYkHE$#f>@}nOD1az~oNP)h@383@)Ex3`1QB$Tb0ZGL(^xT(Z#^ zDiS(z66Q*NbVR)Zr64nx{dp1Y<~rhCNBVTjz`r*N3nA?ymd}o;A|E~XFf3N8^iGDw z#`(5C&ubZ9x_3b}7Pdhg?7(->i4YG7_y=cOaRNCF|3Uyai0^5`ie-E!F}@QR-#ZxJ z+Zf-;jPEqYcO2t8k@20v_}-wYT&2^BF#3z#L1kaqhbXj2dytzxl7O$KUu^B>E@K&?_2S#HvSO5S3 literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/mdns_pcb.c.7AEB4688ECE9D08A.idx b/firmware/.cache/clangd/index/mdns_pcb.c.7AEB4688ECE9D08A.idx new file mode 100644 index 0000000000000000000000000000000000000000..1b42757d70cfdf72da41de48a6f7cc45c0cacfee GIT binary patch literal 12468 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 N_$dKt0C2~?{sSrxm#qK* literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/mdns_private.h.F18457B0D1445EE2.idx b/firmware/.cache/clangd/index/mdns_private.h.F18457B0D1445EE2.idx new file mode 100644 index 0000000000000000000000000000000000000000..00a55781dbf623635b5e8c3c5bad06cdd9479778 GIT binary patch literal 17630 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 literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/mdns_querier.c.0578019256BDEEA7.idx b/firmware/.cache/clangd/index/mdns_querier.c.0578019256BDEEA7.idx new file mode 100644 index 0000000000000000000000000000000000000000..1e8e02ec4e319f3c7139b823fa2eddcba1edaf3e GIT binary patch literal 24946 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

>J~Cg9ivy0>$k0nRbjTU`hdR;Gj3WFx!4` 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 QfEb+N90X#)phO`0fA>I}#Q*>R literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/mdns_querier.h.2D0ECFD0DB6BD816.idx b/firmware/.cache/clangd/index/mdns_querier.h.2D0ECFD0DB6BD816.idx new file mode 100644 index 0000000000000000000000000000000000000000..8cd9340c4adb113073c0999acfe7f871746a9b64 GIT binary patch literal 2728 zcmYjS4Lp-;AHIh*n}>WQ`HaoS^ekVqYUX1!Hp+$?lQq^*lb4V}uO#Qlc}rh9om8if zrOqjd-cE7qRlSi)Iy>Pd^yTePR7f3lQqJRPxAy#gdw$P-?Ygi3b^rg@vqcF)LXJ`Z z2v!I-rX^)3>Hz@EuuoQY<{DRQk!S+I#zP&kvh*I7@pzU$(cbHt(e{keo(s34i_D1> zMX&SNR3qvk(VGJcZ3*1V!Czf6L^H8XX5=Q%%2TS#Qs+L}M_HuFh*j{&S->B2J;mnSUz10)88Q}_k zabOtZw2sXj_o@coiZ=bwZ%IqMvPHwIOT~LC3f@1kk#6C|B)w#veO)o@Q`f#{yYli5 zs?dsv^9NF1Cv(Vr-4DAi*-E#X7W<40J>+|=|L!i>U%z-PDz~^v?Hla0>X**=*|w=a zN|s${%uUNMQ2#jgljPL9&&ifFrNg3zvt~IGxm@Q_;syKd`Zp5%ulBZ6EMB~dlGj&> zqUA+*5;)~e8z;wpr!U+q*z4)Aw*U4Prp(!gn*38ldP2KUc2Y4pwytF0G_NbAoE#qN zYtB_0rrxje2n}`Fk#V$DDLFuLT(FJTzkAftbIJb{rcQC`wlV83T$g;8Z++>TRXH~C ze^npLQ+c1=SiJJ8vs3lHv10cFPNeWx6VBBS0GxDE&1Y4ScPbs>uCP#D@TfTps$~j?JR!x84|BKaORv-OE z;nG3dLxySAjW^e(PPB^;E;G_^Z#$FND@=d$e(^$5i|3}nkGe@=d8M1T4Lr@BFfO~d zBwviQJ|B$gi9XX(YIMZrsVaR^J@>T9yA*YKuYJHy6ZZhWu7Jz_spaz9^+rBEqWxWE zE*WA~yhTPB{XgXfEiWq?t_MdR8~uSddRN+a>{XQ852@0Haf`wY>W^MY7^M2;@hbax zPK9iDy=NsYJ8Eav{lARzarUG0y*J;c=WUsgm2Li~DtCF&o3c!4LDG!hI%Mt?DOqvU zs!DW|QQ2I%YmrE`@?P2FhL4{n_VnNX{?c6?-s+cB{kyBzsKY(JeO1Esy_?EuiCXms zWoLmz*E@Nx$)tTkTZhi|9F|r1+6!c7%GoyK;oZbvhfK15Zk+3B;4I>+~uySX=R zt;t!pd(}C$wQDZcJoK1P(ygt}XukDdqN@3H-@Amd`cYnZpHWHc#)+kgW$Iq335~-^1 z$L*LWEfL`L<$Hiy5-sNdvXvFVpNZGTlrO0W@PP_^BA*J#juAUV*){HA+m4mIIZQZ-08dC@nlrIJ%$-BQhn1O>oE3rn3&5!o$X}+ZVLxxZHfwHkw5dLV zG62IAvJjLBn5NU>D04nD@au|AW3#5agL0`{pJ|^cpT=iRPY)H&7Y0s`3RPMuQP>lv zUn8X}H_n`ZpuRL;Hz)_Qh1tY2rLhSUg~51|G%(B&f$}9k@KBocU~D`!8WdAu69Fe~+f+|P~3Uq+2j1^{DD|>|_T*0$pN_c=YNB3+SS z79V*K+;Y|a3dvz>?8~X4dB^hM(6V!nbgeiOJ&M6nAT@%M&rDjII5nuO%vD*`sfT$} Yw=b6)d;mIVL`Z+K>3H`g9k+SlZ@x^mN&o-= literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/mdns_receive.c.B5E60DD8BC9F0846.idx b/firmware/.cache/clangd/index/mdns_receive.c.B5E60DD8BC9F0846.idx new file mode 100644 index 0000000000000000000000000000000000000000..db5fb0db0f95cb508a63e232ea507c3098aa3143 GIT binary patch literal 24760 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 literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/mdns_responder.c.746A24B408E0043C.idx b/firmware/.cache/clangd/index/mdns_responder.c.746A24B408E0043C.idx new file mode 100644 index 0000000000000000000000000000000000000000..1279994a925df5f06982d047618047711c08dac5 GIT binary patch literal 43912 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 NKOhM|!&4KW{0m7^oTUH& literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/mdns_responder.h.C5FB523E342EF65B.idx b/firmware/.cache/clangd/index/mdns_responder.h.C5FB523E342EF65B.idx new file mode 100644 index 0000000000000000000000000000000000000000..730b74571f4ae044bfc8c76c469b700ac1c785da GIT binary patch literal 1944 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 literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/mdns_send.h.4F6F65E6B9467994.idx b/firmware/.cache/clangd/index/mdns_send.h.4F6F65E6B9467994.idx new file mode 100644 index 0000000000000000000000000000000000000000..29b7c7df27ce51ac9085ff76349fde986674e273 GIT binary patch literal 3686 zcmYjT3pkW%8-7P74c|Hp#$g7Ha#jr)GWaG88poK39Lm{dl+#vDgPi`5WH-f<5~}Sa zDhgYhB1t03(w3_&kra_ywfaBb&dYq)HHY_}`@Ns%eV*sNukqm8+XqMkU>m~S7Zn;G zC=LLS$6j&qu|Gx<0jR|m`^x&aM(rLlm7RU_O|o*d)^xf?`^P5wt+YKIEQN@?z_GLx z`G~h6an+j+R+WX=eI45CaJWvn!>5Tt4ZHKdy|(ULGu6uJXiM@gE8P<@M2o8$stHy{H}y0lBU*owR`q3d6^Gf>i%`x@N1|v%rXBg6G#$(-I@{%nS(=>~-DS{gFpS znSF|Wc7(9EgC`sN9_-$s`Swzg7TIn!XY_EPlhp6^rFxGdZ(8&6w<@+(zC2!0a3A`s{2Xt@X5{ zid^hH6Tg~!evTYZ>n@AeMk>#pTJ}uuJjOm-eRTAt+gwR5ePlm*XmjS8Mv9b}u>n1m zA6yph$dWX=Z&v1*b6>aE`pOZ)23{J`Iw!!O{$*}LUI7&mf1=*DYgu#Y(F!?4*F0{` z3LmF*hUGwM-u%7`%;zgk8OL3oJaFAHT_%h?;>ZfTR_Ks4s`Tw~&0{gu2lvWYmo`6j zQW8gRi(jRF9F}Z7!0nto*j2XdMKz<_M_b#!vt?kIo6{H?@l#enn<_gXeKheL{exd7 zKRY*z=G%`2F>mq3`R|=;%0A!nztU3d`zUTs$$e_Jj1jP^O3l91 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 RcM`|lH;Y+X0ZRx2@P9|T5WfHb literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/mdns_service.c.3ED53626DAC5EF3D.idx b/firmware/.cache/clangd/index/mdns_service.c.3ED53626DAC5EF3D.idx new file mode 100644 index 0000000000000000000000000000000000000000..2d0d303ea3167c61607d472ead7ceeac1bd8a169 GIT binary patch literal 10182 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 literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/mdns_utils.c.65695015EB907823.idx b/firmware/.cache/clangd/index/mdns_utils.c.65695015EB907823.idx new file mode 100644 index 0000000000000000000000000000000000000000..7209bb73a5dcc057752a65f2620ce8ae995dcbe0 GIT binary patch literal 7340 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 E00~};=>Px# literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/mdns_utils.h.F6BBFFB10960D7CE.idx b/firmware/.cache/clangd/index/mdns_utils.h.F6BBFFB10960D7CE.idx new file mode 100644 index 0000000000000000000000000000000000000000..58d532e8045f11acd4b2101b7caa762ddbd0c54f GIT binary patch literal 3020 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 Fz<<9ILzVyl literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/nfc_brute.c.5CE5CA4075A21387.idx b/firmware/.cache/clangd/index/nfc_brute.c.5CE5CA4075A21387.idx new file mode 100644 index 0000000000000000000000000000000000000000..b80b8d4327dbeaa6ec094fe394a4403610b09de5 GIT binary patch literal 4894 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 literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/nfc_brute.h.357ACE396DF621D3.idx b/firmware/.cache/clangd/index/nfc_brute.h.357ACE396DF621D3.idx new file mode 100644 index 0000000000000000000000000000000000000000..ee77994003fdbb26a552423ac0924a4c4061425f GIT binary patch literal 952 zcmWIYbaUIl%)sEB;#rZKT9U}Zz`!63#Kk2=nHfwB3_h$33>98Dw%J}Y7>!l@_$n^7n^S3_`Q22ZaL;E3V?t4WmFF1V{K9?x}N5r({ZS@LH z(HQYf59Gpsdm9{-wz6$3516bXwqftI^R|b0p6l&QHO7||-O!M_N_O?F-A_gQgd*~^?WPF+;OaK>J9M_aLiqaU%HHjq zUw+sAVB79(@I=eRo#kmx3zu!#;oiCLP9@o1U3$W1|A{4fzRwoAS9`@p@?3Ju+V34u z?HcCwx@L*lyx=e9QEA4aSETs)YxKVv2Su-(Y(HVcZ!z}*>$AOqA6Bmxyz8kcTg5*$ zec8wDtLMJc_7ko+`-I!%hxY^1Y|cOLv>Mafgeo4UZdJZ?@6^4Uac?rz>lR+u%w!2Z zc4OihU0z-3hoV}}%qQBGt;z`KTXL*8sC-S~G|idD3wP{Gcx~;IwQv^G%+Ibn_S^pr z&tjeCe`KGEMO+g4Un(cPhuk(Gs!iyq|wf{KsG9>VO3o{Rwu%$3u7|8P% z4udHIYS9uggzYk$1 woJ0__xG1^U9Y`~AwVM5{2;o|Jm6e;5gN>bm1F8^6u_2h82qrs%$&FwF09z|_fB*mh literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/nfc_deep.c.84695751986FA510.idx b/firmware/.cache/clangd/index/nfc_deep.c.84695751986FA510.idx new file mode 100644 index 0000000000000000000000000000000000000000..031cb5d7389125f34f2d486a91f7e5e78fde98d0 GIT binary patch literal 4884 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 literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/nfc_deep.h.CD94CBA950807F37.idx b/firmware/.cache/clangd/index/nfc_deep.h.CD94CBA950807F37.idx new file mode 100644 index 0000000000000000000000000000000000000000..3192dd879e83662ec43a8358ec5a619a9946fbe4 GIT binary patch literal 560 zcmWIYbaT^SVqkDi@vO*AElFfyU|k_P5?Dyegm7{B(gB&nu3(3V~9;ojRtv zKX-j&c5Q+9-a{V_#cm4A7v=oo8h*6%fi2fD-pY+1uXRK{5vjguA7s3>?2_z}JL@F( z@7gVSd&QY--f7mS7G0>2$&5b6W58Q(^Vrz6CS&S?6>EK#bwBh`IrX&q<%c^STeW6| zNQ#_t+12xLPw3LC!Eqb*23K*i)$40>)!7AvwzY1ay8VIl|GSbu8Hy`&lazrWK2iGxD(WGVrp(Oq}0kTpa$OXe~%shF1$F3^Xk#5u~lSD7hHq0tWWI750054o;uR R#KFeE1`>e)4j6-h0RTqo)^`8^ literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/nfc_engine.c.DF9FC1E131D8D184.idx b/firmware/.cache/clangd/index/nfc_engine.c.DF9FC1E131D8D184.idx new file mode 100644 index 0000000000000000000000000000000000000000..f36d531a2f354994b999a203117f8bd0bd3421a5 GIT binary patch literal 7766 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 literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/nfc_engine.h.364F51431207B3F8.idx b/firmware/.cache/clangd/index/nfc_engine.h.364F51431207B3F8.idx new file mode 100644 index 0000000000000000000000000000000000000000..14f904863fb343ccf2a156dc6f4efab9b3a431b0 GIT binary patch literal 2638 zcmYjS3s_TE5>4;rHg$X1LBB2@T%6lt3k6)KMwK}#%)&n{3E zOS@>1_FF++v|{~QOGT7o>9$2mgS?@dqJc-;&KmR(YMAB;RT z*m7Za{rR&&|7iF{INVnr+5e~D*QUbbGBaAf-EpAaH#Y6^g{?uNA8&8F6_xVmaNajh zZk}%G;=RdqSLoVi?;0%=PTCumt=SZGdE{CCkWM;Zb>I!-iJ_~UBbz%6tN6U_%>AIs z*5gx+jfEW_{?qU~Yo)1sVfI@7wTabLl5+)Ps>=A0ZO^ugOp}Epr#sJC);yyUMK@|6 zANsCeGgnvmGiUnU)46M|bshV(VEuopf4sGBZ2yB_Hzl0E)}S1=CF{;Qp@63qr-+O4s?K4%Gt?f4}Xx}^iNloKdZ_c+5=??Wb#s1WEGWO^rY1LuwfS2?h z*q#0C!3$^KUOvbl9{l&6GCym@v0dJi>0OVf#TwO9N%)xzX`K8)Us0c=qD!+zmJ$#q znvCX+m7-mj&AIPqp8Puw)_!G<;d0pOY<&GPaLp*G~Jtf@mtw9Uw_$r^1~TD@$a1(dy zsspdAySR4u!czud+ftZ)2D9+-$6FfLpG#pNhyXxYO)=G!0%;hH0?@u(5FAJ$?&rZ} z;obIhAp|oqWQbyhs9Q7T$8K2njoK?v0Nvy7Gr zSwTLRHR)^PzU-}r;01g@1UJGTDY;62PX-x%_L%>!POX7p76$ZCOb?|-dPc7Xv}lI2 z3P;|Hvb}Pn_>=$`06_j;{vuWYn!O`Vu}7BEHuY6uyAVX<97IqgWd+IM-nvEY*$okY z6@n=I*$?{pvx0o?;HSR0bnog80np;`!Ct`$$^cE% zPQWMPlEvHVJ{}T+**HZhl=`xQq{uVdq64jC_aM+=|DzOhltM_$Xc3@=9A|`A9_6L} z?>_&L5X`|5#8B+Z3KF5O^2SWvZP8N*%s4_T#k5i?q+@g{K#O_K2%tD8*H(kqDd8?f zI~mKC8Gy_SM{kerYw_VgB;&|j3F)CH$utC+}Tm!h4Kn`R+0=`YmSrt(xl#DTpK- z2_(*B2r!zZz6(u=k7GMn@3I0ycx-mCotXDL?!1$};@5XY5Q#V<0ih&BVvblqngfxP zBNdQlL*&Qt6A*Sn6vPPD9pSQv>`YvF)))4AGsuVU<4y;+dVwa5_(G&zqD?0n zSt>XZyG&em!Y+I<#~vYQd;Z1RzbN)i@F5BXp)_&E6$f&fB!%k;)HJysJ{)N1=XeIR z^mEJtI{G;-0X5S&=kJM2u#)6R{WPY{+uF+lpVe pEpfca9m4s9krx0$Jg@GG0}$%5q6@Ka&6npt4CRJ~h2Z~${|6BA^FIIp literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/pn532_core.c.980577ACBAE216BC.idx b/firmware/.cache/clangd/index/pn532_core.c.980577ACBAE216BC.idx new file mode 100644 index 0000000000000000000000000000000000000000..7e077c12d2e6bc737d634905e3bb4b492969526f GIT binary patch literal 5292 zcmY*d3piA1A3tv$GG}HCgIpTS4C8*;62cgZ+?87)myo*{hKQ7FrDj}Hw53`RTL}@l zw;{D(Ht8b1wpw4Q)VI2C+0uSz?057!&*ORgF7uxEe|i7&;_c$-SSybp_7N`W36a~v zPy|8b@Sl`z$+2yc2oj}%An8@V2F&sAo5_59v%rqm9xdetza-yk3_gu4T@u(;@<=t~s?{y`XR-lFS3Ij+ z_W!h=zQnjJ>f*k^;uYI0j#vE{64RgMaH)2%bTF;^L5MnQAmPlRsl&2PrOi4UM@l~H za4vew`Re)ESztRD*KW&_OJDz(cByS!8!-1Z z;-f1VtajJ=sG9aX@U>+A(LK|TN^ah}^uePceI%FDsV8++yDe$T-ZtBpG&Z9h5tww` zuPOleg&MC%$QETu$1JMGOVU#x9j(d>+j&BJvM70&j@QGc0| z=;SmM9&T@8waQ+=H1-X?Vr=^BWTV-5RP33{HWj7IM+2O&b9H~5+-TS%vEi4V%9y3+ zKK=Bk;)8ZzJ?Gx*wof*WbaY#y(y>pD-xb7M7U|V-d?Wjl z?}M#^w08`RLX!4{kY}4^Cmh>`!?<^ST!I?bhY*lcw@p+q~;V`RYpaD+XDR^#sM`{%V~=3`1xmxuHdR&0%v zRQs~FcDDz=&@BIL#!E_W;;E&LEt*L5WKLZ5Y{j5mn)=lof!=;-l-4z~9zf zsztJ6ruoC@CcVRowuV1l-=bosX`C;Z^7Y}e?mS0^)I;j($9HlWz_r zlZFbz*l%l7>?B4r`R`e}lcaTtuSS`h3s%3pm6<%Iyix8^q>GCD(aqf&;|f*F67z~! z)5X94Xo99`FoIQ|Y@n>kv&)Lnx%=Gkb^sW)EFth4$i%Bc7?54h|y#A4UdxUIX>-U=G?R1%HGQD4(w``+8+MYlTerG;M+8>6t(f8 z0=Hjh%HjsPFPLxw57H0!n>wLmx4Zm%bk@FGxr&jT6ZpR4qV3irrhqyCz9UUZl^rmZnB0?O2;Tpy?5;HXg6c2{ZxOWT>hAgQr3E&(T#`WNv_Z1 z1rM^pMEJzIvYHQR!&5eAw)vSpy(IDGXx6LpF!Tp*>FW=X!H+dY=WMK`9=K2JG@s3W z{WjF$zagQMPpaZ2Dab(_6#-w&S4jl87*`1)k(TTQ`#}K!A|N5{lJ*x%Fixc) zhvt3ZSh$)9*kCql2uVt6&w`IM>QEJbEY6XFl+XJFm_SPej4@*^ge1KTA(rc-$#;ZA zm%C7qih0{gY$ZzsG%yX8c)11J7p+sdp;`yiC`ie?je#*VML-kN)I>;B$pzbu%uNgQaW$rVLY}7a4-%VAyFh2Y?oYha*yP!K2AXn%-e(j69T3Pm|!MMghWOcjP$>f z$yrNGTPR4`ys-{obwEP|%rSF~MaHwO&AHZEhA${c<-8HaP&|A3m_D98Z0SN$zM5XL zF3EfG7X>Mvw<%(Z$|AtV*vgBdO^%F8;gi4B1YrNv1HWv{KfwbhpH7utpaKfcEBmSv zJW(65UtAZ0_tBcOt%^{T6Z@$sRfX8?YU@F4JR?9}8Rt0JP&9Q5lOBZTL8-jN$?NEBG4`Rm5S4 zQHT=+qZFcGHNhxhLFK+0+4rvzx|+D;7>X$o#rtxMT-)%kQ9}~W(`j^VXf<7$E)1=_ zt>Pfnjphccp;hx>|`Ed$gtz#$ZzI0E#K0DFQUj*NH-@dP9IiKiAjpS`!+ zC0^njpq>Ldgn|=oK)($*5=6nL!RZZNA9r(b1yx72h`NfQ9qIx>28UrlybxCzW(;c> zx-z^V$U<3U2(nQ&40V_~+K_63nvjWX;4802SHsYfV`%`XJPn>6blmMxdol#qqHAI3 z%5>F+RDaZ;3=M-#=q4D3a6$|qH42R)L!%-ZjfP#i-;qDeFW%2jyj-M z2UbE8qYk*%0WXMX0B8dsLqromn-&pmfZYak3C9bUe0BcZsRBA4y);c)f#@$B%9G_~ zA;_U}#DC?^Ke%c{HiA`isyVD$dRh8GW+$o>too3B;Liq8gJ3npGsGAAY#cQXRueoE zU^SDP39AKwTmay;D*?3XR~u36-00o0a7jy^!{`{pP#dlH#Pk}MMsP>K|VNt`UA zJ;i5Oe7zuce896}cs9=+kEA~RxctN0ou5T=mBWYH)87Rj?U)h z4Zn#qtxQ%{CoV}u#z}av;`9I^` z66~PwU_!^Y0?;b}lc)gx>GObo9x#c-&&FIk^rL#|D>+<25tKyi5r<@yOogB#qDUel z!BqyrAVE9UL^Y`pT#2kCK>?VdW>g6B5FQDN#}Rd;LeLlSB|+f@qJdNhh9lu5DB4&w zmI^@uA|OG*??87@At(fh5Rjl;Q~cD6E7(+aCZrtGI?W3f;f}yg;f~n0ilo>=jRQ5czWY9F rTWU($_QWLqmhhO^=%|SJt&ux-g=HiQGSheDg1GE`AR!0Pc7y)`b26c^ literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/pn532_core.h.9A8DA7CCA3043FA0.idx b/firmware/.cache/clangd/index/pn532_core.h.9A8DA7CCA3043FA0.idx new file mode 100644 index 0000000000000000000000000000000000000000..52868346d9d68e8da18d020880d09ae0136a33cb GIT binary patch literal 2414 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 D=J8iC literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/session_capture.c.530D7E003881BBF9.idx b/firmware/.cache/clangd/index/session_capture.c.530D7E003881BBF9.idx new file mode 100644 index 0000000000000000000000000000000000000000..9caf7af5c2f1e751134aa4b25f1f49c71d3cb3ff GIT binary patch literal 5820 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 literal 0 HcmV?d00001 diff --git a/firmware/.cache/clangd/index/session_capture.h.07244A2452854F4F.idx b/firmware/.cache/clangd/index/session_capture.h.07244A2452854F4F.idx new file mode 100644 index 0000000000000000000000000000000000000000..b8c6e34a2c90c3e3699c250b23cd244f0fa39f0d GIT binary patch literal 1468 zcmWIYbaUIn%D~{9;#rZKT9U}Zz`!63#Kk2=nUPEk48B0QiaBdT-e=!75coR3NZ!iB zOKPoVvcL_6CEBkuHeW1#vsgL$xyx)F&c7bBrhd!6f3kP7K>mF$vuXEsSAX}LGv}+H z-1+0JhFm>$uhP$Miz#AXeyDvp;~bm5V{!iu+BlrdWscc$U}dLb_>S|&w}K-kuU&FX zEdTIg_le@O8|t)Wmhy=&c3Jvik4a#AZs)N}nW9s@w7%rnUdl?(XQ)o!U7D@MD)&=y zMRqE~|02VNy^VEd8^yLRc*U{#wEq45=M-F>{G~biyl?3^Jl@5)w5>Ag%x~u%hXv+- z3n+ZrxpF~AXe-~OR|1<>Zj|m2YihLIYS4a6;LD+7rzUA{_3S-(od3ba>dX?qXrUuA z@@one{m*{+6{7z83d4gRyRJIOE;*cg&@SZI!RNn!=PR6v(mu?pde=Aad{5oVNh#6g zdz7m{G1d?XqXp0^!MAUafZ~7Fg|CBNKl)`oiv0S}P0ANbH{2 z`Z({fUSaF0h?1PFSF^GUotM7TJiYmaZ1ARprH`r(p1W_n(p!|(NZ#d=tX{mgZ^GBA zBoin0BzqgH^DVz!g&*I%@Ty#V@n#35{iz8r-p&*e)%MNpynax<Kl{mVJqV|E-e|-#$5?40G#xqrY$eQ%{EC%G@L`Mh1rP zdIf#Hb6%`G4C26a2LfW^tl|m`oE*$td;*MOtZf$y7pqO4E6Bqj0g-1A<7MTQV&G(D zWl$0XD)?&LU0t;PyCM&R3`~IttB5=UCnpO;fyg=m^{k~XraTN%Fa-jv0*YW0z*e*- zO}ps6;EERygCtCWEUT;x11CEZH`t0>QrRmK7tQnGVUU9<;AiCrDge3xY(iS1`PIgp zcZEC*(l7;5>{3b~1w4xUKu2CV`h3r7&&`*47!+U%1X%@T893P(A&%5t|44v~<<=b@ z26>nQVRm7NH^C+>b^iV!d)L`lJPfih1w5=gk{~O1!Hz6SO)H*_6rzlrkdTC`jy=5S z+0zMIcv*SG_!;;?866CG!~_@wka&V}f=UQE5ib!x1W%kn9Ig@;EkIkq(E(LuVta(^ zMrD);&=z3^VK%t0#6%QC)Zj5CCdDAd1`jhaSq)h|cpQkyn#fwgcrYD6TflJ&wFMTV zKw)r9LWNA;= literal 0 HcmV?d00001