# Reconstruct your EPB3 page Your private `address.epb` location file contains everything needed to reconstruct its book. No account, submitted passage, database or EPB API is needed. Keep it private: anyone holding it can reconstruct the book. Save these linked files together from `/algorithm/epb3/`: - [reconstruct.mjs](reconstruct.mjs) - [epb3.js](epb3.js), [bytes.js](bytes.js), [constants.js](constants.js) - [package.json](package.json), [package-lock.json](package-lock.json) - [golden-vectors.json](golden-vectors.json) - [specification.md](specification.md) With Node.js 24 or later, run in that directory: ```sh npm ci --ignore-scripts node reconstruct.mjs --self-test node reconstruct.mjs --address-file address.epb --page 173 --output page.txt ``` Installation needs the npm registry. Reconstruction afterward makes no network calls. The page number is 1 through 410; internal indices are 0 through 409. Output is a new private file, with 40 lines of 80 characters and a final newline. Existing files are refused. This preserves mathematical characters; it does not render the styled PDF or restore the original submitted punctuation/capitalization. The short book ID and shelf labels cannot replace the complete location file. Fixed synthetic examples cover one character, a short passage, a full page, a multi-page passage and a complete volume. Self-test compares saved location, first/final page and canonical digest hashes. These demonstrate repeatability; they do not verify a purchase, a claim, package signatures or service availability. The decoding files are a published extract of the versioned production engine. EPB3 golden examples use **BLAKE3**, not SHA-256. `addressHash` hashes the exact UTF-8 address; `firstPageHash` and `lastPageHash` hash the 3,200 raw base-29 digit bytes of those pages, not the formatted text file. `digest` is the domain-separated full-volume BLAKE3 identity defined in the specification. Private package file hashes use SHA-256; the earlier EPB2 full-volume fixture also labels its SHA-256 values separately. These hash conventions must not be interchanged. Reference implementation: Fly Strategic Group, LLC. No additional software license grant is made here. `@noble/hashes` 2.4.0 by Paul Miller and contributors is installed separately under its MIT license: https://github.com/paulmillr/noble-hashes.