diff --git a/research/bit-profile-pair-audit/EXPECTED.json b/research/bit-profile-pair-audit/EXPECTED.json new file mode 100644 index 0000000000..50da9100d9 --- /dev/null +++ b/research/bit-profile-pair-audit/EXPECTED.json @@ -0,0 +1,81 @@ +{ + "a0": 0.001733, + "base_word": { + "decoder_constant": 63, + "live": 28416, + "objective": 5122.839536792, + "path": "research/e8-bit-p111/data/bitE8mut-p111.json.gz", + "pr": 555, + "profile": { + "1": 1321, + "2": 1342, + "3": 80, + "4": 47, + "5": 102, + "6": 10, + "7": 18 + }, + "rank_mass": 5129, + "shipped_c": "1733052823330162099157/1000000000000000000000000" + }, + "n_legal_pairs_min": 9800, + "pair_search": { + "best_delta": 0.0, + "n_pairs_min": 350000 + }, + "pins": { + "research/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/engines/moment.py": "81cbc864e106418fc7854322746f72180cb8110ff39f74450a3b8d55a82c1482", + "research/e8-bit-p111-tuned/tune/EXPECTED.json": "b9f0e5ca038abe837b0007c8fe006f366a6f02009244ac57705a8a200e2301f4", + "research/e8-bit-p111-tuned/tune/bitE8mut-p111-tuned.json.gz": "e3e301e62bc2b41dbf1ceac0acf3d35824ebeab1848c5a2142d4577b109da52f", + "research/e8-bit-p111-tuned/tune/moves.json": "a113933002239eb2dd32726bd572ba8ca41b5bce0d438327dd770754c8d5e0f4", + "research/e8-bit-p111-tuned/tune/tune.py": "bdaf632852c514b257bcb1b81004a942fc022ab876565b4e5f6ff5a038d323c2", + "research/e8-bit-p111-tuned/tune/wlib.py": "a37fdf3cdf5f62945c2a90193401c0e9edc9dd3cda8d8cb36a3b9c329ebe4dbc", + "research/e8-bit-p111/data/bitE8mut-p111.json.gz": "1bc3c53d4baf4927c6a00c339ea3975516471a48074d4d97c6addaded2a4d858" + }, + "pipeline": { + "L": 9, + "T": 32, + "W": 28416, + "deficit": 10272, + "idle_remainder": { + "2": 13920, + "4": 14208, + "42": 288, + "6": 14208, + "7": 21312 + }, + "m": 64 + }, + "pr589_moves": [ + [ + "A", + 2028, + 79 + ], + [ + "A", + 2076, + 517 + ] + ], + "tuned_word": { + "decoder_constant": 63, + "live": 28416, + "n_candidates": 9347, + "n_neutral": 9263, + "objective": 5122.83186992, + "path": "research/e8-bit-p111-tuned/tune/bitE8mut-p111-tuned.json.gz", + "pr": 589, + "profile": { + "1": 1323, + "2": 1342, + "3": 79, + "4": 44, + "5": 102, + "6": 11, + "7": 19 + }, + "rank_mass": 5129, + "shipped_c": "1733427039589844234749/1000000000000000000000000" + } +} \ No newline at end of file diff --git a/research/bit-profile-pair-audit/LICENSE b/research/bit-profile-pair-audit/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/research/bit-profile-pair-audit/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/research/bit-profile-pair-audit/NOTICE.md b/research/bit-profile-pair-audit/NOTICE.md new file mode 100644 index 0000000000..48c6e0349a --- /dev/null +++ b/research/bit-profile-pair-audit/NOTICE.md @@ -0,0 +1,28 @@ +# NOTICE + +`research/bit-profile-pair-audit/` is a research note and exact audit contributed under the +repository's Apache-2.0 license (see `LICENSE`). + +## Predecessor work + +* **PR #555 (eumemic)** — the punctured R439 bit word, its generator, checkers, pricing pipelines and + package structure. The base word `research/e8-bit-p111/data/bitE8mut-p111.json.gz` is read unchanged. +* **PR #543 (eumemic)** — the R420 L3 skeleton (keepers read by targets, then rewritten in phase B) + that #555 stacks on, and the interleaved scalar-interface lemma. +* **PR #545 (DreamingOfClouds)** — the punctured star unit (nine lines neither sources nor targets), + the decoder constant 63 at v = 111, and the deficit identity `m W - rank_mass = T(2Kv - L cst)`. +* **PR #510** — the nine-stage pricing chain (#463 template, 32 replicas, #442 hosting). +* **PR #589 (DreamingOfClouds)** — the two A-section transports audited here, and the tuner + (`tune/tune.py`, `tune/wlib.py`) whose move class this audit prices exactly. +* **PR #620 (GamingPuzzled) and PR #631 (vectorsss)** — the decoder-side bounds (`63/111` optimal for + star label decoders under puncturing), which are orthogonal to the reframing class audited here. + +`code/replay.py` and `code/bitprof.py` were written for this note and share no code with the pinned +dependencies; `code/stateprof.py` and `code/search.py` drive the pinned tuner's move enumeration and +price everything on the exact paid-profile objective. + +## AI disclosure + +Substantial AI assistance was used in preparing this contribution (DeepSeek Harness, deepseek-flash +model). Every claim in `verify.py` is a deterministic exact-arithmetic check against files pinned by +sha256 on the stated base commit, and the numbers in `README.md` are the values those checks assert. diff --git a/research/bit-profile-pair-audit/README.md b/research/bit-profile-pair-audit/README.md new file mode 100644 index 0000000000..7c9420e530 --- /dev/null +++ b/research/bit-profile-pair-audit/README.md @@ -0,0 +1,170 @@ +# The bit paid profile is the whole bit supplier, and the reframing class is exhausted at #589 + +This note prices a bit word from its **paid profile alone**, and then uses that to run an exhaustive +audit of the merged bit supplier. It adds no κ: at the current frontier the bit side does not bind. +It is a scoped exact result about one move class on one word, plus a reusable exact pricer. + +Base commit: `66849e1475c930fd7732b1a0067ffee7e1e95f60`, rebased onto `29218749`; every pinned input +is byte-identical on both. +Objects: PR #555's punctured R439 word (`research/e8-bit-p111/`) and PR #589's tuned word +(`research/e8-bit-p111-tuned/tune/`), both unchanged on main. + +## 1. What is new + +### 1.1 The paid-profile duality + +Let the nine-stage bit pipeline's paid profile be `n = (n_r)`: for each elementary paid climb of +dimension jump `r`, one unit. Let `m` be the pipeline modulus, `W` the live port-register count, and + + M := sum_r r * n_r (rank mass) + D := m*W - M (deficit) + +**Fact.** The certified saving `c` of the word is the unique `a > 0` with + + Psi(a) := sum_r n_r * r * ((m/r)^a - 1) = D. + +*Proof.* The pipeline's `moment`/`certify` pair (`.../engines/moment.py`) finds the root of +`S(a) = sum_r (r n_r)/(m W) * (m/r)^a = 1`. Multiplying by `mW` and subtracting `M` gives `Psi(a) = D`; +`Psi` is strictly increasing on `a > 0` because `(m/r)^a` is, and `r <= m` for every paid rank. +∎ + +Since `Psi(a) = m^a G(a) - M` with `G(a) = sum_r n_r r^(1-a)`, and both `m^a` and `G` are increasing +in `a`, the following is immediate and is what makes search tractable: + +**Corollary.** For **any** fixed `a0 > 0`, the certified saving is a strictly decreasing function of +the single weighted count `G(a0) = sum_r n_r r^(1-a0)`. Rank-profile search is therefore a +one-dimensional linear-objective problem, and a candidate word can be priced in `O(#gates)` with +integer arithmetic only — no root finding and no floating point. + +**Verified exactly.** `code/bitprof.py` re-derives `c` from the profile with its own rational +`ln`/`exp` interval bounds (no repository engine, no floating point). For both words the lower +endpoint of the resulting `10^-24` bracket is *exactly* the shipped 24-digit value: + +| word | shipped `c` | bracket from the profile equation | +|---|---|---| +| #555 base, R439 | `1733052823330162099157/10^24` | lower endpoint equal | +| #589 tuned, R439 | `1733427039589844234749/10^24` | lower endpoint equal | + +Only the **nine-stage** price is used here. The eleven-stage pipeline runs the same pricer on its own +profile (`research/e8-bit-p111-tuned/tune/EXPECTED.json` records both); nothing in this note depends on +the eleven-stage numbers. + +The shipped values include the pipeline's inherited bad-envelope surcharge (32·m² rank-one fallback +calls per paid child at `10^-16`), which is `Psi(a) + 32 m^2 (sum_r n_r) m^a / 10^16 = D` here. The +unsurcharged root is strictly larger by `2.01e-12`, i.e. the surcharge is *not* negligible at 24 +digits; the verifier checks both roots. Reporting the surcharge explicitly is the only correction to +a naive reading of "the certified saving is the root of the moment equation". + +### 1.2 The objective decomposes over registers + +`G` is a sum of per-register contributions: a register's cost depends only on the operations that +touch it. Hence + +* the objective delta of one transported operation is the sum of the deltas of the two registers it + touches, and +* **a `k`-operation improvement requires the `k` operations to share registers.** + +The second point is what makes a *complete* two-move search affordable: at the fixed point the 9,347 +nominated moves reduce to 6.5·10^5 register-adjacent pairs instead of ~4.4·10^7. + +### 1.3 The audit + +Move class (the merged tuner's, `research/e8-bit-p111-tuned/tune/tune.py`): single-operation transport +with reframing under exact commutation and frame nesting, plus Steinberg 3→2. All prices below are on +the **exact** objective `G(a0)`, `a0 = 0.001733`. + +| check | result | +|---|---| +| nominated single moves, #589 tuned word | 9,347 | +| strictly improving single moves | **0** | +| exactly cost-neutral single moves (a flat plateau) | 9,263 | +| improving Steinberg 3→2 moves (671 triples) | **0** | +| legal `(slot, frame)` pairs examined (3,064 operations) | 9,933 | +| operations where the nominated frame is *not* exact-objective optimal | **0** | +| complete register-adjacent two-move neighbourhood (`--full`) | 645,900 pairs | +| best two-move delta | **0**, exactly | + +So the merged word is a fixed point of the *complete* nominated one-move neighbourhood, and the +nomination itself loses nothing at the frame level: the tuner's per-slot frame choice (made with its +own proxy cost) coincides with the exact-objective argmin frame for every operation. Two moves do not +escape the plateau either. + +**Positive control.** Steepest descent on the exact objective, with a full re-nomination at every +step, started from #555's base word, applies **exactly two** moves — `A[2034] -> slot 2028, frame 79` +(PR #589's hoist) and `A[2041] -> slot 2076, frame 517` (PR #589's sink) — and lands on the tuned +word's profile and objective (`5122.831869920` from `5122.839536792`). The machinery rederives #589 +independently rather than being told about it. + +**What this is worth.** It closes the reframing avenue for the merged bit supplier at one and two +moves. Any further bit saving from this word must come from a mechanism outside the class — geometry, +decoder constant, helper count, or hosting — not from moving gates. It also gives the exact marginal +exchange rate for any future move: `dc/c = -(dG/G) / (a (ln m - E[ln r]))`, so a candidate can be +priced before it is built. + +## 2. What this does not claim + +* Not an optimality theorem over bit words. It says nothing about words outside the R439/punctured + family, nor about three-or-more-move escapes of this plateau. +* The two-move search is complete **for the nominated move set**; the verifier separately certifies + that the nominated set already contains the exact-objective best frame for every operation, which is + the only place the nomination could have lost a candidate. +* No κ change. The bit side is not binding: at the merged #589 word `c = 0.0017334`, above the complex + caps cited by the current frontier. This is headroom bookkeeping only. +* The tuner's own proxy objective is *not* identical to the exact objective (largest absolute + discrepancy `1.645e-5` on this word, at `A[2076]`); only its argmin agrees here. The audit prices + everything on the exact objective for that reason. +* Every interface that #543, #555 and #589 retain remains assumed: all-size compilation, + mutable-basis and common-label realization, pooled-cell hosting, the compact/residual, + precision/tape/exact-recovery and analytic contracts. This is a finite exact computation, not a + formal proof of integer multiplication. + +## 2b. Concurrent work, and what it says about this result + +The repository moved while this audit was prepared. Its pinned inputs are unchanged on the current +`main` (`29218749`), and these concurrent contributions are consistent with — and sharpen — the +conclusion above: + +* **PR #1043** improves the *same* #589 word by a mechanism outside the reframing class: it deletes + `helper470` by reading `source77` at a caller boundary, giving R438 and + `c = 0.001734176288479865766692` (from `0.001733427039589844234749`). That is a register/helper + rewrite, not a gate transport, which is exactly where §1.3 says the remaining headroom has to come + from. +* **PR #1040, #1047** reduce complete ADD counts on a different R439 lineage (post-PR915/PR967), and + **#1045** crosses PR941's disjoint-pair floor with a four-helper fusion. Their words, their + accounting (complete ADDs) and their move classes differ from the #589 word and the transport class + audited here, so none of them is a counterexample to the fixed point above; the helper-shear and + fusion mechanisms are further examples of the "outside the class" route. +* These results are cited from their own packages and were not re-run here. + +## 3. Reproduce + +```sh +make bit-profile-pair-audit-verify # ~6 min: every check except the pair search +make bit-profile-pair-audit-full-verify # ~35 min: adds the complete two-move neighbourhood +``` + +Python 3.11+ with `numpy` (used by the pinned tuner). No C++ toolchain, Boost, Lean or network access +is needed: every input is a pinned file on main and every check is exact integer or rational +arithmetic. + +## 4. Files + +* `code/bitprof.py` — the profile→saving equation, with own rigorous rational `ln`/`exp` bounds. +* `code/replay.py` — independent word replay and paid profile (rank over the rationals, not modulo a + prime), sharing no code with `wlib.py`. +* `code/stateprof.py` — the exact objective on the flat elementary-op state and the register + decomposition. +* `code/search.py` — the one-move scan, the exact steepest descent, and the complete register-adjacent + two-move search. +* `verify.py`, `EXPECTED.json` — the checks and every number. + +## 5. Credit and disclosure + +The base word, its generator, its checkers, its pricing pipelines and the tuner are PR #555 (eumemic), +building on PR #543 (eumemic; R420 L3 skeleton), PR #545 (DreamingOfClouds; punctured star unit) and +PR #510. The two transports audited here are PR #589 (DreamingOfClouds). The deficit identity +`m W - rank_mass = T(2Kv - L cst)` is PR #545's. GamingPuzzled's #620 and vectorsss's #631 bound the +decoder side (`63/111`), which is orthogonal to the reframing class audited here. + +Prepared with substantial AI assistance (DeepSeek Harness / deepseek-flash). All checks in `verify.py` +are deterministic and were run against the pinned files on main. diff --git a/research/bit-profile-pair-audit/code/bitprof.py b/research/bit-profile-pair-audit/code/bitprof.py new file mode 100644 index 0000000000..65dbc22873 --- /dev/null +++ b/research/bit-profile-pair-audit/code/bitprof.py @@ -0,0 +1,153 @@ +"""Exact paid-profile arithmetic for bitE8 bit words. + +Two facts are used. + +(1) The certified saving c of a bit supplier with modulus m, live port-register count W and paid + profile n (n_r = number of elementary paid climbs of rank r) is the unique root a > 0 of + + Psi(a) := sum_r n_r * r * ((m/r)^a - 1) = D, D := m*W - sum_r r*n_r . + + Equivalently, since Psi(a) = m^a * G(a) - M with G(a) = sum_r n_r r^(1-a) and M = sum_r r n_r, + and both m^a and G are strictly increasing in a, for ANY fixed a0 the certified saving is a + strictly decreasing function of the single weighted count G(a0) = sum_r n_r r^(1-a0). + Rank-profile search is therefore a linear-objective problem, and a candidate word can be priced + exactly in O(#gates) with no root finding. + +(2) G decomposes over registers: a register's contribution depends only on the gates that touch it, + so the objective delta of a gate transport is the sum of the deltas of the two registers it + touches, and a k-move improvement requires the moves to share registers. + +The root of (1) is certified here with exact rational interval arithmetic (own ln/exp bounds): +no floating point and no dependence on the repository's moment engine is used. +""" +from fractions import Fraction as F +from collections import Counter + +# ---------------------------------------------------------------- rigorous rational ln / exp +def _atanh_ln_bounds(z, terms=60): + """1 <= z < 3/2 -> rational interval for ln z via 2*atanh(t), t=(z-1)/(z+1) <= 1/5.""" + t = (z - 1) / (z + 1) + s = F(0); term = t + for n in range(terms): + s += term / (2 * n + 1) + term *= t * t + rem = 2 * term / ((2 * terms + 1) * (1 - t * t)) + return 2 * s, 2 * (s + rem) + +def ln_bounds(x, terms=60): + """x rational >= 1 -> (lo,hi) with lo <= ln x <= hi.""" + assert x >= 1 + k = 0 + while x >= 2: + x /= 2; k += 1 + j = 0 + if x >= F(3, 2): + x /= F(3, 2); j = 1 + lo, hi = _atanh_ln_bounds(x, terms) + l32 = _atanh_ln_bounds(F(3, 2), terms) + l43 = _atanh_ln_bounds(F(4, 3), terms) + ln2_lo, ln2_hi = l32[0] + l43[0], l32[1] + l43[1] + return k * ln2_lo + j * l32[0] + lo, k * ln2_hi + j * l32[1] + hi + +def exp_bounds(y, terms=60): + """0 <= y <= 1 -> (lo,hi) with lo <= exp(y) <= hi.""" + assert 0 <= y <= 1 + s = F(0); term = F(1) + for n in range(terms): + s += term + term *= y / (n + 1) + return s, s + term / (1 - y / (terms + 1)) + +def pow_bounds(base, a, terms=60): + """base rational >= 1, a rational in [0,1] -> (lo,hi) with lo <= base**a <= hi.""" + assert base >= 1 and 0 <= a <= 1 + llo, lhi = ln_bounds(base, terms) + return exp_bounds(a * llo, terms)[0], exp_bounds(a * lhi, terms)[1] + +# ---------------------------------------------------------------- the fee functional +def ln_table(ranks, m, terms=34): + """ln bounds for each distinct base m/r; computed once, reused for every a.""" + return {r: ln_bounds(F(m, r) if F(m, r) >= 1 else 1 / F(m, r), terms) for r in ranks} + +def fee_bounds(n, m, a, lnb, terms=34): + """rational interval for Psi(a) = sum_r n_r * r * ((m/r)^a - 1) using precomputed ln bounds""" + lo = F(0); hi = F(0) + for r, c in n.items(): + if not c: continue + llo, lhi = lnb[r] + if F(m, r) >= 1: + plo = exp_bounds(a * llo, terms)[0]; phi = exp_bounds(a * lhi, terms)[1] + else: + u = exp_bounds(a * llo, terms)[1]; v = exp_bounds(a * lhi, terms)[0] + plo, phi = 1 / u, 1 / v + w = c * r + lo += w * (plo - 1); hi += w * (phi - 1) + return lo, hi + +def fee_float(n, m, a): + import math + return sum(c * r * (math.exp(a * math.log(m / r)) - 1) for r, c in n.items() if c) + +def profile_deficit(n, m, W): + return m * W - sum(r * c for r, c in n.items()) + +def certify_c(n, m, W, digits=24, terms=34): + """exact rational bracket [q/10^digits, (q+1)/10^digits] for the certified saving c.""" + D = profile_deficit(n, m, W) + assert D > 0, 'non-positive deficit' + lnb = ln_table(set(n), m, terms) + lo, hi = F(0), F(1, 10) + assert fee_bounds(n, m, hi, lnb, terms)[0] > D > fee_bounds(n, m, lo, lnb, terms)[1] + # coarse float narrowing, then exact rational bisection on the grid q/10^digits + piv = sorted(n); lo_f, hi_f = 0.0, 0.1 + for _ in range(80): + mid = (lo_f + hi_f) / 2 + if fee_float(n, m, mid) < D: lo_f = mid + else: hi_f = mid + scale = 10 ** digits + span = 10 ** (digits - 6) + qlo = max(0, int(lo_f * scale) - span); qhi = min(scale // 10, int(hi_f * scale) + span) + assert qlo < qhi + while qhi - qlo > 1: + mid = (qlo + qhi) // 2 + if fee_bounds(n, m, F(mid, scale), lnb, terms)[1] < D: qlo = mid + else: qhi = mid + return F(qlo, scale), F(qhi, scale), D + +def weighted_count(n, a0): + """G(a0) = sum_r n_r r^(1-a0) as a float (for search ordering)""" + return sum(c * (r ** (1.0 - a0)) for r, c in n.items()) + +# ---------------------------------------------------------------- the shipped (surcharged) pricer +SURCHARGE_DEN = 10 ** 16 # 32*m^2 rank-one fallback calls per paid child, charged at rank one + +def surcharge_num(n, m): + return 32 * m * m * sum(n.values()) + +def fee_bounds_bad(n, m, a, lnb, terms=34): + lo, hi = fee_bounds(n, m, a, lnb, terms) + llo, lhi = lnb['_m'] + v = exp_bounds(a * llo, terms)[0]; u = exp_bounds(a * lhi, terms)[1] + K = F(surcharge_num(n, m), SURCHARGE_DEN) + return lo + K * v, hi + K * u + +def certify_c_bad(n, m, W, digits=24, terms=34): + """exact rational bracket for the shipped certified saving c, including the inherited + bad-envelope rank-one fallback surcharge: Psi(a) + 32 m^2 (sum_r n_r) m^a / 10^16 = D.""" + D = profile_deficit(n, m, W) + lnb = ln_table(set(n), m, terms); lnb['_m'] = ln_bounds(F(m), terms) + assert fee_bounds_bad(n, m, F(1, 10), lnb, terms)[0] > D > fee_bounds_bad(n, m, F(0), lnb, terms)[1] + K = surcharge_num(n, m) + lo_f, hi_f = 0.0, 0.1 + for _ in range(100): + mid = (lo_f + hi_f) / 2 + if fee_float(n, m, mid) + K * (m ** mid) / SURCHARGE_DEN < D: lo_f = mid + else: hi_f = mid + scale = 10 ** digits; span = 10 ** (digits - 6) + qlo = max(0, int(lo_f * scale) - span); qhi = min(scale // 10, int(hi_f * scale) + span) + assert qlo < qhi + while qhi - qlo > 1: + mid = (qlo + qhi) // 2 + if fee_bounds_bad(n, m, F(mid, scale), lnb, terms)[1] < D: qlo = mid + else: qhi = mid + return F(qlo, scale), F(qhi, scale), D diff --git a/research/bit-profile-pair-audit/code/replay.py b/research/bit-profile-pair-audit/code/replay.py new file mode 100644 index 0000000000..75f8a09dd7 --- /dev/null +++ b/research/bit-profile-pair-audit/code/replay.py @@ -0,0 +1,87 @@ +"""Independent word-level replay and paid profile for bitE8/1+mut words. + +Written for this audit; it shares no code with `research/e8-bit-p111-tuned/tune/wlib.py`. Frame +dimensions are ranks over the rationals (exact Fraction Gaussian elimination), not reductions modulo +a prime, so the two implementations agree only if the geometry really is what it is claimed to be. + +The paid profile of a word is the multiset of *ascents*: every register is climbed between frames, +and an ascent of dimension d from frame a to frame b with dim b > dim a is one paid elementary climb +of rank d = dim b - dim a. The certified saving depends on the word only through this multiset, +its modulus m and its live register count W. +""" +from collections import Counter +from fractions import Fraction as F + + +def rank_of(vectors): + """rank over Q of a list of rational vectors""" + rows = [[F(x) for x in v] for v in vectors] + if not rows: + return 0 + ncol = len(rows[0]) + rk = 0 + for c in range(ncol): + piv = next((i for i in range(rk, len(rows)) if rows[i][c]), None) + if piv is None: + continue + rows[rk], rows[piv] = rows[piv], rows[rk] + inv = 1 / rows[rk][c] + rows[rk] = [x * inv for x in rows[rk]] + for i in range(rk + 1, len(rows)): + if rows[i][c]: + f = rows[i][c] + rows[i] = [a - f * b for a, b in zip(rows[i], rows[rk])] + rk += 1 + return rk + + +def frame_dims(word): + return [rank_of([word['lines'][j] for j in f]) if f else 0 for f in word['frames']] + + +def contains(dims_ok, a, b): + return dims_ok[a] <= dims_ok[b] + + +def replay_profile(word, dims=None, check_nesting=True): + """paid profile (dict rank -> count) of the word, in the pipeline's accounting: + D, A, then the retained-total snapshot, then B, then C, then the final climb.""" + dims = dims or frame_dims(word) + n = 2 * word['v'] + word['R'] + mask = [sum(1 << j for j in f) for f in word['frames']] + cur = list(word['start']) + P = Counter() + + def climb(r, f): + a = cur[r] + if a == f: + return + if check_nesting and mask[a] & mask[f] != mask[a]: + raise AssertionError('illegal frame descent: register %d, %d -> %d' % (r, a, f)) + d = dims[f] - dims[a] + if d > 0: + P[d] += 1 + elif d < 0: + raise AssertionError('descending climb') + cur[r] = f + + for sec in ('D', 'A'): + for f, t, ss in word[sec]: + for r in [t, *ss]: + climb(r, f) + tops = [dims[cur[q]] for q in word['ret']] + for f, t, ss in word['B']: + for r in [t, *ss]: + climb(r, f) + for f, t, ss in word['C']: + for r in [t, *ss]: + climb(r, f) + for r, f in enumerate(word['final']): + climb(r, f) + P.update(tops) + return dict(sorted(P.items())), dims + + +def live_count(word, replicas=32): + """live port-register count of the nine-stage bit pipeline: replicas * 2 * K * v, K = 4.""" + return replicas * 8 * word['v'] diff --git a/research/bit-profile-pair-audit/code/search.py b/research/bit-profile-pair-audit/code/search.py new file mode 100644 index 0000000000..ba92a3c73d --- /dev/null +++ b/research/bit-profile-pair-audit/code/search.py @@ -0,0 +1,155 @@ +"""Searches on the exact paid-profile objective. + +Move class (the one the merged tuner uses, PR #589 / research/e8-bit-p111-tuned/tune/tune.py): +single-operation transport with reframing. Each open operation may be lifted out of the flat +elementary-op list and re-inserted at any slot it commutes to, at any catalogue frame that contains +the pre-frames and is contained in the post-frames of its two registers, subject to the retained-total +copy-rank rule. Frame closure frames are created on demand by the frame catalogue. + +Three searches are exposed: + scan_singles - every nominated single move, priced exactly (the complete one-move neighbourhood) + exact_greedy - steepest descent with a full re-nomination at every step + pair_search - complete two-move neighbourhood: by the register decomposition of the objective, + only pairs sharing a register can improve, so for every nominated move M1 every + nominated move on an operation touching a register of M1 is evaluated exactly. +""" +import bisect + + +def nominated(view, best_move, thr=1e9): + """all (delta, q, frame) the tuner nominates for every operation of `view`""" + out = [] + for i in range(len(view.ops)): + c = best_move(view, i, thr=thr, all_=True) + if c: + out.append((i, c)) + return out + + +def scan_singles(T, S, best_move): + """complete nominated one-move neighbourhood, exactly priced. returns (base, [(d, sec, i, q, F)])""" + base = S.objective() + rows = [] + for sec in 'AB': + V = T.view(sec) + for i, cands in nominated(V, best_move): + for (dproxy, q, F) in cands: + from stateprof import apply_move, undo_move + om = apply_move(V, i, q, F) + S.rebuild_z() + d = S.objective() - base + undo_move(V, q, om) + rows.append((d, dproxy, sec, i, q, F)) + return base, rows + + +def all_legal_moves(V, i, commute, best_move): + """every legal (slot, frame) for operation i, not only the proxy's best frame per slot""" + cat = V.cat + ops = V.ops + n = len(ops) + op = ops[i] + f0, t, s = op + lo = i + while lo > 0 and commute(op, ops[lo - 1]): + lo -= 1 + hi = i + while hi < n - 1 and commute(op, ops[hi + 1]): + hi += 1 + + def tl(r): + return [j if j < i else j - 1 for j in V.touch[r] if j != i] + + tt, ts = tl(t), tl(s) + + def frame_of(e): + return ops[e if e < i else e + 1][0] + + starts = sorted({lo} | {e + 1 for e in tt + ts if lo <= e + 1 <= hi} | ({i} if lo <= i <= hi else set())) + out = [] + for k, st in enumerate(starts): + en = (starts[k + 1] - 1) if k + 1 < len(starts) else hi + q = min(max(i, st), en) + + def ctx(lst, r): + kk = bisect.bisect_left(lst, q) + p = frame_of(lst[kk - 1]) if kk > 0 else V.pre[r] + nx = frame_of(lst[kk]) if kk < len(lst) else V.post[r] + return p, nx, kk + + pt, nt, kt = ctx(tt, t) + ps, ns, ks = ctx(ts, s) + low = cat.masks[pt] | cat.masks[ps] + high = cat.masks[nt] & cat.masks[ns] + if low & ~high: + continue + Fs = [int(x) for x in cat.feasible(low, high)] + F0 = cat.closure(low) + if cat.masks[F0] & ~high == 0 and F0 not in Fs: + Fs.append(F0) + for F in Fs: + ok = True + for r, lst, kk in ((t, tt, kt), (s, ts, ks)): + if r in T_ret(V) and kk == len(lst) and F != V.T.cp[r]: + ok = False + if ok: + out.append((q, F)) + return out + + +def T_ret(V): + return V.T.ret + + +def exact_greedy(T, S, best_move, max_steps=200, tol=1e-9): + """steepest descent on the exact objective with a full re-nomination at every step""" + base = S.objective() + applied = [] + for _ in range(max_steps): + _, rows = scan_singles(T, S, best_move) + rows.sort(key=lambda x: x[0]) + if not rows or rows[0][0] >= -tol: + break + d, _, sec, i, q, F = rows[0] + V = T.view(sec) + from stateprof import apply_move + apply_move(V, i, q, F) + S.rebuild_z() + base = S.objective() + applied.append(dict(section=sec, op=i, slot=q, frame=F, delta=d, objective=base)) + return base, applied + + +def pair_search(T, S, best_move, singles, verbose=False): + """complete register-connected two-move neighbourhood, exactly priced""" + from stateprof import apply_move, undo_move + base = S.objective() + best = None + bestinfo = None + npairs = 0 + singles = sorted(singles, key=lambda x: x[0]) + for (d1, dproxy, sec, i, q, F) in singles: + V = T.view(sec) + t, s = V.ops[i][1], V.ops[i][2] + om = apply_move(V, i, q, F) + S.rebuild_z() + V.refresh() + nbr = set() + for r in (t, s): + nbr.update(V.touch[r]) + for j in sorted(nbr): + c2 = best_move(V, j, thr=1e9, all_=True) + if not c2: + continue + for (dproxy2, q2, F2) in c2: + om2 = apply_move(V, j, q2, F2) + S.rebuild_z() + tot = S.objective() - base + undo_move(V, q2, om2) + npairs += 1 + if best is None or tot < best: + best = tot + bestinfo = dict(delta1=d1, section1=sec, op1=i, slot1=q, frame1=F, + op2=j, slot2=q2, frame2=F2, objective1=0.0) + undo_move(V, q, om) + return base, best, bestinfo, npairs diff --git a/research/bit-profile-pair-audit/code/stateprof.py b/research/bit-profile-pair-audit/code/stateprof.py new file mode 100644 index 0000000000..9d0d6df4ab --- /dev/null +++ b/research/bit-profile-pair-audit/code/stateprof.py @@ -0,0 +1,88 @@ +"""Exact paid-profile objective on the flat elementary-op state of a bitE8 word, without rebuilding +the word dictionary, plus the objective decomposition used by the pair search. + +The paid profile of a word is the sum over registers of the weights of that register's frame ascents +through D, A, B, the retained-total snapshot, C (the reverse of the z-destination gates of A then B, +all at the full frame) and final. A register's contribution therefore depends only on the operations +that touch it, so + + * the objective delta of one transported operation is the sum of the deltas of the two registers + it touches, and + * a k-operation improvement requires the k operations to share registers. + +Minimising G(a0) = sum_r n_r r^(1-a0) for any fixed a0 > 0 maximises the certified saving c, because +the certified c is the root of Psi(a) = m^a G(a) - M = D and both m^a and G are increasing in a. +""" +from collections import Counter + + +class StateProf: + """paid profile / objective of the flat op list held in a tune.Tuner""" + + def __init__(self, T, a0=0.001733): + self.T = T + self.V = T.V + self.N = T.N + self.wt = [r ** (1.0 - a0) for r in range(0, 64)] + self.start = list(T.w['start']) + self.final = list(T.w['final']) + self.ret = list(T.w['ret']) + self.dims = T.cat.dim # live list: Cat.closure may append frames + self.full = next(i for i, m in enumerate(T.cat.masks) if bin(m).count('1') == T.V) + self.rebuild_z() + + def rebuild_z(self): + V = self.T.V + self.z = [g for g in self.T.secs['A'] + self.T.secs['B'] if not (V <= g[1] < 2 * V)] + + def profile(self): + T = self.T + dim = self.dims + cur = list(self.start) + P = Counter() + + def climb(r, f): + a = cur[r] + if a == f: + return + d = dim[f] - dim[a] + if d > 0: + P[d] += 1 + cur[r] = f + + for f, t, ss in T.w['D']: + for r in [t, *ss]: + climb(r, f) + for f, t, s in T.secs['A']: + climb(t, f); climb(s, f) + tops = [dim[cur[q]] for q in self.ret] + for f, t, s in T.secs['B']: + climb(t, f); climb(s, f) + fu = self.full + for f, t, s in reversed(self.z): + climb(t, fu); climb(s, fu) + for r, f in enumerate(self.final): + climb(r, f) + P.update(tops) + return dict(sorted(P.items())) + + def objective(self): + return sum(n * self.wt[r] for r, n in self.profile().items()) + + +def apply_move(V, i, q, frame): + """transport op i of view V to slot q at `frame`; returns a token for undo_move""" + op = V.ops.pop(i) + old = (i, op[0]) + op[0] = frame + V.ops.insert(q, op) + V.reindex() + return old + + +def undo_move(V, q, old): + i, f0 = old + op = V.ops.pop(q) + op[0] = f0 + V.ops.insert(i, op) + V.reindex() diff --git a/research/bit-profile-pair-audit/verify.py b/research/bit-profile-pair-audit/verify.py new file mode 100644 index 0000000000..baa118669c --- /dev/null +++ b/research/bit-profile-pair-audit/verify.py @@ -0,0 +1,231 @@ +#!/usr/bin/env python3 +"""Verifier for the bit paid-profile duality and the PR #589 tuned-word audit. + + python3 research/bit-profile-pair-audit/verify.py # cheap checks (~1 min) + python3 research/bit-profile-pair-audit/verify.py --full # adds the complete pair search (~10 min) + +Checks + 1 source pins (sha256) of every file this audit reads from main + 2 independent word replay: paid profile of PR #555's base word and PR #589's tuned word + 3 the profile-to-saving identity: the certified c is the unique root of + Psi(a) = sum_r n_r r((m/r)^a - 1) = D, D = m*W - rank_mass, and the shipped c is bracketed + exactly by rational interval arithmetic + 4 the rank-mass / deficit identity of #545: m*W - rank_mass = 32*(8v - 9*cst) + 5 complete nominated one-move neighbourhood of the tuned word: no strictly improving move + 6 completeness of the nomination: the exact-objective argmin frame equals the nominated frame for + every operation, over every legal (slot, frame) pair + 7 positive control: exact-objective steepest descent from PR #555's base word rediscovers PR #589's + two transports and lands on the tuned word + 8 negative controls + 9 with --full: the complete register-connected two-move neighbourhood +""" +import argparse +import gzip +import hashlib +import json +import os +import sys + +HERE = os.path.dirname(os.path.abspath(__file__)) +ROOT = os.path.abspath(os.path.join(HERE, '..', '..')) +CODE = os.path.join(HERE, 'code') +sys.path.insert(0, CODE) +sys.path.insert(0, os.path.join(ROOT, 'research', 'e8-bit-p111-tuned', 'tune')) +sys.path.insert(0, os.path.join(ROOT, 'research', 'e8-bit-carrier-skeleton', 'code', + 'hub', 'e8-r740-replica32', 'code', 'engines')) + +import replay # noqa: E402 (this package, independent replay) +from fractions import Fraction as F # noqa: E402 +from bitprof import certify_c, certify_c_bad, profile_deficit, fee_float, surcharge_num, SURCHARGE_DEN # noqa: E402 + +EXPECTED = json.load(open(os.path.join(HERE, 'EXPECTED.json'))) +for _k in ('base_word', 'tuned_word'): + EXPECTED[_k]['profile'] = {int(r): n for r, n in EXPECTED[_k]['profile'].items()} +EXPECTED['pipeline']['idle_remainder'] = {int(r): n for r, n in EXPECTED['pipeline']['idle_remainder'].items()} +FAILURES = [] + + +def check(name, ok, detail=''): + print(' %-6s %s%s' % ('PASS' if ok else 'FAIL', name, (' ' + detail) if detail else '')) + if not ok: + FAILURES.append(name) + + +def sha256(path): + return hashlib.sha256(open(path, 'rb').read()).hexdigest() + + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument('--full', action='store_true', help='add the complete two-move neighbourhood') + args = ap.parse_args() + + print('1. source pins') + for rel, want in EXPECTED['pins'].items(): + p = os.path.join(ROOT, rel) + got = sha256(p) if os.path.exists(p) else None + check(rel, got == want, '' if got == want else 'sha256 %s' % got) + + print('2. independent replay of both words') + words = {} + for key in ('base_word', 'tuned_word'): + w = json.load(gzip.open(os.path.join(ROOT, EXPECTED[key]['path']), 'rt')) + P, dims = replay.replay_profile(w) + words[key] = (w, P) + check('%s profile' % key, P == EXPECTED[key]['profile'], + '' if P == EXPECTED[key]['profile'] else str(P)) + check('%s live count' % key, replay.live_count(w) == EXPECTED[key]['live'], + 'live=%d' % replay.live_count(w)) + check('%s rank mass' % key, sum(r * n for r, n in P.items()) == EXPECTED[key]['rank_mass']) + + print('3. profile -> certified saving') + for key in ('base_word', 'tuned_word'): + w, loc = words[key] + P = global_profile(loc) + D = profile_deficit(P, EXPECTED['pipeline']['m'], EXPECTED['pipeline']['W']) + check('%s deficit' % key, D == EXPECTED['pipeline']['deficit'], 'D=%d' % D) + lo, hi, _ = certify_c_bad(P, EXPECTED['pipeline']['m'], EXPECTED['pipeline']['W'], digits=24) + want = F(EXPECTED[key]['shipped_c']) + check('%s certified c bracketed exactly' % key, lo <= want < hi, 'lo=%s' % lo) + check('%s bracket lower endpoint equals shipped c' % key, lo == want, 'lo=%s' % lo) + check('%s bracket width is one grid step' % key, hi - lo == F(1, 10 ** 24)) + # negative control: without the inherited bad-envelope surcharge the root is strictly larger + lo0, hi0, _ = certify_c(P, EXPECTED['pipeline']['m'], EXPECTED['pipeline']['W'], digits=24) + check('%s unsurcharged root is strictly larger (surcharge control)' % key, lo0 > want, + 'unsurcharged lo=%s' % lo0) + + print('4. #545 rank-mass / deficit identity') + for key in ('base_word', 'tuned_word'): + w, loc = words[key] + v, cst = w['v'], EXPECTED[key]['decoder_constant'] + lhs = EXPECTED['pipeline']['m'] * replay.live_count(w) - sum(r * n for r, n in global_profile(loc).items()) + rhs = EXPECTED['pipeline']['T'] * (8 * v - 9 * cst) + check('%s m*W - rank_mass = T(8v - 9*cst)' % key, lhs == rhs, '%d == %d' % (lhs, rhs)) + # negative control: a wrong decoder constant breaks the identity + check('%s wrong cst breaks the identity' % key, + EXPECTED['pipeline']['m'] * replay.live_count(w) - sum(r * n for r, n in global_profile(loc).items()) + != EXPECTED['pipeline']['T'] * (8 * v - 9 * (cst + 1))) + + print('5. complete nominated one-move neighbourhood of the tuned word') + import tune + from stateprof import StateProf, apply_move, undo_move + import search as S_search + tuned = words['tuned_word'][0] + T = tune.Tuner(tuned, a=EXPECTED['a0']) + S = StateProf(T, EXPECTED['a0']) + base_obj, rows = S_search.scan_singles(T, S, tune.best_move) + neg = [r for r in rows if r[0] < -1e-12] + zero = [r for r in rows if abs(r[0]) <= 1e-12] + check('base exact objective', abs(base_obj - EXPECTED['tuned_word']['objective']) < 1e-6, + '%.9f' % base_obj) + check('candidates evaluated', len(rows) == EXPECTED['tuned_word']['n_candidates'], '%d' % len(rows)) + check('no strictly improving single move', not neg, '%d found' % len(neg)) + check('cost-neutral plateau size', len(zero) == EXPECTED['tuned_word']['n_neutral'], '%d' % len(zero)) + # Steinberg 3 -> 2 is also empty at this word + ns = 0 + for sec in 'AB': + V = T.view(sec) + for (case, pl, pk, pq) in tune.find_triples(V): + r = tune.eval_steinberg(V, pl, pk, pq) + if r and r[0] < -1e-12: + ns += 1 + check('no improving Steinberg 3->2 move', ns == 0, '%d found' % ns) + + print('6. completeness of the nomination over all legal (slot, frame) pairs') + mism = 0 + nlegal = 0 + for sec in 'AB': + V = T.view(sec) + for i in range(len(V.ops)): + cands = tune.best_move(V, i, thr=1e9, all_=True) + if not cands: + continue + nom_best = min(cands, key=lambda x: x[0]) + exact_best = None + for (q, Fr) in S_search.all_legal_moves(V, i, tune.commute, tune.best_move): + if q == i and Fr == V.ops[i][0]: + continue + om = apply_move(V, i, q, Fr) + S.rebuild_z() + d = S.objective() - base_obj + undo_move(V, q, om) + nlegal += 1 + if exact_best is None or d < exact_best[0]: + exact_best = (d, q, Fr) + if exact_best and (exact_best[1], exact_best[2]) != (nom_best[1], nom_best[2]): + mism += 1 + check('legal (slot, frame) pairs examined', nlegal >= EXPECTED['n_legal_pairs_min'], + '%d (>= %d; the exact count depends on closure frames created earlier in the run)' + % (nlegal, EXPECTED['n_legal_pairs_min'])) + check('nominated frame is exact-objective optimal for every operation', mism == 0, '%d mismatches' % mism) + + print('7. positive control: exact steepest descent from the base word') + bword = words['base_word'][0] + T2 = tune.Tuner(bword, a=EXPECTED['a0']) + S2 = StateProf(T2, EXPECTED['a0']) + obj2, applied = S_search.exact_greedy(T2, S2, tune.best_move) + check('steepest descent applies exactly two moves', len(applied) == 2, '%d' % len(applied)) + check('moves are the PR #589 hoist and sink', + [list(x) for x in [(a['section'], a['slot'], a['frame']) for a in applied]] == EXPECTED['pr589_moves'], + str([(a['section'], a['slot'], a['frame']) for a in applied])) + check('descends to the tuned word objective', abs(obj2 - EXPECTED['tuned_word']['objective']) < 1e-6, + '%.9f' % obj2) + check('descends to the tuned word profile', S2.profile() == EXPECTED['tuned_word']['profile'], + str(S2.profile())) + + print('8. controls') + # 8a the pricer is sensitive to a rank-mass-preserving profile perturbation whose objective + # direction is known by hand: 3 climbs of rank 1 -> 1 climb of rank 3 (mass 3 -> 3) + P = global_profile(words['tuned_word'][1]) + P2 = dict(P); P2[1] -= 3; P2[3] = P2.get(3, 0) + 1 + lo1, _, _ = certify_c_bad(P, 64, 28416, digits=24) + lo2, _, _ = certify_c_bad(P2, 64, 28416, digits=24) + dG = (3 * 1.0 ** (1 - EXPECTED['a0'])) - (1 * 3.0 ** (1 - EXPECTED['a0'])) + check('mass-preserving perturbation lowers G and raises c', dG > 0 and lo2 > lo1, + 'dG=%+.6e %s -> %s' % (dG, lo1, lo2)) + # 8b the identity is not vacuous: a perturbed live count gives a different root + check('pricer responds to a perturbed deficit', + certify_c_bad(P, 64, 28417, digits=12)[0] != certify_c_bad(P, 64, 28416, digits=12)[0]) + # 8c the exact objective orders the two words the way the certified saving does + check('base word profile differs from the tuned profile', + EXPECTED['base_word']['profile'] != EXPECTED['tuned_word']['profile']) + check('base word objective is strictly worse than the tuned objective', + EXPECTED['base_word']['objective'] > EXPECTED['tuned_word']['objective'], + '%.9f > %.9f' % (EXPECTED['base_word']['objective'], EXPECTED['tuned_word']['objective'])) + check('and the base word therefore has the smaller certified saving', + F(EXPECTED['base_word']['shipped_c']) < F(EXPECTED['tuned_word']['shipped_c'])) + + if args.full: + print('9. complete register-connected two-move neighbourhood') + # a fresh tuner so the pair count does not depend on closure frames created by steps 5-6 + T4 = tune.Tuner(tuned, a=EXPECTED['a0']) + S4 = StateProf(T4, EXPECTED['a0']) + _, rows4 = S_search.scan_singles(T4, S4, tune.best_move) + b, best, info, npairs = S_search.pair_search(T4, S4, tune.best_move, rows4) + check('register-adjacent pairs evaluated', npairs >= EXPECTED['pair_search']['n_pairs_min'], + '%d (>= %d)' % (npairs, EXPECTED['pair_search']['n_pairs_min'])) + check('best two-move delta', abs(best - EXPECTED['pair_search']['best_delta']) < 1e-12, + '%.9e' % best) + check('no improving pair', best >= -1e-12, '%.9e' % best) + + print() + if FAILURES: + print('FAILED: %s' % ', '.join(FAILURES)) + return 1 + print('all checks passed') + return 0 + + +def global_profile(local): + """the nine-stage paid profile from the word-level (per-column) profile: + T*L replicas of the local profile plus the frozen idle remainder.""" + T = EXPECTED['pipeline']['T'] + L = EXPECTED['pipeline']['L'] + P = {r: T * L * n for r, n in local.items()} + for r, n in EXPECTED['pipeline']['idle_remainder'].items(): + P[r] = P.get(r, 0) + n + return P + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/research/pr1048-certified-repair/COVERAGE.md b/research/pr1048-certified-repair/COVERAGE.md new file mode 100644 index 0000000000..dd5d34d1cb --- /dev/null +++ b/research/pr1048-certified-repair/COVERAGE.md @@ -0,0 +1,113 @@ +# Bounded transport coverage + +`coverage.py` reconstructs a finite transport domain independently of the +PR1048 enumerator and the PR589 nomination heuristic. The legacy implementations +are imported only by an observational comparison adapter. The supplier word, +its frames, and the inherited pipeline contracts remain inputs, not new proofs +of the multiplication theorem. + +Run from the repository root: + +```sh +python3 research/pr1048-certified-repair/coverage.py --output /tmp/COVERAGE.json +``` + +Compare the resulting JSON with `evidence/COVERAGE.json`, excluding the separate +`timing` field. The bounded run takes approximately 30 seconds on the review +machine. It does not run the historical 645,900-pair search. + +## Declared domain + +The first-operation identities are the original tuned-word indices A[2028], +A[2076], A[2129], A[281], and B[1]. For each, the reconstruction visits every +literal insertion slot reachable through commuting elementary ADDs. At each +slot it visits every permitted frame from the original 636-frame catalogue, +plus the rational span closure of the lower-frame requirement. This is not +enumeration of all subspaces or all future catalogue enlargements. + +Nesting is checked by root-line set containment. The resulting last A frame of +each retained register must equal its initial COPY frame, including when the +transport removes that register's previous last touch. This restriction is +specific to A. Frame dimensions and lower-bound closures use independently +implemented rational elimination. + +At most three first states are selected per operation: its earliest literal +move, its first original nomination in slot/frame order, and its first +alternative frame (or latest literal move). Duplicate selected states are +removed. This yields ten first states. For **each** selected state, every +operation sharing a register with the first operation is considered in **both** +sections, with every legal literal slot and frame in the stated frame domain. +The receipt retains stable identities, current indices, frame masks, candidate +digests, and the concrete selected states. + +No first state is discarded because it has the same profile as another state. +Only exact integer profile values are cached within a fixed state's fixed +touch context. Disjoint second operations and Steinberg moves are outside this +bounded domain; no pruning theorem about them is asserted. + +## Result + +| Quantity | Count | +| --- | ---: | +| Legal first moves | 9,950 | +| Selected first states | 10 | +| Post-first second-operation rows | 150 | +| Legal second moves | 125,698 | +| Cross-section second moves | 9,424 | +| Distinct signed local profile deltas | 24 | +| Certified strictly better transitions | 0 | +| Exact profile ties | 56,685 | +| Certified strictly worse transitions | 78,963 | +| Unresolved transitions | 0 | + +Counts of priced transitions combine the first and second domains; they count +paths and may include repeated profiles or algebraically equivalent words. +Every one of the 24 distinct deltas has a representative checked by full +integer-profile replay, in addition to the local register calculation. Every +selected first state is also checked by full replay. Pricing uses the certified +reference-root bracket and includes the inherited surcharge through +`pricing.ReferencePricer`, rather than a fixed-exponent float comparison. + +## What the comparisons establish + +The original `pair_search` takes its second view from the first move's section. +The receipt includes six concrete cross-section pairs whose individual moves +are original nominations but whose pairing is omitted by that loop. One is +A[281] to slot 280 at frame 127 followed by B[133] to slot 138 at frame 507. +That pair has the identical paid profile and identical certified root. The +omission is a coverage limitation, not an improving counterexample. + +Two neutral first transports of B[1] at frame 217, to slots 0 and 367, have +different bounded reachable final-profile sets. The slot-0 state admits the +additional signed local delta `{1: 4, 2: -2}`; the slot-367 state does not in the +enumerated adjacent domain. The receipt supplies a concrete second move for +this difference. This additional delta is strictly worse than the baseline. +Three other compared equal-profile first-state pairs have different literal +candidate domains but identical reachable profile sets. These distinctions +prevent a stronger claim about objective improvements based solely on path +counts or candidate digests. + +The chosen initial A[2028] and A[2076] domains include frame/touch classes not +nominated by the immediate heuristic. This does not show that the nominated +frame loses the immediate optimum, nor that an omitted frame yields an +improving continuation. The historical verifier's global-per-operation check +does not supply a proof of per-slot optimality or continuation dominance. +Some `original_all_legal_missing_frame_touch_classes` entries are literal +transports equivalent to the original itinerary, such as A[2076] to slot 2077 +at unchanged frame 517; these are not presented as lost improvements. + +No legacy `all_legal_moves` output was illegal in this actual bounded word +domain. Its two COPY-rule defects are instead demonstrated on explicitly +synthetic local fixtures: removing the last retained A touch can expose an +incorrect COPY frame, and applying the A-only COPY restriction to B can reject +a valid move. The tuned word has no B operations touching retained registers, +so the latter defect is not claimed to omit a move on this word. + +The semantic controls mutate proof-relevant contracts: resulting COPY frame, +section eligibility, and reuse of continuation domains by profile equality. +They adapt the Brian Ross/Krenn falsification methodology to this finite +audit. They do not transfer credit for the supplier, the original mathematics, +or the maintainers' existing counterexamples. Supplier/tuner credit remains +with DreamingOfClouds and the cited predecessors, the original profile audit +with flemhhh, and the reference-bracket repair with woklerx. This contribution +was prepared by Brian Ross with substantial OpenAI Codex assistance. diff --git a/research/pr1048-certified-repair/NOTICE.md b/research/pr1048-certified-repair/NOTICE.md new file mode 100644 index 0000000000..32d305baf8 --- /dev/null +++ b/research/pr1048-certified-repair/NOTICE.md @@ -0,0 +1,40 @@ +# Attribution and license + +New work: Brian Ross, with substantial OpenAI Codex assistance, including +separate GPT-6 Astra agents at xhigh for bounded coverage and independent +review/rerun. New code and documentation follow this repository's Apache-2.0 +license. Separate-agent review is not independent human peer review. + +Original search, profile replay and rational interval routines are flemhhh's +PR1048 at `07730cd8302c378607259a9ad0efb73e0b57a2f2`. The entire research +package is retained byte-for-byte in `research/bit-profile-pair-audit/`, with +its original LICENSE, NOTICE and substantial DeepSeek assistance disclosure. +Its historical exactness and completeness claims are disputed evidence, not +claims endorsed by this wrapper. + +Endpoint-certified three-way bisection and default-precision false-bracket +examples are woklerx's PR1182 at `0213b8911bfeefd5c81ddf320bac6a0fb7e86215`. +Its package is retained byte-for-byte in `research/profile-bracket-audit64/`, +including original vendor license, notices, provenance and AI disclosure. +The pricing adapter imports that repair rather than claiming a new bisection. + +The arbitrary-fixed-exponent counterexample is Douglas Colkitt's existing +maintainer audit, with OpenAI Codex assistance, in +`research/community-batch1099-audit/check_pr1048_counterexample.py`. Its +reproduction here is not a new discovery. The corrected reference-root +comparison also responds to the maintainer's explicit deferred-1048 request. + +The word, source geometry and supplier remain credited to eumemic's PR555/543, +DreamingOfClouds's PR545/589, the PR510 pricing chain and all retained notices. +No source ownership, supplier construction or multiplication-bound credit is +transferred by this audit. + +Methodological adaptation, **no copied code**: + +- Brian Ross's [Krenn independent verifier](https://github.com/brianross93/Krenn/blob/ab446724a61a293a3268c63b9e9e721c6a360561/experiments/krenn_quantum_graph/independent_verifier.py) + and [semantic corruption controls](https://github.com/brianross93/Krenn/blob/ab446724a61a293a3268c63b9e9e721c6a360561/tests/test_krenn_artifacts.py): reconstruct semantics independently; reject corrupted claims even when container hashes are refreshed; require complete input inventories. +- Brian Ross's [ThetaTwist exact arithmetic](https://github.com/brianross93/thetatwist/blob/b4ec6c13088b89961834cc675b44b81372199b02/src/thetatwist/core.py): exact rational identities, explicit residuals and bounded claim scope. ThetaTwist is MIT licensed, copyright Brian Ross 2026. Its source is read as a methodological reference and is not vendored or copied. + +A root `LICENSE` could not be retrieved for the pinned Krenn tree (404); no +Krenn implementation is redistributed or adapted at the code level. Its +independent-reconstruction and semantic-control methods are credited above. diff --git a/research/pr1048-certified-repair/OVERLAP.json b/research/pr1048-certified-repair/OVERLAP.json new file mode 100644 index 0000000000..3a10ebf2db --- /dev/null +++ b/research/pr1048-certified-repair/OVERLAP.json @@ -0,0 +1,233 @@ +{ + "scope": "Read-only snapshot, not atomic; targeted PR1048 query plus latest30 PR title/body results through1190. No claim to exhaustive all-repository overlap search.", + "prs": [ + { + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1182", + "number": 1182, + "state": "open", + "merged": false, + "mergeable": true, + "draft": false, + "body": "The frozen PR1048 pricer returns two false root brackets at its unchanged\ndefault34-term/24-digit settings. For explicit rank-one profiles with m=9 and\nW=10^64, both the surcharged and unsurcharged functions return\n`[1/20-10^-24,1/20]`, although an exact tenth-power integer inequality proves\nthe root is strictly greater than1/20. Neighboring profiles with one additional\ncall have roots on the opposite side and receive the same original bracket.\n\nThis turns the maintainer's already recorded undecided-sign finding into\nreproducible false certificates. The package retains the unchanged original\ncode/notice at07730cd, proves that float nomination already encloses these roots,\nand supplies a bounded tri-state bisection that certifies both endpoint signs\nor explicitly returns unresolved. An independent integer-only checker proves\nthe root intervals without importing the pricer or repair.\n\nValidation: both original defaults, four paired fixtures, one ordinary-profile\ncontrol, capped/equality/initial-unknown cases, ten rejection controls, source\ninventory checks, optimized and assertion-enabled replay. Reproduction and\nactual outputs are recorded in README.md and VALIDATION.json.\n\nThese are abstract arithmetic profiles; no realizable supplier or selected\nPR589/PR1094 failure is claimed. PR1048's search, ordering and neighborhood\nclaims remain deferred. Credit to flemhhh's pricer and Douglas Colkitt's prior\nfinding; retained source lineage and notices included. @woklerx with substantial\nOpenAI Codex assistance, Apache-2.0.\n", + "title": "Audit: default-precision false PR1048 root brackets and a certified repair", + "base": "main", + "base_sha": "1b59b624d21924f8e3537cdc1ac52d3be6eda2fe", + "head": "research/sprint30-r34-s64", + "head_sha": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "head_repo_id": 1417268671, + "head_repo_full_name": "woklerx/integer-mult-bounds", + "merge_commit_sha": "963c51b6c66c752f03f1be8e3ecc121e11dbf0e3", + "user": { + "login": "woklerx", + "name": "woklerx", + "email": null, + "avatar_url": "https://avatars.githubusercontent.com/u/338878655?v=4", + "id": 338878655 + }, + "requested_reviewers": null, + "requested_team_reviewers": null, + "created_at": "2026-10-13T19:47:44Z", + "updated_at": "2026-10-13T19:47:44Z", + "closed_at": null, + "merged_at": null, + "commits": 1, + "changed_files": 15, + "additions": 1170, + "deletions": 0, + "display_url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1182", + "display_title": "Audit: default-precision false PR1048 root brackets and a certified repair" + }, + { + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1048", + "number": 1048, + "state": "open", + "merged": false, + "mergeable": false, + "draft": false, + "body": "## What this is\n\n**Research note + independent verification. No \u03ba claim; the bit side does not bind.**\n\nIt prices a bit word from its **paid profile alone**, and then uses that to run an exhaustive audit of\nthe merged bit supplier (PR #589's tuned R439 word). Everything is exact integer/rational arithmetic\nagainst files pinned by sha256 at `66849e1475c930fd7732b1a0067ffee7e1e95f60`.\n\nNew material:\n\n1. **The paid-profile duality.** The certified saving `c` of a bit word is the unique `a > 0` with\n `Psi(a) := sum_r n_r r((m/r)^a - 1) = D := m*W - rank_mass`. Equivalently, for any fixed `a0`,\n `c` is a strictly decreasing function of the single weighted count `G(a0) = sum_r n_r r^(1-a0)`.\n Rank-profile search is therefore a *linear-objective* problem and a candidate word costs `O(#gates)`\n to price with no root finding.\n Verified by re-deriving `c` from the profile with an independent rational `ln`/`exp` interval\n implementation (`code/bitprof.py`): the lower endpoint of the resulting `10^-24` bracket is\n **exactly** the shipped value for both #555 and #589\n (`1733427039589844234749/10^24`). The shipped values include the pipeline's inherited bad-envelope\n surcharge (`32 m^2 (sum n) m^a / 10^16`), which moves the root by `2.01e-12` \u2014 two units on the\n 24-digit grid, so it cannot be dropped; the verifier checks both roots.\n\n2. **The objective decomposes over registers**, so a `k`-move improvement requires the `k` moves to\n share registers. That is what makes a complete two-move search affordable.\n\n3. **The audit.** On the merged #589 word, priced on the exact objective:\n\n | check | result |\n |---|---|\n | nominated single moves | 9,347 |\n | strictly improving single moves | **0** |\n | cost-neutral plateau | 9,263 |\n | improving Steinberg 3\u21922 moves (671 triples) | **0** |\n | legal `(slot, frame)` pairs over 3,064 operations | 9,933 |\n | operations whose nominated frame is not exact-objective optimal | **0** |\n | complete register-adjacent two-move neighbourhood (`--full`) | 645,900 pairs |\n | best two-move delta | **0**, exactly |\n\n **Positive control:** steepest descent on the exact objective from PR #555's base word applies\n exactly two moves \u2014 PR #589's hoist (`A[2034] \u2192 slot 2028, frame 79`) and sink\n (`A[2041] \u2192 slot 2076, frame 517`) \u2014 and lands on the tuned word's profile and objective. The\n machinery rederives #589 rather than being told about it.\n\n## What it is worth\n\nIt closes the reframing avenue for the merged bit supplier at one and two moves: any further bit\nsaving from this word has to come from a mechanism outside the class (geometry, decoder constant,\nhelper count, hosting), not from moving gates. It also gives the exact marginal exchange rate\n(`dc/c = -(dG/G)/(a(ln m - E[ln r]))`) so a future move can be priced before it is built, and it\nindependently corroborates the fixed point that PR #589's tuner claims, on a different objective\nimplementation.\n\n## Concurrent work (refreshed 2026-10-13)\n\nRebased onto `main` @ `29218749`; every pinned input is byte-identical on both commits, and both\n`make bit-profile-pair-audit-verify` and the unittest module were re-run on the rebased tree.\n\nThese landed while this note was being prepared, and they are **consistent with** rather than\ncounterexamples to the fixed point above:\n\n* **#1043** improves the *same* #589 word by a mechanism outside the reframing class \u2014 deleting\n `helper470` via a caller-boundary read of `source77`, giving R438 and\n `c = 0.001734176288479865766692`. That is a helper/register rewrite, exactly the \"outside the class\"\n route the audit points at.\n* **#1040 / #1047** cut complete ADD counts on a different R439 lineage (post-PR915/PR967), and\n **#1045** crosses PR941's disjoint-pair floor with a four-helper fusion. Different words, different\n accounting, different move classes.\n* Those results are cited from their own packages and were **not** re-run here.\n\n## Scope and limits\n\n* Finite, exact audit of two specific words and one move class. Not an optimality theorem over bit\n words, and **not** an exclusion of three-or-more-move escapes of the plateau.\n* The two-move search is complete for the nominated move set; the nomination's completeness at the\n frame level is separately certified (0 of 3,064 operations disagree).\n* The tuner's proxy objective is *not* identical to the exact objective (largest absolute discrepancy\n `1.645e-5` on this word); only its argmin agrees, which is why everything here is priced exactly.\n* No \u03ba change; bit headroom only. Nine-stage price only.\n* Every interface that #543, #555 and #589 retain remains assumed. This is not a Lean proof of\n integer multiplication.\n\n## Reproduce\n\n```sh\nmake bit-profile-pair-audit-verify # ~6 min, all checks except the pair search\nmake bit-profile-pair-audit-full-verify # ~35 min, adds the complete two-move neighbourhood\n```\n\nNo C++ toolchain, Boost, Lean or network access; only Python 3.11+, `numpy` (for the pinned tuner) and\nthe pinned files on main.\n\n## Files\n\n`research/bit-profile-pair-audit/` (README, `verify.py`, `EXPECTED.json`, `code/`), plus\n`tests/test_bit_profile_pair_audit.py` and two Makefile targets. `upstream/` untouched; no unrelated\nregeneration.\n\n## Credit\n\nThe word, its generator, checkers, pipelines and tuner are PR #555 (eumemic) on PR #543 / #545\n(DreamingOfClouds) and #510; the two transports audited are PR #589 (DreamingOfClouds); the deficit\nidentity is PR #545's. The decoder-side bounds of #620 (GamingPuzzled) and #631 (vectorsss) are\northogonal to the class audited here.\n\nSubstantial AI assistance (DeepSeek Harness, deepseek-flash) is disclosed in `NOTICE.md`.\n", + "title": "Research: the bit paid profile is the whole bit supplier \u2014 exact pricer, and the reframing class is exhausted at #589 (no \u03ba claim)", + "base": "main", + "base_sha": "2921874911956718fcaaaf9396fe8267b3cfa9f0", + "head": "bit-profile-pair-audit", + "head_sha": "07730cd8302c378607259a9ad0efb73e0b57a2f2", + "head_repo_id": 1417528339, + "head_repo_full_name": "flemhhh/integer-mult-bounds", + "merge_commit_sha": null, + "user": { + "login": "flemhhh", + "name": "flemhhh", + "email": null, + "avatar_url": "https://avatars.githubusercontent.com/u/332786938?v=4", + "id": 332786938 + }, + "requested_reviewers": null, + "requested_team_reviewers": null, + "created_at": "2026-10-13T17:12:53Z", + "updated_at": "2026-10-13T17:18:47Z", + "closed_at": null, + "merged_at": null, + "commits": 1, + "changed_files": 11, + "additions": 1368, + "deletions": 0, + "display_url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1048", + "display_title": "Research: the bit paid profile is the whole bit supplier \u2014 exact pricer, and the reframing class is exhausted at #589 (no \u03ba claim)" + } + ], + "screened": [ + { + "number": 1190, + "title": "Research consolidation: authenticate PR279's complete parent inventory (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1190" + }, + { + "number": 1189, + "title": "Tooling: 1.50x faster P111 RUP checking with identical full replay", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1189" + }, + { + "number": 1188, + "title": "Bit construction: exact five-wire windows reduce composed R439 to 10,492 ADDs", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1188" + }, + { + "number": 1187, + "title": "Research: sharp preserved-frame P104 COPY-drop threshold at 38 punctures (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1187" + }, + { + "number": 1186, + "title": "Tooling: exact frame solver and delivery-rewrite search for gauge44/k8 local words (no new \u03ba)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1186" + }, + { + "number": 1185, + "title": "Research: six-source universal dirty-connector boundary, f(6)=16 (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1185" + }, + { + "number": 1184, + "title": "Tooling: 2.33x faster complete emitted local audit with preserved coverage", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1184" + }, + { + "number": 1183, + "title": "Conditional kappa 0.001675603180601302: mixed entrance providers on T37 owners", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1183" + }, + { + "number": 1182, + "title": "Audit: default-precision false PR1048 root brackets and a certified repair", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1182" + }, + { + "number": 1181, + "title": "Research consolidation: retention receipt and credit for #1015's blocks retained via #1062 (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1181" + }, + { + "number": 1180, + "title": "Structural proof: overcomplete factor-linear E8 decoders retain the puncture copy-cost floor", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1180" + }, + { + "number": 1179, + "title": "Finite bit construction: sparse R439 kernel entrance gauge (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1179" + }, + { + "number": 1178, + "title": "Conditional \u03ba = 0.001675161536733127: X54 slot on #1148's three-demotion k8 word with its T16 owners", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1178" + }, + { + "number": 1177, + "title": "Research: exact arbitrary-mask three-total five-cube boundary (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1177" + }, + { + "number": 1176, + "title": "Add files via uplConditional kappa = 0.001675224519162937: cross-call gap augmentation for three extra kernel islandsoad", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1176" + }, + { + "number": 1175, + "title": "Conditional kappa 0.001674083482880778: whole-owner map at the packin\u2026", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1175" + }, + { + "number": 1174, + "title": "Audit paid overwrite-COPY transposition on selected R480 cleanup", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1174" + }, + { + "number": 1173, + "title": "Research: sharp nine-coordinate threshold for five-subset shared nodes (seed 48)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1173" + }, + { + "number": 1172, + "title": "Conditional \u03ba = 0.001672733678608451: 9-pair whole-helper exchange on child 15", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1172" + }, + { + "number": 1171, + "title": "Research: all-puncture E8 star decoder exclusion and p=56 classification (seed 49, no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1171" + }, + { + "number": 1170, + "title": "Consolidate selected complex stage scales with full primitive pricing", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1170" + }, + { + "number": 1169, + "title": "Conditional \u03ba = 0.001675568675201533: joint entrances with T37 owner packing", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1169" + }, + { + "number": 1168, + "title": "Construction: cap unfinished outputs in dirty fanout", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1168" + }, + { + "number": 1165, + "title": "Certify all-length read barriers in selected complex cleanup", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1165" + }, + { + "number": 1164, + "title": "Recursive interface: four-way port borrowing reduces 56-factor echo from 1568 to 1088 calls", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1164" + }, + { + "number": 1162, + "title": "Independent verification: all eight K492 emitter controls (no new bound)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1162" + }, + { + "number": 1161, + "title": "Exact single-helper dyadic rescaling saves332 complex primitives in selected k8 word", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1161" + }, + { + "number": 1160, + "title": "research: realize PR992 sharp T29 profile with exact bin inventories", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1160" + }, + { + "number": 1159, + "title": "Research: exact modular borrowed-port echoes with endpoint-sized data", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1159" + }, + { + "number": 1158, + "title": "Research construction: exact Hadamard price envelope and 222-call word (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1158" + } + ], + "direct_overlap": "PR1182 reused; bracket repair and default false-bracket fixtures are woklerx's work.", + "adjacent_overlap": "PR1186 exact-frame-toolkit covers complex gauge44/k8 providers; no inspected repair of remaining PR1048 bit-word post-first-move coverage.", + "receipt_created_at": "2026-10-13 20:01:43 UTC", + "query_time": "Fetched earlier in this same task before extensive implementation; exact clock timestamp not separately recorded." +} diff --git a/research/pr1048-certified-repair/PROOF.md b/research/pr1048-certified-repair/PROOF.md new file mode 100644 index 0000000000..d61cb2e062 --- /dev/null +++ b/research/pr1048-certified-repair/PROOF.md @@ -0,0 +1,64 @@ +# Certified comparison at a reference root + +The pipeline is fixed at m=64, W=28416, with n_r=288 p_r+idle_r. +Let N=sum n_r and lambda=32 m^2/10^16=2/152587890625. Its residual is + + F_n(a) = sum_r n_r r (m/r)^a + lambda N m^a - mW. + +All counts must be nonnegative integers, ranks must lie in 1..m, and N>0. +F is continuous and strictly increasing: each first-sum term is nondecreasing, +and the positive surcharge is strictly increasing because m>1. F tends to +infinity. The exact rational test F(0)<0 therefore proves existence and +uniqueness of a positive root. These requirements are checked for every priced +candidate. A failure is explicitly unresolved under the positive-root contract. + +For unchanged idle profile, m, W and replication factor, subtracting residuals +gives the identity, valid at every real a, + + F_candidate(a)-F_reference(a) = 288 m^a J_delta(a), + J_delta(a) = sum_r delta_p[r] r^(1-a) + lambda sum_r delta_p[r]. + +At the actual reference root c, F_reference(c)=0 and 288 m^c>0. Thus +J_delta(c)<0 implies the candidate root is strictly larger, while +J_delta(c)>=0 implies it is no larger. This is a reference-root comparison; +ordering profiles at an arbitrary fixed exponent is not justified. + +The implementation first reuses woklerx's PR1182 bisection, with flemhhh's +original interval oracle. It explicitly rechecks both final signs: +F_reference(L)<01 and a in [L,U], monotonicity gives + + r / exp(U ln r) <= r^(1-a) <= r / exp(L ln r). + +The retained log series gives rational lower and upper bounds for ln r. The +retained positive exponential Taylor series gives rational lower and upper +bounds for exp(x); its entire input interval is explicitly checked in [0,1]. +Reciprocal endpoints are reversed, then rounded outward to a denominator of +10^48. For a negative delta coefficient, multiplication reverses the interval +endpoints again. The surcharge term is exact, including its sign. Consequently +an upper bound below zero certifies BETTER; a lower bound at least zero +certifies WORSE_OR_EQUAL; all other cases are UNRESOLVED. Identical profiles +give an exact zero identity and equal roots. Distinct-profile ties need not be +decidable by this interval method and are not assumed absent. + +For the retained log routine, ln x is range-reduced into powers of two, +3/2, and a residual in [1,3/2), then evaluated with the positive atanh series. +Its remainder bound is conservative (the code adds an extra factor of two). +The exponential remainder uses the geometric majorant for the first omitted +term. No acceptance decision uses floating point. The independent checker +uses separately implemented enclosing arithmetic and direct residual signs. + +# What this proves + +Pricing validates an arithmetic comparison of declared profiles. It does not +prove that an abstract profile is realizable, that moving an operation is +legal, or that a nominated move set is complete. Coverage requires its own +finite domain and exact word/profile reconstruction. Equal price or equal +profile does not imply equal future move neighborhoods. Register-disjoint +pruning requires legality and certified one-move non-improvement hypotheses; +none follows merely from the additive objective. No unrestricted two-move +exhaustion or new multiplication bound is claimed. diff --git a/research/pr1048-certified-repair/README.md b/research/pr1048-certified-repair/README.md new file mode 100644 index 0000000000..14f9315b5c --- /dev/null +++ b/research/pr1048-certified-repair/README.md @@ -0,0 +1,144 @@ +# Local PR1048 repair: certified pricing and bounded continuation coverage + +This package supplies a usable reference-root pricer and an independently +reconstructed bounded move experiment. It does **not** certify PR1048's +advertised 645,900-pair exhaustion or claim a new supplier or kappa. + +The maintainer's existing fixed-exponent counterexample reproduces. At +a=1/2, profile A has the smaller weighted count, yet +root_A < 47/1000 < root_B. This is Douglas Colkitt's prior finding, not ours. +Woklerx's overlapping PR1182 also reproduces: two false brackets at the +original default precision, four fixtures including two neighboring controls, its independent +integer checker, and its fail-closed controls all pass. Its bisection is +reused unchanged and credited, rather than duplicated. + +The new contribution addresses the remaining comparison and coverage gaps: + +- `pricing.py` certifies both PR589 reference endpoint signs and encloses the + surcharge-inclusive signed comparison across the **entire** root bracket. + It reports `BETTER`, `WORSE_OR_EQUAL`, or `UNRESOLVED`; exact profile ties + are identified separately. Signed coefficients reverse interval endpoints. +- `coverage.py` independently reconstructs rational frame geometry, literal + legal slots, stable operation identities, retained COPY constraints, and + integer paid profiles. It recomputes post-first-move domains in both A and B. +- `independent.py` uses a separately written enclosing arithmetic engine, + direct residual endpoint checks, fixed source inventory and semantic + corruptions. It imports neither the primary pricer nor its interval engines + for the arithmetic acceptance decisions. + +## Verified bounded result + +| Quantity | Result | +|---|---:| +| Named first operations | A[2028], A[2076], A[2129], A[281], B[1] | +| Legal literal first moves in their declared frame domain | 9,950 | +| Deterministically selected first states | 10 | +| Adjacent second-operation rows, both sections | 150 | +| Legal literal second moves | 125,698 | +| Cross-section second moves | 9,424 | +| Distinct exact local profile deltas, with full replay representatives | 24 | +| Certified improving occurrences | 0 | +| Certified no-larger-root occurrences | 135,648 | +| Of those, identical-profile exact ties | 56,685 | +| Strictly worse occurrences | 78,963 | +| Unresolved arithmetic occurrences in this bounded experiment | 0 | + +These counts are ordered candidate paths, including commuting transports; +they are not distinct final words. First-state selection and each literal +candidate-set digest are recorded in `evidence/COVERAGE.json`. The frame +domain is the 636 original catalogue frames plus the exact rational span +closure of each slot's lower frame bound. It is deterministic and does not +accumulate unrelated earlier closure frames. It does not contain all possible +subspaces. + +Six concrete pairs have both moves nominated by the original tuner but their +cross-section ordering is omitted by the old pair-search loop. The retained +witnesses are exact profile ties. This does not establish a missed improving +word, or show that equivalent final words cannot occur by other paths. + +Different equal-profile first states can have different literal continuation +domains. The receipt separately records reachable profile-set comparisons; +profile equality alone is not used as a continuation cache key. The old +verifier's one global best candidate per operation does not prove per-slot +equivalence after every first state. + +More concretely, neutral B[1] placements at frame 217 in slots 0 and 367 have +different reachable final-profile sets. From slot 0, transporting B[368] to +slot 92 at its recorded rational closure frame produces delta `{1: 4, 2: -2}`; +that profile is absent from the slot-367 state's declared second domain. It +is strictly worse. Three other equal-profile pairs have different literal +domains but identical reachable profile sets, so path differences alone are +not described as objective losses. + +The retained-total restriction being incorrectly applied to B, and failure to +check the new last A touch after a removal, are demonstrated by small semantic +fixtures. No invalid old `all_legal_moves` candidate was found in the inspected +real-word domain. In particular, this word's B section never touches retained +registers, so the B-rule defect is latent here. Exact whole-profile versus +touched-register deltas are checked on all selected first states and one +representative of every observed final delta class. + +## Reproduce locally + +From the repository root, using Python 3.11+ and the already installed NumPy +required by the original tuner comparison adapter: + +```sh +python3 -I -O -B research/pr1048-certified-repair/run.py --out /tmp/pr1048-repair-fresh +``` + +Use a new output directory. The driver authenticates all 36 mandatory inputs, +regenerates pricing and coverage, then independently checks the **fresh** +receipts. `EXECUTION.json` records commands, interpreter and elapsed times. +The bounded coverage run takes roughly 30 seconds on the development Mac; +this is verifier timing, not a multiplication-runtime claim. No network, +paid service, full search, native compiler or selected-frontier rebuild is +required. A pricing-only run is explicitly labelled as such. + +Predecessor reproductions, run separately and retained in +`evidence/PREDECESSOR-RERUN.json`: + +```sh +python3 -I -B research/community-batch1099-audit/check_pr1048_counterexample.py +python3 -I -B research/profile-bracket-audit64/verify.py +python3 -I -O -B research/profile-bracket-audit64/independent.py +python3 -I -O -B research/profile-bracket-audit64/controls.py +``` + +For another candidate local profile relative to the frozen PR589 baseline, +instantiate `ReferencePricer` once and call `compare_delta` with the exact +signed integer histogram change. Reuse the result only for pricing equal +deltas, not for identifying search states. Fixed m, W, replication and idle +profiles are essential; a changed pipeline needs a separate derivation. + +## Sources, review and remaining scope + +The separate checkout is based on +`ce7ad1b6ab09452c3478723a2e96ed5ff212dc08`. The PR1048 research package at +`07730cd8302c378607259a9ad0efb73e0b57a2f2` and PR1182 package at +`0213b8911bfeefd5c81ddf320bac6a0fb7e86215` are retained byte-for-byte, including +licenses and notices. Their historical assertions are preserved as audit +evidence, not endorsed. All 24 fetched Git blobs and all seven dependencies +listed in PR1048's `EXPECTED.json` were verified locally. `SOURCE-PINS.json` +also binds the maintainer finding and selected record. `OVERLAP.json` records +the non-atomic read-only queue check through PR1190 and the distinct complex +provider scope of PR1186. + +See `PROOF.md` for the comparison derivation, `REVIEW.md` for separate Astra +review/rerun, and `NOTICE.md` for full attribution. Brian Ross's Krenn +independent reconstruction and semantic-corruption methods and ThetaTwist +exact-arithmetic discipline are explicit methodological inspirations. No code +from either project is copied. Original search, supplier and counterexample +credit remains with flemhhh, woklerx, Douglas Colkitt, eumemic, +DreamingOfClouds and the retained lineage. + +The following remain open: a complete independently justified first-state +domain; all second neighborhoods after every legal first frame and slot; +any completeness-preserving slot or frame pruning theorem; the separate +Steinberg family; other frame universes; candidate supplier/native admission; +all-size/compiler, hosting, precision and analytic obligations. No improving +candidate was found in the bounded slice. No full multiplication theorem, +global local-optimality result or original 645,900-pair exclusion follows. + +Everything is local. The completed K492 package and PR1162 are preserved; +this task pushes nothing and creates no pull request. diff --git a/research/pr1048-certified-repair/REVIEW.md b/research/pr1048-certified-repair/REVIEW.md new file mode 100644 index 0000000000..34822e0ea8 --- /dev/null +++ b/research/pr1048-certified-repair/REVIEW.md @@ -0,0 +1,207 @@ +# Separate Astra review and bounded rerun + +The final bounded package passes the separate implementation and a fresh +end-to-end rerun. There is no remaining blocker to its stated pricing and +finite-domain claims. This review does not approve PR1048's original search +exhaustion, a new supplier, or a new multiplication bound. + +Reviewer: a separate GPT-6 Astra agent at xhigh, requested by Brian Ross, +2026-10-13. The primary implementation, coverage implementation and this +review are substantially AI assisted. This is separate-agent review and a +code-disjoint checker, not independent human peer review or a formal proof. +The reviewer consulted CONTRIBUTING, the central PR ledger, current status, +the frozen predecessor sources, and the primary pricing/coverage code. + +The checkout is `research/pr1048-certified-bounded-repair`, based on +`ce7ad1b6ab09452c3478723a2e96ed5ff212dc08`. The reviewed SHA256 values of +`pricing.py`, `coverage.py`, `independent.py`, and `run.py` are recorded in +[the reviewer rerun receipt](evidence/INDEPENDENT-RERUN.json). That receipt +also binds the interpreter, exact commands, elapsed times and stdout. +No push, publication, paid computation or selected-frontier rebuild occurred. + +## Findings and fixes + +1. The initial driver would have checked the retained pricing JSON while + regenerating a different output directory. The reviewer identified this + stale-receipt risk. `independent.py` now accepts `--pricing` and + `--coverage`, and the driver supplies the freshly generated files. Coverage + writes its complete receipt with `--output`; its compact stdout is parsed + separately rather than mistaken for the complete certificate. +2. The integration run exposed an isolated-mode import failure: + `from pricing import ReferencePricer` could not find a sibling under + `python -I`. The main agent replaced it with an explicit file-based module + load. The reviewer confirmed that the final isolated-mode wrapper succeeds. + This changed loading, not mathematical semantics. +3. The reviewer found that the initial retained COPY snapshot used the last + A frame or the start frame, omitting a possible D-only predecessor. The + coverage agent changed the snapshot to apply D before A. Every retained + register in the frozen PR589 word has an A touch, so this fix does not + change the reported real-word domain or counts. It corrects the stated + more general local replay contract. +4. The review kept literal-domain differences separate from differences in + reachable profiles. The final receipt explicitly checks the latter. + Cross-section omissions are omissions of ordered paths from the old loop; + they do not prove that the final word cannot be reached another way. + The retained cross-section examples are exact profile ties. + +No unresolved arithmetic or enumeration discrepancy remains within the +declared bounded domain after those fixes. + +## What was independently reconstructed + +For the fixed pipeline, direct subtraction gives + +``` +F_candidate(a) - F_reference(a) = 288 * 64^a * J_delta(a) +J_delta(a) = sum_r delta[r] * r^(1-a) + lambda * sum_r delta[r] +lambda = 32 * 64^2 / 10^16 +``` + +All supported residual terms are nondecreasing, and the positive surcharge +makes the residual strictly increasing and unbounded. Together with the +exact check `F(0)<0`, this proves one positive root. At the reference root, +negative J means a strictly larger candidate root; nonnegative J means a +no-larger root. This argument does not order arbitrary profiles at an +arbitrary fixed exponent. + +The checker imports only Python's standard library. It does not import +`pricing.py`, `coverage.py`, the original `bitprof.py`, or PR1182's repair for +acceptance. Its logarithm uses a positive atanh series after reduction to +[1,2], with an explicit rational geometric tail. Its exponential uses a +degree-72 positive Taylor polynomial and an explicit geometric tail. Every +rounding step is exact floor/ceiling integer division at scale 10^90. +The implementation documents the bounds and enforces the argument domains. +There are no float or transcendental-library acceptance decisions. + +It directly encloses F at both actual PR589 endpoints: + +``` +L = 1733427039589844234749 / 10^24 +U = 1733427039589844234750 / 10^24 +-3/10^18 < F(L) < -2/10^18 + 3/10^18 < F(U) < 4/10^18 +``` + +The exact larger rational enclosures are retained in +[INDEPENDENT.json](evidence/INDEPENDENT.json). It also checks the fixed +`n=288p+idle` inventory, the surcharge, candidate positive-root conditions, +PR555 versus PR589, abstract signed improvement/worsening controls, and the +exact zero-profile-delta tie. A broad mixed-sign comparison stays unresolved. + +For coverage, the separate checker reconstructs ranks by integer row +elimination with gcd reduction, span closure by exact rank tests, profiles by +an event replay, and literal move domains by prefix/suffix frame arrays. +It checks stable operation identities, current positions, frame masks, +commutation barriers, nesting and resulting retained COPY snapshots. It +reconstructs every first and second candidate-set digest and the complete +profile-delta occurrence histogram, then independently prices all 24 deltas. +It fully replays the 14 ordinary/cross-section named two-move witnesses and +the additional reachable-set difference witness. + +Both implementations cache profile values for a fixed state, frame and the +two registers' touch positions. This is valid because those data fix their +frame itineraries; all other register contributions and the full-frame +cleanup support are unchanged. The candidate slots are still counted +separately. Neither implementation identifies continuation states merely +because their paid profiles agree. + +| Independently checked quantity | Result | +| --- | ---: | +| First literal moves over the five named operations | 9,950 | +| Explicit selected first states | 10 | +| All adjacent second-operation identities, both sections | 150 | +| Second literal moves | 125,698 | +| Cross-section second moves | 9,424 | +| Unique signed local deltas | 24 | +| Strictly better occurrences | 0 | +| Exact identical-profile ties | 56,685 | +| Strictly worse occurrences | 78,963 | +| Unresolved occurrences | 0 | + +The separate reconstruction verifies four pairs of equal-profile first +states with different literal continuation domains. Exactly one pair has +different reachable final-profile sets: B[1] at original frame 217 in slot 0 +admits delta `{1:4, 2:-2}`, whereas its neutral placement in slot 367 does not +within the declared second domain. The supplied second move is B[368] to +slot 92, at closure mask `408817318573603981982687085723648`. +The checker fully replays it. Its J is strictly positive, so this extra +profile is strictly worse, not an improving omission. + +## Semantic rejection controls + +The separate checker rejects seven pricing/source corruptions: shifting the +reference bracket to the wrong tick (rejected by actual endpoint signs), +omitting the surcharge parameter, omitting it only in a numerical signed +sum, failing to reverse negative-coefficient interval bounds, promoting an +unresolved sign, removing a mandatory source, and corrupting a source pin. +The mandatory 36-file manifest is itself canonically pinned; all file bytes +are rehashed, including 24 original Git blob identities. + +Two additional controls use the already reconstructed coverage semantics: + +- Remove a cross-section second-operation row and refresh occurrence counts, + continuation digests, price totals and related numerical summaries. This + still fails the independently reconstructed mandatory second domain. +- Change an advertised local delta and recompute its rigorous rational price + and aggregate counters. This still fails the reconstructed semantic + profile histogram. + +Thus refreshed hashes and internally consistent summaries cannot replace +the missing semantics. The controls do not merely check that a stored hash +changed. Their actual rejection reasons are recorded in INDEPENDENT.json. + +Methodological credit: Brian Ross's +[Krenn independent verifier](https://github.com/brianross93/Krenn/blob/ab446724a61a293a3268c63b9e9e721c6a360561/experiments/krenn_quantum_graph/independent_verifier.py) +and [semantic corruption tests](https://github.com/brianross93/Krenn/blob/ab446724a61a293a3268c63b9e9e721c6a360561/tests/test_krenn_artifacts.py), +and [ThetaTwist exact arithmetic](https://github.com/brianross93/thetatwist/blob/b4ec6c13088b89961834cc675b44b81372199b02/src/thetatwist/core.py). +These are methodological adaptations with no copied code. Supplier, +original-search, counterexample and bracket-repair credit is retained in +[NOTICE.md](NOTICE.md). + +## Fresh rerun evidence + +The first standalone arithmetic pilot completed in 0.58 seconds. A timed +complete independent reconstruction completed in 2.016 seconds. The final +reviewer wrapper run was bounded by a 60-second subprocess timeout and +completed in **41.507 seconds**, with empty stderr and exit code 0, under +Python 3.13.2 on the development Mac. No resource escalation was needed. + +The exact command, including its generated temporary output directory, is in +INDEPENDENT-RERUN.json. From the repository root it was: + +```sh +python3 -I -O -B research/pr1048-certified-repair/run.py --out /var/folders/0x/h7yfchhj50j3jlykl2m_rx0c0000gn/T/pr1048-independent-review-wvac5jlm/receipt +``` + +Actual stdout: + +```text +pricing.py: PASS_CERTIFIED_REFERENCE_PRICING +coverage.py: BOUNDED_COVERAGE_RECONSTRUCTED +independent.py: PASS_SEPARATE_RATIONAL_PRICING_CHECK +PASS_LOCAL_BOUNDED_REPAIR +``` + +The wrapper's three child commands all returned 0: pricing 8.868 seconds, +coverage 30.603 seconds, independent reconstruction 1.986 seconds. Fresh +PRICING.json and INDEPENDENT.json equal the retained JSON objects exactly; +COVERAGE.json equals the retained object after omitting only its timing +field. These are finite-verifier timings, not multiplication-runtime claims. + +## Remaining boundaries + +The ten selected first states are an explicit bounded input domain. This +checker verifies their legality and all declared adjacent continuations; it +does not independently reimplement the original heuristic's nomination +labels or its first-state selection recipe. Those labels and the synthetic +legacy COPY-rule failures are observational comparisons rerun through the +retained legacy adapter. It does independently check the real literal domains, +profiles, reachable-set differences, endpoint signs and signed prices. + +There is no complete first-state search, proof of safe heuristic pruning, +disjoint-move reduction, all-frame/subspace enumeration, Steinberg search, +645,900-pair exclusion, full scalar/native supplier admission, or all-size +multiplication theorem here. Counts are ordered paths, not distinct final +words. The retained supplier realization, compiler, hosting, precision and +analytic obligations remain outside this review. No claim requires closing +PR1048 or changing the selected result. diff --git a/research/pr1048-certified-repair/SOURCE-PINS.json b/research/pr1048-certified-repair/SOURCE-PINS.json new file mode 100644 index 0000000000..23f124852c --- /dev/null +++ b/research/pr1048-certified-repair/SOURCE-PINS.json @@ -0,0 +1,173 @@ +{ + "inputs": { + "certificates/selected-result.json": { + "ref": "ce7ad1b6ab09452c3478723a2e96ed5ff212dc08", + "sha256": "10b9e340fd8e354a37a0c4813c90e5de1dd42044b5f6aca4a3fc5a42b685fa32" + }, + "docs/research/community-batch1099-review.md": { + "ref": "ce7ad1b6ab09452c3478723a2e96ed5ff212dc08", + "sha256": "7e76d2c38e5fce30587835b7251df1430488ae4dd372611ef69a3f03f476b6cb" + }, + "research/bit-profile-pair-audit/EXPECTED.json": { + "git_blob": "50da9100d9168248f0c3d64a8209de74da124389", + "ref": "07730cd8302c378607259a9ad0efb73e0b57a2f2", + "sha256": "adb6d7d006c19cd5dbc4414c11b830dc8f2ef70797f9fc4e2aedd50c1489e924" + }, + "research/bit-profile-pair-audit/LICENSE": { + "git_blob": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", + "ref": "07730cd8302c378607259a9ad0efb73e0b57a2f2", + "sha256": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4" + }, + "research/bit-profile-pair-audit/NOTICE.md": { + "git_blob": "48c6e0349a5fcd9219ddc0a7baa3549963ca7bef", + "ref": "07730cd8302c378607259a9ad0efb73e0b57a2f2", + "sha256": "1927d4e10f77f268dc07806db20b2e7258bea6630e00ddc075c7acea3c4d0b47" + }, + "research/bit-profile-pair-audit/README.md": { + "git_blob": "7c9420e530ae4ddffcdad09c08949827e010d584", + "ref": "07730cd8302c378607259a9ad0efb73e0b57a2f2", + "sha256": "0ab44a75541e155f7739bd20459edf12a30166950f830dd7790b3a03e181d4da" + }, + "research/bit-profile-pair-audit/code/bitprof.py": { + "git_blob": "65dbc2287386bb287f3fc8a3b903e90928aef239", + "ref": "07730cd8302c378607259a9ad0efb73e0b57a2f2", + "sha256": "2cfab1141589ea00cb7b1cc27bb9f6d6410e36eedd790973563408cf29f59363" + }, + "research/bit-profile-pair-audit/code/replay.py": { + "git_blob": "75f8a09dd7f4b5018ae2d2601b769ebbe9527554", + "ref": "07730cd8302c378607259a9ad0efb73e0b57a2f2", + "sha256": "0771f52f9fa055afbc914e0ebe2c0952b1fb30fc1d403598afb8e3920cb289a0" + }, + "research/bit-profile-pair-audit/code/search.py": { + "git_blob": "ba92a3c73dc4a5c452b9e7228f0215f05ff024d3", + "ref": "07730cd8302c378607259a9ad0efb73e0b57a2f2", + "sha256": "2612ee4c53eebd8e96b382f5f2d7bd3e423260bec9117ec5ab67f72a62371088" + }, + "research/bit-profile-pair-audit/code/stateprof.py": { + "git_blob": "9d0d6df4abe51c7dd7cd811ad86145fd9f506536", + "ref": "07730cd8302c378607259a9ad0efb73e0b57a2f2", + "sha256": "83c581908827cf000519bc8ca4e2777d167c22ba95194f1c8f90296e2620458b" + }, + "research/bit-profile-pair-audit/verify.py": { + "git_blob": "baa118669c9b6e9a1e2fdf7d9c91ce357c985c3f", + "ref": "07730cd8302c378607259a9ad0efb73e0b57a2f2", + "sha256": "9c1801cd2afde9f057c16be50bf2ff0bfc6a99994c0e632748f380f8f3f41f23" + }, + "research/community-batch1099-audit/check_pr1048_counterexample.py": { + "ref": "ce7ad1b6ab09452c3478723a2e96ed5ff212dc08", + "sha256": "c2ec6b6823534018a07b59108199ef786ccc910c923f13cdf0505c02ca720aa1" + }, + "research/community-batch1099-audit/logs/batch1099-1048-finding.json": { + "ref": "ce7ad1b6ab09452c3478723a2e96ed5ff212dc08", + "sha256": "7f44eafcfbf9cb774642f44c7a7a4abd115ecae3e102dbe0d0a224e57389223b" + }, + "research/community-batch1099-audit/pr1048-metadata.json": { + "ref": "ce7ad1b6ab09452c3478723a2e96ed5ff212dc08", + "sha256": "79918918967a606a54017197d71f7b5508b60840a134e23586a9879278de2929" + }, + "research/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/engines/moment.py": { + "ref": "ce7ad1b6ab09452c3478723a2e96ed5ff212dc08", + "sha256": "81cbc864e106418fc7854322746f72180cb8110ff39f74450a3b8d55a82c1482" + }, + "research/e8-bit-p111-tuned/tune/EXPECTED.json": { + "ref": "ce7ad1b6ab09452c3478723a2e96ed5ff212dc08", + "sha256": "b9f0e5ca038abe837b0007c8fe006f366a6f02009244ac57705a8a200e2301f4" + }, + "research/e8-bit-p111-tuned/tune/bitE8mut-p111-tuned.json.gz": { + "ref": "ce7ad1b6ab09452c3478723a2e96ed5ff212dc08", + "sha256": "e3e301e62bc2b41dbf1ceac0acf3d35824ebeab1848c5a2142d4577b109da52f" + }, + "research/e8-bit-p111-tuned/tune/moves.json": { + "ref": "ce7ad1b6ab09452c3478723a2e96ed5ff212dc08", + "sha256": "a113933002239eb2dd32726bd572ba8ca41b5bce0d438327dd770754c8d5e0f4" + }, + "research/e8-bit-p111-tuned/tune/tune.py": { + "ref": "ce7ad1b6ab09452c3478723a2e96ed5ff212dc08", + "sha256": "bdaf632852c514b257bcb1b81004a942fc022ab876565b4e5f6ff5a038d323c2" + }, + "research/e8-bit-p111-tuned/tune/wlib.py": { + "ref": "ce7ad1b6ab09452c3478723a2e96ed5ff212dc08", + "sha256": "a37fdf3cdf5f62945c2a90193401c0e9edc9dd3cda8d8cb36a3b9c329ebe4dbc" + }, + "research/e8-bit-p111/data/bitE8mut-p111.json.gz": { + "ref": "ce7ad1b6ab09452c3478723a2e96ed5ff212dc08", + "sha256": "1bc3c53d4baf4927c6a00c339ea3975516471a48074d4d97c6addaded2a4d858" + }, + "research/profile-bracket-audit64/BASE-SELECTED.json": { + "git_blob": "ae6a99f28aa468649eb66a361e764d769363bf11", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "sha256": "10b9e340fd8e354a37a0c4813c90e5de1dd42044b5f6aca4a3fc5a42b685fa32" + }, + "research/profile-bracket-audit64/EXPECTED.json": { + "git_blob": "7fd1f6cccf57f0dfb9685b40f539966c95a15928", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "sha256": "1c493f6ad7f93f87040e8c9068fb27593b002b505be611d86017d1038d95527c" + }, + "research/profile-bracket-audit64/PR-BODY.md": { + "git_blob": "ef57e9b725ff8946f2401aa6e333e461b89569dc", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "sha256": "5690cb1394308d5ac92cb9ed66281c21238be8e3f4305b7a7995517b07f50b5b" + }, + "research/profile-bracket-audit64/PROOF.md": { + "git_blob": "e4cf3d9cb3ca46d57b460d52db4d09aa961fe362", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "sha256": "656ba8f4fcdbbb3e7394d8807776710625cd322ea7f649e7e5b2c285afddac0b" + }, + "research/profile-bracket-audit64/PROVENANCE.md": { + "git_blob": "938814432b13b973e494e5cf7ffe77d9ecf79465", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "sha256": "40a5f0fe07c708994955bbae3dcaef8a86afcb2be98b65908b1e18d804e76539" + }, + "research/profile-bracket-audit64/README.md": { + "git_blob": "264f6875c920eb0d5f43daf50b2b3dcbb5d849c4", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "sha256": "2659bf64d372562b1aea93dafa4c895e33d154f51d7ab8fe45fcc25b9cb281a9" + }, + "research/profile-bracket-audit64/SOURCES.json": { + "git_blob": "355798ecf837db320cbaf48412c767e18232c88d", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "sha256": "d1b7a60d90197e76fc4ab1ced89e5853804930aad694220ab995d40628a20a4f" + }, + "research/profile-bracket-audit64/VALIDATION.json": { + "git_blob": "9f3ec9c0fe07179b77e656a8eea40adc1ce64cf1", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "sha256": "cacbc7f653893c80c977b57848597bc408e299615a4b579e4d378030b344217e" + }, + "research/profile-bracket-audit64/controls.py": { + "git_blob": "dc391172b4f46fc6d4c62c0d262c31e8c3538a3a", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "sha256": "cba18c76ae24e40fd15a7477cf9ef55795a3c13d97e423ad560cd44902ad5527" + }, + "research/profile-bracket-audit64/independent.py": { + "git_blob": "f1034fecc88423e7717e9d4c3daaa0e101510051", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "sha256": "5ba9d13eeedec6cd5f5dd6d661147723f805be0a42ef394069d7526a79cd38f2" + }, + "research/profile-bracket-audit64/repair.py": { + "git_blob": "e6b1585374f05b3703290fa72cb6bacd0920e903", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "sha256": "ada676890c45b989d282ec6c7af5eef1d75672c246747c203215415a3fe94544" + }, + "research/profile-bracket-audit64/vendor/LICENSE": { + "git_blob": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "sha256": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4" + }, + "research/profile-bracket-audit64/vendor/NOTICE.md": { + "git_blob": "48c6e0349a5fcd9219ddc0a7baa3549963ca7bef", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "sha256": "1927d4e10f77f268dc07806db20b2e7258bea6630e00ddc075c7acea3c4d0b47" + }, + "research/profile-bracket-audit64/vendor/bitprof.py": { + "git_blob": "65dbc2287386bb287f3fc8a3b903e90928aef239", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "sha256": "2cfab1141589ea00cb7b1cc27bb9f6d6410e36eedd790973563408cf29f59363" + }, + "research/profile-bracket-audit64/verify.py": { + "git_blob": "187695f39c8cbbbe9e11850fb096752942e75d1e", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "sha256": "7df461f7ca111b8984341f7af0df3a97a80c5e6516a80d2e2363b28544a217f8" + } + }, + "schema": "pr1048-certified-repair-inputs-v1" +} diff --git a/research/pr1048-certified-repair/SOURCE-RETRIEVAL.json b/research/pr1048-certified-repair/SOURCE-RETRIEVAL.json new file mode 100644 index 0000000000..c05a156a3c --- /dev/null +++ b/research/pr1048-certified-repair/SOURCE-RETRIEVAL.json @@ -0,0 +1,298 @@ +{ + "base": "ce7ad1b6ab09452c3478723a2e96ed5ff212dc08", + "sources": [ + { + "path": "research/bit-profile-pair-audit/EXPECTED.json", + "ref": "07730cd8302c378607259a9ad0efb73e0b57a2f2", + "git_blob": "50da9100d9168248f0c3d64a8209de74da124389" + }, + { + "path": "research/bit-profile-pair-audit/LICENSE", + "ref": "07730cd8302c378607259a9ad0efb73e0b57a2f2", + "git_blob": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64" + }, + { + "path": "research/bit-profile-pair-audit/NOTICE.md", + "ref": "07730cd8302c378607259a9ad0efb73e0b57a2f2", + "git_blob": "48c6e0349a5fcd9219ddc0a7baa3549963ca7bef" + }, + { + "path": "research/bit-profile-pair-audit/README.md", + "ref": "07730cd8302c378607259a9ad0efb73e0b57a2f2", + "git_blob": "7c9420e530ae4ddffcdad09c08949827e010d584" + }, + { + "path": "research/bit-profile-pair-audit/code/bitprof.py", + "ref": "07730cd8302c378607259a9ad0efb73e0b57a2f2", + "git_blob": "65dbc2287386bb287f3fc8a3b903e90928aef239" + }, + { + "path": "research/bit-profile-pair-audit/code/replay.py", + "ref": "07730cd8302c378607259a9ad0efb73e0b57a2f2", + "git_blob": "75f8a09dd7f4b5018ae2d2601b769ebbe9527554" + }, + { + "path": "research/bit-profile-pair-audit/code/search.py", + "ref": "07730cd8302c378607259a9ad0efb73e0b57a2f2", + "git_blob": "ba92a3c73dc4a5c452b9e7228f0215f05ff024d3" + }, + { + "path": "research/bit-profile-pair-audit/code/stateprof.py", + "ref": "07730cd8302c378607259a9ad0efb73e0b57a2f2", + "git_blob": "9d0d6df4abe51c7dd7cd811ad86145fd9f506536" + }, + { + "path": "research/bit-profile-pair-audit/verify.py", + "ref": "07730cd8302c378607259a9ad0efb73e0b57a2f2", + "git_blob": "baa118669c9b6e9a1e2fdf7d9c91ce357c985c3f" + }, + { + "path": "research/profile-bracket-audit64/BASE-SELECTED.json", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "git_blob": "ae6a99f28aa468649eb66a361e764d769363bf11" + }, + { + "path": "research/profile-bracket-audit64/EXPECTED.json", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "git_blob": "7fd1f6cccf57f0dfb9685b40f539966c95a15928" + }, + { + "path": "research/profile-bracket-audit64/PR-BODY.md", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "git_blob": "ef57e9b725ff8946f2401aa6e333e461b89569dc" + }, + { + "path": "research/profile-bracket-audit64/PROOF.md", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "git_blob": "e4cf3d9cb3ca46d57b460d52db4d09aa961fe362" + }, + { + "path": "research/profile-bracket-audit64/PROVENANCE.md", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "git_blob": "938814432b13b973e494e5cf7ffe77d9ecf79465" + }, + { + "path": "research/profile-bracket-audit64/README.md", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "git_blob": "264f6875c920eb0d5f43daf50b2b3dcbb5d849c4" + }, + { + "path": "research/profile-bracket-audit64/SOURCES.json", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "git_blob": "355798ecf837db320cbaf48412c767e18232c88d" + }, + { + "path": "research/profile-bracket-audit64/VALIDATION.json", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "git_blob": "9f3ec9c0fe07179b77e656a8eea40adc1ce64cf1" + }, + { + "path": "research/profile-bracket-audit64/controls.py", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "git_blob": "dc391172b4f46fc6d4c62c0d262c31e8c3538a3a" + }, + { + "path": "research/profile-bracket-audit64/independent.py", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "git_blob": "f1034fecc88423e7717e9d4c3daaa0e101510051" + }, + { + "path": "research/profile-bracket-audit64/repair.py", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "git_blob": "e6b1585374f05b3703290fa72cb6bacd0920e903" + }, + { + "path": "research/profile-bracket-audit64/vendor/LICENSE", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "git_blob": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64" + }, + { + "path": "research/profile-bracket-audit64/vendor/NOTICE.md", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "git_blob": "48c6e0349a5fcd9219ddc0a7baa3549963ca7bef" + }, + { + "path": "research/profile-bracket-audit64/vendor/bitprof.py", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "git_blob": "65dbc2287386bb287f3fc8a3b903e90928aef239" + }, + { + "path": "research/profile-bracket-audit64/verify.py", + "ref": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "git_blob": "187695f39c8cbbbe9e11850fb096752942e75d1e" + } + ], + "overlap": [ + { + "number": 1190, + "title": "Research consolidation: authenticate PR279's complete parent inventory (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1190" + }, + { + "number": 1189, + "title": "Tooling: 1.50x faster P111 RUP checking with identical full replay", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1189" + }, + { + "number": 1188, + "title": "Bit construction: exact five-wire windows reduce composed R439 to 10,492 ADDs", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1188" + }, + { + "number": 1187, + "title": "Research: sharp preserved-frame P104 COPY-drop threshold at 38 punctures (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1187" + }, + { + "number": 1186, + "title": "Tooling: exact frame solver and delivery-rewrite search for gauge44/k8 local words (no new κ)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1186" + }, + { + "number": 1185, + "title": "Research: six-source universal dirty-connector boundary, f(6)=16 (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1185" + }, + { + "number": 1184, + "title": "Tooling: 2.33x faster complete emitted local audit with preserved coverage", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1184" + }, + { + "number": 1183, + "title": "Conditional kappa 0.001675603180601302: mixed entrance providers on T37 owners", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1183" + }, + { + "number": 1182, + "title": "Audit: default-precision false PR1048 root brackets and a certified repair", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1182" + }, + { + "number": 1181, + "title": "Research consolidation: retention receipt and credit for #1015's blocks retained via #1062 (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1181" + }, + { + "number": 1180, + "title": "Structural proof: overcomplete factor-linear E8 decoders retain the puncture copy-cost floor", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1180" + }, + { + "number": 1179, + "title": "Finite bit construction: sparse R439 kernel entrance gauge (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1179" + }, + { + "number": 1178, + "title": "Conditional κ = 0.001675161536733127: X54 slot on #1148's three-demotion k8 word with its T16 owners", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1178" + }, + { + "number": 1177, + "title": "Research: exact arbitrary-mask three-total five-cube boundary (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1177" + }, + { + "number": 1176, + "title": "Add files via uplConditional kappa = 0.001675224519162937: cross-call gap augmentation for three extra kernel islandsoad", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1176" + }, + { + "number": 1175, + "title": "Conditional kappa 0.001674083482880778: whole-owner map at the packin…", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1175" + }, + { + "number": 1174, + "title": "Audit paid overwrite-COPY transposition on selected R480 cleanup", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1174" + }, + { + "number": 1173, + "title": "Research: sharp nine-coordinate threshold for five-subset shared nodes (seed 48)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1173" + }, + { + "number": 1172, + "title": "Conditional κ = 0.001672733678608451: 9-pair whole-helper exchange on child 15", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1172" + }, + { + "number": 1171, + "title": "Research: all-puncture E8 star decoder exclusion and p=56 classification (seed 49, no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1171" + }, + { + "number": 1170, + "title": "Consolidate selected complex stage scales with full primitive pricing", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1170" + }, + { + "number": 1169, + "title": "Conditional κ = 0.001675568675201533: joint entrances with T37 owner packing", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1169" + }, + { + "number": 1168, + "title": "Construction: cap unfinished outputs in dirty fanout", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1168" + }, + { + "number": 1165, + "title": "Certify all-length read barriers in selected complex cleanup", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1165" + }, + { + "number": 1164, + "title": "Recursive interface: four-way port borrowing reduces 56-factor echo from 1568 to 1088 calls", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1164" + }, + { + "number": 1162, + "title": "Independent verification: all eight K492 emitter controls (no new bound)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1162" + }, + { + "number": 1161, + "title": "Exact single-helper dyadic rescaling saves332 complex primitives in selected k8 word", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1161" + }, + { + "number": 1160, + "title": "research: realize PR992 sharp T29 profile with exact bin inventories", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1160" + }, + { + "number": 1159, + "title": "Research: exact modular borrowed-port echoes with endpoint-sized data", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1159" + }, + { + "number": 1158, + "title": "Research construction: exact Hadamard price envelope and 222-call word (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1158" + } + ], + "methods": [ + { + "url": "https://github.com/brianross93/Krenn/blob/ab446724a61a293a3268c63b9e9e721c6a360561/experiments/krenn_quantum_graph/independent_verifier.py", + "git_blob": "481d97e7400e81137614933bfb12810fa16d1768" + }, + { + "url": "https://github.com/brianross93/Krenn/blob/ab446724a61a293a3268c63b9e9e721c6a360561/tests/test_krenn_artifacts.py", + "git_blob": "c6373edf77f16a60f22b125d4228ae6567df8099" + }, + { + "url": "https://github.com/brianross93/thetatwist/blob/b4ec6c13088b89961834cc675b44b81372199b02/src/thetatwist/core.py", + "git_blob": "4ec66cc46d0e2480f67d00aa0d3d583dff95e798" + }, + { + "unavailable": "GitHub API error 404: {\"message\":\"Not Found\",\"documentation_url\":\"https://docs.github.com/rest/repos/contents#get-repository-content\",\"status\":\"404\"}" + }, + { + "url": "https://github.com/brianross93/thetatwist/blob/b4ec6c13088b89961834cc675b44b81372199b02/LICENSE", + "git_blob": "5af2c3fd069bca3d7892502daa4b8486ffe16845" + } + ] +} diff --git a/research/pr1048-certified-repair/coverage.py b/research/pr1048-certified-repair/coverage.py new file mode 100644 index 0000000000..483037f91b --- /dev/null +++ b/research/pr1048-certified-repair/coverage.py @@ -0,0 +1,533 @@ +#!/usr/bin/env python3 +"""Bounded literal transport coverage; no legacy enumerator is an authority. + +Brian Ross with substantial OpenAI Codex assistance, Apache-2.0. +Builds on flemhhh's PR1048 and DreamingOfClouds' PR589. Negative controls +adapt the semantic falsification methodology associated with Brian Ross/Krenn; +they do not attribute the underlying mathematics or supplier to this repair. + +Every frame is identified by its root-line mask, every operation by its +original (section,index). The domain is the 636 original catalogue frames plus +the rational span closure of each slot's lower bound. It does not enumerate +all possible subspaces. Literal slots are retained, including transports with +unchanged register itineraries. No equal-profile continuation pruning occurs. +""" +from __future__ import annotations + +import argparse +import bisect +import collections +import copy +from fractions import Fraction +import gzip +import hashlib +import importlib.util +import json +from pathlib import Path +import sys +import time + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] +WORD = ROOT / 'research/e8-bit-p111-tuned/tune/bitE8mut-p111-tuned.json.gz' +FIRST = (('A', 2028), ('A', 2076), ('A', 2129), ('A', 281), ('B', 1)) + + +def require(ok, message): + if not ok: + raise ValueError(message) + + +def basis(vectors): + """Reduced row basis over Q, independent of the modular tuner geometry.""" + pivots = {} + for v in vectors: + v = list(map(Fraction, v)) + for p, row in sorted(pivots.items()): + c = v[p] + if c: + v = [x-c*y for x, y in zip(v, row)] + p = next((j for j, x in enumerate(v) if x), None) + if p is not None: + c = v[p] + pivots[p] = [x/c for x in v] + return pivots + + +class Frames: + def __init__(self, word): + self.lines = word['lines'] + self.original = tuple(sum(1 << j for j in f) for f in word['frames']) + self.dims = {m: len(basis(self.vectors(m))) for m in self.original} + self.closures = {} + self.full = (1 << len(self.lines))-1 + + def vectors(self, mask): + return [v for j, v in enumerate(self.lines) if mask >> j & 1] + + def closure(self, mask): + if mask in self.closures: + return self.closures[mask] + b = basis(self.vectors(mask)) + out = 0 + for j, raw in enumerate(self.lines): + v = list(map(Fraction, raw)) + for p, row in sorted(b.items()): + c = v[p] + if c: + v = [x-c*y for x, y in zip(v, row)] + if not any(v): + out |= 1 << j + self.closures[mask] = out + self.dims[out] = len(b) + return out + + +class State: + def __init__(self, word, frames): + self.word, self.frames = word, frames + fm = frames.original + self.start = [fm[x] for x in word['start']] + self.final = [fm[x] for x in word['final']] + self.sections = {s: [(fm[f], t, u, (s, i)) + for i, (f, t, u) in enumerate((f, t, u) + for f, t, us in word[s] for u in us)] for s in 'AB'} + self.cp = {} + after_d = list(self.start) + for f, t, us in word['D']: + for r in (t, *us): + after_d[r] = fm[f] + for r in word['ret']: + self.cp[r] = next((f for f, t, u, _ in reversed(self.sections['A']) + if r in (t, u)), after_d[r]) + + def clone(self): + s = copy.copy(self) + s.sections = {k: list(v) for k, v in self.sections.items()} + return s + + def index(self, identity): + return next(i for i, op in enumerate(self.sections[identity[0]]) if op[3] == identity) + + def moved(self, identity, q, frame): + s = self.clone() + ops = s.sections[identity[0]] + f, t, u, oid = ops.pop(s.index(identity)) + ops.insert(q, (frame, t, u, oid)) + return s + + def register_sequence(self, r): + seq = [self.start[r]] + fm = self.frames.original + for f, t, us in self.word['D']: + if r == t or r in us: + seq.append(fm[f]) + for f, t, u, _ in self.sections['A']: + if r in (t, u): + seq.append(f) + copy_frame = seq[-1] if r in self.cp else None + for f, t, u, _ in self.sections['B']: + if r in (t, u): + seq.append(f) + v = self.word['v'] + for f, t, u, _ in reversed(self.sections['A'] + self.sections['B']): + if not v <= t < 2*v and r in (t, u): + seq.append(self.frames.full) + seq.append(self.final[r]) + return seq, copy_frame + + def profile(self, regs=None): + result = collections.Counter() + for r in range(len(self.start)) if regs is None else regs: + seq, cp = self.register_sequence(r) + for a, b in zip(seq, seq[1:]): + require(a & ~b == 0, 'frame descent at register %d' % r) + d = self.frames.dims[b] - self.frames.dims[a] + if d: + result[d] += 1 + if cp is not None: + result[self.frames.dims[cp]] += 1 + result.pop(0, None) + return result + + def boundaries(self, section, r): + pre = self.start[r] + for f, t, us in self.word['D']: + if r == t or r in us: + pre = self.frames.original[f] + if section == 'B': + for f, t, u, _ in self.sections['A']: + if r in (t, u): + pre = f + if section == 'A': + post = next((f for f, t, u, _ in self.sections['B'] if r in (t, u)), None) + if post is not None: + return pre, post + v = self.word['v'] + touched_c = any(not v <= t < 2*v and r in (t, u) + for f, t, u, _ in self.sections['A'] + self.sections['B']) + return pre, self.frames.full if touched_c else self.final[r] + + +def commute(a, b): + return a[1] != b[2] and b[1] != a[2] + + +def legal_moves(state, identity, ignore_copy=False, copy_on_b=False): + """Enumerate each literal insertion slot and every frame of the domain. + + Legality means all crossed ADDs commute, both frame chains remain nested, + and the resulting last A frame of each retained total equals its pinned + COPY frame. Checking the resulting last touch covers removal as well as + insertion. No legacy nomination or frame choice enters this routine. + """ + sec, _ = identity + ops = state.sections[sec] + i = state.index(identity) + op = ops[i] + f0, t, u, _ = op + rest = ops[:i] + ops[i+1:] + lo = i + while lo and commute(op, ops[lo-1]): + lo -= 1 + hi = i + while hi+1 < len(ops) and commute(op, ops[hi+1]): + hi += 1 + contexts = {} + for r in (t, u): + pre, post = state.boundaries(sec, r) + touches = [(j, x[0]) for j, x in enumerate(rest) if r in x[1:3]] + contexts[r] = (pre, post, touches, [x[0] for x in touches]) + cache = {} + out = [] + for q in range(lo, hi+1): + low, high = 0, state.frames.full + last = {} + signature = [] + for r in (t, u): + pre, post, touches, js = contexts[r] + k = bisect.bisect_left(js, q) + p = touches[k-1][1] if k else pre + n = touches[k][1] if k < len(touches) else post + low |= p + high &= n + last[r] = None if k == len(touches) else touches[-1][1] + signature.append(k) + if low & ~high: + continue + key = (low, high) + if key not in cache: + closure = state.frames.closure(low) + cache[key] = sorted(set(state.frames.original + (closure,))) + cache[key] = [m for m in cache[key] if low & ~m == 0 and m & ~high == 0] + for frame in cache[key]: + if q == i and frame == f0: + continue + if not ignore_copy and (sec == 'A' or copy_on_b): + if any((frame if last[r] is None else last[r]) != state.cp[r] + for r in (t, u) if r in state.cp): + continue + out.append((q, frame, tuple(signature))) + return out + + +def delta(left, right): + return {r: right.get(r, 0)-left.get(r, 0) + for r in sorted(set(left) | set(right)) if right.get(r, 0) != left.get(r, 0)} + + +def delta_key(d): + return tuple(sorted(d.items())) + + +def legacy_tools(word): + """Legacy imports live only behind this observational comparison adapter.""" + sys.path.insert(0, str(ROOT/'research/e8-bit-p111-tuned/tune')) + import tune + spec = importlib.util.spec_from_file_location('pr1048_search_observed', ROOT/'research/bit-profile-pair-audit/code/search.py') + legacy = importlib.util.module_from_spec(spec) + spec.loader.exec_module(legacy) + return tune, legacy + + +def observe_legacy(state, identity, tune, legacy): + w = copy.deepcopy(state.word) + masks = list(state.frames.original) + lookup = {m: i for i, m in enumerate(masks)} + for sec in 'AB': + for f, _, _, _ in state.sections[sec]: + if f not in lookup: + lookup[f] = len(masks) + masks.append(f) + w['frames'] = [[i for i in range(len(w['lines'])) if m >> i & 1] for m in masks] + for sec in 'AB': + w[sec] = [[lookup[f], t, [u]] for f, t, u, _ in state.sections[sec]] + tuner = tune.Tuner(w) + view = tuner.view(identity[0]) + i = state.index(identity) + nom = tune.best_move(view, i, thr=1e9, all_=True) or [] + all_ = legacy.all_legal_moves(view, i, tune.commute, tune.best_move) + old_mask = tuner.cat.masks[view.ops[i][0]] + return ({(q, tuner.cat.masks[f]) for _, q, f in nom}, + {(q, tuner.cat.masks[f]) for q, f in all_ if q != i or tuner.cat.masks[f] != old_mask}) + + +def packed_move(state, identity, move): + q, f, _ = move + return {'operation': list(identity), 'current_index': state.index(identity), + 'slot': q, 'frame_mask': str(f), + 'original_frame_id': state.frames.original.index(f) if f in state.frames.original else None} + + +def compare_sets(moves, nom, original_all): + lookup = {(q,f): (f,sig) for q,f,sig in moves} + classes = set(lookup.values()) + nom_classes = {lookup[x] for x in nom if x in lookup} + all_classes = {lookup[x] for x in original_all if x in lookup} + return {'original_nominations':len(nom), + 'original_all_legal_returned':len(original_all), + 'original_all_legal_illegal':len(original_all-set(lookup)), + 'original_all_legal_missing_frame_touch_classes':len(classes-all_classes), + 'nomination_missing_frame_touch_classes':len(classes-nom_classes)} + + +def candidate_digest(moves): + rows = [[q,str(f),list(sig)] for q,f,sig in moves] + return hashlib.sha256(json.dumps(rows,separators=(',',':')).encode()).hexdigest() + + +def semantic_controls(): + # Deliberately small artificial local contracts. These are not bit-word + # suppliers and are not claimed as counterexamples on the PR589 word. + w = {'v':1,'R':1,'lines':[[1,0],[0,1]],'frames':[[],[0],[0,1]], + 'start':[1,1,1],'final':[2,2,2],'ret':[2], 'D':[], 'C':[], + 'A':[[1,2,[0]],[2,2,[1]]],'B':[]} + f = Frames(w) + s = State(w,f) + tune, legacy = legacy_tools(w) + oid = ('A',1) + good = {(q,m) for q,m,_ in legal_moves(s,oid)} + bad = {(q,m) for q,m,_ in legal_moves(s,oid,ignore_copy=True)} + _, old = observe_legacy(s,oid,tune,legacy) + witness = (0,f.original[1]) + require(witness in bad and witness not in good and witness in old, + 'last-A-removal semantic control failed') + w2 = copy.deepcopy(w) + w2['A'] = [[1,2,[0]]] + w2['B'] = [[2,2,[1]],[2,2,[0]]] + s2 = State(w2,Frames(w2)) + good2 = {(q,m) for q,m,_ in legal_moves(s2,('B',0))} + bad2 = {(q,m) for q,m,_ in legal_moves(s2,('B',0),copy_on_b=True)} + _, old2 = observe_legacy(s2,('B',0),tune,legacy) + witness2 = (1,s2.frames.full) + require(witness2 in good2 and witness2 not in bad2 and witness2 not in old2, + 'A-only-COPY semantic control failed') + return [{'control':'remove_last_A_touch_preserves_resulting_COPY_frame', + 'synthetic':True,'mutation':'omit final retained-copy check', + 'mutation_detected':True,'legacy_all_legal_admits_invalid_move':True, + 'witness':{'operation':['A',1],'slot':0,'frame_mask':str(witness[1])}}, + {'control':'COPY_constraint_applies_to_A_only','synthetic':True, + 'mutation':'apply COPY restriction to B', 'mutation_detected':True, + 'legacy_all_legal_omits_valid_move':True, + 'witness':{'operation':['B',0],'slot':1,'frame_mask':str(witness2[1])}}] + + +def run(max_first=15): + started = time.monotonic() + word = json.load(gzip.open(WORD, 'rt')) + frames = Frames(word) + state = State(word, frames) + full = state.profile() + require(dict(sorted(full.items())) == {1:1323, 2:1342, 3:79, 4:44, 5:102, 6:11, 7:19}, 'independent baseline profile') + tune, legacy = legacy_tools(word) + first_rows = [] + chosen = [] + effects = collections.Counter() + witnesses = [] + cross_witnesses = [] + replayed = set() + continuation_states = [] + continuation_witnesses = [] + all_controls = semantic_controls() + for identity in FIRST: + moves = legal_moves(state, identity) + nom, original_all = observe_legacy(state, identity, tune, legacy) + classes = collections.defaultdict(list) + for move in moves: + classes[(move[1], move[2])].append(move) + # Three explicitly selected literal states per operation: earliest, + # lexicographically first original nomination, and first alternative + # frame (or latest). Equal profiles stay as distinct first states. + picks = [moves[0]] if moves else [] + nominated_pick = next((m for m in moves if (m[0],m[1]) in nom), None) + if nominated_pick is not None and nominated_pick not in picks: + picks.append(nominated_pick) + old_f = state.sections[identity[0]][state.index(identity)][0] + other = next((m for m in moves if m[1] != old_f), moves[-1] if moves else None) + if other is not None and other not in picks: + picks.append(other) + for move in picks: + if len(chosen) < max_first: + chosen.append((identity, move)) + regs = set(state.sections[identity[0]][state.index(identity)][1:3]) + old = state.profile(regs) + profile_cache = {} + for move in moves: + key = (move[1], move[2]) + if key not in profile_cache: + after = state.moved(identity, move[0], move[1]) + profile_cache[key] = delta(old, after.profile(regs)) + dk = delta_key(profile_cache[key]) + if dk not in replayed: + require(delta(full,after.profile()) == profile_cache[key], 'first full replay disagrees') + replayed.add(dk) + effects[delta_key(profile_cache[key])] += 1 + illegal_all = sorted(original_all - {(q,f) for q,f,_ in moves}) + first_rows.append({'operation': list(identity), 'legal_literal_moves': len(moves), + 'candidate_sha256':candidate_digest(moves), + 'frame_touch_classes': len(classes), **compare_sets(moves,nom,original_all), + 'illegal_witnesses': [{'slot':q,'frame_mask':str(f)} for q,f in illegal_all[:2]], + 'profile_delta_classes': len(set(delta_key(d) for d in profile_cache.values()))}) + second_rows = [] + for identity, move in chosen: + after = state.moved(identity, move[0], move[1]) + op = after.sections[identity[0]][after.index(identity)] + regs1 = set(op[1:3]) + # Every adjacent stable identity, in both sections. No disjointness + # theorem is asserted: disjoint operations are outside this domain. + ids = [x[3] for sec in 'AB' for x in after.sections[sec] + if regs1 & set(x[1:3])] + nom1, _ = observe_legacy(state,identity,tune,legacy) + first_nominated = (move[0],move[1]) in nom1 + continuation = [] + reachable_profiles = set() + reachable_witnesses = {} + first_delta = delta(state.profile(regs1), after.profile(regs1)) + for identity2 in ids: + moves2 = legal_moves(after, identity2) + nom2, original_all2 = observe_legacy(after, identity2, tune, legacy) + regs2 = set(after.sections[identity2[0]][after.index(identity2)][1:3]) + affected = regs1 | regs2 + baseline = state.profile(affected) + cache = {} + for m2 in moves2: + # Caching values is valid; continuations are never coalesced. + key = (m2[1], m2[2]) + if key not in cache: + final = after.moved(identity2, m2[0], m2[1]) + d = delta(baseline, final.profile(affected)) + cache[key] = d + dk = delta_key(d) + if dk not in replayed: + require(delta(full,final.profile()) == d, 'second full replay disagrees') + replayed.add(dk) + if d and len(witnesses) < 8: + witnesses.append({'first': packed_move(state, identity, move), + 'second': packed_move(after, identity2, m2), + 'local_delta': d}) + if identity2[0] != identity[0] and first_nominated and (m2[0],m2[1]) in nom2 and len(cross_witnesses) < 6: + cross_witnesses.append({'first':packed_move(state,identity,move), + 'second':packed_move(after,identity2,m2), + 'both_moves_are_original_nominations':True, + 'local_delta':d, + 'omission':'legacy pair_search obtains the second view from the first section only'}) + effects[delta_key(cache[key])] += 1 + reachable_profiles.add(delta_key(cache[key])) + reachable_witnesses.setdefault(delta_key(cache[key]),packed_move(after,identity2,m2)) + independent_set = {(q,f) for q,f,_ in moves2} + cross = identity2[0] != identity[0] + second_rows.append({'first': packed_move(state, identity, move), + 'second_operation': list(identity2), 'cross_section': cross, + 'legal_literal_moves': len(moves2), + 'candidate_sha256':candidate_digest(moves2), + 'frame_touch_classes': len(cache), + **compare_sets(moves2,nom2,original_all2), + 'first_is_original_nomination':first_nominated, + 'legacy_pair_search_evaluates_second_section': not cross, + 'profile_delta_classes': len(set(map(delta_key, cache.values())))}) + continuation.append([list(identity2),candidate_digest(moves2),len(moves2)]) + # Exact decomposition control compares full replay with register-local + # replay on every chosen first state, using integers only. + require(delta(full, after.profile()) == first_delta, 'integer register decomposition') + all_controls.append({'control':'full_profile_equals_touched_register_delta', 'first':packed_move(state,identity,move),'passed':True}) + continuation_states.append({'first':packed_move(state,identity,move), + 'first_local_delta':first_delta, + 'continuation_sha256':hashlib.sha256(json.dumps(continuation,separators=(',',':')).encode()).hexdigest(), + 'continuation_moves':sum(x[2] for x in continuation), + 'reachable_final_local_deltas':[dict(x) for x in sorted(reachable_profiles)]}) + continuation_witnesses.append(reachable_witnesses) + # Scope-aware semantic tamper controls exercise actual omissions rather + # than relying on generic branch coverage or echoed implementation logic. + require(cross_witnesses, 'real cross-section nominated-pair witness missing') + all_controls.append({'control':'both_sections_are_in_the_declared_second_domain', + 'synthetic':False,'mutation':'restrict second section to first section', + 'mutation_detected':True,'lost_nominated_pair_witnesses':len(cross_witnesses)}) + equal_different = [] + for j, left in enumerate(continuation_states): + for k, right in enumerate(continuation_states[j+1:],j+1): + if (left['first']['operation'] == right['first']['operation'] and + left['first_local_delta'] == right['first_local_delta'] and + left['continuation_sha256'] != right['continuation_sha256']): + lset = {delta_key(d) for d in left['reachable_final_local_deltas']} + rset = {delta_key(d) for d in right['reachable_final_local_deltas']} + equal_different.append({'left':left,'right':right, + 'reachable_profile_sets_equal':lset == rset, + 'only_left_final_local_deltas':[dict(x) for x in sorted(lset-rset)], + 'only_right_final_local_deltas':[dict(x) for x in sorted(rset-lset)], + 'only_left_witnesses':[{'local_delta':dict(x),'second':continuation_witnesses[j][x]} for x in sorted(lset-rset)], + 'only_right_witnesses':[{'local_delta':dict(x),'second':continuation_witnesses[k][x]} for x in sorted(rset-lset)]}) + require(equal_different, 'equal profile/distinct continuation control not exercised') + all_controls.append({'control':'profile_equality_is_not_continuation_identity', + 'synthetic':False,'mutation':'reuse second candidate domain by first profile delta', + 'mutation_detected':True,'witness_pairs':len(equal_different), + 'meaning':'literal continuation domains differ; reachable profile-set equality is reported separately', + 'different_reachable_profile_set_pairs':sum(not x['reachable_profile_sets_equal'] for x in equal_different)}) + spec = importlib.util.spec_from_file_location('pr1048_reference_pricing', HERE/'pricing.py') + pricing = importlib.util.module_from_spec(spec) + spec.loader.exec_module(pricing) + pricer = pricing.ReferencePricer(local=dict(full)) + prices = {k:pricer.compare_delta(dict(k)) for k in effects} + statuses = collections.Counter() + for k,n in effects.items(): + statuses[prices[k]['status']] += n + for witness in witnesses + cross_witnesses: + witness['certified_price'] = prices[delta_key(witness['local_delta'])] + totals = {'first_moves':sum(x['legal_literal_moves'] for x in first_rows), + 'second_moves':sum(x['legal_literal_moves'] for x in second_rows), + 'second_operation_rows':len(second_rows), + 'cross_section_second_moves':sum(x['legal_literal_moves'] for x in second_rows if x['cross_section']), + 'unique_local_deltas':len(effects), + 'full_replayed_delta_classes':len(replayed), + 'price_status_occurrences':{k:statuses[k] for k in ('BETTER','WORSE_OR_EQUAL','UNRESOLVED')}, + 'exact_profile_tie_occurrences':effects[()]} + totals['strictly_worse_occurrences'] = sum(n for k,n in effects.items() + if prices[k].get('interval') and Fraction(prices[k]['interval'][0]) > 0) + require(sum(statuses.values()) == totals['first_moves']+totals['second_moves'], 'priced occurrence coverage') + return {'schema': 1, 'status': 'BOUNDED_COVERAGE_RECONSTRUCTED', + 'source_word_sha256': hashlib.sha256(WORD.read_bytes()).hexdigest(), + 'scope': {'first_operations': [list(x) for x in FIRST], 'max_first_states':max_first, + 'selected_first_states':len(chosen), 'frame_universe':'original catalogue plus exact rational lower-span closure per slot', + 'first_state_selection':'earliest literal move, first original nomination, first alternative frame or last literal move; duplicates removed', + 'second_operation_rule':'all adjacent stable operation identities in both sections', + 'all_literal_slots':True, 'steinberg_in_scope':False, + 'global_neighborhood_claim':False}, + 'independent_local_profile':dict(sorted(full.items())), + 'first':first_rows,'second':second_rows,'totals':totals, + 'reference_root_bracket':list(map(str,pricer.bounds)) if pricer.bounds else None, + 'exact_local_profile_deltas':[{'delta':dict(k),'occurrences':n,'certified_price':prices[k]} for k,n in sorted(effects.items())], + 'witnesses':witnesses,'controls':all_controls, + 'cross_section_omission_witnesses':cross_witnesses, + 'equal_profile_different_continuations':equal_different, + 'timing':{'elapsed_seconds':round(time.monotonic()-started,3)}} + + +if __name__ == '__main__': + ap = argparse.ArgumentParser() + ap.add_argument('--output','--out', type=Path) + ap.add_argument('--max-first', type=int, default=15) + args = ap.parse_args() + result = run(args.max_first) + text = json.dumps(result, indent=2, sort_keys=True)+'\n' + if args.output: + args.output.write_text(text) + print(json.dumps({k:result[k] for k in ('status','scope','totals','timing')}, sort_keys=True)) diff --git a/research/pr1048-certified-repair/evidence/COVERAGE.json b/research/pr1048-certified-repair/evidence/COVERAGE.json new file mode 100644 index 0000000000..f7b7608e4d --- /dev/null +++ b/research/pr1048-certified-repair/evidence/COVERAGE.json @@ -0,0 +1,5827 @@ +{ + "controls": [ + { + "control": "remove_last_A_touch_preserves_resulting_COPY_frame", + "legacy_all_legal_admits_invalid_move": true, + "mutation": "omit final retained-copy check", + "mutation_detected": true, + "synthetic": true, + "witness": { + "frame_mask": "1", + "operation": [ + "A", + 1 + ], + "slot": 0 + } + }, + { + "control": "COPY_constraint_applies_to_A_only", + "legacy_all_legal_omits_valid_move": true, + "mutation": "apply COPY restriction to B", + "mutation_detected": true, + "synthetic": true, + "witness": { + "frame_mask": "3", + "operation": [ + "B", + 0 + ], + "slot": 1 + } + }, + { + "control": "full_profile_equals_touched_register_delta", + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 231 + }, + "passed": true + }, + { + "control": "full_profile_equals_touched_register_delta", + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 2027 + }, + "passed": true + }, + { + "control": "full_profile_equals_touched_register_delta", + "first": { + "current_index": 2028, + "frame_mask": "151115727451837236772864", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 186, + "slot": 231 + }, + "passed": true + }, + { + "control": "full_profile_equals_touched_register_delta", + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2034 + }, + "passed": true + }, + { + "control": "full_profile_equals_touched_register_delta", + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2036 + }, + "passed": true + }, + { + "control": "full_profile_equals_touched_register_delta", + "first": { + "current_index": 2129, + "frame_mask": "610243267866258280493576590715221", + "operation": [ + "A", + 2129 + ], + "original_frame_id": 518, + "slot": 2128 + }, + "passed": true + }, + { + "control": "full_profile_equals_touched_register_delta", + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "passed": true + }, + { + "control": "full_profile_equals_touched_register_delta", + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "passed": true + }, + { + "control": "full_profile_equals_touched_register_delta", + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 0 + }, + "passed": true + }, + { + "control": "full_profile_equals_touched_register_delta", + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 367 + }, + "passed": true + }, + { + "control": "both_sections_are_in_the_declared_second_domain", + "lost_nominated_pair_witnesses": 6, + "mutation": "restrict second section to first section", + "mutation_detected": true, + "synthetic": false + }, + { + "control": "profile_equality_is_not_continuation_identity", + "different_reachable_profile_set_pairs": 1, + "meaning": "literal continuation domains differ; reachable profile-set equality is reported separately", + "mutation": "reuse second candidate domain by first profile delta", + "mutation_detected": true, + "synthetic": false, + "witness_pairs": 4 + } + ], + "cross_section_omission_witnesses": [ + { + "both_moves_are_original_nominations": true, + "certified_price": { + "interval": [ + "0", + "0" + ], + "reason": "identical profile: exact equal root", + "status": "WORSE_OR_EQUAL" + }, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "local_delta": {}, + "omission": "legacy pair_search obtains the second view from the first section only", + "second": { + "current_index": 133, + "frame_mask": "5623951099472199550985", + "operation": [ + "B", + 133 + ], + "original_frame_id": 507, + "slot": 138 + } + }, + { + "both_moves_are_original_nominations": true, + "certified_price": { + "interval": [ + "0", + "0" + ], + "reason": "identical profile: exact equal root", + "status": "WORSE_OR_EQUAL" + }, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "local_delta": {}, + "omission": "legacy pair_search obtains the second view from the first section only", + "second": { + "current_index": 133, + "frame_mask": "5623951099472199550985", + "operation": [ + "B", + 133 + ], + "original_frame_id": 507, + "slot": 140 + } + }, + { + "both_moves_are_original_nominations": true, + "certified_price": { + "interval": [ + "0", + "0" + ], + "reason": "identical profile: exact equal root", + "status": "WORSE_OR_EQUAL" + }, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "local_delta": {}, + "omission": "legacy pair_search obtains the second view from the first section only", + "second": { + "current_index": 142, + "frame_mask": "5623951099472199550985", + "operation": [ + "B", + 142 + ], + "original_frame_id": 507, + "slot": 143 + } + }, + { + "both_moves_are_original_nominations": true, + "certified_price": { + "interval": [ + "0", + "0" + ], + "reason": "identical profile: exact equal root", + "status": "WORSE_OR_EQUAL" + }, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "local_delta": {}, + "omission": "legacy pair_search obtains the second view from the first section only", + "second": { + "current_index": 142, + "frame_mask": "5623951099472199550985", + "operation": [ + "B", + 142 + ], + "original_frame_id": 507, + "slot": 144 + } + }, + { + "both_moves_are_original_nominations": true, + "certified_price": { + "interval": [ + "0", + "0" + ], + "reason": "identical profile: exact equal root", + "status": "WORSE_OR_EQUAL" + }, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "local_delta": {}, + "omission": "legacy pair_search obtains the second view from the first section only", + "second": { + "current_index": 142, + "frame_mask": "5623951099472199550985", + "operation": [ + "B", + 142 + ], + "original_frame_id": 507, + "slot": 145 + } + }, + { + "both_moves_are_original_nominations": true, + "certified_price": { + "interval": [ + "0", + "0" + ], + "reason": "identical profile: exact equal root", + "status": "WORSE_OR_EQUAL" + }, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "local_delta": {}, + "omission": "legacy pair_search obtains the second view from the first section only", + "second": { + "current_index": 142, + "frame_mask": "5623951099472199550985", + "operation": [ + "B", + 142 + ], + "original_frame_id": 507, + "slot": 146 + } + } + ], + "equal_profile_different_continuations": [ + { + "left": { + "continuation_moves": 33244, + "continuation_sha256": "7758a30823fbe850ef25e332f235cdb455f7514e239d8d6b4bfdbd62ed7b975a", + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 231 + }, + "first_local_delta": {}, + "reachable_final_local_deltas": [ + {}, + { + "1": -1, + "2": 1, + "3": -1, + "4": 1, + "5": 1, + "7": -1 + }, + { + "1": -1, + "4": 2, + "7": -1 + }, + { + "1": 1, + "2": 1, + "3": -1 + }, + { + "1": 1, + "3": 1, + "4": -1 + }, + { + "1": 2, + "2": 2, + "3": -2 + }, + { + "1": 3, + "3": -1 + }, + { + "2": 2, + "3": -1, + "6": 1, + "7": -1 + }, + { + "2": 2, + "4": -1 + }, + { + "3": -1, + "4": 1, + "6": 1, + "7": -1 + } + ] + }, + "only_left_final_local_deltas": [], + "only_left_witnesses": [], + "only_right_final_local_deltas": [], + "only_right_witnesses": [], + "reachable_profile_sets_equal": true, + "right": { + "continuation_moves": 10067, + "continuation_sha256": "d13184e6388b32cafa255e715568e5f64db07443d7543efef7d84b92fd606c2c", + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 2027 + }, + "first_local_delta": {}, + "reachable_final_local_deltas": [ + {}, + { + "1": -1, + "2": 1, + "3": -1, + "4": 1, + "5": 1, + "7": -1 + }, + { + "1": -1, + "4": 2, + "7": -1 + }, + { + "1": 1, + "2": 1, + "3": -1 + }, + { + "1": 1, + "3": 1, + "4": -1 + }, + { + "1": 2, + "2": 2, + "3": -2 + }, + { + "1": 3, + "3": -1 + }, + { + "2": 2, + "3": -1, + "6": 1, + "7": -1 + }, + { + "2": 2, + "4": -1 + }, + { + "3": -1, + "4": 1, + "6": 1, + "7": -1 + } + ] + } + }, + { + "left": { + "continuation_moves": 3328, + "continuation_sha256": "ca8be5d3d93b21d586d97dbe1e08541724c9a61060a0fd6c0af8f7c546a79edc", + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2034 + }, + "first_local_delta": { + "1": -1, + "3": 1, + "4": 1, + "6": -1 + }, + "reachable_final_local_deltas": [ + {}, + { + "1": -1, + "2": 1, + "5": 1, + "6": -1 + }, + { + "1": -1, + "2": 2, + "3": 1, + "6": -1 + }, + { + "1": -1, + "3": 1, + "4": 1, + "6": -1 + }, + { + "2": 1, + "4": 1, + "6": -1 + }, + { + "3": 2, + "6": -1 + } + ] + }, + "only_left_final_local_deltas": [], + "only_left_witnesses": [], + "only_right_final_local_deltas": [], + "only_right_witnesses": [], + "reachable_profile_sets_equal": true, + "right": { + "continuation_moves": 3332, + "continuation_sha256": "6e36be3c0e3a692c4742a0258838362e0af93861d5fc95ce8c280948f25868d0", + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2036 + }, + "first_local_delta": { + "1": -1, + "3": 1, + "4": 1, + "6": -1 + }, + "reachable_final_local_deltas": [ + {}, + { + "1": -1, + "2": 1, + "5": 1, + "6": -1 + }, + { + "1": -1, + "2": 2, + "3": 1, + "6": -1 + }, + { + "1": -1, + "3": 1, + "4": 1, + "6": -1 + }, + { + "2": 1, + "4": 1, + "6": -1 + }, + { + "3": 2, + "6": -1 + } + ] + } + }, + { + "left": { + "continuation_moves": 11826, + "continuation_sha256": "921aeb8ac63cfc27edfdb4940338076f500b3a3887aca1b37ef0b07470c69581", + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_local_delta": {}, + "reachable_final_local_deltas": [ + {}, + { + "1": -1, + "2": 1, + "4": 1, + "5": -1 + }, + { + "1": -1, + "2": 1, + "5": 1, + "6": -1 + }, + { + "1": 3, + "3": -1 + } + ] + }, + "only_left_final_local_deltas": [], + "only_left_witnesses": [], + "only_right_final_local_deltas": [], + "only_right_witnesses": [], + "reachable_profile_sets_equal": true, + "right": { + "continuation_moves": 12332, + "continuation_sha256": "b01801fd9882dd32137a0d7bce0e1190e479e6d8cce05158e511718fa1052aa3", + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_local_delta": {}, + "reachable_final_local_deltas": [ + {}, + { + "1": -1, + "2": 1, + "4": 1, + "5": -1 + }, + { + "1": -1, + "2": 1, + "5": 1, + "6": -1 + }, + { + "1": 3, + "3": -1 + } + ] + } + }, + { + "left": { + "continuation_moves": 4736, + "continuation_sha256": "237f978259fd85b3f14832fc8129633e2ecdd69f235385cd2f1aaca04177bb22", + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 0 + }, + "first_local_delta": {}, + "reachable_final_local_deltas": [ + {}, + { + "1": -1, + "2": 1, + "4": 1, + "5": -1 + }, + { + "1": 4, + "2": -2 + } + ] + }, + "only_left_final_local_deltas": [ + { + "1": 4, + "2": -2 + } + ], + "only_left_witnesses": [ + { + "local_delta": { + "1": 4, + "2": -2 + }, + "second": { + "current_index": 368, + "frame_mask": "408817318573603981982687085723648", + "operation": [ + "B", + 368 + ], + "original_frame_id": null, + "slot": 92 + } + } + ], + "only_right_final_local_deltas": [], + "only_right_witnesses": [], + "reachable_profile_sets_equal": false, + "right": { + "continuation_moves": 3823, + "continuation_sha256": "2174255cfde809196d7214a9f581bd13aff8e8727722ba50f8946cd4145e3ff0", + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 367 + }, + "first_local_delta": {}, + "reachable_final_local_deltas": [ + {}, + { + "1": -1, + "2": 1, + "4": 1, + "5": -1 + } + ] + } + } + ], + "exact_local_profile_deltas": [ + { + "certified_price": { + "interval": [ + "0", + "0" + ], + "reason": "identical profile: exact equal root", + "status": "WORSE_OR_EQUAL" + }, + "delta": {}, + "occurrences": 56685 + }, + { + "certified_price": { + "interval": [ + "6936688641128403397016583938465868551443453/2000000000000000000000000000000000000000000000", + "1734172160282100849270014072810319200871636053/500000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "delta": { + "1": -2, + "2": 3, + "3": -1, + "6": 1, + "7": -1 + }, + "occurrences": 75 + }, + { + "certified_price": { + "interval": [ + "3347538133642385048363517339708092461669749877/1000000000000000000000000000000000000000000000000", + "1673769066821192524197661838338114624754216541/500000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "delta": { + "1": -1, + "2": 1, + "3": -1, + "4": 1, + "5": 1, + "7": -1 + }, + "occurrences": 312 + }, + { + "certified_price": { + "interval": [ + "481889594546853772457333938260726911248720043/250000000000000000000000000000000000000000000000", + "1927558378187415089844277021354692505093661607/1000000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "delta": { + "1": -1, + "2": 1, + "4": 1, + "5": -1 + }, + "occurrences": 2043 + }, + { + "certified_price": { + "interval": [ + "2275023202596548310759075068871602448335293861/1000000000000000000000000000000000000000000000000", + "227502320259654831077920168765373918086299443/100000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "delta": { + "1": -1, + "2": 1, + "5": 1, + "6": -1 + }, + "occurrences": 687 + }, + { + "certified_price": { + "interval": [ + "8095545868877609257805737184896502734068546093/1000000000000000000000000000000000000000000000000", + "4047772934438804628911256614645815513626787511/500000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "delta": { + "1": -1, + "2": 2, + "3": 1, + "6": -1 + }, + "occurrences": 166 + }, + { + "certified_price": { + "interval": [ + "82452985207623478620875278102007397294928617/25000000000000000000000000000000000000000000000", + "824529852076234786213637444307993210804597769/250000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "delta": { + "1": -1, + "3": 1, + "4": 1, + "6": -1 + }, + "occurrences": 6172 + }, + { + "certified_price": { + "interval": [ + "1092658584837693970610685740320363083389571809/250000000000000000000000000000000000000000000000", + "1092658584837693970616845549972449120859285797/250000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "delta": { + "1": -1, + "4": 2, + "7": -1 + }, + "occurrences": 7412 + }, + { + "certified_price": { + "interval": [ + "1653029621766664703907147022856597178285696937/500000000000000000000000000000000000000000000000", + "3306059243533329407818968241778751118521381861/1000000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "delta": { + "1": 1, + "2": 1, + "3": -1 + }, + "occurrences": 1800 + }, + { + "certified_price": { + "interval": [ + "4881452839856076353885755201879890100241848273/500000000000000000000000000000000000000000000000", + "4881452839856076353902052126120128444919037263/500000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "delta": { + "1": 1, + "2": 2, + "4": -1, + "6": 1, + "7": -1 + }, + "occurrences": 29 + }, + { + "certified_price": { + "interval": [ + "486620536011705732150471215546387264270361509/125000000000000000000000000000000000000000000000", + "3892964288093645857212591158894093867872398973/1000000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "delta": { + "1": 1, + "3": 1, + "4": -1 + }, + "occurrences": 58 + }, + { + "certified_price": { + "interval": [ + "1033942307834101500327576282101887130008313671/125000000000000000000000000000000000000000000000", + "103394230783410150033119714672512756238018151/12500000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "delta": { + "1": 2, + "2": 1, + "3": -1, + "6": 1, + "7": -1 + }, + "occurrences": 164 + }, + { + "certified_price": { + "interval": [ + "1653029621766664703907147022856597178285696937/250000000000000000000000000000000000000000000000", + "3306059243533329407818968241778751118521381861/500000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "delta": { + "1": 2, + "2": 2, + "3": -2 + }, + "occurrences": 5208 + }, + { + "certified_price": { + "interval": [ + "1497134898575280896290580786401630978776798113/1000000000000000000000000000000000000000000000000", + "748567449287640448149012120934484203886694497/500000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "delta": { + "1": 3, + "2": -3, + "3": 1 + }, + "occurrences": 1648 + }, + { + "certified_price": { + "interval": [ + "5788798853103070705217452151264145698318951621/500000000000000000000000000000000000000000000000", + "11577597706206141410468545415579771617562833941/1000000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "delta": { + "1": 3, + "2": 2, + "3": -2, + "6": 1, + "7": -1 + }, + "occurrences": 5202 + }, + { + "certified_price": { + "interval": [ + "1426914078646908639967613297376068934685946327/250000000000000000000000000000000000000000000000", + "713457039323454319984217844483617770896308981/125000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "delta": { + "1": 3, + "3": -1 + }, + "occurrences": 7124 + }, + { + "certified_price": { + "interval": [ + "2401597071054305152054774514090191048649089987/500000000000000000000000000000000000000000000000", + "1200798535527152576028079571895540691086195717/250000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "delta": { + "1": 4, + "2": -2 + }, + "occurrences": 270 + }, + { + "certified_price": { + "interval": [ + "5336567766863558577338384700303089211119450401/500000000000000000000000000000000000000000000000", + "10673135533727117154704351687891211547690542067/1000000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "delta": { + "1": 4, + "3": -1, + "6": 1, + "7": -1 + }, + "occurrences": 6396 + }, + { + "certified_price": { + "interval": [ + "3302089325919134276326297368079078338397612547/500000000000000000000000000000000000000000000000", + "6604178651838268552670228452646057533313086397/1000000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "delta": { + "2": 1, + "4": 1, + "6": -1 + }, + "occurrences": 2 + }, + { + "certified_price": { + "interval": [ + "2934970695809253425282225556512007828947058967/500000000000000000000000000000000000000000000000", + "5869941391618506850594802659710829450392362093/1000000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "delta": { + "2": 2, + "3": -1, + "6": 1, + "7": -1 + }, + "occurrences": 33765 + }, + { + "certified_price": { + "interval": [ + "1199356615143167528241298548164469379247145263/250000000000000000000000000000000000000000000000", + "4797426460572670112973495320217987509318004307/1000000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "delta": { + "2": 2, + "4": -1 + }, + "occurrences": 144 + }, + { + "certified_price": { + "interval": [ + "5333683926095588481764822652840946587441349493/500000000000000000000000000000000000000000000000", + "6667104907619485602230186237455510599818979/625000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "delta": { + "2": 4, + "3": -1, + "4": -1, + "6": 1, + "7": -1 + }, + "occurrences": 72 + }, + { + "certified_price": { + "interval": [ + "1072514931045836737593725052207808815622716521/1000000000000000000000000000000000000000000000000", + "1072514931045836737626839207651171266357178147/1000000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "delta": { + "3": -1, + "4": 1, + "6": 1, + "7": -1 + }, + "occurrences": 116 + }, + { + "certified_price": { + "interval": [ + "7191083696398585002044312716609723331242857113/1000000000000000000000000000000000000000000000000", + "898885462049823125257701133495967173225996211/125000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "delta": { + "3": 2, + "6": -1 + }, + "occurrences": 98 + } + ], + "first": [ + { + "candidate_sha256": "e4dc844cba39f7bb5eabfac6c1cf32f5da2f67fe3771361a0e7423c73f7654d0", + "frame_touch_classes": 15, + "illegal_witnesses": [], + "legal_literal_moves": 9151, + "nomination_missing_frame_touch_classes": 6, + "operation": [ + "A", + 2028 + ], + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 19, + "original_nominations": 9, + "profile_delta_classes": 5 + }, + { + "candidate_sha256": "56b86b73790b81a3b1b5586a1aced1fec452cb144ad8a63fd8109a8a4d5e4db2", + "frame_touch_classes": 10, + "illegal_witnesses": [], + "legal_literal_moves": 173, + "nomination_missing_frame_touch_classes": 3, + "operation": [ + "A", + 2076 + ], + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 9, + "original_nominations": 7, + "profile_delta_classes": 3 + }, + { + "candidate_sha256": "9c67a13b465d4d5e4d4cb1450cdf7e6499e80df8430caf5703396626a9e82fc8", + "frame_touch_classes": 1, + "illegal_witnesses": [], + "legal_literal_moves": 1, + "nomination_missing_frame_touch_classes": 0, + "operation": [ + "A", + 2129 + ], + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1 + }, + { + "candidate_sha256": "66351f03c807c51d7afb6c7065eda437ddeb67c13dfa878b2f684718d54c3941", + "frame_touch_classes": 1, + "illegal_witnesses": [], + "legal_literal_moves": 258, + "nomination_missing_frame_touch_classes": 0, + "operation": [ + "A", + 281 + ], + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1 + }, + { + "candidate_sha256": "40d7801fd7932b2ff5a53d443aa8c056098470077e8576fc30724fbd352c98a8", + "frame_touch_classes": 1, + "illegal_witnesses": [], + "legal_literal_moves": 367, + "nomination_missing_frame_touch_classes": 0, + "operation": [ + "B", + 1 + ], + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1 + } + ], + "independent_local_profile": { + "1": 1323, + "2": 1342, + "3": 79, + "4": 44, + "5": 102, + "6": 11, + "7": 19 + }, + "reference_root_bracket": [ + "1733427039589844234749/1000000000000000000000000", + "6933708158359376939/4000000000000000000000" + ], + "schema": 1, + "scope": { + "all_literal_slots": true, + "first_operations": [ + [ + "A", + 2028 + ], + [ + "A", + 2076 + ], + [ + "A", + 2129 + ], + [ + "A", + 281 + ], + [ + "B", + 1 + ] + ], + "first_state_selection": "earliest literal move, first original nomination, first alternative frame or last literal move; duplicates removed", + "frame_universe": "original catalogue plus exact rational lower-span closure per slot", + "global_neighborhood_claim": false, + "max_first_states": 15, + "second_operation_rule": "all adjacent stable operation identities in both sections", + "selected_first_states": 10, + "steinberg_in_scope": false + }, + "second": [ + { + "candidate_sha256": "25709256f5293a06fc44838327e4f14821b832c09fab15ab136085f552d49868", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 231 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 3, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 230, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 3, + "original_nominations": 3, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 230 + ] + }, + { + "candidate_sha256": "07e5a7185c68d65b2f5530441b4c1138499a620a59b48cc80a8990596de722bf", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 231 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 15, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 9151, + "nomination_missing_frame_touch_classes": 7, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 14, + "original_nominations": 8, + "profile_delta_classes": 5, + "second_operation": [ + "A", + 2028 + ] + }, + { + "candidate_sha256": "c67b7cf94ec88fe65e3fe26c64fe96359cb5ff5cb773206b457a50ed49d8164d", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 231 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 9, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 3277, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 10, + "original_nominations": 8, + "profile_delta_classes": 2, + "second_operation": [ + "A", + 2029 + ] + }, + { + "candidate_sha256": "437a6fa509268b3a2861eb0a0e7777ce6a0bba29e4bfe72f2ca596c17b81f300", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 231 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 8, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 3241, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 8, + "original_nominations": 7, + "profile_delta_classes": 2, + "second_operation": [ + "A", + 2030 + ] + }, + { + "candidate_sha256": "66c3814d4b0077af3513817192e4d6c2f93344c30ff6c706cbcb2d5a6bf28c5f", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 231 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 8, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 3226, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 8, + "original_nominations": 7, + "profile_delta_classes": 2, + "second_operation": [ + "A", + 2031 + ] + }, + { + "candidate_sha256": "a76b3b04d286d58feec6394c9f357f7e62b16a55f2680be731a3bb01bb0ec635", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 231 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 8, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 3233, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 8, + "original_nominations": 7, + "profile_delta_classes": 2, + "second_operation": [ + "A", + 2032 + ] + }, + { + "candidate_sha256": "80cd8e51c515afb2e33cc5e7e38a3310038bdcb44e12e9ef2beffc3301597785", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 231 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 8, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 3397, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 8, + "original_nominations": 7, + "profile_delta_classes": 2, + "second_operation": [ + "A", + 2033 + ] + }, + { + "candidate_sha256": "2f144061886871b1af646e84c59f947622062d92e72a3a4905ed4eec56ea9b1f", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 231 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 7, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 3649, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 7, + "original_nominations": 6, + "profile_delta_classes": 2, + "second_operation": [ + "A", + 2034 + ] + }, + { + "candidate_sha256": "5e4076d160b58e72971e27caaa1bc58d7cbc190bd17c30fb3043d3b10cb4493a", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 231 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 12, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 3748, + "nomination_missing_frame_touch_classes": 4, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 11, + "original_nominations": 8, + "profile_delta_classes": 4, + "second_operation": [ + "A", + 2035 + ] + }, + { + "candidate_sha256": "14aeb003a87a80d6094de406478eeb2cd608e3db3f947ed4d29d08ca1fde069b", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 231 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 76, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2084 + ] + }, + { + "candidate_sha256": "f9e7d4c7cf0194b8fa8303228ff513546fcccd5ba8d10aa0d2a17c3e8e0d18ae", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 231 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 16, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2113 + ] + }, + { + "candidate_sha256": "3831f3fd4c06471cd8f55b3467485d7214e8b7da7e0c64326909fe7aecd57409", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 2027 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 3, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 425, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 3, + "original_nominations": 3, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 230 + ] + }, + { + "candidate_sha256": "8daec48c6fda8473c673bc88a631f1f46c9c26594b2eca3eb95f8b04c35d7795", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 2027 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 15, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 9151, + "nomination_missing_frame_touch_classes": 6, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 19, + "original_nominations": 9, + "profile_delta_classes": 5, + "second_operation": [ + "A", + 2028 + ] + }, + { + "candidate_sha256": "5bbd440c6ebd97e631d9305f1c86084c52a5c2d0d7262b5178f845eddf096865", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 2027 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 9, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 57, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 10, + "original_nominations": 8, + "profile_delta_classes": 2, + "second_operation": [ + "A", + 2029 + ] + }, + { + "candidate_sha256": "a227978fad435bb84c15d49d60e63d162945f873266041cdd8cd43dfefdccd5a", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 2027 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 8, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 31, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 8, + "original_nominations": 7, + "profile_delta_classes": 2, + "second_operation": [ + "A", + 2030 + ] + }, + { + "candidate_sha256": "9c9d96bc2e32351988f7c820bc23d488f0daad3eba3f95beac0845d15088e85d", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 2027 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 8, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 30, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 8, + "original_nominations": 7, + "profile_delta_classes": 2, + "second_operation": [ + "A", + 2031 + ] + }, + { + "candidate_sha256": "591be7a0091db21e0c2526d0354480241c2217972a516687a473433f2315981a", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 2027 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 8, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 57, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 8, + "original_nominations": 7, + "profile_delta_classes": 2, + "second_operation": [ + "A", + 2032 + ] + }, + { + "candidate_sha256": "7c1a39ce0d3528c0254c0a69deb7bf7a5a2d677fd8c175295305a3d8e075009a", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 2027 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 7, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 9, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 7, + "original_nominations": 6, + "profile_delta_classes": 2, + "second_operation": [ + "A", + 2033 + ] + }, + { + "candidate_sha256": "392a3e0d9a877f46a1679b3a68e3725887e677145b0812f426a76dbb9f03259a", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 2027 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 7, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 57, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 7, + "original_nominations": 6, + "profile_delta_classes": 2, + "second_operation": [ + "A", + 2034 + ] + }, + { + "candidate_sha256": "46c6b4c0f3c07ea9f1f8278f85ce575ec4e74f67684f6756dc14cf5a136612b8", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 2027 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 12, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 158, + "nomination_missing_frame_touch_classes": 4, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 11, + "original_nominations": 8, + "profile_delta_classes": 4, + "second_operation": [ + "A", + 2035 + ] + }, + { + "candidate_sha256": "14aeb003a87a80d6094de406478eeb2cd608e3db3f947ed4d29d08ca1fde069b", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 2027 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 76, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2084 + ] + }, + { + "candidate_sha256": "f9e7d4c7cf0194b8fa8303228ff513546fcccd5ba8d10aa0d2a17c3e8e0d18ae", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 2027 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 16, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2113 + ] + }, + { + "candidate_sha256": "1b35d4b39595bec81d050e0aff1fe6182d13d6f57924d2fb86cef954b6b80de2", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451837236772864", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 186, + "slot": 231 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 4, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 305, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 5, + "original_nominations": 4, + "profile_delta_classes": 2, + "second_operation": [ + "A", + 230 + ] + }, + { + "candidate_sha256": "db2b8d94020145bdbf2fb5731c48daf6e72e3ca39b7c41abe913339434d6375f", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451837236772864", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 186, + "slot": 231 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 15, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 9151, + "nomination_missing_frame_touch_classes": 6, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 14, + "original_nominations": 9, + "profile_delta_classes": 5, + "second_operation": [ + "A", + 2028 + ] + }, + { + "candidate_sha256": "c67b7cf94ec88fe65e3fe26c64fe96359cb5ff5cb773206b457a50ed49d8164d", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451837236772864", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 186, + "slot": 231 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 9, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 3277, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 10, + "original_nominations": 8, + "profile_delta_classes": 2, + "second_operation": [ + "A", + 2029 + ] + }, + { + "candidate_sha256": "bd4928ee0c6c157b818584e814436e2bd5f2606a94a678ac6bc007e1de659eaf", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451837236772864", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 186, + "slot": 231 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 8, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 3241, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 8, + "original_nominations": 7, + "profile_delta_classes": 2, + "second_operation": [ + "A", + 2030 + ] + }, + { + "candidate_sha256": "ded7ab891deb9a0a5476557d071dcd60a54f7af45ba9d49319462ad538678b0f", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451837236772864", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 186, + "slot": 231 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 9, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 3390, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 9, + "original_nominations": 8, + "profile_delta_classes": 3, + "second_operation": [ + "A", + 2031 + ] + }, + { + "candidate_sha256": "a76b3b04d286d58feec6394c9f357f7e62b16a55f2680be731a3bb01bb0ec635", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451837236772864", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 186, + "slot": 231 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 8, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 3233, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 8, + "original_nominations": 7, + "profile_delta_classes": 2, + "second_operation": [ + "A", + 2032 + ] + }, + { + "candidate_sha256": "0de71fabccae0127812cd0ba1345cb64263875a0f972c0fde1bdab89a1f3fe90", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451837236772864", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 186, + "slot": 231 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 7, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 3193, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 7, + "original_nominations": 6, + "profile_delta_classes": 2, + "second_operation": [ + "A", + 2033 + ] + }, + { + "candidate_sha256": "6f52b61f49df1455c8712f5bdd7a029ad89e8fdf18a900ff9a3c20190fcc04c3", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451837236772864", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 186, + "slot": 231 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 7, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 3649, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 7, + "original_nominations": 6, + "profile_delta_classes": 2, + "second_operation": [ + "A", + 2034 + ] + }, + { + "candidate_sha256": "0c4adea49132591b8665e555c2b20fbd8543cd67787503ef1d65510b955ab573", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451837236772864", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 186, + "slot": 231 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 12, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 3748, + "nomination_missing_frame_touch_classes": 4, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 11, + "original_nominations": 8, + "profile_delta_classes": 4, + "second_operation": [ + "A", + 2035 + ] + }, + { + "candidate_sha256": "14aeb003a87a80d6094de406478eeb2cd608e3db3f947ed4d29d08ca1fde069b", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451837236772864", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 186, + "slot": 231 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 76, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2084 + ] + }, + { + "candidate_sha256": "f9e7d4c7cf0194b8fa8303228ff513546fcccd5ba8d10aa0d2a17c3e8e0d18ae", + "cross_section": false, + "first": { + "current_index": 2028, + "frame_mask": "151115727451837236772864", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 186, + "slot": 231 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 16, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2113 + ] + }, + { + "candidate_sha256": "fb36571b8014e527eacaf7239209e7318636fdf9852c6deca9ab101d53dbb423", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2034 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 2, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 431, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 175 + ] + }, + { + "candidate_sha256": "d3975678919fac2f537c19c6c5c98eabb44e1b906c58323d0e26a1bc9a486e13", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2034 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 4, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 2033, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 4, + "original_nominations": 4, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 229 + ] + }, + { + "candidate_sha256": "0782a299c3088072cacecf7a509f18b78e9163b58cf4bcdaa576bab139adbd1b", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2034 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 258, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 434 + ] + }, + { + "candidate_sha256": "8de71be011d11f478b4cebeafff8e7096f06c7eca4804f63b87c76bb312bf831", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2034 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 5, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 5, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 5, + "original_nominations": 4, + "profile_delta_classes": 2, + "second_operation": [ + "A", + 2033 + ] + }, + { + "candidate_sha256": "2c7cf79a4518ad3dd0869b6db87b94f8a0b2cc724acb0696b7b9299ccf38307f", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2034 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 10, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 173, + "nomination_missing_frame_touch_classes": 3, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 9, + "original_nominations": 7, + "profile_delta_classes": 3, + "second_operation": [ + "A", + 2076 + ] + }, + { + "candidate_sha256": "27765e2a4efe10c4d07dc8ba1b49c22507a569791ce37bc5b5a6febfbd9b63b3", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2034 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 7, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 41, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 7, + "original_nominations": 7, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2036 + ] + }, + { + "candidate_sha256": "230282dff0fe46795e2cb6d6a3b5bfeb96d109c4434b4667d5244f3e9dfbde50", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2034 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 6, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 24, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 6, + "original_nominations": 6, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2037 + ] + }, + { + "candidate_sha256": "f88beb998ecd3e93fa937dfc858afebbef239edf6ae59592ec2c0aee42b06560", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2034 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 6, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 23, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 6, + "original_nominations": 6, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2038 + ] + }, + { + "candidate_sha256": "6022c23c7d6a65f40f377cf2ca53df893c8128c9993d950e1d4b6e0593794f5b", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2034 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 6, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 41, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 6, + "original_nominations": 6, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2039 + ] + }, + { + "candidate_sha256": "a2a2c8f8490395e1246dc4d7ffa11d000552015b3f413150383a907b3899ecc8", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2034 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 6, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 41, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 6, + "original_nominations": 6, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2040 + ] + }, + { + "candidate_sha256": "778193137cebeda3e59058d36fe6df79d56910b65d7a93a1a26028f30d3a0da5", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2034 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 11, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 173, + "nomination_missing_frame_touch_classes": 3, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 10, + "original_nominations": 8, + "profile_delta_classes": 3, + "second_operation": [ + "A", + 2041 + ] + }, + { + "candidate_sha256": "d701e35a49f4380411b8611bd2f6cb1dcd100d8b4b620d108d1685f17674c820", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2034 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 81, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2075 + ] + }, + { + "candidate_sha256": "2116e66e7ac29da802c9eb0c42639520a81538ce337c80e37673ddefe554ec76", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2034 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 4, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2125 + ] + }, + { + "candidate_sha256": "fb36571b8014e527eacaf7239209e7318636fdf9852c6deca9ab101d53dbb423", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2036 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 2, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 431, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 175 + ] + }, + { + "candidate_sha256": "41a09afc559ae4aaf34b21d30a8651be0d5eee44c4ab3b79894e70f692688408", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2036 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 4, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 2035, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 4, + "original_nominations": 4, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 229 + ] + }, + { + "candidate_sha256": "0782a299c3088072cacecf7a509f18b78e9163b58cf4bcdaa576bab139adbd1b", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2036 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 258, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 434 + ] + }, + { + "candidate_sha256": "903ed247413870183e0a1d516c1828df5deb83b1152ca9360a7ea375a17a74e1", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2036 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 7, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 7, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 7, + "original_nominations": 6, + "profile_delta_classes": 2, + "second_operation": [ + "A", + 2033 + ] + }, + { + "candidate_sha256": "0bae6f2a4e84d4f1c0441a09971ec82fb06a68f8a241709f19e6162c8d1d5778", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2036 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 10, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 173, + "nomination_missing_frame_touch_classes": 2, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 10, + "original_nominations": 8, + "profile_delta_classes": 3, + "second_operation": [ + "A", + 2076 + ] + }, + { + "candidate_sha256": "abfbf7421bc0373ad9471de0b1d6be9ca143767c817c688d140743a07ad1bbad", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2036 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 6, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 41, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 6, + "original_nominations": 6, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2036 + ] + }, + { + "candidate_sha256": "91a3ec1a08d7369fcb7e7cc3d5dbb75fe75a4f7dfa2bde81b549881bc27d14ed", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2036 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 6, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 24, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 6, + "original_nominations": 6, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2037 + ] + }, + { + "candidate_sha256": "07d922004c133031dcd5dcf34a1cf1b51574558119973f7d336f9583c62799ce", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2036 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 6, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 23, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 6, + "original_nominations": 6, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2038 + ] + }, + { + "candidate_sha256": "750b7e7cfb24f35b1acedfa1de058e57df09ed8d961ece06bb55002283d12559", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2036 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 6, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 41, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 6, + "original_nominations": 6, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2039 + ] + }, + { + "candidate_sha256": "2ec8f945f5a9e2ffc36937cf9aeb605645773d5dec07f5f3e2555d0066f8cb2b", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2036 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 6, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 41, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 6, + "original_nominations": 6, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2040 + ] + }, + { + "candidate_sha256": "0b3a33d3fa6c46247f470d4621fbc0a1d0c529d56dd74f280c589b6b88b902b3", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2036 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 11, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 173, + "nomination_missing_frame_touch_classes": 3, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 10, + "original_nominations": 8, + "profile_delta_classes": 3, + "second_operation": [ + "A", + 2041 + ] + }, + { + "candidate_sha256": "d701e35a49f4380411b8611bd2f6cb1dcd100d8b4b620d108d1685f17674c820", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2036 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 81, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2075 + ] + }, + { + "candidate_sha256": "2116e66e7ac29da802c9eb0c42639520a81538ce337c80e37673ddefe554ec76", + "cross_section": false, + "first": { + "current_index": 2076, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2076 + ], + "original_frame_id": 509, + "slot": 2036 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 4, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2125 + ] + }, + { + "candidate_sha256": "52011458dce29ee8929f21e8ce5ce216ebc47c9bb274ea28152a17e10bfb5000", + "cross_section": false, + "first": { + "current_index": 2129, + "frame_mask": "610243267866258280493576590715221", + "operation": [ + "A", + 2129 + ], + "original_frame_id": 518, + "slot": 2128 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 3, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 373, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 3, + "original_nominations": 3, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 132 + ] + }, + { + "candidate_sha256": "98d012b731c791df98dcacc23d2ee20d8f262c82a4c83057a61836cd53991507", + "cross_section": false, + "first": { + "current_index": 2129, + "frame_mask": "610243267866258280493576590715221", + "operation": [ + "A", + 2129 + ], + "original_frame_id": 518, + "slot": 2128 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 3, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 415, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 3, + "original_nominations": 3, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 240 + ] + }, + { + "candidate_sha256": "db82b718ef830741a630f59874707401195518e5f7fc63fc88901335054421ed", + "cross_section": false, + "first": { + "current_index": 2129, + "frame_mask": "610243267866258280493576590715221", + "operation": [ + "A", + 2129 + ], + "original_frame_id": 518, + "slot": 2128 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 241, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 374 + ] + }, + { + "candidate_sha256": "7d72ad4e9691164384e638fa9fa71fcb8c1ec5b39f0b95ca664d4fb976b70b8e", + "cross_section": false, + "first": { + "current_index": 2129, + "frame_mask": "610243267866258280493576590715221", + "operation": [ + "A", + 2129 + ], + "original_frame_id": 518, + "slot": 2128 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 5, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 3330, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 6, + "original_nominations": 4, + "profile_delta_classes": 2, + "second_operation": [ + "A", + 2024 + ] + }, + { + "candidate_sha256": "061130b5cb1ed86149e1ee9fb1178a7ec3a01a31ddcbdc608417f5aa12bee539", + "cross_section": false, + "first": { + "current_index": 2129, + "frame_mask": "610243267866258280493576590715221", + "operation": [ + "A", + 2129 + ], + "original_frame_id": 518, + "slot": 2128 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 3, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 35, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 3, + "original_nominations": 3, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2025 + ] + }, + { + "candidate_sha256": "b47ec67ed76b643c57c051716b3d39de4fa56d304addf5547f2bd4ac0db6ccd1", + "cross_section": false, + "first": { + "current_index": 2129, + "frame_mask": "610243267866258280493576590715221", + "operation": [ + "A", + 2129 + ], + "original_frame_id": 518, + "slot": 2128 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 4, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 1679, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 4, + "original_nominations": 4, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2026 + ] + }, + { + "candidate_sha256": "9cafc9bc05322916bac9844c1a040d41914a4730a8a11146d24f8b0a608a3502", + "cross_section": false, + "first": { + "current_index": 2129, + "frame_mask": "610243267866258280493576590715221", + "operation": [ + "A", + 2129 + ], + "original_frame_id": 518, + "slot": 2128 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 6, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 3332, + "nomination_missing_frame_touch_classes": 2, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 5, + "original_nominations": 4, + "profile_delta_classes": 2, + "second_operation": [ + "A", + 2027 + ] + }, + { + "candidate_sha256": "d3c48b4b906006a14a6230a56c447ade9e7a8e4f1071291476c16099c838155e", + "cross_section": false, + "first": { + "current_index": 2129, + "frame_mask": "610243267866258280493576590715221", + "operation": [ + "A", + 2129 + ], + "original_frame_id": 518, + "slot": 2128 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 99, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2060 + ] + }, + { + "candidate_sha256": "649327ab1c5df9886a168b8b6a0426b624ab17f2eb6ab8bb07f27ea8866365eb", + "cross_section": false, + "first": { + "current_index": 2129, + "frame_mask": "610243267866258280493576590715221", + "operation": [ + "A", + 2129 + ], + "original_frame_id": 518, + "slot": 2128 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 225, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2127 + ] + }, + { + "candidate_sha256": "b637875282312433748c98b83c06f0eb74a1992d6ed88357cd1df549534d4a45", + "cross_section": false, + "first": { + "current_index": 2129, + "frame_mask": "610243267866258280493576590715221", + "operation": [ + "A", + 2129 + ], + "original_frame_id": 518, + "slot": 2128 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 1, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2129 + ] + }, + { + "candidate_sha256": "205258252ba5547d6def293baee0b4fc3606fb33f8a324408aedf992a628ef5e", + "cross_section": false, + "first": { + "current_index": 2129, + "frame_mask": "610243267866258280493576590715221", + "operation": [ + "A", + 2129 + ], + "original_frame_id": 518, + "slot": 2128 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 1, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2128 + ] + }, + { + "candidate_sha256": "a08622fcb300073c0e970cef168dd8cc478b900e423e02de0a75cfa0b835a606", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 2, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 22, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 2, + "original_nominations": 2, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 6 + ] + }, + { + "candidate_sha256": "6cf1ef75c1a2c903435db07355095dbce3a60cec3bb49d5471d186e59d7121c5", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 2, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 22, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 7 + ] + }, + { + "candidate_sha256": "badb1b0cc2ca14453741ca1195f87ce882e9e1658b6b38216f510e786ba5e1f5", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 22, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 22 + ] + }, + { + "candidate_sha256": "2b6e4f091a7dc0e4630af5659c70e8c2b35b29033b16333d68f9e47ccc40cd47", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 258, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 0, + "original_nominations": 0, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 281 + ] + }, + { + "candidate_sha256": "7602a6c98cee12eec60995b4706cf7026aae36fe4fba5f3cb8373d0099d9c619", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 679, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 282 + ] + }, + { + "candidate_sha256": "585da065b66cc21906fe194f6d8f6a7ee93f7fdfc5bf1a1b953854a5d8f85f1c", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 6, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 674, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 6, + "original_nominations": 5, + "profile_delta_classes": 2, + "second_operation": [ + "A", + 704 + ] + }, + { + "candidate_sha256": "d11c3b76d3d63581d8413129a6a53de9d7414586a93e0156d0fe8c4bda6051c8", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 4, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 273, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 4, + "original_nominations": 4, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 705 + ] + }, + { + "candidate_sha256": "8809547fa92c46627d15d72cc643ec3ba13a6d6cc89445119fecea6819030337", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 6, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 240, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 6, + "original_nominations": 6, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 706 + ] + }, + { + "candidate_sha256": "f0e06683a0a9f49aac11beed8cfaefc93265ebf03445d0264db3479733a80c59", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 8, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 121, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 7, + "original_nominations": 7, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 707 + ] + }, + { + "candidate_sha256": "cdc8f55c31c9ceec397437b195096096b2914537179aff7a66517d72481f4065", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 7, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 1112, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 7, + "original_nominations": 7, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 714 + ] + }, + { + "candidate_sha256": "b007438dea64536167246f9843bf1ed807b2cb9d64d26febeeb1ba1421c5f87f", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 4, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 1107, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 3, + "original_nominations": 3, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 719 + ] + }, + { + "candidate_sha256": "a491e3436946f2cbb0484a5c92cddda3f93b8d6fece5ec62260071663968429d", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 4, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 1108, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 4, + "original_nominations": 4, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 721 + ] + }, + { + "candidate_sha256": "baf7b87fdf123843509ca9614a78242892858d07a79c4bcf3be7b3ca7d859f3c", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 2, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 1102, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 724 + ] + }, + { + "candidate_sha256": "8c02b66844e7947c1ce16fe97ae8b5d1078d42bca940a5ba81a63ed758916f95", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 1342, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 1826 + ] + }, + { + "candidate_sha256": "df1206a9070e511a60f718d70fb6a329fe308a5093c489965ea18bc50c20a437", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 279, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2106 + ] + }, + { + "candidate_sha256": "447c60c2f871e8fb27fe0db0e5a53e1ad287e5cb474cfbf1e6af1e9668aec363", + "cross_section": true, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 132, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 0, + "original_nominations": 0, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 0 + ] + }, + { + "candidate_sha256": "43b586c60a3e69cd418cf32decb3260d8d6a521546b52518006fa85233b724cc", + "cross_section": true, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 3, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 78, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 3, + "original_nominations": 3, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 133 + ] + }, + { + "candidate_sha256": "18ef5cfa9b32e92aee544d580d5152ea0cbfdba521aebf52fa01e21c3caad9e7", + "cross_section": true, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 10, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 27, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 10, + "original_nominations": 10, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 142 + ] + }, + { + "candidate_sha256": "5c95e728e651d4e012c176d2509712ff15d6d94d894028fc41cf01a6e9cbc51b", + "cross_section": true, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 6, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 15, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 6, + "original_nominations": 6, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 150 + ] + }, + { + "candidate_sha256": "5873eaa16ee8610e1d1e1653d1cca186ffdcacc7cff73319078955bf0e99721a", + "cross_section": true, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 5, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 16, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 5, + "original_nominations": 5, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 153 + ] + }, + { + "candidate_sha256": "318cfafc0338c12a0b3161044b702de45bb6e2011b572a4fc2a3c0b88188bd7f", + "cross_section": true, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 9, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 25, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 9, + "original_nominations": 9, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 154 + ] + }, + { + "candidate_sha256": "7c272812f6a33676296df38a3e55672dc60499609b43aa2df58d672e6d743bb7", + "cross_section": true, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 7, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 23, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 7, + "original_nominations": 7, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 157 + ] + }, + { + "candidate_sha256": "28a711a5419ce671f5cfa8a72d5676941dc803857ddf0cfd31dc2549530cd41a", + "cross_section": true, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 9, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 27, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 9, + "original_nominations": 9, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 161 + ] + }, + { + "candidate_sha256": "ed79ac1711cd0a3ed2d59eb9e1b0363468e51d384bb39f9acba55f6b77bd77d8", + "cross_section": true, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 381, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 0, + "original_nominations": 0, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 162 + ] + }, + { + "candidate_sha256": "40bbb99ff2c438598130f3be533e981e674b3df08a6fd796fa75661bacc20a6f", + "cross_section": true, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 601, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 544 + ] + }, + { + "candidate_sha256": "46f2af1773b72f70349e91773906009ea59c16ab8dd525af112c104ce04b0de7", + "cross_section": true, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 4, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 1533, + "nomination_missing_frame_touch_classes": 2, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 3, + "original_nominations": 2, + "profile_delta_classes": 2, + "second_operation": [ + "B", + 603 + ] + }, + { + "candidate_sha256": "7e603c48065f74865c58693d9186d4c7efa19a989ee5b5859963d6345c465683", + "cross_section": true, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 23 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 4, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 607, + "nomination_missing_frame_touch_classes": 2, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 3, + "original_nominations": 2, + "profile_delta_classes": 2, + "second_operation": [ + "B", + 765 + ] + }, + { + "candidate_sha256": "bfac35b69d4a03f79397e116469fa0ac3dc0eafa41ae80b24b6b00a8df379d84", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 2, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 274, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 2, + "original_nominations": 2, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 6 + ] + }, + { + "candidate_sha256": "1d3241560e4c20ce73d2864bce6a2e0bf9d21e97f6a1ae1137ebde759d04739e", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 2, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 279, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 7 + ] + }, + { + "candidate_sha256": "23bd1c2f1f6d6d0d680986753ccbd51ea0baa93e5dfad178b2b4c12de6f76701", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 3, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 276, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 3, + "original_nominations": 3, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 22 + ] + }, + { + "candidate_sha256": "e0824c00cdb4c2f9abde6823a915c72dde1e48244b5f1a496c36faed409285c7", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 258, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 281 + ] + }, + { + "candidate_sha256": "4a437b7f5a5912316de949130aee28dd6cf89640b0916a281fa7b31e131a4897", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 422, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 282 + ] + }, + { + "candidate_sha256": "585da065b66cc21906fe194f6d8f6a7ee93f7fdfc5bf1a1b953854a5d8f85f1c", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 6, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 674, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 6, + "original_nominations": 5, + "profile_delta_classes": 2, + "second_operation": [ + "A", + 704 + ] + }, + { + "candidate_sha256": "d11c3b76d3d63581d8413129a6a53de9d7414586a93e0156d0fe8c4bda6051c8", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 4, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 273, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 4, + "original_nominations": 4, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 705 + ] + }, + { + "candidate_sha256": "8809547fa92c46627d15d72cc643ec3ba13a6d6cc89445119fecea6819030337", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 6, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 240, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 6, + "original_nominations": 6, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 706 + ] + }, + { + "candidate_sha256": "f0e06683a0a9f49aac11beed8cfaefc93265ebf03445d0264db3479733a80c59", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 8, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 121, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 7, + "original_nominations": 7, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 707 + ] + }, + { + "candidate_sha256": "cdc8f55c31c9ceec397437b195096096b2914537179aff7a66517d72481f4065", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 7, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 1112, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 7, + "original_nominations": 7, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 714 + ] + }, + { + "candidate_sha256": "b007438dea64536167246f9843bf1ed807b2cb9d64d26febeeb1ba1421c5f87f", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 4, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 1107, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 3, + "original_nominations": 3, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 719 + ] + }, + { + "candidate_sha256": "a491e3436946f2cbb0484a5c92cddda3f93b8d6fece5ec62260071663968429d", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 4, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 1108, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 4, + "original_nominations": 4, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 721 + ] + }, + { + "candidate_sha256": "baf7b87fdf123843509ca9614a78242892858d07a79c4bcf3be7b3ca7d859f3c", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 2, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 1102, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 724 + ] + }, + { + "candidate_sha256": "8c02b66844e7947c1ce16fe97ae8b5d1078d42bca940a5ba81a63ed758916f95", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 1342, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 1826 + ] + }, + { + "candidate_sha256": "df1206a9070e511a60f718d70fb6a329fe308a5093c489965ea18bc50c20a437", + "cross_section": false, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 279, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 2106 + ] + }, + { + "candidate_sha256": "447c60c2f871e8fb27fe0db0e5a53e1ad287e5cb474cfbf1e6af1e9668aec363", + "cross_section": true, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 132, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 0, + "original_nominations": 0, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 0 + ] + }, + { + "candidate_sha256": "43b586c60a3e69cd418cf32decb3260d8d6a521546b52518006fa85233b724cc", + "cross_section": true, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 3, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 78, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 3, + "original_nominations": 3, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 133 + ] + }, + { + "candidate_sha256": "18ef5cfa9b32e92aee544d580d5152ea0cbfdba521aebf52fa01e21c3caad9e7", + "cross_section": true, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 10, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 27, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 10, + "original_nominations": 10, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 142 + ] + }, + { + "candidate_sha256": "5c95e728e651d4e012c176d2509712ff15d6d94d894028fc41cf01a6e9cbc51b", + "cross_section": true, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 6, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 15, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 6, + "original_nominations": 6, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 150 + ] + }, + { + "candidate_sha256": "5873eaa16ee8610e1d1e1653d1cca186ffdcacc7cff73319078955bf0e99721a", + "cross_section": true, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 5, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 16, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 5, + "original_nominations": 5, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 153 + ] + }, + { + "candidate_sha256": "318cfafc0338c12a0b3161044b702de45bb6e2011b572a4fc2a3c0b88188bd7f", + "cross_section": true, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 9, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 25, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 9, + "original_nominations": 9, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 154 + ] + }, + { + "candidate_sha256": "7c272812f6a33676296df38a3e55672dc60499609b43aa2df58d672e6d743bb7", + "cross_section": true, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 7, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 23, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 7, + "original_nominations": 7, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 157 + ] + }, + { + "candidate_sha256": "28a711a5419ce671f5cfa8a72d5676941dc803857ddf0cfd31dc2549530cd41a", + "cross_section": true, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 9, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 27, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 9, + "original_nominations": 9, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 161 + ] + }, + { + "candidate_sha256": "ed79ac1711cd0a3ed2d59eb9e1b0363468e51d384bb39f9acba55f6b77bd77d8", + "cross_section": true, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 381, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 0, + "original_nominations": 0, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 162 + ] + }, + { + "candidate_sha256": "40bbb99ff2c438598130f3be533e981e674b3df08a6fd796fa75661bacc20a6f", + "cross_section": true, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 601, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 544 + ] + }, + { + "candidate_sha256": "46f2af1773b72f70349e91773906009ea59c16ab8dd525af112c104ce04b0de7", + "cross_section": true, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 4, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 1533, + "nomination_missing_frame_touch_classes": 2, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 3, + "original_nominations": 2, + "profile_delta_classes": 2, + "second_operation": [ + "B", + 603 + ] + }, + { + "candidate_sha256": "7e603c48065f74865c58693d9186d4c7efa19a989ee5b5859963d6345c465683", + "cross_section": true, + "first": { + "current_index": 281, + "frame_mask": "2056", + "operation": [ + "A", + 281 + ], + "original_frame_id": 127, + "slot": 280 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 4, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 607, + "nomination_missing_frame_touch_classes": 2, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 3, + "original_nominations": 2, + "profile_delta_classes": 2, + "second_operation": [ + "B", + 765 + ] + }, + { + "candidate_sha256": "76ab91f643228f775877dbdb74319c78a26d67b4ed4a5e16e6110378044892b9", + "cross_section": true, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 0 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 2, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 484, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 2, + "original_nominations": 2, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 212 + ] + }, + { + "candidate_sha256": "6acb45bda72f3844ab14702858871eee87ba8de85ecbd586125e4a423b66ef94", + "cross_section": true, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 0 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 2, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 488, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 213 + ] + }, + { + "candidate_sha256": "7c272d204760466f11e7083c073636597f2e186902fba4b98823987a59571ecd", + "cross_section": true, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 0 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 275, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 493 + ] + }, + { + "candidate_sha256": "d4830fd005447b5b2e58b539697aab32405926803473b5536dfe60112e140181", + "cross_section": false, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 0 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 367, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 0, + "original_nominations": 0, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 1 + ] + }, + { + "candidate_sha256": "db9235c3cf0b7f9da3abf0bfd3045fb6fb95b3559848128d4e3ae19933bc953b", + "cross_section": false, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 0 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 11, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 559, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 11, + "original_nominations": 10, + "profile_delta_classes": 2, + "second_operation": [ + "B", + 368 + ] + }, + { + "candidate_sha256": "f0682e8f0e351ebfb1b519de8243f1665f37d9dbe56215e73a2080bb19227456", + "cross_section": false, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 0 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 5, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 29, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 5, + "original_nominations": 5, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 391 + ] + }, + { + "candidate_sha256": "a28f6f8884f940c0e08b0f70ca935f6a35cb59c803743d9ed39f24437674be88", + "cross_section": false, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 0 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 4, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 24, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 4, + "original_nominations": 4, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 392 + ] + }, + { + "candidate_sha256": "6f6bc5dd28ba39df654924c801a31696801ad6dbf3a9ae549d174725a95ebdc3", + "cross_section": false, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 0 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 4, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 17, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 3, + "original_nominations": 3, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 393 + ] + }, + { + "candidate_sha256": "968febcd4f4e691513383d0ccf1ffecf0aa4929c9fcddeae419cc2341db1bf3a", + "cross_section": false, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 0 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 249, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 504 + ] + }, + { + "candidate_sha256": "20bb8a2f197408dc67ba7c64bd8267e8875860182f09410de05eaca4ff86872f", + "cross_section": false, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 0 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 5, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 1039, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 6, + "original_nominations": 4, + "profile_delta_classes": 2, + "second_operation": [ + "B", + 604 + ] + }, + { + "candidate_sha256": "115f047631cdf7bc2f005c7283471a8954ed15204b6f9dfa7cf2932d19c46771", + "cross_section": false, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 0 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 2, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 336, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 2, + "original_nominations": 2, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 605 + ] + }, + { + "candidate_sha256": "c4255499a6e3d36e05c8a7d96949a06bdf6c6c0a798934160b342140998b1332", + "cross_section": false, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 0 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 3, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 441, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 2, + "original_nominations": 2, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 606 + ] + }, + { + "candidate_sha256": "25537ed92806aeb608981c10ce8780a8f1b6243142ad6386493a31441e7703e7", + "cross_section": false, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 0 + }, + "first_is_original_nomination": true, + "frame_touch_classes": 2, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 428, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 2, + "original_nominations": 2, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 644 + ] + }, + { + "candidate_sha256": "76ab91f643228f775877dbdb74319c78a26d67b4ed4a5e16e6110378044892b9", + "cross_section": true, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 367 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 2, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 484, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 2, + "original_nominations": 2, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 212 + ] + }, + { + "candidate_sha256": "6acb45bda72f3844ab14702858871eee87ba8de85ecbd586125e4a423b66ef94", + "cross_section": true, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 367 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 2, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 488, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 213 + ] + }, + { + "candidate_sha256": "7c272d204760466f11e7083c073636597f2e186902fba4b98823987a59571ecd", + "cross_section": true, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 367 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": false, + "legal_literal_moves": 275, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "A", + 493 + ] + }, + { + "candidate_sha256": "dce669d19ec56505f3ca79a4aa2f3fecbf509a47c77fdaf43803c651c7bdfed4", + "cross_section": false, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 367 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 367, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 1 + ] + }, + { + "candidate_sha256": "3a23f3ab7ec334d958052ad12acb4ac9b725e94dfae95e61bf8b145838b641c1", + "cross_section": false, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 367 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 3, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 13, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 3, + "original_nominations": 3, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 368 + ] + }, + { + "candidate_sha256": "f0682e8f0e351ebfb1b519de8243f1665f37d9dbe56215e73a2080bb19227456", + "cross_section": false, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 367 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 5, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 29, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 5, + "original_nominations": 5, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 391 + ] + }, + { + "candidate_sha256": "a28f6f8884f940c0e08b0f70ca935f6a35cb59c803743d9ed39f24437674be88", + "cross_section": false, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 367 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 4, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 24, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 4, + "original_nominations": 4, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 392 + ] + }, + { + "candidate_sha256": "6f6bc5dd28ba39df654924c801a31696801ad6dbf3a9ae549d174725a95ebdc3", + "cross_section": false, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 367 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 4, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 17, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 3, + "original_nominations": 3, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 393 + ] + }, + { + "candidate_sha256": "968febcd4f4e691513383d0ccf1ffecf0aa4929c9fcddeae419cc2341db1bf3a", + "cross_section": false, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 367 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 1, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 249, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 1, + "original_nominations": 1, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 504 + ] + }, + { + "candidate_sha256": "fe200e9c5793f7e3ff08d37c64781bb23c07e8d51395b96d0e3abd2d5377da0f", + "cross_section": false, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 367 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 5, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 672, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 6, + "original_nominations": 4, + "profile_delta_classes": 2, + "second_operation": [ + "B", + 604 + ] + }, + { + "candidate_sha256": "115f047631cdf7bc2f005c7283471a8954ed15204b6f9dfa7cf2932d19c46771", + "cross_section": false, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 367 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 2, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 336, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 2, + "original_nominations": 2, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 605 + ] + }, + { + "candidate_sha256": "c4255499a6e3d36e05c8a7d96949a06bdf6c6c0a798934160b342140998b1332", + "cross_section": false, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 367 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 3, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 441, + "nomination_missing_frame_touch_classes": 1, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 1, + "original_all_legal_returned": 2, + "original_nominations": 2, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 606 + ] + }, + { + "candidate_sha256": "25537ed92806aeb608981c10ce8780a8f1b6243142ad6386493a31441e7703e7", + "cross_section": false, + "first": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 367 + }, + "first_is_original_nomination": false, + "frame_touch_classes": 2, + "legacy_pair_search_evaluates_second_section": true, + "legal_literal_moves": 428, + "nomination_missing_frame_touch_classes": 0, + "original_all_legal_illegal": 0, + "original_all_legal_missing_frame_touch_classes": 0, + "original_all_legal_returned": 2, + "original_nominations": 2, + "profile_delta_classes": 1, + "second_operation": [ + "B", + 644 + ] + } + ], + "source_word_sha256": "e3e301e62bc2b41dbf1ceac0acf3d35824ebeab1848c5a2142d4577b109da52f", + "status": "BOUNDED_COVERAGE_RECONSTRUCTED", + "timing": { + "elapsed_seconds": 30.224 + }, + "totals": { + "cross_section_second_moves": 9424, + "exact_profile_tie_occurrences": 56685, + "first_moves": 9950, + "full_replayed_delta_classes": 24, + "price_status_occurrences": { + "BETTER": 0, + "UNRESOLVED": 0, + "WORSE_OR_EQUAL": 135648 + }, + "second_moves": 125698, + "second_operation_rows": 150, + "strictly_worse_occurrences": 78963, + "unique_local_deltas": 24 + }, + "witnesses": [ + { + "certified_price": { + "interval": [ + "2934970695809253425282225556512007828947058967/500000000000000000000000000000000000000000000000", + "5869941391618506850594802659710829450392362093/1000000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 231 + }, + "local_delta": { + "2": 2, + "3": -1, + "6": 1, + "7": -1 + }, + "second": { + "current_index": 231, + "frame_mask": "151115727451837236772864", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 186, + "slot": 231 + } + }, + { + "certified_price": { + "interval": [ + "2934970695809253425282225556512007828947058967/500000000000000000000000000000000000000000000000", + "5869941391618506850594802659710829450392362093/1000000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 231 + }, + "local_delta": { + "2": 2, + "3": -1, + "6": 1, + "7": -1 + }, + "second": { + "current_index": 231, + "frame_mask": "151115727452103524745216", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 188, + "slot": 231 + } + }, + { + "certified_price": { + "interval": [ + "2934970695809253425282225556512007828947058967/500000000000000000000000000000000000000000000000", + "5869941391618506850594802659710829450392362093/1000000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 231 + }, + "local_delta": { + "2": 2, + "3": -1, + "6": 1, + "7": -1 + }, + "second": { + "current_index": 231, + "frame_mask": "154893620638124363009228800", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 190, + "slot": 231 + } + }, + { + "certified_price": { + "interval": [ + "1092658584837693970610685740320363083389571809/250000000000000000000000000000000000000000000000", + "1092658584837693970616845549972449120859285797/250000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 231 + }, + "local_delta": { + "1": -1, + "4": 2, + "7": -1 + }, + "second": { + "current_index": 231, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 509, + "slot": 231 + } + }, + { + "certified_price": { + "interval": [ + "1092658584837693970610685740320363083389571809/250000000000000000000000000000000000000000000000", + "1092658584837693970616845549972449120859285797/250000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 231 + }, + "local_delta": { + "1": -1, + "4": 2, + "7": -1 + }, + "second": { + "current_index": 231, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 509, + "slot": 2029 + } + }, + { + "certified_price": { + "interval": [ + "1092658584837693970610685740320363083389571809/250000000000000000000000000000000000000000000000", + "1092658584837693970616845549972449120859285797/250000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 231 + }, + "local_delta": { + "1": -1, + "4": 2, + "7": -1 + }, + "second": { + "current_index": 231, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 509, + "slot": 2030 + } + }, + { + "certified_price": { + "interval": [ + "1092658584837693970610685740320363083389571809/250000000000000000000000000000000000000000000000", + "1092658584837693970616845549972449120859285797/250000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 231 + }, + "local_delta": { + "1": -1, + "4": 2, + "7": -1 + }, + "second": { + "current_index": 231, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 509, + "slot": 2031 + } + }, + { + "certified_price": { + "interval": [ + "1092658584837693970610685740320363083389571809/250000000000000000000000000000000000000000000000", + "1092658584837693970616845549972449120859285797/250000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "first": { + "current_index": 2028, + "frame_mask": "151115727451828646838272", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 79, + "slot": 231 + }, + "local_delta": { + "1": -1, + "4": 2, + "7": -1 + }, + "second": { + "current_index": 231, + "frame_mask": "5106653926507645740267995136", + "operation": [ + "A", + 2028 + ], + "original_frame_id": 509, + "slot": 2032 + } + } + ] +} diff --git a/research/pr1048-certified-repair/evidence/EXECUTION.json b/research/pr1048-certified-repair/evidence/EXECUTION.json new file mode 100644 index 0000000000..5a471077fb --- /dev/null +++ b/research/pr1048-certified-repair/evidence/EXECUTION.json @@ -0,0 +1,45 @@ +{ + "python": "3.13.2 (v3.13.2:4f8bb3947cf, Feb 4 2025, 11:51:10) [Clang 15.0.0 (clang-1500.3.9.4)]", + "source_pins": 36, + "runs": [ + { + "command": [ + "/Library/Frameworks/Python.framework/Versions/3.13/bin/python3", + "-I", + "-O", + "-B", + "/Users/brianross/Documents/Codex/2026-10-13/task-2/integer-mult-bounds/research/pr1048-certified-repair/pricing.py" + ], + "returncode": 0, + "elapsed_seconds": 8.53 + }, + { + "command": [ + "/Library/Frameworks/Python.framework/Versions/3.13/bin/python3", + "-I", + "-O", + "-B", + "/Users/brianross/Documents/Codex/2026-10-13/task-2/integer-mult-bounds/research/pr1048-certified-repair/coverage.py", + "--output", + "/private/tmp/pr1048-complete-final-20261013/COVERAGE.json" + ], + "returncode": 0, + "elapsed_seconds": 30.267 + }, + { + "command": [ + "/Library/Frameworks/Python.framework/Versions/3.13/bin/python3", + "-I", + "-O", + "-B", + "/Users/brianross/Documents/Codex/2026-10-13/task-2/integer-mult-bounds/research/pr1048-certified-repair/independent.py", + "--pricing", + "/private/tmp/pr1048-complete-final-20261013/PRICING.json", + "--coverage", + "/private/tmp/pr1048-complete-final-20261013/COVERAGE.json" + ], + "returncode": 0, + "elapsed_seconds": 2.039 + } + ] +} diff --git a/research/pr1048-certified-repair/evidence/INDEPENDENT-RERUN.json b/research/pr1048-certified-repair/evidence/INDEPENDENT-RERUN.json new file mode 100644 index 0000000000..40521d12f1 --- /dev/null +++ b/research/pr1048-certified-repair/evidence/INDEPENDENT-RERUN.json @@ -0,0 +1,72 @@ +{ + "canonical_receipts_equal": { + "COVERAGE.json": true, + "INDEPENDENT.json": true, + "PRICING.json": true + }, + "command": [ + "/Library/Frameworks/Python.framework/Versions/3.13/bin/python3", + "-I", + "-O", + "-B", + "/Users/brianross/Documents/Codex/2026-10-13/task-2/integer-mult-bounds/research/pr1048-certified-repair/run.py", + "--out", + "/var/folders/0x/h7yfchhj50j3jlykl2m_rx0c0000gn/T/pr1048-independent-review-wvac5jlm/receipt" + ], + "elapsed_seconds": 41.507, + "execution": { + "python": "3.13.2 (v3.13.2:4f8bb3947cf, Feb 4 2025, 11:51:10) [Clang 15.0.0 (clang-1500.3.9.4)]", + "runs": [ + { + "command": [ + "/Library/Frameworks/Python.framework/Versions/3.13/bin/python3", + "-I", + "-O", + "-B", + "/Users/brianross/Documents/Codex/2026-10-13/task-2/integer-mult-bounds/research/pr1048-certified-repair/pricing.py" + ], + "elapsed_seconds": 8.868, + "returncode": 0 + }, + { + "command": [ + "/Library/Frameworks/Python.framework/Versions/3.13/bin/python3", + "-I", + "-O", + "-B", + "/Users/brianross/Documents/Codex/2026-10-13/task-2/integer-mult-bounds/research/pr1048-certified-repair/coverage.py", + "--output", + "/private/var/folders/0x/h7yfchhj50j3jlykl2m_rx0c0000gn/T/pr1048-independent-review-wvac5jlm/receipt/COVERAGE.json" + ], + "elapsed_seconds": 30.603, + "returncode": 0 + }, + { + "command": [ + "/Library/Frameworks/Python.framework/Versions/3.13/bin/python3", + "-I", + "-O", + "-B", + "/Users/brianross/Documents/Codex/2026-10-13/task-2/integer-mult-bounds/research/pr1048-certified-repair/independent.py", + "--pricing", + "/private/var/folders/0x/h7yfchhj50j3jlykl2m_rx0c0000gn/T/pr1048-independent-review-wvac5jlm/receipt/PRICING.json", + "--coverage", + "/private/var/folders/0x/h7yfchhj50j3jlykl2m_rx0c0000gn/T/pr1048-independent-review-wvac5jlm/receipt/COVERAGE.json" + ], + "elapsed_seconds": 1.986, + "returncode": 0 + } + ], + "source_pins": 36 + }, + "python": "3.13.2 (v3.13.2:4f8bb3947cf, Feb 4 2025, 11:51:10) [Clang 15.0.0 (clang-1500.3.9.4)]", + "returncode": 0, + "reviewed_code_sha256": { + "coverage.py": "cb2f0a360a0da7373b8a10de2ff288b2f68837fcfe353b7e94b152044920750b", + "independent.py": "e04e7364a4aa53f00d21271c71d33063a7fa27946bde1272dddd9c794177c1ea", + "pricing.py": "051d4e0de936f8978125042f25bc687f3be54ad0185a841c59195fdb082359fe", + "run.py": "4db1073697f5b84eb082a01f7db20c68d9f64bb77fd845a07269ca6d391f924b" + }, + "stderr": "", + "stdout": "pricing.py: PASS_CERTIFIED_REFERENCE_PRICING\ncoverage.py: BOUNDED_COVERAGE_RECONSTRUCTED\nindependent.py: PASS_SEPARATE_RATIONAL_PRICING_CHECK\nPASS_LOCAL_BOUNDED_REPAIR\n" +} diff --git a/research/pr1048-certified-repair/evidence/INDEPENDENT.json b/research/pr1048-certified-repair/evidence/INDEPENDENT.json new file mode 100644 index 0000000000..b44729c7ad --- /dev/null +++ b/research/pr1048-certified-repair/evidence/INDEPENDENT.json @@ -0,0 +1,146 @@ +{ + "arithmetic": { + "exp_degree": 72, + "float_or_transcendental_library_calls": 0, + "log_terms": 110, + "scale_digits": 90 + }, + "comparisons": { + "PR555_vs_PR589": { + "interval": [ + "7668753747655715027277754085361748225355431919588107954214294662603078608092678662070743/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "3834376873827857513660965988560884663327767130963929275347534080168512458528962157051611/500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + ], + "status": "WORSE_OR_EQUAL" + }, + "abstract_mass_preserving_improvement": { + "interval": [ + "-2853828157293817279936871377934471083585235923803503351860098487921990477871624722583157/500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "-1141531262917526911974090637900855147748757061765475339418877668852985562746648514873959/200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + ], + "status": "BETTER" + }, + "abstract_mass_preserving_worsening": { + "interval": [ + "1141531262917526911974090637900855147748757061765475339418877668852985562746648514873959/200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "2853828157293817279936871377934471083585235923803503351860098487921990477871624722583157/500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + ], + "status": "WORSE_OR_EQUAL" + }, + "exact_profile_tie": { + "interval": [ + "0", + "0" + ], + "status": "WORSE_OR_EQUAL" + } + }, + "coverage": { + "cross_section_second_moves": 9424, + "equal_profile_pairs_checked": 4, + "exact_profile_tie_occurrences": 56685, + "first_moves": 9950, + "full_replayed_witnesses": 14, + "limitation": "Legacy nomination labels and synthetic legacy failures are rerun observations, not independently reimplemented here.", + "price_status_occurrences": { + "BETTER": 0, + "UNRESOLVED": 0, + "WORSE_OR_EQUAL": 135648 + }, + "reachable_profile_set_differences": [ + { + "left": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 0 + }, + "only_left": [ + { + "1": 4, + "2": -2 + } + ], + "only_right": [], + "right": { + "current_index": 1, + "frame_mask": "405648192073033408478945025720320", + "operation": [ + "B", + 1 + ], + "original_frame_id": 217, + "slot": 367 + } + } + ], + "rejection_controls": [ + { + "name": "cross_section_row_removed_with_refreshed_counts_digests_and_price_totals", + "reason": "mandatory reconstructed second-operation domain differs" + }, + { + "name": "profile_delta_altered_with_refreshed_rational_price_and_totals", + "reason": "reconstructed semantic profile histogram differs" + } + ], + "second_moves": 125698, + "second_operation_rows": 150, + "selected_first_states": 10, + "status": "PASS_SEPARATE_INTEGER_COVERAGE_AND_RATIONAL_PRICING", + "strictly_worse_occurrences": 78963, + "unique_local_deltas": 24 + }, + "endpoint_residuals": [ + [ + "-2907416217979608604500792837748872540540494165645547952129160282870741539/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "-1453708108989804302250396418874436270270247082822773976064580141370270027/500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + ], + [ + "1517969526985900562348871216583305390045036225215474546745213775855421043/500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "3035939053971801124697742433166610780090072450430949093490427551841043571/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + ] + ], + "rejection_controls": [ + { + "name": "shifted_reference_bracket", + "reason": "actual strict endpoint signs" + }, + { + "name": "omitted_surcharge_parameter", + "reason": "pipeline or surcharge omitted" + }, + { + "name": "omitted_surcharge_in_signed_sum", + "reason": "abstract_mass_preserving_improvement: claimed interval misses independent enclosure" + }, + { + "name": "negative_coefficient_without_bound_reversal", + "reason": "abstract_mass_preserving_worsening: claimed interval misses independent enclosure" + }, + { + "name": "unresolved_sign_promoted_to_better", + "reason": "unresolved sign promoted" + }, + { + "name": "source_inventory_omission", + "reason": "bad source inventory" + }, + { + "name": "source_inventory_corruption", + "reason": "bad source inventory" + } + ], + "scope": "fixed PR589 endpoints and listed signed comparisons; no neighborhood exhaustion", + "source_files": 36, + "status": "PASS_SEPARATE_RATIONAL_PRICING_CHECK", + "wide_interval": [ + "-2009010253935099120559702015501734989183101069455178832985078435438089390683093571888777209/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "2071190987222692173819679720324062416333993210431951228130246903891999715960351836985940357/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + ], + "wide_status": "UNRESOLVED" +} diff --git a/research/pr1048-certified-repair/evidence/INTEGRATION.json b/research/pr1048-certified-repair/evidence/INTEGRATION.json new file mode 100644 index 0000000000..2bea42b776 --- /dev/null +++ b/research/pr1048-certified-repair/evidence/INTEGRATION.json @@ -0,0 +1,19 @@ +{ + "initial_isolated_integration_failure": "Traceback (most recent call last):\n File \"/Users/brianross/Documents/Codex/2026-10-13/task-2/integer-mult-bounds/research/pr1048-certified-repair/coverage.py\", line 527, in \n result = run(args.max_first)\n File \"/Users/brianross/Documents/Codex/2026-10-13/task-2/integer-mult-bounds/research/pr1048-certified-repair/coverage.py\", line 485, in run\n from pricing import ReferencePricer\nModuleNotFoundError: No module named 'pricing'\n", + "repair": "Coverage imports its sibling pricing module by an explicit source path, so isolated Python does not require the package directory on sys.path.", + "mathematical_receipt_changed": false, + "fresh_receipt_integration": "The independent subprocess receives --pricing and --coverage paths from the current output directory.", + "final_command": "python3 -I -O -B research/pr1048-certified-repair/run.py --out /tmp/pr1048-complete-final-20261013", + "final_exit": 0, + "final_marker": "PASS_LOCAL_BOUNDED_REPAIR", + "protected_checkout": { + "head": "37658d17bcc53ee3ff2d22fa1c2df6185152ded0", + "branch": "research/k492-emitter-independent-controls-20261013", + "git_status_porcelain": "", + "checked_after_full_rerun": true + }, + "publication": { + "pushes": 0, + "new_pull_requests": 0 + } +} diff --git a/research/pr1048-certified-repair/evidence/PREDECESSOR-RERUN.json b/research/pr1048-certified-repair/evidence/PREDECESSOR-RERUN.json new file mode 100644 index 0000000000..454b685e1d --- /dev/null +++ b/research/pr1048-certified-repair/evidence/PREDECESSOR-RERUN.json @@ -0,0 +1,55 @@ +{ + "python": "3.13.2 (v3.13.2:4f8bb3947cf, Feb 4 2025, 11:51:10) [Clang 15.0.0 (clang-1500.3.9.4)]", + "runs": [ + { + "command": [ + "python3", + "-I", + "-B", + "research/community-batch1099-audit/check_pr1048_counterexample.py" + ], + "returncode": 0, + "stdout": "PASS_PR1048_COUNTEREXAMPLE root_A < 47/1000 < root_B but G_A(1/2) < G_B(1/2)\n", + "stderr": "", + "elapsed_seconds": 0.026 + }, + { + "command": [ + "python3", + "-I", + "-B", + "research/profile-bracket-audit64/verify.py" + ], + "returncode": 0, + "stdout": "PASS_DEFAULT_PRECISION_FALSE_BRACKETS_AND_CERTIFIED_REPAIR\nfalse_brackets=2 neighbor_controls=2 original_defaults=34/24\n", + "stderr": "", + "elapsed_seconds": 18.219 + }, + { + "command": [ + "python3", + "-I", + "-O", + "-B", + "research/profile-bracket-audit64/independent.py" + ], + "returncode": 0, + "stdout": "{\"cases\": 4, \"false_brackets\": 2, \"neighbor_controls\": 2, \"status\": \"PASS_INDEPENDENT_INTEGER_POWER_ROOT_SEPARATION\", \"transcendental_library_calls\": 0}\n", + "stderr": "", + "elapsed_seconds": 0.033 + }, + { + "command": [ + "python3", + "-I", + "-O", + "-B", + "research/profile-bracket-audit64/controls.py" + ], + "returncode": 0, + "stdout": "{\"equality_and_initial_unknown_controls\": 2, \"rejected\": [\"legacy_bracket_mislabeled_safe\", \"wrong_root_side_bracket\", \"surcharge_omitted\", \"off_by_one_algebraic_floor\", \"missing_case\", \"capped_ambiguity_called_certified\", \"repository_source_omitted\", \"vendor_source_omitted\", \"original_source_corrupted\", \"invalid_interval\"], \"status\": \"PASS_REJECTION_CONTROLS\"}\n", + "stderr": "", + "elapsed_seconds": 0.029 + } + ] +} diff --git a/research/pr1048-certified-repair/evidence/PRICING.json b/research/pr1048-certified-repair/evidence/PRICING.json new file mode 100644 index 0000000000..ceea2bd3b5 --- /dev/null +++ b/research/pr1048-certified-repair/evidence/PRICING.json @@ -0,0 +1,465 @@ +{ + "baseline_bracket": { + "certified_bracket": [ + "1733427039589844234749/1000000000000000000000000", + "6933708158359376939/4000000000000000000000" + ], + "endpoint_terms": [ + 34, + 34 + ], + "status": "CERTIFIED", + "trace": [ + [ + 0, + 34, + -1 + ], + [ + 100000000000000000000000, + 34, + 1 + ], + [ + 50000000000000000000000, + 34, + 1 + ], + [ + 25000000000000000000000, + 34, + 1 + ], + [ + 12500000000000000000000, + 34, + 1 + ], + [ + 6250000000000000000000, + 34, + 1 + ], + [ + 3125000000000000000000, + 34, + 1 + ], + [ + 1562500000000000000000, + 34, + -1 + ], + [ + 2343750000000000000000, + 34, + 1 + ], + [ + 1953125000000000000000, + 34, + 1 + ], + [ + 1757812500000000000000, + 34, + 1 + ], + [ + 1660156250000000000000, + 34, + -1 + ], + [ + 1708984375000000000000, + 34, + -1 + ], + [ + 1733398437500000000000, + 34, + -1 + ], + [ + 1745605468750000000000, + 34, + 1 + ], + [ + 1739501953125000000000, + 34, + 1 + ], + [ + 1736450195312500000000, + 34, + 1 + ], + [ + 1734924316406250000000, + 34, + 1 + ], + [ + 1734161376953125000000, + 34, + 1 + ], + [ + 1733779907226562500000, + 34, + 1 + ], + [ + 1733589172363281250000, + 34, + 1 + ], + [ + 1733493804931640625000, + 34, + 1 + ], + [ + 1733446121215820312500, + 34, + 1 + ], + [ + 1733422279357910156250, + 34, + -1 + ], + [ + 1733434200286865234375, + 34, + 1 + ], + [ + 1733428239822387695312, + 34, + 1 + ], + [ + 1733425259590148925781, + 34, + -1 + ], + [ + 1733426749706268310546, + 34, + -1 + ], + [ + 1733427494764328002929, + 34, + 1 + ], + [ + 1733427122235298156737, + 34, + 1 + ], + [ + 1733426935970783233641, + 34, + -1 + ], + [ + 1733427029103040695189, + 34, + -1 + ], + [ + 1733427075669169425963, + 34, + 1 + ], + [ + 1733427052386105060576, + 34, + 1 + ], + [ + 1733427040744572877882, + 34, + 1 + ], + [ + 1733427034923806786535, + 34, + -1 + ], + [ + 1733427037834189832208, + 34, + -1 + ], + [ + 1733427039289381355045, + 34, + -1 + ], + [ + 1733427040016977116463, + 34, + 1 + ], + [ + 1733427039653179235754, + 34, + 1 + ], + [ + 1733427039471280295399, + 34, + -1 + ], + [ + 1733427039562229765576, + 34, + -1 + ], + [ + 1733427039607704500665, + 34, + 1 + ], + [ + 1733427039584967133120, + 34, + -1 + ], + [ + 1733427039596335816892, + 34, + 1 + ], + [ + 1733427039590651475006, + 34, + 1 + ], + [ + 1733427039587809304063, + 34, + -1 + ], + [ + 1733427039589230389534, + 34, + -1 + ], + [ + 1733427039589940932270, + 34, + 1 + ], + [ + 1733427039589585660902, + 34, + -1 + ], + [ + 1733427039589763296586, + 34, + -1 + ], + [ + 1733427039589852114428, + 34, + 1 + ], + [ + 1733427039589807705507, + 34, + -1 + ], + [ + 1733427039589829909967, + 34, + -1 + ], + [ + 1733427039589841012197, + 34, + -1 + ], + [ + 1733427039589846563312, + 34, + 1 + ], + [ + 1733427039589843787754, + 34, + -1 + ], + [ + 1733427039589845175533, + 34, + 1 + ], + [ + 1733427039589844481643, + 34, + 1 + ], + [ + 1733427039589844134698, + 34, + -1 + ], + [ + 1733427039589844308170, + 34, + 1 + ], + [ + 1733427039589844221434, + 34, + -1 + ], + [ + 1733427039589844264802, + 34, + 1 + ], + [ + 1733427039589844243118, + 34, + 1 + ], + [ + 1733427039589844232276, + 34, + -1 + ], + [ + 1733427039589844237697, + 34, + 1 + ], + [ + 1733427039589844234986, + 34, + 1 + ], + [ + 1733427039589844233631, + 34, + -1 + ], + [ + 1733427039589844234308, + 34, + -1 + ], + [ + 1733427039589844234647, + 34, + -1 + ], + [ + 1733427039589844234816, + 34, + 1 + ], + [ + 1733427039589844234731, + 34, + -1 + ], + [ + 1733427039589844234773, + 34, + 1 + ], + [ + 1733427039589844234752, + 34, + 1 + ], + [ + 1733427039589844234741, + 34, + -1 + ], + [ + 1733427039589844234746, + 34, + -1 + ], + [ + 1733427039589844234749, + 34, + -1 + ], + [ + 1733427039589844234750, + 34, + 1 + ] + ] + }, + "baseline_profile": { + "1": 1323, + "2": 1342, + "3": 79, + "4": 44, + "5": 102, + "6": 11, + "7": 19 + }, + "comparisons": { + "PR555_vs_PR589": { + "interval": [ + "1917188436913928756819438521340437056338857979/250000000000000000000000000000000000000000000000", + "958594218456964378415241497140221165831941783/125000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "abstract_mass_preserving_improvement": { + "interval": [ + "-713457039323454319984217844483617770896308981/125000000000000000000000000000000000000000000000", + "-1426914078646908639967613297376068934685946327/250000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "BETTER" + }, + "abstract_mass_preserving_worsening": { + "interval": [ + "1426914078646908639967613297376068934685946327/250000000000000000000000000000000000000000000000", + "713457039323454319984217844483617770896308981/125000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "exact_profile_tie": { + "interval": [ + "0", + "0" + ], + "reason": "identical profile: exact equal root", + "status": "WORSE_OR_EQUAL" + } + }, + "factor": 288, + "global_profile": { + "1": 381024, + "2": 400416, + "3": 22752, + "4": 26880, + "42": 288, + "5": 29376, + "6": 17376, + "7": 26784 + }, + "lambda_value": "2/152587890625", + "status": "PASS_CERTIFIED_REFERENCE_PRICING", + "wide_unresolved": [ + "-200901025393509912055970201550173498918310106947/100000000000000000000000000000000000000000000000", + "517797746805673043454919930081015604083498302609/250000000000000000000000000000000000000000000000" + ] +} diff --git a/research/pr1048-certified-repair/independent.py b/research/pr1048-certified-repair/independent.py new file mode 100644 index 0000000000..4ac5bd2997 --- /dev/null +++ b/research/pr1048-certified-repair/independent.py @@ -0,0 +1,670 @@ +"""Separate bounded certificate checker; only Python standard-library imports. + +Brian Ross with substantial OpenAI Codex assistance, Apache-2.0. +Methodological adaptation (no copied code): Brian Ross's Krenn independent +verifier/semantic-corruption controls at ab446724a61a293a3268c63b9e9e721c6a360561, +and ThetaTwist exact arithmetic at b4ec6c13088b89961834cc675b44b81372199b02. +This is a separate agent-authored implementation, not a human independent proof. + +Arithmetic proof: for 1 <= x <= 2, z=(x-1)/(x+1) is in [0,1/3]. +log(x) = 2 sum_{j>=0} z^(2j+1)/(2j+1); after K terms its positive +tail is <= 2 z^(2K+1)/((2K+1)(1-z*z)). Range reduction adds k log(2). +For 0<=t<=1, exp(t)=sum_{j>=0}t^j/j!; after degree K the positive +tail is <= [t^(K+1)/(K+1)!]/[1-t/(K+2)]. Every computed term is +rounded outwards using exact integer division on the scale 10**90. +Thus the returned bounds are rational enclosures, without float/libm calls. +""" +import argparse +from collections import Counter +from copy import deepcopy +from fractions import Fraction as Q +from functools import lru_cache +import hashlib +import gzip +import json +from math import gcd +from pathlib import Path + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] +SCALE = 10 ** 90 +LOG_TERMS = 110 +EXP_DEGREE = 72 +LAMBDA = Q(32 * 64 ** 2, 10 ** 16) +BASE = {1: 1323, 2: 1342, 3: 79, 4: 44, 5: 102, 6: 11, 7: 19} +PR555 = {1: 1321, 2: 1342, 3: 80, 4: 47, 5: 102, 6: 10, 7: 18} +IDLE = {2: 13920, 4: 14208, 42: 288, 6: 14208, 7: 21312} +LOW = Q(1733427039589844234749, 10 ** 24) +HIGH = LOW + Q(1, 10 ** 24) +INVENTORY_DIGEST = 'bd1d8b0e52cee5502b12bba071a4b4ab64d1c4cf7e909ed3c3d28ee1058da1e2' + + +def require(ok, message): + if not ok: + raise ValueError(message) + + +def ceilq(x): + return -(-x.numerator // x.denominator) + + +def roundout(lo, hi): + require(lo <= hi, 'invalid independent interval') + return Q((lo * SCALE).numerator // (lo * SCALE).denominator, SCALE), Q(ceilq(hi * SCALE), SCALE) + + +def log_reduced(x): + require(Q(1) <= x <= Q(2), 'log series argument') + z = (x - 1) / (x + 1) + term, total = z, Q(0) + for j in range(LOG_TERMS): + total += term / (2 * j + 1) + term *= z * z + tail = 2 * term / ((2 * LOG_TERMS + 1) * (1 - z * z)) + return roundout(2 * total, 2 * total + tail) + + +@lru_cache(maxsize=128) +def log_interval(x): + require(Q(1) <= x <= Q(64), 'fixed log argument') + k = 0 + while x > 2: + x /= 2 + k += 1 + lo, hi = log_reduced(x) + if k: + l2, h2 = log_reduced(Q(2)) + lo, hi = lo + k * l2, hi + k * h2 + return lo, hi + + +def exp_point(t): + require(0 <= t <= 1, 'exp series argument') + # term integers enclose SCALE*t**j/j!, including all previous rounding. + term_lo = term_hi = SCALE + sum_lo = sum_hi = SCALE + for j in range(1, EXP_DEGREE + 1): + xlo, xhi = term_lo * t / j, term_hi * t / j + term_lo = xlo.numerator // xlo.denominator + term_hi = ceilq(xhi) + sum_lo += term_lo + sum_hi += term_hi + tail_hi = Q(term_hi, SCALE) * t / (EXP_DEGREE + 1) / (1 - t / (EXP_DEGREE + 2)) + return Q(sum_lo, SCALE), Q(sum_hi, SCALE) + tail_hi + + +@lru_cache(maxsize=512) +def power_interval(base, lower, upper): + require(0 <= lower <= upper <= Q(1, 10), 'fixed exponent interval') + ll, lh = log_interval(Q(base)) + return exp_point(lower * ll)[0], exp_point(upper * lh)[1] + + +def globalize(local): + result = dict(IDLE) + for r, c in local.items(): + require(type(r) is int and 1 <= r <= 64 and type(c) is int and c >= 0, 'profile domain') + result[r] = result.get(r, 0) + 288 * c + return result + + +def residual(local, a): + """Direct F, independent of the deficit/fee decomposition in the pricer.""" + n = globalize(local) + lo = hi = Q(-64 * 28416) + for r, c in sorted(n.items()): + pl, ph = power_interval(Q(64, r), a, a) + lo += c * r * pl + hi += c * r * ph + pl, ph = power_interval(Q(64), a, a) + lo += LAMBDA * sum(n.values()) * pl + hi += LAMBDA * sum(n.values()) * ph + return roundout(lo, hi) + + +def signed_price(delta, lower=LOW, upper=HIGH): + lo = hi = LAMBDA * sum(delta.values()) + for r, c in sorted(delta.items()): + require(type(r) is int and 1 <= r <= 64 and type(c) is int, 'signed delta domain') + pl, ph = power_interval(Q(r), lower, upper) + wl, wh = Q(r) / ph, Q(r) / pl + lo += c * (wl if c >= 0 else wh) + hi += c * (wh if c >= 0 else wl) + return roundout(lo, hi) + + +def status_of(interval): + lo, hi = interval + require(lo <= hi, 'reversed interval') + return 'BETTER' if hi < 0 else 'WORSE_OR_EQUAL' if lo >= 0 else 'UNRESOLVED' + + +def require_encloses(claim, independently_computed, label): + a, b = map(Q, claim) + lo, hi = independently_computed + require(a <= lo <= hi <= b, label + ': claimed interval misses independent enclosure') + + +def audit_inventory(manifest): + # The canonical manifest digest freezes the complete set and all metadata; + # merely iterating a caller-supplied list would fail to detect omissions. + canonical = json.dumps(manifest, sort_keys=True, separators=(',', ':')).encode() + require(hashlib.sha256(canonical).hexdigest() == INVENTORY_DIGEST, 'bad source inventory') + require(manifest['schema'] == 'pr1048-certified-repair-inputs-v1' and len(manifest['inputs']) == 36, 'inventory schema or count') + for path, pin in manifest['inputs'].items(): + data = (ROOT / path).read_bytes() + require(hashlib.sha256(data).hexdigest() == pin['sha256'], 'source bytes: ' + path) + if 'git_blob' in pin: + blob = b'blob ' + str(len(data)).encode() + b'\0' + data + require(hashlib.sha1(blob).hexdigest() == pin['git_blob'], 'Git source bytes: ' + path) + return len(manifest['inputs']) + + +def audit_pricing(c): + require(c['status'] == 'PASS_CERTIFIED_REFERENCE_PRICING', 'pricing status') + require({int(r): n for r, n in c['baseline_profile'].items()} == BASE, 'PR589 local profile') + require({int(r): n for r, n in c['global_profile'].items()} == globalize(BASE), 'replication and idle profile') + require(c['factor'] == 288 and Q(c['lambda_value']) == LAMBDA, 'pipeline or surcharge omitted') + bounds = tuple(map(Q, c['baseline_bracket']['certified_bracket'])) + require(c['baseline_bracket']['status'] == 'CERTIFIED', 'reference status') + endpoints = [residual(BASE, x) for x in bounds] + require(endpoints[0][1] < 0 < endpoints[1][0], 'actual strict endpoint signs') + require(bounds == (LOW, HIGH), 'PR589 24-digit bracket shifted') + cases = { + 'PR555_vs_PR589': {r: PR555.get(r, 0) - BASE.get(r, 0) for r in set(PR555) | set(BASE)}, + 'abstract_mass_preserving_improvement': {1: -3, 3: 1}, + 'abstract_mass_preserving_worsening': {1: 3, 3: -1}, + 'exact_profile_tie': {}, + } + require(set(c['comparisons']) == set(cases), 'comparison coverage') + results = {} + for name, delta in cases.items(): + candidate = {r: BASE.get(r, 0) + delta.get(r, 0) for r in set(BASE) | set(delta)} + require(residual(candidate, Q(0))[1] < 0, 'candidate positive root') + interval = signed_price(delta) + claim = c['comparisons'][name] + require(claim['status'] == status_of(interval), 'incorrect signed comparison: ' + name) + require_encloses(claim['interval'], interval, name) + results[name] = dict(status=status_of(interval), interval=list(map(str, interval))) + require(results['exact_profile_tie']['interval'] == ['0', '0'], 'exact zero-delta equality') + wide = signed_price({1: -14, 2: 15, 4: -4}, Q(0), Q(1, 10)) + require(wide[0] < 0 < wide[1], 'wide comparison unresolved') + require_encloses(c['wide_unresolved'], wide, 'wide comparison') + return dict(status='PASS_SEPARATE_RATIONAL_PRICING_CHECK', + endpoint_residuals=[list(map(str, x)) for x in endpoints], + comparisons=results, wide_status=status_of(wide), + wide_interval=list(map(str, wide))) + + +def audit_claim(claim): + delta = {int(r): c for r, c in claim['delta'].items()} + interval = signed_price(delta, Q(claim['lower']), Q(claim['upper'])) + require(claim['status'] == status_of(interval), 'unresolved sign promoted') + + +class WordCheck: + """Separate integer row elimination, event replay and literal-slot checker. + +Integer elimination multiplies a row by the pivot, subtracts its pivot entry +times the pivot row, then removes its gcd. These are exact rank-preserving +row operations over Q. Unlike coverage.py this uses no Fraction row basis, +register-sequence routine, bisection on touch positions, or legacy imports. +""" + def __init__(self): + path = ROOT / 'research/e8-bit-p111-tuned/tune/bitE8mut-p111-tuned.json.gz' + self.word = json.loads(gzip.decompress(path.read_bytes())) + self.word_sha = hashlib.sha256(path.read_bytes()).hexdigest() + w = self.word + self.catalog = tuple(sum(1 << j for j in f) for f in w['frames']) + self.full = (1 << len(w['lines'])) - 1 + self.ranks = {} + self.closures = {} + self.initial = {} + for section in 'AB': + flat = [(self.catalog[f], t, u) for f, t, us in w[section] for u in us] + self.initial[section] = [((section, i), f, t, u) for i, (f, t, u) in enumerate(flat)] + self.copy_frames = self.snapshot(self.initial) + + def rank(self, mask): + if mask not in self.ranks: + rows = [list(v) for i, v in enumerate(self.word['lines']) if mask >> i & 1] + require(all(type(x) is int for v in rows for x in v), 'integer line coordinates') + degree = 0 + for col in range(len(self.word['lines'][0])): + pivot = next((i for i in range(degree, len(rows)) if rows[i][col]), None) + if pivot is None: + continue + rows[degree], rows[pivot] = rows[pivot], rows[degree] + for i in range(degree + 1, len(rows)): + if not rows[i][col]: + continue + a, b = rows[degree][col], rows[i][col] + row = [a*x - b*y for x, y in zip(rows[i], rows[degree])] + divisor = 0 + for x in row: + divisor = gcd(divisor, x) + rows[i] = [x // divisor for x in row] if divisor else row + degree += 1 + self.ranks[mask] = degree + return self.ranks[mask] + + def closure(self, mask): + if mask not in self.closures: + degree = self.rank(mask) + self.closures[mask] = sum(1 << j for j in range(len(self.word['lines'])) + if self.rank(mask | (1 << j)) == degree) + return self.closures[mask] + + def before(self, state, section): + current = [self.catalog[i] for i in self.word['start']] + for f, t, us in self.word['D']: + for r in (t, *us): + current[r] = self.catalog[f] + if section == 'B': + for _, f, t, u in state['A']: + current[t] = current[u] = f + return current + + def snapshot(self, state): + current = self.before(state, 'B') + return {r: current[r] for r in self.word['ret']} + + def after(self, state, section): + current = [self.catalog[i] for i in self.word['final']] + v = self.word['v'] + for _, _, t, u in state['A'] + state['B']: + if not v <= t < 2*v: + current[t] = current[u] = self.full + if section == 'A': + for _, f, t, u in reversed(state['B']): + current[t] = current[u] = f + return current + + def profile(self, state, selected=None): + current = [self.catalog[i] for i in self.word['start']] + profile = Counter() + def touch(r, f): + if selected is not None and r not in selected: + return + a = current[r] + require(a & ~f == 0, 'independent word frame descent') + if a != f: + change = self.rank(f) - self.rank(a) + require(change >= 0, 'independent rank descent') + if change: + profile[change] += 1 + current[r] = f + for f, t, us in self.word['D']: + for r in (t, *us): + touch(r, self.catalog[f]) + for _, f, t, u in state['A']: + touch(t, f) + touch(u, f) + for r in self.word['ret']: + if selected is None or r in selected: + profile[self.rank(current[r])] += 1 + for _, f, t, u in state['B']: + touch(t, f) + touch(u, f) + v = self.word['v'] + for _, _, t, u in reversed(state['A'] + state['B']): + if not v <= t < 2*v: + touch(t, self.full) + touch(u, self.full) + for r, f in enumerate(self.word['final']): + touch(r, self.catalog[f]) + profile.pop(0, None) + return dict(profile) + + @staticmethod + def index(state, identity): + return next(i for i, op in enumerate(state[identity[0]]) if op[0] == identity) + + def apply(self, state, identity, slot, frame): + result = {s: list(ops) for s, ops in state.items()} + op = result[identity[0]].pop(self.index(state, identity)) + result[identity[0]].insert(slot, (identity, frame, op[2], op[3])) + return result + + def literal_moves(self, state, identity): + section = identity[0] + ops = state[section] + index = self.index(state, identity) + _, old_frame, t, u = ops[index] + # A forbidden crossing blocks all slots beyond it. This scans every + # other operation once instead of using the primary commute walker. + blocked = [i for i, (_, _, a, b) in enumerate(ops) + if i != index and (t == b or a == u)] + first = max((i + 1 for i in blocked if i < index), default=0) + last = min((i - 1 for i in blocked if i > index), default=len(ops)-1) + rest = ops[:index] + ops[index+1:] + pre, post = self.before(state, section), self.after(state, section) + previous, following, numbers = {}, {}, {} + for r in (t, u): + previous[r] = [pre[r]] + numbers[r] = [0] + for _, f, a, b in rest: + touches = r in (a, b) + previous[r].append(f if touches else previous[r][-1]) + numbers[r].append(numbers[r][-1] + touches) + following[r] = [post[r]] * (len(rest)+1) + for j in range(len(rest)-1, -1, -1): + _, f, a, b = rest[j] + following[r][j] = f if r in (a, b) else following[r][j+1] + domains, moves = {}, [] + for slot in range(first, last+1): + lower = previous[t][slot] | previous[u][slot] + upper = following[t][slot] & following[u][slot] + if lower & ~upper: + continue + key = lower, upper + if key not in domains: + domains[key] = [m for m in sorted(set(self.catalog) | {self.closure(lower)}) + if lower & ~m == 0 and m & ~upper == 0] + for mask in domains[key]: + if slot == index and mask == old_frame: + continue + if section == 'A': + resulting = {r: previous[r][-1] if numbers[r][-1] > numbers[r][slot] else mask + for r in (t, u) if r in self.copy_frames} + if any(f != self.copy_frames[r] for r, f in resulting.items()): + continue + moves.append((slot, mask, (numbers[t][slot], numbers[u][slot]))) + return moves + + def packed_apply(self, state, move): + identity = tuple(move['operation']) + require(self.index(state, identity) == move['current_index'], 'stable operation identity changed') + frame = int(move['frame_mask']) + old_id = self.catalog.index(frame) if frame in self.catalog else None + require(move['original_frame_id'] == old_id, 'frame identity changed') + require(any(q == move['slot'] and m == frame for q, m, _ in self.literal_moves(state, identity)), + 'packed move outside literal domain') + after = self.apply(state, identity, move['slot'], frame) + require(self.snapshot(after) == self.copy_frames, 'retained COPY snapshot changed') + return after + + +def profile_delta(left, right): + return tuple((r, right.get(r, 0)-left.get(r, 0)) for r in sorted(set(left) | set(right)) + if right.get(r, 0) != left.get(r, 0)) + + +def candidate_hash(moves): + rows = [[q, str(m), list(sig)] for q, m, sig in moves] + return hashlib.sha256(json.dumps(rows, separators=(',', ':')).encode()).hexdigest() + + +def validate_reconstructed_receipt(c, reconstructed): + """Compare claims to already computed semantics, never to refreshed hashes.""" + domains = {} + for row in c['second']: + key = json.dumps(row['first'], sort_keys=True) + domains.setdefault(key, []).append((tuple(row['second_operation']), row['candidate_sha256'], row['legal_literal_moves'])) + require(domains == reconstructed['domains'], 'mandatory reconstructed second-operation domain differs') + advertised = {tuple(sorted((int(r), n) for r, n in row['delta'].items())): row['occurrences'] + for row in c['exact_local_profile_deltas']} + require(len(advertised) == len(c['exact_local_profile_deltas']) and advertised == reconstructed['histogram'], + 'reconstructed semantic profile histogram differs') + + +def coverage_controls(c, reconstructed): + """Semantic mutations refresh numerical summaries, retaining no hash oracle.""" + rejected = [] + def check(name, corrupted): + try: + validate_reconstructed_receipt(corrupted, reconstructed) + except ValueError as exc: + rejected.append(dict(name=name, reason=str(exc))) + else: + raise ValueError('semantic coverage corruption accepted: ' + name) + def refresh_summaries(x): + t = x['totals'] + t['second_moves'] = sum(row['legal_literal_moves'] for row in x['second']) + t['second_operation_rows'] = len(x['second']) + t['cross_section_second_moves'] = sum(row['legal_literal_moves'] for row in x['second'] if row['cross_section']) + t['unique_local_deltas'] = t['full_replayed_delta_classes'] = len(x['exact_local_profile_deltas']) + t['exact_profile_tie_occurrences'] = sum(row['occurrences'] for row in x['exact_local_profile_deltas'] if not row['delta']) + t['price_status_occurrences'] = {s: sum(row['occurrences'] for row in x['exact_local_profile_deltas'] + if row['certified_price']['status'] == s) + for s in ('BETTER', 'WORSE_OR_EQUAL', 'UNRESOLVED')} + t['strictly_worse_occurrences'] = sum(row['occurrences'] for row in x['exact_local_profile_deltas'] + if Q(row['certified_price']['interval'][0]) > 0) + grouped = {} + for row in x['second']: + grouped.setdefault(json.dumps(row['first'], sort_keys=True), []).append(row) + for pair in x['equal_profile_different_continuations']: + for side in ('left', 'right'): + claim = pair[side] + rows = grouped.get(json.dumps(claim['first'], sort_keys=True), []) + data = [[row['second_operation'], row['candidate_sha256'], row['legal_literal_moves']] for row in rows] + claim['continuation_moves'] = sum(row[2] for row in data) + claim['continuation_sha256'] = hashlib.sha256(json.dumps(data, separators=(',', ':')).encode()).hexdigest() + x = deepcopy(c) + removed = next(row for row in x['second'] if row['cross_section']) + x['second'].remove(removed) + key = json.dumps(removed['first'], sort_keys=True), tuple(removed['second_operation']) + removed_histogram = reconstructed['row_histograms'][key] + for row in x['exact_local_profile_deltas']: + delta = tuple(sorted((int(r), n) for r, n in row['delta'].items())) + row['occurrences'] -= removed_histogram.get(delta, 0) + x['exact_local_profile_deltas'] = [row for row in x['exact_local_profile_deltas'] if row['occurrences']] + refresh_summaries(x) + check('cross_section_row_removed_with_refreshed_counts_digests_and_price_totals', x) + x = deepcopy(c) + row = next(row for row in x['exact_local_profile_deltas'] if row['delta']) + delta = {int(r): n for r, n in row['delta'].items()} + delta[1] = delta.get(1, 0) + 11 + row['delta'] = {str(r): n for r, n in delta.items()} + interval = signed_price(delta) + row['certified_price'] = dict(status=status_of(interval), interval=list(map(str, interval)), reason='refreshed corrupted profile price') + refresh_summaries(x) + check('profile_delta_altered_with_refreshed_rational_price_and_totals', x) + return rejected + + +def audit_coverage(c): + require(c['status'] == 'BOUNDED_COVERAGE_RECONSTRUCTED', 'coverage status') + require(c['scope']['global_neighborhood_claim'] is False and c['scope']['steinberg_in_scope'] is False, + 'bounded coverage promoted') + require(c['scope']['all_literal_slots'] is True, 'literal slot coverage removed') + require(tuple(map(Q, c['reference_root_bracket'])) == (LOW, HIGH), 'coverage root bracket') + checker = WordCheck() + require(c['source_word_sha256'] == checker.word_sha, 'coverage source word') + base_profile = checker.profile(checker.initial) + require(base_profile == BASE, 'separate integer baseline replay') + require({int(r): n for r, n in c['independent_local_profile'].items()} == BASE, 'coverage baseline claim') + first_ids = [('A', 2028), ('A', 2076), ('A', 2129), ('A', 281), ('B', 1)] + require([tuple(x['operation']) for x in c['first']] == first_ids, 'first operation inventory') + effects = Counter() + def check_row(state, identity, row, earlier_regs=()): + moves = checker.literal_moves(state, identity) + require(len(moves) == row['legal_literal_moves'], 'literal candidate count') + require(candidate_hash(moves) == row['candidate_sha256'], 'literal candidate domain digest') + regs = set(state[identity[0]][checker.index(state, identity)][2:]) | set(earlier_regs) + baseline = checker.profile(checker.initial, regs) + classes = {} + row_histogram = Counter() + for slot, frame, sig in moves: + key = frame, sig + if key not in classes: + after = checker.apply(state, identity, slot, frame) + classes[key] = profile_delta(baseline, checker.profile(after, regs)) + effects[classes[key]] += 1 + row_histogram[classes[key]] += 1 + require(len(classes) == row['frame_touch_classes'], 'frame/touch class count') + require(len(set(classes.values())) == row['profile_delta_classes'], 'profile class count') + return moves, set(classes.values()), row_histogram + for row, identity in zip(c['first'], first_ids): + check_row(checker.initial, identity, row) + groups = {} + for row in c['second']: + key = json.dumps(row['first'], sort_keys=True) + groups.setdefault(key, []).append(row) + require(len(groups) == c['scope']['selected_first_states'] == 10, 'selected first state inventory') + cross_count = 0 + continuations = {} + reconstructed = dict(domains={}, histogram=None, row_histograms={}) + for packed, rows in groups.items(): + first = json.loads(packed) + identity = tuple(first['operation']) + require(identity in first_ids, 'undeclared selected first operation') + after = checker.packed_apply(checker.initial, first) + regs = set(after[identity[0]][checker.index(after, identity)][2:]) + expected = [op[0] for section in 'AB' for op in after[section] if regs.intersection(op[2:])] + require([tuple(row['second_operation']) for row in rows] == expected, 'both-section adjacent identity inventory') + reachable = set() + continuation_rows = [] + for row, second in zip(rows, expected): + require(row['cross_section'] is (second[0] != identity[0]), 'cross-section label') + moves, profiles, row_histogram = check_row(after, second, row, regs) + reconstructed['row_histograms'][packed, second] = row_histogram + reachable.update(profiles) + continuation_rows.append([list(second), candidate_hash(moves), len(moves)]) + if second[0] != identity[0]: + cross_count += len(moves) + continuations[packed] = dict(profiles=reachable, + first_delta=profile_delta(base_profile, checker.profile(after)), + digest=hashlib.sha256(json.dumps(continuation_rows, separators=(',', ':')).encode()).hexdigest(), + moves=sum(row[2] for row in continuation_rows)) + reconstructed['domains'][packed] = [(tuple(row[0]), row[1], row[2]) for row in continuation_rows] + advertised = {} + statuses = Counter() + strict_worse = 0 + for row in c['exact_local_profile_deltas']: + delta = {int(r): n for r, n in row['delta'].items()} + key = tuple(sorted(delta.items())) + require(key not in advertised, 'duplicate advertised delta') + advertised[key] = row['occurrences'] + interval = signed_price(delta) + price = row['certified_price'] + require(price['status'] == status_of(interval), 'coverage signed comparison') + require_encloses(price['interval'], interval, 'coverage signed interval') + candidate = {r: BASE.get(r, 0) + delta.get(r, 0) for r in set(BASE) | set(delta)} + require(residual(candidate, Q(0))[1] < 0, 'coverage positive root') + statuses[status_of(interval)] += row['occurrences'] + if interval[0] > 0: + strict_worse += row['occurrences'] + require(dict(effects) == advertised, 'independent complete profile-delta histogram') + reconstructed['histogram'] = dict(effects) + validate_reconstructed_receipt(c, reconstructed) + totals = c['totals'] + require(totals['first_moves'] == sum(x['legal_literal_moves'] for x in c['first']), 'first total') + require(totals['second_moves'] == sum(x['legal_literal_moves'] for x in c['second']), 'second total') + require(totals['second_operation_rows'] == len(c['second']), 'second row total') + require(totals['cross_section_second_moves'] == cross_count, 'cross-section total') + require(totals['unique_local_deltas'] == len(effects) and totals['exact_profile_tie_occurrences'] == effects[()], 'delta totals') + require(totals['price_status_occurrences'] == {k: statuses[k] for k in ('BETTER', 'WORSE_OR_EQUAL', 'UNRESOLVED')}, 'status totals') + require(totals['strictly_worse_occurrences'] == strict_worse, 'strict worse total') + witnesses = c['witnesses'] + c['cross_section_omission_witnesses'] + for witness in witnesses: + after = checker.packed_apply(checker.initial, witness['first']) + final = checker.packed_apply(after, witness['second']) + delta = dict(profile_delta(base_profile, checker.profile(final))) + require(delta == {int(r): n for r, n in witness['local_delta'].items()}, 'full witness replay') + interval = signed_price(delta) + require(witness['certified_price']['status'] == status_of(interval), 'witness price') + require_encloses(witness['certified_price']['interval'], interval, 'witness interval') + profile_set_differences = [] + def unpack_deltas(values): + return {tuple(sorted((int(r), n) for r, n in d.items())) for d in values} + for pair in c['equal_profile_different_continuations']: + sides = [] + for side in ('left', 'right'): + claim = pair[side] + key = json.dumps(claim['first'], sort_keys=True) + actual = continuations[key] + require(tuple(sorted((int(r), n) for r, n in claim['first_local_delta'].items())) == actual['first_delta'], 'continuation first profile') + require(claim['continuation_sha256'] == actual['digest'] and claim['continuation_moves'] == actual['moves'], 'continuation candidate domain') + require(unpack_deltas(claim['reachable_final_local_deltas']) == actual['profiles'], 'reachable final profile inventory') + sides.append(actual) + left, right = sides + require(left['first_delta'] == right['first_delta'] and left['digest'] != right['digest'], 'equal profile distinct continuation condition') + only_left, only_right = left['profiles'] - right['profiles'], right['profiles'] - left['profiles'] + require(pair['reachable_profile_sets_equal'] is (left['profiles'] == right['profiles']), 'equal profile incorrectly promoted to continuation equivalence') + require(unpack_deltas(pair['only_left_final_local_deltas']) == only_left and + unpack_deltas(pair['only_right_final_local_deltas']) == only_right, 'reachable profile set difference') + for side, difference in (('left', only_left), ('right', only_right)): + witnesses_for_side = pair['only_' + side + '_witnesses'] + require(unpack_deltas([x['local_delta'] for x in witnesses_for_side]) == difference, 'set difference witness inventory') + for witness in witnesses_for_side: + after = checker.packed_apply(checker.initial, pair[side]['first']) + final = checker.packed_apply(after, witness['second']) + exact = profile_delta(base_profile, checker.profile(final)) + require(exact == tuple(sorted((int(r), n) for r, n in witness['local_delta'].items())), 'set difference full witness replay') + if only_left or only_right: + profile_set_differences.append(dict(left=pair['left']['first'], right=pair['right']['first'], + only_left=[dict(x) for x in sorted(only_left)], + only_right=[dict(x) for x in sorted(only_right)])) + return dict(status='PASS_SEPARATE_INTEGER_COVERAGE_AND_RATIONAL_PRICING', + first_moves=totals['first_moves'], second_moves=totals['second_moves'], + second_operation_rows=len(c['second']), selected_first_states=len(groups), + cross_section_second_moves=cross_count, unique_local_deltas=len(effects), + full_replayed_witnesses=len(witnesses), exact_profile_tie_occurrences=effects[()], + strictly_worse_occurrences=strict_worse, + equal_profile_pairs_checked=len(c['equal_profile_different_continuations']), + reachable_profile_set_differences=profile_set_differences, + rejection_controls=coverage_controls(c, reconstructed), + price_status_occurrences={k: statuses[k] for k in ('BETTER', 'WORSE_OR_EQUAL', 'UNRESOLVED')}, + limitation='Legacy nomination labels and synthetic legacy failures are rerun observations, not independently reimplemented here.') + + +def controls(pricing, manifest): + rejected = [] + def rejects(name, function): + try: + function() + except ValueError as exc: + rejected.append(dict(name=name, reason=str(exc))) + else: + raise ValueError('semantic corruption accepted: ' + name) + + x = deepcopy(pricing) + x['baseline_bracket']['certified_bracket'] = [str(LOW - Q(1, 10 ** 24)), str(LOW)] + rejects('shifted_reference_bracket', lambda: audit_pricing(x)) + x = deepcopy(pricing) + x['lambda_value'] = '0' + rejects('omitted_surcharge_parameter', lambda: audit_pricing(x)) + x = deepcopy(pricing) + # Omission in the numerical interval, while leaving the advertised lambda. + row = x['comparisons']['abstract_mass_preserving_improvement'] + row['interval'] = [str(Q(v) + 2 * LAMBDA) for v in row['interval']] + rejects('omitted_surcharge_in_signed_sum', lambda: audit_pricing(x)) + x = deepcopy(pricing) + row = x['comparisons']['abstract_mass_preserving_worsening'] + # Multiplying a negative coefficient must exchange the two endpoints. + pl, ph = power_interval(Q(3), LOW, HIGH) + wrong = (Q(3) - Q(3) / pl + 2 * LAMBDA, Q(3) - Q(3) / ph + 2 * LAMBDA) + row['interval'] = list(map(str, wrong)) + rejects('negative_coefficient_without_bound_reversal', lambda: audit_pricing(x)) + claim = dict(delta={'1': -14, '2': 15, '4': -4}, lower='0', upper='1/10', status='BETTER') + rejects('unresolved_sign_promoted_to_better', lambda: audit_claim(claim)) + x = deepcopy(manifest) + del x['inputs'][next(iter(x['inputs']))] + rejects('source_inventory_omission', lambda: audit_inventory(x)) + x = deepcopy(manifest) + x['inputs'][next(iter(x['inputs']))]['sha256'] = '0' * 64 + rejects('source_inventory_corruption', lambda: audit_inventory(x)) + return rejected + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--pricing', type=Path, default=HERE / 'evidence/PRICING.json') + parser.add_argument('--coverage', type=Path) + args = parser.parse_args() + pricing = json.loads(args.pricing.read_text()) + manifest = json.loads((HERE / 'SOURCE-PINS.json').read_text()) + count = audit_inventory(manifest) + result = audit_pricing(pricing) + result.update(source_files=count, rejection_controls=controls(pricing, manifest), + arithmetic=dict(scale_digits=90, log_terms=LOG_TERMS, exp_degree=EXP_DEGREE, + float_or_transcendental_library_calls=0), + scope='fixed PR589 endpoints and listed signed comparisons; no neighborhood exhaustion') + if args.coverage: + result['coverage'] = audit_coverage(json.loads(args.coverage.read_text())) + print(json.dumps(result, indent=2, sort_keys=True)) + + +if __name__ == '__main__': + main() diff --git a/research/pr1048-certified-repair/pricing.py b/research/pr1048-certified-repair/pricing.py new file mode 100644 index 0000000000..5fccf31340 --- /dev/null +++ b/research/pr1048-certified-repair/pricing.py @@ -0,0 +1,169 @@ +"""Reference-root pricing, with outward transcendental enclosures. Apache-2.0. + +Brian Ross with substantial OpenAI Codex assistance. Reuses, with attribution, +woklerx PR1182's certified bisection and flemhhh PR1048's interval arithmetic. +No claim of arbitrary fixed-exponent ordering or neighborhood exhaustion. +""" +from fractions import Fraction as Q +from functools import lru_cache +import importlib.util +import json +from pathlib import Path + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] + + +def need(ok, message): + if not ok: + raise ValueError(message) + + +def load(name, path): + spec = importlib.util.spec_from_file_location(name, path) + mod = importlib.util.module_from_spec(spec) + spec.loader.exec_module(mod) + return mod + + +old = load('pr1048_arithmetic', ROOT / 'research/bit-profile-pair-audit/code/bitprof.py') +repair = load('pr1182_bracket', ROOT / 'research/profile-bracket-audit64/repair.py') + + +def profile(p, m=64): + need(isinstance(p, dict) and p, 'nonempty profile required') + need(all(type(r) is int and 1 <= r <= m and type(c) is int and c >= 0 + for r, c in p.items()), 'nonnegative integer supported profile required') + p = {r: c for r, c in p.items() if c} + need(p, 'positive call count required') + return p + + +def outward(lo, hi, digits=48): + need(lo <= hi, 'invalid enclosure') + scale = 10 ** digits + a, b = lo * scale, hi * scale + return Q(a.numerator // a.denominator, scale), Q(-(-b.numerator // b.denominator), scale) + + +@lru_cache(maxsize=256) +def rank_weight(rank, lower, upper, terms=34): + """Enclose r**(1-a) for every a in [lower, upper], r>=1. + + exp(a*ln(r)) is positive and increasing, so invert/reverse both bounds. + The frozen exp routine requires its entire argument interval in [0,1]. + """ + need(type(rank) is int and 1 <= rank <= 64, 'rank outside fixed domain') + need(Q(0) <= lower <= upper <= Q(1, 10), 'exponent outside fixed domain') + need(type(terms) is int and 1 <= terms <= 136, 'term budget') + if rank == 1: + return Q(1), Q(1) + ll, lh = old.ln_bounds(Q(rank), terms) + need(0 <= ll <= lh and upper * lh <= 1, 'exp envelope violated') + elo = old.exp_bounds(lower * ll, terms)[0] + ehi = old.exp_bounds(upper * lh, terms)[1] + need(0 < elo <= ehi, 'positive exponential enclosure required') + return outward(Q(rank) / ehi, Q(rank) / elo) + + +def signed_price(delta, lower, upper, m=64, terms=34): + """Signed J_delta bounds; never pass signed counts to a positive oracle.""" + need(m == 64, 'fixed m=64 only') + need(all(type(r) is int and 1 <= r <= m and type(c) is int + for r, c in delta.items()), 'integer signed delta required') + surcharge = Q(32 * m * m, 10 ** 16) * sum(delta.values()) + lo = hi = surcharge + for r, c in sorted(delta.items()): + if not c: + continue + a, b = rank_weight(r, lower, upper, terms) + lo += c * (a if c > 0 else b) + hi += c * (b if c > 0 else a) + return lo, hi + + +class ReferencePricer: + """Fixed PR589 pipeline and idle profile; no float acceptance decisions. + + Each candidate is a local integer profile with the same m,W, replication + and idle profile. Continuous F_n is strictly increasing because its + surcharge has positive coefficient and m>1. F_n(0)<0 plus unboundedness + then proves a unique positive root, also for the candidate. + """ + def __init__(self, local=None, *, digits=24, terms=34, max_terms=136): + e = json.loads((ROOT / 'research/bit-profile-pair-audit/EXPECTED.json').read_text()) + pipeline = e['pipeline'] + need(pipeline['m'] == 64 and pipeline['W'] == 28416 and + pipeline['T'] == 32 and pipeline['L'] == 9, 'fixed pipeline mismatch') + self.m, self.W, self.factor = 64, 28416, 288 + self.idle = {int(r): c for r, c in pipeline['idle_remainder'].items()} + self.local = profile(local if local is not None else + {int(r): c for r, c in e['tuned_word']['profile'].items()}) + self.terms = terms + self.global_base = self.globalize(self.local) + self.oracle = repair.profile_oracle(old, self.global_base, self.m, self.W, True) + self.bracket_result = repair.bracket(self.oracle, digits, terms, max_terms) + bounds = self.bracket_result['certified_bracket'] + self.bounds = tuple(map(Q, bounds)) if bounds else None + if self.bounds: + # Recheck final signs, including when a capped search retained a wider bracket. + for x, sign, nterms in zip(self.bounds, (-1, 1), self.bracket_result['endpoint_terms']): + need(repair.classify(*self.oracle(x, nterms)) == sign, 'uncertified final endpoint') + + def globalize(self, p): + p = profile(p) + out = dict(self.idle) + for r, c in p.items(): + out[r] = out.get(r, 0) + self.factor * c + return profile(out) + + def compare_delta(self, delta): + need(all(type(r) is int and 1 <= r <= 64 and type(c) is int + for r, c in delta.items()), 'integer signed delta required') + candidate = dict(self.local) + for r, c in delta.items(): + candidate[r] = candidate.get(r, 0) + c + candidate = profile(candidate) + n = self.globalize(candidate) + at_zero = sum(r * c for r, c in n.items()) + Q(32 * 64 ** 2, 10 ** 16) * sum(n.values()) - 64 * self.W + if at_zero >= 0: + return dict(status='UNRESOLVED', reason='candidate has no positive root in the stated domain') + if not self.bounds: + return dict(status='UNRESOLVED', reason='reference endpoints not certified') + if not any(delta.values()): + return dict(status='WORSE_OR_EQUAL', reason='identical profile: exact equal root', interval=['0', '0']) + lo, hi = signed_price(delta, *self.bounds, terms=self.terms) + status = 'BETTER' if hi < 0 else 'WORSE_OR_EQUAL' if lo >= 0 else 'UNRESOLVED' + return dict(status=status, reason='J_delta across the complete certified reference bracket', + interval=list(map(str, (lo, hi)))) + + +def compute(): + p = ReferencePricer() + e = json.loads((ROOT / 'research/bit-profile-pair-audit/EXPECTED.json').read_text()) + base = {int(r): c for r, c in e['base_word']['profile'].items()} + delta = {r: base.get(r, 0) - p.local.get(r, 0) for r in set(base) | set(p.local)} + cases = { + 'PR555_vs_PR589': delta, + 'abstract_mass_preserving_improvement': {1: -3, 3: 1}, + 'abstract_mass_preserving_worsening': {1: 3, 3: -1}, + 'exact_profile_tie': {}, + } + result = {k: p.compare_delta(v) for k, v in cases.items()} + need(result['PR555_vs_PR589']['status'] == 'WORSE_OR_EQUAL', 'original word comparison') + need(result['abstract_mass_preserving_improvement']['status'] == 'BETTER', 'improvement control') + need(result['abstract_mass_preserving_worsening']['status'] == 'WORSE_OR_EQUAL', 'worsening control') + need(result['exact_profile_tie']['interval'] == ['0', '0'], 'tie control') + need(p.bounds == (Q(e['tuned_word']['shipped_c']), Q(e['tuned_word']['shipped_c']) + Q(1, 10 ** 24)), 'baseline shipped grid bracket') + # This mass-preserving delta changes sign on a wide verified exponent interval. + # It must not be promoted to a sign merely because one endpoint has one. + wide = signed_price({1: -14, 2: 15, 4: -4}, Q(0), Q(1, 10)) + need(wide[0] < 0 < wide[1], 'ambiguous signed-price control') + return dict(status='PASS_CERTIFIED_REFERENCE_PRICING', baseline_profile=p.local, + global_profile=p.global_base, baseline_bracket=p.bracket_result, + lambda_value=str(Q(32 * 64 ** 2, 10 ** 16)), factor=288, + comparisons=result, wide_unresolved=list(map(str, wide))) + + +if __name__ == '__main__': + print(json.dumps(compute(), sort_keys=True, indent=2)) diff --git a/research/pr1048-certified-repair/run.py b/research/pr1048-certified-repair/run.py new file mode 100644 index 0000000000..68f026dfaf --- /dev/null +++ b/research/pr1048-certified-repair/run.py @@ -0,0 +1,101 @@ +"""Local reproducible bounded repair receipt. Apache-2.0.""" +import argparse +import hashlib +import json +from pathlib import Path +import subprocess +import sys +import time + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] +REQUIRED = ( + 'certificates/selected-result.json', + 'docs/research/community-batch1099-review.md', + 'research/bit-profile-pair-audit/EXPECTED.json', + 'research/bit-profile-pair-audit/LICENSE', + 'research/bit-profile-pair-audit/NOTICE.md', + 'research/bit-profile-pair-audit/README.md', + 'research/bit-profile-pair-audit/code/bitprof.py', + 'research/bit-profile-pair-audit/code/replay.py', + 'research/bit-profile-pair-audit/code/search.py', + 'research/bit-profile-pair-audit/code/stateprof.py', + 'research/bit-profile-pair-audit/verify.py', + 'research/community-batch1099-audit/check_pr1048_counterexample.py', + 'research/community-batch1099-audit/logs/batch1099-1048-finding.json', + 'research/community-batch1099-audit/pr1048-metadata.json', + 'research/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/engines/moment.py', + 'research/e8-bit-p111-tuned/tune/EXPECTED.json', + 'research/e8-bit-p111-tuned/tune/bitE8mut-p111-tuned.json.gz', + 'research/e8-bit-p111-tuned/tune/moves.json', + 'research/e8-bit-p111-tuned/tune/tune.py', + 'research/e8-bit-p111-tuned/tune/wlib.py', + 'research/e8-bit-p111/data/bitE8mut-p111.json.gz', + 'research/profile-bracket-audit64/BASE-SELECTED.json', + 'research/profile-bracket-audit64/EXPECTED.json', + 'research/profile-bracket-audit64/PR-BODY.md', + 'research/profile-bracket-audit64/PROOF.md', + 'research/profile-bracket-audit64/PROVENANCE.md', + 'research/profile-bracket-audit64/README.md', + 'research/profile-bracket-audit64/SOURCES.json', + 'research/profile-bracket-audit64/VALIDATION.json', + 'research/profile-bracket-audit64/controls.py', + 'research/profile-bracket-audit64/independent.py', + 'research/profile-bracket-audit64/repair.py', + 'research/profile-bracket-audit64/vendor/LICENSE', + 'research/profile-bracket-audit64/vendor/NOTICE.md', + 'research/profile-bracket-audit64/vendor/bitprof.py', + 'research/profile-bracket-audit64/verify.py', +) + + +def check_sources(manifest=None): + data = json.loads((HERE/'SOURCE-PINS.json').read_text()) if manifest is None else manifest + if data.get('schema') != 'pr1048-certified-repair-inputs-v1' or set(data.get('inputs', {})) != set(REQUIRED): + raise ValueError('mandatory input inventory differs') + for name, record in data['inputs'].items(): + b = (ROOT/name).read_bytes() + if hashlib.sha256(b).hexdigest() != record['sha256']: + raise ValueError('input SHA256 mismatch: '+name) + if 'git_blob' in record and hashlib.sha1(b'blob '+str(len(b)).encode()+b'\0'+b).hexdigest() != record['git_blob']: + raise ValueError('input Git blob mismatch: '+name) + return len(REQUIRED) + + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument('--out', type=Path, required=True) + ap.add_argument('--pricing-only', action='store_true', help='explicitly skip coverage; not a full package pass') + args = ap.parse_args() + args.out = args.out.resolve() + pins = check_sources() + args.out.mkdir(parents=True, exist_ok=False) + timings = [] + scripts = [('pricing.py', 'PRICING.json')] + if not args.pricing_only: + scripts += [('coverage.py', 'COVERAGE.json'), ('independent.py', 'INDEPENDENT.json')] + for script, target in scripts: + command = [sys.executable, '-I', '-O', '-B', str(HERE/script)] + if script == 'coverage.py': + command += ['--output', str(args.out/'COVERAGE.json')] + elif script == 'independent.py': + command += ['--pricing', str(args.out/'PRICING.json'), '--coverage', str(args.out/'COVERAGE.json')] + start = time.monotonic() + result = subprocess.run(command, cwd=ROOT, text=True, capture_output=True) + timings.append({'command': command, 'returncode': result.returncode, 'elapsed_seconds': round(time.monotonic()-start, 3)}) + (args.out/(target+'.stderr')).write_text(result.stderr) + if result.returncode: + (args.out/(target+'.failed-stdout')).write_text(result.stdout) + raise RuntimeError(script+' failed; inspect output directory') + # Coverage writes the full receipt separately and emits a short summary. + # Both shapes must be valid JSON; no parser tolerance hides extra text. + stdout = json.loads(result.stdout) + receipt = json.loads((args.out/target).read_text()) if script == 'coverage.py' else stdout + (args.out/target).write_text(json.dumps(receipt,sort_keys=True,indent=2)+'\n') + print(script+': '+receipt['status'], flush=True) + (args.out/'EXECUTION.json').write_text(json.dumps({'python': sys.version, 'source_pins': pins, 'runs':timings},indent=2)+'\n') + print('PASS_PRICING_ONLY' if args.pricing_only else 'PASS_LOCAL_BOUNDED_REPAIR') + + +if __name__ == '__main__': + main() diff --git a/research/pr1048-complete-feasibility/OVERLAP.json b/research/pr1048-complete-feasibility/OVERLAP.json new file mode 100644 index 0000000000..bccc9c1b52 --- /dev/null +++ b/research/pr1048-complete-feasibility/OVERLAP.json @@ -0,0 +1,290 @@ +{ + "final_refresh": { + "checked_utc": "2026-10-13 20:41:04 UTC", + "pr1048_head": "07730cd8302c378607259a9ad0efb73e0b57a2f2", + "pr1182_head": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "latest": [ + { + "number": 1230, + "title": "Research: sharp weight-five common-frame capacity and 24-ADD witness" + }, + { + "number": 1229, + "title": "Research consolidation: exact rational numerator and residue contracts" + }, + { + "number": 1228, + "title": "Independent verification: derive PR540's pending ranges [15,22) and [1,29) from PR442's schedule (no new kappa)" + }, + { + "number": 1227, + "title": "Research construction: sharp restoration cost for fixed readers" + }, + { + "number": 1226, + "title": "Research: masked root-star trimmed-star census on P112; exact covering bound 784/13, 64 falsified for beta-7 atoms (no new kappa)" + }, + { + "number": 1225, + "title": "Conditional κ = 0.001675608585476885: X54 slot on #1148's joint-entrance k8 word with #1169's exact T37 owners" + }, + { + "number": 1224, + "title": "Research: nine-term complex E8 decoders are one-sided overcomplete representations (seed 42, no new kappa)" + }, + { + "number": 1223, + "title": "Finite JP8 refinement: direct integer updates save 2,848 primitives per orientation (no new kappa)" + }, + { + "number": 1222, + "title": "Research: quadratic five-cube copy floor and sharp rank-cap tradeoff (no new kappa)" + }, + { + "number": 1221, + "title": "Independent bit construction: R439 frame509 at 20 ADDs with original H1-H5 (no new kappa)" + } + ], + "finding": "No observed new PR589 two-transport certificate. PR1221/1208 are fixed-profile Boolean circuit reductions, outside this commuting/reframing class. Both PR1048 and PR1182 remain open at their retained heads." + }, + "checked_utc": "2026-10-13T20:32:30Z", + "scope": "Targeted overlap check, not exhaustive literature coverage.", + "pr1182": { + "number": 1182, + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1182", + "head": "0213b8911bfeefd5c81ddf320bac6a0fb7e86215", + "state": "open", + "conclusion": "Unchanged retained bracket repair; no complete PR589 two-transport theorem in its body." + }, + "latest_30": [ + { + "number": 1222, + "title": "Research: quadratic five-cube copy floor and sharp rank-cap tradeoff (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1222" + }, + { + "number": 1221, + "title": "Independent bit construction: R439 frame509 at 20 ADDs with original H1-H5 (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1221" + }, + { + "number": 1220, + "title": "Scoped negative result: CK target-forest floor holds for all dyadic weights (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1220" + }, + { + "number": 1219, + "title": "Research audit: exact interior-carry criterion for compact controls (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1219" + }, + { + "number": 1218, + "title": "Conditional kappa 0.001675809683500501: global mixed allocation with X54 and fusions", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1218" + }, + { + "number": 1217, + "title": "Tooling: 1.70x faster exact historical ternary frame checks (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1217" + }, + { + "number": 1216, + "title": "Scoped negative result: restored dirty borrowing cannot match CK/JP8 scratch prices", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1216" + }, + { + "number": 1215, + "title": "Independent verification: six-source dirty-connector identity and recursive invoice", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1215" + }, + { + "number": 1214, + "title": "Finite construction: exact two-helper k8 gauges save 576 scalar primitives", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1214" + }, + { + "number": 1213, + "title": "Research: classify the P112 masked decoder coordinate component (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1213" + }, + { + "number": 1212, + "title": "Research: rank-8 complex decoders are gauge-rigid; E-graph eight-term floor (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1212" + }, + { + "number": 1211, + "title": "Research audit: quadratic factor-tape travel for balanced dirty words", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1211" + }, + { + "number": 1209, + "title": "Independent audit: selected PR1094 pending-axis independence and all source-touch cuts", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1209" + }, + { + "number": 1208, + "title": "Bit construction: 55 same-frame rewrites on composed R439 save 110 ADDs", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1208" + }, + { + "number": 1207, + "title": "Conditional kappa 0.001675807682652: X54 on mixed T37 fusion providers", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1207" + }, + { + "number": 1206, + "title": "Finite bit construction: ordered R420 decoder chains save 142 ADDs (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1206" + }, + { + "number": 1205, + "title": "Research: observer-safe restoration with nonzero readers (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1205" + }, + { + "number": 1204, + "title": "Conditional κ = 0.001675608585476885: X54 slot on #1148's joint-entrance k8 word with exact T37 owners (independent; equals #1196)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1204" + }, + { + "number": 1203, + "title": "Research: noncommuting reader restoration with a paid dirty-state wrapper", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1203" + }, + { + "number": 1201, + "title": "Conditional kappa 0.00167576776285696: mixed T37 source-holder fusions", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1201" + }, + { + "number": 1199, + "title": "Recursive interface: coalesce restoration with cancelling readers", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1199" + }, + { + "number": 1198, + "title": "Independent verification: R480 private-center erasure and 40 CLEAR/COPY omissions (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1198" + }, + { + "number": 1197, + "title": "Scoped negative result: two P112 totals need overlapping independent lifts (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1197" + }, + { + "number": 1196, + "title": "Conditional κ = 0.001675608585476885: joint entrances and X54 with T37 owners", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1196" + }, + { + "number": 1195, + "title": "Conditional κ = 0.001675658002271934: two source-holder fusions on #1148's joint-entrance k8 word", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1195" + }, + { + "number": 1194, + "title": "Prove a semantic zero-frame D contract for a fixed R439 word", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1194" + }, + { + "number": 1193, + "title": "Conditional κ = 0.001675769763609769: mixed T37 allocation with source-holder fusions", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1193" + }, + { + "number": 1192, + "title": "Conditional kappa 0.001675670695307702: cross-call T37 entrance augmentation", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1192" + }, + { + "number": 1191, + "title": "Research: one-sided E8 mask rigidity on 1,373 punctured units (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1191" + }, + { + "number": 1190, + "title": "Research consolidation: authenticate PR279's complete parent inventory (no new kappa)", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1190" + } + ], + "targeted_queries": [ + { + "query": "repo:CrocSwap/integer-mult-bounds \"transport\"", + "returned": [ + 1218, + 1207, + 1201, + 1192, + 1183, + 1184, + 1151, + 1156, + 1153, + 1059, + 1138, + 1137, + 1134, + 1128, + 1118, + 1106, + 1066, + 1020, + 956, + 1064, + 1054, + 1048, + 985, + 1038, + 856, + 917, + 937, + 945, + 968, + 981 + ] + }, + { + "query": "repo:CrocSwap/integer-mult-bounds \"pair\" \"profile\"", + "returned": [ + 1214, + 1206, + 1195, + 1182, + 1179, + 620, + 1143, + 1062, + 1049, + 696, + 1140, + 1138, + 1137, + 1134, + 987, + 1091, + 1127, + 1125, + 1119, + 1120, + 1112, + 873, + 1030, + 1081, + 1080, + 980, + 1001, + 939, + 956, + 1048 + ] + } + ], + "related1143": { + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/1143", + "head": "fee8dc25e104b2c45ddba1ded4dca846794ba32f", + "title": "Research: commuting ADD moves cannot escape the selected R480 frame runs", + "distinction": "R480/PR1042 complex word, fixed ordered frame slots, arbitrary-length commuting sequences. It explicitly excludes frame reassignment. Our scope is PR589 bit word, at most two transports with frame reassignment." + }, + "novelty": "No overlapping complete PR589 two-transport reference-root certificate observed in the returned current PRs. No claim that commuting search, pair projection, or interval arithmetic is new in general." +} diff --git a/research/pr1048-complete-feasibility/PROOF.md b/research/pr1048-complete-feasibility/PROOF.md new file mode 100644 index 0000000000..c302934248 --- /dev/null +++ b/research/pr1048-complete-feasibility/PROOF.md @@ -0,0 +1,152 @@ +# Complete two-transport reduction on the frozen PR589 word + +This is a finite local claim about the exact input and transport contract below. +It is not a claim that all circuit rewrites, all subspaces, or longer paths have +been exhausted. The scalar supplier and its multiplication-theorem obligations +remain inherited. The numerical census accompanying this proof must complete +and both implementations must agree before the exclusion is accepted. + +## Domain + +The input is `research/e8-bit-p111-tuned/tune/bitE8mut-p111-tuned.json.gz`, +container SHA256 `e3e301e62bc2b41dbf1ceac0acf3d35824ebeab1848c5a2142d4577b109da52f`. +Flatten A and B into their 3,064 elementary ADD occurrences. Identity is the +original `(section,index)`, not the current list position. A transport removes +one occurrence and reinserts it in the same section, crossing only ADDs that +commute with it. For ADDs `t += u` and `a += b`, the test is `t != b` and +`a != u`; hence all crossings preserve the scalar map. + +At the insertion slot, let L be the union of the two preceding register frames +and U the intersection of the two following frames. The permitted frame masks +are every original catalogue frame plus the exact rational span closure of L, +filtered by `L subset F subset U`. The 636 original frame masks are closed +under rational span; the independent checker verifies this. Thus containment +of their root-line masks represents the required subspace containment. D, +start/final frames and the A/B separator stay fixed. The resulting last A frame +of every retained register must equal its original COPY frame, including after +removal of its former last touch. No corresponding COPY restriction is imposed +on B. C is reconstructed by reversing the same eligible operations at the full +frame, as in the frozen supplier contract. + +The catalogue is fixed: a closure introduced at an earlier slot is not added +as an unrestricted frame option at future slots. An intermediate word must be +legal. The claimed class consists of **at most two** such transports, allowing +either section and repeated choice of the same operation. + +## Root comparison + +Use the previously reviewed [pricing proof](../pr1048-certified-repair/PROOF.md). +The local baseline profile is `{1:1323,2:1342,3:79,4:44,5:102,6:11,7:19}`. +Replication is 288, m=64, W=28416 and the idle profile is fixed. With +`lambda = 32*64^2/10^16 = 2/152587890625`, define + + F_n(a) = sum_r n_r*r*(64/r)^a + lambda*(sum_r n_r)*64^a - 64*W. + J_delta(a) = sum_r delta_p[r]*r^(1-a) + lambda*sum_r delta_p[r]. + +The reference root c is strictly between +`1733427039589844234749/10^24` and `1733427039589844234750/10^24`. +Both implementations establish the endpoint signs with outward rational +enclosures of log and exp. The signed price encloses J on the **whole** bracket. +At c, `F_candidate(c) = 288*64^c*J_delta(c)`. Consequently an upper bound below +zero certifies a larger, better root; a nonnegative lower bound certifies no +improvement; a straddling enclosure remains unresolved. Identical profiles are +exact ties. No acceptance depends on floating-point evaluation at an endpoint. + +Every transport preserves total rank mass: register climb dimensions telescope, +and retained COPY dimensions are pinned. The global mass is M=1,808,352, +while `64*W-M=10,272`. Counts are nonnegative and ranks are in 1..64, so the +global call count N satisfies `0 < N <= M`. Therefore +`F_n(0) = -10272 + lambda*N < 0`. The positive surcharge makes F continuous, +strictly increasing and unbounded, proving a unique positive candidate root. +The implementations additionally check the concrete priced profiles. + +## Singles and the easy pair cases + +The complete single census enumerates every literal legal slot and frame for +all 3,064 occurrences. Caching `(frame,touch-counts)` is valid for this final +profile: all changed transitions lie on the mover's two register itineraries, +and this key identifies those transitions. It is not a continuation quotient. +The two existing enumerators separately reconstruct all 1,452,893 literal moves +and agree on every operation's domain digest and the 22-delta histogram. +There are 1,227,676 exact profile ties, 225,217 strictly worse moves, and no +better or unresolved move. + +If both transports move the same occurrence x, delete x. The remaining word +is unchanged. Neither transport can cross an unchanged noncommuting blocker, +so the final position lies in x's original commuting interval. Its final +slot's lower closure, frame options and COPY constraints are exactly those of +a baseline single transport. Thus repeated-occurrence pairs reduce to singles. + +If the movers x,y have disjoint register supports, erase x from the intermediate +schedule and map y's slot to the baseline. Any extra crossing of x is harmless: +x and y commute, and x changes none of y's register frames, closure constraints, +section boundary frames or COPY conditions. Hence y's final effect is a legal +baseline single effect (possibly the identity). The two profile deltas add, +including the call-count surcharge, so their J values add. Nonnegative single +prices exclude every such pair. + +## Exact projection for each remaining pair + +Fix distinct overlapping occurrences x,y and put `R=supp(x) union supp(y)`. +There are at most three registers in R. In **both** sections erase every other +operation whose support misses R. Keep the original catalogue, D, start/final +data and COPY pins. Replay and price only R; a global profile of the erased +background would be meaningless. + +Every erased operation commutes with both movers and touches no R register. +It cannot change a relevant neighboring frame, commuting blocker, slot closure, +A/B boundary, COPY snapshot, or C touch. Therefore projecting any full legal +two-step path yields legal projected transports or identities, with the same +final delta. Conversely, a projected transport lifts by inserting its mover +at any full slot in the corresponding gap: all additional crossed operations +are erased and commute with it, and the neighboring R frames are identical. +Lift the second step after the first; projection still agrees. Outside R, +neither transport changes a register itinerary. This proves equality of the +reachable final profile sets, not just a one-sided heuristic comparison. + +The first step visits every projected slot and feasible frame, plus the +identity. The identity covers full moves that crossed only erased operations. +It does **not** collapse first states by their own register touch signature or +by equal profile: operations touching y's private register remain visible and +can change which second slots exist. The independent checker's small synthetic +example shows that the unsafe quotient can hide a strictly improving second +move even when every baseline single is neutral. It is a control, not an +improvement to the frozen word. + +For each first state, enumerate every legal second slot/frame and the identity. +Only this final step may collapse equal `(frame,touch-counts)` contexts, because +there is no further continuation and those contexts have identical final R +profiles. No minimum-frame or maximum-frame dominance is used by the scan. +Every retained final delta is priced with the certified reference-root oracle. +Any better or unresolved result prevents a complete exclusion. + +## Exhaustion and its limit + +All `3064^2 = 9,388,096` ordered occurrence choices partition into 3,064 repeated +occurrences, 9,325,034 register-disjoint choices, and 59,998 distinct overlapping +choices. Of the last group, 13,054 cross the A/B section choice and 46,944 use +the same section. The first two groups are covered by the preceding lemmas; +the complete finite projected census covers the last group. These counts are +operation choices, **not** counts of literal two-move paths. Projected states +and final-profile representatives are likewise not claimed to be distinct +full words. + +This argument does not cover three or more moves, noncommuting circuit +identities or Steinberg rewrites, simultaneous changes through illegal +intermediates, moves between sections, a growing frame catalogue, or arbitrary +new subspaces. It repairs a specific pricing and completeness claim about the +historical PR589 word; it supplies no new kappa, selected supplier, scalar +lowering, native/physical admission, precision result or full theorem audit. + +Prepared by Brian Ross with substantial OpenAI Codex assistance, including +separate GPT-6 Astra analyses and replay. The supplier/tuner credit remains +with DreamingOfClouds and predecessors, the original search with flemhhh, the +existing counterexample with Douglas Colkitt/the maintainers, and the root +bracket repair with woklerx PR1182. The independent reconstruction and semantic +corruption approach adapts Brian Ross's +[Krenn verifier](https://github.com/brianross93/Krenn/blob/ab446724a61a293a3268c63b9e9e721c6a360561/experiments/krenn_quantum_graph/independent_verifier.py) +and [artifact tests](https://github.com/brianross93/Krenn/blob/ab446724a61a293a3268c63b9e9e721c6a360561/tests/test_krenn_artifacts.py); +exact-arithmetic discipline also draws on +[ThetaTwist](https://github.com/brianross93/thetatwist/blob/b4ec6c13088b89961834cc675b44b81372199b02/src/thetatwist/core.py). +These are methodological adaptations, not copied code. New material is +Apache-2.0; the unchanged predecessor notices remain in the certified package. diff --git a/research/pr1048-complete-feasibility/PUBLICATION.md b/research/pr1048-complete-feasibility/PUBLICATION.md new file mode 100644 index 0000000000..794fd9bff6 --- /dev/null +++ b/research/pr1048-complete-feasibility/PUBLICATION.md @@ -0,0 +1,69 @@ +# Publication check + +The explicit assignment was to repair PR1048's pricing and independently check +its post-first-move coverage. The user subsequently authorized publication. +The research scope remains the frozen at-most-two-transport domain in PROOF.md; +this is an audit and scoped negative result, not a new construction. + +Submission base: `bce54fb3f895cbe5cd4c0eb477c3afeed100190f` (current main fetched +2026-10-13). The original local commits `ce0b65fd` and `fb8a792a` remain preserved +on their separate branches. Their scientific files were applied unchanged to +the submission base; publication edits add this record, the PR933 distinction +and concrete next questions. The selected construction is unchanged. + +## Validation on the submission base + +CPython 3.13.2, macOS, standard library only. All 36 mandatory input byte pins +pass. The 24 retained PR1048/PR1182 files are additions absent from main; the +12 already-upstream inputs are byte-identical to the research base. All four +research engine/driver hashes in REVIEW.md remain unchanged. + +```sh +python3 -I -O -B research/pr1048-complete-feasibility/independent_pairs.py --full --time-budget 1200 --output /tmp/pr1048-publication-independent-pairs.json +python3 -I -B scripts/verify_selected_result.py +``` + +The fresh independent run completed in 119.384 seconds. Its complete status, +59,998 pairs, all aggregate counts, all 93 delta records and rational intervals, +endpoint signs, driver hashes, and synthetic control equal the saved complete +receipt. Transcript: +`b39d6d23210ab7eee24c04e165b078e39ea00053e4be4b523f7c793e24b79679`. +Fresh receipt SHA256: +`664dee24036846d2729bd8bc1f0c14e05bd57ac73240e21285f763b15a63743f`. +The selected-record/source-inventory/proof-supplement guard passes. + +The guard rejects optimized Python, so it was run with assertions enabled. +An initial inventory check detected only two generated tune/wlib `.pyc` files, +with zero missing or changed source files; those generated files were removed +before the successful check. Existing untracked duplicate-name files are not +part of the contribution. The full selected cold replay, native admission, +repository-wide historical suites and hosted CI were not run. + +## Overlap and attribution + +- PR1048 remains open at `07730cd8302c378607259a9ad0efb73e0b57a2f2`. +- PR1182 remains open at `0213b8911bfeefd5c81ddf320bac6a0fb7e86215`; its certified + bracket repair is reused unchanged with attribution, not re-proposed as ours. +- Ian Libânio's PR933 at `b9348c6907516e55dc07e135ad4d7a480d4f9840` already reports + broader relocation/all-frame results, with a 2,000-pair independent sample. + Its README was read at blob `a1af337e68859ed520a1d72e539339a076fc09a2`. + This corrects the earlier overlap record's omission. Its larger domain was + not replayed or certified here. We claim neither first priority for the + negative result nor equivalence with its domains or quotients. +- PR1368 at `6ae784908c57f3aa5a2165d382b21a40accdf7a6` gives a lower-frame + obstruction for eight separate phase-B blocks. PR1310 at + `b9ca10f02fca37c8214d880c244ac14ead6bae7a` concerns complex k8 gauges, and PR1371 + at `d47c4c300a53bb206becd13db89cea8c287c929b` concerns a PR589 projector identity. + None was imported or is claimed to be superseded. + +Live PR searches included `1048`, `reframing`, and `two-move`, and latest-created +metadata through PR1379. The start-here and handoff discussions 1163/1166 were +read; literal 1048/1182/reframing matches were absent in the fetched handoff +page. This is bounded overlap evidence, not an exhaustive novelty audit. + +The useful addition is the certified signed reference-root comparison, +explicit complete pair-projection argument, and full separate replay of the +declared narrower domain. Existing maintainer counterexamples and the PR1182 +bracket repair are reproduced and credited. Source licenses, supplier credit, +Brian Ross's Krenn/ThetaTwist methodological attribution and substantial AI +assistance disclosure are retained. No code from PR933 was copied. diff --git a/research/pr1048-complete-feasibility/README.md b/research/pr1048-complete-feasibility/README.md new file mode 100644 index 0000000000..0209948647 --- /dev/null +++ b/research/pr1048-complete-feasibility/README.md @@ -0,0 +1,131 @@ +# No improvement by two frozen-domain PR589 transports + +**Complete finite exclusion, independently replayed; no improved construction +or new kappa.** On the exact PR589 input, no legal sequence of at most two +transports improves the surcharge-inclusive reference root in the domain below. +This supplies an independently replayed replacement for the restricted +two-transport claim in PR1048. It is not the first negative reframing result; +the broader prior PR933 is credited below. + +Both implementations agree on every single-operation domain, the full pair +candidate transcript, all 93 pair-profile deltas and their occurrence counts. +Every independent price enclosure lies inside the primary enclosure. The +complete primary pair scan took 372.174 seconds; the separate integer-geometry +and rational-series replay took 125.896 seconds. No paid service was used. + +| Census | Quantity | +| --- | ---: | +| Elementary A/B operation identities | 3,064 | +| All literal legal single transports | 1,452,893 | +| Single exact ties / strictly worse | 1,227,676 / 225,217 | +| All distinct overlapping ordered operation pairs | 59,998 | +| Pair-specific projected first states | 327,963 | +| Final second-move frame/touch representatives | 1,379,084 | +| Pair representative exact ties / strictly worse | 1,282,055 / 97,029 | +| Better / unresolved results in either census | 0 / 0 | + +Repeated-operation pairs reduce to singles. Register-disjoint pairs reduce to +the sum of two legal baseline single deltas. For each remaining pair, the exact +projection retains **all** operations touching either mover's registers in both +sections. Thus it preserves the other mover's private-register ordering, which +the original immediate-best/own-touch shortcut does not preserve. The +[proof](PROOF.md) covers all 9,388,096 ordered choices of two operation identities; +these are not literal move-path counts. + +## Exact domain and remaining scope + +A move stays inside its A or B section, crosses only commuting elementary ADDs, +preserves frame nesting and the original retained COPY frames, and chooses a +frame from the original **636-frame catalogue plus the current slot's own +rational lower-bound closure**. The catalogue does not accumulate closures +from unrelated earlier slots. Both intermediate words must be legal. The +independent checker confirms all 636 original masks are exact span closures. + +This settles that frozen two-transport class. It does not settle three or more +moves, a growing frame catalogue, arbitrary subspaces, Steinberg/Boolean circuit +identities, simultaneous changes through illegal intermediates, or a global +circuit optimum. The source word is historical PR589, not a claim about every +newer bit word. No native/physical admission, precision result, selected-supplier +change or complete multiplication-theorem verification is supplied. + +## Reproduction + +From the repository root, using Python 3 and only its standard library: + +```sh +python3 -I -O -B research/pr1048-complete-feasibility/singles.py --engine primary --out /tmp/pr1048-primary-singles.json +python3 -I -O -B research/pr1048-complete-feasibility/singles.py --engine independent --out /tmp/pr1048-independent-singles.json +python3 -I -O -B research/pr1048-complete-feasibility/pairs.py --full --time-budget 900 --output /tmp/pr1048-primary-pairs.json +python3 -I -O -B research/pr1048-complete-feasibility/independent_pairs.py --full --time-budget 1200 --output /tmp/pr1048-independent-pairs.json +``` + +The caps are resource stops, not completeness assumptions: a capped run reports +`INCOMPLETE`. Require `COMPLETE`, all 59,998 pairs, no better/unresolved outcome, +and the exact transcript digest +`b39d6d23210ab7eee24c04e165b078e39ea00053e4be4b523f7c793e24b79679`. +The two single receipts must have identical `domains`; their delta/count/status +triples must match. Pair `totals`, `candidate_digest` and delta/count/status +triples must also match; the independent rational intervals must be enclosed +by the primary intervals. Timing and implementation-specific metadata differ. + +Saved results are [primary pairs](complete-pairs.json), +[independent pairs](independent-complete-pairs.json), both single receipts, +and the [independent comparison](independent-comparison.json), which binds all +four receipt hashes. [REVIEW.md](REVIEW.md) records the separate Astra review. +The pilot files are runtime observations, not the basis of the exclusion. +The synthetic control demonstrates a strictly improving continuation lost by +the unsafe first-state quotient; it is not an improving PR589 witness. + +## What this adds and who supplied what + +The preserved [certified repair](../pr1048-certified-repair/README.md), local +commit `ce0b65fd4acf1d9326a586dade3fc6ad2f4d8370`, reproduces Douglas Colkitt/the +maintainers' existing root-ordering counterexample and woklerx PR1182's false +brackets. Neither finding is claimed as ours. It retains flemhhh's original +PR1048 code and woklerx's bracket repair unchanged with their notices, and adds +reference-root pricing and a bounded coverage diagnosis. This continuation +reuses those checkers and closes the precisely stated two-transport domain. + +Publication review also read Ian Libânio's +[PR933](https://github.com/CrocSwap/integer-mult-bounds/pull/933) at +`b9348c6907516e55dc07e135ad4d7a480d4f9840`. It already reports wider relocation +and all-frame reoptimization results, including interacting pairs and an +independent sample of 2,000 pairs. That broader package was not replayed here, +and this contribution does not claim priority for a two-move negative result +or establish PR933's broader coverage. The added value is the certified +reference-root comparator, the stated pair-projection completeness argument, +and a second implementation checking the **entire** narrower frozen domain. + +Fresh publication checks through PR1379 found PR1048 and PR1182 unchanged at +their pinned heads. PR1143 concerns fixed frame slots on the different R480 +word; PR1208/1221 are fixed-profile Boolean reductions; PR1368 concerns a +lower-frame barrier for eight individual phase-B blocks. See +[OVERLAP.json](OVERLAP.json) and [PUBLICATION.md](PUBLICATION.md) for the bounded +search record. No general priority claim is made for commuting search, pair +projection or interval arithmetic. + +Prepared by Brian Ross with substantial OpenAI Codex assistance, including +independent GPT-6 Astra work at xhigh reasoning. Credit DreamingOfClouds and the +retained supplier lineage, flemhhh's original search, the maintainers' +counterexamples and woklerx's bracket repair. The Krenn independent-verifier and +semantic-corruption methodology and ThetaTwist exact-arithmetic discipline are +credited to Brian Ross with exact source links in [PROOF.md](PROOF.md). These are +methodological adaptations, not copied code. New material is Apache-2.0; no +independent human review or proof-assistant verification is claimed. + +## Open next questions + +The smallest useful follow-up is a correspondence audit against PR933: compare +its first-slot equivalence and post-first neighborhoods on explicit operation +pairs with this pair-specific projection. That can identify whether the two +proofs cover the same literal paths without repeating either broad search. +Different relocation primitives and global frame reoptimization are the main +obstacles; no equivalence or defect in PR933 is asserted here. The synthetic +strict-improvement control is a starting check for any proposed quotient. + +No larger search is justified by this package alone. Growing catalogues, +arbitrary frames and longer paths need a new completeness argument before +substantial computation. The completed K492/PR1162 checkout and the earlier +local branches are preserved. Publication adds the two new audit directories +and their byte-identical retained PR1048/PR1182 sources; it changes no selected +construction or existing upstream source. diff --git a/research/pr1048-complete-feasibility/REVIEW.md b/research/pr1048-complete-feasibility/REVIEW.md new file mode 100644 index 0000000000..d845562574 --- /dev/null +++ b/research/pr1048-complete-feasibility/REVIEW.md @@ -0,0 +1,144 @@ +# Separate mathematical review and complete replay + +**Accepted within the stated finite domain.** The complete primary and +separate censuses agree, and the reductions in [PROOF.md](PROOF.md) cover the +remaining operation choices. No improving or unresolved case remains for +at most two legal transports of the frozen PR589 word under the fixed +636-frame catalogue plus each slot's own lower-span closure. + +This review and the separate checker were prepared by a GPT-6 Astra agent +at xhigh for Brian Ross, with substantial AI assistance. This is not +independent human peer review or a formal verification of multiplication. +The earlier package at `ce0b65fd` remains unchanged. All work was local. + +## Mathematical findings + +- **Register-disjoint movers reduce to singles.** Removing the first mover + preserves the second mover's register itineraries, commuting barriers, + section boundaries, lower closure and COPY conditions. Its projected slot + lifts to a legal baseline single or identity. The affected register sets + are disjoint, so their surcharge-inclusive J values add at the same + reference root. Complete single non-improvement therefore excludes them. +- **Repeated choice of one occurrence reduces to singles.** Removing that + occurrence leaves the same background. Neither move crosses a fixed + noncommuting blocker. Its final slot/frame has the baseline single's + eligibility, including COPY and the slot's local closure. This depends on + the fixed catalogue, not an accumulated pool of previously created frames. +- **Pair-specific projection preserves reachable final profiles.** For fixed + distinct overlapping movers x,y, retain in both sections every operation + touching `supp(x) union supp(y)`. Every erased operation commutes with both + movers and affects no relevant frame. Each projected move lifts through a + corresponding full-word gap; the second lift is taken after the first. + Identity moves explicitly cover erased-only crossings. Profiles are replayed + only on the relevant registers, never on an incomplete global background. +- **Only final-step frame/touch caching is used.** First states retain their + pair-specific literal positions. Identical first prices, profiles, or + own-register touch signatures do not justify merging continuations. +- **Root existence is uniform.** Climb dimensions telescope, COPY dimensions + stay pinned, and global rank mass remains 1,808,352. With `N <= M`, + `F(0) = -10272 + lambda*N < 0`; the positive surcharge makes F strictly + increasing and unbounded. The comparison at the rigorously bracketed + reference root is therefore valid throughout the transport class. + +The ordered-occurrence partition was checked: +`3064^2 = 3064 + 9325034 + 59998`. These are repeated, register-disjoint, +and distinct overlapping choices, respectively. Of the last group, 13,054 +cross sections. These counts are not literal-path or distinct-word counts. + +## Completed evidence + +[independent-comparison.json](independent-comparison.json) binds all four +complete receipts by SHA256 and records the cross-check results. + +| Complete check | Agreed result | +| --- | ---: | +| Single-operation domain records | 3,064 | +| Literal single moves | 1,452,893 | +| Single profile-delta classes | 22 | +| Distinct overlapping ordered pairs | 59,998 | +| Pair-projected first states, including identities | 327,963 | +| Priced final frame/touch representatives | 1,379,084 | +| Pair profile-delta classes | 93 | +| Exact profile ties among pair representatives | 1,282,055 | +| Strictly worse pair representatives | 97,029 | +| Better or unresolved representatives | 0 | + +All 3,064 single-operation domain digests match between +[primary-singles.json](primary-singles.json) and +[independent-singles.json](independent-singles.json). Every single delta, +occurrence count and status matches. Every independently computed rational +price interval lies inside the corresponding primary interval. + +The complete pair receipts are +[complete-pairs.json](complete-pairs.json) and +[independent-complete-pairs.json](independent-complete-pairs.json). +Their complete canonical candidate transcript hashes are identical: + +```text +b39d6d23210ab7eee24c04e165b078e39ea00053e4be4b523f7c793e24b79679 +``` + +All aggregate counts, all 93 delta frequencies and statuses also match; +every independent price interval is enclosed by its primary counterpart. +Both witness lists requiring further examination are empty. + +The primary complete pair run took **372.174 seconds**, including setup. +The independent run took **125.896 seconds**. The commands were: + +```sh +python3 research/pr1048-complete-feasibility/pairs.py --full --time-budget 900 --output research/pr1048-complete-feasibility/complete-pairs.json +python3 -I -O -B research/pr1048-complete-feasibility/independent_pairs.py --full --time-budget 1200 --output research/pr1048-complete-feasibility/independent-complete-pairs.json +``` + +Both exited successfully with `complete_domain: true`, `status: COMPLETE`. +The separate comparison reported +`PASS_COMPLETE_SINGLE_AND_TWO_TRANSPORT_CROSS_CHECK`. + +## Independent implementation and controls + +`independent_pairs.py` imports the frozen separate integer-geometry/rational- +series checker. It does not import the primary pair driver or primary pricing +and enumeration engines. The canonical transcript format is shared as an +external comparison format. The enclosing arithmetic remains separately +implemented, with no floating-point acceptance decisions. + +The compact `Projection` adapter restricts current-frame cells, D touches and +final climbs to the pair's two or three relevant registers. Its event order, +COPY snapshot and reconstructed full-frame C touches were reviewed against +the unoptimized replay. The 128-pair compact and unoptimized pilots have +identical candidate transcripts and totals. The 1,024-pair pilots additionally +have identical complete delta/price records; their shared transcript hash is +`5e50a1e0013065cf6423912a06a71e7533aac7f9954dc28067e629427fa71035`. +This removes irrelevant replay work without shrinking the move domain. + +Exact integer basis reduction checks that all **636 original masks equal +their rational span closures** within the source line set. Thus the mask +containment tests represent the claimed subspace containments. + +A small explicitly synthetic control has all baseline single deltas equal +to zero. Two first placements share the same frame and own-touch signature, +but only the later placement admits delta `{1:-1, 2:-1, 3:1}`. Its price is +strictly negative because `3^(1-c) < 1 + 2^(1-c)` for `0= 0, 'projected rank descent') + if difference: + counts[difference] += 1 + current[r] = frame + for f, rs in self.diagonal: + for r in rs: + touch(r, f) + for _, f, t, u in state['A']: + touch(t, f) + touch(u, f) + for r in self.retained: + counts[self.rank(current[r])] += 1 + for _, f, t, u in state['B']: + touch(t, f) + touch(u, f) + v = self.word['v'] + for _, _, t, u in reversed(state['A'] + state['B']): + if not v <= t < 2*v: + touch(t, self.full) + touch(u, self.full) + for r, f in self.ends.items(): + touch(r, f) + counts.pop(0, None) + return dict(counts) + + +def closed_catalogue(checker): + """Exact integer basis reduction: masks really contain all source lines in their spans.""" + def reduce_vector(v, rows): + v = list(v) + for pivot, row in rows: + if v[pivot]: + a, b = row[pivot], v[pivot] + v = [a*x-b*y for x, y in zip(v, row)] + divisor = 0 + for x in v: + divisor = gcd(divisor, x) + if divisor: + v = [x//divisor for x in v] + return v + for mask in checker.catalog: + rows = [] + for j, vector in enumerate(checker.word['lines']): + if mask >> j & 1: + v = reduce_vector(vector, rows) + if any(v): + rows.append((next(i for i, x in enumerate(v) if x), v)) + rows.sort() + closure = sum(1 << j for j, v in enumerate(checker.word['lines']) + if not any(reduce_vector(v, rows))) + ind.require(closure == mask, 'original catalogue mask is not span closed') + return len(checker.catalog) + + +def strict_synthetic_control(): + """Same first frame/touch signature can hide a strictly better continuation. + + y=(a<-c)@L, x=(b<-a)@H, e=(f<-g)@H, z=(d<-c)@L; + baseline order y,x,e,z, L=span(e1,e2), H=span(e1,...,e4). + This is an abstract transport contract, not an improved PR589 supplier. + """ + w = dict(v=0, R=6, lines=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]], + frames=[[0],[1],[0,1],[0,1,2,3]], start=[0,3,1,2,3,3], final=[3]*6, + ret=[], D=[], A=[], B=[[2,0,[2]],[3,1,[0]],[3,4,[5]],[2,3,[2]]]) + t = object.__new__(ind.WordCheck) + t.word, t.catalog, t.full = w, (1,2,3,15), 15 + t.ranks, t.closures, t.copy_frames = {}, {}, {} + t.initial = {'A': [], 'B': [(('B', i), t.catalog[f], a, u) + for i, (f, a, us) in enumerate(w['B']) for u in us]} + baseline = t.profile(t.initial) + singles = set() + for op in t.initial['B']: + for q, f, _ in t.literal_moves(t.initial, op[0]): + singles.add(ind.profile_delta(baseline, t.profile(t.apply(t.initial, op[0], q, f)))) + first = [m for m in t.literal_moves(t.initial, ('B',1)) if m[0] in (2,3)] + ind.require(len(first) == 2 and first[0][1:] == first[1][1:], 'synthetic first signature') + reachable = [] + for q, f, _ in first: + after = t.apply(t.initial, ('B',1), q, f) + values = {ind.profile_delta(baseline, t.profile(after))} + for q2, f2, _ in t.literal_moves(after, ('B',0)): + values.add(ind.profile_delta(baseline, t.profile(t.apply(after, ('B',0), q2, f2)))) + reachable.append(values) + improving = ((1,-1),(2,-1),(3,1)) + ind.require(singles == {()} and improving not in reachable[0] and improving in reachable[1], + 'own-touch first quotient failed to expose its lost improvement') + interval = ind.signed_price(dict(improving)) + ind.require(interval[1] < 0, 'synthetic strict sign') + return dict(synthetic=True, baseline_profile=baseline, all_single_deltas=[{}], + identical_first_frame_touch_signature_slots=[2,3], + earlier_continuation_deltas=[dict(x) for x in sorted(reachable[0])], + later_continuation_deltas=[dict(x) for x in sorted(reachable[1])], + lost_improving_delta=dict(improving), price_interval=list(map(str, interval)), + status='PASS_REJECT_UNSOUND_FIRST_TOUCH_QUOTIENT') + + +def run(limit=128, seconds=45, full=False): + started = time.monotonic() + inventory = ind.audit_inventory(json.loads((PREVIOUS / 'SOURCE-PINS.json').read_text())) + endpoints = [ind.residual(ind.BASE, a) for a in (ind.LOW, ind.HIGH)] + ind.require(endpoints[0][1] < 0 < endpoints[1][0], 'separate reference endpoint signs') + checker = ind.WordCheck() + ind.require(checker.profile(checker.initial) == ind.BASE, 'separate baseline replay') + closure_count = closed_catalogue(checker) + synthetic = strict_synthetic_control() + operations = {op[0]: op for section in 'AB' for op in checker.initial[section]} + by_register = {} + for identity, op in operations.items(): + for r in op[2:]: + by_register.setdefault(r, []).append(identity) + pairs = sorted({(x,y) for ids in by_register.values() for x in ids for y in ids if x != y}) + ind.require(len(operations) == 3064 and len(pairs) == 59998, 'fixed operation/pair inventory') + ind.require(full or 1 <= limit <= len(pairs), 'pilot size') + chosen = pairs if full else [pairs[i*len(pairs)//limit] for i in range(limit)] + projections, prices, frequencies = {}, {}, Counter() + totals = Counter() + witnesses = [] + transcript = hashlib.sha256() + setup = time.monotonic() - started + scan_started = time.monotonic() + for x, y in chosen: + if time.monotonic() - started >= seconds: + break + xo, yo = operations[x], operations[y] + registers = frozenset(xo[2:] + yo[2:]) + if registers not in projections: + state = {s: [op for op in checker.initial[s] if registers.intersection(op[2:])] + for s in 'AB'} + local = Projection(checker, registers) + baseline = local.profile(state, registers) + ind.require(baseline == checker.profile(checker.initial, registers), 'projection baseline') + projections[registers] = state, baseline, local + state, baseline, local = projections[registers] + first = [(q, f) for q, f, _ in local.literal_moves(state, x)] + first.append((checker.index(state, x), xo[1])) + ind.require(len(first) == len(set(first)), 'first projected duplication') + transcript.update(json.dumps([x,y,first], separators=(',', ':')).encode()) + for q, frame in first: + after = checker.apply(state, x, q, frame) + seconds_list = local.literal_moves(after, y) + representatives = {} + for q2, frame2, signature in seconds_list: + representatives.setdefault((frame2, signature), (q2, frame2)) + yi = checker.index(after, y) + signature = tuple(sum(r in op[2:] for op in after[y[0]][:yi]) for r in yo[2:]) + representatives.setdefault((yo[1], signature), (yi, yo[1])) + totals['second_literal_moves'] += len(seconds_list) + for q2, frame2 in representatives.values(): + final = checker.apply(after, y, q2, frame2) + key = ind.profile_delta(baseline, local.profile(final, registers)) + ind.require(sum(r*n for r,n in key) == 0, 'pair rank mass') + if key not in prices: + candidate = {r: ind.BASE.get(r, 0)+dict(key).get(r, 0) + for r in set(ind.BASE) | set(dict(key))} + ind.require(all(n >= 0 for n in candidate.values()), 'negative final profile') + ind.require(ind.residual(candidate, ind.Q(0))[1] < 0, 'pair positive root') + interval = ind.signed_price(dict(key)) + prices[key] = dict(status=ind.status_of(interval), interval=list(map(str, interval))) + price = prices[key] + totals[price['status']] += 1 + totals['priced_second_classes'] += 1 + frequencies[key] += 1 + transcript.update(json.dumps([q,frame,q2,frame2,key], separators=(',', ':')).encode()) + if price['status'] != 'WORSE_OR_EQUAL' and len(witnesses) < 8: + witnesses.append(dict(first=dict(operation=list(x), projected_slot=q, frame_mask=str(frame)), + second=dict(operation=list(y), projected_slot=q2, frame_mask=str(frame2)), + registers=sorted(registers), local_delta=dict(key), price=price)) + totals['first_states'] += 1 + totals['ordered_pairs'] += 1 + if totals['ordered_pairs'] % 2000 == 0: + print(json.dumps(dict(progress_pairs=totals['ordered_pairs'], total_pairs=len(chosen), + elapsed_seconds=round(time.monotonic()-started, 2))), flush=True) + if witnesses: + break + elapsed = time.monotonic() - scan_started + complete = totals['ordered_pairs'] == len(pairs) + return dict(status='COMPLETE' if complete else 'INCOMPLETE' if full else 'PILOT_ONLY', + complete_domain=complete, engine='independent integer geometry and rational series', + requested_pairs=len(chosen), source_inventory=inventory, + source_word_sha256=checker.word_sha, original_span_closed_frames=closure_count, + synthetic_control=synthetic, candidate_digest=transcript.hexdigest(), totals=dict(totals), + delta_classes=[dict(delta=dict(k), priced_classes=n, price=prices[k]) for k,n in sorted(frequencies.items())], + witnesses_requiring_full_lift_and_independent_check=witnesses, + reference_bracket=list(map(str, (ind.LOW, ind.HIGH))), + endpoint_residuals=[list(map(str, x)) for x in endpoints], + driver_sha256=hashlib.sha256(Path(__file__).read_bytes()).hexdigest(), + frozen_checker_sha256=hashlib.sha256((PREVIOUS / 'independent.py').read_bytes()).hexdigest(), + timing=dict(setup_seconds=round(setup, 3), scan_seconds=round(elapsed, 3), + total_seconds=round(time.monotonic()-started, 3), + linear_full_scan_seconds=round(elapsed*len(pairs)/max(1,totals['ordered_pairs']), 1))) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('--pairs', type=int, default=128) + parser.add_argument('--time-budget', type=float, default=45) + parser.add_argument('--full', action='store_true') + parser.add_argument('--output', type=Path, required=True) + args = parser.parse_args() + result = run(args.pairs, args.time_budget, args.full) + args.output.write_text(json.dumps(result, sort_keys=True, indent=2)+'\n') + print(json.dumps({k: result[k] for k in ('status','complete_domain','requested_pairs','totals','timing')}, sort_keys=True)) diff --git a/research/pr1048-complete-feasibility/pairs.py b/research/pr1048-complete-feasibility/pairs.py new file mode 100644 index 0000000000..7c5637a140 --- /dev/null +++ b/research/pr1048-complete-feasibility/pairs.py @@ -0,0 +1,189 @@ +#!/usr/bin/env python3 +"""Minimal primary scan of the exact ordered-pair projection. + +Brian Ross with substantial OpenAI Codex assistance, Apache-2.0. +Retains the flemhhh/DreamingOfClouds supplier and audit attribution in the +certified repair. No complete two-move claim follows from a pilot run. + +For fixed x,y, omit gates disjoint from R=regs(x)|regs(y). Every omitted gate +commutes with both movers and changes no R frame, COPY frame, or C event. +Consequently the projected first slots preserve y's continuation, including +touches of y's private register; own-touch first classes alone would not. +Both section boundaries remain. An identity first state covers first moves +whose only crossings are erased by projection. The pinned COPY frames and +original catalogue are inherited from the full baseline. + +After the second move there is no further continuation: (frame,touch-counts) +may then cache the exact resulting R profile. The first states are NOT +coalesced by profile or by own-touch signature. +""" +from __future__ import annotations + +import argparse +from collections import Counter, defaultdict +import gzip +import hashlib +import json +from pathlib import Path +import sys +import time + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] +sys.path.insert(0, str(ROOT/'research/pr1048-certified-repair')) +from coverage import Frames, State, WORD, delta, delta_key, legal_moves, require +from pricing import ReferencePricer +from run import check_sources + + +def ordered_pairs(state): + touches = defaultdict(set) + for sec in 'AB': + for _, t, u, oid in state.sections[sec]: + touches[t].add(oid) + touches[u].add(oid) + pairs = set() + for ids in touches.values(): + pairs.update((x,y) for x in ids for y in ids if x != y) + return sorted(pairs) + + +def projected(full, registers): + s = full.clone() + s.sections = {sec:[op for op in full.sections[sec] + if registers & set(op[1:3])] for sec in 'AB'} + # clone retains the full initial COPY snapshot; never recompute it after + # deleting irrelevant gates or after the first transport. + require(s.cp == full.cp, 'COPY snapshot was not pinned') + require(s.profile(registers) == full.profile(registers), + 'projection changed baseline register profile') + return s + + +def describe(identity, slot, frame): + return {'operation':list(identity),'projected_slot':slot,'frame_mask':str(frame)} + + +def scan(limit=128, time_budget=45, full_scan=False): + start = time.monotonic() + source_count = check_sources() + w = json.load(gzip.open(WORD,'rt')) + baseline = State(w,Frames(w)) + pairs = ordered_pairs(baseline) + if full_scan: + chosen = pairs + else: + require(1 <= limit <= len(pairs), 'pilot size outside pair domain') + chosen = [pairs[k*len(pairs)//limit] for k in range(limit)] + # Initialize pricing before scanning; report it separately from kernel + # time so a pilot is not extrapolated from a fixed certificate setup cost. + pricer = ReferencePricer() + require(baseline.profile() == pricer.local, 'full baseline differs from certified reference profile') + setup = time.monotonic()-start + projections = {} + prices = {} + delta_counts = Counter() + totals = Counter() + completed = [] + witnesses = [] + digest = hashlib.sha256() + scan_start = time.monotonic() + for x,y in chosen: + if time.monotonic()-start >= time_budget: + break + xop = baseline.sections[x[0]][baseline.index(x)] + yop = baseline.sections[y[0]][baseline.index(y)] + regs = frozenset(xop[1:3]+yop[1:3]) + if regs not in projections: + s = projected(baseline,regs) + projections[regs] = s,s.profile(regs) + s,base_profile = projections[regs] + first = [(q,f) for q,f,_ in legal_moves(s,x)] + first.append((s.index(x),xop[0])) + require(len(first) == len(set(first)), 'duplicate first projected state') + row = {'first':list(x),'second':list(y),'first_states':len(first), + 'projected_operations':sum(map(len,s.sections.values())), + 'second_literal_moves':0,'priced_second_classes':0} + digest.update(json.dumps([x,y,first],separators=(',',':')).encode()) + for q,f in first: + after = s.moved(x,q,f) + second = legal_moves(after,y) + # Include the identity second state too; all one-move states are + # covered explicitly, and the non-improvement theorem includes + # at most two transports without an exactly-two loophole. + second_classes = {} + for q2,f2,sig in second: + second_classes.setdefault((f2,sig),(q2,f2)) + row['second_literal_moves'] += len(second) + totals['second_literal_moves'] += len(second) + yi = after.index(y) + preceding = after.sections[y[0]][:yi] + identity_signature = tuple(sum(r in op[1:3] for op in preceding) + for r in yop[1:3]) + second_classes.setdefault((yop[0],identity_signature),(yi,yop[0])) + representatives = list(second_classes.values()) + for q2,f2 in representatives: + final = after.moved(y,q2,f2) + d = delta(base_profile,final.profile(regs)) + require(sum(r*n for r,n in d.items()) == 0, 'transport changed rank mass') + key = delta_key(d) + if key not in prices: + prices[key] = pricer.compare_delta(d) + classification = prices[key] + totals[classification['status']] += 1 + totals['priced_second_classes'] += 1 + row['priced_second_classes'] += 1 + delta_counts[key] += 1 + digest.update(json.dumps([q,f,q2,f2,key],separators=(',',':')).encode()) + if classification['status'] != 'WORSE_OR_EQUAL' and len(witnesses) < 8: + witnesses.append({'first':describe(x,q,f),'second':describe(y,q2,f2), + 'registers':sorted(regs),'local_delta':d, + 'price':classification}) + totals['first_states'] += 1 + totals['ordered_pairs'] += 1 + completed.append(row) + if len(completed) in (256,2048) or len(completed)%2000 == 0: + running = time.monotonic()-scan_start + print(json.dumps({'progress_pairs':len(completed),'requested_pairs':len(chosen), + 'first_states':totals['first_states'], + 'priced_second_classes':totals['priced_second_classes'], + 'scan_seconds':round(running,3), + 'linear_full_scan_seconds':round(running*len(pairs)/len(completed),1)}, + sort_keys=True),flush=True) + # A putative improvement is a reason to lift and independently verify + # that witness before launching any broader enumeration. + if witnesses: + break + elapsed = time.monotonic()-scan_start + return {'status':'PILOT_ONLY' if not full_scan else 'COMPLETE' if len(completed)==len(pairs) else 'INCOMPLETE', + 'complete_domain':len(completed)==len(pairs), + 'domain':{'ordered_distinct_adjacent_pairs':len(pairs), + 'first_frame_domain':'original636 plus rational closure of per-slot lower frame bound', + 'first_slots':'all literal slots in pair-specific projection, plus identity', + 'second_slots':'all legal projected slots; equal frame/touch contexts priced once; plus identity', + 'sections':'both retained','self_pair_reduction':'final state is a legal single transport in the frozen frame domain'}, + 'pilot_selection':'evenly spaced indices in sorted ordered-pair domain' if not full_scan else 'all', + 'requested_pairs':len(chosen),'completed_pair_count':len(completed), + 'pilot_pair_rows':completed if not full_scan else [], + 'checked_source_pins':source_count, + 'implementation_sha256':hashlib.sha256(Path(__file__).read_bytes()).hexdigest(), + 'source_word_sha256':hashlib.sha256(WORD.read_bytes()).hexdigest(), + 'candidate_digest':digest.hexdigest(), + 'totals':dict(totals), + 'delta_classes':[{'delta':dict(k),'priced_classes':n,'price':prices[k]} for k,n in sorted(delta_counts.items())], + 'witnesses_requiring_full_lift_and_independent_check':witnesses, + 'timing':{'setup_seconds':round(setup,3),'scan_seconds':round(elapsed,3), + 'total_seconds':round(time.monotonic()-start,3), + 'linear_full_scan_seconds':round(elapsed*len(pairs)/max(1,len(completed)),1)}} + + +if __name__ == '__main__': + ap = argparse.ArgumentParser() + ap.add_argument('--pairs',type=int,default=128) + ap.add_argument('--time-budget',type=float,default=45) + ap.add_argument('--full',action='store_true',help='explicit full-run authorization required') + ap.add_argument('--output',type=Path,required=True) + args = ap.parse_args() + result = scan(args.pairs,args.time_budget,args.full) + args.output.write_text(json.dumps(result,sort_keys=True,indent=2)+'\n') + print(json.dumps({k:result[k] for k in ('status','complete_domain','requested_pairs','totals','timing')},sort_keys=True)) diff --git a/research/pr1048-complete-feasibility/pilot128.json b/research/pr1048-complete-feasibility/pilot128.json new file mode 100644 index 0000000000..5de02f87e1 --- /dev/null +++ b/research/pr1048-complete-feasibility/pilot128.json @@ -0,0 +1,1950 @@ +{ + "candidate_digest": "b53a23201f887c88b20fa7632244ff07199782201bb6cef8a14a66912d437692", + "complete_domain": false, + "completed_pairs": [ + { + "first": [ + "A", + 0 + ], + "first_states": 3, + "priced_second_classes": 9, + "projected_operations": 37, + "second": [ + "A", + 1 + ], + "second_literal_moves": 12 + }, + { + "first": [ + "A", + 22 + ], + "first_states": 4, + "priced_second_classes": 24, + "projected_operations": 35, + "second": [ + "A", + 2011 + ], + "second_literal_moves": 20 + }, + { + "first": [ + "A", + 44 + ], + "first_states": 5, + "priced_second_classes": 5, + "projected_operations": 28, + "second": [ + "A", + 419 + ], + "second_literal_moves": 5 + }, + { + "first": [ + "A", + 67 + ], + "first_states": 2, + "priced_second_classes": 2, + "projected_operations": 21, + "second": [ + "B", + 78 + ], + "second_literal_moves": 0 + }, + { + "first": [ + "A", + 89 + ], + "first_states": 4, + "priced_second_classes": 4, + "projected_operations": 39, + "second": [ + "A", + 398 + ], + "second_literal_moves": 4 + }, + { + "first": [ + "A", + 110 + ], + "first_states": 5, + "priced_second_classes": 35, + "projected_operations": 40, + "second": [ + "B", + 275 + ], + "second_literal_moves": 30 + }, + { + "first": [ + "A", + 133 + ], + "first_states": 4, + "priced_second_classes": 24, + "projected_operations": 40, + "second": [ + "A", + 616 + ], + "second_literal_moves": 20 + }, + { + "first": [ + "A", + 154 + ], + "first_states": 4, + "priced_second_classes": 4, + "projected_operations": 35, + "second": [ + "B", + 525 + ], + "second_literal_moves": 0 + }, + { + "first": [ + "A", + 176 + ], + "first_states": 4, + "priced_second_classes": 4, + "projected_operations": 37, + "second": [ + "A", + 545 + ], + "second_literal_moves": 3 + }, + { + "first": [ + "A", + 200 + ], + "first_states": 2, + "priced_second_classes": 2, + "projected_operations": 27, + "second": [ + "A", + 512 + ], + "second_literal_moves": 2 + }, + { + "first": [ + "A", + 221 + ], + "first_states": 3, + "priced_second_classes": 15, + "projected_operations": 45, + "second": [ + "A", + 837 + ], + "second_literal_moves": 12 + }, + { + "first": [ + "A", + 248 + ], + "first_states": 3, + "priced_second_classes": 15, + "projected_operations": 32, + "second": [ + "A", + 720 + ], + "second_literal_moves": 12 + }, + { + "first": [ + "A", + 270 + ], + "first_states": 3, + "priced_second_classes": 18, + "projected_operations": 31, + "second": [ + "A", + 1174 + ], + "second_literal_moves": 15 + }, + { + "first": [ + "A", + 294 + ], + "first_states": 4, + "priced_second_classes": 8, + "projected_operations": 30, + "second": [ + "A", + 905 + ], + "second_literal_moves": 28 + }, + { + "first": [ + "A", + 318 + ], + "first_states": 1, + "priced_second_classes": 10, + "projected_operations": 40, + "second": [ + "B", + 190 + ], + "second_literal_moves": 9 + }, + { + "first": [ + "A", + 342 + ], + "first_states": 2, + "priced_second_classes": 8, + "projected_operations": 27, + "second": [ + "A", + 622 + ], + "second_literal_moves": 6 + }, + { + "first": [ + "A", + 365 + ], + "first_states": 3, + "priced_second_classes": 6, + "projected_operations": 36, + "second": [ + "A", + 724 + ], + "second_literal_moves": 3 + }, + { + "first": [ + "A", + 390 + ], + "first_states": 1, + "priced_second_classes": 5, + "projected_operations": 42, + "second": [ + "A", + 782 + ], + "second_literal_moves": 4 + }, + { + "first": [ + "A", + 415 + ], + "first_states": 1, + "priced_second_classes": 5, + "projected_operations": 36, + "second": [ + "A", + 657 + ], + "second_literal_moves": 11 + }, + { + "first": [ + "A", + 439 + ], + "first_states": 2, + "priced_second_classes": 4, + "projected_operations": 26, + "second": [ + "A", + 1448 + ], + "second_literal_moves": 2 + }, + { + "first": [ + "A", + 463 + ], + "first_states": 2, + "priced_second_classes": 14, + "projected_operations": 29, + "second": [ + "A", + 1002 + ], + "second_literal_moves": 12 + }, + { + "first": [ + "A", + 487 + ], + "first_states": 1, + "priced_second_classes": 13, + "projected_operations": 52, + "second": [ + "B", + 370 + ], + "second_literal_moves": 12 + }, + { + "first": [ + "A", + 510 + ], + "first_states": 2, + "priced_second_classes": 10, + "projected_operations": 29, + "second": [ + "A", + 1586 + ], + "second_literal_moves": 8 + }, + { + "first": [ + "A", + 535 + ], + "first_states": 3, + "priced_second_classes": 18, + "projected_operations": 28, + "second": [ + "A", + 1173 + ], + "second_literal_moves": 15 + }, + { + "first": [ + "A", + 558 + ], + "first_states": 1, + "priced_second_classes": 6, + "projected_operations": 31, + "second": [ + "A", + 1689 + ], + "second_literal_moves": 13 + }, + { + "first": [ + "A", + 582 + ], + "first_states": 2, + "priced_second_classes": 10, + "projected_operations": 29, + "second": [ + "A", + 1183 + ], + "second_literal_moves": 20 + }, + { + "first": [ + "A", + 603 + ], + "first_states": 10, + "priced_second_classes": 60, + "projected_operations": 37, + "second": [ + "A", + 591 + ], + "second_literal_moves": 100 + }, + { + "first": [ + "A", + 623 + ], + "first_states": 4, + "priced_second_classes": 4, + "projected_operations": 30, + "second": [ + "A", + 446 + ], + "second_literal_moves": 4 + }, + { + "first": [ + "A", + 643 + ], + "first_states": 11, + "priced_second_classes": 88, + "projected_operations": 39, + "second": [ + "A", + 649 + ], + "second_literal_moves": 110 + }, + { + "first": [ + "A", + 661 + ], + "first_states": 10, + "priced_second_classes": 50, + "projected_operations": 29, + "second": [ + "A", + 677 + ], + "second_literal_moves": 60 + }, + { + "first": [ + "A", + 684 + ], + "first_states": 6, + "priced_second_classes": 42, + "projected_operations": 34, + "second": [ + "A", + 693 + ], + "second_literal_moves": 59 + }, + { + "first": [ + "A", + 706 + ], + "first_states": 7, + "priced_second_classes": 7, + "projected_operations": 36, + "second": [ + "A", + 469 + ], + "second_literal_moves": 14 + }, + { + "first": [ + "A", + 726 + ], + "first_states": 12, + "priced_second_classes": 86, + "projected_operations": 33, + "second": [ + "A", + 728 + ], + "second_literal_moves": 98 + }, + { + "first": [ + "A", + 746 + ], + "first_states": 3, + "priced_second_classes": 5, + "projected_operations": 33, + "second": [ + "A", + 747 + ], + "second_literal_moves": 2 + }, + { + "first": [ + "A", + 770 + ], + "first_states": 6, + "priced_second_classes": 12, + "projected_operations": 37, + "second": [ + "A", + 62 + ], + "second_literal_moves": 24 + }, + { + "first": [ + "A", + 793 + ], + "first_states": 7, + "priced_second_classes": 7, + "projected_operations": 29, + "second": [ + "A", + 1825 + ], + "second_literal_moves": 32 + }, + { + "first": [ + "A", + 817 + ], + "first_states": 2, + "priced_second_classes": 4, + "projected_operations": 41, + "second": [ + "A", + 110 + ], + "second_literal_moves": 2 + }, + { + "first": [ + "A", + 840 + ], + "first_states": 4, + "priced_second_classes": 8, + "projected_operations": 42, + "second": [ + "A", + 207 + ], + "second_literal_moves": 8 + }, + { + "first": [ + "A", + 860 + ], + "first_states": 7, + "priced_second_classes": 7, + "projected_operations": 28, + "second": [ + "A", + 2118 + ], + "second_literal_moves": 14 + }, + { + "first": [ + "A", + 884 + ], + "first_states": 7, + "priced_second_classes": 21, + "projected_operations": 26, + "second": [ + "B", + 763 + ], + "second_literal_moves": 14 + }, + { + "first": [ + "A", + 907 + ], + "first_states": 6, + "priced_second_classes": 6, + "projected_operations": 31, + "second": [ + "A", + 1834 + ], + "second_literal_moves": 6 + }, + { + "first": [ + "A", + 930 + ], + "first_states": 6, + "priced_second_classes": 6, + "projected_operations": 31, + "second": [ + "A", + 584 + ], + "second_literal_moves": 9 + }, + { + "first": [ + "A", + 954 + ], + "first_states": 3, + "priced_second_classes": 18, + "projected_operations": 29, + "second": [ + "A", + 949 + ], + "second_literal_moves": 24 + }, + { + "first": [ + "A", + 978 + ], + "first_states": 6, + "priced_second_classes": 36, + "projected_operations": 24, + "second": [ + "A", + 966 + ], + "second_literal_moves": 30 + }, + { + "first": [ + "A", + 1001 + ], + "first_states": 9, + "priced_second_classes": 32, + "projected_operations": 28, + "second": [ + "A", + 1007 + ], + "second_literal_moves": 32 + }, + { + "first": [ + "A", + 1025 + ], + "first_states": 7, + "priced_second_classes": 42, + "projected_operations": 31, + "second": [ + "A", + 1015 + ], + "second_literal_moves": 49 + }, + { + "first": [ + "A", + 1049 + ], + "first_states": 3, + "priced_second_classes": 3, + "projected_operations": 34, + "second": [ + "A", + 348 + ], + "second_literal_moves": 3 + }, + { + "first": [ + "A", + 1073 + ], + "first_states": 10, + "priced_second_classes": 40, + "projected_operations": 27, + "second": [ + "A", + 1084 + ], + "second_literal_moves": 40 + }, + { + "first": [ + "A", + 1097 + ], + "first_states": 9, + "priced_second_classes": 36, + "projected_operations": 31, + "second": [ + "A", + 1105 + ], + "second_literal_moves": 27 + }, + { + "first": [ + "A", + 1119 + ], + "first_states": 4, + "priced_second_classes": 12, + "projected_operations": 27, + "second": [ + "B", + 779 + ], + "second_literal_moves": 8 + }, + { + "first": [ + "A", + 1142 + ], + "first_states": 3, + "priced_second_classes": 3, + "projected_operations": 24, + "second": [ + "A", + 501 + ], + "second_literal_moves": 0 + }, + { + "first": [ + "A", + 1167 + ], + "first_states": 3, + "priced_second_classes": 12, + "projected_operations": 25, + "second": [ + "A", + 1166 + ], + "second_literal_moves": 9 + }, + { + "first": [ + "A", + 1189 + ], + "first_states": 9, + "priced_second_classes": 34, + "projected_operations": 32, + "second": [ + "A", + 1178 + ], + "second_literal_moves": 33 + }, + { + "first": [ + "A", + 1213 + ], + "first_states": 8, + "priced_second_classes": 8, + "projected_operations": 28, + "second": [ + "A", + 302 + ], + "second_literal_moves": 24 + }, + { + "first": [ + "A", + 1238 + ], + "first_states": 4, + "priced_second_classes": 8, + "projected_operations": 28, + "second": [ + "A", + 65 + ], + "second_literal_moves": 8 + }, + { + "first": [ + "A", + 1262 + ], + "first_states": 1, + "priced_second_classes": 2, + "projected_operations": 33, + "second": [ + "A", + 152 + ], + "second_literal_moves": 2 + }, + { + "first": [ + "A", + 1285 + ], + "first_states": 5, + "priced_second_classes": 5, + "projected_operations": 29, + "second": [ + "A", + 550 + ], + "second_literal_moves": 5 + }, + { + "first": [ + "A", + 1307 + ], + "first_states": 7, + "priced_second_classes": 49, + "projected_operations": 33, + "second": [ + "A", + 1296 + ], + "second_literal_moves": 56 + }, + { + "first": [ + "A", + 1329 + ], + "first_states": 8, + "priced_second_classes": 40, + "projected_operations": 28, + "second": [ + "A", + 1316 + ], + "second_literal_moves": 56 + }, + { + "first": [ + "A", + 1358 + ], + "first_states": 9, + "priced_second_classes": 21, + "projected_operations": 27, + "second": [ + "A", + 1365 + ], + "second_literal_moves": 12 + }, + { + "first": [ + "A", + 1384 + ], + "first_states": 4, + "priced_second_classes": 14, + "projected_operations": 26, + "second": [ + "A", + 1380 + ], + "second_literal_moves": 18 + }, + { + "first": [ + "A", + 1409 + ], + "first_states": 6, + "priced_second_classes": 18, + "projected_operations": 24, + "second": [ + "B", + 671 + ], + "second_literal_moves": 18 + }, + { + "first": [ + "A", + 1434 + ], + "first_states": 6, + "priced_second_classes": 18, + "projected_operations": 28, + "second": [ + "A", + 1428 + ], + "second_literal_moves": 18 + }, + { + "first": [ + "A", + 1464 + ], + "first_states": 7, + "priced_second_classes": 39, + "projected_operations": 18, + "second": [ + "A", + 1473 + ], + "second_literal_moves": 39 + }, + { + "first": [ + "A", + 1494 + ], + "first_states": 6, + "priced_second_classes": 30, + "projected_operations": 25, + "second": [ + "A", + 1493 + ], + "second_literal_moves": 36 + }, + { + "first": [ + "A", + 1519 + ], + "first_states": 5, + "priced_second_classes": 5, + "projected_operations": 32, + "second": [ + "B", + 570 + ], + "second_literal_moves": 10 + }, + { + "first": [ + "A", + 1544 + ], + "first_states": 3, + "priced_second_classes": 13, + "projected_operations": 30, + "second": [ + "A", + 1551 + ], + "second_literal_moves": 19 + }, + { + "first": [ + "A", + 1573 + ], + "first_states": 5, + "priced_second_classes": 24, + "projected_operations": 23, + "second": [ + "A", + 1575 + ], + "second_literal_moves": 29 + }, + { + "first": [ + "A", + 1600 + ], + "first_states": 2, + "priced_second_classes": 2, + "projected_operations": 20, + "second": [ + "A", + 1921 + ], + "second_literal_moves": 4 + }, + { + "first": [ + "A", + 1632 + ], + "first_states": 7, + "priced_second_classes": 30, + "projected_operations": 23, + "second": [ + "A", + 1637 + ], + "second_literal_moves": 32 + }, + { + "first": [ + "A", + 1663 + ], + "first_states": 6, + "priced_second_classes": 6, + "projected_operations": 23, + "second": [ + "A", + 462 + ], + "second_literal_moves": 0 + }, + { + "first": [ + "A", + 1693 + ], + "first_states": 8, + "priced_second_classes": 32, + "projected_operations": 28, + "second": [ + "A", + 1699 + ], + "second_literal_moves": 32 + }, + { + "first": [ + "A", + 1719 + ], + "first_states": 8, + "priced_second_classes": 56, + "projected_operations": 28, + "second": [ + "A", + 1709 + ], + "second_literal_moves": 93 + }, + { + "first": [ + "A", + 1745 + ], + "first_states": 4, + "priced_second_classes": 28, + "projected_operations": 26, + "second": [ + "A", + 1732 + ], + "second_literal_moves": 44 + }, + { + "first": [ + "A", + 1772 + ], + "first_states": 7, + "priced_second_classes": 35, + "projected_operations": 25, + "second": [ + "A", + 1781 + ], + "second_literal_moves": 28 + }, + { + "first": [ + "A", + 1801 + ], + "first_states": 5, + "priced_second_classes": 30, + "projected_operations": 25, + "second": [ + "A", + 1788 + ], + "second_literal_moves": 30 + }, + { + "first": [ + "A", + 1825 + ], + "first_states": 2, + "priced_second_classes": 2, + "projected_operations": 30, + "second": [ + "A", + 249 + ], + "second_literal_moves": 2 + }, + { + "first": [ + "A", + 1847 + ], + "first_states": 2, + "priced_second_classes": 4, + "projected_operations": 23, + "second": [ + "A", + 1458 + ], + "second_literal_moves": 2 + }, + { + "first": [ + "A", + 1872 + ], + "first_states": 5, + "priced_second_classes": 20, + "projected_operations": 29, + "second": [ + "A", + 1775 + ], + "second_literal_moves": 15 + }, + { + "first": [ + "A", + 1898 + ], + "first_states": 2, + "priced_second_classes": 10, + "projected_operations": 32, + "second": [ + "A", + 1042 + ], + "second_literal_moves": 8 + }, + { + "first": [ + "A", + 1922 + ], + "first_states": 1, + "priced_second_classes": 1, + "projected_operations": 28, + "second": [ + "B", + 575 + ], + "second_literal_moves": 0 + }, + { + "first": [ + "A", + 1948 + ], + "first_states": 2, + "priced_second_classes": 10, + "projected_operations": 25, + "second": [ + "A", + 959 + ], + "second_literal_moves": 8 + }, + { + "first": [ + "A", + 1973 + ], + "first_states": 2, + "priced_second_classes": 16, + "projected_operations": 33, + "second": [ + "A", + 594 + ], + "second_literal_moves": 14 + }, + { + "first": [ + "A", + 1998 + ], + "first_states": 12, + "priced_second_classes": 67, + "projected_operations": 18, + "second": [ + "A", + 1994 + ], + "second_literal_moves": 67 + }, + { + "first": [ + "A", + 2025 + ], + "first_states": 4, + "priced_second_classes": 32, + "projected_operations": 27, + "second": [ + "A", + 2018 + ], + "second_literal_moves": 42 + }, + { + "first": [ + "A", + 2055 + ], + "first_states": 1, + "priced_second_classes": 1, + "projected_operations": 28, + "second": [ + "A", + 1898 + ], + "second_literal_moves": 2 + }, + { + "first": [ + "A", + 2087 + ], + "first_states": 2, + "priced_second_classes": 14, + "projected_operations": 28, + "second": [ + "A", + 860 + ], + "second_literal_moves": 12 + }, + { + "first": [ + "A", + 2118 + ], + "first_states": 2, + "priced_second_classes": 2, + "projected_operations": 27, + "second": [ + "A", + 262 + ], + "second_literal_moves": 0 + }, + { + "first": [ + "B", + 21 + ], + "first_states": 2, + "priced_second_classes": 16, + "projected_operations": 33, + "second": [ + "B", + 386 + ], + "second_literal_moves": 14 + }, + { + "first": [ + "B", + 54 + ], + "first_states": 1, + "priced_second_classes": 6, + "projected_operations": 36, + "second": [ + "B", + 126 + ], + "second_literal_moves": 5 + }, + { + "first": [ + "B", + 82 + ], + "first_states": 1, + "priced_second_classes": 4, + "projected_operations": 30, + "second": [ + "B", + 876 + ], + "second_literal_moves": 31 + }, + { + "first": [ + "B", + 108 + ], + "first_states": 10, + "priced_second_classes": 30, + "projected_operations": 45, + "second": [ + "A", + 12 + ], + "second_literal_moves": 50 + }, + { + "first": [ + "B", + 126 + ], + "first_states": 6, + "priced_second_classes": 54, + "projected_operations": 33, + "second": [ + "B", + 103 + ], + "second_literal_moves": 48 + }, + { + "first": [ + "B", + 144 + ], + "first_states": 12, + "priced_second_classes": 93, + "projected_operations": 34, + "second": [ + "B", + 145 + ], + "second_literal_moves": 93 + }, + { + "first": [ + "B", + 162 + ], + "first_states": 1, + "priced_second_classes": 10, + "projected_operations": 42, + "second": [ + "B", + 142 + ], + "second_literal_moves": 15 + }, + { + "first": [ + "B", + 179 + ], + "first_states": 8, + "priced_second_classes": 88, + "projected_operations": 42, + "second": [ + "B", + 183 + ], + "second_literal_moves": 111 + }, + { + "first": [ + "B", + 196 + ], + "first_states": 9, + "priced_second_classes": 9, + "projected_operations": 43, + "second": [ + "B", + 561 + ], + "second_literal_moves": 30 + }, + { + "first": [ + "B", + 213 + ], + "first_states": 11, + "priced_second_classes": 33, + "projected_operations": 35, + "second": [ + "A", + 132 + ], + "second_literal_moves": 66 + }, + { + "first": [ + "B", + 231 + ], + "first_states": 12, + "priced_second_classes": 94, + "projected_operations": 38, + "second": [ + "B", + 205 + ], + "second_literal_moves": 105 + }, + { + "first": [ + "B", + 247 + ], + "first_states": 13, + "priced_second_classes": 26, + "projected_operations": 40, + "second": [ + "B", + 280 + ], + "second_literal_moves": 13 + }, + { + "first": [ + "B", + 266 + ], + "first_states": 6, + "priced_second_classes": 12, + "projected_operations": 26, + "second": [ + "A", + 205 + ], + "second_literal_moves": 18 + }, + { + "first": [ + "B", + 283 + ], + "first_states": 8, + "priced_second_classes": 64, + "projected_operations": 43, + "second": [ + "B", + 306 + ], + "second_literal_moves": 64 + }, + { + "first": [ + "B", + 302 + ], + "first_states": 7, + "priced_second_classes": 28, + "projected_operations": 36, + "second": [ + "A", + 436 + ], + "second_literal_moves": 49 + }, + { + "first": [ + "B", + 318 + ], + "first_states": 14, + "priced_second_classes": 196, + "projected_operations": 48, + "second": [ + "B", + 321 + ], + "second_literal_moves": 266 + }, + { + "first": [ + "B", + 334 + ], + "first_states": 3, + "priced_second_classes": 9, + "projected_operations": 30, + "second": [ + "B", + 916 + ], + "second_literal_moves": 9 + }, + { + "first": [ + "B", + 352 + ], + "first_states": 9, + "priced_second_classes": 27, + "projected_operations": 45, + "second": [ + "B", + 339 + ], + "second_literal_moves": 27 + }, + { + "first": [ + "B", + 366 + ], + "first_states": 12, + "priced_second_classes": 12, + "projected_operations": 47, + "second": [ + "B", + 593 + ], + "second_literal_moves": 60 + }, + { + "first": [ + "B", + 383 + ], + "first_states": 15, + "priced_second_classes": 134, + "projected_operations": 47, + "second": [ + "B", + 382 + ], + "second_literal_moves": 194 + }, + { + "first": [ + "B", + 400 + ], + "first_states": 7, + "priced_second_classes": 28, + "projected_operations": 37, + "second": [ + "B", + 655 + ], + "second_literal_moves": 42 + }, + { + "first": [ + "B", + 416 + ], + "first_states": 5, + "priced_second_classes": 10, + "projected_operations": 36, + "second": [ + "A", + 187 + ], + "second_literal_moves": 20 + }, + { + "first": [ + "B", + 433 + ], + "first_states": 7, + "priced_second_classes": 7, + "projected_operations": 38, + "second": [ + "B", + 589 + ], + "second_literal_moves": 14 + }, + { + "first": [ + "B", + 449 + ], + "first_states": 9, + "priced_second_classes": 90, + "projected_operations": 46, + "second": [ + "B", + 480 + ], + "second_literal_moves": 117 + }, + { + "first": [ + "B", + 467 + ], + "first_states": 6, + "priced_second_classes": 12, + "projected_operations": 28, + "second": [ + "A", + 146 + ], + "second_literal_moves": 24 + }, + { + "first": [ + "B", + 484 + ], + "first_states": 3, + "priced_second_classes": 3, + "projected_operations": 27, + "second": [ + "B", + 65 + ], + "second_literal_moves": 6 + }, + { + "first": [ + "B", + 503 + ], + "first_states": 2, + "priced_second_classes": 10, + "projected_operations": 31, + "second": [ + "A", + 1381 + ], + "second_literal_moves": 10 + }, + { + "first": [ + "B", + 523 + ], + "first_states": 4, + "priced_second_classes": 20, + "projected_operations": 35, + "second": [ + "B", + 218 + ], + "second_literal_moves": 16 + }, + { + "first": [ + "B", + 545 + ], + "first_states": 1, + "priced_second_classes": 6, + "projected_operations": 38, + "second": [ + "A", + 1111 + ], + "second_literal_moves": 5 + }, + { + "first": [ + "B", + 566 + ], + "first_states": 1, + "priced_second_classes": 1, + "projected_operations": 33, + "second": [ + "A", + 561 + ], + "second_literal_moves": 2 + }, + { + "first": [ + "B", + 585 + ], + "first_states": 7, + "priced_second_classes": 35, + "projected_operations": 33, + "second": [ + "B", + 378 + ], + "second_literal_moves": 28 + }, + { + "first": [ + "B", + 610 + ], + "first_states": 7, + "priced_second_classes": 14, + "projected_operations": 24, + "second": [ + "A", + 10 + ], + "second_literal_moves": 7 + }, + { + "first": [ + "B", + 645 + ], + "first_states": 14, + "priced_second_classes": 31, + "projected_operations": 24, + "second": [ + "B", + 644 + ], + "second_literal_moves": 17 + }, + { + "first": [ + "B", + 683 + ], + "first_states": 23, + "priced_second_classes": 49, + "projected_operations": 36, + "second": [ + "B", + 684 + ], + "second_literal_moves": 48 + }, + { + "first": [ + "B", + 719 + ], + "first_states": 3, + "priced_second_classes": 6, + "projected_operations": 23, + "second": [ + "A", + 1164 + ], + "second_literal_moves": 3 + }, + { + "first": [ + "B", + 755 + ], + "first_states": 9, + "priced_second_classes": 9, + "projected_operations": 25, + "second": [ + "B", + 47 + ], + "second_literal_moves": 0 + }, + { + "first": [ + "B", + 789 + ], + "first_states": 3, + "priced_second_classes": 12, + "projected_operations": 27, + "second": [ + "B", + 787 + ], + "second_literal_moves": 45 + }, + { + "first": [ + "B", + 826 + ], + "first_states": 14, + "priced_second_classes": 31, + "projected_operations": 26, + "second": [ + "B", + 828 + ], + "second_literal_moves": 17 + }, + { + "first": [ + "B", + 862 + ], + "first_states": 3, + "priced_second_classes": 9, + "projected_operations": 23, + "second": [ + "B", + 863 + ], + "second_literal_moves": 21 + }, + { + "first": [ + "B", + 900 + ], + "first_states": 4, + "priced_second_classes": 8, + "projected_operations": 21, + "second": [ + "A", + 177 + ], + "second_literal_moves": 4 + } + ], + "delta_classes": [ + { + "delta": {}, + "price": { + "interval": [ + "0", + "0" + ], + "reason": "identical profile: exact equal root", + "status": "WORSE_OR_EQUAL" + }, + "priced_classes": 2751 + }, + { + "delta": { + "1": -1, + "2": 1, + "4": 1, + "5": -1 + }, + "price": { + "interval": [ + "481889594546853772457333938260726911248720043/250000000000000000000000000000000000000000000000", + "1927558378187415089844277021354692505093661607/1000000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "priced_classes": 80 + }, + { + "delta": { + "1": -1, + "2": 1, + "5": 1, + "6": -1 + }, + "price": { + "interval": [ + "2275023202596548310759075068871602448335293861/1000000000000000000000000000000000000000000000000", + "227502320259654831077920168765373918086299443/100000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "priced_classes": 3 + }, + { + "delta": { + "1": -1, + "2": 1, + "6": 1, + "7": -1 + }, + "price": { + "interval": [ + "128194107404258872137507853365541065066136203/50000000000000000000000000000000000000000000000", + "320485268510647180346979302241509791483872529/125000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "priced_classes": 4 + }, + { + "delta": { + "1": 1, + "3": 1, + "4": -1 + }, + "price": { + "interval": [ + "486620536011705732150471215546387264270361509/125000000000000000000000000000000000000000000000", + "3892964288093645857212591158894093867872398973/1000000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "priced_classes": 10 + }, + { + "delta": { + "1": 3, + "3": -1 + }, + "price": { + "interval": [ + "1426914078646908639967613297376068934685946327/250000000000000000000000000000000000000000000000", + "713457039323454319984217844483617770896308981/125000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "priced_classes": 84 + }, + { + "delta": { + "1": 4, + "2": -2 + }, + "price": { + "interval": [ + "2401597071054305152054774514090191048649089987/500000000000000000000000000000000000000000000000", + "1200798535527152576028079571895540691086195717/250000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "priced_classes": 40 + }, + { + "delta": { + "2": 2, + "4": -1 + }, + "price": { + "interval": [ + "1199356615143167528241298548164469379247145263/250000000000000000000000000000000000000000000000", + "4797426460572670112973495320217987509318004307/1000000000000000000000000000000000000000000000000" + ], + "reason": "J_delta across the complete certified reference bracket", + "status": "WORSE_OR_EQUAL" + }, + "priced_classes": 15 + } + ], + "domain": { + "first_frame_domain": "original636 plus rational closure of per-slot lower frame bound", + "first_slots": "all literal slots in pair-specific projection, plus identity", + "ordered_distinct_adjacent_pairs": 59998, + "second_slots": "all legal projected slots; equal frame/touch contexts priced once; plus identity", + "sections": "both retained", + "self_pair_reduction": "final state is a legal single transport in the frozen frame domain" + }, + "pilot_selection": "evenly spaced indices in sorted ordered-pair domain", + "requested_pairs": 128, + "source_word_sha256": "e3e301e62bc2b41dbf1ceac0acf3d35824ebeab1848c5a2142d4577b109da52f", + "status": "PILOT_ONLY", + "timing": { + "linear_full_scan_seconds": 566.6, + "scan_seconds": 1.209, + "setup_seconds": 8.513, + "total_seconds": 9.722 + }, + "totals": { + "WORSE_OR_EQUAL": 2987, + "first_states": 705, + "ordered_pairs": 128, + "priced_second_classes": 2987, + "second_literal_moves": 3588 + }, + "witnesses_requiring_full_lift_and_independent_check": [] +} diff --git a/research/pr1048-complete-feasibility/primary-singles.json b/research/pr1048-complete-feasibility/primary-singles.json new file mode 100644 index 0000000000..b17831a8a6 --- /dev/null +++ b/research/pr1048-complete-feasibility/primary-singles.json @@ -0,0 +1,27900 @@ +{ + "complete": true, + "counts": { + "WORSE_OR_EQUAL": 1452893 + }, + "delta_classes": 22, + "domains": [ + { + "classes": 2, + "id": [ + "A", + 0 + ], + "moves": 274, + "sha256": "d52316cb1b5fa0458785684dceefd8568877bb0d45954c80f87adefb25e5b223" + }, + { + "classes": 3, + "id": [ + "A", + 1 + ], + "moves": 276, + "sha256": "4cc672a49ea3706912e535efb5942db6053e9eb8b220b34fef10495023f0effd" + }, + { + "classes": 2, + "id": [ + "A", + 2 + ], + "moves": 482, + "sha256": "279f5bf5c3cd645ff697e91f37cb821f0de1169864b3d1d119fd23babf0eac73" + }, + { + "classes": 2, + "id": [ + "A", + 3 + ], + "moves": 482, + "sha256": "70c19c764d0d5569195046916387996c5e819948eae933e3c472d12d2a79f3f5" + }, + { + "classes": 2, + "id": [ + "A", + 4 + ], + "moves": 518, + "sha256": "25182e83bb6c623bdd7e08bcdbd6472a9863b0b8e554aaf6dcd3fdf66ce76c0b" + }, + { + "classes": 2, + "id": [ + "A", + 5 + ], + "moves": 520, + "sha256": "066e157d5985af163af836b90cb36a832d03b006f38da9b8bd5e3651cc438acd" + }, + { + "classes": 2, + "id": [ + "A", + 6 + ], + "moves": 274, + "sha256": "bfac35b69d4a03f79397e116469fa0ac3dc0eafa41ae80b24b6b00a8df379d84" + }, + { + "classes": 2, + "id": [ + "A", + 7 + ], + "moves": 280, + "sha256": "354a2ab0b68932da185a4eebaf801a4428b58630a0f5e2e99aabffa941bbdb17" + }, + { + "classes": 2, + "id": [ + "A", + 8 + ], + "moves": 518, + "sha256": "ac560d0b34a42ee19011640f6e5eea52db227a3f12999d9a2c55b73c5706ba69" + }, + { + "classes": 2, + "id": [ + "A", + 9 + ], + "moves": 518, + "sha256": "91ea2692590f7beab20509d9bfc868dea56bce0a35088685e3bd7c49f5451415" + }, + { + "classes": 2, + "id": [ + "A", + 10 + ], + "moves": 240, + "sha256": "20303cc804b10ee4d32cfc002650e0291f0b6355a6064dbc6a8a4b8682fd9b8c" + }, + { + "classes": 2, + "id": [ + "A", + 11 + ], + "moves": 242, + "sha256": "6c7b765168f41b89f08d6239b044730ea5c2cf18bbb489aa1de74f007c37f9a2" + }, + { + "classes": 3, + "id": [ + "A", + 12 + ], + "moves": 240, + "sha256": "3b18ce1aa2a76526ee8f446c62d7fb46a7900eed994783b7d4b359bec0846a33" + }, + { + "classes": 3, + "id": [ + "A", + 13 + ], + "moves": 240, + "sha256": "283beb7723da3d83f72743f8587f53ea37e01a388b401bc0c8d87e34e1b908bf" + }, + { + "classes": 2, + "id": [ + "A", + 14 + ], + "moves": 482, + "sha256": "aa1d8d107e4d6b90928100a23efb1bb62dffffe82d4ccff0529c2729ac2e9921" + }, + { + "classes": 2, + "id": [ + "A", + 15 + ], + "moves": 488, + "sha256": "0f9e961e5eb14c42b6221d5d577f94546f9725235269b52adba85a9f254d15ff" + }, + { + "classes": 2, + "id": [ + "A", + 16 + ], + "moves": 554, + "sha256": "a88c8f4e2951bb4835c561b2bac40ee8de1554e56acd9f90c401c20643eac823" + }, + { + "classes": 2, + "id": [ + "A", + 17 + ], + "moves": 556, + "sha256": "1e2a8df6ece477ebba2bbcd561b2f4101a1ce7ffbc2a6f59fa6feb41cd0c3078" + }, + { + "classes": 2, + "id": [ + "A", + 18 + ], + "moves": 242, + "sha256": "c646b2faf95143e53e7abc8a9fa402eebb4f3d2cc23c654db1eb4bddad508efb" + }, + { + "classes": 2, + "id": [ + "A", + 19 + ], + "moves": 246, + "sha256": "a8dd060313eb680991682c1c6cb4c3a2db6f3d0bc3a81d7695f7a791b7eef15b" + }, + { + "classes": 2, + "id": [ + "A", + 20 + ], + "moves": 446, + "sha256": "6a66b969e49ec8734744cff6e8f5bd9de9220aa8e1519c7f7d48c80a75623cc0" + }, + { + "classes": 2, + "id": [ + "A", + 21 + ], + "moves": 448, + "sha256": "7b30a96c530ac9c5d141f27986e89c5a15a2282df41c8f3d4c0a739822097015" + }, + { + "classes": 3, + "id": [ + "A", + 22 + ], + "moves": 276, + "sha256": "23bd1c2f1f6d6d0d680986753ccbd51ea0baa93e5dfad178b2b4c12de6f76701" + }, + { + "classes": 3, + "id": [ + "A", + 23 + ], + "moves": 276, + "sha256": "35567d2759bd4b8308638c4179d65ee90a3f9a241b4f4aa2ca945ab975c91ce6" + }, + { + "classes": 2, + "id": [ + "A", + 24 + ], + "moves": 554, + "sha256": "4d16256cb14b19cd207d8b106b05bf534a8240a1dd566129560887fb6bed16fe" + }, + { + "classes": 2, + "id": [ + "A", + 25 + ], + "moves": 560, + "sha256": "4ebcb9ced6d88b9a216fcd3bff8303a3b20008758d49f70bf43714eb62948431" + }, + { + "classes": 2, + "id": [ + "A", + 26 + ], + "moves": 446, + "sha256": "d31d3f967f86b49b03394681270ae9053c934d8c265259f4498a3445e58c69b2" + }, + { + "classes": 2, + "id": [ + "A", + 27 + ], + "moves": 446, + "sha256": "369c268f6e6c2fbe8dd24cbfe802452a1614b37d367aa9599c04013820171af6" + }, + { + "classes": 2, + "id": [ + "A", + 28 + ], + "moves": 530, + "sha256": "4965263b5c0dfcc4a6692cff5e3c2b8f777713e99ceb0ee61fd1e7e94c1a4f20" + }, + { + "classes": 2, + "id": [ + "A", + 29 + ], + "moves": 530, + "sha256": "658190356332e85d019cd0cbbcbc5585883e4a9c7ca7c3869bb2ab3ed50f7df1" + }, + { + "classes": 2, + "id": [ + "A", + 30 + ], + "moves": 307, + "sha256": "f0414110bb899c2a5012a8ba6d2045a08a906cbfdd42d9c0bdef7f6a2fa3e14b" + }, + { + "classes": 2, + "id": [ + "A", + 31 + ], + "moves": 307, + "sha256": "c1fb5314de03702be1fbd3831b9ede25946b9e28419e310506a090dd339872b0" + }, + { + "classes": 2, + "id": [ + "A", + 32 + ], + "moves": 542, + "sha256": "222c94aa4d61fbe7cf658fd54beb0ee4bdebc1472dfe2540d22e7c2d7efd2dff" + }, + { + "classes": 2, + "id": [ + "A", + 33 + ], + "moves": 544, + "sha256": "b003f3e8e6f0a3f13f31ea66668bc9716a37235f126319ea79ec57bf35a2c95d" + }, + { + "classes": 3, + "id": [ + "A", + 34 + ], + "moves": 413, + "sha256": "61cce37a23be7a055cef402915380035082e4ccbf12e17fea77642c94a7d7c86" + }, + { + "classes": 3, + "id": [ + "A", + 35 + ], + "moves": 415, + "sha256": "b4f1cb370f27606d7d22e0721ab9bd3760673de58a60170319b4d8793c5e7131" + }, + { + "classes": 2, + "id": [ + "A", + 36 + ], + "moves": 542, + "sha256": "5ff06340172dac60da161ea47bc6a1de49ea01e274fe7d14b84ee88931d98e5a" + }, + { + "classes": 2, + "id": [ + "A", + 37 + ], + "moves": 542, + "sha256": "691f6c7361ab58cb2cfc4ea43f2cb10f99c841a5a5eb38f3fa63c23af412d301" + }, + { + "classes": 3, + "id": [ + "A", + 38 + ], + "moves": 343, + "sha256": "11cd03a4a0a46dee3f745add7332142dc56198ef49792d37ac163338925dc56f" + }, + { + "classes": 3, + "id": [ + "A", + 39 + ], + "moves": 343, + "sha256": "b3b6bf173e1ae161b1b7dbd43c4482b74dd49b42e84b44152bce62e3516f90c2" + }, + { + "classes": 2, + "id": [ + "A", + 40 + ], + "moves": 530, + "sha256": "30606ecadb2c011661b20f6f58f1d571ebf45f2e5e1b586f88398d6b9421d56e" + }, + { + "classes": 2, + "id": [ + "A", + 41 + ], + "moves": 536, + "sha256": "e4d60041c939ed0eef10b2d7a10023067ce130460837cc4a1e50b1227ed1a0bd" + }, + { + "classes": 2, + "id": [ + "A", + 42 + ], + "moves": 377, + "sha256": "9fe1cce2659f59f9da4f878a744dc78f27a3d3b469a5cce485e4fcd4e49673d9" + }, + { + "classes": 2, + "id": [ + "A", + 43 + ], + "moves": 379, + "sha256": "7b102167fba7900cd62dee68e68bede13de58130df60074cc64a82a0988ea184" + }, + { + "classes": 2, + "id": [ + "A", + 44 + ], + "moves": 413, + "sha256": "e3e7a937d7fd3163ee8167502bd35ab2b67d1a1e1140633af8f6ef7ee4d914e2" + }, + { + "classes": 2, + "id": [ + "A", + 45 + ], + "moves": 413, + "sha256": "6324d17be3acf4bd26d1ca41d1dbd006ed6c392b54b7a3652e0bd71942998035" + }, + { + "classes": 2, + "id": [ + "A", + 46 + ], + "moves": 307, + "sha256": "7ef782a761921c2f43d48364904f2df23dd7b42b9f1585b8b65779b53faaaa22" + }, + { + "classes": 2, + "id": [ + "A", + 47 + ], + "moves": 313, + "sha256": "81d046af798afbfcf2e6a3f641a897b9041dd7e0072e3868ddd613d75678b4c8" + }, + { + "classes": 2, + "id": [ + "A", + 48 + ], + "moves": 494, + "sha256": "9871ffcb415cdb68f4d8431dab1fbb63b119d9ea70345a76043f5cfa8c2f66cb" + }, + { + "classes": 2, + "id": [ + "A", + 49 + ], + "moves": 496, + "sha256": "bb814674c51cb88b86dc68847d56fc4384ece512b198640ee76ca58b5ea3d098" + }, + { + "classes": 2, + "id": [ + "A", + 50 + ], + "moves": 506, + "sha256": "0ca8f5ef00a1aea6e8adccaffd53c31aefe663e992794f2358c5b8c55f60eaf3" + }, + { + "classes": 2, + "id": [ + "A", + 51 + ], + "moves": 508, + "sha256": "221960f3d4452e478a80fa9fdadc8df7360ede5eba0c3fbda0e847e80001767f" + }, + { + "classes": 2, + "id": [ + "A", + 52 + ], + "moves": 377, + "sha256": "8288c501da7995cb4620ca75b2eb20268de90f30564ebd09cf8b5c6c415b9e45" + }, + { + "classes": 2, + "id": [ + "A", + 53 + ], + "moves": 383, + "sha256": "7fa672ff380ad5516329e1fcd699165df95fad184fa97cf08674b00525f4e188" + }, + { + "classes": 3, + "id": [ + "A", + 54 + ], + "moves": 343, + "sha256": "c3e2db765895902f0408856ddab9d48d61248a12848e04e4f230ca8b5b1979b5" + }, + { + "classes": 3, + "id": [ + "A", + 55 + ], + "moves": 349, + "sha256": "5ebed021c33bb0d49f0b97cf46e781674485a82c6df4de19f10823162a88c2e0" + }, + { + "classes": 2, + "id": [ + "A", + 56 + ], + "moves": 506, + "sha256": "30dc491d0d5c85ef4a1c2c9693621aad7b054d98c70f3ea43adc8e346c812238" + }, + { + "classes": 2, + "id": [ + "A", + 57 + ], + "moves": 506, + "sha256": "e54ac235f574c6e54fd359b0dbf54bcfd2b7926abd8874f56327c52919ae4139" + }, + { + "classes": 2, + "id": [ + "A", + 58 + ], + "moves": 494, + "sha256": "99a314c82d10fd16c5ff3fe03a86a9d4bd8584ea2b73b6b143268c063a6e2993" + }, + { + "classes": 2, + "id": [ + "A", + 59 + ], + "moves": 500, + "sha256": "0310fc2b96e4768ea2455f7e52d9bf8c04f35001d1ed00200ab52879d88e5b1c" + }, + { + "classes": 2, + "id": [ + "A", + 60 + ], + "moves": 319, + "sha256": "eb01b548af5b00dc8e1d9e67710df525ad558d1db79490e834f0b3e9c5205e7d" + }, + { + "classes": 2, + "id": [ + "A", + 61 + ], + "moves": 319, + "sha256": "71829da7ac51ea16679edf992107c077d6b39a87f182ce937496bcef79cdc951" + }, + { + "classes": 2, + "id": [ + "A", + 62 + ], + "moves": 566, + "sha256": "cc948e0244a0070b9f9e8b05b1cefb2bca263e802c2776c803e96b52c5379a18" + }, + { + "classes": 2, + "id": [ + "A", + 63 + ], + "moves": 568, + "sha256": "d4eeb8aa5bc79aeaee6b63ca52f89292b28cfa8430f80ce7626ae6167f30c2fa" + }, + { + "classes": 2, + "id": [ + "A", + 64 + ], + "moves": 458, + "sha256": "0551ce095840ec603bbe4cfd8eef3333fd9ef3dc8a798b767767ca200ab85b94" + }, + { + "classes": 2, + "id": [ + "A", + 65 + ], + "moves": 460, + "sha256": "4610829a751af6e475fbb11bbd1b7ffd306bd786a043b48c5d6cefcf3a99ef23" + }, + { + "classes": 2, + "id": [ + "A", + 66 + ], + "moves": 423, + "sha256": "3190e30917f4bb591f7c8a7187d59cae7f50a45901c52e85ede62286d6bc26dd" + }, + { + "classes": 2, + "id": [ + "A", + 67 + ], + "moves": 423, + "sha256": "6aa318aa93dcaf8ae9eb12da5451e9af3d362b0d95705db02a1a2297ebdffaf5" + }, + { + "classes": 2, + "id": [ + "A", + 68 + ], + "moves": 458, + "sha256": "c6b896543e9095338d15bf99f83582366fe959556bada0a2d1332e237ec852de" + }, + { + "classes": 2, + "id": [ + "A", + 69 + ], + "moves": 464, + "sha256": "5418de8db647ca1649287429c60c9d6e1f3425b923306de54d6dcec57fb2a600" + }, + { + "classes": 2, + "id": [ + "A", + 70 + ], + "moves": 355, + "sha256": "f748a30195fbb4ffa3fb8b4c9b15bb1bf6a6361539baab9571bb2abed524ae37" + }, + { + "classes": 2, + "id": [ + "A", + 71 + ], + "moves": 357, + "sha256": "abf445c62b653897ad12e932a9b1a80a71d94c29370a2c5de380244ed9072b51" + }, + { + "classes": 2, + "id": [ + "A", + 72 + ], + "moves": 389, + "sha256": "4b871630d154c8b7fd692fb715aa1004c83097ef1e3b07e7277c68845cca828a" + }, + { + "classes": 2, + "id": [ + "A", + 73 + ], + "moves": 391, + "sha256": "d00b18c79f5d42ef5ad2d5a2186dbd2b5732675cbf108f4d3cc93f191ef08db6" + }, + { + "classes": 2, + "id": [ + "A", + 74 + ], + "moves": 566, + "sha256": "598dda6c19a366457466c766e2cfbcecddab0588847e33b368bc96bccc90fd2e" + }, + { + "classes": 2, + "id": [ + "A", + 75 + ], + "moves": 566, + "sha256": "4f38cafa7c2f239d2d6fb399a5e74c3d0e26f3588c7dc43028496faf6f20378d" + }, + { + "classes": 3, + "id": [ + "A", + 76 + ], + "moves": 423, + "sha256": "54d164b1efc300c9a8efacca36cb4de1c4705c915ef87b9cac1cd16067f5af8c" + }, + { + "classes": 3, + "id": [ + "A", + 77 + ], + "moves": 429, + "sha256": "dda21bb0a9a4baf1448060e6af9b850c835a1127279d659500168c38e8ad7dac" + }, + { + "classes": 2, + "id": [ + "A", + 78 + ], + "moves": 470, + "sha256": "7d1832f4567d191db483a1a058b41ab0b307c9a1496b4bc25db6da04555b3af6" + }, + { + "classes": 2, + "id": [ + "A", + 79 + ], + "moves": 472, + "sha256": "1eb27433b42e8912ee3b115621aec336d30dfc23ec795819379f85d63ff2c641" + }, + { + "classes": 2, + "id": [ + "A", + 80 + ], + "moves": 578, + "sha256": "0fb5237c3f11291131d53e640c112b9e55bd4f10f968a0899e20aa8a64ca2d41" + }, + { + "classes": 2, + "id": [ + "A", + 81 + ], + "moves": 578, + "sha256": "d6a7013580530002e912cda7760df5628b46a17e9d72f68027562fc167933b9c" + }, + { + "classes": 2, + "id": [ + "A", + 82 + ], + "moves": 319, + "sha256": "ab052c4c43ef8ac8d39d843699eb4272a424e1379967ad423805ae87cabaee8d" + }, + { + "classes": 2, + "id": [ + "A", + 83 + ], + "moves": 325, + "sha256": "6da84617a22e0f66701a647426c9da2eea109dc2099f803aef3d9a2bc78eca6a" + }, + { + "classes": 2, + "id": [ + "A", + 84 + ], + "moves": 470, + "sha256": "1203e57a28ce826a65a18a2821c2d2ef13e1b55d9630958fd20613b904559b2b" + }, + { + "classes": 2, + "id": [ + "A", + 85 + ], + "moves": 470, + "sha256": "f95464ebeec4dc3ce1619d6271389fe4b6c92b8831874bd298385f1a5c132e5e" + }, + { + "classes": 3, + "id": [ + "A", + 86 + ], + "moves": 355, + "sha256": "40c45c9219bba82b22e0f876cfdf914c5021e6aaca9b950d855772c0b92714ea" + }, + { + "classes": 3, + "id": [ + "A", + 87 + ], + "moves": 355, + "sha256": "0b9348c4caef8f687a9c12c2f557bc13fd02e7a60fa881b08fb1461b9eb5c4f0" + }, + { + "classes": 2, + "id": [ + "A", + 88 + ], + "moves": 389, + "sha256": "6381050d02079d3aedf73b829528e32edc14f933c84ab7ddf8f522f6d8c7db24" + }, + { + "classes": 2, + "id": [ + "A", + 89 + ], + "moves": 389, + "sha256": "e50bf03098d67de5c078b2499d1bfee0747e58bdf5521ae4bbf6df432bf35d69" + }, + { + "classes": 2, + "id": [ + "A", + 90 + ], + "moves": 578, + "sha256": "bab1d5e3df2b8357008ab0eb40e9d2bdcdd71c4fb56753b2218aa43222a34f03" + }, + { + "classes": 2, + "id": [ + "A", + 91 + ], + "moves": 584, + "sha256": "55bea75345ffd7aabc52a095f70e5d65796f524bc243fcc5684cc707d4496c55" + }, + { + "classes": 3, + "id": [ + "A", + 92 + ], + "moves": 253, + "sha256": "2a67734fbaa9d6b3d7fedd9b43e672db0fb43a5776bc8b302f627b78ad32fa64" + }, + { + "classes": 3, + "id": [ + "A", + 93 + ], + "moves": 255, + "sha256": "ddf7300738a57c2e9c0af0a3db8110257043967eacfdeda62dcca29f0bacee0d" + }, + { + "classes": 3, + "id": [ + "A", + 94 + ], + "moves": 262, + "sha256": "51917c9788ec0850e33a1c8f12806e4193c367dbbf6fc4b703bd53bb466df50e" + }, + { + "classes": 3, + "id": [ + "A", + 95 + ], + "moves": 264, + "sha256": "d28bbd1e7b1ffde148809c7399d29e068f0999667552679b1cd5acf49afff1e3" + }, + { + "classes": 2, + "id": [ + "A", + 96 + ], + "moves": 262, + "sha256": "a95907654e603026873669e6ba0f0a98e33f2ecd52ae948e447fbb99fe960dfc" + }, + { + "classes": 2, + "id": [ + "A", + 97 + ], + "moves": 262, + "sha256": "ad832d2c734b2a2cbd1f8e55819752807ce64aad48fdd01a3ce54d28ac9887e4" + }, + { + "classes": 2, + "id": [ + "A", + 98 + ], + "moves": 331, + "sha256": "96404a844769b2292517527bbf6bc02193468fff4fc7d3d4a86be3b6625d457d" + }, + { + "classes": 2, + "id": [ + "A", + 99 + ], + "moves": 331, + "sha256": "43489e9cacda1211332157dcdc78c57ef26b144e401abb076d92219318be3618" + }, + { + "classes": 4, + "id": [ + "A", + 100 + ], + "moves": 437, + "sha256": "9a3098af4f09fdbdd39d765a15d133f77285862b2a892234ff78b0bba6dcfc5e" + }, + { + "classes": 4, + "id": [ + "A", + 101 + ], + "moves": 439, + "sha256": "446c087972d9f92f0e25b69cea48d6f9d996caa9cc4f674edf18705400435a5c" + }, + { + "classes": 2, + "id": [ + "A", + 102 + ], + "moves": 401, + "sha256": "b98800bd59a3663ee94fe1ef931be356d55ffdcb7c1a68277bb0b53a389dc64f" + }, + { + "classes": 2, + "id": [ + "A", + 103 + ], + "moves": 403, + "sha256": "73c5404fd746a2deaed7e131b82f590d5786afaf531ca1dd91811bb2e6759bbd" + }, + { + "classes": 3, + "id": [ + "A", + 104 + ], + "moves": 264, + "sha256": "3d984b5126bf4b8ddcbab37aa14ec74cbc6c509170b1b77f96f558e8405165ac" + }, + { + "classes": 3, + "id": [ + "A", + 105 + ], + "moves": 264, + "sha256": "f8ba548a4b3d26eabcc850ec630c9287a6e253bd10761dfbec168e65f3822ed1" + }, + { + "classes": 2, + "id": [ + "A", + 106 + ], + "moves": 331, + "sha256": "7cb137df39e01ef3b8d8ba56150b080205fc8ee986d25ae8e7d26bb7b8de1047" + }, + { + "classes": 2, + "id": [ + "A", + 107 + ], + "moves": 337, + "sha256": "60b2fe5c4f86ba619cb0cdb995cc3e3342bedd44c73453c1b01688b0a1f038f8" + }, + { + "classes": 3, + "id": [ + "A", + 108 + ], + "moves": 253, + "sha256": "ff6d23dda18e030d557990ab5717c2da73c52e14b63b00a340d5c30c70fc55a8" + }, + { + "classes": 4, + "id": [ + "A", + 109 + ], + "moves": 260, + "sha256": "2739d5ded7ea2553a9f56ebceedd9d7469d20b3ae8e2f9140142ad03999ac0fe" + }, + { + "classes": 2, + "id": [ + "A", + 110 + ], + "moves": 401, + "sha256": "5b490990dc58fd5b06e45fd09ff88b21123e08d7bc78f80d7dc51d791f98fc4f" + }, + { + "classes": 2, + "id": [ + "A", + 111 + ], + "moves": 407, + "sha256": "b4e9a7e4d5e0731fc7f24ae3a7d2bea7dd8d74b9b03e42dbd0b74589c35592d0" + }, + { + "classes": 3, + "id": [ + "A", + 112 + ], + "moves": 255, + "sha256": "2e569c2f2ee245b7ca19a77d92cd7d36d9c3d16d9ef941d3dbd9395ab5d1de29" + }, + { + "classes": 3, + "id": [ + "A", + 113 + ], + "moves": 259, + "sha256": "10d1fae0bf51f26661c75463dc31f4f1040d462056b7708cf63c3d4e514d7e60" + }, + { + "classes": 3, + "id": [ + "A", + 114 + ], + "moves": 366, + "sha256": "f20303a5d51cc4ba3e1dbf6753ccdc55e9438097af7ba4df0a3102698f980bae" + }, + { + "classes": 3, + "id": [ + "A", + 115 + ], + "moves": 371, + "sha256": "976c74e710492eab485936617651d014eb41a71953428756ec8b90adba0292c4" + }, + { + "classes": 2, + "id": [ + "A", + 116 + ], + "moves": 266, + "sha256": "92e418f4f682efeb840e27cb7e777d670d84376317a4ca67fc05f0db487ca22c" + }, + { + "classes": 2, + "id": [ + "A", + 117 + ], + "moves": 270, + "sha256": "be35a0d9c94312564e4c77d227ca4b2a7122cb145f5f7745a1196141315b541b" + }, + { + "classes": 2, + "id": [ + "A", + 118 + ], + "moves": 333, + "sha256": "cf780fe29b774d36329c8eedf2549c4d05b662c71127813a44c1a899ae4a47c6" + }, + { + "classes": 2, + "id": [ + "A", + 119 + ], + "moves": 333, + "sha256": "9854c4de2a0a628f142eae9efd489c27f8257f5a835872bafa8bb225f3ae453b" + }, + { + "classes": 2, + "id": [ + "A", + 120 + ], + "moves": 437, + "sha256": "fc322bd96b64f237ed7ab75ea976ca3219b30b00b36c495333534a6debcdc4ba" + }, + { + "classes": 3, + "id": [ + "A", + 121 + ], + "moves": 444, + "sha256": "1390156996b10ef45070a879e463de7ca8d1467c2d5e610a89cb12bb6f66a8bf" + }, + { + "classes": 2, + "id": [ + "A", + 122 + ], + "moves": 296, + "sha256": "985a616f581bfb0dab9b41af114b270b69a24d791150022a1cc5ed8ab4edcf7d" + }, + { + "classes": 3, + "id": [ + "A", + 123 + ], + "moves": 300, + "sha256": "f6b7eea732601f3e3aadbbf4a48695fee3e893a5d4b3458982c0fb639eddecf2" + }, + { + "classes": 2, + "id": [ + "A", + 124 + ], + "moves": 285, + "sha256": "718be840f46ff4c05aa493d374edfcaf5299161d4a4c66da6a29f4c8920613dc" + }, + { + "classes": 2, + "id": [ + "A", + 125 + ], + "moves": 290, + "sha256": "132336a8cbb648297baa17f0c094e3a314f51c39d872bcab54e5f095ad9db7a2" + }, + { + "classes": 2, + "id": [ + "A", + 126 + ], + "moves": 296, + "sha256": "1c515fd65ea1c36b33e3fb645141f29ae71c33a68226fbe2b7a1a85441b8b588" + }, + { + "classes": 2, + "id": [ + "A", + 127 + ], + "moves": 296, + "sha256": "f33b9d16a7db1412a5887efa2fc42902d902dedfe749e4208b8d5a92caac6bc3" + }, + { + "classes": 2, + "id": [ + "A", + 128 + ], + "moves": 403, + "sha256": "95c91117b2fefed847ad4ecc7f6d2b2c560919588d833e6d91fa1604d5531d85" + }, + { + "classes": 2, + "id": [ + "A", + 129 + ], + "moves": 407, + "sha256": "dc1614250fa31b4984138ae3ae7bb2af34b3c9563bd4bcd17d67910a5fef4346" + }, + { + "classes": 3, + "id": [ + "A", + 130 + ], + "moves": 371, + "sha256": "8bc2ef6771c495934f1a0d68a0dd62d26bf0404e9f444453eca93964650273ed" + }, + { + "classes": 3, + "id": [ + "A", + 131 + ], + "moves": 375, + "sha256": "4feb80726172d94ce7bd8f15adaf1c67b6dc60c3c6f6d389dd7cbf5af37a3eb5" + }, + { + "classes": 3, + "id": [ + "A", + 132 + ], + "moves": 373, + "sha256": "52011458dce29ee8929f21e8ce5ce216ebc47c9bb274ea28152a17e10bfb5000" + }, + { + "classes": 3, + "id": [ + "A", + 133 + ], + "moves": 375, + "sha256": "648430835e1adf5ca8d8ea0b8ed4bd64f0b47705121e221f78f7f5a5b9300b62" + }, + { + "classes": 3, + "id": [ + "A", + 134 + ], + "moves": 439, + "sha256": "f954690851e79f18b850be3ea2ffbd104e1e66af2cd0ad12407c9ad1f5e868a6" + }, + { + "classes": 3, + "id": [ + "A", + 135 + ], + "moves": 439, + "sha256": "1684029bef04c4c78d79dc52dd3c8f499b0a1670dac468358c94ebf475e72f8e" + }, + { + "classes": 3, + "id": [ + "A", + 136 + ], + "moves": 300, + "sha256": "f0c9f536bf2cf27827e8fa0a4b8a18ced5b8fae549b5fcd0ac785ddc9f3bee37" + }, + { + "classes": 3, + "id": [ + "A", + 137 + ], + "moves": 304, + "sha256": "7b41e1e8ac66e396b7833157570df2e329c4d24e1138087d0aeba4e7c7eef677" + }, + { + "classes": 3, + "id": [ + "A", + 138 + ], + "moves": 287, + "sha256": "5fe5c071e39c952b38c45772e41985d7a7c9c57cfc2df94a334313f71b2752e0" + }, + { + "classes": 3, + "id": [ + "A", + 139 + ], + "moves": 290, + "sha256": "38f9aadef65942062b43a0ec51f2dd4cbc78690410f253424485db4a5047416a" + }, + { + "classes": 2, + "id": [ + "A", + 140 + ], + "moves": 335, + "sha256": "be353473e0cd8c1e4dc975e11feeea03d89f05dc80016e119c742034405c77e5" + }, + { + "classes": 2, + "id": [ + "A", + 141 + ], + "moves": 339, + "sha256": "4452b8c3f979c19f122bf596938fec002ede8f2b8ab3784fe0b348e2352c36f5" + }, + { + "classes": 2, + "id": [ + "A", + 142 + ], + "moves": 405, + "sha256": "f787784f8c81a2017f9c5ef07c999b8b2bc88b2c6ec0aa1f09150d1d27b5fef4" + }, + { + "classes": 2, + "id": [ + "A", + 143 + ], + "moves": 409, + "sha256": "d03b69d5159843794f7ea4f5798265596e52c79a74f9b0a781757f9e9c451f45" + }, + { + "classes": 3, + "id": [ + "A", + 144 + ], + "moves": 292, + "sha256": "ffe74d49e47921a09383557497b1abe6b7c37ac530e22bff301ccff25c439a85" + }, + { + "classes": 3, + "id": [ + "A", + 145 + ], + "moves": 294, + "sha256": "61cc55fa97c56cde544c5aa19ed42bed9e2eecf454502caf75a39fc02b7d186c" + }, + { + "classes": 2, + "id": [ + "A", + 146 + ], + "moves": 580, + "sha256": "694db84cd063d62b90e68b98eb4f7cc9d70dcff346326f1ec1799240bb32fdb2" + }, + { + "classes": 2, + "id": [ + "A", + 147 + ], + "moves": 584, + "sha256": "7fc1444071d0beaf16d4f344c33e6e53a44cf0f1375434257f2621ab7b26ac17" + }, + { + "classes": 2, + "id": [ + "A", + 148 + ], + "moves": 357, + "sha256": "104ab58690bc1343d4546b216b1307314042918d8b0efc1c7b8d548bdc96dbda" + }, + { + "classes": 2, + "id": [ + "A", + 149 + ], + "moves": 361, + "sha256": "50926d5f17defd44eab826b5fd4403c97e116825ae1dc68812b63cbdcbea5840" + }, + { + "classes": 2, + "id": [ + "A", + 150 + ], + "moves": 321, + "sha256": "b5c347ce254a93d3ef69268f08ce9076baa78d9b42d44b4a75cff4bddd072f59" + }, + { + "classes": 2, + "id": [ + "A", + 151 + ], + "moves": 325, + "sha256": "6106d874974dc0644e4bdd8b06a28e99cf3015510c75dc896f019880eb1745db" + }, + { + "classes": 2, + "id": [ + "A", + 152 + ], + "moves": 472, + "sha256": "c80f2adac02f8223fbab75622a5dad6e6f19ede0dde3fde250e801deb0386dc2" + }, + { + "classes": 2, + "id": [ + "A", + 153 + ], + "moves": 476, + "sha256": "c5a85f214a97147ddc0cfdbd085a2cd42a92c55d13cd051fbe95ce3ab278dd99" + }, + { + "classes": 3, + "id": [ + "A", + 154 + ], + "moves": 425, + "sha256": "cffad39a0eeb8da2ade786ca96080d02b4ce94581e4548f90171349df22140d8" + }, + { + "classes": 3, + "id": [ + "A", + 155 + ], + "moves": 425, + "sha256": "e2657dc10790c5e82b203362e35d84c8af13c631c5615c002fe902d988c1c82b" + }, + { + "classes": 2, + "id": [ + "A", + 156 + ], + "moves": 582, + "sha256": "20ec87dda987caeab46d9697552051ffcc348d6a8e0a35e6ad44bbb07ba09c1e" + }, + { + "classes": 2, + "id": [ + "A", + 157 + ], + "moves": 586, + "sha256": "4af60f94f5d81ee30e6b91c05593368163076a03f5e324e2a7b6e9b929ce6d92" + }, + { + "classes": 2, + "id": [ + "A", + 158 + ], + "moves": 474, + "sha256": "fa73a224510ad7697c786bf24682213b92e8c0ef5c17c2c2f47fe84d5460a994" + }, + { + "classes": 2, + "id": [ + "A", + 159 + ], + "moves": 478, + "sha256": "64a8322fcf6bbb5637b43f20f4a0dd62444abd5a75f2150e46463cad0ee381b1" + }, + { + "classes": 2, + "id": [ + "A", + 160 + ], + "moves": 391, + "sha256": "73dee4776852c43f3f86c668ee16c29e89242bf8ea5e66224cd8a57fbd79bd10" + }, + { + "classes": 2, + "id": [ + "A", + 161 + ], + "moves": 395, + "sha256": "f2a897d06a78eda708809207b98e0bf9eca18ba63e5d53895ef3e17ca3ced329" + }, + { + "classes": 2, + "id": [ + "A", + 162 + ], + "moves": 568, + "sha256": "24ea71c4614b1a18f5e0b55990ae3605e0b8444d965d8305ed5425902656923a" + }, + { + "classes": 2, + "id": [ + "A", + 163 + ], + "moves": 572, + "sha256": "6eb84e89f94889ae78c6d7a0e19d83d9d01074c17b797d75bf6b068cbcdb2a1d" + }, + { + "classes": 2, + "id": [ + "A", + 164 + ], + "moves": 323, + "sha256": "0cf688c097d3375e74ce9f5946369a3a7d09afc0cfb311847ce0bf3e0416271e" + }, + { + "classes": 2, + "id": [ + "A", + 165 + ], + "moves": 327, + "sha256": "6658e41018f04846c24b22a42112fb1de15928889541a5f302194512aa5bbc8e" + }, + { + "classes": 2, + "id": [ + "A", + 166 + ], + "moves": 460, + "sha256": "c6c67076a3cc0d71decd265dce8d8160c8258166aa711d3a1bea4b99c754431a" + }, + { + "classes": 2, + "id": [ + "A", + 167 + ], + "moves": 460, + "sha256": "5f53e3f66411326cd6f149e0ca5681ab1011587e8c11f39cc648854ec003386f" + }, + { + "classes": 2, + "id": [ + "A", + 168 + ], + "moves": 393, + "sha256": "5480ac804ff314a4a4b111a66d7eb4e9850d77c3c14378c46826444502eda44f" + }, + { + "classes": 2, + "id": [ + "A", + 169 + ], + "moves": 397, + "sha256": "213b0710a660df2ac8b24896a093d960e394892b6c06be45e768b5c45bdc4c4c" + }, + { + "classes": 2, + "id": [ + "A", + 170 + ], + "moves": 462, + "sha256": "8f907790b3b708248c1aaa9387f3358f2b0f3850b768a9486d39adb9cb73e7d2" + }, + { + "classes": 2, + "id": [ + "A", + 171 + ], + "moves": 466, + "sha256": "bf3fddeea526275ac9956da0b8c04fb3dc686cbb0dd685319c078364003a74d6" + }, + { + "classes": 2, + "id": [ + "A", + 172 + ], + "moves": 570, + "sha256": "be5e841c24b82127149db87c64e635d550eb8ae300b3563e60c9aa98a9575b94" + }, + { + "classes": 2, + "id": [ + "A", + 173 + ], + "moves": 574, + "sha256": "eda0d9789b3c949c101fea5379be2a97a6717bad5bc604044e8ce490b1e6eaf8" + }, + { + "classes": 2, + "id": [ + "A", + 174 + ], + "moves": 427, + "sha256": "6a11bdd1a37ef719cb301daeabe39bd0b8977624da286988106bf65ce1ad09a0" + }, + { + "classes": 2, + "id": [ + "A", + 175 + ], + "moves": 431, + "sha256": "fb36571b8014e527eacaf7239209e7318636fdf9852c6deca9ab101d53dbb423" + }, + { + "classes": 2, + "id": [ + "A", + 176 + ], + "moves": 544, + "sha256": "39efd4765beefabf0bb217cb6ae8cf6fc9da8c941c54e579f83db5cfc33e62ce" + }, + { + "classes": 2, + "id": [ + "A", + 177 + ], + "moves": 548, + "sha256": "a8264971a50fb5931e6dd0b82ad315c788588de23cd1b0df736bd3a00282a818" + }, + { + "classes": 2, + "id": [ + "A", + 178 + ], + "moves": 345, + "sha256": "5bc24ced578bb13e95a816e978945913e4c6727d19d30cabe38aaeea463a8bae" + }, + { + "classes": 2, + "id": [ + "A", + 179 + ], + "moves": 349, + "sha256": "222e544565de9c0b135c70bbadab25bf1f512858486ecade29b4dd3442a80a0d" + }, + { + "classes": 2, + "id": [ + "A", + 180 + ], + "moves": 532, + "sha256": "a494dacfc73197b3154e727ae9d9c597879560accdc2879bbd0ca8a84c9917c4" + }, + { + "classes": 2, + "id": [ + "A", + 181 + ], + "moves": 536, + "sha256": "d829a571728d2caef9499d3807dd72b80b185eb8286d97db34f700fcabbcb58c" + }, + { + "classes": 2, + "id": [ + "A", + 182 + ], + "moves": 309, + "sha256": "1d4da40381e01595df149bbb774b302a6a5a1f9fc9f974ca2dca07e32c3b523f" + }, + { + "classes": 2, + "id": [ + "A", + 183 + ], + "moves": 309, + "sha256": "73227560c1b824b9570d30f1ed7b1a9c00890ce254d539a826d349f042870cf5" + }, + { + "classes": 3, + "id": [ + "A", + 184 + ], + "moves": 415, + "sha256": "713e59590f4648c160f0d493eba287beaa3d7f30c1c76b1095a23323a0518e47" + }, + { + "classes": 3, + "id": [ + "A", + 185 + ], + "moves": 418, + "sha256": "b87eb97af60926998e6b58ac0e55d12ded73ce8f0743ae93e5a8166f538259b4" + }, + { + "classes": 2, + "id": [ + "A", + 186 + ], + "moves": 546, + "sha256": "668c3db62ff1fb3623e171308a870903d06ad3600bcf31d7892b9f85e9f4d9b7" + }, + { + "classes": 2, + "id": [ + "A", + 187 + ], + "moves": 550, + "sha256": "d91171c5108e62ce3d4f827701a2e351fb82a2302c940e8b3f9485435b018f0f" + }, + { + "classes": 2, + "id": [ + "A", + 188 + ], + "moves": 379, + "sha256": "2826636b406376b0b73508c33c7fa6eb1634c2aed8e40601eab94ea1b1fdbe60" + }, + { + "classes": 2, + "id": [ + "A", + 189 + ], + "moves": 383, + "sha256": "2eb6923fe025503e261c22135822a0554670c67ab7353efd34958beed95a0843" + }, + { + "classes": 2, + "id": [ + "A", + 190 + ], + "moves": 534, + "sha256": "6de52867327601865c32827dc1d51cc66f3256a2e42b45c110beeae4c0d0dcb3" + }, + { + "classes": 2, + "id": [ + "A", + 191 + ], + "moves": 538, + "sha256": "ac316ac9e91a7e8c2de19343bde79e49fd3b109b7c249edacc07a74b8734cb27" + }, + { + "classes": 2, + "id": [ + "A", + 192 + ], + "moves": 311, + "sha256": "4309619254de52ee9a8e561ec223223a2ed620963923d23b6732fa699dc53568" + }, + { + "classes": 2, + "id": [ + "A", + 193 + ], + "moves": 315, + "sha256": "6f86fd5210641653c7d115f9a13120949cfaf9bb90803e26ae01ad2b059e4a9e" + }, + { + "classes": 2, + "id": [ + "A", + 194 + ], + "moves": 347, + "sha256": "ef2d19ed2c3934b700943079f47200068cf8a14747da5c8bbd2eaf727e1c6bf3" + }, + { + "classes": 2, + "id": [ + "A", + 195 + ], + "moves": 347, + "sha256": "2fb51e64f4b2ca92d8e022799a594d045638ab073cb5cf2cea4c9750e820ce5a" + }, + { + "classes": 2, + "id": [ + "A", + 196 + ], + "moves": 508, + "sha256": "83955095e29221ce8aee7d6f7c9bf2a2eeec00ba4fe6f5ee9179bf0b91c39ad8" + }, + { + "classes": 2, + "id": [ + "A", + 197 + ], + "moves": 512, + "sha256": "04afe0c09f68b47b11accfbc1258956b3acfa9c3b5067fe3af618ee324c0066c" + }, + { + "classes": 2, + "id": [ + "A", + 198 + ], + "moves": 496, + "sha256": "62feeb97db3c3e1e4278d30b1b90781138939b5d73182994e9fe23042dff32c7" + }, + { + "classes": 2, + "id": [ + "A", + 199 + ], + "moves": 496, + "sha256": "b1dd102e15604082f402e1428b3ccb7ac93ee328095e07391c4c7915334cc3c2" + }, + { + "classes": 2, + "id": [ + "A", + 200 + ], + "moves": 510, + "sha256": "9c0727d05090ca0b04651f053986e830a1dc4b71b2626ea216caf0e072494901" + }, + { + "classes": 2, + "id": [ + "A", + 201 + ], + "moves": 514, + "sha256": "71754dee28afa987d09d5fdddbf7430a9af78392139b7dcc30e3d2a5599097bf" + }, + { + "classes": 2, + "id": [ + "A", + 202 + ], + "moves": 498, + "sha256": "558ca362a84750332de9d7c5da6ce9003691c157ddf1a2a9b97b3d6151b7a7d8" + }, + { + "classes": 2, + "id": [ + "A", + 203 + ], + "moves": 502, + "sha256": "3e6d50c7f01568b753947e92a0be278101da22e36748588069333ce2cdbaf340" + }, + { + "classes": 2, + "id": [ + "A", + 204 + ], + "moves": 381, + "sha256": "28e44424fde5fbbd0572fb3b543fd2cd49f9a49759a8b6367887b5f32a25b071" + }, + { + "classes": 2, + "id": [ + "A", + 205 + ], + "moves": 381, + "sha256": "3b517c5a2824e6013b547bb2d11bd103afdc46982e22b991a29a8f647897e083" + }, + { + "classes": 2, + "id": [ + "A", + 206 + ], + "moves": 520, + "sha256": "10d768ca5f560856298fe58044bf7ca16fa764fca4af739b93a4da94b6dada00" + }, + { + "classes": 2, + "id": [ + "A", + 207 + ], + "moves": 524, + "sha256": "da18bac6d28dacab40502ca2184358f7b0d97aa7eb638b6ec140d32a31a990a9" + }, + { + "classes": 2, + "id": [ + "A", + 208 + ], + "moves": 448, + "sha256": "e71bc5b30de02760a337d5eeda6fab7b4f4bd5e90a372b096aa922564a4143ec" + }, + { + "classes": 2, + "id": [ + "A", + 209 + ], + "moves": 452, + "sha256": "f46a89c6963697b162aed52a8bfef08c7efadae5d8f22ee05ef1e5ef09b693cd" + }, + { + "classes": 2, + "id": [ + "A", + 210 + ], + "moves": 556, + "sha256": "1feb3c97968e64c1d48275818804be06bb9b51ff39e6f0cfe2ff9c27a9ab4b1e" + }, + { + "classes": 2, + "id": [ + "A", + 211 + ], + "moves": 560, + "sha256": "b3a53974599a81e04354dfd795a5afba3d6240207e134965b2afd6f6fda2db9d" + }, + { + "classes": 2, + "id": [ + "A", + 212 + ], + "moves": 484, + "sha256": "76ab91f643228f775877dbdb74319c78a26d67b4ed4a5e16e6110378044892b9" + }, + { + "classes": 2, + "id": [ + "A", + 213 + ], + "moves": 488, + "sha256": "6acb45bda72f3844ab14702858871eee87ba8de85ecbd586125e4a423b66ef94" + }, + { + "classes": 2, + "id": [ + "A", + 214 + ], + "moves": 450, + "sha256": "891508811e51728fd7b582f5592d8252b3b1173c8de66304723f8f4fce8222b2" + }, + { + "classes": 2, + "id": [ + "A", + 215 + ], + "moves": 454, + "sha256": "69ab35cc6b34f222260e0d333b6fd850805293dda46bc4ceacd7fafb267b8eb9" + }, + { + "classes": 2, + "id": [ + "A", + 216 + ], + "moves": 486, + "sha256": "0ba54b5dd521ca24e11f0e419da99dd5f7d6d9e8f3ad3b67821df114a415f8e7" + }, + { + "classes": 2, + "id": [ + "A", + 217 + ], + "moves": 486, + "sha256": "ca1b935c01990bea704ab9437ad47a83451b1fd291b4dc5b8ba600ce083dfb62" + }, + { + "classes": 2, + "id": [ + "A", + 218 + ], + "moves": 522, + "sha256": "22252b8851fbf20d32fd0ce2957e76ffabf81c93b10059a3f859f49e4196c9be" + }, + { + "classes": 2, + "id": [ + "A", + 219 + ], + "moves": 526, + "sha256": "b8ea7f0d1f2c0bc572d264c4a2e1d7badb554eea929a41c5d1efa0b13879d0ae" + }, + { + "classes": 2, + "id": [ + "A", + 220 + ], + "moves": 558, + "sha256": "eaf808473cbf667e2c08b5febdf82242b5965147b359530cb10fa7c1c707d185" + }, + { + "classes": 2, + "id": [ + "A", + 221 + ], + "moves": 558, + "sha256": "1ef7a5e974afc52b358bd0c8343aaf77433e27421398442856aa0d213fd35c98" + }, + { + "classes": 5, + "id": [ + "A", + 222 + ], + "moves": 2162, + "sha256": "ff2a9424237ae77e3c1e8312dff1a9f9b220cb1532d5b7d071986b67e61568c3" + }, + { + "classes": 5, + "id": [ + "A", + 223 + ], + "moves": 2151, + "sha256": "223dc1d2a5bfb55e8985356aa6d96960593c559f137e7dc4da6bde6aa3068455" + }, + { + "classes": 4, + "id": [ + "A", + 224 + ], + "moves": 1997, + "sha256": "1f44709333563d1a7faf66fd2c2afdf6c85c3a9949acb6ce15dabfd66addb1df" + }, + { + "classes": 4, + "id": [ + "A", + 225 + ], + "moves": 2015, + "sha256": "0fb155b1a32fd4636512e9aa71ca2f5c8d7942bf75838da06f575e2875b10944" + }, + { + "classes": 5, + "id": [ + "A", + 226 + ], + "moves": 2325, + "sha256": "f788f4ff01914f2770fc9cbcc660a8b3b70616c0623c880e9333c777038ab284" + }, + { + "classes": 5, + "id": [ + "A", + 227 + ], + "moves": 2318, + "sha256": "29f81ad3ca59aa53b3eaa0d774b0bc8debc7b6ddf3689880e6798daba29e850a" + }, + { + "classes": 5, + "id": [ + "A", + 228 + ], + "moves": 2385, + "sha256": "1894b952be969941df01b4c3e4ff8f9bfc5f267d6efd35752234ccea2991467a" + }, + { + "classes": 4, + "id": [ + "A", + 229 + ], + "moves": 2075, + "sha256": "bf16a3bfac5f2bef390c5a3d622d95692585cd8a83fd7e9b480cb1acc97d1e26" + }, + { + "classes": 3, + "id": [ + "A", + 230 + ], + "moves": 425, + "sha256": "3831f3fd4c06471cd8f55b3467485d7214e8b7da7e0c64326909fe7aecd57409" + }, + { + "classes": 5, + "id": [ + "A", + 231 + ], + "moves": 2267, + "sha256": "22a216cc2790507c3bd27610ff3a0406f0b5fa5dda1c7727cdba0647f19ece5e" + }, + { + "classes": 3, + "id": [ + "A", + 232 + ], + "moves": 240, + "sha256": "3482bf4642c73b70e611c63831465f9933af85129e067f75098449e7a244e415" + }, + { + "classes": 3, + "id": [ + "A", + 233 + ], + "moves": 276, + "sha256": "27ab27bfc448f549a0893ddc89e82bc50785915004ba8783254f3b3823478cc3" + }, + { + "classes": 3, + "id": [ + "A", + 234 + ], + "moves": 260, + "sha256": "eeef39b4e71f7aebd3ec2e6807dc509acd0f3842b8a7c338d2c06ae895b24e9e" + }, + { + "classes": 5, + "id": [ + "A", + 235 + ], + "moves": 2273, + "sha256": "3ee7d067610c4cfa52b5e588cb867297b7ffd713e14f6134dbab32b31a0496b0" + }, + { + "classes": 5, + "id": [ + "A", + 236 + ], + "moves": 2418, + "sha256": "03de2408fb4db36e54c67199757bf496bd0f7147fec51fba975bc77d84b208ec" + }, + { + "classes": 3, + "id": [ + "A", + 237 + ], + "moves": 290, + "sha256": "3bd2f4d3dfdae2de9129255d3bb05a7ce6364410a06c991c6a816cc4525cba9c" + }, + { + "classes": 3, + "id": [ + "A", + 238 + ], + "moves": 304, + "sha256": "1a5e3692af1a95cf5084a0305f3c6d94c0111a94871d665b021919e11325e46d" + }, + { + "classes": 3, + "id": [ + "A", + 239 + ], + "moves": 355, + "sha256": "d504e2805750127da8510030f2836c8848694eca47765baed17efce4537da046" + }, + { + "classes": 3, + "id": [ + "A", + 240 + ], + "moves": 415, + "sha256": "98d012b731c791df98dcacc23d2ee20d8f262c82a4c83057a61836cd53991507" + }, + { + "classes": 1, + "id": [ + "A", + 241 + ], + "moves": 8, + "sha256": "3d79b790868d3a853fc8316b9b4740483080fe5de5405bd2b885c37e6ff77420" + }, + { + "classes": 1, + "id": [ + "A", + 242 + ], + "moves": 561, + "sha256": "e503d1b8af3c64c0f99b9856152fc02eeae96b15548760c2d4112e1a0d6760d2" + }, + { + "classes": 1, + "id": [ + "A", + 243 + ], + "moves": 224, + "sha256": "3c093e089e95fff3c0c6ac2627cc19df3acf805d20e72ea863924b327605e07e" + }, + { + "classes": 1, + "id": [ + "A", + 244 + ], + "moves": 522, + "sha256": "b63f48a478e1c48ba3326cc227573659460133d4f4f5b48454bcc99a94947994" + }, + { + "classes": 1, + "id": [ + "A", + 245 + ], + "moves": 233, + "sha256": "cfa2aac0cb96fe875657d31cf3661149547a08f39bcaa5e53a63c4ab692bc72c" + }, + { + "classes": 1, + "id": [ + "A", + 246 + ], + "moves": 478, + "sha256": "d3d8ecbd0241ed48f84206a36e95f2df6b977ce201cbb6c664d1d53c9bf928bd" + }, + { + "classes": 1, + "id": [ + "A", + 247 + ], + "moves": 227, + "sha256": "4904ea2e10030ca2fda7b2b18d3e7666a4e0f499cac6c3de00a5b4c7787d4edd" + }, + { + "classes": 1, + "id": [ + "A", + 248 + ], + "moves": 432, + "sha256": "758976964d37c50a54fa30059977896232712b9f81e921b6e677e9c1b90ff32e" + }, + { + "classes": 1, + "id": [ + "A", + 249 + ], + "moves": 621, + "sha256": "2c1dee2f4b64ce35c2c64428adf4b83d1bd1b72493fbeda3d0e2c4803ee5078c" + }, + { + "classes": 3, + "id": [ + "A", + 250 + ], + "moves": 250, + "sha256": "cd07d9736305c8d6b8e812edd8748ead1660c691d12f3d06324a52e3546b7ba8" + }, + { + "classes": 1, + "id": [ + "A", + 251 + ], + "moves": 339, + "sha256": "ed68528bcfcc923679b7e7d87b5b17f63eb952cd2cd11adf943873ec62dd1075" + }, + { + "classes": 3, + "id": [ + "A", + 252 + ], + "moves": 252, + "sha256": "c1b71ea77c23079fccf85e4192cd6ce3ac6c1ea830e68575913511f5770f9963" + }, + { + "classes": 1, + "id": [ + "A", + 253 + ], + "moves": 798, + "sha256": "be1e6e9360c9cba163db1dd872362eba8cae92a769efa4a70cf34812947e7a1b" + }, + { + "classes": 1, + "id": [ + "A", + 254 + ], + "moves": 145, + "sha256": "d28ff7f600e88bb7da6439d1c71dbf9a94c2bd5d432d4470780d8b0e1463ca5d" + }, + { + "classes": 1, + "id": [ + "A", + 255 + ], + "moves": 753, + "sha256": "5dee802d4ca8b71cb9127e29544d146cf19dd0361db247c057946b7c9c14ba8a" + }, + { + "classes": 1, + "id": [ + "A", + 256 + ], + "moves": 143, + "sha256": "3f55165944eccaf5b9f17513b8301399becb9ba0aa3ed68bd0650f615be088f9" + }, + { + "classes": 1, + "id": [ + "A", + 257 + ], + "moves": 706, + "sha256": "c780e5ad0cead376aaa88e7a294fffbc14e0717c964733eb0789a70f86a1bf5b" + }, + { + "classes": 4, + "id": [ + "A", + 258 + ], + "moves": 258, + "sha256": "7eb4e77e230e9555ee06c6d97bd838149ed324878f09912a0d59b5686d7dc77a" + }, + { + "classes": 1, + "id": [ + "A", + 259 + ], + "moves": 667, + "sha256": "f388f0b8a4bca94ed3294915187cb8cc1ea9c25b31c4f42f9d9df6fec40fabec" + }, + { + "classes": 1, + "id": [ + "A", + 260 + ], + "moves": 768, + "sha256": "b0be138b4898ccca0c1770f602d078a45b3e2ed4c16f73295f9770cb15da568d" + }, + { + "classes": 1, + "id": [ + "A", + 261 + ], + "moves": 26, + "sha256": "dc171c283b1f8c3c412e509a43a387993732d8bc8e20122b293bff63546b0c08" + }, + { + "classes": 1, + "id": [ + "A", + 262 + ], + "moves": 579, + "sha256": "cb82d17ff5e006501fea86a8136c2270f3aabfa5933ce703c40a8de9be422f22" + }, + { + "classes": 1, + "id": [ + "A", + 263 + ], + "moves": 165, + "sha256": "c630e70056e25abc3917391eb8846e49b6ef763795f4a53a7cd4470116ae6168" + }, + { + "classes": 1, + "id": [ + "A", + 264 + ], + "moves": 1028, + "sha256": "1abafd9d2dd6df27ebf08cce9b85bc2d9437cb2f5251a80dbd47a63c59bb25b1" + }, + { + "classes": 1, + "id": [ + "A", + 265 + ], + "moves": 41, + "sha256": "cd325053481564cf7358b6b436eae394bd7dff9248ce2e0ea9c9a8ce29fca1e7" + }, + { + "classes": 1, + "id": [ + "A", + 266 + ], + "moves": 986, + "sha256": "2760280d49fc5ea8bfe9d26faafd69398fc4f2728cfad6f3ea2bdc7e730c96cd" + }, + { + "classes": 1, + "id": [ + "A", + 267 + ], + "moves": 44, + "sha256": "58c42979528afa08a175c52ea9572cd2170ce9ced0257f70d9528a208653e16b" + }, + { + "classes": 1, + "id": [ + "A", + 268 + ], + "moves": 945, + "sha256": "428ff433b83fc1ae227df749dd3a517505601773d3a9eacb18c6a1801f50d37f" + }, + { + "classes": 1, + "id": [ + "A", + 269 + ], + "moves": 164, + "sha256": "946fab218f1a99338a813952005b955e53c6556b8bbafebb79b2e2a3d89c8fc3" + }, + { + "classes": 1, + "id": [ + "A", + 270 + ], + "moves": 900, + "sha256": "914f38fa467530bf4013d230daea0061083c589ae894f871d9fb9abaa8deccdc" + }, + { + "classes": 1, + "id": [ + "A", + 271 + ], + "moves": 153, + "sha256": "40c50f0c046125842c3e94889b2c8867232ccae5c5219856305ca05c91f432b9" + }, + { + "classes": 1, + "id": [ + "A", + 272 + ], + "moves": 860, + "sha256": "3cf9a21bbf505138139701b86800314c7a2847832e866c139ae9ede83d528927" + }, + { + "classes": 1, + "id": [ + "A", + 273 + ], + "moves": 155, + "sha256": "e7c08bb0c505789a436f495f77f4795a6540abcadf68f4d2c331791b2ca3da03" + }, + { + "classes": 1, + "id": [ + "A", + 274 + ], + "moves": 815, + "sha256": "ba1289baae912568f661690310d5214e2dbd4f72900456f74b8acee1128728f4" + }, + { + "classes": 1, + "id": [ + "A", + 275 + ], + "moves": 268, + "sha256": "4ffcfef447a47d9c55fbd92edda99c030d4c4402c097e7f58d1a996fd3f29f43" + }, + { + "classes": 1, + "id": [ + "A", + 276 + ], + "moves": 342, + "sha256": "ca288113141e62eee7c28864bb79113ae6ed077596778b2ae6d21efba4c85fc3" + }, + { + "classes": 1, + "id": [ + "A", + 277 + ], + "moves": 43, + "sha256": "0bc86008bfb4b2e96a7397cadb612ce33df54b549d8d35ffd5fdedefd4b124d9" + }, + { + "classes": 1, + "id": [ + "A", + 278 + ], + "moves": 361, + "sha256": "26fb80e20e72752a1c8d7b40166cdaaf7b76a68d65ce383c3ae38a7324355d2e" + }, + { + "classes": 4, + "id": [ + "A", + 279 + ], + "moves": 279, + "sha256": "3d17fd816bfcf4f80ca19c7a1443b81750c51adf8bde296b7bf43cfbe4ff9bfc" + }, + { + "classes": 1, + "id": [ + "A", + 280 + ], + "moves": 404, + "sha256": "ad76b5d6c312b9cc6b4eab129068cf64713006d9820d3c2342f8744df1d98fed" + }, + { + "classes": 1, + "id": [ + "A", + 281 + ], + "moves": 258, + "sha256": "66351f03c807c51d7afb6c7065eda437ddeb67c13dfa878b2f684718d54c3941" + }, + { + "classes": 1, + "id": [ + "A", + 282 + ], + "moves": 421, + "sha256": "45c075dbf3f4ffb172955b42b45ff2667a1c6b098556e76a5e080aeb4f09839e" + }, + { + "classes": 1, + "id": [ + "A", + 283 + ], + "moves": 275, + "sha256": "cd041d1172dcafe2398f3d7ede0e31b8b35286dcd81b4b1a6d1253f7ab3a28cd" + }, + { + "classes": 1, + "id": [ + "A", + 284 + ], + "moves": 380, + "sha256": "a93a6618e64d2062ca0f5e0e004d32f5f52cd438e7e5e5449790ebe66184e2f1" + }, + { + "classes": 1, + "id": [ + "A", + 285 + ], + "moves": 570, + "sha256": "d9dae70a9599bbd6f84097be90fe8ab3fdfaaa690d6a0884ba6dbc7bf8260440" + }, + { + "classes": 1, + "id": [ + "A", + 286 + ], + "moves": 161, + "sha256": "345f957073b4615b2ef33d96d8a5a23c49a0ff7153013b7061badeea36902263" + }, + { + "classes": 1, + "id": [ + "A", + 287 + ], + "moves": 576, + "sha256": "024b5c9139d934d81a278657c103b3a87528ef77800b084088f95b7a7aa577ca" + }, + { + "classes": 1, + "id": [ + "A", + 288 + ], + "moves": 770, + "sha256": "179f15d1b9b969abaa033ffeb80711a06886a0dcc1e703ae30f8312568b1a9d7" + }, + { + "classes": 3, + "id": [ + "A", + 289 + ], + "moves": 289, + "sha256": "4519f0f7a155865c2de7382bba5b52ce874f66ccd13e2c6258d7a50b88020fb8" + }, + { + "classes": 1, + "id": [ + "A", + 290 + ], + "moves": 659, + "sha256": "1fc3642875b361af0fd2dadc34343e8d0f1ae88b350d7f89681b08893cf8d186" + }, + { + "classes": 1, + "id": [ + "A", + 291 + ], + "moves": 53, + "sha256": "e585361a593a51a2f80c439c8ce7d848a54ba45c50e6d2b729c4994f3cc43003" + }, + { + "classes": 1, + "id": [ + "A", + 292 + ], + "moves": 638, + "sha256": "9056db2139a698966ce86a08ea6d0d32fb7691c08ee45ea82ee97606bfd9298f" + }, + { + "classes": 1, + "id": [ + "A", + 293 + ], + "moves": 148, + "sha256": "5e5981544d472d0e2e13f230cdf46cd2d3ee218fb033d2d0eb3a75e7d1fe047e" + }, + { + "classes": 1, + "id": [ + "A", + 294 + ], + "moves": 592, + "sha256": "37c6646d06fa5f090a2be01d355b84ce5d44ac61ec930b954d4a7ffec771a20d" + }, + { + "classes": 1, + "id": [ + "A", + 295 + ], + "moves": 149, + "sha256": "decc5a6cd5679d7851247773f5642b0d92897054a0ff2f4507607ee2d21b24b2" + }, + { + "classes": 1, + "id": [ + "A", + 296 + ], + "moves": 549, + "sha256": "66b6b27e240d79d5d188a0665b1208f93e072d4769eea5bf4a5b2ad1d1cf979d" + }, + { + "classes": 1, + "id": [ + "A", + 297 + ], + "moves": 169, + "sha256": "7e7d7ca877315feb0ccf441f28b0d2bed5c7260bb5bbf8cfd43649ba80dbee0f" + }, + { + "classes": 1, + "id": [ + "A", + 298 + ], + "moves": 815, + "sha256": "4df661e7d6b8fca9c261cdb9911826e6b096dc5567a517c3fef2542dd16be229" + }, + { + "classes": 3, + "id": [ + "A", + 299 + ], + "moves": 299, + "sha256": "32841769fae5f8f1a863d15b62e02c7c775eb9ce6ead6706d53530de6d0fdca8" + }, + { + "classes": 1, + "id": [ + "A", + 300 + ], + "moves": 852, + "sha256": "864525e2c13294be6bb204a068d65d43257726a6449fd0abab517a66061b0da0" + }, + { + "classes": 1, + "id": [ + "A", + 301 + ], + "moves": 164, + "sha256": "a41acd89a98fa4b9ca99a40fbc7d7773161eecfd715879b4393ab6ee3446a8f5" + }, + { + "classes": 1, + "id": [ + "A", + 302 + ], + "moves": 892, + "sha256": "abe55612f356dd0e842fa292c9a387fbda6a5b5d2c97f1c660250345fa72ac05" + }, + { + "classes": 1, + "id": [ + "A", + 303 + ], + "moves": 176, + "sha256": "a0b5f96358df8e40b3ff98b3c5b721482427cad81058778288be24bf40346888" + }, + { + "classes": 1, + "id": [ + "A", + 304 + ], + "moves": 870, + "sha256": "4fea68c47f3f25990e392ff547961e4779cd140dfd268f041b0e7f59dec384c1" + }, + { + "classes": 1, + "id": [ + "A", + 305 + ], + "moves": 66, + "sha256": "58376951a85647d1d7edbeb1a8142505fd4c9ad330422cc3caa2b5817fbab991" + }, + { + "classes": 1, + "id": [ + "A", + 306 + ], + "moves": 830, + "sha256": "df66268b655ec945bc51c879b18a6ef42b326161e3596c6e4883d44ecc41be5e" + }, + { + "classes": 1, + "id": [ + "A", + 307 + ], + "moves": 951, + "sha256": "93d9572ad3f93a8918cf6abaa9ac127c1ea4f2d4137c6f58175e2f60783180e2" + }, + { + "classes": 1, + "id": [ + "A", + 308 + ], + "moves": 261, + "sha256": "37c302d12d9cd810aeef8abc2f50d53f89b7dfc3e3479cfe35211291b4c97372" + }, + { + "classes": 1, + "id": [ + "A", + 309 + ], + "moves": 371, + "sha256": "f6001dd042e649a663607363918c536577c84cc86a0623cefcbc9b092b0adc35" + }, + { + "classes": 1, + "id": [ + "A", + 310 + ], + "moves": 126, + "sha256": "c08387d63f28a1bffa87a4d8aa0f6d4861ebbfbf15dde77ee54b3120ffabea5c" + }, + { + "classes": 1, + "id": [ + "A", + 311 + ], + "moves": 615, + "sha256": "0b2d05de88e18c4932d4992b6629954fe8c19a19a8a980561d59c0e17d820d70" + }, + { + "classes": 1, + "id": [ + "A", + 312 + ], + "moves": 119, + "sha256": "41501c0d04b6173c0ee19ef9ec77b72e9ca0c8f4398091ecf316b3d7c89008de" + }, + { + "classes": 1, + "id": [ + "A", + 313 + ], + "moves": 901, + "sha256": "66433ce8bb521b9ae811f4599f9d1e27832063827fda5c18572cde1d49d3bf17" + }, + { + "classes": 1, + "id": [ + "A", + 314 + ], + "moves": 131, + "sha256": "f958b24ea18e156fa5538c3194bfe89e5430b71991135e668281610864211b19" + }, + { + "classes": 1, + "id": [ + "A", + 315 + ], + "moves": 875, + "sha256": "3781063d69fd7d5a2e0c0907c5611812a4545d8de1e61ca3c08ac759fe59e24c" + }, + { + "classes": 1, + "id": [ + "A", + 316 + ], + "moves": 122, + "sha256": "91192bb5dad469e8589d405e59f11b9204e376932ec31b6f1dee2616fa056509" + }, + { + "classes": 1, + "id": [ + "A", + 317 + ], + "moves": 667, + "sha256": "3742c7966fdb764a7fc0269ad76eec35a0fb26193fb5538781e31b4c7e6c19c4" + }, + { + "classes": 1, + "id": [ + "A", + 318 + ], + "moves": 124, + "sha256": "3fe5b2e08e84b0a28a6419841cb9811b7c23906a21904fd3412b3f924c60d3df" + }, + { + "classes": 1, + "id": [ + "A", + 319 + ], + "moves": 428, + "sha256": "ca254c11e0d5802caf272e52520b59d4526e70cd619961434cddf2627b0bf495" + }, + { + "classes": 1, + "id": [ + "A", + 320 + ], + "moves": 237, + "sha256": "9a5c0aad886ac10282ccbe870dbf99d6a467991185212fea25e650c58c3a71a9" + }, + { + "classes": 1, + "id": [ + "A", + 321 + ], + "moves": 445, + "sha256": "76c7fa30b521a86a4266ace75b86266d1439758a5a3b165f2ae039e9c074f392" + }, + { + "classes": 1, + "id": [ + "A", + 322 + ], + "moves": 171, + "sha256": "eb2321ef7963789e1fee73c012e519c09270bd384434ff61158c1f7348979fc1" + }, + { + "classes": 1, + "id": [ + "A", + 323 + ], + "moves": 705, + "sha256": "72d8990ca772b83ab183c4f0478fbe307524e59e66f7840a68eadf65d8103520" + }, + { + "classes": 1, + "id": [ + "A", + 324 + ], + "moves": 159, + "sha256": "f938a72ebed59f78a267112d8dd6df2473ebec05df9070670d397f8f6fff9de2" + }, + { + "classes": 1, + "id": [ + "A", + 325 + ], + "moves": 946, + "sha256": "2778ba04e1ad0232ca68f204a0a6d4b29456c7bb777929d58254fbc67b4f0a6b" + }, + { + "classes": 1, + "id": [ + "A", + 326 + ], + "moves": 174, + "sha256": "b1f6a3edc2d4e9ed2db62827090bedf58c5af1db2ba4c988c3bfe27632b22332" + }, + { + "classes": 1, + "id": [ + "A", + 327 + ], + "moves": 805, + "sha256": "66fbb371faee8f8e1e3f7fb1d9b31bc0fefd39457e7d38935266cebf144640ac" + }, + { + "classes": 1, + "id": [ + "A", + 328 + ], + "moves": 162, + "sha256": "05f36ac702b41c834e80f8d7da348150eee331f7199f03ed50c6fb840ecf40d6" + }, + { + "classes": 1, + "id": [ + "A", + 329 + ], + "moves": 553, + "sha256": "9c1cc537a24fdac96b9ad5c48a7401dfe2d610f13272ca76bb9c94f4aaf6b3e3" + }, + { + "classes": 1, + "id": [ + "A", + 330 + ], + "moves": 164, + "sha256": "aa2af18d52b01efed2d2c6b7ceefe5dc12fe49f8684558a995d00d3b627a334c" + }, + { + "classes": 1, + "id": [ + "A", + 331 + ], + "moves": 329, + "sha256": "3b3d4dc232969c0b86b055ad0116fcff1f363d50f838929be7726b6646ccb8bc" + }, + { + "classes": 1, + "id": [ + "A", + 332 + ], + "moves": 225, + "sha256": "9702c442dffe1dc826fd0c035afc2aec2f7f5a318ece0e2111b3621ae26806de" + }, + { + "classes": 1, + "id": [ + "A", + 333 + ], + "moves": 471, + "sha256": "72e7516e9bf42ae050c8f8dced7cb4f5c7be36032f06a41b8d3c9d79440024a4" + }, + { + "classes": 1, + "id": [ + "A", + 334 + ], + "moves": 214, + "sha256": "d8c80c184807a9065ebd28d2f348a59435c4a42285b75f83840cea383031cfbf" + }, + { + "classes": 1, + "id": [ + "A", + 335 + ], + "moves": 716, + "sha256": "6d00b908d8b72803edb52e864144796db4c8e8560376a66c5948c2f30b1ef461" + }, + { + "classes": 1, + "id": [ + "A", + 336 + ], + "moves": 195, + "sha256": "fa66b106e6027e592dc95a50288318e8a32da066662bbae323b8f29d12b59079" + }, + { + "classes": 1, + "id": [ + "A", + 337 + ], + "moves": 772, + "sha256": "46f9af1a1374490bf38ba0c067c16b0557ee6a4b1f68382cdbe087c9a840b04e" + }, + { + "classes": 1, + "id": [ + "A", + 338 + ], + "moves": 219, + "sha256": "1aec5926b348f921e737d59fe28fffcb94b4bda40e6d8960e3e77872ac57aba1" + }, + { + "classes": 1, + "id": [ + "A", + 339 + ], + "moves": 976, + "sha256": "c80e7229d732722266728dc4b1ac1b9443719e3dd08fc09f82f4caef9f6adf31" + }, + { + "classes": 1, + "id": [ + "A", + 340 + ], + "moves": 198, + "sha256": "4a70d8be96c7020347be1eedc4e8f642249dba78b5541e2ed2eff00662ca0e26" + }, + { + "classes": 1, + "id": [ + "A", + 341 + ], + "moves": 500, + "sha256": "0736215c4c93bbcbef464ea1da763101960902f2e6218affb23697fd6e51d0b0" + }, + { + "classes": 1, + "id": [ + "A", + 342 + ], + "moves": 200, + "sha256": "18e1a29a2cb029dd2d0be18f3ea5f376cbc9346a1fdd94626afdfa5e68dfc66e" + }, + { + "classes": 1, + "id": [ + "A", + 343 + ], + "moves": 271, + "sha256": "c23adf9ad70dbeadb186dd15b85e59aecd91317bbcba966ebd6647560a204e2e" + }, + { + "classes": 1, + "id": [ + "A", + 344 + ], + "moves": 117, + "sha256": "acaa16147fd814f091edb863c720c4196544cbab6ea7b308059b04289624738a" + }, + { + "classes": 1, + "id": [ + "A", + 345 + ], + "moves": 290, + "sha256": "3d15ea540bbd8f769e05cd1d958a7e494b226ee259f75d10cc4742a4294766d9" + }, + { + "classes": 1, + "id": [ + "A", + 346 + ], + "moves": 167, + "sha256": "fef150b05046eb27991bf2cbc0ce80fb8af2261edcd91a43ad2aad962c70ce2c" + }, + { + "classes": 1, + "id": [ + "A", + 347 + ], + "moves": 806, + "sha256": "99dc6c70b8e36a73b0e571b2a3ff851fcd0e4d21d2a53e707528db1b7b08d2ee" + }, + { + "classes": 1, + "id": [ + "A", + 348 + ], + "moves": 152, + "sha256": "273678977cbf12883e3116cb47198b193fdce149736b721ffdd15310256589e5" + }, + { + "classes": 1, + "id": [ + "A", + 349 + ], + "moves": 680, + "sha256": "278059423ef9a34b1107b481f121c1493defa29f8d30047f503903c541f9fbf1" + }, + { + "classes": 1, + "id": [ + "A", + 350 + ], + "moves": 170, + "sha256": "60f65c78085e9c4a4d90f7bf17d04b7699617047a8426af9a558606669d641ba" + }, + { + "classes": 1, + "id": [ + "A", + 351 + ], + "moves": 532, + "sha256": "1a7cc16352708a697f16b4d74b4e6e48afae0f29d579e8ceadec4cd85576d541" + }, + { + "classes": 1, + "id": [ + "A", + 352 + ], + "moves": 124, + "sha256": "cac4afcbd724a0466b8a21eb2c30f875ef21161227c4ca72842bb77702bc2074" + }, + { + "classes": 1, + "id": [ + "A", + 353 + ], + "moves": 899, + "sha256": "84f7d2cab7443ce3294a6339dfce2fbcab3ed275ae48cc7bec84a4d2207e479c" + }, + { + "classes": 1, + "id": [ + "A", + 354 + ], + "moves": 158, + "sha256": "d3f1cc28f87a0bde67e317e31c212f52a6abaf7721d8067b61f5423f5790079e" + }, + { + "classes": 1, + "id": [ + "A", + 355 + ], + "moves": 431, + "sha256": "1ea362651739a8248230a33989d979295a17787436267a8a97fcb79752e190df" + }, + { + "classes": 1, + "id": [ + "A", + 356 + ], + "moves": 116, + "sha256": "db9bbad44fec411ccb5e911829ffc6abb05fa51436d13f74e3c3f038b0fff77e" + }, + { + "classes": 1, + "id": [ + "A", + 357 + ], + "moves": 367, + "sha256": "29d60a69bb54585aaa694940d13998ec9751eb57daf8cfd9c360266da87b7e9c" + }, + { + "classes": 1, + "id": [ + "A", + 358 + ], + "moves": 209, + "sha256": "da242eb8f8d3173dba17f6e6a7ea819e719f2db2d523e3ba2db77d02574a89e2" + }, + { + "classes": 1, + "id": [ + "A", + 359 + ], + "moves": 856, + "sha256": "514d680e262e66583ca4b75a9edbefbf27b56134d10203ac9d1da37a4be4c040" + }, + { + "classes": 1, + "id": [ + "A", + 360 + ], + "moves": 288, + "sha256": "1b646151cb3c78630cddec02e8a888ef4720f55c91208a22bfa853be358a6586" + }, + { + "classes": 1, + "id": [ + "A", + 361 + ], + "moves": 602, + "sha256": "0da4e94c3fe68fb0a5f6bd79ec055e1cfd6b05a1e398656fc16eb9cfa00747fc" + }, + { + "classes": 1, + "id": [ + "A", + 362 + ], + "moves": 212, + "sha256": "c3dedd3df0ea3b1e896aa98bc0340155d4295793d99fba4047369f5fedd94ec7" + }, + { + "classes": 1, + "id": [ + "A", + 363 + ], + "moves": 582, + "sha256": "ecec3d14f7f7004b2f66d1b7ec58e266e078f69c3106d5b20e5ff0af9b0327cf" + }, + { + "classes": 1, + "id": [ + "A", + 364 + ], + "moves": 1103, + "sha256": "c0edc064823e70da898b1744c87ab8db0b8423d971d4ae1eeba3c4e57c759385" + }, + { + "classes": 1, + "id": [ + "A", + 365 + ], + "moves": 215, + "sha256": "9677c95cb0c877410c2a0a07e65b24bb9f607ec8f1f85096b5e74736571c9142" + }, + { + "classes": 1, + "id": [ + "A", + 366 + ], + "moves": 333, + "sha256": "9a7952e92fc92d46bfc3e61b45ab9cc5dba86951f8b8310a286a1fdc9393a61a" + }, + { + "classes": 1, + "id": [ + "A", + 367 + ], + "moves": 690, + "sha256": "f88a641cd8980bad8aa14407f633fe60a856405f513293d6756b26d9865000b3" + }, + { + "classes": 3, + "id": [ + "A", + 368 + ], + "moves": 368, + "sha256": "8605542f76a5e1d56b2524b294b4f91e051b2dca74082f01cd4421374d6996c5" + }, + { + "classes": 1, + "id": [ + "A", + 369 + ], + "moves": 923, + "sha256": "d1f412c238911bc8ac7a7c4f4bf8949b732ab2b3d7c44fb7a9dee98133425688" + }, + { + "classes": 3, + "id": [ + "A", + 370 + ], + "moves": 370, + "sha256": "7c50932a7cdfd0cb379ada39fce5b6dfc10de71f13de3661c522eab76980526c" + }, + { + "classes": 1, + "id": [ + "A", + 371 + ], + "moves": 493, + "sha256": "fb45370eb9c8936a086dad75640571a196d26329552f80f1ee194d7b8d7b821a" + }, + { + "classes": 1, + "id": [ + "A", + 372 + ], + "moves": 136, + "sha256": "3cf9489ef1731269c9c97fda34c8bf3c1bd3bd9b2e3c3df7547c3961974b3216" + }, + { + "classes": 1, + "id": [ + "A", + 373 + ], + "moves": 700, + "sha256": "64ac8830210cdc4f71e66a7474c6ac4f246997f7246df1274b04afd7871f2bab" + }, + { + "classes": 1, + "id": [ + "A", + 374 + ], + "moves": 241, + "sha256": "db82b718ef830741a630f59874707401195518e5f7fc63fc88901335054421ed" + }, + { + "classes": 1, + "id": [ + "A", + 375 + ], + "moves": 718, + "sha256": "c445a6e0a20a1ff73662cd5344cd2b1b8740c91035a2abc2b40ce68f63e3d89a" + }, + { + "classes": 1, + "id": [ + "A", + 376 + ], + "moves": 242, + "sha256": "4f75dd5e8a1f253b8cbb28b850fef9d66fcd146870824da12839eec65a723d8e" + }, + { + "classes": 1, + "id": [ + "A", + 377 + ], + "moves": 238, + "sha256": "2c7baab6d86b80572754d32904d5728d8ccf7edc4bff8c2cbe6cacec77011f8f" + }, + { + "classes": 1, + "id": [ + "A", + 378 + ], + "moves": 325, + "sha256": "977cca05d0f36b1232cf90bca517cb5d9ba639c06b161a761afd2054d6c50bd0" + }, + { + "classes": 1, + "id": [ + "A", + 379 + ], + "moves": 302, + "sha256": "8e33d1dc8f59f7a1a61027ba3efba7a078e8d812915104f3ea2111bede2d47d7" + }, + { + "classes": 1, + "id": [ + "A", + 380 + ], + "moves": 191, + "sha256": "dcfe3a95bb42ae80784bfb77a6eb3d22e506936855120501df70ae443f6fb79d" + }, + { + "classes": 1, + "id": [ + "A", + 381 + ], + "moves": 604, + "sha256": "7ee359ee89ff39e73c1ee7dad19eab58a5d6a0f568590e57d3e3c138b6bd510f" + }, + { + "classes": 1, + "id": [ + "A", + 382 + ], + "moves": 176, + "sha256": "cbdfb15a962748ed1c2aa9c134418e56eff79ad212da608b29702cf4ac98a85c" + }, + { + "classes": 1, + "id": [ + "A", + 383 + ], + "moves": 809, + "sha256": "3ea81e773b542fde9f9c19f42592170490e5fc9858dd4368bb50aaa86f034857" + }, + { + "classes": 1, + "id": [ + "A", + 384 + ], + "moves": 194, + "sha256": "ad9e0be5c8ec1fe357cf49cadc14ab8f207092997ed24baaf681677a94ae1ad6" + }, + { + "classes": 1, + "id": [ + "A", + 385 + ], + "moves": 834, + "sha256": "0d2734832d56f0905c08c9e3b41afdc14b8129067aa2629afc3ba67eb61b46ee" + }, + { + "classes": 1, + "id": [ + "A", + 386 + ], + "moves": 181, + "sha256": "106f38a5e3b2df226d05f37b30300e071db0be252ab71d7cb243fdb7134676f4" + }, + { + "classes": 1, + "id": [ + "A", + 387 + ], + "moves": 540, + "sha256": "47530fa0f811c7a781bc46b9f17b624ed9fb0a4e937ca1109b34700c7f54f9c1" + }, + { + "classes": 1, + "id": [ + "A", + 388 + ], + "moves": 182, + "sha256": "486fd85a47d810d059878499ab305ec8753197b74adc58fed13646b4e43a3754" + }, + { + "classes": 1, + "id": [ + "A", + 389 + ], + "moves": 359, + "sha256": "4b3892b85be05a31ec0a7315769eb80637e48553e6dad96ba06fd549cb62d61a" + }, + { + "classes": 1, + "id": [ + "A", + 390 + ], + "moves": 300, + "sha256": "1bb7d8bf827064ab03e03fa43c066389230715413ceed85a519f253b72d16097" + }, + { + "classes": 1, + "id": [ + "A", + 391 + ], + "moves": 376, + "sha256": "bf6b55e4aae4716e57ed7d54e32ff0554aa43f250b688dd345d2244b16ca5c25" + }, + { + "classes": 1, + "id": [ + "A", + 392 + ], + "moves": 231, + "sha256": "fbbab16f91affc4982dce0030985585b6f3fd424ebb883650100b85ccd62c11c" + }, + { + "classes": 1, + "id": [ + "A", + 393 + ], + "moves": 491, + "sha256": "b41b21399dc03df81055cfbc5501a3a35ebea3cb4e64634bb86dda808fce858c" + }, + { + "classes": 1, + "id": [ + "A", + 394 + ], + "moves": 225, + "sha256": "b78c03a9cb6dbe016bc2ba9b07df4bcd17172b93275ad1c7d059303d465cd564" + }, + { + "classes": 1, + "id": [ + "A", + 395 + ], + "moves": 738, + "sha256": "1df989004f6b4bc4faf13d45bd53156a74decab14679ade46fd0bcd84386944b" + }, + { + "classes": 1, + "id": [ + "A", + 396 + ], + "moves": 234, + "sha256": "e73b809963f1fa23837232057d9608341872a100b75aae7c587cdc73c9311232" + }, + { + "classes": 1, + "id": [ + "A", + 397 + ], + "moves": 875, + "sha256": "a3c317109040c46d7e92d07252c5672af53541adfc4a60afe0bc692397111351" + }, + { + "classes": 1, + "id": [ + "A", + 398 + ], + "moves": 228, + "sha256": "072a103516c4684b169c65d3956b7e98731e6ab023c3a38cc8897c1955ef2027" + }, + { + "classes": 1, + "id": [ + "A", + 399 + ], + "moves": 631, + "sha256": "f4d0d054064dd90c4dd38e9c326aa12ad2ad3c859e51b2dd45c51aefb1fae769" + }, + { + "classes": 1, + "id": [ + "A", + 400 + ], + "moves": 230, + "sha256": "dcaadf75315bba79f6f9882e4307d8adcd18bdb1b8a6ea1d3d6212fe6527bef8" + }, + { + "classes": 1, + "id": [ + "A", + 401 + ], + "moves": 260, + "sha256": "6f07a7fc9d62bbd6053a0c1b4ac6b79fd052f8586ea83d3a9f0b1f7717e7f7ea" + }, + { + "classes": 1, + "id": [ + "A", + 402 + ], + "moves": 291, + "sha256": "f6ab0842fcf66887f7eedf57466e8f59bfd3bcf5e4de20314156cc78ad1c21f6" + }, + { + "classes": 1, + "id": [ + "A", + 403 + ], + "moves": 406, + "sha256": "b1d820063443b0f12156316fc4b81c8622513259e37d5558dde503bf0f26d8cb" + }, + { + "classes": 1, + "id": [ + "A", + 404 + ], + "moves": 275, + "sha256": "f712bde134d7d746d8241e374a3923a9322cb824091eaae71495b4669166df8f" + }, + { + "classes": 1, + "id": [ + "A", + 405 + ], + "moves": 647, + "sha256": "66b8fa109fb56f506b1d445b426080f24e490cd5cd9e30cef656ed3e19ba39f9" + }, + { + "classes": 1, + "id": [ + "A", + 406 + ], + "moves": 263, + "sha256": "251f75c08b6e767a9905349f93f24ed4f281153463d0f354f25512e8589d906f" + }, + { + "classes": 1, + "id": [ + "A", + 407 + ], + "moves": 703, + "sha256": "9567fc530c2f260d780956e589915dc80958428f8d6e61bb6ca7e1e8217c7491" + }, + { + "classes": 1, + "id": [ + "A", + 408 + ], + "moves": 278, + "sha256": "de6ea8526b0228b5280955c96d4ff95ec952a96c972a8343608947356adec4d3" + }, + { + "classes": 1, + "id": [ + "A", + 409 + ], + "moves": 907, + "sha256": "eda4f4cb9034bad7dfbe072dcef23795c7fd313be79bd64f0f367641f753dd01" + }, + { + "classes": 1, + "id": [ + "A", + 410 + ], + "moves": 266, + "sha256": "2388c45be9db7af1acc92dbeff1e752da7f57b5da6e78d76b3d4620f8abb2828" + }, + { + "classes": 1, + "id": [ + "A", + 411 + ], + "moves": 431, + "sha256": "97f29639955d80165890969fbf879592847f84904dc1b338d331b706509343f2" + }, + { + "classes": 1, + "id": [ + "A", + 412 + ], + "moves": 268, + "sha256": "99eb5b4327656bea61de44a0e0c135320120092f591edc516b015f7c29dc7415" + }, + { + "classes": 1, + "id": [ + "A", + 413 + ], + "moves": 203, + "sha256": "3c962aa0d587de888475bdf67273fb1257d0270ca47a59cb3f9621b3620a75d5" + }, + { + "classes": 1, + "id": [ + "A", + 414 + ], + "moves": 368, + "sha256": "da601b1c63c8ab5a51131a106e0609e1be96c5cab05a7308b7ba3e7fe3c7d20e" + }, + { + "classes": 1, + "id": [ + "A", + 415 + ], + "moves": 221, + "sha256": "661f47128e5d348b4616ecc8ebaa228f898fe24bf2707dd08c01a086fc1d2adb" + }, + { + "classes": 1, + "id": [ + "A", + 416 + ], + "moves": 175, + "sha256": "4bc6f1c179f7c58ffb93bb598f4a51d1140c12657e98c8b0685dd869eef7faef" + }, + { + "classes": 1, + "id": [ + "A", + 417 + ], + "moves": 836, + "sha256": "421310c9948ae2f8f9ab49e7c5a44b75c176f40d31f5e2d1bee5c60a841648e4" + }, + { + "classes": 1, + "id": [ + "A", + 418 + ], + "moves": 849, + "sha256": "816634e65de5dcc7582c23a5dd1b262eb2c0d26d6102318e1cfdbd70ccae30aa" + }, + { + "classes": 1, + "id": [ + "A", + 419 + ], + "moves": 187, + "sha256": "045695aab261a0a0c2f3275e7dbd16a091d477eee77be7d2fe9c4ac3636cb5ad" + }, + { + "classes": 1, + "id": [ + "A", + 420 + ], + "moves": 611, + "sha256": "6f0ffd8ba19dd14dd589128b467ce9385a5a977e22e9282ba3d60ba14749e8b8" + }, + { + "classes": 1, + "id": [ + "A", + 421 + ], + "moves": 375, + "sha256": "3a771b5b09a3f038c6c81d71f7c8eb2b7599e87cdcfe3ca238e223802a6e8f92" + }, + { + "classes": 1, + "id": [ + "A", + 422 + ], + "moves": 735, + "sha256": "ddda6419c17cc699ca320a8ae1632d56b07d99c35f1d11eaca079b26956a907d" + }, + { + "classes": 1, + "id": [ + "A", + 423 + ], + "moves": 604, + "sha256": "dc303236cf12d9a9a35cc46cc515e9becaa39456195f009581f04b39022517f2" + }, + { + "classes": 1, + "id": [ + "A", + 424 + ], + "moves": 347, + "sha256": "4d605dc3ce1e1532afd0d46fc3b3aebe55fbbb547b7dc4b633f017eefb8b09ef" + }, + { + "classes": 1, + "id": [ + "A", + 425 + ], + "moves": 300, + "sha256": "7dc459cb419d25057387e4a3389354d67d1c21cc4af1508f5b4a4f20a68c4a0b" + }, + { + "classes": 1, + "id": [ + "A", + 426 + ], + "moves": 195, + "sha256": "c98cc1d95b05645d1e63dcff53f15d3fbb6502776895b1f7546558bc2f5eaad3" + }, + { + "classes": 1, + "id": [ + "A", + 427 + ], + "moves": 766, + "sha256": "bc0c39c9a39e637669b32497debfebf73148f1f906cbbb7b2bccdf8cc6fa9471" + }, + { + "classes": 1, + "id": [ + "A", + 428 + ], + "moves": 253, + "sha256": "c9334d2dfb719fc2d1286c76949ea2cb9aa265b6c3783b06966c370a7c1e64a5" + }, + { + "classes": 1, + "id": [ + "A", + 429 + ], + "moves": 517, + "sha256": "6f08ccd57bd5a4303cf22bfee4edabee24f6d15ac35bad01ec64b7c0c2fd646e" + }, + { + "classes": 1, + "id": [ + "A", + 430 + ], + "moves": 201, + "sha256": "a1ec3b47931e44672c74c6425ca385e24894ca062df000bf194fdd7806ac19c7" + }, + { + "classes": 1, + "id": [ + "A", + 431 + ], + "moves": 533, + "sha256": "0c1445bd5049eb4d6e267fc8cbdcda961dd427fba044a51d502c2756039e3bea" + }, + { + "classes": 1, + "id": [ + "A", + 432 + ], + "moves": 256, + "sha256": "114b2a51b34cc8a655d5cb20dd1c6778596fb7ba58cb56b062f7ac8555077a7d" + }, + { + "classes": 1, + "id": [ + "A", + 433 + ], + "moves": 783, + "sha256": "6b21ac746d3529d23a1c06b60c96c8eff41b064adc2ad7b970621fbb8a2a7e56" + }, + { + "classes": 1, + "id": [ + "A", + 434 + ], + "moves": 258, + "sha256": "0782a299c3088072cacecf7a509f18b78e9163b58cf4bcdaa576bab139adbd1b" + }, + { + "classes": 1, + "id": [ + "A", + 435 + ], + "moves": 265, + "sha256": "7b17cde39114def4a0eec97a0aeb631ecd6c2f2c0872aab2b650860d9b619eb6" + }, + { + "classes": 4, + "id": [ + "A", + 436 + ], + "moves": 436, + "sha256": "d058e184de70e1f8c0b0e5efa004b5b5381abc43a5ddc27a717538b470ca2a73" + }, + { + "classes": 1, + "id": [ + "A", + 437 + ], + "moves": 369, + "sha256": "2f0f9e9bf2cdb820ae42d6ecc789153e7ed062d1466d45f5d44d1c43fd60b2dd" + }, + { + "classes": 1, + "id": [ + "A", + 438 + ], + "moves": 317, + "sha256": "f2f09d89100e4ce3b160952fd8959f4aa50c726583ebea76abcbfd8042b143ca" + }, + { + "classes": 1, + "id": [ + "A", + 439 + ], + "moves": 854, + "sha256": "5554ecf15d009b23616e0b1580d6ccf40ce149b26dd627e610ffdc19175b64b1" + }, + { + "classes": 1, + "id": [ + "A", + 440 + ], + "moves": 203, + "sha256": "5b5cd287c03e400b40a40559863ef062a0932e940b4a3234d59af3a9b74ec446" + }, + { + "classes": 1, + "id": [ + "A", + 441 + ], + "moves": 427, + "sha256": "adf71eeefb1db03146db2c482843c3ee272a810685838f3031a80728983314c6" + }, + { + "classes": 3, + "id": [ + "A", + 442 + ], + "moves": 442, + "sha256": "bf0206c7d7042e62ce4686523ddef368983ac9fd37b1285ad9708d8ddc03bc42" + }, + { + "classes": 1, + "id": [ + "A", + 443 + ], + "moves": 627, + "sha256": "21f6b2aa0960a278bdb18dcf5da923b814ee60a754a05bb218e43793bf9c185a" + }, + { + "classes": 1, + "id": [ + "A", + 444 + ], + "moves": 955, + "sha256": "4af013d29f4340a575d11f9d1e5e053dfe7fd669ac902e850e3258f0c7856639" + }, + { + "classes": 1, + "id": [ + "A", + 445 + ], + "moves": 309, + "sha256": "44634082dab3bcb127fca99924039776be5ebdbaff16562d9478049cb327fea4" + }, + { + "classes": 1, + "id": [ + "A", + 446 + ], + "moves": 171, + "sha256": "cdb7ac3f77920a6658009d8c1f6c96b232b7e8be075480a3f5e23088ceb8b2e6" + }, + { + "classes": 1, + "id": [ + "A", + 447 + ], + "moves": 419, + "sha256": "6a1409e32dfb08f27a545b7f623e0ad815abe30f3fecc0fa4be8f07eb71d5c11" + }, + { + "classes": 1, + "id": [ + "A", + 448 + ], + "moves": 142, + "sha256": "a58ffd43e2402b61e07636888402d1a9e863379808a8905004c2d5640b15ee6e" + }, + { + "classes": 1, + "id": [ + "A", + 449 + ], + "moves": 240, + "sha256": "434f8f4a5a4ad827389fe8ad0f6b9cd323c27fa73468820c2a61984a90f25ea9" + }, + { + "classes": 1, + "id": [ + "A", + 450 + ], + "moves": 867, + "sha256": "25781b85c067ee67f6738beda236f617713b7b69806905864cb3cedf57cbe4d2" + }, + { + "classes": 1, + "id": [ + "A", + 451 + ], + "moves": 236, + "sha256": "a5343e52d07070ada3fa907cb1602ad34ddf4913fdcd706dc42742ee70331bc9" + }, + { + "classes": 1, + "id": [ + "A", + 452 + ], + "moves": 619, + "sha256": "f37079c077a23b9f7ab6edeff462ab7899578d8fc2992e0acb4044925c2c28b8" + }, + { + "classes": 1, + "id": [ + "A", + 453 + ], + "moves": 243, + "sha256": "bdf3b066fff8ea1527e10491e2bded91ac786d1cacdd8b3c2670b4b465077ab4" + }, + { + "classes": 1, + "id": [ + "A", + 454 + ], + "moves": 411, + "sha256": "49346e2e4c383a06348340107e4c09f3d87453936b712be0a7623ae131c0417d" + }, + { + "classes": 1, + "id": [ + "A", + 455 + ], + "moves": 239, + "sha256": "70cb451ec1fc973a1ab2fedaa69993c203a13d4a5203e024062dc3aa3bbb28d9" + }, + { + "classes": 1, + "id": [ + "A", + 456 + ], + "moves": 655, + "sha256": "30f5d78b5c8a33bbdc0f54d1aaf00f688d46317181f047eb3dc355d8cc91d542" + }, + { + "classes": 1, + "id": [ + "A", + 457 + ], + "moves": 241, + "sha256": "68c602cf7289f70bf8951ac6eccf6e44aa70095300949ab3a7cf0288d3f79c48" + }, + { + "classes": 1, + "id": [ + "A", + 458 + ], + "moves": 365, + "sha256": "afca7eefb0a74da95a5ffd844540d0c41a03054aaba884c574c81bf53edde1a0" + }, + { + "classes": 1, + "id": [ + "A", + 459 + ], + "moves": 390, + "sha256": "2fa7a2d59cd3cd328f2100bb13cf6f1a88743a49fb9dba9159fe9b5adcef96cf" + }, + { + "classes": 1, + "id": [ + "A", + 460 + ], + "moves": 266, + "sha256": "b53159fcc635da511999263936e3bef08da247a9daff7594e4886594f6ee70c2" + }, + { + "classes": 1, + "id": [ + "A", + 461 + ], + "moves": 293, + "sha256": "232136241a51fa26737331cd5332d2279c3d6bb6bb2ff94d9dcbeca91a59ac9b" + }, + { + "classes": 1, + "id": [ + "A", + 462 + ], + "moves": 770, + "sha256": "740cc25482cdd0d16f3e578057c5b5ccb6f13a179061575c0e236a67b39c20b4" + }, + { + "classes": 1, + "id": [ + "A", + 463 + ], + "moves": 292, + "sha256": "5869f6f781e9dc2ecea19c0b411249901a84eb06c797ec25252cf9e7dba28537" + }, + { + "classes": 1, + "id": [ + "A", + 464 + ], + "moves": 522, + "sha256": "212b35a4c58dd8ec77b9732af70efa41a3ecf9e021d347e184604a46b5c97d97" + }, + { + "classes": 1, + "id": [ + "A", + 465 + ], + "moves": 298, + "sha256": "fb4ea0da71054e9ea5f2d443409d0560089a5cfbd58a57257950b38ef187284c" + }, + { + "classes": 1, + "id": [ + "A", + 466 + ], + "moves": 462, + "sha256": "322ab08fa9102037ff81f1437583164d8f9de8e60089d60eabff69b99495e779" + }, + { + "classes": 1, + "id": [ + "A", + 467 + ], + "moves": 295, + "sha256": "6a8d0eec1c946169648c701fa8a1846ad414a44781f7c203bafd0d6a4cfc033a" + }, + { + "classes": 1, + "id": [ + "A", + 468 + ], + "moves": 702, + "sha256": "b1f1b5a2e3f964f6ba3d4577dc9ad3fe62ec36fde9da8f78f7a0b41e9d1f27c5" + }, + { + "classes": 1, + "id": [ + "A", + 469 + ], + "moves": 297, + "sha256": "cf31031c8a75f79bd379825138fa7e8e55579f511f2db1a87872d01b7a80c99a" + }, + { + "classes": 1, + "id": [ + "A", + 470 + ], + "moves": 231, + "sha256": "8779ac741b9226827d116578ae61001b450517d8d0b8600fb91ed1fe23a6daa3" + }, + { + "classes": 1, + "id": [ + "A", + 471 + ], + "moves": 385, + "sha256": "5bdc9c71f31ec8f1227d7ed4fe8e97a4a35fab96bee390b37b43dbc5b55d6d5e" + }, + { + "classes": 1, + "id": [ + "A", + 472 + ], + "moves": 296, + "sha256": "58329280b08b0d83b812e2a9d1630433359469a1712c5d3217f39848a4a99ddd" + }, + { + "classes": 1, + "id": [ + "A", + 473 + ], + "moves": 320, + "sha256": "01763a796a1ba4d119a548f69bee3061cdda98c949886da59174fc77871182d7" + }, + { + "classes": 1, + "id": [ + "A", + 474 + ], + "moves": 780, + "sha256": "cecf6b138131d35dcf9778c5e990047ddb7be5a03e4037c0d342983ea3ae526e" + }, + { + "classes": 1, + "id": [ + "A", + 475 + ], + "moves": 316, + "sha256": "f92be576484f3244b866391d5dc7edf3c0cd1aeeffb150f663172508b7f6650c" + }, + { + "classes": 1, + "id": [ + "A", + 476 + ], + "moves": 536, + "sha256": "5fd545c80fd5e680db1b985b809fb183182b821b208c7423208c147b51ca0ea6" + }, + { + "classes": 1, + "id": [ + "A", + 477 + ], + "moves": 323, + "sha256": "03b7c7f7fcd007908f6571e86a9d54078241d6fe7227e87f4915e24e71dfd345" + }, + { + "classes": 1, + "id": [ + "A", + 478 + ], + "moves": 427, + "sha256": "bca30da7080a0a1ed0313e2b969ba7ebc17105656d4330cfdadb7ed9c49b7513" + }, + { + "classes": 1, + "id": [ + "A", + 479 + ], + "moves": 319, + "sha256": "c09a731638f69592cb923f4cab7093c29800895253f2cefe073e7e33b2fca483" + }, + { + "classes": 1, + "id": [ + "A", + 480 + ], + "moves": 674, + "sha256": "0e1dbb2a88b578c4c45c1326e9b1235bb3de6158a38cdcbb82c5fd72c792bf3f" + }, + { + "classes": 1, + "id": [ + "A", + 481 + ], + "moves": 321, + "sha256": "70215d1885dae0d53cec058bbb21d3cf913de06e9ab0a8d570bbe34790ae4b8f" + }, + { + "classes": 1, + "id": [ + "A", + 482 + ], + "moves": 180, + "sha256": "97d2a917e1f082552262293353948250706442849fe5d64e082ebe3f066b96ee" + }, + { + "classes": 1, + "id": [ + "A", + 483 + ], + "moves": 468, + "sha256": "4437d8f97b52525a7997ca899ed47af0588c0a04e9e5a8b3ffb4b18701cdd630" + }, + { + "classes": 1, + "id": [ + "A", + 484 + ], + "moves": 107, + "sha256": "ac1463c192bd0086319e694d2c0d6678a0afb4cf041ab89bcc349ae020ed4549" + }, + { + "classes": 1, + "id": [ + "A", + 485 + ], + "moves": 272, + "sha256": "0a934463755203c893d5c9c032a2835978008bbd3d2c6bc5376028cb31212fcf" + }, + { + "classes": 1, + "id": [ + "A", + 486 + ], + "moves": 567, + "sha256": "338b2d9699158e74887111c31e8f9a8b3caab898c027e487dbe8647666b3c0dd" + }, + { + "classes": 1, + "id": [ + "A", + 487 + ], + "moves": 269, + "sha256": "ba142df044c476526da5e57f8ce0488613127278f54737acb4940fa70262fcb3" + }, + { + "classes": 1, + "id": [ + "A", + 488 + ], + "moves": 806, + "sha256": "f6f5bb7276a6b1af3785a936282ed13316228adea7908f97e39e9d2bbc719065" + }, + { + "classes": 1, + "id": [ + "A", + 489 + ], + "moves": 275, + "sha256": "82f9b6f6f755357d305794e5847eda9b975ad8b0845a5388a19391267ecf12b2" + }, + { + "classes": 1, + "id": [ + "A", + 490 + ], + "moves": 601, + "sha256": "0aba4eec45a290ab07213fc2bad7cb8ba1a5a5bbfe9d23e2ff81054c3c892d2c" + }, + { + "classes": 1, + "id": [ + "A", + 491 + ], + "moves": 274, + "sha256": "b82752b4f1b33f7537377299145dfb32dd1f8f8746ec33cc0dea46ae2397e178" + }, + { + "classes": 1, + "id": [ + "A", + 492 + ], + "moves": 351, + "sha256": "95fd76b21e9c29c5a5ddfa4ef204c7e45db91e22aa0ef908f067988c09f5f757" + }, + { + "classes": 1, + "id": [ + "A", + 493 + ], + "moves": 275, + "sha256": "7c272d204760466f11e7083c073636597f2e186902fba4b98823987a59571ecd" + }, + { + "classes": 1, + "id": [ + "A", + 494 + ], + "moves": 330, + "sha256": "09d6cc458ce8aecdf82f1d0601437aece6724f6d0edf7b351a6c1210f6cd9fa5" + }, + { + "classes": 1, + "id": [ + "A", + 495 + ], + "moves": 436, + "sha256": "a0017e5d51a76374b8fbe1878591c990d4b5ed67f02db07b111ec641907b5753" + }, + { + "classes": 1, + "id": [ + "A", + 496 + ], + "moves": 141, + "sha256": "c8aed562ca5c254833578cb99b404b093f8156f55b92c7f2c38ed6b850eef447" + }, + { + "classes": 1, + "id": [ + "A", + 497 + ], + "moves": 297, + "sha256": "5d6b893917774c5c2a17ef2dc1ecad855f853f796528fdda04e545841fd5d7e0" + }, + { + "classes": 1, + "id": [ + "A", + 498 + ], + "moves": 408, + "sha256": "6b4bbd02a5ce3d9a20e72ff5190b7cecb6901aba2c70e9baa7e61e1869541883" + }, + { + "classes": 1, + "id": [ + "A", + 499 + ], + "moves": 296, + "sha256": "0572d800a05f8c2d206d8d22231b39a8aff8d02e4848971267a0c7b70123da2d" + }, + { + "classes": 1, + "id": [ + "A", + 500 + ], + "moves": 773, + "sha256": "6baf0fb13fe581f149063663b9522512e89c29450ed1368847ef1cc5f7ea751a" + }, + { + "classes": 1, + "id": [ + "A", + 501 + ], + "moves": 302, + "sha256": "9905ff964bfd2385dde9fd9f80af4b34041662b7ee7becf1b83226aa6dbba9cd" + }, + { + "classes": 1, + "id": [ + "A", + 502 + ], + "moves": 632, + "sha256": "ced82fc789e77d50c30df83aa0e117d232e3d92eb15ba29acb3d363e75e088d5" + }, + { + "classes": 1, + "id": [ + "A", + 503 + ], + "moves": 299, + "sha256": "95b6434e5f62750101ce51a243610c4f461069bdea7a67dd6bbd8965ad76540c" + }, + { + "classes": 1, + "id": [ + "A", + 504 + ], + "moves": 505, + "sha256": "553a715db9653e96b13cfda236e2df291ede6bf544a100c396efc0933dd77071" + }, + { + "classes": 1, + "id": [ + "A", + 505 + ], + "moves": 301, + "sha256": "9494812eed9fb46d9230b33c12507a5651cfe788dd7205a034fc9b38b5f79529" + }, + { + "classes": 1, + "id": [ + "A", + 506 + ], + "moves": 281, + "sha256": "7350775aaeefa4489e6ef506adcb52d7a95e835e4b54e19dce2f635389cb2fa8" + }, + { + "classes": 1, + "id": [ + "A", + 507 + ], + "moves": 449, + "sha256": "af836491b397e6776b903df8e7f14c547ccafa3059f110833840d4eede296a39" + }, + { + "classes": 1, + "id": [ + "A", + 508 + ], + "moves": 174, + "sha256": "ea40b174e0500e5a7929450a80f971a7d50400b8d7616d808df2b7d40cb694ba" + }, + { + "classes": 1, + "id": [ + "A", + 509 + ], + "moves": 312, + "sha256": "b6c2e1ad7a6b1b1153c9b10b84a3b49e3cff1750cacfed8d35a018219f03df2e" + }, + { + "classes": 1, + "id": [ + "A", + 510 + ], + "moves": 437, + "sha256": "9c6b218869771c9e3fc404095ff770ef5f26d853b5716db82212440f55e8654c" + }, + { + "classes": 1, + "id": [ + "A", + 511 + ], + "moves": 310, + "sha256": "3bd53e3099ca118395ebd18061c03ed8c5b723f3999973e87996579f04602d8a" + }, + { + "classes": 1, + "id": [ + "A", + 512 + ], + "moves": 721, + "sha256": "ebedd23f0f541e46d33eda34e99d1eef841096adff2ae956e6d6d88bd4be26cd" + }, + { + "classes": 1, + "id": [ + "A", + 513 + ], + "moves": 315, + "sha256": "5c29efed559efa1f40a964a699b2b144a7880fb0d4f1c9fa790c83d4b33145e7" + }, + { + "classes": 1, + "id": [ + "A", + 514 + ], + "moves": 657, + "sha256": "890439880fbdf5a5c10188d7af4719d7006685927acf1cb2957101c63b3a6e1e" + }, + { + "classes": 1, + "id": [ + "A", + 515 + ], + "moves": 313, + "sha256": "dae5f8d3891a1a906c68e2da80309fb358307c5c90a7e7677ad15d8fd99d8046" + }, + { + "classes": 1, + "id": [ + "A", + 516 + ], + "moves": 449, + "sha256": "ab8a41d1c0147c4e5b74333c9cc064de2921eea874f01eae017769dc088241ba" + }, + { + "classes": 1, + "id": [ + "A", + 517 + ], + "moves": 315, + "sha256": "b54905dc4ce31391346e257f237d51d5dab0a39aaafb4abf64577d1511c4fb24" + }, + { + "classes": 1, + "id": [ + "A", + 518 + ], + "moves": 231, + "sha256": "579f1dc992f491831c9c477a1191d9d94382ea1574b0efba627a952612a122c5" + }, + { + "classes": 1, + "id": [ + "A", + 519 + ], + "moves": 509, + "sha256": "aa601d1912e353e7082d0e7f788aa5e03cb2940566e2a33138e91e1d19656bf6" + }, + { + "classes": 1, + "id": [ + "A", + 520 + ], + "moves": 72, + "sha256": "84bca932607e341702d379960d90926674d1cb1738f5b542ed648f136bcb6f1e" + }, + { + "classes": 1, + "id": [ + "A", + 521 + ], + "moves": 314, + "sha256": "09d707ac33f47fdc80ffb1da510dbb76c94319bf0d1e01c61df920fed5a227b7" + }, + { + "classes": 1, + "id": [ + "A", + 522 + ], + "moves": 532, + "sha256": "bb80a64b519bd4b55b33f2969a3ee8a80d646805b8aeb6bbf5b09af86557cf56" + }, + { + "classes": 1, + "id": [ + "A", + 523 + ], + "moves": 304, + "sha256": "81ba2f864b74c4b6a98c1a6b173ed516f70666d0bf5e6f60e48becc9cf937dd9" + }, + { + "classes": 1, + "id": [ + "A", + 524 + ], + "moves": 771, + "sha256": "e83cce9db0b9198ccc2e1e09e35def5d12070d7ecf6c446e2dd0bcb93b17f798" + }, + { + "classes": 1, + "id": [ + "A", + 525 + ], + "moves": 317, + "sha256": "dfabee9b95e2c8fbe022d64895018d28e1d71793a78c15bdd9f19c9f51bb69b7" + }, + { + "classes": 1, + "id": [ + "A", + 526 + ], + "moves": 566, + "sha256": "1cac7695acb91052f4bccec9ae55a5b8c5877c093b8a942e979eed4de363ac67" + }, + { + "classes": 1, + "id": [ + "A", + 527 + ], + "moves": 307, + "sha256": "2157b54601485a0392ea52b687d9870ecdfb379be97ad6042c5398f66c794980" + }, + { + "classes": 1, + "id": [ + "A", + 528 + ], + "moves": 316, + "sha256": "ea505db4f276a5c452bf12485ba54efc6ebef42f562b8f552f1a2429faeab14a" + }, + { + "classes": 1, + "id": [ + "A", + 529 + ], + "moves": 309, + "sha256": "28fcaea2f25c9581064d7e1dc72d80ce98dcd7c4f3f917104686c7f8ce734004" + }, + { + "classes": 1, + "id": [ + "A", + 530 + ], + "moves": 295, + "sha256": "484cc47bbfd8c066a32d5687b9d6235e2716e9f1c51c08283f2dd1e739e8204c" + }, + { + "classes": 1, + "id": [ + "A", + 531 + ], + "moves": 490, + "sha256": "6c054b5d276c6af4ad2701c61ef5849b5229234820ff43fb69c82700065543c9" + }, + { + "classes": 1, + "id": [ + "A", + 532 + ], + "moves": 151, + "sha256": "84bd27a11c3f5237071e662d9361cd4167794187c97c258acc0c092e3d2e5233" + }, + { + "classes": 1, + "id": [ + "A", + 533 + ], + "moves": 352, + "sha256": "d024c1f3d39fc6eac6bb54b9fb678b61f698b6ca08f68e07df59ee35709e05b5" + }, + { + "classes": 1, + "id": [ + "A", + 534 + ], + "moves": 432, + "sha256": "60700ea362504aa2d142d2971550dd63206d7baf000d8f555b08b4f6d60e3591" + }, + { + "classes": 1, + "id": [ + "A", + 535 + ], + "moves": 344, + "sha256": "adbee50c258882b9ede241a8a397dda160eef3504def36d36334839513a5fddc" + }, + { + "classes": 1, + "id": [ + "A", + 536 + ], + "moves": 636, + "sha256": "159959dc05dbf7817f7b971abf994023f92ab6141dab508791754bb97b530100" + }, + { + "classes": 1, + "id": [ + "A", + 537 + ], + "moves": 355, + "sha256": "dbe47343167c6c87674336c23aa68625a42b40a97d5284963d5a9bd00c115dcf" + }, + { + "classes": 1, + "id": [ + "A", + 538 + ], + "moves": 696, + "sha256": "b21205b54ebf817405665701076db01a126cc771750e92003cdb01769e6b1d2e" + }, + { + "classes": 1, + "id": [ + "A", + 539 + ], + "moves": 347, + "sha256": "c3b9192ba8d17990b9da7d8bd9af502925084c87ad327e073c69901a47f79df7" + }, + { + "classes": 1, + "id": [ + "A", + 540 + ], + "moves": 408, + "sha256": "d296077cb71c44fbef610fe3f63bc0d1eaa8c12f4823a2df6dcf6c6b6d8b83af" + }, + { + "classes": 1, + "id": [ + "A", + 541 + ], + "moves": 349, + "sha256": "351d953e90a316a68ebed9c7d28d07d8b8e48ffd5b983f81a4e9a5cf2633a062" + }, + { + "classes": 1, + "id": [ + "A", + 542 + ], + "moves": 208, + "sha256": "281a3d5a7cc8d3db4f71fd5f23f75dec18efe5b645aca62f24344a097b38d09c" + }, + { + "classes": 1, + "id": [ + "A", + 543 + ], + "moves": 505, + "sha256": "b7121e631f50fbbbcf3a5290bf237e902555b9b71e20108102f6fd1e13c3a131" + }, + { + "classes": 1, + "id": [ + "A", + 544 + ], + "moves": 94, + "sha256": "4f514c653283b7661033ddfe69d45b495c89cdebe52ce18df399306881e3c464" + }, + { + "classes": 1, + "id": [ + "A", + 545 + ], + "moves": 368, + "sha256": "9dda8a90ec5093766e0ceba56d7c179f4af939c96b24cd7556a79bbca5a81325" + }, + { + "classes": 1, + "id": [ + "A", + 546 + ], + "moves": 464, + "sha256": "5f84ba430ec5cd347e466c4077ff5a4bc5a589a45d2a06f1346b2cda66b328c6" + }, + { + "classes": 1, + "id": [ + "A", + 547 + ], + "moves": 360, + "sha256": "dc95b72bb5c9e4047f764ce2bd563d048154300defc093e50cac6f80fa8e8da9" + }, + { + "classes": 1, + "id": [ + "A", + 548 + ], + "moves": 587, + "sha256": "f87fc5e56f1085863eb453622fc450d540c1c257532a8a98c2c7c22e3fab5e42" + }, + { + "classes": 1, + "id": [ + "A", + 549 + ], + "moves": 371, + "sha256": "6002882dfa46cbb1db2ecd5405648727ad93fc8fd4fd7d20b5064aec794b6976" + }, + { + "classes": 1, + "id": [ + "A", + 550 + ], + "moves": 724, + "sha256": "01a968ebb8249fe7596a8a05babe648fbfa7265577ce8ea66b440799de323dcb" + }, + { + "classes": 1, + "id": [ + "A", + 551 + ], + "moves": 363, + "sha256": "b14e9639e28f23650a0ee66457ccca33594541b47464e7f4f79ef314ea78f18d" + }, + { + "classes": 1, + "id": [ + "A", + 552 + ], + "moves": 355, + "sha256": "a117903608d0cf11645d2835205b966acec966d0bc6bdcb085ab8f6d4d9c4d31" + }, + { + "classes": 1, + "id": [ + "A", + 553 + ], + "moves": 365, + "sha256": "22d5264b176e917da8e4d5e7fa682b2802d65df46eba1fe8855a7d01c2f817e1" + }, + { + "classes": 1, + "id": [ + "A", + 554 + ], + "moves": 234, + "sha256": "a4650a561564938fc76c5697f0a227ddc71f32d594b744ed7646a1437163dd7f" + }, + { + "classes": 1, + "id": [ + "A", + 555 + ], + "moves": 530, + "sha256": "fcad777e2a4f86dd15f7ca1fc01fac76c5da2b74e9e6a44c779475170904abfe" + }, + { + "classes": 1, + "id": [ + "A", + 556 + ], + "moves": 37, + "sha256": "a34427e40782566f0d996478659952a7c7210e1b42b3caba6b984e89ece61106" + }, + { + "classes": 1, + "id": [ + "A", + 557 + ], + "moves": 346, + "sha256": "7fa69f7d133ba3a0b3ccdb73efe1c5cdf9401583810e009dd71c2aaa629b19a3" + }, + { + "classes": 1, + "id": [ + "A", + 558 + ], + "moves": 760, + "sha256": "4761c8a2d7b32b22ed4be157c4d95ec60676b372c095104cde3fd7008a5de95c" + }, + { + "classes": 1, + "id": [ + "A", + 559 + ], + "moves": 337, + "sha256": "63f1165c8efea71b257ca1bcb569e9d6a2a292ded2885fb734a8a78f34564176" + }, + { + "classes": 1, + "id": [ + "A", + 560 + ], + "moves": 512, + "sha256": "0a56a8f7d0fbb12deb020f591124018c63b4a927bd95f74b0600185d108efd74" + }, + { + "classes": 1, + "id": [ + "A", + 561 + ], + "moves": 349, + "sha256": "4c1b7aea0bfae395b34160e5c9c5d0f491c8bb8de94efbb90db96b858b6827ba" + }, + { + "classes": 1, + "id": [ + "A", + 562 + ], + "moves": 304, + "sha256": "f147f61c90b6d9bbcf66fc6d6a015b654bcfe5b925986c982c9f28c8bd79ea89" + }, + { + "classes": 1, + "id": [ + "A", + 563 + ], + "moves": 342, + "sha256": "a6b861e35f36d09097ea95dfa1df91905dbc9f3244c5c0372c560085413c01e2" + }, + { + "classes": 1, + "id": [ + "A", + 564 + ], + "moves": 548, + "sha256": "616999fa217c040245be3b2774b3ab459f95bf56d651118d5ab9ce201b49abd5" + }, + { + "classes": 1, + "id": [ + "A", + 565 + ], + "moves": 343, + "sha256": "1bb5ed100016b3e457552a3a31e5e62dcd114dd01bc634f1031195c64a074d6f" + }, + { + "classes": 1, + "id": [ + "A", + 566 + ], + "moves": 263, + "sha256": "dc808eb1b664ce82c306ad713102f35613455d233b46020a3385cfc6dd080ee6" + }, + { + "classes": 1, + "id": [ + "A", + 567 + ], + "moves": 491, + "sha256": "2b072f0cd5c4bdd1d08d507a152e1817e0b9439203a563bc693341f02246b0b4" + }, + { + "classes": 1, + "id": [ + "A", + 568 + ], + "moves": 201, + "sha256": "e67a8cc00999f708b9fbb5b779b9ef3096769d9dcda2a4b8fed48d14653554c8" + }, + { + "classes": 1, + "id": [ + "A", + 569 + ], + "moves": 406, + "sha256": "40286c87f98e98b54f3d03fab7a9b189b2758c1a6c4ea6beeb52cbf68475b22b" + }, + { + "classes": 1, + "id": [ + "A", + 570 + ], + "moves": 585, + "sha256": "505b9a001e441980f6f0294eebacf1f81170071055592019b87a83788c93a0a2" + }, + { + "classes": 1, + "id": [ + "A", + 571 + ], + "moves": 398, + "sha256": "e3cfab56bac961da246861f7cceedc2f5a825d559abd4fa57f41c560ccdbb041" + }, + { + "classes": 1, + "id": [ + "A", + 572 + ], + "moves": 336, + "sha256": "f268cad641133440acea03641dbefe1e7045d122d0cb277a426a7220169be17d" + }, + { + "classes": 1, + "id": [ + "A", + 573 + ], + "moves": 409, + "sha256": "77a55856ddd0188f94de04b735ddbf7b1ecf973ed0008960d0784ba442e47963" + }, + { + "classes": 1, + "id": [ + "A", + 574 + ], + "moves": 437, + "sha256": "f4d784b2b914c17388cada22beb00672d3986ac3e6ec783a7c19575109c3b9b8" + }, + { + "classes": 1, + "id": [ + "A", + 575 + ], + "moves": 401, + "sha256": "5407dcfa62eb42d94191579f0972c92ac7a85a5dc4e36a9728e5612c2c51f5f2" + }, + { + "classes": 1, + "id": [ + "A", + 576 + ], + "moves": 679, + "sha256": "ac371ee1fd6d45ddd91dc5f4375ca1601f35637c388b3a5ab2aa2586fc859a4d" + }, + { + "classes": 1, + "id": [ + "A", + 577 + ], + "moves": 403, + "sha256": "8d5a79dd801a8c21e81bc7a6631bbc803f1f2048bce3a48b09d56397e0ee6dcf" + }, + { + "classes": 1, + "id": [ + "A", + 578 + ], + "moves": 85, + "sha256": "39dfceb9c85e601e44c078163e7f47d28840140e2ef3b3aa1e4e00ad2f8af95e" + }, + { + "classes": 1, + "id": [ + "A", + 579 + ], + "moves": 488, + "sha256": "f0a8d8bc397948bbedd6d437d9c82b867108624e232a16410e65f018f81a5caa" + }, + { + "classes": 1, + "id": [ + "A", + 580 + ], + "moves": 147, + "sha256": "4aa767322b3ad461a432166690e80abb5b5cec0b34d5ee44383c0bbac4e228fd" + }, + { + "classes": 1, + "id": [ + "A", + 581 + ], + "moves": 434, + "sha256": "9907310da549704a1e59671d86cf12c402b9773efd2292be8dca5a659d7057a3" + }, + { + "classes": 1, + "id": [ + "A", + 582 + ], + "moves": 591, + "sha256": "c41e74053742ea5f98d32acdbe380de75b0ba9de5d8fc3f359ac056ab08e9b6a" + }, + { + "classes": 1, + "id": [ + "A", + 583 + ], + "moves": 426, + "sha256": "7c0cd9fc554c87500661abb02f305ec673fa8fe78022927cdc96085d76f8c269" + }, + { + "classes": 1, + "id": [ + "A", + 584 + ], + "moves": 345, + "sha256": "7347885143223f7c008f120f2acdda446d178fc08c82767abbc66653c8f2aa5e" + }, + { + "classes": 1, + "id": [ + "A", + 585 + ], + "moves": 437, + "sha256": "63b716d8cb85558595c15e8544acc4d3a1cd3e9c25828fccf1ae6b8f09c7b048" + }, + { + "classes": 1, + "id": [ + "A", + 586 + ], + "moves": 401, + "sha256": "67e7cf35f1a5a33ba2a18324c76bce6716aa1598ba6086ae25e31b00e1f08228" + }, + { + "classes": 1, + "id": [ + "A", + 587 + ], + "moves": 429, + "sha256": "c8284eda5c29309c236bfc449587283010111b1b6bfc3d39b228583f88bb9fdb" + }, + { + "classes": 1, + "id": [ + "A", + 588 + ], + "moves": 647, + "sha256": "2799915f19ab2f898332816eb7dc1e26420f97d969611dbded0a08deb48f180b" + }, + { + "classes": 1, + "id": [ + "A", + 589 + ], + "moves": 431, + "sha256": "118ef15e386ac1c4a814050832510a53fd327359182eeecdc4e00e70e1f01f5e" + }, + { + "classes": 1, + "id": [ + "A", + 590 + ], + "moves": 112, + "sha256": "122b43244cf580de1cec4e7015dc7ab9c8454facc7ed8fb36802fe3172234e18" + }, + { + "classes": 6, + "id": [ + "A", + 591 + ], + "moves": 292, + "sha256": "eead828b5124979760e308a7f779cf74a8213f76149cf96938bae538146b1a41" + }, + { + "classes": 6, + "id": [ + "A", + 592 + ], + "moves": 222, + "sha256": "51325fe8d5f18fe14380a9c1b9386264f095833bc2f57fed74e8f03583395089" + }, + { + "classes": 6, + "id": [ + "A", + 593 + ], + "moves": 151, + "sha256": "4ff708b95695d0a8fe57029351bca3fc7fd2d2204408cc141b8b82ce9c13907c" + }, + { + "classes": 8, + "id": [ + "A", + 594 + ], + "moves": 80, + "sha256": "7cadea3933413539c25aa049b884160b1a918da009c28027e8b2c9bc4f3448d9" + }, + { + "classes": 6, + "id": [ + "A", + 595 + ], + "moves": 292, + "sha256": "0cbb9193ad9221958928c5599af3935f8b8626e867a959ae92fdebbd3a99813b" + }, + { + "classes": 6, + "id": [ + "A", + 596 + ], + "moves": 223, + "sha256": "ae69ca5105ca9be6db2b5385435ac8aa0694d5770014b1eef9863fcc057418b8" + }, + { + "classes": 6, + "id": [ + "A", + 597 + ], + "moves": 153, + "sha256": "eb1efed82543c930efe7288450c64c242008086f8a491753475f2da6414b5182" + }, + { + "classes": 8, + "id": [ + "A", + 598 + ], + "moves": 83, + "sha256": "5c5ee14150c484cc8389c2ef258afc161e5b4c71c3f88f9db71cee0f98e08b47" + }, + { + "classes": 3, + "id": [ + "A", + 599 + ], + "moves": 4, + "sha256": "be5fd88604ed85768f9490fe6bc1766cb99034d67971431a980a7837970057d7" + }, + { + "classes": 3, + "id": [ + "A", + 600 + ], + "moves": 5, + "sha256": "a97443556bc84ba18602d0a15592e5a45c08c0c94f2467027e3491948b40b6b1" + }, + { + "classes": 2, + "id": [ + "A", + 601 + ], + "moves": 2, + "sha256": "9f5b55b2fa035618176791586c5608e9da143dea09525c706750077183b54c23" + }, + { + "classes": 1, + "id": [ + "A", + 602 + ], + "moves": 1, + "sha256": "ac78baab4a6c3d4ba43f5beb839f14fdc8fab7c429e70a8642b351efd211f39d" + }, + { + "classes": 6, + "id": [ + "A", + 603 + ], + "moves": 1220, + "sha256": "7626d1b4cf783e73fd502ba7de6d8a6bb175d02cebfe7940e772bc80495c5956" + }, + { + "classes": 6, + "id": [ + "A", + 604 + ], + "moves": 1202, + "sha256": "6eb3807fb941e10151e009796ecd7e46b80e779e38607183b1f633efb7c75f63" + }, + { + "classes": 3, + "id": [ + "A", + 605 + ], + "moves": 6, + "sha256": "731dbec3dcc457b08ad0d8881db43828a021ce8be4baebcabaa1049ad5df1ea4" + }, + { + "classes": 3, + "id": [ + "A", + 606 + ], + "moves": 3, + "sha256": "e8148077cee7e11bed23350ca98bd2c1e2ee0c85e577bc2d765939c5ae6782bb" + }, + { + "classes": 4, + "id": [ + "A", + 607 + ], + "moves": 1216, + "sha256": "9e171c3109d09d923631014c0650e123cbda1c2cd003ad01bb0ad8dd9e6b6ccf" + }, + { + "classes": 4, + "id": [ + "A", + 608 + ], + "moves": 1198, + "sha256": "bfc13b4feae4d410d6827d2458e6d21230491d0659b9524794a3615412f7abf2" + }, + { + "classes": 4, + "id": [ + "A", + 609 + ], + "moves": 5, + "sha256": "71b7fa0649ed826ae441b62aff2e715d0d7861069e06abd1a17b5710718a4574" + }, + { + "classes": 5, + "id": [ + "A", + 610 + ], + "moves": 1217, + "sha256": "aa9cbb4d2b746075c9990b0aeb7b3e9ae510daa720ff99386b4680d3b7f581a7" + }, + { + "classes": 4, + "id": [ + "A", + 611 + ], + "moves": 1199, + "sha256": "00b517481e166a59e6b34ca90a310637624888877d5f35cbacc4af9bf755652a" + }, + { + "classes": 3, + "id": [ + "A", + 612 + ], + "moves": 6, + "sha256": "38a2caada59fee51788bee8ccb616e0b4f5dc1e1b2461fc8dd194f0bfc2b4461" + }, + { + "classes": 1, + "id": [ + "A", + 613 + ], + "moves": 1210, + "sha256": "b4ed4243fd8c3cc5d80b2de4de594082a189826d2adcaed93095cbc333ec73d8" + }, + { + "classes": 2, + "id": [ + "A", + 614 + ], + "moves": 1192, + "sha256": "87bd8c2ff0fa5e31214913a0277af44139d662394a7eb14262fc78ba32051c8b" + }, + { + "classes": 6, + "id": [ + "A", + 615 + ], + "moves": 548, + "sha256": "1ff1b86871b2138b433e01e4e6a32d59d4d97476fb2e9a0f0c304a1bd1583803" + }, + { + "classes": 5, + "id": [ + "A", + 616 + ], + "moves": 484, + "sha256": "c0cb67925c4dfcb4b0d5e9205f93086a9925dea901bacfda9bbc40db731905bd" + }, + { + "classes": 6, + "id": [ + "A", + 617 + ], + "moves": 411, + "sha256": "13a7132d9eb097a096780445f0b8cb087858f2f2f193b4c49b168f3b31af682b" + }, + { + "classes": 7, + "id": [ + "A", + 618 + ], + "moves": 346, + "sha256": "a6c4e8b714beb86fd3eaa857b4a841f2becb4bc0d9b4fc1f6bdf5a7010a69304" + }, + { + "classes": 3, + "id": [ + "A", + 619 + ], + "moves": 276, + "sha256": "b0434521ab5fb8bca8abae288ea8cfba38e37feb5a14c7cb1a01051d35a7a65a" + }, + { + "classes": 4, + "id": [ + "A", + 620 + ], + "moves": 209, + "sha256": "c834d491b0c37185dca522721dd6d4a127aee594717e6a7301b8bf895357fcaf" + }, + { + "classes": 3, + "id": [ + "A", + 621 + ], + "moves": 6, + "sha256": "1a8119b929fc2e724bc633685aab36b9f793050bf28ca6eadcab10f1dcfd2f39" + }, + { + "classes": 3, + "id": [ + "A", + 622 + ], + "moves": 3, + "sha256": "042e85c6a1c3c502595b8c220084b25dcb1a0bea39346a59a38bdbaf3ece90f4" + }, + { + "classes": 3, + "id": [ + "A", + 623 + ], + "moves": 4, + "sha256": "5bce790f14222b7c9c27f3ab66ac6619284148910f9e92715f03172c5dfee164" + }, + { + "classes": 1, + "id": [ + "A", + 624 + ], + "moves": 1, + "sha256": "cea3a82978f6df2882fdf4fa2c17aef4d0120787668b366de5ff01b82a41697b" + }, + { + "classes": 5, + "id": [ + "A", + 625 + ], + "moves": 1203, + "sha256": "b618b08f9462d54a1d9a35dfbd1b023e0fcef53ebaecca60dced37b9d0886c30" + }, + { + "classes": 4, + "id": [ + "A", + 626 + ], + "moves": 9, + "sha256": "ccafffc91db05f1d1b68a69e3450a49c7fe5970ea0eb688eec1f736a17d921a9" + }, + { + "classes": 5, + "id": [ + "A", + 627 + ], + "moves": 1180, + "sha256": "96347e73badfc51c4cb37beaa99c5bf5ef0ae8021223e19b29d70a13dc1b598f" + }, + { + "classes": 8, + "id": [ + "A", + 628 + ], + "moves": 1205, + "sha256": "f2b4fcf29a763f6ff57e722e307691483acb819b1d13553bde782671716dbf7e" + }, + { + "classes": 6, + "id": [ + "A", + 629 + ], + "moves": 11, + "sha256": "12f9f8afbaf7ef3ef8f8533ca1b72aec9c33fe4feab4079316a98d187e8a38e4" + }, + { + "classes": 6, + "id": [ + "A", + 630 + ], + "moves": 1181, + "sha256": "bb9a24da0ee4c12996ab04040cb2504ea499d635acbc49c4c481c3483f038cf9" + }, + { + "classes": 4, + "id": [ + "A", + 631 + ], + "moves": 8, + "sha256": "2a1369866a1679df576cef9fae18af88994caa66ee730d2db67c9483f72b3ab0" + }, + { + "classes": 3, + "id": [ + "A", + 632 + ], + "moves": 1196, + "sha256": "0661d04500aa7b06f425dd58ef5eecce1b5ed0c8a6f6a9541abf965231b83c57" + }, + { + "classes": 2, + "id": [ + "A", + 633 + ], + "moves": 2, + "sha256": "8f88ed8f9dae4c66062ae364dde7b31be4470c531564d3b6a52b9f94ef1bd9c1" + }, + { + "classes": 3, + "id": [ + "A", + 634 + ], + "moves": 1173, + "sha256": "8a649ca79ae7d9ff93eef4a77c4c6162257b0644eee4447bdf79754c043569da" + }, + { + "classes": 1, + "id": [ + "A", + 635 + ], + "moves": 1194, + "sha256": "32d08fca0a2c38981d92bf6d52c77271ff19e6496deb33e01fe9f5dbf64ea02d" + }, + { + "classes": 6, + "id": [ + "A", + 636 + ], + "moves": 588, + "sha256": "f97199d36bffd51cad72a6a3c7209f74f68a3424019a283a427fe03445b5f87a" + }, + { + "classes": 5, + "id": [ + "A", + 637 + ], + "moves": 450, + "sha256": "b813cc6e509b676cbc6e2a8ee8b74d5d2702f4ead51545c3b51b332ec8fc463f" + }, + { + "classes": 7, + "id": [ + "A", + 638 + ], + "moves": 290, + "sha256": "406a9a066059f04f18c25a572ff6ac9783d6ff2764e5a917b05876917bfd00db" + }, + { + "classes": 9, + "id": [ + "A", + 639 + ], + "moves": 195, + "sha256": "c4527799e72b7314d6a042c8f1410c0c61444e34af2c900d66d58a8fba5e3a07" + }, + { + "classes": 5, + "id": [ + "A", + 640 + ], + "moves": 297, + "sha256": "8e5fa81905df5b5a1b243c2cded5033ef252dfab9efc9bdcf5b0a65848610aff" + }, + { + "classes": 4, + "id": [ + "A", + 641 + ], + "moves": 229, + "sha256": "caee1347f1a57c7c36207ae9e7ff774665829fecfb51530314349f28c90481a2" + }, + { + "classes": 6, + "id": [ + "A", + 642 + ], + "moves": 150, + "sha256": "e1f9170cab167329ab9177f6d007fa3b073c7bbd8bc27d3aa89c4093fbde5d44" + }, + { + "classes": 8, + "id": [ + "A", + 643 + ], + "moves": 103, + "sha256": "7aeb0c54c3865050641c8ce5cbe71d9d426acabf7d959f8f70f44c3c8f4306b0" + }, + { + "classes": 4, + "id": [ + "A", + 644 + ], + "moves": 6, + "sha256": "c1907af55a44e80acf2b071a299677a2e2c8c8ccf8feb23fd821dbbc3c70801f" + }, + { + "classes": 5, + "id": [ + "A", + 645 + ], + "moves": 7, + "sha256": "2462cf50d8ceb0e12be303090ccfdce054077b422e604a18aeac4011f46d8260" + }, + { + "classes": 4, + "id": [ + "A", + 646 + ], + "moves": 5, + "sha256": "51163e9fc9907e724adc04f3c5963338c09ca9e9293d5dbdb2ed3e1cc5c0b4a3" + }, + { + "classes": 4, + "id": [ + "A", + 647 + ], + "moves": 6, + "sha256": "ae753dbda29179c942e9cc4e82109ef56214e790967b6d11aaf3cbc8b37965cc" + }, + { + "classes": 1, + "id": [ + "A", + 648 + ], + "moves": 1, + "sha256": "8673495d89987e939f12f8e736371ec8c5da54fb89f7230ae6092b4476aa23ff" + }, + { + "classes": 7, + "id": [ + "A", + 649 + ], + "moves": 1157, + "sha256": "2bb76ca8e5d330a990a0083baf83375cced5dd5b44b38868c7bc677e0e1c6512" + }, + { + "classes": 7, + "id": [ + "A", + 650 + ], + "moves": 1178, + "sha256": "d51a48f00bf8563f1e6ee43b0219ab121d4ec19a71c2faf73fa22cc9bf3ed438" + }, + { + "classes": 5, + "id": [ + "A", + 651 + ], + "moves": 9, + "sha256": "e62f556212db73e340a80070679cf25e24dac8160c82ed717ca62d201b8b4550" + }, + { + "classes": 4, + "id": [ + "A", + 652 + ], + "moves": 6, + "sha256": "edc9dc5b30e54d871ad2fc929a854b9cec5baf324582e257fb1e743597c188f9" + }, + { + "classes": 4, + "id": [ + "A", + 653 + ], + "moves": 4, + "sha256": "f9ef36d77d2c90001dbaf16fb0a4b5d387564da8180abc9611cbf3573472b4cd" + }, + { + "classes": 3, + "id": [ + "A", + 654 + ], + "moves": 1152, + "sha256": "298dd28d66177114832e34c0b8418f6e0dc73c9ef1e3d36e50faf1b1ebb29735" + }, + { + "classes": 4, + "id": [ + "A", + 655 + ], + "moves": 1173, + "sha256": "8272adb62eaf029fcd1ec469a2af4de9d49f6822d11ee17ad893626953c67735" + }, + { + "classes": 5, + "id": [ + "A", + 656 + ], + "moves": 1153, + "sha256": "181530c13387490d3d018b505aeb58de3485d97fc6373df34750f56edf435a30" + }, + { + "classes": 4, + "id": [ + "A", + 657 + ], + "moves": 1174, + "sha256": "9e5e2617841baeae49a206485aae629bae5dc32aa983a73ed0eed90f333e8f28" + }, + { + "classes": 2, + "id": [ + "A", + 658 + ], + "moves": 5, + "sha256": "32e1f9d5dbe1adc52e1f6a913ae90efa0d379a3fe25651aac707fd9de0ce1b37" + }, + { + "classes": 1, + "id": [ + "A", + 659 + ], + "moves": 1147, + "sha256": "37b7ad501d1f7f9af590499268430a71113fe38f83915dd2cfdb867e9757d3bd" + }, + { + "classes": 2, + "id": [ + "A", + 660 + ], + "moves": 1168, + "sha256": "93b7e3787684bbbb8879c3abe829f651cb7b3363aca77219cd99cae918801f22" + }, + { + "classes": 6, + "id": [ + "A", + 661 + ], + "moves": 663, + "sha256": "2a7f9a34324a5b64e471fd07a3a3549a1979e3f61782b818338172fb09fec65c" + }, + { + "classes": 5, + "id": [ + "A", + 662 + ], + "moves": 527, + "sha256": "10dc248781ec765dca249979d620dcfdcc4ac93059e2da45ea517571ad98e65c" + }, + { + "classes": 5, + "id": [ + "A", + 663 + ], + "moves": 364, + "sha256": "5c6dd147ca5e071bd036a2324c26c430fe39ecc517dc6b9160532cd54161a1b7" + }, + { + "classes": 7, + "id": [ + "A", + 664 + ], + "moves": 173, + "sha256": "769664ae6024673204b8737e5192cb099c356bd47afb7eb1921d09c509fbc85b" + }, + { + "classes": 3, + "id": [ + "A", + 665 + ], + "moves": 663, + "sha256": "f9cfc8f204eff523ada5db59004a04c3a919ad1fe8a1907a0622d2aa14e3bd4c" + }, + { + "classes": 2, + "id": [ + "A", + 666 + ], + "moves": 5, + "sha256": "b714f0a9504719c6460926c6000bd393d0a719f82c1c9c4fda804131a6e26a29" + }, + { + "classes": 2, + "id": [ + "A", + 667 + ], + "moves": 2, + "sha256": "0c2463bec955a96cad9c60bbedf8ece3533e2f6ce32c9373bc32cbb2319fcd78" + }, + { + "classes": 3, + "id": [ + "A", + 668 + ], + "moves": 3, + "sha256": "ccc0499f466d7b102b60e1b250349a5cd787dce9501876c39be7cbfbd650d27b" + }, + { + "classes": 1, + "id": [ + "A", + 669 + ], + "moves": 1, + "sha256": "127a67621970a9c545dd267be49e634a53aebb6371fd2029f066a61fd2f53260" + }, + { + "classes": 6, + "id": [ + "A", + 670 + ], + "moves": 1154, + "sha256": "e260a86e45ca18152bdfa743a42d44f56c33feac5c502dae13a8bad354e6a197" + }, + { + "classes": 5, + "id": [ + "A", + 671 + ], + "moves": 9, + "sha256": "be14c4446467f67e999e83141ffddec0d223d620b52610caea1c3bc6aea23f34" + }, + { + "classes": 5, + "id": [ + "A", + 672 + ], + "moves": 1136, + "sha256": "1f8d2f7fa5888a92e5307b2f769d350bb333558c7b237e3ca23c5e1dc41d1ffb" + }, + { + "classes": 4, + "id": [ + "A", + 673 + ], + "moves": 6, + "sha256": "81448115a122fc694be2182d1046115bc48a4613462a218a1236bd7c67a3838e" + }, + { + "classes": 7, + "id": [ + "A", + 674 + ], + "moves": 1156, + "sha256": "6be00f105b687f387a332c4889c336b445677e46e7986f8feb72b9257beee261" + }, + { + "classes": 5, + "id": [ + "A", + 675 + ], + "moves": 11, + "sha256": "449a30b65cf16bda5eca188dd0d8bb19aa67885b57fec33cb5af15f3e8610779" + }, + { + "classes": 6, + "id": [ + "A", + 676 + ], + "moves": 1137, + "sha256": "8fe0e322fd9b81976f2104c484209a4d2947f25c5f6cdfdf74947c3816c53b82" + }, + { + "classes": 5, + "id": [ + "A", + 677 + ], + "moves": 1150, + "sha256": "024dcd4cd54f1578ed0383253ec5efd3573b40a22e7841bf0af0f1c65fb6b62e" + }, + { + "classes": 3, + "id": [ + "A", + 678 + ], + "moves": 5, + "sha256": "d22d4e5ef9775672e976c9996ec4eaebace7c0baec132acc9499e4b1aa80dd71" + }, + { + "classes": 4, + "id": [ + "A", + 679 + ], + "moves": 1132, + "sha256": "d978e5b9f3cf67ad8807f6d873d2aa81778ff2d71721f58279a5375b27e91d47" + }, + { + "classes": 1, + "id": [ + "A", + 680 + ], + "moves": 1145, + "sha256": "4ce38580c21e2d8e474d368eb560bc7bfeded08fb7c40c16ab9f5dbb6696d5b3" + }, + { + "classes": 5, + "id": [ + "A", + 681 + ], + "moves": 375, + "sha256": "f497dc62f764e224ee1be254e0d7425fdcb666080e63b7d211af11a6387b01e2" + }, + { + "classes": 4, + "id": [ + "A", + 682 + ], + "moves": 308, + "sha256": "1c823cd9b01a6fd2f285c44ff69df74832d2b7917f5a49cf6653d7758f008e73" + }, + { + "classes": 4, + "id": [ + "A", + 683 + ], + "moves": 179, + "sha256": "76b474921436f1889839c72a4cb515e3591cf40db6756379610fda77dd1626c5" + }, + { + "classes": 5, + "id": [ + "A", + 684 + ], + "moves": 155, + "sha256": "f9fc0b6f6fa1949f37e99adc92843a3ac02fd5dac1358dcac6864bdda48d3376" + }, + { + "classes": 3, + "id": [ + "A", + 685 + ], + "moves": 747, + "sha256": "67399742f780c5cd0209e639dc4f78ecbe6e12d79fb2c13efc2392f8b5120715" + }, + { + "classes": 2, + "id": [ + "A", + 686 + ], + "moves": 4, + "sha256": "397afc3c043d3aec5de61834e993cbaf31ec3ac765071b4b5cd4c1739b991f85" + }, + { + "classes": 2, + "id": [ + "A", + 687 + ], + "moves": 4, + "sha256": "e00cb7fff90c18458dd62224613e78dd5680b51d6f49545e9885641216a3ef31" + }, + { + "classes": 2, + "id": [ + "A", + 688 + ], + "moves": 2, + "sha256": "196ebe5ced8e1abed0b29b498a00c8f298fa1d3863c084b0ce8e5530400855a6" + }, + { + "classes": 6, + "id": [ + "A", + 689 + ], + "moves": 1118, + "sha256": "389e2ea9dc7dde4ecb0cc43b6eee111fe0d0c94fa98546ad3daeefa463ea483e" + }, + { + "classes": 5, + "id": [ + "A", + 690 + ], + "moves": 9, + "sha256": "d92711e49ed936762a953c36acdd374cf4f2f72822c20fe79ad4df20fff2c335" + }, + { + "classes": 4, + "id": [ + "A", + 691 + ], + "moves": 1137, + "sha256": "d2294b893bfe9e62df2b62f7ac3c3bf6c77b9b85918aa6399e4dab9b7d822292" + }, + { + "classes": 5, + "id": [ + "A", + 692 + ], + "moves": 7, + "sha256": "4cdb9ce8dbfc915aed5cb3980d4323cd5b2b3e840327eb2134d3a4ee6ef34180" + }, + { + "classes": 7, + "id": [ + "A", + 693 + ], + "moves": 1119, + "sha256": "09db6019a3693cb69ff9aa397527f8e65c1d50577ae52870880b2deb5b26fb82" + }, + { + "classes": 5, + "id": [ + "A", + 694 + ], + "moves": 10, + "sha256": "66fb56dfde3aa0d644320f9e0e8b5a65604d7319a50a159ca679da7c8d6cfa42" + }, + { + "classes": 4, + "id": [ + "A", + 695 + ], + "moves": 1137, + "sha256": "a019753dcaab4696f992f3737d39d075156a882975ac9f313d68a9b344049001" + }, + { + "classes": 4, + "id": [ + "A", + 696 + ], + "moves": 8, + "sha256": "9625b72fe419f29109fbe4497b9fa8e185aca30f785449b055e1b715a005bbb4" + }, + { + "classes": 2, + "id": [ + "A", + 697 + ], + "moves": 1110, + "sha256": "b1790e302af47fdf6449b292838a13c8d144e99c99123852574873abbefd9e61" + }, + { + "classes": 1, + "id": [ + "A", + 698 + ], + "moves": 1, + "sha256": "59504929de737d68e8d559b63d05fb41b27c034ebcb3cca1871117efe5aed923" + }, + { + "classes": 1, + "id": [ + "A", + 699 + ], + "moves": 1108, + "sha256": "0523d600e925d3e71298bcc11337bd643bfc6beb1628dfd2bab37beb8d2e80ce" + }, + { + "classes": 6, + "id": [ + "A", + 700 + ], + "moves": 674, + "sha256": "557b09d81b4279f5a754998eec267bf236d524e528ab1666ea4182963da8afb3" + }, + { + "classes": 4, + "id": [ + "A", + 701 + ], + "moves": 273, + "sha256": "aeb3b97de17c0bba2643c60b6701a8ce215ad0810b2928e4bdd65cd95a50c47b" + }, + { + "classes": 6, + "id": [ + "A", + 702 + ], + "moves": 240, + "sha256": "39b7285286a4cb2ddf5920c93dc43ccb4353f0e06b231754fdba7734f2764930" + }, + { + "classes": 8, + "id": [ + "A", + 703 + ], + "moves": 121, + "sha256": "c133ba1fcf4f0dccf94817bc62441ab02c830ad2127f123a3aa3723443baab0c" + }, + { + "classes": 6, + "id": [ + "A", + 704 + ], + "moves": 674, + "sha256": "585da065b66cc21906fe194f6d8f6a7ee93f7fdfc5bf1a1b953854a5d8f85f1c" + }, + { + "classes": 4, + "id": [ + "A", + 705 + ], + "moves": 273, + "sha256": "d11c3b76d3d63581d8413129a6a53de9d7414586a93e0156d0fe8c4bda6051c8" + }, + { + "classes": 6, + "id": [ + "A", + 706 + ], + "moves": 240, + "sha256": "8809547fa92c46627d15d72cc643ec3ba13a6d6cc89445119fecea6819030337" + }, + { + "classes": 8, + "id": [ + "A", + 707 + ], + "moves": 121, + "sha256": "f0e06683a0a9f49aac11beed8cfaefc93265ebf03445d0264db3479733a80c59" + }, + { + "classes": 4, + "id": [ + "A", + 708 + ], + "moves": 6, + "sha256": "dbc9eb51f01e564d7828ac6a40097f8074f23e5ec02a01c550ed701de375c14e" + }, + { + "classes": 5, + "id": [ + "A", + 709 + ], + "moves": 7, + "sha256": "1819ca79e7a42056cff1f5df89cddbd142d014737a668ed0c014186a6621280e" + }, + { + "classes": 4, + "id": [ + "A", + 710 + ], + "moves": 5, + "sha256": "ee94aa53fed04e7f2c3f776c217a78fed0e99eeac5ad022109d1dfc8b6038cdd" + }, + { + "classes": 4, + "id": [ + "A", + 711 + ], + "moves": 6, + "sha256": "8b7af586e4d80e498a65561a43260ee5ffc1669fe3041656f7377d774ef7ddce" + }, + { + "classes": 1, + "id": [ + "A", + 712 + ], + "moves": 1, + "sha256": "bd70fe93fe526ccdfc3d2d90311cea8c0c27b9b49c1e16f3b1779fa5d7266275" + }, + { + "classes": 7, + "id": [ + "A", + 713 + ], + "moves": 1094, + "sha256": "85a0740114b2134165ba12d3077b9b64497f40c788b19cafdf2b3974e27ce524" + }, + { + "classes": 7, + "id": [ + "A", + 714 + ], + "moves": 1112, + "sha256": "cdc8f55c31c9ceec397437b195096096b2914537179aff7a66517d72481f4065" + }, + { + "classes": 5, + "id": [ + "A", + 715 + ], + "moves": 9, + "sha256": "b27e7ec8ceb0cbfb5097b28f7f2bc67fea63b41ddd77d11f6ffd0b48832e9c13" + }, + { + "classes": 4, + "id": [ + "A", + 716 + ], + "moves": 6, + "sha256": "241976842e6759e6901c6b836b32183aa3c6372b6e614cb0756e8a3e733be972" + }, + { + "classes": 4, + "id": [ + "A", + 717 + ], + "moves": 4, + "sha256": "e8682b6a227e2fa651b197a8f5201fd1238f726fff0a805adcd7fc05dabae69c" + }, + { + "classes": 3, + "id": [ + "A", + 718 + ], + "moves": 1089, + "sha256": "cdc04fb33fae4911d54db8d7a053890c713b2b94a2e2f49cbc67d0aa1d1e4bbc" + }, + { + "classes": 4, + "id": [ + "A", + 719 + ], + "moves": 1107, + "sha256": "b007438dea64536167246f9843bf1ed807b2cb9d64d26febeeb1ba1421c5f87f" + }, + { + "classes": 5, + "id": [ + "A", + 720 + ], + "moves": 1090, + "sha256": "c4bac1002db596954560948d6bdaeab303f267dc9b6fc9014b8bad31c7ddc556" + }, + { + "classes": 4, + "id": [ + "A", + 721 + ], + "moves": 1108, + "sha256": "a491e3436946f2cbb0484a5c92cddda3f93b8d6fece5ec62260071663968429d" + }, + { + "classes": 2, + "id": [ + "A", + 722 + ], + "moves": 5, + "sha256": "de054fe66115a97f2c5bd4edc14efe4ae750e8a56f55cd1d3308748475ea1392" + }, + { + "classes": 1, + "id": [ + "A", + 723 + ], + "moves": 1084, + "sha256": "de3973b1fadacb9c2d0f597e74faff8cbdef83180621881f7ffb00c7b98687f7" + }, + { + "classes": 2, + "id": [ + "A", + 724 + ], + "moves": 1102, + "sha256": "baf7b87fdf123843509ca9614a78242892858d07a79c4bcf3be7b3ca7d859f3c" + }, + { + "classes": 6, + "id": [ + "A", + 725 + ], + "moves": 742, + "sha256": "cc5cb7b8db3f9c3354801e83f5f0162dd4c0f91a207912be696db07a7c1263cd" + }, + { + "classes": 5, + "id": [ + "A", + 726 + ], + "moves": 608, + "sha256": "60e171a093b7ddf547c53f1f6648f25614a047203c16abd96727ee13afdffb7c" + }, + { + "classes": 7, + "id": [ + "A", + 727 + ], + "moves": 539, + "sha256": "ce6c9c62ce8f71d5373c15e6dee42ebfd1d7be487a2ec3cdaca17ed1c94de471" + }, + { + "classes": 8, + "id": [ + "A", + 728 + ], + "moves": 300, + "sha256": "b3853f52a830f13581007ea91475234a4716c9a871db74ddce0b0b706ae3d490" + }, + { + "classes": 6, + "id": [ + "A", + 729 + ], + "moves": 742, + "sha256": "2c2cfd17ceb40a19bbe63fe691f147cf5999b6b09f3f25ce04177abbd26140d2" + }, + { + "classes": 5, + "id": [ + "A", + 730 + ], + "moves": 609, + "sha256": "22e8cf0d9c638c855ff9045bec19357ced90736aa77d463a530e1121947d86b7" + }, + { + "classes": 7, + "id": [ + "A", + 731 + ], + "moves": 541, + "sha256": "3041bd563afefb01684bdcb88a3e76cbef43110e0d7dbb583d0c18cf426fc341" + }, + { + "classes": 8, + "id": [ + "A", + 732 + ], + "moves": 303, + "sha256": "3b1e31da4164abb9d34ba9e4fe3ffd2444c8705e3bda9d8c86ff21e6e0f5dc00" + }, + { + "classes": 4, + "id": [ + "A", + 733 + ], + "moves": 5, + "sha256": "2de812c17e2170243c0d7b8fe4f4718ea66b9c5f98f9fa1a007373ef41c908d1" + }, + { + "classes": 4, + "id": [ + "A", + 734 + ], + "moves": 6, + "sha256": "473530f11c57b3ca910513047146fbc494ce189e279d8650d05c05322a4d82ab" + }, + { + "classes": 3, + "id": [ + "A", + 735 + ], + "moves": 4, + "sha256": "aa6d791fa96f7190820bd10d7071cbec3a46009da478e8e17a5db45af1349d18" + }, + { + "classes": 0, + "id": [ + "A", + 736 + ], + "moves": 0, + "sha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945" + }, + { + "classes": 6, + "id": [ + "A", + 737 + ], + "moves": 1089, + "sha256": "cfbdad61878df58b06de67a5dd5d5855f3d98786aad31a7ec4736fa0f3ea3e64" + }, + { + "classes": 6, + "id": [ + "A", + 738 + ], + "moves": 1071, + "sha256": "ad50cdc1c8cf8d1eb1ad03a76f531610a23f2c1118649ed07976fe9a47b3fdcf" + }, + { + "classes": 4, + "id": [ + "A", + 739 + ], + "moves": 8, + "sha256": "d1daa447bf412511f19ac6de23c284381c0d8ece2fec7e3e9e1984d921a17da2" + }, + { + "classes": 4, + "id": [ + "A", + 740 + ], + "moves": 5, + "sha256": "499776cacfcc1ffe150f47cc56a06a59625d15be3fad49b35b314dd372f6bc89" + }, + { + "classes": 6, + "id": [ + "A", + 741 + ], + "moves": 1090, + "sha256": "ec2d0f22307bf8024cd6fca4116634793dde24e4d523167d7dd3b5c11e37f363" + }, + { + "classes": 6, + "id": [ + "A", + 742 + ], + "moves": 1072, + "sha256": "1d60aca12c5fc81e591b70e8396a17397dfab70a36c424f7acb896a5f05c5cf1" + }, + { + "classes": 5, + "id": [ + "A", + 743 + ], + "moves": 1085, + "sha256": "63ff80dfeea9b2ce63debb777a3700930c9add847933f8fdea14db9c1e568a6e" + }, + { + "classes": 4, + "id": [ + "A", + 744 + ], + "moves": 1067, + "sha256": "573f9507163e943b36f8a6b0e5d4826955c3e89d9b5a52355c4f9227fa87c299" + }, + { + "classes": 2, + "id": [ + "A", + 745 + ], + "moves": 4, + "sha256": "a057a296997707cadb615df3998beada5a9b3d8bfcadad0481345003ed9be1c5" + }, + { + "classes": 1, + "id": [ + "A", + 746 + ], + "moves": 1080, + "sha256": "95b8a1241503e9e8a0dc254820cde7f25a70caa3d66a49a4e9f313db218c0d30" + }, + { + "classes": 2, + "id": [ + "A", + 747 + ], + "moves": 1062, + "sha256": "400158dea092582a73e72d08597d4b95252ad4f3cde609facf8eb4666b7a6e68" + }, + { + "classes": 6, + "id": [ + "A", + 748 + ], + "moves": 861, + "sha256": "9179fce33b477b699dc99acf2e3dfd1a3aa46d44dc51fd82e4b03a4f71a1ef79" + }, + { + "classes": 5, + "id": [ + "A", + 749 + ], + "moves": 724, + "sha256": "a077f0c75f1a86c70af4179d843b0ba15c3ac8bcf7465293a1f5503f2c3608a7" + }, + { + "classes": 5, + "id": [ + "A", + 750 + ], + "moves": 466, + "sha256": "a5fe7a89cf9b93987cdcbae6b3f0ae236e845e8d74cc518e3820ade22c7f6966" + }, + { + "classes": 6, + "id": [ + "A", + 751 + ], + "moves": 418, + "sha256": "d37f694f14c6bdae1a850e3ca42ee599adb1af0b8417554c9501635c39bf110b" + }, + { + "classes": 2, + "id": [ + "A", + 752 + ], + "moves": 432, + "sha256": "5b1a4868e9e3216de5e28cc6ce4c57a85a679139dd5787980dadbe060c5cae35" + }, + { + "classes": 2, + "id": [ + "A", + 753 + ], + "moves": 4, + "sha256": "c4ac18edc86fdbda7ddf3a0585bdd7367b7cc74ad6b22cc4f2762db548e75917" + }, + { + "classes": 2, + "id": [ + "A", + 754 + ], + "moves": 4, + "sha256": "402f10af103b5345ce2db6383ad1399faca660efef604254a83412ffff9f4ebd" + }, + { + "classes": 2, + "id": [ + "A", + 755 + ], + "moves": 2, + "sha256": "c05c1403f2c85772ad30b2c51eb74afb71075f26a30528c8a9768b9be4dae4be" + }, + { + "classes": 6, + "id": [ + "A", + 756 + ], + "moves": 1052, + "sha256": "70035eb24fa40be2ac9d3e846571523db7ce522b8a7f48a01eedda46a5b918e8" + }, + { + "classes": 5, + "id": [ + "A", + 757 + ], + "moves": 9, + "sha256": "5fc12e74ba0fd4c7d3de65a9bf7760428f4e0e52baa7eaa6c422d549d90e7cd4" + }, + { + "classes": 4, + "id": [ + "A", + 758 + ], + "moves": 1069, + "sha256": "c9b90729b8efbdb9c88936753786e13e53ea6a17c95e2c65c1ac4a0c77220e7b" + }, + { + "classes": 5, + "id": [ + "A", + 759 + ], + "moves": 7, + "sha256": "35d141173f812e134ffa855f9936124491d2ef46c4055202b9f9b12b094e832e" + }, + { + "classes": 7, + "id": [ + "A", + 760 + ], + "moves": 1053, + "sha256": "4d6dae799f2c4943faf94292aebdc5dcd563a559c5ce9be1deee94fd22a0a63e" + }, + { + "classes": 5, + "id": [ + "A", + 761 + ], + "moves": 10, + "sha256": "3ad906c1d0d05f9c78b2309fbff63a5c06454f85c066f3ba827578bbd7d3a0c0" + }, + { + "classes": 4, + "id": [ + "A", + 762 + ], + "moves": 1069, + "sha256": "f39ff684964ff8685a10bce4205842f72c96c0e5713ddb43352923e80a9908b8" + }, + { + "classes": 4, + "id": [ + "A", + 763 + ], + "moves": 8, + "sha256": "0af213f509294e77adcff04867f7d571e995ee6286c8b91de52b33029f5113bb" + }, + { + "classes": 2, + "id": [ + "A", + 764 + ], + "moves": 1044, + "sha256": "4c9a4db59d396f9924afea3d4ee6262faeea4311a55e538c2af4d8b8bd9681ce" + }, + { + "classes": 1, + "id": [ + "A", + 765 + ], + "moves": 1, + "sha256": "65a2a4474d3797802913390d712f4cfd2011d06c42547634efb1097aecfbfd34" + }, + { + "classes": 1, + "id": [ + "A", + 766 + ], + "moves": 1042, + "sha256": "b4c5ffc95674263ef170e36b9f525b2dacacb805b1a5287dc1e689c2364b769a" + }, + { + "classes": 5, + "id": [ + "A", + 767 + ], + "moves": 449, + "sha256": "01a0280be1841ac1e2a30e1ef8a8a4821345fb0b33ff9fc3a6fc37fbb0b9b684" + }, + { + "classes": 4, + "id": [ + "A", + 768 + ], + "moves": 382, + "sha256": "c0b687aa386ccb4b32ecdf45d8455175f5903d22fef6b661e387ded828f32251" + }, + { + "classes": 4, + "id": [ + "A", + 769 + ], + "moves": 301, + "sha256": "9f7e22f7daa289e475afd83131dcf0a8041147de471030cedfffdd6f5283921b" + }, + { + "classes": 5, + "id": [ + "A", + 770 + ], + "moves": 205, + "sha256": "ebe53f697c8175b0e7d9d7621f2941d34768fe0d3d426381a25780bb285c8c4f" + }, + { + "classes": 2, + "id": [ + "A", + 771 + ], + "moves": 449, + "sha256": "f87d6a8cd6cd7f8dc6ff6535c0c6bd61c29246e210213613e35fe412a011879c" + }, + { + "classes": 2, + "id": [ + "A", + 772 + ], + "moves": 4, + "sha256": "56d28fc6afe0cf68d4f8872fc6b026ab88034223a5526a23fe706c9005d9f4cf" + }, + { + "classes": 2, + "id": [ + "A", + 773 + ], + "moves": 4, + "sha256": "a2fb331b38e0dd2af497205797efdc2737368a1ee0abd8075c5dfe40cc679efd" + }, + { + "classes": 2, + "id": [ + "A", + 774 + ], + "moves": 2, + "sha256": "8259d4f4805d2560401f855ab919b177183db8837f257d44108627f063e41d4a" + }, + { + "classes": 6, + "id": [ + "A", + 775 + ], + "moves": 1034, + "sha256": "42a95f1f7e98603e9205013d659fc9b5bf0165191ddca67a89144615c24db669" + }, + { + "classes": 5, + "id": [ + "A", + 776 + ], + "moves": 9, + "sha256": "8bbac86c52905276e6ae2887056b3009430e8afbf41fd70948c156295e4d1128" + }, + { + "classes": 4, + "id": [ + "A", + 777 + ], + "moves": 1052, + "sha256": "a6cf175fd0ed5876c6704ec9360d4a3cca27ecda0179093fc1e589ad64d3bca1" + }, + { + "classes": 5, + "id": [ + "A", + 778 + ], + "moves": 7, + "sha256": "6ad9828551fc02236ef73771f2e624802828821de0a0f3874cab409079e95e0a" + }, + { + "classes": 7, + "id": [ + "A", + 779 + ], + "moves": 1035, + "sha256": "2ebc598252a42ad4a7a95863f0967e4e3fef2ce73a4459efa568a178510abf06" + }, + { + "classes": 5, + "id": [ + "A", + 780 + ], + "moves": 10, + "sha256": "b8614feab72c158ae005e604b7e2b51c0c632014d809a128851fa2bcef7ee7d4" + }, + { + "classes": 4, + "id": [ + "A", + 781 + ], + "moves": 1052, + "sha256": "f48ad6dbbbd61c735bcb221123decc5cd9d1b4968a595842a3dae356355c8640" + }, + { + "classes": 4, + "id": [ + "A", + 782 + ], + "moves": 8, + "sha256": "33f85be0ef6d2a78f01fd00c870083dc5f84960953f9a43bcb6382eded3d6071" + }, + { + "classes": 2, + "id": [ + "A", + 783 + ], + "moves": 1026, + "sha256": "ac69d671126613d07a033bcde1498005a93df9bbc073d40fdb7417162767c454" + }, + { + "classes": 1, + "id": [ + "A", + 784 + ], + "moves": 1, + "sha256": "6922c2aea439743a82c398b219b1e2f55296c112c20d1c1589ab3ff39e9b8a90" + }, + { + "classes": 1, + "id": [ + "A", + 785 + ], + "moves": 1024, + "sha256": "b3bd2d244f45e3c8350723e2696f3b9e31a5169b483aa178d59489e9401b9abc" + }, + { + "classes": 5, + "id": [ + "A", + 786 + ], + "moves": 1006, + "sha256": "e81e0e72f274aeffd5a7956f20eae0156d835bbd6b84075bf06063c4eb291208" + }, + { + "classes": 4, + "id": [ + "A", + 787 + ], + "moves": 437, + "sha256": "248c4c34506d3070054b75dd6cf838a04aafc02548a2a4a85aed3dd8ce257b17" + }, + { + "classes": 6, + "id": [ + "A", + 788 + ], + "moves": 290, + "sha256": "56abe0310f0e35deae97a69676fef11aa24ec8c45c8202c7847452fed38e6756" + }, + { + "classes": 7, + "id": [ + "A", + 789 + ], + "moves": 243, + "sha256": "cdf670adaf711bed102fc01ba31d952fbbd2b4da5bf61325e564f830f22d6821" + }, + { + "classes": 5, + "id": [ + "A", + 790 + ], + "moves": 6, + "sha256": "fc7ddef4ae537bcf1ab54b34af8cc164965d3e6366db7038f5ac4aae7a8b68c6" + }, + { + "classes": 4, + "id": [ + "A", + 791 + ], + "moves": 9, + "sha256": "909f8e72c924c54aef966fdba1f961edbf56493f3c269a0115b17f2014d73b34" + }, + { + "classes": 6, + "id": [ + "A", + 792 + ], + "moves": 10, + "sha256": "115e263a0c859d8e7e8b6c49b45ec667838a4466b0191499bc85f759887e270f" + }, + { + "classes": 7, + "id": [ + "A", + 793 + ], + "moves": 11, + "sha256": "cb48bb29497035b508d07ddebbbd479b03cf718c9dda12ddb51044f34b2907d3" + }, + { + "classes": 4, + "id": [ + "A", + 794 + ], + "moves": 5, + "sha256": "cb3f9c73867cff9d460091a1d6cb95249bb3b7ea8cd46053aab3416af76e747b" + }, + { + "classes": 4, + "id": [ + "A", + 795 + ], + "moves": 6, + "sha256": "c37ffd1959c55a9fa21d3a21b6d6485ad9ac001ab02fc54a799621fcd8eae536" + }, + { + "classes": 5, + "id": [ + "A", + 796 + ], + "moves": 7, + "sha256": "7f129ff0c4da2b1c0d798607b1bf31f94e158d811400c4ba680007741f0b3c67" + }, + { + "classes": 2, + "id": [ + "A", + 797 + ], + "moves": 2, + "sha256": "9e2b85909393d64d196be95df11c53aac7769b5c1d499b516cb94cc2ac7a4e6b" + }, + { + "classes": 0, + "id": [ + "A", + 798 + ], + "moves": 0, + "sha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945" + }, + { + "classes": 3, + "id": [ + "A", + 799 + ], + "moves": 1060, + "sha256": "9aa6947afc2763833a0f41a0e8dde821ee46e9794e763a4a98525549334156cd" + }, + { + "classes": 2, + "id": [ + "A", + 800 + ], + "moves": 3, + "sha256": "bae8a25a01adddea7d77018f7e7a491c4445f44863b58115380a0bfa932de56d" + }, + { + "classes": 5, + "id": [ + "A", + 801 + ], + "moves": 1061, + "sha256": "66f18e550e563d891f6f6e524c237a41f65074e93a3ae3cd603358e84057b0c0" + }, + { + "classes": 3, + "id": [ + "A", + 802 + ], + "moves": 1011, + "sha256": "56af632a17706644d40d4801bbece66965768063b5b78b67f9b4d3de52cbe9dc" + }, + { + "classes": 2, + "id": [ + "A", + 803 + ], + "moves": 1058, + "sha256": "73585bf6525f1879422f2d68648b6ac2c102f5f2b2472a483df6b30ef8bb7fb2" + }, + { + "classes": 5, + "id": [ + "A", + 804 + ], + "moves": 1040, + "sha256": "d58767c8218134e6f3c598f57cf1aeab67acdfab1c3d927165be5449687c1f3e" + }, + { + "classes": 4, + "id": [ + "A", + 805 + ], + "moves": 477, + "sha256": "fa85d6a3160742caeac4415a3516aa099883851e6e46ffce0ee14b19c077265e" + }, + { + "classes": 6, + "id": [ + "A", + 806 + ], + "moves": 883, + "sha256": "041b3f6720e9ae2ab1fc09ce6b9d374d09a9cd164813ab91ffef749e43ea15ca" + }, + { + "classes": 9, + "id": [ + "A", + 807 + ], + "moves": 746, + "sha256": "bc7a83e177d6ce67a42dfb6e808e94866309864be4cb239dfc7f97bc18110a4f" + }, + { + "classes": 5, + "id": [ + "A", + 808 + ], + "moves": 6, + "sha256": "4f1671dedff100813a006c270ec5d647d212685a3163b22b56b9ca2cac79004d" + }, + { + "classes": 5, + "id": [ + "A", + 809 + ], + "moves": 9, + "sha256": "ba4f6b977db3050cd716e3847d6d381f4ea71aa6b449eb0fe2ed0fa1ff78086f" + }, + { + "classes": 5, + "id": [ + "A", + 810 + ], + "moves": 11, + "sha256": "ae105ff258f1fb4990f2dffec54b9c456dfa0a58b818cb7787b9151ef9bba864" + }, + { + "classes": 8, + "id": [ + "A", + 811 + ], + "moves": 12, + "sha256": "7e596f8b8417b76c2e8478cb01e1a80d0ce2698a58b5c1550da65e273986c62f" + }, + { + "classes": 4, + "id": [ + "A", + 812 + ], + "moves": 5, + "sha256": "bf03ddc9d7569857186fdb18f8775b69c848b6c567b62e97289ada7d23008810" + }, + { + "classes": 4, + "id": [ + "A", + 813 + ], + "moves": 7, + "sha256": "e65695ed86a01c3169bc56291f4dd58e9e86542aa1e764eedf631e57e45a1964" + }, + { + "classes": 6, + "id": [ + "A", + 814 + ], + "moves": 8, + "sha256": "e343c959d6efa326e15b8acbd76952f4d4a5450dae8a4366010ea21e9187e89f" + }, + { + "classes": 3, + "id": [ + "A", + 815 + ], + "moves": 3, + "sha256": "ad26177eabbb98f6fa4df266deccde40d51306003881fe3914d1b4f09cc64fdd" + }, + { + "classes": 3, + "id": [ + "A", + 816 + ], + "moves": 4, + "sha256": "257558e239ba4ba5e9a1fcf2ce417a9e6be77c62bf8ca2d6dbbfd29cc83dfa70" + }, + { + "classes": 1, + "id": [ + "A", + 817 + ], + "moves": 1, + "sha256": "b2e4d2ca61276c6e1786810f85d3c6a76b1d43ca307e33c937a6419bfc80f787" + }, + { + "classes": 3, + "id": [ + "A", + 818 + ], + "moves": 1040, + "sha256": "0f8d4e10c04533e0849248024bb8777da7ef9871186279bc8a998abb6a997c27" + }, + { + "classes": 2, + "id": [ + "A", + 819 + ], + "moves": 2, + "sha256": "7d0a0318e3af2ade2e39e782a3540e0e7cf0a8f40597d5acf33d488d2ebf4e2f" + }, + { + "classes": 4, + "id": [ + "A", + 820 + ], + "moves": 1042, + "sha256": "50c32ce182570ef056b73b31466ab813997131da96f411bebc4df3c6582c407a" + }, + { + "classes": 2, + "id": [ + "A", + 821 + ], + "moves": 1038, + "sha256": "2fe58ae65b87620f81fc5f1b54947c3f85afab1d283376ca7417877d32f26eff" + }, + { + "classes": 2, + "id": [ + "A", + 822 + ], + "moves": 1003, + "sha256": "af4493fff205e4e9f635f0ec1bee23ae9f50852eb9025fa34b56a39becf070f9" + }, + { + "classes": 4, + "id": [ + "A", + 823 + ], + "moves": 549, + "sha256": "a044611e89b0a001209cb612eeb4b0f395b9bfacd1fbfb1b0268dc5bf0e93ddf" + }, + { + "classes": 4, + "id": [ + "A", + 824 + ], + "moves": 371, + "sha256": "b5776562f1ce7e2ec9747929e0d1031cb618b4febd38469a33d38deb8a8e429c" + }, + { + "classes": 5, + "id": [ + "A", + 825 + ], + "moves": 338, + "sha256": "97054717573ab01d47fd72e8f9390119d752b9dd06694e5f5e2f7131bf5fa9a7" + }, + { + "classes": 7, + "id": [ + "A", + 826 + ], + "moves": 304, + "sha256": "e247a1cf0316cf736a88ac8074da74ead0424cf4c4112b41e9a3929698e2e3c7" + }, + { + "classes": 5, + "id": [ + "A", + 827 + ], + "moves": 6, + "sha256": "cf9296c2c4a8a45c656c7aaed2c0848e7cfa1164f549babafdcebec80904df3b" + }, + { + "classes": 5, + "id": [ + "A", + 828 + ], + "moves": 9, + "sha256": "98948ab5d89551340a38a2c500bc8555c6a6aa3e42b02962dcb8bf275b3a9a69" + }, + { + "classes": 6, + "id": [ + "A", + 829 + ], + "moves": 11, + "sha256": "08f06dd82b6a95dde7d2fef777ad62216a0a107143e92d879da18a73c0a83d60" + }, + { + "classes": 7, + "id": [ + "A", + 830 + ], + "moves": 12, + "sha256": "5d83b27d79bb826bfa30d4141b3bff0062ae796e85c3db00d7b65f96b356662d" + }, + { + "classes": 4, + "id": [ + "A", + 831 + ], + "moves": 5, + "sha256": "ece2cd00070b1ec9736532ce5efb29997f0130a62427e2958444a3b9a981c3c0" + }, + { + "classes": 4, + "id": [ + "A", + 832 + ], + "moves": 7, + "sha256": "7ff8692f12d01b6ca2ca381e00b617fc7818083a944a83043f759bbc37ec908d" + }, + { + "classes": 6, + "id": [ + "A", + 833 + ], + "moves": 8, + "sha256": "c17e71a25a7072d3af68ce641b57e79870e2d30ad874dede8fd12ef51c18bbcb" + }, + { + "classes": 3, + "id": [ + "A", + 834 + ], + "moves": 3, + "sha256": "320c32e93a412f58aa088ee5c53cb18affb7420de6be7fb37630d7a2e07641f3" + }, + { + "classes": 3, + "id": [ + "A", + 835 + ], + "moves": 4, + "sha256": "bb3fd6eaf26330f3c4b9042cb0006abb1dda7fc08a089fccb84f0464c7b38f20" + }, + { + "classes": 1, + "id": [ + "A", + 836 + ], + "moves": 1, + "sha256": "84904203815c9230cf10fa3d16527bf0a66dc6cbdcc6d5b9f520cebe8699d2f8" + }, + { + "classes": 4, + "id": [ + "A", + 837 + ], + "moves": 1076, + "sha256": "76e34bc1e428cbba573818426cf7cad668b235f676c7dad50c3b27f43c7116b9" + }, + { + "classes": 2, + "id": [ + "A", + 838 + ], + "moves": 991, + "sha256": "9ad2938491970934b155ec425d3021377763d936b48a30ab92df88e6306423cb" + }, + { + "classes": 3, + "id": [ + "A", + 839 + ], + "moves": 3, + "sha256": "0f7d58fe85f379d352246d7ea93ec177907d7a094c6014f92f6833a32bb1e373" + }, + { + "classes": 4, + "id": [ + "A", + 840 + ], + "moves": 1078, + "sha256": "0d929d142cea35d5f1590597a30c754ed414cf5b16df3072a76e6854687d6ac1" + }, + { + "classes": 2, + "id": [ + "A", + 841 + ], + "moves": 1073, + "sha256": "23f704d55a4146b7c2b9d67a2faf37696e2fa46b344c7e14021e45935e8f6cea" + }, + { + "classes": 5, + "id": [ + "A", + 842 + ], + "moves": 507, + "sha256": "dc99f4bb00ed20365555ffa8b1de8b6678d35992563cf97ad567b5ddc32e79d5" + }, + { + "classes": 5, + "id": [ + "A", + 843 + ], + "moves": 439, + "sha256": "1f91a1e4ecafd6e068bb5bcbaab7131735321f02612a55460eadfd8191d79824" + }, + { + "classes": 5, + "id": [ + "A", + 844 + ], + "moves": 360, + "sha256": "be0c60aaac271c9185e01893964667324e90cecede3fd4ca9fe6ccd24e269bac" + }, + { + "classes": 8, + "id": [ + "A", + 845 + ], + "moves": 325, + "sha256": "4dae411d4b53bef411b286f52237a69ddf343e30330240903f1c4171e7c99c50" + }, + { + "classes": 5, + "id": [ + "A", + 846 + ], + "moves": 507, + "sha256": "768b7bf77eb7da2a77a2ebf2ae88fd3e58df0f59afbb5238244958d3a5b11ee1" + }, + { + "classes": 5, + "id": [ + "A", + 847 + ], + "moves": 439, + "sha256": "06c8354d1b2f51ebff63c19c79358310ff1a77c8690dfe95aba1574c3c498b03" + }, + { + "classes": 5, + "id": [ + "A", + 848 + ], + "moves": 360, + "sha256": "de32e2518145d98da9f8a6996e5d1bdc779ee0815978803e4e6d6b8c7ca53ca6" + }, + { + "classes": 8, + "id": [ + "A", + 849 + ], + "moves": 325, + "sha256": "9a92c24bc8d8835b3f6e9e59b8645d559ddbe8b32974fb569b1bcdc2f5da2c25" + }, + { + "classes": 3, + "id": [ + "A", + 850 + ], + "moves": 4, + "sha256": "aca52a575639e8f0211e61882ea69c70f3039583df67ef2ade01b2eb7ea1d4b9" + }, + { + "classes": 5, + "id": [ + "A", + 851 + ], + "moves": 7, + "sha256": "a9ffbc316f92e914fe621b88986c68c3a971e02e56f1e3d07304b85f4311b628" + }, + { + "classes": 2, + "id": [ + "A", + 852 + ], + "moves": 2, + "sha256": "4653cc21c22097a7ce56add1d4350715a3e3d146113c678057f057010784458c" + }, + { + "classes": 3, + "id": [ + "A", + 853 + ], + "moves": 3, + "sha256": "603dcfec513984c5a5357522360a70ae617efc3fc0528596b38317cb6568604d" + }, + { + "classes": 1, + "id": [ + "A", + 854 + ], + "moves": 1, + "sha256": "5a18c8986133727fc3858753e5a286c9f8e30bb6227a909a1baa610aa8f344bd" + }, + { + "classes": 5, + "id": [ + "A", + 855 + ], + "moves": 974, + "sha256": "d8d2b361aff6cd0e0b9a95e18568ac008f3aa498cb30ede88cd31bccd2782e82" + }, + { + "classes": 5, + "id": [ + "A", + 856 + ], + "moves": 956, + "sha256": "cb3bdca199966c92060bfaf2fe95b79526b4c43b78f6d8866495ebb2f22d6e8c" + }, + { + "classes": 3, + "id": [ + "A", + 857 + ], + "moves": 6, + "sha256": "fd4e32aa041555ebabc53c6e3440d752feb2e222a1a84b0173153c68e5b491eb" + }, + { + "classes": 6, + "id": [ + "A", + 858 + ], + "moves": 976, + "sha256": "cab3e821e7e541eef8440d13c3aad2b9191008b376c5126f6210c7113d92d81a" + }, + { + "classes": 6, + "id": [ + "A", + 859 + ], + "moves": 958, + "sha256": "205dd8d5cc300afc21fc587680ac66e81349608051b739fb07883ad9a3bf6485" + }, + { + "classes": 7, + "id": [ + "A", + 860 + ], + "moves": 978, + "sha256": "3ef43d1dc786abefc4d7f258d440bdb0da7a0c98ad2279210daff23c076826be" + }, + { + "classes": 7, + "id": [ + "A", + 861 + ], + "moves": 960, + "sha256": "a6eaaa21fe2ef0cac7634c9e524d1d204816fd528cb6ca1e0f00e982ea9ffa65" + }, + { + "classes": 4, + "id": [ + "A", + 862 + ], + "moves": 971, + "sha256": "49f9e37b57dbb3533055fe814de5a7de6137179351bcb5f1ab059d482f63761d" + }, + { + "classes": 4, + "id": [ + "A", + 863 + ], + "moves": 953, + "sha256": "2244c335c27a844fafb4ab45dd04686ed5dd5f153681c2c8ffa155e3c39da0a7" + }, + { + "classes": 5, + "id": [ + "A", + 864 + ], + "moves": 1156, + "sha256": "b9ff55269c2006ece41ae274e2671a1a797547f051d7965a9a33b2657097aa0d" + }, + { + "classes": 5, + "id": [ + "A", + 865 + ], + "moves": 992, + "sha256": "414f90623abcc15fb212bde544991628421fb1deae8c649bb1393df40948b949" + }, + { + "classes": 6, + "id": [ + "A", + 866 + ], + "moves": 421, + "sha256": "0b9e971241eb76550c982391daf7988a515a472c9fb0328ce8132e73594bd331" + }, + { + "classes": 7, + "id": [ + "A", + 867 + ], + "moves": 313, + "sha256": "73670f8759d4830af0d9004efa631e9bc5e737a35a4d9c082166f30d8c78f6d6" + }, + { + "classes": 5, + "id": [ + "A", + 868 + ], + "moves": 6, + "sha256": "a76ee53d87d032b3206c186e5445369664b5567f84e88ce4b44526a3b4cd4f9c" + }, + { + "classes": 4, + "id": [ + "A", + 869 + ], + "moves": 9, + "sha256": "9bdd08e0e96840edcdf3f876f44bea89f65a8be467fc73415ddf314d40b94dc9" + }, + { + "classes": 6, + "id": [ + "A", + 870 + ], + "moves": 13, + "sha256": "20451c9df039919db4c0d85b47184e9b7d9c6a88f3a26619d173f3ea94a8380f" + }, + { + "classes": 7, + "id": [ + "A", + 871 + ], + "moves": 11, + "sha256": "88dcdc06a2a5192f8d5be8717b3e2d4e6b18edc18bbc424ab68dc09afa167134" + }, + { + "classes": 4, + "id": [ + "A", + 872 + ], + "moves": 5, + "sha256": "eb50d91c3fee16b4032e1dcf3196ce3f4db736f69fb91b146620f08cbd1f14e9" + }, + { + "classes": 4, + "id": [ + "A", + 873 + ], + "moves": 9, + "sha256": "06d5093d01acaa70db62b45461bf7e6683aeabf791a63be844632ccb3d33e86f" + }, + { + "classes": 5, + "id": [ + "A", + 874 + ], + "moves": 7, + "sha256": "efee6a675477a076c71f464c4cd07ed2a3bb4c589107718935fe62f3e791496d" + }, + { + "classes": 3, + "id": [ + "A", + 875 + ], + "moves": 4, + "sha256": "5a6a38640490a9e5fe7d623dfc24845c0cb75d71e918182c8f6ee2f6759f38cd" + }, + { + "classes": 2, + "id": [ + "A", + 876 + ], + "moves": 3, + "sha256": "eef458393a902ab21dcbe9ff3a023b8d5a9d1867b94301d5cfd6f3b8def1bec7" + }, + { + "classes": 3, + "id": [ + "A", + 877 + ], + "moves": 997, + "sha256": "a61975672a87ee0c2a54fd951f2330b99cc3022cb97b67083ffeebe01a4213a4" + }, + { + "classes": 3, + "id": [ + "A", + 878 + ], + "moves": 3, + "sha256": "74ff4d8de5cc9ed094bb1cf527b5a4636e14bf1c514d91d8893ef07cd21ea914" + }, + { + "classes": 4, + "id": [ + "A", + 879 + ], + "moves": 998, + "sha256": "9185ac24beb04083ec8d03363380c00200a22b7f10cb08cae424ea9e2469f60b" + }, + { + "classes": 2, + "id": [ + "A", + 880 + ], + "moves": 3, + "sha256": "e2d573f7201f12ec277af6126a049604a0ba5edbaef039d04bd6ba2b7a4d0e17" + }, + { + "classes": 1, + "id": [ + "A", + 881 + ], + "moves": 993, + "sha256": "a097d5a90b81feaec5152a2343a63b0859d62458256dcb09494a6f2b6d2ae9f5" + }, + { + "classes": 2, + "id": [ + "A", + 882 + ], + "moves": 930, + "sha256": "87c3c90c7ef43c8960f66eba6cf97a0dbbbe9f42eb382b2135553d97d57e1259" + }, + { + "classes": 6, + "id": [ + "A", + 883 + ], + "moves": 1114, + "sha256": "442ced5bb99af23a085587ed062ae459affc60e92a6198d4e7be4618d59d87fd" + }, + { + "classes": 6, + "id": [ + "A", + 884 + ], + "moves": 1072, + "sha256": "119af5ab459b4a3632dd6c1395e99524f05133463c9a54cfec91a8b7ba1e428f" + }, + { + "classes": 6, + "id": [ + "A", + 885 + ], + "moves": 989, + "sha256": "b13f835396358121106f81f59fc32c628656d47e718fa664e048a4fc44ccbcb2" + }, + { + "classes": 8, + "id": [ + "A", + 886 + ], + "moves": 940, + "sha256": "92132fd3a6f679dec79f66f405ed2c3be6b19ca9bbc23abc141f6abb32e65fc5" + }, + { + "classes": 5, + "id": [ + "A", + 887 + ], + "moves": 560, + "sha256": "304e9586990b3f4f24dc5b611d468526c8b3d6077eafe23bc5e1554705c430eb" + }, + { + "classes": 5, + "id": [ + "A", + 888 + ], + "moves": 540, + "sha256": "3410c3c25b3f79062e2771d73950ce4a62cec9810f451337d5ebe898cb19a2ce" + }, + { + "classes": 5, + "id": [ + "A", + 889 + ], + "moves": 499, + "sha256": "d2306961d7e134c20dca1fb0cff7ab67a9b18e91c79aed4e84d81d8d16e09c97" + }, + { + "classes": 8, + "id": [ + "A", + 890 + ], + "moves": 943, + "sha256": "86035a5fb6772483f4b57241171d410282036e299e318ce5a76a837f47e98ed0" + }, + { + "classes": 3, + "id": [ + "A", + 891 + ], + "moves": 4, + "sha256": "3bd30eaccb0842bf5d6bc9a093308f93385b4cef7d19e74b198e202a9ecbdeb9" + }, + { + "classes": 4, + "id": [ + "A", + 892 + ], + "moves": 6, + "sha256": "0fef95d5ab7b9bd9e2f74e2e57f08db7d646da05e0b46afa1c01f0060a0abc36" + }, + { + "classes": 1, + "id": [ + "A", + 893 + ], + "moves": 1, + "sha256": "46f2e72b63df203d93dcfb481405eaf1c267ca5569b3cc8b0cfa4c2f62913795" + }, + { + "classes": 0, + "id": [ + "A", + 894 + ], + "moves": 0, + "sha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945" + }, + { + "classes": 5, + "id": [ + "A", + 895 + ], + "moves": 917, + "sha256": "dbf8adcad5675e67d87059cb2f8ba30a8f3ef9c70b49e94df5f246512a8f1614" + }, + { + "classes": 5, + "id": [ + "A", + 896 + ], + "moves": 935, + "sha256": "aa597319062ac7581de15c969281377714a3eed77ec11f6cdb6175a2899d596e" + }, + { + "classes": 3, + "id": [ + "A", + 897 + ], + "moves": 5, + "sha256": "b2322d773ff03541c8aed0a1c8fc4a028468adae0e8b3243766e369d7a2a6d76" + }, + { + "classes": 7, + "id": [ + "A", + 898 + ], + "moves": 918, + "sha256": "1e1a4c5fc0a289631384492f709210dc632978ae66b870d7db0d8552c89f7dc6" + }, + { + "classes": 6, + "id": [ + "A", + 899 + ], + "moves": 936, + "sha256": "ab16a98ec114281e6e4d411b6efe204e16e664f44a8af1347bfaa05d2beabbdf" + }, + { + "classes": 5, + "id": [ + "A", + 900 + ], + "moves": 9, + "sha256": "982498edc3e0bac2fd8864ba50c33a3ac1836f1cfcc704ccf3a88d1e5dd1ed37" + }, + { + "classes": 5, + "id": [ + "A", + 901 + ], + "moves": 914, + "sha256": "afca4bf157a3a36b9a6495374bb6d08cdab0fd89f36bafa3a065b33ca14792a8" + }, + { + "classes": 4, + "id": [ + "A", + 902 + ], + "moves": 932, + "sha256": "425301394add61510198101d3dee068a8f5a2ad6ba071bdda3e745a33a76d6e9" + }, + { + "classes": 3, + "id": [ + "A", + 903 + ], + "moves": 5, + "sha256": "6afb52e9d98f2654baab1af45aae0610fbfe75f59bd4f80f4a587e7596f47b60" + }, + { + "classes": 1, + "id": [ + "A", + 904 + ], + "moves": 908, + "sha256": "f7999c2e0c3702936c71bf581bbd8f588d58f0921c91bf015e92853e76c2b887" + }, + { + "classes": 2, + "id": [ + "A", + 905 + ], + "moves": 926, + "sha256": "22192eddfd3953107c2b5e6bf1177f596d60db148e215e644ab211b1f1cc3fc2" + }, + { + "classes": 6, + "id": [ + "A", + 906 + ], + "moves": 860, + "sha256": "ef962ce0419cf4444bebc55707380e68d549c8265ec2b8d4c05b979c37fafc4c" + }, + { + "classes": 5, + "id": [ + "A", + 907 + ], + "moves": 823, + "sha256": "fe8cdba49c690d08bb297f275974c09b6c5e47cd396a1818a81198d20d38d08a" + }, + { + "classes": 5, + "id": [ + "A", + 908 + ], + "moves": 715, + "sha256": "1b9e6970696d3c34ea67a87295a9a17b329e6977e7dbee0039235e12706d2048" + }, + { + "classes": 7, + "id": [ + "A", + 909 + ], + "moves": 675, + "sha256": "6216e9e82bee2213f334a89b55bf90c3a6c73f1af2d2d9b5a3935418837712d9" + }, + { + "classes": 4, + "id": [ + "A", + 910 + ], + "moves": 860, + "sha256": "c973228d8ce8b5773a61581b04068e139018e2f00a179324048cf16b2c790fae" + }, + { + "classes": 5, + "id": [ + "A", + 911 + ], + "moves": 678, + "sha256": "05b6aea55b96c917b6eb015e349190b0dfff62c21d8455cfaf0159025f153a00" + }, + { + "classes": 3, + "id": [ + "A", + 912 + ], + "moves": 5, + "sha256": "e0037a604d035695128753c3c89a56a3522bf6a8cf238a228209b4da99f44e65" + }, + { + "classes": 2, + "id": [ + "A", + 913 + ], + "moves": 5, + "sha256": "b3e0232726308174c833187fdfb7b86cf135bb4754a10879022ae573e12838a0" + }, + { + "classes": 3, + "id": [ + "A", + 914 + ], + "moves": 3, + "sha256": "c317b6b17328585ef6fca0236a1dca63ca92642b25e141b68f5a31199881486f" + }, + { + "classes": 7, + "id": [ + "A", + 915 + ], + "moves": 918, + "sha256": "7d1956153f40dd4e8ab6ba9d435a8fa1f13f61637187d0cbc25313cbf7a3e01f" + }, + { + "classes": 6, + "id": [ + "A", + 916 + ], + "moves": 10, + "sha256": "ff22e5bce49fc16fe5d407c10c23c714bc0bf1a93f2b694b750388a8b9e65807" + }, + { + "classes": 6, + "id": [ + "A", + 917 + ], + "moves": 897, + "sha256": "ca5df6ab4f756fdac439e64f5de83398cf0dfe806717263c77a3adc2985df2dd" + }, + { + "classes": 4, + "id": [ + "A", + 918 + ], + "moves": 7, + "sha256": "e7e4f4479d4c79cf70b7c0050b3c6fa3a90e46cbdc3adb029de5c09f55280440" + }, + { + "classes": 4, + "id": [ + "A", + 919 + ], + "moves": 4, + "sha256": "944e43c47628f8d46e9cf35579e70165104eff8a213ecc47f74fb144cf0edf75" + }, + { + "classes": 4, + "id": [ + "A", + 920 + ], + "moves": 913, + "sha256": "ddad96e7ce058bba17ebca9bf597d3abb9a2bac46496931638c523f1e6623f30" + }, + { + "classes": 3, + "id": [ + "A", + 921 + ], + "moves": 5, + "sha256": "f5c85dc13504a559d26339d6623ce5468f593a30864465e07be796369cb2d102" + }, + { + "classes": 4, + "id": [ + "A", + 922 + ], + "moves": 892, + "sha256": "32ff995409bf050ae0e0a7cae4abd82c81591b39e0e2776bacaa94397cf3d73d" + }, + { + "classes": 5, + "id": [ + "A", + 923 + ], + "moves": 914, + "sha256": "4b0d683a39c2cd280606cbcdf1d62cec10e1abba8d3d98f4b93424a83453c00a" + }, + { + "classes": 3, + "id": [ + "A", + 924 + ], + "moves": 6, + "sha256": "56317f4dba9cc6f5770947969b90f0440b188cda0bcd46c4bc8e048a92695071" + }, + { + "classes": 4, + "id": [ + "A", + 925 + ], + "moves": 893, + "sha256": "7e9b2026e6658f85ba78203ee8974e48928b1609f46d1477ac5d00241074afe8" + }, + { + "classes": 1, + "id": [ + "A", + 926 + ], + "moves": 908, + "sha256": "ba4a2a2492f25189b92571d578e3e0b862b056480430e888608f0ef35b4a2cf5" + }, + { + "classes": 6, + "id": [ + "A", + 927 + ], + "moves": 1235, + "sha256": "14ee86068092718e406074c68fa02de520835347b5cbed6070d68b2eb53397c5" + }, + { + "classes": 5, + "id": [ + "A", + 928 + ], + "moves": 1086, + "sha256": "af946610ae17b559b0ea96abbabd5b34591bf2bf451a1c87d42aa12c27db0dc2" + }, + { + "classes": 5, + "id": [ + "A", + 929 + ], + "moves": 928, + "sha256": "0527b888593fca1986cbdb03a39fbc913bebc7f4977cde8598db4a134a9b04d7" + }, + { + "classes": 6, + "id": [ + "A", + 930 + ], + "moves": 692, + "sha256": "229dc34126b910a78a45e97d5fc4080fd52bc032ca7c0fb031f527d7c50e3954" + }, + { + "classes": 2, + "id": [ + "A", + 931 + ], + "moves": 619, + "sha256": "b8794b5ff2df49518065d604e5a70ff2ecb6efbead68c1758eeccef00e554dc4" + }, + { + "classes": 2, + "id": [ + "A", + 932 + ], + "moves": 4, + "sha256": "41a712c17d126637350039d0f051e857c752d5371a689db51fdd0432cbec65d5" + }, + { + "classes": 2, + "id": [ + "A", + 933 + ], + "moves": 4, + "sha256": "53d943349cc27796d74b2829191650f44bc39390d43c78eae67cd920e9d33732" + }, + { + "classes": 2, + "id": [ + "A", + 934 + ], + "moves": 2, + "sha256": "a98aa58412a191f3b6119fafd802ac89e943b653bb251b464153343fb40b7184" + }, + { + "classes": 6, + "id": [ + "A", + 935 + ], + "moves": 896, + "sha256": "84ac3e71015afec3e4eb83e38644a1012d3f3307be20c1683f7b83ea9f8c395b" + }, + { + "classes": 5, + "id": [ + "A", + 936 + ], + "moves": 9, + "sha256": "62a70c2d17b7d2195a3b80fe1725fa79e2f043161dae8c45a34e9421d962c5eb" + }, + { + "classes": 4, + "id": [ + "A", + 937 + ], + "moves": 878, + "sha256": "93283491d9342b64d61cf53059f22c290ac23b6506d7b167d3efd5e1220ba421" + }, + { + "classes": 5, + "id": [ + "A", + 938 + ], + "moves": 7, + "sha256": "d9f950b8b518fd2e732e2c963c2227df7be33ca7ea96146c6b09905553ade30c" + }, + { + "classes": 7, + "id": [ + "A", + 939 + ], + "moves": 897, + "sha256": "54bd2b9a295253901a5052450c5dc3631cefe88f18ebf43761ba392d0bb5537b" + }, + { + "classes": 5, + "id": [ + "A", + 940 + ], + "moves": 10, + "sha256": "92643b181f2240265cf77e9f48386b446dbb0882dd5fd9a8d011a24db45dcfdb" + }, + { + "classes": 4, + "id": [ + "A", + 941 + ], + "moves": 878, + "sha256": "50c9a20f8159c37144555d85d0feda82c34e7b4e316dca9eda80b9d97f0b65ee" + }, + { + "classes": 4, + "id": [ + "A", + 942 + ], + "moves": 8, + "sha256": "6b79fb8689e51375e32e11c87db212888d98120b834cb0697120bc1afb3df270" + }, + { + "classes": 2, + "id": [ + "A", + 943 + ], + "moves": 888, + "sha256": "bfa70107d8724d6586015ed770465a4d327c26a726247720a1d26e853809d366" + }, + { + "classes": 1, + "id": [ + "A", + 944 + ], + "moves": 1, + "sha256": "e96ac74bdcd4a8757c2ce12c95585ad0819a58430c47ee7fa6ea5a48d6b48a97" + }, + { + "classes": 1, + "id": [ + "A", + 945 + ], + "moves": 886, + "sha256": "f1fd56a2455c0a4eddbfff05b09918bdb1d5b74dff20442737e339d8e04d1eaa" + }, + { + "classes": 6, + "id": [ + "A", + 946 + ], + "moves": 1170, + "sha256": "4feee28599c7b67001ce53d1ab91a0b5fc3d777327691612c6a3ea7ab2745651" + }, + { + "classes": 6, + "id": [ + "A", + 947 + ], + "moves": 1041, + "sha256": "1404aa31d3bb6cdf62a262bbb63438d3db33e6c4cad1323b8e7bdac734c5916d" + }, + { + "classes": 5, + "id": [ + "A", + 948 + ], + "moves": 879, + "sha256": "5bec57ead7031654ed2870cf5fc8340d206f0a14866b8e3978216f668bc3f4d4" + }, + { + "classes": 6, + "id": [ + "A", + 949 + ], + "moves": 819, + "sha256": "2f299faac60e52248869b1b9334ff5500d5754fa908559e6847d1fe5f740ddb2" + }, + { + "classes": 4, + "id": [ + "A", + 950 + ], + "moves": 1170, + "sha256": "45111d03df0fc75831c3c119806296357a7309244778fe0b443782d2356354e6" + }, + { + "classes": 4, + "id": [ + "A", + 951 + ], + "moves": 1043, + "sha256": "538153dd8670f118f019d5f3a7cf3f50ff120a58e27e3e5cadf0cb28442be24f" + }, + { + "classes": 3, + "id": [ + "A", + 952 + ], + "moves": 5, + "sha256": "6dcf428298847a8b0fd960e4babbee7ad202f88533fed7637e156d78f92e94a3" + }, + { + "classes": 2, + "id": [ + "A", + 953 + ], + "moves": 5, + "sha256": "0f493a7e8f8fd56fdffa1f16dac3aad75187efea013fdb69eb368c2a9c76e648" + }, + { + "classes": 2, + "id": [ + "A", + 954 + ], + "moves": 3, + "sha256": "8bb747f883daac5e0c6eae97fd4b65e0a32a52790509cdc73c94cb20c98f40c0" + }, + { + "classes": 5, + "id": [ + "A", + 955 + ], + "moves": 858, + "sha256": "41d60719793ecef585e09e7a53729b099f8b1996bd1a98208145171ff31dfabf" + }, + { + "classes": 4, + "id": [ + "A", + 956 + ], + "moves": 7, + "sha256": "7c3542723c110dd38f92f5962758aa2bfd86e5b6eeb32e5239f3dc0984a1a6f5" + }, + { + "classes": 4, + "id": [ + "A", + 957 + ], + "moves": 877, + "sha256": "0da140458a94fcd6da571f026eca4d9b160d1974c446f0bdcbe547315e2076fd" + }, + { + "classes": 6, + "id": [ + "A", + 958 + ], + "moves": 859, + "sha256": "fda67f032ad27db054b2813ad3313fb94540bb84c37688bb6aa9cb755cb013f8" + }, + { + "classes": 4, + "id": [ + "A", + 959 + ], + "moves": 8, + "sha256": "725d5ca32a9150723e5263c48d08a202d019a25bfe250f73bb24f6d5a241f01a" + }, + { + "classes": 4, + "id": [ + "A", + 960 + ], + "moves": 877, + "sha256": "f6f32868a7b1c35dd56d147cd58927ef79875eedf43bc5b2bdb622a81a96b493" + }, + { + "classes": 5, + "id": [ + "A", + 961 + ], + "moves": 860, + "sha256": "36861a962bf86bbd1d3514017ab2a30a4a6e5abe6d0d44084374f8c09b48561c" + }, + { + "classes": 3, + "id": [ + "A", + 962 + ], + "moves": 9, + "sha256": "9ace045c4c2754706f737562309f0add233f33f8acdeedcd2dca54b08ce6001f" + }, + { + "classes": 1, + "id": [ + "A", + 963 + ], + "moves": 850, + "sha256": "da7df8aee31c0ce7af209a589bf91ac2c60dfb46c31bcd9428d2ab14de5bd81e" + }, + { + "classes": 6, + "id": [ + "A", + 964 + ], + "moves": 1210, + "sha256": "88a6c810dac99d2f317829c04ad23033a88b2440c6e79f6ce5bcbd7762c3cb86" + }, + { + "classes": 5, + "id": [ + "A", + 965 + ], + "moves": 540, + "sha256": "74f6bfd566f2f261daf867a426ce10c42b5e72c70bd2065fd173c5f33c82ec0a" + }, + { + "classes": 5, + "id": [ + "A", + 966 + ], + "moves": 457, + "sha256": "3dbe4eec8ce7ef59fefff7410361ae5912a1206ac61571d323fbabfb48c936c0" + }, + { + "classes": 6, + "id": [ + "A", + 967 + ], + "moves": 439, + "sha256": "d62494bdbe947f3c5f714b0f05205ea84f890ba88d6211509087201671fc0ceb" + }, + { + "classes": 4, + "id": [ + "A", + 968 + ], + "moves": 1210, + "sha256": "b1cb4dd9a2fa2d01a0ccbbcb5d617b23d4d7b4db5b53765e21cb79255ff4644a" + }, + { + "classes": 3, + "id": [ + "A", + 969 + ], + "moves": 540, + "sha256": "1ed994fefe926c26b1985d5f73d357171b3c05eb97969a73744a2f15a997ce65" + }, + { + "classes": 3, + "id": [ + "A", + 970 + ], + "moves": 3, + "sha256": "cbb0ff8148187df0c602d0d5dfd8d9a61214d8ee74e83e270f67971aadd3a41f" + }, + { + "classes": 3, + "id": [ + "A", + 971 + ], + "moves": 7, + "sha256": "0540d367236e791493e9fc62ae25d02a18a7b6976ca95e3c906622fc7c6e774f" + }, + { + "classes": 4, + "id": [ + "A", + 972 + ], + "moves": 5, + "sha256": "a933d565f7feb1ca6d5069246981a489a1da942c75800f9d36648e7fa9cf0a85" + }, + { + "classes": 3, + "id": [ + "A", + 973 + ], + "moves": 6, + "sha256": "d6d392481cc09ccb6f8674be06b2e4bcebb6442f48209ed7f081bfdda49ce474" + }, + { + "classes": 2, + "id": [ + "A", + 974 + ], + "moves": 3, + "sha256": "17398f30a2319724a5a7fc0a7abb2b7a1717b2ee84120181825ac399bb8e3608" + }, + { + "classes": 5, + "id": [ + "A", + 975 + ], + "moves": 856, + "sha256": "778b7b21ef4f728aa1063f6726a9d490bb93b254870d56c54ab77365ad8d258a" + }, + { + "classes": 4, + "id": [ + "A", + 976 + ], + "moves": 8, + "sha256": "1a6366b91099fcf7a72a6bd53f872cb2507323627ea2fc4fd09c8ac88391512f" + }, + { + "classes": 5, + "id": [ + "A", + 977 + ], + "moves": 839, + "sha256": "31d79855823616e75aae7f32a7b95a12faec14ce01af5119d455d3d80b1b21f7" + }, + { + "classes": 6, + "id": [ + "A", + 978 + ], + "moves": 857, + "sha256": "d4313619a6941a35bc7c47673b03a30bcd8ce3a88b108f3ee00fd14ff4aa31ae" + }, + { + "classes": 4, + "id": [ + "A", + 979 + ], + "moves": 9, + "sha256": "4a462641297e21f5a20c979d149b76a0637b07c87dbaad5a8bac71d3217ca87a" + }, + { + "classes": 5, + "id": [ + "A", + 980 + ], + "moves": 840, + "sha256": "df83217b85daa6ae424a2e01984e0937578659c64d73a76a777194a04ce56045" + }, + { + "classes": 8, + "id": [ + "A", + 981 + ], + "moves": 860, + "sha256": "e1200a6e30072b4be070bc28f2f86914dfc9a8246d351d36d99592033f146293" + }, + { + "classes": 6, + "id": [ + "A", + 982 + ], + "moves": 12, + "sha256": "3deab17b91432e712224f2c0baaf4af88dfabe28eb50120d4d447519529135ed" + }, + { + "classes": 7, + "id": [ + "A", + 983 + ], + "moves": 841, + "sha256": "5fcd76d145bfb763755e5d0b9e84d0774602d849a3def54da61d5c8144eea94d" + }, + { + "classes": 1, + "id": [ + "A", + 984 + ], + "moves": 848, + "sha256": "4341076a908b7c5a6a3fd01a988d32d8b1010fea6db801a36398f077410876ca" + }, + { + "classes": 5, + "id": [ + "A", + 985 + ], + "moves": 674, + "sha256": "d5ed0a4ee7c40bf45004a52677b9f8e61f571c3db59fa51fe27143624f0af966" + }, + { + "classes": 4, + "id": [ + "A", + 986 + ], + "moves": 612, + "sha256": "e3e47bfc922b7d69c6890a65e031ca88b36b54127ee089dca41fcdb5776ddbd0" + }, + { + "classes": 6, + "id": [ + "A", + 987 + ], + "moves": 531, + "sha256": "c76b41897c231b13bd73eda27641e9caa0c2ab5afa17e2d57b49831e259f1e7a" + }, + { + "classes": 7, + "id": [ + "A", + 988 + ], + "moves": 409, + "sha256": "3651e01475409f99189b68c3e1d931ac53fc2b395b77b93b73fbdbce5cdcd2f5" + }, + { + "classes": 6, + "id": [ + "A", + 989 + ], + "moves": 1342, + "sha256": "c77b566baf6f9f4d8a7dcaef19f30999fa6449f6bb9240ed4d7390398e21ebdd" + }, + { + "classes": 5, + "id": [ + "A", + 990 + ], + "moves": 1217, + "sha256": "41c0a3e2b7b8afd760bdca80307ab3b6d15955ab03e16050d7b5685b9f0af44d" + }, + { + "classes": 7, + "id": [ + "A", + 991 + ], + "moves": 1055, + "sha256": "f8a137f51f10a11cf1f43001479e83c694da2021cb156beb7224df6e87cc1123" + }, + { + "classes": 8, + "id": [ + "A", + 992 + ], + "moves": 811, + "sha256": "e20f9f96a60ec86904530a16467b3e437d1cd5efa407bfc5f5dfb0a242f01477" + }, + { + "classes": 4, + "id": [ + "A", + 993 + ], + "moves": 8, + "sha256": "019e3edc14ba98101aaefdbb79d73c5bdc84296b05a1012dab79d751bf4c20eb" + }, + { + "classes": 4, + "id": [ + "A", + 994 + ], + "moves": 6, + "sha256": "bb7453abf12f7f32e1a5bea1d0ea3968da5494c58a0b315f3d9054879f36fc30" + }, + { + "classes": 4, + "id": [ + "A", + 995 + ], + "moves": 8, + "sha256": "4b6402aa41b6256429b39aa42602f4cbd51c344862eb721ac63310f0a49d8123" + }, + { + "classes": 3, + "id": [ + "A", + 996 + ], + "moves": 5, + "sha256": "de3a3861005f656f1e08e9adbaaa877bd802e74f5ed3b23d86e4280e332f2f23" + }, + { + "classes": 6, + "id": [ + "A", + 997 + ], + "moves": 835, + "sha256": "1290854be8cbb486b791512357f61e6087bec46a1b6eb5e9b215c25fb84dcd52" + }, + { + "classes": 6, + "id": [ + "A", + 998 + ], + "moves": 817, + "sha256": "68a409a9ae43754aba830676eb4c77878d25e9eba87268d34fe50418c08f8e72" + }, + { + "classes": 4, + "id": [ + "A", + 999 + ], + "moves": 9, + "sha256": "0e06e7809f4f5d12015639c337027db23d0a224ca414aec29621282810f9040e" + }, + { + "classes": 5, + "id": [ + "A", + 1000 + ], + "moves": 7, + "sha256": "ed62da5cf67ab94682160c3aa9401c2a38ced0b85253b5bf4653ca765cc8e33f" + }, + { + "classes": 7, + "id": [ + "A", + 1001 + ], + "moves": 836, + "sha256": "a8021778042f239b20ea793f1de8ad7183a738af41ec4bda18de8ffc3fc0139c" + }, + { + "classes": 6, + "id": [ + "A", + 1002 + ], + "moves": 818, + "sha256": "662f3681f57c243ee424e9d87664973ab626a39148545a8af66c0f5845aea7ce" + }, + { + "classes": 4, + "id": [ + "A", + 1003 + ], + "moves": 10, + "sha256": "fc34bd96f8d814644815436239a3507ebfb75dffd870091559f6c6ad8d404f0e" + }, + { + "classes": 4, + "id": [ + "A", + 1004 + ], + "moves": 7, + "sha256": "979e1a9b9a9a109ce98ac53a8f8c3e06a41b163f46ef0a9c58ed3d75adbf7df7" + }, + { + "classes": 2, + "id": [ + "A", + 1005 + ], + "moves": 827, + "sha256": "83dbe1b368b64df6e19646d15d8a676d14812aa403cbb0b8c4d80db12c0481fa" + }, + { + "classes": 3, + "id": [ + "A", + 1006 + ], + "moves": 809, + "sha256": "661e900503c50623caa2f4fb8bee64cba1f6e23ae27092a4c80174ca59a8cb08" + }, + { + "classes": 3, + "id": [ + "A", + 1007 + ], + "moves": 828, + "sha256": "c2f7fecfef6c31c4b84574b95f82823991b474b5c5975a92b9d18df13d53f7d7" + }, + { + "classes": 3, + "id": [ + "A", + 1008 + ], + "moves": 810, + "sha256": "48f7220fea0d365310930b822ed61deccb40276d4f53290efc2f40637164dedf" + }, + { + "classes": 4, + "id": [ + "A", + 1009 + ], + "moves": 717, + "sha256": "5e7b43e392ed6f3dafef79567fdcd0d38f774023e908e04510a84bb6132084b0" + }, + { + "classes": 5, + "id": [ + "A", + 1010 + ], + "moves": 514, + "sha256": "4565aa132e014322ac8816074aa5b955a3f6b1a0e3eb652d2dd835ce8998d536" + }, + { + "classes": 5, + "id": [ + "A", + 1011 + ], + "moves": 473, + "sha256": "212a5e050d63ea4f2138c40a90517c3082e2ce61be4ca76c9f704742117f17b2" + }, + { + "classes": 8, + "id": [ + "A", + 1012 + ], + "moves": 446, + "sha256": "3a5714a35fbaac620f77ed99a47d9cc0ea5a7300eb8519e1d03b9108d98d1255" + }, + { + "classes": 4, + "id": [ + "A", + 1013 + ], + "moves": 6, + "sha256": "6f466287d2515869c723d03322f09a594f679f07cf400ecd88e6a756fc2d26a0" + }, + { + "classes": 5, + "id": [ + "A", + 1014 + ], + "moves": 9, + "sha256": "5efccf1bc677f997016edf3f8d30e1cc0eb5ba61f21b3b0f9f861f952efbdc23" + }, + { + "classes": 5, + "id": [ + "A", + 1015 + ], + "moves": 10, + "sha256": "86d5634cdd2251f4afc20deed504260d9c8a83c214639d7f3f3e3570947b5651" + }, + { + "classes": 8, + "id": [ + "A", + 1016 + ], + "moves": 11, + "sha256": "b6893401835c38672b5c31ae349e4b91dd4c75cb3f9ecc45e5d8ff169ea11525" + }, + { + "classes": 4, + "id": [ + "A", + 1017 + ], + "moves": 5, + "sha256": "f54ab137c75344bae022853507d2caf72f5132554d7fafae203fdae1b9d85227" + }, + { + "classes": 3, + "id": [ + "A", + 1018 + ], + "moves": 6, + "sha256": "ee712386f7afa25ed7d6ad500dd1c94cc63614daca20f68308af97d0a2729793" + }, + { + "classes": 5, + "id": [ + "A", + 1019 + ], + "moves": 7, + "sha256": "2f782a183407925f06d52b77c3c6cb3d90c08d3e42b50792605c4635c0f7fe79" + }, + { + "classes": 2, + "id": [ + "A", + 1020 + ], + "moves": 3, + "sha256": "715c3f0bd76ea152646ede8e5cd3920d4b03067b81cf3ecf050730894dccc4b2" + }, + { + "classes": 2, + "id": [ + "A", + 1021 + ], + "moves": 2, + "sha256": "bc35b3c28a42cfce182dafe0e26a5f43cec2518bcc33e1e3c4ebba57751ed03e" + }, + { + "classes": 3, + "id": [ + "A", + 1022 + ], + "moves": 906, + "sha256": "48537dc567f4cf09eab42c9033159a9881c300579718d186b989d1cbf05bb64f" + }, + { + "classes": 4, + "id": [ + "A", + 1023 + ], + "moves": 808, + "sha256": "36d6fe65abc97d3d6314eba95a80e4d4e3720f854404d7b51b7fa60225fd01a0" + }, + { + "classes": 6, + "id": [ + "A", + 1024 + ], + "moves": 909, + "sha256": "8f1ee8636c9101b697b15a08d2090d907477a4f225c8f4104bce7c184ccc51b2" + }, + { + "classes": 5, + "id": [ + "A", + 1025 + ], + "moves": 810, + "sha256": "6fd0f9603e62002dc3f002c8f37d3feb4604994e73c245bbbbf2506aa4dc02bd" + }, + { + "classes": 3, + "id": [ + "A", + 1026 + ], + "moves": 5, + "sha256": "f79068810286f8632a6784374567f23831cab927b424ac21bb40e6c24fe73408" + }, + { + "classes": 1, + "id": [ + "A", + 1027 + ], + "moves": 901, + "sha256": "7ea5c161faadc5027bb05ac1f9e9145fe0b21640c96be9282fc878b9bd61d376" + }, + { + "classes": 2, + "id": [ + "A", + 1028 + ], + "moves": 803, + "sha256": "644f3ef8a0848a1eaf81f5ab669140178feebc2d4925f2299e6299b00ef8a06c" + }, + { + "classes": 5, + "id": [ + "A", + 1029 + ], + "moves": 712, + "sha256": "ee7cb1235621a5af1a825e12f99dd7750ab0cf24fa06facc456d7b7694f85f20" + }, + { + "classes": 4, + "id": [ + "A", + 1030 + ], + "moves": 687, + "sha256": "a1b43ce2ed5a4c1cce32e7edd4c2ed14780dcb2c2a4e00a161307ff043246948" + }, + { + "classes": 6, + "id": [ + "A", + 1031 + ], + "moves": 639, + "sha256": "a8048dda5539ff3081c149cbe28d693d3f46e41961905992d227f5350af97313" + }, + { + "classes": 6, + "id": [ + "A", + 1032 + ], + "moves": 618, + "sha256": "7e1188c275e5fe236c7d1b9cb3f7ca4eec695b83fefb112f0295dc391c7cc10e" + }, + { + "classes": 6, + "id": [ + "A", + 1033 + ], + "moves": 1418, + "sha256": "69d61426595b673a58a5e581babadb002b0f30d7ca5066feb8e081fb7eb5a02e" + }, + { + "classes": 5, + "id": [ + "A", + 1034 + ], + "moves": 1368, + "sha256": "80f573cb79d0542f7ae65274cfdec1805923d87cdf3d95bbc7b6f222743c7128" + }, + { + "classes": 7, + "id": [ + "A", + 1035 + ], + "moves": 1272, + "sha256": "8ee90f32a21139f667d685671eac0bd077a188234220852b928374964a7f0ae2" + }, + { + "classes": 7, + "id": [ + "A", + 1036 + ], + "moves": 1230, + "sha256": "5e2d50c8cde06dfda1aed8762e2a15ac5c860cde18c88f38934db8b6c645edc0" + }, + { + "classes": 3, + "id": [ + "A", + 1037 + ], + "moves": 7, + "sha256": "d1788d8c7a960bced5056a11f50793ae8a3dc9e4488222a0b95086b92053824f" + }, + { + "classes": 3, + "id": [ + "A", + 1038 + ], + "moves": 7, + "sha256": "885e9573318505b18be31f462be730c21af62b99994306d6c47a964988874fb9" + }, + { + "classes": 2, + "id": [ + "A", + 1039 + ], + "moves": 4, + "sha256": "f39b2d877a8160153c83a026e0e653916c701c4e61a02468d23dbe16e0b5666d" + }, + { + "classes": 7, + "id": [ + "A", + 1040 + ], + "moves": 775, + "sha256": "d4ec90cf2d34b9fe79b932246f1483b5f2b35206551556243005752a470de5e2" + }, + { + "classes": 7, + "id": [ + "A", + 1041 + ], + "moves": 793, + "sha256": "296e88f5c0bcf0fee10861a5cbe4d366681251f13c717b2c5bd47893fca49ea5" + }, + { + "classes": 4, + "id": [ + "A", + 1042 + ], + "moves": 9, + "sha256": "be0be91a0db1c73085c27a3aab50e488736bdeca00e51204e235d9701e001366" + }, + { + "classes": 5, + "id": [ + "A", + 1043 + ], + "moves": 7, + "sha256": "ead1985de1f315d50acf75c1e4ea483610e43456892212ded8e531790306a014" + }, + { + "classes": 4, + "id": [ + "A", + 1044 + ], + "moves": 4, + "sha256": "bc75e29c84cfb62327593a3fe97142f39003e964f27bed2a3bf1ff03e271b140" + }, + { + "classes": 4, + "id": [ + "A", + 1045 + ], + "moves": 770, + "sha256": "c90690fcad57e5672151112f503423dccaf08b711215f9a751b55c0e6eaa62b5" + }, + { + "classes": 4, + "id": [ + "A", + 1046 + ], + "moves": 788, + "sha256": "c2dc72409aef277f7df48ab3f941e01c2222c90129a56180ec02eecda3de7adf" + }, + { + "classes": 2, + "id": [ + "A", + 1047 + ], + "moves": 2, + "sha256": "191941f0aec3b1952330e6aa68cd1a7558ecce0084e16164ccf8839cf293520e" + }, + { + "classes": 2, + "id": [ + "A", + 1048 + ], + "moves": 767, + "sha256": "e9a8112b8984212258c361495a440e97c43c91145a9b71ef2c5138423fa5b607" + }, + { + "classes": 3, + "id": [ + "A", + 1049 + ], + "moves": 785, + "sha256": "0127f12826be6bcd51b549e77ed5e33f9adb8283d6514450706a6a812d2405ea" + }, + { + "classes": 4, + "id": [ + "A", + 1050 + ], + "moves": 772, + "sha256": "8b441152095cc3aafed218c6a5f71ac6d601869c33bf36ab218f5eff57160a29" + }, + { + "classes": 4, + "id": [ + "A", + 1051 + ], + "moves": 790, + "sha256": "f01a98e2927b0f94f95ae4b888b5317a0ed37af4a979304f55fa597c9ba8c3fc" + }, + { + "classes": 6, + "id": [ + "A", + 1052 + ], + "moves": 1438, + "sha256": "2bde049d69a6443115e55e7d2c6e1b92f20a6b718b199192ce54c8f845a16058" + }, + { + "classes": 6, + "id": [ + "A", + 1053 + ], + "moves": 1301, + "sha256": "f5c2cf1005346b816eebd25716ca4b986ae9584c709d2264c697b60a256944d5" + }, + { + "classes": 5, + "id": [ + "A", + 1054 + ], + "moves": 1139, + "sha256": "25be0c0fb972d55c6951f7b4a0f61c14eb70530d471905f163c645ffb650e263" + }, + { + "classes": 6, + "id": [ + "A", + 1055 + ], + "moves": 1067, + "sha256": "22602bdfbc3900c06876d8ee0802b1ff860516679fc88bf9729e518068a86180" + }, + { + "classes": 4, + "id": [ + "A", + 1056 + ], + "moves": 1438, + "sha256": "a1b86ab8e1e315ccc13234b6a22870e9984134c30ba54734a26f1e2364ef306b" + }, + { + "classes": 4, + "id": [ + "A", + 1057 + ], + "moves": 1303, + "sha256": "69a4378372b1d36bb8461a0c9237a7864b60f2f47980a9a9265d1a4c1c03e2fe" + }, + { + "classes": 3, + "id": [ + "A", + 1058 + ], + "moves": 5, + "sha256": "17087f66a274b592f94d9e4370faf51a191f9a896175c41156183cee04f90228" + }, + { + "classes": 2, + "id": [ + "A", + 1059 + ], + "moves": 5, + "sha256": "d67b525737e22413e2a66cd28b1c3db31891ebd6dc4b6ef5a4a8fafca90dc35d" + }, + { + "classes": 2, + "id": [ + "A", + 1060 + ], + "moves": 3, + "sha256": "a84a4635651b2737d6b3c93664e6c7f847bfc8b9dcc7648cbcbfd1acd1b42ce9" + }, + { + "classes": 5, + "id": [ + "A", + 1061 + ], + "moves": 773, + "sha256": "469b46a8efa887e7284ed59c519a3c0d770f2a050f14b3e0955e230bdfddb74a" + }, + { + "classes": 4, + "id": [ + "A", + 1062 + ], + "moves": 7, + "sha256": "efb9e95b298cac5d1672a0fe555b5df2ebd4b707f862b725854cd6e909bac9a9" + }, + { + "classes": 4, + "id": [ + "A", + 1063 + ], + "moves": 755, + "sha256": "7b5eb0a7806523de967b1949eb4e112574f60cbdae46630688328b46dbb03c99" + }, + { + "classes": 6, + "id": [ + "A", + 1064 + ], + "moves": 774, + "sha256": "61241c785e187836b7f4f4ba273d4a61eddecd50d315b1c6c14ebfaf0752553f" + }, + { + "classes": 4, + "id": [ + "A", + 1065 + ], + "moves": 8, + "sha256": "9ac939482b6213c6546a6ade4f904b9e68f26b5e4cd414dad2f819afedceda75" + }, + { + "classes": 4, + "id": [ + "A", + 1066 + ], + "moves": 755, + "sha256": "6b4d6ef3db68c8598435ca6f2bacb80f88624bfc543e79d118b070926488e4ae" + }, + { + "classes": 5, + "id": [ + "A", + 1067 + ], + "moves": 775, + "sha256": "9509ff30ef8fa08bc10c7bc071a2abab2f38c2ee4d117848c284c74ae0497400" + }, + { + "classes": 3, + "id": [ + "A", + 1068 + ], + "moves": 9, + "sha256": "755e147d1d6025460338e19cf49aebf1bd094240ea6b6928f2b78edc8c14a682" + }, + { + "classes": 1, + "id": [ + "A", + 1069 + ], + "moves": 765, + "sha256": "f9fc5e71d7ad563147401407824cd8a9c1165b2ebd27b1b89d574f1bda5dde9c" + }, + { + "classes": 5, + "id": [ + "A", + 1070 + ], + "moves": 1550, + "sha256": "0aea447766b9e4784fc2d20ab7741ff6b72c4db895601cbd08e79e43443465f4" + }, + { + "classes": 6, + "id": [ + "A", + 1071 + ], + "moves": 1264, + "sha256": "82710b104e3337453c5f7b01a1b1aba19502eaaecd08152332e9c4102a2cd820" + }, + { + "classes": 6, + "id": [ + "A", + 1072 + ], + "moves": 1245, + "sha256": "79a326464b2289c40ddb9b2861f91368153411d5af5c5ca8dcacf0f028374fd3" + }, + { + "classes": 8, + "id": [ + "A", + 1073 + ], + "moves": 1030, + "sha256": "a58e7668fb8a77e651136be449a9efd70147bc986f0085dddeff02e9a66c0d02" + }, + { + "classes": 4, + "id": [ + "A", + 1074 + ], + "moves": 6, + "sha256": "123111aa3c2bf73868acc1cabb4af6065cf6bc26686c1a3ec72c515b7f293a75" + }, + { + "classes": 6, + "id": [ + "A", + 1075 + ], + "moves": 16, + "sha256": "4b50725fc95ec115b5784f5ba36a0079f56e56788b03e24c619bfd087e720334" + }, + { + "classes": 5, + "id": [ + "A", + 1076 + ], + "moves": 9, + "sha256": "4cc79cd7c027fc17425d7eb697e2df0ce5302a9ca180b809da0179a0fef0a046" + }, + { + "classes": 7, + "id": [ + "A", + 1077 + ], + "moves": 10, + "sha256": "46d16b724bc969168c6f0fc1fd91aa9e10486ed619d81d719065c8043e00a80f" + }, + { + "classes": 4, + "id": [ + "A", + 1078 + ], + "moves": 7, + "sha256": "7372d470840711ce1585fdf0cbf5da427350fcb0774cffcf394b7880b0b861a0" + }, + { + "classes": 3, + "id": [ + "A", + 1079 + ], + "moves": 5, + "sha256": "291a2fa664b65dea76b4d0e4386bb9e593f61a299ed6dd35ee1a079cc8de801f" + }, + { + "classes": 4, + "id": [ + "A", + 1080 + ], + "moves": 6, + "sha256": "4f1a3fa7d4be3953d65658ad47d3cb129b8d4b8d323f69fe4b51ddc23f675cb0" + }, + { + "classes": 1, + "id": [ + "A", + 1081 + ], + "moves": 1, + "sha256": "358a6bb2a34f5cd9ac8cc4d02e4cd9c4826497b08f9129b0f2443b87bdf0d1d7" + }, + { + "classes": 5, + "id": [ + "A", + 1082 + ], + "moves": 791, + "sha256": "ee4dff04f916b17851d4670f47a0898f118bd89b631ad87130e2cc34a2987f33" + }, + { + "classes": 5, + "id": [ + "A", + 1083 + ], + "moves": 747, + "sha256": "1e7ad7915854de5c0e616d2e6f82fb1f8390cf80473fe851366c0fc69d7c64dd" + }, + { + "classes": 3, + "id": [ + "A", + 1084 + ], + "moves": 5, + "sha256": "7dce37586e9b9e873ae88c11ffccafcfa1e925423f58d73c37673a7446efdb2a" + }, + { + "classes": 3, + "id": [ + "A", + 1085 + ], + "moves": 3, + "sha256": "8b5a6ec856921aa08e46d8f46d5a183726bcc52eaf949629d2ba2e3f467777a8" + }, + { + "classes": 2, + "id": [ + "A", + 1086 + ], + "moves": 787, + "sha256": "50324cb608c34353535dc006a21d336f05df9ff1a2d9c08043e38cf90a1fc040" + }, + { + "classes": 3, + "id": [ + "A", + 1087 + ], + "moves": 743, + "sha256": "12fed020833e861f3c68fcd0621a5afccdfce0143ac721108f74e576dbafd144" + }, + { + "classes": 3, + "id": [ + "A", + 1088 + ], + "moves": 788, + "sha256": "98c581c86a6973cf4d97f7f1def97c81da843db526fe31170013bb8eb9e75abf" + }, + { + "classes": 3, + "id": [ + "A", + 1089 + ], + "moves": 744, + "sha256": "c41e8ebce0fb6474ef4fac33201a043b85620ffe09949b0f2fe301393fe2ebf3" + }, + { + "classes": 5, + "id": [ + "A", + 1090 + ], + "moves": 1568, + "sha256": "0053231652dd0fa18f2eeb9eb695d3d26cd949c4068a0c0d576ef2eb9e9ed442" + }, + { + "classes": 6, + "id": [ + "A", + 1091 + ], + "moves": 1302, + "sha256": "c0d7f52ad796fa78b7fb52bc29a487df9e704f0833b2d71e1ba0bbd0b8f93ec6" + }, + { + "classes": 5, + "id": [ + "A", + 1092 + ], + "moves": 609, + "sha256": "43bcb3b6f72fa2cab9c8faca5b1af6cec1aaeab76a10807f3f701bdb432592c2" + }, + { + "classes": 7, + "id": [ + "A", + 1093 + ], + "moves": 574, + "sha256": "afb566b01e85be7a882a4121a449c80590a85ec3f957dd78275a1514cd58dc15" + }, + { + "classes": 4, + "id": [ + "A", + 1094 + ], + "moves": 6, + "sha256": "f8978f31e21c285b723258d64f3480389b1a9ce0a623fa20e4c96569041bea92" + }, + { + "classes": 6, + "id": [ + "A", + 1095 + ], + "moves": 16, + "sha256": "a42b1683ebb97fcb06bfefb783addade562ee8b8b0119829d0f14f2746a76acd" + }, + { + "classes": 5, + "id": [ + "A", + 1096 + ], + "moves": 9, + "sha256": "8c8dac50872db96f5912519e1f82548f89f00ebc432afc86e0f4a59d8d1b067a" + }, + { + "classes": 7, + "id": [ + "A", + 1097 + ], + "moves": 10, + "sha256": "46e00c7997a69f780ec047fcef420099bbc149ee454bea77b875f1d3732cf8cf" + }, + { + "classes": 4, + "id": [ + "A", + 1098 + ], + "moves": 7, + "sha256": "973170a8b58c2324003b5237770d157505747f962365cc6c1ddc10903b0616a7" + }, + { + "classes": 3, + "id": [ + "A", + 1099 + ], + "moves": 5, + "sha256": "a93f53b1743932b0e20f78df28db5493fe0f01b44cba99d23c83304c17d0b163" + }, + { + "classes": 4, + "id": [ + "A", + 1100 + ], + "moves": 6, + "sha256": "254e5b97ee0713c09ca91672439bac64ec084ccd117798d4c5c747d7f3622019" + }, + { + "classes": 1, + "id": [ + "A", + 1101 + ], + "moves": 1, + "sha256": "934dd3781d5b5b9158581fc300b2658d9451b4d005d357b72e0972dceff28b96" + }, + { + "classes": 5, + "id": [ + "A", + 1102 + ], + "moves": 770, + "sha256": "0aba8e10a96c791e2a738d9d221b5c35a642f6d7ae259c02bf5faae1a403d89f" + }, + { + "classes": 5, + "id": [ + "A", + 1103 + ], + "moves": 733, + "sha256": "ad11ce56ba1b6c22554406e5c645120d00422511d020621e59aa7bdb5c5a301a" + }, + { + "classes": 3, + "id": [ + "A", + 1104 + ], + "moves": 5, + "sha256": "4a3f3413461f62946d48eb41645b1e8691dbb2a08ba7ce72be360c5fee4ec33f" + }, + { + "classes": 3, + "id": [ + "A", + 1105 + ], + "moves": 3, + "sha256": "cace5e106724592df881d020b4a387e8c87ad068018f7bbf8fd657481ac62c56" + }, + { + "classes": 2, + "id": [ + "A", + 1106 + ], + "moves": 766, + "sha256": "cdcf33a0c9d7df46f98a147b0efa19062c8576c4acc9f034148d7369029e0258" + }, + { + "classes": 3, + "id": [ + "A", + 1107 + ], + "moves": 729, + "sha256": "6dbc986725b2f923dcad33e46628c0c485a8aae83ab1194626a19ddd188711d9" + }, + { + "classes": 3, + "id": [ + "A", + 1108 + ], + "moves": 767, + "sha256": "35e193d0b8c1cd346d37a0b3c492b3594e55a70d2f72c5bae01d2660bb56a63e" + }, + { + "classes": 3, + "id": [ + "A", + 1109 + ], + "moves": 730, + "sha256": "e053217b2be5ca9f1420fafd173a6e5eda58dd68d4220a3d7a6efe9d061ab802" + }, + { + "classes": 5, + "id": [ + "A", + 1110 + ], + "moves": 779, + "sha256": "86b80285c8a5a7fe83a4de70b1c1f31476ffd013f697c4f38cd00f144a427bb5" + }, + { + "classes": 5, + "id": [ + "A", + 1111 + ], + "moves": 711, + "sha256": "6a8a20cea587510d8e71a5d1d67198ba82963ff410742c18060f64fc9b6d05ee" + }, + { + "classes": 6, + "id": [ + "A", + 1112 + ], + "moves": 664, + "sha256": "da3989b5aaafed687392012eea89c8433244e3e7117fec770381eb6d4f46cb60" + }, + { + "classes": 7, + "id": [ + "A", + 1113 + ], + "moves": 557, + "sha256": "ab32ee7fcb3e938310e31f1333298534dd3ab495f5ef6df904f9184712aa6126" + }, + { + "classes": 5, + "id": [ + "A", + 1114 + ], + "moves": 779, + "sha256": "4b2d77e3c79215f17a6d65e7e1a20f5c9d0491b3456bba82caff7f98982e4bfa" + }, + { + "classes": 5, + "id": [ + "A", + 1115 + ], + "moves": 711, + "sha256": "2fdb6810f2adb41adbbb91527bbb737042871e3f092be06b2395f5bf3f78cd9f" + }, + { + "classes": 6, + "id": [ + "A", + 1116 + ], + "moves": 664, + "sha256": "92d56050ed0595b88724b95b62be20a27e4041b5bd5de23c15a93709c5dbd847" + }, + { + "classes": 7, + "id": [ + "A", + 1117 + ], + "moves": 557, + "sha256": "cd62d4f8f7c5cdf0d9b2cc5c7aea58a8542f4a39adf2b91049b070f0d1475e34" + }, + { + "classes": 3, + "id": [ + "A", + 1118 + ], + "moves": 4, + "sha256": "2823d8314184d025f9b2a61bb792017104a09a8e00228128e95864c0fd8e5b91" + }, + { + "classes": 3, + "id": [ + "A", + 1119 + ], + "moves": 6, + "sha256": "173901f0fa09b1bc25a2b691f63d6de758e73daee7240da20a3c27efa899ad9f" + }, + { + "classes": 2, + "id": [ + "A", + 1120 + ], + "moves": 2, + "sha256": "782a774ff1586a9da138bc1ea3fa0c6f270b44917739dae64e97e23bf58a979e" + }, + { + "classes": 2, + "id": [ + "A", + 1121 + ], + "moves": 3, + "sha256": "a605cd50b570f353ff4c3f6ecfc206a85b612d670ee6705e7e4c27cf91f44742" + }, + { + "classes": 1, + "id": [ + "A", + 1122 + ], + "moves": 1, + "sha256": "f86f2f6827868efab40b4b226a8c5c1ec965443330df9603aa6e9676e7ac941b" + }, + { + "classes": 6, + "id": [ + "A", + 1123 + ], + "moves": 694, + "sha256": "0946756c4cbd21b5d4e179314e3ef9139b693b082c86699e2e436f6d80671c63" + }, + { + "classes": 6, + "id": [ + "A", + 1124 + ], + "moves": 717, + "sha256": "d9eb3b220d5c19187f2ab6139a844441e57b7d56dfef389eb2f34f58dfa5739c" + }, + { + "classes": 3, + "id": [ + "A", + 1125 + ], + "moves": 7, + "sha256": "41bcbdc851b951740cfdff62805dbe80224077f105b4e312fac39ab9fe9493ca" + }, + { + "classes": 3, + "id": [ + "A", + 1126 + ], + "moves": 3, + "sha256": "51bbeb3e57a627254c893aa29e8b5b3a7319125b4eb2bad0ffa3ae8e7424dc3e" + }, + { + "classes": 3, + "id": [ + "A", + 1127 + ], + "moves": 690, + "sha256": "24c51f8d380f1b84957d78d158193ddd2fb38bf6ae4c3411bf4e3bd38b119625" + }, + { + "classes": 4, + "id": [ + "A", + 1128 + ], + "moves": 713, + "sha256": "e65bc19e071a8c0684f9feea9577978aa37afe473b779b3b1b624e47f3144813" + }, + { + "classes": 7, + "id": [ + "A", + 1129 + ], + "moves": 698, + "sha256": "0bac8fdfd917ebb74afe58a8888bd4009b125cfae592165475688c2ff011ec44" + }, + { + "classes": 7, + "id": [ + "A", + 1130 + ], + "moves": 721, + "sha256": "be8ce04d68496eddae8a689a5fa0a1e07fb140007f5a66962eff2fd26738d18c" + }, + { + "classes": 4, + "id": [ + "A", + 1131 + ], + "moves": 691, + "sha256": "b631c5f987f119ad79a111fc8d10cdb22c4b7ac8e45855c294d68ba91e9fb818" + }, + { + "classes": 4, + "id": [ + "A", + 1132 + ], + "moves": 714, + "sha256": "2a91cd221960b8acff8c67d6fbc01d9d4f0e9a14ce861b92d1de5d606fc83167" + }, + { + "classes": 4, + "id": [ + "A", + 1133 + ], + "moves": 809, + "sha256": "0825753127730ab39a22fc084a3fa58ada4cf58d77d9fd2f8d7c9a43da3b4816" + }, + { + "classes": 5, + "id": [ + "A", + 1134 + ], + "moves": 744, + "sha256": "5a84e982685e54ad2826c89bfc9d22d66222ffd362fa24c42ffbe8da40ef7ffe" + }, + { + "classes": 4, + "id": [ + "A", + 1135 + ], + "moves": 638, + "sha256": "1930b3e2c14bd23257a61848cfa266df70b1c7b22653595b5af9defb957e02fe" + }, + { + "classes": 7, + "id": [ + "A", + 1136 + ], + "moves": 593, + "sha256": "8f657c837c2b7e68b899417ef587f5d1278912a01d783423d1fe155b152f9c95" + }, + { + "classes": 3, + "id": [ + "A", + 1137 + ], + "moves": 744, + "sha256": "133910450c5cb120d0dfdfe16ceed05bf708a4d3062a03403a3cbf7ab6fc4718" + }, + { + "classes": 4, + "id": [ + "A", + 1138 + ], + "moves": 6, + "sha256": "f6614296fc44b26f29da9a43d4a264ab50d1c666a14e02fe208f2bde8541cc00" + }, + { + "classes": 3, + "id": [ + "A", + 1139 + ], + "moves": 7, + "sha256": "7c945fa311c75d8de0ee6a2d14e6692792092d621f2a306515f254bbd8a61fb1" + }, + { + "classes": 5, + "id": [ + "A", + 1140 + ], + "moves": 8, + "sha256": "d5e20bcd2eeed4f51ba2d9d4793ffea8b7e9866ded39d41b951c83ec9482fffb" + }, + { + "classes": 2, + "id": [ + "A", + 1141 + ], + "moves": 3, + "sha256": "9813602d454f0ba9fd882b281bddb3dc6e4f57cb4a3179b44ed8406e426591a2" + }, + { + "classes": 2, + "id": [ + "A", + 1142 + ], + "moves": 2, + "sha256": "5e83aa2d8f8d80b3d91f70bd3506460db194cf89c4e5eaa1744710d492d99148" + }, + { + "classes": 6, + "id": [ + "A", + 1143 + ], + "moves": 675, + "sha256": "4e20c36949f44ab2bcfa4b02f227cd06f283d0e573dff517c72f176738c08322" + }, + { + "classes": 5, + "id": [ + "A", + 1144 + ], + "moves": 8, + "sha256": "68d88bee1ae674cbae0a540d100f2ac257a2b9b779c795373d9fce3a6a0f57a6" + }, + { + "classes": 3, + "id": [ + "A", + 1145 + ], + "moves": 6, + "sha256": "0b8f8af95782e7362e0725aeb27687f77a6bd8287fe2603175467042a40d6bbf" + }, + { + "classes": 3, + "id": [ + "A", + 1146 + ], + "moves": 3, + "sha256": "b10fc42e52fd870e3dd0665aeae801400f3795b597e443eaedcf722646857aa4" + }, + { + "classes": 4, + "id": [ + "A", + 1147 + ], + "moves": 671, + "sha256": "90c79aabef42a86774e297054da7c5384d7175a9efa1d11f5603a6f438106888" + }, + { + "classes": 3, + "id": [ + "A", + 1148 + ], + "moves": 4, + "sha256": "39d5105379ecb1bfff1cd4719c07591426479cfad287bba88fc9aa9487771706" + }, + { + "classes": 3, + "id": [ + "A", + 1149 + ], + "moves": 689, + "sha256": "c2e7798e509abe9c9442d36c980e21d07746bd021144f19db960a1765a3daf29" + }, + { + "classes": 4, + "id": [ + "A", + 1150 + ], + "moves": 672, + "sha256": "53e2c8546cc6eba5de0ec3837e4c441520e12915af07c5bc4a5d91b302cb4a51" + }, + { + "classes": 2, + "id": [ + "A", + 1151 + ], + "moves": 5, + "sha256": "c0c690876d2efaa4b5defbc001e6a40e7915f9749bfb46ca58db1239172707ab" + }, + { + "classes": 1, + "id": [ + "A", + 1152 + ], + "moves": 666, + "sha256": "193a62cb0ebe372e0fb57c8071b655d6846665b3d4e71c7f51f5694d648c2464" + }, + { + "classes": 5, + "id": [ + "A", + 1153 + ], + "moves": 1708, + "sha256": "4d38c4e1a94f72d504d2bec324beec373cb96eb1cbe5ced491634948d06f686f" + }, + { + "classes": 4, + "id": [ + "A", + 1154 + ], + "moves": 812, + "sha256": "97ec15c91159d3a649f216b6446ce31b977ae8f5e6d8f20d8bfd21769cb65d01" + }, + { + "classes": 6, + "id": [ + "A", + 1155 + ], + "moves": 683, + "sha256": "07a60d291f00d0ab0809d4df36e9293b7e93ed00fbcf35b3504ed0758548a3c2" + }, + { + "classes": 7, + "id": [ + "A", + 1156 + ], + "moves": 594, + "sha256": "e3646b908506b8b1295be45ef262bd039196bcd4a2457ecd725331e18fa52a8e" + }, + { + "classes": 5, + "id": [ + "A", + 1157 + ], + "moves": 6, + "sha256": "1dbe6d70a5f9ee0d92b1186698775d9190c1bc7dad93b2b9220e88bcbc8e18da" + }, + { + "classes": 4, + "id": [ + "A", + 1158 + ], + "moves": 9, + "sha256": "b2e3ddfc9d4a855c06e09682b6fbb057371c9ab8a1b1724a1e920222278f8d1c" + }, + { + "classes": 6, + "id": [ + "A", + 1159 + ], + "moves": 10, + "sha256": "8921d3265f20ca6c244e1ef26b8137fe2a05689523f914ad68b36927dccac884" + }, + { + "classes": 7, + "id": [ + "A", + 1160 + ], + "moves": 11, + "sha256": "d321b2440dbfe139b20a51a2dac7ec2eca4412d58243ce693efca3d34e0a326e" + }, + { + "classes": 4, + "id": [ + "A", + 1161 + ], + "moves": 5, + "sha256": "93cb5759069cd01dd206ff26b6226a77c3bdc2626ef148f1729bea2b6d442080" + }, + { + "classes": 4, + "id": [ + "A", + 1162 + ], + "moves": 6, + "sha256": "91ae8e1ae5caeae83544a4b57830438dd47b6558bfa29f6c63158c152ce45bde" + }, + { + "classes": 5, + "id": [ + "A", + 1163 + ], + "moves": 7, + "sha256": "afd4dafbbad3754e84f23a37c600970e3fbb4879f806823ef45dcb813df15db3" + }, + { + "classes": 2, + "id": [ + "A", + 1164 + ], + "moves": 2, + "sha256": "f7b2b56ace95a3df308b9d20ffdf8f0c1a23d19033fda48b66abaebc8fa66198" + }, + { + "classes": 0, + "id": [ + "A", + 1165 + ], + "moves": 0, + "sha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945" + }, + { + "classes": 3, + "id": [ + "A", + 1166 + ], + "moves": 697, + "sha256": "a25ce55fc9c34df872715025f7d9a940a5284486a90b5713ecf4381394de6599" + }, + { + "classes": 2, + "id": [ + "A", + 1167 + ], + "moves": 3, + "sha256": "50f64a5c06fc9a24b100797ba13ed0f3c99703f6781e0344c38420f6cf24f6dc" + }, + { + "classes": 5, + "id": [ + "A", + 1168 + ], + "moves": 698, + "sha256": "368f92aa065bcdedf6da5b85319043a003e493eaa3bca61363f7d7dfc8866aed" + }, + { + "classes": 3, + "id": [ + "A", + 1169 + ], + "moves": 674, + "sha256": "bd951267756d48108a58dec196404b71e87a09cd3e9a6af2465d1a5eda320a39" + }, + { + "classes": 2, + "id": [ + "A", + 1170 + ], + "moves": 695, + "sha256": "785ca2a4833c9afcc3f8c32f731a32b606f200e7a7c9adccb835b858c7fac61d" + }, + { + "classes": 5, + "id": [ + "A", + 1171 + ], + "moves": 706, + "sha256": "1e59e0e1ce621d6d9acc68d4c1c915a9509e0263c470cdea472ecdd8b8a9a3ae" + }, + { + "classes": 4, + "id": [ + "A", + 1172 + ], + "moves": 663, + "sha256": "5aae0274697d4150bdf41ac72ce104616571e70cf92bfbd5eac745c493c9453c" + }, + { + "classes": 5, + "id": [ + "A", + 1173 + ], + "moves": 642, + "sha256": "8f2d8e101737c2a781f46a954f50e1f7dedd9dea11e2e9c55e1e63bd7c18301b" + }, + { + "classes": 6, + "id": [ + "A", + 1174 + ], + "moves": 597, + "sha256": "0456852d6f95d10464d1dfe05f91994b82c170ff6bae4b83600803488c644eed" + }, + { + "classes": 3, + "id": [ + "A", + 1175 + ], + "moves": 1409, + "sha256": "0e2f5b04dd31eea3a2f96b27ff76197843993bc6642c6f6eaa80e138c7079e7b" + }, + { + "classes": 2, + "id": [ + "A", + 1176 + ], + "moves": 2, + "sha256": "99a300e5fa74fe23f213f7051e3065dd5d339d01eb0182f216c5a536f4c5c1de" + }, + { + "classes": 3, + "id": [ + "A", + 1177 + ], + "moves": 3, + "sha256": "6e223b0ce3c4b85e43f1a685811268c3842507ae6bbda05d8327cf738d94d27e" + }, + { + "classes": 4, + "id": [ + "A", + 1178 + ], + "moves": 4, + "sha256": "c9c8a92bb4641804d23098accb38bd6fd5eff83fc9353cf2da012e9c0e5c5351" + }, + { + "classes": 2, + "id": [ + "A", + 1179 + ], + "moves": 2, + "sha256": "3c004d92622ba0d439c09013ab1694bb998edc8237b2f22b94d956efbc6dd090" + }, + { + "classes": 0, + "id": [ + "A", + 1180 + ], + "moves": 0, + "sha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945" + }, + { + "classes": 5, + "id": [ + "A", + 1181 + ], + "moves": 656, + "sha256": "4d4ce91107dd2adeb93a8b92276cab7266bd0978aca26d84e759c022b9cfb802" + }, + { + "classes": 4, + "id": [ + "A", + 1182 + ], + "moves": 8, + "sha256": "b4437d56ad2ffaa787caedc152ec03ddc08ea07e2f3b70b6481daa0b07cde9a3" + }, + { + "classes": 5, + "id": [ + "A", + 1183 + ], + "moves": 638, + "sha256": "ae1019af0437a2096b564f92b9b89fe0eda1a0bcf2f02f0a56db965b53bae8a7" + }, + { + "classes": 7, + "id": [ + "A", + 1184 + ], + "moves": 657, + "sha256": "bf3ec678ed322b9e9b2a6f579906d253408c57ddc6891abc2f193aabbd033bf2" + }, + { + "classes": 5, + "id": [ + "A", + 1185 + ], + "moves": 9, + "sha256": "27e79447d25d80c4114b0e2f8f3e937a594f2ef6cb0bbdbc6bad00db2b18941f" + }, + { + "classes": 6, + "id": [ + "A", + 1186 + ], + "moves": 639, + "sha256": "e3d062b98e8964e712f03f4bbe17a6a8f80eef08b4104b92a7cc31ec03c5c931" + }, + { + "classes": 7, + "id": [ + "A", + 1187 + ], + "moves": 660, + "sha256": "6d1c02b39be764f3f3cae45ebce7519cfb16f75a52cc8e502d5ce10f26bdb639" + }, + { + "classes": 5, + "id": [ + "A", + 1188 + ], + "moves": 12, + "sha256": "53098a2be7374b8cf26247cc1aa572947a9fffea7c1a802de320f8a925aed6f6" + }, + { + "classes": 6, + "id": [ + "A", + 1189 + ], + "moves": 640, + "sha256": "973f2ec757f43db599caa2b9a7c0ab0eeb23a49ee04c9af9094ddcb7e38b9d3a" + }, + { + "classes": 1, + "id": [ + "A", + 1190 + ], + "moves": 648, + "sha256": "eca695261249d47236fcd5b713369ce6381bf3d73c9a71217acee1dbc17e08d0" + }, + { + "classes": 5, + "id": [ + "A", + 1191 + ], + "moves": 882, + "sha256": "789dc8f68a5675245b95bb2ce10ac8e61a1b637c460dcead03d94e95f1c2e0fd" + }, + { + "classes": 5, + "id": [ + "A", + 1192 + ], + "moves": 1662, + "sha256": "183b0bed9689b0426cfe566a8925036acadd212dfe92e1263dd1eef3bbe043d0" + }, + { + "classes": 5, + "id": [ + "A", + 1193 + ], + "moves": 817, + "sha256": "81b6a28357255f07e292a8eaba6adfeaf663e468159abc2b33d8eb2e400c609e" + }, + { + "classes": 8, + "id": [ + "A", + 1194 + ], + "moves": 774, + "sha256": "dd3816ade96a2350349f35f1b4682e980c9d5c1cd5f95ec0626728d89145abe6" + }, + { + "classes": 5, + "id": [ + "A", + 1195 + ], + "moves": 882, + "sha256": "123a5f80a3c7f938a247414b27a0f94118c959200ea28ec19686f54a07583937" + }, + { + "classes": 5, + "id": [ + "A", + 1196 + ], + "moves": 1663, + "sha256": "2fcadc74e08b6f6f73901bd014c04ddfef5b477e295b9bf77c2fa94f3cbb299f" + }, + { + "classes": 5, + "id": [ + "A", + 1197 + ], + "moves": 817, + "sha256": "3b61e821a5a221823e65b17325952bf63fa510f013eaa13e06f7d9796d9ad307" + }, + { + "classes": 8, + "id": [ + "A", + 1198 + ], + "moves": 774, + "sha256": "82f140e979eabe09d36f066d7d6341f33026ee2593109f9e4ece059b3e78b96b" + }, + { + "classes": 3, + "id": [ + "A", + 1199 + ], + "moves": 5, + "sha256": "cc54f83d9bb4e2aa5a65c4010880decc653381b197123f3bd557ea0f696c868c" + }, + { + "classes": 4, + "id": [ + "A", + 1200 + ], + "moves": 6, + "sha256": "b14ed7718c676f16ada1c8e5cd831221e4bd89b837c0cb7ddc217e12a94afad1" + }, + { + "classes": 3, + "id": [ + "A", + 1201 + ], + "moves": 5, + "sha256": "c885cec9d11c6a80d384b3cbdbf3ffe53cd4732c4955b434a2542cf8a7a8b00d" + }, + { + "classes": 2, + "id": [ + "A", + 1202 + ], + "moves": 2, + "sha256": "a43bd83555a1b9db9a5de8e1fb5fd0011b3e215065d7ae6c684211a3087ae973" + }, + { + "classes": 5, + "id": [ + "A", + 1203 + ], + "moves": 635, + "sha256": "f177ec135b0557869b504fbe3540f491ee5967483be2b6aff6aaf129447e999a" + }, + { + "classes": 5, + "id": [ + "A", + 1204 + ], + "moves": 616, + "sha256": "2b5e00c7a408ad8a93ac5982c2a5d504cd3affeddfdd51275d0b8cea990c3dee" + }, + { + "classes": 4, + "id": [ + "A", + 1205 + ], + "moves": 8, + "sha256": "38e9f102d90e588a1da1e6f55646dd5fc34c925da64e0b47ac36c793e5d1733c" + }, + { + "classes": 8, + "id": [ + "A", + 1206 + ], + "moves": 638, + "sha256": "5e2182feb5f4a07976256ba1d14f3f675376f3095e104c0b8a79e14027339dab" + }, + { + "classes": 7, + "id": [ + "A", + 1207 + ], + "moves": 619, + "sha256": "a624e0e9034f4578f38f6c6699275eaf9e6d4a7a256cef72d87915e024a9de26" + }, + { + "classes": 5, + "id": [ + "A", + 1208 + ], + "moves": 10, + "sha256": "a43e521ce2532d375904057a84a42b38bde9f9ad5b7f90f7b7ee1472377c42a1" + }, + { + "classes": 4, + "id": [ + "A", + 1209 + ], + "moves": 7, + "sha256": "12e7a6feb19492ea9a8707692f98480ab64847f80fa9b3e9b973d345efa2120d" + }, + { + "classes": 2, + "id": [ + "A", + 1210 + ], + "moves": 628, + "sha256": "6c5d028c5a92ae745c657afe8771284479f33c4050861834d1a8c3fb3918295c" + }, + { + "classes": 3, + "id": [ + "A", + 1211 + ], + "moves": 609, + "sha256": "d9d711ec9a2aec941bf1e3a63bbc1e3ea8fa475a4238db71d21a3e855d155474" + }, + { + "classes": 3, + "id": [ + "A", + 1212 + ], + "moves": 629, + "sha256": "8b9283eceb77de405de11b870123a18dae8f7dcba033be3d90bc3ac7cba94eed" + }, + { + "classes": 3, + "id": [ + "A", + 1213 + ], + "moves": 610, + "sha256": "7bb1061971f6368f639775be25dd627754fb45061ae2184b21e635280c1bcbc9" + }, + { + "classes": 5, + "id": [ + "A", + 1214 + ], + "moves": 1822, + "sha256": "7805ce0855075e77f2272439af821992f052f1446c94754db552caf0485f4e32" + }, + { + "classes": 4, + "id": [ + "A", + 1215 + ], + "moves": 907, + "sha256": "33bded23b6ea0902f55a3e769737d743086b2dd21f7c7311dbb6f9a08f77dad3" + }, + { + "classes": 5, + "id": [ + "A", + 1216 + ], + "moves": 864, + "sha256": "771d6f1d6323ae15d0f6ca364a5fc7d853b8d2e2ac9e195ac174984042d3faab" + }, + { + "classes": 7, + "id": [ + "A", + 1217 + ], + "moves": 792, + "sha256": "1d6c6e09781fac2645e627d1e054edaa96a88c0c7af81717d5c4b7fb6418ae60" + }, + { + "classes": 5, + "id": [ + "A", + 1218 + ], + "moves": 6, + "sha256": "56c62fc15b5a3ddd6db74767e34085e2db9ee957ccf0df26a8aae7ab32600bd9" + }, + { + "classes": 5, + "id": [ + "A", + 1219 + ], + "moves": 9, + "sha256": "43256a2aa7ec74ad3faf4ac00aba13a7eada26f279faa971e8bcc2056950ee27" + }, + { + "classes": 5, + "id": [ + "A", + 1220 + ], + "moves": 10, + "sha256": "8e40b773260b890ffac9117d0a9c09225dac0917c7b790e4c2cbf9aaaee5eb84" + }, + { + "classes": 7, + "id": [ + "A", + 1221 + ], + "moves": 11, + "sha256": "871a36600cd83d63e1379eb082c475feb488ee1c12776f2f6c56797183f9066b" + }, + { + "classes": 4, + "id": [ + "A", + 1222 + ], + "moves": 5, + "sha256": "86f12bf69f5a0425993142b70240645a2f0c85364186d39a34583aa24f541eaa" + }, + { + "classes": 4, + "id": [ + "A", + 1223 + ], + "moves": 6, + "sha256": "2bbfb4e1a09c66be30f580ba62931d2093d71ffd2208fbd41241349d1e7dfae9" + }, + { + "classes": 5, + "id": [ + "A", + 1224 + ], + "moves": 7, + "sha256": "e9ddf4243036d7fd3c107bec3cc84e3fc9dbc23f6332df5036fd6b0f5124f32b" + }, + { + "classes": 2, + "id": [ + "A", + 1225 + ], + "moves": 2, + "sha256": "6af9ee62265cad8d4d220d8e8b6698133d30a29be8e4e61a238439a70e1e04b6" + }, + { + "classes": 0, + "id": [ + "A", + 1226 + ], + "moves": 0, + "sha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945" + }, + { + "classes": 3, + "id": [ + "A", + 1227 + ], + "moves": 617, + "sha256": "a87a85820dc180f1daef36563d354d12b5531aa1488616bcadb4a9999ae27148" + }, + { + "classes": 3, + "id": [ + "A", + 1228 + ], + "moves": 4, + "sha256": "330e902ff36d08acc74ec058fca27315dc6696d93297e1b68da39ea53f15e7fc" + }, + { + "classes": 6, + "id": [ + "A", + 1229 + ], + "moves": 618, + "sha256": "a1d124c42ea2290c9271489771a8c03737b230bf6127ae0e6b4fe862504595c3" + }, + { + "classes": 3, + "id": [ + "A", + 1230 + ], + "moves": 594, + "sha256": "df72a0364ea7717b0567e6bf631b3a4192df261e71750969d064b6e5c1c9edc7" + }, + { + "classes": 4, + "id": [ + "A", + 1231 + ], + "moves": 5, + "sha256": "8bd11a06da184803d46bc51db2ce7e4ea7a81c7109473148d431951670f2587a" + }, + { + "classes": 1, + "id": [ + "A", + 1232 + ], + "moves": 612, + "sha256": "a0a60144c9908574d0816d5ee8c705380c4b23f3a655f45232be2f63b4c25ccb" + }, + { + "classes": 4, + "id": [ + "A", + 1233 + ], + "moves": 774, + "sha256": "172789b7f6322fbd548559d0b92549549b4ce6255b61aba03c170df381763f2e" + }, + { + "classes": 4, + "id": [ + "A", + 1234 + ], + "moves": 727, + "sha256": "a50ce3d75b195325e247d6df6e5cffe5eb551615bea58fdac58262c12b16328e" + }, + { + "classes": 4, + "id": [ + "A", + 1235 + ], + "moves": 702, + "sha256": "6953499b840af18722babcad654b52b34ec906c1635b48bdf865bf1461d4ce48" + }, + { + "classes": 6, + "id": [ + "A", + 1236 + ], + "moves": 652, + "sha256": "42aaba7348759b0119f40ad1269a6d7d8d32fac5ea015b8e7ae8274844fe9cd0" + }, + { + "classes": 4, + "id": [ + "A", + 1237 + ], + "moves": 652, + "sha256": "853dc333e5bf3bed695ea588abe13084b38c4481c89d028699e01c1aa6a05cf8" + }, + { + "classes": 4, + "id": [ + "A", + 1238 + ], + "moves": 6, + "sha256": "37a42f05cb829fafd3130e64e6b94c60499023f3023db3b07a41c508988f7dc7" + }, + { + "classes": 3, + "id": [ + "A", + 1239 + ], + "moves": 9, + "sha256": "a5c24d19de29ede109061278dce7f71b01ab3cb3f263a49394a823906f817d94" + }, + { + "classes": 5, + "id": [ + "A", + 1240 + ], + "moves": 7, + "sha256": "e2038859b1623827d9baaf8501babb882cf26531ae8a3b7ee814eaf1cef22130" + }, + { + "classes": 1, + "id": [ + "A", + 1241 + ], + "moves": 2, + "sha256": "518e108632a012ff1b5b9579fe43b2ad7d7dee9c92ee7dbd4c845c2ca9d39bed" + }, + { + "classes": 7, + "id": [ + "A", + 1242 + ], + "moves": 596, + "sha256": "628a05d7c43a3f1a0c083bf4146ace8a368160aa6ee516bd75c2dd99acc715ae" + }, + { + "classes": 6, + "id": [ + "A", + 1243 + ], + "moves": 9, + "sha256": "e3d6247e7e1a0ebc86e8ec9eb1ace7f44bc96c1502c66b74c1abc824b14e3ff7" + }, + { + "classes": 4, + "id": [ + "A", + 1244 + ], + "moves": 578, + "sha256": "88de3247a58779eb09fce869391b10bb986c1f9aad0a0c7ae28c506e13df621c" + }, + { + "classes": 5, + "id": [ + "A", + 1245 + ], + "moves": 7, + "sha256": "5e84472418de616a46b1bfa429b6094fcd0460a5b19d9d57741c323b706e9786" + }, + { + "classes": 4, + "id": [ + "A", + 1246 + ], + "moves": 4, + "sha256": "1bd0084a51d2c2da013b14ea5bcbf2d363050ec8b19af82f5b85969f84d9c320" + }, + { + "classes": 4, + "id": [ + "A", + 1247 + ], + "moves": 591, + "sha256": "5b4cc7871ea00d44aa41ec1a943745f234b179433a53bea653d1a466cbf3e749" + }, + { + "classes": 3, + "id": [ + "A", + 1248 + ], + "moves": 4, + "sha256": "9f101ecb80425a09cf0ffc6f8cb74f80e1586b8b6d02dc17d91e9079bc4e6d60" + }, + { + "classes": 2, + "id": [ + "A", + 1249 + ], + "moves": 2, + "sha256": "f1752ff9331c1ea93797984094e7fd1087881dcb54366eeef5f3e9b1b5a289e1" + }, + { + "classes": 2, + "id": [ + "A", + 1250 + ], + "moves": 588, + "sha256": "ab3552c067576e74530e782d9282fd15252742121e6beed365e0d69abd73c2ef" + }, + { + "classes": 1, + "id": [ + "A", + 1251 + ], + "moves": 1, + "sha256": "fbe4d5518d6c129c989b4269a5b843a04329e7f8697ca22605ac42c23c0e1d67" + }, + { + "classes": 1, + "id": [ + "A", + 1252 + ], + "moves": 586, + "sha256": "d38cee1d54bcc88f560bb0ded52f97e296b7ccb9ef8c5d54710e081a017f216d" + }, + { + "classes": 4, + "id": [ + "A", + 1253 + ], + "moves": 903, + "sha256": "ba6cb25ac1f132c9ae8ba17ed9470ad05801954b96d28854d8198a89eb77167c" + }, + { + "classes": 5, + "id": [ + "A", + 1254 + ], + "moves": 842, + "sha256": "c9a178701c3d1afa15ab6caa6db30324fbfcce71a2841e5b6e6266898fc045a3" + }, + { + "classes": 5, + "id": [ + "A", + 1255 + ], + "moves": 786, + "sha256": "5c5c06f3805e1cb1e0a9db367024b902ecf8f1fff1a009ab2e2692b1f2613fb3" + }, + { + "classes": 6, + "id": [ + "A", + 1256 + ], + "moves": 685, + "sha256": "24b6c713a2d57b7b9e15fe9bad6b1e6d907181b769c54b2626ad8af08e8cc1da" + }, + { + "classes": 3, + "id": [ + "A", + 1257 + ], + "moves": 842, + "sha256": "d95b61d8ab91f4a505ff94cad73bc6b67163a903133d702d6d3e99fe58348bd1" + }, + { + "classes": 4, + "id": [ + "A", + 1258 + ], + "moves": 6, + "sha256": "21cd8fcec82d136850a6fc9b862f89b291f381188d2f257c5adb908891ded85d" + }, + { + "classes": 4, + "id": [ + "A", + 1259 + ], + "moves": 7, + "sha256": "e337b85868fde3c4efb72ccafa731f0ee7727d70aa314f4172d39df1e984ab42" + }, + { + "classes": 5, + "id": [ + "A", + 1260 + ], + "moves": 8, + "sha256": "f0bb42a8fb566081bd0018e8eb02101c1b0163f1b27658f26816d9370b60bfae" + }, + { + "classes": 2, + "id": [ + "A", + 1261 + ], + "moves": 2, + "sha256": "500e06d8483e56d9ce44c82da028fa306ec100a7a24adbfb654cf0bdfe0f7d78" + }, + { + "classes": 0, + "id": [ + "A", + 1262 + ], + "moves": 0, + "sha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945" + }, + { + "classes": 5, + "id": [ + "A", + 1263 + ], + "moves": 573, + "sha256": "d9ae254279db929d66f8e0d08d8a3be5e597373578a51fec16a571d640f65f91" + }, + { + "classes": 4, + "id": [ + "A", + 1264 + ], + "moves": 7, + "sha256": "2639221b6ca28361664813e6366774d9bcb0be4057e135a29fe12897c9c17585" + }, + { + "classes": 3, + "id": [ + "A", + 1265 + ], + "moves": 5, + "sha256": "825e959c33d51ff2c57eed3963063f89a0a2a69e06782f38e8422a3650c276b7" + }, + { + "classes": 7, + "id": [ + "A", + 1266 + ], + "moves": 574, + "sha256": "483529542976e07ba24b1ee68aeb870be852005f2f48515536e9d76c9dfb332a" + }, + { + "classes": 5, + "id": [ + "A", + 1267 + ], + "moves": 8, + "sha256": "f5a839cd16d1053fe06b7130efafa8f304aed2bf9e84ca5e55685df49c07adeb" + }, + { + "classes": 4, + "id": [ + "A", + 1268 + ], + "moves": 559, + "sha256": "a5b317c02935a91253fd94b1fcdf1b2a9ee264aa2c9b601a6143ac982aa43df6" + }, + { + "classes": 4, + "id": [ + "A", + 1269 + ], + "moves": 570, + "sha256": "5d271ca6de34bdd8115216542e49d82c3ae9ae15128018de1387827d88887e08" + }, + { + "classes": 2, + "id": [ + "A", + 1270 + ], + "moves": 4, + "sha256": "eeb835f2dd345024f4203afb2770741ca32f45b3819e9031029dc0799acf5a81" + }, + { + "classes": 1, + "id": [ + "A", + 1271 + ], + "moves": 565, + "sha256": "847a960a66c1c56d2d9574043b7055ae3e7dced16a4730d3182aa6558a0abd4f" + }, + { + "classes": 5, + "id": [ + "A", + 1272 + ], + "moves": 950, + "sha256": "cdaca12851b92b5740e36713b9588802dd00af35335e15c8603bdbcd0c8e0adc" + }, + { + "classes": 4, + "id": [ + "A", + 1273 + ], + "moves": 882, + "sha256": "be549cb233369eee95306b15fb69e227c9aeb76704d1d2671b2d9dff2e7f47a7" + }, + { + "classes": 4, + "id": [ + "A", + 1274 + ], + "moves": 778, + "sha256": "f55aab9f98bb803bc84cd6f0e65583526e48037850799d2673f908cfc549f7c1" + }, + { + "classes": 6, + "id": [ + "A", + 1275 + ], + "moves": 729, + "sha256": "589eb302260042a9acc9e6b9d0eeb9986a12d7abbd2fa8f73c1226fc0de5c5b4" + }, + { + "classes": 3, + "id": [ + "A", + 1276 + ], + "moves": 1897, + "sha256": "a7dfa84c076a4d1f37a0e5fd10a40eb1d6b4594de2f4614eaf6857a89c1e3f9b" + }, + { + "classes": 2, + "id": [ + "A", + 1277 + ], + "moves": 5, + "sha256": "f9991bbf190734024450bff27e2ba36b395ab052eeeced02799e45c9c20b5f90" + }, + { + "classes": 2, + "id": [ + "A", + 1278 + ], + "moves": 2, + "sha256": "da425dcccc6fe0e4a49dbb5ca9b307fd60bea79ed4e65a6f76a45d109f401156" + }, + { + "classes": 3, + "id": [ + "A", + 1279 + ], + "moves": 3, + "sha256": "124f351df7c04cd7ac798dd9dab492acc6f915d5fb7541b7a983fc398c84ecd5" + }, + { + "classes": 1, + "id": [ + "A", + 1280 + ], + "moves": 1, + "sha256": "64b661786c579c496f88ad7d5d92589b1d2f73e1d1ee04686aa23ad38be14374" + }, + { + "classes": 7, + "id": [ + "A", + 1281 + ], + "moves": 558, + "sha256": "40ffbbf5f5410690412a4442cae466c755a5509bcd47c253fa7024c36e8d0fa3" + }, + { + "classes": 6, + "id": [ + "A", + 1282 + ], + "moves": 10, + "sha256": "96a38bd1b6b28cccfb0651de7f1bc6b12d99d808fa259fa95a681e277aff01d4" + }, + { + "classes": 6, + "id": [ + "A", + 1283 + ], + "moves": 540, + "sha256": "e3faccb1352a164c9527c3f09d442b12e7467f8cf445925d8f2b96ceb8badcdf" + }, + { + "classes": 4, + "id": [ + "A", + 1284 + ], + "moves": 7, + "sha256": "5de877cdc9da47026a55ec4db144faaea21b134b8efc82da33a8b6d631063d2e" + }, + { + "classes": 4, + "id": [ + "A", + 1285 + ], + "moves": 4, + "sha256": "6d90a159c5f33ab17467c6d7269b552e9931404934a9dc8f401a2230249b2af4" + }, + { + "classes": 4, + "id": [ + "A", + 1286 + ], + "moves": 553, + "sha256": "a8cceab9090ad985d6bf5cfc450c1d8c027c8c2139cb1229cff3cd6999dddfd6" + }, + { + "classes": 3, + "id": [ + "A", + 1287 + ], + "moves": 5, + "sha256": "e91680468e0c830d489388dfedf101eea89de283ad79bc60e89f189cf58222de" + }, + { + "classes": 4, + "id": [ + "A", + 1288 + ], + "moves": 535, + "sha256": "7f8dd6ba01e91ad78df026edc7585faa15b0b44569871adcd7cf981d6d7ff33b" + }, + { + "classes": 5, + "id": [ + "A", + 1289 + ], + "moves": 554, + "sha256": "87f2a7bf38b735a9949580274d38c26c7b400684d5d63f27d0ebded91a5236fb" + }, + { + "classes": 3, + "id": [ + "A", + 1290 + ], + "moves": 6, + "sha256": "9f0d4ab8abfdef1c6aaa5e65b49d576722879a20ecfc7c1946a970f3cff3e063" + }, + { + "classes": 4, + "id": [ + "A", + 1291 + ], + "moves": 536, + "sha256": "2488ef2e2f0ea94c3e5eba86792594fa3d5b1268ea6f960b80ce8e2ed798dce0" + }, + { + "classes": 1, + "id": [ + "A", + 1292 + ], + "moves": 548, + "sha256": "a60d4e7c1feca3232677afd9bdc4bac7148050710264d6166167e5329342e18c" + }, + { + "classes": 6, + "id": [ + "A", + 1293 + ], + "moves": 1854, + "sha256": "769165e8c4679fc1082d5795ed3c501744777644adee447cc0fb105162b4d066" + }, + { + "classes": 4, + "id": [ + "A", + 1294 + ], + "moves": 862, + "sha256": "28feca701fbee8eef8c60fe4fb6dd96fefa9cb00679b034ec94d05357da1e78e" + }, + { + "classes": 6, + "id": [ + "A", + 1295 + ], + "moves": 814, + "sha256": "e4e2f68d4cea40987ba43d0fa7f5fcb5d30c6d045a2f051a88ea1f8cffa8ffa7" + }, + { + "classes": 7, + "id": [ + "A", + 1296 + ], + "moves": 779, + "sha256": "bdf1cafd3fbd91bdd07302492dd0f60fefe6803b11e5e1b8aad2870c19813ffc" + }, + { + "classes": 6, + "id": [ + "A", + 1297 + ], + "moves": 1854, + "sha256": "c7c882029eb8ecd221d492917e35dc1ec41d872335d9803a327aa39846738798" + }, + { + "classes": 4, + "id": [ + "A", + 1298 + ], + "moves": 862, + "sha256": "9b58653d69c1837768a157c283a2a479f89704406e943400e2f75e056f637e83" + }, + { + "classes": 6, + "id": [ + "A", + 1299 + ], + "moves": 814, + "sha256": "43bee9678064eb158535c0a5fe76cceb7bcb7e244b81707fa7f2c0a528dfbd41" + }, + { + "classes": 7, + "id": [ + "A", + 1300 + ], + "moves": 779, + "sha256": "4b70ee7b632cf086aac3a514c5ad9b95794cfb88db3007af54c473068d8be4bc" + }, + { + "classes": 4, + "id": [ + "A", + 1301 + ], + "moves": 5, + "sha256": "33938282cfb5599bf3a0b2ecc74aa8667184a6af1497a44c1435a896ea34c1b5" + }, + { + "classes": 4, + "id": [ + "A", + 1302 + ], + "moves": 6, + "sha256": "831ace672fbbd8fafc381ecc14bfb1a2e47f7dde78d2205f4f7374ff618c2b23" + }, + { + "classes": 3, + "id": [ + "A", + 1303 + ], + "moves": 4, + "sha256": "37dbb75b2d3fb9297080ff286501d6f6a9136a5f2f152e7aedc826bd6fdeb9d8" + }, + { + "classes": 0, + "id": [ + "A", + 1304 + ], + "moves": 0, + "sha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945" + }, + { + "classes": 6, + "id": [ + "A", + 1305 + ], + "moves": 535, + "sha256": "5fc16d92bed0a60be6e5a1d4fed8c4e4d8dd1ae3cd566edf979bceb527935eb8" + }, + { + "classes": 6, + "id": [ + "A", + 1306 + ], + "moves": 517, + "sha256": "5abf582a2af003f59a60efddb52973022d1202c0ee8e709498b60f11a4a17f06" + }, + { + "classes": 4, + "id": [ + "A", + 1307 + ], + "moves": 8, + "sha256": "67cb631f8991c076583997cba0d5ff3bcedfa60a2a436247789efa876c2101e1" + }, + { + "classes": 4, + "id": [ + "A", + 1308 + ], + "moves": 5, + "sha256": "0ef9950f8d98c610426189096786b626157aee8bc96d27356268e78c5371f453" + }, + { + "classes": 6, + "id": [ + "A", + 1309 + ], + "moves": 536, + "sha256": "386dacbefaf68a153a5b2ab18af46bd91f7394bc286e5999af2ef47094fc8536" + }, + { + "classes": 6, + "id": [ + "A", + 1310 + ], + "moves": 518, + "sha256": "bdf60a115e96ce3d438a78ad72f9d2002a62341fcb6e63a67fb2c7ea58c72d15" + }, + { + "classes": 5, + "id": [ + "A", + 1311 + ], + "moves": 531, + "sha256": "ed2b14ce03eff154837f27e1adffaa53ccca189039a220e68e1bf75d85573358" + }, + { + "classes": 4, + "id": [ + "A", + 1312 + ], + "moves": 513, + "sha256": "4ec69a8010252f7852efe3783e05a43eb23050a5d398f391c754d470d6507479" + }, + { + "classes": 2, + "id": [ + "A", + 1313 + ], + "moves": 4, + "sha256": "1abcf27fd4c6652fbcb6325a0d594474def4d24e3e0a582e80cd4abecd23bfff" + }, + { + "classes": 1, + "id": [ + "A", + 1314 + ], + "moves": 526, + "sha256": "f43db7660bf556d564761e67e15ce6fd90bf2a316d9a5dccc5fc69da10f43666" + }, + { + "classes": 2, + "id": [ + "A", + 1315 + ], + "moves": 508, + "sha256": "60dd4cc6e27d5ec6109fa58f26bc5162fca0283c0faf899884b0e7aefd1c3f98" + }, + { + "classes": 5, + "id": [ + "A", + 1316 + ], + "moves": 983, + "sha256": "fcaf91176b723b69e4d64d8fb9fd80c580469277670eeeedc41d4c93f5e342f6" + }, + { + "classes": 5, + "id": [ + "A", + 1317 + ], + "moves": 915, + "sha256": "2414d3bb99a084d3bff9857feebef5460ecff7ed556bdeb708bc9765efa1c0e4" + }, + { + "classes": 6, + "id": [ + "A", + 1318 + ], + "moves": 876, + "sha256": "d5bb93d125cc9eb26cca6e69d145086a1947d43ef7506b5ed11380cb32161b6e" + }, + { + "classes": 7, + "id": [ + "A", + 1319 + ], + "moves": 769, + "sha256": "b32982b0d3d6f9c9d0f7907916e7e696c6b86256f5e6246b2db91d0ed061912b" + }, + { + "classes": 6, + "id": [ + "A", + 1320 + ], + "moves": 1960, + "sha256": "89a3b6aefdc9d00a5b299e85b46429b92a7b2cf1a20d5406dd55b6327c30feee" + }, + { + "classes": 6, + "id": [ + "A", + 1321 + ], + "moves": 1823, + "sha256": "cc36f53585933c3542e4853fe42e3eca22dfd71803f7e0a936d5eb06455696b1" + }, + { + "classes": 7, + "id": [ + "A", + 1322 + ], + "moves": 1744, + "sha256": "206c06f59eb53708a9fa01a691ac516398139db3cd7d63d431c783b1cb5a3d13" + }, + { + "classes": 8, + "id": [ + "A", + 1323 + ], + "moves": 1530, + "sha256": "67ff3a60bf5c2ae1fa5b0fee0c00bca9bddee8ed37c4e10afb863265df42c0d7" + }, + { + "classes": 3, + "id": [ + "A", + 1324 + ], + "moves": 4, + "sha256": "b746f3386ac12bc174694d02e3005d8f8ccd4ef8f11fa6923c8833b4a0076a77" + }, + { + "classes": 3, + "id": [ + "A", + 1325 + ], + "moves": 6, + "sha256": "90f57f7b7991122b32338f729367a4bea68fc5935497de5d31d777034af485ce" + }, + { + "classes": 2, + "id": [ + "A", + 1326 + ], + "moves": 2, + "sha256": "c034ea0f191d3d2b30fb716216692f47c21ba30f97801cea0b91e1a8e4a4e226" + }, + { + "classes": 2, + "id": [ + "A", + 1327 + ], + "moves": 3, + "sha256": "789c87882c02e1cdbcbef37ef53316b82ee146654c233d4f7a2e6d1997e8260c" + }, + { + "classes": 1, + "id": [ + "A", + 1328 + ], + "moves": 1, + "sha256": "a92cb0c7bb56c1288950a650970bb5925ac8949deb704786ea1b6718cf6f89e9" + }, + { + "classes": 6, + "id": [ + "A", + 1329 + ], + "moves": 493, + "sha256": "46c9f04396264b945fe6b553ed0a9c5b005b66f1fea428743aa5ed8e5dfbb2ea" + }, + { + "classes": 6, + "id": [ + "A", + 1330 + ], + "moves": 506, + "sha256": "980a8f2fa605d9f50b2bc9767cdda587667f26e56ae7c546e0efe940cb9e26fe" + }, + { + "classes": 3, + "id": [ + "A", + 1331 + ], + "moves": 7, + "sha256": "24688a954a93ded0d946dc2d4d473f3b5cdda1de99d9ec8d5f4eee195b7d6c87" + }, + { + "classes": 3, + "id": [ + "A", + 1332 + ], + "moves": 3, + "sha256": "6e1309e3e93a26fe201210ba22a6f94cd7ffb411ca3c0a3bd234a206b8471add" + }, + { + "classes": 3, + "id": [ + "A", + 1333 + ], + "moves": 489, + "sha256": "f45f7b1424ae4cd91fd4c1473aa8c43489c55520350a9355779216d39d29b29d" + }, + { + "classes": 4, + "id": [ + "A", + 1334 + ], + "moves": 502, + "sha256": "7ef35125a5feefd0d3bcfe609358fd75be468224f22bf601401c0ba354dacc32" + }, + { + "classes": 7, + "id": [ + "A", + 1335 + ], + "moves": 497, + "sha256": "97311980eb73f3d1b5ed204cd8cccd09b0df61ca8a9e8f1a9fbf7bb7060bf040" + }, + { + "classes": 7, + "id": [ + "A", + 1336 + ], + "moves": 510, + "sha256": "3b5ed1f34a0aea5aa2ed072cae14bdeab62a9a98deaf50bc022d06d9da98b555" + }, + { + "classes": 4, + "id": [ + "A", + 1337 + ], + "moves": 490, + "sha256": "5f3b9ebf61c658cf2de40c7fb1196b057dc608ec0bdb5064d98a363bed05abb0" + }, + { + "classes": 4, + "id": [ + "A", + 1338 + ], + "moves": 503, + "sha256": "c485a40a04df9c59008d168fe84ae402ef9fd73a2d7a8d34c36758e65d594385" + }, + { + "classes": 5, + "id": [ + "A", + 1339 + ], + "moves": 1942, + "sha256": "68bed4ebd3c4ed738bca374d09fe0a15070c1eaa2c39894426e4622070fc3b3e" + }, + { + "classes": 3, + "id": [ + "A", + 1340 + ], + "moves": 967, + "sha256": "ba82720b2aacdd7a249311439e636dc6a0d8a3b6ba1a451f76981fd34f00fb39" + }, + { + "classes": 5, + "id": [ + "A", + 1341 + ], + "moves": 868, + "sha256": "d59189c6b42f681c91492fa77e6d16ff64b4bed72851bf86036b86d383c4acfb" + }, + { + "classes": 6, + "id": [ + "A", + 1342 + ], + "moves": 772, + "sha256": "7378c5d6ff1acc7f8a74360c6dea573272efadced35e57dc98383f8705db9d67" + }, + { + "classes": 3, + "id": [ + "A", + 1343 + ], + "moves": 5, + "sha256": "9f39ee95736bf54366d8b86870594b38c2483b3ec070df56dadffac002a85900" + }, + { + "classes": 4, + "id": [ + "A", + 1344 + ], + "moves": 9, + "sha256": "9b2e140df1299ac5fb54fb59f900db167b00553d0357f6bbc3c30843cec727a9" + }, + { + "classes": 5, + "id": [ + "A", + 1345 + ], + "moves": 7, + "sha256": "971085988a332a207142335130622758e2074ed953b9cff5d1b36ccfa5215197" + }, + { + "classes": 3, + "id": [ + "A", + 1346 + ], + "moves": 4, + "sha256": "99e32d82926f7fe89a3d5bc00a47b36558ee51421d553727d63daebbd0e456e1" + }, + { + "classes": 2, + "id": [ + "A", + 1347 + ], + "moves": 3, + "sha256": "10ed23694eb09acea2ccdc3bcac102df075863010ae620a6f9545e33d666f904" + }, + { + "classes": 3, + "id": [ + "A", + 1348 + ], + "moves": 527, + "sha256": "92b702e798bdd312a40910098d17ed7f1f95c7032979821edd921848ce36038c" + }, + { + "classes": 3, + "id": [ + "A", + 1349 + ], + "moves": 3, + "sha256": "3f12fd556fa0938d511538601ae1960aca5af339b3817b15c20e731d2196afe0" + }, + { + "classes": 4, + "id": [ + "A", + 1350 + ], + "moves": 528, + "sha256": "8c782f1d4764e15867a9f3dc0e2d4052b1d17d80dc4a41f61b2d2b6acd30fb38" + }, + { + "classes": 2, + "id": [ + "A", + 1351 + ], + "moves": 3, + "sha256": "8612696812e9c404cb5d948c0933b68bfb7b4122d82d6bd9fc721bd7fd49c60a" + }, + { + "classes": 1, + "id": [ + "A", + 1352 + ], + "moves": 523, + "sha256": "7f836901740778d891791d561654aa446330511265b5a9377f0676a0c1ddd6ce" + }, + { + "classes": 2, + "id": [ + "A", + 1353 + ], + "moves": 489, + "sha256": "76c398aa4ec2eb0ab40d9988a10ddb86ba7a04405fe3c4fbaab22d88cf4ced45" + }, + { + "classes": 2, + "id": [ + "A", + 1354 + ], + "moves": 495, + "sha256": "3c50a015313a6bd09b4a66d7f3e01c83a522613f57cd11a3b5769ea1725a4a01" + }, + { + "classes": 4, + "id": [ + "A", + 1355 + ], + "moves": 973, + "sha256": "8944a55722391792c2216a39318839b192b04cf69bbdbf91e04d091719464741" + }, + { + "classes": 6, + "id": [ + "A", + 1356 + ], + "moves": 1875, + "sha256": "5daa39bdb168dc1f22222ccaa15d1a89e3f3f02e99d618b63d048cc94ddd6f0d" + }, + { + "classes": 5, + "id": [ + "A", + 1357 + ], + "moves": 879, + "sha256": "42c906d22c2d66291c9906364fc3ad681ef9ae45814a2fffdc80e5fb967c851b" + }, + { + "classes": 7, + "id": [ + "A", + 1358 + ], + "moves": 834, + "sha256": "62da0fa54f9001fd83b4c50b337c0cdc0edce5b7fe6751cacb40937f1ce790c4" + }, + { + "classes": 6, + "id": [ + "A", + 1359 + ], + "moves": 1877, + "sha256": "6b0d4533167a3898a1010ecf5bbd0eb63da6d2ed7e152527a288a4bb87d08ef5" + }, + { + "classes": 4, + "id": [ + "A", + 1360 + ], + "moves": 879, + "sha256": "ff7d0a0a21ce4565afdddb0baf956154aec1b18f7546f5471103b0a35f97ae71" + }, + { + "classes": 6, + "id": [ + "A", + 1361 + ], + "moves": 834, + "sha256": "460fadb08ad151533b482726b613a19952cf5424bf9ed1305f2b373619fc1fd0" + }, + { + "classes": 6, + "id": [ + "A", + 1362 + ], + "moves": 15, + "sha256": "3cf75e339a930d2a2aceeaf089a6c1dc5decd07a82273a7df6662bc5d1dd35ab" + }, + { + "classes": 4, + "id": [ + "A", + 1363 + ], + "moves": 8, + "sha256": "1dcccda10984e469af02bf15bd2d0a9f0c08a6530f3248ba742fc5ec3ced98ba" + }, + { + "classes": 5, + "id": [ + "A", + 1364 + ], + "moves": 9, + "sha256": "311c44210e09f738c5caa885fa03be0b6d695f7cff47e62b6c22813882c074d4" + }, + { + "classes": 1, + "id": [ + "A", + 1365 + ], + "moves": 1, + "sha256": "d39c50ac2eb60ac6ef7b6f846780e05de1d474f74e818d3b033db3cd7ead08a1" + }, + { + "classes": 6, + "id": [ + "A", + 1366 + ], + "moves": 494, + "sha256": "59ce7ddb523caf90668050a317a4a046853a01e2ec581b34d818c516b3939755" + }, + { + "classes": 6, + "id": [ + "A", + 1367 + ], + "moves": 476, + "sha256": "a1c701bc148d4c5a3fb4db632073135d8bc2ed1a07311954c9c702ce93c397d2" + }, + { + "classes": 3, + "id": [ + "A", + 1368 + ], + "moves": 5, + "sha256": "7a5424195005744503d533287d41f1de53ad1b905d498ae9b5d95ec6c09fc0ba" + }, + { + "classes": 3, + "id": [ + "A", + 1369 + ], + "moves": 3, + "sha256": "88d5cb2d0e0f6c6260cbd9dea2c9ce3b995291969a46be2c19b49be784e8c628" + }, + { + "classes": 3, + "id": [ + "A", + 1370 + ], + "moves": 490, + "sha256": "3a00e88e2e72b1373df46ea8be2478bd4b5b9a244bf8f58acc044b6693ce1d37" + }, + { + "classes": 4, + "id": [ + "A", + 1371 + ], + "moves": 472, + "sha256": "3d740b8423fdeee40628eb18d9a5cd789edc44b5bca046409b82503d714c990a" + }, + { + "classes": 4, + "id": [ + "A", + 1372 + ], + "moves": 491, + "sha256": "be423d3ba34445e5bf48d8f75f8f2f9294bc2bddd938b3e71a6b1eac7b9dbca9" + }, + { + "classes": 4, + "id": [ + "A", + 1373 + ], + "moves": 473, + "sha256": "f7ab3681af426244b7ebf9b3ce4e0093a24cd65cc3c109167ab30ac18d270f5d" + }, + { + "classes": 8, + "id": [ + "A", + 1374 + ], + "moves": 501, + "sha256": "08595cad791c123ab3f59c9960ed5168f64e2f9189a27950245995419cc6e128" + }, + { + "classes": 8, + "id": [ + "A", + 1375 + ], + "moves": 480, + "sha256": "15bd188b0fb3665b40ac380efe78a25c293950472d82dccd49baf37e02e1c222" + }, + { + "classes": 5, + "id": [ + "A", + 1376 + ], + "moves": 930, + "sha256": "c5c346a4f785347230e59c87db5dab20c4d9f140cb7edeee4f506dd984073bc3" + }, + { + "classes": 4, + "id": [ + "A", + 1377 + ], + "moves": 877, + "sha256": "c8a29736eb981f538143ec4dcc1b4d5a476acfbd3b799fe11adda416a4e4e040" + }, + { + "classes": 5, + "id": [ + "A", + 1378 + ], + "moves": 840, + "sha256": "d8d08b9f89e12ba9a952184509fac691da540ee8b165616734426cac314a3886" + }, + { + "classes": 6, + "id": [ + "A", + 1379 + ], + "moves": 822, + "sha256": "d42f01206bd63d1a9f76ba6d555697cb86f63bc16c4b609dff7548fa96351ae4" + }, + { + "classes": 5, + "id": [ + "A", + 1380 + ], + "moves": 930, + "sha256": "cf93e006e3106c89d96b55cb2715f8028d4d847505faf0b13e46dcc99f23808e" + }, + { + "classes": 4, + "id": [ + "A", + 1381 + ], + "moves": 877, + "sha256": "03edffe6be65b537cb7f9416b2dd9f73fc7d2e44f4edaa73202cf5f11dbe65b7" + }, + { + "classes": 5, + "id": [ + "A", + 1382 + ], + "moves": 841, + "sha256": "f8ce5f18a13216af6bbe380d7f2c060a1b133db1b3e1884aa8b1bd254710c922" + }, + { + "classes": 5, + "id": [ + "A", + 1383 + ], + "moves": 822, + "sha256": "28f0c8020a24a34b2ed9ae9a4c68b6c547e39a54c95ae138860b4ff050f1fb55" + }, + { + "classes": 2, + "id": [ + "A", + 1384 + ], + "moves": 4, + "sha256": "e99e567488354cd3ef4f40e6725b23d8030d52d1036b0b5e4f76a800f3d3d0ab" + }, + { + "classes": 2, + "id": [ + "A", + 1385 + ], + "moves": 6, + "sha256": "8791a8ae404517b147a1d6d9681411bffd5978a97b08af1180b729dfaf6f761e" + }, + { + "classes": 7, + "id": [ + "A", + 1386 + ], + "moves": 458, + "sha256": "1ade26596f6d8750e73d92585da10833b5df806512d10e7b9745edd74eeecb29" + }, + { + "classes": 6, + "id": [ + "A", + 1387 + ], + "moves": 494, + "sha256": "0afd49d76c7526de4245957fd43ad6c8c17c83763a061fa7357438339be833cc" + }, + { + "classes": 4, + "id": [ + "A", + 1388 + ], + "moves": 9, + "sha256": "c1481bbabca17544086a62d9b1563a95ff090a45a512626cc82d8920080d83b0" + }, + { + "classes": 4, + "id": [ + "A", + 1389 + ], + "moves": 6, + "sha256": "7afe2f99b908ee514d0eecb9f4621cc199f828a454c5fdd0ebd7c548ac6d2bec" + }, + { + "classes": 6, + "id": [ + "A", + 1390 + ], + "moves": 457, + "sha256": "1f844816f3a30a2ccd51c653d27be9c5290c45c401be5f8f3737f413dc3c96a3" + }, + { + "classes": 5, + "id": [ + "A", + 1391 + ], + "moves": 493, + "sha256": "54e716037f96d94dd33ba50723608e4d9bdcf3d056e0529f30bad701f0b6c8e3" + }, + { + "classes": 4, + "id": [ + "A", + 1392 + ], + "moves": 8, + "sha256": "9b1e3fe2cda877418c98ebfc3a03205c50b3fec29e0ab5283019a0347bc75aaa" + }, + { + "classes": 4, + "id": [ + "A", + 1393 + ], + "moves": 453, + "sha256": "ac45ca2db5c96bdda9b1793c2a2c5128cd8d9313cf87f046f0405064cf4fa777" + }, + { + "classes": 4, + "id": [ + "A", + 1394 + ], + "moves": 489, + "sha256": "85fb6a6a05da645ea2aa043beb806c1a248c2555d29b8136345a05e8683b14b3" + }, + { + "classes": 3, + "id": [ + "A", + 1395 + ], + "moves": 450, + "sha256": "db8cbd3f03a60bb152a0fe16ea592aa0923a8f26c2533426ab6e0f5c419e1852" + }, + { + "classes": 3, + "id": [ + "A", + 1396 + ], + "moves": 486, + "sha256": "02c329bbe7944bc7200833586a3226087ceebc1e1bbdf75e05fd91ab9e808c18" + }, + { + "classes": 5, + "id": [ + "A", + 1397 + ], + "moves": 949, + "sha256": "7d6adc8ea3a7cb021eb8c7f9b7b9442cfab1e2fccee471d8f5a899189edf9b50" + }, + { + "classes": 4, + "id": [ + "A", + 1398 + ], + "moves": 908, + "sha256": "0b1bd3d18b130aa2ef170b44e7255e53ad67b210304076c5a5e6e43dccc7fed1" + }, + { + "classes": 5, + "id": [ + "A", + 1399 + ], + "moves": 852, + "sha256": "f7573802cfbc4d21e9a53b501680a553728442838327c685d23946aac24db78d" + }, + { + "classes": 7, + "id": [ + "A", + 1400 + ], + "moves": 846, + "sha256": "b3d69b2957492b357b75596ea25f179465b2449e897ce0bb105a16e0ea3672bb" + }, + { + "classes": 5, + "id": [ + "A", + 1401 + ], + "moves": 949, + "sha256": "a3eeced41a49a67f8e767b7cf73a44615e0852956aa8c58832d9af070fdf24e0" + }, + { + "classes": 4, + "id": [ + "A", + 1402 + ], + "moves": 908, + "sha256": "10c2cccf3a320ab31dbd134c5eaa5e9782dd15b97a8166854d91557805b5f594" + }, + { + "classes": 5, + "id": [ + "A", + 1403 + ], + "moves": 853, + "sha256": "424451cd23453a7c3cc3eb723b626460d9143cb2bc2ce602806596183f239233" + }, + { + "classes": 6, + "id": [ + "A", + 1404 + ], + "moves": 846, + "sha256": "3aaa8dd2c47f999d5d175ac4f821630a1323a9d2d751fc08f2d0cb087beb6c7b" + }, + { + "classes": 3, + "id": [ + "A", + 1405 + ], + "moves": 5, + "sha256": "2fbd62a703797c5a6ca64b2ee6ea338ebccb243404a0ea3633757c226d25d2da" + }, + { + "classes": 3, + "id": [ + "A", + 1406 + ], + "moves": 6, + "sha256": "3d1e6488b9199a894365d8cb52175de8d29eb1cef01991855a009e49d86896f0" + }, + { + "classes": 3, + "id": [ + "A", + 1407 + ], + "moves": 4, + "sha256": "80a1883d96d81f2dbece62d6d5467ea1404ececf2d05da2ac92ec73ba0d359b0" + }, + { + "classes": 5, + "id": [ + "A", + 1408 + ], + "moves": 472, + "sha256": "132574bff6255cda88748993bc25e3844b3052e27e1dfc3e9cd213215cd07941" + }, + { + "classes": 5, + "id": [ + "A", + 1409 + ], + "moves": 436, + "sha256": "7049ba22e00a4b0f7b8cf7f6e903781e4338abd428dbe00fc8d631ab56409553" + }, + { + "classes": 3, + "id": [ + "A", + 1410 + ], + "moves": 5, + "sha256": "efe613dcb216334550ddc0cfccd31161d6206e3b294a835ae721c83ada38e2a3" + }, + { + "classes": 6, + "id": [ + "A", + 1411 + ], + "moves": 473, + "sha256": "3e3cdb270bbc3c21ecd76f0d7975a861662da6e17c723e0f54fd28f6040087b5" + }, + { + "classes": 5, + "id": [ + "A", + 1412 + ], + "moves": 437, + "sha256": "b5083caae8d76bc432351c39a17ef1f4b121bc51f786d57e2c13dd1cf227ab8c" + }, + { + "classes": 3, + "id": [ + "A", + 1413 + ], + "moves": 8, + "sha256": "da6415ee78de9e26773d2eec8cd5dd53fa742bb55d25846fa6c7f598322aea18" + }, + { + "classes": 4, + "id": [ + "A", + 1414 + ], + "moves": 469, + "sha256": "ad01fb7630b7c0006d085a86bc7c9999fac3f86246b39b58170fbd6e97df6895" + }, + { + "classes": 4, + "id": [ + "A", + 1415 + ], + "moves": 433, + "sha256": "a2721bd0fde4671e46e3540c997fb4a5ac443377c993d7eacbdc0723d9492b9c" + }, + { + "classes": 3, + "id": [ + "A", + 1416 + ], + "moves": 466, + "sha256": "833f6057c03626d1cab4c251dbe57facb95ea1e9275e39c73998f0c675299e11" + }, + { + "classes": 3, + "id": [ + "A", + 1417 + ], + "moves": 430, + "sha256": "10959928a2788130a9e2438fef4a204cf88b5ceed016eca8c2f3726d6ac33790" + }, + { + "classes": 4, + "id": [ + "A", + 1418 + ], + "moves": 1042, + "sha256": "58d8ef58acb31a5cee7fbdaca538d3ebb1565c0203a689b6fc07d48ae9023b7b" + }, + { + "classes": 5, + "id": [ + "A", + 1419 + ], + "moves": 934, + "sha256": "25a671b6c85589a451b39275f1a609896c34d86aa292cffcf8d5834a73fd044e" + }, + { + "classes": 7, + "id": [ + "A", + 1420 + ], + "moves": 909, + "sha256": "149087e7fcc832cd73932514761d4f7a55bb5064732b197324d03c3e4b95d205" + }, + { + "classes": 5, + "id": [ + "A", + 1421 + ], + "moves": 1042, + "sha256": "4788587d7649b4226648ab6fc685daca28266305716c57f5a6f8174fb396684a" + }, + { + "classes": 4, + "id": [ + "A", + 1422 + ], + "moves": 1009, + "sha256": "16550caf51f4c15fc7e2e752c1f52695ab0bc6533e743ba09c7e232899155fb9" + }, + { + "classes": 6, + "id": [ + "A", + 1423 + ], + "moves": 934, + "sha256": "4fde956b6ce5ff7e1cd037d8212191273356cc5ef515cb06c9858abd68d2b005" + }, + { + "classes": 8, + "id": [ + "A", + 1424 + ], + "moves": 909, + "sha256": "cbf09c8c9ee9b4cc27db83d4506e4d89ecd4416d65c36d54d880d00d55795e5c" + }, + { + "classes": 4, + "id": [ + "A", + 1425 + ], + "moves": 5, + "sha256": "8428bd47989bfe562a2906e44891b9b628cb0d3c31a7fe3197d3519052f16cce" + }, + { + "classes": 4, + "id": [ + "A", + 1426 + ], + "moves": 7, + "sha256": "893c665c558209c71ffc7ff8936a8154287d2bb01ff377358a5832afecd58228" + }, + { + "classes": 6, + "id": [ + "A", + 1427 + ], + "moves": 8, + "sha256": "7800de438da94dcf42ed4b238f1e68e079a1d49deac8254012d142f3285fc354" + }, + { + "classes": 3, + "id": [ + "A", + 1428 + ], + "moves": 3, + "sha256": "6b62790cbc887a3b5a15d310a395672550f61e5d88bd9b964facb654ade2fb91" + }, + { + "classes": 3, + "id": [ + "A", + 1429 + ], + "moves": 4, + "sha256": "296ddd239b29e22b5ea455e45d757c981d3513200ec65b98efafae2e354a58e1" + }, + { + "classes": 1, + "id": [ + "A", + 1430 + ], + "moves": 1, + "sha256": "bcb3ab77af323d6a3a55cd1cb60bdab9b0c0e66a451c85504ce5f9304705d570" + }, + { + "classes": 6, + "id": [ + "A", + 1431 + ], + "moves": 432, + "sha256": "a50fe6231ada7e4f93466c39d5476d13a11f5370fc5da4768c76813e65d2d773" + }, + { + "classes": 6, + "id": [ + "A", + 1432 + ], + "moves": 414, + "sha256": "6026fdbb228e6a8d02db7bd8dbc9d3734fe3042339105652ceb4f17f14571f2a" + }, + { + "classes": 4, + "id": [ + "A", + 1433 + ], + "moves": 8, + "sha256": "deda5511374c69340b786424b4869b05e0792912af81623e7b3ee9d9e4a9ee6d" + }, + { + "classes": 4, + "id": [ + "A", + 1434 + ], + "moves": 5, + "sha256": "f00227b09a3db484e85a6c57759da1f12b86a67841e8d93f0e9d9f39a5009092" + }, + { + "classes": 6, + "id": [ + "A", + 1435 + ], + "moves": 434, + "sha256": "26efb8e01bbac34a77296771309de60566c92f5c4703eaec7c8c7f9764635c80" + }, + { + "classes": 6, + "id": [ + "A", + 1436 + ], + "moves": 416, + "sha256": "9580af953d86429915ec4481786e779acd4f5064e9d4fe07e1f76643e1e22cf8" + }, + { + "classes": 5, + "id": [ + "A", + 1437 + ], + "moves": 428, + "sha256": "c16691ba4f8a07ac928296a1c372e2e86cbc1f06c0c8e0be3c13abc00aa76025" + }, + { + "classes": 4, + "id": [ + "A", + 1438 + ], + "moves": 410, + "sha256": "58228e33fea7b3ab12509a74d79dd7dfd7214b9fcf9e16734075ed13ea6473f8" + }, + { + "classes": 2, + "id": [ + "A", + 1439 + ], + "moves": 4, + "sha256": "77b5f72f0ce3a7d9613dbb4b3b79b542d3acf9719ce625ba3c37dc201a69fa0c" + }, + { + "classes": 1, + "id": [ + "A", + 1440 + ], + "moves": 423, + "sha256": "7b496b2ac993e8fbfcdd8f52997bf156cab7f5229125ba3ea6b2bc1035acc391" + }, + { + "classes": 2, + "id": [ + "A", + 1441 + ], + "moves": 405, + "sha256": "e5825be0460f3d7d1d8e449ebbb506a4a0453658e8e7fe9f805fea6399395cf9" + }, + { + "classes": 4, + "id": [ + "A", + 1442 + ], + "moves": 1069, + "sha256": "1f70aab36d2f73c9f2195d0de2cf4fd3fc2109e754586deb2168db2e42ce3e83" + }, + { + "classes": 4, + "id": [ + "A", + 1443 + ], + "moves": 1007, + "sha256": "2ca28ae43ad7f55c920e47b8b3923500605d42caf29292a579ab339f7594212a" + }, + { + "classes": 4, + "id": [ + "A", + 1444 + ], + "moves": 972, + "sha256": "0b8f7fe6c729e881c6ae5e1b9d20b753613ec361fec73566897ff4678ba1b9be" + }, + { + "classes": 5, + "id": [ + "A", + 1445 + ], + "moves": 876, + "sha256": "3491a0ede2e15290a58d471ee0602ee4078ab267849ff8a30d68168a087c1072" + }, + { + "classes": 1, + "id": [ + "A", + 1446 + ], + "moves": 3, + "sha256": "2ee513a11a4212e7fece70b1a2bfc7abd72e5eb602c8b511976d4207a06ced0b" + }, + { + "classes": 0, + "id": [ + "A", + 1447 + ], + "moves": 0, + "sha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945" + }, + { + "classes": 1, + "id": [ + "A", + 1448 + ], + "moves": 3, + "sha256": "24547705fe32b9a87e49135a2b1031fd63c532c9daa77ae2830e71d94677c897" + }, + { + "classes": 1, + "id": [ + "A", + 1449 + ], + "moves": 1, + "sha256": "9c31455ee82e3feba7b89ea3b4b71cb3b15a8aabfe80078bee91986abd816be3" + }, + { + "classes": 5, + "id": [ + "A", + 1450 + ], + "moves": 396, + "sha256": "34254de37bb00112ba99c4420c12c27a2b4a05320044a5540f2dee9dd5637643" + }, + { + "classes": 3, + "id": [ + "A", + 1451 + ], + "moves": 6, + "sha256": "43276d66f80e616d976e733a47a500fb8aee3e1fbb34abe790ddfe90461c937e" + }, + { + "classes": 4, + "id": [ + "A", + 1452 + ], + "moves": 5, + "sha256": "02de97d6e57dc28bf973d2de1aed0091be52d7ea49ac8a3bb245367bed1687a8" + }, + { + "classes": 6, + "id": [ + "A", + 1453 + ], + "moves": 397, + "sha256": "b1e29ca7289418bf32440301c15739f4867446ef397b2ba0c8f925597122a708" + }, + { + "classes": 3, + "id": [ + "A", + 1454 + ], + "moves": 7, + "sha256": "b74b87133672bd31306d3d0e894c1e888f93eee8c5415749457a047166245e0e" + }, + { + "classes": 3, + "id": [ + "A", + 1455 + ], + "moves": 5, + "sha256": "bdf4e5683ddd48262d2277a9aeba892a9f112f31a53ae3b6b1be683b21c85d45" + }, + { + "classes": 1, + "id": [ + "A", + 1456 + ], + "moves": 1, + "sha256": "252b5a24049dee788d62428a04cd36fd202b893b29b51883a38c1d1730e435ff" + }, + { + "classes": 2, + "id": [ + "A", + 1457 + ], + "moves": 391, + "sha256": "bcd7887a626fdf3ff8246a523e5da287da91719b400afce7102faae42b685a87" + }, + { + "classes": 2, + "id": [ + "A", + 1458 + ], + "moves": 389, + "sha256": "9663944d6565418a941bdcf6d4b2a6f09e56f616d39b28cea482dd8f18580e93" + }, + { + "classes": 3, + "id": [ + "A", + 1459 + ], + "moves": 1072, + "sha256": "6f41d561eecd8bdcd83594e95738150dbb4f1f0ab737ef1205c6414c4d95e9b3" + }, + { + "classes": 4, + "id": [ + "A", + 1460 + ], + "moves": 951, + "sha256": "360f2bba505e254efe572c6b99a04c7490850bb733ac6c1758e3dc657e8b1691" + }, + { + "classes": 5, + "id": [ + "A", + 1461 + ], + "moves": 927, + "sha256": "cda34c97c318566730c873bf0458b76f380c83c0cfc91f034267e881d59fb49c" + }, + { + "classes": 3, + "id": [ + "A", + 1462 + ], + "moves": 1025, + "sha256": "ef5819cfe57cc6d7e3086625265c9a5e671dc17bd6b3f1add3aac4bca2cac9bb" + }, + { + "classes": 4, + "id": [ + "A", + 1463 + ], + "moves": 952, + "sha256": "88f9efbf183c3bc6c811181cf7c20ef0ec10bcd6655a76b0313310adf3582b13" + }, + { + "classes": 5, + "id": [ + "A", + 1464 + ], + "moves": 927, + "sha256": "db08403094b8f6de174aaac565c743a3c642b6ebb36b4208a2cf5b4e0daec0b7" + }, + { + "classes": 4, + "id": [ + "A", + 1465 + ], + "moves": 8, + "sha256": "63502445bb95a522432ad28e4cabcc9b0366608bc2db717f0fe8cd2fccb0d804" + }, + { + "classes": 3, + "id": [ + "A", + 1466 + ], + "moves": 6, + "sha256": "ae86e3a5b0d5cb4b6328345067f7e19c19b0f1b305ad2a0d2c3cea9f2bfab49f" + }, + { + "classes": 4, + "id": [ + "A", + 1467 + ], + "moves": 406, + "sha256": "f82ebf0924950ba273b799827b2d7544de49da936a2be3da372e30d97226c168" + }, + { + "classes": 4, + "id": [ + "A", + 1468 + ], + "moves": 380, + "sha256": "15e479cd6dadf324f139d41e6c8fd417a0d1664726f3adc812bdac2237ad94a2" + }, + { + "classes": 5, + "id": [ + "A", + 1469 + ], + "moves": 407, + "sha256": "3892a5c83f9c648244df9eaabc62066af472faddad0e1e7e1f28673217a49c02" + }, + { + "classes": 4, + "id": [ + "A", + 1470 + ], + "moves": 381, + "sha256": "f04fe10574b033be09b397465b0b82ec1559c65558dbfca21788b7abe0f2343b" + }, + { + "classes": 4, + "id": [ + "A", + 1471 + ], + "moves": 410, + "sha256": "676d520ece72cfc02ab57558e814317105e6fe9b900b8f70968a64c74b428194" + }, + { + "classes": 6, + "id": [ + "A", + 1472 + ], + "moves": 411, + "sha256": "4dbf1de2ac12cd2320b2c22e9a7d4449a9da5918cfb082f42866a947b37a8c9c" + }, + { + "classes": 6, + "id": [ + "A", + 1473 + ], + "moves": 382, + "sha256": "4d5dea73ea5fc7f4cd635e1fed94fc56b80216d7f0bb0f85a0bcea29afa5ff49" + }, + { + "classes": 4, + "id": [ + "A", + 1474 + ], + "moves": 1077, + "sha256": "e9931c55534deb952282c90654fe7987e8462114f5ff1698ee666e890aadefe4" + }, + { + "classes": 5, + "id": [ + "A", + 1475 + ], + "moves": 993, + "sha256": "54ba9a4d9e9108663e9225c6ecff5bc1373ed32740f67a280728083230cc06e8" + }, + { + "classes": 6, + "id": [ + "A", + 1476 + ], + "moves": 960, + "sha256": "d1af46a67dc71e627c6a730de10272d44cdc3a6d3989a4875c907a257e0d3808" + }, + { + "classes": 7, + "id": [ + "A", + 1477 + ], + "moves": 905, + "sha256": "c14fb1082e85ae1b51e1e1ad521b58de885c531277ef267149a3b22cabcc302f" + }, + { + "classes": 4, + "id": [ + "A", + 1478 + ], + "moves": 6, + "sha256": "5422399e0010929a836243aedb9e3daf2b1b7e00ebb588b18a1693538c50a3da" + }, + { + "classes": 5, + "id": [ + "A", + 1479 + ], + "moves": 9, + "sha256": "592365d56bbaf8f98ac048306f45e10b83b14b5fa8e60bf3c2ea6e3465824da8" + }, + { + "classes": 6, + "id": [ + "A", + 1480 + ], + "moves": 10, + "sha256": "92320af799ea671ecb013f1c2679963dddc1544db119e99dca001cd9f0815a5f" + }, + { + "classes": 7, + "id": [ + "A", + 1481 + ], + "moves": 11, + "sha256": "4441b5928dfba0223d12adb3b5a5251e8d4af6e850d53959c670c923e8065808" + }, + { + "classes": 4, + "id": [ + "A", + 1482 + ], + "moves": 5, + "sha256": "36f7cf23010e3d8fbeb18d3bde950beeb1dde59dd7a21832157f8c8ef37ce097" + }, + { + "classes": 4, + "id": [ + "A", + 1483 + ], + "moves": 6, + "sha256": "f15e530fbfb99aa5c7371729e527f0ab92aadbc36205f9631279b66d694c243e" + }, + { + "classes": 5, + "id": [ + "A", + 1484 + ], + "moves": 7, + "sha256": "fd0493e33137c89d85cdb5295c6bf662cf27da18a7d4bac8ad8fe5345dbe391a" + }, + { + "classes": 2, + "id": [ + "A", + 1485 + ], + "moves": 2, + "sha256": "c641eb4d5cd20e4622738214458ca8b8a9f144a4d70a2416ca1fae21ef03ab7a" + }, + { + "classes": 0, + "id": [ + "A", + 1486 + ], + "moves": 0, + "sha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945" + }, + { + "classes": 3, + "id": [ + "A", + 1487 + ], + "moves": 432, + "sha256": "4697fe793b18af6ca498ba3fd04d8c10e93daf40e667420e3b60f8ac7417e79a" + }, + { + "classes": 4, + "id": [ + "A", + 1488 + ], + "moves": 361, + "sha256": "c87d0a05b905bb1299171ac643ffe2029acc90fd2c32b409dc4dd7961e6a8e59" + }, + { + "classes": 5, + "id": [ + "A", + 1489 + ], + "moves": 433, + "sha256": "060815ed31d746109695aab1d1e480cc4b081fdebad6cda91dc0e065196a164f" + }, + { + "classes": 5, + "id": [ + "A", + 1490 + ], + "moves": 362, + "sha256": "11d135c79de50757d62f2a4301e60f8f0b40116f4ed42de1956097aa4d82fb15" + }, + { + "classes": 5, + "id": [ + "A", + 1491 + ], + "moves": 436, + "sha256": "5fe308ee59a500a285b23fc66d495ce1cc642e4d81fdfb7a0ed0f230e98b0ca9" + }, + { + "classes": 5, + "id": [ + "A", + 1492 + ], + "moves": 363, + "sha256": "43f494b5c3b087170bf5887cf878fa94af4217460fe17cfa757c9724fe93e4b9" + }, + { + "classes": 5, + "id": [ + "A", + 1493 + ], + "moves": 1103, + "sha256": "f402ca22cadf30bd41133a16ccb09287cf15bb809b1477ed70f0bd4a9e115b87" + }, + { + "classes": 4, + "id": [ + "A", + 1494 + ], + "moves": 1071, + "sha256": "b8347319296aa29335a72b4e6374314ab74a273bfe3f9145ec7e218f3ca8270e" + }, + { + "classes": 4, + "id": [ + "A", + 1495 + ], + "moves": 1051, + "sha256": "27f7a7f7f5dd5776cf6b637d353e2bfc3e049ae76a6e0047d2eb7cac903760d1" + }, + { + "classes": 6, + "id": [ + "A", + 1496 + ], + "moves": 934, + "sha256": "26d722479ee24bfe724c4d5decbf4eb3f080321a6f790759395623e61940ef62" + }, + { + "classes": 6, + "id": [ + "A", + 1497 + ], + "moves": 2200, + "sha256": "66e57a76a7a1dcf21338ce7ebe314f8ea9cf8b47f913f32a6ac1a4e9ae712752" + }, + { + "classes": 5, + "id": [ + "A", + 1498 + ], + "moves": 2137, + "sha256": "f4a53f79eaf6c76650b39762b5eca0bfe20d06b18ae70b05363d52a26fa71840" + }, + { + "classes": 5, + "id": [ + "A", + 1499 + ], + "moves": 2098, + "sha256": "3aa5214ac25a6c53893cca4c4617e2d4efcc61315fd413c463a34045df9341bf" + }, + { + "classes": 6, + "id": [ + "A", + 1500 + ], + "moves": 1864, + "sha256": "580786b6744f944741fb287f59c24aa44fe3d5423c01391900db5cb4a0f378c2" + }, + { + "classes": 1, + "id": [ + "A", + 1501 + ], + "moves": 1, + "sha256": "f1350c4645467ff1179fd772784296da18253dcc86b5eb47be8dadf0c03601e5" + }, + { + "classes": 6, + "id": [ + "A", + 1502 + ], + "moves": 366, + "sha256": "7537768d94f98cf122d73d425bb413daae33653bafbafd84c10ed5fc13ec6dbb" + }, + { + "classes": 7, + "id": [ + "A", + 1503 + ], + "moves": 347, + "sha256": "fc3623901eac55a3dd9c20fcb6d79f746b0216e87e7a3bade9979de634e1a323" + }, + { + "classes": 6, + "id": [ + "A", + 1504 + ], + "moves": 10, + "sha256": "bd0f71e999c0064547862aebbc1aafc3ed224b115da461e0fc60f9fa15cb00ad" + }, + { + "classes": 4, + "id": [ + "A", + 1505 + ], + "moves": 7, + "sha256": "278a1e3c3b81512bee5c3e19d0b848fe7b493b5658c304e5015514686eb0e623" + }, + { + "classes": 4, + "id": [ + "A", + 1506 + ], + "moves": 4, + "sha256": "d3bfe69372d003474eb4757f88243e30c4fc6060113f414e81f6f25b66efaab9" + }, + { + "classes": 3, + "id": [ + "A", + 1507 + ], + "moves": 361, + "sha256": "ef12af665697b82f45d9f6222693e3b9e891ba4e243e1d9b055b404ccaa239bb" + }, + { + "classes": 4, + "id": [ + "A", + 1508 + ], + "moves": 342, + "sha256": "8537fdc19882fa6cd3a1817fd70723e05fd1ab46ec8def35748b6f71220e9b3b" + }, + { + "classes": 4, + "id": [ + "A", + 1509 + ], + "moves": 5, + "sha256": "8c474db5d37a70e4d6d8d1a5334640d9cc62900dbab5ef068e950cf9afcbddf8" + }, + { + "classes": 4, + "id": [ + "A", + 1510 + ], + "moves": 362, + "sha256": "3b44aa31211f0742584b963d06ced698b5b46732a4ee3cfa8cc1a622204de710" + }, + { + "classes": 4, + "id": [ + "A", + 1511 + ], + "moves": 343, + "sha256": "1d9ad46820e0a7d68d2d81dad3bc8d9cfddded539657a6755dffcfb42374d8ec" + }, + { + "classes": 3, + "id": [ + "A", + 1512 + ], + "moves": 6, + "sha256": "b9a0417c113cf1289af08479c315377e986140e33e7956206ea35443fc15aa38" + }, + { + "classes": 1, + "id": [ + "A", + 1513 + ], + "moves": 336, + "sha256": "8752f3a735ded49f73697ed8f736a9cf0ace5d218b0c782d55aaa90f26dc0fb0" + }, + { + "classes": 4, + "id": [ + "A", + 1514 + ], + "moves": 1153, + "sha256": "dffb5fdad7446a9f867cd84df55142f8fe06d413c5de215c374bc4b329ff94d3" + }, + { + "classes": 5, + "id": [ + "A", + 1515 + ], + "moves": 1089, + "sha256": "0219025708c2fcaae73d805cf50e79d3d4524e6f9c5fc465a90252875dc04006" + }, + { + "classes": 5, + "id": [ + "A", + 1516 + ], + "moves": 1064, + "sha256": "25c95addeb15aa39ff6f3f4e588035d4c2bf605e0e8d0d2360865b03899c4742" + }, + { + "classes": 7, + "id": [ + "A", + 1517 + ], + "moves": 967, + "sha256": "85db18196c5cbaa31e6a4f454a9a922f70ff65b6ce81957d03bb5eb41ff85de9" + }, + { + "classes": 5, + "id": [ + "A", + 1518 + ], + "moves": 6, + "sha256": "4e468597932bcbe120c9e2801c0427a6073eecd41a2b2a63c6526b8c1795e4e2" + }, + { + "classes": 4, + "id": [ + "A", + 1519 + ], + "moves": 8, + "sha256": "9257cc1e21f46d293b266bc198c96e7789004806cc5e5a05ccc09a7d48353d87" + }, + { + "classes": 6, + "id": [ + "A", + 1520 + ], + "moves": 9, + "sha256": "cef7b77c5d58f1b5154d53045ca986dd9e52fc425703f8ccef142fbfb1c3276e" + }, + { + "classes": 3, + "id": [ + "A", + 1521 + ], + "moves": 1089, + "sha256": "9f3427f76f363164f6d53fab25fccc1dfe9574900a66ea1bc63f9f804d3eb636" + }, + { + "classes": 1, + "id": [ + "A", + 1522 + ], + "moves": 1, + "sha256": "ed6f8bb276e197501e1d5864aa10cfab72a15ed602cd8d6815d15155eb8dacb1" + }, + { + "classes": 2, + "id": [ + "A", + 1523 + ], + "moves": 2, + "sha256": "71fbfab1e5f23dca77445857a79054ffed7075594de085019d7c3280ccc96c0c" + }, + { + "classes": 1, + "id": [ + "A", + 1524 + ], + "moves": 1, + "sha256": "c8254f2f5132cad9f6bf8c246016bf86099766256b50fafa38a3cef01598d226" + }, + { + "classes": 6, + "id": [ + "A", + 1525 + ], + "moves": 325, + "sha256": "540228adc28f71a745e107e4cd9c27037b906fb4eaaad2c6fccfbf3cabc10784" + }, + { + "classes": 5, + "id": [ + "A", + 1526 + ], + "moves": 8, + "sha256": "7966eaee7fe80fbeb3af87d42997d56d07a316ab517dcc15f73b6505195bc9df" + }, + { + "classes": 3, + "id": [ + "A", + 1527 + ], + "moves": 6, + "sha256": "be7003ce0103b43ec5f392bf9a8c101590726b3544c9adb222ef34e14af43684" + }, + { + "classes": 3, + "id": [ + "A", + 1528 + ], + "moves": 3, + "sha256": "915385eb3badc586dc310c3359d8e3c004f3e82e1b30c06ffce88a042196b76f" + }, + { + "classes": 4, + "id": [ + "A", + 1529 + ], + "moves": 321, + "sha256": "e1e82116ec99a19f716197ac769c73c93a8df9b8103fbbcf0dfc6d351e2975aa" + }, + { + "classes": 2, + "id": [ + "A", + 1530 + ], + "moves": 357, + "sha256": "bc0adc81aae79536da103c54da3b8b982186b322e9741f4fb1016bffaaa146ec" + }, + { + "classes": 4, + "id": [ + "A", + 1531 + ], + "moves": 4, + "sha256": "3140c9bde9da360dd92486f565e9ddda683d6d30ceb7d32aea994f55b09c00c7" + }, + { + "classes": 4, + "id": [ + "A", + 1532 + ], + "moves": 322, + "sha256": "6bfbb6451f5697550b39488f44dba2ef680027832ef973176a9fd3c83cddd0f5" + }, + { + "classes": 2, + "id": [ + "A", + 1533 + ], + "moves": 5, + "sha256": "fd3488c016d5f4674b4f543c01ff289c1d4f7093a9f4acc32fff2b4c6a04f6ce" + }, + { + "classes": 1, + "id": [ + "A", + 1534 + ], + "moves": 316, + "sha256": "c1169f6a89f90f1ea4b73289928856187285de65b0665cd2779f3daf45b22ee2" + }, + { + "classes": 5, + "id": [ + "A", + 1535 + ], + "moves": 1078, + "sha256": "54a2612e1aeb51245b21df0de60731f672629d9bda952ef6f007aff63737285f" + }, + { + "classes": 4, + "id": [ + "A", + 1536 + ], + "moves": 1053, + "sha256": "0eceaecb84f9dcc320b95bb730a4a01ebb1ee6a55b2917e81ba21e99d3fcd786" + }, + { + "classes": 4, + "id": [ + "A", + 1537 + ], + "moves": 1016, + "sha256": "5e6e159ae62c15e85b5ffd9f684825ebf302d61646db25e5e501362763def5a4" + }, + { + "classes": 7, + "id": [ + "A", + 1538 + ], + "moves": 953, + "sha256": "889cae903fb2af9753811ea0305ae8aef24d5e1dca53c37628fbcb78f4e70b2d" + }, + { + "classes": 2, + "id": [ + "A", + 1539 + ], + "moves": 1078, + "sha256": "4c98af11aa1fd242350a28e4d2f30fa3e7f22d71b85098366ed5b4ff9c4cfa71" + }, + { + "classes": 2, + "id": [ + "A", + 1540 + ], + "moves": 2, + "sha256": "df52ca1703f74b9dae68c4aeaffb682928952e5d7dae8fcba14ccd064fb5550e" + }, + { + "classes": 2, + "id": [ + "A", + 1541 + ], + "moves": 3, + "sha256": "184d63d1d77075a4a9e8188c51d677431c40903e9c599a740e9fd4fb53522b33" + }, + { + "classes": 4, + "id": [ + "A", + 1542 + ], + "moves": 4, + "sha256": "d96f430a8c00f882ea61fe18f79cd55838ad90f593d173db10fcfcad17368bb5" + }, + { + "classes": 2, + "id": [ + "A", + 1543 + ], + "moves": 3, + "sha256": "6a8c013b0e8fd5bee4d7ea1774a1fcc6d0d9d9a4eb855afeefbbde9d54f8fc12" + }, + { + "classes": 2, + "id": [ + "A", + 1544 + ], + "moves": 2, + "sha256": "71dd353e5a217857b05419b914ba30e3d3a092c3d792d6e4c6bf85497de58207" + }, + { + "classes": 5, + "id": [ + "A", + 1545 + ], + "moves": 342, + "sha256": "717109baf3d1603bf2218db427cf8bff42a0e8e323572691665b2c3e118f410d" + }, + { + "classes": 4, + "id": [ + "A", + 1546 + ], + "moves": 9, + "sha256": "6d38bbe3fbb5d44c06e7e228ed9e0acb0baa890fb960263a50869877250e1432" + }, + { + "classes": 5, + "id": [ + "A", + 1547 + ], + "moves": 306, + "sha256": "08e073a7d200c4e3270c6003439787baeb157eb8f14282eaa1ec5ceb9270eeb5" + }, + { + "classes": 8, + "id": [ + "A", + 1548 + ], + "moves": 345, + "sha256": "4d0bd51a582ade60bda77ad957c2aadeaf4d77d68a457a2da6cc86f53f1952d1" + }, + { + "classes": 6, + "id": [ + "A", + 1549 + ], + "moves": 12, + "sha256": "555e393acab1528859e925680e07db4689fe99e643ea024cca34d79037ee53bd" + }, + { + "classes": 6, + "id": [ + "A", + 1550 + ], + "moves": 308, + "sha256": "e8df0d01709e7ae77a897347e2718b9e4fc1d5db5ebfc61c3236ba77a81f6377" + }, + { + "classes": 4, + "id": [ + "A", + 1551 + ], + "moves": 7, + "sha256": "6ce48e8323c58a4b7844021ca6efb620546b73379f98dcbbad28e848686d432d" + }, + { + "classes": 3, + "id": [ + "A", + 1552 + ], + "moves": 335, + "sha256": "1ee26edc99193c8f93d25d8cb3c9d6723a428af6ee94cd82717efabc9d81bfe9" + }, + { + "classes": 2, + "id": [ + "A", + 1553 + ], + "moves": 2, + "sha256": "c437e429a4119ff1d8c64798eaa5e05f8a26a957da5eb200a517def816a0c4db" + }, + { + "classes": 3, + "id": [ + "A", + 1554 + ], + "moves": 299, + "sha256": "e278921bdd198cb2bf73320486c5255896487751d7ac21fffe6d1a261a7ef3b0" + }, + { + "classes": 1, + "id": [ + "A", + 1555 + ], + "moves": 333, + "sha256": "63665305f444f1e0c1ab36134243e2462475c124d79104a3029dd1ee4f3b4b33" + }, + { + "classes": 5, + "id": [ + "A", + 1556 + ], + "moves": 2372, + "sha256": "088edb2eb73cb6bc9b970fffa2c8d4f1cbdef79091bc65b573433cf1714d5dc8" + }, + { + "classes": 3, + "id": [ + "A", + 1557 + ], + "moves": 1160, + "sha256": "66ac5e0f8baa51fdbb7bb8cb4c9563deeb873ca24ab055eb4d4f9819d776d7f9" + }, + { + "classes": 4, + "id": [ + "A", + 1558 + ], + "moves": 1051, + "sha256": "001c7ae64073fa2c5c9c125826651a719bfb31597a1b75cd0c343a2333189f38" + }, + { + "classes": 7, + "id": [ + "A", + 1559 + ], + "moves": 1028, + "sha256": "278c6b64c9d0b3b44eea1de293bd8c710c803ba7bcc778543078deaeaf322a9a" + }, + { + "classes": 4, + "id": [ + "A", + 1560 + ], + "moves": 6, + "sha256": "97947b1ed1e93b7d3f4b6b35c70056ef1f42aa328bb46e8cf484368df2e60a81" + }, + { + "classes": 3, + "id": [ + "A", + 1561 + ], + "moves": 7, + "sha256": "764f85d337d39601fc391a84009e82d5cd181c22c3d3579b57acab475fb3264f" + }, + { + "classes": 6, + "id": [ + "A", + 1562 + ], + "moves": 8, + "sha256": "fccd97ca3a1878d3e9c2cba6c0a5baad395fd3d9395daac3ad89b57dd0758b20" + }, + { + "classes": 2, + "id": [ + "A", + 1563 + ], + "moves": 5, + "sha256": "150d3898b57428a1d01ee6e698418cdec12d8fbdad040f3d9cfc7a11edfe9e39" + }, + { + "classes": 1, + "id": [ + "A", + 1564 + ], + "moves": 1, + "sha256": "2eb1b7e6b873a593ed335b97aad60168832be3ab4135719bba1d2c980014e899" + }, + { + "classes": 2, + "id": [ + "A", + 1565 + ], + "moves": 3, + "sha256": "bec74ede2c0ea9d33a5c8e8dda42de1b1bdda280f602a14c0f82ce71d8d8864d" + }, + { + "classes": 5, + "id": [ + "A", + 1566 + ], + "moves": 308, + "sha256": "f3b9bd8ea678424c0ed2f258f05dc34291aac731ba8cce8008ac4586cb8140a6" + }, + { + "classes": 2, + "id": [ + "A", + 1567 + ], + "moves": 4, + "sha256": "127396f54908024ff0bfc76c9fc55a3016fe513dd0c2ee958d93297eb1ff4f38" + }, + { + "classes": 2, + "id": [ + "A", + 1568 + ], + "moves": 2, + "sha256": "006b9ab212b7c39ba81a91e60ab1e6b73de2abb50e12ebb46c15cbe652ca9983" + }, + { + "classes": 3, + "id": [ + "A", + 1569 + ], + "moves": 305, + "sha256": "4124bdf7fceaf1bd618ed80a427f24910fad3a822ea003d13167ef195b31e453" + }, + { + "classes": 2, + "id": [ + "A", + 1570 + ], + "moves": 283, + "sha256": "6448fd21c870a51a69306ffe086aa127042db2bc6671256479383eef741615cc" + }, + { + "classes": 3, + "id": [ + "A", + 1571 + ], + "moves": 306, + "sha256": "327abffe164889c4abe666aa7578149747e72ab68b4fa830bf7f853c155b8a58" + }, + { + "classes": 5, + "id": [ + "A", + 1572 + ], + "moves": 314, + "sha256": "def50e9fc867d8f0cef489632abca50b69e6233b18d49ea8c1f4d0888c4b853a" + }, + { + "classes": 4, + "id": [ + "A", + 1573 + ], + "moves": 1102, + "sha256": "9469d376c83f22af865580ba053e70b70e5487059be31c9321ffbb480a184545" + }, + { + "classes": 4, + "id": [ + "A", + 1574 + ], + "moves": 1069, + "sha256": "7b91c643095fba9c5d97213320bef638a9e5bc534d3a06056474de6aba9415b8" + }, + { + "classes": 4, + "id": [ + "A", + 1575 + ], + "moves": 1046, + "sha256": "27b923e5d6a2ac0d7ff768bcd3e5116b4a97146ef266b7c98bc09ee07ffda7f8" + }, + { + "classes": 7, + "id": [ + "A", + 1576 + ], + "moves": 1011, + "sha256": "0c162e54cc856f685f05ea6f88dc0efacb7d0bc78afc3ead6b273f0cfebe8be0" + }, + { + "classes": 5, + "id": [ + "A", + 1577 + ], + "moves": 1011, + "sha256": "992e3610adb2e87680a47748e289352c0281bb5194335f10c741e0ba81dc8821" + }, + { + "classes": 4, + "id": [ + "A", + 1578 + ], + "moves": 6, + "sha256": "b6f4657fb075c1b32b839b66fac85f683e849059668f514198a9d0a8060f96da" + }, + { + "classes": 3, + "id": [ + "A", + 1579 + ], + "moves": 7, + "sha256": "5d5db2825f79c143b9ac6d533730ec5ccf198bdb92aa7c3c8411f5d75addadee" + }, + { + "classes": 6, + "id": [ + "A", + 1580 + ], + "moves": 8, + "sha256": "cf9b5f22c5d44cbbf5f1eb74f22aec829246186b2697ed23374cb53c49827ecd" + }, + { + "classes": 2, + "id": [ + "A", + 1581 + ], + "moves": 3, + "sha256": "83c3c49db3911ca67cde3c9bd4345422e01e9b90a30b3ae92ae1c5b415b5ca6e" + }, + { + "classes": 2, + "id": [ + "A", + 1582 + ], + "moves": 2, + "sha256": "6bd1554f3c5727042bbd12133feaa3139ac23f6f1a7d7742686866104dc6b6cf" + }, + { + "classes": 7, + "id": [ + "A", + 1583 + ], + "moves": 270, + "sha256": "a5dea2efb0dcb323577bd308c97c0e8a017e9ac39a0588c7c10ab2e9230a2aae" + }, + { + "classes": 6, + "id": [ + "A", + 1584 + ], + "moves": 8, + "sha256": "39e33281f6d6e7e1ae231f732037e963ff2ad264079fd30278c9578865823c51" + }, + { + "classes": 4, + "id": [ + "A", + 1585 + ], + "moves": 311, + "sha256": "27b49312e0b09a388ca2bf017838b2604e4ea40d2bb13b2a749cead4c4c3abd8" + }, + { + "classes": 4, + "id": [ + "A", + 1586 + ], + "moves": 6, + "sha256": "e015ef039206ba77a6ead08e5643428e568e55e6d2449de1b7335a3eeb0fdec9" + }, + { + "classes": 4, + "id": [ + "A", + 1587 + ], + "moves": 4, + "sha256": "a00bf7184aac027e50c90f0fd04ae41ae01a010f9c746bd54170af9f157bb4df" + }, + { + "classes": 3, + "id": [ + "A", + 1588 + ], + "moves": 265, + "sha256": "41e90ac1e73207a3eddd1e1efc7ee74a8916e521d058990caadd7deda8f35106" + }, + { + "classes": 3, + "id": [ + "A", + 1589 + ], + "moves": 3, + "sha256": "371070e32e09e351689d46f19b183ae508431e61706a4f5ac946b79adc10e55a" + }, + { + "classes": 4, + "id": [ + "A", + 1590 + ], + "moves": 266, + "sha256": "4efe98c867fa237546edb43e25bd103adf4d566190da882c71841a522670a83f" + }, + { + "classes": 2, + "id": [ + "A", + 1591 + ], + "moves": 4, + "sha256": "d2ebee0453a2e1f2190fcef71af68d3de0bb442fa0215c10c3214cd77e379ef0" + }, + { + "classes": 1, + "id": [ + "A", + 1592 + ], + "moves": 261, + "sha256": "d5ea71135d2921123aa830bd9e28b82b7ed927985c6268f06183537614c7537e" + }, + { + "classes": 4, + "id": [ + "A", + 1593 + ], + "moves": 1250, + "sha256": "09ce8a77edf58cbd7d18ee250cdec24dc42c873cce16ecab7a951482dd77513b" + }, + { + "classes": 3, + "id": [ + "A", + 1594 + ], + "moves": 1193, + "sha256": "bbd130465d5ca672bc949c0cc517c787694d5730d9630b89f1af826e17ca702d" + }, + { + "classes": 5, + "id": [ + "A", + 1595 + ], + "moves": 1132, + "sha256": "ee47ccf9a81e9ef73252c1989f90b1bed62add117c9ecd5962ebe5401d31cb70" + }, + { + "classes": 6, + "id": [ + "A", + 1596 + ], + "moves": 1013, + "sha256": "edb626aeb106b95e82651d7c9fb72d357c95a9a004833f0685cc3afb69709583" + }, + { + "classes": 4, + "id": [ + "A", + 1597 + ], + "moves": 6, + "sha256": "e2d962d2a76f0c948c23e39bf36aba172dd2122ba476250633cd1cbb43e629ab" + }, + { + "classes": 4, + "id": [ + "A", + 1598 + ], + "moves": 7, + "sha256": "8091b5bd110cb2d41d545fbaa57d9312640e91e6b5b405d591acb793b352ad20" + }, + { + "classes": 5, + "id": [ + "A", + 1599 + ], + "moves": 8, + "sha256": "4c2b9b037e7d08939edad168a8e86ed14675b1974eca8c6bcf65c85bc70b7147" + }, + { + "classes": 2, + "id": [ + "A", + 1600 + ], + "moves": 5, + "sha256": "ed45a92a9d19960255dafb58c609c694358b4326864b4fba08e2ebd5c5be224c" + }, + { + "classes": 0, + "id": [ + "A", + 1601 + ], + "moves": 0, + "sha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945" + }, + { + "classes": 0, + "id": [ + "A", + 1602 + ], + "moves": 0, + "sha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945" + }, + { + "classes": 4, + "id": [ + "A", + 1603 + ], + "moves": 261, + "sha256": "f2903a6673907c19d601905242a5f95c1f88f336ffe1ed781c494a4db9c86c37" + }, + { + "classes": 2, + "id": [ + "A", + 1604 + ], + "moves": 3, + "sha256": "0297d014e1612abbb6548294f6398ed291a36a803a96e5fe716ae2ebefd8691e" + }, + { + "classes": 6, + "id": [ + "A", + 1605 + ], + "moves": 262, + "sha256": "913de8aae50487682475110cac02bd6a5d05393e8f1bc24fc83603d4d0a44b7f" + }, + { + "classes": 3, + "id": [ + "A", + 1606 + ], + "moves": 252, + "sha256": "b67ee5f589aa5adb466ac7d09cc5b9408f6e9ebef9272a449cf5eaf36326e7b2" + }, + { + "classes": 3, + "id": [ + "A", + 1607 + ], + "moves": 259, + "sha256": "33f8a1dea5be4870f465ce3fcc614b15548ef1019e1bd748736f4b20a750c4cf" + }, + { + "classes": 5, + "id": [ + "A", + 1608 + ], + "moves": 267, + "sha256": "5303ad2817c88dec9ea62f2e845529504d2ecc7ea4e699c82d576ae6b748d5a8" + }, + { + "classes": 5, + "id": [ + "A", + 1609 + ], + "moves": 2488, + "sha256": "d61ca2a7205f284667b92558fcb3468bd1454f29cda0262a32b2dcfe1bf56f67" + }, + { + "classes": 4, + "id": [ + "A", + 1610 + ], + "moves": 1208, + "sha256": "86ed9a5f8ee5f7376b2036b2260570d06094cb968ea84663eb9de5b530e7a23f" + }, + { + "classes": 5, + "id": [ + "A", + 1611 + ], + "moves": 1120, + "sha256": "8ab1c6943d0a59a28298573b9f7ae87364c9c1aa4f85a50820da172af7b25482" + }, + { + "classes": 7, + "id": [ + "A", + 1612 + ], + "moves": 1073, + "sha256": "1be3c5c87ffba0294a6ec32be28e2659930da5729ac1eadb2b201917d5896e5b" + }, + { + "classes": 5, + "id": [ + "A", + 1613 + ], + "moves": 6, + "sha256": "610bc4172df091a7053e4a05d8fb56a988262d9bc3409c23cecb73f59464896d" + }, + { + "classes": 4, + "id": [ + "A", + 1614 + ], + "moves": 7, + "sha256": "212fb483bbe8d50e23fbd170441366ae84c3ceef63258b64ab7e0ff7b635fdac" + }, + { + "classes": 5, + "id": [ + "A", + 1615 + ], + "moves": 9, + "sha256": "1bc969bd43d31606147c9c2f9f8c106d1a695683cb1910df62df9329f01a7d2a" + }, + { + "classes": 7, + "id": [ + "A", + 1616 + ], + "moves": 10, + "sha256": "11da6b4c498249d92273ebf3ed75e0ef79a843d8e9af9fec2df7936ac810e466" + }, + { + "classes": 2, + "id": [ + "A", + 1617 + ], + "moves": 3, + "sha256": "3c9f2973285794e348b70c340b0d7b92bc6685455bd0c21f86a564777e898a98" + }, + { + "classes": 1, + "id": [ + "A", + 1618 + ], + "moves": 1, + "sha256": "55c6099fd98f74de2039d850d19b2d9c7440f4b3debdea1547be7314f5aa6dad" + }, + { + "classes": 2, + "id": [ + "A", + 1619 + ], + "moves": 2, + "sha256": "86f3126900db9805b2331b65a5a8700da26b3b8f3830166ea74d52d797da9634" + }, + { + "classes": 1, + "id": [ + "A", + 1620 + ], + "moves": 1, + "sha256": "55c6099fd98f74de2039d850d19b2d9c7440f4b3debdea1547be7314f5aa6dad" + }, + { + "classes": 4, + "id": [ + "A", + 1621 + ], + "moves": 244, + "sha256": "8a9db1b9ee58b7f8072351b87d6557f4d8040814c6a17036cbebacf277716137" + }, + { + "classes": 2, + "id": [ + "A", + 1622 + ], + "moves": 4, + "sha256": "2caa00e0b63358f7f8c09f23aa3c1e6776acc765d94b9905241881c0d6d69ab5" + }, + { + "classes": 7, + "id": [ + "A", + 1623 + ], + "moves": 246, + "sha256": "e3476952fd742e0276be6488942d0027297842190b61efde3972d7a4c53b5976" + }, + { + "classes": 3, + "id": [ + "A", + 1624 + ], + "moves": 236, + "sha256": "8e6fcf1fea6d6d9a138b76c0cdcf7c1ab7576d785ead55c75a12b658d6ea61f8" + }, + { + "classes": 4, + "id": [ + "A", + 1625 + ], + "moves": 7, + "sha256": "72df756542b7e8d763df12df8f5493353a8db14b55508ddf2528df24a837b4f0" + }, + { + "classes": 3, + "id": [ + "A", + 1626 + ], + "moves": 242, + "sha256": "48e3352b78ee12a00519a11992afb42408b7f1158bd6e2fbc54fea3126e277c6" + }, + { + "classes": 2, + "id": [ + "A", + 1627 + ], + "moves": 239, + "sha256": "da529e6c96f5993afe04af9526d8719d5c133553984ffa342c770c43924a3ad3" + }, + { + "classes": 5, + "id": [ + "A", + 1628 + ], + "moves": 1225, + "sha256": "c914178b3267acd02775b767ffd3669a82ab5068f7fac0657cbb7f503b11211e" + }, + { + "classes": 5, + "id": [ + "A", + 1629 + ], + "moves": 1202, + "sha256": "cf02e2c91abb3fcb43aadb63b71d84a2757dfe0940a084e7d01f946dcbe7aa0b" + }, + { + "classes": 4, + "id": [ + "A", + 1630 + ], + "moves": 1132, + "sha256": "0b0f677988e4d5078ccd569615e442044b3b5ff5cbdf00e024dadd8cdf62d45f" + }, + { + "classes": 7, + "id": [ + "A", + 1631 + ], + "moves": 1085, + "sha256": "f7fc86e49a751c72ee3a28b83947a70c0479bec9395e795e53fe37d6712f0233" + }, + { + "classes": 5, + "id": [ + "A", + 1632 + ], + "moves": 1225, + "sha256": "c69fbd66d3e8ec52b7137965097c1dcc9ce3ab133dfe4b5b1953c3505d42482b" + }, + { + "classes": 5, + "id": [ + "A", + 1633 + ], + "moves": 1203, + "sha256": "2b0b11d50c65b4f40f78b2ea00ed49255857a8fc9284d6ec3c907f5fddbe0762" + }, + { + "classes": 4, + "id": [ + "A", + 1634 + ], + "moves": 1132, + "sha256": "68d2f27319d2150f428d4d7e2ecb03e52566d0f6e4b32c9d20e28040105ebdbf" + }, + { + "classes": 7, + "id": [ + "A", + 1635 + ], + "moves": 1085, + "sha256": "8af2c71bba80594ff8352d2a7f925d1e08dd1040e94073b0c9cb449ef314a976" + }, + { + "classes": 3, + "id": [ + "A", + 1636 + ], + "moves": 7, + "sha256": "0cda3aaee2bcf29fff3743a86b7f40e7ac1be9c0566b4f8bfb9255b741f80f28" + }, + { + "classes": 3, + "id": [ + "A", + 1637 + ], + "moves": 5, + "sha256": "43326e0e525f83ad3d11cbb2ac15333a834fbc744f7180b162a588cd9d412708" + }, + { + "classes": 2, + "id": [ + "A", + 1638 + ], + "moves": 3, + "sha256": "025850069604ed8ffa6ca08c1149e46207fb3ab9c1f35c5a9a02cd3a701007d7" + }, + { + "classes": 5, + "id": [ + "A", + 1639 + ], + "moves": 231, + "sha256": "2062584212f8dd0a8b07c54988a3d394a199fe34ee812111c51e3919e61ab400" + }, + { + "classes": 4, + "id": [ + "A", + 1640 + ], + "moves": 217, + "sha256": "cbba6267865d31170ce77ec842b2e18eda7c8a6103714802b8bf8f9bd384449f" + }, + { + "classes": 3, + "id": [ + "A", + 1641 + ], + "moves": 6, + "sha256": "ff08a19ef4c28a147d19069ed731092ef924633cbd34128872b7cfd966780ea3" + }, + { + "classes": 7, + "id": [ + "A", + 1642 + ], + "moves": 235, + "sha256": "75bbf40b0d3ef71a0fe8bb553a0706c9680e66cde4e70f6dd9b2b8ed052bbaa3" + }, + { + "classes": 5, + "id": [ + "A", + 1643 + ], + "moves": 220, + "sha256": "0850516c70e0f57090d289c59b31bcec62851700edcbfb2423b36f2ba55d46b3" + }, + { + "classes": 4, + "id": [ + "A", + 1644 + ], + "moves": 9, + "sha256": "112d2f758fab0cc4a5be9bd4fc613a31442563ae2c66a7ee0dfad4c85d5a3e00" + }, + { + "classes": 1, + "id": [ + "A", + 1645 + ], + "moves": 225, + "sha256": "3a1bce22dc1ed0373f11e8abd2cf0ff0fa9146e2837e1073b5bad6b39dd545a7" + }, + { + "classes": 3, + "id": [ + "A", + 1646 + ], + "moves": 228, + "sha256": "c0140041290a18d6053ef7f443649c253ade281dbb4b0f41b3f820e917ce5f1f" + }, + { + "classes": 3, + "id": [ + "A", + 1647 + ], + "moves": 214, + "sha256": "d6515419631fc7751d7e02aaa18a2c124f4c2e3a52c8091e48e5b97ee501af26" + }, + { + "classes": 4, + "id": [ + "A", + 1648 + ], + "moves": 1295, + "sha256": "d88d9ce383acc9046e1a1e3ffd0b91c54cddeee58a31e2db4f027cd2854a146e" + }, + { + "classes": 5, + "id": [ + "A", + 1649 + ], + "moves": 1239, + "sha256": "bd9c87064fda3facb46f4eba92eab5c20300791c1c5971c10bc6135b32a176f2" + }, + { + "classes": 5, + "id": [ + "A", + 1650 + ], + "moves": 1193, + "sha256": "f82d7b651d976837bc971bc7ea5f0f0c04d0852c5be9557011eada3903b8a07c" + }, + { + "classes": 6, + "id": [ + "A", + 1651 + ], + "moves": 1074, + "sha256": "e509a8532b050323cc5ba686327c31fe6bfd7cd4cfb68cf1fddce1d2774fdd2b" + }, + { + "classes": 5, + "id": [ + "A", + 1652 + ], + "moves": 6, + "sha256": "9895990c31fa945d9539feacb164440591757addbe599ff10c838521d708d467" + }, + { + "classes": 4, + "id": [ + "A", + 1653 + ], + "moves": 7, + "sha256": "7f4131052bf7edea55bba02118f78de57bfa6d2513f13e50ee46336a2055f906" + }, + { + "classes": 5, + "id": [ + "A", + 1654 + ], + "moves": 8, + "sha256": "abb7d1376dd809a944d0b59033732ced7b439e829eb50102eb4760c308cf92db" + }, + { + "classes": 3, + "id": [ + "A", + 1655 + ], + "moves": 1239, + "sha256": "aa536805bca164ac3ea88d380b316b9eda3244206607aea4d5995a94421bba7b" + }, + { + "classes": 0, + "id": [ + "A", + 1656 + ], + "moves": 0, + "sha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945" + }, + { + "classes": 0, + "id": [ + "A", + 1657 + ], + "moves": 0, + "sha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945" + }, + { + "classes": 5, + "id": [ + "A", + 1658 + ], + "moves": 199, + "sha256": "7814e30faf8b13da3a471a5106d3fd0b74fdaf07fb6bed110a070750b51c1cbe" + }, + { + "classes": 4, + "id": [ + "A", + 1659 + ], + "moves": 7, + "sha256": "f242c587e25fedbf6bd2e5c476fd29b7e873c0f06b60cf6d55a7a9b5bc2dd5d6" + }, + { + "classes": 3, + "id": [ + "A", + 1660 + ], + "moves": 5, + "sha256": "1a48ef33795cd117e278fa6fac14f4fc10410c235c552953ee4a22740001cb70" + }, + { + "classes": 7, + "id": [ + "A", + 1661 + ], + "moves": 200, + "sha256": "2eea658e45fbe76f68d91651e31b0dd78b32126a93d3844d5a0089764cbbfeb0" + }, + { + "classes": 3, + "id": [ + "A", + 1662 + ], + "moves": 233, + "sha256": "376c54709d033494342824b37027e117416c0a1f93349df55dd58da87ca5eebb" + }, + { + "classes": 6, + "id": [ + "A", + 1663 + ], + "moves": 8, + "sha256": "12ddea9175b5a7cd01bf1cce024a22db221d9b84f25245a229d0f8106da4481d" + }, + { + "classes": 4, + "id": [ + "A", + 1664 + ], + "moves": 196, + "sha256": "31c187f19a4ef0a3d5f25fb12cf22978bea818e4c21d3417b1583a8e847008c5" + }, + { + "classes": 2, + "id": [ + "A", + 1665 + ], + "moves": 4, + "sha256": "3769c2a42f4f435531b473ddd6f2a25337e0e7073efe2c389cfd8fcd73b60f13" + }, + { + "classes": 1, + "id": [ + "A", + 1666 + ], + "moves": 191, + "sha256": "717e050ec42e7e10a392879a0e887e3fe25d4303ace23cf5e7f76094ac8b2a86" + }, + { + "classes": 4, + "id": [ + "A", + 1667 + ], + "moves": 1256, + "sha256": "46ecdaec5605f6a9b0132b446904a9347c90c69aab35708f8d9e8d766ea1396a" + }, + { + "classes": 5, + "id": [ + "A", + 1668 + ], + "moves": 1160, + "sha256": "be839ba7076dea6f826cb3083ae7216f20e27c3bb28f7ca456bae9feb1929920" + }, + { + "classes": 6, + "id": [ + "A", + 1669 + ], + "moves": 1137, + "sha256": "d30cdcec9fc64c2e3ed1e6663a5e93979de5d4b4cda784c83a5c2b5c2660ae17" + }, + { + "classes": 7, + "id": [ + "A", + 1670 + ], + "moves": 1102, + "sha256": "826a766a46e9d11f7af04dc93192bf6d2eb9269782156def52425a10bc5fd9fc" + }, + { + "classes": 4, + "id": [ + "A", + 1671 + ], + "moves": 6, + "sha256": "fdb2397219639b69f42027c12672f2e26dda9f6572cb022ca425f1f7b329abb4" + }, + { + "classes": 5, + "id": [ + "A", + 1672 + ], + "moves": 9, + "sha256": "83d70fafaeff934f91ed5efb312b1e1d00a67eb7c4058b546d75876ce810d353" + }, + { + "classes": 6, + "id": [ + "A", + 1673 + ], + "moves": 10, + "sha256": "e7974824381b9401b63263f394be05080b0beeacbbb11d8f0ac4445f5615a98d" + }, + { + "classes": 7, + "id": [ + "A", + 1674 + ], + "moves": 11, + "sha256": "8612cd5496a56bee4188365acb97281417e8539ddee4f354900dafabd6137ef3" + }, + { + "classes": 4, + "id": [ + "A", + 1675 + ], + "moves": 5, + "sha256": "e7e411a38aa9971bc723d443c89928a165ff4471f6bd5977cc5eb4cb86c4aa16" + }, + { + "classes": 4, + "id": [ + "A", + 1676 + ], + "moves": 6, + "sha256": "c0004c5f6da7d707181b163c49a01cb60ff54ceca99f40d4c918a749686f6f47" + }, + { + "classes": 5, + "id": [ + "A", + 1677 + ], + "moves": 7, + "sha256": "826a02667eb01717eb832c88cddc7822e5442a6f49f71424874b85fce3b29976" + }, + { + "classes": 2, + "id": [ + "A", + 1678 + ], + "moves": 2, + "sha256": "baa3a3bb20136b5510c05b4b8de1b43c4f8ab42cdd8dcb46239c540b98666a2d" + }, + { + "classes": 0, + "id": [ + "A", + 1679 + ], + "moves": 0, + "sha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945" + }, + { + "classes": 3, + "id": [ + "A", + 1680 + ], + "moves": 246, + "sha256": "3c9bd9c4f1d44ed07b1461c57db35eabc20e4f40343fa5e5984e10e1b341ac4f" + }, + { + "classes": 4, + "id": [ + "A", + 1681 + ], + "moves": 209, + "sha256": "9c1899ad3c404554dba92e2ff0a427dcf44a356eaef61483f03c17e502f604c2" + }, + { + "classes": 5, + "id": [ + "A", + 1682 + ], + "moves": 247, + "sha256": "1b0ea6fde0eda3a84b0f8129b911f948e4af9140bf765e3139d6f9a445b7d9c3" + }, + { + "classes": 5, + "id": [ + "A", + 1683 + ], + "moves": 210, + "sha256": "b37a5149eb7d4964293539a705ffda066a279f14671baa9bcebaf624df38b687" + }, + { + "classes": 5, + "id": [ + "A", + 1684 + ], + "moves": 250, + "sha256": "7e94adab016d1ba21bc60fff3f897e7056c297b34432f2309b13a0a8551207cc" + }, + { + "classes": 5, + "id": [ + "A", + 1685 + ], + "moves": 211, + "sha256": "8622ffd6628fc2baadf9cfef80ab4375af2668ed8b5e828776a1b72c4cdbeeef" + }, + { + "classes": 5, + "id": [ + "A", + 1686 + ], + "moves": 1236, + "sha256": "38ccffcc946ea7165eee8447bee3295abd332ae111a3c68a0f5bd70a13585ee6" + }, + { + "classes": 4, + "id": [ + "A", + 1687 + ], + "moves": 1175, + "sha256": "41d055bd267a4870c8bd996b5b562ae69ad8ae9aa78190ca56e6fd1d77af54a5" + }, + { + "classes": 5, + "id": [ + "A", + 1688 + ], + "moves": 1162, + "sha256": "b3fdddb0648e229b941f192f84648f2078b77e0994d756f539d33730d273d94d" + }, + { + "classes": 6, + "id": [ + "A", + 1689 + ], + "moves": 1136, + "sha256": "ac9afab7e9312cdd03494ab1557d9e2d81f55d6c6531cf479f8468ed3deee6b4" + }, + { + "classes": 5, + "id": [ + "A", + 1690 + ], + "moves": 1236, + "sha256": "3ae09b383cf552515aad06fc09adc59462f8c9cf692720b06de0db984f60ff5e" + }, + { + "classes": 4, + "id": [ + "A", + 1691 + ], + "moves": 1175, + "sha256": "d07b168d2bb675085c993a89304224be32944d6a366696eab069ada98329d247" + }, + { + "classes": 5, + "id": [ + "A", + 1692 + ], + "moves": 1163, + "sha256": "45441f8d256c2ebfa05bbdfa794001dfc2760b71e657197887eb16093a6681b3" + }, + { + "classes": 5, + "id": [ + "A", + 1693 + ], + "moves": 1136, + "sha256": "daee5e56d54de2bbeecdba4c5e1eef39d1c96e4f3a26d390873bcc27e4bd8356" + }, + { + "classes": 2, + "id": [ + "A", + 1694 + ], + "moves": 4, + "sha256": "fe1bce76d3161125988276e01c2d644990fc10d53553275d65767e02a230427b" + }, + { + "classes": 2, + "id": [ + "A", + 1695 + ], + "moves": 6, + "sha256": "fbcf0449bdcf45fd38932074378e51d5a8da0d9041ec7523d364b9bf404f413f" + }, + { + "classes": 7, + "id": [ + "A", + 1696 + ], + "moves": 202, + "sha256": "f80405389234e226c30fab1c73fdb9bf7e61615fa6f4b41ccae9704dd95d2be5" + }, + { + "classes": 6, + "id": [ + "A", + 1697 + ], + "moves": 166, + "sha256": "ee096f64c0db93e578263882aacb0ba51a5047540679844e0a4bf92b0630dd40" + }, + { + "classes": 4, + "id": [ + "A", + 1698 + ], + "moves": 9, + "sha256": "fc9702e7c872cae31e4de9d0ee66566b401b34454115871061cf602deb58b2c9" + }, + { + "classes": 4, + "id": [ + "A", + 1699 + ], + "moves": 6, + "sha256": "623a62b8f5b7ecdb509de3703f764f829934095a5e98747c05f40d2c54d79deb" + }, + { + "classes": 6, + "id": [ + "A", + 1700 + ], + "moves": 201, + "sha256": "72e3539d422b82f81da9ec1c8a9af363a5fa54de5c28a7a8551d3a7937a1395c" + }, + { + "classes": 5, + "id": [ + "A", + 1701 + ], + "moves": 165, + "sha256": "00e3cc57650391e45d719b0ce9cb8dc204b346956f8c9b19a49b5bdeab5fdd3e" + }, + { + "classes": 4, + "id": [ + "A", + 1702 + ], + "moves": 8, + "sha256": "638f0b01d1b78616f37f8dfa9d53c617871946667b030fb9552cde11ab11eb06" + }, + { + "classes": 4, + "id": [ + "A", + 1703 + ], + "moves": 197, + "sha256": "0adf2148ea5bb6e66c192d528d1a7e85950b044e6868a04907d1b64b4186b101" + }, + { + "classes": 4, + "id": [ + "A", + 1704 + ], + "moves": 161, + "sha256": "4231c8081053b91a107d13c194b88616c46c0330199ed5b55a26301b90f4f896" + }, + { + "classes": 3, + "id": [ + "A", + 1705 + ], + "moves": 194, + "sha256": "f5b79c07d039244e4c7e05cb1e074ff3799c8ff48de9709716cfa206da653e01" + }, + { + "classes": 3, + "id": [ + "A", + 1706 + ], + "moves": 158, + "sha256": "cf06ee6f2d8f5cd1bf6edf74d55fc1a1b51ce0af727e9e5905f4a33a9d4a5784" + }, + { + "classes": 5, + "id": [ + "A", + 1707 + ], + "moves": 1263, + "sha256": "f99ecf1454701b94a8eb8956285e278c90dc86b0945d33ef39fe4ae157d89d61" + }, + { + "classes": 4, + "id": [ + "A", + 1708 + ], + "moves": 1207, + "sha256": "57e0cee93d49a0e175a8402f2f842ee228e5e9e3c20e30a8daf1837ca24b006a" + }, + { + "classes": 6, + "id": [ + "A", + 1709 + ], + "moves": 1175, + "sha256": "50e542055937bc157e1efe7ee6ee3636a496f737dac97278c81042621b48bf7d" + }, + { + "classes": 7, + "id": [ + "A", + 1710 + ], + "moves": 1153, + "sha256": "b3be3b7f9bda9bb2662b9fabf73fecf72c721540a43117d400ed99a0362872ff" + }, + { + "classes": 6, + "id": [ + "A", + 1711 + ], + "moves": 2520, + "sha256": "9f6214f6a1f63d2cbb9cd54fb0fde212ff37a997d3e5bd112ca9b7824b4e9d13" + }, + { + "classes": 5, + "id": [ + "A", + 1712 + ], + "moves": 2407, + "sha256": "dad95b976337aff81f1a296af84a50bf3669c7c8435e62628170ab974ac25184" + }, + { + "classes": 7, + "id": [ + "A", + 1713 + ], + "moves": 2343, + "sha256": "270260dc6924dce69a72a4b2713829a0a21f5c467fd4569003182ea211e07996" + }, + { + "classes": 8, + "id": [ + "A", + 1714 + ], + "moves": 2299, + "sha256": "150147590e74155d3fbb60c8f974c31d006d97d736c116baaa2e76cbbf0d7c0c" + }, + { + "classes": 4, + "id": [ + "A", + 1715 + ], + "moves": 9, + "sha256": "2ff65aa9e85977e560412b49f45d035fee1a126edd47a982c63888c98f1b94fb" + }, + { + "classes": 4, + "id": [ + "A", + 1716 + ], + "moves": 6, + "sha256": "ae24a003223be0a2080cc62c1430506cc42a316fca7a7c38606033625ccee833" + }, + { + "classes": 4, + "id": [ + "A", + 1717 + ], + "moves": 7, + "sha256": "81c81c58504731af19c026b32896c3a3e3cc9ddef7fa50ed2dfda94a88716b74" + }, + { + "classes": 3, + "id": [ + "A", + 1718 + ], + "moves": 5, + "sha256": "f03ed9243a352b7eac89c6bba2d3556d7b7d44bb706e8f32ed78079453830779" + }, + { + "classes": 5, + "id": [ + "A", + 1719 + ], + "moves": 179, + "sha256": "78a4391f919f24708c38c950ea59154d6c59e759a48ab8b28e10503bd091bd7f" + }, + { + "classes": 5, + "id": [ + "A", + 1720 + ], + "moves": 143, + "sha256": "eac944c0a6968cba04aa884aff67a824e888d2bd5dcd6c81686ca16955bc8634" + }, + { + "classes": 3, + "id": [ + "A", + 1721 + ], + "moves": 5, + "sha256": "bee30181f44559c19aeba5f457c5204306edfc8b355ccf09819c03c13a8ac86d" + }, + { + "classes": 6, + "id": [ + "A", + 1722 + ], + "moves": 180, + "sha256": "1da629c9bb61ed6eea18edd49643db85bd054ddba559ca841f4c606b96ca6e0e" + }, + { + "classes": 5, + "id": [ + "A", + 1723 + ], + "moves": 144, + "sha256": "6e3c35f9fd294a4ac30741d88f0f403b937d4c367ff70646d85b861e7c68d669" + }, + { + "classes": 3, + "id": [ + "A", + 1724 + ], + "moves": 8, + "sha256": "a83235d1ef804e570aa9d0bbbd8c5a248274ded6e4715099e0aaccd19cc41ef5" + }, + { + "classes": 4, + "id": [ + "A", + 1725 + ], + "moves": 176, + "sha256": "54853df96e00b6bf839adf43afccb25e88097ea1b7fe4ee981ca22f34e5e0e83" + }, + { + "classes": 4, + "id": [ + "A", + 1726 + ], + "moves": 140, + "sha256": "d78c2036f8e2321be77ab6238d79220c94d9795e22deb94dc36c7d8a2c6473f1" + }, + { + "classes": 3, + "id": [ + "A", + 1727 + ], + "moves": 173, + "sha256": "0ca04394495724da435fce1bc30a87d258ae53e8da54bf0b89b32ea46f528e08" + }, + { + "classes": 3, + "id": [ + "A", + 1728 + ], + "moves": 137, + "sha256": "70d888952d85813d655b8faeb35156adc4c77582204e02ca264c4de19e8434fe" + }, + { + "classes": 5, + "id": [ + "A", + 1729 + ], + "moves": 2594, + "sha256": "cf25e2b9e18d5dff20150c58a15c82c0d10cae7c83734d8066e64496c8399b38" + }, + { + "classes": 5, + "id": [ + "A", + 1730 + ], + "moves": 2520, + "sha256": "d1e6171f5fbbdcd45abdcea2117325ecff5efd75dff6b8b304893c51f08461c4" + }, + { + "classes": 6, + "id": [ + "A", + 1731 + ], + "moves": 2483, + "sha256": "df8a9322fa654ceb51393eca00388c72b190d8a2b3f0bc7da612469251dd706f" + }, + { + "classes": 7, + "id": [ + "A", + 1732 + ], + "moves": 2424, + "sha256": "2f01d158155e407f74d0652d9ef9c2e00613559209429223d8e5a7b9e3a60f6c" + }, + { + "classes": 5, + "id": [ + "A", + 1733 + ], + "moves": 6, + "sha256": "c5ee1ac21a01aa950ab1a3e0a99939e208b4ad52fd629a915506ad56e33e9333" + }, + { + "classes": 5, + "id": [ + "A", + 1734 + ], + "moves": 9, + "sha256": "84a71ea6455852317084300ecc10e99bea372b20e170e5b28e7fe32d1fa98524" + }, + { + "classes": 5, + "id": [ + "A", + 1735 + ], + "moves": 10, + "sha256": "541e218b464e8ea7433e442ff4e9d6330b057dec2864ccf5c62ac28f79d5b93d" + }, + { + "classes": 7, + "id": [ + "A", + 1736 + ], + "moves": 11, + "sha256": "9d3b265778ac219133c546d3e14e13858f2de8ecdad7cf7be4ed4e7b02fba579" + }, + { + "classes": 4, + "id": [ + "A", + 1737 + ], + "moves": 5, + "sha256": "d99b25a34f10d5e6bcfd270d931aa83005ab8e1a5c83ac9163cbba2c5ebd7504" + }, + { + "classes": 3, + "id": [ + "A", + 1738 + ], + "moves": 6, + "sha256": "675e06b8f09a3c848e760365e448e7c918105f83269ed04e30d3258f05d40ce1" + }, + { + "classes": 5, + "id": [ + "A", + 1739 + ], + "moves": 7, + "sha256": "c03592a51d5c4a7073bc7ece4489f0e11bb5f1cbcfc594d8bc0aa8fb04a01d58" + }, + { + "classes": 2, + "id": [ + "A", + 1740 + ], + "moves": 3, + "sha256": "04cf561b35f5de3c17eb0ebd12d530f9a35127205ef36d18a72f68b9207e3b4e" + }, + { + "classes": 2, + "id": [ + "A", + 1741 + ], + "moves": 2, + "sha256": "a308e7f2232ef2a0c6f7958094a51284b8353674e651a192ae1fcc0fd0a32756" + }, + { + "classes": 5, + "id": [ + "A", + 1742 + ], + "moves": 188, + "sha256": "6f09c3de0bd153b9fb7467bc247940b00545215b27371d9eb83c5176f966f77c" + }, + { + "classes": 3, + "id": [ + "A", + 1743 + ], + "moves": 124, + "sha256": "7905224f8f4a49ac9100e31866f369586d3789ec32a534d3f7f2df18dab77f03" + }, + { + "classes": 3, + "id": [ + "A", + 1744 + ], + "moves": 4, + "sha256": "1ff7d681f582df0ae4380cf7072cd511227a96e18062efc77b4c0606e61eae93" + }, + { + "classes": 3, + "id": [ + "A", + 1745 + ], + "moves": 3, + "sha256": "a702e78fecea82b31c9a0f6520db87f1d0588a0ead1c0140e67fce3569656ba3" + }, + { + "classes": 1, + "id": [ + "A", + 1746 + ], + "moves": 184, + "sha256": "1795e4317ed1f860f3c6c20bf98022fb8e2974abed53b26d68d7f3617459ebf9" + }, + { + "classes": 2, + "id": [ + "A", + 1747 + ], + "moves": 185, + "sha256": "5367718b98158fcf78b23d06f12cd15a18bddc738e8cb1ff7606eeaba8349051" + }, + { + "classes": 5, + "id": [ + "A", + 1748 + ], + "moves": 1269, + "sha256": "5b5e4f62b6b2d9f3e741bfbdf5d6946bf356bf0c3a576519278bb53265caa86c" + }, + { + "classes": 4, + "id": [ + "A", + 1749 + ], + "moves": 1268, + "sha256": "29b0b9eb97adfde4c337504c3478c624845cdb5f79dbe69dea7b230c44ba93d7" + }, + { + "classes": 4, + "id": [ + "A", + 1750 + ], + "moves": 1227, + "sha256": "e17ffe3234662594bf9b08d14fced311deef36b4b10533fd6d86f794e763f2b8" + }, + { + "classes": 7, + "id": [ + "A", + 1751 + ], + "moves": 1188, + "sha256": "bf27256c6bcd286c76045f0b778893840ff82cd99fc1245140d39a3fa4c86939" + }, + { + "classes": 2, + "id": [ + "A", + 1752 + ], + "moves": 1269, + "sha256": "d415ce6770163aa1b5cbe219f80551feb3c213971b66cf8a88ae19656c10128a" + }, + { + "classes": 2, + "id": [ + "A", + 1753 + ], + "moves": 2, + "sha256": "2a9def49d9d39db60ebee276e4aec26f915735ec81f772e1263838a2b95bc7b6" + }, + { + "classes": 2, + "id": [ + "A", + 1754 + ], + "moves": 3, + "sha256": "58fb76c62983fef5066e5403ef532f0ee88675b06853efd0003807f90b720e54" + }, + { + "classes": 4, + "id": [ + "A", + 1755 + ], + "moves": 4, + "sha256": "26063dea554d88ba06a78380ab542033e0d21fe4b03412860ec60c573fa681e2" + }, + { + "classes": 2, + "id": [ + "A", + 1756 + ], + "moves": 3, + "sha256": "ffea20919c3acd0a8e5a0ffd31e9cba2508c10851ebcf6ca1864afb96879f4ca" + }, + { + "classes": 2, + "id": [ + "A", + 1757 + ], + "moves": 2, + "sha256": "03e2f1dc811929c7c393a1bc125e3d3ac1509430e6a84e161818502a7fb9d456" + }, + { + "classes": 4, + "id": [ + "A", + 1758 + ], + "moves": 147, + "sha256": "ab81f8a3788e990f9622982e5f6521dc3cacf58ea431935cfc1a85a3f74385b5" + }, + { + "classes": 4, + "id": [ + "A", + 1759 + ], + "moves": 7, + "sha256": "125cc60542f9094455e50ab73c41aa948ab97d5de7896c0b9b304b52c4f4be83" + }, + { + "classes": 7, + "id": [ + "A", + 1760 + ], + "moves": 150, + "sha256": "7d6eeef4d2b8636edae38ebb8e28a60a28bc0aafd5f60e8f27461f3c4e4f1e89" + }, + { + "classes": 5, + "id": [ + "A", + 1761 + ], + "moves": 10, + "sha256": "24c4d90b3cc6f76be5389434d318b508d10e9f1fce3f77d811c26f9e834b290d" + }, + { + "classes": 5, + "id": [ + "A", + 1762 + ], + "moves": 113, + "sha256": "a0d119d875d357981aa7f263715b172146275e6614e42ee779c02cb1976b612e" + }, + { + "classes": 7, + "id": [ + "A", + 1763 + ], + "moves": 151, + "sha256": "980d58aa098fb7cc867f283f260fbe60619f3a79f4b60c74c23074c229465ab1" + }, + { + "classes": 5, + "id": [ + "A", + 1764 + ], + "moves": 11, + "sha256": "9d557d3a879835faad9f048fdc139542404766d07ce94e70320e934dcdf837bf" + }, + { + "classes": 5, + "id": [ + "A", + 1765 + ], + "moves": 113, + "sha256": "bc09830bee5a5e6e99b6911896c81590878f18c1c9ac0e44afd33f9bd600afc1" + }, + { + "classes": 1, + "id": [ + "A", + 1766 + ], + "moves": 140, + "sha256": "a89dda5cd199af14a91f501519721c919dcc1078699acfb95d970741650a363c" + }, + { + "classes": 5, + "id": [ + "A", + 1767 + ], + "moves": 2662, + "sha256": "ae6b72c8f1bfce4580b5d836bd2cb1d671778668ebdf7ad1de81a6cab7fb4e39" + }, + { + "classes": 4, + "id": [ + "A", + 1768 + ], + "moves": 1307, + "sha256": "5b2322ddbdee67e6b8bc909f98e99d88444b6573fc5db893668f387c24ee1b80" + }, + { + "classes": 5, + "id": [ + "A", + 1769 + ], + "moves": 1274, + "sha256": "5be91fb1cb73e8c56c4ed6d155ae2ade6fd77aa60a63abcbc4b700f4ba2a5708" + }, + { + "classes": 6, + "id": [ + "A", + 1770 + ], + "moves": 1227, + "sha256": "e63c09130a7e7eb4ca0e28049be86aa6e34131208ca3d04c528e981b5e863f7d" + }, + { + "classes": 5, + "id": [ + "A", + 1771 + ], + "moves": 6, + "sha256": "c9385c46e9a75332a5099d80d9e12b665e224116d86328f3d7b98c178864fd26" + }, + { + "classes": 5, + "id": [ + "A", + 1772 + ], + "moves": 9, + "sha256": "a722868b6e6e6ede11cb20c46056ab672ef4b15f8a6c49f9e68d67a3e2b418b1" + }, + { + "classes": 6, + "id": [ + "A", + 1773 + ], + "moves": 14, + "sha256": "525155d1802338892a8202aad65c78038d27402c658af6a190bae8faa2f13fb0" + }, + { + "classes": 6, + "id": [ + "A", + 1774 + ], + "moves": 10, + "sha256": "4043c3b59a0f2d8d1ae44b078c6952d9219338b2e01cfadc1ff3c5c02c7c22ae" + }, + { + "classes": 4, + "id": [ + "A", + 1775 + ], + "moves": 5, + "sha256": "21158fbfb0362c1042f3bece25039b766a9a6b46583741a4884d8f8079a8351b" + }, + { + "classes": 3, + "id": [ + "A", + 1776 + ], + "moves": 7, + "sha256": "a8c7a4b2e9bcc8288b021d71015d34cd309967f94e7ba4f538f48eba43d5b4ea" + }, + { + "classes": 4, + "id": [ + "A", + 1777 + ], + "moves": 6, + "sha256": "de748126b6eb5b71c7d579dcde191b46e0e5e5f46a292e193a50094c3c215217" + }, + { + "classes": 1, + "id": [ + "A", + 1778 + ], + "moves": 2, + "sha256": "d68bf9b48b76e9d92ca21429d05cea679e19baefc94a3b500091c95136a30151" + }, + { + "classes": 5, + "id": [ + "A", + 1779 + ], + "moves": 142, + "sha256": "0af235e4bd717539a06d91a1195b8305e41ba2e8af88237310cb1a83bb5ade3a" + }, + { + "classes": 3, + "id": [ + "A", + 1780 + ], + "moves": 92, + "sha256": "9fbde797f6f7aab86d3d5c45e4f70a0eb3c202a430c634fc17164c3d188d3c62" + }, + { + "classes": 4, + "id": [ + "A", + 1781 + ], + "moves": 5, + "sha256": "ab0d17562ec439561698ef31ce509df5cba6cdf8117d5c8b9bc23e3170d39975" + }, + { + "classes": 3, + "id": [ + "A", + 1782 + ], + "moves": 3, + "sha256": "73943c67329bf61459b7d6ed9199755c2b661561afe1f99511f40e39084ae163" + }, + { + "classes": 2, + "id": [ + "A", + 1783 + ], + "moves": 138, + "sha256": "a042608a2d33a1bd87b17b7649d7609651260fc897ad0d9d5576bc3d748a45b6" + }, + { + "classes": 1, + "id": [ + "A", + 1784 + ], + "moves": 1, + "sha256": "45bf12e6b47d4af878a6d5dfd002d382b2463505c0de25631053123fd6234ae0" + }, + { + "classes": 1, + "id": [ + "A", + 1785 + ], + "moves": 136, + "sha256": "e45297c00db5c1893da874f551949a238ae0c8d859aa71339632e943d6e71d23" + }, + { + "classes": 5, + "id": [ + "A", + 1786 + ], + "moves": 2647, + "sha256": "fd02ef2f20838db853c8325d9fff472c2d110ad3884c59753909752ff9572b67" + }, + { + "classes": 5, + "id": [ + "A", + 1787 + ], + "moves": 2578, + "sha256": "90db5465a223567f06804aa1ebdfb09d2a978a1a03f10d54384f60ed6d23b046" + }, + { + "classes": 5, + "id": [ + "A", + 1788 + ], + "moves": 2483, + "sha256": "a744661a2b85a17924cbd5d093d13876ad7cb5f0023831ac1d454cc94c787c43" + }, + { + "classes": 7, + "id": [ + "A", + 1789 + ], + "moves": 2411, + "sha256": "31207e73fec99c09dfc016e709cfa298107f8f4c58552e66187feb64d9f1fee8" + }, + { + "classes": 4, + "id": [ + "A", + 1790 + ], + "moves": 1209, + "sha256": "0729d809674ef0214046b5fd2d1dcfa1b998e7c8f03124ab0d25ebb46403456f" + }, + { + "classes": 4, + "id": [ + "A", + 1791 + ], + "moves": 6, + "sha256": "3f6a17f640a3fc11d255ecd46dfc5d6f1ce0d9d1b0acad83a482b35b73f80b7e" + }, + { + "classes": 3, + "id": [ + "A", + 1792 + ], + "moves": 9, + "sha256": "9508565e6883ffea87ecc7b90d9740a223adf18835a1177c09219a33b9f91429" + }, + { + "classes": 5, + "id": [ + "A", + 1793 + ], + "moves": 7, + "sha256": "ca4772ddef47826a83c463d41eef41994f0c437fab063e8c482e1328a0d50eb0" + }, + { + "classes": 1, + "id": [ + "A", + 1794 + ], + "moves": 2, + "sha256": "64b8e4efaf726c362df0bb8702628b430e805f9d86428b58b7d62861cdd2b3c3" + }, + { + "classes": 7, + "id": [ + "A", + 1795 + ], + "moves": 112, + "sha256": "7098c3be9de7eb3d2c4cf2eea91aa870a40243788c82befb6a0c2d78c7e3adb9" + }, + { + "classes": 6, + "id": [ + "A", + 1796 + ], + "moves": 9, + "sha256": "061a421dc099d4a4fd4faa47acf93f0efa17897a6572ed4b27c86523e8bf2b30" + }, + { + "classes": 4, + "id": [ + "A", + 1797 + ], + "moves": 81, + "sha256": "bbe4dc4d91e560f7a8197e2856b2f9c9b18ec77d505b4bfff915fcecf14697e0" + }, + { + "classes": 5, + "id": [ + "A", + 1798 + ], + "moves": 7, + "sha256": "ee70c866c1b2f80255829abf7f3b78b2467fa3c845c9c5c65ab1852639ad09f4" + }, + { + "classes": 4, + "id": [ + "A", + 1799 + ], + "moves": 4, + "sha256": "b56bbef8d43500138af6cb22f8025ce3336acb929a65350a449b2896cb3ced36" + }, + { + "classes": 4, + "id": [ + "A", + 1800 + ], + "moves": 107, + "sha256": "b8fa94a8e7051dceadc1cad9cea19f9986dcabec84820ad20e6f8a0e4d687e87" + }, + { + "classes": 3, + "id": [ + "A", + 1801 + ], + "moves": 4, + "sha256": "6855c453e64df113d9b3f53ca463c0a75f207aedc062d39e124d0ceea3e2e613" + }, + { + "classes": 2, + "id": [ + "A", + 1802 + ], + "moves": 2, + "sha256": "058166a9afad6213d91b70d3b49876f93457540843f0f875664860572517d822" + }, + { + "classes": 2, + "id": [ + "A", + 1803 + ], + "moves": 104, + "sha256": "f8f7e7e33f11966f9d7cfda91f9d99f27eb81b45f999fc4fbb276f709c99e95d" + }, + { + "classes": 1, + "id": [ + "A", + 1804 + ], + "moves": 1, + "sha256": "edf743f1267f5f4ec4818a997aa25b26d6c58e4dc35689cb49d40841dbdbd739" + }, + { + "classes": 1, + "id": [ + "A", + 1805 + ], + "moves": 102, + "sha256": "c3b97cee75e84d88f043c5b3b32cdac1a56fd193a5433142d0d58b7a8113928a" + }, + { + "classes": 1, + "id": [ + "A", + 1806 + ], + "moves": 1494, + "sha256": "cf3593a1c318b354a92d4593bcdc3b95a747b51db1b41116a5444c758442b8b9" + }, + { + "classes": 1, + "id": [ + "A", + 1807 + ], + "moves": 1449, + "sha256": "28513251ed8b640483032ff537ee2821a808f0ecf7e311864d058f61721a9e0a" + }, + { + "classes": 1, + "id": [ + "A", + 1808 + ], + "moves": 1378, + "sha256": "802f31874c4ec1816ef179e5eb783c2bb017cf9f310553bdaaffab14a149ddec" + }, + { + "classes": 1, + "id": [ + "A", + 1809 + ], + "moves": 1362, + "sha256": "dbedc8bf1c92ce805e2a003d58c9064b021b00eb3a73a48a40215a3756102de4" + }, + { + "classes": 1, + "id": [ + "A", + 1810 + ], + "moves": 1240, + "sha256": "6b0dcdcc04965379a19085aafeca05423f16bc7a18278b3f13eba54ab8f89ba2" + }, + { + "classes": 1, + "id": [ + "A", + 1811 + ], + "moves": 1216, + "sha256": "c9dff3629376dd6c6705dc7cb1f65a17742c292fefecfc699f731f4668ce9a75" + }, + { + "classes": 1, + "id": [ + "A", + 1812 + ], + "moves": 1194, + "sha256": "9e6040f28b39d6316a023f8d9a9bf9a382507cf68a17befe3175ce31fd01495b" + }, + { + "classes": 1, + "id": [ + "A", + 1813 + ], + "moves": 1203, + "sha256": "c679bafcb59c888db3466cef0bcc2b7bd483993d3ab260f5d4d870b93dcb37fa" + }, + { + "classes": 1, + "id": [ + "A", + 1814 + ], + "moves": 1165, + "sha256": "12e06a97d464a6a6f66917f8a00ae27ae4f69564b960648aedf45f4e7a58dcba" + }, + { + "classes": 1, + "id": [ + "A", + 1815 + ], + "moves": 1099, + "sha256": "1bc3c4cde9491957da4e7b457ac6fd4f89fc35253aa9313072163797bbd020c2" + }, + { + "classes": 1, + "id": [ + "A", + 1816 + ], + "moves": 1029, + "sha256": "c39101cd4d9eac503895d8ab223f630795b6f041c6d4e49d2972ead0b326f78b" + }, + { + "classes": 1, + "id": [ + "A", + 1817 + ], + "moves": 1051, + "sha256": "2048db1cf52fc4202458266a208e71dfdb772b2428c20d710be0449f86568969" + }, + { + "classes": 1, + "id": [ + "A", + 1818 + ], + "moves": 997, + "sha256": "57cb05dc08759784411ee266963881c29c80c01cdd88c8c7dfddc1c9f9709438" + }, + { + "classes": 1, + "id": [ + "A", + 1819 + ], + "moves": 968, + "sha256": "d8d5224db472345983d473450421aad8d147f70821962ef3923110e23e683c9b" + }, + { + "classes": 1, + "id": [ + "A", + 1820 + ], + "moves": 864, + "sha256": "cab51d3a68d4f3c332f93547081979def3e9e7d75a4d132adb2b53f29b12ea6f" + }, + { + "classes": 1, + "id": [ + "A", + 1821 + ], + "moves": 834, + "sha256": "0e3510f7c95f77920a512d4bbdb25ecb30d8d731c256d711268adb5bb748f5e4" + }, + { + "classes": 1, + "id": [ + "A", + 1822 + ], + "moves": 837, + "sha256": "a80766273f943e89b35dad5c2898cc44346b8c04baebc10d2b570b283c2a55c1" + }, + { + "classes": 1, + "id": [ + "A", + 1823 + ], + "moves": 791, + "sha256": "d10a7221354ce18dbc448986afe001dd140864905f8234dcd48df34bde7c91d4" + }, + { + "classes": 1, + "id": [ + "A", + 1824 + ], + "moves": 1306, + "sha256": "0e5e40e56d9c674464683f15b597480b3d8c3a7e839610858c4a5c8a0dc9477d" + }, + { + "classes": 1, + "id": [ + "A", + 1825 + ], + "moves": 1335, + "sha256": "b2649e341c3a04d3cf2c17274a6aaff73c3f932d4817db341d02b8337024cc3a" + }, + { + "classes": 1, + "id": [ + "A", + 1826 + ], + "moves": 1342, + "sha256": "8c02b66844e7947c1ce16fe97ae8b5d1078d42bca940a5ba81a63ed758916f95" + }, + { + "classes": 1, + "id": [ + "A", + 1827 + ], + "moves": 1382, + "sha256": "45f65242f0a2e295aa0068b00bd285fe15229bb21db96081040915b828eacfaf" + }, + { + "classes": 1, + "id": [ + "A", + 1828 + ], + "moves": 1260, + "sha256": "0de289b866d2ab01ee11086999a2cf4928b4d1a783cc343d1e62c51aa49bcbf1" + }, + { + "classes": 1, + "id": [ + "A", + 1829 + ], + "moves": 1209, + "sha256": "e5c096818806f30963fc898ab89a4d107cfb68fa10899ab0f5599bf3eeb2c0a1" + }, + { + "classes": 1, + "id": [ + "A", + 1830 + ], + "moves": 1027, + "sha256": "4a53302769fa7cc0af0b9add925bbd27dd0817415035754b73d34d9956539fa2" + }, + { + "classes": 1, + "id": [ + "A", + 1831 + ], + "moves": 1060, + "sha256": "f755a1259a680963973ca4230786b0dc50dd7050d73e4294df0ecf3e72f0494e" + }, + { + "classes": 1, + "id": [ + "A", + 1832 + ], + "moves": 1105, + "sha256": "3660f2fe3a6349f7e78f237c15e61dd2f170069584b334b4b4ac12646cbf48f3" + }, + { + "classes": 1, + "id": [ + "A", + 1833 + ], + "moves": 1121, + "sha256": "85b69f92fd617b4f54d09dee0b1ed3b9c03791e9feec326da567aa2c708f1d43" + }, + { + "classes": 1, + "id": [ + "A", + 1834 + ], + "moves": 1077, + "sha256": "155e7cbc7f0ff854e9e5cd8f70293ac454fa1f380fbcd377808c10089bcc15a4" + }, + { + "classes": 1, + "id": [ + "A", + 1835 + ], + "moves": 1059, + "sha256": "5aba3a3e2fa623e1dd519daa6384315393997df6238383a0bda5506c98fa177a" + }, + { + "classes": 1, + "id": [ + "A", + 1836 + ], + "moves": 790, + "sha256": "5a68b6453a1e74d0fe49d4cdbe1d7fee3ec39c93870120131cfdb6a6826caef0" + }, + { + "classes": 1, + "id": [ + "A", + 1837 + ], + "moves": 819, + "sha256": "dbd65b8b5bb77de6c6ada545b5c97aef9f823208ad0cbacd24de5c2b86467d52" + }, + { + "classes": 1, + "id": [ + "A", + 1838 + ], + "moves": 907, + "sha256": "6373477f55ae1139c445a86cd2c03682d455412dcd0495f22598c0db5cd8d65b" + }, + { + "classes": 1, + "id": [ + "A", + 1839 + ], + "moves": 867, + "sha256": "42dd8af41e5ecb10623c531641d27bb9bee593af228865564cba1cd5e952faaf" + }, + { + "classes": 1, + "id": [ + "A", + 1840 + ], + "moves": 836, + "sha256": "22f948fc80ef53a3d2e8479094a2141a83c5c10eee8a603177685a5a7effa7a5" + }, + { + "classes": 1, + "id": [ + "A", + 1841 + ], + "moves": 777, + "sha256": "5e00af50549ec7c4587fbff7e60ffc70006f78ee4189fc12335703269515a8d2" + }, + { + "classes": 1, + "id": [ + "A", + 1842 + ], + "moves": 774, + "sha256": "532ff65049074d8d6b78196dc2746f4c4ca1352a1817143f4c2da075ce4c61a9" + }, + { + "classes": 1, + "id": [ + "A", + 1843 + ], + "moves": 753, + "sha256": "dbfc790e98639a5318728278f12ff6a682ae06f246eeddf75cd9a64569320aa6" + }, + { + "classes": 1, + "id": [ + "A", + 1844 + ], + "moves": 656, + "sha256": "2ed54948b47605954143adb3cd2b1a710c20a5039cb4206cab93b4170cda505d" + }, + { + "classes": 1, + "id": [ + "A", + 1845 + ], + "moves": 711, + "sha256": "807c974aee5e62f1bbc9457493fef47224052cd73b036de4cc1ef0d7f04244b3" + }, + { + "classes": 1, + "id": [ + "A", + 1846 + ], + "moves": 687, + "sha256": "64bc1e2e7c14e7c64418fe71eb3e0f103d54e4975456d1ea3cefa4c10fd366a6" + }, + { + "classes": 1, + "id": [ + "A", + 1847 + ], + "moves": 639, + "sha256": "7f3bf2be85d2eb31cd2d3189d462846b1cb7a7fae95e24506357dcb9803f3cac" + }, + { + "classes": 1, + "id": [ + "A", + 1848 + ], + "moves": 655, + "sha256": "38afa70462bf6eafb277833f85db4862240ef1ba7aff898b99d5a5ba6bf56159" + }, + { + "classes": 1, + "id": [ + "A", + 1849 + ], + "moves": 636, + "sha256": "5102f9b06807bc22792124032e822bb135d3aae00392e4ac4e167d8af6f07071" + }, + { + "classes": 1, + "id": [ + "A", + 1850 + ], + "moves": 615, + "sha256": "f579da0c6888c209a4728348fc3b864f1c58005a83f25dd34ba8c439e13e7acc" + }, + { + "classes": 1, + "id": [ + "A", + 1851 + ], + "moves": 536, + "sha256": "d50f1953fde1306211f46268131c1b0a88056e6f3e80c76e2c465a8f4c3c3a85" + }, + { + "classes": 1, + "id": [ + "A", + 1852 + ], + "moves": 517, + "sha256": "11cd38078e6d5b52917e15d2d28c1968eafdf90622e18275a02d064cfa4404df" + }, + { + "classes": 1, + "id": [ + "A", + 1853 + ], + "moves": 558, + "sha256": "0b6f7b72ffc3f4f8899c56799f820c2a71be401df53219ac1396e50cf5828b3a" + }, + { + "classes": 1, + "id": [ + "A", + 1854 + ], + "moves": 488, + "sha256": "3cc4e78c4717bac0246b533d4d4793524955e964cda3d509cde6e6b6bcc6bd82" + }, + { + "classes": 1, + "id": [ + "A", + 1855 + ], + "moves": 522, + "sha256": "62e84eeae2f2d76de36667921d2b5723e86c2c0737acffb40bc665f68d38d739" + }, + { + "classes": 1, + "id": [ + "A", + 1856 + ], + "moves": 457, + "sha256": "e92e7bf9ebac14018af272b6fa87b5caeb17badcfda505eb252d5a5c0acdf3a8" + }, + { + "classes": 1, + "id": [ + "A", + 1857 + ], + "moves": 481, + "sha256": "3dc43e94e52db0996108d92f99bc9a6244745a41cc29e8a77987f9f281a70e7c" + }, + { + "classes": 1, + "id": [ + "A", + 1858 + ], + "moves": 462, + "sha256": "88f13f403f64fbbe13b4164a39c63678458b4a46cb708f24fef68d908bf847af" + }, + { + "classes": 1, + "id": [ + "A", + 1859 + ], + "moves": 454, + "sha256": "6d675f6b8297adaec8b5346d0d9d95f85322807503a95ee5e0f1e6e12308e2d1" + }, + { + "classes": 1, + "id": [ + "A", + 1860 + ], + "moves": 389, + "sha256": "e733dca0ac08615a9f66293f835a7aeacb4d4ec035baac1a68f47fe6ac1c6834" + }, + { + "classes": 1, + "id": [ + "A", + 1861 + ], + "moves": 754, + "sha256": "ab3a2df06744869b2259bc811711c5a1f23610c9d5b50ad3030deccbae025500" + }, + { + "classes": 1, + "id": [ + "A", + 1862 + ], + "moves": 350, + "sha256": "37549c295fe70a1f3b4c15892affa9b5bd8a9c3fce3502620af771b787626012" + }, + { + "classes": 1, + "id": [ + "A", + 1863 + ], + "moves": 400, + "sha256": "4ae24e480e4b5f16661ae0f7c150518b5acfb10b8c6bd76b4d370f3392459fac" + }, + { + "classes": 1, + "id": [ + "A", + 1864 + ], + "moves": 688, + "sha256": "fbce070117b45823e9fbea569329b05db0b461b18fffa5e7b2f662d8d5992a72" + }, + { + "classes": 1, + "id": [ + "A", + 1865 + ], + "moves": 520, + "sha256": "7ee94905e4652558c2d57c791d4f91c191f6b7d90d19213350b405d17e59cae7" + }, + { + "classes": 1, + "id": [ + "A", + 1866 + ], + "moves": 501, + "sha256": "a4c886c06e0d57d392a42b6777e14f78e4c85f126c80f6352cbe50232c4fab00" + }, + { + "classes": 1, + "id": [ + "A", + 1867 + ], + "moves": 385, + "sha256": "d461f1a13700f751ea2a64f950767e6b38d4bd6fdafecbd2563668a73e007839" + }, + { + "classes": 1, + "id": [ + "A", + 1868 + ], + "moves": 588, + "sha256": "3de302184619e3173d62ec2089b8a14808a578e739e65ffdbb780e86966b51e4" + }, + { + "classes": 1, + "id": [ + "A", + 1869 + ], + "moves": 618, + "sha256": "d751e9f4f1503a9a16a00c4f88fce774585aecdf803a16bf2d13ab3b8e4e70af" + }, + { + "classes": 1, + "id": [ + "A", + 1870 + ], + "moves": 308, + "sha256": "6b0431372f8c0d51b32c5bcd7a93f875b0c0f15c0b5108db3b7d97901e8f9c30" + }, + { + "classes": 1, + "id": [ + "A", + 1871 + ], + "moves": 447, + "sha256": "18c22e7b32679b6df8361cc36ac856ce4a8de6430231aa727dcd9755d737111d" + }, + { + "classes": 1, + "id": [ + "A", + 1872 + ], + "moves": 302, + "sha256": "189352f2693fe5ecf16a95a3e87eedc5e05001fee5f55c54fbcdac52d7d1c980" + }, + { + "classes": 1, + "id": [ + "A", + 1873 + ], + "moves": 625, + "sha256": "b8d54b9d076cd1ea6cc3c712ef0275ce572ee94156bfbca8ca9b199118ffdca9" + }, + { + "classes": 1, + "id": [ + "A", + 1874 + ], + "moves": 638, + "sha256": "2638ab8dc11adcda8589d48f7115698b6cfdfb37953ee3b8aab1e6e456c76858" + }, + { + "classes": 1, + "id": [ + "A", + 1875 + ], + "moves": 556, + "sha256": "5dbb55d1cb851acdcf8ec0f3ff518e3595ba84d0e68167e64c43724ba5d30923" + }, + { + "classes": 1, + "id": [ + "A", + 1876 + ], + "moves": 776, + "sha256": "9b76c37f201b75199d066701c329d922e9060d5cfc0762aa8d1c86a38f5b3668" + }, + { + "classes": 1, + "id": [ + "A", + 1877 + ], + "moves": 331, + "sha256": "56555fe9e9765ead791847c87708aa0d40e6371fa40f5974c3ff6b3cb3d9b8de" + }, + { + "classes": 1, + "id": [ + "A", + 1878 + ], + "moves": 672, + "sha256": "ad5fa4cf3dc15fc3330c2a233a847990f947e0541fb13dbe09cb56fc1781aa81" + }, + { + "classes": 1, + "id": [ + "A", + 1879 + ], + "moves": 682, + "sha256": "d6d339e1b92330f1c3d3b19b3b6f831a866ae494bf0699d222bea8f29ae2af4f" + }, + { + "classes": 1, + "id": [ + "A", + 1880 + ], + "moves": 732, + "sha256": "57cdfc6d2437e56681675c7094e715b67907fb7cf2733353471422503bd00ec0" + }, + { + "classes": 1, + "id": [ + "A", + 1881 + ], + "moves": 645, + "sha256": "8452fba8e966683e077ca42db86118202f4b46b940743231a46c5e33de64e340" + }, + { + "classes": 1, + "id": [ + "A", + 1882 + ], + "moves": 692, + "sha256": "edda4aba4d4de56b9502522df12500b2f7d96dbfa21ddfcc3293402754cfc8b9" + }, + { + "classes": 1, + "id": [ + "A", + 1883 + ], + "moves": 774, + "sha256": "f81ff0d1986dee32319a469d5d0d6d36a53cb195a9f0d191605aeb019be38c9d" + }, + { + "classes": 1, + "id": [ + "A", + 1884 + ], + "moves": 556, + "sha256": "36ce00bec11371ad32d67483eba5a48b6c893f6fd0ff8957431e875994a9ddc4" + }, + { + "classes": 1, + "id": [ + "A", + 1885 + ], + "moves": 647, + "sha256": "34a5fab6a7ebadba434c4fd88440639a4d7fa56c1cef1ed91083ad2f05bce9bc" + }, + { + "classes": 1, + "id": [ + "A", + 1886 + ], + "moves": 552, + "sha256": "1909078ca36452ef49fc1b6132747697908df91510a0230cf53e060f5ab30dac" + }, + { + "classes": 1, + "id": [ + "A", + 1887 + ], + "moves": 598, + "sha256": "2b791e30de452e468c7fac1e03756ad3bf7c1ed42936e7bd47c6daa6a08bae41" + }, + { + "classes": 1, + "id": [ + "A", + 1888 + ], + "moves": 520, + "sha256": "0e8cb401981a02ad3da1d99b480fdd04bdba9e587806a3de9703f677e5696461" + }, + { + "classes": 1, + "id": [ + "A", + 1889 + ], + "moves": 655, + "sha256": "be46710bcfcf37b978648d4ac9fd2aa3739c0831cd9aa5b07d69827ebdd1e873" + }, + { + "classes": 1, + "id": [ + "A", + 1890 + ], + "moves": 443, + "sha256": "082574ca4d81dc79d60383b33f2606ffa941d8d8b620525a307e0ad070ce5e54" + }, + { + "classes": 1, + "id": [ + "A", + 1891 + ], + "moves": 423, + "sha256": "7cf5e3ebc0fd70993ad5f68a9fd8e78a22b114a929c56ce4e13ae55d12635880" + }, + { + "classes": 1, + "id": [ + "A", + 1892 + ], + "moves": 442, + "sha256": "5022640dfb2ec76a08002c2f29f2d1a076ab0b0bde45c6eeb58f7b403a505432" + }, + { + "classes": 1, + "id": [ + "A", + 1893 + ], + "moves": 501, + "sha256": "49cbec194aa1392f3bfa49325a119cb1653e2e374a01f89cf5ad2e19a3914e83" + }, + { + "classes": 1, + "id": [ + "A", + 1894 + ], + "moves": 520, + "sha256": "7dc37d298059ff083f9a1c293a9ae7a207307a160aa59a860144e2967b0457ab" + }, + { + "classes": 1, + "id": [ + "A", + 1895 + ], + "moves": 543, + "sha256": "98d9fc05d2278eea587080921b34505763a559ec6d44d84b2b5336f8b5ce08ca" + }, + { + "classes": 1, + "id": [ + "A", + 1896 + ], + "moves": 522, + "sha256": "c71aed3db80b08a6d7b74a2e9002c0c09344951b36b6bd7d608e1e582eb30d8a" + }, + { + "classes": 1, + "id": [ + "A", + 1897 + ], + "moves": 757, + "sha256": "7f21165206972d4e251a8d4e4a744ae4597297af168ee75c6b643b506e265dc2" + }, + { + "classes": 1, + "id": [ + "A", + 1898 + ], + "moves": 348, + "sha256": "b0b730b4fc5fb2cfe7ca078f89cbe4b08be747f9c02f6a1739db45a9fcceb2d8" + }, + { + "classes": 1, + "id": [ + "A", + 1899 + ], + "moves": 401, + "sha256": "520127b0a45e73c5d2572ec97eb5f06d9fabf296a175c3487089c6fdebdd1134" + }, + { + "classes": 1, + "id": [ + "A", + 1900 + ], + "moves": 617, + "sha256": "4a4bedd19e9c43c9af0021537984d198c970d7cd67def6c2c230524c05c1d680" + }, + { + "classes": 1, + "id": [ + "A", + 1901 + ], + "moves": 462, + "sha256": "a60b1c9f24b9bb102fdb43b4ea38cbbe34099584707687fc6b6d26f217b3e850" + }, + { + "classes": 1, + "id": [ + "A", + 1902 + ], + "moves": 483, + "sha256": "a1deca198fe1943d6f1128fdce6cb1b71b449df6e8b484beafc4c27bcc509439" + }, + { + "classes": 1, + "id": [ + "A", + 1903 + ], + "moves": 392, + "sha256": "8566a23bc969fed32b29a3bb1f46998366d1d5d3b3cb23b03845370e7ba1df58" + }, + { + "classes": 1, + "id": [ + "A", + 1904 + ], + "moves": 597, + "sha256": "bd64f6983586f1c21540a41e6984b0af987cf067db6e850785fcbcbaa479e51e" + }, + { + "classes": 1, + "id": [ + "A", + 1905 + ], + "moves": 619, + "sha256": "98a9438128a0e4a3a7c2b2d2acafd527c0da67c5a23d42425805c4116858be22" + }, + { + "classes": 1, + "id": [ + "A", + 1906 + ], + "moves": 301, + "sha256": "f5ae71bc8e390b242bef65579e3c0d12ee1e672385e110b44c1e892f6415e78b" + }, + { + "classes": 1, + "id": [ + "A", + 1907 + ], + "moves": 469, + "sha256": "1a1b3711c8f82cb06e28945a44cc3e8f93470f4c610999558aee3a58ddcae10f" + }, + { + "classes": 1, + "id": [ + "A", + 1908 + ], + "moves": 279, + "sha256": "507d7aa840661257cb0800d06d95f8dbaacd392d082d5aab54516c7edea2ac34" + }, + { + "classes": 1, + "id": [ + "A", + 1909 + ], + "moves": 775, + "sha256": "2107c62e48cbc6d85887e590d908e9c05726b0579140c2d5f80bee3f8818fbee" + }, + { + "classes": 1, + "id": [ + "A", + 1910 + ], + "moves": 558, + "sha256": "86307f1c66b04c1dd1486f28ffd573e20bd139ce4b182bebb0c26f16bf3a2644" + }, + { + "classes": 1, + "id": [ + "A", + 1911 + ], + "moves": 642, + "sha256": "d754ff6c3b02feb58ed41ad297ba60cc6ecf62f5c36456d1b19c17470fc8339c" + }, + { + "classes": 1, + "id": [ + "A", + 1912 + ], + "moves": 630, + "sha256": "b4013afe4835bcc298186c183f828f7163768618f565b5e6ca7894662ef45444" + }, + { + "classes": 1, + "id": [ + "A", + 1913 + ], + "moves": 354, + "sha256": "32ca65de0c0867c63e0ea1700f05d4bed823a6d8a85386b79af425eff6aa1af8" + }, + { + "classes": 1, + "id": [ + "A", + 1914 + ], + "moves": 595, + "sha256": "ffa9067db2b551813949989a9e926c0f3d9f54f9b975bbe65b67c22eb90cda1f" + }, + { + "classes": 1, + "id": [ + "A", + 1915 + ], + "moves": 424, + "sha256": "f378b3d5483d4522f0998dc7808fd89e1a203a5fbf384d88c0905d15d831108e" + }, + { + "classes": 1, + "id": [ + "A", + 1916 + ], + "moves": 713, + "sha256": "14f6cde426c87a920c89cd54e7c8fa512b26b215f10350fe1cc11c89d7fb8ee0" + }, + { + "classes": 1, + "id": [ + "A", + 1917 + ], + "moves": 734, + "sha256": "a9b4d7275c4ba2bf297958b7d2b0f7aa22c0c576619992efb24798db42c3270a" + }, + { + "classes": 1, + "id": [ + "A", + 1918 + ], + "moves": 323, + "sha256": "7254be6f4c1ab0d4a2651123abc5e81c09283862292d8aff7ceae47e3df45b42" + }, + { + "classes": 1, + "id": [ + "A", + 1919 + ], + "moves": 588, + "sha256": "dea3d27e1fef92627e91d3d10af664cab9fcc2e524bc1f42eb63b2ef0cbaf728" + }, + { + "classes": 1, + "id": [ + "A", + 1920 + ], + "moves": 637, + "sha256": "17eedcbd598d868955f1a375e740c6e79bacbad6f70782de908d79ba55b13536" + }, + { + "classes": 1, + "id": [ + "A", + 1921 + ], + "moves": 456, + "sha256": "d378c3e1931924c04b887d66ced3ad2e61a4726cdc125971ee265477c22293fa" + }, + { + "classes": 1, + "id": [ + "A", + 1922 + ], + "moves": 343, + "sha256": "248b4cd6775c0946fcb986f3a7748f90c6472b90712144acdc3ba108cbf9073e" + }, + { + "classes": 1, + "id": [ + "A", + 1923 + ], + "moves": 323, + "sha256": "219d814785fd4d2999f3c8a4d05c2289a9376834f6c88158d4867a5ce28ccfec" + }, + { + "classes": 1, + "id": [ + "A", + 1924 + ], + "moves": 399, + "sha256": "8465ea91c7e080db22fcd0333f9d693baf80351da1a0eba3aee9d4c0cb687e4e" + }, + { + "classes": 1, + "id": [ + "A", + 1925 + ], + "moves": 573, + "sha256": "b2dbe59098c1d257eedb834fe3aa69b0e1af3fcfc44d43e38ed9cecededac762" + }, + { + "classes": 1, + "id": [ + "A", + 1926 + ], + "moves": 362, + "sha256": "2de4c6900e38798c7895d1a64a9e9c001789174292142b4d5bfac433ebc89729" + }, + { + "classes": 1, + "id": [ + "A", + 1927 + ], + "moves": 384, + "sha256": "1cd98782fcafc8f49090b2e93d0eec43f04a610c4143f9680e3573578bba8677" + }, + { + "classes": 1, + "id": [ + "A", + 1928 + ], + "moves": 777, + "sha256": "63a4c2fb6c3a287f97f6d916447515f231ba4ec1b7e6f9de5b806c54701c5100" + }, + { + "classes": 1, + "id": [ + "A", + 1929 + ], + "moves": 617, + "sha256": "bdd1e7a89341667662fdad4691c71fc2b4ec7d79c0bbea25c637f3e3b235a1ad" + }, + { + "classes": 1, + "id": [ + "A", + 1930 + ], + "moves": 536, + "sha256": "a57e3875252c26d84d5f1ee305bbb2557f17742f019b38ca94d79ab030225a7b" + }, + { + "classes": 1, + "id": [ + "A", + 1931 + ], + "moves": 381, + "sha256": "26002d245e6bb30ac5dee227fe5e3412a33c6e05d68114e270a2040fe9132e65" + }, + { + "classes": 1, + "id": [ + "A", + 1932 + ], + "moves": 689, + "sha256": "f096b4c122916bff49398eed36080189ca855fe9afc62fbc901545b98a699483" + }, + { + "classes": 1, + "id": [ + "A", + 1933 + ], + "moves": 382, + "sha256": "7a36fabe0c6687bf3185a9129a6caa98fb00cfbf6259228888d0d72fa0d950cd" + }, + { + "classes": 1, + "id": [ + "A", + 1934 + ], + "moves": 638, + "sha256": "c99bf2d289f425fe76ba5402137dffa63b8288b88d0775540d1c11c39239b0fb" + }, + { + "classes": 1, + "id": [ + "A", + 1935 + ], + "moves": 496, + "sha256": "5c9bb7a1806c90b10a6e2b9efa0bc5e9f987a880f5d788dd3e5b800c86e1147e" + }, + { + "classes": 1, + "id": [ + "A", + 1936 + ], + "moves": 279, + "sha256": "2e8ccae0e9c0eb73c18d945f808a85bd54c2ef2cbf59e3e1992f2c980fe629b0" + }, + { + "classes": 1, + "id": [ + "A", + 1937 + ], + "moves": 755, + "sha256": "cc97b7e4e9b3fa963d1127ced8e80703cf3dc8579fd4ca4b78bf9597e8332720" + }, + { + "classes": 1, + "id": [ + "A", + 1938 + ], + "moves": 663, + "sha256": "d6c397f0ba1fff730fa22c104ecd94f69a69f398f8f4a483223607dbef7f7ef6" + }, + { + "classes": 1, + "id": [ + "A", + 1939 + ], + "moves": 481, + "sha256": "ea7ead38f17aa81ba8e366b308cd035a9b9695f80cd9723145a81292f97b63d9" + }, + { + "classes": 1, + "id": [ + "A", + 1940 + ], + "moves": 343, + "sha256": "7dcc642777245db81d75241a409b7ea4833256203dfc6fb9443cf65c7b7deca4" + }, + { + "classes": 1, + "id": [ + "A", + 1941 + ], + "moves": 258, + "sha256": "e75bca5b228b3842ea0da4af73dc28ffd92bde9f03c53968b5992d5c9224b687" + }, + { + "classes": 1, + "id": [ + "A", + 1942 + ], + "moves": 502, + "sha256": "834b2c385d3f26583e1d5f6bc1c8b59626bf8e1e99ecd6528d0a65100478bd3f" + }, + { + "classes": 1, + "id": [ + "A", + 1943 + ], + "moves": 711, + "sha256": "15ff5ab176b367e22737a74f6ff2220ec93461c63b1dcf5898280bedc0399811" + }, + { + "classes": 1, + "id": [ + "A", + 1944 + ], + "moves": 422, + "sha256": "789d0ebd0d9ccd2c95c835dd28611c2ca7f27907d63c34774072724013f9a783" + }, + { + "classes": 1, + "id": [ + "A", + 1945 + ], + "moves": 377, + "sha256": "a79662b9a30f2cd2cd4748654b439b6a1f313a378dc70d3ccb4a6596c084f698" + }, + { + "classes": 1, + "id": [ + "A", + 1946 + ], + "moves": 660, + "sha256": "166276b67ecda2348eff99ac6ed99b2bd4c9efa798a8ae8fc0d8d891f56d80cc" + }, + { + "classes": 1, + "id": [ + "A", + 1947 + ], + "moves": 557, + "sha256": "11ff2e2e85d6e3610ed44802910d9e25b832e9b306ee2acc75c47e5e184c8d8e" + }, + { + "classes": 1, + "id": [ + "A", + 1948 + ], + "moves": 537, + "sha256": "899251b3b326f6fa7f750112dc046bc75e458d70f3f4070a218d484a3c00c302" + }, + { + "classes": 1, + "id": [ + "A", + 1949 + ], + "moves": 370, + "sha256": "93101c3c183107a04f8fcd5423b03cf9656e743109358f6684f5c6d558e9b67a" + }, + { + "classes": 1, + "id": [ + "A", + 1950 + ], + "moves": 671, + "sha256": "8eb68cb6dc6c896bbd147a1b66085b54d1d37331e0ed64a7c448ca37706906d0" + }, + { + "classes": 1, + "id": [ + "A", + 1951 + ], + "moves": 366, + "sha256": "bea0441dba2ae3d362995e0d72f1393ed31148332f6b20a71121334d9808265a" + }, + { + "classes": 1, + "id": [ + "A", + 1952 + ], + "moves": 574, + "sha256": "58cb9d5da9ea442e0a99e595098f929fcb5975e53f3f7d03aa513595f93ba303" + }, + { + "classes": 1, + "id": [ + "A", + 1953 + ], + "moves": 640, + "sha256": "42d2ff1f477275bc793319b1612e21bd7b540416e1ec05c950916c720440cf25" + }, + { + "classes": 1, + "id": [ + "A", + 1954 + ], + "moves": 381, + "sha256": "5da13aa3fbba6c30f01cc048f2bbe97dcaf864a9718f1386607edb09c8589051" + }, + { + "classes": 1, + "id": [ + "A", + 1955 + ], + "moves": 665, + "sha256": "55bfa8b1a36cbe14f17fa2688ad766114f7f05d4a38abd2c8fdd4169731fba62" + }, + { + "classes": 1, + "id": [ + "A", + 1956 + ], + "moves": 404, + "sha256": "bd822d8be3bee7d78c2e7e28d6a8df65d94ca62fbab970b4aea613bb93aa3f8b" + }, + { + "classes": 1, + "id": [ + "A", + 1957 + ], + "moves": 447, + "sha256": "4e194d7efb71afabcdbc252315b4ff8e0ff4bf4beb9e40b9613ad5ee3bb68213" + }, + { + "classes": 1, + "id": [ + "A", + 1958 + ], + "moves": 580, + "sha256": "8ce199cf5792fbc5a1ac24096941add04517c2807e18978d8264beac4a86fca9" + }, + { + "classes": 1, + "id": [ + "A", + 1959 + ], + "moves": 560, + "sha256": "82db681e75198f3ac8daa638f3903e55399aa78ca55bc17743f5ea533f1e5f72" + }, + { + "classes": 1, + "id": [ + "A", + 1960 + ], + "moves": 539, + "sha256": "1562957a17325c639c11d5ed62f9140e34f301c0e1bde3adaaa1c4b3019c549f" + }, + { + "classes": 1, + "id": [ + "A", + 1961 + ], + "moves": 394, + "sha256": "9776c6ef3b82c152f2e53bf5339ca6710f16ae9f3747514514f2e3d256e35bd3" + }, + { + "classes": 1, + "id": [ + "A", + 1962 + ], + "moves": 715, + "sha256": "e867ee326dd09efbd1bce97a24cb252f88c16e8fc91aed7bc4480635782daeb2" + }, + { + "classes": 1, + "id": [ + "A", + 1963 + ], + "moves": 411, + "sha256": "0578986c5818fe6bafcbf8356b8b311197f5e7c3406935b00ac3bffd675c755d" + }, + { + "classes": 1, + "id": [ + "A", + 1964 + ], + "moves": 344, + "sha256": "0adab25423483e032bb3b35deb34147f514a6ce87671ab0a08cc2a862dc3f176" + }, + { + "classes": 1, + "id": [ + "A", + 1965 + ], + "moves": 252, + "sha256": "c8227aaabcce0fed8c4a23648084444792e7a88cc018f6f4ad03420428205732" + }, + { + "classes": 1, + "id": [ + "A", + 1966 + ], + "moves": 506, + "sha256": "04cc5b8120ebaa1ff39c2b4af0de57e45b9aa9e07a4f11e6c05e7dde825366b4" + }, + { + "classes": 1, + "id": [ + "A", + 1967 + ], + "moves": 736, + "sha256": "f146110dea7ec290eebd6ae137a9ef4664bfa576b2a42ffaa08be7f44cc21c98" + }, + { + "classes": 1, + "id": [ + "A", + 1968 + ], + "moves": 622, + "sha256": "ef8058900a81567ba934b1151116da4fb42afb84f78f24c19e15aa1e59fca77d" + }, + { + "classes": 1, + "id": [ + "A", + 1969 + ], + "moves": 407, + "sha256": "17a6bbe2ea4fb3bbbead4072d25b4677b892b2d4d92eaf72fb604d01cb5114cf" + }, + { + "classes": 1, + "id": [ + "A", + 1970 + ], + "moves": 656, + "sha256": "3ffb3f615987b1bbf07b940e396b26ae9e7d1438777c577d596db1b3e7b58ae4" + }, + { + "classes": 1, + "id": [ + "A", + 1971 + ], + "moves": 638, + "sha256": "383c7d47d689d9c8e259866fc05ef6ed235e880431ac101854628c910f4ef73c" + }, + { + "classes": 1, + "id": [ + "A", + 1972 + ], + "moves": 429, + "sha256": "104158111403623c5b0ce4c84cfad168b6931562d2953e249994c30702aa1e8b" + }, + { + "classes": 1, + "id": [ + "A", + 1973 + ], + "moves": 600, + "sha256": "ccef0b0a9a66736f69b0f397151ecd20e5bdbee68281642507a612cd9dfdd656" + }, + { + "classes": 1, + "id": [ + "A", + 1974 + ], + "moves": 383, + "sha256": "ff4acfe910b114e0e82cc0e0bba6368e528af88e239b84886d3c7fbc5ea83743" + }, + { + "classes": 1, + "id": [ + "A", + 1975 + ], + "moves": 443, + "sha256": "5bab459de24c5ee90904d3cd97c8a55f0cc6cdf8ca1eb13fefaa979dcbf49bb7" + }, + { + "classes": 1, + "id": [ + "A", + 1976 + ], + "moves": 779, + "sha256": "6e1a4600a37bf278b995b25e7ef6357c6ee81d7c58c78e5493a303c5c1bf55d9" + }, + { + "classes": 1, + "id": [ + "A", + 1977 + ], + "moves": 614, + "sha256": "9a15e813f4f8b19bfc1398b0f4b4f55fe177e468fd9823dd251b173826c0b820" + }, + { + "classes": 1, + "id": [ + "A", + 1978 + ], + "moves": 541, + "sha256": "191b5a83124e969b66ea6cbfdd3824feab93d23a265d4bfacc58abbce8e724e6" + }, + { + "classes": 1, + "id": [ + "A", + 1979 + ], + "moves": 336, + "sha256": "e4c118870216fee1aea62224935ad0518a33c5cdb0124849a278e1fd622a851e" + }, + { + "classes": 1, + "id": [ + "A", + 1980 + ], + "moves": 577, + "sha256": "5dfbbdd3152b27c58ad104e5ba5db7632dbb42b4ff5a52ffb36565a28ddb2776" + }, + { + "classes": 1, + "id": [ + "A", + 1981 + ], + "moves": 465, + "sha256": "b4ab4696046ef55809bf490f178bf5d639028d7f54da728773b96a3acfb9cc50" + }, + { + "classes": 1, + "id": [ + "A", + 1982 + ], + "moves": 346, + "sha256": "c7dc0b8e68049aa227aa0f854ce728ade95eae52f7081bada2b7452901aa8faa" + }, + { + "classes": 1, + "id": [ + "A", + 1983 + ], + "moves": 329, + "sha256": "a0068933b2d73b4a501d8ac125eb0236c7134c88af63a115b816f62b1de78287" + }, + { + "classes": 1, + "id": [ + "A", + 1984 + ], + "moves": 468, + "sha256": "1a39c0e2eb10abd4991937b0e79a6be230c1bbfbbae8a741ae6b35ccbda44e57" + }, + { + "classes": 1, + "id": [ + "A", + 1985 + ], + "moves": 600, + "sha256": "5e01b5c0bbbfa0c70bf88f2a566429c490475fea82e4a737be4a4902d342325a" + }, + { + "classes": 8, + "id": [ + "A", + 1986 + ], + "moves": 1724, + "sha256": "db73ae6cc412bb7dd476b9c827a6c1a3fabb21856b6bb84308f9d279d377ccc9" + }, + { + "classes": 7, + "id": [ + "A", + 1987 + ], + "moves": 1724, + "sha256": "abac2875d5554aa3cfe4a431edda5528ad1d281b75d4f80210f478667005f315" + }, + { + "classes": 9, + "id": [ + "A", + 1988 + ], + "moves": 3439, + "sha256": "0e8360a3dc4e4e37598ffa98cc49207652ae1e7cb77ce3a77c298fca253351e8" + }, + { + "classes": 8, + "id": [ + "A", + 1989 + ], + "moves": 1724, + "sha256": "87e304824a97388e09919a785e80cfd4ed97435c849619eee7cd73fb46cd467f" + }, + { + "classes": 8, + "id": [ + "A", + 1990 + ], + "moves": 3439, + "sha256": "47901bbe230c54e5e8c1efd94c603e9ccded12dd2ac5d6cf911bc96784b76fa1" + }, + { + "classes": 8, + "id": [ + "A", + 1991 + ], + "moves": 3436, + "sha256": "bcb2fbd9cbc6406eaf742bf1e5c5ff14a69509a9ee8b6f49e2ff6ca94175efd7" + }, + { + "classes": 8, + "id": [ + "A", + 1992 + ], + "moves": 3439, + "sha256": "5a65be301f4c417de3e6e7fe5ca0a8f3abf1d1081ef8df3ab83c8193286ea393" + }, + { + "classes": 9, + "id": [ + "A", + 1993 + ], + "moves": 3439, + "sha256": "a13971ebe17841b22d0b78b9fb2ec34e78ace1b2e166f81fe57b9dadc38223f4" + }, + { + "classes": 6, + "id": [ + "A", + 1994 + ], + "moves": 97, + "sha256": "eeca279edc44743b719d12db5c17e8da20f1d9b7e2a339d899ee72e0b93b6081" + }, + { + "classes": 4, + "id": [ + "A", + 1995 + ], + "moves": 6, + "sha256": "051e4091a8374d4a813434f6b35639cb4c1532f6e9d9697c3b4927f7130c7a0a" + }, + { + "classes": 5, + "id": [ + "A", + 1996 + ], + "moves": 97, + "sha256": "a5d171a6e538902c6b95834ab8f05daacc40d2cc676a5851684dc26672d1e6a9" + }, + { + "classes": 4, + "id": [ + "A", + 1997 + ], + "moves": 48, + "sha256": "9a138a0197d65056388eb5eaca56e2dcdfb1661ed4ceb9082f00f2f26f5ce160" + }, + { + "classes": 9, + "id": [ + "A", + 1998 + ], + "moves": 240, + "sha256": "31a3ff4c8cc0bd9e77415ccb7fb4b1e7cb45f5f65b3dc0c127548c7154516333" + }, + { + "classes": 7, + "id": [ + "A", + 1999 + ], + "moves": 96, + "sha256": "c6536b6489e461bef8e2d868bda7f988b6c49e0ea0702539e4ee64760d743fbb" + }, + { + "classes": 6, + "id": [ + "A", + 2000 + ], + "moves": 96, + "sha256": "3d54ffc3ee76263d15b222c80570fb00bb6c213215cbf65889e7276c5a8486c8" + }, + { + "classes": 6, + "id": [ + "A", + 2001 + ], + "moves": 94, + "sha256": "9fd53b633083ff06b3674ec3220b35ac3ea9b295e6947a87cdb1ee9ebcc12a3b" + }, + { + "classes": 7, + "id": [ + "A", + 2002 + ], + "moves": 95, + "sha256": "548096d09adccc53bf922c25a346f479af02c4e89663ded0cdb9bef3291100b3" + }, + { + "classes": 6, + "id": [ + "A", + 2003 + ], + "moves": 52, + "sha256": "c4fd5cbf401330bf1c9710cfc8765859d57d910eb2b3d12196d6c478ca41819f" + }, + { + "classes": 9, + "id": [ + "A", + 2004 + ], + "moves": 244, + "sha256": "4e4163d5693b2008966508594dba648b2aca3e6e7518e2846349caae2c9bb933" + }, + { + "classes": 11, + "id": [ + "A", + 2005 + ], + "moves": 244, + "sha256": "a3a424123a2ae2eb0aa27c35ece4e79959d06a159eaa2a8aab29c1e8ffe1715f" + }, + { + "classes": 7, + "id": [ + "A", + 2006 + ], + "moves": 3411, + "sha256": "99a532c4edb3916c6f4884a19e38ed15ab3bb677ef3a7ac4d06764266ccc11d9" + }, + { + "classes": 6, + "id": [ + "A", + 2007 + ], + "moves": 3413, + "sha256": "c9391dcbe31ea9eaff4a20c87511fee03f973e484935075d51b28330d80313af" + }, + { + "classes": 5, + "id": [ + "A", + 2008 + ], + "moves": 3413, + "sha256": "587ddc65da5ea5249776b047642e1289c43fbc69c4a71ea64bead9b90cdd2df6" + }, + { + "classes": 6, + "id": [ + "A", + 2009 + ], + "moves": 3413, + "sha256": "66efa8312a5f19f5020a221a5e7a21f96533152ec99a62a6d2b2ef3d47de647f" + }, + { + "classes": 5, + "id": [ + "A", + 2010 + ], + "moves": 3409, + "sha256": "bfe1b2c58842b804ad58bcf7946e3b0011df1daf4ba41e51c1537feb8eb76565" + }, + { + "classes": 5, + "id": [ + "A", + 2011 + ], + "moves": 66, + "sha256": "8b51f97128f02fb0e51d2b4643f56825f5876baa728419eb0936cf47461f1a4b" + }, + { + "classes": 5, + "id": [ + "A", + 2012 + ], + "moves": 66, + "sha256": "05ea210f3d8b50d01e290e9b0f71ee7be45b54a5691fc1b2ae85d0454fac275a" + }, + { + "classes": 5, + "id": [ + "A", + 2013 + ], + "moves": 32, + "sha256": "1c90437fe4253c5094c37059d4db63ac36c1a6759be8b05d122a883a8656ddf6" + }, + { + "classes": 5, + "id": [ + "A", + 2014 + ], + "moves": 66, + "sha256": "613d5ac114a76d620e6765515f16a1bf87f12f24943701af1c03456e85376bf5" + }, + { + "classes": 5, + "id": [ + "A", + 2015 + ], + "moves": 36, + "sha256": "cd700229f56c279f6928abd5742202f1754e60a5fa40826642e3aac2569c16ff" + }, + { + "classes": 6, + "id": [ + "A", + 2016 + ], + "moves": 66, + "sha256": "2660ac830e4adc1d4a7ca479e198ab5db183c6395ca97eafa716d266237619cd" + }, + { + "classes": 8, + "id": [ + "A", + 2017 + ], + "moves": 3310, + "sha256": "ec53a6c0ac025f1de50e7fdf8cdc82c1b1fee9e0d5fb41d0cfbe9e25ae39a37c" + }, + { + "classes": 7, + "id": [ + "A", + 2018 + ], + "moves": 3296, + "sha256": "6cb60ae29226e6cf8cb0a055632669b06389bd65a5a94dc55a178809d004d994" + }, + { + "classes": 7, + "id": [ + "A", + 2019 + ], + "moves": 3310, + "sha256": "1e94dcf1f536e7358feda3465ea78f81881af238e2facb54f64489dbf6ec9067" + }, + { + "classes": 7, + "id": [ + "A", + 2020 + ], + "moves": 3310, + "sha256": "9a43ce2b73424b46f11f12b5638cb0e36d771a7a702e65c2b334fad6120248bd" + }, + { + "classes": 7, + "id": [ + "A", + 2021 + ], + "moves": 3310, + "sha256": "7e1d02f317e48defaa8b370456bb7f6c5de415bba94a84bbd917a6606e8fb4f2" + }, + { + "classes": 7, + "id": [ + "A", + 2022 + ], + "moves": 3310, + "sha256": "8637964f09b65d6092bacf3d63a6f6da832772d9b3c83188bd703873cad27e07" + }, + { + "classes": 8, + "id": [ + "A", + 2023 + ], + "moves": 3310, + "sha256": "1ab9a3c88cd3fec3df0a9d3d07d0c8b271887edf27d3b61f19a82f7c47df1948" + }, + { + "classes": 5, + "id": [ + "A", + 2024 + ], + "moves": 3330, + "sha256": "7d72ad4e9691164384e638fa9fa71fcb8c1ec5b39f0b95ca664d4fb976b70b8e" + }, + { + "classes": 3, + "id": [ + "A", + 2025 + ], + "moves": 35, + "sha256": "061130b5cb1ed86149e1ee9fb1178a7ec3a01a31ddcbdc608417f5aa12bee539" + }, + { + "classes": 4, + "id": [ + "A", + 2026 + ], + "moves": 1679, + "sha256": "b47ec67ed76b643c57c051716b3d39de4fa56d304addf5547f2bd4ac0db6ccd1" + }, + { + "classes": 6, + "id": [ + "A", + 2027 + ], + "moves": 3332, + "sha256": "9cafc9bc05322916bac9844c1a040d41914a4730a8a11146d24f8b0a608a3502" + }, + { + "classes": 15, + "id": [ + "A", + 2028 + ], + "moves": 9151, + "sha256": "e4dc844cba39f7bb5eabfac6c1cf32f5da2f67fe3771361a0e7423c73f7654d0" + }, + { + "classes": 8, + "id": [ + "A", + 2029 + ], + "moves": 55, + "sha256": "3d1d546267069ca297441fa93eeddf25cc82f6454152ac4575c1cc8947617b9f" + }, + { + "classes": 8, + "id": [ + "A", + 2030 + ], + "moves": 29, + "sha256": "cc3d9dc4eb210f663253eb3ed34a38b56e21764bbcdde6f8489538e7eb5588a8" + }, + { + "classes": 8, + "id": [ + "A", + 2031 + ], + "moves": 28, + "sha256": "6ed8a107f4f46b191e345d7c883dbc629df0a5664371fada07d66dd0fc85627d" + }, + { + "classes": 8, + "id": [ + "A", + 2032 + ], + "moves": 55, + "sha256": "b905e8ebaecd1c67105df47cc91d33155881bcf9b1ee1929d4b8854da9e1cf3f" + }, + { + "classes": 7, + "id": [ + "A", + 2033 + ], + "moves": 7, + "sha256": "903ed247413870183e0a1d516c1828df5deb83b1152ca9360a7ea375a17a74e1" + }, + { + "classes": 7, + "id": [ + "A", + 2034 + ], + "moves": 55, + "sha256": "3db2fda9eda2dbf0df324c456d52628d662708ebf37fa59a34d4a0bdf7d2d6cd" + }, + { + "classes": 12, + "id": [ + "A", + 2035 + ], + "moves": 156, + "sha256": "033e55b722d904a9bd6d2be73bf7e7212f481a703a685592fd9a940b13515170" + }, + { + "classes": 6, + "id": [ + "A", + 2036 + ], + "moves": 40, + "sha256": "d4d9e11e1d83c9c3cc1f0b35760698a0cc5bc27675b1fd5b08a01345d8723d76" + }, + { + "classes": 5, + "id": [ + "A", + 2037 + ], + "moves": 23, + "sha256": "826dc3666a0563f29175a03fa161d6edabef37be14b59b24c966dfa69296f2be" + }, + { + "classes": 5, + "id": [ + "A", + 2038 + ], + "moves": 22, + "sha256": "4112ba3cbcc9234da8317289e7e90e2bedee15f48234e31413f4d2a405db66cd" + }, + { + "classes": 5, + "id": [ + "A", + 2039 + ], + "moves": 40, + "sha256": "ed467b5b88e9fd244e205beb82081c020ded084cf58e792dc8b047a570ef9e0c" + }, + { + "classes": 5, + "id": [ + "A", + 2040 + ], + "moves": 40, + "sha256": "40a90386a4c76e11be8a98913c93587744ba33e410353304d650a188394e63f8" + }, + { + "classes": 11, + "id": [ + "A", + 2041 + ], + "moves": 125, + "sha256": "e71885681a4a1d8d423a96b0edeb5c110221bcae37f65e7c2f7192d87f78e382" + }, + { + "classes": 1, + "id": [ + "A", + 2042 + ], + "moves": 178, + "sha256": "a26e0f5a71c15168c6cc140998674f9b62978f6e9f285a20adbbe1042ebdc51d" + }, + { + "classes": 1, + "id": [ + "A", + 2043 + ], + "moves": 108, + "sha256": "ed2189d54d53cacb5d8a097e6c55b314cd95ba246de1acea94f19c9482aa903b" + }, + { + "classes": 1, + "id": [ + "A", + 2044 + ], + "moves": 89, + "sha256": "2f37c5e2140689338afedd1b3f07f3ea99c8927a2756d3a67eaf2c20b02560f3" + }, + { + "classes": 1, + "id": [ + "A", + 2045 + ], + "moves": 193, + "sha256": "e0412925b142ba8482c2e5be3645b87fa47aeb446af5a4112ac44f77a8b741b1" + }, + { + "classes": 1, + "id": [ + "A", + 2046 + ], + "moves": 192, + "sha256": "cc1d16f29b3dff44861b327710cfd650f58d61613ede00be3476898321e2ec60" + }, + { + "classes": 1, + "id": [ + "A", + 2047 + ], + "moves": 158, + "sha256": "ac68913ab07930bd72831af7f880e1007e84b731a95bbaf284af8d631cc2922f" + }, + { + "classes": 1, + "id": [ + "A", + 2048 + ], + "moves": 88, + "sha256": "fb43abf3cb775975c343decfa1d05efaea3a07d138a8420ada6c094554f7a84a" + }, + { + "classes": 1, + "id": [ + "A", + 2049 + ], + "moves": 103, + "sha256": "942a39bd177818cde07b7ba767de8f0a4cc5ee6dc413437b3b376905fe2effc2" + }, + { + "classes": 1, + "id": [ + "A", + 2050 + ], + "moves": 157, + "sha256": "2e52b58e83562467b83fbdb6a6889b2ef48e55a47179fd7b1df601689c0bd098" + }, + { + "classes": 1, + "id": [ + "A", + 2051 + ], + "moves": 210, + "sha256": "4246fbff8264ae5e545578e31d020a58b33ac686beee99f0eb19b73c54041f82" + }, + { + "classes": 1, + "id": [ + "A", + 2052 + ], + "moves": 170, + "sha256": "858a98ef133c6ee0bea6351043977d2ae36ffa26000973971ad7269426083414" + }, + { + "classes": 1, + "id": [ + "A", + 2053 + ], + "moves": 284, + "sha256": "32cccaff25c56050df796cf178934696a63129854f9d8daa222d21d0ab6e30a9" + }, + { + "classes": 1, + "id": [ + "A", + 2054 + ], + "moves": 165, + "sha256": "5c16ae621b3c28e6249de1a5dd84507da02afa801d48b9cae68a25ecedc47fd3" + }, + { + "classes": 1, + "id": [ + "A", + 2055 + ], + "moves": 100, + "sha256": "62c3f3e6078db6624cfe0b0c23804de40954033e3928724783d7b5dda5510e9e" + }, + { + "classes": 1, + "id": [ + "A", + 2056 + ], + "moves": 163, + "sha256": "a3ac3bfc18b168a327e84b81ab673a65971a9a41ee4fe7dae09ee9a8b8ea36f2" + }, + { + "classes": 1, + "id": [ + "A", + 2057 + ], + "moves": 90, + "sha256": "6ca13b84988e436da7bf3dcee9134f19f6532d20c97a4572d9293faa95e60e20" + }, + { + "classes": 1, + "id": [ + "A", + 2058 + ], + "moves": 91, + "sha256": "18ac4a74cc8e2e3a64d2abb7eb912a66c02f17aaf6d325575ed75fc569505988" + }, + { + "classes": 1, + "id": [ + "A", + 2059 + ], + "moves": 249, + "sha256": "5d74227adf52103c3993552c8ff54e43f1798c89620e7d354699f00a91fd7059" + }, + { + "classes": 1, + "id": [ + "A", + 2060 + ], + "moves": 100, + "sha256": "5c740ecefb54bade496d12853cd2aefae8fe51d67340b1723e4c272cf2ac2e06" + }, + { + "classes": 1, + "id": [ + "A", + 2061 + ], + "moves": 190, + "sha256": "7f18fbd9f2131fcc44352cd7b679054a02cccb48a85c97c0e98be7a66f519a8c" + }, + { + "classes": 1, + "id": [ + "A", + 2062 + ], + "moves": 183, + "sha256": "ace853c1fb178fb5eb840f9f7851466a87080e9798b0c59082f9c07ca80290bd" + }, + { + "classes": 1, + "id": [ + "A", + 2063 + ], + "moves": 247, + "sha256": "916685e95e857142bafb5b074350ca1340379335aced024f0cc2178370573eb6" + }, + { + "classes": 1, + "id": [ + "A", + 2064 + ], + "moves": 187, + "sha256": "32b3ecd2ab6386e5989e10cfccc09f30103176ae76ebab9e6756c206e031050a" + }, + { + "classes": 1, + "id": [ + "A", + 2065 + ], + "moves": 207, + "sha256": "ade572feb4fc2fe9c870290e14b467ff7ac8aedf348a173f7a9c9341541dacb5" + }, + { + "classes": 1, + "id": [ + "A", + 2066 + ], + "moves": 204, + "sha256": "45e1d8074560044f1926979a2449e1ffd1c46d3edf1dddba2c1fcf856f729357" + }, + { + "classes": 1, + "id": [ + "A", + 2067 + ], + "moves": 242, + "sha256": "fefa4fb4640277eb44397ea2ee9f674939eeeb871f9fe4f2fe0bcb22d3cd91a6" + }, + { + "classes": 1, + "id": [ + "A", + 2068 + ], + "moves": 151, + "sha256": "a6b71edbf61e6d5f9fb7a2dcbb63baeccf0a089e0268e64a1efbac18b2faba7f" + }, + { + "classes": 1, + "id": [ + "A", + 2069 + ], + "moves": 108, + "sha256": "8a71f976dc84eb9c7958bea68b0beaca9625459d8e55c75ea0930e6de0051596" + }, + { + "classes": 1, + "id": [ + "A", + 2070 + ], + "moves": 201, + "sha256": "5c351c521e29a4eca4d42a0f7637c5fe4d9a294db1f025a326ce678f1d19e3c6" + }, + { + "classes": 1, + "id": [ + "A", + 2071 + ], + "moves": 147, + "sha256": "f28c279f42bcb69d5193b496197ccb72dcd64e82a138c57a4d182b5598525e5e" + }, + { + "classes": 1, + "id": [ + "A", + 2072 + ], + "moves": 277, + "sha256": "f2a4679deafe723cfb479908338992902483389b222c4795389aa7b895ac7ede" + }, + { + "classes": 1, + "id": [ + "A", + 2073 + ], + "moves": 276, + "sha256": "5d4e1b4da8df6e1bfba3c8004948397260b7738792aa6f0651521c29a4189b41" + }, + { + "classes": 1, + "id": [ + "A", + 2074 + ], + "moves": 199, + "sha256": "6fe45678545cee643c714cbc464131a60ad8e2f96dfb359d5a887f419626ecca" + }, + { + "classes": 1, + "id": [ + "A", + 2075 + ], + "moves": 33, + "sha256": "9bd4f9ebd5257891c0110a4b3bece21d38628c7a46571646cb8736a20a8faebc" + }, + { + "classes": 10, + "id": [ + "A", + 2076 + ], + "moves": 173, + "sha256": "56b86b73790b81a3b1b5586a1aced1fec452cb144ad8a63fd8109a8a4d5e4db2" + }, + { + "classes": 1, + "id": [ + "A", + 2077 + ], + "moves": 240, + "sha256": "6b0c4223c0071cc27ef962e183fb9d19caad6e9f4ba3a11346a4c0046ce23d4f" + }, + { + "classes": 1, + "id": [ + "A", + 2078 + ], + "moves": 92, + "sha256": "b1f05aeae071285dfaf41f0381cdf01ed03dca6fbe26f621cbdbec502fa1b9e0" + }, + { + "classes": 1, + "id": [ + "A", + 2079 + ], + "moves": 114, + "sha256": "97d98ce21edf02862737203cb8a228f2a99e1616b468c583a44c55ea86a7bc84" + }, + { + "classes": 1, + "id": [ + "A", + 2080 + ], + "moves": 120, + "sha256": "a7a608e1cbbbf1cbde43f7331fd1a6b579db47eb93826ef7dca8e20702e3601c" + }, + { + "classes": 1, + "id": [ + "A", + 2081 + ], + "moves": 293, + "sha256": "55725f96902ffec1cedda1ab7e51a8e014e4ac2ddddd0a061a70ae48d7d3b6af" + }, + { + "classes": 1, + "id": [ + "A", + 2082 + ], + "moves": 274, + "sha256": "2c3ca6cab00b024dbe5bc627a32205cb250a839a56bb936b3cf1e59b18a4dc02" + }, + { + "classes": 1, + "id": [ + "A", + 2083 + ], + "moves": 272, + "sha256": "2286aa458fac056668a990086aa787b17ec6ed9abd3dad1239237f2a4ec7f332" + }, + { + "classes": 1, + "id": [ + "A", + 2084 + ], + "moves": 76, + "sha256": "14aeb003a87a80d6094de406478eeb2cd608e3db3f947ed4d29d08ca1fde069b" + }, + { + "classes": 1, + "id": [ + "A", + 2085 + ], + "moves": 73, + "sha256": "7b832650b92566637a111515858b2353455b6384426bf9298ab01d9769355ac1" + }, + { + "classes": 1, + "id": [ + "A", + 2086 + ], + "moves": 89, + "sha256": "b3da252f776de3d193cf6884262d1ef57ff00382754f746b33aeed6c3b6b6c48" + }, + { + "classes": 1, + "id": [ + "A", + 2087 + ], + "moves": 237, + "sha256": "168b51f79b7264f51fdc0029fda3def4341125859521ef36dd9399c5b5cf125f" + }, + { + "classes": 1, + "id": [ + "A", + 2088 + ], + "moves": 236, + "sha256": "27764a273cf96e971acfb34d18a98461b59c30c32b37ed16dabebd25f7d2205c" + }, + { + "classes": 1, + "id": [ + "A", + 2089 + ], + "moves": 91, + "sha256": "6fcb786e83c2fd5c9b7c0c02b511bfad1ea0a6cf183238ec819ab0faac077746" + }, + { + "classes": 1, + "id": [ + "A", + 2090 + ], + "moves": 119, + "sha256": "e01e6083b24a95cb4119e2407432815d83676aec06b38dc4a7b2eda9ddd8ee5a" + }, + { + "classes": 1, + "id": [ + "A", + 2091 + ], + "moves": 117, + "sha256": "d4f7d3980675c10fd9b69768cfbe2ff8169482ac72d931140c3abacd2a0b35ac" + }, + { + "classes": 1, + "id": [ + "A", + 2092 + ], + "moves": 118, + "sha256": "fed59847ad2942440ff3585d03cf8e52332a5303d89bf459c2de240cddba513a" + }, + { + "classes": 1, + "id": [ + "A", + 2093 + ], + "moves": 116, + "sha256": "0b328b78bbb300c05a361ec636623f5dfd0ed203ba1fb8688d1a10888163b472" + }, + { + "classes": 1, + "id": [ + "A", + 2094 + ], + "moves": 143, + "sha256": "02f9f75fc2e29be951e38ee58f018bdc298264422b8cd691cd4283288882dbd8" + }, + { + "classes": 1, + "id": [ + "A", + 2095 + ], + "moves": 84, + "sha256": "baad1f82aff41f49d601bf0cb66b6a9c1587ca259c7670f744d9b559495a0aa5" + }, + { + "classes": 1, + "id": [ + "A", + 2096 + ], + "moves": 109, + "sha256": "bab4e4b07b8c71712511e6a9bc356b0ba4dbe5a29ef5b7dc48e7489eeba30caa" + }, + { + "classes": 1, + "id": [ + "A", + 2097 + ], + "moves": 149, + "sha256": "b26831193b59244b5c4e3de03725f11a402d290eb41e671a4e1ff6a83f770d90" + }, + { + "classes": 1, + "id": [ + "A", + 2098 + ], + "moves": 167, + "sha256": "c7bfc82b295a22beb0db3859eac60e4bd3fc3dc566f478cfba6f8116c670e626" + }, + { + "classes": 1, + "id": [ + "A", + 2099 + ], + "moves": 281, + "sha256": "7ec98164396829a540b800ca5499bb114119f8905079fe19bcd588fad1cdde05" + }, + { + "classes": 1, + "id": [ + "A", + 2100 + ], + "moves": 179, + "sha256": "549c2f97f66d64aaeae58e548d7ae1fe09ae704755488b5e28e9a704c1e8caeb" + }, + { + "classes": 1, + "id": [ + "A", + 2101 + ], + "moves": 173, + "sha256": "48ab5fc074a276588de7255750afb0e90a408cc8ecae8ed400a7a85d9a742c35" + }, + { + "classes": 1, + "id": [ + "A", + 2102 + ], + "moves": 209, + "sha256": "65829a231fbd644f475933edd8aabc859b6d64678eaf54fd58282966c8700ae9" + }, + { + "classes": 1, + "id": [ + "A", + 2103 + ], + "moves": 294, + "sha256": "4d9d723950ccd04cd88955bc790c11ae472568c9b26e032aac30cfc4501dcebc" + }, + { + "classes": 1, + "id": [ + "A", + 2104 + ], + "moves": 25, + "sha256": "267b2687756fc6e40531e3378f45e6c33b0bbb4aae0227ee52e2e66deb88fd5f" + }, + { + "classes": 2, + "id": [ + "A", + 2105 + ], + "moves": 25, + "sha256": "6a7fe7338f3e760fd0dcba3630fde7e0fe8e862f9ac806546fbbd0bb79e3846e" + }, + { + "classes": 1, + "id": [ + "A", + 2106 + ], + "moves": 279, + "sha256": "df1206a9070e511a60f718d70fb6a329fe308a5093c489965ea18bc50c20a437" + }, + { + "classes": 1, + "id": [ + "A", + 2107 + ], + "moves": 22, + "sha256": "206fabcee152c1266869bc4f0a55a85026385a6a8fc6fe3a5b1dd3dc9f0fbe33" + }, + { + "classes": 2, + "id": [ + "A", + 2108 + ], + "moves": 22, + "sha256": "0242ecb667e42192e7a240a9166d1a407ab51632c9eab7e646a0d295a12f920f" + }, + { + "classes": 1, + "id": [ + "A", + 2109 + ], + "moves": 293, + "sha256": "c8992360c51375ac908563440c4be97f5c00c8ef3b63fb312f2d49d1c1be0135" + }, + { + "classes": 1, + "id": [ + "A", + 2110 + ], + "moves": 19, + "sha256": "21555d2348a2f2d851b8de613d2b5d9416c4941ac7330b7f7cadb34a77ccc8e2" + }, + { + "classes": 2, + "id": [ + "A", + 2111 + ], + "moves": 19, + "sha256": "a4c4d5ec28b759d37b5bb3c3db212b8a0ab8103ae15fe03322c4b8b2a9885728" + }, + { + "classes": 1, + "id": [ + "A", + 2112 + ], + "moves": 237, + "sha256": "d009069e7eb56b0817789c042a170d9ce5f9ce9d687a021f8e7b9bfb04160dd0" + }, + { + "classes": 1, + "id": [ + "A", + 2113 + ], + "moves": 16, + "sha256": "f9e7d4c7cf0194b8fa8303228ff513546fcccd5ba8d10aa0d2a17c3e8e0d18ae" + }, + { + "classes": 2, + "id": [ + "A", + 2114 + ], + "moves": 16, + "sha256": "87ae1c5ad24652c3bd218080c769dbf53afa13ea598cc2beb463401e6e1c591f" + }, + { + "classes": 1, + "id": [ + "A", + 2115 + ], + "moves": 203, + "sha256": "fa95a580cc48100d12d8640308fc3a549c83bf0faae5d4d05df47ecddd1dea8e" + }, + { + "classes": 1, + "id": [ + "A", + 2116 + ], + "moves": 13, + "sha256": "3f42f0489bc42f2ca5b93e22eade339f88501c306ad63f406440e18642270340" + }, + { + "classes": 2, + "id": [ + "A", + 2117 + ], + "moves": 13, + "sha256": "d93bda4c8b2c35e033dac9ad45ac4a9a009b40d77f607dd54bd502c6946423b7" + }, + { + "classes": 1, + "id": [ + "A", + 2118 + ], + "moves": 287, + "sha256": "25ff219c5ae0ca418d2eea5796c54b628b721b2c9168480aeb32e2dfb7244634" + }, + { + "classes": 1, + "id": [ + "A", + 2119 + ], + "moves": 10, + "sha256": "00f86fd43562db7aa56e8167276c539eb0d1e11be49f218d0a7f928ef2904c61" + }, + { + "classes": 2, + "id": [ + "A", + 2120 + ], + "moves": 10, + "sha256": "94b4b6249478beb796ee062d5f971222448184ad7992891cafe96f339c293a65" + }, + { + "classes": 1, + "id": [ + "A", + 2121 + ], + "moves": 281, + "sha256": "67f5ddbb75efb9a28cad1094540ddbf0bdbdae79befcf53de6784274c3b0418a" + }, + { + "classes": 1, + "id": [ + "A", + 2122 + ], + "moves": 7, + "sha256": "fe825ae3aee8e01cdf7464ad2ce8c9741bdc5773428b3530f12ec8900be99d6d" + }, + { + "classes": 2, + "id": [ + "A", + 2123 + ], + "moves": 7, + "sha256": "9b3bb32f8548ac789dec10974fc6b414cd469a58f56d85ce2f294817ac789414" + }, + { + "classes": 1, + "id": [ + "A", + 2124 + ], + "moves": 255, + "sha256": "d0bc6300eb8495b5606aefb66c98de173aac7e2bb9d225fbc6c8f444944ce9d5" + }, + { + "classes": 1, + "id": [ + "A", + 2125 + ], + "moves": 4, + "sha256": "2116e66e7ac29da802c9eb0c42639520a81538ce337c80e37673ddefe554ec76" + }, + { + "classes": 2, + "id": [ + "A", + 2126 + ], + "moves": 4, + "sha256": "38f581a6789d2a2f363f9669934743c728f4083ec31719e27596db7891d4ffa3" + }, + { + "classes": 1, + "id": [ + "A", + 2127 + ], + "moves": 225, + "sha256": "649327ab1c5df9886a168b8b6a0426b624ab17f2eb6ab8bb07f27ea8866365eb" + }, + { + "classes": 1, + "id": [ + "A", + 2128 + ], + "moves": 1, + "sha256": "0e71616ea75a49efa0f3de83236803b153b4be36a820b5518f015604a464fb42" + }, + { + "classes": 1, + "id": [ + "A", + 2129 + ], + "moves": 1, + "sha256": "9c67a13b465d4d5e4d4cb1450cdf7e6499e80df8430caf5703396626a9e82fc8" + }, + { + "classes": 1, + "id": [ + "B", + 0 + ], + "moves": 132, + "sha256": "447c60c2f871e8fb27fe0db0e5a53e1ad287e5cb474cfbf1e6af1e9668aec363" + }, + { + "classes": 1, + "id": [ + "B", + 1 + ], + "moves": 367, + "sha256": "40d7801fd7932b2ff5a53d443aa8c056098470077e8576fc30724fbd352c98a8" + }, + { + "classes": 1, + "id": [ + "B", + 2 + ], + "moves": 403, + "sha256": "adb2d29eedb059bf18a212aa4515f4ec5fb276f3626527369a066f361be3094d" + }, + { + "classes": 1, + "id": [ + "B", + 3 + ], + "moves": 408, + "sha256": "28136096a6b7111ba3680a8dbb3ce0da0b7b78c5f0256c37b9f980a6c11b05db" + }, + { + "classes": 2, + "id": [ + "B", + 4 + ], + "moves": 211, + "sha256": "12fbcf228800ea0d08dddee029771309e2c206dc9c11d150823faccca4ef7d8e" + }, + { + "classes": 1, + "id": [ + "B", + 5 + ], + "moves": 103, + "sha256": "8c889367fdc50d0c1eea878847771c4539c40bb467ecb13733acafc72d7e162c" + }, + { + "classes": 1, + "id": [ + "B", + 6 + ], + "moves": 369, + "sha256": "b68a6319b33b88316a75cb232a6788bd3732fda6f8149966911a2873f03ea105" + }, + { + "classes": 1, + "id": [ + "B", + 7 + ], + "moves": 454, + "sha256": "fde54c12a95fbbd9e12e54255083e82189ba03394caf340f61fdcc106ed5aded" + }, + { + "classes": 1, + "id": [ + "B", + 8 + ], + "moves": 320, + "sha256": "e43df7af42aa8c1cb973dc2faea2b941ede4565072dae018659551be6535bce7" + }, + { + "classes": 2, + "id": [ + "B", + 9 + ], + "moves": 261, + "sha256": "0dae0afcb2b952bd20afb6947f4885b881a373e298429a589ef2fa250d90e4c1" + }, + { + "classes": 1, + "id": [ + "B", + 10 + ], + "moves": 451, + "sha256": "ea87392566a311b82597ee6ecd2a60f018d824f72a62d39362c1082618f60f59" + }, + { + "classes": 1, + "id": [ + "B", + 11 + ], + "moves": 316, + "sha256": "c5d1f48d21cb03bb0c8be7048f4758a6026162502c9931964a20b97a223b54c2" + }, + { + "classes": 1, + "id": [ + "B", + 12 + ], + "moves": 413, + "sha256": "35ffc3d1e5127780842b4c057d3a572c8c4c0a74f2e01021281c63a023806fe2" + }, + { + "classes": 1, + "id": [ + "B", + 13 + ], + "moves": 171, + "sha256": "09d0b214325465d481867f446fca067a23577023f4e0b2cc02a891281aa00175" + }, + { + "classes": 1, + "id": [ + "B", + 14 + ], + "moves": 406, + "sha256": "9a44d5e669c6b4af0655b75b55400576cebe8d81acfe3dd2160852dc062919e3" + }, + { + "classes": 1, + "id": [ + "B", + 15 + ], + "moves": 282, + "sha256": "b4638b2e6c7c4ad38ae673c0ee5fefda6f8f234970bd17226903037468f94923" + }, + { + "classes": 1, + "id": [ + "B", + 16 + ], + "moves": 404, + "sha256": "e0161aa4439cadb284259b01ae6a7c10da9858036d4e11c4e4fb419c979ef591" + }, + { + "classes": 1, + "id": [ + "B", + 17 + ], + "moves": 204, + "sha256": "edea040e1bbe4ca22a07e6638686d455e23f0bbc063391d0d352b2218d123f95" + }, + { + "classes": 1, + "id": [ + "B", + 18 + ], + "moves": 411, + "sha256": "3234da41f700c00e5e73eb5bf8f247935afba6cf2634906c7e1074a7c0f2aaf1" + }, + { + "classes": 1, + "id": [ + "B", + 19 + ], + "moves": 254, + "sha256": "581254418db20f90fcfa4d07829139c86ab9f08af4e2087445e9b903dd9e89a2" + }, + { + "classes": 1, + "id": [ + "B", + 20 + ], + "moves": 169, + "sha256": "79f7427c604a42231dc04750ba0398c5ea4ce908793f50b6b4461895eb1ed956" + }, + { + "classes": 1, + "id": [ + "B", + 21 + ], + "moves": 364, + "sha256": "cbb090953ea343e5f46be30180dd6217d0af5c448bc5f4379a57d066a991cf9e" + }, + { + "classes": 1, + "id": [ + "B", + 22 + ], + "moves": 370, + "sha256": "a26438675ed285165d61bc5f22fdb2cdd8ff0b965e3888465ec638dd056081f0" + }, + { + "classes": 1, + "id": [ + "B", + 23 + ], + "moves": 250, + "sha256": "0ab69c7227fb89ada121814f2c3eeda4cb5ca69b3a7e92fa68ca37911d4a89dd" + }, + { + "classes": 1, + "id": [ + "B", + 24 + ], + "moves": 209, + "sha256": "61a30bb7f2bd61a87908829b06460a6fec92e65d89b2f5a1c58c4c5718b5a50a" + }, + { + "classes": 1, + "id": [ + "B", + 25 + ], + "moves": 368, + "sha256": "ea2e4b36771f500be18d43fbf904015acc884f3618685403d94d963983b01eb2" + }, + { + "classes": 1, + "id": [ + "B", + 26 + ], + "moves": 362, + "sha256": "19d80768c89b27c8eafef7901fc3a7ddb5cb8121813c751c1c59cb6662790f96" + }, + { + "classes": 1, + "id": [ + "B", + 27 + ], + "moves": 165, + "sha256": "df8010585e6cbe209917103d6081d6ed5e9e19420025f37e7bb69634abe17817" + }, + { + "classes": 1, + "id": [ + "B", + 28 + ], + "moves": 452, + "sha256": "51fd78ab1c7af54f8bf6a611a740fc7720363581c3af7518f679336bcc8613bc" + }, + { + "classes": 1, + "id": [ + "B", + 29 + ], + "moves": 321, + "sha256": "99661c9ab7b182cac5c6ce84134cc0587fe2529b0f420b64386dce4629e58126" + }, + { + "classes": 1, + "id": [ + "B", + 30 + ], + "moves": 284, + "sha256": "f225f1322695ffe1ea722ec30bd06e2ada6675f198e6fe4f5fda96342570e611" + }, + { + "classes": 1, + "id": [ + "B", + 31 + ], + "moves": 322, + "sha256": "a3684a60311d488c1cca47d984485aaf7fdc3a42e24f0cbc8ac67ec1214125da" + }, + { + "classes": 1, + "id": [ + "B", + 32 + ], + "moves": 205, + "sha256": "cbc0f5094aabce69e7d97ff7e74810ca5c6d537731d14e1007d620fc418c3bb6" + }, + { + "classes": 1, + "id": [ + "B", + 33 + ], + "moves": 247, + "sha256": "802d95f5af4e5fe07b5ce26ffdd5116c80107bab61bde11991ce3a43b979f9da" + }, + { + "classes": 1, + "id": [ + "B", + 34 + ], + "moves": 453, + "sha256": "1ce53ca2e5fe6b708df72d6752d69a684e6922117e2d04edea5c0918a290a5c4" + }, + { + "classes": 1, + "id": [ + "B", + 35 + ], + "moves": 288, + "sha256": "287e9ee6db1e91aaa701b465f3913c774b1e50869781398b2001354ecedd9324" + }, + { + "classes": 1, + "id": [ + "B", + 36 + ], + "moves": 314, + "sha256": "aa007c48161831a8aee0b360dcbd789b755fc7e8dba3008d97d2902d4a704088" + }, + { + "classes": 1, + "id": [ + "B", + 37 + ], + "moves": 456, + "sha256": "84a48227c963c9e493459fd1320e4dd281925024a24c9378a91e9cd349b2fe21" + }, + { + "classes": 1, + "id": [ + "B", + 38 + ], + "moves": 168, + "sha256": "e36dda4895f2d08f9e42e4471e929cd4924778350dfc1c3dd57ba6a92083aa2c" + }, + { + "classes": 1, + "id": [ + "B", + 39 + ], + "moves": 323, + "sha256": "088ec422f73535fe7435a16c6260a95bf0fa1ba847385be987bdfe3ef341f44e" + }, + { + "classes": 1, + "id": [ + "B", + 40 + ], + "moves": 208, + "sha256": "ada84409b96a78d6d371bb500d7bf25821212db6da4fed3b9c0bcc952b8dfbb0" + }, + { + "classes": 1, + "id": [ + "B", + 41 + ], + "moves": 244, + "sha256": "fb50dcbf0d54675abca71ac5c5e94a80e2f500ef84195b614da4d7aea8522249" + }, + { + "classes": 1, + "id": [ + "B", + 42 + ], + "moves": 458, + "sha256": "7e47fc8bbd5bf3d8bc20a150b15176cd9a2731c3a0c46ce844e83c4817e0256c" + }, + { + "classes": 1, + "id": [ + "B", + 43 + ], + "moves": 106, + "sha256": "232198322438a986e959184884dc4a5440708fa6410ddbcfc939a3e12820dfd7" + }, + { + "classes": 1, + "id": [ + "B", + 44 + ], + "moves": 101, + "sha256": "570d704af93ad3982b39d313c399db9c656c598cf269ff03931375e95babf0a0" + }, + { + "classes": 1, + "id": [ + "B", + 45 + ], + "moves": 164, + "sha256": "a1010088d92a2ee6196b3e0be1363d06d90a993011eedb28152a3afeb2d9dcd8" + }, + { + "classes": 2, + "id": [ + "B", + 46 + ], + "moves": 573, + "sha256": "d2a7042e34936a742d5379fec4b12afee28db355d137d81d3aa57e3bd5dc8b68" + }, + { + "classes": 1, + "id": [ + "B", + 47 + ], + "moves": 246, + "sha256": "673c6bb70a85877bedb3b3a8b0fdd1834be6df8864a4d9fb0c82d0d46d05bdf3" + }, + { + "classes": 1, + "id": [ + "B", + 48 + ], + "moves": 109, + "sha256": "34b8654df44032791e34a00922360155979900509c83382a5ed8547ef75b470f" + }, + { + "classes": 1, + "id": [ + "B", + 49 + ], + "moves": 162, + "sha256": "44f0d91ff4f1d4059c9d082064fa278d835dde1272306e5402490ce7f4ad15b6" + }, + { + "classes": 2, + "id": [ + "B", + 50 + ], + "moves": 217, + "sha256": "3ee68067d40a171be4bcb226305db05334baab7e135cefbd942fcee0af730614" + }, + { + "classes": 1, + "id": [ + "B", + 51 + ], + "moves": 243, + "sha256": "76082189c63872d7efa74e4a499d4741c100bf1b82cefdafa05bd28534fbee04" + }, + { + "classes": 2, + "id": [ + "B", + 52 + ], + "moves": 209, + "sha256": "41575e32ab96c94633927fbff1d73bf1ad5fe96861c863a4e0885cfa749a8b6f" + }, + { + "classes": 2, + "id": [ + "B", + 53 + ], + "moves": 431, + "sha256": "cf6111b05e91a47a4af6c78f0a3a6c8ff4a34a84b7701f2035f21f223fef9fa1" + }, + { + "classes": 1, + "id": [ + "B", + 54 + ], + "moves": 101, + "sha256": "d0b1d9186a8e12c3d9b2902be3673205d9b1d35327dc7e4379ad5d8f30e759aa" + }, + { + "classes": 1, + "id": [ + "B", + 55 + ], + "moves": 167, + "sha256": "323277c7025b954f10f678a086c8534d0e79d32692802b06013d18c1875b83df" + }, + { + "classes": 2, + "id": [ + "B", + 56 + ], + "moves": 259, + "sha256": "dbc1d03eeb761d7ae14229efda9e7c23df8f005acc6d59456fb6300be5ef7db1" + }, + { + "classes": 2, + "id": [ + "B", + 57 + ], + "moves": 263, + "sha256": "8ea13b721198492af1a22f46ad9173db3ea8b7ef02f95fc8fe861c1a69163287" + }, + { + "classes": 1, + "id": [ + "B", + 58 + ], + "moves": 245, + "sha256": "5f6a6dfc34cb6b490c2925412da643caf1bdb1687359653fec2ccf051254c477" + }, + { + "classes": 2, + "id": [ + "B", + 59 + ], + "moves": 421, + "sha256": "1f63925bc8e9353bd6d54f14cf4a1fdbae3dde35dba5643aa45e5b455dcda757" + }, + { + "classes": 2, + "id": [ + "B", + 60 + ], + "moves": 575, + "sha256": "f1662d8d66705bd5390c42ccf00fda05d3cbde80dfaa06cca3c1381e42d03908" + }, + { + "classes": 1, + "id": [ + "B", + 61 + ], + "moves": 128, + "sha256": "8c499bc4883dc68603b0d4335fbea15f2891467b2d9bddc773bd5b8114760b91" + }, + { + "classes": 1, + "id": [ + "B", + 62 + ], + "moves": 132, + "sha256": "541638f0482fa5fe85570b418bd8847660a3e8595fc274f3245a8fc5af923d2c" + }, + { + "classes": 1, + "id": [ + "B", + 63 + ], + "moves": 162, + "sha256": "46f3d24578b9d9ddb99f435e8c520d9138119bd81a2dff3160db0e702f6d41b5" + }, + { + "classes": 1, + "id": [ + "B", + 64 + ], + "moves": 241, + "sha256": "d4a84c2250dcfe89234b809effe5fcf60dc4ea3a49fc5eb7498d46e457b2e50e" + }, + { + "classes": 1, + "id": [ + "B", + 65 + ], + "moves": 450, + "sha256": "86dc3b9e28d8d797bf35c984aa2d26ea1f00afd8dfd45cfbc28389f718b94afb" + }, + { + "classes": 1, + "id": [ + "B", + 66 + ], + "moves": 166, + "sha256": "87fc27fa921f3e3dcb12e82b454695f42ef7355c18307db62c9257b9918ba5ae" + }, + { + "classes": 1, + "id": [ + "B", + 67 + ], + "moves": 319, + "sha256": "ba3c496768258333448564e21bdc514defcd2bf13313ed1732ad9b76abd4e684" + }, + { + "classes": 1, + "id": [ + "B", + 68 + ], + "moves": 282, + "sha256": "7427f99a2656feec9803fce11536e293be97981c82bc551a835731d43434380d" + }, + { + "classes": 1, + "id": [ + "B", + 69 + ], + "moves": 456, + "sha256": "b510015d7bb0ea740406ed2ad650a3bc1180f297d7b8ac59939bc034ecca8cb2" + }, + { + "classes": 1, + "id": [ + "B", + 70 + ], + "moves": 315, + "sha256": "e7758b1ec5ac8c662a4da77634f018f97bf29b2254d4d1b083343d85fcbda470" + }, + { + "classes": 1, + "id": [ + "B", + 71 + ], + "moves": 242, + "sha256": "3b605757b915bb539dd94e905738ba67827822165dd78baf165a0b25930bcd1c" + }, + { + "classes": 1, + "id": [ + "B", + 72 + ], + "moves": 448, + "sha256": "efdd6ec9c060f6d117c7478376df00532c9d0af21ab51f57838d4ec0ba1f2119" + }, + { + "classes": 1, + "id": [ + "B", + 73 + ], + "moves": 163, + "sha256": "a0dfde35a7fa96e4e61009e980d5546463e70dda3b03cdf166336e644ef58c1b" + }, + { + "classes": 1, + "id": [ + "B", + 74 + ], + "moves": 318, + "sha256": "9e1ae6e5bccd05de7f9b3a99a8d4ae5c462fdc6480dc55b31315c171c4f580b6" + }, + { + "classes": 1, + "id": [ + "B", + 75 + ], + "moves": 241, + "sha256": "1c66eebabe63ea4624bc66ef5525ffe2f0f6e3e8156a779255d9a7abb548cd35" + }, + { + "classes": 1, + "id": [ + "B", + 76 + ], + "moves": 313, + "sha256": "b50caa1d79b9d41c982115bab442e61cf70c84d9898a02fab1a4218444845393" + }, + { + "classes": 1, + "id": [ + "B", + 77 + ], + "moves": 449, + "sha256": "40cf8486a0e0f394e28bce26bfe134a1461a5ebe1ddfe5650015ecea2ce97d9a" + }, + { + "classes": 1, + "id": [ + "B", + 78 + ], + "moves": 290, + "sha256": "83373e4187981d501122df213e0c3f9cc09461ef847aec551df33e3fe77022fc" + }, + { + "classes": 1, + "id": [ + "B", + 79 + ], + "moves": 409, + "sha256": "6a65837c4faf285ca78ce7a7e17b48d2214f844cb1686314d75fb9faad5ac1d7" + }, + { + "classes": 1, + "id": [ + "B", + 80 + ], + "moves": 204, + "sha256": "039ce6e578ce9512cc03486943b857d0c57e8db14849fe9c158297ed4163d5b4" + }, + { + "classes": 1, + "id": [ + "B", + 81 + ], + "moves": 410, + "sha256": "d49bce3b1d1396d7185e56228d2ca8d51bb5489b2cb1e051caa988ac08af22f9" + }, + { + "classes": 1, + "id": [ + "B", + 82 + ], + "moves": 169, + "sha256": "6769c45e281ab702cf1cde07c20a45ea933243a7d264fc881e2a7691fd3631c9" + }, + { + "classes": 1, + "id": [ + "B", + 83 + ], + "moves": 285, + "sha256": "ff9493f529f79e2299f3443f1cf3aaed3d9edcd5b513f125272c28060aa543fb" + }, + { + "classes": 1, + "id": [ + "B", + 84 + ], + "moves": 407, + "sha256": "20fe7d37b068e46a9d3485bdb0cd51aebba7612561bb4efeb5baecbe3e7eba41" + }, + { + "classes": 1, + "id": [ + "B", + 85 + ], + "moves": 253, + "sha256": "93fae5afeb8b40d286fd206c1eca0379f011ae4458aaa84eeb37bd5accdc958e" + }, + { + "classes": 1, + "id": [ + "B", + 86 + ], + "moves": 412, + "sha256": "bc7e2d307750973d002cd60b1976dbd2f9245d967424a5feb181dd72abc90e73" + }, + { + "classes": 1, + "id": [ + "B", + 87 + ], + "moves": 170, + "sha256": "9bf81b8efd1636be95ff76bdd4e3f888055badd83d77a60177aed20db6fa9e08" + }, + { + "classes": 1, + "id": [ + "B", + 88 + ], + "moves": 207, + "sha256": "83295c42b24e3a1eab8eb00083c2c2c83356f73f50691adbde75bcab946c7f38" + }, + { + "classes": 1, + "id": [ + "B", + 89 + ], + "moves": 361, + "sha256": "16e74a493d6e8393653409d5660ec16e94d2102c7c77756ca29f68d6679274cc" + }, + { + "classes": 1, + "id": [ + "B", + 90 + ], + "moves": 363, + "sha256": "5e2b046fc35106a54d593979d5043f132808cec44a7dc10e48fb903fec50d9f7" + }, + { + "classes": 1, + "id": [ + "B", + 91 + ], + "moves": 360, + "sha256": "4ba25cadfd03e12fcd150ca21524c8661104c0da84ee7ebd6244766dfc72a009" + }, + { + "classes": 1, + "id": [ + "B", + 92 + ], + "moves": 366, + "sha256": "15373234ca73adb61145c75f6a4c56a96fe243bb5d25b8a7d2d74a0ea3a53bf8" + }, + { + "classes": 1, + "id": [ + "B", + 93 + ], + "moves": 249, + "sha256": "edf3c9872233e49bf3d8bc5922147c5911779af3e1132629e1d23fd9c2b277e0" + }, + { + "classes": 1, + "id": [ + "B", + 94 + ], + "moves": 405, + "sha256": "e794a1b26f834ffc3f85da28104bdecbe8c13ec966543dd47694f5a333e07a76" + }, + { + "classes": 1, + "id": [ + "B", + 95 + ], + "moves": 317, + "sha256": "d286223c74a6259c0f188bbebd74c8aeeb268d815662a98e2388cdc7ce8d1f98" + }, + { + "classes": 1, + "id": [ + "B", + 96 + ], + "moves": 448, + "sha256": "930afdcf91a02007fd1d7e8cbe5486e251fa41b0f63324c82a85ee04cb54919e" + }, + { + "classes": 1, + "id": [ + "B", + 97 + ], + "moves": 360, + "sha256": "0584b1c74f3972f239dde87ec5dac6e391f8dd1785214036db2e5234c57757e4" + }, + { + "classes": 1, + "id": [ + "B", + 98 + ], + "moves": 313, + "sha256": "38b0586f4058689f565526fe63d7b1b3932997a9cce24e6c34e80084f3289b60" + }, + { + "classes": 1, + "id": [ + "B", + 99 + ], + "moves": 365, + "sha256": "121007879f46af09c64902e536455be758ef0748828d5de001933eee0eac519c" + }, + { + "classes": 1, + "id": [ + "B", + 100 + ], + "moves": 403, + "sha256": "1ec3915c8146a4c2c3cebc17877080bc83104b6f39f8131cb45e65e6b3f92e8a" + }, + { + "classes": 1, + "id": [ + "B", + 101 + ], + "moves": 455, + "sha256": "d9e577528fb1bc634f5b6d6b2ae3c73242928add7db2a3f99080b5b9798180b3" + }, + { + "classes": 10, + "id": [ + "B", + 102 + ], + "moves": 103, + "sha256": "a80f03c17f3fe3b1d1a4128db856a5d36f7e57b3057cd6871637b853d26a04e6" + }, + { + "classes": 8, + "id": [ + "B", + 103 + ], + "moves": 60, + "sha256": "34c07c80b74d0acdc393d216374842da36759a6aa8fadd6a2847c03c2cc2ed42" + }, + { + "classes": 9, + "id": [ + "B", + 104 + ], + "moves": 105, + "sha256": "69ef5434cbf380b67e5c06e683ffed41e3101e7ad228a997a36be28bfbcabd09" + }, + { + "classes": 9, + "id": [ + "B", + 105 + ], + "moves": 108, + "sha256": "85bc0d46a8ff0c3bda0e26f546a8e345d43372bf3804c4888a01c9dea4218bd4" + }, + { + "classes": 10, + "id": [ + "B", + 106 + ], + "moves": 106, + "sha256": "390b211f2993ce3266dbe4bc91a5338c87e28a30e096f047434a86af06089411" + }, + { + "classes": 9, + "id": [ + "B", + 107 + ], + "moves": 107, + "sha256": "bf6917fe5293da2b8a396ef38be7d9288c186170f703bc3f1b665b92cb889650" + }, + { + "classes": 9, + "id": [ + "B", + 108 + ], + "moves": 60, + "sha256": "ce2f14e9a6d103ebd616023634e3ee0ed3048f5857450e2c77fad25e30cbd912" + }, + { + "classes": 10, + "id": [ + "B", + 109 + ], + "moves": 108, + "sha256": "0bbee1bf64438a53adfaf0fd8d62422d4b6669912eb4a3df6718313871edf183" + }, + { + "classes": 12, + "id": [ + "B", + 110 + ], + "moves": 108, + "sha256": "aaaf3f42efae4f1d453d7ca4df67cb996c3cc2f6dadf077a9ee27e21e4a2d607" + }, + { + "classes": 3, + "id": [ + "B", + 111 + ], + "moves": 15, + "sha256": "09a1cdf7084e4845b65ce0205a47dde55be0718ee8f7554ddd6a2fedc4e8aeaf" + }, + { + "classes": 4, + "id": [ + "B", + 112 + ], + "moves": 12, + "sha256": "85242a9b84680b1edba221240e31095dca54cfb49825f2ea2b9a2f1892708a2b" + }, + { + "classes": 2, + "id": [ + "B", + 113 + ], + "moves": 8, + "sha256": "6af2d421f1811bc85222fbe238b8132a3731ec5251eb3d5abeb59355e2744293" + }, + { + "classes": 6, + "id": [ + "B", + 114 + ], + "moves": 966, + "sha256": "78b3157f39ac8d4c638bc1a26234fe179d6389eb6d5b81337843042aa707e161" + }, + { + "classes": 3, + "id": [ + "B", + 115 + ], + "moves": 7, + "sha256": "39fc7410dd1a3ca446f0a47ff4f0c83b96203ce3f3b14e2848818d9d93c762bb" + }, + { + "classes": 9, + "id": [ + "B", + 116 + ], + "moves": 384, + "sha256": "7b7c58a6d649368624edba9982cb174e322b9386c270d97f64342de64b6a0497" + }, + { + "classes": 2, + "id": [ + "B", + 117 + ], + "moves": 8, + "sha256": "b340b3368ebcf2675f7b885a9df37c242387f8badc399d94208f87cd3fbf8c7b" + }, + { + "classes": 6, + "id": [ + "B", + 118 + ], + "moves": 1035, + "sha256": "7b5cb912cf2d0cd632873c90ee072c483ae4f5ce050c1dd9716548e1ff093210" + }, + { + "classes": 10, + "id": [ + "B", + 119 + ], + "moves": 439, + "sha256": "4ae6b9bda4dfda210a3d1c59251557bd9b1efe0188276a963f7a9b49c69e0694" + }, + { + "classes": 2, + "id": [ + "B", + 120 + ], + "moves": 13, + "sha256": "871b166d2aaa51444ce15a51f257a2d0fbee57004dcc831350123a904b609e0d" + }, + { + "classes": 3, + "id": [ + "B", + 121 + ], + "moves": 11, + "sha256": "967bc7a5b5e203b52655c76be9f03314aa1748f165d35e44a21966b7469cae19" + }, + { + "classes": 9, + "id": [ + "B", + 122 + ], + "moves": 441, + "sha256": "8eabf7b4ae71a325f36d7b6537ab9401c125cc3848b2bf9c0664d0cf7a65fe58" + }, + { + "classes": 8, + "id": [ + "B", + 123 + ], + "moves": 375, + "sha256": "8a101eb18acb1a296533b8877c22657c03a5cc41fd367738d30cfc72a6d3c7ae" + }, + { + "classes": 5, + "id": [ + "B", + 124 + ], + "moves": 435, + "sha256": "387cb9581aefec0e77c72b5c5466adb05aef29683f94e374378c05b8298506ad" + }, + { + "classes": 6, + "id": [ + "B", + 125 + ], + "moves": 374, + "sha256": "001df8682b0d1400db286245e65272743bb7a63a2c71704c82df33c41d736575" + }, + { + "classes": 5, + "id": [ + "B", + 126 + ], + "moves": 436, + "sha256": "73860428eaf3236f29280487a997ee24fd79f082de2029e8915a4afee2585e98" + }, + { + "classes": 10, + "id": [ + "B", + 127 + ], + "moves": 439, + "sha256": "5fd35921d3e0dbc1c1819f0caa67ef0a771a28ce3682342a64c6c1c0139caf67" + }, + { + "classes": 6, + "id": [ + "B", + 128 + ], + "moves": 146, + "sha256": "4c9f94dea1847462a7fbac7b484f9d127e71d169e6bb4c4730b77ef58211076c" + }, + { + "classes": 5, + "id": [ + "B", + 129 + ], + "moves": 76, + "sha256": "0096875d91d0c09ec40b56718ef4be733970b344bb145f85f2f22ddf69cd11ce" + }, + { + "classes": 6, + "id": [ + "B", + 130 + ], + "moves": 89, + "sha256": "3a1818d5aaf57a5778d5cb8168ffdad834e1073e80a917998d3e2141a16c6642" + }, + { + "classes": 7, + "id": [ + "B", + 131 + ], + "moves": 136, + "sha256": "ef543654fba50eabc9115ec84aab45e0edcac0ec5469bd68ee1cda49320fd6f9" + }, + { + "classes": 5, + "id": [ + "B", + 132 + ], + "moves": 83, + "sha256": "144c9939c270b4d4e437a1b34ac3c5aa72935dec73f17e415a4c33ace54316ed" + }, + { + "classes": 3, + "id": [ + "B", + 133 + ], + "moves": 78, + "sha256": "43b586c60a3e69cd418cf32decb3260d8d6a521546b52518006fa85233b724cc" + }, + { + "classes": 3, + "id": [ + "B", + 134 + ], + "moves": 136, + "sha256": "24408d57a394e280e12d12210456e670e78864c913b20ecbfb20b07ff56284f9" + }, + { + "classes": 3, + "id": [ + "B", + 135 + ], + "moves": 76, + "sha256": "f48aac6a0ea11e04763dc909a444dc20ec8148c9ca7fc1bb124b973ce491ea75" + }, + { + "classes": 6, + "id": [ + "B", + 136 + ], + "moves": 136, + "sha256": "d0a48368ae0f63030f1801d1362ebe11302ca73ff8eb150e481fe744f0cfffd6" + }, + { + "classes": 2, + "id": [ + "B", + 137 + ], + "moves": 7, + "sha256": "f7aee0c136336c9a60fef7791f548d1a02f5c13a98236ffafe1fe637d17ff66e" + }, + { + "classes": 3, + "id": [ + "B", + 138 + ], + "moves": 7, + "sha256": "354d1a1c78d8f2805045fe7bed578cad9ed8be148ea4806efadee9eda134dfa1" + }, + { + "classes": 4, + "id": [ + "B", + 139 + ], + "moves": 15, + "sha256": "4c47033ca6d16631ee686fbb609db24c8ff2f4dd829c3facfda98be131670a74" + }, + { + "classes": 4, + "id": [ + "B", + 140 + ], + "moves": 12, + "sha256": "cf16c5dd8578c92d21ef55b0255d51a80842cb50e3f935ba2303aec53855ade1" + }, + { + "classes": 5, + "id": [ + "B", + 141 + ], + "moves": 10, + "sha256": "184cf4a785e6521a7d139cba9755b17eacd219bc106ef805d9798498470d1484" + }, + { + "classes": 10, + "id": [ + "B", + 142 + ], + "moves": 27, + "sha256": "18ef5cfa9b32e92aee544d580d5152ea0cbfdba521aebf52fa01e21c3caad9e7" + }, + { + "classes": 8, + "id": [ + "B", + 143 + ], + "moves": 19, + "sha256": "d7700fa77e61718723393906a7da7fa5d49c67e071fb68aefbb121e8ae3bf23f" + }, + { + "classes": 5, + "id": [ + "B", + 144 + ], + "moves": 18, + "sha256": "ab327092289d75b53bce05bdcc0c0afd833fa3e11bf2f6f3cf60953fd181f57e" + }, + { + "classes": 7, + "id": [ + "B", + 145 + ], + "moves": 15, + "sha256": "d1a38cf2bb8243b39c5621fc2fce10e8298e42818d3574a9b2195e3794393f66" + }, + { + "classes": 6, + "id": [ + "B", + 146 + ], + "moves": 13, + "sha256": "8bfb31f71d83daf45de37946561f8bebcc028fa743a26fe548a011129f2cb757" + }, + { + "classes": 7, + "id": [ + "B", + 147 + ], + "moves": 348, + "sha256": "c64cc6959c7c9c8802d37bad099b2dbaa2e8fdda2b25e999aba2998962e0fdbb" + }, + { + "classes": 5, + "id": [ + "B", + 148 + ], + "moves": 11, + "sha256": "9b6a18c9d138f3c59fe80e4b90ee807f8b823a8424c47070d83554b5421b07a6" + }, + { + "classes": 9, + "id": [ + "B", + 149 + ], + "moves": 348, + "sha256": "9265172468ae858432588e26a78adc7dcae96a5f72b829fa42d912cd46e73c02" + }, + { + "classes": 6, + "id": [ + "B", + 150 + ], + "moves": 15, + "sha256": "5c95e728e651d4e012c176d2509712ff15d6d94d894028fc41cf01a6e9cbc51b" + }, + { + "classes": 6, + "id": [ + "B", + 151 + ], + "moves": 12, + "sha256": "8414d0a2c135dcc6c9f4c16b0d83781206abfed9ba66d2e7a98c4b7e64643513" + }, + { + "classes": 8, + "id": [ + "B", + 152 + ], + "moves": 390, + "sha256": "7dc6f2cba83bd26a184c6f8d016129b0d49c3a42172ad73771f537cedb8ffa54" + }, + { + "classes": 5, + "id": [ + "B", + 153 + ], + "moves": 16, + "sha256": "5873eaa16ee8610e1d1e1653d1cca186ffdcacc7cff73319078955bf0e99721a" + }, + { + "classes": 9, + "id": [ + "B", + 154 + ], + "moves": 25, + "sha256": "318cfafc0338c12a0b3161044b702de45bb6e2011b572a4fc2a3c0b88188bd7f" + }, + { + "classes": 9, + "id": [ + "B", + 155 + ], + "moves": 19, + "sha256": "37c3d05a3933106ee48298b9120ffe2971d6ce7016014e1e232bd8d766282d20" + }, + { + "classes": 9, + "id": [ + "B", + 156 + ], + "moves": 398, + "sha256": "a9d037a78fce0289b482bf93544d322e156dcc9e1bedb43d40663c3e587d5915" + }, + { + "classes": 7, + "id": [ + "B", + 157 + ], + "moves": 23, + "sha256": "7c272812f6a33676296df38a3e55672dc60499609b43aa2df58d672e6d743bb7" + }, + { + "classes": 6, + "id": [ + "B", + 158 + ], + "moves": 19, + "sha256": "b17f0e2bef3699c1172d6649029efbee2bff1bca5f338e28805677a57372f5b1" + }, + { + "classes": 2, + "id": [ + "B", + 159 + ], + "moves": 339, + "sha256": "bb0e37231bf6ac08a4ea118fb65332218132327be74f0bf1a1e9bb05b126e48e" + }, + { + "classes": 10, + "id": [ + "B", + 160 + ], + "moves": 408, + "sha256": "5a28c26ed53c44279c5a979fbe995a2e5e075c200e7ac360ea35b595e49d5b40" + }, + { + "classes": 9, + "id": [ + "B", + 161 + ], + "moves": 27, + "sha256": "28a711a5419ce671f5cfa8a72d5676941dc803857ddf0cfd31dc2549530cd41a" + }, + { + "classes": 1, + "id": [ + "B", + 162 + ], + "moves": 381, + "sha256": "ed79ac1711cd0a3ed2d59eb9e1b0363468e51d384bb39f9acba55f6b77bd77d8" + }, + { + "classes": 8, + "id": [ + "B", + 163 + ], + "moves": 208, + "sha256": "856642497af86e277f743df0a2202023bb5cf07dca1a31c98705488c1b4b9bb4" + }, + { + "classes": 6, + "id": [ + "B", + 164 + ], + "moves": 100, + "sha256": "a8e6e37663cfcfd215135499510644174de59b4814cea2b1219f7e3bc43991f0" + }, + { + "classes": 7, + "id": [ + "B", + 165 + ], + "moves": 241, + "sha256": "1070c5d54a807832d51fb5b130e58623e6e892c0466d38c76963800f4b1a76f6" + }, + { + "classes": 8, + "id": [ + "B", + 166 + ], + "moves": 129, + "sha256": "19f88daa29e2236df97059ca244a4cba10cbb00e9bd8cbcb5d6cb3210443e10d" + }, + { + "classes": 9, + "id": [ + "B", + 167 + ], + "moves": 210, + "sha256": "6e7035b79176043bf767dc1bd3f1de357924dca59457e62db891239b7c49304d" + }, + { + "classes": 8, + "id": [ + "B", + 168 + ], + "moves": 125, + "sha256": "ea1703de451f9bf38cf3fb64d2691c92c38d56855742bdbd3f350345035ded16" + }, + { + "classes": 10, + "id": [ + "B", + 169 + ], + "moves": 131, + "sha256": "6fedba56b6c463a92f2afbce503657d5ff2b3baf65e0711432d90a8a41009f1b" + }, + { + "classes": 4, + "id": [ + "B", + 170 + ], + "moves": 187, + "sha256": "87e542af137c67fd15e480a8863d3418d6a31017d3eb412386b04f99bc569646" + }, + { + "classes": 3, + "id": [ + "B", + 171 + ], + "moves": 177, + "sha256": "f7e6a93e92b8c5d4b9c12a87c991dea1ce165500ccd8e1ec25109a7e4ca0ffa3" + }, + { + "classes": 3, + "id": [ + "B", + 172 + ], + "moves": 99, + "sha256": "d21fd33196dbea4c4fe7da40692cd4b1755d844cc44d22fd320f2270fc949512" + }, + { + "classes": 4, + "id": [ + "B", + 173 + ], + "moves": 15, + "sha256": "ba5d5e9776ab6e97b03de24ca78b4d0d114817d23b09f70bffecc2b315791688" + }, + { + "classes": 5, + "id": [ + "B", + 174 + ], + "moves": 17, + "sha256": "1f0741b0455f5fdd1d963310c778b5a18c93b84ea0826a81164a0f40368cc8b2" + }, + { + "classes": 5, + "id": [ + "B", + 175 + ], + "moves": 15, + "sha256": "f23e4f1811767768d36d808866b8d653562e8580c47a1575451d206135a9188d" + }, + { + "classes": 5, + "id": [ + "B", + 176 + ], + "moves": 20, + "sha256": "61d19a5b268f2f4b7266d9cd1ad77163b4376819d32021c47572e94120267aa1" + }, + { + "classes": 6, + "id": [ + "B", + 177 + ], + "moves": 16, + "sha256": "33b7dec24e45d41ec5cc3cea4de4f5bb517205a9c3cac8c4ddf63a8dbb0e1626" + }, + { + "classes": 4, + "id": [ + "B", + 178 + ], + "moves": 13, + "sha256": "9bcd7bb9a4efc44dc3678e70e540d36bbc9ee4d8e3870c86359497dcceee5acd" + }, + { + "classes": 5, + "id": [ + "B", + 179 + ], + "moves": 15, + "sha256": "83585807476303c3989662bab2f0c69c30caaf81030a22845575c7ab3f0148ff" + }, + { + "classes": 1, + "id": [ + "B", + 180 + ], + "moves": 1, + "sha256": "1233e3b54cf8a449c86de6f74b9a9307abb690fed8b0a45d1af9f60fde35451d" + }, + { + "classes": 1, + "id": [ + "B", + 181 + ], + "moves": 2, + "sha256": "22e0a11b6e7c081810dd8471c2b6908d6f547abadecd3acd353a3e8829ecdfca" + }, + { + "classes": 12, + "id": [ + "B", + 182 + ], + "moves": 389, + "sha256": "207f6c1acae23f8e90866af54ff0d74cfa98eef9c46aa0f9d8e6d67fc0155d4b" + }, + { + "classes": 10, + "id": [ + "B", + 183 + ], + "moves": 23, + "sha256": "22d96bb5a36c21b3caf545779590dc3f22a2def93796fff34ddd30dc2a9345d7" + }, + { + "classes": 3, + "id": [ + "B", + 184 + ], + "moves": 5, + "sha256": "652cc7b6acc0b64ef399ba7c894c554360006e980bedb110d195f189335db6ee" + }, + { + "classes": 4, + "id": [ + "B", + 185 + ], + "moves": 5, + "sha256": "3d1a5e371fc5e524c50e4e4efb767702dd465de34fe9a1c0d3ea75a4d82f330d" + }, + { + "classes": 8, + "id": [ + "B", + 186 + ], + "moves": 387, + "sha256": "cb012c9097bf34edec064d2461f9707e77ac900dcd1f627c20a6005233f755c8" + }, + { + "classes": 7, + "id": [ + "B", + 187 + ], + "moves": 17, + "sha256": "8be624983926ef26a8c9625e2aff0f15698c82cf447aa4fdd4b1396e6cf0ed75" + }, + { + "classes": 7, + "id": [ + "B", + 188 + ], + "moves": 18, + "sha256": "0eb296376222b92b6b7a6c11f51ba3f8302fe132c76a77710326cf6002ef895e" + }, + { + "classes": 2, + "id": [ + "B", + 189 + ], + "moves": 10, + "sha256": "57c1377dc8a402811b731bdb7de752cad5f77d95d90c649ef595a778eef3b7ce" + }, + { + "classes": 10, + "id": [ + "B", + 190 + ], + "moves": 410, + "sha256": "00d37a6083c60fc13896cd1cf25033630f327e8913307f109179ba00e2cef993" + }, + { + "classes": 2, + "id": [ + "B", + 191 + ], + "moves": 20, + "sha256": "2f6fe9dc1acbcd49fa8f2becbdf0674537b76303b6b5e2986d5c96e582b1c4ce" + }, + { + "classes": 11, + "id": [ + "B", + 192 + ], + "moves": 354, + "sha256": "bca31379183d6a22269e3c897744c8de2b76462eafc0459dbeb4f1245567aa67" + }, + { + "classes": 10, + "id": [ + "B", + 193 + ], + "moves": 24, + "sha256": "5334acd2f7f7ae413211715e79a3b1060e1ef4e63cccd728109978bdd6aa069a" + }, + { + "classes": 7, + "id": [ + "B", + 194 + ], + "moves": 323, + "sha256": "4aac467bb472bbd4acba81b374422e5b097fb4168538e1cba764e92e0d63f199" + }, + { + "classes": 6, + "id": [ + "B", + 195 + ], + "moves": 11, + "sha256": "4bfd16f36b39d197fe7c5c752304ed7c2714455410c52724e6155e2e8cb87175" + }, + { + "classes": 9, + "id": [ + "B", + 196 + ], + "moves": 370, + "sha256": "bad38a6826b12cfbb95de1b4fddb4d4cd91cf8942e18b30ecd3283c754028c4c" + }, + { + "classes": 6, + "id": [ + "B", + 197 + ], + "moves": 13, + "sha256": "b26671b4f09dbd43cc3a84909863293b5f683ef1cca3e61c9fa5f221bb502ce0" + }, + { + "classes": 4, + "id": [ + "B", + 198 + ], + "moves": 11, + "sha256": "2353633cf559b2e6d67c807332a6bdbb30effbb2dd437862417cd190c82c602f" + }, + { + "classes": 9, + "id": [ + "B", + 199 + ], + "moves": 339, + "sha256": "dbf091ce64f9ce263b8bd1eabbeada5a5b9e44feddb356a29bf553b9c76a44ec" + }, + { + "classes": 12, + "id": [ + "B", + 200 + ], + "moves": 30, + "sha256": "17acc9350d139c4480f0c181c9c7b63fe6482c83ec46fa5e43ab58178a75dfec" + }, + { + "classes": 5, + "id": [ + "B", + 201 + ], + "moves": 26, + "sha256": "4c4b5c227d6a6a3a3ca6c5806daf55c2941bd1cba46a1be78b40ad962418f1fa" + }, + { + "classes": 2, + "id": [ + "B", + 202 + ], + "moves": 323, + "sha256": "0cd7f5db1ad864d84d00cf7d3d1c05dad208b3e6cebf72c30a87520fad6210e5" + }, + { + "classes": 1, + "id": [ + "B", + 203 + ], + "moves": 1, + "sha256": "072fcf2bb2e45b497854fc7838752ee03e25a79c572dc1f659fe8ddb55b42041" + }, + { + "classes": 1, + "id": [ + "B", + 204 + ], + "moves": 340, + "sha256": "5d37c0795d87bb7d0987c9d38f2889aa00f0a357c33703eb39e36127f62901ad" + }, + { + "classes": 8, + "id": [ + "B", + 205 + ], + "moves": 272, + "sha256": "46a2883405bd6fc9784dc763a79e244bf88b1b8c5c91262cb4b680725767b46e" + }, + { + "classes": 7, + "id": [ + "B", + 206 + ], + "moves": 359, + "sha256": "48a93de53b59a6b321a44eca5fb10f141bf4054aed795a8ce4c6e0de6d83664b" + }, + { + "classes": 8, + "id": [ + "B", + 207 + ], + "moves": 204, + "sha256": "490e7efd9861d888a2c6f4e79eba07e14629253cd84595814998416a713472da" + }, + { + "classes": 10, + "id": [ + "B", + 208 + ], + "moves": 256, + "sha256": "2aa4e1ea3151f4cc9b0627b8ef0d918afb3f53817d80641dadadd0f4091a5bc9" + }, + { + "classes": 6, + "id": [ + "B", + 209 + ], + "moves": 183, + "sha256": "e40cc5c0a1550c8332371b29bbc1e4ac46a216a4d3e7d436806116a12f70860f" + }, + { + "classes": 11, + "id": [ + "B", + 210 + ], + "moves": 200, + "sha256": "26326b14e72a0e35a7258e2cb7125545139d1a7753c5c92de836bdbdf20060e5" + }, + { + "classes": 9, + "id": [ + "B", + 211 + ], + "moves": 306, + "sha256": "6470e962e2830f04097c47c2e95e044d4b349b8bb3f026426254408f23374ff3" + }, + { + "classes": 9, + "id": [ + "B", + 212 + ], + "moves": 162, + "sha256": "24d2575ba97596a93ce1a85e2e151f723381aefae7386b9520a75e517fdeea87" + }, + { + "classes": 10, + "id": [ + "B", + 213 + ], + "moves": 256, + "sha256": "96f30cda7b955d62970ef9fc5250f932496db9e39f37403cc99c3279bf721cfb" + }, + { + "classes": 8, + "id": [ + "B", + 214 + ], + "moves": 314, + "sha256": "3f30e100c23619dab37f798ce8fa793b15ee09d093b5491aa9150550e6e8323b" + }, + { + "classes": 6, + "id": [ + "B", + 215 + ], + "moves": 165, + "sha256": "5bbe8c6cad80abdb81acf0fd56274358fec847f85b7c0e2f1191a88df9e62bd5" + }, + { + "classes": 7, + "id": [ + "B", + 216 + ], + "moves": 317, + "sha256": "e1fe172afc5cfee50cf289a658d7a11fe21a59099b74598976e9064bb1be472c" + }, + { + "classes": 13, + "id": [ + "B", + 217 + ], + "moves": 316, + "sha256": "e112bf8edca17bb7ef8ce21a5dfb94693f753e40d9d603335fb5bbd38ff98e9b" + }, + { + "classes": 5, + "id": [ + "B", + 218 + ], + "moves": 222, + "sha256": "7e87781001758910e68f84a8fd46733fef176f8ca25258e5e14a96710e988c89" + }, + { + "classes": 7, + "id": [ + "B", + 219 + ], + "moves": 200, + "sha256": "ac6855a6919f51c0db0249e6481cbfabb8dace532955e89a6a945659ce659256" + }, + { + "classes": 5, + "id": [ + "B", + 220 + ], + "moves": 10, + "sha256": "c43045adef0c3227a60487c3c469edbcd822d90171fd51283ae23775921eeade" + }, + { + "classes": 5, + "id": [ + "B", + 221 + ], + "moves": 21, + "sha256": "b678ead554aaa08eda6c2a074f7ee07b2cd73236a0a55dbf54ac7112bafaf329" + }, + { + "classes": 7, + "id": [ + "B", + 222 + ], + "moves": 13, + "sha256": "38af7ddf730d5f9cddcf134807d54e72df0c202a2b8911c65bad5d23dcb5d022" + }, + { + "classes": 9, + "id": [ + "B", + 223 + ], + "moves": 942, + "sha256": "ef46e3a74086b0dabcc92a8cb0fd11706b9668e9dc98aaf3d18b8f1dca175e93" + }, + { + "classes": 3, + "id": [ + "B", + 224 + ], + "moves": 4, + "sha256": "9d18df61e967af5ad59f1e4577d54e7eb2324a993069a5c43f27ef70349f52cc" + }, + { + "classes": 4, + "id": [ + "B", + 225 + ], + "moves": 10, + "sha256": "c8178c8fa40f71065d378ae55f54dd49560831129e1aee2f338c2e7771038720" + }, + { + "classes": 7, + "id": [ + "B", + 226 + ], + "moves": 280, + "sha256": "a2e9b2f473d88253e4194724c541d6673183ca4d11685ac5adeb25911272e87b" + }, + { + "classes": 3, + "id": [ + "B", + 227 + ], + "moves": 14, + "sha256": "2b70f3424b428fcbb1657b0e670109b7292404646aba8f3a876d5ecbc4145e50" + }, + { + "classes": 6, + "id": [ + "B", + 228 + ], + "moves": 849, + "sha256": "97836212c27ccf6841ab257239f62bd5bef1296332aaa1135b129c79c0af1abf" + }, + { + "classes": 6, + "id": [ + "B", + 229 + ], + "moves": 322, + "sha256": "b25707d6ef6e42678cb617bfe38b6fd705d8e5f57a5490bfeab4c943fea7b423" + }, + { + "classes": 5, + "id": [ + "B", + 230 + ], + "moves": 323, + "sha256": "487f8b0b78d2bc622fb465e5f2e79bfe4296d9dda97a649f02c72c71c43848b0" + }, + { + "classes": 9, + "id": [ + "B", + 231 + ], + "moves": 296, + "sha256": "9385bd31d726d988bb583d85269f3f887a1e182b6b5ac06764e29270c3e2cea2" + }, + { + "classes": 9, + "id": [ + "B", + 232 + ], + "moves": 293, + "sha256": "5092e16f66864d3aa23e92b25c432371c1399cd789f35bef12a54fa101831104" + }, + { + "classes": 5, + "id": [ + "B", + 233 + ], + "moves": 25, + "sha256": "cc530322b3c525ac5ba2101758d53dcf5b6580e7d519dffb19a7f02233c1a7e8" + }, + { + "classes": 5, + "id": [ + "B", + 234 + ], + "moves": 13, + "sha256": "e0ec0ca4066031a9b5794306142c32c095acbead1d17b4bc16b043f5f518e536" + }, + { + "classes": 9, + "id": [ + "B", + 235 + ], + "moves": 301, + "sha256": "a1b284e00aba8a41c0b0c30dfd451d16b781ff5028d05f65bb5177b2ca3a2a0a" + }, + { + "classes": 9, + "id": [ + "B", + 236 + ], + "moves": 301, + "sha256": "b1b1f234e82312cb383b59122d29c01daa59a910c15644b07f8711ce5899f0c1" + }, + { + "classes": 4, + "id": [ + "B", + 237 + ], + "moves": 304, + "sha256": "7c6d5822e0bac90e25a7cc3ee1da4f19fea5e79d8e96f88a3cd9334ec1886861" + }, + { + "classes": 5, + "id": [ + "B", + 238 + ], + "moves": 331, + "sha256": "f298dd892f6161fca31021076aaf0949d8c0ff7652d823bcef00a9cba420ee8a" + }, + { + "classes": 9, + "id": [ + "B", + 239 + ], + "moves": 328, + "sha256": "b0329b41731dafad74e090e1b69ed49fcc7ca8cb18f302a541af4aa335e822af" + }, + { + "classes": 8, + "id": [ + "B", + 240 + ], + "moves": 358, + "sha256": "94a5723d967a4c743aaac89132f159d5bb92c3391d3027406da6ab1a5d6dba14" + }, + { + "classes": 4, + "id": [ + "B", + 241 + ], + "moves": 293, + "sha256": "16e13b24c4005b52fbcf73b432c40c9203794ef820cd6bf603c6275099289d1a" + }, + { + "classes": 7, + "id": [ + "B", + 242 + ], + "moves": 172, + "sha256": "f368ce36870b52e3a229b2815977e88bf6b446b24f6e97127bd42ada49c8b529" + }, + { + "classes": 7, + "id": [ + "B", + 243 + ], + "moves": 183, + "sha256": "3c69389ce7532f0a5c065a65523ad202716dd2d4b6a075dd4eab5d40592f8443" + }, + { + "classes": 6, + "id": [ + "B", + 244 + ], + "moves": 196, + "sha256": "ad79ee00f6e73a4712b36bcbb711cd20aef4baba006933f8c9bc0e0b2bb77433" + }, + { + "classes": 8, + "id": [ + "B", + 245 + ], + "moves": 372, + "sha256": "361bea34ce0683f13daf0bff89c5d4b39cdbd44308cebdbee72504e7107cdf43" + }, + { + "classes": 8, + "id": [ + "B", + 246 + ], + "moves": 374, + "sha256": "1aa77bba32255d26c02766cc0231aed8f429d84e5c8a0bbea07c83bcd9ae460d" + }, + { + "classes": 8, + "id": [ + "B", + 247 + ], + "moves": 374, + "sha256": "e9d7cad2021d40a151a32e9125e939b5b969d0743e28ca0853463ca138f4b936" + }, + { + "classes": 10, + "id": [ + "B", + 248 + ], + "moves": 373, + "sha256": "f5f74e50809b9386a57911602ca4d8fc2cb433ebb387a0b39b38c28ce445e090" + }, + { + "classes": 8, + "id": [ + "B", + 249 + ], + "moves": 12, + "sha256": "597de3591dfd3f9a5dd733465d0243e8f130f763b005c4bf9b51608f143f617d" + }, + { + "classes": 6, + "id": [ + "B", + 250 + ], + "moves": 14, + "sha256": "6da1eba8065f57e49c1af7efcb11a751dec350a7f898be901cf5b0f65d487b76" + }, + { + "classes": 7, + "id": [ + "B", + 251 + ], + "moves": 15, + "sha256": "af3443f53e718bb25cb5ca0b2cdf2dad3d358cab13e0cc7f8e7486f69a22ca13" + }, + { + "classes": 7, + "id": [ + "B", + 252 + ], + "moves": 16, + "sha256": "47a28ee5cde3bb51ea57bcc970035bd2797adb0b11bfda0db1f9029fcd452163" + }, + { + "classes": 8, + "id": [ + "B", + 253 + ], + "moves": 17, + "sha256": "8304c085aa7a488799226346f2b3397a62ac5aa29728c17cad70dd786a65e1df" + }, + { + "classes": 8, + "id": [ + "B", + 254 + ], + "moves": 23, + "sha256": "d7ac0cc81210631f1c6d17398016fb8ec05eb57d2b2958d95ad9689fa8fd1207" + }, + { + "classes": 8, + "id": [ + "B", + 255 + ], + "moves": 18, + "sha256": "4fddbb23f0e5b9d7c2bf0885988f8c34282dbced6265dedd0d557c0e72f8ae80" + }, + { + "classes": 2, + "id": [ + "B", + 256 + ], + "moves": 22, + "sha256": "ee419a5e55c0ab4bcdd5059ee0a3cb43c380b80244ae07da0f50fd83bf55478b" + }, + { + "classes": 2, + "id": [ + "B", + 257 + ], + "moves": 20, + "sha256": "df8cabf635fc82c999b97233715feabfc871556dd491ee6d7e061d90b3a0206a" + }, + { + "classes": 2, + "id": [ + "B", + 258 + ], + "moves": 7, + "sha256": "98473a976cced4a6b377c9d475455bad7fd486088b72d376aa0a10d2b670cfc4" + }, + { + "classes": 1, + "id": [ + "B", + 259 + ], + "moves": 2, + "sha256": "b81eab31254fcf61d06d0cdaa940dbcc08a2422619d15b52710aab1e180c80fc" + }, + { + "classes": 2, + "id": [ + "B", + 260 + ], + "moves": 7, + "sha256": "04bf7e2a7aa2d3374d1e998b0db9c6925c550db632af1043f27fdacc9b4ccc86" + }, + { + "classes": 2, + "id": [ + "B", + 261 + ], + "moves": 5, + "sha256": "3836663fefda04df6ad84a9182c21a8ebeb8b8081bd51ffac3839126b50bbcd5" + }, + { + "classes": 11, + "id": [ + "B", + 262 + ], + "moves": 304, + "sha256": "4c915aefddc34850ae85221e934ec9f383f45a62445cf8ba5a53fcaefb6cec5f" + }, + { + "classes": 6, + "id": [ + "B", + 263 + ], + "moves": 19, + "sha256": "0d36e1aa6336e3c3607315574a41563271d87fca9a2e35a87ab2e7cf8ce349ec" + }, + { + "classes": 6, + "id": [ + "B", + 264 + ], + "moves": 16, + "sha256": "1be2954a3446a682206d8a131a5773481645c3975f1a4f53f44d1087f86c1500" + }, + { + "classes": 4, + "id": [ + "B", + 265 + ], + "moves": 13, + "sha256": "7304cd739dc8fbf098f1804432410cbefb6d73ead9f680f55a2c0cc8e6dcd22a" + }, + { + "classes": 5, + "id": [ + "B", + 266 + ], + "moves": 6, + "sha256": "628a8298dc9321236f0fa01d15fe2e702f7c98ba36195e5ae348120719078804" + }, + { + "classes": 6, + "id": [ + "B", + 267 + ], + "moves": 263, + "sha256": "e71ae3502ee291951615d748d8d6e8a266dd32bbb7285e6ec8aa2d431fb042f8" + }, + { + "classes": 3, + "id": [ + "B", + 268 + ], + "moves": 12, + "sha256": "659c924e0b4d4ca09193d63828086b2c6b8771f59c391f47361ea346ee5ea9d0" + }, + { + "classes": 9, + "id": [ + "B", + 269 + ], + "moves": 319, + "sha256": "0c3be76a83dfd3fc3eef939d8f90dfe3f2ec6b426fca921b9aae4bb60669b243" + }, + { + "classes": 3, + "id": [ + "B", + 270 + ], + "moves": 16, + "sha256": "5bc6e2dcbd865093f540e718537ce9f3a21b7ae436253aacacfc76503016c924" + }, + { + "classes": 6, + "id": [ + "B", + 271 + ], + "moves": 23, + "sha256": "47abeaa211506022b93fd05092dd1a83dad87685ae36e7d6e3f655b5edbab84d" + }, + { + "classes": 4, + "id": [ + "B", + 272 + ], + "moves": 18, + "sha256": "2c487e3a166b5aac2e47a58beb5d9023c1ef4f54ca8d0ac61181211f5b7d02a3" + }, + { + "classes": 6, + "id": [ + "B", + 273 + ], + "moves": 24, + "sha256": "0b4cfbd454c5cc126dcd457c603ac0616881204d28adfca133d2f47fad8313c1" + }, + { + "classes": 4, + "id": [ + "B", + 274 + ], + "moves": 19, + "sha256": "9afb1a3959c78d88981e3a599d6a67f28ce301697a25cf73a050e090593779d8" + }, + { + "classes": 7, + "id": [ + "B", + 275 + ], + "moves": 253, + "sha256": "82ec9a9bdb32d6fab7a72c6273953a3046510cd907cad90291b30a83749041e4" + }, + { + "classes": 5, + "id": [ + "B", + 276 + ], + "moves": 15, + "sha256": "8872173016d966e590648fc0d54a8cb63219a763b3b5fbc99d54fd2d9253e699" + }, + { + "classes": 3, + "id": [ + "B", + 277 + ], + "moves": 6, + "sha256": "5524bce4fe226ed25c56e4a91d6af4f97363612548b42e58573fc579c1d2aff8" + }, + { + "classes": 5, + "id": [ + "B", + 278 + ], + "moves": 233, + "sha256": "c9ec96be1706d80927eb47f4939e8cc1ecb43bfbab89b80dee0aa7a9cbb0be0e" + }, + { + "classes": 1, + "id": [ + "B", + 279 + ], + "moves": 8, + "sha256": "e11da48c6ec00040b4cf39fc6fe30e266b48e38611b3ef68077cf79a2f8bca89" + }, + { + "classes": 2, + "id": [ + "B", + 280 + ], + "moves": 232, + "sha256": "7e089941041054242195d0051503044faf242112cf3bd955ced990ce63ff0670" + }, + { + "classes": 7, + "id": [ + "B", + 281 + ], + "moves": 25, + "sha256": "06663145317583920180b70c15199e833e4fd07e4177027135f0c86a98d03630" + }, + { + "classes": 1, + "id": [ + "B", + 282 + ], + "moves": 289, + "sha256": "89d86f2b10322f2f6454b534dc86a6a6ee885065ef2cb06ff39d183c196a121b" + }, + { + "classes": 7, + "id": [ + "B", + 283 + ], + "moves": 220, + "sha256": "2e3017250291a36b9d76d195c157a7416186a63d5e45077165139d5909979e59" + }, + { + "classes": 6, + "id": [ + "B", + 284 + ], + "moves": 224, + "sha256": "b7b9b81b73479a71051e0b5c9eac57b4f29a015d700365679cd46e39a7618285" + }, + { + "classes": 7, + "id": [ + "B", + 285 + ], + "moves": 438, + "sha256": "a70f716d7ec9aff17ba476926737e716194f978854888c82389fb2ae294358b0" + }, + { + "classes": 7, + "id": [ + "B", + 286 + ], + "moves": 209, + "sha256": "5e645fd47e537a57a7a2ecbc81a3e31f7e1815d28224f51b40abb916ae3a6227" + }, + { + "classes": 7, + "id": [ + "B", + 287 + ], + "moves": 439, + "sha256": "be1e65fc2c0316d975e602bd69af180ccae0d7bfbc2f12ef0905a5507b7cb9f0" + }, + { + "classes": 7, + "id": [ + "B", + 288 + ], + "moves": 439, + "sha256": "b501e4e405bf5351a1ab521d3b01957677ef387186a4591969930808cf05cdff" + }, + { + "classes": 7, + "id": [ + "B", + 289 + ], + "moves": 224, + "sha256": "8ac4f511cb7aab4de66f5d627828f322103f851b04b85d095b5d0bcb6efe90b5" + }, + { + "classes": 3, + "id": [ + "B", + 290 + ], + "moves": 13, + "sha256": "3e34684d205764affc46b6c9e007dea8535730b1cb9011e2b67fe3f9bbc283f2" + }, + { + "classes": 4, + "id": [ + "B", + 291 + ], + "moves": 13, + "sha256": "2d6eae5d607a7f689e772595760eed582d7bd7825be1af686a1b69d5ad821440" + }, + { + "classes": 2, + "id": [ + "B", + 292 + ], + "moves": 215, + "sha256": "d9c41ad3ab35d7a95e51388c417ef6280900077f5988e396eb4d09b0955ffd7c" + }, + { + "classes": 4, + "id": [ + "B", + 293 + ], + "moves": 12, + "sha256": "9b7937d0f3c99baf98022de3345d69ef7461e41aa348739631feec32f546f065" + }, + { + "classes": 11, + "id": [ + "B", + 294 + ], + "moves": 226, + "sha256": "83eb2eb2fcbe1bcb1a936e5a0df3323120c307ee1407e07ab3c3c04aaf2f3978" + }, + { + "classes": 6, + "id": [ + "B", + 295 + ], + "moves": 18, + "sha256": "c667bfb0223ebd4422d77f6c76ea90c735f19aa74ece3a14dfad4d13a82aada1" + }, + { + "classes": 7, + "id": [ + "B", + 296 + ], + "moves": 15, + "sha256": "ee60f3d81a81b99307912abe1e354bb09d0acb3ce289cb206cdea0a235dcf151" + }, + { + "classes": 12, + "id": [ + "B", + 297 + ], + "moves": 226, + "sha256": "0dad4b53af36fce6781366fa26366d06116a832d39c1fcbb7a17b626899ca576" + }, + { + "classes": 3, + "id": [ + "B", + 298 + ], + "moves": 20, + "sha256": "25e12e2c2b84c154ab687173615667c8fa22d3363dac587af31cbcf05e6b8c59" + }, + { + "classes": 3, + "id": [ + "B", + 299 + ], + "moves": 13, + "sha256": "f6135cc458291bb8c5e555d54ba1d7e0c5989c5c2e924f1346189ecb39ecc4b8" + }, + { + "classes": 8, + "id": [ + "B", + 300 + ], + "moves": 226, + "sha256": "be7331811be768bf901a08576c362298b1d5d67a3bb60628e281e070078acc24" + }, + { + "classes": 11, + "id": [ + "B", + 301 + ], + "moves": 226, + "sha256": "f73e9ce50e2836b43ee6127b9c0419b2fb5c558be9f35508c5353fe4d1e2ebfa" + }, + { + "classes": 6, + "id": [ + "B", + 302 + ], + "moves": 18, + "sha256": "9fc840beeaa5c529cb355b8ec74bf1f98ebc081f2245fb80c32aa623211477f7" + }, + { + "classes": 3, + "id": [ + "B", + 303 + ], + "moves": 20, + "sha256": "aec757f2920e1b65d78a502e3413e30a727e037f41acbbb3a6086c80f4b67727" + }, + { + "classes": 10, + "id": [ + "B", + 304 + ], + "moves": 226, + "sha256": "d03bc09c979e481963c3cfdb0c8c0901831283633652f55ed4156913923a8da3" + }, + { + "classes": 6, + "id": [ + "B", + 305 + ], + "moves": 18, + "sha256": "a493e108884c576f18323e30d83a2a9f2186c35216ae6340790cf5219167e242" + }, + { + "classes": 8, + "id": [ + "B", + 306 + ], + "moves": 215, + "sha256": "558b909c04f87cc4d5911f5c919fa7c17d59640209a2447030d02e6702a7a757" + }, + { + "classes": 5, + "id": [ + "B", + 307 + ], + "moves": 1129, + "sha256": "16a6f9c7a84f01f2d3bc95b77bc3451a98a562ec56dbed1842caf284c27903e5" + }, + { + "classes": 8, + "id": [ + "B", + 308 + ], + "moves": 216, + "sha256": "ca7fb4dd215e42e213fd2e413be4395f64f0f6e3b0b915db9f4b54aa11875257" + }, + { + "classes": 5, + "id": [ + "B", + 309 + ], + "moves": 11, + "sha256": "7d317ef993933d1e8521ece26f64f7b5ee43955a7be5ba2ad56c3fc7a067e317" + }, + { + "classes": 7, + "id": [ + "B", + 310 + ], + "moves": 212, + "sha256": "55c193753a462fce35571a559bdf44ce2d3bd22d182c842a7929a82802982b2c" + }, + { + "classes": 3, + "id": [ + "B", + 311 + ], + "moves": 7, + "sha256": "35f73188dca9d99ebb7db736ec1b07d650287da56d1ca10086265edbace6f37e" + }, + { + "classes": 1, + "id": [ + "B", + 312 + ], + "moves": 204, + "sha256": "3cce2de07f000b17e3df19c56b556e9f6d788bec9e5c9d008095ff4e90137f33" + }, + { + "classes": 7, + "id": [ + "B", + 313 + ], + "moves": 209, + "sha256": "5da9e34c36d79a0ba5385c39c342692ee2b28301c3a06d3bb719aac9af0731a0" + }, + { + "classes": 11, + "id": [ + "B", + 314 + ], + "moves": 440, + "sha256": "60e5eaf20749428c0633e6a74ff211962077fa8e45d02ae85d322eed5f7e2be3" + }, + { + "classes": 9, + "id": [ + "B", + 315 + ], + "moves": 248, + "sha256": "ddc42b7d58e3958627287ea74fd7b12f95a4802d281288c756f7ec3d879615be" + }, + { + "classes": 10, + "id": [ + "B", + 316 + ], + "moves": 253, + "sha256": "8b0e3580e97b6ad992899d779feeedf5c736e9b4095be3cbf4db727c0b18fe87" + }, + { + "classes": 10, + "id": [ + "B", + 317 + ], + "moves": 255, + "sha256": "acb3fa6bf70c9fc09586b3174b21e996fec116e364bf88d7b53d6f2788736d0b" + }, + { + "classes": 10, + "id": [ + "B", + 318 + ], + "moves": 238, + "sha256": "997218131f808aebe41c6c2e8d1093a1bde868a0fd11ae05859c976063d2ad34" + }, + { + "classes": 11, + "id": [ + "B", + 319 + ], + "moves": 260, + "sha256": "5afc75ac278235860546311b15f5c7ff8ba081d06396d474d29c17b6a6d42575" + }, + { + "classes": 12, + "id": [ + "B", + 320 + ], + "moves": 262, + "sha256": "e2799a94b03b8222670c0f70208862f203978a580fe57681f719a56fb6b7ebcb" + }, + { + "classes": 13, + "id": [ + "B", + 321 + ], + "moves": 500, + "sha256": "d63332ea870addc4dd6541eacaf0a1468afa6f65d2d58bc2ec0aa2d295989f09" + }, + { + "classes": 12, + "id": [ + "B", + 322 + ], + "moves": 500, + "sha256": "2a1e99a8395748a1901cca4410b127c21ea67425aa169f364d03001b14fc0e79" + }, + { + "classes": 11, + "id": [ + "B", + 323 + ], + "moves": 500, + "sha256": "dc7b0f529864f099517cd15648c066f22ad7f299460f6a2aa0a5ff206f5bb573" + }, + { + "classes": 4, + "id": [ + "B", + 324 + ], + "moves": 27, + "sha256": "8193aead5b40ead0b385753e87a2eebc860a4b6db8bc54c3131b6b165ea4bd36" + }, + { + "classes": 5, + "id": [ + "B", + 325 + ], + "moves": 27, + "sha256": "672ec82f0c794968c4e8f048401184d1f923d65792ebf527dc63e7ac95d47fa2" + }, + { + "classes": 6, + "id": [ + "B", + 326 + ], + "moves": 14, + "sha256": "2d53a1fda61723f891dfdf1d347f71747d0eafbc9b861130f04385d8ebeaf41b" + }, + { + "classes": 5, + "id": [ + "B", + 327 + ], + "moves": 16, + "sha256": "f9f708d847cd87deb637bc89a05e0e80064cadad92530fe11661e3b4ff56b8ac" + }, + { + "classes": 5, + "id": [ + "B", + 328 + ], + "moves": 18, + "sha256": "add5e30447a498f850dfb66bf68272242fd264fe42bee1c1bbaa06ad4f745e25" + }, + { + "classes": 8, + "id": [ + "B", + 329 + ], + "moves": 27, + "sha256": "793e6fa5767b494f9068de480965bac778b205a53f69b6c26745b4d229b04da9" + }, + { + "classes": 7, + "id": [ + "B", + 330 + ], + "moves": 26, + "sha256": "befbb1c3600671023287cec4e3d613b0b62b6ddb9e8d04f9c49ea5f8c3290428" + }, + { + "classes": 6, + "id": [ + "B", + 331 + ], + "moves": 23, + "sha256": "2277506e2e17f2f3d920e7143cb635ccd711ce6e3cef7509f439a6dff05e4f32" + }, + { + "classes": 3, + "id": [ + "B", + 332 + ], + "moves": 17, + "sha256": "1605c939a13bc9d08a5076beb7e393792fd8b2ba3bc0bcc7c51d606c876865b8" + }, + { + "classes": 3, + "id": [ + "B", + 333 + ], + "moves": 9, + "sha256": "4294dd8e182fdfd17e17f24d34b1484d4f81b032b58c5d0d5dff8e9f5286f453" + }, + { + "classes": 3, + "id": [ + "B", + 334 + ], + "moves": 16, + "sha256": "1d1090457c1ca1b0887f61f1dcf83344f1e422b0e6cee85835ea72772d635067" + }, + { + "classes": 4, + "id": [ + "B", + 335 + ], + "moves": 8, + "sha256": "0e7e29e548a1f8b4374c057e5872a1a4de3f1fff0495742d6e16818e14d3d5bb" + }, + { + "classes": 3, + "id": [ + "B", + 336 + ], + "moves": 18, + "sha256": "511c5eed7eee0b05b924f1ac7390a894762fcc750326213596a4aaaa82856d2d" + }, + { + "classes": 4, + "id": [ + "B", + 337 + ], + "moves": 13, + "sha256": "088a077800958842b0b844848984b0034db145e31c47aaa186b35ac11cce9f8f" + }, + { + "classes": 2, + "id": [ + "B", + 338 + ], + "moves": 4, + "sha256": "2caea26537a963e89465c7bcc2948f6d614a2401b4e74ced1afb90f518fb2c10" + }, + { + "classes": 3, + "id": [ + "B", + 339 + ], + "moves": 4, + "sha256": "ce0e4d175e2f2cfd26c736411f9d8c7f9abd0ccfa8ef358f088c71be1a536dd2" + }, + { + "classes": 11, + "id": [ + "B", + 340 + ], + "moves": 210, + "sha256": "1108f6a555b2646b87c7cfc73c075de4d840d752b9753fca9952ce7e7ce32994" + }, + { + "classes": 2, + "id": [ + "B", + 341 + ], + "moves": 11, + "sha256": "45f6f4322e5910b12ae86e6d5a2b28003b74847e76e9f52286fc6f36e531e83b" + }, + { + "classes": 7, + "id": [ + "B", + 342 + ], + "moves": 26, + "sha256": "9bbd38a2ef4da4753fb5b7722499e38a095a94ccb1329fb4d0e3e7102da6f32f" + }, + { + "classes": 5, + "id": [ + "B", + 343 + ], + "moves": 21, + "sha256": "cd62b50a29a1f6ef86acdb5f95706366b8db1d6efdb731862f6af47a407080f9" + }, + { + "classes": 3, + "id": [ + "B", + 344 + ], + "moves": 20, + "sha256": "2648a4b25920048ce65d7dee6d6dded0b0b759c3378ae3e02b9ae582ffc88b36" + }, + { + "classes": 13, + "id": [ + "B", + 345 + ], + "moves": 235, + "sha256": "fb5754669ad4aa840f04368c3d109cd14dc1204750b6ecd36d829c6ce4db13df" + }, + { + "classes": 5, + "id": [ + "B", + 346 + ], + "moves": 23, + "sha256": "15a897878d38fffb2ac4be6b833ae52b59695ab2ac0af14a4dd848908fde8d8d" + }, + { + "classes": 5, + "id": [ + "B", + 347 + ], + "moves": 19, + "sha256": "7a5435211add23d77c9bc97654750ce2b6045c97f461a2702a0dd17dc56c6e92" + }, + { + "classes": 4, + "id": [ + "B", + 348 + ], + "moves": 15, + "sha256": "80ee8747e9da29654abf144e97f49c64b95ceb5f2ff9dbe0430432cea672ff5e" + }, + { + "classes": 7, + "id": [ + "B", + 349 + ], + "moves": 15, + "sha256": "40e6c8067fb9272a4ecc5785c457f0fa6a0a16b9ab53d85bf896004cccec9464" + }, + { + "classes": 9, + "id": [ + "B", + 350 + ], + "moves": 161, + "sha256": "e1ef1717da3294e597588a44618409f3f8f6a588e601eaca3418327ee425a394" + }, + { + "classes": 6, + "id": [ + "B", + 351 + ], + "moves": 170, + "sha256": "bd636f69691ecde42a36ce8910171465aacf6db22edbde7369def01758172429" + }, + { + "classes": 8, + "id": [ + "B", + 352 + ], + "moves": 155, + "sha256": "4d19895b6710663b838545f65ebdb6b9dcaae9e77586a3947296ccad6b293b46" + }, + { + "classes": 3, + "id": [ + "B", + 353 + ], + "moves": 12, + "sha256": "b8f3a7ac947105a1b6b83dc34f2a10936f069b4d57c1c499edb91eb1e81c055a" + }, + { + "classes": 7, + "id": [ + "B", + 354 + ], + "moves": 213, + "sha256": "2a21cecb1ef2bc7cd7c395f7ed524c1e5a10975b4a6a7eb101058a88efac4e78" + }, + { + "classes": 4, + "id": [ + "B", + 355 + ], + "moves": 221, + "sha256": "906d38a46f4f52195b28c69333a16eeced080b2710a04643bbc189425042ca3a" + }, + { + "classes": 4, + "id": [ + "B", + 356 + ], + "moves": 5, + "sha256": "a750104a7ca6d6b9089850b1fa73d6dac818c97cb31ffd7a2dcb9c460b3f9641" + }, + { + "classes": 12, + "id": [ + "B", + 357 + ], + "moves": 199, + "sha256": "c8cea6e6bf4f4df323666748dc397687c9a8351b2478e288c69162bbc1780642" + }, + { + "classes": 6, + "id": [ + "B", + 358 + ], + "moves": 32, + "sha256": "7c9fabbf11b521b3f87ccbfab25eeb3d9b19e0343033ef406e7aeccfd2f3a414" + }, + { + "classes": 2, + "id": [ + "B", + 359 + ], + "moves": 12, + "sha256": "2c5aae51f375d8e9a9eeddd3685d8bc2137d86fb88bf208c281d7688523659ae" + }, + { + "classes": 1, + "id": [ + "B", + 360 + ], + "moves": 215, + "sha256": "c8965dd74ecdf63ccbf3da9faa58d8630604874dcc2b3a28582699766f58e8b2" + }, + { + "classes": 12, + "id": [ + "B", + 361 + ], + "moves": 537, + "sha256": "510e3665bd7e6ab2dc997ca892f28e227312700695c3fd66c76bb02fa2542dcd" + }, + { + "classes": 11, + "id": [ + "B", + 362 + ], + "moves": 550, + "sha256": "02fdfd575fcb65f9fba2c051bfaae255fdad5be766df46df19465f49028edbd3" + }, + { + "classes": 11, + "id": [ + "B", + 363 + ], + "moves": 551, + "sha256": "f3ff62c417601148b1f461d1636b63ad765458b8e0f1cb13767f134064ac9c77" + }, + { + "classes": 11, + "id": [ + "B", + 364 + ], + "moves": 289, + "sha256": "457f60ac8719a490ea302e3d45e7929c6a872ab394e229124a1b38724cefa7a7" + }, + { + "classes": 10, + "id": [ + "B", + 365 + ], + "moves": 283, + "sha256": "c7578de47b7f729a9e037c957676d411770ac8917c8adfb85f98dcf2a905bb18" + }, + { + "classes": 11, + "id": [ + "B", + 366 + ], + "moves": 278, + "sha256": "b723bb23ac2db806dec00436ac5a11d32c43fe3168c5a9bf5ecfbf6d8c4bfb63" + }, + { + "classes": 11, + "id": [ + "B", + 367 + ], + "moves": 288, + "sha256": "cb232ca74807dfe868c5dbcf18e7fa47feaaa03f8a9e9c50b8f017271d3d24a1" + }, + { + "classes": 11, + "id": [ + "B", + 368 + ], + "moves": 559, + "sha256": "db9235c3cf0b7f9da3abf0bfd3045fb6fb95b3559848128d4e3ae19933bc953b" + }, + { + "classes": 14, + "id": [ + "B", + 369 + ], + "moves": 559, + "sha256": "1c9c904903eb389b66faf47a73a884b9f7b55fd0408b85d3058b5cd88d5dc47f" + }, + { + "classes": 12, + "id": [ + "B", + 370 + ], + "moves": 288, + "sha256": "ae14beef8f4a82aab39b92c7afae9634f5b39e06619f46fddcb03ea70ebc8883" + }, + { + "classes": 13, + "id": [ + "B", + 371 + ], + "moves": 289, + "sha256": "84066f0b379a92c6b695002ec73eb4bf7c257353d2377953c962df8a9314db7e" + }, + { + "classes": 3, + "id": [ + "B", + 372 + ], + "moves": 18, + "sha256": "4c83e3f68f217f11e1087097e96f902133dd246ea1aeada92354831afc2c028a" + }, + { + "classes": 4, + "id": [ + "B", + 373 + ], + "moves": 25, + "sha256": "e175b4d94b336ac421d9ada4f6e5f65235f1334cfa4944351cbbf0da81c0117e" + }, + { + "classes": 3, + "id": [ + "B", + 374 + ], + "moves": 19, + "sha256": "5de95f34de88d261a45ea613bcfdf02a62097f12b7e52edcf399655f31b46d3b" + }, + { + "classes": 3, + "id": [ + "B", + 375 + ], + "moves": 14, + "sha256": "44318c0cfdbb0ee71cc9f828e302eb535b83298b1b123d6bf9359b8d55d3f962" + }, + { + "classes": 4, + "id": [ + "B", + 376 + ], + "moves": 19, + "sha256": "a0cfc7b1e24d23d091bc97a9d77a80a19043d0fb231bd4e05f447ac7ddcd3936" + }, + { + "classes": 5, + "id": [ + "B", + 377 + ], + "moves": 19, + "sha256": "12c5a20a50759162ff6a09ac4a4be2b1f160cfe32bf874c291011cfa0b653f5e" + }, + { + "classes": 5, + "id": [ + "B", + 378 + ], + "moves": 15, + "sha256": "f0f46b717e0f93d1db9f62452f4370d796567a354f962d29f729502b93ee3c01" + }, + { + "classes": 3, + "id": [ + "B", + 379 + ], + "moves": 10, + "sha256": "65165218394770db9e75cc7be640259d1c1d5a08ca691856f48af0718f41c109" + }, + { + "classes": 1, + "id": [ + "B", + 380 + ], + "moves": 4, + "sha256": "1b97868546bf54bcc5d4f609040ab544d930cc086fa30894719592987646a6f1" + }, + { + "classes": 0, + "id": [ + "B", + 381 + ], + "moves": 0, + "sha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945" + }, + { + "classes": 8, + "id": [ + "B", + 382 + ], + "moves": 125, + "sha256": "4a800b3fd2ecffc752314988eaf154da2328d28ff47b95b9e46a21f62dc66ce7" + }, + { + "classes": 14, + "id": [ + "B", + 383 + ], + "moves": 126, + "sha256": "632843dd7dbeffbdba9107fd63356cabe9e0a072a728ddba4635da179511b196" + }, + { + "classes": 8, + "id": [ + "B", + 384 + ], + "moves": 19, + "sha256": "ef1f3309424931d54e485b3be5c55f6754917313947bf7de7be6a368b2fa3399" + }, + { + "classes": 6, + "id": [ + "B", + 385 + ], + "moves": 18, + "sha256": "e7ae9002fb332248ed44fc2b9f84d6095214a73ced8e0ab9e319b0f96be5db95" + }, + { + "classes": 7, + "id": [ + "B", + 386 + ], + "moves": 15, + "sha256": "6e71016032acdc13ef6ca619effe37f792ba3774560c1ea64b0d134f84c42b86" + }, + { + "classes": 7, + "id": [ + "B", + 387 + ], + "moves": 13, + "sha256": "9f28f860420867dc9f80744808159264029f3e23930477ab62f68637bfc69eb0" + }, + { + "classes": 7, + "id": [ + "B", + 388 + ], + "moves": 12, + "sha256": "ca8c9e16c9e05e23cebe47b0887967948aa0e3b65c457567187f15e431ff2bdb" + }, + { + "classes": 10, + "id": [ + "B", + 389 + ], + "moves": 113, + "sha256": "1b0d5b8c8cff9e6ceafe4e1624ccbc670ef7811389a6e6a1a66228aa354d3705" + }, + { + "classes": 3, + "id": [ + "B", + 390 + ], + "moves": 13, + "sha256": "51bcdc1350ac61f217f3c6549ba3cce9080e8e977b0c5aa3b238b2f15807ba39" + }, + { + "classes": 5, + "id": [ + "B", + 391 + ], + "moves": 29, + "sha256": "f0682e8f0e351ebfb1b519de8243f1665f37d9dbe56215e73a2080bb19227456" + }, + { + "classes": 4, + "id": [ + "B", + 392 + ], + "moves": 24, + "sha256": "a28f6f8884f940c0e08b0f70ca935f6a35cb59c803743d9ed39f24437674be88" + }, + { + "classes": 4, + "id": [ + "B", + 393 + ], + "moves": 17, + "sha256": "6f6bc5dd28ba39df654924c801a31696801ad6dbf3a9ae549d174725a95ebdc3" + }, + { + "classes": 7, + "id": [ + "B", + 394 + ], + "moves": 102, + "sha256": "d9f719a47025ccf59ee12adc604d249c682424c5dd523fb94a06ad84be97ea17" + }, + { + "classes": 6, + "id": [ + "B", + 395 + ], + "moves": 116, + "sha256": "b2cfe05347b0b07413c3f5ba234a3723f2b78e7e6725ffe401ed10bbdda59e8c" + }, + { + "classes": 3, + "id": [ + "B", + 396 + ], + "moves": 11, + "sha256": "335f108c951202db942b7f3185ee5b84a562268efafca2d272695fcf35484ff4" + }, + { + "classes": 3, + "id": [ + "B", + 397 + ], + "moves": 8, + "sha256": "3b3a35b4f0916f88d87f8b9ec61f817ab44965aa5d0c00b54a8a40afd3d68284" + }, + { + "classes": 2, + "id": [ + "B", + 398 + ], + "moves": 7, + "sha256": "8b03e242b8d9699fdc1ab2cedd9e7aab673c67b85ac4dd5236adb8259476c069" + }, + { + "classes": 3, + "id": [ + "B", + 399 + ], + "moves": 6, + "sha256": "335789dac9711242c5a42583924083600fdd54abae4c8806fdf3c183f4db7156" + }, + { + "classes": 7, + "id": [ + "B", + 400 + ], + "moves": 121, + "sha256": "27a77629735d50c931a048ebe93623d38eb56d8cc3992b63ba15e8ef5673520c" + }, + { + "classes": 3, + "id": [ + "B", + 401 + ], + "moves": 105, + "sha256": "6958599178693d262d251746d02770aae25eab1eff9dc747f80970ca41713420" + }, + { + "classes": 3, + "id": [ + "B", + 402 + ], + "moves": 108, + "sha256": "82982d9ff10039086f390a6bfd12e5f353165a059b46c3f18ef193cf09c9cb5b" + }, + { + "classes": 4, + "id": [ + "B", + 403 + ], + "moves": 109, + "sha256": "51fff39ebc976d4658b9301d97792b6e1cbf609c541144ebb07202ebfd2c91d5" + }, + { + "classes": 8, + "id": [ + "B", + 404 + ], + "moves": 617, + "sha256": "99dec04fe60726a3033b74250b2ecadff3e671b37ed7cab536f1af472ef6bb92" + }, + { + "classes": 7, + "id": [ + "B", + 405 + ], + "moves": 401, + "sha256": "8d0631049e1ab26ada844dd2f07602f9c5c3289d39fb29433187dc65a5349aa4" + }, + { + "classes": 8, + "id": [ + "B", + 406 + ], + "moves": 639, + "sha256": "3474dc4b983cfe026e624e5e882929fd8d2754df17eea6314a1a561d1daed662" + }, + { + "classes": 7, + "id": [ + "B", + 407 + ], + "moves": 404, + "sha256": "13f6652141a772c4f99f52534a5e7afc57d605b521a0663955dad31d4c2d5752" + }, + { + "classes": 8, + "id": [ + "B", + 408 + ], + "moves": 339, + "sha256": "5e961522f5368796d792d26ea791079ab00d30f5425815b8efb0b29e3afd0665" + }, + { + "classes": 7, + "id": [ + "B", + 409 + ], + "moves": 818, + "sha256": "08c3224f8f39750b9b0d8dab280170e10fddd1128a3b4c5308fcaff5d95be682" + }, + { + "classes": 12, + "id": [ + "B", + 410 + ], + "moves": 344, + "sha256": "0969c4a4796bb075d7a701b993262e50a5a73dfe404bddc36500d0e942257ea9" + }, + { + "classes": 5, + "id": [ + "B", + 411 + ], + "moves": 336, + "sha256": "f22a00cf78d1138c21c73f220a68e277e7badc21575318ec9774f837f0e4a659" + }, + { + "classes": 4, + "id": [ + "B", + 412 + ], + "moves": 668, + "sha256": "fb331cccf54d7697a110dacc27e404c3e091fb373cb5752c532cebe398a025c4" + }, + { + "classes": 4, + "id": [ + "B", + 413 + ], + "moves": 660, + "sha256": "2bcb1f6fb62d9a3a3fad4b846a34aec62ed2563fbb4f92247e689712755e1af8" + }, + { + "classes": 6, + "id": [ + "B", + 414 + ], + "moves": 673, + "sha256": "c61f6994cc81db58c59d716eb2f81d4d3fe95d0dc64ad5d60feccf9abf2b09a2" + }, + { + "classes": 5, + "id": [ + "B", + 415 + ], + "moves": 35, + "sha256": "5c13ba523ec19f247b733f56652508dd3dc03f20aef9fce76e1b43b55d123027" + }, + { + "classes": 4, + "id": [ + "B", + 416 + ], + "moves": 14, + "sha256": "9adcebfc6fb40192929a7b74e18fb30306cad6bea71edda0f86dc9e7382be4be" + }, + { + "classes": 5, + "id": [ + "B", + 417 + ], + "moves": 28, + "sha256": "5b513839b29930f763cd8e5dd2f06493688e433cc0c4816f90f79f012433e0fb" + }, + { + "classes": 8, + "id": [ + "B", + 418 + ], + "moves": 19, + "sha256": "5030ba1bc4a4b645941bca4a077bb603708ebe7d533f1201319661f2d09f1c28" + }, + { + "classes": 5, + "id": [ + "B", + 419 + ], + "moves": 12, + "sha256": "be141dafe868e6c94566ec3dbdb34e58fbfe2c82b93dd7dd09952013e347f4b8" + }, + { + "classes": 2, + "id": [ + "B", + 420 + ], + "moves": 16, + "sha256": "cef92aff97dee0ec34221b0c7abdcead814c9de6538bc4d7c3f3ef439241660d" + }, + { + "classes": 5, + "id": [ + "B", + 421 + ], + "moves": 11, + "sha256": "ce16d2d454cba65c2f945a1228fd77d47066395fa1586e8377ce083a4d162fb0" + }, + { + "classes": 6, + "id": [ + "B", + 422 + ], + "moves": 14, + "sha256": "774c221acb2fd8e54cf4486dfbecd816c130100ba6bb25853f794e2b7e8497ee" + }, + { + "classes": 3, + "id": [ + "B", + 423 + ], + "moves": 12, + "sha256": "e72de778553d976641e6ac489f06502ded2eb21ef3e6004e4343a9e563d271cd" + }, + { + "classes": 5, + "id": [ + "B", + 424 + ], + "moves": 10, + "sha256": "8f159a53ed53df1b06fdebaf035bd8260443d51ad53d9334a178a7dd2e6887e9" + }, + { + "classes": 9, + "id": [ + "B", + 425 + ], + "moves": 92, + "sha256": "5141bd8a51515bade58bdfdf46baeb87fd9337a3c306db5c3e84a1d19d7d6677" + }, + { + "classes": 10, + "id": [ + "B", + 426 + ], + "moves": 22, + "sha256": "f5078429eb6e58460eec66676768240d356b916782edb16c40ef0f894f05636c" + }, + { + "classes": 9, + "id": [ + "B", + 427 + ], + "moves": 93, + "sha256": "cf13f0034b37434b0b2dc3fe6bf4ef45e343393ff593172ff1a1819c555f7a71" + }, + { + "classes": 12, + "id": [ + "B", + 428 + ], + "moves": 103, + "sha256": "7ff9ae35217b83e1dca0526e76691f077390200a2fbe4caea591d3bb7acd0ad7" + }, + { + "classes": 12, + "id": [ + "B", + 429 + ], + "moves": 32, + "sha256": "2a6669773a2da41821edae14464f552611de04711af75f8d9e8d944f447a0f61" + }, + { + "classes": 8, + "id": [ + "B", + 430 + ], + "moves": 24, + "sha256": "9570415ec5dc11c1a4f5a2576b5def53cd15eaeabf9f281e73f47d2ec10a08b3" + }, + { + "classes": 12, + "id": [ + "B", + 431 + ], + "moves": 102, + "sha256": "bc016dedd7d47cb386095f8f565f797cd774d78eb7453a6984a6feececab3507" + }, + { + "classes": 11, + "id": [ + "B", + 432 + ], + "moves": 32, + "sha256": "a3f63282a9b8968bc4e00e6938a0f9ff8196df1d7f24b4e9135439af6c654fc1" + }, + { + "classes": 7, + "id": [ + "B", + 433 + ], + "moves": 24, + "sha256": "24cdd2da77ebf72817eaae63438d5d8c6e3673bdac6635b921a5ee60fee2c96a" + }, + { + "classes": 10, + "id": [ + "B", + 434 + ], + "moves": 96, + "sha256": "e60ff0d914db813f0e4e1caacec40f4916e2a34d33e2237c7c96eb4946bfaa34" + }, + { + "classes": 10, + "id": [ + "B", + 435 + ], + "moves": 26, + "sha256": "7d37e8d0393b1a288df4c51da782fdb63fa50d22abd689b22341ede5dc3c36f8" + }, + { + "classes": 12, + "id": [ + "B", + 436 + ], + "moves": 101, + "sha256": "206e02b0d7a951d14e2f5a44d30fadc1b94b31c5f1ddf6e71a47e99b790045c3" + }, + { + "classes": 11, + "id": [ + "B", + 437 + ], + "moves": 32, + "sha256": "b1b6226094ed2798f38a19288a21d07f740b1c73ae124ca0b660ea3668077e49" + }, + { + "classes": 7, + "id": [ + "B", + 438 + ], + "moves": 24, + "sha256": "d7c50fde176bddcc388b45e0d753d2c90f3d0752bebe69c8ab5ae0b458e060d0" + }, + { + "classes": 13, + "id": [ + "B", + 439 + ], + "moves": 73, + "sha256": "78b2732ab15ebb53e5abf7a68cabf158dd4ed1a1919efc0c2d9e4f9ac7376cb3" + }, + { + "classes": 12, + "id": [ + "B", + 440 + ], + "moves": 30, + "sha256": "fe4a7d534a590173d41744fc788aa69c3208540e78a654b91225cf78358771a8" + }, + { + "classes": 5, + "id": [ + "B", + 441 + ], + "moves": 27, + "sha256": "24f7b30268c0763b5377ee0555c7d96828a3027f61a399df4518592f08540313" + }, + { + "classes": 8, + "id": [ + "B", + 442 + ], + "moves": 24, + "sha256": "08042e6f5a60f4cfe77be770f66b46590b57ab539b8f8facd5b51da44810a2b5" + }, + { + "classes": 10, + "id": [ + "B", + 443 + ], + "moves": 31, + "sha256": "4313c6d922582b51e60d450515f3d8ad796fc22d0f5c701435624d136611688d" + }, + { + "classes": 3, + "id": [ + "B", + 444 + ], + "moves": 27, + "sha256": "8d07ca6c844951604dc42d89a8b49694c2a6c7449a50d17a3717335cf82ba77c" + }, + { + "classes": 3, + "id": [ + "B", + 445 + ], + "moves": 74, + "sha256": "f420dd0f6c6d4082f221b385835b202941da4462f1603ad3c5d548b6e5ca11b1" + }, + { + "classes": 3, + "id": [ + "B", + 446 + ], + "moves": 4, + "sha256": "bdc2ad7c3792bbb45a6e649b0aad2f2a8b22a684bc8a6472b946b0f5abce9902" + }, + { + "classes": 1, + "id": [ + "B", + 447 + ], + "moves": 2, + "sha256": "f6dd1d61e1f3d2bce72ab219395f75fc693eda478741c4fe9868a086dc8e8bbc" + }, + { + "classes": 1, + "id": [ + "B", + 448 + ], + "moves": 69, + "sha256": "16813ab48af16921a1f9cb5413fb2ec075f4931d3505d5706cbf00bda81126e5" + }, + { + "classes": 9, + "id": [ + "B", + 449 + ], + "moves": 715, + "sha256": "718db744d10cbb943e887da6a6de831a87b2ce4683f7839056503b5f5a6af1d6" + }, + { + "classes": 8, + "id": [ + "B", + 450 + ], + "moves": 372, + "sha256": "c6aa3e7e99698c7b3c798a88f3a354ada638f1b35d4c68dbd85ad17a6a207b5e" + }, + { + "classes": 8, + "id": [ + "B", + 451 + ], + "moves": 372, + "sha256": "2ebcd8bc306e3f5caf533188d355b49e439323e4d97ca816882b82d591d6f4ce" + }, + { + "classes": 8, + "id": [ + "B", + 452 + ], + "moves": 718, + "sha256": "50a5fe2810146be12ff2a4dd212833e5e9a886e8e6dc0421e07da943f5b0829c" + }, + { + "classes": 9, + "id": [ + "B", + 453 + ], + "moves": 725, + "sha256": "f12289e2704b913b46758a6189bd6517d333f9a372f5d3536cf589022c616742" + }, + { + "classes": 10, + "id": [ + "B", + 454 + ], + "moves": 372, + "sha256": "2a8bb0244f794e2b8e54e21d3789b45b451c9821d36399629ba6037e5b02e4c2" + }, + { + "classes": 8, + "id": [ + "B", + 455 + ], + "moves": 720, + "sha256": "9cd17be10bc6c9855f2e016994e3bd9f0c1da958db52d678ae5d17a861f8ed5a" + }, + { + "classes": 9, + "id": [ + "B", + 456 + ], + "moves": 367, + "sha256": "2e63e8c114934c9aa0f22c2f7e5c44e4a3dd22ecc10c80005d8cf3e8461cfe0b" + }, + { + "classes": 4, + "id": [ + "B", + 457 + ], + "moves": 783, + "sha256": "f8d87a5de0d1c8ccb676d2dd0cd40ee7bd9fcda86070cc901dd6d386e4bc7045" + }, + { + "classes": 5, + "id": [ + "B", + 458 + ], + "moves": 780, + "sha256": "11b2d0c4c5c3452885ec124edd300a645c87f36c8c5561a075c2f591a72178ad" + }, + { + "classes": 4, + "id": [ + "B", + 459 + ], + "moves": 395, + "sha256": "acd885d0b8f9783ee89e528c8690579b4bdb76331a36103c2bdcdcdeb6847396" + }, + { + "classes": 4, + "id": [ + "B", + 460 + ], + "moves": 16, + "sha256": "e9f0810606dddab65efd9db2ab8d18bb65c6fc058df49eda73f57874fef7971f" + }, + { + "classes": 3, + "id": [ + "B", + 461 + ], + "moves": 16, + "sha256": "e342b09bae2c73c95ce7c6fc59d951ce9a1c14f8f8e9c4b218c1983aba1f4831" + }, + { + "classes": 4, + "id": [ + "B", + 462 + ], + "moves": 16, + "sha256": "bf5286e56dfa3e2bc42c353ff7a4fdff245f3215710630e91a5a8399cdff38e0" + }, + { + "classes": 4, + "id": [ + "B", + 463 + ], + "moves": 14, + "sha256": "294f09bad95c99b8e81c29fd2e131f2575e2b018dcccbd593f8d242acc23431e" + }, + { + "classes": 3, + "id": [ + "B", + 464 + ], + "moves": 14, + "sha256": "4e3a1421954c2ceb929d1c1f2bdbce0e0406cce4b35dd1c4565838c9764f977c" + }, + { + "classes": 2, + "id": [ + "B", + 465 + ], + "moves": 9, + "sha256": "4e831058c4b5b8e877f92106f1308ada60b4103446700ccb8298f70416bf4f6b" + }, + { + "classes": 10, + "id": [ + "B", + 466 + ], + "moves": 22, + "sha256": "9913fd8c839d4d7374f52f3e40667476633ae7c63f142de10e0843d88717ba1f" + }, + { + "classes": 5, + "id": [ + "B", + 467 + ], + "moves": 21, + "sha256": "b64b4dd38bd18e116533863874a62d035c4bb8a7dd9384cfc72268a474fc1f48" + }, + { + "classes": 3, + "id": [ + "B", + 468 + ], + "moves": 13, + "sha256": "0920f76fc4b04c56817b81edbe82d4620ba417f02e98fae7cfb4c0da9227ba1f" + }, + { + "classes": 4, + "id": [ + "B", + 469 + ], + "moves": 9, + "sha256": "9d23333752c1de5fa85a987b4f3186b9be27f5d0bae1bc79e31d512834cb0ba8" + }, + { + "classes": 13, + "id": [ + "B", + 470 + ], + "moves": 100, + "sha256": "ae511d28815603021134a5abacb069d0fe844667f24b6d5fdbb98a727a2fc56c" + }, + { + "classes": 11, + "id": [ + "B", + 471 + ], + "moves": 23, + "sha256": "5074dff23be6abbad689f1bb3d358af35bab5e89f1653f3a62b3b065df48ef32" + }, + { + "classes": 6, + "id": [ + "B", + 472 + ], + "moves": 22, + "sha256": "4195cb84bde30bebaa0ff66a27af4cbb01f6c48c2a58526ca4b89f8ef1d2c666" + }, + { + "classes": 4, + "id": [ + "B", + 473 + ], + "moves": 19, + "sha256": "648714163c0e7c96ae262b6bb01f6ae5040af87ce05c600b0e32d69d4b37c42a" + }, + { + "classes": 5, + "id": [ + "B", + 474 + ], + "moves": 16, + "sha256": "b57f748d5b7af4309279aa3e39b2e70f9f7630138c5b5f895636aad9ff151756" + }, + { + "classes": 10, + "id": [ + "B", + 475 + ], + "moves": 115, + "sha256": "6b1b2d191c08d6211792a7b51b706c972f7f53a787d38e42bd46a9ae29f3a5df" + }, + { + "classes": 9, + "id": [ + "B", + 476 + ], + "moves": 53, + "sha256": "ace03d77a45eb352b010e7f2c8052ccc117421b75b40cc657497b93612e6aab5" + }, + { + "classes": 8, + "id": [ + "B", + 477 + ], + "moves": 18, + "sha256": "3fae5b1bca3aa814e2475f345472a3129e25629ab84dff15a2493e3897fdc5cd" + }, + { + "classes": 10, + "id": [ + "B", + 478 + ], + "moves": 65, + "sha256": "2e30c2ae50d27d42831aab6adc47cd31d5e1de17193bac4703a72d9b1d2508fe" + }, + { + "classes": 9, + "id": [ + "B", + 479 + ], + "moves": 25, + "sha256": "684ef32c3aa9f7dc872819577dce6cc240daf4c2772fd275f5a3df73d6229921" + }, + { + "classes": 10, + "id": [ + "B", + 480 + ], + "moves": 103, + "sha256": "d637458d08e0d6f6cd757fc87dedb8cb22d23f14efd775577c6eb526ba265941" + }, + { + "classes": 8, + "id": [ + "B", + 481 + ], + "moves": 19, + "sha256": "411c1f9bfce24ccbc32bf9821f291e7c764eba9f8702781b79a66df59ef844d5" + }, + { + "classes": 10, + "id": [ + "B", + 482 + ], + "moves": 56, + "sha256": "5ccb9a6755fa93e4c0245201091424d3a48c78932457820bde37e985f96bc338" + }, + { + "classes": 7, + "id": [ + "B", + 483 + ], + "moves": 13, + "sha256": "e4b439fcfbc2e48caf66068316865b89ee9ca6c0e85c2967c077e11e097a4f02" + }, + { + "classes": 3, + "id": [ + "B", + 484 + ], + "moves": 12, + "sha256": "1dc7f1a349090782f22032dd9716168cdb52413a9cb929b1bca3f6c11e492be1" + }, + { + "classes": 9, + "id": [ + "B", + 485 + ], + "moves": 94, + "sha256": "0bbc5982d7c213cf43f06ccfbb4f86d3fbc6fd030f6d8d6d603a4b844b3e9605" + }, + { + "classes": 7, + "id": [ + "B", + 486 + ], + "moves": 14, + "sha256": "82da2790ae9341220f393a5aee01db7e29cf20122c5a94b7e0e34729c4b6eea1" + }, + { + "classes": 9, + "id": [ + "B", + 487 + ], + "moves": 63, + "sha256": "7677d9c7c6a0ea33d7b79c21c946d880e670169c8099c0b95db4d34351df2365" + }, + { + "classes": 2, + "id": [ + "B", + 488 + ], + "moves": 3, + "sha256": "522917a74419b8feb0258e237a7a30fb24598ad102ac08b5330ec185058e7d86" + }, + { + "classes": 1, + "id": [ + "B", + 489 + ], + "moves": 83, + "sha256": "7729775ccc3b39f8b9fbfc7c0f320dc60d979fb63146ecd4516826dce33f15b0" + }, + { + "classes": 1, + "id": [ + "B", + 490 + ], + "moves": 477, + "sha256": "b692a80abbac4acb24d6c7170e42d41a35fa077d8218a785343e4a7fcc679a44" + }, + { + "classes": 1, + "id": [ + "B", + 491 + ], + "moves": 162, + "sha256": "a0db1f2ece0d5840c360144145db92602bac435704b06ee439f89e2b3bae7cef" + }, + { + "classes": 1, + "id": [ + "B", + 492 + ], + "moves": 212, + "sha256": "e51ce1bf735a1933136b6ff2d66dfa8b187ff436d3d75bdb2911a748534b4e0e" + }, + { + "classes": 1, + "id": [ + "B", + 493 + ], + "moves": 474, + "sha256": "a7ba3f40432452b289f42f4ffd14ba1fcff68b3b0e4c80b535380d70293022db" + }, + { + "classes": 1, + "id": [ + "B", + 494 + ], + "moves": 223, + "sha256": "ea90c4a4056850eb82c35cf5891ae23c2a2ce3969bb0efc6e4199f62b601aea7" + }, + { + "classes": 1, + "id": [ + "B", + 495 + ], + "moves": 464, + "sha256": "217f60423ca34bb81c62e2ac252c16dce35dc7bef901ab63c9b6a5909b3bec1b" + }, + { + "classes": 1, + "id": [ + "B", + 496 + ], + "moves": 466, + "sha256": "1bf12f9f8f370709a60b79ded43908c42b3af3d67ce006a27cb4708548b79dbb" + }, + { + "classes": 1, + "id": [ + "B", + 497 + ], + "moves": 155, + "sha256": "16e81d9b01149dd7853b3fbcd2672717aa6f63211d15c07819e7e31a16e28aa9" + }, + { + "classes": 1, + "id": [ + "B", + 498 + ], + "moves": 270, + "sha256": "ea1839a3f5f7f603e98cadcc6f79b80442044f9178ef338160c1bd4bda8b6d0a" + }, + { + "classes": 1, + "id": [ + "B", + 499 + ], + "moves": 459, + "sha256": "75077b4b7f0cb5f3a5556ce70b9212ff403fbe191b83508283b23649f921c596" + }, + { + "classes": 1, + "id": [ + "B", + 500 + ], + "moves": 141, + "sha256": "0543eb023542677c40219b4015ce00d230b2e76a9dee5fbcf649d1567be6a160" + }, + { + "classes": 1, + "id": [ + "B", + 501 + ], + "moves": 491, + "sha256": "ca554522a9452af8bde11649a4ce9719f74807764864cb3ce3e242b9fe86db56" + }, + { + "classes": 1, + "id": [ + "B", + 502 + ], + "moves": 287, + "sha256": "1909cfa2b53264f73946b76c7d855a72ad91c6dff1412279a5723deb936146ad" + }, + { + "classes": 1, + "id": [ + "B", + 503 + ], + "moves": 170, + "sha256": "3ce81748cf701c5ef5ecdd339670e1a7f88d62c0f6ecddf0d66c164751584ebe" + }, + { + "classes": 1, + "id": [ + "B", + 504 + ], + "moves": 249, + "sha256": "968febcd4f4e691513383d0ccf1ffecf0aa4929c9fcddeae419cc2341db1bf3a" + }, + { + "classes": 1, + "id": [ + "B", + 505 + ], + "moves": 366, + "sha256": "c15155efb50734f54ca9db04e25d61d7a30b4029088c2e704828d9b6c21f24d6" + }, + { + "classes": 1, + "id": [ + "B", + 506 + ], + "moves": 248, + "sha256": "550d9ca064c0f9277612d01cf9be8e7dddfc8afbd2d038cb2330f2f42cf4eeee" + }, + { + "classes": 1, + "id": [ + "B", + 507 + ], + "moves": 422, + "sha256": "b64555efbdda36a216a29ce5a7d5e01c5981cd8a02b2fdf35ec9329101c973b4" + }, + { + "classes": 1, + "id": [ + "B", + 508 + ], + "moves": 244, + "sha256": "a25b70384872699096c47738381a020a749fbc00d457dba43dfd813263e1c6df" + }, + { + "classes": 1, + "id": [ + "B", + 509 + ], + "moves": 344, + "sha256": "e109b1f2237f5f6e63a8178fe2708836a32cb2510cd65303844854744bab989a" + }, + { + "classes": 1, + "id": [ + "B", + 510 + ], + "moves": 239, + "sha256": "9285c563649fbbca3e7d903c5a070f14a78a30ad883c9ed18185547702220a6f" + }, + { + "classes": 1, + "id": [ + "B", + 511 + ], + "moves": 465, + "sha256": "5a8a759489cb6393482aadf18496a711671ac4a61a2b3e5327329d943ff3f751" + }, + { + "classes": 1, + "id": [ + "B", + 512 + ], + "moves": 432, + "sha256": "bdd60478795b973e0b1903716c678a753cf19e9972e9cbb1438bc2e9fd6db5ef" + }, + { + "classes": 1, + "id": [ + "B", + 513 + ], + "moves": 364, + "sha256": "4fd375600c3d03f81de3ef7aa682e258a4f28d402cfb8f596b507b4320ddc8ee" + }, + { + "classes": 1, + "id": [ + "B", + 514 + ], + "moves": 239, + "sha256": "081e9037ec6fcba868c1c397a3dd1294731ab3974efa464a34734ff51f199ce0" + }, + { + "classes": 1, + "id": [ + "B", + 515 + ], + "moves": 238, + "sha256": "7b80f3e909adbaf3cb7a54017a70b724ddedf10a69504ba749d02f563b2aed07" + }, + { + "classes": 1, + "id": [ + "B", + 516 + ], + "moves": 467, + "sha256": "fd588bd4a81d137161ac9146670b70aee79a455bf4440cbcfae4aa0b7b1272f7" + }, + { + "classes": 1, + "id": [ + "B", + 517 + ], + "moves": 369, + "sha256": "a6db235384a5b593649f2d3ee4dc32ac3250cfdc1adcad92589b15f57cc204b1" + }, + { + "classes": 1, + "id": [ + "B", + 518 + ], + "moves": 226, + "sha256": "d7065e15d76c1bd3e5668c3068db4a0f33f305c784b83ef842cde9772064e574" + }, + { + "classes": 1, + "id": [ + "B", + 519 + ], + "moves": 253, + "sha256": "2e656ff4f0d151e569a6c2906da30c2497b90f50ad5bca33782c33a92fc6e054" + }, + { + "classes": 1, + "id": [ + "B", + 520 + ], + "moves": 414, + "sha256": "3bba2558c657a4aa9b6a96f0b0c027f6259c2fc73bf22ad49ba87773be9d1a8e" + }, + { + "classes": 1, + "id": [ + "B", + 521 + ], + "moves": 343, + "sha256": "cde677f43e3072c5c83ce56de6b1f41934532b16ffdc8bb70373a2dee2cb48b3" + }, + { + "classes": 1, + "id": [ + "B", + 522 + ], + "moves": 208, + "sha256": "2cc64f6b9b730d8fa77d6ae9d4f7e092204716e4362576c5673db3b3800bf3eb" + }, + { + "classes": 1, + "id": [ + "B", + 523 + ], + "moves": 462, + "sha256": "5de47325ab84a5b9b4e5056b92639a2bde410e3adadd7b57c5dcfc7e3cafd876" + }, + { + "classes": 1, + "id": [ + "B", + 524 + ], + "moves": 225, + "sha256": "51f5546a7b0f1a2233e6fc78cd8c395360a5a24e002e58c9e8eb7d1dff82cd3c" + }, + { + "classes": 1, + "id": [ + "B", + 525 + ], + "moves": 408, + "sha256": "997f08387c22d989421907771774da107861e6a9b6e45b1f10ba89ca6b3d2163" + }, + { + "classes": 1, + "id": [ + "B", + 526 + ], + "moves": 505, + "sha256": "bf0f69eba57b6fd834352e8553084e2759d1c918418f520bbb967d6e31c38d3f" + }, + { + "classes": 1, + "id": [ + "B", + 527 + ], + "moves": 334, + "sha256": "bc122c9cbee6b7d86626194e57ce4507642e93c546ae2d6d16b4fff38a84ca35" + }, + { + "classes": 1, + "id": [ + "B", + 528 + ], + "moves": 473, + "sha256": "6552c81aaedc6c990847d50596483010f1baa276d7c1cfb457a4a6e66c335c33" + }, + { + "classes": 1, + "id": [ + "B", + 529 + ], + "moves": 239, + "sha256": "9b78e96463a5de57c05b5475a7e6d08937dd1ca6aa8d434e81fb3179c8c23437" + }, + { + "classes": 1, + "id": [ + "B", + 530 + ], + "moves": 360, + "sha256": "bf42b612ca9e4c4802dd386a8b5156f59d740409c66975c8f15d9747e52f1f0a" + }, + { + "classes": 1, + "id": [ + "B", + 531 + ], + "moves": 421, + "sha256": "8149a9f5ccc96b9a625b2005b725ea73017726b27b1fb51b4b6d2e1d976bfe17" + }, + { + "classes": 1, + "id": [ + "B", + 532 + ], + "moves": 232, + "sha256": "61e89c6df0b5cbb39f79e64070e0f4e6dc5f8a00ee80845248f83c4867e17e2f" + }, + { + "classes": 1, + "id": [ + "B", + 533 + ], + "moves": 420, + "sha256": "a43071a9df4ec8c011cbedf493348a258a0d51c210a3de84e44c8f7e63b36418" + }, + { + "classes": 1, + "id": [ + "B", + 534 + ], + "moves": 514, + "sha256": "d4337ba641bd67ae245891b73cc3b1462826062af770107eaac87d46c44145c4" + }, + { + "classes": 1, + "id": [ + "B", + 535 + ], + "moves": 394, + "sha256": "4d507624f57b2f8e316711cf372a6492249396ed5c76759b9dfc0f26b70dda77" + }, + { + "classes": 1, + "id": [ + "B", + 536 + ], + "moves": 585, + "sha256": "3dd4abb8377d147239e67ab36b46edb98edd4237d27f453c028465fac20eb5c8" + }, + { + "classes": 1, + "id": [ + "B", + 537 + ], + "moves": 582, + "sha256": "de73b942b9ab661cbda44d9b85f0cea5fb3eee1e7152cd9654499006cd494869" + }, + { + "classes": 1, + "id": [ + "B", + 538 + ], + "moves": 590, + "sha256": "4857167e23e43b187e4298e8bd324c093ab728ca4df46edf3b02b74ad8d9ec51" + }, + { + "classes": 1, + "id": [ + "B", + 539 + ], + "moves": 470, + "sha256": "96056ccd363236bf44d9adf2a1db6760c745be2a323a19aa4996cb2e325c971b" + }, + { + "classes": 1, + "id": [ + "B", + 540 + ], + "moves": 511, + "sha256": "25ddf4cb56f5f51702c02919267efb9c3c37b404e86483379a7957503b13250b" + }, + { + "classes": 1, + "id": [ + "B", + 541 + ], + "moves": 563, + "sha256": "5e398e421384ad5aa2c175b6e4a0544e304202e1071d5374c10c69c759a35dbb" + }, + { + "classes": 1, + "id": [ + "B", + 542 + ], + "moves": 580, + "sha256": "1d74c40757e88c9fe13720358cff6a852551552197e2a6693a1b4dc69b89a91b" + }, + { + "classes": 1, + "id": [ + "B", + 543 + ], + "moves": 485, + "sha256": "a1a825dc0a60f6ce47abd224a041d7bf3b118312657e91ce25fb48118d25af31" + }, + { + "classes": 1, + "id": [ + "B", + 544 + ], + "moves": 601, + "sha256": "40bbb99ff2c438598130f3be533e981e674b3df08a6fd796fa75661bacc20a6f" + }, + { + "classes": 1, + "id": [ + "B", + 545 + ], + "moves": 561, + "sha256": "010e55232993861917e0aa0428dec607d706551d4c40b21b91cccce421ba0a60" + }, + { + "classes": 1, + "id": [ + "B", + 546 + ], + "moves": 577, + "sha256": "eae7a68b059567589b89a586eae046909c51547d7ad54c75d3a786cb7540d6a6" + }, + { + "classes": 1, + "id": [ + "B", + 547 + ], + "moves": 459, + "sha256": "2d523cfc421408b5a6594197f83b2f6cc87de017708ce9c3fc48f7ba1f3664cb" + }, + { + "classes": 1, + "id": [ + "B", + 548 + ], + "moves": 611, + "sha256": "cbf9e9514d9d13d2235ce99eb5bac9b8606d53674bb119e8d277a01cdae30bf0" + }, + { + "classes": 1, + "id": [ + "B", + 549 + ], + "moves": 506, + "sha256": "0047fc31ef7ae771e5bc62b1f46ab0f37c91a2484381aa2b34d9b87086dce888" + }, + { + "classes": 1, + "id": [ + "B", + 550 + ], + "moves": 552, + "sha256": "f7408463338516f5b7eed4c6b86c5ce963e9150d0dbb1542aaa69996b287d912" + }, + { + "classes": 1, + "id": [ + "B", + 551 + ], + "moves": 655, + "sha256": "c5d9dd08d008f38cefcc6826a3a84e5b96be8981fc4092a3425b86c13dd91b6b" + }, + { + "classes": 1, + "id": [ + "B", + 552 + ], + "moves": 666, + "sha256": "c3348ef82710417d6c0264a4f48e89a3f5ae05be676a292abf617b2155f14f6f" + }, + { + "classes": 1, + "id": [ + "B", + 553 + ], + "moves": 668, + "sha256": "b708fd1f04669d8c5808d8724a8c58cb6d200cd59c6e235653a474301e2f81bd" + }, + { + "classes": 1, + "id": [ + "B", + 554 + ], + "moves": 592, + "sha256": "0ff1a063586b1f515d8a42275f17044e2863abf5aaa65748263bb129c57bcbaf" + }, + { + "classes": 1, + "id": [ + "B", + 555 + ], + "moves": 493, + "sha256": "ef0d5416f5ebd7e5705350e2592d190e00680aee6bfd40981c3f5fd5a4e3b9b2" + }, + { + "classes": 1, + "id": [ + "B", + 556 + ], + "moves": 467, + "sha256": "a1bbdf28b01a69dfdda27a85716237a015bb7ff8403369d944443b09138f9f8e" + }, + { + "classes": 1, + "id": [ + "B", + 557 + ], + "moves": 521, + "sha256": "14afec82315e6a5e034a06685e23b81ab95914cd3157269d2d897667d888299c" + }, + { + "classes": 1, + "id": [ + "B", + 558 + ], + "moves": 657, + "sha256": "d87e85da3c4ef4cfa6ff81bba2d912d214aaf137a6e999f3ad3b6f6049d1b900" + }, + { + "classes": 1, + "id": [ + "B", + 559 + ], + "moves": 660, + "sha256": "35936bff57fc394cc5bd4eae493072f7222d4c80e362f660b3c947d5b82ba5d4" + }, + { + "classes": 1, + "id": [ + "B", + 560 + ], + "moves": 479, + "sha256": "26254a5e7d1b52618478d62554b27379d64371d2ca2ce7add167a823f25884bf" + }, + { + "classes": 1, + "id": [ + "B", + 561 + ], + "moves": 568, + "sha256": "33f6ae6544ba71eacc4105687cac912055d2989dcb4b2a11c7240b3f3e7f8d4e" + }, + { + "classes": 1, + "id": [ + "B", + 562 + ], + "moves": 684, + "sha256": "db185bb705030bc5665bbc3f48ca2f65ee69babe61aca3dad36e7a55fbc11ae0" + }, + { + "classes": 1, + "id": [ + "B", + 563 + ], + "moves": 381, + "sha256": "c8d555fc53bbf8004047cb656eda60bb0e3ba1f33574054649195ba681e59926" + }, + { + "classes": 1, + "id": [ + "B", + 564 + ], + "moves": 394, + "sha256": "a532b9e12ca61ba956efccae2ee89301aa892ad53a73b2bc2043fbb58c9d3e1c" + }, + { + "classes": 1, + "id": [ + "B", + 565 + ], + "moves": 560, + "sha256": "f57bef6ab7bab04033ebd2798aa685360db2cf7b945beba1ef216a71c371ea8d" + }, + { + "classes": 1, + "id": [ + "B", + 566 + ], + "moves": 355, + "sha256": "b706618c3c9852033cc98671869c3da7cdd56273d37a22c74b75a0348b491987" + }, + { + "classes": 1, + "id": [ + "B", + 567 + ], + "moves": 461, + "sha256": "e52cfd7da05683d64004f0773ae16c92b521156e4d21e4421dca4f6b6d61a277" + }, + { + "classes": 1, + "id": [ + "B", + 568 + ], + "moves": 377, + "sha256": "ae6f4f86783d507a880719005c1f28b1414b53e41beaa10ddd8e587fa0c3572f" + }, + { + "classes": 1, + "id": [ + "B", + 569 + ], + "moves": 241, + "sha256": "79c608b007e1921943e6d351b598383c2b77c238952817c4beb7f13873ac3250" + }, + { + "classes": 1, + "id": [ + "B", + 570 + ], + "moves": 547, + "sha256": "99453f493aca6740e096b5e9876643ebb44457df3d6329c26d893cd70c78435d" + }, + { + "classes": 1, + "id": [ + "B", + 571 + ], + "moves": 344, + "sha256": "f3e00eabed3f02b1b1e4d461a27681ebdd2ee4ab0b7dac28d75e036b59fde9be" + }, + { + "classes": 1, + "id": [ + "B", + 572 + ], + "moves": 409, + "sha256": "4a80b632223a31a2a81a4b6e1a60f23f36dc99fe2d8793c11f420c267be19282" + }, + { + "classes": 1, + "id": [ + "B", + 573 + ], + "moves": 361, + "sha256": "36dff53b5585a51d495f87f94c3f432417f6dd616ed925070c70e96d85291b4e" + }, + { + "classes": 1, + "id": [ + "B", + 574 + ], + "moves": 654, + "sha256": "2dc123efd9030c8ae0d7cf0a48748fb2d303f4d02a3fa5f7685c0acedb9882ef" + }, + { + "classes": 1, + "id": [ + "B", + 575 + ], + "moves": 222, + "sha256": "1e1454af47a46808e46840a0e2b5aa58ef2ce1fd78f9a3d4fbd853ecc4ae4b8c" + }, + { + "classes": 1, + "id": [ + "B", + 576 + ], + "moves": 352, + "sha256": "a7c2bfa31ba2945786366e04182689c05dfd159200b43d5adefa6caf50bd0605" + }, + { + "classes": 1, + "id": [ + "B", + 577 + ], + "moves": 460, + "sha256": "25196d4c331b0df46909baef41e42cdcb72cabc965cee1af5adab769ce5529cd" + }, + { + "classes": 1, + "id": [ + "B", + 578 + ], + "moves": 465, + "sha256": "db3bf28225e83578098401b0d6c7d8d8f7de67c6a71fd5fcfa1464e0f6a5a275" + }, + { + "classes": 1, + "id": [ + "B", + 579 + ], + "moves": 374, + "sha256": "3a3e5bfe0bade5b0bf694ccc3403a497bacd9bc6d023749599f4488499caf5bc" + }, + { + "classes": 1, + "id": [ + "B", + 580 + ], + "moves": 261, + "sha256": "c9a43f50c76eb343b4cabda28e25ef28c5897261d6844a1b7df762e3a1b0c503" + }, + { + "classes": 1, + "id": [ + "B", + 581 + ], + "moves": 387, + "sha256": "bd0103ba43e34b29d1a955b69e621bb22a26856ca19f6fc5ec46fb159349790d" + }, + { + "classes": 1, + "id": [ + "B", + 582 + ], + "moves": 410, + "sha256": "8151a43f3a8cc69a1d77a5790909b0478f9d74b8e1c57290b07cd22711e7253a" + }, + { + "classes": 1, + "id": [ + "B", + 583 + ], + "moves": 267, + "sha256": "a59c06332d2d17aa12291ab7ac185f087dd78390cf2087105bd3ec0302e1e16f" + }, + { + "classes": 1, + "id": [ + "B", + 584 + ], + "moves": 692, + "sha256": "ad06c7fdac144ff18c8713d2623de263e1735cf265282c24fac53bc5ee286fa8" + }, + { + "classes": 1, + "id": [ + "B", + 585 + ], + "moves": 279, + "sha256": "ae3fd698470febc4bf71283d666629de4238961edf539e2262e7044bb16ecbe4" + }, + { + "classes": 1, + "id": [ + "B", + 586 + ], + "moves": 400, + "sha256": "1d8c6d8f9f1ea6a0c4a19be4e8167e0a17099bcbfd1f7401fa498997315337f8" + }, + { + "classes": 1, + "id": [ + "B", + 587 + ], + "moves": 568, + "sha256": "fb4863206c9d5cda680801e4442c18179d6a3678cee0fefec29070899ef89316" + }, + { + "classes": 1, + "id": [ + "B", + 588 + ], + "moves": 257, + "sha256": "f8231b8cd92399b9316a46f26e837ad273ddff3c200ffd725fccd3c1a763c0fa" + }, + { + "classes": 1, + "id": [ + "B", + 589 + ], + "moves": 452, + "sha256": "44da646562b69ce4ba5af3592374f66b4902df9a811a121fe4984bc8ef7c1bb2" + }, + { + "classes": 1, + "id": [ + "B", + 590 + ], + "moves": 255, + "sha256": "5753a59a4f0324bf4994adbd381602cae8f2fd444f15e4095a15457b8388a27f" + }, + { + "classes": 1, + "id": [ + "B", + 591 + ], + "moves": 247, + "sha256": "57c753f507c037240c2e50c0c87d58afcaa6521fb0f05cff986295826d61713b" + }, + { + "classes": 1, + "id": [ + "B", + 592 + ], + "moves": 475, + "sha256": "9a8f2c254392f422162982d9f2eb0426ab3cf1d58ec37d7d0ad27ca5660a5ed3" + }, + { + "classes": 1, + "id": [ + "B", + 593 + ], + "moves": 216, + "sha256": "7ba292c30fa8af5179c31a485d07cfbacceabec305ed9d56104ae6baf06a4c0d" + }, + { + "classes": 1, + "id": [ + "B", + 594 + ], + "moves": 141, + "sha256": "e551a33c0826cb7b19c5b76c63ad460416cc329ecacf58844ed11fb39fba704a" + }, + { + "classes": 1, + "id": [ + "B", + 595 + ], + "moves": 268, + "sha256": "fddb166bee10b69b3131f95ef5f9d3ad0bdb1caef8899f4f2a962d2b702c9508" + }, + { + "classes": 1, + "id": [ + "B", + 596 + ], + "moves": 155, + "sha256": "2b82b681e235ff7d3bb53bd1984d2551a55ba81a4ad6b621927310df88234888" + }, + { + "classes": 1, + "id": [ + "B", + 597 + ], + "moves": 150, + "sha256": "1c84d26cd71cb2e8f0a14f8b0833d8ebc5bf29fb5391d46528a0dcdf0463864e" + }, + { + "classes": 1, + "id": [ + "B", + 598 + ], + "moves": 475, + "sha256": "c3f005066c416dee1849c641193defca39a1f0f1ed0f89bc1684bf8c7d7c377a" + }, + { + "classes": 1, + "id": [ + "B", + 599 + ], + "moves": 204, + "sha256": "6e451e229dbd9d7070b29c442ef4fe06c49bdb894bdb0ccd58ed508a30342478" + }, + { + "classes": 1, + "id": [ + "B", + 600 + ], + "moves": 556, + "sha256": "5701c4fc788d87be472dd31f92c45a1fb65d795c3d0c60af007e9f9527c606a1" + }, + { + "classes": 3, + "id": [ + "B", + 601 + ], + "moves": 439, + "sha256": "c0dbd7ee28866288f998379cb39a3bc96cb06d40243387cfff9f69118f85a091" + }, + { + "classes": 2, + "id": [ + "B", + 602 + ], + "moves": 442, + "sha256": "4229f8eca2dff29efa2a2a25b10faaec395f427bbd3c4bb366cdece269947623" + }, + { + "classes": 4, + "id": [ + "B", + 603 + ], + "moves": 1533, + "sha256": "46f2af1773b72f70349e91773906009ea59c16ab8dd525af112c104ce04b0de7" + }, + { + "classes": 5, + "id": [ + "B", + 604 + ], + "moves": 1038, + "sha256": "d08bf65da489ec634c00ea0ccd8932301b71f4d1ad3e888d6294f5b859504c50" + }, + { + "classes": 2, + "id": [ + "B", + 605 + ], + "moves": 336, + "sha256": "115f047631cdf7bc2f005c7283471a8954ed15204b6f9dfa7cf2932d19c46771" + }, + { + "classes": 3, + "id": [ + "B", + 606 + ], + "moves": 441, + "sha256": "c4255499a6e3d36e05c8a7d96949a06bdf6c6c0a798934160b342140998b1332" + }, + { + "classes": 3, + "id": [ + "B", + 607 + ], + "moves": 930, + "sha256": "32afa3b2b8bd2bdb5b012f8fb7c4377507b4169478c3556023a57d5483d0655d" + }, + { + "classes": 2, + "id": [ + "B", + 608 + ], + "moves": 440, + "sha256": "22d04484e9e47423a154f1016ee50225d975f4376d69da339ccfb6dfd1a7aed6" + }, + { + "classes": 5, + "id": [ + "B", + 609 + ], + "moves": 938, + "sha256": "4111aac21486033f6b3009578efa153cbdd889308550fa727d969bae4bd808f6" + }, + { + "classes": 4, + "id": [ + "B", + 610 + ], + "moves": 556, + "sha256": "6b495b88798949a7756dc3ebeb228938d8a02e385a9f82b244717b93e218f691" + }, + { + "classes": 4, + "id": [ + "B", + 611 + ], + "moves": 1042, + "sha256": "12e4a9800dab951a49b3d19e6beb493297368b7fcee645f9e73903eb74f8a4d4" + }, + { + "classes": 4, + "id": [ + "B", + 612 + ], + "moves": 1544, + "sha256": "c3d5adb15e8548b1886592dbce5d16e5ee4576fa21ed5f96b8a21e797add36f1" + }, + { + "classes": 4, + "id": [ + "B", + 613 + ], + "moves": 1539, + "sha256": "c9ecef35a679a1c2b3cb314386ba005a8ffe3a72e65ec173181bdefecedba9e9" + }, + { + "classes": 2, + "id": [ + "B", + 614 + ], + "moves": 339, + "sha256": "42891e9a19a048285b0b30a92ccbcb4de5dd74e41e4208824195672e41e135f8" + }, + { + "classes": 3, + "id": [ + "B", + 615 + ], + "moves": 438, + "sha256": "b6b672d507ad531ab533dc94eb9cd28969346094b501c2a7802d2597484e3ae2" + }, + { + "classes": 5, + "id": [ + "B", + 616 + ], + "moves": 1048, + "sha256": "1cbcbc6552e4c8de61266072510e6d2934e686247fe9f0b7fdc139b6186a9360" + }, + { + "classes": 2, + "id": [ + "B", + 617 + ], + "moves": 437, + "sha256": "8fda135bf5cad34f84e1be686114c5e684345aff1d9b5ac1d58a3f9aef238fd3" + }, + { + "classes": 4, + "id": [ + "B", + 618 + ], + "moves": 1540, + "sha256": "9d804464bbdabbd4c92233a686646a26ebc1b9085fd0a1500532f53969828a37" + }, + { + "classes": 3, + "id": [ + "B", + 619 + ], + "moves": 436, + "sha256": "2937d0de199eb135a5fd1c7672a9a36802d3cfa1ebbe5051991d446eadb474ee" + }, + { + "classes": 2, + "id": [ + "B", + 620 + ], + "moves": 433, + "sha256": "0982b00e77c16d37d83d8084091fdf046c51fd4ed633dedc20007930f230491b" + }, + { + "classes": 4, + "id": [ + "B", + 621 + ], + "moves": 1541, + "sha256": "4eaa01df95ceeaf90747ee44106f3012e6d7e03e91397ad5ad71c87e4b5b641c" + }, + { + "classes": 3, + "id": [ + "B", + 622 + ], + "moves": 435, + "sha256": "5deefbfa84a2ca3f2a55d94fac325a869cf513e431a0a926fbe7557dc0bf49da" + }, + { + "classes": 3, + "id": [ + "B", + 623 + ], + "moves": 1542, + "sha256": "f33fc1f20d26934befa0189cbab31dec11675cf54bf7678e463ad00312ced82f" + }, + { + "classes": 3, + "id": [ + "B", + 624 + ], + "moves": 926, + "sha256": "1ee65ca3e321a604f648d4abfc3323ba1571f272f577c2c55db5339cbba6b85f" + }, + { + "classes": 3, + "id": [ + "B", + 625 + ], + "moves": 434, + "sha256": "98638674e354cf20efc36a58ecf052713feb3f10c0640e6160150dccf06a2600" + }, + { + "classes": 4, + "id": [ + "B", + 626 + ], + "moves": 955, + "sha256": "4e401c9b8628a229deb29520b6e40014a7832a4d0d8e8869da03c1d4ac2dfb5a" + }, + { + "classes": 3, + "id": [ + "B", + 627 + ], + "moves": 925, + "sha256": "af96a1407dcfb43d1ee78b38b190f612a589a279e022a767d404f5d8a7bd4718" + }, + { + "classes": 5, + "id": [ + "B", + 628 + ], + "moves": 1066, + "sha256": "df25c1b25443a733929601107e408a5be186671182ebf60daa597835ded75150" + }, + { + "classes": 3, + "id": [ + "B", + 629 + ], + "moves": 562, + "sha256": "b965efdf8f969ebf4cfdeade0d17da849548e1c6220524c917bf8b1a2eb37b68" + }, + { + "classes": 4, + "id": [ + "B", + 630 + ], + "moves": 1562, + "sha256": "064e67cec6af4a1e31f422c2395b4107f585195077ad28000adf595e0155b9a1" + }, + { + "classes": 3, + "id": [ + "B", + 631 + ], + "moves": 432, + "sha256": "fc266a842b5f27b9ca0d00da7436441cab3439845becb58bc706786c170f6ad3" + }, + { + "classes": 4, + "id": [ + "B", + 632 + ], + "moves": 961, + "sha256": "881037ccad6dd42b9d6413abdef84cc90c9e3e39705bb3b315e838580d8909f7" + }, + { + "classes": 3, + "id": [ + "B", + 633 + ], + "moves": 335, + "sha256": "e45ccb386d54fc30a74f08603e2efeb00de34e454ad67bd645038fa4ea4aa1bc" + }, + { + "classes": 3, + "id": [ + "B", + 634 + ], + "moves": 442, + "sha256": "fb16db9cab7463c76793aad2a2fd69e65a91b01b203533e6a467ff0f2bad7636" + }, + { + "classes": 3, + "id": [ + "B", + 635 + ], + "moves": 564, + "sha256": "be33b646d1bc50a78515ba81bbb9658d2f4f30977b402a006076be4ef61e5753" + }, + { + "classes": 4, + "id": [ + "B", + 636 + ], + "moves": 1548, + "sha256": "91b4d5b72de970c80004bfbf3102d576a1481146625e106832b4a1fd0b306cc5" + }, + { + "classes": 3, + "id": [ + "B", + 637 + ], + "moves": 434, + "sha256": "60ccf69c3005681f27fba8c664fc5ea7ba46c9aeb6d76835e0210acbe73c562c" + }, + { + "classes": 2, + "id": [ + "B", + 638 + ], + "moves": 922, + "sha256": "543106735f469eac0521ef6d95609a3071e7d5ddb8f6fa1bc42a17afce703a02" + }, + { + "classes": 4, + "id": [ + "B", + 639 + ], + "moves": 565, + "sha256": "839daec495d76da73d9c589406f2243af9bf4801b29672e5b364d1a1a3334fe9" + }, + { + "classes": 5, + "id": [ + "B", + 640 + ], + "moves": 1061, + "sha256": "4683fdd1b1038e21495e4242a9342b514c0ed51aed40851aa97f4432335c90ce" + }, + { + "classes": 2, + "id": [ + "B", + 641 + ], + "moves": 429, + "sha256": "0c661dde74e9888bf6423eabab0988457aa670722896c0e9fd9390fe28d7b299" + }, + { + "classes": 3, + "id": [ + "B", + 642 + ], + "moves": 921, + "sha256": "6138b776768f4d51411e9745d5e76d1a483e6c2e52846dcbdf73df8d2cbd1b16" + }, + { + "classes": 3, + "id": [ + "B", + 643 + ], + "moves": 422, + "sha256": "bf6e8f6791d318aa8b3ac832f6292c535ce704e5e24bf6802613c36f2b0b38d1" + }, + { + "classes": 2, + "id": [ + "B", + 644 + ], + "moves": 428, + "sha256": "25537ed92806aeb608981c10ce8780a8f1b6243142ad6386493a31441e7703e7" + }, + { + "classes": 4, + "id": [ + "B", + 645 + ], + "moves": 1551, + "sha256": "265493bba4bb01d8a9791069c2dd16e2183f49539dc9ae6b01ce25e3e14c3911" + }, + { + "classes": 5, + "id": [ + "B", + 646 + ], + "moves": 1052, + "sha256": "5f2b9604cff571fcd646c940ed20ac9dcd45e1356eaf376d06510d4f3cf80984" + }, + { + "classes": 2, + "id": [ + "B", + 647 + ], + "moves": 427, + "sha256": "d01e6b176a6ca8e1aaa159ef5e15afe68a5af21cc82e2a9bcf1afc209589fa51" + }, + { + "classes": 3, + "id": [ + "B", + 648 + ], + "moves": 919, + "sha256": "24020a64be41cdd10e1586991f6c89344a20cb757c8bda48e80e5f98f380d72d" + }, + { + "classes": 3, + "id": [ + "B", + 649 + ], + "moves": 424, + "sha256": "e39e16c524b3ed7f17308f10bd32d67289f630cf12217a983dd5bab388c57db4" + }, + { + "classes": 3, + "id": [ + "B", + 650 + ], + "moves": 1553, + "sha256": "11ab76fa4070c42838ebe5b0638a0013da7c6a39fcdfc26d37555232f55bf887" + }, + { + "classes": 3, + "id": [ + "B", + 651 + ], + "moves": 426, + "sha256": "27561760d80d83e8e479ad843eb9e8b35368df1b7a93acf0efd9a15b5fcceab8" + }, + { + "classes": 3, + "id": [ + "B", + 652 + ], + "moves": 425, + "sha256": "cf282e3acf20dcce5a4e802bee075f271c0a6c5f886c354bfa6ff3a2377d3131" + }, + { + "classes": 2, + "id": [ + "B", + 653 + ], + "moves": 350, + "sha256": "4ab32b26d94b496b14ac2b4e082b3ecc1616c7e961aaf60d34c88bc32efaa0ea" + }, + { + "classes": 4, + "id": [ + "B", + 654 + ], + "moves": 1554, + "sha256": "7b75b0755c8b67902b8c87447fef8c78546421434ed5fb6c7b53d42c61fd413e" + }, + { + "classes": 4, + "id": [ + "B", + 655 + ], + "moves": 571, + "sha256": "418be1e07d408ab6e90a108541d49ff2d9887573379edf457447f41a68df6b90" + }, + { + "classes": 2, + "id": [ + "B", + 656 + ], + "moves": 916, + "sha256": "c7ca63b504105eba4c12efa68b53a6521465bf5098a023bf21956dbb605f28d2" + }, + { + "classes": 3, + "id": [ + "B", + 657 + ], + "moves": 349, + "sha256": "395a327d3385efa886dd998d7065fa6f437ca022559f2dd7977c34c930ce2bf4" + }, + { + "classes": 3, + "id": [ + "B", + 658 + ], + "moves": 915, + "sha256": "c77b229b0e2b097b9281cdd96b438c823c9ab0c7dbe4b4b7d37b9ec9d14d9423" + }, + { + "classes": 2, + "id": [ + "B", + 659 + ], + "moves": 423, + "sha256": "f9e29ae259ba87cd0f05b5d190ee8975d11d71d932e80128116a9677ff461a5c" + }, + { + "classes": 4, + "id": [ + "B", + 660 + ], + "moves": 1556, + "sha256": "9bc92fa6ea57825c8988117ad30b1233a8ddeb5ee3633f5843eac782f5ae0aad" + }, + { + "classes": 4, + "id": [ + "B", + 661 + ], + "moves": 573, + "sha256": "45efc02c0f354386734a2dc141f8b7431170e4b50931569fca5889daffdc46ea" + }, + { + "classes": 2, + "id": [ + "B", + 662 + ], + "moves": 352, + "sha256": "2cd529fdc2dcbd06ac05f3e930df352e3058bf4928df5d26746e72bedf1aa48e" + }, + { + "classes": 3, + "id": [ + "B", + 663 + ], + "moves": 347, + "sha256": "15a307c00c27c66cba6c346376d2728527fc1229a3310326d74523745f45703b" + }, + { + "classes": 3, + "id": [ + "B", + 664 + ], + "moves": 416, + "sha256": "644c9c9c6a82ac58259279383de7b7b715353a3e8685ed49c259fcdd396799ae" + }, + { + "classes": 3, + "id": [ + "B", + 665 + ], + "moves": 1558, + "sha256": "7448901b9fa2e7035721b05df1a193de8fc1d0861ebbf2f2249e66170eb734c5" + }, + { + "classes": 3, + "id": [ + "B", + 666 + ], + "moves": 421, + "sha256": "4089a053041b87b3a6ea544f4c829b2fb9b5126f8b0b84dde029582b58690b37" + }, + { + "classes": 5, + "id": [ + "B", + 667 + ], + "moves": 1093, + "sha256": "bc5926b6c495a137d6ab359d3628e2c3bf98b146a3199eed09290bc468b76abd" + }, + { + "classes": 3, + "id": [ + "B", + 668 + ], + "moves": 575, + "sha256": "47ee4ac918320a3ee674796f4d485fe6e1f1b43ab6d92e88ca7963d071314ce4" + }, + { + "classes": 4, + "id": [ + "B", + 669 + ], + "moves": 1601, + "sha256": "dc2759f49ed19d969b0604ebda0e6d314316214f14656c1a80b52c858b217996" + }, + { + "classes": 3, + "id": [ + "B", + 670 + ], + "moves": 419, + "sha256": "792d2b066db4e0e9feb7d0dbc307e19cd0a42cc06028f846c706577936759beb" + }, + { + "classes": 2, + "id": [ + "B", + 671 + ], + "moves": 351, + "sha256": "d268e73ad8a3bb7007667e6c0a3c7fd62a692c8a6de897fc5d9dae228df83e52" + }, + { + "classes": 5, + "id": [ + "B", + 672 + ], + "moves": 996, + "sha256": "c9f083bb8e83cb78d345c61e9055ad5eb6ab3b0ffefc7770fa66036a113e3199" + }, + { + "classes": 3, + "id": [ + "B", + 673 + ], + "moves": 911, + "sha256": "b340aa16e117eb38991c0768af0c4e783f96ef6cc6ad84bd18b8944f23a0e302" + }, + { + "classes": 3, + "id": [ + "B", + 674 + ], + "moves": 577, + "sha256": "34f0cae73ca566223c906826bf93e0441572fa41d9fd0c95d8cc8de13f9a830e" + }, + { + "classes": 3, + "id": [ + "B", + 675 + ], + "moves": 341, + "sha256": "380cf70c0c1d92b286f4eae79e46b3b59b8a9a2c314c40ce93e806f584a86877" + }, + { + "classes": 5, + "id": [ + "B", + 676 + ], + "moves": 1068, + "sha256": "24909ea087406d8f7d85ad6e0c60f9e49417f13d5af0a49c1d6fb1b8c342aa63" + }, + { + "classes": 2, + "id": [ + "B", + 677 + ], + "moves": 910, + "sha256": "f25b130939a2d2dcea693b4d216a5f92717783951b024cbb851c09bb97f7f5cc" + }, + { + "classes": 3, + "id": [ + "B", + 678 + ], + "moves": 417, + "sha256": "c93dba07d1eaffffc32855103d0d11f3eb942b5ee7821724819cd8e90a92b766" + }, + { + "classes": 3, + "id": [ + "B", + 679 + ], + "moves": 416, + "sha256": "483ff370a2d303e663605b9b1578d4c70756454c4edadc51e73b7900469bc3bc" + }, + { + "classes": 2, + "id": [ + "B", + 680 + ], + "moves": 909, + "sha256": "a3e2be47c872a84d3c5c450d87a5aa84b4effa6d0990f9462d9899dbd4448803" + }, + { + "classes": 5, + "id": [ + "B", + 681 + ], + "moves": 996, + "sha256": "71fd4c07efd90144abe0f34b7c20e8b9ee9d38dcbfaf6ad5976cf33e5c8952f8" + }, + { + "classes": 3, + "id": [ + "B", + 682 + ], + "moves": 908, + "sha256": "12b2aba36571cb1dab37e4bfe3ca1c37809cfee846ef63aa41682db1267fe021" + }, + { + "classes": 4, + "id": [ + "B", + 683 + ], + "moves": 1011, + "sha256": "0c6b6903cfe942e584b1d0707c2806e6a8c08d4c24721966e782cadf26dbea60" + }, + { + "classes": 3, + "id": [ + "B", + 684 + ], + "moves": 415, + "sha256": "ac5ea696b87fde5896ae68848a70ed76331f167388b23bf7f03f21c4756f755b" + }, + { + "classes": 3, + "id": [ + "B", + 685 + ], + "moves": 414, + "sha256": "c8ec77a8911e4898c60c10f28fdce31a6f530f02852c64992c96c77c1f8e9387" + }, + { + "classes": 4, + "id": [ + "B", + 686 + ], + "moves": 1004, + "sha256": "8388b983909e9f0eaed74fce656bd16ecbd730ab45cc8ed553798c929b2dedba" + }, + { + "classes": 3, + "id": [ + "B", + 687 + ], + "moves": 342, + "sha256": "a7e43e77b08ed67c268654c9efad75ad8b734c78b532448fedc5ae38ec76d49d" + }, + { + "classes": 4, + "id": [ + "B", + 688 + ], + "moves": 1568, + "sha256": "a42dd56cd1693cd26b0496ca24ebcffd18359ba1e9a047647a68f45906581a1a" + }, + { + "classes": 2, + "id": [ + "B", + 689 + ], + "moves": 906, + "sha256": "0921260ac32ca32c8373d96a4464395523976ce0c9558581d00b51baea9f35a5" + }, + { + "classes": 3, + "id": [ + "B", + 690 + ], + "moves": 413, + "sha256": "2b8f9b8e82a70f3d80eb181e94d85d132100a03021dbf44b44f4c73aef1e5613" + }, + { + "classes": 3, + "id": [ + "B", + 691 + ], + "moves": 401, + "sha256": "fd4606c6d9669f06d0d27927f4ed7e597511012c9f60df2733e7290c8a11dedd" + }, + { + "classes": 2, + "id": [ + "B", + 692 + ], + "moves": 412, + "sha256": "0ec911bf0d23e5ebbde8e2ee066c94856e45575059c3885a24a0649577ef079c" + }, + { + "classes": 5, + "id": [ + "B", + 693 + ], + "moves": 1024, + "sha256": "e15cdd7e69f41ec43e49dfe2add07c2b87aed0739479a550debd39f4db0aea33" + }, + { + "classes": 3, + "id": [ + "B", + 694 + ], + "moves": 405, + "sha256": "afb3087d93d3eef6763842399d0a82b1ff5b59f9db55b56ddafab4a3665a79fc" + }, + { + "classes": 2, + "id": [ + "B", + 695 + ], + "moves": 361, + "sha256": "3884a77e246470cf06deb544111aee47e286d87facf81988a3485618f246715a" + }, + { + "classes": 4, + "id": [ + "B", + 696 + ], + "moves": 584, + "sha256": "402cedc149cd412a975e06c0254e91789f3417a6f87fe993fe0bbbfc25476e47" + }, + { + "classes": 4, + "id": [ + "B", + 697 + ], + "moves": 585, + "sha256": "045578164eef438d4fae0e8ba912aed75a60e43184fb6d241cb44e0e5a2c32ee" + }, + { + "classes": 2, + "id": [ + "B", + 698 + ], + "moves": 903, + "sha256": "8045df9bf3807fbd34170f04d6296b76cb526421c3bfb1df02506cb8935566b2" + }, + { + "classes": 3, + "id": [ + "B", + 699 + ], + "moves": 357, + "sha256": "ad13d1b6a40ced95e123b3d0a38ea298d8bc85bb48d0fe3e13536e1487458df7" + }, + { + "classes": 3, + "id": [ + "B", + 700 + ], + "moves": 409, + "sha256": "2c35eb8249339411954d57a9f8bb84c67c75d2b1c61ed417710f9b2b04ac74af" + }, + { + "classes": 2, + "id": [ + "B", + 701 + ], + "moves": 365, + "sha256": "8897a65e77aa4ebde137cbeaa127461dece11549b46326c95931b1af3079c823" + }, + { + "classes": 5, + "id": [ + "B", + 702 + ], + "moves": 1025, + "sha256": "d7fb6c1f4bfff2089586da4ba7d1cae0167b9922c07282ed91cf6adf931a8957" + }, + { + "classes": 3, + "id": [ + "B", + 703 + ], + "moves": 410, + "sha256": "dd023d97cdba95773ad32c00ed1f0afd30e32cf49003921eaaa41a6438d564e7" + }, + { + "classes": 3, + "id": [ + "B", + 704 + ], + "moves": 587, + "sha256": "a60415e03c28d6571ee3dc8b02a74a36c42d3f97dc8d2f88cf730235efcf1bba" + }, + { + "classes": 3, + "id": [ + "B", + 705 + ], + "moves": 901, + "sha256": "7e9d72da22ffef4d3f5af1bebb8c6c50b3bc055f5011fe381937007a9d109ea5" + }, + { + "classes": 3, + "id": [ + "B", + 706 + ], + "moves": 407, + "sha256": "b5d2acca816b2e20f7184dc1b85dd42c27cde5c2e650baf49676869ca0909c3b" + }, + { + "classes": 2, + "id": [ + "B", + 707 + ], + "moves": 368, + "sha256": "3f0fd65183d1e9b481f247f338532dc22d94e7271d6b214e0a7ea9d6da59fba1" + }, + { + "classes": 4, + "id": [ + "B", + 708 + ], + "moves": 1574, + "sha256": "179343caccc5b2db2fec1a1bef88d15da1037bb194f9f02be75568eacb6852fc" + }, + { + "classes": 3, + "id": [ + "B", + 709 + ], + "moves": 398, + "sha256": "6585ecdbc31fb68fead28423faf165eccdbac2aeafe1a089fab461ade6da5f7d" + }, + { + "classes": 2, + "id": [ + "B", + 710 + ], + "moves": 406, + "sha256": "0ffa6cf973bc38c5eda6fae8bb36d44ffc9063c981605d95dbf87610162b2e17" + }, + { + "classes": 4, + "id": [ + "B", + 711 + ], + "moves": 1575, + "sha256": "01c09aff55cf859ebe2bc7bf31e239e300b3b952660ab75f5c5213be4cd34a1b" + }, + { + "classes": 4, + "id": [ + "B", + 712 + ], + "moves": 590, + "sha256": "f89a8d90e9dbab5449b9e48ec361769a8827b22a6bda5e267ecfdad342ef11cd" + }, + { + "classes": 2, + "id": [ + "B", + 713 + ], + "moves": 898, + "sha256": "497cc4f4e11c7d95f2f1bae7bf92d33ecde37554f94d525f99cc8b2d24c05e97" + }, + { + "classes": 3, + "id": [ + "B", + 714 + ], + "moves": 356, + "sha256": "d9710e7640c81e6a75da23df54d51b47288f87ed7afc77f3f672f3f16e621315" + }, + { + "classes": 3, + "id": [ + "B", + 715 + ], + "moves": 409, + "sha256": "16b4dcfe096bba0b25ad78ee2feab40adebc2160267c5c3acad73f65ff3b1286" + }, + { + "classes": 2, + "id": [ + "B", + 716 + ], + "moves": 404, + "sha256": "0e16a7b1fec6ffd49fbd945342574fa9b34cdbeb183d9afd54f3b086273ffd3c" + }, + { + "classes": 4, + "id": [ + "B", + 717 + ], + "moves": 1577, + "sha256": "38c0ebb7290576096fa3f60a07fed75075916941b8fb730071987b3036543b68" + }, + { + "classes": 5, + "id": [ + "B", + 718 + ], + "moves": 1082, + "sha256": "97b7043cf3ec8843b34c6277eb947b20a7c15b511b2305edc6ba9dda30bb45df" + }, + { + "classes": 2, + "id": [ + "B", + 719 + ], + "moves": 896, + "sha256": "84c8991718ddc600e9fde4f8f4823e8a5969a040b18454deaade6b8fc5efaf36" + }, + { + "classes": 3, + "id": [ + "B", + 720 + ], + "moves": 403, + "sha256": "5b84f120535ad4119ce2dd85d3564a7e2c5db1727f0ec7b601ee0f75f1d29b7a" + }, + { + "classes": 3, + "id": [ + "B", + 721 + ], + "moves": 402, + "sha256": "db212fe686d96597a0b5d26f0a3888fd48d93259fa5466f3235d8cf143635657" + }, + { + "classes": 2, + "id": [ + "B", + 722 + ], + "moves": 895, + "sha256": "60951de2b0f03a964179ca4a3611e4e15427d196115479d52c9b29c0c25f153d" + }, + { + "classes": 5, + "id": [ + "B", + 723 + ], + "moves": 1048, + "sha256": "5ce31a401f98ce54dca5bd5e88bb9723a2a8d05220e3478a2e562a1e2625aea4" + }, + { + "classes": 4, + "id": [ + "B", + 724 + ], + "moves": 594, + "sha256": "fd78d8c39793c191f277abeb5513aaa0d0e326188882a7bd4b4a0ef3874cbe1f" + }, + { + "classes": 2, + "id": [ + "B", + 725 + ], + "moves": 894, + "sha256": "f1a1af517f988341f55da026c90681450e1e693a28263d7e346dd2c66f01a3d5" + }, + { + "classes": 3, + "id": [ + "B", + 726 + ], + "moves": 894, + "sha256": "1dca293c031f65ef5d66936f8c3c8016e5db9fb436378d5f13c5fab2beabce66" + }, + { + "classes": 3, + "id": [ + "B", + 727 + ], + "moves": 400, + "sha256": "c2c92729ecea3270471049af8ed197a6541dfc4ad5a03b1081a0f7fb876eda78" + }, + { + "classes": 2, + "id": [ + "B", + 728 + ], + "moves": 893, + "sha256": "7167a637b1d466621eb9e056e8135dd002f64627a36528ddb4d5d3d20e8cc7d5" + }, + { + "classes": 5, + "id": [ + "B", + 729 + ], + "moves": 1051, + "sha256": "71f27e19c69895e82ba9b797bfdcfe8f2e18e3eaa8029dda9b1563ebde0cb7dd" + }, + { + "classes": 3, + "id": [ + "B", + 730 + ], + "moves": 407, + "sha256": "50131da0a657baddf257697f59ddca77a8d200ae07586cf7f14a239942455042" + }, + { + "classes": 2, + "id": [ + "B", + 731 + ], + "moves": 399, + "sha256": "80bc3047474f37387ac4b2fcc01af9b9641a57767b4a308209b39a3eebede0ab" + }, + { + "classes": 4, + "id": [ + "B", + 732 + ], + "moves": 1582, + "sha256": "b42751365af66fe9dd1f0755b94f61df7060bbe44f97c42d954b3269c272bf88" + }, + { + "classes": 3, + "id": [ + "B", + 733 + ], + "moves": 398, + "sha256": "2a1676356845df95e875a0e97548a23407f4f7d9591d4cdd3642ce2744677cf1" + }, + { + "classes": 4, + "id": [ + "B", + 734 + ], + "moves": 1054, + "sha256": "a43bdc79a3bb56f1f783c8ff28b169e9a11f07161c40cdd770504683dde40ac4" + }, + { + "classes": 3, + "id": [ + "B", + 735 + ], + "moves": 891, + "sha256": "90bd1d28d182b38b5a9e2c9812b59993c38845d5023e3040dddb3b43ac1a69c6" + }, + { + "classes": 5, + "id": [ + "B", + 736 + ], + "moves": 1096, + "sha256": "001c93a104fcc493fbcc25d9d156558cef953ea558503082cd1e8940cf84145e" + }, + { + "classes": 2, + "id": [ + "B", + 737 + ], + "moves": 369, + "sha256": "32ad49365012a6834a51e9b1076d6ffb2fd164ae4f22f397e475800e074e1649" + }, + { + "classes": 3, + "id": [ + "B", + 738 + ], + "moves": 397, + "sha256": "b5c7893c5cec1708fe68a10d79eb344309083eb8d10bc171fbbaedd020d9f661" + }, + { + "classes": 4, + "id": [ + "B", + 739 + ], + "moves": 1673, + "sha256": "f17e377e99f8aa8b2df2d94196bc343958008a80a7ba430ae41d34a88f024185" + }, + { + "classes": 3, + "id": [ + "B", + 740 + ], + "moves": 599, + "sha256": "fe590fec6f7484300beaddc8d2803f0bc559cd42f533c3886f6c4f59383f7c8c" + }, + { + "classes": 5, + "id": [ + "B", + 741 + ], + "moves": 1126, + "sha256": "383aec9259bddba6f5da09131c75545220d049cb0a23c136addcb89ad951854a" + }, + { + "classes": 4, + "id": [ + "B", + 742 + ], + "moves": 600, + "sha256": "31dc6b65c2727de208fcf6529e7fdf57d28460dc3517a9a6c7e3b6cd67e7d8ce" + }, + { + "classes": 2, + "id": [ + "B", + 743 + ], + "moves": 390, + "sha256": "62879ea4b784d7284feeaceed2c8804e6a7b4b250787b2472214c84c8eff9c78" + }, + { + "classes": 3, + "id": [ + "B", + 744 + ], + "moves": 889, + "sha256": "473af370cefb487f2df73d8019922a75e196c69eb4fd50d376058f377ac5394d" + }, + { + "classes": 3, + "id": [ + "B", + 745 + ], + "moves": 395, + "sha256": "1cacd45a35c52ac937486e64fecac13d06a75ff69c27f08904441b8850e97cb4" + }, + { + "classes": 3, + "id": [ + "B", + 746 + ], + "moves": 1589, + "sha256": "c4dff007027264090adebfaa836d00e3d4a27ea0f7e74d1c1130357396f38263" + }, + { + "classes": 3, + "id": [ + "B", + 747 + ], + "moves": 394, + "sha256": "36a0653b29483386c2db61f5c28f2406c4bd615c9960696497d12a1afcc5d21e" + }, + { + "classes": 3, + "id": [ + "B", + 748 + ], + "moves": 887, + "sha256": "3e99a6eea52e3f374f676ee0d0fdaffe4357d9b6c64edb277f9a4e5de6b1d06f" + }, + { + "classes": 2, + "id": [ + "B", + 749 + ], + "moves": 393, + "sha256": "d67b640e366fe1acf7851e17bb10821ddb2b7e601cbf56549333ad24475a70d7" + }, + { + "classes": 4, + "id": [ + "B", + 750 + ], + "moves": 1590, + "sha256": "94762d036219b6c2af8c3a5b70d47d5393ae10e76fe4a77950bd4cb7246f5b39" + }, + { + "classes": 4, + "id": [ + "B", + 751 + ], + "moves": 1591, + "sha256": "62d4be66c30865d6480e4dfa06a60b5fd52c2a068c173d5ec7076ced58e1af2c" + }, + { + "classes": 2, + "id": [ + "B", + 752 + ], + "moves": 392, + "sha256": "84cabac45c66e0d67b61546e5867c915a754a813e93c514446fb00cc98c1cdf9" + }, + { + "classes": 5, + "id": [ + "B", + 753 + ], + "moves": 1080, + "sha256": "9967893e6e19ec31a840b9a90b24996c610b2d2f65c57e64a92a5b53a92696a3" + }, + { + "classes": 4, + "id": [ + "B", + 754 + ], + "moves": 604, + "sha256": "e62f56705da8d97edd0b5c9a43d3a2e9edd64b57f6e78afa703b310069827046" + }, + { + "classes": 2, + "id": [ + "B", + 755 + ], + "moves": 885, + "sha256": "abd1d8900c67a11a6dc5e9b8b7892b4f6d9e4b4f3d8908c054b8d1477ed6d5f5" + }, + { + "classes": 3, + "id": [ + "B", + 756 + ], + "moves": 885, + "sha256": "4fe5166f984b04258163e915abfcdeb462d93520cf9614206d93f3e7a6855e43" + }, + { + "classes": 3, + "id": [ + "B", + 757 + ], + "moves": 390, + "sha256": "47c287b1da24cfab6220ea8a367057ef6a931deb5c4f5ba0fd2e270237a9d59b" + }, + { + "classes": 2, + "id": [ + "B", + 758 + ], + "moves": 884, + "sha256": "277794462310d9d8f3e98232bca28503608214fd6d2b20de9a3996c91c06513f" + }, + { + "classes": 5, + "id": [ + "B", + 759 + ], + "moves": 1093, + "sha256": "da89aa843ff9b443ce1ad494aadb3f267785d748ad15c9009b8b0478edefebf3" + }, + { + "classes": 3, + "id": [ + "B", + 760 + ], + "moves": 883, + "sha256": "c25e79a1fa44b2f11b3487757a3464eda306dafb7444d279d39b9b106d2eb1d0" + }, + { + "classes": 2, + "id": [ + "B", + 761 + ], + "moves": 389, + "sha256": "ab897246ae6b7a1208aa0a53c109ee50abe34514ec4873e658308ff2cd246d99" + }, + { + "classes": 5, + "id": [ + "B", + 762 + ], + "moves": 1083, + "sha256": "8d651e7f2eff1826e7631a65f6a4c0ae0c9ca2881a6ae54c827d9291eb445890" + }, + { + "classes": 3, + "id": [ + "B", + 763 + ], + "moves": 396, + "sha256": "e6c7f10aebbb539c2807f8f04c082e73d0d732777197fb88f1f324ef50080b7a" + }, + { + "classes": 3, + "id": [ + "B", + 764 + ], + "moves": 1595, + "sha256": "5b10fd7299f323963b3ca37922a6afe7ec69a032b24a3ed7365fec8ca6ae90e3" + }, + { + "classes": 4, + "id": [ + "B", + 765 + ], + "moves": 607, + "sha256": "7e603c48065f74865c58693d9186d4c7efa19a989ee5b5859963d6345c465683" + }, + { + "classes": 3, + "id": [ + "B", + 766 + ], + "moves": 391, + "sha256": "29921baa942788730a4ea87d110fdcfcc01b38703eed8a6cd4e157c413feca9c" + }, + { + "classes": 3, + "id": [ + "B", + 767 + ], + "moves": 608, + "sha256": "c4d24e71ea63c756cbddf0d00f6c82cc2f6b5257b20b0c34597d0e5eef5efb7d" + }, + { + "classes": 3, + "id": [ + "B", + 768 + ], + "moves": 371, + "sha256": "d25ead96b30dbe092137b624c374a90fd9208c6d3f9eb417ad3304b001da8b02" + }, + { + "classes": 4, + "id": [ + "B", + 769 + ], + "moves": 609, + "sha256": "4a5c04d62c0bf02efe47ac9c802c71431635e89eafd9b986de305bd4d92d4d85" + }, + { + "classes": 3, + "id": [ + "B", + 770 + ], + "moves": 1597, + "sha256": "f0023e1d82a2daec019e8ae3d8977c1db3926b978acbb2d840165ecc722cad2b" + }, + { + "classes": 3, + "id": [ + "B", + 771 + ], + "moves": 388, + "sha256": "f03cae44ec418ed0429b48240e23273967680a3239e2b76bcbb2c3a5cdb46ee6" + }, + { + "classes": 4, + "id": [ + "B", + 772 + ], + "moves": 1598, + "sha256": "a54bd0836774743d8568caa1c44a15aa41a40c67fb1509e460db01753ecb8fa3" + }, + { + "classes": 2, + "id": [ + "B", + 773 + ], + "moves": 385, + "sha256": "53903ba13ee507a73922fdfc0304a82e941990092b27b1fa8fc573fa07561598" + }, + { + "classes": 5, + "id": [ + "B", + 774 + ], + "moves": 1095, + "sha256": "4917c756050772800bd53bb945a6762ab5b2e884561e34f16ada2bf838cd8953" + }, + { + "classes": 3, + "id": [ + "B", + 775 + ], + "moves": 878, + "sha256": "da89a358cd501f6922c9a62508285b62da8d530b0a8ec59f740b11570cf5c932" + }, + { + "classes": 4, + "id": [ + "B", + 776 + ], + "moves": 1115, + "sha256": "912d893b1bb10d011d1303369dd574db20599bca620697a9addfdf4e34e18620" + }, + { + "classes": 3, + "id": [ + "B", + 777 + ], + "moves": 384, + "sha256": "33ab4c43d81165527487487a8e8c224a847eebc16c27215c09a65762115de8b7" + }, + { + "classes": 5, + "id": [ + "B", + 778 + ], + "moves": 1116, + "sha256": "99b463e5eeb93e66d679e325ab89dd14ab6c263353207265bf8cc614d151fd3a" + }, + { + "classes": 2, + "id": [ + "B", + 779 + ], + "moves": 389, + "sha256": "9f3546e6fb7c379f98609a06664a6ca934fdad1f6a5c667c0cee0e50282bb18b" + }, + { + "classes": 3, + "id": [ + "B", + 780 + ], + "moves": 383, + "sha256": "70170bc4d2b01a4be5678714ad19c37b78df2bd3ba2d017f2cd3d9ce90e4ec93" + }, + { + "classes": 5, + "id": [ + "B", + 781 + ], + "moves": 1174, + "sha256": "c67120eb82b13310b677c2db59b1b7e439d45b75c01619882b0f045c1e3e3835" + }, + { + "classes": 3, + "id": [ + "B", + 782 + ], + "moves": 1715, + "sha256": "5494853ba3482d8f9594198397fee91bc9ac925dbbbefceae9caeabcd3155776" + }, + { + "classes": 4, + "id": [ + "B", + 783 + ], + "moves": 613, + "sha256": "4e96c9c4f2698ba213d0fc198c3436f3f151d4da034872b235bf6f9f74fda1e3" + }, + { + "classes": 4, + "id": [ + "B", + 784 + ], + "moves": 614, + "sha256": "551665b8a01b57e8443e967f63695065a4ce6f4159900568c091e5f0a5593d48" + }, + { + "classes": 3, + "id": [ + "B", + 785 + ], + "moves": 1718, + "sha256": "330685afe47f1b38c4b8a9dcbad2f30da56cc8cce0f3e3ed07f466e9a3652931" + }, + { + "classes": 5, + "id": [ + "B", + 786 + ], + "moves": 1159, + "sha256": "cdf04cfe64fea9b45435d4344e051dc926baf437eacaeec2047b0fbfcd0d6f6e" + }, + { + "classes": 4, + "id": [ + "B", + 787 + ], + "moves": 1607, + "sha256": "744464bcb791eae853a4a7f01052cec6c5cd3b6c16f82f2f10a5b86b690859bd" + }, + { + "classes": 4, + "id": [ + "B", + 788 + ], + "moves": 1104, + "sha256": "04e81a2e14eb1fa49eb10327d63ec70cfb38bbcea0504f8c5f687209bf7487e8" + }, + { + "classes": 3, + "id": [ + "B", + 789 + ], + "moves": 380, + "sha256": "d6877d1446af251c68a24cdee56c6d98b9ca561c5a04259d040fd1322bf84ac6" + }, + { + "classes": 3, + "id": [ + "B", + 790 + ], + "moves": 381, + "sha256": "d0d4fb47d84e19260366bcb00a4f0f42ad172850285171c24b17a514c6e03b8d" + }, + { + "classes": 3, + "id": [ + "B", + 791 + ], + "moves": 1608, + "sha256": "f91878664ccf3090a2ba7772007dcf8a50e0e246db9f14f87cc76e7c6a5303bd" + }, + { + "classes": 4, + "id": [ + "B", + 792 + ], + "moves": 616, + "sha256": "08199dbafdfcb8bc02bda7c55906e12439b25245ebf8e0407a242875a8422114" + }, + { + "classes": 4, + "id": [ + "B", + 793 + ], + "moves": 1609, + "sha256": "f79f80fea24d90c5d9058fd612780981a77f6b9f6f896613a19a4f4322b899af" + }, + { + "classes": 2, + "id": [ + "B", + 794 + ], + "moves": 387, + "sha256": "360614190340f6c189ff30a9024bc83d9acd318637ff1f9cfc54c118796fd744" + }, + { + "classes": 3, + "id": [ + "B", + 795 + ], + "moves": 378, + "sha256": "1540a03514117b9fd6a7e731f5c95797a9e08e26036bfdd4a7e0cc0e28866bb5" + }, + { + "classes": 4, + "id": [ + "B", + 796 + ], + "moves": 1610, + "sha256": "8e0852310992ae0310ae066252253ee25cdd29cd56dc258af276db783eab1d66" + }, + { + "classes": 4, + "id": [ + "B", + 797 + ], + "moves": 1122, + "sha256": "9ad67667f2e8f539decd9ee6cbcc2da98e0e8c7d0d6535d1103c98fe48d52325" + }, + { + "classes": 3, + "id": [ + "B", + 798 + ], + "moves": 377, + "sha256": "bb810bd78421cbefec9ede23ca3385cc4178271e5df1261c98907e7fdb6123a0" + }, + { + "classes": 4, + "id": [ + "B", + 799 + ], + "moves": 1733, + "sha256": "5968ac3c0502a083e29153248515e80827a888dfc0b17cdd7433e382bcd037d0" + }, + { + "classes": 3, + "id": [ + "B", + 800 + ], + "moves": 619, + "sha256": "d346f57ad805e2ac919e44a62ffb98cc100d93a3e1abc921d306d9b95add193a" + }, + { + "classes": 5, + "id": [ + "B", + 801 + ], + "moves": 1177, + "sha256": "027894a04c3c770e1ccc92cfaf5e6f6ea9f18e1dd5f09c26062163c9bdb8bb14" + }, + { + "classes": 3, + "id": [ + "B", + 802 + ], + "moves": 375, + "sha256": "841b085b8f660b578a247101a95807c901804f3666ca29e164f9afb18f6b3bfa" + }, + { + "classes": 3, + "id": [ + "B", + 803 + ], + "moves": 1614, + "sha256": "e8261e4630a1da13bd5b73baca2be6651729152a166e0d4ca19bb3014c1d65d7" + }, + { + "classes": 5, + "id": [ + "B", + 804 + ], + "moves": 1124, + "sha256": "62cbc7badb3bd549067b6f88c48103a597c0ab0cee8ea539a6ecc5954fdbbf46" + }, + { + "classes": 3, + "id": [ + "B", + 805 + ], + "moves": 374, + "sha256": "e6bc6b03e29d8dd75d77cc9855e298fa4e467d21142f7b752d61040f38a70fd0" + }, + { + "classes": 2, + "id": [ + "B", + 806 + ], + "moves": 379, + "sha256": "cb930dbcfe6d12f0fdf5f5ab260122d4ba179753eb0ae0e17d49e6fdfa57d6ca" + }, + { + "classes": 4, + "id": [ + "B", + 807 + ], + "moves": 1615, + "sha256": "820de1898a189451c1ce063d22d247a977ca3eaee73aa6f609b462e39b53aa81" + }, + { + "classes": 4, + "id": [ + "B", + 808 + ], + "moves": 1616, + "sha256": "742640457174133d9add5ccb7b2a97a922a45849076c0669dbbc15b82d48fe17" + }, + { + "classes": 2, + "id": [ + "B", + 809 + ], + "moves": 373, + "sha256": "82559ead0cb087cee40fb655f906453440ae371582acc082c208480cfc0e95fc" + }, + { + "classes": 3, + "id": [ + "B", + 810 + ], + "moves": 370, + "sha256": "b1cf20accbeab9ded9daa811e6580a03a86432eb89ce63f45bde7d4cffddc0bd" + }, + { + "classes": 3, + "id": [ + "B", + 811 + ], + "moves": 869, + "sha256": "56327e8893ca1fbaa5daecea04e91e008608d4979d5fb056e548dd87059a2936" + }, + { + "classes": 2, + "id": [ + "B", + 812 + ], + "moves": 372, + "sha256": "0131adc77d8a3797bb91751b464a188fbfd1392b691c7130e3cf4cdf0693429d" + }, + { + "classes": 5, + "id": [ + "B", + 813 + ], + "moves": 1131, + "sha256": "897829d72eb5ac95a968d1ff6330bccd912bb55c6dc6a89581772c17b1538512" + }, + { + "classes": 4, + "id": [ + "B", + 814 + ], + "moves": 1618, + "sha256": "000a211381390295e7c625736360741fdf82092180b878213263daaa94f4249c" + }, + { + "classes": 2, + "id": [ + "B", + 815 + ], + "moves": 371, + "sha256": "8cda087467ff9c42564f283ece10d0fad8bc505f12e41d7adea76bcfef9e99b9" + }, + { + "classes": 3, + "id": [ + "B", + 816 + ], + "moves": 378, + "sha256": "5e7953cb1c4baa5f8c8b59577c70084229da55ef2fed1b781388a2201fb09021" + }, + { + "classes": 4, + "id": [ + "B", + 817 + ], + "moves": 1751, + "sha256": "29467bb354915ec700a951b68dc7669ede03c54ec95c05779674c529dd909124" + }, + { + "classes": 4, + "id": [ + "B", + 818 + ], + "moves": 1198, + "sha256": "78400d07a8ba1496aa5ed3cd66d6ce9daadf06bbba3af1e6694e7cf858b712f4" + }, + { + "classes": 4, + "id": [ + "B", + 819 + ], + "moves": 625, + "sha256": "773f17baa8bd85c3bf3f8666ea5bc5352f69e1f37f46b077e6ca4b4b7b84ce9b" + }, + { + "classes": 4, + "id": [ + "B", + 820 + ], + "moves": 1622, + "sha256": "5d12a8bf8ad892842c9e882dd2b6d6782153a23a7812aca9a5952ee90a14ff2c" + }, + { + "classes": 2, + "id": [ + "B", + 821 + ], + "moves": 369, + "sha256": "b45ef5c8140f316e435d948bd143457bf85c731ddbe7a66521f97c4bbb39b8de" + }, + { + "classes": 3, + "id": [ + "B", + 822 + ], + "moves": 867, + "sha256": "ede886ca27fd4aa1e1e40489e42199e24ebc9d2d1638708c34b2b5b0175424fc" + }, + { + "classes": 4, + "id": [ + "B", + 823 + ], + "moves": 627, + "sha256": "6790bbc11095f11b5e973a17b840e2edfa1a472bf3e17c41c3fc512bb86fa562" + }, + { + "classes": 4, + "id": [ + "B", + 824 + ], + "moves": 1223, + "sha256": "4adfb7446d538ab9e1a08811ddf821c91c79e48804275346cf82b196ce50ea2a" + }, + { + "classes": 4, + "id": [ + "B", + 825 + ], + "moves": 1757, + "sha256": "f8b3cd205bc9f0f90e9de120daebe3f382c9945ec29ca0de070a0ece13e73eb5" + }, + { + "classes": 5, + "id": [ + "B", + 826 + ], + "moves": 1172, + "sha256": "198a4257d1c5b48934112cb40abab340ffdda1bb1b5626154f65845f9d7a6394" + }, + { + "classes": 2, + "id": [ + "B", + 827 + ], + "moves": 866, + "sha256": "7b46ed1fcbe52702a81bb126c1f9eb05d4bf3a62be2fdaf13bab85fbebd75cfd" + }, + { + "classes": 3, + "id": [ + "B", + 828 + ], + "moves": 367, + "sha256": "9486f991314af6d9132124bac95ba7f198c7a1e1c084aeab110a0d3322fcd9c6" + }, + { + "classes": 3, + "id": [ + "B", + 829 + ], + "moves": 865, + "sha256": "70a556261d91c1502f3eb611d506545d4f6b5e00ac7c4d9e71fcd4f276007e54" + }, + { + "classes": 2, + "id": [ + "B", + 830 + ], + "moves": 865, + "sha256": "6a9dbbaf4378ae9b2ffc21d03a911f98a8458a8812f1f4548c31d99029e81045" + }, + { + "classes": 4, + "id": [ + "B", + 831 + ], + "moves": 629, + "sha256": "c9d992ee4c4b5480915dfa759e703551c34df03d57cf28b5b46ab729b33b6dac" + }, + { + "classes": 4, + "id": [ + "B", + 832 + ], + "moves": 630, + "sha256": "ae46b7b371d9c854d176e5c947908e729749d7c842db582f5f5660ee43c141e3" + }, + { + "classes": 2, + "id": [ + "B", + 833 + ], + "moves": 404, + "sha256": "ebe3e70f017772b8f805a050c33feecdf5aaa1ae0139c7a895cce471011d8064" + }, + { + "classes": 3, + "id": [ + "B", + 834 + ], + "moves": 864, + "sha256": "b7df0bd3ffe817ce4ec25f1aa608b1c60f38c6619cf260d495899b0e54ce3903" + }, + { + "classes": 3, + "id": [ + "B", + 835 + ], + "moves": 364, + "sha256": "849727ae87c3bf9d6f860db0c68465a0ab438ee26d0381c19d6b9cda18879dae" + }, + { + "classes": 2, + "id": [ + "B", + 836 + ], + "moves": 397, + "sha256": "b050c885112157e8c1b76145b9537334aab1b317dbae4c97a92fe6907d128df8" + }, + { + "classes": 4, + "id": [ + "B", + 837 + ], + "moves": 1629, + "sha256": "3e07d8961e6a2ffd3f9c05cb54b7134124f9079aefa93815e89f0d41eaaab844" + }, + { + "classes": 5, + "id": [ + "B", + 838 + ], + "moves": 1171, + "sha256": "30db65e6c08dc613291fb14a6414788f1ec762195d0cb035c8c7d7a1f147a7e2" + }, + { + "classes": 2, + "id": [ + "B", + 839 + ], + "moves": 363, + "sha256": "1be926b4893dae295e700ec6728a35b041effd88a6421f33a9655a1f94b60153" + }, + { + "classes": 3, + "id": [ + "B", + 840 + ], + "moves": 366, + "sha256": "db1bc7cfdb593f4b6582ae99deefe90d11f84a4bcaf7e5e37b13a4fa94719553" + }, + { + "classes": 5, + "id": [ + "B", + 841 + ], + "moves": 1176, + "sha256": "539a80d343947004263b1c9eda65940f013aee0faef7868d9da1d796c7698b41" + }, + { + "classes": 2, + "id": [ + "B", + 842 + ], + "moves": 362, + "sha256": "23986969497d953adb77dfaedd08ca6e27416666c786e83702d1f7fb21d2f1b4" + }, + { + "classes": 3, + "id": [ + "B", + 843 + ], + "moves": 358, + "sha256": "222327e70d09b94465e50eaf912680efeac5193c251350eb199fd4cfe5220046" + }, + { + "classes": 3, + "id": [ + "B", + 844 + ], + "moves": 361, + "sha256": "4121806985cc3ea084528d7ca6fc43c5ddafbc675da0f014be946c93a1ad02f7" + }, + { + "classes": 3, + "id": [ + "B", + 845 + ], + "moves": 1632, + "sha256": "1c19f2629cdcbfc64db2078c063decd17278428893e4bf37a11c08dc2b363221" + }, + { + "classes": 3, + "id": [ + "B", + 846 + ], + "moves": 860, + "sha256": "152783ae5aea3f2d33d0c970d3167d741081c10d4b05c3924d898bbca83f1679" + }, + { + "classes": 3, + "id": [ + "B", + 847 + ], + "moves": 360, + "sha256": "3c998d7e67d4e4762ddf07f62aaba26850bc6953aa1b0bf9cb386092c817bb6c" + }, + { + "classes": 2, + "id": [ + "B", + 848 + ], + "moves": 859, + "sha256": "b19eba95a0c9e4f378f738929c9470ac48398d13055fe7d2667baf7deacc0d10" + }, + { + "classes": 5, + "id": [ + "B", + 849 + ], + "moves": 1141, + "sha256": "4cb323c1d9350fda042bd746dd4b5afa33671dd5416b046cbb0dec8edcd72036" + }, + { + "classes": 4, + "id": [ + "B", + 850 + ], + "moves": 1634, + "sha256": "e036d81d9c0519f3bfac1812c9746f581a313cb9ac396130a10eb90e0293bd73" + }, + { + "classes": 2, + "id": [ + "B", + 851 + ], + "moves": 408, + "sha256": "2b726b0cf8a23543ce95c7e8f25ca8f6eacbdda1ca395c720ccb066d67307954" + }, + { + "classes": 3, + "id": [ + "B", + 852 + ], + "moves": 359, + "sha256": "b7b017052baf90631695e957e3086b2e485521f12250cca4b21c2a5fb5171324" + }, + { + "classes": 3, + "id": [ + "B", + 853 + ], + "moves": 857, + "sha256": "99ee98f2e70e818645c1b2f6a4e0a73a5271d5e2eb8be67de0c46728b5f68cdf" + }, + { + "classes": 2, + "id": [ + "B", + 854 + ], + "moves": 857, + "sha256": "e0af3832403d4bccafd62b5002e64690de5afe089973fddda7926a1c7e9aa4b1" + }, + { + "classes": 4, + "id": [ + "B", + 855 + ], + "moves": 637, + "sha256": "08f3d0ff206acbc3013661e4a0a6caaede58bf6d12597eb236e0ea2411c81a95" + }, + { + "classes": 3, + "id": [ + "B", + 856 + ], + "moves": 357, + "sha256": "dcc507e0ecf50489522bdb10ffe947a89930a7b7d08f86d3db8ce8ebbc41fc08" + }, + { + "classes": 3, + "id": [ + "B", + 857 + ], + "moves": 1636, + "sha256": "6e431c4159b2381e2edc6cd7b63edbff2415954d253a3aa8531f449bcbb29b0c" + }, + { + "classes": 3, + "id": [ + "B", + 858 + ], + "moves": 359, + "sha256": "f9d5ed00032cecd793bf9bb1fac1a47bd04e019ca4bfdad93f376b226e4617ab" + }, + { + "classes": 3, + "id": [ + "B", + 859 + ], + "moves": 411, + "sha256": "2844ba4b45ad62eca3e6e774302de13e8f7ad23de4fa645a4e0001eb1b3ab837" + }, + { + "classes": 2, + "id": [ + "B", + 860 + ], + "moves": 356, + "sha256": "c30bd64903ac5affd07cea7160024a29c01362273298a6690ce950a6d3dcd229" + }, + { + "classes": 4, + "id": [ + "B", + 861 + ], + "moves": 1637, + "sha256": "b16bf3b023e0b5d22a8815cc329f0a8e1fd90b13cce57ea7d2402041897829c6" + }, + { + "classes": 3, + "id": [ + "B", + 862 + ], + "moves": 355, + "sha256": "397b0804d3af7690313f62ba23b67984edbbe104e37c61db99e7b359bea8d37c" + }, + { + "classes": 2, + "id": [ + "B", + 863 + ], + "moves": 854, + "sha256": "1927dbab521b4508ae57bbe3699be5aa7666b7afff51acbc5aaf4e2156f0e57d" + }, + { + "classes": 4, + "id": [ + "B", + 864 + ], + "moves": 1638, + "sha256": "f87918c4414873755aa423efff9f48b68db2e068334971490052e28891293084" + }, + { + "classes": 3, + "id": [ + "B", + 865 + ], + "moves": 853, + "sha256": "dde4a8bd55e64da1d90840ef550f518a1cd360855cd3de665e8e13ee52501851" + }, + { + "classes": 2, + "id": [ + "B", + 866 + ], + "moves": 853, + "sha256": "570b5f5e60d90f1ac4557bc13ff7141acbc9dd799f00a04e87e9ebbfcb6bf281" + }, + { + "classes": 4, + "id": [ + "B", + 867 + ], + "moves": 641, + "sha256": "b0be36ec47a53d4a7d96cb2a41673700afd6ee1df80cecccebd06df8d53cf48a" + }, + { + "classes": 5, + "id": [ + "B", + 868 + ], + "moves": 1211, + "sha256": "b9d685219465c463a9fe3c420860e2a51caa1538dcbc2df462e6023eeb8d0754" + }, + { + "classes": 2, + "id": [ + "B", + 869 + ], + "moves": 353, + "sha256": "ae3f58cbef854259cbb8af31b29f4d1db05cf30651cc382b682aefe7e37062e0" + }, + { + "classes": 3, + "id": [ + "B", + 870 + ], + "moves": 345, + "sha256": "bf3206eac27d831dfcd0dfb525a71be99afcb4a72bd7c76628e1c0974083fadb" + }, + { + "classes": 5, + "id": [ + "B", + 871 + ], + "moves": 1218, + "sha256": "ae27d1332eb92a1db3f7a23dd04149164abd4d1677a54956190a000671c66167" + }, + { + "classes": 2, + "id": [ + "B", + 872 + ], + "moves": 352, + "sha256": "b05c10e14b9177574a8ff0bdbcb5a634d8b783890bcce37a59195063d1c0dbd8" + }, + { + "classes": 3, + "id": [ + "B", + 873 + ], + "moves": 851, + "sha256": "2fbceaad457f810c186d3058ffeb2cebcec622eb3a97a754f3506fd78740cef2" + }, + { + "classes": 3, + "id": [ + "B", + 874 + ], + "moves": 427, + "sha256": "ffec1a7aafb5978e848c66696fcc7aa78581565c2cfc9ad8369a9c65bb8a2e3c" + }, + { + "classes": 2, + "id": [ + "B", + 875 + ], + "moves": 351, + "sha256": "bc7706aa54911b696d4d9d2fcd48eb14cb77045701c5890dc0b91bdfb225b2c1" + }, + { + "classes": 4, + "id": [ + "B", + 876 + ], + "moves": 1642, + "sha256": "96167234911c7e6a8336acdc17bc8806b96943da38c6ad50b905efbaa7c942fc" + }, + { + "classes": 3, + "id": [ + "B", + 877 + ], + "moves": 350, + "sha256": "5ee9789e02e6e42bcff6185fdd8f9650795ddf9b8c58d666eddb5275361453e2" + }, + { + "classes": 2, + "id": [ + "B", + 878 + ], + "moves": 420, + "sha256": "0a6fb9ef9d9e6a36711c2d35d8c3110ba1026dfa59545b3c55c0e853eecc140f" + }, + { + "classes": 4, + "id": [ + "B", + 879 + ], + "moves": 1643, + "sha256": "68212f5dddd556cf7fca518693e3d176699f320789d044b912ae99392ad5bbae" + }, + { + "classes": 3, + "id": [ + "B", + 880 + ], + "moves": 426, + "sha256": "5aba6787b1197207644339533aad8241f6480512ac69fcd467aea787800fcaf8" + }, + { + "classes": 3, + "id": [ + "B", + 881 + ], + "moves": 646, + "sha256": "440aaac395ad9a0a96d7ea06cb5485ccbe30aecec2d01d07083cf639158b9e17" + }, + { + "classes": 3, + "id": [ + "B", + 882 + ], + "moves": 354, + "sha256": "dea4198820af6447b62ffd0306f01e385effdb9f63eade55f690a0795b991e6b" + }, + { + "classes": 3, + "id": [ + "B", + 883 + ], + "moves": 847, + "sha256": "6d879bea48c6087012726822a7e2c59ec7efcae91fb073b8fe809e0dbde7b947" + }, + { + "classes": 3, + "id": [ + "B", + 884 + ], + "moves": 1645, + "sha256": "da147c9be37fb2f5bdc8b9ca68b93efeeb88336f29ed7aa03ec5746470f4e689" + }, + { + "classes": 3, + "id": [ + "B", + 885 + ], + "moves": 348, + "sha256": "58b2491c7c5554d96a3440c31f8494aad7bfa9cb1b8e3a8c00448820dbea96f3" + }, + { + "classes": 3, + "id": [ + "B", + 886 + ], + "moves": 846, + "sha256": "6078f127ee63bd95629a0094b24337f2a510b5903b50063c3f695935f5ac9edd" + }, + { + "classes": 2, + "id": [ + "B", + 887 + ], + "moves": 347, + "sha256": "798b182ea8314e495a456ccd2f6dc2a903be9fc45228aa1e2141485955abb5b5" + }, + { + "classes": 4, + "id": [ + "B", + 888 + ], + "moves": 1646, + "sha256": "11fb52eb7e526fa14f8b1db776fae81ccfc2bff853f068730026e90e7595052f" + }, + { + "classes": 4, + "id": [ + "B", + 889 + ], + "moves": 1647, + "sha256": "93c02c0ffbb83b5e10dde9696890f8e9b035bb38560c51ce55d64e281b71606c" + }, + { + "classes": 2, + "id": [ + "B", + 890 + ], + "moves": 346, + "sha256": "a0a39282c00be6bda19f9f4b7fcca417eb6ee29d78e8b8eb41d9ed7dd5885d13" + }, + { + "classes": 3, + "id": [ + "B", + 891 + ], + "moves": 845, + "sha256": "bf741c477cba6c9ac32c01ee3b7d99a909d97d4da2276925c34a93d8379cf1dc" + }, + { + "classes": 3, + "id": [ + "B", + 892 + ], + "moves": 844, + "sha256": "a0e58231b0e3e9ee8d13e3ea310e02b4a07f81265848fe59a9105c25ebf5c1fa" + }, + { + "classes": 2, + "id": [ + "B", + 893 + ], + "moves": 415, + "sha256": "2f9ef315b6f786153f766e86af2fff95fe2dda0e9b3cb3a2307185ab365579c7" + }, + { + "classes": 4, + "id": [ + "B", + 894 + ], + "moves": 650, + "sha256": "d8364f07e8eb2324748470e121d0aad4c2803b0ea95d39e1713c235cf007beba" + }, + { + "classes": 4, + "id": [ + "B", + 895 + ], + "moves": 1649, + "sha256": "1c3778d89f6920d90692c3c8ed6ec7c62cb9bcbbc17f602e1766fe015c42bbfc" + }, + { + "classes": 2, + "id": [ + "B", + 896 + ], + "moves": 344, + "sha256": "3d257dbd18c2b478b24d028e8f117a121d733ba8e5ebdc4bc9f7a5994849c72e" + }, + { + "classes": 3, + "id": [ + "B", + 897 + ], + "moves": 843, + "sha256": "fd20e1d8b4204ef1c9fe935d0f92b9546763953c91abadf42910f9d74d93df94" + }, + { + "classes": 3, + "id": [ + "B", + 898 + ], + "moves": 418, + "sha256": "73c543c4bcb5cdb5b3a7d2c1884ff98e382faa5f05dadc9968d2ddf9b348d529" + }, + { + "classes": 3, + "id": [ + "B", + 899 + ], + "moves": 1650, + "sha256": "332b7a0a6886edfba004dfe5345c4eeddafa283fd49840c580795fd4556c5f47" + }, + { + "classes": 3, + "id": [ + "B", + 900 + ], + "moves": 343, + "sha256": "f51fc7098f99fdb54e84c96df3b4d83602e258193fd5749263afa5a3fcb86948" + }, + { + "classes": 3, + "id": [ + "B", + 901 + ], + "moves": 417, + "sha256": "9509988ec45c4ea6fb26b15f46a720fceb13a5bcf3251e2bc8e769c5d0dfd5c9" + }, + { + "classes": 2, + "id": [ + "B", + 902 + ], + "moves": 342, + "sha256": "72973c48e21fcafc1ee3b16d4f5c7e3b1c2652e72e5c734b7b22963a2e459998" + }, + { + "classes": 4, + "id": [ + "B", + 903 + ], + "moves": 1651, + "sha256": "a93c7c2bfa1b0ca815e57b9e082f8548c1f2a401ed6b203dd47a6970b20d87b2" + }, + { + "classes": 3, + "id": [ + "B", + 904 + ], + "moves": 341, + "sha256": "e914b3932ed51430db8b3807969cc8464586306293e5a1f55893944908535da9" + }, + { + "classes": 4, + "id": [ + "B", + 905 + ], + "moves": 1225, + "sha256": "30555c2316de48c0fbe57791dac892682a2d4c67f07b5e83dcca6cc92e8404a9" + }, + { + "classes": 3, + "id": [ + "B", + 906 + ], + "moves": 343, + "sha256": "0d2a145d240fe73234c5371f1e64da7394b380486969238e6c93d1aa9da6c6e0" + }, + { + "classes": 5, + "id": [ + "B", + 907 + ], + "moves": 1235, + "sha256": "a0fd7189dd58213c99ec0552271f7d8eed54b8e53dc382dd639605da449b07ae" + }, + { + "classes": 2, + "id": [ + "B", + 908 + ], + "moves": 340, + "sha256": "b1d96fd58f85d1b477b3e85ecceca6dde20a116a631ea87b1d53f09aa695a8e2" + }, + { + "classes": 3, + "id": [ + "B", + 909 + ], + "moves": 348, + "sha256": "d230429692df21ca53e0e6798b15f891be622711ed098f12f1a68fb1e7734380" + }, + { + "classes": 3, + "id": [ + "B", + 910 + ], + "moves": 440, + "sha256": "53affa574c101b96e03482f7ab019cc8b93285431481cd5e370a49319853052d" + }, + { + "classes": 2, + "id": [ + "B", + 911 + ], + "moves": 339, + "sha256": "2b9d07626f785bbe6de44eee0df16f37b538d8b5cf1a4bcb1a26fbad3903d1c9" + }, + { + "classes": 4, + "id": [ + "B", + 912 + ], + "moves": 1654, + "sha256": "e6f1fe0c05463e4dfa5014c705669e0cde0072f2a0b019f76dff2ba0b91cd2b6" + }, + { + "classes": 3, + "id": [ + "B", + 913 + ], + "moves": 338, + "sha256": "08bf55dc65fc0f9ac115fd18101a171c2c7c28316999414ee3243bc0af67e399" + }, + { + "classes": 2, + "id": [ + "B", + 914 + ], + "moves": 429, + "sha256": "6642fd6e40df8dc7daff967059918a229b728c42c91e44162215efb0f80cf579" + }, + { + "classes": 4, + "id": [ + "B", + 915 + ], + "moves": 1655, + "sha256": "5d6a8ae7ae853bcc3484ef2d57e15682a5002773356e91c4b5ce71a7d85514f4" + }, + { + "classes": 3, + "id": [ + "B", + 916 + ], + "moves": 337, + "sha256": "08db5fc244b37cf7fc36cd4eeef21cdf7410766953cb9af801ab5b651c4cb109" + }, + { + "classes": 3, + "id": [ + "B", + 917 + ], + "moves": 1656, + "sha256": "bc2c298d8bd8a5886a27ac10db79a6657404778654118fb35a59aad713c0ab5b" + }, + { + "classes": 3, + "id": [ + "B", + 918 + ], + "moves": 332, + "sha256": "7de6ceb0c7105c7ca42e56238fe148eb155c85dd9fa825ee2b6afb3fc22b4201" + }, + { + "classes": 3, + "id": [ + "B", + 919 + ], + "moves": 336, + "sha256": "1e7ecf43ff9c8f60427756b72436044aa0a72e47ac74ce1fa08e7469466cee77" + }, + { + "classes": 2, + "id": [ + "B", + 920 + ], + "moves": 835, + "sha256": "ae564f7696527d2ad878afdf7fd8b07cd07cadd49a23fb10937bba96a84bc8da" + }, + { + "classes": 5, + "id": [ + "B", + 921 + ], + "moves": 1156, + "sha256": "df0756209c6d46099b2144dd0c4d2bb7dce3f43010e96e79af76e6043341a92b" + }, + { + "classes": 3, + "id": [ + "B", + 922 + ], + "moves": 335, + "sha256": "0ac60ccabe959262b85d8834502541e8a916e04055a60f4f64f46129109c2aba" + }, + { + "classes": 3, + "id": [ + "B", + 923 + ], + "moves": 1658, + "sha256": "74de614d36d06a0237997ee672c8bc2943e467d249506ee48d86295bc5678cf5" + }, + { + "classes": 3, + "id": [ + "B", + 924 + ], + "moves": 834, + "sha256": "188a37bc285c31b3d623df9ea6078af56d8f8af4dcaa4291d546d06ce35c4477" + }, + { + "classes": 5, + "id": [ + "B", + 925 + ], + "moves": 1267, + "sha256": "bc36ee7fc45ab82a2024ae26d18c88011de1c2ab9c6c27aba9729d7d3507dc13" + }, + { + "classes": 2, + "id": [ + "B", + 926 + ], + "moves": 833, + "sha256": "d31bf205fa9ee9d6c76b922041dcdbc3ccb2e623c56e61c7d1afef07b1c163bf" + }, + { + "classes": 3, + "id": [ + "B", + 927 + ], + "moves": 334, + "sha256": "c250e90490cd17b4ed9a8d78ed10b634dd64df89b3775c140a5de5605c268c22" + }, + { + "classes": 3, + "id": [ + "B", + 928 + ], + "moves": 333, + "sha256": "1a2068640e8edb8b9035ca47cc5851ac99ea0c74d7f54fb48fe8f5f964bae7f6" + }, + { + "classes": 4, + "id": [ + "B", + 929 + ], + "moves": 1266, + "sha256": "b598720d97e431fb6bc04d73d411e91cecabc6bda6070e16d10c44872a73b3f3" + }, + { + "classes": 3, + "id": [ + "B", + 930 + ], + "moves": 832, + "sha256": "3209e031ae6d56cf5380aa63c08232a763aed3bc358e670282e90963c9df4208" + }, + { + "classes": 4, + "id": [ + "B", + 931 + ], + "moves": 1661, + "sha256": "60df5dd62afe1000a941e7fef6ea4d5a5d6d3e0bfbff1e7cb86ed48c955bed29" + }, + { + "classes": 2, + "id": [ + "B", + 932 + ], + "moves": 430, + "sha256": "92c261262954f5e271af1cd1b5365e72014186fb5dcf2461d63f1813c0663b4a" + }, + { + "classes": 2, + "id": [ + "B", + 933 + ], + "moves": 332, + "sha256": "ab0b20980911c092da1a6f25e0e08f76ee82d83c831491f4bad3f4cf3e2eeca6" + } + ], + "driver_sha256": "9b2ef8aa45278947961a518643d5dbf69df5d9892dcecc114c0ef34b6dee48d1", + "elapsed": 22.02794187469408, + "endpoint_residuals": [ + [ + "-2907416217979608604500792837748872540540494165645547952129160282870741539/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "-1453708108989804302250396418874436270270247082822773976064580141370270027/500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + ], + [ + "1517969526985900562348871216583305390045036225215474546745213775855421043/500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "3035939053971801124697742433166610780090072450430949093490427551841043571/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + ] + ], + "engine": "primary", + "moves": 1452893, + "operations": 3064, + "profile_deltas": [ + { + "delta": {}, + "interval": [ + "0", + "0" + ], + "occurrences": 1227676, + "status": "WORSE_OR_EQUAL" + }, + { + "delta": { + "1": -1, + "2": 1, + "3": -1, + "4": 1, + "5": 1, + "7": -1 + }, + "interval": [ + "3347538133642385048363517339708092461669749877/1000000000000000000000000000000000000000000000000", + "1673769066821192524197661838338114624754216541/500000000000000000000000000000000000000000000000" + ], + "occurrences": 78, + "status": "WORSE_OR_EQUAL" + }, + { + "delta": { + "1": -1, + "2": 1, + "4": 1, + "5": -1 + }, + "interval": [ + "481889594546853772457333938260726911248720043/250000000000000000000000000000000000000000000000", + "1927558378187415089844277021354692505093661607/1000000000000000000000000000000000000000000000000" + ], + "occurrences": 61164, + "status": "WORSE_OR_EQUAL" + }, + { + "delta": { + "1": -1, + "2": 1, + "5": 1, + "6": -1 + }, + "interval": [ + "2275023202596548310759075068871602448335293861/1000000000000000000000000000000000000000000000000", + "227502320259654831077920168765373918086299443/100000000000000000000000000000000000000000000000" + ], + "occurrences": 12175, + "status": "WORSE_OR_EQUAL" + }, + { + "delta": { + "1": -1, + "2": 1, + "6": 1, + "7": -1 + }, + "interval": [ + "128194107404258872137507853365541065066136203/50000000000000000000000000000000000000000000000", + "320485268510647180346979302241509791483872529/125000000000000000000000000000000000000000000000" + ], + "occurrences": 15139, + "status": "WORSE_OR_EQUAL" + }, + { + "delta": { + "1": -1, + "2": 2, + "3": -1 + }, + "interval": [ + "22611554311975606393953372548052824359975061/25000000000000000000000000000000000000000000000", + "452231086239512127882096863844280034936145937/500000000000000000000000000000000000000000000000" + ], + "occurrences": 11537, + "status": "WORSE_OR_EQUAL" + }, + { + "delta": { + "1": -1, + "3": 1, + "4": 1, + "6": -1 + }, + "interval": [ + "82452985207623478620875278102007397294928617/25000000000000000000000000000000000000000000000", + "824529852076234786213637444307993210804597769/250000000000000000000000000000000000000000000000" + ], + "occurrences": 42, + "status": "WORSE_OR_EQUAL" + }, + { + "delta": { + "1": -1, + "4": 2, + "7": -1 + }, + "interval": [ + "1092658584837693970610685740320363083389571809/250000000000000000000000000000000000000000000000", + "1092658584837693970616845549972449120859285797/250000000000000000000000000000000000000000000000" + ], + "occurrences": 1853, + "status": "WORSE_OR_EQUAL" + }, + { + "delta": { + "1": 1, + "2": 1, + "3": -1 + }, + "interval": [ + "1653029621766664703907147022856597178285696937/500000000000000000000000000000000000000000000000", + "3306059243533329407818968241778751118521381861/1000000000000000000000000000000000000000000000000" + ], + "occurrences": 1704, + "status": "WORSE_OR_EQUAL" + }, + { + "delta": { + "1": 1, + "3": 1, + "4": -1 + }, + "interval": [ + "486620536011705732150471215546387264270361509/125000000000000000000000000000000000000000000000", + "3892964288093645857212591158894093867872398973/1000000000000000000000000000000000000000000000000" + ], + "occurrences": 1026, + "status": "WORSE_OR_EQUAL" + }, + { + "delta": { + "1": 2, + "2": -1 + }, + "interval": [ + "2401597071054305152054774514090191048649089987/1000000000000000000000000000000000000000000000000", + "1200798535527152576028079571895540691086195717/500000000000000000000000000000000000000000000000" + ], + "occurrences": 3355, + "status": "WORSE_OR_EQUAL" + }, + { + "delta": { + "1": 2, + "2": 1, + "3": -2, + "4": -1, + "6": 1 + }, + "interval": [ + "3969917614195131479872134240610756676501399/500000000000000000000000000000000000000000000000", + "7939835228390262983957117698455226724237181/1000000000000000000000000000000000000000000000000" + ], + "occurrences": 1652, + "status": "WORSE_OR_EQUAL" + }, + { + "delta": { + "1": 2, + "2": 2, + "3": -2 + }, + "interval": [ + "1653029621766664703907147022856597178285696937/250000000000000000000000000000000000000000000000", + "3306059243533329407818968241778751118521381861/500000000000000000000000000000000000000000000000" + ], + "occurrences": 4602, + "status": "WORSE_OR_EQUAL" + }, + { + "delta": { + "1": 2, + "3": -2, + "4": 1 + }, + "interval": [ + "362938405298797740531572406122036374174277267/200000000000000000000000000000000000000000000000", + "14177281456984286739609164308576906664121717/7812500000000000000000000000000000000000000000" + ], + "occurrences": 1652, + "status": "WORSE_OR_EQUAL" + }, + { + "delta": { + "1": 2, + "3": -1, + "4": -1, + "5": 1 + }, + "interval": [ + "689250432672957158985700827029696092500516857/500000000000000000000000000000000000000000000000", + "689250432672957158994123929517476570001600121/500000000000000000000000000000000000000000000000" + ], + "occurrences": 1715, + "status": "WORSE_OR_EQUAL" + }, + { + "delta": { + "1": 3, + "2": -3, + "3": 1 + }, + "interval": [ + "1497134898575280896290580786401630978776798113/1000000000000000000000000000000000000000000000000", + "748567449287640448149012120934484203886694497/500000000000000000000000000000000000000000000000" + ], + "occurrences": 1648, + "status": "WORSE_OR_EQUAL" + }, + { + "delta": { + "1": 3, + "3": -1 + }, + "interval": [ + "1426914078646908639967613297376068934685946327/250000000000000000000000000000000000000000000000", + "713457039323454319984217844483617770896308981/125000000000000000000000000000000000000000000000" + ], + "occurrences": 83929, + "status": "WORSE_OR_EQUAL" + }, + { + "delta": { + "1": 4, + "2": -2 + }, + "interval": [ + "2401597071054305152054774514090191048649089987/500000000000000000000000000000000000000000000000", + "1200798535527152576028079571895540691086195717/250000000000000000000000000000000000000000000000" + ], + "occurrences": 11905, + "status": "WORSE_OR_EQUAL" + }, + { + "delta": { + "2": 2, + "3": -1, + "5": 1, + "6": -1 + }, + "interval": [ + "1116216489225975543714673822916959360981337547/200000000000000000000000000000000000000000000000", + "5581082446129877718598169929432490299384376291/1000000000000000000000000000000000000000000000000" + ], + "occurrences": 1715, + "status": "WORSE_OR_EQUAL" + }, + { + "delta": { + "2": 2, + "3": -1, + "6": 1, + "7": -1 + }, + "interval": [ + "2934970695809253425282225556512007828947058967/500000000000000000000000000000000000000000000000", + "5869941391618506850594802659710829450392362093/1000000000000000000000000000000000000000000000000" + ], + "occurrences": 5394, + "status": "WORSE_OR_EQUAL" + }, + { + "delta": { + "2": 2, + "4": -1 + }, + "interval": [ + "1199356615143167528241298548164469379247145263/250000000000000000000000000000000000000000000000", + "4797426460572670112973495320217987509318004307/1000000000000000000000000000000000000000000000000" + ], + "occurrences": 2903, + "status": "WORSE_OR_EQUAL" + }, + { + "delta": { + "3": -1, + "4": 1, + "6": 1, + "7": -1 + }, + "interval": [ + "1072514931045836737593725052207808815622716521/1000000000000000000000000000000000000000000000000", + "1072514931045836737626839207651171266357178147/1000000000000000000000000000000000000000000000000" + ], + "occurrences": 29, + "status": "WORSE_OR_EQUAL" + } + ], + "reference_bracket": [ + "1733427039589844234749/1000000000000000000000000", + "6933708158359376939/4000000000000000000000" + ], + "source_inventory": 36, + "strictly_worse": 225217, + "ties": 1227676 +} diff --git a/research/pr1048-complete-feasibility/singles.py b/research/pr1048-complete-feasibility/singles.py new file mode 100644 index 0000000000..c98e854651 --- /dev/null +++ b/research/pr1048-complete-feasibility/singles.py @@ -0,0 +1,103 @@ +"""Complete frozen-word single-transport census using either existing engine. + +Brian Ross with substantial OpenAI Codex assistance. Apache-2.0. +No new search framework: this calls the two previously reviewed enumerators. +Frame/touch caching is valid for a final profile, never for continuation. +""" +import argparse +from collections import Counter +from fractions import Fraction +import gzip +import hashlib +import importlib.util +import json +from pathlib import Path +import time + +HERE = Path(__file__).resolve().parent +PREVIOUS = HERE.parent / 'pr1048-certified-repair' + + +def load(name): + spec = importlib.util.spec_from_file_location('complete_' + name, PREVIOUS / (name + '.py')) + module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + return module + + +def run(engine): + start = time.monotonic() + independent = load('independent') + inventory = independent.audit_inventory(json.loads((PREVIOUS / 'SOURCE-PINS.json').read_text())) + endpoints = [independent.residual(independent.BASE, x) for x in (independent.LOW, independent.HIGH)] + independent.require(endpoints[0][1] < 0 < endpoints[1][0], 'reference root signs') + if engine == 'primary': + coverage = load('coverage') + word = json.loads(gzip.decompress(coverage.WORD.read_bytes())) + state = coverage.State(word, coverage.Frames(word)) + operations = [(oid, t, u) for sec in 'AB' for _, t, u, oid in state.sections[sec]] + moves_for = lambda oid: coverage.legal_moves(state, oid) + profile = lambda s, regs=None: s.profile(regs) + apply = lambda oid, q, f: state.moved(oid, q, f) + pricer = load('pricing').ReferencePricer() + else: + checker = independent.WordCheck() + state = checker.initial + operations = [(oid, t, u) for sec in 'AB' for oid, _, t, u in state[sec]] + moves_for = lambda oid: checker.literal_moves(state, oid) + profile = checker.profile + apply = lambda oid, q, f: checker.apply(state, oid, q, f) + pricer = None + base = profile(state) + independent.require(base == independent.BASE, 'replayed baseline profile') + histogram, domains = Counter(), [] + for oid, t, u in operations: + before = profile(state, (t, u)) + moves = moves_for(oid) + cached = {} + for q, frame, signature in moves: + key = frame, signature + if key not in cached: + candidate = profile(apply(oid, q, frame), (t, u)) + cached[key] = independent.profile_delta(before, candidate) + histogram[cached[key]] += 1 + domains.append(dict(id=list(oid), moves=len(moves), classes=len(cached), + sha256=independent.candidate_hash(moves))) + counts, cases = Counter(), [] + strict_worse = 0 + for key, occurrences in sorted(histogram.items()): + delta = dict(key) + independent.require(sum(r * n for r, n in key) == 0, 'transport rank mass changed') + candidate = {r: base.get(r, 0) + delta.get(r, 0) for r in set(base) | set(delta)} + independent.require(all(n >= 0 for n in candidate.values()), 'negative profile') + independent.require(independent.residual(candidate, Fraction(0))[1] < 0, 'candidate positive root') + if pricer is None: + interval = independent.signed_price(delta) + status = independent.status_of(interval) + else: + result = pricer.compare_delta(delta) + interval = tuple(map(Fraction, result['interval'])) + status = result['status'] + counts[status] += occurrences + if interval[0] > 0: + strict_worse += occurrences + cases.append(dict(delta=delta, occurrences=occurrences, status=status, + interval=list(map(str, interval)))) + return dict(complete=True, engine=engine, elapsed=time.monotonic()-start, + source_inventory=inventory, operations=len(operations), + moves=sum(histogram.values()), delta_classes=len(histogram), counts=dict(counts), + ties=histogram[()], strictly_worse=strict_worse, + reference_bracket=list(map(str, (independent.LOW, independent.HIGH))), + endpoint_residuals=[list(map(str, x)) for x in endpoints], + domains=domains, profile_deltas=cases, + driver_sha256=hashlib.sha256(Path(__file__).read_bytes()).hexdigest()) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('--engine', choices=('primary', 'independent'), required=True) + parser.add_argument('--out', type=Path, required=True) + args = parser.parse_args() + result = run(args.engine) + args.out.write_text(json.dumps(result, sort_keys=True, indent=2) + '\n') + print(json.dumps({k: v for k, v in result.items() if k not in ('domains', 'profile_deltas', 'endpoint_residuals')}, sort_keys=True)) diff --git a/research/profile-bracket-audit64/BASE-SELECTED.json b/research/profile-bracket-audit64/BASE-SELECTED.json new file mode 100644 index 0000000000..ae6a99f28a --- /dev/null +++ b/research/profile-bracket-audit64/BASE-SELECTED.json @@ -0,0 +1,222 @@ +{ + "status": "Maintainer-reviewed conditional finite construction; see the integration receipt for publication and PR resolution status", + "kappa": "836330098538459/500000000000000000", + "decimal": "0.001672660197076918", + "source_prs": [ + 1094, + 1087, + 1082, + 1074, + 1068, + 1065, + 1063, + 1061, + 1056, + 1055, + 1053, + 1050, + 1042, + 1031, + 1028, + 1022, + 1018, + 1005, + 1004, + 987, + 942, + 890, + 870, + 869, + 858, + 799, + 741, + 699, + 685, + 676, + 664, + 660, + 659, + 656, + 655, + 653, + 658, + 649, + 645, + 635, + 589, + 555, + 545, + 626, + 623, + 622, + 620, + 617, + 615, + 604, + 601, + 596, + 592, + 591, + 593, + 599, + 588, + 543, + 584, + 586, + 583, + 582, + 579, + 576, + 575, + 574, + 571, + 569, + 568, + 567, + 564, + 562, + 561, + 559, + 558, + 552, + 550, + 548, + 541, + 535, + 510, + 503, + 531, + 523, + 493, + 514, + 507, + 484, + 496, + 505, + 522, + 520, + 472, + 458, + 445, + 442, + 425, + 433, + 370, + 361, + 315 + ], + "source_manifest": "research/community-frontier1094-audit/SELECTED-SOURCE.json", + "certificate": "research/community-frontier1094-audit/ASSEMBLY.json", + "certificate_sha256": "1122cb3a575f8c788345fc1bf4c108ac7c3250fb81a5988671f5eb04b3ab3045", + "proof": "docs/research/community-batch1099-review.md", + "proof_supplements": { + "research/e8-bit-r420/README.md": "9807be57c6adf26b30e4f54e2f8160075bbc05091f1a6d157e43d2a4620c1c9f", + "research/complex-571-free4fc8/NOTICE.md": "a4c084abdc1c7a9ac683eeb11124335d51cff8a6deba6ee92ba5a12bceaa2c97", + "research/complex-multicold/proof/CONSTRUCTION.md": "27ece5e1c11b90d97a808b56eff897b998c10e61016db95867f84e6e6aef132f", + "research/complex-multicold/vendor/pr559/PROOF.md": "d5d498edc56fdef8c5798af7f5ec66948bd2f66c553b9efe366cdaab01bd3453", + "research/structural-gain/frontier-composition/README.md": "70f0f791cbe3b2603f85d85bb9055aa0ee1df6dc06ba82fc1921356948312887", + "research/complex-joint-prefix/proof/CONSTRUCTION.md": "a92e610e7a598d99c612d1b63d1a03a49c0cd1e15ddd29fa55c465ddd8c18105", + "research/kernel-frame-coalescing/PROOF.md": "fa8b2f36b9590ee80ff45d3f7724f8c7de8ad29a29f366d5133010c77e41fe1b", + "research/complex-571-hpeq5/README.md": "4000b37f6c07c09d971dc4010ceb137c13340f3a8809d3272046ccaf746c3e2b", + "research/hyperplane-end-lean/PROOF.md": "1cbce5cf0ff0152f71e8ae7bef25841d1ce13010af248ff7209182d2328c21c9", + "docs/research/community-hyperplane599-review.md": "3298cd0d451541508af232cac72efbd7c10580e6c6ad493a855ab0faa01ade8c", + "research/complex-571-cold14-b3/README.md": "1945785785c153c7d0e8d4c071adabe626c1091b71721ff85d2d67191b376b96", + "research/complex-571-cold14-b3/PROOF-NOTE.md": "1cf592cbc8ab8e21d2dd8c1e945a5c64c6d5cde1216fb06e05a36c1c6ec6613d", + "scripts/verify_cold617_interface.py": "95d7a9094c05ad975fb72f5ab7605593003245a503c8456764987e512028fa6a", + "docs/research/community-cold617-review.md": "b3f2bcbae1249f1f651032022ce1e6e2bfb3f563ce580bf53671f50a074d7046", + "research/complex-k492-owner-repair/README.md": "ee5a1ace4828f7a073be97e95c2d931988774dd3a29a877e65abdf429aeec902", + "research/complex-k492-owner-repair/PROOF-NOTE.md": "337d70fe7abd9afca1d90954c23bde87f4dc27888cc1a6b4bb80506fd6fbf8c5", + "research/complex-k492-owner-repair/PROOF-NOTE-R.md": "22312bb347bdf159e6a01a45c47675e6170d33b258e2fd9ed52aee88fb92c0ed", + "docs/research/community-k492-review.md": "3b731d30e80010b15408a289b0b32192700885474c8b36d48ee3320a7a8c5c47", + "scripts/verify_frontier626.py": "2207bd0ef04a19ef276869085afdedad80a0938fa75db5e1aa7ab73fd3429444", + "scripts/verify_frontier626_bindings.py": "cda63ff41c6d6e2e352c7bf75b84e690c0ce57e4ec6c0355573bb5d9b1f98280", + "scripts/verify_frontier588_bindings.py": "6d1932eea7b1936598118ea8e607b09c29b6e31b749ec41bbe0744ea4f0b606d", + "scripts/verify_hpe_lean_binding.py": "52aa1d23641e4c716b43c98f6b883ad042087dd03a9d01369e8e6a735b07aa03", + "research/hyperplane-end-lean/HyperplaneEnd/Exact.lean": "eebf3a3982af7ab9be45777b272a6aaa523206fa7667ceb6df63ad6589fd8183", + "docs/research/community-frontier741-review.md": "4634694fa75ea9e749ecf19d3db3e4d82effe3b61a2efdf08ac5a97275fb676a", + "research/complex-sw4-frame8/PROVENANCE.md": "c7648719b01dd93af2c3a2c6e951a54711d13892dc4bd4339d16edb4c37c9bf0", + "research/e8-bit-p111-tuned/tune/README.md": "46c7917fb252949f38b7bcd88cf568efc282e3ea065b61d11e457e41673d0b2d", + "scripts/verify_frontier741.py": "215ee6a12de8dc2392e6811a1b8f2140035f6b2d2a0d2100ff4bd2fdcb8bb39b", + "scripts/verify_frontier741_bindings.py": "eff455167e2fd0bc9a67d35241d0e69d8edc58f3a23e776dcfe8f500ca8e8d67", + "docs/research/community-frontier799-review.md": "bd91c10c67f2a873fd456b95cbb43f715a43dac0e0a66938737d591c6b754052", + "scripts/verify_frontier799.py": "19fe1b32079095160dc00fe2f7df75e0fcbc82cff37f7159b755c8a63bd5ce99", + "scripts/verify_frontier799_bindings.py": "43897b3c99212d6134870898a1840f32898aa1b3679b299e654901568ad7e19b", + "research/gauge44-frames-x/PROOF-NOTE-FRAMES-X4.md": "39c50420ebb6e8813706a49b2cf759f277c4afac9f6780fc0a7ac6a5fb86e036", + "docs/research/community-frontier890-review.md": "cd03b7c2c6c09db2cfa89ae40133ae44e1deb6e32ec5ddd23aacecc9c50f2fea", + "scripts/verify_frontier890.py": "88ea38dbef62dd7c0dd46e212618520cc89213edddb2032800e5509993958175", + "scripts/verify_replay_coverage.py": "babe5941d7e6dac4248613ef01f950ee7bb6199e7355021aea4cf854fd1b91c5", + "scripts/verify_frontier741_bridge_coverage.py": "9a14f26762b6126eb54ed43db90371773374fe98733ada80ee871a74afa3b836", + "certificates/replay-coverage/pr741-sw4-v1.json": "7acd5033bc78e3f473718269edaa267c2785d84fbe95ccf6815a33dcf58c2756", + "research/complex-t21-owners/PROOF.md": "78721b32fceb34b21b8e77c95381c38c60276e72e6d9c2e9c6262cb347457def", + "research/complex-t21-owner-bound/PROOF.md": "2aa0aa6ec1d87402138564c38749b5ca0f058c16817efdf58a2685d2d90cb417", + "research/gauge44-barch/PROOF-NOTE-BARCH.md": "c24f211b09358b25d6cf47dd18e4bbd8bcf4ecf279e6f1c6c90613cfa230818d", + "research/complex-double-replica-owners/PROOF.md": "db99599e3966bec253c577c23915e2a2899c4c4e8568044efc11c7918b137bbc", + "docs/research/community-batch952-review.md": "04db59dfc2c31453229b6061bbf59547e71ce3abdc0ce0f6779144bb0dde127b", + "scripts/verify_frontier942.py": "27c6713532d9f53f55dfff4884d55a2d9ae74b68156e37a44596c0418fbed5b7", + "research/complex-t37-owners/PROOF.md": "09b39ad0d5f1f59f54dcff15c16640f7a7acf27e6597660acaf957b95c7e8510", + "research/complex-t37-owners/ALL-T-PROOF.md": "4c0c71ccd0afb850538af1b467e5208b7eb3edd0260fded84e02a8c01dfc868b", + ".github/workflows/t37-owners.yml": "c13acc2902c007237103072b7ec10caf5ca21c1b319d27934f194af2f7d87026", + "docs/research/community-batch1047-review.md": "a6271faf5db0afe3ff7d24a34a3be7a959cdc33ee37784572fba014ee5358787", + "scripts/verify_frontier1042.py": "700fdcaeb6e8f57f6e63c71c2dd1652fc5b183e8d706cd092779bdc0d271e854", + "docs/research/community-batch1099-review.md": "7e76d2c38e5fce30587835b7251df1430488ae4dd372611ef69a3f03f476b6cb", + "scripts/verify_frontier1094.py": "c7e20f59968ed5736fb859735de4de207de3418083e37012310ebcded946b949", + "research/community-batch1099-audit/check_frontier1094.py": "2608ef213260a43d09a40b3429742f7a5f280861b54acae66400a7c29a123f51" + }, + "review": "docs/research/community-batch1099-review.md", + "validation": "docs/research/community-batch1099-integration.json", + "reproduce": "make frontier1094-verify", + "scope": "Finite composition under inherited all-size/compiler, common-label/mutable-source, whole-call hosting, precision/tape, analytic and bit H1-H5 assumptions. Not a full Lean multiplication theorem.", + "previous_kappa": "1672188119205421/1000000000000000000", + "previous_record": "certificates/checkpoints/frontier1042.json", + "audited_source_head": "0fc329d0bec93ca7cd288eaea1295172e8789810", + "reviewed_dependency_heads": { + "588": "6d0e53b66c29abd17981881a09eaff41ac862d85", + "543": "2065fe4f72a914d907f1046603f5a36f17018535", + "568": "71c99ac935a33bb7b59a1b4a7af8725a939b0b90", + "569": "1424da81263a5305b35e4cf74ef686c275f03f3f", + "571": "b7bdc5a8de18fcf418cfb9c7d83a2b1097a5e4a3", + "575": "eac6f7e378ab622dac50a2fd4b7ef6eab014de44", + "583": "89be768f0157f5a3d8e4db69cf1748768605eac9", + "586": "4846fee5b06af770e9b3a10c36200f673d656725", + "591": "f622547244bf6d895a571a7b035142ba66279806", + "592": "1f471c445c06a45a32e2c47e8d74c8264b68356b", + "593": "fdb6dcc6d7bc29764c5b6b4d32b7fa050acf74a4", + "596": "7732dd5e46863ff294b5e443661cb9d99abf4e01", + "599": "bc13c8a3e000442606bd2dbe8583a17649ba6c32", + "601": "529ab7dcb59d5ea7a5798e9e06cf5b3aee8a1550", + "604": "1b795c5d7dea746ba310572585c0ef067574b4a6", + "615": "bf8a49a34350599763cced8592db81dc62c2c1c0", + "617": "904d62855723c00f8acef9a287a10768598fdeb2", + "622": "f69477f4f6d3c7eb1f740b166881bffed4ffa9f6", + "623": "e39a615ca601ce5d62abeb24f3fcdb8644ca1005", + "626": "660de893d27bb7abd1d5b01b1640207528a5c851", + "589": "a5afc8c6169ea61ba7c51dfd3cade02cc7b13b46", + "741": "e516b1463606840a15f80aac1995d64ce0092e89", + "799": "80e6463157cfc80b85af09e7e2f14748fe2dac60", + "858": "ae2e25fee91540c83ceee5a60e3b07422ce21c7d", + "869": "73e86f69bf9a391e3c334999f7bbe3825dc42759", + "870": "b734850dc348800942f0ffd1f0723fdec7539b2b", + "890": "4b3bd8cbe8e3e81c44161017c9b72c905a8040a8", + "942": "1960cfa919a0945d0ca4cb14ea96237000037903", + "1004": "1974578f82a30158dd5fcdcdf226b83df8e7196f", + "1005": "779e80aef469bc3a28b19f1adde199871a9a22e3", + "1018": "eac7547cb191f875d5f5ea5f9bbb1d2b8c51c4ef", + "1022": "58618bcbfe88a252467755fc283c04c3db5ca4fd", + "1028": "be4bd89cb4483dcee43257200cd27601f938f13d", + "1031": "e900534f0beda892c726723524203b97471fb9a3", + "1042": "7e8ef087c02a77038a28a337a7ee3a77039cac0d", + "1094": "0fc329d0bec93ca7cd288eaea1295172e8789810", + "1087": "589d1cedf5ef5f231182f4ec86408616311a8af0", + "1082": "0c2e294ec204e83846d27344f829d15ed9ee7cc6", + "1074": "052afc128954f7b6a2b3c409eb4d72248e4020f2", + "1068": "cc71375eae4e8754da0f5d940cb519d66625fb2e", + "1065": "387d935e354a931d636e2c5e6ee63a6910f78a1b", + "1063": "d9377d32e0c97e41338e704c3960fd6f2fa73806", + "1061": "223f581afb1d63d5f8476a69040617e11bcd50e4", + "1056": "d0201efbd68c4acc9832b84bcc986c8781b83c4f", + "1055": "a8ea308976f1709eef0a328463f010cf51469277", + "1053": "6f92ce8884929c9fd4730c86a28e2e3735de02af", + "1050": "c87242f846cfab8c0b97fd889b5fecb0eacef939", + "987": "5142511af0437572aca71b35d1987cd2b47bb5e3" + } +} diff --git a/research/profile-bracket-audit64/EXPECTED.json b/research/profile-bracket-audit64/EXPECTED.json new file mode 100644 index 0000000000..7fd1f6cccf --- /dev/null +++ b/research/profile-bracket-audit64/EXPECTED.json @@ -0,0 +1 @@ +{"base":"ce7ad1b6ab09452c3478723a2e96ed5ff212dc08","capped_control":{"certified_bracket":["0","1/10"],"endpoint_terms":[34,34],"status":"UNRESOLVED_INTERIOR_SIGN","trace":[[0,34,-1],[100000000000000000000000,34,1],[50000000000000000000000,34,0]]},"default_digits":24,"default_terms":34,"false_brackets":2,"fixtures":[{"W":10000000000000000000000000000000000000000000000000000000000000000,"factor":"1","initial_signs_certified":true,"known_root_side_of_1_over_20":"above","legacy_bracket":["49999999999999999999999/1000000000000000000000000","1/20"],"legacy_bracket_excludes_root":true,"legacy_nomination_bracket":["190731048583984423/3814697265625000000","190738677978515673/3814697265625000000"],"m":9,"n":{"1":80636261385668597507457632211808291352431968183983246316568689748},"normalized_residual_at_grid_terms34":["-53406209376305640298410851827/20000000000000000000000000000000000000000000000000000000000000000000000000000000","267657187182338945219243788359/100000000000000000000000000000000000000000000000000000000000000000000000000000000"],"offset":0,"repair":{"certified_bracket":["1/20","50000000000000000000001/1000000000000000000000000"],"endpoint_terms":[68,34],"status":"CERTIFIED","trace":[[0,34,-1],[100000000000000000000000,34,1],[50000000000000000000000,34,0],[50000000000000000000000,68,-1],[75000000000000000000000,34,1],[62500000000000000000000,34,1],[56250000000000000000000,34,1],[53125000000000000000000,34,1],[51562500000000000000000,34,1],[50781250000000000000000,34,1],[50390625000000000000000,34,1],[50195312500000000000000,34,1],[50097656250000000000000,34,1],[50048828125000000000000,34,1],[50024414062500000000000,34,1],[50012207031250000000000,34,1],[50006103515625000000000,34,1],[50003051757812500000000,34,1],[50001525878906250000000,34,1],[50000762939453125000000,34,1],[50000381469726562500000,34,1],[50000190734863281250000,34,1],[50000095367431640625000,34,1],[50000047683715820312500,34,1],[50000023841857910156250,34,1],[50000011920928955078125,34,1],[50000005960464477539062,34,1],[50000002980232238769531,34,1],[50000001490116119384765,34,1],[50000000745058059692382,34,1],[50000000372529029846191,34,1],[50000000186264514923095,34,1],[50000000093132257461547,34,1],[50000000046566128730773,34,1],[50000000023283064365386,34,1],[50000000011641532182693,34,1],[50000000005820766091346,34,1],[50000000002910383045673,34,1],[50000000001455191522836,34,1],[50000000000727595761418,34,1],[50000000000363797880709,34,1],[50000000000181898940354,34,1],[50000000000090949470177,34,1],[50000000000045474735088,34,1],[50000000000022737367544,34,1],[50000000000011368683772,34,1],[50000000000005684341886,34,1],[50000000000002842170943,34,1],[50000000000001421085471,34,1],[50000000000000710542735,34,1],[50000000000000355271367,34,1],[50000000000000177635683,34,1],[50000000000000088817841,34,1],[50000000000000044408920,34,1],[50000000000000022204460,34,1],[50000000000000011102230,34,1],[50000000000000005551115,34,1],[50000000000000002775557,34,1],[50000000000000001387778,34,1],[50000000000000000693889,34,1],[50000000000000000346944,34,1],[50000000000000000173472,34,1],[50000000000000000086736,34,1],[50000000000000000043368,34,1],[50000000000000000021684,34,1],[50000000000000000010842,34,1],[50000000000000000005421,34,1],[50000000000000000002710,34,1],[50000000000000000001355,34,1],[50000000000000000000677,34,1],[50000000000000000000338,34,1],[50000000000000000000169,34,1],[50000000000000000000084,34,1],[50000000000000000000042,34,1],[50000000000000000000021,34,1],[50000000000000000000010,34,1],[50000000000000000000005,34,1],[50000000000000000000002,34,1],[50000000000000000000001,34,1]]},"surcharge":false},{"W":10000000000000000000000000000000000000000000000000000000000000000,"factor":"1","initial_signs_certified":true,"known_root_side_of_1_over_20":"below","legacy_bracket":["49999999999999999999999/1000000000000000000000000","1/20"],"legacy_bracket_excludes_root":false,"legacy_nomination_bracket":["190731048583984423/3814697265625000000","190738677978515673/3814697265625000000"],"m":9,"n":{"1":80636261385668597507457632211808291352431968183983246316568689749},"normalized_residual_at_grid_terms34":["-33378880860190870169399277683/12500000000000000000000000000000000000000000000000000000000000000000000000000000","26765718718234018535610382603/10000000000000000000000000000000000000000000000000000000000000000000000000000000"],"offset":1,"repair":{"certified_bracket":["49999999999999999999999/1000000000000000000000000","1/20"],"endpoint_terms":[34,68],"status":"CERTIFIED","trace":[[0,34,-1],[100000000000000000000000,34,1],[50000000000000000000000,34,0],[50000000000000000000000,68,1],[25000000000000000000000,34,-1],[37500000000000000000000,34,-1],[43750000000000000000000,34,-1],[46875000000000000000000,34,-1],[48437500000000000000000,34,-1],[49218750000000000000000,34,-1],[49609375000000000000000,34,-1],[49804687500000000000000,34,-1],[49902343750000000000000,34,-1],[49951171875000000000000,34,-1],[49975585937500000000000,34,-1],[49987792968750000000000,34,-1],[49993896484375000000000,34,-1],[49996948242187500000000,34,-1],[49998474121093750000000,34,-1],[49999237060546875000000,34,-1],[49999618530273437500000,34,-1],[49999809265136718750000,34,-1],[49999904632568359375000,34,-1],[49999952316284179687500,34,-1],[49999976158142089843750,34,-1],[49999988079071044921875,34,-1],[49999994039535522460937,34,-1],[49999997019767761230468,34,-1],[49999998509883880615234,34,-1],[49999999254941940307617,34,-1],[49999999627470970153808,34,-1],[49999999813735485076904,34,-1],[49999999906867742538452,34,-1],[49999999953433871269226,34,-1],[49999999976716935634613,34,-1],[49999999988358467817306,34,-1],[49999999994179233908653,34,-1],[49999999997089616954326,34,-1],[49999999998544808477163,34,-1],[49999999999272404238581,34,-1],[49999999999636202119290,34,-1],[49999999999818101059645,34,-1],[49999999999909050529822,34,-1],[49999999999954525264911,34,-1],[49999999999977262632455,34,-1],[49999999999988631316227,34,-1],[49999999999994315658113,34,-1],[49999999999997157829056,34,-1],[49999999999998578914528,34,-1],[49999999999999289457264,34,-1],[49999999999999644728632,34,-1],[49999999999999822364316,34,-1],[49999999999999911182158,34,-1],[49999999999999955591079,34,-1],[49999999999999977795539,34,-1],[49999999999999988897769,34,-1],[49999999999999994448884,34,-1],[49999999999999997224442,34,-1],[49999999999999998612221,34,-1],[49999999999999999306110,34,-1],[49999999999999999653055,34,-1],[49999999999999999826527,34,-1],[49999999999999999913263,34,-1],[49999999999999999956631,34,-1],[49999999999999999978315,34,-1],[49999999999999999989157,34,-1],[49999999999999999994578,34,-1],[49999999999999999997289,34,-1],[49999999999999999998644,34,-1],[49999999999999999999322,34,-1],[49999999999999999999661,34,-1],[49999999999999999999830,34,-1],[49999999999999999999915,34,-1],[49999999999999999999957,34,-1],[49999999999999999999978,34,-1],[49999999999999999999989,34,-1],[49999999999999999999994,34,-1],[49999999999999999999997,34,-1],[49999999999999999999998,34,-1],[49999999999999999999999,34,-1]]},"surcharge":false},{"W":10000000000000000000000000000000000000000000000000000000000000000,"factor":"312500000000081/312500000000000","initial_signs_certified":true,"known_root_side_of_1_over_20":"above","legacy_bracket":["49999999999999999999999/1000000000000000000000000","1/20"],"legacy_bracket_excludes_root":true,"legacy_nomination_bracket":["190731048583984423/3814697265625000000","190738677978515673/3814697265625000000"],"m":9,"n":{"1":80636261385647696588506472328852550474804329602900177034335618022},"normalized_residual_at_grid_terms34":["-267031046881528341255736096607/100000000000000000000000000000000000000000000000000000000000000000000000000000000","267657187182338805455561950887/100000000000000000000000000000000000000000000000000000000000000000000000000000000"],"offset":0,"repair":{"certified_bracket":["1/20","50000000000000000000001/1000000000000000000000000"],"endpoint_terms":[68,34],"status":"CERTIFIED","trace":[[0,34,-1],[100000000000000000000000,34,1],[50000000000000000000000,34,0],[50000000000000000000000,68,-1],[75000000000000000000000,34,1],[62500000000000000000000,34,1],[56250000000000000000000,34,1],[53125000000000000000000,34,1],[51562500000000000000000,34,1],[50781250000000000000000,34,1],[50390625000000000000000,34,1],[50195312500000000000000,34,1],[50097656250000000000000,34,1],[50048828125000000000000,34,1],[50024414062500000000000,34,1],[50012207031250000000000,34,1],[50006103515625000000000,34,1],[50003051757812500000000,34,1],[50001525878906250000000,34,1],[50000762939453125000000,34,1],[50000381469726562500000,34,1],[50000190734863281250000,34,1],[50000095367431640625000,34,1],[50000047683715820312500,34,1],[50000023841857910156250,34,1],[50000011920928955078125,34,1],[50000005960464477539062,34,1],[50000002980232238769531,34,1],[50000001490116119384765,34,1],[50000000745058059692382,34,1],[50000000372529029846191,34,1],[50000000186264514923095,34,1],[50000000093132257461547,34,1],[50000000046566128730773,34,1],[50000000023283064365386,34,1],[50000000011641532182693,34,1],[50000000005820766091346,34,1],[50000000002910383045673,34,1],[50000000001455191522836,34,1],[50000000000727595761418,34,1],[50000000000363797880709,34,1],[50000000000181898940354,34,1],[50000000000090949470177,34,1],[50000000000045474735088,34,1],[50000000000022737367544,34,1],[50000000000011368683772,34,1],[50000000000005684341886,34,1],[50000000000002842170943,34,1],[50000000000001421085471,34,1],[50000000000000710542735,34,1],[50000000000000355271367,34,1],[50000000000000177635683,34,1],[50000000000000088817841,34,1],[50000000000000044408920,34,1],[50000000000000022204460,34,1],[50000000000000011102230,34,1],[50000000000000005551115,34,1],[50000000000000002775557,34,1],[50000000000000001387778,34,1],[50000000000000000693889,34,1],[50000000000000000346944,34,1],[50000000000000000173472,34,1],[50000000000000000086736,34,1],[50000000000000000043368,34,1],[50000000000000000021684,34,1],[50000000000000000010842,34,1],[50000000000000000005421,34,1],[50000000000000000002710,34,1],[50000000000000000001355,34,1],[50000000000000000000677,34,1],[50000000000000000000338,34,1],[50000000000000000000169,34,1],[50000000000000000000084,34,1],[50000000000000000000042,34,1],[50000000000000000000021,34,1],[50000000000000000000010,34,1],[50000000000000000000005,34,1],[50000000000000000000002,34,1],[50000000000000000000001,34,1]]},"surcharge":true},{"W":10000000000000000000000000000000000000000000000000000000000000000,"factor":"312500000000081/312500000000000","initial_signs_certified":true,"known_root_side_of_1_over_20":"below","legacy_bracket":["49999999999999999999999/1000000000000000000000000","1/20"],"legacy_bracket_excludes_root":false,"legacy_nomination_bracket":["190731048583984423/3814697265625000000","190738677978515673/3814697265625000000"],"m":9,"n":{"1":80636261385647696588506472328852550474804329602900177034335618023},"normalized_residual_at_grid_terms34":["-133515523440763550559438029307/50000000000000000000000000000000000000000000000000000000000000000000000000000000","3345714839779250569905274861/1250000000000000000000000000000000000000000000000000000000000000000000000000000"],"offset":1,"repair":{"certified_bracket":["49999999999999999999999/1000000000000000000000000","1/20"],"endpoint_terms":[34,68],"status":"CERTIFIED","trace":[[0,34,-1],[100000000000000000000000,34,1],[50000000000000000000000,34,0],[50000000000000000000000,68,1],[25000000000000000000000,34,-1],[37500000000000000000000,34,-1],[43750000000000000000000,34,-1],[46875000000000000000000,34,-1],[48437500000000000000000,34,-1],[49218750000000000000000,34,-1],[49609375000000000000000,34,-1],[49804687500000000000000,34,-1],[49902343750000000000000,34,-1],[49951171875000000000000,34,-1],[49975585937500000000000,34,-1],[49987792968750000000000,34,-1],[49993896484375000000000,34,-1],[49996948242187500000000,34,-1],[49998474121093750000000,34,-1],[49999237060546875000000,34,-1],[49999618530273437500000,34,-1],[49999809265136718750000,34,-1],[49999904632568359375000,34,-1],[49999952316284179687500,34,-1],[49999976158142089843750,34,-1],[49999988079071044921875,34,-1],[49999994039535522460937,34,-1],[49999997019767761230468,34,-1],[49999998509883880615234,34,-1],[49999999254941940307617,34,-1],[49999999627470970153808,34,-1],[49999999813735485076904,34,-1],[49999999906867742538452,34,-1],[49999999953433871269226,34,-1],[49999999976716935634613,34,-1],[49999999988358467817306,34,-1],[49999999994179233908653,34,-1],[49999999997089616954326,34,-1],[49999999998544808477163,34,-1],[49999999999272404238581,34,-1],[49999999999636202119290,34,-1],[49999999999818101059645,34,-1],[49999999999909050529822,34,-1],[49999999999954525264911,34,-1],[49999999999977262632455,34,-1],[49999999999988631316227,34,-1],[49999999999994315658113,34,-1],[49999999999997157829056,34,-1],[49999999999998578914528,34,-1],[49999999999999289457264,34,-1],[49999999999999644728632,34,-1],[49999999999999822364316,34,-1],[49999999999999911182158,34,-1],[49999999999999955591079,34,-1],[49999999999999977795539,34,-1],[49999999999999988897769,34,-1],[49999999999999994448884,34,-1],[49999999999999997224442,34,-1],[49999999999999998612221,34,-1],[49999999999999999306110,34,-1],[49999999999999999653055,34,-1],[49999999999999999826527,34,-1],[49999999999999999913263,34,-1],[49999999999999999956631,34,-1],[49999999999999999978315,34,-1],[49999999999999999989157,34,-1],[49999999999999999994578,34,-1],[49999999999999999997289,34,-1],[49999999999999999998644,34,-1],[49999999999999999999322,34,-1],[49999999999999999999661,34,-1],[49999999999999999999830,34,-1],[49999999999999999999915,34,-1],[49999999999999999999957,34,-1],[49999999999999999999978,34,-1],[49999999999999999999989,34,-1],[49999999999999999999994,34,-1],[49999999999999999999997,34,-1],[49999999999999999999998,34,-1],[49999999999999999999999,34,-1]]},"surcharge":true}],"neighbor_controls":2,"ordinary_control":{"certified_bracket":["4655470219574073533797/100000000000000000000000","46554702195740735337971/1000000000000000000000000"],"endpoint_terms":[34,34],"status":"CERTIFIED","trace":[[0,34,-1],[100000000000000000000000,34,1],[50000000000000000000000,34,1],[25000000000000000000000,34,-1],[37500000000000000000000,34,-1],[43750000000000000000000,34,-1],[46875000000000000000000,34,1],[45312500000000000000000,34,-1],[46093750000000000000000,34,-1],[46484375000000000000000,34,-1],[46679687500000000000000,34,1],[46582031250000000000000,34,1],[46533203125000000000000,34,-1],[46557617187500000000000,34,1],[46545410156250000000000,34,-1],[46551513671875000000000,34,-1],[46554565429687500000000,34,-1],[46556091308593750000000,34,1],[46555328369140625000000,34,1],[46554946899414062500000,34,1],[46554756164550781250000,34,1],[46554660797119140625000,34,-1],[46554708480834960937500,34,1],[46554684638977050781250,34,-1],[46554696559906005859375,34,-1],[46554702520370483398437,34,1],[46554699540138244628906,34,-1],[46554701030254364013671,34,-1],[46554701775312423706054,34,-1],[46554702147841453552245,34,-1],[46554702334105968475341,34,1],[46554702240973711013793,34,1],[46554702194407582283019,34,-1],[46554702217690646648406,34,1],[46554702206049114465712,34,1],[46554702200228348374365,34,1],[46554702197317965328692,34,1],[46554702195862773805855,34,1],[46554702195135178044437,34,-1],[46554702195498975925146,34,-1],[46554702195680874865500,34,-1],[46554702195771824335677,34,1],[46554702195726349600588,34,-1],[46554702195749086968132,34,1],[46554702195737718284360,34,-1],[46554702195743402626246,34,1],[46554702195740560455303,34,-1],[46554702195741981540774,34,1],[46554702195741270998038,34,1],[46554702195740915726670,34,1],[46554702195740738090986,34,1],[46554702195740649273144,34,-1],[46554702195740693682065,34,-1],[46554702195740715886525,34,-1],[46554702195740726988755,34,-1],[46554702195740732539870,34,-1],[46554702195740735315428,34,-1],[46554702195740736703207,34,1],[46554702195740736009317,34,1],[46554702195740735662372,34,1],[46554702195740735488900,34,1],[46554702195740735402164,34,1],[46554702195740735358796,34,1],[46554702195740735337112,34,-1],[46554702195740735347954,34,1],[46554702195740735342533,34,1],[46554702195740735339822,34,1],[46554702195740735338467,34,1],[46554702195740735337789,34,-1],[46554702195740735338128,34,1],[46554702195740735337958,34,-1],[46554702195740735338043,34,1],[46554702195740735338000,34,1],[46554702195740735337979,34,1],[46554702195740735337968,34,-1],[46554702195740735337973,34,1],[46554702195740735337970,34,-1],[46554702195740735337971,34,1]]},"original_commit":"07730cd8302c378607259a9ad0efb73e0b57a2f2","scope":"Abstract rank-profile arithmetic only; no realizable supplier or selected-bound counterexample; PR1048 search and ordering claims remain deferred.","status":"PASS_DEFAULT_PRECISION_FALSE_BRACKETS_AND_CERTIFIED_REPAIR"} diff --git a/research/profile-bracket-audit64/PR-BODY.md b/research/profile-bracket-audit64/PR-BODY.md new file mode 100644 index 0000000000..ef57e9b725 --- /dev/null +++ b/research/profile-bracket-audit64/PR-BODY.md @@ -0,0 +1,24 @@ +The frozen PR1048 pricer returns two false root brackets at its unchanged +default34-term/24-digit settings. For explicit rank-one profiles with m=9 and +W=10^64, both the surcharged and unsurcharged functions return +`[1/20-10^-24,1/20]`, although an exact tenth-power integer inequality proves +the root is strictly greater than1/20. Neighboring profiles with one additional +call have roots on the opposite side and receive the same original bracket. + +This turns the maintainer's already recorded undecided-sign finding into +reproducible false certificates. The package retains the unchanged original +code/notice at07730cd, proves that float nomination already encloses these roots, +and supplies a bounded tri-state bisection that certifies both endpoint signs +or explicitly returns unresolved. An independent integer-only checker proves +the root intervals without importing the pricer or repair. + +Validation: both original defaults, four paired fixtures, one ordinary-profile +control, capped/equality/initial-unknown cases, ten rejection controls, source +inventory checks, optimized and assertion-enabled replay. Reproduction and +actual outputs are recorded in README.md and VALIDATION.json. + +These are abstract arithmetic profiles; no realizable supplier or selected +PR589/PR1094 failure is claimed. PR1048's search, ordering and neighborhood +claims remain deferred. Credit to flemhhh's pricer and Douglas Colkitt's prior +finding; retained source lineage and notices included. @woklerx with substantial +OpenAI Codex assistance, Apache-2.0. diff --git a/research/profile-bracket-audit64/PROOF.md b/research/profile-bracket-audit64/PROOF.md new file mode 100644 index 0000000000..e4cf3d9cb3 --- /dev/null +++ b/research/profile-bracket-audit64/PROOF.md @@ -0,0 +1,106 @@ +# Concrete false certificates + +For rank profile n={1:N}, m=9 and W>0, let lambda=0 without surcharge and +lambda=32*m^2/10^16 with surcharge. The claimed root equation simplifies exactly +to + +```text +F(a) = N(1+lambda)9^a - 9W = 0. +``` + +F is continuous and strictly increasing. Write A=1+lambda=p/q in lowest terms, +B=9W, u=3^(1/10)=9^(1/20), and + +```text +N = floor(B/(A*u)) = floor( ((B*q)^10/(3*p^10))^(1/10) ). +``` + +The code computes this floor using integers. Strictness is verified, not assumed: + +```text +3*(N*p)^10 < (B*q)^10 < 3*((N+1)*p)^10. +``` + +Consequently N*A*u0 for both counts; F(0)<0 is a direct rational comparison. Thus +these roots satisfy the original advertised initial domain and uniqueness. + +Let delta=10^-24. Since e<3<9, log9>1 and `9^delta>1+delta` for delta>0. The +floor inequalities yield + +```text +N*A*u*9^delta > B*N/(N+1)*(1+delta) > B, +(N+1)*A*u/9^delta < B*(N+1)/N/(1+delta) < B, +``` + +where both last strict comparisons are equivalent to N*delta>1. That integer +condition is checked. This proves the two exact neighboring root intervals +without evaluating a transcendental function numerically. The independent +checker obtains N by Newton integer-root iteration, while the main constructor +uses binary search, and verifies all the inequalities above. + +On both profiles with count N, the original function returns +`[a0-delta,a0]`. Its upper endpoint lies strictly below the root, so this is a +false bracket, not merely an unproved certificate. On count N+1 it returns the +same bracket, which happens to contain that different root. EXPECTED records +all four complete source executions at the original default34/24 settings. + +# Which decision loses the invariant + +The original bisection promotes mid to the lower endpoint only when the interval +upper bound for the fee is strictly below D. Every other outcome sets the upper +endpoint to mid. That includes an interval whose lower bound is below D and +upper bound above D: no side of the root is established. + +For all four fixtures, the exact rational source enclosure at a0 with34 terms +crosses D. EXPECTED stores a small outward enclosure of `(fee-D)/(mW)`, and +regeneration checks the underlying full Fractions. The original floating +nomination encloses both neighboring true root intervals and is explicitly +recorded. Its initial upper endpoint is strictly above a0+delta. Therefore the +final upper endpoint a0 arose during bisection; its assignment was not justified +by a positive lower sign. The failure is isolated from float nomination coverage. + +The existing maintainer review already observed this logical problem. The new +result is a pair of actual false returned brackets at default settings, with +independent exact root separation and a tested endpoint-certified alternative. + +# Repair invariant and arithmetic assumptions + +The standalone replacement accepts an interval oracle for a strictly increasing +continuous function. At every successful stage it maintains + +```text +F(low)<0=x:break + x=y + while x**10>z:x-=1 + while (x+1)**10<=z:x+=1 + return x + +def audit(c): + need(c['status']=='PASS_DEFAULT_PRECISION_FALSE_BRACKETS_AND_CERTIFIED_REPAIR','status') + need((c['default_terms'],c['default_digits'])==(34,24),'original defaults') + need(len(c['fixtures'])==4,'four-case coverage') + a=Q(1,20);d=Q(1,10**24);seen=set();false=0 + for row in c['fixtures']: + surcharge=row['surcharge'];offset=row['offset'];seen.add((surcharge,offset)) + need(type(surcharge) is bool and type(offset) is int and offset in (0,1),'case types') + m,W=row['m'],row['W'];need(m==9 and W==10**64,'fixed dimensions') + factor=Q(1)+(Q(2592,10**16) if surcharge else Q(0));need(Q(row['factor'])==factor,'surcharge') + p,q=factor.numerator,factor.denominator;B=m*W + N=root10((B*q)**10//(3*p**10));need(3*(N*p)**10<(B*q)**10<3*((N+1)*p)**10,'algebraic floor') + need(row['n']=={'1':N+offset},'coefficient count') + n=N+offset;need(n*factor(B*q)**5,'root below1/10') + need(N*d>1,'strict adjacent tick separation') + # 9^d >1+d, since log9>1. The algebraic floor then proves: + # N*A*9^(a+d)>B and (N+1)*A*9^(a-d)1) if offset==0 else (Q(N+1,N)/(1+d)<1) + need(neighboring_sign,'rational neighboring sign') + truth=[a,a+d] if offset==0 else [a-d,a] + need(row['known_root_side_of_1_over_20']==('above' if offset==0 else 'below'),'root-side claim') + need(list(map(Q,row['repair']['certified_bracket']))==truth,'true repaired bracket') + need(row['repair']['status']=='CERTIFIED','repair status') + legacy=list(map(Q,row['legacy_bracket']));need(legacy==[a-d,a],'legacy returned bracket') + nomination=list(map(Q,row['legacy_nomination_bracket']));need(nomination[0]a+d,'nomination already encloses true root') + excluded=offset==0;need(row['legacy_bracket_excludes_root'] is excluded,'false bracket classification') + false+=excluded + coarse=list(map(Q,row['normalized_residual_at_grid_terms34']));need(coarse[0]<00 else 0 + +def bracket(oracle,digits=24,initial_terms=34,max_terms=136): + """For a strictly increasing function with a root in(0,1/10). + + Oracle returns a rigorous rational enclosure for the function. Success + certifies BOTH strict endpoint signs; unresolved returns the retained wider + certified bracket (or no bracket if initial endpoint signs are unresolved). + No floating-point nomination is used. + """ + need(type(digits) is int and 1<=digits<=200,'digits1..200') + need(type(initial_terms) is int and initial_terms>=1 and type(max_terms) is int and max_terms>=initial_terms,'term budget') + scale=10**digits;trace=[] + def sign(q): + terms=initial_terms + while True: + lo,hi=oracle(F(q,scale),terms);s=classify(lo,hi) + trace.append([q,terms,s]) + if s or terms==max_terms:return s,terms + terms=min(terms*2,max_terms) + low,high=0,scale//10;slo,tlo=sign(low);shi,thi=sign(high) + if (slo,shi)!=(-1,1): + return dict(status='UNRESOLVED_INITIAL_ENDPOINTS',trace=trace,certified_bracket=None) + while high-low>1: + mid=(low+high)//2;sm,tm=sign(mid) + if sm<0:low,tlo=mid,tm + elif sm>0:high,thi=mid,tm + else: + return dict(status='UNRESOLVED_INTERIOR_SIGN',trace=trace,certified_bracket=[str(F(low,scale)),str(F(high,scale))],endpoint_terms=[tlo,thi]) + return dict(status='CERTIFIED',trace=trace,certified_bracket=[str(F(low,scale)),str(F(high,scale))],endpoint_terms=[tlo,thi]) + +def profile_oracle(original,n,m,W,surcharge=False): + need(type(m) is int and m>=2 and type(W) is int and W>0,'integer m,W') + need(n and all(type(r) is int and 1<=r<=m and type(c) is int and c>0 for r,c in n.items()),'positive supported rank profile') + need(any(r0,'positive deficit') + cache={} + def oracle(a,terms): + need(F(0)<=a<=F(1,10),'exponent interval') + if terms not in cache: + table=original.ln_table(set(n),m,terms) + if surcharge:table['_m']=original.ln_bounds(F(m),terms) + cache[terms]=table + table=cache[terms] + need(all(a*hi<=1 for lo,hi in table.values()),'original exponential oracle envelope') + lo,hi=(original.fee_bounds_bad if surcharge else original.fee_bounds)(n,m,a,table,terms) + return lo-D,hi-D + return oracle diff --git a/research/profile-bracket-audit64/vendor/LICENSE b/research/profile-bracket-audit64/vendor/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/research/profile-bracket-audit64/vendor/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/research/profile-bracket-audit64/vendor/NOTICE.md b/research/profile-bracket-audit64/vendor/NOTICE.md new file mode 100644 index 0000000000..48c6e0349a --- /dev/null +++ b/research/profile-bracket-audit64/vendor/NOTICE.md @@ -0,0 +1,28 @@ +# NOTICE + +`research/bit-profile-pair-audit/` is a research note and exact audit contributed under the +repository's Apache-2.0 license (see `LICENSE`). + +## Predecessor work + +* **PR #555 (eumemic)** — the punctured R439 bit word, its generator, checkers, pricing pipelines and + package structure. The base word `research/e8-bit-p111/data/bitE8mut-p111.json.gz` is read unchanged. +* **PR #543 (eumemic)** — the R420 L3 skeleton (keepers read by targets, then rewritten in phase B) + that #555 stacks on, and the interleaved scalar-interface lemma. +* **PR #545 (DreamingOfClouds)** — the punctured star unit (nine lines neither sources nor targets), + the decoder constant 63 at v = 111, and the deficit identity `m W - rank_mass = T(2Kv - L cst)`. +* **PR #510** — the nine-stage pricing chain (#463 template, 32 replicas, #442 hosting). +* **PR #589 (DreamingOfClouds)** — the two A-section transports audited here, and the tuner + (`tune/tune.py`, `tune/wlib.py`) whose move class this audit prices exactly. +* **PR #620 (GamingPuzzled) and PR #631 (vectorsss)** — the decoder-side bounds (`63/111` optimal for + star label decoders under puncturing), which are orthogonal to the reframing class audited here. + +`code/replay.py` and `code/bitprof.py` were written for this note and share no code with the pinned +dependencies; `code/stateprof.py` and `code/search.py` drive the pinned tuner's move enumeration and +price everything on the exact paid-profile objective. + +## AI disclosure + +Substantial AI assistance was used in preparing this contribution (DeepSeek Harness, deepseek-flash +model). Every claim in `verify.py` is a deterministic exact-arithmetic check against files pinned by +sha256 on the stated base commit, and the numbers in `README.md` are the values those checks assert. diff --git a/research/profile-bracket-audit64/vendor/bitprof.py b/research/profile-bracket-audit64/vendor/bitprof.py new file mode 100644 index 0000000000..65dbc22873 --- /dev/null +++ b/research/profile-bracket-audit64/vendor/bitprof.py @@ -0,0 +1,153 @@ +"""Exact paid-profile arithmetic for bitE8 bit words. + +Two facts are used. + +(1) The certified saving c of a bit supplier with modulus m, live port-register count W and paid + profile n (n_r = number of elementary paid climbs of rank r) is the unique root a > 0 of + + Psi(a) := sum_r n_r * r * ((m/r)^a - 1) = D, D := m*W - sum_r r*n_r . + + Equivalently, since Psi(a) = m^a * G(a) - M with G(a) = sum_r n_r r^(1-a) and M = sum_r r n_r, + and both m^a and G are strictly increasing in a, for ANY fixed a0 the certified saving is a + strictly decreasing function of the single weighted count G(a0) = sum_r n_r r^(1-a0). + Rank-profile search is therefore a linear-objective problem, and a candidate word can be priced + exactly in O(#gates) with no root finding. + +(2) G decomposes over registers: a register's contribution depends only on the gates that touch it, + so the objective delta of a gate transport is the sum of the deltas of the two registers it + touches, and a k-move improvement requires the moves to share registers. + +The root of (1) is certified here with exact rational interval arithmetic (own ln/exp bounds): +no floating point and no dependence on the repository's moment engine is used. +""" +from fractions import Fraction as F +from collections import Counter + +# ---------------------------------------------------------------- rigorous rational ln / exp +def _atanh_ln_bounds(z, terms=60): + """1 <= z < 3/2 -> rational interval for ln z via 2*atanh(t), t=(z-1)/(z+1) <= 1/5.""" + t = (z - 1) / (z + 1) + s = F(0); term = t + for n in range(terms): + s += term / (2 * n + 1) + term *= t * t + rem = 2 * term / ((2 * terms + 1) * (1 - t * t)) + return 2 * s, 2 * (s + rem) + +def ln_bounds(x, terms=60): + """x rational >= 1 -> (lo,hi) with lo <= ln x <= hi.""" + assert x >= 1 + k = 0 + while x >= 2: + x /= 2; k += 1 + j = 0 + if x >= F(3, 2): + x /= F(3, 2); j = 1 + lo, hi = _atanh_ln_bounds(x, terms) + l32 = _atanh_ln_bounds(F(3, 2), terms) + l43 = _atanh_ln_bounds(F(4, 3), terms) + ln2_lo, ln2_hi = l32[0] + l43[0], l32[1] + l43[1] + return k * ln2_lo + j * l32[0] + lo, k * ln2_hi + j * l32[1] + hi + +def exp_bounds(y, terms=60): + """0 <= y <= 1 -> (lo,hi) with lo <= exp(y) <= hi.""" + assert 0 <= y <= 1 + s = F(0); term = F(1) + for n in range(terms): + s += term + term *= y / (n + 1) + return s, s + term / (1 - y / (terms + 1)) + +def pow_bounds(base, a, terms=60): + """base rational >= 1, a rational in [0,1] -> (lo,hi) with lo <= base**a <= hi.""" + assert base >= 1 and 0 <= a <= 1 + llo, lhi = ln_bounds(base, terms) + return exp_bounds(a * llo, terms)[0], exp_bounds(a * lhi, terms)[1] + +# ---------------------------------------------------------------- the fee functional +def ln_table(ranks, m, terms=34): + """ln bounds for each distinct base m/r; computed once, reused for every a.""" + return {r: ln_bounds(F(m, r) if F(m, r) >= 1 else 1 / F(m, r), terms) for r in ranks} + +def fee_bounds(n, m, a, lnb, terms=34): + """rational interval for Psi(a) = sum_r n_r * r * ((m/r)^a - 1) using precomputed ln bounds""" + lo = F(0); hi = F(0) + for r, c in n.items(): + if not c: continue + llo, lhi = lnb[r] + if F(m, r) >= 1: + plo = exp_bounds(a * llo, terms)[0]; phi = exp_bounds(a * lhi, terms)[1] + else: + u = exp_bounds(a * llo, terms)[1]; v = exp_bounds(a * lhi, terms)[0] + plo, phi = 1 / u, 1 / v + w = c * r + lo += w * (plo - 1); hi += w * (phi - 1) + return lo, hi + +def fee_float(n, m, a): + import math + return sum(c * r * (math.exp(a * math.log(m / r)) - 1) for r, c in n.items() if c) + +def profile_deficit(n, m, W): + return m * W - sum(r * c for r, c in n.items()) + +def certify_c(n, m, W, digits=24, terms=34): + """exact rational bracket [q/10^digits, (q+1)/10^digits] for the certified saving c.""" + D = profile_deficit(n, m, W) + assert D > 0, 'non-positive deficit' + lnb = ln_table(set(n), m, terms) + lo, hi = F(0), F(1, 10) + assert fee_bounds(n, m, hi, lnb, terms)[0] > D > fee_bounds(n, m, lo, lnb, terms)[1] + # coarse float narrowing, then exact rational bisection on the grid q/10^digits + piv = sorted(n); lo_f, hi_f = 0.0, 0.1 + for _ in range(80): + mid = (lo_f + hi_f) / 2 + if fee_float(n, m, mid) < D: lo_f = mid + else: hi_f = mid + scale = 10 ** digits + span = 10 ** (digits - 6) + qlo = max(0, int(lo_f * scale) - span); qhi = min(scale // 10, int(hi_f * scale) + span) + assert qlo < qhi + while qhi - qlo > 1: + mid = (qlo + qhi) // 2 + if fee_bounds(n, m, F(mid, scale), lnb, terms)[1] < D: qlo = mid + else: qhi = mid + return F(qlo, scale), F(qhi, scale), D + +def weighted_count(n, a0): + """G(a0) = sum_r n_r r^(1-a0) as a float (for search ordering)""" + return sum(c * (r ** (1.0 - a0)) for r, c in n.items()) + +# ---------------------------------------------------------------- the shipped (surcharged) pricer +SURCHARGE_DEN = 10 ** 16 # 32*m^2 rank-one fallback calls per paid child, charged at rank one + +def surcharge_num(n, m): + return 32 * m * m * sum(n.values()) + +def fee_bounds_bad(n, m, a, lnb, terms=34): + lo, hi = fee_bounds(n, m, a, lnb, terms) + llo, lhi = lnb['_m'] + v = exp_bounds(a * llo, terms)[0]; u = exp_bounds(a * lhi, terms)[1] + K = F(surcharge_num(n, m), SURCHARGE_DEN) + return lo + K * v, hi + K * u + +def certify_c_bad(n, m, W, digits=24, terms=34): + """exact rational bracket for the shipped certified saving c, including the inherited + bad-envelope rank-one fallback surcharge: Psi(a) + 32 m^2 (sum_r n_r) m^a / 10^16 = D.""" + D = profile_deficit(n, m, W) + lnb = ln_table(set(n), m, terms); lnb['_m'] = ln_bounds(F(m), terms) + assert fee_bounds_bad(n, m, F(1, 10), lnb, terms)[0] > D > fee_bounds_bad(n, m, F(0), lnb, terms)[1] + K = surcharge_num(n, m) + lo_f, hi_f = 0.0, 0.1 + for _ in range(100): + mid = (lo_f + hi_f) / 2 + if fee_float(n, m, mid) + K * (m ** mid) / SURCHARGE_DEN < D: lo_f = mid + else: hi_f = mid + scale = 10 ** digits; span = 10 ** (digits - 6) + qlo = max(0, int(lo_f * scale) - span); qhi = min(scale // 10, int(hi_f * scale) + span) + assert qlo < qhi + while qhi - qlo > 1: + mid = (qlo + qhi) // 2 + if fee_bounds_bad(n, m, F(mid, scale), lnb, terms)[1] < D: qlo = mid + else: qhi = mid + return F(qlo, scale), F(qhi, scale), D diff --git a/research/profile-bracket-audit64/verify.py b/research/profile-bracket-audit64/verify.py new file mode 100644 index 0000000000..187695f39c --- /dev/null +++ b/research/profile-bracket-audit64/verify.py @@ -0,0 +1,100 @@ +"""Default-precision false brackets and a fail-closed repair. Apache-2.0.""" +import argparse,hashlib,importlib.util,json,sys +from pathlib import Path +from fractions import Fraction as F +P=Path(__file__).resolve().parent;R=P.parents[1];sys.path.insert(0,str(P)) +from repair import bracket,classify,profile_oracle,need +BASE='ce7ad1b6ab09452c3478723a2e96ed5ff212dc08' +COMMIT='07730cd8302c378607259a9ad0efb73e0b57a2f2' +REQUIRED={'docs/research/community-batch1099-review.md','research/community-batch1099-audit/pr1048-metadata.json','research/community-batch1099-audit/logs/batch1099-1048-finding.json','research/community-batch1099-audit/check_pr1048_counterexample.py'} +LOCAL={'vendor/bitprof.py','vendor/NOTICE.md','vendor/LICENSE','BASE-SELECTED.json'} + +def enc(x):return json.dumps(x,sort_keys=True,separators=(',',':'),allow_nan=False).encode() +def sha(b):return hashlib.sha256(b).hexdigest() +def normalized(p):return p.read_bytes().replace(b'\r\n',b'\n') +def sources(m=None): + if m is None:m=json.loads((P/'SOURCES.json').read_bytes()) + need(m['base']==BASE and m['original_commit']==COMMIT,'base/head binding') + need(set(m['repository_files'])==REQUIRED and set(m['package_files'])==LOCAL,'mandatory inventory') + for base,files in ((R,m['repository_files']),(P,m['package_files'])): + for name,h in files.items():need(sha(normalized(base/name))==h,'source pin '+name) + selected=json.loads((P/'BASE-SELECTED.json').read_bytes()) + need(selected['kappa']=='836330098538459/500000000000000000','frozen selected kappa') + metadata=json.loads((R/'research/community-batch1099-audit/pr1048-metadata.json').read_bytes()) + need(COMMIT in [c['oid'] for c in metadata['commits']],'frozen reviewed PR1048 commit') + spec=importlib.util.spec_from_file_location('original_bitprof',P/'vendor/bitprof.py');mod=importlib.util.module_from_spec(spec);spec.loader.exec_module(mod) + return mod + +def iroot(value,degree): + lo=0;hi=1<<((value.bit_length()+degree-1)//degree) + while hi-lo>1: + mid=(lo+hi)//2 + if mid**degree<=value:lo=mid + else:hi=mid + return lo + +def fixture(surcharge): + m=9;W=10**64;factor=F(1)+F(32*m*m,10**16) if surcharge else F(1) + A=(m*W*factor.denominator)**10;B=3*factor.numerator**10 + N=iroot(A//B,10) + need(B*N**10a0+tick,'legacy nomination contains both neighboring true brackets') + need(count*tick>1,'independent neighboring-grid separation') + rows.append(dict(surcharge=surcharge,offset=offset,m=m,W=W,n={1:count},factor=str(factor),legacy_bracket=[str(oldlo),str(oldhi)],legacy_nomination_bracket=list(map(str,nomination)),legacy_bracket_excludes_root=(offset==0),known_root_side_of_1_over_20='above' if offset==0 else 'below',initial_signs_certified=True,normalized_residual_at_grid_terms34=compact(*undecided,m*W),repair=result)) + # Ordinary small-profile control: the original bracket is already strict. + n={2:15};m=8;W=4;lo,hi,D=original.certify_c(n,m,W) + oracle=profile_oracle(original,n,m,W);ordinary=bracket(oracle) + check_repaired(ordinary,oracle,[lo,hi]) + # A capped undecided calculation must preserve its wider proven bracket. + m,W,N,_=fixture(False);oracle=profile_oracle(original,{1:N},m,W) + capped=bracket(oracle,max_terms=34) + need(capped['status']=='UNRESOLVED_INTERIOR_SIGN','capped ambiguity status') + l,h=map(F,capped['certified_bracket']);need(l