{"assessments":[],"deployments":[],"fuzz":[],"identity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"interpretation":"Records acceptance and evidence. Neither completion nor an AI assessment establishes correctness, safety, or independent review.","jobId":"d905948c-37d1-4c49-8ec6-fc8b3d8cf473","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"bcf7d4b3a4d409385c5fb46ca21d5368606ef483596a48314b17713569b9fbf7","dependsOn":["build_contract_project","build_contract_project_2","build_contract_project_3","build_contract_project_4","build_contract_project_5"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"6b037a7b6601e883cf8a906c1520c0624817d42d8310b65c2f43679204608af3","skillId":"adversarial-review","tools":[]},"key":"adversarial_review","kind":"code","role":"review","skillHash":"6b037a7b6601e883cf8a906c1520c0624817d42d8310b65c2f43679204608af3","skillId":"adversarial-review","state":"accepted"},{"acceptedSubmissionHash":"140615a151c5d100e2cc1866235b6b1fdbca0c46087262db8a2dcd5f353a6147","dependsOn":[],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"d59561da3b378461b7c749f6bd5084477d44993aa94972ddea90f542535751df","skillId":"build-contract-project","tools":[]},"key":"build_contract_project","kind":"code","role":"implement","skillHash":"d59561da3b378461b7c749f6bd5084477d44993aa94972ddea90f542535751df","skillId":"build-contract-project","state":"accepted"},{"acceptedSubmissionHash":"e8a5fb5bf77dec84e6bce8b81eec0fc0a1ac877311baa3cc909ce792413f84e8","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"d59561da3b378461b7c749f6bd5084477d44993aa94972ddea90f542535751df","skillId":"build-contract-project","tools":[]},"key":"build_contract_project_2","kind":"code","role":"implement","skillHash":"d59561da3b378461b7c749f6bd5084477d44993aa94972ddea90f542535751df","skillId":"build-contract-project","state":"accepted"},{"acceptedSubmissionHash":"69df38745ff01e70c9ad9e1828dfab5726aeba0e11240d58e0d65c59be4adcc5","dependsOn":["build_contract_project_2"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"d59561da3b378461b7c749f6bd5084477d44993aa94972ddea90f542535751df","skillId":"build-contract-project","tools":[]},"key":"build_contract_project_3","kind":"code","role":"implement","skillHash":"d59561da3b378461b7c749f6bd5084477d44993aa94972ddea90f542535751df","skillId":"build-contract-project","state":"accepted"},{"acceptedSubmissionHash":"b3f9a3e74cf7e34d106613ce0eae8d819931aaeda8ed3465e28fcb5d23ba98f5","dependsOn":["build_contract_project_3"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"d59561da3b378461b7c749f6bd5084477d44993aa94972ddea90f542535751df","skillId":"build-contract-project","tools":[]},"key":"build_contract_project_4","kind":"code","role":"implement","skillHash":"d59561da3b378461b7c749f6bd5084477d44993aa94972ddea90f542535751df","skillId":"build-contract-project","state":"accepted"},{"acceptedSubmissionHash":"d8bc12e227a6a8a461a64a22c39823b75e7e1266c06de3832bf36c76f6b819b4","dependsOn":["build_contract_project_4"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"d59561da3b378461b7c749f6bd5084477d44993aa94972ddea90f542535751df","skillId":"build-contract-project","tools":[]},"key":"build_contract_project_5","kind":"code","role":"implement","skillHash":"d59561da3b378461b7c749f6bd5084477d44993aa94972ddea90f542535751df","skillId":"build-contract-project","state":"accepted"}],"objective":"Six steps, one worker each; a worker sees only this objective and its own step text. Do only your step: the other steps are fully specified in their own texts, deliberately not shown to you; never ask for them. Order: (A) 1 the rename and three documentation items; 2 five Registry rules; 3 the burn rule; (B) 4 the generator and goldens; 5 the Renderer (the card IMAGE becomes a hive symbol); 6 the review. (A) touches no id, rule, window, threshold or address; paid upgrades are untouched. The blocks BURN RULE TESTS and BURN RULE DOCS below belong to step 3 only. For (B), the specification below is normative.\n(B) Replace the card IMAGE of Renderer; nothing else changes: Registry and Composer bytecode (apart from steps 1 to 3), the Card struct, tokenURI(Card)/preimage(Card) signatures and, relative to the step-1 result, every metadata JSON key and byte except the image value stay. The image stays data:image/svg+xml, + the SVG percent-encoded by tools/gen_template.py percent_encode. The Renderer stays pure (no storage, constructor args or immutables) and under 24,576 B.\nNORMATIVE SVG (one line, single quotes; a number is Python f'{v:.1f}' of a double unless literal; P(pts)=' '.join(f'{x:.1f},{y:.1f}'); D(pts)='M'+'L'.join(f'{x:.1f} {y:.1f}')):\nGeometry: hex(x,y,r)=[(x+r*cos(60k deg), y+r*sin(60k deg)) for k=0..5]. H=sqrt(3)*96. Slot s=0..12 centre (500+dx,480+dy), (dx,dy): (0,0); (0,-H),(144,-H/2),(144,H/2),(0,H),(-144,H/2),(-144,-H/2); (144,-1.5H),(288,0),(144,1.5H),(-144,1.5H),(-288,0),(-144,-1.5H). Family (0-based catalog order) per slot: 5,0,1,2,3,4,6,7,8,9,10,11,12.\nTiers n per family: 1,2,3,4,3,1,1,1,1,1,1,1,1. lv=index(top[i])+1 in its tier list ([101],[201,202],[301..303],[401..404],[501..503],[601],[701],[801],[901],[1001],Ordinal,[1201],[1301]); Ordinal (1101-1105) lv=1 if top[i]!=0; lv=0 if top[i]==0. Class colour c: families 0-5 #00cc33, 6-10 #00ff41, 11 #dbfee6, 12 #8ff0a4. Rare ids 202,801,901,1001,1101,1102,1103,1104,1201 (each its family's top tier).\nCommunity rings: shown=min(communityCount,39); the family in slot s gets k=#{d in 0,1,2 : 13d+s<shown} rings, radii R=[62,45,28][:k]. Opacities by k: 0 ['1.00']; 1 ['0.35','1.00']; 2 ['0.35','0.68','1.00']; 3 ['0.35','0.57','0.78','1.00'].\nHoney for 0<lv<n: Q=hex(x,y,77), yb=max y of Q, yt=min y, L=yb-(yb-yt)*lv/n. HONEY: walk Q's edges (Q[j],Q[j+1 mod 6]) in order, keep Q[j] if its y>=L, and when the edge crosses (exactly one end has y>=L) add (x0+t*(x1-x0), L), t=(L-y0)/(y1-y0). ABOVE=[(x,min(y,L)) for (x,y) in Q].\nELEMENT ORDER: (1) <svg xmlns='http://www.w3.org/2000/svg' width='1000' height='1000' viewBox='0 0 1000 1000' font-family='ui-monospace,SFMono-Regular,Menlo,Consolas,DejaVu Sans Mono,monospace'><rect width='1000' height='1000' fill='#0a0a0a'/> (2) for each family i=0..12 in catalog order, at its slot centre (x,y): <polygon points='{P(hex(x,y,89))}' fill='none' stroke='{c if lv>0 else #151515}' stroke-width='4' stroke-linejoin='round'/>; ZONES = per (r,o) in zip([77]+R, opacities[k]): <polygon points='{P(hex(x,y,r))}' fill='{c}' fill-opacity='{o}'/>. If lv==n: ZONES. If 0<lv<n: <clipPath id='a{i}'><polygon points='{P(ABOVE)}'/></clipPath><clipPath id='h{i}'><polygon points='{P(HONEY)}'/></clipPath><g clip-path='url(#h{i})'>ZONES</g> then per r in R <polygon points='{P(hex(x,y,r))}' fill='none' stroke='#05751f' stroke-width='2' stroke-linejoin='round' clip-path='url(#a{i})'/>. Then if lv>0 and top[i] is rare: <circle cx='{x}' cy='{y}' r='11.0' fill='#ffffff'/>. If lv==0: per r in R <polygon points='{P(hex(x,y,r))}' fill='none' stroke='#05751f' stroke-width='3' stroke-linejoin='round'/>. (3) V=hex(500,480,440): <polygon points='{P(V)}' fill='none' stroke='#0c0c0c' stroke-width='3' stroke-linejoin='round'/>; then only if communityCount>39: steps=64 if count>=8192 else min(64, bitlen(count**8)-41) where ** is exponentiation (count to the eighth power, never XOR); C=[V[(4+j)%6] for j=0..6]; f=6*steps/64, j=floor(f); pts=C[0..j], plus C[j]+(f-j)*(C[j+1]-C[j]) if f>j; <path d='{D(pts)}' fill='none' stroke='#05751f' stroke-width='5' stroke-linecap='round' stroke-linejoin='round'/> (4) <text x='940' y='950' fill='#00cc33' font-size='20' text-anchor='end'>#{tokenId}</text></svg>\nNo trigonometry onchain: tools/gen_template.py precomputes every coordinate string; the Renderer selects and concatenates them. BURN RULE TESTS (step 3; a MockBurnExecutor that records calls, force-refunds and can revert): below 69 IMD no fee and attached ETH back; at or above: no fee reverts BurnFeeRequired, with it the executor gets msg.value and refunds the surplus; caught failure returns the ETH, claim pending, code 2; quote above the cap skips (3); reverting preview skips (1); the call gets at most BURN_GAS plus the stipend; a nonpayable contract claimant passes with nothing attached and with the exact fee; invariant: balance after equals before; a pinned-block fork test through the real executor and OFT covers refunds. BURN RULE DOCS (step 3): README, CONCEPT.md, INTEGRATION.md (eighth argument; executor, OFT and destination as owner-configurable dependencies; caps bound cost, not liveness), DISCLOSURE.md (a failing executor never blocks a claim; the Base burn is asynchronous).","parentJobId":"97c005a4-f5ef-4391-aa82-733673ffd5df","planHash":"c6d477ee57afd0262347a3650be1382c2c36bb8f75126d51603b9ef0b0b93640","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"27391f0e-0419-4d15-a5d5-bb182f137bd9","publication":{"commit":null,"deliveredAt":null,"repoUrl":null},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"51884","feedbackHash":"eae2f613cbc4485018772e681213354e8ab7934e20d0db25802f1d59433fc59e","nodeKey":"adversarial_review","submissionHash":"bcf7d4b3a4d409385c5fb46ca21d5368606ef483596a48314b17713569b9fbf7","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51481","feedbackHash":"cbdc38086a58ee727a37089e511499103dba1b24c18e529a787e45f9b7292f3c","nodeKey":"build_contract_project","submissionHash":"140615a151c5d100e2cc1866235b6b1fdbca0c46087262db8a2dcd5f353a6147","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"52639","feedbackHash":"f4fce7c086fe7f4c1455d6eb54a9036786bc635a49164fc991013c6d6d64e73a","nodeKey":"build_contract_project_2","submissionHash":"e8a5fb5bf77dec84e6bce8b81eec0fc0a1ac877311baa3cc909ce792413f84e8","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"51231","feedbackHash":"2fbadc0cd5dd2fa39d363b59238b428007dc9c097216f4f2436f011d8edfbecb","nodeKey":"build_contract_project_3","submissionHash":"69df38745ff01e70c9ad9e1828dfab5726aeba0e11240d58e0d65c59be4adcc5","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"51352","feedbackHash":"1978f597aac7ffbc19cff8e925c90adb6f7ecfefd87c97b009b135499ed7d5fa","nodeKey":"build_contract_project_4","submissionHash":"b3f9a3e74cf7e34d106613ce0eae8d819931aaeda8ed3465e28fcb5d23ba98f5","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"51483","feedbackHash":"46d04416aede3d629c4fb1221d06f0fd4882e50cf21d9a9f1172e06fa17be56f","nodeKey":"build_contract_project_5","submissionHash":"d8bc12e227a6a8a461a64a22c39823b75e7e1266c06de3832bf36c76f6b819b4","tag1":"verification:checks","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"7cc220240ca173bc08518731d8166dea8c8c263b6bb1984c09f0591ebbccf57b","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":"2101a03e4ca6785fd6400d4d3846397f167edb1da9995ac8efa7c498203123c6","device":"3f91b58cf7cd2d45","findings":[],"hash":"140615a151c5d100e2cc1866235b6b1fdbca0c46087262db8a2dcd5f353a6147","nodeId":"58f8a7c5-0903-4a5a-955b-e2569306cb4c","outcome":"completed","summary":"Step 1 is complete: the rename and the three documentation fixes are in, and every check passes.\n\n**Checks run**\n\n| check | result |\n|---|---|\n| `forge build` | ok |\n| `forge test` with the verifier's fuzz seed | 109 passed, 0 failed, 11 skipped (fork tests, no RPC) |\n| `forge fmt --check` | clean |\n| `python3 tools/gen_template.py --check` | 12 artifacts byte-exact |\n| `python3 -m unittest discover -s tools` | 7 passed |\n\n**Composer size.** The names fit with room to spare, so nothing was shortened.\n\n| contract | before | after | EIP-170 headroom |\n|---|---|---|---|\n| Composer | 23,455 B | 23,377 B | 1,199 B (required at least 600) |\n| Registry | 23,027 B | 23,055 B | 1,521 B |\n| Renderer | 11,791 B | 11,712 B | regenerated template only |\n\n**What changed**\n\n- **Contracts.** Registry is now `ERC721(\"Sworn\", \"SWORN\")`. Composer's `traitName` table and the `catalogSpec` names carry the final names. Trait 1105 keeps `First thousand` since no final name was given for it. No id, rule, window, threshold or address moved.\n- **Fix 3.** `Registry.upgrade` now reverts `NotASharedFact(1201)` for Top Weights, the same error a community T3 spec gets. The unit test and the fuzz test in test/Adversarial.t.sol were updated to expect it.\n- **Generator and card.** `FAMILIES`, the metadata name prefix `Sworn #<id>`, and the description (now opening with \"Sworn is an ownerless onchain registry...\") in tools/gen_template.py; the product label and the thirteen family labels in the card SVG. The blob, offsets, `TemplateData.sol` and all nine goldens were regenerated.\n- **Docs.** README, CONCEPT, CATALOG, TEMPLATES, INTEGRATION and DISCLOSURE name Sworn and the final families. CATALOG section 7 has its final-name column filled. Fix 1: INTEGRATION check 7 now says the golden test asserts the questionHash of the canonical document, not of the body. Fix 2: the CATALOG section 5 guard row says the T5 target must be zero.\n- **New tests** in test/Rename.t.sol: name and symbol, all 25 names against the final table, catalog spec names equal the table with rules unchanged, no working name survives, unknown ids still revert, the tokenURI carries `Sworn #1` and the thirteen family trait types, 1201 refused by `upgrade` but accepted by `requestSharedFact`, and the Composer headroom floor.\n\n**Left as is, deliberately.** The `CHAINTRAITS_FORK_RPC` environment variable name, the LICENSE copyright line and the fixture file names under templates/fixtures are identifiers rather than display names, so they were not renamed. The X handle row of the name table is marked as not given, since the brief did not supply one.","treeHash":"c39b80c104299a694347971368fe2f1652492b93","usage":{"cachedInputTokens":2419380,"inputTokens":642,"model":"claude-fable-5-1","outputTokens":41886,"runtime":"claude","turns":51,"wallClockMs":658431}},{"artifacts":[],"attempt":1,"bundleHash":"e416267b98d3e0eb5a69f88c8071f5b9cc85e3e9c64e3c40e43115aeb947cbc5","device":"6007d5038419a72d","findings":[],"hash":"69df38745ff01e70c9ad9e1828dfab5726aeba0e11240d58e0d65c59be4adcc5","nodeId":"ea5f5454-85dd-481f-bd89-f29c40413485","outcome":"completed","summary":"Implemented the burn rule, deployment updates, tests, and documentation.\n\n- Build and formatting checks pass.\n- Supplied-seed tests: 145 passed, 15 opt-in skips.\n- Four pinned fork tests passed separately.\n- Registry: 24,495 bytes—81 bytes below EIP-170.\n- Composer and Renderer bytecode unchanged.\n\nDocumented limitation: the specified preview gas cap skips the burn at the pinned mainnet block. No deployment performed.","treeHash":"b974fbf6ed6fc54f9291a7c27a8dd1c133b3cd2b","usage":{"cachedInputTokens":3286272,"inputTokens":145895,"model":"gpt-6-astra","outputTokens":32317,"runtime":"codex","turns":10,"wallClockMs":1049201}},{"artifacts":[],"attempt":1,"bundleHash":"2fe049a77f5f34145a8e01b3733d1ae7f42d44eab0c579efedcdacdc77ccee73","device":"8f08088e7a7f557f","findings":[],"hash":"b3f9a3e74cf7e34d106613ce0eae8d819931aaeda8ed3465e28fcb5d23ba98f5","nodeId":"ac66c552-cc6a-44a2-9c32-3b1cd14aecfa","outcome":"completed","summary":"Step 4 is complete and verified.\n\n**What was built**\n\n- `tools/gen_template.py` now contains the normative hive SVG in Python (`hive_svg`) and writes two data libraries: `src/TemplateData.sol` for the JSON envelope (21 slots, 22 slices, the image as one slot) and the new `src/HiveData.sol` with every string the Renderer needs, each stored once and pre-percent-encoded: the 65 cell hexagons, the 8 HONEY/ABOVE pairs, P(V), the 6 ring corners, the 62 interpolated path end points, the 13 cell centres, plus the markup fragments, colours and opacities, with ASCII-hex start tables and index constants.\n- `template/card.svg` and its SVG value slots are gone. The 13 JSON attribute slots stay, and the three old goldens differ from the committed ones only in the image value (checked by parsing both).\n- Goldens regenerated for direct, oracle and width, and added newcomer (3), outsider (4), honey (5), collector (6) and fullhouse (7), all with synthetic `0x…c1a1` claimants. `--check` verifies all 28 generated files byte-equal.\n- `tools/test_gen_template.py` has 18 tests, including the requested step table at 32, 39, 40, 53, 70, 100, 200, 1000, 5000, 8191, 8192, 65535 giving 0, 0, 2, 5, 9, 13, 21, 39, 58, 63, 64, 64.\n\n**One scope note.** The acceptance criteria require `forge test` to pass, and the golden tests compare the Renderer's bytes to the new goldens, so I brought `src/Renderer.sol` onto the new data: `image(card)` selects and concatenates `HiveData` strings with no trigonometry, and `preimage` splices the 21 slots. The Card struct, the `tokenURI`/`preimage` signatures, Registry and Composer are untouched. Step 5 can restructure the Renderer freely; the goldens pin what it must produce. Two existing tests that asserted on the old text grid (`Rename.t.sol`, `ReviewChanges.t.sol`) now assert on the hive.\n\n**Checks run**\n\n| check | result |\n|---|---|\n| `forge build` | passes; Renderer 21,570 B runtime, 3,006 B headroom |\n| `forge test` with the verifier's fuzz seed | 155 passed, 0 failed, 15 opt-in fork skips |\n| `forge fmt --check` | passes |\n| `python3 tools/gen_template.py --check` | 28 artifacts byte-equal |\n| `python3 -m unittest discover -s tools` | 18 tests OK |\n\nDocumentation: README gained \"The card image\" (drawing rules, data layout, goldens, sizes), CONCEPT.md section 5 describes the hive, and test/NOTES.md records the step with its assumptions (image reads only tokenId, top and communityCount; out-of-catalog tops are clamped, never reverted) and operational notes (pure Renderer, a drawing change means regenerate and redeploy). Slither, Mythril and the fork suites were not run.","treeHash":"39777f4dbda419ebecb1e64302c17df75f95871d","usage":{"cachedInputTokens":4063888,"inputTokens":898,"model":"claude-fable-5-1","outputTokens":83278,"runtime":"claude","turns":57,"wallClockMs":1115878}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"4aa8623bfb8d8e5e","findings":[{"citation":"resolved","description":"The try/catch around previewBridge only catches a revert of the external call. Solidity decodes the three return words outside the catch: when the executor address holds no code, or returns fewer than 96 bytes, the decoding check reverts the whole call, so claimSponsored and upgradeSponsored revert for everyone. That contradicts DISCLOSURE.md ('a failing executor never blocks a claim') and the step-3 rule that a failing preview is a skip with code 1. The constructor validates the other seven addresses but accepts any executor value, so a mistyped non-zero address at deployment (or a Sepolia rehearsal where the mainnet executor address is passed by mistake) deploys an ownerless registry whose whole sponsored pool is permanently unreachable; the registry has no setter to repair it. The real BurnExecutorV2 cannot lose its code under Cancun, so on a correct mainnet deployment this is not reachable, which is why the severity is low. Fix: check burnExecutor_.code.length != 0 in the constructor when non-zero, or make the preview a low-level staticcall whose returndata length is checked before decoding.","line":718,"path":"src/Registry.sol","reproduction":"Using test/Base.t.sol's setUp (MockCurator at CURATOR_ADDR, MockIDMD, MockIMD, MockIntake, Renderer, Composer): deploy `new Registry(CURATOR_ADDR, idmd, imd, intake, attester, renderer, composer, address(0xBEEF))` (an address with no code), `imd.mint(address(registry), 10 ether)`, `curator.set(alice, 1, true, 1, 1, 1)`, then `vm.prank(alice); registry.claimSponsored(701)`. Expected per DISCLOSURE.md and the burn rule: the claim is recorded (pendingOf(alice,701) != 0) and BurnSkipped(alice, 1) is emitted. Actual: the call reverts with an empty revert (EvmError: Revert) and no pool claim is possible for any wallet. The same happens for upgradeSponsored(7, [701]). With burnExecutor = address(0) or a MockBurnExecutor set to revert, the claim passes, which shows the untested gap is the code-less/short-returndata case.","severity":"low","snippet":"            try burnExecutor.previewBridge{gas: 200_000}() returns (uint256 amount, uint256, uint256 fee) {","title":"A burn executor address without code (or one whose previewBridge returns fewer than three words) reverts every pool claim instead of being skipped"}],"hash":"bcf7d4b3a4d409385c5fb46ca21d5368606ef483596a48314b17713569b9fbf7","nodeId":"c5c0ce80-af5f-4c73-a4d7-71d8f0ddbed8","outcome":"completed","summary":"The review is done and `.imd-findings.json` holds one finding plus a 20-row coverage record. The tree is otherwise unchanged (git status is clean apart from the findings file, which is ignored).\n\n**What I checked and found correct**\n\n- **(B) Renderer vs the normative SVG.** The generator's drawing in `tools/gen_template.py` matches the objective line by line: element order, literals, the `.1f` formatting, HONEY/ABOVE, the ring count per slot, the opacity table, and the steps rule with its guard at 8192. A differential test then compared the Renderer's percent-encoded image against the Python output for 49 cards: random tops, every boundary count (0, 13, 26, 39, 40, 53, 8191, 8192, 2^32, 2^256-1), all-empty, all-full and all-partial cells. All 49 were byte-equal by keccak.\n- **No other metadata byte changed.** The direct, oracle and width preimages at the step-3 commit and now differ only in the image value, with identical key order.\n- **(A) Rename and rules.** The Composer diff is names only. The Registry diff outside the burn rule is the rename, the Intake price check, the 6.4 IMD spec fee, the 1201 error split, one trait per sponsored call, nine per IDMD token, membership on both pool paths, and the shared UTC-day limit. `upgrade` stays non-payable with no daily limit and no burn call. New storage is exactly the per-token counter, the per-wallet day and the executor address. No receive or fallback exists, and every path forwards or refunds msg.value.\n- **Sizes and checks.** Registry 24,495 B (81 B headroom), Composer 23,377 B, Renderer 21,570 B. `forge test` passes 159 tests with 15 fork skips, and `gen_template.py --check` reports 28 artifacts equal.\n\n**Finding (low)**\n\n- **Code-less executor blocks all pool claims** at `src/Registry.sol:718`. The try/catch catches a revert but not the return-data decoding, so an executor address with no code (or one returning fewer than three words) reverts `claimSponsored` and `upgradeSponsored` for every wallet. That contradicts DISCLOSURE.md's \"a failing executor never blocks a claim\", and the constructor validates the other seven addresses but accepts any executor value. Reproduced with Base's mocks and executor `0xBEEF`: the claim reverts instead of being recorded with BurnSkipped code 1. It is low because the real BurnExecutorV2 cannot lose its code, so only a wrong deployment argument reaches it, but an ownerless registry has no way to repair it afterwards.","treeHash":null,"usage":{"cachedInputTokens":1366760,"inputTokens":546,"model":"claude-fable-5-1","outputTokens":18224,"runtime":"claude","turns":18,"wallClockMs":375265}},{"artifacts":[],"attempt":1,"bundleHash":"379c83f6d1b35b0726b1d9b66a38278bbee7d08e80101cb40b50e86d4cffeb83","device":"f96a0c89c039c22a","findings":[],"hash":"d8bc12e227a6a8a461a64a22c39823b75e7e1266c06de3832bf36c76f6b819b4","nodeId":"631c534d-d4c7-4c21-a9ab-de79b1f047f6","outcome":"completed","summary":"I didn't have to rewrite the Renderer: the generator-and-goldens step had already moved it onto the new hive data. I checked `src/Renderer.sol` against the specification and it matches, so I added the missing reports and tests. With the verifier's seed, `forge build` and `forge fmt --check` pass and `forge test` gives 159 passed, 0 failed, 15 fork tests skipped (those are opt-in and weren't run).\n\n**What the Renderer does:**\n- **Per family:** it draws the outline, the filled zones, the two clip paths and clipped rings for part-filled families, the rare-id dot, and the empty rings, from the level `lv`, the tier count `n` and the ring count `k`.\n- **Frame and overflow path:** it draws the faint frame. The overflow path appears only when `communityCount` is above 39. Its length is 64 steps from 8192 upward; below that it is `min(64, bitlen(count ** 8) - 41)` (exponentiation).\n- **Token id:** the token id text comes last.\n- **Unchanged:** the JSON metadata outside the image is byte-for-byte the same, and Registry, Composer and Types are untouched.\n\n**Measurements:**\n\n| | value |\n|---|---:|\n| Renderer runtime size | 21,570 B (3,006 under the 24,576 limit) |\n| `tokenURI` gas, synthetic_width | 10,810,085 |\n| `tokenURI` gas, synthetic_fullhouse | 9,147,472 |\n| `tokenURI` gas, synthetic_honey | 9,589,924 |\n\n**Tests added in `test/Goldens.t.sol`:**\n- The gas report, with each call required to stay under 30M gas.\n- The runtime size report, with a check that a fresh deployment has identical code.\n- No path at a count of 39 and a path at 40.\n- Identical images at 8192 and at the largest possible count, so `count ** 8` never overflows.\n- 40 and 53 render differently, which confirms exponentiation rather than XOR.\n\nThe existing tests already cover the rest: all 8 goldens are compared byte-for-byte through `Renderer.tokenURI`, and the steps table is checked onchain. To share the card setup, I moved the width, honey and fullhouse cards into helper functions.\n\n**Operational note:** reading one card's metadata costs about 9–11M gas. Marketplaces and indexers calling `tokenURI` need an RPC whose call gas limit is above that; most public RPCs allow 30M or more. This is written up in `test/NOTES.md`. Nothing was deployed, and the Renderer still takes no constructor arguments and has no storage.\n\nThere are untracked files in the repository root (shell profiles, `.claude/`, `.idea`, `.vscode`, `.mcp.json`) that I didn't create. I left them alone, and they shouldn't be part of the submission.","treeHash":"918e42c498c821eca3c3ff1e02d758e94d011d2b","usage":{"cachedInputTokens":478969,"inputTokens":22,"model":"claude-opus-5-5","outputTokens":6965,"runtime":"claude","turns":11,"wallClockMs":382949}},{"artifacts":[],"attempt":1,"bundleHash":"ea29a7fc8094f82b18740db5cb6514740c93633a2caaae534b042cea1f345fb6","device":"21173e2f9a010d0b","findings":[],"hash":"e8a5fb5bf77dec84e6bce8b81eec0fc0a1ac877311baa3cc909ce792413f84e8","nodeId":"0c0211ed-dc5d-4002-9114-95a1efbea2aa","outcome":"completed","summary":"Implemented all five Registry rules, updated tests, and revised the four required documents.\n\n- `forge build` and `forge fmt --check` pass.\n- Seeded `forge test`: 124 passed, 11 fork tests skipped.\n- Runtime sizes: Registry **23,364 B**; Composer **23,377 B**, both below 24,576 B.\n\nLive fork verification was blocked by RPC errors: pinned historical state was pruned; alternative endpoints returned HTTP 403.","treeHash":"9469f4ec8c961779182a348ef1de3bbb812cb3a7","usage":{"cachedInputTokens":2290816,"inputTokens":109553,"model":"gpt-6-astra","outputTokens":22701,"runtime":"codex","turns":8,"wallClockMs":751896}}],"verification":[{"checks":[{"durationMs":20179,"exitCode":0,"name":"build","output":"Compiling 74 files with Solc 0.8.24\nSolc 0.8.24 finished in 19.52s\nCompiler run successful!\n","passed":true},{"durationMs":18080,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 11 tests for test/fork/Mainnet.fork.t.sol:MainnetForkTest\n[SKIP] test_fork_attestationSignedForAnotherConsumerMissesOnTheRealIntake() (gas: 0)\n[SKIP] test_fork_curatorIsSettledWithTheBriefsConstants() (gas: 0)\n[SKIP] test_fork_firstContributorIsAnHourZeroEarlyBird() (gas: 0)\n[SKIP] test_fork_intakeV2SellsTheActionAsTheBriefRecords() (gas: 0)\n[SKIP] test_fork_lastContributorIsNoEarlyBird() (gas: 0)\n[SKIP] test_fork_memberMintsAndRendersAgainstTheRealCurator() (gas: 0)\n[SKIP] test_fork_nonMemberReadsZeroFalseAndHasNoCuratorTrait() (gas: 0)\n[SKIP] test_fork_operatorTraitReadsTheRealCollectionAndGuardsZero() (gas: 0)\n[SKIP] test_fork_pinnedBlockIsTheOneRecorded() (gas: 0)\n[SKIP] test_fork_thousandthContributorJoinedInsideTheFirstThousandWindow() (gas: 0)\n[SKIP] test_fork_upgradeThroughTheRealIntakeThenCompleteFromTheWriter() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 11 skipped; finished in 5.87ms (3.71ms CPU time)\n\nRan 3 tests for test/Attestations.t.sol:AttestationsTest\n[PASS] test_allFiveRecoverTheAttesterUnderTheirOwnDomainOnly() (gas: 2558095)\n[PASS] test_loaderRejectsUnknownAnswerTypeNames() (gas: 4845)\n[PASS] test_protocolVectorDigestAndSelector() (gas: 811587)\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 26.68ms (35.76ms CPU time)\n\nRan 25 tests for test/Registry.t.sol:RegistryTest\n[PASS] test_abandonOnlyAfterFourteenDaysAndStaleCallbackLeavesSuccessor() (gas: 3290573)\n[PASS] test_anyoneReadsAnyWalletAndNothingUsesTxOrigin() (gas: 1214313)\n[PASS] test_attestationForAnotherConsumerOrChainIsNeverAccepted() (gas: 3212146)\n[PASS] test_callbacksRejectEveryoneButTheIntake() (gas: 1629477)\n[PASS] test_claimSponsoredRules() (gas: 5273483)\n[PASS] test_directTraitsAreLiveAndNeedNoCard() (gas: 604852)\n[PASS] test_fuzz_tiersAreMonotone(uint8,bool,uint32,uint128,uint32,uint8) (runs: 256, μ: 707104, ~: 695017)\n[PASS] test_malformedEnvelopeIsNotDeliveredAndStaysPending() (gas: 1560312)\n[PASS] test_mintOncePerWalletAndTransfersKeepClaimant() (gas: 956553)\n[PASS] test_mintWithoutFeeReverts() (gas: 47096)\n[PASS] test_missReasons() (gas: 29424974)\n[PASS] test_noReceiveOrFallback() (gas: 57797)\n[PASS] test_nonMemberIsNeverAnEarlyBird() (gas: 231583)\n[PASS] test_onFailureClearsAndAllowsRetry() (gas: 3004590)\n[PASS] test_onResultGasWorstCase() (gas: 2319307)\nLogs:\n  onResult worst-case gas: 164954\n\n[PASS] test_poolIsTheBalanceAndOnlyLeavesThroughSponsoredRequests() (gas: 5220530)\n[PASS] test_reentrantTokenCannotReenterMint() (gas: 1250303)\n[PASS] test_registerSpecAssignsSequentialIdsAndIsImmutable() (gas: 1212776)\n[PASS] test_sharedFactBadEnvelopeIsAMissAndCanBeRequestedAgain() (gas: 6921250)\n[PASS] test_sharedFactFlow() (gas: 2477224)\n[PASS] test_specGuards() (gas: 1336670)\n[PASS] test_supportsERC4906AndERC721() (gas: 25952)\n[PASS] test_upgradeGuards() (gas: 6031723)\n[PASS] test_upgradeHappyPathMarksTraitAndRefreshesCard() (gas: 2535846)\n[PASS] test_upgradeWithoutCardAttachesToClaimant() (gas: 1894335)\nSuite result: ok. 25 passed; 0 failed; 0 skipped; finished in 435.54ms (502.22ms CPU time)\n\nRan 6 tests for test/Artifacts.t.sol:ArtifactsTest\n[PASS] test_constructorRejectsUnsettledOrUnavailableCurator() (gas: 260692)\n[PASS] test_constructorRejectsZeroAddressesAndStoresTheRest() (gas: 5746)\n[PASS] test_deployScriptUsesTheFiveStaticAddresses() (gas: 25389439)\n[PASS] test_noForbiddenOpcodesInRuntime() (gas: 38892951)\n[PASS] test_noImmutableReferencesInAnyArtifact() (gas: 68961277)\n[PASS] test_twoDeploymentsHaveIdenticalRuntimeCode() (gas: 1055431)\nSuite result: ok. 6 passed; 0 failed; 0 skipped; finished in 438.52ms (186.72ms CPU time)\n\nRan 5 tests for test/Goldens.t.sol:GoldensTest\n[PASS] test_escapeJsonNeutralisesMarkup() (gas: 42667)\n[PASS] test_goldenSyntheticDirect() (gas: 2854689)\n[PASS] test_goldenSyntheticOracle() (gas: 7482746)\n[PASS] test_goldenSyntheticWidthThroughTheRenderer() (gas: 17712445)\n[PASS] test_templateArtifactsMatchTheCompiledConstants() (gas: 529967)\nSuite result: ok. 5 passed; 0 failed; 0 skipped; finished in 447.39ms (245.55ms CPU time)\n\nRan 6 tests for test/Templates.t.sol:TemplatesTest\n[PASS] test_allTenBodiesAreByteExact() (gas: 1449627)\n[PASS] test_allTenQuestionHashesEqualThePlanes() (gas: 2178091)\n[PASS] test_bodyIsDeterministicInClaimantAndDiffersAcrossClaimants() (gas: 461117)\n[PASS] test_directAndUnknownIdsHaveNoBody() (gas: 60757)\n[PASS] test_hexMinAndCatalogWindows() (gas: 147061)\n[PASS] test_traitNamesAndClasses() (gas: 112555)\nSuite result: ok. 6 passed; 0 failed; 0 skipped; finished in 458.01ms (34.83ms CPU time)\n\nRan 10 tests for test/ReReview.t.sol:ReReviewTest\n[PASS] test_coldGas_firstCommunityVerificationWithACard() (gas: 2400597)\nLogs:\n  cold onResult gas, first community verification with a card: 133356\n\n[PASS] test_coldGas_sharedFact64Catalog() (gas: 1739400)\nLogs:\n  cold onResult gas, 64-address shared fact (catalog 1201): 164087\n\n[PASS] test_coldGas_sharedFact64Community() (gas: 2100980)\nLogs:\n  cold onResult gas, 64-address shared fact (community T3): 170445\n\n[PASS] test_communityAttributesAppearOnlyForVerifiedSpecs() (gas: 3797318)\n[PASS] test_constructorReadsIsSettledWithoutWriting() (gas: 137184)\n[PASS] test_hugeSignatureOnCommunitySharedFactAndCardRequestClearsUnderStipend() (gas: 12212714)\n[PASS] test_lowerOrdinalAcquiredLaterReplacesTheHigherOne() (gas: 7442108)\n[PASS] test_sameSignedEvidenceSatisfiesAnotherRequestWithTheSameQuestion() (gas: 3260603)\n[PASS] test_specIdsEndAt65534() (gas: 894575)\n[PASS] test_unusedFixedValIsRefusedAndAnEmptyFilterIsNotSerialised() (gas: 1301526)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 478.35ms (114.88ms CPU time)\n\nRan 8 tests for test/Rename.t.sol:RenameTest\n[PASS] test_catalogSpecNamesMatchTheTable() (gas: 495517)\n[PASS] test_collectionNameAndSymbol() (gas: 24961)\n[PASS] test_composerStaysUnderTheSizeLimitWithHeadroom() (gas: 13473)\n[PASS] test_metadataCarriesTheFinalFamilyNames() (gas: 3112765)\n[PASS] test_nameTableIsTheFinalTable() (gas: 609030)\n[PASS] test_noWorkingNameSurvivesInTheNameTable() (gas: 1059773)\n[PASS] test_unknownIdHasNoName() (gas: 25157)\n[PASS] test_upgradeRefusesTopWeightsAsASharedFact() (gas: 1640733)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 478.36ms (23.07ms CPU time)\n\nRan 10 tests for test/ReviewChanges.t.sol:ReviewChangesTest\n[PASS] test_fuzz_emptyFixedArgRequiresZeroValueForT1AndT2(uint256) (runs: 256, μ: 2956374, ~: 2956141)\nLogs:\n  Bound result 35333985669315922527260931604091084076\n\n[PASS] test_fuzz_ordinalShowsLowestVerifiedId(uint8) (runs: 256, μ: 3985698, ~: 4284753)\nLogs:\n  Bound result 4\n\n[PASS] test_hugeAnswerClearsUintBoolAndSharedRequestsUnderStipend() (gas: 26374507)\n[PASS] test_hugeSignatureClearsPendingAndAllowsImmediateRetry() (gas: 6836423)\n[PASS] test_metadataReportsMinimaEvenWhenSignedPanelIsLarger() (gas: 5345562)\n[PASS] test_scalarAnswerLengthPrecedesChainSignerAndClaimedType() (gas: 17758859)\n[PASS] test_sharedAnswerUpperBoundPrecedesChainAndSigner() (gas: 4500987)\n[PASS] test_signatureLengthPrecedesAnswerLengthAndChain() (gas: 37648555)\n[PASS] test_unknownRequestStillPrecedesDynamicSizeChecks() (gas: 12869684)\n[PASS] test_validationPrecedenceAfterSizes() (gas: 18078135)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 478.31ms (998.04ms CPU time)\n\nRan 32 tests for test/Adversarial.t.sol:AdversarialTest\n[PASS] test_abandonedPoolRequestKeepsPoolUsedAndLateCallbackIsIgnored() (gas: 1738180)\n[PASS] test_abandonedSharedFactCanBeRequestedAgainAndTheLateAnswerIsIgnored() (gas: 3059040)\n[PASS] test_attestationForAnotherClaimantIsAMissForThisRequest() (gas: 3242445)\n[PASS] test_attestationForAnotherTraitWithTheSameWindowIsAMiss() (gas: 3245426)\n[PASS] test_callbackStarvedOfGasIsNotDeliveredAndStaysPending() (gas: 1692060)\n[PASS] test_cardShowsAtMostThirtyTwoCommunityIdsAndCountsThemAll() (gas: 82776684)\n[PASS] test_claimSponsoredWhilePendingOrVerifiedReverts() (gas: 2063667)\n[PASS] test_communityT3SpecIsASharedFactWithItsOwnHead() (gas: 2416992)\n[PASS] test_everyTemplateVerifiesUnderTheStipendWithACard() (gas: 11682903)\n[PASS] test_expiryAtTheExactSecondStillPassesAndOneLaterDoesNot() (gas: 3239703)\n[PASS] test_fuzz_anyFieldAlteredAfterSigningIsASignatureMiss(uint8,uint256) (runs: 512, μ: 1652043, ~: 1653719)\nLogs:\n  Bound result 9\n\n[PASS] test_fuzz_applySharedFactOnlyWithinTheHead(uint8,uint8) (runs: 256, μ: 1781842, ~: 1764840)\nLogs:\n  Bound result 1\n  Bound result 0\n\n[PASS] test_fuzz_boolAnswerMustBeExactlyZeroOrOne(uint256) (runs: 512, μ: 2075327, ~: 2074850)\n[PASS] test_fuzz_countAnswerAgainstTheThreshold(uint256,bytes1,bool) (runs: 512, μ: 1654368, ~: 1636821)\n[PASS] test_fuzz_expiryAndClockSkewBoundaries(uint64,uint64) (runs: 512, μ: 1649052, ~: 1640554)\n[PASS] test_fuzz_hasTraitAndTraitsOfNeverRevert(address,uint16,uint8,bool,uint8) (runs: 512, μ: 322816, ~: 332644)\n[PASS] test_fuzz_maximalSpecRegistersComposesAndFitsTheBody(uint8,uint256,uint256) (runs: 64, μ: 2653781, ~: 2739373)\nLogs:\n  Bound result 5\n  Bound result 11445\n\n[PASS] test_fuzz_panelAndQuorumBoundaries(uint16,uint16,uint16) (runs: 512, μ: 1653345, ~: 1639522)\n[PASS] test_fuzz_panelTraitNeedsElevenAndSeven(uint16,uint16,uint16) (runs: 512, μ: 2082015, ~: 2068504)\n[PASS] test_fuzz_specBodyIsDeterministicAndClaimantBound(address,address) (runs: 256, μ: 857041, ~: 857041)\n[PASS] test_fuzz_upgradeChargesExactlyKTimesPriceAndLeavesThePoolAlone(uint8,uint256) (runs: 256, μ: 5560850, ~: 5330609)\nLogs:\n  Bound result 2\n  Bound result 1103\n\n[PASS] test_fuzz_upgradeRejectsEveryIdThatIsNotAnOracleTrait(uint16) (runs: 256, μ: 209765, ~: 209335)\n[PASS] test_fuzz_windowMustEqualTheCanonicalOne(uint64,uint64) (runs: 512, μ: 1640084, ~: 1640085)\n[PASS] test_onFailureRecordsWhatItIsToldAndStoresNothing() (gas: 3062598)\n[PASS] test_questionHashIsBoundToTheClaimantAndTheTrait() (gas: 685415)\n[PASS] test_reentrantTokenCannotReenterAnyIMDMovingFunction() (gas: 7515151)\n[PASS] test_sharedFactWorstCaseEnvelopeUnderTheStipend() (gas: 3967953)\n[PASS] test_signatureShapesThatDoNotRecover() (gas: 9332597)\n[PASS] test_tokenURIDependsOnlyOnTheClaimantsFacts() (gas: 8674180)\n[PASS] test_traitClassForEveryCatalogIdAndRevertsForUnknown() (gas: 703191)\n[PASS] test_upgradeSponsoredDrawsAllNineAndRefusesDuplicates() (gas: 12969772)\n[PASS] test_verifiedWindowIsTheCanonicalWindowForEveryOracleId() (gas: 16454854)\nSuite result: ok. 32 passed; 0 failed; 0 skipped; finished in 478.61ms (4.96s CPU time)\n\nRan 1 test for test/Invariants.t.sol:InvariantsTest\n[PASS]\nInvariantsTest invariants:\n[PASS] invariant_oneCardPerClaimantWithImmutableClaimant\n[PASS] invariant_poolOnlyLeavesThroughSponsoredRequests\n InvariantsTest invariants (runs: 256, calls: 16384, reverts: 0)\n\n╭----------+-------------------+-------+---------+----------╮\n| Contract | Selector          | Calls | Reverts | Discards |\n+===========================================================+\n| Handler  | claimSponsored    | 3265  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | mintCard          | 3330  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | sponsor           | 3339  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | transfer          | 3201  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | upgradeAndDeliver | 3249  | 0       | 0        |\n╰----------+-------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 308\n  Bound result 2046\n  Bound result 82665823011417812\n  Bound result 12163\n  Bound result 215657637510118453\n  Bound result 524187422652989221\n  Bound result 1320381278693290321\n  Bound result 1937920515361081457\n  Bound result 1225148678\n  Bound result 3299\n  Bound result 223750639358177715\n  Bound result 788617302553701049\n  Bound result 3639\n  Bound result 3866055608\n  Bound result 128754166780375432\n  Bound result 223750639358177715\n  Bound result 18548\n  Bound result 1678047275088780755\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 7.52s (7.51s CPU time)\n\nRan 3 tests for test/InvariantsExtended.t.sol:InvariantsExtendedTest\n[PASS]\nInvariantsExtendedTest invariants:\n[PASS] invariant_markedExactlyWhenAPassingAttestationWasDelivered\n[PASS] invariant_oneCardPerClaimant\n[PASS] invariant_poolIsFeesPlusDonationsMinusSponsoredRequests\n[PASS] invariant_sharedFactsAreHashesStoredOnlyOnDelivery\n[PASS] invariant_specsAreImmutable\n InvariantsExtendedTest invariants (runs: 96, calls: 4608, reverts: 0)\n\n╭-------------+-------------------+-------+---------+----------╮\n| Contract    | Selector          | Calls | Reverts | Discards |\n+==============================================================+\n| FullHandler | abandonLate       | 291   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | applyShared       | 268   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | claimSponsored    | 277   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverFalse      | 295   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverTampered   | 274   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverTrue       | 313   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | donate            | 272   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | failRequest       | 327   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | mintCard          | 284   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | registerSpec      | 283   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | replayConsumed    | 257   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | requestSharedFact | 297   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | sponsor           | 293   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | transfer          | 307   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | upgradePaid       | 295   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | upgradeSponsored  | 275   | 0       | 0        |\n╰-------------+-------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 35\n  Bound result 14\n  Bound result 10983\n  Bound result 2415676653069638864\n  Bound result 902043053378963033\n  Bound result 2\n  Bound result 410403077100057623\n  Bound result 2\n  Bound result 201\n  Bound result 1718\n  Bound result 288110161598811041\n  Bound result 4\n  Bound result 3\n  Bound result 5\n  Bound result 100000001571142876\n\n[PASS] test_handlerReplayOfAConsumedIdChangesNothing() (gas: 1919666)\n[PASS] test_handlerSponsoredSelectionAcceptsMaxSeed() (gas: 4069668)\nLogs:\n  Bound result 3000000000000000000\n  Bound result 3\n\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 17.68s (17.67s CPU time)\n\nRan 12 test suites in 17.70s (28.93s CPU time): 109 tests passed, 0 failed, 11 skipped (120 total tests)\n","passed":true},{"durationMs":397,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Registry.abandon(bytes32)\",\"Registry.applySharedFact(uint16,address[])\",\"Registry.approve(address,uint256)\",\"Registry.claimSponsored(uint16)\",\"Registry.mintCard()\",\"Registry.onFailure(bytes32,uint8,bytes32,uint16,uint16,bytes)\",\"Registry.onResult(bytes32,(bytes32,uint256,bytes32,uint8,bytes,uint256,uint64,uint64,bytes32,bytes32,uint16,uint16,uint16,uint64,uint64),bytes)\",\"Registry.registerSpec((uint8,address,string,string,string,uint256,string,uint8,uint256,uint64,uint64,string))\",\"Registry.requestSharedFact(uint16,uint256)\",\"Registry.safeTransferFrom(address,address,uint256)\",\"Registry.safeTransferFrom(address,address,uint256,bytes)\",\"Registry.setApprovalForAll(address,bool)\",\"Registry.sponsor(uint256)\",\"Registry.transferFrom(address,address,uint256)\",\"Registry.upgrade(uint16[],uint256)\",\"Registry.upgradeSponsored(uint256,uint16[])\"],\"files\":{\".gitignore\":8,\".gitmodules\":6,\"CATALOG.md\":254,\"CONCEPT.md\":199,\"DISCLOSURE.md\":13,\"INTEGRATION.md\":306,\"LICENSE\":21,\"README.md\":268,\"TEMPLATES.md\":154,\"foundry.toml\":44,\"reference/Intake.sol\":5175,\"reference/IntakeV2.sol\":5240,\"reference/PROVENANCE.md\":44,\"reference/abi/IMD.json\":1684,\"reference/abi/IdentityMD.json\":894,\"reference/abi/Intake.json\":955,\"reference/abi/IntakeV2.json\":1070,\"reference/abi/WhitelistCurator.json\":794,\"reference/anchors/headers.json\":61,\"reference/attestations/2026-10-10-link-pilot.json\":92,\"reference/attestations/2026-10-10-meatbag-consumer.json\":104,\"reference/attestations/2026-10-11-feed-consumer-v2.json\":105,\"reference/attestations/2026-10-11-nonce-false.json\":92,\"reference/attestations/2026-10-11-nonce-true.json\":92,\"reference/attestations/README.md\":29,\"reference/intake/completions.json\":147,\"reference/list-record/src/ListRecord.sol\":169,\"reference/list-record/src/ListRecordRenderer.sol\":126,\"reference/list-record/src/interfaces/IListRecordRenderer.sol\":29,\"reference/list-record/src/lib/SSTORE2.sol\":39,\"reference/list-record/src/lib/Str.sol\":54,\"reference/list-record/test/Renderer.t.sol\":165,\"reference/list-record/test/RendererMechanism.t.sol\":203,\"reference/list-record/test/Template.t.sol\":293,\"reference/list-record/test/fixtures/golden_synthetic_held_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_held_uri.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_transferred_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_transferred_uri.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_width_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_width_uri.txt\":1,\"reference/plane/checks/1001-hour-savior.json\":81,\"reference/plane/checks/1102-ordinal-1000.json\":81,\"reference/plane/checks/1105-first-thousand.json\":81,\"reference/plane/checks/1201-top-32.json\":82,\"reference/plane/checks/1301-not-born-yesterday.json\":86,\"reference/plane/checks/701-still-here.json\":81,\"reference/plane/checks/801-last-stand.json\":81,\"reference/plane/checks/T2-log-sum-composed.json\":81,\"reference/plane/checks/T4-call-compare-reference.json\":81,\"reference/plane/checks/T5-community-composed.json\":86,\"reference/plane/questionHashes.json\":92,\"reference/plane/quotes/1001-hour-savior.json\":20,\"reference/plane/quotes/1102-ordinal-1000.json\":20,\"reference/plane/quotes/1105-first-thousand.json\":20,\"reference/plane/quotes/1201-top-32.json\":20,\"reference/plane/quotes/1301-not-born-yesterday.json\":20,\"reference/plane/quotes/701-still-here.json\":20,\"reference/plane/quotes/801-last-stand.json\":20,\"reference/plane/quotes/T2-log-sum-composed.json\":20,\"reference/plane/quotes/T4-call-compare-reference.json\":20,\"reference/plane/quotes/T5-community-composed.json\":20,\"remappings.txt\":2,\"script/Deploy.s.sol\":35,\"src/Composer.sol\":627,\"src/Registry.sol\":696,\"src/Renderer.sol\":210,\"src/TemplateData.sol\":15,\"src/Types.sol\":41,\"src/interfaces/IIDMD.sol\":8,\"src/interfaces/IIntake.sol\":29,\"src/interfaces/IOracleConsumer.sol\":38,\"src/interfaces/IWhitelistCurator.sol\":53,\"template/blob.hex\":1,\"template/card.svg\":1,\"template/offsets.txt\":1,\"templates/fixtures/1001-hour-savior.json\":22,\"templates/fixtures/1102-ordinal-1000.json\":22,\"templates/fixtures/1105-first-thousand.json\":22,\"templates/fixtures/1201-top-32.json\":22,\"templates/fixtures/1301-not-born-yesterday.json\":24,\"templates/fixtures/701-still-here.json\":22,\"templates/fixtures/801-last-stand.json\":22,\"templates/fixtures/T2-log-sum-composed.json\":23,\"templates/fixtures/T4-call-compare-reference.json\":21,\"templates/fixtures/T5-community-composed.json\":24,\"test/.gitkeep\":0,\"test/Adversarial.t.sol\":815,\"test/Artifacts.t.sol\":124,\"test/Attestations.t.sol\":195,\"test/Base.t.sol\":157,\"test/Goldens.t.sol\":157,\"test/Invariants.t.sol\":124,\"test/InvariantsExtended.t.sol\":504,\"test/NOTES.md\":148,\"test/ReReview.t.sol\":248,\"test/Registry.t.sol\":762,\"test/Rename.t.sol\":224,\"test/ReviewChanges.t.sol\":212,\"test/Templates.t.sol\":149,\"test/fixtures/golden_synthetic_direct_preimage.txt\":1,\"test/fixtures/golden_synthetic_direct_svg.txt\":1,\"test/fixtures/golden_synthetic_direct_uri.txt\":1,\"test/fixtures/golden_synthetic_oracle_preimage.txt\":1,\"test/fixtures/golden_synthetic_oracle_svg.txt\":1,\"test/fixtures/golden_synthetic_oracle_uri.txt\":1,\"test/fixtures/golden_synthetic_width_preimage.txt\":1,\"test/fixtures/golden_synthetic_width_svg.txt\":1,\"test/fixtures/golden_synthetic_width_uri.txt\":1,\"test/fork/Mainnet.fork.t.sol\":330,\"test/mocks/Mocks.sol\":231,\"tools/gen_template.py\":466,\"tools/test_gen_template.py\":104},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":7040,"exitCode":0,"name":"slither","output":"[medium/high] incorrect-equality at src/Registry.sol:476: Registry.onFailure(bytes32,uint8,bytes32,uint16,uint16,bytes) (src/Registry.sol#476-488) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:389: Registry.abandon(bytes32) (src/Registry.sol#389-395) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:451: Registry.onResult(bytes32,OracleAttestation,bytes) (src/Registry.sol#451-473) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:491: Registry._rule(uint16) (src/Registry.sol#491-505) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:491: Registry._rule(uint16) (src/Registry.sol#491-505) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:491: Registry._rule(uint16) (src/Registry.sol#491-505) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:491: Registry._rule(uint16) (src/Registry.sol#491-505) uses a dangerous strict equality:\n[medium/medium] reentrancy-no-eth at src/Registry.sol:413: Reentrancy in Registry._request(address,uint16,uint256) (src/Registry.sol#413-435):\n[medium/medium] uninitialized-local at src/Composer.sol:543: Composer.encodeBody(Composer.Question,address).defs (src/Composer.sol#543) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Registry.sol:238: Registry.cardOf(uint256).k (src/Registry.sol#238) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Renderer.sol:190: Renderer.escapeJson(bytes).o (src/Renderer.sol#190) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Registry.sol:626: Registry.applySharedFact(uint16,address[]).found (src/Registry.sol#626) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Composer.sol:613: Composer.hexMin(uint256).n (src/Composer.sol#613) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Composer.sol:187: Composer.traitsOf(address,address).n (src/Composer.sol#187) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Renderer.sol:101: Renderer._communityAttributes(Card).name (src/Renderer.sol#101) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Registry.sol:233: Registry.cardOf(uint256).n (src/Registry.sol#233) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Composer.sol:586: Composer.canonical(Composer.Question).defs (src/Composer.sol#586) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Renderer.sol:182: Renderer.escapeJson(bytes).extra (src/Renderer.sol#182) is a local variable never initialized\n[medium/medium] unused-return at src/Registry.sol:679: Registry.claimSponsored(uint16) (src/Registry.sol#679-687) ignores return value by (None,joined) = curator.firstHourOf(msg.sender) (src/Registry.sol#681)\n[medium/medium] unused-return at src/Registry.sol:508: Registry._check(Registry.Pending,OracleAttestation,bytes,uint8,uint64,uint64) (src/Registry.sol#508-536) ignores return value by (signer,err,None) = ECDSA.tryRecover(attestationDigest(a),v,r,s) (src/Registry.sol#527)\n[low/medium] calls-loop at src/Composer.sol:158: Composer.traitsOf(address,address) (src/Composer.sol#158-195) has external calls inside a loop: ICatalogRegistry(registry).hasTrait(wallet,all[i]) (src/Composer.sol#189)\n[low/medium] calls-loop at src/Registry.sol:340: Registry.specOf(uint16) (src/Registry.sol#340-348) has external calls inside a loop: composer.catalogSpec(traitId,address(curator)) (src/Registry.sol#347)\n[low/medium] calls-loop at src/Registry.sol:340: Registry.specOf(uint16) (src/Registry.sol#340-348) has external calls inside a loop: composer.catalogSpec(traitId,address(curator)) (src/Registry.sol#347)\n[low/medium] calls-loop at src/Registry.sol:413: Registry._request(address,uint16,uint256) (src/Registry.sol#413-435) has external calls inside a loop: requestId = intake.requestWithFailure(ACTION,body,IIntake.Callback(address(this),this.onResult.selector),this.onFailure.selector,address(imd),price) (src/Registry.sol#423-430)\n[low/medium] calls-loop at src/Registry.sol:413: Registry._request(address,uint16,uint256) (src/Registry.sol#413-435) has external calls inside a loop: requestId = intake.requestWithFailure(ACTION,body,IIntake.Callback(address(this),this.onResult.selector),this.onFailure.selector,address(imd),price) (src/Registry.sol#423-430)\n[low/medium] calls-loop at src/Registry.sol:340: Registry.specOf(uint16) (src/Registry.sol#340-348) has external calls inside a loop: composer.catalogSpec(traitId,address(curator)) (src/Registry.sol#347)\n[low/medium] calls-loop at src/Registry.sol:351: Registry.composeBody(uint16,address) (src/Registry.sol#351-358) has external calls inside a loop: composer.compose(s,claimant,address(this),traitId == 1301,address(curator)) (src/Registry.sol#357)\n[low/medium] calls-loop at src/Registry.sol:351: Registry.composeBody(uint16,address) (src/Registry.sol#351-358) has external calls inside a loop: composer.compose(s,claimant,address(this),traitId == 1301,address(curator)) (src/Registry.sol#357)\n[low/medium] calls-loop at src/Registry.sol:340: Registry.specOf(uint16) (src/Registry.sol#340-348) has external calls inside a loop: composer.catalogSpec(traitId,address(curator)) (src/Registry.sol#347)\n[low/medium] reentrancy-benign at src/Registry.sol:413: Reentrancy in Registry._request(address,uint16,uint256) (src/Registry.sol#413-435):\n[low/medium] timestamp at src/Registry.sol:389: Registry.abandon(bytes32) (src/Registry.sol#389-395) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:491: Registry._rule(uint16) (src/Registry.sol#491-505) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:679: Registry.claimSponsored(uint16) (src/Registry.sol#679-687) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:563: Registry._mark(address,uint16,bytes32,bytes32) (src/Registry.sol#563-569) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:438: Registry._clear(bytes32,Registry.Pending) (src/Registry.sol#438-445) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:451: Registry.onResult(bytes32,OracleAttestation,bytes) (src/Registry.sol#451-473) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:476: Registry.onFailure(bytes32,uint8,bytes32,uint16,uint16,bytes) (src/Registry.sol#476-488) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:508: Registry._check(Registry.Pending,OracleAttestation,bytes,uint8,uint64,uint64) (src/Registry.sol#508-536) uses timestamp for comparisons","passed":true},{"durationMs":1854,"exitCode":0,"name":"aderyn","output":"[high] abi-encode-packed-hash-collision at src/Renderer.sol:45: `abi.encodePacked()` Hash Collision\n[high] reentrancy-state-change at src/Registry.sol:180: Reentrancy: State change after external call (3 places)\n[low] costly-loop at src/Registry.sol:373: Costly operations inside loop (2 places)\n[low] internal-function-used-once at src/Composer.sol:335: Internal Function Used Only Once (4 places)\n[low] large-numeric-literal at src/Composer.sol:99: Large Numeric Literal (2 places)\n[low] literal-instead-of-constant at src/Composer.sol:76: Literal Instead of Constant (212 places)\n[low] require-revert-in-loop at src/Composer.sol:244: Loop Contains `require`/`revert` (8 places)\n[low] state-variable-could-be-immutable at src/Registry.sol:87: State Variable Could Be Immutable (8 places)\n[low] unchecked-return at src/Registry.sol:384: Unchecked Return (2 places)\n[low] uninitialized-local-variable at src/Composer.sol:613: Uninitialized Local Variable (3 places)\n[low] unsafe-oz-erc721-mint at src/Registry.sol:201: Unsafe `ERC721::_mint()`\n[low] unused-public-function at src/Composer.sol:307: Public Function Not Used Internally (4 places)","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"140615a151c5d100e2cc1866235b6b1fdbca0c46087262db8a2dcd5f353a6147","verifiedTreeHash":"c39b80c104299a694347971368fe2f1652492b93","verifierVersion":"0.1.0+63e0a393"},{"checks":[{"durationMs":16165,"exitCode":0,"name":"build","output":"Compiling 80 files with Solc 0.8.24\nSolc 0.8.24 finished in 15.61s\nCompiler run successful with warnings:\nWarning (5159): \"selfdestruct\" has been deprecated. Note that, starting from the Cancun hard fork, the underlying opcode no longer deletes the code and data associated with an account and only transfers its Ether to the beneficiary, unless executed in the same transaction in which the contract was created (see EIP-6780). Any use in newly deployed contracts is strongly discouraged even if the new behavior is taken into account. Future changes to the EVM might further reduce the functionality of the opcode.\n  --> test/mocks/MockBurnExecutor.sol:10:9:\n   |\n10 |         selfdestruct(payable(to));\n   |         ^^^^^^^^^^^^\n\n","passed":true},{"durationMs":14721,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 4 tests for test/fork/BurnRule.fork.t.sol:BurnRuleForkTest\n[SKIP] test_fork_cappedPreviewReturnsZeroAndFreeClaimRefunds() (gas: 0)\n[SKIP] test_fork_nonpayableClaimantWithNoETHCanClaimWhenPreviewReturnsZero() (gas: 0)\n[SKIP] test_fork_realExecutorAndOFTForceRefundSurplusToNonpayableRecipient() (gas: 0)\n[SKIP] test_fork_realExecutorExactFeeForNonpayableRecipient() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 4 skipped; finished in 1.07ms (212.05µs CPU time)\n\nRan 6 tests for test/Templates.t.sol:TemplatesTest\n[PASS] test_allTenBodiesAreByteExact() (gas: 1449627)\n[PASS] test_allTenQuestionHashesEqualThePlanes() (gas: 2177871)\n[PASS] test_bodyIsDeterministicInClaimantAndDiffersAcrossClaimants() (gas: 461117)\n[PASS] test_directAndUnknownIdsHaveNoBody() (gas: 60735)\n[PASS] test_hexMinAndCatalogWindows() (gas: 146951)\n[PASS] test_traitNamesAndClasses() (gas: 112489)\nSuite result: ok. 6 passed; 0 failed; 0 skipped; finished in 17.36ms (16.14ms CPU time)\n\nRan 3 tests for test/Attestations.t.sol:AttestationsTest\n[PASS] test_allFiveRecoverTheAttesterUnderTheirOwnDomainOnly() (gas: 4844928)\n[PASS] test_loaderRejectsUnknownAnswerTypeNames() (gas: 4845)\n[PASS] test_protocolVectorDigestAndSelector() (gas: 1951001)\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 20.55ms (21.52ms CPU time)\n\nRan 8 tests for test/Rename.t.sol:RenameTest\n[PASS] test_catalogSpecNamesMatchTheTable() (gas: 495517)\n[PASS] test_collectionNameAndSymbol() (gas: 25005)\n[PASS] test_composerStaysUnderTheSizeLimitWithHeadroom() (gas: 13473)\n[PASS] test_metadataCarriesTheFinalFamilyNames() (gas: 3113865)\n[PASS] test_nameTableIsTheFinalTable() (gas: 609580)\n[PASS] test_noWorkingNameSurvivesInTheNameTable() (gas: 1060323)\n[PASS] test_unknownIdHasNoName() (gas: 25179)\n[PASS] test_upgradeRefusesTopWeightsAsASharedFact() (gas: 1640620)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 119.31ms (17.64ms CPU time)\n\nRan 7 tests for test/Artifacts.t.sol:ArtifactsTest\n[PASS] test_constructorRejectsUnsettledOrUnavailableCurator() (gas: 260841)\n[PASS] test_constructorRejectsZeroAddressesAndStoresTheRest() (gas: 5882)\n[PASS] test_deployScriptUsesTheFiveStaticAddresses() (gas: 26242761)\n[PASS] test_noForbiddenOpcodesInRuntime() (gas: 41384716)\n[PASS] test_noImmutableReferencesInAnyArtifact() (gas: 71500946)\n[PASS] test_sepoliaRehearsalPassesZeroBurnExecutor() (gas: 27533057)\n[PASS] test_twoDeploymentsHaveIdenticalRuntimeCode() (gas: 3301727)\nSuite result: ok. 7 passed; 0 failed; 0 skipped; finished in 359.17ms (171.21ms CPU time)\n\nRan 11 tests for test/fork/Mainnet.fork.t.sol:MainnetForkTest\n[SKIP] test_fork_attestationSignedForAnotherConsumerMissesOnTheRealIntake() (gas: 0)\n[SKIP] test_fork_curatorIsSettledWithTheBriefsConstants() (gas: 0)\n[SKIP] test_fork_firstContributorIsAnHourZeroEarlyBird() (gas: 0)\n[SKIP] test_fork_intakeV2SellsTheActionAsTheBriefRecords() (gas: 0)\n[SKIP] test_fork_lastContributorIsNoEarlyBird() (gas: 0)\n[SKIP] test_fork_memberMintsAndRendersAgainstTheRealCurator() (gas: 0)\n[SKIP] test_fork_nonMemberReadsZeroFalseAndHasNoCuratorTrait() (gas: 0)\n[SKIP] test_fork_operatorTraitReadsTheRealCollectionAndGuardsZero() (gas: 0)\n[SKIP] test_fork_pinnedBlockIsTheOneRecorded() (gas: 0)\n[SKIP] test_fork_thousandthContributorJoinedInsideTheFirstThousandWindow() (gas: 0)\n[SKIP] test_fork_upgradeThroughTheRealIntakeThenCompleteFromTheWriter() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 11 skipped; finished in 359.09ms (4.97ms CPU time)\n\nRan 5 tests for test/Goldens.t.sol:GoldensTest\n[PASS] test_escapeJsonNeutralisesMarkup() (gas: 42667)\n[PASS] test_goldenSyntheticDirect() (gas: 2856889)\n[PASS] test_goldenSyntheticOracle() (gas: 7497182)\n[PASS] test_goldenSyntheticWidthThroughTheRenderer() (gas: 17712445)\n[PASS] test_templateArtifactsMatchTheCompiledConstants() (gas: 529967)\nSuite result: ok. 5 passed; 0 failed; 0 skipped; finished in 359.18ms (100.40ms CPU time)\n\nRan 19 tests for test/BurnRule.t.sol:BurnRuleTest\n[PASS] testFuzz_belowThresholdRefundsWithoutFee(bool,uint96,uint96) (runs: 256, μ: 1560570, ~: 1574731)\nLogs:\n  Bound result 7640838004\n  Bound result 0\n\n[PASS] testFuzz_dueForwardsWholeValueAndExecutorForceRefunds(bool,uint96,uint96) (runs: 256, μ: 1859268, ~: 1874008)\nLogs:\n  Bound result 79228162445264337593543969610\n  Bound result 9759\n\n[PASS] testFuzz_dueWithoutEnoughFeeRevertsAtomically(bool,uint96,uint96) (runs: 256, μ: 3239279, ~: 3267500)\nLogs:\n  Bound result 79228162445264337593637011439\n  Bound result 54345354208473\n\n[PASS] testFuzz_failedPreviewOrBridgeSkipsAndRefunds(bool,uint8,uint96) (runs: 256, μ: 1715281, ~: 1602514)\nLogs:\n  Bound result 4\n  Bound result 0\n\n[PASS] testFuzz_nonpayableContractWorksWithNoValueExactFeeAndSurplus(bool,uint8) (runs: 256, μ: 1933980, ~: 1973459)\nLogs:\n  Bound result 0\n\n[PASS] testFuzz_quoteAboveCapSkipsWithCodeThree(bool,uint96,uint96) (runs: 256, μ: 1564399, ~: 1578477)\nLogs:\n  Bound result 79228162514259337601184788339\n  Bound result 0\n\n[PASS] testFuzz_unsetExecutorDisablesBurnAndRefunds(bool,uint96) (runs: 256, μ: 1581624, ~: 1566440)\nLogs:\n  Bound result 104888045511923\n\n[PASS] test_constantsAndStorage() (gas: 29128)\n[PASS] test_exactFeeAndCapAreInclusive() (gas: 1705666)\n[PASS] test_executorReentryIsGuarded() (gas: 1767599)\n[PASS] test_existingChecksAndIntakeFailurePrecedeBurnFeeCheck() (gas: 578832)\n[PASS] test_gasArgumentsIncludeOnlyTheValueStipend() (gas: 1691387)\n[PASS] test_noFeeAtExactThresholdReverts() (gas: 1534343)\n[PASS] test_nonpayableContractAcceptsZeroRefundOnPreviewFailure() (gas: 1788417)\n[PASS] test_paidFunctionsRemainNonpayableAndNeverTriggerBurn() (gas: 2905300)\n[PASS] test_registryRefundReentryIsGuarded() (gas: 2171494)\n[PASS] test_rejectedNonzeroRegistryRefundRevertsAllEffects() (gas: 1946468)\n[PASS] test_zeroQuoteStillTriggersWhenDue() (gas: 1640834)\n[PASS] test_zeroValueHasNoStipend() (gas: 1561866)\nSuite result: ok. 19 passed; 0 failed; 0 skipped; finished in 359.15ms (949.99ms CPU time)\n\nRan 10 tests for test/ReReview.t.sol:ReReviewTest\n[PASS] test_coldGas_firstCommunityVerificationWithACard() (gas: 2414829)\nLogs:\n  cold onResult gas, first community verification with a card: 133356\n\n[PASS] test_coldGas_sharedFact64Catalog() (gas: 1739333)\nLogs:\n  cold onResult gas, 64-address shared fact (catalog 1201): 164087\n\n[PASS] test_coldGas_sharedFact64Community() (gas: 2108231)\nLogs:\n  cold onResult gas, 64-address shared fact (community T3): 170445\n\n[PASS] test_communityAttributesAppearOnlyForVerifiedSpecs() (gas: 3826113)\n[PASS] test_constructorReadsIsSettledWithoutWriting() (gas: 137310)\n[PASS] test_hugeSignatureOnCommunitySharedFactAndCardRequestClearsUnderStipend() (gas: 12241601)\n[PASS] test_lowerOrdinalAcquiredLaterReplacesTheHigherOne() (gas: 7447473)\n[PASS] test_sameSignedEvidenceSatisfiesAnotherRequestWithTheSameQuestion() (gas: 3260591)\n[PASS] test_specIdsEndAt65534() (gas: 909553)\n[PASS] test_unusedFixedValIsRefusedAndAnEmptyFilterIsNotSerialised() (gas: 1332960)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 358.66ms (46.06ms CPU time)\n\nRan 15 tests for test/RegistryRules.t.sol:RegistryRulesTest\n[PASS] test_constructorPriceCheckIsPassiveAndAcceptsAnyNonzeroPrice() (gas: 147524)\n[PASS] test_constructorRejectsUnavailableIntake() (gas: 26511)\n[PASS] test_constructorRejectsWrongAsset() (gas: 548759)\n[PASS] test_constructorRejectsZeroIntakePrice() (gas: 42149)\n[PASS] test_fuzz_bothPoolPathsShareOneAllowancePerUtcDay(bool,bool,uint32) (runs: 256, μ: 3244865, ~: 3246808)\nLogs:\n  Bound result 71696\n\n[PASS] test_idmdCounterFollowsTransfersAndStopsAtNine() (gas: 15425880)\n[PASS] test_idmdHolderMustAlsoBeAListMember() (gas: 1763127)\n[PASS] test_memberClaimsOnDeploymentDayWithoutCardOrIdmd() (gas: 1674133)\n[PASS] test_noVerdictConsumesTheDayAndLifetimePair() (gas: 3267853)\n[PASS] test_paidUpgradeAndSharedFactDoNotUseOrObeyPoolDailyLimit() (gas: 8184370)\n[PASS] test_revertingIntakeDoesNotConsumePoolAllowances() (gas: 2026944)\n[PASS] test_specAndFirstClaimCostSixPointNineIMD() (gas: 1880063)\n[PASS] test_specRequiresFullFeeAndAllowance() (gas: 798750)\n[PASS] test_sponsoredUpgradeRequiresExactlyOneTrait() (gas: 1779524)\n[PASS] test_switchingIdmdDoesNotBypassDailyLimit() (gas: 3190403)\nSuite result: ok. 15 passed; 0 failed; 0 skipped; finished in 359.23ms (217.00ms CPU time)\n\nRan 10 tests for test/ReviewChanges.t.sol:ReviewChangesTest\n[PASS] test_fuzz_emptyFixedArgRequiresZeroValueForT1AndT2(uint256) (runs: 256, μ: 3038813, ~: 3038581)\nLogs:\n  Bound result 9760\n\n[PASS] test_fuzz_ordinalShowsLowestVerifiedId(uint8) (runs: 256, μ: 3980323, ~: 4285767)\nLogs:\n  Bound result 4\n\n[PASS] test_hugeAnswerClearsUintBoolAndSharedRequestsUnderStipend() (gas: 26374278)\n[PASS] test_hugeSignatureClearsPendingAndAllowsImmediateRetry() (gas: 6836376)\n[PASS] test_metadataReportsMinimaEvenWhenSignedPanelIsLarger() (gas: 5347672)\n[PASS] test_scalarAnswerLengthPrecedesChainSignerAndClaimedType() (gas: 17758399)\n[PASS] test_sharedAnswerUpperBoundPrecedesChainAndSigner() (gas: 4500783)\n[PASS] test_signatureLengthPrecedesAnswerLengthAndChain() (gas: 37648371)\n[PASS] test_unknownRequestStillPrecedesDynamicSizeChecks() (gas: 12869628)\n[PASS] test_validationPrecedenceAfterSizes() (gas: 18077721)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 377.95ms (821.79ms CPU time)\n\nRan 25 tests for test/Registry.t.sol:RegistryTest\n[PASS] test_abandonOnlyAfterFourteenDaysAndStaleCallbackLeavesSuccessor() (gas: 3290693)\n[PASS] test_anyoneReadsAnyWalletAndNothingUsesTxOrigin() (gas: 1215457)\n[PASS] test_attestationForAnotherConsumerOrChainIsNeverAccepted() (gas: 3212010)\n[PASS] test_callbacksRejectEveryoneButTheIntake() (gas: 1629408)\n[PASS] test_claimSponsoredRules() (gas: 5261343)\n[PASS] test_directTraitsAreLiveAndNeedNoCard() (gas: 606480)\n[PASS] test_fuzz_tiersAreMonotone(uint8,bool,uint32,uint128,uint32,uint8) (runs: 256, μ: 708003, ~: 695939)\n[PASS] test_malformedEnvelopeIsNotDeliveredAndStaysPending() (gas: 1560266)\n[PASS] test_mintOncePerWalletAndTransfersKeepClaimant() (gas: 956472)\n[PASS] test_mintWithoutFeeReverts() (gas: 47096)\n[PASS] test_missReasons() (gas: 29423817)\n[PASS] test_noReceiveOrFallback() (gas: 57774)\n[PASS] test_nonMemberIsNeverAnEarlyBird() (gas: 232815)\n[PASS] test_onFailureClearsAndAllowsRetry() (gas: 3004496)\n[PASS] test_onResultGasWorstCase() (gas: 2333538)\nLogs:\n  onResult worst-case gas: 164954\n\n[PASS] test_poolIsTheBalanceAndOnlyLeavesThroughSponsoredRequests() (gas: 5655208)\n[PASS] test_reentrantTokenCannotReenterMint() (gas: 2358744)\n[PASS] test_registerSpecAssignsSequentialIdsAndIsImmutable() (gas: 1230411)\n[PASS] test_sharedFactBadEnvelopeIsAMissAndCanBeRequestedAgain() (gas: 6920875)\n[PASS] test_sharedFactFlow() (gas: 2477157)\n[PASS] test_specGuards() (gas: 1337022)\n[PASS] test_supportsERC4906AndERC721() (gas: 25952)\n[PASS] test_upgradeGuards() (gas: 6031562)\n[PASS] test_upgradeHappyPathMarksTraitAndRefreshesCard() (gas: 2535776)\n[PASS] test_upgradeWithoutCardAttachesToClaimant() (gas: 1894335)\nSuite result: ok. 25 passed; 0 failed; 0 skipped; finished in 377.87ms (428.18ms CPU time)\n\nRan 32 tests for test/Adversarial.t.sol:AdversarialTest\n[PASS] test_abandonedPoolRequestKeepsPoolUsedAndLateCallbackIsIgnored() (gas: 1762092)\n[PASS] test_abandonedSharedFactCanBeRequestedAgainAndTheLateAnswerIsIgnored() (gas: 3059160)\n[PASS] test_attestationForAnotherClaimantIsAMissForThisRequest() (gas: 3242463)\n[PASS] test_attestationForAnotherTraitWithTheSameWindowIsAMiss() (gas: 3245512)\n[PASS] test_callbackStarvedOfGasIsNotDeliveredAndStaysPending() (gas: 1692036)\n[PASS] test_cardShowsAtMostThirtyTwoCommunityIdsAndCountsThemAll() (gas: 83199526)\n[PASS] test_claimSponsoredWhilePendingOrVerifiedReverts() (gas: 2103612)\n[PASS] test_communityT3SpecIsASharedFactWithItsOwnHead() (gas: 2422263)\n[PASS] test_everyTemplateVerifiesUnderTheStipendWithACard() (gas: 11725680)\n[PASS] test_expiryAtTheExactSecondStillPassesAndOneLaterDoesNot() (gas: 3239701)\n[PASS] test_fuzz_anyFieldAlteredAfterSigningIsASignatureMiss(uint8,uint256) (runs: 512, μ: 1651775, ~: 1653292)\nLogs:\n  Bound result 12\n\n[PASS] test_fuzz_applySharedFactOnlyWithinTheHead(uint8,uint8) (runs: 256, μ: 1779608, ~: 1763146)\nLogs:\n  Bound result 11\n  Bound result 10\n\n[PASS] test_fuzz_boolAnswerMustBeExactlyZeroOrOne(uint256) (runs: 512, μ: 2075409, ~: 2074861)\n[PASS] test_fuzz_countAnswerAgainstTheThreshold(uint256,bytes1,bool) (runs: 512, μ: 1654462, ~: 1636820)\n[PASS] test_fuzz_expiryAndClockSkewBoundaries(uint64,uint64) (runs: 512, μ: 1649478, ~: 1640553)\n[PASS] test_fuzz_hasTraitAndTraitsOfNeverRevert(address,uint16,uint8,bool,uint8) (runs: 512, μ: 324068, ~: 333832)\n[PASS] test_fuzz_maximalSpecRegistersComposesAndFitsTheBody(uint8,uint256,uint256) (runs: 64, μ: 2608520, ~: 2714872)\nLogs:\n  Bound result 4\n  Bound result 1242\n\n[PASS] test_fuzz_panelAndQuorumBoundaries(uint16,uint16,uint16) (runs: 512, μ: 1652646, ~: 1639521)\n[PASS] test_fuzz_panelTraitNeedsElevenAndSeven(uint16,uint16,uint16) (runs: 512, μ: 2081436, ~: 2068503)\n[PASS] test_fuzz_specBodyIsDeterministicAndClaimantBound(address,address) (runs: 256, μ: 862359, ~: 862359)\n[PASS] test_fuzz_upgradeChargesExactlyKTimesPriceAndLeavesThePoolAlone(uint8,uint256) (runs: 256, μ: 5427531, ~: 4216091)\nLogs:\n  Bound result 1\n  Bound result 85162141015295317186\n\n[PASS] test_fuzz_upgradeRejectsEveryIdThatIsNotAnOracleTrait(uint16) (runs: 256, μ: 209726, ~: 209294)\n[PASS] test_fuzz_windowMustEqualTheCanonicalOne(uint64,uint64) (runs: 512, μ: 1640085, ~: 1640084)\n[PASS] test_onFailureRecordsWhatItIsToldAndStoresNothing() (gas: 3062571)\n[PASS] test_questionHashIsBoundToTheClaimantAndTheTrait() (gas: 685415)\n[PASS] test_reentrantTokenCannotReenterAnyIMDMovingFunction() (gas: 7515361)\n[PASS] test_sharedFactWorstCaseEnvelopeUnderTheStipend() (gas: 3982203)\n[PASS] test_signatureShapesThatDoNotRecover() (gas: 9332591)\n[PASS] test_tokenURIDependsOnlyOnTheClaimantsFacts() (gas: 8684057)\n[PASS] test_traitClassForEveryCatalogIdAndRevertsForUnknown() (gas: 703103)\n[PASS] test_upgradeSponsoredDrawsAllNineOverNineDaysAndRefusesDuplicates() (gas: 12553282)\n[PASS] test_verifiedWindowIsTheCanonicalWindowForEveryOracleId() (gas: 16455284)\nSuite result: ok. 32 passed; 0 failed; 0 skipped; finished in 378.56ms (3.43s CPU time)\n\nRan 1 test for test/Invariants.t.sol:InvariantsTest\n[PASS]\nInvariantsTest invariants:\n[PASS] invariant_oneCardPerClaimantWithImmutableClaimant\n[PASS] invariant_poolOnlyLeavesThroughSponsoredRequests\n InvariantsTest invariants (runs: 256, calls: 16384, reverts: 0)\n\n╭----------+-------------------+-------+---------+----------╮\n| Contract | Selector          | Calls | Reverts | Discards |\n+===========================================================+\n| Handler  | claimSponsored    | 3265  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | mintCard          | 3330  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | sponsor           | 3339  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | transfer          | 3201  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | upgradeAndDeliver | 3249  | 0       | 0        |\n╰----------+-------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 213\n  Bound result 2697\n  Bound result 232327283799885420\n  Bound result 11118\n  Bound result 215657637510118453\n  Bound result 524187422652989221\n  Bound result 1320381278693290321\n  Bound result 1522576576837696411\n  Bound result 10001\n  Bound result 2926\n  Bound result 100106859594922287\n  Bound result 440777721653952637\n  Bound result 3856056067\n  Bound result 3917867460\n  Bound result 232178970234613086\n  Bound result 100106859594922287\n  Bound result 20015\n  Bound result 1678047275088780755\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 5.66s (5.65s CPU time)\n\nRan 1 test for test/BurnInvariant.t.sol:BurnInvariantTest\n[PASS] invariant_registryRetainsNoClaimETHAndPoolOnlyFundsOracleRequests() (runs: 256, calls: 16384, reverts: 0)\n\n╭-------------+----------+-------+---------+----------╮\n| Contract    | Selector | Calls | Reverts | Discards |\n+=====================================================+\n| BurnHandler | claim    | 16384 | 0       | 0        |\n╰-------------+----------+-------+---------+----------╯\n\nLogs:\n  Bound result 9702\n  Bound result 9278116149798686\n  Bound result 4333632135824622\n  Bound result 19696\n  Bound result 3141\n  Bound result 18136\n  Bound result 74264337592978034889\n  Bound result 12870\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4753\n  Bound result 5478\n  Bound result 1518861586\n  Bound result 4329670727698909\n  Bound result 15693\n  Bound result 74264337592978034889\n  Bound result 7908479475144762\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 98774062121644064830\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 122609387100943981161\n  Bound result 79734594412376\n  Bound result 12854586475430201\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 19772198691491117\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 3441\n  Bound result 2044\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 17802818706453832898\n  Bound result 7460743740574033\n  Bound result 16990996474253376\n  Bound result 74264337592978034889\n  Bound result 10243\n  Bound result 4333632135824622\n  Bound result 71202813315479296207\n  Bound result 2613887\n  Bound result 1070270366970226\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 24051\n  Bound result 46949226\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 7186274249645810\n  Bound result 21404\n  Bound result 77210\n  Bound result 3335625467\n  Bound result 0\n  Bound result 5395913583836774\n  Bound result 19614\n  Bound result 299316095187\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 11937431820990960457\n  Bound result 4329670727698907\n  Bound result 995\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 7586\n  Bound result 6182\n  Bound result 5052607601762670\n  Bound result 19262259121888276\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 130\n  Bound result 14\n  Bound result 4092969590\n  Bound result 4588715398364389\n  Bound result 12051654715830086\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 17187164159967916130\n  Bound result 23903776941\n  Bound result 14975149265295504\n  Bound result 7\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 6802\n  Bound result 9754788245518959\n  Bound result 3623\n  Bound result 98338121332633279291\n  Bound result 24\n  Bound result 4395945203998\n  Bound result 985\n  Bound result 4329670727698909\n  Bound result 10742\n  Bound result 3963\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 6679\n  Bound result 324\n  Bound result 3447\n  Bound result 20897\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 21428\n  Bound result 7106\n  Bound result 4329670727698909\n  Bound result 19999999999950750\n  Bound result 5294\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 14667301500156989998\n  Bound result 116553\n  Bound result 13092803666759633\n  Bound result 83733057225855311060\n  Bound result 19198\n  Bound result 19697\n  Bound result 1197\n  Bound result 4329670727698909\n  Bound result 7801\n  Bound result 4054421664747\n  Bound result 193699560887\n  Bound result 27279407710\n  Bound result 97690445790727103470\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 9989871024882447\n  Bound result 46949226\n  Bound result 73273288175836905449\n  Bound result 9099\n  Bound result 9073\n  Bound result 3177\n  Bound result 4329670727698909\n  Bound result 15610478311796840\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 2444752366\n  Bound result 75216254744206367017\n  Bound result 5798502565688889\n  Bound result 4333632135824622\n  Bound result 640346783884\n  Bound result 162247\n  Bound result 746\n  Bound result 74264337592978034889\n  Bound result 977\n  Bound result 3208528899\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 13196\n  Bound result 18090133959158773052\n  Bound result 1953703219\n  Bound result 14952\n  Bound result 87327904333667050561\n  Bound result 13906\n  Bound result 6193069993318486\n  Bound result 2344\n  Bound result 4329670727698909\n  Bound result 2671407626939996\n  Bound result 118525391588326925725\n  Bound result 4329670727698909\n  Bound result 7401\n  Bound result 402185552\n  Bound result 1882026272997601\n  Bound result 4333632135824622\n  Bound result 10259\n  Bound result 79734594412376\n  Bound result 23599\n  Bound result 3096268765\n  Bound result 21906\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 6752\n  Bound result 4333632135824622\n  Bound result 80482283893750513594\n  Bound result 1555859370376807\n  Bound result 4333632135824622\n  Bound result 3920\n  Bound result 4329670727698909\n  Bound result 7453\n  Bound result 508782016282\n  Bound result 2405541588391\n  Bound result 9334709863697109\n  Bound result 24386\n  Bound result 112\n  Bound result 4333632135824622\n  Bound result 8755\n  Bound result 4329670727698909\n  Bound result 15798\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 11.86s (11.85s CPU time)\n\nRan 3 tests for test/InvariantsExtended.t.sol:InvariantsExtendedTest\n[PASS]\nInvariantsExtendedTest invariants:\n[PASS] invariant_markedExactlyWhenAPassingAttestationWasDelivered\n[PASS] invariant_oneCardPerClaimant\n[PASS] invariant_poolDailyAndLifetimeLimits\n[PASS] invariant_poolIsFeesPlusDonationsMinusSponsoredRequests\n[PASS] invariant_sharedFactsAreHashesStoredOnlyOnDelivery\n[PASS] invariant_specsAreImmutable\n InvariantsExtendedTest invariants (runs: 96, calls: 4608, reverts: 0)\n\n╭-------------+-------------------+-------+---------+----------╮\n| Contract    | Selector          | Calls | Reverts | Discards |\n+==============================================================+\n| FullHandler | abandonLate       | 275   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | advanceTime       | 268   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | applyShared       | 244   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | claimSponsored    | 284   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverFalse      | 275   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverTampered   | 271   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverTrue       | 306   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | donate            | 251   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | failRequest       | 278   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | mintCard          | 267   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | registerSpec      | 253   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | replayConsumed    | 268   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | requestSharedFact | 295   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | sponsor           | 251   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | transfer          | 257   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | upgradePaid       | 294   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | upgradeSponsored  | 271   | 0       | 0        |\n╰-------------+-------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 202\n  Bound result 1395\n  Bound result 1\n  Bound result 3608\n  Bound result 1700000000000659902\n  Bound result 3162\n  Bound result 662520278696519506\n  Bound result 2\n  Bound result 1\n  Bound result 3\n  Bound result 688923224432504664\n  Bound result 2\n  Bound result 158\n  Bound result 31\n  Bound result 1\n\n[PASS] test_handlerReplayOfAConsumedIdChangesNothing() (gas: 1919752)\n[PASS] test_handlerSponsoredSelectionAcceptsMaxSeed() (gas: 1763178)\nLogs:\n  Bound result 3000000000000000000\n\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 14.41s (14.40s CPU time)\n\nRan 16 test suites in 14.41s (35.37s CPU time): 145 tests passed, 0 failed, 15 skipped (160 total tests)\n","passed":true},{"durationMs":300,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Registry.abandon(bytes32)\",\"Registry.applySharedFact(uint16,address[])\",\"Registry.approve(address,uint256)\",\"Registry.claimSponsored(uint16)\",\"Registry.mintCard()\",\"Registry.onFailure(bytes32,uint8,bytes32,uint16,uint16,bytes)\",\"Registry.onResult(bytes32,(bytes32,uint256,bytes32,uint8,bytes,uint256,uint64,uint64,bytes32,bytes32,uint16,uint16,uint16,uint64,uint64),bytes)\",\"Registry.registerSpec((uint8,address,string,string,string,uint256,string,uint8,uint256,uint64,uint64,string))\",\"Registry.requestSharedFact(uint16,uint256)\",\"Registry.safeTransferFrom(address,address,uint256)\",\"Registry.safeTransferFrom(address,address,uint256,bytes)\",\"Registry.setApprovalForAll(address,bool)\",\"Registry.sponsor(uint256)\",\"Registry.transferFrom(address,address,uint256)\",\"Registry.upgrade(uint16[],uint256)\",\"Registry.upgradeSponsored(uint256,uint16[])\"],\"files\":{\".gitignore\":8,\".gitmodules\":6,\"CATALOG.md\":267,\"CONCEPT.md\":236,\"DISCLOSURE.md\":41,\"INTEGRATION.md\":396,\"LICENSE\":21,\"README.md\":339,\"TEMPLATES.md\":154,\"foundry.toml\":44,\"reference/Intake.sol\":5175,\"reference/IntakeV2.sol\":5240,\"reference/PROVENANCE.md\":44,\"reference/abi/IMD.json\":1684,\"reference/abi/IdentityMD.json\":894,\"reference/abi/Intake.json\":955,\"reference/abi/IntakeV2.json\":1070,\"reference/abi/WhitelistCurator.json\":794,\"reference/anchors/headers.json\":61,\"reference/attestations/2026-10-10-link-pilot.json\":92,\"reference/attestations/2026-10-10-meatbag-consumer.json\":104,\"reference/attestations/2026-10-11-feed-consumer-v2.json\":105,\"reference/attestations/2026-10-11-nonce-false.json\":92,\"reference/attestations/2026-10-11-nonce-true.json\":92,\"reference/attestations/README.md\":29,\"reference/burn/BurnExecutorV2.sol.txt\":314,\"reference/burn/abi.json\":1001,\"reference/burn/provenance.json\":17,\"reference/intake/completions.json\":147,\"reference/list-record/src/ListRecord.sol\":169,\"reference/list-record/src/ListRecordRenderer.sol\":126,\"reference/list-record/src/interfaces/IListRecordRenderer.sol\":29,\"reference/list-record/src/lib/SSTORE2.sol\":39,\"reference/list-record/src/lib/Str.sol\":54,\"reference/list-record/test/Renderer.t.sol\":165,\"reference/list-record/test/RendererMechanism.t.sol\":203,\"reference/list-record/test/Template.t.sol\":293,\"reference/list-record/test/fixtures/golden_synthetic_held_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_held_uri.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_transferred_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_transferred_uri.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_width_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_width_uri.txt\":1,\"reference/plane/checks/1001-hour-savior.json\":81,\"reference/plane/checks/1102-ordinal-1000.json\":81,\"reference/plane/checks/1105-first-thousand.json\":81,\"reference/plane/checks/1201-top-32.json\":82,\"reference/plane/checks/1301-not-born-yesterday.json\":86,\"reference/plane/checks/701-still-here.json\":81,\"reference/plane/checks/801-last-stand.json\":81,\"reference/plane/checks/T2-log-sum-composed.json\":81,\"reference/plane/checks/T4-call-compare-reference.json\":81,\"reference/plane/checks/T5-community-composed.json\":86,\"reference/plane/questionHashes.json\":92,\"reference/plane/quotes/1001-hour-savior.json\":20,\"reference/plane/quotes/1102-ordinal-1000.json\":20,\"reference/plane/quotes/1105-first-thousand.json\":20,\"reference/plane/quotes/1201-top-32.json\":20,\"reference/plane/quotes/1301-not-born-yesterday.json\":20,\"reference/plane/quotes/701-still-here.json\":20,\"reference/plane/quotes/801-last-stand.json\":20,\"reference/plane/quotes/T2-log-sum-composed.json\":20,\"reference/plane/quotes/T4-call-compare-reference.json\":20,\"reference/plane/quotes/T5-community-composed.json\":20,\"remappings.txt\":2,\"script/Deploy.s.sol\":38,\"src/Composer.sol\":627,\"src/Registry.sol\":742,\"src/Renderer.sol\":210,\"src/TemplateData.sol\":15,\"src/Types.sol\":41,\"src/interfaces/IBurnExecutor.sol\":12,\"src/interfaces/IIDMD.sol\":8,\"src/interfaces/IIntake.sol\":29,\"src/interfaces/IOracleConsumer.sol\":38,\"src/interfaces/IWhitelistCurator.sol\":53,\"template/blob.hex\":1,\"template/card.svg\":1,\"template/offsets.txt\":1,\"templates/fixtures/1001-hour-savior.json\":22,\"templates/fixtures/1102-ordinal-1000.json\":22,\"templates/fixtures/1105-first-thousand.json\":22,\"templates/fixtures/1201-top-32.json\":22,\"templates/fixtures/1301-not-born-yesterday.json\":24,\"templates/fixtures/701-still-here.json\":22,\"templates/fixtures/801-last-stand.json\":22,\"templates/fixtures/T2-log-sum-composed.json\":23,\"templates/fixtures/T4-call-compare-reference.json\":21,\"templates/fixtures/T5-community-composed.json\":24,\"test/.gitkeep\":0,\"test/Adversarial.t.sol\":815,\"test/Artifacts.t.sol\":172,\"test/Attestations.t.sol\":196,\"test/Base.t.sol\":158,\"test/BurnInvariant.t.sol\":120,\"test/BurnRule.t.sol\":293,\"test/Goldens.t.sol\":157,\"test/Invariants.t.sol\":124,\"test/InvariantsExtended.t.sol\":519,\"test/NOTES.md\":226,\"test/ReReview.t.sol\":262,\"test/Registry.t.sol\":772,\"test/RegistryRules.t.sol\":310,\"test/Rename.t.sol\":224,\"test/ReviewChanges.t.sol\":212,\"test/Templates.t.sol\":149,\"test/fixtures/golden_synthetic_direct_preimage.txt\":1,\"test/fixtures/golden_synthetic_direct_svg.txt\":1,\"test/fixtures/golden_synthetic_direct_uri.txt\":1,\"test/fixtures/golden_synthetic_oracle_preimage.txt\":1,\"test/fixtures/golden_synthetic_oracle_svg.txt\":1,\"test/fixtures/golden_synthetic_oracle_uri.txt\":1,\"test/fixtures/golden_synthetic_width_preimage.txt\":1,\"test/fixtures/golden_synthetic_width_svg.txt\":1,\"test/fixtures/golden_synthetic_width_uri.txt\":1,\"test/fork/BurnRule.fork.t.sol\":162,\"test/fork/Mainnet.fork.t.sol\":338,\"test/mocks/MockBurnExecutor.sol\":134,\"test/mocks/Mocks.sol\":231,\"tools/gen_template.py\":466,\"tools/test_gen_template.py\":104},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":5104,"exitCode":0,"name":"slither","output":"[medium/high] incorrect-equality at src/Registry.sol:403: Registry.abandon(bytes32) (src/Registry.sol#403-409) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:490: Registry.onFailure(bytes32,uint8,bytes32,uint16,uint16,bytes) (src/Registry.sol#490-502) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:505: Registry._rule(uint16) (src/Registry.sol#505-519) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:465: Registry.onResult(bytes32,OracleAttestation,bytes) (src/Registry.sol#465-487) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:505: Registry._rule(uint16) (src/Registry.sol#505-519) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:505: Registry._rule(uint16) (src/Registry.sol#505-519) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:699: Registry._fromPool(uint16) (src/Registry.sol#699-712) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:505: Registry._rule(uint16) (src/Registry.sol#505-519) uses a dangerous strict equality:\n[medium/medium] reentrancy-no-eth at src/Registry.sol:427: Reentrancy in Registry._request(address,uint16,uint256) (src/Registry.sol#427-449):\n[medium/medium] uninitialized-local at src/Composer.sol:543: Composer.encodeBody(Composer.Question,address).defs (src/Composer.sol#543) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Registry.sol:252: Registry.cardOf(uint256).k (src/Registry.sol#252) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Renderer.sol:190: Renderer.escapeJson(bytes).o (src/Renderer.sol#190) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Registry.sol:640: Registry.applySharedFact(uint16,address[]).found (src/Registry.sol#640) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Composer.sol:613: Composer.hexMin(uint256).n (src/Composer.sol#613) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Composer.sol:187: Composer.traitsOf(address,address).n (src/Composer.sol#187) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Renderer.sol:101: Renderer._communityAttributes(Card).name (src/Renderer.sol#101) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Registry.sol:247: Registry.cardOf(uint256).n (src/Registry.sol#247) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Composer.sol:586: Composer.canonical(Composer.Question).defs (src/Composer.sol#586) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Renderer.sol:182: Renderer.escapeJson(bytes).extra (src/Renderer.sol#182) is a local variable never initialized\n[medium/medium] unused-return at src/Registry.sol:716: Registry._burnOrRefund() (src/Registry.sol#716-741) ignores return value by (amount,fee) = burnExecutor.previewBridge{gas: 200_000}() (src/Registry.sol#718-735)\n[medium/medium] unused-return at src/Registry.sol:694: Registry._requireMember() (src/Registry.sol#694-697) ignores return value by (None,joined) = curator.firstHourOf(msg.sender) (src/Registry.sol#695)\n[medium/medium] unused-return at src/Registry.sol:522: Registry._check(Registry.Pending,OracleAttestation,bytes,uint8,uint64,uint64) (src/Registry.sol#522-550) ignores return value by (signer,err,None) = ECDSA.tryRecover(attestationDigest(a),v,r,s) (src/Registry.sol#541)\n[low/medium] calls-loop at src/Composer.sol:158: Composer.traitsOf(address,address) (src/Composer.sol#158-195) has external calls inside a loop: ICatalogRegistry(registry).hasTrait(wallet,all[i]) (src/Composer.sol#189)\n[low/medium] calls-loop at src/Registry.sol:354: Registry.specOf(uint16) (src/Registry.sol#354-362) has external calls inside a loop: composer.catalogSpec(traitId,address(curator)) (src/Registry.sol#361)\n[low/medium] calls-loop at src/Registry.sol:354: Registry.specOf(uint16) (src/Registry.sol#354-362) has external calls inside a loop: composer.catalogSpec(traitId,address(curator)) (src/Registry.sol#361)\n[low/medium] calls-loop at src/Registry.sol:354: Registry.specOf(uint16) (src/Registry.sol#354-362) has external calls inside a loop: composer.catalogSpec(traitId,address(curator)) (src/Registry.sol#361)\n[low/medium] calls-loop at src/Registry.sol:427: Registry._request(address,uint16,uint256) (src/Registry.sol#427-449) has external calls inside a loop: requestId = intake.requestWithFailure(ACTION,body,IIntake.Callback(address(this),this.onResult.selector),this.onFailure.selector,address(imd),price) (src/Registry.sol#437-444)\n[low/medium] calls-loop at src/Registry.sol:365: Registry.composeBody(uint16,address) (src/Registry.sol#365-372) has external calls inside a loop: composer.compose(s,claimant,address(this),traitId == 1301,address(curator)) (src/Registry.sol#371)\n[low/medium] reentrancy-benign at src/Registry.sol:427: Reentrancy in Registry._request(address,uint16,uint256) (src/Registry.sol#427-449):\n[low/medium] timestamp at src/Registry.sol:577: Registry._mark(address,uint16,bytes32,bytes32) (src/Registry.sol#577-583) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:465: Registry.onResult(bytes32,OracleAttestation,bytes) (src/Registry.sol#465-487) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:452: Registry._clear(bytes32,Registry.Pending) (src/Registry.sol#452-459) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:505: Registry._rule(uint16) (src/Registry.sol#505-519) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:522: Registry._check(Registry.Pending,OracleAttestation,bytes,uint8,uint64,uint64) (src/Registry.sol#522-550) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:699: Registry._fromPool(uint16) (src/Registry.sol#699-712) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:490: Registry.onFailure(bytes32,uint8,bytes32,uint16,uint16,bytes) (src/Registry.sol#490-502) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:403: Registry.abandon(bytes32) (src/Registry.sol#403-409) uses timestamp for comparisons","passed":true},{"durationMs":976,"exitCode":0,"name":"aderyn","output":"[high] abi-encode-packed-hash-collision at src/Renderer.sol:45: `abi.encodePacked()` Hash Collision\n[high] reentrancy-state-change at src/Registry.sol:192: Reentrancy: State change after external call (4 places)\n[low] costly-loop at src/Registry.sol:387: Costly operations inside loop\n[low] internal-function-used-once at src/Composer.sol:335: Internal Function Used Only Once (4 places)\n[low] large-numeric-literal at src/Composer.sol:99: Large Numeric Literal (3 places)\n[low] literal-instead-of-constant at src/Composer.sol:76: Literal Instead of Constant (213 places)\n[low] require-revert-in-loop at src/Composer.sol:244: Loop Contains `require`/`revert` (7 places)\n[low] state-no-address-check at src/Registry.sol:200: Address State Variable Set Without Checks\n[low] state-variable-could-be-immutable at src/Registry.sol:90: State Variable Could Be Immutable (9 places)\n[low] unchecked-return at src/Registry.sol:398: Unchecked Return (2 places)\n[low] uninitialized-local-variable at src/Composer.sol:613: Uninitialized Local Variable (3 places)\n[low] unsafe-oz-erc721-mint at src/Registry.sol:215: Unsafe `ERC721::_mint()`\n[low] unused-public-function at src/Composer.sol:307: Public Function Not Used Internally (4 places)\n[low] unused-state-variable at src/Registry.sol:64: Unused State Variable","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"69df38745ff01e70c9ad9e1828dfab5726aeba0e11240d58e0d65c59be4adcc5","verifiedTreeHash":"b974fbf6ed6fc54f9291a7c27a8dd1c133b3cd2b","verifierVersion":"0.1.0+63e0a393"},{"checks":[{"durationMs":15850,"exitCode":0,"name":"build","output":"Compiling 81 files with Solc 0.8.24\nSolc 0.8.24 finished in 15.34s\nCompiler run successful with warnings:\nWarning (5159): \"selfdestruct\" has been deprecated. Note that, starting from the Cancun hard fork, the underlying opcode no longer deletes the code and data associated with an account and only transfers its Ether to the beneficiary, unless executed in the same transaction in which the contract was created (see EIP-6780). Any use in newly deployed contracts is strongly discouraged even if the new behavior is taken into account. Future changes to the EVM might further reduce the functionality of the opcode.\n  --> test/mocks/MockBurnExecutor.sol:10:9:\n   |\n10 |         selfdestruct(payable(to));\n   |         ^^^^^^^^^^^^\n\nWarning (2018): Function state mutability can be restricted to pure\n   --> test/Goldens.t.sol:262:5:\n    |\n262 |     function _card(\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","passed":true},{"durationMs":15227,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 4 tests for test/fork/BurnRule.fork.t.sol:BurnRuleForkTest\n[SKIP] test_fork_cappedPreviewReturnsZeroAndFreeClaimRefunds() (gas: 0)\n[SKIP] test_fork_nonpayableClaimantWithNoETHCanClaimWhenPreviewReturnsZero() (gas: 0)\n[SKIP] test_fork_realExecutorAndOFTForceRefundSurplusToNonpayableRecipient() (gas: 0)\n[SKIP] test_fork_realExecutorExactFeeForNonpayableRecipient() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 4 skipped; finished in 443.65µs (259.54µs CPU time)\n\nRan 11 tests for test/fork/Mainnet.fork.t.sol:MainnetForkTest\n[SKIP] test_fork_attestationSignedForAnotherConsumerMissesOnTheRealIntake() (gas: 0)\n[SKIP] test_fork_curatorIsSettledWithTheBriefsConstants() (gas: 0)\n[SKIP] test_fork_firstContributorIsAnHourZeroEarlyBird() (gas: 0)\n[SKIP] test_fork_intakeV2SellsTheActionAsTheBriefRecords() (gas: 0)\n[SKIP] test_fork_lastContributorIsNoEarlyBird() (gas: 0)\n[SKIP] test_fork_memberMintsAndRendersAgainstTheRealCurator() (gas: 0)\n[SKIP] test_fork_nonMemberReadsZeroFalseAndHasNoCuratorTrait() (gas: 0)\n[SKIP] test_fork_operatorTraitReadsTheRealCollectionAndGuardsZero() (gas: 0)\n[SKIP] test_fork_pinnedBlockIsTheOneRecorded() (gas: 0)\n[SKIP] test_fork_thousandthContributorJoinedInsideTheFirstThousandWindow() (gas: 0)\n[SKIP] test_fork_upgradeThroughTheRealIntakeThenCompleteFromTheWriter() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 11 skipped; finished in 700.20µs (884.93µs CPU time)\n\nRan 6 tests for test/Templates.t.sol:TemplatesTest\n[PASS] test_allTenBodiesAreByteExact() (gas: 1449627)\n[PASS] test_allTenQuestionHashesEqualThePlanes() (gas: 2177871)\n[PASS] test_bodyIsDeterministicInClaimantAndDiffersAcrossClaimants() (gas: 461117)\n[PASS] test_directAndUnknownIdsHaveNoBody() (gas: 60735)\n[PASS] test_hexMinAndCatalogWindows() (gas: 146951)\n[PASS] test_traitNamesAndClasses() (gas: 112489)\nSuite result: ok. 6 passed; 0 failed; 0 skipped; finished in 12.26ms (10.03ms CPU time)\n\nRan 10 tests for test/ReReview.t.sol:ReReviewTest\n[PASS] test_coldGas_firstCommunityVerificationWithACard() (gas: 2414829)\nLogs:\n  cold onResult gas, first community verification with a card: 133356\n\n[PASS] test_coldGas_sharedFact64Catalog() (gas: 1739333)\nLogs:\n  cold onResult gas, 64-address shared fact (catalog 1201): 164087\n\n[PASS] test_coldGas_sharedFact64Community() (gas: 2108231)\nLogs:\n  cold onResult gas, 64-address shared fact (community T3): 170445\n\n[PASS] test_communityAttributesAppearOnlyForVerifiedSpecs() (gas: 4750926)\n[PASS] test_constructorReadsIsSettledWithoutWriting() (gas: 137310)\n[PASS] test_hugeSignatureOnCommunitySharedFactAndCardRequestClearsUnderStipend() (gas: 12241601)\n[PASS] test_lowerOrdinalAcquiredLaterReplacesTheHigherOne() (gas: 8477178)\n[PASS] test_sameSignedEvidenceSatisfiesAnotherRequestWithTheSameQuestion() (gas: 3260591)\n[PASS] test_specIdsEndAt65534() (gas: 909553)\n[PASS] test_unusedFixedValIsRefusedAndAnEmptyFilterIsNotSerialised() (gas: 1332960)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 42.30ms (39.79ms CPU time)\n\nRan 3 tests for test/Attestations.t.sol:AttestationsTest\n[PASS] test_allFiveRecoverTheAttesterUnderTheirOwnDomainOnly() (gas: 4844928)\n[PASS] test_loaderRejectsUnknownAnswerTypeNames() (gas: 4845)\n[PASS] test_protocolVectorDigestAndSelector() (gas: 1951001)\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 63.67ms (11.12ms CPU time)\n\nRan 15 tests for test/RegistryRules.t.sol:RegistryRulesTest\n[PASS] test_constructorPriceCheckIsPassiveAndAcceptsAnyNonzeroPrice() (gas: 147524)\n[PASS] test_constructorRejectsUnavailableIntake() (gas: 26511)\n[PASS] test_constructorRejectsWrongAsset() (gas: 548759)\n[PASS] test_constructorRejectsZeroIntakePrice() (gas: 42149)\n[PASS] test_fuzz_bothPoolPathsShareOneAllowancePerUtcDay(bool,bool,uint32) (runs: 256, μ: 3244846, ~: 3246808)\nLogs:\n  Bound result 13000\n\n[PASS] test_idmdCounterFollowsTransfersAndStopsAtNine() (gas: 15425880)\n[PASS] test_idmdHolderMustAlsoBeAListMember() (gas: 1763127)\n[PASS] test_memberClaimsOnDeploymentDayWithoutCardOrIdmd() (gas: 1674133)\n[PASS] test_noVerdictConsumesTheDayAndLifetimePair() (gas: 3267853)\n[PASS] test_paidUpgradeAndSharedFactDoNotUseOrObeyPoolDailyLimit() (gas: 8184370)\n[PASS] test_revertingIntakeDoesNotConsumePoolAllowances() (gas: 2026944)\n[PASS] test_specAndFirstClaimCostSixPointNineIMD() (gas: 1880063)\n[PASS] test_specRequiresFullFeeAndAllowance() (gas: 798750)\n[PASS] test_sponsoredUpgradeRequiresExactlyOneTrait() (gas: 1779524)\n[PASS] test_switchingIdmdDoesNotBypassDailyLimit() (gas: 3190403)\nSuite result: ok. 15 passed; 0 failed; 0 skipped; finished in 291.69ms (303.62ms CPU time)\n\nRan 7 tests for test/Artifacts.t.sol:ArtifactsTest\n[PASS] test_constructorRejectsUnsettledOrUnavailableCurator() (gas: 260841)\n[PASS] test_constructorRejectsZeroAddressesAndStoresTheRest() (gas: 5882)\n[PASS] test_deployScriptUsesTheFiveStaticAddresses() (gas: 30357649)\n[PASS] test_noForbiddenOpcodesInRuntime() (gas: 56081012)\n[PASS] test_noImmutableReferencesInAnyArtifact() (gas: 90081531)\n[PASS] test_sepoliaRehearsalPassesZeroBurnExecutor() (gas: 31644482)\n[PASS] test_twoDeploymentsHaveIdenticalRuntimeCode() (gas: 3365926)\nSuite result: ok. 7 passed; 0 failed; 0 skipped; finished in 304.53ms (128.60ms CPU time)\n\nRan 8 tests for test/Rename.t.sol:RenameTest\n[PASS] test_catalogSpecNamesMatchTheTable() (gas: 495517)\n[PASS] test_collectionNameAndSymbol() (gas: 25005)\n[PASS] test_composerStaysUnderTheSizeLimitWithHeadroom() (gas: 13473)\n[PASS] test_metadataCarriesTheFinalFamilyNames() (gas: 3753859)\n[PASS] test_nameTableIsTheFinalTable() (gas: 609580)\n[PASS] test_noWorkingNameSurvivesInTheNameTable() (gas: 1060323)\n[PASS] test_unknownIdHasNoName() (gas: 25179)\n[PASS] test_upgradeRefusesTopWeightsAsASharedFact() (gas: 1640620)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 310.91ms (14.05ms CPU time)\n\nRan 32 tests for test/Adversarial.t.sol:AdversarialTest\n[PASS] test_abandonedPoolRequestKeepsPoolUsedAndLateCallbackIsIgnored() (gas: 1762092)\n[PASS] test_abandonedSharedFactCanBeRequestedAgainAndTheLateAnswerIsIgnored() (gas: 3059160)\n[PASS] test_attestationForAnotherClaimantIsAMissForThisRequest() (gas: 3242463)\n[PASS] test_attestationForAnotherTraitWithTheSameWindowIsAMiss() (gas: 3245512)\n[PASS] test_callbackStarvedOfGasIsNotDeliveredAndStaysPending() (gas: 1692036)\n[PASS] test_cardShowsAtMostThirtyTwoCommunityIdsAndCountsThemAll() (gas: 86190556)\n[PASS] test_claimSponsoredWhilePendingOrVerifiedReverts() (gas: 2103612)\n[PASS] test_communityT3SpecIsASharedFactWithItsOwnHead() (gas: 2422263)\n[PASS] test_everyTemplateVerifiesUnderTheStipendWithACard() (gas: 11725680)\n[PASS] test_expiryAtTheExactSecondStillPassesAndOneLaterDoesNot() (gas: 3239701)\n[PASS] test_fuzz_anyFieldAlteredAfterSigningIsASignatureMiss(uint8,uint256) (runs: 512, μ: 1652016, ~: 1653585)\nLogs:\n  Bound result 0\n\n[PASS] test_fuzz_applySharedFactOnlyWithinTheHead(uint8,uint8) (runs: 256, μ: 1781977, ~: 1771387)\nLogs:\n  Bound result 7\n  Bound result 0\n\n[PASS] test_fuzz_boolAnswerMustBeExactlyZeroOrOne(uint256) (runs: 512, μ: 2075409, ~: 2074849)\n[PASS] test_fuzz_countAnswerAgainstTheThreshold(uint256,bytes1,bool) (runs: 512, μ: 1654460, ~: 1636820)\n[PASS] test_fuzz_expiryAndClockSkewBoundaries(uint64,uint64) (runs: 512, μ: 1649482, ~: 1640553)\n[PASS] test_fuzz_hasTraitAndTraitsOfNeverRevert(address,uint16,uint8,bool,uint8) (runs: 512, μ: 323782, ~: 333803)\n[PASS] test_fuzz_maximalSpecRegistersComposesAndFitsTheBody(uint8,uint256,uint256) (runs: 64, μ: 2582682, ~: 2729792)\nLogs:\n  Bound result 5\n  Bound result 22738\n\n[PASS] test_fuzz_panelAndQuorumBoundaries(uint16,uint16,uint16) (runs: 512, μ: 1653781, ~: 1639662)\n[PASS] test_fuzz_panelTraitNeedsElevenAndSeven(uint16,uint16,uint16) (runs: 512, μ: 2082305, ~: 2068638)\n[PASS] test_fuzz_specBodyIsDeterministicAndClaimantBound(address,address) (runs: 256, μ: 862359, ~: 862359)\n[PASS] test_fuzz_upgradeChargesExactlyKTimesPriceAndLeavesThePoolAlone(uint8,uint256) (runs: 256, μ: 5430661, ~: 4216091)\nLogs:\n  Bound result 7\n  Bound result 1301\n\n[PASS] test_fuzz_upgradeRejectsEveryIdThatIsNotAnOracleTrait(uint16) (runs: 256, μ: 209727, ~: 209294)\n[PASS] test_fuzz_windowMustEqualTheCanonicalOne(uint64,uint64) (runs: 512, μ: 1640085, ~: 1640084)\n[PASS] test_onFailureRecordsWhatItIsToldAndStoresNothing() (gas: 3062571)\n[PASS] test_questionHashIsBoundToTheClaimantAndTheTrait() (gas: 685415)\n[PASS] test_reentrantTokenCannotReenterAnyIMDMovingFunction() (gas: 7515361)\n[PASS] test_sharedFactWorstCaseEnvelopeUnderTheStipend() (gas: 3982203)\n[PASS] test_signatureShapesThatDoNotRecover() (gas: 9332591)\n[PASS] test_tokenURIDependsOnlyOnTheClaimantsFacts() (gas: 14702346)\n[PASS] test_traitClassForEveryCatalogIdAndRevertsForUnknown() (gas: 703103)\n[PASS] test_upgradeSponsoredDrawsAllNineOverNineDaysAndRefusesDuplicates() (gas: 12553282)\n[PASS] test_verifiedWindowIsTheCanonicalWindowForEveryOracleId() (gas: 16455284)\nSuite result: ok. 32 passed; 0 failed; 0 skipped; finished in 315.14ms (2.71s CPU time)\n\nRan 15 tests for test/Goldens.t.sol:GoldensTest\n[PASS] test_escapeJsonNeutralisesMarkup() (gas: 42645)\n[PASS] test_goldenSyntheticCollector() (gas: 20831301)\n[PASS] test_goldenSyntheticDirect() (gas: 5079552)\n[PASS] test_goldenSyntheticFullhouse() (gas: 21513004)\n[PASS] test_goldenSyntheticHoney() (gas: 23744690)\n[PASS] test_goldenSyntheticNewcomer() (gas: 3219081)\n[PASS] test_goldenSyntheticOracle() (gas: 8914734)\n[PASS] test_goldenSyntheticOutsider() (gas: 5211326)\n[PASS] test_goldenSyntheticWidthThroughTheRenderer() (gas: 24718733)\n[PASS] test_imageCommunityPathFollowsTheStepTable() (gas: 13547441)\n[PASS] test_imageIdsOutsideTheCatalogRenderWithoutReverting() (gas: 763825)\n[PASS] test_imageIsPureAndDeterministic() (gas: 16076074)\n[PASS] test_imageRareDotOnlyAtATopTierRareId() (gas: 17170815)\n[PASS] test_imageRingsByCommunityCount() (gas: 5559348)\n[PASS] test_templateArtifactsMatchTheCompiledConstants() (gas: 297885)\nSuite result: ok. 15 passed; 0 failed; 0 skipped; finished in 377.72ms (308.57ms CPU time)\n\nRan 19 tests for test/BurnRule.t.sol:BurnRuleTest\n[PASS] testFuzz_belowThresholdRefundsWithoutFee(bool,uint96,uint96) (runs: 256, μ: 1560538, ~: 1574731)\nLogs:\n  Bound result 7640838004\n  Bound result 0\n\n[PASS] testFuzz_dueForwardsWholeValueAndExecutorForceRefunds(bool,uint96,uint96) (runs: 256, μ: 1859287, ~: 1874014)\nLogs:\n  Bound result 79228162445264337595313186156\n  Bound result 9184\n\n[PASS] testFuzz_dueWithoutEnoughFeeRevertsAtomically(bool,uint96,uint96) (runs: 256, μ: 3239297, ~: 3267506)\nLogs:\n  Bound result 79228162445264337601184788340\n  Bound result 0\n\n[PASS] testFuzz_failedPreviewOrBridgeSkipsAndRefunds(bool,uint8,uint96) (runs: 256, μ: 1736874, ~: 1603198)\nLogs:\n  Bound result 4\n  Bound result 0\n\n[PASS] testFuzz_nonpayableContractWorksWithNoValueExactFeeAndSurplus(bool,uint8) (runs: 256, μ: 1941572, ~: 1973459)\nLogs:\n  Bound result 2\n\n[PASS] testFuzz_quoteAboveCapSkipsWithCodeThree(bool,uint96,uint96) (runs: 256, μ: 1564418, ~: 1578477)\nLogs:\n  Bound result 79228162514259337595313186155\n  Bound result 9184\n\n[PASS] testFuzz_unsetExecutorDisablesBurnAndRefunds(bool,uint96) (runs: 256, μ: 1581629, ~: 1566440)\nLogs:\n  Bound result 285510556414776\n\n[PASS] test_constantsAndStorage() (gas: 29128)\n[PASS] test_exactFeeAndCapAreInclusive() (gas: 1705666)\n[PASS] test_executorReentryIsGuarded() (gas: 1767599)\n[PASS] test_existingChecksAndIntakeFailurePrecedeBurnFeeCheck() (gas: 578832)\n[PASS] test_gasArgumentsIncludeOnlyTheValueStipend() (gas: 1691387)\n[PASS] test_noFeeAtExactThresholdReverts() (gas: 1534343)\n[PASS] test_nonpayableContractAcceptsZeroRefundOnPreviewFailure() (gas: 1788417)\n[PASS] test_paidFunctionsRemainNonpayableAndNeverTriggerBurn() (gas: 2905300)\n[PASS] test_registryRefundReentryIsGuarded() (gas: 2171494)\n[PASS] test_rejectedNonzeroRegistryRefundRevertsAllEffects() (gas: 1946468)\n[PASS] test_zeroQuoteStillTriggersWhenDue() (gas: 1640834)\n[PASS] test_zeroValueHasNoStipend() (gas: 1561866)\nSuite result: ok. 19 passed; 0 failed; 0 skipped; finished in 377.83ms (1.70s CPU time)\n\nRan 10 tests for test/ReviewChanges.t.sol:ReviewChangesTest\n[PASS] test_fuzz_emptyFixedArgRequiresZeroValueForT1AndT2(uint256) (runs: 256, μ: 3038830, ~: 3038581)\nLogs:\n  Bound result 22516\n\n[PASS] test_fuzz_ordinalShowsLowestVerifiedId(uint8) (runs: 256, μ: 4715260, ~: 4854555)\nLogs:\n  Bound result 4\n\n[PASS] test_hugeAnswerClearsUintBoolAndSharedRequestsUnderStipend() (gas: 26374277)\n[PASS] test_hugeSignatureClearsPendingAndAllowsImmediateRetry() (gas: 6836376)\n[PASS] test_metadataReportsMinimaEvenWhenSignedPanelIsLarger() (gas: 6304975)\n[PASS] test_scalarAnswerLengthPrecedesChainSignerAndClaimedType() (gas: 17758399)\n[PASS] test_sharedAnswerUpperBoundPrecedesChainAndSigner() (gas: 4500780)\n[PASS] test_signatureLengthPrecedesAnswerLengthAndChain() (gas: 37648371)\n[PASS] test_unknownRequestStillPrecedesDynamicSizeChecks() (gas: 12869628)\n[PASS] test_validationPrecedenceAfterSizes() (gas: 18077721)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 377.79ms (702.66ms CPU time)\n\nRan 25 tests for test/Registry.t.sol:RegistryTest\n[PASS] test_abandonOnlyAfterFourteenDaysAndStaleCallbackLeavesSuccessor() (gas: 3290693)\n[PASS] test_anyoneReadsAnyWalletAndNothingUsesTxOrigin() (gas: 1943609)\n[PASS] test_attestationForAnotherConsumerOrChainIsNeverAccepted() (gas: 3212010)\n[PASS] test_callbacksRejectEveryoneButTheIntake() (gas: 1629408)\n[PASS] test_claimSponsoredRules() (gas: 5261343)\n[PASS] test_directTraitsAreLiveAndNeedNoCard() (gas: 606480)\n[PASS] test_fuzz_tiersAreMonotone(uint8,bool,uint32,uint128,uint32,uint8) (runs: 256, μ: 707266, ~: 695885)\n[PASS] test_malformedEnvelopeIsNotDeliveredAndStaysPending() (gas: 1560266)\n[PASS] test_mintOncePerWalletAndTransfersKeepClaimant() (gas: 956472)\n[PASS] test_mintWithoutFeeReverts() (gas: 47096)\n[PASS] test_missReasons() (gas: 29423817)\n[PASS] test_noReceiveOrFallback() (gas: 57774)\n[PASS] test_nonMemberIsNeverAnEarlyBird() (gas: 232815)\n[PASS] test_onFailureClearsAndAllowsRetry() (gas: 3004496)\n[PASS] test_onResultGasWorstCase() (gas: 2333538)\nLogs:\n  onResult worst-case gas: 164954\n\n[PASS] test_poolIsTheBalanceAndOnlyLeavesThroughSponsoredRequests() (gas: 5655208)\n[PASS] test_reentrantTokenCannotReenterMint() (gas: 2358744)\n[PASS] test_registerSpecAssignsSequentialIdsAndIsImmutable() (gas: 1230411)\n[PASS] test_sharedFactBadEnvelopeIsAMissAndCanBeRequestedAgain() (gas: 6920875)\n[PASS] test_sharedFactFlow() (gas: 2477157)\n[PASS] test_specGuards() (gas: 1337022)\n[PASS] test_supportsERC4906AndERC721() (gas: 25952)\n[PASS] test_upgradeGuards() (gas: 6031562)\n[PASS] test_upgradeHappyPathMarksTraitAndRefreshesCard() (gas: 2535776)\n[PASS] test_upgradeWithoutCardAttachesToClaimant() (gas: 1894335)\nSuite result: ok. 25 passed; 0 failed; 0 skipped; finished in 377.67ms (132.14ms CPU time)\n\nRan 1 test for test/Invariants.t.sol:InvariantsTest\n[PASS]\nInvariantsTest invariants:\n[PASS] invariant_oneCardPerClaimantWithImmutableClaimant\n[PASS] invariant_poolOnlyLeavesThroughSponsoredRequests\n InvariantsTest invariants (runs: 256, calls: 16384, reverts: 0)\n\n╭----------+-------------------+-------+---------+----------╮\n| Contract | Selector          | Calls | Reverts | Discards |\n+===========================================================+\n| Handler  | claimSponsored    | 3265  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | mintCard          | 3330  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | sponsor           | 3339  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | transfer          | 3201  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | upgradeAndDeliver | 3249  | 0       | 0        |\n╰----------+-------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 1245464009242128607\n  Bound result 3392171414\n  Bound result 100000000000000117\n  Bound result 10074\n  Bound result 215657637510118453\n  Bound result 524187422652989221\n  Bound result 1320381278693290321\n  Bound result 1586806508031655738\n  Bound result 23\n  Bound result 100000000000000001\n  Bound result 25723370059771237\n  Bound result 965958973966888494\n  Bound result 3189\n  Bound result 2978\n  Bound result 1661044112285544630\n  Bound result 25723370059771237\n  Bound result 19696\n  Bound result 1678047275088780755\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 5.59s (5.59s CPU time)\n\nRan 1 test for test/BurnInvariant.t.sol:BurnInvariantTest\n[PASS] invariant_registryRetainsNoClaimETHAndPoolOnlyFundsOracleRequests() (runs: 256, calls: 16384, reverts: 0)\n\n╭-------------+----------+-------+---------+----------╮\n| Contract    | Selector | Calls | Reverts | Discards |\n+=====================================================+\n| BurnHandler | claim    | 16384 | 0       | 0        |\n╰-------------+----------+-------+---------+----------╯\n\nLogs:\n  Bound result 9184\n  Bound result 3830\n  Bound result 4333632135824622\n  Bound result 18087\n  Bound result 9361830636778941\n  Bound result 2546972425363853\n  Bound result 74264337592978034889\n  Bound result 4525\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 13352764\n  Bound result 2954\n  Bound result 28788093366116295559\n  Bound result 4329670727698909\n  Bound result 235\n  Bound result 74264337592978034889\n  Bound result 12718\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 771019521915472318\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 122609387100943981161\n  Bound result 79734594412376\n  Bound result 12854586475430201\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4443\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 1222\n  Bound result 22238\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 17802818706453832898\n  Bound result 7460743740574033\n  Bound result 16990996474253376\n  Bound result 74264337592978034889\n  Bound result 9556\n  Bound result 4333632135824622\n  Bound result 71202813315479296207\n  Bound result 2613887\n  Bound result 1070270366970226\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 23917\n  Bound result 3267\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 2611\n  Bound result 2989\n  Bound result 77210\n  Bound result 3335625467\n  Bound result 0\n  Bound result 5395913583836774\n  Bound result 19614\n  Bound result 299316095187\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 11937431820990960457\n  Bound result 4329670727698907\n  Bound result 995\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 5717\n  Bound result 6182\n  Bound result 5052607601762670\n  Bound result 19262259121888276\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 494\n  Bound result 1448\n  Bound result 4092969590\n  Bound result 4588715398364389\n  Bound result 12051654715830086\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 17187164159967916130\n  Bound result 23903776941\n  Bound result 14975149265295504\n  Bound result 962\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 1086394137\n  Bound result 15082\n  Bound result 28275\n  Bound result 98338121332633279291\n  Bound result 24\n  Bound result 4395945203998\n  Bound result 22113\n  Bound result 4329670727698909\n  Bound result 7768\n  Bound result 2179069540\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 11190154641633378\n  Bound result 24173\n  Bound result 7754539311760864\n  Bound result 19838\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 1244295851617813\n  Bound result 4551\n  Bound result 4329670727698909\n  Bound result 11927651296688783\n  Bound result 3852\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 14667301500156989998\n  Bound result 116553\n  Bound result 13092803666759633\n  Bound result 8111927799615192802\n  Bound result 16523\n  Bound result 18660\n  Bound result 1390\n  Bound result 4329670727698909\n  Bound result 7097\n  Bound result 4054421664747\n  Bound result 193699560887\n  Bound result 27279407710\n  Bound result 9851\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 14634\n  Bound result 4242\n  Bound result 1048614\n  Bound result 8595\n  Bound result 6541\n  Bound result 886\n  Bound result 4329670727698909\n  Bound result 8436\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 7858\n  Bound result 16823718953295025225\n  Bound result 338\n  Bound result 4333632135824622\n  Bound result 640346783884\n  Bound result 162247\n  Bound result 746\n  Bound result 74264337592978034889\n  Bound result 948\n  Bound result 7585\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 11117\n  Bound result 4132\n  Bound result 846248794\n  Bound result 4960\n  Bound result 97458384799016550590\n  Bound result 11966\n  Bound result 23536\n  Bound result 722\n  Bound result 4329670727698909\n  Bound result 14302078335602742\n  Bound result 19932230066220912008\n  Bound result 4329670727698909\n  Bound result 4202047189\n  Bound result 1408\n  Bound result 4409520273140620\n  Bound result 4333632135824622\n  Bound result 9775\n  Bound result 1265324657738694\n  Bound result 22841\n  Bound result 382\n  Bound result 10626\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 7353\n  Bound result 4333632135824622\n  Bound result 50664283233203710411\n  Bound result 8911795617600742\n  Bound result 4333632135824622\n  Bound result 425\n  Bound result 4329670727698909\n  Bound result 5286\n  Bound result 508782016282\n  Bound result 2405541588391\n  Bound result 9334709863697109\n  Bound result 23546\n  Bound result 123623979971684\n  Bound result 4333632135824622\n  Bound result 831\n  Bound result 4329670727698909\n  Bound result 718\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 12.65s (12.65s CPU time)\n\nRan 3 tests for test/InvariantsExtended.t.sol:InvariantsExtendedTest\n[PASS]\nInvariantsExtendedTest invariants:\n[PASS] invariant_markedExactlyWhenAPassingAttestationWasDelivered\n[PASS] invariant_oneCardPerClaimant\n[PASS] invariant_poolDailyAndLifetimeLimits\n[PASS] invariant_poolIsFeesPlusDonationsMinusSponsoredRequests\n[PASS] invariant_sharedFactsAreHashesStoredOnlyOnDelivery\n[PASS] invariant_specsAreImmutable\n InvariantsExtendedTest invariants (runs: 96, calls: 4608, reverts: 0)\n\n╭-------------+-------------------+-------+---------+----------╮\n| Contract    | Selector          | Calls | Reverts | Discards |\n+==============================================================+\n| FullHandler | abandonLate       | 275   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | advanceTime       | 268   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | applyShared       | 244   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | claimSponsored    | 284   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverFalse      | 275   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverTampered   | 271   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverTrue       | 306   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | donate            | 251   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | failRequest       | 278   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | mintCard          | 267   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | registerSpec      | 253   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | replayConsumed    | 268   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | requestSharedFact | 295   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | sponsor           | 251   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | transfer          | 257   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | upgradePaid       | 294   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | upgradeSponsored  | 271   | 0       | 0        |\n╰-------------+-------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 301\n  Bound result 732\n  Bound result 5\n  Bound result 2382504141\n  Bound result 293804107232308342\n  Bound result 15\n  Bound result 1\n  Bound result 900000002845006741\n  Bound result 15\n  Bound result 0\n  Bound result 3\n  Bound result 23738\n  Bound result 1\n  Bound result 158\n\n[PASS] test_handlerReplayOfAConsumedIdChangesNothing() (gas: 1919752)\n[PASS] test_handlerSponsoredSelectionAcceptsMaxSeed() (gas: 1763178)\nLogs:\n  Bound result 3000000000000000000\n\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 14.98s (14.98s CPU time)\n\nRan 16 test suites in 14.98s (36.08s CPU time): 155 tests passed, 0 failed, 15 skipped (170 total tests)\n","passed":true},{"durationMs":303,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Registry.abandon(bytes32)\",\"Registry.applySharedFact(uint16,address[])\",\"Registry.approve(address,uint256)\",\"Registry.claimSponsored(uint16)\",\"Registry.mintCard()\",\"Registry.onFailure(bytes32,uint8,bytes32,uint16,uint16,bytes)\",\"Registry.onResult(bytes32,(bytes32,uint256,bytes32,uint8,bytes,uint256,uint64,uint64,bytes32,bytes32,uint16,uint16,uint16,uint64,uint64),bytes)\",\"Registry.registerSpec((uint8,address,string,string,string,uint256,string,uint8,uint256,uint64,uint64,string))\",\"Registry.requestSharedFact(uint16,uint256)\",\"Registry.safeTransferFrom(address,address,uint256)\",\"Registry.safeTransferFrom(address,address,uint256,bytes)\",\"Registry.setApprovalForAll(address,bool)\",\"Registry.sponsor(uint256)\",\"Registry.transferFrom(address,address,uint256)\",\"Registry.upgrade(uint16[],uint256)\",\"Registry.upgradeSponsored(uint256,uint16[])\"],\"files\":{\".gitignore\":8,\".gitmodules\":6,\"CATALOG.md\":267,\"CONCEPT.md\":243,\"DISCLOSURE.md\":41,\"INTEGRATION.md\":396,\"LICENSE\":21,\"README.md\":372,\"TEMPLATES.md\":154,\"foundry.toml\":44,\"reference/Intake.sol\":5175,\"reference/IntakeV2.sol\":5240,\"reference/PROVENANCE.md\":44,\"reference/abi/IMD.json\":1684,\"reference/abi/IdentityMD.json\":894,\"reference/abi/Intake.json\":955,\"reference/abi/IntakeV2.json\":1070,\"reference/abi/WhitelistCurator.json\":794,\"reference/anchors/headers.json\":61,\"reference/attestations/2026-10-10-link-pilot.json\":92,\"reference/attestations/2026-10-10-meatbag-consumer.json\":104,\"reference/attestations/2026-10-11-feed-consumer-v2.json\":105,\"reference/attestations/2026-10-11-nonce-false.json\":92,\"reference/attestations/2026-10-11-nonce-true.json\":92,\"reference/attestations/README.md\":29,\"reference/burn/BurnExecutorV2.sol.txt\":314,\"reference/burn/abi.json\":1001,\"reference/burn/provenance.json\":17,\"reference/intake/completions.json\":147,\"reference/list-record/src/ListRecord.sol\":169,\"reference/list-record/src/ListRecordRenderer.sol\":126,\"reference/list-record/src/interfaces/IListRecordRenderer.sol\":29,\"reference/list-record/src/lib/SSTORE2.sol\":39,\"reference/list-record/src/lib/Str.sol\":54,\"reference/list-record/test/Renderer.t.sol\":165,\"reference/list-record/test/RendererMechanism.t.sol\":203,\"reference/list-record/test/Template.t.sol\":293,\"reference/list-record/test/fixtures/golden_synthetic_held_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_held_uri.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_transferred_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_transferred_uri.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_width_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_width_uri.txt\":1,\"reference/plane/checks/1001-hour-savior.json\":81,\"reference/plane/checks/1102-ordinal-1000.json\":81,\"reference/plane/checks/1105-first-thousand.json\":81,\"reference/plane/checks/1201-top-32.json\":82,\"reference/plane/checks/1301-not-born-yesterday.json\":86,\"reference/plane/checks/701-still-here.json\":81,\"reference/plane/checks/801-last-stand.json\":81,\"reference/plane/checks/T2-log-sum-composed.json\":81,\"reference/plane/checks/T4-call-compare-reference.json\":81,\"reference/plane/checks/T5-community-composed.json\":86,\"reference/plane/questionHashes.json\":92,\"reference/plane/quotes/1001-hour-savior.json\":20,\"reference/plane/quotes/1102-ordinal-1000.json\":20,\"reference/plane/quotes/1105-first-thousand.json\":20,\"reference/plane/quotes/1201-top-32.json\":20,\"reference/plane/quotes/1301-not-born-yesterday.json\":20,\"reference/plane/quotes/701-still-here.json\":20,\"reference/plane/quotes/801-last-stand.json\":20,\"reference/plane/quotes/T2-log-sum-composed.json\":20,\"reference/plane/quotes/T4-call-compare-reference.json\":20,\"reference/plane/quotes/T5-community-composed.json\":20,\"remappings.txt\":2,\"script/Deploy.s.sol\":38,\"src/Composer.sol\":627,\"src/HiveData.sol\":75,\"src/Registry.sol\":742,\"src/Renderer.sol\":427,\"src/TemplateData.sol\":16,\"src/Types.sol\":41,\"src/interfaces/IBurnExecutor.sol\":12,\"src/interfaces/IIDMD.sol\":8,\"src/interfaces/IIntake.sol\":29,\"src/interfaces/IOracleConsumer.sol\":38,\"src/interfaces/IWhitelistCurator.sol\":53,\"template/blob.hex\":1,\"template/offsets.txt\":1,\"templates/fixtures/1001-hour-savior.json\":22,\"templates/fixtures/1102-ordinal-1000.json\":22,\"templates/fixtures/1105-first-thousand.json\":22,\"templates/fixtures/1201-top-32.json\":22,\"templates/fixtures/1301-not-born-yesterday.json\":24,\"templates/fixtures/701-still-here.json\":22,\"templates/fixtures/801-last-stand.json\":22,\"templates/fixtures/T2-log-sum-composed.json\":23,\"templates/fixtures/T4-call-compare-reference.json\":21,\"templates/fixtures/T5-community-composed.json\":24,\"test/.gitkeep\":0,\"test/Adversarial.t.sol\":815,\"test/Artifacts.t.sol\":172,\"test/Attestations.t.sol\":196,\"test/Base.t.sol\":158,\"test/BurnInvariant.t.sol\":120,\"test/BurnRule.t.sol\":293,\"test/Goldens.t.sol\":361,\"test/Invariants.t.sol\":124,\"test/InvariantsExtended.t.sol\":519,\"test/NOTES.md\":264,\"test/ReReview.t.sol\":262,\"test/Registry.t.sol\":772,\"test/RegistryRules.t.sol\":310,\"test/Rename.t.sol\":224,\"test/ReviewChanges.t.sol\":214,\"test/Templates.t.sol\":149,\"test/fixtures/golden_synthetic_collector_preimage.txt\":1,\"test/fixtures/golden_synthetic_collector_svg.txt\":1,\"test/fixtures/golden_synthetic_collector_uri.txt\":1,\"test/fixtures/golden_synthetic_direct_preimage.txt\":1,\"test/fixtures/golden_synthetic_direct_svg.txt\":1,\"test/fixtures/golden_synthetic_direct_uri.txt\":1,\"test/fixtures/golden_synthetic_fullhouse_preimage.txt\":1,\"test/fixtures/golden_synthetic_fullhouse_svg.txt\":1,\"test/fixtures/golden_synthetic_fullhouse_uri.txt\":1,\"test/fixtures/golden_synthetic_honey_preimage.txt\":1,\"test/fixtures/golden_synthetic_honey_svg.txt\":1,\"test/fixtures/golden_synthetic_honey_uri.txt\":1,\"test/fixtures/golden_synthetic_newcomer_preimage.txt\":1,\"test/fixtures/golden_synthetic_newcomer_svg.txt\":1,\"test/fixtures/golden_synthetic_newcomer_uri.txt\":1,\"test/fixtures/golden_synthetic_oracle_preimage.txt\":1,\"test/fixtures/golden_synthetic_oracle_svg.txt\":1,\"test/fixtures/golden_synthetic_oracle_uri.txt\":1,\"test/fixtures/golden_synthetic_outsider_preimage.txt\":1,\"test/fixtures/golden_synthetic_outsider_svg.txt\":1,\"test/fixtures/golden_synthetic_outsider_uri.txt\":1,\"test/fixtures/golden_synthetic_width_preimage.txt\":1,\"test/fixtures/golden_synthetic_width_svg.txt\":1,\"test/fixtures/golden_synthetic_width_uri.txt\":1,\"test/fork/BurnRule.fork.t.sol\":162,\"test/fork/Mainnet.fork.t.sol\":338,\"test/mocks/MockBurnExecutor.sol\":134,\"test/mocks/Mocks.sol\":231,\"tools/gen_template.py\":898,\"tools/test_gen_template.py\":334},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":5238,"exitCode":0,"name":"slither","output":"[medium/high] incorrect-equality at src/Registry.sol:403: Registry.abandon(bytes32) (src/Registry.sol#403-409) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:490: Registry.onFailure(bytes32,uint8,bytes32,uint16,uint16,bytes) (src/Registry.sol#490-502) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:505: Registry._rule(uint16) (src/Registry.sol#505-519) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:465: Registry.onResult(bytes32,OracleAttestation,bytes) (src/Registry.sol#465-487) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:505: Registry._rule(uint16) (src/Registry.sol#505-519) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:505: Registry._rule(uint16) (src/Registry.sol#505-519) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:699: Registry._fromPool(uint16) (src/Registry.sol#699-712) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:505: Registry._rule(uint16) (src/Registry.sol#505-519) uses a dangerous strict equality:\n[medium/medium] reentrancy-no-eth at src/Registry.sol:427: Reentrancy in Registry._request(address,uint16,uint256) (src/Registry.sol#427-449):\n[medium/medium] uninitialized-local at src/Composer.sol:543: Composer.encodeBody(Composer.Question,address).defs (src/Composer.sol#543) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Registry.sol:252: Registry.cardOf(uint256).k (src/Registry.sol#252) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Renderer.sol:407: Renderer.escapeJson(bytes).o (src/Renderer.sol#407) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Registry.sol:640: Registry.applySharedFact(uint16,address[]).found (src/Registry.sol#640) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Composer.sol:613: Composer.hexMin(uint256).n (src/Composer.sol#613) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Composer.sol:187: Composer.traitsOf(address,address).n (src/Composer.sol#187) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Renderer.sol:318: Renderer._communityAttributes(Card).name (src/Renderer.sol#318) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Registry.sol:247: Registry.cardOf(uint256).n (src/Registry.sol#247) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Composer.sol:586: Composer.canonical(Composer.Question).defs (src/Composer.sol#586) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Renderer.sol:399: Renderer.escapeJson(bytes).extra (src/Renderer.sol#399) is a local variable never initialized\n[medium/medium] unused-return at src/Registry.sol:716: Registry._burnOrRefund() (src/Registry.sol#716-741) ignores return value by (amount,fee) = burnExecutor.previewBridge{gas: 200_000}() (src/Registry.sol#718-735)\n[medium/medium] unused-return at src/Registry.sol:694: Registry._requireMember() (src/Registry.sol#694-697) ignores return value by (None,joined) = curator.firstHourOf(msg.sender) (src/Registry.sol#695)\n[medium/medium] unused-return at src/Registry.sol:522: Registry._check(Registry.Pending,OracleAttestation,bytes,uint8,uint64,uint64) (src/Registry.sol#522-550) ignores return value by (signer,err,None) = ECDSA.tryRecover(attestationDigest(a),v,r,s) (src/Registry.sol#541)\n[low/medium] calls-loop at src/Composer.sol:158: Composer.traitsOf(address,address) (src/Composer.sol#158-195) has external calls inside a loop: ICatalogRegistry(registry).hasTrait(wallet,all[i]) (src/Composer.sol#189)\n[low/medium] calls-loop at src/Registry.sol:354: Registry.specOf(uint16) (src/Registry.sol#354-362) has external calls inside a loop: composer.catalogSpec(traitId,address(curator)) (src/Registry.sol#361)\n[low/medium] calls-loop at src/Registry.sol:354: Registry.specOf(uint16) (src/Registry.sol#354-362) has external calls inside a loop: composer.catalogSpec(traitId,address(curator)) (src/Registry.sol#361)\n[low/medium] calls-loop at src/Registry.sol:354: Registry.specOf(uint16) (src/Registry.sol#354-362) has external calls inside a loop: composer.catalogSpec(traitId,address(curator)) (src/Registry.sol#361)\n[low/medium] calls-loop at src/Registry.sol:427: Registry._request(address,uint16,uint256) (src/Registry.sol#427-449) has external calls inside a loop: requestId = intake.requestWithFailure(ACTION,body,IIntake.Callback(address(this),this.onResult.selector),this.onFailure.selector,address(imd),price) (src/Registry.sol#437-444)\n[low/medium] calls-loop at src/Registry.sol:365: Registry.composeBody(uint16,address) (src/Registry.sol#365-372) has external calls inside a loop: composer.compose(s,claimant,address(this),traitId == 1301,address(curator)) (src/Registry.sol#371)\n[low/medium] reentrancy-benign at src/Registry.sol:427: Reentrancy in Registry._request(address,uint16,uint256) (src/Registry.sol#427-449):\n[low/medium] timestamp at src/Registry.sol:577: Registry._mark(address,uint16,bytes32,bytes32) (src/Registry.sol#577-583) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:465: Registry.onResult(bytes32,OracleAttestation,bytes) (src/Registry.sol#465-487) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:452: Registry._clear(bytes32,Registry.Pending) (src/Registry.sol#452-459) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:505: Registry._rule(uint16) (src/Registry.sol#505-519) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:522: Registry._check(Registry.Pending,OracleAttestation,bytes,uint8,uint64,uint64) (src/Registry.sol#522-550) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:699: Registry._fromPool(uint16) (src/Registry.sol#699-712) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:490: Registry.onFailure(bytes32,uint8,bytes32,uint16,uint16,bytes) (src/Registry.sol#490-502) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:403: Registry.abandon(bytes32) (src/Registry.sol#403-409) uses timestamp for comparisons","passed":true},{"durationMs":1007,"exitCode":0,"name":"aderyn","output":"[high] abi-encode-packed-hash-collision at src/Renderer.sol:62: `abi.encodePacked()` Hash Collision\n[high] reentrancy-state-change at src/Registry.sol:192: Reentrancy: State change after external call (4 places)\n[low] costly-loop at src/Registry.sol:387: Costly operations inside loop\n[low] internal-function-used-once at src/Composer.sol:335: Internal Function Used Only Once (4 places)\n[low] large-numeric-literal at src/Composer.sol:99: Large Numeric Literal (3 places)\n[low] literal-instead-of-constant at src/Composer.sol:76: Literal Instead of Constant (248 places)\n[low] require-revert-in-loop at src/Composer.sol:244: Loop Contains `require`/`revert` (7 places)\n[low] state-no-address-check at src/Registry.sol:200: Address State Variable Set Without Checks\n[low] state-variable-could-be-immutable at src/Registry.sol:90: State Variable Could Be Immutable (9 places)\n[low] unchecked-return at src/Registry.sol:398: Unchecked Return (2 places)\n[low] uninitialized-local-variable at src/Composer.sol:613: Uninitialized Local Variable (5 places)\n[low] unsafe-oz-erc721-mint at src/Registry.sol:215: Unsafe `ERC721::_mint()`\n[low] unused-public-function at src/Composer.sol:307: Public Function Not Used Internally (4 places)\n[low] unused-state-variable at src/Registry.sol:64: Unused State Variable","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"b3f9a3e74cf7e34d106613ce0eae8d819931aaeda8ed3465e28fcb5d23ba98f5","verifiedTreeHash":"39777f4dbda419ebecb1e64302c17df75f95871d","verifierVersion":"0.1.0+63e0a393"},{"checks":[{"durationMs":15947,"exitCode":0,"name":"build","output":"Compiling 81 files with Solc 0.8.24\nSolc 0.8.24 finished in 15.35s\nCompiler run successful with warnings:\nWarning (5159): \"selfdestruct\" has been deprecated. Note that, starting from the Cancun hard fork, the underlying opcode no longer deletes the code and data associated with an account and only transfers its Ether to the beneficiary, unless executed in the same transaction in which the contract was created (see EIP-6780). Any use in newly deployed contracts is strongly discouraged even if the new behavior is taken into account. Future changes to the EVM might further reduce the functionality of the opcode.\n  --> test/mocks/MockBurnExecutor.sol:10:9:\n   |\n10 |         selfdestruct(payable(to));\n   |         ^^^^^^^^^^^^\n\nWarning (2018): Function state mutability can be restricted to pure\n  --> test/Goldens.t.sol:67:5:\n   |\n67 |     function _widthCard() internal view returns (Card memory c) {\n   |     ^ (Relevant source part starts here and spans across multiple lines).\n\nWarning (2018): Function state mutability can be restricted to pure\n   --> test/Goldens.t.sol:345:5:\n    |\n345 |     function _card(\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","passed":true},{"durationMs":14790,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 11 tests for test/fork/Mainnet.fork.t.sol:MainnetForkTest\n[SKIP] test_fork_attestationSignedForAnotherConsumerMissesOnTheRealIntake() (gas: 0)\n[SKIP] test_fork_curatorIsSettledWithTheBriefsConstants() (gas: 0)\n[SKIP] test_fork_firstContributorIsAnHourZeroEarlyBird() (gas: 0)\n[SKIP] test_fork_intakeV2SellsTheActionAsTheBriefRecords() (gas: 0)\n[SKIP] test_fork_lastContributorIsNoEarlyBird() (gas: 0)\n[SKIP] test_fork_memberMintsAndRendersAgainstTheRealCurator() (gas: 0)\n[SKIP] test_fork_nonMemberReadsZeroFalseAndHasNoCuratorTrait() (gas: 0)\n[SKIP] test_fork_operatorTraitReadsTheRealCollectionAndGuardsZero() (gas: 0)\n[SKIP] test_fork_pinnedBlockIsTheOneRecorded() (gas: 0)\n[SKIP] test_fork_thousandthContributorJoinedInsideTheFirstThousandWindow() (gas: 0)\n[SKIP] test_fork_upgradeThroughTheRealIntakeThenCompleteFromTheWriter() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 11 skipped; finished in 513.90µs (578.42µs CPU time)\n\nRan 4 tests for test/fork/BurnRule.fork.t.sol:BurnRuleForkTest\n[SKIP] test_fork_cappedPreviewReturnsZeroAndFreeClaimRefunds() (gas: 0)\n[SKIP] test_fork_nonpayableClaimantWithNoETHCanClaimWhenPreviewReturnsZero() (gas: 0)\n[SKIP] test_fork_realExecutorAndOFTForceRefundSurplusToNonpayableRecipient() (gas: 0)\n[SKIP] test_fork_realExecutorExactFeeForNonpayableRecipient() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 4 skipped; finished in 607.18µs (257.23µs CPU time)\n\nRan 8 tests for test/Rename.t.sol:RenameTest\n[PASS] test_catalogSpecNamesMatchTheTable() (gas: 495517)\n[PASS] test_collectionNameAndSymbol() (gas: 25005)\n[PASS] test_composerStaysUnderTheSizeLimitWithHeadroom() (gas: 13473)\n[PASS] test_metadataCarriesTheFinalFamilyNames() (gas: 3753859)\n[PASS] test_nameTableIsTheFinalTable() (gas: 609580)\n[PASS] test_noWorkingNameSurvivesInTheNameTable() (gas: 1060323)\n[PASS] test_unknownIdHasNoName() (gas: 25179)\n[PASS] test_upgradeRefusesTopWeightsAsASharedFact() (gas: 1640620)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 9.80ms (13.18ms CPU time)\n\nRan 6 tests for test/Templates.t.sol:TemplatesTest\n[PASS] test_allTenBodiesAreByteExact() (gas: 1449627)\n[PASS] test_allTenQuestionHashesEqualThePlanes() (gas: 2177871)\n[PASS] test_bodyIsDeterministicInClaimantAndDiffersAcrossClaimants() (gas: 461117)\n[PASS] test_directAndUnknownIdsHaveNoBody() (gas: 60735)\n[PASS] test_hexMinAndCatalogWindows() (gas: 146951)\n[PASS] test_traitNamesAndClasses() (gas: 112489)\nSuite result: ok. 6 passed; 0 failed; 0 skipped; finished in 10.10ms (8.06ms CPU time)\n\nRan 10 tests for test/ReReview.t.sol:ReReviewTest\n[PASS] test_coldGas_firstCommunityVerificationWithACard() (gas: 2414829)\nLogs:\n  cold onResult gas, first community verification with a card: 133356\n\n[PASS] test_coldGas_sharedFact64Catalog() (gas: 1739333)\nLogs:\n  cold onResult gas, 64-address shared fact (catalog 1201): 164087\n\n[PASS] test_coldGas_sharedFact64Community() (gas: 2108231)\nLogs:\n  cold onResult gas, 64-address shared fact (community T3): 170445\n\n[PASS] test_communityAttributesAppearOnlyForVerifiedSpecs() (gas: 4750926)\n[PASS] test_constructorReadsIsSettledWithoutWriting() (gas: 137310)\n[PASS] test_hugeSignatureOnCommunitySharedFactAndCardRequestClearsUnderStipend() (gas: 12241601)\n[PASS] test_lowerOrdinalAcquiredLaterReplacesTheHigherOne() (gas: 8477178)\n[PASS] test_sameSignedEvidenceSatisfiesAnotherRequestWithTheSameQuestion() (gas: 3260591)\n[PASS] test_specIdsEndAt65534() (gas: 909553)\n[PASS] test_unusedFixedValIsRefusedAndAnEmptyFilterIsNotSerialised() (gas: 1332960)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 28.25ms (26.35ms CPU time)\n\nRan 25 tests for test/Registry.t.sol:RegistryTest\n[PASS] test_abandonOnlyAfterFourteenDaysAndStaleCallbackLeavesSuccessor() (gas: 3290693)\n[PASS] test_anyoneReadsAnyWalletAndNothingUsesTxOrigin() (gas: 1943609)\n[PASS] test_attestationForAnotherConsumerOrChainIsNeverAccepted() (gas: 3212010)\n[PASS] test_callbacksRejectEveryoneButTheIntake() (gas: 1629408)\n[PASS] test_claimSponsoredRules() (gas: 5261343)\n[PASS] test_directTraitsAreLiveAndNeedNoCard() (gas: 606480)\n[PASS] test_fuzz_tiersAreMonotone(uint8,bool,uint32,uint128,uint32,uint8) (runs: 256, μ: 707478, ~: 695891)\n[PASS] test_malformedEnvelopeIsNotDeliveredAndStaysPending() (gas: 1560266)\n[PASS] test_mintOncePerWalletAndTransfersKeepClaimant() (gas: 956472)\n[PASS] test_mintWithoutFeeReverts() (gas: 47096)\n[PASS] test_missReasons() (gas: 29423817)\n[PASS] test_noReceiveOrFallback() (gas: 57774)\n[PASS] test_nonMemberIsNeverAnEarlyBird() (gas: 232815)\n[PASS] test_onFailureClearsAndAllowsRetry() (gas: 3004496)\n[PASS] test_onResultGasWorstCase() (gas: 2333538)\nLogs:\n  onResult worst-case gas: 164954\n\n[PASS] test_poolIsTheBalanceAndOnlyLeavesThroughSponsoredRequests() (gas: 5655208)\n[PASS] test_reentrantTokenCannotReenterMint() (gas: 2358744)\n[PASS] test_registerSpecAssignsSequentialIdsAndIsImmutable() (gas: 1230411)\n[PASS] test_sharedFactBadEnvelopeIsAMissAndCanBeRequestedAgain() (gas: 6920875)\n[PASS] test_sharedFactFlow() (gas: 2477157)\n[PASS] test_specGuards() (gas: 1337022)\n[PASS] test_supportsERC4906AndERC721() (gas: 25952)\n[PASS] test_upgradeGuards() (gas: 6031562)\n[PASS] test_upgradeHappyPathMarksTraitAndRefreshesCard() (gas: 2535776)\n[PASS] test_upgradeWithoutCardAttachesToClaimant() (gas: 1894335)\nSuite result: ok. 25 passed; 0 failed; 0 skipped; finished in 311.00ms (345.84ms CPU time)\n\nRan 19 tests for test/BurnRule.t.sol:BurnRuleTest\n[PASS] testFuzz_belowThresholdRefundsWithoutFee(bool,uint96,uint96) (runs: 256, μ: 1560538, ~: 1574731)\nLogs:\n  Bound result 7640838004\n  Bound result 0\n\n[PASS] testFuzz_dueForwardsWholeValueAndExecutorForceRefunds(bool,uint96,uint96) (runs: 256, μ: 1859287, ~: 1874014)\nLogs:\n  Bound result 79228162445264337601184788340\n  Bound result 0\n\n[PASS] testFuzz_dueWithoutEnoughFeeRevertsAtomically(bool,uint96,uint96) (runs: 256, μ: 3239297, ~: 3267506)\nLogs:\n  Bound result 79228162445264337601184788340\n  Bound result 0\n\n[PASS] testFuzz_failedPreviewOrBridgeSkipsAndRefunds(bool,uint8,uint96) (runs: 256, μ: 1736874, ~: 1603198)\nLogs:\n  Bound result 4\n  Bound result 0\n\n[PASS] testFuzz_nonpayableContractWorksWithNoValueExactFeeAndSurplus(bool,uint8) (runs: 256, μ: 1941572, ~: 1973459)\nLogs:\n  Bound result 2\n\n[PASS] testFuzz_quoteAboveCapSkipsWithCodeThree(bool,uint96,uint96) (runs: 256, μ: 1564418, ~: 1578477)\nLogs:\n  Bound result 79228162514259337601184788339\n  Bound result 0\n\n[PASS] testFuzz_unsetExecutorDisablesBurnAndRefunds(bool,uint96) (runs: 256, μ: 1581629, ~: 1566440)\nLogs:\n  Bound result 285510556414776\n\n[PASS] test_constantsAndStorage() (gas: 29128)\n[PASS] test_exactFeeAndCapAreInclusive() (gas: 1705666)\n[PASS] test_executorReentryIsGuarded() (gas: 1767599)\n[PASS] test_existingChecksAndIntakeFailurePrecedeBurnFeeCheck() (gas: 578832)\n[PASS] test_gasArgumentsIncludeOnlyTheValueStipend() (gas: 1691387)\n[PASS] test_noFeeAtExactThresholdReverts() (gas: 1534343)\n[PASS] test_nonpayableContractAcceptsZeroRefundOnPreviewFailure() (gas: 1788417)\n[PASS] test_paidFunctionsRemainNonpayableAndNeverTriggerBurn() (gas: 2905300)\n[PASS] test_registryRefundReentryIsGuarded() (gas: 2171494)\n[PASS] test_rejectedNonzeroRegistryRefundRevertsAllEffects() (gas: 1946468)\n[PASS] test_zeroQuoteStillTriggersWhenDue() (gas: 1640834)\n[PASS] test_zeroValueHasNoStipend() (gas: 1561866)\nSuite result: ok. 19 passed; 0 failed; 0 skipped; finished in 312.42ms (1.23s CPU time)\n\nRan 10 tests for test/ReviewChanges.t.sol:ReviewChangesTest\n[PASS] test_fuzz_emptyFixedArgRequiresZeroValueForT1AndT2(uint256) (runs: 256, μ: 3038827, ~: 3038601)\nLogs:\n  Bound result 22516\n\n[PASS] test_fuzz_ordinalShowsLowestVerifiedId(uint8) (runs: 256, μ: 4715260, ~: 4854555)\nLogs:\n  Bound result 20\n\n[PASS] test_hugeAnswerClearsUintBoolAndSharedRequestsUnderStipend() (gas: 26374277)\n[PASS] test_hugeSignatureClearsPendingAndAllowsImmediateRetry() (gas: 6836376)\n[PASS] test_metadataReportsMinimaEvenWhenSignedPanelIsLarger() (gas: 6304975)\n[PASS] test_scalarAnswerLengthPrecedesChainSignerAndClaimedType() (gas: 17758399)\n[PASS] test_sharedAnswerUpperBoundPrecedesChainAndSigner() (gas: 4500780)\n[PASS] test_signatureLengthPrecedesAnswerLengthAndChain() (gas: 37648371)\n[PASS] test_unknownRequestStillPrecedesDynamicSizeChecks() (gas: 12869628)\n[PASS] test_validationPrecedenceAfterSizes() (gas: 18077721)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 323.31ms (668.90ms CPU time)\n\nRan 15 tests for test/RegistryRules.t.sol:RegistryRulesTest\n[PASS] test_constructorPriceCheckIsPassiveAndAcceptsAnyNonzeroPrice() (gas: 147524)\n[PASS] test_constructorRejectsUnavailableIntake() (gas: 26511)\n[PASS] test_constructorRejectsWrongAsset() (gas: 548759)\n[PASS] test_constructorRejectsZeroIntakePrice() (gas: 42149)\n[PASS] test_fuzz_bothPoolPathsShareOneAllowancePerUtcDay(bool,bool,uint32) (runs: 256, μ: 3244854, ~: 3246808)\nLogs:\n  Bound result 13000\n\n[PASS] test_idmdCounterFollowsTransfersAndStopsAtNine() (gas: 15425880)\n[PASS] test_idmdHolderMustAlsoBeAListMember() (gas: 1763127)\n[PASS] test_memberClaimsOnDeploymentDayWithoutCardOrIdmd() (gas: 1674133)\n[PASS] test_noVerdictConsumesTheDayAndLifetimePair() (gas: 3267853)\n[PASS] test_paidUpgradeAndSharedFactDoNotUseOrObeyPoolDailyLimit() (gas: 8184370)\n[PASS] test_revertingIntakeDoesNotConsumePoolAllowances() (gas: 2026944)\n[PASS] test_specAndFirstClaimCostSixPointNineIMD() (gas: 1880063)\n[PASS] test_specRequiresFullFeeAndAllowance() (gas: 798750)\n[PASS] test_sponsoredUpgradeRequiresExactlyOneTrait() (gas: 1779524)\n[PASS] test_switchingIdmdDoesNotBypassDailyLimit() (gas: 3190403)\nSuite result: ok. 15 passed; 0 failed; 0 skipped; finished in 323.27ms (339.56ms CPU time)\n\nRan 7 tests for test/Artifacts.t.sol:ArtifactsTest\n[PASS] test_constructorRejectsUnsettledOrUnavailableCurator() (gas: 260841)\n[PASS] test_constructorRejectsZeroAddressesAndStoresTheRest() (gas: 5882)\n[PASS] test_deployScriptUsesTheFiveStaticAddresses() (gas: 30357649)\n[PASS] test_noForbiddenOpcodesInRuntime() (gas: 56081012)\n[PASS] test_noImmutableReferencesInAnyArtifact() (gas: 90081531)\n[PASS] test_sepoliaRehearsalPassesZeroBurnExecutor() (gas: 31644482)\n[PASS] test_twoDeploymentsHaveIdenticalRuntimeCode() (gas: 3365926)\nSuite result: ok. 7 passed; 0 failed; 0 skipped; finished in 323.49ms (231.63ms CPU time)\n\nRan 3 tests for test/Attestations.t.sol:AttestationsTest\n[PASS] test_allFiveRecoverTheAttesterUnderTheirOwnDomainOnly() (gas: 4844928)\n[PASS] test_loaderRejectsUnknownAnswerTypeNames() (gas: 4845)\n[PASS] test_protocolVectorDigestAndSelector() (gas: 1951001)\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 323.65ms (6.24ms CPU time)\n\nRan 19 tests for test/Goldens.t.sol:GoldensTest\n[PASS] test_escapeJsonNeutralisesMarkup() (gas: 42645)\n[PASS] test_goldenSyntheticCollector() (gas: 20831323)\n[PASS] test_goldenSyntheticDirect() (gas: 5079487)\n[PASS] test_goldenSyntheticFullhouse() (gas: 21514473)\n[PASS] test_goldenSyntheticHoney() (gas: 23746288)\n[PASS] test_goldenSyntheticNewcomer() (gas: 3219081)\n[PASS] test_goldenSyntheticOracle() (gas: 8914756)\n[PASS] test_goldenSyntheticOutsider() (gas: 5211326)\n[PASS] test_goldenSyntheticWidthThroughTheRenderer() (gas: 24718798)\n[PASS] test_imageCommunityPathFollowsTheStepTable() (gas: 13547491)\n[PASS] test_imageIdsOutsideTheCatalogRenderWithoutReverting() (gas: 763825)\n[PASS] test_imageIsPureAndDeterministic() (gas: 16076101)\n[PASS] test_imageOverflowPathAbsentAtOrBelow39AndNeverOverflows() (gas: 13459611)\n[PASS] test_imageRareDotOnlyAtATopTierRareId() (gas: 17170837)\n[PASS] test_imageRingsByCommunityCount() (gas: 5559349)\n[PASS] test_imageStepsUseExponentiationNotXor() (gas: 6674005)\n[PASS] test_reportRendererRuntimeSize() (gas: 129606)\nLogs:\n  Renderer runtime bytes: 21570\n\n[PASS] test_reportTokenURIGas() (gas: 29841499)\nLogs:\n  tokenURI gas synthetic_width: 10810085\n  tokenURI gas synthetic_fullhouse: 9147472\n  tokenURI gas synthetic_honey: 9589924\n\n[PASS] test_templateArtifactsMatchTheCompiledConstants() (gas: 297819)\nSuite result: ok. 19 passed; 0 failed; 0 skipped; finished in 323.64ms (582.14ms CPU time)\n\nRan 32 tests for test/Adversarial.t.sol:AdversarialTest\n[PASS] test_abandonedPoolRequestKeepsPoolUsedAndLateCallbackIsIgnored() (gas: 1762092)\n[PASS] test_abandonedSharedFactCanBeRequestedAgainAndTheLateAnswerIsIgnored() (gas: 3059160)\n[PASS] test_attestationForAnotherClaimantIsAMissForThisRequest() (gas: 3242463)\n[PASS] test_attestationForAnotherTraitWithTheSameWindowIsAMiss() (gas: 3245512)\n[PASS] test_callbackStarvedOfGasIsNotDeliveredAndStaysPending() (gas: 1692036)\n[PASS] test_cardShowsAtMostThirtyTwoCommunityIdsAndCountsThemAll() (gas: 86190556)\n[PASS] test_claimSponsoredWhilePendingOrVerifiedReverts() (gas: 2103612)\n[PASS] test_communityT3SpecIsASharedFactWithItsOwnHead() (gas: 2422263)\n[PASS] test_everyTemplateVerifiesUnderTheStipendWithACard() (gas: 11725680)\n[PASS] test_expiryAtTheExactSecondStillPassesAndOneLaterDoesNot() (gas: 3239701)\n[PASS] test_fuzz_anyFieldAlteredAfterSigningIsASignatureMiss(uint8,uint256) (runs: 512, μ: 1652016, ~: 1653585)\nLogs:\n  Bound result 7\n\n[PASS] test_fuzz_applySharedFactOnlyWithinTheHead(uint8,uint8) (runs: 256, μ: 1781977, ~: 1771387)\nLogs:\n  Bound result 1\n  Bound result 0\n\n[PASS] test_fuzz_boolAnswerMustBeExactlyZeroOrOne(uint256) (runs: 512, μ: 2075410, ~: 2074849)\n[PASS] test_fuzz_countAnswerAgainstTheThreshold(uint256,bytes1,bool) (runs: 512, μ: 1654458, ~: 1636820)\n[PASS] test_fuzz_expiryAndClockSkewBoundaries(uint64,uint64) (runs: 512, μ: 1649396, ~: 1640553)\n[PASS] test_fuzz_hasTraitAndTraitsOfNeverRevert(address,uint16,uint8,bool,uint8) (runs: 512, μ: 323782, ~: 333803)\n[PASS] test_fuzz_maximalSpecRegistersComposesAndFitsTheBody(uint8,uint256,uint256) (runs: 64, μ: 2584144, ~: 2729792)\nLogs:\n  Bound result 5\n  Bound result 22738\n\n[PASS] test_fuzz_panelAndQuorumBoundaries(uint16,uint16,uint16) (runs: 512, μ: 1653781, ~: 1639662)\n[PASS] test_fuzz_panelTraitNeedsElevenAndSeven(uint16,uint16,uint16) (runs: 512, μ: 2082305, ~: 2068638)\n[PASS] test_fuzz_specBodyIsDeterministicAndClaimantBound(address,address) (runs: 256, μ: 862359, ~: 862359)\n[PASS] test_fuzz_upgradeChargesExactlyKTimesPriceAndLeavesThePoolAlone(uint8,uint256) (runs: 256, μ: 5430669, ~: 4216091)\nLogs:\n  Bound result 1\n  Bound result 85162141015295317186\n\n[PASS] test_fuzz_upgradeRejectsEveryIdThatIsNotAnOracleTrait(uint16) (runs: 256, μ: 209727, ~: 209294)\n[PASS] test_fuzz_windowMustEqualTheCanonicalOne(uint64,uint64) (runs: 512, μ: 1640085, ~: 1640084)\n[PASS] test_onFailureRecordsWhatItIsToldAndStoresNothing() (gas: 3062571)\n[PASS] test_questionHashIsBoundToTheClaimantAndTheTrait() (gas: 685415)\n[PASS] test_reentrantTokenCannotReenterAnyIMDMovingFunction() (gas: 7515361)\n[PASS] test_sharedFactWorstCaseEnvelopeUnderTheStipend() (gas: 3982203)\n[PASS] test_signatureShapesThatDoNotRecover() (gas: 9332591)\n[PASS] test_tokenURIDependsOnlyOnTheClaimantsFacts() (gas: 14702346)\n[PASS] test_traitClassForEveryCatalogIdAndRevertsForUnknown() (gas: 703103)\n[PASS] test_upgradeSponsoredDrawsAllNineOverNineDaysAndRefusesDuplicates() (gas: 12553282)\n[PASS] test_verifiedWindowIsTheCanonicalWindowForEveryOracleId() (gas: 16455284)\nSuite result: ok. 32 passed; 0 failed; 0 skipped; finished in 323.77ms (2.83s CPU time)\n\nRan 1 test for test/Invariants.t.sol:InvariantsTest\n[PASS]\nInvariantsTest invariants:\n[PASS] invariant_oneCardPerClaimantWithImmutableClaimant\n[PASS] invariant_poolOnlyLeavesThroughSponsoredRequests\n InvariantsTest invariants (runs: 256, calls: 16384, reverts: 0)\n\n╭----------+-------------------+-------+---------+----------╮\n| Contract | Selector          | Calls | Reverts | Discards |\n+===========================================================+\n| Handler  | claimSponsored    | 3265  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | mintCard          | 3330  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | sponsor           | 3339  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | transfer          | 3201  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | upgradeAndDeliver | 3249  | 0       | 0        |\n╰----------+-------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 1245464009242128607\n  Bound result 3392171414\n  Bound result 1439199805160997484\n  Bound result 10074\n  Bound result 215657637510118453\n  Bound result 524187422652989221\n  Bound result 1320381278693290321\n  Bound result 894488660203123516\n  Bound result 23\n  Bound result 10529\n  Bound result 1399717347828422224\n  Bound result 1277092963269463446\n  Bound result 42\n  Bound result 3917867461\n  Bound result 326349845556141731\n  Bound result 1399717347828422224\n  Bound result 19813\n  Bound result 1678047275088780755\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 5.67s (5.66s CPU time)\n\nRan 1 test for test/BurnInvariant.t.sol:BurnInvariantTest\n[PASS] invariant_registryRetainsNoClaimETHAndPoolOnlyFundsOracleRequests() (runs: 256, calls: 16384, reverts: 0)\n\n╭-------------+----------+-------+---------+----------╮\n| Contract    | Selector | Calls | Reverts | Discards |\n+=====================================================+\n| BurnHandler | claim    | 16384 | 0       | 0        |\n╰-------------+----------+-------+---------+----------╯\n\nLogs:\n  Bound result 9184\n  Bound result 3830\n  Bound result 4333632135824622\n  Bound result 18087\n  Bound result 9361830636778941\n  Bound result 2546972425363853\n  Bound result 74264337592978034889\n  Bound result 4525\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 13352764\n  Bound result 2954\n  Bound result 28788093366116295559\n  Bound result 4329670727698909\n  Bound result 235\n  Bound result 74264337592978034889\n  Bound result 12718\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 771019521915472318\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 122609387100943981161\n  Bound result 79734594412376\n  Bound result 12854586475430201\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4443\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 1222\n  Bound result 22238\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 17802818706453832898\n  Bound result 7460743740574033\n  Bound result 16990996474253376\n  Bound result 74264337592978034889\n  Bound result 9556\n  Bound result 4333632135824622\n  Bound result 71202813315479296207\n  Bound result 2613887\n  Bound result 1070270366970226\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 23917\n  Bound result 3267\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 2611\n  Bound result 2989\n  Bound result 77210\n  Bound result 3335625467\n  Bound result 0\n  Bound result 5395913583836774\n  Bound result 19614\n  Bound result 299316095187\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 11937431820990960457\n  Bound result 4329670727698907\n  Bound result 995\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 5717\n  Bound result 6182\n  Bound result 5052607601762670\n  Bound result 19262259121888276\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 494\n  Bound result 1448\n  Bound result 4092969590\n  Bound result 4588715398364389\n  Bound result 12051654715830086\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 17187164159967916130\n  Bound result 23903776941\n  Bound result 14975149265295504\n  Bound result 962\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 1086394137\n  Bound result 15082\n  Bound result 28275\n  Bound result 98338121332633279291\n  Bound result 24\n  Bound result 4395945203998\n  Bound result 22113\n  Bound result 4329670727698909\n  Bound result 7768\n  Bound result 2179069540\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 11190154641633378\n  Bound result 24173\n  Bound result 7754539311760864\n  Bound result 19838\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 1244295851617813\n  Bound result 4551\n  Bound result 4329670727698909\n  Bound result 3448033378877761\n  Bound result 3852\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 14667301500156989998\n  Bound result 116553\n  Bound result 13092803666759633\n  Bound result 8111927799615192779\n  Bound result 16523\n  Bound result 18660\n  Bound result 1390\n  Bound result 4329670727698909\n  Bound result 7097\n  Bound result 4054421664747\n  Bound result 193699560887\n  Bound result 27279407710\n  Bound result 9851\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 14634\n  Bound result 4242\n  Bound result 49149627578684911630\n  Bound result 8595\n  Bound result 6541\n  Bound result 804\n  Bound result 4329670727698909\n  Bound result 8437\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 7857\n  Bound result 54759721418778998584\n  Bound result 826074471\n  Bound result 4333632135824622\n  Bound result 640346783884\n  Bound result 162247\n  Bound result 746\n  Bound result 74264337592978034889\n  Bound result 943\n  Bound result 7769\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 11472\n  Bound result 30937242788498366037\n  Bound result 514\n  Bound result 5249\n  Bound result 97458384799016550561\n  Bound result 12236\n  Bound result 7380\n  Bound result 833\n  Bound result 4329670727698909\n  Bound result 1490558884257652\n  Bound result 135484575771211364146\n  Bound result 4329670727698909\n  Bound result 391\n  Bound result 1409\n  Bound result 9296025158172663\n  Bound result 4333632135824622\n  Bound result 9745\n  Bound result 3967804813595342\n  Bound result 22745\n  Bound result 2873693163\n  Bound result 17983\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 2756\n  Bound result 4333632135824622\n  Bound result 80482283893750513566\n  Bound result 1047234902803701\n  Bound result 4333632135824622\n  Bound result 1865276820\n  Bound result 4329670727698909\n  Bound result 5013\n  Bound result 508782016282\n  Bound result 2405541588391\n  Bound result 9334709863697109\n  Bound result 23459\n  Bound result 29795\n  Bound result 4333632135824622\n  Bound result 6274\n  Bound result 4329670727698909\n  Bound result 7317\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 12.41s (12.41s CPU time)\n\nRan 3 tests for test/InvariantsExtended.t.sol:InvariantsExtendedTest\n[PASS]\nInvariantsExtendedTest invariants:\n[PASS] invariant_markedExactlyWhenAPassingAttestationWasDelivered\n[PASS] invariant_oneCardPerClaimant\n[PASS] invariant_poolDailyAndLifetimeLimits\n[PASS] invariant_poolIsFeesPlusDonationsMinusSponsoredRequests\n[PASS] invariant_sharedFactsAreHashesStoredOnlyOnDelivery\n[PASS] invariant_specsAreImmutable\n InvariantsExtendedTest invariants (runs: 96, calls: 4608, reverts: 0)\n\n╭-------------+-------------------+-------+---------+----------╮\n| Contract    | Selector          | Calls | Reverts | Discards |\n+==============================================================+\n| FullHandler | abandonLate       | 275   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | advanceTime       | 268   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | applyShared       | 244   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | claimSponsored    | 284   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverFalse      | 275   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverTampered   | 271   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverTrue       | 306   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | donate            | 251   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | failRequest       | 278   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | mintCard          | 267   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | registerSpec      | 253   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | replayConsumed    | 268   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | requestSharedFact | 295   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | sponsor           | 251   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | transfer          | 257   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | upgradePaid       | 294   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | upgradeSponsored  | 271   | 0       | 0        |\n╰-------------+-------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 301\n  Bound result 990\n  Bound result 5\n  Bound result 14614\n  Bound result 2293804105428000817\n  Bound result 15\n  Bound result 1\n  Bound result 2815477108865026898\n  Bound result 24\n  Bound result 6\n  Bound result 3\n  Bound result 24248\n  Bound result 1\n  Bound result 158\n  Bound result 3\n\n[PASS] test_handlerReplayOfAConsumedIdChangesNothing() (gas: 1919752)\n[PASS] test_handlerSponsoredSelectionAcceptsMaxSeed() (gas: 1763178)\nLogs:\n  Bound result 3000000000000000000\n\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 14.53s (14.52s CPU time)\n\nRan 16 test suites in 14.53s (35.22s CPU time): 159 tests passed, 0 failed, 15 skipped (174 total tests)\n","passed":true},{"durationMs":264,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Registry.abandon(bytes32)\",\"Registry.applySharedFact(uint16,address[])\",\"Registry.approve(address,uint256)\",\"Registry.claimSponsored(uint16)\",\"Registry.mintCard()\",\"Registry.onFailure(bytes32,uint8,bytes32,uint16,uint16,bytes)\",\"Registry.onResult(bytes32,(bytes32,uint256,bytes32,uint8,bytes,uint256,uint64,uint64,bytes32,bytes32,uint16,uint16,uint16,uint64,uint64),bytes)\",\"Registry.registerSpec((uint8,address,string,string,string,uint256,string,uint8,uint256,uint64,uint64,string))\",\"Registry.requestSharedFact(uint16,uint256)\",\"Registry.safeTransferFrom(address,address,uint256)\",\"Registry.safeTransferFrom(address,address,uint256,bytes)\",\"Registry.setApprovalForAll(address,bool)\",\"Registry.sponsor(uint256)\",\"Registry.transferFrom(address,address,uint256)\",\"Registry.upgrade(uint16[],uint256)\",\"Registry.upgradeSponsored(uint256,uint16[])\"],\"files\":{\".gitignore\":8,\".gitmodules\":6,\"CATALOG.md\":267,\"CONCEPT.md\":243,\"DISCLOSURE.md\":41,\"INTEGRATION.md\":396,\"LICENSE\":21,\"README.md\":372,\"TEMPLATES.md\":154,\"foundry.toml\":44,\"reference/Intake.sol\":5175,\"reference/IntakeV2.sol\":5240,\"reference/PROVENANCE.md\":44,\"reference/abi/IMD.json\":1684,\"reference/abi/IdentityMD.json\":894,\"reference/abi/Intake.json\":955,\"reference/abi/IntakeV2.json\":1070,\"reference/abi/WhitelistCurator.json\":794,\"reference/anchors/headers.json\":61,\"reference/attestations/2026-10-10-link-pilot.json\":92,\"reference/attestations/2026-10-10-meatbag-consumer.json\":104,\"reference/attestations/2026-10-11-feed-consumer-v2.json\":105,\"reference/attestations/2026-10-11-nonce-false.json\":92,\"reference/attestations/2026-10-11-nonce-true.json\":92,\"reference/attestations/README.md\":29,\"reference/burn/BurnExecutorV2.sol.txt\":314,\"reference/burn/abi.json\":1001,\"reference/burn/provenance.json\":17,\"reference/intake/completions.json\":147,\"reference/list-record/src/ListRecord.sol\":169,\"reference/list-record/src/ListRecordRenderer.sol\":126,\"reference/list-record/src/interfaces/IListRecordRenderer.sol\":29,\"reference/list-record/src/lib/SSTORE2.sol\":39,\"reference/list-record/src/lib/Str.sol\":54,\"reference/list-record/test/Renderer.t.sol\":165,\"reference/list-record/test/RendererMechanism.t.sol\":203,\"reference/list-record/test/Template.t.sol\":293,\"reference/list-record/test/fixtures/golden_synthetic_held_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_held_uri.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_transferred_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_transferred_uri.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_width_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_width_uri.txt\":1,\"reference/plane/checks/1001-hour-savior.json\":81,\"reference/plane/checks/1102-ordinal-1000.json\":81,\"reference/plane/checks/1105-first-thousand.json\":81,\"reference/plane/checks/1201-top-32.json\":82,\"reference/plane/checks/1301-not-born-yesterday.json\":86,\"reference/plane/checks/701-still-here.json\":81,\"reference/plane/checks/801-last-stand.json\":81,\"reference/plane/checks/T2-log-sum-composed.json\":81,\"reference/plane/checks/T4-call-compare-reference.json\":81,\"reference/plane/checks/T5-community-composed.json\":86,\"reference/plane/questionHashes.json\":92,\"reference/plane/quotes/1001-hour-savior.json\":20,\"reference/plane/quotes/1102-ordinal-1000.json\":20,\"reference/plane/quotes/1105-first-thousand.json\":20,\"reference/plane/quotes/1201-top-32.json\":20,\"reference/plane/quotes/1301-not-born-yesterday.json\":20,\"reference/plane/quotes/701-still-here.json\":20,\"reference/plane/quotes/801-last-stand.json\":20,\"reference/plane/quotes/T2-log-sum-composed.json\":20,\"reference/plane/quotes/T4-call-compare-reference.json\":20,\"reference/plane/quotes/T5-community-composed.json\":20,\"remappings.txt\":2,\"script/Deploy.s.sol\":38,\"src/Composer.sol\":627,\"src/HiveData.sol\":75,\"src/Registry.sol\":742,\"src/Renderer.sol\":427,\"src/TemplateData.sol\":16,\"src/Types.sol\":41,\"src/interfaces/IBurnExecutor.sol\":12,\"src/interfaces/IIDMD.sol\":8,\"src/interfaces/IIntake.sol\":29,\"src/interfaces/IOracleConsumer.sol\":38,\"src/interfaces/IWhitelistCurator.sol\":53,\"template/blob.hex\":1,\"template/offsets.txt\":1,\"templates/fixtures/1001-hour-savior.json\":22,\"templates/fixtures/1102-ordinal-1000.json\":22,\"templates/fixtures/1105-first-thousand.json\":22,\"templates/fixtures/1201-top-32.json\":22,\"templates/fixtures/1301-not-born-yesterday.json\":24,\"templates/fixtures/701-still-here.json\":22,\"templates/fixtures/801-last-stand.json\":22,\"templates/fixtures/T2-log-sum-composed.json\":23,\"templates/fixtures/T4-call-compare-reference.json\":21,\"templates/fixtures/T5-community-composed.json\":24,\"test/.gitkeep\":0,\"test/Adversarial.t.sol\":815,\"test/Artifacts.t.sol\":172,\"test/Attestations.t.sol\":196,\"test/Base.t.sol\":158,\"test/BurnInvariant.t.sol\":120,\"test/BurnRule.t.sol\":293,\"test/Goldens.t.sol\":444,\"test/Invariants.t.sol\":124,\"test/InvariantsExtended.t.sol\":519,\"test/NOTES.md\":288,\"test/ReReview.t.sol\":262,\"test/Registry.t.sol\":772,\"test/RegistryRules.t.sol\":310,\"test/Rename.t.sol\":224,\"test/ReviewChanges.t.sol\":214,\"test/Templates.t.sol\":149,\"test/fixtures/golden_synthetic_collector_preimage.txt\":1,\"test/fixtures/golden_synthetic_collector_svg.txt\":1,\"test/fixtures/golden_synthetic_collector_uri.txt\":1,\"test/fixtures/golden_synthetic_direct_preimage.txt\":1,\"test/fixtures/golden_synthetic_direct_svg.txt\":1,\"test/fixtures/golden_synthetic_direct_uri.txt\":1,\"test/fixtures/golden_synthetic_fullhouse_preimage.txt\":1,\"test/fixtures/golden_synthetic_fullhouse_svg.txt\":1,\"test/fixtures/golden_synthetic_fullhouse_uri.txt\":1,\"test/fixtures/golden_synthetic_honey_preimage.txt\":1,\"test/fixtures/golden_synthetic_honey_svg.txt\":1,\"test/fixtures/golden_synthetic_honey_uri.txt\":1,\"test/fixtures/golden_synthetic_newcomer_preimage.txt\":1,\"test/fixtures/golden_synthetic_newcomer_svg.txt\":1,\"test/fixtures/golden_synthetic_newcomer_uri.txt\":1,\"test/fixtures/golden_synthetic_oracle_preimage.txt\":1,\"test/fixtures/golden_synthetic_oracle_svg.txt\":1,\"test/fixtures/golden_synthetic_oracle_uri.txt\":1,\"test/fixtures/golden_synthetic_outsider_preimage.txt\":1,\"test/fixtures/golden_synthetic_outsider_svg.txt\":1,\"test/fixtures/golden_synthetic_outsider_uri.txt\":1,\"test/fixtures/golden_synthetic_width_preimage.txt\":1,\"test/fixtures/golden_synthetic_width_svg.txt\":1,\"test/fixtures/golden_synthetic_width_uri.txt\":1,\"test/fork/BurnRule.fork.t.sol\":162,\"test/fork/Mainnet.fork.t.sol\":338,\"test/mocks/MockBurnExecutor.sol\":134,\"test/mocks/Mocks.sol\":231,\"tools/gen_template.py\":898,\"tools/test_gen_template.py\":334},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"d8bc12e227a6a8a461a64a22c39823b75e7e1266c06de3832bf36c76f6b819b4","verifiedTreeHash":"918e42c498c821eca3c3ff1e02d758e94d011d2b","verifierVersion":"0.1.0+63e0a393"},{"checks":[{"durationMs":13579,"exitCode":0,"name":"build","output":"Compiling 75 files with Solc 0.8.24\nSolc 0.8.24 finished in 13.17s\nCompiler run successful!\n","passed":true},{"durationMs":14268,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 8 tests for test/Rename.t.sol:RenameTest\n[PASS] test_catalogSpecNamesMatchTheTable() (gas: 494791)\n[PASS] test_collectionNameAndSymbol() (gas: 24961)\n[PASS] test_composerStaysUnderTheSizeLimitWithHeadroom() (gas: 13473)\n[PASS] test_metadataCarriesTheFinalFamilyNames() (gas: 3112830)\n[PASS] test_nameTableIsTheFinalTable() (gas: 609030)\n[PASS] test_noWorkingNameSurvivesInTheNameTable() (gas: 1059773)\n[PASS] test_unknownIdHasNoName() (gas: 25157)\n[PASS] test_upgradeRefusesTopWeightsAsASharedFact() (gas: 1640733)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 11.85ms (12.05ms CPU time)\n\nRan 6 tests for test/Templates.t.sol:TemplatesTest\n[PASS] test_allTenBodiesAreByteExact() (gas: 1449627)\n[PASS] test_allTenQuestionHashesEqualThePlanes() (gas: 2178311)\n[PASS] test_bodyIsDeterministicInClaimantAndDiffersAcrossClaimants() (gas: 461117)\n[PASS] test_directAndUnknownIdsHaveNoBody() (gas: 60691)\n[PASS] test_hexMinAndCatalogWindows() (gas: 146731)\n[PASS] test_traitNamesAndClasses() (gas: 112687)\nSuite result: ok. 6 passed; 0 failed; 0 skipped; finished in 77.56ms (7.65ms CPU time)\n\nRan 6 tests for test/Artifacts.t.sol:ArtifactsTest\n[PASS] test_constructorRejectsUnsettledOrUnavailableCurator() (gas: 260692)\n[PASS] test_constructorRejectsZeroAddressesAndStoresTheRest() (gas: 5746)\n[PASS] test_deployScriptUsesTheFiveStaticAddresses() (gas: 25695278)\n[PASS] test_noForbiddenOpcodesInRuntime() (gas: 40286127)\n[PASS] test_noImmutableReferencesInAnyArtifact() (gas: 69643101)\n[PASS] test_twoDeploymentsHaveIdenticalRuntimeCode() (gas: 3281273)\nSuite result: ok. 6 passed; 0 failed; 0 skipped; finished in 186.49ms (113.53ms CPU time)\n\nRan 5 tests for test/Goldens.t.sol:GoldensTest\n[PASS] test_escapeJsonNeutralisesMarkup() (gas: 42667)\n[PASS] test_goldenSyntheticDirect() (gas: 2854732)\n[PASS] test_goldenSyntheticOracle() (gas: 7494961)\n[PASS] test_goldenSyntheticWidthThroughTheRenderer() (gas: 17712445)\n[PASS] test_templateArtifactsMatchTheCompiledConstants() (gas: 529967)\nSuite result: ok. 5 passed; 0 failed; 0 skipped; finished in 240.22ms (57.03ms CPU time)\n\nRan 3 tests for test/Attestations.t.sol:AttestationsTest\n[PASS] test_allFiveRecoverTheAttesterUnderTheirOwnDomainOnly() (gas: 4806933)\n[PASS] test_loaderRejectsUnknownAnswerTypeNames() (gas: 4845)\n[PASS] test_protocolVectorDigestAndSelector() (gas: 1934838)\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 255.53ms (8.95ms CPU time)\n\nRan 10 tests for test/ReReview.t.sol:ReReviewTest\n[PASS] test_coldGas_firstCommunityVerificationWithACard() (gas: 2414826)\nLogs:\n  cold onResult gas, first community verification with a card: 133356\n\n[PASS] test_coldGas_sharedFact64Catalog() (gas: 1739356)\nLogs:\n  cold onResult gas, 64-address shared fact (catalog 1201): 164087\n\n[PASS] test_coldGas_sharedFact64Community() (gas: 2108232)\nLogs:\n  cold onResult gas, 64-address shared fact (community T3): 170445\n\n[PASS] test_communityAttributesAppearOnlyForVerifiedSpecs() (gas: 3823804)\n[PASS] test_constructorReadsIsSettledWithoutWriting() (gas: 137184)\n[PASS] test_hugeSignatureOnCommunitySharedFactAndCardRequestClearsUnderStipend() (gas: 12241493)\n[PASS] test_lowerOrdinalAcquiredLaterReplacesTheHigherOne() (gas: 7441974)\n[PASS] test_sameSignedEvidenceSatisfiesAnotherRequestWithTheSameQuestion() (gas: 3260537)\n[PASS] test_specIdsEndAt65534() (gas: 909690)\n[PASS] test_unusedFixedValIsRefusedAndAnEmptyFilterIsNotSerialised() (gas: 1332894)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 255.51ms (28.91ms CPU time)\n\nRan 11 tests for test/fork/Mainnet.fork.t.sol:MainnetForkTest\n[SKIP] test_fork_attestationSignedForAnotherConsumerMissesOnTheRealIntake() (gas: 0)\n[SKIP] test_fork_curatorIsSettledWithTheBriefsConstants() (gas: 0)\n[SKIP] test_fork_firstContributorIsAnHourZeroEarlyBird() (gas: 0)\n[SKIP] test_fork_intakeV2SellsTheActionAsTheBriefRecords() (gas: 0)\n[SKIP] test_fork_lastContributorIsNoEarlyBird() (gas: 0)\n[SKIP] test_fork_memberMintsAndRendersAgainstTheRealCurator() (gas: 0)\n[SKIP] test_fork_nonMemberReadsZeroFalseAndHasNoCuratorTrait() (gas: 0)\n[SKIP] test_fork_operatorTraitReadsTheRealCollectionAndGuardsZero() (gas: 0)\n[SKIP] test_fork_pinnedBlockIsTheOneRecorded() (gas: 0)\n[SKIP] test_fork_thousandthContributorJoinedInsideTheFirstThousandWindow() (gas: 0)\n[SKIP] test_fork_upgradeThroughTheRealIntakeThenCompleteFromTheWriter() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 11 skipped; finished in 255.54ms (829.71µs CPU time)\n\nRan 32 tests for test/Adversarial.t.sol:AdversarialTest\n[PASS] test_abandonedPoolRequestKeepsPoolUsedAndLateCallbackIsIgnored() (gas: 1759976)\n[PASS] test_abandonedSharedFactCanBeRequestedAgainAndTheLateAnswerIsIgnored() (gas: 3059037)\n[PASS] test_attestationForAnotherClaimantIsAMissForThisRequest() (gas: 3242379)\n[PASS] test_attestationForAnotherTraitWithTheSameWindowIsAMiss() (gas: 3245382)\n[PASS] test_callbackStarvedOfGasIsNotDeliveredAndStaysPending() (gas: 1691994)\n[PASS] test_cardShowsAtMostThirtyTwoCommunityIdsAndCountsThemAll() (gas: 83195949)\n[PASS] test_claimSponsoredWhilePendingOrVerifiedReverts() (gas: 2103638)\n[PASS] test_communityT3SpecIsASharedFactWithItsOwnHead() (gas: 2422306)\n[PASS] test_everyTemplateVerifiesUnderTheStipendWithACard() (gas: 11725090)\n[PASS] test_expiryAtTheExactSecondStillPassesAndOneLaterDoesNot() (gas: 3239571)\n[PASS] test_fuzz_anyFieldAlteredAfterSigningIsASignatureMiss(uint8,uint256) (runs: 512, μ: 1651847, ~: 1653336)\nLogs:\n  Bound result 9\n\n[PASS] test_fuzz_applySharedFactOnlyWithinTheHead(uint8,uint8) (runs: 256, μ: 1781406, ~: 1766284)\nLogs:\n  Bound result 11\n  Bound result 10\n\n[PASS] test_fuzz_boolAnswerMustBeExactlyZeroOrOne(uint256) (runs: 512, μ: 2075263, ~: 2074796)\n[PASS] test_fuzz_countAnswerAgainstTheThreshold(uint256,bytes1,bool) (runs: 512, μ: 1654392, ~: 1636755)\n[PASS] test_fuzz_expiryAndClockSkewBoundaries(uint64,uint64) (runs: 512, μ: 1650098, ~: 1640488)\n[PASS] test_fuzz_hasTraitAndTraitsOfNeverRevert(address,uint16,uint8,bool,uint8) (runs: 512, μ: 322957, ~: 332593)\n[PASS] test_fuzz_maximalSpecRegistersComposesAndFitsTheBody(uint8,uint256,uint256) (runs: 64, μ: 2550125, ~: 2716473)\nLogs:\n  Bound result 3\n  Bound result 26\n\n[PASS] test_fuzz_panelAndQuorumBoundaries(uint16,uint16,uint16) (runs: 512, μ: 1653716, ~: 1639597)\n[PASS] test_fuzz_panelTraitNeedsElevenAndSeven(uint16,uint16,uint16) (runs: 512, μ: 2082623, ~: 2068579)\n[PASS] test_fuzz_specBodyIsDeterministicAndClaimantBound(address,address) (runs: 256, μ: 862337, ~: 862337)\n[PASS] test_fuzz_upgradeChargesExactlyKTimesPriceAndLeavesThePoolAlone(uint8,uint256) (runs: 256, μ: 5358487, ~: 4216206)\nLogs:\n  Bound result 1\n  Bound result 90335970836363369400\n\n[PASS] test_fuzz_upgradeRejectsEveryIdThatIsNotAnOracleTrait(uint16) (runs: 256, μ: 209750, ~: 209317)\n[PASS] test_fuzz_windowMustEqualTheCanonicalOne(uint64,uint64) (runs: 512, μ: 1640021, ~: 1640019)\n[PASS] test_onFailureRecordsWhatItIsToldAndStoresNothing() (gas: 3062584)\n[PASS] test_questionHashIsBoundToTheClaimantAndTheTrait() (gas: 685415)\n[PASS] test_reentrantTokenCannotReenterAnyIMDMovingFunction() (gas: 7515065)\n[PASS] test_sharedFactWorstCaseEnvelopeUnderTheStipend() (gas: 3982139)\n[PASS] test_signatureShapesThatDoNotRecover() (gas: 9332201)\n[PASS] test_tokenURIDependsOnlyOnTheClaimantsFacts() (gas: 8674612)\n[PASS] test_traitClassForEveryCatalogIdAndRevertsForUnknown() (gas: 703653)\n[PASS] test_upgradeSponsoredDrawsAllNineOverNineDaysAndRefusesDuplicates() (gas: 12534564)\n[PASS] test_verifiedWindowIsTheCanonicalWindowForEveryOracleId() (gas: 16453512)\nSuite result: ok. 32 passed; 0 failed; 0 skipped; finished in 255.70ms (2.52s CPU time)\n\nRan 25 tests for test/Registry.t.sol:RegistryTest\n[PASS] test_abandonOnlyAfterFourteenDaysAndStaleCallbackLeavesSuccessor() (gas: 3290507)\n[PASS] test_anyoneReadsAnyWalletAndNothingUsesTxOrigin() (gas: 1214443)\n[PASS] test_attestationForAnotherConsumerOrChainIsNeverAccepted() (gas: 3212014)\n[PASS] test_callbacksRejectEveryoneButTheIntake() (gas: 1629366)\n[PASS] test_claimSponsoredRules() (gas: 5256932)\n[PASS] test_directTraitsAreLiveAndNeedNoCard() (gas: 604830)\n[PASS] test_fuzz_tiersAreMonotone(uint8,bool,uint32,uint128,uint32,uint8) (runs: 256, μ: 707662, ~: 695053)\n[PASS] test_malformedEnvelopeIsNotDeliveredAndStaysPending() (gas: 1560312)\n[PASS] test_mintOncePerWalletAndTransfersKeepClaimant() (gas: 956380)\n[PASS] test_mintWithoutFeeReverts() (gas: 47096)\n[PASS] test_missReasons() (gas: 29423786)\n[PASS] test_noReceiveOrFallback() (gas: 57797)\n[PASS] test_nonMemberIsNeverAnEarlyBird() (gas: 231561)\n[PASS] test_onFailureClearsAndAllowsRetry() (gas: 3004500)\n[PASS] test_onResultGasWorstCase() (gas: 2333471)\nLogs:\n  onResult worst-case gas: 164954\n\n[PASS] test_poolIsTheBalanceAndOnlyLeavesThroughSponsoredRequests() (gas: 5650901)\n[PASS] test_reentrantTokenCannotReenterMint() (gas: 2358604)\n[PASS] test_registerSpecAssignsSequentialIdsAndIsImmutable() (gas: 1230301)\n[PASS] test_sharedFactBadEnvelopeIsAMissAndCanBeRequestedAgain() (gas: 6920942)\n[PASS] test_sharedFactFlow() (gas: 2477180)\n[PASS] test_specGuards() (gas: 1336670)\n[PASS] test_supportsERC4906AndERC721() (gas: 25952)\n[PASS] test_upgradeGuards() (gas: 6031723)\n[PASS] test_upgradeHappyPathMarksTraitAndRefreshesCard() (gas: 2535780)\n[PASS] test_upgradeWithoutCardAttachesToClaimant() (gas: 1894204)\nSuite result: ok. 25 passed; 0 failed; 0 skipped; finished in 255.62ms (190.42ms CPU time)\n\nRan 15 tests for test/RegistryRules.t.sol:RegistryRulesTest\n[PASS] test_constructorPriceCheckIsPassiveAndAcceptsAnyNonzeroPrice() (gas: 147394)\n[PASS] test_constructorRejectsUnavailableIntake() (gas: 26380)\n[PASS] test_constructorRejectsWrongAsset() (gas: 548638)\n[PASS] test_constructorRejectsZeroIntakePrice() (gas: 42019)\n[PASS] test_fuzz_bothPoolPathsShareOneAllowancePerUtcDay(bool,bool,uint32) (runs: 256, μ: 3240550, ~: 3242509)\nLogs:\n  Bound result 8185\n\n[PASS] test_idmdCounterFollowsTransfersAndStopsAtNine() (gas: 15404294)\n[PASS] test_idmdHolderMustAlsoBeAListMember() (gas: 1760982)\n[PASS] test_memberClaimsOnDeploymentDayWithoutCardOrIdmd() (gas: 1671941)\n[PASS] test_noVerdictConsumesTheDayAndLifetimePair() (gas: 3263546)\n[PASS] test_paidUpgradeAndSharedFactDoNotUseOrObeyPoolDailyLimit() (gas: 8182292)\n[PASS] test_revertingIntakeDoesNotConsumePoolAllowances() (gas: 2024852)\n[PASS] test_specAndFirstClaimCostSixPointNineIMD() (gas: 1880065)\n[PASS] test_specRequiresFullFeeAndAllowance() (gas: 798774)\n[PASS] test_sponsoredUpgradeRequiresExactlyOneTrait() (gas: 1777373)\n[PASS] test_switchingIdmdDoesNotBypassDailyLimit() (gas: 3186110)\nSuite result: ok. 15 passed; 0 failed; 0 skipped; finished in 255.73ms (268.39ms CPU time)\n\nRan 10 tests for test/ReviewChanges.t.sol:ReviewChangesTest\n[PASS] test_fuzz_emptyFixedArgRequiresZeroValueForT1AndT2(uint256) (runs: 256, μ: 3038830, ~: 3038585)\nLogs:\n  Bound result 1371315570814079436122099639666805892381220\n\n[PASS] test_fuzz_ordinalShowsLowestVerifiedId(uint8) (runs: 256, μ: 3908432, ~: 4284599)\nLogs:\n  Bound result 7\n\n[PASS] test_hugeAnswerClearsUintBoolAndSharedRequestsUnderStipend() (gas: 26374155)\n[PASS] test_hugeSignatureClearsPendingAndAllowsImmediateRetry() (gas: 6836291)\n[PASS] test_metadataReportsMinimaEvenWhenSignedPanelIsLarger() (gas: 5345386)\n[PASS] test_scalarAnswerLengthPrecedesChainSignerAndClaimedType() (gas: 17758199)\n[PASS] test_sharedAnswerUpperBoundPrecedesChainAndSigner() (gas: 4500855)\n[PASS] test_signatureLengthPrecedesAnswerLengthAndChain() (gas: 37648291)\n[PASS] test_unknownRequestStillPrecedesDynamicSizeChecks() (gas: 12869618)\n[PASS] test_validationPrecedenceAfterSizes() (gas: 18077541)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 256.16ms (594.45ms CPU time)\n\nRan 1 test for test/Invariants.t.sol:InvariantsTest\n[PASS]\nInvariantsTest invariants:\n[PASS] invariant_oneCardPerClaimantWithImmutableClaimant\n[PASS] invariant_poolOnlyLeavesThroughSponsoredRequests\n InvariantsTest invariants (runs: 256, calls: 16384, reverts: 0)\n\n╭----------+-------------------+-------+---------+----------╮\n| Contract | Selector          | Calls | Reverts | Discards |\n+===========================================================+\n| Handler  | claimSponsored    | 3265  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | mintCard          | 3330  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | sponsor           | 3339  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | transfer          | 3201  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | upgradeAndDeliver | 3249  | 0       | 0        |\n╰----------+-------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 14249\n  Bound result 2077\n  Bound result 763676229954754934\n  Bound result 11666\n  Bound result 215657637510118453\n  Bound result 524187422652989221\n  Bound result 1320381278693290321\n  Bound result 1333407482672175889\n  Bound result 1225148678\n  Bound result 3392\n  Bound result 223750639358177401\n  Bound result 1473941795511910062\n  Bound result 3170\n  Bound result 3866055608\n  Bound result 200459194611435107\n  Bound result 223750639358177401\n  Bound result 20996\n  Bound result 1678047275088780755\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 5.40s (5.40s CPU time)\n\nRan 3 tests for test/InvariantsExtended.t.sol:InvariantsExtendedTest\n[PASS]\nInvariantsExtendedTest invariants:\n[PASS] invariant_markedExactlyWhenAPassingAttestationWasDelivered\n[PASS] invariant_oneCardPerClaimant\n[PASS] invariant_poolDailyAndLifetimeLimits\n[PASS] invariant_poolIsFeesPlusDonationsMinusSponsoredRequests\n[PASS] invariant_sharedFactsAreHashesStoredOnlyOnDelivery\n[PASS] invariant_specsAreImmutable\n InvariantsExtendedTest invariants (runs: 96, calls: 4608, reverts: 0)\n\n╭-------------+-------------------+-------+---------+----------╮\n| Contract    | Selector          | Calls | Reverts | Discards |\n+==============================================================+\n| FullHandler | abandonLate       | 275   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | advanceTime       | 268   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | applyShared       | 244   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | claimSponsored    | 284   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverFalse      | 275   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverTampered   | 271   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverTrue       | 306   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | donate            | 251   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | failRequest       | 278   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | mintCard          | 267   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | registerSpec      | 253   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | replayConsumed    | 268   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | requestSharedFact | 295   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | sponsor           | 251   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | transfer          | 257   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | upgradePaid       | 294   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | upgradeSponsored  | 271   | 0       | 0        |\n╰-------------+-------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 202\n  Bound result 3135\n  Bound result 1\n  Bound result 4455\n  Bound result 668225060427783956\n  Bound result 503\n  Bound result 1\n  Bound result 207117889586\n  Bound result 7\n  Bound result 2\n  Bound result 3\n  Bound result 1720\n  Bound result 2\n  Bound result 158\n\n[PASS] test_handlerReplayOfAConsumedIdChangesNothing() (gas: 1919622)\n[PASS] test_handlerSponsoredSelectionAcceptsMaxSeed() (gas: 1761026)\nLogs:\n  Bound result 3000000000000000000\n\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 14.07s (14.06s CPU time)\n\nRan 13 test suites in 14.07s (21.77s CPU time): 124 tests passed, 0 failed, 11 skipped (135 total tests)\n","passed":true},{"durationMs":274,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Registry.abandon(bytes32)\",\"Registry.applySharedFact(uint16,address[])\",\"Registry.approve(address,uint256)\",\"Registry.claimSponsored(uint16)\",\"Registry.mintCard()\",\"Registry.onFailure(bytes32,uint8,bytes32,uint16,uint16,bytes)\",\"Registry.onResult(bytes32,(bytes32,uint256,bytes32,uint8,bytes,uint256,uint64,uint64,bytes32,bytes32,uint16,uint16,uint16,uint64,uint64),bytes)\",\"Registry.registerSpec((uint8,address,string,string,string,uint256,string,uint8,uint256,uint64,uint64,string))\",\"Registry.requestSharedFact(uint16,uint256)\",\"Registry.safeTransferFrom(address,address,uint256)\",\"Registry.safeTransferFrom(address,address,uint256,bytes)\",\"Registry.setApprovalForAll(address,bool)\",\"Registry.sponsor(uint256)\",\"Registry.transferFrom(address,address,uint256)\",\"Registry.upgrade(uint16[],uint256)\",\"Registry.upgradeSponsored(uint256,uint16[])\"],\"files\":{\".gitignore\":8,\".gitmodules\":6,\"CATALOG.md\":267,\"CONCEPT.md\":211,\"DISCLOSURE.md\":22,\"INTEGRATION.md\":306,\"LICENSE\":21,\"README.md\":284,\"TEMPLATES.md\":154,\"foundry.toml\":44,\"reference/Intake.sol\":5175,\"reference/IntakeV2.sol\":5240,\"reference/PROVENANCE.md\":44,\"reference/abi/IMD.json\":1684,\"reference/abi/IdentityMD.json\":894,\"reference/abi/Intake.json\":955,\"reference/abi/IntakeV2.json\":1070,\"reference/abi/WhitelistCurator.json\":794,\"reference/anchors/headers.json\":61,\"reference/attestations/2026-10-10-link-pilot.json\":92,\"reference/attestations/2026-10-10-meatbag-consumer.json\":104,\"reference/attestations/2026-10-11-feed-consumer-v2.json\":105,\"reference/attestations/2026-10-11-nonce-false.json\":92,\"reference/attestations/2026-10-11-nonce-true.json\":92,\"reference/attestations/README.md\":29,\"reference/intake/completions.json\":147,\"reference/list-record/src/ListRecord.sol\":169,\"reference/list-record/src/ListRecordRenderer.sol\":126,\"reference/list-record/src/interfaces/IListRecordRenderer.sol\":29,\"reference/list-record/src/lib/SSTORE2.sol\":39,\"reference/list-record/src/lib/Str.sol\":54,\"reference/list-record/test/Renderer.t.sol\":165,\"reference/list-record/test/RendererMechanism.t.sol\":203,\"reference/list-record/test/Template.t.sol\":293,\"reference/list-record/test/fixtures/golden_synthetic_held_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_held_uri.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_transferred_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_transferred_uri.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_width_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_width_uri.txt\":1,\"reference/plane/checks/1001-hour-savior.json\":81,\"reference/plane/checks/1102-ordinal-1000.json\":81,\"reference/plane/checks/1105-first-thousand.json\":81,\"reference/plane/checks/1201-top-32.json\":82,\"reference/plane/checks/1301-not-born-yesterday.json\":86,\"reference/plane/checks/701-still-here.json\":81,\"reference/plane/checks/801-last-stand.json\":81,\"reference/plane/checks/T2-log-sum-composed.json\":81,\"reference/plane/checks/T4-call-compare-reference.json\":81,\"reference/plane/checks/T5-community-composed.json\":86,\"reference/plane/questionHashes.json\":92,\"reference/plane/quotes/1001-hour-savior.json\":20,\"reference/plane/quotes/1102-ordinal-1000.json\":20,\"reference/plane/quotes/1105-first-thousand.json\":20,\"reference/plane/quotes/1201-top-32.json\":20,\"reference/plane/quotes/1301-not-born-yesterday.json\":20,\"reference/plane/quotes/701-still-here.json\":20,\"reference/plane/quotes/801-last-stand.json\":20,\"reference/plane/quotes/T2-log-sum-composed.json\":20,\"reference/plane/quotes/T4-call-compare-reference.json\":20,\"reference/plane/quotes/T5-community-composed.json\":20,\"remappings.txt\":2,\"script/Deploy.s.sol\":35,\"src/Composer.sol\":627,\"src/Registry.sol\":700,\"src/Renderer.sol\":210,\"src/TemplateData.sol\":15,\"src/Types.sol\":41,\"src/interfaces/IIDMD.sol\":8,\"src/interfaces/IIntake.sol\":29,\"src/interfaces/IOracleConsumer.sol\":38,\"src/interfaces/IWhitelistCurator.sol\":53,\"template/blob.hex\":1,\"template/card.svg\":1,\"template/offsets.txt\":1,\"templates/fixtures/1001-hour-savior.json\":22,\"templates/fixtures/1102-ordinal-1000.json\":22,\"templates/fixtures/1105-first-thousand.json\":22,\"templates/fixtures/1201-top-32.json\":22,\"templates/fixtures/1301-not-born-yesterday.json\":24,\"templates/fixtures/701-still-here.json\":22,\"templates/fixtures/801-last-stand.json\":22,\"templates/fixtures/T2-log-sum-composed.json\":23,\"templates/fixtures/T4-call-compare-reference.json\":21,\"templates/fixtures/T5-community-composed.json\":24,\"test/.gitkeep\":0,\"test/Adversarial.t.sol\":814,\"test/Artifacts.t.sol\":144,\"test/Attestations.t.sol\":195,\"test/Base.t.sol\":157,\"test/Goldens.t.sol\":157,\"test/Invariants.t.sol\":124,\"test/InvariantsExtended.t.sol\":519,\"test/NOTES.md\":148,\"test/ReReview.t.sol\":248,\"test/Registry.t.sol\":771,\"test/RegistryRules.t.sol\":308,\"test/Rename.t.sol\":224,\"test/ReviewChanges.t.sol\":212,\"test/Templates.t.sol\":149,\"test/fixtures/golden_synthetic_direct_preimage.txt\":1,\"test/fixtures/golden_synthetic_direct_svg.txt\":1,\"test/fixtures/golden_synthetic_direct_uri.txt\":1,\"test/fixtures/golden_synthetic_oracle_preimage.txt\":1,\"test/fixtures/golden_synthetic_oracle_svg.txt\":1,\"test/fixtures/golden_synthetic_oracle_uri.txt\":1,\"test/fixtures/golden_synthetic_width_preimage.txt\":1,\"test/fixtures/golden_synthetic_width_svg.txt\":1,\"test/fixtures/golden_synthetic_width_uri.txt\":1,\"test/fork/Mainnet.fork.t.sol\":330,\"test/mocks/Mocks.sol\":231,\"tools/gen_template.py\":466,\"tools/test_gen_template.py\":104},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":4428,"exitCode":0,"name":"slither","output":"[medium/high] incorrect-equality at src/Registry.sol:493: Registry._rule(uint16) (src/Registry.sol#493-507) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:391: Registry.abandon(bytes32) (src/Registry.sol#391-397) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:690: Registry._fromPool(uint16,uint256) (src/Registry.sol#690-699) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:478: Registry.onFailure(bytes32,uint8,bytes32,uint16,uint16,bytes) (src/Registry.sol#478-490) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:493: Registry._rule(uint16) (src/Registry.sol#493-507) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:493: Registry._rule(uint16) (src/Registry.sol#493-507) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:493: Registry._rule(uint16) (src/Registry.sol#493-507) uses a dangerous strict equality:\n[medium/high] incorrect-equality at src/Registry.sol:453: Registry.onResult(bytes32,OracleAttestation,bytes) (src/Registry.sol#453-475) uses a dangerous strict equality:\n[medium/medium] reentrancy-no-eth at src/Registry.sol:415: Reentrancy in Registry._request(address,uint16,uint256) (src/Registry.sol#415-437):\n[medium/medium] uninitialized-local at src/Composer.sol:543: Composer.encodeBody(Composer.Question,address).defs (src/Composer.sol#543) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Registry.sol:240: Registry.cardOf(uint256).k (src/Registry.sol#240) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Renderer.sol:190: Renderer.escapeJson(bytes).o (src/Renderer.sol#190) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Registry.sol:628: Registry.applySharedFact(uint16,address[]).found (src/Registry.sol#628) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Composer.sol:613: Composer.hexMin(uint256).n (src/Composer.sol#613) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Composer.sol:187: Composer.traitsOf(address,address).n (src/Composer.sol#187) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Renderer.sol:101: Renderer._communityAttributes(Card).name (src/Renderer.sol#101) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Registry.sol:235: Registry.cardOf(uint256).n (src/Registry.sol#235) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Composer.sol:586: Composer.canonical(Composer.Question).defs (src/Composer.sol#586) is a local variable never initialized\n[medium/medium] uninitialized-local at src/Renderer.sol:182: Renderer.escapeJson(bytes).extra (src/Renderer.sol#182) is a local variable never initialized\n[medium/medium] unused-return at src/Registry.sol:664: Registry.upgradeSponsored(uint256,uint16[]) (src/Registry.sol#664-677) ignores return value by (None,joined) = curator.firstHourOf(msg.sender) (src/Registry.sol#670)\n[medium/medium] unused-return at src/Registry.sol:681: Registry.claimSponsored(uint16) (src/Registry.sol#681-688) ignores return value by (None,joined) = curator.firstHourOf(msg.sender) (src/Registry.sol#682)\n[medium/medium] unused-return at src/Registry.sol:510: Registry._check(Registry.Pending,OracleAttestation,bytes,uint8,uint64,uint64) (src/Registry.sol#510-538) ignores return value by (signer,err,None) = ECDSA.tryRecover(attestationDigest(a),v,r,s) (src/Registry.sol#529)\n[low/medium] calls-loop at src/Registry.sol:342: Registry.specOf(uint16) (src/Registry.sol#342-350) has external calls inside a loop: composer.catalogSpec(traitId,address(curator)) (src/Registry.sol#349)\n[low/medium] calls-loop at src/Composer.sol:158: Composer.traitsOf(address,address) (src/Composer.sol#158-195) has external calls inside a loop: ICatalogRegistry(registry).hasTrait(wallet,all[i]) (src/Composer.sol#189)\n[low/medium] calls-loop at src/Registry.sol:415: Registry._request(address,uint16,uint256) (src/Registry.sol#415-437) has external calls inside a loop: requestId = intake.requestWithFailure(ACTION,body,IIntake.Callback(address(this),this.onResult.selector),this.onFailure.selector,address(imd),price) (src/Registry.sol#425-432)\n[low/medium] calls-loop at src/Registry.sol:342: Registry.specOf(uint16) (src/Registry.sol#342-350) has external calls inside a loop: composer.catalogSpec(traitId,address(curator)) (src/Registry.sol#349)\n[low/medium] calls-loop at src/Registry.sol:353: Registry.composeBody(uint16,address) (src/Registry.sol#353-360) has external calls inside a loop: composer.compose(s,claimant,address(this),traitId == 1301,address(curator)) (src/Registry.sol#359)\n[low/medium] calls-loop at src/Registry.sol:342: Registry.specOf(uint16) (src/Registry.sol#342-350) has external calls inside a loop: composer.catalogSpec(traitId,address(curator)) (src/Registry.sol#349)\n[low/medium] reentrancy-benign at src/Registry.sol:415: Reentrancy in Registry._request(address,uint16,uint256) (src/Registry.sol#415-437):\n[low/medium] timestamp at src/Registry.sol:493: Registry._rule(uint16) (src/Registry.sol#493-507) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:453: Registry.onResult(bytes32,OracleAttestation,bytes) (src/Registry.sol#453-475) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:391: Registry.abandon(bytes32) (src/Registry.sol#391-397) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:690: Registry._fromPool(uint16,uint256) (src/Registry.sol#690-699) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:565: Registry._mark(address,uint16,bytes32,bytes32) (src/Registry.sol#565-571) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:440: Registry._clear(bytes32,Registry.Pending) (src/Registry.sol#440-447) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:478: Registry.onFailure(bytes32,uint8,bytes32,uint16,uint16,bytes) (src/Registry.sol#478-490) uses timestamp for comparisons\n[low/medium] timestamp at src/Registry.sol:510: Registry._check(Registry.Pending,OracleAttestation,bytes,uint8,uint64,uint64) (src/Registry.sol#510-538) uses timestamp for comparisons","passed":true},{"durationMs":976,"exitCode":0,"name":"aderyn","output":"[high] abi-encode-packed-hash-collision at src/Renderer.sol:45: `abi.encodePacked()` Hash Collision\n[high] reentrancy-state-change at src/Registry.sol:181: Reentrancy: State change after external call (5 places)\n[low] costly-loop at src/Registry.sol:375: Costly operations inside loop\n[low] internal-function-used-once at src/Composer.sol:335: Internal Function Used Only Once (4 places)\n[low] large-numeric-literal at src/Composer.sol:99: Large Numeric Literal (2 places)\n[low] literal-instead-of-constant at src/Composer.sol:76: Literal Instead of Constant (212 places)\n[low] require-revert-in-loop at src/Composer.sol:244: Loop Contains `require`/`revert` (7 places)\n[low] state-variable-could-be-immutable at src/Registry.sol:86: State Variable Could Be Immutable (8 places)\n[low] unchecked-return at src/Registry.sol:386: Unchecked Return (2 places)\n[low] uninitialized-local-variable at src/Composer.sol:613: Uninitialized Local Variable (3 places)\n[low] unsafe-oz-erc721-mint at src/Registry.sol:203: Unsafe `ERC721::_mint()`\n[low] unused-public-function at src/Composer.sol:307: Public Function Not Used Internally (4 places)","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"e8a5fb5bf77dec84e6bce8b81eec0fc0a1ac877311baa3cc909ce792413f84e8","verifiedTreeHash":"9469f4ec8c961779182a348ef1de3bbb812cb3a7","verifierVersion":"0.1.0+63e0a393"}]}