upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlog <log@invalid>2026-10-03 22:21:04 +0000
committerlog <log@invalid>2026-10-03 22:21:04 +0000
commit286be276d117f5d6ae5b24b28e1d596a758d604f (patch)
tree522c00b2c4fa66fd38d8947e202402dd56d86c9f
parent757f4504958c32c4eb9bd1817a9d676010ce63d3 (diff)
size 45953
-rw-r--r--reveal/v5-000002/check.py319
-rw-r--r--reveal/v5-000002/manifest.txt28
-rw-r--r--reveal/v5-000002/manifest.txt.otsbin0 -> 619 bytes
-rw-r--r--reveal/v5-000002/r33361012.ctbin0 -> 16584 bytes
-rw-r--r--reveal/v5-000002/r33361012.nostr.json1
-rw-r--r--reveal/v5-000002/r33361012.tlock11
-rw-r--r--reveal/v5-000002/r33389812.ctbin0 -> 25658 bytes
-rw-r--r--reveal/v5-000002/r33389812.nostr.json1
-rw-r--r--reveal/v5-000002/r33389812.tlock11
-rw-r--r--reveal/v5-000002/r33476212.ctbin0 -> 6569 bytes
-rw-r--r--reveal/v5-000002/r33476212.nostr.json1
-rw-r--r--reveal/v5-000002/r33476212.tlock11
-rw-r--r--reveal/v5-000002/r33505012.ctbin0 -> 2589 bytes
-rw-r--r--reveal/v5-000002/r33505012.nostr.json1
-rw-r--r--reveal/v5-000002/r33505012.tlock11
-rw-r--r--reveal/v5-000002/r33562612.ctbin0 -> 1015 bytes
-rw-r--r--reveal/v5-000002/r33562612.nostr.json1
-rw-r--r--reveal/v5-000002/r33562612.tlock11
-rw-r--r--reveal/v5-000002/r33620212.ct3
-rw-r--r--reveal/v5-000002/r33620212.nostr.json1
-rw-r--r--reveal/v5-000002/r33620212.tlock11
-rw-r--r--reveal/v5-000002/r34513012.ctbin0 -> 16431 bytes
-rw-r--r--reveal/v5-000002/r34513012.nostr.json1
-rw-r--r--reveal/v5-000002/r34513012.tlock11
-rw-r--r--reveal/v5-000002/r34541812.ctbin0 -> 25482 bytes
-rw-r--r--reveal/v5-000002/r34541812.nostr.json1
-rw-r--r--reveal/v5-000002/r34541812.tlock11
-rw-r--r--reveal/v5-000002/r34570612.ctbin0 -> 659 bytes
-rw-r--r--reveal/v5-000002/r34570612.nostr.json1
-rw-r--r--reveal/v5-000002/r34570612.tlock11
-rw-r--r--reveal/v5-000002/r34628212.ctbin0 -> 6653 bytes
-rw-r--r--reveal/v5-000002/r34628212.nostr.json1
-rw-r--r--reveal/v5-000002/r34628212.tlock11
-rw-r--r--reveal/v5-000002/r34657012.ctbin0 -> 2939 bytes
-rw-r--r--reveal/v5-000002/r34657012.nostr.json1
-rw-r--r--reveal/v5-000002/r34657012.tlock11
-rw-r--r--reveal/v5-000002/r34714612.ctbin0 -> 1018 bytes
-rw-r--r--reveal/v5-000002/r34714612.nostr.json1
-rw-r--r--reveal/v5-000002/r34714612.tlock11
-rw-r--r--reveal/v5-000002/r34772212.ct3
-rw-r--r--reveal/v5-000002/r34772212.nostr.json1
-rw-r--r--reveal/v5-000002/r34772212.tlock11
-rw-r--r--reveal/v5-000002/r35348212.ctbin0 -> 1012 bytes
-rw-r--r--reveal/v5-000002/r35348212.nostr.json1
-rw-r--r--reveal/v5-000002/r35348212.tlock11
-rw-r--r--reveal/v5-000002/r35521012.ctbin0 -> 7900 bytes
-rw-r--r--reveal/v5-000002/r35521012.nostr.json1
-rw-r--r--reveal/v5-000002/r35521012.tlock11
-rw-r--r--reveal/v5-000002/r35693812.ctbin0 -> 1427 bytes
-rw-r--r--reveal/v5-000002/r35693812.nostr.json1
-rw-r--r--reveal/v5-000002/r35693812.tlock11
-rw-r--r--reveal/v5-000002/r35780212.ctbin0 -> 667 bytes
-rw-r--r--reveal/v5-000002/r35780212.nostr.json1
-rw-r--r--reveal/v5-000002/r35780212.tlock11
-rw-r--r--reveal/v5-000002/r36500212.ctbin0 -> 1022 bytes
-rw-r--r--reveal/v5-000002/r36500212.nostr.json1
-rw-r--r--reveal/v5-000002/r36500212.tlock11
-rw-r--r--reveal/v5-000002/r36615412.ctbin0 -> 1558 bytes
-rw-r--r--reveal/v5-000002/r36615412.nostr.json1
-rw-r--r--reveal/v5-000002/r36615412.tlock11
-rw-r--r--reveal/v5-000002/r36673012.ctbin0 -> 7945 bytes
-rw-r--r--reveal/v5-000002/r36673012.nostr.json1
-rw-r--r--reveal/v5-000002/r36673012.tlock11
-rw-r--r--reveal/v5-000002/r36845812.ctbin0 -> 1014 bytes
-rw-r--r--reveal/v5-000002/r36845812.nostr.json1
-rw-r--r--reveal/v5-000002/r36845812.tlock11
-rw-r--r--reveal/v5-000002/r37767412.ctbin0 -> 1718 bytes
-rw-r--r--reveal/v5-000002/r37767412.nostr.json1
-rw-r--r--reveal/v5-000002/r37767412.tlock11
-rw-r--r--reveal/v5-000002/seal.json43
70 files changed, 660 insertions, 0 deletions
diff --git a/reveal/v5-000002/check.py b/reveal/v5-000002/check.py
new file mode 100644
index 0000000..7f86b8d
--- /dev/null
+++ b/reveal/v5-000002/check.py
@@ -0,0 +1,319 @@
1#!/usr/bin/env python3
2"""
3Check Echo's self-revealing ledger seals (`sha256-live-v5`) without trusting Echo.
4
5 python3 check.py SEAL_DIR [SEAL_DIR ...] [--tle PATH] [--offline]
6
7Needs Python 3.11+, the `cryptography` package (ChaCha20-Poly1305) and drand's `tle` binary
8(`go install github.com/drand/tlock/cmd/tle@v1.2.0`). It imports nothing of Echo's: a checker that needs the thing it
9checks is not a checker, which is why it is copied, whole, into every seal directory.
10
11Each SEAL_DIR is one seal: `manifest.txt` (the exact text the seal's digest is the sha256 of), `seal.json`, and per
12reveal group `r<ROUND>.tlock` (the group's key, time-locked to that drand round) and `r<ROUND>.ct` (the group,
13encrypted under that key), and, once the group has been revealed, `r<ROUND>.held.json` (how many of its withheld
14lines Echo publishes no salt for, and why) and any number of `r<ROUND>.salts.<N>.json`: each the salts of withheld
15lines Echo decided to open and had not erased, each with its line. `manifest.txt.ots`, when present, is an
16OpenTimestamps proof over the manifest: `ots verify manifest.txt.ots` checks it against Bitcoin.
17
18What it checks, from the files alone and the beacon:
19 1. the manifest hashes to the seal's digest, and each seal names the one before it (when several are given);
20 2. each group's ciphertext and locked key hash to what the manifest commits, and the key is locked to the
21 manifest's round of the manifest's chain;
22 3. for every group whose round the beacon has signed: the round's signature as each relay serves it, the key
23 unlocked with it, the group decrypted, its bytes hashed to the committed digest, its lines and withheld lines
24 counted against the committed counts, its lines in id order, and every line's reveal day recomputed from its
25 own settling instant under the seal's named rule (`utc-day-after-close`: the first 00:00 UTC after
26 `settles_at`, else after the deadline);
27 4. for every opened group with releases: each names this seal, round and group and its own number; each released
28 salt and line hash to the withheld line's committed hash; no line is settled twice; and a hold, where there is
29 one, names the group and counts no more lines than are withheld;
30 5. once every group of every seal from the first is open and every withheld line released: the union of their v4
31 lines, sorted by id, rehashes to the v4 digest the last seal follows, so no sealed forecast was left out of a
32 reveal. Where a withheld line has no released salt (held, erased, or not yet released) that digest cannot be
33 rebuilt, and this says so and why: what is checked then is only that every forecast the v4 seal covers is in a
34 group, counted. A withheld line is never called verified.
35
36A group whose round is not yet signed, or whose withheld lines have no release yet, is reported as pending or held,
37not as a failure. Exit 0 when everything checkable passed, 1 when anything did not match.
38"""
39from __future__ import annotations
40
41import argparse
42import base64
43import hashlib
44import json
45import re
46import subprocess
47import sys
48import urllib.request
49import zlib
50from datetime import datetime, timedelta, timezone
51from pathlib import Path
52
53
54def sha(b: bytes) -> str:
55 return hashlib.sha256(b).hexdigest()
56
57
58def parse_manifest(text: str) -> dict:
59 lines = text.split("\n")
60 if lines[0] != "sha256-live-v5":
61 raise ValueError(f"not a v5 manifest: {lines[0]!r}")
62 m = {"groups": []}
63 for ln in lines[1:]:
64 word, _, rest = ln.partition(" ")
65 if word == "prev":
66 m["prev"] = None if rest == "-" else rest
67 elif word == "follows":
68 seq, digest, n = rest.split(" ")
69 m["follows"] = {"seq": int(seq), "digest": digest, "n": int(n)}
70 elif word == "covers":
71 m["covers"] = rest.split(" ")
72 elif word == "variant":
73 m["variant"] = json.loads(rest)
74 elif word == "counts":
75 m["n"], m["n_withheld"], m["n_groups"] = map(int, rest.split(" "))
76 elif word == "group":
77 r, at, n, w, digest, ct, key, late = rest.split(" ")
78 m["groups"].append({"round": int(r), "reveal_at": at, "n": int(n), "n_withheld": int(w),
79 "digest": digest, "ct": ct, "key": key, "late": late == "1"})
80 else:
81 raise ValueError(f"unknown manifest line {ln!r}")
82 return m
83
84
85def stanza(locked: str) -> tuple[int, str] | None:
86 body = "".join(ln for ln in locked.strip().splitlines() if not ln.startswith("-----"))
87 m = re.search(rb"-> tlock (\d+) ([0-9a-f]{64})", base64.b64decode(body))
88 return (int(m.group(1)), m.group(2).decode()) if m else None
89
90
91def round_at(beacon: dict, at: datetime) -> int:
92 t = at.timestamp()
93 whole = int(t) + (t != int(t))
94 if whole <= beacon["genesis_time"]:
95 return 1
96 return -(-(whole - beacon["genesis_time"]) // beacon["period"]) + 1
97
98
99def reveal_day(closes: datetime) -> datetime:
100 d = closes.astimezone(timezone.utc).date() + timedelta(days=1)
101 return datetime(d.year, d.month, d.day, tzinfo=timezone.utc)
102
103
104def parse_line(ln: str) -> dict:
105 """One line: `id|issued_at|deadline|forecaster|p|settlement|anchor<TAB>open:<v4>` or `...<TAB>withheld:<hex>`."""
106 numeric, tab, text = ln.partition("\t")
107 if not tab:
108 raise ValueError("a line without its text layer")
109 fid, issued, deadline, forecaster, p, rest = numeric.split("|", 5)
110 dec = json.JSONDecoder()
111 settle, end = dec.raw_decode(rest)
112 if rest[end] != "|":
113 raise ValueError("settlement not followed by the anchor")
114 anchor, end2 = dec.raw_decode(rest, end + 1)
115 if end2 != len(rest):
116 raise ValueError("trailing bytes after the anchor")
117 out = {"id": int(fid), "issued_at": issued, "deadline": deadline, "forecaster": forecaster, "p": float(p),
118 "settlement": settle, "anchor": anchor}
119 if text.startswith("open:"):
120 out["v4"] = text[5:]
121 if not out["v4"].startswith(f"{fid}|"):
122 raise ValueError("the text layer is another forecast's line")
123 elif re.fullmatch(r"withheld:[0-9a-f]{64}", text):
124 out["withheld"] = text[9:]
125 else:
126 raise ValueError(f"unknown text layer {text[:20]!r}")
127 return out
128
129
130def beacon_round(beacon: dict, rnd: int) -> dict:
131 """What each relay serves for the round: its signature, or why there is none."""
132 out = {}
133 for relay in beacon["relays"]:
134 url = f"{relay.rstrip('/')}/{beacon['chain_hash']}/public/{rnd}"
135 try:
136 with urllib.request.urlopen(url, timeout=20) as r: # noqa: S310 — the seal's own relays
137 out[relay] = json.loads(r.read()).get("signature")
138 except Exception as exc: # noqa: BLE001 — report, go on
139 out[relay] = f"unavailable ({type(exc).__name__})"
140 return out
141
142
143def unlock(tle: str, beacon: dict, locked: str) -> bytes | None:
144 """The key, or None while the round is unsigned. Each relay is tried in turn."""
145 errors = []
146 for relay in beacon["relays"]:
147 r = subprocess.run([tle, "-d", "-n", relay.rstrip("/") + "/", "-c", beacon["chain_hash"]],
148 input=locked.encode(), capture_output=True, timeout=120, check=False)
149 if r.returncode == 0:
150 return r.stdout
151 if b"too early" in r.stderr:
152 return None
153 errors.append(f"{relay}: {r.stderr.decode(errors='replace').strip()[-160:]}")
154 raise RuntimeError("; ".join(errors))
155
156
157def release(d: Path, seal_digest: str, g: dict, lines: list[dict], say) -> tuple[dict[int, str], int, str | None]:
158 """An opened group's releases and hold, checked against the group: (id -> the v4 line each released salt opens,
159 how many withheld lines were opened and found erased, and the hold's reason where Echo published one)."""
160 r = g["round"]
161 shut = {x["id"]: x["withheld"] for x in lines if "withheld" in x}
162 out, erased, seen, bad = {}, set(), set(), []
163 files = sorted(d.glob(f"r{r}.salts.*.json"), key=lambda p: int(p.name.split(".")[-2]))
164 for k, path in enumerate(files):
165 rel = json.loads(path.read_text())
166 say(rel.get("format") == "echo-reveal-salts/1" and rel.get("seal") == seal_digest
167 and rel.get("round") == r and rel.get("group") == g["digest"] and rel.get("n") == k
168 and path.name == f"r{r}.salts.{k}.json",
169 f"round {r}: release {k} names this seal, round and group, and follows the one before")
170 for x in rel.get("released", []):
171 i, line = x["id"], x["line"]
172 opens = (i in shut and i not in seen and line.startswith(f"{i}|")
173 and sha(bytes.fromhex(x["salt"]) + line.encode()) == shut[i])
174 if opens:
175 out[i] = line
176 else:
177 bad.append(i)
178 seen.add(i)
179 for i in rel.get("erased", []):
180 if i not in shut or i in seen:
181 bad.append(i)
182 erased.add(i)
183 seen.add(i)
184 if files:
185 say(not bad, f"round {r}: {len(out)} released lines open their committed hashes, {len(erased)} opened lines "
186 f"found erased, none settled twice" + (f" ({len(bad)} do not, e.g. {bad[:3]})" if bad else ""))
187 why = None
188 hold = d / f"r{r}.held.json"
189 if hold.exists():
190 h = json.loads(hold.read_text())
191 say(h.get("format") == "echo-reveal-held/1" and h.get("seal") == seal_digest and h.get("round") == r
192 and h.get("group") == g["digest"] and 0 <= h.get("held", -1) <= len(shut),
193 f"round {r}: the hold names this seal, round and group, and counts at most its withheld lines")
194 why = str(h.get("why") or "no reason given")
195 left = len(shut) - len(out) - len(erased)
196 if left:
197 print(f" .... round {r}: {left} withheld lines have no released salt: counted, not rehashed"
198 + (f" (Echo publishes none: {why})" if why else " (no release or hold published yet)"))
199 return out, len(erased), why
200
201
202def check(dirs: list[Path], tle: str = "tle", offline: bool = False) -> int:
203 from cryptography.hazmat.primitives.ciphers.aead import ChaCha20Poly1305
204
205 failed, pending, withheld, held, erased, union = 0, 0, 0, 0, 0, {}
206 reasons: set[str] = set()
207 first_prev = "unset"
208
209 def say(ok: bool, what: str) -> None:
210 nonlocal failed
211 failed += not ok
212 print(f" {'PASS' if ok else 'FAIL'} {what}")
213
214 prev_digest = None
215 seals = []
216 for d in dirs:
217 text = (d / "manifest.txt").read_bytes()
218 row = json.loads((d / "seal.json").read_text())
219 seals.append((d, text, row, parse_manifest(text.decode())))
220 seals.sort(key=lambda s: s[2]["seq"])
221 last = None
222 for i, (d, text, row, m) in enumerate(seals):
223 print(f"v5 seal {row['seq']}: {m['n']} forecasts in {m['n_groups']} reveal groups, {m['n_withheld']} withheld, "
224 f"follows v4 seal {m['follows']['seq']}")
225 say(sha(text) == row["digest"], f"sha256(manifest.txt) is the seal's digest {row['digest'][:16]}…")
226 say(len(m["groups"]) == m["n_groups"] and sum(g["n"] for g in m["groups"]) == m["n"]
227 and sum(g["n_withheld"] for g in m["groups"]) == m["n_withheld"], "the manifest's counts add up")
228 if i == 0:
229 first_prev = m["prev"]
230 else:
231 say(m["prev"] == prev_digest, "it names the seal before it")
232 prev_digest, last = row["digest"], m
233 b = m["variant"]["beacon"]
234 for g in m["groups"]:
235 r = g["round"]
236 ct, locked = (d / f"r{r}.ct").read_bytes(), (d / f"r{r}.tlock").read_text()
237 say(sha(ct) == g["ct"] and sha(locked.encode()) == g["key"],
238 f"round {r}: the ciphertext and the locked key are the committed ones")
239 say(stanza(locked) == (r, b["chain_hash"]), f"round {r}: the key is locked to that round of that chain")
240 say(round_at(b, datetime.fromisoformat(g["reveal_at"])) == r, f"round {r} is signed at {g['reveal_at']}")
241 if not offline:
242 sigs = beacon_round(b, r)
243 good = {s for s in sigs.values() if s and not s.startswith("unavailable")}
244 print(f" .... round {r} signature from {len(sigs)} relays: "
245 + ("not yet signed" if not good else f"{len(good)} distinct: {min(good)[:24]}…"))
246 if len(good) > 1:
247 say(False, f"round {r}: relays disagree on its signature")
248 key = unlock(tle, b, locked)
249 if key is None:
250 pending += 1
251 print(f" .... round {r} ({g['reveal_at']}) not yet signed: {g['n']} forecasts stay locked")
252 continue
253 try:
254 plain = zlib.decompress(ChaCha20Poly1305(key).decrypt(b"\x00" * 12, ct, None))
255 except Exception as exc: # noqa: BLE001 — a finding, not a crash
256 say(False, f"round {r}: the ciphertext does not open under its key ({type(exc).__name__})")
257 continue
258 say(sha(plain) == g["digest"], f"round {r}: the opened group hashes to its committed digest")
259 lines = [parse_line(ln) for ln in plain.decode().split("\n")]
260 ids = [x["id"] for x in lines]
261 say(len(lines) == g["n"] and sum("withheld" in x for x in lines) == g["n_withheld"],
262 f"round {r}: {len(lines)} lines, {g['n_withheld']} withheld, as committed")
263 say(ids == sorted(set(ids)), f"round {r}: lines in id order, none twice")
264 due = datetime.fromisoformat(g["reveal_at"])
265 if m["variant"].get("reveal") == "utc-day-after-close":
266 wrong = [x["id"] for x in lines if reveal_day(datetime.fromisoformat(
267 (x["settlement"] or {}).get("settles_at") or x["deadline"])) != due]
268 say(not wrong, f"round {r}: every line belongs to this reveal day"
269 + (f" ({len(wrong)} do not, e.g. {wrong[:3]})" if wrong else ""))
270 else:
271 print(f" .... round {r}: reveal rule {m['variant'].get('reveal')!r} is not one this checker "
272 "recomputes; which lines belong to the day is unchecked")
273 opened, gone, why = release(d, row["digest"], g, lines, say)
274 for x in lines:
275 if x["id"] in union:
276 say(False, f"forecast {x['id']} is in two groups")
277 union[x["id"]] = x.get("v4") or opened.get(x["id"])
278 shut = sum(1 for x in lines if "withheld" in x and x["id"] not in opened) - gone
279 erased += gone
280 if why is None:
281 withheld += shut
282 else:
283 held += shut
284 reasons.add(why)
285 if last is not None:
286 if first_prev is not None:
287 print(" .... completeness: the first seal given is not the chain's first; give every seal from it")
288 elif pending:
289 print(f" .... completeness: {pending} groups still locked; it is checkable once all have opened")
290 elif withheld or held or erased:
291 told = [f"{withheld} withheld lines not yet released"] if withheld else []
292 told += ([f"{held} withheld lines held, for which Echo publishes no salt ({'; '.join(sorted(reasons))})"]
293 if held else [])
294 told += [f"{erased} erased stay hashes"] if erased else []
295 print(f" .... completeness: {', '.join(told)}: those lines can be counted but not rehashed, so the v4 "
296 f"lines cannot all be rebuilt and the v4 digest is NOT checked; {len(union)} forecasts against "
297 f"the v4 seal's {last['follows']['n']}")
298 say(len(union) == last["follows"]["n"], "every forecast the v4 seal covers is in a group, counted")
299 else:
300 got = sha("\n".join(union[k] for k in sorted(union)).encode())
301 say(got == last["follows"]["digest"] and len(union) == last["follows"]["n"],
302 f"the union of {len(union)} lines rehashes to v4 seal {last['follows']['seq']}'s digest")
303 print("\nNOT VERIFIED" if failed else f"\nVERIFIED{f' ({pending} groups not yet revealed)' if pending else ''}")
304 return 1 if failed else 0
305
306
307def main(argv: list[str]) -> int:
308 ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
309 ap.add_argument("dirs", nargs="*", default=[str(Path(__file__).resolve().parent)],
310 help="seal directories, any order (default: the one this script sits in)")
311 ap.add_argument("--tle", default="tle", help="the tle binary that unlocks a key once its round is signed")
312 ap.add_argument("--offline", action="store_true",
313 help="do not fetch each round's signature from the relays for display; tle still asks them")
314 args = ap.parse_args(argv)
315 return check([Path(d) for d in args.dirs], tle=args.tle, offline=args.offline)
316
317
318if __name__ == "__main__":
319 raise SystemExit(main(sys.argv[1:]))
diff --git a/reveal/v5-000002/manifest.txt b/reveal/v5-000002/manifest.txt
new file mode 100644
index 0000000..6c0e7dc
--- /dev/null
+++ b/reveal/v5-000002/manifest.txt
@@ -0,0 +1,28 @@
1sha256-live-v5
2prev ab1c64ee208cedf8ce14e1e4a1568de02e03578c9af283db73392ad2e61c90e8
3follows 32 c753d21baf783fb9c3da328f4cad51b86947894db86b654cbf8f7b6f32e46b12 39080
4covers 2026-10-03T01:35:21.431130Z 2026-10-03T22:17:20.526176Z
5variant {"beacon":{"chain_hash":"52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971","genesis_time":1692803367,"period":3,"relays":["https://api.drand.sh","https://api2.drand.sh","https://api3.drand.sh","https://drand.cloudflare.com"],"scheme":"bls-unchained-g1-rfc9380"},"cipher":"chacha20poly1305-zlib6-nonce0","gate":{"default":"withheld: a kept salt can be released later; an opened text can never be withdrawn","opened":"none","why":"no decision by Echo yet"},"line":"numeric<TAB>open:<v4 line> | numeric<TAB>withheld:sha256(salt||v4 line)","reveal":"utc-day-after-close","salts":"key ring: one content a seal, one part a line","tool":{"name":"tle","sha256":"69157d8c14a1d390d1b7744946288f83d4b10748471d5447f9abb77a5902c541","version":"tlock v1.2.0 -- github.com/drand/tlock"}}
6counts 2174 2174 22
7group 33361012 2026-10-25T00:00:00.000000Z 291 291 33adfebec2f854fa1070685207b874977af0c1172aeda9abe43d12a620020dba c1d3ba64b469d4f3930f47d8db07f2c9bbcf49833e993b98603e65f4b68b2f67 356bff0bcd1b94342a24559393e73c5e022f910bc32399a42259e65c0b3e0483 0
8group 33389812 2026-10-26T00:00:00.000000Z 444 444 87a31a73c6a60a6b4ad89c784b74d98ec10313574c7300c613ed37a8565a9fec de6b6b2434d11e40d54ec21b781a77b30635c8970045dca5c9c825e2630faa7c f32416b78810add206d76bcfbec55d727cb835de8a725559de59cbacc096fd50 0
9group 33476212 2026-10-29T00:00:00.000000Z 108 108 5fe17b9fc257f4f8994f1c273841645e81f00eea9e6334e71c32e01ec552006c ab79e3e972e4bbbce2826e574d68c431fec7f2c2caf48d7a7827d4c2b364a384 f2b4f9f6f1165c9525658bb89c829c0834c22e26213ed9b6788a1484145678e1 0
10group 33505012 2026-10-30T00:00:00.000000Z 39 39 f704607263411afb1a1a558d811bbedceea9d16103c6202dabeaa04f97d2021b dcf99e81a6730946afdfe73fd5d7e6647935bf4c99c2278e1ecce933605f07da 70e08e0fc3ea761314b1ffbe46971944fbf1148b4d140b6d58fe0ef3d3c6df15 0
11group 33562612 2026-11-01T00:00:00.000000Z 12 12 0994e360bc9e2bf894101d96a5805d45ad225e7beacac4dcaa93bfa031717ddc e30e25378b7274fd86cf1b7773f91f17179c56cf965b7bcd81191094fea2dc0b 0a3f6a6bed93c89fca64d60b6fcd79bebe3db91c55b453096930027a6e27e663 0
12group 33620212 2026-11-03T00:00:00.000000Z 8 8 4632d65ee69b7cf16df62373c419f258221d7f0a5bcd80e928a6ee4bcc662bcb 9434590b57d4a7a5d313d2e40dc314f4d9b870a65962432a2b2b2741ac0b874f e1a06a3fbbc2fecd2559219f8df3a7107eb792ee916c8264178863dc5f0c5cb3 0
13group 34513012 2026-12-04T00:00:00.000000Z 288 288 c896e58fc3bc1b740a5f160e2858d5ab7c94794b50b225b6d500f25598f20599 11bb92aa82ec56a3e4ac532b9be3b22ccd1146ab1af59e23f3e61749c60fa078 8ace916e2226f12ec6855595258f4a83c5afae035a8fadcbf9891257c4b03b0b 0
14group 34541812 2026-12-05T00:00:00.000000Z 438 438 2b440599fe95f65b753699069e589ea5e83aa1dc533b9e535848276cfa58d619 3fd2d3d1aea9ebe16dd6ad3575a14432b156b029f6cc7040799f796e68f497df 125a5f156d05cfc83d10ae8bd053955ccb6ed8bb7851c31367feea5e44c99d79 0
15group 34570612 2026-12-06T00:00:00.000000Z 6 6 8eb2fb8cd956fc87939d6570bcb42c0715270868138ac61c5ab57211c357202c b0b0854bacd39d2d597c6475c2d83fbb1eca38e89bc31b56ccde2936d8d27db9 b7fb8e95aa6b4e3b53b0704252e91f130d5b3cdc0553fe0e2f4e8852afe50630 0
16group 34628212 2026-12-08T00:00:00.000000Z 108 108 011bea7f2b79c4610c2e38bb8eb32f49fb5a4dbd22502804b3bcfaa85dbd77e0 98fc8fda5d771230319168e7069efbc41c1e2cab0e1dc2c091f6401008184e82 b87e80b268ebc780178d06f2ef7cf7fc296875f0cfd1f738e411233bb1bd06c0 0
17group 34657012 2026-12-09T00:00:00.000000Z 45 45 d5226dbf682ad934ac95962f5233ef6841d35ab7a4270421b85bc5c00ac26cae 5f113077e0f1b0abdc1209a380e115b5d5f651d939757252d6e8b4d7b81b7273 5744269fd804d01a0993edb26842ed800a06e4afa19501973bd6967e1553ea53 0
18group 34714612 2026-12-11T00:00:00.000000Z 12 12 d29e4a80129238f0f08c3a6a332c063d06a47770bef77c1d3733b6e424afc3e4 b9540491bbac83f80f988b90e3b54d0658ff7e6b02d6248d0a9adea3f5b4fc6b 3b42ef4b52a1622834b47db980794092f2de7bb367ebe4f2a55b3433c78832c9 0
19group 34772212 2026-12-13T00:00:00.000000Z 6 6 2b30ede949fd76117be1f2f5ec17834437f4c8fc8cf72c17ea71dbb9127d7236 dc6b2589e6887888285e9361347badeb1f3d89d23a1217b8e183632ed768322d 369867945a523e1ea9a18c74e3b8be931089cc2a8cfb9246d92018da8bf435ad 0
20group 35348212 2027-01-02T00:00:00.000000Z 12 12 d2b3ad6929abc0a3c0275b744fa851946d1ee3b4d5202a55870386278b82ceee 46cd2ce16f3c261eb48199c3a4214ba8ed274637114bb37eded7d060196f7658 dc5701f8d47c52ef23c23efc202efa1393d4c87a73886542637bdef387b0a6f3 0
21group 35521012 2027-01-08T00:00:00.000000Z 132 132 fed49efccf48deaff0c361e0dec30e3c03bae988f3c13fbd8204ee2a5755b7d6 809b9917d439f7ca5e0d18eb85eea114acd88d095c2dd776922a4c587c6deda1 a9259c906c2424228784c3bf229e91dfd011e8a73be581209fb3c4b6684dc0f0 0
22group 35693812 2027-01-14T00:00:00.000000Z 18 18 a7f40385a9ae95d125e065b46a80bb354eddb4797f48207991ad6f103891e7a5 d28d5df1d6bd5de73aade5412ca6dfe1b3d42aaed2ea660ad28eb19d57174646 8ff734953009fc583448f87341a2a64ca222ae91eac4aee970a3fd62a0952556 0
23group 35780212 2027-01-17T00:00:00.000000Z 6 6 915ee4582b257a3f3ba754c38562ad1fe7753a3eb22a534cf2222e08ba860525 f3c692c4e52e809cbbfcdf4ef2f42a9155e62cd258bc14f19fa7b4611def66c0 ad65f9727014f7e466beb8964a23ab8a3259ab3d314625f9bc1e5183911ce20e 0
24group 36500212 2027-02-11T00:00:00.000000Z 12 12 4697183c5f927f7e1bf7ab84c85b0b895b6a2a33a05e6088fb2a905673e5e9b8 ec69aab7edd474f898de8fd15dd4d8f96f4f283ed29a20bff1081ffff0a8b6ec 71db0fc0619441ad4925c3e283745b922744fb9713b664b53e30c9bc436d271d 0
25group 36615412 2027-02-15T00:00:00.000000Z 21 21 421d17c9d430c0353b60aff3229a511bfb588c6a87e5186974da748af19d3e00 777d6d62ab195bad30c098626bbee61f1b2f22b004492d1b4d9df41573f60895 5bb57f3b125ff30ef2860539240006d8fed7bd0e6d4fbcccbc6b95fa2a147db8 0
26group 36673012 2027-02-17T00:00:00.000000Z 132 132 f254febf89dba964eacbe2821d71dce5181eb38453823843ce73a7e0035dcd99 198a3b4d9cb0128cd775ac47f3f0ca91313ae9fc16f196e96b29969d798351a8 3d1bc4918bbc064024ba00441163854f9ed39033308fccc4335565ca5654b58e 0
27group 36845812 2027-02-23T00:00:00.000000Z 12 12 62a55726e177643b25c0966884a9ab4b50440f1c97b747abb15e937259047808 1bd131a9efb6129e803c04792e30900814554a6e34c8d992373f0576f3b31f4e 2731db8d2d5ca76156d253936b1186264568a670b890365f1455e5a9c37a42e4 0
28group 37767412 2027-03-27T00:00:00.000000Z 24 24 a3ffbbdcb088e96e83718ccd880c78a957e796687ccc7b6671b3f34b239f0c9c 80b8c82bc7dc9cdd2831421a4f41a1988485a74e00e3e2ce8335b4aec34da015 7ef717cc6657f189bf014dac829acbdb8985262ae0df5b3c40101b8aceeb287d 0 \ No newline at end of file
diff --git a/reveal/v5-000002/manifest.txt.ots b/reveal/v5-000002/manifest.txt.ots
new file mode 100644
index 0000000..afcf82c
--- /dev/null
+++ b/reveal/v5-000002/manifest.txt.ots
Binary files differ
diff --git a/reveal/v5-000002/r33361012.ct b/reveal/v5-000002/r33361012.ct
new file mode 100644
index 0000000..1e363c0
--- /dev/null
+++ b/reveal/v5-000002/r33361012.ct
Binary files differ
diff --git a/reveal/v5-000002/r33361012.nostr.json b/reveal/v5-000002/r33361012.nostr.json
new file mode 100644
index 0000000..14b53dd
--- /dev/null
+++ b/reveal/v5-000002/r33361012.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzMzYxMDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKZ0UwQllyRE5JU0NkL1FrUkxadzNhQkZKL0hyZlBXUC9TSWlwRk9x\nNWlJQkRINzh5S0xacU5VNG8vVHR4NGpZTApBUUtmcjR6WDJ3S29oeW5NamNyaDFv\nRWRwbUFtNUZlc1RmT3MvSFh3QjNJM0IzMkw3SzdDVkRITloydHJmR2taCmlFTXdT\ncGxtNlpFbzd5Y3lyRy9BYUZSM25ZaFRmM21DZ2diTTc1aHowV0EKLS0tIFpyZExG\nci80b1VaZ3VmWmo0L0VpTkh4NCtqWi9FeDdYd2daOGxXVE9MV28KPFxSj3yFYPJj\nleyJCnLOI51kys2DyGxzPGbd8ktjR+bH52F3XmhtIg/zD/+CVabt0Slp/+/qF/qi\n8EvLgJfUCg==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","33361012"],["reveal_at","2026-10-25T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","33adfebec2f854fa1070685207b874977af0c1172aeda9abe43d12a620020dba"],["ct","c1d3ba64b469d4f3930f47d8db07f2c9bbcf49833e993b98603e65f4b68b2f67"],["seal","4f2df0555093ef3febcf78c4eb30adb2dbb5fb63cfc55d458d4c5d1ca3c734eb"]]}
diff --git a/reveal/v5-000002/r33361012.tlock b/reveal/v5-000002/r33361012.tlock
new file mode 100644
index 0000000..6135b4d
--- /dev/null
+++ b/reveal/v5-000002/r33361012.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzMzYxMDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKZ0UwQllyRE5JU0NkL1FrUkxadzNhQkZKL0hyZlBXUC9TSWlwRk9x
5NWlJQkRINzh5S0xacU5VNG8vVHR4NGpZTApBUUtmcjR6WDJ3S29oeW5NamNyaDFv
6RWRwbUFtNUZlc1RmT3MvSFh3QjNJM0IzMkw3SzdDVkRITloydHJmR2taCmlFTXdT
7cGxtNlpFbzd5Y3lyRy9BYUZSM25ZaFRmM21DZ2diTTc1aHowV0EKLS0tIFpyZExG
8ci80b1VaZ3VmWmo0L0VpTkh4NCtqWi9FeDdYd2daOGxXVE9MV28KPFxSj3yFYPJj
9leyJCnLOI51kys2DyGxzPGbd8ktjR+bH52F3XmhtIg/zD/+CVabt0Slp/+/qF/qi
108EvLgJfUCg==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000002/r33389812.ct b/reveal/v5-000002/r33389812.ct
new file mode 100644
index 0000000..feb1639
--- /dev/null
+++ b/reveal/v5-000002/r33389812.ct
Binary files differ
diff --git a/reveal/v5-000002/r33389812.nostr.json b/reveal/v5-000002/r33389812.nostr.json
new file mode 100644
index 0000000..ea51c76
--- /dev/null
+++ b/reveal/v5-000002/r33389812.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzMzg5ODEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKaWt5aGdxd01tNEM3cUhPckgxKzNlTndhVzZTd0x4VUlmaWZIK2tH\nY0s3N2RSTHd6Y3pZZzRZT0dxUjJnZG1XYwpESEdrejNJTlBMTnhIMHVhZEsxaDBt\ncXp4RFFjTDhnQXZFNjFXdVNMbUlBci9HVklibXdSSFBITDFCQWhlWFpDClZuUUdR\nY3dzQVc5ZU93SmZTcFJMMkVBVXRmbWxhOWtGdlpGSCtkL283c0kKLS0tIGFFdGp3\nZUQ1TUVIVHRwazcyWUZHeGpXeFNyQm5lL2JXRzVQMGhUcTYya0EKvbCZ1WrpVUOH\nfsGHp0Mvlh/jSd4icokH2QsGRWde3VaNgZbQ5LTDkIZvBD1nhQhQsmtTwIrmKOid\n9FuXpz8Shg==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","33389812"],["reveal_at","2026-10-26T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","87a31a73c6a60a6b4ad89c784b74d98ec10313574c7300c613ed37a8565a9fec"],["ct","de6b6b2434d11e40d54ec21b781a77b30635c8970045dca5c9c825e2630faa7c"],["seal","4f2df0555093ef3febcf78c4eb30adb2dbb5fb63cfc55d458d4c5d1ca3c734eb"]]}
diff --git a/reveal/v5-000002/r33389812.tlock b/reveal/v5-000002/r33389812.tlock
new file mode 100644
index 0000000..e5dbf60
--- /dev/null
+++ b/reveal/v5-000002/r33389812.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzMzg5ODEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKaWt5aGdxd01tNEM3cUhPckgxKzNlTndhVzZTd0x4VUlmaWZIK2tH
5Y0s3N2RSTHd6Y3pZZzRZT0dxUjJnZG1XYwpESEdrejNJTlBMTnhIMHVhZEsxaDBt
6cXp4RFFjTDhnQXZFNjFXdVNMbUlBci9HVklibXdSSFBITDFCQWhlWFpDClZuUUdR
7Y3dzQVc5ZU93SmZTcFJMMkVBVXRmbWxhOWtGdlpGSCtkL283c0kKLS0tIGFFdGp3
8ZUQ1TUVIVHRwazcyWUZHeGpXeFNyQm5lL2JXRzVQMGhUcTYya0EKvbCZ1WrpVUOH
9fsGHp0Mvlh/jSd4icokH2QsGRWde3VaNgZbQ5LTDkIZvBD1nhQhQsmtTwIrmKOid
109FuXpz8Shg==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000002/r33476212.ct b/reveal/v5-000002/r33476212.ct
new file mode 100644
index 0000000..c24c760
--- /dev/null
+++ b/reveal/v5-000002/r33476212.ct
Binary files differ
diff --git a/reveal/v5-000002/r33476212.nostr.json b/reveal/v5-000002/r33476212.nostr.json
new file mode 100644
index 0000000..a809ea5
--- /dev/null
+++ b/reveal/v5-000002/r33476212.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzNDc2MjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKa1A3am0xUXJEWGdqdW5RTDEyTFpzazd2d0pLZHVwQitKWmZrQVhz\nZkJ5SFZiQVdSQTVHRVFDa0JhUCtwK2tuZQpCUmMzS3BUbGJZSlRjNzhlS3VFWjFu\nRVMyNXFDazZ6a2orVHJsYWpuS0VjcGtTZ0tjVGxXVG0rMkJNQ29EcEl6CmNhUnJS\nd3pjTmNaUDJLWXhVbmZCd3U2d3A3YXdJOTZ2MEw5eUFocG9GQ1kKLS0tIGQ0VFhJ\nUDE1RHRHTStiOEI2enhneUFtcGFVSzdzc2hvbGhuNWlDeUNvdEUK0OYskP0fEdgP\nRrvWFbjCr3brjM5wsYbm2C/ma9ApUssXUibC4pJKrrNnd2FLpi2Ziyy5gEt7vdeQ\n3cAnx+iDng==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","33476212"],["reveal_at","2026-10-29T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","5fe17b9fc257f4f8994f1c273841645e81f00eea9e6334e71c32e01ec552006c"],["ct","ab79e3e972e4bbbce2826e574d68c431fec7f2c2caf48d7a7827d4c2b364a384"],["seal","4f2df0555093ef3febcf78c4eb30adb2dbb5fb63cfc55d458d4c5d1ca3c734eb"]]}
diff --git a/reveal/v5-000002/r33476212.tlock b/reveal/v5-000002/r33476212.tlock
new file mode 100644
index 0000000..1391202
--- /dev/null
+++ b/reveal/v5-000002/r33476212.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzNDc2MjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKa1A3am0xUXJEWGdqdW5RTDEyTFpzazd2d0pLZHVwQitKWmZrQVhz
5ZkJ5SFZiQVdSQTVHRVFDa0JhUCtwK2tuZQpCUmMzS3BUbGJZSlRjNzhlS3VFWjFu
6RVMyNXFDazZ6a2orVHJsYWpuS0VjcGtTZ0tjVGxXVG0rMkJNQ29EcEl6CmNhUnJS
7d3pjTmNaUDJLWXhVbmZCd3U2d3A3YXdJOTZ2MEw5eUFocG9GQ1kKLS0tIGQ0VFhJ
8UDE1RHRHTStiOEI2enhneUFtcGFVSzdzc2hvbGhuNWlDeUNvdEUK0OYskP0fEdgP
9RrvWFbjCr3brjM5wsYbm2C/ma9ApUssXUibC4pJKrrNnd2FLpi2Ziyy5gEt7vdeQ
103cAnx+iDng==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000002/r33505012.ct b/reveal/v5-000002/r33505012.ct
new file mode 100644
index 0000000..6252292
--- /dev/null
+++ b/reveal/v5-000002/r33505012.ct
Binary files differ
diff --git a/reveal/v5-000002/r33505012.nostr.json b/reveal/v5-000002/r33505012.nostr.json
new file mode 100644
index 0000000..605518c
--- /dev/null
+++ b/reveal/v5-000002/r33505012.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzNTA1MDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKb2FPVG0xVXF2RHBPRU1ua1l1dUVyakNoeFc5MExwUnc2dUd2Q2xk\nRDl6VEQ0RERWMlJLbDNldXk3K09aQ0NyMgpET081cldUbDFycGJWS2xBMEtuM3Ni\nTFk5NFJoVXhibWJZbERtSzBlZmwxQ3RFZHlmbFZIdkF1YVlLd2phdzZvCldXZlVV\ndnhYR3ZtZmd3SXVtVmF6emdNbWkxTU15YXNuSDhLRVNnbjg1Y2cKLS0tIGtoK1hl\nbFZJUkV2ZTRwVDJhSTI4QURIOHNaejAvNjdYTmErVDdWWm1hZ1kKCCZQ1DXVzTmQ\n1Lcp37aYmJ2ahdJxwRpcmkzeBpbi16ujQixhjqVH0sFobHN5t3gwZbVchTZv8T26\nZp1F9VFGuw==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","33505012"],["reveal_at","2026-10-30T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","f704607263411afb1a1a558d811bbedceea9d16103c6202dabeaa04f97d2021b"],["ct","dcf99e81a6730946afdfe73fd5d7e6647935bf4c99c2278e1ecce933605f07da"],["seal","4f2df0555093ef3febcf78c4eb30adb2dbb5fb63cfc55d458d4c5d1ca3c734eb"]]}
diff --git a/reveal/v5-000002/r33505012.tlock b/reveal/v5-000002/r33505012.tlock
new file mode 100644
index 0000000..b8c2ede
--- /dev/null
+++ b/reveal/v5-000002/r33505012.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzNTA1MDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKb2FPVG0xVXF2RHBPRU1ua1l1dUVyakNoeFc5MExwUnc2dUd2Q2xk
5RDl6VEQ0RERWMlJLbDNldXk3K09aQ0NyMgpET081cldUbDFycGJWS2xBMEtuM3Ni
6TFk5NFJoVXhibWJZbERtSzBlZmwxQ3RFZHlmbFZIdkF1YVlLd2phdzZvCldXZlVV
7dnhYR3ZtZmd3SXVtVmF6emdNbWkxTU15YXNuSDhLRVNnbjg1Y2cKLS0tIGtoK1hl
8bFZJUkV2ZTRwVDJhSTI4QURIOHNaejAvNjdYTmErVDdWWm1hZ1kKCCZQ1DXVzTmQ
91Lcp37aYmJ2ahdJxwRpcmkzeBpbi16ujQixhjqVH0sFobHN5t3gwZbVchTZv8T26
10Zp1F9VFGuw==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000002/r33562612.ct b/reveal/v5-000002/r33562612.ct
new file mode 100644
index 0000000..b49a0d9
--- /dev/null
+++ b/reveal/v5-000002/r33562612.ct
Binary files differ
diff --git a/reveal/v5-000002/r33562612.nostr.json b/reveal/v5-000002/r33562612.nostr.json
new file mode 100644
index 0000000..285484e
--- /dev/null
+++ b/reveal/v5-000002/r33562612.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzNTYyNjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKcGlCVVhYUUQ0d3BGTDhOcDBhYUhBbzU1VFFyd1lMNTZxTGJIV0ky\nYXNwTkVDUjlCbHFuM3NWSU0wd2h5dERzMQpGUzREWElHR3ZhTVJYbXhmd0JJVDZl\nNTdwYUJUeDBjT3dVaXlZM08xNUxCMDJWbUZhZFptTlJNbkNrelhBVFBvCmtyekoz\nUUR0enZvVGE4ZElyS1NZQUpJMXRwU1NHMW1RdSttZkE4WU5iazgKLS0tIDNLMThU\nekE2eTNhajVhaGZmQlJoZDhGMXBTVHh3aFU2bEJMYVRMZ05HWUkKz1iGPl+VIPNQ\nUTQFJ/m8k0NqAwCHLW+ggBndv3Z4XfS1DQa5dFD3Me48KdDWJM4BC36lE/xfff57\npJ8raHZrgw==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","33562612"],["reveal_at","2026-11-01T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","0994e360bc9e2bf894101d96a5805d45ad225e7beacac4dcaa93bfa031717ddc"],["ct","e30e25378b7274fd86cf1b7773f91f17179c56cf965b7bcd81191094fea2dc0b"],["seal","4f2df0555093ef3febcf78c4eb30adb2dbb5fb63cfc55d458d4c5d1ca3c734eb"]]}
diff --git a/reveal/v5-000002/r33562612.tlock b/reveal/v5-000002/r33562612.tlock
new file mode 100644
index 0000000..fc7d815
--- /dev/null
+++ b/reveal/v5-000002/r33562612.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzNTYyNjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKcGlCVVhYUUQ0d3BGTDhOcDBhYUhBbzU1VFFyd1lMNTZxTGJIV0ky
5YXNwTkVDUjlCbHFuM3NWSU0wd2h5dERzMQpGUzREWElHR3ZhTVJYbXhmd0JJVDZl
6NTdwYUJUeDBjT3dVaXlZM08xNUxCMDJWbUZhZFptTlJNbkNrelhBVFBvCmtyekoz
7UUR0enZvVGE4ZElyS1NZQUpJMXRwU1NHMW1RdSttZkE4WU5iazgKLS0tIDNLMThU
8ekE2eTNhajVhaGZmQlJoZDhGMXBTVHh3aFU2bEJMYVRMZ05HWUkKz1iGPl+VIPNQ
9UTQFJ/m8k0NqAwCHLW+ggBndv3Z4XfS1DQa5dFD3Me48KdDWJM4BC36lE/xfff57
10pJ8raHZrgw==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000002/r33620212.ct b/reveal/v5-000002/r33620212.ct
new file mode 100644
index 0000000..afbad70
--- /dev/null
+++ b/reveal/v5-000002/r33620212.ct
@@ -0,0 +1,3 @@
1j9„<kàWèAkÝÈ·kÍë)O¤�MÚ¼¯Aì»åèšìÜÉfÕh`ùjLY]r4,ߎ�üi¶Óþî¤Ä꤉ÑÓú›Aî]äNåïFœ§¨OÒ€ò¼IãÒc¼wÈ$-Vã=t9´¯pÎOÀ³5ã^sÒ(L7ÀmZžF&Å\ M—f ÐÔĹ¹<%’_™a¡¤Œ AÌÓÔYgj—*žR zef¹zc§9|¶Æ­BéCÃ�UÍÕÑTDµ#Žkñâ â‹ƒ]þó³ÍÀ�”FÏ=п۶¤„¢q†ä‘™>;‡�¬<óØ”]A+ïpª� rA—/hø¡4z0�Ô«úP9@à¨%{è/Ûé ©Bù@Wlßâ^06Y=MCÞ·–é öÜüä«Ô‡* µcÜïaÄÜœ‘i¼´¶€�y€)ã,ã�ÑçÖf·„“­ürõÝl[œŸÞ3¬ø‘µg%^€�+©ÃuVaLOLɺ^WÖݪHµé’úÊÆ+gÎòiùxŸêA‚â€öR�aå¶¶ 8‹p¯¥[«
2àäËø­]9ø¨„²ú˜/ã˧Ô9…Ux<Úpžð÷�Œô«yE‹»P¾>ªa°sÐ¥ÌùÕ5Ǹ�ø¹›QŸ4¤Å§Üˆë²L(�oWi¡H&HeÏ·šRy� •®Úêìal"“Æ9ήñH"äÆ�é¸l_®ÏïMß®í
3•p5Oâ¶`‹¿aÿWÞîX‘[Ñ~j—0NAñ8X2{ߘÎÍeûØö¾oßÛ«RÀ”w¸£ùŠ� ì¶ÃÜ"QÔ—Ì<‹5_Áë¯ç¡6 ΛñPYŸÒ—;1xðî,|0®H�ÖÙ²MôÁÝ&¼)$ô¢1‡ï´C“ÃUçé€ó$µý§t-gB�(&l‹‘ü]冯oѺÇDµb�¯iǦR^Êxª¾£áŒnÊ–X(ó˜F,¾± \ No newline at end of file
diff --git a/reveal/v5-000002/r33620212.nostr.json b/reveal/v5-000002/r33620212.nostr.json
new file mode 100644
index 0000000..6df2970
--- /dev/null
+++ b/reveal/v5-000002/r33620212.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzNjIwMjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKa3Vpb0wvZVF6YTFVKzFwb1QrM2toVjVZZU95OTJqYk5rY2Q0Rkp3\nWnZPT3lpMlltSkRYbEVZWWhGUVlsU05ZcQpEUVVIcTZyYVpaN2I3cG1pakZmUCtq\nSWdpZGR6QUNpZHZjK0pZWkYrNWg1Ulc5Q21SVUFreXJMMDlMS3RLZlcyCkJIQ1pm\nWi9COWFvKzlFK291emNLREd3OWpTcFA3d0luWTZzTFRWVkNTVGcKLS0tIDA4Tm5L\ndld4NDJzVG9MWXNrWTZUMnV4blVaTjhNOFRxMUZDQUptVUs1UkEKQv1bDAKxx2Ze\nayELM4+Nioc6aVHzXi4qN0RUt1EaMvTRgP7fPuE1WXB6Zl2JU6Zen0QRmGAEPbIx\nRzQQLMvfQg==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","33620212"],["reveal_at","2026-11-03T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","4632d65ee69b7cf16df62373c419f258221d7f0a5bcd80e928a6ee4bcc662bcb"],["ct","9434590b57d4a7a5d313d2e40dc314f4d9b870a65962432a2b2b2741ac0b874f"],["seal","4f2df0555093ef3febcf78c4eb30adb2dbb5fb63cfc55d458d4c5d1ca3c734eb"]]}
diff --git a/reveal/v5-000002/r33620212.tlock b/reveal/v5-000002/r33620212.tlock
new file mode 100644
index 0000000..95c10ff
--- /dev/null
+++ b/reveal/v5-000002/r33620212.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzNjIwMjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKa3Vpb0wvZVF6YTFVKzFwb1QrM2toVjVZZU95OTJqYk5rY2Q0Rkp3
5WnZPT3lpMlltSkRYbEVZWWhGUVlsU05ZcQpEUVVIcTZyYVpaN2I3cG1pakZmUCtq
6SWdpZGR6QUNpZHZjK0pZWkYrNWg1Ulc5Q21SVUFreXJMMDlMS3RLZlcyCkJIQ1pm
7Wi9COWFvKzlFK291emNLREd3OWpTcFA3d0luWTZzTFRWVkNTVGcKLS0tIDA4Tm5L
8dld4NDJzVG9MWXNrWTZUMnV4blVaTjhNOFRxMUZDQUptVUs1UkEKQv1bDAKxx2Ze
9ayELM4+Nioc6aVHzXi4qN0RUt1EaMvTRgP7fPuE1WXB6Zl2JU6Zen0QRmGAEPbIx
10RzQQLMvfQg==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000002/r34513012.ct b/reveal/v5-000002/r34513012.ct
new file mode 100644
index 0000000..2a36062
--- /dev/null
+++ b/reveal/v5-000002/r34513012.ct
Binary files differ
diff --git a/reveal/v5-000002/r34513012.nostr.json b/reveal/v5-000002/r34513012.nostr.json
new file mode 100644
index 0000000..27b9a37
--- /dev/null
+++ b/reveal/v5-000002/r34513012.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0NTEzMDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKc1JwV05laC9BcUtXVktCZ0hXSTljaUNhOXpBM1hvY2hXcWRVaVNH\nL0hUOTlBREI5TjRDQmFjbGsrdnh5clVKVQpDQnV0ZHU0Ujl1YkFxb3pCMFYzN0tn\nNzBzYmZVWnhPL091cnhwTzZPODhqb25TR1FEUzhubi9VQVlBRjQzTUpBCkI3OUJG\nTUJ6VWRpMmlHZFliUmdTeTVQS0FveXN2UjN3SjhzSU1VQlZRYlkKLS0tIGc1Um9G\nMXJoWDI3ZzNzZWVBTXRtVEZFbVJmRE9mcDgydjA1NFg4Um1ES0kKqx9eqtZUOCQq\nv3ZMYfJaWdgcj81+LN+BFiFRA8FRbLrZq4SSBbCb6oJS9NT0yVTK9BEC8+y5sDgX\nqcK0+38p3w==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","34513012"],["reveal_at","2026-12-04T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","c896e58fc3bc1b740a5f160e2858d5ab7c94794b50b225b6d500f25598f20599"],["ct","11bb92aa82ec56a3e4ac532b9be3b22ccd1146ab1af59e23f3e61749c60fa078"],["seal","4f2df0555093ef3febcf78c4eb30adb2dbb5fb63cfc55d458d4c5d1ca3c734eb"]]}
diff --git a/reveal/v5-000002/r34513012.tlock b/reveal/v5-000002/r34513012.tlock
new file mode 100644
index 0000000..3cb7d73
--- /dev/null
+++ b/reveal/v5-000002/r34513012.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0NTEzMDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKc1JwV05laC9BcUtXVktCZ0hXSTljaUNhOXpBM1hvY2hXcWRVaVNH
5L0hUOTlBREI5TjRDQmFjbGsrdnh5clVKVQpDQnV0ZHU0Ujl1YkFxb3pCMFYzN0tn
6NzBzYmZVWnhPL091cnhwTzZPODhqb25TR1FEUzhubi9VQVlBRjQzTUpBCkI3OUJG
7TUJ6VWRpMmlHZFliUmdTeTVQS0FveXN2UjN3SjhzSU1VQlZRYlkKLS0tIGc1Um9G
8MXJoWDI3ZzNzZWVBTXRtVEZFbVJmRE9mcDgydjA1NFg4Um1ES0kKqx9eqtZUOCQq
9v3ZMYfJaWdgcj81+LN+BFiFRA8FRbLrZq4SSBbCb6oJS9NT0yVTK9BEC8+y5sDgX
10qcK0+38p3w==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000002/r34541812.ct b/reveal/v5-000002/r34541812.ct
new file mode 100644
index 0000000..df622df
--- /dev/null
+++ b/reveal/v5-000002/r34541812.ct
Binary files differ
diff --git a/reveal/v5-000002/r34541812.nostr.json b/reveal/v5-000002/r34541812.nostr.json
new file mode 100644
index 0000000..bacf997
--- /dev/null
+++ b/reveal/v5-000002/r34541812.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0NTQxODEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKZ0JveWlvMG1KNmhuRHl6ZU13aFpiTmlRc2VqbHZwUFU3OStSdEFw\nSVIzT2o0c2tXYUZwRXhjRXBrNUlrZmtXeQpFM2hrbFdTWk9La3pjR01NSVNxRitT\nR2FDMkV4RE1SYjA4WWFlQ1lLckNLdElISTN2cjZHbmt4dmlkR2pUaGFpCkxyTDdo\nYURibml4aGxsT0tzdHBEZUhNd3FORTFRemlIZWNZZm5Ya2JrTFkKLS0tIGUrc0x5\nRkxPV1JaU0s2dnF6WnBLOHRGcWNaSmFlc0JXalpLUU00TU43K0EKa61ftQ4kdGWN\nR6bGN2BftVeLltoN3aB+CxWSwLdvZDQDHmcsV2IUwQ0e4PmbWpWztd+6q9QgN9Uj\n7ZUjFX8eFQ==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","34541812"],["reveal_at","2026-12-05T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","2b440599fe95f65b753699069e589ea5e83aa1dc533b9e535848276cfa58d619"],["ct","3fd2d3d1aea9ebe16dd6ad3575a14432b156b029f6cc7040799f796e68f497df"],["seal","4f2df0555093ef3febcf78c4eb30adb2dbb5fb63cfc55d458d4c5d1ca3c734eb"]]}
diff --git a/reveal/v5-000002/r34541812.tlock b/reveal/v5-000002/r34541812.tlock
new file mode 100644
index 0000000..af70663
--- /dev/null
+++ b/reveal/v5-000002/r34541812.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0NTQxODEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKZ0JveWlvMG1KNmhuRHl6ZU13aFpiTmlRc2VqbHZwUFU3OStSdEFw
5SVIzT2o0c2tXYUZwRXhjRXBrNUlrZmtXeQpFM2hrbFdTWk9La3pjR01NSVNxRitT
6R2FDMkV4RE1SYjA4WWFlQ1lLckNLdElISTN2cjZHbmt4dmlkR2pUaGFpCkxyTDdo
7YURibml4aGxsT0tzdHBEZUhNd3FORTFRemlIZWNZZm5Ya2JrTFkKLS0tIGUrc0x5
8RkxPV1JaU0s2dnF6WnBLOHRGcWNaSmFlc0JXalpLUU00TU43K0EKa61ftQ4kdGWN
9R6bGN2BftVeLltoN3aB+CxWSwLdvZDQDHmcsV2IUwQ0e4PmbWpWztd+6q9QgN9Uj
107ZUjFX8eFQ==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000002/r34570612.ct b/reveal/v5-000002/r34570612.ct
new file mode 100644
index 0000000..02e1ce3
--- /dev/null
+++ b/reveal/v5-000002/r34570612.ct
Binary files differ
diff --git a/reveal/v5-000002/r34570612.nostr.json b/reveal/v5-000002/r34570612.nostr.json
new file mode 100644
index 0000000..8fb945c
--- /dev/null
+++ b/reveal/v5-000002/r34570612.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0NTcwNjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKajNKNHFJdnh4eWk4aFVpZ0dmb0ZUZGdZaTFuOGhzcS9VVFgvYnV3\nSDEwZENPMlFVQ0U0SXhaWEkvbkg0aHpmWgpGTXBUS0lzc2ZvbFg4L3pyd0MydHhv\nYjZ4UkJmaDhqNmFGUUo4RVZ0YkRDSkQrRUl3aml3USt6QTNWNUYrb29xCjJvMjlw\nbmh2N1dGM0Zta1BhRnErQWtubTBoVFhKRE11aWowcHo0M081cVkKLS0tIDVOSjlD\nc2gzbjNSazdoTEd0azVKV2l1U0hucDY5akFKQnBFTy93dy96YmcKT8YhutPJaU4N\nDdJ4BuaVlHySeq+QnO8+zs0UJHxcIKtSq86sx6JXQAv7IqWrivdLOn8q476x7saR\n3asTKmAo6w==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","34570612"],["reveal_at","2026-12-06T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","8eb2fb8cd956fc87939d6570bcb42c0715270868138ac61c5ab57211c357202c"],["ct","b0b0854bacd39d2d597c6475c2d83fbb1eca38e89bc31b56ccde2936d8d27db9"],["seal","4f2df0555093ef3febcf78c4eb30adb2dbb5fb63cfc55d458d4c5d1ca3c734eb"]]}
diff --git a/reveal/v5-000002/r34570612.tlock b/reveal/v5-000002/r34570612.tlock
new file mode 100644
index 0000000..923d6e8
--- /dev/null
+++ b/reveal/v5-000002/r34570612.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0NTcwNjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKajNKNHFJdnh4eWk4aFVpZ0dmb0ZUZGdZaTFuOGhzcS9VVFgvYnV3
5SDEwZENPMlFVQ0U0SXhaWEkvbkg0aHpmWgpGTXBUS0lzc2ZvbFg4L3pyd0MydHhv
6YjZ4UkJmaDhqNmFGUUo4RVZ0YkRDSkQrRUl3aml3USt6QTNWNUYrb29xCjJvMjlw
7bmh2N1dGM0Zta1BhRnErQWtubTBoVFhKRE11aWowcHo0M081cVkKLS0tIDVOSjlD
8c2gzbjNSazdoTEd0azVKV2l1U0hucDY5akFKQnBFTy93dy96YmcKT8YhutPJaU4N
9DdJ4BuaVlHySeq+QnO8+zs0UJHxcIKtSq86sx6JXQAv7IqWrivdLOn8q476x7saR
103asTKmAo6w==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000002/r34628212.ct b/reveal/v5-000002/r34628212.ct
new file mode 100644
index 0000000..ae7282c
--- /dev/null
+++ b/reveal/v5-000002/r34628212.ct
Binary files differ
diff --git a/reveal/v5-000002/r34628212.nostr.json b/reveal/v5-000002/r34628212.nostr.json
new file mode 100644
index 0000000..c530e0d
--- /dev/null
+++ b/reveal/v5-000002/r34628212.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0NjI4MjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKdElLcExLVUw5bk01akE2MnYvdWEzMTNOSnc5ODRyR3B0UTdoU2xk\nbnlOZmNCZ1dzdkFaL04wMmxocEtRaWo4aApFbUhuQjBORWxURkZINWp4UFhma2x3\nYzBCMWFlV0xxREZZYXpOSlZUdDArRy80aUpvN0xtTXE5TWNHSS9lUy9jCmQzend6\nRXBmL0ZlN2ZxZXJ1QnNyV2RuRlhZT01ZbnVKMCtSRWoxa3pKT00KLS0tIGxjeVAr\ncHlXaTcxRFlRZUJrOXkzTzRLWkhhSGlkQ24yaU9VdHZyWUllSm8Kps9t+NiWs/bm\ncC1VxWsM2F2W4WeRoKIWtgeQry3wchU+3FiK1uTr/Ot8KXe8lPuuMvuiIMiXczNR\nbSkjis6aZQ==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","34628212"],["reveal_at","2026-12-08T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","011bea7f2b79c4610c2e38bb8eb32f49fb5a4dbd22502804b3bcfaa85dbd77e0"],["ct","98fc8fda5d771230319168e7069efbc41c1e2cab0e1dc2c091f6401008184e82"],["seal","4f2df0555093ef3febcf78c4eb30adb2dbb5fb63cfc55d458d4c5d1ca3c734eb"]]}
diff --git a/reveal/v5-000002/r34628212.tlock b/reveal/v5-000002/r34628212.tlock
new file mode 100644
index 0000000..68be399
--- /dev/null
+++ b/reveal/v5-000002/r34628212.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0NjI4MjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKdElLcExLVUw5bk01akE2MnYvdWEzMTNOSnc5ODRyR3B0UTdoU2xk
5bnlOZmNCZ1dzdkFaL04wMmxocEtRaWo4aApFbUhuQjBORWxURkZINWp4UFhma2x3
6YzBCMWFlV0xxREZZYXpOSlZUdDArRy80aUpvN0xtTXE5TWNHSS9lUy9jCmQzend6
7RXBmL0ZlN2ZxZXJ1QnNyV2RuRlhZT01ZbnVKMCtSRWoxa3pKT00KLS0tIGxjeVAr
8cHlXaTcxRFlRZUJrOXkzTzRLWkhhSGlkQ24yaU9VdHZyWUllSm8Kps9t+NiWs/bm
9cC1VxWsM2F2W4WeRoKIWtgeQry3wchU+3FiK1uTr/Ot8KXe8lPuuMvuiIMiXczNR
10bSkjis6aZQ==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000002/r34657012.ct b/reveal/v5-000002/r34657012.ct
new file mode 100644
index 0000000..8385336
--- /dev/null
+++ b/reveal/v5-000002/r34657012.ct
Binary files differ
diff --git a/reveal/v5-000002/r34657012.nostr.json b/reveal/v5-000002/r34657012.nostr.json
new file mode 100644
index 0000000..450e6c5
--- /dev/null
+++ b/reveal/v5-000002/r34657012.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0NjU3MDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKZ3FUZDByZWFCZ3lROXJTbUY0TDdna0ZUN0dHTytMRzVmbk5WNUpq\nWGJMWmxhRHpWdFNYVmMwN21ueHpnM01lUQpGNUhXN2ZISnE0TFNkaVlOQzNGS08z\nSnM1SWp3YnlvdDRvTUp6V0xIOWkxYUFBSW1Ba2p2b29QeHVrR2JzMXorCmVzaEJT\nTHg4TkxQa2Q0cjhxYk0vV2lwMG90TXhZTDBLZThOWjZwc1pCK1kKLS0tIHVjNGYr\nd3ZhYzNTbXFzTDlTMzdVWWNuZDBnWUVneTBSNXpMcmI2R3JmR0EKW/gMUVpvnGbi\n0NcQwAO/fA+EjjCurG/5/KEMd2eNNr9nTU0FDItLrCtEs/NHWjWZ19uOD+nYzcOb\nm8ozUP1YXQ==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","34657012"],["reveal_at","2026-12-09T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","d5226dbf682ad934ac95962f5233ef6841d35ab7a4270421b85bc5c00ac26cae"],["ct","5f113077e0f1b0abdc1209a380e115b5d5f651d939757252d6e8b4d7b81b7273"],["seal","4f2df0555093ef3febcf78c4eb30adb2dbb5fb63cfc55d458d4c5d1ca3c734eb"]]}
diff --git a/reveal/v5-000002/r34657012.tlock b/reveal/v5-000002/r34657012.tlock
new file mode 100644
index 0000000..cf56ff1
--- /dev/null
+++ b/reveal/v5-000002/r34657012.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0NjU3MDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKZ3FUZDByZWFCZ3lROXJTbUY0TDdna0ZUN0dHTytMRzVmbk5WNUpq
5WGJMWmxhRHpWdFNYVmMwN21ueHpnM01lUQpGNUhXN2ZISnE0TFNkaVlOQzNGS08z
6SnM1SWp3YnlvdDRvTUp6V0xIOWkxYUFBSW1Ba2p2b29QeHVrR2JzMXorCmVzaEJT
7THg4TkxQa2Q0cjhxYk0vV2lwMG90TXhZTDBLZThOWjZwc1pCK1kKLS0tIHVjNGYr
8d3ZhYzNTbXFzTDlTMzdVWWNuZDBnWUVneTBSNXpMcmI2R3JmR0EKW/gMUVpvnGbi
90NcQwAO/fA+EjjCurG/5/KEMd2eNNr9nTU0FDItLrCtEs/NHWjWZ19uOD+nYzcOb
10m8ozUP1YXQ==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000002/r34714612.ct b/reveal/v5-000002/r34714612.ct
new file mode 100644
index 0000000..3f62137
--- /dev/null
+++ b/reveal/v5-000002/r34714612.ct
Binary files differ
diff --git a/reveal/v5-000002/r34714612.nostr.json b/reveal/v5-000002/r34714612.nostr.json
new file mode 100644
index 0000000..5504f29
--- /dev/null
+++ b/reveal/v5-000002/r34714612.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0NzE0NjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKam1LZyttNXB4R2ZKL3hCQjAyTHkzdkFveTVOSThVNFQ4YnNxdyth\neW5xNFFkUDk0NlVuT3NMWGZXenVTZSs5OApFRHhvOGowZndQNUlDMStFMlpFOW1Q\naUc1c1ljcjdDNTNBN1ArbGxad052UWRTTjdRM1NFT0pzbjhrMWVGY0hlCkRJNHd5\nZFBHR3laa3JFdWxaaHN4b2sremwyaDRKNWdmeThUZzJtN09tbkEKLS0tIC85ekRG\nN3FLeEV6N0JTWk4xN081MHBzK2FZZ2xOWjJ4bjdTZlBwZTdVY28KaIcUbPLX1nKZ\nmv4tiUcbS7sHDffmxBFpU6OhwcDbwjIlA5z+7K4jeh7esdFgPZ+MhSIhRUcEn0KA\nC2q4CnJtlQ==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","34714612"],["reveal_at","2026-12-11T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","d29e4a80129238f0f08c3a6a332c063d06a47770bef77c1d3733b6e424afc3e4"],["ct","b9540491bbac83f80f988b90e3b54d0658ff7e6b02d6248d0a9adea3f5b4fc6b"],["seal","4f2df0555093ef3febcf78c4eb30adb2dbb5fb63cfc55d458d4c5d1ca3c734eb"]]}
diff --git a/reveal/v5-000002/r34714612.tlock b/reveal/v5-000002/r34714612.tlock
new file mode 100644
index 0000000..f34b9a2
--- /dev/null
+++ b/reveal/v5-000002/r34714612.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0NzE0NjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKam1LZyttNXB4R2ZKL3hCQjAyTHkzdkFveTVOSThVNFQ4YnNxdyth
5eW5xNFFkUDk0NlVuT3NMWGZXenVTZSs5OApFRHhvOGowZndQNUlDMStFMlpFOW1Q
6aUc1c1ljcjdDNTNBN1ArbGxad052UWRTTjdRM1NFT0pzbjhrMWVGY0hlCkRJNHd5
7ZFBHR3laa3JFdWxaaHN4b2sremwyaDRKNWdmeThUZzJtN09tbkEKLS0tIC85ekRG
8N3FLeEV6N0JTWk4xN081MHBzK2FZZ2xOWjJ4bjdTZlBwZTdVY28KaIcUbPLX1nKZ
9mv4tiUcbS7sHDffmxBFpU6OhwcDbwjIlA5z+7K4jeh7esdFgPZ+MhSIhRUcEn0KA
10C2q4CnJtlQ==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000002/r34772212.ct b/reveal/v5-000002/r34772212.ct
new file mode 100644
index 0000000..33941a2
--- /dev/null
+++ b/reveal/v5-000002/r34772212.ct
@@ -0,0 +1,3 @@
1‹Ñ¬%ˆô»…}#ˆUPX b£®“3)Øa™
2KvŽŸÐ“t©<ÐŒH ºMìÁT÷``Rš–°Â›Œ°-‹¾µ3óòxv­†à°‘*¿ÒJ9>Ål�R•˜Ñ¶�ºÆ—ª“¦Y­�™ø^ð¶ š÷€ßö_Ât:Ó�¾<!'Ì+o~Ò AÓ3ÅšaÀ9«3KŽÔA1ÇJpû©?P´yÕ�¾½V‰mºê2ÕóTzlKã^aW7Û!웓~„é�D›Æ¬2mrwÃT`dÅŸ‰ xê¸i0%eÙÇç{À2è(ŠM““œÎ®»Ô�—ÿoh©œ|ÞÁ.ôÚ7ÿÊbU奔»Æ›¼ÁÚAò95¾ã+ƒÏR
3ØÜÛM2ÁÔ)²ÿo?Ü=ܵnü ¼ù‹E�Š—Làëxutm“³÷*×pLìÕ‘9‡°0»i©ûPŸÃS¶¸F†äè)hÇÔ�abXh·€½AjÊ0‹†7YG ¥7(†+°Ž€Å^»ë¶9¼¸$˜s)›ü ã3ÉnM¥G@åõ{ÒÉ@0wA¢ID)R�™ðshÃqzJ4ŸDËüñþmô¤ŸTƒ4Caõzn|ê�)Z7ÍTYå1Î�™7¹Ó`^넇¿Õ”ìÕàÐ6QNËÆûòBoøÀ9|5œÙòf‘äQ4»¶w]0yŽ/¸©BÜ5²|Gß&Ú:¯[93§»÷ôË´+&�Ó½A‘«¼RÂAæ½K¼ǨySÐö"Ï~mªŽ¯ñÆ þyäŸòsô¯ÔÖ¶¾ŸqÄnlHD2“�”Á¦€àzç!gͬÝ{�y¨ò²šP\/„ñi…ÅW۾ꣷ€ó³›yµ\}asÊè \ No newline at end of file
diff --git a/reveal/v5-000002/r34772212.nostr.json b/reveal/v5-000002/r34772212.nostr.json
new file mode 100644
index 0000000..11fccfe
--- /dev/null
+++ b/reveal/v5-000002/r34772212.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0NzcyMjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKazNBdEgzaWU3eXNlbDBCTkNjUXhNVHRyQWE4c0ZlelJtdERYNGRj\nRmExVktTOG0rT0REZU1kZExxU3ZCank3bwpFZUJKOG5YSVowR1NDdzlHZWcrcndP\nT1RpOVVBbDUwL3JnNXR5Y0J0Sk96WjdmekxRblUwOG4wMVA2bzNBVVFXCkd4djRE\na2dnZGdpNUptNGZDRDF2OE1aL2hKbmJYdHhjVk90NFBFSmFiUUkKLS0tIDNOOWxl\nZ1VPNW42c01SSUpWUzlwTkw0VW82OVZjTEp1b2tqdHpWVzAvc3MKmFiSlx8sKOJ9\nq6MqVYy9/z/eGc5ENMUK6oCy23LmyEEc8fGyHhJ2MyRGSHxqlo2YTgBQAbg2rn2X\neCCLs7AGgQ==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","34772212"],["reveal_at","2026-12-13T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","2b30ede949fd76117be1f2f5ec17834437f4c8fc8cf72c17ea71dbb9127d7236"],["ct","dc6b2589e6887888285e9361347badeb1f3d89d23a1217b8e183632ed768322d"],["seal","4f2df0555093ef3febcf78c4eb30adb2dbb5fb63cfc55d458d4c5d1ca3c734eb"]]}
diff --git a/reveal/v5-000002/r34772212.tlock b/reveal/v5-000002/r34772212.tlock
new file mode 100644
index 0000000..d161e1e
--- /dev/null
+++ b/reveal/v5-000002/r34772212.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0NzcyMjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKazNBdEgzaWU3eXNlbDBCTkNjUXhNVHRyQWE4c0ZlelJtdERYNGRj
5RmExVktTOG0rT0REZU1kZExxU3ZCank3bwpFZUJKOG5YSVowR1NDdzlHZWcrcndP
6T1RpOVVBbDUwL3JnNXR5Y0J0Sk96WjdmekxRblUwOG4wMVA2bzNBVVFXCkd4djRE
7a2dnZGdpNUptNGZDRDF2OE1aL2hKbmJYdHhjVk90NFBFSmFiUUkKLS0tIDNOOWxl
8Z1VPNW42c01SSUpWUzlwTkw0VW82OVZjTEp1b2tqdHpWVzAvc3MKmFiSlx8sKOJ9
9q6MqVYy9/z/eGc5ENMUK6oCy23LmyEEc8fGyHhJ2MyRGSHxqlo2YTgBQAbg2rn2X
10eCCLs7AGgQ==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000002/r35348212.ct b/reveal/v5-000002/r35348212.ct
new file mode 100644
index 0000000..a35bdc0
--- /dev/null
+++ b/reveal/v5-000002/r35348212.ct
Binary files differ
diff --git a/reveal/v5-000002/r35348212.nostr.json b/reveal/v5-000002/r35348212.nostr.json
new file mode 100644
index 0000000..0b87552
--- /dev/null
+++ b/reveal/v5-000002/r35348212.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1MzQ4MjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKb2I1d1ZYNEZIY1JQR0lXYUdRN3NHY0xNNnMzNGl3VjZvSnNQUHlP\nZEJ0ZFc5cGdsb1RFQzdhUDF4VFNscjhteQpFUGVRWlI5MS8wb0NrNUNHaHdOQ2tt\nVFMzdmEreHkvS1FyeFBUcGlSNm5pSlJEQW5GbVZZWGh1ajNFOFFtRXZGCk9rcncw\ndmJkRC9HRUYyWDE5Skt6R2lBVnljK21PMnJoTVk2dk9WWWQ5N1kKLS0tIDhNbUVE\nUXpER3lFVlZIanJ2ZGhMdFFtNFFuclFFQ3ZGMUpDNGxhbGZHLzgKV1ncgxvIlaun\nMZv8hIXVYCc/ZHJCJwO0kuUj5KB8gUPLowGJyF0EH1U455M/DGDluZqDOnti1Fvb\nHSpqYWLfCw==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","35348212"],["reveal_at","2027-01-02T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","d2b3ad6929abc0a3c0275b744fa851946d1ee3b4d5202a55870386278b82ceee"],["ct","46cd2ce16f3c261eb48199c3a4214ba8ed274637114bb37eded7d060196f7658"],["seal","4f2df0555093ef3febcf78c4eb30adb2dbb5fb63cfc55d458d4c5d1ca3c734eb"]]}
diff --git a/reveal/v5-000002/r35348212.tlock b/reveal/v5-000002/r35348212.tlock
new file mode 100644
index 0000000..c9ee340
--- /dev/null
+++ b/reveal/v5-000002/r35348212.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1MzQ4MjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKb2I1d1ZYNEZIY1JQR0lXYUdRN3NHY0xNNnMzNGl3VjZvSnNQUHlP
5ZEJ0ZFc5cGdsb1RFQzdhUDF4VFNscjhteQpFUGVRWlI5MS8wb0NrNUNHaHdOQ2tt
6VFMzdmEreHkvS1FyeFBUcGlSNm5pSlJEQW5GbVZZWGh1ajNFOFFtRXZGCk9rcncw
7dmJkRC9HRUYyWDE5Skt6R2lBVnljK21PMnJoTVk2dk9WWWQ5N1kKLS0tIDhNbUVE
8UXpER3lFVlZIanJ2ZGhMdFFtNFFuclFFQ3ZGMUpDNGxhbGZHLzgKV1ncgxvIlaun
9MZv8hIXVYCc/ZHJCJwO0kuUj5KB8gUPLowGJyF0EH1U455M/DGDluZqDOnti1Fvb
10HSpqYWLfCw==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000002/r35521012.ct b/reveal/v5-000002/r35521012.ct
new file mode 100644
index 0000000..b3f6857
--- /dev/null
+++ b/reveal/v5-000002/r35521012.ct
Binary files differ
diff --git a/reveal/v5-000002/r35521012.nostr.json b/reveal/v5-000002/r35521012.nostr.json
new file mode 100644
index 0000000..ab2f5a7
--- /dev/null
+++ b/reveal/v5-000002/r35521012.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1NTIxMDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKamF2OTNra0d3dmtnZ2VqemRybVZtQkVVcE5mM3IzQ2Y5SnVyTG91\nOFJLNEdEMGZIaDEzLy9DcStPUmZZYXMxbwpFbldyOHoyTlh2a3l1cFhlbW5qTW52\ncW5uU1Y4VDhObnAyMFZTcnJXRUhMaUc1ZjBFU1Fsc3M4NzRJY2p5bHJJCmxFTUF6\ncGFIU1ZSREJPNnlNRmpXVUU0QjlhUWsrMVFYYUdBMXVCNUlWSTAKLS0tICttcVRH\neEdreXpWUXhmYlBNV3ZtVExKM211NkRZNzZCQkYySWo4S1FjSTAKKQ3UWijBWh4x\nc/ojPGUfZkkMlNH4SudohpkZcanG0zUYS1p+uOeqLURn/R1rMTMLxOzRLNtQ5n8X\nIdfiY4at1g==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","35521012"],["reveal_at","2027-01-08T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","fed49efccf48deaff0c361e0dec30e3c03bae988f3c13fbd8204ee2a5755b7d6"],["ct","809b9917d439f7ca5e0d18eb85eea114acd88d095c2dd776922a4c587c6deda1"],["seal","4f2df0555093ef3febcf78c4eb30adb2dbb5fb63cfc55d458d4c5d1ca3c734eb"]]}
diff --git a/reveal/v5-000002/r35521012.tlock b/reveal/v5-000002/r35521012.tlock
new file mode 100644
index 0000000..2a59700
--- /dev/null
+++ b/reveal/v5-000002/r35521012.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1NTIxMDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKamF2OTNra0d3dmtnZ2VqemRybVZtQkVVcE5mM3IzQ2Y5SnVyTG91
5OFJLNEdEMGZIaDEzLy9DcStPUmZZYXMxbwpFbldyOHoyTlh2a3l1cFhlbW5qTW52
6cW5uU1Y4VDhObnAyMFZTcnJXRUhMaUc1ZjBFU1Fsc3M4NzRJY2p5bHJJCmxFTUF6
7cGFIU1ZSREJPNnlNRmpXVUU0QjlhUWsrMVFYYUdBMXVCNUlWSTAKLS0tICttcVRH
8eEdreXpWUXhmYlBNV3ZtVExKM211NkRZNzZCQkYySWo4S1FjSTAKKQ3UWijBWh4x
9c/ojPGUfZkkMlNH4SudohpkZcanG0zUYS1p+uOeqLURn/R1rMTMLxOzRLNtQ5n8X
10IdfiY4at1g==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000002/r35693812.ct b/reveal/v5-000002/r35693812.ct
new file mode 100644
index 0000000..c3a0be5
--- /dev/null
+++ b/reveal/v5-000002/r35693812.ct
Binary files differ
diff --git a/reveal/v5-000002/r35693812.nostr.json b/reveal/v5-000002/r35693812.nostr.json
new file mode 100644
index 0000000..b25df32
--- /dev/null
+++ b/reveal/v5-000002/r35693812.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1NjkzODEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKZ2dMY2ZlTHJVSk5lT2RPeXNDMDFEeHU0bUZaUWpydHpVQ1hMTWtr\nS1ljUlg1VU1nQjlDL0tIejd0WFhzclJuVQpBM29Dd1RqT0N4STZnVFJjOGIyb1Ju\nN25FdEJGZlNxdXFMaUVMYUU5d1pFYmhDcmNoOERSTXhqak8zUkFwSmM0CmVrWGRy\nS2JkWk5tc21CdDRxcTEwRmY0eW9TMktzbk5USEJyb3dQcDNGYTAKLS0tIFhnZEFJ\nOE9FTVo2RU43VVFKTDViR3RDaVo0ekY5M0xCcTR6cWhyZlAwTG8KUD54r1PNcVH0\nlPxaieCd/KRx6hYZwiSw8TeRhSdHco+oCfJNu576IMFgvAl3EA/dV6TmktSQuVTy\nm4F7h1XKjg==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","35693812"],["reveal_at","2027-01-14T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","a7f40385a9ae95d125e065b46a80bb354eddb4797f48207991ad6f103891e7a5"],["ct","d28d5df1d6bd5de73aade5412ca6dfe1b3d42aaed2ea660ad28eb19d57174646"],["seal","4f2df0555093ef3febcf78c4eb30adb2dbb5fb63cfc55d458d4c5d1ca3c734eb"]]}
diff --git a/reveal/v5-000002/r35693812.tlock b/reveal/v5-000002/r35693812.tlock
new file mode 100644
index 0000000..648b142
--- /dev/null
+++ b/reveal/v5-000002/r35693812.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1NjkzODEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKZ2dMY2ZlTHJVSk5lT2RPeXNDMDFEeHU0bUZaUWpydHpVQ1hMTWtr
5S1ljUlg1VU1nQjlDL0tIejd0WFhzclJuVQpBM29Dd1RqT0N4STZnVFJjOGIyb1Ju
6N25FdEJGZlNxdXFMaUVMYUU5d1pFYmhDcmNoOERSTXhqak8zUkFwSmM0CmVrWGRy
7S2JkWk5tc21CdDRxcTEwRmY0eW9TMktzbk5USEJyb3dQcDNGYTAKLS0tIFhnZEFJ
8OE9FTVo2RU43VVFKTDViR3RDaVo0ekY5M0xCcTR6cWhyZlAwTG8KUD54r1PNcVH0
9lPxaieCd/KRx6hYZwiSw8TeRhSdHco+oCfJNu576IMFgvAl3EA/dV6TmktSQuVTy
10m4F7h1XKjg==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000002/r35780212.ct b/reveal/v5-000002/r35780212.ct
new file mode 100644
index 0000000..5df6fa2
--- /dev/null
+++ b/reveal/v5-000002/r35780212.ct
Binary files differ
diff --git a/reveal/v5-000002/r35780212.nostr.json b/reveal/v5-000002/r35780212.nostr.json
new file mode 100644
index 0000000..ae1ceab
--- /dev/null
+++ b/reveal/v5-000002/r35780212.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1NzgwMjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKcUx3UnN0WVNYbWgzanZxNjZkcUs1ZXRCeHQyU3lGWEU5VHRvbkEy\nMXJuay9UY1lvMTdGcXZ3UVJaSUNVUmlFWApDemtFamtKNU84cnJpa0ZrRFE2YkFo\nV2VBQSszR2ptaWtVQ2lpcGYzZlJFRlNuVE9wOHQyNkZVTnhibkhnZ3RXCkZRUlpm\nR0RBN0tMOTZ6STArdFo0MWR1SVY3SzcwVWc3Wnlud2QyWENnelEKLS0tIG9adFBX\ncUZlS2lCMUFTZ0xmNTROVFNQeDhTQTdWd2VkUHFXRng0R0hMNTgKg9SaoBWExqkv\nKlrnrnQI/ocfwpfHKQDijrCphot0gWSNdMp/cdWKst6t3kvB2WFcG3qHaFXz5xzl\nCEscJLYcoA==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","35780212"],["reveal_at","2027-01-17T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","915ee4582b257a3f3ba754c38562ad1fe7753a3eb22a534cf2222e08ba860525"],["ct","f3c692c4e52e809cbbfcdf4ef2f42a9155e62cd258bc14f19fa7b4611def66c0"],["seal","4f2df0555093ef3febcf78c4eb30adb2dbb5fb63cfc55d458d4c5d1ca3c734eb"]]}
diff --git a/reveal/v5-000002/r35780212.tlock b/reveal/v5-000002/r35780212.tlock
new file mode 100644
index 0000000..c2b39d7
--- /dev/null
+++ b/reveal/v5-000002/r35780212.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1NzgwMjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKcUx3UnN0WVNYbWgzanZxNjZkcUs1ZXRCeHQyU3lGWEU5VHRvbkEy
5MXJuay9UY1lvMTdGcXZ3UVJaSUNVUmlFWApDemtFamtKNU84cnJpa0ZrRFE2YkFo
6V2VBQSszR2ptaWtVQ2lpcGYzZlJFRlNuVE9wOHQyNkZVTnhibkhnZ3RXCkZRUlpm
7R0RBN0tMOTZ6STArdFo0MWR1SVY3SzcwVWc3Wnlud2QyWENnelEKLS0tIG9adFBX
8cUZlS2lCMUFTZ0xmNTROVFNQeDhTQTdWd2VkUHFXRng0R0hMNTgKg9SaoBWExqkv
9KlrnrnQI/ocfwpfHKQDijrCphot0gWSNdMp/cdWKst6t3kvB2WFcG3qHaFXz5xzl
10CEscJLYcoA==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000002/r36500212.ct b/reveal/v5-000002/r36500212.ct
new file mode 100644
index 0000000..fb3003a
--- /dev/null
+++ b/reveal/v5-000002/r36500212.ct
Binary files differ
diff --git a/reveal/v5-000002/r36500212.nostr.json b/reveal/v5-000002/r36500212.nostr.json
new file mode 100644
index 0000000..c4b1c6c
--- /dev/null
+++ b/reveal/v5-000002/r36500212.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2NTAwMjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKbENGYXVKVWdId0YzSlNiK2NOU3h5UHhId0ZXakdyMjVrRkRGdEhY\nMDBReFRaRTVBYlZIc3o1VFVxNnJIYnVqbgpENXdqbXdpMkcvV1MwdXVGd3FzUWpQ\nV2dtWFlCRWg3eFd5elQ5eit4b3pnUVpVYkRFODU3MUhtVjMxNlptWXYzCndjTHkr\nMEdpQ3hmUS9uNUlrdnM0OUpvMEtQTzZnYXBxUFZkcG1sK1BESmsKLS0tIEtsektV\nMnF1OWpmbDRXdm9UVmovdm1LZm1SQWFJR0RXNUlaa2g2emdQNHcKEHsJZx6TNXHV\nh0wf8UgYyNyNUFWWERw071OiQ7rcSRQWg/WeRc9GvxoS8/q/PyfLSGKUABTGgUy+\nB2HvuswyXw==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","36500212"],["reveal_at","2027-02-11T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","4697183c5f927f7e1bf7ab84c85b0b895b6a2a33a05e6088fb2a905673e5e9b8"],["ct","ec69aab7edd474f898de8fd15dd4d8f96f4f283ed29a20bff1081ffff0a8b6ec"],["seal","4f2df0555093ef3febcf78c4eb30adb2dbb5fb63cfc55d458d4c5d1ca3c734eb"]]}
diff --git a/reveal/v5-000002/r36500212.tlock b/reveal/v5-000002/r36500212.tlock
new file mode 100644
index 0000000..fd144f1
--- /dev/null
+++ b/reveal/v5-000002/r36500212.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2NTAwMjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKbENGYXVKVWdId0YzSlNiK2NOU3h5UHhId0ZXakdyMjVrRkRGdEhY
5MDBReFRaRTVBYlZIc3o1VFVxNnJIYnVqbgpENXdqbXdpMkcvV1MwdXVGd3FzUWpQ
6V2dtWFlCRWg3eFd5elQ5eit4b3pnUVpVYkRFODU3MUhtVjMxNlptWXYzCndjTHkr
7MEdpQ3hmUS9uNUlrdnM0OUpvMEtQTzZnYXBxUFZkcG1sK1BESmsKLS0tIEtsektV
8MnF1OWpmbDRXdm9UVmovdm1LZm1SQWFJR0RXNUlaa2g2emdQNHcKEHsJZx6TNXHV
9h0wf8UgYyNyNUFWWERw071OiQ7rcSRQWg/WeRc9GvxoS8/q/PyfLSGKUABTGgUy+
10B2HvuswyXw==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000002/r36615412.ct b/reveal/v5-000002/r36615412.ct
new file mode 100644
index 0000000..15303b1
--- /dev/null
+++ b/reveal/v5-000002/r36615412.ct
Binary files differ
diff --git a/reveal/v5-000002/r36615412.nostr.json b/reveal/v5-000002/r36615412.nostr.json
new file mode 100644
index 0000000..53fca84
--- /dev/null
+++ b/reveal/v5-000002/r36615412.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2NjE1NDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKc0JERUo1RlZNTUd3QjhQRlBCQVphZSsxcHNXWnBFQlNPU3lnZklO\na2JnRi9FckJLUmJabXZFWWVxZjJRbXlkMApHU3ZmNTg3V1hpN2JzVVlvSDNKa0dK\nNDlKNmZCbFdPb3h2S1NEQlJVbGp4TTh4OFh3Z0Y4SmlaTFRVeWNhVmxUCmZIZ1RR\nbjZDZkRzSjRpQkJBNklnYlFINFRrNy9uaVcrWit1UEZJODZsL1UKLS0tIEhva1VY\nSkRYdkxyNXVVMGtsa21CL1lVWjcyT1ExSDZpamtXKzVKcTZRd1EKbuzHxu3xWaxS\nAAh9MrbsjsBW6zz5y/AAUBnj/VyM/IIzwV/w2NXzK/sAAgboUjwj3d7d6sgcpmM2\nVC1KeX65yw==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","36615412"],["reveal_at","2027-02-15T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","421d17c9d430c0353b60aff3229a511bfb588c6a87e5186974da748af19d3e00"],["ct","777d6d62ab195bad30c098626bbee61f1b2f22b004492d1b4d9df41573f60895"],["seal","4f2df0555093ef3febcf78c4eb30adb2dbb5fb63cfc55d458d4c5d1ca3c734eb"]]}
diff --git a/reveal/v5-000002/r36615412.tlock b/reveal/v5-000002/r36615412.tlock
new file mode 100644
index 0000000..7e196f8
--- /dev/null
+++ b/reveal/v5-000002/r36615412.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2NjE1NDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKc0JERUo1RlZNTUd3QjhQRlBCQVphZSsxcHNXWnBFQlNPU3lnZklO
5a2JnRi9FckJLUmJabXZFWWVxZjJRbXlkMApHU3ZmNTg3V1hpN2JzVVlvSDNKa0dK
6NDlKNmZCbFdPb3h2S1NEQlJVbGp4TTh4OFh3Z0Y4SmlaTFRVeWNhVmxUCmZIZ1RR
7bjZDZkRzSjRpQkJBNklnYlFINFRrNy9uaVcrWit1UEZJODZsL1UKLS0tIEhva1VY
8SkRYdkxyNXVVMGtsa21CL1lVWjcyT1ExSDZpamtXKzVKcTZRd1EKbuzHxu3xWaxS
9AAh9MrbsjsBW6zz5y/AAUBnj/VyM/IIzwV/w2NXzK/sAAgboUjwj3d7d6sgcpmM2
10VC1KeX65yw==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000002/r36673012.ct b/reveal/v5-000002/r36673012.ct
new file mode 100644
index 0000000..3356817
--- /dev/null
+++ b/reveal/v5-000002/r36673012.ct
Binary files differ
diff --git a/reveal/v5-000002/r36673012.nostr.json b/reveal/v5-000002/r36673012.nostr.json
new file mode 100644
index 0000000..71b8993
--- /dev/null
+++ b/reveal/v5-000002/r36673012.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2NjczMDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKc2E4cEg5VnNGdGtLL3pQMVN1ZWxLVnZidWRyT0lrK2VPUWRjWk5B\nVHovcGtsbW9RZ2IvTzFKQ2NBelA4b0FiNwpFc0xhU1J1Umk2QmlZZURrS1p2NnVl\nS1V2V2JjdVlHSjhEMS9ybWhYRmpVcHFFbTJ1Q1RLRlduL3lSbnZoOEM3CkNGVDA4\neFFUa3MzamlQL2FvOEw2R0tvdVZhYTdoaEd4YThScUxNTHNKQjAKLS0tIDJKdXA3\nbDhpenJ2OW1KYzIxZEtFNVJPaGtYZFoxY0dheCt4U1RrazRjRjQKOpBSs2YKGyX9\n3O+fLBOT71526BtAg81gRNQbB9Qs9f9xSU2QKv7vQJ6CXvLLxn9LGAfiqhS6PvT8\ndDC/UxIEXg==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","36673012"],["reveal_at","2027-02-17T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","f254febf89dba964eacbe2821d71dce5181eb38453823843ce73a7e0035dcd99"],["ct","198a3b4d9cb0128cd775ac47f3f0ca91313ae9fc16f196e96b29969d798351a8"],["seal","4f2df0555093ef3febcf78c4eb30adb2dbb5fb63cfc55d458d4c5d1ca3c734eb"]]}
diff --git a/reveal/v5-000002/r36673012.tlock b/reveal/v5-000002/r36673012.tlock
new file mode 100644
index 0000000..16c3dca
--- /dev/null
+++ b/reveal/v5-000002/r36673012.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2NjczMDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKc2E4cEg5VnNGdGtLL3pQMVN1ZWxLVnZidWRyT0lrK2VPUWRjWk5B
5VHovcGtsbW9RZ2IvTzFKQ2NBelA4b0FiNwpFc0xhU1J1Umk2QmlZZURrS1p2NnVl
6S1V2V2JjdVlHSjhEMS9ybWhYRmpVcHFFbTJ1Q1RLRlduL3lSbnZoOEM3CkNGVDA4
7eFFUa3MzamlQL2FvOEw2R0tvdVZhYTdoaEd4YThScUxNTHNKQjAKLS0tIDJKdXA3
8bDhpenJ2OW1KYzIxZEtFNVJPaGtYZFoxY0dheCt4U1RrazRjRjQKOpBSs2YKGyX9
93O+fLBOT71526BtAg81gRNQbB9Qs9f9xSU2QKv7vQJ6CXvLLxn9LGAfiqhS6PvT8
10dDC/UxIEXg==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000002/r36845812.ct b/reveal/v5-000002/r36845812.ct
new file mode 100644
index 0000000..2fbd01b
--- /dev/null
+++ b/reveal/v5-000002/r36845812.ct
Binary files differ
diff --git a/reveal/v5-000002/r36845812.nostr.json b/reveal/v5-000002/r36845812.nostr.json
new file mode 100644
index 0000000..d23c8e0
--- /dev/null
+++ b/reveal/v5-000002/r36845812.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2ODQ1ODEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKanc1ZmtoZnVIZXg4WW4yOHFKT3hhV3hPUjNaajUzbU01K3NMREtU\nd0ZiVkYrcEZoRlBkTVVwRjR5MnFIcXdDcwpDL1VCeWwwb3hlc2Z6YkFnTS80MjVY\nMER5VE5mU3JQOXE3V1ZYSDM5YkRjeUdobmprT2E3VW0xQUJDRjFQZDcwCk9VLzRn\nRFpOT0I4VG1COG01aGZJK0p0Ui81NlZ4VGRRR3FCRDJuZXhpUzQKLS0tIGJjdFIw\nRHp4OFZ3OG43cUZXcDJtTERwdW5IR2luSjFEUFRERVkzUC9DRGMKcAvS+fHM6I3Q\nIiJPdEJfIKKm5QESuk/U1Ygt4741FGsnDBXkhsMe5erS6jX35yXkhaFfEEVeX17j\nizCdBnPU1A==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","36845812"],["reveal_at","2027-02-23T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","62a55726e177643b25c0966884a9ab4b50440f1c97b747abb15e937259047808"],["ct","1bd131a9efb6129e803c04792e30900814554a6e34c8d992373f0576f3b31f4e"],["seal","4f2df0555093ef3febcf78c4eb30adb2dbb5fb63cfc55d458d4c5d1ca3c734eb"]]}
diff --git a/reveal/v5-000002/r36845812.tlock b/reveal/v5-000002/r36845812.tlock
new file mode 100644
index 0000000..3afd7d8
--- /dev/null
+++ b/reveal/v5-000002/r36845812.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2ODQ1ODEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKanc1ZmtoZnVIZXg4WW4yOHFKT3hhV3hPUjNaajUzbU01K3NMREtU
5d0ZiVkYrcEZoRlBkTVVwRjR5MnFIcXdDcwpDL1VCeWwwb3hlc2Z6YkFnTS80MjVY
6MER5VE5mU3JQOXE3V1ZYSDM5YkRjeUdobmprT2E3VW0xQUJDRjFQZDcwCk9VLzRn
7RFpOT0I4VG1COG01aGZJK0p0Ui81NlZ4VGRRR3FCRDJuZXhpUzQKLS0tIGJjdFIw
8RHp4OFZ3OG43cUZXcDJtTERwdW5IR2luSjFEUFRERVkzUC9DRGMKcAvS+fHM6I3Q
9IiJPdEJfIKKm5QESuk/U1Ygt4741FGsnDBXkhsMe5erS6jX35yXkhaFfEEVeX17j
10izCdBnPU1A==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000002/r37767412.ct b/reveal/v5-000002/r37767412.ct
new file mode 100644
index 0000000..006beef
--- /dev/null
+++ b/reveal/v5-000002/r37767412.ct
Binary files differ
diff --git a/reveal/v5-000002/r37767412.nostr.json b/reveal/v5-000002/r37767412.nostr.json
new file mode 100644
index 0000000..6802890
--- /dev/null
+++ b/reveal/v5-000002/r37767412.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM3NzY3NDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKZ2RIU08zZEhQcmVJWnV5a1U2cVFPVUdTZUNNTm5odlNmY0U5dW8w\neDZpTWJmM3A3QnlZVU5ScEdndUY4Y3dFUgpGRENPRWNNZGZMVTVxSXI0MlY4bEFj\nWTl5WmNQUlplY3FUVjEvbHJKKytVY3hxUlU3a3ZCcHVmaHh4ajRQZDVhCmluQnQ2\nSFJsMUhJbzU0bjdDZi9DYVhvbURQdEZCZXVkL3VCdlVLZGsvWk0KLS0tIFZIT3d5\nT2t6Wmo4SHJaZUU1NjdlMlNMN3oyKyt4d2VDOXordnQ5THZkRlEKGJv4EYo/R0G3\ny6EPQVbQ/mmHnpSm5MaYwk0pdyT7ZK76joiBTM6RpzBI/cJ/o2gNl6TPUeX2WHig\ndyBaePW7kA==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","37767412"],["reveal_at","2027-03-27T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","a3ffbbdcb088e96e83718ccd880c78a957e796687ccc7b6671b3f34b239f0c9c"],["ct","80b8c82bc7dc9cdd2831421a4f41a1988485a74e00e3e2ce8335b4aec34da015"],["seal","4f2df0555093ef3febcf78c4eb30adb2dbb5fb63cfc55d458d4c5d1ca3c734eb"]]}
diff --git a/reveal/v5-000002/r37767412.tlock b/reveal/v5-000002/r37767412.tlock
new file mode 100644
index 0000000..e9f8d7f
--- /dev/null
+++ b/reveal/v5-000002/r37767412.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM3NzY3NDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKZ2RIU08zZEhQcmVJWnV5a1U2cVFPVUdTZUNNTm5odlNmY0U5dW8w
5eDZpTWJmM3A3QnlZVU5ScEdndUY4Y3dFUgpGRENPRWNNZGZMVTVxSXI0MlY4bEFj
6WTl5WmNQUlplY3FUVjEvbHJKKytVY3hxUlU3a3ZCcHVmaHh4ajRQZDVhCmluQnQ2
7SFJsMUhJbzU0bjdDZi9DYVhvbURQdEZCZXVkL3VCdlVLZGsvWk0KLS0tIFZIT3d5
8T2t6Wmo4SHJaZUU1NjdlMlNMN3oyKyt4d2VDOXordnQ5THZkRlEKGJv4EYo/R0G3
9y6EPQVbQ/mmHnpSm5MaYwk0pdyT7ZK76joiBTM6RpzBI/cJ/o2gNl6TPUeX2WHig
10dyBaePW7kA==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000002/seal.json b/reveal/v5-000002/seal.json
new file mode 100644
index 0000000..bad8683
--- /dev/null
+++ b/reveal/v5-000002/seal.json
@@ -0,0 +1,43 @@
1{
2 "algorithm": "sha256-live-v5",
3 "anchor_ref": "sha256:4f2df0555093ef3febcf78c4eb30adb2dbb5fb63cfc55d458d4c5d1ca3c734eb",
4 "covers_after": "2026-10-03T01:35:21.431130Z",
5 "covers_through": "2026-10-03T22:17:20.526176Z",
6 "digest": "4f2df0555093ef3febcf78c4eb30adb2dbb5fb63cfc55d458d4c5d1ca3c734eb",
7 "follows_seq": 32,
8 "n_forecasts": 2174,
9 "n_groups": 22,
10 "n_withheld": 2174,
11 "prev_digest": "ab1c64ee208cedf8ce14e1e4a1568de02e03578c9af283db73392ad2e61c90e8",
12 "prev_seq": 1,
13 "sealed_at": "2026-10-03T22:17:47.627559Z",
14 "seq": 2,
15 "variant": {
16 "beacon": {
17 "chain_hash": "52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",
18 "genesis_time": 1692803367,
19 "period": 3,
20 "relays": [
21 "https://api.drand.sh",
22 "https://api2.drand.sh",
23 "https://api3.drand.sh",
24 "https://drand.cloudflare.com"
25 ],
26 "scheme": "bls-unchained-g1-rfc9380"
27 },
28 "cipher": "chacha20poly1305-zlib6-nonce0",
29 "gate": {
30 "default": "withheld: a kept salt can be released later; an opened text can never be withdrawn",
31 "opened": "none",
32 "why": "no decision by Echo yet"
33 },
34 "line": "numeric<TAB>open:<v4 line> | numeric<TAB>withheld:sha256(salt||v4 line)",
35 "reveal": "utc-day-after-close",
36 "salts": "key ring: one content a seal, one part a line",
37 "tool": {
38 "name": "tle",
39 "sha256": "69157d8c14a1d390d1b7744946288f83d4b10748471d5447f9abb77a5902c541",
40 "version": "tlock v1.2.0 -- github.com/drand/tlock"
41 }
42 }
43}