{"id":2405,"job_id":5031,"problem_id":1,"lane_id":null,"type":"explore","user_id":1,"model":"deepseek-v4-flash","provider":"deepseek","report_md":"# Job #5031 (pursue, route 148 rev 11): `sahdated/1.1.4` names the denominator — the ≤20% clause is now decidable, and under the named denominator it **fails at 25%**\n\nOutcome: **progress**. The held step (route 148 `next_step`, object-equal to #2331's `next_step`) is\nexecuted: a **single pre-registered site taxonomy** classifies every `json.dump`/`json.dumps` site as\n**(a) file write / (b) not-a-write / (c) unresolved object**, the **denominator D = |(a)| is computed\nand printed**, and the clause `unresolved ≤ 20% of D` becomes one decidable pass/fail. It is **not\nmet**: U/D = **5/20 = 25.0%**. The residual is exactly one class — an object loaded at runtime from a\nfile (`json.load`) or derived from one — which no static AST can decide. The report also fixes the\nsensitivity that produced the two readings #2331 recorded (17.07% vs 29.17%).\n\nEverything is recomputed offline by `check_az.py` (stdlib, deterministic, `check_az.out`); no network\ncall is made by the checker. Delivered module `sahdated-1.1.4.py`, sha256 `8977351d4944ecb2…`.\n\n## What 1.1.4 changes (bounded, two resolver rules + the taxonomy)\n\n1. **Agreement over multiple bindings.** 1.1.3 returned `unresolved` for *any* name with >1 binding.\n   1.1.4 resolves it to status S iff **every** binding resolves to S; only genuinely disagreeing\n   bindings stay `unresolved`. A binding with no value (augmented assignment) still forces unresolved.\n2. **A dict comprehension over a literal key list.** `{k: src[k] for k in (<literal strings>)}` has a\n   known key set, so an instant spelling among the literal keys makes the object `guarded`.\n   (Live: f1447/f1453 `reverse-audit.py` builds its listing this way under `--check` and as a plain\n   literal otherwise; both carry `at`, so the two bindings now agree and the site is `guarded`.)\n3. **The destination taxonomy.** `_destination_map` classifies each site (a) `json.dump(obj, handle)`\n   or `handle.write(json.dumps(obj))`, (b) everything else; `producers` now returns `denominator`,\n   `unresolved_in_denominator`, `unresolved_share` and `dest_counts`, and the CLI prints the\n   denominator. **Net effect on the population:** `unresolved` 7 → **5**, `guarded` 1 → **3**;\n   `unguarded`/`not-a-write`/`routed` unchanged (16 / 42 / 8).\n\n## Clause results (from `check_az.out`)\n\n| # | clause | result |\n|---|---|---|\n| 1 | 1.1.4 `selftest` PASS exit 0 | **MET** — 41 ok lines, exit 0 |\n| 2 | count-corrected `test_recognition_2940.py`: 1.1.4 **13/13 exit 0**; pinned 1.1.2 12/13 exit 1 | **MET** |\n| 3 | **pre-registered ≤20% budget** `U/D ≤ 0.20`, D = count of (a) | **NOT MET** — U/D = 5/20 = **25.0%** |\n| 4 | job2830 recipe layout (3 files, #1541 exemption list): VERDICT closed, 0 stale; redundant reported | **MET** — closed, 0 stale, **3 redundant** |\n| 5 | `reader_table_2940.py`'s three `json.dump` sites never `guarded` | **MET** — lines 37/50/68 `unresolved`, line 95 `not-a-write` |\n| 6 | `hashed-artifact` positive/negative/malformed control | **MET** — 4 matched, 4 stale on tamper, 1 malformed |\n\n## The budget clause: the number and its sensitivity\n\nPre-registered denominator (fixed in `PREREGISTRATION.md` **before** the run): **D = |(a)| = the\nnumber of sites whose serialised value reaches a file handle** (`json.dump(obj, handle)`,\n`handle.write(json.dumps(obj))`). On the 21 served scripts (`pop/f1447,f1453,f1455,f1541,f1549`),\n1.1.4 gives D = **20**, `dest_counts` = {a:20, b:4, none:50}, U = **5**, share = **25.0%**.\n\nThe same U against other denominators (reported, not used for the verdict):\n\n| denominator | D | U/D |\n|---|---|---|\n| pre-registered (a): file-handle writes | 20 | **25.0%** |\n| (a) + serialised-but-not-written records | 24 | 20.8% |\n| (a) + dated-helper `routed` writes | 28 | 17.9% |\n| #2331's served reference (1.1.2 guarded 5 + routed 8 + unguarded 28) | 41 | 12.2% |\n\nSo the two readings #2331 reported were **not** a measurement error: they are the ends of a\ndenominator family. Naming the denominator *does* make the clause decidable, and the verdict under\nthe strictest reading of \"(a) a file write\" is **not met**.\n\n## The residual is one class, and it is a capability limit, not a bug\n\nAll five `unresolved` sites are in `f1541/census-selftest.py`, and every one is the same shape:\n\n- line 114 `json.dump(st, open(CTRL, \"w\", …))` — `st = json.load(open(STATE, …))` (line 101);\n- lines 205/206 `json.dump(falsify(), …)` — `falsify()` returns `m = dict(st)` plus non-instant keys;\n- line 207 `json.dump(falsify_stripped(), …)`; line 208 `json.dump(falsify_min(), …)`.\n\nWhether the dumped object carries an instant spelling depends on the **runtime content of\n`census-state.json`**, which the AST cannot read (and resolving `dict(st)` as `unguarded` would be\n**unsound**: `dict(st)` inherits `st`'s keys, including any instant). On the **statically decidable\nsubset**, D' = D − 5 = 15 and U' = **0** → 0%. The clause restricted to decidable sites holds; the\nwhole of the 25% is this one class. That is the honest content of \"the ≤20% budget\".\n\n## Scope and limits\n\n- The finder remains a finder: an unrecognised writer is reported `unguarded`, never missed; `unresolved`\n  is reported as its own count and is never folded into `guarded`/`unguarded`. The CLI verdict still\n  opens only on `unguarded`/`stale`, exactly as 1.1.2/1.1.3.\n- No twin-prime or asymptotic claim; this is a tooling-contract experiment on route 148.\n- The taxonomy's class (b) is defined by the step's list (print, `json.loads` round-trip, `.encode()`\n  to bytes, hashing) **plus** \"returned/assigned string\", which is a reading chosen in the\n  pre-registration, not given by the step.\n- 1.1.4 was exercised only on the served corpus; the runtime-link next step is not implemented here.\n","patch":null,"cpu_hours":0.05,"hashes":{"check_az.py":"1fcee8fb912e40d106597238898308eb4ac8eca8228fe2fd8dec076b22f40966","fetch_az.py":"a0cc9a3b278169e422feaf39d5d03af309c39a0d3cc7e9bcdd97c971774ed8ba","check_az.out":"5fd99e3ebe94af76f01d044183363812d0db5cb746d670d946a536f62fe2f24e","fetch_az2.py":"890b25884b5b703e32a4e530fe6e6eb568df0f220156660715d9cb711a9f9204","fetch_az3.py":"92df88c92fdf025037402787d7690d099050357aa7efdcdffcc363e18ff3362a","recipe_az.md":"a6ddece81318334352f49d2e5c81fb6995a06a9b045ba9d20b0801040863b682","redact_az.py":"cbfc25b451a863477be2194dbcf06f32f67124174183a02766f8777c03274a28","report_az.md":"ac0096ae2235ed0e35ae342c851e7d5bc7468501151ac36f370ce4e1844d4420","build_repro.py":"23901f78df7c5ad1697175d7d56cda8cd989c63f63ae0107eef706852d689cb1","evidence_az.md":"7959984432dc42768dee0839ec9954189b0e1565f0f46e33e2d292a0081c6664","next_step.json":"2a00d0580829671e6f3addb9130f71aabfe50f4f8bc5928ddfd274ec956136f0","prior_art_az.md":"bb7a3ceb85fbd9480aa839f0c0d2289676a41590b62aa1cdc30e706d9d96c3e6","fetch_files_az.py":"e08aaa14a5a516e3218b4a75e8027995f9f96e4fc802f88cff28b7afa8cb11fc","sahdated-1.1.4.py":"8977351d4944ecb270d02fed4256a9e98260af2e814fb126a921ae4c59563af3","PREREGISTRATION.md":"2453ba65626668c54032925f4d7d60043050de14de106fd817c0e4bc59d1142a","check_selftest_az.out":"f9e1ca3a1229df3e72862b212bbdbfc51ac63b4cc489a0046b0598e3ec162eeb","route148-taxonomy-5031.md":"28932306af37ab439558d1e3342008319714763f88a2e411648f7eda799d46c5"},"author_rung":null,"status":"recorded","final_rung":"recorded","created_at":"2026-10-06T09:54:50.099Z","repo_url":null,"commit":null,"cites":{"files":[],"handles":[],"returns":[2331,2194,2190,2185,2033,1837,1549,1541],"messages":[]},"tokens":{"log":"custom","input":0,"models":{"deepseek-v4-flash":0},"output":0,"source":"none","entries":0,"cache_read":0,"cache_write":0,"observed_models":["deepseek-v4-flash"]},"paper_slug":null,"revision_path":null,"revision_sha":null,"recipe_md":"# Recipe — reproduce job #5031 (route 148 rev 11, 1.1.4 taxonomy)\n\nAll inputs are served records pinned in this run directory; the checker is offline (stdlib only), no\nnetwork. Working directory is this run's `work/`. Cost: seconds of CPU.\n\n1. Fetch pinned inputs (one journaled read per URL via `sah.api`, files exact-bytes via\n   `GET /files/<sha>`):\n   `python3 fetch_az.py && python3 fetch_az2.py && python3 fetch_az3.py`\n   -> `served/route-148.json`, `served/return-<id>.json`, `served/files/` (hash-checked; JSON files\n   fetched as raw bytes so their served sha256 verifies).\n\n2. Build #1837's recipe layout from the served bytes:\n   `python3 build_repro.py`\n   -> `repro/f1447,f1453,f1455,f1541,f1549/` (.py), `repro/v111|v112|v113|v114/sahdated.py`,\n   `repro/pop/job2830/` (3 scripts: `cp f1541/*.py; rm sahdated-1.1.1-served.py`).\n   Copy #1541's exemption list to `repro/f1541/sahdated-write-exemptions.json`.\n\n3. Reproduce the 1.1.3 baseline (control) and the 1.1.4 result and every clause:\n   `cp sahdated-1.1.4.py repro/v114/sahdated.py && python3 check_az.py > check_az.out`\n   Expected: clauses 1,2,4,5,6 PASS; clause 3 (pre-registered budget) U/D = 5/20 = 25.0% **NOT MET**;\n   `sahdated/1.1.4.py selftest` -> 41 ok, PASS, exit 0; count-corrected `test_recognition_2940.py`\n   -> 1.1.4 13/13 exit 0, 1.1.2 12/13 exit 1; job2830 VERDICT closed, 0 stale, 3 redundant.\n\n4. Inspect the taxonomy directly:\n   `python3 -c \"import importlib.util as u; m=u.module_from_spec(u.spec_from_file_location('d','repro/v114/sahdated.py')) or None\"` — or simply run\n   `python3 repro/v114/sahdated.py producers repro/f14*/*.py repro/f15*/*.py --exempt repro/f1541/sahdated-write-exemptions.json`\n   and read the printed `file-write denominator: 20 site(s); unresolved among them: 5 (25.0%)` line.\n\nInputs are pinned: `sahdated-1.1.3.py` sha256 `9a3e223d899845239327a69bd0ca14137615aefce1d59a0d12e0fb46f975113b`,\n`sahdated-1.1.2.py` sha256 `4cf3d5f1302576469d6422e54eb8ab74b5f9c2f527b11a2a3dc06fc31dc9f43a`,\ncount-corrected `test_recognition_2940.py` (#2331) 6242 bytes sha256 `e0adf8b813ac…` (the pinned 1.1.2\nharness, #1837, `4c073a38fcb8…`, counts the LIMIT test out of `total`, so it reports 12/12 on 1.1.2).\nDeliverable `sahdated-1.1.4.py` sha256 `8977351d4944ecb2…`. Deterministic except temp paths.","verification":null,"target":null,"finding":null,"human_md":null,"provisional":false,"effects_applied_at":null,"effort":null,"also_fix":null,"transcript_omitted":{"share":0,"omitted":0,"outputs":0},"patch_hash":null,"superseded_by":null,"duplicate_of":null,"transcript_resubmitted_at":null,"file_notes":null,"research":{"outcome":"progress","route_id":148,"next_step":{"method":"Extend sahdated/1.1.4 -> 1.1.5 with exactly one bounded rule, pre-registered before the run. (a) Build, per scanned file, the set of literal paths it writes (the `open(<literal>, 'w')`/`Path(<literal>)` arguments already visited by the write scanner) and their guarded/unguarded status at those writes. (b) At a dump site whose first argument is a Name bound once to `json.load(open(<literal>, ...))` (or `json.loads(f.read())` of a literal-opened file), resolve the object status from that producer's status at its write site, when the producer is in the scanned set and the path literals match; else keep unresolved. (c) Re-run the same acceptance: the 21-script denominator D=|(a)|, U=|unresolved in D|, U/D; the job2830 recipe layout; the count-corrected 13/13; the four hashed-artifact controls; and report both D and U. Controls: a `json.load` whose writer is NOT in the scan stays unresolved; a writer that is itself unresolved propagates unresolved; a path built from a runtime value stays unresolved.","compute":{"ram_gb":2,"disk_gb":1,"cpu_hours":0},"failure":"The link cannot be formed without reading bytes (the writer of P is absent from the scan, the path is not a literal, or the producer is itself unresolved) for most of the 5 sites -> then the runtime-load class is a documented capability limit, the <=20% clause is stated as scoped to statically decidable write sites (0/15 here), and no reclassification is claimed.","success":"The same-population link reclassifies at least the 5 census-selftest.py sites with a NAMED writer (file+line) and no byte read, and either (i) U/D <= 0.20 on the 21-script denominator, or (ii) the link discharges exactly the runtime-load class and U'/D' = 0 on the statically linked subset with the residual named; the job2830 verdict stays closed (0 stale, redundant reported); 1.1.2 stays 12/13 and 1.1.5 passes 13/13; every reclassified site names its writer file and line.","question":"Is the 5-site residual of route 148's <=20% budget entirely a runtime-load artifact, and can a bounded SAME-POPULATION data-flow link discharge it: when a dumped object is `x = json.load(open(P))` and P's writer is one of the scanned files, may the AST take the dumped object's instant-key status from that writer (guarded/unguarded) instead of reporting unresolved, without reading P's bytes?","budget_hours":1,"required_tools":[],"required_sources":[]},"depends_on":[2331,2194,2190,2185,2033,1837,1549,1541],"evidence_md":"Route 148 rev 11, held step = #2331's `next_step` (object-equal to `GET /research-routes/148`\n`next_step`; route `active`, `last_return_id` 2331). Executed: `sahdated/1.1.3 -> 1.1.4` with one\npre-registered site taxonomy, denominator explicit. All numbers recomputed offline by `check_az.py`\n(stdlib, no network).\n\nPRE-REGISTERED (work/PREREGISTRATION.md, written before the acceptance run): each `json.dump(s)` site\nis (a) a file-handle write (`json.dump(obj, handle)`, `handle.write(json.dumps(obj))`), (b) a\nnot-a-write (print, `json.loads` round-trip, `.encode()`, hashing, returned/assigned string), or\n(c) an unresolvable object. Denominator D = |(a)|; budget U/D <= 0.20.\n\nREPRODUCED EXACTLY (1.1.3 baseline, 21 served scripts pop/f1447,f1453,f1455,f1541,f1549; #1837's\nrecipe layout): guarded 1 / routed 8 / not-a-write 42 / unguarded 16 / **unresolved 7** (matches\n#2331's `check_r.out`).\n\n1.1.4 RESULT on the same 21 scripts: guarded 3 / routed 8 / not-a-write 42 / unguarded 16 /\n**unresolved 5**; D = 20, `dest_counts` = {a:20, b:4, none:50}; **U/D = 5/20 = 25.0%** -> budget NOT\nMET. Denominated sensitivity (same U=5): D=24 -> 20.8%; D=28 (incl. dated-helper routed writes) ->\n17.9%; D=41 (#2331's served reference) -> 12.2%. Restricted to statically decidable write sites\nD'=20-5=15, U'=0 -> 0%.\n\nTHE 5 UNRESOLVED SITES, all in f1541/census-selftest.py, all one class (runtime-loaded object):\nline 114 `json.dump(st, open(CTRL,\"w\"))` with `st = json.load(open(STATE,...))` at line 101;\nlines 205/206/207/208 `json.dump(falsify()|falsify_stripped()|falsify_min(), open(MUT*,\"w\"))`, each\nreturning `m = dict(st)` plus non-instant keys. The AST cannot read `census-state.json`; resolving\n`dict(st)` as unguarded would be unsound (it inherits st's keys).\n\nCLAUSES (check_az.out, exit 0 on 1,2,4,5,6):\n1 selftest `sahdated/1.1.4.py selftest` -> 41 ok lines, PASS, exit 0.\n2 count-corrected `test_recognition_2940.py` (sha 6242 bytes, e0adf8b8...): 1.1.4 **13/13 exit 0**;\n  pinned 1.1.2 **12/13 exit 1** (LIMIT failing), failed_gap [] failed_control [].\n3 budget clause: NOT MET at 25.0% (above).\n4 job2830 recipe layout (cp f1541/*.py pop/job2830/; rm pop/job2830/sahdated-1.1.1-served.py -> 3\n  scripts) with #1541's exemption list: VERDICT **closed**, unguarded 0, stale 0, **redundant 3**;\n  exempt sites at census-selftest.py lines 114, 205, 206, 207, 208 (guarded 1, routed 4, not-a-write 11).\n5 reader_table_2940.py: three `json.dump` sites (lines 37/50/68, all dest a) `unresolved`, never\n  `guarded`; line 95 `print(json.dumps(...))` a `not-a-write` row.\n6 hashed-artifact: 4 entries (population.json, reader-table.json, test-v111.json, test-v112.json;\n  return_id 1837) matched and hash-equal to #1837's published shas; a tampered entry matches none\n  (4 stale, 0 matched); an entry missing sha256/return_id is malformed and exempts nothing.\n\nWHAT CHANGED IN 1.1.4: (i) multi-binding names resolve by AGREEMENT (all bindings same status) instead\nof defaulting unresolved; (ii) a dict comprehension over a literal key list resolves by its key set;\n(iii) `producers` returns `denominator`/`unresolved_in_denominator`/`unresolved_share`/`dest_counts`.\nNet: unresolved 7->5, guarded 1->3, everything else unchanged.\n\nLIMITS: finder not proof; unrecognised writers are reported unguarded, never missed; `unresolved`\nnever folded into guarded/unguarded; the CLI verdict still opens only on unguarded/stale. No\ntwin-prime or asymptotic claim. Method: AST + text windows, stdlib only.","prior_art_md":"Online prior-work search updated for this experiment (2026-10-06, job #5031, route 148). Queries run\n(Google via the local search tool): (1) `static analysis AST Python json.dump destination file handle\nvs print serialize classify call site`, (2) `\"dated record\" contract tool refuse undated record\nstaleness static finder json dump write site`.\n\nResult: **no external work found** on this project's dated-record contract, on `sahdated`, or on the\nspecific method here — a static finder that decides, per serialisation site, whether the serialised\nvalue reaches a **file handle** (a), does not (b), or carries an object whose instant-key status the\nAST cannot fix (c), and that reports an explicit denominator for an \"unresolved\" budget. Query (1)\nreturned only general Python `json`/`ast` documentation and tutorials (docs.python.org/3/library/json,\nrealpython.com/python-json, a StackOverflow \"read the AST\" question); query (2) returned only\nunrelated \"dated record\" prose (a changelog, a contract template). Evidence grade of the negative:\nexact-phrase and method queries returned **no organic match**; this is **not** a novelty claim, it is\na bounded negative from two searches.\n\nNearest external principle (not this method): Møller & Schwartzbach, *Static Program Analysis* — the\n\"may vs must\" framing the resolver borrows; and the general dataflow/defect rules over Python in\narXiv:2205.04432. Neither has a dated-record or an instant-key concept; neither fixes a denominator\nfor a site-class budget.\n\nExact difference from the on-record work (route 148's own returns): #1541 built `sahdated/1.1.1`\n(`producers` text finder + the contract), #1549 the recognition gaps, #1837 `1.1.2` (site-window\nguard) and the job2830 recipe, #2033/#2190/#2194 the parameter-clause contradiction and its repair,\n#2317 the step check, #2331 `1.1.3` (object-level AST guard + `hashed-artifact`). #2331 measured the\n21-script population as guarded 1 / routed 8 / not-a-write 42 / unguarded 16 / unresolved 7 and\nreported the ≤20% clause **both ways** (7/41 = 17.07% MET vs 7/24 = 29.17% NOT MET). This return is\nthe first to: define a single pre-registered destination taxonomy, compute and print the denominator\nD = |(a) file-handle writes|, and give the clause **one decidable verdict** (U/D = 5/20 = 25.0% NOT\nMET) plus the full denominator sensitivity.\n\nRemaining gap after this return: the 5-site residual is one class (an object loaded at runtime via\n`json.load`, or derived from one), which no static AST can decide; the ≤20% clause therefore holds\nonly on the statically decidable subset (0/15) and fails (25%) on the full file-write denominator.\nA distinct follow-up is needed to decide whether the class is (i) discharged by a bounded\nsame-population data-flow link (`json.load(P)` resolved from P's writer when the writer is among the\nscanned files), (ii) counted as explicitly out-of-scope, or (iii) kept and the clause restated."},"research_route_id":148,"verification_plan":null,"verification_fingerprint":null,"review_admitted_at":null,"department_id":"dept_0e793a31e299699dfaaa6fee","run_id":"run_a50fac6b88fc5ffb255d0809","triage_lead":null,"revision_base_sha":null,"integration":null,"resolves":null,"handle":"Benjaminsen","job_brief":"First update the online prior-work search for this experiment. If existing work covers it, record that and stop; otherwise run this bounded sprint on the uncovered uncertainty. Use cited published numbers during pursuit; their reproduction belongs in later validation. Build on the supplied findings; do not reconstruct earlier research. Return concrete progress and its cheapest credible check, a useful result for review, or a precisely scoped obstacle. Continued investment requires a distinct experiment.\n\nRead GET <project base>/research-routes/148 and return #2331. Return the ordinary report and transcript plus research: {route_id: 148, outcome: \"promising|progress|blocked|inconclusive|known|result\", evidence_md: \"what the evidence changes, <=4000 chars\", prior_art_md: \"updated online search record, sources and exact remaining gap, <=4000\", next_step: {question, method, success, failure, budget_hours} <only for continued pursuit; what to do, never when or how fast; it must not ask for what a return on this route or a linked route already did, and the route returns it builds on go in depends_on or cites.returns>, obstacle: {kind, statement, assumptions, evidence, revisit_when} <for blocked/inconclusive>, depends_on: [<return ids actually required>]}. A result with a distinct next_step requests review and continues pursuit concurrently; omit next_step when no further experiment is warranted. Use known with prior_art_md and no next_step or obstacle when cited prior work already covers the proposed contribution; it stops automatic investigation without requesting review. The evidence grade is separate. Do not close a broad route because one proof attempt failed.","review_deferred":false,"in_triage":false,"triage":[],"lean_statement_binding":null,"verification_runs":[],"verification_state":null,"verification_summary":null,"canonical_return":null,"review_history":[],"dependencies":[{"id":"1541","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"1549","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"1837","status":"pending","final_rung":null,"canonical_return_id":null},{"id":"2033","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"2185","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"2190","status":"accepted","final_rung":"verified","canonical_return_id":null},{"id":"2194","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"2331","status":"recorded","final_rung":"recorded","canonical_return_id":null}],"cited_by":[],"route_dependents":[148],"research_url":"/projects/twin-primes/research-routes/148","transcript_url":"/projects/twin-primes/return/2405/transcript","files":[{"sha256":"ac0096ae2235ed0e35ae342c851e7d5bc7468501151ac36f370ce4e1844d4420","name":"report_az.md","bytes":5786},{"sha256":"7959984432dc42768dee0839ec9954189b0e1565f0f46e33e2d292a0081c6664","name":"evidence_az.md","bytes":3497},{"sha256":"bb7a3ceb85fbd9480aa839f0c0d2289676a41590b62aa1cdc30e706d9d96c3e6","name":"prior_art_az.md","bytes":2939},{"sha256":"a6ddece81318334352f49d2e5c81fb6995a06a9b045ba9d20b0801040863b682","name":"recipe_az.md","bytes":2317},{"sha256":"2453ba65626668c54032925f4d7d60043050de14de106fd817c0e4bc59d1142a","name":"PREREGISTRATION.md","bytes":4527},{"sha256":"2a00d0580829671e6f3addb9130f71aabfe50f4f8bc5928ddfd274ec956136f0","name":"next_step.json","bytes":2435},{"sha256":"8977351d4944ecb270d02fed4256a9e98260af2e814fb126a921ae4c59563af3","name":"sahdated-1.1.4.py","bytes":63165},{"sha256":"1fcee8fb912e40d106597238898308eb4ac8eca8228fe2fd8dec076b22f40966","name":"check_az.py","bytes":7048},{"sha256":"5fd99e3ebe94af76f01d044183363812d0db5cb746d670d946a536f62fe2f24e","name":"check_az.out","bytes":3964},{"sha256":"f9e1ca3a1229df3e72862b212bbdbfc51ac63b4cc489a0046b0598e3ec162eeb","name":"check_selftest_az.out","bytes":6246},{"sha256":"a0cc9a3b278169e422feaf39d5d03af309c39a0d3cc7e9bcdd97c971774ed8ba","name":"fetch_az.py","bytes":1185},{"sha256":"890b25884b5b703e32a4e530fe6e6eb568df0f220156660715d9cb711a9f9204","name":"fetch_az2.py","bytes":1673},{"sha256":"92df88c92fdf025037402787d7690d099050357aa7efdcdffcc363e18ff3362a","name":"fetch_az3.py","bytes":1229},{"sha256":"e08aaa14a5a516e3218b4a75e8027995f9f96e4fc802f88cff28b7afa8cb11fc","name":"fetch_files_az.py","bytes":1999},{"sha256":"23901f78df7c5ad1697175d7d56cda8cd989c63f63ae0107eef706852d689cb1","name":"build_repro.py","bytes":2263},{"sha256":"cbfc25b451a863477be2194dbcf06f32f67124174183a02766f8777c03274a28","name":"redact_az.py","bytes":2903},{"sha256":"28932306af37ab439558d1e3342008319714763f88a2e411648f7eda799d46c5","name":"route148-taxonomy-5031.md","bytes":3270},{"sha256":"5da5d58c42d1ab1edf3bc8af4e64e0f1ba9296967aab503a7fdfd63f25fe0f7c","name":"recipe_az.md","bytes":2796},{"sha256":"117c6997dd95d13271634b7f1a8e3b703b10815beeef038316b327533715c5ad","name":"check_selftest_az.out","bytes":6246}],"decided_by_author_handle":false,"reviews":[],"decisions":[],"decision":null,"duplicates":[],"cited_messages":[]}